diff --git a/Images/shot1.png b/Images/shot1.png index 1c413a66..84d831e6 100644 Binary files a/Images/shot1.png and b/Images/shot1.png differ diff --git a/Images/shot2.png b/Images/shot2.png index 7d9cd641..1ec8b019 100644 Binary files a/Images/shot2.png and b/Images/shot2.png differ diff --git a/Images/shot3.png b/Images/shot3.png deleted file mode 100644 index 48a3d4d5..00000000 Binary files a/Images/shot3.png and /dev/null differ diff --git a/Images/shot4.png b/Images/shot4.png deleted file mode 100644 index f8fc556f..00000000 Binary files a/Images/shot4.png and /dev/null differ diff --git a/Images/shot5.png b/Images/shot5.png deleted file mode 100644 index 13e3fdfe..00000000 Binary files a/Images/shot5.png and /dev/null differ diff --git a/Images/shot6.png b/Images/shot6.png deleted file mode 100644 index b564b4bd..00000000 Binary files a/Images/shot6.png and /dev/null differ diff --git a/Images/shot7.png b/Images/shot7.png deleted file mode 100644 index 678cb0f0..00000000 Binary files a/Images/shot7.png and /dev/null differ diff --git a/Images/shot8.png b/Images/shot8.png deleted file mode 100644 index 20b0a69a..00000000 Binary files a/Images/shot8.png and /dev/null differ diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/Accelerometer.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/Accelerometer.cs deleted file mode 100644 index a397a084..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/Accelerometer.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; - -namespace Microsoft.Devices.Sensors -{ - public class Accelerometer : SensorBase - { - private bool _Started = false; - - public Accelerometer() - { - State = SensorState.Ready; - } - -#if __MOBILE__ - private void OnImplReadingChanged(object ?sender, Xamarin.Essentials.AccelerometerChangedEventArgs args) - { - // We always rotate it to the right... Which seems to be the opposite to Windows Phone default reported axis direction - ReadingChanged?.Invoke(this, new AccelerometerReadingEventArgs(-args.Reading.Acceleration.X, - -args.Reading.Acceleration.Y, -args.Reading.Acceleration.Z)); - - OnCurrentValueChanged(new SensorReadingEventArgs() - { - SensorReading = new AccelerometerReading() - { - Acceleration = new Microsoft.Xna.Framework.Vector3(-args.Reading.Acceleration.X, - -args.Reading.Acceleration.Y, -args.Reading.Acceleration.Z), - Timestamp = DateTimeOffset.Now - } - }); - } -#endif - - ~Accelerometer() - { - Stop(); - } - - public event EventHandler? ReadingChanged; - - public SensorState State { get; private set; } - - public void Start() - { - if (_Started) - { - return; - } - - _Started = true; - -#if __MOBILE__ - Xamarin.Essentials.Accelerometer.ReadingChanged += OnImplReadingChanged; - - if (!Xamarin.Essentials.Accelerometer.IsMonitoring) - { - Xamarin.Essentials.Accelerometer.Start(Xamarin.Essentials.SensorSpeed.Game); - } -#endif - } - - public void Stop() - { - if (!_Started) - { - return; - } - -#if __MOBILE__ - Xamarin.Essentials.Accelerometer.ReadingChanged -= OnImplReadingChanged; -#endif - - _Started = false; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerFailedException.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerFailedException.cs deleted file mode 100644 index d6461f7a..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerFailedException.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Devices.Sensors -{ - [Serializable] - public class AccelerometerFailedException : Exception - { - public AccelerometerFailedException() - { - } - - public AccelerometerFailedException(string message) - : base(message) - { - } - - public AccelerometerFailedException(string message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerReading.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerReading.cs deleted file mode 100644 index a28c2a5c..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerReading.cs +++ /dev/null @@ -1,12 +0,0 @@ -using Microsoft.Xna.Framework; -using System; - -namespace Microsoft.Devices.Sensors -{ - public struct AccelerometerReading : ISensorReading - { - public DateTimeOffset Timestamp { get; internal set; } - - public Vector3 Acceleration { get; internal set; } - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerReadingEventArgs.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerReadingEventArgs.cs deleted file mode 100644 index 0746a29e..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/AccelerometerReadingEventArgs.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Devices.Sensors -{ - public class AccelerometerReadingEventArgs : EventArgs - { - private double x; - private double y; - private double z; - - public AccelerometerReadingEventArgs(double x, double y, double z) - { - this.x = x; - this.y = y; - this.z = z; - } - - public double X => this.x; - public double Y => this.y; - public double Z => this.z; - } -} diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/ISensorReading.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/ISensorReading.cs deleted file mode 100644 index 8cd24b7a..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/ISensorReading.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace Microsoft.Devices.Sensors -{ - public interface ISensorReading - { - DateTimeOffset Timestamp { get; } - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/Microsoft.Devices.Sensors.csproj b/RE/Commit2/Core/Microsoft.Device.Sensors/Microsoft.Devices.Sensors.csproj deleted file mode 100644 index bd8ab7b6..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/Microsoft.Devices.Sensors.csproj +++ /dev/null @@ -1,23 +0,0 @@ - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - - enable - 8.0.0 - - - - - - - - - - - diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/SensorBase.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/SensorBase.cs deleted file mode 100644 index e017d20c..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/SensorBase.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace Microsoft.Devices.Sensors -{ - public abstract class SensorBase where TSensorReading : ISensorReading - { - public event EventHandler>? CurrentValueChanged; - - protected void OnCurrentValueChanged(SensorReadingEventArgs reading) - { - CurrentValueChanged?.Invoke(this, reading); - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/SensorReadingEventArgs.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/SensorReadingEventArgs.cs deleted file mode 100644 index 740aaae7..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/SensorReadingEventArgs.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System; - -namespace Microsoft.Devices.Sensors -{ - public class SensorReadingEventArgs : EventArgs where T : ISensorReading - { - public T SensorReading { get; set; } - } -} diff --git a/RE/Commit2/Core/Microsoft.Device.Sensors/SensorState.cs b/RE/Commit2/Core/Microsoft.Device.Sensors/SensorState.cs deleted file mode 100644 index b690806a..00000000 --- a/RE/Commit2/Core/Microsoft.Device.Sensors/SensorState.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Devices.Sensors -{ - public enum SensorState - { - NotSupported, - Ready, - Initializing, - NoData, - NoPermissions, - Disabled, - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Devices/DeviceType.cs b/RE/Commit2/Core/Microsoft.Phone/Devices/DeviceType.cs deleted file mode 100644 index 92ad6c50..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Devices/DeviceType.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Microsoft.Devices -{ - public enum DeviceType - { - Device, - Emulator - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Devices/Environment.cs b/RE/Commit2/Core/Microsoft.Phone/Devices/Environment.cs deleted file mode 100644 index d93a3d02..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Devices/Environment.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Microsoft.Devices -{ - public class Environment - { - // 我不骗你呀~~ 𓁹‿𓁹 - public static DeviceType DeviceType => DeviceType.Device; - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Devices/VibrateController.cs b/RE/Commit2/Core/Microsoft.Phone/Devices/VibrateController.cs deleted file mode 100644 index ce1ca74c..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Devices/VibrateController.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; - -namespace Microsoft.Devices -{ - public class VibrateController - { - private static VibrateController? _Default; - - public static VibrateController Default - { - get - { - if (_Default == null) - { - _Default = new VibrateController(); - } - - return _Default; - } - } - - public void Start(TimeSpan duration) - { - } - - public void Stop() - { - - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Info/DeviceExtendedProperties.cs b/RE/Commit2/Core/Microsoft.Phone/Info/DeviceExtendedProperties.cs deleted file mode 100644 index e0c3b975..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Info/DeviceExtendedProperties.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; - -namespace Microsoft.Phone.Info -{ - public class DeviceExtendedProperties - { - public static bool TryGetValue(string propertyName, out Object propertyValue) - { - propertyValue = GetValue(propertyName); - return true; - } - - public static Object? GetValue(string property) - { - switch (property) - { - case "DeviceManufacturer": - return "WPRunner"; - - case "DeviceName": - return "WPRunner 2022"; - - case "DeviceFirmwareVersion": - case "DeviceHardwareVersion": - return "8.0.0"; - - case "DeviceTotalMemory": - // Return 2GB RAM - return 2048L * 1024 * 1024; - - default: - return null; - } - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Info/UserExtendedProperties.cs b/RE/Commit2/Core/Microsoft.Phone/Info/UserExtendedProperties.cs deleted file mode 100644 index 3bc3748c..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Info/UserExtendedProperties.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; - -namespace Microsoft.Phone.Info -{ - public static class UserExtendedProperties - { - public static Object GetValue(string propertyName) - { - if (propertyName == null) - { - throw new ArgumentNullException("Null property name in retrieving user extended properties' value!"); - } - - switch (propertyName) - { - case "ANID": - return "123456789"; - - default: - throw new ArgumentException("Unknown property name!"); - } - } - - public static bool TryGetValue(string propertyName, out Object propertyValue) - { - if (propertyName == null) - { - throw new ArgumentNullException("Null property name in retrieving user extended properties' value!"); - } - - propertyValue = null; - - try - { - propertyValue = GetValue(propertyName); - } catch - { - return false; - } - - return true; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Marketplace/LicenseInformation.cs b/RE/Commit2/Core/Microsoft.Phone/Marketplace/LicenseInformation.cs deleted file mode 100644 index e342c23c..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Marketplace/LicenseInformation.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace Microsoft.Phone.Marketplace -{ - public sealed class LicenseInformation - { - public bool IsTrial() - { - return false; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Microsoft.Phone.csproj b/RE/Commit2/Core/Microsoft.Phone/Microsoft.Phone.csproj deleted file mode 100644 index 4bd005b7..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Microsoft.Phone.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - - enable - 8.0.0 - - - diff --git a/RE/Commit2/Core/Microsoft.Phone/Net/NetworkInformation/NetworkInterface.cs b/RE/Commit2/Core/Microsoft.Phone/Net/NetworkInformation/NetworkInterface.cs deleted file mode 100644 index d3cc33de..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Net/NetworkInformation/NetworkInterface.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System.Net.NetworkInformation; - -namespace Microsoft.Phone.Net.NetworkInformation -{ - public sealed class NetworkInterface - { - public static NetworkInterfaceType NetworkInterfaceType - { - // Android currently with .NET6 is incompatible with API level 30 on getifaddrs - // Supply a constant for now! -#if __ANDROID__ - get { - return NetworkInterfaceType.Wireless80211; - } -#else - get - { - foreach (System.Net.NetworkInformation.NetworkInterface netInterface in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces()) - { - if (netInterface.OperationalStatus == OperationalStatus.Up) - { - return (NetworkInterfaceType)netInterface.NetworkInterfaceType; - } - } - - return NetworkInterfaceType.None; - } -#endif - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Net/NetworkInformation/NetworkInterfaceType.cs b/RE/Commit2/Core/Microsoft.Phone/Net/NetworkInformation/NetworkInterfaceType.cs deleted file mode 100644 index 0b830d50..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Net/NetworkInformation/NetworkInterfaceType.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Net.NetworkInformation -{ - public enum NetworkInterfaceType - { - None = 0, - Unknown = 1, - Ethernet = 6, - TokenRing = 9, - Fddi = 15, - BasicIsdn = 20, - PrimaryIsdn = 21, - Ppp = 23, - Loopback = 24, - Ethernet3Megabit = 26, - Slip = 28, - Atm = 37, - GenericModem = 48, - FastEthernetT = 62, - Isdn = 63, - FastEthernetFx = 69, - Wireless80211 = 71, - AsymmetricDsl = 94, - RateAdaptDsl = 95, - SymmetricDsl = 96, - VeryHighSpeedDsl = 97, - IPOverAtm = 114, - GigabitEthernet = 117, - Tunnel = 131, - MultiRateSymmetricDsl = 143, - HighPerformanceSerialBus = 144, - MobileBroadbandGsm = 145, - MobileBroadbandCdma = 146 - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Scheduler/AgentExitReason.cs b/RE/Commit2/Core/Microsoft.Phone/Scheduler/AgentExitReason.cs deleted file mode 100644 index cf306596..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Scheduler/AgentExitReason.cs +++ /dev/null @@ -1,15 +0,0 @@ - -namespace Microsoft.Phone.Scheduler -{ - public enum AgentExitReason - { - None, - Completed, - Aborted, - MemoryQuotaExceeded, - ExecutionTimeExceeded, - UnhandledException, - Terminated, - Other, - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Scheduler/PeriodicTask.cs b/RE/Commit2/Core/Microsoft.Phone/Scheduler/PeriodicTask.cs deleted file mode 100644 index bcaf129c..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Scheduler/PeriodicTask.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace Microsoft.Phone.Scheduler -{ - public class PeriodicTask : ScheduledTask - { - public PeriodicTask(string name) - : base(name, ScheduledActionType.PeriodicTask) - { - - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledAction.cs b/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledAction.cs deleted file mode 100644 index 02241909..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledAction.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Scheduler -{ - public class ScheduledAction - { - public virtual DateTime BeginTime { get; set; } - public virtual DateTime ExpirationTime { get; set; } - public bool IsEnabled { get; } - public bool IsScheduled { get; } - - protected ScheduledActionType Type { get; set; } - - internal string? Name { get; set; } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledActionService.cs b/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledActionService.cs deleted file mode 100644 index 760840fc..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledActionService.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Scheduler -{ - public class ScheduledActionService - { - private static Dictionary Actions; - - static ScheduledActionService() - { - Actions = new Dictionary(); - } - - public static ScheduledAction? Find(string name) - { - return Actions.ContainsKey(name) ? Actions[name] : null; - } - - public static void Add(ScheduledAction action) - { - if (Actions.ContainsKey(action.Name!)) - { - throw new ArgumentException($"The task with the name: {action.Name} has already been scheduled!"); - } - - Actions.Add(action.Name!, action); - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledActionType.cs b/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledActionType.cs deleted file mode 100644 index b1886914..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledActionType.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Scheduler -{ - public enum ScheduledActionType - { - Alarm, - Reminder, - PeriodicTask, - OnIdleTask, - VoipKeepAliveTask, - VoipHttpIncomingCallTask, - IncomingMobileNetworkMessageTask, - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledTask.cs b/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledTask.cs deleted file mode 100644 index 07dc9730..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Scheduler/ScheduledTask.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Scheduler -{ - public class ScheduledTask : ScheduledAction - { - public string? Description { get; set; } - public AgentExitReason LastExitReason { get; internal set; } - public DateTime LastScheduledTime { get; internal set; } - - public ScheduledTask(string name, ScheduledActionType actionType) - { - this.Name = name; - this.Type = actionType; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/ActivatedEventArgs.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/ActivatedEventArgs.cs deleted file mode 100644 index b9e2aec1..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/ActivatedEventArgs.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Shell -{ - public class ActivatedEventArgs : EventArgs - { - public bool IsApplicationInstancePreserved { get; } - - public ActivatedEventArgs(bool isApplicationInstancePreserved) - { - IsApplicationInstancePreserved = isApplicationInstancePreserved; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/ClosingEventArgs.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/ClosingEventArgs.cs deleted file mode 100644 index 87d677c9..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/ClosingEventArgs.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Shell -{ - public class ClosingEventArgs : EventArgs - { - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/DeactivatedEventArgs.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/DeactivatedEventArgs.cs deleted file mode 100644 index 11f64ae9..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/DeactivatedEventArgs.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Microsoft.Phone.Shell -{ - public class DeactivatedEventArgs : EventArgs - { - private DeactivationReason _reason; - - public DeactivatedEventArgs() => this._reason = DeactivationReason.UserAction; - - public DeactivatedEventArgs(DeactivationReason reason) => this._reason = reason; - - public DeactivationReason Reason => this._reason; - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/DeactivationReason.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/DeactivationReason.cs deleted file mode 100644 index 8bd04fb2..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/DeactivationReason.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Microsoft.Phone.Shell -{ - public enum DeactivationReason - { - UserAction, - PowerSavingModeOn, - ApplicationAction, - ResourcesUnavailable, - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/IdleDetectionMode.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/IdleDetectionMode.cs deleted file mode 100644 index a3a15d9a..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/IdleDetectionMode.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Shell -{ - public enum IdleDetectionMode - { - Enabled, - Disabled, - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/LaunchingEventArgs.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/LaunchingEventArgs.cs deleted file mode 100644 index fd1fe498..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/LaunchingEventArgs.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Shell -{ - public class LaunchingEventArgs : EventArgs - { - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/PhoneApplicationService.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/PhoneApplicationService.cs deleted file mode 100644 index 79de6475..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/PhoneApplicationService.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Microsoft.Phone.Shell -{ - public class PhoneApplicationService - { - private bool _AppActivated = false; - - static PhoneApplicationService() - { - Current = new PhoneApplicationService(); - } - - public PhoneApplicationService() - { - UserIdleDetectionMode = IdleDetectionMode.Disabled; - ApplicationIdleDetectionMode = IdleDetectionMode.Disabled; - - State = new Dictionary(); - } - - public void HandleApplicationStart(bool anew) - { - _Activated?.Invoke(this, new ActivatedEventArgs(!anew)); - _AppActivated = true; - } - - public void HandleApplicationExit() - { - Deactivated?.Invoke(this, new DeactivatedEventArgs()); - Closing?.Invoke(this, new ClosingEventArgs()); - - // Recycle - Current = new PhoneApplicationService(); - } - - private event EventHandler? _Activated; - - public event EventHandler? Activated - { - add - { - if (_AppActivated) - { - value?.Invoke(this, new ActivatedEventArgs(false)); - } else - { - _Activated += value; - } - } - - remove - { - _Activated -= value; - } - } - public event EventHandler? Deactivated; - public event EventHandler? Launching; - public event EventHandler? Closing; - - public StartupMode StartupMode { get => StartupMode.Launch; } - - public static PhoneApplicationService? Current { get; private set; } - - public IDictionary State { get; private set; } - - public IdleDetectionMode UserIdleDetectionMode { get; set; } - public IdleDetectionMode ApplicationIdleDetectionMode { get; set; } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/ShellTile.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/ShellTile.cs deleted file mode 100644 index 2a901009..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/ShellTile.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Microsoft.Phone.Shell -{ - public class ShellTile - { - private static List _ActiveTiles; - - static ShellTile() - { - _ActiveTiles = new List(); - } - - public static IEnumerable ActiveTiles => _ActiveTiles; - public Uri NavigationUri { get; private set; } - - public void Update(ShellTileData data) - { - - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/ShellTileData.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/ShellTileData.cs deleted file mode 100644 index faa6a570..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/ShellTileData.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -namespace Microsoft.Phone.Shell -{ - public class ShellTileData - { - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/StandardTileData.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/StandardTileData.cs deleted file mode 100644 index f29259bc..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/StandardTileData.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Shell -{ - public class StandardTileData - { - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Shell/StartupMode.cs b/RE/Commit2/Core/Microsoft.Phone/Shell/StartupMode.cs deleted file mode 100644 index d718205a..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Shell/StartupMode.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace Microsoft.Phone.Shell -{ - public enum StartupMode - { - Activate, - Launch, - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/ChooserBase.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/ChooserBase.cs deleted file mode 100644 index a4abbab4..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/ChooserBase.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace Microsoft.Phone.Tasks -{ - public abstract class ChooserBase where TTaskEventArgs : TaskEventArgs - { - public ChooserBase() - { - } - - public event EventHandler? Completed; - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/MarketplaceContentType.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/MarketplaceContentType.cs deleted file mode 100644 index 99343b19..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/MarketplaceContentType.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Tasks -{ - public enum MarketplaceContentType - { - Applications = 1, - Music = 2 - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/MarketplaceDetailTask.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/MarketplaceDetailTask.cs deleted file mode 100644 index 9835fbc4..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/MarketplaceDetailTask.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Tasks -{ - public class MarketplaceDetailTask - { - private MarketplaceContentType _contentType; - - public MarketplaceContentType ContentType - { - get => _contentType; - set => _contentType = value; - } - - public void Show() - { - - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaLocationType.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaLocationType.cs deleted file mode 100644 index 75e44d43..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaLocationType.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; -namespace Microsoft.Phone.Tasks -{ - public enum MediaLocationType - { - None, - Install, - Data, - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlaybackControls.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlaybackControls.cs deleted file mode 100644 index e1027acc..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlaybackControls.cs +++ /dev/null @@ -1,17 +0,0 @@ - -using System; - -namespace Microsoft.Phone.Tasks -{ - [Flags] - public enum MediaPlaybackControls - { - None = 0, - Pause = 1, - Stop = 2, - FastForward = 4, - Rewind = 8, - Skip = 16, // 0x00000010 - All = Skip | Rewind | FastForward | Stop | Pause, // 0x0000001F - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlayerLauncher.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlayerLauncher.cs deleted file mode 100644 index 9d4e1be4..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlayerLauncher.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Tasks -{ - public class MediaPlayerLauncher - { - public MediaLocationType Location { get; set; } - - public Uri Media { get; set; } - - public MediaPlaybackControls Controls { get; set; } - - public MediaPlayerOrientation Orientation { get; set; } - - public void Show() - { - - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlayerOrientation.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlayerOrientation.cs deleted file mode 100644 index cd5800a7..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/MediaPlayerOrientation.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace Microsoft.Phone.Tasks -{ - public enum MediaPlayerOrientation - { - Landscape, - Portrait, - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/SaveRingtoneTask.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/SaveRingtoneTask.cs deleted file mode 100644 index 9b51e4cd..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/SaveRingtoneTask.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace Microsoft.Phone.Tasks -{ - public class SaveRingtoneTask : ChooserBase - { - public SaveRingtoneTask() - { - - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/TaskEventArgs.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/TaskEventArgs.cs deleted file mode 100644 index f2655c3e..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/TaskEventArgs.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Microsoft.Phone.Tasks -{ - public class TaskEventArgs : EventArgs - { - public TaskEventArgs(TaskResult result) - { - this.TaskResult = result; - } - - public virtual TaskResult TaskResult { get; internal set; } - public virtual Exception Error { get; internal set; } - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/TaskResult.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/TaskResult.cs deleted file mode 100644 index b54e09c0..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/TaskResult.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Phone.Tasks -{ - public enum TaskResult - { - None, - OK, - Cancel - } -} diff --git a/RE/Commit2/Core/Microsoft.Phone/Tasks/WebBrowserTask.cs b/RE/Commit2/Core/Microsoft.Phone/Tasks/WebBrowserTask.cs deleted file mode 100644 index 3554e8a4..00000000 --- a/RE/Commit2/Core/Microsoft.Phone/Tasks/WebBrowserTask.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Diagnostics; - -namespace Microsoft.Phone.Tasks -{ - public class WebBrowserTask - { - public WebBrowserTask() - { - - } - - public string? URL { get; set; } - public Uri Uri { get; set; } - - public void Show() - { - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Achievement.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Achievement.cs deleted file mode 100644 index 08b4717b..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Achievement.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; -using System.IO; -using System; - -using WPR.Common; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class Achievement - { - public Achievement() - { - } - - [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - [Key, Column(Order = 0)] - public int Id { get; set; } - - public string _IconPath { get; set; } - - public string Description { get; set; } - - public bool DisplayBeforeEarned { get; set; } - - public DateTime EarnedDateTime { get; set; } - - public bool EarnedOnline { get; set; } - - public int GamerScore { get; set; } - - public string HowToEarn { get; set; } - - public bool IsEarned { get; set; } - - public string Key { get; set; } - - public string Name { get; set; } - - public string OwnProductId { get; set; } - - public Stream GetPicture() - { - Stream res = new FileStream(Configuration.Current!.DataPath(_IconPath), FileMode.Open); - return res; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AchievementCollection.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AchievementCollection.cs deleted file mode 100644 index 5ddd803f..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AchievementCollection.cs +++ /dev/null @@ -1,133 +0,0 @@ - -using System; -using System.Collections; -using System.Collections.Generic; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class AchievementCollection : IList, ICollection, IEnumerable, IEnumerable, IDisposable - { - private List innerlist; - - public AchievementCollection() - { - innerlist = new List(); - } - - ~AchievementCollection() - { - Dispose(false); - } - - #region Properties - public int Count - { - get { return innerlist.Count; } - } - - public Achievement this[int index] - { - get { return innerlist[index]; } - set { throw new InvalidOperationException("Manually set achievement data is not allowed!"); } - } - - public Achievement? this[string key] - { - get { return innerlist.Find(achievement => achievement.Key == key); } - set { throw new InvalidOperationException("Manually set achievement data is not allowed!"); } - } - - private bool isReadOnly = false; - public bool IsReadOnly - { - get - { - return isReadOnly; - } - } - - #endregion Properties - - #region Public Methods - public void Add(Achievement item) - { - if (item == null) - throw new ArgumentNullException(); - - if (innerlist.Count == 0) - { - innerlist.Add(item); - return; - } - - for (int i = 0; i < innerlist.Count; i++) - { - /*if (item.Position < innerlist[i].Position) - { - this.innerlist.Insert(i, item); - return; - }*/ - } - - this.innerlist.Add(item); - } - - public void Clear() - { - innerlist.Clear(); - } - - public bool Contains(Achievement item) - { - return innerlist.Contains(item); - } - - public void CopyTo(Achievement[] array, int arrayIndex) - { - innerlist.CopyTo(array, arrayIndex); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - - } - - public int IndexOf(Achievement item) - { - return innerlist.IndexOf(item); - } - - public void Insert(int index, Achievement item) - { - innerlist.Insert(index, item); - } - - public bool Remove(Achievement item) - { - return innerlist.Remove(item); - } - - public void RemoveAt(int index) - { - innerlist.RemoveAt(index); - } - - public IEnumerator GetEnumerator() - { - return innerlist.GetEnumerator(); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return innerlist.GetEnumerator(); - } - - #endregion Methods - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AchievementContext.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AchievementContext.cs deleted file mode 100644 index ea2c2ce4..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AchievementContext.cs +++ /dev/null @@ -1,37 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using WPR.Common; - -using System.IO; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class AchievementContext : DbContext - { - public DbSet? Achievements { get; set; } - private static AchievementContext? _Current; - - private const string DatabasePath = "Database/achievements.db"; - private const string DatabaseFolder = "Database/"; - - public static AchievementContext Current - { - get - { - if (_Current == null) - { - _Current = new AchievementContext(); - } - - return _Current; - } - } - - public AchievementContext() - { - Directory.CreateDirectory(Configuration.Current.DataPath(DatabaseFolder)); - } - - protected override void OnConfiguring(DbContextOptionsBuilder options) - => options.UseSqlite($"Data Source={Configuration.Current.DataPath(DatabasePath)}"); - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarAnimation.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarAnimation.cs deleted file mode 100644 index 054e35a6..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarAnimation.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Collections.ObjectModel; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class AvatarAnimation : IDisposable - { - - private Matrix[] avatarBones = new Matrix[0x47]; - private ReadOnlyCollection boneTransforms; - private AvatarExpression currentExpression = new AvatarExpression(); - private TimeSpan currentPosition; - private bool isDisposed; - private TimeSpan length; - - public AvatarAnimation(AvatarAnimationPreset animationPreset) - { - throw new NotImplementedException(); - } - - public void Dispose() - { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - throw new NotImplementedException(); - } - - public void Update(TimeSpan elapsedAnimationTime, bool loop) - { - throw new NotImplementedException(); - } - - public ReadOnlyCollection BoneTransforms - { - get - { - return this.boneTransforms; - } - } - - public TimeSpan CurrentPosition - { - get - { - return this.currentPosition; - } - set - { - this.currentPosition = value; - this.Update(TimeSpan.Zero, false); - } - } - - public AvatarExpression Expression - { - get - { - return this.currentExpression; - } - } - - public bool IsDisposed - { - get - { - return this.isDisposed; - } - } - - public TimeSpan Length - { - get - { - return this.length; - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarDescription.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarDescription.cs deleted file mode 100644 index 2526e9bf..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarDescription.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class AvatarDescription - { - public AvatarDescription(byte[] data) - { - throw new NotImplementedException(); - } - - public static AvatarDescription CreateRandom() - { - throw new NotImplementedException(); - } - - public static AvatarDescription CreateRandom(AvatarBodyType bodyType) - { - throw new NotImplementedException(); - } - - public AvatarBodyType BodyType - { - get - { - throw new NotImplementedException(); - } - } - - public byte[] Description - { - get - { - throw new NotImplementedException(); - } - } - - public float Height - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsValid - { - get - { - throw new NotImplementedException(); - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarExpression.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarExpression.cs deleted file mode 100644 index b37c24fc..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarExpression.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public struct AvatarExpression - { - public AvatarMouth Mouth - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - public AvatarEye LeftEye - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - public AvatarEye RightEye - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - public AvatarEyebrow LeftEyebrow - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - public AvatarEyebrow RightEyebrow - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarRenderer.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarRenderer.cs deleted file mode 100644 index 04786e5c..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/AvatarRenderer.cs +++ /dev/null @@ -1,143 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Collections.ObjectModel; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class AvatarRenderer : IDisposable - { - [CLSCompliant(false)] - public const int BoneCount = 0x47; - - public AvatarRenderer(AvatarDescription avatarDescription) - : this(avatarDescription, true) - { - } - - public AvatarRenderer(AvatarDescription avatarDescription, bool useLoadingEffect) - { - } - - public void Dispose() - { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - throw new NotImplementedException(); - } - - public void Draw(IList bones, AvatarExpression expression) - { - throw new NotImplementedException(); - } - - public Vector3 AmbientLightColor - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public ReadOnlyCollection BindPose - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsDisposed - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsLoaded - { - get - { - throw new NotImplementedException(); - } - } - - public Vector3 LightColor - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public Vector3 LightDirection - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public ReadOnlyCollection ParentBones - { - get - { - throw new NotImplementedException(); - } - } - - public Matrix Projection - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public Matrix View - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public Matrix World - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Enums.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Enums.cs deleted file mode 100644 index b979a5bc..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Enums.cs +++ /dev/null @@ -1,288 +0,0 @@ -namespace Microsoft.Xna.Framework.GamerServices -{ - using System; - using Microsoft.Xna.Framework.GamerServices; - - public enum AvatarAnimationPreset - { - Stand0, - Stand1, - Stand2, - Stand3, - Stand4, - Stand5, - Stand6, - Stand7, - Clap, - Wave, - Celebrate, - FemaleIdleCheckNails, - FemaleIdleLookAround, - FemaleIdleShiftWeight, - FemaleIdleFixShoe, - FemaleAngry, - FemaleConfused, - FemaleLaugh, - FemaleCry, - FemaleShocked, - FemaleYawn, - MaleIdleLookAround, - MaleIdleStretch, - MaleIdleShiftWeight, - MaleIdleCheckHand, - MaleAngry, - MaleConfused, - MaleLaugh, - MaleCry, - MaleSurprised, - MaleYawn - } - - public enum AvatarBodyType - { - Female, - Male - } - - public enum AvatarBone - { - AnkleLeft = 11, - AnkleRight = 15, - BackLower = 1, - BackUpper = 5, - CollarLeft = 12, - CollarRight = 0x10, - ElbowLeft = 0x19, - ElbowRight = 0x1c, - FingerIndex2Left = 0x33, - FingerIndex2Right = 0x38, - FingerIndex3Left = 0x3d, - FingerIndex3Right = 0x42, - FingerIndexLeft = 0x25, - FingerIndexRight = 0x2c, - FingerMiddle2Left = 0x34, - FingerMiddle2Right = 0x39, - FingerMiddle3Left = 0x3e, - FingerMiddle3Right = 0x43, - FingerMiddleLeft = 0x26, - FingerMiddleRight = 0x2d, - FingerRing2Left = 0x35, - FingerRing2Right = 0x3a, - FingerRing3Left = 0x3f, - FingerRing3Right = 0x44, - FingerRingLeft = 0x27, - FingerRingRight = 0x2e, - FingerSmall2Left = 0x36, - FingerSmall2Right = 0x3b, - FingerSmall3Left = 0x40, - FingerSmall3Right = 0x45, - FingerSmallLeft = 40, - FingerSmallRight = 0x2f, - FingerThumb2Left = 0x37, - FingerThumb2Right = 60, - FingerThumb3Left = 0x41, - FingerThumb3Right = 70, - FingerThumbLeft = 0x2b, - FingerThumbRight = 50, - Head = 0x13, - HipLeft = 2, - HipRight = 3, - KneeLeft = 6, - KneeRight = 8, - Neck = 14, - PropLeft = 0x29, - PropRight = 0x30, - Root = 0, - ShoulderLeft = 20, - ShoulderRight = 0x16, - SpecialLeft = 0x2a, - SpecialRight = 0x31, - ToeLeft = 0x15, - ToeRight = 0x17, - WristLeft = 0x21, - WristRight = 0x24 - } - - public enum AvatarEye - { - Neutral, - Sad, - Angry, - Confused, - Laughing, - Shocked, - Happy, - Yawning, - Sleeping, - LookUp, - LookDown, - LookLeft, - LookRight, - Blink - } - - public enum AvatarEyebrow - { - Neutral, - Sad, - Angry, - Confused, - Raised - } - - public enum AvatarMouth - { - Neutral, - Sad, - Angry, - Confused, - Laughing, - Shocked, - Happy, - PhoneticO, - PhoneticAi, - PhoneticEe, - PhoneticFv, - PhoneticW, - PhoneticL, - PhoneticDth - } - - public enum ControllerSensitivity - { - Low = 0, - Medium = 1, - High = 2, - } - - [Flags] - internal enum FriendState - { - FriendHasVoice = 0x20, - FriendIsAway = 8, - FriendIsBusy = 0x10, - FriendIsJoinable = 4, - FriendIsOnline = 1, - FriendIsPlaying = 2, - FriendRequestReceivedFrom = 0x40, - FriendRequestSentTo = 0x80, - InviteAccepted = 0x400, - InviteReceivedFrom = 0x100, - InviteRejected = 0x800, - InviteSentTo = 0x200 - } - - public enum GameDifficulty - { - Easy, - Normal, - Hard - } - - public enum GamerPresenceMode - { - None, - SinglePlayer, - Multiplayer, - LocalCoOp, - LocalVersus, - OnlineCoOp, - OnlineVersus, - VersusComputer, - Stage, - Level, - CoOpStage, - CoOpLevel, - ArcadeMode, - CampaignMode, - ChallengeMode, - ExplorationMode, - PracticeMode, - PuzzleMode, - ScenarioMode, - StoryMode, - SurvivalMode, - TutorialMode, - DifficultyEasy, - DifficultyMedium, - DifficultyHard, - DifficultyExtreme, - Score, - VersusScore, - Winning, - Losing, - ScoreIsTied, - Outnumbered, - OnARoll, - InCombat, - BattlingBoss, - TimeAttack, - TryingForRecord, - FreePlay, - WastingTime, - StuckOnAHardBit, - NearlyFinished, - LookingForGames, - WaitingForPlayers, - WaitingInLobby, - SettingUpMatch, - PlayingWithFriends, - AtMenu, - StartingGame, - Paused, - GameOver, - WonTheGame, - ConfiguringSettings, - CustomizingPlayer, - EditingLevel, - InGameStore, - WatchingCutscene, - WatchingCredits, - PlayingMinigame, - FoundSecret, - CornflowerBlue - } - - public enum GamerPrivilegeSetting - { - Blocked, - FriendsOnly, - Everyone - } - public enum GamerZone - { - Unknown, - Recreation, - Pro, - Family, - Underground - } - - public enum RacingCameraAngle - { - Back, - Front, - Inside - } - public enum MessageBoxIcon - { - None, - Error, - Warning, - Alert - } - - public enum NotificationPosition - { - TopLeft, - TopCenter, - TopRight, - CenterLeft, - Center, - CenterRight, - BottomLeft, - BottomCenter, - BottomRight - } - -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/FriendCollection.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/FriendCollection.cs deleted file mode 100644 index fc7b014c..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/FriendCollection.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class FriendCollection : GamerCollection, IDisposable - { - internal FriendCollection() - { - } - - public void Dispose() - { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - private void Dispose(bool disposing) - { - throw new NotImplementedException(); - } - - public bool IsDisposed - { - get - { - throw new NotImplementedException(); - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/FriendGamer.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/FriendGamer.cs deleted file mode 100644 index 52c0022d..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/FriendGamer.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class FriendGamer : Gamer - { - internal FriendGamer() - { - } - - public bool FriendRequestReceivedFrom - { - get - { - throw new NotImplementedException(); - } - } - - public bool FriendRequestSentTo - { - get - { - throw new NotImplementedException(); - } - } - - public bool HasVoice - { - get - { - throw new NotImplementedException(); - } - } - - public bool InviteAccepted - { - get - { - throw new NotImplementedException(); - } - } - - public bool InviteReceivedFrom - { - get - { - throw new NotImplementedException(); - } - } - - public bool InviteRejected - { - get - { - throw new NotImplementedException(); - } - } - - public bool InviteSentTo - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsAway - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsBusy - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsJoinable - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsOnline - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsPlaying - { - get - { - throw new NotImplementedException(); - } - } - - public string Presence - { - get - { - throw new NotImplementedException(); - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GameDefaults.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GameDefaults.cs deleted file mode 100644 index 6875dffa..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GameDefaults.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Microsoft.Xna.Framework.Graphics; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class GameDefaults - { - internal GameDefaults() - { - } - - public bool AccelerateWithButtons - { - get - { - throw new NotImplementedException(); - } - } - - public bool AutoAim - { - get - { - throw new NotImplementedException(); - } - } - - public bool AutoCenter - { - get - { - throw new NotImplementedException(); - } - } - - public bool BrakeWithButtons - { - get - { - throw new NotImplementedException(); - } - } - - public ControllerSensitivity ControllerSensitivity - { - get - { - throw new NotImplementedException(); - } - } - - public GameDifficulty GameDifficulty - { - get - { - throw new NotImplementedException(); - } - } - - public bool InvertYAxis - { - get - { - throw new NotImplementedException(); - } - } - - public bool ManualTransmission - { - get - { - throw new NotImplementedException(); - } - } - - public bool MoveWithRightThumbStick - { - get - { - throw new NotImplementedException(); - } - } - - public Color? PrimaryColor - { - get - { - throw new NotImplementedException(); - } - } - - public RacingCameraAngle RacingCameraAngle - { - get - { - throw new NotImplementedException(); - } - } - - public Color? SecondaryColor - { - get - { - throw new NotImplementedException(); - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamePrivilegeException.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamePrivilegeException.cs deleted file mode 100644 index e9692b6d..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamePrivilegeException.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.Serialization; - -namespace Microsoft.Xna.Framework.GamerServices -{ - [Serializable] - public class GamerPrivilegeException : Exception - { - public GamerPrivilegeException() - { - } - - public GamerPrivilegeException(string message) - : base(message) - { - } - - protected GamerPrivilegeException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } - - public GamerPrivilegeException(string message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GameUpdateRequiredException.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GameUpdateRequiredException.cs deleted file mode 100644 index 1ca56842..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GameUpdateRequiredException.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.Serialization; - -namespace Microsoft.Xna.Framework.GamerServices -{ - [Serializable] - public class GameUpdateRequiredException : Exception - { - public GameUpdateRequiredException() - { - } - - public GameUpdateRequiredException(string message) - : base(message) - { - } - - protected GameUpdateRequiredException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } - - public GameUpdateRequiredException(string message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Gamer.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Gamer.cs deleted file mode 100644 index 023f7091..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Gamer.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; - -using Microsoft.EntityFrameworkCore; -using System.Linq; - -using WPR.Common; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public abstract class Gamer : IDisposable - { - internal static SignedInGamerCollection _SignedInGamers; - - private LeaderboardWriter _LeaderboardWriter; - private String _GamerTag; - - internal Gamer() - { - _LeaderboardWriter = new LeaderboardWriter(); - _GamerTag = Configuration.Current.GamerTag ?? "HarryDirk"; - } - - static Gamer() - { - _SignedInGamers = new SignedInGamerCollection(new List{ - new SignedInGamer() { PlayerIndex = PlayerIndex.One } - }); - } - - public IAsyncResult BeginGetProfile(AsyncCallback callback, object asyncState) - { - return Task.Run(async () => - { - GamerProfile profile = new GamerProfile(); - var earnedIte = AchievementContext.Current.Achievements!.Where(a => a.IsEarned); - - profile.TotalAchievements = await earnedIte.CountAsync(); - profile.GamerScore = await earnedIte.SumAsync(a => a.GamerScore); - profile.GamerZone = GamerZone.Underground; - profile.Region = System.Globalization.RegionInfo.CurrentRegion; - profile.Reputation = 100.0f; - profile.Motto = ""; - - if (callback != null) - { - TaskCompletionSource source = new TaskCompletionSource(asyncState); - source.SetResult(profile); - - callback(source.Task); - } - - return profile; - }); - } - - public GamerProfile EndGetProfile(IAsyncResult result) - { - return (result as Task)!.GetAwaiter().GetResult(); - } - - public GamerProfile GetProfile() => EndGetProfile(BeginGetProfile(null, null)); - - public override string ToString() - { - throw new NotImplementedException(); - } - - public static IAsyncResult BeginGetPartnerToken( - string audienceUri, - AsyncCallback callback, - object asyncState) - { - return StubUtils.ForeverTask; - } - - public string Gamertag - { - get => _GamerTag; - set => _GamerTag = value; - } - - public string DisplayName => _GamerTag; - - public void Dispose() - { - IsDisposed = true; - } - - public bool IsDisposed - { - get; - set; - } - - public static SignedInGamerCollection SignedInGamers - { - get - { - return _SignedInGamers; - } - } - - public object Tag - { - get; - set; - } - - public LeaderboardWriter LeaderboardWriter - { - get => _LeaderboardWriter; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerCollection.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerCollection.cs deleted file mode 100644 index 6f76fb3c..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerCollection.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Collections.ObjectModel; -using System.Collections; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class GamerCollection : ReadOnlyCollection, IEnumerable, IEnumerable where T : Gamer - { - private List _InternalList; - - public struct GamerCollectionEnumerator : IEnumerator, IDisposable, IEnumerator - { - internal GamerCollectionEnumerator(List.Enumerator enumerator) - { - _Enumerator = enumerator; - } - - private List.Enumerator _Enumerator; - - public T Current => _Enumerator.Current; - - public void Dispose() => _Enumerator.Dispose(); - - void IEnumerator.Reset() - { - (_Enumerator as IEnumerator).Reset(); - } - - public bool MoveNext() => _Enumerator.MoveNext(); - - object IEnumerator.Current => _Enumerator.Current; - } - - internal GamerCollection() - : base(new List()) - { - _InternalList = (Items as List)!; - } - - public GamerCollection(List list) - : base(list) - { - _InternalList = (Items as List)!; - } - - IEnumerator IEnumerable.GetEnumerator() - { - return _InternalList.GetEnumerator(); - } - - public new GamerCollectionEnumerator GetEnumerator() - { - return new GamerCollectionEnumerator(_InternalList.GetEnumerator()); - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerPresence.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerPresence.cs deleted file mode 100644 index 20006b79..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerPresence.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class GamerPresence - { - internal GamerPresence() - { - } - - public GamerPresenceMode PresenceMode - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public int PresenceValue - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerPrivileges.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerPrivileges.cs deleted file mode 100644 index 08296c81..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerPrivileges.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class GamerPrivileges - { - internal GamerPrivileges() - { - } - - public GamerPrivilegeSetting AllowCommunication - { - get - { - throw new NotImplementedException(); - } - } - - public bool AllowOnlineSessions - { - get - { - throw new NotImplementedException(); - } - } - - public GamerPrivilegeSetting AllowProfileViewing - { - get - { - throw new NotImplementedException(); - } - } - - public bool AllowPurchaseContent - { - get - { - throw new NotImplementedException(); - } - } - - public bool AllowTradeContent - { - get - { - throw new NotImplementedException(); - } - } - - public GamerPrivilegeSetting AllowUserCreatedContent - { - get - { - throw new NotImplementedException(); - } - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerProfile.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerProfile.cs deleted file mode 100644 index 4b86d70c..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerProfile.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Microsoft.Xna.Framework.Graphics; -using System.Globalization; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class GamerProfile : IDisposable - { - - internal GamerProfile() - { - } - - public void Dispose() - { - throw new NotImplementedException(); - } - - public Texture2D GamerPicture - { - get; - internal set; - } - - public int GamerScore - { - get; - internal set; - } - - public GamerZone GamerZone - { - get; - internal set; - } - - public bool IsDisposed - { - get; - internal set; - } - - public string Motto - { - get; - internal set; - } - - public RegionInfo Region - { - get; - internal set; - } - - public float Reputation - { - get; - internal set; - } - - public int TitlesPlayed - { - get; - internal set; - } - - public int TotalAchievements - { - get; - internal set; - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesComponent.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesComponent.cs deleted file mode 100644 index 16311f1d..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesComponent.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class GamerServicesComponent : GameComponent - { - public GamerServicesComponent(Game game) - : base(game) - { - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesDispatcher.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesDispatcher.cs deleted file mode 100644 index 924e31f8..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesDispatcher.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public static class GamerServicesDispatcher - { - - public static event EventHandler InstallingTitleUpdate; - - - public static void Initialize(IServiceProvider serviceProvider) - { - } - - public static void Update() - { - } - - public static bool IsInitialized => true; - - public static IntPtr WindowHandle - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesNotAvailableException.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesNotAvailableException.cs deleted file mode 100644 index 33f9a9ec..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GamerServicesNotAvailableException.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.Serialization; - -namespace Microsoft.Xna.Framework.GamerServices -{ - [Serializable] - public class GamerServicesNotAvailableException : Exception - { - public GamerServicesNotAvailableException() - { - } - - public GamerServicesNotAvailableException(string message) - : base(message) - { - } - - protected GamerServicesNotAvailableException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } - - public GamerServicesNotAvailableException(string message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Guide.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Guide.cs deleted file mode 100644 index ead887dd..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Guide.cs +++ /dev/null @@ -1,215 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.Linq; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public static class Guide - { - public static bool _SimulateTrialMode = false; - - public static Func, int, MessageBoxIcon, Task> ShowMessageBoxFunc; - public static Func> ShowInputBoxFunc; - - static Guide() { - IsVisible = false; - } - - public static IAsyncResult BeginShowKeyboardInput(PlayerIndex player, string title, string description, string defaultText, AsyncCallback callback, object state) - { - return Task.Run(async () => - { - IsVisible = true; - - string? result = await ShowInputBoxFunc(title, description, defaultText); - if (result == null) - { - result = defaultText; - } - - IsVisible = false; - - if (callback != null) - { - TaskCompletionSource compSource = new TaskCompletionSource(state); - compSource.SetResult(result); - - callback.Invoke(compSource.Task); - } - - return result; - }); - } - - public static IAsyncResult BeginShowMessageBox(string title, string text, IEnumerable buttons, int focusButton, MessageBoxIcon icon, AsyncCallback callback, object state) - { - if (buttons.Count() > 2) - { - throw new ArgumentException("Show message box can't handle more than two buttons!"); - } - - return Task.Run(async () => - { - IsVisible = true; - - int result = await ShowMessageBoxFunc(title, text, buttons, focusButton, icon); - - IsVisible = false; - - if (callback != null) - { - TaskCompletionSource compSource = new TaskCompletionSource(state); - compSource.SetResult(result); - - callback.Invoke(compSource.Task); - } - - return result; - }); - } - - public static IAsyncResult BeginShowMessageBox(PlayerIndex player, string title, string text, IEnumerable buttons, int focusButton, MessageBoxIcon icon, AsyncCallback callback, object state) - { - return BeginShowMessageBox(title, text, buttons, focusButton, icon, callback, state); - } - - public static IAsyncResult BeginShowStorageDeviceSelector(AsyncCallback callback, object state) - { - throw new NotImplementedException(); - } - - public static IAsyncResult BeginShowStorageDeviceSelector(PlayerIndex player, AsyncCallback callback, object state) - { - throw new NotImplementedException(); - } - - public static IAsyncResult BeginShowStorageDeviceSelector(int sizeInBytes, int directoryCount, AsyncCallback callback, object state) - { - throw new NotImplementedException(); - } - - public static IAsyncResult BeginShowStorageDeviceSelector(PlayerIndex player, int sizeInBytes, int directoryCount, AsyncCallback callback, object state) - { - throw new NotImplementedException(); - } - - public static void DelayNotifications(TimeSpan delay) - { - throw new NotImplementedException(); - } - - public static string EndShowKeyboardInput(IAsyncResult result) - { - return (result as Task)!.Result; - } - - public static int? EndShowMessageBox(IAsyncResult result) - { - return (result as Task)!.Result; - } - - public static void ShowComposeMessage(PlayerIndex player, string text, IEnumerable recipients) - { - throw new NotImplementedException(); - } - - public static void ShowFriendRequest(PlayerIndex player, Gamer gamer) - { - throw new NotImplementedException(); - } - - public static void ShowFriends(PlayerIndex player) - { - throw new NotImplementedException(); - } - - public static void ShowGameInvite(PlayerIndex player, IEnumerable recipients) - { - throw new NotImplementedException(); - } - - public static void ShowGamerCard(PlayerIndex player, Gamer gamer) - { - throw new NotImplementedException(); - } - - public static void ShowMarketplace(PlayerIndex player) - { - throw new NotImplementedException(); - } - - public static void ShowMessages(PlayerIndex player) - { - throw new NotImplementedException(); - } - - public static void ShowParty(PlayerIndex player) - { - throw new NotImplementedException(); - } - - public static void ShowPartySessions(PlayerIndex player) - { - throw new NotImplementedException(); - } - - public static void ShowPlayerReview(PlayerIndex player, Gamer gamer) - { - throw new NotImplementedException(); - } - - public static void ShowPlayers(PlayerIndex player) - { - throw new NotImplementedException(); - } - - public static void ShowSignIn(int paneCount, bool onlineOnly) - { - } - - public static bool IsScreenSaverEnabled - { - get - { - return true; - } - set - { - } - } - - public static bool IsTrialMode - { - get - { - return false; - } - } - - public static bool IsVisible - { - get; - private set; - } - - public static NotificationPosition NotificationPosition - { - get - { - throw new NotImplementedException(); - } - set - { - throw new NotImplementedException(); - } - } - - public static bool SimulateTrialMode - { - get => _SimulateTrialMode; - set => _SimulateTrialMode = value; - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GuideAlreadyVisibleException.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GuideAlreadyVisibleException.cs deleted file mode 100644 index f221a25a..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/GuideAlreadyVisibleException.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.Serialization; - -namespace Microsoft.Xna.Framework.GamerServices -{ - [Serializable] - public class GuideAlreadyVisibleException : Exception - { - public GuideAlreadyVisibleException() - { - } - - public GuideAlreadyVisibleException(string message) - : base(message) - { - } - - protected GuideAlreadyVisibleException(SerializationInfo info, StreamingContext context) - : base(info, context) - { - } - - public GuideAlreadyVisibleException(string message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardEntry.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardEntry.cs deleted file mode 100644 index 0572c759..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardEntry.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Globalization; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class LeaderboardEntry - { - private Gamer? _Gamer; - private PropertyDictionary? _Columns; - private long _Rating; - - public Gamer? Gamer - { - get => _Gamer; - set => _Gamer = value; - } - - public PropertyDictionary? Columns - { - get => _Columns; - set => _Columns = value; - } - - public long Rating - { - get => _Rating; - set => _Rating = value; - } - - public LeaderboardEntry() - { - _Columns = new PropertyDictionary(false, 20); - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardIdentity.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardIdentity.cs deleted file mode 100644 index 0e8006cc..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardIdentity.cs +++ /dev/null @@ -1,18 +0,0 @@ - -namespace Microsoft.Xna.Framework.GamerServices -{ - public struct LeaderboardIdentity - { - public string Key { get; set; } - - public int GameMode { get; set; } - - public static LeaderboardIdentity Create(LeaderboardKey key, int gameMode) => new LeaderboardIdentity() - { - Key = key.ToString(), - GameMode = gameMode - }; - - public static LeaderboardIdentity Create(LeaderboardKey key) => Create(key, 0); - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardKey.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardKey.cs deleted file mode 100644 index 55364aca..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardKey.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Microsoft.Xna.Framework.GamerServices -{ - public enum LeaderboardKey - { - BestScoreLifeTime, - BestScoreRecent, - BestTimeLifeTime, - BestTimeRecent, - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardOutcome.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardOutcome.cs deleted file mode 100644 index 8f46a635..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardOutcome.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public enum LeaderboardOutcome - { - None, - Win, - Loss, - Tie, - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardReader.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardReader.cs deleted file mode 100644 index 72c32315..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardReader.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; - -using WPR.Common; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class LeaderboardReader - { - private ReadOnlyCollection? _Entries; - public ReadOnlyCollection? Entries => this._Entries; - - public LeaderboardReader() - { - _Entries = new ReadOnlyCollection(new List()); - } - - public IAsyncResult BeginPageDown(AsyncCallback callback, object asyncState) - { - return StubUtils.ForeverTask; - } - public IAsyncResult BeginPageUp(AsyncCallback callback, object asyncState) - { - return StubUtils.ForeverTask; - } - public static IAsyncResult BeginRead(LeaderboardIdentity leaderb, - int pageStart, int pageSize, AsyncCallback callback, object asyncState) - { - return StubUtils.ForeverTask; - } - - public static IAsyncResult BeginRead( - LeaderboardIdentity leaderboardId, - Gamer pivotGamer, - int pageSize, - AsyncCallback callback, - object asyncState) - { - return StubUtils.ForeverTask; - } - - public static IAsyncResult BeginRead( - LeaderboardIdentity leaderboardId, - IEnumerable gamers, - Gamer pivotGamer, - int pageSize, - AsyncCallback callback, - object asyncState) - { - return StubUtils.ForeverTask; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardWriter.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardWriter.cs deleted file mode 100644 index 8d065ea2..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/LeaderboardWriter.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.ObjectModel; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class LeaderboardWriter - { - private LeaderboardEntry? _Entry; - - public LeaderboardWriter() - { - _Entry = new LeaderboardEntry(); - } - - public LeaderboardEntry GetLeaderboard(LeaderboardIdentity identity) - { - return _Entry; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Microsoft.Xna.Framework.GamerServices.csproj b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Microsoft.Xna.Framework.GamerServices.csproj deleted file mode 100644 index 0751e76c..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Microsoft.Xna.Framework.GamerServices.csproj +++ /dev/null @@ -1,52 +0,0 @@ - - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - - 5.0.17 - 6.0.8 - enable - 4.0.0 - - - - - - - - - - - - - - - - - - - - - - - - True - True - Resources.resx - - - - - - ResXFileCodeGenerator - Resources.Designer.cs - - - - diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/20220831192854_InitialCreate.Designer.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/20220831192854_InitialCreate.Designer.cs deleted file mode 100644 index 30a8a053..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/20220831192854_InitialCreate.Designer.cs +++ /dev/null @@ -1,74 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Microsoft.Xna.Framework.GamerServices; - -#nullable disable - -namespace Microsoft.Xna.Framework.GamerServices.Migrations -{ - [DbContext(typeof(AchievementContext))] - [Migration("20220831192854_InitialCreate")] - partial class InitialCreate - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "6.0.8"); - - modelBuilder.Entity("Microsoft.Xna.Framework.GamerServices.Achievement", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("DisplayBeforeEarned") - .HasColumnType("INTEGER"); - - b.Property("EarnedDateTime") - .HasColumnType("TEXT"); - - b.Property("EarnedOnline") - .HasColumnType("INTEGER"); - - b.Property("GamerScore") - .HasColumnType("INTEGER"); - - b.Property("HowToEarn") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("IsEarned") - .HasColumnType("INTEGER"); - - b.Property("Key") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("OwnProductId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("_IconPath") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Achievements"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/20220831192854_InitialCreate.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/20220831192854_InitialCreate.cs deleted file mode 100644 index 9f16789b..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/20220831192854_InitialCreate.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace Microsoft.Xna.Framework.GamerServices.Migrations -{ - public partial class InitialCreate : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Achievements", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - _IconPath = table.Column(type: "TEXT", nullable: false), - Description = table.Column(type: "TEXT", nullable: false), - DisplayBeforeEarned = table.Column(type: "INTEGER", nullable: false), - EarnedDateTime = table.Column(type: "TEXT", nullable: false), - EarnedOnline = table.Column(type: "INTEGER", nullable: false), - GamerScore = table.Column(type: "INTEGER", nullable: false), - HowToEarn = table.Column(type: "TEXT", nullable: false), - IsEarned = table.Column(type: "INTEGER", nullable: false), - Key = table.Column(type: "TEXT", nullable: false), - Name = table.Column(type: "TEXT", nullable: false), - OwnProductId = table.Column(type: "TEXT", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Achievements", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Achievements"); - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/AchievementContextModelSnapshot.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/AchievementContextModelSnapshot.cs deleted file mode 100644 index 92effd1a..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Migrations/AchievementContextModelSnapshot.cs +++ /dev/null @@ -1,72 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using Microsoft.Xna.Framework.GamerServices; - -#nullable disable - -namespace Microsoft.Xna.Framework.GamerServices.Migrations -{ - [DbContext(typeof(AchievementContext))] - partial class AchievementContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "6.0.8"); - - modelBuilder.Entity("Microsoft.Xna.Framework.GamerServices.Achievement", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("Description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("DisplayBeforeEarned") - .HasColumnType("INTEGER"); - - b.Property("EarnedDateTime") - .HasColumnType("TEXT"); - - b.Property("EarnedOnline") - .HasColumnType("INTEGER"); - - b.Property("GamerScore") - .HasColumnType("INTEGER"); - - b.Property("HowToEarn") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("IsEarned") - .HasColumnType("INTEGER"); - - b.Property("Key") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("OwnProductId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("_IconPath") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Achievements"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Properties/Resources.Designer.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Properties/Resources.Designer.cs deleted file mode 100644 index 57cd6d73..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Properties/Resources.Designer.cs +++ /dev/null @@ -1,72 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Microsoft.Xna.Framework.GamerServices.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.Xna.Framework.GamerServices.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to Achievement unlocked. - /// - internal static string AchievementUnlocked { - get { - return ResourceManager.GetString("AchievementUnlocked", resourceCulture); - } - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Properties/Resources.resx b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Properties/Resources.resx deleted file mode 100644 index b52de974..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/Properties/Resources.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Achievement unlocked - - \ No newline at end of file diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/PropertyDictionary.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/PropertyDictionary.cs deleted file mode 100644 index 0ae30d98..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/PropertyDictionary.cs +++ /dev/null @@ -1,218 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Globalization; -using System.IO; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class PropertyDictionary : - IDictionary, - ICollection>, - IEnumerable>, - IEnumerable - { - private Dictionary properties; - private bool isReadOnly; - private bool fillingReadOnlyData; - private int changedPropertyCount; - - internal int ChangedPropertyCount => this.changedPropertyCount; - - internal PropertyDictionary(bool isReadOnly, int capacity) - { - this.isReadOnly = isReadOnly; - this.properties = new Dictionary(capacity); - } - - internal PropertyValue Add(string key, PropertyValue propertyValue) - { - this.properties.Add(key, propertyValue); - if (!this.fillingReadOnlyData) - ++this.changedPropertyCount; - return propertyValue; - } - - internal PropertyValue GetProperty(string key, bool demandCreate) - { - if (string.IsNullOrEmpty(key)) - throw new ArgumentNullException(nameof(key)); - PropertyValue propertyValue; - if (this.properties.TryGetValue(key, out propertyValue)) - return propertyValue; - return null; - } - - internal void Reset() - { - this.properties.Clear(); - this.changedPropertyCount = 0; - } - - internal void BeginFillData() => this.fillingReadOnlyData = true; - - internal void EndFillData() => this.fillingReadOnlyData = false; - - public int GetValueInt32(string key) => this.GetTypedValue(key); - - public long GetValueInt64(string key) => this.GetTypedValue(key); - - public float GetValueSingle(string key) => this.GetTypedValue(key); - - public double GetValueDouble(string key) => this.GetTypedValue(key); - - public string GetValueString(string key) => Convert.ToString(this.GetProperty(key, false).GetValue(), (IFormatProvider)CultureInfo.InvariantCulture); - - public LeaderboardOutcome GetValueOutcome(string key) => (LeaderboardOutcome)this.GetValueInt32(key); - - public DateTime GetValueDateTime(string key) => new DateTime(this.GetValueInt64(key)); - - public TimeSpan GetValueTimeSpan(string key) => new TimeSpan(this.GetValueInt64(key)); - - public Stream GetValueStream(string key) => this.GetProperty(key, false).GetValue() as Stream; - - private T GetTypedValue(string key) where T : struct, IEquatable - { - PropertyValue property = this.GetProperty(key, false); - return property is TypedPropertyValue typedPropertyValue ? typedPropertyValue.GetTypedValue() : (T)Convert.ChangeType(property.GetValue(), typeof(T), (IFormatProvider)CultureInfo.InvariantCulture); - } - - public void SetValue(string key, int value) => this.SetTypedValue(key, value); - - public void SetValue(string key, long value) => this.SetTypedValue(key, value); - - public void SetValue(string key, float value) => this.SetTypedValue(key, value); - - public void SetValue(string key, double value) => this.SetTypedValue(key, value); - - public void SetValue(string key, string value) => this.SetUntypedValue(key, (object)value); - - public void SetValue(string key, LeaderboardOutcome value) => this.SetTypedValue(key, (int)value); - - public void SetValue(string key, DateTime value) => this.SetTypedValue(key, value.Ticks); - - public void SetValue(string key, TimeSpan value) => this.SetTypedValue(key, value.Ticks); - - private void SetUntypedValue(string key, object value) - { - if (value == null) - throw new ArgumentNullException(nameof(value)); - if (this.isReadOnly && this.fillingReadOnlyData) - throw new NotSupportedException(string.Format((IFormatProvider)CultureInfo.CurrentCulture, "Read only", (object)typeof(PropertyDictionary).Name)); - PropertyValue property = this.GetProperty(key, true); - bool isChanged = property.IsChanged; - property.SetValue(value); - if (!property.IsChanged || isChanged) - return; - ++this.changedPropertyCount; - } - - private void SetTypedValue(string key, T value) where T : struct, IEquatable - { - if (this.isReadOnly && this.fillingReadOnlyData) - { - throw new NotSupportedException( - string.Format((IFormatProvider)CultureInfo.CurrentCulture, - "Read only", (object)typeof(PropertyDictionary).Name)); - } - - PropertyValue property = this.GetProperty(key, true); - - if (property != null) - { - bool isChanged = false; - - isChanged = property.IsChanged; - - if (property is TypedPropertyValue typedPropertyValue) - typedPropertyValue.SetTypedValue(value); - else - property.SetValue((object)value); - if (!property.IsChanged || isChanged || this.fillingReadOnlyData) - return; - ++this.changedPropertyCount; - // Write to leaderboard - } - } - - public int Count => this.properties.Count; - - public bool ContainsKey(string key) => this.properties.ContainsKey(key); - - public object this[string key] - { - get => this.GetProperty(key, false).GetValue(); - set => this.SetUntypedValue(key, value); - } - - public bool TryGetValue(string key, out object value) - { - PropertyValue propertyValue; - if (this.properties.TryGetValue(key, out propertyValue)) - { - value = propertyValue.GetValue(); - return true; - } - value = (object)null; - return false; - } - - public IEnumerator> GetEnumerator() - { - foreach (KeyValuePair property in this.properties) - yield return new KeyValuePair(property.Key, property.Value.GetValue()); - } - - IEnumerator IEnumerable.GetEnumerator() => (IEnumerator)this.GetEnumerator(); - - ICollection IDictionary.Keys => (ICollection)this.properties.Keys; - - ICollection IDictionary.Values - { - get - { - List objectList = new List(this.properties.Count); - foreach (PropertyValue propertyValue in this.properties.Values) - objectList.Add(propertyValue.GetValue()); - return (ICollection)objectList; - } - } - - bool ICollection>.Contains( - KeyValuePair item) - { - object objB; - return this.TryGetValue(item.Key, out objB) && object.Equals(item.Value, objB); - } - - void ICollection>.CopyTo( - KeyValuePair[] array, - int arrayIndex) - { - if (array == null) - throw new ArgumentNullException(nameof(array)); - foreach (KeyValuePair keyValuePair in this) - array[arrayIndex++] = keyValuePair; - } - - bool ICollection>.IsReadOnly => true; - - void IDictionary.Add(string key, object value) => throw new NotSupportedException(); - - void ICollection>.Add( - KeyValuePair item) - { - throw new NotSupportedException(); - } - - void ICollection>.Clear() => throw new NotSupportedException(); - - bool IDictionary.Remove(string key) => throw new NotSupportedException(); - - bool ICollection>.Remove( - KeyValuePair item) - { - throw new NotSupportedException(); - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/PropertyValue.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/PropertyValue.cs deleted file mode 100644 index 334e7702..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/PropertyValue.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace Microsoft.Xna.Framework.GamerServices -{ - internal abstract class PropertyValue - { - public bool IsChanged; - public bool IsReadOnly = true; - - public abstract object GetValue(); - - public abstract void SetValue(object value); - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInEventArgs.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInEventArgs.cs deleted file mode 100644 index 7093e47f..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInEventArgs.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class SignedInEventArgs : EventArgs - { - - private SignedInGamer gamer; - - public SignedInEventArgs(SignedInGamer gamer) - { - if (gamer == null) - { - throw new ArgumentNullException("gamer"); - } - this.gamer = gamer; - } - - public SignedInGamer Gamer - { - get - { - return this.gamer; - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInGamer.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInGamer.cs deleted file mode 100644 index 9f7f6244..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInGamer.cs +++ /dev/null @@ -1,242 +0,0 @@ -using WPR.WindowsCompability; -using WPR.Common; - -using Microsoft.EntityFrameworkCore; - -using System.Linq; -using System.Threading.Tasks; -using System.Collections.Generic; -using System.Threading; -using System; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class SignedInGamer : Gamer - { - private const int DelaySignedInMillis = 2000; - private static bool FirstSignInSessionDone = false; - - private PlayerIndex _PlayerIndex; - - public event EventHandler AvatarChanged; - - public static void Reset() - { - FirstSignInSessionDone = false; - } - - public static event EventHandler SignedIn - { - add - { - if (value != null) - { - if (FirstSignInSessionDone) - { - value.Invoke(null, new SignedInEventArgs(_SignedInGamers[0])); - } else - { - Task.Delay(DelaySignedInMillis).ContinueWith(previous => - { - FirstSignInSessionDone = true; - value.Invoke(null, new SignedInEventArgs(_SignedInGamers[0])); - }); - } - } - } - remove - { - } - } - - public static event EventHandler SignedOut; - - internal SignedInGamer() - { - } - - public IAsyncResult BeginGetAchievements(AsyncCallback? callback, Object? asyncState) - { - return Task.Run(async () => - { - List achievementStored = await AchievementContext.Current!.Achievements! - .Where(x => x.OwnProductId == Application.Current.ProductId) - .ToListAsync(); - - if (achievementStored.Count == 0) - { - AchievementCollection collection = await TrueAchievements.Scraper.QueryAchievements(Application.Current!.ProductId!); - if (collection.Count != 0) - { - await AchievementContext.Current!.Achievements!.AddRangeAsync(collection.ToArray()); - await AchievementContext.Current!.SaveChangesAsync(); - } - - if (callback != null) - { - var compSource = new TaskCompletionSource(asyncState); - compSource.SetResult(collection); - - callback(compSource.Task); - } - - return collection; - } - - AchievementCollection coll = new AchievementCollection(); - foreach (Achievement achiQueried in achievementStored) - { - coll.Add(achiQueried); - } - - var completeSource = new TaskCompletionSource(asyncState); - completeSource.SetResult(coll); - - if (callback != null) - { - callback(completeSource.Task); - } - - return coll; - }); - } - - public AchievementCollection EndGetAchievements(IAsyncResult result) - { - Log.Error(LogCategory.GamerServices, "Result!"); - Task? collectResult = result as Task; - return collectResult!.GetAwaiter().GetResult(); - } - - public AchievementCollection GetAchievements() => this.EndGetAchievements(this.BeginGetAchievements(null, null)); - - public IAsyncResult BeginAwardAchievement(string achievementKey, AsyncCallback callback, - object state) - { - return Task.Run(async () => - { - List achievements = await AchievementContext.Current!.Achievements! - .Where(x => (x.OwnProductId == Application.Current.ProductId) && (x.Key == achievementKey)) - .ToListAsync(); - - if (achievements.Count > 1) - { - Log.Warn(LogCategory.GamerServices, $"More then two achievements with key {achievementKey} exists!"); - } - - if (achievements.Count != 0) - { - foreach (Achievement achievement in achievements) - { - if (achievement.IsEarned) - { - continue; - } - - achievement.IsEarned = true; - achievement.EarnedOnline = true; - achievement.EarnedDateTime = DateTime.Now; - } - - try - { - await NativeUI.NotificationManager.ShowNotification(new DesktopNotifications.Notification() - { - Title = Properties.Resources.AchievementUnlocked, - Body = $"{achievements[0].GamerScore}G - {achievements[0].Name}", - ImagePath = Configuration.Current!.DataPath(achievements[0]._IconPath), - SoundUri = "AchievementUnlocked" - }, DateTime.Now + TimeSpan.FromDays(1)); - } catch (Exception ex) - { - Log.Error(LogCategory.GamerServices, $"Fail to display Achievement notification with exception:\n {ex}"); - } - } - - await AchievementContext.Current!.SaveChangesAsync(); - - if (callback != null) - { - TaskCompletionSource source = new TaskCompletionSource(state); - source.SetResult(); - - callback(source.Task); - } - - return Task.CompletedTask; - }); - } - - public void EndAwardAchievement(IAsyncResult result) - { - } - - public void AwardAchievement(string achievementKey) => EndAwardAchievement(BeginAwardAchievement(achievementKey, null, null)); - - public FriendCollection GetFriends() - { - throw new NotImplementedException(); - } - - public bool IsFriend(Gamer gamer) - { - throw new NotImplementedException(); - } - public AvatarDescription Avatar - { - get - { - throw new NotImplementedException(); - } - } - - public GameDefaults GameDefaults - { - get - { - throw new NotImplementedException(); - } - } - - public bool IsGuest => false; - - public bool IsSignedInToLive - { - get - { - return true; - } - } - - public int PartySize - { - get - { - throw new NotImplementedException(); - } - } - - public PlayerIndex PlayerIndex - { - get => _PlayerIndex; - set => _PlayerIndex = value; - } - - public GamerPresence Presence - { - get - { - throw new NotImplementedException(); - } - } - - public GamerPrivileges Privileges - { - get - { - throw new NotImplementedException(); - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInGamerCollection.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInGamerCollection.cs deleted file mode 100644 index e1da5aa2..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedInGamerCollection.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public sealed class SignedInGamerCollection : GamerCollection - { - internal SignedInGamerCollection() - { - } - - public SignedInGamerCollection(List gamerList) - : base(gamerList) - { - - } - - public SignedInGamer this[PlayerIndex index] - { - get - { - for (int i = 0; i < base.Count; i++) - { - SignedInGamer gamer = base[i]; - if (gamer.PlayerIndex == index) - { - return gamer; - } - } - return null; - } - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedOutEventArgs.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedOutEventArgs.cs deleted file mode 100644 index 879d6fb5..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/SignedOutEventArgs.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Microsoft.Xna.Framework.GamerServices -{ - public class SignedOutEventArgs : EventArgs - { - private SignedInGamer gamer; - - public SignedOutEventArgs(SignedInGamer gamer) - { - if (gamer == null) - { - throw new ArgumentNullException("gamer"); - } - this.gamer = gamer; - } - - public SignedInGamer Gamer - { - get - { - return this.gamer; - } - } - - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TrueAchievements/GameToKey.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TrueAchievements/GameToKey.cs deleted file mode 100644 index 0923225e..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TrueAchievements/GameToKey.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.IO; -using System.Collections.Generic; - -using Newtonsoft.Json; - -using WPR.Common; - -namespace Microsoft.Xna.Framework.GamerServices.TrueAchievements -{ - public class GameToKey - { - private Dictionary? GameUrlMapping; - private Dictionary>? AchievementNameToKeyMapping; - - private const string ProductIdUrlJson = "ProductIdUrl.json"; - private const string AchievementMappingJson = "AchievementsNameToKey.json"; - - private string JsonDataPath; - - public GameToKey() - { - JsonDataPath = Configuration.Current.DataPath("Database/TrueAchievements"); - Directory.CreateDirectory(JsonDataPath); - - try - { - GameUrlMapping = JsonConvert.DeserializeObject>(File.ReadAllText(Path.Combine(JsonDataPath, ProductIdUrlJson))); - } catch (Exception ex) - { - Log.Error(LogCategory.GamerServices, $"TrueAchievements ProductIdToUrl JSON list failed to load with exception:\n {ex}"); - GameUrlMapping = new Dictionary(); - } - - try - { - AchievementNameToKeyMapping = JsonConvert.DeserializeObject>>( - File.ReadAllText(Path.Combine(JsonDataPath, AchievementMappingJson))); - } - catch (Exception ex) - { - Log.Error(LogCategory.GamerServices, $"TrueAchievements AchivementsKeyToName JSON list failed to load with exception:\n {ex}"); - AchievementNameToKeyMapping = new Dictionary>(); - } - } - - public string? GetURLFromProductId(string productId) - { - return GameUrlMapping!.ContainsKey(productId) ? GameUrlMapping![productId] : null; - } - - public string? GetAchievementKey(string productId, string name) - { - if (AchievementNameToKeyMapping!.ContainsKey(productId)) - { - return AchievementNameToKeyMapping[productId].ContainsKey(name) ? AchievementNameToKeyMapping[productId][name] : null; - } - - return null; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TrueAchievements/Scraper.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TrueAchievements/Scraper.cs deleted file mode 100644 index 6374f733..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TrueAchievements/Scraper.cs +++ /dev/null @@ -1,97 +0,0 @@ -using ExCSS; -using HtmlAgilityPack; -using WPR.Common; - -using System.IO; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.Linq; -using System; - -namespace Microsoft.Xna.Framework.GamerServices.TrueAchievements -{ - public class Scraper - { - public async static Task QueryAchievements(string productId) - { - GameToKey researcher = new GameToKey(); - string? urlPathContent = researcher.GetURLFromProductId(productId); - - if (urlPathContent == null) - { - Log.Error(LogCategory.GamerServices, $"Failed to obtain TrueAchievements's URL for product {productId}"); - return new AchievementCollection(); - } - - string fullUrl = $"https://www.trueachievements.com/game/{urlPathContent}/achievements"; - var response = await WWWAccess.CallUrlForString(fullUrl); - - var document = new HtmlDocument(); - document.LoadHtml(response); - - // Get sms1 image path - String sms1Path = null; - var styles = document.DocumentNode.SelectNodes("//head/style"); - - foreach (var style in styles) - { - var styleSheetParser = new StylesheetParser(); - var styleSheet = styleSheetParser.Parse(style.InnerText); - - var sms1Rule = styleSheet.StyleRules.Where(styleRule => styleRule.SelectorText == ".sms1"); - if (sms1Rule == null) - { - continue; - } - - String urlString = sms1Rule.First().Style.BackgroundImage; - sms1Path = urlString.Substring(5, urlString.Length - 7); - break; - } - - if (sms1Path == null) - { - return new AchievementCollection(); - } - - byte[] imageData = await WWWAccess.CallUrlDownload(sms1Path); - MemoryStream imageDataStream = new MemoryStream(imageData); - - var icons = document.DocumentNode.QuerySelectorAll(".ach-panels li"); - string currentStoreImages = Configuration.Current!.DataPath($"Database/Achievements/{productId}"); - List imagePaths = ImageUtils.SplitAndSave(currentStoreImages, - "achievement{0}.png", imageDataStream, - icons.Count, 1); - - var collection = new AchievementCollection(); - Achievement[] achievementList = new Achievement[icons.Count]; - - for (int i = 0; i < icons.Count; i++) - { - var achiKey = icons[i].QuerySelector("a .title"); - var achiScoreAndDesc = icons[i].QuerySelector("p"); - var test = achiScoreAndDesc.ChildAttributes("data-bf").First(); - var achiScore = Convert.ToInt32(achiScoreAndDesc.ChildAttributes("data-bf").First().Value.Split(' ')[0]); - - var keyFinal = researcher.GetAchievementKey(productId, achiKey.InnerText) ?? achiKey.InnerText; - - collection.Add(new Achievement() - { - Key = keyFinal, - Name = achiKey.InnerText, - Description = achiScoreAndDesc.InnerText, - _IconPath = Path.GetRelativePath(Configuration.Current!.DataStorePath!, imagePaths[i]), - GamerScore = achiScore, - IsEarned = false, - HowToEarn = achiScoreAndDesc.InnerText, - DisplayBeforeEarned = true, - OwnProductId = productId - }); - - Log.Error(LogCategory.GamerServices, collection.Last().Key); - } - - return collection; - } - } -} diff --git a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TypedPropertyValue.cs b/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TypedPropertyValue.cs deleted file mode 100644 index 165987f3..00000000 --- a/RE/Commit2/Core/Microsoft.Xna.Framework.GamerServices/TypedPropertyValue.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Globalization; - -namespace Microsoft.Xna.Framework.GamerServices -{ - internal class TypedPropertyValue : PropertyValue where T : IEquatable - { - protected T currentValue; - - public override object GetValue() => (object)this.currentValue; - - public T GetTypedValue() => this.currentValue; - - public override void SetValue(object value) => this.SetTypedValue((T)Convert.ChangeType(value, typeof(T), (IFormatProvider)CultureInfo.InvariantCulture)); - - public void SetTypedValue(T value) - { - if (value.Equals(this.currentValue)) - return; - this.currentValue = value; - this.IsChanged = true; - } - } -} diff --git a/RE/Commit2/Core/System.Device/Location/CivicAddress.cs b/RE/Commit2/Core/System.Device/Location/CivicAddress.cs deleted file mode 100644 index 725fe93e..00000000 --- a/RE/Commit2/Core/System.Device/Location/CivicAddress.cs +++ /dev/null @@ -1,120 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== -/*============================================================================= -** -** Class: CivicAddress -** -** Purpose: Represents a CivicAddress object -** -=============================================================================*/ - -using System.ComponentModel; - -namespace System.Device.Location -{ - public class CivicAddress - { - public static readonly CivicAddress Unknown = new CivicAddress(); - - // - // private construcotr for creating single instance of CivicAddress.Unknown - // - private CivicAddress() - { - AddressLine1 = String.Empty; - AddressLine2 = String.Empty; - Building = String.Empty; - City = String.Empty; - CountryRegion = String.Empty; - FloorLevel = String.Empty; - PostalCode = String.Empty; - StateProvince = String.Empty; - } - - public CivicAddress(String addressLine1, String addressLine2, String building, String city, String countryRegion, String floorLevel, String postalCode, String stateProvince) - : this() - { - bool hasField = false; - - if (addressLine1 != null && addressLine1 != String.Empty) - { - hasField = true; - AddressLine1 = addressLine1; - } - if (addressLine2 != null && addressLine2 != String.Empty) - { - hasField = true; - AddressLine2 = addressLine2; - } - if (building != null && building != String.Empty) - { - hasField = true; - Building = building; - } - if (city != null && city != String.Empty) - { - hasField = true; - City = city; - } - if (countryRegion != null && countryRegion != String.Empty) - { - hasField = true; - CountryRegion = countryRegion; - } - if (floorLevel != null && floorLevel != String.Empty) - { - hasField = true; - FloorLevel = floorLevel; - } - if (postalCode != null && postalCode != String.Empty) - { - hasField = true; - PostalCode = postalCode; - } - - if (stateProvince != null && stateProvince != String.Empty) - { - hasField = true; - StateProvince = stateProvince; - } - - if (!hasField) - { - throw new ArgumentException("No field assigned"); - } - } - - public String AddressLine1 { get; private set; } - public String AddressLine2 { get; private set; } - public String Building { get; private set; } - public String City { get; private set; } - public String CountryRegion { get; private set; } - public String FloorLevel { get; private set; } - public String PostalCode { get; private set; } - public String StateProvince { get; private set; } - } - - - public interface ICivicAddressResolver - { - void ResolveAddressAsync(GeoCoordinate coordinate); - event EventHandler ResolveAddressCompleted; - } - - - public class ResolveAddressCompletedEventArgs : AsyncCompletedEventArgs - { - public ResolveAddressCompletedEventArgs(CivicAddress address, Exception exception, Boolean cancelled, Object userToken) - : base(exception, cancelled, userToken) - { - Address = address; - } - - public CivicAddress Address { get; private set; } - } - - -} \ No newline at end of file diff --git a/RE/Commit2/Core/System.Device/Location/GeoCoordinate.cs b/RE/Commit2/Core/System.Device/Location/GeoCoordinate.cs deleted file mode 100644 index 0fec4a2a..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoCoordinate.cs +++ /dev/null @@ -1,302 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== -/*============================================================================= -** -** Class: GeoLocationCoordinate -** -** Purpose: Represents a GeoCoordinate object -** -=============================================================================*/ - -using System.Globalization; - -namespace System.Device.Location -{ - public class GeoCoordinate : IEquatable - { - private double m_latitude = double.NaN; - private double m_longitude = double.NaN; - private double m_altitude = double.NaN; - private double m_verticalAccuracy = double.NaN; - private double m_horizontalAccuracy = double.NaN; - private double m_speed = double.NaN; - private double m_course = double.NaN; - - public static readonly GeoCoordinate Unknown = new GeoCoordinate(); - - internal CivicAddress m_address = CivicAddress.Unknown; - - #region Constructors - // - // private constructor for creating single instance of GeoCoordinate.Unknown - // - public GeoCoordinate() { } - - public GeoCoordinate(Double latitude, Double longitude) - : this(latitude, longitude, Double.NaN) - { - } - - public GeoCoordinate(Double latitude, Double longitude, Double altitude) - : this(latitude, longitude, altitude, Double.NaN, Double.NaN, Double.NaN, Double.NaN) - { - } - - public GeoCoordinate(Double latitude, Double longitude, Double altitude, - Double horizontalAccuracy, Double verticalAccuracy, Double speed, Double course) - { - Latitude = latitude; - Longitude = longitude; - - Altitude = altitude; - - HorizontalAccuracy = horizontalAccuracy; - VerticalAccuracy = verticalAccuracy; - - Speed = speed; - Course = course; - } - #endregion - - #region Properties - - public Double Latitude - { - get - { - return m_latitude; - } - set - { - if (value > 90.0 || value < -90.0) - { - throw new ArgumentOutOfRangeException("Latitude value must be from -90 to 90!"); - } - m_latitude = value; - } - } - - public Double Longitude - { - get - { - return m_longitude; - } - set - { - if (value > 180.0 || value < -180.0) - { - throw new ArgumentOutOfRangeException("Longtitude value must be from -180 to 180!"); - } - m_longitude = value; - } - } - - public Double Altitude - { - get - { - return m_altitude; - } - - set - { - m_altitude = value; - } - } - - public Double HorizontalAccuracy - { - get - { - return m_horizontalAccuracy; - } - set - { - if (value < 0.0) - { - throw new ArgumentOutOfRangeException("Horizontal accuracy must be non-negative"); - } - m_horizontalAccuracy = (value == 0.0) ? Double.NaN : value; - } - } - - public Double VerticalAccuracy - { - get - { - return m_verticalAccuracy; - } - set - { - if (value < 0.0) - { - throw new ArgumentOutOfRangeException("Vertical accuracy must be non-negative"); - } - m_verticalAccuracy = (value == 0.0) ? Double.NaN : value; - } - } - - public Double Speed - { - get - { - return m_speed; - } - set - { - if (value < 0.0) - { - throw new ArgumentOutOfRangeException("Speed must be non-negative"); - } - m_speed = value; - } - } - - public Double Course - { - get - { - return m_course; - } - set - { - if (value < 0.0 || value > 360.0) - { - throw new ArgumentOutOfRangeException("Course value must be from 0.0 to 360.0!"); - } - m_course = value; - } - } - - public Boolean IsUnknown - { - get - { - return this.Equals(GeoCoordinate.Unknown); - } - } - - #endregion - - #region Methods - - public Double GetDistanceTo(GeoCoordinate other) - { - // The Haversine formula according to Dr. Math. - // http://mathforum.org/library/drmath/view/51879.html - - // dlon = lon2 - lon1 - // dlat = lat2 - lat1 - // a = (sin(dlat/2))^2 + cos(lat1) * cos(lat2) * (sin(dlon/2))^2 - // c = 2 * atan2(sqrt(a), sqrt(1-a)) - // d = R * c - - // Where - // * dlon is the change in longitude - // * dlat is the change in latitude - // * c is the great circle distance in Radians. - // * R is the radius of a spherical Earth. - // * The locations of the two points in - // spherical coordinates (longitude and - // latitude) are lon1,lat1 and lon2, lat2. - - if (Double.IsNaN(this.Latitude) || Double.IsNaN(this.Longitude) || - Double.IsNaN(other.Latitude) || Double.IsNaN(other.Longitude)) - { - throw new ArgumentException("Latitude or longtitude is not a number!"); - } - - double dDistance = Double.NaN; - - double dLat1 = this.Latitude * (Math.PI / 180.0); - double dLon1 = this.Longitude * (Math.PI / 180.0); - double dLat2 = other.Latitude * (Math.PI / 180.0); - double dLon2 = other.Longitude * (Math.PI / 180.0); - - double dLon = dLon2 - dLon1; - double dLat = dLat2 - dLat1; - - // Intermediate result a. - double a = Math.Pow(Math.Sin(dLat / 2.0), 2.0) + - Math.Cos(dLat1) * Math.Cos(dLat2) * - Math.Pow(Math.Sin(dLon / 2.0), 2.0); - - // Intermediate result c (great circle distance in Radians). - double c = 2.0 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1.0 - a)); - - // Distance. - const Double kEarthRadiusMs = 6376500; - dDistance = kEarthRadiusMs * c; - - return dDistance; - } - - #endregion - - #region Object overrides - public override int GetHashCode() - { - return Latitude.GetHashCode() ^ Longitude.GetHashCode(); - } - - /// - /// Object.Equals. Calls into IEquatable.Equals - /// - /// - /// - public override bool Equals(object obj) - { - if (!(obj is GeoCoordinate)) return base.Equals(obj); - return Equals(obj as GeoCoordinate); - } - /// - /// This override is for debugging purpose only - /// - /// - public override string ToString() - { - if (this == GeoCoordinate.Unknown) - { - return "Unknown"; - } - else - { - return Latitude.ToString("G", CultureInfo.InvariantCulture) + ", " + - Longitude.ToString("G", CultureInfo.InvariantCulture); - } - } - - #endregion - - #region IEquatable - public bool Equals(GeoCoordinate other) - { - if (object.ReferenceEquals(other, null)) - { - return false; - } - return Latitude.Equals(other.Latitude) && Longitude.Equals(other.Longitude); - } - #endregion - - #region Public static operators - public static Boolean operator ==(GeoCoordinate left, GeoCoordinate right) - { - if (object.ReferenceEquals(left, null)) - { - return object.ReferenceEquals(right, null); - } - return left.Equals(right); - } - - public static Boolean operator !=(GeoCoordinate left, GeoCoordinate right) - { - return !(left == right); - } - #endregion - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/System.Device/Location/GeoCoordinateWatcher.cs b/RE/Commit2/Core/System.Device/Location/GeoCoordinateWatcher.cs deleted file mode 100644 index af831c49..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoCoordinateWatcher.cs +++ /dev/null @@ -1,40 +0,0 @@ -namespace System.Device.Location -{ - public class GeoCoordinateWatcher - { - private GeoPositionAccuracy _Accuracy; - private double _Threshold; - - public event EventHandler LocationChanged; - public event EventHandler> PositionChanged; - public event EventHandler StatusChanged; - - public GeoCoordinateWatcher(GeoPositionAccuracy accuracy) - { - _Accuracy = accuracy; - } - - public double MovementThreshold - { - get => _Threshold; - set { - if (value < 0.0 || Double.IsNaN(value)) - { - throw new ArgumentOutOfRangeException("Threshold value is set to negative!"); - } - - _Threshold = value; - } - } - - public void Start() - { - - } - - public void Stop() - { - - } - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/System.Device/Location/GeoLocation.cs b/RE/Commit2/Core/System.Device/Location/GeoLocation.cs deleted file mode 100644 index 84c531ec..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoLocation.cs +++ /dev/null @@ -1,82 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== -/*============================================================================= -** -** Class: GeoLocation -** -** Purpose: Represents a GeoLocation object -** -=============================================================================*/ - -using System; -using System.Collections.Generic; -using System.Diagnostics.CodeAnalysis; - -namespace System.Device.Location -{ - public class GeoLocation - { - public static readonly GeoLocation Unknown = new GeoLocation(GeoCoordinate.Unknown); - - #region Constructors - - public GeoLocation(GeoCoordinate coordinate) - : this(coordinate, Double.NaN, Double.NaN) - { - } - - public GeoLocation(GeoCoordinate coordinate, Double heading, Double speed) - : this(coordinate, heading, speed, CivicAddress.Unknown, DateTimeOffset.Now) - { - } - - public GeoLocation(CivicAddress address) - : this(GeoCoordinate.Unknown, Double.NaN, Double.NaN, address, DateTimeOffset.Now) - { - } - - public GeoLocation(GeoCoordinate coordinate, Double heading, Double speed, CivicAddress address, DateTimeOffset timestamp) - { - if (coordinate == null) - { - throw new ArgumentNullException("coordinate"); - } - - if (address == null) - { - throw new ArgumentNullException("address"); - } - - if (heading < 0.0 || heading > 360.0) - { - throw new ArgumentOutOfRangeException("Heading value must be from 0.0 to 360.0!"); - } - - if (speed < 0.0) - { - throw new ArgumentOutOfRangeException("Speed value must be non-negative!"); - } - - Coordinate = coordinate; - Address = address; - Heading = heading; - Speed = speed; - Timestamp = timestamp; - } - - #endregion - - #region Properties - - public GeoCoordinate Coordinate { get; private set; } - public Double Heading { get; private set; } - public Double Speed { get; private set; } - public CivicAddress Address { get; private set; } - public DateTimeOffset Timestamp { get; private set; } - - #endregion - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/System.Device/Location/GeoLocationChangedEventArgs.cs b/RE/Commit2/Core/System.Device/Location/GeoLocationChangedEventArgs.cs deleted file mode 100644 index 14f3ded3..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoLocationChangedEventArgs.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace System.Device.Location -{ - public class GeoLocationChangedEventArgs : EventArgs - { - public GeoLocationChangedEventArgs(GeoLocation location) - { - Location = location; - } - - public GeoLocation Location { get; private set; } - } -} diff --git a/RE/Commit2/Core/System.Device/Location/GeoPosition.cs b/RE/Commit2/Core/System.Device/Location/GeoPosition.cs deleted file mode 100644 index 5840364d..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoPosition.cs +++ /dev/null @@ -1,34 +0,0 @@ - -using System.Collections.Generic; - -namespace System.Device.Location -{ - public class GeoPosition - { - private DateTimeOffset _Timestamp = DateTimeOffset.MinValue; - private T _Position; - - public GeoPosition() : - this(DateTimeOffset.MinValue, default(T)!) - { - } - - public GeoPosition(DateTimeOffset timestamp, T position) - { - _Timestamp = timestamp; - _Position = position; - } - - public DateTimeOffset Timestamp - { - get => _Timestamp; - set => _Timestamp = value; - } - - public T Location - { - get => _Position; - set => _Position = value; - } - } -} diff --git a/RE/Commit2/Core/System.Device/Location/GeoPositionAccuracy.cs b/RE/Commit2/Core/System.Device/Location/GeoPositionAccuracy.cs deleted file mode 100644 index 4ba05c4f..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoPositionAccuracy.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace System.Device.Location -{ - public enum GeoPositionAccuracy - { - Default = 0, - High - } -} diff --git a/RE/Commit2/Core/System.Device/Location/GeoPositionChangedEventArgs.cs b/RE/Commit2/Core/System.Device/Location/GeoPositionChangedEventArgs.cs deleted file mode 100644 index ab423710..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoPositionChangedEventArgs.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace System.Device.Location -{ - public class GeoPositionChangedEventArgs : EventArgs - { - public GeoPositionChangedEventArgs(GeoPosition position) - { - Position = position; - } - - public GeoPosition Position { get; private set; } - } -} diff --git a/RE/Commit2/Core/System.Device/Location/GeoPositionStatus.cs b/RE/Commit2/Core/System.Device/Location/GeoPositionStatus.cs deleted file mode 100644 index dec101ea..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoPositionStatus.cs +++ /dev/null @@ -1,23 +0,0 @@ -// ==++== -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// -// ==--== -/*============================================================================= -** -** Class: GeoPositionStatus -** -** Purpose: Represents a GeoPositionStatus object -** -=============================================================================*/ - -namespace System.Device.Location -{ - public enum GeoPositionStatus - { - Ready, // Enabled - Initializing, // Working to acquire data - NoData, // We have access to sensors, but we cannnot resolve - Disabled // Location service disabled or access denied - } -} diff --git a/RE/Commit2/Core/System.Device/Location/GeoPositionStatusChangedEventArgs.cs b/RE/Commit2/Core/System.Device/Location/GeoPositionStatusChangedEventArgs.cs deleted file mode 100644 index 70182d0b..00000000 --- a/RE/Commit2/Core/System.Device/Location/GeoPositionStatusChangedEventArgs.cs +++ /dev/null @@ -1,12 +0,0 @@ -namespace System.Device.Location -{ - public class GeoPositionStatusChangedEventArgs : EventArgs - { - public GeoPositionStatusChangedEventArgs(GeoPositionStatus status) - { - Status = status; - } - - public GeoPositionStatus Status { get; private set; } - } -} diff --git a/RE/Commit2/Core/System.Device/System.Device.csproj b/RE/Commit2/Core/System.Device/System.Device.csproj deleted file mode 100644 index 469ce2ab..00000000 --- a/RE/Commit2/Core/System.Device/System.Device.csproj +++ /dev/null @@ -1,14 +0,0 @@ - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - enable - 2.0.5.0 - - - diff --git a/RE/Commit2/Core/WPR.Common/Configuration.cs b/RE/Commit2/Core/WPR.Common/Configuration.cs deleted file mode 100644 index 387c4db4..00000000 --- a/RE/Commit2/Core/WPR.Common/Configuration.cs +++ /dev/null @@ -1,75 +0,0 @@ -using System; -using System.IO; -using Newtonsoft.Json; - -namespace WPR.Common -{ - public class Configuration - { - private class ConfigurationPrivate - { - public string DataStorePath; - public String GamerTag; - }; - - private const string ConfigurationFilePath = "config.json"; - - private string PrivateDataFolderPath; - private ConfigurationPrivate? _ConfPrivate; - - public string? DataStorePath - { - get => _ConfPrivate!.DataStorePath; - set => _ConfPrivate!.DataStorePath = value; - } - - public string? GamerTag - { - get => _ConfPrivate!.GamerTag; - set => _ConfPrivate!.GamerTag = value; - } - - public static Configuration? Current { get; set; } - - private string ConfigurationFilePathFull => Path.Combine(PrivateDataFolderPath, ConfigurationFilePath); - - public void RestoreDefaultDataStoragePath() - { - DataStorePath = PrivateDataFolderPath; - } - - public Configuration(string PrivateDataFolder) - { - PrivateDataFolderPath = PrivateDataFolder; - - try - { - var seralizer = new JsonSerializer(); - _ConfPrivate = JsonConvert.DeserializeObject(File.ReadAllText(ConfigurationFilePathFull)); - } catch (Exception ex) - { - Log.Error(LogCategory.Common, $"Failed to load configuration file with error: {ex}"); - _ConfPrivate = new ConfigurationPrivate(); - } - - if (DataStorePath == null) - { - DataStorePath = PrivateDataFolder; - } - } - - ~Configuration() - { - Save(); - } - - public string DataPath(string path) - { - return Path.Combine(DataStorePath!, path); - } - public void Save() - { - File.WriteAllText(ConfigurationFilePathFull, JsonConvert.SerializeObject(_ConfPrivate)); - } - } -} diff --git a/RE/Commit2/Core/WPR.Common/Filesystem.cs b/RE/Commit2/Core/WPR.Common/Filesystem.cs deleted file mode 100644 index 52a572c9..00000000 --- a/RE/Commit2/Core/WPR.Common/Filesystem.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -#if __ANDROID__ -using Android.Content.Res; -#endif - -namespace WPR.Common -{ - public static class Filesystem - { - // https://stackoverflow.com/questions/58744/copy-the-entire-contents-of-a-directory-in-c-sharp - public static void CopyFilesRecursively(string sourcePath, string targetPath) - { - Directory.CreateDirectory(targetPath); - - //Now Create all of the directories - foreach (string dirPath in Directory.GetDirectories(sourcePath, "*", SearchOption.AllDirectories)) - { - Directory.CreateDirectory(dirPath.Replace(sourcePath, targetPath)); - } - - //Copy all the files & Replaces any files with the same name - foreach (string newPath in Directory.GetFiles(sourcePath, "*.*", SearchOption.AllDirectories)) - { - File.Copy(newPath, newPath.Replace(sourcePath, targetPath), true); - } - } - -#if __ANDROID__ - public static void CopyFolderFromAssets(AssetManager assets, string sourcePath, string targetPath) - { - string[]? assetFilenames = assets.List(sourcePath); - if ((assetFilenames == null) || (assetFilenames.Length == 0)) - { - return; - } - - Directory.CreateDirectory(targetPath); - - foreach (string assetFilename in assetFilenames) - { - CopyFileFromAssets(assets, Path.Combine(sourcePath, assetFilename), Path.Combine(targetPath, assetFilename)); - } - } - - public static void CopyFileFromAssets(AssetManager assets, string sourceFile, string destFile) - { - using (Stream assetStream = assets.Open(sourceFile)) - { - using (FileStream destStream = File.Open(destFile, FileMode.OpenOrCreate, FileAccess.Write)) - { - assetStream.CopyTo(destStream); - } - } - } -#endif - } -} diff --git a/RE/Commit2/Core/WPR.Common/ImageUtils.cs b/RE/Commit2/Core/WPR.Common/ImageUtils.cs deleted file mode 100644 index a07014c7..00000000 --- a/RE/Commit2/Core/WPR.Common/ImageUtils.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -#if __ANDROID__ -using Android.Graphics; -#else -using System.Drawing; -#endif - -namespace WPR.Common -{ - public static class ImageUtils - { - public static List SplitAndSave(string storePath, string filenameFormat, Stream originalImageStream, - int rowCount, int columnCount) - { -#if __ANDROID__ - Bitmap? originalBitmap = BitmapFactory.DecodeStream(originalImageStream); - if (originalBitmap == null) - { - return new List(); - } - - int tileSizeX = originalBitmap.Width / columnCount; - int tileSizeY = originalBitmap.Height / rowCount; - - List pathList = new List(); - Directory.CreateDirectory(storePath); - - for (int i = 0; i < rowCount; i++) - { - for (int j = 0; j < columnCount; j++) - { - string imagePath = System.IO.Path.Combine(storePath, String.Format(filenameFormat, i, j)); - - Bitmap? tempBitmap = Bitmap.CreateBitmap(originalBitmap, j * tileSizeX, i * tileSizeY, tileSizeX, tileSizeY); - if (tempBitmap == null) - { - Log.Error(LogCategory.Common, "Can't create splitted bitmap on Android!"); - return pathList; - } - - using (FileStream fs = new FileStream(imagePath, FileMode.OpenOrCreate)) - { - tempBitmap.Compress(Bitmap.CompressFormat.Png, 100, fs); - pathList.Add(imagePath); - } - } - - } - - return pathList; -#else - Image originalImage = Image.FromStream(originalImageStream); - int tileSizeX = originalImage.Width / columnCount; - int tileSizeY = originalImage.Height / rowCount; - - Bitmap img = new Bitmap(tileSizeX, tileSizeY, System.Drawing.Imaging.PixelFormat.Format32bppArgb); - var graphicsDrawer = System.Drawing.Graphics.FromImage(img); - - Directory.CreateDirectory(storePath); - - List pathList = new List(); - - for (int i = 0; i < rowCount; i++) - { - for (int j = 0; j < columnCount; j++) - { - string imagePath = Path.Combine(storePath, String.Format(filenameFormat, i, j)); - - graphicsDrawer.Clear(System.Drawing.Color.Transparent); - graphicsDrawer.DrawImage(originalImage, - new System.Drawing.Rectangle(0, 0, tileSizeX, tileSizeY), - new System.Drawing.Rectangle(j * tileSizeX, i * tileSizeY, tileSizeX, tileSizeY), - GraphicsUnit.Pixel); - - img.Save(imagePath, System.Drawing.Imaging.ImageFormat.Png); - pathList.Add(imagePath); - } - - } - - return pathList; -#endif - } - } -} diff --git a/RE/Commit2/Core/WPR.Common/Log.cs b/RE/Commit2/Core/WPR.Common/Log.cs deleted file mode 100644 index 8c7b77f1..00000000 --- a/RE/Commit2/Core/WPR.Common/Log.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; - -namespace WPR.Common -{ - public static class Log - { - private static void Write(LogCategory category, String content) - { - Console.WriteLine($"[{category}] {content}"); - } - - public static void Error(LogCategory category, String content) - { - Write(category, content); - } - public static void Warn(LogCategory category, String content) - { - Write(category, content); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/WPR.Common/LogCategory.cs b/RE/Commit2/Core/WPR.Common/LogCategory.cs deleted file mode 100644 index b189918a..00000000 --- a/RE/Commit2/Core/WPR.Common/LogCategory.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace WPR.Common -{ - public enum LogCategory - { - GamerServices, - Common, - AppInstall, - AppAudioConverter, - AppPatcher, - AppList, - Android - } -} diff --git a/RE/Commit2/Core/WPR.Common/NativeUI.cs b/RE/Commit2/Core/WPR.Common/NativeUI.cs deleted file mode 100644 index 91b4cbe3..00000000 --- a/RE/Commit2/Core/WPR.Common/NativeUI.cs +++ /dev/null @@ -1,44 +0,0 @@ -using DesktopNotifications; -//using DesktopNotifications.Apple; -using DesktopNotifications.FreeDesktop; -using DesktopNotifications.Windows; - -#if __ANDROID__ -using DesktopNotifications.Android; -#endif - -using System.Runtime.InteropServices; -using System; - -namespace WPR.Common -{ - public static class NativeUI - { - public static INotificationManager NotificationManager { get; set; } - - public static void Initialize(object hostControl = null) - { -#if __ANDROID__ - NotificationManager = new AndroidNotificationManager((hostControl as Android.Content.Context)!); -#else - if (RuntimeInformation.IsOSPlatform(OSPlatform.Linux)) - { - NotificationManager = new FreeDesktopNotificationManager(); - } - else if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows)) - { - NotificationManager = new WindowsNotificationManager(); - } - //else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX)) - //{ - // NotificationManager = new AppleNotificationManager(); - //} else - { - //throw new PlatformNotSupportedException(); - NotificationManager = new WindowsNotificationManager(); - } -#endif - NotificationManager.Initialize(); - } - } -} diff --git a/RE/Commit2/Core/WPR.Common/StubUtils.cs b/RE/Commit2/Core/WPR.Common/StubUtils.cs deleted file mode 100644 index e3a409cf..00000000 --- a/RE/Commit2/Core/WPR.Common/StubUtils.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace WPR.Common -{ - public static class StubUtils - { - private static IAsyncResult _ForeverTask = Task.Run(() => { - while (true) ; - }); - - public static IAsyncResult ForeverTask => _ForeverTask; - } -} diff --git a/RE/Commit2/Core/WPR.Common/WPR.Common.csproj b/RE/Commit2/Core/WPR.Common/WPR.Common.csproj deleted file mode 100644 index 181cfce0..00000000 --- a/RE/Commit2/Core/WPR.Common/WPR.Common.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - 21 - enable - net5.0-windows10.0.17763.0 - - - - - - - - - - - - - - diff --git a/RE/Commit2/Core/WPR.Common/WWWAccess.cs b/RE/Commit2/Core/WPR.Common/WWWAccess.cs deleted file mode 100644 index 1a3a9f26..00000000 --- a/RE/Commit2/Core/WPR.Common/WWWAccess.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Net.Http; -using System.Net; -using System.Threading.Tasks; - -namespace WPR.Common -{ - public static class WWWAccess - { - public static async Task CallUrlForString(string fullUrl) - { - HttpClient client = new HttpClient(); - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13; - client.DefaultRequestHeaders.Accept.Clear(); - var response = client.GetStringAsync(fullUrl); - return await response; - } - public static async Task CallUrlDownload(string fullUrl) - { - HttpClient client = new HttpClient(); - ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls13; - client.DefaultRequestHeaders.Accept.Clear(); - var response = client.GetByteArrayAsync(fullUrl); - return await response; - } - } -} diff --git a/RE/Commit2/Core/WPR.StandardCompability/WPR.StandardCompability.csproj b/RE/Commit2/Core/WPR.StandardCompability/WPR.StandardCompability.csproj deleted file mode 100644 index 410878fa..00000000 --- a/RE/Commit2/Core/WPR.StandardCompability/WPR.StandardCompability.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - - enable - - - diff --git a/RE/Commit2/Core/WPR.StandardCompability/Xml/Linq/XElement2.cs b/RE/Commit2/Core/WPR.StandardCompability/Xml/Linq/XElement2.cs deleted file mode 100644 index c5eecc1c..00000000 --- a/RE/Commit2/Core/WPR.StandardCompability/Xml/Linq/XElement2.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System.Xml.Linq; -using System.IO; - -namespace WPR.StandardCompability.Xml.Linq -{ - public class XElement2 - { - public static XElement Load(string path) - { - return XElement.Load((Path.DirectorySeparatorChar == '\\') ? path : path.Replace('\\', Path.DirectorySeparatorChar)); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/WPR.WindowsCompability/Application.cs b/RE/Commit2/Core/WPR.WindowsCompability/Application.cs deleted file mode 100644 index 68854407..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/Application.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; - -namespace WPR.WindowsCompability -{ - public class Application - { - private static Application? _Current; - public event EventHandler? UnhandledException; - - public string? ProductId { get; set; } - private ResourceDictionary _Resources; - - internal Application() - { - _Resources = new ResourceDictionary(); - } - - public static Application Current { - get { - if (_Current == null) - { - _Current = new Application(); - } - return _Current; - } - } - - public ResourceDictionary Resources => _Resources; - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/WPR.WindowsCompability/ApplicationUnhandledExceptionEventArgs.cs b/RE/Commit2/Core/WPR.WindowsCompability/ApplicationUnhandledExceptionEventArgs.cs deleted file mode 100644 index 74b32d33..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/ApplicationUnhandledExceptionEventArgs.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; - -namespace WPR.WindowsCompability -{ - public class ApplicationUnhandledExceptionEventArgs : EventArgs - { - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/GC2.cs b/RE/Commit2/Core/WPR.WindowsCompability/GC2.cs deleted file mode 100644 index 564cc714..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/GC2.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; - -namespace WPR.WindowsCompability -{ - public class GC2 - { - private static bool IsMono; - - static GC2() - { -#if __MOBILE__ - IsMono = true; -#else - IsMono = (Type.GetType("Mono.Runtime") != null); -#endif - } - - public static void Collect() - { - // Top performance killer on Mono. The GC should be a lot better than it was before - // that developers have to manually insert this... - if (!IsMono) - { - GC.Collect(); - } - } - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/IsolatedStorageSettings.cs b/RE/Commit2/Core/WPR.WindowsCompability/IsolatedStorageSettings.cs deleted file mode 100644 index fdc829ea..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/IsolatedStorageSettings.cs +++ /dev/null @@ -1,224 +0,0 @@ -using Newtonsoft.Json.Linq; -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics.CodeAnalysis; -using System.IO; -using System.IO.IsolatedStorage; -using System.Runtime.Serialization; - -using WPR.Common; - -namespace WPR.WindowsCompability -{ - public sealed class IsolatedStorageSettings : IDictionary, IDictionary, - ICollection>, ICollection, - IEnumerable>, IEnumerable - { - private static IsolatedStorageSettings _ApplicationSettings; - private const string LocalSettingsName = "__LocalSettings"; - - private IsolatedStorageFile _Holder; - private Dictionary _Settings; - - internal IsolatedStorageSettings(IsolatedStorageFile file) - { - _Holder = file; - if (!file.FileExists(LocalSettingsName)) - { - _Settings = new Dictionary(); - } else - { - using (IsolatedStorageFileStream fs = file.OpenFile(LocalSettingsName, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - using (StreamReader sr = new StreamReader(fs)) - { - DataContractSerializer reader = new DataContractSerializer(typeof(Dictionary)); - try - { - _Settings = (reader.ReadObject(fs) as Dictionary)!; - } - catch (Exception ex) - { - Log.Error(LogCategory.Common, $"Failed to deserialize isolated settings. Error\n {ex}"); - } - - if (_Settings == null) - { - _Settings = new Dictionary(); - } - } - } - } - } - - ~IsolatedStorageSettings() - { - Save(); - } - - public void Save() - { - using (IsolatedStorageFileStream storage = _Holder.CreateFile(LocalSettingsName)) - { - DataContractSerializer serializer = new DataContractSerializer(typeof(Dictionary)); - serializer.WriteObject(storage, _Settings); - } - } - - - public static IsolatedStorageSettings ApplicationSettings - { - get - { - if (_ApplicationSettings == null) - { - _ApplicationSettings = new IsolatedStorageSettings(IsolatedStorageFile.GetUserStoreForApplication()); - } - - return _ApplicationSettings; - } - } - - public object this[string key] { - get => _Settings[key]; - set => _Settings[key] = value; - } - - public object? this[object key] - { - get - { - string? keyString = key as string; - if (keyString == null) - { - return null; - } - if (!_Settings.ContainsKey(keyString)) - { - return null; - } - - return _Settings[keyString]; - } - set - { - string? keyString = key as string; - if (keyString == null) - { - return; - } - if (!_Settings.ContainsKey(keyString)) - { - return; - } - - _Settings[keyString] = value!; - } - } - - public ICollection Keys => _Settings.Keys; - - public ICollection Values => _Settings.Values; - - public int Count => _Settings.Count; - - public bool IsReadOnly => false; - - public bool IsSynchronized => (_Settings as ICollection).IsSynchronized; - - public object SyncRoot => (_Settings as ICollection).SyncRoot; - - public bool IsFixedSize => false; - - ICollection IDictionary.Keys => _Settings.Keys; - - ICollection IDictionary.Values => _Settings.Values; - - public void Add(string key, object value) - { - _Settings.Add(key, value); - } - - public void Add(KeyValuePair item) - { - _Settings.Add(item.Key, item.Value); - } - - public void Add(object key, object? value) - { - _Settings.Add((key as string)!, value!); - } - - public void Clear() - { - _Settings.Clear(); - } - - public bool Contains(KeyValuePair item) - { - return Contains(item.Key); - } - - public bool Contains(object key) - { - return Contains((key as string)!); - } - - public bool Contains(string key) - { - return _Settings.ContainsKey(key); - } - - public bool ContainsKey(string key) - { - return _Settings.ContainsKey(key); - } - - public void CopyTo(KeyValuePair[] array, int arrayIndex) - { - throw new System.NotImplementedException(); - } - - public void CopyTo(Array array, int index) - { - throw new NotImplementedException(); - } - - public IEnumerator> GetEnumerator() - { - return _Settings.GetEnumerator(); - } - - public bool Remove(string key) - { - return _Settings.Remove(key); - } - - public bool Remove(KeyValuePair item) - { - return Remove(item.Key); - } - - public void Remove(object key) - { - Remove((key as string)!); - } - - public bool TryGetValue(string key, [MaybeNullWhen(false)] out object value) - { - return _Settings.TryGetValue(key, out value); - } - - IEnumerator IEnumerable.GetEnumerator() - { - return _Settings.GetEnumerator(); - } - - IDictionaryEnumerator IDictionary.GetEnumerator() - { - return _Settings.GetEnumerator(); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/Core/WPR.WindowsCompability/Media/Color.cs b/RE/Commit2/Core/WPR.WindowsCompability/Media/Color.cs deleted file mode 100644 index 20aaf986..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/Media/Color.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace WPR.WindowsCompability.Media -{ - public struct Color - { - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/Media/SolidColorBrush.cs b/RE/Commit2/Core/WPR.WindowsCompability/Media/SolidColorBrush.cs deleted file mode 100644 index bf9ecdf8..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/Media/SolidColorBrush.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace WPR.WindowsCompability.Media -{ - // TODO: Comply with official documentation! - public class SolidColorBrush - { - public Color Color { get; set; } - - internal SolidColorBrush() - { - Color = new Color(); - } - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/Media/Thickness.cs b/RE/Commit2/Core/WPR.WindowsCompability/Media/Thickness.cs deleted file mode 100644 index 2ed908cc..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/Media/Thickness.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace WPR.WindowsCompability.Media -{ - public struct Thickness - { - public double Left { get; set; } - public double Right { get; set; } - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/MessageBox.cs b/RE/Commit2/Core/WPR.WindowsCompability/MessageBox.cs deleted file mode 100644 index bce2f091..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/MessageBox.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System.Threading.Tasks; - -namespace System.Windows -{ - public static class MessageBox - { - public static Func> ShowSimpleImpl; - - public static MessageBoxResult Show(string title, string caption, MessageBoxButton buttons) - { - return ShowSimpleImpl(title, caption, buttons).GetAwaiter().GetResult(); - } - } - -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/MessageBoxButton.cs b/RE/Commit2/Core/WPR.WindowsCompability/MessageBoxButton.cs deleted file mode 100644 index d95013dc..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/MessageBoxButton.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; - -namespace System.Windows -{ - public enum MessageBoxButton - { - OK = 0, - OKCancel = 1, - YesNoCancel = 3, - YesNo = 4 - } - -} - diff --git a/RE/Commit2/Core/WPR.WindowsCompability/MessageBoxResult.cs b/RE/Commit2/Core/WPR.WindowsCompability/MessageBoxResult.cs deleted file mode 100644 index ea858d17..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/MessageBoxResult.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace System.Windows -{ - public enum MessageBoxResult - { - None = 0, - OK = 1, - Cancel = 2, - Yes = 6, - No = 7 - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/Path2.cs b/RE/Commit2/Core/WPR.WindowsCompability/Path2.cs deleted file mode 100644 index dd92bcf1..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/Path2.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System.IO; - -namespace WPR.WindowsCompability -{ - // Xamarin has failure of dealing with just a backslash - public static class Path2 - { - public static string? GetDirectoryName(string? path) - { - if (path == null) - { - return null; - } - - if (Path.DirectorySeparatorChar != '\\') - { - return Path.GetDirectoryName(path.Replace('\\', Path.DirectorySeparatorChar)); - } - - return Path.GetDirectoryName(path); - } - - public static string? GetFileName(string? path) - { - if (path == null) - { - return null; - } - - if (Path.DirectorySeparatorChar != '\\') - { - return Path.GetFileName(path.Replace('\\', Path.DirectorySeparatorChar)); - } - - return Path.GetFileName(path); - } - - public static string? GetFileNameWithoutExtension(string? path) - { - if (path == null) - { - return null; - } - - if (Path.DirectorySeparatorChar != '\\') - { - return Path.GetFileNameWithoutExtension(path.Replace('\\', Path.DirectorySeparatorChar)); - } - - return Path.GetFileNameWithoutExtension(path); - } - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/ResourceDictionary.cs b/RE/Commit2/Core/WPR.WindowsCompability/ResourceDictionary.cs deleted file mode 100644 index 9ed3b568..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/ResourceDictionary.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace WPR.WindowsCompability -{ - public class ResourceDictionary : Dictionary - { - public bool Contains(object obj) - { - return base.ContainsKey((obj as string)!); - } - - public object this[object obj] - { - get => base[(obj as string)!]; - set => base[(obj as string)!] = value; - } - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/Type2.cs b/RE/Commit2/Core/WPR.WindowsCompability/Type2.cs deleted file mode 100644 index 4cee8c5c..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/Type2.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; - -namespace WPR.WindowsCompability -{ - public abstract class Type2 - { - public static Type? GetType(string typeName, bool throwOnError) - { - if (typeName == null) - { - throw new ArgumentNullException("Type name is null!"); - } - - var stuffs = typeName.Split(','); - if (stuffs.Length >= 2) - { - bool patched = false; - for (int i = 1; i < stuffs.Length; i += 4) - { - if (stuffs[i].Contains("Microsoft.Xna.Framework")) - { - if (!stuffs[i].Equals("Microsoft.Xna.Framework.GamerServices")) - { - stuffs[i] = "FNA"; - patched = true; - } - } - } - if (patched) - { - typeName = stuffs[0]; - for (int i = 1; i < stuffs.Length; i += 4) - { - typeName += $", {stuffs[i]}"; - } - } - } - - return Type.GetType(typeName); - } - } -} diff --git a/RE/Commit2/Core/WPR.WindowsCompability/WPR.WindowsCompability.csproj b/RE/Commit2/Core/WPR.WindowsCompability/WPR.WindowsCompability.csproj deleted file mode 100644 index de0ec6ed..00000000 --- a/RE/Commit2/Core/WPR.WindowsCompability/WPR.WindowsCompability.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - enable - - - - - - diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Graphics/GraphicsAdapter2.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Graphics/GraphicsAdapter2.cs deleted file mode 100644 index bb3a9f54..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Graphics/GraphicsAdapter2.cs +++ /dev/null @@ -1,21 +0,0 @@ -using Microsoft.Xna.Framework.Graphics; - -namespace WPR.XnaCompability.Graphics -{ - public class GraphicsAdapter2 : GraphicsAdapter - { - public GraphicsAdapter2( - DisplayModeCollection modes, - string name, - string description - ) - : base(modes, name, description) - { - } - - public DisplayMode get_CurrentDisplayMode() - { - return new DisplayMode(480, 800, CurrentDisplayMode.Format); - } - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Graphics/GraphicsDevice2.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Graphics/GraphicsDevice2.cs deleted file mode 100644 index cd1d8783..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Graphics/GraphicsDevice2.cs +++ /dev/null @@ -1,14 +0,0 @@ -using Microsoft.Xna.Framework.Graphics; - -namespace WPR.XnaCompability.Graphics -{ - public class GraphicsDevice2 : GraphicsDevice - { - public GraphicsDevice2(GraphicsAdapter adapter, GraphicsProfile graphicsProfile, PresentationParameters presentationParameters) - : base(adapter, graphicsProfile, presentationParameters) - { - } - - public new DisplayMode DisplayMode => new DisplayMode(480, 800, base.DisplayMode.Format); - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/GraphicsDeviceManager2.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/GraphicsDeviceManager2.cs deleted file mode 100644 index 1d79e107..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/GraphicsDeviceManager2.cs +++ /dev/null @@ -1,35 +0,0 @@ -using Microsoft.Xna.Framework; -using System; - -namespace WPR.XnaCompability -{ - public class GraphicsDeviceManager2 : GraphicsDeviceManager - { - public static Action? RequestOrientation; - - public GraphicsDeviceManager2(Game game) - : base(game) - { - - } - -#if !__MOBILE__ - public new bool IsFullScreen { - get => false; - set => base.IsFullScreen = false; - } -#endif - - public new void ApplyChanges() - { - base.ApplyChanges(); - RequestOrientationChange(PreferredBackBufferWidth, PreferredBackBufferHeight); - } - - public static void RequestOrientationChange(int width, int height) - { - RequestOrientation?.Invoke((width > height) ? DisplayOrientation.LandscapeRight - : DisplayOrientation.Portrait); - } - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Album.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Album.cs deleted file mode 100644 index 64b49fdd..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Album.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace WPR.XnaCompability.Media -{ - public class Album - { - public Artist Artist { get; } - public TimeSpan Duration { get; } - public Genre Genre { get; } - public bool HasArt => false; - public string Name { get; } - public SongCollection Songs { get; } - - internal Album() - { - Artist = new Artist(); - Songs = new SongCollection(); - Genre = new Genre(); - Duration = new TimeSpan(0, 3, 0); - Name = "Unknown"; - } - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/AlbumCollection.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/AlbumCollection.cs deleted file mode 100644 index 92a181f7..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/AlbumCollection.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections; -using System.Collections.Generic; - -namespace WPR.XnaCompability.Media -{ - public sealed class AlbumCollection : IEnumerable, IEnumerable - { - private List _Albums; - - internal AlbumCollection() - { - _Albums = new List(); - } - - public IEnumerator GetEnumerator() => _Albums.GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => _Albums.GetEnumerator(); - - public int Count => _Albums.Count; - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Artist.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Artist.cs deleted file mode 100644 index 584cebe9..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Artist.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace WPR.XnaCompability.Media -{ - public class Artist - { - private SongCollection _Songs; - private AlbumCollection _Albums; - - internal Artist() - { - _Songs = new SongCollection(); - _Albums = new AlbumCollection(); - } - - public string? Name { get; } - public SongCollection Songs => _Songs; - public AlbumCollection Albums => Albums; - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/ArtistCollection.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/ArtistCollection.cs deleted file mode 100644 index b9d21a42..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/ArtistCollection.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections; -using System.Collections.Generic; - -namespace WPR.XnaCompability.Media -{ - public sealed class ArtistCollection : IEnumerable, IEnumerable - { - private List _Artists; - - internal ArtistCollection() - { - _Artists = new List(); - } - - public IEnumerator GetEnumerator() => _Artists.GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => _Artists.GetEnumerator(); - public int Count => _Artists.Count; - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Genre.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Genre.cs deleted file mode 100644 index 21e856c7..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/Genre.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace WPR.XnaCompability.Media -{ - public class Genre - { - internal Genre() - { - Name = "Unknown"; - Songs = new SongCollection(); - } - - public string Name { get; } - public SongCollection Songs { get; } - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaLibrary.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaLibrary.cs deleted file mode 100644 index 40b18880..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaLibrary.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace WPR.XnaCompability.Media -{ - public class MediaLibrary - { - private SongCollection _Songs; - private ArtistCollection _Artists; - private AlbumCollection _Albums; - - public MediaLibrary(MediaSource source) - { - _Songs = new SongCollection(); - _Artists = new ArtistCollection(); - _Albums = new AlbumCollection(); - } - - public SongCollection Songs => _Songs; - public ArtistCollection Artists => _Artists; - public AlbumCollection Albums => _Albums; - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaSource.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaSource.cs deleted file mode 100644 index 4312a798..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaSource.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Collections.Generic; - -namespace WPR.XnaCompability.Media -{ - public class MediaSource - { - public MediaSourceType MediaSourceType { get; set; } - public string Name => "WPR Media Source"; - - internal MediaSource(MediaSourceType sourceType) - { - this.MediaSourceType = sourceType; - } - - public static IList GetAvailableMediaSources() - { - return new List{ new MediaSource(MediaSourceType.LocalDevice) }; - } - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaSourceType.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaSourceType.cs deleted file mode 100644 index a40fd36f..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/MediaSourceType.cs +++ /dev/null @@ -1,8 +0,0 @@ -namespace WPR.XnaCompability.Media -{ - public enum MediaSourceType - { - LocalDevice = 0, - WindowsMediaConnect = 4 - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/SongCollection.cs b/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/SongCollection.cs deleted file mode 100644 index e00fd01a..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/Media/SongCollection.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Collections; -using System.Collections.Generic; - -using Microsoft.Xna.Framework.Media; - -namespace WPR.XnaCompability.Media -{ - public sealed class SongCollection : IEnumerable, IEnumerable - { - private List _Songs; - - internal SongCollection() - { - _Songs = new List(); - } - - public IEnumerator GetEnumerator() => _Songs.GetEnumerator(); - - IEnumerator IEnumerable.GetEnumerator() => _Songs.GetEnumerator(); - public int Count => _Songs.Count; - } -} diff --git a/RE/Commit2/Core/WPR.XnaCompabilityPatch/WPR.XnaCompability.csproj b/RE/Commit2/Core/WPR.XnaCompabilityPatch/WPR.XnaCompability.csproj deleted file mode 100644 index 7430281d..00000000 --- a/RE/Commit2/Core/WPR.XnaCompabilityPatch/WPR.XnaCompability.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - enable - - - - - - diff --git a/RE/Commit2/Core/WPR/ApplicationInstallError.cs b/RE/Commit2/Core/WPR/ApplicationInstallError.cs deleted file mode 100644 index 4e0b154c..00000000 --- a/RE/Commit2/Core/WPR/ApplicationInstallError.cs +++ /dev/null @@ -1,15 +0,0 @@ -namespace WPR -{ - public enum ApplicationInstallError - { - None, - MissingManifestFiles, - InvalidManifestFiles, - NotDecrypted, - NotSupportedAppType, - UnexpectedError, - PatchFailed, - ConvertFailed, - Canceled - } -} diff --git a/RE/Commit2/Core/WPR/ApplicationInstaller.cs b/RE/Commit2/Core/WPR/ApplicationInstaller.cs deleted file mode 100644 index b29e8e7f..00000000 --- a/RE/Commit2/Core/WPR/ApplicationInstaller.cs +++ /dev/null @@ -1,296 +0,0 @@ -using Mono.Cecil; -using System; -using System.IO.Compression; -using System.Reflection; -using System.Xml; -using Microsoft.EntityFrameworkCore; -using System.Reactive.Linq; -using System.Threading; -using System.Threading.Tasks; -using System.Collections.Generic; -using System.IO; -using System.Linq; - -using WPR.Common; -using WPR.Models; - -namespace WPR -{ - public static class ApplicationInstaller - { - private const string TempXmlFile = "temp.xml"; - private static string TempXmlFileFullPath => Configuration.Current!.DataPath(TempXmlFile); - - private static async Task<(ApplicationInstallError, Application?, string)> CreateApplicationEntryAndExtract(Stream fileStream, Action progressSet, Func> deleteExistingApp, CancellationToken canceled) - { - Application? app = null; - string dataFolderProduct = ""; - - try - { - ZipArchive archive = new ZipArchive(fileStream); - ZipArchiveEntry? entry = archive.GetEntry("WMAppManifest.xml"); - if (entry == null) - { - return ( ApplicationInstallError.MissingManifestFiles, app, dataFolderProduct ); - } - - if (canceled.IsCancellationRequested) - { - return ( ApplicationInstallError.Canceled, app, dataFolderProduct ); - } - - progressSet(3); - - entry.ExtractToFile(TempXmlFileFullPath, true); - - XmlDocument wmManifestDoc = new XmlDocument(); - wmManifestDoc.Load(TempXmlFileFullPath); - - XmlElement? root = wmManifestDoc.DocumentElement; - XmlNodeList? appNodeList = root!.SelectNodes("//App"); - - if (appNodeList == null) - { - return ( ApplicationInstallError.InvalidManifestFiles, app, dataFolderProduct ); - } - - XmlNode? appNode = appNodeList[0]; - - XmlAttribute? titleAttrib = appNode!.Attributes!["Title"]; - XmlAttribute? runtimeTypeAttrb = appNode!.Attributes!["RuntimeType"]; - XmlAttribute? versionAttrib = appNode!.Attributes!["Version"]; - XmlAttribute? productAttrib = appNode!.Attributes!["ProductID"]; - - if ((titleAttrib == null) || (runtimeTypeAttrb == null) || (versionAttrib == null) || (productAttrib == null)) - { - return ( ApplicationInstallError.InvalidManifestFiles, app, dataFolderProduct ); - } - - string productTrimmed = productAttrib!.Value.Trim('{').Trim('}'); - string storeFolder = Configuration.Current!.DataPath(Application.DataStoreFolder); - string productStoreFolder = Path.Combine(storeFolder, productTrimmed); - string productStoreFolderRelative = Path.Combine(Application.DataStoreFolder, productTrimmed); - - List existingApp = await ApplicationContext.Current.Applications! - .Where(a => a.ProductId == productTrimmed) - .ToListAsync(); - - if (existingApp.Count != 0) - { - if (await deleteExistingApp(existingApp[0])) - { - if (Directory.Exists(productStoreFolder)) - { - Directory.Delete(productStoreFolder, true); - } - ApplicationContext.Current.Applications!.Remove(existingApp[0]); - await ApplicationContext.Current.SaveChangesAsync(); - } else - { - return ( ApplicationInstallError.Canceled, app, dataFolderProduct ); - } - } - - if (!Enum.TryParse(runtimeTypeAttrb.Value, true, out ApplicationType runtimeTypeParsed)) - { - return ( ApplicationInstallError.NotSupportedAppType, app, dataFolderProduct ); - } - - XmlAttribute? authorAttrib = appNode!.Attributes!["Author"]; - XmlAttribute? publisherAttrib = appNode!.Attributes!["Publisher"]; - XmlAttribute? descriptionAttrib = appNode!.Attributes!["Description"]; - - XmlNodeList? iconPathNodes = appNode!.SelectNodes("//IconPath"); - String? iconPath = null; - - if (iconPathNodes != null) - { - iconPath = iconPathNodes[0]!.InnerText; - } - - entry = archive.GetEntry("AppManifest.xaml"); - if (entry == null) - { - return ( ApplicationInstallError.MissingManifestFiles, app, dataFolderProduct) ; - } - - if (canceled.IsCancellationRequested) - { - return (ApplicationInstallError.Canceled, app, dataFolderProduct); - } - - entry.ExtractToFile(TempXmlFileFullPath, true); - - wmManifestDoc = new XmlDocument(); - wmManifestDoc.Load(TempXmlFileFullPath); - - XmlNode? deploymentNode = wmManifestDoc.DocumentElement; - - XmlAttribute? entryPointAsmAttrib = deploymentNode!.Attributes!["EntryPointAssembly"]; - XmlAttribute? entryPointTypeAttrib = deploymentNode!.Attributes!["EntryPointType"]; - - if ((entryPointAsmAttrib == null) || (entryPointTypeAttrib == null)) - { - return (ApplicationInstallError.InvalidManifestFiles, app, dataFolderProduct); - } - - var nsmgr = new XmlNamespaceManager(wmManifestDoc.NameTable); - nsmgr.AddNamespace("a", "http://schemas.microsoft.com/client/2007/deployment"); - - XmlNodeList? assemblies = deploymentNode!.SelectNodes("//a:Deployment.Parts//a:AssemblyPart", nsmgr); - if (assemblies == null) - { - return (ApplicationInstallError.InvalidManifestFiles, app, dataFolderProduct); - } - - XmlAttribute? entryPointAsmFileNameAttrib = null; - - foreach (XmlNode? assembly in assemblies) - { - XmlAttribute? attrib = assembly!.Attributes!["x:Name"] ?? assembly!.Attributes!["Name"]; - if ((attrib == null) || (attrib.Value != entryPointAsmAttrib.Value)) - { - continue; - } - entryPointAsmFileNameAttrib = assembly!.Attributes!["Source"]; - } - - if (entryPointAsmFileNameAttrib == null) - { - return (ApplicationInstallError.InvalidManifestFiles, app, dataFolderProduct); - } - - progressSet(5); - - dataFolderProduct = productStoreFolder; - - Directory.CreateDirectory(productStoreFolder); - int count = 0; - - foreach (ZipArchiveEntry iterateEntry in archive.Entries) - { - if (canceled.IsCancellationRequested) - { - Directory.Delete(productStoreFolder, true); - return (ApplicationInstallError.Canceled, app, dataFolderProduct); - } - string fileDestinationPath = Path.Combine(productStoreFolder, iterateEntry.FullName); - - if (Path.GetFileName(fileDestinationPath).Length == 0) - { - Directory.CreateDirectory(fileDestinationPath); - } - else - { - Directory.CreateDirectory(Path.GetDirectoryName(fileDestinationPath)!); - iterateEntry.ExtractToFile(fileDestinationPath, true); - } - - count++; - progressSet(5 + (int)((float)count / archive.Entries.Count * 50.0f)); - } - - app = new Application() - { - Name = titleAttrib.Value, - ApplicationType = runtimeTypeParsed, - Version = versionAttrib.Value, - IconPath = (iconPath == null) ? "" : Path.Combine(productStoreFolderRelative, iconPath), - Publisher = (publisherAttrib == null) ? "Unknown" : publisherAttrib.Value, - Author = (authorAttrib == null) ? "Unknown" : authorAttrib.Value, - Description = (descriptionAttrib == null) ? "" : descriptionAttrib.Value, - ProductId = productTrimmed, - Assembly = entryPointAsmFileNameAttrib.Value, - EntryPoint = entryPointTypeAttrib.Value, - InstalledTime = DateTime.Now, - PatchedVersion = ApplicationPatcher.Version - }; - - ApplicationContext.Current.Add(app); - ApplicationContext.Current.SaveChanges(); - - progressSet(60); - } - catch (Exception ex) - { - Log.Error(LogCategory.AppInstall, $"An unexpected error happen during the installation: \n{ex}"); - return (ApplicationInstallError.UnexpectedError, app, dataFolderProduct); - } - - return (ApplicationInstallError.None, app, dataFolderProduct); - } - - public static async Task Install(Stream fileStream, Action progressSet, Func> deleteExistingApp, CancellationToken cancelSource) - { - try - { - Application? app; - string? appDataFolder; - ApplicationInstallError error; - - // 60% spend for extracting files - (error, app, appDataFolder) = await Task.Run(() => CreateApplicationEntryAndExtract(fileStream, progressSet, deleteExistingApp, cancelSource)); - - if (error != ApplicationInstallError.None) - { - return error; - } - - // 20% for patching DLLs - try - { - await Task.Run(() => - { - ApplicationPatcher patcher = new ApplicationPatcher(); - patcher.Patch(appDataFolder, progress => progressSet(60 + (int)((double)progress / 5)), cancelSource); - }); - } - catch (Exception exception) - { - Log.Error(LogCategory.AppInstall, $"Application DLL patching failed with exception:\n{exception}"); - return ApplicationInstallError.PatchFailed; - } - - if (cancelSource.IsCancellationRequested) - { - Directory.Delete(appDataFolder, true); - ApplicationContext.Current.Remove(app); - - return ApplicationInstallError.Canceled; - } - - // 20% for converting audio to unified support - if (app.ApplicationType == ApplicationType.XNA) - { - try - { - await AudioCompabilityConverter.ScanWmaAndConvert(appDataFolder, - progress => progressSet(80 + (int)((double)progress / 5)), - cancelSource); - } catch (Exception exception) - { - Log.Error(LogCategory.AppInstall, $"Application WMA conversion failed with exception:\n{exception}"); - return ApplicationInstallError.ConvertFailed; - } - } - - if (cancelSource.IsCancellationRequested) - { - Directory.Delete(appDataFolder, true); - ApplicationContext.Current.Remove(app); - - return ApplicationInstallError.Canceled; - } - - progressSet(100); - } catch (Exception ex) - { - Log.Error(LogCategory.AppInstall, $"An unexpected error happen during the installation: \n{ex}"); - return ApplicationInstallError.UnexpectedError; - } - - return ApplicationInstallError.None; - } - } -} diff --git a/RE/Commit2/Core/WPR/ApplicationLaunch.cs b/RE/Commit2/Core/WPR/ApplicationLaunch.cs deleted file mode 100644 index 866110b7..00000000 --- a/RE/Commit2/Core/WPR/ApplicationLaunch.cs +++ /dev/null @@ -1,103 +0,0 @@ -using Microsoft.Xna.Framework.Input.Touch; -using Microsoft.Xna.Framework; -using System.Reflection; -using System.Runtime.Loader; -using WPR.Models; -using WPR.Common; - -using Microsoft.Phone.Shell; -using Microsoft.Xna.Framework.GamerServices; - -using System; -using System.IO; -using System.Threading.Tasks; -using WPR.XnaCompability; - -namespace WPR -{ - public static class ApplicationLaunch - { - private static string CurrentProductFolder => Path.Combine(Configuration.Current.DataPath(Application.DataStoreFolder), - WindowsCompability.Application.Current!.ProductId!); - - static ApplicationLaunch() - { - AssemblyLoadContext.Default.Resolving += (loadContext, name) => - { - return loadContext.LoadFromAssemblyPath(Path.Combine(CurrentProductFolder, name.Name + ".dll")); - }; - } - - public static async Task Start(Application app, Action? requestOrientation = null) - { - if (app.ApplicationType != ApplicationType.XNA) - { - throw new NotSupportedException("Only XNA app is supported!"); - } - - // Setting game folder path - WindowsCompability.Application.Current.ProductId = app.ProductId; - string folderPath = CurrentProductFolder; - - FNAPlatform.TitleLocation = folderPath; - string curDir = Directory.GetCurrentDirectory(); - - Assembly assem = AssemblyLoadContext.Default.LoadFromAssemblyPath(Path.Combine(folderPath, AssemblyNameStandardization.Process(app.Assembly))); - - Directory.SetCurrentDirectory(folderPath); - - // Instatiate - Type? mainType = assem.GetType(app.EntryPoint); - - // Run on separate thread to not affect the UI - await Task.Run(() => - { - using (Game? obj = Activator.CreateInstance(mainType!) as Game) - { - obj!.IsMouseVisible = true; - obj!.Window.Title = $"{app.Name} - {app.Author} (Publisher: {app.Publisher})"; - -#if !__MOBILE__ - TouchPanel.MouseAsTouch = true; -#endif - TouchPanel.EnabledGestures = GestureType.DoubleTap | GestureType.Tap | GestureType.Hold | - GestureType.HorizontalDrag | GestureType.VerticalDrag | GestureType.FreeDrag | - GestureType.Pinch | GestureType.Flick | GestureType.DragComplete | GestureType.PinchComplete; - - GraphicsDeviceManager2.RequestOrientation = requestOrientation; - SignedInGamer.Reset(); - - obj.Activated += (obj, args) => - { - PhoneApplicationService.Current!.HandleApplicationStart(true); - }; - - GraphicsDeviceManager? manager = obj.Services.GetService(typeof(IGraphicsDeviceManager)) as GraphicsDeviceManager; - if (manager != null) - { - manager.PreparingDeviceSettings += (obj, args) => - { - GraphicsDeviceManager2.RequestOrientationChange( - args.GraphicsDeviceInformation.PresentationParameters.BackBufferWidth, - args.GraphicsDeviceInformation.PresentationParameters.BackBufferHeight - ); - }; - } - - obj.Run(); - - try - { - PhoneApplicationService.Current!.HandleApplicationExit(); - } - catch (Exception ex) - { - Log.Warn(LogCategory.AppList, $"Ignored clean-up exception:\n {ex}"); - } - - obj.Exit(); - } - }); - } - } -} diff --git a/RE/Commit2/Core/WPR/ApplicationPatcher.cs b/RE/Commit2/Core/WPR/ApplicationPatcher.cs deleted file mode 100644 index ac0ba974..00000000 --- a/RE/Commit2/Core/WPR/ApplicationPatcher.cs +++ /dev/null @@ -1,519 +0,0 @@ -using Mono.Cecil; -using Mono.Cecil.Cil; -using System.Xml.Serialization; -using Mono.Cecil.Rocks; - -using System; -using System.IO; -using System.Collections.Generic; -using System.Threading; -using System.Linq; -using System.Runtime.CompilerServices; - -namespace WPR -{ - public class ApplicationPatcher - { - public static int Version => 0; - - private AssemblyNameReference FNACompRef; - private AssemblyNameReference FNARef; - private AssemblyNameReference SystemRunTimeRef; - private AssemblyNameReference WindowsCompRef; - private AssemblyNameReference StandardCompRef; - private AssemblyNameReference ServiceModelPrimitivesRef; - private AssemblyNameReference ServiceModelHTTPRef; - - private class TypePatchInfo - { - public String? NewName; - public String? NewNamespace; - public AssemblyNameReference? Reference; - } - - private Dictionary Patches; - private Dictionary MemberPatches; - - public ApplicationPatcher() - { - FNARef = AssemblyNameReference.Parse("FNA"); - FNACompRef = AssemblyNameReference.Parse("WPR.XnaCompability"); - SystemRunTimeRef = AssemblyNameReference.Parse("System.Runtime"); - WindowsCompRef = AssemblyNameReference.Parse("WPR.WindowsCompability"); - ServiceModelPrimitivesRef = AssemblyNameReference.Parse("System.ServiceModel.Primitives"); - ServiceModelHTTPRef = AssemblyNameReference.Parse("System.ServiceModel.Http"); - StandardCompRef = AssemblyNameReference.Parse("WPR.StandardCompability"); - - Patches = new Dictionary() - { - { "System.Diagnostics.Stopwatch", new TypePatchInfo() - { - Reference = SystemRunTimeRef - } - }, - { "Microsoft.Xna.Framework.GraphicsDeviceManager", new TypePatchInfo() - { - NewName = "GraphicsDeviceManager2", - NewNamespace = "WPR.XnaCompability", - Reference = FNACompRef - } - }, - { "System.Windows.Application", new TypePatchInfo() - { - Reference = WindowsCompRef, - NewNamespace = "WPR.WindowsCompability" - } - }, - { "System.Windows.ApplicationUnhandledExceptionEventArgs", new TypePatchInfo() - { - Reference = WindowsCompRef, - NewNamespace = "WPR.WindowsCompability" - } - }, - { "System.IO.IsolatedStorage.IsolatedStorageSettings", new TypePatchInfo() - { - Reference = WindowsCompRef, - NewNamespace = "WPR.WindowsCompability" - } - }, - { "Microsoft.Xna.Framework.Media.MediaSource", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.MediaSourceType", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.SongCollection", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.Artist", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.ArtistCollection", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.Album", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.AlbumCollection", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.Genre", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "Microsoft.Xna.Framework.Media.MediaLibrary", new TypePatchInfo() - { - Reference = FNACompRef, - NewNamespace = "WPR.XnaCompability.Media" - } - }, - { "System.Windows.Media.SolidColorBrush", new TypePatchInfo() - { - Reference = WindowsCompRef, - NewNamespace = "WPR.WindowsCompability.Media" - } - }, - { "System.Windows.Media.Color", new TypePatchInfo() - { - Reference = WindowsCompRef, - NewNamespace = "WPR.WindowsCompability.Media" - } - }, - { "System.Windows.Thickness", new TypePatchInfo() - { - Reference = WindowsCompRef, - NewNamespace = "WPR.WindowsCompability.Media" - } - }, - { "System.Windows.ResourceDictionary", new TypePatchInfo() - { - Reference = WindowsCompRef, - NewNamespace = "WPR.WindowsCompability" - } - }, - { "System.ServiceModel.XmlSerializerFormatAttribute", new TypePatchInfo() - { - Reference = ServiceModelPrimitivesRef - } - }, - { "System.ServiceModel.BasicHttpBinding", new TypePatchInfo() - { - Reference = ServiceModelHTTPRef - } - }, - { "System.ServiceModel.BasicHttpSecurity", new TypePatchInfo() - { - Reference = ServiceModelHTTPRef - } - }, - { "System.ServiceModel.BasicHttpSecurityMode", new TypePatchInfo() - { - Reference = ServiceModelHTTPRef - } - }, - { "System.Windows.MessageBox", new TypePatchInfo() - { - Reference = WindowsCompRef - } - }, - { "System.Windows.MessageBoxResult", new TypePatchInfo() - { - Reference = WindowsCompRef - } - }, - { "System.Windows.MessageBoxButton", new TypePatchInfo() - { - Reference = WindowsCompRef - } - } - }; - - MemberPatches = new Dictionary - { - { - "System.Type System.Type::GetType(System.String,System.Boolean)", - typeof(WPR.WindowsCompability.Type2) - }, - { - "Microsoft.Xna.Framework.Graphics.DisplayMode Microsoft.Xna.Framework.Graphics.GraphicsDevice::get_DisplayMode()", - typeof(WPR.XnaCompability.Graphics.GraphicsDevice2) - }, - { - "Microsoft.Xna.Framework.Graphics.DisplayMode Microsoft.Xna.Framework.Graphics.GraphicsAdapter::get_CurrentDisplayMode()", - typeof(WPR.XnaCompability.Graphics.GraphicsAdapter2) - }, - { - "System.String System.IO.Path::GetDirectoryName(System.String)", - typeof(WPR.WindowsCompability.Path2) - }, - { - "System.String System.IO.Path::GetFileName(System.String)", - typeof(WPR.WindowsCompability.Path2) - }, - { - "System.String System.IO.Path::GetFileNameWithoutExtension(System.String)", - typeof(WPR.WindowsCompability.Path2) - }, - { - "System.Void System.GC::Collect()", - typeof(WPR.WindowsCompability.GC2) - }, - { - "System.Xml.Linq.XElement System.Xml.Linq.XElement::Load(System.String)", - typeof(WPR.StandardCompability.Xml.Linq.XElement2) - } - }; - } - - private void PatchRelaxedXmlNullableAttribTextSerialize(ModuleDefinition? module) - { - Queue typeScanQueue = new Queue(); - foreach (var typeDef in module!.Types) - { - typeScanQueue.Enqueue(typeDef); - } - - CustomAttribute? xmlIgnoreAttrib = null; - - // Patch type for resolve XML library incompability - while (typeScanQueue.Count != 0) - { - TypeDefinition type = typeScanQueue.Dequeue(); - - if (type.HasNestedTypes) - { - foreach (var typeNested in type.NestedTypes) - { - typeScanQueue.Enqueue(typeNested); - } - } - - foreach (var field in type.Fields) - { - CustomAttribute? xmlNonNullableProp = null; - - foreach (var attrib in field.CustomAttributes) - { - if (attrib.AttributeType.FullName == typeof(XmlAttributeAttribute).FullName) - { - xmlNonNullableProp = attrib; - break; - } - } - - if (xmlNonNullableProp == null) - { - continue; - } - - if (field.FieldType.FullName.Contains("System.Nullable")) - { - var actualFieldType = (field.FieldType as GenericInstanceType)!.GenericArguments[0]; - - // Generate holder getter/setter - var getterMethod = new MethodDefinition($"get_{field.Name}SerializableHolder", MethodAttributes.Public, actualFieldType); - var getterGen = getterMethod.Body.GetILProcessor(); - - var nullableRefTypeGeneric = module.ImportReference(Type.GetType("System.Nullable`1")!); - var nullableRefType = nullableRefTypeGeneric.MakeGenericInstanceType(new TypeReference[] { actualFieldType }); - - // Emit getter - getterGen.Emit(OpCodes.Ldarg_0); - getterGen.Emit(OpCodes.Ldflda, field); - getterGen.Emit(OpCodes.Call, new MethodReference("get_Value", nullableRefTypeGeneric.GenericParameters[0]) - { - HasThis = true, - DeclaringType = nullableRefType - }); - getterGen.Emit(OpCodes.Ret); - - // Emit setter - var setterMethod = new MethodDefinition($"set_{field.Name}SerializableHolder", MethodAttributes.Public, module.TypeSystem.Void) - { - Parameters = { new ParameterDefinition(actualFieldType) }, - HasThis = true - }; - var setterGen = setterMethod.Body.GetILProcessor(); - - setterGen.Emit(OpCodes.Ldarg_0); - setterGen.Emit(OpCodes.Ldarg_1); - setterGen.Emit(OpCodes.Newobj, new MethodReference(".ctor", module.TypeSystem.Void, nullableRefType) - { - Parameters = { new ParameterDefinition(nullableRefTypeGeneric.GenericParameters[0]) }, - HasThis = true - }); - - setterGen.Emit(OpCodes.Stfld, field); - setterGen.Emit(OpCodes.Ret); - - // Emit skip serialize consideration - var shouldSerializeMethod = new MethodDefinition($"ShouldSerialize{field.Name}SerializableHolder", MethodAttributes.Public, module.TypeSystem.Boolean); - var shouldSerializeGen = shouldSerializeMethod.Body.GetILProcessor(); - - shouldSerializeGen.Emit(OpCodes.Ldarg_0); - shouldSerializeGen.Emit(OpCodes.Ldflda, field); - shouldSerializeGen.Emit(OpCodes.Call, new MethodReference("HasValue", module.TypeSystem.Boolean, nullableRefType) - { - HasThis = true - }); - shouldSerializeGen.Emit(OpCodes.Ret); - - type.Methods.Add(shouldSerializeMethod); - type.Methods.Add(getterMethod); - type.Methods.Add(setterMethod); - - var propSeri = new PropertyDefinition($"{field.Name}SerializableHolder", PropertyAttributes.None, actualFieldType) - { - GetMethod = getterMethod, - SetMethod = setterMethod - }; - - type.Properties.Add(propSeri); - - if (xmlIgnoreAttrib == null) - { - xmlIgnoreAttrib = new CustomAttribute(module.ImportReference(typeof(XmlIgnoreAttribute). - GetConstructor(Type.EmptyTypes))); - } - - field.CustomAttributes.Remove(xmlNonNullableProp); - field.CustomAttributes.Add(xmlIgnoreAttrib); - - // Add attribute if they already gave name, else we need to be creative - if (xmlNonNullableProp.HasConstructorArguments) - { - propSeri.CustomAttributes.Add(xmlNonNullableProp); - } - else - { - var attributeType = (xmlNonNullableProp.AttributeType.FullName == typeof(XmlAttributeAttribute).FullName) - ? typeof(XmlAttributeAttribute) : typeof(XmlTextAttribute); - - MethodReference methodConstructor = module.ImportReference(attributeType - .GetConstructor(new Type[] { typeof(String) })); - propSeri.CustomAttributes.Add(new CustomAttribute(methodConstructor) - { - ConstructorArguments = { new CustomAttributeArgument(module.TypeSystem.String, field.Name) } - }); - } - } - } - } - } - - public void PatchDll(string modulePath) - { - AssemblyDefinition assemblyData = AssemblyDefinition.ReadAssembly(modulePath); - var module = assemblyData.MainModule; - - assemblyData.Name.Name = AssemblyNameStandardization.Process(assemblyData.Name.Name); - - string modulePathNameStandardized = Path.Combine(Path.GetDirectoryName(modulePath)!, - AssemblyNameStandardization.Process(Path.GetFileNameWithoutExtension(modulePath)) + - Path.GetExtension(modulePath)); - - AssemblyNameReference? xnaGameServices = null; - - // Remove unneeded attribute (pretty sure!) - foreach (var attrib in module.Assembly.CustomAttributes) - { - if (attrib.AttributeType.FullName == "System.Runtime.CompilerServices.CodeGenerationAttribute") - { - module.Assembly.CustomAttributes.Remove(attrib); - break; - } - } - - foreach (var refer in module.AssemblyReferences) - { - if (refer.Name.Contains("Microsoft.Xna")) - { - if (refer.Name.Contains("GamerServices")) - { - xnaGameServices = refer; - } - else - { - refer.Name = FNARef.Name; - refer.Version = FNARef.Version; - refer.PublicKey = FNARef.PublicKey; - } - } else if (refer.Name.Equals("mscorlib.Extensions", StringComparison.OrdinalIgnoreCase)) - { - refer.Name = SystemRunTimeRef.Name; - refer.Version = SystemRunTimeRef.Version; - refer.PublicKey = SystemRunTimeRef.PublicKey; - } - else if (refer.Name.Equals("System.ServiceModel", StringComparison.OrdinalIgnoreCase)) - { - refer.Name = ServiceModelPrimitivesRef.Name; - refer.Version = ServiceModelPrimitivesRef.Version; - refer.PublicKey = ServiceModelPrimitivesRef.PublicKey; - } - } - - PatchRelaxedXmlNullableAttribTextSerialize(module); - - module.AssemblyReferences.Add(FNACompRef); - module.AssemblyReferences.Add(WindowsCompRef); - module.AssemblyReferences.Add(SystemRunTimeRef); - module.AssemblyReferences.Add(ServiceModelPrimitivesRef); - module.AssemblyReferences.Add(ServiceModelHTTPRef); - module.AssemblyReferences.Add(StandardCompRef); - - Dictionary typeRefPatchCache = new Dictionary(); - - foreach (var memberRef in module.GetMemberReferences()) - { - foreach (var patch in MemberPatches) - { - if (memberRef.FullName.Contains("Collect")) - { - Console.WriteLine("TeSTING!"); - } - if (memberRef.FullName == patch.Key) - { - if (typeRefPatchCache.ContainsKey(patch.Value.FullName!)) - { - memberRef.DeclaringType = typeRefPatchCache[patch.Value.FullName!]; - } else - { - memberRef.DeclaringType = module.ImportReference(patch.Value); - typeRefPatchCache.Add(patch.Value.FullName!, memberRef.DeclaringType); - } - } - } - } - - foreach (var existingRef in module.GetTypeReferences()) - { - existingRef.Name = AssemblyNameStandardization.Process(existingRef.Name); - - if (existingRef.FullName == "Microsoft.Xna.Framework.GamerServices.GamerServicesComponent") - { - existingRef.Scope = xnaGameServices; - } - else - { - if (Patches.ContainsKey(existingRef.FullName)) - { - TypePatchInfo patch = Patches[existingRef.FullName]; - if (patch != null) - { - if (patch.NewName != null) - { - existingRef.Name = patch.NewName; - } - - if (patch.NewNamespace != null) - { - existingRef.Namespace = patch.NewNamespace; - } - - if (patch.Reference != null) - { - existingRef.Scope = patch.Reference; - } - } - } - } - } - - assemblyData.Write(modulePath + ".new"); - assemblyData.Dispose(); - - File.Move(modulePath, modulePathNameStandardized + ".original", true); - File.Move(modulePath + ".new", modulePathNameStandardized, true); - } - - public void Patch(string appRootPath, Action progress, CancellationToken token) - { - List filenameList = Directory.EnumerateFiles(appRootPath, "*.dll", SearchOption.AllDirectories).ToList(); - int totalCount = filenameList.Count; - int current = 0; - - foreach (var filename in filenameList) - { - if (token.IsCancellationRequested) - { - return; - } - - try - { - PatchDll(filename); - } catch (Exception ex) - { - Common.Log.Error(Common.LogCategory.AppPatcher, $"Fail to patch DLL with path: {filename}. Error:\n{ex}"); - continue; - } - - current++; - progress((int)(current * 100.0 / totalCount)); - } - } - } -} diff --git a/RE/Commit2/Core/WPR/AssemblyNameStandardization.cs b/RE/Commit2/Core/WPR/AssemblyNameStandardization.cs deleted file mode 100644 index 9d7a11d1..00000000 --- a/RE/Commit2/Core/WPR/AssemblyNameStandardization.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; - -namespace WPR -{ - internal class AssemblyNameStandardization - { - public static String Process(String previous) - { - return new Regex("[*'\",_&#^@!]").Replace(previous, "_"); - } - } -} diff --git a/RE/Commit2/Core/WPR/AudioCompabilityConverter.cs b/RE/Commit2/Core/WPR/AudioCompabilityConverter.cs deleted file mode 100644 index d56fa2fa..00000000 --- a/RE/Commit2/Core/WPR/AudioCompabilityConverter.cs +++ /dev/null @@ -1,127 +0,0 @@ -using System; -using System.IO; -using System.Threading; -using System.Linq; -using System.Threading.Tasks; - -#if __ANDROID__ -using Com.Arthenica.Ffmpegkit; -#else -using FFMpegCore; -#endif - -namespace WPR -{ - public static class AudioCompabilityConverter - { -#if __ANDROID__ - private class FFMPEGConvertSession : Java.Lang.Object, IFFmpegSessionCompleteCallback - { - public TaskCompletionSource CompletionSource; - - public FFMPEGConvertSession() - { - CompletionSource = new TaskCompletionSource(TaskCreationOptions.RunContinuationsAsynchronously); - } - - public void Apply(FFmpegSession? session) - { - CompletionSource.SetResult(session); - } - - public Task Convert(string source, string dest) - { - var session = FFmpegKit.ExecuteAsync($"-i \"{source}\" \"{dest}\"", this); - - if (session == null) - { - CompletionSource.SetResult(null); - return CompletionSource.Task; - } - - return CompletionSource.Task; - } - } -#endif - - public static async Task ScanWmaAndConvert(string rootFolder, Action progressReport, CancellationToken cancelToken) - { -#if __MOBILE__ - // I love this kit. Ignore so that the exception stack of Mono is not corrupted - FFmpegKitConfig.IgnoreSignal(Signal.Sigxcpu); -#endif - - var fileEnum = Directory.EnumerateFiles(rootFolder, "*.wma", SearchOption.AllDirectories).ToList(); - - int countSoFar = 0; - int totalCount = fileEnum.Count(); - - foreach (var filename in fileEnum) - { - if (cancelToken.IsCancellationRequested) - { - return; - } - - if (!File.Exists(filename + ".xnb") && !File.Exists(Path.ChangeExtension(filename, ".xnb"))) { - countSoFar++; - progressReport((int)(countSoFar * 100.0 / totalCount)); - - continue; - } - - FileStream headerCheckFile = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read); - - byte[] Magic = new byte[16] { 0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9, 0x00, 0xAA, - 0x00, 0x62, 0xCE, 0x6C }; - - byte[] MagicCheck = new byte[16]; - - headerCheckFile.Read(MagicCheck, 0, 16); - - if (MagicCheck.SequenceEqual(Magic)) - { - string newFilename = filename + ".new.ogg"; - - if (cancelToken.IsCancellationRequested) - { - return; - } - -#if __ANDROID__ - var session = await new FFMPEGConvertSession().Convert(filename, newFilename); - - if (session == null) - { - continue; - } - - if (!ReturnCode.IsSuccess(session.ReturnCode)) - { - continue; - } -#else - bool ok = await FFMpegArguments - .FromFileInput(filename) - .OutputToFile(newFilename, true, null) - .ProcessAsynchronously(); - - if (!ok) - { - Common.Log.Warn(Common.LogCategory.AppAudioConverter, $"Fail to convert audio file {filename} to ogg!"); - continue; - } -#endif - - headerCheckFile.Dispose(); - - File.Move(filename, filename + ".original", true); - File.Move(newFilename, filename, true); - - countSoFar++; - progressReport((int)(countSoFar * 100.0 / totalCount)); - } - } - } - } -} diff --git a/RE/Commit2/Core/WPR/Migrations/20220830063110_InitialCreate.Designer.cs b/RE/Commit2/Core/WPR/Migrations/20220830063110_InitialCreate.Designer.cs deleted file mode 100644 index 4b4baf70..00000000 --- a/RE/Commit2/Core/WPR/Migrations/20220830063110_InitialCreate.Designer.cs +++ /dev/null @@ -1,80 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Migrations; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using WPR.Models; - -#nullable disable - -namespace WPR.Migrations -{ - [DbContext(typeof(ApplicationContext))] - [Migration("20220830063110_InitialCreate")] - partial class InitialCreate - { - protected override void BuildTargetModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "6.0.8"); - - modelBuilder.Entity("WPR.Models.Application", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ApplicationType") - .HasColumnType("INTEGER"); - - b.Property("Assembly") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Author") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("EntryPoint") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("IconPath") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("InstalledTime") - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("PatchedVersion") - .HasColumnType("INTEGER"); - - b.Property("ProductId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Publisher") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Version") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Applications"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RE/Commit2/Core/WPR/Migrations/20220830063110_InitialCreate.cs b/RE/Commit2/Core/WPR/Migrations/20220830063110_InitialCreate.cs deleted file mode 100644 index 4ac42ad8..00000000 --- a/RE/Commit2/Core/WPR/Migrations/20220830063110_InitialCreate.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using Microsoft.EntityFrameworkCore.Migrations; - -#nullable disable - -namespace WPR.Migrations -{ - public partial class InitialCreate : Migration - { - protected override void Up(MigrationBuilder migrationBuilder) - { - migrationBuilder.CreateTable( - name: "Applications", - columns: table => new - { - Id = table.Column(type: "INTEGER", nullable: false) - .Annotation("Sqlite:Autoincrement", true), - Name = table.Column(type: "TEXT", nullable: false), - Description = table.Column(type: "TEXT", nullable: false), - IconPath = table.Column(type: "TEXT", nullable: false), - ApplicationType = table.Column(type: "INTEGER", nullable: false), - ProductId = table.Column(type: "TEXT", nullable: false), - Author = table.Column(type: "TEXT", nullable: false), - Publisher = table.Column(type: "TEXT", nullable: false), - Assembly = table.Column(type: "TEXT", nullable: false), - EntryPoint = table.Column(type: "TEXT", nullable: false), - Version = table.Column(type: "TEXT", nullable: false), - InstalledTime = table.Column(type: "TEXT", nullable: false), - PatchedVersion = table.Column(type: "INTEGER", nullable: false) - }, - constraints: table => - { - table.PrimaryKey("PK_Applications", x => x.Id); - }); - } - - protected override void Down(MigrationBuilder migrationBuilder) - { - migrationBuilder.DropTable( - name: "Applications"); - } - } -} diff --git a/RE/Commit2/Core/WPR/Migrations/ApplicationContextModelSnapshot.cs b/RE/Commit2/Core/WPR/Migrations/ApplicationContextModelSnapshot.cs deleted file mode 100644 index 270a7ab9..00000000 --- a/RE/Commit2/Core/WPR/Migrations/ApplicationContextModelSnapshot.cs +++ /dev/null @@ -1,78 +0,0 @@ -// -using System; -using Microsoft.EntityFrameworkCore; -using Microsoft.EntityFrameworkCore.Infrastructure; -using Microsoft.EntityFrameworkCore.Storage.ValueConversion; -using WPR.Models; - -#nullable disable - -namespace WPR.Migrations -{ - [DbContext(typeof(ApplicationContext))] - partial class ApplicationContextModelSnapshot : ModelSnapshot - { - protected override void BuildModel(ModelBuilder modelBuilder) - { -#pragma warning disable 612, 618 - modelBuilder.HasAnnotation("ProductVersion", "6.0.8"); - - modelBuilder.Entity("WPR.Models.Application", b => - { - b.Property("Id") - .ValueGeneratedOnAdd() - .HasColumnType("INTEGER"); - - b.Property("ApplicationType") - .HasColumnType("INTEGER"); - - b.Property("Assembly") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Author") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Description") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("EntryPoint") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("IconPath") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("InstalledTime") - .HasColumnType("TEXT"); - - b.Property("Name") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("PatchedVersion") - .HasColumnType("INTEGER"); - - b.Property("ProductId") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Publisher") - .IsRequired() - .HasColumnType("TEXT"); - - b.Property("Version") - .IsRequired() - .HasColumnType("TEXT"); - - b.HasKey("Id"); - - b.ToTable("Applications"); - }); -#pragma warning restore 612, 618 - } - } -} diff --git a/RE/Commit2/Core/WPR/Models/Application.cs b/RE/Commit2/Core/WPR/Models/Application.cs deleted file mode 100644 index f1ad777e..00000000 --- a/RE/Commit2/Core/WPR/Models/Application.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.ComponentModel.DataAnnotations; -using System.ComponentModel.DataAnnotations.Schema; - -namespace WPR.Models -{ - [Serializable] - public class Application - { - public const string DataStoreFolder = "AppData"; - - [DatabaseGenerated(DatabaseGeneratedOption.Identity)] - [Key, Column(Order = 0)] - public long Id { get; set; } - public string Name { get; set; } - public string Description { get; set; } - public string IconPath { get; set; } - public ApplicationType ApplicationType { get; set; } - public string ProductId { get; set; } - public string Author { get; set; } - public string Publisher { get; set; } - public string Assembly { get; set; } - public string EntryPoint { get; set; } - public string Version { get; set; } // Can't find why this conflicted with the class if Version class is used - public DateTime InstalledTime { get; set; } - public int PatchedVersion { get; set; } - } -} diff --git a/RE/Commit2/Core/WPR/Models/ApplicationContext.cs b/RE/Commit2/Core/WPR/Models/ApplicationContext.cs deleted file mode 100644 index fd2b49a8..00000000 --- a/RE/Commit2/Core/WPR/Models/ApplicationContext.cs +++ /dev/null @@ -1,42 +0,0 @@ -using Microsoft.EntityFrameworkCore; -using WPR.Common; - -using System.IO; - -namespace WPR.Models -{ - public class ApplicationContext : DbContext - { - public DbSet? Applications { get; set; } - private static ApplicationContext? _Current; - - private const string DatabasePath = "Database/applications.db"; - private const string DatabaseFolder = "Database"; - - public static ApplicationContext Current - { - get - { - if (_Current == null) - { - _Current = new ApplicationContext(); - } - - return _Current; - } - } - - public ApplicationContext() - { - Directory.CreateDirectory(Configuration.Current.DataPath(DatabaseFolder)); - } - protected override void OnModelCreating(ModelBuilder modelBuilder) - { - modelBuilder.Entity() - .HasKey(c => c.Id); - } - - protected override void OnConfiguring(DbContextOptionsBuilder options) - => options.UseSqlite($"Data Source={Configuration.Current.DataPath(DatabasePath)}"); - } -} diff --git a/RE/Commit2/Core/WPR/Models/ApplicationType.cs b/RE/Commit2/Core/WPR/Models/ApplicationType.cs deleted file mode 100644 index de78b9be..00000000 --- a/RE/Commit2/Core/WPR/Models/ApplicationType.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace WPR.Models -{ - public enum ApplicationType - { - XNA = 0, - } -} diff --git a/RE/Commit2/Core/WPR/WPR.csproj b/RE/Commit2/Core/WPR/WPR.csproj deleted file mode 100644 index 66345d00..00000000 --- a/RE/Commit2/Core/WPR/WPR.csproj +++ /dev/null @@ -1,36 +0,0 @@ - - - - net5.0 - - - net5.0-windows10.0.17763.0 - - - 5.0.17 - 6.0.8 - 21 - enable - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/Database/TrueAchievements/AchievementsNameToKey.json b/RE/Commit2/Database/TrueAchievements/AchievementsNameToKey.json deleted file mode 100644 index 6b7488fb..00000000 --- a/RE/Commit2/Database/TrueAchievements/AchievementsNameToKey.json +++ /dev/null @@ -1,215 +0,0 @@ -{ - "706f822a-a47e-e011-986b-78e7d1fa76f8": { - "Master of Morticulture": "Master of Mosticulture", - "Don't Pea in the Pool": "Dont Pea in the Pool" - }, - "f1126266-30a0-4bfc-8985-97cb1d6821b0": { - "Armed and Dangerous": "armed", - "Technologist": "techlead", - "Difficulties Mastered": "owned", - "Uncharted": "uncharted", - "A Knight Without Fear or Blame": "arabswin", - "Flower and Song": "aztecwin", - "Let a Hundred Flowers Bloom": "chinawin", - "I Will Not Be Triumphed Over": "egyptwin", - "One Mistress and No Master": "englandwin", - "Imagination Rules the World": "francewin", - "Blood and Iron": "germanwin", - "An Indomitable Will": "indiawin", - "Victory Over Lesser Men": "japanwin", - "All Others Must Fail": "mongoliawin", - "Veni Vidi Vici": "romewin", - "A Great Wind is Blowing": "russiawin", - "Fair and Softly Goes Far": "spainwin", - "We the People": "uswin", - "This World is a Harsh Place": "zuluwin", - "A Short Life of Glory": "greecewin" - }, - "5a3f9c59-1d30-4895-bb76-641bdd959a8c": { - "A Friend For Life": "Achievement_01_AFriendForLife", - "First Contact": "Achievement_02_FirstContact", - "Catch Me If You Can": "Achievement_03_CatchMeIfYouCan", - "Animal Carer": "Achievement_04_AnimalCarer", - "A Great Start": "Achievement_05_AGreatStart", - "Pieces of Flair": "Achievement_06_PiecesofFlair", - "Hit The Surf": "Achievement_07_HitTheSurf", - "Archaeologist": "Achievement_08_Archaeologist", - "Under The Falling Blossom": "Achievement_09_UnderTheFallingBlossom", - "The Hills Are Alive": "Achievement_10_TheHillsAreAlive", - "Mountaineer": "Achievement_11_Mountaineer", - "Treasure Hunter": "Achievement_12_TreasureHunter", - "Champion": "Achievement_13_Champion", - "The Ring Master": "Achievement_14_TheRingMaster", - "Wildlife Guru": "Achievement_15_WildlifeGuru" - }, - "6d8088a0-77d6-df11-a844-00237de2db9e": { - "the student": "Achievement1", - "gaining ground": "Achievement2", - "move on": "Achievement3", - "almost there": "Achievement4", - "catch the train": "Achievement5", - "bonus champ": "Achievement6", - "free bonus": "Achievement7", - "green fingers": "Achievement8", - "color of the sun": "Achievement9", - "purple rain": "Achievement10", - "hard boiled": "Achievement11", - "safkas are saved": "Achievement12", - "the hunter": "Achievement13", - "party hat": "Achievement14", - "finally together": "Achievement15" - }, - "50c35d07-1050-479e-baed-b18e7c2aec35": { - "Absolute Beginner": "absolutebeginner", - "Committed": "committed", - "Rock the sea floor": "rocktheseafloor", - "Monsta Skills": "monstaskills", - "Goldfish Rescue": "goldfishrescue", - "Loner": "loner", - "Terminator": "terminator", - "Sharpshooter": "sharpshooter", - "Survivor": "survivor", - "Point Break": "pointbreak", - "Captain Hook": "captainhook", - "Control Freak": "controlfreak", - "Happy Birthday": "happybirthday", - "Pure Gold": "puregold" - }, - "09cc7f9c-ced4-df11-a844-00237de2db9e": { - "Learner's Permit": "Learners Permit" - }, - "bbf5c3a2-e1fb-df11-9264-00237de2db9e": { - "No, Thanks!": "NoThanks", - "Total Euphoria": "TotalEuphoria", - "Super Challenger": "SuperChallenger", - "Super Hero": "SuperHero", - "Perfectionist": "Perfectionist" - }, - "2152e203-f639-4041-bf4e-f44c34d463fa": { - "Out of Line": "Achievement01", - "Victor of Victorious...Victory": "Achievement02", - "Gum-Splattered Lock-Plucker": "Achievement03", - "Sound of One Hand Applauding": "Achievement04", - "A Shogun Is You!": "Achievement05", - "Devil Inside": "Achievement06", - "Were you using that?": "Achievement07", - "Outfoxing Death": "Achievement08", - "Lightning Storm": "Achievement09", - "Gone with the Wind": "Achievement10", - "The Bone Collector": "Achievement11", - "Kingdom of the Golden Skull": "Achievement12", - "Out of Your Skull": "Achievement13", - "Kurokawa Would Be Proud": "Achievement14", - "Web Master": "Achievement15", - "Online Multi-Slayer": "Achievement16", - "Team Player": "Achievement17", - "Speed Kills": "Achievement18", - "Epic Win": "Achievement19", - "Speed of the Shogun": "Achievement20" - }, - "6651b8fe-0da1-e011-986b-78e7d1fa76f8": { - "Play it Safe": "COMPLETE_LEVEL_NO_DAMAGE", - "Pickup Truck": "COLLECT_ALL_PICKUPS", - "When I Say Jump": "COMPLETE_ALL_CHALLENGES", - "Speed Devil": "COMPLETE_TIME_CHALLENGE", - "Tentaculous": "COMPLETE_GAME", - "Mr. Immortal": "COMPLETE_ALL_LEVELS_WITHOUT_DYING", - "Perfection": "MAKE_A_PERFECT_RUN", - "Limbo": "GET_NO_PICKUPS", - "Napoleon": "GET_ALL_STARS", - "Slay Away": "MAKE_5_CONSECUTIVE_KILLS", - "Jack the Ripper": "FIRST_KILL", - "Artful Dodger": "COMPLETE_DAMAGE_CHALLENGE", - "Worm Eater": "DEFEAT_FIRST_WORM_BOSS", - "Slice N' Dice": "DEFEAT_SECOND_WORM_BOSS", - "Eye for an Eye": "DEFEAT_FIRST_SHOOTER_BOSS", - "Eye Candy": "DEFEAT_SECOND_SHOOTER_BOSS", - "Soupe a'la Turtle": "KILL_GOBBLER", - "Shell Out": "DEFEAT_FIRST_GOBBLER_BOSS", - "In a Nut Shell": "DEFEAT_SECOND_GOBBLER_BOSS", - "The Small Escape": "COMPLETE_PENETRATOR_LEVEL" - }, - "cdbc3c2d-7c24-e011-854c-00237de2db9e": { - "No Man is an Island": "UNLOCK_ISLAND", - "The Ecstacy of Gold": "COLLECT_ALL_GOLD_MASKS_OF_ISLAND", - "Full Circle": "COMPLETE_ALL_ISLANDS", - "Perfectionist": "COLLECT_ALL_GOLD_MASKS", - "Tree Hugger": "COMPLETE_ALL_ECO_MISSIONS_OF_ISLAND", - "Eco Warrior": "COMPLETE_ALL_ECO_MISSIONS", - "Das Booty": "COMPLETE_DIVING_DUTCHMAN", - "Animal Mishandler": "LOSE_ALL_MONKEYS", - "Brink of Extinction": "LOSE_100_MONKEYS", - "Deforester": "USE_5000_BAMBOO", - "Errorist": "ERASE_1000_BAMBOO", - "Ultimate Super Champion": "COMPLETE_EVERYTHING" - }, - "bda167be-7b65-49f0-9f3a-daddfdb0e4b6": { - "Acorn Ace": "BUGGINOUT_ACHIEVE_RESOURCES", - "Bug Breeder": "BUGGINOUT_ACHIEVE_BUGSCOUNT", - "Ding!": "BUGGINOUT_ACHIEVE_HIGHLEVEL", - "Lady Helper": "BUGGINOUT_ACHIEVE_LADYBUG", - "Bug Tapper": "BUGGINOUT_ACHIEVE_TAPBUGS", - "Air Freshener": "BUGGINOUT_ACHIEVE_STINKYBUGS", - "Great Decorator": "BUGGINOUT_ACHIEVE_DECORATIONS" - }, - "2fd3f1f0-9fd8-df11-a844-00237de2db9e": { - "Do you want to know a secret?": "Do you want to know a secret", - "Ship Ahoy!": "Ship Ohoy", - "Half the secrets": "Half of secrets", - "Speed demon": "Speed Demon", - "Done and done": "Done done" - }, - "9995f674-0ad7-df11-a844-00237de2db9e": { - "When You Believe...": "When You Believe", - "Sim-ply Generous": "Simply Generous", - "Self-Helper": "Self Helper" - }, - "114eda67-6fe1-df11-a844-00237de2db9e": { - "It's Not Temporary": "It is Not Temporary" - }, - "1eb53441-a639-e011-854c-00237de2db9e": { - "Milk Bottle": "Katamari_1", - "Glue": "Katamari_2", - "Strawberry Shortcake": "Katamari_3", - "Seat Cushion": "Katamari_4", - "Champion's Belt": "Katamari_5", - "Base": "Katamari_6", - "Broadcast Van": "Katamari_7", - "Astro Jet": "Katamari_8", - "Big Pyramid": "Katamari_9", - "Pink Bull": "Katamari_10", - "Yellow Sub": "Katamari_11", - "Blue Truck": "Katamari_12", - "Completed exquisite collection!": "Katamari_13", - "Squash": "Katamari_14" - }, - "9cdfbe90-760a-e011-9264-00237de2db9e": { - "20% Brain Usage": "20 Percent Brain Usage", - "40% Brain Usage": "40 Percent Brain Usage", - "60% Brain Usage": "60 Percent Brain Usage", - "80% Brain Usage": "80 Percent Brain Usage", - "100% Brain Usage": "100 Percent Brain Usage" - }, - "a703c941-2b1c-49c5-ae00-abb8a0745b1e": { - "ROLE PLAYER": "ROLEPLAYER", - "SO KIND": "SOKIND", - "SO VICIOUS": "SOVICIOUS", - "SO RELIGIOUS" : "SORELIGIOUS", - "SO BRAVE": "SOBRAVE", - "SMART CRAFT": "SMARTCRAFT", - "GARDEN KEEPER": "GARDENKEEPER", - "ECOLOGIC DISASTER": "ECOLOGICDISASTER", - "ULTIMATE FIGHTER": "ULTIMATEFIGHTER", - "KING OF THE RING": "KINGOFTHERING", - "BROTHERS IN ARM": "BROTHERSINARM", - "FRIENDLY SIM": "FRIENDLYSIM", - "RICH-E-SIM": "RICHESIM", - "WEAPON MASTER": "WEAPONMASTER", - "CHEVRON KNIGHT": "CHEVRONKNIGHT", - "VAMPIRE KNIGHT": "VAMPIREKNIGHT", - "DRAKHAN KNIGHT": "DRAKHANKNIGHT", - "LUCKY!": "LUCKY", - "CASINO": "CASINO", - "QUEST MASTER": "QUESTMASTER" - } -} \ No newline at end of file diff --git a/RE/Commit2/Database/TrueAchievements/ProductIdUrl.json b/RE/Commit2/Database/TrueAchievements/ProductIdUrl.json deleted file mode 100644 index 6836736f..00000000 --- a/RE/Commit2/Database/TrueAchievements/ProductIdUrl.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "706f822a-a47e-e011-986b-78e7d1fa76f8": "Plants-vs-Zombies-Windows-Phone", - "7826ea3a-a287-413b-9338-0f708ba27963": "Fruit-Ninja", - "f1126266-30a0-4bfc-8985-97cb1d6821b0": "Sid-Meiers-Civilization-Revolution-Windows-Phone", - "5a3f9c59-1d30-4895-bb76-641bdd959a8c": "Kinectimals-Windows-Phone", - "6d8088a0-77d6-df11-a844-00237de2db9e": "ilomilo-Windows-Phone", - "50c35d07-1050-479e-baed-b18e7c2aec35": "MonstaFish", - "831fc541-b1bd-4602-84bc-6e16f333584d": "Monster-Island", - "09cc7f9c-ced4-df11-a844-00237de2db9e": "Need-for-Speed-Undercover-Windows-Phone", - "128459e9-4ed9-df11-a844-00237de2db9e": "Earthworm-Jim", - "bbf5c3a2-e1fb-df11-9264-00237de2db9e": "Tower-Bloxx-New-York", - "2152e203-f639-4041-bf4e-f44c34d463fa": "Skulls-of-the-Shogun-Windows-Phone", - "6651b8fe-0da1-e011-986b-78e7d1fa76f8": "Tentacles", - "cdbc3c2d-7c24-e011-854c-00237de2db9e": "Tiki-Towers", - "bda167be-7b65-49f0-9f3a-daddfdb0e4b6": "Bug-Village", - "2fd3f1f0-9fd8-df11-a844-00237de2db9e": "Max-and-the-Magic-Marker", - "9995f674-0ad7-df11-a844-00237de2db9e": "The-Sims-3", - "114eda67-6fe1-df11-a844-00237de2db9e": "More-Brain-Exercise", - "1eb53441-a639-e011-854c-00237de2db9e": "I-Love-Katamari", - "9cdfbe90-760a-e011-9264-00237de2db9e": "Brain-Challenge-Windows-Phone", - "a703c941-2b1c-49c5-ae00-abb8a0745b1e": "The-Sims-Medieval" -} diff --git a/RE/Commit2/Database/achievements.db b/RE/Commit2/Database/achievements.db deleted file mode 100644 index 5094a61a..00000000 Binary files a/RE/Commit2/Database/achievements.db and /dev/null differ diff --git a/RE/Commit2/Database/applications.db b/RE/Commit2/Database/applications.db deleted file mode 100644 index b9b63a29..00000000 Binary files a/RE/Commit2/Database/applications.db and /dev/null differ diff --git a/RE/Commit2/Readme.md b/RE/Commit2/Readme.md deleted file mode 100644 index cf6c8828..00000000 --- a/RE/Commit2/Readme.md +++ /dev/null @@ -1,59 +0,0 @@ -# WPR proto 1 (Commit2) - -## Results of my R.E. /RnD -- I concentrated on "Desktop case" (windows target) -- Android projects temporary deleted from WPR solution (reason: the solution was soooo huuuugee))) ;) -- Some games (i.e., Fruit Ninja, Birds on Fire) can run ok -- Some games don't fails to start (strange bug catched, LoadException named... no dependant dlls?) but installed "normally" -- Games' Database state not damaged after app restart... but important operation [D]elete (i mean CRUD) not realized yet -- Only 19 projects at Solutions (not 26, as original WPR))) - - -## Comments from the author (English / Russian / Chinese translation): - - -Now that I have only tried those games, can I basically play normally??(What do I spend five or six minutes per game): - -- ilomilo --Zuma's revenge --Fruit Ninja (wp7 version) -- pvz -- MonstaFish --Need for Speed --Civilization change - -Some gameloft yx is not yet running.You can watch it later - -Next: Android version (It's going to be super!!) - ---- - -Теперь, когда я попробовал только эти игры, могу ли я в принципе нормально играть??(На что я трачу пять или шесть минут за игру): - -- иломило -- Месть Зумы --Фруктовый ниндзя (версия wp7) -- пвз -- Рыба-монстр -- Потребность в скорости -- Изменение цивилизации - -Некоторые игры gameloft yx еще не запущены.Вы можете посмотреть его позже - -Далее: версия для Android (Это будет супер!!) - ---- - -现在我才试了那几个游戏,基本可以正常玩??(每游戏我花五六分钟什么什么): - -- ilomilo -- 祖玛报仇 -- 水果忍者 (wp7 版本) -- pvz -- MonstaFish -- 极品飞车 -- 文明变革 - -有些gameloft yx 还没运行。后来可以再看 - -接下来: 安卓版本!! (要s了) \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/avalonia_demo_image_07_02_21.png b/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/avalonia_demo_image_07_02_21.png deleted file mode 100644 index 960a9012..00000000 Binary files a/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/avalonia_demo_image_07_02_21.png and /dev/null differ diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/linux_demo_image_06_02_21.png b/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/linux_demo_image_06_02_21.png deleted file mode 100644 index 8903e607..00000000 Binary files a/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/linux_demo_image_06_02_21.png and /dev/null differ diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/win_demo_image_06_02_21.png b/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/win_demo_image_06_02_21.png deleted file mode 100644 index 637292c1..00000000 Binary files a/RE/Commit2/ThirdParty/DesktopNotifications/.github/images/win_demo_image_06_02_21.png and /dev/null differ diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/.github/workflows/build.yml b/RE/Commit2/ThirdParty/DesktopNotifications/.github/workflows/build.yml deleted file mode 100644 index b7fb8e09..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/.github/workflows/build.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Build - -on: - push: - branches: [ master ] - pull_request: - branches: [ master ] - -jobs: - build: - strategy: - matrix: - os: [ubuntu-latest, windows-latest, macos-latest] - - runs-on: ${{ matrix.os }} - - steps: - - uses: actions/checkout@v2 - - name: Setup .NET - uses: actions/setup-dotnet@v1 - with: - dotnet-version: 5.0.x - - name: Restore dependencies - run: dotnet restore - - name: Build - run: dotnet build --no-restore /warnaserror - - name: Test - run: dotnet test --no-build --verbosity normal diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/.gitignore b/RE/Commit2/ThirdParty/DesktopNotifications/.gitignore deleted file mode 100644 index 22029693..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/.gitignore +++ /dev/null @@ -1,616 +0,0 @@ - -# Created by https://www.toptal.com/developers/gitignore/api/csharp,dotnetcore,visualstudio,osx,xcode,windows -# Edit at https://www.toptal.com/developers/gitignore?templates=csharp,dotnetcore,visualstudio,osx,xcode,windows - -### Csharp ### -## Ignore Visual Studio temporary files, build results, and -## files generated by popular Visual Studio add-ons. -## -## Get latest from https://github.com/github/gitignore/blob/master/VisualStudio.gitignore - -# User-specific files -*.rsuser -*.suo -*.user -*.userosscache -*.sln.docstates - -# User-specific files (MonoDevelop/Xamarin Studio) -*.userprefs - -# Mono auto generated files -mono_crash.* - -# Build results -[Dd]ebug/ -[Dd]ebugPublic/ -[Rr]elease/ -[Rr]eleases/ -x64/ -x86/ -[Aa][Rr][Mm]/ -[Aa][Rr][Mm]64/ -bld/ -[Bb]in/ -[Oo]bj/ -[Ll]og/ -[Ll]ogs/ - -# Visual Studio 2015/2017 cache/options directory -.vs/ -# Uncomment if you have tasks that create the project's static files in wwwroot -#wwwroot/ - -# Visual Studio 2017 auto generated files -Generated\ Files/ - -# MSTest test Results -[Tt]est[Rr]esult*/ -[Bb]uild[Ll]og.* - -# NUnit -*.VisualState.xml -TestResult.xml -nunit-*.xml - -# Build Results of an ATL Project -[Dd]ebugPS/ -[Rr]eleasePS/ -dlldata.c - -# Benchmark Results -BenchmarkDotNet.Artifacts/ - -# .NET Core -project.lock.json -project.fragment.lock.json -artifacts/ - -# StyleCop -StyleCopReport.xml - -# Files built by Visual Studio -*_i.c -*_p.c -*_h.h -*.ilk -*.meta -*.obj -*.iobj -*.pch -*.pdb -*.ipdb -*.pgc -*.pgd -*.rsp -*.sbr -*.tlb -*.tli -*.tlh -*.tmp -*.tmp_proj -*_wpftmp.csproj -*.log -*.vspscc -*.vssscc -.builds -*.pidb -*.svclog -*.scc - -# Chutzpah Test files -_Chutzpah* - -# Visual C++ cache files -ipch/ -*.aps -*.ncb -*.opendb -*.opensdf -*.sdf -*.cachefile -*.VC.db -*.VC.VC.opendb - -# Visual Studio profiler -*.psess -*.vsp -*.vspx -*.sap - -# Visual Studio Trace Files -*.e2e - -# TFS 2012 Local Workspace -$tf/ - -# Guidance Automation Toolkit -*.gpState - -# ReSharper is a .NET coding add-in -_ReSharper*/ -*.[Rr]e[Ss]harper -*.DotSettings.user - -# TeamCity is a build add-in -_TeamCity* - -# DotCover is a Code Coverage Tool -*.dotCover - -# AxoCover is a Code Coverage Tool -.axoCover/* -!.axoCover/settings.json - -# Coverlet is a free, cross platform Code Coverage Tool -coverage*[.json, .xml, .info] - -# Visual Studio code coverage results -*.coverage -*.coveragexml - -# NCrunch -_NCrunch_* -.*crunch*.local.xml -nCrunchTemp_* - -# MightyMoose -*.mm.* -AutoTest.Net/ - -# Web workbench (sass) -.sass-cache/ - -# Installshield output folder -[Ee]xpress/ - -# DocProject is a documentation generator add-in -DocProject/buildhelp/ -DocProject/Help/*.HxT -DocProject/Help/*.HxC -DocProject/Help/*.hhc -DocProject/Help/*.hhk -DocProject/Help/*.hhp -DocProject/Help/Html2 -DocProject/Help/html - -# Click-Once directory -publish/ - -# Publish Web Output -*.[Pp]ublish.xml -*.azurePubxml -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted -*.pubxml -*.publishproj - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted -PublishScripts/ - -# NuGet Packages -*.nupkg -# NuGet Symbol Packages -*.snupkg -# The packages folder can be ignored because of Package Restore -**/[Pp]ackages/* -# except build/, which is used as an MSBuild target. -!**/[Pp]ackages/build/ -# Uncomment if necessary however generally it will be regenerated when needed -#!**/[Pp]ackages/repositories.config -# NuGet v3's project.json files produces more ignorable files -*.nuget.props -*.nuget.targets - -# Microsoft Azure Build Output -csx/ -*.build.csdef - -# Microsoft Azure Emulator -ecf/ -rcf/ - -# Windows Store app package directories and files -AppPackages/ -BundleArtifacts/ -Package.StoreAssociation.xml -_pkginfo.txt -*.appx -*.appxbundle -*.appxupload - -# Visual Studio cache files -# files ending in .cache can be ignored -*.[Cc]ache -# but keep track of directories ending in .cache -!?*.[Cc]ache/ - -# Others -ClientBin/ -~$* -*~ -*.dbmdl -*.dbproj.schemaview -*.jfm -*.pfx -*.publishsettings -orleans.codegen.cs - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) -#*.snk - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) -#bower_components/ - -# RIA/Silverlight projects -Generated_Code/ - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) -_UpgradeReport_Files/ -Backup*/ -UpgradeLog*.XML -UpgradeLog*.htm -ServiceFabricBackup/ -*.rptproj.bak - -# SQL Server files -*.mdf -*.ldf -*.ndf - -# Business Intelligence projects -*.rdl.data -*.bim.layout -*.bim_*.settings -*.rptproj.rsuser -*- [Bb]ackup.rdl -*- [Bb]ackup ([0-9]).rdl -*- [Bb]ackup ([0-9][0-9]).rdl - -# Microsoft Fakes -FakesAssemblies/ - -# GhostDoc plugin setting file -*.GhostDoc.xml - -# Node.js Tools for Visual Studio -.ntvs_analysis.dat -node_modules/ - -# Visual Studio 6 build log -*.plg - -# Visual Studio 6 workspace options file -*.opt - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) -*.vbw - -# Visual Studio LightSwitch build output -**/*.HTMLClient/GeneratedArtifacts -**/*.DesktopClient/GeneratedArtifacts -**/*.DesktopClient/ModelManifest.xml -**/*.Server/GeneratedArtifacts -**/*.Server/ModelManifest.xml -_Pvt_Extensions - -# Paket dependency manager -.paket/paket.exe -paket-files/ - -# FAKE - F# Make -.fake/ - -# CodeRush personal settings -.cr/personal - -# Python Tools for Visual Studio (PTVS) -__pycache__/ -*.pyc - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio -*.tss - -# Telerik's JustMock configuration file -*.jmconfig - -# BizTalk build output -*.btp.cs -*.btm.cs -*.odx.cs -*.xsd.cs - -# OpenCover UI analysis results -OpenCover/ - -# Azure Stream Analytics local run output -ASALocalRun/ - -# MSBuild Binary and Structured Log -*.binlog - -# NVidia Nsight GPU debugger configuration file -*.nvuser - -# MFractors (Xamarin productivity tool) working folder -.mfractor/ - -# Local History for Visual Studio -.localhistory/ - -# BeatPulse healthcheck temp database -healthchecksdb - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 -MigrationBackup/ - -# Ionide (cross platform F# VS Code tools) working folder -.ionide/ - -### DotnetCore ### -# .NET Core build folders -bin/ -obj/ - -# Common node modules locations -/node_modules -/wwwroot/node_modules - -### OSX ### -# General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk - -### Xcode ### -# Xcode -# -# gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore - -## User settings -xcuserdata/ - -## compatibility with Xcode 8 and earlier (ignoring not required starting Xcode 9) -*.xcscmblueprint -*.xccheckout - -## compatibility with Xcode 3 and earlier (ignoring not required starting Xcode 4) -build/ -DerivedData/ -*.moved-aside -*.pbxuser -!default.pbxuser -*.mode1v3 -!default.mode1v3 -*.mode2v3 -!default.mode2v3 -*.perspectivev3 -!default.perspectivev3 - -## Gcc Patch -/*.gcno - -### Xcode Patch ### -*.xcodeproj/* -!*.xcodeproj/project.pbxproj -!*.xcodeproj/xcshareddata/ -!*.xcworkspace/contents.xcworkspacedata -**/xcshareddata/WorkspaceSettings.xcsettings - -### VisualStudio ### - -# User-specific files - -# User-specific files (MonoDevelop/Xamarin Studio) - -# Mono auto generated files - -# Build results - -# Visual Studio 2015/2017 cache/options directory -# Uncomment if you have tasks that create the project's static files in wwwroot - -# Visual Studio 2017 auto generated files - -# MSTest test Results - -# NUnit - -# Build Results of an ATL Project - -# Benchmark Results - -# .NET Core - -# StyleCop - -# Files built by Visual Studio - -# Chutzpah Test files - -# Visual C++ cache files - -# Visual Studio profiler - -# Visual Studio Trace Files - -# TFS 2012 Local Workspace - -# Guidance Automation Toolkit - -# ReSharper is a .NET coding add-in - -# TeamCity is a build add-in - -# DotCover is a Code Coverage Tool - -# AxoCover is a Code Coverage Tool - -# Coverlet is a free, cross platform Code Coverage Tool - -# Visual Studio code coverage results - -# NCrunch - -# MightyMoose - -# Web workbench (sass) - -# Installshield output folder - -# DocProject is a documentation generator add-in - -# Click-Once directory - -# Publish Web Output -# Note: Comment the next line if you want to checkin your web deploy settings, -# but database connection strings (with potential passwords) will be unencrypted - -# Microsoft Azure Web App publish settings. Comment the next line if you want to -# checkin your Azure Web App publish settings, but sensitive information contained -# in these scripts will be unencrypted - -# NuGet Packages -# NuGet Symbol Packages -# The packages folder can be ignored because of Package Restore -# except build/, which is used as an MSBuild target. -# Uncomment if necessary however generally it will be regenerated when needed -# NuGet v3's project.json files produces more ignorable files - -# Microsoft Azure Build Output - -# Microsoft Azure Emulator - -# Windows Store app package directories and files - -# Visual Studio cache files -# files ending in .cache can be ignored -# but keep track of directories ending in .cache - -# Others - -# Including strong name files can present a security risk -# (https://github.com/github/gitignore/pull/2483#issue-259490424) - -# Since there are multiple workflows, uncomment next line to ignore bower_components -# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622) - -# RIA/Silverlight projects - -# Backup & report files from converting an old project file -# to a newer Visual Studio version. Backup files are not needed, -# because we have git ;-) - -# SQL Server files - -# Business Intelligence projects - -# Microsoft Fakes - -# GhostDoc plugin setting file - -# Node.js Tools for Visual Studio - -# Visual Studio 6 build log - -# Visual Studio 6 workspace options file - -# Visual Studio 6 auto-generated workspace file (contains which files were open etc.) - -# Visual Studio LightSwitch build output - -# Paket dependency manager - -# FAKE - F# Make - -# CodeRush personal settings - -# Python Tools for Visual Studio (PTVS) - -# Cake - Uncomment if you are using it -# tools/** -# !tools/packages.config - -# Tabs Studio - -# Telerik's JustMock configuration file - -# BizTalk build output - -# OpenCover UI analysis results - -# Azure Stream Analytics local run output - -# MSBuild Binary and Structured Log - -# NVidia Nsight GPU debugger configuration file - -# MFractors (Xamarin productivity tool) working folder - -# Local History for Visual Studio - -# BeatPulse healthcheck temp database - -# Backup folder for Package Reference Convert tool in Visual Studio 2017 - -# Ionide (cross platform F# VS Code tools) working folder - -# End of https://www.toptal.com/developers/gitignore/api/csharp,dotnetcore,visualstudio,osx,xcode,windows diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Avalonia/AppBuilderExtensions.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Avalonia/AppBuilderExtensions.cs deleted file mode 100644 index be5dc84e..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Avalonia/AppBuilderExtensions.cs +++ /dev/null @@ -1,67 +0,0 @@ -using Avalonia; -using Avalonia.Controls; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Platform; -using DesktopNotifications.FreeDesktop; -using DesktopNotifications.Windows; - -namespace DesktopNotifications.Avalonia -{ - /// - /// Extensions for - /// - public static class AppBuilderExtensions - { - /// - /// Setups the for the current platform and - /// binds it to the service locator (). - /// - /// - /// - /// - public static TAppBuilder SetupDesktopNotifications(this TAppBuilder builder) - where TAppBuilder : AppBuilderBase, new() - { - INotificationManager manager; - var runtimeInfo = builder.RuntimePlatform.GetRuntimeInfo(); - - switch (runtimeInfo.OperatingSystem) - { - case OperatingSystemType.WinNT: - { - var context = WindowsApplicationContext.FromCurrentProcess(); - manager = new WindowsNotificationManager(context); - break; - } - - case OperatingSystemType.Linux: - { - var context = FreeDesktopApplicationContext.FromCurrentProcess(); - manager = new FreeDesktopNotificationManager(context); - break; - } - - //TODO: OSX once implemented/stable - default: return builder; - } - - //TODO Any better way of doing this? - manager.Initialize().GetAwaiter().GetResult(); - - builder.AfterSetup(b => - { - if (b.Instance.ApplicationLifetime is IControlledApplicationLifetime lifetime) - { - lifetime.Exit += (s, e) => - { - manager.Dispose(); - }; - } - }); - - AvaloniaLocator.CurrentMutable.Bind().ToConstant(manager); - - return builder; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Avalonia/DesktopNotifications.Avalonia.csproj b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Avalonia/DesktopNotifications.Avalonia.csproj deleted file mode 100644 index b872afa1..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Avalonia/DesktopNotifications.Avalonia.csproj +++ /dev/null @@ -1,30 +0,0 @@ - - - - - netstandard2.0;net5.0 - - - netstandard2.0;netcoreapp3.1;net5.0-windows10.0.17763.0 - - - - enable - 8.0 - A cross-platform C# library for native desktop "toast" notifications. - true - MIT - https://github.com/pr8x/DesktopNotifications - - - - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/DesktopNotifications.FreeDesktop.csproj b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/DesktopNotifications.FreeDesktop.csproj deleted file mode 100644 index 7030e702..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/DesktopNotifications.FreeDesktop.csproj +++ /dev/null @@ -1,28 +0,0 @@ - - - - - netstandard2.0;net5.0 - - - netstandard2.0;net5.0-windows10.0.17763.0 - - - - enable - 8.0 - A cross-platform C# library for native desktop "toast" notifications. - true - MIT - https://github.com/pr8x/DesktopNotifications - - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopApplicationContext.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopApplicationContext.cs deleted file mode 100644 index 4e651fe5..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopApplicationContext.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; - -namespace DesktopNotifications.FreeDesktop -{ - /// - /// - public class FreeDesktopApplicationContext : ApplicationContext - { - private FreeDesktopApplicationContext(string name, string? appIcon) : base(name) - { - AppIcon = appIcon; - } - - /// - /// - public string? AppIcon { get; } - - public static FreeDesktopApplicationContext FromCurrentProcess(string? appIcon = null) - { - var mainModule = Process.GetCurrentProcess().MainModule; - - if (mainModule?.FileName == null) - { - throw new InvalidOperationException("No valid process module found."); - } - - return new FreeDesktopApplicationContext( - Path.GetFileNameWithoutExtension(mainModule.FileName), - appIcon - ); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopNotificationManager.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopNotificationManager.cs deleted file mode 100644 index 74268b20..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopNotificationManager.cs +++ /dev/null @@ -1,167 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using Tmds.DBus; - -namespace DesktopNotifications.FreeDesktop -{ - public class FreeDesktopNotificationManager : INotificationManager, IDisposable - { - private readonly FreeDesktopApplicationContext _appContext; - private const string NotificationsService = "org.freedesktop.Notifications"; - - private static readonly ObjectPath NotificationsPath = new ObjectPath("/org/freedesktop/Notifications"); - private readonly Dictionary _activeNotifications; - private Connection? _connection; - private IDisposable? _notificationActionSubscription; - private IDisposable? _notificationCloseSubscription; - - private IFreeDesktopNotificationsProxy? _proxy; - - /// - /// - /// - /// - public FreeDesktopNotificationManager(FreeDesktopApplicationContext? appContext = null) - { - _appContext = appContext ?? FreeDesktopApplicationContext.FromCurrentProcess(); - _activeNotifications = new Dictionary(); - } - - public void Dispose() - { - _notificationActionSubscription?.Dispose(); - _notificationCloseSubscription?.Dispose(); - } - - public event EventHandler? NotificationActivated; - public event EventHandler? NotificationDismissed; - - public string? LaunchActionId { get; } - - public async Task Initialize() - { - _connection = Connection.Session; - - await _connection.ConnectAsync(); - - _proxy = _connection.CreateProxy( - NotificationsService, - NotificationsPath - ); - - _notificationActionSubscription = await _proxy.WatchActionInvokedAsync( - OnNotificationActionInvoked, - OnNotificationActionInvokedError - ); - _notificationCloseSubscription = await _proxy.WatchNotificationClosedAsync( - OnNotificationClosed, - OnNotificationClosedError - ); - } - - public async Task ShowNotification(Notification notification, DateTimeOffset? expirationTime = null) - { - if (_connection == null || _proxy == null) - { - throw new InvalidOperationException("Not connected. Call Initialize() first."); - } - - if (expirationTime < DateTimeOffset.Now) - { - throw new ArgumentException(nameof(expirationTime)); - } - - var duration = expirationTime - DateTimeOffset.Now; - var actions = GenerateActions(notification); - - var id = await _proxy.NotifyAsync( - _appContext.Name, - 0, - _appContext.AppIcon ?? string.Empty, - notification.Title ?? throw new ArgumentException(), - notification.Body ?? throw new ArgumentException(), - actions.ToArray(), - new Dictionary {{"urgency", 1}}, - duration?.Milliseconds ?? 0 - ).ConfigureAwait(false); - - _activeNotifications[id] = notification; - } - - public async Task ScheduleNotification( - Notification notification, - DateTimeOffset deliveryTime, - DateTimeOffset? expirationTime = null) - { - if (deliveryTime < DateTimeOffset.Now || deliveryTime > expirationTime) - { - throw new ArgumentException(nameof(deliveryTime)); - } - - //Note: We could consider spawning some daemon that sends the notification at the specified time. - //For now we only allow to schedule notifications while the application is running. - await Task.Delay(deliveryTime - DateTimeOffset.Now); - - await ShowNotification(notification, expirationTime); - } - - private static IEnumerable GenerateActions(Notification notification) - { - foreach (var (title, actionId) in notification.Buttons) - { - yield return actionId; - yield return title; - } - } - - private void OnNotificationClosedError(Exception obj) - { - throw obj; - } - - private static NotificationDismissReason GetReason(uint reason) - { - return reason switch - { - 1 => NotificationDismissReason.Expired, - 2 => NotificationDismissReason.User, - 3 => NotificationDismissReason.Application, - _ => throw new ArgumentOutOfRangeException() - }; - } - - private void OnNotificationClosed((uint id, uint reason) @event) - { - var notification = _activeNotifications[@event.id]; - - _activeNotifications.Remove(@event.id); - - //TODO: Not sure why but it calls this event twice sometimes - //In this case the notification has already been removed from the dict. - if (notification == null) - { - return; - } - - var dismissReason = GetReason(@event.reason); - - NotificationDismissed?.Invoke(this, - new NotificationDismissedEventArgs(notification, dismissReason)); - } - - private void OnNotificationActionInvokedError(Exception obj) - { - throw obj; - } - - private void OnNotificationActionInvoked((uint id, string actionKey) @event) - { - var notification = _activeNotifications[@event.id]; - - NotificationActivated?.Invoke(this, - new NotificationActivatedEventArgs(notification, @event.actionKey)); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopNotificationProxy.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopNotificationProxy.cs deleted file mode 100644 index 7f3864c0..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.FreeDesktop/FreeDesktopNotificationProxy.cs +++ /dev/null @@ -1,33 +0,0 @@ -#nullable disable - -using System; -using System.Collections.Generic; -using System.Runtime.CompilerServices; -using System.Threading.Tasks; -using Tmds.DBus; - -[assembly: InternalsVisibleTo(Connection.DynamicAssemblyName)] - -namespace DesktopNotifications.FreeDesktop -{ - /// http://www.galago-project.org/specs/notification/0.9/x408.html - /// - /// Interface for notifications - /// - [DBusInterface("org.freedesktop.Notifications")] - internal interface IFreeDesktopNotificationsProxy : IDBusObject - { - Task NotifyAsync(string appName, uint replacesId, string appIcon, string summary, string body, string[] actions, IDictionary hints, int expireTimeout); - - Task CloseNotificationAsync(uint id); - - Task GetCapabilitiesAsync(); - - Task<(string name, string vendor, string version, string spec_version)> GetServerInformationAsync(); - - Task WatchNotificationClosedAsync(Action<(uint id, uint reason)> handler, Action onError = null); - - Task WatchActionInvokedAsync(Action<(uint id, string action_key)> handler, Action onError = null); - } - -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/DesktopNotifications.Windows.csproj b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/DesktopNotifications.Windows.csproj deleted file mode 100644 index cb2f0496..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/DesktopNotifications.Windows.csproj +++ /dev/null @@ -1,38 +0,0 @@ - - - - - netstandard2.0 - - - netstandard2.0;netcoreapp3.1;net5.0-windows10.0.17763.0 - - - - 8.0 - enable - true - A cross-platform C# library for native desktop "toast" notifications. - MIT - https://github.com/pr8x/DesktopNotifications - netstandard2.0;netcoreapp3.1;net5.0-windows10.0.17763.0 - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/NullImpl_WindowsNotificationManager.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/NullImpl_WindowsNotificationManager.cs deleted file mode 100644 index 6f7f4d14..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/NullImpl_WindowsNotificationManager.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Threading.Tasks; - -#pragma warning disable CS0067 - -namespace DesktopNotifications.Windows -{ - public class WindowsApplicationContext : ApplicationContext - { - public static WindowsApplicationContext FromCurrentProcess( - string? customName = null, - string? appUserModelId = null) - { - throw new PlatformNotSupportedException(); - } - - public WindowsApplicationContext(string name) : base(name) - { - throw new PlatformNotSupportedException(); - } - } - - public class WindowsNotificationManager : INotificationManager - { - public WindowsNotificationManager(WindowsApplicationContext? context = null) - { - throw new PlatformNotSupportedException(); - } - - public void Dispose() - { - throw new PlatformNotSupportedException(); - } - - public string? LaunchActionId { get; } - - public event EventHandler? NotificationActivated; - - public event EventHandler? NotificationDismissed; - - public Task Initialize() - { - throw new PlatformNotSupportedException(); - } - - public Task ShowNotification(Notification notification, DateTimeOffset? expirationTime = null) - { - throw new PlatformNotSupportedException(); - } - - public Task ScheduleNotification(Notification notification, DateTimeOffset deliveryTime, - DateTimeOffset? expirationTime = null) - { - throw new PlatformNotSupportedException(); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/ShellLink.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/ShellLink.cs deleted file mode 100644 index 4cf6b7af..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/ShellLink.cs +++ /dev/null @@ -1,448 +0,0 @@ -using System; -using System.IO; -using System.Runtime.InteropServices; -using System.Runtime.InteropServices.ComTypes; -using System.Text; - -namespace DesktopNotifications.Windows -{ - // Modified from http://smdn.jp/programming/tips/createlnk/ - // Originally from http://www.vbaccelerator.com/home/NET/Code/Libraries/Shell_Projects - // /Creating_and_Modifying_Shortcuts/article.asp - // Partly based on Sending toast notifications from desktop apps sample - public class ShellLink : IDisposable - { - #region Win32 and COM - - // IShellLink Interface - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("000214F9-0000-0000-C000-000000000046")] - private interface IShellLinkW - { - uint GetPath([Out] [MarshalAs(UnmanagedType.LPWStr)] - StringBuilder pszFile, - int cchMaxPath, ref WIN32_FIND_DATAW pfd, uint fFlags); - - uint GetIDList(out IntPtr ppidl); - uint SetIDList(IntPtr pidl); - - uint GetDescription([Out] [MarshalAs(UnmanagedType.LPWStr)] - StringBuilder pszName, - int cchMaxName); - - uint SetDescription([MarshalAs(UnmanagedType.LPWStr)] string pszName); - - uint GetWorkingDirectory([Out] [MarshalAs(UnmanagedType.LPWStr)] - StringBuilder pszDir, - int cchMaxPath); - - uint SetWorkingDirectory([MarshalAs(UnmanagedType.LPWStr)] string pszDir); - - uint GetArguments([Out] [MarshalAs(UnmanagedType.LPWStr)] - StringBuilder pszArgs, - int cchMaxPath); - - uint SetArguments([MarshalAs(UnmanagedType.LPWStr)] string pszArgs); - uint GetHotKey(out ushort pwHotkey); - uint SetHotKey(ushort wHotKey); - uint GetShowCmd(out int piShowCmd); - uint SetShowCmd(int iShowCmd); - - uint GetIconLocation([Out] [MarshalAs(UnmanagedType.LPWStr)] - StringBuilder pszIconPath, - int cchIconPath, out int piIcon); - - uint SetIconLocation([MarshalAs(UnmanagedType.LPWStr)] string pszIconPath, int iIcon); - - uint SetRelativePath([MarshalAs(UnmanagedType.LPWStr)] string pszPathRel, - uint dwReserved); - - uint Resolve(IntPtr hwnd, uint fFlags); - uint SetPath([MarshalAs(UnmanagedType.LPWStr)] string pszFile); - } - - // ShellLink CoClass (ShellLink object) - [ComImport] - [ClassInterface(ClassInterfaceType.None)] - [Guid("00021401-0000-0000-C000-000000000046")] - private class CShellLink - { - } - - // WIN32_FIND_DATAW Structure - [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Unicode)] - private struct WIN32_FIND_DATAW - { - public readonly uint dwFileAttributes; - public readonly FILETIME ftCreationTime; - public readonly FILETIME ftLastAccessTime; - public readonly FILETIME ftLastWriteTime; - public readonly uint nFileSizeHigh; - public readonly uint nFileSizeLow; - public readonly uint dwReserved0; - public readonly uint dwReserved1; - - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = MAX_PATH)] - public readonly string cFileName; - - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 14)] - public readonly string cAlternateFileName; - } - - // IPropertyStore Interface - [ComImport] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - [Guid("886D8EEB-8CF2-4446-8D02-CDBA1DBDCF99")] - private interface IPropertyStore - { - uint GetCount([Out] out uint cProps); - uint GetAt([In] uint iProp, out PropertyKey pkey); - uint GetValue([In] ref PropertyKey key, [Out] PropVariant pv); - uint SetValue([In] ref PropertyKey key, [In] PropVariant pv); - uint Commit(); - } - - // PropertyKey Structure - // Narrowed down from PropertyKey.cs of Windows API Code Pack 1.1 - [StructLayout(LayoutKind.Sequential, Pack = 4)] - private struct PropertyKey - { - #region Fields - - #endregion - - #region Public Properties - - public Guid FormatId { get; } - - public int PropertyId { get; } - - #endregion - - #region Constructor - - public PropertyKey(Guid formatId, int propertyId) - { - FormatId = formatId; - PropertyId = propertyId; - } - - public PropertyKey(string formatId, int propertyId) - { - FormatId = new Guid(formatId); - PropertyId = propertyId; - } - - #endregion - } - - // PropVariant Class (only for string value) - // Narrowed down from PropVariant.cs of Windows API Code Pack 1.1 - // Originally from http://blogs.msdn.com/b/adamroot/archive/2008/04/11 - // /interop-with-propvariants-in-net.aspx - [StructLayout(LayoutKind.Explicit)] - private sealed class PropVariant : IDisposable - { - #region Fields - - [FieldOffset(0)] private ushort valueType; // Value type - - // [FieldOffset(2)] - // ushort wReserved1; // Reserved field - // [FieldOffset(4)] - // ushort wReserved2; // Reserved field - // [FieldOffset(6)] - // ushort wReserved3; // Reserved field - - [FieldOffset(8)] private readonly IntPtr ptr; // Value - - #endregion - - #region Public Properties - - // Value type (System.Runtime.InteropServices.VarEnum) - public VarEnum VarType - { - get => (VarEnum) valueType; - set => valueType = (ushort) value; - } - - // Whether value is empty or null - public bool IsNullOrEmpty => - valueType == (ushort) VarEnum.VT_EMPTY || - valueType == (ushort) VarEnum.VT_NULL; - - // Value (only for string value) - public string? Value => Marshal.PtrToStringUni(ptr); - - #endregion - - #region Constructor - - public PropVariant() - { - } - - // Construct with string value - public PropVariant(string value) - { - if (value == null) - { - throw new ArgumentException("Failed to set value."); - } - - valueType = (ushort) VarEnum.VT_LPWSTR; - ptr = Marshal.StringToCoTaskMemUni(value); - } - - #endregion - - #region Destructor - - ~PropVariant() - { - Dispose(); - } - - public void Dispose() - { - PropVariantClear(this); - GC.SuppressFinalize(this); - } - - #endregion - } - - [DllImport("Ole32.dll", PreserveSig = false)] - private static extern void PropVariantClear([In] [Out] PropVariant pvar); - - #endregion - - #region Fields - - private IShellLinkW? shellLinkW; - - // Name = System.AppUserModel.ID - // ShellPKey = PKEY_AppUserModel_ID - // FormatID = 9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3 - // PropID = 5 - // Type = String (VT_LPWSTR) - private readonly PropertyKey AppUserModelIDKey = - new PropertyKey("{9F4C2855-9F79-4B39-A8D0-E1D42DE1D5F3}", 5); - - private const int MAX_PATH = 260; - private const int INFOTIPSIZE = 1024; - - private const int STGM_READ = 0x00000000; // STGM constants - private const uint SLGP_UNCPRIORITY = 0x0002; // SLGP flags - - #endregion - - #region Private Properties (Interfaces) - - private IPersistFile PersistFile - { - get - { - if (!(shellLinkW is IPersistFile persistFile)) - { - throw new COMException("Failed to create IPersistFile."); - } - - return persistFile; - } - } - - private IPropertyStore PropertyStore - { - get - { - if (!(shellLinkW is IPropertyStore PropertyStore)) - { - throw new COMException("Failed to create IPropertyStore."); - } - - return PropertyStore; - } - } - - #endregion - - #region Public Properties (Minimal) - - // Path of loaded shortcut file - public string ShortcutFile - { - get - { - string shortcutFile; - - PersistFile.GetCurFile(out shortcutFile); - - return shortcutFile; - } - } - - // Path of target file - public string TargetPath - { - get - { - // No limitation to length of buffer string in the case of Unicode though. - StringBuilder targetPath = new StringBuilder(MAX_PATH); - - var data = new WIN32_FIND_DATAW(); - - VerifySucceeded(shellLinkW!.GetPath(targetPath, targetPath.Capacity, ref data, - SLGP_UNCPRIORITY)); - - return targetPath.ToString(); - } - set => VerifySucceeded(shellLinkW!.SetPath(value)); - } - - public string Arguments - { - get - { - // No limitation to length of buffer string in the case of Unicode though. - StringBuilder arguments = new StringBuilder(INFOTIPSIZE); - - VerifySucceeded(shellLinkW!.GetArguments(arguments, arguments.Capacity)); - - return arguments.ToString(); - } - set => VerifySucceeded(shellLinkW!.SetArguments(value)); - } - - // AppUserModelID to be used for Windows 7 or later. - public string AppUserModelID - { - get - { - using (PropVariant pv = new PropVariant()) - { - VerifySucceeded(PropertyStore.GetValue(AppUserModelIDKey, pv)); - - if (pv.Value == null) - { - return "Null"; - } - - return pv.Value; - } - } - set - { - using (PropVariant pv = new PropVariant(value)) - { - VerifySucceeded(PropertyStore.SetValue(AppUserModelIDKey, pv)); - VerifySucceeded(PropertyStore.Commit()); - } - } - } - - #endregion - - #region Constructor - - public ShellLink() - : this(null) - { - } - - // Construct with loading shortcut file. - public ShellLink(string? file) - { - try - { - shellLinkW = (IShellLinkW) new CShellLink(); - } - catch - { - throw new COMException("Failed to create ShellLink object."); - } - - if (file != null) - { - Load(file); - } - } - - #endregion - - #region Destructor - - ~ShellLink() - { - Dispose(false); - } - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - protected virtual void Dispose(bool disposing) - { - if (shellLinkW != null) - { - // Release all references. - Marshal.FinalReleaseComObject(shellLinkW); - shellLinkW = null; - } - } - - #endregion - - #region Methods - - // Save shortcut file. - public void Save() - { - string file = ShortcutFile; - - if (file == null) - { - throw new InvalidOperationException("File name is not given."); - } - - Save(file); - } - - public void Save(string file) - { - if (file == null) - { - throw new ArgumentNullException(nameof(file)); - } - - PersistFile.Save(file, true); - } - - // Load shortcut file. - public void Load(string file) - { - if (!File.Exists(file)) - { - throw new FileNotFoundException("File is not found.", file); - } - - PersistFile.Load(file, STGM_READ); - } - - // Verify if operation succeeded. - public static void VerifySucceeded(uint hresult) - { - if (hresult > 1) - { - throw new InvalidOperationException("Failed with HRESULT: " + - hresult.ToString("X")); - } - } - - #endregion - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/WindowsApplicationContext.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/WindowsApplicationContext.cs deleted file mode 100644 index bd11e5eb..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/WindowsApplicationContext.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; -using System.Runtime.InteropServices; - -namespace DesktopNotifications.Windows -{ - public class WindowsApplicationContext : ApplicationContext - { - private WindowsApplicationContext(string name, string appUserModelId) : base(name) - { - AppUserModelId = appUserModelId; - } - - public string AppUserModelId { get; } - - [DllImport("shell32.dll", SetLastError = true)] - private static extern void SetCurrentProcessExplicitAppUserModelID( - [MarshalAs(UnmanagedType.LPWStr)] string appId); - - public static WindowsApplicationContext FromCurrentProcess( - string? customName = null, - string? appUserModelId = null) - { - var mainModule = Process.GetCurrentProcess().MainModule; - - if (mainModule?.FileName == null) - { - throw new InvalidOperationException("No valid process module found."); - } - - var appName = customName ?? Path.GetFileNameWithoutExtension(mainModule.FileName); - var aumid = appUserModelId ?? appName; //TODO: Add seeded bits to avoid collisions? - - SetCurrentProcessExplicitAppUserModelID(aumid); - - using var shortcut = new ShellLink - { - TargetPath = mainModule.FileName, - Arguments = string.Empty, - AppUserModelID = aumid - }; - - var appData = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); - var startMenuPath = Path.Combine(appData, @"Microsoft\Windows\Start Menu\Programs"); - var shortcutFile = Path.Combine(startMenuPath, $"{appName}.lnk"); - - shortcut.Save(shortcutFile); - - return new WindowsApplicationContext(appName, aumid); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/WindowsNotificationManager.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/WindowsNotificationManager.cs deleted file mode 100644 index 912925c0..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.Windows/WindowsNotificationManager.cs +++ /dev/null @@ -1,253 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Windows.UI.Notifications; -using XmlDocument = Windows.Data.Xml.Dom.XmlDocument; - -#if NETSTANDARD -using System.IO; -using System.Xml; -#else -using System.Diagnostics; -using Microsoft.Toolkit.Uwp.Notifications; -#endif - -namespace DesktopNotifications.Windows -{ - public class WindowsNotificationManager : INotificationManager - { - private const int LaunchNotificationWaitMs = 5_000; - private readonly WindowsApplicationContext _applicationContext; - private readonly TaskCompletionSource? _launchActionPromise; - private readonly Dictionary _notifications; - -#if NETSTANDARD - private readonly ToastNotifier _toastNotifier; -#else - private readonly ToastNotifierCompat _toastNotifier; -#endif - - /// - /// - /// - public WindowsNotificationManager(WindowsApplicationContext? applicationContext = null) - { - _applicationContext = applicationContext ?? WindowsApplicationContext.FromCurrentProcess(); - _launchActionPromise = new TaskCompletionSource(); - -#if !NETSTANDARD - if (ToastNotificationManagerCompat.WasCurrentProcessToastActivated()) - { - ToastNotificationManagerCompat.OnActivated += OnAppActivated; - - if (_launchActionPromise.Task.Wait(LaunchNotificationWaitMs)) - { - LaunchActionId = _launchActionPromise.Task.Result; - } - } -#endif - -#if NETSTANDARD - _toastNotifier = ToastNotificationManager.CreateToastNotifier(_applicationContext.AppUserModelId); -#else - _toastNotifier = ToastNotificationManagerCompat.CreateToastNotifier(); -#endif - - _notifications = new Dictionary(); - } - - public event EventHandler? NotificationActivated; - - public event EventHandler? NotificationDismissed; - - public string? LaunchActionId { get; } - - public Task Initialize() - { - return Task.CompletedTask; - } - - public Task ShowNotification(Notification notification, DateTimeOffset? expirationTime) - { - if (expirationTime < DateTimeOffset.Now) - { - throw new ArgumentException(nameof(expirationTime)); - } - - var xmlContent = GenerateXml(notification); - var toastNotification = new ToastNotification(xmlContent) - { - ExpirationTime = expirationTime - }; - - toastNotification.Activated += ToastNotificationOnActivated; - toastNotification.Dismissed += ToastNotificationOnDismissed; - toastNotification.Failed += ToastNotificationOnFailed; - - _toastNotifier.Show(toastNotification); - _notifications[toastNotification] = notification; - - return Task.CompletedTask; - } - - public Task ScheduleNotification( - Notification notification, - DateTimeOffset deliveryTime, - DateTimeOffset? expirationTime = null) - { - if (deliveryTime < DateTimeOffset.Now || deliveryTime > expirationTime) - { - throw new ArgumentException(nameof(deliveryTime)); - } - - var xmlContent = GenerateXml(notification); - var toastNotification = new ScheduledToastNotification(xmlContent, deliveryTime) - { - ExpirationTime = expirationTime - }; - - _toastNotifier.AddToSchedule(toastNotification); - - return Task.CompletedTask; - } - - public void Dispose() - { - } - - private static XmlDocument GenerateXml(Notification notification) - { -#if NETSTANDARD - var sw = new StringWriter(); - var xw = XmlWriter.Create(sw, new XmlWriterSettings - { - OmitXmlDeclaration = true, - Indent = true - }); - - xw.WriteStartElement("toast"); - - xw.WriteStartElement("audio"); - xw.WriteAttributeString("src", "ms-winsoundevent:Notification.Reminder"); - xw.WriteEndElement(); - - xw.WriteStartElement("visual"); - - xw.WriteStartElement("binding"); - - if ((notification.ImagePath != null) && (notification.ImagePath.Length != 0)) - { - xw.WriteStartElement("image"); - xw.WriteAttributeString("src", notification.ImagePath); - xw.WriteAttributeString("placement", "appLogoOverride"); - xw.WriteEndElement(); - } - - xw.WriteAttributeString("template", "ToastGeneric"); - - xw.WriteStartElement("text"); - xw.WriteString(notification.Title ?? string.Empty); - xw.WriteEndElement(); - - xw.WriteStartElement("text"); - xw.WriteString(notification.Body ?? string.Empty); - xw.WriteEndElement(); - - xw.WriteEndElement(); - - xw.WriteEndElement(); - - xw.WriteStartElement("actions"); - - foreach (var (title, actionId) in notification.Buttons) - { - xw.WriteStartElement("action"); - xw.WriteAttributeString("content", title); - xw.WriteAttributeString("activationType", "foreground"); - xw.WriteAttributeString("arguments", actionId); - xw.WriteEndElement(); - } - - xw.WriteEndElement(); - - xw.WriteEndElement(); - xw.Flush(); - - var xmlStr = sw.ToString(); - var xmlDoc = new XmlDocument(); - xmlDoc.LoadXml(xmlStr); - - return xmlDoc; - -#else - var builder = new ToastContentBuilder(); - - builder.AddText(notification.Title); - builder.AddText(notification.Body); - - if ((notification.ImagePath != null) && (notification.ImagePath.Length != 0)) { - builder.AddAppLogoOverride(new Uri(notification.ImagePath)); - } - - builder.AddAudio(new Uri("ms-winsoundevent:Notification.Reminder")); - - foreach (var (title, actionId) in notification.Buttons) - { - builder.AddButton(title, ToastActivationType.Foreground, actionId); - } - - return builder.GetXml(); - -#endif - } - -#if !NETSTANDARD - private void OnAppActivated(ToastNotificationActivatedEventArgsCompat e) - { - Debug.Assert(_launchActionPromise != null); - - var actionId = GetActionId(e.Argument); - _launchActionPromise.SetResult(actionId); - } -#endif - - private static void ToastNotificationOnFailed(ToastNotification sender, ToastFailedEventArgs args) - { - throw args.ErrorCode; - } - - private void ToastNotificationOnDismissed(ToastNotification sender, ToastDismissedEventArgs args) - { - if (!_notifications.TryGetValue(sender, out var notification)) - { - return; - } - - _notifications.Remove(sender); - - var reason = args.Reason switch - { - ToastDismissalReason.UserCanceled => NotificationDismissReason.User, - ToastDismissalReason.TimedOut => NotificationDismissReason.Expired, - ToastDismissalReason.ApplicationHidden => NotificationDismissReason.Application, - _ => throw new ArgumentOutOfRangeException() - }; - - NotificationDismissed?.Invoke(this, new NotificationDismissedEventArgs(notification, reason)); - } - - private static string GetActionId(string argument) - { - return string.IsNullOrEmpty(argument) ? "default" : argument; - } - - private void ToastNotificationOnActivated(ToastNotification sender, object args) - { - var activationArgs = (ToastActivatedEventArgs)args; - var notification = _notifications[sender]; - var actionId = GetActionId(activationArgs.Arguments); - - NotificationActivated?.Invoke(this, new NotificationActivatedEventArgs(notification, actionId)); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.sln b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.sln deleted file mode 100644 index 733a4feb..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications.sln +++ /dev/null @@ -1,61 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.30804.86 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopNotifications", "DesktopNotifications\DesktopNotifications.csproj", "{64E5A8ED-29CB-4114-B1B8-EC14512EB15E}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopNotifications.Windows", "DesktopNotifications.Windows\DesktopNotifications.Windows.csproj", "{8BD34395-0FB7-43D1-8127-94B525AF2392}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Example", "Example\Example.csproj", "{CEB162D5-CC75-4FC9-9A8B-E3C58E7155F0}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopNotifications.FreeDesktop", "DesktopNotifications.FreeDesktop\DesktopNotifications.FreeDesktop.csproj", "{96F637EF-FD11-41F5-8F40-4E37313697E3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopNotifications.Apple", "DesktopNotifications.Apple\DesktopNotifications.Apple.csproj", "{B4A6C639-79C4-48EF-955F-273CF01D7770}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DesktopNotifications.Avalonia", "DesktopNotifications.Avalonia\DesktopNotifications.Avalonia.csproj", "{5D9904D2-E102-409D-AAFE-394A3DED40D9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Example.Avalonia", "Example.Avalonia\Example.Avalonia.csproj", "{4408FE39-C5AF-453D-B6EE-E1A42504264A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {64E5A8ED-29CB-4114-B1B8-EC14512EB15E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {64E5A8ED-29CB-4114-B1B8-EC14512EB15E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {64E5A8ED-29CB-4114-B1B8-EC14512EB15E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {64E5A8ED-29CB-4114-B1B8-EC14512EB15E}.Release|Any CPU.Build.0 = Release|Any CPU - {8BD34395-0FB7-43D1-8127-94B525AF2392}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8BD34395-0FB7-43D1-8127-94B525AF2392}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8BD34395-0FB7-43D1-8127-94B525AF2392}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8BD34395-0FB7-43D1-8127-94B525AF2392}.Release|Any CPU.Build.0 = Release|Any CPU - {CEB162D5-CC75-4FC9-9A8B-E3C58E7155F0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CEB162D5-CC75-4FC9-9A8B-E3C58E7155F0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CEB162D5-CC75-4FC9-9A8B-E3C58E7155F0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CEB162D5-CC75-4FC9-9A8B-E3C58E7155F0}.Release|Any CPU.Build.0 = Release|Any CPU - {96F637EF-FD11-41F5-8F40-4E37313697E3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96F637EF-FD11-41F5-8F40-4E37313697E3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96F637EF-FD11-41F5-8F40-4E37313697E3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96F637EF-FD11-41F5-8F40-4E37313697E3}.Release|Any CPU.Build.0 = Release|Any CPU - {B4A6C639-79C4-48EF-955F-273CF01D7770}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4A6C639-79C4-48EF-955F-273CF01D7770}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4A6C639-79C4-48EF-955F-273CF01D7770}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4A6C639-79C4-48EF-955F-273CF01D7770}.Release|Any CPU.Build.0 = Release|Any CPU - {5D9904D2-E102-409D-AAFE-394A3DED40D9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {5D9904D2-E102-409D-AAFE-394A3DED40D9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {5D9904D2-E102-409D-AAFE-394A3DED40D9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {5D9904D2-E102-409D-AAFE-394A3DED40D9}.Release|Any CPU.Build.0 = Release|Any CPU - {4408FE39-C5AF-453D-B6EE-E1A42504264A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4408FE39-C5AF-453D-B6EE-E1A42504264A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4408FE39-C5AF-453D-B6EE-E1A42504264A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4408FE39-C5AF-453D-B6EE-E1A42504264A}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {95891D52-BFE3-4A10-9823-99F37EAA6058} - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/ApplicationContext.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/ApplicationContext.cs deleted file mode 100644 index 1a020812..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/ApplicationContext.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace DesktopNotifications -{ - /// - /// - public class ApplicationContext - { - public ApplicationContext(string name) - { - Name = name; - } - - /// - /// - public string Name { get; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/DesktopNotifications.csproj b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/DesktopNotifications.csproj deleted file mode 100644 index 42d2d89d..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/DesktopNotifications.csproj +++ /dev/null @@ -1,21 +0,0 @@ - - - - - netstandard2.0;net5.0 - - - netstandard2.0;netcoreapp3.1;net5.0-windows10.0.17763.0 - - - - enable - 8.0 - true - A cross-platform C# library for native desktop "toast" notifications. - MIT - https://github.com/pr8x/DesktopNotifications - netstandard2.0;netcoreapp3.1;net5.0-windows10.0.17763.0 - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/INotificationManager.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/INotificationManager.cs deleted file mode 100644 index b541e586..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/INotificationManager.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Threading.Tasks; - -namespace DesktopNotifications -{ - /// - /// Interface for notification managers that handle the presentation and lifetime of notifications. - /// - public interface INotificationManager : IDisposable - { - /// - /// The action identifier the process was launched with. - /// - /// "default" denotes the platform-specific default action. - /// On Windows this means the user simply clicked the notification body. - /// - /// - string? LaunchActionId { get; } - - /// - /// Raised when a notification was activated. The notion of "activation" varies from platform to platform. - /// - event EventHandler NotificationActivated; - - /// - /// Raised when a notification was dismissed. The exact reason can be found in - /// . - /// - event EventHandler NotificationDismissed; - - /// - /// Initialized the notification manager. - /// - /// - Task Initialize(); - - /// - /// Schedules a notification for presentation. - /// - /// The notification to present. - /// The expiration time marking the point when the notification gets removed. - Task ShowNotification(Notification notification, DateTimeOffset? expirationTime = null); - - /// - /// - /// - /// - /// - /// - Task ScheduleNotification( - Notification notification, - DateTimeOffset deliveryTime, - DateTimeOffset? expirationTime = null); - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/Notification.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/Notification.cs deleted file mode 100644 index be00d68a..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/Notification.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Collections.Generic; - -namespace DesktopNotifications -{ - /// - /// - public class Notification - { - public Notification() - { - Buttons = new List<(string Title, string ActionId)>(); - } - - public string? Title { get; set; } - - public string? Body { get; set; } - - public string? ImagePath { get; set; } - - // NOTE: This only works on packaged app (Android or WinRT) - // The sound name needs to be in resource folder - public string? SoundUri { get; set; } - - public List<(string Title, string ActionId)> Buttons { get; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationActivatedEventArgs.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationActivatedEventArgs.cs deleted file mode 100644 index b129995c..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationActivatedEventArgs.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace DesktopNotifications -{ - /// - /// - /// - public class NotificationActivatedEventArgs : NotificationEventArgs - { - public NotificationActivatedEventArgs(Notification notification, string actionId) - : base(notification) - { - ActionId = actionId; - } - - /// - /// The id associated with the activation action. "default" denotes the platform-specific default action. - /// On Windows this means the user clicked on the notification. - /// - public string ActionId { get; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationDismissReason.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationDismissReason.cs deleted file mode 100644 index 8c521a2d..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationDismissReason.cs +++ /dev/null @@ -1,23 +0,0 @@ -namespace DesktopNotifications -{ - /// - /// Reasons why a notification was dismissed. - /// - public enum NotificationDismissReason - { - /// - /// The user closed the notification. - /// - User, - - /// - /// The notification expired. - /// - Expired, - - /// - /// The notification was explicitly removed by application code. - /// - Application - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationDismissedEventArgs.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationDismissedEventArgs.cs deleted file mode 100644 index 732a06df..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationDismissedEventArgs.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace DesktopNotifications -{ - /// - /// - public class NotificationDismissedEventArgs - { - public NotificationDismissedEventArgs(Notification notification, NotificationDismissReason reason) - { - Notification = notification; - Reason = reason; - } - - public Notification Notification { get; } - public NotificationDismissReason Reason { get; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationEventArgs.cs b/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationEventArgs.cs deleted file mode 100644 index 52adb6f1..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/DesktopNotifications/NotificationEventArgs.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace DesktopNotifications -{ - /// - /// - public class NotificationEventArgs - { - public NotificationEventArgs(Notification notification) - { - Notification = notification; - } - - /// - /// - public Notification Notification { get; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/App.axaml b/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/App.axaml deleted file mode 100644 index 5143a3d5..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/App.axaml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/App.axaml.cs b/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/App.axaml.cs deleted file mode 100644 index 8e1a7983..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/App.axaml.cs +++ /dev/null @@ -1,24 +0,0 @@ -using Avalonia; -using Avalonia.Controls.ApplicationLifetimes; -using Avalonia.Markup.Xaml; - -namespace Example.Avalonia -{ - public class App : Application - { - public override void Initialize() - { - AvaloniaXamlLoader.Load(this); - } - - public override void OnFrameworkInitializationCompleted() - { - if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop) - { - desktop.MainWindow = new MainWindow(); - } - - base.OnFrameworkInitializationCompleted(); - } - } -} diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/Example.Avalonia.csproj b/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/Example.Avalonia.csproj deleted file mode 100644 index cedb29f9..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/Example.Avalonia.csproj +++ /dev/null @@ -1,24 +0,0 @@ - - - - - netcoreapp3.1;net5.0 - - - netcoreapp3.1;net5.0-windows10.0.17763.0 - - - - 8.0 - WinExe - enable - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/MainWindow.axaml b/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/MainWindow.axaml deleted file mode 100644 index 9bded4de..00000000 --- a/RE/Commit2/ThirdParty/DesktopNotifications/Example.Avalonia/MainWindow.axaml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/demo/MainWindow.axaml.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/demo/MainWindow.axaml.cs deleted file mode 100644 index 791bfa54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/demo/MainWindow.axaml.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using Avalonia; -using Avalonia.Controls; -using Avalonia.Markup.Xaml; -using Projektanker.Icons.Avalonia; - -namespace Demo -{ - public class MainWindow : Window - { - public MainWindow() - { - InitializeComponent(); -#if DEBUG - this.AttachDevTools(); -#endif - DataContext = this; - } - - public IEnumerable Animations => Enum.GetValues(); - - private void InitializeComponent() - { - AvaloniaXamlLoader.Load(this); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/demo/Program.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/demo/Program.cs deleted file mode 100644 index f762dbe7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/demo/Program.cs +++ /dev/null @@ -1,30 +0,0 @@ -using Avalonia; -using Projektanker.Icons.Avalonia; -using Projektanker.Icons.Avalonia.FontAwesome; -using Projektanker.Icons.Avalonia.MaterialDesign; - -namespace Demo -{ - internal class Program - { - // Initialization code. Don't use any Avalonia, third-party APIs or any - // SynchronizationContext-reliant code before AppMain is called: things aren't initialized - // yet and stuff might break. - public static void Main(string[] args) - { - BuildAvaloniaApp() - .StartWithClassicDesktopLifetime(args); - } - - // Avalonia configuration, don't remove; also used by visual designer. - public static AppBuilder BuildAvaloniaApp() - { - return AppBuilder.Configure() - .UsePlatformDetect() - .LogToTrace() - .WithIcons(container => container - .Register() - .Register()); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/resources/demo.png b/RE/Commit2/ThirdParty/Icons.Avalonia/resources/demo.png deleted file mode 100644 index 1903dc50..00000000 Binary files a/RE/Commit2/ThirdParty/Icons.Avalonia/resources/demo.png and /dev/null differ diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Directory.Build.props b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Directory.Build.props deleted file mode 100644 index 72f27bf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Directory.Build.props +++ /dev/null @@ -1,17 +0,0 @@ - - - netstandard2.0 - Sebastian Rumohr - Projektanker GmbH - - https://github.com/Projektanker/Icons.Avalonia - MIT - avalonia icons - README.md - - - - - - - diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome.Test/FontAwesomeIconProviderTest.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome.Test/FontAwesomeIconProviderTest.cs deleted file mode 100644 index d094e0bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome.Test/FontAwesomeIconProviderTest.cs +++ /dev/null @@ -1,466 +0,0 @@ -using System; -using System.Collections.Generic; -using FluentAssertions; -using SkiaSharp; -using Xunit; - -namespace Projektanker.Icons.Avalonia.FontAwesome.Test -{ - public class FontAwesomeIconProviderTest - { - private readonly IIconProvider _iconProvider = new FontAwesomeIconProvider(); - - [Theory] - [InlineData("fa-github")] - [InlineData("fa-arrow-left")] - [InlineData("fa-arrow-right")] - [InlineData("fa-brands fa-github")] - [InlineData("fa-solid fa-arrow-left")] - [InlineData("fa-regular fa-address-book")] - public void Icon_Should_Exist_And_Be_Valid_SVG_Path(string value) - { - // Act #1 - var path = _iconProvider.GetIconPath(value); - - // Assert #1 - path.Should().NotBeNullOrEmpty(); - - // Act #2 - var skiaPath = SKPath.ParseSvgPathData(path); - - // Assert #2 - skiaPath.Should().NotBeNull(); - skiaPath.Bounds.IsEmpty.Should().BeFalse(); - } - - [Theory] - [InlineData("fa-you-cant-find-me")] - [InlineData("fa")] - [InlineData("far fa-arrow-left")] - public void IconProvider_Should_Throw_Exception_If_Icon_Does_Not_Exist(string value) - { - // Act - Func func = () => _iconProvider.GetIconPath(value); - - // Assert - func.Should().Throw(); - } - - [Theory] - [InlineData("fab fa-github", "fa-brands fa-github")] - [InlineData("fas fa-arrow-left", "fa-solid fa-arrow-left")] - [InlineData("far fa-address-book", "fa-regular fa-address-book")] - public void Legacy_Style_Should_Still_Work(string legacy, string version6) - { - // Act - var legacyPath = _iconProvider.GetIconPath(legacy); - var version6Path = _iconProvider.GetIconPath(version6); - - // Assert - legacyPath.Should().Be(version6Path); - } - - [Theory] - [InlineData("ad", "rectangle-ad")] - [InlineData("adjust", "circle-half-stroke")] - [InlineData("air-freshener", "spray-can-sparkles")] - [InlineData("allergies", "hand-dots")] - [InlineData("ambulance", "truck-medical")] - [InlineData("american-sign-language-interpreting", "hands-asl-interpreting")] - [InlineData("angle-double-down", "angles-down")] - [InlineData("angle-double-left", "angles-left")] - [InlineData("angle-double-right", "angles-right")] - [InlineData("angle-double-up", "angles-up")] - [InlineData("angry", "face-angry")] - [InlineData("apple-alt", "apple-whole")] - [InlineData("archive", "box-archive")] - [InlineData("arrow-alt-circle-down", "circle-down")] - [InlineData("arrow-alt-circle-left", "circle-left")] - [InlineData("arrow-alt-circle-right", "circle-right")] - [InlineData("arrow-alt-circle-up", "circle-up")] - [InlineData("arrow-circle-down", "circle-arrow-down")] - [InlineData("arrow-circle-left", "circle-arrow-left")] - [InlineData("arrow-circle-right", "circle-arrow-right")] - [InlineData("arrow-circle-up", "circle-arrow-up")] - [InlineData("arrows", "arrows-up-down-left-right")] - [InlineData("arrows-alt", "up-down-left-right")] - [InlineData("arrows-alt-h", "left-right")] - [InlineData("arrows-alt-v", "up-down")] - [InlineData("arrows-h", "arrows-left-right")] - [InlineData("arrows-v", "arrows-up-down")] - [InlineData("assistive-listening-systems", "ear-listen")] - [InlineData("atlas", "book-atlas")] - [InlineData("backspace", "delete-left")] - [InlineData("balance-scale", "scale-balanced")] - [InlineData("balance-scale-left", "scale-unbalanced")] - [InlineData("balance-scale-right", "scale-unbalanced-flip")] - [InlineData("band-aid", "bandage")] - [InlineData("baseball-ball", "baseball")] - [InlineData("basketball-ball", "basketball")] - [InlineData("beer", "beer-mug-empty")] - [InlineData("bible", "book-bible")] - [InlineData("biking", "person-biking")] - [InlineData("birthday-cake", "cake-candles")] - [InlineData("blind", "person-walking-with-cane")] - [InlineData("book-dead", "book-skull")] - [InlineData("book-reader", "book-open-reader")] - [InlineData("border-style", "border-top-left")] - [InlineData("boxes", "boxes-stacked")] - [InlineData("boxes-alt", "boxes-stacked")] - [InlineData("broadcast-tower", "tower-broadcast")] - [InlineData("burn", "fire-flame-simple")] - [InlineData("bus-alt", "bus-simple")] - [InlineData("calendar-alt", "calendar-days")] - [InlineData("calendar-times", "calendar-xmark")] - [InlineData("camera-alt", "camera")] - [InlineData("car-alt", "car-rear")] - [InlineData("caret-square-down", "square-caret-down")] - [InlineData("caret-square-left", "square-caret-left")] - [InlineData("caret-square-right", "square-caret-right")] - [InlineData("caret-square-up", "square-caret-up")] - [InlineData("chalkboard-teacher", "chalkboard-user")] - [InlineData("check-circle", "circle-check")] - [InlineData("check-square", "square-check")] - [InlineData("chevron-circle-down", "circle-chevron-down")] - [InlineData("chevron-circle-left", "circle-chevron-left")] - [InlineData("chevron-circle-right", "circle-chevron-right")] - [InlineData("chevron-circle-up", "circle-chevron-up")] - [InlineData("clinic-medical", "house-chimney-medical")] - [InlineData("cloud-download", "cloud-arrow-down")] - [InlineData("cloud-download-alt", "cloud-arrow-down")] - [InlineData("cloud-upload", "cloud-arrow-up")] - [InlineData("cloud-upload-alt", "cloud-arrow-up")] - [InlineData("cocktail", "martini-glass-citrus")] - [InlineData("coffee", "mug-saucer")] - [InlineData("cog", "gear")] - [InlineData("cogs", "gears")] - [InlineData("columns", "table-columns")] - [InlineData("comment-alt", "message")] - [InlineData("compress-alt", "down-left-and-up-right-to-center")] - [InlineData("compress-arrows-alt", "minimize")] - [InlineData("concierge-bell", "bell-concierge")] - [InlineData("crop-alt", "crop-simple")] - [InlineData("cut", "scissors")] - [InlineData("deaf", "ear-deaf")] - [InlineData("desktop-alt", "desktop")] - [InlineData("diagnoses", "person-dots-from-line")] - [InlineData("digging", "person-digging")] - [InlineData("digital-tachograph", "tachograph-digital")] - [InlineData("directions", "diamond-turn-right")] - [InlineData("dizzy", "face-dizzy")] - [InlineData("dolly-flatbed", "cart-flatbed")] - [InlineData("donate", "circle-dollar-to-slot")] - [InlineData("dot-circle", "circle-dot")] - [InlineData("drafting-compass", "compass-drafting")] - [InlineData("edit", "pen-to-square")] - [InlineData("ellipsis-h", "ellipsis")] - [InlineData("ellipsis-v", "ellipsis-vertical")] - [InlineData("envelope-square", "square-envelope")] - [InlineData("exchange", "arrow-right-arrow-left")] - [InlineData("exchange-alt", "right-left")] - [InlineData("exclamation-circle", "circle-exclamation")] - [InlineData("exclamation-triangle", "triangle-exclamation")] - [InlineData("expand-alt", "up-right-and-down-left-from-center")] - [InlineData("expand-arrows-alt", "maximize")] - [InlineData("external-link", "arrow-up-right-from-square")] - [InlineData("external-link-alt", "up-right-from-square")] - [InlineData("external-link-square", "square-arrow-up-right")] - [InlineData("external-link-square-alt", "square-up-right")] - [InlineData("fast-backward", "backward-fast")] - [InlineData("fast-forward", "forward-fast")] - [InlineData("feather-alt", "feather-pointed")] - [InlineData("female", "person-dress")] - [InlineData("fighter-jet", "jet-fighter")] - [InlineData("file-alt", "file-lines")] - [InlineData("file-archive", "file-zipper")] - [InlineData("file-download", "file-arrow-down")] - [InlineData("file-edit", "file-pen")] - [InlineData("file-medical-alt", "file-waveform")] - [InlineData("file-upload", "file-arrow-up")] - [InlineData("fire-alt", "fire-flame-curved")] - [InlineData("first-aid", "kit-medical")] - [InlineData("fist-raised", "hand-fist")] - [InlineData("flushed", "face-flushed")] - [InlineData("font-awesome-alt", "square-font-awesome-stroke")] - [InlineData("font-awesome-flag", "font-awesome")] - [InlineData("font-awesome-logo-full", "font-awesome")] - [InlineData("football-ball", "football")] - [InlineData("frown", "face-frown")] - [InlineData("frown-open", "face-frown-open")] - [InlineData("funnel-dollar", "filter-circle-dollar")] - [InlineData("glass-cheers", "champagne-glasses")] - [InlineData("glass-martini", "martini-glass-empty")] - [InlineData("glass-martini-alt", "martini-glass")] - [InlineData("glass-whiskey", "whiskey-glass")] - [InlineData("globe-africa", "earth-africa")] - [InlineData("globe-americas", "earth-americas")] - [InlineData("globe-asia", "earth-asia")] - [InlineData("globe-europe", "earth-europe")] - [InlineData("golf-ball", "golf-ball-tee")] - [InlineData("grimace", "face-grimace")] - [InlineData("grin", "face-grin")] - [InlineData("grin-alt", "face-grin-wide")] - [InlineData("grin-beam", "face-grin-beam")] - [InlineData("grin-beam-sweat", "face-grin-beam-sweat")] - [InlineData("grin-hearts", "face-grin-hearts")] - [InlineData("grin-squint", "face-grin-squint")] - [InlineData("grin-squint-tears", "face-grin-squint-tears")] - [InlineData("grin-stars", "face-grin-stars")] - [InlineData("grin-tears", "face-grin-tears")] - [InlineData("grin-tongue", "face-grin-tongue")] - [InlineData("grin-tongue-squint", "face-grin-tongue-squint")] - [InlineData("grin-tongue-wink", "face-grin-tongue-wink")] - [InlineData("grin-wink", "face-grin-wink")] - [InlineData("grip-horizontal", "grip")] - [InlineData("h-square", "square-h")] - [InlineData("hamburger", "burger")] - [InlineData("hand-holding-usd", "hand-holding-dollar")] - [InlineData("hand-holding-water", "hand-holding-droplet")] - [InlineData("hand-paper", "hand")] - [InlineData("hand-rock", "hand-back-fist")] - [InlineData("hands-helping", "handshake-angle")] - [InlineData("hands-wash", "hands-bubbles")] - [InlineData("handshake-alt", "handshake-simple")] - [InlineData("handshake-alt-slash", "handshake-simple-slash")] - [InlineData("hard-hat", "helmet-safety")] - [InlineData("hdd", "hard-drive")] - [InlineData("headphones-alt", "headphones-simple")] - [InlineData("heart-broken", "heart-crack")] - [InlineData("heartbeat", "heart-pulse")] - [InlineData("hiking", "person-hiking")] - [InlineData("history", "clock-rotate-left")] - [InlineData("home", "house")] - [InlineData("home-alt", "house")] - [InlineData("home-lg", "house-chimney")] - [InlineData("home-lg-alt", "house")] - [InlineData("hospital-alt", "hospital")] - [InlineData("hospital-symbol", "circle-h")] - [InlineData("hot-tub", "hot-tub-person")] - [InlineData("hourglass-half", "hourglass")] - [InlineData("house-damage", "house-chimney-crack")] - [InlineData("hryvnia", "hryvnia-sign")] - [InlineData("id-card-alt", "id-card-clip")] - [InlineData("info-circle", "circle-info")] - [InlineData("innosoft", "42-group")] - [InlineData("journal-whills", "book-journal-whills")] - [InlineData("kiss", "face-kiss")] - [InlineData("kiss-beam", "face-kiss-beam")] - [InlineData("kiss-wink-heart", "face-kiss-wink-heart")] - [InlineData("landmark-alt", "landmark-dome")] - [InlineData("laptop-house", "house-laptop")] - [InlineData("laugh", "face-laugh")] - [InlineData("laugh-beam", "face-laugh-beam")] - [InlineData("laugh-squint", "face-laugh-squint")] - [InlineData("laugh-wink", "face-laugh-wink")] - [InlineData("level-down", "arrow-turn-down")] - [InlineData("level-down-alt", "turn-down")] - [InlineData("level-up", "arrow-turn-up")] - [InlineData("level-up-alt", "turn-up")] - [InlineData("list-alt", "rectangle-list")] - [InlineData("location", "location-crosshairs")] - [InlineData("long-arrow-alt-down", "down-long")] - [InlineData("long-arrow-alt-left", "left-long")] - [InlineData("long-arrow-alt-right", "right-long")] - [InlineData("long-arrow-alt-up", "up-long")] - [InlineData("long-arrow-down", "arrow-down-long")] - [InlineData("long-arrow-left", "arrow-left-long")] - [InlineData("long-arrow-right", "arrow-right-long")] - [InlineData("long-arrow-up", "arrow-up-long")] - [InlineData("low-vision", "eye-low-vision")] - [InlineData("luggage-cart", "cart-flatbed-suitcase")] - [InlineData("magic", "wand-magic")] - [InlineData("mail-bulk", "envelopes-bulk")] - [InlineData("male", "person")] - [InlineData("map-marked", "map-location")] - [InlineData("map-marked-alt", "map-location-dot")] - [InlineData("map-marker", "location-pin")] - [InlineData("map-marker-alt", "location-dot")] - [InlineData("map-signs", "signs-post")] - [InlineData("mars-stroke-h", "mars-stroke-right")] - [InlineData("mars-stroke-v", "mars-stroke-up")] - [InlineData("medium-m", "medium")] - [InlineData("medkit", "suitcase-medical")] - [InlineData("meh", "face-meh")] - [InlineData("meh-blank", "face-meh-blank")] - [InlineData("meh-rolling-eyes", "face-rolling-eyes")] - [InlineData("microphone-alt", "microphone-lines")] - [InlineData("microphone-alt-slash", "microphone-lines-slash")] - [InlineData("minus-circle", "circle-minus")] - [InlineData("minus-square", "square-minus")] - [InlineData("mobile-alt", "mobile-screen-button")] - [InlineData("mobile-android", "mobile")] - [InlineData("mobile-android-alt", "mobile-screen")] - [InlineData("money-bill-alt", "money-bill-1")] - [InlineData("money-bill-wave-alt", "money-bill-1-wave")] - [InlineData("money-check-alt", "money-check-dollar")] - [InlineData("mouse", "computer-mouse")] - [InlineData("mouse-pointer", "arrow-pointer")] - [InlineData("paint-brush", "paintbrush")] - [InlineData("parking", "square-parking")] - [InlineData("pastafarianism", "spaghetti-monster-flying")] - [InlineData("pause-circle", "circle-pause")] - [InlineData("pen-alt", "pen-clip")] - [InlineData("pen-square", "square-pen")] - [InlineData("pencil-alt", "pencil")] - [InlineData("pencil-ruler", "pen-ruler")] - [InlineData("percentage", "percent")] - [InlineData("phone-alt", "phone-flip")] - [InlineData("phone-square", "square-phone")] - [InlineData("phone-square-alt", "square-phone-flip")] - [InlineData("photo-video", "photo-film")] - [InlineData("play-circle", "circle-play")] - [InlineData("plus-circle", "circle-plus")] - [InlineData("plus-square", "square-plus")] - [InlineData("poll", "square-poll-vertical")] - [InlineData("poll-h", "square-poll-horizontal")] - [InlineData("portrait", "image-portrait")] - [InlineData("pound-sign", "sterling-sign")] - [InlineData("pray", "person-praying")] - [InlineData("praying-hands", "hands-praying")] - [InlineData("prescription-bottle-alt", "prescription-bottle-medical")] - [InlineData("procedures", "bed-pulse")] - [InlineData("project-diagram", "diagram-project")] - [InlineData("question-circle", "circle-question")] - [InlineData("quran", "book-quran")] - [InlineData("radiation-alt", "circle-radiation")] - [InlineData("random", "shuffle")] - [InlineData("redo", "arrow-rotate-right")] - [InlineData("redo-alt", "rotate-right")] - [InlineData("remove-format", "text-slash")] - [InlineData("rss-square", "square-rss")] - [InlineData("running", "person-running")] - [InlineData("sad-cry", "face-sad-cry")] - [InlineData("sad-tear", "face-sad-tear")] - [InlineData("save", "floppy-disk")] - [InlineData("search", "magnifying-glass")] - [InlineData("search-dollar", "magnifying-glass-dollar")] - [InlineData("search-location", "magnifying-glass-location")] - [InlineData("search-minus", "magnifying-glass-minus")] - [InlineData("search-plus", "magnifying-glass-plus")] - [InlineData("share-alt", "share-nodes")] - [InlineData("share-alt-square", "square-share-nodes")] - [InlineData("share-square", "share-from-square")] - [InlineData("shipping-fast", "truck-fast")] - [InlineData("shopping-bag", "bag-shopping")] - [InlineData("shopping-basket", "basket-shopping")] - [InlineData("shopping-cart", "cart-shopping")] - [InlineData("shuttle-van", "van-shuttle")] - [InlineData("sign", "sign-hanging")] - [InlineData("sign-in", "arrow-right-to-bracket")] - [InlineData("sign-in-alt", "right-to-bracket")] - [InlineData("sign-language", "hands")] - [InlineData("sign-out", "arrow-right-from-bracket")] - [InlineData("sign-out-alt", "right-from-bracket")] - [InlineData("skating", "person-skating")] - [InlineData("skiing", "person-skiing")] - [InlineData("skiing-nordic", "person-skiing-nordic")] - [InlineData("slack-hash", "slack")] - [InlineData("sliders-h", "sliders")] - [InlineData("smile", "face-smile")] - [InlineData("smile-beam", "face-smile-beam")] - [InlineData("smile-wink", "face-smile-wink")] - [InlineData("smoking-ban", "ban-smoking")] - [InlineData("sms", "comment-sms")] - [InlineData("snapchat-ghost", "snapchat")] - [InlineData("snowboarding", "person-snowboarding")] - [InlineData("sort-alpha-down", "arrow-down-a-z")] - [InlineData("sort-alpha-down-alt", "arrow-down-z-a")] - [InlineData("sort-alpha-up", "arrow-up-a-z")] - [InlineData("sort-alpha-up-alt", "arrow-up-z-a")] - [InlineData("sort-amount-down", "arrow-down-wide-short")] - [InlineData("sort-amount-down-alt", "arrow-down-short-wide")] - [InlineData("sort-amount-up", "arrow-up-wide-short")] - [InlineData("sort-amount-up-alt", "arrow-up-short-wide")] - [InlineData("sort-numeric-down", "arrow-down-1-9")] - [InlineData("sort-numeric-down-alt", "arrow-down-9-1")] - [InlineData("sort-numeric-up", "arrow-up-1-9")] - [InlineData("sort-numeric-up-alt", "arrow-up-9-1")] - [InlineData("space-shuttle", "shuttle-space")] - [InlineData("square-root-alt", "square-root-variable")] - [InlineData("star-half-alt", "star-half-stroke")] - [InlineData("step-backward", "backward-step")] - [InlineData("step-forward", "forward-step")] - [InlineData("sticky-note", "note-sticky")] - [InlineData("stop-circle", "circle-stop")] - [InlineData("store-alt", "shop")] - [InlineData("store-alt-slash", "shop-slash")] - [InlineData("stream", "bars-staggered")] - [InlineData("subway", "train-subway")] - [InlineData("surprise", "face-surprise")] - [InlineData("swimmer", "person-swimming")] - [InlineData("swimming-pool", "water-ladder")] - [InlineData("sync", "arrows-rotate")] - [InlineData("sync-alt", "rotate")] - [InlineData("table-tennis", "table-tennis-paddle-ball")] - [InlineData("tablet-alt", "tablet-screen-button")] - [InlineData("tablet-android", "tablet")] - [InlineData("tachometer", "gauge-simple")] - [InlineData("tachometer-alt", "gauge")] - [InlineData("tachometer-alt-fast", "gauge")] - [InlineData("tasks", "list-check")] - [InlineData("tasks-alt", "bars-progress")] - [InlineData("telegram-plane", "telegram")] - [InlineData("temperature-down", "temperature-arrow-down")] - [InlineData("temperature-up", "temperature-arrow-up")] - [InlineData("tenge", "tenge-sign")] - [InlineData("th", "table-cells")] - [InlineData("th-large", "table-cells-large")] - [InlineData("th-list", "table-list")] - [InlineData("theater-masks", "masks-theater")] - [InlineData("thermometer-empty", "temperature-empty")] - [InlineData("thermometer-full", "temperature-full")] - [InlineData("thermometer-half", "temperature-half")] - [InlineData("thermometer-quarter", "temperature-quarter")] - [InlineData("thermometer-three-quarters", "temperature-three-quarters")] - [InlineData("thunderstorm", "cloud-bolt")] - [InlineData("ticket-alt", "ticket-simple")] - [InlineData("times", "xmark")] - [InlineData("times-circle", "circle-xmark")] - [InlineData("times-square", "square-xmark")] - [InlineData("tint", "droplet")] - [InlineData("tint-slash", "droplet-slash")] - [InlineData("tired", "face-tired")] - [InlineData("tools", "screwdriver-wrench")] - [InlineData("torah", "scroll-torah")] - [InlineData("tram", "train-tram")] - [InlineData("transgender-alt", "transgender")] - [InlineData("trash-alt", "trash-can")] - [InlineData("trash-restore", "trash-arrow-up")] - [InlineData("trash-restore-alt", "trash-can-arrow-up")] - [InlineData("truck-loading", "truck-ramp-box")] - [InlineData("tshirt", "shirt")] - [InlineData("tv-alt", "tv")] - [InlineData("undo", "arrow-rotate-left")] - [InlineData("undo-alt", "rotate-left")] - [InlineData("university", "building-columns")] - [InlineData("unlink", "link-slash")] - [InlineData("unlock-alt", "unlock-keyhole")] - [InlineData("user-alt", "user-large")] - [InlineData("user-alt-slash", "user-large-slash")] - [InlineData("user-circle", "circle-user")] - [InlineData("user-cog", "user-gear")] - [InlineData("user-edit", "user-pen")] - [InlineData("user-friends", "user-group")] - [InlineData("user-md", "user-doctor")] - [InlineData("user-times", "user-xmark")] - [InlineData("users-cog", "users-gear")] - [InlineData("utensil-spoon", "spoon")] - [InlineData("volleyball-ball", "volleyball")] - [InlineData("volume-down", "volume-low")] - [InlineData("volume-mute", "volume-xmark")] - [InlineData("volume-up", "volume-high")] - [InlineData("vote-yea", "check-to-slot")] - [InlineData("walking", "person-walking")] - [InlineData("weight", "weight-scale")] - [InlineData("window-close", "rectangle-xmark")] - public void Legacy_Value_Should_Be_Mapped_To_Version6(string legacy, string version6) - { - // Act - var legacyPath = _iconProvider.GetIconPath($"fa-{legacy}"); - var version6Path = _iconProvider.GetIconPath($"fa-{version6}"); - - // Assert - legacyPath.Should().Be(version6Path); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome.Test/Projektanker.Icons.Avalonia.FontAwesome.Test.csproj b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome.Test/Projektanker.Icons.Avalonia.FontAwesome.Test.csproj deleted file mode 100644 index a55efcbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome.Test/Projektanker.Icons.Avalonia.FontAwesome.Test.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - net6.0 - false - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Assets/icons.json b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Assets/icons.json deleted file mode 100644 index 1b51587c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Assets/icons.json +++ /dev/null @@ -1,77578 +0,0 @@ -{ - "0": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "30", - "label": "0", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573161, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M160 32.01c-88.37 0-160 71.63-160 160v127.1c0 88.37 71.63 160 160 160s160-71.63 160-160V192C320 103.6 248.4 32.01 160 32.01zM256 320c0 52.93-43.06 96-96 96c-52.93 0-96-43.07-96-96V192c0-52.94 43.07-96 96-96c52.94 0 96 43.06 96 96V320z" - } - }, - "free": [ - "solid" - ] - }, - "1": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "31", - "label": "1", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573161, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M256 448c0 17.67-14.33 32-32 32H32c-17.67 0-32-14.33-32-32s14.33-32 32-32h64V123.8L49.75 154.6C35.02 164.5 15.19 160.4 5.375 145.8C-4.422 131.1-.4531 111.2 14.25 101.4l96-64c9.828-6.547 22.45-7.187 32.84-1.594C153.5 41.37 160 52.22 160 64.01v352h64C241.7 416 256 430.3 256 448z" - } - }, - "free": [ - "solid" - ] - }, - "2": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "32", - "label": "2", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573161, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 448c0 17.67-14.33 32-32 32H32c-13.08 0-24.83-7.953-29.7-20.09c-4.859-12.12-1.859-26 7.594-35.03l193.6-185.1c31.36-30.17 33.95-80 5.812-113.4c-14.91-17.69-35.86-28.12-58.97-29.38C127.4 95.83 105.3 103.9 88.53 119.9L53.52 151.7c-13.08 11.91-33.33 10.89-45.2-2.172C-3.563 136.5-2.594 116.2 10.48 104.3l34.45-31.3c28.67-27.34 68.39-42.11 108.9-39.88c40.33 2.188 78.39 21.16 104.4 52.03c49.8 59.05 45.2 147.3-10.45 200.8l-136 130H288C305.7 416 320 430.3 320 448z" - } - }, - "free": [ - "solid" - ] - }, - "3": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "33", - "label": "3", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573161, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 344c0 74.98-61.02 136-136 136H103.6c-46.34 0-87.31-29.53-101.1-73.48c-5.594-16.77 3.484-34.88 20.25-40.47c16.75-5.609 34.89 3.484 40.47 20.25c5.922 17.77 22.48 29.7 41.23 29.7H184c39.7 0 72-32.3 72-72s-32.3-72-72-72H80c-13.2 0-25.05-8.094-29.83-20.41C45.39 239.3 48.66 225.3 58.38 216.4l131.4-120.4H32c-17.67 0-32-14.33-32-32s14.33-32 32-32h240c13.2 0 25.05 8.094 29.83 20.41c4.781 12.3 1.516 26.27-8.203 35.19l-131.4 120.4H184C258.1 208 320 269 320 344z" - } - }, - "free": [ - "solid" - ] - }, - "4": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "34", - "label": "4", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573161, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 334.2c0 17.67-14.33 32-32 32h-32v81.78c0 17.67-14.33 32-32 32s-32-14.33-32-32v-81.78H32c-10.97 0-21.17-5.625-27.05-14.89c-5.859-9.266-6.562-20.89-1.875-30.81l128-270.2C138.6 34.33 157.8 27.56 173.7 35.09c15.97 7.562 22.78 26.66 15.22 42.63L82.56 302.2H256V160c0-17.67 14.33-32 32-32s32 14.33 32 32v142.2h32C369.7 302.2 384 316.6 384 334.2z" - } - }, - "free": [ - "solid" - ] - }, - "5": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "35", - "label": "5", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573161, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 344.6c0 74.66-60.73 135.4-135.4 135.4H104.7c-46.81 0-88.22-29.83-103-74.23c-5.594-16.77 3.469-34.89 20.23-40.48c16.83-5.625 34.91 3.469 40.48 20.23c6.078 18.23 23.08 30.48 42.3 30.48h79.95c39.36 0 71.39-32.03 71.39-71.39s-32.03-71.38-71.39-71.38H32c-9.484 0-18.47-4.203-24.56-11.48C1.359 254.5-1.172 244.9 .5156 235.6l32-177.2C35.27 43.09 48.52 32.01 64 32.01l192 .0049c17.67 0 32 14.33 32 32s-14.33 32-32 32H90.73L70.3 209.2h114.3C259.3 209.2 320 269.1 320 344.6z" - } - }, - "free": [ - "solid" - ] - }, - "6": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "36", - "label": "6", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573161, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M167.7 160.8l64.65-76.06c11.47-13.45 9.812-33.66-3.656-45.09C222.7 34.51 215.3 32.01 208 32.01c-9.062 0-18.06 3.833-24.38 11.29C38.07 214.5 0 245.5 0 320c0 88.22 71.78 160 160 160s160-71.78 160-160C320 234.4 252.3 164.9 167.7 160.8zM160 416c-52.94 0-96-43.06-96-96s43.06-95.1 96-95.1s96 43.06 96 95.1S212.9 416 160 416z" - } - }, - "free": [ - "solid" - ] - }, - "7": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "37", - "label": "7", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573162, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M315.6 80.14l-224 384c-5.953 10.19-16.66 15.88-27.67 15.88c-5.469 0-11.02-1.406-16.09-4.359c-15.27-8.906-20.42-28.5-11.52-43.77l195.9-335.9H32c-17.67 0-32-14.33-32-32s14.33-32 32-32h256c11.45 0 22.05 6.125 27.75 16.06S321.4 70.23 315.6 80.14z" - } - }, - "free": [ - "solid" - ] - }, - "8": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "38", - "label": "8", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573162, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M267.5 249.2C290 226.1 304 194.7 304 160c0-70.58-57.42-128-128-128h-32c-70.58 0-128 57.42-128 128c0 34.7 13.99 66.12 36.48 89.19C20.83 272.5 0 309.8 0 352c0 70.58 57.42 128 128 128h64c70.58 0 128-57.42 128-128C320 309.8 299.2 272.5 267.5 249.2zM144 96.01h32c35.3 0 64 28.7 64 64s-28.7 64-64 64h-32c-35.3 0-64-28.7-64-64S108.7 96.01 144 96.01zM192 416H128c-35.3 0-64-28.7-64-64s28.7-64 64-64h64c35.3 0 64 28.7 64 64S227.3 416 192 416z" - } - }, - "free": [ - "solid" - ] - }, - "9": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "39", - "label": "9", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573162, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M160 32.01c-88.22 0-160 71.78-160 160c0 85.57 67.71 155.1 152.3 159.2l-64.65 76.06c-11.47 13.45-9.812 33.66 3.656 45.09c6 5.125 13.38 7.62 20.72 7.62c9.062 0 18.06-3.823 24.38-11.28C281.9 297.5 320 266.6 320 192C320 103.8 248.2 32.01 160 32.01zM160 288c-52.94 0-96-43.06-96-95.1s43.06-96 96-96s96 43.06 96 96S212.9 288 160 288z" - } - }, - "free": [ - "solid" - ] - }, - "42-group": { - "changes": [ - "5.15.0", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e080", - "aliases": { - "names": [ - "innosoft" - ] - }, - "label": "42.group", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572468, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 96V416C341 416 361.8 411.9 381.2 403.8C400.6 395.8 418.3 383.1 433.1 369.1C447.1 354.3 459.8 336.6 467.8 317.2C475.9 297.8 480 277 480 256C480 234.1 475.9 214.2 467.8 194.8C459.8 175.4 447.1 157.7 433.1 142.9C418.3 128 400.6 116.2 381.2 108.2C361.8 100.1 341 96 320 96zM0 256L160 416L320 256L160 96L0 256zM480 256C480 277 484.1 297.8 492.2 317.2C500.2 336.6 512 354.3 526.9 369.1C541.7 383.1 559.4 395.8 578.8 403.8C598.2 411.9 618.1 416 640 416V96C597.6 96 556.9 112.9 526.9 142.9C496.9 172.9 480 213.6 480 256z" - } - }, - "free": [ - "brands" - ] - }, - "500px": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f26e", - "label": "500px", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M103.3 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2h.3v-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5s-68.8 13.8-93.5 38.5c-.3 .3-16 16.5-21.2 23.9l-.5 .6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8V20c0-5 3.9-10.5 10.5-10.5h241.3c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1H130.3v132.9h.3c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zm63.3-260.8c-.5 4.2 4.6 24.5 14.6 20.6C306 56.6 384 144.5 390.6 144.5c4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM393 414.7C283 524.6 94 475.5 61 310.5c0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM213.6 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6 .2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2L265.6 284l18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L249.7 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L234 284c-18.1 17.9-20.4 19.2-20.4 22.6z" - } - }, - "free": [ - "brands" - ] - }, - "a": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "41", - "aliases": { - "unicodes": { - "composite": [ - "61" - ] - } - }, - "label": "A", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573162, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M381.5 435.7l-160-384C216.6 39.78 204.9 32.01 192 32.01S167.4 39.78 162.5 51.7l-160 384c-6.797 16.31 .9062 35.05 17.22 41.84c16.38 6.828 35.08-.9219 41.84-17.22l31.8-76.31h197.3l31.8 76.31c5.109 12.28 17.02 19.7 29.55 19.7c4.094 0 8.266-.7969 12.3-2.484C380.6 470.7 388.3 452 381.5 435.7zM119.1 320L192 147.2l72 172.8H119.1z" - } - }, - "free": [ - "solid" - ] - }, - "accessible-icon": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f368", - "aliases": { - "unicodes": { - "composite": [ - "f29b" - ] - } - }, - "label": "Accessible Icon", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46c-30 26.8-70.6-18.5-40.5-45.4l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6L285.7 229l106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zm-64.9-154c28.1 0 50.9-22.8 50.9-50.9C409.9 22.8 387.1 0 359 0c-28.1 0-50.9 22.8-50.9 50.9 0 28.1 22.8 50.9 50.9 50.9zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1l-39.7-39.7C36.4 287 24 320.3 24 356.4c0 130.7 150.7 201.4 251.4 122.5l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z" - } - }, - "free": [ - "brands" - ] - }, - "accusoft": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f369", - "label": "Accusoft", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M322.1 252v-1l-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7 .8 0 114.5-36.6 114.5-36.6 .5-.6-.1-.1 .6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zm160.1 120.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8 .5-116.5 .6-19.2 .1-32.9-.3-19.2 16.9C250 75 476.5 365.2 482.2 372.1zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1 .2-9.6 .8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6 .2 2.5 2 2.6 4.6 3.5 2.7 .8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z" - } - }, - "free": [ - "brands" - ] - }, - "address-book": { - "changes": [ - "4.7.0", - "5.0.0", - "5.0.3", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2b9", - "aliases": { - "names": [ - "contact-book" - ], - "unicodes": { - "composite": [ - "f2ba" - ], - "secondary": [ - "10f2b9" - ] - } - }, - "label": "Address Book", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573162, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M384 0H96C60.65 0 32 28.65 32 64v384c0 35.35 28.65 64 64 64h288c35.35 0 64-28.65 64-64V64C448 28.65 419.3 0 384 0zM240 128c35.35 0 64 28.65 64 64s-28.65 64-64 64c-35.34 0-64-28.65-64-64S204.7 128 240 128zM336 384h-192C135.2 384 128 376.8 128 368C128 323.8 163.8 288 208 288h64c44.18 0 80 35.82 80 80C352 376.8 344.8 384 336 384zM496 64H480v96h16C504.8 160 512 152.8 512 144v-64C512 71.16 504.8 64 496 64zM496 192H480v96h16C504.8 288 512 280.8 512 272v-64C512 199.2 504.8 192 496 192zM496 320H480v96h16c8.836 0 16-7.164 16-16v-64C512 327.2 504.8 320 496 320z" - }, - "regular": { - "last_modified": 1658443572962, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M272 288h-64C163.8 288 128 323.8 128 368C128 376.8 135.2 384 144 384h192c8.836 0 16-7.164 16-16C352 323.8 316.2 288 272 288zM240 256c35.35 0 64-28.65 64-64s-28.65-64-64-64c-35.34 0-64 28.65-64 64S204.7 256 240 256zM496 320H480v96h16c8.836 0 16-7.164 16-16v-64C512 327.2 504.8 320 496 320zM496 64H480v96h16C504.8 160 512 152.8 512 144v-64C512 71.16 504.8 64 496 64zM496 192H480v96h16C504.8 288 512 280.8 512 272v-64C512 199.2 504.8 192 496 192zM384 0H96C60.65 0 32 28.65 32 64v384c0 35.35 28.65 64 64 64h288c35.35 0 64-28.65 64-64V64C448 28.65 419.3 0 384 0zM400 448c0 8.836-7.164 16-16 16H96c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h288c8.836 0 16 7.162 16 16V448z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "address-card": { - "changes": [ - "4.7.0", - "5.0.0", - "5.0.3", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2bb", - "aliases": { - "names": [ - "contact-card", - "vcard" - ], - "unicodes": { - "composite": [ - "f2bc" - ], - "secondary": [ - "10f2bb" - ] - } - }, - "label": "Address Card", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573162, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM176 128c35.35 0 64 28.65 64 64s-28.65 64-64 64s-64-28.65-64-64S140.7 128 176 128zM272 384h-192C71.16 384 64 376.8 64 368C64 323.8 99.82 288 144 288h64c44.18 0 80 35.82 80 80C288 376.8 280.8 384 272 384zM496 320h-128C359.2 320 352 312.8 352 304S359.2 288 368 288h128C504.8 288 512 295.2 512 304S504.8 320 496 320zM496 256h-128C359.2 256 352 248.8 352 240S359.2 224 368 224h128C504.8 224 512 231.2 512 240S504.8 256 496 256zM496 192h-128C359.2 192 352 184.8 352 176S359.2 160 368 160h128C504.8 160 512 167.2 512 176S504.8 192 496 192z" - }, - "regular": { - "last_modified": 1658443572962, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 256c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 227.3 172.7 256 208 256zM464 232h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 232 464 232zM240 288h-64C131.8 288 96 323.8 96 368C96 376.8 103.2 384 112 384h192c8.836 0 16-7.164 16-16C320 323.8 284.2 288 240 288zM464 152h-96c-13.25 0-24 10.75-24 24s10.75 24 24 24h96c13.25 0 24-10.75 24-24S477.3 152 464 152zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "adn": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f170", - "label": "App.net", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 167.5l64.9 98.8H183.1l64.9-98.8zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-99.8 82.7L248 115.5 99.8 338.7h30.4l33.6-51.7h168.6l33.6 51.7h30.2z" - } - }, - "free": [ - "brands" - ] - }, - "adversal": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f36a", - "label": "Adversal", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M482.1 32H28.7C5.8 32 0 37.9 0 60.9v390.2C0 474.4 5.8 480 28.7 480h453.4c24.4 0 29.9-5.2 29.9-29.7V62.2c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4 .4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9H52.4c-7.4 0-18.2 4.8-17.8-10.7 .4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5v291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5v-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6 .4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1 .2-.1 .3-.1 .5zm-51.5 232.3c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2 .4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zm-294.8 35.3c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z" - } - }, - "free": [ - "brands" - ] - }, - "affiliatetheme": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f36b", - "label": "affiliatetheme", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1c51.3-70.9 116.6-110.8 145.7-89.2 29.1 21.6 11.1 96.6-40.2 167.5zm351.2-57.3C437.1 303.5 319 367.8 246.4 323.7c-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9 .1-8.5-.3-16.8-1-25z" - } - }, - "free": [ - "brands" - ] - }, - "airbnb": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f834", - "label": "Airbnb", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 373.1c-25.24-31.67-40.08-59.43-45-83.18-22.55-88 112.6-88 90.06 0-5.45 24.25-20.29 52-45 83.18zm138.1 73.23c-42.06 18.31-83.67-10.88-119.3-50.47 103.9-130.1 46.11-200-18.85-200-54.92 0-85.16 46.51-73.28 100.5 6.93 29.19 25.23 62.39 54.43 99.5-32.53 36.05-60.55 52.69-85.15 54.92-50 7.43-89.11-41.06-71.3-91.09 15.1-39.16 111.7-231.2 115.9-241.6 15.75-30.07 25.56-57.4 59.38-57.4 32.34 0 43.4 25.94 60.37 59.87 36 70.62 89.35 177.5 114.8 239.1 13.17 33.07-1.37 71.29-37.01 86.64zm47-136.1C280.3 35.93 273.1 32 224 32c-45.52 0-64.87 31.67-84.66 72.79C33.18 317.1 22.89 347.2 22 349.8-3.22 419.1 48.74 480 111.6 480c21.71 0 60.61-6.06 112.4-62.4 58.68 63.78 101.3 62.4 112.4 62.4 62.89 .05 114.8-60.86 89.61-130.2 .02-3.89-16.82-38.9-16.82-39.58z" - } - }, - "free": [ - "brands" - ] - }, - "algolia": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f36c", - "label": "Algolia", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M229.3 182.6c-49.3 0-89.2 39.9-89.2 89.2 0 49.3 39.9 89.2 89.2 89.2s89.2-39.9 89.2-89.2c0-49.3-40-89.2-89.2-89.2zm62.7 56.6l-58.9 30.6c-1.8 .9-3.8-.4-3.8-2.3V201c0-1.5 1.3-2.7 2.7-2.6 26.2 1 48.9 15.7 61.1 37.1 .7 1.3 .2 3-1.1 3.7zM389.1 32H58.9C26.4 32 0 58.4 0 90.9V421c0 32.6 26.4 59 58.9 59H389c32.6 0 58.9-26.4 58.9-58.9V90.9C448 58.4 421.6 32 389.1 32zm-202.6 84.7c0-10.8 8.7-19.5 19.5-19.5h45.3c10.8 0 19.5 8.7 19.5 19.5v15.4c0 1.8-1.7 3-3.3 2.5-12.3-3.4-25.1-5.1-38.1-5.1-13.5 0-26.7 1.8-39.4 5.5-1.7 .5-3.4-.8-3.4-2.5v-15.8zm-84.4 37l9.2-9.2c7.6-7.6 19.9-7.6 27.5 0l7.7 7.7c1.1 1.1 1 3-.3 4-6.2 4.5-12.1 9.4-17.6 14.9-5.4 5.4-10.4 11.3-14.8 17.4-1 1.3-2.9 1.5-4 .3l-7.7-7.7c-7.6-7.5-7.6-19.8 0-27.4zm127.2 244.8c-70 0-126.6-56.7-126.6-126.6s56.7-126.6 126.6-126.6c70 0 126.6 56.6 126.6 126.6 0 69.8-56.7 126.6-126.6 126.6z" - } - }, - "free": [ - "brands" - ] - }, - "align-center": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f037", - "aliases": { - "unicodes": { - "secondary": [ - "10f037" - ] - } - }, - "label": "align-center", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573163, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M320 96H128C110.3 96 96 81.67 96 64C96 46.33 110.3 32 128 32H320C337.7 32 352 46.33 352 64C352 81.67 337.7 96 320 96zM416 224H32C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H416C433.7 160 448 174.3 448 192C448 209.7 433.7 224 416 224zM0 448C0 430.3 14.33 416 32 416H416C433.7 416 448 430.3 448 448C448 465.7 433.7 480 416 480H32C14.33 480 0 465.7 0 448zM320 352H128C110.3 352 96 337.7 96 320C96 302.3 110.3 288 128 288H320C337.7 288 352 302.3 352 320C352 337.7 337.7 352 320 352z" - } - }, - "free": [ - "solid" - ] - }, - "align-justify": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f039", - "aliases": { - "unicodes": { - "secondary": [ - "10f039" - ] - } - }, - "label": "align-justify", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573163, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96zM416 352H32C14.33 352 0 337.7 0 320C0 302.3 14.33 288 32 288H416C433.7 288 448 302.3 448 320C448 337.7 433.7 352 416 352zM0 192C0 174.3 14.33 160 32 160H416C433.7 160 448 174.3 448 192C448 209.7 433.7 224 416 224H32C14.33 224 0 209.7 0 192zM416 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H416C433.7 416 448 430.3 448 448C448 465.7 433.7 480 416 480z" - } - }, - "free": [ - "solid" - ] - }, - "align-left": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f036", - "aliases": { - "unicodes": { - "secondary": [ - "10f036" - ] - } - }, - "label": "align-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573163, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M256 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H256C273.7 32 288 46.33 288 64C288 81.67 273.7 96 256 96zM256 352H32C14.33 352 0 337.7 0 320C0 302.3 14.33 288 32 288H256C273.7 288 288 302.3 288 320C288 337.7 273.7 352 256 352zM0 192C0 174.3 14.33 160 32 160H416C433.7 160 448 174.3 448 192C448 209.7 433.7 224 416 224H32C14.33 224 0 209.7 0 192zM416 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H416C433.7 416 448 430.3 448 448C448 465.7 433.7 480 416 480z" - } - }, - "free": [ - "solid" - ] - }, - "align-right": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f038", - "aliases": { - "unicodes": { - "secondary": [ - "10f038" - ] - } - }, - "label": "align-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573163, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 96H192C174.3 96 160 81.67 160 64C160 46.33 174.3 32 192 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96zM416 352H192C174.3 352 160 337.7 160 320C160 302.3 174.3 288 192 288H416C433.7 288 448 302.3 448 320C448 337.7 433.7 352 416 352zM0 192C0 174.3 14.33 160 32 160H416C433.7 160 448 174.3 448 192C448 209.7 433.7 224 416 224H32C14.33 224 0 209.7 0 192zM416 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H416C433.7 416 448 430.3 448 448C448 465.7 433.7 480 416 480z" - } - }, - "free": [ - "solid" - ] - }, - "alipay": { - "changes": [ - "5.3.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f642", - "label": "Alipay", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M377.7 32H70.26C31.41 32 0 63.41 0 102.3v307.5C0 448.6 31.41 480 70.26 480h307.5c38.52 0 69.76-31.08 70.26-69.6-45.96-25.62-110.6-60.34-171.6-88.44-32.07 43.97-84.14 81-148.6 81-70.59 0-93.73-45.3-97.04-76.37-3.97-39.01 14.88-81.5 99.52-81.5 35.38 0 79.35 10.25 127.1 24.96 16.53-30.09 26.45-60.34 26.45-60.34h-178.2v-16.7h92.08v-31.24H88.28v-19.01h109.4V92.34h50.92v50.42h109.4v19.01H248.6v31.24h88.77s-15.21 46.62-38.35 90.92c48.93 16.7 100 36.04 148.6 52.74V102.3C447.8 63.57 416.4 32 377.7 32zM47.28 322.1c.99 20.17 10.25 53.73 69.93 53.73 52.07 0 92.58-39.68 117.9-72.9-44.63-18.68-84.48-31.41-109.4-31.41-67.45 0-79.35 33.06-78.36 50.58z" - } - }, - "free": [ - "brands" - ] - }, - "amazon": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f270", - "label": "Amazon", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M257.2 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56S341 288.9 341 261.4V114.3C341 89 316.5 32 228.7 32 140.7 32 94 87 94 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8v40.6zm136 163.5c-7.7 10-70 67-174.5 67S34.2 408.5 9.7 379c-6.8-7.7 1-11.3 5.5-8.3C88.5 415.2 203 488.5 387.7 401c7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z" - } - }, - "free": [ - "brands" - ] - }, - "amazon-pay": { - "changes": [ - "5.0.2", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f42c", - "label": "Amazon Pay", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572469, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7a595.9 595.9 0 0 0 127.4 46.3 616.6 616.6 0 0 0 63.2 11.8 603.3 603.3 0 0 0 95 5.2c17.4-.4 34.8-1.8 52.1-3.8a603.7 603.7 0 0 0 163.3-42.8c2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9a70 70 0 0 1 -9.6 7.4c-30.7 21.1-64.2 36.4-99.6 47.9a473.3 473.3 0 0 1 -75.1 17.6 431 431 0 0 1 -53.2 4.8 21.3 21.3 0 0 0 -2.5 .3H308a21.3 21.3 0 0 0 -2.5-.3c-3.6-.2-7.2-.3-10.7-.4a426.3 426.3 0 0 1 -50.4-5.3A448.4 448.4 0 0 1 164 420a443.3 443.3 0 0 1 -145.6-87c-1.8-1.6-3-3.8-4.4-5.7zM172 65.1l-4.3 .6a80.92 80.92 0 0 0 -38 15.1c-2.4 1.7-4.6 3.5-7.1 5.4a4.29 4.29 0 0 1 -.4-1.4c-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6h-11.5c-6.9 0-8.2 1.3-8.2 8.2v209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1 .1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3v-72.4c1.1 .9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1 .5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107a3.48 3.48 0 0 1 1.7-3.3c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9a3.57 3.57 0 0 1 -1.7-3.3c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zm205.7-41.9c-1 .1-2 .3-2.9 .4a148 148 0 0 0 -28.9 4.1c-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7 .1 3.3-.1 6.6 0 9.9 .1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4 .3 8.3 .2 16.6 .3 24.9a7.84 7.84 0 0 1 -.2 1.4c-.5-.1-.9 0-1.3-.1a180.6 180.6 0 0 0 -32-4.9c-11.3-.6-22.5 .1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4a7.36 7.36 0 0 1 1.6-1.1c.6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4 .1 10.9 .1 16.3 0a4.84 4.84 0 0 0 4.8-4.7 26.2 26.2 0 0 0 .1-2.8v-106a80 80 0 0 0 -.9-12.9c-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9 .1-7.9 .1-11.9 .1zm35 127.7a3.33 3.33 0 0 1 -1.5 3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7 .6-11.4 .4-16.8-1.8a20.08 20.08 0 0 1 -12.4-13.3 32.9 32.9 0 0 1 -.1-19.4c2.5-8.3 8.4-13 16.4-15.6a61.33 61.33 0 0 1 24.8-2.2c8.4 .7 16.6 2.3 25 3.4 1.6 .2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zm259.9 129.4c-1-5-4.8-6.9-9.1-8.3a88.42 88.42 0 0 0 -21-3.9 147.3 147.3 0 0 0 -39.2 1.9c-14.3 2.7-27.9 7.3-40 15.6a13.75 13.75 0 0 0 -3.7 3.5 5.11 5.11 0 0 0 -.5 4c.4 1.5 2.1 1.9 3.6 1.8a16.2 16.2 0 0 0 2.2-.1c7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9a71.64 71.64 0 0 1 14.4 2.7c5.1 1.4 7.4 5.2 7.6 10.4 .4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1a17.6 17.6 0 0 0 -1 3c-.5 2.9 1.2 4.8 4.1 4.1a10.56 10.56 0 0 0 4.8-2.5 145.9 145.9 0 0 0 12.7-13.4c12.8-16.4 20.3-35.3 24.7-55.6 .8-3.6 1.4-7.3 2.1-10.9v-17.3zM493.1 199q-19.35-53.55-38.7-107.2c-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5a43.1 43.1 0 0 0 1.9 6.1q29.4 72.75 59.1 145.5c1.7 4.1 2.1 7.6 .2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3a42.13 42.13 0 0 1 -15.4 1.1c-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8q-.15 5 0 9.9c.1 5.5 2 8 7.4 8.9a108.2 108.2 0 0 0 16.9 2c17.1 .4 30.7-6.5 39.5-21.4a131.6 131.6 0 0 0 9.2-18.4q35.55-89.7 70.6-179.6a26.62 26.62 0 0 0 1.6-5.5c.4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0a7.54 7.54 0 0 0 -7.7 5.2c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z" - } - }, - "free": [ - "brands" - ] - }, - "amilia": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f36d", - "label": "Amilia", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M240.1 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1v38.5C203 227.7 78.2 251 46.7 264.2 11.2 280.5 16.3 357.7 16.3 376s15.2 104 124.9 104c47.8 0 113.7-20.7 153.3-42.1v25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5 .3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1V168c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5z" - } - }, - "free": [ - "brands" - ] - }, - "anchor": { - "changes": [ - "3.1.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f13d", - "aliases": { - "unicodes": { - "composite": [ - "2693" - ], - "secondary": [ - "10f13d" - ] - } - }, - "label": "Anchor", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M352 176C369.7 176 384 190.3 384 208C384 225.7 369.7 240 352 240H320V448H368C421 448 464 405 464 352V345.9L456.1 352.1C447.6 362.3 432.4 362.3 423 352.1C413.7 343.6 413.7 328.4 423 319L479 263C488.4 253.7 503.6 253.7 512.1 263L568.1 319C578.3 328.4 578.3 343.6 568.1 352.1C559.6 362.3 544.4 362.3 535 352.1L528 345.9V352C528 440.4 456.4 512 368 512H208C119.6 512 48 440.4 48 352V345.9L40.97 352.1C31.6 362.3 16.4 362.3 7.029 352.1C-2.343 343.6-2.343 328.4 7.029 319L63.03 263C72.4 253.7 87.6 253.7 96.97 263L152.1 319C162.3 328.4 162.3 343.6 152.1 352.1C143.6 362.3 128.4 362.3 119 352.1L112 345.9V352C112 405 154.1 448 208 448H256V240H224C206.3 240 192 225.7 192 208C192 190.3 206.3 176 224 176H234.9C209 158.8 192 129.4 192 96C192 42.98 234.1 0 288 0C341 0 384 42.98 384 96C384 129.4 366.1 158.8 341.1 176H352zM288 128C305.7 128 320 113.7 320 96C320 78.33 305.7 64 288 64C270.3 64 256 78.33 256 96C256 113.7 270.3 128 288 128z" - } - }, - "free": [ - "solid" - ] - }, - "anchor-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4aa", - "label": "Anchor Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573163, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 176C369.7 176 384 190.3 384 208C384 225.7 369.7 240 352 240H319.1V448H339.2C351.8 472.7 370 493.1 392.2 510.2C384.3 511.4 376.2 512 368 512H208C119.6 512 48 440.4 48 352V345.9L40.97 352.1C31.6 362.3 16.4 362.3 7.029 352.1C-2.343 343.6-2.343 328.4 7.029 319L63.03 263C72.4 253.7 87.6 253.7 96.97 263L152.1 319C162.3 328.4 162.3 343.6 152.1 352.1C143.6 362.3 128.4 362.3 119 352.1L112 345.9V352C112 405 154.1 448 208 448H256V240H224C206.3 240 192 225.7 192 208C192 190.3 206.3 176 224 176H234.9C209 158.8 192 129.4 192 96C192 42.98 234.1 0 288 0C341 0 384 42.98 384 96C384 129.4 366.1 158.8 341.1 176H352zM287.1 128C305.7 128 319.1 113.7 319.1 96C319.1 78.33 305.7 64 287.1 64C270.3 64 255.1 78.33 255.1 96C255.1 113.7 270.3 128 287.1 128zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM540.7 324.7L480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "anchor-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ab", - "label": "Anchor Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573163, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 176C369.7 176 384 190.3 384 208C384 225.7 369.7 240 352 240H319.1V448H339.2C351.8 472.7 370 493.1 392.2 510.2C384.3 511.4 376.2 512 368 512H208C119.6 512 48 440.4 48 352V345.9L40.97 352.1C31.6 362.3 16.4 362.3 7.029 352.1C-2.343 343.6-2.343 328.4 7.029 319L63.03 263C72.4 253.7 87.6 253.7 96.97 263L152.1 319C162.3 328.4 162.3 343.6 152.1 352.1C143.6 362.3 128.4 362.3 119 352.1L112 345.9V352C112 405 154.1 448 208 448H256V240H224C206.3 240 192 225.7 192 208C192 190.3 206.3 176 224 176H234.9C209 158.8 192 129.4 192 96C192 42.98 234.1 0 288 0C341 0 384 42.98 384 96C384 129.4 366.1 158.8 341.1 176H352zM287.1 128C305.7 128 319.1 113.7 319.1 96C319.1 78.33 305.7 64 287.1 64C270.3 64 255.1 78.33 255.1 96C255.1 113.7 270.3 128 287.1 128zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "anchor-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ac", - "label": "Anchor Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573163, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 176C369.7 176 384 190.3 384 208C384 225.7 369.7 240 352 240H319.1V448H339.2C351.8 472.7 370 493.1 392.2 510.2C384.3 511.4 376.2 512 368 512H208C119.6 512 48 440.4 48 352V345.9L40.97 352.1C31.6 362.3 16.4 362.3 7.029 352.1C-2.343 343.6-2.343 328.4 7.029 319L63.03 263C72.4 253.7 87.6 253.7 96.97 263L152.1 319C162.3 328.4 162.3 343.6 152.1 352.1C143.6 362.3 128.4 362.3 119 352.1L112 345.9V352C112 405 154.1 448 208 448H256V240H224C206.3 240 192 225.7 192 208C192 190.3 206.3 176 224 176H234.9C209 158.8 192 129.4 192 96C192 42.98 234.1 0 288 0C341 0 384 42.98 384 96C384 129.4 366.1 158.8 341.1 176H352zM287.1 128C305.7 128 319.1 113.7 319.1 96C319.1 78.33 305.7 64 287.1 64C270.3 64 255.1 78.33 255.1 96C255.1 113.7 270.3 128 287.1 128zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368L555.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "anchor-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ad", - "label": "Anchor Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 176C369.7 176 384 190.3 384 208C384 225.7 369.7 240 352 240H319.1V448H368C373.4 448 378.8 447.5 384 446.7V480C384 490.1 386.7 501.3 391.6 510.3C383.9 511.4 376 512 368 512H208C119.6 512 48 440.4 48 352V345.9L40.97 352.1C31.6 362.3 16.4 362.3 7.029 352.1C-2.343 343.6-2.343 328.4 7.029 319L63.03 263C72.4 253.7 87.6 253.7 96.97 263L152.1 319C162.3 328.4 162.3 343.6 152.1 352.1C143.6 362.3 128.4 362.3 119 352.1L112 345.9V352C112 405 154.1 448 208 448H256V240H224C206.3 240 192 225.7 192 208C192 190.3 206.3 176 224 176H234.9C209 158.8 192 129.4 192 96C192 42.98 234.1 0 288 0C341 0 384 42.98 384 96C384 129.4 366.1 158.8 341.1 176H352zM287.1 128C305.7 128 319.1 113.7 319.1 96C319.1 78.33 305.7 64 287.1 64C270.3 64 255.1 78.33 255.1 96C255.1 113.7 270.3 128 287.1 128zM528 192C572.2 192 608 227.8 608 272V320C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 320 448 320V272C448 227.8 483.8 192 528 192zM528 240C510.3 240 496 254.3 496 272V320H560V272C560 254.3 545.7 240 528 240z" - } - }, - "free": [ - "solid" - ] - }, - "android": { - "changes": [ - "3.2.0", - "5.0.0", - "5.12.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f17b", - "label": "Android", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M420.5 301.9a24 24 0 1 1 24-24 24 24 0 0 1 -24 24m-265.1 0a24 24 0 1 1 24-24 24 24 0 0 1 -24 24m273.7-144.5 47.94-83a10 10 0 1 0 -17.27-10h0l-48.54 84.07a301.3 301.3 0 0 0 -246.6 0L116.2 64.45a10 10 0 1 0 -17.27 10h0l47.94 83C64.53 202.2 8.24 285.5 0 384H576c-8.24-98.45-64.54-181.8-146.9-226.6" - } - }, - "free": [ - "brands" - ] - }, - "angellist": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f209", - "label": "AngelList", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M347.1 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1C242 144 196.6 0 156.6 0c-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7C46 435.6 114.4 512 210.6 512c118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM311.7 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM142.3 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM140 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7 .1-7.7 12.7-21.1 20.4-21.1zm184.3 186.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3 .3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7 .1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z" - } - }, - "free": [ - "brands" - ] - }, - "angle-down": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f107", - "aliases": { - "unicodes": { - "composite": [ - "2304" - ], - "secondary": [ - "10f107" - ] - } - }, - "label": "angle-down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M192 384c-8.188 0-16.38-3.125-22.62-9.375l-160-160c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L192 306.8l137.4-137.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-160 160C208.4 380.9 200.2 384 192 384z" - } - }, - "free": [ - "solid" - ] - }, - "angle-left": { - "changes": [ - "3.0.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f104", - "aliases": { - "unicodes": { - "composite": [ - "2039" - ], - "secondary": [ - "10f104" - ] - } - }, - "label": "angle-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M192 448c-8.188 0-16.38-3.125-22.62-9.375l-160-160c-12.5-12.5-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l137.4 137.4c12.5 12.5 12.5 32.75 0 45.25C208.4 444.9 200.2 448 192 448z" - } - }, - "free": [ - "solid" - ] - }, - "angle-right": { - "changes": [ - "3.0.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f105", - "aliases": { - "unicodes": { - "composite": [ - "203a" - ], - "secondary": [ - "10f105" - ] - } - }, - "label": "angle-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M64 448c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L178.8 256L41.38 118.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160c12.5 12.5 12.5 32.75 0 45.25l-160 160C80.38 444.9 72.19 448 64 448z" - } - }, - "free": [ - "solid" - ] - }, - "angle-up": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f106", - "aliases": { - "unicodes": { - "composite": [ - "2303" - ], - "secondary": [ - "10f106" - ] - } - }, - "label": "angle-up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 352c-8.188 0-16.38-3.125-22.62-9.375L192 205.3l-137.4 137.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0l160 160c12.5 12.5 12.5 32.75 0 45.25C368.4 348.9 360.2 352 352 352z" - } - }, - "free": [ - "solid" - ] - }, - "angles-down": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f103", - "aliases": { - "names": [ - "angle-double-down" - ], - "unicodes": { - "secondary": [ - "10f103" - ] - } - }, - "label": "Angles down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M169.4 278.6C175.6 284.9 183.8 288 192 288s16.38-3.125 22.62-9.375l160-160c12.5-12.5 12.5-32.75 0-45.25s-32.75-12.5-45.25 0L192 210.8L54.63 73.38c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25L169.4 278.6zM329.4 265.4L192 402.8L54.63 265.4c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25l160 160C175.6 476.9 183.8 480 192 480s16.38-3.125 22.62-9.375l160-160c12.5-12.5 12.5-32.75 0-45.25S341.9 252.9 329.4 265.4z" - } - }, - "free": [ - "solid" - ] - }, - "angles-left": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f100", - "aliases": { - "names": [ - "angle-double-left" - ], - "unicodes": { - "composite": [ - "ab" - ], - "secondary": [ - "10f100" - ] - } - }, - "label": "Angles left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M77.25 256l137.4-137.4c12.5-12.5 12.5-32.75 0-45.25s-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25l160 160C175.6 444.9 183.8 448 192 448s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25L77.25 256zM269.3 256l137.4-137.4c12.5-12.5 12.5-32.75 0-45.25s-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25l160 160C367.6 444.9 375.8 448 384 448s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25L269.3 256z" - } - }, - "free": [ - "solid" - ] - }, - "angles-right": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f101", - "aliases": { - "names": [ - "angle-double-right" - ], - "unicodes": { - "composite": [ - "bb" - ], - "secondary": [ - "10f101" - ] - } - }, - "label": "Angles right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M246.6 233.4l-160-160c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25L178.8 256l-137.4 137.4c-12.5 12.5-12.5 32.75 0 45.25C47.63 444.9 55.81 448 64 448s16.38-3.125 22.62-9.375l160-160C259.1 266.1 259.1 245.9 246.6 233.4zM438.6 233.4l-160-160c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25L370.8 256l-137.4 137.4c-12.5 12.5-12.5 32.75 0 45.25C239.6 444.9 247.8 448 256 448s16.38-3.125 22.62-9.375l160-160C451.1 266.1 451.1 245.9 438.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "angles-up": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f102", - "aliases": { - "names": [ - "angle-double-up" - ], - "unicodes": { - "secondary": [ - "10f102" - ] - } - }, - "label": "Angles up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M54.63 246.6L192 109.3l137.4 137.4C335.6 252.9 343.8 256 352 256s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25l-160-160c-12.5-12.5-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25S42.13 259.1 54.63 246.6zM214.6 233.4c-12.5-12.5-32.75-12.5-45.25 0l-160 160c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0L192 301.3l137.4 137.4C335.6 444.9 343.8 448 352 448s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25L214.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "angrycreative": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f36e", - "label": "Angry Creative", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2L527 365.2l-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8L468 249.6l-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8C23.9 399.9-3 377 .3 339.7c2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6L370.4 369l8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7C84.6 307.2 76.9 303 65 303.8c-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4l-2.7 28.5c14.2-.9 27.5-2.1 28.8-16.1zm21.1 70.8l5.8-60c-5 13.5-14.7 21.1-27.9 26.6l22.1 33.4zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zm-170.1-74.6l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8 .3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1 .6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z" - } - }, - "free": [ - "brands" - ] - }, - "angular": { - "changes": [ - "5.0.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f420", - "label": "Angular", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M185.7 268.1h76.2l-38.1-91.6-38.1 91.6zM223.8 32L16 106.4l31.8 275.7 176 97.9 176-97.9 31.8-275.7zM354 373.8h-48.6l-26.2-65.4H168.6l-26.2 65.4H93.7L223.8 81.5z" - } - }, - "free": [ - "brands" - ] - }, - "ankh": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f644", - "aliases": { - "unicodes": { - "composite": [ - "2625" - ], - "secondary": [ - "10f644" - ] - } - }, - "label": "Ankh", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573164, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M296 256h-44.63C272.5 222 288 181.6 288 144C288 55.62 230.8 0 160 0S32 55.62 32 144C32 181.6 47.5 222 68.63 256H24C10.75 256 0 266.8 0 280v32c0 13.25 10.75 24 24 24h96v152C120 501.2 130.8 512 144 512h32c13.25 0 24-10.75 24-24V336h96c13.25 0 24-10.75 24-24v-32C320 266.8 309.2 256 296 256zM160 80c29.62 0 48 24.5 48 64c0 34.62-27.12 78.12-48 100.9C139.1 222.1 112 178.6 112 144C112 104.5 130.4 80 160 80z" - } - }, - "free": [ - "solid" - ] - }, - "app-store": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f36f", - "label": "App Store", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5 9.8 5.6 13.1 18.1 7.5 27.9l-87.5 151.5h63.3c20.5 0 32 24.1 23.1 40.8H113.8c-11.3 0-20.4-9.1-20.4-20.4 0-11.3 9.1-20.4 20.4-20.4h52l66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5-9.8-5.6-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7h53.1c11.3 0 20.4 9.1 20.4 20.4 0 11.3-9.1 20.4-20.4 20.4h-29.5l19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm216 248c0 118.7-96.1 216-216 216-118.7 0-216-96.1-216-216 0-118.7 96.1-216 216-216 118.7 0 216 96.1 216 216z" - } - }, - "free": [ - "brands" - ] - }, - "app-store-ios": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f370", - "label": "iOS App Store", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9H84c-11 0-20-9-20-20s9-20 20-20h51l65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6h62.1c20.2 0 31.5 23.7 22.7 40zm98.1 0h-29l19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102h52c11 0 20 9 20 20 0 11.1-9 20-20 20z" - } - }, - "free": [ - "brands" - ] - }, - "apper": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f371", - "label": "Apper Systems AB", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M42.1 239.1c22.2 0 29 2.8 33.5 14.6h.8v-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8H4.8c.3-13.9 1.5-19.1 5.8-24.4C17.9 195 29.5 192 56.7 192c33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7v76.3H76.3l1.3-19.1h-1c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zm77.8-94.9h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3H137v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7h38.3l-1.5 20.6h.8c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2h-.8v70.3h-39.5v-169zm80.9 60.7c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7v11.1h-75.3c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9h37.5v2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3h38.3zm55.6-45.3h38.3l-1.8 19.9h.7c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3h-35c.3-1.8 .3-3.3 .3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3v68h-38.3V192.3z" - } - }, - "free": [ - "brands" - ] - }, - "apple": { - "changes": [ - "3.2.0", - "5.0.0", - "5.0.7", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f179", - "label": "Apple", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" - } - }, - "free": [ - "brands" - ] - }, - "apple-pay": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f415", - "label": "Apple Pay", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8m10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9 .3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1m100.4-36.2v194.9h30.3v-66.6h41.9c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64h-73.2zm30.3 25.5h34.9c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8h-34.8V165zm162.2 170.9c19 0 36.6-9.6 44.6-24.9h.6v23.4h28v-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6h27.3c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5v10.8l-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5 .1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1v11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4L640 193h-30.8l-35.6 115.1h-.6L537.4 193h-31.6L557 334.9l-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5v23.4c1.8 .4 9.3 .7 11.6 .7z" - } - }, - "free": [ - "brands" - ] - }, - "apple-whole": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5d1", - "aliases": { - "names": [ - "apple-alt" - ], - "unicodes": { - "composite": [ - "1f34f", - "1f34e" - ], - "secondary": [ - "10f5d1" - ] - } - }, - "label": "Apple whole", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573165, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M336 128c-32 0-80.02 16.03-112 32.03c-32.01-16-79.1-32.02-111.1-32.03C32 128 .4134 210.5 .0033 288c-.5313 99.97 63.99 224 159.1 224c32 0 48-16 64-16c16 0 32 16 64 16c96 0 160.4-122.8 159.1-224C447.7 211.6 416 128 336 128zM320 32V0h-32C243.8 0 208 35.82 208 80v32h32C284.2 112 320 76.18 320 32z" - } - }, - "free": [ - "solid" - ] - }, - "archway": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f557", - "aliases": { - "unicodes": { - "secondary": [ - "10f557" - ] - } - }, - "label": "Archway", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573165, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 32C497.7 32 512 46.33 512 64C512 81.67 497.7 96 480 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H480zM32 128H480V416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H352V352C352 298.1 309 256 256 256C202.1 256 160 298.1 160 352V480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416V128z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f063", - "aliases": { - "unicodes": { - "composite": [ - "2193" - ], - "secondary": [ - "10f063" - ] - } - }, - "label": "Arrow down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573167, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M374.6 310.6l-160 160C208.4 476.9 200.2 480 192 480s-16.38-3.125-22.62-9.375l-160-160c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 370.8V64c0-17.69 14.33-31.1 31.1-31.1S224 46.31 224 64v306.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0S387.1 298.1 374.6 310.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-1-9": { - "changes": [ - "3.2.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f162", - "aliases": { - "names": [ - "sort-numeric-asc", - "sort-numeric-down" - ], - "unicodes": { - "secondary": [ - "10f162" - ] - } - }, - "label": "Arrow down 1 9", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573165, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 192c0 17.69 14.31 31.1 32 31.1L416 224c17.69 0 32-14.31 32-32s-14.31-32-32-32V63.98c0-11.19-5.844-21.53-15.38-27.34c-9.531-5.781-21.41-6.188-31.34-1.062l-32 16.59c-15.69 8.125-21.81 27.44-13.69 43.13C329.3 106.3 340.4 112.6 352 112.6V160C334.3 160 320 174.3 320 192zM392 255.6c-48.6 0-88 39.4-88 88c0 36.44 22.15 67.7 53.71 81.07l-7.682 8.004c-10.72 11.16-10.34 28.88 .8125 39.56C356.3 477.4 363.3 480 370.2 480c7.344 0 14.72-2.875 20.19-8.625c69.61-72.53 89.6-85.39 89.6-127.8C480 294.1 440.6 255.6 392 255.6zM392 367.6c-13.23 0-24-10.77-24-24s10.77-24 24-24s24 10.77 24 24S405.2 367.6 392 367.6zM216 320.3c-8.672 0-17.3 3.5-23.61 10.38L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-11.95-13.01-32.2-13.91-45.22-1.969c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C231.5 323.1 223.7 320.3 216 320.3z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-9-1": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f886", - "aliases": { - "names": [ - "sort-numeric-desc", - "sort-numeric-down-alt" - ], - "unicodes": { - "secondary": [ - "10f886" - ] - } - }, - "label": "Arrow down 9 1", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573165, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M216 320.3c-8.672 0-17.3 3.5-23.61 10.38L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-11.95-13.01-32.2-13.91-45.22-1.969c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C231.5 323.1 223.7 320.3 216 320.3zM357.7 201.1l-7.682 8.004c-10.72 11.16-10.34 28.88 .8125 39.56c5.406 5.219 12.41 7.812 19.38 7.812c7.344 0 14.72-2.875 20.19-8.625c69.61-72.53 89.6-85.39 89.6-127.8c0-48.6-39.4-88-88-88s-88 39.4-88 88C303.1 156.4 326.1 187.7 357.7 201.1zM392 96c13.23 0 24 10.77 24 24S405.2 144 392 144S368 133.2 368 120S378.8 96 392 96zM416 416.4v-96.02c0-11.19-5.844-21.53-15.38-27.34c-9.531-5.781-21.41-6.188-31.34-1.062l-32 16.59c-15.69 8.125-21.81 27.44-13.69 43.13C329.3 362.8 340.4 369 352 369v47.41c-17.69 0-32 14.31-32 32s14.31 32 32 32h64c17.69 0 32-14.31 32-32S433.7 416.4 416 416.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-a-z": { - "changes": [ - "3.2.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f15d", - "aliases": { - "names": [ - "sort-alpha-asc", - "sort-alpha-down" - ], - "unicodes": { - "secondary": [ - "10f15d" - ] - } - }, - "label": "Arrow down a z", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573165, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M239.6 373.1c11.94-13.05 11.06-33.31-1.969-45.27c-13.55-12.42-33.76-10.52-45.22 1.973L160 366.1V64.03c0-17.7-14.33-32.03-32-32.03S96 46.33 96 64.03v302l-32.4-35.39C51.64 317.7 31.39 316.7 18.38 328.7c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0L239.6 373.1zM448 416h-50.75l73.38-73.38c9.156-9.156 11.89-22.91 6.938-34.88S460.9 288 447.1 288H319.1C302.3 288 288 302.3 288 320s14.33 32 32 32h50.75l-73.38 73.38c-9.156 9.156-11.89 22.91-6.938 34.88S307.1 480 319.1 480h127.1C465.7 480 480 465.7 480 448S465.7 416 448 416zM492.6 209.3l-79.99-160.1c-10.84-21.81-46.4-21.81-57.24 0L275.4 209.3c-7.906 15.91-1.5 35.24 14.31 43.19c15.87 7.922 35.04 1.477 42.93-14.4l7.154-14.39h88.43l7.154 14.39c6.174 12.43 23.97 23.87 42.93 14.4C494.1 244.6 500.5 225.2 492.6 209.3zM367.8 167.4L384 134.7l16.22 32.63H367.8z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-long": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f175", - "aliases": { - "names": [ - "long-arrow-down" - ], - "unicodes": { - "secondary": [ - "10f175" - ] - } - }, - "label": "Arrow down long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573166, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M9.375 329.4c12.51-12.51 32.76-12.49 45.25 0L128 402.8V32c0-17.69 14.31-32 32-32s32 14.31 32 32v370.8l73.38-73.38c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-128 128c-12.5 12.5-32.75 12.5-45.25 0l-128-128C-3.125 362.1-3.125 341.9 9.375 329.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-short-wide": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f884", - "aliases": { - "names": [ - "sort-amount-desc", - "sort-amount-down-alt" - ], - "unicodes": { - "secondary": [ - "10f884" - ] - } - }, - "label": "Arrow down short wide", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573166, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M320 224H416c17.67 0 32-14.33 32-32s-14.33-32-32-32h-95.1c-17.67 0-32 14.33-32 32S302.3 224 320 224zM320 352H480c17.67 0 32-14.33 32-32s-14.33-32-32-32h-159.1c-17.67 0-32 14.33-32 32S302.3 352 320 352zM320 96h32c17.67 0 31.1-14.33 31.1-32s-14.33-32-31.1-32h-32c-17.67 0-32 14.33-32 32S302.3 96 320 96zM544 416h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 416 544 416zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-up-across-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4af", - "label": "Arrow Down-up-across-line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573166, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M41.37 406.6C28.88 394.1 28.88 373.9 41.37 361.4C53.87 348.9 74.13 348.9 86.63 361.4L128 402.7V287.1H32C14.33 287.1 0 273.7 0 255.1C0 238.3 14.33 223.1 32 223.1H384V109.3L342.6 150.6C330.1 163.1 309.9 163.1 297.4 150.6C284.9 138.1 284.9 117.9 297.4 105.4L393.4 9.372C405.9-3.124 426.1-3.124 438.6 9.372L534.6 105.4C547.1 117.9 547.1 138.1 534.6 150.6C522.1 163.1 501.9 163.1 489.4 150.6L448 109.3V223.1H544C561.7 223.1 576 238.3 576 255.1C576 273.7 561.7 287.1 544 287.1H192V402.7L233.4 361.4C245.9 348.9 266.1 348.9 278.6 361.4C291.1 373.9 291.1 394.1 278.6 406.6L182.6 502.6C170.1 515.1 149.9 515.1 137.4 502.6L41.37 406.6zM128 63.1C128 46.33 142.3 31.1 160 31.1C177.7 31.1 192 46.33 192 63.1V191.1H128V63.1zM448 319.1V448C448 465.7 433.7 480 416 480C398.3 480 384 465.7 384 448V319.1H448z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-up-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4b0", - "label": "Arrow Down-up-lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573166, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M105.4 502.6L9.373 406.6C-3.124 394.1-3.124 373.9 9.373 361.4C21.87 348.9 42.13 348.9 54.63 361.4L96 402.7V287.1H32C14.33 287.1 0 273.7 0 255.1C0 238.3 14.33 223.1 32 223.1H288V109.3L246.6 150.6C234.1 163.1 213.9 163.1 201.4 150.6C188.9 138.1 188.9 117.9 201.4 105.4L297.4 9.372C303.4 3.371 311.5 0 320 0C328.5 0 336.6 3.372 342.6 9.372L438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6C426.1 163.1 405.9 163.1 393.4 150.6L352 109.3V223.1H426.8C419.9 238.5 416 254.8 416 271.1V287.1H160V402.7L201.4 361.4C213.9 348.9 234.1 348.9 246.6 361.4C259.1 373.9 259.1 394.1 246.6 406.6L150.6 502.6C138.1 515.1 117.9 515.1 105.4 502.6H105.4zM96 191.1V63.1C96 46.33 110.3 31.1 128 31.1C145.7 31.1 160 46.33 160 63.1V191.1H96zM352 319.1V448C352 465.7 337.7 480 320 480C302.3 480 288 465.7 288 448V319.1H352zM528 191.1C572.2 191.1 608 227.8 608 271.1V319.1C625.7 319.1 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 319.1 448 319.1V271.1C448 227.8 483.8 191.1 528 191.1zM528 239.1C510.3 239.1 496 254.3 496 271.1V319.1H560V271.1C560 254.3 545.7 239.1 528 239.1z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-wide-short": { - "changes": [ - "3.2.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f160", - "aliases": { - "names": [ - "sort-amount-asc", - "sort-amount-down" - ], - "unicodes": { - "secondary": [ - "10f160" - ] - } - }, - "label": "Arrow down wide short", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573166, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM192.4 330.7L160 366.1V64.03C160 46.33 145.7 32 128 32S96 46.33 96 64.03v302L63.6 330.7c-6.312-6.883-14.94-10.38-23.61-10.38c-7.719 0-15.47 2.781-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27l87.1 96.09c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27C224.6 316.8 204.4 317.7 192.4 330.7z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-down-z-a": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f881", - "aliases": { - "names": [ - "sort-alpha-desc", - "sort-alpha-down-alt" - ], - "unicodes": { - "secondary": [ - "10f881" - ] - } - }, - "label": "Arrow down z a", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573167, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M104.4 470.1c12.12 13.26 35.06 13.26 47.19 0l87.1-96.09c11.94-13.05 11.06-33.31-1.969-45.27c-13.02-11.95-33.27-11.04-45.22 1.973L160 366.1V64.03c0-17.7-14.33-32.03-32-32.03S96 46.33 96 64.03v302l-32.4-35.39c-6.312-6.883-14.94-10.39-23.61-10.39c-7.719 0-15.47 2.785-21.61 8.414c-13.03 11.95-13.9 32.22-1.969 45.27L104.4 470.1zM320 96h50.75l-73.38 73.38c-9.156 9.156-11.89 22.91-6.938 34.88s16.63 19.74 29.56 19.74h127.1C465.7 223.1 480 209.7 480 192s-14.33-32-32-32h-50.75l73.38-73.38c9.156-9.156 11.89-22.91 6.938-34.88S460.9 32 447.1 32h-127.1C302.3 32 288 46.31 288 64S302.3 96 320 96zM492.6 433.3l-79.99-160.1c-10.84-21.81-46.4-21.81-57.24 0l-79.99 160.1c-7.906 15.91-1.5 35.24 14.31 43.19c15.87 7.922 35.04 1.477 42.93-14.4l7.154-14.39h88.43l7.154 14.39c6.174 12.43 23.97 23.87 42.93 14.4C494.1 468.6 500.5 449.2 492.6 433.3zM367.8 391.4L384 358.7l16.22 32.63H367.8z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-left": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f060", - "aliases": { - "unicodes": { - "composite": [ - "2190" - ], - "secondary": [ - "10f060" - ] - } - }, - "label": "arrow-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573167, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M447.1 256C447.1 273.7 433.7 288 416 288H109.3l105.4 105.4c12.5 12.5 12.5 32.75 0 45.25C208.4 444.9 200.2 448 192 448s-16.38-3.125-22.62-9.375l-160-160c-12.5-12.5-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L109.3 224H416C433.7 224 447.1 238.3 447.1 256z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-left-long": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f177", - "aliases": { - "names": [ - "long-arrow-left" - ], - "unicodes": { - "secondary": [ - "10f177" - ] - } - }, - "label": "Arrow left long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573167, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M9.375 233.4l128-128c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L109.3 224H480c17.69 0 32 14.31 32 32s-14.31 32-32 32H109.3l73.38 73.38c12.5 12.5 12.5 32.75 0 45.25c-12.49 12.49-32.74 12.51-45.25 0l-128-128C-3.125 266.1-3.125 245.9 9.375 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-pointer": { - "changes": [ - "4.4.0", - "5.0.0", - "5.0.3", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f245", - "aliases": { - "names": [ - "mouse-pointer" - ], - "unicodes": { - "secondary": [ - "10f245" - ] - } - }, - "label": "Arrow pointer", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573167, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M23.19 32C28.86 32 34.34 34.08 38.59 37.86L312.6 281.4C317.3 285.6 320 291.6 320 297.9C320 310.1 310.1 320 297.9 320H179.8L236.6 433.7C244.5 449.5 238.1 468.7 222.3 476.6C206.5 484.5 187.3 478.1 179.4 462.3L121.2 346L38.58 440.5C34.4 445.3 28.36 448 22.01 448C9.855 448 0 438.1 0 425.1V55.18C0 42.38 10.38 32 23.18 32H23.19z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-right": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f061", - "aliases": { - "unicodes": { - "composite": [ - "2192" - ], - "secondary": [ - "10f061" - ] - } - }, - "label": "arrow right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M438.6 278.6l-160 160C272.4 444.9 264.2 448 256 448s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L338.8 288H32C14.33 288 .0016 273.7 .0016 256S14.33 224 32 224h306.8l-105.4-105.4c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l160 160C451.1 245.9 451.1 266.1 438.6 278.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-right-arrow-left": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ec", - "aliases": { - "names": [ - "exchange" - ], - "unicodes": { - "composite": [ - "21c4" - ], - "secondary": [ - "10f0ec" - ] - } - }, - "label": "Arrow right arrow left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573167, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 176h370.8l-57.38 57.38c-12.5 12.5-12.5 32.75 0 45.25C351.6 284.9 359.8 288 368 288s16.38-3.125 22.62-9.375l112-112c12.5-12.5 12.5-32.75 0-45.25l-112-112c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25L402.8 112H32c-17.69 0-32 14.31-32 32S14.31 176 32 176zM480 336H109.3l57.38-57.38c12.5-12.5 12.5-32.75 0-45.25s-32.75-12.5-45.25 0l-112 112c-12.5 12.5-12.5 32.75 0 45.25l112 112C127.6 508.9 135.8 512 144 512s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25L109.3 400H480c17.69 0 32-14.31 32-32S497.7 336 480 336z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-right-from-bracket": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f08b", - "aliases": { - "names": [ - "sign-out" - ], - "unicodes": { - "secondary": [ - "10f08b" - ] - } - }, - "label": "Arrow right from bracket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573167, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M160 416H96c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h64c17.67 0 32-14.33 32-32S177.7 32 160 32H96C42.98 32 0 74.98 0 128v256c0 53.02 42.98 96 96 96h64c17.67 0 32-14.33 32-32S177.7 416 160 416zM502.6 233.4l-128-128c-12.51-12.51-32.76-12.49-45.25 0c-12.5 12.5-12.5 32.75 0 45.25L402.8 224H192C174.3 224 160 238.3 160 256s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128C515.1 266.1 515.1 245.9 502.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-right-long": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f178", - "aliases": { - "names": [ - "long-arrow-right" - ], - "unicodes": { - "secondary": [ - "10f178" - ] - } - }, - "label": "Arrow right long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.6 278.6l-128 128c-12.51 12.51-32.76 12.49-45.25 0c-12.5-12.5-12.5-32.75 0-45.25L402.8 288H32C14.31 288 0 273.7 0 255.1S14.31 224 32 224h370.8l-73.38-73.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l128 128C515.1 245.9 515.1 266.1 502.6 278.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-right-to-bracket": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f090", - "aliases": { - "names": [ - "sign-in" - ], - "unicodes": { - "secondary": [ - "10f090" - ] - } - }, - "label": "Arrow right to bracket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c17.67 0 32 14.33 32 32v256c0 17.67-14.33 32-32 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c53.02 0 96-42.98 96-96V128C512 74.98 469 32 416 32zM342.6 233.4l-128-128c-12.51-12.51-32.76-12.49-45.25 0c-12.5 12.5-12.5 32.75 0 45.25L242.8 224H32C14.31 224 0 238.3 0 256s14.31 32 32 32h210.8l-73.38 73.38c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0l128-128C355.1 266.1 355.1 245.9 342.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-right-to-city": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4b3", - "label": "Arrow Right-to-city", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M288 48C288 21.49 309.5 0 336 0H432C458.5 0 480 21.49 480 48V192H520V120C520 106.7 530.7 96 544 96C557.3 96 568 106.7 568 120V192H592C618.5 192 640 213.5 640 240V464C640 490.5 618.5 512 592 512H336C309.5 512 288 490.5 288 464V48zM352 112C352 120.8 359.2 128 368 128H400C408.8 128 416 120.8 416 112V80C416 71.16 408.8 64 400 64H368C359.2 64 352 71.16 352 80V112zM368 160C359.2 160 352 167.2 352 176V208C352 216.8 359.2 224 368 224H400C408.8 224 416 216.8 416 208V176C416 167.2 408.8 160 400 160H368zM352 304C352 312.8 359.2 320 368 320H400C408.8 320 416 312.8 416 304V272C416 263.2 408.8 256 400 256H368C359.2 256 352 263.2 352 272V304zM528 256C519.2 256 512 263.2 512 272V304C512 312.8 519.2 320 528 320H560C568.8 320 576 312.8 576 304V272C576 263.2 568.8 256 560 256H528zM512 400C512 408.8 519.2 416 528 416H560C568.8 416 576 408.8 576 400V368C576 359.2 568.8 352 560 352H528C519.2 352 512 359.2 512 368V400zM246.6 233.4C259.1 245.9 259.1 266.1 246.6 278.6L166.6 358.6C154.1 371.1 133.9 371.1 121.4 358.6C108.9 346.1 108.9 325.9 121.4 313.4L146.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H146.7L121.4 198.6C108.9 186.1 108.9 165.9 121.4 153.4C133.9 140.9 154.1 140.9 166.6 153.4L246.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-rotate-left": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0e2", - "aliases": { - "names": [ - "arrow-left-rotate", - "arrow-rotate-back", - "arrow-rotate-backward", - "undo" - ], - "unicodes": { - "composite": [ - "21ba" - ], - "secondary": [ - "10f0e2" - ] - } - }, - "label": "Arrow Rotate Left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.86 0-95.19-15.58-134.2-44.86c-14.14-10.59-17-30.66-6.391-44.81c10.61-14.09 30.69-16.97 44.8-6.375c27.84 20.91 61 31.94 95.89 31.94C344.3 415.8 416 344.1 416 256s-71.67-159.8-159.8-159.8C205.9 96.22 158.6 120.3 128.6 160H192c17.67 0 32 14.31 32 32S209.7 224 192 224H48c-17.67 0-32-14.31-32-32V48c0-17.69 14.33-32 32-32s32 14.31 32 32v70.23C122.1 64.58 186.1 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-rotate-right": { - "changes": [ - "1.0.0", - "5.0.0", - "5.8.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f01e", - "aliases": { - "names": [ - "arrow-right-rotate", - "arrow-rotate-forward", - "redo" - ], - "unicodes": { - "composite": [ - "21bb" - ], - "secondary": [ - "10f01e" - ] - } - }, - "label": "Arrow Rotate Right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M496 48V192c0 17.69-14.31 32-32 32H320c-17.69 0-32-14.31-32-32s14.31-32 32-32h63.39c-29.97-39.7-77.25-63.78-127.6-63.78C167.7 96.22 96 167.9 96 256s71.69 159.8 159.8 159.8c34.88 0 68.03-11.03 95.88-31.94c14.22-10.53 34.22-7.75 44.81 6.375c10.59 14.16 7.75 34.22-6.375 44.81c-39.03 29.28-85.36 44.86-134.2 44.86C132.5 479.9 32 379.4 32 256s100.5-223.9 223.9-223.9c69.15 0 134 32.47 176.1 86.12V48c0-17.69 14.31-32 32-32S496 30.31 496 48z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-trend-down": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e097", - "label": "Arrow trend down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M466.7 352L320 205.3L214.6 310.6C202.1 323.1 181.9 323.1 169.4 310.6L9.372 150.6C-3.124 138.1-3.124 117.9 9.372 105.4C21.87 92.88 42.13 92.88 54.63 105.4L191.1 242.7L297.4 137.4C309.9 124.9 330.1 124.9 342.6 137.4L512 306.7V223.1C512 206.3 526.3 191.1 544 191.1C561.7 191.1 576 206.3 576 223.1V384C576 401.7 561.7 416 544 416H384C366.3 416 352 401.7 352 384C352 366.3 366.3 352 384 352L466.7 352z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-trend-up": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e098", - "label": "Arrow trend up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M384 160C366.3 160 352 145.7 352 128C352 110.3 366.3 96 384 96H544C561.7 96 576 110.3 576 128V288C576 305.7 561.7 320 544 320C526.3 320 512 305.7 512 288V205.3L342.6 374.6C330.1 387.1 309.9 387.1 297.4 374.6L191.1 269.3L54.63 406.6C42.13 419.1 21.87 419.1 9.372 406.6C-3.124 394.1-3.124 373.9 9.372 361.4L169.4 201.4C181.9 188.9 202.1 188.9 214.6 201.4L320 306.7L466.7 159.1L384 160z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-turn-down": { - "changes": [ - "3.1.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f149", - "aliases": { - "names": [ - "level-down" - ], - "unicodes": { - "secondary": [ - "10f149" - ] - } - }, - "label": "Arrow turn down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M342.6 374.6l-128 128C208.4 508.9 200.2 512 191.1 512s-16.38-3.125-22.63-9.375l-127.1-128c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 402.8V80C160 71.19 152.8 64 144 64H32C14.33 64 0 49.69 0 32s14.33-32 32-32h112C188.1 0 224 35.88 224 80v322.8l73.37-73.38c12.5-12.5 32.75-12.5 45.25 0S355.1 362.1 342.6 374.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-turn-up": { - "changes": [ - "3.1.0", - "5.0.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f148", - "aliases": { - "names": [ - "level-up" - ], - "unicodes": { - "secondary": [ - "10f148" - ] - } - }, - "label": "Arrow turn up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M342.6 182.6C336.4 188.9 328.2 192 319.1 192s-16.38-3.125-22.62-9.375L224 109.3V432c0 44.13-35.89 80-80 80H32c-17.67 0-32-14.31-32-32s14.33-32 32-32h112C152.8 448 160 440.8 160 432V109.3L86.62 182.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l127.1-128c12.5-12.5 32.75-12.5 45.25 0l128 128C355.1 149.9 355.1 170.1 342.6 182.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f062", - "aliases": { - "unicodes": { - "composite": [ - "2191" - ], - "secondary": [ - "10f062" - ] - } - }, - "label": "Arrow up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M374.6 246.6C368.4 252.9 360.2 256 352 256s-16.38-3.125-22.62-9.375L224 141.3V448c0 17.69-14.33 31.1-31.1 31.1S160 465.7 160 448V141.3L54.63 246.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l160-160c12.5-12.5 32.75-12.5 45.25 0l160 160C387.1 213.9 387.1 234.1 374.6 246.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-1-9": { - "changes": [ - "3.2.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f163", - "aliases": { - "names": [ - "sort-numeric-up" - ], - "unicodes": { - "secondary": [ - "10f163" - ] - } - }, - "label": "Arrow up 1 9", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 192c0 17.69 14.31 31.1 32 31.1L416 224c17.69 0 32-14.31 32-32s-14.31-32-32-32V63.98c0-11.19-5.844-21.53-15.38-27.34c-9.531-5.781-21.41-6.188-31.34-1.062l-32 16.59c-15.69 8.125-21.81 27.44-13.69 43.13C329.3 106.3 340.4 112.6 352 112.6V160C334.3 160 320 174.3 320 192zM392 255.6c-48.6 0-88 39.4-88 88c0 36.44 22.15 67.7 53.71 81.07l-7.682 8.004c-10.72 11.16-10.34 28.88 .8125 39.56C356.3 477.4 363.3 480 370.2 480c7.344 0 14.72-2.875 20.19-8.625c69.61-72.53 89.6-85.39 89.6-127.8C480 294.1 440.6 255.6 392 255.6zM392 367.6c-13.23 0-24-10.77-24-24s10.77-24 24-24s24 10.77 24 24S405.2 367.6 392 367.6zM39.99 191.7c8.672 0 17.3-3.5 23.61-10.38L96 145.9v302c0 17.7 14.33 32.03 31.1 32.03s32-14.33 32-32.03V145.9L192.4 181.3C204.4 194.3 224.6 195.2 237.6 183.3c13.03-11.95 13.9-32.22 1.969-45.27L151.6 41.94c-12.12-13.26-35.06-13.26-47.19 0l-87.1 96.09C4.475 151.1 5.35 171.3 18.38 183.3C24.52 188.9 32.27 191.7 39.99 191.7z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-9-1": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f887", - "aliases": { - "names": [ - "sort-numeric-up-alt" - ], - "unicodes": { - "secondary": [ - "10f887" - ] - } - }, - "label": "Arrow up 9 1", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573168, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M237.6 183.3c13.03-11.95 13.9-32.22 1.969-45.27L151.6 41.94c-12.12-13.26-35.06-13.26-47.19 0l-87.1 96.09C4.475 151.1 5.35 171.3 18.38 183.3c13.02 11.95 33.27 11.04 45.22-1.969L96 145.9v302c0 17.7 14.33 32.03 31.1 32.03s32-14.33 32-32.03V145.9L192.4 181.3c6.312 6.883 14.94 10.38 23.61 10.38C223.7 191.7 231.5 188.9 237.6 183.3zM357.7 201.1l-7.682 8.004c-10.72 11.16-10.34 28.88 .8125 39.56c5.406 5.219 12.41 7.812 19.38 7.812c7.344 0 14.72-2.875 20.19-8.625c69.61-72.53 89.6-85.39 89.6-127.8c0-48.6-39.4-88-88-88s-88 39.4-88 88C303.1 156.4 326.1 187.7 357.7 201.1zM392 96c13.23 0 24 10.77 24 24S405.2 144 392 144S368 133.2 368 120S378.8 96 392 96zM416 416.4v-96.02c0-11.19-5.844-21.53-15.38-27.34c-9.531-5.781-21.41-6.188-31.34-1.062l-32 16.59c-15.69 8.125-21.81 27.44-13.69 43.13C329.3 362.8 340.4 369 352 369v47.41c-17.69 0-32 14.31-32 32s14.31 32 32 32h64c17.69 0 32-14.31 32-32S433.7 416.4 416 416.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-a-z": { - "changes": [ - "3.2.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f15e", - "aliases": { - "names": [ - "sort-alpha-up" - ], - "unicodes": { - "secondary": [ - "10f15e" - ] - } - }, - "label": "Arrow up a z", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573169, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M151.6 41.95c-12.12-13.26-35.06-13.26-47.19 0l-87.1 96.09C4.473 151.1 5.348 171.4 18.38 183.3c13.02 11.95 33.27 11.04 45.22-1.973L96 145.9v302C96 465.7 110.3 480 128 480S160 465.7 160 447.1V145.9L192.4 181.3c11.46 12.49 31.67 14.39 45.22 1.973c13.03-11.95 13.9-32.22 1.969-45.27L151.6 41.95zM448 416h-50.75l73.38-73.38c9.156-9.156 11.89-22.91 6.938-34.88s-16.63-19.86-29.56-19.86H319.1C302.3 287.9 288 302.3 288 320s14.33 32 32 32h50.75l-73.38 73.38c-9.156 9.156-11.89 22.91-6.938 34.88S307.1 480 319.1 480h127.1C465.7 480 480 465.7 480 448S465.7 416 448 416zM492.6 209.3l-79.99-160.1c-10.84-21.81-46.4-21.81-57.24 0L275.4 209.3c-7.906 15.91-1.5 35.24 14.31 43.19c15.87 7.922 35.04 1.477 42.93-14.4l7.154-14.39h88.43l7.154 14.39c6.174 12.43 23.97 23.87 42.93 14.4C494.1 244.6 500.5 225.2 492.6 209.3zM367.8 167.4L384 134.7l16.22 32.63H367.8z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-from-bracket": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e09a", - "label": "Arrow up from bracket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573169, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 352v64c0 17.67-14.33 32-32 32H96c-17.67 0-32-14.33-32-32v-64c0-17.67-14.33-32-32-32s-32 14.33-32 32v64c0 53.02 42.98 96 96 96h256c53.02 0 96-42.98 96-96v-64c0-17.67-14.33-32-32-32S384 334.3 384 352zM201.4 9.375l-128 128c-12.51 12.51-12.49 32.76 0 45.25c12.5 12.5 32.75 12.5 45.25 0L192 109.3V320c0 17.69 14.31 32 32 32s32-14.31 32-32V109.3l73.38 73.38c12.5 12.5 32.75 12.5 45.25 0s12.5-32.75 0-45.25l-128-128C234.1-3.125 213.9-3.125 201.4 9.375z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-from-ground-water": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4b5", - "label": "Arrow Up-from-ground-water", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573169, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 319.1V109.3L230.6 134.6C218.1 147.1 197.9 147.1 185.4 134.6C172.9 122.1 172.9 101.9 185.4 89.37L265.4 9.372C277.9-3.124 298.1-3.124 310.6 9.372L390.6 89.37C403.1 101.9 403.1 122.1 390.6 134.6C378.1 147.1 357.9 147.1 345.4 134.6L320 109.3V319.1C320 337.7 305.7 352 288 352C270.3 352 256 337.7 256 319.1zM269.5 421.9C280.6 414 295.4 414 306.5 421.9C328.1 437.4 356.5 448 384 448C410.9 448 439.4 437.2 461.4 421.9L461.5 421.9C473.4 413.4 489.5 414.1 500.7 423.6C515.1 435.5 533.2 444.6 551.3 448.8C568.5 452.8 579.2 470.1 575.2 487.3C571.2 504.5 553.1 515.2 536.7 511.2C512.2 505.4 491.9 494.6 478.5 486.2C449.5 501.7 417 512 384 512C352.1 512 323.4 502.1 303.6 493.1C297.7 490.5 292.5 487.8 288 485.4C283.5 487.8 278.3 490.5 272.4 493.1C252.6 502.1 223.9 512 192 512C158.1 512 126.5 501.7 97.5 486.2C84.13 494.6 63.79 505.4 39.27 511.2C22.06 515.2 4.854 504.5 .8429 487.3C-3.168 470.1 7.533 452.8 24.74 448.8C42.84 444.6 60.96 435.5 75.31 423.6C86.46 414.1 102.6 413.4 114.5 421.9L114.6 421.9C136.7 437.2 165.1 448 192 448C219.5 448 247 437.4 269.5 421.9H269.5zM192 416.5C172.1 416.4 150.8 408.5 132.9 396.1C109.1 379.4 77.01 380.8 54.78 399.5C44.18 408.3 30.59 415.1 17.49 418.1C11.19 419.6 5.326 421.9 0 425V239.1C0 213.5 21.49 191.1 48 191.1H192V416.5zM576 239.1V424.1C570.7 421.9 564.8 419.6 558.5 418.1C545.4 415.1 531.8 408.3 521.2 399.5C499 380.8 466.9 379.4 443.2 396.1C425.2 408.5 403 416.5 384 416.5L384 191.1H528C554.5 191.1 576 213.5 576 239.1L576 239.1z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-from-water-pump": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4b6", - "label": "Arrow Up-from-water-pump", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573169, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M239.1 0C266.5 0 287.1 21.49 287.1 48V256H416V109.3L390.6 134.6C378.1 147.1 357.9 147.1 345.4 134.6C332.9 122.1 332.9 101.9 345.4 89.37L425.4 9.373C437.9-3.124 458.1-3.124 470.6 9.373L550.6 89.37C563.1 101.9 563.1 122.1 550.6 134.6C538.1 147.1 517.9 147.1 505.4 134.6L480 109.3V256H528C554.5 256 576 277.5 576 304V400C576 408 574 415.6 570.6 422.2C566.8 420.5 562.8 419.1 558.5 418.1C545.4 415.1 531.8 408.3 521.2 399.5C499 380.8 466.9 379.4 443.2 396.1C425.2 408.5 403 416.5 384 416.5C364.4 416.5 343.2 408.8 324.8 396.1C302.8 380.6 273.3 380.6 251.2 396.1C234 407.9 213.2 416.5 192 416.5C172.1 416.5 150.8 408.5 132.9 396.1C109.1 379.4 77.01 380.8 54.78 399.5C44.18 408.3 30.59 415.1 17.49 418.1C13.27 419.1 9.239 420.5 5.439 422.2C1.965 415.6 0 408 0 400V304C0 277.5 21.49 256 48 256H64V48C64 21.49 85.49 0 112 0H239.1zM384 448C410.9 448 439.4 437.2 461.4 421.9L461.5 421.9C473.4 413.4 489.5 414.1 500.7 423.6C515 435.5 533.2 444.6 551.3 448.8C568.5 452.8 579.2 470.1 575.2 487.3C571.2 504.5 553.1 515.2 536.7 511.2C512.2 505.4 491.9 494.6 478.5 486.2C449.5 501.7 417 512 384 512C352.1 512 323.4 502.1 303.6 493.1C297.7 490.5 292.5 487.8 288 485.4C283.5 487.8 278.3 490.5 272.4 493.1C252.6 502.1 223.9 512 192 512C158.1 512 126.5 501.7 97.5 486.2C84.12 494.6 63.79 505.4 39.27 511.2C22.06 515.2 4.853 504.5 .8422 487.3C-3.169 470.1 7.532 452.8 24.74 448.8C42.84 444.6 60.96 435.5 75.31 423.6C86.46 414.1 102.6 413.4 114.5 421.9L114.6 421.9C136.7 437.2 165.1 448 192 448C219.5 448 247 437.4 269.5 421.9C280.6 414 295.4 414 306.5 421.9C328.1 437.4 356.5 448 384 448H384z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-long": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f176", - "aliases": { - "names": [ - "long-arrow-up" - ], - "unicodes": { - "secondary": [ - "10f176" - ] - } - }, - "label": "Arrow up long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573169, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M310.6 182.6c-12.51 12.51-32.76 12.49-45.25 0L192 109.3V480c0 17.69-14.31 32-32 32s-32-14.31-32-32V109.3L54.63 182.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l128-128c12.5-12.5 32.75-12.5 45.25 0l128 128C323.1 149.9 323.1 170.1 310.6 182.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-right-dots": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4b7", - "label": "Arrow Up-right-dots", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573169, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M287.1 0C305.7 0 320 14.33 320 32V160C320 177.7 305.7 192 287.1 192C270.3 192 255.1 177.7 255.1 160V109.3L54.63 310.6C42.13 323.1 21.87 323.1 9.372 310.6C-3.124 298.1-3.124 277.9 9.372 265.4L210.7 64H159.1C142.3 64 127.1 49.67 127.1 32C127.1 14.33 142.3 0 159.1 0H287.1zM576 80C576 106.5 554.5 128 528 128C501.5 128 480 106.5 480 80C480 53.49 501.5 32 528 32C554.5 32 576 53.49 576 80zM448 208C448 234.5 426.5 256 400 256C373.5 256 352 234.5 352 208C352 181.5 373.5 160 400 160C426.5 160 448 181.5 448 208zM352 336C352 309.5 373.5 288 400 288C426.5 288 448 309.5 448 336C448 362.5 426.5 384 400 384C373.5 384 352 362.5 352 336zM448 464C448 490.5 426.5 512 400 512C373.5 512 352 490.5 352 464C352 437.5 373.5 416 400 416C426.5 416 448 437.5 448 464zM576 464C576 490.5 554.5 512 528 512C501.5 512 480 490.5 480 464C480 437.5 501.5 416 528 416C554.5 416 576 437.5 576 464zM223.1 336C223.1 309.5 245.5 288 271.1 288C298.5 288 320 309.5 320 336C320 362.5 298.5 384 271.1 384C245.5 384 223.1 362.5 223.1 336zM320 464C320 490.5 298.5 512 271.1 512C245.5 512 223.1 490.5 223.1 464C223.1 437.5 245.5 416 271.1 416C298.5 416 320 437.5 320 464zM95.1 464C95.1 437.5 117.5 416 143.1 416C170.5 416 191.1 437.5 191.1 464C191.1 490.5 170.5 512 143.1 512C117.5 512 95.1 490.5 95.1 464zM576 336C576 362.5 554.5 384 528 384C501.5 384 480 362.5 480 336C480 309.5 501.5 288 528 288C554.5 288 576 309.5 576 336zM480 208C480 181.5 501.5 160 528 160C554.5 160 576 181.5 576 208C576 234.5 554.5 256 528 256C501.5 256 480 234.5 480 208z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-right-from-square": { - "changes": [ - "1.0.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f08e", - "aliases": { - "names": [ - "external-link" - ], - "unicodes": { - "secondary": [ - "10f08e" - ] - } - }, - "label": "Arrow up right from square", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573169, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M256 64C256 46.33 270.3 32 288 32H415.1C415.1 32 415.1 32 415.1 32C420.3 32 424.5 32.86 428.2 34.43C431.1 35.98 435.5 38.27 438.6 41.3C438.6 41.35 438.6 41.4 438.7 41.44C444.9 47.66 447.1 55.78 448 63.9C448 63.94 448 63.97 448 64V192C448 209.7 433.7 224 416 224C398.3 224 384 209.7 384 192V141.3L214.6 310.6C202.1 323.1 181.9 323.1 169.4 310.6C156.9 298.1 156.9 277.9 169.4 265.4L338.7 96H288C270.3 96 256 81.67 256 64V64zM0 128C0 92.65 28.65 64 64 64H160C177.7 64 192 78.33 192 96C192 113.7 177.7 128 160 128H64V416H352V320C352 302.3 366.3 288 384 288C401.7 288 416 302.3 416 320V416C416 451.3 387.3 480 352 480H64C28.65 480 0 451.3 0 416V128z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-short-wide": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f885", - "aliases": { - "names": [ - "sort-amount-up-alt" - ], - "unicodes": { - "secondary": [ - "10f885" - ] - } - }, - "label": "Arrow up short wide", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 416h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 416 544 416zM320 96h32c17.67 0 31.1-14.33 31.1-32s-14.33-32-31.1-32h-32c-17.67 0-32 14.33-32 32S302.3 96 320 96zM320 224H416c17.67 0 32-14.33 32-32s-14.33-32-32-32h-95.1c-17.67 0-32 14.33-32 32S302.3 224 320 224zM320 352H480c17.67 0 32-14.33 32-32s-14.33-32-32-32h-159.1c-17.67 0-32 14.33-32 32S302.3 352 320 352zM151.6 41.95c-12.12-13.26-35.06-13.26-47.19 0l-87.1 96.09C4.475 151.1 5.35 171.4 18.38 183.3c6.141 5.629 13.89 8.414 21.61 8.414c8.672 0 17.3-3.504 23.61-10.39L96 145.9v302C96 465.7 110.3 480 128 480s32-14.33 32-32.03V145.9L192.4 181.3C204.4 194.3 224.6 195.3 237.6 183.3c13.03-11.95 13.9-32.22 1.969-45.27L151.6 41.95z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-wide-short": { - "changes": [ - "3.2.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f161", - "aliases": { - "names": [ - "sort-amount-up" - ], - "unicodes": { - "secondary": [ - "10f161" - ] - } - }, - "label": "Arrow up wide short", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M416 288h-95.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H416c17.67 0 32-14.33 32-32S433.7 288 416 288zM352 416h-32c-17.67 0-32 14.33-32 32s14.33 32 32 32h32c17.67 0 31.1-14.33 31.1-32S369.7 416 352 416zM480 160h-159.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H480c17.67 0 32-14.33 32-32S497.7 160 480 160zM544 32h-223.1c-17.67 0-32 14.33-32 32s14.33 32 32 32H544c17.67 0 32-14.33 32-32S561.7 32 544 32zM151.6 41.95c-12.12-13.26-35.06-13.26-47.19 0l-87.1 96.09C4.475 151.1 5.35 171.4 18.38 183.3c6.141 5.629 13.89 8.414 21.61 8.414c8.672 0 17.3-3.504 23.61-10.39L96 145.9v302C96 465.7 110.3 480 128 480s32-14.33 32-32.03V145.9L192.4 181.3C204.4 194.3 224.6 195.3 237.6 183.3c13.03-11.95 13.9-32.22 1.969-45.27L151.6 41.95z" - } - }, - "free": [ - "solid" - ] - }, - "arrow-up-z-a": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f882", - "aliases": { - "names": [ - "sort-alpha-up-alt" - ], - "unicodes": { - "secondary": [ - "10f882" - ] - } - }, - "label": "Arrow up z a", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M151.6 41.95c-12.12-13.26-35.06-13.26-47.19 0l-87.1 96.09C4.473 151.1 5.348 171.4 18.38 183.3c13.02 11.95 33.27 11.04 45.22-1.973L96 145.9v302C96 465.7 110.3 480 128 480S160 465.7 160 447.1V145.9L192.4 181.3c6.312 6.883 14.94 10.39 23.61 10.39c7.719 0 15.47-2.785 21.61-8.414c13.03-11.95 13.9-32.22 1.969-45.27L151.6 41.95zM320 96h50.75l-73.38 73.38c-9.156 9.156-11.89 22.91-6.938 34.88s16.63 19.74 29.56 19.74h127.1C465.7 223.1 480 209.7 480 192s-14.33-32-32-32h-50.75l73.38-73.38c9.156-9.156 11.89-22.91 6.938-34.88S460.9 32 447.1 32h-127.1C302.3 32 288 46.31 288 64S302.3 96 320 96zM492.6 433.3l-79.99-160.1c-10.84-21.81-46.4-21.81-57.24 0l-79.99 160.1c-7.906 15.91-1.5 35.24 14.31 43.19c15.87 7.922 35.04 1.477 42.93-14.4l7.154-14.39h88.43l7.154 14.39c6.174 12.43 23.97 23.87 42.93 14.4C494.1 468.6 500.5 449.2 492.6 433.3zM367.8 391.4L384 358.7l16.22 32.63H367.8z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-down-to-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4b8", - "label": "Arrows Down-to-line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 416C561.7 416 576 430.3 576 448C576 465.7 561.7 480 544 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H544zM470.6 374.6C458.1 387.1 437.9 387.1 425.4 374.6L329.4 278.6C316.9 266.1 316.9 245.9 329.4 233.4C341.9 220.9 362.1 220.9 374.6 233.4L416 274.7V64C416 46.33 430.3 32 448 32C465.7 32 480 46.33 480 64V274.7L521.4 233.4C533.9 220.9 554.1 220.9 566.6 233.4C579.1 245.9 579.1 266.1 566.6 278.6L470.6 374.6zM246.6 278.6L150.6 374.6C138.1 387.1 117.9 387.1 105.4 374.6L9.373 278.6C-3.124 266.1-3.124 245.9 9.373 233.4C21.87 220.9 42.13 220.9 54.63 233.4L96 274.7V64C96 46.33 110.3 32 128 32C145.7 32 160 46.33 160 64V274.7L201.4 233.4C213.9 220.9 234.1 220.9 246.6 233.4C259.1 245.9 259.1 266.1 246.6 278.6H246.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-down-to-people": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4b9", - "label": "Arrows Down-to-people", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M167.1 24V142.1L191 119C200.4 109.7 215.6 109.7 224.1 119C234.3 128.4 234.3 143.6 224.1 152.1L160.1 216.1C151.6 226.3 136.4 226.3 127 216.1L63.03 152.1C53.65 143.6 53.65 128.4 63.03 119C72.4 109.7 87.6 109.7 96.97 119L119.1 142.1V24C119.1 10.75 130.7 0 143.1 0C157.3 0 167.1 10.75 167.1 24V24zM359.1 200C359.1 222.1 342.1 240 319.1 240C297.9 240 279.1 222.1 279.1 200C279.1 177.9 297.9 160 319.1 160C342.1 160 359.1 177.9 359.1 200zM183.1 296C183.1 318.1 166.1 336 143.1 336C121.9 336 103.1 318.1 103.1 296C103.1 273.9 121.9 256 143.1 256C166.1 256 183.1 273.9 183.1 296zM455.1 296C455.1 273.9 473.9 256 495.1 256C518.1 256 535.1 273.9 535.1 296C535.1 318.1 518.1 336 495.1 336C473.9 336 455.1 318.1 455.1 296zM199.1 480C199.1 497.7 185.7 512 167.1 512H119.1C102.3 512 87.1 497.7 87.1 480V441.5L61.13 491.4C54.84 503 40.29 507.4 28.62 501.1C16.95 494.8 12.58 480.3 18.87 468.6L56.74 398.3C72.09 369.8 101.9 352 134.2 352H153.8C170.1 352 185.7 356.5 199.2 364.6L232.7 302.3C248.1 273.8 277.9 255.1 310.2 255.1H329.8C362.1 255.1 391.9 273.8 407.3 302.3L440.8 364.6C454.3 356.5 469.9 352 486.2 352H505.8C538.1 352 567.9 369.8 583.3 398.3L621.1 468.6C627.4 480.3 623 494.8 611.4 501.1C599.7 507.4 585.1 503 578.9 491.4L551.1 441.5V480C551.1 497.7 537.7 512 519.1 512H471.1C454.3 512 439.1 497.7 439.1 480V441.5L413.1 491.4C406.8 503 392.3 507.4 380.6 501.1C368.9 494.8 364.6 480.3 370.9 468.6L407.2 401.1C405.5 399.5 404 397.6 402.9 395.4L375.1 345.5V400C375.1 417.7 361.7 432 343.1 432H295.1C278.3 432 263.1 417.7 263.1 400V345.5L237.1 395.4C235.1 397.6 234.5 399.5 232.8 401.1L269.1 468.6C275.4 480.3 271 494.8 259.4 501.1C247.7 507.4 233.1 503 226.9 491.4L199.1 441.5L199.1 480zM415 152.1C405.7 143.6 405.7 128.4 415 119C424.4 109.7 439.6 109.7 448.1 119L471.1 142.1V24C471.1 10.75 482.7 0 495.1 0C509.3 0 519.1 10.75 519.1 24V142.1L543 119C552.4 109.7 567.6 109.7 576.1 119C586.3 128.4 586.3 143.6 576.1 152.1L512.1 216.1C503.6 226.3 488.4 226.3 479 216.1L415 152.1z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-left-right": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f07e", - "aliases": { - "names": [ - "arrows-h" - ], - "unicodes": { - "secondary": [ - "10f07e" - ] - } - }, - "label": "Arrows left right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.6 278.6l-96 96C400.4 380.9 392.2 384 384 384s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L402.8 288h-293.5l41.38 41.38c12.5 12.5 12.5 32.75 0 45.25C144.4 380.9 136.2 384 128 384s-16.38-3.125-22.62-9.375l-96-96c-12.5-12.5-12.5-32.75 0-45.25l96-96c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L109.3 224h293.5l-41.38-41.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l96 96C515.1 245.9 515.1 266.1 502.6 278.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-left-right-to-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ba", - "label": "Arrows Left-right-to-line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573170, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M32 64C49.67 64 64 78.33 64 96V416C64 433.7 49.67 448 32 448C14.33 448 0 433.7 0 416V96C0 78.33 14.33 64 32 64zM246.6 137.4C259.1 149.9 259.1 170.1 246.6 182.6L205.3 224H434.7L393.4 182.6C380.9 170.1 380.9 149.9 393.4 137.4C405.9 124.9 426.1 124.9 438.6 137.4L534.6 233.4C547.1 245.9 547.1 266.1 534.6 278.6L438.6 374.6C426.1 387.1 405.9 387.1 393.4 374.6C380.9 362.1 380.9 341.9 393.4 329.4L434.7 288H205.3L246.6 329.4C259.1 341.9 259.1 362.1 246.6 374.6C234.1 387.1 213.9 387.1 201.4 374.6L105.4 278.6C92.88 266.1 92.88 245.9 105.4 233.4L201.4 137.4C213.9 124.9 234.1 124.9 246.6 137.4V137.4zM640 416C640 433.7 625.7 448 608 448C590.3 448 576 433.7 576 416V96C576 78.33 590.3 64 608 64C625.7 64 640 78.33 640 96V416z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-rotate": { - "changes": [ - "1.0.0", - "5.0.0", - "5.8.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f021", - "aliases": { - "names": [ - "refresh", - "sync" - ], - "unicodes": { - "composite": [ - "1f5d8" - ], - "secondary": [ - "10f021" - ] - } - }, - "label": "Arrows rotate", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 16c-17.67 0-32 14.31-32 32v74.09C392.1 66.52 327.4 32 256 32C161.5 32 78.59 92.34 49.58 182.2c-5.438 16.81 3.797 34.88 20.61 40.28c16.89 5.5 34.88-3.812 40.3-20.59C130.9 138.5 189.4 96 256 96c50.5 0 96.26 24.55 124.4 64H336c-17.67 0-32 14.31-32 32s14.33 32 32 32h128c17.67 0 32-14.31 32-32V48C496 30.31 481.7 16 464 16zM441.8 289.6c-16.92-5.438-34.88 3.812-40.3 20.59C381.1 373.5 322.6 416 256 416c-50.5 0-96.25-24.55-124.4-64H176c17.67 0 32-14.31 32-32s-14.33-32-32-32h-128c-17.67 0-32 14.31-32 32v144c0 17.69 14.33 32 32 32s32-14.31 32-32v-74.09C119.9 445.5 184.6 480 255.1 480c94.45 0 177.4-60.34 206.4-150.2C467.9 313 458.6 294.1 441.8 289.6z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-spin": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4bb", - "label": "Arrows Spin", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M257.1 95.53C245.8 95.53 234.7 96.72 223.1 98.97V33.97C234.8 32.36 245.9 31.53 257.1 31.53C315.3 31.53 368.3 53.72 408.2 90.11L437.6 60.69C447.7 50.61 464.9 57.75 464.9 72V177.4C464.9 186.2 457.7 193.4 448.9 193.4H343.5C329.3 193.4 322.1 176.1 332.2 166.1L362.9 135.4C334.7 110.6 297.7 95.53 257.1 95.53L257.1 95.53zM97.14 255.5C97.14 266.7 98.27 277.5 100.4 288H35.47C33.93 277.4 33.14 266.6 33.14 255.5C33.14 198.2 54.71 145.8 90.18 106.2L60.69 76.69C50.61 66.61 57.74 49.38 71.1 49.38H177.4C186.2 49.38 193.4 56.54 193.4 65.38V170.7C193.4 185 176.1 192.1 166.1 182.1L135.5 151.5C111.6 179.5 97.14 215.8 97.14 255.5V255.5zM182.1 348.2L153.1 377.1C181.1 401.1 217.4 415.5 257.1 415.5C267.7 415.5 278 414.5 288 412.6V477.4C277.9 478.8 267.6 479.5 257.1 479.5C199.8 479.5 147.4 457.1 107.8 422.5L76.69 453.6C66.61 463.7 49.37 456.5 49.37 442.3V336.9C49.37 328.1 56.54 320.9 65.37 320.9H170.7C184.1 320.9 192.1 338.1 182.1 348.2H182.1zM348.2 332.2L377.2 361.2C402.1 333.1 417.1 296.1 417.1 255.5C417.1 244.7 416.1 234.2 414 224H478.9C480.4 234.3 481.1 244.8 481.1 255.5C481.1 313.7 458.9 366.7 422.6 406.6L453.6 437.6C463.7 447.7 456.5 464.9 442.3 464.9H336.9C328.1 464.9 320.9 457.7 320.9 448.9V343.5C320.9 329.3 338.1 322.1 348.2 332.2L348.2 332.2z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-split-up-and-left": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4bc", - "label": "Arrows Split-up-and-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M246.6 150.6C234.1 163.1 213.9 163.1 201.4 150.6C188.9 138.1 188.9 117.9 201.4 105.4L297.4 9.372C309.9-3.124 330.1-3.124 342.6 9.372L438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6C426.1 163.1 405.9 163.1 393.4 150.6L352 109.3V384C352 419.3 380.7 448 416 448H480C497.7 448 512 462.3 512 480C512 497.7 497.7 512 480 512H416C345.3 512 288 454.7 288 384C288 348.7 259.3 320 224 320H109.3L150.6 361.4C163.1 373.9 163.1 394.1 150.6 406.6C138.1 419.1 117.9 419.1 105.4 406.6L9.38 310.6L9.305 310.6C3.575 304.8 .0259 296.9 .0003 288.1L2.428 275.8C3.99 271.1 6.305 268.4 9.372 265.4L105.4 169.4C117.9 156.9 138.1 156.9 150.6 169.4C163.1 181.9 163.1 202.1 150.6 214.6L109.3 255.1H224C247.3 255.1 269.2 262.2 288 273.1V109.3L246.6 150.6zM0 287.9C.0125 283.6 .8749 279.5 2.428 275.8C.8214 279.6 .0122 283.8 0 287.9zM0 288.1V287.1V287.9V288.1z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-to-circle": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4bd", - "label": "Arrows To-circle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M9.372 9.372C21.87-3.124 42.13-3.124 54.63 9.372L159.1 114.7V95.1C159.1 78.33 174.3 63.1 191.1 63.1C209.7 63.1 223.1 78.33 223.1 95.1V191.1C223.1 196.3 223.1 200.5 221.6 204.2C220 207.1 217.7 211.5 214.7 214.6L214.6 214.7C211.5 217.7 207.1 220 204.2 221.6C200.5 223.1 196.3 223.1 191.1 223.1H95.1C78.33 223.1 63.1 209.7 63.1 191.1C63.1 174.3 78.33 159.1 95.1 159.1H114.7L9.372 54.63C-3.124 42.13-3.124 21.87 9.372 9.372V9.372zM384 256C384 291.3 355.3 320 320 320C284.7 320 256 291.3 256 256C256 220.7 284.7 192 320 192C355.3 192 384 220.7 384 256zM96 352C78.33 352 64 337.7 64 320C64 302.3 78.33 288 96 288H192H192.1C200.9 288 208.8 291.6 214.6 297.3L214.7 297.4C217.7 300.5 220 304 221.6 307.8C223.1 311.5 224 315.7 224 319.1V416C224 433.7 209.7 448 192 448C174.3 448 160 433.7 160 416V397.3L54.63 502.6C42.13 515.1 21.87 515.1 9.373 502.6C-3.124 490.1-3.124 469.9 9.373 457.4L114.7 352L96 352zM448 64C465.7 64 480 78.33 480 96V114.7L585.4 9.373C597.9-3.124 618.1-3.124 630.6 9.373C643.1 21.87 643.1 42.13 630.6 54.63L525.3 160H544C561.7 160 576 174.3 576 192C576 209.7 561.7 224 544 224H448C439.2 224 431.2 220.4 425.4 214.7L425.3 214.6C422.3 211.5 419.1 207.1 418.4 204.2C416.9 200.5 416 196.4 416 192.1V191.1V96C416 78.33 430.3 64 448 64H448zM525.3 352L630.6 457.4C643.1 469.9 643.1 490.1 630.6 502.6C618.1 515.1 597.9 515.1 585.4 502.6L480 397.3V416C480 433.7 465.7 448 448 448C430.3 448 416 433.7 416 416V320C416 319.1 416 319.9 416 319.9C416 315.6 416.9 311.5 418.4 307.8C419.1 303.1 422.3 300.4 425.4 297.4C431.1 291.6 439.1 288 447.9 288C447.9 288 447.1 288 448 288H544C561.7 288 576 302.3 576 320C576 337.7 561.7 352 544 352L525.3 352z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-to-dot": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4be", - "label": "Arrows To-dot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 82.74L297.4 73.37C309.9 60.88 330.1 60.88 342.6 73.37C355.1 85.87 355.1 106.1 342.6 118.6L278.6 182.6C266.1 195.1 245.9 195.1 233.4 182.6L169.4 118.6C156.9 106.1 156.9 85.87 169.4 73.37C181.9 60.88 202.1 60.88 214.6 73.37L223.1 82.75V32C223.1 14.33 238.3 0 255.1 0C273.7 0 288 14.33 288 32L288 82.74zM438.6 342.6C426.1 355.1 405.9 355.1 393.4 342.6L329.4 278.6C316.9 266.1 316.9 245.9 329.4 233.4L393.4 169.4C405.9 156.9 426.1 156.9 438.6 169.4C451.1 181.9 451.1 202.1 438.6 214.6L429.3 223.1H480C497.7 223.1 512 238.3 512 255.1C512 273.7 497.7 287.1 480 287.1H429.3L438.6 297.4C451.1 309.9 451.1 330.1 438.6 342.6V342.6zM288 256C288 273.7 273.7 288 256 288C238.3 288 224 273.7 224 256C224 238.3 238.3 224 256 224C273.7 224 288 238.3 288 256zM182.6 233.4C195.1 245.9 195.1 266.1 182.6 278.6L118.6 342.6C106.1 355.1 85.87 355.1 73.37 342.6C60.88 330.1 60.88 309.9 73.37 297.4L82.75 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H82.74L73.37 214.6C60.88 202.1 60.88 181.9 73.37 169.4C85.87 156.9 106.1 156.9 118.6 169.4L182.6 233.4zM169.4 438.6C156.9 426.1 156.9 405.9 169.4 393.4L233.4 329.4C245.9 316.9 266.1 316.9 278.6 329.4L342.6 393.4C355.1 405.9 355.1 426.1 342.6 438.6C330.1 451.1 309.9 451.1 297.4 438.6L288 429.3V480C288 497.7 273.7 512 256 512C238.3 512 224 497.7 224 480V429.3L214.6 438.6C202.1 451.1 181.9 451.1 169.4 438.6H169.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-to-eye": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4bf", - "label": "Arrows To-eye", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M15.03 15.03C24.4 5.657 39.6 5.657 48.97 15.03L112 78.06V40C112 26.75 122.7 15.1 136 15.1C149.3 15.1 160 26.75 160 40V136C160 149.3 149.3 160 136 160H40C26.75 160 15.1 149.3 15.1 136C15.1 122.7 26.75 112 40 112H78.06L15.03 48.97C5.657 39.6 5.657 24.4 15.03 15.03V15.03zM133.5 243.9C158.6 193.6 222.7 112 320 112C417.3 112 481.4 193.6 506.5 243.9C510.3 251.6 510.3 260.4 506.5 268.1C481.4 318.4 417.3 400 320 400C222.7 400 158.6 318.4 133.5 268.1C129.7 260.4 129.7 251.6 133.5 243.9V243.9zM320 320C355.3 320 384 291.3 384 256C384 220.7 355.3 192 320 192C284.7 192 256 220.7 256 256C256 291.3 284.7 320 320 320zM591 15.03C600.4 5.657 615.6 5.657 624.1 15.03C634.3 24.4 634.3 39.6 624.1 48.97L561.9 112H600C613.3 112 624 122.7 624 136C624 149.3 613.3 160 600 160H504C490.7 160 480 149.3 480 136V40C480 26.75 490.7 15.1 504 15.1C517.3 15.1 528 26.75 528 40V78.06L591 15.03zM15.03 463L78.06 400H40C26.75 400 15.1 389.3 15.1 376C15.1 362.7 26.75 352 40 352H136C149.3 352 160 362.7 160 376V472C160 485.3 149.3 496 136 496C122.7 496 112 485.3 112 472V433.9L48.97 496.1C39.6 506.3 24.4 506.3 15.03 496.1C5.657 487.6 5.657 472.4 15.03 463V463zM528 433.9V472C528 485.3 517.3 496 504 496C490.7 496 480 485.3 480 472V376C480 362.7 490.7 352 504 352H600C613.3 352 624 362.7 624 376C624 389.3 613.3 400 600 400H561.9L624.1 463C634.3 472.4 634.3 487.6 624.1 496.1C615.6 506.3 600.4 506.3 591 496.1L528 433.9z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-turn-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c0", - "label": "Arrows Turn-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M297.4 9.372C309.9-3.124 330.1-3.124 342.6 9.372L438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L342.6 246.6C330.1 259.1 309.9 259.1 297.4 246.6C284.9 234.1 284.9 213.9 297.4 201.4L338.7 160H128C92.65 160 64 188.7 64 224V256C64 273.7 49.67 288 32 288C14.33 288 0 273.7 0 256V224C0 153.3 57.31 96 128 96H338.7L297.4 54.63C284.9 42.13 284.9 21.87 297.4 9.373V9.372zM201.4 265.4C213.9 252.9 234.1 252.9 246.6 265.4L342.6 361.4C355.1 373.9 355.1 394.1 342.6 406.6L246.6 502.6C234.1 515.1 213.9 515.1 201.4 502.6C188.9 490.1 188.9 469.9 201.4 457.4L242.7 416H96C78.33 416 64 430.3 64 448V480C64 497.7 49.67 512 32 512C14.33 512 0 497.7 0 480V448C0 394.1 42.98 352 96 352H242.7L201.4 310.6C188.9 298.1 188.9 277.9 201.4 265.4V265.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-turn-to-dots": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c1", - "label": "Arrows Turn-to-dots", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M249.4 25.37C261.9 12.88 282.1 12.88 294.6 25.37C307.1 37.87 307.1 58.13 294.6 70.63L269.3 95.1H416C469 95.1 512 138.1 512 191.1V223.1C512 241.7 497.7 255.1 480 255.1C462.3 255.1 448 241.7 448 223.1V191.1C448 174.3 433.7 159.1 416 159.1H269.3L294.6 185.4C307.1 197.9 307.1 218.1 294.6 230.6C282.1 243.1 261.9 243.1 249.4 230.6L169.4 150.6C156.9 138.1 156.9 117.9 169.4 105.4L249.4 25.37zM342.6 361.4C355.1 373.9 355.1 394.1 342.6 406.6L262.6 486.6C250.1 499.1 229.9 499.1 217.4 486.6C204.9 474.1 204.9 453.9 217.4 441.4L242.7 416H96C78.33 416 64 430.3 64 448V480C64 497.7 49.67 512 32 512C14.33 512 0 497.7 0 480V448C0 394.1 42.98 352 96 352H242.7L217.4 326.6C204.9 314.1 204.9 293.9 217.4 281.4C229.9 268.9 250.1 268.9 262.6 281.4L342.6 361.4zM512 384C512 419.3 483.3 448 448 448C412.7 448 384 419.3 384 384C384 348.7 412.7 320 448 320C483.3 320 512 348.7 512 384zM128 128C128 163.3 99.35 192 64 192C28.65 192 0 163.3 0 128C0 92.65 28.65 64 64 64C99.35 64 128 92.65 128 128z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-up-down": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f07d", - "aliases": { - "names": [ - "arrows-v" - ], - "unicodes": { - "secondary": [ - "10f07d" - ] - } - }, - "label": "Arrows up down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M246.6 361.4C252.9 367.6 256 375.8 256 384s-3.125 16.38-9.375 22.62l-96 96c-12.5 12.5-32.75 12.5-45.25 0l-96-96c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L96 402.8v-293.5L54.63 150.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l96-96c12.5-12.5 32.75-12.5 45.25 0l96 96C252.9 111.6 256 119.8 256 128s-3.125 16.38-9.375 22.62c-12.5 12.5-32.75 12.5-45.25 0L160 109.3v293.5l41.38-41.38C213.9 348.9 234.1 348.9 246.6 361.4z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-up-down-left-right": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f047", - "aliases": { - "names": [ - "arrows" - ], - "unicodes": { - "secondary": [ - "10f047" - ] - } - }, - "label": "Arrows up down left right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573171, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 255.1c0 8.188-3.125 16.41-9.375 22.66l-72 72C424.4 356.9 416.2 360 408 360c-18.28 0-32-14.95-32-32c0-8.188 3.125-16.38 9.375-22.62L402.8 288H288v114.8l17.38-17.38C311.6 379.1 319.8 376 328 376c18.28 0 32 14.95 32 32c0 8.188-3.125 16.38-9.375 22.62l-72 72C272.4 508.9 264.2 512 256 512s-16.38-3.125-22.62-9.375l-72-72C155.1 424.4 152 416.2 152 408c0-17.05 13.73-32 32-32c8.188 0 16.38 3.125 22.62 9.375L224 402.8V288H109.3l17.38 17.38C132.9 311.6 136 319.8 136 328c0 17.05-13.73 32-32 32c-8.188 0-16.38-3.125-22.62-9.375l-72-72C3.125 272.4 0 264.2 0 255.1s3.125-16.34 9.375-22.59l72-72C87.63 155.1 95.81 152 104 152c18.28 0 32 14.95 32 32c0 8.188-3.125 16.38-9.375 22.62L109.3 224H224V109.3L206.6 126.6C200.4 132.9 192.2 136 184 136c-18.28 0-32-14.95-32-32c0-8.188 3.125-16.38 9.375-22.62l72-72C239.6 3.125 247.8 0 256 0s16.38 3.125 22.62 9.375l72 72C356.9 87.63 360 95.81 360 104c0 17.05-13.73 32-32 32c-8.188 0-16.38-3.125-22.62-9.375L288 109.3V224h114.8l-17.38-17.38C379.1 200.4 376 192.2 376 184c0-17.05 13.73-32 32-32c8.188 0 16.38 3.125 22.62 9.375l72 72C508.9 239.6 512 247.8 512 255.1z" - } - }, - "free": [ - "solid" - ] - }, - "arrows-up-to-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c2", - "label": "Arrows Up-to-line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M32 96C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H544C561.7 32 576 46.33 576 64C576 81.67 561.7 96 544 96H32zM105.4 137.4C117.9 124.9 138.1 124.9 150.6 137.4L246.6 233.4C259.1 245.9 259.1 266.1 246.6 278.6C234.1 291.1 213.9 291.1 201.4 278.6L160 237.3V448C160 465.7 145.7 480 128 480C110.3 480 96 465.7 96 448V237.3L54.63 278.6C42.13 291.1 21.87 291.1 9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4L105.4 137.4zM329.4 233.4L425.4 137.4C437.9 124.9 458.1 124.9 470.6 137.4L566.6 233.4C579.1 245.9 579.1 266.1 566.6 278.6C554.1 291.1 533.9 291.1 521.4 278.6L480 237.3L480 448C480 465.7 465.7 480 448 480C430.3 480 416 465.7 416 448V237.3L374.6 278.6C362.1 291.1 341.9 291.1 329.4 278.6C316.9 266.1 316.9 245.9 329.4 233.4H329.4z" - } - }, - "free": [ - "solid" - ] - }, - "artstation": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f77a", - "label": "Artstation", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M2 377.4l43 74.3A51.35 51.35 0 0 0 90.9 480h285.4l-59.2-102.6zM501.8 350L335.6 59.3A51.38 51.38 0 0 0 290.2 32h-88.4l257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275 304.5l-115.5-200L44 304.5z" - } - }, - "free": [ - "brands" - ] - }, - "asterisk": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "2a", - "aliases": { - "unicodes": { - "composite": [ - "2731", - "f069" - ], - "primary": [ - "f069" - ], - "secondary": [ - "10f069", - "102a" - ] - } - }, - "label": "asterisk", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M417.1 368c-5.937 10.27-16.69 16-27.75 16c-5.422 0-10.92-1.375-15.97-4.281L256 311.4V448c0 17.67-14.33 32-31.1 32S192 465.7 192 448V311.4l-118.3 68.29C68.67 382.6 63.17 384 57.75 384c-11.06 0-21.81-5.734-27.75-16c-8.828-15.31-3.594-34.88 11.72-43.72L159.1 256L41.72 187.7C26.41 178.9 21.17 159.3 29.1 144C36.63 132.5 49.26 126.7 61.65 128.2C65.78 128.7 69.88 130.1 73.72 132.3L192 200.6V64c0-17.67 14.33-32 32-32S256 46.33 256 64v136.6l118.3-68.29c3.838-2.213 7.939-3.539 12.07-4.051C398.7 126.7 411.4 132.5 417.1 144c8.828 15.31 3.594 34.88-11.72 43.72L288 256l118.3 68.28C421.6 333.1 426.8 352.7 417.1 368z" - } - }, - "free": [ - "solid" - ] - }, - "asymmetrik": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f372", - "label": "Asymmetrik, Ltd.", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M517.5 309.2c38.8-40 58.1-80 58.5-116.1 .8-65.5-59.4-118.2-169.4-135C277.9 38.4 118.1 73.6 0 140.5 52 114 110.6 92.3 170.7 82.3c74.5-20.5 153-25.4 221.3-14.8C544.5 91.3 588.8 195 490.8 299.2c-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7h101.6l22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1h135.5L340 406.3c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8H542L468.6 349c18.5-12.1 35-25.5 48.9-39.8zm-187.6 80.5l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z" - } - }, - "free": [ - "brands" - ] - }, - "at": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "40", - "aliases": { - "unicodes": { - "composite": [ - "f1fa" - ], - "primary": [ - "f1fa" - ], - "secondary": [ - "10f1fa" - ] - } - }, - "label": "At", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M207.8 20.73c-93.45 18.32-168.7 93.66-187 187.1c-27.64 140.9 68.65 266.2 199.1 285.1c19.01 2.888 36.17-12.26 36.17-31.49l.0001-.6631c0-15.74-11.44-28.88-26.84-31.24c-84.35-12.98-149.2-86.13-149.2-174.2c0-102.9 88.61-185.5 193.4-175.4c91.54 8.869 158.6 91.25 158.6 183.2l0 16.16c0 22.09-17.94 40.05-40 40.05s-40.01-17.96-40.01-40.05v-120.1c0-8.847-7.161-16.02-16.01-16.02l-31.98 .0036c-7.299 0-13.2 4.992-15.12 11.68c-24.85-12.15-54.24-16.38-86.06-5.106c-38.75 13.73-68.12 48.91-73.72 89.64c-9.483 69.01 43.81 128 110.9 128c26.44 0 50.43-9.544 69.59-24.88c24 31.3 65.23 48.69 109.4 37.49C465.2 369.3 496 324.1 495.1 277.2V256.3C495.1 107.1 361.2-9.332 207.8 20.73zM239.1 304.3c-26.47 0-48-21.56-48-48.05s21.53-48.05 48-48.05s48 21.56 48 48.05S266.5 304.3 239.1 304.3z" - } - }, - "free": [ - "solid" - ] - }, - "atlassian": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f77b", - "label": "Atlassian", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7h175c5.8 .1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4H497c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6 .1z" - } - }, - "free": [ - "brands" - ] - }, - "atom": { - "changes": [ - "5.2.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5d2", - "aliases": { - "unicodes": { - "composite": [ - "269b" - ], - "secondary": [ - "10f5d2" - ] - } - }, - "label": "Atom", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 224C238.4 224 223.1 238.4 223.1 256S238.4 288 256 288c17.63 0 32-14.38 32-32S273.6 224 256 224zM470.2 128c-10.88-19.5-40.51-50.75-116.3-41.88C332.4 34.88 299.6 0 256 0S179.6 34.88 158.1 86.12C82.34 77.38 52.71 108.5 41.83 128c-16.38 29.38-14.91 73.12 25.23 128c-40.13 54.88-41.61 98.63-25.23 128c29.13 52.38 101.6 43.63 116.3 41.88C179.6 477.1 212.4 512 256 512s76.39-34.88 97.9-86.13C368.5 427.6 441 436.4 470.2 384c16.38-29.38 14.91-73.13-25.23-128C485.1 201.1 486.5 157.4 470.2 128zM95.34 352c-4.001-7.25-.1251-24.75 15-48.25c6.876 6.5 14.13 12.87 21.88 19.12c1.625 13.75 4.001 27.13 6.751 40.13C114.3 363.9 99.09 358.6 95.34 352zM132.2 189.1C124.5 195.4 117.2 201.8 110.3 208.2C95.22 184.8 91.34 167.2 95.34 160c3.376-6.125 16.38-11.5 37.88-11.5c1.75 0 3.876 .375 5.751 .375C136.1 162.2 133.8 175.6 132.2 189.1zM256 64c9.502 0 22.25 13.5 33.88 37.25C278.6 105 267.4 109.3 256 114.1C244.6 109.3 233.4 105 222.1 101.2C233.7 77.5 246.5 64 256 64zM256 448c-9.502 0-22.25-13.5-33.88-37.25C233.4 407 244.6 402.7 256 397.9c11.38 4.875 22.63 9.135 33.88 12.89C278.3 434.5 265.5 448 256 448zM256 336c-44.13 0-80.02-35.88-80.02-80S211.9 176 256 176s80.02 35.88 80.02 80S300.1 336 256 336zM416.7 352c-3.626 6.625-19 11.88-43.63 11c2.751-12.1 5.126-26.38 6.751-40.13c7.752-6.25 15-12.63 21.88-19.12C416.8 327.2 420.7 344.8 416.7 352zM401.7 208.2c-6.876-6.5-14.13-12.87-21.88-19.12c-1.625-13.5-3.876-26.88-6.751-40.25c1.875 0 4.001-.375 5.751-.375c21.5 0 34.51 5.375 37.88 11.5C420.7 167.2 416.8 184.8 401.7 208.2z" - } - }, - "free": [ - "solid" - ] - }, - "audible": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f373", - "label": "Audible", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 199.9v54l-320 200L0 254v-54l320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6-72 0-135.5 36.7-172.6 92.4h.3c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zm-220.1 18.8c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1c131.8-104.3 318.2-76.4 417.5 62.1l.7 1 48.8-30.4C517.1 112.1 424.8 58.1 319.9 58.1c-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6zm467 32.7z" - } - }, - "free": [ - "brands" - ] - }, - "audio-description": { - "changes": [ - "4.6.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f29e", - "aliases": { - "unicodes": { - "secondary": [ - "10f29e" - ] - } - }, - "label": "Rectangle audio description", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M170.8 280H213.2L192 237.7L170.8 280zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM274.7 349.5C271.3 351.2 267.6 352 264 352c-8.812 0-17.28-4.859-21.5-13.27L233.2 320H150.8l-9.367 18.73c-5.906 11.86-20.31 16.7-32.19 10.73c-11.88-5.938-16.69-20.34-10.75-32.2l72-144c8.125-16.25 34.81-16.25 42.94 0l72 144C291.4 329.1 286.6 343.5 274.7 349.5zM384 352h-56c-13.25 0-24-10.75-24-24v-144C304 170.8 314.8 160 328 160H384c52.94 0 96 43.06 96 96S436.9 352 384 352zM384 208h-32v96h32c26.47 0 48-21.53 48-48S410.5 208 384 208z" - } - }, - "free": [ - "solid" - ] - }, - "austral-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0a9", - "label": "Austral Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M325.3 224H416C433.7 224 448 238.3 448 256C448 273.7 433.7 288 416 288H352L365.3 320H416C433.7 320 448 334.3 448 352C448 369.7 433.7 384 416 384H392L413.5 435.7C420.3 452 412.6 470.7 396.3 477.5C379.1 484.3 361.3 476.6 354.5 460.3L322.7 384H125.3L93.54 460.3C86.74 476.6 68.01 484.3 51.69 477.5C35.38 470.7 27.66 452 34.46 435.7L56 384H32C14.33 384 0 369.7 0 352C0 334.3 14.33 320 32 320H82.67L96 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H122.7L194.5 51.69C199.4 39.77 211.1 32 224 32C236.9 32 248.6 39.77 253.5 51.69L325.3 224zM256 224L223.1 147.2L191.1 224H256zM165.3 288L151.1 320H296L282.7 288H165.3z" - } - }, - "free": [ - "solid" - ] - }, - "autoprefixer": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f41c", - "label": "Autoprefixer", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M318.4 16l-161 480h77.5l25.4-81.4h119.5L405 496h77.5L318.4 16zm-40.3 341.9l41.2-130.4h1.5l40.9 130.4h-83.6zM640 405l-10-31.4L462.1 358l19.4 56.5L640 405zm-462.1-47L10 373.7 0 405l158.5 9.4 19.4-56.4z" - } - }, - "free": [ - "brands" - ] - }, - "avianex": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f374", - "label": "avianex", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M453.1 32h-312c-38.9 0-76.2 31.2-83.3 69.7L1.2 410.3C-5.9 448.8 19.9 480 58.9 480h312c38.9 0 76.2-31.2 83.3-69.7l56.7-308.5c7-38.6-18.8-69.8-57.8-69.8zm-58.2 347.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9L203 228.9l-68.8-99.8 18.8-28.9 8.9-4.8L265 207.8l4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z" - } - }, - "free": [ - "brands" - ] - }, - "aviato": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f421", - "label": "Aviato", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572470, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M107.2 283.5l-19-41.8H36.1l-19 41.8H0l62.2-131.4 62.2 131.4h-17.2zm-45-98.1l-19.6 42.5h39.2l-19.6-42.5zm112.7 102.4l-62.2-131.4h17.1l45.1 96 45.1-96h17l-62.1 131.4zm80.6-4.3V156.4H271v127.1h-15.5zm209.1-115.6v115.6h-17.3V167.9h-41.2v-11.5h99.6v11.5h-41.1zM640 218.8c0 9.2-1.7 17.8-5.1 25.8-3.4 8-8.2 15.1-14.2 21.1-6 6-13.1 10.8-21.1 14.2-8 3.4-16.6 5.1-25.8 5.1s-17.8-1.7-25.8-5.1c-8-3.4-15.1-8.2-21.1-14.2-6-6-10.8-13-14.2-21.1-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8c3.4-8 8.2-15.1 14.2-21.1 6-6 13-8.4 21.1-11.9 8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1c8 3.4 15.1 5.8 21.1 11.9 6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3-2.6-6.3-6.2-11.7-10.8-16.3-4.6-4.6-10-8.2-16.2-10.9-6.2-2.7-12.8-4-19.8-4s-13.6 1.3-19.8 4c-6.2 2.7-11.6 6.3-16.2 10.9-4.6 4.6-8.2 10-10.8 16.3-2.6 6.3-3.9 13.1-3.9 20.3 0 7.3 1.3 14 3.9 20.3 2.6 6.3 6.2 11.7 10.8 16.3 4.6 4.6 10 8.2 16.2 10.9 6.2 2.7 12.8 4 19.8 4s13.6-1.3 19.8-4c6.2-2.7 11.6-6.3 16.2-10.9 4.6-4.6 8.2-10 10.8-16.3 2.6-6.3 3.9-13.1 3.9-20.3zm-94.8 96.7v-6.3l88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2 .3-2 .5-4.2 .6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3h23.8l19 41.8h17.1L348.6 152l-62.2 131.4h17.1l19-41.8h23.6L345 268s-22.7 6.5-25.5 23.7c-.1 .3-.1 .7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3 .3 4.4 .6 6.5 .3 2.6 .8 5 1.4 7.2L78.4 299.2l88.9 10v6.3c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4 0-6.2-4.6-11.3-10.5-12.2v-5.8l80.3 9v5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-4.9l28.4 3.2v23.7h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9V323l38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1 .2-.1 12.1h4.1l.1-5h5.2l.1 5h4.1l-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3v23.2h-5.9V360h5.9v-6.6h5v6.6h5.9v-13.8h-5.9v-23.7l28.4-3.2v4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2 6.8 0 12.4-3.4 12.4-10.2 0-6-4.3-11-9.9-12.1v-5.4l80.3-9v5.8c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4 6.8 0 12.4-5.6 12.4-12.4-.2-6.3-4.7-11.4-10.7-12.3zm-200.8-87.6l19.6-42.5 19.6 42.5h-17.9l-1.7-40.3-1.7 40.3h-17.9z" - } - }, - "free": [ - "brands" - ] - }, - "award": { - "changes": [ - "5.1.0", - "5.2.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f559", - "aliases": { - "unicodes": { - "secondary": [ - "10f559" - ] - } - }, - "label": "Award", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M288 358.3c13.98-8.088 17.53-30.04 28.88-41.39c11.35-11.35 33.3-14.88 41.39-28.87c7.98-13.79 .1658-34.54 4.373-50.29C366.7 222.5 383.1 208.5 383.1 192c0-16.5-17.27-30.52-21.34-45.73c-4.207-15.75 3.612-36.5-4.365-50.29c-8.086-13.98-30.03-17.52-41.38-28.87c-11.35-11.35-14.89-33.3-28.87-41.39c-13.79-7.979-34.54-.1637-50.29-4.375C222.5 17.27 208.5 0 192 0C175.5 0 161.5 17.27 146.3 21.34C130.5 25.54 109.8 17.73 95.98 25.7C82 33.79 78.46 55.74 67.11 67.08C55.77 78.43 33.81 81.97 25.72 95.95C17.74 109.7 25.56 130.5 21.35 146.2C17.27 161.5 .0008 175.5 .0008 192c0 16.5 17.27 30.52 21.34 45.73c4.207 15.75-3.615 36.5 4.361 50.29C33.8 302 55.74 305.5 67.08 316.9c11.35 11.35 14.89 33.3 28.88 41.4c13.79 7.979 34.53 .1582 50.28 4.369C161.5 366.7 175.5 384 192 384c16.5 0 30.52-17.27 45.74-21.34C253.5 358.5 274.2 366.3 288 358.3zM112 192c0-44.27 35.81-80 80-80s80 35.73 80 80c0 44.17-35.81 80-80 80S112 236.2 112 192zM1.719 433.2c-3.25 8.188-1.781 17.48 3.875 24.25c5.656 6.75 14.53 9.898 23.12 8.148l45.19-9.035l21.43 42.27C99.46 507 107.6 512 116.7 512c.3438 0 .6641-.0117 1.008-.0273c9.5-.375 17.65-6.082 21.24-14.88l33.58-82.08c-53.71-4.639-102-28.12-138.2-63.95L1.719 433.2zM349.6 351.1c-36.15 35.83-84.45 59.31-138.2 63.95l33.58 82.08c3.594 8.797 11.74 14.5 21.24 14.88C266.6 511.1 266.1 512 267.3 512c9.094 0 17.23-4.973 21.35-13.14l21.43-42.28l45.19 9.035c8.594 1.75 17.47-1.398 23.12-8.148c5.656-6.766 7.125-16.06 3.875-24.25L349.6 351.1z" - } - }, - "free": [ - "solid" - ] - }, - "aws": { - "changes": [ - "5.0.0", - "5.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f375", - "label": "Amazon Web Services (AWS)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M180.4 203c-.72 22.65 10.6 32.68 10.88 39.05a8.164 8.164 0 0 1 -4.1 6.27l-12.8 8.96a10.66 10.66 0 0 1 -5.63 1.92c-.43-.02-8.19 1.83-20.48-25.61a78.61 78.61 0 0 1 -62.61 29.45c-16.28 .89-60.4-9.24-58.13-56.21-1.59-38.28 34.06-62.06 70.93-60.05 7.1 .02 21.6 .37 46.99 6.27v-15.62c2.69-26.46-14.7-46.99-44.81-43.91-2.4 .01-19.4-.5-45.84 10.11-7.36 3.38-8.3 2.82-10.75 2.82-7.41 0-4.36-21.48-2.94-24.2 5.21-6.4 35.86-18.35 65.94-18.18a76.86 76.86 0 0 1 55.69 17.28 70.29 70.29 0 0 1 17.67 52.36l-.01 69.29zM93.99 235.4c32.43-.47 46.16-19.97 49.29-30.47 2.46-10.05 2.05-16.41 2.05-27.4-9.67-2.32-23.59-4.85-39.56-4.87-15.15-1.14-42.82 5.63-41.74 32.26-1.24 16.79 11.12 31.4 29.96 30.48zm170.9 23.05c-7.86 .72-11.52-4.86-12.68-10.37l-49.8-164.6c-.97-2.78-1.61-5.65-1.92-8.58a4.61 4.61 0 0 1 3.86-5.25c.24-.04-2.13 0 22.25 0 8.78-.88 11.64 6.03 12.55 10.37l35.72 140.8 33.16-140.8c.53-3.22 2.94-11.07 12.8-10.24h17.16c2.17-.18 11.11-.5 12.68 10.37l33.42 142.6L420.1 80.1c.48-2.18 2.72-11.37 12.68-10.37h19.72c.85-.13 6.15-.81 5.25 8.58-.43 1.85 3.41-10.66-52.75 169.9-1.15 5.51-4.82 11.09-12.68 10.37h-18.69c-10.94 1.15-12.51-9.66-12.68-10.75L328.7 110.7l-32.78 136.1c-.16 1.09-1.73 11.9-12.68 10.75h-18.3zm273.5 5.63c-5.88 .01-33.92-.3-57.36-12.29a12.8 12.8 0 0 1 -7.81-11.91v-10.75c0-8.45 6.2-6.9 8.83-5.89 10.04 4.06 16.48 7.14 28.81 9.6 36.65 7.53 52.77-2.3 56.72-4.48 13.15-7.81 14.19-25.68 5.25-34.95-10.48-8.79-15.48-9.12-53.13-21-4.64-1.29-43.7-13.61-43.79-52.36-.61-28.24 25.05-56.18 69.52-55.95 12.67-.01 46.43 4.13 55.57 15.62 1.35 2.09 2.02 4.55 1.92 7.04v10.11c0 4.44-1.62 6.66-4.87 6.66-7.71-.86-21.39-11.17-49.16-10.75-6.89-.36-39.89 .91-38.41 24.97-.43 18.96 26.61 26.07 29.7 26.89 36.46 10.97 48.65 12.79 63.12 29.58 17.14 22.25 7.9 48.3 4.35 55.44-19.08 37.49-68.42 34.44-69.26 34.42zm40.2 104.9c-70.03 51.72-171.7 79.25-258.5 79.25A469.1 469.1 0 0 1 2.83 327.5c-6.53-5.89-.77-13.96 7.17-9.47a637.4 637.4 0 0 0 316.9 84.12 630.2 630.2 0 0 0 241.6-49.55c11.78-5 21.77 7.8 10.12 16.38zm29.19-33.29c-8.96-11.52-59.28-5.38-81.81-2.69-6.79 .77-7.94-5.12-1.79-9.47 40.07-28.17 105.9-20.1 113.4-10.63 7.55 9.47-2.05 75.41-39.56 106.9-5.76 4.87-11.27 2.3-8.71-4.1 8.44-21.25 27.39-68.49 18.43-80.02z" - } - }, - "free": [ - "brands" - ] - }, - "b": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "42", - "aliases": { - "unicodes": { - "composite": [ - "62" - ] - } - }, - "label": "B", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M257.1 242.4C276.1 220.1 288 191.6 288 160c0-70.58-57.42-128-128-128H32c-17.67 0-32 14.33-32 32v384c0 17.67 14.33 32 32 32l160-.0049c70.58 0 128-57.42 128-128C320 305.3 294.6 264.8 257.1 242.4zM64 96.01h96c35.3 0 64 28.7 64 64s-28.7 64-64 64H64V96.01zM192 416H64v-128h128c35.3 0 64 28.7 64 64S227.3 416 192 416z" - } - }, - "free": [ - "solid" - ] - }, - "baby": { - "changes": [ - "5.6.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f77c", - "aliases": { - "unicodes": { - "secondary": [ - "10f77c" - ] - } - }, - "label": "Baby", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573173, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M156.8 411.8l31.22-31.22l-60.04-53.09l-52.29 52.28C61.63 393.8 60.07 416.1 72 432l48 64C127.9 506.5 139.9 512 152 512c8.345 0 16.78-2.609 23.97-8c17.69-13.25 21.25-38.33 8-56L156.8 411.8zM224 159.1c44.25 0 79.99-35.75 79.99-79.1S268.3 0 224 0S144 35.75 144 79.1S179.8 159.1 224 159.1zM408.7 145c-12.75-18.12-37.63-22.38-55.76-9.75l-40.63 28.5c-52.63 37-124.1 37-176.8 0l-40.63-28.5C76.84 122.6 51.97 127 39.22 145C26.59 163.1 30.97 188 48.97 200.8l40.63 28.5C101.7 237.7 114.7 244.3 128 250.2L128 288h192l.0002-37.71c13.25-5.867 26.22-12.48 38.34-21.04l40.63-28.5C417.1 188 421.4 163.1 408.7 145zM320 327.4l-60.04 53.09l31.22 31.22L264 448c-13.25 17.67-9.689 42.75 8 56C279.2 509.4 287.6 512 295.1 512c12.16 0 24.19-5.516 32.03-16l48-64c11.94-15.92 10.38-38.2-3.719-52.28L320 327.4z" - } - }, - "free": [ - "solid" - ] - }, - "baby-carriage": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f77d", - "aliases": { - "names": [ - "carriage-baby" - ], - "unicodes": { - "secondary": [ - "10f77d" - ] - } - }, - "label": "Baby Carriage", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573172, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M255.1 192H.1398C2.741 117.9 41.34 52.95 98.98 14.1C112.2 5.175 129.8 9.784 138.9 22.92L255.1 192zM384 160C384 124.7 412.7 96 448 96H480C497.7 96 512 110.3 512 128C512 145.7 497.7 160 480 160H448V224C448 249.2 442.2 274.2 430.9 297.5C419.7 320.8 403.2 341.9 382.4 359.8C361.6 377.6 336.9 391.7 309.7 401.4C282.5 411 253.4 416 223.1 416C194.6 416 165.5 411 138.3 401.4C111.1 391.7 86.41 377.6 65.61 359.8C44.81 341.9 28.31 320.8 17.05 297.5C5.794 274.2 0 249.2 0 224H384L384 160zM31.1 464C31.1 437.5 53.49 416 79.1 416C106.5 416 127.1 437.5 127.1 464C127.1 490.5 106.5 512 79.1 512C53.49 512 31.1 490.5 31.1 464zM416 464C416 490.5 394.5 512 368 512C341.5 512 320 490.5 320 464C320 437.5 341.5 416 368 416C394.5 416 416 437.5 416 464z" - } - }, - "free": [ - "solid" - ] - }, - "backward": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f04a", - "aliases": { - "unicodes": { - "composite": [ - "23ea" - ], - "secondary": [ - "10f04a" - ] - } - }, - "label": "backward", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573173, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M459.5 71.41l-171.5 142.9v83.45l171.5 142.9C480.1 457.7 512 443.3 512 415.1V96.03C512 68.66 480.1 54.28 459.5 71.41zM203.5 71.41L11.44 231.4c-15.25 12.87-15.25 36.37 0 49.24l192 159.1c20.63 17.12 52.51 2.749 52.51-24.62v-319.9C255.1 68.66 224.1 54.28 203.5 71.41z" - } - }, - "free": [ - "solid" - ] - }, - "backward-fast": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f049", - "aliases": { - "names": [ - "fast-backward" - ], - "unicodes": { - "composite": [ - "23ee" - ], - "secondary": [ - "10f049" - ] - } - }, - "label": "Backward fast", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573173, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 415.1V96.03c0-17.67 14.33-31.1 31.1-31.1C49.67 64.03 64 78.36 64 96.03v131.8l171.5-156.5C256.1 54.28 288 68.66 288 96.03v131.9l171.5-156.5C480.1 54.28 512 68.66 512 96.03v319.9c0 27.37-31.88 41.74-52.5 24.62L288 285.2v130.7c0 27.37-31.88 41.74-52.5 24.62L64 285.2v130.7c0 17.67-14.33 31.1-31.1 31.1C14.33 447.1 0 433.6 0 415.1z" - } - }, - "free": [ - "solid" - ] - }, - "backward-step": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f048", - "aliases": { - "names": [ - "step-backward" - ], - "unicodes": { - "secondary": [ - "10f048" - ] - } - }, - "label": "Backward step", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573173, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M31.1 64.03c-17.67 0-31.1 14.33-31.1 32v319.9c0 17.67 14.33 32 32 32C49.67 447.1 64 433.6 64 415.1V96.03C64 78.36 49.67 64.03 31.1 64.03zM267.5 71.41l-192 159.1C67.82 237.8 64 246.9 64 256c0 9.094 3.82 18.18 11.44 24.62l192 159.1c20.63 17.12 52.51 2.75 52.51-24.62v-319.9C319.1 68.66 288.1 54.28 267.5 71.41z" - } - }, - "free": [ - "solid" - ] - }, - "bacon": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7e5", - "aliases": { - "unicodes": { - "composite": [ - "1f953" - ], - "secondary": [ - "10f7e5" - ] - } - }, - "label": "Bacon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573173, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M29.34 432.5l-18.06-20.15c-9.406-10.47-13.25-25.3-10.31-39.65c2.813-13.71 11.23-24.74 23.09-30.23l68.88-31.94c47.95-22.25 87.64-60.2 114.8-109.8l20.66-37.76c28.77-52.59 70.98-92.93 122.1-116.6l92.75-42.99c14.84-6.812 32.41-3.078 43.69 9.518l34.08 38.01l-104.8 48.56c-55.72 25.83-101.7 69.73-133 127L261.3 266.5c-28.03 51.22-69 90.42-118.5 113.4L29.34 432.5zM564.7 99.68l-21.4-23.87l-113.6 52.68c-49.47 22.94-90.44 62.11-118.5 113.3L289.3 281.9c-31.33 57.27-77.34 101.2-133.1 127l-104.5 48.43l37.43 41.74C96.64 507.5 106.1 512 117.5 512c5.188 0 10.41-1.11 15.33-3.375l92.75-42.99c51.13-23.69 93.34-64.03 122.1-116.6l20.66-37.76c27.11-49.56 66.8-87.5 114.8-109.8l68.88-31.94c11.86-5.486 20.28-16.52 23.09-30.23C577.1 124.1 574.1 110.1 564.7 99.68z" - } - }, - "free": [ - "solid" - ] - }, - "bacteria": { - "changes": [ - "5.13.0", - "5.13.1", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e059", - "aliases": { - "unicodes": { - "secondary": [ - "10e059" - ] - } - }, - "label": "Bacteria", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573173, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M627.3 227.3c9.439-2.781 14.81-12.65 12-22.04c-3.039-10.21-13.57-14.52-22.14-11.95l-11.27 3.33c-8.086-15.15-20.68-27.55-36.4-35.43l2.888-11.06c1.867-7.158-1.9-22.19-17.26-22.19c-7.92 0-15.14 5.288-17.23 13.28l-2.865 10.97c-7.701-.2793-26.9-.6485-48.75 13.63L477.6 157.1c-3.777-3.873-15.44-9.779-25.19-.3691c-7.062 6.822-7.225 18.04-.3711 25.07l9.14 9.373c-11.96 18.85-10.27 28.38-15.88 46.61c-8.023-3.758-11.44-5.943-16.66-5.943c-6.689 0-13.09 3.763-16.13 10.19c-4.188 8.856-.3599 19.42 8.546 23.58l8.797 4.115c-14.91 22.05-34.42 33.57-34.83 33.83l-3.922-8.855C387.2 285.8 376.7 281.7 367.7 285.6c-9 3.959-13.08 14.42-9.115 23.39l4.041 9.127c-16.38 4.559-27.93 4.345-46.15 16.94l-9.996-9.012c-6.969-6.303-18.28-6.33-25.15 1.235c-6.609 7.26-6.053 18.47 1.24 25.04l9.713 8.756c-8.49 14.18-12.74 30.77-11.64 48.17l-11.86 3.512c-9.428 2.793-14.8 12.66-11.99 22.05c2.781 9.385 12.69 14.71 22.15 11.94l11.34-3.359c8.287 15.49 20.99 27.86 36.38 35.57l-2.839 10.85c-2.482 9.477 3.224 19.16 12.75 21.62c9.566 2.482 19.25-3.221 21.72-12.69l2.82-10.78c5.508 .1875 11.11-.1523 16.75-1.102c11.37-1.893 22.23-5.074 33.1-8.24l3.379 9.455c3.305 9.225 13.5 14.11 22.75 10.76c9.266-3.279 14.1-13.41 10.81-22.65l-3.498-9.792c15.41-6.654 30.08-14.46 43.95-23.57l6.321 8.429c5.891 7.84 17.05 9.443 24.93 3.602c7.885-5.863 9.498-16.97 3.617-24.82l-6.457-8.611c12.66-10.78 24.33-22.54 34.96-35.33l8.816 6.413c7.932 5.795 19.07 4.074 24.89-3.855c5.809-7.908 4.072-18.1-3.874-24.77l-8.885-6.465c8.893-13.88 16.54-28.52 22.99-43.91l10.47 3.59c9.334 3.186 19.43-1.719 22.64-10.99c3.211-9.258-1.739-19.35-11.04-22.53l-10.33-3.541c5.744-20.5 9.424-31.81 8.338-49.26L627.3 227.3zM416 416c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32c17.67 0 32 14.33 32 32C448 401.7 433.7 416 416 416zM272.3 226.4c9-3.959 13.08-14.42 9.115-23.39L277.4 193.9c16.38-4.561 27.93-4.345 46.15-16.94l9.996 9.012c6.969 6.301 18.28 6.326 25.15-1.236c6.609-7.26 6.053-18.47-1.24-25.04l-9.713-8.756c8.49-14.18 12.74-30.77 11.64-48.18l11.86-3.511c9.428-2.793 14.8-12.66 11.99-22.05c-2.781-9.385-12.69-14.71-22.15-11.94l-11.34 3.357C341.5 53.13 328.8 40.76 313.4 33.05l2.838-10.85C318.7 12.73 313 3.04 303.5 .5811c-9.566-2.482-19.25 3.222-21.72 12.69l-2.82 10.78C273.4 23.86 267.8 24.2 262.2 25.15C250.8 27.04 239.1 30.22 229.1 33.39L225.7 23.93C222.4 14.71 212.2 9.827 202.1 13.17C193.7 16.45 188.9 26.59 192.2 35.82l3.498 9.793C180.2 52.27 165.6 60.07 151.7 69.19L145.4 60.76C139.5 52.92 128.3 51.32 120.5 57.16C112.6 63.02 110.1 74.13 116.8 81.98l6.457 8.611C110.6 101.4 98.96 113.1 88.34 125.9L79.52 119.5c-7.932-5.795-19.08-4.074-24.89 3.855c-5.809 7.908-4.07 19 3.875 24.77l8.885 6.465C58.5 168.5 50.86 183.1 44.41 198.5L33.93 194.9c-9.334-3.186-19.44 1.721-22.64 10.99C8.086 215.2 13.04 225.3 22.34 228.4l10.33 3.541C26.93 252.5 23.25 263.8 24.33 281.2L12.75 284.7C3.309 287.4-2.061 297.3 .7441 306.7c3.041 10.21 13.57 14.52 22.14 11.95l11.27-3.33c8.086 15.15 20.68 27.55 36.39 35.43l-2.887 11.06c-1.865 7.156 1.902 22.19 17.26 22.19c7.92 0 15.14-5.287 17.23-13.28l2.863-10.97c7.701 .2773 26.9 .6465 48.76-13.63l8.59 8.809c3.777 3.873 15.44 9.779 25.19 .3691c7.062-6.822 7.225-18.04 .3711-25.07l-9.14-9.373c11.96-18.85 10.27-28.38 15.88-46.61c8.025 3.756 11.44 5.943 16.66 5.943c6.689 0 13.09-3.762 16.13-10.19C231.6 261.1 227.8 250.6 218.9 246.4L210.1 242.3C225 220.2 244.5 208.7 244.9 208.5l3.922 8.856C252.8 226.2 263.3 230.3 272.3 226.4zM128 256C110.3 256 96 241.7 96 223.1c0-17.67 14.33-32 32-32c17.67 0 32 14.33 32 32C160 241.7 145.7 256 128 256zM208 160c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16s16 7.162 16 16C224 152.8 216.8 160 208 160z" - } - }, - "free": [ - "solid" - ] - }, - "bacterium": { - "changes": [ - "5.13.0", - "5.13.1", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e05a", - "aliases": { - "unicodes": { - "secondary": [ - "10e05a" - ] - } - }, - "label": "Bacterium", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573173, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M543 102.9c-3.711-12.51-16.92-19.61-29.53-15.92l-15.12 4.48c-11.05-20.65-27.98-37.14-48.5-47.43l3.783-14.46c3.309-12.64-4.299-25.55-16.99-28.83c-12.76-3.309-25.67 4.295-28.96 16.92l-3.76 14.37c-9.947-.3398-26.22 .1016-66.67 11.88l-4.301-12.03c-4.406-12.3-17.1-18.81-30.34-14.34c-12.35 4.371-18.8 17.88-14.41 30.2l4.303 12.04c-20.6 8.889-40.16 19.64-58.69 31.83L225.9 81.01C217.1 70.56 203.1 68.42 192.6 76.21C182.1 84.03 179.9 98.83 187.8 109.3l7.975 10.63C178.8 134.3 163.3 150.3 149.1 167.4L138 159.3C127.5 151.6 112.6 153.9 104.8 164.5c-7.748 10.54-5.428 25.33 5.164 33.03l11.09 8.066C109.2 224.1 98.79 243.7 90.18 264.3l-12.93-4.431c-12.45-4.248-25.92 2.293-30.18 14.65C42.78 286.9 49.38 300.3 61.78 304.6l13.05 4.474c-11.86 42.33-11.02 55.76-10.39 65.93l-15.45 4.566c-12.59 3.709-19.74 16.87-16 29.38c4.053 13.61 18.1 19.36 29.52 15.93l15.02-4.441c10.78 20.21 27.57 36.73 48.53 47.24l-3.852 14.75C119.7 491.1 124.8 512 145.2 512c10.56 0 20.19-7.049 22.98-17.7l3.816-14.63c10.2 .377 35.85 .873 65.01-18.17l11.45 11.74c5.037 5.164 20.59 13.04 33.58 .4922c9.416-9.096 9.633-24.06 .4941-33.43l-12.19-12.5c7.805-12.29 13.56-26.13 16.11-41.4c1.186-7.107 3.082-13.95 5.158-20.7c10.66 4.988 15.16 7.881 22.12 7.881c8.922 0 17.46-5.018 21.51-13.59c5.582-11.8 .4785-25.89-11.4-31.45l-11.73-5.486c20.09-29.62 45.89-44.76 46.44-45.11l5.23 11.81c5.273 11.86 19.19 17.36 31.33 12.1c11.1-5.279 17.44-19.22 12.15-31.18L401.9 258.5c5.438-1.512 10.86-3.078 16.52-4.021c16.8-2.797 31.88-9.459 45.02-18.54l13.33 12.02c9.289 8.395 24.37 8.439 33.54-1.648c8.814-9.68 8.072-24.62-1.654-33.38l-12.95-11.68c11.32-18.9 16.99-41.02 15.52-64.23l15.81-4.681C539.6 128.6 546.7 115.4 543 102.9zM192 368c-26.51 0-48.01-21.49-48.01-48s21.5-48 48.01-48S240.1 293.5 240.1 320S218.6 368 192 368zM272 232c-13.25 0-23.92-10.75-23.92-24c0-13.26 10.67-23.1 23.92-23.1c13.26 0 23.1 10.74 23.1 23.1C295.1 221.3 285.3 232 272 232z" - } - }, - "free": [ - "solid" - ] - }, - "bag-shopping": { - "changes": [ - "4.5.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f290", - "aliases": { - "names": [ - "shopping-bag" - ], - "unicodes": { - "secondary": [ - "10f290" - ] - } - }, - "label": "Bag shopping", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573174, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M112 112C112 50.14 162.1 0 224 0C285.9 0 336 50.14 336 112V160H400C426.5 160 448 181.5 448 208V416C448 469 405 512 352 512H96C42.98 512 0 469 0 416V208C0 181.5 21.49 160 48 160H112V112zM160 160H288V112C288 76.65 259.3 48 224 48C188.7 48 160 76.65 160 112V160zM136 256C149.3 256 160 245.3 160 232C160 218.7 149.3 208 136 208C122.7 208 112 218.7 112 232C112 245.3 122.7 256 136 256zM312 208C298.7 208 288 218.7 288 232C288 245.3 298.7 256 312 256C325.3 256 336 245.3 336 232C336 218.7 325.3 208 312 208z" - } - }, - "free": [ - "solid" - ] - }, - "bahai": { - "changes": [ - "5.3.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f666", - "aliases": { - "names": [ - "haykal" - ], - "unicodes": { - "secondary": [ - "10f666" - ] - } - }, - "label": "Bahá'í", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573174, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M496.3 202.5l-110-15.38l41.88-104.4c6.625-16.63-11.63-32.25-26.63-22.63L307.5 120l-34.13-107.1C270.6 4.25 263.4 0 255.1 0C248.6 0 241.4 4.25 238.6 12.88L204.5 120L110.5 60.12c-15-9.5-33.22 5.1-26.6 22.63l41.85 104.4L15.71 202.5C-1.789 205-5.915 228.8 9.71 237.2l98.14 52.63l-74.51 83.5c-10.88 12.25-1.78 31 13.35 31c1.25 0 2.657-.25 4.032-.5l108.6-23.63l-4.126 112.5C154.7 504.4 164.1 512 173.6 512c5.125 0 10.38-2.25 14.25-7.25l68.13-88.88l68.23 88.88C327.1 509.8 333.2 512 338.4 512c9.5 0 18.88-7.625 18.38-19.25l-4.032-112.5l108.5 23.63c17.38 3.75 29.25-17.25 17.38-30.5l-74.51-83.5l98.14-52.72C517.9 228.8 513.8 205 496.3 202.5zM338.5 311.6L286.6 300.4l2 53.75l-32.63-42.5l-32.63 42.5l2-53.75L173.5 311.6l35.63-39.87L162.1 246.6L214.7 239.2L194.7 189.4l45 28.63L255.1 166.8l16.25 51.25l45-28.63L297.2 239.2l52.63 7.375l-47 25.13L338.5 311.6z" - } - }, - "free": [ - "solid" - ] - }, - "baht-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0ac", - "label": "Baht Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573174, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M176 32V64C237.9 64 288 114.1 288 176C288 200.2 280.3 222.6 267.3 240.9C298.9 260.7 320 295.9 320 336C320 397.9 269.9 448 208 448H176V480C176 497.7 161.7 512 144 512C126.3 512 112 497.7 112 480V448H41.74C18.69 448 0 429.3 0 406.3V101.6C0 80.82 16.82 64 37.57 64H112V32C112 14.33 126.3 0 144 0C161.7 0 176 14.33 176 32V32zM112 128H64V224H112V128zM224 176C224 149.5 202.5 128 176 128V224C202.5 224 224 202.5 224 176zM112 288H64V384H112V288zM208 384C234.5 384 256 362.5 256 336C256 309.5 234.5 288 208 288H176V384H208z" - } - }, - "free": [ - "solid" - ] - }, - "ban": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f05e", - "aliases": { - "names": [ - "cancel" - ], - "unicodes": { - "composite": [ - "1f6ab" - ], - "secondary": [ - "10f05e" - ] - } - }, - "label": "ban", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573174, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM99.5 144.8C77.15 176.1 64 214.5 64 256C64 362 149.1 448 256 448C297.5 448 335.9 434.9 367.2 412.5L99.5 144.8zM448 256C448 149.1 362 64 256 64C214.5 64 176.1 77.15 144.8 99.5L412.5 367.2C434.9 335.9 448 297.5 448 256V256z" - } - }, - "free": [ - "solid" - ] - }, - "ban-smoking": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f54d", - "aliases": { - "names": [ - "smoking-ban" - ], - "unicodes": { - "composite": [ - "1f6ad" - ], - "secondary": [ - "10f54d" - ] - } - }, - "label": "Ban smoking", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573174, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 304C96 312.8 103.3 320 112 320h117.5l-96-96H112C103.3 224 96 231.3 96 240V304zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 448c-105.9 0-192-86.13-192-192c0-41.38 13.25-79.75 35.75-111.1l267.4 267.4C335.8 434.8 297.4 448 256 448zM301.2 256H384v32h-50.81L301.2 256zM412.3 367.1L365.2 320H400c8.75 0 16-7.25 16-16v-64C416 231.3 408.8 224 400 224h-130.8L144.9 99.75C176.3 77.25 214.6 64 256 64C361.9 64 448 150.1 448 256C448 297.4 434.8 335.8 412.3 367.1zM320.6 128C305 128 292 116.8 289.3 102.1C288.5 98.5 285.3 96 281.5 96h-16.25c-5 0-8.625 4.5-8 9.375C261.9 136.3 288.5 160 320.6 160C336.3 160 349.3 171.3 352 185.9C352.8 189.5 356 192 359.8 192h16.17c5 0 8.708-4.5 7.958-9.375C379.3 151.7 352.8 128 320.6 128z" - } - }, - "free": [ - "solid" - ] - }, - "bandage": { - "changes": [ - "5.0.7", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f462", - "aliases": { - "names": [ - "band-aid" - ], - "unicodes": { - "composite": [ - "1fa79" - ], - "secondary": [ - "10f462" - ] - } - }, - "label": "Bandage", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573174, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M480 96H576C611.3 96 640 124.7 640 160V352C640 387.3 611.3 416 576 416H480V96zM448 416H192V96H448V416zM272 184C258.7 184 248 194.7 248 208C248 221.3 258.7 232 272 232C285.3 232 296 221.3 296 208C296 194.7 285.3 184 272 184zM368 232C381.3 232 392 221.3 392 208C392 194.7 381.3 184 368 184C354.7 184 344 194.7 344 208C344 221.3 354.7 232 368 232zM272 280C258.7 280 248 290.7 248 304C248 317.3 258.7 328 272 328C285.3 328 296 317.3 296 304C296 290.7 285.3 280 272 280zM368 328C381.3 328 392 317.3 392 304C392 290.7 381.3 280 368 280C354.7 280 344 290.7 344 304C344 317.3 354.7 328 368 328zM64 96H160V416H64C28.65 416 0 387.3 0 352V160C0 124.7 28.65 96 64 96z" - } - }, - "free": [ - "solid" - ] - }, - "bandcamp": { - "changes": [ - "4.7.0", - "5.0.0", - "5.13.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2d5", - "label": "Bandcamp", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 8C119 8 8 119 8 256S119 504 256 504 504 393 504 256 393 8 256 8zm48.2 326.1h-181L207.9 178h181z" - } - }, - "free": [ - "brands" - ] - }, - "barcode": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f02a", - "aliases": { - "unicodes": { - "secondary": [ - "10f02a" - ] - } - }, - "label": "barcode", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M40 32C53.25 32 64 42.75 64 56V456C64 469.3 53.25 480 40 480H24C10.75 480 0 469.3 0 456V56C0 42.75 10.75 32 24 32H40zM128 48V464C128 472.8 120.8 480 112 480C103.2 480 96 472.8 96 464V48C96 39.16 103.2 32 112 32C120.8 32 128 39.16 128 48zM200 32C213.3 32 224 42.75 224 56V456C224 469.3 213.3 480 200 480H184C170.7 480 160 469.3 160 456V56C160 42.75 170.7 32 184 32H200zM296 32C309.3 32 320 42.75 320 56V456C320 469.3 309.3 480 296 480H280C266.7 480 256 469.3 256 456V56C256 42.75 266.7 32 280 32H296zM448 56C448 42.75 458.7 32 472 32H488C501.3 32 512 42.75 512 56V456C512 469.3 501.3 480 488 480H472C458.7 480 448 469.3 448 456V56zM384 48C384 39.16 391.2 32 400 32C408.8 32 416 39.16 416 48V464C416 472.8 408.8 480 400 480C391.2 480 384 472.8 384 464V48z" - } - }, - "free": [ - "solid" - ] - }, - "bars": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0c9", - "aliases": { - "names": [ - "navicon" - ], - "unicodes": { - "secondary": [ - "10f0c9" - ] - } - }, - "label": "Bars", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 96C0 78.33 14.33 64 32 64H416C433.7 64 448 78.33 448 96C448 113.7 433.7 128 416 128H32C14.33 128 0 113.7 0 96zM0 256C0 238.3 14.33 224 32 224H416C433.7 224 448 238.3 448 256C448 273.7 433.7 288 416 288H32C14.33 288 0 273.7 0 256zM416 448H32C14.33 448 0 433.7 0 416C0 398.3 14.33 384 32 384H416C433.7 384 448 398.3 448 416C448 433.7 433.7 448 416 448z" - } - }, - "free": [ - "solid" - ] - }, - "bars-progress": { - "changes": [ - "5.7.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f828", - "aliases": { - "names": [ - "tasks-alt" - ], - "unicodes": { - "secondary": [ - "10f828" - ] - } - }, - "label": "Bars progress", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 64C490.5 64 512 85.49 512 112V176C512 202.5 490.5 224 464 224H48C21.49 224 0 202.5 0 176V112C0 85.49 21.49 64 48 64H464zM448 128H320V160H448V128zM464 288C490.5 288 512 309.5 512 336V400C512 426.5 490.5 448 464 448H48C21.49 448 0 426.5 0 400V336C0 309.5 21.49 288 48 288H464zM192 352V384H448V352H192z" - } - }, - "free": [ - "solid" - ] - }, - "bars-staggered": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f550", - "aliases": { - "names": [ - "reorder", - "stream" - ], - "unicodes": { - "secondary": [ - "10f550" - ] - } - }, - "label": "Bars staggered", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 96C0 78.33 14.33 64 32 64H416C433.7 64 448 78.33 448 96C448 113.7 433.7 128 416 128H32C14.33 128 0 113.7 0 96zM64 256C64 238.3 78.33 224 96 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H96C78.33 288 64 273.7 64 256zM416 448H32C14.33 448 0 433.7 0 416C0 398.3 14.33 384 32 384H416C433.7 384 448 398.3 448 416C448 433.7 433.7 448 416 448z" - } - }, - "free": [ - "solid" - ] - }, - "baseball": { - "changes": [ - "5.0.5", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f433", - "aliases": { - "names": [ - "baseball-ball" - ], - "unicodes": { - "composite": [ - "1f94e", - "26be" - ], - "secondary": [ - "10f433" - ] - } - }, - "label": "Baseball Ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M429.6 272.9c0-16.26 16.36-16.81 29.99-16.81l2.931 .0029c16.64 0 33.14 2.056 49.2 5.834C511.7 259.9 512 258 512 256c0-141.4-114.6-256-256-256C253.9 0 251.1 .2578 249.9 .3047c3.658 15.51 6.111 31.34 6.111 47.54c0 6-.2813 12.03-.7813 18C254.6 74.19 247.6 80.5 239.3 80.5c-6.091 0-16.03-4.68-16.03-15.97c0-1.733 .7149-7.153 .7149-16.69c0-15.26-2.389-30.18-6.225-44.69C106.9 19.79 19.5 107.3 3.08 218.3c14.44 3.819 29.38 5.79 44.45 5.79c10.07 0 15.59-.811 17.42-.811c6.229 0 16.49 4.657 16.49 15.99c0 16.11-16.13 16.77-29.73 16.77L48.16 256c-16.33 0-32.25-2.445-47.85-6.109C.2578 251.1 0 253.9 0 256c0 141.4 114.6 256 256 256c2.066 0 4.062-.2578 6.117-.3086C258.5 496.2 256 480.4 256 464.2c0-5.688 .25-11.38 .7187-17.03c.6964-8.538 8.287-14.61 16.49-14.61c7.1 0 15.44 6.938 15.44 15.92c0 2.358-.6524 5.88-.6524 15.72c0 15.25 2.383 30.16 6.209 44.66c110.8-16.63 198.2-104.1 214.7-215c-14.55-3.851-29.59-5.871-44.74-5.871c-10.47 0-16.24 .895-18.13 .895C443.3 288.9 429.6 286.5 429.6 272.9zM238.2 128.9c0 27.78-78.3 108.1-108.6 108.1c-8.612 0-16.01-6.963-16.01-15.98c0-6.002 3.394-11.75 9.163-14.49c80.3-38.08 76.21-94.5 99.39-94.5C234.7 112.8 238.2 124.2 238.2 128.9zM397.5 290.6c0 5.965-3.364 11.68-9.131 14.43c-78.82 37.57-75.92 95-98.94 95c-12.58 0-16.01-11.54-16.01-16.03c0-28 78.29-109.4 108.1-109.4C390.8 274.6 397.5 282.3 397.5 290.6z" - } - }, - "free": [ - "solid" - ] - }, - "baseball-bat-ball": { - "changes": [ - "5.0.5", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f432", - "aliases": { - "unicodes": { - "secondary": [ - "10f432" - ] - } - }, - "label": "Baseball bat ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M57.89 397.2c-6.262-8.616-16.02-13.19-25.92-13.19c-23.33 0-31.98 20.68-31.98 32.03c0 6.522 1.987 13.1 6.115 18.78l46.52 64C58.89 507.4 68.64 512 78.55 512c23.29 0 31.97-20.66 31.97-32.03c0-6.522-1.988-13.1-6.115-18.78L57.89 397.2zM496.1 352c-44.13 0-79.72 35.75-79.72 80s35.59 80 79.72 80s79.91-35.75 79.91-80S540.2 352 496.1 352zM640 99.38c0-13.61-4.133-27.34-12.72-39.2l-23.63-32.5c-13.44-18.5-33.77-27.68-54.12-27.68c-13.89 0-27.79 4.281-39.51 12.8L307.8 159.7C262.2 192.8 220.4 230.9 183.4 273.4c-24.22 27.88-59.18 63.99-103.5 99.63l56.34 77.52c53.79-35.39 99.15-55.3 127.1-67.27c51.88-22 101.3-49.87 146.9-82.1l202.3-146.7C630.5 140.4 640 120 640 99.38z" - } - }, - "free": [ - "solid" - ] - }, - "basket-shopping": { - "changes": [ - "4.5.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f291", - "aliases": { - "names": [ - "shopping-basket" - ], - "unicodes": { - "secondary": [ - "10f291" - ] - } - }, - "label": "Basket shopping", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M171.7 191.1H404.3L322.7 35.07C316.6 23.31 321.2 8.821 332.9 2.706C344.7-3.409 359.2 1.167 365.3 12.93L458.4 191.1H544C561.7 191.1 576 206.3 576 223.1C576 241.7 561.7 255.1 544 255.1L492.1 463.5C484.1 492 459.4 512 430 512H145.1C116.6 512 91 492 83.88 463.5L32 255.1C14.33 255.1 0 241.7 0 223.1C0 206.3 14.33 191.1 32 191.1H117.6L210.7 12.93C216.8 1.167 231.3-3.409 243.1 2.706C254.8 8.821 259.4 23.31 253.3 35.07L171.7 191.1zM191.1 303.1C191.1 295.1 184.8 287.1 175.1 287.1C167.2 287.1 159.1 295.1 159.1 303.1V399.1C159.1 408.8 167.2 415.1 175.1 415.1C184.8 415.1 191.1 408.8 191.1 399.1V303.1zM271.1 303.1V399.1C271.1 408.8 279.2 415.1 287.1 415.1C296.8 415.1 304 408.8 304 399.1V303.1C304 295.1 296.8 287.1 287.1 287.1C279.2 287.1 271.1 295.1 271.1 303.1zM416 303.1C416 295.1 408.8 287.1 400 287.1C391.2 287.1 384 295.1 384 303.1V399.1C384 408.8 391.2 415.1 400 415.1C408.8 415.1 416 408.8 416 399.1V303.1z" - } - }, - "free": [ - "solid" - ] - }, - "basketball": { - "changes": [ - "5.0.5", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f434", - "aliases": { - "names": [ - "basketball-ball" - ], - "unicodes": { - "composite": [ - "1f3c0" - ], - "secondary": [ - "10f434" - ] - } - }, - "label": "Basketball Ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M148.7 171.3L64.21 86.83c-28.39 32.16-48.9 71.38-58.3 114.8C19.41 205.4 33.34 208 48 208C86.34 208 121.1 193.9 148.7 171.3zM194.5 171.9L256 233.4l169.2-169.2C380 24.37 320.9 0 256 0C248.6 0 241.2 .4922 233.1 1.113C237.8 16.15 240 31.8 240 48C240 95.19 222.8 138.4 194.5 171.9zM208 48c0-14.66-2.623-28.59-6.334-42.09C158.2 15.31 118.1 35.82 86.83 64.21l84.48 84.48C193.9 121.1 208 86.34 208 48zM171.9 194.5C138.4 222.8 95.19 240 48 240c-16.2 0-31.85-2.236-46.89-6.031C.4922 241.2 0 248.6 0 256c0 64.93 24.37 124 64.21 169.2L233.4 256L171.9 194.5zM317.5 340.1L256 278.6l-169.2 169.2C131.1 487.6 191.1 512 256 512c7.438 0 14.75-.4922 22.03-1.113C274.2 495.8 272 480.2 272 464C272 416.8 289.2 373.6 317.5 340.1zM363.3 340.7l84.48 84.48c28.39-32.16 48.9-71.38 58.3-114.8C492.6 306.6 478.7 304 464 304C425.7 304 390.9 318.1 363.3 340.7zM447.8 86.83L278.6 256l61.52 61.52C373.6 289.2 416.8 272 464 272c16.2 0 31.85 2.236 46.89 6.031C511.5 270.8 512 263.4 512 256C512 191.1 487.6 131.1 447.8 86.83zM304 464c0 14.66 2.623 28.59 6.334 42.09c43.46-9.4 82.67-29.91 114.8-58.3l-84.48-84.48C318.1 390.9 304 425.7 304 464z" - } - }, - "free": [ - "solid" - ] - }, - "bath": { - "changes": [ - "4.7.0", - "5.0.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2cd", - "aliases": { - "names": [ - "bathtub" - ], - "unicodes": { - "composite": [ - "1f6c1" - ], - "secondary": [ - "10f2cd" - ] - } - }, - "label": "Bath", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 384c0 28.32 12.49 53.52 32 71.09V496C64 504.8 71.16 512 80 512h32C120.8 512 128 504.8 128 496v-15.1h256V496c0 8.836 7.164 16 16 16h32c8.836 0 16-7.164 16-16v-40.9c19.51-17.57 32-42.77 32-71.09V352H32V384zM496 256H96V77.25C95.97 66.45 111 60.23 118.6 67.88L132.4 81.66C123.6 108.6 129.4 134.5 144.2 153.2C137.9 159.5 137.8 169.8 144 176l11.31 11.31c6.248 6.248 16.38 6.248 22.63 0l105.4-105.4c6.248-6.248 6.248-16.38 0-22.63l-11.31-11.31c-6.248-6.248-16.38-6.248-22.63 0C230.7 33.26 204.7 27.55 177.7 36.41L163.9 22.64C149.5 8.25 129.6 0 109.3 0C66.66 0 32 34.66 32 77.25v178.8L16 256C7.164 256 0 263.2 0 272v32C0 312.8 7.164 320 16 320h480c8.836 0 16-7.164 16-16v-32C512 263.2 504.8 256 496 256z" - } - }, - "free": [ - "solid" - ] - }, - "battery-empty": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f244", - "aliases": { - "names": [ - "battery-0" - ], - "unicodes": { - "secondary": [ - "10f244" - ] - } - }, - "label": "Battery Empty", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573175, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M464 96C508.2 96 544 131.8 544 176V192C561.7 192 576 206.3 576 224V288C576 305.7 561.7 320 544 320V336C544 380.2 508.2 416 464 416H80C35.82 416 0 380.2 0 336V176C0 131.8 35.82 96 80 96H464zM64 336C64 344.8 71.16 352 80 352H464C472.8 352 480 344.8 480 336V176C480 167.2 472.8 160 464 160H80C71.16 160 64 167.2 64 176V336z" - } - }, - "free": [ - "solid" - ] - }, - "battery-full": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f240", - "aliases": { - "names": [ - "battery", - "battery-5" - ], - "unicodes": { - "composite": [ - "1f50b" - ], - "secondary": [ - "10f240" - ] - } - }, - "label": "Battery Full", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M448 320H96V192H448V320zM0 176C0 131.8 35.82 96 80 96H464C508.2 96 544 131.8 544 176V192C561.7 192 576 206.3 576 224V288C576 305.7 561.7 320 544 320V336C544 380.2 508.2 416 464 416H80C35.82 416 0 380.2 0 336V176zM80 160C71.16 160 64 167.2 64 176V336C64 344.8 71.16 352 80 352H464C472.8 352 480 344.8 480 336V176C480 167.2 472.8 160 464 160H80z" - } - }, - "free": [ - "solid" - ] - }, - "battery-half": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f242", - "aliases": { - "names": [ - "battery-3" - ], - "unicodes": { - "secondary": [ - "10f242" - ] - } - }, - "label": "Battery 1/2 Full", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 320H96V192H288V320zM0 176C0 131.8 35.82 96 80 96H464C508.2 96 544 131.8 544 176V192C561.7 192 576 206.3 576 224V288C576 305.7 561.7 320 544 320V336C544 380.2 508.2 416 464 416H80C35.82 416 0 380.2 0 336V176zM80 160C71.16 160 64 167.2 64 176V336C64 344.8 71.16 352 80 352H464C472.8 352 480 344.8 480 336V176C480 167.2 472.8 160 464 160H80z" - } - }, - "free": [ - "solid" - ] - }, - "battery-quarter": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f243", - "aliases": { - "names": [ - "battery-2" - ], - "unicodes": { - "secondary": [ - "10f243" - ] - } - }, - "label": "Battery 1/4 Full", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M192 320H96V192H192V320zM0 176C0 131.8 35.82 96 80 96H464C508.2 96 544 131.8 544 176V192C561.7 192 576 206.3 576 224V288C576 305.7 561.7 320 544 320V336C544 380.2 508.2 416 464 416H80C35.82 416 0 380.2 0 336V176zM80 160C71.16 160 64 167.2 64 176V336C64 344.8 71.16 352 80 352H464C472.8 352 480 344.8 480 336V176C480 167.2 472.8 160 464 160H80z" - } - }, - "free": [ - "solid" - ] - }, - "battery-three-quarters": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f241", - "aliases": { - "names": [ - "battery-4" - ], - "unicodes": { - "secondary": [ - "10f241" - ] - } - }, - "label": "Battery 3/4 Full", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M352 320H96V192H352V320zM0 176C0 131.8 35.82 96 80 96H464C508.2 96 544 131.8 544 176V192C561.7 192 576 206.3 576 224V288C576 305.7 561.7 320 544 320V336C544 380.2 508.2 416 464 416H80C35.82 416 0 380.2 0 336V176zM80 160C71.16 160 64 167.2 64 176V336C64 344.8 71.16 352 80 352H464C472.8 352 480 344.8 480 336V176C480 167.2 472.8 160 464 160H80z" - } - }, - "free": [ - "solid" - ] - }, - "battle-net": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f835", - "label": "Battle.net", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448.6 225.6c26.87 .18 35.57-7.43 38.92-12.37 12.47-16.32-7.06-47.6-52.85-71.33 17.76-33.58 30.11-63.68 36.34-85.3 3.38-11.83 1.09-19 .45-20.25-1.72 10.52-15.85 48.46-48.2 100.1-25-11.22-56.52-20.1-93.77-23.8-8.94-16.94-34.88-63.86-60.48-88.93C252.2 7.14 238.7 1.07 228.2 .22h-.05c-13.83-1.55-22.67 5.85-27.4 11-17.2 18.53-24.33 48.87-25 84.07-7.24-12.35-17.17-24.63-28.5-25.93h-.18c-20.66-3.48-38.39 29.22-36 81.29-38.36 1.38-71 5.75-93 11.23-9.9 2.45-16.22 7.27-17.76 9.72 1-.38 22.4-9.22 111.6-9.22 5.22 53 29.75 101.8 26 93.19-9.73 15.4-38.24 62.36-47.31 97.7-5.87 22.88-4.37 37.61 .15 47.14 5.57 12.75 16.41 16.72 23.2 18.26 25 5.71 55.38-3.63 86.7-21.14-7.53 12.84-13.9 28.51-9.06 39.34 7.31 19.65 44.49 18.66 88.44-9.45 20.18 32.18 40.07 57.94 55.7 74.12a39.79 39.79 0 0 0 8.75 7.09c5.14 3.21 8.58 3.37 8.58 3.37-8.24-6.75-34-38-62.54-91.78 22.22-16 45.65-38.87 67.47-69.27 122.8 4.6 143.3-24.76 148-31.64 14.67-19.88 3.43-57.44-57.32-93.69zm-77.85 106.2c23.81-37.71 30.34-67.77 29.45-92.33 27.86 17.57 47.18 37.58 49.06 58.83 1.14 12.93-8.1 29.12-78.51 33.5zM216.9 387.7c9.76-6.23 19.53-13.12 29.2-20.49 6.68 13.33 13.6 26.1 20.6 38.19-40.6 21.86-68.84 12.76-49.8-17.7zm215-171.4c-10.29-5.34-21.16-10.34-32.38-15.05a722.5 722.5 0 0 0 22.74-36.9c39.06 24.1 45.9 53.18 9.64 51.95zM279.2 398c-5.51-11.35-11-23.5-16.5-36.44 43.25 1.27 62.42-18.73 63.28-20.41 0 .07-25 15.64-62.53 12.25a718.8 718.8 0 0 0 85.06-84q13.06-15.31 24.93-31.11c-.36-.29-1.54-3-16.51-12-51.7 60.27-102.3 98-132.8 115.9-20.59-11.18-40.84-31.78-55.71-61.49-20-39.92-30-82.39-31.57-116.1 12.3 .91 25.27 2.17 38.85 3.88-22.29 36.8-14.39 63-13.47 64.23 0-.07-.95-29.17 20.14-59.57a695.2 695.2 0 0 0 44.67 152.8c.93-.38 1.84 .88 18.67-8.25-26.33-74.47-33.76-138.2-34-173.4 20-12.42 48.18-19.8 81.63-17.81 44.57 2.67 86.36 15.25 116.3 30.71q-10.69 15.66-23.33 32.47C365.6 152 339.1 145.8 337.5 146c.11 0 25.9 14.07 41.52 47.22a717.6 717.6 0 0 0 -115.3-31.71 646.6 646.6 0 0 0 -39.39-6.05c-.07 .45-1.81 1.85-2.16 20.33C300 190.3 358.8 215.7 389.4 233c.74 23.55-6.95 51.61-25.41 79.57-24.6 37.31-56.39 67.23-84.77 85.43zm27.4-287c-44.56-1.66-73.58 7.43-94.69 20.67 2-52.3 21.31-76.38 38.21-75.28C267 52.15 305 108.6 306.6 111zm-130.6 3.1c.48 12.11 1.59 24.62 3.21 37.28-14.55-.85-28.74-1.25-42.4-1.26-.08 3.24-.12-51 24.67-49.59h.09c5.76 1.09 10.63 6.88 14.43 13.57zm-28.06 162c20.76 39.7 43.3 60.57 65.25 72.31-46.79 24.76-77.53 20-84.92 4.51-.2-.21-11.13-15.3 19.67-76.81zm210.1 74.8" - } - }, - "free": [ - "brands" - ] - }, - "bed": { - "changes": [ - "4.3.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f236", - "aliases": { - "unicodes": { - "composite": [ - "1f6cc" - ], - "secondary": [ - "10f236" - ] - } - }, - "label": "Bed", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M32 32C49.67 32 64 46.33 64 64V320H288V160C288 142.3 302.3 128 320 128H544C597 128 640 170.1 640 224V448C640 465.7 625.7 480 608 480C590.3 480 576 465.7 576 448V416H64V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448V64C0 46.33 14.33 32 32 32zM96 208C96 163.8 131.8 128 176 128C220.2 128 256 163.8 256 208C256 252.2 220.2 288 176 288C131.8 288 96 252.2 96 208z" - } - }, - "free": [ - "solid" - ] - }, - "bed-pulse": { - "changes": [ - "5.0.7", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f487", - "aliases": { - "names": [ - "procedures" - ], - "unicodes": { - "secondary": [ - "10f487" - ] - } - }, - "label": "Bed pulse", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M524 64H616C629.3 64 640 74.75 640 88C640 101.3 629.3 112 616 112H512C504.4 112 497.3 108.4 492.8 102.4L468.7 70.31L421.7 170.2C418 178.1 410.4 183.3 401.8 183.9C393.1 184.6 384.8 180.5 380 173.3L339.2 112H216C202.7 112 192 101.3 192 88C192 74.75 202.7 64 216 64H352C360 64 367.5 68.01 371.1 74.69L396.4 111.3L442.3 13.78C445.9 6.163 453.2 .9806 461.6 .1246C469.9-.7314 478.1 2.865 483.2 9.6L524 64zM320 160H332.7L353.4 191.1C364.6 207.9 384 217.3 404.1 215.8C424.3 214.4 442.1 202.1 450.7 183.8L461.9 160H544C597 160 640 202.1 640 256V480C640 497.7 625.7 512 608 512C590.3 512 576 497.7 576 480V448H64V480C64 497.7 49.67 512 32 512C14.33 512 0 497.7 0 480V96C0 78.33 14.33 64 32 64C49.67 64 64 78.33 64 96V352H288V192C288 174.3 302.3 160 320 160zM96 240C96 195.8 131.8 160 176 160C220.2 160 256 195.8 256 240C256 284.2 220.2 320 176 320C131.8 320 96 284.2 96 240z" - } - }, - "free": [ - "solid" - ] - }, - "beer-mug-empty": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0fc", - "aliases": { - "names": [ - "beer" - ], - "unicodes": { - "secondary": [ - "10f0fc" - ] - } - }, - "label": "Beer mug empty", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M432 96H384V64c0-17.67-14.33-32-32-32H64C46.33 32 32 46.33 32 64v352c0 35.35 28.65 64 64 64h224c35.35 0 64-28.65 64-64v-32.08l80.66-35.94C493.5 335.1 512 306.5 512 275V176C512 131.8 476.2 96 432 96zM160 368C160 376.9 152.9 384 144 384S128 376.9 128 368v-224C128 135.1 135.1 128 144 128S160 135.1 160 144V368zM224 368C224 376.9 216.9 384 208 384S192 376.9 192 368v-224C192 135.1 199.1 128 208 128S224 135.1 224 144V368zM288 368c0 8.875-7.125 16-16 16S256 376.9 256 368v-224C256 135.1 263.1 128 272 128S288 135.1 288 144V368zM448 275c0 6.25-3.75 12-9.5 14.62L384 313.9V160h48C440.9 160 448 167.1 448 176V275z" - } - }, - "free": [ - "solid" - ] - }, - "behance": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1b4", - "label": "Behance", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8H0v354.4h171.8c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9H151c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2h-79v-82.7zm83.3 233.7H77.9V272h84.9c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zm358.5-240.7H376V94h143.7v34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3H509c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3h185.1c.3-4.2 .6-8.7 .6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8H390.4z" - } - }, - "free": [ - "brands" - ] - }, - "bell": { - "changes": [ - "2.0.0", - "5.0.0", - "5.2.0", - "5.11.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0f3", - "aliases": { - "unicodes": { - "composite": [ - "f0a2", - "1f514" - ], - "secondary": [ - "10f0f3" - ] - } - }, - "label": "bell", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573177, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M256 32V51.2C329 66.03 384 130.6 384 208V226.8C384 273.9 401.3 319.2 432.5 354.4L439.9 362.7C448.3 372.2 450.4 385.6 445.2 397.1C440 408.6 428.6 416 416 416H32C19.4 416 7.971 408.6 2.809 397.1C-2.353 385.6-.2883 372.2 8.084 362.7L15.5 354.4C46.74 319.2 64 273.9 64 226.8V208C64 130.6 118.1 66.03 192 51.2V32C192 14.33 206.3 0 224 0C241.7 0 256 14.33 256 32H256zM224 512C207 512 190.7 505.3 178.7 493.3C166.7 481.3 160 464.1 160 448H288C288 464.1 281.3 481.3 269.3 493.3C257.3 505.3 240.1 512 224 512z" - }, - "regular": { - "last_modified": 1658443572978, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M256 32V49.88C328.5 61.39 384 124.2 384 200V233.4C384 278.8 399.5 322.9 427.8 358.4L442.7 377C448.5 384.2 449.6 394.1 445.6 402.4C441.6 410.7 433.2 416 424 416H24C14.77 416 6.365 410.7 2.369 402.4C-1.628 394.1-.504 384.2 5.26 377L20.17 358.4C48.54 322.9 64 278.8 64 233.4V200C64 124.2 119.5 61.39 192 49.88V32C192 14.33 206.3 0 224 0C241.7 0 256 14.33 256 32V32zM216 96C158.6 96 112 142.6 112 200V233.4C112 281.3 98.12 328 72.31 368H375.7C349.9 328 336 281.3 336 233.4V200C336 142.6 289.4 96 232 96H216zM288 448C288 464.1 281.3 481.3 269.3 493.3C257.3 505.3 240.1 512 224 512C207 512 190.7 505.3 178.7 493.3C166.7 481.3 160 464.1 160 448H288z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "bell-concierge": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f562", - "aliases": { - "names": [ - "concierge-bell" - ], - "unicodes": { - "composite": [ - "1f6ce" - ], - "secondary": [ - "10f562" - ] - } - }, - "label": "Bell concierge", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573176, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M280 145.3V112h16C309.3 112 320 101.3 320 88S309.3 64 296 64H215.1C202.7 64 192 74.75 192 87.1S202.7 112 215.1 112H232v33.32C119.6 157.3 32 252.4 32 368h448C480 252.4 392.4 157.3 280 145.3zM488 400h-464C10.75 400 0 410.7 0 423.1C0 437.3 10.75 448 23.1 448h464c13.25 0 24-10.75 24-23.1C512 410.7 501.3 400 488 400z" - } - }, - "free": [ - "solid" - ] - }, - "bell-slash": { - "changes": [ - "4.2.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1f6", - "aliases": { - "unicodes": { - "composite": [ - "f1f7", - "1f515" - ], - "secondary": [ - "10f1f6" - ] - } - }, - "label": "Bell Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573177, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M186 120.5C209 85.38 245.4 59.84 288 51.2V32C288 14.33 302.3 .0003 320 .0003C337.7 .0003 352 14.33 352 32V51.2C425 66.03 480 130.6 480 208V226.8C480 273.9 497.3 319.2 528.5 354.4L535.9 362.7C544.3 372.2 546.4 385.6 541.2 397.1C540.1 397.5 540.8 397.1 540.6 398.4L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L186 120.5zM160 226.8V222.1L406.2 416H128C115.4 416 103.1 408.6 98.81 397.1C93.65 385.6 95.71 372.2 104.1 362.7L111.5 354.4C142.7 319.2 160 273.9 160 226.8V226.8zM320 512C303 512 286.7 505.3 274.7 493.3C262.7 481.3 256 464.1 256 448H384C384 464.1 377.3 481.3 365.3 493.3C353.3 505.3 336.1 512 320 512z" - }, - "regular": { - "last_modified": 1658443572978, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M183.6 118.6C206.5 82.58 244.1 56.84 288 49.88V32C288 14.33 302.3 .0003 320 .0003C337.7 .0003 352 14.33 352 32V49.88C424.5 61.39 480 124.2 480 200V233.4C480 278.8 495.5 322.9 523.8 358.4L538.7 377C543.1 383.5 545.4 392.2 542.6 400L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L183.6 118.6zM221.7 148.4L450.7 327.1C438.4 298.2 432 266.1 432 233.4V200C432 142.6 385.4 96 328 96H312C273.3 96 239.6 117.1 221.7 148.4V148.4zM160 233.4V222.1L206.7 258.9C202.7 297.7 189.5 335.2 168.3 368H345.2L406.2 416H120C110.8 416 102.4 410.7 98.37 402.4C94.37 394.1 95.5 384.2 101.3 377L116.2 358.4C144.5 322.9 160 278.8 160 233.4V233.4zM384 448C384 464.1 377.3 481.3 365.3 493.3C353.3 505.3 336.1 512 320 512C303 512 286.7 505.3 274.7 493.3C262.7 481.3 256 464.1 256 448H384z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "bezier-curve": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f55b", - "aliases": { - "unicodes": { - "secondary": [ - "10f55b" - ] - } - }, - "label": "Bezier Curve", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573177, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 32C378.5 32 400 53.49 400 80V84H518.4C528.8 62.69 550.7 48 576 48C611.3 48 640 76.65 640 112C640 147.3 611.3 176 576 176C550.7 176 528.8 161.3 518.4 140H451.5C510.4 179.6 550.4 244.1 555.5 320H560C586.5 320 608 341.5 608 368V432C608 458.5 586.5 480 560 480H496C469.5 480 448 458.5 448 432V368C448 341.5 469.5 320 496 320H499.3C493.4 253 450.8 196.6 391.8 170.9C383.1 183.6 368.6 192 352 192H288C271.4 192 256.9 183.6 248.2 170.9C189.2 196.6 146.6 253 140.7 320H144C170.5 320 192 341.5 192 368V432C192 458.5 170.5 480 144 480H80C53.49 480 32 458.5 32 432V368C32 341.5 53.49 320 80 320H84.53C89.56 244.1 129.6 179.6 188.5 140H121.6C111.2 161.3 89.3 176 64 176C28.65 176 0 147.3 0 112C0 76.65 28.65 48 64 48C89.3 48 111.2 62.69 121.6 84H240V80C240 53.49 261.5 32 288 32H352zM296 136H344V88H296V136zM88 376V424H136V376H88zM552 424V376H504V424H552z" - } - }, - "free": [ - "solid" - ] - }, - "bicycle": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f206", - "aliases": { - "unicodes": { - "composite": [ - "1f6b2" - ], - "secondary": [ - "10f206" - ] - } - }, - "label": "Bicycle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573177, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M347.2 32C358.1 32 369.8 38.44 375.4 48.78L473.3 229.1C485.5 226.1 498.5 224 512 224C582.7 224 640 281.3 640 352C640 422.7 582.7 480 512 480C441.3 480 384 422.7 384 352C384 311.1 402.4 276.3 431.1 252.8L409.4 212.7L324.7 356.2C320.3 363.5 312.5 368 304 368H255C247.1 431.1 193.3 480 128 480C57.31 480 0 422.7 0 352C0 281.3 57.31 224 128 224C138.7 224 149.2 225.3 159.2 227.8L185.8 174.7L163.7 144H120C106.7 144 96 133.3 96 120C96 106.7 106.7 96 120 96H176C183.7 96 190.1 99.71 195.5 105.1L222.9 144H372.3L337.7 80H311.1C298.7 80 287.1 69.25 287.1 56C287.1 42.75 298.7 32 311.1 32H347.2zM440 352C440 391.8 472.2 424 512 424C551.8 424 584 391.8 584 352C584 312.2 551.8 280 512 280C508.2 280 504.5 280.3 500.8 280.9L533.1 340.6C539.4 352.2 535.1 366.8 523.4 373.1C511.8 379.4 497.2 375.1 490.9 363.4L458.6 303.7C447 316.5 440 333.4 440 352V352zM108.8 328.6L133.1 280.2C131.4 280.1 129.7 280 127.1 280C88.24 280 55.1 312.2 55.1 352C55.1 391.8 88.24 424 127.1 424C162.3 424 190.9 400.1 198.2 368H133.2C112.1 368 99.81 346.7 108.8 328.6H108.8zM290.3 320L290.4 319.9L217.5 218.7L166.8 320H290.3zM257.4 192L317 274.8L365.9 192H257.4z" - } - }, - "free": [ - "solid" - ] - }, - "bilibili": { - "changes": [ - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e3d9", - "label": "Bilibili", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M488.6 104.1C505.3 122.2 513 143.8 511.9 169.8V372.2C511.5 398.6 502.7 420.3 485.4 437.3C468.2 454.3 446.3 463.2 419.9 464H92.02C65.57 463.2 43.81 454.2 26.74 436.8C9.682 419.4 .7667 396.5 0 368.2V169.8C.7667 143.8 9.682 122.2 26.74 104.1C43.81 87.75 65.57 78.77 92.02 78H121.4L96.05 52.19C90.3 46.46 87.42 39.19 87.42 30.4C87.42 21.6 90.3 14.34 96.05 8.603C101.8 2.868 109.1 0 117.9 0C126.7 0 134 2.868 139.8 8.603L213.1 78H301.1L375.6 8.603C381.7 2.868 389.2 0 398 0C406.8 0 414.1 2.868 419.9 8.603C425.6 14.34 428.5 21.6 428.5 30.4C428.5 39.19 425.6 46.46 419.9 52.19L394.6 78L423.9 78C450.3 78.77 471.9 87.75 488.6 104.1H488.6zM449.8 173.8C449.4 164.2 446.1 156.4 439.1 150.3C433.9 144.2 425.1 140.9 416.4 140.5H96.05C86.46 140.9 78.6 144.2 72.47 150.3C66.33 156.4 63.07 164.2 62.69 173.8V368.2C62.69 377.4 65.95 385.2 72.47 391.7C78.99 398.2 86.85 401.5 96.05 401.5H416.4C425.6 401.5 433.4 398.2 439.7 391.7C446 385.2 449.4 377.4 449.8 368.2L449.8 173.8zM185.5 216.5C191.8 222.8 195.2 230.6 195.6 239.7V273C195.2 282.2 191.9 289.9 185.8 296.2C179.6 302.5 171.8 305.7 162.2 305.7C152.6 305.7 144.7 302.5 138.6 296.2C132.5 289.9 129.2 282.2 128.8 273V239.7C129.2 230.6 132.6 222.8 138.9 216.5C145.2 210.2 152.1 206.9 162.2 206.5C171.4 206.9 179.2 210.2 185.5 216.5H185.5zM377 216.5C383.3 222.8 386.7 230.6 387.1 239.7V273C386.7 282.2 383.4 289.9 377.3 296.2C371.2 302.5 363.3 305.7 353.7 305.7C344.1 305.7 336.3 302.5 330.1 296.2C323.1 289.9 320.7 282.2 320.4 273V239.7C320.7 230.6 324.1 222.8 330.4 216.5C336.7 210.2 344.5 206.9 353.7 206.5C362.9 206.9 370.7 210.2 377 216.5H377z" - } - }, - "free": [ - "brands" - ] - }, - "bimobject": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f378", - "label": "BIMobject", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 32H32C14.4 32 0 46.4 0 64v384c0 17.6 14.4 32 32 32h384c17.6 0 32-14.4 32-32V64c0-17.6-14.4-32-32-32zm-64 257.4c0 49.4-11.4 82.6-103.8 82.6h-16.9c-44.1 0-62.4-14.9-70.4-38.8h-.9V368H96V136h64v74.7h1.1c4.6-30.5 39.7-38.8 69.7-38.8h17.3c92.4 0 103.8 33.1 103.8 82.5v35zm-64-28.9v22.9c0 21.7-3.4 33.8-38.4 33.8h-45.3c-28.9 0-44.1-6.5-44.1-35.7v-19c0-29.3 15.2-35.7 44.1-35.7h45.3c35-.2 38.4 12 38.4 33.7z" - } - }, - "free": [ - "brands" - ] - }, - "binoculars": { - "changes": [ - "4.2.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1e5", - "aliases": { - "unicodes": { - "secondary": [ - "10f1e5" - ] - } - }, - "label": "Binoculars", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573177, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 48C416 39.13 408.9 32 400 32h-64C327.1 32 320 39.13 320 48V96h96.04L416 48zM63.88 160.1C61.34 253.9 3.5 274.3 0 404V448c0 17.6 14.4 32 32 32h128c17.6 0 32-14.4 32-32V128H95.88C78.26 128 64.35 142.5 63.88 160.1zM448.1 160.1C447.6 142.5 433.7 128 416.1 128H320v320c0 17.6 14.4 32 32 32h128c17.6 0 32-14.4 32-32v-44C508.5 274.3 450.7 253.9 448.1 160.1zM224 288h64V128H224V288zM176 32h-64C103.1 32 96 39.13 96 48L95.96 96H192V48C192 39.13 184.9 32 176 32z" - } - }, - "free": [ - "solid" - ] - }, - "biohazard": { - "changes": [ - "5.6.0", - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f780", - "aliases": { - "unicodes": { - "composite": [ - "2623" - ], - "secondary": [ - "10f780" - ] - } - }, - "label": "Biohazard", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573177, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M575.5 283.5c-13.13-39.11-39.5-71.98-74.13-92.35c-17.5-10.37-36.25-16.62-55.25-19.87c6-17.75 10-36.49 10-56.24c0-40.99-14.5-80.73-41-112.2c-2.5-3-6.625-3.623-10-1.75c-3.25 1.875-4.75 5.998-3.625 9.748c4.5 13.75 6.625 26.24 6.625 38.49c0 67.73-53.76 122.8-120 122.8s-120-55.11-120-122.8c0-12.12 2.25-24.74 6.625-38.49c1.125-3.75-.375-7.873-3.625-9.748c-3.375-1.873-7.502-1.25-10 1.75C134.7 34.3 120.1 74.04 120.1 115c0 19.75 3.875 38.49 10 56.24C111.2 174.5 92.32 180.8 74.82 191.1c-34.63 20.49-61.01 53.24-74.38 92.35c-1.25 3.75 .25 7.748 3.5 9.748c3.375 2 7.5 1.375 10-1.5c9.377-10.87 19-19.12 29.25-25.12c57.25-33.87 130.8-13.75 163.9 44.99c33.13 58.61 13.38 133.1-43.88 167.8c-10.25 6.123-22 10.37-35.88 13.37c-3.627 .875-6.377 4.25-6.377 8.123c.125 4 2.75 7.248 6.502 7.998c39.75 7.748 80.63 .7495 115.3-19.74c18-10.5 32.88-24.49 45.25-39.99c12.38 15.5 27.38 29.49 45.38 39.99c34.5 20.49 75.51 27.49 115.1 19.74c3.875-.75 6.375-3.998 6.5-7.998c0-3.873-2.625-7.248-6.375-8.123c-13.88-2.873-25.63-7.248-35.75-13.37c-57.38-33.87-77.01-109.2-44-167.8c33.13-58.73 106.6-78.85 164-44.99c10.12 6.123 19.75 14.25 29.13 25.12c2.5 2.875 6.752 3.5 10 1.5C575.4 291.2 576.9 287.2 575.5 283.5zM287.1 320.1c-26.5 0-48-21.49-48-47.99c0-26.49 21.5-47.99 48-47.99c26.5 0 48.01 21.49 48.01 47.99C335.1 298.6 314.5 320.1 287.1 320.1zM385 377.6c1.152 22.77 10.74 44.63 27.22 60.92c47.45-35.44 79.13-90.58 83.1-153.4c-22.58-6.173-45.69-2.743-65.57 8.76C424.7 326.9 408.5 355.1 385 377.6zM253.3 132.6c26.22-6.551 45.37-6.024 69.52 .0254c21.93-9.777 39.07-28.55 47.48-51.75C345 69.98 317.3 63.94 288.1 63.94c-29.18 0-56.96 5.986-82.16 16.84C214.3 103.1 231.4 122.8 253.3 132.6zM163.8 438.5c16.46-16.26 26.03-38.19 27.14-61.01c-23.49-21.59-39.59-50.67-44.71-83.6C126.9 282.7 103.8 278.8 80.67 285.1C84.64 347.9 116.3 403.1 163.8 438.5z" - } - }, - "free": [ - "solid" - ] - }, - "bitbucket": { - "changes": [ - "3.2.0", - "5.0.0", - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f171", - "aliases": { - "unicodes": { - "composite": [ - "f172" - ] - } - }, - "label": "Bitbucket", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M22.2 32A16 16 0 0 0 6 47.8a26.35 26.35 0 0 0 .2 2.8l67.9 412.1a21.77 21.77 0 0 0 21.3 18.2h325.7a16 16 0 0 0 16-13.4L505 50.7a16 16 0 0 0 -13.2-18.3 24.58 24.58 0 0 0 -2.8-.2L22.2 32zm285.9 297.8h-104l-28.1-147h157.3l-25.2 147z" - } - }, - "free": [ - "brands" - ] - }, - "bitcoin": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f379", - "label": "Bitcoin", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M504 256c0 136.1-111 248-248 248S8 392.1 8 256 119 8 256 8s248 111 248 248zm-141.7-35.33c4.937-32.1-20.19-50.74-54.55-62.57l11.15-44.7-27.21-6.781-10.85 43.52c-7.154-1.783-14.5-3.464-21.8-5.13l10.93-43.81-27.2-6.781-11.15 44.69c-5.922-1.349-11.73-2.682-17.38-4.084l.031-.14-37.53-9.37-7.239 29.06s20.19 4.627 19.76 4.913c11.02 2.751 13.01 10.04 12.68 15.82l-12.7 50.92c.76 .194 1.744 .473 2.829 .907-.907-.225-1.876-.473-2.876-.713l-17.8 71.34c-1.349 3.348-4.767 8.37-12.47 6.464 .271 .395-19.78-4.937-19.78-4.937l-13.51 31.15 35.41 8.827c6.588 1.651 13.05 3.379 19.4 5.006l-11.26 45.21 27.18 6.781 11.15-44.73a1038 1038 0 0 0 21.69 5.627l-11.11 44.52 27.21 6.781 11.26-45.13c46.4 8.781 81.3 5.239 95.99-36.73 11.84-33.79-.589-53.28-25-65.99 17.78-4.098 31.17-15.79 34.75-39.95zm-62.18 87.18c-8.41 33.79-65.31 15.52-83.75 10.94l14.94-59.9c18.45 4.603 77.6 13.72 68.81 48.96zm8.417-87.67c-7.673 30.74-55.03 15.12-70.39 11.29l13.55-54.33c15.36 3.828 64.84 10.97 56.85 43.03z" - } - }, - "free": [ - "brands" - ] - }, - "bitcoin-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0b4", - "label": "Bitcoin Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573177, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M48 32C48 14.33 62.33 0 80 0C97.67 0 112 14.33 112 32V64H144V32C144 14.33 158.3 0 176 0C193.7 0 208 14.33 208 32V64C208 65.54 207.9 67.06 207.7 68.54C254.1 82.21 288 125.1 288 176C288 200.2 280.3 222.6 267.3 240.9C298.9 260.7 320 295.9 320 336C320 397.9 269.9 448 208 448V480C208 497.7 193.7 512 176 512C158.3 512 144 497.7 144 480V448H112V480C112 497.7 97.67 512 80 512C62.33 512 48 497.7 48 480V448H41.74C18.69 448 0 429.3 0 406.3V101.6C0 80.82 16.82 64 37.57 64H48V32zM176 224C202.5 224 224 202.5 224 176C224 149.5 202.5 128 176 128H64V224H176zM64 288V384H208C234.5 384 256 362.5 256 336C256 309.5 234.5 288 208 288H64z" - } - }, - "free": [ - "solid" - ] - }, - "bity": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f37a", - "label": "Bity", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M78.4 67.2C173.8-22 324.5-24 421.5 71c14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30C73 421.9 9.4 306.1 37.7 194.8c5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8-8.2 0-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0v71.6c0 69.3 60.7 90.9 118 90.1 57.3 .8 118-20.8 118-90.1v-71.6c0-19.6-32.5-21.8-32.5 0z" - } - }, - "free": [ - "brands" - ] - }, - "black-tie": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f27e", - "label": "Font Awesome Black Tie", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32v448h448V32H0zm316.5 325.2L224 445.9l-92.5-88.7 64.5-184-64.5-86.6h184.9L252 173.2l64.5 184z" - } - }, - "free": [ - "brands" - ] - }, - "blackberry": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f37b", - "label": "BlackBerry", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M166 116.9c0 23.4-16.4 49.1-72.5 49.1H23.4l21-88.8h67.8c42.1 0 53.8 23.3 53.8 39.7zm126.2-39.7h-67.8L205.7 166h70.1c53.8 0 70.1-25.7 70.1-49.1 .1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1H21L0 296.9h70.1c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8h-67.8l-18.7 88.8h70.1c53.8 0 70.1-23.4 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7zm-28 137.9h-67.8L343.7 381h70.1c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346H173l-18.7 88.8h70.1c56.1 0 70.1-25.7 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7z" - } - }, - "free": [ - "brands" - ] - }, - "blender": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f517", - "aliases": { - "unicodes": { - "secondary": [ - "10f517" - ] - } - }, - "label": "Blender", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573178, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M336 64h158.5L512 0H48C21.49 0 0 21.49 0 48v160C0 234.5 21.49 256 48 256h103.3L160 352h256l17.49-64H336C327.2 288 320 280.8 320 272S327.2 256 336 256h106.1l17.49-64H336C327.2 192 320 184.8 320 176S327.2 160 336 160h132.4l17.49-64H336C327.2 96 320 88.8 320 80S327.2 64 336 64zM64 192V64h69.88L145.5 192H64zM416 384H160c-35.38 0-64 28.62-64 64l-.0001 32c0 17.62 14.38 32 32 32h320c17.62 0 32-14.38 32-32l.0003-32C480 412.6 451.4 384 416 384zM288 480c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S305.6 480 288 480z" - } - }, - "free": [ - "solid" - ] - }, - "blender-phone": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6b6", - "aliases": { - "unicodes": { - "secondary": [ - "10f6b6" - ] - } - }, - "label": "Blender Phone", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573178, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M158.7 334.1L132.1 271.7C130.2 264.1 123.2 260.7 115.7 261.5l-45 4.374c-17.25-46.87-17.63-99.74 0-147.6l45 4.374C123.2 123.4 130.2 119.1 132.1 112.4l25.75-63.25C161.9 41.76 158.1 33.26 152.1 29.01L112.9 4.887C98.49-3.863 80.12-.4886 68.99 12.01C-23.64 115.6-23.01 271.5 70.99 374.5c9.875 10.75 29.13 12.5 41.75 4.75l39.38-24.12C158.1 350.9 161.7 342.4 158.7 334.1zM479.1 384H224c-35.38 0-63.1 28.62-63.1 63.1l-.0052 32c0 17.62 14.37 31.1 31.1 31.1L511.1 512c17.63 0 32-14.38 32-31.1l.0019-31.1C543.1 412.6 515.4 384 479.1 384zM352 480c-17.63 0-31.1-14.38-31.1-31.1c0-17.62 14.37-31.1 31.1-31.1s31.1 14.38 31.1 31.1C384 465.6 369.6 480 352 480zM399.1 64h158.5L576 .008L191.1 .006l-.0023 351.1h288l17.49-64h-97.49c-8.801 0-16-7.199-16-15.1c0-8.799 7.199-15.1 16-15.1h106.1l17.49-63.1h-123.6c-8.801 0-16-7.199-16-15.1c0-8.799 7.199-15.1 16-15.1h132.4l17.49-63.1h-149.9c-8.801 0-16-7.199-16-15.1C383.1 71.2 391.2 64 399.1 64z" - } - }, - "free": [ - "solid" - ] - }, - "blog": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f781", - "aliases": { - "unicodes": { - "secondary": [ - "10f781" - ] - } - }, - "label": "Blog", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573178, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M217.6 96.1c-12.95-.625-24.66 9.156-25.52 22.37C191.2 131.7 201.2 143.1 214.4 143.1c79.53 5.188 148.4 74.09 153.6 153.6c.8281 12.69 11.39 22.43 23.94 22.43c.5156 0 1.047-.0313 1.578-.0625c13.22-.8438 23.25-12.28 22.39-25.5C409.3 191.8 320.3 102.8 217.6 96.1zM224 0C206.3 0 192 14.31 192 32s14.33 32 32 32c123.5 0 224 100.5 224 224c0 17.69 14.33 32 32 32s32-14.31 32-32C512 129.2 382.8 0 224 0zM172.3 226.8C157.7 223.9 144 235.8 144 250.6v50.37c0 10.25 7.127 18.37 16.75 21.1c18.13 6.75 31.26 24.38 31.26 44.1c0 26.5-21.5 47.1-48.01 47.1c-26.5 0-48.01-21.5-48.01-47.1V120c0-13.25-10.75-23.1-24.01-23.1l-48.01 .0076C10.75 96.02 0 106.8 0 120v247.1c0 89.5 82.14 160.2 175 140.7c54.38-11.5 98.27-55.5 109.8-109.7C302.2 316.1 247.8 241.8 172.3 226.8z" - } - }, - "free": [ - "solid" - ] - }, - "blogger": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f37c", - "label": "Blogger", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1 .1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4 .1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8 .2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9 .7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zm223.4 130.1c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22C.1 423 0 420.3 0 256.3 0 93.2 0 89.7 1.8 82.6 8.1 57.9 27.7 39 53 33.4c7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6 .2 115.8 0 164.5-.7 170.5zm-85.4-185.2c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5 .4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7 .5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z" - } - }, - "free": [ - "brands" - ] - }, - "blogger-b": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f37d", - "label": "Blogger B", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572471, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8 .6-108.4 10C45.9 59.5 14.7 96.1 3.3 142.9 1.2 151.7 .7 165.8 .2 246.8c-.6 101.5 .1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zm-322.1-63.6c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4 .1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5 .2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zm191.8 199.8l-14.9 2.4-77.5 .9c-68.1 .8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z" - } - }, - "free": [ - "brands" - ] - }, - "bluetooth": { - "changes": [ - "4.5.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f293", - "aliases": { - "unicodes": { - "secondary": [ - "10f293" - ] - } - }, - "label": "Bluetooth", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M292.6 171.1L249.7 214l-.3-86 43.2 43.1m-43.2 219.8l43.1-43.1-42.9-42.9-.2 86zM416 259.4C416 465 344.1 512 230.9 512S32 465 32 259.4 115.4 0 228.6 0 416 53.9 416 259.4zm-158.5 0l79.4-88.6L211.8 36.5v176.9L138 139.6l-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z" - } - }, - "free": [ - "brands" - ] - }, - "bluetooth-b": { - "changes": [ - "4.5.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f294", - "label": "Bluetooth", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M196.5 260l92.63-103.3L143.1 0v206.3l-86.11-86.11-31.41 31.41 108.1 108.4L25.61 368.4l31.41 31.41 86.11-86.11L145.8 512l148.6-148.6-97.91-103.3zm40.86-102.1l-49.98 49.98-.338-100.3 50.31 50.32zM187.4 313l49.98 49.98-50.31 50.32 .338-100.3z" - } - }, - "free": [ - "brands" - ] - }, - "bold": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f032", - "aliases": { - "unicodes": { - "secondary": [ - "10f032" - ] - } - }, - "label": "bold", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573178, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M321.1 242.4C340.1 220.1 352 191.6 352 160c0-70.59-57.42-128-128-128L32 32.01c-17.67 0-32 14.31-32 32s14.33 32 32 32h16v320H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h224c70.58 0 128-57.41 128-128C384 305.3 358.6 264.8 321.1 242.4zM112 96.01H224c35.3 0 64 28.72 64 64s-28.7 64-64 64H112V96.01zM256 416H112v-128H256c35.3 0 64 28.71 64 63.1S291.3 416 256 416z" - } - }, - "free": [ - "solid" - ] - }, - "bolt": { - "changes": [ - "2.0.0", - "5.0.0", - "5.5.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0e7", - "aliases": { - "names": [ - "zap" - ], - "unicodes": { - "composite": [ - "26a1" - ], - "secondary": [ - "10f0e7" - ] - } - }, - "label": "Bolt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573179, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M240.5 224H352C365.3 224 377.3 232.3 381.1 244.7C386.6 257.2 383.1 271.3 373.1 280.1L117.1 504.1C105.8 513.9 89.27 514.7 77.19 505.9C65.1 497.1 60.7 481.1 66.59 467.4L143.5 288H31.1C18.67 288 6.733 279.7 2.044 267.3C-2.645 254.8 .8944 240.7 10.93 231.9L266.9 7.918C278.2-1.92 294.7-2.669 306.8 6.114C318.9 14.9 323.3 30.87 317.4 44.61L240.5 224z" - } - }, - "free": [ - "solid" - ] - }, - "bolt-lightning": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0b7", - "label": "Lightning Bolt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573178, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M381.2 172.8C377.1 164.9 368.9 160 360 160h-156.6l50.84-127.1c2.969-7.375 2.062-15.78-2.406-22.38S239.1 0 232 0h-176C43.97 0 33.81 8.906 32.22 20.84l-32 240C-.7179 267.7 1.376 274.6 5.938 279.8C10.5 285 17.09 288 24 288h146.3l-41.78 194.1c-2.406 11.22 3.469 22.56 14 27.09C145.6 511.4 148.8 512 152 512c7.719 0 15.22-3.75 19.81-10.44l208-304C384.8 190.2 385.4 180.7 381.2 172.8z" - } - }, - "free": [ - "solid" - ] - }, - "bomb": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1e2", - "aliases": { - "unicodes": { - "composite": [ - "1f4a3" - ], - "secondary": [ - "10f1e2" - ] - } - }, - "label": "Bomb", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573179, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M459.1 52.39L504.8 69.22C509 70.78 512 75.12 512 79.67C512 84.15 508.1 88.38 504.8 89.83L459.1 106.7L442.6 152.5C441.1 156.9 436.7 160 432.1 160C427.5 160 423.2 156.9 421.7 152.5L404.9 106.7L359.2 89.83C355 88.38 352 84.15 352 79.67C351.1 75.12 354.1 70.78 359.2 69.22L405.2 52.39L421.7 6.548C423.6 2.623 427.8 0 432.1 0C436.5 0 440.7 2.623 442.6 6.548L459.1 52.39zM406.6 185.4C419.1 197.9 419.1 218.1 406.6 230.6L403.8 233.5C411.7 255.5 416 279.3 416 303.1C416 418.9 322.9 512 208 512C93.12 512 0 418.9 0 303.1C0 189.1 93.12 95.1 208 95.1C232.7 95.1 256.5 100.3 278.5 108.2L281.4 105.4C293.9 92.88 314.1 92.88 326.6 105.4L406.6 185.4zM207.1 192C216.8 192 223.1 184.8 223.1 176C223.1 167.2 216.8 160 207.1 160H199.1C124.9 160 63.1 220.9 63.1 296V304C63.1 312.8 71.16 320 79.1 320C88.84 320 95.1 312.8 95.1 304V296C95.1 238.6 142.6 192 199.1 192H207.1z" - } - }, - "free": [ - "solid" - ] - }, - "bone": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5d7", - "aliases": { - "unicodes": { - "composite": [ - "1f9b4" - ], - "secondary": [ - "10f5d7" - ] - } - }, - "label": "Bone", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573179, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M534.9 267.5C560.1 280 576 305.8 576 334v4.387c0 35.55-23.49 68.35-58.24 75.88c-38.18 8.264-74.96-13.73-86.76-49.14c-.0352-.1035-.0684-.207-.1035-.3125C425.3 347.7 409.6 336 391.6 336H184.4c-17.89 0-33.63 11.57-39.23 28.56L145 365.1c-11.8 35.41-48.58 57.4-86.76 49.14C23.49 406.7 0 373.9 0 338.4v-4.387C0 305.8 15.88 280 41.13 267.5c9.375-4.75 9.375-18.25 0-23C15.88 232 0 206.3 0 178V173.6c0-35.55 23.49-68.35 58.24-75.88c38.18-8.264 74.99 13.82 86.79 49.23C150.7 164.1 166.4 176 184.4 176h207.2c17.89 0 33.63-11.57 39.23-28.56L431 146.9c11.8-35.41 48.58-57.4 86.76-49.14C552.5 105.3 576 138.1 576 173.6v4.387C576 206.3 560.1 232 534.9 244.5C525.5 249.3 525.5 262.8 534.9 267.5z" - } - }, - "free": [ - "solid" - ] - }, - "bong": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f55c", - "aliases": { - "unicodes": { - "secondary": [ - "10f55c" - ] - } - }, - "label": "Bong", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573179, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M334.5 512c23.12 0 44.38-12.62 56-32.63C406.8 451.2 416 418.8 416 384c0-36.13-10.11-69.75-27.49-98.63l43.5-43.37l9.376 9.375c6.25 6.25 16.38 6.25 22.63 0L475.3 240c6.25-6.25 6.25-16.38 0-22.62l-52.63-52.75c-6.25-6.25-16.38-6.25-22.63 0L388.6 176c-6.25 6.25-6.25 16.38 0 22.62L398 208l-39.38 39.38c-11.5-11.38-24.51-21.25-38.63-29.5l.0067-154.1h16c8.75 0 16-7.25 16-16L352 16.01C352 7.14 344.9 0 336 0L111.1 .1667c-8.75 0-15.99 7.11-15.99 15.99L96 48c0 8.875 7.126 16 16 16h16L128 217.9C70.63 251.1 32 313 32 384c0 34.75 9.252 67.25 25.5 95.38C69.13 499.4 90.38 512 113.5 512H334.5zM152 259.4l23.97-13.87V64.03L272 63.75l.0168 181.8l23.97 13.87C320.7 273.8 340 295.1 352.5 320H95.51C108 295.1 127.3 273.8 152 259.4z" - } - }, - "free": [ - "solid" - ] - }, - "book": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f02d", - "aliases": { - "unicodes": { - "composite": [ - "1f4d4" - ], - "secondary": [ - "10f02d" - ] - } - }, - "label": "book", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573181, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 336v-288C448 21.49 426.5 0 400 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h320c17.67 0 32-14.33 32-31.1c0-11.72-6.607-21.52-16-27.1v-81.36C441.8 362.8 448 350.2 448 336zM143.1 128h192C344.8 128 352 135.2 352 144C352 152.8 344.8 160 336 160H143.1C135.2 160 128 152.8 128 144C128 135.2 135.2 128 143.1 128zM143.1 192h192C344.8 192 352 199.2 352 208C352 216.8 344.8 224 336 224H143.1C135.2 224 128 216.8 128 208C128 199.2 135.2 192 143.1 192zM384 448H96c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32h288V448z" - } - }, - "free": [ - "solid" - ] - }, - "book-atlas": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f558", - "aliases": { - "names": [ - "atlas" - ], - "unicodes": { - "secondary": [ - "10f558" - ] - } - }, - "label": "Book atlas", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573179, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M240 97.25C232.3 104.8 219.3 131.8 216.6 176h46.88C260.8 131.8 247.8 104.8 240 97.25zM334.4 176c-5.25-31.25-25.62-57.13-53.25-70.38C288.8 124.6 293.8 149 295.3 176H334.4zM334.4 208h-39.13c-1.5 27-6.5 51.38-14.12 70.38C308.8 265.1 329.1 239.3 334.4 208zM263.4 208H216.5C219.3 252.3 232.3 279.3 240 286.8C247.8 279.3 260.8 252.3 263.4 208zM198.9 105.6C171.3 118.9 150.9 144.8 145.6 176h39.13C186.3 149 191.3 124.6 198.9 105.6zM448 336v-288C448 21.49 426.5 0 400 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h320c17.67 0 32-14.33 32-32c0-11.72-6.607-21.52-16-27.1v-81.36C441.8 362.8 448 350.2 448 336zM240 64c70.75 0 128 57.25 128 128s-57.25 128-128 128s-128-57.25-128-128S169.3 64 240 64zM384 448H96c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32h288V448zM198.9 278.4C191.3 259.4 186.3 235 184.8 208H145.6C150.9 239.3 171.3 265.1 198.9 278.4z" - } - }, - "free": [ - "solid" - ] - }, - "book-bible": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f647", - "aliases": { - "names": [ - "bible" - ], - "unicodes": { - "secondary": [ - "10f647" - ] - } - }, - "label": "Book bible", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573179, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 336v-288C448 21.49 426.5 0 400 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h320c17.67 0 32-14.33 32-31.1c0-11.72-6.607-21.52-16-27.1v-81.36C441.8 362.8 448 350.2 448 336zM144 144c0-8.875 7.125-15.1 16-15.1L208 128V80c0-8.875 7.125-15.1 16-15.1l32 .0009c8.875 0 16 7.12 16 15.1V128L320 128c8.875 0 16 7.121 16 15.1v32c0 8.875-7.125 16-16 16L272 192v112c0 8.875-7.125 16-16 16l-32-.0002c-8.875 0-16-7.127-16-16V192L160 192c-8.875 0-16-7.127-16-16V144zM384 448H96c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32h288V448z" - } - }, - "free": [ - "solid" - ] - }, - "book-bookmark": { - "changes": [ - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0bb", - "label": "Book Bookmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 336v-288C448 21.49 426.5 0 400 0H352v191.1c0 13.41-15.52 20.88-25.1 12.49L272 160L217.1 204.5C207.5 212.8 192 205.4 192 191.1V0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h320c17.67 0 32-14.33 32-32c0-11.72-6.607-21.52-16-27.1v-81.36C441.8 362.8 448 350.2 448 336zM384 448H96c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32h288V448z" - } - }, - "free": [ - "solid" - ] - }, - "book-journal-whills": { - "changes": [ - "5.3.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f66a", - "aliases": { - "names": [ - "journal-whills" - ], - "unicodes": { - "secondary": [ - "10f66a" - ] - } - }, - "label": "Book journal whills", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 336v-288C448 21.49 426.5 0 400 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h320c17.67 0 32-14.33 32-31.1c0-11.72-6.607-21.52-16-27.1v-81.36C441.8 362.8 448 350.2 448 336zM133.1 160.4l21.25 21.25c3.125 3.125 8.125 3.125 11.25 0s3.125-8.125 0-11.25l-26.38-26.5c10-20.75 26.25-38 46.38-49.25c-17 27.12-11 62.75 14 82.63C185.5 192 180.5 213.1 186.5 232.5c5.875 19.38 22 34.13 41.88 38.25l1.375-32.75L219.4 245.1C218.8 245.5 217.9 245.8 217.1 245.8c-1 0-2-.375-2.75-1c-.75-.875-1.25-1.875-1.25-3c0-.625 .25-1.375 .5-2L222.3 225.5l-18-3.75c-1.75-.375-3.125-2.125-3.125-4s1.375-3.5 3.125-3.875l18-3.75L213.6 195.9C212.8 194.3 213 192.1 214.4 190.9s3.5-1.5 5-.375l12 8.125L236 87.88C236.1 85.63 237.9 84 240 84s3.875 1.625 4 3.875l4.75 112.3l14.12-9.625c.625-.5 1.5-.625 2.25-.75c1.5 0 2.75 .75 3.5 2s.625 2.875-.125 4.125L260 210.1l17.1 3.75c1.75 .375 3.125 2 3.125 3.875s-1.375 3.625-3.125 4L260 225.4l8.5 14.38c.75 1.25 .875 2.75 .125 4s-2 2-3.5 2c-.75 0-1.625-.25-2.25-.625L250.3 236.5l1.375 34.25c19.88-4.125 36-18.88 41.88-38.25c6-19.38 1-40.63-13.12-55.25c25-19.88 31-55.5 14-82.63c20.25 11.25 36.38 28.5 46.38 49.25l-26.38 26.5c-3.125 3.125-3.125 8.125 0 11.25s8.125 3.125 11.25 0l21.25-21.25C349.9 170.5 352 181 352 192c0 .5-.125 1-.125 1.5l-37.13 32.5C313.1 227.6 312.1 229.8 312 232c.125 1.875 .7496 3.75 1.1 5.25C315.6 238.9 317.8 239.9 320 240c1.1 0 3.875-.7499 5.25-1.1l23.62-20.63C337.3 267 293.1 304 240 304S142.8 267 131.1 217.4l23.62 20.63C156.3 239.3 158.1 239.9 160 240c3.375 0 6.25-2.125 7.5-5.125c1.125-3.125 .25-6.75-2.25-8.875L128.1 193.5C128.1 193 128 192.5 128 192C128 181 130.1 170.5 133.1 160.4zM384 448H96c-17.67 0-32-14.33-32-32s14.33-32 32-32h288V448z" - } - }, - "free": [ - "solid" - ] - }, - "book-medical": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7e6", - "aliases": { - "unicodes": { - "secondary": [ - "10f7e6" - ] - } - }, - "label": "Medical Book", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 336v-288C448 21.49 426.5 0 400 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h320c17.67 0 32-14.33 32-31.1c0-11.72-6.607-21.52-16-27.1v-81.36C441.8 362.8 448 350.2 448 336zM128 166c0-8.838 7.164-16 16-16h53.1V96c0-8.838 7.164-16 16-16h52c8.836 0 16 7.162 16 16v54H336c8.836 0 16 7.162 16 16v52c0 8.836-7.164 16-16 16h-54V288c0 8.836-7.164 16-16 16h-52c-8.836 0-16-7.164-16-16V234H144c-8.836 0-16-7.164-16-16V166zM384 448H96c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32h288V448z" - } - }, - "free": [ - "solid" - ] - }, - "book-open": { - "changes": [ - "5.0.13", - "5.1.0", - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f518", - "aliases": { - "unicodes": { - "composite": [ - "1f56e", - "1f4d6" - ], - "secondary": [ - "10f518" - ] - } - }, - "label": "Book Open", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M144.3 32.04C106.9 31.29 63.7 41.44 18.6 61.29c-11.42 5.026-18.6 16.67-18.6 29.15l0 357.6c0 11.55 11.99 19.55 22.45 14.65c126.3-59.14 219.8 11 223.8 14.01C249.1 478.9 252.5 480 256 480c12.4 0 16-11.38 16-15.98V80.04c0-5.203-2.531-10.08-6.781-13.08C263.3 65.58 216.7 33.35 144.3 32.04zM557.4 61.29c-45.11-19.79-88.48-29.61-125.7-29.26c-72.44 1.312-118.1 33.55-120.9 34.92C306.5 69.96 304 74.83 304 80.04v383.1C304 468.4 307.5 480 320 480c3.484 0 6.938-1.125 9.781-3.328c3.925-3.018 97.44-73.16 223.8-14c10.46 4.896 22.45-3.105 22.45-14.65l.0001-357.6C575.1 77.97 568.8 66.31 557.4 61.29z" - } - }, - "free": [ - "solid" - ] - }, - "book-open-reader": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5da", - "aliases": { - "names": [ - "book-reader" - ], - "unicodes": { - "secondary": [ - "10f5da" - ] - } - }, - "label": "Book open reader", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 219.2v212.5c0 14.25 11.62 26.25 26.5 27C75.32 461.2 180.2 471.3 240 511.9V245.2C181.4 205.5 79.99 194.8 29.84 192C13.59 191.1 0 203.6 0 219.2zM482.2 192c-50.09 2.848-151.3 13.47-209.1 53.09C272.1 245.2 272 245.3 272 245.5v266.5c60.04-40.39 164.7-50.76 213.5-53.28C500.4 457.9 512 445.9 512 431.7V219.2C512 203.6 498.4 191.1 482.2 192zM352 96c0-53-43-96-96-96S160 43 160 96s43 96 96 96S352 149 352 96z" - } - }, - "free": [ - "solid" - ] - }, - "book-quran": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f687", - "aliases": { - "names": [ - "quran" - ], - "unicodes": { - "secondary": [ - "10f687" - ] - } - }, - "label": "Book quran", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M352 0H48C21.49 0 0 21.49 0 48v288c0 14.16 6.246 26.76 16 35.54v81.36C6.607 458.5 0 468.3 0 479.1C0 497.7 14.33 512 31.1 512h320c53.02 0 96-42.98 96-96V96C448 42.98 405 0 352 0zM324.8 170.4c3.006 .4297 4.295 4.154 2.004 6.301L306.2 196.9l4.869 28.5c.4297 2.434-1.576 4.439-3.725 4.439c-.5723 0-1.145-.1445-1.719-.4297L280 215.9l-25.63 13.46c-.5723 .2852-1.145 .4297-1.719 .4297c-2.146 0-4.152-2.006-3.723-4.439l4.869-28.5l-20.62-20.19c-2.291-2.146-1.002-5.871 2.006-6.301l28.64-4.152l12.89-25.92C277.3 138.9 278.7 138.2 280 138.2s2.721 .7168 3.295 2.148l12.89 25.92L324.8 170.4zM216 72c23.66 0 46.61 6.953 66.36 20.09c3.219 2.141 4.438 6.281 2.906 9.844c-1.547 3.547-5.453 5.562-9.172 4.594C268.8 104.8 262.2 104 256 104C207.5 104 168 143.5 168 192S207.5 280 256 280c6.234 0 12.81-.8281 20.09-2.531c3.719-.9687 7.625 1.047 9.172 4.594c1.531 3.562 .3125 7.703-2.906 9.844C262.6 305 239.7 312 216 312C149.8 312 96 258.2 96 192S149.8 72 216 72zM352 448H64v-64h288c17.67 0 32 14.33 32 32C384 433.7 369.7 448 352 448z" - } - }, - "free": [ - "solid" - ] - }, - "book-skull": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6b7", - "aliases": { - "names": [ - "book-dead" - ], - "unicodes": { - "secondary": [ - "10f6b7" - ] - } - }, - "label": "Book skull", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M272 144C280.8 144 288 136.8 288 128s-7.25-16-16-16S256 119.3 256 128S263.3 144 272 144zM448 336v-288C448 21.49 426.5 0 400 0H96C42.98 0 0 42.98 0 96v320c0 53.02 42.98 96 96 96h320c17.67 0 32-14.33 32-31.1c0-11.72-6.607-21.52-16-27.1v-81.36C441.8 362.8 448 350.2 448 336zM240 64C284.3 64 320 92.75 320 128c0 20.88-12.75 39.25-32 50.88V192c0 8.75-7.25 16-16 16h-64C199.3 208 192 200.8 192 192V178.9C172.8 167.3 160 148.9 160 128C160 92.75 195.8 64 240 64zM121.7 238.7c-8.125-3.484-11.91-12.89-8.438-21.02c3.469-8.094 12.94-11.86 21-8.422L240 254.5l105.7-45.21c8.031-3.438 17.53 .3281 21 8.422c3.469 8.125-.3125 17.53-8.438 21.02l-77.58 33.18l77.58 33.18c8.125 3.484 11.91 12.89 8.438 21.02C364.1 332.2 358.2 335.8 352 335.8c-2.094 0-4.25-.4062-6.281-1.281L240 289.3l-105.7 45.21C132.3 335.4 130.1 335.8 128 335.8c-6.219 0-12.12-3.641-14.72-9.703C109.8 317.1 113.6 308.6 121.7 305.1l77.58-33.18L121.7 238.7zM384 448H96c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32h288V448zM208 144C216.8 144 224 136.8 224 128S216.8 112 208 112S192 119.3 192 128S199.3 144 208 144z" - } - }, - "free": [ - "solid" - ] - }, - "book-tanakh": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f827", - "aliases": { - "names": [ - "tanakh" - ], - "unicodes": { - "secondary": [ - "10f827" - ] - } - }, - "label": "Book tanakh", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573180, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M267.1 244.5h34.87l-17.37-29.12L267.1 244.5zM352 0H48C21.49 0 0 21.49 0 48v288c0 14.16 6.246 26.76 16 35.54v81.36C6.607 458.5 0 468.3 0 480C0 497.7 14.33 512 31.1 512h320c53.02 0 96-42.98 96-96V96C448 42.98 405 0 352 0zM89.38 125.6C93 119.3 99.63 115.4 106.9 115.5h56.38l27.5-46.25C194.4 63.25 201 59.5 208 59.5s13.5 3.625 17 9.625l27.75 46.38h56.38c7.25 0 13.88 3.875 17.38 10.12S330 139.5 326.3 145.8L298.6 192l27.75 46.38c3.75 6.125 3.75 13.88 .25 20c-3.625 6.375-10.25 10.25-17.5 10.25h-56.38l-27.5 46.13C221.6 320.8 215.1 324.5 208 324.5c-7 0-13.5-3.625-17-9.625L163.3 268.5H106.9c-7.125 0-13.88-3.875-17.38-10.12S86.13 244.5 89.75 238.3L117.4 192L89.63 145.6C85.88 139.5 85.88 131.8 89.38 125.6zM352 448H64v-64h288c17.67 0 32 14.33 32 32C384 433.7 369.7 448 352 448zM208 296.6l16.88-28.12H191.3L208 296.6zM113.1 244.5h34.88l-17.5-29.12L113.1 244.5zM301.1 139.5h-34.87l17.5 29.12L301.1 139.5zM148.9 139.5H113.1L131.5 168.6L148.9 139.5zM176.9 244.5h62.25L270.6 192l-31.5-52.63H176.9L145.4 192L176.9 244.5zM208 87.38L191.3 115.5h33.5L208 87.38z" - } - }, - "free": [ - "solid" - ] - }, - "bookmark": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f02e", - "aliases": { - "unicodes": { - "composite": [ - "f097", - "1f516" - ], - "secondary": [ - "10f02e" - ] - } - }, - "label": "bookmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573181, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M48 0H336C362.5 0 384 21.49 384 48V487.7C384 501.1 373.1 512 359.7 512C354.7 512 349.8 510.5 345.7 507.6L192 400L38.28 507.6C34.19 510.5 29.32 512 24.33 512C10.89 512 0 501.1 0 487.7V48C0 21.49 21.49 0 48 0z" - }, - "regular": { - "last_modified": 1658443572982, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0h-288C21.49 0 0 21.49 0 48v431.9c0 24.7 26.79 40.08 48.12 27.64L192 423.6l143.9 83.93C357.2 519.1 384 504.6 384 479.9V48C384 21.49 362.5 0 336 0zM336 452L192 368l-144 84V54C48 50.63 50.63 48 53.1 48h276C333.4 48 336 50.63 336 54V452z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "bootstrap": { - "changes": [ - "5.8.0", - "5.15.4", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f836", - "label": "Bootstrap", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M333.5 201.4c0-22.1-15.6-34.3-43-34.3h-50.4v71.2h42.5C315.4 238.2 333.5 225 333.5 201.4zM517 188.6c-9.5-30.9-10.9-68.8-9.8-98.1c1.1-30.5-22.7-58.5-54.7-58.5H123.7c-32.1 0-55.8 28.1-54.7 58.5c1 29.3-.3 67.2-9.8 98.1c-9.6 31-25.7 50.6-52.2 53.1v28.5c26.4 2.5 42.6 22.1 52.2 53.1c9.5 30.9 10.9 68.8 9.8 98.1c-1.1 30.5 22.7 58.5 54.7 58.5h328.7c32.1 0 55.8-28.1 54.7-58.5c-1-29.3 .3-67.2 9.8-98.1c9.6-31 25.7-50.6 52.1-53.1v-28.5C542.7 239.2 526.5 219.6 517 188.6zM300.2 375.1h-97.9V136.8h97.4c43.3 0 71.7 23.4 71.7 59.4c0 25.3-19.1 47.9-43.5 51.8v1.3c33.2 3.6 55.5 26.6 55.5 58.3C383.4 349.7 352.1 375.1 300.2 375.1zM290.2 266.4h-50.1v78.4h52.3c34.2 0 52.3-13.7 52.3-39.5C344.7 279.6 326.1 266.4 290.2 266.4z" - } - }, - "free": [ - "brands" - ] - }, - "border-all": { - "changes": [ - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f84c", - "aliases": { - "unicodes": { - "secondary": [ - "10f84c" - ] - } - }, - "label": "Border All", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573181, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM384 96H256V224H384V96zM384 288H256V416H384V288zM192 224V96H64V224H192zM64 416H192V288H64V416z" - } - }, - "free": [ - "solid" - ] - }, - "border-none": { - "changes": [ - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f850", - "aliases": { - "unicodes": { - "secondary": [ - "10f850" - ] - } - }, - "label": "Border None", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573181, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M64 448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416C49.67 416 64 430.3 64 448zM128 480C110.3 480 96 465.7 96 448C96 430.3 110.3 416 128 416C145.7 416 160 430.3 160 448C160 465.7 145.7 480 128 480zM128 96C110.3 96 96 81.67 96 64C96 46.33 110.3 32 128 32C145.7 32 160 46.33 160 64C160 81.67 145.7 96 128 96zM160 256C160 273.7 145.7 288 128 288C110.3 288 96 273.7 96 256C96 238.3 110.3 224 128 224C145.7 224 160 238.3 160 256zM320 480C302.3 480 288 465.7 288 448C288 430.3 302.3 416 320 416C337.7 416 352 430.3 352 448C352 465.7 337.7 480 320 480zM352 64C352 81.67 337.7 96 320 96C302.3 96 288 81.67 288 64C288 46.33 302.3 32 320 32C337.7 32 352 46.33 352 64zM320 288C302.3 288 288 273.7 288 256C288 238.3 302.3 224 320 224C337.7 224 352 238.3 352 256C352 273.7 337.7 288 320 288zM256 448C256 465.7 241.7 480 224 480C206.3 480 192 465.7 192 448C192 430.3 206.3 416 224 416C241.7 416 256 430.3 256 448zM224 96C206.3 96 192 81.67 192 64C192 46.33 206.3 32 224 32C241.7 32 256 46.33 256 64C256 81.67 241.7 96 224 96zM256 256C256 273.7 241.7 288 224 288C206.3 288 192 273.7 192 256C192 238.3 206.3 224 224 224C241.7 224 256 238.3 256 256zM416 480C398.3 480 384 465.7 384 448C384 430.3 398.3 416 416 416C433.7 416 448 430.3 448 448C448 465.7 433.7 480 416 480zM416 96C398.3 96 384 81.67 384 64C384 46.33 398.3 32 416 32C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96zM64 64C64 81.67 49.67 96 32 96C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32C49.67 32 64 46.33 64 64zM416 288C398.3 288 384 273.7 384 256C384 238.3 398.3 224 416 224C433.7 224 448 238.3 448 256C448 273.7 433.7 288 416 288zM64 256C64 273.7 49.67 288 32 288C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224C49.67 224 64 238.3 64 256zM224 384C206.3 384 192 369.7 192 352C192 334.3 206.3 320 224 320C241.7 320 256 334.3 256 352C256 369.7 241.7 384 224 384zM448 352C448 369.7 433.7 384 416 384C398.3 384 384 369.7 384 352C384 334.3 398.3 320 416 320C433.7 320 448 334.3 448 352zM32 384C14.33 384 0 369.7 0 352C0 334.3 14.33 320 32 320C49.67 320 64 334.3 64 352C64 369.7 49.67 384 32 384zM448 160C448 177.7 433.7 192 416 192C398.3 192 384 177.7 384 160C384 142.3 398.3 128 416 128C433.7 128 448 142.3 448 160zM32 192C14.33 192 0 177.7 0 160C0 142.3 14.33 128 32 128C49.67 128 64 142.3 64 160C64 177.7 49.67 192 32 192zM256 160C256 177.7 241.7 192 224 192C206.3 192 192 177.7 192 160C192 142.3 206.3 128 224 128C241.7 128 256 142.3 256 160z" - } - }, - "free": [ - "solid" - ] - }, - "border-top-left": { - "changes": [ - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f853", - "aliases": { - "names": [ - "border-style" - ], - "unicodes": { - "secondary": [ - "10f853" - ] - } - }, - "label": "Border top left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573182, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 112C0 67.82 35.82 32 80 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H80C71.16 96 64 103.2 64 112V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448V112zM128 480C110.3 480 96 465.7 96 448C96 430.3 110.3 416 128 416C145.7 416 160 430.3 160 448C160 465.7 145.7 480 128 480zM320 480C302.3 480 288 465.7 288 448C288 430.3 302.3 416 320 416C337.7 416 352 430.3 352 448C352 465.7 337.7 480 320 480zM256 448C256 465.7 241.7 480 224 480C206.3 480 192 465.7 192 448C192 430.3 206.3 416 224 416C241.7 416 256 430.3 256 448zM416 480C398.3 480 384 465.7 384 448C384 430.3 398.3 416 416 416C433.7 416 448 430.3 448 448C448 465.7 433.7 480 416 480zM416 288C398.3 288 384 273.7 384 256C384 238.3 398.3 224 416 224C433.7 224 448 238.3 448 256C448 273.7 433.7 288 416 288zM448 352C448 369.7 433.7 384 416 384C398.3 384 384 369.7 384 352C384 334.3 398.3 320 416 320C433.7 320 448 334.3 448 352zM416 192C398.3 192 384 177.7 384 160C384 142.3 398.3 128 416 128C433.7 128 448 142.3 448 160C448 177.7 433.7 192 416 192z" - } - }, - "free": [ - "solid" - ] - }, - "bore-hole": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c3", - "label": "Bore Hole", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573182, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C273.7 0 288 14.33 288 32V296.6C307.1 307.6 320 328.3 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352C192 328.3 204.9 307.6 224 296.6V32C224 14.33 238.3 0 256 0zM160 128V352C160 405 202.1 448 256 448C309 448 352 405 352 352V128H464C490.5 128 512 149.5 512 176V464C512 490.5 490.5 512 464 512H48C21.49 512 0 490.5 0 464V176C0 149.5 21.49 128 48 128H160z" - } - }, - "free": [ - "solid" - ] - }, - "bots": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e340", - "label": "Bots", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M86.34 197.8a51.77 51.77 0 0 0 -41.57 20.06V156a8.19 8.19 0 0 0 -8.19-8.19H8.19A8.19 8.19 0 0 0 0 156V333.6a8.189 8.189 0 0 0 8.19 8.189H36.58a8.189 8.189 0 0 0 8.19-8.189v-8.088c11.63 13.37 25.87 19.77 41.57 19.77 34.6 0 61.92-26.16 61.92-73.84C148.3 225.5 121.2 197.8 86.34 197.8zM71.52 305.7c-9.593 0-21.22-4.942-26.75-12.5V250.2c5.528-7.558 17.15-12.79 26.75-12.79 17.73 0 31.11 13.08 31.11 34.01C102.6 292.6 89.25 305.7 71.52 305.7zm156.4-59.03a17.4 17.4 0 1 0 17.4 17.4A17.4 17.4 0 0 0 227.9 246.7zM273.1 156.7V112a13.31 13.31 0 1 0 -10.24 0V156.7a107.5 107.5 0 1 0 10.24 0zm85.99 107.4c0 30.53-40.79 55.28-91.11 55.28s-91.11-24.75-91.11-55.28 40.79-55.28 91.11-55.28S359.9 233.5 359.9 264.1zm-50.16 17.4a17.4 17.4 0 1 0 -17.4-17.4h0A17.4 17.4 0 0 0 309.8 281.5zM580.7 250.5c-14.83-2.617-22.39-3.78-22.39-9.885 0-5.523 7.268-9.884 17.74-9.884a65.56 65.56 0 0 1 34.48 10.1 8.171 8.171 0 0 0 11.29-2.468c.07-.11 .138-.221 .2-.333l8.611-14.89a8.2 8.2 0 0 0 -2.867-11.12 99.86 99.86 0 0 0 -52.01-14.14c-38.96 0-60.18 21.51-60.18 46.22 0 36.34 33.72 41.86 57.56 45.64 13.37 2.326 24.13 4.361 24.13 11.05 0 6.4-5.523 10.76-18.9 10.76-13.55 0-30.99-6.222-42.62-13.58a8.206 8.206 0 0 0 -11.34 2.491c-.035 .054-.069 .108-.1 .164l-10.2 16.89a8.222 8.222 0 0 0 2.491 11.07c15.22 10.3 37.66 16.69 59.44 16.69 40.41 0 63.96-19.77 63.96-46.51C640 260.6 604.5 254.8 580.7 250.5zm-95.93 60.79a8.211 8.211 0 0 0 -9.521-5.938 23.17 23.17 0 0 1 -4.155 .387c-7.849 0-12.5-6.106-12.5-14.24V240.3h20.35a8.143 8.143 0 0 0 8.141-8.143V209.5a8.143 8.143 0 0 0 -8.141-8.143H458.6V171.1a8.143 8.143 0 0 0 -8.143-8.143H422.3a8.143 8.143 0 0 0 -8.143 8.143h0v30.23H399a8.143 8.143 0 0 0 -8.143 8.143h0v22.67A8.143 8.143 0 0 0 399 240.3h15.11v63.67c0 27.04 15.41 41.28 43.9 41.28 12.18 0 21.38-2.2 27.6-5.446a8.161 8.161 0 0 0 4.145-9.278z" - } - }, - "free": [ - "brands" - ] - }, - "bottle-droplet": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c4", - "label": "Bottle Droplet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573182, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M224 0C237.3-.0003 248 10.74 248 23.1C248 37.25 237.3 47.1 224 48L216 48V140.9C258.6 161.6 288 205.4 288 256V448C288 483.3 259.3 512 224 512H96C60.65 512 32 483.3 32 448V256C32 205.4 61.37 161.6 104 140.9V48L96 48C82.75 48 72 37.26 72 24C71.1 10.75 82.74 .0045 95.1 .0042L224 0zM160 384C186.5 384 208 368 208 336C208 304 160 256 160 256C160 256 112 304 112 336C112 362.5 133.5 384 160 384z" - } - }, - "free": [ - "solid" - ] - }, - "bottle-water": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c5", - "label": "Bottle Water", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573182, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M200 0C213.3 0 224 10.75 224 24V64H96V24C96 10.75 106.7 0 120 0H200zM32 151.7C32 136.1 41.04 121.9 55.19 115.3L79.6 103.8C90.58 98.67 102.6 96 114.7 96H205.3C217.4 96 229.4 98.67 240.4 103.8L264.8 115.3C278.1 121.9 288 136.1 288 151.7C288 166.1 280.5 178.7 269.1 185.8C280.6 194.6 288 208.4 288 223.1C288 240.7 279.5 255.4 266.5 263.1C279.5 272.6 288 287.3 288 303.1C288 320.7 279.5 335.4 266.5 344C279.5 352.6 288 367.3 288 384C288 400.7 279.5 415.4 266.5 424C279.5 432.6 288 447.3 288 464C288 490.5 266.5 512 240 512H80C53.49 512 32 490.5 32 464C32 447.3 40.52 432.6 53.46 424C40.52 415.4 32 400.7 32 384C32 367.3 40.52 352.6 53.46 344C40.52 335.4 32 320.7 32 303.1C32 287.3 40.52 272.6 53.46 263.1C40.52 255.4 32 240.7 32 223.1C32 208.4 39.4 194.6 50.87 185.8C39.53 178.7 32 166.1 32 151.7L32 151.7zM112 256H208C216.8 256 224 248.8 224 240C224 231.2 216.8 224 208 224H112C103.2 224 96 231.2 96 240C96 248.8 103.2 256 112 256zM112 352C103.2 352 96 359.2 96 368C96 376.8 103.2 384 112 384H208C216.8 384 224 376.8 224 368C224 359.2 216.8 352 208 352H112z" - } - }, - "free": [ - "solid" - ] - }, - "bowl-food": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c6", - "label": "Bowl Food", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573182, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 128C64.53 128 65.07 128 65.6 128C73 91.49 105.3 64 144 64C158.1 64 172.1 68.1 184.9 75.25C198.2 49.55 225.1 32 256 32C286.9 32 313.8 49.56 327.1 75.25C339 68.1 353 64 368 64C406.7 64 438.1 91.49 446.4 128C446.9 128 447.5 128 448 128C483.3 128 512 156.7 512 192C512 203.7 508.9 214.6 503.4 224H8.563C3.118 214.6 .0013 203.7 .0013 192C.0013 156.7 28.66 128 64 128H64zM.001 283.4C.001 268.3 12.28 256 27.43 256H484.6C499.7 256 512 268.3 512 283.4C512 353.9 467.6 414.1 405.3 437.5L403.5 451.1C401.5 467.1 387.9 480 371.8 480H140.2C124.1 480 110.5 467.1 108.5 451.1L106.7 437.5C44.36 414.1 0 353.9 0 283.4H.001z" - } - }, - "free": [ - "solid" - ] - }, - "bowl-rice": { - "changes": [ - "6.0.0-beta1", - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e2eb", - "label": "Bowl Rice", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573182, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M176 56C176 42.75 186.7 32 200 32H216C229.3 32 240 42.75 240 56C240 69.25 229.3 80 216 80H200C186.7 80 176 69.25 176 56zM216 104C229.3 104 240 114.7 240 128C240 141.3 229.3 152 216 152H200C186.7 152 176 141.3 176 128C176 114.7 186.7 104 200 104H216zM72 176C85.26 176 96 186.7 96 200C96 213.3 85.26 224 72 224H56C42.75 224 32 213.3 32 200C32 186.7 42.75 176 56 176H72zM.001 283.4C.001 268.3 12.28 256 27.43 256H484.6C499.7 256 512 268.3 512 283.4C512 353.9 467.6 414.1 405.3 437.5L403.5 451.1C401.5 467.1 387.9 480 371.8 480H140.2C124.1 480 110.5 467.1 108.5 451.1L106.7 437.5C44.36 414.1 0 353.9 0 283.4H.001zM224 200C224 186.7 234.7 176 248 176H264C277.3 176 288 186.7 288 200C288 213.3 277.3 224 264 224H248C234.7 224 224 213.3 224 200zM128 200C128 186.7 138.7 176 152 176H168C181.3 176 192 186.7 192 200C192 213.3 181.3 224 168 224H152C138.7 224 128 213.3 128 200zM120 104C133.3 104 144 114.7 144 128C144 141.3 133.3 152 120 152H104C90.75 152 80 141.3 80 128C80 114.7 90.75 104 104 104H120zM320 200C320 186.7 330.7 176 344 176H360C373.3 176 384 186.7 384 200C384 213.3 373.3 224 360 224H344C330.7 224 320 213.3 320 200zM312 104C325.3 104 336 114.7 336 128C336 141.3 325.3 152 312 152H296C282.7 152 272 141.3 272 128C272 114.7 282.7 104 296 104H312zM416 200C416 186.7 426.7 176 440 176H456C469.3 176 480 186.7 480 200C480 213.3 469.3 224 456 224H440C426.7 224 416 213.3 416 200zM408 104C421.3 104 432 114.7 432 128C432 141.3 421.3 152 408 152H392C378.7 152 368 141.3 368 128C368 114.7 378.7 104 392 104H408zM312 32C325.3 32 336 42.75 336 56C336 69.25 325.3 80 312 80H296C282.7 80 272 69.25 272 56C272 42.75 282.7 32 296 32H312z" - } - }, - "free": [ - "solid" - ] - }, - "bowling-ball": { - "changes": [ - "5.0.5", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f436", - "aliases": { - "unicodes": { - "secondary": [ - "10f436" - ] - } - }, - "label": "Bowling Ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573182, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM144 208c-17.7 0-32-14.25-32-32s14.3-32 32-32s32 14.25 32 32S161.7 208 144 208zM240 80c17.66 0 31.95 14.25 31.95 32s-14.29 32-31.95 32s-32.05-14.25-32.05-32S222.4 80 240 80zM240 240c-17.7 0-32-14.25-32-32s14.3-32 32-32s32 14.25 32 32S257.7 240 240 240z" - } - }, - "free": [ - "solid" - ] - }, - "box": { - "changes": [ - "5.0.7", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f466", - "aliases": { - "unicodes": { - "composite": [ - "1f4e6" - ], - "secondary": [ - "10f466" - ] - } - }, - "label": "Box", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573183, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M50.73 58.53C58.86 42.27 75.48 32 93.67 32H208V160H0L50.73 58.53zM240 160V32H354.3C372.5 32 389.1 42.27 397.3 58.53L448 160H240zM448 416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V192H448V416z" - } - }, - "free": [ - "solid" - ] - }, - "box-archive": { - "changes": [ - "3.2.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f187", - "aliases": { - "names": [ - "archive" - ], - "unicodes": { - "secondary": [ - "10f187" - ] - } - }, - "label": "Box archive", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573183, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 432C32 458.5 53.49 480 80 480h352c26.51 0 48-21.49 48-48V160H32V432zM160 236C160 229.4 165.4 224 172 224h168C346.6 224 352 229.4 352 236v8C352 250.6 346.6 256 340 256h-168C165.4 256 160 250.6 160 244V236zM480 32H32C14.31 32 0 46.31 0 64v48C0 120.8 7.188 128 16 128h480C504.8 128 512 120.8 512 112V64C512 46.31 497.7 32 480 32z" - } - }, - "free": [ - "solid" - ] - }, - "box-open": { - "changes": [ - "5.0.9", - "5.7.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f49e", - "aliases": { - "unicodes": { - "secondary": [ - "10f49e" - ] - } - }, - "label": "Box Open", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573183, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M75.23 33.4L320 63.1L564.8 33.4C571.5 32.56 578 36.06 581.1 42.12L622.8 125.5C631.7 143.4 622.2 165.1 602.9 170.6L439.6 217.3C425.7 221.2 410.8 215.4 403.4 202.1L320 63.1L236.6 202.1C229.2 215.4 214.3 221.2 200.4 217.3L37.07 170.6C17.81 165.1 8.283 143.4 17.24 125.5L58.94 42.12C61.97 36.06 68.5 32.56 75.23 33.4H75.23zM321.1 128L375.9 219.4C390.8 244.2 420.5 255.1 448.4 248L576 211.6V378.5C576 400.5 561 419.7 539.6 425.1L335.5 476.1C325.3 478.7 314.7 478.7 304.5 476.1L100.4 425.1C78.99 419.7 64 400.5 64 378.5V211.6L191.6 248C219.5 255.1 249.2 244.2 264.1 219.4L318.9 128H321.1z" - } - }, - "free": [ - "solid" - ] - }, - "box-tissue": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e05b", - "aliases": { - "unicodes": { - "secondary": [ - "10e05b" - ] - } - }, - "label": "Tissue Box", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573183, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M384 288l64-192h-109.4C308.4 96 281.6 76.66 272 48C262.4 19.33 235.6 0 205.4 0H64l64 288H384zM0 480c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-64H0V480zM480 224h-40.94l-21.33 64H432C440.8 288 448 295.2 448 304S440.8 320 432 320h-352C71.16 320 64 312.8 64 304S71.16 288 80 288h15.22l-14.22-64H32C14.33 224 0 238.3 0 256v128h512V256C512 238.3 497.7 224 480 224z" - } - }, - "free": [ - "solid" - ] - }, - "boxes-packing": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c7", - "label": "Boxes Packing", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573183, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M256 48C256 21.49 277.5 0 304 0H592C618.5 0 640 21.49 640 48V464C640 490.5 618.5 512 592 512H381.3C383 506.1 384 501.6 384 496V253.3C402.6 246.7 416 228.9 416 208V176C416 149.5 394.5 128 368 128H256V48zM571.3 347.3C577.6 341.1 577.6 330.9 571.3 324.7L507.3 260.7C501.1 254.4 490.9 254.4 484.7 260.7L420.7 324.7C414.4 330.9 414.4 341.1 420.7 347.3C426.9 353.6 437.1 353.6 443.3 347.3L480 310.6V432C480 440.8 487.2 448 496 448C504.8 448 512 440.8 512 432V310.6L548.7 347.3C554.9 353.6 565.1 353.6 571.3 347.3H571.3zM0 176C0 167.2 7.164 160 16 160H368C376.8 160 384 167.2 384 176V208C384 216.8 376.8 224 368 224H16C7.164 224 0 216.8 0 208V176zM352 480C352 497.7 337.7 512 320 512H64C46.33 512 32 497.7 32 480V256H352V480zM144 320C135.2 320 128 327.2 128 336C128 344.8 135.2 352 144 352H240C248.8 352 256 344.8 256 336C256 327.2 248.8 320 240 320H144z" - } - }, - "free": [ - "solid" - ] - }, - "boxes-stacked": { - "changes": [ - "5.0.7", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f468", - "aliases": { - "names": [ - "boxes", - "boxes-alt" - ], - "unicodes": { - "composite": [ - "f4a1" - ], - "primary": [ - "f4a1" - ], - "secondary": [ - "10f4a1", - "10f468" - ] - } - }, - "label": "Boxes stacked", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573183, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M160 48C160 21.49 181.5 0 208 0H256V80C256 88.84 263.2 96 272 96H304C312.8 96 320 88.84 320 80V0H368C394.5 0 416 21.49 416 48V176C416 202.5 394.5 224 368 224H208C181.5 224 160 202.5 160 176V48zM96 288V368C96 376.8 103.2 384 112 384H144C152.8 384 160 376.8 160 368V288H208C234.5 288 256 309.5 256 336V464C256 490.5 234.5 512 208 512H48C21.49 512 0 490.5 0 464V336C0 309.5 21.49 288 48 288H96zM416 288V368C416 376.8 423.2 384 432 384H464C472.8 384 480 376.8 480 368V288H528C554.5 288 576 309.5 576 336V464C576 490.5 554.5 512 528 512H368C341.5 512 320 490.5 320 464V336C320 309.5 341.5 288 368 288H416z" - } - }, - "free": [ - "solid" - ] - }, - "braille": { - "changes": [ - "4.6.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2a1", - "aliases": { - "unicodes": { - "secondary": [ - "10f2a1" - ] - } - }, - "label": "Braille", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573184, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M128 96C128 131.3 99.35 160 64 160C28.65 160 0 131.3 0 96C0 60.65 28.65 32 64 32C99.35 32 128 60.65 128 96zM160 256C160 220.7 188.7 192 224 192C259.3 192 288 220.7 288 256C288 291.3 259.3 320 224 320C188.7 320 160 291.3 160 256zM224 272C232.8 272 240 264.8 240 256C240 247.2 232.8 240 224 240C215.2 240 208 247.2 208 256C208 264.8 215.2 272 224 272zM128 416C128 451.3 99.35 480 64 480C28.65 480 0 451.3 0 416C0 380.7 28.65 352 64 352C99.35 352 128 380.7 128 416zM64 400C55.16 400 48 407.2 48 416C48 424.8 55.16 432 64 432C72.84 432 80 424.8 80 416C80 407.2 72.84 400 64 400zM288 416C288 451.3 259.3 480 224 480C188.7 480 160 451.3 160 416C160 380.7 188.7 352 224 352C259.3 352 288 380.7 288 416zM224 400C215.2 400 208 407.2 208 416C208 424.8 215.2 432 224 432C232.8 432 240 424.8 240 416C240 407.2 232.8 400 224 400zM0 256C0 220.7 28.65 192 64 192C99.35 192 128 220.7 128 256C128 291.3 99.35 320 64 320C28.65 320 0 291.3 0 256zM160 96C160 60.65 188.7 32 224 32C259.3 32 288 60.65 288 96C288 131.3 259.3 160 224 160C188.7 160 160 131.3 160 96zM480 96C480 131.3 451.3 160 416 160C380.7 160 352 131.3 352 96C352 60.65 380.7 32 416 32C451.3 32 480 60.65 480 96zM640 96C640 131.3 611.3 160 576 160C540.7 160 512 131.3 512 96C512 60.65 540.7 32 576 32C611.3 32 640 60.65 640 96zM576 80C567.2 80 560 87.16 560 96C560 104.8 567.2 112 576 112C584.8 112 592 104.8 592 96C592 87.16 584.8 80 576 80zM512 256C512 220.7 540.7 192 576 192C611.3 192 640 220.7 640 256C640 291.3 611.3 320 576 320C540.7 320 512 291.3 512 256zM576 272C584.8 272 592 264.8 592 256C592 247.2 584.8 240 576 240C567.2 240 560 247.2 560 256C560 264.8 567.2 272 576 272zM640 416C640 451.3 611.3 480 576 480C540.7 480 512 451.3 512 416C512 380.7 540.7 352 576 352C611.3 352 640 380.7 640 416zM576 400C567.2 400 560 407.2 560 416C560 424.8 567.2 432 576 432C584.8 432 592 424.8 592 416C592 407.2 584.8 400 576 400zM352 256C352 220.7 380.7 192 416 192C451.3 192 480 220.7 480 256C480 291.3 451.3 320 416 320C380.7 320 352 291.3 352 256zM416 272C424.8 272 432 264.8 432 256C432 247.2 424.8 240 416 240C407.2 240 400 247.2 400 256C400 264.8 407.2 272 416 272zM480 416C480 451.3 451.3 480 416 480C380.7 480 352 451.3 352 416C352 380.7 380.7 352 416 352C451.3 352 480 380.7 480 416zM416 400C407.2 400 400 407.2 400 416C400 424.8 407.2 432 416 432C424.8 432 432 424.8 432 416C432 407.2 424.8 400 416 400z" - } - }, - "free": [ - "solid" - ] - }, - "brain": { - "changes": [ - "5.2.0", - "5.9.0", - "5.11.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5dc", - "aliases": { - "unicodes": { - "composite": [ - "1f9e0" - ], - "secondary": [ - "10f5dc" - ] - } - }, - "label": "Brain", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573184, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M184 0C214.9 0 240 25.07 240 56V456C240 486.9 214.9 512 184 512C155.1 512 131.3 490.1 128.3 461.9C123.1 463.3 117.6 464 112 464C76.65 464 48 435.3 48 400C48 392.6 49.27 385.4 51.59 378.8C21.43 367.4 0 338.2 0 304C0 272.1 18.71 244.5 45.77 231.7C37.15 220.8 32 206.1 32 192C32 161.3 53.59 135.7 82.41 129.4C80.84 123.9 80 118 80 112C80 82.06 100.6 56.92 128.3 49.93C131.3 21.86 155.1 0 184 0zM383.7 49.93C411.4 56.92 432 82.06 432 112C432 118 431.2 123.9 429.6 129.4C458.4 135.7 480 161.3 480 192C480 206.1 474.9 220.8 466.2 231.7C493.3 244.5 512 272.1 512 304C512 338.2 490.6 367.4 460.4 378.8C462.7 385.4 464 392.6 464 400C464 435.3 435.3 464 400 464C394.4 464 388.9 463.3 383.7 461.9C380.7 490.1 356.9 512 328 512C297.1 512 272 486.9 272 456V56C272 25.07 297.1 0 328 0C356.9 0 380.7 21.86 383.7 49.93z" - } - }, - "free": [ - "solid" - ] - }, - "brazilian-real-sign": { - "changes": [ - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e46c", - "label": "Brazilian Real Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573184, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M400 .0003C417.7 .0003 432 14.33 432 32V50.22C444.5 52.52 456.7 56.57 468.2 62.3L478.3 67.38C494.1 75.28 500.5 94.5 492.6 110.3C484.7 126.1 465.5 132.5 449.7 124.6L439.5 119.5C429.6 114.6 418.7 112 407.6 112H405.9C376.1 112 352 136.1 352 165.9C352 187.9 365.4 207.7 385.9 215.9L437.9 236.7C482.7 254.6 512 297.9 512 346.1V349.5C512 400.7 478.4 444.1 432 458.7V480C432 497.7 417.7 512 400 512C382.3 512 368 497.7 368 480V460.6C352.1 457.1 338.6 450.9 325.7 442.3L302.2 426.6C287.5 416.8 283.6 396.1 293.4 382.2C303.2 367.5 323 363.6 337.8 373.4L361.2 389C371.9 396.2 384.6 400 397.5 400C425.4 400 448 377.4 448 349.5V346.1C448 324.1 434.6 304.3 414.1 296.1L362.1 275.3C317.3 257.4 288 214.1 288 165.9C288 114 321.5 69.99 368 54.21V32C368 14.33 382.3 0 400 0L400 .0003zM.0003 64C.0003 46.33 14.33 32 32 32H112C191.5 32 256 96.47 256 176C256 234.8 220.8 285.3 170.3 307.7L221.7 436.1C228.3 452.5 220.3 471.1 203.9 477.7C187.5 484.3 168.9 476.3 162.3 459.9L106.3 320H64V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448L.0003 64zM64 256H112C156.2 256 192 220.2 192 176C192 131.8 156.2 96 112 96H64V256z" - } - }, - "free": [ - "solid" - ] - }, - "bread-slice": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ec", - "aliases": { - "unicodes": { - "secondary": [ - "10f7ec" - ] - } - }, - "label": "Bread Slice", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573184, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 176.1C512 203 490.4 224 455.1 224H448v224c0 17.67-14.33 32-32 32H96c-17.67 0-32-14.33-32-32V224H56.89C21.56 224 0 203 0 176.1C0 112 96 32 256 32S512 112 512 176.1z" - } - }, - "free": [ - "solid" - ] - }, - "bridge": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c8", - "label": "Bridge", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573185, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 32C561.7 32 576 46.33 576 64C576 81.67 561.7 96 544 96H504V160H576V288C522.1 288 480 330.1 480 384V448C480 465.7 465.7 480 448 480H416C398.3 480 384 465.7 384 448V384C384 330.1 341 288 288 288C234.1 288 192 330.1 192 384V448C192 465.7 177.7 480 160 480H128C110.3 480 96 465.7 96 448V384C96 330.1 53.02 288 0 288V160H72V96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H544zM456 96H376V160H456V96zM248 96V160H328V96H248zM200 96H120V160H200V96z" - } - }, - "free": [ - "solid" - ] - }, - "bridge-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4c9", - "label": "Bridge Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573184, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M576 32C593.7 32 608 46.33 608 64C608 81.67 593.7 96 576 96H536V160H608V232.2C577.6 207.1 538.5 192 496 192C426.9 192 367.1 231.8 338.3 289.7C332.4 288.6 326.3 288 320 288C266.1 288 224 330.1 224 384V448C224 465.7 209.7 480 192 480H160C142.3 480 128 465.7 128 448V384C128 330.1 85.02 288 32 288V160H104V96H64C46.33 96 32 81.67 32 64C32 46.33 46.33 32 64 32H576zM488 96H408V160H488V96zM280 96V160H360V96H280zM232 96H152V160H232V96zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM540.7 324.7L480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "bridge-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ca", - "label": "Bridge Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573184, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M576 32C593.7 32 608 46.33 608 64C608 81.67 593.7 96 576 96H536V160H608V232.2C577.6 207.1 538.5 192 496 192C426.9 192 367.1 231.8 338.3 289.7C332.4 288.6 326.3 288 320 288C266.1 288 224 330.1 224 384V448C224 465.7 209.7 480 192 480H160C142.3 480 128 465.7 128 448V384C128 330.1 85.02 288 32 288V160H104V96H64C46.33 96 32 81.67 32 64C32 46.33 46.33 32 64 32H576zM488 96H408V160H488V96zM280 96V160H360V96H280zM232 96H152V160H232V96zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "bridge-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4cb", - "label": "Bridge Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573184, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M576 32C593.7 32 608 46.33 608 64C608 81.67 593.7 96 576 96H536V160H608V232.2C577.6 207.1 538.5 192 496 192C426.9 192 367.1 231.8 338.3 289.7C332.4 288.6 326.3 288 320 288C266.1 288 224 330.1 224 384V448C224 465.7 209.7 480 192 480H160C142.3 480 128 465.7 128 448V384C128 330.1 85.02 288 32 288V160H104V96H64C46.33 96 32 81.67 32 64C32 46.33 46.33 32 64 32H576zM488 96H408V160H488V96zM280 96V160H360V96H280zM232 96H152V160H232V96zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368L555.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "bridge-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4cc", - "label": "Bridge Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573185, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M32 64C32 46.33 46.33 32 64 32H576C593.7 32 608 46.33 608 64C608 81.67 593.7 96 576 96H536V160H528C466.1 160 416 210.1 416 272V296.6C406.1 302.3 397.8 310.7 392.2 320.7C374.6 300.7 348.8 287.1 320 287.1C266.1 287.1 224 330.1 224 384V448C224 465.7 209.7 480 192 480H160C142.3 480 128 465.7 128 448V384C128 330.1 85.02 287.1 32 287.1V159.1H104V95.1H64C46.33 95.1 32 81.67 32 63.1V64zM408 160H488V96H408V160zM360 160V96H280V160H360zM152 160H232V96H152V160zM528 192C572.2 192 608 227.8 608 272V320C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 320 448 320V272C448 227.8 483.8 192 528 192zM528 240C510.3 240 496 254.3 496 272V320H560V272C560 254.3 545.7 240 528 240z" - } - }, - "free": [ - "solid" - ] - }, - "bridge-water": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ce", - "label": "Bridge Water", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573185, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M.0003 96C.0003 78.33 14.33 64 32 64H544C561.7 64 576 78.33 576 96V131.6C576 147.3 563.3 160 547.6 160C510.2 160 480 190.2 480 227.6V352.5C467.1 352.5 454.2 356.3 443.2 364.1C425.2 376.5 403 384.5 384 384.5L384 384V256C384 202.1 341 160 288 160C234.1 160 192 202.1 192 256V384L191.1 384.5C172.1 384.4 150.8 376.5 132.9 364.1C121.8 356.3 108.9 352.4 96 352.5V227.6C96 190.2 65.75 160 28.44 160C12.74 160 0 147.3 0 131.6L.0003 96zM384 416C410.9 416 439.4 405.2 461.4 389.9L461.5 389.9C473.4 381.4 489.5 382.1 500.7 391.6C515.1 403.5 533.2 412.6 551.3 416.8C568.5 420.8 579.2 438.1 575.2 455.3C571.2 472.5 553.1 483.2 536.7 479.2C512.2 473.4 491.9 462.6 478.5 454.2C449.5 469.7 417 480 384 480C352.1 480 323.4 470.1 303.6 461.1C297.7 458.5 292.5 455.8 288 453.4C283.5 455.8 278.3 458.5 272.4 461.1C252.6 470.1 223.9 480 192 480C158.1 480 126.5 469.7 97.5 454.2C84.13 462.6 63.79 473.4 39.27 479.2C22.06 483.2 4.854 472.5 .8429 455.3C-3.168 438.1 7.533 420.8 24.74 416.8C42.84 412.6 60.96 403.5 75.31 391.6C86.46 382.1 102.6 381.4 114.5 389.9L114.6 389.9C136.7 405.2 165.1 416 192 416C219.5 416 247 405.4 269.5 389.9C280.6 382 295.4 382 306.5 389.9C328.1 405.4 356.5 416 384 416H384z" - } - }, - "free": [ - "solid" - ] - }, - "briefcase": { - "changes": [ - "2.0.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0b1", - "aliases": { - "unicodes": { - "composite": [ - "1f4bc" - ], - "secondary": [ - "10f0b1" - ] - } - }, - "label": "Briefcase", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573185, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 336c0 8.844-7.156 16-16 16h-96C199.2 352 192 344.8 192 336V288H0v144C0 457.6 22.41 480 48 480h416c25.59 0 48-22.41 48-48V288h-192V336zM464 96H384V48C384 22.41 361.6 0 336 0h-160C150.4 0 128 22.41 128 48V96H48C22.41 96 0 118.4 0 144V256h512V144C512 118.4 489.6 96 464 96zM336 96h-160V48h160V96z" - } - }, - "free": [ - "solid" - ] - }, - "briefcase-medical": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f469", - "aliases": { - "unicodes": { - "secondary": [ - "10f469" - ] - } - }, - "label": "Medical Briefcase", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573185, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 96H384V48C384 21.5 362.5 0 336 0h-160C149.5 0 128 21.5 128 48V96H48C21.5 96 0 117.5 0 144v288C0 458.5 21.5 480 48 480h416c26.5 0 48-21.5 48-48v-288C512 117.5 490.5 96 464 96zM176 48h160V96h-160V48zM368 314c0 8.836-7.164 16-16 16h-54V384c0 8.836-7.164 16-15.1 16h-52c-8.835 0-16-7.164-16-16v-53.1H160c-8.836 0-16-7.164-16-16v-52c0-8.838 7.164-16 16-16h53.1V192c0-8.838 7.165-16 16-16h52c8.836 0 15.1 7.162 15.1 16v54H352c8.836 0 16 7.162 16 16V314z" - } - }, - "free": [ - "solid" - ] - }, - "broom": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f51a", - "aliases": { - "unicodes": { - "composite": [ - "1f9f9" - ], - "secondary": [ - "10f51a" - ] - } - }, - "label": "Broom", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573185, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M93.13 257.7C71.25 275.1 53 313.5 38.63 355.1L99 333.1c5.75-2.125 10.62 4.749 6.625 9.499L11 454.7C3.75 486.1 0 510.2 0 510.2s206.6 13.62 266.6-34.12c60-47.87 76.63-150.1 76.63-150.1L256.5 216.7C256.5 216.7 153.1 209.1 93.13 257.7zM633.2 12.34c-10.84-13.91-30.91-16.45-44.91-5.624l-225.7 175.6l-34.99-44.06C322.5 131.9 312.5 133.1 309 140.5L283.8 194.1l86.75 109.2l58.75-12.5c8-1.625 11.38-11.12 6.375-17.5l-33.19-41.79l225.2-175.2C641.6 46.38 644.1 26.27 633.2 12.34z" - } - }, - "free": [ - "solid" - ] - }, - "broom-ball": { - "changes": [ - "5.0.5", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f458", - "aliases": { - "names": [ - "quidditch", - "quidditch-broom-ball" - ], - "unicodes": { - "secondary": [ - "10f458" - ] - } - }, - "label": "Broom and Ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573185, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M495.1 351.1c-44.18 0-79.1 35.72-79.1 79.91c0 44.18 35.82 80.09 79.1 80.09s79.1-35.91 79.1-80.09C575.1 387.7 540.2 351.1 495.1 351.1zM242.7 216.4c-30.16 0-102.9 4.15-149.4 41.34c-22 17.5-40.25 55.75-54.63 97.5l60.38-22.12c.7363-.2715 1.46-.3967 2.151-.3967c3.33 0 5.935 2.885 5.935 6.039c0 1.301-.4426 2.647-1.462 3.856L11 454.7C3.75 487.1 0 510.2 0 510.2S27.07 512 64.45 512c65.94 0 163.1-5.499 202.2-35.89c60-47.75 76.63-150.1 76.63-150.1l-86.75-109.2C256.5 216.7 251.4 216.4 242.7 216.4zM607.1 .0074c-6.863 0-13.78 2.192-19.62 6.719L362.7 182.3l-29.88-37.67c-3.248-4.094-7.892-6.058-12.5-6.058c-5.891 0-11.73 3.204-14.54 9.26L283.8 195.1l86.75 109.1l50.88-10.72c7.883-1.66 12.72-8.546 12.72-15.71c0-3.412-1.096-6.886-3.478-9.89l-28.16-35.5l225.2-175.2c8.102-6.312 12.35-15.75 12.35-25.29C640 14.94 626.3 .0074 607.1 .0074z" - } - }, - "free": [ - "solid" - ] - }, - "brush": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f55d", - "aliases": { - "unicodes": { - "secondary": [ - "10f55d" - ] - } - }, - "label": "Brush", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 0H336C362.5 0 384 21.49 384 48V256H0V48C0 21.49 21.49 0 48 0H64L96 64L128 0H160L192 64L224 0zM384 288V320C384 355.3 355.3 384 320 384H256V448C256 483.3 227.3 512 192 512C156.7 512 128 483.3 128 448V384H64C28.65 384 0 355.3 0 320V288H384zM192 464C200.8 464 208 456.8 208 448C208 439.2 200.8 432 192 432C183.2 432 176 439.2 176 448C176 456.8 183.2 464 192 464z" - } - }, - "free": [ - "solid" - ] - }, - "btc": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f15a", - "label": "BTC", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M310.2 242.6c27.73-14.18 45.38-39.39 41.28-81.3-5.358-57.35-52.46-76.57-114.8-81.93V0h-48.53v77.2c-12.6 0-25.52 .315-38.44 .63V0h-48.53v79.41c-17.84 .539-38.62 .276-97.37 0v51.68c38.31-.678 58.42-3.14 63.02 21.43v217.4c-2.925 19.49-18.52 16.68-53.26 16.07L3.765 443.7c88.48 0 97.37 .315 97.37 .315V512h48.53v-67.06c13.23 .315 26.15 .315 38.44 .315V512h48.53v-68c81.3-4.412 135.6-24.89 142.9-101.5 5.671-61.45-23.32-88.86-69.33-99.89zM150.6 134.6c27.42 0 113.1-8.507 113.1 48.53 0 54.51-85.71 48.21-113.1 48.21v-96.74zm0 251.8V279.8c32.77 0 133.1-9.138 133.1 53.26-.001 60.19-100.4 53.25-133.1 53.25z" - } - }, - "free": [ - "brands" - ] - }, - "bucket": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4cf", - "label": "Bucket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M96 160H48V152C48 68.05 116.1 0 200 0H248C331.9 0 400 68.05 400 152V160H352V152C352 94.56 305.4 48 248 48H200C142.6 48 96 94.56 96 152V160zM.0003 224C.0003 206.3 14.33 192 32 192H416C433.7 192 448 206.3 448 224C448 241.7 433.7 256 416 256H410.9L388.5 469C385.1 493.5 365.4 512 340.8 512H107.2C82.65 512 62.05 493.5 59.48 469L37.05 256H32C14.33 256 0 241.7 0 224H.0003z" - } - }, - "free": [ - "solid" - ] - }, - "buffer": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f837", - "label": "Buffer", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M427.8 380.7l-196.5 97.82a18.6 18.6 0 0 1 -14.67 0L20.16 380.7c-4-2-4-5.28 0-7.29L67.22 350a18.65 18.65 0 0 1 14.69 0l134.8 67a18.51 18.51 0 0 0 14.67 0l134.8-67a18.62 18.62 0 0 1 14.68 0l47.06 23.43c4.05 1.96 4.05 5.24 0 7.24zm0-136.5l-47.06-23.43a18.62 18.62 0 0 0 -14.68 0l-134.8 67.08a18.68 18.68 0 0 1 -14.67 0L81.91 220.7a18.65 18.65 0 0 0 -14.69 0l-47.06 23.43c-4 2-4 5.29 0 7.31l196.5 97.8a18.6 18.6 0 0 0 14.67 0l196.5-97.8c4.05-2.02 4.05-5.3 0-7.31zM20.16 130.4l196.5 90.29a20.08 20.08 0 0 0 14.67 0l196.5-90.29c4-1.86 4-4.89 0-6.74L231.3 33.4a19.88 19.88 0 0 0 -14.67 0l-196.5 90.28c-4.05 1.85-4.05 4.88 0 6.74z" - } - }, - "free": [ - "brands" - ] - }, - "bug": { - "changes": [ - "3.2.0", - "5.0.0", - "5.15.4", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f188", - "aliases": { - "unicodes": { - "secondary": [ - "10f188" - ] - } - }, - "label": "Bug", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 96V99.56C352 115.3 339.3 128 323.6 128H188.4C172.7 128 159.1 115.3 159.1 99.56V96C159.1 42.98 202.1 0 255.1 0C309 0 352 42.98 352 96zM41.37 105.4C53.87 92.88 74.13 92.88 86.63 105.4L150.6 169.4C151.3 170 151.9 170.7 152.5 171.4C166.8 164.1 182.9 160 199.1 160H312C329.1 160 345.2 164.1 359.5 171.4C360.1 170.7 360.7 170 361.4 169.4L425.4 105.4C437.9 92.88 458.1 92.88 470.6 105.4C483.1 117.9 483.1 138.1 470.6 150.6L406.6 214.6C405.1 215.3 405.3 215.9 404.6 216.5C410.7 228.5 414.6 241.9 415.7 256H480C497.7 256 512 270.3 512 288C512 305.7 497.7 320 480 320H416C416 344.6 410.5 367.8 400.6 388.6C402.7 389.9 404.8 391.5 406.6 393.4L470.6 457.4C483.1 469.9 483.1 490.1 470.6 502.6C458.1 515.1 437.9 515.1 425.4 502.6L362.3 439.6C337.8 461.4 306.5 475.8 272 479.2V240C272 231.2 264.8 224 255.1 224C247.2 224 239.1 231.2 239.1 240V479.2C205.5 475.8 174.2 461.4 149.7 439.6L86.63 502.6C74.13 515.1 53.87 515.1 41.37 502.6C28.88 490.1 28.88 469.9 41.37 457.4L105.4 393.4C107.2 391.5 109.3 389.9 111.4 388.6C101.5 367.8 96 344.6 96 320H32C14.33 320 0 305.7 0 288C0 270.3 14.33 256 32 256H96.3C97.38 241.9 101.3 228.5 107.4 216.5C106.7 215.9 106 215.3 105.4 214.6L41.37 150.6C28.88 138.1 28.88 117.9 41.37 105.4H41.37z" - } - }, - "free": [ - "solid" - ] - }, - "bug-slash": { - "changes": [ - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e490", - "label": "Bug Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M239.1 162.8C247.7 160.1 255.7 160 264 160H376C393.1 160 409.2 164.1 423.5 171.4C424.1 170.7 424.7 170 425.4 169.4L489.4 105.4C501.9 92.88 522.1 92.88 534.6 105.4C547.1 117.9 547.1 138.1 534.6 150.6L470.6 214.6C469.1 215.3 469.3 215.9 468.6 216.5C474.7 228.5 478.6 241.9 479.7 256H544C561.7 256 576 270.3 576 288C576 305.7 561.7 320 544 320H480C480 329.9 479.1 339.5 477.4 348.9L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L239.1 162.8zM416 96V99.56C416 115.3 403.3 128 387.6 128H252.4C236.7 128 224 115.3 224 99.56V96C224 42.98 266.1 .001 320 .001C373 .001 416 42.98 416 96V96zM160.3 256C161.1 245.1 163.3 236.3 166.7 227.3L304 335.5V479.2C269.5 475.8 238.2 461.4 213.7 439.6L150.6 502.6C138.1 515.1 117.9 515.1 105.4 502.6C92.88 490.1 92.88 469.9 105.4 457.4L169.4 393.4C171.2 391.5 173.3 389.9 175.4 388.6C165.5 367.8 160 344.6 160 320H96C78.33 320 64 305.7 64 288C64 270.3 78.33 256 96 256H160.3zM336 479.2V360.7L430.8 435.4C405.7 459.6 372.7 475.6 336 479.2V479.2z" - } - }, - "free": [ - "solid" - ] - }, - "bugs": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d0", - "label": "Bugs", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M187.3 135.1H204.3L208.5 115.3C211.1 102.3 223.7 93.86 236.7 96.46C249.7 99.06 258.1 111.7 255.5 124.7L247.5 164.7C245.3 175.9 235.4 183.1 223.1 183.1H191.1V207.3L229.8 216.7C239.3 219.1 246.4 226.9 247.8 236.6L255.8 292.6C257.6 305.7 248.5 317.9 235.4 319.8C222.3 321.6 210.1 312.5 208.2 299.4L202.5 259.4L184.1 254.8C173.2 274.6 152.2 287.1 127.1 287.1C103.8 287.1 82.75 274.6 71.87 254.8L53.48 259.4L47.76 299.4C45.88 312.5 33.73 321.6 20.61 319.8C7.484 317.9-1.633 305.7 .2413 292.6L8.241 236.6C9.621 226.9 16.71 219.1 26.18 216.7L63.1 207.3V183.1H31.1C20.56 183.1 10.71 175.9 8.463 164.7L.4627 124.7C-2.137 111.7 6.292 99.06 19.29 96.46C32.29 93.86 44.93 102.3 47.53 115.3L51.67 135.1H68.65C73.35 124.4 81.36 114.5 91.51 107.4L58.15 33.92C52.67 21.85 58.01 7.625 70.08 2.145C82.15-3.335 96.37 2.007 101.9 14.08L128 71.66L154.1 14.08C159.6 2.007 173.9-3.335 185.9 2.145C197.1 7.625 203.3 21.85 197.9 33.92L164.5 107.4C174.6 114.5 182.6 124.4 187.3 135.1L187.3 135.1zM501.5 322.7L516.2 331.2L530.1 315.3C538.9 305.3 554 304.4 563.1 313.1C573.9 321.9 574.9 337 566.2 346.1L539.2 377.6C531.7 386.2 519.1 388.3 509.2 382.6L481.5 366.6L469.9 386.7L497.9 413.8C504.9 420.6 507.1 430.9 503.5 440L482.4 492.5C477.5 504.8 463.5 510.8 451.2 505.8C438.9 500.9 432.9 486.9 437.9 474.6L452.9 437.1L439.3 423.9C419.1 435.6 395 436.7 374.1 424.6C353.1 412.5 341.6 390.4 342.1 367.8L323.8 362.6L298.9 394.4C290.7 404.8 275.6 406.6 265.2 398.4C254.8 390.3 252.9 375.2 261.1 364.7L296 320.2C302.1 312.6 312.1 309.3 321.5 311.1L359 322.7L370.6 302.6L342.9 286.6C333 280.8 328.5 268.9 332.2 258.1L345.3 219.4C349.5 206.9 363.1 200.2 375.7 204.4C388.2 208.7 394.1 222.3 390.7 234.8L383.1 254.8L398.7 263.3C408.5 255.6 420.4 251 432.8 249.1L440.6 169.7C441.9 156.5 453.6 146.8 466.8 148.1C480 149.4 489.7 161.1 488.4 174.3L482.2 237.3L533.7 200.5C544.5 192.8 559.4 195.3 567.2 206C574.9 216.8 572.4 231.8 561.6 239.5L495.1 286.5C501.2 297.7 503.2 310.3 501.5 322.7V322.7z" - } - }, - "free": [ - "solid" - ] - }, - "building": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1ad", - "aliases": { - "unicodes": { - "composite": [ - "f0f7", - "1f3e2" - ], - "secondary": [ - "10f1ad" - ] - } - }, - "label": "Building", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V464C384 490.5 362.5 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM80 96C71.16 96 64 103.2 64 112V144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80zM160 144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176C167.2 96 160 103.2 160 112V144zM272 96C263.2 96 256 103.2 256 112V144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272z" - }, - "regular": { - "last_modified": 1658443572988, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M88 104C88 95.16 95.16 88 104 88H152C160.8 88 168 95.16 168 104V152C168 160.8 160.8 168 152 168H104C95.16 168 88 160.8 88 152V104zM280 88C288.8 88 296 95.16 296 104V152C296 160.8 288.8 168 280 168H232C223.2 168 216 160.8 216 152V104C216 95.16 223.2 88 232 88H280zM88 232C88 223.2 95.16 216 104 216H152C160.8 216 168 223.2 168 232V280C168 288.8 160.8 296 152 296H104C95.16 296 88 288.8 88 280V232zM280 216C288.8 216 296 223.2 296 232V280C296 288.8 288.8 296 280 296H232C223.2 296 216 288.8 216 280V232C216 223.2 223.2 216 232 216H280zM0 64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM48 64V448C48 456.8 55.16 464 64 464H144V400C144 373.5 165.5 352 192 352C218.5 352 240 373.5 240 400V464H320C328.8 464 336 456.8 336 448V64C336 55.16 328.8 48 320 48H64C55.16 48 48 55.16 48 64z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "building-circle-arrow-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d1", - "label": "Building Circle-arrow-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 48C0 21.49 21.49 0 48 0H336C362.5 0 384 21.49 384 48V232.2C344.9 264.5 320 313.3 320 368C320 417.5 340.4 462.2 373.3 494.2C364.5 505.1 351.1 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48zM80 224C71.16 224 64 231.2 64 240V272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80zM160 272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176C167.2 224 160 231.2 160 240V272zM272 224C263.2 224 256 231.2 256 240V272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272zM64 144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80C71.16 96 64 103.2 64 112V144zM176 96C167.2 96 160 103.2 160 112V144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176zM256 144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272C263.2 96 256 103.2 256 112V144zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM492.7 323.3L521.4 352H432C423.2 352 416 359.2 416 368C416 376.8 423.2 384 432 384H521.4L492.7 412.7C486.4 418.9 486.4 429.1 492.7 435.3C498.9 441.6 509.1 441.6 515.3 435.3L571.3 379.3C577.6 373.1 577.6 362.9 571.3 356.7L515.3 300.7C509.1 294.4 498.9 294.4 492.7 300.7C486.4 306.9 486.4 317.1 492.7 323.3V323.3z" - } - }, - "free": [ - "solid" - ] - }, - "building-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d2", - "label": "Building Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V232.2C344.9 264.5 320 313.3 320 368C320 417.5 340.4 462.2 373.3 494.2C364.5 505.1 351.1 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM80 96C71.16 96 64 103.2 64 112V144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80zM160 144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176C167.2 96 160 103.2 160 112V144zM272 96C263.2 96 256 103.2 256 112V144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM540.7 324.7L480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "building-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d3", - "label": "Building Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V232.2C344.9 264.5 320 313.3 320 368C320 417.5 340.4 462.2 373.3 494.2C364.5 505.1 351.1 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM80 96C71.16 96 64 103.2 64 112V144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80zM160 144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176C167.2 96 160 103.2 160 112V144zM272 96C263.2 96 256 103.2 256 112V144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "building-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d4", - "label": "Building Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573186, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V232.2C344.9 264.5 320 313.3 320 368C320 417.5 340.4 462.2 373.3 494.2C364.5 505.1 351.1 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM80 96C71.16 96 64 103.2 64 112V144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80zM160 144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176C167.2 96 160 103.2 160 112V144zM272 96C263.2 96 256 103.2 256 112V144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368L555.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "building-columns": { - "changes": [ - "4.1.0", - "5.0.0", - "5.0.3", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f19c", - "aliases": { - "names": [ - "bank", - "institution", - "museum", - "university" - ], - "unicodes": { - "secondary": [ - "10f19c" - ] - } - }, - "label": "Building with Columns", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M243.4 2.587C251.4-.8625 260.6-.8625 268.6 2.587L492.6 98.59C506.6 104.6 514.4 119.6 511.3 134.4C508.3 149.3 495.2 159.1 479.1 160V168C479.1 181.3 469.3 192 455.1 192H55.1C42.74 192 31.1 181.3 31.1 168V160C16.81 159.1 3.708 149.3 .6528 134.4C-2.402 119.6 5.429 104.6 19.39 98.59L243.4 2.587zM256 128C273.7 128 288 113.7 288 96C288 78.33 273.7 64 256 64C238.3 64 224 78.33 224 96C224 113.7 238.3 128 256 128zM127.1 416H167.1V224H231.1V416H280V224H344V416H384V224H448V420.3C448.6 420.6 449.2 420.1 449.8 421.4L497.8 453.4C509.5 461.2 514.7 475.8 510.6 489.3C506.5 502.8 494.1 512 480 512H31.1C17.9 512 5.458 502.8 1.372 489.3C-2.715 475.8 2.515 461.2 14.25 453.4L62.25 421.4C62.82 420.1 63.41 420.6 63.1 420.3V224H127.1V416z" - } - }, - "free": [ - "solid" - ] - }, - "building-flag": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d5", - "label": "Building Flag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V464C384 490.5 362.5 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM80 96C71.16 96 64 103.2 64 112V144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80zM160 144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176C167.2 96 160 103.2 160 112V144zM272 96C263.2 96 256 103.2 256 112V144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272zM448 0C465.7 0 480 14.33 480 32H624C632.8 32 640 39.16 640 48V176C640 184.8 632.8 192 624 192H480V512H416V32C416 14.33 430.3 0 448 0z" - } - }, - "free": [ - "solid" - ] - }, - "building-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d6", - "label": "Building Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V193.6C364.2 213.8 352 241.5 352 272V296.6C332.9 307.6 320 328.3 320 352V480C320 491.7 323.1 502.6 328.6 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM80 96C71.16 96 64 103.2 64 112V144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80zM160 144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176C167.2 96 160 103.2 160 112V144zM272 96C263.2 96 256 103.2 256 112V144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272zM464 192C508.2 192 544 227.8 544 272V320C561.7 320 576 334.3 576 352V480C576 497.7 561.7 512 544 512H384C366.3 512 352 497.7 352 480V352C352 334.3 366.3 320 384 320V272C384 227.8 419.8 192 464 192zM464 240C446.3 240 432 254.3 432 272V320H496V272C496 254.3 481.7 240 464 240z" - } - }, - "free": [ - "solid" - ] - }, - "building-ngo": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d7", - "label": "Building Ngo", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 112V144C320 152.8 312.8 160 304 160C295.2 160 288 152.8 288 144V112C288 103.2 295.2 96 304 96C312.8 96 320 103.2 320 112zM336 0C362.5 0 384 21.49 384 48V464C384 490.5 362.5 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM168 64C159.2 64 152 71.16 152 80V168C152 181.3 162.7 192 176 192H208C221.3 192 232 181.3 232 168V144C232 135.2 224.8 128 216 128C207.2 128 200 135.2 200 144V160H184V96H216C224.8 96 232 88.84 232 80C232 71.16 224.8 64 216 64H168zM256 144C256 170.5 277.5 192 304 192C330.5 192 352 170.5 352 144V112C352 85.49 330.5 64 304 64C277.5 64 256 85.49 256 112V144zM61.31 71.12C57.4 65.26 50.11 62.64 43.36 64.69C36.62 66.73 32 72.95 32 80V176C32 184.8 39.16 192 48 192C56.84 192 64 184.8 64 176V132.8L98.69 184.9C102.6 190.7 109.9 193.4 116.6 191.3C123.4 189.3 128 183.1 128 176V80C128 71.16 120.8 64 112 64C103.2 64 96 71.16 96 80V123.2L61.31 71.12z" - } - }, - "free": [ - "solid" - ] - }, - "building-shield": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d8", - "label": "Building Shield", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 48C0 21.49 21.49 0 48 0H336C362.5 0 384 21.49 384 48V207L341.6 224H272C263.2 224 256 231.2 256 240V304C256 304.9 256.1 305.7 256.2 306.6C258.5 364.7 280.3 451.4 354.9 508.1C349.1 510.6 342.7 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48zM80 224C71.16 224 64 231.2 64 240V272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80zM160 272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176C167.2 224 160 231.2 160 240V272zM64 144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80C71.16 96 64 103.2 64 112V144zM176 96C167.2 96 160 103.2 160 112V144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176zM256 144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272C263.2 96 256 103.2 256 112V144zM423.1 225.7C428.8 223.4 435.2 223.4 440.9 225.7L560.9 273.7C570 277.4 576 286.2 576 296C576 359.3 550.1 464.8 441.2 510.2C435.3 512.6 428.7 512.6 422.8 510.2C313.9 464.8 288 359.3 288 296C288 286.2 293.1 277.4 303.1 273.7L423.1 225.7zM432 273.8V461.7C500.2 428.7 523.5 362.7 527.4 311.1L432 273.8z" - } - }, - "free": [ - "solid" - ] - }, - "building-un": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4d9", - "label": "Building Un", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V464C384 490.5 362.5 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM237.3 71.12C233.4 65.26 226.1 62.64 219.4 64.69C212.6 66.73 208 72.95 208 80V176C208 184.8 215.2 192 224 192C232.8 192 240 184.8 240 176V132.8L274.7 184.9C278.6 190.7 285.9 193.4 292.6 191.3C299.4 189.3 304 183.1 304 176V80C304 71.16 296.8 64 288 64C279.2 64 272 71.16 272 80V123.2L237.3 71.12zM112 80C112 71.16 104.8 64 96 64C87.16 64 80 71.16 80 80V144C80 170.5 101.5 192 128 192C154.5 192 176 170.5 176 144V80C176 71.16 168.8 64 160 64C151.2 64 144 71.16 144 80V144C144 152.8 136.8 160 128 160C119.2 160 112 152.8 112 144V80z" - } - }, - "free": [ - "solid" - ] - }, - "building-user": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4da", - "label": "Building User", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M336 0C362.5 0 384 21.49 384 48V367.8C345.8 389.2 320 430 320 476.9C320 489.8 323.6 501.8 329.9 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48C0 21.49 21.49 0 48 0H336zM64 272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80C71.16 224 64 231.2 64 240V272zM176 224C167.2 224 160 231.2 160 240V272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176zM256 272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272C263.2 224 256 231.2 256 240V272zM80 96C71.16 96 64 103.2 64 112V144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80zM160 144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176C167.2 96 160 103.2 160 112V144zM272 96C263.2 96 256 103.2 256 112V144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272zM576 272C576 316.2 540.2 352 496 352C451.8 352 416 316.2 416 272C416 227.8 451.8 192 496 192C540.2 192 576 227.8 576 272zM352 477.1C352 425.7 393.7 384 445.1 384H546.9C598.3 384 640 425.7 640 477.1C640 496.4 624.4 512 605.1 512H386.9C367.6 512 352 496.4 352 477.1V477.1z" - } - }, - "free": [ - "solid" - ] - }, - "building-wheat": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4db", - "label": "Building Wheat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 48C0 21.49 21.49 0 48 0H336C362.5 0 384 21.49 384 48V464C384 490.5 362.5 512 336 512H240V432C240 405.5 218.5 384 192 384C165.5 384 144 405.5 144 432V512H48C21.49 512 0 490.5 0 464V48zM80 224C71.16 224 64 231.2 64 240V272C64 280.8 71.16 288 80 288H112C120.8 288 128 280.8 128 272V240C128 231.2 120.8 224 112 224H80zM160 272C160 280.8 167.2 288 176 288H208C216.8 288 224 280.8 224 272V240C224 231.2 216.8 224 208 224H176C167.2 224 160 231.2 160 240V272zM272 224C263.2 224 256 231.2 256 240V272C256 280.8 263.2 288 272 288H304C312.8 288 320 280.8 320 272V240C320 231.2 312.8 224 304 224H272zM64 144C64 152.8 71.16 160 80 160H112C120.8 160 128 152.8 128 144V112C128 103.2 120.8 96 112 96H80C71.16 96 64 103.2 64 112V144zM176 96C167.2 96 160 103.2 160 112V144C160 152.8 167.2 160 176 160H208C216.8 160 224 152.8 224 144V112C224 103.2 216.8 96 208 96H176zM256 144C256 152.8 263.2 160 272 160H304C312.8 160 320 152.8 320 144V112C320 103.2 312.8 96 304 96H272C263.2 96 256 103.2 256 112V144zM640 192V208C640 252.2 604.2 288 560 288H544V272C544 227.8 579.8 192 624 192H640zM560 400H544V384C544 339.8 579.8 304 624 304H640V320C640 364.2 604.2 400 560 400zM560 512H544V496C544 451.8 579.8 416 624 416H640V432C640 476.2 604.2 512 560 512zM512 496V512H496C451.8 512 416 476.2 416 432V416H432C476.2 416 512 451.8 512 496zM496 400C451.8 400 416 364.2 416 320V304H432C476.2 304 512 339.8 512 384V400H496zM512 272V288H496C451.8 288 416 252.2 416 208V192H432C476.2 192 512 227.8 512 272zM528 32C541.3 32 552 42.75 552 56V160C552 173.3 541.3 184 528 184C514.7 184 504 173.3 504 160V56C504 42.75 514.7 32 528 32zM624 128C624 141.3 613.3 152 600 152C586.7 152 576 141.3 576 128V96C576 82.75 586.7 72 600 72C613.3 72 624 82.75 624 96V128zM456 72C469.3 72 480 82.75 480 96V128C480 141.3 469.3 152 456 152C442.7 152 432 141.3 432 128V96C432 82.75 442.7 72 456 72z" - } - }, - "free": [ - "solid" - ] - }, - "bullhorn": { - "changes": [ - "2.0.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0a1", - "aliases": { - "unicodes": { - "composite": [ - "1f56b", - "1f4e2" - ], - "secondary": [ - "10f0a1" - ] - } - }, - "label": "bullhorn", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 179.6C498.6 188.4 512 212.1 512 240C512 267.9 498.6 291.6 480 300.4V448C480 460.9 472.2 472.6 460.2 477.6C448.3 482.5 434.5 479.8 425.4 470.6L381.7 426.1C333.7 378.1 268.6 352 200.7 352H192V480C192 497.7 177.7 512 160 512H96C78.33 512 64 497.7 64 480V352C28.65 352 0 323.3 0 288V192C0 156.7 28.65 128 64 128H200.7C268.6 128 333.7 101 381.7 53.02L425.4 9.373C434.5 .2215 448.3-2.516 460.2 2.437C472.2 7.39 480 19.06 480 32V179.6zM200.7 192H192V288H200.7C280.5 288 357.2 317.8 416 371.3V108.7C357.2 162.2 280.5 192 200.7 192V192z" - } - }, - "free": [ - "solid" - ] - }, - "bullseye": { - "changes": [ - "3.1.0", - "5.0.0", - "5.3.0", - "5.10.1", - "5.15.4", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f140", - "aliases": { - "unicodes": { - "secondary": [ - "10f140" - ] - } - }, - "label": "Bullseye", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573187, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 256C288 273.7 273.7 288 256 288C238.3 288 224 273.7 224 256C224 238.3 238.3 224 256 224C273.7 224 288 238.3 288 256zM112 256C112 176.5 176.5 112 256 112C335.5 112 400 176.5 400 256C400 335.5 335.5 400 256 400C176.5 400 112 335.5 112 256zM256 336C300.2 336 336 300.2 336 256C336 211.8 300.2 176 256 176C211.8 176 176 211.8 176 256C176 300.2 211.8 336 256 336zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 64C149.1 64 64 149.1 64 256C64 362 149.1 448 256 448C362 448 448 362 448 256C448 149.1 362 64 256 64z" - } - }, - "free": [ - "solid" - ] - }, - "burger": { - "changes": [ - "5.7.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f805", - "aliases": { - "names": [ - "hamburger" - ], - "unicodes": { - "secondary": [ - "10f805" - ] - } - }, - "label": "Burger", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573188, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M481.9 270.1C490.9 279.1 496 291.3 496 304C496 316.7 490.9 328.9 481.9 337.9C472.9 346.9 460.7 352 448 352H64C51.27 352 39.06 346.9 30.06 337.9C21.06 328.9 16 316.7 16 304C16 291.3 21.06 279.1 30.06 270.1C39.06 261.1 51.27 256 64 256H448C460.7 256 472.9 261.1 481.9 270.1zM475.3 388.7C478.3 391.7 480 395.8 480 400V416C480 432.1 473.3 449.3 461.3 461.3C449.3 473.3 432.1 480 416 480H96C79.03 480 62.75 473.3 50.75 461.3C38.74 449.3 32 432.1 32 416V400C32 395.8 33.69 391.7 36.69 388.7C39.69 385.7 43.76 384 48 384H464C468.2 384 472.3 385.7 475.3 388.7zM50.39 220.8C45.93 218.6 42.03 215.5 38.97 211.6C35.91 207.7 33.79 203.2 32.75 198.4C31.71 193.5 31.8 188.5 32.99 183.7C54.98 97.02 146.5 32 256 32C365.5 32 457 97.02 479 183.7C480.2 188.5 480.3 193.5 479.2 198.4C478.2 203.2 476.1 207.7 473 211.6C469.1 215.5 466.1 218.6 461.6 220.8C457.2 222.9 452.3 224 447.3 224H64.67C59.73 224 54.84 222.9 50.39 220.8zM372.7 116.7C369.7 119.7 368 123.8 368 128C368 131.2 368.9 134.3 370.7 136.9C372.5 139.5 374.1 141.6 377.9 142.8C380.8 143.1 384 144.3 387.1 143.7C390.2 143.1 393.1 141.6 395.3 139.3C397.6 137.1 399.1 134.2 399.7 131.1C400.3 128 399.1 124.8 398.8 121.9C397.6 118.1 395.5 116.5 392.9 114.7C390.3 112.9 387.2 111.1 384 111.1C379.8 111.1 375.7 113.7 372.7 116.7V116.7zM244.7 84.69C241.7 87.69 240 91.76 240 96C240 99.16 240.9 102.3 242.7 104.9C244.5 107.5 246.1 109.6 249.9 110.8C252.8 111.1 256 112.3 259.1 111.7C262.2 111.1 265.1 109.6 267.3 107.3C269.6 105.1 271.1 102.2 271.7 99.12C272.3 96.02 271.1 92.8 270.8 89.88C269.6 86.95 267.5 84.45 264.9 82.7C262.3 80.94 259.2 79.1 256 79.1C251.8 79.1 247.7 81.69 244.7 84.69V84.69zM116.7 116.7C113.7 119.7 112 123.8 112 128C112 131.2 112.9 134.3 114.7 136.9C116.5 139.5 118.1 141.6 121.9 142.8C124.8 143.1 128 144.3 131.1 143.7C134.2 143.1 137.1 141.6 139.3 139.3C141.6 137.1 143.1 134.2 143.7 131.1C144.3 128 143.1 124.8 142.8 121.9C141.6 118.1 139.5 116.5 136.9 114.7C134.3 112.9 131.2 111.1 128 111.1C123.8 111.1 119.7 113.7 116.7 116.7L116.7 116.7z" - } - }, - "free": [ - "solid" - ] - }, - "buromobelexperte": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f37f", - "label": "Büromöbel-Experte GmbH & Co. KG.", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32v128h128V32H0zm120 120H8V40h112v112zm40-120v128h128V32H160zm120 120H168V40h112v112zm40-120v128h128V32H320zm120 120H328V40h112v112zM0 192v128h128V192H0zm120 120H8V200h112v112zm40-120v128h128V192H160zm120 120H168V200h112v112zm40-120v128h128V192H320zm120 120H328V200h112v112zM0 352v128h128V352H0zm120 120H8V360h112v112zm40-120v128h128V352H160zm120 120H168V360h112v112zm40-120v128h128V352H320z" - } - }, - "free": [ - "brands" - ] - }, - "burst": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4dc", - "label": "Burst", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573188, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M200.9 116.2L233.2 16.6C236.4 6.706 245.6 .001 256 .001C266.4 .001 275.6 6.706 278.8 16.6L313.3 123.1L383.8 97.45C392.6 94.26 402.4 96.43 408.1 103C415.6 109.6 417.7 119.4 414.6 128.2L388.9 198.7L495.4 233.2C505.3 236.4 512 245.6 512 256C512 266.4 505.3 275.6 495.4 278.8L392.3 312.2L445.2 412.8C450.1 422.1 448.4 433.5 440.1 440.1C433.5 448.4 422.1 450.1 412.8 445.2L312.2 392.3L278.8 495.4C275.6 505.3 266.4 512 256 512C245.6 512 236.4 505.3 233.2 495.4L199.8 392.3L99.17 445.2C89.87 450.1 78.46 448.4 71.03 440.1C63.6 433.5 61.87 422.1 66.76 412.8L119.7 312.2L16.6 278.8C6.705 275.6 .0003 266.4 .0003 256C.0003 245.6 6.705 236.4 16.6 233.2L116.2 200.9L4.208 37.57C-2.33 28.04-1.143 15.2 7.03 7.03C15.2-1.144 28.04-2.33 37.57 4.208L200.9 116.2z" - } - }, - "free": [ - "solid" - ] - }, - "bus": { - "changes": [ - "4.2.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f207", - "aliases": { - "unicodes": { - "composite": [ - "1f68d" - ], - "secondary": [ - "10f207" - ] - } - }, - "label": "Bus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573188, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 0C422.4 0 512 35.2 512 80V128C529.7 128 544 142.3 544 160V224C544 241.7 529.7 256 512 256L512 416C512 433.7 497.7 448 480 448V480C480 497.7 465.7 512 448 512H416C398.3 512 384 497.7 384 480V448H192V480C192 497.7 177.7 512 160 512H128C110.3 512 96 497.7 96 480V448C78.33 448 64 433.7 64 416L64 256C46.33 256 32 241.7 32 224V160C32 142.3 46.33 128 64 128V80C64 35.2 153.6 0 288 0zM128 256C128 273.7 142.3 288 160 288H272V128H160C142.3 128 128 142.3 128 160V256zM304 288H416C433.7 288 448 273.7 448 256V160C448 142.3 433.7 128 416 128H304V288zM144 400C161.7 400 176 385.7 176 368C176 350.3 161.7 336 144 336C126.3 336 112 350.3 112 368C112 385.7 126.3 400 144 400zM432 400C449.7 400 464 385.7 464 368C464 350.3 449.7 336 432 336C414.3 336 400 350.3 400 368C400 385.7 414.3 400 432 400zM368 64H208C199.2 64 192 71.16 192 80C192 88.84 199.2 96 208 96H368C376.8 96 384 88.84 384 80C384 71.16 376.8 64 368 64z" - } - }, - "free": [ - "solid" - ] - }, - "bus-simple": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f55e", - "aliases": { - "names": [ - "bus-alt" - ], - "unicodes": { - "secondary": [ - "10f55e" - ] - } - }, - "label": "Bus simple", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573188, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 0C348.8 0 448 35.2 448 80V416C448 433.7 433.7 448 416 448V480C416 497.7 401.7 512 384 512H352C334.3 512 320 497.7 320 480V448H128V480C128 497.7 113.7 512 96 512H64C46.33 512 32 497.7 32 480V448C14.33 448 0 433.7 0 416V80C0 35.2 99.19 0 224 0zM64 256C64 273.7 78.33 288 96 288H352C369.7 288 384 273.7 384 256V128C384 110.3 369.7 96 352 96H96C78.33 96 64 110.3 64 128V256zM80 400C97.67 400 112 385.7 112 368C112 350.3 97.67 336 80 336C62.33 336 48 350.3 48 368C48 385.7 62.33 400 80 400zM368 400C385.7 400 400 385.7 400 368C400 350.3 385.7 336 368 336C350.3 336 336 350.3 336 368C336 385.7 350.3 400 368 400z" - } - }, - "free": [ - "solid" - ] - }, - "business-time": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f64a", - "aliases": { - "names": [ - "briefcase-clock" - ], - "unicodes": { - "secondary": [ - "10f64a" - ] - } - }, - "label": "Briefcase clock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573188, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M496 224C416.4 224 352 288.4 352 368s64.38 144 144 144s144-64.38 144-144S575.6 224 496 224zM544 384h-54.25C484.4 384 480 379.6 480 374.3V304C480 295.2 487.2 288 496 288C504.8 288 512 295.2 512 304V352h32c8.838 0 16 7.162 16 16C560 376.8 552.8 384 544 384zM320.1 352H208C199.2 352 192 344.8 192 336V288H0v144C0 457.6 22.41 480 48 480h312.2C335.1 449.6 320 410.5 320 368C320 362.6 320.5 357.3 320.1 352zM496 192c5.402 0 10.72 .3301 16 .8066V144C512 118.4 489.6 96 464 96H384V48C384 22.41 361.6 0 336 0h-160C150.4 0 128 22.41 128 48V96H48C22.41 96 0 118.4 0 144V256h360.2C392.5 216.9 441.3 192 496 192zM336 96h-160V48h160V96z" - } - }, - "free": [ - "solid" - ] - }, - "buy-n-large": { - "changes": [ - "5.11.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f8a6", - "label": "Buy n Large", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 32C133.3 32 7.79 132.3 7.79 256S133.3 480 288 480s280.2-100.3 280.2-224S442.7 32 288 32zm-85.39 357.2L64.1 390.5l77.25-290.7h133.4c63.15 0 84.93 28.65 78 72.84a60.24 60.24 0 0 1 -1.5 6.85 77.39 77.39 0 0 0 -17.21-1.93c-42.35 0-76.69 33.88-76.69 75.65 0 37.14 27.14 68 62.93 74.45-18.24 37.16-56.16 60.92-117.7 61.52zM358 207.1h32l-22.16 90.31h-35.41l-11.19-35.63-7.83 35.63h-37.83l26.63-90.31h31.34l15 36.75zm145.9 182.1H306.8L322.6 328a78.8 78.8 0 0 0 11.47 .83c42.34 0 76.69-33.87 76.69-75.65 0-32.65-21-60.46-50.38-71.06l21.33-82.35h92.5l-53.05 205.4h103.9zM211.7 269.4H187l-13.8 56.47h24.7c16.14 0 32.11-3.18 37.94-26.65 5.56-22.31-7.99-29.82-24.14-29.82zM233 170h-21.34L200 217.7h21.37c18 0 35.38-14.64 39.21-30.14C265.2 168.7 251.1 170 233 170z" - } - }, - "free": [ - "brands" - ] - }, - "buysellads": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f20d", - "label": "BuySellAds", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572472, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 150.7l42.9 160.7h-85.8L224 150.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-65.3 325.3l-94.5-298.7H159.8L65.3 405.3H156l111.7-91.6 24.2 91.6h90.8z" - } - }, - "free": [ - "brands" - ] - }, - "c": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "43", - "aliases": { - "unicodes": { - "composite": [ - "63" - ] - } - }, - "label": "C", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573188, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 359.8c22.46 0 31.1 19.53 31.1 31.99c0 23.14-66.96 88.23-164.5 88.23c-137.1 0-219.4-117.8-219.4-224c0-103.8 79.87-223.1 219.4-223.1c99.47 0 164.5 66.12 164.5 88.23c0 12.27-9.527 32.01-32.01 32.01c-31.32 0-45.8-56.25-132.5-56.25c-97.99 0-155.4 84.59-155.4 159.1c0 74.03 56.42 160 155.4 160C306.5 416 320.5 359.8 352 359.8z" - } - }, - "free": [ - "solid" - ] - }, - "cable-car": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7da", - "aliases": { - "names": [ - "tram" - ], - "unicodes": { - "composite": [ - "1f6a1", - "e0cf" - ], - "secondary": [ - "10f7da" - ] - } - }, - "label": "Cable Car", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573189, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 32C256 14.33 270.3 0 288 0C305.7 0 320 14.33 320 32C320 49.67 305.7 64 288 64C270.3 64 256 49.67 256 32zM224 56C224 73.67 209.7 88 192 88C174.3 88 160 73.67 160 56C160 38.33 174.3 24 192 24C209.7 24 224 38.33 224 56zM32 288C32 252.7 60.65 224 96 224H232V157.5L28.86 199.5C15.88 202.2 3.183 193.8 .4976 180.9C-2.188 167.9 6.157 155.2 19.14 152.5L483.1 56.5C496.1 53.81 508.8 62.16 511.5 75.14C514.2 88.12 505.8 100.8 492.9 103.5L280 147.5V224H416C451.3 224 480 252.7 480 288V448C480 483.3 451.3 512 416 512H96C60.65 512 32 483.3 32 448V288zM96 288C87.16 288 80 295.2 80 304V368C80 376.8 87.16 384 96 384H160C168.8 384 176 376.8 176 368V304C176 295.2 168.8 288 160 288H96zM208 368C208 376.8 215.2 384 224 384H288C296.8 384 304 376.8 304 368V304C304 295.2 296.8 288 288 288H224C215.2 288 208 295.2 208 304V368zM352 288C343.2 288 336 295.2 336 304V368C336 376.8 343.2 384 352 384H416C424.8 384 432 376.8 432 368V304C432 295.2 424.8 288 416 288H352z" - } - }, - "free": [ - "solid" - ] - }, - "cake-candles": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1fd", - "aliases": { - "names": [ - "birthday-cake", - "cake" - ], - "unicodes": { - "composite": [ - "1f382" - ], - "secondary": [ - "10f1fd" - ] - } - }, - "label": "Cake candles", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573189, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M352 111.1c22.09 0 40-17.88 40-39.97S352 0 352 0s-40 49.91-40 72S329.9 111.1 352 111.1zM224 111.1c22.09 0 40-17.88 40-39.97S224 0 224 0S184 49.91 184 72S201.9 111.1 224 111.1zM383.1 223.1L384 160c0-8.836-7.164-16-16-16h-32C327.2 144 320 151.2 320 160v64h-64V160c0-8.836-7.164-16-16-16h-32C199.2 144 192 151.2 192 160v64H128V160c0-8.836-7.164-16-16-16h-32C71.16 144 64 151.2 64 160v63.97c-35.35 0-64 28.65-64 63.1v68.7c9.814 6.102 21.39 11.33 32 11.33c20.64 0 45.05-19.73 52.7-27.33c6.25-6.219 16.34-6.219 22.59 0C114.1 348.3 139.4 367.1 160 367.1s45.05-19.73 52.7-27.33c6.25-6.219 16.34-6.219 22.59 0C242.1 348.3 267.4 367.1 288 367.1s45.05-19.73 52.7-27.33c6.25-6.219 16.34-6.219 22.59 0C370.1 348.3 395.4 367.1 416 367.1c10.61 0 22.19-5.227 32-11.33V287.1C448 252.6 419.3 223.1 383.1 223.1zM352 373.3c-13.75 10.95-38.03 26.66-64 26.66s-50.25-15.7-64-26.66c-13.75 10.95-38.03 26.66-64 26.66s-50.25-15.7-64-26.66c-13.75 10.95-38.03 26.66-64 26.66c-11.27 0-22.09-3.121-32-7.377v87.38C0 497.7 14.33 512 32 512h384c17.67 0 32-14.33 32-32v-87.38c-9.91 4.256-20.73 7.377-32 7.377C390 399.1 365.8 384.3 352 373.3zM96 111.1c22.09 0 40-17.88 40-39.97S96 0 96 0S56 49.91 56 72S73.91 111.1 96 111.1z" - } - }, - "free": [ - "solid" - ] - }, - "calculator": { - "changes": [ - "4.2.0", - "5.0.0", - "5.3.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1ec", - "aliases": { - "unicodes": { - "composite": [ - "1f5a9" - ], - "secondary": [ - "10f1ec" - ] - } - }, - "label": "Calculator", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573189, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0h-288C22.38 0 0 22.38 0 48v416C0 489.6 22.38 512 48 512h288c25.62 0 48-22.38 48-48v-416C384 22.38 361.6 0 336 0zM64 208C64 199.2 71.2 192 80 192h32C120.8 192 128 199.2 128 208v32C128 248.8 120.8 256 112 256h-32C71.2 256 64 248.8 64 240V208zM64 304C64 295.2 71.2 288 80 288h32C120.8 288 128 295.2 128 304v32C128 344.8 120.8 352 112 352h-32C71.2 352 64 344.8 64 336V304zM224 432c0 8.801-7.199 16-16 16h-128C71.2 448 64 440.8 64 432v-32C64 391.2 71.2 384 80 384h128c8.801 0 16 7.199 16 16V432zM224 336c0 8.801-7.199 16-16 16h-32C167.2 352 160 344.8 160 336v-32C160 295.2 167.2 288 176 288h32C216.8 288 224 295.2 224 304V336zM224 240C224 248.8 216.8 256 208 256h-32C167.2 256 160 248.8 160 240v-32C160 199.2 167.2 192 176 192h32C216.8 192 224 199.2 224 208V240zM320 432c0 8.801-7.199 16-16 16h-32c-8.799 0-16-7.199-16-16v-32c0-8.801 7.201-16 16-16h32c8.801 0 16 7.199 16 16V432zM320 336c0 8.801-7.199 16-16 16h-32c-8.799 0-16-7.199-16-16v-32C256 295.2 263.2 288 272 288h32C312.8 288 320 295.2 320 304V336zM320 240C320 248.8 312.8 256 304 256h-32C263.2 256 256 248.8 256 240v-32C256 199.2 263.2 192 272 192h32C312.8 192 320 199.2 320 208V240zM320 144C320 152.8 312.8 160 304 160h-224C71.2 160 64 152.8 64 144v-64C64 71.2 71.2 64 80 64h224C312.8 64 320 71.2 320 80V144z" - } - }, - "free": [ - "solid" - ] - }, - "calendar": { - "changes": [ - "3.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f133", - "aliases": { - "unicodes": { - "composite": [ - "1f4c6", - "1f4c5" - ], - "secondary": [ - "10f133" - ] - } - }, - "label": "Calendar", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573190, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M96 32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32zM448 464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192H448V464z" - }, - "regular": { - "last_modified": 1658443572992, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "calendar-check": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f274", - "aliases": { - "unicodes": { - "secondary": [ - "10f274" - ] - } - }, - "label": "Calendar Check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573189, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM328.1 304.1C338.3 295.6 338.3 280.4 328.1 271C319.6 261.7 304.4 261.7 295 271L200 366.1L152.1 319C143.6 309.7 128.4 309.7 119 319C109.7 328.4 109.7 343.6 119 352.1L183 416.1C192.4 426.3 207.6 426.3 216.1 416.1L328.1 304.1z" - }, - "regular": { - "last_modified": 1658443572991, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M216.1 408.1C207.6 418.3 192.4 418.3 183 408.1L119 344.1C109.7 335.6 109.7 320.4 119 311C128.4 301.7 143.6 301.7 152.1 311L200 358.1L295 263C304.4 253.7 319.6 253.7 328.1 263C338.3 272.4 338.3 287.6 328.1 296.1L216.1 408.1zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "calendar-day": { - "changes": [ - "5.6.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f783", - "aliases": { - "unicodes": { - "secondary": [ - "10f783" - ] - } - }, - "label": "Calendar with Day Focus", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573189, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM80 256C71.16 256 64 263.2 64 272V368C64 376.8 71.16 384 80 384H176C184.8 384 192 376.8 192 368V272C192 263.2 184.8 256 176 256H80z" - } - }, - "free": [ - "solid" - ] - }, - "calendar-days": { - "changes": [ - "1.0.0", - "5.0.0", - "5.6.0", - "5.7.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f073", - "aliases": { - "names": [ - "calendar-alt" - ], - "unicodes": { - "secondary": [ - "10f073" - ] - } - }, - "label": "Calendar Days", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573189, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM64 304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304zM192 304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304zM336 256C327.2 256 320 263.2 320 272V304C320 312.8 327.2 320 336 320H368C376.8 320 384 312.8 384 304V272C384 263.2 376.8 256 368 256H336zM64 432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V400C128 391.2 120.8 384 112 384H80C71.16 384 64 391.2 64 400V432zM208 384C199.2 384 192 391.2 192 400V432C192 440.8 199.2 448 208 448H240C248.8 448 256 440.8 256 432V400C256 391.2 248.8 384 240 384H208zM320 432C320 440.8 327.2 448 336 448H368C376.8 448 384 440.8 384 432V400C384 391.2 376.8 384 368 384H336C327.2 384 320 391.2 320 400V432z" - }, - "regular": { - "last_modified": 1658443572991, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 248H128V192H48V248zM48 296V360H128V296H48zM176 296V360H272V296H176zM320 296V360H400V296H320zM400 192H320V248H400V192zM400 408H320V464H384C392.8 464 400 456.8 400 448V408zM272 408H176V464H272V408zM128 408H48V448C48 456.8 55.16 464 64 464H128V408zM272 192H176V248H272V192z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "calendar-minus": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f272", - "aliases": { - "unicodes": { - "secondary": [ - "10f272" - ] - } - }, - "label": "Calendar Minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573190, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM312 376C325.3 376 336 365.3 336 352C336 338.7 325.3 328 312 328H136C122.7 328 112 338.7 112 352C112 365.3 122.7 376 136 376H312z" - }, - "regular": { - "last_modified": 1658443572991, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M152 352C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H152zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "calendar-plus": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f271", - "aliases": { - "unicodes": { - "secondary": [ - "10f271" - ] - } - }, - "label": "Calendar Plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573190, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M96 32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32zM448 464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192H448V464zM200 272V328H144C130.7 328 120 338.7 120 352C120 365.3 130.7 376 144 376H200V432C200 445.3 210.7 456 224 456C237.3 456 248 445.3 248 432V376H304C317.3 376 328 365.3 328 352C328 338.7 317.3 328 304 328H248V272C248 258.7 237.3 248 224 248C210.7 248 200 258.7 200 272z" - }, - "regular": { - "last_modified": 1658443572992, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 232C237.3 232 248 242.7 248 256V304H296C309.3 304 320 314.7 320 328C320 341.3 309.3 352 296 352H248V400C248 413.3 237.3 424 224 424C210.7 424 200 413.3 200 400V352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H200V256C200 242.7 210.7 232 224 232zM152 64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0C141.3 0 152 10.75 152 24V64zM48 448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192H48V448z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "calendar-week": { - "changes": [ - "5.6.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f784", - "aliases": { - "unicodes": { - "secondary": [ - "10f784" - ] - } - }, - "label": "Calendar with Week Focus", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573190, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM80 256C71.16 256 64 263.2 64 272V336C64 344.8 71.16 352 80 352H368C376.8 352 384 344.8 384 336V272C384 263.2 376.8 256 368 256H80z" - } - }, - "free": [ - "solid" - ] - }, - "calendar-xmark": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f273", - "aliases": { - "names": [ - "calendar-times" - ], - "unicodes": { - "secondary": [ - "10f273" - ] - } - }, - "label": "Calendar X Mark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573190, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 32V64H288V32C288 14.33 302.3 0 320 0C337.7 0 352 14.33 352 32V64H400C426.5 64 448 85.49 448 112V160H0V112C0 85.49 21.49 64 48 64H96V32C96 14.33 110.3 0 128 0C145.7 0 160 14.33 160 32zM0 192H448V464C448 490.5 426.5 512 400 512H48C21.49 512 0 490.5 0 464V192zM304.1 304.1C314.3 295.6 314.3 280.4 304.1 271C295.6 261.7 280.4 261.7 271 271L224 318.1L176.1 271C167.6 261.7 152.4 261.7 143 271C133.7 280.4 133.7 295.6 143 304.1L190.1 352L143 399C133.7 408.4 133.7 423.6 143 432.1C152.4 442.3 167.6 442.3 176.1 432.1L224 385.9L271 432.1C280.4 442.3 295.6 442.3 304.1 432.1C314.3 423.6 314.3 408.4 304.1 399L257.9 352L304.1 304.1z" - }, - "regular": { - "last_modified": 1658443572992, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M257.9 328L304.1 375C314.3 384.4 314.3 399.6 304.1 408.1C295.6 418.3 280.4 418.3 271 408.1L224 361.9L176.1 408.1C167.6 418.3 152.4 418.3 143 408.1C133.7 399.6 133.7 384.4 143 375L190.1 328L143 280.1C133.7 271.6 133.7 256.4 143 247C152.4 237.7 167.6 237.7 176.1 247L224 294.1L271 247C280.4 237.7 295.6 237.7 304.1 247C314.3 256.4 314.3 271.6 304.1 280.1L257.9 328zM128 0C141.3 0 152 10.75 152 24V64H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V64H384C419.3 64 448 92.65 448 128V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H104V24C104 10.75 114.7 0 128 0zM400 192H48V448C48 456.8 55.16 464 64 464H384C392.8 464 400 456.8 400 448V192z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "camera": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f030", - "aliases": { - "names": [ - "camera-alt" - ], - "unicodes": { - "composite": [ - "f332" - ], - "primary": [ - "f332" - ], - "secondary": [ - "10f332", - "10f030" - ] - } - }, - "label": "camera", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573191, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M194.6 32H317.4C338.1 32 356.4 45.22 362.9 64.82L373.3 96H448C483.3 96 512 124.7 512 160V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V160C0 124.7 28.65 96 64 96H138.7L149.1 64.82C155.6 45.22 173.9 32 194.6 32H194.6zM256 384C309 384 352 341 352 288C352 234.1 309 192 256 192C202.1 192 160 234.1 160 288C160 341 202.1 384 256 384z" - } - }, - "free": [ - "solid" - ] - }, - "camera-retro": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f083", - "aliases": { - "unicodes": { - "composite": [ - "1f4f7" - ], - "secondary": [ - "10f083" - ] - } - }, - "label": "Retro Camera", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573191, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 64V48C64 39.16 71.16 32 80 32H144C152.8 32 160 39.16 160 48V64H192L242.5 38.76C251.4 34.31 261.2 32 271.1 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V128C0 92.65 28.65 64 64 64zM220.6 121.2C211.7 125.7 201.9 128 192 128H64V192H178.8C200.8 176.9 227.3 168 256 168C284.7 168 311.2 176.9 333.2 192H448V96H271.1L220.6 121.2zM256 216C207.4 216 168 255.4 168 304C168 352.6 207.4 392 256 392C304.6 392 344 352.6 344 304C344 255.4 304.6 216 256 216z" - } - }, - "free": [ - "solid" - ] - }, - "camera-rotate": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0d8", - "label": "Camera Rotate", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573191, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 96h-88l-12.38-32.88C356.6 44.38 338.8 32 318.8 32h-125.5c-20 0-38 12.38-45 31.12L136 96H48C21.5 96 0 117.5 0 144v288C0 458.5 21.5 480 48 480h416c26.5 0 48-21.5 48-48v-288C512 117.5 490.5 96 464 96zM356.9 366.8C332.4 398.1 295.7 416 256 416c-31.78 0-61.37-11.94-84.58-32.61l-19.28 19.29C143.2 411.6 128 405.3 128 392.7V316.3c0-5.453 4.359-9.838 9.775-9.99h76.98c12.35 .3027 18.47 15.27 9.654 24.09l-19.27 19.28C219.3 361.4 237.1 368 256 368c24.8 0 47.78-11.22 63.08-30.78c8.172-10.44 23.25-12.28 33.69-4.125S365.1 356.3 356.9 366.8zM384 259.7c0 5.453-4.359 9.838-9.775 9.99h-76.98c-12.35-.3027-18.47-15.27-9.654-24.09l19.27-19.28C292.7 214.6 274.9 208 256 208c-24.8 0-47.78 11.22-63.08 30.78C184.8 249.2 169.7 251.1 159.2 242.9C148.8 234.8 146.9 219.7 155.1 209.2C179.6 177.9 216.3 160 256 160c31.78 0 61.37 11.94 84.58 32.61l19.28-19.29C368.8 164.4 384 170.7 384 183.3V259.7z" - } - }, - "free": [ - "solid" - ] - }, - "campground": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6bb", - "aliases": { - "unicodes": { - "composite": [ - "26fa" - ], - "secondary": [ - "10f6bb" - ] - } - }, - "label": "Campground", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573191, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M328.1 112L563.7 405.4C571.7 415.4 576 427.7 576 440.4V464C576 490.5 554.5 512 528 512H48C21.49 512 0 490.5 0 464V440.4C0 427.7 4.328 415.4 12.27 405.4L247 112L199 51.99C187.1 38.19 190.2 18.05 204 7.013C217.8-4.027 237.9-1.789 248.1 12.01L288 60.78L327 12.01C338.1-1.789 358.2-4.027 371.1 7.013C385.8 18.05 388 38.19 376.1 51.99L328.1 112zM407.5 448L288 291.7L168.5 448H407.5z" - } - }, - "free": [ - "solid" - ] - }, - "canadian-maple-leaf": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f785", - "label": "Canadian Maple Leaf", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5C293.5 72.3 255.9 0 255.9 0s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3S98.1 167 95.6 172s-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167s17.6 59.7 20.1 67.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512h30s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z" - } - }, - "free": [ - "brands" - ] - }, - "candy-cane": { - "changes": [ - "5.6.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f786", - "aliases": { - "unicodes": { - "secondary": [ - "10f786" - ] - } - }, - "label": "Candy Cane", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573191, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M497.5 91.1C469.6 33.13 411.8 0 352.4 0c-27.88 0-56.14 7.25-81.77 22.62L243.1 38.1C227.9 48.12 223 67.75 232.1 82.87l32.76 54.87c8.522 14.2 27.59 20.6 43.88 11.06l27.51-16.37c5.125-3.125 10.95-4.439 16.58-4.439c10.88 0 21.35 5.625 27.35 15.62c9 15.12 3.917 34.59-11.08 43.71L15.6 397.6c-15.25 9.125-20.13 28.62-11 43.87l32.76 54.87c8.522 14.2 27.59 20.66 43.88 11.12l347.4-206.5C500.2 258.1 533.2 167.5 497.5 91.1zM319.7 104.1L317.2 106.5l-20.5-61.5c9.75-4.75 19.88-8.125 30.38-10.25l20.63 61.87C337.8 97.37 328.2 99.87 319.7 104.1zM145.8 431.7l-60.5-38.5l30.88-18.25l60.5 38.5L145.8 431.7zM253.3 367.9l-60.5-38.5l30.88-18.25l60.5 38.5L253.3 367.9zM364.2 301.1L303.7 263.5l30.88-18.25l60.5 38.5L364.2 301.1zM384.7 104.7l46-45.1c8.375 6.5 16 13.1 22.5 22.5l-45.63 45.81C401.9 117.8 393.9 110.1 384.7 104.7zM466.7 212.5l-59.5-19.75c3.25-5.375 5.875-10.1 7.5-17.12c1-4.5 1.625-9.125 1.75-13.62l60.38 20.12C474.7 192.5 471.4 202.7 466.7 212.5z" - } - }, - "free": [ - "solid" - ] - }, - "cannabis": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f55f", - "aliases": { - "unicodes": { - "secondary": [ - "10f55f" - ] - } - }, - "label": "Cannabis", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 374.4c0 6-3.25 11.38-8.5 14.12c-2.5 1.375-60.75 31.75-133.5 31.75c-6.124 0-12-.125-17.5-.25c11.38 22.25 16.5 38.25 16.75 39.13c1.875 5.75 .375 12-3.875 16.12c-4.125 4.25-10.38 5.75-16.12 4c-1.631-.4648-32.94-10.66-69.25-34.06v42.81C312 501.3 301.3 512 288 512s-24-10.75-24-23.1v-42.81c-36.31 23.4-67.62 33.59-69.25 34.06c-5.75 1.75-12 .25-16.12-4c-4.25-4.25-5.75-10.38-3.875-16.12C175 458.3 180.1 442.1 191.5 420c-5.501 .125-11.37 .25-17.5 .25c-72.75 0-130.1-30.38-133.5-31.75C35.25 385.8 32 380.4 32 374.4c0-5.875 3.25-11.38 8.5-14.12c1.625-.875 32.38-16.88 76.75-25.75c-64.25-75.13-84-161.8-84.88-165.8C31.25 163.5 32.75 157.9 36.63 154C39.75 151 43.75 149.4 48 149.4c1.125 0 2.25 .125 3.375 .375C55.38 150.6 137.1 169.3 212 229.5V225.1c0-118.9 60-213.8 62.5-217.8C277.5 2.75 282.5 0 288 0s10.5 2.75 13.5 7.375C304 11.38 364 106.3 364 225.1V229.5c73.1-60.25 156.6-79 160.5-79.75C525.8 149.5 526.9 149.4 528 149.4c4.25 0 8.25 1.625 11.38 4.625c3.75 3.875 5.375 9.5 4.25 14.75c-.875 4-20.62 90.63-84.88 165.8c44.38 8.875 75.13 24.88 76.75 25.75C540.8 363 544 368.5 544 374.4z" - } - }, - "free": [ - "solid" - ] - }, - "capsules": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f46b", - "aliases": { - "unicodes": { - "secondary": [ - "10f46b" - ] - } - }, - "label": "Capsules", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M555.3 300.1L424.3 112.8C401.9 81 366.4 64 330.4 64c-22.63 0-45.5 6.75-65.5 20.75C245.2 98.5 231.2 117.5 223.4 138.5C220.5 79.25 171.1 32 111.1 32c-61.88 0-111.1 50.08-111.1 111.1L-.0028 368c0 61.88 50.12 112 112 112s112-50.13 112-112L223.1 218.9C227.2 227.5 231.2 236 236.7 243.9l131.3 187.4C390.3 463 425.8 480 461.8 480c22.75 0 45.5-6.75 65.5-20.75C579 423.1 591.5 351.8 555.3 300.1zM159.1 256H63.99V144c0-26.5 21.5-48 48-48s48 21.5 48 48V256zM354.8 300.9l-65.5-93.63c-7.75-11-10.75-24.5-8.375-37.63c2.375-13.25 9.75-24.87 20.75-32.5C310.1 131.1 320.1 128 330.4 128c16.5 0 31.88 8 41.38 21.5l65.5 93.75L354.8 300.9z" - } - }, - "free": [ - "solid" - ] - }, - "car": { - "changes": [ - "4.1.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1b9", - "aliases": { - "names": [ - "automobile" - ], - "unicodes": { - "composite": [ - "1f698" - ], - "secondary": [ - "10f1b9" - ] - } - }, - "label": "Car", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M39.61 196.8L74.8 96.29C88.27 57.78 124.6 32 165.4 32H346.6C387.4 32 423.7 57.78 437.2 96.29L472.4 196.8C495.6 206.4 512 229.3 512 256V448C512 465.7 497.7 480 480 480H448C430.3 480 416 465.7 416 448V400H96V448C96 465.7 81.67 480 64 480H32C14.33 480 0 465.7 0 448V256C0 229.3 16.36 206.4 39.61 196.8V196.8zM109.1 192H402.9L376.8 117.4C372.3 104.6 360.2 96 346.6 96H165.4C151.8 96 139.7 104.6 135.2 117.4L109.1 192zM96 256C78.33 256 64 270.3 64 288C64 305.7 78.33 320 96 320C113.7 320 128 305.7 128 288C128 270.3 113.7 256 96 256zM416 320C433.7 320 448 305.7 448 288C448 270.3 433.7 256 416 256C398.3 256 384 270.3 384 288C384 305.7 398.3 320 416 320z" - } - }, - "free": [ - "solid" - ] - }, - "car-battery": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5df", - "aliases": { - "names": [ - "battery-car" - ], - "unicodes": { - "secondary": [ - "10f5df" - ] - } - }, - "label": "Car Battery", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M80 96C80 78.33 94.33 64 112 64H176C193.7 64 208 78.33 208 96H304C304 78.33 318.3 64 336 64H400C417.7 64 432 78.33 432 96H448C483.3 96 512 124.7 512 160V384C512 419.3 483.3 448 448 448H64C28.65 448 0 419.3 0 384V160C0 124.7 28.65 96 64 96H80zM384 192C384 183.2 376.8 176 368 176C359.2 176 352 183.2 352 192V224H320C311.2 224 304 231.2 304 240C304 248.8 311.2 256 320 256H352V288C352 296.8 359.2 304 368 304C376.8 304 384 296.8 384 288V256H416C424.8 256 432 248.8 432 240C432 231.2 424.8 224 416 224H384V192zM96 256H192C200.8 256 208 248.8 208 240C208 231.2 200.8 224 192 224H96C87.16 224 80 231.2 80 240C80 248.8 87.16 256 96 256z" - } - }, - "free": [ - "solid" - ] - }, - "car-burst": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5e1", - "aliases": { - "names": [ - "car-crash" - ], - "unicodes": { - "secondary": [ - "10f5e1" - ] - } - }, - "label": "Car Crash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M176 8C182.6 8 188.4 11.1 190.9 18.09L220.3 92.05L296.4 68.93C302.7 67.03 309.5 69.14 313.6 74.27C314.1 74.85 314.5 75.45 314.9 76.08C297.8 84.32 282.7 96.93 271.4 113.3L230.4 172.5C203.1 181.4 180.6 203.5 172.6 233.4L152.7 307.4L117.4 339.9C112.6 344.4 105.5 345.4 99.64 342.6C93.73 339.7 90.16 333.6 90.62 327L96.21 247.6L17.56 235.4C11.08 234.4 5.871 229.6 4.413 223.2C2.954 216.8 5.54 210.1 10.94 206.4L76.5 161.3L37.01 92.18C33.76 86.49 34.31 79.39 38.4 74.27C42.48 69.14 49.28 67.03 55.55 68.93L131.7 92.05L161.1 18.09C163.6 11.1 169.4 8 176 8L176 8zM384.2 99.67L519.8 135.1C552.5 144.7 576.1 173.1 578.8 206.8L585.7 290.7C602.9 304.2 611.3 327 605.3 349.4L570.1 480.8C565.5 497.8 547.1 507.1 530.9 503.4L515.5 499.3C498.4 494.7 488.3 477.1 492.8 460.1L501.1 429.1L253.8 362.9L245.6 393.8C240.1 410.9 223.4 421 206.4 416.4L190.9 412.3C173.8 407.7 163.7 390.2 168.3 373.1L203.5 241.7C209.5 219.3 228.2 203.8 249.8 200.7L297.7 131.5C316.9 103.6 351.6 90.92 384.2 99.67L384.2 99.67zM367.7 161.5C361.1 159.7 354.2 162.3 350.4 167.8L318.1 214.5L519.6 268.5L515 211.1C514.5 205.2 509.8 199.6 503.2 197.8L367.7 161.5zM268.3 308.8C281.1 312.2 294.3 304.6 297.7 291.8C301.2 279 293.6 265.9 280.8 262.4C267.1 259 254.8 266.6 251.4 279.4C247.9 292.2 255.5 305.4 268.3 308.8zM528 328.7C515.2 325.3 502.1 332.9 498.6 345.7C495.2 358.5 502.8 371.6 515.6 375.1C528.4 378.5 541.6 370.9 545 358.1C548.4 345.3 540.8 332.1 528 328.7z" - } - }, - "free": [ - "solid" - ] - }, - "car-on": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4dd", - "label": "Car On", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M248 104C248 117.3 237.3 128 224 128C210.7 128 200 117.3 200 104V24C200 10.75 210.7 0 224 0C237.3 0 248 10.75 248 24V104zM153.8 160H294.2C327.1 160 358.1 181.3 369.5 213.1L397.8 292.4C417.9 300.9 432 320.8 432 344V480C432 497.7 417.7 512 400 512H384C366.3 512 352 497.7 352 480V448H96V480C96 497.7 81.67 512 64 512H48C30.33 512 16 497.7 16 480V344C16 320.8 30.08 300.9 50.16 292.4L78.49 213.1C89.86 181.3 120 160 153.8 160H153.8zM153.8 224C147.1 224 141 228.3 138.8 234.6L119.7 288H328.3L309.2 234.6C306.1 228.3 300.9 224 294.2 224H153.8zM96 392C109.3 392 120 381.3 120 368C120 354.7 109.3 344 96 344C82.75 344 72 354.7 72 368C72 381.3 82.75 392 96 392zM352 344C338.7 344 328 354.7 328 368C328 381.3 338.7 392 352 392C365.3 392 376 381.3 376 368C376 354.7 365.3 344 352 344zM7.029 39.03C16.4 29.66 31.6 29.66 40.97 39.03L88.97 87.03C98.34 96.4 98.34 111.6 88.97 120.1C79.6 130.3 64.4 130.3 55.03 120.1L7.029 72.97C-2.343 63.6-2.343 48.4 7.029 39.03V39.03zM407 39.03C416.4 29.66 431.6 29.66 440.1 39.03C450.3 48.4 450.3 63.6 440.1 72.97L392.1 120.1C383.6 130.3 368.4 130.3 359 120.1C349.7 111.6 349.7 96.4 359 87.03L407 39.03z" - } - }, - "free": [ - "solid" - ] - }, - "car-rear": { - "changes": [ - "5.2.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5de", - "aliases": { - "names": [ - "car-alt" - ], - "unicodes": { - "secondary": [ - "10f5de" - ] - } - }, - "label": "Car rear", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M165.4 32H346.6C387.4 32 423.7 57.78 437.2 96.29L472.4 196.8C495.6 206.4 512 229.3 512 256V336C512 359.7 499.1 380.4 480 391.4V448C480 465.7 465.7 480 448 480H416C398.3 480 384 465.7 384 448V400H128V448C128 465.7 113.7 480 96 480H64C46.33 480 32 465.7 32 448V391.4C12.87 380.4 0 359.7 0 336V256C0 229.3 16.36 206.4 39.61 196.8L74.8 96.29C88.27 57.78 124.6 32 165.4 32V32zM165.4 96C151.8 96 139.7 104.6 135.2 117.4L109.1 192H402.9L376.8 117.4C372.3 104.6 360.2 96 346.6 96H165.4zM208 272C199.2 272 192 279.2 192 288V320C192 328.8 199.2 336 208 336H304C312.8 336 320 328.8 320 320V288C320 279.2 312.8 272 304 272H208zM72 304H104C117.3 304 128 293.3 128 280C128 266.7 117.3 256 104 256H72C58.75 256 48 266.7 48 280C48 293.3 58.75 304 72 304zM408 256C394.7 256 384 266.7 384 280C384 293.3 394.7 304 408 304H440C453.3 304 464 293.3 464 280C464 266.7 453.3 256 440 256H408z" - } - }, - "free": [ - "solid" - ] - }, - "car-side": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5e4", - "aliases": { - "unicodes": { - "composite": [ - "1f697" - ], - "secondary": [ - "10f5e4" - ] - } - }, - "label": "Car Side", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 320V368C640 385.7 625.7 400 608 400H574.7C567.1 445.4 527.6 480 480 480C432.4 480 392.9 445.4 385.3 400H254.7C247.1 445.4 207.6 480 160 480C112.4 480 72.94 445.4 65.33 400H32C14.33 400 0 385.7 0 368V256C0 228.9 16.81 205.8 40.56 196.4L82.2 92.35C96.78 55.9 132.1 32 171.3 32H353.2C382.4 32 409.1 45.26 428.2 68.03L528.2 193C591.2 200.1 640 254.8 640 319.1V320zM171.3 96C158.2 96 146.5 103.1 141.6 116.1L111.3 192H224V96H171.3zM272 192H445.4L378.2 108C372.2 100.4 362.1 96 353.2 96H272V192zM525.3 400C527 394.1 528 389.6 528 384C528 357.5 506.5 336 480 336C453.5 336 432 357.5 432 384C432 389.6 432.1 394.1 434.7 400C441.3 418.6 459.1 432 480 432C500.9 432 518.7 418.6 525.3 400zM205.3 400C207 394.1 208 389.6 208 384C208 357.5 186.5 336 160 336C133.5 336 112 357.5 112 384C112 389.6 112.1 394.1 114.7 400C121.3 418.6 139.1 432 160 432C180.9 432 198.7 418.6 205.3 400z" - } - }, - "free": [ - "solid" - ] - }, - "car-tunnel": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4de", - "label": "Car Tunnel", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573192, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M190.8 277.5C191.8 274.2 194.9 272 198.4 272H313.6C317.1 272 320.2 274.2 321.2 277.5L334.1 320H177L190.8 277.5zM144 384C144 370.7 154.7 360 168 360C181.3 360 192 370.7 192 384C192 397.3 181.3 408 168 408C154.7 408 144 397.3 144 384zM368 384C368 397.3 357.3 408 344 408C330.7 408 320 397.3 320 384C320 370.7 330.7 360 344 360C357.3 360 368 370.7 368 384zM512 256V448C512 483.3 483.3 512 448 512H384H128H64C28.65 512 0 483.3 0 448V256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM384 512C401.7 512 416 497.7 416 480V376C416 355.2 404.7 337.1 387.8 327.4L366.9 262.7C359.4 239.6 337.9 224 313.6 224H198.4C174.1 224 152.6 239.6 145.1 262.7L124.1 327.4C107.3 337.1 96 355.2 96 376V480C96 497.7 110.3 512 128 512C145.7 512 160 497.7 160 480V448H352V480C352 497.7 366.3 512 384 512H384z" - } - }, - "free": [ - "solid" - ] - }, - "caravan": { - "changes": [ - "5.12.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f8ff", - "aliases": { - "unicodes": { - "secondary": [ - "10f8ff" - ] - } - }, - "label": "Caravan", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 112C0 67.82 35.82 32 80 32H416C504.4 32 576 103.6 576 192V352H608C625.7 352 640 366.3 640 384C640 401.7 625.7 416 608 416H288C288 469 245 512 192 512C138.1 512 96 469 96 416H80C35.82 416 0 380.2 0 336V112zM320 352H448V256H416C407.2 256 400 248.8 400 240C400 231.2 407.2 224 416 224H448V160C448 142.3 433.7 128 416 128H352C334.3 128 320 142.3 320 160V352zM96 128C78.33 128 64 142.3 64 160V224C64 241.7 78.33 256 96 256H224C241.7 256 256 241.7 256 224V160C256 142.3 241.7 128 224 128H96zM192 464C218.5 464 240 442.5 240 416C240 389.5 218.5 368 192 368C165.5 368 144 389.5 144 416C144 442.5 165.5 464 192 464z" - } - }, - "free": [ - "solid" - ] - }, - "caret-down": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0d7", - "aliases": { - "unicodes": { - "secondary": [ - "10f0d7" - ] - } - }, - "label": "Caret Down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M310.6 246.6l-127.1 128C176.4 380.9 168.2 384 160 384s-16.38-3.125-22.63-9.375l-127.1-128C.2244 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75S319.8 237.5 310.6 246.6z" - } - }, - "free": [ - "solid" - ] - }, - "caret-left": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0d9", - "aliases": { - "unicodes": { - "secondary": [ - "10f0d9" - ] - } - }, - "label": "Caret Left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M137.4 406.6l-128-127.1C3.125 272.4 0 264.2 0 255.1s3.125-16.38 9.375-22.63l128-127.1c9.156-9.156 22.91-11.9 34.88-6.943S192 115.1 192 128v255.1c0 12.94-7.781 24.62-19.75 29.58S146.5 415.8 137.4 406.6z" - } - }, - "free": [ - "solid" - ] - }, - "caret-right": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0da", - "aliases": { - "unicodes": { - "secondary": [ - "10f0da" - ] - } - }, - "label": "Caret Right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M118.6 105.4l128 127.1C252.9 239.6 256 247.8 256 255.1s-3.125 16.38-9.375 22.63l-128 127.1c-9.156 9.156-22.91 11.9-34.88 6.943S64 396.9 64 383.1V128c0-12.94 7.781-24.62 19.75-29.58S109.5 96.23 118.6 105.4z" - } - }, - "free": [ - "solid" - ] - }, - "caret-up": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0d8", - "aliases": { - "unicodes": { - "secondary": [ - "10f0d8" - ] - } - }, - "label": "Caret Up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M9.39 265.4l127.1-128C143.6 131.1 151.8 128 160 128s16.38 3.125 22.63 9.375l127.1 128c9.156 9.156 11.9 22.91 6.943 34.88S300.9 320 287.1 320H32.01c-12.94 0-24.62-7.781-29.58-19.75S.2333 274.5 9.39 265.4z" - } - }, - "free": [ - "solid" - ] - }, - "carrot": { - "changes": [ - "5.6.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f787", - "aliases": { - "unicodes": { - "composite": [ - "1f955" - ], - "secondary": [ - "10f787" - ] - } - }, - "label": "Carrot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M298.2 156.6C245.5 130.9 183.7 146.1 147.1 189.4l55.27 55.31c6.25 6.25 6.25 16.33 0 22.58c-3.127 3-7.266 4.605-11.39 4.605s-8.068-1.605-11.19-4.605L130.3 217l-128.1 262.8c-2.875 6-3 13.25 0 19.63c5.5 11.12 19 15.75 30 10.38l133.6-65.25L116.7 395.3c-6.377-6.125-6.377-16.38 0-22.5c6.25-6.25 16.37-6.25 22.5 0l56.98 56.98l102-49.89c24-11.63 44.5-31.26 57.13-57.13C385.5 261.1 359.9 186.8 298.2 156.6zM390.2 121.8C409.7 81 399.7 32.88 359.1 0c-50.25 41.75-52.51 107.5-7.875 151.9l8 8C404.5 204.5 470.4 202.3 512 152C479.1 112.3 430.1 102.3 390.2 121.8z" - } - }, - "free": [ - "solid" - ] - }, - "cart-arrow-down": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f218", - "aliases": { - "unicodes": { - "secondary": [ - "10f218" - ] - } - }, - "label": "Shopping Cart Arrow Down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573193, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 24C0 10.75 10.75 0 24 0H96C107.5 0 117.4 8.19 119.6 19.51L121.1 32H312V134.1L288.1 111C279.6 101.7 264.4 101.7 255 111C245.7 120.4 245.7 135.6 255 144.1L319 208.1C328.4 218.3 343.6 218.3 352.1 208.1L416.1 144.1C426.3 135.6 426.3 120.4 416.1 111C407.6 101.7 392.4 101.7 383 111L360 134.1V32H541.8C562.1 32 578.3 52.25 572.6 72.66L518.6 264.7C514.7 278.5 502.1 288 487.8 288H170.7L179.9 336H488C501.3 336 512 346.7 512 360C512 373.3 501.3 384 488 384H159.1C148.5 384 138.6 375.8 136.4 364.5L76.14 48H24C10.75 48 0 37.25 0 24V24zM224 464C224 490.5 202.5 512 176 512C149.5 512 128 490.5 128 464C128 437.5 149.5 416 176 416C202.5 416 224 437.5 224 464zM416 464C416 437.5 437.5 416 464 416C490.5 416 512 437.5 512 464C512 490.5 490.5 512 464 512C437.5 512 416 490.5 416 464z" - } - }, - "free": [ - "solid" - ] - }, - "cart-flatbed": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f474", - "aliases": { - "names": [ - "dolly-flatbed" - ], - "unicodes": { - "secondary": [ - "10f474" - ] - } - }, - "label": "Cart flatbed", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573194, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M240 320h320c26.4 0 48-21.6 48-48v-192C608 53.6 586.4 32 560 32H448v128l-48-32L352 160V32H240C213.6 32 192 53.6 192 80v192C192 298.4 213.6 320 240 320zM608 384H128V64c0-35.2-28.8-64-64-64H31.1C14.4 0 0 14.4 0 32S14.4 64 31.1 64H48C56.84 64 64 71.16 64 80v335.1c0 17.6 14.4 32 32 32l66.92-.0009C161.1 453 160 458.4 160 464C160 490.5 181.5 512 208 512S256 490.5 256 464c0-5.641-1.13-10.97-2.917-16h197.9c-1.787 5.027-2.928 10.36-2.928 16C448 490.5 469.5 512 496 512c26.51 0 48.01-21.49 48.01-47.1c0-5.641-1.12-10.97-2.907-16l66.88 .0009C625.6 448 640 433.6 640 415.1C640 398.4 625.6 384 608 384z" - } - }, - "free": [ - "solid" - ] - }, - "cart-flatbed-suitcase": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f59d", - "aliases": { - "names": [ - "luggage-cart" - ], - "unicodes": { - "secondary": [ - "10f59d" - ] - } - }, - "label": "Cart flatbed suitcase", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573194, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M541.2 448C542.1 453 544.1 458.4 544.1 464C544.1 490.5 522.6 512 496 512C469.5 512 448.1 490.5 448.1 464C448.1 458.4 449.2 453 450.1 448H253.1C254.9 453 256 458.4 256 464C256 490.5 234.5 512 208 512C181.5 512 160 490.5 160 464C160 458.4 161.1 453 162.9 448L96 448C78.4 448 64 433.6 64 416V80C64 71.16 56.84 64 48 64H32C14.4 64 0 49.6 0 32C0 14.4 14.4 0 32 0H64C99.2 0 128 28.8 128 64V384H608C625.6 384 640 398.4 640 416C640 433.6 625.6 448 608 448L541.2 448zM432 0C458.5 0 480 21.5 480 48V320H288V48C288 21.5 309.5 0 336 0H432zM336 96H432V48H336V96zM256 320H224C206.4 320 192 305.6 192 288V128C192 110.4 206.4 96 224 96H256V320zM576 128V288C576 305.6 561.6 320 544 320H512V96H544C561.6 96 576 110.4 576 128z" - } - }, - "free": [ - "solid" - ] - }, - "cart-plus": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f217", - "aliases": { - "unicodes": { - "secondary": [ - "10f217" - ] - } - }, - "label": "Add to Shopping Cart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573194, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C107.5 0 117.4 8.19 119.6 19.51L121.1 32H541.8C562.1 32 578.3 52.25 572.6 72.66L518.6 264.7C514.7 278.5 502.1 288 487.8 288H170.7L179.9 336H488C501.3 336 512 346.7 512 360C512 373.3 501.3 384 488 384H159.1C148.5 384 138.6 375.8 136.4 364.5L76.14 48H24C10.75 48 0 37.25 0 24C0 10.75 10.75 0 24 0H96zM272 180H316V224C316 235 324.1 244 336 244C347 244 356 235 356 224V180H400C411 180 420 171 420 160C420 148.1 411 140 400 140H356V96C356 84.95 347 76 336 76C324.1 76 316 84.95 316 96V140H272C260.1 140 252 148.1 252 160C252 171 260.1 180 272 180zM128 464C128 437.5 149.5 416 176 416C202.5 416 224 437.5 224 464C224 490.5 202.5 512 176 512C149.5 512 128 490.5 128 464zM512 464C512 490.5 490.5 512 464 512C437.5 512 416 490.5 416 464C416 437.5 437.5 416 464 416C490.5 416 512 437.5 512 464z" - } - }, - "free": [ - "solid" - ] - }, - "cart-shopping": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f07a", - "aliases": { - "names": [ - "shopping-cart" - ], - "unicodes": { - "composite": [ - "1f6d2" - ], - "secondary": [ - "10f07a" - ] - } - }, - "label": "Cart shopping", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573194, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C107.5 0 117.4 8.19 119.6 19.51L121.1 32H541.8C562.1 32 578.3 52.25 572.6 72.66L518.6 264.7C514.7 278.5 502.1 288 487.8 288H170.7L179.9 336H488C501.3 336 512 346.7 512 360C512 373.3 501.3 384 488 384H159.1C148.5 384 138.6 375.8 136.4 364.5L76.14 48H24C10.75 48 0 37.25 0 24C0 10.75 10.75 0 24 0H96zM128 464C128 437.5 149.5 416 176 416C202.5 416 224 437.5 224 464C224 490.5 202.5 512 176 512C149.5 512 128 490.5 128 464zM512 464C512 490.5 490.5 512 464 512C437.5 512 416 490.5 416 464C416 437.5 437.5 416 464 416C490.5 416 512 437.5 512 464z" - } - }, - "free": [ - "solid" - ] - }, - "cash-register": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f788", - "aliases": { - "unicodes": { - "secondary": [ - "10f788" - ] - } - }, - "label": "Cash Register", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573194, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 0C305.7 0 320 14.33 320 32V96C320 113.7 305.7 128 288 128H208V160H424.1C456.6 160 483.5 183.1 488.2 214.4L510.9 364.1C511.6 368.8 512 373.6 512 378.4V448C512 483.3 483.3 512 448 512H64C28.65 512 0 483.3 0 448V378.4C0 373.6 .3622 368.8 1.083 364.1L23.76 214.4C28.5 183.1 55.39 160 87.03 160H143.1V128H63.1C46.33 128 31.1 113.7 31.1 96V32C31.1 14.33 46.33 0 63.1 0L288 0zM96 48C87.16 48 80 55.16 80 64C80 72.84 87.16 80 96 80H256C264.8 80 272 72.84 272 64C272 55.16 264.8 48 256 48H96zM80 448H432C440.8 448 448 440.8 448 432C448 423.2 440.8 416 432 416H80C71.16 416 64 423.2 64 432C64 440.8 71.16 448 80 448zM112 216C98.75 216 88 226.7 88 240C88 253.3 98.75 264 112 264C125.3 264 136 253.3 136 240C136 226.7 125.3 216 112 216zM208 264C221.3 264 232 253.3 232 240C232 226.7 221.3 216 208 216C194.7 216 184 226.7 184 240C184 253.3 194.7 264 208 264zM160 296C146.7 296 136 306.7 136 320C136 333.3 146.7 344 160 344C173.3 344 184 333.3 184 320C184 306.7 173.3 296 160 296zM304 264C317.3 264 328 253.3 328 240C328 226.7 317.3 216 304 216C290.7 216 280 226.7 280 240C280 253.3 290.7 264 304 264zM256 296C242.7 296 232 306.7 232 320C232 333.3 242.7 344 256 344C269.3 344 280 333.3 280 320C280 306.7 269.3 296 256 296zM400 264C413.3 264 424 253.3 424 240C424 226.7 413.3 216 400 216C386.7 216 376 226.7 376 240C376 253.3 386.7 264 400 264zM352 296C338.7 296 328 306.7 328 320C328 333.3 338.7 344 352 344C365.3 344 376 333.3 376 320C376 306.7 365.3 296 352 296z" - } - }, - "free": [ - "solid" - ] - }, - "cat": { - "changes": [ - "5.4.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6be", - "aliases": { - "unicodes": { - "composite": [ - "1f408" - ], - "secondary": [ - "10f6be" - ] - } - }, - "label": "Cat", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573195, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M322.6 192C302.4 192 215.8 194 160 278V192c0-53-43-96-96-96C46.38 96 32 110.4 32 128s14.38 32 32 32s32 14.38 32 32v256c0 35.25 28.75 64 64 64h176c8.875 0 16-7.125 16-15.1V480c0-17.62-14.38-32-32-32h-32l128-96v144c0 8.875 7.125 16 16 16h32c8.875 0 16-7.125 16-16V289.9c-10.25 2.625-20.88 4.5-32 4.5C386.2 294.4 334.5 250.4 322.6 192zM480 96h-64l-64-64v134.4c0 53 43 95.1 96 95.1s96-42.1 96-95.1V32L480 96zM408 176c-8.875 0-16-7.125-16-16s7.125-16 16-16s16 7.125 16 16S416.9 176 408 176zM488 176c-8.875 0-16-7.125-16-16s7.125-16 16-16s16 7.125 16 16S496.9 176 488 176z" - } - }, - "free": [ - "solid" - ] - }, - "cc-amazon-pay": { - "changes": [ - "5.0.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f42d", - "label": "Amazon Pay Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M124.7 201.8c.1-11.8 0-23.5 0-35.3v-35.3c0-1.3 .4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5 .9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5 .9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8 .1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zm-207.5 23.9c.4 1.7 .9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4 .2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9 .9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3 .1 4.6 1.6 6.7 6.2 7.5 4.7 .8 9.4 1.6 14.2 1.7 14.3 .3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5 .6-1.5 1.1-3 1.3-4.6 .4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5 .4-.3 .8-.6 1.4-1 .5 3.2 .9 6.2 1.5 9.2 .5 2.6 2.1 4.3 4.5 4.4 4.6 .1 9.1 .1 13.7 0 2.3-.1 3.8-1.6 4-3.9 .1-.8 .1-1.6 .1-2.3v-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1h-10c-.8 .1-1.6 .3-2.5 .3-8.2 .4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5 .1 2.8-.1 5.6 0 8.3 .1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4 .8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7 .3 6.9 .2 13.9 .3 20.8 0 .4-.1 .7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9 .1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9v175.3c0 .8 0 1.7 .1 2.5 .2 2.5 1.7 4.1 4.1 4.2 5.9 .1 11.8 .1 17.7 0 2.5 0 4-1.7 4.1-4.1 .1-.8 .1-1.7 .1-2.5v-60.7c.9 .7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2h-7c-1.2 .2-2.4 .3-3.6 .5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6h-9.7c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6 .7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1v1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4 .7 0 1.4 .2 2.1 .3h17.7c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zm50.4-27.7c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2 .8-2.4 1.8-3.1 3-.6 .9-.7 2.3-.5 3.4 .3 1.3 1.7 1.6 3 1.5 .6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1 .3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7 .3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3 .8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6 .7-3 1.2-6.1 1.7-9.1 .2-4.7 .2-9.6 .2-14.5z" - } - }, - "free": [ - "brands" - ] - }, - "cc-amex": { - "changes": [ - "4.2.0", - "5.0.0", - "5.7.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1f3", - "label": "American Express Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M48 480C21.49 480 0 458.5 0 432V80C0 53.49 21.49 32 48 32H528C554.5 32 576 53.49 576 80V82.43H500.5L483.5 130L466.6 82.43H369.4V145.6L341.3 82.43H262.7L181 267.1H246.8V430.9H450.5L482.4 395.8L514.3 430.9H576V432C576 458.5 554.5 480 528 480H48zM482.6 364L440.4 410.3H390.5L458 338.6L390.5 266.1H441.9L483.4 312.8L525.4 266.1H576L508 338.2L576 410.3H524.6L482.6 364zM576 296.9V380.2L536.7 338.3L576 296.9zM307.6 377.1H390.6V410.3H268.6V267.1H390.6V300.2H307.6V322.6H388.5V354.9H307.6V377.2V377.1zM537.3 145.7L500.4 246.3H466L429.2 146V246.3H390.5V103H451.7L483.6 192.3L515.8 103H576V246.3H537.3V145.7zM334.5 217.6H268.6L256.7 246.3H213.7L276.1 103H327.3L390.6 246.3H346.5L334.5 217.6zM301.5 138.5L282 185.4H320.9L301.5 138.5z" - } - }, - "free": [ - "brands" - ] - }, - "cc-apple-pay": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f416", - "label": "Apple Pay Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M302.2 218.4c0 17.2-10.5 27.1-29 27.1h-24.3v-54.2h24.4c18.4 0 28.9 9.8 28.9 27.1zm47.5 62.6c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9v-7.7l-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V79c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8h-51.2v136.4h21.2v-46.6h29.3c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5h19.1c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2v7.5l-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4h.4V310h19.6v-68zM516 210.9h-21.5l-24.9 80.6h-.4l-24.9-80.6H422l35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3v16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z" - } - }, - "free": [ - "brands" - ] - }, - "cc-diners-club": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f24c", - "label": "Diner's Club Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M239.7 79.9c-96.9 0-175.8 78.6-175.8 175.8 0 96.9 78.9 175.8 175.8 175.8 97.2 0 175.8-78.9 175.8-175.8 0-97.2-78.6-175.8-175.8-175.8zm-39.9 279.6c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1v207.9zm79.8 .3V151.6c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM329.7 448h-90.3c-106.2 0-193.8-85.5-193.8-190.2C45.6 143.2 133.2 64 239.4 64h90.3c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z" - } - }, - "free": [ - "brands" - ] - }, - "cc-discover": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1f2", - "label": "Discover Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1h-4.9v24.9h4.7c10.3 0 15.8-4.4 15.8-12.8zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-44.1 138.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4h-19.6l-22.2-32.8h-2.2v32.8h-16zm-55.9 .1h45.3v14H444v18.2h28.3V217H444v22.2h29.3V253H428zm-68.7 0l21.9 55.2 22.2-55.2h17.5l-35.5 84.2h-8.6l-35-84.2zm-55.9-3c24.7 0 44.6 20 44.6 44.6 0 24.7-20 44.6-44.6 44.6-24.7 0-44.6-20-44.6-44.6 0-24.7 20-44.6 44.6-44.6zm-49.3 6.1v19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2v19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253H32v-82h23.4c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0h-16v-82h16zM544 433c0 8.2-6.8 15-15 15H128c189.6-35.6 382.7-139.2 416-160zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6H48v54.2h4.2c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z" - } - }, - "free": [ - "brands" - ] - }, - "cc-jcb": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f24b", - "label": "JCB Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M431.5 244.3V212c41.2 0 38.5 .2 38.5 .2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2 .4-3.3 .3-38.5 .3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5v35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM182 192.3h-57c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8v28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2V287C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2v-28zM544 286.5c0-18.5-16.5-30.5-38-32v-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3v127.5h122.7c24.3 .1 42.3-12.9 42.3-33.2z" - } - }, - "free": [ - "brands" - ] - }, - "cc-mastercard": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1f1", - "label": "MasterCard Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7 0-6.5 4.4-11.7 11.2-11.7 6.6 0 11.2 5.2 11.2 11.7zm-310.8-11.7c-7.1 0-11.2 5.2-11.2 11.7 0 6.5 4.1 11.7 11.2 11.7 6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7h19.1c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7 0 6.5 4.1 11.7 10.9 11.7 6.8 0 11.2-4.9 11.2-11.7 0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8 0-.3 0-.5-.3-.8-.3 0-.5-.3-1.1-.3h-1.6v3.5h.8V426h.3l1.1 1.4h.8l-1.1-1.3zM576 81v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V81c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zm224 108.8c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zm-142.3 76.3c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4V392h-8.2v36.7h8.2c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2h7.9c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2h8.2v-23zm44.9-13.7h-7.9v4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4v4.6h7.9V392zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1v-16.6h13.1V392h-13.1v-11.2h-8.2V392h-7.6v7.3h7.6V416c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4h27.5c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zm59.1-21.5c-4.6-2-11.6-1.8-15.2 4.4V392h-8.2v36.7h8.2V408c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zm66.7-18.3H408v4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9v4.6h8.2V392zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4V392h-7.9v36.7h7.9V408c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9h-7.9v19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9v4.6h7.9v-51.7zm7.6-75.1v4.6h.8V302h1.9v-.8h-4.6v.8h1.9zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1-.3-.3-.8-.5-1.1-.8-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8 .3-.3 .5-.8 .8-1.1 .3-.6 .3-1.1 .3-1.4zm3.2-124.7h-1.4l-1.6 3.5-1.6-3.5h-1.4v5.4h.8v-4.1l1.6 3.5h1.1l1.4-3.5v4.1h1.1v-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z" - } - }, - "free": [ - "brands" - ] - }, - "cc-paypal": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1f4", - "label": "Paypal Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7h-4.7c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0H360c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28h-40c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4h19c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H200c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm40.5 97.9l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5h-19.2c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4h-18.7c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2h19.2c1.8-.1 3.5-1.1 4.5-2.6zm159.3-106.7c0-21-16.2-28-34.7-28h-39.7c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4h20.5c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8h-19c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4H484c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zm47.5-33.3c0-2-1.5-3.5-3.2-3.5h-18.5c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5h16.5c2.5 0 5-2.9 5.2-5.7L544 191.2v-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z" - } - }, - "free": [ - "brands" - ] - }, - "cc-stripe": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1f5", - "label": "Stripe Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7h36.7c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h480c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1v-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5v33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zm68.8-56.6h-27V275c0 20.9 22.5 14.4 27 12.6v28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4v30.8H191zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4v84.4h-35.5V194.2h30.7l2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5h.1zm44.1 91.8h-35.7V194.2h35.7zm0-142.9l-35.7 7.6v-28.9l35.7-7.6zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5V194.2h31.3l1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5h-69.5c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9V312c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z" - } - }, - "free": [ - "brands" - ] - }, - "cc-visa": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1f0", - "label": "Visa Credit Card", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M470.1 231.3s7.6 37.2 9.3 45H446c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h480c26.5 0 48 21.5 48 48zM152.5 331.2L215.7 176h-42.5l-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1H32.7l-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135h42.5zm94.4 .2L272.1 176h-40.2l-25.1 155.4h40.1zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4L495.6 176h-31.1c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5H426s6.9-19.2 8.4-23.3H486c1.2 5.5 4.8 23.3 4.8 23.3H528z" - } - }, - "free": [ - "brands" - ] - }, - "cedi-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0df", - "label": "Cedi Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573195, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M224 66.66C254.9 71.84 283.2 84.39 307.2 102.4C321.4 113 324.2 133.1 313.6 147.2C302.1 161.4 282.9 164.2 268.8 153.6C255.6 143.7 240.4 136.3 224 132V379.1C240.4 375.7 255.6 368.3 268.8 358.4C282.9 347.8 302.1 350.6 313.6 364.8C324.2 378.9 321.4 398.1 307.2 409.6C283.2 427.6 254.9 440.2 224 445.3V480C224 497.7 209.7 512 192 512C174.3 512 160 497.7 160 480V445.3C69.19 430.1 0 351.1 0 256C0 160.9 69.19 81.89 160 66.65V32C160 14.33 174.3 0 192 0C209.7 0 224 14.33 224 32V66.66zM160 132C104.8 146.2 64 196.4 64 255.1C64 315.6 104.8 365.8 160 379.1V132z" - } - }, - "free": [ - "solid" - ] - }, - "cent-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e3f5", - "label": "Cent Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573195, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M192 0C209.7 0 224 14.33 224 32V66.66C254.9 71.84 283.2 84.39 307.2 102.4C321.4 113 324.2 133.1 313.6 147.2C302.1 161.4 282.9 164.2 268.8 153.6C247.4 137.5 220.9 128 192 128C121.3 128 64 185.3 64 256C64 326.7 121.3 384 192 384C220.9 384 247.4 374.5 268.8 358.4C282.9 347.8 302.1 350.6 313.6 364.8C324.2 378.9 321.4 398.1 307.2 409.6C283.2 427.6 254.9 440.2 224 445.3V480C224 497.7 209.7 512 192 512C174.3 512 160 497.7 160 480V445.3C69.19 430.1 0 351.1 0 256C0 160.9 69.19 81.89 160 66.66V32C160 14.33 174.3 .0006 192 .0006V0z" - } - }, - "free": [ - "solid" - ] - }, - "centercode": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f380", - "label": "Centercode", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M329.2 268.6c-3.8 35.2-35.4 60.6-70.6 56.8-35.2-3.8-60.6-35.4-56.8-70.6 3.8-35.2 35.4-60.6 70.6-56.8 35.1 3.8 60.6 35.4 56.8 70.6zm-85.8 235.1C96.7 496-8.2 365.5 10.1 224.3c11.2-86.6 65.8-156.9 139.1-192 161-77.1 349.7 37.4 354.7 216.6 4.1 147-118.4 262.2-260.5 254.8zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z" - } - }, - "free": [ - "brands" - ] - }, - "centos": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f789", - "label": "Centos", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572473, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M289.6 97.5l31.6 31.7-76.3 76.5V97.5zm-162.4 31.7l76.3 76.5V97.5h-44.7zm41.5-41.6h44.7v127.9l10.8 10.8 10.8-10.8V87.6h44.7L224.2 32zm26.2 168.1l-10.8-10.8H55.5v-44.8L0 255.7l55.5 55.6v-44.8h128.6l10.8-10.8zm79.3-20.7h107.9v-44.8l-31.6-31.7zm173.3 20.7L392 200.1v44.8H264.3l-10.8 10.8 10.8 10.8H392v44.8l55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5h15.3v-15.3l-90.3-90.5 31.6-31.7H65.4zm316.7-78.7h-78.5l31.6 31.7-90.3 90.5V235h15.3l90.3-90.5 31.6 31.7zM203.5 413.9V305.8l-76.3 76.5 31.6 31.7h44.7zM65.4 235h108.8l-76.3-76.5-32.5 31.7zm316.7 100.2l-31.6 31.7-90.3-90.5h-15.3v15.3l90.3 90.5-31.6 31.7h78.5zm0-58.8H274.2l76.3 76.5 31.6-31.7zm-60.9 105.8l-76.3-76.5v108.1h44.7zM97.9 352.9l76.3-76.5H65.4v44.8zm181.8 70.9H235V295.9l-10.8-10.8-10.8 10.8v127.9h-44.7l55.5 55.6zm-166.5-41.6l90.3-90.5v-15.3h-15.3l-90.3 90.5-32.5-31.7v78.7h79.4z" - } - }, - "free": [ - "brands" - ] - }, - "certificate": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0a3", - "aliases": { - "unicodes": { - "secondary": [ - "10f0a3" - ] - } - }, - "label": "certificate", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573195, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 53.46L300.1 7.261C307 1.034 315.1-1.431 324.4 .8185C332.8 3.068 339.3 9.679 341.4 18.1L357.3 80.6L419.3 63.07C427.7 60.71 436.7 63.05 442.8 69.19C448.1 75.34 451.3 84.33 448.9 92.69L431.4 154.7L493.9 170.6C502.3 172.7 508.9 179.2 511.2 187.6C513.4 196 510.1 204.1 504.7 211L458.5 256L504.7 300.1C510.1 307 513.4 315.1 511.2 324.4C508.9 332.8 502.3 339.3 493.9 341.4L431.4 357.3L448.9 419.3C451.3 427.7 448.1 436.7 442.8 442.8C436.7 448.1 427.7 451.3 419.3 448.9L357.3 431.4L341.4 493.9C339.3 502.3 332.8 508.9 324.4 511.2C315.1 513.4 307 510.1 300.1 504.7L256 458.5L211 504.7C204.1 510.1 196 513.4 187.6 511.2C179.2 508.9 172.7 502.3 170.6 493.9L154.7 431.4L92.69 448.9C84.33 451.3 75.34 448.1 69.19 442.8C63.05 436.7 60.71 427.7 63.07 419.3L80.6 357.3L18.1 341.4C9.679 339.3 3.068 332.8 .8186 324.4C-1.431 315.1 1.034 307 7.261 300.1L53.46 256L7.261 211C1.034 204.1-1.431 196 .8186 187.6C3.068 179.2 9.679 172.7 18.1 170.6L80.6 154.7L63.07 92.69C60.71 84.33 63.05 75.34 69.19 69.19C75.34 63.05 84.33 60.71 92.69 63.07L154.7 80.6L170.6 18.1C172.7 9.679 179.2 3.068 187.6 .8185C196-1.431 204.1 1.034 211 7.261L256 53.46z" - } - }, - "free": [ - "solid" - ] - }, - "chair": { - "changes": [ - "5.4.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6c0", - "aliases": { - "unicodes": { - "composite": [ - "1fa91" - ], - "secondary": [ - "10f6c0" - ] - } - }, - "label": "Chair", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573195, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M445.1 338.6l-14.77-32C425.1 295.3 413.7 288 401.2 288H46.76C34.28 288 22.94 295.3 17.7 306.6l-14.77 32c-4.563 9.906-3.766 21.47 2.109 30.66S21.09 384 31.1 384l.001 112c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16V384h256v112c0 8.836 7.164 16 16 16h31.1c8.838 0 16-7.164 16-16L416 384c10.91 0 21.08-5.562 26.95-14.75S449.6 348.5 445.1 338.6zM111.1 128c0-29.48 16.2-54.1 40-68.87L151.1 256h48l.0092-208h48L247.1 256h48l.0093-196.9C319.8 73 335.1 98.52 335.1 128l-.0094 128h48.03l-.0123-128c0-70.69-57.31-128-128-128H191.1C121.3 0 63.98 57.31 63.98 128l.0158 128h47.97L111.1 128z" - } - }, - "free": [ - "solid" - ] - }, - "chalkboard": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f51b", - "aliases": { - "names": [ - "blackboard" - ], - "unicodes": { - "secondary": [ - "10f51b" - ] - } - }, - "label": "Chalkboard", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573195, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 96h384v288h64V72C544 50 525.1 32 504 32H72C49.1 32 32 50 32 72V384h64V96zM560 416H416v-48c0-8.838-7.164-16-16-16h-160C231.2 352 224 359.2 224 368V416H16C7.164 416 0 423.2 0 432v32C0 472.8 7.164 480 16 480h544c8.836 0 16-7.164 16-16v-32C576 423.2 568.8 416 560 416z" - } - }, - "free": [ - "solid" - ] - }, - "chalkboard-user": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f51c", - "aliases": { - "names": [ - "chalkboard-teacher" - ], - "unicodes": { - "secondary": [ - "10f51c" - ] - } - }, - "label": "Chalkboard user", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573195, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M592 0h-384C181.5 0 160 22.25 160 49.63V96c23.42 0 45.1 6.781 63.1 17.81V64h352v288h-64V304c0-8.838-7.164-16-16-16h-96c-8.836 0-16 7.162-16 16V352H287.3c22.07 16.48 39.54 38.5 50.76 64h253.9C618.5 416 640 393.8 640 366.4V49.63C640 22.25 618.5 0 592 0zM160 320c53.02 0 96-42.98 96-96c0-53.02-42.98-96-96-96C106.1 128 64 170.1 64 224C64 277 106.1 320 160 320zM192 352H128c-70.69 0-128 57.31-128 128c0 17.67 14.33 32 32 32h256c17.67 0 32-14.33 32-32C320 409.3 262.7 352 192 352z" - } - }, - "free": [ - "solid" - ] - }, - "champagne-glasses": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f79f", - "aliases": { - "names": [ - "glass-cheers" - ], - "unicodes": { - "composite": [ - "1f942" - ], - "secondary": [ - "10f79f" - ] - } - }, - "label": "Champagne glasses", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M639.4 433.6c-8.374-20.37-31.75-30.12-52.12-21.62l-22.12 9.249l-38.75-101.1c47.87-34.1 64.87-100.2 34.5-152.7l-86.62-150.5c-7.999-13.87-24.1-19.75-39.1-13.62l-114.2 47.37L205.8 2.415C190.8-3.71 173.8 2.165 165.8 16.04L79.15 166.5C48.9 219 65.78 284.3 113.6 319.2l-38.75 101.9L52.78 411.9c-20.37-8.499-43.62 1.25-52.12 21.62c-1.75 4.124 .125 8.749 4.25 10.5l162.4 67.37c3.1 1.75 8.624-.125 10.37-4.249c8.374-20.37-1.25-43.87-21.62-52.37l-22.12-9.124l39.37-103.6c4.5 .4999 8.874 1.25 13.12 1.25c51.75 0 99.37-32.1 113.4-85.24l20.25-75.36l20.25 75.36c13.1 52.24 61.62 85.24 113.4 85.24c4.25 0 8.624-.7499 13.12-1.25l39.25 103.6l-22.12 9.124c-20.37 8.499-30.12 31.1-21.62 52.37c1.75 4.124 6.5 5.999 10.5 4.249l162.4-67.37C639.1 442.2 641.1 437.7 639.4 433.6zM275.9 162.1L163.8 115.6l36.5-63.37L294.8 91.4L275.9 162.1zM364.1 162.1l-18.87-70.74l94.49-39.12l36.5 63.37L364.1 162.1z" - } - }, - "free": [ - "solid" - ] - }, - "charging-station": { - "changes": [ - "5.2.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5e7", - "aliases": { - "unicodes": { - "secondary": [ - "10f5e7" - ] - } - }, - "label": "Charging Station", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 0C291.3 0 320 28.65 320 64V256H336C384.6 256 424 295.4 424 344V376C424 389.3 434.7 400 448 400C461.3 400 472 389.3 472 376V252.3C439.5 242.1 416 211.8 416 176V144C416 135.2 423.2 128 432 128H448V80C448 71.16 455.2 64 464 64C472.8 64 480 71.16 480 80V128H512V80C512 71.16 519.2 64 528 64C536.8 64 544 71.16 544 80V128H560C568.8 128 576 135.2 576 144V176C576 211.8 552.5 242.1 520 252.3V376C520 415.8 487.8 448 448 448C408.2 448 376 415.8 376 376V344C376 321.9 358.1 304 336 304H320V448C337.7 448 352 462.3 352 480C352 497.7 337.7 512 320 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448V64C32 28.65 60.65 0 96 0H256zM197.6 83.85L85.59 179.9C80.5 184.2 78.67 191.3 80.99 197.6C83.32 203.8 89.3 208 95.1 208H153.8L128.8 282.9C126.5 289.8 129.1 297.3 135.1 301.3C141 305.3 148.1 304.8 154.4 300.1L266.4 204.1C271.5 199.8 273.3 192.7 271 186.4C268.7 180.2 262.7 176 256 176H198.2L223.2 101.1C225.5 94.24 222.9 86.74 216.9 82.72C210.1 78.71 203 79.17 197.6 83.85V83.85z" - } - }, - "free": [ - "solid" - ] - }, - "chart-area": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1fe", - "aliases": { - "names": [ - "area-chart" - ], - "unicodes": { - "secondary": [ - "10f1fe" - ] - } - }, - "label": "Area Chart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 400C64 408.8 71.16 416 80 416H480C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H80C35.82 480 0 444.2 0 400V64C0 46.33 14.33 32 32 32C49.67 32 64 46.33 64 64V400zM128 320V236C128 228.3 130.8 220.8 135.9 214.1L215.3 124.2C228.3 109.4 251.4 109.7 263.1 124.8L303.2 171.8C312.2 182.7 328.6 183.4 338.6 173.4L359.6 152.4C372.7 139.3 394.4 140.1 406.5 154.2L472.3 231C477.3 236.8 480 244.2 480 251.8V320C480 337.7 465.7 352 448 352H159.1C142.3 352 127.1 337.7 127.1 320L128 320z" - } - }, - "free": [ - "solid" - ] - }, - "chart-bar": { - "changes": [ - "1.0.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f080", - "aliases": { - "names": [ - "bar-chart" - ], - "unicodes": { - "secondary": [ - "10f080" - ] - } - }, - "label": "Bar Chart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 32C49.67 32 64 46.33 64 64V400C64 408.8 71.16 416 80 416H480C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H80C35.82 480 0 444.2 0 400V64C0 46.33 14.33 32 32 32zM128 128C128 110.3 142.3 96 160 96H352C369.7 96 384 110.3 384 128C384 145.7 369.7 160 352 160H160C142.3 160 128 145.7 128 128zM288 192C305.7 192 320 206.3 320 224C320 241.7 305.7 256 288 256H160C142.3 256 128 241.7 128 224C128 206.3 142.3 192 160 192H288zM416 288C433.7 288 448 302.3 448 320C448 337.7 433.7 352 416 352H160C142.3 352 128 337.7 128 320C128 302.3 142.3 288 160 288H416z" - }, - "regular": { - "last_modified": 1658443572998, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M24 32C37.25 32 48 42.75 48 56V408C48 421.3 58.75 432 72 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H72C32.24 480 0 447.8 0 408V56C0 42.75 10.75 32 24 32zM128 136C128 122.7 138.7 112 152 112H360C373.3 112 384 122.7 384 136C384 149.3 373.3 160 360 160H152C138.7 160 128 149.3 128 136zM296 208C309.3 208 320 218.7 320 232C320 245.3 309.3 256 296 256H152C138.7 256 128 245.3 128 232C128 218.7 138.7 208 152 208H296zM424 304C437.3 304 448 314.7 448 328C448 341.3 437.3 352 424 352H152C138.7 352 128 341.3 128 328C128 314.7 138.7 304 152 304H424z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "chart-column": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0e3", - "label": "Chart Column", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 32C49.67 32 64 46.33 64 64V400C64 408.8 71.16 416 80 416H480C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H80C35.82 480 0 444.2 0 400V64C0 46.33 14.33 32 32 32zM160 224C177.7 224 192 238.3 192 256V320C192 337.7 177.7 352 160 352C142.3 352 128 337.7 128 320V256C128 238.3 142.3 224 160 224zM288 320C288 337.7 273.7 352 256 352C238.3 352 224 337.7 224 320V160C224 142.3 238.3 128 256 128C273.7 128 288 142.3 288 160V320zM352 192C369.7 192 384 206.3 384 224V320C384 337.7 369.7 352 352 352C334.3 352 320 337.7 320 320V224C320 206.3 334.3 192 352 192zM480 320C480 337.7 465.7 352 448 352C430.3 352 416 337.7 416 320V96C416 78.33 430.3 64 448 64C465.7 64 480 78.33 480 96V320z" - } - }, - "free": [ - "solid" - ] - }, - "chart-gantt": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e0e4", - "label": "Chart Gantt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 32C49.67 32 64 46.33 64 64V400C64 408.8 71.16 416 80 416H480C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H80C35.82 480 0 444.2 0 400V64C0 46.33 14.33 32 32 32zM128 128C128 110.3 142.3 96 160 96H256C273.7 96 288 110.3 288 128C288 145.7 273.7 160 256 160H160C142.3 160 128 145.7 128 128zM352 192C369.7 192 384 206.3 384 224C384 241.7 369.7 256 352 256H224C206.3 256 192 241.7 192 224C192 206.3 206.3 192 224 192H352zM448 288C465.7 288 480 302.3 480 320C480 337.7 465.7 352 448 352H384C366.3 352 352 337.7 352 320C352 302.3 366.3 288 384 288H448z" - } - }, - "free": [ - "solid" - ] - }, - "chart-line": { - "changes": [ - "4.2.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f201", - "aliases": { - "names": [ - "line-chart" - ], - "unicodes": { - "secondary": [ - "10f201" - ] - } - }, - "label": "Line Chart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 400C64 408.8 71.16 416 80 416H480C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H80C35.82 480 0 444.2 0 400V64C0 46.33 14.33 32 32 32C49.67 32 64 46.33 64 64V400zM342.6 278.6C330.1 291.1 309.9 291.1 297.4 278.6L240 221.3L150.6 310.6C138.1 323.1 117.9 323.1 105.4 310.6C92.88 298.1 92.88 277.9 105.4 265.4L217.4 153.4C229.9 140.9 250.1 140.9 262.6 153.4L320 210.7L425.4 105.4C437.9 92.88 458.1 92.88 470.6 105.4C483.1 117.9 483.1 138.1 470.6 150.6L342.6 278.6z" - } - }, - "free": [ - "solid" - ] - }, - "chart-pie": { - "changes": [ - "4.2.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f200", - "aliases": { - "names": [ - "pie-chart" - ], - "unicodes": { - "secondary": [ - "10f200" - ] - } - }, - "label": "Pie Chart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573196, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M304 16.58C304 7.555 310.1 0 320 0C443.7 0 544 100.3 544 224C544 233 536.4 240 527.4 240H304V16.58zM32 272C32 150.7 122.1 50.34 238.1 34.25C248.2 32.99 256 40.36 256 49.61V288L412.5 444.5C419.2 451.2 418.7 462.2 411 467.7C371.8 495.6 323.8 512 272 512C139.5 512 32 404.6 32 272zM558.4 288C567.6 288 575 295.8 573.8 305C566.1 360.9 539.1 410.6 499.9 447.3C493.9 452.1 484.5 452.5 478.7 446.7L320 288H558.4z" - } - }, - "free": [ - "solid" - ] - }, - "chart-simple": { - "changes": [ - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e473", - "label": "Chart Simple", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573197, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 80C160 53.49 181.5 32 208 32H240C266.5 32 288 53.49 288 80V432C288 458.5 266.5 480 240 480H208C181.5 480 160 458.5 160 432V80zM0 272C0 245.5 21.49 224 48 224H80C106.5 224 128 245.5 128 272V432C128 458.5 106.5 480 80 480H48C21.49 480 0 458.5 0 432V272zM400 96C426.5 96 448 117.5 448 144V432C448 458.5 426.5 480 400 480H368C341.5 480 320 458.5 320 432V144C320 117.5 341.5 96 368 96H400z" - } - }, - "free": [ - "solid" - ] - }, - "check": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f00c", - "aliases": { - "unicodes": { - "composite": [ - "2714", - "2713" - ], - "secondary": [ - "10f00c" - ] - } - }, - "label": "Check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573197, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M438.6 105.4C451.1 117.9 451.1 138.1 438.6 150.6L182.6 406.6C170.1 419.1 149.9 419.1 137.4 406.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4C21.87 220.9 42.13 220.9 54.63 233.4L159.1 338.7L393.4 105.4C405.9 92.88 426.1 92.88 438.6 105.4H438.6z" - } - }, - "free": [ - "solid" - ] - }, - "check-double": { - "changes": [ - "5.1.0", - "5.8.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f560", - "aliases": { - "unicodes": { - "secondary": [ - "10f560" - ] - } - }, - "label": "Double Check", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573197, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M182.6 246.6C170.1 259.1 149.9 259.1 137.4 246.6L57.37 166.6C44.88 154.1 44.88 133.9 57.37 121.4C69.87 108.9 90.13 108.9 102.6 121.4L159.1 178.7L297.4 41.37C309.9 28.88 330.1 28.88 342.6 41.37C355.1 53.87 355.1 74.13 342.6 86.63L182.6 246.6zM182.6 470.6C170.1 483.1 149.9 483.1 137.4 470.6L9.372 342.6C-3.124 330.1-3.124 309.9 9.372 297.4C21.87 284.9 42.13 284.9 54.63 297.4L159.1 402.7L393.4 169.4C405.9 156.9 426.1 156.9 438.6 169.4C451.1 181.9 451.1 202.1 438.6 214.6L182.6 470.6z" - } - }, - "free": [ - "solid" - ] - }, - "check-to-slot": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f772", - "aliases": { - "names": [ - "vote-yea" - ], - "unicodes": { - "secondary": [ - "10f772" - ] - } - }, - "label": "Check to Slot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573197, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M480 80C480 53.49 458.5 32 432 32h-288C117.5 32 96 53.49 96 80V384h384V80zM378.9 166.8l-88 112c-4.031 5.156-10 8.438-16.53 9.062C273.6 287.1 272.7 287.1 271.1 287.1c-5.719 0-11.21-2.019-15.58-5.769l-56-48C190.3 225.6 189.2 210.4 197.8 200.4c8.656-10.06 23.81-11.19 33.84-2.594l36.97 31.69l72.53-92.28c8.188-10.41 23.31-12.22 33.69-4.062C385.3 141.3 387.1 156.4 378.9 166.8zM528 288H512v112c0 8.836-7.164 16-16 16h-416C71.16 416 64 408.8 64 400V288H48C21.49 288 0 309.5 0 336v96C0 458.5 21.49 480 48 480h480c26.51 0 48-21.49 48-48v-96C576 309.5 554.5 288 528 288z" - } - }, - "free": [ - "solid" - ] - }, - "cheese": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ef", - "aliases": { - "unicodes": { - "secondary": [ - "10f7ef" - ] - } - }, - "label": "Cheese", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573197, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 288v159.1C0 465.6 14.38 480 32 480h448c17.62 0 32-14.38 32-31.1V288H0zM299.9 32.01c-7.75-.25-15.25 2.25-21.12 6.1L0 255.1l512-.0118C512 136.1 417.1 38.26 299.9 32.01z" - } - }, - "free": [ - "solid" - ] - }, - "chess": { - "changes": [ - "5.0.5", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f439", - "aliases": { - "unicodes": { - "secondary": [ - "10f439" - ] - } - }, - "label": "Chess", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M74.01 208h-10c-8.875 0-16 7.125-16 16v16c0 8.875 7.122 16 15.1 16h16c-.25 43.13-5.5 86.13-16 128h128c-10.5-41.88-15.75-84.88-16-128h15.1c8.875 0 16-7.125 16-16L208 224c0-8.875-7.122-16-15.1-16h-10l33.88-90.38C216.6 115.8 216.9 113.1 216.9 112.1C216.9 103.1 209.5 96 200.9 96H144V64h16c8.844 0 16-7.156 16-16S168.9 32 160 32h-16l.0033-16c0-8.844-7.16-16-16-16s-16 7.156-16 16V32H96.01c-8.844 0-16 7.156-16 16S87.16 64 96.01 64h16v32H55.13C46.63 96 39.07 102.8 39.07 111.9c0 1.93 .3516 3.865 1.061 5.711L74.01 208zM339.9 301.8L336.6 384h126.8l-3.25-82.25l24.5-20.75C491.9 274.9 496 266 496 256.5V198C496 194.6 493.4 192 489.1 192h-26.37c-3.375 0-6 2.625-6 6V224h-24.75V198C432.9 194.6 430.3 192 426.9 192h-53.75c-3.375 0-6 2.625-6 6V224h-24.75V198C342.4 194.6 339.8 192 336.4 192h-26.38C306.6 192 304 194.6 304 198v58.62c0 9.375 4.125 18.25 11.38 24.38L339.9 301.8zM384 304C384 295.1 391.1 288 400 288S416 295.1 416 304v32h-32V304zM247.1 459.6L224 448v-16C224 423.1 216.9 416 208 416h-160C39.13 416 32 423.1 32 432V448l-23.12 11.62C3.375 462.3 0 467.9 0 473.9V496C0 504.9 7.125 512 16 512h224c8.875 0 16-7.125 16-16v-22.12C256 467.9 252.6 462.3 247.1 459.6zM503.1 459.6L480 448v-16c0-8.875-7.125-16-16-16h-128c-8.875 0-16 7.125-16 16V448l-23.12 11.62C291.4 462.3 288 467.9 288 473.9V496c0 8.875 7.125 16 16 16h192c8.875 0 16-7.125 16-16v-22.12C512 467.9 508.6 462.3 503.1 459.6z" - } - }, - "free": [ - "solid" - ] - }, - "chess-bishop": { - "changes": [ - "5.0.5", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f43a", - "aliases": { - "unicodes": { - "composite": [ - "265d" - ], - "secondary": [ - "10f43a" - ] - } - }, - "label": "Chess Bishop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M272 448h-224C21.49 448 0 469.5 0 496C0 504.8 7.164 512 16 512h288c8.836 0 16-7.164 16-16C320 469.5 298.5 448 272 448zM8 287.9c0 51.63 22.12 73.88 56 84.63V416h192v-43.5c33.88-10.75 56-33 56-84.63c0-30.62-10.75-67.13-26.75-102.5L185 285.6c-1.565 1.565-3.608 2.349-5.651 2.349c-2.036 0-4.071-.7787-5.63-2.339l-11.35-11.27c-1.56-1.56-2.339-3.616-2.339-5.672c0-2.063 .7839-4.128 2.349-5.693l107.9-107.9C249.5 117.3 223.8 83 199.4 62.5C213.4 59.13 224 47 224 32c0-17.62-14.38-32-32-32H128C110.4 0 96 14.38 96 32c0 15 10.62 27.12 24.62 30.5C67.75 106.8 8 214.5 8 287.9z" - }, - "regular": { - "last_modified": 1658443573000, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M296 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512h272C309.3 512 320 501.3 320 488S309.3 464 296 464zM0 304c0 51.63 30.12 85.25 64 96v32h48v-67.13l-33.5-10.63C63.75 349.5 48 333.9 48 304c0-84.1 93.2-206.5 112.6-206.5c19.63 0 60.01 67.18 70.28 85.8l-66.13 66.13c-3.125 3.125-4.688 7.219-4.688 11.31S161.6 268.9 164.8 272L176 283.2c3.125 3.125 7.219 4.688 11.31 4.688s8.188-1.562 11.31-4.688L253 229C264.4 256.8 272 283.5 272 304c0 29.88-15.75 45.5-30.5 50.25L208 364.9V432H256v-32c33.88-10.75 64-44.38 64-96c0-73.38-67.75-197.2-120.6-241.5C213.4 59.12 224 47 224 32c0-17.62-14.38-32-32-32H128C110.4 0 96 14.38 96 32c0 15 10.62 27.12 24.62 30.5C67.75 106.8 0 230.6 0 304z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "chess-board": { - "changes": [ - "5.0.5", - "5.7.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f43c", - "aliases": { - "unicodes": { - "secondary": [ - "10f43c" - ] - } - }, - "label": "Chess Board", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M192 224H128v64h64V224zM384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96C448 60.65 419.3 32 384 32zM384 160h-64v64h64v64h-64v64h64v64h-64v-64h-64v64H192v-64H128v64H64v-64h64V288H64V224h64V160H64V96h64v64h64V96h64v64h64V96h64V160zM192 288v64h64V288H192zM256 224V160H192v64H256zM256 288h64V224h-64V288z" - } - }, - "free": [ - "solid" - ] - }, - "chess-king": { - "changes": [ - "5.0.5", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f43f", - "aliases": { - "unicodes": { - "composite": [ - "265a" - ], - "secondary": [ - "10f43f" - ] - } - }, - "label": "Chess King", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M367.1 448H79.97c-26.51 0-48.01 21.49-48.01 47.1C31.96 504.8 39.13 512 47.96 512h352c8.838 0 16-7.163 16-16C416 469.5 394.5 448 367.1 448zM416.1 160h-160V112h16.01c17.6 0 31.98-14.4 31.98-32C303.1 62.4 289.6 48 272 48h-16.01V32C256 14.4 241.6 0 223.1 0C206.4 0 191.1 14.4 191.1 32.01V48H175.1c-17.6 0-32.01 14.4-32.01 32C143.1 97.6 158.4 112 175.1 112h16.01V160h-160C17.34 160 0 171.5 0 192C0 195.2 .4735 198.4 1.437 201.5L74.46 416h299.1l73.02-214.5C447.5 198.4 448 195.2 448 192C448 171.6 430.1 160 416.1 160z" - }, - "regular": { - "last_modified": 1658443573000, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M391.9 464H55.95c-13.25 0-23.1 10.75-23.1 23.1S42.7 512 55.95 512h335.1c13.25 0 23.1-10.75 23.1-23.1S405.2 464 391.9 464zM448 216c0-11.82-3.783-23.51-11.08-33.17c-10.3-14.39-27-22.88-44.73-22.88L247.9 160V104h31.1c13.2 0 24.06-10.8 24.06-24S293.1 56 279.9 56h-31.1V23.1C247.9 10.8 237.2 0 223.1 0S199.9 10.8 199.9 23.1V56H167.9c-13.2 0-23.97 10.8-23.97 24S154.7 104 167.9 104h31.1V160H55.95C24.72 160 0 185.3 0 215.9C0 221.6 .8893 227.4 2.704 233L68.45 432h50.5L48.33 218.4C48.09 217.6 47.98 216.9 47.98 216.1C47.98 212.3 50.93 208 55.95 208h335.9c6.076 0 8.115 5.494 8.115 8.113c0 .6341-.078 1.269-.2405 1.887L328.8 432h50.62l65.1-199.2C447.2 227.3 448 221.7 448 216z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "chess-knight": { - "changes": [ - "5.0.5", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f441", - "aliases": { - "unicodes": { - "composite": [ - "265e" - ], - "secondary": [ - "10f441" - ] - } - }, - "label": "Chess Knight", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M19 272.5l40.62 18C63.78 292.3 68.25 293.3 72.72 293.3c4 0 8.001-.7543 11.78-2.289l12.75-5.125c9.125-3.625 16-11.12 18.75-20.5L125.2 234.8C127 227.9 131.5 222.2 137.9 219.1L160 208v50.38C160 276.5 149.6 293.1 133.4 301.2L76.25 329.9C49.12 343.5 32 371.1 32 401.5V416h319.9l-.0417-192c0-105.1-85.83-192-191.8-192H12C5.375 32 0 37.38 0 44c0 2.625 .625 5.25 1.75 7.625L16 80L7 89C2.5 93.5 0 99.62 0 106V243.2C0 255.9 7.5 267.4 19 272.5zM52 128C63 128 72 137 72 148S63 168 52 168S32 159 32 148S41 128 52 128zM336 448H47.1C21.49 448 0 469.5 0 495.1C0 504.8 7.163 512 16 512h352c8.837 0 16-7.163 16-16C384 469.5 362.5 448 336 448z" - }, - "regular": { - "last_modified": 1658443573000, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M44 320.6l14.5 6.5c-17.01 20.24-26.44 45.91-26.44 72.35C32.06 399.7 32.12 432 32.12 432h48v-32c0-24.75 14-47.5 36.13-58.63l38.13-23.37c13.25-6.625 21.75-20.25 21.75-35.13v-58.75l-15.37 9C155.6 235.8 151.9 240.4 150.5 245.9L143 271c-2.25 7.625-8 13.88-15.38 16.75L117.1 292C114 293.3 110.7 293.9 107.4 293.9c-3.626 0-7.263-.7514-10.66-2.254L63.5 276.9C54.12 272.6 48 263.2 48 252.9V140.5c0-5.125 2.125-10.12 5.75-13.88l7.375-7.375L49.5 96C48.5 94.12 48 92 48 89.88C48 84.38 52.38 80 57.88 80h105c86.75 0 156.1 70.38 156.1 157.1V432h48.06l-.0625-194.9C367.9 124 276 32 162.9 32H57.88C25.88 32 0 57.88 0 89.88c0 8.5 1.75 16.88 5.125 24.62C1.75 122.8 0 131.6 0 140.5v112.4C0 282.2 17.25 308.8 44 320.6zM80.12 164c0 11 8.875 20 20 20c11 0 20-9 20-20s-9-20-20-20C89 144 80.12 153 80.12 164zM360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "chess-pawn": { - "changes": [ - "5.0.5", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f443", - "aliases": { - "unicodes": { - "composite": [ - "265f" - ], - "secondary": [ - "10f443" - ] - } - }, - "label": "Chess Pawn", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M105.1 224H80C71.12 224 64 231.1 64 240v32c0 8.875 7.125 15.1 16 15.1L96 288v5.5C96 337.5 91.88 380.1 72 416h176C228.1 380.1 224 337.5 224 293.5V288l16-.0001c8.875 0 16-7.125 16-15.1v-32C256 231.1 248.9 224 240 224h-25.12C244.3 205.6 264 173.2 264 136C264 78.5 217.5 32 159.1 32S56 78.5 56 136C56 173.2 75.74 205.6 105.1 224zM272 448H47.1C21.49 448 0 469.5 0 495.1C0 504.8 7.163 512 16 512h288c8.837 0 16-7.163 16-16C320 469.5 298.5 448 272 448z" - }, - "regular": { - "last_modified": 1658443573001, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M296 463.1H23.1c-13.25 0-23.1 10.75-23.1 24s10.75 24 23.1 24h272c13.25 0 23.1-10.75 23.1-23.1S309.3 463.1 296 463.1zM55.1 287.1L80 287.1v29.5c0 40.25-3.5 81.25-23.38 114.5h53.5C125.1 394.1 128 354.6 128 317.5v-29.5h64v29.5c0 37.13 2.875 77.5 17.88 114.5h53.5C243.5 398.7 240 357.7 240 317.5V287.1l24-.0001C277.3 287.1 288 277.3 288 263.1c0-13.25-10.75-24-23.1-24H241c23.75-21.88 38.1-53.12 38.1-87.1c0-9.393-1.106-19.05-3.451-28.86C272.3 105.4 244.9 32 159.1 32C93.75 32 40 85.75 40 151.1c0 34.88 15.12 66.12 39 88H55.1C42.75 239.1 32 250.7 32 263.1C32 277.3 42.75 287.1 55.1 287.1zM160 79.1c39.75 0 72 32.25 72 72S199.8 223.1 160 223.1S88 191.7 88 151.1S120.2 79.1 160 79.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "chess-queen": { - "changes": [ - "5.0.5", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f445", - "aliases": { - "unicodes": { - "composite": [ - "265b" - ], - "secondary": [ - "10f445" - ] - } - }, - "label": "Chess Queen", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 112c30.88 0 56-25.12 56-56S286.9 0 256 0S199.1 25.12 199.1 56S225.1 112 256 112zM399.1 448H111.1c-26.51 0-48 21.49-48 47.1C63.98 504.8 71.15 512 79.98 512h352c8.837 0 16-7.163 16-16C447.1 469.5 426.5 448 399.1 448zM511.1 197.4c0-5.178-2.509-10.2-7.096-13.26L476.4 168.2c-2.684-1.789-5.602-2.62-8.497-2.62c-17.22 0-17.39 26.37-51.92 26.37c-29.35 0-47.97-25.38-47.97-50.63C367.1 134 361.1 128 354.6 128h-38.75c-6 0-11.63 4-12.88 9.875C298.2 160.1 278.7 176 255.1 176c-22.75 0-42.25-15.88-47-38.12C207.7 132 202.2 128 196.1 128h-38.75C149.1 128 143.1 134 143.1 141.4c0 18.45-13.73 50.62-47.95 50.62c-34.58 0-34.87-26.39-51.87-26.39c-2.909 0-5.805 .8334-8.432 2.645l-28.63 16C2.509 187.2 0 192.3 0 197.4C0 199.9 .5585 202.3 1.72 204.6L104.2 416h303.5l102.5-211.4C511.4 202.3 511.1 199.8 511.1 197.4z" - }, - "regular": { - "last_modified": 1658443573001, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 112c30.88 0 56-25.12 56-56S286.9 0 256 0S199.1 25.12 199.1 56S225.1 112 256 112zM511.1 197.4c0-5.178-2.509-10.2-7.096-13.26L476.4 168.2c-2.5-1.75-5.497-2.62-8.497-2.62c-5.501 .125-10.63 2.87-13.75 7.245c-9.001 12-23.16 19.13-38.16 19.13c-3.125 0-6.089-.2528-9.089-.8778c-23.13-4.25-38.88-26.25-38.88-49.75C367.1 134 361.1 128 354.6 128h-38.75c-6.001 0-11.63 4-12.88 9.875C298.2 160.1 278.7 176 255.1 176c-22.75 0-42.25-15.88-47-38.12C207.7 132 202.2 128 196.1 128h-38.75C149.1 128 143.1 134 143.1 141.4c0 18.49-13.66 50.62-47.95 50.62c-15.13 0-29.3-7.118-38.3-19.24C54.6 168.4 49.66 165.7 44.15 165.6c-3 0-5.931 .8951-8.432 2.645l-28.63 16C2.509 187.2 0 192.3 0 197.4c0 2.438 .5583 4.901 1.72 7.185L109.9 432h53.13L69.85 236.4C78.35 238.8 87.11 240 95.98 240c2.432 0 56.83 1.503 84.76-52.5C198.1 210.5 226.6 224 255.9 224c29.38 0 57.01-13.38 75.26-36.25C336.1 197.6 360.6 240 416 240c8.751 0 17.5-1.125 26-3.5L349 432h53.13l108.1-227.4C511.4 202.3 511.1 199.8 511.1 197.4zM424 464H87.98c-13.26 0-24 10.75-24 23.1S74.72 512 87.98 512h336c13.26 0 24-10.75 24-23.1S437.3 464 424 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "chess-rook": { - "changes": [ - "5.0.5", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f447", - "aliases": { - "unicodes": { - "composite": [ - "265c" - ], - "secondary": [ - "10f447" - ] - } - }, - "label": "Chess Rook", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573198, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M368 32h-56c-8.875 0-16 7.125-16 16V96h-48V48c0-8.875-7.125-16-16-16h-80c-8.875 0-16 7.125-16 16V96H88.12V48c0-8.875-7.25-16-16-16H16C7.125 32 0 39.12 0 48V224l64 32c0 48.38-1.5 95-13.25 160h282.5C321.5 351 320 303.8 320 256l64-32V48C384 39.12 376.9 32 368 32zM224 320H160V256c0-17.62 14.38-32 32-32s32 14.38 32 32V320zM336 448H47.1C21.49 448 0 469.5 0 495.1C0 504.8 7.163 512 16 512h352c8.837 0 16-7.163 16-16C384 469.5 362.5 448 336 448z" - }, - "regular": { - "last_modified": 1658443573001, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M360 464H23.1C10.75 464 0 474.7 0 487.1S10.75 512 23.1 512H360C373.3 512 384 501.3 384 488S373.3 464 360 464zM345.1 32h-308C17 32 0 49 0 70v139.4C0 218.8 4 227.5 11 233.6L48 265.8c0 8.885 .0504 17.64 .0504 26.46c0 39.32-1.001 79.96-11.93 139.8h49C94.95 374.3 96.11 333.3 96.11 285.5C96.11 270.7 96 255.1 96 238.2L48 196.5V80h64V128H160V80h64V128h48V80h64v116.5L288 238.2c0 16.77-.1124 32.25-.1124 47.1c0 47.79 1.164 89.15 10.99 146.7h49c-10.92-59.83-11.93-100.6-11.93-139.9C335.9 283.3 336 274.6 336 265.8l37-32.13C380 227.5 384 218.8 384 209.4V70C384 49 367 32 345.1 32zM192 224C174.4 224 160 238.4 160 256v64h64V256C224 238.4 209.6 224 192 224z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "chevron-down": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f078", - "aliases": { - "unicodes": { - "secondary": [ - "10f078" - ] - } - }, - "label": "chevron-down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573199, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 416c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 338.8l169.4-169.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-192 192C240.4 412.9 232.2 416 224 416z" - } - }, - "free": [ - "solid" - ] - }, - "chevron-left": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f053", - "aliases": { - "unicodes": { - "composite": [ - "2329" - ], - "secondary": [ - "10f053" - ] - } - }, - "label": "chevron-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573199, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M224 480c-8.188 0-16.38-3.125-22.62-9.375l-192-192c-12.5-12.5-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L77.25 256l169.4 169.4c12.5 12.5 12.5 32.75 0 45.25C240.4 476.9 232.2 480 224 480z" - } - }, - "free": [ - "solid" - ] - }, - "chevron-right": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f054", - "aliases": { - "unicodes": { - "composite": [ - "232a" - ], - "secondary": [ - "10f054" - ] - } - }, - "label": "chevron-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573199, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M96 480c-8.188 0-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L242.8 256L73.38 86.63c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25l-192 192C112.4 476.9 104.2 480 96 480z" - } - }, - "free": [ - "solid" - ] - }, - "chevron-up": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f077", - "aliases": { - "unicodes": { - "secondary": [ - "10f077" - ] - } - }, - "label": "chevron-up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573199, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 352c-8.188 0-16.38-3.125-22.62-9.375L224 173.3l-169.4 169.4c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l192-192c12.5-12.5 32.75-12.5 45.25 0l192 192c12.5 12.5 12.5 32.75 0 45.25C432.4 348.9 424.2 352 416 352z" - } - }, - "free": [ - "solid" - ] - }, - "child": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.1.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1ae", - "aliases": { - "unicodes": { - "secondary": [ - "10f1ae" - ] - } - }, - "label": "Child", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573200, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M224 64C224 99.35 195.3 128 160 128C124.7 128 96 99.35 96 64C96 28.65 124.7 0 160 0C195.3 0 224 28.65 224 64zM144 384V480C144 497.7 129.7 512 112 512C94.33 512 80.01 497.7 80.01 480V287.8L59.09 321C49.67 336 29.92 340.5 14.96 331.1C.0016 321.7-4.491 301.9 4.924 286.1L44.79 223.6C69.72 184 113.2 160 160 160C206.8 160 250.3 184 275.2 223.6L315.1 286.1C324.5 301.9 320 321.7 305.1 331.1C290.1 340.5 270.3 336 260.9 321L240 287.8V480C240 497.7 225.7 512 208 512C190.3 512 176 497.7 176 480V384L144 384z" - } - }, - "free": [ - "solid" - ] - }, - "child-dress": { - "changes": [ - "6.1.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e59c", - "label": "Child Dress", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573199, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M223.1 64C223.1 99.35 195.3 128 159.1 128C124.7 128 95.1 99.35 95.1 64C95.1 28.65 124.7 0 159.1 0C195.3 0 223.1 28.65 223.1 64zM70.2 400C59.28 400 51.57 389.3 55.02 378.9L86.16 285.5L57.5 323.3C46.82 337.4 26.75 340.2 12.67 329.5C-1.415 318.8-4.175 298.7 6.503 284.7L65.4 206.1C87.84 177.4 122.9 160 160 160C197.2 160 232.2 177.4 254.6 206.1L313.5 284.7C324.2 298.7 321.4 318.8 307.3 329.5C293.3 340.2 273.2 337.4 262.5 323.3L233.9 285.6L264.1 378.9C268.4 389.3 260.7 400 249.8 400H232V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V400H152V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V400H70.2z" - } - }, - "free": [ - "solid" - ] - }, - "child-reaching": { - "changes": [ - "6.1.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e59d", - "label": "Child Reaching", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573200, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 64C256 99.35 227.3 128 192 128C156.7 128 128 99.35 128 64C128 28.65 156.7 0 192 0C227.3 0 256 28.65 256 64zM155.7 170.2C167.3 173.1 179.6 176 192.2 176C232.1 176 269.3 155.8 291 122.4L309.2 94.54C318.8 79.73 338.6 75.54 353.5 85.18C368.3 94.82 372.5 114.6 362.8 129.5L344.7 157.3C326.4 185.4 301.2 207.3 272 221.6V480C272 497.7 257.7 512 240 512C222.3 512 208 497.7 208 480V384H176V480C176 497.7 161.7 512 144 512C126.3 512 112 497.7 112 480V221.4C83.63 207.4 58.94 186.1 40.87 158.1L21.37 129.8C11.57 115 15.54 95.18 30.25 85.37C44.95 75.57 64.82 79.54 74.62 94.25L94.12 123.5C108.5 145 129.2 160.9 152.9 169.3C153.9 169.5 154.8 169.8 155.7 170.2V170.2z" - } - }, - "free": [ - "solid" - ] - }, - "child-rifle": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e0", - "label": "Child Rifle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573200, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M79.1 64C79.1 28.65 108.7 .0003 143.1 .0003C179.3 .0003 207.1 28.65 207.1 64C207.1 99.35 179.3 128 143.1 128C108.7 128 79.1 99.35 79.1 64V64zM104 512C86.33 512 72 497.7 72 480V300.5L59.09 321C49.67 336 29.91 340.5 14.96 331.1C.0006 321.7-4.492 301.9 4.923 286.1L56.6 204.9C74.17 176.9 104.9 160 137.8 160H150.2C183.2 160 213.8 176.9 231.4 204.9L283.1 286.1C292.5 301.9 288 321.7 273 331.1C258.1 340.5 238.3 336 228.9 321L216 300.5V480C216 497.7 201.7 512 184 512C166.3 512 152 497.7 152 480V352H136V480C136 497.7 121.7 512 104 512V512zM432 16V132.3C441.6 137.8 448 148.2 448 160V269.3L464 264V208C464 199.2 471.2 192 480 192H496C504.8 192 512 199.2 512 208V292.5C512 299.4 507.6 305.5 501.1 307.6L448 325.3V352H496C504.8 352 512 359.2 512 368V384C512 392.8 504.8 400 496 400H452L475 492.1C477.6 502.2 469.9 512 459.5 512H400C391.2 512 384 504.8 384 496V400H368C350.3 400 336 385.7 336 368V224C336 206.3 350.3 192 368 192V160C368 148.2 374.4 137.8 384 132.3V32C375.2 32 368 24.84 368 16C368 7.164 375.2 0 384 0H416C424.8 0 432 7.164 432 16V16z" - } - }, - "free": [ - "solid" - ] - }, - "children": { - "changes": [ - "6.1.0", - "6.1.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e1", - "label": "Children", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573200, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M95.1 64C95.1 28.65 124.7 0 159.1 0C195.3 0 223.1 28.65 223.1 64C223.1 99.35 195.3 128 159.1 128C124.7 128 95.1 99.35 95.1 64zM88 480V400H70.2C59.28 400 51.57 389.3 55.02 378.9L86.16 285.5L57.5 323.3C46.82 337.4 26.75 340.2 12.67 329.5C-1.415 318.8-4.175 298.7 6.503 284.7L65.4 206.1C87.84 177.4 122.9 160 160 160C197.2 160 232.2 177.4 254.6 206.1L313.5 284.7C324.2 298.7 321.4 318.8 307.3 329.5C293.3 340.2 273.2 337.4 262.5 323.3L233.9 285.6L264.1 378.9C268.4 389.3 260.7 400 249.8 400H232V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V400H152V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480H88zM416 64C416 28.65 444.7 0 480 0C515.3 0 544 28.65 544 64C544 99.35 515.3 128 480 128C444.7 128 416 99.35 416 64V64zM472 384V480C472 497.7 457.7 512 440 512C422.3 512 408 497.7 408 480V300.5L395.1 321C385.7 336 365.9 340.5 350.1 331.1C336 321.7 331.5 301.9 340.9 286.1L392.6 204.9C410.2 176.9 440.9 159.1 473.8 159.1H486.2C519.2 159.1 549.8 176.9 567.4 204.9L619.1 286.1C628.5 301.9 624 321.7 609 331.1C594.1 340.5 574.3 336 564.9 321L552 300.5V480C552 497.7 537.7 512 520 512C502.3 512 488 497.7 488 480V384L472 384z" - } - }, - "free": [ - "solid" - ] - }, - "chrome": { - "changes": [ - "4.4.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f268", - "label": "Chrome", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 209.4 12.47 165.6 34.27 127.1L144.1 318.3C166 357.5 207.9 384 256 384C270.3 384 283.1 381.7 296.8 377.4L220.5 509.6C95.9 492.3 0 385.3 0 256zM365.1 321.6C377.4 302.4 384 279.1 384 256C384 217.8 367.2 183.5 340.7 160H493.4C505.4 189.6 512 222.1 512 256C512 397.4 397.4 511.1 256 512L365.1 321.6zM477.8 128H256C193.1 128 142.3 172.1 130.5 230.7L54.19 98.47C101 38.53 174 0 256 0C350.8 0 433.5 51.48 477.8 128V128zM168 256C168 207.4 207.4 168 256 168C304.6 168 344 207.4 344 256C344 304.6 304.6 344 256 344C207.4 344 168 304.6 168 256z" - } - }, - "free": [ - "brands" - ] - }, - "chromecast": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f838", - "label": "Chromecast", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M447.8 64H64c-23.6 0-42.7 19.1-42.7 42.7v63.9H64v-63.9h383.8v298.6H298.6V448H448c23.6 0 42.7-19.1 42.7-42.7V106.7C490.7 83.1 471.4 64 447.8 64zM21.3 383.6L21.3 383.6l0 63.9h63.9C85.2 412.2 56.6 383.6 21.3 383.6L21.3 383.6zM21.3 298.6V341c58.9 0 106.6 48.1 106.6 107h42.7C170.7 365.6 103.7 298.7 21.3 298.6zM213.4 448h42.7c-.5-129.5-105.3-234.3-234.8-234.6l0 42.4C127.3 255.6 213.3 342 213.4 448z" - } - }, - "free": [ - "brands" - ] - }, - "church": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f51d", - "aliases": { - "unicodes": { - "composite": [ - "26ea" - ], - "secondary": [ - "10f51d" - ] - } - }, - "label": "Church", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573200, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M344 48H376C389.3 48 400 58.75 400 72C400 85.25 389.3 96 376 96H344V142.4L456.7 210C471.2 218.7 480 234.3 480 251.2V512H384V416C384 380.7 355.3 352 320 352C284.7 352 256 380.7 256 416V512H160V251.2C160 234.3 168.8 218.7 183.3 210L296 142.4V96H264C250.7 96 240 85.25 240 72C240 58.75 250.7 48 264 48H296V24C296 10.75 306.7 0 320 0C333.3 0 344 10.75 344 24V48zM24.87 330.3L128 273.6V512H48C21.49 512 0 490.5 0 464V372.4C0 354.9 9.53 338.8 24.87 330.3V330.3zM592 512H512V273.6L615.1 330.3C630.5 338.8 640 354.9 640 372.4V464C640 490.5 618.5 512 592 512V512z" - } - }, - "free": [ - "solid" - ] - }, - "circle": { - "changes": [ - "3.0.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f111", - "aliases": { - "unicodes": { - "composite": [ - "1f534", - "1f535", - "1f7e0", - "1f7e1", - "1f7e2", - "1f7e3", - "1f7e4", - "26aa", - "26ab", - "2b24", - "f10c", - "f1db", - "25cf" - ], - "secondary": [ - "10f111" - ] - } - }, - "label": "Circle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573209, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256z" - }, - "regular": { - "last_modified": 1658443573011, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-arrow-down": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ab", - "aliases": { - "names": [ - "arrow-circle-down" - ], - "unicodes": { - "secondary": [ - "10f0ab" - ] - } - }, - "label": "Circle arrow down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573201, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM382.6 302.6l-103.1 103.1C270.7 414.6 260.9 416 256 416c-4.881 0-14.65-1.391-22.65-9.398L129.4 302.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L224 306.8V128c0-17.69 14.33-32 32-32s32 14.31 32 32v178.8l49.38-49.38c12.5-12.5 32.75-12.5 45.25 0S395.1 290.1 382.6 302.6z" - } - }, - "free": [ - "solid" - ] - }, - "circle-arrow-left": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0a8", - "aliases": { - "names": [ - "arrow-circle-left" - ], - "unicodes": { - "secondary": [ - "10f0a8" - ] - } - }, - "label": "Circle arrow left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573201, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM384 288H205.3l49.38 49.38c12.5 12.5 12.5 32.75 0 45.25s-32.75 12.5-45.25 0L105.4 278.6C97.4 270.7 96 260.9 96 256c0-4.883 1.391-14.66 9.398-22.65l103.1-103.1c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L205.3 224H384c17.69 0 32 14.33 32 32S401.7 288 384 288z" - } - }, - "free": [ - "solid" - ] - }, - "circle-arrow-right": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0a9", - "aliases": { - "names": [ - "arrow-circle-right" - ], - "unicodes": { - "secondary": [ - "10f0a9" - ] - } - }, - "label": "Circle arrow right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573201, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM406.6 278.6l-103.1 103.1c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L306.8 288H128C110.3 288 96 273.7 96 256s14.31-32 32-32h178.8l-49.38-49.38c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l103.1 103.1C414.6 241.3 416 251.1 416 256C416 260.9 414.6 270.7 406.6 278.6z" - } - }, - "free": [ - "solid" - ] - }, - "circle-arrow-up": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0aa", - "aliases": { - "names": [ - "arrow-circle-up" - ], - "unicodes": { - "secondary": [ - "10f0aa" - ] - } - }, - "label": "Circle arrow up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573202, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM382.6 254.6c-12.5 12.5-32.75 12.5-45.25 0L288 205.3V384c0 17.69-14.33 32-32 32s-32-14.31-32-32V205.3L174.6 254.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l103.1-103.1C241.3 97.4 251.1 96 256 96c4.881 0 14.65 1.391 22.65 9.398l103.1 103.1C395.1 221.9 395.1 242.1 382.6 254.6z" - } - }, - "free": [ - "solid" - ] - }, - "circle-check": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f058", - "aliases": { - "names": [ - "check-circle" - ], - "unicodes": { - "composite": [ - "f05d" - ], - "secondary": [ - "10f058" - ] - } - }, - "label": "Circle check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573202, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM371.8 211.8C382.7 200.9 382.7 183.1 371.8 172.2C360.9 161.3 343.1 161.3 332.2 172.2L224 280.4L179.8 236.2C168.9 225.3 151.1 225.3 140.2 236.2C129.3 247.1 129.3 264.9 140.2 275.8L204.2 339.8C215.1 350.7 232.9 350.7 243.8 339.8L371.8 211.8z" - }, - "regular": { - "last_modified": 1658443573006, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M243.8 339.8C232.9 350.7 215.1 350.7 204.2 339.8L140.2 275.8C129.3 264.9 129.3 247.1 140.2 236.2C151.1 225.3 168.9 225.3 179.8 236.2L224 280.4L332.2 172.2C343.1 161.3 360.9 161.3 371.8 172.2C382.7 183.1 382.7 200.9 371.8 211.8L243.8 339.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-chevron-down": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f13a", - "aliases": { - "names": [ - "chevron-circle-down" - ], - "unicodes": { - "secondary": [ - "10f13a" - ] - } - }, - "label": "Circle chevron down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573202, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM390.6 246.6l-112 112C272.4 364.9 264.2 368 256 368s-16.38-3.125-22.62-9.375l-112-112c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L256 290.8l89.38-89.38c12.5-12.5 32.75-12.5 45.25 0S403.1 234.1 390.6 246.6z" - } - }, - "free": [ - "solid" - ] - }, - "circle-chevron-left": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f137", - "aliases": { - "names": [ - "chevron-circle-left" - ], - "unicodes": { - "secondary": [ - "10f137" - ] - } - }, - "label": "Circle chevron left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573203, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM310.6 345.4c12.5 12.5 12.5 32.75 0 45.25s-32.75 12.5-45.25 0l-112-112C147.1 272.4 144 264.2 144 256s3.125-16.38 9.375-22.62l112-112c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25L221.3 256L310.6 345.4z" - } - }, - "free": [ - "solid" - ] - }, - "circle-chevron-right": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f138", - "aliases": { - "names": [ - "chevron-circle-right" - ], - "unicodes": { - "secondary": [ - "10f138" - ] - } - }, - "label": "Circle chevron right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573203, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM358.6 278.6l-112 112c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25L290.8 256L201.4 166.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0l112 112C364.9 239.6 368 247.8 368 256S364.9 272.4 358.6 278.6z" - } - }, - "free": [ - "solid" - ] - }, - "circle-chevron-up": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f139", - "aliases": { - "names": [ - "chevron-circle-up" - ], - "unicodes": { - "secondary": [ - "10f139" - ] - } - }, - "label": "Circle chevron up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573203, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM390.6 310.6c-12.5 12.5-32.75 12.5-45.25 0L256 221.3L166.6 310.6c-12.5 12.5-32.75 12.5-45.25 0s-12.5-32.75 0-45.25l112-112C239.6 147.1 247.8 144 256 144s16.38 3.125 22.62 9.375l112 112C403.1 277.9 403.1 298.1 390.6 310.6z" - } - }, - "free": [ - "solid" - ] - }, - "circle-dollar-to-slot": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4b9", - "aliases": { - "names": [ - "donate" - ], - "unicodes": { - "secondary": [ - "10f4b9" - ] - } - }, - "label": "Circle dollar to slot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573203, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M326.7 403.7C304.7 411.6 280.8 416 256 416C231.2 416 207.3 411.6 185.3 403.7C184.1 403.6 184.7 403.5 184.5 403.4C154.4 392.4 127.6 374.6 105.9 352C70.04 314.6 48 263.9 48 208C48 93.12 141.1 0 256 0C370.9 0 464 93.12 464 208C464 263.9 441.1 314.6 406.1 352C405.1 353 404.1 354.1 403.1 355.1C381.7 376.4 355.7 393.2 326.7 403.7L326.7 403.7zM235.9 111.1V118C230.3 119.2 224.1 120.9 220 123.1C205.1 129.9 192.1 142.5 188.9 160.8C187.1 171 188.1 180.9 192.3 189.8C196.5 198.6 203 204.8 209.6 209.3C221.2 217.2 236.5 221.8 248.2 225.3L250.4 225.9C264.4 230.2 273.8 233.3 279.7 237.6C282.2 239.4 283.1 240.8 283.4 241.7C283.8 242.5 284.4 244.3 283.7 248.3C283.1 251.8 281.2 254.8 275.7 257.1C269.6 259.7 259.7 261 246.9 259C240.9 258 230.2 254.4 220.7 251.2C218.5 250.4 216.3 249.7 214.3 249C203.8 245.5 192.5 251.2 189 261.7C185.5 272.2 191.2 283.5 201.7 286.1C202.9 287.4 204.4 287.9 206.1 288.5C213.1 291.2 226.4 295.4 235.9 297.6V304C235.9 315.1 244.9 324.1 255.1 324.1C267.1 324.1 276.1 315.1 276.1 304V298.5C281.4 297.5 286.6 295.1 291.4 293.9C307.2 287.2 319.8 274.2 323.1 255.2C324.9 244.8 324.1 234.8 320.1 225.7C316.2 216.7 309.9 210.1 303.2 205.3C291.1 196.4 274.9 191.6 262.8 187.9L261.1 187.7C247.8 183.4 238.2 180.4 232.1 176.2C229.5 174.4 228.7 173.2 228.5 172.7C228.3 172.3 227.7 171.1 228.3 167.7C228.7 165.7 230.2 162.4 236.5 159.6C242.1 156.7 252.9 155.1 265.1 156.1C269.5 157.7 283 160.3 286.9 161.3C297.5 164.2 308.5 157.8 311.3 147.1C314.2 136.5 307.8 125.5 297.1 122.7C292.7 121.5 282.7 119.5 276.1 118.3V112C276.1 100.9 267.1 91.9 256 91.9C244.9 91.9 235.9 100.9 235.9 112V111.1zM48 352H63.98C83.43 377.9 108 399.7 136.2 416H64V448H448V416H375.8C403.1 399.7 428.6 377.9 448 352H464C490.5 352 512 373.5 512 400V464C512 490.5 490.5 512 464 512H48C21.49 512 0 490.5 0 464V400C0 373.5 21.49 352 48 352H48z" - } - }, - "free": [ - "solid" - ] - }, - "circle-dot": { - "changes": [ - "4.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f192", - "aliases": { - "names": [ - "dot-circle" - ], - "unicodes": { - "composite": [ - "1f518" - ], - "secondary": [ - "10f192" - ] - } - }, - "label": "Circle dot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573203, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 352C309 352 352 309 352 256C352 202.1 309 160 256 160C202.1 160 160 202.1 160 256C160 309 202.1 352 256 352z" - }, - "regular": { - "last_modified": 1658443573007, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M160 256C160 202.1 202.1 160 256 160C309 160 352 202.1 352 256C352 309 309 352 256 352C202.1 352 160 309 160 256zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-down": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f358", - "aliases": { - "names": [ - "arrow-alt-circle-down" - ], - "unicodes": { - "composite": [ - "f01a" - ], - "secondary": [ - "10f358" - ] - } - }, - "label": "Circle down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573203, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 512c141.4 0 256-114.6 256-256s-114.6-256-256-256C114.6 0 0 114.6 0 256S114.6 512 256 512zM129.2 265.9C131.7 259.9 137.5 256 144 256h64V160c0-17.67 14.33-32 32-32h32c17.67 0 32 14.33 32 32v96h64c6.469 0 12.31 3.891 14.78 9.875c2.484 5.984 1.109 12.86-3.469 17.44l-112 112c-6.248 6.248-16.38 6.248-22.62 0l-112-112C128.1 278.7 126.7 271.9 129.2 265.9z" - }, - "regular": { - "last_modified": 1658443573007, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M344 240h-56L287.1 152c0-13.25-10.75-24-24-24h-16C234.7 128 223.1 138.8 223.1 152L224 240h-56c-9.531 0-18.16 5.656-22 14.38C142.2 263.1 143.9 273.3 150.4 280.3l88.75 96C243.7 381.2 250.1 384 256.8 384c7.781-.3125 13.25-2.875 17.75-7.844l87.25-96c6.406-7.031 8.031-17.19 4.188-25.88S353.5 240 344 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-exclamation": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f06a", - "aliases": { - "names": [ - "exclamation-circle" - ], - "unicodes": { - "secondary": [ - "10f06a" - ] - } - }, - "label": "Circle exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573204, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM232 152C232 138.8 242.8 128 256 128s24 10.75 24 24v128c0 13.25-10.75 24-24 24S232 293.3 232 280V152zM256 400c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 385.9 273.4 400 256 400z" - } - }, - "free": [ - "solid" - ] - }, - "circle-h": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f47e", - "aliases": { - "names": [ - "hospital-symbol" - ], - "unicodes": { - "composite": [ - "24bd" - ], - "secondary": [ - "10f47e" - ] - } - }, - "label": "Circle h", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573204, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM368 360c0 13.25-10.75 24-24 24S320 373.3 320 360v-80H192v80C192 373.3 181.3 384 168 384S144 373.3 144 360v-208C144 138.8 154.8 128 168 128S192 138.8 192 152v80h128v-80C320 138.8 330.8 128 344 128s24 10.75 24 24V360z" - } - }, - "free": [ - "solid" - ] - }, - "circle-half-stroke": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "5.11.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f042", - "aliases": { - "names": [ - "adjust" - ], - "unicodes": { - "composite": [ - "25d0" - ], - "secondary": [ - "10f042" - ] - } - }, - "label": "Circle half stroke", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573204, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 64V448C362 448 448 362 448 256C448 149.1 362 64 256 64z" - } - }, - "free": [ - "solid" - ] - }, - "circle-info": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f05a", - "aliases": { - "names": [ - "info-circle" - ], - "unicodes": { - "secondary": [ - "10f05a" - ] - } - }, - "label": "Circle info", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573204, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S224 177.7 224 160C224 142.3 238.3 128 256 128zM296 384h-80C202.8 384 192 373.3 192 360s10.75-24 24-24h16v-64H224c-13.25 0-24-10.75-24-24S210.8 224 224 224h32c13.25 0 24 10.75 24 24v88h16c13.25 0 24 10.75 24 24S309.3 384 296 384z" - } - }, - "free": [ - "solid" - ] - }, - "circle-left": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f359", - "aliases": { - "names": [ - "arrow-alt-circle-left" - ], - "unicodes": { - "composite": [ - "f190" - ], - "secondary": [ - "10f359" - ] - } - }, - "label": "Circle left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573204, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256c0 141.4 114.6 256 256 256s256-114.6 256-256c0-141.4-114.6-256-256-256S0 114.6 0 256zM246.1 129.2C252.1 131.7 256 137.5 256 144v64h96c17.67 0 32 14.33 32 32v32c0 17.67-14.33 32-32 32h-96v64c0 6.469-3.891 12.31-9.875 14.78c-5.984 2.484-12.86 1.109-17.44-3.469l-112-112c-6.248-6.248-6.248-16.38 0-22.62l112-112C233.3 128.1 240.1 126.7 246.1 129.2z" - }, - "regular": { - "last_modified": 1658443573008, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M360 224L272 224v-56c0-9.531-5.656-18.16-14.38-22C248.9 142.2 238.7 143.9 231.7 150.4l-96 88.75C130.8 243.7 128 250.1 128 256.8c.3125 7.781 2.875 13.25 7.844 17.75l96 87.25c7.031 6.406 17.19 8.031 25.88 4.188s14.28-12.44 14.28-21.94l-.002-56L360 288C373.3 288 384 277.3 384 264v-16C384 234.8 373.3 224 360 224zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-minus": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f056", - "aliases": { - "names": [ - "minus-circle" - ], - "unicodes": { - "secondary": [ - "10f056" - ] - } - }, - "label": "Circle minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573205, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM168 232C154.7 232 144 242.7 144 256C144 269.3 154.7 280 168 280H344C357.3 280 368 269.3 368 256C368 242.7 357.3 232 344 232H168z" - } - }, - "free": [ - "solid" - ] - }, - "circle-nodes": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e2", - "label": "Circle Nodes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573206, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M380.6 365.6C401.1 379.9 416 404.3 416 432C416 476.2 380.2 512 336 512C291.8 512 256 476.2 256 432C256 423.6 257.3 415.4 259.7 407.8L114.1 280.4C103.8 285.3 92.21 288 80 288C35.82 288 0 252.2 0 208C0 163.8 35.82 128 80 128C101.9 128 121.7 136.8 136.2 151.1L320 77.52C321.3 34.48 356.6 0 400 0C444.2 0 480 35.82 480 80C480 117.9 453.7 149.6 418.4 157.9L380.6 365.6zM156.3 232.2L301.9 359.6C306.9 357.3 312.1 355.4 317.6 354.1L355.4 146.4C351.2 143.6 347.4 140.4 343.8 136.9L159.1 210.5C159.7 218 158.5 225.3 156.3 232.2V232.2z" - } - }, - "free": [ - "solid" - ] - }, - "circle-notch": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1ce", - "aliases": { - "unicodes": { - "secondary": [ - "10f1ce" - ] - } - }, - "label": "Circle Notched", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573206, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M222.7 32.15C227.7 49.08 218.1 66.9 201.1 71.94C121.8 95.55 64 169.1 64 255.1C64 362 149.1 447.1 256 447.1C362 447.1 448 362 448 255.1C448 169.1 390.2 95.55 310.9 71.94C293.9 66.9 284.3 49.08 289.3 32.15C294.4 15.21 312.2 5.562 329.1 10.6C434.9 42.07 512 139.1 512 255.1C512 397.4 397.4 511.1 256 511.1C114.6 511.1 0 397.4 0 255.1C0 139.1 77.15 42.07 182.9 10.6C199.8 5.562 217.6 15.21 222.7 32.15V32.15z" - } - }, - "free": [ - "solid" - ] - }, - "circle-pause": { - "changes": [ - "4.5.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f28b", - "aliases": { - "names": [ - "pause-circle" - ], - "unicodes": { - "composite": [ - "f28c" - ], - "secondary": [ - "10f28b" - ] - } - }, - "label": "Circle pause", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573207, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM224 191.1v128C224 337.7 209.7 352 192 352S160 337.7 160 320V191.1C160 174.3 174.3 160 191.1 160S224 174.3 224 191.1zM352 191.1v128C352 337.7 337.7 352 320 352S288 337.7 288 320V191.1C288 174.3 302.3 160 319.1 160S352 174.3 352 191.1z" - }, - "regular": { - "last_modified": 1658443573009, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M200 160C186.8 160 176 170.8 176 184v144C176 341.3 186.8 352 200 352S224 341.3 224 328v-144C224 170.8 213.3 160 200 160zM312 160C298.8 160 288 170.8 288 184v144c0 13.25 10.75 24 24 24s24-10.75 24-24v-144C336 170.8 325.3 160 312 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-play": { - "changes": [ - "3.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f144", - "aliases": { - "names": [ - "play-circle" - ], - "unicodes": { - "composite": [ - "f01d" - ], - "secondary": [ - "10f144" - ] - } - }, - "label": "Circle play", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573207, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM176 168V344C176 352.7 180.7 360.7 188.3 364.9C195.8 369.2 205.1 369 212.5 364.5L356.5 276.5C363.6 272.1 368 264.4 368 256C368 247.6 363.6 239.9 356.5 235.5L212.5 147.5C205.1 142.1 195.8 142.8 188.3 147.1C180.7 151.3 176 159.3 176 168V168z" - }, - "regular": { - "last_modified": 1658443573009, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M188.3 147.1C195.8 142.8 205.1 142.1 212.5 147.5L356.5 235.5C363.6 239.9 368 247.6 368 256C368 264.4 363.6 272.1 356.5 276.5L212.5 364.5C205.1 369 195.8 369.2 188.3 364.9C180.7 360.7 176 352.7 176 344V167.1C176 159.3 180.7 151.3 188.3 147.1V147.1zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-plus": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f055", - "aliases": { - "names": [ - "plus-circle" - ], - "unicodes": { - "secondary": [ - "10f055" - ] - } - }, - "label": "Circle plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573207, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 368C269.3 368 280 357.3 280 344V280H344C357.3 280 368 269.3 368 256C368 242.7 357.3 232 344 232H280V168C280 154.7 269.3 144 256 144C242.7 144 232 154.7 232 168V232H168C154.7 232 144 242.7 144 256C144 269.3 154.7 280 168 280H232V344C232 357.3 242.7 368 256 368z" - } - }, - "free": [ - "solid" - ] - }, - "circle-question": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f059", - "aliases": { - "names": [ - "question-circle" - ], - "unicodes": { - "composite": [ - "f29c" - ], - "secondary": [ - "10f059" - ] - } - }, - "label": "Circle question", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573207, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 400c-18 0-32-14-32-32s13.1-32 32-32c17.1 0 32 14 32 32S273.1 400 256 400zM325.1 258L280 286V288c0 13-11 24-24 24S232 301 232 288V272c0-8 4-16 12-21l57-34C308 213 312 206 312 198C312 186 301.1 176 289.1 176h-51.1C225.1 176 216 186 216 198c0 13-11 24-24 24s-24-11-24-24C168 159 199 128 237.1 128h51.1C329 128 360 159 360 198C360 222 347 245 325.1 258z" - }, - "regular": { - "last_modified": 1658443573010, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM256 336c-18 0-32 14-32 32s13.1 32 32 32c17.1 0 32-14 32-32S273.1 336 256 336zM289.1 128h-51.1C199 128 168 159 168 198c0 13 11 24 24 24s24-11 24-24C216 186 225.1 176 237.1 176h51.1C301.1 176 312 186 312 198c0 8-4 14.1-11 18.1L244 251C236 256 232 264 232 272V288c0 13 11 24 24 24S280 301 280 288V286l45.1-28c21-13 34-36 34-60C360 159 329 128 289.1 128z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-radiation": { - "changes": [ - "5.6.0", - "5.8.2", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ba", - "aliases": { - "names": [ - "radiation-alt" - ], - "unicodes": { - "composite": [ - "2622" - ], - "secondary": [ - "10f7ba" - ] - } - }, - "label": "Circle radiation", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573208, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M226.4 208.6L184.8 141.9C179.6 133.7 168.3 132 160.7 138.2C130.8 162.3 110.1 197.4 105.1 237.4C103.9 247.2 111.2 256 121 256H200C200 236 210.6 218.6 226.4 208.6zM256 288c17.67 0 32-14.33 32-32s-14.33-32-32-32C238.3 224 224 238.3 224 256S238.3 288 256 288zM285.6 303.3C276.1 308.7 266.9 312 256 312c-10.89 0-20.98-3.252-29.58-8.65l-41.74 66.8c-5.211 8.338-1.613 19.07 7.27 23.29C211.4 402.7 233.1 408 256 408c22.97 0 44.64-5.334 64.12-14.59c8.883-4.219 12.48-14.95 7.262-23.29L285.6 303.3zM351.4 138.2c-7.604-6.145-18.86-4.518-24.04 3.77l-41.71 66.67C301.4 218.6 312 236 312 256h78.96c9.844 0 17.11-8.791 15.91-18.56C401.9 197.5 381.3 162.4 351.4 138.2zM256 16C123.4 16 16 123.4 16 256s107.4 240 240 240c132.6 0 240-107.4 240-240S388.6 16 256 16zM256 432c-97.05 0-176-78.99-176-176S158.1 80 256 80s176 78.95 176 176S353 432 256 432z" - } - }, - "free": [ - "solid" - ] - }, - "circle-right": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f35a", - "aliases": { - "names": [ - "arrow-alt-circle-right" - ], - "unicodes": { - "composite": [ - "f18e" - ], - "secondary": [ - "10f35a" - ] - } - }, - "label": "Circle right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573208, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256c0-141.4-114.6-256-256-256S0 114.6 0 256c0 141.4 114.6 256 256 256S512 397.4 512 256zM265.9 382.8C259.9 380.3 256 374.5 256 368v-64H160c-17.67 0-32-14.33-32-32v-32c0-17.67 14.33-32 32-32h96v-64c0-6.469 3.891-12.31 9.875-14.78c5.984-2.484 12.86-1.109 17.44 3.469l112 112c6.248 6.248 6.248 16.38 0 22.62l-112 112C278.7 383.9 271.9 385.3 265.9 382.8z" - }, - "regular": { - "last_modified": 1658443573010, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M280.2 150.2C273.1 143.8 262.1 142.2 254.3 146.1S239.1 158.5 239.1 167.1l.002 56L152 224C138.8 224 128 234.8 128 248v16C128 277.3 138.8 288 152 288L240 287.1v56c0 9.531 5.656 18.16 14.38 22c8.75 3.812 18.91 2.094 25.91-4.375l96-88.75C381.2 268.3 384 261.9 384 255.2c-.3125-7.781-2.875-13.25-7.844-17.75L280.2 150.2zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-stop": { - "changes": [ - "4.5.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f28d", - "aliases": { - "names": [ - "stop-circle" - ], - "unicodes": { - "composite": [ - "f28e" - ], - "secondary": [ - "10f28d" - ] - } - }, - "label": "Circle stop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573208, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM352 328c0 13.2-10.8 24-24 24h-144C170.8 352 160 341.2 160 328v-144C160 170.8 170.8 160 184 160h144C341.2 160 352 170.8 352 184V328z" - }, - "regular": { - "last_modified": 1658443573010, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M328 160h-144C170.8 160 160 170.8 160 184v144C160 341.2 170.8 352 184 352h144c13.2 0 24-10.8 24-24v-144C352 170.8 341.2 160 328 160zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-up": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f35b", - "aliases": { - "names": [ - "arrow-alt-circle-up" - ], - "unicodes": { - "composite": [ - "f01b" - ], - "secondary": [ - "10f35b" - ] - } - }, - "label": "Circle up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573208, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256c141.4 0 256-114.6 256-256S397.4 0 256 0zM382.8 246.1C380.3 252.1 374.5 256 368 256h-64v96c0 17.67-14.33 32-32 32h-32c-17.67 0-32-14.33-32-32V256h-64C137.5 256 131.7 252.1 129.2 246.1C126.7 240.1 128.1 233.3 132.7 228.7l112-112c6.248-6.248 16.38-6.248 22.62 0l112 112C383.9 233.3 385.3 240.1 382.8 246.1z" - }, - "regular": { - "last_modified": 1658443573010, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M272.9 135.7C268.3 130.8 261.9 128 255.2 128C247.5 128.3 241.1 130.9 237.5 135.8l-87.25 96C143.8 238.9 142.2 249 146.1 257.7C149.9 266.4 158.5 272 167.1 272h56L224 360c0 13.25 10.75 24 24 24h16c13.25 0 23.1-10.75 23.1-24L287.1 272h56c9.531 0 18.16-5.656 22-14.38c3.811-8.75 2.092-18.91-4.377-25.91L272.9 135.7zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-user": { - "changes": [ - "4.7.0", - "5.0.0", - "5.0.3", - "5.0.11", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2bd", - "aliases": { - "names": [ - "user-circle" - ], - "unicodes": { - "composite": [ - "f2be" - ], - "secondary": [ - "10f2bd" - ] - } - }, - "label": "Circle user", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573209, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 128c39.77 0 72 32.24 72 72S295.8 272 256 272c-39.76 0-72-32.24-72-72S216.2 128 256 128zM256 448c-52.93 0-100.9-21.53-135.7-56.29C136.5 349.9 176.5 320 224 320h64c47.54 0 87.54 29.88 103.7 71.71C356.9 426.5 308.9 448 256 448z" - }, - "regular": { - "last_modified": 1658443573011, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 112c-48.6 0-88 39.4-88 88C168 248.6 207.4 288 256 288s88-39.4 88-88C344 151.4 304.6 112 256 112zM256 240c-22.06 0-40-17.95-40-40C216 177.9 233.9 160 256 160s40 17.94 40 40C296 222.1 278.1 240 256 240zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-46.73 0-89.76-15.68-124.5-41.79C148.8 389 182.4 368 220.2 368h71.69c37.75 0 71.31 21.01 88.68 54.21C345.8 448.3 302.7 464 256 464zM416.2 388.5C389.2 346.3 343.2 320 291.8 320H220.2c-51.36 0-97.35 26.25-124.4 68.48C65.96 352.5 48 306.3 48 256c0-114.7 93.31-208 208-208s208 93.31 208 208C464 306.3 446 352.5 416.2 388.5z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "circle-xmark": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f057", - "aliases": { - "names": [ - "times-circle", - "xmark-circle" - ], - "unicodes": { - "composite": [ - "f05c" - ], - "secondary": [ - "10f057" - ] - } - }, - "label": "Circle X Mark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573209, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z" - }, - "regular": { - "last_modified": 1658443573011, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "city": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f64f", - "aliases": { - "unicodes": { - "composite": [ - "1f3d9" - ], - "secondary": [ - "10f64f" - ] - } - }, - "label": "City", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573209, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M480 192H592C618.5 192 640 213.5 640 240V464C640 490.5 618.5 512 592 512H48C21.49 512 0 490.5 0 464V144C0 117.5 21.49 96 48 96H64V24C64 10.75 74.75 0 88 0C101.3 0 112 10.75 112 24V96H176V24C176 10.75 186.7 0 200 0C213.3 0 224 10.75 224 24V96H288V48C288 21.49 309.5 0 336 0H432C458.5 0 480 21.49 480 48V192zM576 368C576 359.2 568.8 352 560 352H528C519.2 352 512 359.2 512 368V400C512 408.8 519.2 416 528 416H560C568.8 416 576 408.8 576 400V368zM240 416C248.8 416 256 408.8 256 400V368C256 359.2 248.8 352 240 352H208C199.2 352 192 359.2 192 368V400C192 408.8 199.2 416 208 416H240zM128 368C128 359.2 120.8 352 112 352H80C71.16 352 64 359.2 64 368V400C64 408.8 71.16 416 80 416H112C120.8 416 128 408.8 128 400V368zM528 256C519.2 256 512 263.2 512 272V304C512 312.8 519.2 320 528 320H560C568.8 320 576 312.8 576 304V272C576 263.2 568.8 256 560 256H528zM256 176C256 167.2 248.8 160 240 160H208C199.2 160 192 167.2 192 176V208C192 216.8 199.2 224 208 224H240C248.8 224 256 216.8 256 208V176zM80 160C71.16 160 64 167.2 64 176V208C64 216.8 71.16 224 80 224H112C120.8 224 128 216.8 128 208V176C128 167.2 120.8 160 112 160H80zM256 272C256 263.2 248.8 256 240 256H208C199.2 256 192 263.2 192 272V304C192 312.8 199.2 320 208 320H240C248.8 320 256 312.8 256 304V272zM112 320C120.8 320 128 312.8 128 304V272C128 263.2 120.8 256 112 256H80C71.16 256 64 263.2 64 272V304C64 312.8 71.16 320 80 320H112zM416 272C416 263.2 408.8 256 400 256H368C359.2 256 352 263.2 352 272V304C352 312.8 359.2 320 368 320H400C408.8 320 416 312.8 416 304V272zM368 64C359.2 64 352 71.16 352 80V112C352 120.8 359.2 128 368 128H400C408.8 128 416 120.8 416 112V80C416 71.16 408.8 64 400 64H368zM416 176C416 167.2 408.8 160 400 160H368C359.2 160 352 167.2 352 176V208C352 216.8 359.2 224 368 224H400C408.8 224 416 216.8 416 208V176z" - } - }, - "free": [ - "solid" - ] - }, - "clapperboard": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e131", - "label": "Clapperboard", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573209, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M326.1 160l127.4-127.4C451.7 32.39 449.9 32 448 32h-86.06l-128 128H326.1zM166.1 160l128-128H201.9l-128 128H166.1zM497.7 56.19L393.9 160H512V96C512 80.87 506.5 67.15 497.7 56.19zM134.1 32H64C28.65 32 0 60.65 0 96v64h6.062L134.1 32zM0 416c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V192H0V416z" - } - }, - "free": [ - "solid" - ] - }, - "clipboard": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f328", - "aliases": { - "unicodes": { - "composite": [ - "1f4cb" - ], - "secondary": [ - "10f328" - ] - } - }, - "label": "Clipboard", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573210, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 64h-53.88C268.9 26.8 233.7 0 192 0S115.1 26.8 101.9 64H48C21.5 64 0 85.48 0 112v352C0 490.5 21.5 512 48 512h288c26.5 0 48-21.48 48-48v-352C384 85.48 362.5 64 336 64zM192 64c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S160 113.7 160 96C160 78.33 174.3 64 192 64zM272 224h-160C103.2 224 96 216.8 96 208C96 199.2 103.2 192 112 192h160C280.8 192 288 199.2 288 208S280.8 224 272 224z" - }, - "regular": { - "last_modified": 1658443573012, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 64h-49.61C262.1 27.48 230.7 0 192 0S121 27.48 113.6 64H64C28.65 64 0 92.66 0 128v320c0 35.34 28.65 64 64 64h256c35.35 0 64-28.66 64-64V128C384 92.66 355.3 64 320 64zM192 48c13.23 0 24 10.77 24 24S205.2 96 192 96S168 85.23 168 72S178.8 48 192 48zM336 448c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V128c0-8.82 7.178-16 16-16h18.26C80.93 117.1 80 122.4 80 128v16C80 152.8 87.16 160 96 160h192c8.836 0 16-7.164 16-16V128c0-5.559-.9316-10.86-2.264-16H320c8.822 0 16 7.18 16 16V448z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "clipboard-check": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f46c", - "aliases": { - "unicodes": { - "secondary": [ - "10f46c" - ] - } - }, - "label": "Clipboard with Check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573210, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 64h-53.88C268.9 26.8 233.7 0 192 0S115.1 26.8 101.9 64H48C21.5 64 0 85.48 0 112v352C0 490.5 21.5 512 48 512h288c26.5 0 48-21.48 48-48v-352C384 85.48 362.5 64 336 64zM192 64c17.67 0 32 14.33 32 32s-14.33 32-32 32S160 113.7 160 96S174.3 64 192 64zM282.9 262.8l-88 112c-4.047 5.156-10.02 8.438-16.53 9.062C177.6 383.1 176.8 384 176 384c-5.703 0-11.25-2.031-15.62-5.781l-56-48c-10.06-8.625-11.22-23.78-2.594-33.84c8.609-10.06 23.77-11.22 33.84-2.594l36.98 31.69l72.52-92.28c8.188-10.44 23.3-12.22 33.7-4.062C289.3 237.3 291.1 252.4 282.9 262.8z" - } - }, - "free": [ - "solid" - ] - }, - "clipboard-list": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f46d", - "aliases": { - "unicodes": { - "secondary": [ - "10f46d" - ] - } - }, - "label": "Clipboard List", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573210, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 64h-53.88C268.9 26.8 233.7 0 192 0S115.1 26.8 101.9 64H48C21.5 64 0 85.48 0 112v352C0 490.5 21.5 512 48 512h288c26.5 0 48-21.48 48-48v-352C384 85.48 362.5 64 336 64zM96 392c-13.25 0-24-10.75-24-24S82.75 344 96 344s24 10.75 24 24S109.3 392 96 392zM96 296c-13.25 0-24-10.75-24-24S82.75 248 96 248S120 258.8 120 272S109.3 296 96 296zM192 64c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S160 113.7 160 96C160 78.33 174.3 64 192 64zM304 384h-128C167.2 384 160 376.8 160 368C160 359.2 167.2 352 176 352h128c8.801 0 16 7.199 16 16C320 376.8 312.8 384 304 384zM304 288h-128C167.2 288 160 280.8 160 272C160 263.2 167.2 256 176 256h128C312.8 256 320 263.2 320 272C320 280.8 312.8 288 304 288z" - } - }, - "free": [ - "solid" - ] - }, - "clipboard-question": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e3", - "label": "Clipboard Question", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573210, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M282.5 64H320C355.3 64 384 92.65 384 128V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V128C0 92.65 28.65 64 64 64H101.5C114.6 26.71 150.2 0 192 0C233.8 0 269.4 26.71 282.5 64zM192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96C160 113.7 174.3 128 192 128zM105.4 230.5C100.9 243 107.5 256.7 119.1 261.2C132.5 265.6 146.2 259.1 150.6 246.6L151.1 245.3C152.2 242.1 155.2 240 158.6 240H216.9C225.2 240 232 246.8 232 255.1C232 260.6 229.1 265.6 224.4 268.3L180.1 293.7C172.6 298 168 305.9 168 314.5V328C168 341.3 178.7 352 192 352C205.1 352 215.8 341.5 215.1 328.4L248.3 309.9C267.9 298.7 280 277.8 280 255.1C280 220.3 251.7 192 216.9 192H158.6C134.9 192 113.8 206.9 105.8 229.3L105.4 230.5zM192 384C174.3 384 160 398.3 160 416C160 433.7 174.3 448 192 448C209.7 448 224 433.7 224 416C224 398.3 209.7 384 192 384z" - } - }, - "free": [ - "solid" - ] - }, - "clipboard-user": { - "changes": [ - "5.7.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7f3", - "aliases": { - "unicodes": { - "secondary": [ - "10f7f3" - ] - } - }, - "label": "Clipboard with User", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573210, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 64h-53.88C268.9 26.8 233.7 0 192 0S115.1 26.8 101.9 64H48C21.5 64 0 85.48 0 112v352C0 490.5 21.5 512 48 512h288c26.5 0 48-21.48 48-48v-352C384 85.48 362.5 64 336 64zM192 64c17.67 0 32 14.33 32 32c0 17.67-14.33 32-32 32S160 113.7 160 96C160 78.33 174.3 64 192 64zM192 192c35.35 0 64 28.65 64 64s-28.65 64-64 64S128 291.3 128 256S156.7 192 192 192zM288 448H96c-8.836 0-16-7.164-16-16C80 387.8 115.8 352 160 352h64c44.18 0 80 35.82 80 80C304 440.8 296.8 448 288 448z" - } - }, - "free": [ - "solid" - ] - }, - "clock": { - "changes": [ - "1.0.0", - "5.0.0", - "5.12.1", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f017", - "aliases": { - "names": [ - "clock-four" - ], - "unicodes": { - "composite": [ - "1f553" - ], - "secondary": [ - "10f017" - ] - } - }, - "label": "Clock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573211, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512zM232 256C232 264 236 271.5 242.7 275.1L338.7 339.1C349.7 347.3 364.6 344.3 371.1 333.3C379.3 322.3 376.3 307.4 365.3 300L280 243.2V120C280 106.7 269.3 96 255.1 96C242.7 96 231.1 106.7 231.1 120L232 256z" - }, - "regular": { - "last_modified": 1658443573014, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M232 120C232 106.7 242.7 96 256 96C269.3 96 280 106.7 280 120V243.2L365.3 300C376.3 307.4 379.3 322.3 371.1 333.3C364.6 344.3 349.7 347.3 338.7 339.1L242.7 275.1C236 271.5 232 264 232 255.1L232 120zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "clock-rotate-left": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1da", - "aliases": { - "names": [ - "history" - ], - "unicodes": { - "secondary": [ - "10f1da" - ] - } - }, - "label": "Clock Rotate Left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573211, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C201.7 512 151.2 495 109.7 466.1C95.2 455.1 91.64 436 101.8 421.5C111.9 407 131.8 403.5 146.3 413.6C177.4 435.3 215.2 448 256 448C362 448 448 362 448 256C448 149.1 362 64 256 64C202.1 64 155 85.46 120.2 120.2L151 151C166.1 166.1 155.4 192 134.1 192H24C10.75 192 0 181.3 0 168V57.94C0 36.56 25.85 25.85 40.97 40.97L74.98 74.98C121.3 28.69 185.3 0 255.1 0L256 0zM256 128C269.3 128 280 138.7 280 152V246.1L344.1 311C354.3 320.4 354.3 335.6 344.1 344.1C335.6 354.3 320.4 354.3 311 344.1L239 272.1C234.5 268.5 232 262.4 232 256V152C232 138.7 242.7 128 256 128V128z" - } - }, - "free": [ - "solid" - ] - }, - "clone": { - "changes": [ - "4.4.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f24d", - "aliases": { - "unicodes": { - "secondary": [ - "10f24d" - ] - } - }, - "label": "Clone", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573211, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 224C0 188.7 28.65 160 64 160H128V288C128 341 170.1 384 224 384H352V448C352 483.3 323.3 512 288 512H64C28.65 512 0 483.3 0 448V224zM224 352C188.7 352 160 323.3 160 288V64C160 28.65 188.7 0 224 0H448C483.3 0 512 28.65 512 64V288C512 323.3 483.3 352 448 352H224z" - }, - "regular": { - "last_modified": 1658443573014, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 464H288C296.8 464 304 456.8 304 448V384H352V448C352 483.3 323.3 512 288 512H64C28.65 512 0 483.3 0 448V224C0 188.7 28.65 160 64 160H128V208H64C55.16 208 48 215.2 48 224V448C48 456.8 55.16 464 64 464zM160 64C160 28.65 188.7 0 224 0H448C483.3 0 512 28.65 512 64V288C512 323.3 483.3 352 448 352H224C188.7 352 160 323.3 160 288V64zM224 304H448C456.8 304 464 296.8 464 288V64C464 55.16 456.8 48 448 48H224C215.2 48 208 55.16 208 64V288C208 296.8 215.2 304 224 304z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "closed-captioning": { - "changes": [ - "4.2.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f20a", - "aliases": { - "unicodes": { - "secondary": [ - "10f20a" - ] - } - }, - "label": "Closed Captioning", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573212, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM168.6 289.9c18.69 18.72 49.19 18.72 67.87 0c9.375-9.375 24.56-9.375 33.94 0s9.375 24.56 0 33.94c-18.72 18.72-43.28 28.08-67.87 28.08s-49.16-9.359-67.87-28.08C116.5 305.8 106.5 281.6 106.5 256s9.1-49.75 28.12-67.88c37.44-37.44 98.31-37.44 135.7 0c9.375 9.375 9.375 24.56 0 33.94s-24.56 9.375-33.94 0c-18.69-18.72-49.19-18.72-67.87 0C159.5 231.1 154.5 243.2 154.5 256S159.5 280.9 168.6 289.9zM360.6 289.9c18.69 18.72 49.19 18.72 67.87 0c9.375-9.375 24.56-9.375 33.94 0s9.375 24.56 0 33.94c-18.72 18.72-43.28 28.08-67.87 28.08s-49.16-9.359-67.87-28.08C308.5 305.8 298.5 281.6 298.5 256s9.1-49.75 28.12-67.88c37.44-37.44 98.31-37.44 135.7 0c9.375 9.375 9.375 24.56 0 33.94s-24.56 9.375-33.94 0c-18.69-18.72-49.19-18.72-67.87 0C351.5 231.1 346.5 243.2 346.5 256S351.5 280.9 360.6 289.9z" - }, - "regular": { - "last_modified": 1658443573014, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V416zM236.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C116.5 206.2 106.5 230.4 106.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C159.5 280.9 154.5 268.8 154.5 256s5-24.88 14.06-33.94C187.3 203.3 217.8 203.3 236.5 222.1zM428.5 222.1c9.375 9.375 24.56 9.375 33.94 0c9.375-9.375 9.375-24.56 0-33.94c-37.44-37.44-98.31-37.44-135.7 0C308.5 206.2 298.5 230.4 298.5 256s9.1 49.75 28.12 67.88c18.72 18.72 43.28 28.08 67.87 28.08s49.16-9.359 67.87-28.08c9.375-9.375 9.375-24.56 0-33.94c-9.375-9.375-24.56-9.375-33.94 0c-18.69 18.72-49.19 18.72-67.87 0C351.5 280.9 346.5 268.8 346.5 256s5-24.88 14.06-33.94C379.3 203.3 409.8 203.3 428.5 222.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "cloud": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.11", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0c2", - "aliases": { - "unicodes": { - "composite": [ - "2601" - ], - "secondary": [ - "10f0c2" - ] - } - }, - "label": "Cloud", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M96.2 200.1C96.07 197.4 96 194.7 96 192C96 103.6 167.6 32 256 32C315.3 32 367 64.25 394.7 112.2C409.9 101.1 428.3 96 448 96C501 96 544 138.1 544 192C544 204.2 541.7 215.8 537.6 226.6C596 238.4 640 290.1 640 352C640 422.7 582.7 480 512 480H144C64.47 480 0 415.5 0 336C0 273.2 40.17 219.8 96.2 200.1z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-arrow-down": { - "changes": [ - "3.0.0", - "5.0.0", - "5.0.11", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ed", - "aliases": { - "names": [ - "cloud-download", - "cloud-download-alt" - ], - "unicodes": { - "composite": [ - "f381" - ], - "primary": [ - "f381" - ], - "secondary": [ - "10f381", - "10f0ed" - ] - } - }, - "label": "Cloud arrow down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573212, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144 480C64.47 480 0 415.5 0 336C0 273.2 40.17 219.8 96.2 200.1C96.07 197.4 96 194.7 96 192C96 103.6 167.6 32 256 32C315.3 32 367 64.25 394.7 112.2C409.9 101.1 428.3 96 448 96C501 96 544 138.1 544 192C544 204.2 541.7 215.8 537.6 226.6C596 238.4 640 290.1 640 352C640 422.7 582.7 480 512 480H144zM303 392.1C312.4 402.3 327.6 402.3 336.1 392.1L416.1 312.1C426.3 303.6 426.3 288.4 416.1 279C407.6 269.7 392.4 269.7 383 279L344 318.1V184C344 170.7 333.3 160 320 160C306.7 160 296 170.7 296 184V318.1L256.1 279C247.6 269.7 232.4 269.7 223 279C213.7 288.4 213.7 303.6 223 312.1L303 392.1z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-arrow-up": { - "changes": [ - "3.0.0", - "5.0.0", - "5.0.11", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ee", - "aliases": { - "names": [ - "cloud-upload", - "cloud-upload-alt" - ], - "unicodes": { - "composite": [ - "f382" - ], - "primary": [ - "f382" - ], - "secondary": [ - "10f0ee", - "10f382" - ] - } - }, - "label": "Cloud arrow up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573212, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144 480C64.47 480 0 415.5 0 336C0 273.2 40.17 219.8 96.2 200.1C96.07 197.4 96 194.7 96 192C96 103.6 167.6 32 256 32C315.3 32 367 64.25 394.7 112.2C409.9 101.1 428.3 96 448 96C501 96 544 138.1 544 192C544 204.2 541.7 215.8 537.6 226.6C596 238.4 640 290.1 640 352C640 422.7 582.7 480 512 480H144zM223 263C213.7 272.4 213.7 287.6 223 296.1C232.4 306.3 247.6 306.3 256.1 296.1L296 257.9V392C296 405.3 306.7 416 320 416C333.3 416 344 405.3 344 392V257.9L383 296.1C392.4 306.3 407.6 306.3 416.1 296.1C426.3 287.6 426.3 272.4 416.1 263L336.1 183C327.6 173.7 312.4 173.7 303 183L223 263z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-bolt": { - "changes": [ - "5.5.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f76c", - "aliases": { - "names": [ - "thunderstorm" - ], - "unicodes": { - "composite": [ - "1f329" - ], - "secondary": [ - "10f76c" - ] - } - }, - "label": "Cloud bolt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573212, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 351.1h-71.25l47.44-105.4c3.062-6.781 1.031-14.81-4.906-19.31c-5.969-4.469-14.22-4.312-19.94 .4687l-153.6 128c-5.156 4.312-7.094 11.41-4.781 17.72c2.281 6.344 8.281 10.56 15.03 10.56h71.25l-47.44 105.4c-3.062 6.781-1.031 14.81 4.906 19.31C191.6 510.9 194.1 512 198.4 512c3.656 0 7.281-1.25 10.25-3.719l153.6-128c5.156-4.312 7.094-11.41 4.781-17.72C364.8 356.2 358.8 351.1 352 351.1zM416 128c-.625 0-1.125 .25-1.625 .25C415.5 123 416 117.6 416 112C416 67.75 380.3 32 336 32c-24.62 0-46.25 11.25-61 28.75C256.4 24.75 219.3 0 176 0C114.1 0 64 50.13 64 112c0 7.25 .75 14.25 2.125 21.25C27.75 145.8 0 181.5 0 224c0 53 43 96 96 96h46.63l140.2-116.8c8.605-7.195 19.53-11.16 30.76-11.16c10.34 0 20.6 3.416 29.03 9.734c17.96 13.61 24.02 37.45 14.76 57.95L330.2 320H416c53 0 96-43 96-96S469 128 416 128z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-meatball": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f73b", - "aliases": { - "unicodes": { - "secondary": [ - "10f73b" - ] - } - }, - "label": "Cloud with (a chance of) Meatball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573212, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M80 352C53.5 352 32 373.5 32 400S53.5 448 80 448S128 426.5 128 400S106.5 352 80 352zM496 352c-26.5 0-48 21.5-48 48s21.5 48 48 48s48-21.5 48-48S522.5 352 496 352zM377 363.1c4.625-14.5 1.625-30.88-9.75-42.37c-11.5-11.5-27.87-14.38-42.37-9.875c-7-13.5-20.63-23-36.88-23s-29.88 9.5-36.88 23C236.6 306.2 220.2 309.2 208.8 320.8c-11.5 11.5-14.38 27.87-9.875 42.37c-13.5 7-23 20.63-23 36.88s9.5 29.88 23 36.88c-4.625 14.5-1.625 30.88 9.875 42.37c8.25 8.125 19 12.25 29.75 12.25c4.25 0 8.5-1.125 12.62-2.5C258.1 502.5 271.8 512 288 512s29.88-9.5 36.88-23c4.125 1.25 8.375 2.5 12.62 2.5c10.75 0 21.5-4.125 29.75-12.25c11.5-11.5 14.38-27.87 9.75-42.37C390.5 429.9 400 416.2 400 400S390.5 370.1 377 363.1zM544 224c0-53-43-96-96-96c-.625 0-1.125 .25-1.625 .25C447.5 123 448 117.6 448 112C448 67.75 412.2 32 368 32c-24.62 0-46.25 11.25-61 28.75C288.4 24.75 251.2 0 208 0C146.1 0 96 50.12 96 112c0 7.25 .75 14.25 2.125 21.25C59.75 145.8 32 181.5 32 224c0 53 43 96 96 96h43.38C175 312 179.8 304.6 186.2 298.2C199.8 284.8 217.8 277.1 237 276.9C250.5 263.8 268.8 256 288 256s37.5 7.75 51 20.88c19.25 .25 37.25 7.875 50.75 21.37C396.2 304.6 401.1 312 404.6 320H448C501 320 544 277 544 224z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-moon": { - "changes": [ - "5.4.0", - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6c3", - "aliases": { - "unicodes": { - "secondary": [ - "10f6c3" - ] - } - }, - "label": "Cloud with Moon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573213, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M342.7 352.7c5.75-9.625 9.25-20.75 9.25-32.75c0-35.25-28.75-64-63.1-64c-17.25 0-32.75 6.875-44.25 17.87C227.4 244.2 196.2 223.1 159.1 223.1c-53 0-96 43.06-96 96.06c0 2 .5029 3.687 .6279 5.687c-37.5 13-64.62 48.38-64.62 90.25C-.0048 468.1 42.99 512 95.99 512h239.1c44.25 0 79.1-35.75 79.1-80C415.1 390.1 383.7 356.2 342.7 352.7zM565.2 298.4c-93 17.75-178.5-53.62-178.5-147.6c0-54.25 28.1-104 76.12-130.9c7.375-4.125 5.375-15.12-2.75-16.63C448.4 1.125 436.7 0 424.1 0c-105.9 0-191.9 85.88-191.9 192c0 8.5 .625 16.75 1.75 25c5.875 4.25 11.62 8.875 16.75 14.25C262.1 226.5 275.2 224 287.1 224c52.88 0 95.1 43.13 95.1 96c0 3.625-.25 7.25-.625 10.75c23.62 10.75 42.37 29.5 53.5 52.5c54.38-3.375 103.7-29.25 137.1-70.37C579.2 306.4 573.5 296.8 565.2 298.4z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-moon-rain": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f73c", - "aliases": { - "unicodes": { - "secondary": [ - "10f73c" - ] - } - }, - "label": "Cloud with Moon and Rain", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573213, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M350.5 225.5c-6.876-37.25-39.25-65.5-78.51-65.5c-12.25 0-23.88 2.1-34.25 7.1C220.3 143.9 192.1 128 160 128c-53.01 0-96.01 42.1-96.01 95.1c0 .5 .25 1.125 .25 1.625C27.63 232.9 0 265.3 0 304c0 44.25 35.75 79.1 80.01 79.1h256c44.25 0 80.01-35.75 80.01-79.1C416 264.8 387.8 232.3 350.5 225.5zM567.9 223.8C497.6 237.1 432.9 183.5 432.9 113c0-40.63 21.88-78 57.5-98.13c5.501-3.125 4.077-11.37-2.173-12.5C479.6 .7538 470.8 0 461.8 0c-77.88 0-141.1 61.25-144.4 137.9c26.75 11.88 48.26 33.88 58.88 61.75c37.13 14.25 64.01 47.38 70.26 86.75c5.126 .5 10.05 1.522 15.3 1.522c44.63 0 85.46-20.15 112.5-53.27C578.6 229.8 574.2 222.6 567.9 223.8zM340.1 426.7l-32 48c-7.345 11.03-4.376 25.94 6.657 33.28C318.8 510.7 323.4 512 327.1 512c7.751 0 15.38-3.75 20-10.69l32-48c7.345-11.03 4.376-25.94-6.657-33.28C362.3 412.7 347.4 415.7 340.1 426.7zM244 426.7l-32 48c-7.345 11.03-4.376 25.94 6.657 33.28C222.8 510.7 227.4 512 231.1 512c7.751 0 15.38-3.75 20-10.69l32-48c7.345-11.03 4.376-25.94-6.657-33.28C266.3 412.7 251.4 415.7 244 426.7zM148 426.7l-32 48c-7.345 11.03-4.376 25.94 6.657 33.28C126.8 510.7 131.4 512 135.1 512c7.751 0 15.38-3.75 20-10.69l32-48c7.345-11.03 4.376-25.94-6.657-33.28C170.3 412.7 155.4 415.7 148 426.7zM52.03 426.7l-32 48c-7.345 11.03-4.376 25.94 6.657 33.28C30.78 510.7 35.41 512 39.97 512c7.751 0 15.38-3.75 20-10.69l32-48c7.345-11.03 4.376-25.94-6.657-33.28C74.25 412.7 59.41 415.7 52.03 426.7z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-rain": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f73d", - "aliases": { - "unicodes": { - "composite": [ - "1f327", - "26c6" - ], - "secondary": [ - "10f73d" - ] - } - }, - "label": "Cloud with Rain", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573213, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 128c-.625 0-1.125 .25-1.625 .25C415.5 123 416 117.6 416 112C416 67.75 380.3 32 336 32c-24.62 0-46.25 11.25-61 28.75C256.4 24.75 219.3 0 176 0C114.1 0 64 50.13 64 112c0 7.25 .75 14.25 2.125 21.25C27.75 145.8 0 181.5 0 224c0 53 43 96 96 96h320c53 0 96-43 96-96S469 128 416 128zM368 464c0 26.51 21.49 48 48 48s48-21.49 48-48s-48.01-95.1-48.01-95.1S368 437.5 368 464zM48 464C48 490.5 69.49 512 96 512s48-21.49 48-48s-48.01-95.1-48.01-95.1S48 437.5 48 464zM208 464c0 26.51 21.49 48 48 48s48-21.49 48-48s-48.01-95.1-48.01-95.1S208 437.5 208 464z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-showers-heavy": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f740", - "aliases": { - "unicodes": { - "secondary": [ - "10f740" - ] - } - }, - "label": "Cloud with Heavy Showers", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573213, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 128c-.625 0-1.125 .25-1.625 .25C415.5 123 416 117.6 416 112c0-44.25-35.75-80-79.1-80c-24.62 0-46.25 11.25-60.1 28.75C256.4 24.75 219.3 0 176 0C114.3 0 64 50.13 64 112c0 7.25 .7512 14.25 2.126 21.25C27.76 145.8 .0054 181.5 .0054 224c0 53 42.1 96 95.1 96h319.1C469 320 512 277 512 224S469 128 416 128zM198.8 353.9c-12.17-5.219-26.3 .4062-31.52 12.59l-47.1 112c-5.219 12.19 .4219 26.31 12.61 31.53C134.1 511.4 138.2 512 141.3 512c9.312 0 18.17-5.438 22.08-14.53l47.1-112C216.6 373.3 210.1 359.2 198.8 353.9zM81.46 353.9c-12.19-5.219-26.3 .4062-31.52 12.59l-47.1 112C-3.276 490.7 2.365 504.8 14.55 510.1C17.63 511.4 20.83 512 23.99 512c9.312 0 18.17-5.438 22.08-14.53l47.1-112C99.29 373.3 93.64 359.2 81.46 353.9zM316.1 353.9c-12.19-5.219-26.3 .4062-31.52 12.59l-47.1 112c-5.219 12.19 .4219 26.31 12.61 31.53C252.3 511.4 255.5 512 258.7 512c9.312 0 18.17-5.438 22.08-14.53l47.1-112C333.1 373.3 328.3 359.2 316.1 353.9zM433.5 353.9c-12.17-5.219-26.28 .4062-31.52 12.59l-47.1 112c-5.219 12.19 .4219 26.31 12.61 31.53C369.6 511.4 372.8 512 375.1 512c9.312 0 18.17-5.438 22.08-14.53l47.1-112C451.3 373.3 445.6 359.2 433.5 353.9z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-showers-water": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e4", - "label": "Cloud Showers-water", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573213, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M223.1 0C262.6 0 295.9 22.82 311.2 55.7C325.7 41.07 345.8 32 368 32C406.7 32 438.1 59.48 446.4 96H448C483.3 96 512 124.7 512 160C512 195.3 483.3 224 448 224H127.1C92.65 224 63.1 195.3 63.1 160C63.1 124.7 92.65 96 127.1 96C127.1 42.98 170.1 0 223.1 0zM92.58 372.3C85.76 383.7 71.02 387.4 59.65 380.6C48.29 373.8 44.6 359 51.42 347.7L99.42 267.7C106.2 256.3 120.1 252.6 132.3 259.4C143.7 266.2 147.4 280.1 140.6 292.3L92.58 372.3zM468.3 259.4C479.7 266.2 483.4 280.1 476.6 292.3L428.6 372.3C421.8 383.7 407 387.4 395.7 380.6C384.3 373.8 380.6 359 387.4 347.7L435.4 267.7C442.2 256.3 456.1 252.6 468.3 259.4V259.4zM204.6 372.3C197.8 383.7 183 387.4 171.7 380.6C160.3 373.8 156.6 359 163.4 347.7L211.4 267.7C218.2 256.3 232.1 252.6 244.3 259.4C255.7 266.2 259.4 280.1 252.6 292.3L204.6 372.3zM356.3 259.4C367.7 266.2 371.4 280.1 364.6 292.3L316.6 372.3C309.8 383.7 295 387.4 283.7 380.6C272.3 373.8 268.6 359 275.4 347.7L323.4 267.7C330.2 256.3 344.1 252.6 356.3 259.4V259.4zM384 448C410.9 448 439.4 437.2 461.4 421.9L461.5 421.9C473.4 413.4 489.5 414.1 500.7 423.6C515 435.5 533.2 444.6 551.3 448.8C568.5 452.8 579.2 470.1 575.2 487.3C571.2 504.5 553.1 515.2 536.7 511.2C512.2 505.4 491.9 494.6 478.5 486.2C449.5 501.7 417 512 384 512C352.1 512 323.4 502.1 303.6 493.1C297.7 490.5 292.5 487.8 288 485.4C283.5 487.8 278.3 490.5 272.4 493.1C252.6 502.1 223.9 512 192 512C158.1 512 126.5 501.7 97.5 486.2C84.12 494.6 63.79 505.4 39.27 511.2C22.06 515.2 4.853 504.5 .8422 487.3C-3.169 470.1 7.532 452.8 24.74 448.8C42.84 444.6 60.96 435.5 75.31 423.6C86.46 414.1 102.6 413.4 114.5 421.9L114.6 421.9C136.7 437.2 165.1 448 192 448C219.5 448 247 437.4 269.5 421.9C280.6 414 295.4 414 306.5 421.9C328.1 437.4 356.5 448 384 448H384z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-sun": { - "changes": [ - "5.4.0", - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6c4", - "aliases": { - "unicodes": { - "composite": [ - "26c5" - ], - "secondary": [ - "10f6c4" - ] - } - }, - "label": "Cloud with Sun", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M96 208c0-61.86 50.14-111.1 111.1-111.1c52.65 0 96.5 36.45 108.5 85.42C334.7 173.1 354.7 168 375.1 168c4.607 0 9.152 .3809 13.68 .8203l24.13-34.76c5.145-7.414 .8965-17.67-7.984-19.27L317.2 98.78L301.2 10.21C299.6 1.325 289.4-2.919 281.9 2.226L208 53.54L134.1 2.225C126.6-2.92 116.4 1.326 114.8 10.21L98.78 98.78L10.21 114.8C1.326 116.4-2.922 126.7 2.223 134.1l51.3 73.94L2.224 281.9c-5.145 7.414-.8975 17.67 7.983 19.27L98.78 317.2l16.01 88.58c1.604 8.881 11.86 13.13 19.27 7.982l10.71-7.432c2.725-35.15 19.85-66.51 45.83-88.1C137.1 309.8 96 263.9 96 208zM128 208c0 44.18 35.82 80 80 80c9.729 0 18.93-1.996 27.56-5.176c7.002-33.65 25.53-62.85 51.57-83.44C282.8 159.3 249.2 128 208 128C163.8 128 128 163.8 128 208zM575.2 325.6c.125-2 .7453-3.744 .7453-5.619c0-35.38-28.75-64-63.1-64c-12.62 0-24.25 3.749-34.13 9.999c-17.62-38.88-56.5-65.1-101.9-65.1c-61.75 0-112 50.12-112 111.1c0 3 .7522 5.743 .8772 8.618c-49.63 3.75-88.88 44.74-88.88 95.37C175.1 469 218.1 512 271.1 512h272c53 0 96-42.99 96-95.99C639.1 373.9 612.7 338.6 575.2 325.6z" - } - }, - "free": [ - "solid" - ] - }, - "cloud-sun-rain": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f743", - "aliases": { - "unicodes": { - "composite": [ - "1f326" - ], - "secondary": [ - "10f743" - ] - } - }, - "label": "Cloud with Sun and Rain", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573213, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M255.7 139.1C244.8 125.5 227.6 116 208 116c-33.14 0-60 26.86-60 59.1c0 25.56 16.06 47.24 38.58 55.88C197.2 219.3 210.5 208.9 225.9 201.1C229.1 178.5 240.6 157.3 255.7 139.1zM120 175.1c0-48.6 39.4-87.1 88-87.1c27.8 0 52.29 13.14 68.42 33.27c21.24-15.67 47.22-25.3 75.58-25.3c.0098 0-.0098 0 0 0L300.4 83.58L286.9 8.637C285.9 3.346 281.3 .0003 276.5 .0003c-2.027 0-4.096 .5928-5.955 1.881l-62.57 43.42L145.4 1.882C143.6 .5925 141.5-.0003 139.5-.0003c-4.818 0-9.399 3.346-10.35 8.636l-13.54 74.95L40.64 97.13c-5.289 .9556-8.637 5.538-8.637 10.36c0 2.026 .5921 4.094 1.881 5.951l43.41 62.57L33.88 238.6C32.59 240.4 32 242.5 32 244.5c0 4.817 3.347 9.398 8.636 10.35l74.95 13.54l13.54 74.95c.9555 5.289 5.537 8.636 10.35 8.636c2.027 0 4.096-.5927 5.954-1.882l19.47-13.51c-3.16-10.34-4.934-21.28-4.934-32.64c0-17.17 4.031-33.57 11.14-48.32C141 241.7 120 211.4 120 175.1zM542.5 225.5c-6.875-37.25-39.25-65.5-78.51-65.5c-12.25 0-23.88 3-34.25 8c-17.5-24.13-45.63-40-77.76-40c-53 0-96.01 43-96.01 96c0 .5 .25 1.125 .25 1.625C219.6 232.1 191.1 265.2 191.1 303.1c0 44.25 35.75 80 80.01 80h256C572.2 383.1 608 348.2 608 303.1C608 264.7 579.7 232.2 542.5 225.5zM552 415.1c-7.753 0-15.35 3.752-19.97 10.69l-32 48c-2.731 4.093-4.037 8.719-4.037 13.29C496 501.4 506.9 512 520 512c7.75 0 15.36-3.75 19.98-10.69l32-48c2.731-4.093 4.037-8.719 4.037-13.29C576 426.6 565.1 415.1 552 415.1zM456 415.1c-7.751 0-15.34 3.752-19.98 10.69l-32 48c-2.731 4.093-4.037 8.719-4.037 13.29C400 501.4 410.9 512 423.1 512c7.75 0 15.36-3.75 19.98-10.69l32-48c2.731-4.093 4.037-8.719 4.037-13.29C480 426.6 469.1 415.1 456 415.1zM360 415.1c-7.753 0-15.34 3.752-19.97 10.69l-32 48c-2.731 4.093-4.037 8.719-4.037 13.29C304 501.4 314.9 512 327.1 512c7.75 0 15.36-3.75 19.99-10.69l32-48c2.731-4.093 4.037-8.719 4.037-13.29C384 426.6 373.1 415.1 360 415.1zM264 415.1c-7.756 0-15.35 3.752-19.97 10.69l-32 48c-2.731 4.093-4.037 8.719-4.037 13.29C208 501.4 218.9 512 231.1 512c7.75 0 15.36-3.75 19.98-10.69l32-48c2.731-4.093 4.037-8.719 4.037-13.29C288 426.6 277.1 415.1 264 415.1z" - } - }, - "free": [ - "solid" - ] - }, - "cloudflare": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e07d", - "label": "Cloudflare", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M407.9 319.9l-230.8-2.928a4.58 4.58 0 0 1 -3.632-1.926 4.648 4.648 0 0 1 -.494-4.147 6.143 6.143 0 0 1 5.361-4.076L411.3 303.9c27.63-1.26 57.55-23.57 68.02-50.78l13.29-34.54a7.944 7.944 0 0 0 .524-2.936 7.735 7.735 0 0 0 -.164-1.631A151.9 151.9 0 0 0 201.3 198.4 68.12 68.12 0 0 0 94.2 269.6C41.92 271.1 0 313.7 0 366.1a96.05 96.05 0 0 0 1.029 13.96 4.508 4.508 0 0 0 4.445 3.871l426.1 .051c.043 0 .08-.019 .122-.02a5.606 5.606 0 0 0 5.271-4l3.273-11.27c3.9-13.4 2.448-25.8-4.1-34.9C430.1 325.4 420.1 320.5 407.9 319.9zM513.9 221.1c-2.141 0-4.271 .062-6.391 .164a3.771 3.771 0 0 0 -3.324 2.653l-9.077 31.19c-3.9 13.4-2.449 25.79 4.1 34.89 6.02 8.4 16.05 13.32 28.24 13.9l49.2 2.939a4.491 4.491 0 0 1 3.51 1.894 4.64 4.64 0 0 1 .514 4.169 6.153 6.153 0 0 1 -5.351 4.075l-51.13 2.939c-27.75 1.27-57.67 23.57-68.14 50.78l-3.695 9.606a2.716 2.716 0 0 0 2.427 3.68c.046 0 .088 .017 .136 .017h175.9a4.69 4.69 0 0 0 4.539-3.37 124.8 124.8 0 0 0 4.682-34C640 277.3 583.5 221.1 513.9 221.1z" - } - }, - "free": [ - "brands" - ] - }, - "cloudscale": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f383", - "label": "cloudscale.ch", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6C153.8 128 96 188.8 96 260.3c0 6.6 .4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zm-83.8 111.5c-5.6 5.5-14.6 5.5-20.2 0-5.6-5.6-5.6-14.6 0-20.2s14.6-5.6 20.2 0 5.6 14.7 0 20.2zM224 32C100.5 32 0 132.5 0 256s100.5 224 224 224 224-100.5 224-224S347.5 32 224 32zm0 384c-88.2 0-160-71.8-160-160S135.8 96 224 96s160 71.8 160 160-71.8 160-160 160z" - } - }, - "free": [ - "brands" - ] - }, - "cloudsmith": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f384", - "label": "Cloudsmith", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 332, - 512 - ], - "width": 332, - "height": 512, - "path": "M332.5 419.9c0 46.4-37.6 84.1-84 84.1s-84-37.7-84-84.1 37.6-84 84-84 84 37.6 84 84zm-84-243.9c46.4 0 80-37.6 80-84s-33.6-84-80-84-88 37.6-88 84-29.6 76-76 76-84 41.6-84 88 37.6 80 84 80 84-33.6 84-80 33.6-80 80-80z" - } - }, - "free": [ - "brands" - ] - }, - "cloudversify": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f385", - "label": "cloudversify", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 616, - 512 - ], - "width": 616, - "height": 512, - "path": "M148.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5v20.4c0 10.7-8.7 19.5-19.5 19.5h-20.2c-10.7 0-19.5-6-19.5-16.7V240H98.8C95 240 88 244.3 88 251.9v40.4c0 6.4 5.3 11.8 11.7 11.8h48.9zm227.4 8c-10.7 46.3 21.7 72.4 55.3 86.8C324.1 432.6 259.7 348 296 288c-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9C297 191.4 369.9 198.7 400 248c-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM128 208H88.2c-8.9 0-16.2-7.3-16.2-16.2v-39.6c0-8.9 7.3-16.2 16.2-16.2H128c8.9 0 16.2 7.3 16.2 16.2v39.6c0 8.9-7.3 16.2-16.2 16.2zM10.1 168C4.5 168 0 163.5 0 157.9v-27.8c0-5.6 4.5-10.1 10.1-10.1h27.7c5.5 0 10.1 4.5 10.1 10.1v27.8c0 5.6-4.5 10.1-10.1 10.1H10.1zM168 142.7v-21.4c0-5.1 4.2-9.3 9.3-9.3h21.4c5.1 0 9.3 4.2 9.3 9.3v21.4c0 5.1-4.2 9.3-9.3 9.3h-21.4c-5.1 0-9.3-4.2-9.3-9.3zM56 235.5v25c0 6.3-5.1 11.5-11.4 11.5H19.4C13.1 272 8 266.8 8 260.5v-25c0-6.3 5.1-11.5 11.4-11.5h25.1c6.4 0 11.5 5.2 11.5 11.5z" - } - }, - "free": [ - "brands" - ] - }, - "clover": { - "changes": [ - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e139", - "label": "Clover", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M216.6 49.94L217.8 51.18C221.2 54.6 226.8 54.6 230.2 51.18L231.4 49.94C242.9 38.45 258.5 32 274.7 32C308.6 32 336 59.42 336 93.25V98.12C336 110.1 332.7 121.9 326.6 132.1L307.8 163.4C306.7 165.2 306.7 166.5 306.8 167.6C307 168.8 307.7 170.1 308.8 171.2C309.9 172.3 311.2 172.1 312.4 173.2C313.5 173.3 314.8 173.2 316.6 172.2L347.9 153.4C358.1 147.3 369.9 144 381.9 144H386.7C420.6 144 448 171.4 448 205.3C448 221.5 441.5 237.1 430.1 248.6L428.8 249.8C425.4 253.2 425.4 258.8 428.8 262.2L430.1 263.4C441.5 274.9 448 290.5 448 306.7C448 340.6 420.6 368 386.7 368H381.9C369.9 368 358.1 364.7 347.9 358.6L316.6 339.8C314.8 338.7 313.5 338.7 312.4 338.8C311.2 339 309.9 339.7 308.8 340.8C307.7 341.9 307 343.2 306.8 344.4C306.7 345.5 306.7 346.8 307.8 348.6L326.6 379.9C332.7 390.1 336 401.9 336 413.9V418.7C336 452.6 308.6 480 274.7 480C258.5 480 242.9 473.5 231.4 462.1L230.2 460.8C226.8 457.4 221.2 457.4 217.8 460.8L216.6 462.1C205.1 473.5 189.5 480 173.3 480C139.4 480 112 452.6 112 418.7V413.9C112 401.9 115.3 390.1 121.4 379.9L140.2 348.6C141.2 346.8 141.3 345.5 141.2 344.4C140.1 343.2 140.3 341.9 139.2 340.8C138.1 339.7 136.8 339 135.6 338.8C134.5 338.7 133.2 338.7 131.4 339.8L100.1 358.6C89.86 364.7 78.1 368 66.12 368H61.25C27.42 368 0 340.6 0 306.7C0 290.5 6.454 274.9 17.94 263.4L19.18 262.2C22.6 258.8 22.6 253.2 19.18 249.8L17.94 248.6C6.454 237.1 0 221.5 0 205.3C0 171.4 27.42 144 61.25 144H66.12C78.1 144 89.86 147.3 100.1 153.4L131.4 172.2C133.2 173.2 134.5 173.3 135.6 173.2C136.8 172.1 138.1 172.3 139.2 171.2C140.3 170.1 140.1 168.8 141.2 167.6C141.3 166.5 141.2 165.2 140.2 163.4L121.4 132.1C115.3 121.9 112 110.1 112 98.12V93.25C112 59.42 139.4 32 173.3 32C189.5 32 205.1 38.45 216.6 49.94z" - } - }, - "free": [ - "solid" - ] - }, - "cmplid": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e360", - "label": "Cmplid", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M226.1 388.2a3.816 3.816 0 0 0 -2.294-3.5 3.946 3.946 0 0 0 -1.629-.385L72.6 384.3a19.24 19.24 0 0 1 -17.92-26.02L81.58 255.7a35.72 35.72 0 0 1 32.37-26H262.5a7.07 7.07 0 0 0 6.392-5.194l10.77-41.13a3.849 3.849 0 0 0 -2.237-4.937 3.755 3.755 0 0 0 -1.377-.261c-.063 0-.126 0-.189 .005H127.4a106.8 106.8 0 0 0 -96.99 77.1L3.483 358.8A57.47 57.47 0 0 0 57.31 436q1.43 0 2.86-.072H208.7a7.131 7.131 0 0 0 6.391-5.193L225.8 389.6A3.82 3.82 0 0 0 226.1 388.2zM306.7 81.2a3.861 3.861 0 0 0 .251-1.367A3.813 3.813 0 0 0 303.1 76c-.064 0-.128 0-.192 0h-41A7.034 7.034 0 0 0 255.5 81.2l-21.35 80.92h51.13zM180.4 368.2H231.5L263.5 245.7H212.3zM511.9 79.72a3.809 3.809 0 0 0 -3.8-3.661c-.058 0-.137 0-.23 .007h-41a7.1 7.1 0 0 0 -6.584 5.129L368.9 430.6a3.54 3.54 0 0 0 -.262 1.335 3.873 3.873 0 0 0 3.864 3.863c.056 0 .112 0 .169 0h41a7.068 7.068 0 0 0 6.392-5.193L511.5 81.2A3.624 3.624 0 0 0 511.9 79.72zM324.6 384.5h-41a7.2 7.2 0 0 0 -6.392 5.194L266.5 430.8a3.662 3.662 0 0 0 -.268 1.374A3.783 3.783 0 0 0 270 436c.06 0 .166 0 .3-.012h40.9a7.036 7.036 0 0 0 6.391-5.193l10.77-41.13a3.75 3.75 0 0 0 -3.445-5.208c-.108 0-.217 0-.326 .014zm311.3-308.4h-41a7.066 7.066 0 0 0 -6.392 5.129l-91.46 349.4a4.073 4.073 0 0 0 -.229 1.347 3.872 3.872 0 0 0 3.863 3.851c.056 0 .112 0 .169 0h40.97a7.1 7.1 0 0 0 6.392-5.193L639.7 81.2a3.624 3.624 0 0 0 .32-1.475 3.841 3.841 0 0 0 -3.821-3.564c-.068 0-.137 0-.206 .006zM371.6 225.2l10.8-41.1a4.369 4.369 0 0 0 .227-1.388 3.869 3.869 0 0 0 -3.861-3.842c-.057 0-.113 0-.169 0h-41.1a7.292 7.292 0 0 0 -6.391 5.226l-10.83 41.1a4.417 4.417 0 0 0 -.26 1.493c0 .069 0 .138 0 .206a3.776 3.776 0 0 0 3.757 3.507c.076 0 .18 0 .3-.012h41.13A7.034 7.034 0 0 0 371.6 225.2z" - } - }, - "free": [ - "brands" - ] - }, - "code": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f121", - "aliases": { - "unicodes": { - "secondary": [ - "10f121" - ] - } - }, - "label": "Code", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573215, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M414.8 40.79L286.8 488.8C281.9 505.8 264.2 515.6 247.2 510.8C230.2 505.9 220.4 488.2 225.2 471.2L353.2 23.21C358.1 6.216 375.8-3.624 392.8 1.232C409.8 6.087 419.6 23.8 414.8 40.79H414.8zM518.6 121.4L630.6 233.4C643.1 245.9 643.1 266.1 630.6 278.6L518.6 390.6C506.1 403.1 485.9 403.1 473.4 390.6C460.9 378.1 460.9 357.9 473.4 345.4L562.7 256L473.4 166.6C460.9 154.1 460.9 133.9 473.4 121.4C485.9 108.9 506.1 108.9 518.6 121.4V121.4zM166.6 166.6L77.25 256L166.6 345.4C179.1 357.9 179.1 378.1 166.6 390.6C154.1 403.1 133.9 403.1 121.4 390.6L9.372 278.6C-3.124 266.1-3.124 245.9 9.372 233.4L121.4 121.4C133.9 108.9 154.1 108.9 166.6 121.4C179.1 133.9 179.1 154.1 166.6 166.6V166.6z" - } - }, - "free": [ - "solid" - ] - }, - "code-branch": { - "changes": [ - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f126", - "aliases": { - "unicodes": { - "secondary": [ - "10f126" - ] - } - }, - "label": "Code Branch", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 80C160 112.8 140.3 140.1 112 153.3V241.1C130.8 230.2 152.7 224 176 224H272C307.3 224 336 195.3 336 160V153.3C307.7 140.1 288 112.8 288 80C288 35.82 323.8 0 368 0C412.2 0 448 35.82 448 80C448 112.8 428.3 140.1 400 153.3V160C400 230.7 342.7 288 272 288H176C140.7 288 112 316.7 112 352V358.7C140.3 371 160 399.2 160 432C160 476.2 124.2 512 80 512C35.82 512 0 476.2 0 432C0 399.2 19.75 371 48 358.7V153.3C19.75 140.1 0 112.8 0 80C0 35.82 35.82 0 80 0C124.2 0 160 35.82 160 80V80zM80 104C93.25 104 104 93.25 104 80C104 66.75 93.25 56 80 56C66.75 56 56 66.75 56 80C56 93.25 66.75 104 80 104zM368 56C354.7 56 344 66.75 344 80C344 93.25 354.7 104 368 104C381.3 104 392 93.25 392 80C392 66.75 381.3 56 368 56zM80 456C93.25 456 104 445.3 104 432C104 418.7 93.25 408 80 408C66.75 408 56 418.7 56 432C56 445.3 66.75 456 80 456z" - } - }, - "free": [ - "solid" - ] - }, - "code-commit": { - "changes": [ - "5.0.0", - "5.1.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f386", - "aliases": { - "unicodes": { - "secondary": [ - "10f386" - ] - } - }, - "label": "Code Commit", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M476.8 288C461.1 361 397.4 416 320 416C242.6 416 178 361 163.2 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H163.2C178 150.1 242.6 96 320 96C397.4 96 461.1 150.1 476.8 224H608C625.7 224 640 238.3 640 256C640 273.7 625.7 288 608 288H476.8zM320 336C364.2 336 400 300.2 400 256C400 211.8 364.2 176 320 176C275.8 176 240 211.8 240 256C240 300.2 275.8 336 320 336z" - } - }, - "free": [ - "solid" - ] - }, - "code-compare": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e13a", - "label": "Code Compare", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 488C320 497.5 314.4 506.1 305.8 509.9C297.1 513.8 286.1 512.2 279.9 505.8L199.9 433.8C194.9 429.3 192 422.8 192 416C192 409.2 194.9 402.7 199.9 398.2L279.9 326.2C286.1 319.8 297.1 318.2 305.8 322.1C314.4 325.9 320 334.5 320 344V384H336C371.3 384 400 355.3 400 320V153.3C371.7 140.1 352 112.8 352 80C352 35.82 387.8 0 432 0C476.2 0 512 35.82 512 80C512 112.8 492.3 140.1 464 153.3V320C464 390.7 406.7 448 336 448H320V488zM456 79.1C456 66.74 445.3 55.1 432 55.1C418.7 55.1 408 66.74 408 79.1C408 93.25 418.7 103.1 432 103.1C445.3 103.1 456 93.25 456 79.1zM192 24C192 14.52 197.6 5.932 206.2 2.076C214.9-1.78 225-.1789 232.1 6.161L312.1 78.16C317.1 82.71 320 89.2 320 96C320 102.8 317.1 109.3 312.1 113.8L232.1 185.8C225 192.2 214.9 193.8 206.2 189.9C197.6 186.1 192 177.5 192 168V128H176C140.7 128 112 156.7 112 192V358.7C140.3 371 160 399.2 160 432C160 476.2 124.2 512 80 512C35.82 512 0 476.2 0 432C0 399.2 19.75 371 48 358.7V192C48 121.3 105.3 64 176 64H192V24zM56 432C56 445.3 66.75 456 80 456C93.25 456 104 445.3 104 432C104 418.7 93.25 408 80 408C66.75 408 56 418.7 56 432z" - } - }, - "free": [ - "solid" - ] - }, - "code-fork": { - "changes": [ - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e13b", - "label": "Code Fork", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 80C160 112.8 140.3 140.1 112 153.3V192C112 209.7 126.3 224 144 224H304C321.7 224 336 209.7 336 192V153.3C307.7 140.1 288 112.8 288 80C288 35.82 323.8 0 368 0C412.2 0 448 35.82 448 80C448 112.8 428.3 140.1 400 153.3V192C400 245 357 288 304 288H256V358.7C284.3 371 304 399.2 304 432C304 476.2 268.2 512 224 512C179.8 512 144 476.2 144 432C144 399.2 163.7 371 192 358.7V288H144C90.98 288 48 245 48 192V153.3C19.75 140.1 0 112.8 0 80C0 35.82 35.82 0 80 0C124.2 0 160 35.82 160 80V80zM80 104C93.25 104 104 93.25 104 80C104 66.75 93.25 56 80 56C66.75 56 56 66.75 56 80C56 93.25 66.75 104 80 104zM368 104C381.3 104 392 93.25 392 80C392 66.75 381.3 56 368 56C354.7 56 344 66.75 344 80C344 93.25 354.7 104 368 104zM224 408C210.7 408 200 418.7 200 432C200 445.3 210.7 456 224 456C237.3 456 248 445.3 248 432C248 418.7 237.3 408 224 408z" - } - }, - "free": [ - "solid" - ] - }, - "code-merge": { - "changes": [ - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f387", - "aliases": { - "unicodes": { - "secondary": [ - "10f387" - ] - } - }, - "label": "Code Merge", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573214, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M208 239.1H294.7C307 211.7 335.2 191.1 368 191.1C412.2 191.1 448 227.8 448 271.1C448 316.2 412.2 352 368 352C335.2 352 307 332.3 294.7 303.1H208C171.1 303.1 138.7 292.1 112 272V358.7C140.3 371 160 399.2 160 432C160 476.2 124.2 512 80 512C35.82 512 0 476.2 0 432C0 399.2 19.75 371 48 358.7V153.3C19.75 140.1 0 112.8 0 80C0 35.82 35.82 0 80 0C124.2 0 160 35.82 160 80C160 112.6 140.5 140.7 112.4 153.2C117 201.9 158.1 240 208 240V239.1zM80 103.1C93.25 103.1 104 93.25 104 79.1C104 66.74 93.25 55.1 80 55.1C66.75 55.1 56 66.74 56 79.1C56 93.25 66.75 103.1 80 103.1zM80 456C93.25 456 104 445.3 104 432C104 418.7 93.25 408 80 408C66.75 408 56 418.7 56 432C56 445.3 66.75 456 80 456zM368 247.1C354.7 247.1 344 258.7 344 271.1C344 285.3 354.7 295.1 368 295.1C381.3 295.1 392 285.3 392 271.1C392 258.7 381.3 247.1 368 247.1z" - } - }, - "free": [ - "solid" - ] - }, - "code-pull-request": { - "changes": [ - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e13c", - "label": "Code Pull Request", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573215, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M305.8 2.076C314.4 5.932 320 14.52 320 24V64H336C406.7 64 464 121.3 464 192V358.7C492.3 371 512 399.2 512 432C512 476.2 476.2 512 432 512C387.8 512 352 476.2 352 432C352 399.2 371.7 371 400 358.7V192C400 156.7 371.3 128 336 128H320V168C320 177.5 314.4 186.1 305.8 189.9C297.1 193.8 286.1 192.2 279.9 185.8L199.9 113.8C194.9 109.3 192 102.8 192 96C192 89.2 194.9 82.71 199.9 78.16L279.9 6.161C286.1-.1791 297.1-1.779 305.8 2.077V2.076zM432 456C445.3 456 456 445.3 456 432C456 418.7 445.3 408 432 408C418.7 408 408 418.7 408 432C408 445.3 418.7 456 432 456zM112 358.7C140.3 371 160 399.2 160 432C160 476.2 124.2 512 80 512C35.82 512 0 476.2 0 432C0 399.2 19.75 371 48 358.7V153.3C19.75 140.1 0 112.8 0 80C0 35.82 35.82 .0004 80 .0004C124.2 .0004 160 35.82 160 80C160 112.8 140.3 140.1 112 153.3V358.7zM80 56C66.75 56 56 66.75 56 80C56 93.25 66.75 104 80 104C93.25 104 104 93.25 104 80C104 66.75 93.25 56 80 56zM80 408C66.75 408 56 418.7 56 432C56 445.3 66.75 456 80 456C93.25 456 104 445.3 104 432C104 418.7 93.25 408 80 408z" - } - }, - "free": [ - "solid" - ] - }, - "codepen": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1cb", - "label": "Codepen", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.3 159.7l-234-156c-7.987-4.915-16.51-4.96-24.57 0l-234 156C3.714 163.7 0 170.8 0 177.1v155.1c0 7.143 3.714 14.29 9.715 18.29l234 156c7.987 4.915 16.51 4.96 24.57 0l234-156c6-3.999 9.715-11.14 9.715-18.29V177.1c-.001-7.142-3.715-14.29-9.716-18.28zM278 63.13l172.3 114.9-76.86 51.43L278 165.7V63.13zm-44 0v102.6l-95.43 63.72-76.86-51.43L234 63.13zM44 219.1l55.14 36.86L44 292.8v-73.71zm190 229.7L61.71 333.1l76.86-51.43L234 346.3v102.6zm22-140.9l-77.71-52 77.71-52 77.71 52-77.71 52zm22 140.9V346.3l95.43-63.72 76.86 51.43L278 448.8zm190-156l-55.14-36.86L468 219.1v73.71z" - } - }, - "free": [ - "brands" - ] - }, - "codiepie": { - "changes": [ - "4.5.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f284", - "label": "Codie Pie", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 472, - 512 - ], - "width": 472, - "height": 512, - "path": "M422.5 202.9c30.7 0 33.5 53.1-.3 53.1h-10.8v44.3h-26.6v-97.4h37.7zM472 352.6C429.9 444.5 350.4 504 248 504 111 504 0 393 0 256S111 8 248 8c97.4 0 172.8 53.7 218.2 138.4l-186 108.8L472 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6c-40.7-62.6-104.7-100-179.2-100-121.2 0-219.5 98.3-219.5 219.5S126.8 475.5 248 475.5c78.6 0 146.5-42.1 185.5-110.4z" - } - }, - "free": [ - "brands" - ] - }, - "coins": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f51e", - "aliases": { - "unicodes": { - "secondary": [ - "10f51e" - ] - } - }, - "label": "Coins", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573215, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 80C512 98.01 497.7 114.6 473.6 128C444.5 144.1 401.2 155.5 351.3 158.9C347.7 157.2 343.9 155.5 340.1 153.9C300.6 137.4 248.2 128 192 128C183.7 128 175.6 128.2 167.5 128.6L166.4 128C142.3 114.6 128 98.01 128 80C128 35.82 213.1 0 320 0C426 0 512 35.82 512 80V80zM160.7 161.1C170.9 160.4 181.3 160 192 160C254.2 160 309.4 172.3 344.5 191.4C369.3 204.9 384 221.7 384 240C384 243.1 383.3 247.9 381.9 251.7C377.3 264.9 364.1 277 346.9 287.3C346.9 287.3 346.9 287.3 346.9 287.3C346.8 287.3 346.6 287.4 346.5 287.5L346.5 287.5C346.2 287.7 345.9 287.8 345.6 288C310.6 307.4 254.8 320 192 320C132.4 320 79.06 308.7 43.84 290.9C41.97 289.9 40.15 288.1 38.39 288C14.28 274.6 0 258 0 240C0 205.2 53.43 175.5 128 164.6C138.5 163 149.4 161.8 160.7 161.1L160.7 161.1zM391.9 186.6C420.2 182.2 446.1 175.2 468.1 166.1C484.4 159.3 499.5 150.9 512 140.6V176C512 195.3 495.5 213.1 468.2 226.9C453.5 234.3 435.8 240.5 415.8 245.3C415.9 243.6 416 241.8 416 240C416 218.1 405.4 200.1 391.9 186.6V186.6zM384 336C384 354 369.7 370.6 345.6 384C343.8 384.1 342 385.9 340.2 386.9C304.9 404.7 251.6 416 192 416C129.2 416 73.42 403.4 38.39 384C14.28 370.6 .0003 354 .0003 336V300.6C12.45 310.9 27.62 319.3 43.93 326.1C83.44 342.6 135.8 352 192 352C248.2 352 300.6 342.6 340.1 326.1C347.9 322.9 355.4 319.2 362.5 315.2C368.6 311.8 374.3 308 379.7 304C381.2 302.9 382.6 301.7 384 300.6L384 336zM416 278.1C434.1 273.1 452.5 268.6 468.1 262.1C484.4 255.3 499.5 246.9 512 236.6V272C512 282.5 507 293 497.1 302.9C480.8 319.2 452.1 332.6 415.8 341.3C415.9 339.6 416 337.8 416 336V278.1zM192 448C248.2 448 300.6 438.6 340.1 422.1C356.4 415.3 371.5 406.9 384 396.6V432C384 476.2 298 512 192 512C85.96 512 .0003 476.2 .0003 432V396.6C12.45 406.9 27.62 415.3 43.93 422.1C83.44 438.6 135.8 448 192 448z" - } - }, - "free": [ - "solid" - ] - }, - "colon-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e140", - "label": "Colon Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573215, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M216.6 65.56C226.4 66.81 235.9 68.8 245.2 71.46L256.1 24.24C261.2 7.093 278.6-3.331 295.8 .9552C312.9 5.242 323.3 22.62 319 39.76L303.1 100C305.1 100.8 306.2 101.6 307.2 102.4C321.4 113 324.2 133.1 313.6 147.2C307.5 155.3 298.4 159.7 288.1 159.1L234.8 376.7C247.1 372.3 258.5 366.1 268.8 358.4C282.9 347.8 302.1 350.6 313.6 364.8C324.2 378.9 321.4 398.1 307.2 409.6C281.5 428.9 250.8 441.9 217.4 446.3L207 487.8C202.8 504.9 185.4 515.3 168.2 511C151.1 506.8 140.7 489.4 144.1 472.2L152.1 443.8C142.4 441.8 133.1 439.1 124.1 435.6L111 487.8C106.8 504.9 89.38 515.3 72.24 511C55.09 506.8 44.67 489.4 48.96 472.2L66.65 401.4C25.84 366.2 0 314.1 0 256C0 164.4 64.09 87.85 149.9 68.64L160.1 24.24C165.2 7.093 182.6-3.331 199.8 .9552C216.9 5.242 227.3 22.62 223 39.76L216.6 65.56zM131.2 143.3C91.17 164.1 64 207.3 64 256C64 282.2 71.85 306.5 85.32 326.8L131.2 143.3zM167.6 381.7L229.6 133.6C220.4 130.8 210.8 128.1 200.9 128.3L139.8 372.9C148.6 376.8 157.9 379.8 167.6 381.7V381.7z" - } - }, - "free": [ - "solid" - ] - }, - "comment": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.9", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f075", - "aliases": { - "unicodes": { - "composite": [ - "f0e5", - "1f5e9" - ], - "secondary": [ - "10f075" - ] - } - }, - "label": "comment", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573217, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 32C114.6 32 .0272 125.1 .0272 240c0 49.63 21.35 94.98 56.97 130.7c-12.5 50.37-54.27 95.27-54.77 95.77c-2.25 2.25-2.875 5.734-1.5 8.734C1.979 478.2 4.75 480 8 480c66.25 0 115.1-31.76 140.6-51.39C181.2 440.9 217.6 448 256 448c141.4 0 255.1-93.13 255.1-208S397.4 32 256 32z" - }, - "regular": { - "last_modified": 1658443573020, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 32C114.6 32 .0272 125.1 .0272 240c0 47.63 19.91 91.25 52.91 126.2c-14.88 39.5-45.87 72.88-46.37 73.25c-6.625 7-8.375 17.25-4.625 26C5.818 474.2 14.38 480 24 480c61.5 0 109.1-25.75 139.1-46.25C191.1 442.8 223.3 448 256 448c141.4 0 255.1-93.13 255.1-208S397.4 32 256 32zM256.1 400c-26.75 0-53.12-4.125-78.38-12.12l-22.75-7.125l-19.5 13.75c-14.25 10.12-33.88 21.38-57.5 29c7.375-12.12 14.37-25.75 19.88-40.25l10.62-28l-20.62-21.87C69.82 314.1 48.07 282.2 48.07 240c0-88.25 93.25-160 208-160s208 71.75 208 160S370.8 400 256.1 400z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "comment-dollar": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f651", - "aliases": { - "unicodes": { - "secondary": [ - "10f651" - ] - } - }, - "label": "Comment Dollar", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573216, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 31.1c-141.4 0-255.1 93.09-255.1 208c0 49.59 21.37 94.1 56.97 130.7c-12.5 50.39-54.31 95.3-54.81 95.8C0 468.8-.5938 472.2 .6875 475.2C1.1 478.2 4.813 479.1 8 479.1c66.31 0 116-31.8 140.6-51.41c32.72 12.31 69.02 19.41 107.4 19.41c141.4 0 255.1-93.09 255.1-207.1S397.4 31.1 256 31.1zM317.8 282.3c-3.623 20.91-19.47 34.64-41.83 39.43V332c0 11.03-8.946 20-19.99 20S236 343 236 332v-10.77c-8.682-1.922-17.3-4.723-25.06-7.512l-4.266-1.5C196.3 308.5 190.8 297.1 194.5 286.7c3.688-10.41 15.11-15.81 25.52-12.22l4.469 1.625c7.844 2.812 16.72 6 23.66 7.031c13.72 2.125 28.94 .1875 30.31-7.625c.875-5.094 1.359-7.906-27.92-16.28L244.7 257.5c-17.33-5.094-57.92-17-50.52-59.84C197.8 176.8 213.6 162.8 236 157.1V148c0-11.03 8.961-20 20.01-20s19.99 8.969 19.99 20v10.63c5.453 1.195 11.34 2.789 18.56 5.273c10.44 3.625 15.95 15.03 12.33 25.47c-3.625 10.41-15.06 15.94-25.45 12.34c-5.859-2.031-12-4-17.59-4.844C250.2 194.8 234.1 196.7 233.6 204.5C232.8 208.1 232.3 212.2 255.1 219.2l5.547 1.594C283.8 227.1 325.3 239 317.8 282.3z" - } - }, - "free": [ - "solid" - ] - }, - "comment-dots": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f4ad", - "aliases": { - "names": [ - "commenting" - ], - "unicodes": { - "composite": [ - "f27b", - "1f4ac" - ], - "secondary": [ - "10f4ad" - ] - } - }, - "label": "Comment Dots", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573216, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 31.1c-141.4 0-255.1 93.12-255.1 208c0 49.62 21.35 94.98 56.97 130.7c-12.5 50.37-54.27 95.27-54.77 95.77c-2.25 2.25-2.875 5.734-1.5 8.734c1.249 3 4.021 4.766 7.271 4.766c66.25 0 115.1-31.76 140.6-51.39c32.63 12.25 69.02 19.39 107.4 19.39c141.4 0 255.1-93.13 255.1-207.1S397.4 31.1 256 31.1zM127.1 271.1c-17.75 0-32-14.25-32-31.1s14.25-32 32-32s32 14.25 32 32S145.7 271.1 127.1 271.1zM256 271.1c-17.75 0-31.1-14.25-31.1-31.1s14.25-32 31.1-32s31.1 14.25 31.1 32S273.8 271.1 256 271.1zM383.1 271.1c-17.75 0-32-14.25-32-31.1s14.25-32 32-32s32 14.25 32 32S401.7 271.1 383.1 271.1z" - }, - "regular": { - "last_modified": 1658443573019, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M144 208C126.3 208 112 222.2 112 239.1C112 257.7 126.3 272 144 272s31.1-14.25 31.1-32S161.8 208 144 208zM256 207.1c-17.75 0-31.1 14.25-31.1 32s14.25 31.1 31.1 31.1s31.1-14.25 31.1-31.1S273.8 207.1 256 207.1zM368 208c-17.75 0-31.1 14.25-31.1 32s14.25 32 31.1 32c17.75 0 31.99-14.25 31.99-32C400 222.2 385.8 208 368 208zM256 31.1c-141.4 0-255.1 93.12-255.1 208c0 47.62 19.91 91.25 52.91 126.3c-14.87 39.5-45.87 72.88-46.37 73.25c-6.624 7-8.373 17.25-4.624 26C5.818 474.2 14.38 480 24 480c61.49 0 109.1-25.75 139.1-46.25c28.87 9 60.16 14.25 92.9 14.25c141.4 0 255.1-93.13 255.1-207.1S397.4 31.1 256 31.1zM256 400c-26.75 0-53.12-4.125-78.36-12.12l-22.75-7.125L135.4 394.5c-14.25 10.12-33.87 21.38-57.49 29c7.374-12.12 14.37-25.75 19.87-40.25l10.62-28l-20.62-21.87C69.81 314.1 48.06 282.2 48.06 240c0-88.25 93.24-160 207.1-160s207.1 71.75 207.1 160S370.8 400 256 400z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "comment-medical": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7f5", - "aliases": { - "unicodes": { - "secondary": [ - "10f7f5" - ] - } - }, - "label": "Alternate Medical Chat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573216, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 31.1c-141.4 0-255.1 93.09-255.1 208c0 49.59 21.38 94.1 56.97 130.7c-12.5 50.39-54.31 95.3-54.81 95.8C0 468.8-.5938 472.2 .6875 475.2c1.312 3 4.125 4.797 7.312 4.797c66.31 0 116-31.8 140.6-51.41c32.72 12.31 69.01 19.41 107.4 19.41C397.4 447.1 512 354.9 512 239.1S397.4 31.1 256 31.1zM368 266c0 8.836-7.164 16-16 16h-54V336c0 8.836-7.164 16-16 16h-52c-8.836 0-16-7.164-16-16V282H160c-8.836 0-16-7.164-16-16V214c0-8.838 7.164-16 16-16h53.1V144c0-8.838 7.164-16 16-16h52c8.836 0 16 7.162 16 16v54H352c8.836 0 16 7.162 16 16V266z" - } - }, - "free": [ - "solid" - ] - }, - "comment-slash": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4b3", - "aliases": { - "unicodes": { - "secondary": [ - "10f4b3" - ] - } - }, - "label": "Comment Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573217, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M64.03 239.1c0 49.59 21.38 94.1 56.97 130.7c-12.5 50.39-54.31 95.3-54.81 95.8c-2.187 2.297-2.781 5.703-1.5 8.703c1.312 3 4.125 4.797 7.312 4.797c66.31 0 116-31.8 140.6-51.41c32.72 12.31 69.02 19.41 107.4 19.41c37.39 0 72.78-6.663 104.8-18.36L82.93 161.7C70.81 185.9 64.03 212.3 64.03 239.1zM630.8 469.1l-118.1-92.59C551.1 340 576 292.4 576 240c0-114.9-114.6-207.1-255.1-207.1c-67.74 0-129.1 21.55-174.9 56.47L38.81 5.117C28.21-3.154 13.16-1.096 5.115 9.19C-3.072 19.63-1.249 34.72 9.188 42.89l591.1 463.1c10.5 8.203 25.57 6.333 33.7-4.073C643.1 492.4 641.2 477.3 630.8 469.1z" - } - }, - "free": [ - "solid" - ] - }, - "comment-sms": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7cd", - "aliases": { - "names": [ - "sms" - ], - "unicodes": { - "secondary": [ - "10f7cd" - ] - } - }, - "label": "Comment sms", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573217, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 32C114.6 32 .0137 125.1 .0137 240c0 49.59 21.39 95 56.99 130.7c-12.5 50.39-54.31 95.3-54.81 95.8C0 468.8-.5938 472.2 .6875 475.2C1.1 478.2 4.813 480 8 480c66.31 0 116-31.8 140.6-51.41C181.3 440.9 217.6 448 256 448C397.4 448 512 354.9 512 240S397.4 32 256 32zM167.3 271.9C163.9 291.1 146.3 304 121.1 304c-4.031 0-8.25-.3125-12.59-1C101.1 301.8 92.81 298.8 85.5 296.1c-8.312-3-14.06-12.66-11.09-20.97S85 261.1 93.38 264.9c6.979 2.498 14.53 5.449 20.88 6.438C125.7 273.1 135 271 135.8 266.4c1.053-5.912-10.84-8.396-24.56-12.34c-12.12-3.531-44.28-12.97-38.63-46c4.062-23.38 27.31-35.91 58-31.09c5.906 .9062 12.44 2.844 18.59 4.969c8.344 2.875 12.78 12 9.906 20.34C156.3 210.7 147.2 215.1 138.8 212.2c-4.344-1.5-8.938-2.938-13.09-3.594c-11.22-1.656-20.72 .4062-21.5 4.906C103.2 219.2 113.6 221.5 124.4 224.6C141.4 229.5 173.1 238.5 167.3 271.9zM320 288c0 8.844-7.156 16-16 16S288 296.8 288 288V240l-19.19 25.59c-6.062 8.062-19.55 8.062-25.62 0L224 240V288c0 8.844-7.156 16-16 16S192 296.8 192 288V192c0-6.875 4.406-12.1 10.94-15.18c6.5-2.094 13.71 .0586 17.87 5.59L256 229.3l35.19-46.93c4.156-5.531 11.4-7.652 17.87-5.59C315.6 179 320 185.1 320 192V288zM439.3 271.9C435.9 291.1 418.3 304 393.1 304c-4.031 0-8.25-.3125-12.59-1c-8.25-1.25-16.56-4.25-23.88-6.906c-8.312-3-14.06-12.66-11.09-20.97s10.59-13.16 18.97-10.19c6.979 2.498 14.53 5.449 20.88 6.438c11.44 1.719 20.78-.375 21.56-4.938c1.053-5.912-10.84-8.396-24.56-12.34c-12.12-3.531-44.28-12.97-38.63-46c4.031-23.38 27.25-35.91 58-31.09c5.906 .9062 12.44 2.844 18.59 4.969c8.344 2.875 12.78 12 9.906 20.34c-2.875 8.344-11.94 12.81-20.34 9.906c-4.344-1.5-8.938-2.938-13.09-3.594c-11.19-1.656-20.72 .4062-21.5 4.906C375.2 219.2 385.6 221.5 396.4 224.6C413.4 229.5 445.1 238.5 439.3 271.9z" - } - }, - "free": [ - "solid" - ] - }, - "comments": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f086", - "aliases": { - "unicodes": { - "composite": [ - "f0e6", - "1f5ea" - ], - "secondary": [ - "10f086" - ] - } - }, - "label": "comments", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573217, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M416 176C416 78.8 322.9 0 208 0S0 78.8 0 176c0 39.57 15.62 75.96 41.67 105.4c-16.39 32.76-39.23 57.32-39.59 57.68c-2.1 2.205-2.67 5.475-1.441 8.354C1.9 350.3 4.602 352 7.66 352c38.35 0 70.76-11.12 95.74-24.04C134.2 343.1 169.8 352 208 352C322.9 352 416 273.2 416 176zM599.6 443.7C624.8 413.9 640 376.6 640 336C640 238.8 554 160 448 160c-.3145 0-.6191 .041-.9336 .043C447.5 165.3 448 170.6 448 176c0 98.62-79.68 181.2-186.1 202.5C282.7 455.1 357.1 512 448 512c33.69 0 65.32-8.008 92.85-21.98C565.2 502 596.1 512 632.3 512c3.059 0 5.76-1.725 7.02-4.605c1.229-2.879 .6582-6.148-1.441-8.354C637.6 498.7 615.9 475.3 599.6 443.7z" - }, - "regular": { - "last_modified": 1658443573020, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M208 0C322.9 0 416 78.8 416 176C416 273.2 322.9 352 208 352C189.3 352 171.2 349.7 153.9 345.8C123.3 364.8 79.13 384 24.95 384C14.97 384 5.93 378.1 2.018 368.9C-1.896 359.7-.0074 349.1 6.739 341.9C7.26 341.5 29.38 317.4 45.73 285.9C17.18 255.8 0 217.6 0 176C0 78.8 93.13 0 208 0zM164.6 298.1C179.2 302.3 193.8 304 208 304C296.2 304 368 246.6 368 176C368 105.4 296.2 48 208 48C119.8 48 48 105.4 48 176C48 211.2 65.71 237.2 80.57 252.9L104.1 277.8L88.31 308.1C84.74 314.1 80.73 321.9 76.55 328.5C94.26 323.4 111.7 315.5 128.7 304.1L145.4 294.6L164.6 298.1zM441.6 128.2C552 132.4 640 209.5 640 304C640 345.6 622.8 383.8 594.3 413.9C610.6 445.4 632.7 469.5 633.3 469.9C640 477.1 641.9 487.7 637.1 496.9C634.1 506.1 625 512 615 512C560.9 512 516.7 492.8 486.1 473.8C468.8 477.7 450.7 480 432 480C350 480 279.1 439.8 245.2 381.5C262.5 379.2 279.1 375.3 294.9 369.9C322.9 407.1 373.9 432 432 432C446.2 432 460.8 430.3 475.4 426.1L494.6 422.6L511.3 432.1C528.3 443.5 545.7 451.4 563.5 456.5C559.3 449.9 555.3 442.1 551.7 436.1L535.9 405.8L559.4 380.9C574.3 365.3 592 339.2 592 304C592 237.7 528.7 183.1 447.1 176.6L448 176C448 159.5 445.8 143.5 441.6 128.2H441.6z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "comments-dollar": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f653", - "aliases": { - "unicodes": { - "secondary": [ - "10f653" - ] - } - }, - "label": "Comments Dollar", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573217, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M416 176C416 78.8 322.9 0 208 0S0 78.8 0 176c0 39.57 15.62 75.96 41.67 105.4c-16.39 32.76-39.23 57.32-39.59 57.68c-2.1 2.205-2.67 5.475-1.441 8.354C1.9 350.3 4.602 352 7.66 352c38.35 0 70.76-11.12 95.74-24.04C134.2 343.1 169.8 352 208 352C322.9 352 416 273.2 416 176zM269.8 218.3C266.2 239.2 250.4 252.1 228 257.7V268c0 11.03-8.953 20-20 20s-20-8.969-20-20V257.2c-8.682-1.922-17.3-4.723-25.06-7.512l-4.266-1.5C148.3 244.5 142.8 233.1 146.5 222.7c3.688-10.41 15.11-15.81 25.52-12.22l4.469 1.625c7.844 2.812 16.72 6 23.66 7.031C213.8 221.3 229 219.3 230.4 211.5C231.3 206.4 231.8 203.6 202.5 195.2L196.7 193.5c-17.33-5.094-57.92-17-50.52-59.84C149.8 112.8 165.6 98.76 188 93.99V84c0-11.03 8.953-20 20-20s20 8.969 20 20v10.63c5.453 1.195 11.34 2.789 18.56 5.273C257 103.5 262.5 114.9 258.9 125.4C255.3 135.8 243.8 141.3 233.4 137.7c-5.859-2.031-12-4-17.59-4.844C202.2 130.8 186.1 132.7 185.6 140.5C184.8 144.1 184.3 148.2 207.1 155.2L213.5 156.8C235.8 163.1 277.3 175 269.8 218.3zM599.6 443.7C624.8 413.9 640 376.6 640 336C640 238.8 554 160 448 160c-.3145 0-.6191 .041-.9336 .043C447.5 165.3 448 170.6 448 176c0 98.62-79.68 181.2-186.1 202.5C282.7 455.1 357.1 512 448 512c33.69 0 65.32-8.008 92.85-21.98C565.2 502 596.1 512 632.3 512c3.059 0 5.76-1.725 7.02-4.605c1.229-2.879 .6582-6.148-1.441-8.354C637.6 498.7 615.9 475.3 599.6 443.7z" - } - }, - "free": [ - "solid" - ] - }, - "compact-disc": { - "changes": [ - "5.0.13", - "5.10.1", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f51f", - "aliases": { - "unicodes": { - "composite": [ - "1f4c0", - "1f5b8", - "1f4bf" - ], - "secondary": [ - "10f51f" - ] - } - }, - "label": "Compact Disc", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM80.72 256H79.63c-9.078 0-16.4-8.011-15.56-17.34C72.36 146 146.5 72.06 239.3 64.06C248.3 63.28 256 70.75 256 80.09c0 8.35-6.215 15.28-14.27 15.99C164.7 102.9 103.1 164.3 96.15 241.4C95.4 249.6 88.77 256 80.72 256zM256 351.1c-53.02 0-96-43-96-95.1s42.98-96 96-96s96 43 96 96S309 351.1 256 351.1zM256 224C238.3 224 224 238.2 224 256s14.3 32 32 32c17.7 0 32-14.25 32-32S273.7 224 256 224z" - } - }, - "free": [ - "solid" - ] - }, - "compass": { - "changes": [ - "3.2.0", - "5.0.0", - "5.2.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f14e", - "aliases": { - "unicodes": { - "composite": [ - "1f9ed" - ], - "secondary": [ - "10f14e" - ] - } - }, - "label": "Compass", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 256C288 273.7 273.7 288 256 288C238.3 288 224 273.7 224 256C224 238.3 238.3 224 256 224C273.7 224 288 238.3 288 256zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM325.1 306.7L380.6 162.4C388.1 142.1 369 123.9 349.6 131.4L205.3 186.9C196.8 190.1 190.1 196.8 186.9 205.3L131.4 349.6C123.9 369 142.1 388.1 162.4 380.6L306.7 325.1C315.2 321.9 321.9 315.2 325.1 306.7V306.7z" - }, - "regular": { - "last_modified": 1658443573020, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M306.7 325.1L162.4 380.6C142.1 388.1 123.9 369 131.4 349.6L186.9 205.3C190.1 196.8 196.8 190.1 205.3 186.9L349.6 131.4C369 123.9 388.1 142.1 380.6 162.4L325.1 306.7C321.9 315.2 315.2 321.9 306.7 325.1V325.1zM255.1 224C238.3 224 223.1 238.3 223.1 256C223.1 273.7 238.3 288 255.1 288C273.7 288 288 273.7 288 256C288 238.3 273.7 224 255.1 224V224zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "compass-drafting": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f568", - "aliases": { - "names": [ - "drafting-compass" - ], - "unicodes": { - "secondary": [ - "10f568" - ] - } - }, - "label": "Compass drafting", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 96C352 110.3 348.9 123.9 343.2 136.2L396 227.4C372.3 252.7 341.9 271.5 307.6 281L256 192H255.1L187.9 309.5C209.4 316.3 232.3 320 256 320C326.7 320 389.8 287.3 430.9 235.1C441.9 222.2 462.1 219.1 475.9 231C489.7 242.1 491.9 262.2 480.8 276C428.1 341.8 346.1 384 256 384C220.6 384 186.6 377.6 155.3 365.9L98.65 463.7C93.95 471.8 86.97 478.4 78.58 482.6L23.16 510.3C18.2 512.8 12.31 512.5 7.588 509.6C2.871 506.7 0 501.5 0 496V440.6C0 432.2 2.228 423.9 6.46 416.5L66.49 312.9C53.66 301.6 41.84 289.3 31.18 276C20.13 262.2 22.34 242.1 36.13 231C49.92 219.1 70.06 222.2 81.12 235.1C86.79 243.1 92.87 249.8 99.34 256.1L168.8 136.2C163.1 123.9 160 110.3 160 96C160 42.98 202.1 0 256 0C309 0 352 42.98 352 96L352 96zM256 128C273.7 128 288 113.7 288 96C288 78.33 273.7 64 256 64C238.3 64 224 78.33 224 96C224 113.7 238.3 128 256 128zM372.1 393.9C405.5 381.1 435.5 363.2 461.8 341L505.5 416.5C509.8 423.9 512 432.2 512 440.6V496C512 501.5 509.1 506.7 504.4 509.6C499.7 512.5 493.8 512.8 488.8 510.3L433.4 482.6C425 478.4 418.1 471.8 413.3 463.7L372.1 393.9z" - } - }, - "free": [ - "solid" - ] - }, - "compress": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f066", - "aliases": { - "unicodes": { - "secondary": [ - "10f066" - ] - } - }, - "label": "Compress", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M128 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32v-96C160 334.3 145.7 320 128 320zM416 320h-96c-17.69 0-32 14.31-32 32v96c0 17.69 14.31 32 32 32s32-14.31 32-32v-64h64c17.69 0 32-14.31 32-32S433.7 320 416 320zM320 192h96c17.69 0 32-14.31 32-32s-14.31-32-32-32h-64V64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96C288 177.7 302.3 192 320 192zM128 32C110.3 32 96 46.31 96 64v64H32C14.31 128 0 142.3 0 160s14.31 32 32 32h96c17.69 0 32-14.31 32-32V64C160 46.31 145.7 32 128 32z" - } - }, - "free": [ - "solid" - ] - }, - "computer": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e5", - "label": "Computer", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M400 32C426.5 32 448 53.49 448 80V336C448 362.5 426.5 384 400 384H266.7L277.3 416H352C369.7 416 384 430.3 384 448C384 465.7 369.7 480 352 480H96C78.33 480 64 465.7 64 448C64 430.3 78.33 416 96 416H170.7L181.3 384H48C21.49 384 0 362.5 0 336V80C0 53.49 21.49 32 48 32H400zM64 96V320H384V96H64zM592 32C618.5 32 640 53.49 640 80V432C640 458.5 618.5 480 592 480H528C501.5 480 480 458.5 480 432V80C480 53.49 501.5 32 528 32H592zM544 96C535.2 96 528 103.2 528 112C528 120.8 535.2 128 544 128H576C584.8 128 592 120.8 592 112C592 103.2 584.8 96 576 96H544zM544 192H576C584.8 192 592 184.8 592 176C592 167.2 584.8 160 576 160H544C535.2 160 528 167.2 528 176C528 184.8 535.2 192 544 192zM560 400C577.7 400 592 385.7 592 368C592 350.3 577.7 336 560 336C542.3 336 528 350.3 528 368C528 385.7 542.3 400 560 400z" - } - }, - "free": [ - "solid" - ] - }, - "computer-mouse": { - "changes": [ - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f8cc", - "aliases": { - "names": [ - "mouse" - ], - "unicodes": { - "composite": [ - "1f5b1" - ], - "secondary": [ - "10f8cc" - ] - } - }, - "label": "Computer mouse", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 352c0 88.38 71.63 160 160 160h64c88.38 0 160-71.63 160-160V224H0V352zM176 0H160C71.63 0 0 71.62 0 160v32h176V0zM224 0h-16v192H384V160C384 71.62 312.4 0 224 0z" - } - }, - "free": [ - "solid" - ] - }, - "confluence": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f78d", - "label": "Confluence", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572474, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M2.3 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1 .1-.2 .1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8 .4 21.7-7.7 .1-.1 .1-.3 .2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3C127.5 179 44.6 345.3 2.3 412.2zm507.4-312.1c4.5-7.6 2.1-17.5-5.5-22.2L398.4 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2 .3-.4 .6-.6 1-67.3 112.6-81.1 95.6-280.6 .9-8.1-3.9-17.8-.4-21.7 7.7-.1 .1-.1 .3-.2 .4L22.2 141.3c-3.6 8.1 .1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z" - } - }, - "free": [ - "brands" - ] - }, - "connectdevelop": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f20e", - "label": "Connect Develop", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M550.5 241l-50.09-86.79c1.071-2.142 1.875-4.553 1.875-7.232 0-8.036-6.696-14.73-14.73-15l-55.45-95.89c.536-1.607 1.071-3.214 1.071-4.821 0-8.571-6.964-15.27-15.27-15.27-4.821 0-8.839 2.143-11.79 5.625H299.5C296.8 18.14 292.8 16 288 16s-8.839 2.143-11.52 5.625H170.4C167.5 18.14 163.4 16 158.6 16c-8.303 0-15.27 6.696-15.27 15.27 0 1.607 .536 3.482 1.072 4.821l-55.98 97.23c-5.356 2.41-9.107 7.5-9.107 13.66 0 .535 .268 1.071 .268 1.607l-53.3 92.14c-7.232 1.339-12.59 7.5-12.59 15 0 7.232 5.089 13.39 12.05 15l55.18 95.36c-.536 1.607-.804 2.946-.804 4.821 0 7.232 5.089 13.39 12.05 14.73l51.7 89.73c-.536 1.607-1.071 3.482-1.071 5.357 0 8.571 6.964 15.27 15.27 15.27 4.821 0 8.839-2.143 11.52-5.357h106.9C279.2 493.9 283.4 496 288 496s8.839-2.143 11.52-5.357h107.1c2.678 2.946 6.696 4.821 10.98 4.821 8.571 0 15.27-6.964 15.27-15.27 0-1.607-.267-2.946-.803-4.285l51.7-90.27c6.964-1.339 12.05-7.5 12.05-14.73 0-1.607-.268-3.214-.804-4.821l54.91-95.36c6.964-1.339 12.32-7.5 12.32-15-.002-7.232-5.092-13.39-11.79-14.73zM153.5 450.7l-43.66-75.8h43.66v75.8zm0-83.84h-43.66c-.268-1.071-.804-2.142-1.339-3.214l44.1-47.41v50.62zm0-62.41l-50.36 53.3c-1.339-.536-2.679-1.34-4.018-1.607L43.45 259.8c.535-1.339 .535-2.679 .535-4.018s0-2.41-.268-3.482l51.97-90c2.679-.268 5.357-1.072 7.768-2.679l50.09 51.97v92.95zm0-102.3l-45.8-47.41c1.339-2.143 2.143-4.821 2.143-7.767 0-.268-.268-.804-.268-1.072l43.93-15.8v72.05zm0-80.63l-43.66 15.8 43.66-75.54v59.73zm326.5 39.11l.804 1.339L445.5 329.1l-63.75-67.23 98.04-101.5 .268 .268zM291.8 355.1l11.52 11.79H280.5l11.25-11.79zm-.268-11.25l-83.3-85.45 79.55-84.38 83.04 87.59-79.29 82.23zm5.357 5.893l79.29-82.23 67.5 71.25-5.892 28.13H313.7l-16.88-17.14zM410.4 44.39c1.071 .536 2.142 1.072 3.482 1.34l57.86 100.7v.536c0 2.946 .803 5.624 2.143 7.767L376.4 256l-83.04-87.59L410.4 44.39zm-9.107-2.143L287.7 162.5l-57.05-60.27 166.3-60h4.287zm-123.5 0c2.678 2.678 6.16 4.285 10.18 4.285s7.5-1.607 10.18-4.285h75L224.8 95.82 173.9 42.25h103.9zm-116.2 5.625l1.071-2.142a33.83 33.83 0 0 0 2.679-.804l51.16 53.84-54.91 19.82V47.88zm0 79.29l60.8-21.96 59.73 63.21-79.55 84.11-40.98-42.05v-83.3zm0 92.68L198 257.6l-36.43 38.3v-76.07zm0 87.86l42.05-44.46 82.77 85.98-17.14 17.68H161.6v-59.2zm6.964 162.1c-1.607-1.607-3.482-2.678-5.893-3.482l-1.071-1.607v-89.73h99.91l-91.61 94.82h-1.339zm129.9 0c-2.679-2.41-6.428-4.285-10.45-4.285s-7.767 1.875-10.45 4.285h-96.43l91.61-94.82h38.3l91.61 94.82H298.4zm120-11.79l-4.286 7.5c-1.339 .268-2.41 .803-3.482 1.339l-89.2-91.88h114.4l-17.41 83.04zm12.86-22.23l12.86-60.8h21.96l-34.82 60.8zm34.82-68.84h-20.36l4.553-21.16 17.14 18.21c-.535 .803-1.071 1.874-1.339 2.946zm66.16-107.4l-55.45 96.7c-1.339 .535-2.679 1.071-4.018 1.874l-20.63-21.96 34.55-163.9 45.8 79.29c-.267 1.339-.803 2.678-.803 4.285 0 1.339 .268 2.411 .536 3.75z" - } - }, - "free": [ - "brands" - ] - }, - "contao": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f26d", - "label": "Contao", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M45.4 305c14.4 67.1 26.4 129 68.2 175H34c-18.7 0-34-15.2-34-34V66c0-18.7 15.2-34 34-34h57.7C77.9 44.6 65.6 59.2 54.8 75.6c-45.4 70-27 146.8-9.4 229.4zM478 32h-90.2c21.4 21.4 39.2 49.5 52.7 84.1l-137.1 29.3c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6H478c18.7 0 34-15.2 34-34V66c0-18.8-15.2-34-34-34z" - } - }, - "free": [ - "brands" - ] - }, - "cookie": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f563", - "aliases": { - "unicodes": { - "composite": [ - "1f36a" - ], - "secondary": [ - "10f563" - ] - } - }, - "label": "Cookie", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M494.5 254.8l-11.37-71.48c-4.102-25.9-16.29-49.8-34.8-68.32l-51.33-51.33c-18.52-18.52-42.3-30.7-68.2-34.8L256.9 17.53C231.2 13.42 204.7 17.64 181.5 29.48L116.7 62.53C93.23 74.36 74.36 93.35 62.41 116.7L29.51 181.2c-11.84 23.44-16.08 50.04-11.98 75.94l11.37 71.48c4.101 25.9 16.29 49.77 34.8 68.41l51.33 51.33c18.52 18.4 42.3 30.61 68.2 34.72l71.84 11.37c25.78 4.102 52.27-.1173 75.47-11.95l64.8-33.05c23.32-11.84 42.3-30.82 54.26-54.14l32.81-64.57C494.4 307.3 498.6 280.8 494.5 254.8zM176 367.1c-17.62 0-31.1-14.37-31.1-31.1c0-17.62 14.37-31.1 31.1-31.1s31.1 14.37 31.1 31.1C208 353.6 193.6 367.1 176 367.1zM208 208c-17.62 0-31.1-14.37-31.1-31.1s14.38-31.1 31.1-31.1c17.62 0 31.1 14.37 31.1 31.1S225.6 208 208 208zM368 335.1c-17.62 0-31.1-14.37-31.1-31.1c0-17.62 14.37-31.1 31.1-31.1s31.1 14.37 31.1 31.1C400 321.6 385.6 335.1 368 335.1z" - } - }, - "free": [ - "solid" - ] - }, - "cookie-bite": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f564", - "aliases": { - "unicodes": { - "secondary": [ - "10f564" - ] - } - }, - "label": "Cookie Bite", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573218, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M494.6 255.9c-65.63-.8203-118.6-54.14-118.6-119.9c-65.74 0-119.1-52.97-119.8-118.6c-25.66-3.867-51.8 .2346-74.77 12.07L116.7 62.41C93.35 74.36 74.36 93.35 62.41 116.7L29.6 181.2c-11.95 23.44-16.17 49.92-12.07 75.94l11.37 71.48c4.102 25.9 16.29 49.8 34.81 68.32l51.36 51.39C133.6 466.9 157.3 479 183.2 483.1l71.84 11.37c25.9 4.101 52.27-.1172 75.59-11.95l64.81-33.05c23.32-11.84 42.31-30.82 54.14-54.14l32.93-64.57C494.3 307.7 498.5 281.4 494.6 255.9zM176 367.1c-17.62 0-32-14.37-32-31.1s14.38-31.1 32-31.1s32 14.37 32 31.1S193.6 367.1 176 367.1zM208 208c-17.62 0-32-14.37-32-31.1s14.38-31.1 32-31.1s32 14.37 32 31.1S225.6 208 208 208zM368 335.1c-17.62 0-32-14.37-32-31.1s14.38-31.1 32-31.1s32 14.37 32 31.1S385.6 335.1 368 335.1z" - } - }, - "free": [ - "solid" - ] - }, - "copy": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0c5", - "aliases": { - "unicodes": { - "secondary": [ - "10f0c5" - ] - } - }, - "label": "Copy", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573219, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M384 96L384 0h-112c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48H464c26.51 0 48-21.49 48-48V128h-95.1C398.4 128 384 113.6 384 96zM416 0v96h96L416 0zM192 352V128h-144c-26.51 0-48 21.49-48 48v288c0 26.51 21.49 48 48 48h192c26.51 0 48-21.49 48-48L288 416h-32C220.7 416 192 387.3 192 352z" - }, - "regular": { - "last_modified": 1658443573021, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.6 70.63l-61.25-61.25C435.4 3.371 427.2 0 418.7 0H255.1c-35.35 0-64 28.66-64 64l.0195 256C192 355.4 220.7 384 256 384h192c35.2 0 64-28.8 64-64V93.25C512 84.77 508.6 76.63 502.6 70.63zM464 320c0 8.836-7.164 16-16 16H255.1c-8.838 0-16-7.164-16-16L239.1 64.13c0-8.836 7.164-16 16-16h128L384 96c0 17.67 14.33 32 32 32h47.1V320zM272 448c0 8.836-7.164 16-16 16H63.1c-8.838 0-16-7.164-16-16L47.98 192.1c0-8.836 7.164-16 16-16H160V128H63.99c-35.35 0-64 28.65-64 64l.0098 256C.002 483.3 28.66 512 64 512h192c35.2 0 64-28.8 64-64v-32h-47.1L272 448z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "copyright": { - "changes": [ - "4.2.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1f9", - "aliases": { - "unicodes": { - "composite": [ - "a9" - ], - "secondary": [ - "10f1f9" - ] - } - }, - "label": "Copyright", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573219, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM199.2 312.6c14.94 15.06 34.8 23.38 55.89 23.38c.0313 0 0 0 0 0c21.06 0 40.92-8.312 55.83-23.38c9.375-9.375 24.53-9.469 33.97-.1562c9.406 9.344 9.469 24.53 .1562 33.97c-24 24.22-55.95 37.56-89.95 37.56c0 0 .0313 0 0 0c-33.97 0-65.95-13.34-89.95-37.56c-49.44-49.88-49.44-131 0-180.9c24-24.22 55.98-37.56 89.95-37.56c.0313 0 0 0 0 0c34 0 65.95 13.34 89.95 37.56c9.312 9.438 9.25 24.62-.1562 33.97c-9.438 9.344-24.59 9.188-33.97-.1562c-14.91-15.06-34.77-23.38-55.83-23.38c0 0 .0313 0 0 0c-21.09 0-40.95 8.312-55.89 23.38C168.3 230.6 168.3 281.4 199.2 312.6z" - }, - "regular": { - "last_modified": 1658443573021, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM255.1 176C255.1 176 255.1 176 255.1 176c21.06 0 40.92 8.312 55.83 23.38c9.375 9.344 24.53 9.5 33.97 .1562c9.406-9.344 9.469-24.53 .1562-33.97c-24-24.22-55.95-37.56-89.95-37.56c0 0 .0313 0 0 0c-33.97 0-65.95 13.34-89.95 37.56c-49.44 49.88-49.44 131 0 180.9c24 24.22 55.98 37.56 89.95 37.56c.0313 0 0 0 0 0c34 0 65.95-13.34 89.95-37.56c9.312-9.438 9.25-24.62-.1562-33.97c-9.438-9.312-24.59-9.219-33.97 .1562c-14.91 15.06-34.77 23.38-55.83 23.38c0 0 .0313 0 0 0c-21.09 0-40.95-8.312-55.89-23.38c-30.94-31.22-30.94-82.03 0-113.3C214.2 184.3 234 176 255.1 176z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "cotton-bureau": { - "changes": [ - "5.10.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f89e", - "label": "Cotton Bureau", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M474.3 330.4c-23.66 91.85-94.23 144.6-201.9 148.4V429.6c0-48 26.41-74.39 74.39-74.39 62 0 99.2-37.2 99.2-99.21 0-61.37-36.53-98.28-97.38-99.06-33-69.32-146.5-64.65-177.2 0C110.5 157.7 74 194.6 74 256c0 62.13 37.27 99.41 99.4 99.41 48 0 74.55 26.23 74.55 74.39V479c-134.4-5-211.1-85.07-211.1-223 0-141.8 81.35-223.2 223.2-223.2 114.8 0 189.8 53.2 214.7 148.8H500C473.9 71.51 388.2 8 259.8 8 105 8 12 101.2 12 255.8 12 411.1 105.2 504.3 259.8 504c128.3 0 213.9-63.81 239.7-173.6zM357 182.3c41.37 3.45 64.2 29 64.2 73.67 0 48-26.43 74.41-74.4 74.41-28.61 0-49.33-9.59-61.59-27.33 83.06-16.55 75.59-99.67 71.79-120.8zm-81.68 97.36c-2.46-10.34-16.33-87 56.23-97 2.27 10.09 16.52 87.11-56.26 97zM260 132c28.61 0 49 9.67 61.44 27.61-28.36 5.48-49.36 20.59-61.59 43.45-12.23-22.86-33.23-38-61.6-43.45 12.41-17.69 33.27-27.35 61.57-27.35zm-71.52 50.72c73.17 10.57 58.91 86.81 56.49 97-72.41-9.84-59-86.95-56.25-97zM173.2 330.4c-48 0-74.4-26.4-74.4-74.41 0-44.36 22.86-70 64.22-73.67-6.75 37.2-1.38 106.5 71.65 120.8-12.14 17.63-32.84 27.3-61.14 27.3zm53.21 12.39A80.8 80.8 0 0 0 260 309.3c7.77 14.49 19.33 25.54 33.82 33.55a80.28 80.28 0 0 0 -33.58 33.83c-8-14.5-19.07-26.23-33.56-33.83z" - } - }, - "free": [ - "brands" - ] - }, - "couch": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4b8", - "aliases": { - "unicodes": { - "secondary": [ - "10f4b8" - ] - } - }, - "label": "Couch", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573219, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M592 224C565.5 224 544 245.5 544 272V352H96V272C96 245.5 74.51 224 48 224S0 245.5 0 272v192C0 472.8 7.164 480 16 480h64c8.836 0 15.1-7.164 15.1-16L96 448h448v16c0 8.836 7.164 16 16 16h64c8.836 0 16-7.164 16-16v-192C640 245.5 618.5 224 592 224zM128 272V320h384V272c0-38.63 27.53-70.95 64-78.38V160c0-70.69-57.31-128-128-128H191.1c-70.69 0-128 57.31-128 128L64 193.6C100.5 201.1 128 233.4 128 272z" - } - }, - "free": [ - "solid" - ] - }, - "cow": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6c8", - "aliases": { - "unicodes": { - "composite": [ - "1f404" - ], - "secondary": [ - "10f6c8" - ] - } - }, - "label": "Cow", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573219, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M634 276.8l-9.999-13.88L624 185.7c0-11.88-12.5-19.49-23.12-14.11c-10.88 5.375-19.5 13.5-26.38 23l-65.75-90.92C490.6 78.71 461.8 64 431 64H112C63.37 64 24 103.4 24 152v86.38C9.5 250.1 0 267.9 0 288v32h8c35.38 0 64-28.62 64-64L72 152c0-16.88 10.5-31.12 25.38-37C96.5 119.1 96 123.5 96 128l.0002 304c0 8.875 7.126 16 16 16h63.1c8.875 0 16-7.125 16-16l.0006-112c9.375 9.375 20.25 16.5 32 21.88V368c0 8.875 7.252 16 16 16c8.875 0 15.1-7.125 15.1-16v-17.25c9.125 1 12.88 2.25 32-.125V368c0 8.875 7.25 16 16 16c8.875 0 16-7.125 16-16v-26.12C331.8 336.5 342.6 329.2 352 320l-.0012 112c0 8.875 7.125 16 15.1 16h64c8.75 0 16-7.125 16-16V256l31.1 32l.0006 41.55c0 12.62 3.752 24.95 10.75 35.45l41.25 62C540.8 440.1 555.5 448 571.4 448c22.5 0 41.88-15.88 46.25-38l21.75-108.6C641.1 292.8 639.1 283.9 634 276.8zM377.3 167.4l-22.88 22.75C332.5 211.8 302.9 224 272.1 224S211.5 211.8 189.6 190.1L166.8 167.4C151 151.8 164.4 128 188.9 128h166.2C379.6 128 393 151.8 377.3 167.4zM576 352c-8.875 0-16-7.125-16-16s7.125-16 16-16s16 7.125 16 16S584.9 352 576 352z" - } - }, - "free": [ - "solid" - ] - }, - "cpanel": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f388", - "label": "cPanel", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2h-37c-7.1 0-12.5 4.5-14.3 10.9L73.1 320l24.7-.1c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7h19.8c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6h-10.3c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8h32c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28h18.6c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6h-40C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320h12.4l7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3H53.8c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8h-77.9l-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5h57.5c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3h-34.9c-5.3 0-5.3-7.9 0-7.9h21.6c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2h-48.4c-39.2 0-43.6 63.8-.7 63.8l57.5 .2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179h-18.9c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zm-236.3 34.7v.1h-48.3l-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3h18.9c4.8 0 9.2-3 10.4-7.8l17.2-64H395c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3H428c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6h32.9c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3h-21.6c-7 0-12.6 4.6-14.2 10.8l-3.5 13h53.4c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8h-47.3c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7h66.7c6.8 0 12.3-4.5 14.2-10.7l5.7-21z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons": { - "changes": [ - "4.4.0", - "5.0.0", - "5.0.11", - "5.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f25e", - "label": "Creative Commons", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M245.8 214.9l-33.22 17.28c-9.43-19.58-25.24-19.93-27.46-19.93-22.13 0-33.22 14.61-33.22 43.84 0 23.57 9.21 43.84 33.22 43.84 14.47 0 24.65-7.09 30.57-21.26l30.55 15.5c-6.17 11.51-25.69 38.98-65.1 38.98-22.6 0-73.96-10.32-73.96-77.05 0-58.69 43-77.06 72.63-77.06 30.72-.01 52.7 11.95 65.99 35.86zm143.1 0l-32.78 17.28c-9.5-19.77-25.72-19.93-27.9-19.93-22.14 0-33.22 14.61-33.22 43.84 0 23.55 9.23 43.84 33.22 43.84 14.45 0 24.65-7.09 30.54-21.26l31 15.5c-2.1 3.75-21.39 38.98-65.09 38.98-22.69 0-73.96-9.87-73.96-77.05 0-58.67 42.97-77.06 72.63-77.06 30.71-.01 52.58 11.95 65.56 35.86zM247.6 8.05C104.7 8.05 0 123.1 0 256c0 138.5 113.6 248 247.6 248 129.9 0 248.4-100.9 248.4-248 0-137.9-106.6-248-248.4-248zm.87 450.8c-112.5 0-203.7-93.04-203.7-202.8 0-105.4 85.43-203.3 203.7-203.3 112.5 0 202.8 89.46 202.8 203.3-.01 121.7-99.68 202.8-202.8 202.8z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-by": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4e7", - "label": "Creative Commons Attribution", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M314.9 194.4v101.4h-28.3v120.5h-77.1V295.9h-28.3V194.4c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7H299c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-101.5-63.7c0-23.3 11.5-35 34.5-35s34.5 11.7 34.5 35c0 23-11.5 34.5-34.5 34.5s-34.5-11.5-34.5-34.5zM247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-nc": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4e8", - "label": "Creative Commons Noncommercial", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C387.4 8 496 115.9 496 256c0 147.2-118.5 248-248.4 248C113.1 504 0 393.2 0 256 0 123.1 104.7 8 247.6 8zM55.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4v38.1h-28.8V368c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM248.4 52.3c-38.4 0-112.4 8.7-170.5 93l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3v-38.1h28.8v38.1c22.7 1.2 43.4 8.9 62 23L295 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-nc-eu": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4e9", - "label": "Creative Commons Noncommercial (Euro Sign)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.7 8C103.6 8 0 124.8 0 256c0 136.3 111.7 248 247.7 248C377.9 504 496 403.1 496 256 496 117 388.4 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1h-4.7v29.5h23.3c0 6.2-.4 3.2-.4 19.5h-22.8v29.5h27c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2h90.3l128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zm-16.7-190.6l-.5-.4 .9 .4h-.4zm77.2-19.5h3.7v-29.5h-70.3l-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1l-81.6-36.1c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9l-136.1-60.5z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-nc-jp": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4ea", - "label": "Creative Commons Noncommercial (Yen Sign)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.7 8C103.6 8 0 124.8 0 256c0 136.4 111.8 248 247.7 248C377.9 504 496 403.2 496 256 496 117.2 388.5 8 247.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5h-27.9v38.6h58.1l5.7 11.8v18.7h-63.8V360h63.8v56h61.7v-56h64.2v-35.7l81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3h-57.6v-18.7l2.9-5.6 54.7 24.3zm6.5-51.4v-17.8h-38.6l63-116H301l-43.4 96-23-10.2-39.6-85.7h-65.8l27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59l-101-45.1z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-nd": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4eb", - "label": "Creative Commons No Derivative Works", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm94 144.3v42.5H162.1V197h180.3zm0 79.8v42.5H162.1v-42.5h180.3z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-pd": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4ec", - "label": "Creative Commons Public Domain", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L297 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6l-74.9-33.4c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-pd-alt": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4ed", - "label": "Alternate Creative Commons Public Domain", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C104.7 8 0 123.1 0 256c0 138.5 113.6 248 247.6 248C377.5 504 496 403.1 496 256 496 118.1 389.4 8 247.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM316.7 186h-53.2v137.2h53.2c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5h-19.9v-79.7l19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM203.7 186h-68.2v137.3h34.6V279h27c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3h-29.2v-41.6h28.3c30.9 0 28.8 41.6 .9 41.6z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-remix": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4ee", - "label": "Creative Commons Remix", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm161.7 207.7l4.9 2.2v70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5v-63.8l59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7L361 178.5v61.6l49.1 20.3zm-70.4 81.5v-43.8h-.4v-1.8l-113.8-46.5V295l113.8 46.9v-.4l.4 .4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1v-43L355.2 298v43.4l44.3-19z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-sa": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4ef", - "label": "Creative Commons Share Alike", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM137.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97h62.5c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8h18.2l-49.2 49.2-49-49.2h19.4z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-sampling": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f0", - "label": "Creative Commons Sampling", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6 5.9 0 10.6 4.7 10.6 10.6 0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6h58v21.3h-50.9l-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9 .6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9 .5 6.7-5.8-87.7l-5.8 94.8c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12l-5.8-87.7c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6L182 348c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L149.7 272c-2 4-3.5 8.4-11.1 8.4H87.2v-21.3H132l13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6 .5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6 .6 0 10.6 .7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-sampling-plus": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f1", - "label": "Creative Commons Sampling +", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1 .4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7H87.5v23.2h51.3c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2 .2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1 .1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4h50.5V258l-58.4 .3zm-78 5.2h-21.9v21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5v-21.9h-21.9c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5h21.9v-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5v21.9h21.9c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-share": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f2", - "label": "Creative Commons Share", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7v182.5c0 7.7-6.1 13.7-13.7 13.7H214.3c-7.7 0-13.7-6-13.7-13.7v-54h-54c-7.8 0-13.7-6-13.7-13.7V131.1c0-8.2 6.6-12.7 12.4-13.7h136.4c7.7 0 13.7 6 13.7 13.7v54h54zM159.9 300.3h40.7V198.9c0-7.4 5.8-12.6 12-13.7h55.8v-40.3H159.9v155.4zm176.2-88.1H227.6v155.4h108.5V212.2z" - } - }, - "free": [ - "brands" - ] - }, - "creative-commons-zero": { - "changes": [ - "5.0.11", - "5.4.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f3", - "label": "Creative Commons CC0", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572475, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M247.6 8C389.4 8 496 118.1 496 256c0 147.1-118.5 248-248.4 248C113.6 504 0 394.5 0 256 0 123.1 104.7 8 247.6 8zm.8 44.7C130.2 52.7 44.7 150.6 44.7 256c0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8 0 65.5 20.6 142.8 102.5 142.8S350.5 321.5 350.5 256c0-65.5-20.6-142.8-102.5-142.8zm0 53.9c3.3 0 6.4 .5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9l-54.5 100.2c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z" - } - }, - "free": [ - "brands" - ] - }, - "credit-card": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f09d", - "aliases": { - "names": [ - "credit-card-alt" - ], - "unicodes": { - "composite": [ - "f283", - "1f4b3" - ], - "secondary": [ - "10f09d" - ] - } - }, - "label": "Credit Card", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 32C547.3 32 576 60.65 576 96V128H0V96C0 60.65 28.65 32 64 32H512zM576 416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V224H576V416zM112 352C103.2 352 96 359.2 96 368C96 376.8 103.2 384 112 384H176C184.8 384 192 376.8 192 368C192 359.2 184.8 352 176 352H112zM240 384H368C376.8 384 384 376.8 384 368C384 359.2 376.8 352 368 352H240C231.2 352 224 359.2 224 368C224 376.8 231.2 384 240 384z" - }, - "regular": { - "last_modified": 1658443573022, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M168 336C181.3 336 192 346.7 192 360C192 373.3 181.3 384 168 384H120C106.7 384 96 373.3 96 360C96 346.7 106.7 336 120 336H168zM360 336C373.3 336 384 346.7 384 360C384 373.3 373.3 384 360 384H248C234.7 384 224 373.3 224 360C224 346.7 234.7 336 248 336H360zM512 32C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H512zM512 80H64C55.16 80 48 87.16 48 96V128H528V96C528 87.16 520.8 80 512 80zM528 224H48V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V224z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "critical-role": { - "changes": [ - "5.4.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f6c9", - "label": "Critical Role", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M225.8 0c.26 .15 216.6 124.5 217.1 124.7 3 1.18 3.7 3.46 3.7 6.56q-.11 125.2 0 250.4a5.88 5.88 0 0 1 -3.38 5.78c-21.37 12-207.9 118.3-218.9 124.6h-3C142 466.3 3.08 386.6 2.93 386.5a3.29 3.29 0 0 1 -1.88-3.24c0-.87 0-225.9-.05-253.1a5 5 0 0 1 2.93-4.93C27.19 112.1 213.2 6 224.1 0zM215.4 20.42l-.22-.16Q118.1 75.55 21 130.9c0 .12 .08 .23 .13 .35l30.86 11.64c-7.71 6-8.32 6-10.65 5.13-.1 0-24.17-9.28-26.8-10v230.4c.88-1.41 64.07-110.9 64.13-111 1.62-2.82 3-1.92 9.12-1.52 1.4 .09 1.48 .22 .78 1.42-41.19 71.33-36.4 63-67.48 116.9-.81 1.4-.61 1.13 1.25 1.13h186.5c1.44 0 1.69-.23 1.7-1.64v-8.88c0-1.34 2.36-.81-18.37-1-7.46-.07-14.14-3.22-21.38-12.7-7.38-9.66-14.62-19.43-21.85-29.21-2.28-3.08-3.45-2.38-16.76-2.38-1.75 0-1.78 0-1.76 1.82 .29 26.21 .15 25.27 1 32.66 .52 4.37 2.16 4.2 9.69 4.81 3.14 .26 3.88 4.08 .52 4.92-1.57 .39-31.6 .51-33.67-.1a2.42 2.42 0 0 1 .3-4.73c3.29-.76 6.16 .81 6.66-4.44 1.3-13.66 1.17-9 1.1-79.42 0-10.82-.35-12.58-5.36-13.55-1.22-.24-3.54-.16-4.69-.55-2.88-1-2-4.84 1.77-4.85 33.67 0 46.08-1.07 56.06 4.86 7.74 4.61 12 11.48 12.51 20.4 .88 14.59-6.51 22.35-15 32.59a1.46 1.46 0 0 0 0 2.22c2.6 3.25 5 6.63 7.71 9.83 27.56 33.23 24.11 30.54 41.28 33.06 .89 .13 1-.42 1-1.15v-11c0-1 .32-1.43 1.41-1.26a72.37 72.37 0 0 0 23.58-.3c1.08-.15 1.5 .2 1.48 1.33 0 .11 .88 26.69 .87 26.8-.05 1.52 .67 1.62 1.89 1.62h186.7Q386.5 304.6 346 234.3c2.26-.66-.4 0 6.69-1.39 2-.39 2.05-.41 3.11 1.44 7.31 12.64 77.31 134 77.37 134.1V138c-1.72 .5-103.3 38.72-105.8 39.68-1.08 .42-1.55 .2-1.91-.88-.63-1.9-1.34-3.76-2.09-5.62-.32-.79-.09-1.13 .65-1.39 .1 0 95.53-35.85 103-38.77-65.42-37.57-130.6-75-196-112.6l86.82 150.4-.28 .33c-9.57-.9-10.46-1.6-11.8-3.94-1-1.69-73.5-127.7-82-142.2-9.1 14.67-83.56 146.2-85.37 146.3-2.93 .17-5.88 .08-9.25 .08q43.25-74.74 86.18-149zm51.93 129.9a37.68 37.68 0 0 0 5.54-.85c1.69-.3 2.53 .2 2.6 1.92 0 .11 .07 19.06-.86 20.45s-1.88 1.22-2.6-.19c-5-9.69 6.22-9.66-39.12-12-.7 0-1 .23-1 .93 0 .13 3.72 122 3.73 122.1 0 .89 .52 1.2 1.21 1.51a83.92 83.92 0 0 1 8.7 4.05c7.31 4.33 11.38 10.84 12.41 19.31 1.44 11.8-2.77 35.77-32.21 37.14-2.75 .13-28.26 1.08-34.14-23.25-4.66-19.26 8.26-32.7 19.89-36.4a2.45 2.45 0 0 0 2-2.66c.1-5.63 3-107.1 3.71-121.3 .05-1.08-.62-1.16-1.35-1.15-32.35 .52-36.75-.34-40.22 8.52-2.42 6.18-4.14 1.32-3.95 .23q1.59-9 3.31-18c.4-2.11 1.43-2.61 3.43-1.86 5.59 2.11 6.72 1.7 37.25 1.92 1.73 0 1.78-.08 1.82-1.85 .68-27.49 .58-22.59 1-29.55a2.69 2.69 0 0 0 -1.63-2.8c-5.6-2.91-8.75-7.55-8.9-13.87-.35-14.81 17.72-21.67 27.38-11.51 6.84 7.19 5.8 18.91-2.45 24.15a4.35 4.35 0 0 0 -2.22 4.34c0 .59-.11-4.31 1 30.05 0 .9 .43 1.12 1.24 1.11 .1 0 23-.09 34.47-.37zM68.27 141.7c19.84-4.51 32.68-.56 52.49 1.69 2.76 .31 3.74 1.22 3.62 4-.21 5-1.16 22.33-1.24 23.15a2.65 2.65 0 0 1 -1.63 2.34c-4.06 1.7-3.61-4.45-4-7.29-3.13-22.43-73.87-32.7-74.63 25.4-.31 23.92 17 53.63 54.08 50.88 27.24-2 19-20.19 24.84-20.47a2.72 2.72 0 0 1 3 3.36c-1.83 10.85-3.42 18.95-3.45 19.15-1.54 9.17-86.7 22.09-93.35-42.06-2.71-25.85 10.44-53.37 40.27-60.15zm80 87.67h-19.49a2.57 2.57 0 0 1 -2.66-1.79c2.38-3.75 5.89 .92 5.86-6.14-.08-25.75 .21-38 .23-40.1 0-3.42-.53-4.65-3.32-4.94-7-.72-3.11-3.37-1.11-3.38 11.84-.1 22.62-.18 30.05 .72 8.77 1.07 16.71 12.63 7.93 22.62-2 2.25-4 4.42-6.14 6.73 .95 1.15 6.9 8.82 17.28 19.68 2.66 2.78 6.15 3.51 9.88 3.13a2.21 2.21 0 0 0 2.23-2.12c.3-3.42 .26 4.73 .45-40.58 0-5.65-.34-6.58-3.23-6.83-3.95-.35-4-2.26-.69-3.37l19.09-.09c.32 0 4.49 .53 1 3.38 0 .05-.16 0-.24 0-3.61 .26-3.94 1-4 4.62-.27 43.93 .07 40.23 .41 42.82 .11 .84 .27 2.23 5.1 2.14 2.49 0 3.86 3.37 0 3.4-10.37 .08-20.74 0-31.11 .07-10.67 0-13.47-6.2-24.21-20.82-1.6-2.18-8.31-2.36-8.2-.37 .88 16.47 0 17.78 4 17.67 4.75-.1 4.73 3.57 .83 3.55zm275-10.15c-1.21 7.13 .17 10.38-5.3 10.34-61.55-.42-47.82-.22-50.72-.31a18.4 18.4 0 0 1 -3.63-.73c-2.53-.6 1.48-1.23-.38-5.6-1.43-3.37-2.78-6.78-4.11-10.19a1.94 1.94 0 0 0 -2-1.44 138 138 0 0 0 -14.58 .07 2.23 2.23 0 0 0 -1.62 1.06c-1.58 3.62-3.07 7.29-4.51 11-1.27 3.23 7.86 1.32 12.19 2.16 3 .57 4.53 3.72 .66 3.73H322.9c-2.92 0-3.09-3.15-.74-3.21a6.3 6.3 0 0 0 5.92-3.47c1.5-3 2.8-6 4.11-9.09 18.18-42.14 17.06-40.17 18.42-41.61a1.83 1.83 0 0 1 3 0c2.93 3.34 18.4 44.71 23.62 51.92 2 2.7 5.74 2 6.36 2 3.61 .13 4-1.11 4.13-4.29 .09-1.87 .08 1.17 .07-41.24 0-4.46-2.36-3.74-5.55-4.27-.26 0-2.56-.63-.08-3.06 .21-.2-.89-.24 21.7-.15 2.32 0 5.32 2.75-1.21 3.45a2.56 2.56 0 0 0 -2.66 2.83c-.07 1.63-.19 38.89 .29 41.21a3.06 3.06 0 0 0 3.23 2.43c13.25 .43 14.92 .44 16-3.41 1.67-5.78 4.13-2.52 3.73-.19zm-104.7 64.37c-4.24 0-4.42-3.39-.61-3.41 35.91-.16 28.11 .38 37.19-.65 1.68-.19 2.38 .24 2.25 1.89-.26 3.39-.64 6.78-1 10.16-.25 2.16-3.2 2.61-3.4-.15-.38-5.31-2.15-4.45-15.63-5.08-1.58-.07-1.64 0-1.64 1.52V304c0 1.65 0 1.6 1.62 1.47 3.12-.25 10.31 .34 15.69-1.52 .47-.16 3.3-1.79 3.07 1.76 0 .21-.76 10.35-1.18 11.39-.53 1.29-1.88 1.51-2.58 .32-1.17-2 0-5.08-3.71-5.3-15.42-.9-12.91-2.55-12.91 6 0 12.25-.76 16.11 3.89 16.24 16.64 .48 14.4 0 16.43-5.71 .84-2.37 3.5-1.77 3.18 .58-.44 3.21-.85 6.43-1.23 9.64 0 .36-.16 2.4-4.66 2.39-37.16-.08-34.54-.19-35.21-.31-2.72-.51-2.2-3 .22-3.45 1.1-.19 4 .54 4.16-2.56 2.44-56.22-.07-51.34-3.91-51.33zm-.41-109.5c2.46 .61 3.13 1.76 2.95 4.65-.33 5.3-.34 9-.55 9.69-.66 2.23-3.15 2.12-3.34-.27-.38-4.81-3.05-7.82-7.57-9.15-26.28-7.73-32.81 15.46-27.17 30.22 5.88 15.41 22 15.92 28.86 13.78 5.92-1.85 5.88-6.5 6.91-7.58 1.23-1.3 2.25-1.84 3.12 1.1 0 .1 .57 11.89-6 12.75-1.6 .21-19.38 3.69-32.68-3.39-21-11.19-16.74-35.47-6.88-45.33 14-14.06 39.91-7.06 42.32-6.47zM289.8 280.1c3.28 0 3.66 3 .16 3.43-2.61 .32-5-.42-5 5.46 0 2-.19 29.05 .4 41.45 .11 2.29 1.15 3.52 3.44 3.65 22 1.21 14.95-1.65 18.79-6.34 1.83-2.24 2.76 .84 2.76 1.08 .35 13.62-4 12.39-5.19 12.4l-38.16-.19c-1.93-.23-2.06-3-.42-3.38 2-.48 4.94 .4 5.13-2.8 1-15.87 .57-44.65 .34-47.81-.27-3.77-2.8-3.27-5.68-3.71-2.47-.38-2-3.22 .34-3.22 1.45-.02 17.97-.03 23.09-.02zm-31.63-57.79c.07 4.08 2.86 3.46 6 3.58 2.61 .1 2.53 3.41-.07 3.43-6.48 0-13.7 0-21.61-.06-3.84 0-3.38-3.35 0-3.37 4.49 0 3.24 1.61 3.41-45.54 0-5.08-3.27-3.54-4.72-4.23-2.58-1.23-1.36-3.09 .41-3.15 1.29 0 20.19-.41 21.17 .21s1.87 1.65-.42 2.86c-1 .52-3.86-.28-4.15 2.47 0 .21-.82 1.63-.07 43.8zm-36.91 274.3a2.93 2.93 0 0 0 3.26 0c17-9.79 182-103.6 197.4-112.5-.14-.43 11.26-.18-181.5-.27-1.22 0-1.57 .37-1.53 1.56 0 .1 1.25 44.51 1.22 50.38a28.33 28.33 0 0 1 -1.36 7.71c-.55 1.83 .38-.5-13.5 32.23-.73 1.72-1 2.21-2-.08-4.19-10.34-8.28-20.72-12.57-31a23.6 23.6 0 0 1 -2-10.79c.16-2.46 .8-16.12 1.51-48 0-1.95 0-2-2-2h-183c2.58 1.63 178.3 102.6 196 112.8zm-90.9-188.8c0 2.4 .36 2.79 2.76 3 11.54 1.17 21 3.74 25.64-7.32 6-14.46 2.66-34.41-12.48-38.84-2-.59-16-2.76-15.94 1.51 .05 8.04 .01 11.61 .02 41.65zm105.8-15.05c0 2.13 1.07 38.68 1.09 39.13 .34 9.94-25.58 5.77-25.23-2.59 .08-2 1.37-37.42 1.1-39.43-14.1 7.44-14.42 40.21 6.44 48.8a17.9 17.9 0 0 0 22.39-7.07c4.91-7.76 6.84-29.47-5.43-39a2.53 2.53 0 0 1 -.36 .12zm-12.28-198c-9.83 0-9.73 14.75-.07 14.87s10.1-14.88 .07-14.91zm-80.15 103.8c0 1.8 .41 2.4 2.17 2.58 13.62 1.39 12.51-11 12.16-13.36-1.69-11.22-14.38-10.2-14.35-7.81 .05 4.5-.03 13.68 .02 18.59zm212.3 6.4l-6.1-15.84c-2.16 5.48-4.16 10.57-6.23 15.84z" - } - }, - "free": [ - "brands" - ] - }, - "crop": { - "changes": [ - "3.1.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f125", - "aliases": { - "unicodes": { - "secondary": [ - "10f125" - ] - } - }, - "label": "crop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H448V480C448 497.7 433.7 512 416 512C398.3 512 384 497.7 384 480V173.3L173.3 384H352V448H128C92.65 448 64 419.3 64 384V128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H64V32C64 14.33 78.33 0 96 0C113.7 0 128 14.33 128 32V338.7L338.7 128H160V64H402.7L457.4 9.372C469.9-3.124 490.1-3.124 502.6 9.372C515.1 21.87 515.1 42.13 502.6 54.63L448 109.3V384z" - } - }, - "free": [ - "solid" - ] - }, - "crop-simple": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f565", - "aliases": { - "names": [ - "crop-alt" - ], - "unicodes": { - "secondary": [ - "10f565" - ] - } - }, - "label": "Crop simple", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M128 384H352V448H128C92.65 448 64 419.3 64 384V128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H64V32C64 14.33 78.33 0 96 0C113.7 0 128 14.33 128 32V384zM384 128H160V64H384C419.3 64 448 92.65 448 128V384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H448V480C448 497.7 433.7 512 416 512C398.3 512 384 497.7 384 480V128z" - } - }, - "free": [ - "solid" - ] - }, - "cross": { - "changes": [ - "5.3.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f654", - "aliases": { - "unicodes": { - "composite": [ - "1f547", - "271d" - ], - "secondary": [ - "10f654" - ] - } - }, - "label": "Cross", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M383.1 160v64c0 17.62-14.37 32-31.1 32h-96v224c0 17.62-14.38 32-31.1 32H160c-17.62 0-32-14.38-32-32V256h-96C14.37 256-.0008 241.6-.0008 224V160c0-17.62 14.38-32 32-32h96V32c0-17.62 14.38-32 32-32h64c17.62 0 31.1 14.38 31.1 32v96h96C369.6 128 383.1 142.4 383.1 160z" - } - }, - "free": [ - "solid" - ] - }, - "crosshairs": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f05b", - "aliases": { - "unicodes": { - "secondary": [ - "10f05b" - ] - } - }, - "label": "Crosshairs", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M224 256C224 238.3 238.3 224 256 224C273.7 224 288 238.3 288 256C288 273.7 273.7 288 256 288C238.3 288 224 273.7 224 256zM256 0C273.7 0 288 14.33 288 32V42.35C381.7 56.27 455.7 130.3 469.6 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H469.6C455.7 381.7 381.7 455.7 288 469.6V480C288 497.7 273.7 512 256 512C238.3 512 224 497.7 224 480V469.6C130.3 455.7 56.27 381.7 42.35 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H42.35C56.27 130.3 130.3 56.27 224 42.35V32C224 14.33 238.3 0 256 0V0zM224 404.6V384C224 366.3 238.3 352 256 352C273.7 352 288 366.3 288 384V404.6C346.3 392.1 392.1 346.3 404.6 288H384C366.3 288 352 273.7 352 256C352 238.3 366.3 224 384 224H404.6C392.1 165.7 346.3 119.9 288 107.4V128C288 145.7 273.7 160 256 160C238.3 160 224 145.7 224 128V107.4C165.7 119.9 119.9 165.7 107.4 224H128C145.7 224 160 238.3 160 256C160 273.7 145.7 288 128 288H107.4C119.9 346.3 165.7 392.1 224 404.6z" - } - }, - "free": [ - "solid" - ] - }, - "crow": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f520", - "aliases": { - "unicodes": { - "secondary": [ - "10f520" - ] - } - }, - "label": "Crow", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M523.9 31.1H574C603.4 31.1 628.1 51.99 636.1 80.48L640 95.1L544 119.1V191.1C544 279.1 484.9 354.1 404.2 376.8L446.2 478.9C451.2 491.1 445.4 505.1 433.1 510.2C420.9 515.2 406.9 509.4 401.8 497.1L355.2 383.1C354.1 383.1 353.1 384 352 384H311.1L350.2 478.9C355.2 491.1 349.4 505.1 337.1 510.2C324.9 515.2 310.9 509.4 305.8 497.1L259.2 384H126.1L51.51 441.4C37.5 452.1 17.41 449.5 6.638 435.5C-4.138 421.5-1.517 401.4 12.49 390.6L368 117.2V88C368 39.4 407.4 0 456 0C483.3 0 507.7 12.46 523.9 32V31.1zM456 111.1C469.3 111.1 480 101.3 480 87.1C480 74.74 469.3 63.1 456 63.1C442.7 63.1 432 74.74 432 87.1C432 101.3 442.7 111.1 456 111.1z" - } - }, - "free": [ - "solid" - ] - }, - "crown": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f521", - "aliases": { - "unicodes": { - "composite": [ - "1f451" - ], - "secondary": [ - "10f521" - ] - } - }, - "label": "Crown", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M576 136c0 22.09-17.91 40-40 40c-.248 0-.4551-.1266-.7031-.1305l-50.52 277.9C482 468.9 468.8 480 453.3 480H122.7c-15.46 0-28.72-11.06-31.48-26.27L40.71 175.9C40.46 175.9 40.25 176 39.1 176c-22.09 0-40-17.91-40-40S17.91 96 39.1 96s40 17.91 40 40c0 8.998-3.521 16.89-8.537 23.57l89.63 71.7c15.91 12.73 39.5 7.544 48.61-10.68l57.6-115.2C255.1 98.34 247.1 86.34 247.1 72C247.1 49.91 265.9 32 288 32s39.1 17.91 39.1 40c0 14.34-7.963 26.34-19.3 33.4l57.6 115.2c9.111 18.22 32.71 23.4 48.61 10.68l89.63-71.7C499.5 152.9 496 144.1 496 136C496 113.9 513.9 96 536 96S576 113.9 576 136z" - } - }, - "free": [ - "solid" - ] - }, - "crutch": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7f7", - "aliases": { - "unicodes": { - "secondary": [ - "10f7f7" - ] - } - }, - "label": "Crutch", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.6 168.1l-159.6-159.5c-12.54-12.54-32.85-12.6-45.46-.1256c-12.68 12.54-12.73 33.1-.1256 45.71l159.6 159.5c12.6 12.59 33.03 12.57 45.59-.0628C515.1 201.9 515.1 181.5 502.6 168.1zM334.4 245.4l-67.88-67.87l55.13-55.12l-45.25-45.25L166.7 186.8C154.1 199.6 145.2 215.6 141.1 233.2L113.3 353.4l-108.6 108.6c-6.25 6.25-6.25 16.37 0 22.62l22.63 22.62c6.25 6.25 16.38 6.25 22.63 0l108.6-108.6l120.3-27.75c17.5-4.125 33.63-13 46.38-25.62l109.6-109.7l-45.25-45.25L334.4 245.4zM279.9 300.1C275.7 304.2 270.3 307.2 264.4 308.6l-79.25 18.25l18.25-79.25c1.375-5.875 4.375-11.25 8.5-15.5l9.375-9.25l67.88 67.87L279.9 300.1z" - } - }, - "free": [ - "solid" - ] - }, - "cruzeiro-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e152", - "label": "Cruzeiro Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M159.1 402.7V256C159.1 238.3 174.3 224 191.1 224C199.7 224 206.8 226.7 212.3 231.3C223 226.6 234.8 224 247.3 224C264.5 224 281.3 229.1 295.7 238.7L305.8 245.4C320.5 255.2 324.4 275 314.6 289.8C304.8 304.5 284.1 308.4 270.2 298.6L260.2 291.9C256.3 289.4 251.9 288 247.3 288C234.4 288 224 298.4 224 311.3V416C264.1 416 302.3 400.6 330.7 375.3C343.8 363.5 364.1 364.6 375.8 377.8C387.6 390.9 386.5 411.2 373.3 422.1C333.7 458.4 281.4 480 224 480C100.3 480 0 379.7 0 256C0 132.3 100.3 32 224 32C281.4 32 333.7 53.59 373.3 89.04C386.5 100.8 387.6 121.1 375.8 134.2C364.1 147.4 343.8 148.5 330.7 136.7C302.3 111.4 264.1 96 224 96C135.6 96 63.1 167.6 63.1 256C63.1 321.6 103.5 377.1 159.1 402.7V402.7z" - } - }, - "free": [ - "solid" - ] - }, - "css3": { - "changes": [ - "3.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f13c", - "label": "CSS 3 Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 32l-64 368-223.3 80L0 400l19.6-94.8h82l-8 40.6L210 390.2l134.1-44.4 18.8-97.1H29.5l16-82h333.7l10.5-52.7H56.3l16.3-82H480z" - } - }, - "free": [ - "brands" - ] - }, - "css3-alt": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f38b", - "label": "Alternate CSS3 Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 32l34.9 395.8L192 480l157.1-52.2L384 32H0zm313.1 80l-4.8 47.3L193 208.6l-.3 .1h111.5l-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9h48.9l3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5v-.1l-.2 .1-3.6-46.3L193.1 162l6.5-2.7H76.7L70.9 112h242.2z" - } - }, - "free": [ - "brands" - ] - }, - "cube": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1b2", - "aliases": { - "unicodes": { - "secondary": [ - "10f1b2" - ] - } - }, - "label": "Cube", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M234.5 5.709C248.4 .7377 263.6 .7377 277.5 5.709L469.5 74.28C494.1 83.38 512 107.5 512 134.6V377.4C512 404.5 494.1 428.6 469.5 437.7L277.5 506.3C263.6 511.3 248.4 511.3 234.5 506.3L42.47 437.7C17 428.6 0 404.5 0 377.4V134.6C0 107.5 17 83.38 42.47 74.28L234.5 5.709zM256 65.98L82.34 128L256 190L429.7 128L256 65.98zM288 434.6L448 377.4V189.4L288 246.6V434.6z" - } - }, - "free": [ - "solid" - ] - }, - "cubes": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1b3", - "aliases": { - "unicodes": { - "secondary": [ - "10f1b3" - ] - } - }, - "label": "Cubes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573221, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M172.1 40.16L268.1 3.76C280.9-1.089 295.1-1.089 307.9 3.76L403.9 40.16C425.6 48.41 440 69.25 440 92.52V204.7C441.3 205.1 442.6 205.5 443.9 205.1L539.9 242.4C561.6 250.6 576 271.5 576 294.7V413.9C576 436.1 562.9 456.2 542.5 465.1L446.5 507.3C432.2 513.7 415.8 513.7 401.5 507.3L288 457.5L174.5 507.3C160.2 513.7 143.8 513.7 129.5 507.3L33.46 465.1C13.13 456.2 0 436.1 0 413.9V294.7C0 271.5 14.39 250.6 36.15 242.4L132.1 205.1C133.4 205.5 134.7 205.1 136 204.7V92.52C136 69.25 150.4 48.41 172.1 40.16V40.16zM290.8 48.64C289 47.95 286.1 47.95 285.2 48.64L206.8 78.35L287.1 109.5L369.2 78.35L290.8 48.64zM392 210.6V121L309.6 152.6V241.8L392 210.6zM154.8 250.9C153 250.2 150.1 250.2 149.2 250.9L70.81 280.6L152 311.7L233.2 280.6L154.8 250.9zM173.6 455.3L256 419.1V323.2L173.6 354.8V455.3zM342.8 280.6L424 311.7L505.2 280.6L426.8 250.9C425 250.2 422.1 250.2 421.2 250.9L342.8 280.6zM528 413.9V323.2L445.6 354.8V455.3L523.2 421.2C526.1 419.9 528 417.1 528 413.9V413.9z" - } - }, - "free": [ - "solid" - ] - }, - "cubes-stacked": { - "changes": [ - "6.1.0", - "6.1.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e6", - "label": "Cubes Stacked", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573220, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M192 64C192 46.33 206.3 32 224 32H288C305.7 32 320 46.33 320 64V128C320 145.7 305.7 160 288 160H224C206.3 160 192 145.7 192 128V64zM138.1 174.1C153.4 166.1 172.1 171.4 181.8 186.7L213.8 242.1C222.6 257.4 217.4 276.1 202.1 285.8L146.7 317.8C131.4 326.6 111.8 321.4 102.1 306.1L70.96 250.7C62.12 235.4 67.37 215.8 82.67 206.1L138.1 174.1zM352 192C369.7 192 384 206.3 384 224V288C384 305.7 369.7 320 352 320H288C270.3 320 256 305.7 256 288V224C256 206.3 270.3 192 288 192H352zM416 352C433.7 352 448 366.3 448 384V448C448 465.7 433.7 480 416 480H352C334.3 480 320 465.7 320 448V384C320 366.3 334.3 352 352 352H416zM160 384C160 366.3 174.3 352 192 352H256C273.7 352 288 366.3 288 384V448C288 465.7 273.7 480 256 480H192C174.3 480 160 465.7 160 448V384zM96 352C113.7 352 128 366.3 128 384V448C128 465.7 113.7 480 96 480H32C14.33 480 0 465.7 0 448V384C0 366.3 14.33 352 32 352H96z" - } - }, - "free": [ - "solid" - ] - }, - "cuttlefish": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f38c", - "label": "Cuttlefish", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 440, - 512 - ], - "width": 440, - "height": 512, - "path": "M344 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8C385.7 39.1 320.5 8 248 8 111 8 0 119 0 256s111 248 248 248c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z" - } - }, - "free": [ - "brands" - ] - }, - "d": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "44", - "aliases": { - "unicodes": { - "composite": [ - "64" - ] - } - }, - "label": "D", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573221, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M160 32.01L32 32.01c-17.67 0-32 14.33-32 32v384c0 17.67 14.33 32 32 32l128-.0073c123.5 0 224-100.5 224-224S283.5 32.01 160 32.01zM160 416H64v-320h96c88.22 0 160 71.78 160 159.1S248.2 416 160 416z" - } - }, - "free": [ - "solid" - ] - }, - "d-and-d": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f38d", - "label": "Dungeons & Dragons", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M82.5 98.9c-.6-17.2 2-33.8 12.7-48.2 .3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1 .7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5 .6-11.4 12.5-14.1 27.4-10.9 43.6 .2 1.3 .4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6 .1 .5 .1 1.1 .1 1.6 0 .3-.1 .5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zm469.6 123.2c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5 .9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5h-2.5c-.6 0-1.2 .2-1.9 .3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3 .3 .3 .7 .6 1 .9 .3-.6 .5-1.2 .9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8 .7-3.5 .9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3 .4-.4 .9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6 .2-.1 .3-.2 .4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3v-.5c-.5-.4-1.2-.8-1.7-1.4zM316.7 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8 .9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9 .8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7 .3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3 .2-.2 .4-.3 .6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8 .6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1 .1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8 .4 4.7 .8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1 .7-52.3 .3 2.2 .4 4.3 .9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8 .1-50.9-10.6 .7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.4 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6 .2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3 .8-2.4 2.3-4.6 4-6.6 .6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2 .5-1 1.1-2 1.9-3.3 .5 4.2 .6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1 .6 .5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7 .4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6 .5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2 .4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3 .3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5 .8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8 .8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3 .6-4.5 .8-9.2 .1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6 .1-23.3 1.3-.9 .1-1.7 .3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z" - } - }, - "free": [ - "brands" - ] - }, - "d-and-d-beyond": { - "changes": [ - "5.4.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f6ca", - "label": "D&D Beyond", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9 .2-5.8 1.6-7.5 .6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9 .6-.3 1.3 0 .6 1.9-.2 .6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3 .1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9 .9 7.5 .2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1 .6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6 .7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4 .2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5 .5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2v77.2l-7.4 8.2c10.4 .8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6v-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6 .5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9 .5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8 .5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6 .3 3 .6 4.3 1.1-2.1 .8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2 .8 .2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8 .6-2.6-.2s.3-4.3 .3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3 .6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7 .2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7 .6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8 .8-1.4 1.8-2.1 2.6v15.7c3.5 2.6 7.1-2.9 3-7.2 1.5 .3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9 .3 5.6 1.1V196c-1.1 .5-2.2 1-2.7 1.4zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25H3l8.3 8.6v29.5H0l11.4 14.6V346L3 354.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zm-41.3-27.5c20 0 29.6-.8 29.6 9.1v3c0 12.1-19 8.8-29.6 8.8zm0 59.2V315c12.2 0 32.7-2.3 32.7 8.8v4.5h.2c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1 .2v-.2l14.1-21.2h-37.2v-14.9h52.4l-14.1-21v-.2l-73.5 .2 7.4 8.2v77.1l-7.4 8.2h81.2l14.1-21.2-60.1 .2zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3 .3-99.3zm-.3 77.5c-37.4 0-36.9-55.3 .2-55.3 36.8 .1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2h-41.7l6.1 7.2-20.5 37.2h-.3l-21-37.2 6.4-7.2h-44.9l44.1 65.8 .2 19.4-7.7 8.2h42.6l-7.2-8.2zm-28.4-151.3c1.6 1.3 2.9 2.4 2.9 6.6v38.8c0 4.2-.8 5.3-2.7 6.4-.1 .1-7.5 4.5-7.9 4.6h35.1c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5 .8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6 .3-39.9-4 .1 .8 .5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3zm228.9 79.6l7 8.3V312h-.3c-5.4-14.4-42.3-41.5-45.2-50.9h-31.6l7.4 8.5v76.9l-7.2 8.3h39l-7.4-8.2v-47.4h.3c3.7 10.6 44.5 42.9 48.5 55.6h21.3v-85.2l7.4-8.3zm-106.7-96.1c-32.2 0-32.8 .2-39.9-4 .1 .7 .5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6 .3-4 1.1-6.1 2.9 .1 0 2.1-1.1 7.5-.3v-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3h.3c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z" - } - }, - "free": [ - "brands" - ] - }, - "dailymotion": { - "changes": [ - "5.12.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e052", - "label": "dailymotion", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M298.9 267a48.4 48.4 0 0 0 -24.36-6.21q-19.83 0-33.44 13.27t-13.61 33.42q0 21.16 13.28 34.6t33.43 13.44q20.5 0 34.11-13.78T322 307.5A47.13 47.13 0 0 0 315.9 284 44.13 44.13 0 0 0 298.9 267zM0 32V480H448V32zM374.7 405.3h-53.1V381.4h-.67q-15.79 26.2-55.78 26.2-27.56 0-48.89-13.1a88.29 88.29 0 0 1 -32.94-35.77q-11.6-22.68-11.59-50.89 0-27.56 11.76-50.22a89.9 89.9 0 0 1 32.93-35.78q21.18-13.09 47.72-13.1a80.87 80.87 0 0 1 29.74 5.21q13.28 5.21 25 17V153l55.79-12.09z" - } - }, - "free": [ - "brands" - ] - }, - "dashcube": { - "changes": [ - "4.3.0", - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f210", - "label": "DashCube", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M326.6 104H110.4c-51.1 0-91.2 43.3-91.2 93.5V427c0 50.5 40.1 85 91.2 85h227.2c51.1 0 91.2-34.5 91.2-85V0L326.6 104zM153.9 416.5c-17.7 0-32.4-15.1-32.4-32.8V240.8c0-17.7 14.7-32.5 32.4-32.5h140.7c17.7 0 32 14.8 32 32.5v123.5l51.1 52.3H153.9z" - } - }, - "free": [ - "brands" - ] - }, - "database": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1c0", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c0" - ] - } - }, - "label": "Database", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573221, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 80V128C448 172.2 347.7 208 224 208C100.3 208 0 172.2 0 128V80C0 35.82 100.3 0 224 0C347.7 0 448 35.82 448 80zM393.2 214.7C413.1 207.3 433.1 197.8 448 186.1V288C448 332.2 347.7 368 224 368C100.3 368 0 332.2 0 288V186.1C14.93 197.8 34.02 207.3 54.85 214.7C99.66 230.7 159.5 240 224 240C288.5 240 348.3 230.7 393.2 214.7V214.7zM54.85 374.7C99.66 390.7 159.5 400 224 400C288.5 400 348.3 390.7 393.2 374.7C413.1 367.3 433.1 357.8 448 346.1V432C448 476.2 347.7 512 224 512C100.3 512 0 476.2 0 432V346.1C14.93 357.8 34.02 367.3 54.85 374.7z" - } - }, - "free": [ - "solid" - ] - }, - "deezer": { - "changes": [ - "5.13.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e077", - "label": "Deezer", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M451.5 244.7H576V172H451.5zm0-173.9v72.67H576V70.82zm0 275.1H576V273.2H451.5zM0 447.1H124.5V374.4H0zm150.5 0H275V374.4H150.5zm150.5 0H425.5V374.4H301zm150.5 0H576V374.4H451.5zM301 345.9H425.5V273.2H301zm-150.5 0H275V273.2H150.5zm0-101.2H275V172H150.5z" - } - }, - "free": [ - "brands" - ] - }, - "delete-left": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f55a", - "aliases": { - "names": [ - "backspace" - ], - "unicodes": { - "composite": [ - "232b" - ], - "secondary": [ - "10f55a" - ] - } - }, - "label": "Delete left", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573221, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M576 384C576 419.3 547.3 448 512 448H205.3C188.3 448 172 441.3 160 429.3L9.372 278.6C3.371 272.6 0 264.5 0 256C0 247.5 3.372 239.4 9.372 233.4L160 82.75C172 70.74 188.3 64 205.3 64H512C547.3 64 576 92.65 576 128V384zM271 208.1L318.1 256L271 303C261.7 312.4 261.7 327.6 271 336.1C280.4 346.3 295.6 346.3 304.1 336.1L352 289.9L399 336.1C408.4 346.3 423.6 346.3 432.1 336.1C442.3 327.6 442.3 312.4 432.1 303L385.9 256L432.1 208.1C442.3 199.6 442.3 184.4 432.1 175C423.6 165.7 408.4 165.7 399 175L352 222.1L304.1 175C295.6 165.7 280.4 165.7 271 175C261.7 184.4 261.7 199.6 271 208.1V208.1z" - } - }, - "free": [ - "solid" - ] - }, - "delicious": { - "changes": [ - "4.1.0", - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a5", - "label": "Delicious", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M446.5 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5H48C21.5 32 0 53.5 0 80v352c0 4.1 .5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5h352c26.5 0 48-21.5 48-48V80c-.1-4.1-.6-8.2-1.6-12zM416 432c0 8.8-7.2 16-16 16H224V256H32V80c0-8.8 7.2-16 16-16h176v192h192z" - } - }, - "free": [ - "brands" - ] - }, - "democrat": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f747", - "aliases": { - "unicodes": { - "secondary": [ - "10f747" - ] - } - }, - "label": "Democrat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573222, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M191.1 479.1C191.1 497.6 206.4 512 223.1 512h32c17.6 0 32-14.4 32-32v-64h160v64c0 17.6 14.41 32 32.01 32L511.1 512c17.6 0 32-14.4 32-32l.0102-128H192L191.1 479.1zM637.2 256.9l-19.5-29.38c-28.25-42.25-75.38-67.5-126.1-67.5H255.1L174.7 78.75c20.13-20 22.63-51 7.5-73.88C178.9-.2552 171.5-1.005 167.1 3.37L125.2 45.25L82.36 2.37C78.74-1.255 72.74-.6302 69.99 3.62c-12.25 18.63-10.25 44 6.125 60.38c3.25 3.25 7.25 5.25 11.25 7.5c-2.125 1.75-4.625 3.125-6.375 5.375l-74.63 99.38C-.8895 185.9-2.014 198.9 3.361 209.7l14.38 28.5c5.375 10.88 16.5 17.75 28.5 17.75H77.24c8.5 0 16.63-3.375 22.63-9.375l38.13-34.63l54.04 108h351.1l-.0102-77.75c16.25 12.13 18.25 17.5 40.13 50.25c4.875 7.375 14.75 9.25 22.13 4.375l26.63-17.63C640.2 274.2 642.2 264.2 637.2 256.9zM296.2 243.2L279.7 259.4l3.875 22.75c.625 4.125-3.625 7.125-7.25 5.25L255.1 276.7L235.6 287.4C231.1 289.2 227.7 286.2 228.4 282.1l3.875-22.75L215.7 243.2c-3-2.875-1.25-7.875 2.875-8.5l22.75-3.25l10.25-20.75c1.75-3.625 7.125-3.625 9 0l10.13 20.75l22.88 3.25C297.6 235.4 299.2 240.4 296.2 243.2zM408.2 243.2l-16.5 16.13l3.875 22.75c.625 4.125-3.625 7.125-7.25 5.25L367.1 276.7l-20.38 10.63c-3.625 1.875-7.875-1.125-7.25-5.25l3.875-22.75l-16.5-16.13c-3-2.875-1.25-7.875 2.875-8.5l22.75-3.25l10.25-20.75c1.75-3.625 7.125-3.625 9 0l10.13 20.75l22.88 3.25C409.6 235.4 411.2 240.4 408.2 243.2zM520.2 243.2l-16.5 16.13l3.875 22.75c.625 4.125-3.625 7.125-7.25 5.25l-20.38-10.63l-20.38 10.63c-3.625 1.875-7.875-1.125-7.25-5.25l3.875-22.75l-16.5-16.13c-3-2.875-1.25-7.875 2.875-8.5l22.75-3.25l10.25-20.75c1.75-3.625 7.125-3.625 9 0l10.13 20.75l22.88 3.25C521.6 235.4 523.2 240.4 520.2 243.2z" - } - }, - "free": [ - "solid" - ] - }, - "deploydog": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f38e", - "label": "deploy.dog", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M382.2 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.6 0-33.2 16.4-33.2 32.6zM188.5 136h51.7v239.6h-51.7v-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9V136zm-64.7 161.8c0 18.2 13.6 33.5 33.2 33.5 19.8 0 33.2-16.4 33.2-32.9 0-17.1-13.7-33.2-33.2-33.2-19.7 0-33.2 16.4-33.2 32.6zM448 96c17.5 0 32 14.4 32 32v256c0 17.5-14.4 32-32 32H64c-17.5 0-32-14.4-32-32V128c0-17.5 14.4-32 32-32h384m0-32H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h384c35.2 0 64-28.8 64-64V128c0-35.2-28.8-64-64-64z" - } - }, - "free": [ - "brands" - ] - }, - "deskpro": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f38f", - "label": "Deskpro", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 480, - 512 - ], - "width": 480, - "height": 512, - "path": "M205.9 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4H362c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zm200.4-167.7c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zm-43.6-223.9v168.3h-73.5l-32.7 55.5H250c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1h-91c-25.5 0-110.8-26.8-107-114V16.9C0 .9 9.7 .3 15 .1h82c.2 0 .3 .1 .5 .1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7h84.2c108.7-.4 126.5 79.4 126.5 120.2zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z" - } - }, - "free": [ - "brands" - ] - }, - "desktop": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f390", - "aliases": { - "names": [ - "desktop-alt" - ], - "unicodes": { - "composite": [ - "f108", - "1f5a5" - ], - "primary": [ - "f108" - ], - "secondary": [ - "10f390", - "10f108" - ] - } - }, - "label": "Desktop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573222, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M528 0h-480C21.5 0 0 21.5 0 48v320C0 394.5 21.5 416 48 416h192L224 464H152C138.8 464 128 474.8 128 488S138.8 512 152 512h272c13.25 0 24-10.75 24-24s-10.75-24-24-24H352L336 416h192c26.5 0 48-21.5 48-48v-320C576 21.5 554.5 0 528 0zM512 288H64V64h448V288z" - } - }, - "free": [ - "solid" - ] - }, - "dev": { - "changes": [ - "5.4.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f6cc", - "label": "DEV", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572476, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M120.1 208.3c-3.88-2.9-7.77-4.35-11.65-4.35H91.03v104.5h17.45c3.88 0 7.77-1.45 11.65-4.35 3.88-2.9 5.82-7.25 5.82-13.06v-69.65c-.01-5.8-1.96-10.16-5.83-13.06zM404.1 32H43.9C19.7 32 .06 51.59 0 75.8v360.4C.06 460.4 19.7 480 43.9 480h360.2c24.21 0 43.84-19.59 43.9-43.8V75.8c-.06-24.21-19.7-43.8-43.9-43.8zM154.2 291.2c0 18.81-11.61 47.31-48.36 47.25h-46.4V172.1h47.38c35.44 0 47.36 28.46 47.37 47.28l.01 70.93zm100.7-88.66H201.6v38.42h32.57v29.57H201.6v38.41h53.29v29.57h-62.18c-11.16 .29-20.44-8.53-20.72-19.69V193.7c-.27-11.15 8.56-20.41 19.71-20.69h63.19l-.01 29.52zm103.6 115.3c-13.2 30.75-36.85 24.63-47.44 0l-38.53-144.8h32.57l29.71 113.7 29.57-113.7h32.58l-38.46 144.8z" - } - }, - "free": [ - "brands" - ] - }, - "deviantart": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1bd", - "label": "deviantART", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 93.2l-98.2 179.1 7.4 9.5H320v127.7H159.1l-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2H0v-93.2l93.2-179.4-7.4-9.2H0V102.5h156l13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2H320v93.1z" - } - }, - "free": [ - "brands" - ] - }, - "dharmachakra": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f655", - "aliases": { - "unicodes": { - "composite": [ - "2638" - ], - "secondary": [ - "10f655" - ] - } - }, - "label": "Dharmachakra", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573222, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M495 225l-17.24 1.124c-5.25-39.5-20.76-75.63-43.89-105.9l12.1-11.37c6.875-6.125 7.25-16.75 .75-23.38L426.5 64.38c-6.625-6.5-17.25-6.125-23.38 .75l-11.37 12.1c-30.25-23.12-66.38-38.64-105.9-43.89L287 17C287.5 7.75 280.2 0 271 0h-30c-9.25 0-16.5 7.75-16 17l1.124 17.24c-39.5 5.25-75.63 20.76-105.9 43.89L108.9 65.13C102.8 58.25 92.13 57.88 85.63 64.38L64.38 85.5C57.88 92.12 58.25 102.8 65.13 108.9l12.1 11.37C54.1 150.5 39.49 186.6 34.24 226.1L17 225C7.75 224.5 0 231.8 0 241v30c0 9.25 7.75 16.5 17 16l17.24-1.124c5.25 39.5 20.76 75.63 43.89 105.9l-12.1 11.37c-6.875 6.125-7.25 16.75-.75 23.25l21.25 21.25c6.5 6.5 17.13 6.125 23.25-.75l11.37-12.1c30.25 23.12 66.38 38.64 105.9 43.89L225 495C224.5 504.2 231.8 512 241 512h30c9.25 0 16.5-7.75 16-17l-1.124-17.24c39.5-5.25 75.63-20.76 105.9-43.89l11.37 12.1c6.125 6.875 16.75 7.25 23.38 .75l21.12-21.25c6.5-6.5 6.125-17.13-.75-23.25l-12.1-11.37c23.12-30.25 38.64-66.38 43.89-105.9L495 287C504.3 287.5 512 280.2 512 271v-30C512 231.8 504.3 224.5 495 225zM281.9 98.68c24.75 4 47.61 13.59 67.24 27.71L306.5 174.6c-8.75-5.375-18.38-9.507-28.62-11.88L281.9 98.68zM230.1 98.68l3.996 64.06C223.9 165.1 214.3 169.2 205.5 174.6L162.9 126.4C182.5 112.3 205.4 102.7 230.1 98.68zM126.4 163l48.35 42.48c-5.5 8.75-9.606 18.4-11.98 28.65L98.68 230.1C102.7 205.4 112.2 182.5 126.4 163zM98.68 281.9l64.06-3.996C165.1 288.1 169.3 297.8 174.6 306.5l-48.23 42.61C112.3 329.5 102.7 306.6 98.68 281.9zM230.1 413.3c-24.75-4-47.61-13.59-67.24-27.71l42.58-48.33c8.75 5.5 18.4 9.606 28.65 11.98L230.1 413.3zM256 288C238.4 288 224 273.6 224 256s14.38-32 32-32s32 14.38 32 32S273.6 288 256 288zM281.9 413.3l-3.996-64.06c10.25-2.375 19.9-6.48 28.65-11.98l42.48 48.35C329.5 399.8 306.6 409.3 281.9 413.3zM385.6 349l-48.25-42.5c5.375-8.75 9.507-18.38 11.88-28.62l64.06 3.996C409.3 306.6 399.8 329.5 385.6 349zM349.3 234.1c-2.375-10.25-6.48-19.9-11.98-28.65L385.6 163c14.13 19.5 23.69 42.38 27.69 67.13L349.3 234.1z" - } - }, - "free": [ - "solid" - ] - }, - "dhl": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f790", - "label": "DHL", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M238 301.2h58.7L319 271h-58.7L238 301.2zM0 282.9v6.4h81.8l4.7-6.4H0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1 2.8-3.7 2.8-5.9-2.8-5.9h-51l-41.1 55.8h100.1c33.1 0 51.5-22.5 57.2-30.3h-68.2zm317.5-6.9l39.3-53.4h-62.2l-39.3 53.4h62.2zM95.3 271H0v6.4h90.6l4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5h45.6s7.3-10 13.5-18.4c8.4-11.4 .7-35-29.2-35H112.6l-20.4 27.8h111.4c5.6 0 5.5 2.2 2.7 5.9zM0 301.2h73.1l4.7-6.4H0v6.4zm323 0h58.7L404 271h-58.7c-.1 0-22.3 30.2-22.3 30.2zm222 .1h95v-6.4h-90.3l-4.7 6.4zm22.3-30.3l-4.7 6.4H640V271h-72.7zm-13.5 18.3H640v-6.4h-81.5l-4.7 6.4zm-164.2-78.6l-22.5 30.6h-26.2l22.5-30.6h-58.7l-39.3 53.4H409l39.3-53.4h-58.7zm33.5 60.3s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6h94.3l22.3-30.3H423.1z" - } - }, - "free": [ - "brands" - ] - }, - "diagram-next": { - "changes": [ - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e476", - "label": "Diagram Next", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573222, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 160C512 195.3 483.3 224 448 224H280V288H326.1C347.4 288 358.1 313.9 343 328.1L272.1 399C263.6 408.4 248.4 408.4 239 399L168.1 328.1C153.9 313.9 164.6 288 185.9 288H232V224H64C28.65 224 0 195.3 0 160V96C0 60.65 28.65 32 64 32H448C483.3 32 512 60.65 512 96V160zM312.6 416H448V352H376.6L384.1 343.6C401 327.6 404.6 306.4 399 288H448C483.3 288 512 316.7 512 352V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V352C0 316.7 28.65 288 64 288H112.1C107.4 306.4 110.1 327.6 127 343.6L135.4 352H64V416H199.4L216.4 432.1C238.3 454.8 273.7 454.8 295.6 432.1L312.6 416z" - } - }, - "free": [ - "solid" - ] - }, - "diagram-predecessor": { - "changes": [ - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e477", - "label": "Diagram Predecessor", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573222, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 480C28.65 480 0 451.3 0 416V352C0 316.7 28.65 288 64 288H448C483.3 288 512 316.7 512 352V416C512 451.3 483.3 480 448 480H64zM448 416V352H64V416H448zM288 160C288 195.3 259.3 224 224 224H64C28.65 224 0 195.3 0 160V96C0 60.65 28.65 32 64 32H368C412.2 32 448 67.82 448 112V128H486.1C507.4 128 518.1 153.9 503 168.1L432.1 239C423.6 248.4 408.4 248.4 399 239L328.1 168.1C313.9 153.9 324.6 128 345.9 128H384V112C384 103.2 376.8 96 368 96H288V160z" - } - }, - "free": [ - "solid" - ] - }, - "diagram-project": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f542", - "aliases": { - "names": [ - "project-diagram" - ], - "unicodes": { - "secondary": [ - "10f542" - ] - } - }, - "label": "Project Diagram", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573222, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 80C0 53.49 21.49 32 48 32H144C170.5 32 192 53.49 192 80V96H384V80C384 53.49 405.5 32 432 32H528C554.5 32 576 53.49 576 80V176C576 202.5 554.5 224 528 224H432C405.5 224 384 202.5 384 176V160H192V176C192 177.7 191.9 179.4 191.7 180.1L272 288H368C394.5 288 416 309.5 416 336V432C416 458.5 394.5 480 368 480H272C245.5 480 224 458.5 224 432V336C224 334.3 224.1 332.6 224.3 331L144 224H48C21.49 224 0 202.5 0 176V80z" - } - }, - "free": [ - "solid" - ] - }, - "diagram-successor": { - "changes": [ - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e47a", - "label": "Diagram Successor", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573222, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V352C0 316.7 28.65 288 64 288H448C483.3 288 512 316.7 512 352V416zM224 224H64C28.65 224 0 195.3 0 160V96C0 60.65 28.65 32 64 32H368C412.2 32 448 67.82 448 112V128H486.1C507.4 128 518.1 153.9 503 168.1L432.1 239C423.6 248.4 408.4 248.4 399 239L328.1 168.1C313.9 153.9 324.6 128 345.9 128H384V112C384 103.2 376.8 96 368 96H288V160C288 195.3 259.3 224 224 224V224zM64 160H224V96H64V160z" - } - }, - "free": [ - "solid" - ] - }, - "diamond": { - "changes": [ - "4.3.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f219", - "aliases": { - "unicodes": { - "composite": [ - "2666" - ], - "secondary": [ - "10f219" - ] - } - }, - "label": "Diamond", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M500.3 227.7C515.9 243.3 515.9 268.7 500.3 284.3L284.3 500.3C268.7 515.9 243.3 515.9 227.7 500.3L11.72 284.3C-3.905 268.7-3.905 243.3 11.72 227.7L227.7 11.72C243.3-3.905 268.7-3.905 284.3 11.72L500.3 227.7z" - } - }, - "free": [ - "solid" - ] - }, - "diamond-turn-right": { - "changes": [ - "5.2.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5eb", - "aliases": { - "names": [ - "directions" - ], - "unicodes": { - "secondary": [ - "10f5eb" - ] - } - }, - "label": "Diamond turn right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M497.1 222.1l-208.1-208.1c-9.364-9.364-21.62-14.04-33.89-14.03C243.7 .0092 231.5 4.686 222.1 14.03L14.03 222.1C4.676 231.5 .0002 243.7 .0004 255.1c.0002 12.26 4.676 24.52 14.03 33.87l208.1 208.1C231.5 507.3 243.7 511.1 256 511.1c12.26 0 24.52-4.677 33.87-14.03l208.1-208.1c9.352-9.353 14.03-21.61 14.03-33.87C511.1 243.7 507.3 231.5 497.1 222.1zM410.5 252l-96 84c-10.79 9.545-26.53 .9824-26.53-12.03V272H223.1l-.0001 48C223.1 337.6 209.6 352 191.1 352S159.1 337.6 159.1 320V240c0-17.6 14.4-32 32-32h95.1V156c0-13.85 16.39-20.99 26.53-12.03l96 84C414 231 415.1 235.4 415.1 240S414 249 410.5 252z" - } - }, - "free": [ - "solid" - ] - }, - "diaspora": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f791", - "label": "Diaspora", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M251.6 354.5c-1.4 0-88 119.9-88.7 119.9S76.34 414 76 413.3s86.6-125.7 86.6-127.4c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1 .6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3 .4-2 1-148.6 1.7-149.6 .8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3 .8 .9 31.9 102.2 31.5 102.6-.9 .9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5z" - } - }, - "free": [ - "brands" - ] - }, - "dice": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f522", - "aliases": { - "unicodes": { - "composite": [ - "1f3b2" - ], - "secondary": [ - "10f522" - ] - } - }, - "label": "Dice", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573224, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M447.1 224c0-12.56-4.781-25.13-14.35-34.76l-174.9-174.9C249.1 4.786 236.5 0 223.1 0C211.4 0 198.9 4.786 189.2 14.35L14.35 189.2C4.783 198.9-.0011 211.4-.0011 223.1c0 12.56 4.785 25.17 14.35 34.8l174.9 174.9c9.625 9.562 22.19 14.35 34.75 14.35s25.13-4.783 34.75-14.35l174.9-174.9C443.2 249.1 447.1 236.6 447.1 224zM96 248c-13.25 0-23.1-10.75-23.1-23.1s10.75-23.1 23.1-23.1S120 210.8 120 224S109.3 248 96 248zM224 376c-13.25 0-23.1-10.75-23.1-23.1s10.75-23.1 23.1-23.1s23.1 10.75 23.1 23.1S237.3 376 224 376zM224 248c-13.25 0-23.1-10.75-23.1-23.1s10.75-23.1 23.1-23.1S248 210.8 248 224S237.3 248 224 248zM224 120c-13.25 0-23.1-10.75-23.1-23.1s10.75-23.1 23.1-23.1s23.1 10.75 23.1 23.1S237.3 120 224 120zM352 248c-13.25 0-23.1-10.75-23.1-23.1s10.75-23.1 23.1-23.1s23.1 10.75 23.1 23.1S365.3 248 352 248zM591.1 192l-118.7 0c4.418 10.27 6.604 21.25 6.604 32.23c0 20.7-7.865 41.38-23.63 57.14l-136.2 136.2v46.37C320 490.5 341.5 512 368 512h223.1c26.5 0 47.1-21.5 47.1-47.1V240C639.1 213.5 618.5 192 591.1 192zM479.1 376c-13.25 0-23.1-10.75-23.1-23.1s10.75-23.1 23.1-23.1s23.1 10.75 23.1 23.1S493.2 376 479.1 376z" - } - }, - "free": [ - "solid" - ] - }, - "dice-d20": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6cf", - "aliases": { - "unicodes": { - "secondary": [ - "10f6cf" - ] - } - }, - "label": "Dice D20", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M20.04 317.3C18 317.3 16 315.8 16 313.3V150.5c0-2.351 1.91-4.012 4.001-4.012c.6882 0 1.396 .18 2.062 .5748l76.62 45.1l-75.28 122.3C22.59 316.8 21.31 317.3 20.04 317.3zM231.4 405.2l-208.2-22.06c-4.27-.4821-7.123-4.117-7.123-7.995c0-1.401 .3725-2.834 1.185-4.161L122.7 215.1L231.4 405.2zM31.1 420.1c0-2.039 1.508-4.068 3.93-4.068c.1654 0 .3351 .0095 .5089 .0291l203.6 22.31v65.66C239.1 508.6 236.2 512 232 512c-1.113 0-2.255-.2387-3.363-.7565L34.25 423.6C32.69 422.8 31.1 421.4 31.1 420.1zM33.94 117.1c-1.289-.7641-1.938-2.088-1.938-3.417c0-1.281 .6019-2.567 1.813-3.364l150.8-98.59C185.1 10.98 187.3 10.64 188.6 10.64c4.32 0 8.003 3.721 8.003 8.022c0 1.379-.3788 2.818-1.237 4.214L115.5 165.8L33.94 117.1zM146.8 175.1l95.59-168.4C245.5 2.53 250.7 0 255.1 0s10.5 2.53 13.62 7.624l95.59 168.4H146.8zM356.4 207.1l-100.4 175.7L155.6 207.1H356.4zM476.1 415.1c2.422 0 3.93 2.029 3.93 4.068c0 1.378-.6893 2.761-2.252 3.524l-194.4 87.66c-1.103 .5092-2.241 .7443-3.35 .7443c-4.2 0-7.994-3.371-7.994-7.994v-65.69l203.6-22.28C475.7 416 475.9 415.1 476.1 415.1zM494.8 370.9C495.6 372.3 496 373.7 496 375.1c0 3.872-2.841 7.499-7.128 7.98l-208.2 22.06l108.6-190.1L494.8 370.9zM316.6 22.87c-.8581-1.395-1.237-2.834-1.237-4.214c0-4.301 3.683-8.022 8.003-8.022c1.308 0 2.675 .3411 4.015 1.11l150.8 98.59c1.211 .7973 1.813 2.076 1.813 3.353c0 1.325-.6488 2.649-1.938 3.429L396.5 165.8L316.6 22.87zM491.1 146.5c2.091 0 4.001 1.661 4.001 4.012v162.8c0 2.483-2.016 4.006-4.053 4.006c-1.27 0-2.549-.5919-3.353-1.912l-75.28-122.3l76.62-45.1C490.6 146.7 491.3 146.5 491.1 146.5z" - } - }, - "free": [ - "solid" - ] - }, - "dice-d6": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6d1", - "aliases": { - "unicodes": { - "secondary": [ - "10f6d1" - ] - } - }, - "label": "Dice D6", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M7.994 153.5c1.326 0 2.687 .3508 3.975 1.119L208 271.5v223.8c0 9.741-7.656 16.71-16.01 16.71c-2.688 0-5.449-.7212-8.05-2.303l-152.2-92.47C12.13 405.3 0 383.3 0 359.5v-197.7C0 156.1 3.817 153.5 7.994 153.5zM426.2 117.2c0 2.825-1.352 5.647-4.051 7.248L224 242.6L25.88 124.4C23.19 122.8 21.85 119.1 21.85 117.2c0-2.8 1.32-5.603 3.965-7.221l165.1-100.9C201.7 3.023 212.9 0 224 0s22.27 3.023 32.22 9.07l165.1 100.9C424.8 111.6 426.2 114.4 426.2 117.2zM440 153.5C444.2 153.5 448 156.1 448 161.8v197.7c0 23.75-12.12 45.75-31.78 57.69l-152.2 92.5C261.5 511.3 258.7 512 256 512C247.7 512 240 505 240 495.3V271.5l196-116.9C437.3 153.8 438.7 153.5 440 153.5z" - } - }, - "free": [ - "solid" - ] - }, - "dice-five": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f523", - "aliases": { - "unicodes": { - "composite": [ - "2684" - ], - "secondary": [ - "10f523" - ] - } - }, - "label": "Dice Five", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.62 32 0 60.62 0 96v320c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V96C448 60.62 419.4 32 384 32zM128 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S145.6 384 128 384zM128 192C110.4 192 96 177.6 96 160s14.38-32 32-32s32 14.38 32 32S145.6 192 128 192zM224 288C206.4 288 192 273.6 192 256s14.38-32 32-32s32 14.38 32 32S241.6 288 224 288zM320 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 384 320 384zM320 192c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 192 320 192z" - } - }, - "free": [ - "solid" - ] - }, - "dice-four": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f524", - "aliases": { - "unicodes": { - "composite": [ - "2683" - ], - "secondary": [ - "10f524" - ] - } - }, - "label": "Dice Four", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.62 32 0 60.62 0 96v320c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V96C448 60.62 419.4 32 384 32zM128 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S145.6 384 128 384zM128 192C110.4 192 96 177.6 96 160s14.38-32 32-32s32 14.38 32 32S145.6 192 128 192zM320 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 384 320 384zM320 192c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 192 320 192z" - } - }, - "free": [ - "solid" - ] - }, - "dice-one": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f525", - "aliases": { - "unicodes": { - "composite": [ - "2680" - ], - "secondary": [ - "10f525" - ] - } - }, - "label": "Dice One", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.62 32 0 60.62 0 96v320c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V96C448 60.62 419.4 32 384 32zM224 288C206.4 288 192 273.6 192 256s14.38-32 32-32s32 14.38 32 32S241.6 288 224 288z" - } - }, - "free": [ - "solid" - ] - }, - "dice-six": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f526", - "aliases": { - "unicodes": { - "composite": [ - "2685" - ], - "secondary": [ - "10f526" - ] - } - }, - "label": "Dice Six", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.62 32 0 60.62 0 96v320c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V96C448 60.62 419.4 32 384 32zM128 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S145.6 384 128 384zM128 288C110.4 288 96 273.6 96 256s14.38-32 32-32s32 14.38 32 32S145.6 288 128 288zM128 192C110.4 192 96 177.6 96 160s14.38-32 32-32s32 14.38 32 32S145.6 192 128 192zM320 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 384 320 384zM320 288c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 288 320 288zM320 192c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 192 320 192z" - } - }, - "free": [ - "solid" - ] - }, - "dice-three": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f527", - "aliases": { - "unicodes": { - "composite": [ - "2682" - ], - "secondary": [ - "10f527" - ] - } - }, - "label": "Dice Three", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573223, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.62 32 0 60.62 0 96v320c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V96C448 60.62 419.4 32 384 32zM128 192C110.4 192 96 177.6 96 160s14.38-32 32-32s32 14.38 32 32S145.6 192 128 192zM224 288C206.4 288 192 273.6 192 256s14.38-32 32-32s32 14.38 32 32S241.6 288 224 288zM320 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 384 320 384z" - } - }, - "free": [ - "solid" - ] - }, - "dice-two": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f528", - "aliases": { - "unicodes": { - "composite": [ - "2681" - ], - "secondary": [ - "10f528" - ] - } - }, - "label": "Dice Two", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573224, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.62 32 0 60.62 0 96v320c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V96C448 60.62 419.4 32 384 32zM128 192C110.4 192 96 177.6 96 160s14.38-32 32-32s32 14.38 32 32S145.6 192 128 192zM320 384c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 384 320 384z" - } - }, - "free": [ - "solid" - ] - }, - "digg": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a6", - "label": "Digg Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M81.7 172.3H0v174.4h132.7V96h-51v76.3zm0 133.4H50.9v-92.3h30.8v92.3zm297.2-133.4v174.4h81.8v28.5h-81.8V416H512V172.3H378.9zm81.8 133.4h-30.8v-92.3h30.8v92.3zm-235.6 41h82.1v28.5h-82.1V416h133.3V172.3H225.1v174.4zm51.2-133.3h30.8v92.3h-30.8v-92.3zM153.3 96h51.3v51h-51.3V96zm0 76.3h51.3v174.4h-51.3V172.3z" - } - }, - "free": [ - "brands" - ] - }, - "digital-ocean": { - "changes": [ - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f391", - "label": "Digital Ocean", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M87 481.8h73.7v-73.6H87zM25.4 346.6v61.6H87v-61.6zm466.2-169.7c-23-74.2-82.4-133.3-156.6-156.6C164.9-32.8 8 93.7 8 255.9h95.8c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208v.3h-.3V504c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231v-95.3h-95.6v95.6H256v-.3z" - } - }, - "free": [ - "brands" - ] - }, - "discord": { - "changes": [ - "5.0.0", - "5.15.4", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f392", - "label": "Discord", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M524.5 69.84a1.5 1.5 0 0 0 -.764-.7A485.1 485.1 0 0 0 404.1 32.03a1.816 1.816 0 0 0 -1.923 .91 337.5 337.5 0 0 0 -14.9 30.6 447.8 447.8 0 0 0 -134.4 0 309.5 309.5 0 0 0 -15.14-30.6 1.89 1.89 0 0 0 -1.924-.91A483.7 483.7 0 0 0 116.1 69.14a1.712 1.712 0 0 0 -.788 .676C39.07 183.7 18.19 294.7 28.43 404.4a2.016 2.016 0 0 0 .765 1.375A487.7 487.7 0 0 0 176 479.9a1.9 1.9 0 0 0 2.063-.676A348.2 348.2 0 0 0 208.1 430.4a1.86 1.86 0 0 0 -1.019-2.588 321.2 321.2 0 0 1 -45.87-21.85 1.885 1.885 0 0 1 -.185-3.126c3.082-2.309 6.166-4.711 9.109-7.137a1.819 1.819 0 0 1 1.9-.256c96.23 43.92 200.4 43.92 295.5 0a1.812 1.812 0 0 1 1.924 .233c2.944 2.426 6.027 4.851 9.132 7.16a1.884 1.884 0 0 1 -.162 3.126 301.4 301.4 0 0 1 -45.89 21.83 1.875 1.875 0 0 0 -1 2.611 391.1 391.1 0 0 0 30.01 48.81 1.864 1.864 0 0 0 2.063 .7A486 486 0 0 0 610.7 405.7a1.882 1.882 0 0 0 .765-1.352C623.7 277.6 590.9 167.5 524.5 69.84zM222.5 337.6c-28.97 0-52.84-26.59-52.84-59.24S193.1 219.1 222.5 219.1c29.67 0 53.31 26.82 52.84 59.24C275.3 310.1 251.9 337.6 222.5 337.6zm195.4 0c-28.97 0-52.84-26.59-52.84-59.24S388.4 219.1 417.9 219.1c29.67 0 53.31 26.82 52.84 59.24C470.7 310.1 447.5 337.6 417.9 337.6z" - } - }, - "free": [ - "brands" - ] - }, - "discourse": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f393", - "label": "Discourse", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2c122.7 0 222.1-102.3 222.1-223.9C448 134.3 348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392l22.9-75c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z" - } - }, - "free": [ - "brands" - ] - }, - "disease": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7fa", - "aliases": { - "unicodes": { - "secondary": [ - "10f7fa" - ] - } - }, - "label": "Disease", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573224, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M472.2 195.9l-66.1-22.1c-19.25-6.624-33.5-20.87-38.13-38.24l-16-60.49c-11.62-43.74-76.63-57.11-110-22.62L194.1 99.3c-13.25 13.75-33.5 20.87-54.25 19.25L68.86 112.9c-52-3.999-86.88 44.99-59 82.86l38.63 52.49c11 14.1 12.75 33.74 4.625 50.12l-28.5 56.99c-20.62 41.24 22.88 84.86 73.5 73.86l69.1-15.25c20.12-4.499 41.38 .0001 57 11.62l54.38 40.87c39.38 29.62 101 7.623 104.5-37.24l4.625-61.86c1.375-17.75 12.88-33.87 30.62-42.99l61.1-31.62C526.1 269.8 520.9 212.5 472.2 195.9zM159.1 256c-17.62 0-31.1-14.37-31.1-31.1s14.37-31.1 31.1-31.1s31.1 14.37 31.1 31.1S177.6 256 159.1 256zM287.1 351.1c-17.62 0-31.1-14.37-31.1-31.1c0-17.62 14.37-31.1 31.1-31.1s31.1 14.37 31.1 31.1C319.1 337.6 305.6 351.1 287.1 351.1zM303.1 224c-8.875 0-15.1-7.125-15.1-15.1c0-8.873 7.125-15.1 15.1-15.1s15.1 7.125 15.1 15.1C319.1 216.9 312.9 224 303.1 224z" - } - }, - "free": [ - "solid" - ] - }, - "display": { - "changes": [ - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e163", - "label": "Display", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573224, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M528 0h-480C21.5 0 0 21.5 0 48v320C0 394.5 21.5 416 48 416h192L224 464H152C138.8 464 128 474.8 128 488S138.8 512 152 512h272c13.25 0 24-10.75 24-24s-10.75-24-24-24H352L336 416h192c26.5 0 48-21.5 48-48v-320C576 21.5 554.5 0 528 0zM512 352H64V64h448V352z" - } - }, - "free": [ - "solid" - ] - }, - "divide": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f529", - "aliases": { - "unicodes": { - "composite": [ - "2797", - "f7" - ], - "secondary": [ - "10f529" - ] - } - }, - "label": "Divide", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573224, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 224h-352c-17.69 0-32 14.31-32 31.1s14.31 32 32 32h352c17.69 0 32-14.31 32-32S417.7 224 400 224zM224 144c26.47 0 48-21.53 48-48s-21.53-48-48-48s-48 21.53-48 48S197.5 144 224 144zM224 368c-26.47 0-48 21.53-48 48s21.53 48 48 48s48-21.53 48-48S250.5 368 224 368z" - } - }, - "free": [ - "solid" - ] - }, - "dna": { - "changes": [ - "5.0.7", - "5.0.10", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f471", - "aliases": { - "unicodes": { - "composite": [ - "1f9ec" - ], - "secondary": [ - "10f471" - ] - } - }, - "label": "DNA", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573224, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M.1193 494.1c-1.125 9.5 6.312 17.87 15.94 17.87l32.06 .0635c8.125 0 15.21-5.833 16.21-13.83c.7501-4.875 1.869-11.17 3.494-18.17h312c1.625 6.875 2.904 13.31 3.529 18.18c1.125 7.1 7.84 13.94 15.97 13.82l32.46-.0625c9.625 0 17.12-8.374 15.99-17.87c-4.625-37.87-25.75-128.1-119.1-207.7c-17.5 12.37-36.98 24.37-58.48 35.49c6.25 4.625 11.56 9.405 17.06 14.15H159.7c21.25-18.12 47.03-35.63 78.65-51.38c172.1-85.5 203.7-218.8 209.5-266.7c1.125-9.5-6.297-17.88-15.92-17.88L399.6 .001c-8.125 0-14.84 5.832-15.96 13.83c-.7501 4.875-1.869 11.17-3.369 18.17H67.74C66.24 25 65.08 18.81 64.33 13.81C63.21 5.813 56.48-.124 48.36 .001L16.1 .1338c-9.625 0-17.09 8.354-15.96 17.85c5.125 42.87 31.29 153.8 159.9 238.1C31.55 340.3 5.245 451.2 .1193 494.1zM223.9 219.7C198.8 205.9 177.6 191.3 159.7 176h128.5C270.4 191.3 249 206.1 223.9 219.7zM355.1 96c-5.875 10.37-12.88 21.12-21 31.1H113.1c-8.25-10.87-15.3-21.63-21.05-32L355.1 96zM93 415.1c5.875-10.37 12.74-21.13 20.87-32h219.4c8.375 10.87 15.48 21.63 21.23 32H93z" - } - }, - "free": [ - "solid" - ] - }, - "dochub": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f394", - "label": "DocHub", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 416, - 512 - ], - "width": 416, - "height": 512, - "path": "M397.9 160H256V19.6L397.9 160zM304 192v130c0 66.8-36.5 100.1-113.3 100.1H96V84.8h94.7c12 0 23.1 .8 33.1 2.5v-84C212.9 1.1 201.4 0 189.2 0H0v512h189.2C329.7 512 400 447.4 400 318.1V192h-96z" - } - }, - "free": [ - "brands" - ] - }, - "docker": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f395", - "label": "Docker", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M349.9 236.3h-66.1v-59.4h66.1v59.4zm0-204.3h-66.1v60.7h66.1V32zm78.2 144.8H362v59.4h66.1v-59.4zm-156.3-72.1h-66.1v60.1h66.1v-60.1zm78.1 0h-66.1v60.1h66.1v-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7H2.4c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zm-511.1-27.9h-66v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm78.1 0h-66.1v59.4h66.1v-59.4zm-78.1-72.1h-66.1v60.1h66.1v-60.1z" - } - }, - "free": [ - "brands" - ] - }, - "dog": { - "changes": [ - "5.4.0", - "5.12.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6d3", - "aliases": { - "unicodes": { - "composite": [ - "1f415" - ], - "secondary": [ - "10f6d3" - ] - } - }, - "label": "Dog", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573224, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M332.7 19.85C334.6 8.395 344.5 0 356.1 0C363.6 0 370.6 3.52 375.1 9.502L392 32H444.1C456.8 32 469.1 37.06 478.1 46.06L496 64H552C565.3 64 576 74.75 576 88V112C576 156.2 540.2 192 496 192H426.7L421.6 222.5L309.6 158.5L332.7 19.85zM448 64C439.2 64 432 71.16 432 80C432 88.84 439.2 96 448 96C456.8 96 464 88.84 464 80C464 71.16 456.8 64 448 64zM416 256.1V480C416 497.7 401.7 512 384 512H352C334.3 512 320 497.7 320 480V364.8C295.1 377.1 268.8 384 240 384C211.2 384 184 377.1 160 364.8V480C160 497.7 145.7 512 128 512H96C78.33 512 64 497.7 64 480V249.8C35.23 238.9 12.64 214.5 4.836 183.3L.9558 167.8C-3.331 150.6 7.094 133.2 24.24 128.1C41.38 124.7 58.76 135.1 63.05 152.2L66.93 167.8C70.49 182 83.29 191.1 97.97 191.1H303.8L416 256.1z" - } - }, - "free": [ - "solid" - ] - }, - "dollar-sign": { - "changes": [ - "3.2.0", - "5.0.0", - "5.0.9", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "24", - "aliases": { - "names": [ - "dollar", - "usd" - ], - "unicodes": { - "composite": [ - "1f4b2", - "f155" - ], - "primary": [ - "f155" - ], - "secondary": [ - "10f155", - "1024" - ] - } - }, - "label": "Dollar Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M160 0C177.7 0 192 14.33 192 32V67.68C193.6 67.89 195.1 68.12 196.7 68.35C207.3 69.93 238.9 75.02 251.9 78.31C268.1 82.65 279.4 100.1 275 117.2C270.7 134.3 253.3 144.7 236.1 140.4C226.8 137.1 198.5 133.3 187.3 131.7C155.2 126.9 127.7 129.3 108.8 136.5C90.52 143.5 82.93 153.4 80.92 164.5C78.98 175.2 80.45 181.3 82.21 185.1C84.1 189.1 87.79 193.6 95.14 198.5C111.4 209.2 136.2 216.4 168.4 225.1L171.2 225.9C199.6 233.6 234.4 243.1 260.2 260.2C274.3 269.6 287.6 282.3 295.8 299.9C304.1 317.7 305.9 337.7 302.1 358.1C295.1 397 268.1 422.4 236.4 435.6C222.8 441.2 207.8 444.8 192 446.6V480C192 497.7 177.7 512 160 512C142.3 512 128 497.7 128 480V445.1C127.6 445.1 127.1 444.1 126.7 444.9L126.5 444.9C102.2 441.1 62.07 430.6 35 418.6C18.85 411.4 11.58 392.5 18.76 376.3C25.94 360.2 44.85 352.9 60.1 360.1C81.9 369.4 116.3 378.5 136.2 381.6C168.2 386.4 194.5 383.6 212.3 376.4C229.2 369.5 236.9 359.5 239.1 347.5C241 336.8 239.6 330.7 237.8 326.9C235.9 322.9 232.2 318.4 224.9 313.5C208.6 302.8 183.8 295.6 151.6 286.9L148.8 286.1C120.4 278.4 85.58 268.9 59.76 251.8C45.65 242.4 32.43 229.7 24.22 212.1C15.89 194.3 14.08 174.3 17.95 153C25.03 114.1 53.05 89.29 85.96 76.73C98.98 71.76 113.1 68.49 128 66.73V32C128 14.33 142.3 0 160 0V0z" - } - }, - "free": [ - "solid" - ] - }, - "dolly": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f472", - "aliases": { - "names": [ - "dolly-box" - ], - "unicodes": { - "secondary": [ - "10f472" - ] - } - }, - "label": "Dolly", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M294.2 277.8c17.1 5 34.62 13.38 49.5 24.62l161.5-53.75c8.375-2.875 12.88-11.88 10-20.25L454.8 47.25c-2.748-8.502-11.88-13-20.12-10.12l-61.13 20.37l33.12 99.38l-60.75 20.13l-33.12-99.38L251.2 98.13c-8.373 2.75-12.87 11.88-9.998 20.12L294.2 277.8zM574.4 309.9c-5.594-16.75-23.67-25.91-40.48-20.23l-202.5 67.51c-17.22-22.01-43.57-36.41-73.54-36.97L165.7 43.75C156.9 17.58 132.5 0 104.9 0H32C14.33 0 0 14.33 0 32s14.33 32 32 32h72.94l92.22 276.7C174.7 358.2 160 385.3 160 416c0 53.02 42.98 96 96 96c52.4 0 94.84-42.03 95.82-94.2l202.3-67.44C570.9 344.8 579.1 326.6 574.4 309.9zM256 448c-17.67 0-32-14.33-32-32c0-17.67 14.33-31.1 32-31.1S288 398.3 288 416C288 433.7 273.7 448 256 448z" - } - }, - "free": [ - "solid" - ] - }, - "dong-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e169", - "label": "Dong Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 64C337.7 64 352 78.33 352 96C352 113.7 337.7 128 320 128V384C320 401.7 305.7 416 288 416C275 416 263.9 408.3 258.8 397.2C239.4 409.1 216.5 416 192 416C121.3 416 64 358.7 64 288C64 217.3 121.3 160 192 160C215.3 160 237.2 166.2 256 177.1V128H224C206.3 128 192 113.7 192 96C192 78.33 206.3 64 224 64H256C256 46.33 270.3 32 288 32C305.7 32 320 46.33 320 64V64zM256 288C256 252.7 227.3 224 192 224C156.7 224 128 252.7 128 288C128 323.3 156.7 352 192 352C227.3 352 256 323.3 256 288zM352 448C369.7 448 384 462.3 384 480C384 497.7 369.7 512 352 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H352z" - } - }, - "free": [ - "solid" - ] - }, - "door-closed": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f52a", - "aliases": { - "unicodes": { - "composite": [ - "1f6aa" - ], - "secondary": [ - "10f52a" - ] - } - }, - "label": "Door Closed", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M560 448H480V50.75C480 22.75 458.5 0 432 0h-288C117.5 0 96 22.75 96 50.75V448H16C7.125 448 0 455.1 0 464v32C0 504.9 7.125 512 16 512h544c8.875 0 16-7.125 16-16v-32C576 455.1 568.9 448 560 448zM384 288c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S401.6 288 384 288z" - } - }, - "free": [ - "solid" - ] - }, - "door-open": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f52b", - "aliases": { - "unicodes": { - "secondary": [ - "10f52b" - ] - } - }, - "label": "Door Open", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M560 448H512V113.5c0-27.25-21.5-49.5-48-49.5L352 64.01V128h96V512h112c8.875 0 16-7.125 16-15.1v-31.1C576 455.1 568.9 448 560 448zM280.3 1.007l-192 49.75C73.1 54.51 64 67.76 64 82.88V448H16c-8.875 0-16 7.125-16 15.1v31.1C0 504.9 7.125 512 16 512H320V33.13C320 11.63 300.5-4.243 280.3 1.007zM232 288c-13.25 0-24-14.37-24-31.1c0-17.62 10.75-31.1 24-31.1S256 238.4 256 256C256 273.6 245.3 288 232 288z" - } - }, - "free": [ - "solid" - ] - }, - "dove": { - "changes": [ - "5.0.9", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4ba", - "aliases": { - "unicodes": { - "composite": [ - "1f54a" - ], - "secondary": [ - "10f4ba" - ] - } - }, - "label": "Dove", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 167.2V139.1c-28.25-36.38-47.13-79.29-54.13-125.2C231.7 .4054 214.8-5.02 206.1 5.481C184.1 30.36 168.4 59.7 157.2 92.07C191.4 130.3 237.2 156.7 288 167.2zM400 63.97c-44.25 0-79.1 35.82-79.1 80.08l.0014 59.44c-104.4-6.251-193-70.46-233-161.7C81.48 29.25 63.76 28.58 58.01 40.83C41.38 75.96 32.01 115.2 32.01 156.6c0 70.76 34.11 136.9 85.11 185.9c13.12 12.75 26.13 23.27 38.88 32.77L12.12 411.2c-10.75 2.75-15.5 15.09-9.5 24.47c17.38 26.88 60.42 72.54 153.2 76.29c8 .25 15.99-2.633 22.12-7.883l65.23-56.12l76.84 .0561c88.38 0 160-71.49 160-159.9l.0013-160.2l31.1-63.99L400 63.97zM400 160.1c-8.75 0-16.01-7.259-16.01-16.01c0-8.876 7.261-16.05 16.01-16.05s15.99 7.136 15.99 16.01C416 152.8 408.8 160.1 400 160.1z" - } - }, - "free": [ - "solid" - ] - }, - "down-left-and-up-right-to-center": { - "changes": [ - "1.0.0", - "5.0.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f422", - "aliases": { - "names": [ - "compress-alt" - ], - "unicodes": { - "secondary": [ - "10f422" - ] - } - }, - "label": "Down left and up right to center", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M215.1 272h-136c-12.94 0-24.63 7.797-29.56 19.75C45.47 303.7 48.22 317.5 57.37 326.6l30.06 30.06l-78.06 78.07c-12.5 12.5-12.5 32.75-.0012 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.26 .0013l78.06-78.07l30.06 30.06c6.125 6.125 14.31 9.367 22.63 9.367c4.125 0 8.279-.7891 12.25-2.43c11.97-4.953 19.75-16.62 19.75-29.56V296C239.1 282.7 229.3 272 215.1 272zM296 240h136c12.94 0 24.63-7.797 29.56-19.75c4.969-11.97 2.219-25.72-6.938-34.87l-30.06-30.06l78.06-78.07c12.5-12.5 12.5-32.76 .0002-45.26l-22.62-22.62c-12.5-12.5-32.76-12.5-45.26-.0003l-78.06 78.07l-30.06-30.06c-9.156-9.141-22.87-11.84-34.87-6.937c-11.97 4.953-19.75 16.62-19.75 29.56v135.1C272 229.3 282.7 240 296 240z" - } - }, - "free": [ - "solid" - ] - }, - "down-long": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f309", - "aliases": { - "names": [ - "long-arrow-alt-down" - ], - "unicodes": { - "secondary": [ - "10f309" - ] - } - }, - "label": "Down long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573225, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M281.6 392.3l-104 112.1c-9.498 10.24-25.69 10.24-35.19 0l-104-112.1c-6.484-6.992-8.219-17.18-4.404-25.94c3.811-8.758 12.45-14.42 21.1-14.42H128V32c0-17.69 14.33-32 32-32S192 14.31 192 32v319.9h72c9.547 0 18.19 5.66 22 14.42C289.8 375.1 288.1 385.3 281.6 392.3z" - } - }, - "free": [ - "solid" - ] - }, - "download": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f019", - "aliases": { - "unicodes": { - "secondary": [ - "10f019" - ] - } - }, - "label": "Download", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573226, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 352h-133.5l-45.25 45.25C289.2 409.3 273.1 416 256 416s-33.16-6.656-45.25-18.75L165.5 352H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM432 456c-13.2 0-24-10.8-24-24c0-13.2 10.8-24 24-24s24 10.8 24 24C456 445.2 445.2 456 432 456zM233.4 374.6C239.6 380.9 247.8 384 256 384s16.38-3.125 22.62-9.375l128-128c12.49-12.5 12.49-32.75 0-45.25c-12.5-12.5-32.76-12.5-45.25 0L288 274.8V32c0-17.67-14.33-32-32-32C238.3 0 224 14.33 224 32v242.8L150.6 201.4c-12.49-12.5-32.75-12.5-45.25 0c-12.49 12.5-12.49 32.75 0 45.25L233.4 374.6z" - } - }, - "free": [ - "solid" - ] - }, - "draft2digital": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f396", - "label": "Draft2digital", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 480, - 512 - ], - "width": 480, - "height": 512, - "path": "M480 398.1l-144-82.2v64.7h-91.3c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6C84.5 328.1 18.3 396.8 0 415.9l336-.1V480zM369.9 371l47.1 27.2-47.1 27.2zM134.2 161.4c0 12.4-10 22.4-22.4 22.4s-22.4-10-22.4-22.4 10-22.4 22.4-22.4 22.4 10.1 22.4 22.4zM82.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7z" - } - }, - "free": [ - "brands" - ] - }, - "dragon": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6d5", - "aliases": { - "unicodes": { - "composite": [ - "1f409" - ], - "secondary": [ - "10f6d5" - ] - } - }, - "label": "Dragon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573226, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M18.43 255.8L192 224L100.8 292.6C90.67 302.8 97.8 320 112 320h222.7c-9.499-26.5-14.75-54.5-14.75-83.38V194.2L200.3 106.8C176.5 90.88 145 92.75 123.3 111.2l-117.5 116.4C-6.562 238 2.436 258 18.43 255.8zM575.2 289.9l-100.7-50.25c-16.25-8.125-26.5-24.75-26.5-43V160h63.99l28.12 22.62C546.1 188.6 554.2 192 562.7 192h30.1c11.1 0 23.12-6.875 28.5-17.75l14.37-28.62c5.374-10.87 4.25-23.75-2.999-33.5l-74.49-99.37C552.1 4.75 543.5 0 533.5 0H296C288.9 0 285.4 8.625 290.4 13.62L351.1 64L292.4 88.75c-5.874 3-5.874 11.37 0 14.37L351.1 128l-.0011 108.6c0 72 35.99 139.4 95.99 179.4c-195.6 6.75-344.4 41-434.1 60.88c-8.124 1.75-13.87 9-13.87 17.38C.0463 504 8.045 512 17.79 512h499.1c63.24 0 119.6-47.5 122.1-110.8C642.3 354 617.1 310.9 575.2 289.9zM489.1 66.25l45.74 11.38c-2.75 11-12.5 18.88-24.12 18.25C497.7 95.25 484.8 83.38 489.1 66.25z" - } - }, - "free": [ - "solid" - ] - }, - "draw-polygon": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ee", - "aliases": { - "unicodes": { - "secondary": [ - "10f5ee" - ] - } - }, - "label": "Draw Polygon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573226, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384.3 352C419.5 352.2 448 380.7 448 416C448 451.3 419.3 480 384 480C360.3 480 339.6 467.1 328.6 448H119.4C108.4 467.1 87.69 480 64 480C28.65 480 0 451.3 0 416C0 392.3 12.87 371.6 32 360.6V151.4C12.87 140.4 0 119.7 0 96C0 60.65 28.65 32 64 32C87.69 32 108.4 44.87 119.4 64H328.6C339.6 44.87 360.3 32 384 32C419.3 32 448 60.65 448 96C448 131.3 419.5 159.8 384.3 159.1L345.5 227.9C349.7 236.4 352 245.9 352 256C352 266.1 349.7 275.6 345.5 284.1L384.3 352zM96 360.6C105.7 366.2 113.8 374.3 119.4 384H328.6C328.6 383.9 328.7 383.8 328.7 383.7L292.2 319.9C290.8 319.1 289.4 320 288 320C252.7 320 224 291.3 224 256C224 220.7 252.7 192 288 192C289.4 192 290.8 192 292.2 192.1L328.7 128.3L328.6 128H119.4C113.8 137.7 105.7 145.8 96 151.4L96 360.6z" - } - }, - "free": [ - "solid" - ] - }, - "dribbble": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f17d", - "label": "Dribbble", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 8C119.3 8 8 119.3 8 256s111.3 248 248 248 248-111.3 248-248S392.7 8 256 8zm163.1 114.4c29.5 36.05 47.37 81.96 47.83 131.1-6.984-1.477-77.02-15.68-147.5-6.818-5.752-14.04-11.18-26.39-18.62-41.61 78.32-31.98 113.8-77.48 118.3-83.52zM396.4 97.87c-3.81 5.427-35.7 48.29-111 76.52-34.71-63.78-73.18-116.2-79.04-124 67.18-16.19 137.1 1.27 190.1 47.49zm-230.5-33.25c5.585 7.659 43.44 60.12 78.54 122.5-99.09 26.31-186.4 25.93-195.8 25.81C62.38 147.2 106.7 92.57 165.9 64.62zM44.17 256.3c0-2.166 .043-4.322 .108-6.473 9.268 .19 111.9 1.513 217.7-30.15 6.064 11.87 11.86 23.92 17.17 35.95-76.6 21.58-146.2 83.53-180.5 142.3C64.79 360.4 44.17 310.7 44.17 256.3zm81.81 167.1c22.13-45.23 82.18-103.6 167.6-132.8 29.74 77.28 42.04 142.1 45.19 160.6-68.11 29.01-150 21.05-212.8-27.88zm248.4 8.489c-2.171-12.89-13.45-74.9-41.15-151 66.38-10.63 124.7 6.768 131.9 9.055-9.442 58.94-43.27 109.8-90.79 141.1z" - } - }, - "free": [ - "brands" - ] - }, - "dropbox": { - "changes": [ - "3.2.0", - "5.0.0", - "5.0.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f16b", - "label": "Dropbox", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 528, - 512 - ], - "width": 528, - "height": 512, - "path": "M264.4 116.3l-132 84.3 132 84.3-132 84.3L0 284.1l132.3-84.3L0 116.3 132.3 32l132.1 84.3zM131.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zm132.8-111.6l132-84.3-132-83.6L395.7 32 528 116.3l-132.3 84.3L528 284.8l-132.3 84.3-131.3-85z" - } - }, - "free": [ - "brands" - ] - }, - "droplet": { - "changes": [ - "1.0.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f043", - "aliases": { - "names": [ - "tint" - ], - "unicodes": { - "composite": [ - "1f4a7" - ], - "secondary": [ - "10f043" - ] - } - }, - "label": "Droplet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573226, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M16 319.1C16 245.9 118.3 89.43 166.9 19.3C179.2 1.585 204.8 1.585 217.1 19.3C265.7 89.43 368 245.9 368 319.1C368 417.2 289.2 496 192 496C94.8 496 16 417.2 16 319.1zM112 319.1C112 311.2 104.8 303.1 96 303.1C87.16 303.1 80 311.2 80 319.1C80 381.9 130.1 432 192 432C200.8 432 208 424.8 208 416C208 407.2 200.8 400 192 400C147.8 400 112 364.2 112 319.1z" - } - }, - "free": [ - "solid" - ] - }, - "droplet-slash": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5c7", - "aliases": { - "names": [ - "tint-slash" - ], - "unicodes": { - "secondary": [ - "10f5c7" - ] - } - }, - "label": "Droplet slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573226, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M215.3 143.4C243.5 95.07 274.2 49.29 294.9 19.3C307.2 1.585 332.8 1.585 345.1 19.3C393.7 89.43 496 245.9 496 319.1C496 333.7 494.4 347.1 491.5 359.9L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L215.3 143.4zM143.1 319.1C143.1 296.5 154.3 264.6 169.1 229.9L443.5 445.4C411.7 476.7 368.1 496 319.1 496C222.8 496 143.1 417.2 143.1 319.1V319.1zM239.1 319.1C239.1 311.2 232.8 303.1 223.1 303.1C215.2 303.1 207.1 311.2 207.1 319.1C207.1 381.9 258.1 432 319.1 432C328.8 432 336 424.8 336 416C336 407.2 328.8 400 319.1 400C275.8 400 239.1 364.2 239.1 319.1V319.1z" - } - }, - "free": [ - "solid" - ] - }, - "drum": { - "changes": [ - "5.1.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f569", - "aliases": { - "unicodes": { - "composite": [ - "1f941" - ], - "secondary": [ - "10f569" - ] - } - }, - "label": "Drum", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M431.1 122l70.02-45.91c11.09-7.273 14.19-22.14 6.906-33.25c-7.219-11.07-22.09-14.23-33.22-6.924l-106.4 69.73c-49.81-8.787-97.18-9.669-112.4-9.669c-.002 0 .002 0 0 0C219.5 96 0 100.6 0 208.3v160.1c0 30.27 27.5 57.68 71.1 77.85v-101.9c0-13.27 10.75-24.03 24-24.03s23.1 10.76 23.1 24.03v118.9C153 472.4 191.1 478.3 231.1 480v-103.6c0-13.27 10.75-24.03 24-24.03c.002 0-.002 0 0 0c13.25 0 24 10.76 24 24.03V480c40.93-1.668 78.95-7.615 111.1-16.72v-118.9c0-13.27 10.75-24.03 24-24.03s24 10.76 24 24.03v101.9c44.49-20.17 71.1-47.58 71.1-77.85V208.3C511.1 164.9 476.1 138.4 431.1 122zM255.1 272.5C255.1 272.5 255.1 272.5 255.1 272.5c-114.9 0-207.1-28.97-207.1-64.39s93.12-63.1 207.1-63.1c.002 0-.002 0 0 0c17.5 0 34.47 .7139 50.71 1.966L242.8 187.1c-11.09 7.273-14.19 22.14-6.906 33.25C240.5 228.3 248.2 232.1 256 232.1c4.5 0 9.062-1.265 13.12-3.923l109.3-71.67c51.77 11.65 85.5 30.38 85.5 51.67C463.1 243.6 370.9 272.5 255.1 272.5z" - } - }, - "free": [ - "solid" - ] - }, - "drum-steelpan": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f56a", - "aliases": { - "unicodes": { - "secondary": [ - "10f56a" - ] - } - }, - "label": "Drum Steelpan", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573226, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 32C129 32 0 89.25 0 160v192c0 70.75 129 128 288 128s288-57.25 288-128V160C576 89.25 447 32 288 32zM205 190.4c-4.5 16.62-14.5 30.5-28.25 40.5C100.2 217.5 48 190.8 48 160c0-30.12 50.12-56.38 124-69.1l25.62 44.25C207.5 151.4 210.1 171.2 205 190.4zM288 240c-21.12 0-41.38-.1-60.88-2.75C235.1 211.1 259.2 192 288 192s52.88 19.12 60.88 45.25C329.4 239 309.1 240 288 240zM352 96c0 35.25-28.75 64-64 64S224 131.2 224 96V83C244.4 81.12 265.8 80 288 80s43.63 1.125 64 3V96zM398.9 230.9c-13.75-9.875-23.88-23.88-28.38-40.5c-5.125-19.13-2.5-39 7.375-56l25.62-44.5C477.8 103.5 528 129.8 528 160C528 190.9 475.6 217.5 398.9 230.9z" - } - }, - "free": [ - "solid" - ] - }, - "drumstick-bite": { - "changes": [ - "5.4.0", - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6d7", - "aliases": { - "unicodes": { - "secondary": [ - "10f6d7" - ] - } - }, - "label": "Drumstick with Bite Taken Out", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 168.9c0 1.766-.0229 3.398-.0768 5.164c-16.91-9.132-35.51-13.76-53.96-13.76c-82.65 0-105.5 74.17-105.5 105.4c0 27.04 9.923 54.43 29.63 76.25c-19.52 6.629-39.99 9.997-60.62 9.997l-87.18 .0038l-40.59 40.49c-6.104 6.103-8.921 14.01-8.921 22.17c0 13.98 7.244 17.1 7.244 37.03C192.1 485.4 164.6 512 131.7 512c-15.63 0-31.11-6.055-42.72-17.8c-11.55-11.46-16.82-26.31-16.82-41.26c0-4.948 .575-9.903 1.695-14.75c-4.842 1.11-9.793 1.681-14.72 1.681c-42.15 0-59.13-36.64-59.13-59.5c0-33.43 27.15-60.34 60.39-60.34c18.97 0 22.97 7.219 36.96 7.219c8.159 0 16.04-2.811 22.14-8.914l40.57-40.47L160.1 191.1c0-63.1 27.79-107 63.17-142.4c33.13-33.06 76.39-49.59 119.7-49.59s86.79 16.53 119.9 49.59C495.9 82.5 512 125.7 512 168.9z" - } - }, - "free": [ - "solid" - ] - }, - "drupal": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a9", - "label": "Drupal Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M303.1 108.1C268.2 72.46 234.2 38.35 224 0c-9.957 38.35-44.25 72.46-80.02 108.1C90.47 161.7 29.72 222.4 29.72 313.4c-2.337 107.3 82.75 196.2 190.1 198.5S415.9 429.2 418.3 321.9q.091-4.231 0-8.464C418.3 222.4 357.5 161.7 303.1 108.1zm-174.3 223a130.3 130.3 0 0 0 -15.21 24.15 4.978 4.978 0 0 1 -3.319 2.766h-1.659c-4.333 0-9.219-8.481-9.219-8.481h0c-1.29-2.028-2.489-4.149-3.687-6.361l-.83-1.752c-11.25-25.72-1.475-62.32-1.475-62.32h0a160.6 160.6 0 0 1 23.23-49.87A290.8 290.8 0 0 1 138.5 201.6l9.219 9.219 43.51 44.43a4.979 4.979 0 0 1 0 6.638L145.8 312.3h0zm96.61 127.3a67.2 67.2 0 0 1 -49.78-111.9c14.2-16.87 31.53-33.46 50.33-55.31 22.31 23.78 36.88 40.1 51.16 57.99a28.41 28.41 0 0 1 2.95 4.425 65.9 65.9 0 0 1 11.98 37.98 66.65 66.65 0 0 1 -66.47 66.84zM352.4 351.6h0a7.743 7.743 0 0 1 -6.176 5.347H344.9a11.25 11.25 0 0 1 -6.269-5.07h0a348.2 348.2 0 0 0 -39.46-48.95L281.4 284.5 222.3 223.2a497.9 497.9 0 0 1 -35.4-36.32 12.03 12.03 0 0 0 -.922-1.382 35.4 35.4 0 0 1 -4.7-9.219V174.5a31.35 31.35 0 0 1 9.218-27.66c11.43-11.43 22.95-22.95 33.83-34.94 11.98 13.27 24.8 26 37.43 38.63h0a530.1 530.1 0 0 1 69.6 79.1 147.5 147.5 0 0 1 27.01 83.8A134.1 134.1 0 0 1 352.4 351.6z" - } - }, - "free": [ - "brands" - ] - }, - "dumbbell": { - "changes": [ - "5.0.5", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f44b", - "aliases": { - "unicodes": { - "secondary": [ - "10f44b" - ] - } - }, - "label": "Dumbbell", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M104 96h-48C42.75 96 32 106.8 32 120V224C14.33 224 0 238.3 0 256c0 17.67 14.33 32 31.1 32L32 392C32 405.3 42.75 416 56 416h48C117.3 416 128 405.3 128 392v-272C128 106.8 117.3 96 104 96zM456 32h-48C394.8 32 384 42.75 384 56V224H256V56C256 42.75 245.3 32 232 32h-48C170.8 32 160 42.75 160 56v400C160 469.3 170.8 480 184 480h48C245.3 480 256 469.3 256 456V288h128v168c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24V56C480 42.75 469.3 32 456 32zM608 224V120C608 106.8 597.3 96 584 96h-48C522.8 96 512 106.8 512 120v272c0 13.25 10.75 24 24 24h48c13.25 0 24-10.75 24-24V288c17.67 0 32-14.33 32-32C640 238.3 625.7 224 608 224z" - } - }, - "free": [ - "solid" - ] - }, - "dumpster": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f793", - "aliases": { - "unicodes": { - "secondary": [ - "10f793" - ] - } - }, - "label": "Dumpster", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M560 160c10.38 0 17.1-9.75 15.5-19.88l-24-95.1C549.8 37 543.3 32 536 32h-98.88l25.62 128H560zM272 32H171.5L145.9 160H272V32zM404.5 32H304v128h126.1L404.5 32zM16 160h97.25l25.63-128H40C32.75 32 26.25 37 24.5 44.12l-24 95.1C-2.001 150.2 5.625 160 16 160zM560 224h-20L544 192H32l4 32H16C7.25 224 0 231.2 0 240v32C0 280.8 7.25 288 16 288h28L64 448v16C64 472.8 71.25 480 80 480h32C120.8 480 128 472.8 128 464V448h320v16c0 8.75 7.25 16 16 16h32c8.75 0 16-7.25 16-16V448l20-160H560C568.8 288 576 280.8 576 272v-32C576 231.2 568.8 224 560 224z" - } - }, - "free": [ - "solid" - ] - }, - "dumpster-fire": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f794", - "aliases": { - "unicodes": { - "secondary": [ - "10f794" - ] - } - }, - "label": "Dumpster Fire", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M418.8 104.2L404.6 32H304.1L304 159.1h60.77C381.1 140.7 399.1 121.8 418.8 104.2zM272.1 32.12H171.5L145.9 160.1h126.1L272.1 32.12zM461.3 104.2c18.25 16.25 35.51 33.62 51.14 51.49c5.751-5.623 11.38-11.12 17.38-16.37l21.26-18.98l21.25 18.98c1.125 .9997 2.125 2.124 3.126 3.124c-.125-.7498 .2501-1.5 0-2.249l-24-95.97c-1.625-7.123-8.127-12.12-15.38-12.12H437.2l12.25 61.5L461.3 104.2zM16 160.1l97.26-.0223l25.64-127.9h-98.89c-7.251 0-13.75 4.999-15.5 12.12L.5001 140.2C-2.001 150.3 5.626 160.1 16 160.1zM340.6 192.1L32.01 192.1l4.001 31.99L16 224.1C7.252 224.1 0 231.3 0 240.1V272c0 8.748 7.251 15.1 16 15.1l28.01 .0177l20 159.1L64.01 464C64.01 472.8 71.26 480 80.01 480h32.01c8.752 0 16-7.248 16-15.1v-15.1l208.8-.002c-30.13-33.74-48.73-77.85-48.73-126.3C288.1 285.8 307.9 238.8 340.6 192.1zM551.2 163.3c-14.88 13.25-28.38 27.12-40.26 41.12c-19.5-25.74-43.63-51.99-71.01-76.36c-70.14 62.73-120 144.2-120 193.6C319.1 409.1 391.6 480 479.1 480s160-70.87 160-158.3C640.1 285 602.1 209.4 551.2 163.3zM532.6 392.6c-14.75 10.62-32.88 16.1-52.51 16.1c-49.01 0-88.89-33.49-88.89-87.98c0-27.12 16.5-50.99 49.38-91.85c4.751 5.498 67.14 87.98 67.14 87.98l39.76-46.99c2.876 4.874 5.375 9.497 7.75 13.1C573.9 321.5 565.1 368.4 532.6 392.6z" - } - }, - "free": [ - "solid" - ] - }, - "dungeon": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6d9", - "aliases": { - "unicodes": { - "secondary": [ - "10f6d9" - ] - } - }, - "label": "Dungeon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M336.6 156.5C327.3 148.1 322.6 136.5 327.1 125.3L357.6 49.18C362.7 36.27 377.8 30.36 389.7 37.63C410.9 50.63 430 66.62 446.5 85.02C455.7 95.21 452.9 110.9 441.5 118.5L373.9 163.5C363.6 170.4 349.8 168.1 340.5 159.9C339.2 158.7 337.9 157.6 336.6 156.5H336.6zM297.7 112.6C293.2 123.1 280.9 129.8 268.7 128.6C264.6 128.2 260.3 128 256 128C251.7 128 247.4 128.2 243.3 128.6C231.1 129.8 218.8 123.1 214.3 112.6L183.1 36.82C178.8 24.02 185.5 9.433 198.1 6.374C217.3 2.203 236.4 0 256 0C275.6 0 294.7 2.203 313 6.374C326.5 9.433 333.2 24.02 328 36.82L297.7 112.6zM122.3 37.63C134.2 30.36 149.3 36.27 154.4 49.18L184.9 125.3C189.4 136.5 184.7 148.1 175.4 156.5C174.1 157.6 172.8 158.7 171.5 159.9C162.2 168.1 148.4 170.4 138.1 163.5L70.52 118.5C59.13 110.9 56.32 95.21 65.46 85.02C81.99 66.62 101.1 50.63 122.3 37.63H122.3zM379.5 222.1C376.3 210.7 379.7 198.1 389.5 191.6L458.1 145.8C469.7 138.1 485.6 141.9 491.2 154.7C501.6 178.8 508.4 204.8 510.9 232C512.1 245.2 501.3 255.1 488 255.1H408C394.7 255.1 384.2 245.2 381.8 232.1C381.1 228.7 380.4 225.4 379.5 222.1V222.1zM122.5 191.6C132.3 198.1 135.7 210.7 132.5 222.1C131.6 225.4 130.9 228.7 130.2 232.1C127.8 245.2 117.3 256 104 256H24C10.75 256-.1184 245.2 1.107 232C3.636 204.8 10.43 178.8 20.82 154.7C26.36 141.9 42.26 138.1 53.91 145.8L122.5 191.6zM104 288C117.3 288 128 298.7 128 312V360C128 373.3 117.3 384 104 384H24C10.75 384 0 373.3 0 360V312C0 298.7 10.75 288 24 288H104zM488 288C501.3 288 512 298.7 512 312V360C512 373.3 501.3 384 488 384H408C394.7 384 384 373.3 384 360V312C384 298.7 394.7 288 408 288H488zM104 416C117.3 416 128 426.7 128 440V488C128 501.3 117.3 512 104 512H24C10.75 512 0 501.3 0 488V440C0 426.7 10.75 416 24 416H104zM488 416C501.3 416 512 426.7 512 440V488C512 501.3 501.3 512 488 512H408C394.7 512 384 501.3 384 488V440C384 426.7 394.7 416 408 416H488zM272 464C272 472.8 264.8 480 256 480C247.2 480 240 472.8 240 464V192C240 183.2 247.2 176 256 176C264.8 176 272 183.2 272 192V464zM208 464C208 472.8 200.8 480 192 480C183.2 480 176 472.8 176 464V224C176 215.2 183.2 208 192 208C200.8 208 208 215.2 208 224V464zM336 464C336 472.8 328.8 480 320 480C311.2 480 304 472.8 304 464V224C304 215.2 311.2 208 320 208C328.8 208 336 215.2 336 224V464z" - } - }, - "free": [ - "solid" - ] - }, - "dyalog": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f399", - "label": "Dyalog", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572477, - "raw": "", - "viewBox": [ - 0, - 0, - 416, - 512 - ], - "width": 416, - "height": 512, - "path": "M0 32v119.2h64V96h107.2C284.6 96 352 176.2 352 255.9 352 332 293.4 416 171.2 416H0v64h171.2C331.9 480 416 367.3 416 255.9c0-58.7-22.1-113.4-62.3-154.3C308.9 56 245.7 32 171.2 32H0z" - } - }, - "free": [ - "brands" - ] - }, - "e": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "45", - "aliases": { - "unicodes": { - "composite": [ - "65" - ] - } - }, - "label": "E", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 448c0 17.67-14.33 32-32 32H32c-17.67 0-32-14.33-32-32v-384C0 46.34 14.33 32.01 32 32.01h256c17.67 0 32 14.33 32 32s-14.33 32-32 32H64v128h160c17.67 0 32 14.32 32 31.99s-14.33 32.01-32 32.01H64v128h224C305.7 416 320 430.3 320 448z" - } - }, - "free": [ - "solid" - ] - }, - "ear-deaf": { - "changes": [ - "4.6.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2a4", - "aliases": { - "names": [ - "deaf", - "deafness", - "hard-of-hearing" - ], - "unicodes": { - "secondary": [ - "10f2a4" - ] - } - }, - "label": "Ear deaf", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M192 319.1C185.8 313.7 177.6 310.6 169.4 310.6S153 313.7 146.8 319.1l-137.4 137.4C3.124 463.6 0 471.8 0 480c0 18.3 14.96 31.1 31.1 31.1c8.188 0 16.38-3.124 22.62-9.371l137.4-137.4c6.247-6.247 9.371-14.44 9.371-22.62S198.3 326.2 192 319.1zM200 240c0-22.06 17.94-40 40-40s40 17.94 40 40c0 13.25 10.75 24 24 24s24-10.75 24-24c0-48.53-39.47-88-88-88S152 191.5 152 240c0 13.25 10.75 24 24 24S200 253.3 200 240zM511.1 31.1c0-8.188-3.124-16.38-9.371-22.62s-14.44-9.372-22.63-9.372s-16.38 3.124-22.62 9.372L416 50.75c-6.248 6.248-9.372 14.44-9.372 22.63c0 8.188 3.123 16.38 9.37 22.62c6.247 6.248 14.44 9.372 22.63 9.372s16.38-3.124 22.63-9.372l41.38-41.38C508.9 48.37 511.1 40.18 511.1 31.1zM415.1 241.6c0-57.78-42.91-177.6-175.1-177.6c-153.6 0-175.2 150.8-175.2 160.4c0 17.32 14.99 31.58 32.75 31.58c16.61 0 29.25-13.07 31.24-29.55c6.711-55.39 54.02-98.45 111.2-98.45c80.45 0 111.2 75.56 111.2 119.6c0 57.94-38.22 98.14-46.37 106.3L288 370.7v13.25c0 31.4-22.71 57.58-52.58 62.98C220.4 449.7 208 463.3 208 478.6c0 17.95 14.72 32.09 32.03 32.09c4.805 0 100.5-14.34 111.2-112.7C412.6 335.8 415.1 263.4 415.1 241.6z" - } - }, - "free": [ - "solid" - ] - }, - "ear-listen": { - "changes": [ - "4.6.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2a2", - "aliases": { - "names": [ - "assistive-listening-systems" - ], - "unicodes": { - "secondary": [ - "10f2a2" - ] - } - }, - "label": "Ear listen", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M160.1 320c-17.64 0-32.02 14.37-32.02 31.1s14.38 31.1 32.02 31.1s32.02-14.37 32.02-31.1S177.8 320 160.1 320zM86.66 361.4c-12.51-12.49-32.77-12.49-45.27 0c-12.51 12.5-12.51 32.78 0 45.27l63.96 63.99c12.51 12.49 32.77 12.49 45.27 .002c12.51-12.5 12.51-32.78 0-45.27L86.66 361.4zM32.02 448C14.38 448 0 462.4 0 480S14.38 512 32.02 512c17.64 0 32.02-14.37 32.02-31.1S49.66 448 32.02 448zM287.7 70.31c-110.9-29.38-211.7 47.53-222.8 150.9C62.1 239.9 78.73 255.1 97.57 255.1c16.61 0 29.25-13.07 31.24-29.55c6.934-57.22 57.21-101.3 116.9-98.3c71.71 3.594 117.1 76.82 102.5 146.9c-6.551 29.65-21.4 56.87-43.38 78.87L288 370.7v13.25c0 31.4-22.71 57.58-52.58 62.98C220.4 449.7 208 463.3 208 478.6c0 19.78 17.88 34.94 37.38 31.64c55.92-9.443 99.63-55.28 105.9-112.2c40.11-40.68 62.89-93.95 64.65-150.9C418.4 166.4 365.8 91 287.7 70.31zM240 200c22.06 0 40 17.94 40 40c0 13.25 10.75 24 24 24s24-10.75 24-24c0-48.53-39.47-88-88-88S152 191.5 152 240c0 13.25 10.75 24 24 24S200 253.3 200 240C200 217.9 217.9 200 240 200zM397.8 3.125c-15.91-7.594-35.05-.8438-42.66 15.09c-7.594 15.97-.8281 35.06 15.12 42.66C417.5 83.41 448 134.9 448 192c0 17.69 14.33 32 32 32S512 209.7 512 192C512 110.3 467.2 36.19 397.8 3.125z" - } - }, - "free": [ - "solid" - ] - }, - "earlybirds": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f39a", - "label": "Earlybirds", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 480, - 512 - ], - "width": 480, - "height": 512, - "path": "M313.2 47.5c1.2-13 21.3-14 36.6-8.7 .9 .3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM319.4 160c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm-159.7 0c-8.8 0-16 7.2-16 16s7.2 16 16 16 16-7.2 16-16-7.2-16-16-16zm318.5 163.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2 .3 .9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2 .8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7 .9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2 .8-10.5-25.4 21.5-42.6 66.8-73.4 .7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1 .3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3C203.3 29 215.2 8.5 216.2 8c1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1 .6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7 .6 11.6 .8 12.7 2.6 .3 .5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM207.4 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z" - } - }, - "free": [ - "brands" - ] - }, - "earth-africa": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f57c", - "aliases": { - "names": [ - "globe-africa" - ], - "unicodes": { - "composite": [ - "1f30d" - ], - "secondary": [ - "10f57c" - ] - } - }, - "label": "Earth Africa", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573227, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM177.8 63.19L187.8 80.62C190.5 85.46 192 90.93 192 96.5V137.9C192 141.8 193.6 145.6 196.3 148.3C202.6 154.6 212.8 153.1 218.3 147.1L231.9 130.1C236.6 124.2 244.8 122.4 251.6 125.8L266.8 133.4C270.2 135.1 273.1 136 277.8 136C284.3 136 290.6 133.4 295.2 128.8L299.1 124.9C302 121.1 306.5 121.2 310.1 123.1L339.4 137.7C347.1 141.6 352 149.5 352 158.1C352 168.6 344.9 177.8 334.7 180.3L299.3 189.2C291.9 191 284.2 190.7 276.1 188.3L244.1 177.7C241.7 176.6 238.2 176 234.8 176C227.8 176 220.1 178.3 215.4 182.5L176 212C165.9 219.6 160 231.4 160 244V272C160 298.5 181.5 320 208 320H240C248.8 320 256 327.2 256 336V384C256 401.7 270.3 416 288 416C298.1 416 307.6 411.3 313.6 403.2L339.2 369.1C347.5 357.1 352 344.5 352 330.7V318.6C352 314.7 354.6 311.3 358.4 310.4L363.7 309.1C375.6 306.1 384 295.4 384 283.1C384 275.1 381.2 269.2 376.2 264.2L342.7 230.7C338.1 226.1 338.1 221 342.7 217.3C348.4 211.6 356.8 209.6 364.5 212.2L378.6 216.9C390.9 220.1 404.3 215.4 410.1 203.8C413.6 196.8 421.3 193.1 428.1 194.6L456.4 200.1C431.1 112.4 351.5 48 256 48C228.3 48 201.1 53.4 177.8 63.19L177.8 63.19z" - } - }, - "free": [ - "solid" - ] - }, - "earth-americas": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f57d", - "aliases": { - "names": [ - "earth", - "earth-america", - "globe-americas" - ], - "unicodes": { - "composite": [ - "1f30e" - ], - "secondary": [ - "10f57d" - ] - } - }, - "label": "Earth americas", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM57.71 192.1L67.07 209.4C75.36 223.9 88.99 234.6 105.1 239.2L162.1 255.7C180.2 260.6 192 276.3 192 294.2V334.1C192 345.1 198.2 355.1 208 359.1C217.8 364.9 224 374.9 224 385.9V424.9C224 440.5 238.9 451.7 253.9 447.4C270.1 442.8 282.5 429.1 286.6 413.7L289.4 402.5C293.6 385.6 304.6 371.1 319.7 362.4L327.8 357.8C342.8 349.3 352 333.4 352 316.1V307.9C352 295.1 346.9 282.9 337.9 273.9L334.1 270.1C325.1 261.1 312.8 255.1 300.1 255.1H256.1C245.9 255.1 234.9 253.1 225.2 247.6L190.7 227.8C186.4 225.4 183.1 221.4 181.6 216.7C178.4 207.1 182.7 196.7 191.7 192.1L197.7 189.2C204.3 185.9 211.9 185.3 218.1 187.7L242.2 195.4C250.3 198.1 259.3 195 264.1 187.9C268.8 180.8 268.3 171.5 262.9 165L249.3 148.8C239.3 136.8 239.4 119.3 249.6 107.5L265.3 89.12C274.1 78.85 275.5 64.16 268.8 52.42L266.4 48.26C262.1 48.09 259.5 48 256 48C163.1 48 84.4 108.9 57.71 192.1L57.71 192.1zM437.6 154.5L412 164.8C396.3 171.1 388.2 188.5 393.5 204.6L410.4 255.3C413.9 265.7 422.4 273.6 433 276.3L462.2 283.5C463.4 274.5 464 265.3 464 256C464 219.2 454.4 184.6 437.6 154.5H437.6z" - } - }, - "free": [ - "solid" - ] - }, - "earth-asia": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f57e", - "aliases": { - "names": [ - "globe-asia" - ], - "unicodes": { - "composite": [ - "1f30f" - ], - "secondary": [ - "10f57e" - ] - } - }, - "label": "Earth Asia", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM51.68 295.1L83.41 301.5C91.27 303.1 99.41 300.6 105.1 294.9L120.5 279.5C132 267.1 151.6 271.1 158.9 285.8L168.2 304.3C172.1 313.9 182.8 319.1 193.5 319.1C208.7 319.1 219.6 305.4 215.2 290.8L209.3 270.9C204.6 255.5 216.2 240 232.3 240H234.6C247.1 240 260.5 233.3 267.9 222.2L278.6 206.1C284.2 197.7 283.9 186.6 277.8 178.4L261.7 156.9C251.4 143.2 258.4 123.4 275.1 119.2L292.1 114.1C299.6 113.1 305.7 107.8 308.6 100.6L324.9 59.69C303.4 52.12 280.2 48 255.1 48C141.1 48 47.1 141.1 47.1 256C47.1 269.4 49.26 282.5 51.68 295.1L51.68 295.1zM450.4 300.4L434.6 304.9C427.9 306.7 420.8 304 417.1 298.2L415.1 295.1C409.1 285.7 398.7 279.1 387.5 279.1C376.4 279.1 365.1 285.7 359.9 295.1L353.8 304.6C352.4 306.8 350.5 308.7 348.2 309.1L311.1 330.1C293.9 340.2 286.5 362.5 294.1 381.4L300.5 393.8C309.1 413 331.2 422.3 350.1 414.9L353.5 413.1C363.6 410.2 374.8 411.8 383.5 418.1L385 419.2C422.2 389.7 449.1 347.8 459.4 299.7C456.4 299.4 453.4 299.6 450.4 300.4H450.4zM156.1 367.5L188.1 375.5C196.7 377.7 205.4 372.5 207.5 363.9C209.7 355.3 204.5 346.6 195.9 344.5L163.9 336.5C155.3 334.3 146.6 339.5 144.5 348.1C142.3 356.7 147.5 365.4 156.1 367.5V367.5zM236.5 328.1C234.3 336.7 239.5 345.4 248.1 347.5C256.7 349.7 265.4 344.5 267.5 335.9L275.5 303.9C277.7 295.3 272.5 286.6 263.9 284.5C255.3 282.3 246.6 287.5 244.5 296.1L236.5 328.1zM321.7 120.8L305.7 152.8C301.7 160.7 304.9 170.4 312.8 174.3C320.7 178.3 330.4 175.1 334.3 167.2L350.3 135.2C354.3 127.3 351.1 117.6 343.2 113.7C335.3 109.7 325.6 112.9 321.7 120.8V120.8z" - } - }, - "free": [ - "solid" - ] - }, - "earth-europe": { - "changes": [ - "5.6.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7a2", - "aliases": { - "names": [ - "globe-europe" - ], - "unicodes": { - "secondary": [ - "10f7a2" - ] - } - }, - "label": "Earth Europe", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM266.3 48.25L232.5 73.6C227.2 77.63 224 83.95 224 90.67V99.72C224 106.5 229.5 112 236.3 112C238.7 112 241.1 111.3 243.1 109.9L284.9 82.06C286.9 80.72 289.3 80 291.7 80H292.7C298.9 80 304 85.07 304 91.31C304 94.31 302.8 97.19 300.7 99.31L280.8 119.2C275 124.1 267.9 129.4 260.2 131.9L233.6 140.8C227.9 142.7 224 148.1 224 154.2C224 157.9 222.5 161.5 219.9 164.1L201.9 182.1C195.6 188.4 192 197.1 192 206.1V210.3C192 226.7 205.6 240 221.9 240C232.9 240 243.1 233.8 248 224L252 215.9C254.5 211.1 259.4 208 264.8 208C269.4 208 273.6 210.1 276.3 213.7L292.6 235.5C294.7 238.3 298.1 240 301.7 240C310.1 240 315.6 231.1 311.8 223.6L310.7 221.3C307.1 214.3 310.7 205.8 318.1 203.3L339.3 196.2C346.9 193.7 352 186.6 352 178.6C352 168.3 360.3 160 370.6 160H400C408.8 160 416 167.2 416 176C416 184.8 408.8 192 400 192H379.3C372.1 192 365.1 194.9 360 200L355.3 204.7C353.2 206.8 352 209.7 352 212.7C352 218.9 357.1 224 363.3 224H374.6C380.6 224 386.4 226.4 390.6 230.6L397.2 237.2C398.1 238.1 400 241.4 400 244C400 246.6 398.1 249 397.2 250.8L389.7 258.3C386 261.1 384 266.9 384 272C384 277.1 386 282 389.7 285.7L408 304C418.2 314.2 432.1 320 446.6 320H453.1C460.5 299.8 464 278.3 464 256C464 144.6 376.4 53.64 266.3 48.25V48.25zM438.4 356.1C434.7 353.5 430.2 352 425.4 352C419.4 352 413.6 349.6 409.4 345.4L395.1 331.1C388.3 324.3 377.9 320 367.1 320C357.4 320 347.9 316.5 340.5 310.2L313.1 287.4C302.4 277.5 287.6 271.1 272.3 271.1H251.4C238.7 271.1 226.4 275.7 215.9 282.7L188.5 301C170.7 312.9 160 332.9 160 354.3V357.5C160 374.5 166.7 390.7 178.7 402.7L194.7 418.7C203.2 427.2 214.7 432 226.7 432H248C261.3 432 272 442.7 272 456C272 458.5 272.4 461 273.1 463.3C344.5 457.5 405.6 415.7 438.4 356.1L438.4 356.1zM164.7 100.7L132.7 132.7C126.4 138.9 126.4 149.1 132.7 155.3C138.9 161.6 149.1 161.6 155.3 155.3L187.3 123.3C193.6 117.1 193.6 106.9 187.3 100.7C181.1 94.44 170.9 94.44 164.7 100.7V100.7z" - } - }, - "free": [ - "solid" - ] - }, - "earth-oceania": { - "changes": [ - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e47b", - "aliases": { - "names": [ - "globe-oceania" - ] - }, - "label": "Earth Oceania", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM215.5 360.6L240.9 377C247.1 381.6 256.2 384 264.6 384C278 384 290.7 377.8 298.1 367.2L311 351.8C316.8 344.4 320 335.2 320 325.8C320 316.4 316.8 307.2 311 299.8L293.1 276.9C288.3 270.7 284.4 263.1 281.6 256.7L271.5 230.8C269.9 226.7 265.9 224 261.5 224C258 224 254.8 225.6 252.8 228.4L242.4 242.6C237.7 248.1 229.7 252.1 221.9 250.5C218.7 249.8 215.8 247.1 213.8 245.4L209.3 239.3C202.1 229.7 190.7 224 178.7 224C166.7 224 155.3 229.7 148.1 239.3L142.8 246.3C141.3 248.4 139.2 250 136.9 251.1L101.6 267.9C81.08 277.7 72.8 302.6 83.37 322.7L86.65 328.9C95.67 346.1 115.7 354.3 134.1 348.4L149.5 343.6C156 341.5 163.1 341.6 169.6 343.8L208.6 357.3C211 358.1 213.4 359.2 215.5 360.6H215.5zM273.8 142.5C264.3 132.1 250.8 128.9 237.6 131.5L199.1 139.2C183.8 142.3 181.5 163.2 195.7 169.5L238.5 188.6C243.7 190.8 249.2 192 254.8 192H284.7C298.9 192 306.1 174.8 296 164.7L273.8 142.5zM264 448H280C288.8 448 296 440.8 296 432C296 423.2 288.8 416 280 416H264C255.2 416 248 423.2 248 432C248 440.8 255.2 448 264 448zM431.2 298.9C428.4 290.6 419.3 286 410.9 288.8C402.6 291.6 398 300.7 400.8 309.1L408.8 333.1C411.6 341.4 420.7 345.1 429.1 343.2C437.4 340.4 441.1 331.3 439.2 322.9L431.2 298.9zM411.3 379.3C417.6 373.1 417.6 362.9 411.3 356.7C405.1 350.4 394.9 350.4 388.7 356.7L356.7 388.7C350.4 394.9 350.4 405.1 356.7 411.3C362.9 417.6 373.1 417.6 379.3 411.3L411.3 379.3z" - } - }, - "free": [ - "solid" - ] - }, - "ebay": { - "changes": [ - "5.0.11", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f4", - "label": "eBay", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M606 189.5l-54.8 109.9-54.9-109.9h-37.5l10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1h33.7c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33v3.4c-12.7 0-28 .1-41.7 .4-42.4 .9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2v-80.6h-32.1v169.5c0 10.3-.6 22.9-1.1 33.1h31.5c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6 .3 13.3 1.1 20.2h29.8c-.7-8.2-1-17.5-1-26.8v-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1h35.9L640 189.5zM243.7 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6zm-411.9 1.6h128.8v-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1h-33.1c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4H33.3c6.9-56.6 92.1-54.7 94.4 0z" - } - }, - "free": [ - "brands" - ] - }, - "edge": { - "changes": [ - "4.5.0", - "5.0.0", - "5.12.1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f282", - "label": "Edge Browser", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M120.1 37.44C161.1 12.23 207.7-.7753 255 .0016C423 .0016 512 123.8 512 219.5C511.9 252.2 499 283.4 476.1 306.7C453.2 329.9 422.1 343.2 389.4 343.7C314.2 343.7 297.9 320.6 297.9 311.7C297.9 307.9 299.1 305.5 302.7 302.3L303.7 301.1L304.1 299.5C314.6 288 320 273.3 320 257.9C320 179.2 237.8 115.2 136 115.2C98.46 114.9 61.46 124.1 28.48 142.1C55.48 84.58 111.2 44.5 119.8 38.28C120.6 37.73 120.1 37.44 120.1 37.44V37.44zM135.7 355.5C134.3 385.5 140.3 415.5 152.1 442.7C165.7 469.1 184.8 493.7 208.6 512C149.1 500.5 97.11 468.1 59.2 422.7C21.12 376.3 0 318.4 0 257.9C0 206.7 62.4 163.5 136 163.5C172.6 162.9 208.4 174.4 237.8 196.2L234.2 197.4C182.7 215 135.7 288.1 135.7 355.5V355.5zM469.8 400L469.1 400.1C457.3 418.9 443.2 435.2 426.9 449.6C396.1 477.6 358.8 495.1 318.1 499.5C299.5 499.8 281.3 496.3 264.3 488.1C238.7 477.8 217.2 458.1 202.7 435.1C188.3 411.2 181.6 383.4 183.7 355.5C183.1 335.4 189.1 315.2 198.7 297.3C212.6 330.4 236.2 358.6 266.3 378.1C296.4 397.6 331.8 407.6 367.7 406.7C398.7 407 429.8 400 457.9 386.2L459.8 385.3C463.7 383 467.5 381.4 471.4 385.3C475.9 390.2 473.2 394.5 470.2 399.3C470 399.5 469.9 399.8 469.8 400V400z" - } - }, - "free": [ - "brands" - ] - }, - "edge-legacy": { - "changes": [ - "5.13.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e078", - "label": "Edge Legacy Browser", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M25.71 228.2l.35-.48c0 .16 0 .32-.07 .48zm460.6 15.51c0-44-7.76-84.46-28.81-122.4C416.5 47.88 343.9 8 258.9 8 119 7.72 40.62 113.2 26.06 227.7c42.42-61.31 117.1-121.4 220.4-125 0 0 109.7 0 99.42 105H170c6.37-37.39 18.55-59 34.34-78.93-75.05 34.9-121.8 96.1-120.8 188.3 .83 71.45 50.13 144.8 120.8 172 83.35 31.84 192.8 7.2 240.1-21.33V363.3C363.6 419.8 173.6 424.2 172.2 295.7H486.3V243.7z" - } - }, - "free": [ - "brands" - ] - }, - "egg": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7fb", - "aliases": { - "unicodes": { - "composite": [ - "1f95a" - ], - "secondary": [ - "10f7fb" - ] - } - }, - "label": "Egg", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M192 16c-106 0-192 182-192 288c0 106 85.1 192 192 192c105.1 0 192-85.1 192-192C384 198 297.1 16 192 16zM160.1 138C128.6 177.1 96 249.8 96 304C96 312.8 88.84 320 80 320S64 312.8 64 304c0-63.56 36.7-143.3 71.22-186c5.562-6.906 15.64-7.969 22.5-2.406C164.6 121.1 165.7 131.2 160.1 138z" - } - }, - "free": [ - "solid" - ] - }, - "eject": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f052", - "aliases": { - "unicodes": { - "composite": [ - "23cf" - ], - "secondary": [ - "10f052" - ] - } - }, - "label": "eject", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M48.01 319.1h351.1c41.62 0 63.49-49.63 35.37-80.38l-175.1-192.1c-19-20.62-51.75-20.62-70.75 0L12.64 239.6C-15.48 270.2 6.393 319.1 48.01 319.1zM399.1 384H48.01c-26.39 0-47.99 21.59-47.99 47.98C.0117 458.4 21.61 480 48.01 480h351.1c26.39 0 47.99-21.6 47.99-47.99C447.1 405.6 426.4 384 399.1 384z" - } - }, - "free": [ - "solid" - ] - }, - "elementor": { - "changes": [ - "5.0.3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f430", - "label": "Elementor", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M.361 256C.361 397 114 511 255 511C397 511 511 397 511 256C511 116 397 2.05 255 2.05C114 2.05 .361 116 .361 256zM192 150V363H149V150H192zM234 150H362V193H234V150zM362 235V278H234V235H362zM234 320H362V363H234V320z" - } - }, - "free": [ - "brands" - ] - }, - "elevator": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e16d", - "label": "Elevator", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M79 96h130c5.967 0 11.37-3.402 13.75-8.662c2.385-5.262 1.299-11.39-2.754-15.59l-65-67.34c-5.684-5.881-16.31-5.881-21.99 0l-65 67.34C63.95 75.95 62.87 82.08 65.25 87.34C67.63 92.6 73.03 96 79 96zM357 91.59c5.686 5.881 16.31 5.881 21.99 0l65-67.34c4.053-4.199 5.137-10.32 2.754-15.59C444.4 3.402 438.1 0 433 0h-130c-5.967 0-11.37 3.402-13.75 8.662c-2.385 5.262-1.301 11.39 2.752 15.59L357 91.59zM448 128H64c-35.35 0-64 28.65-64 63.1v255.1C0 483.3 28.65 512 64 512h384c35.35 0 64-28.65 64-63.1V192C512 156.7 483.3 128 448 128zM352 224C378.5 224.1 400 245.5 400 272c0 26.46-21.47 47.9-48 48C325.5 319.9 304 298.5 304 272C304 245.5 325.5 224.1 352 224zM160 224C186.5 224.1 208 245.5 208 272c0 26.46-21.47 47.9-48 48C133.5 319.9 112 298.5 112 272C112 245.5 133.5 224.1 160 224zM240 448h-160v-48C80 373.5 101.5 352 128 352h64c26.51 0 48 21.49 48 48V448zM432 448h-160v-48c0-26.51 21.49-48 48-48h64c26.51 0 48 21.49 48 48V448z" - } - }, - "free": [ - "solid" - ] - }, - "ellipsis": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f141", - "aliases": { - "names": [ - "ellipsis-h" - ], - "unicodes": { - "secondary": [ - "10f141" - ] - } - }, - "label": "Ellipsis", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200C94.93 200 120 225.1 120 256zM280 256C280 286.9 254.9 312 224 312C193.1 312 168 286.9 168 256C168 225.1 193.1 200 224 200C254.9 200 280 225.1 280 256zM328 256C328 225.1 353.1 200 384 200C414.9 200 440 225.1 440 256C440 286.9 414.9 312 384 312C353.1 312 328 286.9 328 256z" - } - }, - "free": [ - "solid" - ] - }, - "ellipsis-vertical": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f142", - "aliases": { - "names": [ - "ellipsis-v" - ], - "unicodes": { - "secondary": [ - "10f142" - ] - } - }, - "label": "Ellipsis vertical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573228, - "raw": "", - "viewBox": [ - 0, - 0, - 128, - 512 - ], - "width": 128, - "height": 512, - "path": "M64 360C94.93 360 120 385.1 120 416C120 446.9 94.93 472 64 472C33.07 472 8 446.9 8 416C8 385.1 33.07 360 64 360zM64 200C94.93 200 120 225.1 120 256C120 286.9 94.93 312 64 312C33.07 312 8 286.9 8 256C8 225.1 33.07 200 64 200zM64 152C33.07 152 8 126.9 8 96C8 65.07 33.07 40 64 40C94.93 40 120 65.07 120 96C120 126.9 94.93 152 64 152z" - } - }, - "free": [ - "solid" - ] - }, - "ello": { - "changes": [ - "5.2.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5f1", - "label": "Ello", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S384.1 8 248 8zm143.8 285.2C375.3 358.5 315.8 404.8 248 404.8s-127.3-46.29-143.8-111.6c-1.65-7.44 2.48-15.71 9.92-17.36 7.44-1.65 15.71 2.48 17.36 9.92 14.05 52.91 62 90.11 116.6 90.11s102.5-37.2 116.6-90.11c1.65-7.44 9.92-12.4 17.36-9.92 7.44 1.65 12.4 9.92 9.92 17.36z" - } - }, - "free": [ - "brands" - ] - }, - "ember": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f423", - "label": "Ember", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6 .5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7 .8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5 .3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7 .3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9h1.6s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2h1.9s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zm272.8-123.8s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z" - } - }, - "free": [ - "brands" - ] - }, - "empire": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d1", - "label": "Galactic Empire", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M287.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6V32.4c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM53.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C34 181 24.1 217.5 24.1 256s10 75 27.1 106.6l15.8-9.1c-5.3-10-9.7-20.3-13.6-31.1zM213.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6v-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM93.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6V32.4C163.9 34.6 95.9 76.4 57.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zm309.4 270.2l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6v18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM496 256c0 137-111 248-248 248S0 393 0 256 111 8 248 8s248 111 248 248zm-12.2 0c0-130.1-105.7-235.8-235.8-235.8S12.2 125.9 12.2 256 117.9 491.8 248 491.8 483.8 386.1 483.8 256zm-39-106.6l-15.8 9.1c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C462 331 471.9 294.5 471.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8-9.4 0-18.5 .8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8 9.4 0 18.5-1.1 27.1-2.8l-13.3-66.7z" - } - }, - "free": [ - "brands" - ] - }, - "envelope": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0e0", - "aliases": { - "unicodes": { - "composite": [ - "1f582", - "f003", - "2709" - ], - "secondary": [ - "10f0e0" - ] - } - }, - "label": "Envelope", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 64C490.5 64 512 85.49 512 112C512 127.1 504.9 141.3 492.8 150.4L275.2 313.6C263.8 322.1 248.2 322.1 236.8 313.6L19.2 150.4C7.113 141.3 0 127.1 0 112C0 85.49 21.49 64 48 64H464zM217.6 339.2C240.4 356.3 271.6 356.3 294.4 339.2L512 176V384C512 419.3 483.3 448 448 448H64C28.65 448 0 419.3 0 384V176L217.6 339.2z" - }, - "regular": { - "last_modified": 1658443573032, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 128C0 92.65 28.65 64 64 64H448C483.3 64 512 92.65 512 128V384C512 419.3 483.3 448 448 448H64C28.65 448 0 419.3 0 384V128zM48 128V150.1L220.5 291.7C241.1 308.7 270.9 308.7 291.5 291.7L464 150.1V127.1C464 119.2 456.8 111.1 448 111.1H64C55.16 111.1 48 119.2 48 127.1L48 128zM48 212.2V384C48 392.8 55.16 400 64 400H448C456.8 400 464 392.8 464 384V212.2L322 328.8C283.6 360.3 228.4 360.3 189.1 328.8L48 212.2z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "envelope-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e8", - "label": "Envelope Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M464 64C490.5 64 512 85.49 512 112C512 127.1 504.9 141.3 492.8 150.4L478.9 160.8C412.3 167.2 356.5 210.8 332.6 270.6L275.2 313.6C263.8 322.1 248.2 322.1 236.8 313.6L19.2 150.4C7.113 141.3 0 127.1 0 112C0 85.49 21.49 64 48 64H464zM294.4 339.2L320.8 319.4C320.3 324.9 320 330.4 320 336C320 378.5 335.1 417.6 360.2 448H64C28.65 448 0 419.3 0 384V176L217.6 339.2C240.4 356.3 271.6 356.3 294.4 339.2zM640 336C640 415.5 575.5 480 496 480C416.5 480 352 415.5 352 336C352 256.5 416.5 192 496 192C575.5 192 640 256.5 640 336zM540.7 292.7L480 353.4L451.3 324.7C445.1 318.4 434.9 318.4 428.7 324.7C422.4 330.9 422.4 341.1 428.7 347.3L468.7 387.3C474.9 393.6 485.1 393.6 491.3 387.3L563.3 315.3C569.6 309.1 569.6 298.9 563.3 292.7C557.1 286.4 546.9 286.4 540.7 292.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "envelope-open": { - "changes": [ - "4.7.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2b6", - "aliases": { - "unicodes": { - "composite": [ - "f2b7" - ], - "secondary": [ - "10f2b6" - ] - } - }, - "label": "Envelope Open", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M493.6 163c-24.88-19.62-45.5-35.37-164.3-121.6C312.7 29.21 279.7 0 256.4 0H255.6C232.3 0 199.3 29.21 182.6 41.38c-118.8 86.25-139.4 101.1-164.3 121.6C6.75 172 0 186 0 200.8v263.2C0 490.5 21.49 512 48 512h416c26.51 0 48-21.49 48-47.1V200.8C512 186 505.3 172 493.6 163zM303.2 367.5C289.1 378.5 272.5 384 256 384s-33.06-5.484-47.16-16.47L64 254.9V208.5c21.16-16.59 46.48-35.66 156.4-115.5c3.18-2.328 6.891-5.187 10.98-8.353C236.9 80.44 247.8 71.97 256 66.84c8.207 5.131 19.14 13.6 24.61 17.84c4.09 3.166 7.801 6.027 11.15 8.478C400.9 172.5 426.6 191.7 448 208.5v46.32L303.2 367.5z" - }, - "regular": { - "last_modified": 1658443573032, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M493.6 163c-24.88-19.62-45.5-35.37-164.3-121.6C312.7 29.21 279.7 0 256.4 0H255.6C232.3 0 199.3 29.21 182.6 41.38C63.88 127.6 43.25 143.4 18.38 163C6.75 172 0 186 0 200.8v247.2C0 483.3 28.65 512 64 512h384c35.35 0 64-28.67 64-64.01V200.8C512 186 505.3 172 493.6 163zM464 448c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V276.7l136.1 113.4C204.3 406.8 229.8 416 256 416s51.75-9.211 71.97-26.01L464 276.7V448zM464 214.2l-166.8 138.1c-23.19 19.28-59.34 19.27-82.47 .0156L48 214.2l.1055-13.48c23.24-18.33 42.25-32.97 162.9-120.6c3.082-2.254 6.674-5.027 10.63-8.094C229.4 65.99 246.7 52.59 256 48.62c9.312 3.973 26.62 17.37 34.41 23.41c3.959 3.066 7.553 5.84 10.76 8.186C421.6 167.7 440.7 182.4 464 200.8V214.2z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "envelope-open-text": { - "changes": [ - "5.3.0", - "5.10.1", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f658", - "aliases": { - "unicodes": { - "secondary": [ - "10f658" - ] - } - }, - "label": "Envelope Open-text", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 417.1c-16.38 0-32.88-4.1-46.88-15.12L0 250.9v213.1C0 490.5 21.5 512 48 512h416c26.5 0 48-21.5 48-47.1V250.9l-209.1 151.1C288.9 412 272.4 417.1 256 417.1zM493.6 163C484.8 156 476.4 149.5 464 140.1v-44.12c0-26.5-21.5-48-48-48l-77.5 .0016c-3.125-2.25-5.875-4.25-9.125-6.5C312.6 29.13 279.3-.3732 256 .0018C232.8-.3732 199.4 29.13 182.6 41.5c-3.25 2.25-6 4.25-9.125 6.5L96 48c-26.5 0-48 21.5-48 48v44.12C35.63 149.5 27.25 156 18.38 163C6.75 172 0 186 0 200.8v10.62l96 69.37V96h320v184.7l96-69.37V200.8C512 186 505.3 172 493.6 163zM176 255.1h160c8.836 0 16-7.164 16-15.1c0-8.838-7.164-16-16-16h-160c-8.836 0-16 7.162-16 16C160 248.8 167.2 255.1 176 255.1zM176 191.1h160c8.836 0 16-7.164 16-16c0-8.838-7.164-15.1-16-15.1h-160c-8.836 0-16 7.162-16 15.1C160 184.8 167.2 191.1 176 191.1z" - } - }, - "free": [ - "solid" - ] - }, - "envelopes-bulk": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f674", - "aliases": { - "names": [ - "mail-bulk" - ], - "unicodes": { - "secondary": [ - "10f674" - ] - } - }, - "label": "Envelopes bulk", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M191.9 448.6c-9.766 0-19.48-2.969-27.78-8.891L32 340.2V480c0 17.62 14.38 32 32 32h256c17.62 0 32-14.38 32-32v-139.8L220.2 439.5C211.7 445.6 201.8 448.6 191.9 448.6zM192 192c0-35.25 28.75-64 64-64h224V32c0-17.62-14.38-32-32-32H128C110.4 0 96 14.38 96 32v192h96V192zM320 256H64C46.38 256 32 270.4 32 288v12.18l151 113.8c5.25 3.719 12.7 3.734 18.27-.25L352 300.2V288C352 270.4 337.6 256 320 256zM576 160H256C238.4 160 224 174.4 224 192v32h96c33.25 0 60.63 25.38 63.75 57.88L384 416h192c17.62 0 32-14.38 32-32V192C608 174.4 593.6 160 576 160zM544 288h-64V224h64V288z" - } - }, - "free": [ - "solid" - ] - }, - "envira": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f299", - "label": "Envira Gallery", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32c477.6 0 366.6 317.3 367.1 366.3L448 480h-26l-70.4-71.2c-39 4.2-124.4 34.5-214.4-37C47 300.3 52 214.7 0 32zm79.7 46c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z" - } - }, - "free": [ - "brands" - ] - }, - "equals": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "3d", - "aliases": { - "unicodes": { - "composite": [ - "f52c" - ], - "primary": [ - "f52c" - ], - "secondary": [ - "10f52c", - "103d" - ] - } - }, - "label": "Equals", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M48 192h352c17.69 0 32-14.32 32-32s-14.31-31.1-32-31.1h-352c-17.69 0-32 14.31-32 31.1S30.31 192 48 192zM400 320h-352c-17.69 0-32 14.31-32 31.1s14.31 32 32 32h352c17.69 0 32-14.32 32-32S417.7 320 400 320z" - } - }, - "free": [ - "solid" - ] - }, - "eraser": { - "changes": [ - "3.1.0", - "5.0.0", - "5.8.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f12d", - "aliases": { - "unicodes": { - "secondary": [ - "10f12d" - ] - } - }, - "label": "eraser", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 416C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H150.6C133.7 480 117.4 473.3 105.4 461.3L25.37 381.3C.3786 356.3 .3786 315.7 25.37 290.7L258.7 57.37C283.7 32.38 324.3 32.38 349.3 57.37L486.6 194.7C511.6 219.7 511.6 260.3 486.6 285.3L355.9 416H480zM265.4 416L332.7 348.7L195.3 211.3L70.63 336L150.6 416L265.4 416z" - } - }, - "free": [ - "solid" - ] - }, - "erlang": { - "changes": [ - "5.0.0", - "5.0.3", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f39d", - "label": "Erlang", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M87.2 53.5H0v405h100.4c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9 .1-85.1 33.5-89.2 83.2h169.9c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6h.3l-.1-.1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7 .5 6 .5 11.7 0 24.1H230.2c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8H640v-405z" - } - }, - "free": [ - "brands" - ] - }, - "ethereum": { - "changes": [ - "5.0.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f42e", - "label": "Ethereum", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M311.9 260.8L160 353.6 8 260.8 160 0l151.9 260.8zM160 383.4L8 290.6 160 512l152-221.4-152 92.8z" - } - }, - "free": [ - "brands" - ] - }, - "ethernet": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f796", - "aliases": { - "unicodes": { - "secondary": [ - "10f796" - ] - } - }, - "label": "Ethernet", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573229, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 208v224c0 8.75-7.25 16-16 16H416v-128h-32v128h-64v-128h-32v128H224v-128H192v128H128v-128H96v128H16C7.25 448 0 440.8 0 432v-224C0 199.2 7.25 192 16 192H64V144C64 135.2 71.25 128 80 128H128V80C128 71.25 135.2 64 144 64h224C376.8 64 384 71.25 384 80V128h48C440.8 128 448 135.2 448 144V192h48C504.8 192 512 199.2 512 208z" - } - }, - "free": [ - "solid" - ] - }, - "etsy": { - "changes": [ - "4.7.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2d7", - "label": "Etsy", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 348c-1.75 10.75-13.75 110-15.5 132-117.9-4.299-219.9-4.743-368.5 0v-25.5c45.46-8.948 60.63-8.019 61-35.25 1.793-72.32 3.524-244.1 0-322-1.029-28.46-12.13-26.76-61-36v-25.5c73.89 2.358 255.9 8.551 362.1-3.75-3.5 38.25-7.75 126.5-7.75 126.5H332C320.9 115.7 313.2 68 277.3 68h-137c-10.25 0-10.75 3.5-10.75 9.75V241.5c58 .5 88.5-2.5 88.5-2.5 29.77-.951 27.56-8.502 40.75-65.25h25.75c-4.407 101.4-3.91 61.83-1.75 160.3H257c-9.155-40.09-9.065-61.04-39.5-61.5 0 0-21.5-2-88-2v139c0 26 14.25 38.25 44.25 38.25H263c63.64 0 66.56-24.1 98.75-99.75H384z" - } - }, - "free": [ - "brands" - ] - }, - "euro-sign": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f153", - "aliases": { - "names": [ - "eur", - "euro" - ], - "unicodes": { - "composite": [ - "20ac" - ], - "secondary": [ - "10f153" - ] - } - }, - "label": "Euro Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M64 240C46.33 240 32 225.7 32 208C32 190.3 46.33 176 64 176H92.29C121.9 92.11 201.1 32 296 32H320C337.7 32 352 46.33 352 64C352 81.67 337.7 96 320 96H296C238.1 96 187.8 128.4 162.1 176H288C305.7 176 320 190.3 320 208C320 225.7 305.7 240 288 240H144.2C144.1 242.6 144 245.3 144 248V264C144 266.7 144.1 269.4 144.2 272H288C305.7 272 320 286.3 320 304C320 321.7 305.7 336 288 336H162.1C187.8 383.6 238.1 416 296 416H320C337.7 416 352 430.3 352 448C352 465.7 337.7 480 320 480H296C201.1 480 121.9 419.9 92.29 336H64C46.33 336 32 321.7 32 304C32 286.3 46.33 272 64 272H80.15C80.05 269.3 80 266.7 80 264V248C80 245.3 80.05 242.7 80.15 240H64z" - } - }, - "free": [ - "solid" - ] - }, - "evernote": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f839", - "label": "Evernote", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M120.8 132.2c1.6 22.31-17.55 21.59-21.61 21.59-68.93 0-73.64-1-83.58 3.34-.56 .22-.74 0-.37-.37L123.8 46.45c.38-.37 .6-.22 .38 .37-4.35 9.99-3.35 15.09-3.35 85.39zm79 308c-14.68-37.08 13-76.93 52.52-76.62 17.49 0 22.6 23.21 7.95 31.42-6.19 3.3-24.95 1.74-25.14 19.2-.05 17.09 19.67 25 31.2 24.89A45.64 45.64 0 0 0 312 393.5v-.08c0-11.63-7.79-47.22-47.54-55.34-7.72-1.54-65-6.35-68.35-50.52-3.74 16.93-17.4 63.49-43.11 69.09-8.74 1.94-69.68 7.64-112.9-36.77 0 0-18.57-15.23-28.23-57.95-3.38-15.75-9.28-39.7-11.14-62 0-18 11.14-30.45 25.07-32.2 81 0 90 2.32 101-7.8 9.82-9.24 7.8-15.5 7.8-102.8 1-8.3 7.79-30.81 53.41-24.14 6 .86 31.91 4.18 37.48 30.64l64.26 11.15c20.43 3.71 70.94 7 80.6 57.94 22.66 121.1 8.91 238.5 7.8 238.5C362.1 485.5 267.1 480 267.1 480c-18.95-.23-54.25-9.4-67.27-39.83zm80.94-204.8c-1 1.92-2.2 6 .85 7 14.09 4.93 39.75 6.84 45.88 5.53 3.11-.25 3.05-4.43 2.48-6.65-3.53-21.85-40.83-26.5-49.24-5.92z" - } - }, - "free": [ - "brands" - ] - }, - "exclamation": { - "changes": [ - "3.1.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "21", - "aliases": { - "unicodes": { - "composite": [ - "2755", - "2757", - "f12a" - ], - "primary": [ - "f12a" - ], - "secondary": [ - "10f12a", - "1021" - ] - } - }, - "label": "exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 128, - 512 - ], - "width": 128, - "height": 512, - "path": "M64 352c17.69 0 32-14.32 32-31.1V64.01c0-17.67-14.31-32.01-32-32.01S32 46.34 32 64.01v255.1C32 337.7 46.31 352 64 352zM64 400c-22.09 0-40 17.91-40 40s17.91 39.1 40 39.1s40-17.9 40-39.1S86.09 400 64 400z" - } - }, - "free": [ - "solid" - ] - }, - "expand": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f065", - "aliases": { - "unicodes": { - "secondary": [ - "10f065" - ] - } - }, - "label": "Expand", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M128 32H32C14.31 32 0 46.31 0 64v96c0 17.69 14.31 32 32 32s32-14.31 32-32V96h64c17.69 0 32-14.31 32-32S145.7 32 128 32zM416 32h-96c-17.69 0-32 14.31-32 32s14.31 32 32 32h64v64c0 17.69 14.31 32 32 32s32-14.31 32-32V64C448 46.31 433.7 32 416 32zM128 416H64v-64c0-17.69-14.31-32-32-32s-32 14.31-32 32v96c0 17.69 14.31 32 32 32h96c17.69 0 32-14.31 32-32S145.7 416 128 416zM416 320c-17.69 0-32 14.31-32 32v64h-64c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c17.69 0 32-14.31 32-32v-96C448 334.3 433.7 320 416 320z" - } - }, - "free": [ - "solid" - ] - }, - "expeditedssl": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f23e", - "label": "ExpeditedSSL", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572478, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 43.4C130.6 43.4 35.4 138.6 35.4 256S130.6 468.6 248 468.6 460.6 373.4 460.6 256 365.4 43.4 248 43.4zm-97.4 132.9c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6c0-82.1-124-82.1-124 0v26.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-26.6zM389.7 380c0 9.7-8 17.7-17.7 17.7H124c-9.7 0-17.7-8-17.7-17.7V238.3c0-9.7 8-17.7 17.7-17.7h248c9.7 0 17.7 8 17.7 17.7V380zm-248-137.3v132.9c0 2.5-1.9 4.4-4.4 4.4h-8.9c-2.5 0-4.4-1.9-4.4-4.4V242.7c0-2.5 1.9-4.4 4.4-4.4h8.9c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4v31.6c0 5-3.9 8.9-8.9 8.9h-17.7c-5 0-8.9-3.9-8.9-8.9v-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm0 478.3C121 486.3 17.7 383 17.7 256S121 25.7 248 25.7 478.3 129 478.3 256 375 486.3 248 486.3z" - } - }, - "free": [ - "brands" - ] - }, - "explosion": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4e9", - "label": "Explosion", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M499.6 11.32C506.3 .5948 520.1-3.127 531.3 2.814C542.4 8.754 547.1 22.32 541.9 33.84L404.8 338.6C406.9 340.9 409 343.3 411.1 345.7L508.2 291.1C518.7 285.2 531.9 287.9 539.1 297.5C546.4 307 545.4 320.5 536.1 328.1L449.9 415.1H378.5C365.4 378.7 329.8 351.1 288 351.1C246.2 351.1 210.6 378.7 197.5 415.1H117.8L42.34 363.7C32.59 356.1 29.23 344.1 34.43 333.5C39.64 322.8 51.84 317.6 63.16 321.1L160.4 351.5C163.3 347.6 166.5 343.8 169.7 340.2L107.4 236.3C101.4 226.3 103.5 213.3 112.5 205.7C121.5 198.1 134.7 198.1 143.6 205.8L246 293.6C247.5 293.2 249 292.8 250.5 292.4L264.1 149.7C265.3 137.4 275.6 127.1 288 127.1C300.4 127.1 310.7 137.4 311.9 149.7L325.4 291.6L499.6 11.32zM544 447.1C561.7 447.1 576 462.3 576 479.1C576 497.7 561.7 511.1 544 511.1H32C14.33 511.1 0 497.7 0 479.1C0 462.3 14.33 447.1 32 447.1H544zM288-.0046C301.3-.0046 312 10.74 312 23.1V71.1C312 85.25 301.3 95.1 288 95.1C274.7 95.1 264 85.25 264 71.1V23.1C264 10.74 274.7-.0046 288-.0046V-.0046z" - } - }, - "free": [ - "solid" - ] - }, - "eye": { - "changes": [ - "1.0.0", - "5.0.0", - "5.7.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f06e", - "aliases": { - "unicodes": { - "composite": [ - "1f441" - ], - "secondary": [ - "10f06e" - ] - } - }, - "label": "Eye", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M279.6 160.4C282.4 160.1 285.2 160 288 160C341 160 384 202.1 384 256C384 309 341 352 288 352C234.1 352 192 309 192 256C192 253.2 192.1 250.4 192.4 247.6C201.7 252.1 212.5 256 224 256C259.3 256 288 227.3 288 192C288 180.5 284.1 169.7 279.6 160.4zM480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6V112.6zM288 112C208.5 112 144 176.5 144 256C144 335.5 208.5 400 288 400C367.5 400 432 335.5 432 256C432 176.5 367.5 112 288 112z" - }, - "regular": { - "last_modified": 1658443573033, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M160 256C160 185.3 217.3 128 288 128C358.7 128 416 185.3 416 256C416 326.7 358.7 384 288 384C217.3 384 160 326.7 160 256zM288 336C332.2 336 368 300.2 368 256C368 211.8 332.2 176 288 176C287.3 176 286.7 176 285.1 176C287.3 181.1 288 186.5 288 192C288 227.3 259.3 256 224 256C218.5 256 213.1 255.3 208 253.1C208 254.7 208 255.3 208 255.1C208 300.2 243.8 336 288 336L288 336zM95.42 112.6C142.5 68.84 207.2 32 288 32C368.8 32 433.5 68.84 480.6 112.6C527.4 156 558.7 207.1 573.5 243.7C576.8 251.6 576.8 260.4 573.5 268.3C558.7 304 527.4 355.1 480.6 399.4C433.5 443.2 368.8 480 288 480C207.2 480 142.5 443.2 95.42 399.4C48.62 355.1 17.34 304 2.461 268.3C-.8205 260.4-.8205 251.6 2.461 243.7C17.34 207.1 48.62 156 95.42 112.6V112.6zM288 80C222.8 80 169.2 109.6 128.1 147.7C89.6 183.5 63.02 225.1 49.44 256C63.02 286 89.6 328.5 128.1 364.3C169.2 402.4 222.8 432 288 432C353.2 432 406.8 402.4 447.9 364.3C486.4 328.5 512.1 286 526.6 256C512.1 225.1 486.4 183.5 447.9 147.7C406.8 109.6 353.2 80 288 80V80z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "eye-dropper": { - "changes": [ - "4.2.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1fb", - "aliases": { - "names": [ - "eye-dropper-empty", - "eyedropper" - ], - "unicodes": { - "secondary": [ - "10f1fb" - ] - } - }, - "label": "Eye Dropper", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M482.8 29.23C521.7 68.21 521.7 131.4 482.8 170.4L381.2 271.9L390.6 281.4C403.1 293.9 403.1 314.1 390.6 326.6C378.1 339.1 357.9 339.1 345.4 326.6L185.4 166.6C172.9 154.1 172.9 133.9 185.4 121.4C197.9 108.9 218.1 108.9 230.6 121.4L240.1 130.8L341.6 29.23C380.6-9.744 443.8-9.744 482.8 29.23L482.8 29.23zM55.43 323.3L176.1 202.6L221.4 247.9L100.7 368.6C97.69 371.6 96 375.6 96 379.9V416H132.1C136.4 416 140.4 414.3 143.4 411.3L264.1 290.6L309.4 335.9L188.7 456.6C173.7 471.6 153.3 480 132.1 480H89.69L49.75 506.6C37.06 515.1 20.16 513.4 9.373 502.6C-1.413 491.8-3.086 474.9 5.375 462.2L32 422.3V379.9C32 358.7 40.43 338.3 55.43 323.3L55.43 323.3z" - } - }, - "free": [ - "solid" - ] - }, - "eye-low-vision": { - "changes": [ - "4.6.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2a8", - "aliases": { - "names": [ - "low-vision" - ], - "unicodes": { - "secondary": [ - "10f2a8" - ] - } - }, - "label": "Eye low vision", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM393.6 469.4L54.65 203.7C62.6 190.1 72.08 175.8 83.09 161.5L446.2 447.5C429.8 456.4 412.3 463.8 393.6 469.4V469.4zM34.46 268.3C31.74 261.8 31.27 254.5 33.08 247.8L329.2 479.8C326.1 479.9 323.1 480 320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3H34.46z" - } - }, - "free": [ - "solid" - ] - }, - "eye-slash": { - "changes": [ - "1.0.0", - "5.0.0", - "5.7.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f070", - "aliases": { - "unicodes": { - "secondary": [ - "10f070" - ] - } - }, - "label": "Eye Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM223.1 149.5L313.4 220.3C317.6 211.8 320 202.2 320 191.1C320 180.5 316.1 169.7 311.6 160.4C314.4 160.1 317.2 159.1 320 159.1C373 159.1 416 202.1 416 255.1C416 269.7 413.1 282.7 407.1 294.5L446.6 324.7C457.7 304.3 464 280.9 464 255.1C464 176.5 399.5 111.1 320 111.1C282.7 111.1 248.6 126.2 223.1 149.5zM320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L177.4 235.8C176.5 242.4 176 249.1 176 255.1C176 335.5 240.5 400 320 400C338.7 400 356.6 396.4 373 389.9L446.2 447.5C409.9 467.1 367.8 480 320 480H320z" - }, - "regular": { - "last_modified": 1658443573033, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M150.7 92.77C195 58.27 251.8 32 320 32C400.8 32 465.5 68.84 512.6 112.6C559.4 156 590.7 207.1 605.5 243.7C608.8 251.6 608.8 260.4 605.5 268.3C592.1 300.6 565.2 346.1 525.6 386.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L150.7 92.77zM189.8 123.5L235.8 159.5C258.3 139.9 287.8 128 320 128C390.7 128 448 185.3 448 256C448 277.2 442.9 297.1 433.8 314.7L487.6 356.9C521.1 322.8 545.9 283.1 558.6 256C544.1 225.1 518.4 183.5 479.9 147.7C438.8 109.6 385.2 79.1 320 79.1C269.5 79.1 225.1 97.73 189.8 123.5L189.8 123.5zM394.9 284.2C398.2 275.4 400 265.9 400 255.1C400 211.8 364.2 175.1 320 175.1C319.3 175.1 318.7 176 317.1 176C319.3 181.1 320 186.5 320 191.1C320 202.2 317.6 211.8 313.4 220.3L394.9 284.2zM404.3 414.5L446.2 447.5C409.9 467.1 367.8 480 320 480C239.2 480 174.5 443.2 127.4 399.4C80.62 355.1 49.34 304 34.46 268.3C31.18 260.4 31.18 251.6 34.46 243.7C44 220.8 60.29 191.2 83.09 161.5L120.8 191.2C102.1 214.5 89.76 237.6 81.45 255.1C95.02 286 121.6 328.5 160.1 364.3C201.2 402.4 254.8 432 320 432C350.7 432 378.8 425.4 404.3 414.5H404.3zM192 255.1C192 253.1 192.1 250.3 192.3 247.5L248.4 291.7C258.9 312.8 278.5 328.6 302 333.1L358.2 378.2C346.1 381.1 333.3 384 319.1 384C249.3 384 191.1 326.7 191.1 255.1H192z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "f": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "46", - "aliases": { - "unicodes": { - "composite": [ - "66" - ] - } - }, - "label": "F", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573230, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 64.01c0 17.67-14.33 32-32 32H64v128h160c17.67 0 32 14.32 32 31.1s-14.33 32-32 32H64v160c0 17.67-14.33 32-32 32s-32-14.33-32-32v-384C0 46.34 14.33 32.01 32 32.01h256C305.7 32.01 320 46.34 320 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "face-angry": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f556", - "aliases": { - "names": [ - "angry" - ], - "unicodes": { - "composite": [ - "1f620" - ], - "secondary": [ - "10f556" - ] - } - }, - "label": "Face angry", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573231, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM339.9 373.3C323.8 355.4 295.7 336 256 336C216.3 336 188.2 355.4 172.1 373.3C166.2 379.9 166.7 389.1 173.3 395.9C179.9 401.8 189.1 401.3 195.9 394.7C207.6 381.7 227.5 368 255.1 368C284.5 368 304.4 381.7 316.1 394.7C322 401.3 332.1 401.8 338.7 395.9C345.3 389.1 345.8 379.9 339.9 373.3H339.9zM176.4 272C194 272 208.4 257.7 208.4 240C208.4 238.5 208.3 237 208.1 235.6L218.9 239.2C227.3 241.1 236.4 237.4 239.2 229.1C241.1 220.7 237.4 211.6 229.1 208.8L133.1 176.8C124.7 174 115.6 178.6 112.8 186.9C110 195.3 114.6 204.4 122.9 207.2L153.7 217.4C147.9 223.2 144.4 231.2 144.4 240C144.4 257.7 158.7 272 176.4 272zM358.9 217.2L389.1 207.2C397.4 204.4 401.1 195.3 399.2 186.9C396.4 178.6 387.3 174 378.9 176.8L282.9 208.8C274.6 211.6 270 220.7 272.8 229.1C275.6 237.4 284.7 241.1 293.1 239.2L304.7 235.3C304.5 236.8 304.4 238.4 304.4 240C304.4 257.7 318.7 272 336.4 272C354 272 368.4 257.7 368.4 240C368.4 231.1 364.7 223 358.9 217.2H358.9z" - }, - "regular": { - "last_modified": 1658443573033, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M328.4 393.5C318.7 402.6 303.5 402.1 294.5 392.4C287.1 384.5 274.4 376 256 376C237.6 376 224.9 384.5 217.5 392.4C208.5 402.1 193.3 402.6 183.6 393.5C173.9 384.5 173.4 369.3 182.5 359.6C196.7 344.3 221.4 328 256 328C290.6 328 315.3 344.3 329.5 359.6C338.6 369.3 338.1 384.5 328.4 393.5zM144.4 240C144.4 231.2 147.9 223.2 153.7 217.4L122.9 207.2C114.6 204.4 110 195.3 112.8 186.9C115.6 178.6 124.7 174 133.1 176.8L229.1 208.8C237.4 211.6 241.1 220.7 239.2 229.1C236.4 237.4 227.3 241.1 218.9 239.2L208.1 235.6C208.3 237 208.4 238.5 208.4 240C208.4 257.7 194 272 176.4 272C158.7 272 144.4 257.7 144.4 240V240zM368.4 240C368.4 257.7 354 272 336.4 272C318.7 272 304.4 257.7 304.4 240C304.4 238.4 304.5 236.8 304.7 235.3L293.1 239.2C284.7 241.1 275.6 237.4 272.8 229.1C270 220.7 274.6 211.6 282.9 208.8L378.9 176.8C387.3 174 396.4 178.6 399.2 186.9C401.1 195.3 397.4 204.4 389.1 207.2L358.9 217.2C364.7 223 368.4 231.1 368.4 240H368.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-dizzy": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f567", - "aliases": { - "names": [ - "dizzy" - ], - "unicodes": { - "secondary": [ - "10f567" - ] - } - }, - "label": "Face dizzy", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573231, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 416C291.3 416 320 387.3 320 352C320 316.7 291.3 288 256 288C220.7 288 192 316.7 192 352C192 387.3 220.7 416 256 416zM100.7 155.3L137.4 192L100.7 228.7C94.44 234.9 94.44 245.1 100.7 251.3C106.9 257.6 117.1 257.6 123.3 251.3L160 214.6L196.7 251.3C202.9 257.6 213.1 257.6 219.3 251.3C225.6 245.1 225.6 234.9 219.3 228.7L182.6 192L219.3 155.3C225.6 149.1 225.6 138.9 219.3 132.7C213.1 126.4 202.9 126.4 196.7 132.7L160 169.4L123.3 132.7C117.1 126.4 106.9 126.4 100.7 132.7C94.44 138.9 94.44 149.1 100.7 155.3zM292.7 155.3L329.4 192L292.7 228.7C286.4 234.9 286.4 245.1 292.7 251.3C298.9 257.6 309.1 257.6 315.3 251.3L352 214.6L388.7 251.3C394.9 257.6 405.1 257.6 411.3 251.3C417.6 245.1 417.6 234.9 411.3 228.7L374.6 192L411.3 155.3C417.6 149.1 417.6 138.9 411.3 132.7C405.1 126.4 394.9 126.4 388.7 132.7L352 169.4L315.3 132.7C309.1 126.4 298.9 126.4 292.7 132.7C286.4 138.9 286.4 149.1 292.7 155.3z" - }, - "regular": { - "last_modified": 1658443573034, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM103 135C112.4 125.7 127.6 125.7 136.1 135L160 158.1L183 135C192.4 125.7 207.6 125.7 216.1 135C226.3 144.4 226.3 159.6 216.1 168.1L193.9 192L216.1 215C226.3 224.4 226.3 239.6 216.1 248.1C207.6 258.3 192.4 258.3 183 248.1L160 225.9L136.1 248.1C127.6 258.3 112.4 258.3 103 248.1C93.66 239.6 93.66 224.4 103 215L126.1 192L103 168.1C93.66 159.6 93.66 144.4 103 135V135zM295 135C304.4 125.7 319.6 125.7 328.1 135L352 158.1L375 135C384.4 125.7 399.6 125.7 408.1 135C418.3 144.4 418.3 159.6 408.1 168.1L385.9 192L408.1 215C418.3 224.4 418.3 239.6 408.1 248.1C399.6 258.3 384.4 258.3 375 248.1L352 225.9L328.1 248.1C319.6 258.3 304.4 258.3 295 248.1C285.7 239.6 285.7 224.4 295 215L318.1 192L295 168.1C285.7 159.6 285.7 144.4 295 135V135zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-flushed": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f579", - "aliases": { - "names": [ - "flushed" - ], - "unicodes": { - "composite": [ - "1f633" - ], - "secondary": [ - "10f579" - ] - } - }, - "label": "Face flushed", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M184 224C184 237.3 173.3 248 160 248C146.7 248 136 237.3 136 224C136 210.7 146.7 200 160 200C173.3 200 184 210.7 184 224zM376 224C376 237.3 365.3 248 352 248C338.7 248 328 237.3 328 224C328 210.7 338.7 200 352 200C365.3 200 376 210.7 376 224zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM192 400H320C328.8 400 336 392.8 336 384C336 375.2 328.8 368 320 368H192C183.2 368 176 375.2 176 384C176 392.8 183.2 400 192 400zM160 296C199.8 296 232 263.8 232 224C232 184.2 199.8 152 160 152C120.2 152 88 184.2 88 224C88 263.8 120.2 296 160 296zM352 152C312.2 152 280 184.2 280 224C280 263.8 312.2 296 352 296C391.8 296 424 263.8 424 224C424 184.2 391.8 152 352 152z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 336C333.3 336 344 346.7 344 360C344 373.3 333.3 384 320 384H192C178.7 384 168 373.3 168 360C168 346.7 178.7 336 192 336H320zM136.4 224C136.4 210.7 147.1 200 160.4 200C173.6 200 184.4 210.7 184.4 224C184.4 237.3 173.6 248 160.4 248C147.1 248 136.4 237.3 136.4 224zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 197.5 186.5 176 160 176C133.5 176 112 197.5 112 224C112 250.5 133.5 272 160 272zM376.4 224C376.4 237.3 365.6 248 352.4 248C339.1 248 328.4 237.3 328.4 224C328.4 210.7 339.1 200 352.4 200C365.6 200 376.4 210.7 376.4 224zM432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224zM352 176C325.5 176 304 197.5 304 224C304 250.5 325.5 272 352 272C378.5 272 400 250.5 400 224C400 197.5 378.5 176 352 176zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-frown": { - "changes": [ - "3.1.0", - "5.0.0", - "5.0.9", - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f119", - "aliases": { - "names": [ - "frown" - ], - "unicodes": { - "composite": [ - "2639" - ], - "secondary": [ - "10f119" - ] - } - }, - "label": "Face frown", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM159.3 388.7C171.5 349.4 209.9 320 256 320C302.1 320 340.5 349.4 352.7 388.7C355.3 397.2 364.3 401.9 372.7 399.3C381.2 396.7 385.9 387.7 383.3 379.3C366.8 326.1 315.8 287.1 256 287.1C196.3 287.1 145.2 326.1 128.7 379.3C126.1 387.7 130.8 396.7 139.3 399.3C147.7 401.9 156.7 397.2 159.3 388.7H159.3zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M143.9 398.6C131.4 394.1 124.9 380.3 129.4 367.9C146.9 319.4 198.9 288 256 288C313.1 288 365.1 319.4 382.6 367.9C387.1 380.3 380.6 394.1 368.1 398.6C355.7 403.1 341.9 396.6 337.4 384.1C328.2 358.5 297.2 336 256 336C214.8 336 183.8 358.5 174.6 384.1C170.1 396.6 156.3 403.1 143.9 398.6V398.6zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-frown-open": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f57a", - "aliases": { - "names": [ - "frown-open" - ], - "unicodes": { - "composite": [ - "1f626" - ], - "secondary": [ - "10f57a" - ] - } - }, - "label": "Face frown open", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240zM336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176zM259.9 369.4C288.8 369.4 316.2 375.2 340.6 385.5C352.9 390.7 366.7 381.3 361.4 369.1C344.8 330.9 305.6 303.1 259.9 303.1C214.3 303.1 175.1 330.8 158.4 369.1C153.1 381.3 166.1 390.6 179.3 385.4C203.7 375.1 231 369.4 259.9 369.4L259.9 369.4z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M179.3 369.3C166.1 374.5 153.1 365.1 158.4 352.9C175.1 314.7 214.3 287.8 259.9 287.8C305.6 287.8 344.8 314.7 361.4 352.1C366.7 365.2 352.9 374.5 340.6 369.3C316.2 359 288.8 353.2 259.9 353.2C231 353.2 203.7 358.1 179.3 369.3L179.3 369.3zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grimace": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f57f", - "aliases": { - "names": [ - "grimace" - ], - "unicodes": { - "composite": [ - "1f62c" - ], - "secondary": [ - "10f57f" - ] - } - }, - "label": "Face grimace", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM399.3 360H344V400H352C375.8 400 395.5 382.7 399.3 360zM352 304H344V344H399.3C395.5 321.3 375.8 304 352 304zM328 344V304H264V344H328zM328 400V360H264V400H328zM184 304V344H248V304H184zM184 360V400H248V360H184zM168 344V304H160C136.2 304 116.5 321.3 112.7 344H168zM168 400V360H112.7C116.5 382.7 136.2 400 160 400H168zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M344 288C374.9 288 400 313.1 400 344C400 374.9 374.9 400 344 400H168C137.1 400 112 374.9 112 344C112 313.1 137.1 288 168 288H344zM168 320C154.7 320 144 330.7 144 344C144 357.3 154.7 368 168 368H176V320H168zM208 368H240V320H208V368zM304 320H272V368H304V320zM336 368H344C357.3 368 368 357.3 368 344C368 330.7 357.3 320 344 320H336V368zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f580", - "aliases": { - "names": [ - "grin" - ], - "unicodes": { - "composite": [ - "1f600" - ], - "secondary": [ - "10f580" - ] - } - }, - "label": "Face grin", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573233, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-beam": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f582", - "aliases": { - "names": [ - "grin-beam" - ], - "unicodes": { - "composite": [ - "1f604" - ], - "secondary": [ - "10f582" - ] - } - }, - "label": "Face grin beam", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM226.5 231.6C229.8 230.5 232 227.4 232 224C232 206.1 225.3 188.4 215.4 175.2C205.6 162.2 191.5 152 176 152C160.5 152 146.4 162.2 136.6 175.2C126.7 188.4 120 206.1 120 224C120 227.4 122.2 230.5 125.5 231.6C128.7 232.7 132.3 231.6 134.4 228.8L134.4 228.8L134.6 228.5C134.8 228.3 134.1 228 135.3 227.6C135.1 226.8 136.9 225.7 138.1 224.3C140.6 221.4 144.1 217.7 148.3 213.1C157.1 206.2 167.2 200 176 200C184.8 200 194.9 206.2 203.7 213.1C207.9 217.7 211.4 221.4 213.9 224.3C215.1 225.7 216 226.8 216.7 227.6C217 228 217.2 228.3 217.4 228.5L217.6 228.8L217.6 228.8C219.7 231.6 223.3 232.7 226.5 231.6V231.6zM377.6 228.8C379.7 231.6 383.3 232.7 386.5 231.6C389.8 230.5 392 227.4 392 224C392 206.1 385.3 188.4 375.4 175.2C365.6 162.2 351.5 152 336 152C320.5 152 306.4 162.2 296.6 175.2C286.7 188.4 280 206.1 280 224C280 227.4 282.2 230.5 285.5 231.6C288.7 232.7 292.3 231.6 294.4 228.8L294.4 228.8L294.6 228.5C294.8 228.3 294.1 228 295.3 227.6C295.1 226.8 296.9 225.7 298.1 224.3C300.6 221.4 304.1 217.7 308.3 213.1C317.1 206.2 327.2 200 336 200C344.8 200 354.9 206.2 363.7 213.1C367.9 217.7 371.4 221.4 373.9 224.3C375.1 225.7 376 226.8 376.7 227.6C377 228 377.2 228.3 377.4 228.5L377.6 228.8L377.6 228.8z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-beam-sweat": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f583", - "aliases": { - "names": [ - "grin-beam-sweat" - ], - "unicodes": { - "composite": [ - "1f605" - ], - "secondary": [ - "10f583" - ] - } - }, - "label": "Face grin beam sweat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 128C437.5 128 416 107 416 81.01C416 76.01 417.8 69.74 420.6 62.87C420.9 62.17 421.2 61.46 421.6 60.74C430.5 40.51 448.1 15.86 457.6 3.282C460.8-1.093 467.2-1.094 470.4 3.281C483.4 20.65 512 61.02 512 81.01C512 102.7 497.1 120.8 476.8 126.3C472.7 127.4 468.4 128 464 128L464 128zM256 .0003C307.4 .0003 355.3 15.15 395.4 41.23C393.9 44.32 392.4 47.43 391.1 50.53C387.8 58.57 384 69.57 384 81.01C384 125.4 420.6 160 464 160C473.6 160 482.8 158.3 491.4 155.2C504.7 186.1 512 220.2 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0V.0003zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM226.5 231.6C229.8 230.5 232 227.4 232 224C232 206.1 225.3 188.4 215.4 175.2C205.6 162.2 191.5 152 176 152C160.5 152 146.4 162.2 136.6 175.2C126.7 188.4 120 206.1 120 224C120 227.4 122.2 230.5 125.5 231.6C128.7 232.7 132.3 231.6 134.4 228.8L134.4 228.8L134.6 228.5C134.8 228.3 134.1 228 135.3 227.6C135.1 226.8 136.9 225.7 138.1 224.3C140.6 221.4 144.1 217.7 148.3 213.1C157.1 206.2 167.2 200 176 200C184.8 200 194.9 206.2 203.7 213.1C207.9 217.7 211.4 221.4 213.9 224.3C215.1 225.7 216 226.8 216.7 227.6C217 228 217.2 228.3 217.4 228.5L217.6 228.8L217.6 228.8C219.7 231.6 223.3 232.7 226.5 231.6V231.6zM377.6 228.8C379.7 231.6 383.3 232.7 386.5 231.6C389.8 230.5 392 227.4 392 224C392 206.1 385.3 188.4 375.4 175.2C365.6 162.2 351.5 152 336 152C320.5 152 306.4 162.2 296.6 175.2C286.7 188.4 280 206.1 280 224C280 227.4 282.2 230.5 285.5 231.6C288.7 232.7 292.3 231.6 294.4 228.8L294.4 228.8L294.6 228.5C294.8 228.3 294.1 228 295.3 227.6C295.1 226.8 296.9 225.7 298.1 224.3C300.6 221.4 304.1 217.7 308.3 213.1C317.1 206.2 327.2 200 336 200C344.8 200 354.9 206.2 363.7 213.1C367.9 217.7 371.4 221.4 373.9 224.3C375.1 225.7 376 226.8 376.7 227.6C377 228 377.2 228.3 377.4 228.5L377.6 228.8L377.6 228.8z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 128C437.5 128 416 107 416 81.01C416 76.01 417.8 69.74 420.6 62.87C420.9 62.17 421.2 61.46 421.6 60.74C430.5 40.51 448.1 15.86 457.6 3.281C460.8-1.094 467.2-1.094 470.4 3.281C483.4 20.65 512 61.02 512 81.01C512 102.7 497.1 120.8 476.8 126.3C472.7 127.4 468.4 128 464 128L464 128zM391.1 50.53C387.8 58.57 384 69.57 384 81.01C384 84.1 384.3 88.91 384.9 92.72C349.4 64.71 304.7 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 219.7 454.7 185.5 438.3 155.8C446.4 158.5 455.1 160 464 160C473.6 160 482.8 158.3 491.4 155.2C504.7 186.2 512 220.2 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 .0002 256 .0002C307.4 .0002 355.3 15.15 395.4 41.23C393.9 44.32 392.4 47.43 391.1 50.53V50.53zM255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.9 255.9 318.9C289 318.9 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1zM217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 119.1 227.4 119.1 224C119.1 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 175.1 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 231.1 206.1 231.1 224C231.1 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8L217.6 228.8zM377.6 228.8L377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8V228.8z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-hearts": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f584", - "aliases": { - "names": [ - "grin-hearts" - ], - "unicodes": { - "composite": [ - "1f60d" - ], - "secondary": [ - "10f584" - ] - } - }, - "label": "Face grin hearts", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM199.3 129.1C181.5 124.4 163.2 134.9 158.4 152.7L154.1 168.8L137.1 164.5C120.2 159.7 101.9 170.3 97.14 188.1C92.38 205.8 102.9 224.1 120.7 228.9L185.8 246.3C194.4 248.6 203.1 243.6 205.4 235L222.9 169.1C227.6 152.2 217.1 133.9 199.3 129.1H199.3zM353.6 152.7C348.8 134.9 330.5 124.4 312.7 129.1C294.9 133.9 284.4 152.2 289.1 169.1L306.6 235C308.9 243.6 317.6 248.6 326.2 246.3L391.3 228.9C409.1 224.1 419.6 205.8 414.9 188.1C410.1 170.3 391.8 159.7 374 164.5L357.9 168.8L353.6 152.7z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM238.9 177.1L221.4 243C219.1 251.6 210.4 256.6 201.8 254.3L136.7 236.9C118.9 232.1 108.4 213.8 113.1 196.1C117.9 178.3 136.2 167.7 153.1 172.5L170.1 176.8L174.4 160.7C179.2 142.9 197.5 132.4 215.3 137.1C233.1 141.9 243.6 160.2 238.9 177.1H238.9zM341.9 176.8L358 172.5C375.8 167.7 394.1 178.3 398.9 196.1C403.6 213.8 393.1 232.1 375.3 236.9L310.2 254.3C301.6 256.6 292.9 251.6 290.6 243L273.1 177.1C268.4 160.2 278.9 141.9 296.7 137.1C314.5 132.4 332.8 142.9 337.6 160.7L341.9 176.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-squint": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f585", - "aliases": { - "names": [ - "grin-squint" - ], - "unicodes": { - "composite": [ - "1f606" - ], - "secondary": [ - "10f585" - ] - } - }, - "label": "Face grin squint", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM133.5 146.7C125.6 142.4 116 148.2 116 157.1C116 159.9 116.1 162.6 118.8 164.8L154.8 208L118.8 251.2C116.1 253.4 116 256.1 116 258.9C116 267.8 125.6 273.6 133.5 269.3L223.4 221.4C234.1 215.7 234.1 200.3 223.4 194.6L133.5 146.7zM396 157.1C396 148.2 386.4 142.4 378.5 146.7L288.6 194.6C277.9 200.3 277.9 215.7 288.6 221.4L378.5 269.3C386.4 273.6 396 267.8 396 258.9C396 256.1 395 253.4 393.2 251.2L357.2 208L393.2 164.8C395 162.6 396 159.9 396 157.1V157.1z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-squint-tears": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f586", - "aliases": { - "names": [ - "grin-squint-tears" - ], - "unicodes": { - "composite": [ - "1f923" - ], - "secondary": [ - "10f586" - ] - } - }, - "label": "Face grin squint tears", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M426.8 14.18C446-5.046 477.5-4.645 497.1 14.92C516.6 34.49 517 65.95 497.8 85.18C490.1 92.02 476.4 97.59 460.5 101.9C444.1 106.3 426.4 109.4 414.1 111.2C412.5 111.5 410.1 111.7 409.6 111.9C403.1 112.8 399.2 108 400.1 102.4C401.7 91.19 404.7 72.82 409.1 55.42C409.4 54.12 409.8 52.84 410.1 51.56C414.4 35.62 419.1 21.02 426.8 14.18L426.8 14.18zM382.2 33.17C380.6 37.96 379.3 42.81 378.1 47.52C373.3 66.46 370.1 86.05 368.4 97.79C364.5 124.6 387.4 147.5 414.1 143.6C426 141.9 445.6 138.8 464.5 133.9C469.2 132.7 474.1 131.4 478.8 129.9C534.2 227.5 520.2 353.8 437 437C353.8 520.3 227.5 534.2 129.8 478.8C131.3 474 132.7 469.2 133.9 464.5C138.7 445.5 141.9 425.1 143.6 414.2C147.5 387.4 124.6 364.5 97.89 368.4C85.97 370.1 66.39 373.2 47.46 378.1C42.76 379.3 37.93 380.6 33.15 382.1C-22.19 284.5-8.245 158.2 74.98 74.98C158.2-8.253 284.5-22.19 382.2 33.17V33.17zM416.4 202.3C411.6 190.4 395.6 191.4 389.6 202.7C370.1 239.4 343.3 275.9 309.8 309.4C276.3 342.9 239.8 369.7 203.1 389.2C191.8 395.2 190.8 411.2 202.7 416C262.1 440.2 332.6 428.3 380.7 380.3C428.7 332.2 440.6 261.7 416.4 202.3H416.4zM94.43 288.5L150.5 293.6L155.6 349.7C155.8 352.5 157.1 355 159 357C165.4 363.4 176.2 360.7 178.8 352.1L208.5 254.6C211.1 242.1 201.1 232.1 189.5 235.7L92.05 265.3C83.46 267.9 80.76 278.7 87.1 285.1C89.07 287.1 91.66 288.3 94.43 288.5V288.5zM235.7 189.5C232.1 201.1 242.1 211.1 254.6 208.5L352.1 178.8C360.7 176.2 363.4 165.4 357 159C355 157.1 352.5 155.8 349.7 155.6L293.6 150.5L288.5 94.43C288.3 91.66 287.1 89.07 285.1 87.1C278.7 80.76 267.9 83.46 265.3 92.05L235.7 189.5zM51.53 410.1C70.01 405.1 90.3 401.8 102.4 400.1C108 399.2 112.8 403.1 111.9 409.6C110.2 421.7 106.9 441.9 101.9 460.4C97.57 476.4 92.02 490.1 85.18 497.8C65.95 517 34.49 516.6 14.92 497.1C-4.645 477.5-5.046 446 14.18 426.8C21.02 419.1 35.6 414.4 51.53 410.1V410.1z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M426.8 14.18C446-5.046 477.5-4.646 497.1 14.92C516.6 34.49 517 65.95 497.8 85.18C483 99.97 432.2 108.8 409.6 111.9C403.1 112.8 399.2 108 400.1 102.4C403.3 79.94 412 28.97 426.8 14.18H426.8zM74.98 74.98C158.2-8.253 284.5-22.19 382.2 33.17C380.6 37.96 379.3 42.81 378.1 47.52C375 59.67 372.6 72.08 370.8 82.52C290.1 28.93 180.1 37.74 108.9 108.9C37.75 180.1 28.94 290 82.49 370.8C72.01 372.6 59.6 374.1 47.46 378.1C42.76 379.3 37.93 380.6 33.15 382.1C-22.19 284.5-8.245 158.2 74.98 74.98V74.98zM478.8 129.9C534.2 227.5 520.2 353.8 437 437C353.8 520.3 227.5 534.2 129.8 478.8C131.3 474 132.7 469.2 133.9 464.5C136.1 452.3 139.4 439.9 141.2 429.5C221.9 483.1 331.9 474.3 403.1 403.1C474.3 331.9 483.1 221.1 429.5 141.2C439.1 139.4 452.4 137 464.5 133.9C469.2 132.7 474.1 131.4 478.8 129.9L478.8 129.9zM359.2 226.9C369.3 210.6 393 210 397 228.8C406.6 273.1 393.4 322.3 357.8 357.9C322.2 393.5 273 406.7 228.6 397.1C209.9 393.1 210.5 369.4 226.8 359.3C252 343.6 276.1 323.9 300.4 300.5C323.8 277.1 343.5 252.1 359.2 226.9L359.2 226.9zM189.5 235.7C201.1 232.1 211.1 242.1 208.5 254.6L178.8 352.1C176.2 360.7 165.4 363.4 159 357C157.1 355 155.8 352.5 155.6 349.7L150.5 293.6L94.43 288.5C91.66 288.3 89.07 287.1 87.1 285.1C80.76 278.7 83.46 267.9 92.05 265.3L189.5 235.7zM288.5 94.43L293.6 150.5L349.7 155.6C352.5 155.8 355 157.1 357 159C363.4 165.4 360.7 176.2 352.1 178.8L254.6 208.5C242.1 211.1 232.1 201.1 235.7 189.5L265.3 92.05C267.9 83.46 278.7 80.76 285.1 87.1C287.1 89.07 288.3 91.66 288.5 94.43V94.43zM14.18 426.8C28.97 412 79.85 403.2 102.4 400.1C108 399.2 112.8 403.1 111.9 409.6C108.7 432.1 99.97 483 85.18 497.8C65.95 517 34.5 516.6 14.93 497.1C-4.645 477.5-5.046 446 14.18 426.8H14.18z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-stars": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f587", - "aliases": { - "names": [ - "grin-stars" - ], - "unicodes": { - "composite": [ - "1f929" - ], - "secondary": [ - "10f587" - ] - } - }, - "label": "Face grin stars", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573232, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5H407.4zM152.8 124.6L136.2 159.3L98.09 164.3C95.03 164.7 92.48 166.8 91.52 169.8C90.57 172.7 91.39 175.9 93.62 178L121.5 204.5L114.5 242.3C113.1 245.4 115.2 248.4 117.7 250.2C120.2 252.1 123.5 252.3 126.2 250.8L159.1 232.5L193.8 250.8C196.5 252.3 199.8 252.1 202.3 250.2C204.8 248.4 206 245.4 205.5 242.3L198.5 204.5L226.4 178C228.6 175.9 229.4 172.7 228.5 169.8C227.5 166.8 224.1 164.7 221.9 164.3L183.8 159.3L167.2 124.6C165.9 121.8 163.1 120 159.1 120C156.9 120 154.1 121.8 152.8 124.6V124.6zM344.8 124.6L328.2 159.3L290.1 164.3C287 164.7 284.5 166.8 283.5 169.8C282.6 172.7 283.4 175.9 285.6 178L313.5 204.5L306.5 242.3C305.1 245.4 307.2 248.4 309.7 250.2C312.2 252.1 315.5 252.3 318.2 250.8L352 232.5L385.8 250.8C388.5 252.3 391.8 252.1 394.3 250.2C396.8 248.4 398 245.4 397.5 242.3L390.5 204.5L418.4 178C420.6 175.9 421.4 172.7 420.5 169.8C419.5 166.8 416.1 164.7 413.9 164.3L375.8 159.3L359.2 124.6C357.9 121.8 355.1 120 352 120C348.9 120 346.1 121.8 344.8 124.6H344.8z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M199.8 167.3L237.9 172.3C240.1 172.7 243.5 174.8 244.5 177.8C245.4 180.7 244.6 183.9 242.4 186L214.5 212.5L221.5 250.3C222 253.4 220.8 256.4 218.3 258.2C215.8 260.1 212.5 260.3 209.8 258.8L175.1 240.5L142.2 258.8C139.5 260.3 136.2 260.1 133.7 258.2C131.2 256.4 129.1 253.4 130.5 250.3L137.5 212.5L109.6 186C107.4 183.9 106.6 180.7 107.5 177.8C108.5 174.8 111 172.7 114.1 172.3L152.2 167.3L168.8 132.6C170.1 129.8 172.9 128 175.1 128C179.1 128 181.9 129.8 183.2 132.6L199.8 167.3zM359.8 167.3L397.9 172.3C400.1 172.7 403.5 174.8 404.5 177.8C405.4 180.7 404.6 183.9 402.4 186L374.5 212.5L381.5 250.3C382 253.4 380.8 256.4 378.3 258.2C375.8 260.1 372.5 260.3 369.8 258.8L336 240.5L302.2 258.8C299.5 260.3 296.2 260.1 293.7 258.2C291.2 256.4 289.1 253.4 290.5 250.3L297.5 212.5L269.6 186C267.4 183.9 266.6 180.7 267.5 177.8C268.5 174.8 271 172.7 274.1 172.3L312.2 167.3L328.8 132.6C330.1 129.8 332.9 128 336 128C339.1 128 341.9 129.8 343.2 132.6L359.8 167.3zM349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-tears": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f588", - "aliases": { - "names": [ - "grin-tears" - ], - "unicodes": { - "composite": [ - "1f602" - ], - "secondary": [ - "10f588" - ] - } - }, - "label": "Face grin tears", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573233, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M548.6 371.4C506.4 454.8 419.9 512 319.1 512C220.1 512 133.6 454.8 91.4 371.4C95.87 368.4 100.1 365 104.1 361.1C112.2 352.1 117.3 342.5 120.6 334.4C124.2 325.7 127.1 316 129.4 306.9C134 288.7 137 269.1 138.6 258.7C142.6 232.2 119.9 209.5 93.4 213.3C86.59 214.3 77.18 215.7 66.84 217.7C85.31 94.5 191.6 0 319.1 0C448.4 0 554.7 94.5 573.2 217.7C562.8 215.7 553.4 214.3 546.6 213.3C520.1 209.5 497.4 232.2 501.4 258.7C502.1 269.1 505.1 288.7 510.6 306.9C512.9 316 515.8 325.7 519.4 334.4C522.7 342.5 527.8 352.1 535.9 361.1C539.9 365 544.1 368.4 548.6 371.4V371.4zM471.4 331.5C476.4 319.7 464.4 309 452.1 312.8C412.4 324.9 367.7 331.8 320.3 331.8C272.9 331.8 228.1 324.9 188.5 312.8C176.2 309 164.2 319.7 169.2 331.5C194.1 390.6 252.4 432 320.3 432C388.2 432 446.4 390.6 471.4 331.5H471.4zM281.6 228.8C283.7 231.6 287.3 232.7 290.5 231.6C293.8 230.5 295.1 227.4 295.1 224C295.1 206.1 289.3 188.4 279.4 175.2C269.6 162.2 255.5 152 239.1 152C224.5 152 210.4 162.2 200.6 175.2C190.7 188.4 183.1 206.1 183.1 224C183.1 227.4 186.2 230.5 189.5 231.6C192.7 232.7 196.3 231.6 198.4 228.8L198.4 228.8L198.6 228.5C198.8 228.3 198.1 228 199.3 227.6C199.1 226.8 200.9 225.7 202.1 224.3C204.6 221.4 208.1 217.7 212.3 213.1C221.1 206.2 231.2 200 239.1 200C248.8 200 258.9 206.2 267.7 213.1C271.9 217.7 275.4 221.4 277.9 224.3C279.1 225.7 280 226.8 280.7 227.6C281 228 281.2 228.3 281.4 228.5L281.6 228.8L281.6 228.8zM450.5 231.6C453.8 230.5 456 227.4 456 224C456 206.1 449.3 188.4 439.4 175.2C429.6 162.2 415.5 152 400 152C384.5 152 370.4 162.2 360.6 175.2C350.7 188.4 344 206.1 344 224C344 227.4 346.2 230.5 349.5 231.6C352.7 232.7 356.3 231.6 358.4 228.8L358.4 228.8L358.6 228.5C358.8 228.3 358.1 228 359.3 227.6C359.1 226.8 360.9 225.7 362.1 224.3C364.6 221.4 368.1 217.7 372.3 213.1C381.1 206.2 391.2 200 400 200C408.8 200 418.9 206.2 427.7 213.1C431.9 217.7 435.4 221.4 437.9 224.3C439.1 225.7 440 226.8 440.7 227.6C441 228 441.2 228.3 441.4 228.5L441.6 228.8L441.6 228.8C443.7 231.6 447.3 232.7 450.5 231.6V231.6zM106.1 254.1C103.9 275.6 95.58 324.3 81.43 338.4C80.49 339.4 79.51 340.3 78.5 341.1C59.98 356.7 32.01 355.5 14.27 337.7C-4.442 319-4.825 288.9 13.55 270.6C22.19 261.9 43.69 255.4 64.05 250.1C77.02 248.2 89.53 246.2 97.94 245C103.3 244.2 107.8 248.7 106.1 254.1V254.1zM561.5 341.1C560.7 340.5 559.1 339.8 559.2 339.1C559 338.9 558.8 338.7 558.6 338.4C544.4 324.3 536.1 275.6 533 254.1C532.2 248.7 536.7 244.2 542.1 245C543.1 245.2 544.2 245.3 545.4 245.5C553.6 246.7 564.6 248.5 575.1 250.1C596.3 255.4 617.8 261.9 626.4 270.6C644.8 288.9 644.4 319 625.7 337.7C607.1 355.5 580 356.7 561.5 341.1L561.5 341.1z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M519.4 334.4C522.7 342.5 527.8 352.1 535.9 361.1C539.9 365 544.1 368.4 548.6 371.4C506.4 454.8 419.9 512 319.1 512C220.1 512 133.6 454.8 91.4 371.4C95.87 368.4 100.1 365 104.1 361.1C112.2 352.1 117.3 342.5 120.6 334.4C121.8 331.5 122.9 328.6 123.9 325.5C152.5 406.2 229.5 464 319.1 464C410.5 464 487.5 406.2 516.1 325.5C517.1 328.6 518.2 331.5 519.4 334.4V334.4zM319.1 47.1C218.6 47.1 134.2 120.5 115.7 216.5C109.1 213.4 101.4 212.2 93.4 213.3C86.59 214.3 77.18 215.7 66.84 217.7C85.31 94.5 191.6 0 319.1 0C448.4 0 554.7 94.5 573.2 217.7C562.8 215.7 553.4 214.3 546.6 213.3C538.6 212.2 530.9 213.4 524.2 216.5C505.8 120.5 421.4 48 319.1 48V47.1zM78.5 341.1C59.98 356.7 32.01 355.5 14.27 337.7C-4.442 319-4.825 288.9 13.55 270.6C22.19 261.9 43.69 255.4 64.05 250.1C77.02 248.2 89.53 246.2 97.94 245C103.3 244.2 107.8 248.7 106.1 254.1C103.9 275.6 95.58 324.3 81.43 338.4C80.49 339.4 79.51 340.3 78.5 341.1V341.1zM561.5 341.1C560.7 340.5 559.1 339.8 559.2 339.1C559 338.9 558.8 338.7 558.6 338.4C544.4 324.3 536.1 275.6 533 254.1C532.2 248.7 536.7 244.2 542.1 245C543.1 245.2 544.2 245.3 545.4 245.5C553.6 246.7 564.6 248.5 575.1 250.1C596.3 255.4 617.8 261.9 626.4 270.6C644.8 288.9 644.4 319 625.7 337.7C607.1 355.5 580 356.7 561.5 341.1L561.5 341.1zM319.9 399.1C269.6 399.1 225.5 374.6 200.9 336.5C190.5 320.4 207.7 303.1 226.3 308.4C255.3 315.1 286.8 318.8 319.9 318.8C353 318.8 384.6 315.1 413.5 308.4C432.2 303.1 449.4 320.4 438.1 336.5C414.4 374.6 370.3 399.1 319.9 399.1zM281.6 228.8L281.4 228.5C281.2 228.3 281 228 280.7 227.6C280 226.8 279.1 225.7 277.9 224.3C275.4 221.4 271.9 217.7 267.7 213.1C258.9 206.2 248.8 200 239.1 200C231.2 200 221.1 206.2 212.3 213.1C208.1 217.7 204.6 221.4 202.1 224.3C200.9 225.7 199.1 226.8 199.3 227.6C198.1 228 198.8 228.3 198.6 228.5L198.4 228.8L198.4 228.8C196.3 231.6 192.7 232.7 189.5 231.6C186.2 230.5 183.1 227.4 183.1 224C183.1 206.1 190.7 188.4 200.6 175.2C210.4 162.2 224.5 152 239.1 152C255.5 152 269.6 162.2 279.4 175.2C289.3 188.4 295.1 206.1 295.1 224C295.1 227.4 293.8 230.5 290.5 231.6C287.3 232.7 283.7 231.6 281.6 228.8L281.6 228.8zM441.6 228.8L441.6 228.8L441.4 228.5C441.2 228.3 441 228 440.7 227.6C440 226.8 439.1 225.7 437.9 224.3C435.4 221.4 431.9 217.7 427.7 213.1C418.9 206.2 408.8 200 400 200C391.2 200 381.1 206.2 372.3 213.1C368.1 217.7 364.6 221.4 362.1 224.3C360.9 225.7 359.1 226.8 359.3 227.6C358.1 228 358.8 228.3 358.6 228.5L358.4 228.8L358.4 228.8C356.3 231.6 352.7 232.7 349.5 231.6C346.2 230.5 344 227.4 344 223.1C344 206.1 350.7 188.4 360.6 175.2C370.4 162.2 384.5 151.1 400 151.1C415.5 151.1 429.6 162.2 439.4 175.2C449.3 188.4 456 206.1 456 223.1C456 227.4 453.8 230.5 450.5 231.6C447.3 232.7 443.7 231.6 441.6 228.8V228.8z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-tongue": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f589", - "aliases": { - "names": [ - "grin-tongue" - ], - "unicodes": { - "composite": [ - "1f61b" - ], - "secondary": [ - "10f589" - ] - } - }, - "label": "Face grin tongue", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573233, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C397.4 0 512 114.6 512 256C512 368.9 438.9 464.7 337.5 498.8C346.7 484 352 466.6 352 448V401.1C376.3 383.5 395.6 359.5 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C116.9 359.3 135.1 383.1 160 400.7V448C160 466.6 165.3 484 174.5 498.8C73.07 464.7 0 368.9 0 256C0 114.6 114.6 .0003 256 .0003L256 0zM176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240zM336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176zM256 512C220.7 512 192 483.3 192 448V402.6C192 387.9 203.9 376 218.6 376H220.6C231.9 376 241.7 383.9 244.2 394.9C247 407.5 264.1 407.5 267.8 394.9C270.3 383.9 280.1 376 291.4 376H293.4C308.1 376 320 387.9 320 402.6V448C320 483.3 291.3 512 256 512V512z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 255.1 48H256zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-tongue-squint": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f58a", - "aliases": { - "names": [ - "grin-tongue-squint" - ], - "unicodes": { - "composite": [ - "1f61d" - ], - "secondary": [ - "10f58a" - ] - } - }, - "label": "Face grin tongue squint", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573233, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C397.4 0 512 114.6 512 256C512 368.9 438.9 464.7 337.5 498.8C346.7 484 352 466.6 352 448V401.1C376.3 383.5 395.6 359.5 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C116.9 359.3 135.1 383.1 160 400.7V448C160 466.6 165.3 484 174.5 498.8C73.07 464.7 0 368.9 0 256C0 114.6 114.6 .0003 256 .0003L256 0zM118.8 148.8L154.8 192L118.8 235.2C116.1 237.4 116 240.1 116 242.9C116 251.8 125.6 257.6 133.5 253.3L223.4 205.4C234.1 199.7 234.1 184.3 223.4 178.6L133.5 130.7C125.6 126.4 116 132.2 116 141.1C116 143.9 116.1 146.6 118.8 148.8V148.8zM288.6 178.6C277.9 184.3 277.9 199.7 288.6 205.4L378.5 253.3C386.4 257.6 396 251.8 396 242.9C396 240.1 395 237.4 393.2 235.2L357.2 192L393.2 148.8C395 146.6 396 143.9 396 141.1C396 132.2 386.4 126.4 378.5 130.7L288.6 178.6zM256 512C220.7 512 192 483.3 192 448V402.6C192 387.9 203.9 376 218.6 376H220.6C231.9 376 241.7 383.9 244.2 394.9C247 407.5 264.1 407.5 267.8 394.9C270.3 383.9 280.1 376 291.4 376H293.4C308.1 376 320 387.9 320 402.6V448C320 483.3 291.3 512 256 512V512z" - }, - "regular": { - "last_modified": 1658443573035, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1V157.1zM378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V392.7C135.1 375.1 116.9 351.3 105.2 323.5C100.2 311.7 112.2 301 124.5 304.8C164.1 316.9 208.9 323.8 256.3 323.8C303.7 323.8 348.4 316.9 388.1 304.8C400.4 301 412.4 311.7 407.4 323.5C395.6 351.5 376.3 375.5 352 393.1V416C352 425.2 350.7 434 348.3 442.4C416.9 408.4 464 337.7 464 255.1C464 141.1 370.9 47.1 256 47.1L256 48zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-tongue-wink": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "5.12.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f58b", - "aliases": { - "names": [ - "grin-tongue-wink" - ], - "unicodes": { - "composite": [ - "1f61c" - ], - "secondary": [ - "10f58b" - ] - } - }, - "label": "Face grin tongue wink", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573233, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M312 208C312 194.7 322.7 184 336 184C349.3 184 360 194.7 360 208C360 221.3 349.3 232 336 232C322.7 232 312 221.3 312 208zM174.5 498.8C73.07 464.7 0 368.9 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 368.9 438.9 464.7 337.5 498.8C346.7 484 352 466.6 352 448V401.1C376.3 383.5 395.6 359.5 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C116.9 359.3 135.1 383.1 159.1 400.7V448C159.1 466.6 165.3 484 174.5 498.8L174.5 498.8zM217.6 236.8C224.7 231.5 226.1 221.5 220.8 214.4C190.4 173.9 129.6 173.9 99.2 214.4C93.9 221.5 95.33 231.5 102.4 236.8C109.5 242.1 119.5 240.7 124.8 233.6C142.4 210.1 177.6 210.1 195.2 233.6C200.5 240.7 210.5 242.1 217.6 236.8zM336 272C371.3 272 400 243.3 400 208C400 172.7 371.3 144 336 144C300.7 144 272 172.7 272 208C272 243.3 300.7 272 336 272zM320 402.6V448C320 483.3 291.3 512 256 512C220.7 512 192 483.3 192 448V402.6C192 387.9 203.9 376 218.6 376H220.6C231.9 376 241.7 383.9 244.2 394.9C247 407.5 264.1 407.5 267.8 394.9C270.3 383.9 280.1 376 291.4 376H293.4C308.1 376 320 387.9 320 402.6V402.6z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.9 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM312.4 208C312.4 194.7 323.1 184 336.4 184C349.6 184 360.4 194.7 360.4 208C360.4 221.3 349.6 232 336.4 232C323.1 232 312.4 221.3 312.4 208zM256 208C256 163.8 291.8 128 336 128C380.2 128 416 163.8 416 208C416 252.2 380.2 288 336 288C291.8 288 256 252.2 256 208zM336 256C362.5 256 384 234.5 384 208C384 181.5 362.5 160 336 160C309.5 160 288 181.5 288 208C288 234.5 309.5 256 336 256zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM348.3 442.4C416.9 408.4 464 337.7 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 337.7 95.13 408.4 163.7 442.4C161.3 434 160 425.2 160 416V363.6C151.1 355.6 143.3 346.5 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C368.6 346.4 360.8 355.5 352 363.5V416C352 425.2 350.7 434 348.3 442.4H348.3zM320 416V378.6C320 363.9 308.1 352 293.4 352H291.4C280.1 352 270.3 359.9 267.8 370.9C264.1 383.5 247 383.5 244.2 370.9C241.7 359.9 231.9 352 220.6 352H218.6C203.9 352 192 363.9 192 378.6V416C192 451.3 220.7 480 256 480C291.3 480 320 451.3 320 416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-wide": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f581", - "aliases": { - "names": [ - "grin-alt" - ], - "unicodes": { - "composite": [ - "1f603" - ], - "secondary": [ - "10f581" - ] - } - }, - "label": "Face grin wide", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573233, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM176 128C158.3 128 144 156.7 144 192C144 227.3 158.3 256 176 256C193.7 256 208 227.3 208 192C208 156.7 193.7 128 176 128zM336 256C353.7 256 368 227.3 368 192C368 156.7 353.7 128 336 128C318.3 128 304 156.7 304 192C304 227.3 318.3 256 336 256z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM224 192C224 227.3 209.7 256 192 256C174.3 256 160 227.3 160 192C160 156.7 174.3 128 192 128C209.7 128 224 156.7 224 192zM288 192C288 156.7 302.3 128 320 128C337.7 128 352 156.7 352 192C352 227.3 337.7 256 320 256C302.3 256 288 227.3 288 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-grin-wink": { - "changes": [ - "5.1.0", - "5.1.1", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f58c", - "aliases": { - "names": [ - "grin-wink" - ], - "unicodes": { - "secondary": [ - "10f58c" - ] - } - }, - "label": "Face grin wink", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573233, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256.3 331.8C208.9 331.8 164.1 324.9 124.5 312.8C112.2 309 100.2 319.7 105.2 331.5C130.1 390.6 188.4 432 256.3 432C324.2 432 382.4 390.6 407.4 331.5C412.4 319.7 400.4 309 388.1 312.8C348.4 324.9 303.7 331.8 256.3 331.8H256.3zM393.6 236.8C400.7 231.5 402.1 221.5 396.8 214.4C366.4 173.9 305.6 173.9 275.2 214.4C269.9 221.5 271.3 231.5 278.4 236.8C285.5 242.1 295.5 240.7 300.8 233.6C318.4 210.1 353.6 210.1 371.2 233.6C376.5 240.7 386.5 242.1 393.6 236.8zM176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M349.5 308.4C368.2 303.1 385.4 320.4 374.1 336.5C350.4 374.6 306.3 399.1 255.9 399.1C205.6 399.1 161.5 374.6 136.9 336.5C126.5 320.4 143.7 303.1 162.3 308.4C191.3 315.1 222.8 318.8 255.9 318.8C289 318.8 320.6 315.1 349.5 308.4zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-kiss": { - "changes": [ - "5.1.0", - "5.1.1", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f596", - "aliases": { - "names": [ - "kiss" - ], - "unicodes": { - "composite": [ - "1f617" - ], - "secondary": [ - "10f596" - ] - } - }, - "label": "Face kiss", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM287.9 300.3C274.7 292.9 257.4 288 240 288C236.4 288 233.2 290.5 232.3 293.1C231.3 297.5 232.9 301.2 236.1 302.1L236.1 302.1L236.3 303.1L236.8 303.4L237.2 303.7C238 304.1 239.2 304.9 240.6 305.8C243.4 307.6 247.2 310.3 250.8 313.4C254.6 316.5 258 319.1 260.5 323.4C262.1 326.1 264 329.8 264 332C264 334.2 262.1 337 260.5 340.6C258 344 254.6 347.5 250.8 350.6C247.2 353.7 243.4 356.4 240.6 358.2C239.2 359.1 238 359.9 237.2 360.3L236.6 360.7L236.3 360.9L236.1 361L236.1 361C233.6 362.4 232 365.1 232 368C232 370.9 233.6 373.6 236.1 374.1L236.1 374.1L236.3 375.1C236.5 375.2 236.8 375.4 237.2 375.7C238 376.1 239.2 376.9 240.6 377.8C243.4 379.6 247.2 382.3 250.8 385.4C254.6 388.5 258 391.9 260.5 395.4C262.1 398.1 264 401.8 264 403.1C264 406.2 262.1 409 260.5 412.6C258 416 254.6 419.5 250.8 422.6C247.2 425.7 243.4 428.4 240.6 430.2C239.2 431.1 238 431.9 237.2 432.3C236.8 432.6 236.5 432.8 236.3 432.9L236.1 432.1L236.1 433C232.9 434.8 231.3 438.5 232.3 442C233.2 445.5 236.4 447.1 240 447.1C257.4 447.1 274.7 443.1 287.9 435.7C294.5 432 300.4 427.5 304.7 422.3C308.9 417.2 312 410.9 312 403.1C312 397.1 308.9 390.8 304.7 385.7C300.4 380.5 294.5 375.1 287.9 372.3C285.2 370.7 282.3 369.3 279.2 367.1C282.3 366.7 285.2 365.3 287.9 363.7C294.5 360 300.4 355.5 304.7 350.3C308.9 345.2 312 338.9 312 331.1C312 325.1 308.9 318.8 304.7 313.7C300.4 308.5 294.5 303.1 287.9 300.3L287.9 300.3zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M304.7 281.7C308.9 286.8 312 293.1 312 300C312 306.9 308.9 313.2 304.7 318.3C300.4 323.5 294.5 328 287.9 331.7C285.2 333.3 282.3 334.7 279.2 336C282.3 337.3 285.2 338.7 287.9 340.3C294.5 343.1 300.4 348.5 304.7 353.7C308.9 358.8 312 365.1 312 372C312 378.9 308.9 385.2 304.7 390.3C300.4 395.5 294.5 400 287.9 403.7C274.7 411.1 257.4 416 240 416C236.4 416 233.2 413.5 232.3 410C231.3 406.5 232.9 402.8 236.1 401L236.1 401L236.3 400.9C236.5 400.8 236.8 400.6 237.2 400.3C238 399.9 239.2 399.1 240.6 398.2C243.4 396.4 247.2 393.7 250.8 390.6C254.6 387.5 258 384 260.5 380.6C262.1 377 264 374.2 264 372C264 369.8 262.1 366.1 260.5 363.4C258 359.1 254.6 356.5 250.8 353.4C247.2 350.3 243.4 347.6 240.6 345.8C239.2 344.9 238 344.1 237.2 343.7L236.5 343.2L236.3 343.1L236.1 342.1L236.1 342.1C233.6 341.6 232 338.9 232 336C232 333.1 233.6 330.4 236.1 329L236.1 329L236.3 328.9C236.5 328.8 236.8 328.6 237.2 328.3C238 327.9 239.2 327.1 240.6 326.2C243.4 324.4 247.2 321.7 250.8 318.6C254.6 315.5 258 312.1 260.5 308.6C262.1 305 264 302.2 264 300C264 297.8 262.1 294.1 260.5 291.4C258 287.1 254.6 284.5 250.8 281.4C247.2 278.3 243.4 275.6 240.6 273.8C239.2 272.9 238 272.1 237.2 271.7C236.8 271.4 236.5 271.2 236.3 271.1L236.1 270.1L236.1 270.1C232.9 269.2 231.3 265.5 232.3 261.1C233.2 258.5 236.4 256 240 256C257.4 256 274.7 260.9 287.9 268.3C294.5 271.1 300.4 276.5 304.7 281.7V281.7zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-kiss-beam": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f597", - "aliases": { - "names": [ - "kiss-beam" - ], - "unicodes": { - "composite": [ - "1f619" - ], - "secondary": [ - "10f597" - ] - } - }, - "label": "Face Kiss Beam", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM287.9 300.3C274.7 292.9 257.4 288 240 288C236.4 288 233.2 290.5 232.3 293.1C231.3 297.5 232.9 301.2 236.1 302.1L236.1 302.1L236.3 303.1L236.8 303.4L237.2 303.7C238 304.1 239.2 304.9 240.6 305.8C243.4 307.6 247.2 310.3 250.8 313.4C254.6 316.5 258 319.1 260.5 323.4C262.1 326.1 264 329.8 264 332C264 334.2 262.1 337 260.5 340.6C258 344 254.6 347.5 250.8 350.6C247.2 353.7 243.4 356.4 240.6 358.2C239.2 359.1 238 359.9 237.2 360.3L236.6 360.7L236.3 360.9L236.1 361L236.1 361C233.6 362.4 232 365.1 232 368C232 370.9 233.6 373.6 236.1 374.1L236.1 374.1L236.3 375.1C236.5 375.2 236.8 375.4 237.2 375.7C238 376.1 239.2 376.9 240.6 377.8C243.4 379.6 247.2 382.3 250.8 385.4C254.6 388.5 258 391.9 260.5 395.4C262.1 398.1 264 401.8 264 403.1C264 406.2 262.1 409 260.5 412.6C258 416 254.6 419.5 250.8 422.6C247.2 425.7 243.4 428.4 240.6 430.2C239.2 431.1 238 431.9 237.2 432.3C236.8 432.6 236.5 432.8 236.3 432.9L236.1 432.1L236.1 433C232.9 434.8 231.3 438.5 232.3 442C233.2 445.5 236.4 447.1 240 447.1C257.4 447.1 274.7 443.1 287.9 435.7C294.5 432 300.4 427.5 304.7 422.3C308.9 417.2 312 410.9 312 403.1C312 397.1 308.9 390.8 304.7 385.7C300.4 380.5 294.5 375.1 287.9 372.3C285.2 370.7 282.3 369.3 279.2 367.1C282.3 366.7 285.2 365.3 287.9 363.7C294.5 360 300.4 355.5 304.7 350.3C308.9 345.2 312 338.9 312 331.1C312 325.1 308.9 318.8 304.7 313.7C300.4 308.5 294.5 303.1 287.9 300.3L287.9 300.3zM226.5 231.6C229.8 230.5 232 227.4 232 224C232 206.1 225.3 188.4 215.4 175.2C205.6 162.2 191.5 152 176 152C160.5 152 146.4 162.2 136.6 175.2C126.7 188.4 120 206.1 120 224C120 227.4 122.2 230.5 125.5 231.6C128.7 232.7 132.3 231.6 134.4 228.8L134.4 228.8L134.6 228.5C134.8 228.3 134.1 228 135.3 227.6C135.1 226.8 136.9 225.7 138.1 224.3C140.6 221.4 144.1 217.7 148.3 213.1C157.1 206.2 167.2 200 176 200C184.8 200 194.9 206.2 203.7 213.1C207.9 217.7 211.4 221.4 213.9 224.3C215.1 225.7 216 226.8 216.7 227.6C217 228 217.2 228.3 217.4 228.5L217.6 228.8L217.6 228.8C219.7 231.6 223.3 232.7 226.5 231.6V231.6zM377.6 228.8C379.7 231.6 383.3 232.7 386.5 231.6C389.8 230.5 392 227.4 392 224C392 206.1 385.3 188.4 375.4 175.2C365.6 162.2 351.5 152 336 152C320.5 152 306.4 162.2 296.6 175.2C286.7 188.4 280 206.1 280 224C280 227.4 282.2 230.5 285.5 231.6C288.7 232.7 292.3 231.6 294.4 228.8L294.4 228.8L294.6 228.5C294.8 228.3 294.1 228 295.3 227.6C295.1 226.8 296.9 225.7 298.1 224.3C300.6 221.4 304.1 217.7 308.3 213.1C317.1 206.2 327.2 200 336 200C344.8 200 354.9 206.2 363.7 213.1C367.9 217.7 371.4 221.4 373.9 224.3C375.1 225.7 376 226.8 376.7 227.6C377 228 377.2 228.3 377.4 228.5L377.6 228.8L377.6 228.8z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M304.7 297.7C308.9 302.8 312 309.1 312 316C312 322.9 308.9 329.2 304.7 334.3C300.4 339.5 294.5 344 287.9 347.7C285.2 349.3 282.3 350.7 279.2 352C282.3 353.3 285.2 354.7 287.9 356.3C294.5 359.1 300.4 364.5 304.7 369.7C308.9 374.8 312 381.1 312 388C312 394.9 308.9 401.2 304.7 406.3C300.4 411.5 294.5 416 287.9 419.7C274.7 427.1 257.4 432 240 432C236.4 432 233.2 429.5 232.3 426C231.3 422.5 232.9 418.8 236.1 417L236.1 417L236.3 416.9C236.5 416.8 236.8 416.6 237.2 416.3C238 415.9 239.2 415.1 240.6 414.2C243.4 412.4 247.2 409.7 250.8 406.6C254.6 403.5 258 400 260.5 396.6C262.1 393 264 390.2 264 388C264 385.8 262.1 382.1 260.5 379.4C258 375.1 254.6 372.5 250.8 369.4C247.2 366.3 243.4 363.6 240.6 361.8C239.2 360.9 238 360.1 237.2 359.7C236.8 359.4 236.5 359.2 236.3 359.1L236.1 358.1L236.1 358.1C233.6 357.6 232 354.9 232 352C232 349.1 233.6 346.4 236.1 345L236.1 345L236.3 344.9C236.5 344.8 236.8 344.6 237.2 344.3C238 343.9 239.2 343.1 240.6 342.2C243.4 340.4 247.2 337.7 250.8 334.6C254.6 331.5 258 328.1 260.5 324.6C262.1 321 264 318.2 264 316C264 313.8 262.1 310.1 260.5 307.4C258 303.1 254.6 300.5 250.8 297.4C247.2 294.3 243.4 291.6 240.6 289.8C239.2 288.9 238 288.1 237.2 287.7C236.8 287.4 236.5 287.2 236.3 287.1L236.1 286.1L236.1 286.1C232.9 285.2 231.3 281.5 232.3 277.1C233.2 274.5 236.4 272 240 272C257.4 272 274.7 276.9 287.9 284.3C294.5 287.1 300.4 292.5 304.7 297.7L304.7 297.7zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-kiss-wink-heart": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f598", - "aliases": { - "names": [ - "kiss-wink-heart" - ], - "unicodes": { - "composite": [ - "1f618" - ], - "secondary": [ - "10f598" - ] - } - }, - "label": "Face Kiss Wink Heart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M461.8 334.6C448.1 300.8 411.5 280.3 374.3 290.7C334.2 301.9 312.4 343.8 322.4 382.8L345.3 472.1C347.3 479.7 350.9 486.4 355.7 491.8C325.1 504.8 291.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 285.3 507.1 313.4 498 339.7C486.9 334.1 474.5 333.1 461.8 334.6L461.8 334.6zM296 332C296 325.1 292.9 318.8 288.7 313.7C284.4 308.5 278.5 303.1 271.9 300.3C258.7 292.9 241.4 288 224 288C220.4 288 217.2 290.5 216.3 293.1C215.3 297.5 216.9 301.2 220.1 302.1L220.1 302.1L220.3 303.1C220.5 303.2 220.8 303.4 221.2 303.7C222 304.1 223.2 304.9 224.6 305.8C227.4 307.6 231.2 310.3 234.8 313.4C238.6 316.5 242 319.1 244.5 323.4C246.1 326.1 248 329.8 248 332C248 334.2 246.1 337 244.5 340.6C242 344 238.6 347.5 234.8 350.6C231.2 353.7 227.4 356.4 224.6 358.2C223.2 359.1 222 359.9 221.2 360.3C220.8 360.6 220.5 360.8 220.3 360.9L220.1 361L220.1 361C217.6 362.4 216 365.1 216 368C216 370.9 217.6 373.6 220.1 374.1L220.1 374.1L220.3 375.1L220.6 375.3L221.2 375.7C222 376.1 223.2 376.9 224.6 377.8C227.4 379.6 231.2 382.3 234.8 385.4C238.6 388.5 242 391.9 244.5 395.4C246.1 398.1 248 401.8 248 404C248 406.2 246.1 409 244.5 412.6C242 416 238.6 419.5 234.8 422.6C231.2 425.7 227.4 428.4 224.6 430.2C223.2 431.1 222 431.9 221.2 432.3C220.8 432.6 220.5 432.8 220.3 432.9L220.1 433L220.1 433C216.9 434.8 215.3 438.5 216.3 442C217.2 445.5 220.4 447.1 224 447.1C241.4 447.1 258.7 443.1 271.9 435.7C278.5 432 284.4 427.5 288.7 422.3C292.9 417.2 296 410.9 296 403.1C296 397.1 292.9 390.8 288.7 385.7C284.4 380.5 278.5 375.1 271.9 372.3C269.2 370.7 266.3 369.3 263.2 367.1C266.3 366.7 269.2 365.3 271.9 363.7C278.5 360 284.4 355.5 288.7 350.3C292.9 345.2 296 338.9 296 331.1V332zM176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240zM393.6 236.8C400.7 231.5 402.1 221.5 396.8 214.4C366.4 173.9 305.6 173.9 275.2 214.4C269.9 221.5 271.3 231.5 278.4 236.8C285.5 242.1 295.5 240.7 300.8 233.6C318.4 210.1 353.6 210.1 371.2 233.6C376.5 240.7 386.5 242.1 393.6 236.8zM439.4 373.3L459.5 367.6C481.7 361.4 504.6 375.2 510.6 398.4C516.5 421.7 503.3 445.6 481.1 451.8L396.1 475.6C387.5 478 378.6 472.9 376.3 464.2L353.4 374.9C347.5 351.6 360.7 327.7 382.9 321.5C405.2 315.3 428 329.1 433.1 352.3L439.4 373.3z" - }, - "regular": { - "last_modified": 1658443573036, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M345.3 472.1C347.3 479.7 350.9 486.4 355.7 491.8C325.1 504.8 291.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 285.3 507.1 313.4 498 339.7C486.9 334.1 474.5 333.1 461.8 334.6C459.7 329.4 457 324.6 453.9 320.1C460.5 299.9 464 278.4 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C285.4 464 313.5 457.9 338.9 446.8L345.3 472.1zM288.7 334.3C284.4 339.5 278.5 344 271.9 347.7C269.2 349.3 266.3 350.7 263.2 352C266.3 353.3 269.2 354.7 271.9 356.3C278.5 359.1 284.4 364.5 288.7 369.7C292.9 374.8 296 381.1 296 388C296 394.9 292.9 401.2 288.7 406.3C284.4 411.5 278.5 416 271.9 419.7C258.7 427.1 241.4 432 224 432C220.4 432 217.2 429.5 216.3 426C215.3 422.5 216.9 418.8 220.1 417L220.1 417L220.3 416.9C220.5 416.8 220.8 416.6 221.2 416.3C222 415.9 223.2 415.1 224.6 414.2C227.4 412.4 231.2 409.7 234.8 406.6C238.6 403.5 242 400 244.5 396.6C246.1 393 248 390.2 248 388C248 385.8 246.1 382.1 244.5 379.4C242 375.1 238.6 372.5 234.8 369.4C231.2 366.3 227.4 363.6 224.6 361.8C223.2 360.9 222 360.1 221.2 359.7C220.8 359.4 220.5 359.2 220.3 359.1L220.1 358.1L220.1 358.1C217.6 357.6 216 354.9 216 352C216 349.1 217.6 346.4 220.1 345L220.1 345L220.3 344.9C220.5 344.8 220.8 344.6 221.2 344.3C222 343.9 223.2 343.1 224.6 342.2C227.4 340.4 231.2 337.7 234.8 334.6C238.6 331.5 242 328.1 244.5 324.6C246.1 321 248 318.2 248 316C248 313.8 246.1 310.1 244.5 307.4C242 303.1 238.6 300.5 234.8 297.4C231.2 294.3 227.4 291.6 224.6 289.8C223.2 288.9 222 288.1 221.2 287.7C220.8 287.4 220.5 287.2 220.3 287.1L220.1 286.1L220.1 286.1C216.9 285.2 215.3 281.5 216.3 277.1C217.2 274.5 220.4 272 224 272C241.4 272 258.7 276.9 271.9 284.3C278.5 287.1 284.4 292.5 288.7 297.7C292.9 302.8 296 309.1 296 316C296 322.9 292.9 329.2 288.7 334.3V334.3zM144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220zM439.4 373.3L459.5 367.6C481.7 361.4 504.6 375.2 510.6 398.4C516.5 421.7 503.3 445.6 481.1 451.8L396.1 475.6C387.5 478 378.6 472.9 376.3 464.2L353.4 374.9C347.5 351.6 360.7 327.7 382.9 321.5C405.2 315.3 428 329.1 433.1 352.3L439.4 373.3z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-laugh": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f599", - "aliases": { - "names": [ - "laugh" - ], - "unicodes": { - "secondary": [ - "10f599" - ] - } - }, - "label": "Face Laugh", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 432C332.1 432 396.2 382 415.2 314.1C419.1 300.4 407.8 288 393.6 288H118.4C104.2 288 92.92 300.4 96.76 314.1C115.8 382 179.9 432 256 432V432zM176.4 160C158.7 160 144.4 174.3 144.4 192C144.4 209.7 158.7 224 176.4 224C194 224 208.4 209.7 208.4 192C208.4 174.3 194 160 176.4 160zM336.4 224C354 224 368.4 209.7 368.4 192C368.4 174.3 354 160 336.4 160C318.7 160 304.4 174.3 304.4 192C304.4 209.7 318.7 224 336.4 224z" - }, - "regular": { - "last_modified": 1658443573037, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM304.4 192C304.4 174.3 318.7 160 336.4 160C354 160 368.4 174.3 368.4 192C368.4 209.7 354 224 336.4 224C318.7 224 304.4 209.7 304.4 192zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-laugh-beam": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f59a", - "aliases": { - "names": [ - "laugh-beam" - ], - "unicodes": { - "composite": [ - "1f601" - ], - "secondary": [ - "10f59a" - ] - } - }, - "label": "Face Laugh Beam", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 432C332.1 432 396.2 382 415.2 314.1C419.1 300.4 407.8 288 393.6 288H118.4C104.2 288 92.92 300.4 96.76 314.1C115.8 382 179.9 432 256 432V432zM226.5 215.6C229.8 214.5 232 211.4 232 208C232 190.1 225.3 172.4 215.4 159.2C205.6 146.2 191.5 136 176 136C160.5 136 146.4 146.2 136.6 159.2C126.7 172.4 120 190.1 120 208C120 211.4 122.2 214.5 125.5 215.6C128.7 216.7 132.3 215.6 134.4 212.8L134.4 212.8L134.6 212.5C134.8 212.3 134.1 212 135.3 211.6C135.1 210.8 136.9 209.7 138.1 208.3C140.6 205.4 144.1 201.7 148.3 197.1C157.1 190.2 167.2 184 176 184C184.8 184 194.9 190.2 203.7 197.1C207.9 201.7 211.4 205.4 213.9 208.3C215.1 209.7 216 210.8 216.7 211.6C217 212 217.2 212.3 217.4 212.5L217.6 212.8L217.6 212.8C219.7 215.6 223.3 216.7 226.5 215.6V215.6zM377.6 212.8C379.7 215.6 383.3 216.7 386.5 215.6C389.8 214.5 392 211.4 392 208C392 190.1 385.3 172.4 375.4 159.2C365.6 146.2 351.5 136 336 136C320.5 136 306.4 146.2 296.6 159.2C286.7 172.4 280 190.1 280 208C280 211.4 282.2 214.5 285.5 215.6C288.7 216.7 292.3 215.6 294.4 212.8L294.4 212.8L294.6 212.5C294.8 212.3 294.1 212 295.3 211.6C295.1 210.8 296.9 209.7 298.1 208.3C300.6 205.4 304.1 201.7 308.3 197.1C317.1 190.2 327.2 184 336 184C344.8 184 354.9 190.2 363.7 197.1C367.9 201.7 371.4 205.4 373.9 208.3C375.1 209.7 376 210.8 376.7 211.6C377 212 377.2 212.3 377.4 212.5L377.6 212.8L377.6 212.8z" - }, - "regular": { - "last_modified": 1658443573037, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-laugh-squint": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f59b", - "aliases": { - "names": [ - "laugh-squint" - ], - "unicodes": { - "secondary": [ - "10f59b" - ] - } - }, - "label": "Face Laugh Squint", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 432C332.1 432 396.2 382 415.2 314.1C419.1 300.4 407.8 288 393.6 288H118.4C104.2 288 92.92 300.4 96.76 314.1C115.8 382 179.9 432 256 432V432zM133.5 114.7C125.6 110.4 116 116.2 116 125.1C116 127.9 116.1 130.6 118.8 132.8L154.8 176L118.8 219.2C116.1 221.4 116 224.1 116 226.9C116 235.8 125.6 241.6 133.5 237.3L223.4 189.4C234.1 183.7 234.1 168.3 223.4 162.6L133.5 114.7zM396 125.1C396 116.2 386.4 110.4 378.5 114.7L288.6 162.6C277.9 168.3 277.9 183.7 288.6 189.4L378.5 237.3C386.4 241.6 396 235.8 396 226.9C396 224.1 395 221.4 393.2 219.2L357.2 176L393.2 132.8C395 130.6 396 127.9 396 125.1V125.1z" - }, - "regular": { - "last_modified": 1658443573037, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM223.4 178.6C234.1 184.3 234.1 199.7 223.4 205.4L133.5 253.3C125.6 257.6 116 251.8 116 242.9C116 240.1 116.1 237.4 118.8 235.2L154.8 192L118.8 148.8C116.1 146.6 116 143.9 116 141.1C116 132.2 125.6 126.4 133.5 130.7L223.4 178.6zM393.2 148.8L357.2 192L393.2 235.2C395 237.4 396 240.1 396 242.9C396 251.8 386.4 257.6 378.5 253.3L288.6 205.4C277.9 199.7 277.9 184.3 288.6 178.6L378.5 130.7C386.4 126.4 396 132.2 396 141.1C396 143.9 395 146.6 393.2 148.8V148.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-laugh-wink": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f59c", - "aliases": { - "names": [ - "laugh-wink" - ], - "unicodes": { - "secondary": [ - "10f59c" - ] - } - }, - "label": "Face Laugh Wink", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 432C332.1 432 396.2 382 415.2 314.1C419.1 300.4 407.8 288 393.6 288H118.4C104.2 288 92.92 300.4 96.76 314.1C115.8 382 179.9 432 256 432V432zM176.4 160C158.7 160 144.4 174.3 144.4 192C144.4 209.7 158.7 224 176.4 224C194 224 208.4 209.7 208.4 192C208.4 174.3 194 160 176.4 160zM300.8 217.6C318.4 194.1 353.6 194.1 371.2 217.6C376.5 224.7 386.5 226.1 393.6 220.8C400.7 215.5 402.1 205.5 396.8 198.4C366.4 157.9 305.6 157.9 275.2 198.4C269.9 205.5 271.3 215.5 278.4 220.8C285.5 226.1 295.5 224.7 300.8 217.6z" - }, - "regular": { - "last_modified": 1658443573037, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M130.7 313.9C126.5 300.4 137.8 288 151.1 288H364.5C378.7 288 389.9 300.4 385.8 313.9C368.1 368.4 318.2 408 258.2 408C198.2 408 147.5 368.4 130.7 313.9V313.9zM208.4 192C208.4 209.7 194 224 176.4 224C158.7 224 144.4 209.7 144.4 192C144.4 174.3 158.7 160 176.4 160C194 160 208.4 174.3 208.4 192zM281.9 214.6C273.9 207 273.5 194.4 281 186.3C295.6 170.8 316.3 164 335.6 164C354.1 164 375.7 170.8 390.2 186.3C397.8 194.4 397.4 207 389.3 214.6C381.2 222.1 368.6 221.7 361 213.7C355.6 207.8 346.3 204 335.6 204C324.1 204 315.7 207.8 310.2 213.7C302.7 221.7 290 222.1 281.9 214.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-meh": { - "changes": [ - "3.1.0", - "5.0.0", - "5.0.9", - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f11a", - "aliases": { - "names": [ - "meh" - ], - "unicodes": { - "composite": [ - "1f610" - ], - "secondary": [ - "10f11a" - ] - } - }, - "label": "Face meh", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240zM336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176zM160 336C151.2 336 144 343.2 144 352C144 360.8 151.2 368 160 368H352C360.8 368 368 360.8 368 352C368 343.2 360.8 336 352 336H160z" - }, - "regular": { - "last_modified": 1658443573037, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM328 328C341.3 328 352 338.7 352 352C352 365.3 341.3 376 328 376H184C170.7 376 160 365.3 160 352C160 338.7 170.7 328 184 328H328zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-meh-blank": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5a4", - "aliases": { - "names": [ - "meh-blank" - ], - "unicodes": { - "composite": [ - "1f636" - ], - "secondary": [ - "10f5a4" - ] - } - }, - "label": "Face Meh Blank", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573234, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240z" - }, - "regular": { - "last_modified": 1658443573037, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-rolling-eyes": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5a5", - "aliases": { - "names": [ - "meh-rolling-eyes" - ], - "unicodes": { - "composite": [ - "1f644" - ], - "secondary": [ - "10f5a5" - ] - } - }, - "label": "Face Rolling Eyes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573235, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM192 368C183.2 368 176 375.2 176 384C176 392.8 183.2 400 192 400H320C328.8 400 336 392.8 336 384C336 375.2 328.8 368 320 368H192zM186.2 165.6C189.8 170.8 192 177.1 192 184C192 201.7 177.7 216 160 216C142.3 216 128 201.7 128 184C128 177.1 130.2 170.8 133.8 165.6C111.5 175.6 96 197.1 96 224C96 259.3 124.7 288 160 288C195.3 288 224 259.3 224 224C224 197.1 208.5 175.6 186.2 165.6zM352 288C387.3 288 416 259.3 416 224C416 197.1 400.5 175.6 378.2 165.6C381.8 170.8 384 177.1 384 184C384 201.7 369.7 216 352 216C334.3 216 320 201.7 320 184C320 177.1 322.2 170.8 325.8 165.6C303.5 175.6 288 197.1 288 224C288 259.3 316.7 288 352 288z" - }, - "regular": { - "last_modified": 1658443573038, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M168 376C168 362.7 178.7 352 192 352H320C333.3 352 344 362.7 344 376C344 389.3 333.3 400 320 400H192C178.7 400 168 389.3 168 376zM80 224C80 179.8 115.8 144 160 144C204.2 144 240 179.8 240 224C240 268.2 204.2 304 160 304C115.8 304 80 268.2 80 224zM160 272C186.5 272 208 250.5 208 224C208 209.7 201.7 196.8 191.8 188C191.9 189.3 192 190.6 192 192C192 209.7 177.7 224 160 224C142.3 224 128 209.7 128 192C128 190.6 128.1 189.3 128.2 188C118.3 196.8 112 209.7 112 224C112 250.5 133.5 272 160 272V272zM272 224C272 179.8 307.8 144 352 144C396.2 144 432 179.8 432 224C432 268.2 396.2 304 352 304C307.8 304 272 268.2 272 224zM352 272C378.5 272 400 250.5 400 224C400 209.7 393.7 196.8 383.8 188C383.9 189.3 384 190.6 384 192C384 209.7 369.7 224 352 224C334.3 224 320 209.7 320 192C320 190.6 320.1 189.3 320.2 188C310.3 196.8 304 209.7 304 224C304 250.5 325.5 272 352 272zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-sad-cry": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5b3", - "aliases": { - "names": [ - "sad-cry" - ], - "unicodes": { - "composite": [ - "1f62d" - ], - "secondary": [ - "10f5b3" - ] - } - }, - "label": "Face Sad Cry", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573235, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 493.4C322.4 505.4 289.9 512 256 512C222.1 512 189.6 505.4 160 493.4V288C160 279.2 152.8 272 144 272C135.2 272 128 279.2 128 288V477.8C51.48 433.5 0 350.8 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 350.8 460.5 433.5 384 477.8V288C384 279.2 376.8 272 368 272C359.2 272 352 279.2 352 288V493.4zM217.6 236.8C224.7 231.5 226.1 221.5 220.8 214.4C190.4 173.9 129.6 173.9 99.2 214.4C93.9 221.5 95.33 231.5 102.4 236.8C109.5 242.1 119.5 240.7 124.8 233.6C142.4 210.1 177.6 210.1 195.2 233.6C200.5 240.7 210.5 242.1 217.6 236.8zM316.8 233.6C334.4 210.1 369.6 210.1 387.2 233.6C392.5 240.7 402.5 242.1 409.6 236.8C416.7 231.5 418.1 221.5 412.8 214.4C382.4 173.9 321.6 173.9 291.2 214.4C285.9 221.5 287.3 231.5 294.4 236.8C301.5 242.1 311.5 240.7 316.8 233.6zM208 368C208 394.5 229.5 416 256 416C282.5 416 304 394.5 304 368V336C304 309.5 282.5 288 256 288C229.5 288 208 309.5 208 336V368z" - }, - "regular": { - "last_modified": 1658443573038, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M159.6 220C148.1 220 139.7 223.8 134.2 229.7C126.7 237.7 114 238.1 105.1 230.6C97.89 223 97.48 210.4 105 202.3C119.6 186.8 140.3 180 159.6 180C178.1 180 199.7 186.8 214.2 202.3C221.8 210.4 221.4 223 213.3 230.6C205.2 238.1 192.6 237.7 185 229.7C179.6 223.8 170.3 220 159.6 220zM297.9 230.6C289.9 223 289.5 210.4 297 202.3C311.6 186.8 332.3 180 351.6 180C370.1 180 391.7 186.8 406.2 202.3C413.8 210.4 413.4 223 405.3 230.6C397.2 238.1 384.6 237.7 377 229.7C371.6 223.8 362.3 220 351.6 220C340.1 220 331.7 223.8 326.2 229.7C318.7 237.7 306 238.1 297.9 230.6zM208 320C208 293.5 229.5 272 256 272C282.5 272 304 293.5 304 320V352C304 378.5 282.5 400 256 400C229.5 400 208 378.5 208 352V320zM0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM400 406.1C439.4 368.2 464 314.1 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 314.1 72.55 368.2 112 406.1V288C112 274.7 122.7 264 136 264C149.3 264 160 274.7 160 288V440.6C188.7 455.5 221.4 464 256 464C290.6 464 323.3 455.5 352 440.6V288C352 274.7 362.7 264 376 264C389.3 264 400 274.7 400 288V406.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-sad-tear": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5b4", - "aliases": { - "names": [ - "sad-tear" - ], - "unicodes": { - "composite": [ - "1f622" - ], - "secondary": [ - "10f5b4" - ] - } - }, - "label": "Face Sad Tear", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573235, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM256 352C290.9 352 323.2 367.8 348.3 394.9C354.3 401.4 364.4 401.7 370.9 395.7C377.4 389.7 377.7 379.6 371.7 373.1C341.6 340.5 301 320 256 320C247.2 320 240 327.2 240 336C240 344.8 247.2 352 256 352H256zM208 369C208 349 179.6 308.6 166.4 291.3C163.2 286.9 156.8 286.9 153.6 291.3C140.6 308.6 112 349 112 369C112 395 133.5 416 160 416C186.5 416 208 395 208 369H208zM303.6 208C303.6 225.7 317.1 240 335.6 240C353.3 240 367.6 225.7 367.6 208C367.6 190.3 353.3 176 335.6 176C317.1 176 303.6 190.3 303.6 208zM207.6 208C207.6 190.3 193.3 176 175.6 176C157.1 176 143.6 190.3 143.6 208C143.6 225.7 157.1 240 175.6 240C193.3 240 207.6 225.7 207.6 208z" - }, - "regular": { - "last_modified": 1658443573038, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M169.6 291.3C172.8 286.9 179.2 286.9 182.4 291.3C195.6 308.6 223.1 349 223.1 369C223.1 395 202.5 416 175.1 416C149.5 416 127.1 395 127.1 369C127.1 349 156.6 308.6 169.6 291.3H169.6zM368 346.8C377.9 355.6 378.7 370.8 369.9 380.7C361 390.6 345.9 391.4 335.1 382.6C314.7 363.5 286.7 352 256 352C242.7 352 232 341.3 232 328C232 314.7 242.7 304 256 304C299 304 338.3 320.2 368 346.8L368 346.8zM335.6 176C353.3 176 367.6 190.3 367.6 208C367.6 225.7 353.3 240 335.6 240C317.1 240 303.6 225.7 303.6 208C303.6 190.3 317.1 176 335.6 176zM175.6 240C157.1 240 143.6 225.7 143.6 208C143.6 190.3 157.1 176 175.6 176C193.3 176 207.6 190.3 207.6 208C207.6 225.7 193.3 240 175.6 240zM256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0zM175.9 448C200.5 458.3 227.6 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48C141.1 48 48 141.1 48 256C48 308.7 67.59 356.8 99.88 393.4C110.4 425.4 140.9 447.9 175.9 448V448z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-smile": { - "changes": [ - "3.1.0", - "5.0.0", - "5.0.9", - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f118", - "aliases": { - "names": [ - "smile" - ], - "unicodes": { - "composite": [ - "1f642" - ], - "secondary": [ - "10f118" - ] - } - }, - "label": "Face Smile", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573236, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM164.1 325.5C158.3 318.8 148.2 318.1 141.5 323.9C134.8 329.7 134.1 339.8 139.9 346.5C162.1 372.1 200.9 400 255.1 400C311.1 400 349.8 372.1 372.1 346.5C377.9 339.8 377.2 329.7 370.5 323.9C363.8 318.1 353.7 318.8 347.9 325.5C329.9 346.2 299.4 368 255.1 368C212.6 368 182 346.2 164.1 325.5H164.1zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240z" - }, - "regular": { - "last_modified": 1658443573039, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-smile-beam": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5b8", - "aliases": { - "names": [ - "smile-beam" - ], - "unicodes": { - "composite": [ - "1f60a" - ], - "secondary": [ - "10f5b8" - ] - } - }, - "label": "Face Smile Beam", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573236, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM164.1 325.5C158.3 318.8 148.2 318.1 141.5 323.9C134.8 329.7 134.1 339.8 139.9 346.5C162.1 372.1 200.9 400 255.1 400C311.1 400 349.8 372.1 372.1 346.5C377.9 339.8 377.2 329.7 370.5 323.9C363.8 318.1 353.7 318.8 347.9 325.5C329.9 346.2 299.4 368 255.1 368C212.6 368 182 346.2 164.1 325.5H164.1zM226.5 231.6C229.8 230.5 232 227.4 232 224C232 206.1 225.3 188.4 215.4 175.2C205.6 162.2 191.5 152 176 152C160.5 152 146.4 162.2 136.6 175.2C126.7 188.4 120 206.1 120 224C120 227.4 122.2 230.5 125.5 231.6C128.7 232.7 132.3 231.6 134.4 228.8L134.4 228.8L134.6 228.5C134.8 228.3 134.1 228 135.3 227.6C135.1 226.8 136.9 225.7 138.1 224.3C140.6 221.4 144.1 217.7 148.3 213.1C157.1 206.2 167.2 200 176 200C184.8 200 194.9 206.2 203.7 213.1C207.9 217.7 211.4 221.4 213.9 224.3C215.1 225.7 216 226.8 216.7 227.6C217 228 217.2 228.3 217.4 228.5L217.6 228.8L217.6 228.8C219.7 231.6 223.3 232.7 226.5 231.6V231.6zM377.6 228.8C379.7 231.6 383.3 232.7 386.5 231.6C389.8 230.5 392 227.4 392 224C392 206.1 385.3 188.4 375.4 175.2C365.6 162.2 351.5 152 336 152C320.5 152 306.4 162.2 296.6 175.2C286.7 188.4 280 206.1 280 224C280 227.4 282.2 230.5 285.5 231.6C288.7 232.7 292.3 231.6 294.4 228.8L294.4 228.8L294.6 228.5C294.8 228.3 294.1 228 295.3 227.6C295.1 226.8 296.9 225.7 298.1 224.3C300.6 221.4 304.1 217.7 308.3 213.1C317.1 206.2 327.2 200 336 200C344.8 200 354.9 206.2 363.7 213.1C367.9 217.7 371.4 221.4 373.9 224.3C375.1 225.7 376 226.8 376.7 227.6C377 228 377.2 228.3 377.4 228.5L377.6 228.8L377.6 228.8z" - }, - "regular": { - "last_modified": 1658443573038, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM217.6 228.8L217.6 228.8L217.4 228.5C217.2 228.3 217 228 216.7 227.6C216 226.8 215.1 225.7 213.9 224.3C211.4 221.4 207.9 217.7 203.7 213.1C194.9 206.2 184.8 200 176 200C167.2 200 157.1 206.2 148.3 213.1C144.1 217.7 140.6 221.4 138.1 224.3C136.9 225.7 135.1 226.8 135.3 227.6C134.1 228 134.8 228.3 134.6 228.5L134.4 228.8L134.4 228.8C132.3 231.6 128.7 232.7 125.5 231.6C122.2 230.5 120 227.4 120 224C120 206.1 126.7 188.4 136.6 175.2C146.4 162.2 160.5 152 176 152C191.5 152 205.6 162.2 215.4 175.2C225.3 188.4 232 206.1 232 224C232 227.4 229.8 230.5 226.5 231.6C223.3 232.7 219.7 231.6 217.6 228.8V228.8zM377.6 228.8L377.4 228.5C377.2 228.3 377 228 376.7 227.6C376 226.8 375.1 225.7 373.9 224.3C371.4 221.4 367.9 217.7 363.7 213.1C354.9 206.2 344.8 200 336 200C327.2 200 317.1 206.2 308.3 213.1C304.1 217.7 300.6 221.4 298.1 224.3C296.9 225.7 295.1 226.8 295.3 227.6C294.1 228 294.8 228.3 294.6 228.5L294.4 228.8L294.4 228.8C292.3 231.6 288.7 232.7 285.5 231.6C282.2 230.5 280 227.4 280 224C280 206.1 286.7 188.4 296.6 175.2C306.4 162.2 320.5 152 336 152C351.5 152 365.6 162.2 375.4 175.2C385.3 188.4 392 206.1 392 224C392 227.4 389.8 230.5 386.5 231.6C383.3 232.7 379.7 231.6 377.6 228.8L377.6 228.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-smile-wink": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f4da", - "aliases": { - "names": [ - "smile-wink" - ], - "unicodes": { - "composite": [ - "1f609" - ], - "secondary": [ - "10f4da" - ] - } - }, - "label": "Face Smile Wink", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573236, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM164.1 325.5C158.3 318.8 148.2 318.1 141.5 323.9C134.8 329.7 134.1 339.8 139.9 346.5C162.1 372.1 200.9 400 255.1 400C311.1 400 349.8 372.1 372.1 346.5C377.9 339.8 377.2 329.7 370.5 323.9C363.8 318.1 353.7 318.8 347.9 325.5C329.9 346.2 299.4 368 255.1 368C212.6 368 182 346.2 164.1 325.5H164.1zM176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176zM300.8 233.6C318.4 210.1 353.6 210.1 371.2 233.6C376.5 240.7 386.5 242.1 393.6 236.8C400.7 231.5 402.1 221.5 396.8 214.4C366.4 173.9 305.6 173.9 275.2 214.4C269.9 221.5 271.3 231.5 278.4 236.8C285.5 242.1 295.5 240.7 300.8 233.6z" - }, - "regular": { - "last_modified": 1658443573039, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 352C293.2 352 319.2 334.5 334.4 318.1C343.3 308.4 358.5 307.7 368.3 316.7C378 325.7 378.6 340.9 369.6 350.6C347.7 374.5 309.7 400 256 400C202.3 400 164.3 374.5 142.4 350.6C133.4 340.9 133.1 325.7 143.7 316.7C153.5 307.7 168.7 308.4 177.6 318.1C192.8 334.5 218.8 352 256 352zM208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208zM281.9 230.6C273.9 223 273.5 210.4 281 202.3C295.6 186.8 316.3 180 335.6 180C354.1 180 375.7 186.8 390.2 202.3C397.8 210.4 397.4 223 389.3 230.6C381.2 238.1 368.6 237.7 361 229.7C355.6 223.8 346.3 220 335.6 220C324.1 220 315.7 223.8 310.2 229.7C302.7 237.7 290 238.1 281.9 230.6zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-surprise": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5c2", - "aliases": { - "names": [ - "surprise" - ], - "unicodes": { - "composite": [ - "1f62e" - ], - "secondary": [ - "10f5c2" - ] - } - }, - "label": "Face Surprise", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573236, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM176.4 240C194 240 208.4 225.7 208.4 208C208.4 190.3 194 176 176.4 176C158.7 176 144.4 190.3 144.4 208C144.4 225.7 158.7 240 176.4 240zM336.4 176C318.7 176 304.4 190.3 304.4 208C304.4 225.7 318.7 240 336.4 240C354 240 368.4 225.7 368.4 208C368.4 190.3 354 176 336.4 176zM256 416C291.3 416 320 387.3 320 352C320 316.7 291.3 288 256 288C220.7 288 192 316.7 192 352C192 387.3 220.7 416 256 416z" - }, - "regular": { - "last_modified": 1658443573039, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M144.4 208C144.4 190.3 158.7 176 176.4 176C194 176 208.4 190.3 208.4 208C208.4 225.7 194 240 176.4 240C158.7 240 144.4 225.7 144.4 208zM368.4 208C368.4 225.7 354 240 336.4 240C318.7 240 304.4 225.7 304.4 208C304.4 190.3 318.7 176 336.4 176C354 176 368.4 190.3 368.4 208zM192 352C192 316.7 220.7 288 256 288C291.3 288 320 316.7 320 352C320 387.3 291.3 416 256 416C220.7 416 192 387.3 192 352zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "face-tired": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5c8", - "aliases": { - "names": [ - "tired" - ], - "unicodes": { - "composite": [ - "1f62b" - ], - "secondary": [ - "10f5c8" - ] - } - }, - "label": "Face Tired", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573237, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256zM138.3 364.1C132.2 375.8 128 388.4 128 400C128 405.2 130.6 410.2 134.9 413.2C139.2 416.1 144.7 416.8 149.6 414.1L170.2 407.3C197.1 397.2 225.6 392 254.4 392H257.6C286.4 392 314.9 397.2 341.8 407.3L362.4 414.1C367.3 416.8 372.8 416.1 377.1 413.2C381.4 410.2 384 405.2 384 400C384 388.4 379.8 375.8 373.7 364.1C367.4 352.1 358.4 339.8 347.3 328.7C325.3 306.7 293.4 287.1 256 287.1C218.6 287.1 186.7 306.7 164.7 328.7C153.6 339.8 144.6 352.1 138.3 364.1H138.3zM133.5 146.7C125.6 142.4 116 148.2 116 157.1C116 159.9 116.1 162.6 118.8 164.8L154.8 208L118.8 251.2C116.1 253.4 116 256.1 116 258.9C116 267.8 125.6 273.6 133.5 269.3L223.4 221.4C234.1 215.7 234.1 200.3 223.4 194.6L133.5 146.7zM396 157.1C396 148.2 386.4 142.4 378.5 146.7L288.6 194.6C277.9 200.3 277.9 215.7 288.6 221.4L378.5 269.3C386.4 273.6 396 267.8 396 258.9C396 256.1 395 253.4 393.2 251.2L357.2 208L393.2 164.8C395 162.6 396 159.9 396 157.1V157.1z" - }, - "regular": { - "last_modified": 1658443573040, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M176.5 320.3C196.1 302.1 223.8 288 256 288C288.2 288 315.9 302.1 335.5 320.3C354.5 338.1 368 362 368 384C368 389.4 365.3 394.4 360.8 397.4C356.2 400.3 350.5 400.8 345.6 398.7L328.4 391.1C305.6 381.2 280.9 376 256 376C231.1 376 206.4 381.2 183.6 391.1L166.4 398.7C161.5 400.8 155.8 400.3 151.2 397.4C146.7 394.4 144 389.4 144 384C144 362 157.5 338.1 176.5 320.3zM223.4 194.6C234.1 200.3 234.1 215.7 223.4 221.4L133.5 269.3C125.6 273.6 116 267.8 116 258.9C116 256.1 116.1 253.4 118.8 251.2L154.8 208L118.8 164.8C116.1 162.6 116 159.9 116 157.1C116 148.2 125.6 142.4 133.5 146.7L223.4 194.6zM393.2 164.8L357.2 208L393.2 251.2C395 253.4 396 256.1 396 258.9C396 267.8 386.4 273.6 378.5 269.3L288.6 221.4C277.9 215.7 277.9 200.3 288.6 194.6L378.5 146.7C386.4 142.4 396 148.2 396 157.1C396 159.9 395 162.6 393.2 164.8zM512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 48C141.1 48 48 141.1 48 256C48 370.9 141.1 464 256 464C370.9 464 464 370.9 464 256C464 141.1 370.9 48 256 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "facebook": { - "changes": [ - "2.0.0", - "5.0.0", - "5.8.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f09a", - "aliases": { - "unicodes": { - "composite": [ - "f230" - ] - } - }, - "label": "Facebook", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M504 256C504 119 393 8 256 8S8 119 8 256c0 123.8 90.69 226.4 209.3 245V327.7h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.28c-30.8 0-40.41 19.12-40.41 38.73V256h68.78l-11 71.69h-57.78V501C413.3 482.4 504 379.8 504 256z" - } - }, - "free": [ - "brands" - ] - }, - "facebook-f": { - "changes": [ - "5.0.0", - "5.8.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f39e", - "label": "Facebook F", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M279.1 288l14.22-92.66h-88.91v-60.13c0-25.35 12.42-50.06 52.24-50.06h40.42V6.26S260.4 0 225.4 0c-73.22 0-121.1 44.38-121.1 124.7v70.62H22.89V288h81.39v224h100.2V288z" - } - }, - "free": [ - "brands" - ] - }, - "facebook-messenger": { - "changes": [ - "5.0.0", - "5.8.2", - "5.9.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f39f", - "label": "Facebook Messenger", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256.5 8C116.5 8 8 110.3 8 248.6c0 72.3 29.71 134.8 78.07 177.9 8.35 7.51 6.63 11.86 8.05 58.23A19.92 19.92 0 0 0 122 502.3c52.91-23.3 53.59-25.14 62.56-22.7C337.9 521.8 504 423.7 504 248.6 504 110.3 396.6 8 256.5 8zm149.2 185.1l-73 115.6a37.37 37.37 0 0 1 -53.91 9.93l-58.08-43.47a15 15 0 0 0 -18 0l-78.37 59.44c-10.46 7.93-24.16-4.6-17.11-15.67l73-115.6a37.36 37.36 0 0 1 53.91-9.93l58.06 43.46a15 15 0 0 0 18 0l78.41-59.38c10.44-7.98 24.14 4.54 17.09 15.62z" - } - }, - "free": [ - "brands" - ] - }, - "fan": { - "changes": [ - "5.9.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f863", - "aliases": { - "unicodes": { - "secondary": [ - "10f863" - ] - } - }, - "label": "Fan", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352.6 127.1c-28.12 0-54.13 4.5-77.13 12.88l12.38-123.1c1.125-10.5-8.125-18.88-18.5-17.63C189.6 10.12 127.1 77.62 127.1 159.4c0 28.12 4.5 54.13 12.88 77.13L17.75 224.1c-10.5-1.125-18.88 8.125-17.63 18.5c9.1 79.75 77.5 141.4 159.3 141.4c28.12 0 54.13-4.5 77.13-12.88l-12.38 123.1c-1.125 10.38 8.125 18.88 18.5 17.63c79.75-10 141.4-77.5 141.4-159.3c0-28.12-4.5-54.13-12.88-77.13l123.1 12.38c10.5 1.125 18.88-8.125 17.63-18.5C501.9 189.6 434.4 127.1 352.6 127.1zM255.1 287.1c-17.62 0-31.1-14.38-31.1-32s14.37-32 31.1-32s31.1 14.38 31.1 32S273.6 287.1 255.1 287.1z" - } - }, - "free": [ - "solid" - ] - }, - "fantasy-flight-games": { - "changes": [ - "5.4.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f6dc", - "label": "Fantasy Flight-games", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 32.86L32.86 256 256 479.1 479.1 256 256 32.86zM88.34 255.8c1.96-2 11.92-12.3 96.49-97.48 41.45-41.75 86.19-43.77 119.8-18.69 24.63 18.4 62.06 58.9 62.15 59 .68 .74 1.07 2.86 .58 3.38-11.27 11.84-22.68 23.54-33.5 34.69-34.21-32.31-40.52-38.24-48.51-43.95-17.77-12.69-41.4-10.13-56.98 5.1-2.17 2.13-1.79 3.43 .12 5.35 2.94 2.95 28.1 28.33 35.09 35.78-11.95 11.6-23.66 22.97-35.69 34.66-12.02-12.54-24.48-25.53-36.54-38.11-21.39 21.09-41.69 41.11-61.85 60.99zm234.8 101.6c-35.49 35.43-78.09 38.14-106.1 20.47-22.08-13.5-39.38-32.08-72.93-66.84 12.05-12.37 23.79-24.42 35.37-36.31 33.02 31.91 37.06 36.01 44.68 42.09 18.48 14.74 42.52 13.67 59.32-1.8 3.68-3.39 3.69-3.64 .14-7.24-10.59-10.73-21.19-21.44-31.77-32.18-1.32-1.34-3.03-2.48-.8-4.69 10.79-10.71 21.48-21.52 32.21-32.29 .26-.26 .65-.38 1.91-1.07 12.37 12.87 24.92 25.92 37.25 38.75 21.01-20.73 41.24-40.68 61.25-60.42 13.68 13.4 27.13 26.58 40.86 40.03-20.17 20.86-81.68 82.71-100.5 101.5zM256 0L0 256l256 256 256-256L256 0zM16 256L256 16l240 240-240 240L16 256z" - } - }, - "free": [ - "brands" - ] - }, - "faucet": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e005", - "aliases": { - "unicodes": { - "secondary": [ - "10e005" - ] - } - }, - "label": "Faucet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 256h-38.54C297.7 242.5 277.9 232.9 256 228V180.5L224 177L192 180.5V228C170.1 233 150.3 242.6 134.5 256H16C7.125 256 0 263.1 0 272v96C0 376.9 7.125 384 16 384h92.78C129.4 421.8 173 448 224 448s94.59-26.25 115.2-64H352c17.62 0 32 14.29 32 31.91S398.4 448 416 448h64c17.62 0 32-14.31 32-31.94C512 327.7 440.4 256 352 256zM81.63 159.9L224 144.9l142.4 15C375.9 160.9 384 153.1 384 143.1V112.9c0-10-8.125-17.74-17.62-16.74L256 107.8V80C256 71.12 248.9 64 240 64h-32C199.1 64 192 71.12 192 80v27.75L81.63 96.14C72.13 95.14 64 102.9 64 112.9v30.24C64 153.1 72.13 160.9 81.63 159.9z" - } - }, - "free": [ - "solid" - ] - }, - "faucet-drip": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e006", - "aliases": { - "unicodes": { - "composite": [ - "1f6b0" - ], - "secondary": [ - "10e006" - ] - } - }, - "label": "Faucet Drip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 480c0 17.62 14.38 32 32 32s32-14.38 32-32s-32-64-32-64S416 462.4 416 480zM352 192h-38.54C297.7 178.5 277.9 168.9 256 164V116.5L224 113L192 116.5V164C170.1 169 150.3 178.6 134.5 192H16C7.125 192 0 199.1 0 208v96C0 312.9 7.125 320 16 320h92.78C129.4 357.8 173 384 224 384s94.59-26.25 115.2-64H352c17.62 0 32 14.29 32 31.91S398.4 384 416 384h64c17.62 0 32-14.38 32-32C512 263.6 440.4 192 352 192zM81.63 95.88L224 80.88l142.4 15C375.9 96.88 384 89.12 384 79.12V48.89c0-10-8.125-17.74-17.62-16.74L256 43.75V16C256 7.125 248.9 0 240 0h-32C199.1 0 192 7.125 192 16v27.75L81.63 32.14C72.13 31.14 64 38.89 64 48.89V79.12C64 89.12 72.13 96.88 81.63 95.88z" - } - }, - "free": [ - "solid" - ] - }, - "fax": { - "changes": [ - "4.1.0", - "5.0.0", - "5.3.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1ac", - "aliases": { - "unicodes": { - "composite": [ - "1f5b7", - "1f4e0" - ], - "secondary": [ - "10f1ac" - ] - } - }, - "label": "Fax", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M192 64h197.5L416 90.51V160h64V77.25c0-8.484-3.375-16.62-9.375-22.62l-45.25-45.25C419.4 3.375 411.2 0 402.8 0H160C142.3 0 128 14.33 128 32v128h64V64zM64 128H32C14.38 128 0 142.4 0 160v320c0 17.62 14.38 32 32 32h32c17.62 0 32-14.38 32-32V160C96 142.4 81.63 128 64 128zM480 192H128v288c0 17.6 14.4 32 32 32h320c17.6 0 32-14.4 32-32V224C512 206.4 497.6 192 480 192zM288 432c0 8.875-7.125 16-16 16h-32C231.1 448 224 440.9 224 432v-32C224 391.1 231.1 384 240 384h32c8.875 0 16 7.125 16 16V432zM288 304c0 8.875-7.125 16-16 16h-32C231.1 320 224 312.9 224 304v-32C224 263.1 231.1 256 240 256h32C280.9 256 288 263.1 288 272V304zM416 432c0 8.875-7.125 16-16 16h-32c-8.875 0-16-7.125-16-16v-32c0-8.875 7.125-16 16-16h32c8.875 0 16 7.125 16 16V432zM416 304c0 8.875-7.125 16-16 16h-32C359.1 320 352 312.9 352 304v-32C352 263.1 359.1 256 368 256h32C408.9 256 416 263.1 416 272V304z" - } - }, - "free": [ - "solid" - ] - }, - "feather": { - "changes": [ - "5.0.13", - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f52d", - "aliases": { - "unicodes": { - "composite": [ - "1fab6" - ], - "secondary": [ - "10f52d" - ] - } - }, - "label": "Feather", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M483.4 244.2L351.9 287.1h97.74c-9.874 10.62 3.75-3.125-46.24 46.87l-147.6 49.12h98.24c-74.99 73.12-194.6 70.62-246.8 54.1l-66.14 65.99c-9.374 9.374-24.6 9.374-33.98 0s-9.374-24.6 0-33.98l259.5-259.2c6.249-6.25 6.249-16.37 0-22.62c-6.249-6.249-16.37-6.249-22.62 0l-178.4 178.2C58.78 306.1 68.61 216.7 129.1 156.3l85.74-85.68c90.62-90.62 189.8-88.27 252.3-25.78C517.8 95.34 528.9 169.7 483.4 244.2z" - } - }, - "free": [ - "solid" - ] - }, - "feather-pointed": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f56b", - "aliases": { - "names": [ - "feather-alt" - ], - "unicodes": { - "secondary": [ - "10f56b" - ] - } - }, - "label": "Feather pointed", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M467.1 241.1L351.1 288h94.34c-7.711 14.85-16.29 29.28-25.87 43.01l-132.5 52.99h85.65c-59.34 52.71-144.1 80.34-264.5 52.82l-68.13 68.13c-9.38 9.38-24.56 9.374-33.94 0c-9.375-9.375-9.375-24.56 0-33.94l253.4-253.4c4.846-6.275 4.643-15.19-1.113-20.95c-6.25-6.25-16.38-6.25-22.62 0l-168.6 168.6C24.56 58 366.9 8.118 478.9 .0846c18.87-1.354 34.41 14.19 33.05 33.05C508.7 78.53 498.5 161.8 467.1 241.1z" - } - }, - "free": [ - "solid" - ] - }, - "fedex": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f797", - "label": "FedEx", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M586 284.5l53.3-59.9h-62.4l-21.7 24.8-22.5-24.8H414v-16h56.1v-48.1H318.9V236h-.5c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14v-24.2H49v-26.2h60v-41.1H0V345h49v-77.5h48.9c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7h-42c-14.7 20.9-45.8 8.9-45.8-14.6h85.5c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6h.5V345h212.2l22.1-25 22.3 25H640l-54-60.5zm-446.7-16.6c6.1-26.3 41.7-25.6 46.5 0h-46.5zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1h-94.4V169.4h95v30.2H405v33.9h55.5v28.1h-56.1v44.7h56.1v29.6zm-45.9-39.8v-24.4h56.1v-44l50.7 57-50.7 57v-45.6h-56.1zm138.6 10.3l-26.1 29.5H489l45.6-51.2-45.6-51.2h39.7l26.6 29.3 25.6-29.3h38.5l-45.4 51 46 51.4h-40.5l-26.3-29.5z" - } - }, - "free": [ - "brands" - ] - }, - "fedora": { - "changes": [ - "5.6.0", - "5.6.3", - "5.8.0", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f798", - "label": "Fedora", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M.0413 255.8C.1219 132.2 100.3 32 224 32C347.7 32 448 132.3 448 256C448 379.7 347.8 479.9 224.1 480H50.93C22.84 480 .0832 457.3 .0416 429.2H0V255.8H.0413zM342.6 192.7C342.6 153 307 124.2 269.4 124.2C234.5 124.2 203.6 150.5 199.3 184.1C199.1 187.9 198.9 189.1 198.9 192.6C198.8 213.7 198.9 235.4 198.1 257C199 283.1 199.1 309.1 198.1 333.6C198.1 360.7 178.7 379.1 153.4 379.1C128.1 379.1 107.6 358.9 107.6 333.6C108.1 305.9 130.2 288.3 156.1 287.5H156.3L182.6 287.3V250L156.3 250.2C109.2 249.8 71.72 286.7 70.36 333.6C70.36 379.2 107.9 416.5 153.4 416.5C196.4 416.5 232.1 382.9 236 340.9L236.2 287.4L268.8 287.1C294.1 287.3 293.8 249.3 268.6 249.8L236.2 250.1C236.2 243.7 236.3 237.3 236.3 230.9C236.4 218.2 236.4 205.5 236.2 192.7C236.3 176.2 252 161.5 269.4 161.5C286.9 161.5 305.3 170.2 305.3 192.7C305.3 195.9 305.2 197.8 305 199C303.1 209.5 310.2 219.4 320.7 220.9C331.3 222.4 340.9 214.8 341.9 204.3C342.5 200.1 342.6 196.4 342.6 192.7H342.6z" - } - }, - "free": [ - "brands" - ] - }, - "ferry": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ea", - "label": "Ferry", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M352 0C369.7 0 384 14.33 384 32H459.1C479.7 32 490.7 56.29 477.2 71.8L456 96H119.1L98.83 71.8C85.25 56.29 96.27 32 116.9 32H191.1C191.1 14.33 206.3 0 223.1 0L352 0zM95.1 128H480C497.7 128 512 142.3 512 160V283.5C512 296.8 507.8 309.8 500.1 320.7L448.7 392.6C446.8 393.7 444.1 394.9 443.2 396.1C427.7 406.8 409.1 414.2 392.1 416H375.6C358.5 414.2 340.6 406.1 324.8 396.1C302.8 380.6 273.3 380.6 251.2 396.1C236.3 406.3 218.7 414.1 200.5 416H183.9C166.9 414.2 148.3 406.8 132.9 396.1C131.1 394.8 129.2 393.7 127.3 392.6L75.92 320.7C68.17 309.8 64 296.8 64 283.5V160C64 142.3 78.33 128 96 128H95.1zM127.1 288H448V192H127.1V288zM384 448C410.9 448 439.4 437.2 461.4 421.9L461.5 421.9C473.4 413.4 489.5 414.1 500.7 423.6C515 435.5 533.2 444.6 551.3 448.8C568.5 452.8 579.2 470.1 575.2 487.3C571.2 504.5 553.1 515.2 536.7 511.2C512.2 505.4 491.9 494.6 478.5 486.2C449.5 501.7 417 512 384 512C352.1 512 323.4 502.1 303.6 493.1C297.7 490.5 292.5 487.8 288 485.4C283.5 487.8 278.3 490.5 272.4 493.1C252.6 502.1 223.9 512 192 512C158.1 512 126.5 501.7 97.5 486.2C84.12 494.6 63.79 505.4 39.27 511.2C22.06 515.2 4.853 504.5 .8422 487.3C-3.169 470.1 7.532 452.8 24.74 448.8C42.84 444.6 60.96 435.5 75.31 423.6C86.46 414.1 102.6 413.4 114.5 421.9L114.6 421.9C136.7 437.2 165.1 448 192 448C219.5 448 247 437.4 269.5 421.9C280.6 414 295.4 414 306.5 421.9C328.1 437.4 356.5 448 384 448H384z" - } - }, - "free": [ - "solid" - ] - }, - "figma": { - "changes": [ - "5.6.0", - "5.7.0", - "5.8.0", - "5.15.4", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f799", - "label": "Figma", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M14 95.79C14 42.89 56.89 0 109.8 0H274.2C327.1 0 369.1 42.89 369.1 95.79C369.1 129.3 352.8 158.8 326.7 175.9C352.8 193 369.1 222.5 369.1 256C369.1 308.9 327.1 351.8 274.2 351.8H272.1C247.3 351.8 224.7 342.4 207.7 326.9V415.2C207.7 468.8 163.7 512 110.3 512C57.54 512 14 469.2 14 416.2C14 382.7 31.19 353.2 57.24 336.1C31.19 318.1 14 289.5 14 256C14 222.5 31.2 193 57.24 175.9C31.2 158.8 14 129.3 14 95.79zM176.3 191.6H109.8C74.22 191.6 45.38 220.4 45.38 256C45.38 291.4 73.99 320.2 109.4 320.4C109.5 320.4 109.7 320.4 109.8 320.4H176.3V191.6zM207.7 256C207.7 291.6 236.5 320.4 272.1 320.4H274.2C309.7 320.4 338.6 291.6 338.6 256C338.6 220.4 309.7 191.6 274.2 191.6H272.1C236.5 191.6 207.7 220.4 207.7 256zM109.8 351.8C109.7 351.8 109.5 351.8 109.4 351.8C73.99 352 45.38 380.8 45.38 416.2C45.38 451.7 74.6 480.6 110.3 480.6C146.6 480.6 176.3 451.2 176.3 415.2V351.8H109.8zM109.8 31.38C74.22 31.38 45.38 60.22 45.38 95.79C45.38 131.4 74.22 160.2 109.8 160.2H176.3V31.38H109.8zM207.7 160.2H274.2C309.7 160.2 338.6 131.4 338.6 95.79C338.6 60.22 309.7 31.38 274.2 31.38H207.7V160.2z" - } - }, - "free": [ - "brands" - ] - }, - "file": { - "changes": [ - "3.2.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f15b", - "aliases": { - "unicodes": { - "composite": [ - "1f5cb", - "f016", - "1f4c4" - ], - "secondary": [ - "10f15b" - ] - } - }, - "label": "File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256z" - }, - "regular": { - "last_modified": 1658443573044, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM336 448V160H256C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V448C48 456.8 55.16 464 64 464H320C328.8 464 336 456.8 336 448z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-arrow-down": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f56d", - "aliases": { - "names": [ - "file-download" - ], - "unicodes": { - "secondary": [ - "10f56d" - ] - } - }, - "label": "File arrow down", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 128h-128V0L384 128zM256 160H384v304c0 26.51-21.49 48-48 48h-288C21.49 512 0 490.5 0 464v-416C0 21.49 21.49 0 48 0H224l.0039 128C224 145.7 238.3 160 256 160zM255 295L216 334.1V232c0-13.25-10.75-24-24-24S168 218.8 168 232v102.1L128.1 295C124.3 290.3 118.2 288 112 288S99.72 290.3 95.03 295c-9.375 9.375-9.375 24.56 0 33.94l80 80c9.375 9.375 24.56 9.375 33.94 0l80-80c9.375-9.375 9.375-24.56 0-33.94S264.4 285.7 255 295z" - } - }, - "free": [ - "solid" - ] - }, - "file-arrow-up": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f574", - "aliases": { - "names": [ - "file-upload" - ], - "unicodes": { - "secondary": [ - "10f574" - ] - } - }, - "label": "File arrow up", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM288.1 344.1C284.3 349.7 278.2 352 272 352s-12.28-2.344-16.97-7.031L216 305.9V408c0 13.25-10.75 24-24 24s-24-10.75-24-24V305.9l-39.03 39.03c-9.375 9.375-24.56 9.375-33.94 0s-9.375-24.56 0-33.94l80-80c9.375-9.375 24.56-9.375 33.94 0l80 80C298.3 320.4 298.3 335.6 288.1 344.1z" - } - }, - "free": [ - "solid" - ] - }, - "file-audio": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c7", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c7" - ] - } - }, - "label": "Audio File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573238, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM176 404c0 10.75-12.88 15.98-20.5 8.484L120 376H76C69.38 376 64 370.6 64 364v-56C64 301.4 69.38 296 76 296H120l35.5-36.5C163.1 251.9 176 257.3 176 268V404zM224 387.8c-4.391 0-8.75-1.835-11.91-5.367c-5.906-6.594-5.359-16.69 1.219-22.59C220.2 353.7 224 345.2 224 336s-3.797-17.69-10.69-23.88c-6.578-5.906-7.125-16-1.219-22.59c5.922-6.594 16.05-7.094 22.59-1.219C248.2 300.5 256 317.8 256 336s-7.766 35.53-21.31 47.69C231.6 386.4 227.8 387.8 224 387.8zM320 336c0 41.81-20.5 81.11-54.84 105.1c-2.781 1.938-5.988 2.875-9.145 2.875c-5.047 0-10.03-2.375-13.14-6.844c-5.047-7.25-3.281-17.22 3.969-22.28C272.6 396.9 288 367.4 288 336s-15.38-60.84-41.14-78.8c-7.25-5.062-9.027-15.03-3.98-22.28c5.047-7.281 14.99-9.062 22.27-3.969C299.5 254.9 320 294.2 320 336zM256 0v128h128L256 0z" - }, - "regular": { - "last_modified": 1658443573041, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM171.5 259.5L136 296H92C85.38 296 80 301.4 80 308v56C80 370.7 85.38 376 92 376H136l35.5 36.5C179.1 420 192 414.8 192 404v-136C192 257.3 179.1 251.9 171.5 259.5zM235.1 260.7c-6.25 6.25-6.25 16.38 0 22.62C235.3 283.5 256 305.1 256 336c0 30.94-20.77 52.53-20.91 52.69c-6.25 6.25-6.25 16.38 0 22.62C238.2 414.4 242.3 416 246.4 416s8.188-1.562 11.31-4.688C258.1 410.1 288 380.5 288 336s-29.05-74.06-30.28-75.31C251.5 254.4 241.3 254.4 235.1 260.7z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-circle-check": { - "changes": [ - "6.0.0", - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e5a0", - "label": "File Circle-Check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V198.6C310.1 219.5 256 287.4 256 368C256 427.1 285.1 479.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM476.7 324.7L416 385.4L387.3 356.7C381.1 350.4 370.9 350.4 364.7 356.7C358.4 362.9 358.4 373.1 364.7 379.3L404.7 419.3C410.9 425.6 421.1 425.6 427.3 419.3L499.3 347.3C505.6 341.1 505.6 330.9 499.3 324.7C493.1 318.4 482.9 318.4 476.7 324.7H476.7z" - } - }, - "free": [ - "solid" - ] - }, - "file-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4eb", - "label": "File Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V198.6C310.1 219.5 256 287.4 256 368C256 427.1 285.1 479.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464zM415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "file-circle-minus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ed", - "label": "File Circle-minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V198.6C310.1 219.5 256 287.4 256 368C256 427.1 285.1 479.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM496 351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1z" - } - }, - "free": [ - "solid" - ] - }, - "file-circle-plus": { - "changes": [ - "6.0.0", - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e494", - "aliases": { - "unicodes": { - "composite": [ - "e4ee" - ] - } - }, - "label": "File Circle-plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V198.6C310.1 219.5 256 287.4 256 368C256 427.1 285.1 479.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM448 303.1C448 295.2 440.8 287.1 432 287.1C423.2 287.1 416 295.2 416 303.1V351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H416V431.1C416 440.8 423.2 447.1 432 447.1C440.8 447.1 448 440.8 448 431.1V383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1H448V303.1z" - } - }, - "free": [ - "solid" - ] - }, - "file-circle-question": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ef", - "label": "File Circle-question", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V198.6C310.1 219.5 256 287.4 256 368C256 427.1 285.1 479.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464zM368 328C368 336.8 375.2 344 384 344C392.8 344 400 336.8 400 328V321.6C400 316.3 404.3 312 409.6 312H450.1C457.8 312 464 318.2 464 325.9C464 331.1 461.1 335.8 456.6 338.3L424.6 355.1C419.3 357.9 416 363.3 416 369.2V384C416 392.8 423.2 400 432 400C440.8 400 448 392.8 448 384V378.9L471.5 366.6C486.6 358.6 496 342.1 496 325.9C496 300.6 475.4 280 450.1 280H409.6C386.6 280 368 298.6 368 321.6V328z" - } - }, - "free": [ - "solid" - ] - }, - "file-circle-xmark": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e5a1", - "label": "File Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V198.6C310.1 219.5 256 287.4 256 368C256 427.1 285.1 479.3 329.7 511.3C326.6 511.7 323.3 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM491.3 331.3C497.6 325.1 497.6 314.9 491.3 308.7C485.1 302.4 474.9 302.4 468.7 308.7L432 345.4L395.3 308.7C389.1 302.4 378.9 302.4 372.7 308.7C366.4 314.9 366.4 325.1 372.7 331.3L409.4 368L372.7 404.7C366.4 410.9 366.4 421.1 372.7 427.3C378.9 433.6 389.1 433.6 395.3 427.3L432 390.6L468.7 427.3C474.9 433.6 485.1 433.6 491.3 427.3C497.6 421.1 497.6 410.9 491.3 404.7L454.6 368L491.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "file-code": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c9", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c9" - ] - } - }, - "label": "Code File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM154.1 353.8c7.812 7.812 7.812 20.5 0 28.31C150.2 386.1 145.1 388 140 388s-10.23-1.938-14.14-5.844l-48-48c-7.812-7.812-7.812-20.5 0-28.31l48-48c7.812-7.812 20.47-7.812 28.28 0s7.812 20.5 0 28.31L120.3 320L154.1 353.8zM306.1 305.8c7.812 7.812 7.812 20.5 0 28.31l-48 48C254.2 386.1 249.1 388 244 388s-10.23-1.938-14.14-5.844c-7.812-7.812-7.812-20.5 0-28.31L263.7 320l-33.86-33.84c-7.812-7.812-7.812-20.5 0-28.31s20.47-7.812 28.28 0L306.1 305.8zM256 0v128h128L256 0z" - }, - "regular": { - "last_modified": 1658443573042, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M162.1 257.8c-7.812-7.812-20.47-7.812-28.28 0l-48 48c-7.812 7.812-7.812 20.5 0 28.31l48 48C137.8 386.1 142.9 388 148 388s10.23-1.938 14.14-5.844c7.812-7.812 7.812-20.5 0-28.31L128.3 320l33.86-33.84C169.1 278.3 169.1 265.7 162.1 257.8zM365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM221.9 257.8c-7.812 7.812-7.812 20.5 0 28.31L255.7 320l-33.86 33.84c-7.812 7.812-7.812 20.5 0 28.31C225.8 386.1 230.9 388 236 388s10.23-1.938 14.14-5.844l48-48c7.812-7.812 7.812-20.5 0-28.31l-48-48C242.3 250 229.7 250 221.9 257.8z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-contract": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f56c", - "aliases": { - "unicodes": { - "secondary": [ - "10f56c" - ] - } - }, - "label": "File Contract", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM64 72C64 67.63 67.63 64 72 64h80C156.4 64 160 67.63 160 72v16C160 92.38 156.4 96 152 96h-80C67.63 96 64 92.38 64 88V72zM64 136C64 131.6 67.63 128 72 128h80C156.4 128 160 131.6 160 136v16C160 156.4 156.4 160 152 160h-80C67.63 160 64 156.4 64 152V136zM304 384c8.875 0 16 7.125 16 16S312.9 416 304 416h-47.25c-16.38 0-31.25-9.125-38.63-23.88c-2.875-5.875-8-6.5-10.12-6.5s-7.25 .625-10 6.125l-7.75 15.38C187.6 412.6 181.1 416 176 416H174.9c-6.5-.5-12-4.75-14-11L144 354.6L133.4 386.5C127.5 404.1 111 416 92.38 416H80C71.13 416 64 408.9 64 400S71.13 384 80 384h12.38c4.875 0 9.125-3.125 10.62-7.625l18.25-54.63C124.5 311.9 133.6 305.3 144 305.3s19.5 6.625 22.75 16.5l13.88 41.63c19.75-16.25 54.13-9.75 66 14.12c2 4 6 6.5 10.12 6.5H304z" - } - }, - "free": [ - "solid" - ] - }, - "file-csv": { - "changes": [ - "5.4.0", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6dd", - "aliases": { - "unicodes": { - "secondary": [ - "10f6dd" - ] - } - }, - "label": "File CSV", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 0V128C224 145.7 238.3 160 256 160H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64C0 28.65 28.65 0 64 0H224zM80 224C57.91 224 40 241.9 40 264V344C40 366.1 57.91 384 80 384H96C118.1 384 136 366.1 136 344V336C136 327.2 128.8 320 120 320C111.2 320 104 327.2 104 336V344C104 348.4 100.4 352 96 352H80C75.58 352 72 348.4 72 344V264C72 259.6 75.58 256 80 256H96C100.4 256 104 259.6 104 264V272C104 280.8 111.2 288 120 288C128.8 288 136 280.8 136 272V264C136 241.9 118.1 224 96 224H80zM175.4 310.6L200.8 325.1C205.2 327.7 208 332.5 208 337.6C208 345.6 201.6 352 193.6 352H168C159.2 352 152 359.2 152 368C152 376.8 159.2 384 168 384H193.6C219.2 384 240 363.2 240 337.6C240 320.1 231.1 305.6 216.6 297.4L191.2 282.9C186.8 280.3 184 275.5 184 270.4C184 262.4 190.4 256 198.4 256H216C224.8 256 232 248.8 232 240C232 231.2 224.8 224 216 224H198.4C172.8 224 152 244.8 152 270.4C152 287 160.9 302.4 175.4 310.6zM280 240C280 231.2 272.8 224 264 224C255.2 224 248 231.2 248 240V271.6C248 306.3 258.3 340.3 277.6 369.2L282.7 376.9C285.7 381.3 290.6 384 296 384C301.4 384 306.3 381.3 309.3 376.9L314.4 369.2C333.7 340.3 344 306.3 344 271.6V240C344 231.2 336.8 224 328 224C319.2 224 312 231.2 312 240V271.6C312 294.6 306.5 317.2 296 337.5C285.5 317.2 280 294.6 280 271.6V240zM256 0L384 128H256V0z" - } - }, - "free": [ - "solid" - ] - }, - "file-excel": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c3", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c3" - ] - } - }, - "label": "Excel File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM272.1 264.4L224 344l48.99 79.61C279.6 434.3 271.9 448 259.4 448h-26.43c-5.557 0-10.71-2.883-13.63-7.617L192 396l-27.31 44.38C161.8 445.1 156.6 448 151.1 448H124.6c-12.52 0-20.19-13.73-13.63-24.39L160 344L111 264.4C104.4 253.7 112.1 240 124.6 240h26.43c5.557 0 10.71 2.883 13.63 7.613L192 292l27.31-44.39C222.2 242.9 227.4 240 232.9 240h26.43C271.9 240 279.6 253.7 272.1 264.4zM256 0v128h128L256 0z" - }, - "regular": { - "last_modified": 1658443573042, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM229.1 233.3L192 280.9L154.9 233.3C146.8 222.8 131.8 220.9 121.3 229.1C110.8 237.2 108.9 252.3 117.1 262.8L161.6 320l-44.53 57.25c-8.156 10.47-6.25 25.56 4.188 33.69C125.7 414.3 130.8 416 135.1 416c7.156 0 14.25-3.188 18.97-9.25L192 359.1l37.06 47.65C233.8 412.8 240.9 416 248 416c5.125 0 10.31-1.656 14.72-5.062c10.44-8.125 12.34-23.22 4.188-33.69L222.4 320l44.53-57.25c8.156-10.47 6.25-25.56-4.188-33.69C252.2 220.9 237.2 222.8 229.1 233.3z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-export": { - "changes": [ - "5.1.0", - "5.7.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f56e", - "aliases": { - "names": [ - "arrow-right-from-file" - ], - "unicodes": { - "secondary": [ - "10f56e" - ] - } - }, - "label": "File Export", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M192 312C192 298.8 202.8 288 216 288H384V160H256c-17.67 0-32-14.33-32-32L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48v-128H216C202.8 336 192 325.3 192 312zM256 0v128h128L256 0zM568.1 295l-80-80c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94L494.1 288H384v48h110.1l-39.03 39.03C450.3 379.7 448 385.8 448 392s2.344 12.28 7.031 16.97c9.375 9.375 24.56 9.375 33.94 0l80-80C578.3 319.6 578.3 304.4 568.1 295z" - } - }, - "free": [ - "solid" - ] - }, - "file-image": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c5", - "aliases": { - "unicodes": { - "composite": [ - "1f5bb" - ], - "secondary": [ - "10f1c5" - ] - } - }, - "label": "Image File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573239, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM96 224c17.67 0 32 14.33 32 32S113.7 288 96 288S64 273.7 64 256S78.33 224 96 224zM318.1 439.5C315.3 444.8 309.9 448 304 448h-224c-5.9 0-11.32-3.248-14.11-8.451c-2.783-5.201-2.479-11.52 .7949-16.42l53.33-80C122.1 338.7 127.1 336 133.3 336s10.35 2.674 13.31 7.125L160 363.2l45.35-68.03C208.3 290.7 213.3 288 218.7 288s10.35 2.674 13.31 7.125l85.33 128C320.6 428 320.9 434.3 318.1 439.5zM256 0v128h128L256 0z" - }, - "regular": { - "last_modified": 1658443573043, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM215.3 292c-4.68 0-9.051 2.34-11.65 6.234L164 357.8l-11.68-17.53C149.7 336.3 145.3 334 140.7 334c-4.682 0-9.053 2.34-11.65 6.234l-46.67 70c-2.865 4.297-3.131 9.82-.6953 14.37C84.09 429.2 88.84 432 93.1 432h196c5.163 0 9.907-2.844 12.34-7.395c2.436-4.551 2.17-10.07-.6953-14.37l-74.67-112C224.4 294.3 220 292 215.3 292zM128 288c17.67 0 32-14.33 32-32S145.7 224 128 224S96 238.3 96 256S110.3 288 128 288z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-import": { - "changes": [ - "5.1.0", - "5.7.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f56f", - "aliases": { - "names": [ - "arrow-right-to-file" - ], - "unicodes": { - "secondary": [ - "10f56f" - ] - } - }, - "label": "File Import", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M384 0v128h128L384 0zM352 128L352 0H176C149.5 0 128 21.49 128 48V288h174.1l-39.03-39.03c-9.375-9.375-9.375-24.56 0-33.94s24.56-9.375 33.94 0l80 80c9.375 9.375 9.375 24.56 0 33.94l-80 80c-9.375 9.375-24.56 9.375-33.94 0C258.3 404.3 256 398.2 256 392s2.344-12.28 7.031-16.97L302.1 336H128v128C128 490.5 149.5 512 176 512h288c26.51 0 48-21.49 48-48V160h-127.1C366.3 160 352 145.7 352 128zM24 288C10.75 288 0 298.7 0 312c0 13.25 10.75 24 24 24H128V288H24z" - } - }, - "free": [ - "solid" - ] - }, - "file-invoice": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f570", - "aliases": { - "unicodes": { - "secondary": [ - "10f570" - ] - } - }, - "label": "File Invoice", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM288 256H96v64h192V256zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM64 72C64 67.63 67.63 64 72 64h80C156.4 64 160 67.63 160 72v16C160 92.38 156.4 96 152 96h-80C67.63 96 64 92.38 64 88V72zM64 136C64 131.6 67.63 128 72 128h80C156.4 128 160 131.6 160 136v16C160 156.4 156.4 160 152 160h-80C67.63 160 64 156.4 64 152V136zM320 440c0 4.375-3.625 8-8 8h-80C227.6 448 224 444.4 224 440v-16c0-4.375 3.625-8 8-8h80c4.375 0 8 3.625 8 8V440zM320 240v96c0 8.875-7.125 16-16 16h-224C71.13 352 64 344.9 64 336v-96C64 231.1 71.13 224 80 224h224C312.9 224 320 231.1 320 240z" - } - }, - "free": [ - "solid" - ] - }, - "file-invoice-dollar": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f571", - "aliases": { - "unicodes": { - "secondary": [ - "10f571" - ] - } - }, - "label": "File Invoice with US Dollar", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 128h-128V0L384 128zM256 160H384v304c0 26.51-21.49 48-48 48h-288C21.49 512 0 490.5 0 464v-416C0 21.49 21.49 0 48 0H224l.0039 128C224 145.7 238.3 160 256 160zM64 88C64 92.38 67.63 96 72 96h80C156.4 96 160 92.38 160 88v-16C160 67.63 156.4 64 152 64h-80C67.63 64 64 67.63 64 72V88zM72 160h80C156.4 160 160 156.4 160 152v-16C160 131.6 156.4 128 152 128h-80C67.63 128 64 131.6 64 136v16C64 156.4 67.63 160 72 160zM197.5 316.8L191.1 315.2C168.3 308.2 168.8 304.1 169.6 300.5c1.375-7.812 16.59-9.719 30.27-7.625c5.594 .8438 11.73 2.812 17.59 4.844c10.39 3.594 21.83-1.938 25.45-12.34c3.625-10.44-1.891-21.84-12.33-25.47c-7.219-2.484-13.11-4.078-18.56-5.273V248c0-11.03-8.953-20-20-20s-20 8.969-20 20v5.992C149.6 258.8 133.8 272.8 130.2 293.7c-7.406 42.84 33.19 54.75 50.52 59.84l5.812 1.688c29.28 8.375 28.8 11.19 27.92 16.28c-1.375 7.812-16.59 9.75-30.31 7.625c-6.938-1.031-15.81-4.219-23.66-7.031l-4.469-1.625c-10.41-3.594-21.83 1.812-25.52 12.22c-3.672 10.41 1.781 21.84 12.2 25.53l4.266 1.5c7.758 2.789 16.38 5.59 25.06 7.512V424c0 11.03 8.953 20 20 20s20-8.969 20-20v-6.254c22.36-4.793 38.21-18.53 41.83-39.43C261.3 335 219.8 323.1 197.5 316.8z" - } - }, - "free": [ - "solid" - ] - }, - "file-lines": { - "changes": [ - "3.2.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f15c", - "aliases": { - "names": [ - "file-alt", - "file-text" - ], - "unicodes": { - "composite": [ - "1f5ce", - "f0f6", - "1f5b9" - ], - "secondary": [ - "10f15c" - ] - } - }, - "label": "File lines", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM272 416h-160C103.2 416 96 408.8 96 400C96 391.2 103.2 384 112 384h160c8.836 0 16 7.162 16 16C288 408.8 280.8 416 272 416zM272 352h-160C103.2 352 96 344.8 96 336C96 327.2 103.2 320 112 320h160c8.836 0 16 7.162 16 16C288 344.8 280.8 352 272 352zM288 272C288 280.8 280.8 288 272 288h-160C103.2 288 96 280.8 96 272C96 263.2 103.2 256 112 256h160C280.8 256 288 263.2 288 272z" - }, - "regular": { - "last_modified": 1658443573043, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM96 280C96 293.3 106.8 304 120 304h144C277.3 304 288 293.3 288 280S277.3 256 264 256h-144C106.8 256 96 266.8 96 280zM264 352h-144C106.8 352 96 362.8 96 376s10.75 24 24 24h144c13.25 0 24-10.75 24-24S277.3 352 264 352z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-medical": { - "changes": [ - "5.0.7", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f477", - "aliases": { - "unicodes": { - "secondary": [ - "10f477" - ] - } - }, - "label": "Medical File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM288 301.7v36.57C288 345.9 281.9 352 274.3 352L224 351.1v50.29C224 409.9 217.9 416 210.3 416H173.7C166.1 416 160 409.9 160 402.3V351.1L109.7 352C102.1 352 96 345.9 96 338.3V301.7C96 294.1 102.1 288 109.7 288H160V237.7C160 230.1 166.1 224 173.7 224h36.57C217.9 224 224 230.1 224 237.7V288h50.29C281.9 288 288 294.1 288 301.7z" - } - }, - "free": [ - "solid" - ] - }, - "file-pdf": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c1", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c1" - ] - } - }, - "label": "PDF File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M88 304H80V256H88C101.3 256 112 266.7 112 280C112 293.3 101.3 304 88 304zM192 256H200C208.8 256 216 263.2 216 272V336C216 344.8 208.8 352 200 352H192V256zM224 0V128C224 145.7 238.3 160 256 160H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V64C0 28.65 28.65 0 64 0H224zM64 224C55.16 224 48 231.2 48 240V368C48 376.8 55.16 384 64 384C72.84 384 80 376.8 80 368V336H88C118.9 336 144 310.9 144 280C144 249.1 118.9 224 88 224H64zM160 368C160 376.8 167.2 384 176 384H200C226.5 384 248 362.5 248 336V272C248 245.5 226.5 224 200 224H176C167.2 224 160 231.2 160 240V368zM288 224C279.2 224 272 231.2 272 240V368C272 376.8 279.2 384 288 384C296.8 384 304 376.8 304 368V320H336C344.8 320 352 312.8 352 304C352 295.2 344.8 288 336 288H304V256H336C344.8 256 352 248.8 352 240C352 231.2 344.8 224 336 224H288zM256 0L384 128H256V0z" - }, - "regular": { - "last_modified": 1658443573043, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 464C328.8 464 336 456.8 336 448V416H384V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V416H48V448C48 456.8 55.16 464 64 464H320zM256 160C238.3 160 224 145.7 224 128V48H64C55.16 48 48 55.16 48 64V192H0V64C0 28.65 28.65 0 64 0H229.5C246.5 0 262.7 6.743 274.7 18.75L365.3 109.3C377.3 121.3 384 137.5 384 154.5V192H336V160H256zM88 224C118.9 224 144 249.1 144 280C144 310.9 118.9 336 88 336H80V368C80 376.8 72.84 384 64 384C55.16 384 48 376.8 48 368V240C48 231.2 55.16 224 64 224H88zM112 280C112 266.7 101.3 256 88 256H80V304H88C101.3 304 112 293.3 112 280zM160 240C160 231.2 167.2 224 176 224H200C226.5 224 248 245.5 248 272V336C248 362.5 226.5 384 200 384H176C167.2 384 160 376.8 160 368V240zM192 352H200C208.8 352 216 344.8 216 336V272C216 263.2 208.8 256 200 256H192V352zM336 224C344.8 224 352 231.2 352 240C352 248.8 344.8 256 336 256H304V288H336C344.8 288 352 295.2 352 304C352 312.8 344.8 320 336 320H304V368C304 376.8 296.8 384 288 384C279.2 384 272 376.8 272 368V240C272 231.2 279.2 224 288 224H336z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-pen": { - "changes": [ - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f31c", - "aliases": { - "names": [ - "file-edit" - ], - "unicodes": { - "composite": [ - "1f4dd" - ], - "secondary": [ - "10f31c" - ] - } - }, - "label": "File pen", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V299.6L289.3 394.3C281.1 402.5 275.3 412.8 272.5 424.1L257.4 484.2C255.1 493.6 255.7 503.2 258.8 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM564.1 250.1C579.8 265.7 579.8 291 564.1 306.7L534.7 336.1L463.8 265.1L493.2 235.7C508.8 220.1 534.1 220.1 549.8 235.7L564.1 250.1zM311.9 416.1L441.1 287.8L512.1 358.7L382.9 487.9C378.8 492 373.6 494.9 368 496.3L307.9 511.4C302.4 512.7 296.7 511.1 292.7 507.2C288.7 503.2 287.1 497.4 288.5 491.1L303.5 431.8C304.9 426.2 307.8 421.1 311.9 416.1V416.1z" - } - }, - "free": [ - "solid" - ] - }, - "file-powerpoint": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c4", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c4" - ] - } - }, - "label": "Powerpoint File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM279.6 308.1C284.2 353.5 248.5 392 204 392H160v40C160 440.8 152.8 448 144 448H128c-8.836 0-16-7.164-16-16V256c0-8.836 7.164-16 16-16h71.51C239.3 240 275.6 268.5 279.6 308.1zM160 344h44c15.44 0 28-12.56 28-28S219.4 288 204 288H160V344z" - }, - "regular": { - "last_modified": 1658443573043, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM200 224H128C119.2 224 112 231.2 112 240v168c0 13.25 10.75 24 24 24S160 421.3 160 408v-32h44c44.21 0 79.73-37.95 75.69-82.98C276.1 253.2 240 224 200 224zM204 328H160V272h44c15.44 0 28 12.56 28 28S219.4 328 204 328z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-prescription": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f572", - "aliases": { - "unicodes": { - "secondary": [ - "10f572" - ] - } - }, - "label": "File Prescription", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M176 240H128v32h48C184.9 272 192 264.9 192 256S184.9 240 176 240zM256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM292.5 315.5l11.38 11.25c6.25 6.25 6.25 16.38 0 22.62l-29.88 30L304 409.4c6.25 6.25 6.25 16.38 0 22.62l-11.25 11.38c-6.25 6.25-16.5 6.25-22.75 0L240 413.3l-30 30c-6.249 6.25-16.48 6.266-22.73 .0156L176 432c-6.25-6.25-6.25-16.38 0-22.62l29.1-30.12L146.8 320H128l.0078 48.01c0 8.875-7.125 16-16 16L96 384c-8.875 0-16-7.125-16-16v-160C80 199.1 87.13 192 96 192h80c35.38 0 64 28.62 64 64c0 24.25-13.62 45-33.5 55.88L240 345.4l29.88-29.88C276.1 309.3 286.3 309.3 292.5 315.5z" - } - }, - "free": [ - "solid" - ] - }, - "file-shield": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f0", - "label": "File Shield", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H224V128C224 145.7 238.3 160 256 160H384V207L291.2 244.2C269.9 252.7 256 273.3 256 296.2C256 352.7 274.9 444.2 350.2 504.4C341.2 509.3 330.9 512 320 512H64C28.65 512 0 483.3 0 448V64zM256 128V0L384 128H256zM423.1 225.7C428.8 223.4 435.2 223.4 440.9 225.7L560.9 273.7C570 277.4 576 286.2 576 296C576 359.3 550.1 464.8 441.2 510.2C435.3 512.6 428.7 512.6 422.8 510.2C313.9 464.8 288 359.3 288 296C288 286.2 293.1 277.4 303.1 273.7L423.1 225.7zM432 273.8V461.7C500.2 428.7 523.5 362.7 527.4 311.1L432 273.8z" - } - }, - "free": [ - "solid" - ] - }, - "file-signature": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f573", - "aliases": { - "unicodes": { - "secondary": [ - "10f573" - ] - } - }, - "label": "File Signature", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573240, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M292.7 342.3C289.7 345.3 288 349.4 288 353.7V416h62.34c4.264 0 8.35-1.703 11.35-4.727l156.9-158l-67.88-67.88L292.7 342.3zM568.5 167.4L536.6 135.5c-9.875-10-26-10-36 0l-27.25 27.25l67.88 67.88l27.25-27.25C578.5 193.4 578.5 177.3 568.5 167.4zM256 0v128h128L256 0zM256 448c-16.07-.2852-30.62-9.359-37.88-23.88c-2.875-5.875-8-6.5-10.12-6.5s-7.25 .625-10 6.125l-7.749 15.38C187.6 444.6 181.1 448 176 448H174.9c-6.5-.5-12-4.75-14-11L144 386.6L133.4 418.5C127.5 436.1 111 448 92.45 448H80C71.13 448 64 440.9 64 432S71.13 416 80 416h12.4c4.875 0 9.102-3.125 10.6-7.625l18.25-54.63C124.5 343.9 133.6 337.3 144 337.3s19.5 6.625 22.75 16.5l13.88 41.63c19.75-16.25 54.13-9.75 66 14.12C248.5 413.2 252.2 415.6 256 415.9V347c0-8.523 3.402-16.7 9.451-22.71L384 206.5V160H256c-17.67 0-32-14.33-32-32L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V448H256z" - } - }, - "free": [ - "solid" - ] - }, - "file-video": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c8", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c8" - ] - } - }, - "label": "Video File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM224 384c0 17.67-14.33 32-32 32H96c-17.67 0-32-14.33-32-32V288c0-17.67 14.33-32 32-32h96c17.67 0 32 14.33 32 32V384zM320 284.9v102.3c0 12.57-13.82 20.23-24.48 13.57L256 376v-80l39.52-24.7C306.2 264.6 320 272.3 320 284.9z" - }, - "regular": { - "last_modified": 1658443573044, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM240 288c0-17.67-14.33-32-32-32h-96c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h96c17.67 0 32-14.33 32-32v-16.52l43.84 30.2C292.3 403.5 304 397.6 304 387.4V284.6c0-10.16-11.64-16.16-20.16-10.32L240 304.5V288z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-waveform": { - "changes": [ - "5.0.7", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f478", - "aliases": { - "names": [ - "file-medical-alt" - ], - "unicodes": { - "secondary": [ - "10f478" - ] - } - }, - "label": "File waveform", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M320 0v128h128L320 0zM288 128L288 0H112C85.49 0 64 21.49 64 48V224H16C7.164 224 0 231.2 0 240v32C0 280.8 7.164 288 16 288h128c6.062 0 11.59 3.438 14.31 8.844L176 332.2l49.69-99.38c5.438-10.81 23.19-10.81 28.62 0L281.9 288H352c8.844 0 16 7.156 16 16S360.8 320 352 320h-80c-6.062 0-11.59-3.438-14.31-8.844L240 275.8l-49.69 99.38C187.6 380.6 182.1 384 176 384s-11.59-3.438-14.31-8.844L134.1 320H64v144C64 490.5 85.49 512 112 512h288c26.51 0 48-21.49 48-48V160h-127.1C302.3 160 288 145.7 288 128z" - } - }, - "free": [ - "solid" - ] - }, - "file-word": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c2", - "aliases": { - "unicodes": { - "secondary": [ - "10f1c2" - ] - } - }, - "label": "Word File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM281.5 240h23.37c7.717 0 13.43 7.18 11.69 14.7l-42.46 184C272.9 444.1 268 448 262.5 448h-29.26c-5.426 0-10.18-3.641-11.59-8.883L192 329.1l-29.61 109.1C160.1 444.4 156.2 448 150.8 448H121.5c-5.588 0-10.44-3.859-11.69-9.305l-42.46-184C65.66 247.2 71.37 240 79.08 240h23.37c5.588 0 10.44 3.859 11.69 9.301L137.8 352L165.6 248.9C167 243.6 171.8 240 177.2 240h29.61c5.426 0 10.18 3.641 11.59 8.883L246.2 352l23.7-102.7C271.1 243.9 275.1 240 281.5 240zM256 0v128h128L256 0z" - }, - "regular": { - "last_modified": 1658443573044, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0H64C28.65 0 0 28.65 0 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h160L224 128c0 17.67 14.33 32 32 32h79.1V448zM214.6 248C211.3 238.4 202.2 232 192 232s-19.25 6.406-22.62 16L144.7 318.1l-25.89-77.66C114.6 227.8 101 221.2 88.41 225.2C75.83 229.4 69.05 243 73.23 255.6l48 144C124.5 409.3 133.5 415.9 143.8 416c10.17 0 19.45-6.406 22.83-16L192 328.1L217.4 400C220.8 409.6 229.8 416 240 416c10.27-.0938 19.53-6.688 22.77-16.41l48-144c4.188-12.59-2.594-26.16-15.17-30.38c-12.61-4.125-26.2 2.594-30.36 15.19l-25.89 77.66L214.6 248z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "file-zipper": { - "changes": [ - "4.1.0", - "5.0.0", - "5.7.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1c6", - "aliases": { - "names": [ - "file-archive" - ], - "unicodes": { - "secondary": [ - "10f1c6" - ] - } - }, - "label": "File zipper", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 0v128h128L256 0zM224 128L224 0H48C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48V160h-127.1C238.3 160 224 145.7 224 128zM96 32h64v32H96V32zM96 96h64v32H96V96zM96 160h64v32H96V160zM128.3 415.1c-40.56 0-70.76-36.45-62.83-75.45L96 224h64l30.94 116.9C198.7 379.7 168.5 415.1 128.3 415.1zM144 336h-32C103.2 336 96 343.2 96 352s7.164 16 16 16h32C152.8 368 160 360.8 160 352S152.8 336 144 336z" - }, - "regular": { - "last_modified": 1658443573044, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M365.3 93.38l-74.63-74.64C278.6 6.742 262.3 0 245.4 0L64-.0001c-35.35 0-64 28.65-64 64l.0065 384c0 35.34 28.65 64 64 64H320c35.2 0 64-28.8 64-64V138.6C384 121.7 377.3 105.4 365.3 93.38zM336 448c0 8.836-7.164 16-16 16H64.02c-8.838 0-16-7.164-16-16L48 64.13c0-8.836 7.164-16 16-16h48V64h64V48.13h48.01L224 128c0 17.67 14.33 32 32 32h79.1V448zM176 96h-64v32h64V96zM176 160h-64v32h64V160zM176 224h-64l-30.56 116.5C73.51 379.5 103.7 416 144.3 416c40.26 0 70.45-36.3 62.68-75.15L176 224zM160 368H128c-8.836 0-16-7.164-16-16s7.164-16 16-16h32c8.836 0 16 7.164 16 16S168.8 368 160 368z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "fill": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f575", - "aliases": { - "unicodes": { - "secondary": [ - "10f575" - ] - } - }, - "label": "Fill", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M168 90.74L221.1 37.66C249.2 9.539 294.8 9.539 322.9 37.66L474.3 189.1C502.5 217.2 502.5 262.8 474.3 290.9L283.9 481.4C246.4 518.9 185.6 518.9 148.1 481.4L30.63 363.9C-6.863 326.4-6.863 265.6 30.63 228.1L122.7 135.1L41.37 54.63C28.88 42.13 28.88 21.87 41.37 9.372C53.87-3.124 74.13-3.124 86.63 9.372L168 90.74zM75.88 273.4C71.69 277.6 68.9 282.6 67.52 287.1H386.7L429.1 245.7C432.2 242.5 432.2 237.5 429.1 234.3L277.7 82.91C274.5 79.79 269.5 79.79 266.3 82.91L213.3 136L262.6 185.4C275.1 197.9 275.1 218.1 262.6 230.6C250.1 243.1 229.9 243.1 217.4 230.6L168 181.3L75.88 273.4z" - } - }, - "free": [ - "solid" - ] - }, - "fill-drip": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f576", - "aliases": { - "unicodes": { - "secondary": [ - "10f576" - ] - } - }, - "label": "Fill Drip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M41.37 9.372C53.87-3.124 74.13-3.124 86.63 9.372L168 90.74L221.1 37.66C249.2 9.539 294.8 9.539 322.9 37.66L474.3 189.1C502.5 217.2 502.5 262.8 474.3 290.9L283.9 481.4C246.4 518.9 185.6 518.9 148.1 481.4L30.63 363.9C-6.863 326.4-6.863 265.6 30.63 228.1L122.7 135.1L41.37 54.63C28.88 42.13 28.88 21.87 41.37 9.372V9.372zM217.4 230.6L168 181.3L75.88 273.4C71.69 277.6 68.9 282.6 67.52 288H386.7L429.1 245.7C432.2 242.5 432.2 237.5 429.1 234.3L277.7 82.91C274.5 79.79 269.5 79.79 266.3 82.91L213.3 136L262.6 185.4C275.1 197.9 275.1 218.1 262.6 230.6C250.1 243.1 229.9 243.1 217.4 230.6L217.4 230.6zM448 448C448 422.8 480.6 368.4 499.2 339.3C505.3 329.9 518.7 329.9 524.8 339.3C543.4 368.4 576 422.8 576 448C576 483.3 547.3 512 512 512C476.7 512 448 483.3 448 448H448z" - } - }, - "free": [ - "solid" - ] - }, - "film": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f008", - "aliases": { - "unicodes": { - "composite": [ - "1f39e" - ], - "secondary": [ - "10f008" - ] - } - }, - "label": "Film", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M463.1 32h-416C21.49 32-.0001 53.49-.0001 80v352c0 26.51 21.49 48 47.1 48h416c26.51 0 48-21.49 48-48v-352C511.1 53.49 490.5 32 463.1 32zM111.1 408c0 4.418-3.582 8-8 8H55.1c-4.418 0-8-3.582-8-8v-48c0-4.418 3.582-8 8-8h47.1c4.418 0 8 3.582 8 8L111.1 408zM111.1 280c0 4.418-3.582 8-8 8H55.1c-4.418 0-8-3.582-8-8v-48c0-4.418 3.582-8 8-8h47.1c4.418 0 8 3.582 8 8V280zM111.1 152c0 4.418-3.582 8-8 8H55.1c-4.418 0-8-3.582-8-8v-48c0-4.418 3.582-8 8-8h47.1c4.418 0 8 3.582 8 8L111.1 152zM351.1 400c0 8.836-7.164 16-16 16H175.1c-8.836 0-16-7.164-16-16v-96c0-8.838 7.164-16 16-16h160c8.836 0 16 7.162 16 16V400zM351.1 208c0 8.836-7.164 16-16 16H175.1c-8.836 0-16-7.164-16-16v-96c0-8.838 7.164-16 16-16h160c8.836 0 16 7.162 16 16V208zM463.1 408c0 4.418-3.582 8-8 8h-47.1c-4.418 0-7.1-3.582-7.1-8l0-48c0-4.418 3.582-8 8-8h47.1c4.418 0 8 3.582 8 8V408zM463.1 280c0 4.418-3.582 8-8 8h-47.1c-4.418 0-8-3.582-8-8v-48c0-4.418 3.582-8 8-8h47.1c4.418 0 8 3.582 8 8V280zM463.1 152c0 4.418-3.582 8-8 8h-47.1c-4.418 0-8-3.582-8-8l0-48c0-4.418 3.582-8 7.1-8h47.1c4.418 0 8 3.582 8 8V152z" - } - }, - "free": [ - "solid" - ] - }, - "filter": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0b0", - "aliases": { - "unicodes": { - "secondary": [ - "10f0b0" - ] - } - }, - "label": "Filter", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M3.853 54.87C10.47 40.9 24.54 32 40 32H472C487.5 32 501.5 40.9 508.1 54.87C514.8 68.84 512.7 85.37 502.1 97.33L320 320.9V448C320 460.1 313.2 471.2 302.3 476.6C291.5 482 278.5 480.9 268.8 473.6L204.8 425.6C196.7 419.6 192 410.1 192 400V320.9L9.042 97.33C-.745 85.37-2.765 68.84 3.854 54.87L3.853 54.87z" - } - }, - "free": [ - "solid" - ] - }, - "filter-circle-dollar": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f662", - "aliases": { - "names": [ - "funnel-dollar" - ], - "unicodes": { - "secondary": [ - "10f662" - ] - } - }, - "label": "Filter Circle Dollar", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573241, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M3.853 22.87C10.47 8.904 24.54 0 40 0H472C487.5 0 501.5 8.904 508.1 22.87C514.8 36.84 512.7 53.37 502.1 65.33L396.4 195.6C316.2 212.1 255.1 283 255.1 368C255.1 395.4 262.3 421.4 273.5 444.5C271.8 443.7 270.3 442.7 268.8 441.6L204.8 393.6C196.7 387.6 192 378.1 192 368V288.9L9.042 65.33C-.745 53.37-2.765 36.84 3.854 22.87H3.853zM576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM413 331.1C418.1 329.3 425.6 327.9 431.8 328C439.1 328.1 448.9 329.8 458.1 332.1C466.7 334.2 475.4 328.1 477.5 320.4C479.7 311.8 474.4 303.2 465.9 301C460.3 299.6 454.3 298.3 448 297.4V288C448 279.2 440.8 272 432 272C423.2 272 416 279.2 416 288V297.5C409.9 298.7 403.7 300.7 397.1 303.8C386.1 310.1 374.9 322.2 376.1 341C377.1 357 387.8 366.4 397.7 371.7C406.6 376.4 417.5 379.5 426.3 381.1L428.1 382.5C438.3 385.4 445.1 387.7 451.2 390.8C455.8 393.5 455.1 395.1 455.1 396.5C456.1 398.9 455.5 400.2 454.1 401C454.3 401.1 453.2 403.2 450.1 404.4C446.3 406.9 439.2 408.2 432.5 407.1C422.1 407.7 414 404.8 402.6 401.2C400.7 400.6 398.8 400 396.8 399.4C388.3 396.8 379.3 401.5 376.7 409.9C374.1 418.3 378.8 427.3 387.2 429.9C388.9 430.4 390.5 430.1 392.3 431.5C399.3 433.8 407.4 436.4 416 438.1V449.5C416 458.4 423.2 465.5 432 465.5C440.8 465.5 448 458.4 448 449.5V438.7C454.2 437.6 460.5 435.6 466.3 432.5C478.3 425.9 488.5 413.8 487.1 395.5C487.5 379.4 477.7 369.3 467.5 363.3C458.1 357.7 446.2 354.4 436.9 351.7L436.8 351.7C426.3 348.7 418.5 346.5 412.9 343.5C408.1 340.9 408.1 339.5 408.1 339.1L408.1 338.1C407.9 337 408.4 336.1 408.8 335.4C409.4 334.5 410.6 333.3 413 331.1L413 331.1z" - } - }, - "free": [ - "solid" - ] - }, - "filter-circle-xmark": { - "changes": [ - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e17b", - "label": "Filter Circle X Mark", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M3.853 22.87C10.47 8.904 24.54 0 40 0H472C487.5 0 501.5 8.904 508.1 22.87C514.8 36.84 512.7 53.37 502.1 65.33L396.4 195.6C316.2 212.1 255.1 283 255.1 368C255.1 395.4 262.3 421.4 273.5 444.5C271.8 443.7 270.3 442.7 268.8 441.6L204.8 393.6C196.7 387.6 192 378.1 192 368V288.9L9.042 65.33C-.745 53.37-2.765 36.84 3.854 22.87H3.853zM287.1 368C287.1 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 287.1 447.5 287.1 368zM491.3 331.3C497.6 325.1 497.6 314.9 491.3 308.7C485.1 302.4 474.9 302.4 468.7 308.7L432 345.4L395.3 308.7C389.1 302.4 378.9 302.4 372.7 308.7C366.4 314.9 366.4 325.1 372.7 331.3L409.4 368L372.7 404.7C366.4 410.9 366.4 421.1 372.7 427.3C378.9 433.6 389.1 433.6 395.3 427.3L432 390.6L468.7 427.3C474.9 433.6 485.1 433.6 491.3 427.3C497.6 421.1 497.6 410.9 491.3 404.7L454.6 368L491.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "fingerprint": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f577", - "aliases": { - "unicodes": { - "secondary": [ - "10f577" - ] - } - }, - "label": "Fingerprint", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256.1 246c-13.25 0-23.1 10.75-23.1 23.1c1.125 72.25-8.124 141.9-27.75 211.5C201.7 491.3 206.6 512 227.5 512c10.5 0 20.12-6.875 23.12-17.5c13.5-47.87 30.1-125.4 29.5-224.5C280.1 256.8 269.4 246 256.1 246zM255.2 164.3C193.1 164.1 151.2 211.3 152.1 265.4c.75 47.87-3.75 95.87-13.37 142.5c-2.75 12.1 5.624 25.62 18.62 28.37c12.1 2.625 25.62-5.625 28.37-18.62c10.37-50.12 15.12-101.6 14.37-152.1C199.7 238.6 219.1 212.1 254.5 212.3c31.37 .5 57.24 25.37 57.62 55.5c.8749 47.1-2.75 96.25-10.62 143.5c-2.125 12.1 6.749 25.37 19.87 27.62c19.87 3.25 26.75-15.12 27.5-19.87c8.249-49.1 12.12-101.1 11.25-151.1C359.2 211.1 312.2 165.1 255.2 164.3zM144.6 144.5C134.2 136.1 119.2 137.6 110.7 147.9C85.25 179.4 71.38 219.3 72 259.9c.6249 37.62-2.375 75.37-8.999 112.1c-2.375 12.1 6.249 25.5 19.25 27.87c20.12 3.5 27.12-14.87 27.1-19.37c7.124-39.87 10.5-80.62 9.749-121.4C119.6 229.3 129.2 201.3 147.1 178.3C156.4 167.9 154.9 152.9 144.6 144.5zM253.1 82.14C238.6 81.77 223.1 83.52 208.2 87.14c-12.87 2.1-20.87 15.1-17.87 28.87c3.125 12.87 15.1 20.75 28.1 17.75C230.4 131.3 241.7 130 253.4 130.1c75.37 1.125 137.6 61.5 138.9 134.6c.5 37.87-1.375 75.1-5.624 113.6c-1.5 13.12 7.999 24.1 21.12 26.5c16.75 1.1 25.5-11.87 26.5-21.12c4.625-39.75 6.624-79.75 5.999-119.7C438.6 165.3 355.1 83.64 253.1 82.14zM506.1 203.6c-2.875-12.1-15.51-21.25-28.63-18.38c-12.1 2.875-21.12 15.75-18.25 28.62c4.75 21.5 4.875 37.5 4.75 61.62c-.1249 13.25 10.5 24.12 23.75 24.25c13.12 0 24.12-10.62 24.25-23.87C512.1 253.8 512.3 231.8 506.1 203.6zM465.1 112.9c-48.75-69.37-128.4-111.7-213.3-112.9c-69.74-.875-134.2 24.84-182.2 72.96c-46.37 46.37-71.34 108-70.34 173.6l-.125 21.5C-.3651 281.4 10.01 292.4 23.26 292.8C23.51 292.9 23.76 292.9 24.01 292.9c12.1 0 23.62-10.37 23.1-23.37l.125-23.62C47.38 193.4 67.25 144 104.4 106.9c38.87-38.75 91.37-59.62 147.7-58.87c69.37 .1 134.7 35.62 174.6 92.37c7.624 10.87 22.5 13.5 33.37 5.875C470.1 138.6 473.6 123.8 465.1 112.9z" - } - }, - "free": [ - "solid" - ] - }, - "fire": { - "changes": [ - "1.0.0", - "5.0.0", - "5.6.0", - "5.6.3", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f06d", - "aliases": { - "unicodes": { - "composite": [ - "1f525" - ], - "secondary": [ - "10f06d" - ] - } - }, - "label": "fire", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M323.5 51.25C302.8 70.5 284 90.75 267.4 111.1C240.1 73.62 206.2 35.5 168 0C69.75 91.12 0 210 0 281.6C0 408.9 100.2 512 224 512s224-103.1 224-230.4C448 228.4 396 118.5 323.5 51.25zM304.1 391.9C282.4 407 255.8 416 226.9 416c-72.13 0-130.9-47.73-130.9-125.2c0-38.63 24.24-72.64 72.74-130.8c7 8 98.88 125.4 98.88 125.4l58.63-66.88c4.125 6.75 7.867 13.52 11.24 19.9C364.9 290.6 353.4 357.4 304.1 391.9z" - } - }, - "free": [ - "solid" - ] - }, - "fire-burner": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f1", - "label": "Fire Burner", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M349 61.49C356.9 51.61 365.8 40.76 375.5 31.99C381.1 26.87 389.9 26.89 395.5 32.03C420.2 54.71 441.1 84.69 455.8 113.2C470.4 141.2 480 169.9 480 190.1C480 277.9 408.7 352 320 352C230.3 352 160 277.8 160 190.1C160 163.7 172.7 131.5 192.4 99.52C212.4 67.16 240.5 33.43 273.8 3.734C279.4-1.26 287.1-1.242 293.5 3.773C313.3 21.55 331.8 40.74 349 61.49V61.49zM390 176.1C388 172.1 386 168.1 383 164.1L347 206.1C347 206.1 289 132.1 285 127.1C255 164.1 240 185.1 240 209.1C240 258.1 276 287.1 320.1 287.1C339 287.1 355 282.1 370 272.1C400 251.1 408 209.1 390 176.1zM32 287.1C32 270.3 46.33 255.1 64 255.1H96C113.7 255.1 128 270.3 128 287.1C128 305.7 113.7 319.1 96 319.1V384H544V319.1C526.3 319.1 512 305.7 512 287.1C512 270.3 526.3 255.1 544 255.1H576C593.7 255.1 608 270.3 608 287.1V384C625.7 384 640 398.3 640 416V480C640 497.7 625.7 512 608 512H32C14.33 512 0 497.7 0 480V416C0 398.3 14.33 384 32 384V287.1zM320 480C337.7 480 352 465.7 352 448C352 430.3 337.7 416 320 416C302.3 416 288 430.3 288 448C288 465.7 302.3 480 320 480zM448 416C430.3 416 416 430.3 416 448C416 465.7 430.3 480 448 480C465.7 480 480 465.7 480 448C480 430.3 465.7 416 448 416zM192 480C209.7 480 224 465.7 224 448C224 430.3 209.7 416 192 416C174.3 416 160 430.3 160 448C160 465.7 174.3 480 192 480z" - } - }, - "free": [ - "solid" - ] - }, - "fire-extinguisher": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f134", - "aliases": { - "unicodes": { - "composite": [ - "1f9ef" - ], - "secondary": [ - "10f134" - ] - } - }, - "label": "fire-extinguisher", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 480c0 17.67 14.33 32 31.1 32H256c17.67 0 31.1-14.33 31.1-32l-.0001-32H64L64 480zM503.4 5.56c-5.453-4.531-12.61-6.406-19.67-5.188l-175.1 32c-11.41 2.094-19.7 12.03-19.7 23.63L224 56L224 32c0-17.67-14.33-32-31.1-32H160C142.3 0 128 14.33 128 32l.0002 26.81C69.59 69.32 20.5 110.6 1.235 168.4C-2.952 181 3.845 194.6 16.41 198.8C18.94 199.6 21.48 200 24 200c10.05 0 19.42-6.344 22.77-16.41C59.45 145.5 90.47 117.8 128 108L128 139.2C90.27 157.2 64 195.4 64 240L64 416h223.1l.0001-176c0-44.6-26.27-82.79-63.1-100.8L224 104l63.1-.002c0 11.59 8.297 21.53 19.7 23.62l175.1 31.1c1.438 .25 2.875 .375 4.297 .375c5.578 0 11.03-1.938 15.37-5.562c5.469-4.562 8.625-11.31 8.625-18.44V23.1C511.1 16.87 508.8 10.12 503.4 5.56zM176 96C167.2 96 160 88.84 160 80S167.2 64 176 64s15.1 7.164 15.1 16S184.8 96 176 96z" - } - }, - "free": [ - "solid" - ] - }, - "fire-flame-curved": { - "changes": [ - "5.6.3", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7e4", - "aliases": { - "names": [ - "fire-alt" - ], - "unicodes": { - "secondary": [ - "10f7e4" - ] - } - }, - "label": "Fire flame curved", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 319.1C384 425.9 297.9 512 192 512s-192-86.13-192-192c0-58.67 27.82-106.8 54.57-134.1C69.54 169.3 96 179.8 96 201.5v85.5c0 35.17 27.97 64.5 63.16 64.94C194.9 352.5 224 323.6 224 288c0-88-175.1-96.12-52.15-277.2c13.5-19.72 44.15-10.77 44.15 13.03C215.1 127 384 149.7 384 319.1z" - } - }, - "free": [ - "solid" - ] - }, - "fire-flame-simple": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f46a", - "aliases": { - "names": [ - "burn" - ], - "unicodes": { - "secondary": [ - "10f46a" - ] - } - }, - "label": "Fire flame simple", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M203.1 4.365c-6.177-5.82-16.06-5.819-22.23-.0007C74.52 104.5 0 234.1 0 312C0 437.9 79 512 192 512s192-74.05 192-200C384 233.9 309 104.2 203.1 4.365zM192 432c-56.5 0-96-37.76-96-91.74c0-12.47 4.207-55.32 83.87-143c6.314-6.953 17.95-6.953 24.26 0C283.8 284.9 288 327.8 288 340.3C288 394.2 248.5 432 192 432z" - } - }, - "free": [ - "solid" - ] - }, - "firefox": { - "changes": [ - "4.4.0", - "5.0.0", - "5.0.1", - "5.12.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f269", - "label": "Firefox", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M503.5 241.5c-.12-1.56-.24-3.12-.24-4.68v-.12l-.36-4.68v-.12a245.9 245.9 0 0 0 -7.32-41.15c0-.12 0-.12-.12-.24l-1.08-4c-.12-.24-.12-.48-.24-.6-.36-1.2-.72-2.52-1.08-3.72-.12-.24-.12-.6-.24-.84-.36-1.2-.72-2.4-1.08-3.48-.12-.36-.24-.6-.36-1-.36-1.2-.72-2.28-1.2-3.48l-.36-1.08c-.36-1.08-.84-2.28-1.2-3.36a8.27 8.27 0 0 0 -.36-1c-.48-1.08-.84-2.28-1.32-3.36-.12-.24-.24-.6-.36-.84-.48-1.2-1-2.28-1.44-3.48 0-.12-.12-.24-.12-.36-1.56-3.84-3.24-7.68-5-11.4l-.36-.72c-.48-1-.84-1.8-1.32-2.64-.24-.48-.48-1.08-.72-1.56-.36-.84-.84-1.56-1.2-2.4-.36-.6-.6-1.2-1-1.8s-.84-1.44-1.2-2.28c-.36-.6-.72-1.32-1.08-1.92s-.84-1.44-1.2-2.16a18.07 18.07 0 0 0 -1.2-2c-.36-.72-.84-1.32-1.2-2s-.84-1.32-1.2-2-.84-1.32-1.2-1.92-.84-1.44-1.32-2.16a15.63 15.63 0 0 0 -1.2-1.8L463.2 119a15.63 15.63 0 0 0 -1.2-1.8c-.48-.72-1.08-1.56-1.56-2.28-.36-.48-.72-1.08-1.08-1.56l-1.8-2.52c-.36-.48-.6-.84-1-1.32-1-1.32-1.8-2.52-2.76-3.72a248.8 248.8 0 0 0 -23.51-26.64A186.8 186.8 0 0 0 412 62.46c-4-3.48-8.16-6.72-12.48-9.84a162.5 162.5 0 0 0 -24.6-15.12c-2.4-1.32-4.8-2.52-7.2-3.72a254 254 0 0 0 -55.43-19.56c-1.92-.36-3.84-.84-5.64-1.2h-.12c-1-.12-1.8-.36-2.76-.48a236.4 236.4 0 0 0 -38-4H255.1a234.6 234.6 0 0 0 -45.48 5c-33.59 7.08-63.23 21.24-82.91 39-1.08 1-1.92 1.68-2.4 2.16l-.48 .48H124l-.12 .12 .12-.12a.12 .12 0 0 0 .12-.12l-.12 .12a.42 .42 0 0 1 .24-.12c14.64-8.76 34.92-16 49.44-19.56l5.88-1.44c.36-.12 .84-.12 1.2-.24 1.68-.36 3.36-.72 5.16-1.08 .24 0 .6-.12 .84-.12C250.9 20.94 319.3 40.14 367 85.61a171.5 171.5 0 0 1 26.88 32.76c30.36 49.2 27.48 111.1 3.84 147.6-34.44 53-111.3 71.27-159 24.84a84.19 84.19 0 0 1 -25.56-59 74.05 74.05 0 0 1 6.24-31c1.68-3.84 13.08-25.67 18.24-24.59-13.08-2.76-37.55 2.64-54.71 28.19-15.36 22.92-14.52 58.2-5 83.28a132.9 132.9 0 0 1 -12.12-39.24c-12.24-82.55 43.31-153 94.31-170.5-27.48-24-96.47-22.31-147.7 15.36-29.88 22-51.23 53.16-62.51 90.36 1.68-20.88 9.6-52.08 25.8-83.88-17.16 8.88-39 37-49.8 62.88-15.6 37.43-21 82.19-16.08 124.8 .36 3.24 .72 6.36 1.08 9.6 19.92 117.1 122 206.4 244.8 206.4C392.8 503.4 504 392.2 504 255 503.9 250.5 503.8 245.9 503.5 241.5z" - } - }, - "free": [ - "brands" - ] - }, - "firefox-browser": { - "changes": [ - "5.12.0", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e007", - "label": "Firefox Browser", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M130.2 127.5C130.4 127.6 130.3 127.6 130.2 127.5V127.5zM481.6 172.9C471 147.4 449.6 119.9 432.7 111.2C446.4 138.1 454.4 165 457.4 185.2C457.4 185.3 457.4 185.4 457.5 185.6C429.9 116.8 383.1 89.11 344.9 28.75C329.9 5.058 333.1 3.518 331.8 4.088L331.7 4.158C284.1 30.11 256.4 82.53 249.1 126.9C232.5 127.8 216.2 131.9 201.2 139C199.8 139.6 198.7 140.7 198.1 142C197.4 143.4 197.2 144.9 197.5 146.3C197.7 147.2 198.1 147.1 198.6 148.6C199.1 149.3 199.8 149.9 200.5 150.3C201.3 150.7 202.1 150.1 202.1 151.1C203.8 151.1 204.7 151 205.5 150.8L206 150.6C221.5 143.3 238.4 139.4 255.5 139.2C318.4 138.7 352.7 183.3 363.2 201.5C350.2 192.4 326.8 183.3 304.3 187.2C392.1 231.1 368.5 381.8 246.1 376.4C187.5 373.8 149.9 325.5 146.4 285.6C146.4 285.6 157.7 243.7 227 243.7C234.5 243.7 255.1 222.8 256.4 216.7C256.3 214.7 213.8 197.8 197.3 181.5C188.4 172.8 184.2 168.6 180.5 165.5C178.5 163.8 176.4 162.2 174.2 160.7C168.6 141.2 168.4 120.6 173.5 101.1C148.4 112.5 128.1 130.5 114.8 146.4H114.7C105 134.2 105.7 93.78 106.3 85.35C106.1 84.82 99.02 89.02 98.1 89.66C89.53 95.71 81.55 102.6 74.26 110.1C57.97 126.7 30.13 160.2 18.76 211.3C14.22 231.7 12 255.7 12 263.6C12 398.3 121.2 507.5 255.9 507.5C376.6 507.5 478.9 420.3 496.4 304.9C507.9 228.2 481.6 173.8 481.6 172.9z" - } - }, - "free": [ - "brands" - ] - }, - "first-order": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2b0", - "label": "First Order", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M12.9 229.2c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4h-.2zM224 96.6c-7.1 0-14.6 .6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3l61.1-29.7L97.7 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9L274.9 332l44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9L241.7 166l4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.4 128v256L224 512 4.6 384V128L224 0l219.4 128zm-17.1 10.3L224 20.9 21.7 138.3v235.1L224 491.1l202.3-117.7V138.3zM224 37.1l187.7 109.4v218.9L224 474.9 36.3 365.4V146.6L224 37.1zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z" - } - }, - "free": [ - "brands" - ] - }, - "first-order-alt": { - "changes": [ - "5.0.12" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f50a", - "label": "Alternate First Order", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572479, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S384.1 8 248 8zm0 488.2C115.3 496.2 7.79 388.7 7.79 256S115.3 15.79 248 15.79 488.2 123.3 488.2 256 380.7 496.2 248 496.2zm0-459.9C126.7 36.29 28.29 134.7 28.29 256S126.7 475.7 248 475.7 467.7 377.3 467.7 256 369.3 36.29 248 36.29zm0 431.2c-116.8 0-211.5-94.69-211.5-211.5S131.2 44.49 248 44.49 459.5 139.2 459.5 256 364.8 467.5 248 467.5zm186.2-162.1a191.6 191.6 0 0 1 -20.13 48.69l-74.13-35.88 61.48 54.82a193.5 193.5 0 0 1 -37.2 37.29l-54.8-61.57 35.88 74.27a190.9 190.9 0 0 1 -48.63 20.23l-27.29-78.47 4.79 82.93c-8.61 1.18-17.4 1.8-26.33 1.8s-17.72-.62-26.33-1.8l4.76-82.46-27.15 78.03a191.4 191.4 0 0 1 -48.65-20.2l35.93-74.34-54.87 61.64a193.9 193.9 0 0 1 -37.22-37.28l61.59-54.9-74.26 35.93a191.6 191.6 0 0 1 -20.14-48.69l77.84-27.11-82.23 4.76c-1.16-8.57-1.78-17.32-1.78-26.21 0-9 .63-17.84 1.82-26.51l82.38 4.77-77.94-27.16a191.7 191.7 0 0 1 20.23-48.67l74.22 35.92-61.52-54.86a193.9 193.9 0 0 1 37.28-37.22l54.76 61.53-35.83-74.17a191.5 191.5 0 0 1 48.65-20.13l26.87 77.25-4.71-81.61c8.61-1.18 17.39-1.8 26.32-1.8s17.71 .62 26.32 1.8l-4.74 82.16 27.05-77.76c17.27 4.5 33.6 11.35 48.63 20.17l-35.82 74.12 54.72-61.47a193.1 193.1 0 0 1 37.24 37.23l-61.45 54.77 74.12-35.86a191.5 191.5 0 0 1 20.2 48.65l-77.81 27.1 82.24-4.75c1.19 8.66 1.82 17.5 1.82 26.49 0 8.88-.61 17.63-1.78 26.19l-82.12-4.75 77.72 27.09z" - } - }, - "free": [ - "brands" - ] - }, - "firstdraft": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a1", - "label": "firstdraft", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 192h-64v128H192v128H0v-25.6h166.4v-128h128v-128H384V192zm-25.6 38.4v128h-128v128H64V512h192V384h128V230.4h-25.6zm25.6 192h-89.6V512H320v-64h64v-25.6zM0 0v384h128V256h128V128h128V0H0z" - } - }, - "free": [ - "brands" - ] - }, - "fish": { - "changes": [ - "5.1.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f578", - "aliases": { - "unicodes": { - "composite": [ - "1f41f" - ], - "secondary": [ - "10f578" - ] - } - }, - "label": "Fish", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573243, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M180.5 141.5C219.7 108.5 272.6 80 336 80C399.4 80 452.3 108.5 491.5 141.5C530.5 174.5 558.3 213.1 572.4 241.3C577.2 250.5 577.2 261.5 572.4 270.7C558.3 298 530.5 337.5 491.5 370.5C452.3 403.5 399.4 432 336 432C272.6 432 219.7 403.5 180.5 370.5C164.3 356.7 150 341.9 137.8 327.3L48.12 379.6C35.61 386.9 19.76 384.9 9.474 374.7C-.8133 364.5-2.97 348.7 4.216 336.1L50 256L4.216 175.9C-2.97 163.3-.8133 147.5 9.474 137.3C19.76 127.1 35.61 125.1 48.12 132.4L137.8 184.7C150 170.1 164.3 155.3 180.5 141.5L180.5 141.5zM416 224C398.3 224 384 238.3 384 256C384 273.7 398.3 288 416 288C433.7 288 448 273.7 448 256C448 238.3 433.7 224 416 224z" - } - }, - "free": [ - "solid" - ] - }, - "fish-fins": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f2", - "label": "Fish Fins", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573242, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M352.8 96.61C407.7 100.6 454.3 123.6 490 150.4C529.2 179.8 557.3 215.1 571.7 239.9C577.4 249.9 577.4 262.1 571.7 272.1C557.3 296.9 529.2 332.2 490 361.6C454.3 388.4 407.7 411.4 352.8 415.4L275.2 473.6C264.6 481.6 250.2 482.1 238.9 475.1C227.7 468 222 454.7 224.6 441.7L234.3 393.1C214.1 384.1 197.5 373.2 181.1 361.6C166.6 350.1 152.1 337.7 141.2 325.3L48.12 379.6C35.61 386.9 19.76 384.9 9.475 374.7C-.8124 364.5-2.969 348.7 4.217 336.1L50 256L4.217 175.9C-2.969 163.3-.8124 147.5 9.475 137.3C19.76 127.1 35.61 125.1 48.12 132.4L141.2 186.7C152.1 174.3 166.6 161.9 181.1 150.4C197.5 138.8 214.1 127.9 234.3 118.9L224.6 70.28C222 57.27 227.7 44 238.9 36.93C250.2 29.85 264.6 30.44 275.2 38.4L352.8 96.61zM416 224C398.3 224 384 238.3 384 256C384 273.7 398.3 288 416 288C433.7 288 448 273.7 448 256C448 238.3 433.7 224 416 224z" - } - }, - "free": [ - "solid" - ] - }, - "flag": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f024", - "aliases": { - "unicodes": { - "composite": [ - "f11d", - "1f3f4" - ], - "secondary": [ - "10f024" - ] - } - }, - "label": "flag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573243, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 496C64 504.8 56.75 512 48 512h-32C7.25 512 0 504.8 0 496V32c0-17.75 14.25-32 32-32s32 14.25 32 32V496zM476.3 0c-6.365 0-13.01 1.35-19.34 4.233c-45.69 20.86-79.56 27.94-107.8 27.94c-59.96 0-94.81-31.86-163.9-31.87C160.9 .3055 131.6 4.867 96 15.75v350.5c32-9.984 59.87-14.1 84.85-14.1c73.63 0 124.9 31.78 198.6 31.78c31.91 0 68.02-5.971 111.1-23.09C504.1 355.9 512 344.4 512 332.1V30.73C512 11.1 495.3 0 476.3 0z" - }, - "regular": { - "last_modified": 1658443573046, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M476.3 0c-6.365 0-13.01 1.35-19.34 4.233c-45.69 20.86-79.56 27.94-107.8 27.94c-59.96 0-94.81-31.86-163.9-31.87c-34.63 0-77.87 8.003-137.2 32.05V24C48 10.75 37.25 0 24 0S0 10.75 0 24v464C0 501.3 10.75 512 24 512s24-10.75 24-24v-104c53.59-23.86 96.02-31.81 132.8-31.81c73.63 0 124.9 31.78 198.6 31.78c31.91 0 68.02-5.971 111.1-23.09C504.1 355.9 512 344.4 512 332.1V30.73C512 11.1 495.3 0 476.3 0zM464 319.8c-30.31 10.82-58.08 16.1-84.6 16.1c-30.8 0-58.31-7-87.44-14.41c-32.01-8.141-68.29-17.37-111.1-17.37c-42.35 0-85.99 9.09-132.8 27.73V84.14l18.03-7.301c47.39-19.2 86.38-28.54 119.2-28.54c28.24 .0039 49.12 6.711 73.31 14.48c25.38 8.148 54.13 17.39 90.58 17.39c35.43 0 72.24-8.496 114.9-26.61V319.8z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "flag-checkered": { - "changes": [ - "3.1.0", - "5.0.0", - "5.7.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f11e", - "aliases": { - "unicodes": { - "composite": [ - "1f3c1" - ], - "secondary": [ - "10f11e" - ] - } - }, - "label": "flag-checkered", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573243, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M509.5 .0234c-6.145 0-12.53 1.344-18.64 4.227c-44.11 20.86-76.81 27.94-104.1 27.94c-57.89 0-91.53-31.86-158.2-31.87C195 .3203 153.3 8.324 96 32.38V32c0-17.75-14.25-32-32-32S32 14.25 32 32L31.96 496c0 8.75 7.25 16 16 16H80C88.75 512 96 504.8 96 496V384c51.74-23.86 92.71-31.82 128.3-31.82c71.09 0 120.6 31.78 191.7 31.78c30.81 0 65.67-5.969 108.1-23.09C536.3 355.9 544 344.4 544 332.1V30.74C544 12.01 527.8 .0234 509.5 .0234zM480 141.8c-31.99 14.04-57.81 20.59-80 22.49v80.21c25.44-1.477 51.59-6.953 80-17.34V308.9c-22.83 7.441-43.93 11.08-64.03 11.08c-5.447 0-10.71-.4258-15.97-.8906V244.5c-4.436 .2578-8.893 .6523-13.29 .6523c-25.82 0-47.35-4.547-66.71-10.08v66.91c-23.81-6.055-50.17-11.41-80-12.98V213.1C236.2 213.7 232.5 213.3 228.5 213.3C208.8 213.3 185.1 217.7 160 225.1v69.1C139.2 299.4 117.9 305.8 96 314.4V250.7l24.77-10.39C134.8 234.5 147.6 229.9 160 225.1V143.4C140.9 148.5 120.1 155.2 96 165.3V101.8l24.77-10.39C134.8 85.52 147.6 80.97 160 77.02v66.41c26.39-6.953 49.09-10.17 68.48-10.16c4.072 0 7.676 .4453 11.52 .668V65.03C258.6 66.6 274.4 71.55 293.2 77.83C301.7 80.63 310.7 83.45 320 86.12v66.07c20.79 6.84 41.45 12.96 66.71 12.96c4.207 0 8.781-.4766 13.29-.8594V95.54c25.44-1.477 51.59-6.953 80-17.34V141.8zM240 133.9v80.04c18.61 1.57 34.37 6.523 53.23 12.8C301.7 229.6 310.7 232.4 320 235.1V152.2C296.1 144.3 271.6 135.8 240 133.9z" - } - }, - "free": [ - "solid" - ] - }, - "flag-usa": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f74d", - "aliases": { - "unicodes": { - "secondary": [ - "10f74d" - ] - } - }, - "label": "United States of America Flag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573243, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 61.63V30.74c0-25-28.81-37.99-53.17-26.49C306.3 91.5 321.5-62.25 96 32.38V32c0-17.75-14.25-32-32-32S32 14.25 32 32L31.96 496c0 8.75 7.25 16 15.1 16H80C88.75 512 96 504.8 96 496V384c200-92.25 238.8 53.25 428.1-23.12C536.3 355.9 544 344.4 544 332.1V296.1c-46.98 17.25-86.42 24.12-120.8 24.12c-40.25-.125-74.17-8.5-107.7-16.62C254 288.5 195.3 274.8 96 314.8v-34.5c102-37.63 166.5-22.75 228.4-7.625C385.1 287.8 444.7 301.4 544 261.5V200c-46.98 17.25-86.42 24.12-120.8 24.12c-40.25 0-74.17-8.375-107.7-16.5C254 192.5 195.3 178.8 96 218.8v-34.5c102-37.5 166.5-22.62 228.4-7.5C385.1 191.8 444.7 205.4 544 165.6V96.75c-57.75 23.5-100.4 31.38-135.8 31.38c-62.96 0-118.9-27.09-120.2-27.38V67.5C331.9 78.94 390.1 128.3 544 61.63zM160 136c-8.75 0-16-7.125-16-16s7.25-16 16-16s16 7.125 16 16S168.8 136 160 136zM160 72c-8.75 0-16-7-16-16c0-8.75 7.25-16 16-16s16 7.125 16 16S168.8 72 160 72zM224 128C215.3 128 208 120.9 208 112S215.3 96 224 96s16 7 16 16C240 120.8 232.8 128 224 128zM224 64.25c-8.75 0-16-7-16-16c0-8.75 7.25-16 16-16s16 7.125 16 16S232.8 64.25 224 64.25z" - } - }, - "free": [ - "solid" - ] - }, - "flask": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0c3", - "aliases": { - "unicodes": { - "secondary": [ - "10f0c3" - ] - } - }, - "label": "Flask", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573243, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M437.2 403.5L319.1 215L319.1 64h7.1c13.25 0 23.1-10.75 23.1-24l-.0002-16c0-13.25-10.75-24-23.1-24H120C106.8 0 96.01 10.75 96.01 24l-.0002 16c0 13.25 10.75 24 23.1 24h7.1L128 215l-117.2 188.5C-18.48 450.6 15.27 512 70.89 512h306.2C432.7 512 466.5 450.5 437.2 403.5zM137.1 320l48.15-77.63C189.8 237.3 191.9 230.8 191.9 224l.0651-160h63.99l-.06 160c0 6.875 2.25 13.25 5.875 18.38L309.9 320H137.1z" - } - }, - "free": [ - "solid" - ] - }, - "flask-vial": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f3", - "label": "Flask and Vial", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573243, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M160 442.5C149.1 446.1 139.2 448 128 448C74.98 448 32 405 32 352V64C14.33 64 0 49.67 0 32C0 14.33 14.33 0 32 0H224C241.7 0 256 14.33 256 32C256 49.67 241.7 64 224 64V309.9L175 389.4C165.2 405.4 160 423.8 160 442.5zM96 160H160V64H96V160zM512 0C529.7 0 544 14.33 544 32C544 49.67 529.7 64 512 64V214.9L629.7 406.2C636.4 417.2 640 429.7 640 442.6C640 480.9 608.9 512 570.6 512H261.4C223.1 512 191.1 480.9 191.1 442.6C191.1 429.7 195.6 417.2 202.3 406.2L319.1 214.9V64C302.3 64 287.1 49.67 287.1 32C287.1 14.33 302.3 0 319.1 0L512 0zM384 64V224C384 229.9 382.4 235.7 379.3 240.8L330.5 320H501.5L452.7 240.8C449.6 235.7 448 229.9 448 224V64H384z" - } - }, - "free": [ - "solid" - ] - }, - "flickr": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f16e", - "label": "Flickr", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM144.5 319c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5zm159 0c-35.1 0-63.5-28.4-63.5-63.5s28.4-63.5 63.5-63.5 63.5 28.4 63.5 63.5-28.4 63.5-63.5 63.5z" - } - }, - "free": [ - "brands" - ] - }, - "flipboard": { - "changes": [ - "5.0.5", - "5.0.9" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f44d", - "label": "Flipboard", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32v448h448V32H0zm358.4 179.2h-89.6v89.6h-89.6v89.6H89.6V121.6h268.8v89.6z" - } - }, - "free": [ - "brands" - ] - }, - "floppy-disk": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0c7", - "aliases": { - "names": [ - "save" - ], - "unicodes": { - "composite": [ - "1f5aa", - "1f4be" - ], - "secondary": [ - "10f0c7" - ] - } - }, - "label": "Floppy Disk", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573243, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M433.1 129.1l-83.9-83.9C342.3 38.32 327.1 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 152.9 441.7 137.7 433.1 129.1zM224 416c-35.34 0-64-28.66-64-64s28.66-64 64-64s64 28.66 64 64S259.3 416 224 416zM320 208C320 216.8 312.8 224 304 224h-224C71.16 224 64 216.8 64 208v-96C64 103.2 71.16 96 80 96h224C312.8 96 320 103.2 320 112V208z" - }, - "regular": { - "last_modified": 1658443573047, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 256c-35.2 0-64 28.8-64 64c0 35.2 28.8 64 64 64c35.2 0 64-28.8 64-64C288 284.8 259.2 256 224 256zM433.1 129.1l-83.9-83.9C341.1 37.06 328.8 32 316.1 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V163.9C448 151.2 442.9 138.9 433.1 129.1zM128 80h144V160H128V80zM400 416c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V96c0-8.838 7.164-16 16-16h16v104c0 13.25 10.75 24 24 24h192C309.3 208 320 197.3 320 184V83.88l78.25 78.25C399.4 163.2 400 164.8 400 166.3V416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "florin-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e184", - "label": "Florin Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573244, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 32C369.7 32 384 46.33 384 64C384 81.67 369.7 96 352 96H314.7C301.7 96 290.1 103.8 285.1 115.7L240 224H320C337.7 224 352 238.3 352 256C352 273.7 337.7 288 320 288H213.3L157.9 420.9C143 456.7 108.1 480 69.33 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H69.33C82.25 416 93.9 408.2 98.87 396.3L144 288H64C46.33 288 32 273.7 32 256C32 238.3 46.33 224 64 224H170.7L226.1 91.08C240.1 55.3 275.9 32 314.7 32H352z" - } - }, - "free": [ - "solid" - ] - }, - "fly": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f417", - "label": "Fly", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M197.8 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9 .3 6.7 2.8zM331.9 67.3c-16.3-25.7-38.6-40.6-63.3-52.1C243.1 4.5 214-.2 192 0c-44.1 0-71.2 13.2-81.1 17.3C57.3 45.2 26.5 87.2 28 158.6c7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3 .1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM186.8 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7v325.7zM328.7 180c-16.4 56.8-77.3 128-118.9 170.3C237.6 298.4 275 217 277 158.4c1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z" - } - }, - "free": [ - "brands" - ] - }, - "folder": { - "changes": [ - "1.0.0", - "5.0.0", - "5.3.0", - "5.10.1", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f07b", - "aliases": { - "names": [ - "folder-blank" - ], - "unicodes": { - "composite": [ - "1f5bf", - "f114", - "1f4c1" - ], - "secondary": [ - "10f07b" - ] - } - }, - "label": "Folder", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 144v288c0 26.5-21.5 48-48 48h-416C21.5 480 0 458.5 0 432v-352C0 53.5 21.5 32 48 32h160l64 64h192C490.5 96 512 117.5 512 144z" - }, - "regular": { - "last_modified": 1658443573048, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M447.1 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H63.1c-35.35 0-64 28.66-64 64v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C511.1 124.7 483.3 96 447.1 96zM463.1 416c0 8.824-7.178 16-16 16h-384c-8.822 0-16-7.176-16-16V96c0-8.824 7.178-16 16-16h117.5c4.273 0 8.293 1.664 11.31 4.688L255.1 144h192c8.822 0 16 7.176 16 16V416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "folder-closed": { - "changes": [ - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "e185", - "label": "Folder Closed", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573244, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 96h-192l-64-64h-160C21.5 32 0 53.5 0 80V160h512V144C512 117.5 490.5 96 464 96zM0 432C0 458.5 21.5 480 48 480h416c26.5 0 48-21.5 48-48V192H0V432z" - }, - "regular": { - "last_modified": 1658443573048, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 96h-172.1L226.7 50.75C214.7 38.74 198.5 32 181.5 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h384c35.35 0 64-28.66 64-64V160C512 124.7 483.3 96 448 96zM64 80h117.5c4.273 0 8.293 1.664 11.31 4.688L256 144h192c8.822 0 16 7.176 16 16v32h-416V96C48 87.18 55.18 80 64 80zM448 432H64c-8.822 0-16-7.176-16-16V240h416V416C464 424.8 456.8 432 448 432z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "folder-minus": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f65d", - "aliases": { - "unicodes": { - "secondary": [ - "10f65d" - ] - } - }, - "label": "Folder Minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573244, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 96h-192l-64-64h-160C21.5 32 0 53.5 0 80v352C0 458.5 21.5 480 48 480h416c26.5 0 48-21.5 48-48v-288C512 117.5 490.5 96 464 96zM336 311.1H175.1C162.7 311.1 152 301.3 152 288c0-13.26 10.74-23.1 23.1-23.1h160C349.3 264 360 274.7 360 288S349.3 311.1 336 311.1z" - } - }, - "free": [ - "solid" - ] - }, - "folder-open": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f07c", - "aliases": { - "unicodes": { - "composite": [ - "1f5c1", - "f115", - "1f4c2" - ], - "secondary": [ - "10f07c" - ] - } - }, - "label": "Folder Open", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M147.8 192H480V144C480 117.5 458.5 96 432 96h-160l-64-64h-160C21.49 32 0 53.49 0 80v328.4l90.54-181.1C101.4 205.6 123.4 192 147.8 192zM543.1 224H147.8C135.7 224 124.6 230.8 119.2 241.7L0 480h447.1c12.12 0 23.2-6.852 28.62-17.69l96-192C583.2 249 567.7 224 543.1 224z" - }, - "regular": { - "last_modified": 1658443573048, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M572.6 270.3l-96 192C471.2 473.2 460.1 480 447.1 480H64c-35.35 0-64-28.66-64-64V96c0-35.34 28.65-64 64-64h117.5c16.97 0 33.25 6.742 45.26 18.75L275.9 96H416c35.35 0 64 28.66 64 64v32h-48V160c0-8.824-7.178-16-16-16H256L192.8 84.69C189.8 81.66 185.8 80 181.5 80H64C55.18 80 48 87.18 48 96v288l71.16-142.3C124.6 230.8 135.7 224 147.8 224h396.2C567.7 224 583.2 249 572.6 270.3z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "folder-plus": { - "changes": [ - "5.3.0", - "5.11.0", - "5.12.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f65e", - "aliases": { - "unicodes": { - "secondary": [ - "10f65e" - ] - } - }, - "label": "Folder Plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 96h-192l-64-64h-160C21.5 32 0 53.5 0 80v352C0 458.5 21.5 480 48 480h416c26.5 0 48-21.5 48-48v-288C512 117.5 490.5 96 464 96zM336 311.1h-56v56C279.1 381.3 269.3 392 256 392c-13.27 0-23.1-10.74-23.1-23.1V311.1H175.1C162.7 311.1 152 301.3 152 288c0-13.26 10.74-23.1 23.1-23.1h56V207.1C232 194.7 242.7 184 256 184s23.1 10.74 23.1 23.1V264h56C349.3 264 360 274.7 360 288S349.3 311.1 336 311.1z" - } - }, - "free": [ - "solid" - ] - }, - "folder-tree": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f802", - "aliases": { - "unicodes": { - "secondary": [ - "10f802" - ] - } - }, - "label": "Folder Tree", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 32h-112l-32-32H320c-17.62 0-32 14.38-32 32v160c0 17.62 14.38 32 32 32h224c17.62 0 32-14.38 32-32V64C576 46.38 561.6 32 544 32zM544 320h-112l-32-32H320c-17.62 0-32 14.38-32 32v160c0 17.62 14.38 32 32 32h224c17.62 0 32-14.38 32-32v-128C576 334.4 561.6 320 544 320zM64 16C64 7.125 56.88 0 48 0h-32C7.125 0 0 7.125 0 16V416c0 17.62 14.38 32 32 32h224v-64H64V160h192V96H64V16z" - } - }, - "free": [ - "solid" - ] - }, - "font": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f031", - "aliases": { - "unicodes": { - "secondary": [ - "10f031" - ] - } - }, - "label": "font", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 416h-25.81L253.1 52.76c-4.688-12.47-16.57-20.76-29.91-20.76s-25.34 8.289-30.02 20.76L57.81 416H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h96c17.67 0 32-14.31 32-32s-14.33-32-32-32H126.2l17.1-48h159.6l17.1 48H320c-17.67 0-32 14.31-32 32s14.33 32 32 32h96c17.67 0 32-14.31 32-32S433.7 416 416 416zM168.2 304L224 155.1l55.82 148.9H168.2z" - } - }, - "free": [ - "solid" - ] - }, - "font-awesome": { - "changes": [ - "4.6.0", - "5.0.0", - "5.15.4", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [ - "Font Awesome" - ], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular", - "brands" - ], - "unicode": "f2b4", - "aliases": { - "names": [ - "font-awesome-flag", - "font-awesome-logo-full" - ], - "unicodes": { - "composite": [ - "f4e6", - "f425" - ], - "primary": [ - "f4e6" - ], - "secondary": [ - "10f4e6", - "10f2b4" - ] - } - }, - "label": "Font Awesome", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 48V384c-63.09 22.54-82.34 32-119.5 32c-62.82 0-86.6-32-149.3-32C158.6 384 142.6 387.6 128 392.2v-64C142.6 323.6 158.6 320 179.2 320c62.73 0 86.51 32 149.3 32C348.9 352 364.1 349 384 342.7v-208C364.1 141 348.9 144 328.5 144c-62.82 0-86.6-32-149.3-32C128.4 112 104.3 132.6 64 140.7v307.3C64 465.7 49.67 480 32 480S0 465.7 0 448V63.1C0 46.33 14.33 32 31.1 32S64 46.33 64 63.1V76.66C104.3 68.63 128.4 48 179.2 48c62.73 0 86.51 32 149.3 32C365.7 80 384.9 70.54 448 48z" - }, - "regular": { - "last_modified": 1658443573049, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 48V384c-63.09 22.54-82.34 32-119.5 32c-62.82 0-86.6-32-149.3-32c-21.69 0-38.48 3.791-53.74 8.766C110.1 397.5 96 386.1 96 371.7v-.7461c0-9.275 5.734-17.6 14.42-20.86C129.1 342.8 150.2 336 179.2 336c62.73 0 86.51 32 149.3 32c25.5 0 42.85-4.604 71.47-14.7v-240C379.2 120.6 357.7 128 328.5 128c-.0039 0 .0039 0 0 0c-62.81 0-86.61-32-149.3-32C122.1 96 98.8 122.1 48 126.1V456C48 469.3 37.25 480 24 480S0 469.3 0 456V56C0 42.74 10.75 32 24 32S48 42.74 48 56v22.99C98.8 74.14 122.1 48 179.2 48c62.77 0 86.45 32 149.3 32C366.1 80 386.8 69.85 448 48z" - }, - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 48V384C385 407 366 416 329 416C266 416 242 384 179 384C159 384 143 388 128 392V328C143 324 159 320 179 320C242 320 266 352 329 352C349 352 364 349 384 343V135C364 141 349 144 329 144C266 144 242 112 179 112C128 112 104 133 64 141V448C64 466 50 480 32 480S0 466 0 448V64C0 46 14 32 32 32S64 46 64 64V77C104 69 128 48 179 48C242 48 266 80 329 80C366 80 385 71 448 48z" - } - }, - "free": [ - "brands", - "solid", - "regular" - ] - }, - "fonticons": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f280", - "label": "Fonticons", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32v448h448V32zm187 140.9c-18.4 0-19 9.9-19 27.4v23.3c0 2.4-3.5 4.4-.6 4.4h67.4l-11.1 37.3H168v112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1v25.1H84V389l21.3-2c5.2-.6 6.7-2.3 6.7-7.9V267.7c0-2.3-2.9-2.3-5.8-2.3H84V228h28v-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8v-25.1l20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3V271.8c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5h80.2v151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6v25.1zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6h27.7l15.5-28h9.3l15.5 28h27.7l3.5 9.6z" - } - }, - "free": [ - "brands" - ] - }, - "fonticons-fi": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a2", - "label": "Fonticons Fi", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M114.4 224h92.4l-15.2 51.2h-76.4V433c0 8-2.8 9.2 4.4 10l59.6 5.6V483H0v-35.2l29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8V278.4c0-3.2-4-3.2-8-3.2H0V224h38.4v-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4l-69.6 8.4c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6v32c0 3.2-4.8 6-.8 6zM384 483H243.2v-34.4l28-3.6c7.2-.8 10.4-2.4 10.4-10V287c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4h110v208c0 8-3.6 8.8 4 10l21.6 3.6V483zm-30-347.2l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10h38L307.2 51H320l21.2 38.4h38l4.8 13.2-30 33.2z" - } - }, - "free": [ - "brands" - ] - }, - "football": { - "changes": [ - "5.0.5", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f44e", - "aliases": { - "names": [ - "football-ball" - ], - "unicodes": { - "composite": [ - "1f3c8" - ], - "secondary": [ - "10f44e" - ] - } - }, - "label": "Football Ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M16.17 337.5c0 44.98 7.565 83.54 13.98 107.9C35.22 464.3 50.46 496 174.9 496c9.566 0 19.59-.4707 29.84-1.271L17.33 307.3C16.53 317.6 16.17 327.7 16.17 337.5zM495.8 174.5c0-44.98-7.565-83.53-13.98-107.9c-4.688-17.54-18.34-31.23-36.04-35.95C435.5 27.91 392.9 16 337 16c-9.564 0-19.59 .4707-29.84 1.271l187.5 187.5C495.5 194.4 495.8 184.3 495.8 174.5zM26.77 248.8l236.3 236.3c142-36.1 203.9-150.4 222.2-221.1L248.9 26.87C106.9 62.96 45.07 177.2 26.77 248.8zM256 335.1c0 9.141-7.474 16-16 16c-4.094 0-8.188-1.564-11.31-4.689L164.7 283.3C161.6 280.2 160 276.1 160 271.1c0-8.529 6.865-16 16-16c4.095 0 8.189 1.562 11.31 4.688l64.01 64C254.4 327.8 256 331.9 256 335.1zM304 287.1c0 9.141-7.474 16-16 16c-4.094 0-8.188-1.564-11.31-4.689L212.7 235.3C209.6 232.2 208 228.1 208 223.1c0-9.141 7.473-16 16-16c4.094 0 8.188 1.562 11.31 4.688l64.01 64.01C302.5 279.8 304 283.9 304 287.1zM256 175.1c0-9.141 7.473-16 16-16c4.094 0 8.188 1.562 11.31 4.688l64.01 64.01c3.125 3.125 4.688 7.219 4.688 11.31c0 9.133-7.468 16-16 16c-4.094 0-8.189-1.562-11.31-4.688l-64.01-64.01C257.6 184.2 256 180.1 256 175.1z" - } - }, - "free": [ - "solid" - ] - }, - "fort-awesome": { - "changes": [ - "4.5.0", - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f286", - "label": "Fort Awesome", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M489.2 287.9h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6V146.2c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32h-36.6v-32c0-6-8-4.6-11.7-4.6v-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8v-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9v-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3v111.7c-3.7 0-11.7-1.4-11.7 4.6v32h-36.6v-32c0-2.6-2-4.6-4.6-4.6h-27.4c-2.6 0-4.6 2-4.6 4.6v32H128v-32c0-2.6-2-4.6-4.6-4.6H96c-2.6 0-4.6 2-4.6 4.6v178.3H54.8v-32c0-2.6-2-4.6-4.6-4.6H22.8c-2.6 0-4.6 2-4.6 4.6V512h182.9v-96c0-72.6 109.7-72.6 109.7 0v96h182.9V292.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64zm146.4 0c0 2.6-2 4.6-4.6 4.6h-27.4c-2.6 0-4.6-2-4.6-4.6v-64c0-2.6 2-4.6 4.6-4.6h27.4c2.6 0 4.6 2 4.6 4.6v64z" - } - }, - "free": [ - "brands" - ] - }, - "fort-awesome-alt": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a3", - "label": "Alternate Fort Awesome", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M208 237.4h-22.2c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7H208c2.1 0 3.7-1.6 3.7-3.7v-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0H304c-2.1 0-3.7 1.6-3.7 3.7v51.7c0 2.1 1.6 3.7 3.7 3.7h22.2c2.1 0 3.7-1.6 3.7-3.7v-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5C372 34.1 340.3 20 306 13c-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5C25.2 153 8.3 202.5 8.3 256c0 2 .1 4 .1 6 .1 .7 .1 1.3 .1 2 .1 1.3 .1 2.7 .2 4 0 .8 .1 1.5 .1 2.3 0 1.3 .1 2.5 .2 3.7 .1 .8 .1 1.6 .2 2.4 .1 1.1 .2 2.3 .3 3.5 0 .8 .1 1.6 .2 2.4 .1 1.2 .3 2.4 .4 3.6 .1 .8 .2 1.5 .3 2.3 .1 1.3 .3 2.6 .5 3.9 .1 .6 .2 1.3 .3 1.9l.9 5.7c.1 .6 .2 1.1 .3 1.7 .3 1.3 .5 2.7 .8 4 .2 .8 .3 1.6 .5 2.4 .2 1 .5 2.1 .7 3.2 .2 .9 .4 1.7 .6 2.6 .2 1 .4 2 .7 3 .2 .9 .5 1.8 .7 2.7 .3 1 .5 1.9 .8 2.9 .3 .9 .5 1.8 .8 2.7 .2 .9 .5 1.9 .8 2.8s.5 1.8 .8 2.7c.3 1 .6 1.9 .9 2.8 .6 1.6 1.1 3.3 1.7 4.9 .4 1 .7 1.9 1 2.8 .3 1 .7 2 1.1 3 .3 .8 .6 1.5 .9 2.3l1.2 3c.3 .7 .6 1.5 .9 2.2 .4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3 .7 .6 1.3 .9 2 .5 1 1 2.1 1.5 3.1 .2 .6 .5 1.1 .8 1.7 .6 1.1 1.1 2.2 1.7 3.3 .1 .2 .2 .3 .3 .5 2.2 4.1 4.4 8.2 6.8 12.2 .2 .4 .5 .8 .7 1.2 .7 1.1 1.3 2.2 2 3.3 .3 .5 .6 .9 .9 1.4 .6 1.1 1.3 2.1 2 3.2 .3 .5 .6 .9 .9 1.4 .7 1.1 1.4 2.1 2.1 3.2 .2 .4 .5 .8 .8 1.2 .7 1.1 1.5 2.2 2.3 3.3 .2 .2 .3 .5 .5 .7 37.5 51.7 94.4 88.5 160 99.4 .9 .1 1.7 .3 2.6 .4 1 .2 2.1 .4 3.1 .5s1.9 .3 2.8 .4c1 .2 2 .3 3 .4 .9 .1 1.9 .2 2.9 .3s1.9 .2 2.9 .3 2.1 .2 3.1 .3c.9 .1 1.8 .1 2.7 .2 1.1 .1 2.3 .1 3.4 .2 .8 0 1.7 .1 2.5 .1 1.3 0 2.6 .1 3.9 .1 .7 .1 1.4 .1 2.1 .1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1 .8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2 .9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5 .9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4 .2-.2 .3-.5 .5-.7 .8-1.1 1.5-2.2 2.3-3.3 .2-.4 .5-.8 .8-1.2 .7-1.1 1.4-2.1 2.1-3.2 .3-.5 .6-.9 .9-1.4 .6-1.1 1.3-2.1 2-3.2 .3-.5 .6-.9 .9-1.4 .7-1.1 1.3-2.2 2-3.3 .2-.4 .5-.8 .7-1.2 2.4-4 4.6-8.1 6.8-12.2 .1-.2 .2-.3 .3-.5 .6-1.1 1.1-2.2 1.7-3.3 .2-.6 .5-1.1 .8-1.7 .5-1 1-2.1 1.5-3.1 .3-.7 .6-1.3 .9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7 .6-1.5 .9-2.2l1.2-3c.3-.8 .6-1.5 .9-2.3 .4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9 .3-1 .6-1.9 .9-2.8s.5-1.8 .8-2.7c.2-.9 .5-1.9 .8-2.8s.6-1.8 .8-2.7c.3-1 .5-1.9 .8-2.9 .2-.9 .5-1.8 .7-2.7 .2-1 .5-2 .7-3 .2-.9 .4-1.7 .6-2.6 .2-1 .5-2.1 .7-3.2 .2-.8 .3-1.6 .5-2.4 .3-1.3 .6-2.7 .8-4 .1-.6 .2-1.1 .3-1.7l.9-5.7c.1-.6 .2-1.3 .3-1.9 .1-1.3 .3-2.6 .5-3.9 .1-.8 .2-1.5 .3-2.3 .1-1.2 .3-2.4 .4-3.6 0-.8 .1-1.6 .2-2.4 .1-1.1 .2-2.3 .3-3.5 .1-.8 .1-1.6 .2-2.4 .1 1.7 .1 .5 .2-.7 0-.8 .1-1.5 .1-2.3 .1-1.3 .2-2.7 .2-4 .1-.7 .1-1.3 .1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2v-75.8c0-58.6-88.6-58.6-88.6 0v75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9v-71.3c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7V326h29.6V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7H208c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-4.8 6.5-3.7 9.5-3.7V88.1c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5V92c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7v48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8v30.7c3 0 9.5-1.1 9.5 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7v25.9h29.5V182c0-2.1 1.6-3.7 3.7-3.7h22.1c2.1 0 3.7 1.6 3.7 3.7v144h29.5v-25.8c0-2.1 1.6-3.7 3.7-3.7h22.2c2.1 0 3.7 1.6 3.7 3.7z" - } - }, - "free": [ - "brands" - ] - }, - "forumbee": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f211", - "label": "Forumbee", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35c16.6 0 33.3 2 49.3 5.5C149 87.5 51.9 186 5.8 309.7zm392.9-189.2C385 103 369 87.8 350.9 75.2c-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8C290.5 216.7 182 327.5 137.1 466c18.1 7.6 37 12.5 56.6 15.2C240 367.1 330.5 274.4 444.2 227.7z" - } - }, - "free": [ - "brands" - ] - }, - "forward": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f04e", - "aliases": { - "unicodes": { - "composite": [ - "23e9" - ], - "secondary": [ - "10f04e" - ] - } - }, - "label": "forward", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573246, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M52.51 440.6l171.5-142.9V214.3L52.51 71.41C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6zM308.5 440.6l192-159.1c15.25-12.87 15.25-36.37 0-49.24l-192-159.1c-20.63-17.12-52.51-2.749-52.51 24.62v319.9C256 443.3 287.9 457.7 308.5 440.6z" - } - }, - "free": [ - "solid" - ] - }, - "forward-fast": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f050", - "aliases": { - "names": [ - "fast-forward" - ], - "unicodes": { - "composite": [ - "23ed" - ], - "secondary": [ - "10f050" - ] - } - }, - "label": "Forward fast", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573245, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 96.03v319.9c0 17.67-14.33 31.1-31.1 31.1C462.3 447.1 448 433.6 448 415.1V284.1l-171.5 156.5C255.9 457.7 224 443.3 224 415.1V284.1l-171.5 156.5C31.88 457.7 0 443.3 0 415.1V96.03c0-27.37 31.88-41.74 52.5-24.62L224 226.8V96.03c0-27.37 31.88-41.74 52.5-24.62L448 226.8V96.03c0-17.67 14.33-31.1 31.1-31.1C497.7 64.03 512 78.36 512 96.03z" - } - }, - "free": [ - "solid" - ] - }, - "forward-step": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f051", - "aliases": { - "names": [ - "step-forward" - ], - "unicodes": { - "secondary": [ - "10f051" - ] - } - }, - "label": "Forward step", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573246, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M287.1 447.1c17.67 0 31.1-14.33 31.1-32V96.03c0-17.67-14.33-32-32-32c-17.67 0-31.1 14.33-31.1 31.1v319.9C255.1 433.6 270.3 447.1 287.1 447.1zM52.51 440.6l192-159.1c7.625-6.436 11.43-15.53 11.43-24.62c0-9.094-3.809-18.18-11.43-24.62l-192-159.1C31.88 54.28 0 68.66 0 96.03v319.9C0 443.3 31.88 457.7 52.51 440.6z" - } - }, - "free": [ - "solid" - ] - }, - "foursquare": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f180", - "label": "Foursquare", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 368, - 512 - ], - "width": 368, - "height": 512, - "path": "M323.1 3H49.9C12.4 3 0 31.3 0 49.1v433.8c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1C180 356.5 182.2 354 182.2 354c3.1-3.4 3.4-3.1 6.8-3.1h83.4c35.1 0 40.6-25.2 44.3-39.7l48.6-243C373.8 25.8 363.1 3 323.1 3zm-16.3 73.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2H172.1c-12 0-20.6 8.3-20.6 20.3v13c0 12 8.6 20.6 20.6 20.6h90.4c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5h-73.5c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9 .9-1.8 .6-1.8-.3V75.9c0-7.7 6.8-16.6 16.6-16.6h219c8.2 0 15.6 7.7 13.5 17.5z" - } - }, - "free": [ - "brands" - ] - }, - "franc-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e18f", - "label": "Franc Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573246, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M288 32C305.7 32 320 46.33 320 64C320 81.67 305.7 96 288 96H112V192H256C273.7 192 288 206.3 288 224C288 241.7 273.7 256 256 256H112V320H192C209.7 320 224 334.3 224 352C224 369.7 209.7 384 192 384H112V448C112 465.7 97.67 480 80 480C62.33 480 48 465.7 48 448V384H32C14.33 384 0 369.7 0 352C0 334.3 14.33 320 32 320H48V64C48 46.33 62.33 32 80 32H288z" - } - }, - "free": [ - "solid" - ] - }, - "free-code-camp": { - "changes": [ - "4.7.0", - "5.0.0", - "5.12.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2c5", - "label": "freeCodeCamp", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M97.22 96.21c10.36-10.65 16-17.12 16-21.9 0-2.76-1.92-5.51-3.83-7.42A14.81 14.81 0 0 0 101 64.05c-8.48 0-20.92 8.79-35.84 25.69C23.68 137 2.51 182.8 3.37 250.3s17.47 117 54.06 161.9C76.22 435.9 90.62 448 100.9 448a13.55 13.55 0 0 0 8.37-3.84c1.91-2.76 3.81-5.63 3.81-8.38 0-5.63-3.86-12.2-13.2-20.55-44.45-42.33-67.32-97-67.48-165C32.25 188.8 54 137.8 97.22 96.21zM239.5 420.1c.58 .37 .91 .55 .91 .55zm93.79 .55 .17-.13C333.2 420.6 333.2 420.7 333.3 420.6zm3.13-158.2c-16.24-4.15 50.41-82.89-68.05-177.2 0 0 15.54 49.38-62.83 159.6-74.27 104.3 23.46 168.7 34 175.2-6.73-4.35-47.4-35.7 9.55-128.6 11-18.3 25.53-34.87 43.5-72.16 0 0 15.91 22.45 7.6 71.13C287.7 364 354 342.9 355 343.9c22.75 26.78-17.72 73.51-21.58 76.55 5.49-3.65 117.7-78 33-188.1C360.4 238.4 352.6 266.6 336.4 262.4zM510.9 89.69C496 72.79 483.5 64 475 64a14.81 14.81 0 0 0 -8.39 2.84c-1.91 1.91-3.83 4.66-3.83 7.42 0 4.78 5.6 11.26 16 21.9 43.23 41.61 65 92.59 64.82 154.1-.16 68-23 122.6-67.48 165-9.34 8.35-13.18 14.92-13.2 20.55 0 2.75 1.9 5.62 3.81 8.38A13.61 13.61 0 0 0 475.1 448c10.28 0 24.68-12.13 43.47-35.79 36.59-44.85 53.14-94.38 54.06-161.9S552.3 137 510.9 89.69z" - } - }, - "free": [ - "brands" - ] - }, - "freebsd": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a4", - "label": "FreeBSD", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2-11.1 11.1-39.4 .9-63.1-22.9-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1c-16.6 16.6 7.1 69.4 27.9 105.7 18.5-32.2 44.8-59.3 76.4-78.7zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z" - } - }, - "free": [ - "brands" - ] - }, - "frog": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f52e", - "aliases": { - "unicodes": { - "secondary": [ - "10f52e" - ] - } - }, - "label": "Frog", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573246, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M528 416h-32.07l-90.32-96.34l140.6-79.03c18.38-10.25 29.75-29.62 29.75-50.62c0-21.5-11.75-41-30.5-51.25c-40.5-22.25-99.07-41.43-99.07-41.43C439.6 60.19 407.3 32 368 32s-71.77 28.25-78.52 65.5C126.7 113-.4999 250.1 .0001 417C.1251 451.9 29.13 480 64 480h304c8.875 0 16-7.125 16-16c0-26.51-21.49-48-47.1-48H284.3l23.93-32.38c24.25-36.13 10.38-88.25-33.63-106.5C250.8 267.1 223 272.4 202.4 288L169.6 312.5c-7.125 5.375-17.12 4-22.38-3.125c-5.375-7.125-4-17.12 3.125-22.38l34.75-26.12c36.87-27.62 88.37-27.62 125.1 0c10.88 8.125 45.88 39 40.88 93.13L469.6 480h90.38c8.875 0 16-7.125 16-16C576 437.5 554.5 416 528 416zM344 112c0-13.25 10.75-24 24-24s24 10.75 24 24s-10.75 24-24 24S344 125.3 344 112z" - } - }, - "free": [ - "solid" - ] - }, - "fulcrum": { - "changes": [ - "5.0.12", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f50b", - "label": "Fulcrum", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M95.75 164.1l-35.38 43.55L25 164.1l35.38-43.55zM144.2 0l-20.54 198.2L72.72 256l51 57.82L144.2 512V300.9L103.2 256l41.08-44.89zm79.67 164.1l35.38 43.55 35.38-43.55-35.38-43.55zm-48.48 47L216.5 256l-41.08 44.89V512L196 313.8 247 256l-51-57.82L175.4 0z" - } - }, - "free": [ - "brands" - ] - }, - "futbol": { - "changes": [ - "4.2.0", - "5.0.0", - "5.0.5", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1e3", - "aliases": { - "names": [ - "futbol-ball", - "soccer-ball" - ], - "unicodes": { - "composite": [ - "26bd" - ], - "secondary": [ - "10f1e3" - ] - } - }, - "label": "Futbol ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573246, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M177.1 228.6L207.9 320h96.5l29.62-91.38L256 172.1L177.1 228.6zM255.1 0C114.6 0 .0001 114.6 .0001 256S114.6 512 256 512s255.1-114.6 255.1-255.1S397.4 0 255.1 0zM416.6 360.9l-85.4-1.297l-25.15 81.59C290.1 445.5 273.4 448 256 448s-34.09-2.523-50.09-6.859L180.8 359.6l-85.4 1.297c-18.12-27.66-29.15-60.27-30.88-95.31L134.3 216.4L106.6 135.6c21.16-26.21 49.09-46.61 81.06-58.84L256 128l68.29-51.22c31.98 12.23 59.9 32.64 81.06 58.84L377.7 216.4l69.78 49.1C445.8 300.6 434.8 333.2 416.6 360.9z" - }, - "regular": { - "last_modified": 1658443573050, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M177.1 228.6L207.9 320h96.5l29.62-91.38L256 172.1L177.1 228.6zM255.1 0C114.6 0 .0001 114.6 .0001 256S114.6 512 256 512s255.1-114.6 255.1-255.1S397.4 0 255.1 0zM435.2 361.1l-103.9-1.578l-30.67 99.52C286.2 462.2 271.3 464 256 464s-30.19-1.773-44.56-4.93L180.8 359.6L76.83 361.1c-14.93-25.35-24.79-54.01-27.8-84.72L134.3 216.4L100.7 118.1c19.85-22.34 44.32-40.45 72.04-52.62L256 128l83.29-62.47c27.72 12.17 52.19 30.27 72.04 52.62L377.7 216.4l85.23 59.97C459.1 307.1 450.1 335.8 435.2 361.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "g": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "47", - "aliases": { - "unicodes": { - "composite": [ - "67" - ] - } - }, - "label": "G", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573246, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 256c0 143.4-118.6 222.3-225 222.3c-132.3 0-222.1-106.2-222.1-222.4c0-124.4 100.9-223.9 223.1-223.9c84.84 0 167.8 55.28 167.8 88.2c0 18.28-14.95 32-32 32c-31.04 0-46.79-56.16-135.8-56.16c-87.66 0-159.1 70.66-159.1 159.8c0 34.81 27.19 158.8 159.1 158.8c79.45 0 144.6-55.1 158.1-126.7h-134.1c-17.67 0-32-14.33-32-32s14.33-31.1 32-31.1H416C433.7 224 448 238.3 448 256z" - } - }, - "free": [ - "solid" - ] - }, - "galactic-republic": { - "changes": [ - "5.0.12" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f50c", - "label": "Galactic Republic", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 504C111.3 504 0 392.8 0 256S111.3 8 248 8s248 111.3 248 248-111.3 248-248 248zm0-479.5C120.4 24.53 16.53 128.4 16.53 256S120.4 487.5 248 487.5 479.5 383.6 479.5 256 375.6 24.53 248 24.53zm27.62 21.81v24.62a185.9 185.9 0 0 1 83.57 34.54l17.39-17.36c-28.75-22.06-63.3-36.89-100.1-41.8zm-55.37 .07c-37.64 4.94-72.16 19.8-100.9 41.85l17.28 17.36h.08c24.07-17.84 52.55-30.06 83.52-34.67V46.41zm12.25 50.17v82.87c-10.04 2.03-19.42 5.94-27.67 11.42l-58.62-58.59-21.93 21.93 58.67 58.67c-5.47 8.23-9.45 17.59-11.47 27.62h-82.9v31h82.9c2.02 10.02 6.01 19.31 11.47 27.54l-58.67 58.69 21.93 21.93 58.62-58.62a77.87 77.87 0 0 0 27.67 11.47v82.9h31v-82.9c10.05-2.03 19.37-6.06 27.62-11.55l58.67 58.69 21.93-21.93-58.67-58.69c5.46-8.23 9.47-17.52 11.5-27.54h82.87v-31h-82.87c-2.02-10.02-6.03-19.38-11.5-27.62l58.67-58.67-21.93-21.93-58.67 58.67c-8.25-5.49-17.57-9.47-27.62-11.5V96.58h-31zm183.2 30.72l-17.36 17.36a186.3 186.3 0 0 1 34.67 83.67h24.62c-4.95-37.69-19.83-72.29-41.93-101zm-335.5 .13c-22.06 28.72-36.91 63.26-41.85 100.9h24.65c4.6-30.96 16.76-59.45 34.59-83.52l-17.39-17.39zM38.34 283.7c4.92 37.64 19.75 72.18 41.8 100.9l17.36-17.39c-17.81-24.07-29.92-52.57-34.51-83.52H38.34zm394.7 0c-4.61 30.99-16.8 59.5-34.67 83.6l17.36 17.36c22.08-28.74 36.98-63.29 41.93-100.1h-24.62zM136.7 406.4l-17.36 17.36c28.73 22.09 63.3 36.98 100.1 41.93v-24.64c-30.99-4.63-59.53-16.79-83.6-34.65zm222.5 .05c-24.09 17.84-52.58 30.08-83.57 34.67v24.57c37.67-4.92 72.21-19.79 100.1-41.85l-17.31-17.39h-.08z" - } - }, - "free": [ - "brands" - ] - }, - "galactic-senate": { - "changes": [ - "5.0.12" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f50d", - "label": "Galactic Senate", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572480, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M249.9 33.48v26.07C236.3 80.17 226 168.1 225.4 274.9c11.74-15.62 19.13-33.33 19.13-48.24v-16.88c-.03-5.32 .75-10.53 2.19-15.65 .65-2.14 1.39-4.08 2.62-5.82 1.23-1.75 3.43-3.79 6.68-3.79 3.24 0 5.45 2.05 6.68 3.79 1.23 1.75 1.97 3.68 2.62 5.82 1.44 5.12 2.22 10.33 2.19 15.65v16.88c0 14.91 7.39 32.62 19.13 48.24-.63-106.8-10.91-194.7-24.49-215.4V33.48h-12.28zm-26.34 147.8c-9.52 2.15-18.7 5.19-27.46 9.08 8.9 16.12 9.76 32.64 1.71 37.29-8 4.62-21.85-4.23-31.36-19.82-11.58 8.79-21.88 19.32-30.56 31.09 14.73 9.62 22.89 22.92 18.32 30.66-4.54 7.7-20.03 7.14-35.47-.96-5.78 13.25-9.75 27.51-11.65 42.42 9.68 .18 18.67 2.38 26.18 6.04 17.78-.3 32.77-1.96 40.49-4.22 5.55-26.35 23.02-48.23 46.32-59.51 .73-25.55 1.88-49.67 3.48-72.07zm64.96 0c1.59 22.4 2.75 46.52 3.47 72.07 23.29 11.28 40.77 33.16 46.32 59.51 7.72 2.26 22.71 3.92 40.49 4.22 7.51-3.66 16.5-5.85 26.18-6.04-1.9-14.91-5.86-29.17-11.65-42.42-15.44 8.1-30.93 8.66-35.47 .96-4.57-7.74 3.6-21.05 18.32-30.66-8.68-11.77-18.98-22.3-30.56-31.09-9.51 15.59-23.36 24.44-31.36 19.82-8.05-4.65-7.19-21.16 1.71-37.29a147.5 147.5 0 0 0 -27.45-9.08zm-32.48 8.6c-3.23 0-5.86 8.81-6.09 19.93h-.05v16.88c0 41.42-49.01 95.04-93.49 95.04-52 0-122.8-1.45-156.4 29.17v2.51c9.42 17.12 20.58 33.17 33.18 47.97C45.7 380.3 84.77 360.4 141.2 360c45.68 1.02 79.03 20.33 90.76 40.87 .01 .01-.01 .04 0 .05 7.67 2.14 15.85 3.23 24.04 3.21 8.19 .02 16.37-1.07 24.04-3.21 .01-.01-.01-.04 0-.05 11.74-20.54 45.08-39.85 90.76-40.87 56.43 .39 95.49 20.26 108 41.35 12.6-14.8 23.76-30.86 33.18-47.97v-2.51c-33.61-30.62-104.4-29.17-156.4-29.17-44.48 0-93.49-53.62-93.49-95.04v-16.88h-.05c-.23-11.12-2.86-19.93-6.09-19.93zm0 96.59c22.42 0 40.6 18.18 40.6 40.6s-18.18 40.65-40.6 40.65-40.6-18.23-40.6-40.65c0-22.42 18.18-40.6 40.6-40.6zm0 7.64c-18.19 0-32.96 14.77-32.96 32.96S237.8 360 256 360s32.96-14.77 32.96-32.96-14.77-32.96-32.96-32.96zm0 6.14c14.81 0 26.82 12.01 26.82 26.82s-12.01 26.82-26.82 26.82-26.82-12.01-26.82-26.82 12.01-26.82 26.82-26.82zm-114.8 66.67c-10.19 .07-21.6 .36-30.5 1.66 .43 4.42 1.51 18.63 7.11 29.76 9.11-2.56 18.36-3.9 27.62-3.9 41.28 .94 71.48 34.35 78.26 74.47l.11 4.7c10.4 1.91 21.19 2.94 32.21 2.94 11.03 0 21.81-1.02 32.21-2.94l.11-4.7c6.78-40.12 36.98-73.53 78.26-74.47 9.26 0 18.51 1.34 27.62 3.9 5.6-11.13 6.68-25.34 7.11-29.76-8.9-1.3-20.32-1.58-30.5-1.66-18.76 .42-35.19 4.17-48.61 9.67-12.54 16.03-29.16 30.03-49.58 33.07-.09 .02-.17 .04-.27 .05-.05 .01-.11 .04-.16 .05-5.24 1.07-10.63 1.6-16.19 1.6-5.55 0-10.95-.53-16.19-1.6-.05-.01-.11-.04-.16-.05-.1-.02-.17-.04-.27-.05-20.42-3.03-37.03-17.04-49.58-33.07-13.42-5.49-29.86-9.25-48.61-9.67z" - } - }, - "free": [ - "brands" - ] - }, - "gamepad": { - "changes": [ - "3.1.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f11b", - "aliases": { - "unicodes": { - "secondary": [ - "10f11b" - ] - } - }, - "label": "Gamepad", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573246, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M448 64H192C85.96 64 0 149.1 0 256s85.96 192 192 192h256c106 0 192-85.96 192-192S554 64 448 64zM247.1 280h-32v32c0 13.2-10.78 24-23.98 24c-13.2 0-24.02-10.8-24.02-24v-32L136 279.1C122.8 279.1 111.1 269.2 111.1 256c0-13.2 10.85-24.01 24.05-24.01L167.1 232v-32c0-13.2 10.82-24 24.02-24c13.2 0 23.98 10.8 23.98 24v32h32c13.2 0 24.02 10.8 24.02 24C271.1 269.2 261.2 280 247.1 280zM431.1 344c-22.12 0-39.1-17.87-39.1-39.1s17.87-40 39.1-40s39.1 17.88 39.1 40S454.1 344 431.1 344zM495.1 248c-22.12 0-39.1-17.87-39.1-39.1s17.87-40 39.1-40c22.12 0 39.1 17.88 39.1 40S518.1 248 495.1 248z" - } - }, - "free": [ - "solid" - ] - }, - "gas-pump": { - "changes": [ - "5.0.13", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f52f", - "aliases": { - "unicodes": { - "composite": [ - "26fd" - ], - "secondary": [ - "10f52f" - ] - } - }, - "label": "Gas Pump", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573247, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 64C32 28.65 60.65 0 96 0H256C291.3 0 320 28.65 320 64V256H328C376.6 256 416 295.4 416 344V376C416 389.3 426.7 400 440 400C453.3 400 464 389.3 464 376V221.1C436.4 214.9 416 189.8 416 160V96L384 64C375.2 55.16 375.2 40.84 384 32C392.8 23.16 407.2 23.16 416 32L493.3 109.3C505.3 121.3 512 137.5 512 154.5V376C512 415.8 479.8 448 440 448C400.2 448 368 415.8 368 376V344C368 321.9 350.1 303.1 328 303.1H320V448C337.7 448 352 462.3 352 480C352 497.7 337.7 512 320 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448V64zM96 176C96 184.8 103.2 192 112 192H240C248.8 192 256 184.8 256 176V80C256 71.16 248.8 64 240 64H112C103.2 64 96 71.16 96 80V176z" - } - }, - "free": [ - "solid" - ] - }, - "gauge": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f624", - "aliases": { - "names": [ - "dashboard", - "gauge-med", - "tachometer-alt-average" - ], - "unicodes": { - "secondary": [ - "10f624" - ] - } - }, - "label": "Gauge med", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM280 292.7V88C280 74.75 269.3 64 256 64C242.7 64 232 74.75 232 88V292.7C208.5 302.1 192 325.1 192 352C192 387.3 220.7 416 256 416C291.3 416 320 387.3 320 352C320 325.1 303.5 302.1 280 292.7zM144 176C161.7 176 176 161.7 176 144C176 126.3 161.7 112 144 112C126.3 112 112 126.3 112 144C112 161.7 126.3 176 144 176zM96 224C78.33 224 64 238.3 64 256C64 273.7 78.33 288 96 288C113.7 288 128 273.7 128 256C128 238.3 113.7 224 96 224zM416 288C433.7 288 448 273.7 448 256C448 238.3 433.7 224 416 224C398.3 224 384 238.3 384 256C384 273.7 398.3 288 416 288zM368 112C350.3 112 336 126.3 336 144C336 161.7 350.3 176 368 176C385.7 176 400 161.7 400 144C400 126.3 385.7 112 368 112z" - } - }, - "free": [ - "solid" - ] - }, - "gauge-high": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f625", - "aliases": { - "names": [ - "tachometer-alt", - "tachometer-alt-fast" - ], - "unicodes": { - "composite": [ - "f3fd" - ], - "primary": [ - "f3fd" - ], - "secondary": [ - "10f3fd", - "10f625" - ] - } - }, - "label": "Gauge", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573247, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM256 64C238.3 64 224 78.33 224 96C224 113.7 238.3 128 256 128C273.7 128 288 113.7 288 96C288 78.33 273.7 64 256 64zM256 416C291.3 416 320 387.3 320 352C320 334.6 313.1 318.9 301.9 307.4L365.1 161.7C371.3 149.5 365.8 135.4 353.7 130C341.5 124.7 327.4 130.2 322 142.3L257.9 288C257.3 288 256.6 287.1 256 287.1C220.7 287.1 192 316.7 192 352C192 387.3 220.7 416 256 416V416zM144 112C126.3 112 112 126.3 112 144C112 161.7 126.3 176 144 176C161.7 176 176 161.7 176 144C176 126.3 161.7 112 144 112zM96 288C113.7 288 128 273.7 128 256C128 238.3 113.7 224 96 224C78.33 224 64 238.3 64 256C64 273.7 78.33 288 96 288zM416 224C398.3 224 384 238.3 384 256C384 273.7 398.3 288 416 288C433.7 288 448 273.7 448 256C448 238.3 433.7 224 416 224z" - } - }, - "free": [ - "solid" - ] - }, - "gauge-simple": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f629", - "aliases": { - "names": [ - "gauge-simple-med", - "tachometer-average" - ], - "unicodes": { - "secondary": [ - "10f629" - ] - } - }, - "label": "Gauge simple med", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM280 292.7V88C280 74.75 269.3 64 256 64C242.7 64 232 74.75 232 88V292.7C208.5 302.1 192 325.1 192 352C192 387.3 220.7 416 256 416C291.3 416 320 387.3 320 352C320 325.1 303.5 302.1 280 292.7z" - } - }, - "free": [ - "solid" - ] - }, - "gauge-simple-high": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f62a", - "aliases": { - "names": [ - "tachometer", - "tachometer-fast" - ], - "unicodes": { - "composite": [ - "f0e4" - ], - "primary": [ - "f0e4" - ], - "secondary": [ - "10f0e4", - "10f62a" - ] - } - }, - "label": "Gauge simple", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573247, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 397.4 397.4 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256zM304.7 310.4L381.3 163.1C387.4 151.3 382.8 136.8 371.1 130.7C359.3 124.6 344.8 129.2 338.7 140.9L262.1 288.3C260.1 288.1 258.1 287.1 255.1 287.1C220.7 287.1 191.1 316.7 191.1 352C191.1 387.3 220.7 416 255.1 416C291.3 416 320 387.3 320 352C320 336.1 314.2 321.6 304.7 310.4L304.7 310.4z" - } - }, - "free": [ - "solid" - ] - }, - "gavel": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0e3", - "aliases": { - "names": [ - "legal" - ], - "unicodes": { - "secondary": [ - "10f0e3" - ] - } - }, - "label": "Gavel", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 216.3c0-6.125-2.344-12.25-7.031-16.93L482.3 176.8c-4.688-4.686-10.84-7.028-16.1-7.028s-12.31 2.343-16.1 7.028l-5.625 5.625L329.6 69.28l5.625-5.625c4.687-4.688 7.03-10.84 7.03-16.1s-2.343-12.31-7.03-16.1l-22.62-22.62C307.9 2.344 301.8 0 295.7 0s-12.15 2.344-16.84 7.031L154.2 131.5C149.6 136.2 147.2 142.3 147.2 148.5s2.344 12.25 7.031 16.94l22.62 22.62c4.688 4.688 10.84 7.031 16.1 7.031c6.156 0 12.31-2.344 16.1-7.031l5.625-5.625l113.1 113.1l-5.625 5.621c-4.688 4.688-7.031 10.84-7.031 16.1s2.344 12.31 7.031 16.1l22.62 22.62c4.688 4.688 10.81 7.031 16.94 7.031s12.25-2.344 16.94-7.031l124.5-124.6C509.7 228.5 512 222.5 512 216.3zM227.8 238.1L169.4 297.4C163.1 291.1 154.9 288 146.7 288S130.4 291.1 124.1 297.4l-114.7 114.7c-6.25 6.248-9.375 14.43-9.375 22.62s3.125 16.37 9.375 22.62l45.25 45.25C60.87 508.9 69.06 512 77.25 512s16.37-3.125 22.62-9.375l114.7-114.7c6.25-6.25 9.376-14.44 9.376-22.62c0-8.185-3.125-16.37-9.374-22.62l58.43-58.43L227.8 238.1z" - } - }, - "free": [ - "solid" - ] - }, - "gear": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f013", - "aliases": { - "names": [ - "cog" - ], - "unicodes": { - "composite": [ - "2699" - ], - "secondary": [ - "10f013" - ] - } - }, - "label": "Gear", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M495.9 166.6C499.2 175.2 496.4 184.9 489.6 191.2L446.3 230.6C447.4 238.9 448 247.4 448 256C448 264.6 447.4 273.1 446.3 281.4L489.6 320.8C496.4 327.1 499.2 336.8 495.9 345.4C491.5 357.3 486.2 368.8 480.2 379.7L475.5 387.8C468.9 398.8 461.5 409.2 453.4 419.1C447.4 426.2 437.7 428.7 428.9 425.9L373.2 408.1C359.8 418.4 344.1 427 329.2 433.6L316.7 490.7C314.7 499.7 307.7 506.1 298.5 508.5C284.7 510.8 270.5 512 255.1 512C241.5 512 227.3 510.8 213.5 508.5C204.3 506.1 197.3 499.7 195.3 490.7L182.8 433.6C167 427 152.2 418.4 138.8 408.1L83.14 425.9C74.3 428.7 64.55 426.2 58.63 419.1C50.52 409.2 43.12 398.8 36.52 387.8L31.84 379.7C25.77 368.8 20.49 357.3 16.06 345.4C12.82 336.8 15.55 327.1 22.41 320.8L65.67 281.4C64.57 273.1 64 264.6 64 256C64 247.4 64.57 238.9 65.67 230.6L22.41 191.2C15.55 184.9 12.82 175.3 16.06 166.6C20.49 154.7 25.78 143.2 31.84 132.3L36.51 124.2C43.12 113.2 50.52 102.8 58.63 92.95C64.55 85.8 74.3 83.32 83.14 86.14L138.8 103.9C152.2 93.56 167 84.96 182.8 78.43L195.3 21.33C197.3 12.25 204.3 5.04 213.5 3.51C227.3 1.201 241.5 0 256 0C270.5 0 284.7 1.201 298.5 3.51C307.7 5.04 314.7 12.25 316.7 21.33L329.2 78.43C344.1 84.96 359.8 93.56 373.2 103.9L428.9 86.14C437.7 83.32 447.4 85.8 453.4 92.95C461.5 102.8 468.9 113.2 475.5 124.2L480.2 132.3C486.2 143.2 491.5 154.7 495.9 166.6V166.6zM256 336C300.2 336 336 300.2 336 255.1C336 211.8 300.2 175.1 256 175.1C211.8 175.1 176 211.8 176 255.1C176 300.2 211.8 336 256 336z" - } - }, - "free": [ - "solid" - ] - }, - "gears": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f085", - "aliases": { - "names": [ - "cogs" - ], - "unicodes": { - "secondary": [ - "10f085" - ] - } - }, - "label": "Gears", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M286.3 155.1C287.4 161.9 288 168.9 288 175.1C288 183.1 287.4 190.1 286.3 196.9L308.5 216.7C315.5 223 318.4 232.1 314.7 241.7C312.4 246.1 309.9 252.2 307.1 257.2L304 262.6C300.1 267.6 297.7 272.4 294.2 277.1C288.5 284.7 278.5 287.2 269.5 284.2L241.2 274.9C230.5 283.8 218.3 290.9 205 295.9L198.1 324.9C197 334.2 189.8 341.6 180.4 342.8C173.7 343.6 166.9 344 160 344C153.1 344 146.3 343.6 139.6 342.8C130.2 341.6 122.1 334.2 121 324.9L114.1 295.9C101.7 290.9 89.5 283.8 78.75 274.9L50.53 284.2C41.54 287.2 31.52 284.7 25.82 277.1C22.28 272.4 18.98 267.5 15.94 262.5L12.92 257.2C10.13 252.2 7.592 247 5.324 241.7C1.62 232.1 4.458 223 11.52 216.7L33.7 196.9C32.58 190.1 31.1 183.1 31.1 175.1C31.1 168.9 32.58 161.9 33.7 155.1L11.52 135.3C4.458 128.1 1.62 119 5.324 110.3C7.592 104.1 10.13 99.79 12.91 94.76L15.95 89.51C18.98 84.46 22.28 79.58 25.82 74.89C31.52 67.34 41.54 64.83 50.53 67.79L78.75 77.09C89.5 68.25 101.7 61.13 114.1 56.15L121 27.08C122.1 17.8 130.2 10.37 139.6 9.231C146.3 8.418 153.1 8 160 8C166.9 8 173.7 8.418 180.4 9.23C189.8 10.37 197 17.8 198.1 27.08L205 56.15C218.3 61.13 230.5 68.25 241.2 77.09L269.5 67.79C278.5 64.83 288.5 67.34 294.2 74.89C297.7 79.56 300.1 84.42 304 89.44L307.1 94.83C309.9 99.84 312.4 105 314.7 110.3C318.4 119 315.5 128.1 308.5 135.3L286.3 155.1zM160 127.1C133.5 127.1 112 149.5 112 175.1C112 202.5 133.5 223.1 160 223.1C186.5 223.1 208 202.5 208 175.1C208 149.5 186.5 127.1 160 127.1zM484.9 478.3C478.1 479.4 471.1 480 464 480C456.9 480 449.9 479.4 443.1 478.3L423.3 500.5C416.1 507.5 407 510.4 398.3 506.7C393 504.4 387.8 501.9 382.8 499.1L377.4 496C372.4 492.1 367.6 489.7 362.9 486.2C355.3 480.5 352.8 470.5 355.8 461.5L365.1 433.2C356.2 422.5 349.1 410.3 344.1 397L315.1 390.1C305.8 389 298.4 381.8 297.2 372.4C296.4 365.7 296 358.9 296 352C296 345.1 296.4 338.3 297.2 331.6C298.4 322.2 305.8 314.1 315.1 313L344.1 306.1C349.1 293.7 356.2 281.5 365.1 270.8L355.8 242.5C352.8 233.5 355.3 223.5 362.9 217.8C367.6 214.3 372.5 210.1 377.5 207.9L382.8 204.9C387.8 202.1 392.1 199.6 398.3 197.3C407 193.6 416.1 196.5 423.3 203.5L443.1 225.7C449.9 224.6 456.9 224 464 224C471.1 224 478.1 224.6 484.9 225.7L504.7 203.5C511 196.5 520.1 193.6 529.7 197.3C535 199.6 540.2 202.1 545.2 204.9L550.5 207.9C555.5 210.1 560.4 214.3 565.1 217.8C572.7 223.5 575.2 233.5 572.2 242.5L562.9 270.8C571.8 281.5 578.9 293.7 583.9 306.1L612.9 313C622.2 314.1 629.6 322.2 630.8 331.6C631.6 338.3 632 345.1 632 352C632 358.9 631.6 365.7 630.8 372.4C629.6 381.8 622.2 389 612.9 390.1L583.9 397C578.9 410.3 571.8 422.5 562.9 433.2L572.2 461.5C575.2 470.5 572.7 480.5 565.1 486.2C560.4 489.7 555.6 492.1 550.6 496L545.2 499.1C540.2 501.9 534.1 504.4 529.7 506.7C520.1 510.4 511 507.5 504.7 500.5L484.9 478.3zM512 352C512 325.5 490.5 304 464 304C437.5 304 416 325.5 416 352C416 378.5 437.5 400 464 400C490.5 400 512 378.5 512 352z" - } - }, - "free": [ - "solid" - ] - }, - "gem": { - "changes": [ - "5.0.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f3a5", - "aliases": { - "unicodes": { - "composite": [ - "1f48e" - ], - "secondary": [ - "10f3a5" - ] - } - }, - "label": "Gem", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M378.7 32H133.3L256 182.7L378.7 32zM512 192l-107.4-141.3L289.6 192H512zM107.4 50.67L0 192h222.4L107.4 50.67zM244.3 474.9C247.3 478.2 251.6 480 256 480s8.653-1.828 11.67-5.062L510.6 224H1.365L244.3 474.9z" - }, - "regular": { - "last_modified": 1658443573052, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M507.9 196.4l-104-153.8C399.4 35.95 391.1 32 384 32H127.1C120 32 112.6 35.95 108.1 42.56l-103.1 153.8c-6.312 9.297-5.281 21.72 2.406 29.89l231.1 246.2C243.1 477.3 249.4 480 256 480s12.94-2.734 17.47-7.547l232-246.2C513.2 218.1 514.2 205.7 507.9 196.4zM382.5 96.59L446.1 192h-140.1L382.5 96.59zM256 178.9L177.6 80h156.7L256 178.9zM129.5 96.59L205.1 192H65.04L129.5 96.59zM256 421L85.42 240h341.2L256 421z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "genderless": { - "changes": [ - "4.4.0", - "5.0.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f22d", - "aliases": { - "unicodes": { - "secondary": [ - "10f22d" - ] - } - }, - "label": "Genderless", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M192 80C94.83 80 16 158.8 16 256c0 97.17 78.83 176 176 176s176-78.83 176-176C368 158.8 289.2 80 192 80zM192 352c-52.95 0-96-43.05-96-96c0-52.95 43.05-96 96-96s96 43.05 96 96C288 308.9 244.1 352 192 352z" - } - }, - "free": [ - "solid" - ] - }, - "get-pocket": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f265", - "label": "Get Pocket", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M407.6 64h-367C18.5 64 0 82.5 0 104.6v135.2C0 364.5 99.7 464 224.2 464c124 0 223.8-99.5 223.8-224.2V104.6c0-22.4-17.7-40.6-40.4-40.6zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0C89.5 223.6 88.3 227.4 88.3 209.3c0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3 16.9 0 30.7 13.8 30.7 30.7 0 17.8-2.9 15.7-114.8 123.2z" - } - }, - "free": [ - "brands" - ] - }, - "gg": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f260", - "label": "GG Currency", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M179.2 230.4l102.4 102.4-102.4 102.4L0 256 179.2 76.8l44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8L230.4 179.2l102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8L512 256 332.8 76.8z" - } - }, - "free": [ - "brands" - ] - }, - "gg-circle": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f261", - "label": "GG Currency Circle", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M257 8C120 8 9 119 9 256s111 248 248 248 248-111 248-248S394 8 257 8zm-49.5 374.8L81.8 257.1l125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75L432.2 255 306.5 380.6z" - } - }, - "free": [ - "brands" - ] - }, - "ghost": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6e2", - "aliases": { - "unicodes": { - "composite": [ - "1f47b" - ], - "secondary": [ - "10f6e2" - ] - } - }, - "label": "Ghost", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M186.1 .1032c-105.1 3.126-186.1 94.75-186.1 199.9v264c0 14.25 17.3 21.38 27.3 11.25l24.95-18.5c6.625-5.001 16-4.001 21.5 2.25l43 48.31c6.25 6.251 16.37 6.251 22.62 0l40.62-45.81c6.375-7.251 17.62-7.251 24 0l40.63 45.81c6.25 6.251 16.38 6.251 22.62 0l43-48.31c5.5-6.251 14.88-7.251 21.5-2.25l24.95 18.5c10 10.13 27.3 3.002 27.3-11.25V192C384 83.98 294.9-3.147 186.1 .1032zM128 224c-17.62 0-31.1-14.38-31.1-32.01s14.38-32.01 31.1-32.01s32 14.38 32 32.01S145.6 224 128 224zM256 224c-17.62 0-32-14.38-32-32.01s14.38-32.01 32-32.01c17.62 0 32 14.38 32 32.01S273.6 224 256 224z" - } - }, - "free": [ - "solid" - ] - }, - "gift": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.9", - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f06b", - "aliases": { - "unicodes": { - "composite": [ - "1f381" - ], - "secondary": [ - "10f06b" - ] - } - }, - "label": "gift", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M152 0H154.2C186.1 0 215.7 16.91 231.9 44.45L256 85.46L280.1 44.45C296.3 16.91 325.9 0 357.8 0H360C408.6 0 448 39.4 448 88C448 102.4 444.5 115.1 438.4 128H480C497.7 128 512 142.3 512 160V224C512 241.7 497.7 256 480 256H32C14.33 256 0 241.7 0 224V160C0 142.3 14.33 128 32 128H73.6C67.46 115.1 64 102.4 64 88C64 39.4 103.4 0 152 0zM190.5 68.78C182.9 55.91 169.1 48 154.2 48H152C129.9 48 112 65.91 112 88C112 110.1 129.9 128 152 128H225.3L190.5 68.78zM360 48H357.8C342.9 48 329.1 55.91 321.5 68.78L286.7 128H360C382.1 128 400 110.1 400 88C400 65.91 382.1 48 360 48V48zM32 288H224V512H80C53.49 512 32 490.5 32 464V288zM288 512V288H480V464C480 490.5 458.5 512 432 512H288z" - } - }, - "free": [ - "solid" - ] - }, - "gifts": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f79c", - "aliases": { - "unicodes": { - "secondary": [ - "10f79c" - ] - } - }, - "label": "Gifts", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M192.5 55.09L217.9 36.59C228.6 28.79 243.6 31.16 251.4 41.88C259.2 52.6 256.8 67.61 246.1 75.41L217.8 95.1H240C256.9 95.1 271.7 104.7 280.3 117.9C257.3 135.7 241.9 162.1 240.2 193.1C212.5 201 192 226.1 192 256V480C192 491.7 195.1 502.6 200.6 512H48C21.49 512 0 490.5 0 464V144C0 117.5 21.49 96 48 96H70.2L41.88 75.41C31.16 67.61 28.79 52.6 36.59 41.88C44.39 31.16 59.4 28.79 70.12 36.59L97.55 56.54L89.23 31.59C85.04 19.01 91.84 5.423 104.4 1.232C116.1-2.96 130.6 3.836 134.8 16.41L144.7 46.17L155.4 15.99C159.8 3.493 173.5-3.048 186 1.377C198.5 5.802 205 19.52 200.6 32.01L192.5 55.09zM344.2 127.1C366.6 127.1 387.8 138.4 401.5 156.2L432 195.8L462.5 156.2C476.2 138.4 497.4 127.1 519.8 127.1C559.5 127.1 592 160.1 592 199.1C592 208.4 590.6 216.5 587.9 223.1H592C618.5 223.1 640 245.5 640 271.1V352H448V255.1H416V352H224V271.1C224 245.5 245.5 223.1 272 223.1H276.1C273.4 216.5 272 208.4 272 199.1C272 160.1 304.5 127.1 344.2 127.1H344.2zM363.5 185.5C358.9 179.5 351.7 175.1 344.2 175.1C330.8 175.1 320 186.9 320 199.1C320 213.3 330.7 223.1 344 223.1H393.1L363.5 185.5zM519.8 175.1C512.3 175.1 505.1 179.5 500.5 185.5L470.9 223.1H520C533.3 223.1 544 213.3 544 199.1C544 186.9 533.2 175.1 519.8 175.1H519.8zM224 464V384H416V512H272C245.5 512 224 490.5 224 464zM448 512V384H640V464C640 490.5 618.5 512 592 512H448z" - } - }, - "free": [ - "solid" - ] - }, - "git": { - "changes": [ - "4.1.0", - "5.0.0", - "5.8.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d3", - "label": "Git", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M216.3 158.4H137C97 147.9 6.51 150.6 6.51 233.2c0 30.09 15 51.23 35 61-25.1 23-37 33.85-37 49.21 0 11 4.47 21.14 17.89 26.81C8.13 383.6 0 393.4 0 411.6c0 32.11 28.05 50.82 101.6 50.82 70.75 0 111.8-26.42 111.8-73.18 0-58.66-45.16-56.5-151.6-63l13.43-21.55c27.27 7.58 118.7 10 118.7-67.89 0-18.7-7.73-31.71-15-41.07l37.41-2.84zm-63.42 241.9c0 32.06-104.9 32.1-104.9 2.43 0-8.14 5.27-15 10.57-21.54 77.71 5.3 94.32 3.37 94.32 19.11zm-50.81-134.6c-52.8 0-50.46-71.16 1.2-71.16 49.54 0 50.82 71.16-1.2 71.16zm133.3 100.5v-32.1c26.75-3.66 27.24-2 27.24-11V203.6c0-8.5-2.05-7.38-27.24-16.26l4.47-32.92H324v168.7c0 6.51 .4 7.32 6.51 8.14l20.73 2.84v32.1zm52.45-244.3c-23.17 0-36.59-13.43-36.59-36.61s13.42-35.77 36.59-35.77c23.58 0 37 12.62 37 35.77s-13.42 36.61-37 36.61zM512 350.5c-17.49 8.53-43.1 16.26-66.28 16.26-48.38 0-66.67-19.5-66.67-65.46V194.8c0-5.42 1.05-4.06-31.71-4.06V154.5c35.78-4.07 50-22 54.47-66.27h38.63c0 65.83-1.34 61.81 3.26 61.81H501v40.65h-60.56v97.15c0 6.92-4.92 51.41 60.57 26.84z" - } - }, - "free": [ - "brands" - ] - }, - "git-alt": { - "changes": [ - "5.8.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f841", - "label": "Git Alt", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M439.5 236.1L244 40.45a28.87 28.87 0 0 0 -40.81 0l-40.66 40.63 51.52 51.52c27.06-9.14 52.68 16.77 43.39 43.68l49.66 49.66c34.23-11.8 61.18 31 35.47 56.69-26.49 26.49-70.21-2.87-56-37.34L240.2 199v121.8c25.3 12.54 22.26 41.85 9.08 55a34.34 34.34 0 0 1 -48.55 0c-17.57-17.6-11.07-46.91 11.25-56v-123c-20.8-8.51-24.6-30.74-18.64-45L142.6 101 8.45 235.1a28.86 28.86 0 0 0 0 40.81l195.6 195.6a28.86 28.86 0 0 0 40.8 0l194.7-194.7a28.86 28.86 0 0 0 0-40.81z" - } - }, - "free": [ - "brands" - ] - }, - "github": { - "changes": [ - "2.0.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f09b", - "label": "GitHub", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M165.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM244.8 8C106.1 8 0 113.3 0 252c0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1C428.2 457.8 496 362.9 496 252 496 113.3 383.5 8 244.8 8zM97.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9 1.6 2.3 4.3 3.3 5.6 2.3 1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z" - } - }, - "free": [ - "brands" - ] - }, - "github-alt": { - "changes": [ - "3.0.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f113", - "label": "Alternate GitHub", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 480, - 512 - ], - "width": 480, - "height": 512, - "path": "M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z" - } - }, - "free": [ - "brands" - ] - }, - "gitkraken": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a6", - "label": "GitKraken", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 592, - 512 - ], - "width": 592, - "height": 512, - "path": "M565.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7V358.4c7.9-1.5 15.5-3.6 23-6.2v104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4v-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9V170c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0C251.1 8.3 163.2 132 163.2 170v14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5v92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8v-104c7.6 2.5 15.1 4.6 23 6.2v123.7C131.4 465.2 31 354.1 31 219.5c0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6C14.5 149.7 8 183.8 8 219.5c0 155.1 122.6 281.6 276.3 287.8V361.4c6.8 .4 15 .5 23.4 0v145.8C461.4 501.1 584 374.6 584 219.5c0-35.7-6.5-69.8-18.3-101.4zM365.9 275.5c13 0 23.7 10.5 23.7 23.7 0 13.1-10.6 23.7-23.7 23.7-13 0-23.7-10.5-23.7-23.7 0-13.1 10.6-23.7 23.7-23.7zm-139.8 47.3c-13.2 0-23.7-10.7-23.7-23.7s10.5-23.7 23.7-23.7c13.1 0 23.7 10.6 23.7 23.7 0 13-10.5 23.7-23.7 23.7z" - } - }, - "free": [ - "brands" - ] - }, - "gitlab": { - "changes": [ - "4.6.0", - "5.0.0", - "5.7.0", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f296", - "label": "GitLab", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M503.5 204.6L502.8 202.8L433.1 21.02C431.7 17.45 429.2 14.43 425.9 12.38C423.5 10.83 420.8 9.865 417.9 9.57C415 9.275 412.2 9.653 409.5 10.68C406.8 11.7 404.4 13.34 402.4 15.46C400.5 17.58 399.1 20.13 398.3 22.9L351.3 166.9H160.8L113.7 22.9C112.9 20.13 111.5 17.59 109.6 15.47C107.6 13.35 105.2 11.72 102.5 10.7C99.86 9.675 96.98 9.295 94.12 9.587C91.26 9.878 88.51 10.83 86.08 12.38C82.84 14.43 80.33 17.45 78.92 21.02L9.267 202.8L8.543 204.6C-1.484 230.8-2.72 259.6 5.023 286.6C12.77 313.5 29.07 337.3 51.47 354.2L51.74 354.4L52.33 354.8L158.3 434.3L210.9 474L242.9 498.2C246.6 500.1 251.2 502.5 255.9 502.5C260.6 502.5 265.2 500.1 268.9 498.2L300.9 474L353.5 434.3L460.2 354.4L460.5 354.1C482.9 337.2 499.2 313.5 506.1 286.6C514.7 259.6 513.5 230.8 503.5 204.6z" - } - }, - "free": [ - "brands" - ] - }, - "gitter": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f426", - "label": "Gitter", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M66.4 322.5H16V0h50.4v322.5zM166.9 76.1h-50.4V512h50.4V76.1zm100.6 0h-50.4V512h50.4V76.1zM368 76h-50.4v247H368V76z" - } - }, - "free": [ - "brands" - ] - }, - "glass-water": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f4", - "label": "Glass Water", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573249, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 0C360.9 0 369.4 3.692 375.4 10.19C381.5 16.69 384.6 25.42 383.9 34.28L355.1 437.7C352.1 479.6 317.3 512 275.3 512H108.7C66.72 512 31.89 479.6 28.9 437.7L.0813 34.28C-.5517 25.42 2.527 16.69 8.58 10.19C14.63 3.692 23.12 0 32 0L352 0zM97.19 168.6C116.6 178.3 139.4 178.3 158.8 168.6C179.7 158.1 204.3 158.1 225.2 168.6C244.6 178.3 267.4 178.3 286.8 168.6L311 156.5L317.6 64H66.37L72.97 156.5L97.19 168.6z" - } - }, - "free": [ - "solid" - ] - }, - "glass-water-droplet": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f5", - "label": "Glass Water-droplet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573248, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M256 196C256 229.1 227.3 256 192 256C156.7 256 128 229.1 128 196C128 171.1 161.7 125.9 180.2 102.5C186.3 94.77 197.7 94.77 203.8 102.5C222.3 125.9 256 171.1 256 196zM352 0C360.9 0 369.4 3.692 375.4 10.19C381.5 16.69 384.6 25.42 383.9 34.28L355.1 437.7C352.1 479.6 317.3 512 275.3 512H108.7C66.72 512 31.89 479.6 28.9 437.7L.0813 34.28C-.5517 25.42 2.527 16.69 8.58 10.19C14.63 3.692 23.12 0 32 0L352 0zM96 304C116.1 314.1 139.9 314.1 160 304C180.1 293.9 203.9 293.9 224 304C244.1 314.1 267.9 314.1 288 304L300.1 297.5L317.6 64H66.37L83.05 297.5L96 304z" - } - }, - "free": [ - "solid" - ] - }, - "glasses": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f530", - "aliases": { - "unicodes": { - "secondary": [ - "10f530" - ] - } - }, - "label": "Glasses", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573249, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M574.1 280.4l-45.38-181.8c-5.875-23.63-21.62-44-43-55.75c-21.5-11.75-46.1-14.13-70.25-6.375l-15.25 5.125c-8.375 2.75-12.87 11.88-10 20.25l5 15.13c2.75 8.375 11.88 12.88 20.25 10.13l13.12-4.375c10.88-3.625 23-3.625 33.25 1.75c10.25 5.375 17.5 14.5 20.38 25.75l38.38 153.9c-22.12-6.875-49.75-12.5-81.13-12.5c-34.88 0-73.1 7-114.9 26.75H251.4C210.5 258.6 171.4 251.6 136.5 251.6c-31.38 0-59 5.625-81.12 12.5l38.38-153.9c2.875-11.25 10.12-20.38 20.5-25.75C124.4 79.12 136.5 79.12 147.4 82.74l13.12 4.375c8.375 2.75 17.5-1.75 20.25-10.13l5-15.13C188.6 53.49 184.1 44.37 175.6 41.62l-15.25-5.125c-23.13-7.75-48.75-5.375-70.13 6.375c-21.37 11.75-37.12 32.13-43 55.75L1.875 280.4C.6251 285.4 .0001 290.6 .0001 295.9v70.25C.0001 428.1 51.63 480 115.3 480h37.13c60.25 0 110.4-46 114.9-105.4l2.875-38.63h35.75l2.875 38.63C313.3 433.1 363.4 480 423.6 480h37.13c63.62 0 115.2-51 115.2-113.9V295.9C576 290.6 575.4 285.5 574.1 280.4zM203.4 369.7c-2 26-24.38 46.25-51 46.25H115.2C87 415.1 64 393.6 64 366.1v-37.5c18.12-6.5 43.38-13 72.62-13c23.88 0 47.25 4.375 69.88 13L203.4 369.7zM512 366.1c0 27.5-23 49.88-51.25 49.88h-37.13c-26.62 0-49-20.25-51-46.25l-3.125-41.13c22.62-8.625 46.13-13 70-13c29 0 54.38 6.5 72.5 13V366.1z" - } - }, - "free": [ - "solid" - ] - }, - "glide": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2a5", - "label": "Glide", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 187c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8 .1 4.1-1.7 4.1-3.5z" - } - }, - "free": [ - "brands" - ] - }, - "glide-g": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2a6", - "label": "Glide G", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4C320.8 29.1 282.6 0 212.4 0 97.3 0 39 113.7 39 198.4 39 286.3 90.3 335 177.6 335c12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9 .1-52.4 51.2-52.4 79.3C32 476 64.8 512 117.5 512c77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zm-175.3-84.4c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z" - } - }, - "free": [ - "brands" - ] - }, - "globe": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.9", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ac", - "aliases": { - "unicodes": { - "composite": [ - "1f310" - ], - "secondary": [ - "10f0ac" - ] - } - }, - "label": "Globe", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573249, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 256C352 278.2 350.8 299.6 348.7 320H163.3C161.2 299.6 159.1 278.2 159.1 256C159.1 233.8 161.2 212.4 163.3 192H348.7C350.8 212.4 352 233.8 352 256zM503.9 192C509.2 212.5 512 233.9 512 256C512 278.1 509.2 299.5 503.9 320H380.8C382.9 299.4 384 277.1 384 256C384 234 382.9 212.6 380.8 192H503.9zM493.4 160H376.7C366.7 96.14 346.9 42.62 321.4 8.442C399.8 29.09 463.4 85.94 493.4 160zM344.3 160H167.7C173.8 123.6 183.2 91.38 194.7 65.35C205.2 41.74 216.9 24.61 228.2 13.81C239.4 3.178 248.7 0 256 0C263.3 0 272.6 3.178 283.8 13.81C295.1 24.61 306.8 41.74 317.3 65.35C328.8 91.38 338.2 123.6 344.3 160H344.3zM18.61 160C48.59 85.94 112.2 29.09 190.6 8.442C165.1 42.62 145.3 96.14 135.3 160H18.61zM131.2 192C129.1 212.6 127.1 234 127.1 256C127.1 277.1 129.1 299.4 131.2 320H8.065C2.8 299.5 0 278.1 0 256C0 233.9 2.8 212.5 8.065 192H131.2zM194.7 446.6C183.2 420.6 173.8 388.4 167.7 352H344.3C338.2 388.4 328.8 420.6 317.3 446.6C306.8 470.3 295.1 487.4 283.8 498.2C272.6 508.8 263.3 512 255.1 512C248.7 512 239.4 508.8 228.2 498.2C216.9 487.4 205.2 470.3 194.7 446.6H194.7zM190.6 503.6C112.2 482.9 48.59 426.1 18.61 352H135.3C145.3 415.9 165.1 469.4 190.6 503.6V503.6zM321.4 503.6C346.9 469.4 366.7 415.9 376.7 352H493.4C463.4 426.1 399.8 482.9 321.4 503.6V503.6z" - } - }, - "free": [ - "solid" - ] - }, - "gofore": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a7", - "label": "Gofore", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 400, - 512 - ], - "width": 400, - "height": 512, - "path": "M324 319.8h-13.2v34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3C335 55.3 279.7 32 220.7 32 98 32 0 132.6 0 256c0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zm-12.1-112.5H205.6v89H324c33.5 0 60.5 15.1 76 41.8v-30.6c0-65.2-40.4-100.2-88.1-100.2z" - } - }, - "free": [ - "brands" - ] - }, - "golang": { - "changes": [ - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e40f", - "label": "Go", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M400.1 194.8C389.2 197.6 380.2 199.1 371 202.4C363.7 204.3 356.3 206.3 347.8 208.5L347.2 208.6C343 209.8 342.6 209.9 338.7 205.4C334 200.1 330.6 196.7 324.1 193.5C304.4 183.9 285.4 186.7 267.7 198.2C246.5 211.9 235.6 232.2 235.9 257.4C236.2 282.4 253.3 302.9 277.1 306.3C299.1 309.1 316.9 301.7 330.9 285.8C333 283.2 334.9 280.5 337 277.5V277.5L337 277.5C337.8 276.5 338.5 275.4 339.3 274.2H279.2C272.7 274.2 271.1 270.2 273.3 264.9C277.3 255.2 284.8 239 289.2 230.9C290.1 229.1 292.3 225.1 296.1 225.1H397.2C401.7 211.7 409 198.2 418.8 185.4C441.5 155.5 468.1 139.9 506 133.4C537.8 127.8 567.7 130.9 594.9 149.3C619.5 166.1 634.7 188.9 638.8 218.8C644.1 260.9 631.9 295.1 602.1 324.4C582.4 345.3 557.2 358.4 528.2 364.3C522.6 365.3 517.1 365.8 511.7 366.3C508.8 366.5 506 366.8 503.2 367.1C474.9 366.5 449 358.4 427.2 339.7C411.9 326.4 401.3 310.1 396.1 291.2C392.4 298.5 388.1 305.6 382.1 312.3C360.5 341.9 331.2 360.3 294.2 365.2C263.6 369.3 235.3 363.4 210.3 344.7C187.3 327.2 174.2 304.2 170.8 275.5C166.7 241.5 176.7 210.1 197.2 184.2C219.4 155.2 248.7 136.8 284.5 130.3C313.8 124.1 341.8 128.4 367.1 145.6C383.6 156.5 395.4 171.4 403.2 189.5C405.1 192.3 403.8 193.9 400.1 194.8zM48.3 200.4C47.05 200.4 46.74 199.8 47.36 198.8L53.91 190.4C54.53 189.5 56.09 188.9 57.34 188.9H168.6C169.8 188.9 170.1 189.8 169.5 190.7L164.2 198.8C163.6 199.8 162 200.7 161.1 200.7L48.3 200.4zM1.246 229.1C0 229.1-.3116 228.4 .3116 227.5L6.855 219.1C7.479 218.2 9.037 217.5 10.28 217.5H152.4C153.6 217.5 154.2 218.5 153.9 219.4L151.4 226.9C151.1 228.1 149.9 228.8 148.6 228.8L1.246 229.1zM75.72 255.9C75.1 256.8 75.41 257.7 76.65 257.7L144.6 258C145.5 258 146.8 257.1 146.8 255.9L147.4 248.4C147.4 247.1 146.8 246.2 145.5 246.2H83.2C81.95 246.2 80.71 247.1 80.08 248.1L75.72 255.9zM577.2 237.9C577 235.3 576.9 233.1 576.5 230.9C570.9 200.1 542.5 182.6 512.9 189.5C483.9 196 465.2 214.4 458.4 243.7C452.8 268 464.6 292.6 487 302.6C504.2 310.1 521.3 309.2 537.8 300.7C562.4 287.1 575.8 268 577.4 241.2C577.3 240 577.3 238.9 577.2 237.9z" - } - }, - "free": [ - "brands" - ] - }, - "golf-ball-tee": { - "changes": [ - "5.0.5", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f450", - "aliases": { - "names": [ - "golf-ball" - ], - "unicodes": { - "secondary": [ - "10f450" - ] - } - }, - "label": "Golf ball tee", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573249, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M96 399.1c0 17.67 14.33 31.1 32 31.1s32 14.33 32 31.1v48h64v-48c0-17.67 14.33-31.1 32-31.1s32-14.33 32-31.1v-16H96V399.1zM192 .0001c-106 0-192 86.68-192 193.6c0 65.78 32.82 123.5 82.52 158.4h218.1C351.2 317.1 384 259.4 384 193.6C384 86.68 298 .0001 192 .0001zM179 205.1C183 206.9 187.4 208 192 208c17.53 0 31.74-14.33 31.74-31.1c0-4.688-1.111-9.062-2.904-13.07c11.03 5.016 18.77 16.08 18.77 29.07c0 17.67-14.21 31.1-31.74 31.1C194.1 224 184 216.2 179 205.1zM223.7 303.1c-12.88 0-23.86-7.812-28.83-18.93c3.977 1.809 8.316 2.93 12.96 2.93c17.53 0 31.74-14.33 31.74-31.1c0-4.688-1.109-9.062-2.904-13.07c11.03 5.016 18.77 16.08 18.77 29.07C255.5 289.7 241.3 303.1 223.7 303.1zM287.2 240c-12.88 0-23.86-7.812-28.83-18.93c3.977 1.809 8.316 2.93 12.96 2.93c17.53 0 31.73-14.33 31.73-31.1c0-4.688-1.109-9.062-2.902-13.07C311.2 183.9 318.9 195 318.9 208C318.9 225.7 304.7 240 287.2 240z" - } - }, - "free": [ - "solid" - ] - }, - "goodreads": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a8", - "label": "Goodreads", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88v336c0 30.9-25.1 56-56 56H56c-30.9 0-56-25.1-56-56V88c0-30.9 25.1-56 56-56h336c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3h-29v40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3h-26.8c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z" - } - }, - "free": [ - "brands" - ] - }, - "goodreads-g": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3a9", - "label": "Goodreads G", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572481, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M42.6 403.3h2.8c12.7 0 25.5 0 38.2 .1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5 .1-5.8 .3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7C58.3 47.7 112.3 .6 191.6 0c61.3-.4 101.5 38.7 116.2 70.3 .5 1.1 1.3 2.3 2.4 1.9V10.6h44.3c0 280.3 .1 332.2 .1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM188.9 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z" - } - }, - "free": [ - "brands" - ] - }, - "google": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a0", - "label": "Google Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 488, - 512 - ], - "width": 488, - "height": 512, - "path": "M488 261.8C488 403.3 391.1 504 248 504 110.8 504 0 393.2 0 256S110.8 8 248 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9C258.5 52.6 94.3 116.6 94.3 256c0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9H248v-85.3h236.1c2.3 12.7 3.9 24.9 3.9 41.4z" - } - }, - "free": [ - "brands" - ] - }, - "google-drive": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3aa", - "label": "Google Drive", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M339 314.9L175.4 32h161.2l163.6 282.9H339zm-137.5 23.6L120.9 480h310.5L512 338.5H201.5zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z" - } - }, - "free": [ - "brands" - ] - }, - "google-pay": { - "changes": [ - "5.13.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e079", - "label": "Google Pay", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M105.7 215v41.25h57.1a49.66 49.66 0 0 1 -21.14 32.6c-9.54 6.55-21.72 10.28-36 10.28-27.6 0-50.93-18.91-59.3-44.22a65.61 65.61 0 0 1 0-41l0 0c8.37-25.46 31.7-44.37 59.3-44.37a56.43 56.43 0 0 1 40.51 16.08L176.5 155a101.2 101.2 0 0 0 -70.75-27.84 105.6 105.6 0 0 0 -94.38 59.11 107.6 107.6 0 0 0 0 96.18v.15a105.4 105.4 0 0 0 94.38 59c28.47 0 52.55-9.53 70-25.91 20-18.61 31.41-46.15 31.41-78.91A133.8 133.8 0 0 0 205.4 215zm389.4-4c-10.13-9.38-23.93-14.14-41.39-14.14-22.46 0-39.34 8.34-50.5 24.86l20.85 13.26q11.45-17 31.26-17a34.05 34.05 0 0 1 22.75 8.79A28.14 28.14 0 0 1 487.8 248v5.51c-9.1-5.07-20.55-7.75-34.64-7.75-16.44 0-29.65 3.88-39.49 11.77s-14.82 18.31-14.82 31.56a39.74 39.74 0 0 0 13.94 31.27c9.25 8.34 21 12.51 34.79 12.51 16.29 0 29.21-7.3 39-21.89h1v17.72h22.61V250C510.3 233.4 505.3 220.3 495.1 211zM475.9 300.3a37.32 37.32 0 0 1 -26.57 11.16A28.61 28.61 0 0 1 431 305.2a19.41 19.41 0 0 1 -7.77-15.63c0-7 3.22-12.81 9.54-17.42s14.53-7 24.07-7C470 265 480.3 268 487.6 273.9 487.6 284.1 483.7 292.9 475.9 300.3zm-93.65-142A55.71 55.71 0 0 0 341.7 142H279.1V328.7H302.7V253.1h39c16 0 29.5-5.36 40.51-15.93 .88-.89 1.76-1.79 2.65-2.68A54.45 54.45 0 0 0 382.3 158.3zm-16.58 62.23a30.65 30.65 0 0 1 -23.34 9.68H302.7V165h39.63a32 32 0 0 1 22.6 9.23A33.18 33.18 0 0 1 365.7 220.5zM614.3 201 577.8 292.7h-.45L539.9 201H514.2L566 320.5l-29.35 64.32H561L640 201z" - } - }, - "free": [ - "brands" - ] - }, - "google-play": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ab", - "label": "Google Play", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M325.3 234.3L104.6 13l280.8 161.2-60.1 60.1zM47 0C34 6.8 25.3 19.2 25.3 35.3v441.3c0 16.1 8.7 28.5 21.7 35.3l256.6-256L47 0zm425.2 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM104.6 499l280.8-161.2-60.1-60.1L104.6 499z" - } - }, - "free": [ - "brands" - ] - }, - "google-plus": { - "changes": [ - "4.6.0", - "5.0.0", - "5.13.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2b3", - "label": "Google Plus", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 8C119.1 8 8 119.1 8 256S119.1 504 256 504 504 392.9 504 256 392.9 8 256 8zM185.3 380a124 124 0 0 1 0-248c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1S142.3 334 185.3 334c32.6 0 64.9-19.1 70.1-53.3H185.3V238.1H302.2a109.2 109.2 0 0 1 1.9 20.7c0 70.8-47.5 121.2-118.8 121.2zM415.5 273.8v35.5H380V273.8H344.5V238.3H380V202.8h35.5v35.5h35.2v35.5z" - } - }, - "free": [ - "brands" - ] - }, - "google-plus-g": { - "changes": [ - "2.0.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f0d5", - "label": "Google Plus G", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M386.1 228.5c1.834 9.692 3.143 19.38 3.143 31.96C389.2 370.2 315.6 448 204.8 448c-106.1 0-192-85.92-192-192s85.92-192 192-192c51.86 0 95.08 18.86 128.6 50.29l-52.13 50.03c-14.15-13.62-39.03-29.6-76.49-29.6-65.48 0-118.9 54.22-118.9 121.3 0 67.06 53.44 121.3 118.9 121.3 75.96 0 104.5-54.74 108.1-82.77H204.8v-66.01h181.3zm185.4 6.437V179.2h-56v55.73h-55.73v56h55.73v55.73h56v-55.73H627.2v-56h-55.73z" - } - }, - "free": [ - "brands" - ] - }, - "google-wallet": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1ee", - "label": "Google Wallet", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200H16.1c-6.5 0-10.5 7.5-6.5 12.7C51.8 267 81.3 330.5 101.3 400h103.5c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368H409c-12-138-68.4-265-143.2-368H157.1zm251.8-68.5c-1.8-6.8-8.2-11.5-15.2-11.5h-88.3c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z" - } - }, - "free": [ - "brands" - ] - }, - "gopuram": { - "changes": [ - "5.3.0", - "5.7.0", - "5.11.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f664", - "aliases": { - "unicodes": { - "secondary": [ - "10f664" - ] - } - }, - "label": "Gopuram", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573249, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M120 0C133.3 0 144 10.75 144 24V32H184V24C184 10.75 194.7 0 208 0C221.3 0 232 10.75 232 24V32H280V24C280 10.75 290.7 0 304 0C317.3 0 328 10.75 328 24V32H368V24C368 10.75 378.7 0 392 0C405.3 0 416 10.75 416 24V128C433.7 128 448 142.3 448 160V224C465.7 224 480 238.3 480 256V352C497.7 352 512 366.3 512 384V480C512 497.7 497.7 512 480 512H416V352H384V224H352V128H320V224H352V352H384V512H304V464C304 437.5 282.5 416 256 416C229.5 416 208 437.5 208 464V512H128V352H160V224H192V128H160V224H128V352H96V512H32C14.33 512 0 497.7 0 480V384C0 366.3 14.33 352 32 352V256C32 238.3 46.33 224 64 224V160C64 142.3 78.33 128 96 128V24C96 10.75 106.7 0 120 0zM256 272C238.3 272 224 286.3 224 304V352H288V304C288 286.3 273.7 272 256 272zM224 224H288V192C288 174.3 273.7 160 256 160C238.3 160 224 174.3 224 192V224z" - } - }, - "free": [ - "solid" - ] - }, - "graduation-cap": { - "changes": [ - "4.1.0", - "5.0.0", - "5.2.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f19d", - "aliases": { - "names": [ - "mortar-board" - ], - "unicodes": { - "composite": [ - "1f393" - ], - "secondary": [ - "10f19d" - ] - } - }, - "label": "Graduation Cap", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573249, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M623.1 136.9l-282.7-101.2c-13.73-4.91-28.7-4.91-42.43 0L16.05 136.9C6.438 140.4 0 149.6 0 160s6.438 19.65 16.05 23.09L76.07 204.6c-11.89 15.8-20.26 34.16-24.55 53.95C40.05 263.4 32 274.8 32 288c0 9.953 4.814 18.49 11.94 24.36l-24.83 149C17.48 471.1 25 480 34.89 480H93.11c9.887 0 17.41-8.879 15.78-18.63l-24.83-149C91.19 306.5 96 297.1 96 288c0-10.29-5.174-19.03-12.72-24.89c4.252-17.76 12.88-33.82 24.94-47.03l190.6 68.23c13.73 4.91 28.7 4.91 42.43 0l282.7-101.2C633.6 179.6 640 170.4 640 160S633.6 140.4 623.1 136.9zM351.1 314.4C341.7 318.1 330.9 320 320 320c-10.92 0-21.69-1.867-32-5.555L142.8 262.5L128 405.3C128 446.6 213.1 480 320 480c105.1 0 192-33.4 192-74.67l-14.78-142.9L351.1 314.4z" - } - }, - "free": [ - "solid" - ] - }, - "gratipay": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f184", - "label": "Gratipay (Gittip)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm114.6 226.4l-113 152.7-112.7-152.7c-8.7-11.9-19.1-50.4 13.6-72 28.1-18.1 54.6-4.2 68.5 11.9 15.9 17.9 46.6 16.9 61.7 0 13.9-16.1 40.4-30 68.1-11.9 32.9 21.6 22.6 60 13.8 72z" - } - }, - "free": [ - "brands" - ] - }, - "grav": { - "changes": [ - "4.7.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2d6", - "label": "Grav", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M301.1 212c4.4 4.4 4.4 11.9 0 16.3l-9.7 9.7c-4.4 4.7-11.9 4.7-16.6 0l-10.5-10.5c-4.4-4.7-4.4-11.9 0-16.6l9.7-9.7c4.4-4.4 11.9-4.4 16.6 0l10.5 10.8zm-30.2-19.7c3-3 3-7.8 0-10.5-2.8-3-7.5-3-10.5 0-2.8 2.8-2.8 7.5 0 10.5 3.1 2.8 7.8 2.8 10.5 0zm-26 5.3c-3 2.8-3 7.5 0 10.2 2.8 3 7.5 3 10.5 0 2.8-2.8 2.8-7.5 0-10.2-3-3-7.7-3-10.5 0zm72.5-13.3c-19.9-14.4-33.8-43.2-11.9-68.1 21.6-24.9 40.7-17.2 59.8 .8 11.9 11.3 29.3 24.9 17.2 48.2-12.5 23.5-45.1 33.2-65.1 19.1zm47.7-44.5c-8.9-10-23.3 6.9-15.5 16.1 7.4 9 32.1 2.4 15.5-16.1zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-66.2 42.6c2.5-16.1-20.2-16.6-25.2-25.7-13.6-24.1-27.7-36.8-54.5-30.4 11.6-8 23.5-6.1 23.5-6.1 .3-6.4 0-13-9.4-24.9 3.9-12.5 .3-22.4 .3-22.4 15.5-8.6 26.8-24.4 29.1-43.2 3.6-31-18.8-59.2-49.8-62.8-22.1-2.5-43.7 7.7-54.3 25.7-23.2 40.1 1.4 70.9 22.4 81.4-14.4-1.4-34.3-11.9-40.1-34.3-6.6-25.7 2.8-49.8 8.9-61.4 0 0-4.4-5.8-8-8.9 0 0-13.8 0-24.6 5.3 11.9-15.2 25.2-14.4 25.2-14.4 0-6.4-.6-14.9-3.6-21.6-5.4-11-23.8-12.9-31.7 2.8 .1-.2 .3-.4 .4-.5-5 11.9-1.1 55.9 16.9 87.2-2.5 1.4-9.1 6.1-13 10-21.6 9.7-56.2 60.3-56.2 60.3-28.2 10.8-77.2 50.9-70.6 79.7 .3 3 1.4 5.5 3 7.5-2.8 2.2-5.5 5-8.3 8.3-11.9 13.8-5.3 35.2 17.7 24.4 15.8-7.2 29.6-20.2 36.3-30.4 0 0-5.5-5-16.3-4.4 27.7-6.6 34.3-9.4 46.2-9.1 8 3.9 8-34.3 8-34.3 0-14.7-2.2-31-11.1-41.5 12.5 12.2 29.1 32.7 28 60.6-.8 18.3-15.2 23-15.2 23-9.1 16.6-43.2 65.9-30.4 106 0 0-9.7-14.9-10.2-22.1-17.4 19.4-46.5 52.3-24.6 64.5 26.6 14.7 108.8-88.6 126.2-142.3 34.6-20.8 55.4-47.3 63.9-65 22 43.5 95.3 94.5 101.1 59z" - } - }, - "free": [ - "brands" - ] - }, - "greater-than": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "3e", - "aliases": { - "unicodes": { - "composite": [ - "f531" - ], - "primary": [ - "f531" - ], - "secondary": [ - "10f531", - "103e" - ] - } - }, - "label": "Greater Than", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573250, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M32.03 448c-11.75 0-23.05-6.469-28.66-17.69c-7.906-15.81-1.5-35.03 14.31-42.94l262.8-131.4L17.69 124.6C1.875 116.7-4.531 97.51 3.375 81.7c7.891-15.81 27.06-22.19 42.94-14.31l320 160C377.2 232.8 384 243.9 384 256c0 12.12-6.844 23.19-17.69 28.63l-320 160C41.72 446.9 36.83 448 32.03 448z" - } - }, - "free": [ - "solid" - ] - }, - "greater-than-equal": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f532", - "aliases": { - "unicodes": { - "secondary": [ - "10f532" - ] - } - }, - "label": "Greater Than Equal To", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573249, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M34.28 331.9c5.016 12.53 17.03 20.12 29.73 20.12c3.953 0 7.969-.7187 11.88-2.281l320-127.1C408 216.9 416 205.1 416 192s-7.969-24.85-20.11-29.72l-320-128c-16.47-6.594-35.05 1.406-41.61 17.84C27.72 68.55 35.7 87.17 52.11 93.73l245.7 98.28L52.11 290.3C35.7 296.9 27.72 315.5 34.28 331.9zM416 416H32c-17.67 0-32 14.31-32 31.99s14.33 32.01 32 32.01h384c17.67 0 32-14.32 32-32.01S433.7 416 416 416z" - } - }, - "free": [ - "solid" - ] - }, - "grip": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f58d", - "aliases": { - "names": [ - "grip-horizontal" - ], - "unicodes": { - "secondary": [ - "10f58d" - ] - } - }, - "label": "Grip", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573250, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M128 184C128 206.1 110.1 224 88 224H40C17.91 224 0 206.1 0 184V136C0 113.9 17.91 96 40 96H88C110.1 96 128 113.9 128 136V184zM128 376C128 398.1 110.1 416 88 416H40C17.91 416 0 398.1 0 376V328C0 305.9 17.91 288 40 288H88C110.1 288 128 305.9 128 328V376zM160 136C160 113.9 177.9 96 200 96H248C270.1 96 288 113.9 288 136V184C288 206.1 270.1 224 248 224H200C177.9 224 160 206.1 160 184V136zM288 376C288 398.1 270.1 416 248 416H200C177.9 416 160 398.1 160 376V328C160 305.9 177.9 288 200 288H248C270.1 288 288 305.9 288 328V376zM320 136C320 113.9 337.9 96 360 96H408C430.1 96 448 113.9 448 136V184C448 206.1 430.1 224 408 224H360C337.9 224 320 206.1 320 184V136zM448 376C448 398.1 430.1 416 408 416H360C337.9 416 320 398.1 320 376V328C320 305.9 337.9 288 360 288H408C430.1 288 448 305.9 448 328V376z" - } - }, - "free": [ - "solid" - ] - }, - "grip-lines": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7a4", - "aliases": { - "unicodes": { - "secondary": [ - "10f7a4" - ] - } - }, - "label": "Grip Lines", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573250, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 288C433.7 288 448 302.3 448 320C448 337.7 433.7 352 416 352H32C14.33 352 0 337.7 0 320C0 302.3 14.33 288 32 288H416zM416 160C433.7 160 448 174.3 448 192C448 209.7 433.7 224 416 224H32C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H416z" - } - }, - "free": [ - "solid" - ] - }, - "grip-lines-vertical": { - "changes": [ - "5.6.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7a5", - "aliases": { - "unicodes": { - "secondary": [ - "10f7a5" - ] - } - }, - "label": "Grip Lines Vertical", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573250, - "raw": "", - "viewBox": [ - 0, - 0, - 192, - 512 - ], - "width": 192, - "height": 512, - "path": "M64 448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448V64C0 46.33 14.33 32 32 32C49.67 32 64 46.33 64 64V448zM192 448C192 465.7 177.7 480 160 480C142.3 480 128 465.7 128 448V64C128 46.33 142.3 32 160 32C177.7 32 192 46.33 192 64V448z" - } - }, - "free": [ - "solid" - ] - }, - "grip-vertical": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f58e", - "aliases": { - "unicodes": { - "secondary": [ - "10f58e" - ] - } - }, - "label": "Grip Vertical", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573250, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M88 352C110.1 352 128 369.9 128 392V440C128 462.1 110.1 480 88 480H40C17.91 480 0 462.1 0 440V392C0 369.9 17.91 352 40 352H88zM280 352C302.1 352 320 369.9 320 392V440C320 462.1 302.1 480 280 480H232C209.9 480 192 462.1 192 440V392C192 369.9 209.9 352 232 352H280zM40 320C17.91 320 0 302.1 0 280V232C0 209.9 17.91 192 40 192H88C110.1 192 128 209.9 128 232V280C128 302.1 110.1 320 88 320H40zM280 192C302.1 192 320 209.9 320 232V280C320 302.1 302.1 320 280 320H232C209.9 320 192 302.1 192 280V232C192 209.9 209.9 192 232 192H280zM40 160C17.91 160 0 142.1 0 120V72C0 49.91 17.91 32 40 32H88C110.1 32 128 49.91 128 72V120C128 142.1 110.1 160 88 160H40zM280 32C302.1 32 320 49.91 320 72V120C320 142.1 302.1 160 280 160H232C209.9 160 192 142.1 192 120V72C192 49.91 209.9 32 232 32H280z" - } - }, - "free": [ - "solid" - ] - }, - "gripfire": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ac", - "label": "Gripfire, Inc.", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M112.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4 .4 3.3 .6 6.7 .6 10C179.1 110.1 32 171.9 32 286.6c0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z" - } - }, - "free": [ - "brands" - ] - }, - "group-arrows-rotate": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f6", - "label": "Group Arrows-rotate", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573250, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M159.7 89.85C159.9 91.87 159.1 93.93 159.1 96C159.1 131.3 131.3 160 95.1 160C93.92 160 91.87 159.9 89.85 159.7C82.34 172.6 76.29 186.5 71.94 201.1C66.9 218.1 49.08 227.7 32.15 222.7C15.21 217.6 5.562 199.8 10.6 182.9C17.01 161.4 26.15 141 37.64 122.3C34.02 114.3 31.1 105.4 31.1 96C31.1 60.65 60.65 32 95.1 32C105.4 32 114.3 34.02 122.3 37.64C141 26.16 161.4 17.01 182.9 10.61C199.8 5.566 217.6 15.21 222.7 32.15C227.7 49.09 218.1 66.91 201.1 71.95C186.5 76.3 172.6 82.34 159.7 89.85V89.85zM389.7 37.64C397.7 34.02 406.6 32 415.1 32C451.3 32 479.1 60.65 479.1 96C479.1 105.4 477.1 114.3 474.4 122.3C485.8 141 494.1 161.4 501.4 182.9C506.4 199.8 496.8 217.6 479.8 222.7C462.9 227.7 445.1 218.1 440.1 201.1C435.7 186.5 429.7 172.6 422.1 159.7C420.1 159.9 418.1 160 416 160C380.7 160 352 131.3 352 96C352 93.93 352.1 91.87 352.3 89.85C339.4 82.34 325.5 76.3 310.9 71.95C293.9 66.91 284.3 49.09 289.3 32.15C294.4 15.21 312.2 5.566 329.1 10.61C350.6 17.01 370.1 26.16 389.7 37.64L389.7 37.64zM89.85 352.3C91.87 352.1 93.92 352 95.1 352C131.3 352 159.1 380.7 159.1 416C159.1 418.1 159.9 420.1 159.7 422.2C172.6 429.7 186.5 435.7 201.1 440.1C218.1 445.1 227.7 462.9 222.7 479.9C217.6 496.8 199.8 506.4 182.9 501.4C161.4 494.1 141 485.8 122.3 474.4C114.3 477.1 105.4 480 95.1 480C60.65 480 31.1 451.3 31.1 416C31.1 406.6 34.02 397.7 37.64 389.7C26.15 370.1 17.01 350.6 10.6 329.1C5.562 312.2 15.21 294.4 32.15 289.3C49.08 284.3 66.9 293.9 71.94 310.9C76.29 325.5 82.34 339.4 89.85 352.3L89.85 352.3zM474.4 389.7C477.1 397.7 479.1 406.6 479.1 416C479.1 451.3 451.3 480 415.1 480C406.6 480 397.7 477.1 389.7 474.4C370.1 485.8 350.6 494.1 329.1 501.4C312.2 506.4 294.4 496.8 289.3 479.9C284.3 462.9 293.9 445.1 310.9 440.1C325.5 435.7 339.4 429.7 352.3 422.2C352.1 420.1 351.1 418.1 351.1 416C351.1 380.7 380.7 352 415.1 352C418.1 352 420.1 352.1 422.2 352.3C429.7 339.4 435.7 325.5 440.1 310.9C445.1 293.9 462.9 284.3 479.8 289.3C496.8 294.4 506.4 312.2 501.4 329.1C494.1 350.6 485.8 370.1 474.4 389.7H474.4zM192.8 256.8C192.8 281.6 206.9 303.2 227.7 313.8C239.5 319.9 244.2 334.3 238.2 346.1C232.1 357.9 217.7 362.6 205.9 356.6C169.7 338.1 144.8 300.4 144.8 256.8C144.8 227.9 155.7 201.6 173.7 181.7L162.5 170.6C155.1 163.1 160.6 152.8 169.9 152.8H230.4C236.1 152.8 240.8 157.5 240.8 163.2V223.7C240.8 232.1 229.6 237.6 223 231L207.7 215.7C198.4 226.8 192.8 241.1 192.8 256.8V256.8zM275.4 165.9C281.5 154.1 295.9 149.4 307.7 155.4C343.9 173.9 368.8 211.6 368.8 255.2C368.8 284.1 357.8 310.5 339.9 330.3L351 341.5C357.6 348 352.1 359.2 343.7 359.2H283.2C277.5 359.2 272.8 354.6 272.8 348.8V288.3C272.8 279 284 274.4 290.6 280.1L305.9 296.3C315.2 285.2 320.8 270.9 320.8 255.2C320.8 230.4 306.6 208.8 285.9 198.2C274.1 192.1 269.4 177.7 275.4 165.9V165.9z" - } - }, - "free": [ - "solid" - ] - }, - "grunt": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ad", - "label": "Grunt", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M61.3 189.3c-1.1 10 5.2 19.1 5.2 19.1 .7-7.5 2.2-12.8 4-16.6 .4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1h-.1c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zm142.1 45.8c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8h-.1c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zM160 418.5h-29.4c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8 .6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zm189.2-101.2c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6 .6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1 .4-4.7 .8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2C184.6 10.1 177.2 26 175 40.4c-7.6-5.4-6.7-23.1-7.2-27.6-7.5 .9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5L6 46.9l12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3 .2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7 .3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7 .5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6C143 504.3 163 512 192.2 512h.2c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM305.7 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2 .8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.6 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6 .7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4 .1-6.6 .5-9 .9zm44.7 40.1c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7C65 89.5 64.5 83.4 64 77c-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4 .3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.1 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6 .9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7 .2 .2 .4 .3 .4 .3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1 .4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5 .6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9 .7 .6 1.5 1.2 2.2 1.8l.5 .4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6 .9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7h-117c-4.4 0-8.3 .3-11.7 .7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM34.8 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zM192 498.2c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2 .9-23.1 2.9-3.3 9.5-7.2 24.6-7.2h118.8c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6 .9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM191.9 187.7h.2c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7h-29.4c-4.2 0-7.2 .9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z" - } - }, - "free": [ - "brands" - ] - }, - "guarani-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e19a", - "label": "Guarani Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573250, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 32V66.66C263.5 73.3 299 92.03 326.4 118.9C339 131.3 339.2 151.5 326.9 164.1C314.5 176.8 294.2 176.1 281.6 164.6C265.8 149.1 246.1 137.7 224 132V224H352C369.7 224 384 238.3 384 256C384 351.1 314.8 430.1 224 445.3V480C224 497.7 209.7 512 192 512C174.3 512 160 497.7 160 480V445.3C69.19 430.1 0 351.1 0 256C0 160.9 69.19 81.89 160 66.65V32C160 14.33 174.3 0 192 0C209.7 0 224 14.33 224 32H224zM160 132C104.8 146.2 64 196.4 64 256C64 315.6 104.8 365.8 160 379.1V132zM224 379.1C268.1 368.4 304.4 332.1 315.1 288H224V379.1z" - } - }, - "free": [ - "solid" - ] - }, - "guilded": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e07e", - "label": "Guilded", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M443.4 64H4.571c0 103.3 22.19 180.1 43.42 222.4C112 414.1 224 448 225.3 448a312.8 312.8 0 0 0 140.6-103.5c25.91-33.92 53.1-87.19 65.92-145.8H171.8c4.14 36.43 22.18 67.95 45.1 86.94h88.59c-17.01 28.21-48.19 54.4-80.46 69.48-31.23-13.26-69.09-46.54-96.55-98.36-26.73-53.83-27.09-105.9-27.09-105.9H437.6A625.9 625.9 0 0 0 443.4 64z" - } - }, - "free": [ - "brands" - ] - }, - "guitar": { - "changes": [ - "5.6.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7a6", - "aliases": { - "unicodes": { - "secondary": [ - "10f7a6" - ] - } - }, - "label": "Guitar", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573251, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.7 39.02L473 9.37c-12.5-12.5-32.74-12.49-45.24 .0106l-46.24 46.37c-3.875 3.875-6.848 8.506-8.598 13.76l-12.19 36.51L284.5 182.3C272.4 173.5 259 166.5 244.4 163.1C211 155.4 177.4 162.3 154.5 185.1C145.3 194.5 138.3 206 134.3 218.6C128.3 237.1 111.1 251.3 92.14 253C68.52 255.4 46.39 264.5 29.52 281.5c-45.62 45.5-37.38 127.5 18.12 183c55.37 55.38 137.4 63.51 182.9 18c16.1-16.88 26.25-38.85 28.5-62.72c1.75-18.75 15.84-36.16 34.47-42.16c12.5-3.875 24.03-10.87 33.4-20.25c22.87-22.88 29.75-56.38 21.1-89.76c-3.375-14.63-10.39-27.99-19.14-40.11l76.25-76.26l36.53-12.17c5.125-1.75 9.894-4.715 13.77-8.59l46.36-46.29C515.2 71.72 515.2 51.52 502.7 39.02zM208 352c-26.5 0-48-21.5-48-48c0-26.5 21.5-48 48-48s47.1 21.5 47.1 48C256 330.5 234.5 352 208 352z" - } - }, - "free": [ - "solid" - ] - }, - "gulp": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ae", - "label": "Gulp", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M209.8 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zm-196-253.3l13.6 125.5c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7 .9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3 .2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5 .9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9 .1-1.8 .3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6 .8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5 .6 .2 1.1 .4 1.6 .7 2.6 1.8 1.6 4.5 .3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3 .5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4 .5 3.2 1.5 1.7 2.2 1.3 4.5 .4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9 .9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2 .4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3 .5-.4 .9-.6 .6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3 .8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7 .2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3 .9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3 .2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8 .1 26.3 .4l12.6-48.7L228.1 .6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1 .1L185.9 74l-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2 .8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2 .1-.3l.2-.7c-1.8 .6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7 .1 13.9-1.6 13.9-3.7z" - } - }, - "free": [ - "brands" - ] - }, - "gun": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e19b", - "label": "Gun", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573251, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 64h-16V56C528 42.74 517.3 32 504 32S480 42.74 480 56V64H43.17C19.33 64 0 83.33 0 107.2v89.66C0 220.7 19.33 240 43.17 240c21.26 0 36.61 20.35 30.77 40.79l-40.69 158.4C27.41 459.6 42.76 480 64.02 480h103.8c14.29 0 26.84-9.469 30.77-23.21L226.4 352h94.58c24.16 0 45.5-15.41 53.13-38.28L398.6 240h36.1c8.486 0 16.62-3.369 22.63-9.373L480 208h64c17.67 0 32-14.33 32-32V96C576 78.33 561.7 64 544 64zM328.5 298.6C327.4 301.8 324.4 304 320.9 304H239.1L256 240h92.02L328.5 298.6zM480 160H64V128h416V160z" - } - }, - "free": [ - "solid" - ] - }, - "h": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "48", - "aliases": { - "unicodes": { - "composite": [ - "68" - ] - } - }, - "label": "H", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573251, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 64.01v384c0 17.67-14.33 32-32 32s-32-14.33-32-32v-192H64v192c0 17.67-14.33 32-32 32s-32-14.33-32-32v-384C0 46.34 14.33 32.01 32 32.01S64 46.34 64 64.01v128h256v-128c0-17.67 14.33-32 32-32S384 46.34 384 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "hacker-news": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d4", - "label": "Hacker News", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32v448h448V32H0zm21.2 197.2H21c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z" - } - }, - "free": [ - "brands" - ] - }, - "hackerrank": { - "changes": [ - "5.2.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5f7", - "label": "Hackerrank", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572482, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M477.5 128C463 103.1 285.1 0 256.2 0S49.25 102.8 34.84 128s-14.49 230.8 0 256 192.4 128 221.3 128S463 409.1 477.5 384s14.51-231 .01-256zM316.1 414.2c-4 0-40.91-35.77-38-38.69 .87-.87 6.26-1.48 17.55-1.83 0-26.23 .59-68.59 .94-86.32 0-2-.44-3.43-.44-5.85h-79.93c0 7.1-.46 36.2 1.37 72.88 .23 4.54-1.58 6-5.74 5.94-10.13 0-20.27-.11-30.41-.08-4.1 0-5.87-1.53-5.74-6.11 .92-33.44 3-84-.15-212.7v-3.17c-9.67-.35-16.38-1-17.26-1.84-2.92-2.92 34.54-38.69 38.49-38.69s41.17 35.78 38.27 38.69c-.87 .87-7.9 1.49-16.77 1.84v3.16c-2.42 25.75-2 79.59-2.63 105.4h80.26c0-4.55 .39-34.74-1.2-83.64-.1-3.39 .95-5.17 4.21-5.2 11.07-.08 22.15-.13 33.23-.06 3.46 0 4.57 1.72 4.5 5.38C333 354.6 336 341.3 336 373.7c8.87 .35 16.82 1 17.69 1.84 2.88 2.91-33.62 38.69-37.58 38.69z" - } - }, - "free": [ - "brands" - ] - }, - "hammer": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6e3", - "aliases": { - "unicodes": { - "composite": [ - "1f528" - ], - "secondary": [ - "10f6e3" - ] - } - }, - "label": "Hammer", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573251, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M568.1 196.3l-22.62-22.62c-4.533-4.533-10.56-7.029-16.97-7.029s-12.44 2.496-16.97 7.029l-5.654 5.656l-20.12-20.12c4.596-23.46-2.652-47.9-19.47-64.73l-45.25-45.25C390.2 17.47 347.1 0 303.1 0C258.2 0 216 17.47 184.3 49.21L176.5 57.05L272.5 105.1v13.81c0 18.95 7.688 37.5 21.09 50.91l49.16 49.14c13.44 13.45 31.39 20.86 50.54 20.86c4.758 0 9.512-.4648 14.18-1.387l20.12 20.12l-5.654 5.654c-9.357 9.357-9.357 24.58-.002 33.94l22.62 22.62c4.535 4.533 10.56 7.031 16.97 7.031s12.44-2.498 16.97-7.031l90.53-90.5C578.3 220.8 578.3 205.6 568.1 196.3zM270.9 192.4c-3.846-3.846-7.197-8.113-10.37-12.49l-239.5 209.2c-28.12 28.12-28.16 73.72-.0371 101.8C35.12 505 53.56 512 71.1 512s36.84-7.031 50.91-21.09l209.1-239.4c-4.141-3.061-8.184-6.289-11.89-9.996L270.9 192.4z" - } - }, - "free": [ - "solid" - ] - }, - "hamsa": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f665", - "aliases": { - "unicodes": { - "secondary": [ - "10f665" - ] - } - }, - "label": "Hamsa", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573251, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M509.4 307.2C504.3 295.5 492.8 288 480 288h-64l.0001-208c0-21.1-18-40-40-40c-22 0-40 18-40 40l-.0001 134C336 219.5 331.5 224 326 224h-20c-5.5 0-10-4.5-10-9.1V40c0-21.1-17.1-40-39.1-40S215.1 18 215.1 40v174C215.1 219.5 211.5 224 205.1 224H185.1C180.5 224 175.1 219.5 175.1 214L175.1 80c0-21.1-18-40-40-40S95.1 58 95.1 80L95.1 288H31.99C19.24 288 7.743 295.5 2.618 307.2C-2.382 318.9-.1322 332.5 8.618 341.9l102.6 110C146.1 490.1 199.8 512 256 512s108.1-21.88 144.8-60.13l102.6-110C512.1 332.5 514.4 318.9 509.4 307.2zM256 416c-53 0-96.01-64-96.01-64s43-64 96.01-64s96.01 64 96.01 64S309 416 256 416zM256 320c-17.63 0-32 14.38-32 32s14.38 32 32 32s32-14.38 32-32S273.6 320 256 320z" - } - }, - "free": [ - "solid" - ] - }, - "hand": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f256", - "aliases": { - "names": [ - "hand-paper" - ], - "unicodes": { - "composite": [ - "1f91a", - "270b" - ], - "secondary": [ - "10f256" - ] - } - }, - "label": "Paper (Hand)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 128v208c0 97.05-78.95 176-176 176h-37.72c-53.42 0-103.7-20.8-141.4-58.58l-113.1-113.1C3.906 332.5 0 322.2 0 312C0 290.7 17.15 272 40 272c10.23 0 20.47 3.906 28.28 11.72L128 343.4V64c0-17.67 14.33-32 32-32s32 14.33 32 32l.0729 176C192.1 248.8 199.2 256 208 256s16.07-7.164 16.07-16L224 32c0-17.67 14.33-32 32-32s32 14.33 32 32l.0484 208c0 8.836 7.111 16 15.95 16S320 248.8 320 240L320 64c0-17.67 14.33-32 32-32s32 14.33 32 32l.0729 176c0 8.836 7.091 16 15.93 16S416 248.8 416 240V128c0-17.67 14.33-32 32-32S480 110.3 480 128z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M408 80c-3.994 0-7.91 .3262-11.73 .9551c-9.586-28.51-36.57-49.11-68.27-49.11c-6.457 0-12.72 .8555-18.68 2.457C296.6 13.73 273.9 0 248 0C222.1 0 199.3 13.79 186.6 34.44C180.7 32.85 174.5 32 168.1 32C128.4 32 96.01 64.3 96.01 104v121.6C90.77 224.6 85.41 224 80.01 224c-.0026 0 .0026 0 0 0C36.43 224 0 259.2 0 304.1c0 20.29 7.558 39.52 21.46 54.45l81.25 87.24C141.9 487.9 197.4 512 254.9 512h33.08C393.9 512 480 425.9 480 320V152C480 112.3 447.7 80 408 80zM432 320c0 79.41-64.59 144-143.1 144H254.9c-44.41 0-86.83-18.46-117.1-50.96l-79.76-85.63c-6.202-6.659-9.406-15.4-9.406-23.1c0-22.16 18.53-31.4 31.35-31.4c8.56 0 17.1 3.416 23.42 10.18l26.72 28.69C131.8 312.7 133.9 313.4 135.9 313.4c4.106 0 8.064-3.172 8.064-8.016V104c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152C192 264.8 199.2 272 208 272s15.1-7.163 15.1-15.1L224 72c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v184C272 264.8 279.2 272 288 272s15.99-7.164 15.99-15.1l.0077-152.2c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24v152.2C352 264.8 359.2 272 368 272s15.1-7.163 15.1-15.1V152c0-13.25 10.75-24 23.1-24c13.25 0 23.1 10.75 23.1 24V320z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-back-fist": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f255", - "aliases": { - "names": [ - "hand-rock" - ], - "unicodes": { - "secondary": [ - "10f255" - ] - } - }, - "label": "Rock (Hand)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573251, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 144v120.4C448 314.2 422.6 358.1 384 384v128H128v-128l-53.19-38.67C48 325.8 32 294.3 32 261.2V192c0-14.58 6.625-28.38 17.1-37.48L80 130.5V176C80 184.8 87.16 192 96 192s16-7.164 16-16v-128C112 21.48 133.5 0 160 0c25.38 0 45.96 19.77 47.67 44.73C216.2 36.9 227.5 32 240 32C266.5 32 288 53.48 288 80v5.531C296.6 72.57 311.3 64 328 64c23.47 0 42.94 16.87 47.11 39.14C382.4 98.7 390.9 96 400 96C426.5 96 448 117.5 448 144z" - }, - "regular": { - "last_modified": 1658443573056, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M377.1 68.05C364.4 50.65 343.7 40 321.2 40h-13.53c-3.518 0-7.039 .2754-10.53 .8184C284.8 31.33 269.6 26 253.5 26H240c-3.977 0-7.904 .3691-11.75 1.084C216.7 10.71 197.6 0 176 0H160C124.7 0 96 28.65 96 64v49.71L63.04 143.3C43.3 160 32 184.6 32 210.9v78.97c0 32.1 17.11 61.65 44.65 77.12L112 386.9v101.1C112 501.3 122.7 512 135.1 512S160 501.3 160 488v-129.9c-1.316-.6543-2.775-.9199-4.062-1.639l-55.78-31.34C87.72 318.2 80 304.6 80 289.9V210.9c0-12.31 5.281-23.77 14.5-31.39L112 163.8V208C112 216.8 119.2 224 128 224s16-7.156 16-16V64c0-8.828 7.188-16 16-16h16C184.8 48 192 55.17 192 64v16c0 9.578 7.942 16.04 16.15 16.04c6.432 0 12.31-4.018 14.73-10.17C223.3 84.84 228.3 74 240 74h13.53c20.97 0 17.92 19.58 34.27 19.58c8.177 0 9.9-5.584 19.88-5.584h13.53c25.54 0 18.27 28.23 38.66 28.23c.1562 0 .3125-.002 .4668-.0078L375.4 116C388.1 116 400 127.7 400 142V272c0 36.15-19.54 67.32-48 83.69v132.3C352 501.3 362.7 512 375.1 512S400 501.3 400 488v-108.1C430.1 352.8 448 313.6 448 272V142C448 102.1 416.8 69.44 377.1 68.05z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-dots": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f461", - "aliases": { - "names": [ - "allergies" - ], - "unicodes": { - "secondary": [ - "10f461" - ] - } - }, - "label": "Hand dots", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 96c-17.67 0-32 14.33-32 32v112C416 248.8 408.8 256 400 256s-15.93-7.164-15.93-16L384 64c0-17.67-14.33-32-32-32s-32 14.33-32 32l.0498 176c0 8.836-7.219 16-16.06 16s-15.95-7.164-15.95-16L288 32c0-17.67-14.33-32-32-32S224 14.33 224 32l.0729 208C224.1 248.8 216.8 256 208 256S192.1 248.8 192.1 240L192 64c0-17.67-14.33-32-32-32S128 46.33 128 64v279.4L68.28 283.7C60.47 275.9 50.23 272 40 272C18.68 272 0 289.2 0 312c0 10.23 3.906 20.47 11.72 28.28l113.1 113.1C162.6 491.2 212.9 512 266.3 512H304c97.05 0 176-78.95 176-176V128C480 110.3 465.7 96 448 96zM192 416c-8.836 0-16-7.164-16-16C176 391.2 183.2 384 192 384s16 7.162 16 16C208 408.8 200.8 416 192 416zM256 448c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16s16 7.162 16 16C272 440.8 264.8 448 256 448zM256 352c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16s16 7.162 16 16C272 344.8 264.8 352 256 352zM320 384c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16s16 7.162 16 16C336 376.8 328.8 384 320 384zM352 448c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16s16 7.162 16 16C368 440.8 360.8 448 352 448zM384 352c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16s16 7.162 16 16C400 344.8 392.8 352 384 352z" - } - }, - "free": [ - "solid" - ] - }, - "hand-fist": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6de", - "aliases": { - "names": [ - "fist-raised" - ], - "unicodes": { - "composite": [ - "270a" - ], - "secondary": [ - "10f6de" - ] - } - }, - "label": "Raised Fist", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 180.4V32c0-17.67-14.31-32-32-32S160 14.33 160 32v144h40C208.5 176 216.5 177.7 224 180.4zM128 176V64c0-17.67-14.31-32-32-32S64 46.33 64 64v112.8C66.66 176.5 69.26 176 72 176H128zM288 192c17.69 0 32-14.33 32-32V64c0-17.67-14.31-32-32-32s-32 14.33-32 32v96C256 177.7 270.3 192 288 192zM384 96c-17.69 0-32 14.33-32 32v64c0 17.67 14.31 32 32 32s32-14.34 32-32.02V128C416 110.3 401.7 96 384 96zM350.9 246.2c-12.43-7.648-21.94-19.31-26.88-33.25C313.7 219.9 301.3 223.9 288 223.9c-7.641 0-14.87-1.502-21.66-3.957C269.1 228.6 272 238.1 272 248c0 39.77-32.25 72-72 72H128c-8.836 0-16-7.164-16-16C112 295.2 119.2 288 128 288h72c22.09 0 40-17.91 40-40S222.1 208 200 208h-128C49.91 208 32 225.9 32 248v63.41c0 33.13 16 64.56 42.81 84.13L128 434.2V512h224v-85.09c38.3-24.09 64-66.42 64-114.9V247.1C406.6 252.6 395.7 256 384 256C371.7 256 360.5 252.2 350.9 246.2z" - } - }, - "free": [ - "solid" - ] - }, - "hand-holding": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4bd", - "aliases": { - "unicodes": { - "secondary": [ - "10f4bd" - ] - } - }, - "label": "Hand Holding", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M559.7 392.2l-135.1 99.51C406.9 504.8 385 512 362.1 512H15.1c-8.749 0-15.1-7.246-15.1-15.99l0-95.99c0-8.748 7.25-16.02 15.1-16.02l55.37 .0238l46.5-37.74c20.1-16.1 47.12-26.25 74.12-26.25h159.1c19.5 0 34.87 17.37 31.62 37.37c-2.625 15.75-17.37 26.62-33.37 26.62H271.1c-8.749 0-15.1 7.249-15.1 15.1s7.25 15.1 15.1 15.1h120.6l119.7-88.17c17.8-13.19 42.81-9.342 55.93 8.467C581.3 354.1 577.5 379.1 559.7 392.2z" - } - }, - "free": [ - "solid" - ] - }, - "hand-holding-dollar": { - "changes": [ - "5.0.9", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4c0", - "aliases": { - "names": [ - "hand-holding-usd" - ], - "unicodes": { - "secondary": [ - "10f4c0" - ] - } - }, - "label": "Hand holding dollar", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M568.2 336.3c-13.12-17.81-38.14-21.66-55.93-8.469l-119.7 88.17h-120.6c-8.748 0-15.1-7.25-15.1-15.99c0-8.75 7.25-16 15.1-16h78.25c15.1 0 30.75-10.88 33.37-26.62c3.25-20-12.12-37.38-31.62-37.38H191.1c-26.1 0-53.12 9.25-74.12 26.25l-46.5 37.74L15.1 383.1C7.251 383.1 0 391.3 0 400v95.98C0 504.8 7.251 512 15.1 512h346.1c22.03 0 43.92-7.188 61.7-20.27l135.1-99.52C577.5 379.1 581.3 354.1 568.2 336.3zM279.3 175C271.7 173.9 261.7 170.3 252.9 167.1L248 165.4C235.5 160.1 221.8 167.5 217.4 179.1s2.121 26.2 14.59 30.64l4.655 1.656c8.486 3.061 17.88 6.095 27.39 8.312V232c0 13.25 10.73 24 23.98 24s24-10.75 24-24V221.6c25.27-5.723 42.88-21.85 46.1-45.72c8.688-50.05-38.89-63.66-64.42-70.95L288.4 103.1C262.1 95.64 263.6 92.42 264.3 88.31c1.156-6.766 15.3-10.06 32.21-7.391c4.938 .7813 11.37 2.547 19.65 5.422c12.53 4.281 26.21-2.312 30.52-14.84s-2.309-26.19-14.84-30.53c-7.602-2.627-13.92-4.358-19.82-5.721V24c0-13.25-10.75-24-24-24s-23.98 10.75-23.98 24v10.52C238.8 40.23 221.1 56.25 216.1 80.13C208.4 129.6 256.7 143.8 274.9 149.2l6.498 1.875c31.66 9.062 31.15 11.89 30.34 16.64C310.6 174.5 296.5 177.8 279.3 175z" - } - }, - "free": [ - "solid" - ] - }, - "hand-holding-droplet": { - "changes": [ - "5.0.9", - "5.13.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4c1", - "aliases": { - "names": [ - "hand-holding-water" - ], - "unicodes": { - "secondary": [ - "10f4c1" - ] - } - }, - "label": "Hand holding droplet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M287.1 256c53 0 95.1-42.13 95.1-93.1c0-40-57.12-120.8-83.25-155.6c-6.375-8.5-19.12-8.5-25.5 0C249.1 41.25 191.1 122 191.1 162C191.1 213.9 234.1 256 287.1 256zM568.2 336.3c-13.12-17.81-38.14-21.66-55.93-8.469l-119.7 88.17h-120.6c-8.748 0-15.1-7.25-15.1-15.99c0-8.75 7.25-16 15.1-16h78.25c15.1 0 30.75-10.88 33.37-26.62c3.25-20-12.12-37.38-31.62-37.38H191.1c-26.1 0-53.12 9.25-74.12 26.25l-46.5 37.74L15.1 383.1c-8.748 0-15.1 7.274-15.1 16.02L.0001 496C.0001 504.8 7.251 512 15.1 512h346.1c22.03 0 43.92-7.188 61.7-20.27l135.1-99.52C577.5 379.1 581.3 354.1 568.2 336.3z" - } - }, - "free": [ - "solid" - ] - }, - "hand-holding-hand": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f7", - "label": "Hand Holding-hand", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M328.7 52.28L431.7 119.8C449.5 132.9 453.3 157.9 440.2 175.7C427.1 193.5 402.1 197.3 384.3 184.2L296.6 127.1H191.1C183.2 127.1 175.1 135.2 175.1 143.1C175.1 152.7 183.2 159.1 191.1 159.1H254.2C270.2 159.1 284.1 170.9 287.6 186.6C290.8 206.6 275.5 223.1 255.1 223.1H143.1C116.1 223.1 90.87 214.7 69.87 197.7L23.37 159.1L15.1 160C7.25 160 0 152.7 0 143.1V47.99C0 39.25 7.25 32 15.1 32H266.1C289 32 310.9 39.19 328.7 52.28L328.7 52.28zM151.3 459.7L16.27 360.2C-1.509 347.1-5.305 322.1 7.803 304.3C20.93 286.5 45.94 282.7 63.74 295.8L183.4 384H304C312.8 384 320 376.8 320 368C320 359.3 312.8 352 304 352H225.8C209.8 352 195 341.1 192.4 325.4C189.2 305.4 204.5 288 224 288H352C379 288 405.1 297.3 426.1 314.3L472.6 352L496 352C504.7 352 512 359.3 512 368V464C512 472.8 504.7 480 496 480H213C190.1 480 169.1 472.8 151.3 459.7V459.7z" - } - }, - "free": [ - "solid" - ] - }, - "hand-holding-heart": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4be", - "aliases": { - "unicodes": { - "secondary": [ - "10f4be" - ] - } - }, - "label": "Hand Holding Heart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M275.2 250.5c7 7.375 18.5 7.375 25.5 0l108.1-114.2c31.5-33.12 29.72-88.1-5.65-118.7c-30.88-26.75-76.75-21.9-104.9 7.724L287.1 36.91L276.8 25.28C248.7-4.345 202.7-9.194 171.1 17.56C136.7 48.18 134.7 103.2 166.4 136.3L275.2 250.5zM568.2 336.3c-13.12-17.81-38.14-21.66-55.93-8.469l-119.7 88.17h-120.6c-8.748 0-15.1-7.25-15.1-15.1c0-8.746 7.25-15.1 15.1-15.1h78.25c15.1 0 30.75-10.87 33.37-26.62c3.25-19.1-12.12-37.37-31.62-37.37H191.1c-26.1 0-53.12 9.25-74.12 26.25l-46.5 37.74l-55.37-.0253c-8.748 0-15.1 7.275-15.1 16.02L.0001 496C.0001 504.8 7.251 512 15.1 512h346.1c22.03 0 43.92-7.187 61.7-20.28l135.1-99.51C577.5 379.1 581.3 354.1 568.2 336.3z" - } - }, - "free": [ - "solid" - ] - }, - "hand-holding-medical": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e05c", - "aliases": { - "unicodes": { - "secondary": [ - "10e05c" - ] - } - }, - "label": "Hand Holding Medical Cross", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573252, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M568.2 336.3c-13.12-17.81-38.14-21.66-55.93-8.469l-119.7 88.17h-120.6c-8.748 0-15.1-7.25-15.1-15.99c0-8.75 7.25-16 15.1-16h78.25c15.1 0 30.75-10.88 33.37-26.62c3.25-20-12.12-37.38-31.62-37.38H191.1c-26.1 0-53.12 9.25-74.12 26.25l-46.5 37.74L15.1 383.1C7.251 383.1 0 391.3 0 400v95.98C0 504.8 7.251 512 15.1 512h346.1c22.03 0 43.92-7.188 61.7-20.27l135.1-99.52C577.5 379.1 581.3 354.1 568.2 336.3zM160 176h64v64C224 248.8 231.2 256 240 256h64C312.8 256 320 248.8 320 240v-64h64c8.836 0 16-7.164 16-16V96c0-8.838-7.164-16-16-16h-64v-64C320 7.162 312.8 0 304 0h-64C231.2 0 224 7.162 224 16v64H160C151.2 80 144 87.16 144 96v64C144 168.8 151.2 176 160 176z" - } - }, - "free": [ - "solid" - ] - }, - "hand-lizard": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f258", - "aliases": { - "unicodes": { - "secondary": [ - "10f258" - ] - } - }, - "label": "Lizard (Hand)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 329.1V432c0 8.836-7.164 16-16 16H368c-8.836 0-16-7.164-16-16V416l-85.33-64H95.1c-16.47 0-31.44-13.44-31.96-29.9C62.87 285.8 91.96 256 127.1 256h104.9c13.77 0 26-8.811 30.36-21.88l10.67-32C280.9 181.4 265.4 160 243.6 160H63.1C27.95 160-1.129 130.2 .0352 93.9C.5625 77.44 15.53 64 31.1 64h271.2c26.26 0 50.84 12.88 65.79 34.47l128.8 185.1C507 297.8 512 313.7 512 329.1z" - }, - "regular": { - "last_modified": 1658443573057, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 331.8V424c0 13.25-10.75 24-24 24c-13.25 0-24-10.75-24-24v-92.17c0-10.09-3.031-19.8-8.766-28.08l-118.6-170.5C327.4 119.1 312.2 112 295.1 112H53.32c-2.5 0-5.25 2.453-5.313 4.172c-.2969 9.5 3.156 18.47 9.75 25.28C64.36 148.3 73.2 152 82.67 152h161.8c17.09 0 33.4 8.281 43.4 22.14c9.984 13.88 12.73 31.83 7.328 48.05l-9.781 29.34C278.2 273.3 257.8 288 234.9 288H138.7C129.2 288 120.4 291.8 113.8 298.5c-6.594 6.812-10.05 15.78-9.75 25.28C104.1 325.5 106.8 328 109.3 328h156.6c5.188 0 10.14 1.688 14.3 4.797l78.22 58.67c6.031 4.531 9.594 11.66 9.594 19.2L367.1 424c0 13.25-10.75 24-24 24s-24-10.75-24-24v-1.328L257.8 376H109.3c-28.48 0-52.39-22.72-53.28-50.64c-.7187-22.61 7.531-43.98 23.23-60.2C94.1 248.9 116.1 240 138.7 240h96.19c2.297 0 4.328-1.469 5.063-3.656l9.781-29.33c.7031-2.141-.0156-3.797-.7344-4.797C248.2 201.2 246.9 200 244.6 200H82.67c-22.58 0-43.67-8.938-59.39-25.16C7.575 158.6-.6755 137.3 .0433 114.6C.9339 86.72 24.84 64 53.32 64h242.7c31.94 0 61.86 15.67 80.05 41.92l118.6 170.5C506 292.8 512 311.9 512 331.8z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-middle-finger": { - "changes": [ - "5.7.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f806", - "aliases": { - "unicodes": { - "composite": [ - "1f595" - ], - "secondary": [ - "10f806" - ] - } - }, - "label": "Hand with Middle Finger Raised", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 288v96c0 70.69-57.31 128-128 128H184c-50.35 0-97.76-23.7-127.1-63.98l-14.43-19.23C35.37 420.5 32 410.4 32 400v-48.02c0-14.58 6.629-28.37 18.02-37.48L80 290.5V336C80 344.8 87.16 352 96 352s16-7.164 16-16v-96C112 213.5 133.5 192 160 192s48 21.48 48 48V40C208 17.91 225.9 0 248 0S288 17.91 288 40v189.5C296.6 216.6 311.3 208 328 208c23.48 0 42.94 16.87 47.11 39.14C382.4 242.7 390.8 240 400 240C426.5 240 448 261.5 448 288z" - } - }, - "free": [ - "solid" - ] - }, - "hand-peace": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f25b", - "aliases": { - "unicodes": { - "composite": [ - "270c" - ], - "secondary": [ - "10f25b" - ] - } - }, - "label": "Peace (Hand)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 287.4V32c0-17.67-14.31-32-32-32S192 14.33 192 32v216.3C218.7 248.4 243.7 263.1 256 287.4zM170.8 251.2c2.514-.7734 5.043-1.027 7.57-1.516L93.41 51.39C88.21 39.25 76.34 31.97 63.97 31.97c-20.97 0-31.97 18.01-31.97 32.04c0 4.207 .8349 8.483 2.599 12.6l81.97 191.3L170.8 251.2zM416 224c-17.69 0-32 14.33-32 32v64c0 17.67 14.31 32 32 32s32-14.33 32-32V256C448 238.3 433.7 224 416 224zM320 352c17.69 0 32-14.33 32-32V224c0-17.67-14.31-32-32-32s-32 14.33-32 32v96C288 337.7 302.3 352 320 352zM368 361.9C356.3 375.3 339.2 384 320 384c-27.41 0-50.62-17.32-59.73-41.55c-7.059 21.41-23.9 39.23-47.08 46.36l-47.96 14.76c-1.562 .4807-3.147 .7105-4.707 .7105c-6.282 0-12.18-3.723-14.74-9.785c-.8595-2.038-1.264-4.145-1.264-6.213c0-6.79 4.361-13.16 11.3-15.3l46.45-14.29c17.2-5.293 29.76-20.98 29.76-38.63c0-34.19-32.54-40.07-40.02-40.07c-3.89 0-7.848 .5712-11.76 1.772l-104 32c-18.23 5.606-28.25 22.21-28.25 38.22c0 4.266 .6825 8.544 2.058 12.67L68.19 419C86.71 474.5 138.7 512 197.2 512H272c82.54 0 151.8-57.21 170.7-134C434.6 381.8 425.6 384 416 384C396.8 384 379.7 375.3 368 361.9z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M412 160c-8.326 0-16.3 1.51-23.68 4.27C375.1 151.8 358.9 144 340 144c-11.64 0-22.44 3.223-32.03 8.418l11.12-68.95c.6228-3.874 .9243-7.725 .9243-11.53c0-36.08-28.91-71.95-72.09-71.95c-34.68 0-65.31 25.16-71.03 60.54L173.4 82.22L168.9 72.77c-12.4-25.75-38.07-40.78-64.89-40.78c-40.8 0-72.01 33.28-72.01 72.07c0 10.48 2.296 21.11 7.144 31.18L89.05 238.9C64.64 250.4 48 275.7 48 303.1v80c0 22.06 10.4 43.32 27.83 56.86l45.95 35.74c29.35 22.83 65.98 35.41 103.2 35.41l78.81 .0352C400.9 512 480 432.1 480 335.8v-107.5C480 189.6 447.9 160 412 160zM320 212.3C320 201.1 328.1 192 340 192c11.02 0 20 9.078 20 20.25v55.5C360 278.9 351 288 340 288C328.1 288 320 278.9 320 267.8V212.3zM247.9 47.98c12.05 0 24.13 9.511 24.13 23.98c0 1.277-.1022 2.57-.3134 3.871L248.4 220.5C240.7 217.6 232.4 215.1 223.9 215.1c0 0 .002 0 0 0c-4.475 0-8.967 .4199-13.38 1.254l-10.55 1.627l24.32-150.7C226.2 56.42 236.4 47.98 247.9 47.98zM79.1 104c0-13.27 10.79-24.04 24.02-24.04c8.937 0 17.5 5.023 21.61 13.61l61.29 127.3L137.3 228.5L82.38 114.4C80.76 111.1 79.1 107.5 79.1 104zM303.8 464l-78.81-.0352c-26.56 0-52.72-8.984-73.69-25.3l-45.97-35.75C99.47 398.4 96 391.3 96 383.1v-80c0-11.23 7.969-21.11 17.59-23.22l105.3-16.23C220.6 264.2 222.3 263.1 223.9 263.1c11.91 0 24.09 9.521 24.09 24.06c0 11.04-7.513 20.95-17.17 23.09L172.8 319c-12.03 1.633-20.78 11.92-20.78 23.75c0 20.21 18.82 24.08 23.7 24.08c2.645 0 64.61-8.619 65.54-8.826c23.55-5.227 41.51-22.23 49.73-43.64C303.3 327.5 320.6 336 340 336c8.326 0 16.31-1.51 23.69-4.27C376 344.2 393.1 352 412 352c.1992 0 10.08-.4453 18.65-2.92C423.9 413.5 369.9 464 303.8 464zM432 283.8C432 294.9 423 304 412 304c-11.02 0-20-9.078-20-20.25v-55.5C392 217.1 400.1 208 412 208c11.02 0 20 9.078 20 20.25V283.8z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-point-down": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0a7", - "aliases": { - "unicodes": { - "secondary": [ - "10f0a7" - ] - } - }, - "label": "Hand Pointing Down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M256 256v64c0 17.67 14.31 32 32 32s32-14.33 32-32V256c0-17.67-14.31-32-32-32S256 238.3 256 256zM200 272H160V352c0 17.67 14.31 32 32 32s32-14.33 32-32V267.6C216.5 270.3 208.5 272 200 272zM72 272C69.26 272 66.66 271.5 64 271.2V480c0 17.67 14.31 32 32 32s32-14.33 32-32V272H72zM416 288V224c0-17.67-14.31-32-32-32s-32 14.33-32 32v64c0 17.67 14.31 32 32 32S416 305.7 416 288zM384 160c11.72 0 22.55 3.381 32 8.879V136C416 60.89 355.1 0 280 0L191.3 0C162.5 0 134.5 9.107 111.2 26.02L74.81 52.47C48 72.03 32 103.5 32 136.6V200C32 222.1 49.91 240 72 240h128c22.09 0 39.1-17.91 39.1-39.1c0-28.73-26.72-40-42.28-40l-69.72 0C119.2 160 112 152.8 112 144S119.2 128 127.1 128H200c37.87 0 68.59 29.35 71.45 66.51C276.8 193.1 282.2 192 288 192c13.28 0 25.6 4.047 35.83 10.97C332.6 178 356.1 160 384 160z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 248V144C448 64.6 385.1 0 307.7 0H199.8C176.4 0 153.1 6.104 132.5 17.65L76.63 49C49.1 64.47 32 94.02 32 126.1V176c0 27.23 12.51 51.53 32 67.69V440C64 479.7 96.3 512 136 512s72-32.3 72-72v-56.44C210.6 383.9 213.3 384 216 384c25.95 0 48.73-13.79 61.4-34.43C283.3 351.2 289.6 352 296 352c25.95 0 48.73-13.79 61.4-34.43C363.3 319.2 369.6 320 376 320C415.7 320 448 287.7 448 248zM272 232c0-13.23 10.78-24 24-24S320 218.9 320 232.1V280c0 13.23-10.78 24-24 24S272 293.2 272 280V232zM192 264h12c12.39 0 23.93-3.264 34.27-8.545C239.3 258.1 240 260.1 240 264v48c0 13.23-10.78 24-24 24S192 325.2 192 312V264zM112 264c0-.2813 .1504-.5137 .1602-.793C114.8 263.4 117.3 264 120 264H160v176c0 13.23-10.78 24-24 24S112 453.2 112 440V264zM397.9 123.8C390.9 121.6 383.7 120 376 120c-29.04 0-53.96 17.37-65.34 42.18C305.8 161.2 301 160 296 160c-7.139 0-13.96 1.273-20.46 3.355C265.2 133.6 237.2 112 204 112H152C138.8 112 128 122.8 128 136S138.8 160 152 160h52c15.44 0 28 12.56 28 28S219.4 216 204 216H120C97.94 216 80 198.1 80 176V126.1c0-14.77 7.719-28.28 20.16-35.27l55.78-31.34C169.4 51.98 184.6 48 199.8 48h107.9C351.9 48 388.9 80.56 397.9 123.8zM400 248c0 13.23-10.78 24-24 24S352 261.2 352 248V192c0-13.23 10.78-24 24-24S400 178.8 400 192V248z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-point-left": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0a5", - "aliases": { - "unicodes": { - "secondary": [ - "10f0a5" - ] - } - }, - "label": "Hand Pointing Left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 288H192c-17.67 0-32 14.31-32 32s14.33 32 32 32h64c17.67 0 32-14.31 32-32S273.7 288 256 288zM240 232V192H160C142.3 192 128 206.3 128 224s14.33 32 32 32h84.41C241.7 248.5 240 240.5 240 232zM240 104C240 101.3 240.5 98.66 240.8 96H32C14.33 96 0 110.3 0 128s14.33 32 32 32h208V104zM224 448h64c17.67 0 32-14.31 32-32s-14.33-32-32-32H224c-17.67 0-32 14.31-32 32S206.3 448 224 448zM352 416c0 11.72-3.381 22.55-8.879 32H376C451.1 448 512 387.1 512 312V223.3c0-28.76-9.107-56.79-26.02-80.06l-26.45-36.41C439.1 80 408.5 64 375.4 64H312c-22.09 0-40 17.91-40 40v128c0 22.09 17.91 39.1 39.1 39.1c28.73 0 40-26.72 40-42.28L352 159.1C352 151.2 359.2 144 368 144S384 151.2 384 159.1V232c0 37.87-29.35 68.59-66.51 71.45C318.9 308.8 320 314.2 320 320c0 13.28-4.047 25.6-10.97 35.83C333.1 364.6 352 388.1 352 416z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M264 480h104c79.4 0 144-62.95 144-140.3V231.8c0-23.44-6.104-46.73-17.65-67.35L462.1 108.6C447.5 81.1 417.1 64 385.9 64H336c-27.23 0-51.53 12.51-67.69 32H72C32.3 96 0 128.3 0 168S32.3 240 72 240h56.44C128.1 242.6 128 245.3 128 248c0 25.95 13.79 48.73 34.43 61.4C160.8 315.3 160 321.6 160 328c0 25.95 13.79 48.73 34.43 61.4C192.8 395.3 192 401.6 192 408C192 447.7 224.3 480 264 480zM280 304c13.23 0 24 10.78 24 24S293.1 352 279.9 352H232c-13.23 0-24-10.78-24-24S218.8 304 232 304H280zM248 224v12c0 12.39 3.264 23.93 8.545 34.27C253.9 271.3 251 272 248 272h-48C186.8 272 176 261.2 176 248S186.8 224 200 224H248zM248 144c.2813 0 .5137 .1504 .793 .1602C248.6 146.8 248 149.3 248 152V192h-176C58.77 192 48 181.2 48 168S58.77 144 72 144H248zM388.2 429.9C390.4 422.9 392 415.7 392 408c0-29.04-17.37-53.96-42.18-65.34C350.8 337.8 352 333 352 328c0-7.139-1.273-13.96-3.355-20.46C378.4 297.2 400 269.2 400 236V184C400 170.8 389.3 160 376 160S352 170.8 352 184v52c0 15.44-12.56 28-28 28S296 251.4 296 236V152c0-22.06 17.94-40 40-40h49.88c14.77 0 28.28 7.719 35.27 20.16l31.34 55.78C460 201.4 464 216.6 464 231.8v107.9C464 383.9 431.4 420.9 388.2 429.9zM264 432c-13.23 0-24-10.78-24-24S250.8 384 264 384H320c13.23 0 24 10.78 24 24S333.2 432 320 432H264z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-point-right": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0a4", - "aliases": { - "unicodes": { - "secondary": [ - "10f0a4" - ] - } - }, - "label": "Hand Pointing Right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M224 320c0 17.69 14.33 32 32 32h64c17.67 0 32-14.31 32-32s-14.33-32-32-32h-64C238.3 288 224 302.3 224 320zM267.6 256H352c17.67 0 32-14.31 32-32s-14.33-32-32-32h-80v40C272 240.5 270.3 248.5 267.6 256zM272 160H480c17.67 0 32-14.31 32-32s-14.33-32-32-32h-208.8C271.5 98.66 272 101.3 272 104V160zM320 416c0-17.69-14.33-32-32-32H224c-17.67 0-32 14.31-32 32s14.33 32 32 32h64C305.7 448 320 433.7 320 416zM202.1 355.8C196 345.6 192 333.3 192 320c0-5.766 1.08-11.24 2.51-16.55C157.4 300.6 128 269.9 128 232V159.1C128 151.2 135.2 144 143.1 144S160 151.2 159.1 159.1l0 69.72C159.1 245.2 171.3 271.1 200 271.1C222.1 271.1 240 254.1 240 232v-128C240 81.91 222.1 64 200 64H136.6C103.5 64 72.03 80 52.47 106.8L26.02 143.2C9.107 166.5 0 194.5 0 223.3V312C0 387.1 60.89 448 136 448h32.88C163.4 438.6 160 427.7 160 416C160 388.1 178 364.6 202.1 355.8z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 408c0-6.428-.8457-12.66-2.434-18.6C338.2 376.7 352 353.9 352 328c0-6.428-.8457-12.66-2.434-18.6C370.2 296.7 384 273.9 384 248c0-2.705-.1484-5.373-.4414-8H440C479.7 240 512 207.7 512 168S479.7 96 440 96H243.7C227.5 76.51 203.2 64 176 64H126.1C94.02 64 64.47 81.1 49 108.6L17.65 164.5C6.104 185.1 0 208.4 0 231.8v107.9C0 417.1 64.6 480 144 480h104C287.7 480 320 447.7 320 408zM280 304c13.23 0 24 10.78 24 24S293.2 352 280 352H232.1C218.9 352 208 341.2 208 328S218.8 304 232 304H280zM312 224c13.23 0 24 10.78 24 24S325.2 272 312 272h-48c-3.029 0-5.875-.7012-8.545-1.73C260.7 259.9 264 248.4 264 236V224H312zM440 144c13.23 0 24 10.78 24 24S453.2 192 440 192h-176V152c0-2.686-.5566-5.217-.793-7.84C263.5 144.2 263.7 144 264 144H440zM48 339.7V231.8c0-15.25 3.984-30.41 11.52-43.88l31.34-55.78C97.84 119.7 111.4 112 126.1 112H176c22.06 0 40 17.94 40 40v84c0 15.44-12.56 28-28 28S160 251.4 160 236V184C160 170.8 149.3 160 136 160S112 170.8 112 184v52c0 33.23 21.58 61.25 51.36 71.54C161.3 314 160 320.9 160 328c0 5.041 1.166 9.836 2.178 14.66C137.4 354 120 378.1 120 408c0 7.684 1.557 14.94 3.836 21.87C80.56 420.9 48 383.9 48 339.7zM192 432c-13.23 0-24-10.78-24-24S178.8 384 192 384h56c13.23 0 24 10.78 24 24s-10.77 24-24 24H192z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-point-up": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0a6", - "aliases": { - "unicodes": { - "composite": [ - "261d" - ], - "secondary": [ - "10f0a6" - ] - } - }, - "label": "Hand Pointing Up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M288 288c17.69 0 32-14.33 32-32V192c0-17.67-14.31-32-32-32s-32 14.33-32 32v64C256 273.7 270.3 288 288 288zM224 244.4V160c0-17.67-14.31-32-32-32S160 142.3 160 160v80h40C208.5 240 216.5 241.7 224 244.4zM128 240V32c0-17.67-14.31-32-32-32S64 14.33 64 32v208.8C66.66 240.5 69.26 240 72 240H128zM384 192c-17.69 0-32 14.33-32 32v64c0 17.67 14.31 32 32 32s32-14.33 32-32V224C416 206.3 401.7 192 384 192zM323.8 309C313.6 315.1 301.3 320 288 320c-5.766 0-11.24-1.08-16.55-2.51C268.6 354.6 237.9 384 200 384H127.1C119.2 384 112 376.8 112 368S119.2 352 127.1 352l69.72 .0001c15.52 0 42.28-11.29 42.28-40C239.1 289.9 222.1 272 200 272h-128C49.91 272 32 289.9 32 312v63.41c0 33.13 16 64.56 42.81 84.13l36.41 26.45C134.5 502.9 162.5 512 191.3 512H280c75.11 0 136-60.89 136-136v-32.88C406.6 348.6 395.7 352 384 352C356.1 352 332.6 333.1 323.8 309z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M376 192c-6.428 0-12.66 .8457-18.6 2.434C344.7 173.8 321.9 160 296 160c-6.428 0-12.66 .8457-18.6 2.434C264.7 141.8 241.9 128 216 128C213.3 128 210.6 128.1 208 128.4V72C208 32.3 175.7 0 136 0S64 32.3 64 72v196.3C44.51 284.5 32 308.8 32 336v49.88c0 32.1 17.1 61.65 44.63 77.12l55.83 31.35C153.1 505.9 176.4 512 199.8 512h107.9C385.1 512 448 447.4 448 368V264C448 224.3 415.7 192 376 192zM272 232c0-13.23 10.78-24 24-24S320 218.8 320 232v47.91C320 293.1 309.2 304 296 304S272 293.2 272 280V232zM192 200C192 186.8 202.8 176 216 176s24 10.77 24 24v48c0 3.029-.7012 5.875-1.73 8.545C227.9 251.3 216.4 248 204 248H192V200zM112 72c0-13.23 10.78-24 24-24S160 58.77 160 72v176H120c-2.686 0-5.217 .5566-7.84 .793C112.2 248.5 112 248.3 112 248V72zM307.7 464H199.8c-15.25 0-30.41-3.984-43.88-11.52l-55.78-31.34C87.72 414.2 80 400.6 80 385.9V336c0-22.06 17.94-40 40-40h84c15.44 0 28 12.56 28 28S219.4 352 204 352H152C138.8 352 128 362.8 128 376s10.75 24 24 24h52c33.23 0 61.25-21.58 71.54-51.36C282 350.7 288.9 352 296 352c5.041 0 9.836-1.166 14.66-2.178C322 374.6 346.1 392 376 392c7.684 0 14.94-1.557 21.87-3.836C388.9 431.4 351.9 464 307.7 464zM400 320c0 13.23-10.78 24-24 24S352 333.2 352 320V264c0-13.23 10.78-24 24-24s24 10.77 24 24V320z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-pointer": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f25a", - "aliases": { - "unicodes": { - "secondary": [ - "10f25a" - ] - } - }, - "label": "Pointer (Hand)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 224c-9.148 0-17.62 2.697-24.89 7.143C370.9 208.9 351.5 192 328 192c-17.38 0-32.46 9.33-40.89 23.17C282.1 192.9 263.5 176 240 176c-12.35 0-23.49 4.797-32 12.46V40c0-22.09-17.9-40-39.1-40C145.9 0 128 17.91 128 40v322.7L72 288C64.15 277.5 52.13 272 39.97 272c-21.22 0-39.97 17.06-39.97 40.02c0 8.356 2.608 16.78 8.005 23.98l91.22 121.6C124.8 491.7 165.5 512 208 512h96C383.4 512 448 447.4 448 368v-96C448 245.5 426.5 224 400 224zM240 400c0 8.844-7.156 16-16 16s-16-7.156-16-16v-96C208 295.2 215.2 288 224 288s16 7.156 16 16V400zM304 400c0 8.844-7.156 16-16 16s-16-7.156-16-16v-96C272 295.2 279.2 288 288 288s16 7.156 16 16V400zM368 400c0 8.844-7.156 16-16 16s-16-7.156-16-16v-96C336 295.2 343.2 288 352 288s16 7.156 16 16V400z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M208 288C199.2 288 192 295.2 192 304v96C192 408.8 199.2 416 208 416s16-7.164 16-16v-96C224 295.2 216.8 288 208 288zM272 288C263.2 288 256 295.2 256 304v96c0 8.836 7.162 16 15.1 16S288 408.8 288 400l-.0013-96C287.1 295.2 280.8 288 272 288zM376.9 201.2c-13.74-17.12-34.8-27.45-56.92-27.45h-13.72c-3.713 0-7.412 .291-11.07 .8652C282.7 165.1 267.4 160 251.4 160h-11.44V72c0-39.7-32.31-72-72.01-72c-39.7 0-71.98 32.3-71.98 72v168.5C84.85 235.1 75.19 235.4 69.83 235.4c-44.35 0-69.83 37.23-69.83 69.85c0 14.99 4.821 29.51 13.99 41.69l78.14 104.2C120.7 489.3 166.2 512 213.7 512h109.7c6.309 0 12.83-.957 18.14-2.645c28.59-5.447 53.87-19.41 73.17-40.44C436.1 446.3 448 416.2 448 384.2V274.3C448 234.6 416.3 202.3 376.9 201.2zM400 384.2c0 19.62-7.219 38.06-20.44 52.06c-12.53 13.66-29.03 22.67-49.69 26.56C327.4 463.6 325.3 464 323.4 464H213.7c-32.56 0-63.65-15.55-83.18-41.59L52.36 318.2C49.52 314.4 48.02 309.8 48.02 305.2c0-16.32 14.5-21.75 21.72-21.75c4.454 0 12.01 1.55 17.34 8.703l28.12 37.5c3.093 4.105 7.865 6.419 12.8 6.419c11.94 0 16.01-10.7 16.01-16.01V72c0-13.23 10.78-24 23.1-24c13.22 0 24 10.77 24 24v130.7c0 6.938 5.451 16.01 16.03 16.01C219.5 218.7 220.1 208 237.7 208h13.72c21.5 0 18.56 19.21 34.7 19.21c8.063 0 9.805-5.487 20.15-5.487h13.72c26.96 0 17.37 27.43 40.77 27.43l14.07-.0037c13.88 0 25.16 11.28 25.16 25.14V384.2zM336 288C327.2 288 320 295.2 320 304v96c0 8.836 7.164 16 16 16s16-7.164 16-16v-96C352 295.2 344.8 288 336 288z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-scissors": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f257", - "aliases": { - "unicodes": { - "secondary": [ - "10f257" - ] - } - }, - "label": "Scissors (Hand)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 192v111.1C512 383.4 447.4 448 368 448H288c-26.52 0-48-21.48-48-47.99c0-9.152 2.697-17.61 7.139-24.89C224.9 370.1 208 351.5 208 328c0-16.72 8.561-31.4 21.52-39.1H40c-22.09 0-40-17.9-40-39.99s17.91-39.1 40-39.1h229.5L60 142.2C42.93 136.8 31.99 121.1 31.99 104c0-3.973 .5967-8.014 1.851-12.01c5.35-17.07 21.08-28.04 38.06-28.04c4 0 8.071 .6085 12.09 1.889l279.2 87.22C364.8 153.6 366.4 153.8 368 153.8c6.812 0 13.12-4.375 15.27-11.23c.4978-1.588 .7346-3.195 .7346-4.777c0-6.807-4.388-13.12-11.23-15.25l-72.54-22.67l14.29-17.85C323.6 70.67 337.4 64.04 352 64.04h48c10.39 0 20.48 3.359 28.8 9.592l38.41 28.79c25.2 18.91 40.53 47.97 43.55 79.04C511.5 184.9 512 188.4 512 192z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M270.1 480h97.92C447.4 480 512 417.1 512 339.7V231.8c0-23.45-6.106-46.73-17.66-67.33l-31.35-55.85C447.5 81.1 417.1 64 385.9 64h-46.97c-26.63 0-51.56 11.63-68.4 31.93l-15.46 18.71L127.3 68.44C119 65.46 110.5 64.05 102.1 64.05c-30.02 0-58.37 18.06-69.41 47.09C15.06 156.8 46.19 194 76.75 204.9l2.146 .7637L68.79 206.4C30.21 209 0 241.2 0 279.3c0 39.7 33.27 72.09 73.92 72.09c1.745 0 3.501-.0605 5.268-.1833l88.79-6.135v8.141c0 22.11 10.55 43.11 28.05 56.74C197.4 448.8 230.2 480 270.1 480zM269.1 432c-14.34 0-26-11.03-26-24.62c0 0 .0403-14.31 .0403-14.71c0-6.894-4.102-14.2-10.67-16.39c-10.39-3.5-17.38-12.78-17.38-23.06v-13.53c0-16.98 13.7-16.4 13.7-29.89c0-9.083-7.392-15.96-15.96-15.96c-.3646 0-.7311 .0125-1.099 .0377c0 0-138.1 9.505-138.7 9.505c-14.32 0-25.93-11.04-25.93-24.49c0-13.28 10.7-23.74 24.1-24.64l163.2-11.28c2.674-.1882 14.92-2.907 14.92-16.18c0-6.675-4.284-12.58-10.65-14.85L92.84 159.7C85.39 156.1 75.97 149.4 75.97 136.7c0-11.14 9.249-24.66 25.97-24.66c3.043 0 6.141 .5115 9.166 1.59l234.1 85.03c1.801 .6581 3.644 .9701 5.456 .9701c8.96 0 16-7.376 16-15.1c0-6.514-4.068-12.69-10.59-15.04l-64.81-23.47l15.34-18.56C315.2 117.3 326.6 112 338.9 112h46.97c14.77 0 28.28 7.719 35.27 20.16L452.5 188c7.531 13.41 11.52 28.56 11.52 43.81v107.9c0 50.91-43.06 92.31-96 92.31H269.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hand-sparkles": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e05d", - "aliases": { - "unicodes": { - "secondary": [ - "10e05d" - ] - } - }, - "label": "Hand Sparkles", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M448 432c0-14.25 8.547-28.14 21.28-34.55l39.56-16.56l15.64-37.52c4.461-9.037 11.45-15.37 19.43-19.23L544 128c0-17.67-14.33-32-32-32s-32 14.33-32 32l-.0156 112c0 8.836-7.148 16-15.98 16s-16.07-7.164-16.07-16L448 64c0-17.67-14.33-32-32-32s-32 14.33-32 32l-.0635 176c0 8.836-7.106 16-15.94 16S351.9 248.8 351.9 240L352 32c0-17.67-14.33-32-32-32S288 14.33 288 32L287.9 240C287.9 248.8 280.8 256 272 256S255.9 248.8 255.9 240L256 64c0-17.67-14.33-32-32-32S192 46.33 192 64v279.4L132.3 283.7C124.5 275.9 114.2 272 104 272C82.68 272 64 289.2 64 312c0 10.23 3.906 20.47 11.72 28.28l113.1 113.1C226.6 491.2 276.9 512 330.3 512H368c42.72 0 81.91-15.32 112.4-40.73l-9.049-3.773C456.6 460.1 448 446.3 448 432zM349.8 371.6L320 383.1l-12.42 29.78C306.1 415 305.4 416 304 416s-2.969-.9941-3.578-2.219L288 383.1l-29.79-12.42C256.1 370.1 256 369.4 256 367.1c0-1.365 .9922-2.967 2.209-3.577L288 352l12.42-29.79C301 320.1 302.6 320 304 320s2.967 .9902 3.578 2.217L320 352l29.79 12.42C351 365 352 366.6 352 367.1C352 369.4 351 370.1 349.8 371.6zM80 224c2.277 0 4.943-1.656 5.959-3.699l20.7-49.63l49.65-20.71c2.027-1.014 3.682-3.696 3.686-5.958C159.1 141.7 158.3 139.1 156.3 138L106.7 117.4L85.96 67.7C84.94 65.65 82.28 64 80 64C77.72 64 75.05 65.65 74.04 67.7L53.34 117.3L3.695 138C1.668 139.1 .0117 141.7 .0078 143.1c.0039 2.262 1.662 4.953 3.688 5.967l49.57 20.67l20.77 49.67C75.05 222.3 77.72 224 80 224zM639.1 432c-.0039-2.275-1.657-4.952-3.687-5.968l-49.57-20.67l-20.77-49.67C564.9 353.7 562.3 352 560 352c-2.281 0-4.959 1.652-5.975 3.695l-20.7 49.63l-49.64 20.71c-2.027 1.016-3.682 3.683-3.686 5.958c.0039 2.262 1.661 4.954 3.686 5.968l49.57 20.67l20.77 49.67C555.1 510.3 557.7 512 560 512c2.277 0 4.933-1.656 5.949-3.699l20.7-49.63l49.65-20.71C638.3 436.9 639.1 434.3 639.1 432z" - } - }, - "free": [ - "solid" - ] - }, - "hand-spock": { - "changes": [ - "4.4.0", - "5.0.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f259", - "aliases": { - "unicodes": { - "composite": [ - "1f596" - ], - "secondary": [ - "10f259" - ] - } - }, - "label": "Spock (Hand)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M543.6 128.6c0-8.999-6.115-32.58-31.68-32.58c-14.1 0-27.02 9.324-30.92 23.56l-34.36 125.1c-1.682 6.16-7.275 10.43-13.66 10.43c-7.981 0-14.16-6.518-14.16-14.13c0-.9844 .1034-1.987 .3197-2.996l35.71-166.6c.5233-2.442 .7779-4.911 .7779-7.362c0-13.89-9.695-32.86-31.7-32.86c-14.79 0-28.12 10.26-31.34 25.29l-37.77 176.2c-2.807 13.1-14.38 22.46-27.77 22.46c-13.04 0-24.4-8.871-27.56-21.52l-52.11-208.5C243.6 11.2 230.5-.0013 215.6-.0013c-26.71 0-31.78 25.71-31.78 31.98c0 2.569 .3112 5.18 .9617 7.786l50.55 202.2c.2326 .9301 .3431 1.856 .3431 2.764c0 6.051-4.911 11.27-11.3 11.27c-4.896 0-9.234-3.154-10.74-7.812L166.9 103.9C162.4 89.1 149.5 80.02 135.5 80.02c-15.68 0-31.63 12.83-31.63 31.97c0 3.273 .5059 6.602 1.57 9.884l69.93 215.7c.2903 .8949 .4239 1.766 .4239 2.598c0 4.521-3.94 7.915-8.119 7.915c-1.928 0-3.906-.7219-5.573-2.388L101.7 285.3c-8.336-8.336-19.63-12.87-30.81-12.87c-23.56 0-39.07 19.69-39.07 39.55c0 10.23 3.906 20.47 11.72 28.28l122.5 122.5C197.6 494.3 240.3 512 284.9 512h50.98c23.5 0 108.4-14.57 132.5-103l73.96-271.2C543.2 134.8 543.6 131.7 543.6 128.6z" - }, - "regular": { - "last_modified": 1658443573058, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M234.9 48.02c10.43 0 20.72 5.834 24.13 19.17l47.33 184.1c2.142 8.456 9.174 12.62 16.21 12.62c7.326 0 14.66-4.505 16.51-13.37l31.72-155.1c2.921-14.09 13.76-20.57 24.67-20.57c13.01 0 26.14 9.19 26.14 25.62c0 2.19-.2333 4.508-.7313 6.951l-28.48 139.2c-.2389 1.156-.3514 2.265-.3514 3.323c0 8.644 7.504 13.9 14.86 13.9c5.869 0 11.65-3.341 13.46-10.98l24.73-104.2c.2347-.9802 4.12-19.76 24.28-19.76c13.21 0 26.64 9.4 26.64 24.79c0 2.168-.2665 4.455-.8378 6.852l-48.06 204.7c-13.59 57.85-65.15 98.74-124.5 98.74l-48.79-.0234c-40.7-.0196-79.86-15.58-109.5-43.51l-75.93-71.55c-5.938-5.584-8.419-11.1-8.419-18.2c0-13.88 12.45-26.69 26.38-26.69c5.756 0 11.76 2.182 17.26 7.376l51.08 48.14c1.682 1.569 3.599 2.249 5.448 2.249c4.192 0 8.04-3.49 8.04-8.001c0-23.76-3.372-47.39-10.12-70.28L142 161.1C141.2 159.1 140.8 156.3 140.8 153.7c0-15.23 13.48-24.82 26.75-24.82c10.11 0 20.1 5.559 23.94 18.42l31.22 105.8c2.231 7.546 8.029 10.8 13.9 10.8c7.752 0 15.64-5.659 15.64-14.57c0-1.339-.1783-2.752-.562-4.23L209.3 80.06C208.7 77.45 208.3 74.97 208.3 72.62C208.3 57.33 221.7 48.02 234.9 48.02zM234.9 0C201.5 0 160.4 25.24 160.4 72.72c0 2.807 .1579 5.632 .4761 8.463C129.9 83.9 92.84 108.9 92.84 153.8c0 7.175 1.038 14.47 3.148 21.68l24.33 81.94C115.8 256.5 111.1 256 106.4 256C65.74 256 32 290.6 32 330.8c0 19.59 8.162 38.58 23.6 53.1l75.89 71.51c38.68 36.45 89.23 56.53 142.3 56.56L322.6 512c82.1 0 152.5-55.83 171.3-135.8l48.06-204.7C543.3 165.7 544 159.7 544 153.9c0-54.55-49.55-72.95-74.59-72.95c-.7689 0-1.534 .0117-2.297 .0352c-10.49-39.43-46.46-54.11-71.62-54.11c-34.1 0-64.45 24.19-71.63 58.83L319.2 108.5l-13.7-53.29C297.1 22.22 268.7 0 234.9 0z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "handcuffs": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f8", - "label": "Handcuffs", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M304 32C304 49.67 289.7 64 272 64C254.3 64 240 49.67 240 32C240 14.33 254.3 0 272 0C289.7 0 304 14.33 304 32zM160 80C160 62.33 174.3 48 192 48C209.7 48 224 62.33 224 80C224 97.67 209.7 112 192 112C174.3 112 160 97.67 160 80zM160 128C177.7 128 192 142.3 192 160H200C213.3 160 224 170.7 224 184V200C224 201.7 223.8 203.4 223.5 205.1C280.3 229.6 320 286.2 320 352C320 440.4 248.4 512 160 512C71.63 512 0 440.4 0 352C0 286.2 39.74 229.6 96.54 205.1C96.19 203.4 96 201.7 96 200V184C96 170.7 106.7 160 120 160H128C128 142.3 142.3 128 160 128zM160 448C213 448 256 405 256 352C256 298.1 213 256 160 256C106.1 256 64 298.1 64 352C64 405 106.1 448 160 448zM337.6 278.9C354.5 246.1 382.5 219.8 416.5 205.1C416.2 203.4 416 201.7 416 199.1V183.1C416 170.7 426.7 159.1 440 159.1H448C448 142.3 462.3 127.1 480 127.1C497.7 127.1 512 142.3 512 159.1H520C533.3 159.1 544 170.7 544 183.1V199.1C544 201.7 543.8 203.4 543.5 205.1C600.3 229.6 640 286.2 640 352C640 440.4 568.4 512 480 512C417.1 512 364.2 476.7 337.6 425.1C346.9 402.5 352 377.9 352 352C352 326.1 346.9 301.5 337.6 278.9V278.9zM480 256C426.1 256 384 298.1 384 352C384 405 426.1 448 480 448C533 448 576 405 576 352C576 298.1 533 256 480 256zM336 32C336 14.33 350.3 0 368 0C385.7 0 400 14.33 400 32C400 49.67 385.7 64 368 64C350.3 64 336 49.67 336 32zM416 80C416 62.33 430.3 48 448 48C465.7 48 480 62.33 480 80C480 97.67 465.7 112 448 112C430.3 112 416 97.67 416 80z" - } - }, - "free": [ - "solid" - ] - }, - "hands": { - "changes": [ - "4.6.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2a7", - "aliases": { - "names": [ - "sign-language", - "signing" - ], - "unicodes": { - "secondary": [ - "10f2a7" - ] - } - }, - "label": "Hands", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M330.8 242.3L223.1 209.1C210.3 205.2 197 212.3 193.1 224.9C189.2 237.6 196.3 251 208.9 254.9L256 272H56.9c-11.61 0-22.25 7.844-24.44 19.24C29.51 306.6 41.19 320 56 320h128C188.4 320 192 323.6 192 328S188.4 336 184 336H24.9c-11.61 0-22.25 7.844-24.44 19.24C-2.49 370.6 9.193 384 24 384h160C188.4 384 192 387.6 192 392S188.4 400 184 400H56.9c-11.61 0-22.25 7.844-24.44 19.24C29.51 434.6 41.19 448 56 448h128C188.4 448 192 451.6 192 456S188.4 464 184 464H88.9c-11.61 0-22.25 7.844-24.44 19.24C61.51 498.6 73.19 512 88 512h208c66.28 0 120-53.73 120-120v-32.03C416 306.6 381.1 259.4 330.8 242.3zM197.1 179.5c5.986-2.148 12.32-3.482 18.98-3.482c5.508 0 10.99 .8105 16.5 2.471l16.11 4.975L227.7 117.2C224.2 106.2 213.6 98.39 202 99.74c-15.51 1.807-24.79 16.99-20.33 31.11L197.1 179.5zM487.1 144.5c-13.27 .0977-23.95 10.91-23.86 24.16l-2.082 50.04l-59.98-189.8c-3.496-11.07-14.18-18.86-25.71-17.51c-15.51 1.807-24.79 16.99-20.33 31.11l38.56 122.1c1.332 4.213-1.004 8.707-5.219 10.04c-4.213 1.332-8.707-1.004-10.04-5.217l-47.93-151.7c-3.496-11.07-14.18-18.86-25.71-17.51c-15.51 1.807-24.79 16.99-20.33 31.11l43.37 137.8c1.33 4.213-1.006 8.707-5.219 10.04c-4.213 1.332-8.707-1.004-10.04-5.217l-33.46-106.4C275.6 56.39 264.9 48.6 253.4 49.94c-15.51 1.807-24.79 16.99-20.33 31.11l34.15 108.1l73.7 22.76C404.1 233.3 448 292.8 448 359.9v27.91c38.27-21.17 63.28-61.24 64-106.7V168.4C511.8 155.1 500.3 144.5 487.1 144.5z" - } - }, - "free": [ - "solid" - ] - }, - "hands-asl-interpreting": { - "changes": [ - "4.6.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2a3", - "aliases": { - "names": [ - "american-sign-language-interpreting", - "asl-interpreting", - "hands-american-sign-language-interpreting" - ], - "unicodes": { - "secondary": [ - "10f2a3" - ] - } - }, - "label": "Hands american sign language interpreting", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573253, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M200 240c16.94 0 32.09 10.72 37.73 26.67c5.891 16.66 24.17 25.39 40.84 19.5c16.66-5.891 25.39-24.17 19.5-40.84C287.2 214.7 262.8 191.6 233.1 181.5l79.68-22.76c16.98-4.859 26.83-22.56 21.97-39.56C329.9 102.2 312.2 92.35 295.2 97.24L196 125.6l80.82-69.28c13.42-11.5 14.97-31.7 3.469-45.12C268.8-2.24 248.6-3.803 235.2 7.713l-100.4 86.09l22.33-48.39c7.391-16.05 .3906-35.06-15.66-42.47C125.4-4.412 106.4 2.525 98.94 18.6L14.92 206.6C5.082 228.6 0 252.5 0 276.6C0 335.9 48.1 384 107.4 384l99.9-.0064c31.87-2.289 61.15-19.35 79.13-46.18c9.828-14.69 5.891-34.56-8.781-44.41C263 283.6 243.1 287.5 233.3 302.2C225.8 313.3 213.4 320 200 320c-22.06 0-40-17.94-40-40C160 257.9 177.9 240 200 240zM532.6 128l-99.9 .004c-31.87 2.289-61.15 19.35-79.13 46.18c-9.828 14.69-5.891 34.56 8.781 44.41c14.66 9.812 34.55 5.906 44.41-8.781C414.2 198.7 426.6 191.1 440 191.1c22.06 0 40 17.94 40 40c0 22.06-17.94 39.1-40 39.1c-16.94 0-32.09-10.72-37.73-26.67c-5.891-16.66-24.17-25.39-40.84-19.5c-16.66 5.891-25.39 24.17-19.5 40.84c10.84 30.64 35.23 53.77 64.96 63.8l-79.68 22.76c-16.98 4.859-26.83 22.56-21.97 39.56c4.844 16.98 22.56 26.86 39.56 21.97l99.2-28.34l-80.82 69.28c-13.42 11.5-14.97 31.7-3.469 45.12c11.52 13.42 31.73 14.98 45.13 3.469l100.4-86.09l-22.33 48.39c-7.391 16.05-.3906 35.06 15.66 42.47c16.02 7.359 35.05 .4219 42.47-15.65l84.02-188C634.9 283.4 640 259.5 640 235.4C640 176.1 591.9 128 532.6 128z" - } - }, - "free": [ - "solid" - ] - }, - "hands-bound": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4f9", - "label": "Hands Bound", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M95.1 144.8L165.3 237.2C170.1 244.7 181.4 246.8 189.6 242C199.3 236.3 201.7 223.3 194.6 214.5L167 179.1C156.2 166.4 158.1 146.7 171.4 135.5C184.6 124.4 204.4 125.8 215.9 138.7L262.6 191.3C278.1 209.7 287.1 233.4 287.1 258.1V352H352V258.1C352 233.4 361 209.7 377.4 191.3L424.1 138.7C435.6 125.8 455.4 124.4 468.6 135.5C481.9 146.7 483.8 166.4 472.1 179.1L445.4 214.5C438.3 223.3 440.7 236.3 450.4 242C458.6 246.8 469 244.7 474.7 237.2L544 144.8V32C544 14.33 558.3 0 576 0C593.7 0 608 14.33 608 32V213.9C608 228 602.9 241.8 593.7 252.5L508.4 352H512C525.3 352 536 362.7 536 376C536 389.3 525.3 400 512 400H128C114.7 400 104 389.3 104 376C104 362.7 114.7 352 128 352H131.6L46.31 252.5C37.07 241.8 32 228 32 213.9V32C32 14.33 46.33 0 64 0C81.67 0 96 14.33 96 32L95.1 144.8zM127.1 480C114.7 480 103.1 469.3 103.1 456C103.1 442.7 114.7 432 127.1 432H512C525.3 432 536 442.7 536 456C536 469.3 525.3 480 512 480H480V512H352V480H287.1V512H159.1V480H127.1z" - } - }, - "free": [ - "solid" - ] - }, - "hands-bubbles": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e05e", - "aliases": { - "names": [ - "hands-wash" - ], - "unicodes": { - "secondary": [ - "10e05e" - ] - } - }, - "label": "Hands bubbles", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M416 64c17.67 0 32-14.33 32-31.1c0-17.67-14.33-32-32-32c-17.67 0-32 14.33-32 32C384 49.67 398.3 64 416 64zM519.1 336H360c-4.418 0-8-3.582-8-8s3.582-8 8-8h128c14.81 0 26.49-13.42 23.54-28.76c-2.191-11.4-12.84-19.24-24.44-19.24H288l47.09-17.06c12.66-3.906 19.75-17.34 15.84-30.03c-3.938-12.62-17.28-19.69-30.03-15.84L213.2 242.3C162 259.4 128 306.6 128 359.1v25.65c36.47 7.434 64 39.75 64 78.38c0 10.71-2.193 20.91-6.031 30.25C204.1 505.3 225.2 512 248 512h208c14.81 0 26.49-13.42 23.54-28.76c-2.191-11.4-12.84-19.24-24.44-19.24H360c-4.418 0-8-3.582-8-8s3.582-8 8-8h128c14.81 0 26.49-13.42 23.54-28.76c-2.191-11.4-12.84-19.24-24.44-19.24H360c-4.418 0-8-3.582-8-8s3.582-8 8-8h160c14.81 0 26.49-13.42 23.54-28.76C541.3 343.8 530.7 336 519.1 336zM311.5 178.4c5.508-1.66 10.99-2.471 16.5-2.471c6.662 0 12.1 1.334 18.98 3.482l15.36-48.61c4.461-14.12-4.82-29.3-20.33-31.11c-11.53-1.344-22.21 6.443-25.71 17.51l-20.9 66.17L311.5 178.4zM496 224c26.51 0 48-21.49 48-47.1s-21.49-48-48-48S448 149.5 448 176S469.5 224 496 224zM93.65 386.3C94.45 386.1 95.19 385.8 96 385.6v-25.69c0-67.17 43.03-126.7 107.1-148l73.7-22.76l34.15-108.1c4.459-14.12-4.82-29.3-20.33-31.11C279.1 48.6 268.4 56.39 264.9 67.46L231.4 173.9c-1.332 4.213-5.826 6.549-10.04 5.217C217.2 177.8 214.8 173.3 216.2 169.1l43.37-137.8c4.461-14.12-4.82-29.3-20.33-31.11c-11.53-1.344-22.21 6.445-25.71 17.51L165.6 169.4C164.2 173.6 159.7 175.9 155.5 174.6C151.3 173.3 148.1 168.8 150.3 164.6l38.56-122.1c4.459-14.12-4.82-29.3-20.33-31.11C157 10.04 146.3 17.83 142.8 28.9L82.84 218.7L80.76 168.7C80.85 155.5 70.17 144.6 56.9 144.5C43.67 144.5 32.18 155.1 32 168.4v112.7C32.71 325.6 56.76 364.8 93.65 386.3zM112 416c-26.51 0-48 21.49-48 47.1s21.49 48 48 48S160 490.5 160 464S138.5 416 112 416z" - } - }, - "free": [ - "solid" - ] - }, - "hands-clapping": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1a8", - "label": "Hands Clapping", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 96c8.844 0 16-7.156 16-16v-64C336 7.156 328.8 0 320 0s-16 7.156-16 16v64C304 88.84 311.2 96 320 96zM383.4 96c5.125 0 10.16-2.453 13.25-7.016l32.56-48c1.854-2.746 2.744-5.865 2.744-8.951c0-8.947-7.273-16.04-15.97-16.04c-5.125 0-10.17 2.465-13.27 7.02l-32.56 48C368.3 73.76 367.4 76.88 367.4 79.97C367.4 88.88 374.7 96 383.4 96zM384 357.5l0-163.9c0-6.016-4.672-33.69-32-33.69c-17.69 0-32.07 14.33-32.07 31.1L320 268.1L169.2 117.3C164.5 112.6 158.3 110.3 152.2 110.3c-13.71 0-24 11.21-24 24c0 6.141 2.344 12.28 7.031 16.97l89.3 89.3C227.4 243.4 228.9 247.2 228.9 251c0 3.8-1.45 7.6-4.349 10.5c-2.899 2.899-6.7 4.349-10.5 4.349c-3.8 0-7.6-1.45-10.5-4.349l-107.6-107.6C91.22 149.2 85.08 146.9 78.94 146.9c-13.71 0-24 11.21-24 24c0 6.141 2.344 12.28 7.031 16.97l107.6 107.6C172.5 298.4 173.9 302.2 173.9 305.1c0 3.8-1.45 7.6-4.349 10.5c-2.899 2.9-6.7 4.349-10.5 4.349c-3.8 0-7.6-1.45-10.5-4.349L59.28 227.2C54.59 222.5 48.45 220.1 42.31 220.1c-13.71 0-24 11.21-24 24c0 6.141 2.344 12.28 7.031 16.97l89.3 89.3c2.9 2.899 4.349 6.7 4.349 10.5c0 3.8-1.45 7.6-4.349 10.5c-2.899 2.899-6.7 4.349-10.5 4.349c-3.8 0-7.6-1.45-10.5-4.349L40.97 318.7C36.28 314 30.14 311.7 24 311.7c-13.71 0-23.99 11.26-23.99 24.05c0 6.141 2.332 12.23 7.02 16.92C112.6 458.2 151.3 512 232.3 512C318.1 512 384 440.9 384 357.5zM243.3 88.98C246.4 93.55 251.4 96 256.6 96c8.762 0 15.99-7.117 15.99-16.03c0-3.088-.8906-6.205-2.744-8.951l-32.56-48C234.2 18.46 229.1 15.98 223.1 15.98c-8.664 0-15.98 7.074-15.98 16.05c0 3.086 .8906 6.205 2.744 8.951L243.3 88.98zM480 160c-17.69 0-32 14.33-32 32v76.14l-32-32v121.4c0 94.01-63.31 141.5-78.32 152.2C345.1 510.9 352.6 512 360.3 512C446.1 512 512 440.9 512 357.5l-.0625-165.6C511.9 174.3 497.7 160 480 160z" - } - }, - "free": [ - "solid" - ] - }, - "hands-holding": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4c2", - "aliases": { - "unicodes": { - "secondary": [ - "10f4c2" - ] - } - }, - "label": "Hands holding", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M79.1 264.2C79.1 281.2 86.74 297.5 98.74 309.5L149.8 360.6C158.1 368.9 171.1 370.1 180.8 363.7C193.7 355 195.5 336.8 184.6 325.8L137.4 278.6C124.9 266.1 124.9 245.9 137.4 233.4C149.9 220.9 170.1 220.9 182.6 233.4L255.2 305.9C276.2 326.9 288 355.4 288 385.1V464C288 490.5 266.5 512 240 512H173.3C156.3 512 140 505.3 128 493.3L28.12 393.4C10.11 375.4 0 350.1 0 325.5V104C0 81.91 17.91 64 40 64C62.09 64 80 81.91 80 104L79.1 264.2zM560 104C560 81.91 577.9 64 600 64C622.1 64 640 81.91 640 104V325.5C640 350.1 629.9 375.4 611.9 393.4L512 493.3C499.1 505.3 483.7 512 466.7 512H400C373.5 512 352 490.5 352 464V385.1C352 355.4 363.8 326.9 384.8 305.9L457.4 233.4C469.9 220.9 490.1 220.9 502.6 233.4C515.1 245.9 515.1 266.1 502.6 278.6L455.4 325.8C444.5 336.8 446.3 355 459.2 363.7C468.9 370.1 481.9 368.9 490.2 360.6L541.3 309.5C553.3 297.5 560 281.2 560 264.2L560 104z" - } - }, - "free": [ - "solid" - ] - }, - "hands-holding-child": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4fa", - "label": "Hands Holding-child", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M279.1 40C279.1 17.91 297.9 0 319.1 0C342.1 0 360 17.91 360 40C360 62.09 342.1 80 319.1 80C297.9 80 279.1 62.09 279.1 40zM375.8 253C377.5 266.2 368.1 278.2 354.1 279.8C341.8 281.5 329.8 272.1 328.2 258.1L323.8 223.1H316.2L311.8 258.1C310.2 272.1 298.2 281.5 285 279.8C271.9 278.2 262.5 266.2 264.2 253L275.3 164.3L255.5 180.1C245.4 189.6 230.2 188.3 221.7 178.2C213.1 168 214.4 152.9 224.5 144.3L252.4 120.7C271.3 104.8 295.3 96 320 96C344.7 96 368.7 104.8 387.6 120.7L415.5 144.3C425.6 152.9 426.9 168 418.3 178.2C409.8 188.3 394.6 189.6 384.5 180.1L364.7 164.3L375.8 253zM39.1 64C62.09 64 79.1 81.91 79.1 104V264.2C79.1 281.2 86.74 297.5 98.74 309.5L149.8 360.6C158.1 368.9 171.1 370.1 180.8 363.7C193.7 355 195.5 336.8 184.6 325.8L137.4 278.6C124.9 266.1 124.9 245.9 137.4 233.4C149.9 220.9 170.1 220.9 182.6 233.4L255.2 305.9C276.2 326.9 288 355.4 288 385.1V464C288 490.5 266.5 512 240 512H173.3C156.3 512 140 505.3 128 493.3L28.12 393.4C10.11 375.4 0 350.1 0 325.5V104C0 81.91 17.91 64 40 64L39.1 64zM640 104V325.5C640 350.1 629.9 375.4 611.9 393.4L512 493.3C499.1 505.3 483.7 512 466.7 512H400C373.5 512 352 490.5 352 464V385.1C352 355.4 363.8 326.9 384.8 305.9L457.4 233.4C469.9 220.9 490.1 220.9 502.6 233.4C515.1 245.9 515.1 266.1 502.6 278.6L455.4 325.8C444.5 336.8 446.3 355 459.2 363.7C468.9 370.1 481.9 368.9 490.2 360.6L541.3 309.5C553.3 297.5 560 281.2 560 264.2V103.1C560 81.91 577.9 63.1 600 63.1C622.1 63.1 640 81.91 640 103.1L640 104z" - } - }, - "free": [ - "solid" - ] - }, - "hands-holding-circle": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4fb", - "label": "Hands Holding-circle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M191.1 128C191.1 57.31 249.3 0 319.1 0C390.7 0 448 57.31 448 128C448 198.7 390.7 256 319.1 256C249.3 256 191.1 198.7 191.1 128zM39.1 64C62.09 64 79.1 81.91 79.1 104V264.2C79.1 281.2 86.74 297.5 98.74 309.5L149.8 360.6C158.1 368.9 171.1 370.1 180.8 363.7C193.7 355 195.5 336.8 184.6 325.8L137.4 278.6C124.9 266.1 124.9 245.9 137.4 233.4C149.9 220.9 170.1 220.9 182.6 233.4L255.2 305.9C276.2 326.9 288 355.4 288 385.1V464C288 490.5 266.5 512 240 512H173.3C156.3 512 140 505.3 128 493.3L28.12 393.4C10.11 375.4 0 350.1 0 325.5V104C0 81.91 17.91 64 40 64L39.1 64zM640 104V325.5C640 350.1 629.9 375.4 611.9 393.4L512 493.3C499.1 505.3 483.7 512 466.7 512H400C373.5 512 352 490.5 352 464V385.1C352 355.4 363.8 326.9 384.8 305.9L457.4 233.4C469.9 220.9 490.1 220.9 502.6 233.4C515.1 245.9 515.1 266.1 502.6 278.6L455.4 325.8C444.5 336.8 446.3 355 459.2 363.7C468.9 370.1 481.9 368.9 490.2 360.6L541.3 309.5C553.3 297.5 560 281.2 560 264.2V103.1C560 81.91 577.9 63.1 600 63.1C622.1 63.1 640 81.91 640 103.1L640 104z" - } - }, - "free": [ - "solid" - ] - }, - "hands-praying": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f684", - "aliases": { - "names": [ - "praying-hands" - ], - "unicodes": { - "secondary": [ - "10f684" - ] - } - }, - "label": "Hands praying", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M272 191.9c-17.62 0-32 14.35-32 31.97V303.9c0 8.875-7.125 16-16 16s-16-7.125-16-16V227.4c0-17.37 4.75-34.5 13.75-49.37L299.5 48.41c9-15.12 4.125-34.76-11-43.88C273.1-4.225 255.8 .1289 246.1 13.63C245.1 13.88 245.5 13.88 245.4 14.13L128.1 190C117.5 205.9 112 224.3 112 243.3v80.24l-90.13 29.1C8.75 357.9 0 370.1 0 383.9v95.99c0 10.88 8.5 31.1 32 31.1c2.75 0 5.375-.25 8-1l179.3-46.62C269.1 450 304 403.8 304 351.9V223.9C304 206.3 289.6 191.9 272 191.9zM618.1 353.6L528 323.6V243.4c0-19-5.5-37.37-16.12-53.25l-117.3-175.9c-.125-.25-.6251-.2487-.75-.4987c-9.625-13.5-27.88-17.85-42.38-9.229c-15.12 9.125-20 28.76-11 44.01l77.75 129.5C427.3 193 432 210 432 227.5v76.49c0 8.875-7.125 16-16 16s-16-7.125-16-16V223.1c0-17.62-14.38-31.97-32-31.97s-32 14.38-32 31.1v127.1c0 51.87 34.88 98.12 84.75 112.4L600 511C602.6 511.6 605.4 512 608 512c23.5 0 32-21.25 32-31.1v-95.99C640 370.3 631.3 358 618.1 353.6z" - } - }, - "free": [ - "solid" - ] - }, - "handshake": { - "changes": [ - "4.7.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2b5", - "aliases": { - "unicodes": { - "secondary": [ - "10f2b5" - ] - } - }, - "label": "Handshake", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 383.9l64 .0404c17.75 0 32-14.29 32-32.03V128.3L0 128.3V383.9zM48 320.1c8.75 0 16 7.118 16 15.99c0 8.742-7.25 15.99-16 15.99S32 344.8 32 336.1C32 327.2 39.25 320.1 48 320.1zM348.8 64c-7.941 0-15.66 2.969-21.52 8.328L228.9 162.3C228.8 162.5 228.8 162.7 228.6 162.7C212 178.3 212.3 203.2 226.5 218.7c12.75 13.1 39.38 17.62 56.13 2.75C282.8 221.3 282.9 221.3 283 221.2l79.88-73.1c6.5-5.871 16.75-5.496 22.62 1c6 6.496 5.5 16.62-1 22.62l-26.12 23.87L504 313.7c2.875 2.496 5.5 4.996 7.875 7.742V127.1c-40.98-40.96-96.48-63.88-154.4-63.88L348.8 64zM334.6 217.4l-30 27.49c-29.75 27.11-75.25 24.49-101.8-4.371C176 211.2 178.1 165.7 207.3 138.9L289.1 64H282.5C224.7 64 169.1 87.08 128.2 127.9L128 351.8l18.25 .0369l90.5 81.82c27.5 22.37 67.75 18.12 90-9.246l18.12 15.24c15.88 12.1 39.38 10.5 52.38-5.371l31.38-38.6l5.374 4.498c13.75 11 33.88 9.002 45-4.748l9.538-11.78c11.12-13.75 9.036-33.78-4.694-44.93L334.6 217.4zM544 128.4v223.6c0 17.62 14.25 32.05 31.1 32.05L640 384V128.1L544 128.4zM592 352c-8.75 0-16-7.246-16-15.99c0-8.875 7.25-15.99 16-15.99S608 327.2 608 336.1C608 344.8 600.8 352 592 352z" - }, - "regular": { - "last_modified": 1658443573059, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M506.1 127.1c-17.97-20.17-61.46-61.65-122.7-71.1c-22.5-3.354-45.39 3.606-63.41 18.21C302 60.47 279.1 53.42 256.5 56.86C176.8 69.17 126.7 136.2 124.6 139.1c-7.844 10.69-5.531 25.72 5.125 33.57c4.281 3.157 9.281 4.657 14.19 4.657c7.406 0 14.69-3.375 19.38-9.782c.4062-.5626 40.19-53.91 100.5-63.23c7.457-.9611 14.98 .67 21.56 4.483L227.2 168.2C214.8 180.5 207.1 196.1 207.1 214.5c0 17.5 6.812 33.94 19.16 46.29C239.5 273.2 255.9 279.1 273.4 279.1s33.94-6.813 46.31-19.19l11.35-11.35l124.2 100.9c2.312 1.875 2.656 5.251 .5 7.97l-27.69 35.75c-1.844 2.25-5.25 2.594-7.156 1.063l-22.22-18.69l-26.19 27.75c-2.344 2.875-5.344 3.563-6.906 3.719c-1.656 .1562-4.562 .125-6.812-1.719l-32.41-27.66L310.7 392.3l-2.812 2.938c-5.844 7.157-14.09 11.66-23.28 12.6c-9.469 .8126-18.25-1.75-24.5-6.782L170.3 319.8H96V128.3L0 128.3v255.6l64 .0404c11.74 0 21.57-6.706 27.14-16.14h60.64l77.06 69.66C243.7 449.6 261.9 456 280.8 456c2.875 0 5.781-.125 8.656-.4376c13.62-1.406 26.41-6.063 37.47-13.5l.9062 .8126c12.03 9.876 27.28 14.41 42.69 12.78c13.19-1.375 25.28-7.032 33.91-15.35c21.09 8.188 46.09 2.344 61.25-16.47l27.69-35.75c18.47-22.82 14.97-56.48-7.844-75.01l-120.3-97.76l8.381-8.382c9.375-9.376 9.375-24.57 0-33.94c-9.375-9.376-24.56-9.376-33.94 0L285.8 226.8C279.2 233.5 267.7 233.5 261.1 226.8c-3.312-3.282-5.125-7.657-5.125-12.31c0-4.688 1.812-9.064 5.281-12.53l85.91-87.64c7.812-7.845 18.53-11.75 28.94-10.03c59.75 9.22 100.2 62.73 100.6 63.29c3.088 4.155 7.264 6.946 11.84 8.376H544v175.1c0 17.67 14.33 32.05 31.1 32.05L640 384V128.1L506.1 127.1zM48 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99S64 327.2 64 336.1C64 344.8 56.75 352 48 352zM592 352c-8.75 0-16-7.245-16-15.99c0-8.876 7.25-15.99 16-15.99s16 7.117 16 15.99C608 344.8 600.8 352 592 352z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "handshake-angle": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4c4", - "aliases": { - "names": [ - "hands-helping" - ], - "unicodes": { - "secondary": [ - "10f4c4" - ] - } - }, - "label": "Handshake angle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M488 191.1h-152l.0001 51.86c.0001 37.66-27.08 72-64.55 75.77c-43.09 4.333-79.45-29.42-79.45-71.63V126.4l-24.51 14.73C123.2 167.8 96.04 215.7 96.04 267.5L16.04 313.8c-15.25 8.751-20.63 28.38-11.75 43.63l80 138.6c8.875 15.25 28.5 20.5 43.75 11.75l103.4-59.75h136.6c35.25 0 64-28.75 64-64c26.51 0 48-21.49 48-48V288h8c13.25 0 24-10.75 24-24l.0001-48C512 202.7 501.3 191.1 488 191.1zM635.7 154.5l-79.95-138.6c-8.875-15.25-28.5-20.5-43.75-11.75l-103.4 59.75h-62.57c-37.85 0-74.93 10.61-107.1 30.63C229.7 100.4 224 110.6 224 121.6l-.0004 126.4c0 22.13 17.88 40 40 40c22.13 0 40-17.88 40-40V159.1h184c30.93 0 56 25.07 56 56v28.5l80-46.25C639.3 189.4 644.5 169.8 635.7 154.5z" - } - }, - "free": [ - "solid" - ] - }, - "handshake-simple": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4c6", - "aliases": { - "names": [ - "handshake-alt" - ], - "unicodes": { - "composite": [ - "1f91d" - ], - "secondary": [ - "10f4c6" - ] - } - }, - "label": "Handshake simple", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M334.6 217.4l-30 27.49C264 282.1 217.8 256.8 202.9 240.6C176 211.2 178.1 165.7 207.3 138.9L289.1 64H282.5C224.7 64 169.1 86.95 128.2 127.8L32 128.1c-17.6 0-32 14.39-32 31.98v159.8c0 17.59 14.4 32.04 31.1 32.04l114.3-.0604l90.5 81.82c27.5 22.37 67.75 18.11 90-9.255l18.12 15.25c15.88 12.1 39.38 10.5 52.38-5.369l31.38-38.6l5.374 4.498c13.75 11 33.88 9.002 45-4.748l9.576-11.83c11.08-13.7 8.979-33.75-4.701-44.86L334.6 217.4zM608 128.1l-96-.1257c-40.98-40.96-96.56-63.88-154.5-63.88L348.9 64c-8 0-15.62 3.197-21.62 8.568L229 162.3C228.9 162.5 228.8 162.7 228.8 162.7C212 178.5 212.4 203.3 226.6 218.7c9.625 10.5 35 21.62 56.13 2.75c0-.125 .25-.125 .375-.25l80-73.1c6.5-5.871 16.62-5.496 22.62 1s5.5 16.62-1 22.62l-26.12 23.87l145.6 118.1c12.12 9.992 19.5 23.49 22.12 37.98L608 351.7c17.6 0 32-14.38 32-31.98V160.1C640 142.4 625.7 128.1 608 128.1z" - } - }, - "free": [ - "solid" - ] - }, - "handshake-simple-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e05f", - "aliases": { - "names": [ - "handshake-alt-slash" - ], - "unicodes": { - "secondary": [ - "10e05f" - ] - } - }, - "label": "Handshake simple slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M358.6 195.6l145.6 118.1c12.12 9.992 19.5 23.49 22.12 37.98h81.62c17.6 0 31.1-14.39 31.1-31.99V159.1c0-17.67-14.33-31.99-31.1-31.99h-95.1c-40.98-40.96-96.56-63.98-154.5-63.98h-8.613c-7.1 0-15.63 3.002-21.63 8.373l-93.44 85.57L208.3 137.9L289.1 64.01L282.5 64c-43.48 0-85.19 13.66-120.8 37.44l-122.9-96.33C34.41 1.672 29.19 0 24.03 0c-7.125 0-14.19 3.156-18.91 9.187c-8.187 10.44-6.375 25.53 4.062 33.7L601.2 506.9c10.5 8.203 25.56 6.328 33.69-4.078c8.187-10.44 6.375-25.53-4.062-33.7l-135.5-106.2c-.1719-9.086-3.789-18.03-11.39-24.2l-149.2-121.2l-11.47 10.51L297.6 207.1l65.51-59.85c6.5-5.871 16.62-5.496 22.62 .1c5.1 6.496 5.5 16.62-.1 22.62L358.6 195.6zM32 127.1c-17.6 0-31.1 14.4-31.1 31.99v159.8c0 17.59 14.4 32.06 31.1 32.06l114.2-.0712l90.5 81.85c27.5 22.37 67.75 18.12 89.1-9.25l18.12 15.25c15.87 12.1 39.37 10.5 52.37-5.371l13.02-16.03L39.93 127.1L32 127.1z" - } - }, - "free": [ - "solid" - ] - }, - "handshake-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e060", - "aliases": { - "unicodes": { - "secondary": [ - "10e060" - ] - } - }, - "label": "Handshake Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M543.1 128.2l.0002 223.8c0 17.62 14.25 31.99 31.1 31.99h64V128.1L543.1 128.2zM591.1 352c-8.75 0-16-7.251-16-15.99c0-8.875 7.25-15.1 16-15.1c8.75 0 15.1 7.122 15.1 15.1C607.1 344.8 600.7 352 591.1 352zM.0005 128.2v255.7l63.1 .0446c17.75 0 32-14.28 32-32.03L96 171.9l-55.77-43.71H.0005zM64 336c0 8.742-7.25 15.99-15.1 15.99s-15.1-7.251-15.1-15.99c0-8.875 7.25-15.1 15.1-15.1S64 327.2 64 336zM128 351.8h18.25l90.5 81.85c27.5 22.37 67.75 18.12 89.1-9.25l18.12 15.25c15.87 12.1 39.37 10.5 52.37-5.371l13.02-16.03L128 196.1V351.8zM495.2 362.8c-.1875-9.101-3.824-18.05-11.44-24.24l-149.2-121.1l-11.47 10.51L297.5 207.9l65.33-59.79c6.5-5.871 16.75-5.496 22.62 1c5.1 6.496 5.5 16.62-1 22.62l-26.12 23.87l145.6 118.1c2.875 2.496 5.5 4.996 7.875 7.742V127.1c-40.98-40.96-96.52-63.98-154.5-63.98h-8.613c-7.941 0-15.64 2.97-21.5 8.329L233.7 157.9L208.3 137.9l80.85-73.92L282.5 64c-43.47 0-85.16 13.68-120.8 37.45L38.81 5.109C34.41 1.672 29.19 0 24.03 0C16.91 0 9.846 3.156 5.127 9.187C-3.06 19.62-1.248 34.72 9.19 42.89l591.1 463.1c10.5 8.203 25.56 6.328 33.69-4.078c8.187-10.44 6.375-25.53-4.062-33.7L495.2 362.8z" - } - }, - "free": [ - "solid" - ] - }, - "hanukiah": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6e6", - "aliases": { - "unicodes": { - "composite": [ - "1f54e" - ], - "secondary": [ - "10f6e6" - ] - } - }, - "label": "Hanukiah", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573254, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M231.1 159.9C227.6 159.9 224 163.6 224 168V288h32V168C256 163.6 252.4 160 248 160L231.1 159.9zM167.1 159.9C163.6 159.9 160 163.6 160 168V288h32V168C192 163.6 188.4 160 184 160L167.1 159.9zM392 160C387.6 160 384 163.6 384 168V288h32V168c0-4.375-3.625-8.061-8-8.061L392 160zM456 160C451.6 160 448 163.6 448 168V288h32V168c0-4.375-3.625-8.061-8-8.061L456 160zM544 168c0-4.375-3.625-8.061-8-8.061L520 160C515.6 160 512 163.6 512 168V288h32V168zM103.1 159.9C99.62 159.9 96 163.6 96 168V288h32V168C128 163.6 124.4 160 120 160L103.1 159.9zM624 160h-31.98c-8.837 0-16.03 7.182-16.03 16.02L576 288c0 17.6-14.4 32-32 32h-192V128c0-8.837-7.151-16.01-15.99-16.01H303.1C295.2 111.1 288 119.2 288 128v192H96c-17.6 0-32-14.4-32-32l.0065-112C64.01 167.2 56.85 160 48.02 160H16C7.163 160 0 167.2 0 176V288c0 53.02 42.98 96 96 96h192v64H175.1C149.5 448 128 469.5 128 495.1C128 504.8 135.2 512 143.1 512h352C504.9 512 512 504.9 512 496C512 469.5 490.5 448 464 448H352v-64h192c53.02 0 96-42.98 96-96V176C640 167.2 632.8 160 624 160zM607.1 127.9C621.2 127.9 632 116 632 101.4C632 86.62 608 48 608 48s-24 38.62-24 53.38C584 116 594.7 127.9 607.1 127.9zM31.1 127.9C45.25 127.9 56 116 56 101.4C56 86.62 32 48 32 48S8 86.62 8 101.4C8 116 18.75 127.9 31.1 127.9zM319.1 79.94c13.25 0 24-11.94 24-26.57C344 38.62 320 0 320 0S296 38.62 296 53.38C296 67.1 306.7 79.94 319.1 79.94zM112 128c13.25 0 24-12 24-26.62C136 86.62 112 48 112 48S88 86.62 88 101.4C88 115.1 98.75 128 112 128zM176 128c13.25 0 24-12 24-26.62C200 86.62 176 48 176 48S152 86.62 152 101.4C152 115.1 162.8 128 176 128zM240 128c13.25 0 24-12 24-26.62C264 86.62 240 48 240 48S216 86.62 216 101.4C216 115.1 226.8 128 240 128zM400 128c13.25 0 24-12 24-26.62C424 86.62 400 48 400 48s-24 38.62-24 53.38C376 115.1 386.8 128 400 128zM464 128c13.25 0 24-12 24-26.62C488 86.62 464 48 464 48s-24 38.62-24 53.38C440 115.1 450.8 128 464 128zM528 128c13.25 0 24-12 24-26.62C552 86.62 528 48 528 48s-24 38.62-24 53.38C504 115.1 514.8 128 528 128z" - } - }, - "free": [ - "solid" - ] - }, - "hard-drive": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0a0", - "aliases": { - "names": [ - "hdd" - ], - "unicodes": { - "composite": [ - "1f5b4" - ], - "secondary": [ - "10f0a0" - ] - } - }, - "label": "Hard drive", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464 288h-416C21.5 288 0 309.5 0 336v96C0 458.5 21.5 480 48 480h416c26.5 0 48-21.5 48-48v-96C512 309.5 490.5 288 464 288zM320 416c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S337.6 416 320 416zM416 416c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S433.6 416 416 416zM464 32h-416C21.5 32 0 53.5 0 80v192.4C13.41 262.3 29.92 256 48 256h416c18.08 0 34.59 6.254 48 16.41V80C512 53.5 490.5 32 464 32z" - }, - "regular": { - "last_modified": 1658443573059, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M304 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C328 354.7 317.3 344 304 344zM448 32h-384c-35.35 0-64 28.65-64 64v320c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V96C512 60.65 483.3 32 448 32zM464 416c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16v-96c0-8.822 7.178-16 16-16h384C456.8 304 464 311.2 464 320V416zM464 258.3C458.9 256.9 453.6 256 448 256H64C58.44 256 53.14 256.9 48 258.3V96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V258.3zM400 344c-13.25 0-24 10.74-24 24c0 13.25 10.75 24 24 24c13.26 0 24-10.75 24-24C424 354.7 413.3 344 400 344z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hashnode": { - "changes": [ - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e499", - "label": "Hashnode", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M35.19 171.1C-11.72 217.1-11.72 294 35.19 340.9L171.1 476.8C217.1 523.7 294 523.7 340.9 476.8L476.8 340.9C523.7 294 523.7 217.1 476.8 171.1L340.9 35.19C294-11.72 217.1-11.72 171.1 35.19L35.19 171.1zM315.5 315.5C282.6 348.3 229.4 348.3 196.6 315.5C163.7 282.6 163.7 229.4 196.6 196.6C229.4 163.7 282.6 163.7 315.5 196.6C348.3 229.4 348.3 282.6 315.5 315.5z" - } - }, - "free": [ - "brands" - ] - }, - "hashtag": { - "changes": [ - "4.5.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "23", - "aliases": { - "unicodes": { - "composite": [ - "f292" - ], - "primary": [ - "f292" - ], - "secondary": [ - "10f292", - "1023" - ] - } - }, - "label": "Hashtag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 127.1h-58.23l9.789-58.74c2.906-17.44-8.875-33.92-26.3-36.83c-17.53-2.875-33.92 8.891-36.83 26.3L292.9 127.1H197.8l9.789-58.74c2.906-17.44-8.875-33.92-26.3-36.83c-17.53-2.875-33.92 8.891-36.83 26.3L132.9 127.1H64c-17.67 0-32 14.33-32 32C32 177.7 46.33 191.1 64 191.1h58.23l-21.33 128H32c-17.67 0-32 14.33-32 32c0 17.67 14.33 31.1 32 31.1h58.23l-9.789 58.74c-2.906 17.44 8.875 33.92 26.3 36.83C108.5 479.9 110.3 480 112 480c15.36 0 28.92-11.09 31.53-26.73l11.54-69.27h95.12l-9.789 58.74c-2.906 17.44 8.875 33.92 26.3 36.83C268.5 479.9 270.3 480 272 480c15.36 0 28.92-11.09 31.53-26.73l11.54-69.27H384c17.67 0 32-14.33 32-31.1c0-17.67-14.33-32-32-32h-58.23l21.33-128H416c17.67 0 32-14.32 32-31.1C448 142.3 433.7 127.1 416 127.1zM260.9 319.1H165.8L187.1 191.1h95.12L260.9 319.1z" - } - }, - "free": [ - "solid" - ] - }, - "hat-cowboy": { - "changes": [ - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f8c0", - "aliases": { - "unicodes": { - "secondary": [ - "10f8c0" - ] - } - }, - "label": "Cowboy Hat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M489.1 264.9C480.5 207.5 450.5 32 392.3 32c-14 0-26.58 5.875-37.08 14c-20.75 15.87-49.62 15.87-70.5 0C274.2 38 261.7 32 247.7 32c-58.25 0-88.27 175.5-97.77 232.9C188.7 277.5 243.7 288 319.1 288S451.2 277.5 489.1 264.9zM632.9 227.7c-6.125-4.125-14.2-3.51-19.7 1.49c-1 .875-101.3 90.77-293.1 90.77c-190.9 0-292.2-89.99-293.2-90.86c-5.5-4.875-13.71-5.508-19.71-1.383c-6.125 4.125-8.587 11.89-6.087 18.77C1.749 248.5 78.37 448 319.1 448s318.2-199.5 318.1-201.5C641.5 239.6 639 231.9 632.9 227.7z" - } - }, - "free": [ - "solid" - ] - }, - "hat-cowboy-side": { - "changes": [ - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f8c1", - "aliases": { - "unicodes": { - "secondary": [ - "10f8c1" - ] - } - }, - "label": "Cowboy Hat Side", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M260.8 260C232.1 237.1 198.8 225 164.4 225c-77.38 0-142.9 62.75-163 156c-3.5 16.62-.375 33.88 8.625 47.38c8.75 13.12 21.88 20.62 35.88 20.62H592c-103.2 0-155-37.13-233.2-104.5L260.8 260zM495.5 241.8l-27.13-156.5c-2.875-17.25-12.75-32.5-27.12-42.25c-14.37-9.75-32.24-13.3-49.24-9.675L200.9 74.02C173.7 79.77 153.5 102.3 150.5 129.8L143.6 195c6.875-.875 13.62-2 20.75-2c41.87 0 82 14.5 117.4 42.88l98 84.37c71 61.25 115.1 96.75 212.2 96.75c26.5 0 48-21.5 48-48C640 343.6 610.4 249.6 495.5 241.8z" - } - }, - "free": [ - "solid" - ] - }, - "hat-wizard": { - "changes": [ - "5.4.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6e8", - "aliases": { - "unicodes": { - "secondary": [ - "10f6e8" - ] - } - }, - "label": "Wizard's Hat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M200 376l-49.23-16.41c-7.289-2.434-7.289-12.75 0-15.18L200 328l16.41-49.23c2.434-7.289 12.75-7.289 15.18 0L248 328l49.23 16.41c7.289 2.434 7.289 12.75 0 15.18L248 376L240 416H448l-86.38-201.6C355.4 200 354.8 183.8 359.8 168.9L416 0L228.4 107.3C204.8 120.8 185.1 141.4 175 166.4L64 416h144L200 376zM231.2 172.4L256 160l12.42-24.84c1.477-2.949 5.68-2.949 7.156 0L288 160l24.84 12.42c2.949 1.477 2.949 5.68 0 7.156L288 192l-12.42 24.84c-1.477 2.949-5.68 2.949-7.156 0L256 192L231.2 179.6C228.2 178.1 228.2 173.9 231.2 172.4zM496 448h-480C7.164 448 0 455.2 0 464C0 490.5 21.49 512 48 512h416c26.51 0 48-21.49 48-48C512 455.2 504.8 448 496 448z" - } - }, - "free": [ - "solid" - ] - }, - "head-side-cough": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e061", - "aliases": { - "unicodes": { - "secondary": [ - "10e061" - ] - } - }, - "label": "Head Side Cough", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M608 359.1c-13.25 0-24 10.75-24 24s10.75 24 24 24s24-10.75 24-24S621.3 359.1 608 359.1zM477.2 275c-21-47.13-48.49-151.8-73.11-186.8C365.6 33.63 302.5 0 234.1 0L192 0C86 0 0 86 0 192c0 56.75 24.75 107.6 64 142.9L64 512h223.1v-32h64.01c35.38 0 64-28.62 64-63.1L320 416c-17.67 0-32-14.33-32-32s14.33-32 32-32h95.98l-.003-32h31.99C471.1 320 486.6 296.1 477.2 275zM336 224c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S353.6 224 336 224zM480 359.1c-13.25 0-23.1 10.75-23.1 24s10.75 24 23.1 24s24-10.75 24-24S493.3 359.1 480 359.1zM608 311.1c13.25 0 24-10.75 24-24s-10.75-24-24-24s-24 10.75-24 24S594.8 311.1 608 311.1zM544 311.1c-13.25 0-23.1 10.75-23.1 24s10.75 24 23.1 24s24-10.75 24-24S557.3 311.1 544 311.1zM544 407.1c-13.25 0-23.1 10.75-23.1 24s10.75 24 23.1 24s24-10.75 24-24S557.3 407.1 544 407.1zM608 455.1c-13.25 0-24 10.75-24 24s10.75 24 24 24s24-10.75 24-24S621.3 455.1 608 455.1z" - } - }, - "free": [ - "solid" - ] - }, - "head-side-cough-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e062", - "aliases": { - "unicodes": { - "secondary": [ - "10e062" - ] - } - }, - "label": "Head Side-cough-slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M607.1 311.1c13.25 0 24-10.75 24-23.1s-10.75-23.1-24-23.1s-23.1 10.75-23.1 23.1S594.7 311.1 607.1 311.1zM607.1 407.1c13.25 0 24-10.78 24-24.03c0-13.25-10.75-23.1-24-23.1s-24 10.78-24 24.03C583.1 397.2 594.7 407.1 607.1 407.1zM630.8 469.1l-190.2-149.1h7.4c23.12 0 38.62-23.87 29.25-44.1c-20.1-47.12-48.49-151.7-73.11-186.7C365.6 33.63 302.5 0 234.1 0H192C149.9 0 111.5 14.26 79.88 37.29L38.81 5.109C34.41 1.672 29.19 0 24.03 0C16.91 0 9.845 3.156 5.126 9.187c-8.187 10.44-6.375 25.53 4.062 33.7l591.1 463.1c10.5 8.203 25.56 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1zM320 415.1c-17.67 0-31.1-14.33-31.1-31.1S302.3 351.1 320 351.1l5.758-.0009L18.16 110.9C6.631 135.6 .0006 162.1 .0006 191.1c0 56.75 24.75 107.6 64 142.9L64 511.1h223.1l0-31.1l64.01 .001c33.25 0 60.2-25.38 63.37-57.78l-7.932-6.217H320zM543.1 359.1c13.25 0 24-10.78 24-24.03s-10.75-23.1-24-23.1c-13.25 0-24 10.78-24 24.03C519.1 349.2 530.7 359.1 543.1 359.1z" - } - }, - "free": [ - "solid" - ] - }, - "head-side-mask": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e063", - "aliases": { - "unicodes": { - "secondary": [ - "10e063" - ] - } - }, - "label": "Head Side Mask", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573255, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M.1465 184.4C-2.166 244.2 23.01 298 63.99 334.9L63.99 512h160L224 316.5L3.674 156.2C1.871 165.4 .5195 174.8 .1465 184.4zM336 368H496L512 320h-255.1l.0178 192h145.9c27.55 0 52-17.63 60.71-43.76L464 464h-127.1c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16h138.7l10.67-32h-149.3c-8.836 0-16-7.164-16-16C320 375.2 327.2 368 336 368zM509.2 275c-20.1-47.13-48.49-151.8-73.11-186.8C397.6 33.63 334.5 0 266.1 0H200C117.1 0 42.48 50.57 13.25 123.7L239.2 288h272.6C511.8 283.7 511.1 279.3 509.2 275zM352 224c-17.62 0-32-14.38-32-32s14.38-32 32-32c17.62 0 31.1 14.38 31.1 32S369.6 224 352 224z" - } - }, - "free": [ - "solid" - ] - }, - "head-side-virus": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e064", - "aliases": { - "unicodes": { - "secondary": [ - "10e064" - ] - } - }, - "label": "Head Side Virus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M208 175.1c-8.836 0-16 7.162-16 16c0 8.836 7.163 15.1 15.1 15.1s16-7.164 16-16C224 183.2 216.8 175.1 208 175.1zM272 239.1c-8.836 0-15.1 7.163-15.1 16c0 8.836 7.165 16 16 16s16-7.164 16-16C288 247.2 280.8 239.1 272 239.1zM509.2 275c-20.94-47.13-48.46-151.7-73.1-186.8C397.7 33.59 334.6 0 266.1 0H192C85.95 0 0 85.95 0 192c0 56.8 24.8 107.7 64 142.8L64 512h256l-.0044-64h63.99c35.34 0 63.1-28.65 63.1-63.1V320h31.98C503.1 320 518.6 296.2 509.2 275zM368 240h-12.12c-28.51 0-42.79 34.47-22.63 54.63l8.576 8.576c6.25 6.25 6.25 16.38 0 22.62c-3.125 3.125-7.219 4.688-11.31 4.688s-8.188-1.562-11.31-4.688l-8.576-8.576c-20.16-20.16-54.63-5.881-54.63 22.63V352c0 8.844-7.156 16-16 16s-16-7.156-16-16v-12.12c0-28.51-34.47-42.79-54.63-22.63l-8.576 8.576c-3.125 3.125-7.219 4.688-11.31 4.688c-4.096 0-8.188-1.562-11.31-4.688c-6.25-6.25-6.25-16.38 0-22.62l8.577-8.576C166.9 274.5 152.6 240 124.1 240H112c-8.844 0-16-7.156-16-16s7.157-16 16-16L124.1 208c28.51 0 42.79-34.47 22.63-54.63L138.2 144.8c-6.25-6.25-6.25-16.38 0-22.62s16.38-6.25 22.63 0L169.4 130.7c20.16 20.16 54.63 5.881 54.63-22.63V96c0-8.844 7.156-16 16-16S256 87.16 256 96v12.12c0 28.51 34.47 42.79 54.63 22.63l8.576-8.576c6.25-6.25 16.38-6.25 22.63 0s6.25 16.38 0 22.62L333.3 153.4C313.1 173.5 327.4 208 355.9 208l12.12-.0004c8.844 0 15.1 7.157 15.1 16S376.8 240 368 240z" - } - }, - "free": [ - "solid" - ] - }, - "heading": { - "changes": [ - "4.1.0", - "5.0.0", - "5.9.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1dc", - "aliases": { - "names": [ - "header" - ], - "unicodes": { - "secondary": [ - "10f1dc" - ] - } - }, - "label": "heading", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 448c0 17.69-14.33 32-32 32h-96c-17.67 0-32-14.31-32-32s14.33-32 32-32h16v-144h-224v144H128c17.67 0 32 14.31 32 32s-14.33 32-32 32H32c-17.67 0-32-14.31-32-32s14.33-32 32-32h16v-320H32c-17.67 0-32-14.31-32-32s14.33-32 32-32h96c17.67 0 32 14.31 32 32s-14.33 32-32 32H112v112h224v-112H320c-17.67 0-32-14.31-32-32s14.33-32 32-32h96c17.67 0 32 14.31 32 32s-14.33 32-32 32h-16v320H416C433.7 416 448 430.3 448 448z" - } - }, - "free": [ - "solid" - ] - }, - "headphones": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f025", - "aliases": { - "unicodes": { - "composite": [ - "1f3a7" - ], - "secondary": [ - "10f025" - ] - } - }, - "label": "headphones", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 287.9l-.0042 112C511.1 444.1 476.1 480 432 480c-26.47 0-48-21.56-48-48.06V304.1C384 277.6 405.5 256 432 256c10.83 0 20.91 2.723 30.3 6.678C449.7 159.1 362.1 80.13 256 80.13S62.29 159.1 49.7 262.7C59.09 258.7 69.17 256 80 256C106.5 256 128 277.6 128 304.1v127.9C128 458.4 106.5 480 80 480c-44.11 0-79.1-35.88-79.1-80.06L0 288c0-141.2 114.8-256 256-256c140.9 0 255.6 114.5 255.1 255.3C511.1 287.5 511.1 287.7 512 287.9z" - } - }, - "free": [ - "solid" - ] - }, - "headphones-simple": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f58f", - "aliases": { - "names": [ - "headphones-alt" - ], - "unicodes": { - "secondary": [ - "10f58f" - ] - } - }, - "label": "Headphones simple", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 32C112.9 32 4.563 151.1 0 288v104C0 405.3 10.75 416 23.1 416S48 405.3 48 392V288c0-114.7 93.34-207.8 208-207.8C370.7 80.2 464 173.3 464 288v104C464 405.3 474.7 416 488 416S512 405.3 512 392V287.1C507.4 151.1 399.1 32 256 32zM160 288L144 288c-35.34 0-64 28.7-64 64.13v63.75C80 451.3 108.7 480 144 480L160 480c17.66 0 32-14.34 32-32.05v-127.9C192 302.3 177.7 288 160 288zM368 288L352 288c-17.66 0-32 14.32-32 32.04v127.9c0 17.7 14.34 32.05 32 32.05L368 480c35.34 0 64-28.7 64-64.13v-63.75C432 316.7 403.3 288 368 288z" - } - }, - "free": [ - "solid" - ] - }, - "headset": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f590", - "aliases": { - "unicodes": { - "secondary": [ - "10f590" - ] - } - }, - "label": "Headset", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M191.1 224c0-17.72-14.34-32.04-32-32.04L144 192c-35.34 0-64 28.66-64 64.08v47.79C80 339.3 108.7 368 144 368H160c17.66 0 32-14.36 32-32.06L191.1 224zM256 0C112.9 0 4.583 119.1 .0208 256L0 296C0 309.3 10.75 320 23.1 320S48 309.3 48 296V256c0-114.7 93.34-207.8 208-207.8C370.7 48.2 464 141.3 464 256v144c0 22.09-17.91 40-40 40h-110.7C305 425.7 289.7 416 272 416H241.8c-23.21 0-44.5 15.69-48.87 38.49C187 485.2 210.4 512 239.1 512H272c17.72 0 33.03-9.711 41.34-24H424c48.6 0 88-39.4 88-88V256C507.4 119.1 399.1 0 256 0zM368 368c35.34 0 64-28.7 64-64.13V256.1C432 220.7 403.3 192 368 192l-16 0c-17.66 0-32 14.34-32 32.04L320 335.9C320 353.7 334.3 368 352 368H368z" - } - }, - "free": [ - "solid" - ] - }, - "heart": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.9", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f004", - "aliases": { - "unicodes": { - "composite": [ - "1f499", - "1f49a", - "1f49b", - "1f49c", - "1f5a4", - "1f90d", - "1f90e", - "1f9e1", - "2764", - "f08a", - "2665" - ], - "secondary": [ - "10f004" - ] - } - }, - "label": "Heart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.1C164.1 36.51 211.4 51.37 244 84.02L256 96L267.1 84.02C300.6 51.37 347 36.51 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 .0003 232.4 .0003 190.9L0 190.9z" - }, - "regular": { - "last_modified": 1658443573061, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M244 84L255.1 96L267.1 84.02C300.6 51.37 347 36.51 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 0 232.4 0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.1C164.1 36.51 211.4 51.37 244 84C243.1 84 244 84.01 244 84L244 84zM255.1 163.9L210.1 117.1C188.4 96.28 157.6 86.4 127.3 91.44C81.55 99.07 48 138.7 48 185.1V190.9C48 219.1 59.71 246.1 80.34 265.3L256 429.3L431.7 265.3C452.3 246.1 464 219.1 464 190.9V185.1C464 138.7 430.4 99.07 384.7 91.44C354.4 86.4 323.6 96.28 301.9 117.1L255.1 163.9z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "heart-circle-bolt": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4fc", - "label": "Heart Circle-bolt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 368C256 403.7 266.6 436.9 284.9 464.6L279.4 470.3C266.4 483.2 245.5 483.2 233.5 470.3L39.71 270.5C-16.22 212.5-13.23 116.6 49.7 62.68C103.6 15.73 186.5 24.72 236.5 75.67L256.4 96.64L275.4 75.67C325.4 24.72 407.3 15.73 463.2 62.68C506.1 100.1 520.7 157.6 507 208.7C484.3 198 458.8 192 432 192C334.8 192 256 270.8 256 368zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM464.8 286.4L368.8 358.4C364.7 361.5 362.1 366.9 364.6 371.8C366.2 376.7 370.8 380 376 380H411.6L381.5 434.2C378.8 439.1 379.8 445.3 384.1 449C388.4 452.8 394.7 452.1 399.2 449.6L495.2 377.6C499.3 374.5 501 369.1 499.4 364.2C497.8 359.3 493.2 356 488 356H452.4L482.5 301.8C485.2 296.9 484.2 290.7 479.9 286.1C475.6 283.2 469.3 283 464.8 286.4V286.4z" - } - }, - "free": [ - "solid" - ] - }, - "heart-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4fd", - "label": "Heart Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 368C256 403.7 266.6 436.9 284.9 464.6L279.4 470.3C266.4 483.2 245.5 483.2 233.5 470.3L39.71 270.5C-16.22 212.5-13.23 116.6 49.7 62.68C103.6 15.73 186.5 24.72 236.5 75.67L256.4 96.64L275.4 75.67C325.4 24.72 407.3 15.73 463.2 62.68C506.1 100.1 520.7 157.6 507 208.7C484.3 198 458.8 192 432 192C334.8 192 256 270.8 256 368zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM476.7 324.7L416 385.4L387.3 356.7C381.1 350.4 370.9 350.4 364.7 356.7C358.4 362.9 358.4 373.1 364.7 379.3L404.7 419.3C410.9 425.6 421.1 425.6 427.3 419.3L499.3 347.3C505.6 341.1 505.6 330.9 499.3 324.7C493.1 318.4 482.9 318.4 476.7 324.7H476.7z" - } - }, - "free": [ - "solid" - ] - }, - "heart-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4fe", - "label": "Heart Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 368C256 403.7 266.6 436.9 284.9 464.6L279.4 470.3C266.4 483.2 245.5 483.2 233.5 470.3L39.71 270.5C-16.22 212.5-13.23 116.6 49.7 62.68C103.6 15.73 186.5 24.72 236.5 75.67L256.4 96.64L275.4 75.67C325.4 24.72 407.3 15.73 463.2 62.68C506.1 100.1 520.7 157.6 507 208.7C484.3 198 458.8 192 432 192C334.8 192 256 270.8 256 368zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464zM415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "heart-circle-minus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4ff", - "label": "Heart Circle-minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 368C256 403.7 266.6 436.9 284.9 464.6L279.4 470.3C266.4 483.2 245.5 483.2 233.5 470.3L39.71 270.5C-16.22 212.5-13.23 116.6 49.7 62.68C103.6 15.73 186.5 24.72 236.5 75.67L256.4 96.64L275.4 75.67C325.4 24.72 407.3 15.73 463.2 62.68C506.1 100.1 520.7 157.6 507 208.7C484.3 198 458.8 192 432 192C334.8 192 256 270.8 256 368zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM496 351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1z" - } - }, - "free": [ - "solid" - ] - }, - "heart-circle-plus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e500", - "label": "Heart Circle-plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 368C256 403.7 266.6 436.9 284.9 464.6L279.4 470.3C266.4 483.2 245.5 483.2 233.5 470.3L39.71 270.5C-16.22 212.5-13.23 116.6 49.7 62.68C103.6 15.73 186.5 24.72 236.5 75.67L256.4 96.64L275.4 75.67C325.4 24.72 407.3 15.73 463.2 62.68C506.1 100.1 520.7 157.6 507 208.7C484.3 198 458.8 192 432 192C334.8 192 256 270.8 256 368zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM448 303.1C448 295.2 440.8 287.1 432 287.1C423.2 287.1 416 295.2 416 303.1V351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H416V431.1C416 440.8 423.2 447.1 432 447.1C440.8 447.1 448 440.8 448 431.1V383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1H448V303.1z" - } - }, - "free": [ - "solid" - ] - }, - "heart-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e501", - "label": "Heart Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 368C256 403.7 266.6 436.9 284.9 464.6L279.4 470.3C266.4 483.2 245.5 483.2 233.5 470.3L39.71 270.5C-16.22 212.5-13.23 116.6 49.7 62.68C103.6 15.73 186.5 24.72 236.5 75.67L256.4 96.64L275.4 75.67C325.4 24.72 407.3 15.73 463.2 62.68C506.1 100.1 520.7 157.6 507 208.7C484.3 198 458.8 192 432 192C334.8 192 256 270.8 256 368zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM491.3 331.3C497.6 325.1 497.6 314.9 491.3 308.7C485.1 302.4 474.9 302.4 468.7 308.7L432 345.4L395.3 308.7C389.1 302.4 378.9 302.4 372.7 308.7C366.4 314.9 366.4 325.1 372.7 331.3L409.4 368L372.7 404.7C366.4 410.9 366.4 421.1 372.7 427.3C378.9 433.6 389.1 433.6 395.3 427.3L432 390.6L468.7 427.3C474.9 433.6 485.1 433.6 491.3 427.3C497.6 421.1 497.6 410.9 491.3 404.7L454.6 368L491.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "heart-crack": { - "changes": [ - "5.6.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7a9", - "aliases": { - "names": [ - "heart-broken" - ], - "unicodes": { - "composite": [ - "1f494" - ], - "secondary": [ - "10f7a9" - ] - } - }, - "label": "Heart crack", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M119.4 44.1C142.7 40.22 166.2 42.2 187.1 49.43L237.8 126.9L162.3 202.3C160.8 203.9 159.1 205.1 160 208.2C160 210.3 160.1 212.4 162.6 213.9L274.6 317.9C277.5 320.6 281.1 320.7 285.1 318.2C288.2 315.6 288.9 311.2 286.8 307.8L226.4 209.7L317.1 134.1C319.7 131.1 320.7 128.5 319.5 125.3L296.8 61.74C325.4 45.03 359.2 38.53 392.6 44.1C461.5 55.58 512 115.2 512 185.1V190.9C512 232.4 494.8 272.1 464.4 300.4L283.7 469.1C276.2 476.1 266.3 480 256 480C245.7 480 235.8 476.1 228.3 469.1L47.59 300.4C17.23 272.1 0 232.4 0 190.9V185.1C0 115.2 50.52 55.58 119.4 44.09V44.1z" - } - }, - "free": [ - "solid" - ] - }, - "heart-pulse": { - "changes": [ - "4.3.0", - "5.0.0", - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f21e", - "aliases": { - "names": [ - "heartbeat" - ], - "unicodes": { - "secondary": [ - "10f21e" - ] - } - }, - "label": "Heart pulse", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M352.4 243.8l-49.83 99.5c-6.009 12-23.41 11.62-28.92-.625L216.7 216.3l-30.05 71.75L88.55 288l176.4 182.2c12.66 13.07 33.36 13.07 46.03 0l176.4-182.2l-112.1 .0052L352.4 243.8zM495.2 62.86c-54.36-46.98-137.5-38.5-187.5 13.06L288 96.25L268.3 75.92C218.3 24.36 135.2 15.88 80.81 62.86C23.37 112.5 16.84 197.6 60.18 256h105l35.93-86.25c5.508-12.88 23.66-13.12 29.54-.375l58.21 129.4l49.07-98c5.884-11.75 22.78-11.75 28.67 0l27.67 55.25h121.5C559.2 197.6 552.6 112.5 495.2 62.86z" - } - }, - "free": [ - "solid" - ] - }, - "helicopter": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f533", - "aliases": { - "unicodes": { - "composite": [ - "1f681" - ], - "secondary": [ - "10f533" - ] - } - }, - "label": "Helicopter", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573257, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M127.1 32C127.1 14.33 142.3 0 159.1 0H544C561.7 0 576 14.33 576 32C576 49.67 561.7 64 544 64H384V128H416C504.4 128 576 199.6 576 288V352C576 369.7 561.7 384 544 384H303.1C293.9 384 284.4 379.3 278.4 371.2L191.1 256L47.19 198.1C37.65 194.3 30.52 186.1 28.03 176.1L4.97 83.88C2.445 73.78 10.08 64 20.49 64H47.1C58.07 64 67.56 68.74 73.6 76.8L111.1 128H319.1V64H159.1C142.3 64 127.1 49.67 127.1 32V32zM384 320H512V288C512 234.1 469 192 416 192H384V320zM630.6 470.6L626.7 474.5C602.7 498.5 570.2 512 536.2 512H255.1C238.3 512 223.1 497.7 223.1 480C223.1 462.3 238.3 448 255.1 448H536.2C553.2 448 569.5 441.3 581.5 429.3L585.4 425.4C597.9 412.9 618.1 412.9 630.6 425.4C643.1 437.9 643.1 458.1 630.6 470.6L630.6 470.6z" - } - }, - "free": [ - "solid" - ] - }, - "helicopter-symbol": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e502", - "label": "Helicopter Symbol", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573256, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M320 66.66V1.985C435.8 16.42 527.6 108.2 542 224H477.3C463.9 143.6 400.4 80.15 320 66.66V66.66zM320 510V445.4C400.4 431.9 463.9 368.4 477.3 288H542C527.6 403.8 435.8 495.6 320 510V510zM33.98 288H98.65C112.1 368.4 175.6 431.9 256 445.4V510C140.2 495.6 48.42 403.8 33.98 288zM256 1.984V66.66C175.6 80.15 112.1 143.6 98.66 224H33.98C48.42 108.2 140.2 16.42 256 1.985V1.984zM240 224H336V160C336 142.3 350.3 128 368 128C385.7 128 400 142.3 400 160V352C400 369.7 385.7 384 368 384C350.3 384 336 369.7 336 352V288H240V352C240 369.7 225.7 384 208 384C190.3 384 176 369.7 176 352V160C176 142.3 190.3 128 208 128C225.7 128 240 142.3 240 160V224z" - } - }, - "free": [ - "solid" - ] - }, - "helmet-safety": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f807", - "aliases": { - "names": [ - "hard-hat", - "hat-hard" - ], - "unicodes": { - "secondary": [ - "10f807" - ] - } - }, - "label": "Helmet safety", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573257, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 280.9c0-89.17-61.83-165.4-139.6-197.4L352 174.2V49.78C352 39.91 344.1 32 334.2 32H241.8C231.9 32 224 39.91 224 49.78v124.4L171.6 83.53C93.83 115.5 32 191.7 32 280.9L31.99 352h512L544 280.9zM574.7 393.7C572.2 387.8 566.4 384 560 384h-544c-6.375 0-12.16 3.812-14.69 9.656c-2.531 5.875-1.344 12.69 3.062 17.34C7.031 413.8 72.02 480 287.1 480s280.1-66.19 283.6-69C576 406.3 577.2 399.5 574.7 393.7z" - } - }, - "free": [ - "solid" - ] - }, - "helmet-un": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e503", - "label": "Helmet Un", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573257, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 224C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H368V462.5L369.5 464H456C469.3 464 480 474.7 480 488C480 501.3 469.3 512 456 512H360C353.9 512 347.1 509.7 343.5 505.4L214.9 384H87.65C39.24 384 0 344.8 0 296.3V240C0 107.5 107.5 0 240 0C367.2 0 471.2 98.91 479.5 224H480zM320 288H274.4L241.1 343.5L320 417.2V288zM285.3 103.1C281.4 97.26 274.1 94.64 267.4 96.69C260.6 98.73 256 104.9 256 112V208C256 216.8 263.2 224 272 224C280.8 224 288 216.8 288 208V164.8L322.7 216.9C326.6 222.7 333.9 225.4 340.6 223.3C347.4 221.3 352 215.1 352 208V112C352 103.2 344.8 96 336 96C327.2 96 320 103.2 320 112V155.2L285.3 103.1zM160 112C160 103.2 152.8 96 144 96C135.2 96 128 103.2 128 112V176C128 202.5 149.5 224 176 224C202.5 224 224 202.5 224 176V112C224 103.2 216.8 96 208 96C199.2 96 192 103.2 192 112V176C192 184.8 184.8 192 176 192C167.2 192 160 184.8 160 176V112z" - } - }, - "free": [ - "solid" - ] - }, - "highlighter": { - "changes": [ - "5.1.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f591", - "aliases": { - "unicodes": { - "secondary": [ - "10f591" - ] - } - }, - "label": "Highlighter", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573257, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M143.1 320V248.3C143.1 233 151.2 218.7 163.5 209.6L436.6 8.398C444 2.943 452.1 0 462.2 0C473.6 0 484.5 4.539 492.6 12.62L547.4 67.38C555.5 75.46 559.1 86.42 559.1 97.84C559.1 107 557.1 115.1 551.6 123.4L350.4 396.5C341.3 408.8 326.1 416 311.7 416H239.1L214.6 441.4C202.1 453.9 181.9 453.9 169.4 441.4L118.6 390.6C106.1 378.1 106.1 357.9 118.6 345.4L143.1 320zM489.4 99.92L460.1 70.59L245 229L330.1 314.1L489.4 99.92zM23.03 466.3L86.06 403.3L156.7 473.9L125.7 504.1C121.2 509.5 115.1 512 108.7 512H40C26.75 512 16 501.3 16 488V483.3C16 476.1 18.53 470.8 23.03 466.3V466.3z" - } - }, - "free": [ - "solid" - ] - }, - "hill-avalanche": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e507", - "label": "Hill Avalanche", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M161.4 91.58C160.5 87.87 160 83.99 160 80C160 53.49 181.5 32 208 32C229.9 32 248.3 46.62 254.1 66.62C268.5 45.7 292.7 32 320 32C364.2 32 400 67.82 400 112C400 119.4 398.1 126.6 397.1 133.5C426.9 145.1 448 174.1 448 208C448 236.4 433.2 261.3 410.9 275.5L492.6 357.2C508.2 372.8 533.6 372.8 549.2 357.2C564.8 341.6 564.8 316.2 549.2 300.6C533.6 284.1 508.2 284.1 492.6 300.6L458.7 266.7C493 232.3 548.8 232.3 583.1 266.7C617.5 301 617.5 356.8 583.1 391.1C552.8 421.4 505.9 425 471.7 401.9L161.4 91.58zM512 64C512 81.67 497.7 96 480 96C462.3 96 448 81.67 448 64C448 46.33 462.3 32 480 32C497.7 32 512 46.33 512 64zM480 160C480 142.3 494.3 128 512 128C529.7 128 544 142.3 544 160C544 177.7 529.7 192 512 192C494.3 192 480 177.7 480 160zM456.1 443.7C482.2 468.9 464.3 512 428.7 512H112C67.82 512 32 476.2 32 432V115.3C32 79.68 75.09 61.83 100.3 87.03L456.1 443.7z" - } - }, - "free": [ - "solid" - ] - }, - "hill-rockslide": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e508", - "label": "Hill Rockslide", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M252.4 103.8C249.7 98.97 249.7 93.03 252.4 88.16L279.4 40.16C282.2 35.12 287.6 32 293.4 32H346.6C352.4 32 357.8 35.12 360.6 40.16L387.6 88.16C390.3 93.03 390.3 98.97 387.6 103.8L360.6 151.8C357.8 156.9 352.4 160 346.6 160H293.4C287.6 160 282.2 156.9 279.4 151.8L252.4 103.8zM424.1 443.7C450.2 468.9 432.3 512 396.7 512H80C35.82 512 0 476.2 0 432V115.3C0 79.68 43.09 61.83 68.28 87.03L424.1 443.7zM456.2 376.6C451.1 373.8 448 368.4 448 362.6V309.4C448 303.6 451.1 298.2 456.2 295.4L504.2 268.4C509 265.7 514.1 265.7 519.8 268.4L567.8 295.4C572.9 298.2 576 303.6 576 309.4V362.6C576 368.4 572.9 373.8 567.8 376.6L519.8 403.6C514.1 406.3 509 406.3 504.2 403.6L456.2 376.6zM192 64C192 81.67 177.7 96 160 96C142.3 96 128 81.67 128 64C128 46.33 142.3 32 160 32C177.7 32 192 46.33 192 64zM352 256C352 238.3 366.3 224 384 224C401.7 224 416 238.3 416 256C416 273.7 401.7 288 384 288C366.3 288 352 273.7 352 256z" - } - }, - "free": [ - "solid" - ] - }, - "hippo": { - "changes": [ - "5.4.0", - "5.10.1", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6ed", - "aliases": { - "unicodes": { - "composite": [ - "1f99b" - ], - "secondary": [ - "10f6ed" - ] - } - }, - "label": "Hippo", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M407 47.03C416.4 37.66 431.6 37.66 440.1 47.03L458.2 64.21C460.1 64.07 462 64 463.1 64H495.1C507.2 64 517.9 66.31 527.6 70.48L543 55.03C552.4 45.66 567.6 45.66 576.1 55.03C586.3 64.4 586.3 79.6 576.1 88.97L564 101.9C571.6 114.1 575.1 128.6 575.1 144C575.1 154.2 583.4 162.8 592.7 166.1C620.6 179.5 639.1 207.5 639.1 240C639.1 266.2 627.4 289.4 607.1 304V336C607.1 344.8 600.8 352 591.1 352H559.1C551.2 352 543.1 344.8 543.1 336V320H479.1V336C479.1 344.8 472.8 352 463.1 352H431.1C423.2 352 415.1 344.8 415.1 336V318.4C404.2 316 393.3 310.1 383.1 304C382.5 302.9 381.1 301.7 379.7 300.5C362.7 285.9 351.1 264.2 351.1 240C351.1 231.2 344.8 224 335.1 224C327.2 224 319.1 231.2 319.1 240C319.1 284.7 346.2 323.2 383.1 341.2V352C383.1 369.7 398.3 384 415.1 384H447.1V448C447.1 465.7 433.7 480 415.1 480H351.1C334.3 480 319.1 465.7 319.1 448V372C300.2 379.7 278.6 384 255.1 384C233.4 384 211.8 379.7 191.1 372V448C191.1 465.7 177.7 480 159.1 480H95.1C78.33 480 63.1 465.7 63.1 448V329.1L45.93 369.7C40.55 381.9 26.36 387.3 14.25 381.9C2.138 376.5-3.317 362.4 2.067 350.3L23.1 300.9C29.27 289 31.1 276.2 31.1 263.2C31.1 155.7 117.2 68.02 223.8 64.13L223.1 64H288C329.7 64 371.4 76.07 405.2 89.73C406.9 87.9 408.7 86.15 410.5 84.48L407 80.97C397.7 71.6 397.7 56.4 407 47.03H407zM455.1 208C442.7 208 431.1 218.7 431.1 232C431.1 245.3 442.7 256 455.1 256C469.3 256 479.1 245.3 479.1 232C479.1 218.7 469.3 208 455.1 208zM567.1 256C581.3 256 591.1 245.3 591.1 232C591.1 218.7 581.3 208 567.1 208C554.7 208 543.1 218.7 543.1 232C543.1 245.3 554.7 256 567.1 256zM463.1 128C455.2 128 447.1 135.2 447.1 144C447.1 152.8 455.2 160 463.1 160C472.8 160 479.1 152.8 479.1 144C479.1 135.2 472.8 128 463.1 128zM527.1 160C536.8 160 543.1 152.8 543.1 144C543.1 135.2 536.8 128 527.1 128C519.2 128 511.1 135.2 511.1 144C511.1 152.8 519.2 160 527.1 160z" - } - }, - "free": [ - "solid" - ] - }, - "hips": { - "changes": [ - "5.0.5" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f452", - "label": "Hips", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M251.6 157.6c0-1.9-.9-2.8-2.8-2.8h-40.9c-1.6 0-2.7 1.4-2.7 2.8v201.8c0 1.4 1.1 2.8 2.7 2.8h40.9c1.9 0 2.8-.9 2.8-2.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4V80.2c0-1.8-.9-2.7-2.8-2.7H2.7c-1.8 0-2.7 .9-2.7 2.7v279.2c0 1.9 .9 2.8 2.7 2.8h41c1.9 0 2.8-.9 2.8-2.8V223.3c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27v122.6c0 9 7.3 16.3 16.4 16.3h27.3c1.8 0 2.7-.9 2.7-2.8V223.3c0-23.4-9.3-41.8-28-55.3zm478.4 110.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4v-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5 .4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6l53.6 23.5c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4 .2-4.4 2.3v34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3 .7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5v183.5c0 .8 .6 2.7 2.7 2.7h40.9c1.9 0 2.8-.9 2.8-2.7V348c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7 .1-60.3-48.2-108.6-108.6-108.6zm0 170.9c-17.2 0-31.9-6.1-44-18.2-12.2-12.2-18.2-26.8-18.2-44 0-34.5 27.6-62.2 62.2-62.2 34.5 0 62.2 27.6 62.2 62.2 .1 34.3-27.3 62.2-62.2 62.2zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z" - } - }, - "free": [ - "brands" - ] - }, - "hire-a-helper": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b0", - "label": "HireAHelper", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M443.1 0H71.9C67.9 37.3 37.4 67.8 0 71.7v371.5c37.4 4.9 66 32.4 71.9 68.8h372.2c3-36.4 32.5-65.8 67.9-69.8V71.7c-36.4-5.9-65-35.3-68.9-71.7zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8H200.4c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8V151.3c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8h109.2c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4v101.2c0 83.4 .1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z" - } - }, - "free": [ - "brands" - ] - }, - "hive": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e07f", - "label": "Hive Blockchain Network", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M260.4 254.9 131.5 33.1a2.208 2.208 0 0 0 -3.829 .009L.3 254.9A2.234 2.234 0 0 0 .3 257.1L129.1 478.9a2.208 2.208 0 0 0 3.83-.009L260.4 257.1A2.239 2.239 0 0 0 260.4 254.9zm39.08-25.71a2.19 2.19 0 0 0 1.9 1.111h66.51a2.226 2.226 0 0 0 1.9-3.341L259.1 33.11a2.187 2.187 0 0 0 -1.9-1.111H190.7a2.226 2.226 0 0 0 -1.9 3.341zM511.7 254.9 384.9 33.11A2.2 2.2 0 0 0 382.1 32h-66.6a2.226 2.226 0 0 0 -1.906 3.34L440.7 256 314.5 476.7a2.226 2.226 0 0 0 1.906 3.34h66.6a2.2 2.2 0 0 0 1.906-1.112L511.7 257.1A2.243 2.243 0 0 0 511.7 254.9zM366 284.9H299.5a2.187 2.187 0 0 0 -1.9 1.111l-108.8 190.6a2.226 2.226 0 0 0 1.9 3.341h66.51a2.187 2.187 0 0 0 1.9-1.111l108.8-190.6A2.226 2.226 0 0 0 366 284.9z" - } - }, - "free": [ - "brands" - ] - }, - "hockey-puck": { - "changes": [ - "5.0.5", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f453", - "aliases": { - "unicodes": { - "secondary": [ - "10f453" - ] - } - }, - "label": "Hockey Puck", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 160c0-53 114.6-96 256-96s256 43 256 96s-114.6 96-256 96S0 213 0 160zM255.1 303.1C156.4 303.1 56.73 283.4 0 242.2V352c0 53 114.6 96 256 96s256-43 256-96V242.2C455.3 283.4 355.6 303.1 255.1 303.1z" - } - }, - "free": [ - "solid" - ] - }, - "holly-berry": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7aa", - "aliases": { - "unicodes": { - "secondary": [ - "10f7aa" - ] - } - }, - "label": "Holly Berry", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M287.1 143.1c0 26.5 21.5 47.1 47.1 47.1c26.5 0 48-21.5 48-47.1s-21.5-47.1-48-47.1C309.5 95.99 287.1 117.5 287.1 143.1zM176 191.1c26.5 0 47.1-21.5 47.1-47.1S202.5 95.96 176 95.96c-26.5 0-47.1 21.5-47.1 47.1S149.5 191.1 176 191.1zM303.1 47.1C303.1 21.5 282.5 0 255.1 0c-26.5 0-47.1 21.5-47.1 47.1S229.5 95.99 255.1 95.99C282.5 95.99 303.1 74.5 303.1 47.1zM243.7 242.6C245.3 229.7 231.9 220.1 219.5 225.5C179.7 242.8 137.8 251.4 96.72 250.8C86.13 250.6 78.49 260.7 81.78 270.4C86.77 285.7 90.33 301.4 92.44 317.7c2.133 16.15-9.387 31.26-26.12 34.23c-16.87 2.965-33.7 4.348-50.48 4.152c-10.6-.0586-18.37 10.05-15.08 19.74c12.4 35.79 16.57 74.93 12.12 114.7c-1.723 14.96 13.71 25.67 28.02 19.8c38.47-15.95 78.77-23.81 118.2-23.34c10.58 .1953 18.36-9.91 15.07-19.6c-5.141-15.15-8.68-31.06-10.79-47.34c-2.133-16.16 9.371-31.13 26.24-34.09c16.73-2.973 33.57-4.496 50.36-4.301c10.73 .0781 18.51-10.03 15.22-19.72C242.5 324.7 238.5 283.9 243.7 242.6zM496.2 356.1c-16.78 .1953-33.61-1.188-50.48-4.152c-16.73-2.973-28.25-18.08-26.12-34.23c2.115-16.28 5.67-32.05 10.66-47.32c3.289-9.691-4.35-19.81-14.93-19.62c-41.11 .6484-83.01-7.965-122.7-25.23c-6.85-2.969-13.71-1.18-18.47 2.953c1.508 5.836 2.102 11.93 1.332 18.05c-4.539 36.23-1.049 72.56 10.12 105.1c3.395 9.988 3.029 20.73-.4766 30.52c12.44 .5 24.89 1.602 37.28 3.801c16.87 2.957 28.37 17.93 26.24 34.09c-2.115 16.27-5.654 32.19-10.79 47.34c-3.289 9.691 4.486 19.8 15.07 19.6c39.47-.4766 79.77 7.383 118.2 23.34c14.31 5.867 29.74-4.844 28.02-19.8c-4.451-39.81-.2832-78.95 12.12-114.7C514.5 366.1 506.8 356 496.2 356.1z" - } - }, - "free": [ - "solid" - ] - }, - "hooli": { - "changes": [ - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f427", - "label": "Hooli", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144.5 352l38.3 .8c-13.2-4.6-26-10.2-38.3-16.8zm57.7-5.3v5.3l-19.4 .8c36.5 12.5 69.9 14.2 94.7 7.2-19.9 .2-45.8-2.6-75.3-13.3zm408.9-115.2c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zm-29 120.5H640V241.5h-57.9zm-73.7 0h57.9V156.7L508.4 184zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9zm-106.2-71.9c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1v-20.7l-22.5 10.6c-54.4-22.1-89-18.2-97.3 .1 0 0-24.9 32.8 61.8 110.8V352h57.9v-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4v-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6v-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15V317c18 12.2 37.3 22.1 57.7 29.6v-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9v-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184v63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1zm226.5 120.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5v-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9z" - } - }, - "free": [ - "brands" - ] - }, - "hornbill": { - "changes": [ - "5.1.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f592", - "label": "Hornbill", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M76.38 370.3a37.8 37.8 0 1 1 -32.07-32.42c-78.28-111.3 52-190.5 52-190.5-5.86 43-8.24 91.16-8.24 91.16-67.31 41.49 .93 64.06 39.81 72.87a140.4 140.4 0 0 0 131.7 91.94c1.92 0 3.77-.21 5.67-.28l.11 18.86c-99.22 1.39-158.7-29.14-188.9-51.6zm108-327.7A37.57 37.57 0 0 0 181 21.45a37.95 37.95 0 1 0 -31.17 54.22c-22.55 29.91-53.83 89.57-52.42 190l21.84-.15c0-.9-.14-1.77-.14-2.68A140.4 140.4 0 0 1 207 132.7c8-37.71 30.7-114.3 73.8-44.29 0 0 48.14 2.38 91.18 8.24 0 0-77.84-128-187.6-54.06zm304.2 134.2a37.94 37.94 0 1 0 -53.84-28.7C403 126.1 344.9 99 251.3 100.3l.14 22.5c2.7-.15 5.39-.41 8.14-.41a140.4 140.4 0 0 1 130.5 88.76c39.1 9 105.1 31.58 38.46 72.54 0 0-2.34 48.13-8.21 91.16 0 0 133.4-81.16 49-194.6a37.45 37.45 0 0 0 19.31-3.5zM374.1 436.2c21.43-32.46 46.42-89.69 45.14-179.7l-19.52 .14c.08 2.06 .3 4.07 .3 6.15a140.3 140.3 0 0 1 -91.39 131.4c-8.85 38.95-31.44 106.7-72.77 39.49 0 0-48.12-2.34-91.19-8.22 0 0 79.92 131.3 191.9 51a37.5 37.5 0 0 0 3.64 14 37.93 37.93 0 1 0 33.89-54.29z" - } - }, - "free": [ - "brands" - ] - }, - "horse": { - "changes": [ - "5.4.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6f0", - "aliases": { - "unicodes": { - "composite": [ - "1f40e" - ], - "secondary": [ - "10f6f0" - ] - } - }, - "label": "Horse", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M575.9 76.61c0-8.125-3.05-15.84-8.55-21.84c-3.875-4-8.595-9.125-13.72-14.5c11.12-6.75 19.47-17.51 22.22-30.63c.9999-5-2.849-9.641-7.974-9.641L447.9 0c-70.62 0-127.9 57.25-127.9 128L159.1 128c-28.87 0-54.38 12.1-72 33.12L87.1 160C39.5 160 .0001 199.5 .0001 248L0 304c0 8.875 7.125 15.1 15.1 15.1L31.1 320c8.874 0 15.1-7.125 15.1-16l.0005-56c0-13.25 6.884-24.4 16.76-31.65c-.125 2.5-.758 5.024-.758 7.649c0 27.62 11.87 52.37 30.5 69.87l-25.65 68.61c-4.586 12.28-5.312 25.68-2.128 38.4l21.73 86.89C92.02 502 104.8 512 119.5 512h32.98c20.81 0 36.08-19.55 31.05-39.74L162.2 386.9l23.78-63.61l133.1 22.34L319.1 480c0 17.67 14.33 32 31.1 32h31.1c17.67 0 31.1-14.33 31.1-32l.0166-161.8C435.7 297.1 447.1 270.5 447.1 240c0-.25-.1025-.3828-.1025-.6328V136.9L463.9 144l18.95 37.72c7.481 14.86 25.08 21.55 40.52 15.34l32.54-13.05c12.13-4.878 20.11-16.67 20.09-29.74L575.9 76.61zM511.9 96c-8.75 0-15.1-7.125-15.1-16S503.1 64 511.9 64c8.874 0 15.1 7.125 15.1 16S520.8 96 511.9 96z" - } - }, - "free": [ - "solid" - ] - }, - "horse-head": { - "changes": [ - "5.6.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ab", - "aliases": { - "unicodes": { - "secondary": [ - "10f7ab" - ] - } - }, - "label": "Horse Head", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M509.8 332.5l-69.89-164.3c-14.88-41.25-50.38-70.98-93.01-79.24c18-10.63 46.35-35.9 34.23-82.29c-1.375-5.001-7.112-7.972-11.99-6.097l-202.3 75.66C35.89 123.4 0 238.9 0 398.8v81.24C0 497.7 14.25 512 32 512h236.2c23.75 0 39.3-25.03 28.55-46.28l-40.78-81.71V383.3c-45.63-3.5-84.66-30.7-104.3-69.58c-1.625-3.125-.9342-6.951 1.566-9.327l12.11-12.11c3.875-3.875 10.64-2.692 12.89 2.434c14.88 33.63 48.17 57.38 87.42 57.38c17.13 0 33.05-5.091 46.8-13.22l46 63.9c6 8.501 15.75 13.34 26 13.34h50.28c8.501 0 16.61-3.388 22.61-9.389l45.34-39.84C511.6 357.7 514.4 344.2 509.8 332.5zM328.1 223.1c-13.25 0-23.96-10.75-23.96-24c0-13.25 10.75-23.92 24-23.92s23.94 10.73 23.94 23.98C352 213.3 341.3 223.1 328.1 223.1z" - } - }, - "free": [ - "solid" - ] - }, - "hospital": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0f8", - "aliases": { - "names": [ - "hospital-alt", - "hospital-wide" - ], - "unicodes": { - "composite": [ - "1f3e5", - "f47d" - ], - "primary": [ - "f47d" - ], - "secondary": [ - "10f0f8", - "10f47d" - ] - } - }, - "label": "hospital", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M192 48C192 21.49 213.5 0 240 0H400C426.5 0 448 21.49 448 48V512H368V432C368 405.5 346.5 384 320 384C293.5 384 272 405.5 272 432V512H192V48zM312 64C303.2 64 296 71.16 296 80V104H272C263.2 104 256 111.2 256 120V136C256 144.8 263.2 152 272 152H296V176C296 184.8 303.2 192 312 192H328C336.8 192 344 184.8 344 176V152H368C376.8 152 384 144.8 384 136V120C384 111.2 376.8 104 368 104H344V80C344 71.16 336.8 64 328 64H312zM160 96V512H48C21.49 512 0 490.5 0 464V320H80C88.84 320 96 312.8 96 304C96 295.2 88.84 288 80 288H0V224H80C88.84 224 96 216.8 96 208C96 199.2 88.84 192 80 192H0V144C0 117.5 21.49 96 48 96H160zM592 96C618.5 96 640 117.5 640 144V192H560C551.2 192 544 199.2 544 208C544 216.8 551.2 224 560 224H640V288H560C551.2 288 544 295.2 544 304C544 312.8 551.2 320 560 320H640V464C640 490.5 618.5 512 592 512H480V96H592z" - }, - "regular": { - "last_modified": 1658443573063, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M296 96C296 87.16 303.2 80 312 80H328C336.8 80 344 87.16 344 96V120H368C376.8 120 384 127.2 384 136V152C384 160.8 376.8 168 368 168H344V192C344 200.8 336.8 208 328 208H312C303.2 208 296 200.8 296 192V168H272C263.2 168 256 160.8 256 152V136C256 127.2 263.2 120 272 120H296V96zM408 0C447.8 0 480 32.24 480 72V80H568C607.8 80 640 112.2 640 152V440C640 479.8 607.8 512 568 512H71.98C32.19 512 0 479.8 0 440V152C0 112.2 32.24 80 72 80H160V72C160 32.24 192.2 0 232 0L408 0zM480 128V464H568C581.3 464 592 453.3 592 440V336H536C522.7 336 512 325.3 512 312C512 298.7 522.7 288 536 288H592V240H536C522.7 240 512 229.3 512 216C512 202.7 522.7 192 536 192H592V152C592 138.7 581.3 128 568 128H480zM48 152V192H104C117.3 192 128 202.7 128 216C128 229.3 117.3 240 104 240H48V288H104C117.3 288 128 298.7 128 312C128 325.3 117.3 336 104 336H48V440C48 453.3 58.74 464 71.98 464H160V128H72C58.75 128 48 138.7 48 152V152zM208 464H272V400C272 373.5 293.5 352 320 352C346.5 352 368 373.5 368 400V464H432V72C432 58.75 421.3 48 408 48H232C218.7 48 208 58.75 208 72V464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hospital-user": { - "changes": [ - "5.7.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f80d", - "aliases": { - "unicodes": { - "secondary": [ - "10f80d" - ] - } - }, - "label": "Hospital with User", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573258, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M272 0C298.5 0 320 21.49 320 48V367.8C281.8 389.2 256 430 256 476.9C256 489.8 259.6 501.8 265.9 512H48C21.49 512 0 490.5 0 464V384H144C152.8 384 160 376.8 160 368C160 359.2 152.8 352 144 352H0V288H144C152.8 288 160 280.8 160 272C160 263.2 152.8 256 144 256H0V48C0 21.49 21.49 0 48 0H272zM152 64C143.2 64 136 71.16 136 80V104H112C103.2 104 96 111.2 96 120V136C96 144.8 103.2 152 112 152H136V176C136 184.8 143.2 192 152 192H168C176.8 192 184 184.8 184 176V152H208C216.8 152 224 144.8 224 136V120C224 111.2 216.8 104 208 104H184V80C184 71.16 176.8 64 168 64H152zM512 272C512 316.2 476.2 352 432 352C387.8 352 352 316.2 352 272C352 227.8 387.8 192 432 192C476.2 192 512 227.8 512 272zM288 477.1C288 425.7 329.7 384 381.1 384H482.9C534.3 384 576 425.7 576 477.1C576 496.4 560.4 512 541.1 512H322.9C303.6 512 288 496.4 288 477.1V477.1z" - } - }, - "free": [ - "solid" - ] - }, - "hot-tub-person": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f593", - "aliases": { - "names": [ - "hot-tub" - ], - "unicodes": { - "secondary": [ - "10f593" - ] - } - }, - "label": "Hot tub person", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M414.3 177.6C415.3 185.9 421.1 192 429.1 192h16.13c9.5 0 17-8.625 16-18.38C457.8 134.5 439.6 99.12 412 76.5c-17.38-14.12-28.88-36.75-32-62.12C379 6.125 372.3 0 364.3 0h-16.12c-9.5 0-17.12 8.625-16 18.38c4.375 39.12 22.38 74.5 50.13 97.13C399.6 129.6 411 152.2 414.3 177.6zM306.3 177.6C307.3 185.9 313.1 192 321.1 192h16.13c9.5 0 17-8.625 16-18.38C349.8 134.5 331.6 99.12 304 76.5c-17.38-14.12-28.88-36.75-32-62.12C271 6.125 264.3 0 256.3 0h-16.17C230.6 0 223 8.625 224.1 18.38C228.5 57.5 246.5 92.88 274.3 115.5C291.6 129.6 303 152.2 306.3 177.6zM480 256h-224L145.1 172.8C133.1 164.5 120.5 160 106.6 160H64C28.62 160 0 188.6 0 224v224c0 35.38 28.62 64 64 64h384c35.38 0 64-28.62 64-64V288C512 270.4 497.6 256 480 256zM128 440C128 444.4 124.4 448 120 448h-16C99.62 448 96 444.4 96 440v-112C96 323.6 99.62 320 104 320h16C124.4 320 128 323.6 128 328V440zM224 440C224 444.4 220.4 448 216 448h-16C195.6 448 192 444.4 192 440v-112C192 323.6 195.6 320 200 320h16C220.4 320 224 323.6 224 328V440zM320 440c0 4.375-3.625 8-8 8h-16C291.6 448 288 444.4 288 440v-112c0-4.375 3.625-8 8-8h16c4.375 0 8 3.625 8 8V440zM416 440c0 4.375-3.625 8-8 8h-16C387.6 448 384 444.4 384 440v-112c0-4.375 3.625-8 8-8h16c4.375 0 8 3.625 8 8V440zM64 128c35.38 0 64-28.62 64-64S99.38 0 64 0S0 28.62 0 64S28.62 128 64 128z" - } - }, - "free": [ - "solid" - ] - }, - "hotdog": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f80f", - "aliases": { - "unicodes": { - "composite": [ - "1f32d" - ], - "secondary": [ - "10f80f" - ] - } - }, - "label": "Hot Dog", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M488.6 23.44c-31.06-31.19-81.76-31.16-112.8 .0313L24.46 374.8c-20.83 19.96-29.19 49.66-21.83 77.6c7.36 27.94 29.07 49.65 57.02 57.01c27.94 7.36 57.64-1 77.6-21.83l351.3-351.3C519.7 105.2 519.8 54.5 488.6 23.44zM438.8 118.4c-19.59 19.59-37.39 22.52-51.74 25.01c-12.97 2.246-22.33 3.867-34.68 16.22c-12.35 12.35-13.97 21.71-16.22 34.69c-2.495 14.35-5.491 32.19-25.08 51.78c-19.59 19.59-37.43 22.58-51.78 25.08C246.3 273.4 236.9 275.1 224.6 287.4c-12.35 12.35-13.97 21.71-16.22 34.68C205.9 336.4 202.9 354.3 183.3 373.9c-19.59 19.59-37.43 22.58-51.78 25.08C118.5 401.2 109.2 402.8 96.83 415.2c-6.238 6.238-16.34 6.238-22.58 0c-6.238-6.238-6.238-16.35 0-22.58c19.59-19.59 37.43-22.58 51.78-25.07c12.97-2.245 22.33-3.869 34.68-16.22c12.35-12.35 13.97-21.71 16.22-34.69c2.495-14.35 5.492-32.19 25.08-51.78s37.43-22.58 51.78-25.08c12.97-2.246 22.33-3.869 34.68-16.22s13.97-21.71 16.22-34.68c2.495-14.35 5.492-32.19 25.08-51.78c19.59-19.59 37.43-22.58 51.78-25.07c12.97-2.246 22.28-3.815 34.63-16.17c6.238-6.238 16.36-6.238 22.59 0C444.1 102.1 444.1 112.2 438.8 118.4zM32.44 321.5l290-290l-11.48-11.6c-24.95-24.95-63.75-26.57-86.58-3.743L17.1 223.4C-5.73 246.3-4.108 285.1 20.84 310L32.44 321.5zM480.6 189.5l-290 290l11.48 11.6c24.95 24.95 63.75 26.57 86.58 3.743l207.3-207.3c22.83-22.83 21.21-61.63-3.743-86.58L480.6 189.5z" - } - }, - "free": [ - "solid" - ] - }, - "hotel": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f594", - "aliases": { - "unicodes": { - "composite": [ - "1f3e8" - ], - "secondary": [ - "10f594" - ] - } - }, - "label": "Hotel", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 0C497.7 0 512 14.33 512 32C512 49.67 497.7 64 480 64V448C497.7 448 512 462.3 512 480C512 497.7 497.7 512 480 512H304V448H208V512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448V64C14.33 64 0 49.67 0 32C0 14.33 14.33 0 32 0H480zM112 96C103.2 96 96 103.2 96 112V144C96 152.8 103.2 160 112 160H144C152.8 160 160 152.8 160 144V112C160 103.2 152.8 96 144 96H112zM224 144C224 152.8 231.2 160 240 160H272C280.8 160 288 152.8 288 144V112C288 103.2 280.8 96 272 96H240C231.2 96 224 103.2 224 112V144zM368 96C359.2 96 352 103.2 352 112V144C352 152.8 359.2 160 368 160H400C408.8 160 416 152.8 416 144V112C416 103.2 408.8 96 400 96H368zM96 240C96 248.8 103.2 256 112 256H144C152.8 256 160 248.8 160 240V208C160 199.2 152.8 192 144 192H112C103.2 192 96 199.2 96 208V240zM240 192C231.2 192 224 199.2 224 208V240C224 248.8 231.2 256 240 256H272C280.8 256 288 248.8 288 240V208C288 199.2 280.8 192 272 192H240zM352 240C352 248.8 359.2 256 368 256H400C408.8 256 416 248.8 416 240V208C416 199.2 408.8 192 400 192H368C359.2 192 352 199.2 352 208V240zM256 288C211.2 288 173.5 318.7 162.1 360.2C159.7 373.1 170.7 384 184 384H328C341.3 384 352.3 373.1 349 360.2C338.5 318.7 300.8 288 256 288z" - } - }, - "free": [ - "solid" - ] - }, - "hotjar": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b1", - "label": "Hotjar", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M414.9 161.5C340.2 29 121.1 0 121.1 0S222.2 110.4 93 197.7C11.3 252.8-21 324.4 14 402.6c26.8 59.9 83.5 84.3 144.6 93.4-29.2-55.1-6.6-122.4-4.1-129.6 57.1 86.4 165 0 110.8-93.9 71 15.4 81.6 138.6 27.1 215.5 80.5-25.3 134.1-88.9 148.8-145.6 15.5-59.3 3.7-127.9-26.3-180.9z" - } - }, - "free": [ - "brands" - ] - }, - "hourglass": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f254", - "aliases": { - "names": [ - "hourglass-empty" - ], - "unicodes": { - "composite": [ - "f250", - "23f3" - ], - "secondary": [ - "10f254" - ] - } - }, - "label": "Hourglass", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 32C0 14.33 14.33 0 32 0H352C369.7 0 384 14.33 384 32C384 49.67 369.7 64 352 64V74.98C352 117.4 335.1 158.1 305.1 188.1L237.3 256L305.1 323.9C335.1 353.9 352 394.6 352 437V448C369.7 448 384 462.3 384 480C384 497.7 369.7 512 352 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448V437C32 394.6 48.86 353.9 78.86 323.9L146.7 256L78.86 188.1C48.86 158.1 32 117.4 32 74.98V64C14.33 64 0 49.67 0 32zM96 64V74.98C96 100.4 106.1 124.9 124.1 142.9L192 210.7L259.9 142.9C277.9 124.9 288 100.4 288 74.98V64H96zM96 448H288V437C288 411.6 277.9 387.1 259.9 369.1L192 301.3L124.1 369.1C106.1 387.1 96 411.6 96 437V448z" - }, - "regular": { - "last_modified": 1658443573064, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M360 0C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24C0 10.75 10.75 0 24 0L360 0zM192 289.9L110.5 371.5C90.96 390.1 80 417.4 80 445V464H304V445C304 417.4 293 390.1 273.5 371.5L192 289.9zM192 222.1L273.5 140.5C293 121 304 94.56 304 66.98V47.1H80V66.98C80 94.56 90.96 121 110.5 140.5L192 222.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hourglass-end": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f253", - "aliases": { - "names": [ - "hourglass-3" - ], - "unicodes": { - "composite": [ - "231b" - ], - "secondary": [ - "10f253" - ] - } - }, - "label": "Hourglass End", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 0C369.7 0 384 14.33 384 32C384 49.67 369.7 64 352 64V74.98C352 117.4 335.1 158.1 305.1 188.1L237.3 256L305.1 323.9C335.1 353.9 352 394.6 352 437V448C369.7 448 384 462.3 384 480C384 497.7 369.7 512 352 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448V437C32 394.6 48.86 353.9 78.86 323.9L146.7 256L78.86 188.1C48.86 158.1 32 117.4 32 74.98V64C14.33 64 0 49.67 0 32C0 14.33 14.33 0 32 0H352zM124.1 142.9L192 210.7L259.9 142.9C277.9 124.9 288 100.4 288 74.98V64H96V74.98C96 100.4 106.1 124.9 124.1 142.9z" - } - }, - "free": [ - "solid" - ] - }, - "hourglass-half": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f252", - "aliases": { - "names": [ - "hourglass-2" - ], - "unicodes": { - "secondary": [ - "10f252" - ] - } - }, - "label": "Hourglass Half", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 0C369.7 0 384 14.33 384 32C384 49.67 369.7 64 352 64V74.98C352 117.4 335.1 158.1 305.1 188.1L237.3 256L305.1 323.9C335.1 353.9 352 394.6 352 437V448C369.7 448 384 462.3 384 480C384 497.7 369.7 512 352 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448V437C32 394.6 48.86 353.9 78.86 323.9L146.7 256L78.86 188.1C48.86 158.1 32 117.4 32 74.98V64C14.33 64 0 49.67 0 32C0 14.33 14.33 0 32 0H352zM111.1 128H272C282.4 112.4 288 93.98 288 74.98V64H96V74.98C96 93.98 101.6 112.4 111.1 128zM111.1 384H272C268.5 378.7 264.5 373.7 259.9 369.1L192 301.3L124.1 369.1C119.5 373.7 115.5 378.7 111.1 384V384z" - }, - "regular": { - "last_modified": 1658443573064, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 24C0 10.75 10.75 0 24 0H360C373.3 0 384 10.75 384 24C384 37.25 373.3 48 360 48H352V66.98C352 107.3 335.1 145.1 307.5 174.5L225.9 256L307.5 337.5C335.1 366 352 404.7 352 445V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H32V445C32 404.7 48.01 366 76.52 337.5L158.1 256L76.52 174.5C48.01 145.1 32 107.3 32 66.98V48H24C10.75 48 0 37.25 0 24V24zM99.78 384H284.2C281 379.6 277.4 375.4 273.5 371.5L192 289.9L110.5 371.5C106.6 375.4 102.1 379.6 99.78 384H99.78zM284.2 128C296.1 110.4 304 89.03 304 66.98V48H80V66.98C80 89.03 87 110.4 99.78 128H284.2z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "hourglass-start": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f251", - "aliases": { - "names": [ - "hourglass-1" - ], - "unicodes": { - "secondary": [ - "10f251" - ] - } - }, - "label": "Hourglass Start", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 0C369.7 0 384 14.33 384 32C384 49.67 369.7 64 352 64V74.98C352 117.4 335.1 158.1 305.1 188.1L237.3 256L305.1 323.9C335.1 353.9 352 394.6 352 437V448C369.7 448 384 462.3 384 480C384 497.7 369.7 512 352 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448V437C32 394.6 48.86 353.9 78.86 323.9L146.7 256L78.86 188.1C48.86 158.1 32 117.4 32 74.98V64C14.33 64 0 49.67 0 32C0 14.33 14.33 0 32 0H352zM259.9 369.1L192 301.3L124.1 369.1C106.1 387.1 96 411.6 96 437V448H288V437C288 411.6 277.9 387.1 259.9 369.1V369.1z" - } - }, - "free": [ - "solid" - ] - }, - "house": { - "changes": [ - "1.0.0", - "5.0.0", - "5.7.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f015", - "aliases": { - "names": [ - "home", - "home-alt", - "home-lg-alt" - ], - "unicodes": { - "composite": [ - "f80a", - "f80c", - "1f3e0" - ], - "primary": [ - "f80a", - "f80c" - ], - "secondary": [ - "10f015", - "10f80c", - "10f80a" - ] - } - }, - "label": "House", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6H511.8L512.5 447.7C512.5 450.5 512.3 453.1 512 455.8V472C512 494.1 494.1 512 472 512H456C454.9 512 453.8 511.1 452.7 511.9C451.3 511.1 449.9 512 448.5 512H392C369.9 512 352 494.1 352 472V384C352 366.3 337.7 352 320 352H256C238.3 352 224 366.3 224 384V472C224 494.1 206.1 512 184 512H128.1C126.6 512 125.1 511.9 123.6 511.8C122.4 511.9 121.2 512 120 512H104C81.91 512 64 494.1 64 472V360C64 359.1 64.03 358.1 64.09 357.2V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5L575.8 255.5z" - } - }, - "free": [ - "solid" - ] - }, - "house-chimney": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e3af", - "aliases": { - "names": [ - "home-lg" - ], - "unicodes": { - "composite": [ - "f80b" - ], - "primary": [ - "f80b" - ], - "secondary": [ - "10f80b" - ] - } - }, - "label": "House Chimney", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M511.8 287.6L512.5 447.7C512.5 450.5 512.3 453.1 512 455.8V472C512 494.1 494.1 512 472 512H456C454.9 512 453.8 511.1 452.7 511.9C451.3 511.1 449.9 512 448.5 512H392C369.9 512 352 494.1 352 472V384C352 366.3 337.7 352 320 352H256C238.3 352 224 366.3 224 384V472C224 494.1 206.1 512 184 512H128.1C126.6 512 125.1 511.9 123.6 511.8C122.4 511.9 121.2 512 120 512H104C81.91 512 64 494.1 64 472V360C64 359.1 64.03 358.1 64.09 357.2V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L416 100.7V64C416 46.33 430.3 32 448 32H480C497.7 32 512 46.33 512 64V185L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6L511.8 287.6z" - } - }, - "free": [ - "solid" - ] - }, - "house-chimney-crack": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6f1", - "aliases": { - "names": [ - "house-damage" - ], - "unicodes": { - "secondary": [ - "10f6f1" - ] - } - }, - "label": "House crack", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573259, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6H511.8L512.5 447.7C512.6 483.2 483.9 512 448.5 512H326.4L288 448L368.8 380.7C376.6 374.1 376.5 362.1 368.5 355.8L250.6 263.2C235.1 251.7 216.8 270.1 227.8 285.2L288 368L202.5 439.2C196.5 444.3 194.1 452.1 199.1 459.8L230.4 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L416 100.7V64C416 46.33 430.3 32 448 32H480C497.7 32 512 46.33 512 64V185L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5L575.8 255.5z" - } - }, - "free": [ - "solid" - ] - }, - "house-chimney-medical": { - "changes": [ - "5.7.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7f2", - "aliases": { - "names": [ - "clinic-medical" - ], - "unicodes": { - "secondary": [ - "10f7f2" - ] - } - }, - "label": "House medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M511.8 287.6L512.5 447.7C512.6 483.2 483.9 512 448.5 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L416 100.7V64C416 46.33 430.3 32 448 32H480C497.7 32 512 46.33 512 64V185L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6L511.8 287.6zM400 248C400 239.2 392.8 232 384 232H328V176C328 167.2 320.8 160 312 160H264C255.2 160 248 167.2 248 176V232H192C183.2 232 176 239.2 176 248V296C176 304.8 183.2 312 192 312H248V368C248 376.8 255.2 384 264 384H312C320.8 384 328 376.8 328 368V312H384C392.8 312 400 304.8 400 296V248z" - } - }, - "free": [ - "solid" - ] - }, - "house-chimney-user": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e065", - "aliases": { - "unicodes": { - "secondary": [ - "10e065" - ] - } - }, - "label": "House User", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M511.8 287.6L512.5 447.7C512.6 483.2 483.9 512 448.5 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L416 100.7V64C416 46.33 430.3 32 448 32H480C497.7 32 512 46.33 512 64V185L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6L511.8 287.6zM288 288C323.3 288 352 259.3 352 224C352 188.7 323.3 160 288 160C252.7 160 224 188.7 224 224C224 259.3 252.7 288 288 288zM192 416H384C392.8 416 400 408.8 400 400C400 355.8 364.2 320 320 320H256C211.8 320 176 355.8 176 400C176 408.8 183.2 416 192 416z" - } - }, - "free": [ - "solid" - ] - }, - "house-chimney-window": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e00d", - "aliases": { - "unicodes": { - "secondary": [ - "10e00d" - ] - } - }, - "label": "House with Window + Chimney", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6H511.8L512.5 447.7C512.6 483.2 483.9 512 448.5 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L416 100.7V64C416 46.33 430.3 32 448 32H480C497.7 32 512 46.33 512 64V185L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5L575.8 255.5zM248 192C234.7 192 224 202.7 224 216V296C224 309.3 234.7 320 248 320H328C341.3 320 352 309.3 352 296V216C352 202.7 341.3 192 328 192H248z" - } - }, - "free": [ - "solid" - ] - }, - "house-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e509", - "label": "House Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 352H256C238.3 352 224 366.3 224 384V472C224 494.1 206.1 512 184 512H128.1C126.6 512 125.1 511.9 123.6 511.8C122.4 511.9 121.2 512 120 512H104C81.91 512 64 494.1 64 472V360C64 359.1 64.03 358.1 64.09 357.2V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L522.1 193.9C513.6 192.7 504.9 192 496 192C404.2 192 328.8 262.3 320.7 352L320 352zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM540.7 324.7L480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "house-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e50a", - "label": "House Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 352H256C238.3 352 224 366.3 224 384V472C224 494.1 206.1 512 184 512H128.1C126.6 512 125.1 511.9 123.6 511.8C122.4 511.9 121.2 512 120 512H104C81.91 512 64 494.1 64 472V360C64 359.1 64.03 358.1 64.09 357.2V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L522.1 193.9C513.6 192.7 504.9 192 496 192C404.2 192 328.8 262.3 320.7 352L320 352zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "house-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e50b", - "label": "House Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 352H256C238.3 352 224 366.3 224 384V472C224 494.1 206.1 512 184 512H128.1C126.6 512 125.1 511.9 123.6 511.8C122.4 511.9 121.2 512 120 512H104C81.91 512 64 494.1 64 472V360C64 359.1 64.03 358.1 64.09 357.2V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L522.1 193.9C513.6 192.7 504.9 192 496 192C404.2 192 328.8 262.3 320.7 352L320 352zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368L555.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "house-crack": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e3b1", - "label": "House Simple Crack", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M511.8 287.6L512.5 447.7C512.6 483.2 483.9 512 448.5 512H326.4L288 448L368.8 380.7C376.6 374.1 376.5 362.1 368.5 355.8L250.6 263.2C235.1 251.7 216.8 270.1 227.8 285.2L288 368L202.5 439.2C196.5 444.3 194.1 452.1 199.1 459.8L230.4 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6H511.8z" - } - }, - "free": [ - "solid" - ] - }, - "house-fire": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e50c", - "label": "House Fire", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M288 350.1L288 352H256C238.3 352 224 366.3 224 384V472C224 494.1 206.1 512 184 512H128.1C126.6 512 125.1 511.9 123.6 511.8C122.4 511.9 121.2 512 120 512H104C81.91 512 64 494.1 64 472V360C64 359.1 64.03 358.1 64.09 357.2V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L447.3 128.1C434.9 127.2 422.3 131.1 412.5 139.9C377.1 171.5 346.9 207.6 325.2 242.7C304.3 276.5 288 314.9 288 350.1H288zM509 221.5C516.9 211.6 525.8 200.8 535.5 191.1C541.1 186.9 549.9 186.9 555.5 192C580.2 214.7 601.1 244.7 615.8 273.2C630.4 301.2 640 329.9 640 350.1C640 437.9 568.7 512 480 512C390.3 512 320 437.8 320 350.1C320 323.7 332.7 291.5 352.4 259.5C372.4 227.2 400.5 193.4 433.8 163.7C439.4 158.7 447.1 158.8 453.5 163.8C473.3 181.6 491.8 200.7 509 221.5V221.5zM550 336.1C548 332.1 546 328.1 543 324.1L507 367C507 367 449 293 445 288C415 324.1 400 346 400 370C400 419 436 448 481 448C499 448 515 443 530 432.1C560 412 568 370 550 336.1z" - } - }, - "free": [ - "solid" - ] - }, - "house-flag": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e50d", - "label": "House Flag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M480 0C497.7 0 512 14.33 512 32H624C632.8 32 640 39.16 640 48V176C640 184.8 632.8 192 624 192H512V512H448V32C448 14.33 462.3 0 480 0V0zM416 512H416.1L416.8 512H352C334.3 512 320 497.7 320 480V384C320 366.3 305.7 352 288 352H224C206.3 352 192 366.3 192 384V480C192 497.7 177.7 512 160 512H96C78.33 512 64 497.7 64 480V288H31.1C18.61 288 6.631 279.7 1.985 267.1C-2.661 254.5 1.005 240.4 11.17 231.7L235.2 39.7C247.2 29.43 264.8 29.43 276.8 39.7L416 159V512z" - } - }, - "free": [ - "solid" - ] - }, - "house-flood-water": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e50e", - "label": "House Flood", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M482.8 134.1C494 142.3 498.7 156.7 494.4 169.9C490.1 183.1 477.9 192 464 192H447.4L447.7 265.2C446.1 266.1 444.6 267.1 443.2 268.1C425.2 280.5 403 288.5 384 288.5C364.4 288.5 343.2 280.8 324.8 268.1C302.8 252.6 273.3 252.6 251.2 268.1C234 279.9 213.2 288.5 192 288.5C172.1 288.5 150.8 280.5 132.9 268.1C131.3 267 129.7 265.1 128 265V192H112C98.14 192 85.86 183.1 81.57 169.9C77.28 156.7 81.97 142.3 93.18 134.1L269.2 6.12C280.4-2.04 295.6-2.04 306.8 6.12L482.8 134.1zM269.5 309.9C280.6 302 295.4 302 306.5 309.9C328.1 325.4 356.5 336 384 336C410.9 336 439.4 325.2 461.4 309.9L461.5 309.9C473.4 301.4 489.5 302.1 500.7 311.6C515 323.5 533.2 332.6 551.3 336.8C568.5 340.8 579.2 358.1 575.2 375.3C571.2 392.5 553.1 403.2 536.7 399.2C512.2 393.4 491.9 382.6 478.5 374.2C449.5 389.7 417 400 384 400C352.1 400 323.4 390.1 303.6 381.1C297.7 378.5 292.5 375.8 288 373.4C283.5 375.8 278.3 378.5 272.4 381.1C252.6 390.1 223.9 400 192 400C158.1 400 126.5 389.7 97.5 374.2C84.12 382.6 63.79 393.4 39.27 399.2C22.06 403.2 4.854 392.5 .8426 375.3C-3.169 358.1 7.532 340.8 24.74 336.8C42.84 332.6 60.96 323.5 75.31 311.6C86.46 302.1 102.6 301.4 114.5 309.9L114.6 309.9C136.7 325.2 165.1 336 192 336C219.5 336 247 325.4 269.5 309.9H269.5zM461.4 421.9L461.5 421.9C473.4 413.4 489.5 414.1 500.7 423.6C515 435.5 533.2 444.6 551.3 448.8C568.5 452.8 579.2 470.1 575.2 487.3C571.2 504.5 553.1 515.2 536.7 511.2C512.2 505.4 491.9 494.6 478.5 486.2C449.5 501.7 417 512 384 512C352.1 512 323.4 502.1 303.6 493.1C297.7 490.5 292.5 487.8 288 485.4C283.5 487.8 278.3 490.5 272.4 493.1C252.6 502.1 223.9 512 192 512C158.1 512 126.5 501.7 97.5 486.2C84.12 494.6 63.79 505.4 39.27 511.2C22.06 515.2 4.853 504.5 .8422 487.3C-3.169 470.1 7.532 452.8 24.74 448.8C42.84 444.6 60.96 435.5 75.31 423.6C86.46 414.1 102.6 413.4 114.5 421.9L114.6 421.9C136.7 437.2 165.1 448 192 448C219.5 448 247 437.4 269.5 421.9C280.6 414 295.4 414 306.5 421.9C328.1 437.4 356.5 448 384 448C410.9 448 439.4 437.2 461.4 421.9H461.4z" - } - }, - "free": [ - "solid" - ] - }, - "house-flood-water-circle-arrow-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e50f", - "label": "House Flood-circle-arrow-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M288 144C288 223.5 223.5 288 144 288C64.47 288 0 223.5 0 144C0 64.47 64.47 .0002 144 .0002C223.5 .0002 288 64.47 288 144zM140.7 99.31L169.4 128H80C71.16 128 64 135.2 64 144C64 152.8 71.16 160 80 160H169.4L140.7 188.7C134.4 194.9 134.4 205.1 140.7 211.3C146.9 217.6 157.1 217.6 163.3 211.3L219.3 155.3C225.6 149.1 225.6 138.9 219.3 132.7L163.3 76.69C157.1 70.44 146.9 70.44 140.7 76.69C134.4 82.94 134.4 93.07 140.7 99.31V99.31zM301 64.42L381.2 6.12C392.4-2.04 407.6-2.04 418.8 6.12L594.8 134.1C606 142.3 610.7 156.7 606.4 169.9C602.1 183.1 589.9 192 576 192H559.4L559.7 276.4C557.5 274.8 555.3 273.2 553.2 271.5C531 252.8 498.9 251.4 475.2 268.1C457.2 280.5 435 288.5 416 288.5C396.4 288.5 375.2 280.8 356.8 268.1C334.8 252.6 305.3 252.6 283.2 268.1C273.2 274.1 262 280.7 250.2 284.3C292.6 252.2 319.1 201.3 319.1 144C319.1 115.4 313.2 88.32 301 64.42V64.42zM416 336C442.9 336 471.4 325.2 493.4 309.9L493.5 309.9C505.4 301.4 521.5 302.1 532.7 311.6C547 323.5 565.2 332.6 583.3 336.8C600.5 340.8 611.2 358.1 607.2 375.3C603.2 392.5 585.1 403.2 568.7 399.2C544.2 393.4 523.9 382.6 510.5 374.2C481.5 389.7 449 400 416 400C384.1 400 355.4 390.1 335.6 381.1C329.7 378.5 324.5 375.8 320 373.4C315.5 375.8 310.3 378.5 304.4 381.1C284.6 390.1 255.9 400 224 400C190.1 400 158.5 389.7 129.5 374.2C116.1 382.6 95.79 393.4 71.27 399.2C54.06 403.2 36.85 392.5 32.84 375.3C28.83 358.1 39.53 340.8 56.74 336.8C74.84 332.6 92.96 323.5 107.3 311.6C118.5 302.1 134.6 301.4 146.5 309.9L146.6 309.9C168.7 325.2 197.1 336 224 336C251.5 336 279 325.4 301.5 309.9C312.6 302 327.4 302 338.5 309.9C360.1 325.4 388.5 336 416 336H416zM338.5 421.9C360.1 437.4 388.5 448 416 448C442.9 448 471.4 437.2 493.4 421.9L493.5 421.9C505.4 413.4 521.5 414.1 532.7 423.6C547 435.5 565.2 444.6 583.3 448.8C600.5 452.8 611.2 470.1 607.2 487.3C603.2 504.5 585.1 515.2 568.7 511.2C544.2 505.4 523.9 494.6 510.5 486.2C481.5 501.7 449 512 416 512C384.1 512 355.4 502.1 335.6 493.1C329.7 490.5 324.5 487.8 320 485.4C315.5 487.8 310.3 490.5 304.4 493.1C284.6 502.1 255.9 512 224 512C190.1 512 158.5 501.7 129.5 486.2C116.1 494.6 95.79 505.4 71.27 511.2C54.06 515.2 36.85 504.5 32.84 487.3C28.83 470.1 39.53 452.8 56.74 448.8C74.84 444.6 92.96 435.5 107.3 423.6C118.5 414.1 134.6 413.4 146.5 421.9L146.6 421.9C168.7 437.2 197.1 448 224 448C251.5 448 279 437.4 301.5 421.9C312.6 414 327.4 414 338.5 421.9H338.5z" - } - }, - "free": [ - "solid" - ] - }, - "house-laptop": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e066", - "aliases": { - "names": [ - "laptop-house" - ], - "unicodes": { - "secondary": [ - "10e066" - ] - } - }, - "label": "House laptop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573261, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M218.3 8.486C230.6-2.829 249.4-2.829 261.7 8.486L469.7 200.5C476.4 206.7 480 215.2 480 224H336C316.9 224 299.7 232.4 288 245.7V208C288 199.2 280.8 192 272 192H208C199.2 192 192 199.2 192 208V272C192 280.8 199.2 288 208 288H271.1V416H112C85.49 416 64 394.5 64 368V256H32C18.83 256 6.996 247.9 2.198 235.7C-2.6 223.4 .6145 209.4 10.3 200.5L218.3 8.486zM336 256H560C577.7 256 592 270.3 592 288V448H624C632.8 448 640 455.2 640 464C640 490.5 618.5 512 592 512H303.1C277.5 512 255.1 490.5 255.1 464C255.1 455.2 263.2 448 271.1 448H303.1V288C303.1 270.3 318.3 256 336 256zM352 304V448H544V304H352z" - } - }, - "free": [ - "solid" - ] - }, - "house-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e510", - "label": "House Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M384 480C384 491.7 387.1 502.6 392.6 512H392C369.9 512 352 494.1 352 472V384C352 366.3 337.7 352 320 352H256C238.3 352 224 366.3 224 384V472C224 494.1 206.1 512 184 512H128.1C126.6 512 125.1 511.9 123.6 511.8C122.4 511.9 121.2 512 120 512H104C81.91 512 64 494.1 64 472V360C64 359.1 64.03 358.1 64.09 357.2V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L490.7 166.3C447.2 181.7 416 223.2 416 272V296.6C396.9 307.6 384 328.3 384 352L384 480zM528 192C572.2 192 608 227.8 608 272V320C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 320 448 320V272C448 227.8 483.8 192 528 192zM528 240C510.3 240 496 254.3 496 272V320H560V272C560 254.3 545.7 240 528 240z" - } - }, - "free": [ - "solid" - ] - }, - "house-medical": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e3b2", - "label": "House Simple Medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6H511.8L512.5 447.7C512.6 483.2 483.9 512 448.5 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5H575.8zM328 232V176C328 167.2 320.8 160 312 160H264C255.2 160 248 167.2 248 176V232H192C183.2 232 176 239.2 176 248V296C176 304.8 183.2 312 192 312H248V368C248 376.8 255.2 384 264 384H312C320.8 384 328 376.8 328 368V312H384C392.8 312 400 304.8 400 296V248C400 239.2 392.8 232 384 232H328z" - } - }, - "free": [ - "solid" - ] - }, - "house-medical-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e511", - "label": "House Medical-circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320.5 381.5C324.6 435.5 353 482.6 394.8 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L522.1 193.9C513.6 192.7 504.9 192 496 192C453.6 192 414.7 207 384.3 232L384 232H328V176C328 167.2 320.8 160 311.1 160H263.1C255.2 160 247.1 167.2 247.1 176V232H191.1C183.2 232 175.1 239.2 175.1 248V296C175.1 304.8 183.2 312 191.1 312H247.1V368C247.1 376.8 255.2 384 263.1 384H311.1C315.1 384 318 383.1 320.5 381.5H320.5zM328 312H329.1C328.7 313.1 328.4 314.3 328 315.4V312zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM540.7 324.7L480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "house-medical-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e512", - "label": "House Medical-circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320.5 381.5C324.6 435.5 353 482.6 394.8 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L522.1 193.9C513.6 192.7 504.9 192 496 192C453.6 192 414.7 207 384.3 232L384 232H328V176C328 167.2 320.8 160 311.1 160H263.1C255.2 160 247.1 167.2 247.1 176V232H191.1C183.2 232 175.1 239.2 175.1 248V296C175.1 304.8 183.2 312 191.1 312H247.1V368C247.1 376.8 255.2 384 263.1 384H311.1C315.1 384 318 383.1 320.5 381.5H320.5zM328 312H329.1C328.7 313.1 328.4 314.3 328 315.4V312zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "house-medical-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e513", - "label": "House Medical-circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320.5 381.5C324.6 435.5 353 482.6 394.8 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L522.1 193.9C513.6 192.7 504.9 192 496 192C453.6 192 414.7 207 384.3 232L384 232H328V176C328 167.2 320.8 160 311.1 160H263.1C255.2 160 247.1 167.2 247.1 176V232H191.1C183.2 232 175.1 239.2 175.1 248V296C175.1 304.8 183.2 312 191.1 312H247.1V368C247.1 376.8 255.2 384 263.1 384H311.1C315.1 384 318 383.1 320.5 381.5H320.5zM328 312H329.1C328.7 313.1 328.4 314.3 328 315.4V312zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368L555.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "house-medical-flag": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e514", - "label": "House Medical-flag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M480 0C497.7 0 512 14.33 512 32H624C632.8 32 640 39.16 640 48V176C640 184.8 632.8 192 624 192H512V512H448V32C448 14.33 462.3 0 480 0V0zM416 512H416.1L416.8 512H96C78.33 512 64 497.7 64 480V288H31.1C18.61 288 6.631 279.7 1.985 267.1C-2.661 254.5 1.005 240.4 11.17 231.7L235.2 39.7C247.2 29.43 264.8 29.43 276.8 39.7L416 159V512zM223.1 256H175.1C167.2 256 159.1 263.2 159.1 272V304C159.1 312.8 167.2 320 175.1 320H223.1V368C223.1 376.8 231.2 384 239.1 384H271.1C280.8 384 287.1 376.8 287.1 368V320H336C344.8 320 352 312.8 352 304V272C352 263.2 344.8 256 336 256H287.1V208C287.1 199.2 280.8 192 271.1 192H239.1C231.2 192 223.1 199.2 223.1 208V256z" - } - }, - "free": [ - "solid" - ] - }, - "house-signal": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e012", - "aliases": { - "unicodes": { - "secondary": [ - "10e012" - ] - } - }, - "label": "House Signal", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M314.3 8.486C326.6-2.829 345.4-2.829 357.7 8.486L565.7 200.5C575.4 209.4 578.6 223.4 573.8 235.7C569 247.9 557.2 256 544 256H512V368C512 394.5 490.5 416 464 416H296.4C272.7 317.5 195.4 239.1 97.06 215.8C98.58 210.1 101.7 204.7 106.3 200.5L314.3 8.486zM304 192C295.2 192 287.1 199.2 287.1 208V272C287.1 280.8 295.2 288 304 288H368C376.8 288 384 280.8 384 272V208C384 199.2 376.8 192 368 192H304zM256 488C256 501.3 245.3 512 232 512C218.7 512 208 501.3 208 488C208 386.4 125.6 304 24 304C10.75 304 0 293.3 0 280C0 266.7 10.75 256 24 256C152.1 256 256 359.9 256 488zM0 480C0 462.3 14.33 448 32 448C49.67 448 64 462.3 64 480C64 497.7 49.67 512 32 512C14.33 512 0 497.7 0 480zM0 376C0 362.7 10.75 352 24 352C99.11 352 160 412.9 160 488C160 501.3 149.3 512 136 512C122.7 512 112 501.3 112 488C112 439.4 72.6 400 24 400C10.75 400 0 389.3 0 376z" - } - }, - "free": [ - "solid" - ] - }, - "house-tsunami": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e515", - "label": "House Tsunami", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M184.4 96C207.4 96 229.3 101.1 248.1 110.3C264.1 117.7 271.9 136.8 264.4 152.8C256.1 168.8 237.9 175.7 221.9 168.3C210.6 162.1 197.9 160 184.4 160C135.5 160 95.1 199.5 95.1 248C95.1 287 121.6 320.2 157.1 331.7C167.1 334.5 179.6 336 191.1 336C192 336 192.1 336 192.1 336C219.6 335.1 247.1 325.4 269.5 309.9C280.6 302 295.4 302 306.5 309.9C328.1 325.4 356.5 336 384 336C410.9 336 439.4 325.2 461.4 309.9L461.5 309.9C473.4 301.4 489.5 302.1 500.7 311.6C515 323.5 533.2 332.6 551.3 336.8C568.5 340.8 579.2 358.1 575.2 375.3C571.2 392.5 553.1 403.2 536.7 399.2C512.2 393.4 491.9 382.6 478.5 374.2C449.5 389.7 417 400 384 400C352.1 400 323.4 390.1 303.6 381.1C297.7 378.5 292.5 375.8 288 373.4C283.5 375.8 278.3 378.5 272.4 381.1C252.6 390.1 223.9 400 192 400C190.2 400 188.3 399.1 186.5 399.9C185.8 399.1 185.1 400 184.4 400C169.8 400 155.6 397.9 142.2 394.1C53.52 372.1 .0006 291.6 .0006 200C.0006 87.99 95.18 0 209 0C232.8 0 255.8 3.823 277.2 10.9C294 16.44 303.1 34.54 297.6 51.32C292 68.1 273.9 77.21 257.2 71.67C242.2 66.72 225.1 64 209 64C152.6 64 104.9 93.82 80.81 136.5C108 111.4 144.4 96 184.4 96H184.4zM428.8 46.43C440.2 37.88 455.8 37.9 467.2 46.47L562.7 118.4C570.7 124.5 575.4 133.9 575.5 143.9L575.8 287.9C575.8 290.8 575.4 293.6 574.7 296.3C569.8 293.6 564.3 291.5 558.5 290.1C545.4 287.1 531.8 280.3 521.2 271.5C499 252.8 466.9 251.4 443.2 268.1C425.2 280.5 403 288.5 384 288.5C364.4 288.5 343.2 280.8 324.8 268.1C323.3 267 321.6 265.1 320 265V143.1C320 133.9 324.7 124.4 332.8 118.4L428.8 46.43zM461.4 421.9L461.5 421.9C473.4 413.4 489.5 414.1 500.7 423.6C515 435.5 533.2 444.6 551.3 448.8C568.5 452.8 579.2 470.1 575.2 487.3C571.2 504.5 553.1 515.2 536.7 511.2C512.2 505.4 491.9 494.6 478.5 486.2C449.5 501.7 417 512 384 512C352.1 512 323.4 502.1 303.6 493.1C297.7 490.5 292.5 487.8 288 485.4C283.5 487.8 278.3 490.5 272.4 493.1C252.6 502.1 223.9 512 192 512C158.1 512 126.5 501.7 97.5 486.2C84.12 494.6 63.79 505.4 39.27 511.2C22.06 515.2 4.853 504.5 .8422 487.3C-3.169 470.1 7.532 452.8 24.74 448.8C42.84 444.6 60.96 435.5 75.31 423.6C86.46 414.1 102.6 413.4 114.5 421.9L114.6 421.9C136.7 437.2 165.1 448 192 448C219.5 448 247 437.4 269.5 421.9C280.6 414 295.4 414 306.5 421.9C328.1 437.4 356.5 448 384 448C410.9 448 439.4 437.2 461.4 421.9H461.4z" - } - }, - "free": [ - "solid" - ] - }, - "house-user": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1b0", - "aliases": { - "names": [ - "home-user" - ] - }, - "label": "Home User", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573262, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M575.8 255.5C575.8 273.5 560.8 287.6 543.8 287.6H511.8L512.5 447.7C512.6 483.2 483.9 512 448.5 512H128.1C92.75 512 64.09 483.3 64.09 448V287.6H32.05C14.02 287.6 0 273.5 0 255.5C0 246.5 3.004 238.5 10.01 231.5L266.4 8.016C273.4 1.002 281.4 0 288.4 0C295.4 0 303.4 2.004 309.5 7.014L564.8 231.5C572.8 238.5 576.9 246.5 575.8 255.5H575.8zM288 160C252.7 160 224 188.7 224 224C224 259.3 252.7 288 288 288C323.3 288 352 259.3 352 224C352 188.7 323.3 160 288 160zM256 320C211.8 320 176 355.8 176 400C176 408.8 183.2 416 192 416H384C392.8 416 400 408.8 400 400C400 355.8 364.2 320 320 320H256z" - } - }, - "free": [ - "solid" - ] - }, - "houzz": { - "changes": [ - "4.4.0", - "5.0.0", - "5.0.9", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f27c", - "label": "Houzz", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M275.9 330.7H171.3V480H17V32h109.5v104.5l305.1 85.6V480H275.9z" - } - }, - "free": [ - "brands" - ] - }, - "hryvnia-sign": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6f2", - "aliases": { - "names": [ - "hryvnia" - ], - "unicodes": { - "composite": [ - "20b4" - ], - "secondary": [ - "10f6f2" - ] - } - }, - "label": "Hryvnia sign", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M115.1 120.1C102.2 132 82.05 129.8 71.01 115.1C59.97 102.2 62.21 82.05 76.01 71.01L81.94 66.27C109.7 44.08 144.1 32 179.6 32H223C285.4 32 336 82.59 336 144.1C336 155.6 334.5 166.1 331.7 176H352C369.7 176 384 190.3 384 208C384 225.7 369.7 240 352 240H284.2C282.5 241.1 280.8 242.1 279.1 243.1L228.5 272H352C369.7 272 384 286.3 384 304C384 321.7 369.7 336 352 336H123.1C116 344.6 112 355.5 112 367C112 394.1 133.9 416 160.1 416H204.4C225.3 416 245.7 408.9 262.1 395.8L268 391C281.8 379.1 301.9 382.2 312.1 396C324 409.8 321.8 429.9 307.1 440.1L302.1 445.7C274.3 467.9 239.9 480 204.4 480H160.1C98.59 480 48 429.4 48 367C48 356.4 49.49 345.9 52.33 336H32C14.33 336 0 321.7 0 304C0 286.3 14.33 272 32 272H99.82C101.5 270.9 103.2 269.9 104.9 268.9L155.5 240H32C14.33 240 0 225.7 0 208C0 190.3 14.33 176 32 176H260.9C267.1 167.4 272 156.5 272 144.1C272 117.9 250.1 96 223 96H179.6C158.7 96 138.3 103.1 121.9 116.2L115.1 120.1z" - } - }, - "free": [ - "solid" - ] - }, - "html5": { - "changes": [ - "3.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f13b", - "label": "HTML 5 Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z" - } - }, - "free": [ - "brands" - ] - }, - "hubspot": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b2", - "label": "HubSpot", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M267.4 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L203.1 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8-7.6 7.6-11.8 17.8-11.8 28.6s4.2 20.9 11.8 28.5c7.6 7.6 17.8 11.6 28.5 11.6 10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7V116c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S311.2 47 311.2 73.1c0 19.1 10.7 35.5 28.2 42.9v61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8C129.8 23.4 106.3 0 77.4 0 48.6 0 25.2 23.4 25.2 52.2c0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6l163.2 114.7zm89.5 163.6c-38.1 0-69-30.9-69-69s30.9-69 69-69 69 30.9 69 69-30.9 69-69 69z" - } - }, - "free": [ - "brands" - ] - }, - "hurricane": { - "changes": [ - "5.5.0", - "5.10.1", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f751", - "aliases": { - "unicodes": { - "secondary": [ - "10f751" - ] - } - }, - "label": "Hurricane", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 223.1c-17.75 0-32 14.25-32 32c0 17.75 14.25 32 32 32s32-14.25 32-32C256 238.2 241.8 223.1 224 223.1zM208 95.98l24.5-74.74c3.75-11.25-5.615-22.49-17.36-21.11C112 12.38 32 101.6 32 208c0 114.9 93.13 208 208 208l-24.5 74.73c-3.75 11.25 5.615 22.5 17.36 21.12C335.1 499.6 416 410.4 416 304C416 189.1 322.9 95.98 208 95.98zM224 351.1c-53 0-96-43-96-96s43-96 96-96s96 43 96 96S277 351.1 224 351.1z" - } - }, - "free": [ - "solid" - ] - }, - "i": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "49", - "aliases": { - "unicodes": { - "composite": [ - "69" - ] - } - }, - "label": "I", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 448c0 17.67-14.31 32-32 32H32c-17.69 0-32-14.33-32-32s14.31-32 32-32h96v-320H32c-17.69 0-32-14.33-32-32s14.31-32 32-32h256c17.69 0 32 14.33 32 32s-14.31 32-32 32h-96v320h96C305.7 416 320 430.3 320 448z" - } - }, - "free": [ - "solid" - ] - }, - "i-cursor": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f246", - "aliases": { - "unicodes": { - "secondary": [ - "10f246" - ] - } - }, - "label": "I Beam Cursor", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M256 480c0 17.69-14.33 31.1-32 31.1c-38.41 0-72.52-17.35-96-44.23c-23.48 26.88-57.59 44.23-96 44.23c-17.67 0-32-14.31-32-31.1s14.33-32 32-32c35.3 0 64-28.72 64-64V288H64C46.33 288 32 273.7 32 256s14.33-32 32-32h32V128c0-35.28-28.7-64-64-64C14.33 64 0 49.69 0 32s14.33-32 32-32c38.41 0 72.52 17.35 96 44.23c23.48-26.88 57.59-44.23 96-44.23c17.67 0 32 14.31 32 32s-14.33 32-32 32c-35.3 0-64 28.72-64 64v96h32c17.67 0 32 14.31 32 32s-14.33 32-32 32h-32v96c0 35.28 28.7 64 64 64C241.7 448 256 462.3 256 480z" - } - }, - "free": [ - "solid" - ] - }, - "ice-cream": { - "changes": [ - "5.7.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f810", - "aliases": { - "unicodes": { - "composite": [ - "1f368" - ], - "secondary": [ - "10f810" - ] - } - }, - "label": "Ice Cream", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M96.06 288.3H351.9L252.6 493.8C250.1 499.2 246 503.8 240.1 507.1C235.9 510.3 230 512 224 512C217.1 512 212.1 510.3 207 507.1C201.1 503.8 197.9 499.2 195.4 493.8L96.06 288.3zM386.3 164C392.1 166.4 397.4 169.9 401.9 174.4C406.3 178.8 409.9 184.1 412.3 189.9C414.7 195.7 415.1 201.1 416 208.3C416 214.5 414.8 220.8 412.4 226.6C409.1 232.4 406.5 237.7 402 242.2C397.6 246.6 392.3 250.2 386.5 252.6C380.7 255 374.4 256.3 368.1 256.3H79.88C67.16 256.3 54.96 251.2 45.98 242.2C37 233.2 31.97 220.1 32 208.3C32.03 195.5 37.1 183.4 46.12 174.4C55.14 165.4 67.35 160.4 80.07 160.4H81.06C80.4 154.9 80.06 149.4 80.04 143.8C80.04 105.7 95.2 69.11 122.2 42.13C149.2 15.15 185.8 0 223.1 0C262.1 0 298.7 15.15 325.7 42.13C352.7 69.11 367.9 105.7 367.9 143.8C367.9 149.4 367.6 154.9 366.9 160.4H367.9C374.2 160.4 380.5 161.6 386.3 164z" - } - }, - "free": [ - "solid" - ] - }, - "icicles": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ad", - "aliases": { - "unicodes": { - "secondary": [ - "10f7ad" - ] - } - }, - "label": "Icicles", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M511.4 37.87l-87.54 467.6c-1.625 8.623-14.04 8.634-15.67 .0104L341.4 141.7L295.7 314.2c-2.375 7.624-12.98 7.624-15.36 0L246.3 180.9l-46.49 196.9c-1.875 8.373-13.64 8.373-15.51 0L139.1 190.5L103.6 314.5c-2.375 7.124-12.64 7.198-15.14 .0744L1.357 41.24C-4.768 20.75 10.61 0 31.98 0h448C500 0 515.2 18.25 511.4 37.87z" - } - }, - "free": [ - "solid" - ] - }, - "icons": { - "changes": [ - "5.9.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f86d", - "aliases": { - "names": [ - "heart-music-camera-bolt" - ], - "unicodes": { - "secondary": [ - "10f86d" - ] - } - }, - "label": "Icons", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M500.3 7.251C507.7 13.33 512 22.41 512 31.1V175.1C512 202.5 483.3 223.1 447.1 223.1C412.7 223.1 383.1 202.5 383.1 175.1C383.1 149.5 412.7 127.1 447.1 127.1V71.03L351.1 90.23V207.1C351.1 234.5 323.3 255.1 287.1 255.1C252.7 255.1 223.1 234.5 223.1 207.1C223.1 181.5 252.7 159.1 287.1 159.1V63.1C287.1 48.74 298.8 35.61 313.7 32.62L473.7 .6198C483.1-1.261 492.9 1.173 500.3 7.251H500.3zM74.66 303.1L86.5 286.2C92.43 277.3 102.4 271.1 113.1 271.1H174.9C185.6 271.1 195.6 277.3 201.5 286.2L213.3 303.1H239.1C266.5 303.1 287.1 325.5 287.1 351.1V463.1C287.1 490.5 266.5 511.1 239.1 511.1H47.1C21.49 511.1-.0019 490.5-.0019 463.1V351.1C-.0019 325.5 21.49 303.1 47.1 303.1H74.66zM143.1 359.1C117.5 359.1 95.1 381.5 95.1 407.1C95.1 434.5 117.5 455.1 143.1 455.1C170.5 455.1 191.1 434.5 191.1 407.1C191.1 381.5 170.5 359.1 143.1 359.1zM440.3 367.1H496C502.7 367.1 508.6 372.1 510.1 378.4C513.3 384.6 511.6 391.7 506.5 396L378.5 508C372.9 512.1 364.6 513.3 358.6 508.9C352.6 504.6 350.3 496.6 353.3 489.7L391.7 399.1H336C329.3 399.1 323.4 395.9 321 389.6C318.7 383.4 320.4 376.3 325.5 371.1L453.5 259.1C459.1 255 467.4 254.7 473.4 259.1C479.4 263.4 481.6 271.4 478.7 278.3L440.3 367.1zM116.7 219.1L19.85 119.2C-8.112 90.26-6.614 42.31 24.85 15.34C51.82-8.137 93.26-3.642 118.2 21.83L128.2 32.32L137.7 21.83C162.7-3.642 203.6-8.137 231.6 15.34C262.6 42.31 264.1 90.26 236.1 119.2L139.7 219.1C133.2 225.6 122.7 225.6 116.7 219.1H116.7z" - } - }, - "free": [ - "solid" - ] - }, - "id-badge": { - "changes": [ - "4.7.0", - "5.0.0", - "5.0.3", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2c1", - "aliases": { - "unicodes": { - "secondary": [ - "10f2c1" - ] - } - }, - "label": "Identification Badge", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0h-288C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48v-416C384 21.49 362.5 0 336 0zM192 160c35.35 0 64 28.65 64 64s-28.65 64-64 64S128 259.3 128 224S156.7 160 192 160zM288 416H96c-8.836 0-16-7.164-16-16C80 355.8 115.8 320 160 320h64c44.18 0 80 35.82 80 80C304 408.8 296.8 416 288 416zM240 96h-96C135.2 96 128 88.84 128 80S135.2 64 144 64h96C248.8 64 256 71.16 256 80S248.8 96 240 96z" - }, - "regular": { - "last_modified": 1658443573067, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h256c35.35 0 64-28.65 64-64V64C384 28.65 355.3 0 320 0zM336 448c0 8.836-7.164 16-16 16H64c-8.836 0-16-7.164-16-16V64c0-8.838 7.164-16 16-16h64V64c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32V48h64c8.836 0 16 7.162 16 16V448zM192 288c35.35 0 64-28.65 64-64s-28.65-64-64-64C156.7 160 128 188.7 128 224S156.7 288 192 288zM224 320H160c-44.18 0-80 35.82-80 80C80 408.8 87.16 416 96 416h192c8.836 0 16-7.164 16-16C304 355.8 268.2 320 224 320z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "id-card": { - "changes": [ - "4.7.0", - "5.0.0", - "5.0.3", - "5.8.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2c2", - "aliases": { - "names": [ - "drivers-license" - ], - "unicodes": { - "composite": [ - "f2c3" - ], - "secondary": [ - "10f2c2" - ] - } - }, - "label": "Identification Card", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M528 32h-480C21.49 32 0 53.49 0 80V96h576V80C576 53.49 554.5 32 528 32zM0 432C0 458.5 21.49 480 48 480h480c26.51 0 48-21.49 48-48V128H0V432zM368 192h128C504.8 192 512 199.2 512 208S504.8 224 496 224h-128C359.2 224 352 216.8 352 208S359.2 192 368 192zM368 256h128C504.8 256 512 263.2 512 272S504.8 288 496 288h-128C359.2 288 352 280.8 352 272S359.2 256 368 256zM368 320h128c8.836 0 16 7.164 16 16S504.8 352 496 352h-128c-8.836 0-16-7.164-16-16S359.2 320 368 320zM176 192c35.35 0 64 28.66 64 64s-28.65 64-64 64s-64-28.66-64-64S140.7 192 176 192zM112 352h128c26.51 0 48 21.49 48 48c0 8.836-7.164 16-16 16h-192C71.16 416 64 408.8 64 400C64 373.5 85.49 352 112 352z" - }, - "regular": { - "last_modified": 1658443573067, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M368 344h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 344 368 344zM208 320c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C144 291.3 172.7 320 208 320zM512 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 416c0 8.822-7.178 16-16 16h-192c0-44.18-35.82-80-80-80h-64C131.8 352 96 387.8 96 432H64c-8.822 0-16-7.178-16-16V160h480V416zM368 264h96c13.25 0 24-10.75 24-24s-10.75-24-24-24h-96c-13.25 0-24 10.75-24 24S354.8 264 368 264z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "id-card-clip": { - "changes": [ - "5.0.7", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f47f", - "aliases": { - "names": [ - "id-card-alt" - ], - "unicodes": { - "secondary": [ - "10f47f" - ] - } - }, - "label": "Id card clip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 128h64c17.67 0 32-14.33 32-32V32c0-17.67-14.33-32-32-32H256C238.3 0 224 14.33 224 32v64C224 113.7 238.3 128 256 128zM528 64H384v48C384 138.5 362.5 160 336 160h-96C213.5 160 192 138.5 192 112V64H48C21.49 64 0 85.49 0 112v352C0 490.5 21.49 512 48 512h480c26.51 0 48-21.49 48-48v-352C576 85.49 554.5 64 528 64zM288 224c35.35 0 64 28.66 64 64s-28.65 64-64 64s-64-28.66-64-64S252.7 224 288 224zM384 448H192c-8.836 0-16-7.164-16-16C176 405.5 197.5 384 224 384h128c26.51 0 48 21.49 48 48C400 440.8 392.8 448 384 448z" - } - }, - "free": [ - "solid" - ] - }, - "ideal": { - "changes": [ - "5.12.0", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e013", - "label": "iDeal", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M125.6 165.5a49.07 49.07 0 1 0 49.06 49.06A49.08 49.08 0 0 0 125.6 165.5zM86.15 425.8h78.94V285.3H86.15zm151.5-211.6c0-20-10-22.53-18.74-22.53H204.8V237.5h14.05C228.6 237.5 237.6 234.7 237.6 214.2zm201.7 46V168.9h22.75V237.5h33.69C486.5 113.1 388.6 86.19 299.7 86.19H204.8V169h14c25.6 0 41.5 17.35 41.5 45.26 0 28.81-15.52 46-41.5 46h-14V425.9h94.83c144.6 0 194.9-67.16 196.7-165.6zm-109.8 0H273.3V169h54.43v22.73H296v10.58h30V225H296V237.5h33.51zm74.66 0-5.16-17.67H369.3l-5.18 17.67H340.5L368 168.9h32.35l27.53 91.34zM299.6 32H32V480H299.6c161.9 0 251-79.73 251-224.5C550.6 172 518 32 299.6 32zm0 426.9H53.07V53.07H299.6c142.1 0 229.9 64.61 229.9 202.4C529.5 389.6 448.5 458.9 299.6 458.9zm83.86-264.9L376 219.9H392.4l-7.52-25.81z" - } - }, - "free": [ - "brands" - ] - }, - "igloo": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ae", - "aliases": { - "unicodes": { - "secondary": [ - "10f7ae" - ] - } - }, - "label": "Igloo", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573263, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M320 160H48.5C100.2 82.82 188.1 32 288 32C298.8 32 309.5 32.6 320 33.76V160zM352 39.14C424.9 55.67 487.2 99.82 527.5 160H352V39.14zM96 192V320H0C0 274 10.77 230.6 29.94 192H96zM192 320H128V192H448V320H384V352H576V432C576 458.5 554.5 480 528 480H352V352C352 316.7 323.3 288 288 288C252.7 288 224 316.7 224 352V480H48C21.49 480 0 458.5 0 432V352H192V320zM480 192H546.1C565.2 230.6 576 274 576 320H480V192z" - } - }, - "free": [ - "solid" - ] - }, - "image": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f03e", - "aliases": { - "unicodes": { - "secondary": [ - "10f03e" - ] - } - }, - "label": "Image", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M447.1 32h-384C28.64 32-.0091 60.65-.0091 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96C511.1 60.65 483.3 32 447.1 32zM111.1 96c26.51 0 48 21.49 48 48S138.5 192 111.1 192s-48-21.49-48-48S85.48 96 111.1 96zM446.1 407.6C443.3 412.8 437.9 416 432 416H82.01c-6.021 0-11.53-3.379-14.26-8.75c-2.73-5.367-2.215-11.81 1.334-16.68l70-96C142.1 290.4 146.9 288 152 288s9.916 2.441 12.93 6.574l32.46 44.51l93.3-139.1C293.7 194.7 298.7 192 304 192s10.35 2.672 13.31 7.125l128 192C448.6 396 448.9 402.3 446.1 407.6z" - }, - "regular": { - "last_modified": 1658443573068, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M152 120c-26.51 0-48 21.49-48 48s21.49 48 48 48s48-21.49 48-48S178.5 120 152 120zM447.1 32h-384C28.65 32-.0091 60.65-.0091 96v320c0 35.35 28.65 64 63.1 64h384c35.35 0 64-28.65 64-64V96C511.1 60.65 483.3 32 447.1 32zM463.1 409.3l-136.8-185.9C323.8 218.8 318.1 216 312 216c-6.113 0-11.82 2.768-15.21 7.379l-106.6 144.1l-37.09-46.1c-3.441-4.279-8.934-6.809-14.77-6.809c-5.842 0-11.33 2.529-14.78 6.809l-75.52 93.81c0-.0293 0 .0293 0 0L47.99 96c0-8.822 7.178-16 16-16h384c8.822 0 16 7.178 16 16V409.3z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "image-portrait": { - "changes": [ - "5.0.0", - "5.0.3", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3e0", - "aliases": { - "names": [ - "portrait" - ], - "unicodes": { - "secondary": [ - "10f3e0" - ] - } - }, - "label": "Image portrait", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0h-288c-26.51 0-48 21.49-48 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48v-416C384 21.49 362.5 0 336 0zM192 128c35.35 0 64 28.65 64 64s-28.65 64-64 64S128 227.3 128 192S156.7 128 192 128zM288 384H96c-8.836 0-16-7.164-16-16C80 323.8 115.8 288 160 288h64c44.18 0 80 35.82 80 80C304 376.8 296.8 384 288 384z" - } - }, - "free": [ - "solid" - ] - }, - "images": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f302", - "aliases": { - "unicodes": { - "secondary": [ - "10f302" - ] - } - }, - "label": "Images", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M528 32H144c-26.51 0-48 21.49-48 48v256c0 26.51 21.49 48 48 48H528c26.51 0 48-21.49 48-48v-256C576 53.49 554.5 32 528 32zM223.1 96c17.68 0 32 14.33 32 32S241.7 160 223.1 160c-17.67 0-32-14.33-32-32S206.3 96 223.1 96zM494.1 311.6C491.3 316.8 485.9 320 480 320H192c-6.023 0-11.53-3.379-14.26-8.75c-2.73-5.367-2.215-11.81 1.332-16.68l70-96C252.1 194.4 256.9 192 262 192c5.111 0 9.916 2.441 12.93 6.574l22.35 30.66l62.74-94.11C362.1 130.7 367.1 128 373.3 128c5.348 0 10.34 2.672 13.31 7.125l106.7 160C496.6 300 496.9 306.3 494.1 311.6zM456 432H120c-39.7 0-72-32.3-72-72v-240C48 106.8 37.25 96 24 96S0 106.8 0 120v240C0 426.2 53.83 480 120 480h336c13.25 0 24-10.75 24-24S469.3 432 456 432z" - }, - "regular": { - "last_modified": 1658443573068, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 32H160c-35.35 0-64 28.65-64 64v224c0 35.35 28.65 64 64 64H512c35.35 0 64-28.65 64-64V96C576 60.65 547.3 32 512 32zM528 320c0 8.822-7.178 16-16 16h-16l-109.3-160.9C383.7 170.7 378.7 168 373.3 168c-5.352 0-10.35 2.672-13.31 7.125l-62.74 94.11L274.9 238.6C271.9 234.4 267.1 232 262 232c-5.109 0-9.914 2.441-12.93 6.574L176 336H160c-8.822 0-16-7.178-16-16V96c0-8.822 7.178-16 16-16H512c8.822 0 16 7.178 16 16V320zM224 112c-17.67 0-32 14.33-32 32s14.33 32 32 32c17.68 0 32-14.33 32-32S241.7 112 224 112zM456 480H120C53.83 480 0 426.2 0 360v-240C0 106.8 10.75 96 24 96S48 106.8 48 120v240c0 39.7 32.3 72 72 72h336c13.25 0 24 10.75 24 24S469.3 480 456 480z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "imdb": { - "changes": [ - "4.7.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2d8", - "label": "IMDB", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M89.5 323.6H53.93V186.2H89.5V323.6zM156.1 250.5L165.2 186.2H211.5V323.6H180.5V230.9L167.1 323.6H145.8L132.8 232.9L132.7 323.6H101.5V186.2H147.6C148.1 194.5 150.4 204.3 151.9 215.6L156.1 250.5zM223.7 323.6V186.2H250.3C267.3 186.2 277.3 187.1 283.3 188.6C289.4 190.3 294 192.8 297.2 196.5C300.3 199.8 302.3 203.1 303 208.5C303.9 212.9 304.4 221.6 304.4 234.7V282.9C304.4 295.2 303.7 303.4 302.5 307.6C301.4 311.7 299.4 315 296.5 317.3C293.7 319.7 290.1 321.4 285.8 322.3C281.6 323.1 275.2 323.6 266.7 323.6H223.7zM259.2 209.7V299.1C264.3 299.1 267.5 298.1 268.6 296.8C269.7 294.8 270.4 289.2 270.4 280.1V226.8C270.4 220.6 270.3 216.6 269.7 214.8C269.4 213 268.5 211.8 267.1 210.1C265.7 210.1 263 209.7 259.2 209.7V209.7zM316.5 323.6V186.2H350.6V230.1C353.5 227.7 356.7 225.2 360.1 223.5C363.7 222 368.9 221.1 372.9 221.1C377.7 221.1 381.8 221.9 385.2 223.3C388.6 224.8 391.2 226.8 393.2 229.5C394.9 232.1 395.9 234.8 396.3 237.3C396.7 239.9 396.1 245.3 396.1 253.5V292.1C396.1 300.3 396.3 306.4 395.3 310.5C394.2 314.5 391.5 318.1 387.5 320.1C383.4 324 378.6 325.4 372.9 325.4C368.9 325.4 363.7 324.5 360.2 322.9C356.7 321.1 353.5 318.4 350.6 314.9L348.5 323.6L316.5 323.6zM361.6 302.9C362.3 301.1 362.6 296.9 362.6 290.4V255C362.6 249.4 362.3 245.5 361.5 243.8C360.8 241.9 357.8 241.1 355.7 241.1C353.7 241.1 352.3 241.9 351.6 243.4C351 244.9 350.6 248.8 350.6 255V291.4C350.6 297.5 351 301.4 351.8 303C352.4 304.7 353.9 305.5 355.9 305.5C358.1 305.5 360.1 304.7 361.6 302.9L361.6 302.9zM418.4 32.04C434.1 33.27 447.1 47.28 447.1 63.92V448.1C447.1 464.5 435.2 478.5 418.9 479.1C418.6 479.1 418.4 480 418.1 480H29.88C29.6 480 29.32 479.1 29.04 479.9C13.31 478.5 1.093 466.1 0 449.7L.0186 61.78C1.081 45.88 13.82 33.09 30.26 31.1H417.7C417.9 31.1 418.2 32.01 418.4 32.04L418.4 32.04zM30.27 41.26C19 42.01 10.02 51.01 9.257 62.4V449.7C9.63 455.1 11.91 460.2 15.7 464C19.48 467.9 24.51 470.3 29.89 470.7H418.1C429.6 469.7 438.7 459.1 438.7 448.1V63.91C438.7 58.17 436.6 52.65 432.7 48.45C428.8 44.24 423.4 41.67 417.7 41.26L30.27 41.26z" - } - }, - "free": [ - "brands" - ] - }, - "inbox": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f01c", - "aliases": { - "unicodes": { - "secondary": [ - "10f01c" - ] - } - }, - "label": "inbox", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M447 56.25C443.5 42 430.7 31.1 416 31.1H96c-14.69 0-27.47 10-31.03 24.25L3.715 304.9C1.247 314.9 0 325.2 0 335.5v96.47c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48v-96.47c0-10.32-1.247-20.6-3.715-30.61L447 56.25zM352 352H160L128 288H72.97L121 96h270l48.03 192H384L352 352z" - } - }, - "free": [ - "solid" - ] - }, - "indent": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f03c", - "aliases": { - "unicodes": { - "secondary": [ - "10f03c" - ] - } - }, - "label": "Indent", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 64C0 46.33 14.33 32 32 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64zM192 192C192 174.3 206.3 160 224 160H416C433.7 160 448 174.3 448 192C448 209.7 433.7 224 416 224H224C206.3 224 192 209.7 192 192zM416 288C433.7 288 448 302.3 448 320C448 337.7 433.7 352 416 352H224C206.3 352 192 337.7 192 320C192 302.3 206.3 288 224 288H416zM0 448C0 430.3 14.33 416 32 416H416C433.7 416 448 430.3 448 448C448 465.7 433.7 480 416 480H32C14.33 480 0 465.7 0 448zM25.82 347.9C15.31 356.1 0 348.6 0 335.3V176.7C0 163.4 15.31 155.9 25.82 164.1L127.8 243.4C135.1 249.8 135.1 262.2 127.8 268.6L25.82 347.9z" - } - }, - "free": [ - "solid" - ] - }, - "indian-rupee-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1bc", - "aliases": { - "names": [ - "indian-rupee", - "inr" - ] - }, - "label": "Indian Rupee-sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M.0022 64C.0022 46.33 14.33 32 32 32H288C305.7 32 320 46.33 320 64C320 81.67 305.7 96 288 96H231.8C241.4 110.4 248.5 126.6 252.4 144H288C305.7 144 320 158.3 320 176C320 193.7 305.7 208 288 208H252.4C239.2 266.3 190.5 311.2 130.3 318.9L274.6 421.1C288.1 432.2 292.3 452.2 282 466.6C271.8 480.1 251.8 484.3 237.4 474L13.4 314C2.083 305.1-2.716 291.5 1.529 278.2C5.774 264.1 18.09 256 32 256H112C144.8 256 173 236.3 185.3 208H32C14.33 208 .0022 193.7 .0022 176C.0022 158.3 14.33 144 32 144H185.3C173 115.7 144.8 96 112 96H32C14.33 96 .0022 81.67 .0022 64V64z" - } - }, - "free": [ - "solid" - ] - }, - "industry": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f275", - "aliases": { - "unicodes": { - "secondary": [ - "10f275" - ] - } - }, - "label": "Industry", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M128 32C145.7 32 160 46.33 160 64V215.4L316.6 131C332.6 122.4 352 134 352 152.2V215.4L508.6 131C524.6 122.4 544 134 544 152.2V432C544 458.5 522.5 480 496 480H80C53.49 480 32 458.5 32 432V64C32 46.33 46.33 32 64 32H128z" - } - }, - "free": [ - "solid" - ] - }, - "infinity": { - "changes": [ - "5.0.13", - "5.3.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f534", - "aliases": { - "unicodes": { - "composite": [ - "267e", - "221e" - ], - "secondary": [ - "10f534" - ] - } - }, - "label": "Infinity", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M494.9 96.01c-38.78 0-75.22 15.09-102.6 42.5L320 210.8L247.8 138.5c-27.41-27.41-63.84-42.5-102.6-42.5C65.11 96.01 0 161.1 0 241.1v29.75c0 80.03 65.11 145.1 145.1 145.1c38.78 0 75.22-15.09 102.6-42.5L320 301.3l72.23 72.25c27.41 27.41 63.84 42.5 102.6 42.5C574.9 416 640 350.9 640 270.9v-29.75C640 161.1 574.9 96.01 494.9 96.01zM202.5 328.3c-15.31 15.31-35.69 23.75-57.38 23.75C100.4 352 64 315.6 64 270.9v-29.75c0-44.72 36.41-81.13 81.14-81.13c21.69 0 42.06 8.438 57.38 23.75l72.23 72.25L202.5 328.3zM576 270.9c0 44.72-36.41 81.13-81.14 81.13c-21.69 0-42.06-8.438-57.38-23.75l-72.23-72.25l72.23-72.25c15.31-15.31 35.69-23.75 57.38-23.75C539.6 160 576 196.4 576 241.1V270.9z" - } - }, - "free": [ - "solid" - ] - }, - "info": { - "changes": [ - "3.1.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f129", - "aliases": { - "unicodes": { - "secondary": [ - "10f129" - ] - } - }, - "label": "Info", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573264, - "raw": "", - "viewBox": [ - 0, - 0, - 192, - 512 - ], - "width": 192, - "height": 512, - "path": "M160 448h-32V224c0-17.69-14.33-32-32-32L32 192c-17.67 0-32 14.31-32 32s14.33 31.1 32 31.1h32v192H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h128c17.67 0 32-14.31 32-32S177.7 448 160 448zM96 128c26.51 0 48-21.49 48-48S122.5 32.01 96 32.01s-48 21.49-48 48S69.49 128 96 128z" - } - }, - "free": [ - "solid" - ] - }, - "instagram": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f16d", - "label": "Instagram", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z" - } - }, - "free": [ - "brands" - ] - }, - "instalod": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e081", - "label": "InstaLOD", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M153.4 480H387.1L502.6 275.8 204.2 333.2zM504.7 240.1 387.1 32H155.7L360.2 267.9zM124.4 48.81 7.274 256 123.2 461.2 225.6 165.6z" - } - }, - "free": [ - "brands" - ] - }, - "intercom": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7af", - "label": "Intercom", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M392 32H56C25.1 32 0 57.1 0 88v336c0 30.9 25.1 56 56 56h336c30.9 0 56-25.1 56-56V88c0-30.9-25.1-56-56-56zm-108.3 82.1c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0v216.5c0 19.8-29.9 19.8-29.9 0V106.6zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0v199.5c0 19.8-29.9 19.8-29.9 0V114.1zM59.7 144c0-19.8 29.9-19.8 29.9 0v134.3c0 19.8-29.9 19.8-29.9 0V144zm323.4 227.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0V144c0-19.8 29.9-19.8 29.9 0v134.3z" - } - }, - "free": [ - "brands" - ] - }, - "internet-explorer": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f26b", - "label": "Internet-explorer", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M483 159.7c10.85-24.58 21.42-60.44 21.42-87.87 0-72.72-79.64-98.37-209.7-38.58-107.6-7.181-211.2 73.67-237.1 186.5 30.85-34.86 78.27-82.3 121.1-101.2C125.4 166.9 79.13 228 43.99 291.7 23.25 329.7 0 390.9 0 436.7c0 98.57 92.85 86.5 180.3 42.01 31.42 15.43 66.56 15.57 101.7 15.57 97.12 0 184.2-54.29 216.8-146H377.9c-52.51 88.59-196.8 52.1-196.8-47.44H509.9c6.407-43.58-1.655-95.71-26.85-141.2zM64.56 346.9c17.71 51.15 53.7 95.87 100.3 123.3-88.74 48.94-173.3 29.1-100.3-123.3zm115.1-108.9c2-55.15 50.28-94.87 103.1-94.87 53.42 0 101.1 39.72 103.1 94.87H180.5zm184.5-187.6c21.42-10.29 48.56-22 72.56-22 31.42 0 54.27 21.72 54.27 53.72 0 20-7.427 49.01-14.57 67.87-26.28-42.29-65.99-81.58-112.3-99.59z" - } - }, - "free": [ - "brands" - ] - }, - "invision": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7b0", - "label": "InVision", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572483, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M407.4 32H40.6C18.2 32 0 50.2 0 72.6v366.8C0 461.8 18.2 480 40.6 480h366.8c22.4 0 40.6-18.2 40.6-40.6V72.6c0-22.4-18.2-40.6-40.6-40.6zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9 .7l-25.8 103.3H177l8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3 .1-14.3 .9-14 23-104.1H81.7l9.7-35.6h76.4c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4h-32.3l9.7-35.6h68.8l-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z" - } - }, - "free": [ - "brands" - ] - }, - "ioxhost": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f208", - "label": "ioxhost", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M616 160h-67.3C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256c0 16.4 1.6 32.5 4.7 48H24c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h67.3c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48H616c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104H424c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24H125.8c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104H216c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24h298.2c3.8 15.4 5.8 31.4 5.8 48zm-304-24h208c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24H216c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z" - } - }, - "free": [ - "brands" - ] - }, - "italic": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f033", - "aliases": { - "unicodes": { - "secondary": [ - "10f033" - ] - } - }, - "label": "italic", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 64.01c0 17.69-14.31 32-32 32h-58.67l-133.3 320H224c17.69 0 32 14.31 32 32s-14.31 32-32 32H32c-17.69 0-32-14.31-32-32s14.31-32 32-32h58.67l133.3-320H160c-17.69 0-32-14.31-32-32s14.31-32 32-32h192C369.7 32.01 384 46.33 384 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "itch-io": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f83a", - "label": "itch.io", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M71.92 34.77C50.2 47.67 7.4 96.84 7 109.7v21.34c0 27.06 25.29 50.84 48.25 50.84 27.57 0 50.54-22.85 50.54-50 0 27.12 22.18 50 49.76 50s49-22.85 49-50c0 27.12 23.59 50 51.16 50h.5c27.57 0 51.16-22.85 51.16-50 0 27.12 21.47 50 49 50s49.76-22.85 49.76-50c0 27.12 23 50 50.54 50 23 0 48.25-23.78 48.25-50.84v-21.34c-.4-12.9-43.2-62.07-64.92-75C372.6 32.4 325.8 32 256 32S91.14 33.1 71.92 34.77zm132.3 134.4c-22 38.4-77.9 38.71-99.85 .25-13.17 23.14-43.17 32.07-56 27.66-3.87 40.15-13.67 237.1 17.73 269.1 80 18.67 302.1 18.12 379.8 0 31.65-32.27 21.32-232 17.75-269.1-12.92 4.44-42.88-4.6-56-27.66-22 38.52-77.85 38.1-99.85-.24-7.1 12.49-23.05 28.94-51.76 28.94a57.54 57.54 0 0 1 -51.75-28.94zm-41.58 53.77c16.47 0 31.09 0 49.22 19.78a436.9 436.9 0 0 1 88.18 0C318.2 223 332.9 223 349.3 223c52.33 0 65.22 77.53 83.87 144.4 17.26 62.15-5.52 63.67-33.95 63.73-42.15-1.57-65.49-32.18-65.49-62.79-39.25 6.43-101.9 8.79-155.6 0 0 30.61-23.34 61.22-65.49 62.79-28.42-.06-51.2-1.58-33.94-63.73 18.67-67 31.56-144.4 83.88-144.4zM256 270.8s-44.38 40.77-52.35 55.21l29-1.17v25.32c0 1.55 21.34 .16 23.33 .16 11.65 .54 23.31 1 23.31-.16v-25.28l29 1.17c-8-14.48-52.35-55.24-52.35-55.24z" - } - }, - "free": [ - "brands" - ] - }, - "itunes": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b4", - "label": "iTunes", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M223.6 80.3C129 80.3 52.5 157 52.5 251.5S129 422.8 223.6 422.8s171.2-76.7 171.2-171.2c0-94.6-76.7-171.3-171.2-171.3zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1 .5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7 .9-127 2.6-133.7 .4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6 .4 161.4-1 167.6zM345.2 32H102.8C45.9 32 0 77.9 0 134.8v242.4C0 434.1 45.9 480 102.8 480h242.4c57 0 102.8-45.9 102.8-102.8V134.8C448 77.9 402.1 32 345.2 32zM223.6 444c-106.3 0-192.5-86.2-192.5-192.5S117.3 59 223.6 59s192.5 86.2 192.5 192.5S329.9 444 223.6 444z" - } - }, - "free": [ - "brands" - ] - }, - "itunes-note": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b5", - "label": "Itunes Note", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2 .8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6 .2 344.5 1.1 326-1.8 338.5z" - } - }, - "free": [ - "brands" - ] - }, - "j": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "4a", - "aliases": { - "unicodes": { - "composite": [ - "6a" - ] - } - }, - "label": "J", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 64.01v259.4c0 86.36-71.78 156.6-160 156.6s-160-70.26-160-156.6V288c0-17.67 14.31-32 32-32s32 14.33 32 32v35.38c0 51.08 43.06 92.63 96 92.63s96-41.55 96-92.63V64.01c0-17.67 14.31-32 32-32S320 46.34 320 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "jar": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e516", - "label": "Jar", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M32 32C32 14.33 46.33 0 64 0H256C273.7 0 288 14.33 288 32C288 49.67 273.7 64 256 64H64C46.33 64 32 49.67 32 32zM0 160C0 124.7 28.65 96 64 96H256C291.3 96 320 124.7 320 160V448C320 483.3 291.3 512 256 512H64C28.65 512 0 483.3 0 448V160zM256 224H64V384H256V224z" - } - }, - "free": [ - "solid" - ] - }, - "jar-wheat": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e517", - "label": "Jar Wheat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M32 32C32 14.33 46.33 0 64 0H256C273.7 0 288 14.33 288 32C288 49.67 273.7 64 256 64H64C46.33 64 32 49.67 32 32zM0 160C0 124.7 28.65 96 64 96H256C291.3 96 320 124.7 320 160V448C320 483.3 291.3 512 256 512H64C28.65 512 0 483.3 0 448V160zM192 320C227.3 320 256 291.3 256 256H208C188.9 256 171.7 264.4 160 277.7C148.3 264.4 131.1 256 112 256H64C64 291.3 92.65 320 128 320H192zM192 224C227.3 224 256 195.3 256 160H208C188.9 160 171.7 168.4 160 181.7C148.3 168.4 131.1 160 112 160H64C64 195.3 92.65 224 128 224H192zM192 416C227.3 416 256 387.3 256 352H208C188.9 352 171.7 360.4 160 373.7C148.3 360.4 131.1 352 112 352H64C64 387.3 92.65 416 128 416H144V448C144 456.8 151.2 464 160 464C168.8 464 176 456.8 176 448V416H192z" - } - }, - "free": [ - "solid" - ] - }, - "java": { - "changes": [ - "5.0.10", - "5.7.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4e4", - "label": "Java", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M277.7 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8C296 53.2 242.8 0 242.8 0c21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zm114.6-176.2c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9c-26.9-37.8-47.5-56.6 64.1-121.3zm-6.1 270.5a12.19 12.19 0 0 1 -2 2.6c128.3-33.7 81.1-118.9 19.8-97.3a17.33 17.33 0 0 0 -8.2 6.3 70.45 70.45 0 0 1 11-3c31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6 .7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2C232.8 509.4 401 461.3 348 437.4zM124.4 396c-78.7 22 47.9 67.4 148.1 24.5a185.9 185.9 0 0 1 -28.2-13.8c-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.6 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9a60.37 60.37 0 0 1 -21.1-12.8z" - } - }, - "free": [ - "brands" - ] - }, - "jedi": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f669", - "aliases": { - "unicodes": { - "secondary": [ - "10f669" - ] - } - }, - "label": "Jedi", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M554.9 293.1l-58.88 58.88h40C493.2 446.1 398.2 511.1 287.1 512c-110.3-.0078-205.2-65.88-247.1-160h40L21.13 293.1C17.75 275.1 16 258.6 16 241.2c0-5.75 .75-11.5 1-17.25h47L22.75 182.7C37.38 117.1 75.86 59.37 130.6 20.5c2.75-2 6.021-3.005 9.272-3.005c5.5 0 10.5 2.75 13.5 7.25c3.125 4.375 3.625 10.13 1.625 15.13C148.5 56.12 145.1 73.62 145.1 91.12c0 45.13 21.13 86.63 57.75 113.8C206.9 207.7 209.4 212.4 209.5 217.2c.25 5-1.751 9.752-5.501 13c-32.75 29.38-47.5 74-38.5 117.1c9.751 48.38 48.88 87.13 97.26 96.5l2.5-65.37l-27.13 18.5c-3.125 2-7.251 1.75-10-.75c-2.75-2.625-3.25-6.75-1.375-10l20.13-33.75l-42.13-8.627c-3.625-.875-6.375-4.125-6.375-7.875s2.75-7 6.375-7.875l42.13-8.75L226.8 285.6C224.9 282.5 225.4 278.4 228.1 275.7c2.75-2.5 6.876-2.875 10-.75l30.38 20.63l11.49-287.8C280.3 3.461 283.7 .0156 287.1 0c4.237 .0156 7.759 3.461 8.009 7.828l11.49 287.8l30.38-20.63c3.125-2.125 7.251-1.75 10 .75c2.75 2.625 3.25 6.75 1.375 9.875l-20.13 33.75l42.13 8.75c3.625 .875 6.375 4.125 6.375 7.875s-2.75 7-6.375 7.875l-42.13 8.627l20.13 33.75c1.875 3.25 1.375 7.375-1.375 10c-2.75 2.5-6.876 2.75-10 .75l-27.13-18.5l2.5 65.37c48.38-9.375 87.51-48.13 97.26-96.5c9.001-43.13-5.75-87.75-38.5-117.1c-3.75-3.25-5.751-8.002-5.501-13c.125-4.875 2.626-9.5 6.626-12.38c36.63-27.13 57.75-68.63 57.75-113.8c0-17.5-3.375-35-9.875-51.25c-2-5-1.5-10.75 1.625-15.13c3-4.5 8.001-7.25 13.5-7.25c3.25 0 6.474 .9546 9.224 2.955c54.75 38.88 93.28 96.67 107.9 162.3l-41.25 41.25h47c.2501 5.75 .9965 11.5 .9965 17.25C559.1 258.6 558.3 275.1 554.9 293.1z" - } - }, - "free": [ - "solid" - ] - }, - "jedi-order": { - "changes": [ - "5.0.12", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f50e", - "label": "Jedi Order", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M398.5 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9v-2.4 1-1 2.4c0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7s-154.4-71.7-68.6-230.1c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7h4.1c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z" - } - }, - "free": [ - "brands" - ] - }, - "jenkins": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b6", - "label": "Jenkis", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M487.1 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8 .2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2 .7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6C89 407.2 73.7 415 54.2 429c-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8 .7 2 1.4 4.1 2.1 6h422c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM205.9 33.7c1.8-.5 3.4 .7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4 .7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zm-104.8 93.6c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7 .3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2 .5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8 .7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1 .6-16.5zm-17.2-20c-16.8 .8-26-1.2-38.3-10.8 .2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM226 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3 .8 4.4-2.8 10.2-2.8 16.4zM57.7 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5 .7 2.3 1.4 4.7 2.2 7.2H57.7zm240.6 5.7h-.8c.3-.2 .5-.4 .8-.5v.5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3h-9.6zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5 .4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7h-14c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8h-17.4c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9 .8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8 .6-11.5 15.6-7.3 29 1.3 35.7 11.5H383zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1H428c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1 .8 5.5-2.6 18.9-3.8 25.1zM222.2 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7 .5 0 1 0 1.4 .1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm20.4-43zm-117.2 45.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9 .9-36.6-17.1 11.9 .7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zm-141.9 12.4c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zm92.2 46.7c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z" - } - }, - "free": [ - "brands" - ] - }, - "jet-fighter": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0fb", - "aliases": { - "names": [ - "fighter-jet" - ], - "unicodes": { - "secondary": [ - "10f0fb" - ] - } - }, - "label": "Jet fighter", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M160 24C160 10.75 170.7 0 184 0H296C309.3 0 320 10.75 320 24C320 37.25 309.3 48 296 48H280L384 192H500.4C508.1 192 515.7 193.4 522.9 196.1L625 234.4C634 237.8 640 246.4 640 256C640 265.6 634 274.2 625 277.6L522.9 315.9C515.7 318.6 508.1 320 500.4 320H384L280 464H296C309.3 464 320 474.7 320 488C320 501.3 309.3 512 296 512H184C170.7 512 160 501.3 160 488C160 474.7 170.7 464 184 464H192V320H160L105.4 374.6C99.37 380.6 91.23 384 82.75 384H64C46.33 384 32 369.7 32 352V288C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224V160C32 142.3 46.33 128 64 128H82.75C91.23 128 99.37 131.4 105.4 137.4L160 192H192V48H184C170.7 48 160 37.25 160 24V24zM80 240C71.16 240 64 247.2 64 256C64 264.8 71.16 272 80 272H144C152.8 272 160 264.8 160 256C160 247.2 152.8 240 144 240H80z" - } - }, - "free": [ - "solid" - ] - }, - "jet-fighter-up": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e518", - "label": "Jet Fighter Up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M346.8 112.6C350.2 120.6 352 129.2 352 137.9V214.8L496 298.8V280C496 266.7 506.7 256 520 256C533.3 256 544 266.7 544 280V392C544 405.3 533.3 416 520 416C506.7 416 496 405.3 496 392V384H352V416.7L410.5 467.1C414 470.1 416 475.4 416 480V496C416 504.8 408.8 512 400 512H304V448C304 439.2 296.8 432 288 432C279.2 432 272 439.2 272 448V512H176C167.2 512 160 504.8 160 496V480C160 475.4 161.1 470.1 165.5 467.1L224 416.7V384H80V392C80 405.3 69.25 416 56 416C42.75 416 32 405.3 32 392V280C32 266.7 42.75 256 56 256C69.25 256 80 266.7 80 280V298.8L224 214.8V137.9C224 129.2 225.8 120.6 229.2 112.6L273.3 9.697C275.8 3.814 281.6 0 288 0C294.4 0 300.2 3.814 302.7 9.697L346.8 112.6z" - } - }, - "free": [ - "solid" - ] - }, - "jira": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7b1", - "label": "Jira", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M490 241.7C417.1 169 320.6 71.8 248.5 0 83 164.9 6 241.7 6 241.7c-7.9 7.9-7.9 20.7 0 28.7C138.8 402.7 67.8 331.9 248.5 512c379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zm-241.5 90l-76-75.7 76-75.7 76 75.7-76 75.7z" - } - }, - "free": [ - "brands" - ] - }, - "joget": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b7", - "label": "Joget", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M378.1 45C337.6 19.9 292.6 8 248.2 8 165 8 83.8 49.9 36.9 125.9c-71.9 116.6-35.6 269.3 81 341.2s269.3 35.6 341.2-80.9c71.9-116.6 35.6-269.4-81-341.2zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zm-200.8-86.3c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7C87.3 161.5 48.6 252.1 37.6 293c-8.8-49.7-.1-102.7 28.5-149.1C128 43.4 259.6 12.2 360.1 74.1c74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3l169.5-1.6 46.5-23.4s3.6-9.5-19.1-15.5z" - } - }, - "free": [ - "brands" - ] - }, - "joint": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f595", - "aliases": { - "unicodes": { - "secondary": [ - "10f595" - ] - } - }, - "label": "Joint", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M444.4 181.1C466.8 196.8 480 222.2 480 249.8V280C480 284.4 483.6 288 488 288h48C540.4 288 544 284.4 544 280V249.8c0-43.25-21-83.5-56.38-108.1C463.9 125 448 99.38 448 70.25V8C448 3.625 444.4 0 440 0h-48C387.6 0 384 3.625 384 8v66.38C384 118.1 408.5 156 444.4 181.1zM195 359C125.1 370.1 59.75 394.8 0 432C83.62 484.2 180.2 512 279 512h88.5l-112.7-131.5C240 363.2 217.4 355.4 195 359zM553.3 87.12C547.6 83.25 544 77.12 544 70.25V8C544 3.625 540.4 0 536 0h-48C483.6 0 480 3.625 480 8v62.25c0 22.13 10.12 43.5 28.62 55.5C550.8 153 576 199.5 576 249.8V280C576 284.4 579.6 288 584 288h48C636.4 288 640 284.4 640 280V249.8C640 184.2 607.6 123.5 553.3 87.12zM360.9 352c-34.38 .125-86.75 .25-88.25 .25l117.9 137.4C402.6 503.9 420.4 512 439.1 512h88.38l-117.9-137.6C397.4 360.1 379.6 352 360.9 352zM616 352H432l117.1 137.6C562.1 503.9 579.9 512 598.6 512H616c13.25 0 24-10.75 24-24v-112C640 362.8 629.3 352 616 352z" - } - }, - "free": [ - "solid" - ] - }, - "joomla": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1aa", - "label": "Joomla Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M.6 92.1C.6 58.8 27.4 32 60.4 32c30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1 .6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9C20.4 144.6 .6 120.7 .6 92.1zm129.5 116.4l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zm266.3 152.2c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2C0 453.2 26.8 480 59.8 480c28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z" - } - }, - "free": [ - "brands" - ] - }, - "js": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b8", - "label": "JavaScript (JS)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32v448h448V32H0zm243.8 349.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z" - } - }, - "free": [ - "brands" - ] - }, - "jsfiddle": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1cc", - "label": "jsFiddle", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M510.6 237.5c-4.727-2.621-5.664-5.748-6.381-10.78-2.352-16.49-3.539-33.62-9.097-49.1-35.9-99.96-153.1-143.4-246.8-91.65-27.37 15.25-48.97 36.37-65.49 63.9-3.184-1.508-5.458-2.71-7.824-3.686-30.1-12.42-59.05-10.12-85.33 9.167-25.53 18.74-36.42 44.55-32.68 76.41 .355 3.025-1.967 7.621-4.514 9.545-39.71 29.99-56.03 78.07-41.9 124.6 13.83 45.57 57.51 79.8 105.6 81.43 30.29 1.031 60.64 .546 90.96 .539 84.04-.021 168.1 .531 252.1-.48 52.66-.634 96.11-36.87 108.2-87.29 11.54-48.07-11.14-97.3-56.83-122.6zm21.11 156.9c-18.23 22.43-42.34 35.25-71.28 35.65-56.87 .781-113.8 .23-170.7 .23 0 .7-163 .159-163.7 .154-43.86-.332-76.74-19.77-95.18-59.99-18.9-41.24-4.004-90.85 34.19-116.1 9.182-6.073 12.51-11.57 10.1-23.14-5.49-26.36 4.453-47.96 26.42-62.98 22.99-15.72 47.42-16.15 72.03-3.083 10.27 5.45 14.61 11.56 22.2-2.527 14.22-26.4 34.56-46.73 60.67-61.29 97.46-54.37 228.4 7.568 230.2 132.7 .122 8.15 2.412 12.43 9.848 15.89 57.56 26.83 74.46 96.12 35.14 144.5zm-87.79-80.5c-5.848 31.16-34.62 55.1-66.67 55.1-16.95-.001-32.06-6.545-44.08-17.7-27.7-25.71-71.14-74.98-95.94-93.39-20.06-14.89-41.99-12.33-60.27 3.782-49.1 44.07 15.86 121.8 67.06 77.19 4.548-3.96 7.84-9.543 12.74-12.84 8.184-5.509 20.77-.884 13.17 10.62-17.36 26.28-49.33 38.2-78.86 29.3-28.9-8.704-48.84-35.97-48.63-70.18 1.225-22.49 12.36-43.06 35.41-55.97 22.58-12.64 46.37-13.15 66.99 2.474C295.7 280.7 320.5 323.1 352.2 343.5c24.56 15.1 54.25 7.363 68.82-17.51 28.83-49.21-34.59-105-78.87-63.46-3.989 3.744-6.917 8.932-11.41 11.72-10.98 6.811-17.33-4.113-12.81-10.35 20.7-28.55 50.46-40.44 83.27-28.21 31.43 11.71 49.11 44.37 42.76 78.19z" - } - }, - "free": [ - "brands" - ] - }, - "jug-detergent": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e519", - "label": "Jug Detergent", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M96 24C96 10.75 106.7 0 120 0H200C213.3 0 224 10.75 224 24V48H232C245.3 48 256 58.75 256 72C256 85.25 245.3 96 232 96H88C74.75 96 64 85.25 64 72C64 58.75 74.75 48 88 48H96V24zM0 256C0 185.3 57.31 128 128 128H256C326.7 128 384 185.3 384 256V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V256zM256 352C256 369.7 270.3 384 288 384C305.7 384 320 369.7 320 352V256C320 238.3 305.7 224 288 224C270.3 224 256 238.3 256 256V352z" - } - }, - "free": [ - "solid" - ] - }, - "k": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "4b", - "aliases": { - "unicodes": { - "composite": [ - "6b" - ] - } - }, - "label": "K", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573265, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M314.3 429.8c10.06 14.53 6.438 34.47-8.094 44.53c-5.562 3.844-11.91 5.688-18.19 5.688c-10.16 0-20.12-4.812-26.34-13.78L128.1 273.3L64 338.9v109.1c0 17.67-14.31 32-32 32s-32-14.33-32-32v-384C0 46.34 14.31 32.01 32 32.01S64 46.34 64 64.01v183.3l201.1-205.7c12.31-12.61 32.63-12.86 45.25-.5c12.62 12.34 12.88 32.61 .5 45.25l-137.2 140.3L314.3 429.8z" - } - }, - "free": [ - "solid" - ] - }, - "kaaba": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f66b", - "aliases": { - "unicodes": { - "composite": [ - "1f54b" - ], - "secondary": [ - "10f66b" - ] - } - }, - "label": "Kaaba", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573266, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M278.5 1.457C284.7-.4856 291.3-.4856 297.5 1.457L553.5 81.46C566.9 85.63 576 98 576 112V149.2L292.8 237.7C289.7 238.7 286.3 238.7 283.2 237.7L.0006 149.2V112C.0006 98.01 9.097 85.63 22.46 81.46L278.5 1.457zM288 191.2L515.1 120L288 48.76L60.04 120L288 191.2zM302.3 268.3L576 182.8V229.2L523.2 245.7C514.8 248.4 510.1 257.3 512.7 265.8C515.4 274.2 524.3 278.9 532.8 276.3L576 262.8V400C576 413.1 566.9 426.4 553.5 430.5L297.5 510.5C291.3 512.5 284.7 512.5 278.5 510.5L22.46 430.5C9.096 426.4 0 413.1 0 399.1V262.8L43.23 276.3C51.67 278.9 60.64 274.2 63.28 265.8C65.91 257.3 61.21 248.4 52.78 245.7L0 229.2V182.8L273.7 268.3C283 271.2 292.1 271.2 302.3 268.3L302.3 268.3zM116.8 265.7C108.3 263.1 99.37 267.8 96.73 276.2C94.1 284.7 98.8 293.6 107.2 296.3L171.2 316.3C179.7 318.9 188.6 314.2 191.3 305.8C193.9 297.3 189.2 288.4 180.8 285.7L116.8 265.7zM468.8 296.3C477.2 293.6 481.9 284.7 479.3 276.2C476.6 267.8 467.7 263.1 459.2 265.7L395.2 285.7C386.8 288.4 382.1 297.3 384.7 305.8C387.4 314.2 396.3 318.9 404.8 316.3L468.8 296.3zM244.8 305.7C236.3 303.1 227.4 307.8 224.7 316.2C222.1 324.7 226.8 333.6 235.2 336.3L273.7 348.3C283 351.2 292.1 351.2 302.3 348.3L340.8 336.3C349.2 333.6 353.9 324.7 351.3 316.2C348.6 307.8 339.7 303.1 331.2 305.7L292.8 317.7C289.7 318.7 286.3 318.7 283.2 317.7L244.8 305.7z" - } - }, - "free": [ - "solid" - ] - }, - "kaggle": { - "changes": [ - "5.2.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5fa", - "label": "Kaggle", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5h-69.2c-3.5 0-7 1.8-10.5 5.3L80.9 313.5V7.5q0-7.5-7.5-7.5H21.5Q14 0 14 7.5v497q0 7.5 7.5 7.5h51.9q7.5 0 7.5-7.5v-109l30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3h66.9q5.25 0 6-3z" - } - }, - "free": [ - "brands" - ] - }, - "key": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f084", - "aliases": { - "unicodes": { - "composite": [ - "1f511" - ], - "secondary": [ - "10f084" - ] - } - }, - "label": "key", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573266, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M282.3 343.7L248.1 376.1C244.5 381.5 238.4 384 232 384H192V424C192 437.3 181.3 448 168 448H128V488C128 501.3 117.3 512 104 512H24C10.75 512 0 501.3 0 488V408C0 401.6 2.529 395.5 7.029 391L168.3 229.7C162.9 212.8 160 194.7 160 176C160 78.8 238.8 0 336 0C433.2 0 512 78.8 512 176C512 273.2 433.2 352 336 352C317.3 352 299.2 349.1 282.3 343.7zM376 176C398.1 176 416 158.1 416 136C416 113.9 398.1 96 376 96C353.9 96 336 113.9 336 136C336 158.1 353.9 176 376 176z" - } - }, - "free": [ - "solid" - ] - }, - "keybase": { - "changes": [ - "5.0.11", - "5.8.0", - "5.10.2", - "5.11.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f5", - "label": "Keybase", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M286.2 419a18 18 0 1 0 18 18 18 18 0 0 0 -18-18zm111.9-147.6c-9.5-14.62-39.37-52.45-87.26-73.71q-9.1-4.06-18.38-7.27a78.43 78.43 0 0 0 -47.88-104.1c-12.41-4.1-23.33-6-32.41-5.77-.6-2-1.89-11 9.4-35L198.7 32l-5.48 7.56c-8.69 12.06-16.92 23.55-24.34 34.89a51 51 0 0 0 -8.29-1.25c-41.53-2.45-39-2.33-41.06-2.33-50.61 0-50.75 52.12-50.75 45.88l-2.36 36.68c-1.61 27 19.75 50.21 47.63 51.85l8.93 .54a214 214 0 0 0 -46.29 35.54C14 304.7 14 374 14 429.8v33.64l23.32-29.8a148.6 148.6 0 0 0 14.56 37.56c5.78 10.13 14.87 9.45 19.64 7.33 4.21-1.87 10-6.92 3.75-20.11a178.3 178.3 0 0 1 -15.76-53.13l46.82-59.83-24.66 74.11c58.23-42.4 157.4-61.76 236.3-38.59 34.2 10.05 67.45 .69 84.74-23.84 .72-1 1.2-2.16 1.85-3.22a156.1 156.1 0 0 1 2.8 28.43c0 23.3-3.69 52.93-14.88 81.64-2.52 6.46 1.76 14.5 8.6 15.74 7.42 1.57 15.33-3.1 18.37-11.15C429 443 434 414 434 382.3c0-38.58-13-77.46-35.91-110.9zM142.4 128.6l-15.7-.93-1.39 21.79 13.13 .78a93 93 0 0 0 .32 19.57l-22.38-1.34a12.28 12.28 0 0 1 -11.76-12.79L107 119c1-12.17 13.87-11.27 13.26-11.32l29.11 1.73a144.4 144.4 0 0 0 -7 19.17zm148.4 172.2a10.51 10.51 0 0 1 -14.35-1.39l-9.68-11.49-34.42 27a8.09 8.09 0 0 1 -11.13-1.08l-15.78-18.64a7.38 7.38 0 0 1 1.34-10.34l34.57-27.18-14.14-16.74-17.09 13.45a7.75 7.75 0 0 1 -10.59-1s-3.72-4.42-3.8-4.53a7.38 7.38 0 0 1 1.37-10.34L214 225.2s-18.51-22-18.6-22.14a9.56 9.56 0 0 1 1.74-13.42 10.38 10.38 0 0 1 14.3 1.37l81.09 96.32a9.58 9.58 0 0 1 -1.74 13.44zM187.4 419a18 18 0 1 0 18 18 18 18 0 0 0 -18-18z" - } - }, - "free": [ - "brands" - ] - }, - "keyboard": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f11c", - "aliases": { - "unicodes": { - "composite": [ - "2328" - ], - "secondary": [ - "10f11c" - ] - } - }, - "label": "Keyboard", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573266, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 448H64c-35.35 0-64-28.65-64-64V128c0-35.35 28.65-64 64-64h448c35.35 0 64 28.65 64 64v256C576 419.3 547.3 448 512 448zM128 180v-40C128 133.4 122.6 128 116 128h-40C69.38 128 64 133.4 64 140v40C64 186.6 69.38 192 76 192h40C122.6 192 128 186.6 128 180zM224 180v-40C224 133.4 218.6 128 212 128h-40C165.4 128 160 133.4 160 140v40C160 186.6 165.4 192 172 192h40C218.6 192 224 186.6 224 180zM320 180v-40C320 133.4 314.6 128 308 128h-40C261.4 128 256 133.4 256 140v40C256 186.6 261.4 192 268 192h40C314.6 192 320 186.6 320 180zM416 180v-40C416 133.4 410.6 128 404 128h-40C357.4 128 352 133.4 352 140v40C352 186.6 357.4 192 364 192h40C410.6 192 416 186.6 416 180zM512 180v-40C512 133.4 506.6 128 500 128h-40C453.4 128 448 133.4 448 140v40C448 186.6 453.4 192 460 192h40C506.6 192 512 186.6 512 180zM128 276v-40C128 229.4 122.6 224 116 224h-40C69.38 224 64 229.4 64 236v40C64 282.6 69.38 288 76 288h40C122.6 288 128 282.6 128 276zM224 276v-40C224 229.4 218.6 224 212 224h-40C165.4 224 160 229.4 160 236v40C160 282.6 165.4 288 172 288h40C218.6 288 224 282.6 224 276zM320 276v-40C320 229.4 314.6 224 308 224h-40C261.4 224 256 229.4 256 236v40C256 282.6 261.4 288 268 288h40C314.6 288 320 282.6 320 276zM416 276v-40C416 229.4 410.6 224 404 224h-40C357.4 224 352 229.4 352 236v40C352 282.6 357.4 288 364 288h40C410.6 288 416 282.6 416 276zM512 276v-40C512 229.4 506.6 224 500 224h-40C453.4 224 448 229.4 448 236v40C448 282.6 453.4 288 460 288h40C506.6 288 512 282.6 512 276zM128 372v-40C128 325.4 122.6 320 116 320h-40C69.38 320 64 325.4 64 332v40C64 378.6 69.38 384 76 384h40C122.6 384 128 378.6 128 372zM416 372v-40C416 325.4 410.6 320 404 320h-232C165.4 320 160 325.4 160 332v40C160 378.6 165.4 384 172 384h232C410.6 384 416 378.6 416 372zM512 372v-40C512 325.4 506.6 320 500 320h-40C453.4 320 448 325.4 448 332v40C448 378.6 453.4 384 460 384h40C506.6 384 512 378.6 512 372z" - }, - "regular": { - "last_modified": 1658443573070, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 64H64C28.65 64 0 92.65 0 128v256c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V128C576 92.65 547.3 64 512 64zM528 384c0 8.822-7.178 16-16 16H64c-8.822 0-16-7.178-16-16V128c0-8.822 7.178-16 16-16h448c8.822 0 16 7.178 16 16V384zM140 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 157.3 146.7 152 140 152zM196 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 194.7 189.3 200 196 200zM276 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 194.7 269.3 200 276 200zM356 200h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 194.7 349.3 200 356 200zM460 152h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 157.3 466.7 152 460 152zM140 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C152 237.3 146.7 232 140 232zM196 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C184 274.7 189.3 280 196 280zM276 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C264 274.7 269.3 280 276 280zM356 280h24c6.656 0 12-5.344 12-12v-24c0-6.656-5.344-12-12-12h-24c-6.656 0-12 5.344-12 12v24C344 274.7 349.3 280 356 280zM460 232h-24c-6.656 0-12 5.344-12 12v24c0 6.656 5.344 12 12 12h24c6.656 0 12-5.344 12-12v-24C472 237.3 466.7 232 460 232zM400 320h-224C167.1 320 160 327.1 160 336V352c0 8.875 7.125 16 16 16h224c8.875 0 16-7.125 16-16v-16C416 327.1 408.9 320 400 320z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "keycdn": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ba", - "label": "KeyCDN", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572484, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5 .7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4 .3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4C20.7 503.3 0 481.7 0 454.9c0-34.3 33.1-56.6 63.8-45.6zm354.9-252.4c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3 .3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2 .7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4l-22 21.5C72.7 324 63.1 287.9 64.2 250.9c1-44.6 18.3-87.6 47.5-121.1l-25.3-26.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4C73.5 40.7 92.2 41 104 53.1zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3 .1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9c43.3 1.1 84.6 16.7 117.7 44.6l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5C416.5 29.7 438.9 8 464.9 8zM256.7 113.4c5.5 0 10.9 .4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7h73.7l-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1 .8-57.3 24.8-58.2 58.3zM256 160" - } - }, - "free": [ - "brands" - ] - }, - "khanda": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f66d", - "aliases": { - "unicodes": { - "composite": [ - "262c" - ], - "secondary": [ - "10f66d" - ] - } - }, - "label": "Khanda", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573266, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M447.7 65.1c-6.25-3.5-14.29-2.351-19.29 3.024c-5.125 5.375-5.833 13.37-1.958 19.5c16.5 26.25 25.23 56.34 25.23 87.46c-.25 53.25-26.74 102.6-71.24 132.4l-76.62 53.35v-20.12l44.01-36.12c3.875-4.125 4.983-10.13 2.858-15.26L342.8 273c33.88-19.25 56.94-55.25 56.94-97c0-40.75-22.06-76.12-54.56-95.75l5.151-11.39c2.375-5.5 .9825-11.87-3.518-15.1L287.9 .0074l-59.05 52.77C224.4 57.02 222.1 63.37 225.2 68.87l5.203 11.32C197.1 99.81 175.9 135.2 175.9 175.1c0 41.75 23.08 77.75 56.95 97L224.1 290.2C222.9 295.4 223.9 301.2 227.9 305.5l43.1 36.11v19.91L195.2 308.1c-44.25-29.5-70.72-78.9-70.97-132.1c0-31.12 8.73-61.2 25.23-87.45C153.3 82.4 151.8 74.75 146.8 69.5C141.8 64.12 133.2 63.25 126.8 66.75C48.34 109.6 9.713 205.2 45.34 296c7 18 17.88 34.38 30.5 49l55.92 65.38c4.875 5.75 13.09 7.232 19.71 3.732l79.25-42.25l29.26 20.37l-47.09 32.75c-1.625-.375-3.125-1-4.1-1c-13.25 0-23.97 10.75-23.97 24s10.72 23.1 23.97 23.1c12.13 0 21.74-9.126 23.36-20.75l40.6-28.25v29.91c-9.375 5.625-15.97 15.37-15.97 27.12c0 17.62 14.37 31.1 31.1 31.1c17.63 0 31.1-14.37 31.1-31.1c0-11.75-6.656-21.52-16.03-27.14v-30.12l40.87 28.48c1.625 11.63 11.23 20.75 23.35 20.75c13.25 0 23.98-10.74 23.98-23.99s-10.73-24-23.98-24c-1.875 0-3.375 .625-5 1l-47.09-32.75l29.25-20.37l79.26 42.25c6.625 3.5 14.84 2.018 19.71-3.732l52.51-61.27c18.88-22 33.1-47.49 41.25-75.61C559.6 189.9 521.5 106.2 447.7 65.1zM351.8 176c0 22.25-11.45 41.91-28.82 53.41l-5.613-12.43c-8.75-24.5-8.811-51.11-.061-75.61l7.748-17.12C341.2 135.9 351.8 154.6 351.8 176zM223.8 176c0-21.38 10.67-40.16 26.67-51.79l7.848 17.17c8.75 24.63 8.747 51.11-.0032 75.61L252.7 229.4C235.4 217.9 223.8 198.2 223.8 176z" - } - }, - "free": [ - "solid" - ] - }, - "kickstarter": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3bb", - "label": "Kickstarter", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 480H48c-26.4 0-48-21.6-48-48V80c0-26.4 21.6-48 48-48h352c26.4 0 48 21.6 48 48v352c0 26.4-21.6 48-48 48zM199.6 178.5c0-30.7-17.6-45.1-39.7-45.1-25.8 0-40 19.8-40 44.5v154.8c0 25.8 13.7 45.6 40.5 45.6 21.5 0 39.2-14 39.2-45.6v-41.8l60.6 75.7c12.3 14.9 39 16.8 55.8 0 14.6-15.1 14.8-36.8 4-50.4l-49.1-62.8 40.5-58.7c9.4-13.5 9.5-34.5-5.6-49.1-16.4-15.9-44.6-17.3-61.4 7l-44.8 64.7v-38.8z" - } - }, - "free": [ - "brands" - ] - }, - "kickstarter-k": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3bc", - "label": "Kickstarter K", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M147.3 114.4c0-56.2-32.5-82.4-73.4-82.4C26.2 32 0 68.2 0 113.4v283c0 47.3 25.3 83.4 74.9 83.4 39.8 0 72.4-25.6 72.4-83.4v-76.5l112.1 138.3c22.7 27.2 72.1 30.7 103.2 0 27-27.6 27.3-67.4 7.4-92.2l-90.8-114.8 74.9-107.4c17.4-24.7 17.5-63.1-10.4-89.8-30.3-29-82.4-31.6-113.6 12.8L147.3 185v-70.6z" - } - }, - "free": [ - "brands" - ] - }, - "kip-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1c4", - "label": "Kip Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573267, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M182.5 224H352C369.7 224 384 238.3 384 256C384 273.7 369.7 288 352 288H182.5L340.8 423.7C354.2 435.2 355.8 455.4 344.3 468.8C332.8 482.2 312.6 483.8 299.2 472.3L128 325.6V448C128 465.7 113.7 480 96 480C78.33 480 64 465.7 64 448V288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H64V64C64 46.33 78.33 32 96 32C113.7 32 128 46.33 128 64V186.4L299.2 39.7C312.6 28.2 332.8 29.76 344.3 43.18C355.8 56.59 354.2 76.8 340.8 88.3L182.5 224z" - } - }, - "free": [ - "solid" - ] - }, - "kit-medical": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f479", - "aliases": { - "names": [ - "first-aid" - ], - "unicodes": { - "secondary": [ - "10f479" - ] - } - }, - "label": "Kit medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573267, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M64 32h32v448H64c-35.35 0-64-28.66-64-64V96C0 60.66 28.65 32 64 32zM128 32h320v448H128V32zM176 282c0 8.835 7.164 16 16 16h53.1V352c0 8.836 7.165 16 16 16h52c8.836 0 16-7.164 16-16V298H384c8.836 0 16-7.165 16-16v-52c0-8.837-7.164-16-16-16h-54V160c0-8.836-7.164-16-16-16h-52c-8.835 0-16 7.164-16 16v54H192c-8.836 0-16 7.163-16 16V282zM512 32h-32v448h32c35.35 0 64-28.66 64-64V96C576 60.66 547.3 32 512 32z" - } - }, - "free": [ - "solid" - ] - }, - "kitchen-set": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e51a", - "label": "Kitchen Set", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573267, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M80 144C80 108.7 108.7 80 144 80C179.3 80 208 108.7 208 144C208 179.3 179.3 208 144 208C108.7 208 80 179.3 80 144zM284.4 176C269.9 240.1 212.5 288 144 288C64.47 288 0 223.5 0 144C0 64.47 64.47 0 144 0C212.5 0 269.9 47.87 284.4 112H356.2C365 102.2 377.8 96 392 96H496C522.5 96 544 117.5 544 144C544 170.5 522.5 192 496 192H392C377.8 192 365 185.8 356.2 176H284.4zM144 48C90.98 48 48 90.98 48 144C48 197 90.98 240 144 240C197 240 240 197 240 144C240 90.98 197 48 144 48zM424 264V272H520C533.3 272 544 282.7 544 296C544 309.3 533.3 320 520 320H280C266.7 320 256 309.3 256 296C256 282.7 266.7 272 280 272H376V264C376 250.7 386.7 240 400 240C413.3 240 424 250.7 424 264zM288 464V352H512V464C512 490.5 490.5 512 464 512H336C309.5 512 288 490.5 288 464zM176 320C202.5 320 224 341.5 224 368C224 394.5 202.5 416 176 416H160C160 433.7 145.7 448 128 448H64C46.33 448 32 433.7 32 416V336C32 327.2 39.16 320 48 320H176zM192 368C192 359.2 184.8 352 176 352H160V384H176C184.8 384 192 376.8 192 368zM200 464C213.3 464 224 474.7 224 488C224 501.3 213.3 512 200 512H24C10.75 512 0 501.3 0 488C0 474.7 10.75 464 24 464H200z" - } - }, - "free": [ - "solid" - ] - }, - "kiwi-bird": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f535", - "aliases": { - "unicodes": { - "secondary": [ - "10f535" - ] - } - }, - "label": "Kiwi Bird", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573267, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 405.1V456C256 469.3 245.3 480 232 480C218.7 480 208 469.3 208 456V415.3C202.7 415.8 197.4 416 192 416C175.4 416 159.3 413.9 144 409.1V456C144 469.3 133.3 480 120 480C106.7 480 96 469.3 96 456V390.3C38.61 357.1 0 295.1 0 224C0 117.1 85.96 32 192 32C228.3 32 262.3 42.08 291.2 59.6C322.4 78.44 355.9 96 392.3 96H448C518.7 96 576 153.3 576 224V464C576 470.1 571.5 477.2 564.8 479.3C558.2 481.4 550.9 478.9 546.9 473.2L461.6 351.3C457.1 351.8 452.6 352 448 352H392.3C355.9 352 322.4 369.6 291.2 388.4C280.2 395.1 268.4 400.7 256 405.1zM448 248C461.3 248 472 237.3 472 224C472 210.7 461.3 200 448 200C434.7 200 424 210.7 424 224C424 237.3 434.7 248 448 248z" - } - }, - "free": [ - "solid" - ] - }, - "korvue": { - "changes": [ - "5.0.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f42f", - "label": "KORVUE", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 446, - 512 - ], - "width": 446, - "height": 512, - "path": "M386.5 34h-327C26.8 34 0 60.8 0 93.5v327.1C0 453.2 26.8 480 59.5 480h327.1c33 0 59.5-26.8 59.5-59.5v-327C446 60.8 419.2 34 386.5 34zM87.1 120.8h96v116l61.8-116h110.9l-81.2 132H87.1v-132zm161.8 272.1l-65.7-113.6v113.6h-96V262.1h191.5l88.6 130.8H248.9z" - } - }, - "free": [ - "brands" - ] - }, - "l": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "4c", - "aliases": { - "unicodes": { - "composite": [ - "6c" - ] - } - }, - "label": "L", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573267, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 448c0 17.67-14.31 32-32 32H64c-17.69 0-32-14.33-32-32v-384C32 46.34 46.31 32.01 64 32.01S96 46.34 96 64.01v352h192C305.7 416 320 430.3 320 448z" - } - }, - "free": [ - "solid" - ] - }, - "land-mine-on": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e51b", - "label": "Land Mine-on", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M312 168C312 181.3 301.3 192 288 192C274.7 192 264 181.3 264 168V24C264 10.75 274.7 0 288 0C301.3 0 312 10.75 312 24V168zM160 320C160 302.3 174.3 288 192 288H384C401.7 288 416 302.3 416 320V352H160V320zM82.74 410.5C90.87 394.3 107.5 384 125.7 384H450.3C468.5 384 485.1 394.3 493.3 410.5L520.8 465.7C531.5 486.1 516 512 492.2 512H83.78C59.99 512 44.52 486.1 55.16 465.7L82.74 410.5zM4.269 138.3C11.81 127.4 26.77 124.7 37.66 132.3L141.7 204.3C152.6 211.8 155.3 226.8 147.7 237.7C140.2 248.6 125.2 251.3 114.3 243.7L10.34 171.7C-.5568 164.2-3.275 149.2 4.269 138.3V138.3zM538.3 132.3C549.2 124.7 564.2 127.4 571.7 138.3C579.3 149.2 576.6 164.2 565.7 171.7L461.7 243.7C450.8 251.3 435.8 248.6 428.3 237.7C420.7 226.8 423.4 211.8 434.3 204.3L538.3 132.3z" - } - }, - "free": [ - "solid" - ] - }, - "landmark": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f66f", - "aliases": { - "unicodes": { - "composite": [ - "1f3db" - ], - "secondary": [ - "10f66f" - ] - } - }, - "label": "Landmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M240.1 4.216C249.1-1.405 262-1.405 271.9 4.216L443.6 102.4L447.1 104V104.9L495.9 132.2C508.5 139.4 514.6 154.2 510.9 168.2C507.2 182.2 494.5 192 479.1 192H31.1C17.49 192 4.795 182.2 1.071 168.2C-2.653 154.2 3.524 139.4 16.12 132.2L63.1 104.9V104L68.37 102.4L240.1 4.216zM64 224H128V416H168V224H232V416H280V224H344V416H384V224H448V420.3C448.6 420.6 449.2 420.1 449.8 421.4L497.8 453.4C509.5 461.2 514.7 475.8 510.6 489.3C506.5 502.8 494.1 512 480 512H32C17.9 512 5.46 502.8 1.373 489.3C-2.713 475.8 2.517 461.2 14.25 453.4L62.25 421.4C62.82 420.1 63.41 420.6 64 420.3V224z" - } - }, - "free": [ - "solid" - ] - }, - "landmark-dome": { - "changes": [ - "5.5.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f752", - "aliases": { - "names": [ - "landmark-alt" - ], - "unicodes": { - "secondary": [ - "10f752" - ] - } - }, - "label": "Landmark dome", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M264 0C277.3 0 288 10.75 288 24V34.65C368.4 48.14 431.9 111.6 445.3 192H448C465.7 192 480 206.3 480 224C480 241.7 465.7 256 448 256H63.1C46.33 256 31.1 241.7 31.1 224C31.1 206.3 46.33 192 63.1 192H66.65C80.14 111.6 143.6 48.14 223.1 34.65V24C223.1 10.75 234.7 0 247.1 0L264 0zM63.1 288H127.1V416H167.1V288H231.1V416H280V288H344V416H384V288H448V420.3C448.6 420.6 449.2 420.1 449.8 421.4L497.8 453.4C509.5 461.2 514.7 475.8 510.6 489.3C506.5 502.8 494.1 512 480 512H31.1C17.9 512 5.458 502.8 1.372 489.3C-2.715 475.8 2.515 461.2 14.25 453.4L62.25 421.4C62.82 420.1 63.41 420.6 63.1 420.3V288z" - } - }, - "free": [ - "solid" - ] - }, - "landmark-flag": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e51c", - "label": "Landmark Flag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 0C360.8 0 368 7.164 368 16V80C368 88.84 360.8 96 352 96H272V128H464C481.7 128 496 142.3 496 160C496 177.7 481.7 192 464 192H47.1C30.33 192 15.1 177.7 15.1 160C15.1 142.3 30.33 128 47.1 128H239.1V16C239.1 7.164 247.2 0 255.1 0H352zM63.1 224H127.1V416H167.1V224H231.1V416H280V224H344V416H384V224H448V420.3C448.6 420.6 449.2 420.1 449.8 421.4L497.8 453.4C509.5 461.2 514.7 475.8 510.6 489.3C506.5 502.8 494.1 512 480 512H31.1C17.9 512 5.458 502.8 1.372 489.3C-2.715 475.8 2.515 461.2 14.25 453.4L62.25 421.4C62.82 420.1 63.4 420.6 63.1 420.3V224z" - } - }, - "free": [ - "solid" - ] - }, - "language": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1ab", - "aliases": { - "unicodes": { - "secondary": [ - "10f1ab" - ] - } - }, - "label": "Language", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M448 164C459 164 468 172.1 468 184V188H528C539 188 548 196.1 548 208C548 219 539 228 528 228H526L524.4 232.5C515.5 256.1 501.9 279.1 484.7 297.9C485.6 298.4 486.5 298.1 487.4 299.5L506.3 310.8C515.8 316.5 518.8 328.8 513.1 338.3C507.5 347.8 495.2 350.8 485.7 345.1L466.8 333.8C462.4 331.1 457.1 328.3 453.7 325.3C443.2 332.8 431.8 339.3 419.8 344.7L416.1 346.3C406 350.8 394.2 346.2 389.7 336.1C385.2 326 389.8 314.2 399.9 309.7L403.5 308.1C409.9 305.2 416.1 301.1 422 298.3L409.9 286.1C402 278.3 402 265.7 409.9 257.9C417.7 250 430.3 250 438.1 257.9L452.7 272.4L453.3 272.1C465.7 259.9 475.8 244.7 483.1 227.1H376C364.1 227.1 356 219 356 207.1C356 196.1 364.1 187.1 376 187.1H428V183.1C428 172.1 436.1 163.1 448 163.1L448 164zM160 233.2L179 276H140.1L160 233.2zM0 128C0 92.65 28.65 64 64 64H576C611.3 64 640 92.65 640 128V384C640 419.3 611.3 448 576 448H64C28.65 448 0 419.3 0 384V128zM320 384H576V128H320V384zM178.3 175.9C175.1 168.7 167.9 164 160 164C152.1 164 144.9 168.7 141.7 175.9L77.72 319.9C73.24 329.1 77.78 341.8 87.88 346.3C97.97 350.8 109.8 346.2 114.3 336.1L123.2 315.1H196.8L205.7 336.1C210.2 346.2 222 350.8 232.1 346.3C242.2 341.8 246.8 329.1 242.3 319.9L178.3 175.9z" - } - }, - "free": [ - "solid" - ] - }, - "laptop": { - "changes": [ - "3.0.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f109", - "aliases": { - "unicodes": { - "composite": [ - "1f4bb" - ], - "secondary": [ - "10f109" - ] - } - }, - "label": "Laptop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M128 96h384v256h64v-272c0-26.38-21.62-48-48-48h-416c-26.38 0-48 21.62-48 48V352h64V96zM624 383.1h-608c-8.75 0-16 7.25-16 16v16c0 35.25 28.75 64 64 64h512c35.25 0 64-28.75 64-64v-16C640 391.2 632.8 383.1 624 383.1z" - } - }, - "free": [ - "solid" - ] - }, - "laptop-code": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5fc", - "aliases": { - "unicodes": { - "secondary": [ - "10f5fc" - ] - } - }, - "label": "Laptop Code", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M128 96h384v256h64V80C576 53.63 554.4 32 528 32h-416C85.63 32 64 53.63 64 80V352h64V96zM624 384h-608C7.25 384 0 391.3 0 400V416c0 35.25 28.75 64 64 64h512c35.25 0 64-28.75 64-64v-16C640 391.3 632.8 384 624 384zM365.9 286.2C369.8 290.1 374.9 292 380 292s10.23-1.938 14.14-5.844l48-48c7.812-7.813 7.812-20.5 0-28.31l-48-48c-7.812-7.813-20.47-7.813-28.28 0c-7.812 7.813-7.812 20.5 0 28.31l33.86 33.84l-33.86 33.84C358 265.7 358 278.4 365.9 286.2zM274.1 161.9c-7.812-7.813-20.47-7.813-28.28 0l-48 48c-7.812 7.813-7.812 20.5 0 28.31l48 48C249.8 290.1 254.9 292 260 292s10.23-1.938 14.14-5.844c7.812-7.813 7.812-20.5 0-28.31L240.3 224l33.86-33.84C281.1 182.4 281.1 169.7 274.1 161.9z" - } - }, - "free": [ - "solid" - ] - }, - "laptop-file": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e51d", - "label": "Laptop File", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M192 96C192 113.7 206.3 128 224 128H320V192H288C243.8 192 208 227.8 208 272V384C187.1 384 169.3 397.4 162.7 416H48C21.49 416 0 394.5 0 368V48C0 21.49 21.49 0 48 0H192V96zM240 272C240 245.5 261.5 224 288 224H544C570.5 224 592 245.5 592 272V416H624C632.8 416 640 423.2 640 432V448C640 483.3 611.3 512 576 512H256C220.7 512 192 483.3 192 448V432C192 423.2 199.2 416 208 416H240V272zM304 288V416H528V288H304zM320 96H224V0L320 96z" - } - }, - "free": [ - "solid" - ] - }, - "laptop-medical": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f812", - "aliases": { - "unicodes": { - "secondary": [ - "10f812" - ] - } - }, - "label": "Laptop Medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M624 384h-608C7.25 384 0 391.3 0 400V416c0 35.25 28.75 64 64 64h512c35.25 0 64-28.75 64-64v-16C640 391.3 632.8 384 624 384zM128 96h384v256h64V80C576 53.63 554.4 32 528 32h-416C85.63 32 64 53.63 64 80V352h64V96zM304 336h32c8.801 0 16-7.201 16-16V272h48C408.8 272 416 264.8 416 256V224c0-8.801-7.199-16-16-16H352V160c0-8.801-7.199-16-16-16h-32C295.2 144 288 151.2 288 160v48H240C231.2 208 224 215.2 224 224v32c0 8.799 7.199 16 16 16H288V320C288 328.8 295.2 336 304 336z" - } - }, - "free": [ - "solid" - ] - }, - "laravel": { - "changes": [ - "5.0.0", - "5.0.3", - "5.11.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3bd", - "label": "Laravel", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M504.4 115.8a5.72 5.72 0 0 0 -.28-.68 8.52 8.52 0 0 0 -.53-1.25 6 6 0 0 0 -.54-.71 9.36 9.36 0 0 0 -.72-.94c-.23-.22-.52-.4-.77-.6a8.84 8.84 0 0 0 -.9-.68L404.4 55.55a8 8 0 0 0 -8 0L300.1 111h0a8.07 8.07 0 0 0 -.88 .69 7.68 7.68 0 0 0 -.78 .6 8.23 8.23 0 0 0 -.72 .93c-.17 .24-.39 .45-.54 .71a9.7 9.7 0 0 0 -.52 1.25c-.08 .23-.21 .44-.28 .68a8.08 8.08 0 0 0 -.28 2.08V223.2l-80.22 46.19V63.44a7.8 7.8 0 0 0 -.28-2.09c-.06-.24-.2-.45-.28-.68a8.35 8.35 0 0 0 -.52-1.24c-.14-.26-.37-.47-.54-.72a9.36 9.36 0 0 0 -.72-.94 9.46 9.46 0 0 0 -.78-.6 9.8 9.8 0 0 0 -.88-.68h0L115.6 1.07a8 8 0 0 0 -8 0L11.34 56.49h0a6.52 6.52 0 0 0 -.88 .69 7.81 7.81 0 0 0 -.79 .6 8.15 8.15 0 0 0 -.71 .93c-.18 .25-.4 .46-.55 .72a7.88 7.88 0 0 0 -.51 1.24 6.46 6.46 0 0 0 -.29 .67 8.18 8.18 0 0 0 -.28 2.1v329.7a8 8 0 0 0 4 6.95l192.5 110.8a8.83 8.83 0 0 0 1.33 .54c.21 .08 .41 .2 .63 .26a7.92 7.92 0 0 0 4.1 0c.2-.05 .37-.16 .55-.22a8.6 8.6 0 0 0 1.4-.58L404.4 400.1a8 8 0 0 0 4-6.95V287.9l92.24-53.11a8 8 0 0 0 4-7V117.9A8.63 8.63 0 0 0 504.4 115.8zM111.6 17.28h0l80.19 46.15-80.2 46.18L31.41 63.44zm88.25 60V278.6l-46.53 26.79-33.69 19.4V123.5l46.53-26.79zm0 412.8L23.37 388.5V77.32L57.06 96.7l46.52 26.8V338.7a6.94 6.94 0 0 0 .12 .9 8 8 0 0 0 .16 1.18h0a5.92 5.92 0 0 0 .38 .9 6.38 6.38 0 0 0 .42 1v0a8.54 8.54 0 0 0 .6 .78 7.62 7.62 0 0 0 .66 .84l0 0c.23 .22 .52 .38 .77 .58a8.93 8.93 0 0 0 .86 .66l0 0 0 0 92.19 52.18zm8-106.2-80.06-45.32 84.09-48.41 92.26-53.11 80.13 46.13-58.8 33.56zm184.5 4.57L215.9 490.1V397.8L346.6 323.2l45.77-26.15zm0-119.1L358.7 250l-46.53-26.79V131.8l33.69 19.4L392.4 178zm8-105.3-80.2-46.17 80.2-46.16 80.18 46.15zm8 105.3V178L455 151.2l33.68-19.4v91.39h0z" - } - }, - "free": [ - "brands" - ] - }, - "lari-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1c8", - "label": "Lari Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M144 32C161.7 32 176 46.33 176 64V96.66C181.3 96.22 186.6 96 192 96C197.4 96 202.7 96.22 208 96.66V64C208 46.33 222.3 32 240 32C257.7 32 272 46.33 272 64V113.4C326.9 138.6 367.8 188.9 380.2 249.6C383.7 266.1 372.5 283.8 355.2 287.4C337.8 290.9 320.1 279.7 317.4 262.4C311.4 232.5 294.9 206.4 272 188.1V256C272 273.7 257.7 288 240 288C222.3 288 208 273.7 208 256V160.1C202.8 160.3 197.4 160 192 160C186.6 160 181.2 160.3 176 160.1V256C176 273.7 161.7 288 144 288C126.3 288 112 273.7 112 256V188.1C82.74 211.5 64 247.6 64 288C64 358.7 121.3 416 192 416H352C369.7 416 384 430.3 384 448C384 465.7 369.7 480 352 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H48.89C18.49 382 0 337.2 0 288C0 210.5 45.9 143.7 112 113.4V64C112 46.33 126.3 32 144 32V32z" - } - }, - "free": [ - "solid" - ] - }, - "lastfm": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f202", - "label": "last.fm", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163C45.7 113.8 0 168.3 0 261c0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z" - } - }, - "free": [ - "brands" - ] - }, - "layer-group": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5fd", - "aliases": { - "unicodes": { - "secondary": [ - "10f5fd" - ] - } - }, - "label": "Layer Group", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573268, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M232.5 5.171C247.4-1.718 264.6-1.718 279.5 5.171L498.1 106.2C506.6 110.1 512 118.6 512 127.1C512 137.3 506.6 145.8 498.1 149.8L279.5 250.8C264.6 257.7 247.4 257.7 232.5 250.8L13.93 149.8C5.438 145.8 0 137.3 0 127.1C0 118.6 5.437 110.1 13.93 106.2L232.5 5.171zM498.1 234.2C506.6 238.1 512 246.6 512 255.1C512 265.3 506.6 273.8 498.1 277.8L279.5 378.8C264.6 385.7 247.4 385.7 232.5 378.8L13.93 277.8C5.438 273.8 0 265.3 0 255.1C0 246.6 5.437 238.1 13.93 234.2L67.13 209.6L219.1 279.8C242.5 290.7 269.5 290.7 292.9 279.8L444.9 209.6L498.1 234.2zM292.9 407.8L444.9 337.6L498.1 362.2C506.6 366.1 512 374.6 512 383.1C512 393.3 506.6 401.8 498.1 405.8L279.5 506.8C264.6 513.7 247.4 513.7 232.5 506.8L13.93 405.8C5.438 401.8 0 393.3 0 383.1C0 374.6 5.437 366.1 13.93 362.2L67.13 337.6L219.1 407.8C242.5 418.7 269.5 418.7 292.9 407.8V407.8z" - } - }, - "free": [ - "solid" - ] - }, - "leaf": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f06c", - "aliases": { - "unicodes": { - "secondary": [ - "10f06c" - ] - } - }, - "label": "leaf", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573269, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 165.4c0 127.9-70.05 235.3-175.3 270.1c-20.04 7.938-41.83 12.46-64.69 12.46c-64.9 0-125.2-36.51-155.7-94.47c-54.13 49.93-68.71 107-68.96 108.1C44.72 472.6 34.87 480 24.02 480c-1.844 0-3.727-.2187-5.602-.6562c-12.89-3.098-20.84-16.08-17.75-28.96c9.598-39.5 90.47-226.4 335.3-226.4C344.8 224 352 216.8 352 208S344.8 192 336 192C228.6 192 151 226.6 96.29 267.6c.1934-10.82 1.242-21.84 3.535-33.05c13.47-65.81 66.04-119 131.4-134.2c28.33-6.562 55.68-6.013 80.93-.0054c56 13.32 118.2-7.412 149.3-61.24c5.664-9.828 20.02-9.516 24.66 .8282C502.7 76.76 512 121.9 512 165.4z" - } - }, - "free": [ - "solid" - ] - }, - "leanpub": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f212", - "label": "Leanpub", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M386.5 111.5l15.1 248.1-10.98-.275c-36.23-.824-71.64 8.783-102.7 27.1-31.02-19.21-66.42-27.1-102.7-27.1-45.56 0-82.07 10.7-123.5 27.72L93.12 129.6c28.55-11.8 61.48-18.11 92.23-18.11 41.17 0 73.84 13.18 102.7 42.54 27.72-28.27 59.01-41.72 98.54-42.54zM569.1 448c-25.53 0-47.49-5.215-70.54-15.65-34.31-15.65-69.99-24.98-107.9-24.98-38.98 0-74.93 12.9-102.7 40.62-27.72-27.72-63.68-40.62-102.7-40.62-37.88 0-73.56 9.333-107.9 24.98C55.24 442.2 32.73 448 8.303 448H6.93L49.47 98.86C88.73 76.63 136.5 64 181.8 64 218.8 64 256.1 71.68 288 93.1 319 71.68 357.2 64 394.2 64c45.29 0 93.05 12.63 132.3 34.86L569.1 448zm-43.37-44.74l-34.04-280.2c-30.74-13.1-67.25-21.41-101-21.41-38.43 0-74.39 12.08-102.7 38.7-28.27-26.63-64.23-38.7-102.7-38.7-33.76 0-70.27 7.411-101 21.41L50.3 403.3c47.21-19.49 82.89-33.49 135-33.49 37.6 0 70.82 9.606 102.7 29.64 31.84-20.04 65.05-29.64 102.7-29.64 52.15 0 87.83 13.1 135 33.49z" - } - }, - "free": [ - "brands" - ] - }, - "left-long": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f30a", - "aliases": { - "names": [ - "long-arrow-alt-left" - ], - "unicodes": { - "secondary": [ - "10f30a" - ] - } - }, - "label": "Left long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573269, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256C512 273.7 497.7 288 480 288H160.1l0 72c0 9.547-5.66 18.19-14.42 22c-8.754 3.812-18.95 2.077-25.94-4.407l-112.1-104c-10.24-9.5-10.24-25.69 0-35.19l112.1-104c6.992-6.484 17.18-8.218 25.94-4.406C154.4 133.8 160.1 142.5 160.1 151.1L160.1 224H480C497.7 224 512 238.3 512 256z" - } - }, - "free": [ - "solid" - ] - }, - "left-right": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f337", - "aliases": { - "names": [ - "arrows-alt-h" - ], - "unicodes": { - "composite": [ - "2194" - ], - "secondary": [ - "10f337" - ] - } - }, - "label": "Left right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573269, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M503.1 273.6l-112 104c-6.984 6.484-17.17 8.219-25.92 4.406s-14.41-12.45-14.41-22v-56l-192 .001V360c0 9.547-5.656 18.19-14.41 22c-8.75 3.812-18.94 2.078-25.92-4.406l-112-104c-9.781-9.094-9.781-26.09 0-35.19l112-104c6.984-6.484 17.17-8.219 25.92-4.406C154 133.8 159.7 142.5 159.7 152v55.1l192-.001v-56c0-9.547 5.656-18.19 14.41-22s18.94-2.078 25.92 4.406l112 104C513.8 247.5 513.8 264.5 503.1 273.6z" - } - }, - "free": [ - "solid" - ] - }, - "lemon": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f094", - "aliases": { - "unicodes": { - "composite": [ - "1f34b" - ], - "secondary": [ - "10f094" - ] - } - }, - "label": "Lemon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573269, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M427.9 52.1c-20.13-20.23-47.58-25.27-65.63-14.77c-51.63 30.08-158.6-46.49-281 75.91c-122.4 122.4-45.83 229.4-75.91 281c-10.5 18.05-5.471 45.5 14.77 65.63c20.13 20.24 47.58 25.27 65.63 14.77c51.63-30.08 158.6 46.49 281-75.91c122.4-122.4 45.83-229.4 75.91-281C453.2 99.69 448.1 72.23 427.9 52.1zM211.9 127.5C167.6 138.7 106.7 199.6 95.53 243.9C93.69 251.2 87.19 255.1 79.1 255.1c-1.281 0-2.594-.1562-3.906-.4687C67.53 253.4 62.34 244.7 64.47 236.1c14.16-56.28 83.31-125.4 139.6-139.6c8.656-2.031 17.25 3.062 19.44 11.62C225.7 116.7 220.5 125.3 211.9 127.5z" - }, - "regular": { - "last_modified": 1658443573073, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M439.9 144.6c15.34-26.38 8.372-62.41-16.96-87.62c-25.21-25.32-61.22-32.26-87.61-16.95c-9.044 5.218-27.15 3.702-48.08 1.968c-50.78-4.327-127.4-10.73-207.6 69.56C-.6501 191.9 5.801 268.5 10.07 319.3c1.749 20.96 3.28 39.07-1.984 48.08c-15.35 26.4-8.357 62.45 16.92 87.57c16.26 16.37 37.05 25.09 56.83 25.09c10.89 0 21.46-2.64 30.83-8.092c9.013-5.249 27.12-3.718 48.08-1.968c50.69 4.233 127.4 10.7 207.6-69.56c80.27-80.28 73.82-156.9 69.56-207.7C436.2 171.8 434.7 153.7 439.9 144.6zM398.4 120.5c-12.87 22.09-10.67 48.41-8.326 76.25c4.155 49.3 8.841 105.2-55.67 169.7c-64.53 64.49-120.5 59.78-169.7 55.68c-27.85-2.328-54.12-4.53-76.26 8.311c-6.139 3.64-19.17 1.031-29.58-9.451c-10.39-10.33-12.95-23.35-9.372-29.49c12.87-22.09 10.67-48.41 8.326-76.25C53.72 265.1 49.04 210.1 113.5 145.5c48.27-48.27 91.71-57.8 131.2-57.8c13.28 0 26.12 1.078 38.52 2.125c27.9 2.359 54.17 4.561 76.26-8.311c6.123-3.577 19.18-1.031 29.49 9.357C399.4 101.2 402 114.4 398.4 120.5zM239.5 124.1c2.156 8.561-3.062 17.25-11.62 19.43C183.6 154.7 122.7 215.6 111.6 259.9C109.7 267.1 103.2 271.1 96.05 271.1c-1.281 0-2.593-.1562-3.905-.4687C83.58 269.3 78.4 260.6 80.52 252.1C94.67 195.8 163.8 126.7 220.1 112.5C228.8 110.4 237.3 115.5 239.5 124.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "less": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f41d", - "label": "Less", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M612.7 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2h-20.5v24.2h6.3c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3v1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6v.5h-6.3V393h20.5c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6v-27.3c-20.5-.7-27.3-12.3-27.3-23.3zm-105.6 32c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zm-358.9 59.4c-3.7 0-8.4-3.2-8.4-13.1V119.1H65.2c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6v27.3c20.5 .5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2h20.5v-24.2h-6.3c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3v-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1H93v150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1 .8-4.6 .8-6.2 .8zM379.9 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6 11.6 0 22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9l-15.8-27.8c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2H290c.5-3.7 1.6-11 1.6-19.4 .6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31h-56.8z" - } - }, - "free": [ - "brands" - ] - }, - "less-than": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "3c", - "aliases": { - "unicodes": { - "composite": [ - "f536" - ], - "primary": [ - "f536" - ], - "secondary": [ - "10f536", - "103c" - ] - } - }, - "label": "Less Than", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573269, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M351.1 448c-4.797 0-9.688-1.094-14.28-3.375l-320-160C6.844 279.2 0 268.1 0 256c0-12.13 6.844-23.18 17.69-28.62l320-160c15.88-7.875 35.05-1.5 42.94 14.31c7.906 15.81 1.5 35.03-14.31 42.94L103.5 256l262.8 131.4c15.81 7.906 22.22 27.12 14.31 42.94C375 441.5 363.7 448 351.1 448z" - } - }, - "free": [ - "solid" - ] - }, - "less-than-equal": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f537", - "aliases": { - "unicodes": { - "secondary": [ - "10f537" - ] - } - }, - "label": "Less Than Equal To", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573269, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M52.11 221.7l320 128C376 351.3 380 352 383.1 352c12.7 0 24.72-7.594 29.73-20.12c6.562-16.41-1.422-35.03-17.83-41.59L150.2 192l245.7-98.28c16.41-6.562 24.39-25.19 17.83-41.59S388.6 27.68 372.1 34.21l-320 128.1C39.97 167.2 32 178.9 32 192S39.97 216.8 52.11 221.7zM416 416H32c-17.67 0-32 14.31-32 31.1S14.33 480 32 480h384c17.67 0 32-14.31 32-32S433.7 416 416 416z" - } - }, - "free": [ - "solid" - ] - }, - "life-ring": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1cd", - "aliases": { - "unicodes": { - "secondary": [ - "10f1cd" - ] - } - }, - "label": "Life Ring", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573270, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M470.6 425.4C483.1 437.9 483.1 458.1 470.6 470.6C458.1 483.1 437.9 483.1 425.4 470.6L412.1 458.2C369.6 491.9 315.2 512 255.1 512C196.8 512 142.4 491.9 99.02 458.2L86.63 470.6C74.13 483.1 53.87 483.1 41.37 470.6C28.88 458.1 28.88 437.9 41.37 425.4L53.76 412.1C20.07 369.6 0 315.2 0 255.1C0 196.8 20.07 142.4 53.76 99.02L41.37 86.63C28.88 74.13 28.88 53.87 41.37 41.37C53.87 28.88 74.13 28.88 86.63 41.37L99.02 53.76C142.4 20.07 196.8 0 255.1 0C315.2 0 369.6 20.07 412.1 53.76L425.4 41.37C437.9 28.88 458.1 28.88 470.6 41.37C483.1 53.87 483.1 74.13 470.6 86.63L458.2 99.02C491.9 142.4 512 196.8 512 255.1C512 315.2 491.9 369.6 458.2 412.1L470.6 425.4zM309.3 354.5C293.4 363.1 275.3 368 255.1 368C236.7 368 218.6 363.1 202.7 354.5L144.8 412.5C176.1 434.9 214.5 448 255.1 448C297.5 448 335.9 434.9 367.2 412.5L309.3 354.5zM448 255.1C448 214.5 434.9 176.1 412.5 144.8L354.5 202.7C363.1 218.6 368 236.7 368 256C368 275.3 363.1 293.4 354.5 309.3L412.5 367.2C434.9 335.9 448 297.5 448 256V255.1zM255.1 63.1C214.5 63.1 176.1 77.14 144.8 99.5L202.7 157.5C218.6 148.9 236.7 143.1 255.1 143.1C275.3 143.1 293.4 148.9 309.3 157.5L367.2 99.5C335.9 77.14 297.5 63.1 256 63.1H255.1zM157.5 309.3C148.9 293.4 143.1 275.3 143.1 255.1C143.1 236.7 148.9 218.6 157.5 202.7L99.5 144.8C77.14 176.1 63.1 214.5 63.1 255.1C63.1 297.5 77.14 335.9 99.5 367.2L157.5 309.3zM255.1 207.1C229.5 207.1 207.1 229.5 207.1 255.1C207.1 282.5 229.5 303.1 255.1 303.1C282.5 303.1 304 282.5 304 255.1C304 229.5 282.5 207.1 255.1 207.1z" - }, - "regular": { - "last_modified": 1658443573073, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M464.1 431C474.3 440.4 474.3 455.6 464.1 464.1C455.6 474.3 440.4 474.3 431 464.1L419.3 453.2C374.9 489.9 318.1 512 256 512C193.9 512 137.1 489.9 92.74 453.2L80.97 464.1C71.6 474.3 56.4 474.3 47.03 464.1C37.66 455.6 37.66 440.4 47.03 431L58.8 419.3C22.08 374.9 0 318.1 0 256C0 193.9 22.08 137.1 58.8 92.74L47.03 80.97C37.66 71.6 37.66 56.4 47.03 47.03C56.4 37.66 71.6 37.66 80.97 47.03L92.74 58.8C137.1 22.08 193.9 0 256 0C318.1 0 374.9 22.08 419.3 58.8L431 47.03C440.4 37.66 455.6 37.66 464.1 47.03C474.3 56.4 474.3 71.6 464.1 80.97L453.2 92.74C489.9 137.1 512 193.9 512 256C512 318.1 489.9 374.9 453.2 419.3L464.1 431zM304.8 338.7C290.5 347.2 273.8 352 256 352C238.2 352 221.5 347.2 207.2 338.7L126.9 419.1C162.3 447.2 207.2 464 256 464C304.8 464 349.7 447.2 385.1 419.1L304.8 338.7zM464 256C464 207.2 447.2 162.3 419.1 126.9L338.7 207.2C347.2 221.5 352 238.2 352 256C352 273.8 347.2 290.5 338.7 304.8L419.1 385.1C447.2 349.7 464 304.8 464 256V256zM256 48C207.2 48 162.3 64.8 126.9 92.93L207.2 173.3C221.5 164.8 238.2 160 256 160C273.8 160 290.5 164.8 304.8 173.3L385.1 92.93C349.7 64.8 304.8 48 256 48V48zM173.3 304.8C164.8 290.5 160 273.8 160 256C160 238.2 164.8 221.5 173.3 207.2L92.93 126.9C64.8 162.3 48 207.2 48 256C48 304.8 64.8 349.7 92.93 385.1L173.3 304.8zM256 208C229.5 208 208 229.5 208 256C208 282.5 229.5 304 256 304C282.5 304 304 282.5 304 256C304 229.5 282.5 208 256 208z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "lightbulb": { - "changes": [ - "3.0.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0eb", - "aliases": { - "unicodes": { - "composite": [ - "1f4a1" - ], - "secondary": [ - "10f0eb" - ] - } - }, - "label": "Lightbulb", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573271, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM191.4 .0132C89.44 .3257 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.61 288.9-.2837 191.4 .0132zM192 96.01c-44.13 0-80 35.89-80 79.1C112 184.8 104.8 192 96 192S80 184.8 80 176c0-61.76 50.25-111.1 112-111.1c8.844 0 16 7.159 16 16S200.8 96.01 192 96.01z" - }, - "regular": { - "last_modified": 1658443573074, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M112.1 454.3c0 6.297 1.816 12.44 5.284 17.69l17.14 25.69c5.25 7.875 17.17 14.28 26.64 14.28h61.67c9.438 0 21.36-6.401 26.61-14.28l17.08-25.68c2.938-4.438 5.348-12.37 5.348-17.7L272 415.1h-160L112.1 454.3zM192 0C90.02 .3203 16 82.97 16 175.1c0 44.38 16.44 84.84 43.56 115.8c16.53 18.84 42.34 58.23 52.22 91.45c.0313 .25 .0938 .5166 .125 .7823h160.2c.0313-.2656 .0938-.5166 .125-.7823c9.875-33.22 35.69-72.61 52.22-91.45C351.6 260.8 368 220.4 368 175.1C368 78.8 289.2 .0039 192 0zM288.4 260.1c-15.66 17.85-35.04 46.3-49.05 75.89h-94.61c-14.01-29.59-33.39-58.04-49.04-75.88C75.24 236.8 64 206.1 64 175.1C64 113.3 112.1 48.25 191.1 48C262.6 48 320 105.4 320 175.1C320 206.1 308.8 236.8 288.4 260.1zM176 80C131.9 80 96 115.9 96 160c0 8.844 7.156 16 16 16S128 168.8 128 160c0-26.47 21.53-48 48-48c8.844 0 16-7.148 16-15.99S184.8 80 176 80z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "line": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3c0", - "label": "Line", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M272.1 204.2v71.1c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.1 0-2.1-.6-2.6-1.3l-32.6-44v42.2c0 1.8-1.4 3.2-3.2 3.2h-11.4c-1.8 0-3.2-1.4-3.2-3.2v-71.1c0-1.8 1.4-3.2 3.2-3.2H219c1 0 2.1 .5 2.6 1.4l32.6 44v-42.2c0-1.8 1.4-3.2 3.2-3.2h11.4c1.8-.1 3.3 1.4 3.3 3.1zm-82-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 1.8 1.4 3.2 3.2 3.2h11.4c1.8 0 3.2-1.4 3.2-3.2v-71.1c0-1.7-1.4-3.2-3.2-3.2zm-27.5 59.6h-31.1v-56.4c0-1.8-1.4-3.2-3.2-3.2h-11.4c-1.8 0-3.2 1.4-3.2 3.2v71.1c0 .9 .3 1.6 .9 2.2 .6 .5 1.3 .9 2.2 .9h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.7-1.4-3.2-3.1-3.2zM332.1 201h-45.7c-1.7 0-3.2 1.4-3.2 3.2v71.1c0 1.7 1.4 3.2 3.2 3.2h45.7c1.8 0 3.2-1.4 3.2-3.2v-11.4c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2V234c0-1.8-1.4-3.2-3.2-3.2H301v-12h31.1c1.8 0 3.2-1.4 3.2-3.2v-11.4c-.1-1.7-1.5-3.2-3.2-3.2zM448 113.7V399c-.1 44.8-36.8 81.1-81.7 81H81c-44.8-.1-81.1-36.9-81-81.7V113c.1-44.8 36.9-81.1 81.7-81H367c44.8 .1 81.1 36.8 81 81.7zm-61.6 122.6c0-73-73.2-132.4-163.1-132.4-89.9 0-163.1 59.4-163.1 132.4 0 65.4 58 120.2 136.4 130.6 19.1 4.1 16.9 11.1 12.6 36.8-.7 4.1-3.3 16.1 14.1 8.8 17.4-7.3 93.9-55.3 128.2-94.7 23.6-26 34.9-52.3 34.9-81.5z" - } - }, - "free": [ - "brands" - ] - }, - "lines-leaning": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e51e", - "label": "Lines Leaning", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573271, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M62.36 458.1C56.77 474.9 38.65 483.9 21.88 478.4C5.116 472.8-3.946 454.6 1.643 437.9L129.6 53.88C135.2 37.12 153.4 28.05 170.1 33.64C186.9 39.23 195.9 57.35 190.4 74.12L62.36 458.1zM261.3 32.44C278.7 35.34 290.5 51.83 287.6 69.26L223.6 453.3C220.7 470.7 204.2 482.5 186.7 479.6C169.3 476.7 157.5 460.2 160.4 442.7L224.4 58.74C227.3 41.31 243.8 29.53 261.3 32.44H261.3zM352 32C369.7 32 384 46.33 384 64V448C384 465.7 369.7 480 352 480C334.3 480 320 465.7 320 448V64C320 46.33 334.3 32 352 32V32z" - } - }, - "free": [ - "solid" - ] - }, - "link": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0c1", - "aliases": { - "names": [ - "chain" - ], - "unicodes": { - "composite": [ - "1f517" - ], - "secondary": [ - "10f0c1" - ] - } - }, - "label": "Link", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573271, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M172.5 131.1C228.1 75.51 320.5 75.51 376.1 131.1C426.1 181.1 433.5 260.8 392.4 318.3L391.3 319.9C381 334.2 361 337.6 346.7 327.3C332.3 317 328.9 297 339.2 282.7L340.3 281.1C363.2 249 359.6 205.1 331.7 177.2C300.3 145.8 249.2 145.8 217.7 177.2L105.5 289.5C73.99 320.1 73.99 372 105.5 403.5C133.3 431.4 177.3 435 209.3 412.1L210.9 410.1C225.3 400.7 245.3 404 255.5 418.4C265.8 432.8 262.5 452.8 248.1 463.1L246.5 464.2C188.1 505.3 110.2 498.7 60.21 448.8C3.741 392.3 3.741 300.7 60.21 244.3L172.5 131.1zM467.5 380C411 436.5 319.5 436.5 263 380C213 330 206.5 251.2 247.6 193.7L248.7 192.1C258.1 177.8 278.1 174.4 293.3 184.7C307.7 194.1 311.1 214.1 300.8 229.3L299.7 230.9C276.8 262.1 280.4 306.9 308.3 334.8C339.7 366.2 390.8 366.2 422.3 334.8L534.5 222.5C566 191 566 139.1 534.5 108.5C506.7 80.63 462.7 76.99 430.7 99.9L429.1 101C414.7 111.3 394.7 107.1 384.5 93.58C374.2 79.2 377.5 59.21 391.9 48.94L393.5 47.82C451 6.731 529.8 13.25 579.8 63.24C636.3 119.7 636.3 211.3 579.8 267.7L467.5 380z" - } - }, - "free": [ - "solid" - ] - }, - "link-slash": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f127", - "aliases": { - "names": [ - "chain-broken", - "chain-slash", - "unlink" - ], - "unicodes": { - "secondary": [ - "10f127" - ] - } - }, - "label": "Link Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573271, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M185.7 120.3C242.5 75.82 324.7 79.73 376.1 131.1C420.1 175.1 430.9 239.6 406.7 293.5L438.6 318.4L534.5 222.5C566 191 566 139.1 534.5 108.5C506.7 80.63 462.7 76.1 430.7 99.9L429.1 101C414.7 111.3 394.7 107.1 384.5 93.58C374.2 79.2 377.5 59.21 391.9 48.94L393.5 47.82C451 6.732 529.8 13.25 579.8 63.24C636.3 119.7 636.3 211.3 579.8 267.7L489.3 358.2L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L185.7 120.3zM238.1 161.1L353.4 251.7C359.3 225.5 351.7 197.2 331.7 177.2C306.6 152.1 269.1 147 238.1 161.1V161.1zM263 380C233.1 350.1 218.7 309.8 220.9 270L406.6 416.4C357.4 431 301.9 418.9 263 380V380zM116.6 187.9L167.2 227.8L105.5 289.5C73.99 320.1 73.99 372 105.5 403.5C133.3 431.4 177.3 435 209.3 412.1L210.9 410.1C225.3 400.7 245.3 404 255.5 418.4C265.8 432.8 262.5 452.8 248.1 463.1L246.5 464.2C188.1 505.3 110.2 498.7 60.21 448.8C3.741 392.3 3.741 300.7 60.21 244.3L116.6 187.9z" - } - }, - "free": [ - "solid" - ] - }, - "linkedin": { - "changes": [ - "1.0.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f08c", - "label": "LinkedIn", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z" - } - }, - "free": [ - "brands" - ] - }, - "linkedin-in": { - "changes": [ - "2.0.0", - "5.0.0", - "5.4.1", - "5.8.0", - "5.8.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f0e1", - "label": "LinkedIn In", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M100.3 448H7.4V148.9h92.88zM53.79 108.1C24.09 108.1 0 83.5 0 53.8a53.79 53.79 0 0 1 107.6 0c0 29.7-24.1 54.3-53.79 54.3zM447.9 448h-92.68V302.4c0-34.7-.7-79.2-48.29-79.2-48.29 0-55.69 37.7-55.69 76.7V448h-92.78V148.9h89.08v40.8h1.3c12.4-23.5 42.69-48.3 87.88-48.3 94 0 111.3 61.9 111.3 142.3V448z" - } - }, - "free": [ - "brands" - ] - }, - "linode": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2b8", - "label": "Linode", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M366 186.9l-59.5 36.87-.838 36.87-29.33-19.27-39.38 24.3c2.238 55.21 2.483 59.27 2.51 59.5l-97.2 65.36L127.2 285.7l108.1-62.01L195.1 197.8l-75.42 38.55L98.72 93.01 227.8 43.57 136.4 0 10.74 39.38 38.39 174.3l41.9 32.68L48.44 222.1 69.39 323.5 98.72 351.1 77.77 363.7l16.76 78.77L160.7 512c-10.8-74.84-11.66-78.64-11.73-78.77l77.93-55.3c16.76-12.57 15.08-10.89 15.08-10.89l.838 24.3 33.52 28.49-.838-77.09 46.93-33.52 26.82-18.43-2.514 36.03 25.14 17.6 6.7-74.58 58.66-43.58z" - } - }, - "free": [ - "brands" - ] - }, - "linux": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f17c", - "label": "Linux", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M220.8 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zm-21.9 1.7c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72C311.1 85.4 315.7 .1 234.8 0 132.4-.2 158 103.4 156.9 135.2c-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7v.1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.7 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4v-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.3 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z" - } - }, - "free": [ - "brands" - ] - }, - "lira-sign": { - "changes": [ - "4.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f195", - "aliases": { - "unicodes": { - "composite": [ - "20a4" - ], - "secondary": [ - "10f195" - ] - } - }, - "label": "Turkish Lira Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573272, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M111.1 191.1H224C241.7 191.1 256 206.3 256 223.1C256 241.7 241.7 255.1 224 255.1H111.1V287.1H224C241.7 287.1 256 302.3 256 319.1C256 337.7 241.7 352 224 352H110.8C108.1 374.2 100.8 395.6 89.2 414.9L88.52 416H288C305.7 416 320 430.3 320 448C320 465.7 305.7 480 288 480H32C20.47 480 9.834 473.8 4.154 463.8C-1.527 453.7-1.371 441.4 4.56 431.5L34.32 381.9C39.89 372.6 43.83 362.5 46.01 352H32C14.33 352 0 337.7 0 320C0 302.3 14.33 288 32 288H48V256H32C14.33 256 0 241.7 0 224C0 206.3 14.33 192 32 192H48V160.4C48 89.47 105.5 32 176.4 32C190.2 32 203.9 34.22 216.1 38.59L298.1 65.64C314.9 71.23 323.9 89.35 318.4 106.1C312.8 122.9 294.6 131.9 277.9 126.4L196.7 99.3C190.2 97.12 183.3 96 176.4 96C140.8 96 112 124.8 112 160.4L111.1 191.1z" - } - }, - "free": [ - "solid" - ] - }, - "list": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f03a", - "aliases": { - "names": [ - "list-squares" - ], - "unicodes": { - "secondary": [ - "10f03a" - ] - } - }, - "label": "List", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573272, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M88 48C101.3 48 112 58.75 112 72V120C112 133.3 101.3 144 88 144H40C26.75 144 16 133.3 16 120V72C16 58.75 26.75 48 40 48H88zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H192C174.3 128 160 113.7 160 96C160 78.33 174.3 64 192 64H480zM480 224C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H192C174.3 288 160 273.7 160 256C160 238.3 174.3 224 192 224H480zM480 384C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H192C174.3 448 160 433.7 160 416C160 398.3 174.3 384 192 384H480zM16 232C16 218.7 26.75 208 40 208H88C101.3 208 112 218.7 112 232V280C112 293.3 101.3 304 88 304H40C26.75 304 16 293.3 16 280V232zM88 368C101.3 368 112 378.7 112 392V440C112 453.3 101.3 464 88 464H40C26.75 464 16 453.3 16 440V392C16 378.7 26.75 368 40 368H88z" - } - }, - "free": [ - "solid" - ] - }, - "list-check": { - "changes": [ - "2.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ae", - "aliases": { - "names": [ - "tasks" - ], - "unicodes": { - "secondary": [ - "10f0ae" - ] - } - }, - "label": "List check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573272, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M152.1 38.16C161.9 47.03 162.7 62.2 153.8 72.06L81.84 152.1C77.43 156.9 71.21 159.8 64.63 159.1C58.05 160.2 51.69 157.6 47.03 152.1L7.029 112.1C-2.343 103.6-2.343 88.4 7.029 79.03C16.4 69.66 31.6 69.66 40.97 79.03L63.08 101.1L118.2 39.94C127 30.09 142.2 29.29 152.1 38.16V38.16zM152.1 198.2C161.9 207 162.7 222.2 153.8 232.1L81.84 312.1C77.43 316.9 71.21 319.8 64.63 319.1C58.05 320.2 51.69 317.6 47.03 312.1L7.029 272.1C-2.343 263.6-2.343 248.4 7.029 239C16.4 229.7 31.6 229.7 40.97 239L63.08 261.1L118.2 199.9C127 190.1 142.2 189.3 152.1 198.2V198.2zM224 96C224 78.33 238.3 64 256 64H480C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H256C238.3 128 224 113.7 224 96V96zM224 256C224 238.3 238.3 224 256 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H256C238.3 288 224 273.7 224 256zM160 416C160 398.3 174.3 384 192 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H192C174.3 448 160 433.7 160 416zM0 416C0 389.5 21.49 368 48 368C74.51 368 96 389.5 96 416C96 442.5 74.51 464 48 464C21.49 464 0 442.5 0 416z" - } - }, - "free": [ - "solid" - ] - }, - "list-ol": { - "changes": [ - "2.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0cb", - "aliases": { - "names": [ - "list-1-2", - "list-numeric" - ], - "unicodes": { - "secondary": [ - "10f0cb" - ] - } - }, - "label": "list-ol", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573272, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M55.1 56.04C55.1 42.78 66.74 32.04 79.1 32.04H111.1C125.3 32.04 135.1 42.78 135.1 56.04V176H151.1C165.3 176 175.1 186.8 175.1 200C175.1 213.3 165.3 224 151.1 224H71.1C58.74 224 47.1 213.3 47.1 200C47.1 186.8 58.74 176 71.1 176H87.1V80.04H79.1C66.74 80.04 55.1 69.29 55.1 56.04V56.04zM118.7 341.2C112.1 333.8 100.4 334.3 94.65 342.4L83.53 357.9C75.83 368.7 60.84 371.2 50.05 363.5C39.26 355.8 36.77 340.8 44.47 330.1L55.59 314.5C79.33 281.2 127.9 278.8 154.8 309.6C176.1 333.1 175.6 370.5 153.7 394.3L118.8 432H152C165.3 432 176 442.7 176 456C176 469.3 165.3 480 152 480H64C54.47 480 45.84 474.4 42.02 465.6C38.19 456.9 39.9 446.7 46.36 439.7L118.4 361.7C123.7 355.9 123.8 347.1 118.7 341.2L118.7 341.2zM512 64C529.7 64 544 78.33 544 96C544 113.7 529.7 128 512 128H256C238.3 128 224 113.7 224 96C224 78.33 238.3 64 256 64H512zM512 224C529.7 224 544 238.3 544 256C544 273.7 529.7 288 512 288H256C238.3 288 224 273.7 224 256C224 238.3 238.3 224 256 224H512zM512 384C529.7 384 544 398.3 544 416C544 433.7 529.7 448 512 448H256C238.3 448 224 433.7 224 416C224 398.3 238.3 384 256 384H512z" - } - }, - "free": [ - "solid" - ] - }, - "list-ul": { - "changes": [ - "2.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ca", - "aliases": { - "names": [ - "list-dots" - ], - "unicodes": { - "secondary": [ - "10f0ca" - ] - } - }, - "label": "list-ul", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573272, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M16 96C16 69.49 37.49 48 64 48C90.51 48 112 69.49 112 96C112 122.5 90.51 144 64 144C37.49 144 16 122.5 16 96zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H192C174.3 128 160 113.7 160 96C160 78.33 174.3 64 192 64H480zM480 224C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H192C174.3 288 160 273.7 160 256C160 238.3 174.3 224 192 224H480zM480 384C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H192C174.3 448 160 433.7 160 416C160 398.3 174.3 384 192 384H480zM16 416C16 389.5 37.49 368 64 368C90.51 368 112 389.5 112 416C112 442.5 90.51 464 64 464C37.49 464 16 442.5 16 416zM112 256C112 282.5 90.51 304 64 304C37.49 304 16 282.5 16 256C16 229.5 37.49 208 64 208C90.51 208 112 229.5 112 256z" - } - }, - "free": [ - "solid" - ] - }, - "litecoin-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1d3", - "label": "Litecoin Sign", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573272, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M128 195.3L247.2 161.2C264.2 156.4 281.9 166.2 286.8 183.2C291.6 200.2 281.8 217.9 264.8 222.8L128 261.9V416H352C369.7 416 384 430.3 384 448C384 465.7 369.7 480 352 480H96C78.33 480 64 465.7 64 448V280.1L40.79 286.8C23.8 291.6 6.087 281.8 1.232 264.8C-3.623 247.8 6.216 230.1 23.21 225.2L64 213.6V64C64 46.33 78.33 32 96 32C113.7 32 128 46.33 128 64V195.3z" - } - }, - "free": [ - "solid" - ] - }, - "location-arrow": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f124", - "aliases": { - "unicodes": { - "secondary": [ - "10f124" - ] - } - }, - "label": "location-arrow", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573273, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M285.6 444.1C279.8 458.3 264.8 466.3 249.8 463.4C234.8 460.4 223.1 447.3 223.1 432V256H47.1C32.71 256 19.55 245.2 16.6 230.2C13.65 215.2 21.73 200.2 35.88 194.4L387.9 50.38C399.8 45.5 413.5 48.26 422.6 57.37C431.7 66.49 434.5 80.19 429.6 92.12L285.6 444.1z" - } - }, - "free": [ - "solid" - ] - }, - "location-crosshairs": { - "changes": [ - "5.2.0", - "5.11.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f601", - "aliases": { - "names": [ - "location" - ], - "unicodes": { - "secondary": [ - "10f601" - ] - } - }, - "label": "Location Crosshairs", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573273, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M176 256C176 211.8 211.8 176 256 176C300.2 176 336 211.8 336 256C336 300.2 300.2 336 256 336C211.8 336 176 300.2 176 256zM256 0C273.7 0 288 14.33 288 32V66.65C368.4 80.14 431.9 143.6 445.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H445.3C431.9 368.4 368.4 431.9 288 445.3V480C288 497.7 273.7 512 256 512C238.3 512 224 497.7 224 480V445.3C143.6 431.9 80.14 368.4 66.65 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H66.65C80.14 143.6 143.6 80.14 224 66.65V32C224 14.33 238.3 0 256 0zM128 256C128 326.7 185.3 384 256 384C326.7 384 384 326.7 384 256C384 185.3 326.7 128 256 128C185.3 128 128 185.3 128 256z" - } - }, - "free": [ - "solid" - ] - }, - "location-dot": { - "changes": [ - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3c5", - "aliases": { - "names": [ - "map-marker-alt" - ], - "unicodes": { - "secondary": [ - "10f3c5" - ] - } - }, - "label": "Location dot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573273, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M168.3 499.2C116.1 435 0 279.4 0 192C0 85.96 85.96 0 192 0C298 0 384 85.96 384 192C384 279.4 267 435 215.7 499.2C203.4 514.5 180.6 514.5 168.3 499.2H168.3zM192 256C227.3 256 256 227.3 256 192C256 156.7 227.3 128 192 128C156.7 128 128 156.7 128 192C128 227.3 156.7 256 192 256z" - } - }, - "free": [ - "solid" - ] - }, - "location-pin": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f041", - "aliases": { - "names": [ - "map-marker" - ], - "unicodes": { - "secondary": [ - "10f041" - ] - } - }, - "label": "Location", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573274, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 192C384 279.4 267 435 215.7 499.2C203.4 514.5 180.6 514.5 168.3 499.2C116.1 435 0 279.4 0 192C0 85.96 85.96 0 192 0C298 0 384 85.96 384 192H384z" - } - }, - "free": [ - "solid" - ] - }, - "location-pin-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e51f", - "label": "Location Pin-lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573273, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M168.3 499.2C116.1 435 0 279.4 0 192C0 85.96 85.96 0 192 0C287.7 0 366.1 69.96 381.6 161.5C328.5 170.3 288 216.4 288 272V296.6C268.9 307.6 256 328.3 256 352V446.8C240.7 467.4 226.7 485.4 215.7 499.2C203.4 514.5 180.6 514.5 168.3 499.2H168.3zM192 256C227.3 256 256 227.3 256 192C256 156.7 227.3 128 192 128C156.7 128 128 156.7 128 192C128 227.3 156.7 256 192 256zM400 192C444.2 192 480 227.8 480 272V320C497.7 320 512 334.3 512 352V480C512 497.7 497.7 512 480 512H320C302.3 512 288 497.7 288 480V352C288 334.3 302.3 320 320 320V272C320 227.8 355.8 192 400 192zM400 240C382.3 240 368 254.3 368 272V320H432V272C432 254.3 417.7 240 400 240z" - } - }, - "free": [ - "solid" - ] - }, - "lock": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f023", - "aliases": { - "unicodes": { - "composite": [ - "1f512" - ], - "secondary": [ - "10f023" - ] - } - }, - "label": "lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573274, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M80 192V144C80 64.47 144.5 0 224 0C303.5 0 368 64.47 368 144V192H384C419.3 192 448 220.7 448 256V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V256C0 220.7 28.65 192 64 192H80zM144 192H304V144C304 99.82 268.2 64 224 64C179.8 64 144 99.82 144 144V192z" - } - }, - "free": [ - "solid" - ] - }, - "lock-open": { - "changes": [ - "3.1.0", - "5.0.0", - "5.0.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3c1", - "aliases": { - "unicodes": { - "secondary": [ - "10f3c1" - ] - } - }, - "label": "Lock Open", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573274, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M352 192H384C419.3 192 448 220.7 448 256V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V256C0 220.7 28.65 192 64 192H288V144C288 64.47 352.5 0 432 0C511.5 0 576 64.47 576 144V192C576 209.7 561.7 224 544 224C526.3 224 512 209.7 512 192V144C512 99.82 476.2 64 432 64C387.8 64 352 99.82 352 144V192z" - } - }, - "free": [ - "solid" - ] - }, - "locust": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e520", - "label": "Locust", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573274, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M328 32C464.1 32 576 143 576 280V320C576 320.1 576 320.2 576 320.3C575.8 364.3 540.1 400 496 400H483.6L508.8 444.1C515.4 455.6 511.4 470.3 499.9 476.8C488.4 483.4 473.7 479.4 467.2 467.9L428.4 400H347.1L299.7 469.7C292.2 480.6 277.2 483.3 266.3 475.7C255.4 468.2 252.7 453.2 260.3 442.3L289.6 400H215.1L163.3 470.2C155.5 480.9 140.4 483.2 129.8 475.3C119.1 467.5 116.8 452.4 124.7 441.8L165.2 386.7L122.2 370.4L42.84 470.9C34.62 481.3 19.53 483 9.13 474.8C-1.274 466.6-3.049 451.5 5.164 441.1L245.2 137.1C250.4 130.5 258.8 127.1 267.2 128.2C275.5 129.3 282.7 134.8 286.1 142.5L307.8 193.3L348.7 137.8C353.8 130.8 362.2 127.2 370.8 128.2C379.3 129.1 386.7 134.6 390.1 142.5L431.8 240H496C506.2 240 516 241.9 525 245.4C508.6 151.4 426.7 80 328 80H312C298.7 80 288 69.26 288 56C288 42.75 298.7 32 312 32L328 32zM332.1 240H379.6L362.5 199.1L332.1 240zM257.8 198.5L225.1 240H273.3L274.8 238.1L257.8 198.5zM496 336C504.8 336 512 328.8 512 320C512 311.2 504.8 304 496 304C487.2 304 480 311.2 480 320C480 328.8 487.2 336 496 336zM88.83 240H126.7L48.9 337.3C38.31 326.8 32 312.3 32 296.8C32 265.4 57.45 240 88.83 240V240z" - } - }, - "free": [ - "solid" - ] - }, - "lungs": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f604", - "aliases": { - "unicodes": { - "composite": [ - "1fac1" - ], - "secondary": [ - "10f604" - ] - } - }, - "label": "Lungs", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 419.8c0 61.25-62.5 105.5-125.3 88.63l-59.53-15.88c-42.12-11.38-71.25-47.5-71.25-88.63L384 316.4l85.88 57.25c3.625 2.375 8.625 1.375 11-2.25l8.875-13.37c2.5-3.625 1.5-8.625-2.125-11L320 235.3l-167.6 111.8c-1.75 1.125-3 3-3.375 5c-.375 2.125 0 4.25 1.25 6l8.875 13.37c1.125 1.75 3 3 5 3.375c2.125 .375 4.25 0 6-1.125L256 316.4l.0313 87.5c0 41.13-29.12 77.25-71.25 88.63l-59.53 15.88C62.5 525.3 0 481 0 419.8c0-10 1.25-19.88 3.875-29.63C25.5 308.9 59.91 231 105.9 159.1c22.12-34.63 36.12-63.13 80.12-63.13C224.7 96 256 125.4 256 161.8v60.1l32.88-21.97C293.4 196.9 296 192 296 186.6V16C296 7.125 303.1 0 312 0h16c8.875 0 16 7.125 16 16v170.6c0 5.375 2.625 10.25 7.125 13.25L384 221.8v-60.1c0-36.38 31.34-65.75 69.97-65.75c43.1 0 58 28.5 80.13 63.13c46 71.88 80.41 149.8 102 231C638.8 399.9 640 409.8 640 419.8z" - } - }, - "free": [ - "solid" - ] - }, - "lungs-virus": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e067", - "aliases": { - "unicodes": { - "secondary": [ - "10e067" - ] - } - }, - "label": "Lungs Virus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M195.5 444.5c-18.71-18.72-18.71-49.16 .0033-67.87l8.576-8.576H192c-26.47 0-48-21.53-48-48c0-26.47 21.53-48 48-48l12.12-.0055L195.5 263.4c-18.71-18.72-18.71-49.16 0-67.88C204.6 186.5 216.7 181.5 229.5 181.5c9.576 0 18.72 2.799 26.52 7.986l.04-27.75c0-36.38-31.42-65.72-70.05-65.72c-44 0-57.97 28.5-80.09 63.13c-46 71.88-80.39 149.8-102 231C1.257 399.9 0 409.8 0 419.8c0 61.25 62.5 105.5 125.3 88.62l59.5-15.9c21.74-5.867 39.91-18.39 52.51-34.73c-2.553 .4141-5.137 .7591-7.774 .7591C216.7 458.5 204.6 453.5 195.5 444.5zM343.1 150.7L344 16C344 7.125 336.9 0 328 0h-16c-8.875 0-16 7.125-16 16L295.1 150.7c7.088-4.133 15.22-6.675 23.1-6.675S336.9 146.5 343.1 150.7zM421.8 421.8c6.25-6.25 6.25-16.37 0-22.62l-8.576-8.576c-20.16-20.16-5.881-54.63 22.63-54.63H448c8.844 0 16-7.156 16-16c0-8.844-7.156-16-16-16h-12.12c-28.51 0-42.79-34.47-22.63-54.63l8.576-8.577c6.25-6.25 6.25-16.37 0-22.62s-16.38-6.25-22.62 0l-8.576 8.577C370.5 246.9 336 232.6 336 204.1v-12.12c0-8.844-7.156-15.1-16-15.1s-16 7.156-16 15.1v12.12c0 28.51-34.47 42.79-54.63 22.63L240.8 218.2c-6.25-6.25-16.38-6.25-22.62 0s-6.25 16.37 0 22.62l8.576 8.577c20.16 20.16 5.881 54.63-22.63 54.63H192c-8.844 0-16 7.156-16 16c0 8.844 7.156 16 16 16h12.12c28.51 0 42.79 34.47 22.63 54.63l-8.576 8.576c-6.25 6.25-6.25 16.37 0 22.62c3.125 3.125 7.219 4.688 11.31 4.688s8.188-1.562 11.31-4.688l8.576-8.575C269.5 393.1 304 407.4 304 435.9v12.12c0 8.844 7.156 16 16 16s16-7.156 16-16v-12.12c0-28.51 34.47-42.79 54.63-22.63l8.576 8.575c3.125 3.125 7.219 4.688 11.31 4.688S418.7 424.9 421.8 421.8zM288 303.1c-8.836 0-16-7.162-16-15.1S279.2 271.1 288 271.1S304 279.2 304 287.1S296.8 303.1 288 303.1zM352 367.1c-8.836 0-16-7.166-16-16s7.164-15.1 16-15.1s16 7.166 16 16S360.8 367.1 352 367.1zM636.1 390.1c-21.62-81.25-56.02-159.1-102-231c-22.12-34.63-36.09-63.13-80.09-63.13c-38.62 0-70.01 29.35-70.01 65.73v27.74c7.795-5.188 16.94-7.986 26.52-7.986c12.82 0 24.88 4.999 33.95 14.07c18.71 18.72 18.71 49.16 0 67.88l-8.576 8.571L448 272c26.47 0 48 21.54 48 48c0 26.47-21.53 48-48 48h-12.12l8.576 8.576c18.71 18.72 18.71 49.16-.0072 67.87c-9.066 9.066-21.12 14.06-33.94 14.06c-2.637 0-5.211-.3438-7.764-.7578c12.6 16.34 30.77 28.86 52.51 34.73l59.5 15.9C577.5 525.3 640 481 640 419.8C640 409.8 638.7 399.9 636.1 390.1z" - } - }, - "free": [ - "solid" - ] - }, - "lyft": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3c3", - "label": "lyft", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 81.1h77.8v208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8C7.8 334 0 310.7 0 289V81.1zm485.9 173.5v-22h23.8v-76.8h-26.1c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7V357c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59v-6.7h38.8v-76.8h-38.8v-23.3c0-34.6 52.2-34.6 52.2 0v77.1c0 56.6 46 102.7 102.7 102.7v-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99v113c0 15.4-23.8 15.4-23.8 0v-113H91v132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8v70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8V155.1h-77.1v.5z" - } - }, - "free": [ - "brands" - ] - }, - "m": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "4d", - "aliases": { - "unicodes": { - "composite": [ - "6d" - ] - } - }, - "label": "M", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 64.01v384c0 17.67-14.31 32-32 32s-32-14.33-32-32V169.7l-133.4 200.1c-11.88 17.81-41.38 17.81-53.25 0L64 169.7v278.3c0 17.67-14.31 32-32 32s-32-14.33-32-32v-384c0-14.09 9.219-26.55 22.72-30.63c13.47-4.156 28.09 1.141 35.91 12.88L224 294.3l165.4-248.1c7.812-11.73 22.47-17.03 35.91-12.88C438.8 37.47 448 49.92 448 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "magento": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3c4", - "label": "Magento", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572485, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M445.7 127.9V384l-63.4 36.5V164.7L223.8 73.1 65.2 164.7l.4 255.9L2.3 384V128.1L224.2 0l221.5 127.9zM255.6 420.5L224 438.9l-31.8-18.2v-256l-63.3 36.6 .1 255.9 94.9 54.9 95.1-54.9v-256l-63.4-36.6v255.9z" - } - }, - "free": [ - "brands" - ] - }, - "magnet": { - "changes": [ - "1.0.0", - "5.0.0", - "5.8.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f076", - "aliases": { - "unicodes": { - "composite": [ - "1f9f2" - ], - "secondary": [ - "10f076" - ] - } - }, - "label": "magnet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M128 160V256C128 309 170.1 352 224 352C277 352 320 309 320 256V160H448V256C448 379.7 347.7 480 224 480C100.3 480 0 379.7 0 256V160H128zM0 64C0 46.33 14.33 32 32 32H96C113.7 32 128 46.33 128 64V128H0V64zM320 64C320 46.33 334.3 32 352 32H416C433.7 32 448 46.33 448 64V128H320V64z" - } - }, - "free": [ - "solid" - ] - }, - "magnifying-glass": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f002", - "aliases": { - "names": [ - "search" - ], - "unicodes": { - "composite": [ - "1f50d" - ], - "secondary": [ - "10f002" - ] - } - }, - "label": "Magnifying glass", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7C401.8 87.79 326.8 13.32 235.2 1.723C99.01-15.51-15.51 99.01 1.724 235.2c11.6 91.64 86.08 166.7 177.6 178.9c53.8 7.189 104.3-6.236 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 0C515.9 484.7 515.9 459.3 500.3 443.7zM79.1 208c0-70.58 57.42-128 128-128s128 57.42 128 128c0 70.58-57.42 128-128 128S79.1 278.6 79.1 208z" - } - }, - "free": [ - "solid" - ] - }, - "magnifying-glass-arrow-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e521", - "label": "Magnifying Glass-arrow-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 208C416 253.9 401.1 296.3 375.1 330.7L502.6 457.4C515.1 469.9 515.1 490.1 502.6 502.6C490.1 515.1 469.9 515.1 457.4 502.6L330.7 375.1C296.3 401.1 253.9 416 208 416C93.12 416 0 322.9 0 208C0 93.12 93.12 0 208 0C322.9 0 416 93.12 416 208zM240.1 119C231.6 109.7 216.4 109.7 207 119C197.7 128.4 197.7 143.6 207 152.1L238.1 184H120C106.7 184 96 194.7 96 208C96 221.3 106.7 232 120 232H238.1L207 263C197.7 272.4 197.7 287.6 207 296.1C216.4 306.3 231.6 306.3 240.1 296.1L312.1 224.1C322.3 215.6 322.3 200.4 312.1 191L240.1 119z" - } - }, - "free": [ - "solid" - ] - }, - "magnifying-glass-chart": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e522", - "label": "Magnifying Glass-chart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 208C416 253.9 401.1 296.3 375.1 330.7L502.6 457.4C515.1 469.9 515.1 490.1 502.6 502.6C490.1 515.1 469.9 515.1 457.4 502.6L330.7 375.1C296.3 401.1 253.9 416 208 416C93.12 416 0 322.9 0 208C0 93.12 93.12 0 208 0C322.9 0 416 93.12 416 208zM104 280C104 293.3 114.7 304 128 304C141.3 304 152 293.3 152 280V216C152 202.7 141.3 192 128 192C114.7 192 104 202.7 104 216V280zM184 280C184 293.3 194.7 304 208 304C221.3 304 232 293.3 232 280V120C232 106.7 221.3 96 208 96C194.7 96 184 106.7 184 120V280zM264 280C264 293.3 274.7 304 288 304C301.3 304 312 293.3 312 280V184C312 170.7 301.3 160 288 160C274.7 160 264 170.7 264 184V280z" - } - }, - "free": [ - "solid" - ] - }, - "magnifying-glass-dollar": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f688", - "aliases": { - "names": [ - "search-dollar" - ], - "unicodes": { - "secondary": [ - "10f688" - ] - } - }, - "label": "Magnifying glass dollar", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7c-12.23-91.55-87.28-166-178.9-177.6c-136.2-17.24-250.7 97.28-233.4 233.4c11.6 91.64 86.07 166.7 177.6 178.9c53.81 7.191 104.3-6.235 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 .0004C515.9 484.7 515.9 459.3 500.3 443.7zM273.7 253.8C269.8 276.4 252.6 291.3 228 296.1V304c0 11.03-8.953 20-20 20S188 315 188 304V295.2C178.2 293.2 168.4 289.9 159.6 286.8L154.8 285.1C144.4 281.4 138.9 269.9 142.6 259.5C146.2 249.1 157.6 243.7 168.1 247.3l5.062 1.812c8.562 3.094 18.25 6.562 25.91 7.719c16.23 2.5 33.47-.0313 35.17-9.812c1.219-7.094 .4062-10.62-31.8-19.84L196.2 225.4C177.8 219.1 134.5 207.3 142.3 162.2C146.2 139.6 163.5 124.8 188 120V112c0-11.03 8.953-20 20-20S228 100.1 228 112v8.695c6.252 1.273 13.06 3.07 21.47 5.992c10.42 3.625 15.95 15.03 12.33 25.47C258.2 162.6 246.8 168.1 236.3 164.5C228.2 161.7 221.8 159.9 216.8 159.2c-16.11-2.594-33.38 .0313-35.08 9.812c-1 5.812-1.719 10 25.7 18.03l6 1.719C238.9 196 281.5 208.2 273.7 253.8z" - } - }, - "free": [ - "solid" - ] - }, - "magnifying-glass-location": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f689", - "aliases": { - "names": [ - "search-location" - ], - "unicodes": { - "secondary": [ - "10f689" - ] - } - }, - "label": "Magnifying glass location", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M236 176c0 15.46-12.54 28-28 28S180 191.5 180 176S192.5 148 208 148S236 160.5 236 176zM500.3 500.3c-15.62 15.62-40.95 15.62-56.57 0l-119.7-119.7c-40.41 27.22-90.9 40.65-144.7 33.46c-91.55-12.23-166-87.28-177.6-178.9c-17.24-136.2 97.29-250.7 233.4-233.4c91.64 11.6 166.7 86.07 178.9 177.6c7.19 53.8-6.236 104.3-33.46 144.7l119.7 119.7C515.9 459.3 515.9 484.7 500.3 500.3zM294.1 182.2C294.1 134.5 255.6 96 207.1 96C160.4 96 121.9 134.5 121.9 182.2c0 38.35 56.29 108.5 77.87 134C201.8 318.5 204.7 320 207.1 320c3.207 0 6.26-1.459 8.303-3.791C237.8 290.7 294.1 220.5 294.1 182.2z" - } - }, - "free": [ - "solid" - ] - }, - "magnifying-glass-minus": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f010", - "aliases": { - "names": [ - "search-minus" - ], - "unicodes": { - "secondary": [ - "10f010" - ] - } - }, - "label": "Magnifying glass minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7c-12.23-91.55-87.28-166-178.9-177.6c-136.2-17.24-250.7 97.28-233.4 233.4c11.6 91.64 86.07 166.7 177.6 178.9c53.81 7.191 104.3-6.235 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 .0003C515.9 484.7 515.9 459.3 500.3 443.7zM288 232H127.1C114.7 232 104 221.3 104 208s10.74-24 23.1-24h160C301.3 184 312 194.7 312 208S301.3 232 288 232z" - } - }, - "free": [ - "solid" - ] - }, - "magnifying-glass-plus": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f00e", - "aliases": { - "names": [ - "search-plus" - ], - "unicodes": { - "secondary": [ - "10f00e" - ] - } - }, - "label": "Magnifying glass plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573275, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M500.3 443.7l-119.7-119.7c27.22-40.41 40.65-90.9 33.46-144.7c-12.23-91.55-87.28-166-178.9-177.6c-136.2-17.24-250.7 97.28-233.4 233.4c11.6 91.64 86.07 166.7 177.6 178.9c53.81 7.191 104.3-6.235 144.7-33.46l119.7 119.7c15.62 15.62 40.95 15.62 56.57 .0003C515.9 484.7 515.9 459.3 500.3 443.7zM288 232H231.1V288c0 13.26-10.74 24-23.1 24C194.7 312 184 301.3 184 288V232H127.1C114.7 232 104 221.3 104 208s10.74-24 23.1-24H184V128c0-13.26 10.74-24 23.1-24S231.1 114.7 231.1 128v56h56C301.3 184 312 194.7 312 208S301.3 232 288 232z" - } - }, - "free": [ - "solid" - ] - }, - "mailchimp": { - "changes": [ - "5.1.0", - "5.7.0", - "5.8.0", - "5.8.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f59e", - "label": "Mailchimp", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M330.6 243.5a36.15 36.15 0 0 1 9.3 0c1.66-3.83 1.95-10.43 .45-17.61-2.23-10.67-5.25-17.14-11.48-16.13s-6.47 8.74-4.24 19.42c1.26 6 3.49 11.14 6 14.32zM277 252c4.47 2 7.2 3.26 8.28 2.13 1.89-1.94-3.48-9.39-12.12-13.09a31.44 31.44 0 0 0 -30.61 3.68c-3 2.18-5.81 5.22-5.41 7.06 .85 3.74 10-2.71 22.6-3.48 7-.44 12.8 1.75 17.26 3.71zm-9 5.13c-9.07 1.42-15 6.53-13.47 10.1 .9 .34 1.17 .81 5.21-.81a37 37 0 0 1 18.72-1.95c2.92 .34 4.31 .52 4.94-.49 1.46-2.22-5.71-8-15.39-6.85zm54.17 17.1c3.38-6.87-10.9-13.93-14.3-7s10.92 13.88 14.32 6.97zm15.66-20.47c-7.66-.13-7.95 15.8-.26 15.93s7.98-15.81 .28-15.96zm-218.8 78.9c-1.32 .31-6 1.45-8.47-2.35-5.2-8 11.11-20.38 3-35.77-9.1-17.47-27.82-13.54-35.05-5.54-8.71 9.6-8.72 23.54-5 24.08 4.27 .57 4.08-6.47 7.38-11.63a12.83 12.83 0 0 1 17.85-3.72c11.59 7.59 1.37 17.76 2.28 28.62 1.39 16.68 18.42 16.37 21.58 9a2.08 2.08 0 0 0 -.2-2.33c.03 .89 .68-1.3-3.35-.39zm299.7-17.07c-3.35-11.73-2.57-9.22-6.78-20.52 2.45-3.67 15.29-24-3.07-43.25-10.4-10.92-33.9-16.54-41.1-18.54-1.5-11.39 4.65-58.7-21.52-83 20.79-21.55 33.76-45.29 33.73-65.65-.06-39.16-48.15-51-107.4-26.47l-12.55 5.33c-.06-.05-22.71-22.27-23.05-22.57C169.5-18-41.77 216.8 25.78 273.9l14.76 12.51a72.49 72.49 0 0 0 -4.1 33.5c3.36 33.4 36 60.42 67.53 60.38 57.73 133.1 267.9 133.3 322.3 3 1.74-4.47 9.11-24.61 9.11-42.38s-10.09-25.27-16.53-25.27zm-316 48.16c-22.82-.61-47.46-21.15-49.91-45.51-6.17-61.31 74.26-75.27 84-12.33 4.54 29.64-4.67 58.49-34.12 57.81zM84.3 249.6C69.14 252.5 55.78 261.1 47.6 273c-4.88-4.07-14-12-15.59-15-13.01-24.85 14.24-73 33.3-100.2C112.4 90.56 186.2 39.68 220.4 48.91c5.55 1.57 23.94 22.89 23.94 22.89s-34.15 18.94-65.8 45.35c-42.66 32.85-74.89 80.59-94.2 132.4zM323.2 350.7s-35.74 5.3-69.51-7.07c6.21-20.16 27 6.1 96.4-13.81 15.29-4.38 35.37-13 51-25.35a102.8 102.8 0 0 1 7.12 24.28c3.66-.66 14.25-.52 11.44 18.1-3.29 19.87-11.73 36-25.93 50.84A106.9 106.9 0 0 1 362.5 421a132.4 132.4 0 0 1 -20.34 8.58c-53.51 17.48-108.3-1.74-126-43a66.33 66.33 0 0 1 -3.55-9.74c-7.53-27.2-1.14-59.83 18.84-80.37 1.23-1.31 2.48-2.85 2.48-4.79a8.45 8.45 0 0 0 -1.92-4.54c-7-10.13-31.19-27.4-26.33-60.83 3.5-24 24.49-40.91 44.07-39.91l5 .29c8.48 .5 15.89 1.59 22.88 1.88 11.69 .5 22.2-1.19 34.64-11.56 4.2-3.5 7.57-6.54 13.26-7.51a17.45 17.45 0 0 1 13.6 2.24c10 6.64 11.4 22.73 11.92 34.49 .29 6.72 1.1 23 1.38 27.63 .63 10.67 3.43 12.17 9.11 14 3.19 1.05 6.15 1.83 10.51 3.06 13.21 3.71 21 7.48 26 12.31a16.38 16.38 0 0 1 4.74 9.29c1.56 11.37-8.82 25.4-36.31 38.16-46.71 21.68-93.68 14.45-100.5 13.68-20.15-2.71-31.63 23.32-19.55 41.15 22.64 33.41 122.4 20 151.4-21.35 .69-1 .12-1.59-.73-1-41.77 28.58-97.06 38.21-128.5 26-4.77-1.85-14.73-6.44-15.94-16.67 43.6 13.49 71 .74 71 .74s2.03-2.79-.56-2.53zm-68.47-5.7zm-83.4-187.5c16.74-19.35 37.36-36.18 55.83-45.63a.73 .73 0 0 1 1 1c-1.46 2.66-4.29 8.34-5.19 12.65a.75 .75 0 0 0 1.16 .79c11.49-7.83 31.48-16.22 49-17.3a.77 .77 0 0 1 .52 1.38 41.86 41.86 0 0 0 -7.71 7.74 .75 .75 0 0 0 .59 1.19c12.31 .09 29.66 4.4 41 10.74 .76 .43 .22 1.91-.64 1.72-69.55-15.94-123.1 18.53-134.5 26.83a.76 .76 0 0 1 -1-1.12z" - } - }, - "free": [ - "brands" - ] - }, - "manat-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1d5", - "label": "Manat Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 64V98.65C314.8 113.9 384 192.9 384 288V448C384 465.7 369.7 480 352 480C334.3 480 320 465.7 320 448V288C320 228.4 279.2 178.2 224 164V448C224 465.7 209.7 480 192 480C174.3 480 160 465.7 160 448V164C104.8 178.2 64 228.4 64 288V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448V288C0 192.9 69.19 113.9 160 98.65V64C160 46.33 174.3 32 192 32C209.7 32 224 46.33 224 64z" - } - }, - "free": [ - "solid" - ] - }, - "mandalorian": { - "changes": [ - "5.0.12", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f50f", - "label": "Mandalorian", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M232.3 511.9c-1-3.26-1.69-15.83-1.39-24.58 .55-15.89 1-24.72 1.4-28.76 .64-6.2 2.87-20.72 3.28-21.38 .6-1 .4-27.87-.24-33.13-.31-2.58-.63-11.9-.69-20.73-.13-16.47-.53-20.12-2.73-24.76-1.1-2.32-1.23-3.84-1-11.43a92.38 92.38 0 0 0 -.34-12.71c-2-13-3.46-27.7-3.25-33.9s.43-7.15 2.06-9.67c3.05-4.71 6.51-14 8.62-23.27 2.26-9.86 3.88-17.18 4.59-20.74a109.5 109.5 0 0 1 4.42-15.05c2.27-6.25 2.49-15.39 .37-15.39-.3 0-1.38 1.22-2.41 2.71s-4.76 4.8-8.29 7.36c-8.37 6.08-11.7 9.39-12.66 12.58s-1 7.23-.16 7.76c.34 .21 1.29 2.4 2.11 4.88a28.83 28.83 0 0 1 .72 15.36c-.39 1.77-1 5.47-1.46 8.23s-1 6.46-1.25 8.22a9.85 9.85 0 0 1 -1.55 4.26c-1 1-1.14 .91-2.05-.53a14.87 14.87 0 0 1 -1.44-4.75c-.25-1.74-1.63-7.11-3.08-11.93-3.28-10.9-3.52-16.15-1-21a14.24 14.24 0 0 0 1.67-4.61c0-2.39-2.2-5.32-7.41-9.89-7-6.18-8.63-7.92-10.23-11.3-1.71-3.6-3.06-4.06-4.54-1.54-1.78 3-2.6 9.11-3 22l-.34 12.19 2 2.25c3.21 3.7 12.07 16.45 13.78 19.83 3.41 6.74 4.34 11.69 4.41 23.56s.95 22.75 2 24.71c.36 .66 .51 1.35 .34 1.52s.41 2.09 1.29 4.27a38.14 38.14 0 0 1 2.06 9 91 91 0 0 0 1.71 10.37c2.23 9.56 2.77 14.08 2.39 20.14-.2 3.27-.53 11.07-.73 17.32-1.31 41.76-1.85 58-2 61.21-.12 2-.39 11.51-.6 21.07-.36 16.3-1.3 27.37-2.42 28.65-.64 .73-8.07-4.91-12.52-9.49-3.75-3.87-4-4.79-2.83-9.95 .7-3 2.26-18.29 3.33-32.62 .36-4.78 .81-10.5 1-12.71 .83-9.37 1.66-20.35 2.61-34.78 .56-8.46 1.33-16.44 1.72-17.73s.89-9.89 1.13-19.11l.43-16.77-2.26-4.3c-1.72-3.28-4.87-6.94-13.22-15.34-6-6.07-11.84-12.3-12.91-13.85l-1.95-2.81 .75-10.9c1.09-15.71 1.1-48.57 0-59.06l-.89-8.7-3.28-4.52c-5.86-8.08-5.8-7.75-6.22-33.27-.1-6.07-.38-11.5-.63-12.06-.83-1.87-3.05-2.66-8.54-3.05-8.86-.62-11-1.9-23.85-14.55-6.15-6-12.34-12-13.75-13.19-2.81-2.42-2.79-2-.56-9.63l1.35-4.65-1.69-3a32.22 32.22 0 0 0 -2.59-4.07c-1.33-1.51-5.5-10.89-6-13.49a4.24 4.24 0 0 1 .87-3.9c2.23-2.86 3.4-5.68 4.45-10.73 2.33-11.19 7.74-26.09 10.6-29.22 3.18-3.47 7.7-1 9.41 5 1.34 4.79 1.37 9.79 .1 18.55a101.2 101.2 0 0 0 -1 11.11c0 4 .19 4.69 2.25 7.39 3.33 4.37 7.73 7.41 15.2 10.52a18.67 18.67 0 0 1 4.72 2.85c11.17 10.72 18.62 16.18 22.95 16.85 5.18 .8 8 4.54 10 13.39 1.31 5.65 4 11.14 5.46 11.14a9.38 9.38 0 0 0 3.33-1.39c2-1.22 2.25-1.73 2.25-4.18a132.9 132.9 0 0 0 -2-17.84c-.37-1.66-.78-4.06-.93-5.35s-.61-3.85-1-5.69c-2.55-11.16-3.65-15.46-4.1-16-1.55-2-4.08-10.2-4.93-15.92-1.64-11.11-4-14.23-12.91-17.39A43.15 43.15 0 0 1 165.2 78c-1.15-1-4-3.22-6.35-5.06s-4.41-3.53-4.6-3.76a22.7 22.7 0 0 0 -2.69-2c-6.24-4.22-8.84-7-11.26-12l-2.44-5-.22-13-.22-13 6.91-6.55c3.95-3.75 8.48-7.35 10.59-8.43 3.31-1.69 4.45-1.89 11.37-2 8.53-.19 10.12 0 11.66 1.56s1.36 6.4-.29 8.5a6.66 6.66 0 0 0 -1.34 2.32c0 .58-2.61 4.91-5.42 9a30.39 30.39 0 0 0 -2.37 6.82c20.44 13.39 21.55 3.77 14.07 29L194 66.92c3.11-8.66 6.47-17.26 8.61-26.22 .29-7.63-12-4.19-15.4-8.68-2.33-5.93 3.13-14.18 6.06-19.2 1.6-2.34 6.62-4.7 8.82-4.15 .88 .22 4.16-.35 7.37-1.28a45.3 45.3 0 0 1 7.55-1.68 29.57 29.57 0 0 0 6-1.29c3.65-1.11 4.5-1.17 6.35-.4a29.54 29.54 0 0 0 5.82 1.36 18.18 18.18 0 0 1 6 1.91 22.67 22.67 0 0 0 5 2.17c2.51 .68 3 .57 7.05-1.67l4.35-2.4L268.3 5c10.44-.4 10.81-.47 15.26-2.68L288.2 0l2.46 1.43c1.76 1 3.14 2.73 4.85 6 2.36 4.51 2.38 4.58 1.37 7.37-.88 2.44-.89 3.3-.1 6.39a35.76 35.76 0 0 0 2.1 5.91 13.55 13.55 0 0 1 1.31 4c.31 4.33 0 5.3-2.41 6.92-2.17 1.47-7 7.91-7 9.34a14.77 14.77 0 0 1 -1.07 3c-5 11.51-6.76 13.56-14.26 17-9.2 4.2-12.3 5.19-16.21 5.19-3.1 0-4 .25-4.54 1.26a18.33 18.33 0 0 1 -4.09 3.71 13.62 13.62 0 0 0 -4.38 4.78 5.89 5.89 0 0 1 -2.49 2.91 6.88 6.88 0 0 0 -2.45 1.71 67.62 67.62 0 0 1 -7 5.38c-3.33 2.34-6.87 5-7.87 6A7.27 7.27 0 0 1 224 100a5.76 5.76 0 0 0 -2.13 1.65c-1.31 1.39-1.49 2.11-1.14 4.6a36.45 36.45 0 0 0 1.42 5.88c1.32 3.8 1.31 7.86 0 10.57s-.89 6.65 1.35 9.59c2 2.63 2.16 4.56 .71 8.84a33.45 33.45 0 0 0 -1.06 8.91c0 4.88 .22 6.28 1.46 8.38s1.82 2.48 3.24 2.32c2-.23 2.3-1.05 4.71-12.12 2.18-10 3.71-11.92 13.76-17.08 2.94-1.51 7.46-4 10-5.44s6.79-3.69 9.37-4.91a40.09 40.09 0 0 0 15.22-11.67c7.11-8.79 10-16.22 12.85-33.3a18.37 18.37 0 0 1 2.86-7.73 20.39 20.39 0 0 0 2.89-7.31c1-5.3 2.85-9.08 5.58-11.51 4.7-4.18 6-1.09 4.59 10.87-.46 3.86-1.1 10.33-1.44 14.38l-.61 7.36 4.45 4.09 4.45 4.09 .11 8.42c.06 4.63 .47 9.53 .92 10.89l.82 2.47-6.43 6.28c-8.54 8.33-12.88 13.93-16.76 21.61-1.77 3.49-3.74 7.11-4.38 8-2.18 3.11-6.46 13-8.76 20.26l-2.29 7.22-7 6.49c-3.83 3.57-8 7.25-9.17 8.17-3.05 2.32-4.26 5.15-4.26 10a14.62 14.62 0 0 0 1.59 7.26 42 42 0 0 1 2.09 4.83 9.28 9.28 0 0 0 1.57 2.89c1.4 1.59 1.92 16.12 .83 23.22-.68 4.48-3.63 12-4.7 12-1.79 0-4.06 9.27-5.07 20.74-.18 2-.62 5.94-1 8.7s-1 10-1.35 16.05c-.77 12.22-.19 18.77 2 23.15 3.41 6.69 .52 12.69-11 22.84l-4 3.49 .07 5.19a40.81 40.81 0 0 0 1.14 8.87c4.61 16 4.73 16.92 4.38 37.13-.46 26.4-.26 40.27 .63 44.15a61.31 61.31 0 0 1 1.08 7c.17 2 .66 5.33 1.08 7.36 .47 2.26 .78 11 .79 22.74v19.06l-1.81 2.63c-2.71 3.91-15.11 13.54-15.49 12.29zm29.53-45.11c-.18-.3-.33-6.87-.33-14.59 0-14.06-.89-27.54-2.26-34.45-.4-2-.81-9.7-.9-17.06-.15-11.93-1.4-24.37-2.64-26.38-.66-1.07-3-17.66-3-21.3 0-4.23 1-6 5.28-9.13s4.86-3.14 5.48-.72c.28 1.1 1.45 5.62 2.6 10 3.93 15.12 4.14 16.27 4.05 21.74-.1 5.78-.13 6.13-1.74 17.73-1 7.07-1.17 12.39-1 28.43 .17 19.4-.64 35.73-2 41.27-.71 2.78-2.8 5.48-3.43 4.43zm-71-37.58a101 101 0 0 1 -1.73-10.79 100.5 100.5 0 0 0 -1.73-10.79 37.53 37.53 0 0 1 -1-6.49c-.31-3.19-.91-7.46-1.33-9.48-1-4.79-3.35-19.35-3.42-21.07 0-.74-.34-4.05-.7-7.36-.67-6.21-.84-27.67-.22-28.29 1-1 6.63 2.76 11.33 7.43l5.28 5.25-.45 6.47c-.25 3.56-.6 10.23-.78 14.83s-.49 9.87-.67 11.71-.61 9.36-.94 16.72c-.79 17.41-1.94 31.29-2.65 32a.62 .62 0 0 1 -1-.14zm-87.18-266.6c21.07 12.79 17.84 14.15 28.49 17.66 13 4.29 18.87 7.13 23.15 16.87C111.6 233.3 86.25 255 78.55 268c-31 52-6 101.6 62.75 87.21-14.18 29.23-78 28.63-98.68-4.9-24.68-39.95-22.09-118.3 61-187.7zm210.8 179c56.66 6.88 82.32-37.74 46.54-89.23 0 0-26.87-29.34-64.28-68 3-15.45 9.49-32.12 30.57-53.82 89.2 63.51 92 141.6 92.46 149.4 4.3 70.64-78.7 91.18-105.3 61.71z" - } - }, - "free": [ - "brands" - ] - }, - "map": { - "changes": [ - "4.4.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f279", - "aliases": { - "unicodes": { - "composite": [ - "f278", - "1f5fa" - ], - "secondary": [ - "10f279" - ] - } - }, - "label": "Map", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M384 476.1L192 421.2V35.93L384 90.79V476.1zM416 88.37L543.1 37.53C558.9 31.23 576 42.84 576 59.82V394.6C576 404.4 570 413.2 560.9 416.9L416 474.8V88.37zM15.09 95.13L160 37.17V423.6L32.91 474.5C17.15 480.8 0 469.2 0 452.2V117.4C0 107.6 5.975 98.78 15.09 95.13V95.13z" - }, - "regular": { - "last_modified": 1658443573078, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M565.6 36.24C572.1 40.72 576 48.11 576 56V392C576 401.1 569.8 410.9 560.5 414.4L392.5 478.4C387.4 480.4 381.7 480.5 376.4 478.8L192.5 417.5L32.54 478.4C25.17 481.2 16.88 480.2 10.38 475.8C3.882 471.3 0 463.9 0 456V120C0 110 6.15 101.1 15.46 97.57L183.5 33.57C188.6 31.6 194.3 31.48 199.6 33.23L383.5 94.52L543.5 33.57C550.8 30.76 559.1 31.76 565.6 36.24H565.6zM48 421.2L168 375.5V90.83L48 136.5V421.2zM360 137.3L216 89.3V374.7L360 422.7V137.3zM408 421.2L528 375.5V90.83L408 136.5V421.2z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "map-location": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f59f", - "aliases": { - "names": [ - "map-marked" - ], - "unicodes": { - "secondary": [ - "10f59f" - ] - } - }, - "label": "Map location", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M273.2 311.1C241.1 271.9 167.1 174.6 167.1 120C167.1 53.73 221.7 0 287.1 0C354.3 0 408 53.73 408 120C408 174.6 334.9 271.9 302.8 311.1C295.1 321.6 280.9 321.6 273.2 311.1V311.1zM416 503V200.4C419.5 193.5 422.7 186.7 425.6 179.8C426.1 178.6 426.6 177.4 427.1 176.1L543.1 129.7C558.9 123.4 576 135 576 152V422.8C576 432.6 570 441.4 560.9 445.1L416 503zM15.09 187.3L137.6 138.3C140 152.5 144.9 166.6 150.4 179.8C153.3 186.7 156.5 193.5 160 200.4V451.8L32.91 502.7C17.15 508.1 0 497.4 0 480.4V209.6C0 199.8 5.975 190.1 15.09 187.3H15.09zM384 504.3L191.1 449.4V255C212.5 286.3 234.3 314.6 248.2 331.1C268.7 357.6 307.3 357.6 327.8 331.1C341.7 314.6 363.5 286.3 384 255L384 504.3z" - } - }, - "free": [ - "solid" - ] - }, - "map-location-dot": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5a0", - "aliases": { - "names": [ - "map-marked-alt" - ], - "unicodes": { - "secondary": [ - "10f5a0" - ] - } - }, - "label": "Map location dot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M408 120C408 174.6 334.9 271.9 302.8 311.1C295.1 321.6 280.9 321.6 273.2 311.1C241.1 271.9 168 174.6 168 120C168 53.73 221.7 0 288 0C354.3 0 408 53.73 408 120zM288 152C310.1 152 328 134.1 328 112C328 89.91 310.1 72 288 72C265.9 72 248 89.91 248 112C248 134.1 265.9 152 288 152zM425.6 179.8C426.1 178.6 426.6 177.4 427.1 176.1L543.1 129.7C558.9 123.4 576 135 576 152V422.8C576 432.6 570 441.4 560.9 445.1L416 503V200.4C419.5 193.5 422.7 186.7 425.6 179.8zM150.4 179.8C153.3 186.7 156.5 193.5 160 200.4V451.8L32.91 502.7C17.15 508.1 0 497.4 0 480.4V209.6C0 199.8 5.975 190.1 15.09 187.3L137.6 138.3C140 152.5 144.9 166.6 150.4 179.8H150.4zM327.8 331.1C341.7 314.6 363.5 286.3 384 255V504.3L192 449.4V255C212.5 286.3 234.3 314.6 248.2 331.1C268.7 357.6 307.3 357.6 327.8 331.1L327.8 331.1z" - } - }, - "free": [ - "solid" - ] - }, - "map-pin": { - "changes": [ - "4.4.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f276", - "aliases": { - "unicodes": { - "composite": [ - "1f4cd" - ], - "secondary": [ - "10f276" - ] - } - }, - "label": "Map Pin", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 144C320 223.5 255.5 288 176 288C96.47 288 32 223.5 32 144C32 64.47 96.47 0 176 0C255.5 0 320 64.47 320 144zM192 64C192 55.16 184.8 48 176 48C122.1 48 80 90.98 80 144C80 152.8 87.16 160 96 160C104.8 160 112 152.8 112 144C112 108.7 140.7 80 176 80C184.8 80 192 72.84 192 64zM144 480V317.1C154.4 319 165.1 319.1 176 319.1C186.9 319.1 197.6 319 208 317.1V480C208 497.7 193.7 512 176 512C158.3 512 144 497.7 144 480z" - } - }, - "free": [ - "solid" - ] - }, - "markdown": { - "changes": [ - "5.2.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f60f", - "label": "Markdown", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M593.8 59.1H46.2C20.7 59.1 0 79.8 0 105.2v301.5c0 25.5 20.7 46.2 46.2 46.2h547.7c25.5 0 46.2-20.7 46.1-46.1V105.2c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6H277v-120l-61.5 76.9-61.5-76.9v120H92.3V151.4h61.5l61.5 76.9 61.5-76.9h61.5v209.2zm135.3 3.1L381.5 256H443V151.4h61.5V256H566z" - } - }, - "free": [ - "brands" - ] - }, - "marker": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5a1", - "aliases": { - "unicodes": { - "secondary": [ - "10f5a1" - ] - } - }, - "label": "Marker", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480.1 160.1L316.3 325.7L186.3 195.7L302.1 80L288.1 66.91C279.6 57.54 264.4 57.54 255 66.91L168.1 152.1C159.6 162.3 144.4 162.3 135 152.1C125.7 143.6 125.7 128.4 135 119L221.1 32.97C249.2 4.853 294.8 4.853 322.9 32.97L336 46.06L351 31.03C386.9-4.849 445.1-4.849 480.1 31.03C516.9 66.91 516.9 125.1 480.1 160.1V160.1zM229.5 412.5C181.5 460.5 120.3 493.2 53.7 506.5L28.71 511.5C20.84 513.1 12.7 510.6 7.03 504.1C1.356 499.3-1.107 491.2 .4662 483.3L5.465 458.3C18.78 391.7 51.52 330.5 99.54 282.5L163.7 218.3L293.7 348.3L229.5 412.5z" - } - }, - "free": [ - "solid" - ] - }, - "mars": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f222", - "aliases": { - "unicodes": { - "composite": [ - "2642" - ], - "secondary": [ - "10f222" - ] - } - }, - "label": "Mars", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M431.1 31.1l-112.6 0c-21.42 0-32.15 25.85-17 40.97l29.61 29.56l-56.65 56.55c-30.03-20.66-65.04-31-100-31c-47.99-.002-95.96 19.44-131.1 58.39c-60.86 67.51-58.65 175 4.748 240.1C83.66 462.2 129.6 480 175.5 480c45.12 0 90.34-17.18 124.8-51.55c61.11-60.99 67.77-155.6 20.42-224.1l56.65-56.55l29.61 29.56C411.9 182.2 417.9 184.4 423.8 184.4C436.1 184.4 448 174.8 448 160.4V47.1C448 39.16 440.8 31.1 431.1 31.1zM243.5 371.9c-18.75 18.71-43.38 28.07-68 28.07c-24.63 0-49.25-9.355-68.01-28.07c-37.5-37.43-37.5-98.33 0-135.8c18.75-18.71 43.38-28.07 68.01-28.07c24.63 0 49.25 9.357 68 28.07C281 273.5 281 334.5 243.5 371.9z" - } - }, - "free": [ - "solid" - ] - }, - "mars-and-venus": { - "changes": [ - "4.3.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f224", - "aliases": { - "unicodes": { - "composite": [ - "26a5" - ], - "secondary": [ - "10f224" - ] - } - }, - "label": "Mars and Venus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 .0002l-112.4 .0001c-21.38 0-32.09 25.85-16.97 40.97l29.56 29.56l-27.11 27.11C326.1 76.85 292.7 64 256 64c-88.37 0-160 71.63-160 160c0 77.4 54.97 141.9 128 156.8v19.22H192c-8.836 0-16 7.162-16 16v31.1c0 8.836 7.164 16 16 16l32 .0001v32c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16v-32l32-.0001c8.838 0 16-7.164 16-16v-31.1c0-8.838-7.162-16-16-16h-32v-19.22c73.03-14.83 128-79.37 128-156.8c0-28.38-8.018-54.65-20.98-77.77l30.45-30.45l29.56 29.56C470.1 160.5 496 149.8 496 128.4V16C496 7.164 488.8 .0002 480 .0002zM256 304c-44.11 0-80-35.89-80-80c0-44.11 35.89-80 80-80c44.11 0 80 35.89 80 80C336 268.1 300.1 304 256 304z" - } - }, - "free": [ - "solid" - ] - }, - "mars-and-venus-burst": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e523", - "label": "Mars and Venus Burst", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M607.1 0C625.7 0 639.1 14.33 639.1 32V120C639.1 137.7 625.7 152 607.1 152C590.3 152 575.1 137.7 575.1 120V109.3L539.6 145.7C552.6 168.8 559.1 195.6 559.1 224C559.1 301.4 505 365.1 431.1 380.8V400H447.1C465.7 400 479.1 414.3 479.1 432C479.1 449.7 465.7 464 447.1 464H431.1V480C431.1 497.7 417.7 512 399.1 512C382.3 512 367.1 497.7 367.1 480V464H351.1C334.3 464 319.1 449.7 319.1 432C319.1 414.3 334.3 400 351.1 400H367.1V380.8C294.1 365.1 239.1 301.4 239.1 224C239.1 135.6 311.6 64 399.1 64C436.7 64 470.6 76.37 497.6 97.18L530.7 64H511.1C494.3 64 479.1 49.67 479.1 32C479.1 14.33 494.3 0 511.1 0L607.1 0zM399.1 128C346.1 128 303.1 170.1 303.1 224C303.1 277 346.1 320 399.1 320C453 320 495.1 277 495.1 224C495.1 170.1 453 128 399.1 128zM220.3 92.05L280.4 73.81C236.3 108.1 207.1 163.2 207.1 224C207.1 269.2 223.6 310.8 249.8 343.6C244.5 345 238.7 343.7 234.6 339.9L175.1 286.1L117.4 339.9C112.6 344.4 105.5 345.4 99.63 342.6C93.73 339.7 90.15 333.6 90.62 327L96.21 247.6L17.55 235.4C11.08 234.4 5.868 229.6 4.41 223.2C2.951 216.8 5.538 210.1 10.94 206.4L76.5 161.3L37.01 92.18C33.76 86.49 34.31 79.39 38.39 74.27C42.48 69.14 49.28 67.03 55.55 68.93L131.7 92.05L161.1 18.09C163.6 11.1 169.4 7.1 175.1 7.1C182.6 7.1 188.4 11.1 190.9 18.09L220.3 92.05z" - } - }, - "free": [ - "solid" - ] - }, - "mars-double": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f227", - "aliases": { - "unicodes": { - "composite": [ - "26a3" - ], - "secondary": [ - "10f227" - ] - } - }, - "label": "Mars Double", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320.7 204.3l56.65-56.55l29.61 29.56C422.1 192.5 448 181.7 448 160.4V47.1c0-8.838-7.176-15.1-16.03-15.1H319.4c-21.42 0-32.15 25.85-17 40.97l29.61 29.56L275.4 159.1c-71.21-48.99-170.4-39.96-231.1 27.39c-60.86 67.51-58.65 175 4.748 240.1c68.7 70.57 181.8 71.19 251.3 1.847C361.4 367.5 368 272.9 320.7 204.3zM243.5 371.9c-37.5 37.43-98.51 37.43-136 0s-37.5-98.33 0-135.8c37.5-37.43 98.51-37.43 136 0C281 273.5 281 334.5 243.5 371.9zM623.1 32h-112.6c-21.42 0-32.15 25.85-17 40.97l29.61 29.56L480 146.5v13.91C480 191.3 454.8 216.4 423.8 216.4C421.2 216.4 418.6 216 416 215.6v5.862c6.922 4.049 13.58 8.691 19.51 14.61c37.5 37.43 37.5 98.33 0 135.8c-18.75 18.71-43.38 28.07-68 28.07c-2.277 0-4.523-.4883-6.795-.6484c-9.641 18.69-22.1 36.24-37.64 51.77c-6.059 6.059-12.49 11.53-19.13 16.73C324.4 475.7 345.9 480 367.5 480c45.12 0 90.34-17.18 124.8-51.55c61.11-60.99 67.77-155.6 20.42-224.1l56.65-56.55l29.61 29.56c4.898 4.889 10.92 7.075 16.83 7.075C628.1 184.4 640 174.8 640 160.4V48C640 39.16 632.8 32 623.1 32z" - } - }, - "free": [ - "solid" - ] - }, - "mars-stroke": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f229", - "aliases": { - "unicodes": { - "composite": [ - "26a6" - ], - "secondary": [ - "10f229" - ] - } - }, - "label": "Mars Stroke", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M496 .0002l-112.4 .0001c-21.38 0-32.09 25.85-16.97 40.97l29.56 29.56l-24.33 24.34l-33.94-33.94c-6.248-6.25-16.38-6.248-22.63 0l-22.63 22.63c-6.25 6.25-6.25 16.38 0 22.63l33.94 33.94l-18.96 18.96C239.1 111.8 144.5 118.6 83.55 179.5c-68.73 68.73-68.73 180.2 0 248.9c68.73 68.73 180.2 68.73 248.9 0c60.99-60.99 67.73-155.6 20.47-224.1l18.96-18.96l33.94 33.94c6.248 6.248 16.38 6.25 22.63 0l22.63-22.63c6.248-6.248 6.248-16.38 0-22.63l-33.94-33.94l24.34-24.33l29.56 29.56C486.1 160.5 512 149.8 512 128.4v-112.4C512 7.162 504.8 .0002 496 .0002zM275.9 371.9c-37.43 37.43-98.33 37.43-135.8 0c-37.43-37.43-37.43-98.33 0-135.8c37.43-37.43 98.33-37.43 135.8 0C313.3 273.5 313.3 334.5 275.9 371.9z" - } - }, - "free": [ - "solid" - ] - }, - "mars-stroke-right": { - "changes": [ - "4.3.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f22b", - "aliases": { - "names": [ - "mars-stroke-h" - ], - "unicodes": { - "composite": [ - "26a9" - ], - "secondary": [ - "10f22b" - ] - } - }, - "label": "Mars stroke right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M619.3 244.7l-82.34-77.61c-15.12-15.12-40.97-4.41-40.97 16.97V223.1L463.1 224V176c.002-8.838-7.162-16-15.1-16h-32c-8.84 0-16 7.16-16 16V224h-19.05c-15.07-81.9-86.7-144-172.1-144C110.8 80 32 158.8 32 256c0 97.2 78.8 176 176 176c86.26 0 157.9-62.1 172.1-144h19.05V336c0 8.836 7.162 16 16 16h32c8.836 0 15.1-7.164 15.1-16V287.1L496 288v39.95c0 21.38 25.85 32.09 40.97 16.97l82.34-77.61C625.6 261.1 625.6 250.9 619.3 244.7zM208 352c-52.94 0-96-43.07-96-96c-.002-52.94 43.06-96 96-96c52.93 0 95.1 43.06 95.1 96C304 308.9 260.9 352 208 352z" - } - }, - "free": [ - "solid" - ] - }, - "mars-stroke-up": { - "changes": [ - "4.3.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f22a", - "aliases": { - "names": [ - "mars-stroke-v" - ], - "unicodes": { - "composite": [ - "26a8" - ], - "secondary": [ - "10f22a" - ] - } - }, - "label": "Mars stroke up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573276, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M224 163V144h24c4.418 0 8-3.578 8-7.1V120c0-4.418-3.582-7.1-8-7.1H224V96h24.63c16.41 0 24.62-19.84 13.02-31.44l-60.97-60.97c-4.795-4.793-12.57-4.793-17.36 0L122.3 64.56c-11.6 11.6-3.383 31.44 13.02 31.44H160v15.1H136c-4.418 0-8 3.582-8 7.1v15.1c0 4.422 3.582 7.1 8 7.1H160v19.05c-84.9 15.62-148.5 92.01-143.7 182.5c4.783 90.69 82.34 165.1 173.2 166.5C287.8 513.4 368 434.1 368 336C368 249.7 305.9 178.1 224 163zM192 431.1c-52.94 0-96-43.06-96-95.1s43.06-95.1 96-95.1c52.93 0 96 43.06 96 95.1S244.9 431.1 192 431.1z" - } - }, - "free": [ - "solid" - ] - }, - "martini-glass": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f57b", - "aliases": { - "names": [ - "glass-martini-alt" - ], - "unicodes": { - "composite": [ - "1f378" - ], - "secondary": [ - "10f57b" - ] - } - }, - "label": "Martini glass", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502 57.63C523.3 36.38 508.3 0 478.3 0H33.72C3.711 0-11.29 36.38 9.962 57.63l214 214V448H175.1c-26.51 0-47.1 21.49-47.1 48c0 8.836 7.164 16 16 16h224c8.836 0 16-7.164 16-16c0-26.51-21.49-48-48-48h-47.1V271.6L502 57.63zM405.1 64l-64.01 64H170.9L106.9 64H405.1z" - } - }, - "free": [ - "solid" - ] - }, - "martini-glass-citrus": { - "changes": [ - "5.1.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f561", - "aliases": { - "names": [ - "cocktail" - ], - "unicodes": { - "secondary": [ - "10f561" - ] - } - }, - "label": "Martini glass citrus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 464H240v-125.3l168.8-168.7C424.3 154.5 413.3 128 391.4 128H24.63C2.751 128-8.249 154.5 7.251 170l168.7 168.7V464H128c-17.67 0-32 14.33-32 32c0 8.836 7.164 16 15.1 16h191.1c8.836 0 15.1-7.164 15.1-16C320 478.3 305.7 464 288 464zM432 0c-62.63 0-115.4 40.25-135.1 96h52.5c16.62-28.5 47.25-48 82.62-48c52.88 0 95.1 43 95.1 96s-43.12 96-95.1 96c-14 0-27.25-3.25-39.37-8.625l-35.25 35.25c21.88 13.25 47.25 21.38 74.62 21.38c79.5 0 143.1-64.5 143.1-144S511.5 0 432 0z" - } - }, - "free": [ - "solid" - ] - }, - "martini-glass-empty": { - "changes": [ - "1.0.0", - "5.0.0", - "5.1.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f000", - "aliases": { - "names": [ - "glass-martini" - ], - "unicodes": { - "secondary": [ - "10f000" - ] - } - }, - "label": "Martini glass empty", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502 57.63C523.3 36.38 508.3 0 478.3 0H33.72C3.711 0-11.29 36.38 9.962 57.63l214 214V448H176c-26.51 0-48 21.49-48 48c0 8.836 7.164 16 16 16h224c8.836 0 16-7.164 16-16c0-26.51-21.49-48-47.1-48h-47.1V271.6L502 57.63zM256 213.1L106.9 64h298.3L256 213.1z" - } - }, - "free": [ - "solid" - ] - }, - "mask": { - "changes": [ - "5.4.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6fa", - "aliases": { - "unicodes": { - "secondary": [ - "10f6fa" - ] - } - }, - "label": "Mask", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 64C39.52 64 0 182.1 0 273.5C0 379.5 78.8 448 176 448c27.33 0 51.21-6.516 66.11-36.79l19.93-40.5C268.3 358.6 278.1 352.4 288 352.1c9.9 .3711 19.7 6.501 25.97 18.63l19.93 40.5C348.8 441.5 372.7 448 400 448c97.2 0 176-68.51 176-174.5C576 182.1 536.5 64 288 64zM160 320c-35.35 0-64-28.65-64-64s28.65-64 64-64c35.35 0 64 28.65 64 64S195.3 320 160 320zM416 320c-35.35 0-64-28.65-64-64s28.65-64 64-64c35.35 0 64 28.65 64 64S451.3 320 416 320z" - } - }, - "free": [ - "solid" - ] - }, - "mask-face": { - "changes": [ - "6.0.0-beta1", - "6.0.0", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1d7", - "label": "Face Mask", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M396.4 87.12L433.5 111.9C449.3 122.4 467.8 128 486.8 128H584C614.9 128 640 153.1 640 184V269C640 324.1 602.5 372.1 549.1 385.5L441.1 412.5C406.2 434.1 364.6 448 320 448C275.4 448 233.8 434.1 198.9 412.5L90.9 385.5C37.48 372.1 0 324.1 0 269V184C0 153.1 25.07 128 56 128H153.2C172.2 128 190.7 122.4 206.5 111.9L243.6 87.12C266.2 72.05 292.8 64 320 64C347.2 64 373.8 72.05 396.4 87.12zM132.3 346.3C109.4 311.2 96 269.1 96 224V176H56C51.58 176 48 179.6 48 184V269C48 302.1 70.49 330.9 102.5 338.9L132.3 346.3zM592 269V184C592 179.6 588.4 176 584 176H544V224C544 269.1 530.6 311.2 507.7 346.3L537.5 338.9C569.5 330.9 592 302.1 592 269H592zM208 224H432C440.8 224 448 216.8 448 208C448 199.2 440.8 192 432 192H208C199.2 192 192 199.2 192 208C192 216.8 199.2 224 208 224zM208 256C199.2 256 192 263.2 192 272C192 280.8 199.2 288 208 288H432C440.8 288 448 280.8 448 272C448 263.2 440.8 256 432 256H208zM240 352H400C408.8 352 416 344.8 416 336C416 327.2 408.8 320 400 320H240C231.2 320 224 327.2 224 336C224 344.8 231.2 352 240 352z" - } - }, - "free": [ - "solid" - ] - }, - "mask-ventilator": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e524", - "label": "Mask Ventilator", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 32C372.1 32 419.7 73.8 454.5 128H584C614.9 128 640 153.1 640 184V269C640 324.1 602.5 372.1 549.1 385.5L477.5 403.4C454.6 433.8 421.1 457.2 384 469.8V393.2C403.6 376.8 416 353.1 416 326.4C416 276.9 372.5 191.1 320 191.1C267 191.1 224 276.9 224 326.4C224 353 236.3 376.9 256 393.3V469.9C217.6 457.4 184.9 433.8 162.2 403.3L90.9 385.5C37.48 372.1 0 324.1 0 269V184C0 153.1 25.07 128 56 128H185.1C219.8 73.8 267.4 32 320 32V32zM56 176C51.58 176 48 179.6 48 184V269C48 302.1 70.49 330.9 102.5 338.9L134.3 346.8C130.2 332.2 127.1 316.7 127.1 300.8C127.1 264.7 139.4 219.2 159.1 176H56zM480.7 176C500.4 219.2 512 264.7 512 300.8C512 316.8 509.8 332.2 505.6 346.9L537.5 338.9C569.5 330.9 592 302.1 592 269V184C592 179.6 588.4 176 584 176H480.7zM288 320C288 302.3 302.3 288 320 288C337.7 288 352 302.3 352 320V512H288V320z" - } - }, - "free": [ - "solid" - ] - }, - "masks-theater": { - "changes": [ - "5.2.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f630", - "aliases": { - "names": [ - "theater-masks" - ], - "unicodes": { - "composite": [ - "1f3ad" - ], - "secondary": [ - "10f630" - ] - } - }, - "label": "Masks theater", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M206.9 245.1C171 255.6 146.8 286.4 149.3 319.3C160.7 306.5 178.1 295.5 199.3 288.4L206.9 245.1zM95.78 294.9L64.11 115.5C63.74 113.9 64.37 112.9 64.37 112.9c57.75-32.13 123.1-48.99 189-48.99c1.625 0 3.113 .0745 4.738 .0745c13.1-13.5 31.75-22.75 51.62-26c18.87-3 38.12-4.5 57.25-5.25c-9.999-14-24.47-24.27-41.84-27.02c-23.87-3.875-47.9-5.732-71.77-5.732c-76.74 0-152.4 19.45-220.1 57.07C9.021 70.57-3.853 98.5 1.021 126.6L32.77 306c14.25 80.5 136.3 142 204.5 142c3.625 0 6.777-.2979 10.03-.6729c-13.5-17.13-28.1-40.5-39.5-67.63C160.1 366.8 101.7 328 95.78 294.9zM193.4 157.6C192.6 153.4 191.1 149.7 189.3 146.2c-8.249 8.875-20.62 15.75-35.25 18.37c-14.62 2.5-28.75 .376-39.5-5.249c-.5 4-.6249 7.998 .125 12.12c3.75 21.75 24.5 36.24 46.25 32.37C182.6 200.1 197.3 179.3 193.4 157.6zM606.8 121c-88.87-49.38-191.4-67.38-291.9-51.38C287.5 73.1 265.8 95.85 260.8 123.1L229 303.5c-15.37 87.13 95.33 196.3 158.3 207.3c62.1 11.13 204.5-53.68 219.9-140.8l31.75-179.5C643.9 162.3 631 134.4 606.8 121zM333.5 217.8c3.875-21.75 24.62-36.25 46.37-32.37c21.75 3.75 36.25 24.49 32.5 46.12c-.7499 4.125-2.25 7.873-4.125 11.5c-8.249-9-20.62-15.75-35.25-18.37c-14.75-2.625-28.75-.3759-39.5 5.124C332.1 225.9 332.9 221.9 333.5 217.8zM403.1 416.5c-55.62-9.875-93.49-59.23-88.99-112.1c20.62 25.63 56.25 46.24 99.49 53.87c43.25 7.625 83.74 .3781 111.9-16.62C512.2 392.7 459.7 426.3 403.1 416.5zM534.4 265.2c-8.249-8.875-20.75-15.75-35.37-18.37c-14.62-2.5-28.62-.3759-39.5 5.249c-.5-4-.625-7.998 .125-12.12c3.875-21.75 24.62-36.25 46.37-32.37c21.75 3.875 36.25 24.49 32.37 46.24C537.6 257.9 536.1 261.7 534.4 265.2z" - } - }, - "free": [ - "solid" - ] - }, - "mastodon": { - "changes": [ - "5.0.11", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f6", - "label": "Mastodon", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M433 179.1c0-97.2-63.71-125.7-63.71-125.7-62.52-28.7-228.6-28.4-290.5 0 0 0-63.72 28.5-63.72 125.7 0 115.7-6.6 259.4 105.6 289.1 40.51 10.7 75.32 13 103.3 11.4 50.81-2.8 79.32-18.1 79.32-18.1l-1.7-36.9s-36.31 11.4-77.12 10.1c-40.41-1.4-83-4.4-89.63-54a102.5 102.5 0 0 1 -.9-13.9c85.63 20.9 158.6 9.1 178.8 6.7 56.12-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.12 125.2h-46.63v-114.2c0-49.7-64-51.6-64 6.9v62.5h-46.33V197c0-58.5-64-56.6-64-6.9v114.2H90.19c0-122.1-5.2-147.9 18.41-175 25.9-28.9 79.82-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.11-37.1 78.12-34.8 103.8-6.1 23.71 27.3 18.4 53 18.4 175z" - } - }, - "free": [ - "brands" - ] - }, - "mattress-pillow": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e525", - "label": "Mattress Pillow", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M256 448H64C28.65 448 0 419.3 0 384V128C0 92.65 28.65 64 64 64H256V448zM64 352C64 369.7 78.33 384 96 384H160C177.7 384 192 369.7 192 352V160C192 142.3 177.7 128 160 128H96C78.33 128 64 142.3 64 160V352zM288 64H576C611.3 64 640 92.65 640 128V384C640 419.3 611.3 448 576 448H288V64z" - } - }, - "free": [ - "solid" - ] - }, - "maxcdn": { - "changes": [ - "3.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f136", - "label": "MaxCDN", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M461.1 442.7h-97.4L415.6 200c2.3-10.2 .9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6h-49.3l-59.5 278h-97.4l59.5-278h-83.4l-59.5 278H0l59.5-278-44.6-95.4H387c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9l-47.8 222.6z" - } - }, - "free": [ - "brands" - ] - }, - "maximize": { - "changes": [ - "5.0.0", - "5.8.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f31e", - "aliases": { - "names": [ - "expand-arrows-alt" - ], - "unicodes": { - "secondary": [ - "10f31e" - ] - } - }, - "label": "Maximize", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M447.1 319.1v135.1c0 13.26-10.75 23.1-23.1 23.1h-135.1c-12.94 0-24.61-7.781-29.56-19.75c-4.906-11.1-2.203-25.72 6.937-34.87l30.06-30.06L224 323.9l-71.43 71.44l30.06 30.06c9.156 9.156 11.91 22.91 6.937 34.87C184.6 472.2 172.9 479.1 160 479.1H24c-13.25 0-23.1-10.74-23.1-23.1v-135.1c0-12.94 7.781-24.61 19.75-29.56C23.72 288.8 27.88 288 32 288c8.312 0 16.5 3.242 22.63 9.367l30.06 30.06l71.44-71.44L84.69 184.6L54.63 214.6c-9.156 9.156-22.91 11.91-34.87 6.937C7.798 216.6 .0013 204.9 .0013 191.1v-135.1c0-13.26 10.75-23.1 23.1-23.1h135.1c12.94 0 24.61 7.781 29.56 19.75C191.2 55.72 191.1 59.87 191.1 63.1c0 8.312-3.237 16.5-9.362 22.63L152.6 116.7l71.44 71.44l71.43-71.44l-30.06-30.06c-9.156-9.156-11.91-22.91-6.937-34.87c4.937-11.95 16.62-19.75 29.56-19.75h135.1c13.26 0 23.1 10.75 23.1 23.1v135.1c0 12.94-7.781 24.61-19.75 29.56c-11.1 4.906-25.72 2.203-34.87-6.937l-30.06-30.06l-71.43 71.43l71.44 71.44l30.06-30.06c9.156-9.156 22.91-11.91 34.87-6.937C440.2 295.4 447.1 307.1 447.1 319.1z" - } - }, - "free": [ - "solid" - ] - }, - "mdb": { - "changes": [ - "5.11.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f8ca", - "label": "Material Design for Bootstrap", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M17.37 160.4L7 352h43.91l5.59-79.83L84.43 352h44.71l25.54-77.43 4.79 77.43H205l-12.79-191.6H146.7L106 277.7 63.67 160.4zm281 0h-47.9V352h47.9s95 .8 94.2-95.79c-.78-94.21-94.18-95.78-94.18-95.78zm-1.2 146.5V204.8s46 4.27 46.8 50.57-46.78 51.54-46.78 51.54zm238.3-74.24a56.16 56.16 0 0 0 8-38.31c-5.34-35.76-55.08-34.32-55.08-34.32h-51.9v191.6H482s87 4.79 87-63.85c0-43.14-33.52-55.08-33.52-55.08zm-51.9-31.94s13.57-1.59 16 9.59c1.43 6.66-4 12-4 12h-12v-21.57zm-.1 109.5l.1-24.92V267h.08s41.58-4.73 41.19 22.43c-.33 25.65-41.35 20.74-41.35 20.74z" - } - }, - "free": [ - "brands" - ] - }, - "medal": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5a2", - "aliases": { - "unicodes": { - "composite": [ - "1f3c5" - ], - "secondary": [ - "10f5a2" - ] - } - }, - "label": "Medal", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573277, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M223.7 130.8L149.1 7.77C147.1 2.949 141.9 0 136.3 0H16.03c-12.95 0-20.53 14.58-13.1 25.18l111.3 158.9C143.9 156.4 181.7 137.3 223.7 130.8zM256 160c-97.25 0-176 78.75-176 176S158.8 512 256 512s176-78.75 176-176S353.3 160 256 160zM348.5 317.3l-37.88 37l8.875 52.25c1.625 9.25-8.25 16.5-16.63 12l-46.88-24.62L209.1 418.5c-8.375 4.5-18.25-2.75-16.63-12l8.875-52.25l-37.88-37C156.6 310.6 160.5 299 169.9 297.6l52.38-7.625L245.7 242.5c2-4.25 6.125-6.375 10.25-6.375S264.2 238.3 266.2 242.5l23.5 47.5l52.38 7.625C351.6 299 355.4 310.6 348.5 317.3zM495.1 0H375.7c-5.621 0-10.83 2.949-13.72 7.77l-73.76 122.1c42 6.5 79.88 25.62 109.5 53.38l111.3-158.9C516.5 14.58 508.9 0 495.1 0z" - } - }, - "free": [ - "solid" - ] - }, - "medapps": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3c6", - "label": "MedApps", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7 .2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32H92c-21.2 0-21.2 32 0 32h136zm-24 64c21.2 0 21.2-32 0-32h-88c-21.2 0-21.2 32 0 32h88zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5C320 69.6 248.2 0 160 0S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6C66.5 246.5 33 211.3 33 155.2 33 87.3 90 32 160 32s127 55.3 127 123.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z" - } - }, - "free": [ - "brands" - ] - }, - "medium": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f23a", - "aliases": { - "names": [ - "medium-m" - ], - "unicodes": { - "composite": [ - "f3c7" - ] - } - }, - "label": "Medium", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M180.5 74.26C80.81 74.26 0 155.6 0 256S80.82 437.7 180.5 437.7 361 356.4 361 256 280.2 74.26 180.5 74.26zm288.3 10.65c-49.85 0-90.25 76.62-90.25 171.1s40.41 171.1 90.25 171.1 90.25-76.62 90.25-171.1H559C559 161.5 518.6 84.91 468.8 84.91zm139.5 17.82c-17.53 0-31.74 68.63-31.74 153.3s14.2 153.3 31.74 153.3S640 340.6 640 256C640 171.4 625.8 102.7 608.3 102.7z" - } - }, - "free": [ - "brands" - ] - }, - "medrt": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3c8", - "label": "MRT", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572486, - "raw": "", - "viewBox": [ - 0, - 0, - 544, - 512 - ], - "width": 544, - "height": 512, - "path": "M113.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9C111.4 504 0 393 0 256S111.4 8 248.9 8c20.1 0 39.6 2.4 58.2 6.9C197.5 33.2 113.7 134.2 113.7 256m297.4 100.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47 87.3-62.3 108.1-184.3 46.5-272.6-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9m-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8M296 224c-4.4 0-8-3.6-8-8v-40c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v40c0 4.4-3.6 8-8 8h-40c-4.4 0-8 3.6-8 8v48c0 4.4 3.6 8 8 8h40c4.4 0 8 3.6 8 8v40c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-40c0-4.4 3.6-8 8-8h40c4.4 0 8-3.6 8-8v-48c0-4.4-3.6-8-8-8h-40z" - } - }, - "free": [ - "brands" - ] - }, - "meetup": { - "changes": [ - "4.7.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2e0", - "label": "Meetup", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M99 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3 5.4-1.2 11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3c6.3-1.4 10.3-7.7 8.9-14-1.1-6.6-7.4-10.6-13.7-9.1-6.3 1.4-10.3 7.7-9.1 14 1.4 6.6 7.6 10.6 13.9 9.1zM34.4 226.3c-10-6.9-23.7-4.3-30.6 6-6.9 10-4.3 24 5.7 30.9 10 7.1 23.7 4.6 30.6-5.7 6.9-10.4 4.3-24.1-5.7-31.2zm272-170.9c10.6-6.3 13.7-20 7.7-30.3-6.3-10.6-19.7-14-30-7.7s-13.7 20-7.4 30.6c6 10.3 19.4 13.7 29.7 7.4zm-191.1 58c7.7-5.4 9.4-16 4.3-23.7s-15.7-9.4-23.1-4.3c-7.7 5.4-9.4 16-4.3 23.7 5.1 7.8 15.6 9.5 23.1 4.3zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8c-1.1-5.7-6.6-9.1-12-8-5.7 1.1-9.1 6.9-8 12.6 1.1 5.4 6.6 9.1 12.3 8 5.4-1.5 9.1-6.9 7.7-12.6zM447 138.9c-8.6 6-10.6 17.7-4.9 26.3 5.7 8.6 17.4 10.6 26 4.9 8.3-6 10.3-17.7 4.6-26.3-5.7-8.7-17.4-10.9-25.7-4.9zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1 .9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9 .6-107.4 53.4-114.9C151.6 70 234.1 38.6 290.1 82c67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3 .9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3c-10.3 7.4-12.9 22-5.7 32.6 7.1 10.6 21.4 13.1 32 6 10.6-7.4 13.1-22 6-32.6-7.4-10.6-21.7-13.5-32.3-6z" - } - }, - "free": [ - "brands" - ] - }, - "megaport": { - "changes": [ - "5.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5a3", - "label": "Megaport", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M214.5 209.6v66.2l33.5 33.5 33.3-33.3v-66.4l-33.4-33.4zM248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm145.1 414.4L367 441.6l-26-19.2v-65.5l-33.4-33.4-33.4 33.4v65.5L248 441.6l-26.1-19.2v-65.5l-33.4-33.4-33.5 33.4v65.5l-26.1 19.2-26.1-19.2v-87l59.5-59.5V188l59.5-59.5V52.9l26.1-19.2L274 52.9v75.6l59.5 59.5v87.6l59.7 59.7v87.1z" - } - }, - "free": [ - "brands" - ] - }, - "memory": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f538", - "aliases": { - "unicodes": { - "secondary": [ - "10f538" - ] - } - }, - "label": "Memory", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573278, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 448h80v-32c0-8.838 7.164-16 16-16c8.838 0 16 7.162 16 16v32h96v-32c0-8.838 7.164-16 16-16c8.838 0 16 7.162 16 16v32h96v-32c0-8.838 7.164-16 16-16c8.838 0 16 7.162 16 16v32h96v-32c0-8.838 7.164-16 16-16c8.838 0 16 7.162 16 16v32H576v-96H0V448zM576 146.9V112C576 85.49 554.5 64 528 64h-480C21.49 64 0 85.49 0 112v34.94C18.6 153.5 32 171.1 32 192S18.6 230.5 0 237.1V320h576V237.1C557.4 230.5 544 212.9 544 192S557.4 153.5 576 146.9zM192 240C192 248.8 184.8 256 176 256h-32C135.2 256 128 248.8 128 240v-96C128 135.2 135.2 128 144 128h32C184.8 128 192 135.2 192 144V240zM320 240C320 248.8 312.8 256 304 256h-32C263.2 256 256 248.8 256 240v-96C256 135.2 263.2 128 272 128h32C312.8 128 320 135.2 320 144V240zM448 240C448 248.8 440.8 256 432 256h-32C391.2 256 384 248.8 384 240v-96C384 135.2 391.2 128 400 128h32C440.8 128 448 135.2 448 144V240z" - } - }, - "free": [ - "solid" - ] - }, - "mendeley": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7b3", - "label": "Mendeley", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4 .7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1 .1-.2 .2-.3 .4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zm-303.9-19.1h-.6c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8h.6c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z" - } - }, - "free": [ - "brands" - ] - }, - "menorah": { - "changes": [ - "5.3.0", - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f676", - "aliases": { - "unicodes": { - "secondary": [ - "10f676" - ] - } - }, - "label": "Menorah", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573278, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M544 144C544 135.1 536.9 128 528 128h-32C487.1 128 480 135.1 480 144V288h64V144zM416 95.1c17.62 0 32-14.38 32-32s-32-63.1-32-63.1s-32 46.37-32 63.1S398.4 95.1 416 95.1zM448 144C448 135.1 440.9 128 432 128h-32C391.1 128 384 135.1 384 144V288h64V144zM608 95.1c17.62 0 32-14.38 32-32s-32-63.1-32-63.1s-32 46.37-32 63.1S590.4 95.1 608 95.1zM320 95.1c17.62 0 32-14.38 32-32s-32-63.1-32-63.1S288 46.37 288 63.1S302.4 95.1 320 95.1zM512 95.1c17.62 0 32-14.38 32-32s-32-63.1-32-63.1s-32 46.37-32 63.1S494.4 95.1 512 95.1zM624 128h-32C583.2 128 576 135.2 576 144V288c0 17.6-14.4 32-32 32h-192V144C352 135.2 344.8 128 336 128h-32C295.2 128 288 135.2 288 144V320H96c-17.6 0-32-14.4-32-32V144C64 135.2 56.84 128 48 128h-32C7.164 128 0 135.2 0 144V288c0 53.02 42.98 96 96 96h192v64H176C149.5 448 128 469.5 128 496C128 504.8 135.2 512 144 512h352c8.836 0 16-7.164 16-16c0-26.51-21.49-48-48-48H352v-64h192c53.02 0 96-42.98 96-96V144C640 135.2 632.8 128 624 128zM160 144C160 135.1 152.9 128 144 128h-32C103.1 128 96 135.1 96 144V288h64V144zM224 95.1c17.62 0 32-14.38 32-32S224 0 224 0S192 46.37 192 63.1S206.4 95.1 224 95.1zM32 95.1c17.62 0 32-14.38 32-32S32 0 32 0S0 46.37 0 63.1S14.38 95.1 32 95.1zM128 95.1c17.62 0 32-14.38 32-32S128 0 128 0S96 46.37 96 63.1S110.4 95.1 128 95.1zM256 144C256 135.1 248.9 128 240 128h-32C199.1 128 192 135.1 192 144V288h64V144z" - } - }, - "free": [ - "solid" - ] - }, - "mercury": { - "changes": [ - "4.3.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f223", - "aliases": { - "unicodes": { - "composite": [ - "263f" - ], - "secondary": [ - "10f223" - ] - } - }, - "label": "Mercury", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573278, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M368 223.1c0-55.32-25.57-104.6-65.49-136.9c20.49-17.32 37.2-39.11 48.1-64.21c4.656-10.72-2.9-22.89-14.45-22.89h-54.31c-5.256 0-9.93 2.828-12.96 7.188C251.8 31.77 223.8 47.1 192 47.1c-31.85 0-59.78-16.23-76.88-40.81C112.1 2.828 107.4 0 102.2 0H47.84c-11.55 0-19.11 12.17-14.45 22.89C44.29 47.1 60.1 69.79 81.49 87.11C41.57 119.4 16 168.7 16 223.1c0 86.26 62.1 157.9 144 172.1V416H128c-8.836 0-16 7.164-16 16v32C112 472.8 119.2 480 128 480h32v16C160 504.8 167.2 512 176 512h32c8.838 0 16-7.164 16-16V480h32c8.838 0 16-7.164 16-16v-32c0-8.836-7.162-16-16-16h-32v-19.05C305.9 381.9 368 310.3 368 223.1zM192 320c-52.93 0-96-43.07-96-96c0-52.94 43.07-95.1 96-95.1c52.94 0 96 43.06 96 95.1C288 276.9 244.9 320 192 320z" - } - }, - "free": [ - "solid" - ] - }, - "message": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f27a", - "aliases": { - "names": [ - "comment-alt" - ], - "unicodes": { - "secondary": [ - "10f27a" - ] - } - }, - "label": "Message", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573279, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M511.1 63.1v287.1c0 35.25-28.75 63.1-64 63.1h-144l-124.9 93.68c-7.875 5.75-19.12 .0497-19.12-9.7v-83.98h-96c-35.25 0-64-28.75-64-63.1V63.1c0-35.25 28.75-63.1 64-63.1h384C483.2 0 511.1 28.75 511.1 63.1z" - }, - "regular": { - "last_modified": 1658443573081, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M447.1 0h-384c-35.25 0-64 28.75-64 63.1v287.1c0 35.25 28.75 63.1 64 63.1h96v83.98c0 9.836 11.02 15.55 19.12 9.7l124.9-93.68h144c35.25 0 64-28.75 64-63.1V63.1C511.1 28.75 483.2 0 447.1 0zM464 352c0 8.75-7.25 16-16 16h-160l-80 60v-60H64c-8.75 0-16-7.25-16-16V64c0-8.75 7.25-16 16-16h384c8.75 0 16 7.25 16 16V352z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "meta": { - "changes": [ - "6.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e49b", - "label": "Meta", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 317.9C640 409.2 600.6 466.4 529.7 466.4C467.1 466.4 433.9 431.8 372.8 329.8L341.4 277.2C333.1 264.7 326.9 253 320.2 242.2C300.1 276 273.1 325.2 273.1 325.2C206.1 441.8 168.5 466.4 116.2 466.4C43.42 466.4 0 409.1 0 320.5C0 177.5 79.78 42.4 183.9 42.4C234.1 42.4 277.7 67.08 328.7 131.9C365.8 81.8 406.8 42.4 459.3 42.4C558.4 42.4 640 168.1 640 317.9H640zM287.4 192.2C244.5 130.1 216.5 111.7 183 111.7C121.1 111.7 69.22 217.8 69.22 321.7C69.22 370.2 87.7 397.4 118.8 397.4C149 397.4 167.8 378.4 222 293.6C222 293.6 246.7 254.5 287.4 192.2V192.2zM531.2 397.4C563.4 397.4 578.1 369.9 578.1 322.5C578.1 198.3 523.8 97.08 454.9 97.08C421.7 97.08 393.8 123 360 175.1C369.4 188.9 379.1 204.1 389.3 220.5L426.8 282.9C485.5 377 500.3 397.4 531.2 397.4L531.2 397.4z" - } - }, - "free": [ - "brands" - ] - }, - "meteor": { - "changes": [ - "5.5.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f753", - "aliases": { - "unicodes": { - "composite": [ - "2604" - ], - "secondary": [ - "10f753" - ] - } - }, - "label": "Meteor", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573280, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M511.4 20.72c-11.63 38.75-34.38 111.8-61.38 187.8c7 2.125 13.38 4 18.63 5.625c4.625 1.375 8.375 4.751 10.13 9.127c1.875 4.5 1.625 9.501-.625 13.75c-22.13 42.25-82.63 152.8-142.5 214.4c-1 1.125-2.001 2.5-3.001 3.5c-76 76.13-199.4 76.13-275.5 .125c-76.13-76.13-76.13-199.5 0-275.7c1-1 2.375-2 3.5-3C122.1 116.5 232.5 55.97 274.1 33.84c4.25-2.25 9.25-2.5 13.63-.625c4.5 1.875 7.875 5.626 9.25 10.13c1.625 5.125 3.5 11.63 5.625 18.63c75.88-27 148.9-49.75 187.6-61.25c5.75-1.75 11.88-.2503 16.13 4C511.5 8.844 512.1 15.09 511.4 20.72zM319.1 319.1c0-70.63-57.38-128-128-128c-70.75 0-128 57.38-128 128c0 70.76 57.25 128 128 128C262.6 448 319.1 390.8 319.1 319.1zM191.1 287.1c0 17.63-14.37 32-32 32c-17.75 0-32-14.38-32-32s14.25-32 32-32c8.5 0 16.63 3.375 22.63 9.375S191.1 279.5 191.1 287.1zM223.9 367.1c0 8.876-7.224 16-15.97 16c-8.875 0-16-7.127-16-16c0-8.876 7.1-16 15.98-16C216.7 351.1 223.9 359.1 223.9 367.1z" - } - }, - "free": [ - "solid" - ] - }, - "microblog": { - "changes": [ - "5.12.0", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e01a", - "label": "Micro.blog", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M399.4 362.2c29.49-34.69 47.1-78.34 47.1-125.8C446.5 123.5 346.9 32 224 32S1.54 123.5 1.54 236.4 101.1 440.9 224 440.9a239.3 239.3 0 0 0 79.44-13.44 7.18 7.18 0 0 1 8.12 2.56c18.58 25.09 47.61 42.74 79.89 49.92a4.42 4.42 0 0 0 5.22-3.43 4.37 4.37 0 0 0 -.85-3.62 87 87 0 0 1 3.69-110.7zM329.5 212.4l-57.3 43.49L293 324.8a6.5 6.5 0 0 1 -9.94 7.22L224 290.9 164.9 332a6.51 6.51 0 0 1 -9.95-7.22l20.79-68.86-57.3-43.49a6.5 6.5 0 0 1 3.8-11.68l71.88-1.51 23.66-67.92a6.5 6.5 0 0 1 12.28 0l23.66 67.92 71.88 1.51a6.5 6.5 0 0 1 3.88 11.68z" - } - }, - "free": [ - "brands" - ] - }, - "microchip": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2db", - "aliases": { - "unicodes": { - "secondary": [ - "10f2db" - ] - } - }, - "label": "Microchip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573280, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M160 352h192V160H160V352zM448 176h48C504.8 176 512 168.8 512 160s-7.162-16-16-16H448V128c0-35.35-28.65-64-64-64h-16V16C368 7.164 360.8 0 352 0c-8.836 0-16 7.164-16 16V64h-64V16C272 7.164 264.8 0 256 0C247.2 0 240 7.164 240 16V64h-64V16C176 7.164 168.8 0 160 0C151.2 0 144 7.164 144 16V64H128C92.65 64 64 92.65 64 128v16H16C7.164 144 0 151.2 0 160s7.164 16 16 16H64v64H16C7.164 240 0 247.2 0 256s7.164 16 16 16H64v64H16C7.164 336 0 343.2 0 352s7.164 16 16 16H64V384c0 35.35 28.65 64 64 64h16v48C144 504.8 151.2 512 160 512c8.838 0 16-7.164 16-16V448h64v48c0 8.836 7.164 16 16 16c8.838 0 16-7.164 16-16V448h64v48c0 8.836 7.164 16 16 16c8.838 0 16-7.164 16-16V448H384c35.35 0 64-28.65 64-64v-16h48c8.838 0 16-7.164 16-16s-7.162-16-16-16H448v-64h48C504.8 272 512 264.8 512 256s-7.162-16-16-16H448V176zM384 368c0 8.836-7.162 16-16 16h-224C135.2 384 128 376.8 128 368v-224C128 135.2 135.2 128 144 128h224C376.8 128 384 135.2 384 144V368z" - } - }, - "free": [ - "solid" - ] - }, - "microphone": { - "changes": [ - "3.1.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f130", - "aliases": { - "unicodes": { - "secondary": [ - "10f130" - ] - } - }, - "label": "microphone", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573280, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M192 352c53.03 0 96-42.97 96-96v-160c0-53.03-42.97-96-96-96s-96 42.97-96 96v160C96 309 138.1 352 192 352zM344 192C330.7 192 320 202.7 320 215.1V256c0 73.33-61.97 132.4-136.3 127.7c-66.08-4.169-119.7-66.59-119.7-132.8L64 215.1C64 202.7 53.25 192 40 192S16 202.7 16 215.1v32.15c0 89.66 63.97 169.6 152 181.7V464H128c-18.19 0-32.84 15.18-31.96 33.57C96.43 505.8 103.8 512 112 512h160c8.222 0 15.57-6.216 15.96-14.43C288.8 479.2 274.2 464 256 464h-40v-33.77C301.7 418.5 368 344.9 368 256V215.1C368 202.7 357.3 192 344 192z" - } - }, - "free": [ - "solid" - ] - }, - "microphone-lines": { - "changes": [ - "5.0.0", - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3c9", - "aliases": { - "names": [ - "microphone-alt" - ], - "unicodes": { - "composite": [ - "1f399" - ], - "secondary": [ - "10f3c9" - ] - } - }, - "label": "Microphone lines", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573280, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M192 352c53.03 0 96-42.97 96-96h-80C199.2 256 192 248.8 192 240S199.2 224 208 224H288V192h-80C199.2 192 192 184.8 192 176S199.2 160 208 160H288V127.1h-80c-8.836 0-16-7.164-16-16s7.164-16 16-16L288 96c0-53.03-42.97-96-96-96s-96 42.97-96 96v160C96 309 138.1 352 192 352zM344 192C330.7 192 320 202.7 320 215.1V256c0 73.33-61.97 132.4-136.3 127.7c-66.08-4.169-119.7-66.59-119.7-132.8L64 215.1C64 202.7 53.25 192 40 192S16 202.7 16 215.1v32.15c0 89.66 63.97 169.6 152 181.7V464H128c-18.19 0-32.84 15.18-31.96 33.57C96.43 505.8 103.8 512 112 512h160c8.222 0 15.57-6.216 15.96-14.43C288.8 479.2 274.2 464 256 464h-40v-33.77C301.7 418.5 368 344.9 368 256V215.1C368 202.7 357.3 192 344 192z" - } - }, - "free": [ - "solid" - ] - }, - "microphone-lines-slash": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f539", - "aliases": { - "names": [ - "microphone-alt-slash" - ], - "unicodes": { - "secondary": [ - "10f539" - ] - } - }, - "label": "Microphone lines slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573280, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M383.1 464l-39.1-.0001v-33.77c20.6-2.824 39.99-9.402 57.69-18.72l-43.26-33.91c-14.66 4.65-30.28 7.179-46.68 6.144C245.7 379.6 191.1 317.1 191.1 250.9v-3.777L143.1 209.5l.0001 38.61c0 89.65 63.97 169.6 151.1 181.7v34.15l-40 .0001c-17.67 0-31.1 14.33-31.1 31.1C223.1 504.8 231.2 512 239.1 512h159.1c8.838 0 15.1-7.164 15.1-15.1C415.1 478.3 401.7 464 383.1 464zM630.8 469.1l-159.3-124.9c15.37-25.94 24.53-55.91 24.53-88.21V216c0-13.25-10.75-24-23.1-24c-13.25 0-24 10.75-24 24l-.0001 39.1c0 21.12-5.557 40.77-14.77 58.24l-25.73-20.16c5.234-11.68 8.493-24.42 8.493-38.08l-57.07 .0006l-34.45-27c2.914-3.055 6.969-4.999 11.52-4.999h79.1V192L335.1 192c-8.836 0-15.1-7.164-15.1-15.1s7.164-16 15.1-16l79.1 .0013V128l-79.1-.0015c-8.836 0-15.1-7.164-15.1-15.1s7.164-15.1 15.1-15.1l80-.0003c0-54-44.56-97.57-98.93-95.95C264.5 1.614 223.1 47.45 223.1 100l.0006 50.23L38.81 5.111C34.41 1.673 29.19 0 24.03 0C16.91 0 9.84 3.158 5.121 9.189C-3.067 19.63-1.249 34.72 9.189 42.89l591.1 463.1c10.5 8.203 25.57 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1z" - } - }, - "free": [ - "solid" - ] - }, - "microphone-slash": { - "changes": [ - "3.1.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f131", - "aliases": { - "unicodes": { - "secondary": [ - "10f131" - ] - } - }, - "label": "Microphone Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573280, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M383.1 464l-39.1-.0001v-33.77c20.6-2.824 39.98-9.402 57.69-18.72l-43.26-33.91c-14.66 4.65-30.28 7.179-46.68 6.144C245.7 379.6 191.1 317.1 191.1 250.9V247.2L143.1 209.5l.0001 38.61c0 89.65 63.97 169.6 151.1 181.7v34.15l-40 .0001c-17.67 0-31.1 14.33-31.1 31.1C223.1 504.8 231.2 512 239.1 512h159.1c8.838 0 15.1-7.164 15.1-15.1C415.1 478.3 401.7 464 383.1 464zM630.8 469.1l-159.3-124.9c15.37-25.94 24.53-55.91 24.53-88.21V216c0-13.25-10.75-24-23.1-24c-13.25 0-24 10.75-24 24l-.0001 39.1c0 21.12-5.559 40.77-14.77 58.24l-25.72-20.16c5.234-11.68 8.493-24.42 8.493-38.08l-.001-155.1c0-52.57-40.52-98.41-93.07-99.97c-54.37-1.617-98.93 41.95-98.93 95.95l0 54.25L38.81 5.111C34.41 1.673 29.19 0 24.03 0C16.91 0 9.839 3.158 5.12 9.189c-8.187 10.44-6.37 25.53 4.068 33.7l591.1 463.1c10.5 8.203 25.57 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1z" - } - }, - "free": [ - "solid" - ] - }, - "microscope": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f610", - "aliases": { - "unicodes": { - "composite": [ - "1f52c" - ], - "secondary": [ - "10f610" - ] - } - }, - "label": "Microscope", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573280, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M160 320h12v16c0 8.875 7.125 16 16 16h40c8.875 0 16-7.125 16-16V320H256c17.62 0 32-14.38 32-32V64c0-17.62-14.38-32-32-32V16C256 7.125 248.9 0 240 0h-64C167.1 0 160 7.125 160 16V32C142.4 32 128 46.38 128 64v224C128 305.6 142.4 320 160 320zM464 448h-1.25C493.2 414 512 369.2 512 320c0-105.9-86.13-192-192-192v64c70.63 0 128 57.38 128 128s-57.38 128-128 128H48C21.5 448 0 469.5 0 496C0 504.9 7.125 512 16 512h480c8.875 0 16-7.125 16-16C512 469.5 490.5 448 464 448zM104 416h208c4.375 0 8-3.625 8-8v-16c0-4.375-3.625-8-8-8h-208C99.63 384 96 387.6 96 392v16C96 412.4 99.63 416 104 416z" - } - }, - "free": [ - "solid" - ] - }, - "microsoft": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ca", - "label": "Microsoft", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32h214.6v214.6H0V32zm233.4 0H448v214.6H233.4V32zM0 265.4h214.6V480H0V265.4zm233.4 0H448V480H233.4V265.4z" - } - }, - "free": [ - "brands" - ] - }, - "mill-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1ed", - "label": "Mill Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M282.9 96.53C339.7 102 384 149.8 384 208V416C384 433.7 369.7 448 352 448C334.3 448 320 433.7 320 416V208C320 181.5 298.5 160 272 160C267.7 160 263.6 160.6 259.7 161.6L224 261.5V416C224 433.7 209.7 448 192 448C179.6 448 168.9 440.1 163.6 430.7L142.1 490.8C136.2 507.4 117.9 516.1 101.2 510.1C84.59 504.2 75.92 485.9 81.86 469.2L160 250.5V208C160 181.5 138.5 160 112 160C85.49 160 64 181.5 64 208V416C64 433.7 49.67 448 32 448C14.33 448 0 433.7 0 416V128C0 110.3 14.33 96 32 96C42.87 96 52.48 101.4 58.26 109.7C74.21 100.1 92.53 96 112 96C143.3 96 171.7 108.9 192 129.6C196.9 124.6 202.2 120.1 207.1 116.1L241.9 21.24C247.8 4.595 266.1-4.079 282.8 1.865C299.4 7.809 308.1 26.12 302.1 42.76L282.9 96.53z" - } - }, - "free": [ - "solid" - ] - }, - "minimize": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f78c", - "aliases": { - "names": [ - "compress-arrows-alt" - ], - "unicodes": { - "secondary": [ - "10f78c" - ] - } - }, - "label": "Minimize", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M200 287.1H64c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.937 34.87l30.06 30.06l-62.06 62.07c-12.49 12.5-12.5 32.75-.0012 45.25l22.62 22.62c12.5 12.5 32.76 12.5 45.26 .0012l62.06-62.07l30.06 30.06c6.125 6.125 14.31 9.375 22.62 9.375c4.125 0 8.281-.7969 12.25-2.437c11.97-4.953 19.75-16.62 19.75-29.56V311.1C224 298.7 213.3 287.1 200 287.1zM312 224h135.1c12.94 0 24.62-7.797 29.56-19.75c4.969-11.97 2.219-25.72-6.937-34.87l-30.06-30.06l62.06-62.07c12.5-12.5 12.5-32.76 .0003-45.26l-22.62-22.62c-12.5-12.5-32.76-12.5-45.26-.0003l-62.06 62.07l-30.06-30.06c-9.156-9.141-22.87-11.84-34.87-6.937C295.8 39.39 288 51.06 288 64v135.1C288 213.3 298.7 224 312 224zM204.3 34.44C192.3 29.47 178.5 32.22 169.4 41.38L139.3 71.44L77.25 9.374C64.75-3.123 44.49-3.123 31.1 9.374l-22.63 22.63c-12.49 12.49-12.49 32.75 .0018 45.25l62.07 62.06L41.38 169.4C35.25 175.5 32 183.7 32 192c0 4.125 .7969 8.281 2.438 12.25C39.39 216.2 51.07 224 64 224h135.1c13.25 0 23.1-10.75 23.1-23.1V64C224 51.06 216.2 39.38 204.3 34.44zM440.6 372.7l30.06-30.06c9.141-9.156 11.84-22.88 6.938-34.87C472.6 295.8 460.9 287.1 448 287.1h-135.1c-13.25 0-23.1 10.75-23.1 23.1v135.1c0 12.94 7.797 24.62 19.75 29.56c11.97 4.969 25.72 2.219 34.87-6.937l30.06-30.06l62.06 62.06c12.5 12.5 32.76 12.5 45.26 .0002l22.62-22.62c12.5-12.5 12.5-32.76 .0002-45.26L440.6 372.7z" - } - }, - "free": [ - "solid" - ] - }, - "minus": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f068", - "aliases": { - "names": [ - "subtract" - ], - "unicodes": { - "composite": [ - "2212", - "2796", - "2013" - ], - "secondary": [ - "10f068" - ] - } - }, - "label": "minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 288h-352c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h352c17.69 0 32 14.3 32 31.99S417.7 288 400 288z" - } - }, - "free": [ - "solid" - ] - }, - "mitten": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7b5", - "aliases": { - "unicodes": { - "secondary": [ - "10f7b5" - ] - } - }, - "label": "Mitten", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M351.1 416H63.99c-17.6 0-31.1 14.4-31.1 31.1l.0026 31.1C31.1 497.6 46.4 512 63.1 512h288c17.6 0 32-14.4 32-31.1l-.0049-31.1C383.1 430.4 369.6 416 351.1 416zM425 206.9c-27.25-22.62-67.5-19-90.13 8.25l-20.88 25L284.4 111.8c-18-77.5-95.38-125.1-172.8-108C34.26 21.63-14.25 98.88 3.754 176.4L64 384h288l81.14-86.1C455.8 269.8 452.1 229.5 425 206.9z" - } - }, - "free": [ - "solid" - ] - }, - "mix": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3cb", - "label": "Mix", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 64v348.9c0 56.2 88 58.1 88 0V174.3c7.9-52.9 88-50.4 88 6.5v175.3c0 57.9 96 58 96 0V240c5.3-54.7 88-52.5 88 4.3v23.8c0 59.9 88 56.6 88 0V64H0z" - } - }, - "free": [ - "brands" - ] - }, - "mixcloud": { - "changes": [ - "4.5.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f289", - "label": "Mixcloud", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "\n", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M212.1 346.6H179.8V195.1L185.1 173.5H175.3L137.1 346.6H76.11L37.73 173.5H27.28L33.19 195.1V346.6H0V165H65.65L102.2 338.1H110.7L147.3 165H212.1L212.1 346.6zM544.5 283.6L458.4 345.7V307.5L531.3 255.8L458.4 204V165.9L544.5 228.2H553.7L640 165.9V204L566.9 255.8L640 307.5V345.7L553.7 283.6H544.5zM430.2 272.3H248.1V239.3H430.2V272.3z" - } - }, - "free": [ - "brands" - ] - }, - "mixer": { - "changes": [ - "5.12.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e056", - "label": "Mixer", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M114.6 76.07a45.71 45.71 0 0 0 -67.51-6.41c-17.58 16.18-19 43.52-4.75 62.77l91.78 123L41.76 379.6c-14.23 19.25-13.11 46.59 4.74 62.77A45.71 45.71 0 0 0 114 435.9L242.9 262.7a12.14 12.14 0 0 0 0-14.23zM470.2 379.6 377.9 255.4l91.78-123c14.22-19.25 12.83-46.59-4.75-62.77a45.71 45.71 0 0 0 -67.51 6.41l-128 172.1a12.14 12.14 0 0 0 0 14.23L398 435.9a45.71 45.71 0 0 0 67.51 6.41C483.4 426.2 484.5 398.8 470.2 379.6z" - } - }, - "free": [ - "brands" - ] - }, - "mizuni": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3cc", - "label": "Mizuni", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119.1 0 256c0 137 111 248 248 248s248-111 248-248C496 119.1 385 8 248 8zm-80 351.9c-31.4 10.6-58.8 27.3-80 48.2V136c0-22.1 17.9-40 40-40s40 17.9 40 40v223.9zm120-9.9c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1V136c0-22.1 17.9-40 40-40s40 17.9 40 40v214zm120 57.7c-21.2-20.8-48.6-37.4-80-48V136c0-22.1 17.9-40 40-40s40 17.9 40 40v271.7z" - } - }, - "free": [ - "brands" - ] - }, - "mobile": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3ce", - "aliases": { - "names": [ - "mobile-android", - "mobile-phone" - ], - "unicodes": { - "composite": [ - "1f4f1" - ], - "secondary": [ - "10f3ce" - ] - } - }, - "label": "Mobile", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 0H64C37.5 0 16 21.5 16 48v416C16 490.5 37.5 512 64 512h256c26.5 0 48-21.5 48-48v-416C368 21.5 346.5 0 320 0zM240 447.1C240 456.8 232.8 464 224 464H159.1C151.2 464 144 456.8 144 448S151.2 432 160 432h64C232.8 432 240 439.2 240 447.1z" - } - }, - "free": [ - "solid" - ] - }, - "mobile-button": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f10b", - "aliases": { - "unicodes": { - "secondary": [ - "10f10b" - ] - } - }, - "label": "Mobile button", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 0H64C37.49 0 16 21.49 16 48v416C16 490.5 37.49 512 64 512h256c26.51 0 48-21.49 48-48v-416C368 21.49 346.5 0 320 0zM192 464c-17.75 0-32-14.25-32-32s14.25-32 32-32s32 14.25 32 32S209.8 464 192 464z" - } - }, - "free": [ - "solid" - ] - }, - "mobile-retro": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e527", - "label": "Mobile Retro", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H256C291.3 0 320 28.65 320 64V448C320 483.3 291.3 512 256 512H64C28.65 512 0 483.3 0 448V64zM64 232C64 245.3 74.75 256 88 256H232C245.3 256 256 245.3 256 232V152C256 138.7 245.3 128 232 128H88C74.75 128 64 138.7 64 152V232zM80 352C93.25 352 104 341.3 104 328C104 314.7 93.25 304 80 304C66.75 304 56 314.7 56 328C56 341.3 66.75 352 80 352zM80 384C66.75 384 56 394.7 56 408C56 421.3 66.75 432 80 432C93.25 432 104 421.3 104 408C104 394.7 93.25 384 80 384zM160 352C173.3 352 184 341.3 184 328C184 314.7 173.3 304 160 304C146.7 304 136 314.7 136 328C136 341.3 146.7 352 160 352zM160 384C146.7 384 136 394.7 136 408C136 421.3 146.7 432 160 432C173.3 432 184 421.3 184 408C184 394.7 173.3 384 160 384zM240 352C253.3 352 264 341.3 264 328C264 314.7 253.3 304 240 304C226.7 304 216 314.7 216 328C216 341.3 226.7 352 240 352zM240 384C226.7 384 216 394.7 216 408C216 421.3 226.7 432 240 432C253.3 432 264 421.3 264 408C264 394.7 253.3 384 240 384zM128 48C119.2 48 112 55.16 112 64C112 72.84 119.2 80 128 80H192C200.8 80 208 72.84 208 64C208 55.16 200.8 48 192 48H128z" - } - }, - "free": [ - "solid" - ] - }, - "mobile-screen": { - "changes": [ - "5.0.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3cf", - "aliases": { - "names": [ - "mobile-android-alt" - ], - "unicodes": { - "secondary": [ - "10f3cf" - ] - } - }, - "label": "Mobile screen", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 0H64C37.5 0 16 21.5 16 48v416C16 490.5 37.5 512 64 512h256c26.5 0 48-21.5 48-48v-416C368 21.5 346.5 0 320 0zM240 447.1C240 456.8 232.8 464 224 464H159.1C151.2 464 144 456.8 144 448S151.2 432 160 432h64C232.8 432 240 439.2 240 447.1zM304 384h-224V64h224V384z" - } - }, - "free": [ - "solid" - ] - }, - "mobile-screen-button": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3cd", - "aliases": { - "names": [ - "mobile-alt" - ], - "unicodes": { - "secondary": [ - "10f3cd" - ] - } - }, - "label": "Mobile screen button", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M304 0h-224c-35.35 0-64 28.65-64 64v384c0 35.35 28.65 64 64 64h224c35.35 0 64-28.65 64-64V64C368 28.65 339.3 0 304 0zM192 480c-17.75 0-32-14.25-32-32s14.25-32 32-32s32 14.25 32 32S209.8 480 192 480zM304 64v320h-224V64H304z" - } - }, - "free": [ - "solid" - ] - }, - "modx": { - "changes": [ - "4.5.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f285", - "label": "MODX", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M356 241.8l36.7 23.7V480l-133-83.8L356 241.8zM440 75H226.3l-23 37.8 153.5 96.5L440 75zm-89 142.8L55.2 32v214.5l46 29L351 217.8zM97 294.2L8 437h213.7l125-200.5L97 294.2z" - } - }, - "free": [ - "brands" - ] - }, - "monero": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d0", - "label": "Monero", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M352 384h108.4C417 455.9 338.1 504 248 504S79 455.9 35.6 384H144V256.2L248 361l104-105v128zM88 336V128l159.4 159.4L408 128v208h74.8c8.5-25.1 13.2-52 13.2-80C496 119 385 8 248 8S0 119 0 256c0 28 4.6 54.9 13.2 80H88z" - } - }, - "free": [ - "brands" - ] - }, - "money-bill": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0d6", - "aliases": { - "unicodes": { - "secondary": [ - "10f0d6" - ] - } - }, - "label": "Money Bill", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 64C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128C0 92.65 28.65 64 64 64H512zM128 384C128 348.7 99.35 320 64 320V384H128zM64 192C99.35 192 128 163.3 128 128H64V192zM512 384V320C476.7 320 448 348.7 448 384H512zM512 128H448C448 163.3 476.7 192 512 192V128zM288 352C341 352 384 309 384 256C384 202.1 341 160 288 160C234.1 160 192 202.1 192 256C192 309 234.1 352 288 352z" - } - }, - "free": [ - "solid" - ] - }, - "money-bill-1": { - "changes": [ - "5.0.0", - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f3d1", - "aliases": { - "names": [ - "money-bill-alt" - ], - "unicodes": { - "secondary": [ - "10f3d1" - ] - } - }, - "label": "Money bill 1", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M252 208C252 196.1 260.1 188 272 188H288C299 188 308 196.1 308 208V276H312C323 276 332 284.1 332 296C332 307 323 316 312 316H264C252.1 316 244 307 244 296C244 284.1 252.1 276 264 276H268V227.6C258.9 225.7 252 217.7 252 208zM512 64C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128C0 92.65 28.65 64 64 64H512zM128 384C128 348.7 99.35 320 64 320V384H128zM64 192C99.35 192 128 163.3 128 128H64V192zM512 384V320C476.7 320 448 348.7 448 384H512zM512 128H448C448 163.3 476.7 192 512 192V128zM288 144C226.1 144 176 194.1 176 256C176 317.9 226.1 368 288 368C349.9 368 400 317.9 400 256C400 194.1 349.9 144 288 144z" - }, - "regular": { - "last_modified": 1658443573083, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M400 256C400 317.9 349.9 368 288 368C226.1 368 176 317.9 176 256C176 194.1 226.1 144 288 144C349.9 144 400 194.1 400 256zM272 224V288H264C255.2 288 248 295.2 248 304C248 312.8 255.2 320 264 320H312C320.8 320 328 312.8 328 304C328 295.2 320.8 288 312 288H304V208C304 199.2 296.8 192 288 192H272C263.2 192 256 199.2 256 208C256 216.8 263.2 224 272 224zM0 128C0 92.65 28.65 64 64 64H512C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128zM48 176V336C83.35 336 112 364.7 112 400H464C464 364.7 492.7 336 528 336V176C492.7 176 464 147.3 464 112H112C112 147.3 83.35 176 48 176z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "money-bill-1-wave": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f53b", - "aliases": { - "names": [ - "money-bill-wave-alt" - ], - "unicodes": { - "secondary": [ - "10f53b" - ] - } - }, - "label": "Money bill 1 wave", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573281, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M251.1 207.1C251.1 196.1 260.1 187.1 271.1 187.1H287.1C299 187.1 308 196.1 308 207.1V275.1H312C323 275.1 332 284.1 332 295.1C332 307 323 315.1 312 315.1H263.1C252.1 315.1 243.1 307 243.1 295.1C243.1 284.1 252.1 275.1 263.1 275.1H267.1V227.6C258.9 225.7 251.1 217.7 251.1 207.1zM48.66 79.13C128.4 100.9 208.2 80.59 288 60.25C375 38.08 462 15.9 549 48.38C565.9 54.69 576 71.62 576 89.66V399.5C576 423.4 550.4 439.2 527.3 432.9C447.6 411.1 367.8 431.4 288 451.7C200.1 473.9 113.1 496.1 26.97 463.6C10.06 457.3 0 440.4 0 422.3V112.5C0 88.59 25.61 72.83 48.66 79.13L48.66 79.13zM127.1 416C127.1 380.7 99.35 352 63.1 352V416H127.1zM63.1 223.1C99.35 223.1 127.1 195.3 127.1 159.1H63.1V223.1zM512 352V287.1C476.7 287.1 448 316.7 448 352H512zM512 95.1H448C448 131.3 476.7 159.1 512 159.1V95.1zM287.1 143.1C234.1 143.1 191.1 194.1 191.1 255.1C191.1 317.9 234.1 368 287.1 368C341 368 384 317.9 384 255.1C384 194.1 341 143.1 287.1 143.1z" - } - }, - "free": [ - "solid" - ] - }, - "money-bill-transfer": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e528", - "label": "Money Bill-transfer", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M535 7.03C544.4-2.343 559.6-2.343 568.1 7.029L632.1 71.02C637.5 75.52 640 81.63 640 87.99C640 94.36 637.5 100.5 632.1 104.1L568.1 168.1C559.6 178.3 544.4 178.3 535 168.1C525.7 159.6 525.7 144.4 535 135L558.1 111.1L384 111.1C370.7 111.1 360 101.2 360 87.99C360 74.74 370.7 63.99 384 63.99L558.1 63.1L535 40.97C525.7 31.6 525.7 16.4 535 7.03V7.03zM104.1 376.1L81.94 400L255.1 399.1C269.3 399.1 279.1 410.7 279.1 423.1C279.1 437.2 269.3 447.1 255.1 447.1L81.95 448L104.1 471C114.3 480.4 114.3 495.6 104.1 504.1C95.6 514.3 80.4 514.3 71.03 504.1L7.029 440.1C2.528 436.5-.0003 430.4 0 423.1C0 417.6 2.529 411.5 7.03 407L71.03 343C80.4 333.7 95.6 333.7 104.1 343C114.3 352.4 114.3 367.6 104.1 376.1H104.1zM95.1 64H337.9C334.1 71.18 332 79.34 332 87.1C332 116.7 355.3 139.1 384 139.1L481.1 139.1C484.4 157.5 494.9 172.5 509.4 181.9C511.1 184.3 513.1 186.6 515.2 188.8C535.5 209.1 568.5 209.1 588.8 188.8L608 169.5V384C608 419.3 579.3 448 544 448H302.1C305.9 440.8 307.1 432.7 307.1 423.1C307.1 395.3 284.7 371.1 255.1 371.1L158.9 372C155.5 354.5 145.1 339.5 130.6 330.1C128.9 327.7 126.9 325.4 124.8 323.2C104.5 302.9 71.54 302.9 51.23 323.2L31.1 342.5V128C31.1 92.65 60.65 64 95.1 64V64zM95.1 192C131.3 192 159.1 163.3 159.1 128H95.1V192zM544 384V320C508.7 320 480 348.7 480 384H544zM319.1 352C373 352 416 309 416 256C416 202.1 373 160 319.1 160C266.1 160 223.1 202.1 223.1 256C223.1 309 266.1 352 319.1 352z" - } - }, - "free": [ - "solid" - ] - }, - "money-bill-trend-up": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e529", - "label": "Money Bill-trend-up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M470.7 9.441C473.7 12.49 476 16 477.6 19.75C479.1 23.5 479.1 27.6 480 31.9V32V128C480 145.7 465.7 160 448 160C430.3 160 416 145.7 416 128V109.3L310.6 214.6C298.8 226.5 279.9 227.2 267.2 216.3L175.1 138.1L84.82 216.3C71.41 227.8 51.2 226.2 39.7 212.8C28.2 199.4 29.76 179.2 43.17 167.7L155.2 71.7C167.2 61.43 184.8 61.43 196.8 71.7L286.3 148.4L370.7 64H352C334.3 64 320 49.67 320 32C320 14.33 334.3 0 352 0H447.1C456.8 0 464.8 3.554 470.6 9.305L470.7 9.441zM0 304C0 277.5 21.49 256 48 256H464C490.5 256 512 277.5 512 304V464C512 490.5 490.5 512 464 512H48C21.49 512 0 490.5 0 464V304zM48 464H96C96 437.5 74.51 416 48 416V464zM48 304V352C74.51 352 96 330.5 96 304H48zM464 416C437.5 416 416 437.5 416 464H464V416zM416 304C416 330.5 437.5 352 464 352V304H416zM256 320C220.7 320 192 348.7 192 384C192 419.3 220.7 448 256 448C291.3 448 320 419.3 320 384C320 348.7 291.3 320 256 320z" - } - }, - "free": [ - "solid" - ] - }, - "money-bill-wave": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f53a", - "aliases": { - "unicodes": { - "secondary": [ - "10f53a" - ] - } - }, - "label": "Wavy Money Bill", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M48.66 79.13C128.4 100.9 208.2 80.59 288 60.25C375 38.08 462 15.9 549 48.38C565.9 54.69 576 71.62 576 89.66V399.5C576 423.4 550.4 439.2 527.3 432.9C447.6 411.1 367.8 431.4 288 451.7C200.1 473.9 113.1 496.1 26.97 463.6C10.06 457.3 0 440.4 0 422.3V112.5C0 88.59 25.61 72.83 48.66 79.13L48.66 79.13zM287.1 352C332.2 352 368 309 368 255.1C368 202.1 332.2 159.1 287.1 159.1C243.8 159.1 207.1 202.1 207.1 255.1C207.1 309 243.8 352 287.1 352zM63.1 416H127.1C127.1 380.7 99.35 352 63.1 352V416zM63.1 143.1V207.1C99.35 207.1 127.1 179.3 127.1 143.1H63.1zM512 303.1C476.7 303.1 448 332.7 448 368H512V303.1zM448 95.1C448 131.3 476.7 159.1 512 159.1V95.1H448z" - } - }, - "free": [ - "solid" - ] - }, - "money-bill-wheat": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e52a", - "label": "Money Bill-wheat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 80C256 88.84 248.8 96 240 96C195.8 96 160 60.18 160 16C160 7.164 167.2 0 176 0C220.2 0 256 35.82 256 80zM104 16C117.3 16 128 26.75 128 40C128 53.25 117.3 64 104 64H56C42.75 64 32 53.25 32 40C32 26.75 42.75 16 56 16H104zM136 88C149.3 88 160 98.75 160 112C160 125.3 149.3 136 136 136H24C10.75 136 0 125.3 0 112C0 98.75 10.75 88 24 88H136zM32 184C32 170.7 42.75 160 56 160H104C117.3 160 128 170.7 128 184C128 197.3 117.3 208 104 208H56C42.75 208 32 197.3 32 184zM272 16C272 7.164 279.2 0 288 0C332.2 0 368 35.82 368 80C368 88.84 360.8 96 352 96C307.8 96 272 60.18 272 16zM480 80C480 88.84 472.8 96 464 96C419.8 96 384 60.18 384 16C384 7.164 391.2 0 400 0C444.2 0 480 35.82 480 80zM400 224C391.2 224 384 216.8 384 208C384 163.8 419.8 128 464 128C472.8 128 480 135.2 480 144C480 188.2 444.2 224 400 224zM352 128C360.8 128 368 135.2 368 144C368 188.2 332.2 224 288 224C279.2 224 272 216.8 272 208C272 163.8 307.8 128 352 128zM176 224C167.2 224 160 216.8 160 208C160 163.8 195.8 128 240 128C248.8 128 256 135.2 256 144C256 188.2 220.2 224 176 224zM0 304C0 277.5 21.49 256 48 256H464C490.5 256 512 277.5 512 304V464C512 490.5 490.5 512 464 512H48C21.49 512 0 490.5 0 464V304zM48 464H96C96 437.5 74.51 416 48 416V464zM48 304V352C74.51 352 96 330.5 96 304H48zM464 416C437.5 416 416 437.5 416 464H464V416zM416 304C416 330.5 437.5 352 464 352V304H416zM256 320C220.7 320 192 348.7 192 384C192 419.3 220.7 448 256 448C291.3 448 320 419.3 320 384C320 348.7 291.3 320 256 320z" - } - }, - "free": [ - "solid" - ] - }, - "money-bills": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1f3", - "label": "Money Bills", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M96 96C96 60.65 124.7 32 160 32H576C611.3 32 640 60.65 640 96V320C640 355.3 611.3 384 576 384H160C124.7 384 96 355.3 96 320V96zM160 320H224C224 284.7 195.3 256 160 256V320zM160 96V160C195.3 160 224 131.3 224 96H160zM576 256C540.7 256 512 284.7 512 320H576V256zM512 96C512 131.3 540.7 160 576 160V96H512zM368 128C323.8 128 288 163.8 288 208C288 252.2 323.8 288 368 288C412.2 288 448 252.2 448 208C448 163.8 412.2 128 368 128zM48 360C48 399.8 80.24 432 120 432H520C533.3 432 544 442.7 544 456C544 469.3 533.3 480 520 480H120C53.73 480 0 426.3 0 360V120C0 106.7 10.75 96 24 96C37.25 96 48 106.7 48 120V360z" - } - }, - "free": [ - "solid" - ] - }, - "money-check": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f53c", - "aliases": { - "unicodes": { - "secondary": [ - "10f53c" - ] - } - }, - "label": "Money Check", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 64C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128C0 92.65 28.65 64 64 64H512zM112 224C103.2 224 96 231.2 96 240C96 248.8 103.2 256 112 256H272C280.8 256 288 248.8 288 240C288 231.2 280.8 224 272 224H112zM112 352H464C472.8 352 480 344.8 480 336C480 327.2 472.8 320 464 320H112C103.2 320 96 327.2 96 336C96 344.8 103.2 352 112 352zM376 160C362.7 160 352 170.7 352 184V232C352 245.3 362.7 256 376 256H456C469.3 256 480 245.3 480 232V184C480 170.7 469.3 160 456 160H376z" - } - }, - "free": [ - "solid" - ] - }, - "money-check-dollar": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f53d", - "aliases": { - "names": [ - "money-check-alt" - ], - "unicodes": { - "secondary": [ - "10f53d" - ] - } - }, - "label": "Money check dollar", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 64C547.3 64 576 92.65 576 128V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V128C0 92.65 28.65 64 64 64H512zM272 192C263.2 192 256 199.2 256 208C256 216.8 263.2 224 272 224H496C504.8 224 512 216.8 512 208C512 199.2 504.8 192 496 192H272zM272 320H496C504.8 320 512 312.8 512 304C512 295.2 504.8 288 496 288H272C263.2 288 256 295.2 256 304C256 312.8 263.2 320 272 320zM164.1 160C164.1 148.9 155.1 139.9 143.1 139.9C132.9 139.9 123.9 148.9 123.9 160V166C118.3 167.2 112.1 168.9 108 171.1C93.06 177.9 80.07 190.5 76.91 208.8C75.14 219 76.08 228.9 80.32 237.8C84.47 246.6 91 252.8 97.63 257.3C109.2 265.2 124.5 269.8 136.2 273.3L138.4 273.9C152.4 278.2 161.8 281.3 167.7 285.6C170.2 287.4 171.1 288.8 171.4 289.7C171.8 290.5 172.4 292.3 171.7 296.3C171.1 299.8 169.2 302.8 163.7 305.1C157.6 307.7 147.7 309 134.9 307C128.9 306 118.2 302.4 108.7 299.2C106.5 298.4 104.3 297.7 102.3 297C91.84 293.5 80.51 299.2 77.02 309.7C73.53 320.2 79.2 331.5 89.68 334.1C90.89 335.4 92.39 335.9 94.11 336.5C101.1 339.2 114.4 343.4 123.9 345.6V352C123.9 363.1 132.9 372.1 143.1 372.1C155.1 372.1 164.1 363.1 164.1 352V346.5C169.4 345.5 174.6 343.1 179.4 341.9C195.2 335.2 207.8 322.2 211.1 303.2C212.9 292.8 212.1 282.8 208.1 273.7C204.2 264.7 197.9 258.1 191.2 253.3C179.1 244.4 162.9 239.6 150.8 235.9L149.1 235.7C135.8 231.4 126.2 228.4 120.1 224.2C117.5 222.4 116.7 221.2 116.5 220.7C116.3 220.3 115.7 219.1 116.3 215.7C116.7 213.7 118.2 210.4 124.5 207.6C130.1 204.7 140.9 203.1 153.1 204.1C157.5 205.7 171 208.3 174.9 209.3C185.5 212.2 196.5 205.8 199.3 195.1C202.2 184.5 195.8 173.5 185.1 170.7C180.7 169.5 170.7 167.5 164.1 166.3L164.1 160z" - } - }, - "free": [ - "solid" - ] - }, - "monument": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5a6", - "aliases": { - "unicodes": { - "secondary": [ - "10f5a6" - ] - } - }, - "label": "Monument", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573282, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M180.7 4.686C186.9-1.562 197.1-1.562 203.3 4.686L283.3 84.69C285.8 87.2 287.4 90.48 287.9 94.02L328.1 416H55.88L96.12 94.02C96.57 90.48 98.17 87.2 100.7 84.69L180.7 4.686zM152 272C138.7 272 128 282.7 128 296C128 309.3 138.7 320 152 320H232C245.3 320 256 309.3 256 296C256 282.7 245.3 272 232 272H152zM352 448C369.7 448 384 462.3 384 480C384 497.7 369.7 512 352 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H352z" - } - }, - "free": [ - "solid" - ] - }, - "moon": { - "changes": [ - "3.2.0", - "5.0.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f186", - "aliases": { - "unicodes": { - "composite": [ - "1f319", - "23fe" - ], - "secondary": [ - "10f186" - ] - } - }, - "label": "Moon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 256c0-123.8 100.3-224 223.8-224c11.36 0 29.7 1.668 40.9 3.746c9.616 1.777 11.75 14.63 3.279 19.44C245 86.5 211.2 144.6 211.2 207.8c0 109.7 99.71 193 208.3 172.3c9.561-1.805 16.28 9.324 10.11 16.95C387.9 448.6 324.8 480 255.8 480C132.1 480 32 379.6 32 256z" - }, - "regular": { - "last_modified": 1658443573085, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M421.6 379.9c-.6641 0-1.35 .0625-2.049 .1953c-11.24 2.143-22.37 3.17-33.32 3.17c-94.81 0-174.1-77.14-174.1-175.5c0-63.19 33.79-121.3 88.73-152.6c8.467-4.812 6.339-17.66-3.279-19.44c-11.2-2.078-29.53-3.746-40.9-3.746C132.3 31.1 32 132.2 32 256c0 123.6 100.1 224 223.8 224c69.04 0 132.1-31.45 173.8-82.93C435.3 389.1 429.1 379.9 421.6 379.9zM255.8 432C158.9 432 80 353 80 256c0-76.32 48.77-141.4 116.7-165.8C175.2 125 163.2 165.6 163.2 207.8c0 99.44 65.13 183.9 154.9 212.8C298.5 428.1 277.4 432 255.8 432z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "mortar-pestle": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5a7", - "aliases": { - "unicodes": { - "secondary": [ - "10f5a7" - ] - } - }, - "label": "Mortar Pestle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M501.5 60.87c17.25-17.12 12.5-46.25-9.25-57.13c-12.12-6-26.5-4.75-37.38 3.375L251.1 159.1h151.4L501.5 60.87zM496 191.1h-480c-8.875 0-16 7.125-16 16v32c0 8.875 7.125 16 16 16L31.1 256c0 81 50.25 150.1 121.1 178.4c-12.75 16.88-21.75 36.75-25 58.63C126.8 502.9 134.2 512 144.2 512h223.5c10 0 17.51-9.125 16.13-19c-3.25-21.88-12.25-41.75-25-58.63C429.8 406.1 479.1 337 479.1 256L496 255.1c8.875 0 16-7.125 16-16v-32C512 199.1 504.9 191.1 496 191.1z" - } - }, - "free": [ - "solid" - ] - }, - "mosque": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f678", - "aliases": { - "unicodes": { - "composite": [ - "1f54c" - ], - "secondary": [ - "10f678" - ] - } - }, - "label": "Mosque", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M400 0C405 0 409.8 2.371 412.8 6.4C447.5 52.7 490.9 81.34 546.3 117.9C551.5 121.4 556.9 124.9 562.3 128.5C591.3 147.7 608 180.2 608 214.6C608 243.1 596.7 269 578.2 288H221.8C203.3 269 192 243.1 192 214.6C192 180.2 208.7 147.7 237.7 128.5C243.1 124.9 248.5 121.4 253.7 117.9C309.1 81.34 352.5 52.7 387.2 6.4C390.2 2.371 394.1 0 400 0V0zM288 440C288 426.7 277.3 416 264 416C250.7 416 240 426.7 240 440V512H192C174.3 512 160 497.7 160 480V352C160 334.3 174.3 320 192 320H608C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H560V440C560 426.7 549.3 416 536 416C522.7 416 512 426.7 512 440V512H448V453.1C448 434.1 439.6 416.1 424.1 404.8L400 384L375 404.8C360.4 416.1 352 434.1 352 453.1V512H288V440zM70.4 5.2C76.09 .9334 83.91 .9334 89.6 5.2L105.6 17.2C139.8 42.88 160 83.19 160 126V128H0V126C0 83.19 20.15 42.88 54.4 17.2L70.4 5.2zM0 160H160V296.6C140.9 307.6 128 328.3 128 352V480C128 489.6 130.1 498.6 133.8 506.8C127.3 510.1 119.9 512 112 512H48C21.49 512 0 490.5 0 464V160z" - } - }, - "free": [ - "solid" - ] - }, - "mosquito": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e52b", - "label": "Mosquito", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M430.3 503.8L382.3 447.8C378.4 443.4 376.3 437.7 376.3 431.7V376.3L351.1 344.7V407.8C351.1 425.4 337.7 439.8 319.1 439.8C302.3 439.8 287.1 425.4 287.1 407.8V344.7L263.7 376.3V431.7C263.7 437.7 261.6 443.4 257.7 447.8L209.7 503.8C201.1 513.8 186.1 514.8 176.3 505.9C166.5 497 165.6 481.6 174.3 471.6L216.3 422.5V367.8C216.3 362.3 218.1 357 221.5 352.7L287.1 266.3V266L154.6 387.8C97.58 447.6 .0003 405.2 0 320.6C0 272.7 34.02 232.3 79.35 226.4L232.3 202.5L191.5 161.6C183.7 153.8 182.1 141.5 187.6 131.8L211.5 90.06L173.3 39.18C165.3 28.54 167.2 13.26 177.5 5.046C187.9-3.17 202.7-1.207 210.7 9.429L258.7 73.34C264.6 81.21 265.3 91.99 260.4 100.6L237.8 140L287.1 190.3V152.1C287.1 137.2 298.2 124.7 311.1 121.1V63.93C311.1 59.51 315.6 55.93 319.1 55.93C324.4 55.93 327.1 59.51 327.1 63.93V121.1C341.8 124.7 351.1 137.2 351.1 152.1V190.3L402.2 140L379.6 100.6C374.7 91.99 375.4 81.21 381.3 73.34L429.3 9.429C437.3-1.207 452.1-3.169 462.5 5.047C472.8 13.26 474.7 28.55 466.7 39.18L428.5 90.06L452.4 131.8C457.9 141.5 456.3 153.8 448.5 161.6L407.7 202.5L560.6 226.4C605.1 232.3 640 272.7 640 320.6C640 405.2 542.4 447.6 485.4 387.8L351.1 266V266.3L418.5 352.7C421.9 357 423.7 362.3 423.7 367.8V422.5L465.7 471.6C474.4 481.6 473.5 497 463.7 505.9C453.9 514.8 438.9 513.8 430.3 503.8L430.3 503.8z" - } - }, - "free": [ - "solid" - ] - }, - "mosquito-net": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e52c", - "label": "Mosquito Net", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M168.8 462.3C160.9 458.4 157.7 448.7 161.7 440.8L191.1 380.2V335.1C191.1 331.8 193.7 327.7 196.7 324.7L255.1 265.4V242.2L139.2 343.1C87.82 395.3 0 358.9 0 286.3C0 245.2 30.62 210.6 71.41 205.5L231.3 181.6L181.8 140.3C176.7 136.1 174.7 129.2 176.8 122.9L190.7 81.22L161.7 23.15C157.7 15.25 160.9 5.637 168.8 1.685C176.7-2.267 186.4 .9369 190.3 8.841L222.3 72.84C224.2 76.64 224.5 81.03 223.2 85.06L210.6 122.7L255.1 160.5V137.9C255.1 123.1 266.1 110.6 279.8 106.1V63.67C279.8 59.17 283.5 55.51 287.1 55.51C292.5 55.51 296.2 59.17 296.2 63.67V106.1C309.9 110.6 319.1 123.1 319.1 137.9V160.5L365.4 122.7L352.8 85.06C351.5 81.03 351.8 76.64 353.7 72.84L385.7 8.84C389.6 .9366 399.3-2.267 407.2 1.685C415.1 5.636 418.3 15.25 414.3 23.15L385.3 81.22L399.2 122.9C401.3 129.2 399.3 136.1 394.2 140.3L344.7 181.6L504.6 205.5C527 208.3 546.4 220 559.3 236.9C556.5 239.4 554.1 242.3 552 245.5C543.4 232.5 528.7 223.1 512 223.1C495.3 223.1 480.6 232.5 472 245.5C463.4 232.5 448.7 223.1 432 223.1C410.3 223.1 392 238.3 386.1 258.1C375.4 261.3 366.3 268.2 360.2 277.2L319.1 242.2V265.4L352.4 297.8C352.1 299.8 352 301.9 352 303.1C352 320.7 360.5 335.4 373.5 343.1C369.5 346.6 365.9 349.9 362.9 353.5L319.1 310.6V360.6C319.1 378.3 305.7 392.6 287.1 392.6C270.3 392.6 255.1 378.3 255.1 360.6V310.6L224 342.6V383.1C224 386.5 223.4 388.9 222.3 391.2L190.3 455.2C186.4 463.1 176.7 466.3 168.8 462.3V462.3zM512 255.1C520.8 255.1 528 263.2 528 271.1V287.1H576V271.1C576 263.2 583.2 255.1 592 255.1C600.8 255.1 608 263.2 608 271.1V287.1H624C632.8 287.1 640 295.2 640 303.1C640 312.8 632.8 319.1 624 319.1H608V367.1H624C632.8 367.1 640 375.2 640 383.1C640 392.8 632.8 399.1 624 399.1H608V447.1H624C632.8 447.1 640 455.2 640 463.1C640 472.8 632.8 479.1 624 479.1H608V495.1C608 504.8 600.8 511.1 592 511.1C583.2 511.1 576 504.8 576 495.1V479.1H528V495.1C528 504.8 520.8 511.1 512 511.1C503.2 511.1 496 504.8 496 495.1V479.1H448V495.1C448 504.8 440.8 511.1 432 511.1C423.2 511.1 416 504.8 416 495.1V479.1H400C391.2 479.1 384 472.8 384 463.1C384 455.2 391.2 447.1 400 447.1H416V399.1H400C391.2 399.1 384 392.8 384 383.1C384 375.2 391.2 367.1 400 367.1H416V319.1H400C391.2 319.1 384 312.8 384 303.1C384 295.2 391.2 287.1 400 287.1H416V271.1C416 263.2 423.2 255.1 432 255.1C440.8 255.1 448 263.2 448 271.1V287.1H496V271.1C496 263.2 503.2 255.1 512 255.1V255.1zM576 367.1V319.1H528V367.1H576zM576 447.1V399.1H528V447.1H576zM448 319.1V367.1H496V319.1H448zM448 399.1V447.1H496V399.1H448z" - } - }, - "free": [ - "solid" - ] - }, - "motorcycle": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f21c", - "aliases": { - "unicodes": { - "composite": [ - "1f3cd" - ], - "secondary": [ - "10f21c" - ] - } - }, - "label": "Motorcycle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M342.5 32C357.2 32 370.7 40.05 377.6 52.98L391.7 78.93L439.1 39.42C444.9 34.62 452.1 32 459.6 32H480C497.7 32 512 46.33 512 64V96C512 113.7 497.7 128 480 128H418.2L473.3 229.1C485.5 226.1 498.5 224 512 224C582.7 224 640 281.3 640 352C640 422.7 582.7 480 512 480C441.3 480 384 422.7 384 352C384 311.1 402.4 276.3 431.1 252.8L415.7 224.2C376.1 253.4 352 299.8 352 352C352 362.1 353.1 373.7 355.2 384H284.8C286.9 373.7 287.1 362.1 287.1 352C287.1 263.6 216.4 192 127.1 192H31.1V160C31.1 142.3 46.33 128 63.1 128H165.5C182.5 128 198.7 134.7 210.7 146.7L255.1 192L354.1 110.3L337.7 80H279.1C266.7 80 255.1 69.25 255.1 56C255.1 42.75 266.7 32 279.1 32L342.5 32zM448 352C448 387.3 476.7 416 512 416C547.3 416 576 387.3 576 352C576 316.7 547.3 288 512 288C509.6 288 507.2 288.1 504.9 288.4L533.1 340.6C539.4 352.2 535.1 366.8 523.4 373.1C511.8 379.4 497.2 375.1 490.9 363.4L462.7 311.2C453.5 322.3 448 336.5 448 352V352zM253.8 376C242.5 435.2 190.5 480 128 480C57.31 480 0 422.7 0 352C0 281.3 57.31 224 128 224C190.5 224 242.5 268.8 253.8 328H187.3C177.9 304.5 154.9 288 128 288C92.65 288 64 316.7 64 352C64 387.3 92.65 416 128 416C154.9 416 177.9 399.5 187.3 376H253.8zM96 352C96 334.3 110.3 320 128 320C145.7 320 160 334.3 160 352C160 369.7 145.7 384 128 384C110.3 384 96 369.7 96 352z" - } - }, - "free": [ - "solid" - ] - }, - "mound": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e52d", - "label": "Mound", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M144.1 179.2C173.8 127.7 228.6 96 288 96C347.4 96 402.2 127.7 431.9 179.2L540.4 368C552.7 389.4 537.3 416 512.7 416H63.31C38.7 416 23.31 389.4 35.57 368L144.1 179.2z" - } - }, - "free": [ - "solid" - ] - }, - "mountain": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6fc", - "aliases": { - "unicodes": { - "composite": [ - "1f3d4" - ], - "secondary": [ - "10f6fc" - ] - } - }, - "label": "Mountain", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M503.2 393.8L280.1 44.25c-10.42-16.33-37.73-16.33-48.15 0L8.807 393.8c-11.11 17.41-11.75 39.42-1.666 57.45C17.07 468.1 35.92 480 56.31 480h399.4c20.39 0 39.24-11.03 49.18-28.77C514.9 433.2 514.3 411.2 503.2 393.8zM256 111.8L327.8 224H256L208 288L177.2 235.3L256 111.8z" - } - }, - "free": [ - "solid" - ] - }, - "mountain-city": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e52e", - "label": "Mountain City", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M432 0C458.5 0 480 21.49 480 48V192H520V120C520 106.7 530.7 96 544 96C557.3 96 568 106.7 568 120V192H592C618.5 192 640 213.5 640 240V464C640 490.5 618.5 512 592 512H470.2C470.7 511.2 471.2 510.5 471.6 509.7C483.2 488.6 482.8 462.9 470.3 442.4L396.5 320H400C408.8 320 416 312.8 416 304V272C416 263.2 408.8 256 400 256H368C364.8 256 361.9 256.9 359.4 258.5L288 140.1V48C288 21.49 309.5 0 336 0L432 0zM368 64C359.2 64 352 71.16 352 80V112C352 120.8 359.2 128 368 128H400C408.8 128 416 120.8 416 112V80C416 71.16 408.8 64 400 64H368zM352 208C352 216.8 359.2 224 368 224H400C408.8 224 416 216.8 416 208V176C416 167.2 408.8 160 400 160H368C359.2 160 352 167.2 352 176V208zM512 304C512 312.8 519.2 320 528 320H560C568.8 320 576 312.8 576 304V272C576 263.2 568.8 256 560 256H528C519.2 256 512 263.2 512 272V304zM528 352C519.2 352 512 359.2 512 368V400C512 408.8 519.2 416 528 416H560C568.8 416 576 408.8 576 400V368C576 359.2 568.8 352 560 352H528zM442.9 458.9C449.4 469.7 449.7 483.2 443.6 494.2C437.5 505.2 426 512 413.5 512H34.46C21.1 512 10.5 505.2 4.404 494.2C-1.693 483.2-1.444 469.7 5.056 458.9L194.6 144.7C200.9 134.3 211.1 128 224 128C236 128 247.1 134.3 253.4 144.7L442.9 458.9zM223.1 188.9L150.4 310.8L174.1 352L222.1 288H283.8L223.1 188.9z" - } - }, - "free": [ - "solid" - ] - }, - "mountain-sun": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e52f", - "label": "Mountain Sun", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M480 80C480 35.82 515.8 0 560 0C604.2 0 640 35.82 640 80C640 124.2 604.2 160 560 160C515.8 160 480 124.2 480 80zM0 456.1C0 445.6 2.964 435.3 8.551 426.4L225.3 81.01C231.9 70.42 243.5 64 256 64C268.5 64 280.1 70.42 286.8 81.01L412.7 281.7L460.9 202.7C464.1 196.1 472.2 192 480 192C487.8 192 495 196.1 499.1 202.7L631.1 419.1C636.9 428.6 640 439.7 640 450.9C640 484.6 612.6 512 578.9 512H55.91C25.03 512 .0006 486.1 .0006 456.1L0 456.1z" - } - }, - "free": [ - "solid" - ] - }, - "mug-hot": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7b6", - "aliases": { - "unicodes": { - "composite": [ - "2615" - ], - "secondary": [ - "10f7b6" - ] - } - }, - "label": "Mug Hot", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573283, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M400 192H32C14.25 192 0 206.3 0 224v192c0 53 43 96 96 96h192c53 0 96-43 96-96h16c61.75 0 112-50.25 112-112S461.8 192 400 192zM400 352H384V256h16C426.5 256 448 277.5 448 304S426.5 352 400 352zM107.9 100.7C120.3 107.1 128 121.4 128 136c0 13.25 10.75 23.89 24 23.89S176 148.1 176 135.7c0-31.34-16.83-60.64-43.91-76.45C119.7 52.03 112 38.63 112 24.28c0-13.25-10.75-24.14-24-24.14S64 11.03 64 24.28C64 55.63 80.83 84.92 107.9 100.7zM219.9 100.7C232.3 107.1 240 121.4 240 136c0 13.25 10.75 23.86 24 23.86S288 148.1 288 135.7c0-31.34-16.83-60.64-43.91-76.45C231.7 52.03 224 38.63 224 24.28c0-13.25-10.75-24.18-24-24.18S176 11.03 176 24.28C176 55.63 192.8 84.92 219.9 100.7z" - } - }, - "free": [ - "solid" - ] - }, - "mug-saucer": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0f4", - "aliases": { - "names": [ - "coffee" - ], - "unicodes": { - "secondary": [ - "10f0f4" - ] - } - }, - "label": "Mug saucer", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573284, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M512 32H120c-13.25 0-24 10.75-24 24L96.01 288c0 53 43 96 96 96h192C437 384 480 341 480 288h32c70.63 0 128-57.38 128-128S582.6 32 512 32zM512 224h-32V96h32c35.25 0 64 28.75 64 64S547.3 224 512 224zM560 416h-544C7.164 416 0 423.2 0 432C0 458.5 21.49 480 48 480h480c26.51 0 48-21.49 48-48C576 423.2 568.8 416 560 416z" - } - }, - "free": [ - "solid" - ] - }, - "music": { - "changes": [ - "1.0.0", - "5.0.0", - "5.2.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f001", - "aliases": { - "unicodes": { - "composite": [ - "1f3b5" - ], - "secondary": [ - "10f001" - ] - } - }, - "label": "Music", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573284, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M511.1 367.1c0 44.18-42.98 80-95.1 80s-95.1-35.82-95.1-79.1c0-44.18 42.98-79.1 95.1-79.1c11.28 0 21.95 1.92 32.01 4.898V148.1L192 224l-.0023 208.1C191.1 476.2 149 512 95.1 512S0 476.2 0 432c0-44.18 42.98-79.1 95.1-79.1c11.28 0 21.95 1.92 32 4.898V126.5c0-12.97 10.06-26.63 22.41-30.52l319.1-94.49C472.1 .6615 477.3 0 480 0c17.66 0 31.97 14.34 32 31.99L511.1 367.1z" - } - }, - "free": [ - "solid" - ] - }, - "n": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "4e", - "aliases": { - "unicodes": { - "composite": [ - "6e" - ] - } - }, - "label": "N", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573284, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 64.01v384c0 13.47-8.438 25.5-21.09 30.09C359.3 479.4 355.7 480 352 480c-9.312 0-18.38-4.078-24.59-11.52L64 152.4v295.6c0 17.67-14.31 32-32 32s-32-14.33-32-32v-384c0-13.47 8.438-25.5 21.09-30.09c12.62-4.516 26.84-.75 35.5 9.609L320 359.6v-295.6c0-17.67 14.31-32 32-32S384 46.34 384 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "naira-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e1f6", - "label": "Naira Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573284, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M262.5 256H320V64C320 46.33 334.3 32 352 32C369.7 32 384 46.33 384 64V256H416C433.7 256 448 270.3 448 288C448 305.7 433.7 320 416 320H384V448C384 462.1 374.8 474.5 361.3 478.6C347.8 482.7 333.2 477.5 325.4 465.8L228.2 320H128V448C128 465.7 113.7 480 96 480C78.33 480 64 465.7 64 448V320H32C14.33 320 0 305.7 0 288C0 270.3 14.33 256 32 256H64V64C64 49.9 73.23 37.46 86.73 33.37C100.2 29.29 114.8 34.52 122.6 46.25L262.5 256zM305.1 320L320 342.3V320H305.1zM185.5 256L128 169.7V256H185.5z" - } - }, - "free": [ - "solid" - ] - }, - "napster": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d2", - "label": "Napster", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M298.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5h100.7zm44-199.6c20-16.9 43.6-29.2 69.6-36.2V299c0 219.4-328 217.6-328 .3V137.7c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zm-208.8-58.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9 .1-6.3-4-13.9-8.2-20.4-11.4zM43.8 93.2v69.3c-58.4 36.5-58.4 121.1 .1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7 .2-158.2V93.2c-17.3 .5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5 .1-16.3-4.4-33.1-7-50.6-7.5zM259.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zm-135.5-55.3c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zm169.1 123.4c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z" - } - }, - "free": [ - "brands" - ] - }, - "neos": { - "changes": [ - "5.2.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f612", - "label": "Neos", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572487, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M415.4 512h-95.11L212.1 357.5v91.1L125.7 512H28V29.82L68.47 0h108.1l123.7 176.1V63.45L386.7 0h97.69v461.5zM38.77 35.27V496l72-52.88V194l215.5 307.6h84.79l52.35-38.17h-78.27L69 13zm82.54 466.6l80-58.78v-101l-79.76-114.4v220.9L49 501.9h72.34zM80.63 10.77l310.6 442.6h82.37V10.77h-79.75v317.6L170.9 10.77zM311 191.6l72 102.8V15.93l-72 53v122.7z" - } - }, - "free": [ - "brands" - ] - }, - "network-wired": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6ff", - "aliases": { - "unicodes": { - "secondary": [ - "10f6ff" - ] - } - }, - "label": "Wired Network", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573284, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M400 0C426.5 0 448 21.49 448 48V144C448 170.5 426.5 192 400 192H352V224H608C625.7 224 640 238.3 640 256C640 273.7 625.7 288 608 288H512V320H560C586.5 320 608 341.5 608 368V464C608 490.5 586.5 512 560 512H400C373.5 512 352 490.5 352 464V368C352 341.5 373.5 320 400 320H448V288H192V320H240C266.5 320 288 341.5 288 368V464C288 490.5 266.5 512 240 512H80C53.49 512 32 490.5 32 464V368C32 341.5 53.49 320 80 320H128V288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H288V192H240C213.5 192 192 170.5 192 144V48C192 21.49 213.5 0 240 0H400zM256 64V128H384V64H256zM224 448V384H96V448H224zM416 384V448H544V384H416z" - } - }, - "free": [ - "solid" - ] - }, - "neuter": { - "changes": [ - "4.3.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f22c", - "aliases": { - "unicodes": { - "composite": [ - "26b2" - ], - "secondary": [ - "10f22c" - ] - } - }, - "label": "Neuter", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573284, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M368 176c0-97.2-78.8-176-176-176c-97.2 0-176 78.8-176 176c0 86.26 62.1 157.9 144 172.1V496C160 504.8 167.2 512 176 512h32c8.838 0 16-7.164 16-16v-147C305.9 333.9 368 262.3 368 176zM192 272c-52.93 0-96-43.07-96-96c0-52.94 43.07-95.1 96-95.1c52.94 0 96 43.06 96 95.1C288 228.9 244.9 272 192 272z" - } - }, - "free": [ - "solid" - ] - }, - "newspaper": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1ea", - "aliases": { - "unicodes": { - "composite": [ - "1f4f0" - ], - "secondary": [ - "10f1ea" - ] - } - }, - "label": "Newspaper", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573285, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 32H128C110.3 32 96 46.33 96 64v336C96 408.8 88.84 416 80 416S64 408.8 64 400V96H32C14.33 96 0 110.3 0 128v288c0 35.35 28.65 64 64 64h384c35.35 0 64-28.65 64-64V64C512 46.33 497.7 32 480 32zM272 416h-96C167.2 416 160 408.8 160 400C160 391.2 167.2 384 176 384h96c8.836 0 16 7.162 16 16C288 408.8 280.8 416 272 416zM272 320h-96C167.2 320 160 312.8 160 304C160 295.2 167.2 288 176 288h96C280.8 288 288 295.2 288 304C288 312.8 280.8 320 272 320zM432 416h-96c-8.836 0-16-7.164-16-16c0-8.838 7.164-16 16-16h96c8.836 0 16 7.162 16 16C448 408.8 440.8 416 432 416zM432 320h-96C327.2 320 320 312.8 320 304C320 295.2 327.2 288 336 288h96C440.8 288 448 295.2 448 304C448 312.8 440.8 320 432 320zM448 208C448 216.8 440.8 224 432 224h-256C167.2 224 160 216.8 160 208v-96C160 103.2 167.2 96 176 96h256C440.8 96 448 103.2 448 112V208z" - }, - "regular": { - "last_modified": 1658443573087, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M456 32h-304C121.1 32 96 57.13 96 88v320c0 13.22-10.77 24-24 24S48 421.2 48 408V112c0-13.25-10.75-24-24-24S0 98.75 0 112v296C0 447.7 32.3 480 72 480h352c48.53 0 88-39.47 88-88v-304C512 57.13 486.9 32 456 32zM464 392c0 22.06-17.94 40-40 40H139.9C142.5 424.5 144 416.4 144 408v-320c0-4.406 3.594-8 8-8h304c4.406 0 8 3.594 8 8V392zM264 272h-64C186.8 272 176 282.8 176 296S186.8 320 200 320h64C277.3 320 288 309.3 288 296S277.3 272 264 272zM408 272h-64C330.8 272 320 282.8 320 296S330.8 320 344 320h64c13.25 0 24-10.75 24-24S421.3 272 408 272zM264 352h-64c-13.25 0-24 10.75-24 24s10.75 24 24 24h64c13.25 0 24-10.75 24-24S277.3 352 264 352zM408 352h-64C330.8 352 320 362.8 320 376s10.75 24 24 24h64c13.25 0 24-10.75 24-24S421.3 352 408 352zM400 112h-192c-17.67 0-32 14.33-32 32v64c0 17.67 14.33 32 32 32h192c17.67 0 32-14.33 32-32v-64C432 126.3 417.7 112 400 112z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "nfc-directional": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e530", - "label": "NFC Directional", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M211.8 488.6C213.4 491.1 213.9 494.2 213.2 497.1C212.6 500 210.8 502.6 208.3 504.2C205.7 505.8 202.7 506.3 199.7 505.7C138.3 491.8 84.1 455.8 47.53 404.5C10.97 353.2-5.395 290.3 1.57 227.7C8.536 165 38.34 107.2 85.29 65.21C132.2 23.2 193-.0131 256 0C257.5 0 258.1 .2931 260.3 .8627C261.7 1.432 262.1 2.267 264 3.319C265.1 4.371 265.9 5.619 266.5 6.993C267 8.367 267.3 9.839 267.3 11.32V112.3L291.8 86.39C292.8 85.31 294 84.44 295.4 83.84C296.7 83.23 298.2 82.9 299.7 82.86C301.2 82.81 302.6 83.06 304 83.59C305.4 84.12 306.7 84.92 307.8 85.94C308.8 86.96 309.7 88.18 310.3 89.54C310.9 90.89 311.3 92.35 311.3 93.84C311.3 95.32 311.1 96.8 310.6 98.18C310 99.57 309.2 100.8 308.2 101.9L264.2 148.5C263.1 149.6 261.9 150.5 260.5 151.1C259 151.7 257.5 152 255.1 152C254.5 152 252.9 151.7 251.5 151.1C250.1 150.5 248.8 149.6 247.8 148.5L203.7 101.9C201.7 99.74 200.6 96.83 200.7 93.84C200.7 90.84 202 87.1 204.2 85.94C206.4 83.88 209.3 82.77 212.3 82.86C215.3 82.94 218.1 84.21 220.2 86.39L244.7 112.4V22.89C188.3 25.64 134.9 48.73 94.23 87.87C53.58 127 28.49 179.6 23.61 235.8C18.73 292 34.38 348.1 67.68 393.7C100.1 439.2 149.7 471.2 204.7 483.6C207.6 484.3 210.2 486.1 211.8 488.6L211.8 488.6zM171.4 126.1C170.6 127.4 169.5 128.5 168.3 129.3C147.8 143.2 131.1 161.9 119.5 183.8C107.9 205.7 101.8 230.1 101.8 254.9C101.8 279.7 107.9 304.1 119.5 325.1C131.1 347.9 147.8 366.6 168.3 380.5C170.8 382.2 172.5 384.8 173 387.8C173.6 390.7 172.1 393.8 171.3 396.2C169.6 398.7 166.1 400.4 164 400.1C161.1 401.5 158 400.9 155.6 399.2C132 383.2 112.8 361.7 99.46 336.5C86.15 311.4 79.19 283.4 79.19 254.9C79.19 226.5 86.15 198.4 99.46 173.3C112.8 148.1 132 126.6 155.6 110.6C156.8 109.8 158.2 109.2 159.6 108.8C161.1 108.5 162.6 108.5 164.1 108.8C165.5 109 166.9 109.6 168.2 110.4C169.5 111.2 170.5 112.3 171.4 113.5C172.2 114.7 172.8 116.1 173.1 117.6C173.4 119.1 173.4 120.6 173.1 122C172.8 123.5 172.3 124.9 171.4 126.1H171.4zM340.9 383.5C341.7 382.3 342.8 381.2 343.1 380.4V380.3C364.4 366.3 381.1 347.6 392.7 325.7C404.2 303.9 410.2 279.5 410.2 254.8C410.2 230.1 404.2 205.7 392.7 183.8C381.1 161.1 364.4 143.3 343.1 129.3C342.8 128.5 341.7 127.4 340.9 126.2C340.1 124.9 339.5 123.5 339.3 122.1C338.1 120.6 339 119.1 339.3 117.7C339.6 116.2 340.2 114.8 341 113.6C341.9 112.4 342.1 111.3 344.2 110.5C345.4 109.7 346.8 109.2 348.3 108.9C349.8 108.6 351.2 108.6 352.7 108.9C354.2 109.2 355.5 109.8 356.8 110.7C380.2 126.7 399.5 148.2 412.7 173.3C426 198.4 432.1 226.4 432.1 254.8C432.1 283.3 426 311.3 412.7 336.4C399.5 361.5 380.2 383 356.8 399C355.5 399.9 354.2 400.5 352.7 400.8C351.2 401.1 349.8 401.1 348.3 400.8C346.8 400.5 345.4 399.1 344.2 399.2C342.1 398.4 341.9 397.3 341 396.1C340.2 394.9 339.6 393.5 339.3 392C339 390.6 338.1 389.1 339.3 387.6C339.5 386.2 340.1 384.8 340.9 383.5V383.5zM312.3 6.307C368.5 19.04 418.7 50.28 455 95.01C485.4 132.6 504.6 178 510.3 226C515.9 274 507.9 322.7 487.1 366.3C466.2 409.9 433.5 446.8 392.6 472.6C351.7 498.3 304.4 512 256 512C254.5 512 253.1 511.7 251.7 511.1C250.3 510.6 249.1 509.7 248 508.7C246.1 507.6 246.1 506.4 245.6 505C245 503.6 244.7 502.2 244.7 500.7V401.5L220.2 427.5C218.1 429.7 215.3 430.1 212.3 431.1C209.3 431.2 206.4 430 204.2 427.1C202 425.9 200.7 423.1 200.7 420.1C200.6 417.1 201.7 414.2 203.7 412L247.8 365.4C249.1 363.2 252.9 362 255.1 362C259.1 362 262 363.2 264.2 365.4L308.2 412C310.3 414.2 311.4 417.1 311.3 420.1C311.2 423.1 309.9 425.9 307.8 427.1C305.6 430 302.7 431.2 299.7 431.1C296.7 430.1 293.8 429.7 291.8 427.5L267.3 401.6V489.1C323.7 486.3 377.1 463.3 417.8 424.1C458.5 384.1 483.6 332.4 488.5 276.2C493.3 219.1 477.7 163.9 444.4 118.3C411.1 72.75 362.4 40.79 307.4 28.36C305.9 28.03 304.6 27.42 303.3 26.57C302.1 25.71 301.1 24.63 300.3 23.37C299.5 22.12 298.1 20.72 298.7 19.26C298.5 17.8 298.5 16.3 298.8 14.85C299.2 13.41 299.8 12.04 300.6 10.82C301.5 9.61 302.6 8.577 303.8 7.784C305.1 6.99 306.5 6.451 307.9 6.198C309.4 5.945 310.9 5.982 312.3 6.307L312.3 6.307zM353.1 256.1C353.1 287.5 335.6 317.2 303.8 339.6C301.7 341.1 299 341.9 296.4 341.6C293.7 341.4 291.2 340.3 289.4 338.4L219.3 268.6C217.1 266.5 215.1 263.6 215.9 260.6C215.9 257.6 217.1 254.7 219.2 252.6C221.4 250.5 224.2 249.3 227.2 249.3C230.2 249.3 233.1 250.5 235.2 252.6L298.3 315.4C319.1 298.3 330.5 277.5 330.5 256.1C330.5 232.2 316.4 209.1 290.8 191C288.3 189.3 286.7 186.7 286.2 183.7C285.7 180.8 286.3 177.7 288.1 175.3C289.8 172.8 292.4 171.2 295.4 170.7C298.3 170.2 301.4 170.8 303.8 172.6C335.6 195 353.1 224.7 353.1 256.1V256.1zM216.7 341.5C213.7 342 210.7 341.3 208.2 339.6C176.5 317.2 158.1 287.5 158.1 256.1C158.1 224.7 176.5 195 208.2 172.6C210.4 171 213.1 170.3 215.7 170.5C218.4 170.8 220.8 171.9 222.7 173.8L292.8 243.6C294.9 245.7 296.1 248.6 296.1 251.6C296.1 254.6 294.1 257.4 292.8 259.6C290.7 261.7 287.8 262.9 284.9 262.9C281.9 262.9 278.1 261.7 276.9 259.6L213.8 196.7C192.9 214 181.6 234.7 181.6 256.1C181.6 279.1 195.7 303.1 221.3 321.1C223.7 322.9 225.4 325.5 225.9 328.5C226.4 331.4 225.7 334.4 224 336.9C222.3 339.3 219.6 341 216.7 341.5L216.7 341.5z" - } - }, - "free": [ - "brands" - ] - }, - "nfc-symbol": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e531", - "label": "NFC Simplified", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M392.9 32.43C400.6 31.1 408.6 32.89 414.1 37.41C498.2 96.14 544 173.7 544 255.1C544 338.2 498.2 415.9 414.1 474.6C409.3 478.6 402.4 480.5 395.5 479.9C388.5 479.3 382 476.3 377.1 471.4L193.7 288.7C188.1 283.2 185 275.7 184.1 267.8C184.1 260 188.1 252.5 193.6 246.9C199.2 241.4 206.7 238.2 214.5 238.2C222.4 238.2 229.9 241.3 235.4 246.8L400.5 411.2C455.1 366.5 484.8 312 484.8 255.1C484.8 193.5 447.9 132.9 380.9 85.76C374.5 81.24 370.1 74.35 368.8 66.62C367.4 58.89 369.2 50.94 373.8 44.53C378.3 38.12 385.2 33.77 392.9 32.43V32.43zM186.9 479.6C179.2 480.9 171.3 479.1 164.8 474.6C81.67 415.9 35.84 338.2 35.84 255.1C35.84 173.7 81.67 96.14 164.8 37.41C170.5 33.4 177.4 31.53 184.4 32.12C191.3 32.71 197.8 35.72 202.7 40.63L386.1 223.3C391.7 228.8 394.8 236.3 394.8 244.2C394.9 251.1 391.8 259.5 386.2 265.1C380.7 270.6 373.2 273.8 365.3 273.8C357.5 273.8 349.1 270.7 344.4 265.2L179.3 100.7C124.7 145.9 95.03 199.9 95.03 255.1C95.03 318.5 131.9 379.1 198.1 426.2C205.4 430.8 209.7 437.6 211.1 445.4C212.4 453.1 210.6 461.1 206.1 467.5C201.6 473.9 194.7 478.2 186.9 479.6V479.6z" - } - }, - "free": [ - "brands" - ] - }, - "nimblr": { - "changes": [ - "5.1.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5a8", - "label": "Nimblr", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M246.6 299.3c15.57 0 27.15 11.46 27.15 27s-11.62 27-27.15 27c-15.7 0-27.15-11.57-27.15-27s11.55-27 27.15-27zM113 326.3c0-15.61 11.68-27 27.15-27s27.15 11.46 27.15 27-11.47 27-27.15 27c-15.44 0-27.15-11.31-27.15-27M191.8 159C157 159 89.45 178.8 59.25 227L14 0v335.5C14 433.1 93.61 512 191.8 512s177.8-78.95 177.8-176.5S290.1 159 191.8 159zm0 308.1c-73.27 0-132.5-58.9-132.5-131.6s59.24-131.6 132.5-131.6 132.5 58.86 132.5 131.5S265 467.1 191.8 467.1z" - } - }, - "free": [ - "brands" - ] - }, - "node": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f419", - "label": "Node.js", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4 .1l14.8 8.8c.5 .3 1.3 .3 1.8 0L375 408c.5-.3 .9-.9 .9-1.6v-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6 .3-.9 1-.9 1.6v66.7c0 .6 .4 1.2 .9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8v-65.9c0-.9 .7-1.7 1.7-1.7h7.3c.9 0 1.7 .7 1.7 1.7v65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5v-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5v66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zm46.7-65.8c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6 .2 .8 .8 1.3 1.6 1.3h7.5c.5 0 .9-.2 1.2-.5 .3-.4 .5-.8 .4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4h-7.5c-.9 0-1.7 .7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3 0 5.2 4.2 9.4 9.3 9.4 5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2h-2.6c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1h-2.2v5h-2.4v-12.5h4.3c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7 .1 1.8 1.2 2.1 2.8 .1 1 .3 2.7 .6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7h-2v3.5h1.9c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4l-61.3-35.3c-1-.6-2.2-.9-3.4-1h-.6c-1.2 0-2.3 .4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3 .7 2.5 1.8 3.2 1.1 .7 2.5 .7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4v-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1 1.3 0 2.6 .3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4v44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1 .7 2.6 .7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3v176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4v-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2v-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6 .3-.9 .9-.9 1.6v24.3c0 .7 .4 1.3 .9 1.6l21 12.1c.6 .3 1.3 .3 1.8 0l21-12.1c.6-.3 .9-.9 .9-1.6v-24.3zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4V192c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4v70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2v-22.2c0-1.3 .7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0l19.2 11.1c1.1 .7 1.9 1.9 1.9 3.2v17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4 .3-.7 .7-.7 1.2v13.6c0 .5 .3 1 .7 1.2l11.8 6.8c.4 .3 1 .3 1.4 0L584 235c.4-.3 .7-.7 .7-1.2v-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zm-254.2 43.5v-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4v70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7 .1-.5 .2-1.1 .2-1.7zm-74.3-124.9l-.8 .5h1.1l-.3-.5zm76.2 130.2l-.4-.7v.9l.4-.2z" - } - }, - "free": [ - "brands" - ] - }, - "node-js": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d3", - "label": "Node.js JS", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6 .4l47.4 28.1c1.7 1 4.1 1 5.7 0l184.7-106.6c1.7-1 2.8-3 2.8-5V149.3c0-2.1-1.1-4-2.9-5.1L226.8 37.7c-1.7-1-4-1-5.7 0L36.6 144.3c-1.8 1-2.9 3-2.9 5.1v213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7V167.5c0-3 2.4-5.3 5.4-5.3h23.4c2.9 0 5.4 2.3 5.4 5.3V378c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6l-48.4-27.9C8.1 389.2 .7 376.3 .7 362.4V149.3c0-13.8 7.4-26.8 19.4-33.7L204.6 9c11.7-6.6 27.2-6.6 38.8 0l184.7 106.7c12 6.9 19.4 19.8 19.4 33.7v213.1c0 13.8-7.4 26.7-19.4 33.7L243.4 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zm149.1-210.1c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8 .5 2.4 2.7 4.2 5.2 4.2h24c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5h-23.9c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z" - } - }, - "free": [ - "brands" - ] - }, - "not-equal": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f53e", - "aliases": { - "unicodes": { - "secondary": [ - "10f53e" - ] - } - }, - "label": "Not Equal", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573285, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M432 336c0 17.69-14.31 32.01-32 32.01H187.8l-65.15 97.74C116.5 474.1 106.3 480 95.97 480c-6.094 0-12.25-1.75-17.72-5.375c-14.72-9.812-18.69-29.66-8.875-44.38l41.49-62.23H48c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h105.5l63.1-96H48c-17.69 0-32-14.32-32-32.01s14.31-31.99 32-31.99h212.2l65.18-97.77c9.781-14.69 29.62-18.66 44.37-8.875c14.72 9.812 18.69 29.66 8.875 44.38l-41.51 62.27H400c17.69 0 32 14.31 32 31.99s-14.31 32.01-32 32.01h-105.6l-63.1 96H400C417.7 304 432 318.3 432 336z" - } - }, - "free": [ - "solid" - ] - }, - "notdef": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "e1fe", - "label": "Notdef", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573285, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0h-288C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48v-416C384 21.49 362.5 0 336 0zM281.5 64L192 198.3L102.5 64H281.5zM64 121.7L153.5 256L64 390.3V121.7zM102.5 448L192 313.7L281.5 448H102.5zM320 390.3L230.5 256L320 121.7V390.3z" - }, - "regular": { - "last_modified": 1658443573088, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M336 0h-288C21.49 0 0 21.49 0 48v416C0 490.5 21.49 512 48 512h288c26.51 0 48-21.49 48-48v-416C384 21.49 362.5 0 336 0zM336 90.16V421.8L221.2 256L336 90.16zM192 213.8L77.19 48h229.6L192 213.8zM162.8 256L48 421.8V90.16L162.8 256zM192 298.2L306.8 464H77.19L192 298.2z" - } - }, - "free": [] - }, - "note-sticky": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f249", - "aliases": { - "names": [ - "sticky-note" - ], - "unicodes": { - "composite": [ - "f24a" - ], - "secondary": [ - "10f249" - ] - } - }, - "label": "Note sticky", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573285, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32h-352C21.49 32 0 53.49 0 80v352C0 458.5 21.49 480 48 480h245.5c16.97 0 33.25-6.744 45.26-18.75l90.51-90.51C441.3 358.7 448 342.5 448 325.5V80C448 53.49 426.5 32 400 32zM64 96h320l-.001 224H320c-17.67 0-32 14.33-32 32v64H64V96z" - }, - "regular": { - "last_modified": 1658443573088, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64.01C28.66 32 .0085 60.65 .0065 96L0 415.1C-.002 451.3 28.65 480 64 480h232.1c25.46 0 49.88-10.12 67.89-28.12l55.88-55.89C437.9 377.1 448 353.6 448 328.1V96C448 60.8 419.2 32 384 32zM52.69 427.3C50.94 425.6 48 421.8 48 416l.0195-319.1C48.02 87.18 55.2 80 64.02 80H384c8.674 0 16 7.328 16 16v192h-88C281.1 288 256 313.1 256 344v88H64C58.23 432 54.44 429.1 52.69 427.3zM330.1 417.9C322.9 425.1 313.8 429.6 304 431.2V344c0-4.406 3.594-8 8-8h87.23c-1.617 9.812-6.115 18.88-13.29 26.05L330.1 417.9z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "notes-medical": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f481", - "aliases": { - "unicodes": { - "secondary": [ - "10f481" - ] - } - }, - "label": "Medical Notes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573286, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 144V384l-96 96H144C117.5 480 96 458.5 96 432v-288C96 117.5 117.5 96 144 96h288C458.5 96 480 117.5 480 144zM384 264C384 259.6 380.4 256 376 256H320V200C320 195.6 316.4 192 312 192h-48C259.6 192 256 195.6 256 200V256H200C195.6 256 192 259.6 192 264v48C192 316.4 195.6 320 200 320H256v56c0 4.375 3.625 8 8 8h48c4.375 0 8-3.625 8-8V320h56C380.4 320 384 316.4 384 312V264zM0 360v-240C0 53.83 53.83 0 120 0h240C373.3 0 384 10.75 384 24S373.3 48 360 48h-240C80.3 48 48 80.3 48 120v240C48 373.3 37.25 384 24 384S0 373.3 0 360z" - } - }, - "free": [ - "solid" - ] - }, - "npm": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d4", - "label": "npm", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 288h-32v-64h32v64zm288-128v192H288v32H160v-32H0V160h576zm-416 32H32v128h64v-96h32v96h32V192zm160 0H192v160h64v-32h64V192zm224 0H352v128h64v-96h32v96h32v-96h32v96h32V192z" - } - }, - "free": [ - "brands" - ] - }, - "ns8": { - "changes": [ - "5.0.0", - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d5", - "label": "NS8", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M104.3 269.2h26.07V242.1H104.3zm52.47-26.18-.055-26.18v-.941a39.33 39.33 0 0 0 -78.64 .941v.166h26.4v-.166a12.98 12.98 0 0 1 25.96 0v26.18zm52.36 25.85a91.1 91.1 0 0 1 -91.1 91.1h-.609a91.1 91.1 0 0 1 -91.1-91.1H0v.166A117.3 117.3 0 0 0 117.4 386.3h.775A117.3 117.3 0 0 0 235.5 268.8V242.8H209.1zm-157.2 0a65.36 65.36 0 0 0 130.7 0H156.3a39.02 39.02 0 0 1 -78.04 0V242.9H51.97v-26.62A65.42 65.42 0 0 1 182.8 217.5v25.29h26.34V217.5a91.76 91.76 0 0 0 -183.5 0v25.4H51.91zm418.4-71.17c13.67 0 24.57 6.642 30.05 18.26l.719 1.549 23.25-11.51-.609-1.439c-8.025-19.26-28.5-31.27-53.41-31.27-23.13 0-43.61 11.4-50.97 28.45-.123 26.88-.158 23.9 0 24.85 4.7 11.01 14.56 19.37 28.67 24.24a102 102 0 0 0 19.81 3.984c5.479 .72 10.63 1.384 15.83 3.1 6.364 2.1 10.46 5.257 12.84 9.851v9.851c-3.708 7.527-13.78 12.34-25.79 12.34-14.33 0-25.96-6.918-31.93-19.04l-.72-1.494L415 280.9l.553 1.439c7.915 19.43 29.61 32.04 55.29 32.04 23.63 0 44.61-11.4 52.3-28.45l.166-25.9-.166-.664c-4.87-11.01-15.22-19.65-28.94-24.24-7.693-2.712-14.34-3.6-20.7-4.427a83.78 83.78 0 0 1 -14.83-2.878c-6.31-1.937-10.4-5.092-12.62-9.63v-8.412C449.5 202.4 458.1 197.7 470.3 197.7zM287.6 311.3h26.07v-68.4H287.6zm352.3-53.3c-2.933-6.254-8.3-12.01-15.44-16.71A37.99 37.99 0 0 0 637.4 226l.166-25.35-.166-.664C630 184 610.7 173.3 589.3 173.3S548.5 184 541.1 199.1l-.166 25.35 .166 .664a39.64 39.64 0 0 0 13.01 15.33c-7.2 4.7-12.51 10.46-15.44 16.71l-.166 28.89 .166 .72c7.582 15.99 27.89 26.73 50.58 26.73s43.06-10.74 50.58-26.73l.166-28.89zm-73.22-50.81c3.6-6.31 12.56-10.52 22.58-10.52s19.04 4.206 22.64 10.52v13.73c-3.542 6.2-12.56 10.35-22.64 10.35s-19.09-4.15-22.58-10.35zm47.32 72.17c-3.764 6.641-13.34 10.9-24.68 10.9-11.13 0-20.98-4.372-24.68-10.9V263.3c3.708-6.309 13.5-10.52 24.68-10.52 11.35 0 20.92 4.15 24.68 10.52zM376.4 265.1l-59.83-89.71h-29v40.62h26.51v.387l62.54 94.08H402.3V176.2H376.4z" - } - }, - "free": [ - "brands" - ] - }, - "nutritionix": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d6", - "label": "Nutritionix", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 400, - 512 - ], - "width": 400, - "height": 512, - "path": "M88 8.1S221.4-.1 209 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zm312 315.6c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48C9.7 419 0 372.2 0 323.7 0 275.3 17.7 229 40 192c42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM120 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM192 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM264 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zM336 428c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm0-66.2c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28zm24-39.6c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S94.8 180.1 56 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z" - } - }, - "free": [ - "brands" - ] - }, - "o": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "4f", - "aliases": { - "unicodes": { - "composite": [ - "6f" - ] - } - }, - "label": "O", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573286, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 32.01c-123.5 0-224 100.5-224 224s100.5 224 224 224s224-100.5 224-224S347.5 32.01 224 32.01zM224 416c-88.22 0-160-71.78-160-160s71.78-159.1 160-159.1s160 71.78 160 159.1S312.2 416 224 416z" - } - }, - "free": [ - "solid" - ] - }, - "object-group": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f247", - "aliases": { - "unicodes": { - "secondary": [ - "10f247" - ] - } - }, - "label": "Object Group", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573286, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H456.6C467.6 12.87 488.3 0 512 0C547.3 0 576 28.65 576 64C576 87.69 563.1 108.4 544 119.4V392.6C563.1 403.6 576 424.3 576 448C576 483.3 547.3 512 512 512C488.3 512 467.6 499.1 456.6 480H119.4C108.4 499.1 87.69 512 64 512C28.65 512 0 483.3 0 448C0 424.3 12.87 403.6 32 392.6V119.4zM119.4 96C113.8 105.7 105.7 113.8 96 119.4V392.6C105.7 398.2 113.8 406.3 119.4 416H456.6C462.2 406.3 470.3 398.2 480 392.6V119.4C470.3 113.8 462.2 105.7 456.6 96H119.4z" - }, - "regular": { - "last_modified": 1658443573088, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M128 160C128 142.3 142.3 128 160 128H288C305.7 128 320 142.3 320 160V256C320 273.7 305.7 288 288 288H160C142.3 288 128 273.7 128 256V160zM288 320C323.3 320 352 291.3 352 256V224H416C433.7 224 448 238.3 448 256V352C448 369.7 433.7 384 416 384H288C270.3 384 256 369.7 256 352V320H288zM48 115.8C38.18 106.1 32 94.22 32 80C32 53.49 53.49 32 80 32C94.22 32 106.1 38.18 115.8 48H460.2C469 38.18 481.8 32 496 32C522.5 32 544 53.49 544 80C544 94.22 537.8 106.1 528 115.8V396.2C537.8 405 544 417.8 544 432C544 458.5 522.5 480 496 480C481.8 480 469 473.8 460.2 464H115.8C106.1 473.8 94.22 480 80 480C53.49 480 32 458.5 32 432C32 417.8 38.18 405 48 396.2V115.8zM96 125.3V386.7C109.6 391.6 120.4 402.4 125.3 416H450.7C455.6 402.4 466.4 391.6 480 386.7V125.3C466.4 120.4 455.6 109.6 450.7 96H125.3C120.4 109.6 109.6 120.4 96 125.3z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "object-ungroup": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f248", - "aliases": { - "unicodes": { - "secondary": [ - "10f248" - ] - } - }, - "label": "Object Ungroup", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573286, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M32 119.4C12.87 108.4 0 87.69 0 64C0 28.65 28.65 0 64 0C87.69 0 108.4 12.87 119.4 32H328.6C339.6 12.87 360.3 0 384 0C419.3 0 448 28.65 448 64C448 87.69 435.1 108.4 416 119.4V232.6C435.1 243.6 448 264.3 448 288C448 323.3 419.3 352 384 352C360.3 352 339.6 339.1 328.6 320H119.4C108.4 339.1 87.69 352 64 352C28.65 352 0 323.3 0 288C0 264.3 12.87 243.6 32 232.6V119.4zM96 119.4V232.6C105.7 238.2 113.8 246.3 119.4 256H328.6C334.2 246.3 342.3 238.2 352 232.6V119.4C342.3 113.8 334.2 105.7 328.6 96H119.4C113.8 105.7 105.7 113.8 96 119.4V119.4zM311.4 480C300.4 499.1 279.7 512 256 512C220.7 512 192 483.3 192 448C192 424.3 204.9 403.6 224 392.6V352H288V392.6C297.7 398.2 305.8 406.3 311.4 416H520.6C526.2 406.3 534.3 398.2 544 392.6V279.4C534.3 273.8 526.2 265.7 520.6 255.1H474.5C469.1 240.6 459.9 227.1 448 216.4V191.1H520.6C531.6 172.9 552.3 159.1 576 159.1C611.3 159.1 640 188.7 640 223.1C640 247.7 627.1 268.4 608 279.4V392.6C627.1 403.6 640 424.3 640 448C640 483.3 611.3 512 576 512C552.3 512 531.6 499.1 520.6 480H311.4z" - }, - "regular": { - "last_modified": 1658443573089, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M64 0C90.86 0 113.9 16.55 123.3 40H324.7C334.1 16.55 357.1 0 384 0C419.3 0 448 28.65 448 64C448 90.86 431.5 113.9 408 123.3V228.7C431.5 238.1 448 261.1 448 288C448 323.3 419.3 352 384 352C357.1 352 334.1 335.5 324.7 312H123.3C113.9 335.5 90.86 352 64 352C28.65 352 0 323.3 0 288C0 261.1 16.55 238.1 40 228.7V123.3C16.55 113.9 0 90.86 0 64C0 28.65 28.65 0 64 0V0zM64 80C72.84 80 80 72.84 80 64C80 56.1 74.28 49.54 66.75 48.24C65.86 48.08 64.94 48 64 48C55.16 48 48 55.16 48 64C48 64.07 48 64.14 48 64.21C48.01 65.07 48.09 65.92 48.24 66.75C49.54 74.28 56.1 80 64 80zM384 48C383.1 48 382.1 48.08 381.2 48.24C373.7 49.54 368 56.1 368 64C368 72.84 375.2 80 384 80C391.9 80 398.5 74.28 399.8 66.75C399.9 65.86 400 64.94 400 64C400 55.16 392.8 48 384 48V48zM324.7 88H123.3C116.9 104 104 116.9 88 123.3V228.7C104 235.1 116.9 247.1 123.3 264H324.7C331.1 247.1 343.1 235.1 360 228.7V123.3C343.1 116.9 331.1 104 324.7 88zM400 288C400 287.1 399.9 286.1 399.8 285.2C398.5 277.7 391.9 272 384 272C375.2 272 368 279.2 368 288C368 295.9 373.7 302.5 381.2 303.8C382.1 303.9 383.1 304 384 304C392.8 304 400 296.8 400 288zM64 272C56.1 272 49.54 277.7 48.24 285.2C48.08 286.1 48 287.1 48 288C48 296.8 55.16 304 64 304L64.22 303.1C65.08 303.1 65.93 303.9 66.75 303.8C74.28 302.5 80 295.9 80 288C80 279.2 72.84 272 64 272zM471.3 248C465.8 235.9 457.8 225.2 448 216.4V200H516.7C526.1 176.5 549.1 160 576 160C611.3 160 640 188.7 640 224C640 250.9 623.5 273.9 600 283.3V388.7C623.5 398.1 640 421.1 640 448C640 483.3 611.3 512 576 512C549.1 512 526.1 495.5 516.7 472H315.3C305.9 495.5 282.9 512 256 512C220.7 512 192 483.3 192 448C192 421.1 208.5 398.1 232 388.7V352H280V388.7C296 395.1 308.9 407.1 315.3 424H516.7C523.1 407.1 535.1 395.1 552 388.7V283.3C535.1 276.9 523.1 264 516.7 248H471.3zM592 224C592 215.2 584.8 208 576 208C575.1 208 574.1 208.1 573.2 208.2C565.7 209.5 560 216.1 560 224C560 232.8 567.2 240 576 240C583.9 240 590.5 234.3 591.8 226.8C591.9 225.9 592 224.9 592 224zM240 448C240 456.8 247.2 464 256 464C256.9 464 257.9 463.9 258.8 463.8C266.3 462.5 272 455.9 272 448C272 439.2 264.8 432 256 432C248.1 432 241.5 437.7 240.2 445.2C240.1 446.1 240 447.1 240 448zM573.2 463.8C574.1 463.9 575.1 464 576 464C584.8 464 592 456.8 592 448C592 447.1 591.9 446.2 591.8 445.3L591.8 445.2C590.5 437.7 583.9 432 576 432C567.2 432 560 439.2 560 448C560 455.9 565.7 462.5 573.2 463.8V463.8z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "octopus-deploy": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e082", - "label": "Octopus Deploy", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M455.6 349.2c-45.89-39.09-36.67-77.88-16.09-128.1C475.2 134 415.1 34.14 329.9 8.3 237-19.6 134.3 24.34 99.68 117.1a180.9 180.9 0 0 0 -10.99 73.54c1.733 29.54 14.72 52.97 24.09 80.3 17.2 50.16-28.1 92.74-66.66 117.6-46.81 30.2-36.32 39.86-8.428 41.86 23.38 1.68 44.48-4.548 65.26-15.05 9.2-4.647 40.69-18.93 45.13-28.59C135.9 413.4 111.1 459.5 126.6 488.9c19.1 36.23 67.11-31.77 76.71-45.81 8.591-12.57 42.96-81.28 63.63-46.93 18.86 31.36 8.6 76.39 35.74 104.6 32.85 34.2 51.15-18.31 51.41-44.22 .163-16.41-6.1-95.85 29.9-59.94C405.4 418 436.9 467.8 472.6 463.6c38.74-4.516-22.12-67.97-28.26-78.69 5.393 4.279 53.67 34.13 53.82 9.52C498.2 375.7 468 359.8 455.6 349.2z" - } - }, - "free": [ - "brands" - ] - }, - "odnoklassniki": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f263", - "label": "Odnoklassniki", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9s94.9-28.9 94.9-28.9c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zM30.3 129.7C30.3 58 88.6 0 160 0s129.7 58 129.7 129.7c0 71.4-58.3 129.4-129.7 129.4s-129.7-58-129.7-129.4zm66 0c0 35.1 28.6 63.7 63.7 63.7s63.7-28.6 63.7-63.7c0-35.4-28.6-64-63.7-64s-63.7 28.6-63.7 64z" - } - }, - "free": [ - "brands" - ] - }, - "oil-can": { - "changes": [ - "5.2.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f613", - "aliases": { - "unicodes": { - "secondary": [ - "10f613" - ] - } - }, - "label": "Oil Can", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573287, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M288 128V160H368.9C378.8 160 388.6 162.3 397.5 166.8L448 192L615 156.2C633.1 152.3 645.7 173.8 633.5 187.7L451.1 394.3C438.1 408.1 421.5 416 403.1 416H144C117.5 416 96 394.5 96 368V346.7L28.51 316.7C11.17 308.1 0 291.8 0 272.8V208C0 181.5 21.49 160 48 160H224V128H192C174.3 128 160 113.7 160 96C160 78.33 174.3 64 192 64H320C337.7 64 352 78.33 352 96C352 113.7 337.7 128 320 128L288 128zM96 208H48V272.8L96 294.1V208z" - } - }, - "free": [ - "solid" - ] - }, - "oil-well": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e532", - "label": "Oil Well", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573287, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M569.8 215.8C581.2 258.5 555.9 302.4 513.2 313.8L497.7 317.9C480.7 322.5 463.1 312.4 458.5 295.3L433.3 201.3L95.1 288.8V448H137.3L190.4 296.3L264.1 276.1L238.7 352H305.3L277.9 273.6L340 257.5L406.7 448H544C561.7 448 576 462.3 576 480C576 497.7 561.7 512 544 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H48V184C48 170.7 58.75 160 72 160C85.25 160 96 170.7 96 184V222.6L228.2 188.4L241.8 149.4C246.3 136.6 258.4 128 272 128C285.6 128 297.7 136.6 302.2 149.4L308.5 167.5L416.8 139.5L392.3 48.04C387.7 30.97 397.8 13.42 414.9 8.848L430.4 4.707C473-6.729 516.9 18.6 528.3 61.28L569.8 215.8zM205.1 448H338.9L327.7 416H216.3L205.1 448z" - } - }, - "free": [ - "solid" - ] - }, - "old-republic": { - "changes": [ - "5.0.12" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f510", - "label": "Old Republic", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M235.8 10.23c7.5-.31 15-.28 22.5-.09 3.61 .14 7.2 .4 10.79 .73 4.92 .27 9.79 1.03 14.67 1.62 2.93 .43 5.83 .98 8.75 1.46 7.9 1.33 15.67 3.28 23.39 5.4 12.24 3.47 24.19 7.92 35.76 13.21 26.56 12.24 50.94 29.21 71.63 49.88 20.03 20.09 36.72 43.55 48.89 69.19 1.13 2.59 2.44 5.1 3.47 7.74 2.81 6.43 5.39 12.97 7.58 19.63 4.14 12.33 7.34 24.99 9.42 37.83 .57 3.14 1.04 6.3 1.4 9.47 .55 3.83 .94 7.69 1.18 11.56 .83 8.34 .84 16.73 .77 25.1-.07 4.97-.26 9.94-.75 14.89-.24 3.38-.51 6.76-.98 10.12-.39 2.72-.63 5.46-1.11 8.17-.9 5.15-1.7 10.31-2.87 15.41-4.1 18.5-10.3 36.55-18.51 53.63-15.77 32.83-38.83 62.17-67.12 85.12a246.5 246.5 0 0 1 -56.91 34.86c-6.21 2.68-12.46 5.25-18.87 7.41-3.51 1.16-7.01 2.38-10.57 3.39-6.62 1.88-13.29 3.64-20.04 5-4.66 .91-9.34 1.73-14.03 2.48-5.25 .66-10.5 1.44-15.79 1.74-6.69 .66-13.41 .84-20.12 .81-6.82 .03-13.65-.12-20.45-.79-3.29-.23-6.57-.5-9.83-.95-2.72-.39-5.46-.63-8.17-1.11-4.12-.72-8.25-1.37-12.35-2.22-4.25-.94-8.49-1.89-12.69-3.02-8.63-2.17-17.08-5.01-25.41-8.13-10.49-4.12-20.79-8.75-30.64-14.25-2.14-1.15-4.28-2.29-6.35-3.57-11.22-6.58-21.86-14.1-31.92-22.34-34.68-28.41-61.41-66.43-76.35-108.7-3.09-8.74-5.71-17.65-7.8-26.68-1.48-6.16-2.52-12.42-3.58-18.66-.4-2.35-.61-4.73-.95-7.09-.6-3.96-.75-7.96-1.17-11.94-.8-9.47-.71-18.99-.51-28.49 .14-3.51 .34-7.01 .7-10.51 .31-3.17 .46-6.37 .92-9.52 .41-2.81 .65-5.65 1.16-8.44 .7-3.94 1.3-7.9 2.12-11.82 3.43-16.52 8.47-32.73 15.26-48.18 1.15-2.92 2.59-5.72 3.86-8.59 8.05-16.71 17.9-32.56 29.49-47.06 20-25.38 45.1-46.68 73.27-62.47 7.5-4.15 15.16-8.05 23.07-11.37 15.82-6.88 32.41-11.95 49.31-15.38 3.51-.67 7.04-1.24 10.56-1.85 2.62-.47 5.28-.7 7.91-1.08 3.53-.53 7.1-.68 10.65-1.04 2.46-.24 4.91-.36 7.36-.51m8.64 24.41c-9.23 .1-18.43 .99-27.57 2.23-7.3 1.08-14.53 2.6-21.71 4.3-13.91 3.5-27.48 8.34-40.46 14.42-10.46 4.99-20.59 10.7-30.18 17.22-4.18 2.92-8.4 5.8-12.34 9.03-5.08 3.97-9.98 8.17-14.68 12.59-2.51 2.24-4.81 4.7-7.22 7.06-28.22 28.79-48.44 65.39-57.5 104.7-2.04 8.44-3.54 17.02-4.44 25.65-1.1 8.89-1.44 17.85-1.41 26.8 .11 7.14 .38 14.28 1.22 21.37 .62 7.12 1.87 14.16 3.2 21.18 1.07 4.65 2.03 9.32 3.33 13.91 6.29 23.38 16.5 45.7 30.07 65.75 8.64 12.98 18.78 24.93 29.98 35.77 16.28 15.82 35.05 29.04 55.34 39.22 7.28 3.52 14.66 6.87 22.27 9.63 5.04 1.76 10.06 3.57 15.22 4.98 11.26 3.23 22.77 5.6 34.39 7.06 2.91 .29 5.81 .61 8.72 .9 13.82 1.08 27.74 1 41.54-.43 4.45-.6 8.92-.99 13.35-1.78 3.63-.67 7.28-1.25 10.87-2.1 4.13-.98 8.28-1.91 12.36-3.07 26.5-7.34 51.58-19.71 73.58-36.2 15.78-11.82 29.96-25.76 42.12-41.28 3.26-4.02 6.17-8.31 9.13-12.55 3.39-5.06 6.58-10.25 9.6-15.54 2.4-4.44 4.74-8.91 6.95-13.45 5.69-12.05 10.28-24.62 13.75-37.49 2.59-10.01 4.75-20.16 5.9-30.45 1.77-13.47 1.94-27.1 1.29-40.65-.29-3.89-.67-7.77-1-11.66-2.23-19.08-6.79-37.91-13.82-55.8-5.95-15.13-13.53-29.63-22.61-43.13-12.69-18.8-28.24-35.68-45.97-49.83-25.05-20-54.47-34.55-85.65-42.08-7.78-1.93-15.69-3.34-23.63-4.45-3.91-.59-7.85-.82-11.77-1.24-7.39-.57-14.81-.72-22.22-.58zM139.3 83.53c13.3-8.89 28.08-15.38 43.3-20.18-3.17 1.77-6.44 3.38-9.53 5.29-11.21 6.68-21.52 14.9-30.38 24.49-6.8 7.43-12.76 15.73-17.01 24.89-3.29 6.86-5.64 14.19-6.86 21.71-.93 4.85-1.3 9.81-1.17 14.75 .13 13.66 4.44 27.08 11.29 38.82 5.92 10.22 13.63 19.33 22.36 27.26 4.85 4.36 10.24 8.09 14.95 12.6 2.26 2.19 4.49 4.42 6.43 6.91 2.62 3.31 4.89 6.99 5.99 11.1 .9 3.02 .66 6.2 .69 9.31 .02 4.1-.04 8.2 .03 12.3 .14 3.54-.02 7.09 .11 10.63 .08 2.38 .02 4.76 .05 7.14 .16 5.77 .06 11.53 .15 17.3 .11 2.91 .02 5.82 .13 8.74 .03 1.63 .13 3.28-.03 4.91-.91 .12-1.82 .18-2.73 .16-10.99 0-21.88-2.63-31.95-6.93-6-2.7-11.81-5.89-17.09-9.83-5.75-4.19-11.09-8.96-15.79-14.31-6.53-7.24-11.98-15.39-16.62-23.95-1.07-2.03-2.24-4.02-3.18-6.12-1.16-2.64-2.62-5.14-3.67-7.82-4.05-9.68-6.57-19.94-8.08-30.31-.49-4.44-1.09-8.88-1.2-13.35-.7-15.73 .84-31.55 4.67-46.82 2.12-8.15 4.77-16.18 8.31-23.83 6.32-14.2 15.34-27.18 26.3-38.19 6.28-6.2 13.13-11.84 20.53-16.67zm175.4-20.12c2.74 .74 5.41 1.74 8.09 2.68 6.36 2.33 12.68 4.84 18.71 7.96 13.11 6.44 25.31 14.81 35.82 24.97 10.2 9.95 18.74 21.6 25.14 34.34 1.28 2.75 2.64 5.46 3.81 8.26 6.31 15.1 10 31.26 11.23 47.57 .41 4.54 .44 9.09 .45 13.64 .07 11.64-1.49 23.25-4.3 34.53-1.97 7.27-4.35 14.49-7.86 21.18-3.18 6.64-6.68 13.16-10.84 19.24-6.94 10.47-15.6 19.87-25.82 27.22-10.48 7.64-22.64 13.02-35.4 15.38-3.51 .69-7.08 1.08-10.66 1.21-1.85 .06-3.72 .16-5.56-.1-.28-2.15 0-4.31-.01-6.46-.03-3.73 .14-7.45 .1-11.17 .19-7.02 .02-14.05 .21-21.07 .03-2.38-.03-4.76 .03-7.14 .17-5.07-.04-10.14 .14-15.21 .1-2.99-.24-6.04 .51-8.96 .66-2.5 1.78-4.86 3.09-7.08 4.46-7.31 11.06-12.96 17.68-18.26 5.38-4.18 10.47-8.77 15.02-13.84 7.68-8.37 14.17-17.88 18.78-28.27 2.5-5.93 4.52-12.1 5.55-18.46 .86-4.37 1.06-8.83 1.01-13.27-.02-7.85-1.4-15.65-3.64-23.17-1.75-5.73-4.27-11.18-7.09-16.45-3.87-6.93-8.65-13.31-13.96-19.2-9.94-10.85-21.75-19.94-34.6-27.1-1.85-1.02-3.84-1.82-5.63-2.97zm-100.8 58.45c.98-1.18 1.99-2.33 3.12-3.38-.61 .93-1.27 1.81-1.95 2.68-3.1 3.88-5.54 8.31-7.03 13.06-.87 3.27-1.68 6.6-1.73 10-.07 2.52-.08 5.07 .32 7.57 1.13 7.63 4.33 14.85 8.77 21.12 2 2.7 4.25 5.27 6.92 7.33 1.62 1.27 3.53 2.09 5.34 3.05 3.11 1.68 6.32 3.23 9.07 5.48 2.67 2.09 4.55 5.33 4.4 8.79-.01 73.67 0 147.3-.01 221 0 1.35-.08 2.7 .04 4.04 .13 1.48 .82 2.83 1.47 4.15 .86 1.66 1.78 3.34 3.18 4.62 .85 .77 1.97 1.4 3.15 1.24 1.5-.2 2.66-1.35 3.45-2.57 .96-1.51 1.68-3.16 2.28-4.85 .76-2.13 .44-4.42 .54-6.63 .14-4.03-.02-8.06 .14-12.09 .03-5.89 .03-11.77 .06-17.66 .14-3.62 .03-7.24 .11-10.86 .15-4.03-.02-8.06 .14-12.09 .03-5.99 .03-11.98 .07-17.97 .14-3.62 .02-7.24 .11-10.86 .14-3.93-.02-7.86 .14-11.78 .03-5.99 .03-11.98 .06-17.97 .16-3.94-.01-7.88 .19-11.82 .29 1.44 .13 2.92 .22 4.38 .19 3.61 .42 7.23 .76 10.84 .32 3.44 .44 6.89 .86 10.32 .37 3.1 .51 6.22 .95 9.31 .57 4.09 .87 8.21 1.54 12.29 1.46 9.04 2.83 18.11 5.09 26.99 1.13 4.82 2.4 9.61 4 14.3 2.54 7.9 5.72 15.67 10.31 22.62 1.73 2.64 3.87 4.98 6.1 7.21 .27 .25 .55 .51 .88 .71 .6 .25 1.31-.07 1.7-.57 .71-.88 1.17-1.94 1.7-2.93 4.05-7.8 8.18-15.56 12.34-23.31 .7-1.31 1.44-2.62 2.56-3.61 1.75-1.57 3.84-2.69 5.98-3.63 2.88-1.22 5.9-2.19 9.03-2.42 6.58-.62 13.11 .75 19.56 1.85 3.69 .58 7.4 1.17 11.13 1.41 3.74 .1 7.48 .05 11.21-.28 8.55-.92 16.99-2.96 24.94-6.25 5.3-2.24 10.46-4.83 15.31-7.93 11.46-7.21 21.46-16.57 30.04-27.01 1.17-1.42 2.25-2.9 3.46-4.28-1.2 3.24-2.67 6.37-4.16 9.48-1.25 2.9-2.84 5.61-4.27 8.42-5.16 9.63-11.02 18.91-17.75 27.52-4.03 5.21-8.53 10.05-13.33 14.57-6.64 6.05-14.07 11.37-22.43 14.76-8.21 3.37-17.31 4.63-26.09 3.29-3.56-.58-7.01-1.69-10.41-2.88-2.79-.97-5.39-2.38-8.03-3.69-3.43-1.71-6.64-3.81-9.71-6.08 2.71 3.06 5.69 5.86 8.7 8.61 4.27 3.76 8.74 7.31 13.63 10.23 3.98 2.45 8.29 4.4 12.84 5.51 1.46 .37 2.96 .46 4.45 .6-1.25 1.1-2.63 2.04-3.99 2.98-9.61 6.54-20.01 11.86-30.69 16.43-20.86 8.7-43.17 13.97-65.74 15.34-4.66 .24-9.32 .36-13.98 .36-4.98-.11-9.97-.13-14.92-.65-11.2-.76-22.29-2.73-33.17-5.43-10.35-2.71-20.55-6.12-30.3-10.55-8.71-3.86-17.12-8.42-24.99-13.79-1.83-1.31-3.74-2.53-5.37-4.08 6.6-1.19 13.03-3.39 18.99-6.48 5.74-2.86 10.99-6.66 15.63-11.07 2.24-2.19 4.29-4.59 6.19-7.09-3.43 2.13-6.93 4.15-10.62 5.78-4.41 2.16-9.07 3.77-13.81 5.02-5.73 1.52-11.74 1.73-17.61 1.14-8.13-.95-15.86-4.27-22.51-8.98-4.32-2.94-8.22-6.43-11.96-10.06-9.93-10.16-18.2-21.81-25.66-33.86-3.94-6.27-7.53-12.75-11.12-19.22-1.05-2.04-2.15-4.05-3.18-6.1 2.85 2.92 5.57 5.97 8.43 8.88 8.99 8.97 18.56 17.44 29.16 24.48 7.55 4.9 15.67 9.23 24.56 11.03 3.11 .73 6.32 .47 9.47 .81 2.77 .28 5.56 .2 8.34 .3 5.05 .06 10.11 .04 15.16-.16 3.65-.16 7.27-.66 10.89-1.09 2.07-.25 4.11-.71 6.14-1.2 3.88-.95 8.11-.96 11.83 .61 4.76 1.85 8.44 5.64 11.38 9.71 2.16 3.02 4.06 6.22 5.66 9.58 1.16 2.43 2.46 4.79 3.55 7.26 1 2.24 2.15 4.42 3.42 6.52 .67 1.02 1.4 2.15 2.62 2.55 1.06-.75 1.71-1.91 2.28-3.03 2.1-4.16 3.42-8.65 4.89-13.05 2.02-6.59 3.78-13.27 5.19-20.02 2.21-9.25 3.25-18.72 4.54-28.13 .56-3.98 .83-7.99 1.31-11.97 .87-10.64 1.9-21.27 2.24-31.94 .08-1.86 .24-3.71 .25-5.57 .01-4.35 .25-8.69 .22-13.03-.01-2.38-.01-4.76 0-7.13 .05-5.07-.2-10.14-.22-15.21-.2-6.61-.71-13.2-1.29-19.78-.73-5.88-1.55-11.78-3.12-17.51-2.05-7.75-5.59-15.03-9.8-21.82-3.16-5.07-6.79-9.88-11.09-14.03-3.88-3.86-8.58-7.08-13.94-8.45-1.5-.41-3.06-.45-4.59-.64 .07-2.99 .7-5.93 1.26-8.85 1.59-7.71 3.8-15.3 6.76-22.6 1.52-4.03 3.41-7.9 5.39-11.72 3.45-6.56 7.62-12.79 12.46-18.46zm31.27 1.7c.35-.06 .71-.12 1.07-.19 .19 1.79 .09 3.58 .1 5.37v38.13c-.01 1.74 .13 3.49-.15 5.22-.36-.03-.71-.05-1.06-.05-.95-3.75-1.72-7.55-2.62-11.31-.38-1.53-.58-3.09-1.07-4.59-1.7-.24-3.43-.17-5.15-.2-5.06-.01-10.13 0-15.19-.01-1.66-.01-3.32 .09-4.98-.03-.03-.39-.26-.91 .16-1.18 1.28-.65 2.72-.88 4.06-1.35 3.43-1.14 6.88-2.16 10.31-3.31 1.39-.48 2.9-.72 4.16-1.54 .04-.56 .02-1.13-.05-1.68-1.23-.55-2.53-.87-3.81-1.28-3.13-1.03-6.29-1.96-9.41-3.02-1.79-.62-3.67-1-5.41-1.79-.03-.37-.07-.73-.11-1.09 5.09-.19 10.2 .06 15.3-.12 3.36-.13 6.73 .08 10.09-.07 .12-.39 .26-.77 .37-1.16 1.08-4.94 2.33-9.83 3.39-14.75zm5.97-.2c.36 .05 .72 .12 1.08 .2 .98 3.85 1.73 7.76 2.71 11.61 .36 1.42 .56 2.88 1.03 4.27 2.53 .18 5.07-.01 7.61 .05 5.16 .12 10.33 .12 15.49 .07 .76-.01 1.52 .03 2.28 .08-.04 .36-.07 .72-.1 1.08-1.82 .83-3.78 1.25-5.67 1.89-3.73 1.23-7.48 2.39-11.22 3.57-.57 .17-1.12 .42-1.67 .64-.15 .55-.18 1.12-.12 1.69 .87 .48 1.82 .81 2.77 1.09 4.88 1.52 9.73 3.14 14.63 4.6 .38 .13 .78 .27 1.13 .49 .4 .27 .23 .79 .15 1.18-1.66 .13-3.31 .03-4.97 .04-5.17 .01-10.33-.01-15.5 .01-1.61 .03-3.22-.02-4.82 .21-.52 1.67-.72 3.42-1.17 5.11-.94 3.57-1.52 7.24-2.54 10.78-.36 .01-.71 .02-1.06 .06-.29-1.73-.15-3.48-.15-5.22v-38.13c.02-1.78-.08-3.58 .11-5.37zM65.05 168.3c1.12-2.15 2.08-4.4 3.37-6.46-1.82 7.56-2.91 15.27-3.62 23-.8 7.71-.85 15.49-.54 23.23 1.05 19.94 5.54 39.83 14.23 57.88 2.99 5.99 6.35 11.83 10.5 17.11 6.12 7.47 12.53 14.76 19.84 21.09 4.8 4.1 9.99 7.78 15.54 10.8 3.27 1.65 6.51 3.39 9.94 4.68 5.01 2.03 10.19 3.61 15.42 4.94 3.83 .96 7.78 1.41 11.52 2.71 5 1.57 9.47 4.61 13.03 8.43 4.93 5.23 8.09 11.87 10.2 18.67 .99 2.9 1.59 5.91 2.17 8.92 .15 .75 .22 1.52 .16 2.29-6.5 2.78-13.26 5.06-20.26 6.18-4.11 .78-8.29 .99-12.46 1.08-10.25 .24-20.47-1.76-30.12-5.12-3.74-1.42-7.49-2.85-11.03-4.72-8.06-3.84-15.64-8.7-22.46-14.46-2.92-2.55-5.83-5.13-8.4-8.03-9.16-9.83-16.3-21.41-21.79-33.65-2.39-5.55-4.61-11.18-6.37-16.96-1.17-3.94-2.36-7.89-3.26-11.91-.75-2.94-1.22-5.95-1.87-8.92-.46-2.14-.69-4.32-1.03-6.48-.85-5.43-1.28-10.93-1.33-16.43 .11-6.18 .25-12.37 1.07-18.5 .4-2.86 .67-5.74 1.15-8.6 .98-5.7 2.14-11.37 3.71-16.93 3.09-11.65 7.48-22.95 12.69-33.84zm363.7-6.44c1.1 1.66 1.91 3.48 2.78 5.26 2.1 4.45 4.24 8.9 6.02 13.49 7.61 18.76 12.3 38.79 13.04 59.05 .02 1.76 .07 3.52 .11 5.29 .13 9.57-1.27 19.09-3.18 28.45-.73 3.59-1.54 7.17-2.58 10.69-4.04 14.72-10 29-18.41 41.78-8.21 12.57-19.01 23.55-31.84 31.41-5.73 3.59-11.79 6.64-18.05 9.19-5.78 2.19-11.71 4.03-17.8 5.11-6.4 1.05-12.91 1.52-19.4 1.23-7.92-.48-15.78-2.07-23.21-4.85-1.94-.8-3.94-1.46-5.84-2.33-.21-1.51 .25-2.99 .53-4.46 1.16-5.74 3.03-11.36 5.7-16.58 2.37-4.51 5.52-8.65 9.46-11.9 2.43-2.05 5.24-3.61 8.16-4.83 3.58-1.5 7.47-1.97 11.24-2.83 7.23-1.71 14.37-3.93 21.15-7 10.35-4.65 19.71-11.38 27.65-19.46 1.59-1.61 3.23-3.18 4.74-4.87 3.37-3.76 6.71-7.57 9.85-11.53 7.48-10.07 12.82-21.59 16.71-33.48 1.58-5.3 3.21-10.6 4.21-16.05 .63-2.87 1.04-5.78 1.52-8.68 .87-6.09 1.59-12.22 1.68-18.38 .12-6.65 .14-13.32-.53-19.94-.73-7.99-1.87-15.96-3.71-23.78z" - } - }, - "free": [ - "brands" - ] - }, - "om": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f679", - "aliases": { - "unicodes": { - "composite": [ - "1f549" - ], - "secondary": [ - "10f679" - ] - } - }, - "label": "Om", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573288, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M360.6 61C362.5 62.88 365.2 64 368 64s5.375-1.125 7.375-3l21.5-21.62C398.9 37.38 400 34.75 400 32s-1.125-5.375-3.125-7.375L375.4 3c-4.125-4-10.75-4-14.75 0L339 24.62C337 26.62 336 29.25 336 32s1 5.375 3 7.375L360.6 61zM412.1 191.1c-26.75 0-51.75 10.38-70.63 29.25l-24.25 24.25c-6.75 6.75-15.75 10.5-25.37 10.5H245c10.5-22.12 14.12-48.12 7.75-75.25C242.6 138.2 206.4 104.6 163.2 97.62c-36.25-6-71 5-96 28.75c-7.375 7-7 18.87 1.125 24.87L94.5 170.9c5.75 4.375 13.62 4.375 19.12-.125C122.1 163.8 132.8 159.1 144 159.1c26.38 0 48 21.5 48 48S170.4 255.9 143.1 255.9L112 255.1c-11.88 0-19.75 12.63-14.38 23.25L113.8 311.5C116.2 316.5 121.4 319.5 126.9 320H160c35.25 0 64 28.75 64 64s-28.75 64-64 64c-96.12 0-122.4-53.1-145.2-92C10.25 348.4 0 352.4 0 361.2C-.125 416 41.12 512 160 512c70.5 0 127.1-57.44 127.1-128.1c0-23.38-6.874-45.06-17.87-63.94h21.75c26.62 0 51.75-10.38 70.63-29.25l24.25-24.25c6.75-6.75 15.75-10.5 25.37-10.5C431.9 255.1 448 272.1 448 291.9V392c0 13.25-18.75 24-32 24c-39.38 0-66.75-24.25-81.88-42.88C329.4 367.2 320 370.6 320 378.1V416c0 0 0 64 96 64c48.5 0 96-39.5 96-88V291.9C512 236.8 467.3 191.1 412.1 191.1zM454.3 67.25c-85.5 65.13-169 2.751-172.5 .125c-6-4.625-14.5-4.375-20.13 .5C255.9 72.75 254.3 81 257.9 87.63C259.5 90.63 298.2 160 376.8 160c79.88 0 98.75-31.38 101.8-37.63C479.5 120.2 480 117.9 480 115.5V80C480 66.75 464.9 59.25 454.3 67.25z" - } - }, - "free": [ - "solid" - ] - }, - "opencart": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f23d", - "label": "OpenCart", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572488, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M423.3 440.7c0 25.3-20.3 45.6-45.6 45.6s-45.8-20.3-45.8-45.6 20.6-45.8 45.8-45.8c25.4 0 45.6 20.5 45.6 45.8zm-253.9-45.8c-25.3 0-45.6 20.6-45.6 45.8s20.3 45.6 45.6 45.6 45.8-20.3 45.8-45.6-20.5-45.8-45.8-45.8zm291.7-270C158.9 124.9 81.9 112.1 0 25.7c34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z" - } - }, - "free": [ - "brands" - ] - }, - "openid": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f19b", - "label": "OpenID", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z" - } - }, - "free": [ - "brands" - ] - }, - "opera": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f26a", - "label": "Opera", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M313.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3C104.6 489.6 0 381.1 0 248 0 111 111 0 248 0h.8c63.1 .3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zm101.8 397.7c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z" - } - }, - "free": [ - "brands" - ] - }, - "optin-monster": { - "changes": [ - "4.4.0", - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f23c", - "label": "Optin Monster", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M572.6 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7 .3-6.5 .3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6V256c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60C341 49.6 242.9 55.5 166.4 71.7c19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8 .9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8 .5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4 .5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2v19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3 .5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1 .2-3.7-.7-7.2-1.7-10.7zm-73.8-254c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3 .3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1 .5-8.1 .8-11.6 .8-1.9-21.9-6.8-44-14.3-64.6 3.7 .3 8.1 .3 11.8 .3zM47.5 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1 .8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53v.3l12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-162.7c41.9 0 76.2 34 76.2 75.9 0 42.2-34.3 76.2-76.2 76.2s-76.2-34-76.2-76.2c0-41.8 34.3-75.9 76.2-75.9zm115.6 174.3c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3 .3 26.6 .3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1v.3c18.9-.3 38.1-.3 57 0zM278.3 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8v.3c1.1 8.3 3.3 51.2-1.3 53.7zm-106.5-51.1c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6 .8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zm-21.6 172.5c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5h.3c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3 .3v-.3h.3c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2 .8 2.2 .8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8 .3 1.9 .5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3 .9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM372.9 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM74.8 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zm215.9-176.2c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM478.8 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5 .9-8.4-20.2-23.5-29.1-25.1z" - } - }, - "free": [ - "brands" - ] - }, - "orcid": { - "changes": [ - "5.11.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f8d2", - "label": "ORCID", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M294.8 188.2h-45.92V342h47.47c67.62 0 83.12-51.34 83.12-76.91 0-41.64-26.54-76.9-84.67-76.9zM256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm-80.79 360.8h-29.84v-207.5h29.84zm-14.92-231.1a19.57 19.57 0 1 1 19.57-19.57 19.64 19.64 0 0 1 -19.57 19.57zM300 369h-81V161.3h80.6c76.73 0 110.4 54.83 110.4 103.8C410 318.4 368.4 369 300 369z" - } - }, - "free": [ - "brands" - ] - }, - "osi": { - "changes": [ - "5.0.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f41a", - "label": "Open Source Initiative", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M8 266.4C10.3 130.6 105.4 34 221.8 18.34c138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7q-26.7-69.45-53.4-139c-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8a71.47 71.47 0 0 0 -64.5-82.2c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4q-26.85 69.9-53.7 139.9c-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6 .6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4 .8 5.6-2.3q22.35-58.65 45-117.3c1.3-3.3 .6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6a91.64 91.64 0 0 1 45.2 90.4c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6q22.8 58.8 45.2 117.7c1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z" - } - }, - "free": [ - "brands" - ] - }, - "otter": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f700", - "aliases": { - "unicodes": { - "composite": [ - "1f9a6" - ], - "secondary": [ - "10f700" - ] - } - }, - "label": "Otter", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573288, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M224 160c8.836 0 16-7.164 16-16C240 135.2 232.8 128 224 128S208 135.2 208 144C208 152.8 215.2 160 224 160zM96 128C87.16 128 80 135.2 80 144C80 152.8 87.16 160 96 160s16-7.164 16-16C112 135.2 104.8 128 96 128zM474.4 64.12C466.8 63.07 460 69.07 460 76.73c0 5.959 4.188 10.1 9.991 12.36C514.2 99.46 544 160 544 192v112c0 8.844-7.156 16-16 16S512 312.8 512 304V212c0-14.87-15.65-24.54-28.94-17.89c-28.96 14.48-47.83 42.99-50.51 74.88C403.7 285.6 384 316.3 384 352v32H224c17.67 0 32-14.33 32-32c0-17.67-14.33-32-32-32H132.4c-14.46 0-27.37-9.598-31.08-23.57C97.86 283.5 96 269.1 96 256V254.4C101.1 255.3 106.3 256 111.7 256c10.78 0 21.45-2.189 31.36-6.436L160 242.3l16.98 7.271C186.9 253.8 197.6 256 208.3 256c7.176 0 14.11-.9277 20.83-2.426C241.7 292 277.4 320 320 320l36.56-.0366C363.1 294.7 377.1 272.7 396.2 256H320c0-25.73 17.56-31.61 32.31-32C369.8 223.8 384 209.6 384 192c0-17.67-14.31-32-32-32c-15.09 0-32.99 4.086-49.28 13.06C303.3 168.9 304 164.7 304 160.3v-16c0-1.684-.4238-3.248-.4961-4.912C313.2 133.9 320 123.9 320 112C320 103.2 312.8 96 304 96H292.7C274.6 58.26 236.3 32 191.7 32H128.3C83.68 32 45.44 58.26 27.33 96H16C7.164 96 0 103.2 0 112c0 11.93 6.816 21.93 16.5 27.43C16.42 141.1 16 142.7 16 144.3v16c0 19.56 5.926 37.71 16 52.86V256c0 123.7 100.3 224 224 224h160c123.9-1.166 224-101.1 224-226.2C639.9 156.9 567.8 76.96 474.4 64.12zM64 160.3v-16C64 108.9 92.86 80 128.3 80h63.32C227.1 80 256 108.9 256 144.3v16C256 186.6 234.6 208 208.3 208c-4.309 0-8.502-.8608-12.46-2.558L162.1 191.4c2.586-.3066 5.207-.543 7.598-1.631l8.314-3.777C186.9 182.3 192 174.9 192 166.7V160c0-6.723-5.996-12.17-13.39-12.17H141.4C133.1 147.8 128 153.3 128 160v6.701c0 8.15 5.068 15.6 13.09 19.25l8.314 3.777c2.391 1.088 5.012 1.324 7.598 1.631l-32.88 14.08C120.2 207.1 115.1 208 111.7 208C85.38 208 64 186.6 64 160.3z" - } - }, - "free": [ - "solid" - ] - }, - "outdent": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f03b", - "aliases": { - "names": [ - "dedent" - ], - "unicodes": { - "secondary": [ - "10f03b" - ] - } - }, - "label": "Outdent", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573288, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 64C32 46.33 46.33 32 64 32H448C465.7 32 480 46.33 480 64C480 81.67 465.7 96 448 96H64C46.33 96 32 81.67 32 64V64zM224 192C224 174.3 238.3 160 256 160H448C465.7 160 480 174.3 480 192C480 209.7 465.7 224 448 224H256C238.3 224 224 209.7 224 192zM448 288C465.7 288 480 302.3 480 320C480 337.7 465.7 352 448 352H256C238.3 352 224 337.7 224 320C224 302.3 238.3 288 256 288H448zM32 448C32 430.3 46.33 416 64 416H448C465.7 416 480 430.3 480 448C480 465.7 465.7 480 448 480H64C46.33 480 32 465.7 32 448V448zM32.24 268.6C24 262.2 24 249.8 32.24 243.4L134.2 164.1C144.7 155.9 160 163.4 160 176.7V335.3C160 348.6 144.7 356.1 134.2 347.9L32.24 268.6z" - } - }, - "free": [ - "solid" - ] - }, - "p": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "50", - "aliases": { - "unicodes": { - "composite": [ - "70" - ] - } - }, - "label": "P", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573288, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M160 32.01H32c-17.69 0-32 14.33-32 32v384c0 17.67 14.31 32 32 32s32-14.33 32-32v-96h96c88.22 0 160-71.78 160-159.1S248.2 32.01 160 32.01zM160 288H64V96.01h96c52.94 0 96 43.06 96 96S212.9 288 160 288z" - } - }, - "free": [ - "solid" - ] - }, - "padlet": { - "changes": [ - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e4a0", - "label": "Padlet", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M297.9 0L298 .001C305.6 .1078 312.4 4.72 315.5 11.78L447.5 320.3L447.8 320.2L448 320.6L445.2 330.6L402.3 488.6C398.6 504.8 382.6 514.9 366.5 511.2L298.1 495.6L229.6 511.2C213.5 514.9 197.5 504.8 193.8 488.6L150.9 330.6L148.2 320.6L148.3 320.2L280.4 11.78C283.4 4.797 290.3 .1837 297.9 .0006L297.9 0zM160.1 322.1L291.1 361.2L298 483.7L305.9 362.2L436.5 322.9L436.7 322.8L305.7 347.9L297.1 27.72L291.9 347.9L160.1 322.1zM426 222.6L520.4 181.6H594.2L437.2 429.2L468.8 320.2L426 222.6zM597.5 181.4L638.9 257.6C642.9 265.1 635 273.5 627.3 269.8L579.7 247.1L597.5 181.4zM127.3 318.5L158.7 430L1.61 154.5C-4.292 144.1 7.128 132.5 17.55 138.3L169.4 222.5L127.3 318.5z" - } - }, - "free": [ - "brands" - ] - }, - "page4": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d7", - "label": "page4 Corporation", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 504C111 504 0 393 0 256S111 8 248 8c20.9 0 41.3 2.6 60.7 7.5L42.3 392H248v112zm0-143.6V146.8L98.6 360.4H248zm96 31.6v92.7c45.7-19.2 84.5-51.7 111.4-92.7H344zm57.4-138.2l-21.2 8.4 21.2 8.3v-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9v7.7h16.2v-10c0-5.9-2.3-10.6-8.2-10.6zM496 256c0 37.3-8.2 72.7-23 104.4H344V27.3C433.3 64.8 496 153.1 496 256zM360.4 143.6h68.2V96h-13.9v32.6h-13.9V99h-13.9v29.6h-12.7V96h-13.9v47.6zm68.1 185.3H402v-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9v25.3h68.2v-15zm0-103l-68.2 29.7V268l68.2 29.5v-16.6l-14.4-5.7v-26.5l14.4-5.9v-16.9zm-4.8-68.5h-35.6V184H402v-12.2h11c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z" - } - }, - "free": [ - "brands" - ] - }, - "pagelines": { - "changes": [ - "4.0.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f18c", - "label": "Pagelines", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4 .5 1.6 .5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z" - } - }, - "free": [ - "brands" - ] - }, - "pager": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f815", - "aliases": { - "unicodes": { - "composite": [ - "1f4df" - ], - "secondary": [ - "10f815" - ] - } - }, - "label": "Pager", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573288, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 64H64C28.63 64 0 92.63 0 128v256c0 35.38 28.62 64 64 64h384c35.38 0 64-28.62 64-64V128C512 92.63 483.4 64 448 64zM160 368H80C71.13 368 64 360.9 64 352v-16C64 327.1 71.13 320 80 320H160V368zM288 352c0 8.875-7.125 16-16 16H192V320h80c8.875 0 16 7.125 16 16V352zM448 224c0 17.62-14.38 32-32 32H96C78.38 256 64 241.6 64 224V160c0-17.62 14.38-32 32-32h320c17.62 0 32 14.38 32 32V224z" - } - }, - "free": [ - "solid" - ] - }, - "paint-roller": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5aa", - "aliases": { - "unicodes": { - "secondary": [ - "10f5aa" - ] - } - }, - "label": "Paint Roller", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573288, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H352C387.3 0 416 28.65 416 64V128C416 163.3 387.3 192 352 192H64C28.65 192 0 163.3 0 128V64zM160 352C160 334.3 174.3 320 192 320V304C192 259.8 227.8 224 272 224H416C433.7 224 448 209.7 448 192V69.46C485.3 82.64 512 118.2 512 160V192C512 245 469 288 416 288H272C263.2 288 256 295.2 256 304V320C273.7 320 288 334.3 288 352V480C288 497.7 273.7 512 256 512H192C174.3 512 160 497.7 160 480V352z" - } - }, - "free": [ - "solid" - ] - }, - "paintbrush": { - "changes": [ - "4.2.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1fc", - "aliases": { - "names": [ - "paint-brush" - ], - "unicodes": { - "composite": [ - "1f58c" - ], - "secondary": [ - "10f1fc" - ] - } - }, - "label": "Paint Brush", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573289, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M224 263.3C224.2 233.3 238.4 205.2 262.4 187.2L499.1 9.605C517.7-4.353 543.6-2.965 560.7 12.9C577.7 28.76 580.8 54.54 568.2 74.07L406.5 324.1C391.3 347.7 366.6 363.2 339.3 367.1L224 263.3zM320 400C320 461.9 269.9 512 208 512H64C46.33 512 32 497.7 32 480C32 462.3 46.33 448 64 448H68.81C86.44 448 98.4 429.1 96.59 411.6C96.2 407.8 96 403.9 96 400C96 339.6 143.9 290.3 203.7 288.1L319.8 392.5C319.9 394.1 320 397.5 320 400V400z" - } - }, - "free": [ - "solid" - ] - }, - "palette": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f53f", - "aliases": { - "unicodes": { - "composite": [ - "1f3a8" - ], - "secondary": [ - "10f53f" - ] - } - }, - "label": "Palette", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573289, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 255.1C512 256.9 511.1 257.8 511.1 258.7C511.6 295.2 478.4 319.1 441.9 319.1H344C317.5 319.1 296 341.5 296 368C296 371.4 296.4 374.7 297 377.9C299.2 388.1 303.5 397.1 307.9 407.8C313.9 421.6 320 435.3 320 449.8C320 481.7 298.4 510.5 266.6 511.8C263.1 511.9 259.5 512 256 512C114.6 512 0 397.4 0 256C0 114.6 114.6 0 256 0C397.4 0 512 114.6 512 256V255.1zM96 255.1C78.33 255.1 64 270.3 64 287.1C64 305.7 78.33 319.1 96 319.1C113.7 319.1 128 305.7 128 287.1C128 270.3 113.7 255.1 96 255.1zM128 191.1C145.7 191.1 160 177.7 160 159.1C160 142.3 145.7 127.1 128 127.1C110.3 127.1 96 142.3 96 159.1C96 177.7 110.3 191.1 128 191.1zM256 63.1C238.3 63.1 224 78.33 224 95.1C224 113.7 238.3 127.1 256 127.1C273.7 127.1 288 113.7 288 95.1C288 78.33 273.7 63.1 256 63.1zM384 191.1C401.7 191.1 416 177.7 416 159.1C416 142.3 401.7 127.1 384 127.1C366.3 127.1 352 142.3 352 159.1C352 177.7 366.3 191.1 384 191.1z" - } - }, - "free": [ - "solid" - ] - }, - "palfed": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d8", - "label": "Palfed", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8 .7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zm-194.5 72.2c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4 .9 74.4 2.7 100v.2c.2 3.4 .6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4 .2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9 .2 2.5 .4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4h30l22.4 217.2s0 44.3 44.7 44.3h288.9s44.7-.4 44.7-44.3l22.4-217.2h30s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4h-30.1c-7.3-25.6-30.2-74.3-119.4-74.3h-28V50.3s-2.7-18.4-21.1-18.4h-85.8s-21.1 0-21.1 18.4v19.1h-28.1s-105 4.2-120.5 74.3h-29S8 142.5 8 181.1z" - } - }, - "free": [ - "brands" - ] - }, - "pallet": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f482", - "aliases": { - "unicodes": { - "secondary": [ - "10f482" - ] - } - }, - "label": "Pallet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573289, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M624 384c8.75 0 16-7.25 16-16v-32c0-8.75-7.25-16-16-16h-608C7.25 320 0 327.3 0 336v32C0 376.8 7.25 384 16 384H64v64H16C7.25 448 0 455.3 0 464v32C0 504.8 7.25 512 16 512h608c8.75 0 16-7.25 16-16v-32c0-8.75-7.25-16-16-16H576v-64H624zM288 448H128v-64h160V448zM512 448h-160v-64h160V448z" - } - }, - "free": [ - "solid" - ] - }, - "panorama": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e209", - "label": "Panorama", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573289, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M578.2 66.06C409.8 116.6 230.2 116.6 61.8 66.06C31 56.82 0 79.88 0 112v319.9c0 32.15 30.1 55.21 61.79 45.97c168.4-50.53 347.1-50.53 516.4-.002C608.1 487.2 640 464.1 640 431.1V112C640 79.88 609 56.82 578.2 66.06zM128 224C110.3 224 96 209.7 96 192s14.33-32 32-32c17.68 0 32 14.33 32 32S145.7 224 128 224zM474.3 388.6C423.4 380.3 371.8 376 320 376c-50.45 0-100.7 4.043-150.3 11.93c-14.14 2.246-24.11-13.19-15.78-24.84l49.18-68.56C206.1 290.4 210.9 288 216 288s9.916 2.441 12.93 6.574l32.46 44.51l93.3-139.1C357.7 194.7 362.7 192 368 192s10.35 2.672 13.31 7.125l109.1 165.1C498.1 375.9 488.1 390.8 474.3 388.6z" - } - }, - "free": [ - "solid" - ] - }, - "paper-plane": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f1d8", - "aliases": { - "unicodes": { - "composite": [ - "f1d9" - ], - "secondary": [ - "10f1d8" - ] - } - }, - "label": "Paper Plane", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573289, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M511.6 36.86l-64 415.1c-1.5 9.734-7.375 18.22-15.97 23.05c-4.844 2.719-10.27 4.097-15.68 4.097c-4.188 0-8.319-.8154-12.29-2.472l-122.6-51.1l-50.86 76.29C226.3 508.5 219.8 512 212.8 512C201.3 512 192 502.7 192 491.2v-96.18c0-7.115 2.372-14.03 6.742-19.64L416 96l-293.7 264.3L19.69 317.5C8.438 312.8 .8125 302.2 .0625 289.1s5.469-23.72 16.06-29.77l448-255.1c10.69-6.109 23.88-5.547 34 1.406S513.5 24.72 511.6 36.86z" - }, - "regular": { - "last_modified": 1658443573092, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M501.6 4.186c-7.594-5.156-17.41-5.594-25.44-1.063L12.12 267.1C4.184 271.7-.5037 280.3 .0431 289.4c.5469 9.125 6.234 17.16 14.66 20.69l153.3 64.38v113.5c0 8.781 4.797 16.84 12.5 21.06C184.1 511 188 512 191.1 512c4.516 0 9.038-1.281 12.99-3.812l111.2-71.46l98.56 41.4c2.984 1.25 6.141 1.875 9.297 1.875c4.078 0 8.141-1.031 11.78-3.094c6.453-3.625 10.88-10.06 11.95-17.38l64-432C513.1 18.44 509.1 9.373 501.6 4.186zM369.3 119.2l-187.1 208.9L78.23 284.7L369.3 119.2zM215.1 444v-49.36l46.45 19.51L215.1 444zM404.8 421.9l-176.6-74.19l224.6-249.5L404.8 421.9z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "paperclip": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0c6", - "aliases": { - "unicodes": { - "composite": [ - "1f4ce" - ], - "secondary": [ - "10f0c6" - ] - } - }, - "label": "Paperclip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573289, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M364.2 83.8C339.8 59.39 300.2 59.39 275.8 83.8L91.8 267.8C49.71 309.9 49.71 378.1 91.8 420.2C133.9 462.3 202.1 462.3 244.2 420.2L396.2 268.2C407.1 257.3 424.9 257.3 435.8 268.2C446.7 279.1 446.7 296.9 435.8 307.8L283.8 459.8C219.8 523.8 116.2 523.8 52.2 459.8C-11.75 395.8-11.75 292.2 52.2 228.2L236.2 44.2C282.5-2.08 357.5-2.08 403.8 44.2C450.1 90.48 450.1 165.5 403.8 211.8L227.8 387.8C199.2 416.4 152.8 416.4 124.2 387.8C95.59 359.2 95.59 312.8 124.2 284.2L268.2 140.2C279.1 129.3 296.9 129.3 307.8 140.2C318.7 151.1 318.7 168.9 307.8 179.8L163.8 323.8C157.1 330.5 157.1 341.5 163.8 348.2C170.5 354.9 181.5 354.9 188.2 348.2L364.2 172.2C388.6 147.8 388.6 108.2 364.2 83.8V83.8z" - } - }, - "free": [ - "solid" - ] - }, - "parachute-box": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4cd", - "aliases": { - "unicodes": { - "secondary": [ - "10f4cd" - ] - } - }, - "label": "Parachute Box", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573289, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M272 192V320H304C311 320 317.7 321.5 323.7 324.2L443.8 192H415.5C415.8 186.7 416 181.4 416 176C416 112.1 393.8 54.84 358.9 16.69C450 49.27 493.4 122.6 507.8 173.6C510.5 183.1 502.1 192 493.1 192H487.1L346.8 346.3C350.1 352.8 352 360.2 352 368V464C352 490.5 330.5 512 304 512H207.1C181.5 512 159.1 490.5 159.1 464V368C159.1 360.2 161.9 352.8 165.2 346.3L24.92 192H18.89C9 192 1.483 183.1 4.181 173.6C18.64 122.6 61.97 49.27 153.1 16.69C118.2 54.84 96 112.1 96 176C96 181.4 96.16 186.7 96.47 192H68.17L188.3 324.2C194.3 321.5 200.1 320 207.1 320H239.1V192H128.5C128.2 186.7 127.1 181.4 127.1 176C127.1 125 143.9 80.01 168.2 48.43C192.5 16.89 223.8 0 255.1 0C288.2 0 319.5 16.89 343.8 48.43C368.1 80.01 384 125 384 176C384 181.4 383.8 186.7 383.5 192H272z" - } - }, - "free": [ - "solid" - ] - }, - "paragraph": { - "changes": [ - "4.1.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1dd", - "aliases": { - "unicodes": { - "composite": [ - "b6" - ], - "secondary": [ - "10f1dd" - ] - } - }, - "label": "paragraph", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573290, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 63.1C448 81.67 433.7 96 416 96H384v352c0 17.67-14.33 32-31.1 32S320 465.7 320 448V96h-32v352c0 17.67-14.33 32-31.1 32S224 465.7 224 448v-96H198.9c-83.57 0-158.2-61.11-166.1-144.3C23.66 112.3 98.44 32 191.1 32h224C433.7 32 448 46.33 448 63.1z" - } - }, - "free": [ - "solid" - ] - }, - "passport": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ab", - "aliases": { - "unicodes": { - "secondary": [ - "10f5ab" - ] - } - }, - "label": "Passport", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573290, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M129.6 208c5.25 31.25 25.62 57.13 53.25 70.38C175.3 259.4 170.3 235 168.8 208H129.6zM129.6 176h39.13c1.5-27 6.5-51.38 14.12-70.38C155.3 118.9 134.9 144.8 129.6 176zM224 286.8C231.8 279.3 244.8 252.3 247.4 208H200.5C203.3 252.3 216.3 279.3 224 286.8zM265.1 105.6C272.8 124.6 277.8 149 279.3 176h39.13C313.1 144.8 292.8 118.9 265.1 105.6zM384 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h320c35.2 0 64-28.8 64-64V64C448 28.8 419.2 0 384 0zM336 416h-224C103.3 416 96 408.8 96 400S103.3 384 112 384h224c8.75 0 16 7.25 16 16S344.8 416 336 416zM224 320c-70.75 0-128-57.25-128-128s57.25-128 128-128s128 57.25 128 128S294.8 320 224 320zM265.1 278.4c27.62-13.25 48-39.13 53.25-70.38h-39.13C277.8 235 272.8 259.4 265.1 278.4zM200.6 176h46.88C244.7 131.8 231.8 104.8 224 97.25C216.3 104.8 203.2 131.8 200.6 176z" - } - }, - "free": [ - "solid" - ] - }, - "paste": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0ea", - "aliases": { - "names": [ - "file-clipboard" - ], - "unicodes": { - "secondary": [ - "10f0ea" - ] - } - }, - "label": "Paste", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573290, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 96V80C320 53.49 298.5 32 272 32H215.4C204.3 12.89 183.6 0 160 0S115.7 12.89 104.6 32H48C21.49 32 0 53.49 0 80v320C0 426.5 21.49 448 48 448l144 .0013L192 176C192 131.8 227.8 96 272 96H320zM160 88C146.8 88 136 77.25 136 64S146.8 40 160 40S184 50.75 184 64S173.3 88 160 88zM416 128v96h96L416 128zM384 224L384 128h-112C245.5 128 224 149.5 224 176v288c0 26.51 21.49 48 48 48h192c26.51 0 48-21.49 48-48V256h-95.99C398.4 256 384 241.6 384 224z" - }, - "regular": { - "last_modified": 1658443573092, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.6 198.6l-61.25-61.25C435.4 131.4 427.3 128 418.8 128H256C220.7 128 191.1 156.7 192 192l.0065 255.1C192 483.3 220.7 512 256 512h192c35.2 0 64-28.8 64-64l.0098-226.7C512 212.8 508.6 204.6 502.6 198.6zM464 448c0 8.836-7.164 16-16 16h-192c-8.838 0-16-7.164-16-16L240 192.1c0-8.836 7.164-16 16-16h128L384 224c0 17.67 14.33 32 32 32h48.01V448zM317.7 96C310.6 68.45 285.8 48 256 48H215.2C211.3 20.93 188.1 0 160 0C131.9 0 108.7 20.93 104.8 48H64c-35.35 0-64 28.65-64 64V384c0 35.34 28.65 64 64 64h96v-48H64c-8.836 0-16-7.164-16-16V112C48 103.2 55.18 96 64 96h16v16c0 17.67 14.33 32 32 32h61.35C190 115.4 220.6 96 256 96H317.7zM160 72c-8.822 0-16-7.176-16-16s7.178-16 16-16s16 7.176 16 16S168.8 72 160 72z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "patreon": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3d9", - "label": "Patreon", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 194.8c0 101.3-82.4 183.8-183.8 183.8-101.7 0-184.4-82.4-184.4-183.8 0-101.6 82.7-184.3 184.4-184.3C429.6 10.5 512 93.2 512 194.8zM0 501.5h90v-491H0v491z" - } - }, - "free": [ - "brands" - ] - }, - "pause": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f04c", - "aliases": { - "unicodes": { - "composite": [ - "23f8" - ], - "secondary": [ - "10f04c" - ] - } - }, - "label": "pause", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573290, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M272 63.1l-32 0c-26.51 0-48 21.49-48 47.1v288c0 26.51 21.49 48 48 48L272 448c26.51 0 48-21.49 48-48v-288C320 85.49 298.5 63.1 272 63.1zM80 63.1l-32 0c-26.51 0-48 21.49-48 48v288C0 426.5 21.49 448 48 448l32 0c26.51 0 48-21.49 48-48v-288C128 85.49 106.5 63.1 80 63.1z" - } - }, - "free": [ - "solid" - ] - }, - "paw": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1b0", - "aliases": { - "unicodes": { - "secondary": [ - "10f1b0" - ] - } - }, - "label": "Paw", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573290, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M226.5 92.85C240.8 135.7 226.2 179.1 193.9 189.7C161.6 200.2 123.8 174 109.5 131.1C95.19 88.26 109.8 44.92 142.1 34.34C174.4 23.77 212.2 49.96 226.5 92.85zM100.4 198.6C119.2 231 114.7 268.7 90.16 282.7C65.65 296.8 30.49 281.9 11.63 249.4C-7.237 216.1-2.664 179.3 21.84 165.3C46.35 151.2 81.51 166.1 100.4 198.6zM69.21 401.2C121.6 259.9 214.7 224 256 224C297.3 224 390.4 259.9 442.8 401.2C446.4 410.9 448 421.3 448 431.7V433.3C448 459.1 427.1 480 401.3 480C389.8 480 378.4 478.6 367.3 475.8L279.3 453.8C263.1 450 248 450 232.7 453.8L144.7 475.8C133.6 478.6 122.2 480 110.7 480C84.93 480 64 459.1 64 433.3V431.7C64 421.3 65.6 410.9 69.21 401.2H69.21zM421.8 282.7C397.3 268.7 392.8 231 411.6 198.6C430.5 166.1 465.7 151.2 490.2 165.3C514.7 179.3 519.2 216.1 500.4 249.4C481.5 281.9 446.3 296.8 421.8 282.7zM310.1 189.7C277.8 179.1 263.2 135.7 277.5 92.85C291.8 49.96 329.6 23.77 361.9 34.34C394.2 44.92 408.8 88.26 394.5 131.1C380.2 174 342.4 200.2 310.1 189.7z" - } - }, - "free": [ - "solid" - ] - }, - "paypal": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1ed", - "label": "Paypal", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M111.4 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5H12.3c-7.6 0-13.1-6.6-12.1-13.9L58.8 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4 .7-69.5-7-75.3 24.2zM357.1 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9h63.5c8.6 0 15.7-6.3 17.4-14.9 .7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z" - } - }, - "free": [ - "brands" - ] - }, - "peace": { - "changes": [ - "5.3.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f67c", - "aliases": { - "unicodes": { - "composite": [ - "262e" - ], - "secondary": [ - "10f67c" - ] - } - }, - "label": "Peace", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573290, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM224 445.1c-36.36-6.141-69.2-22.48-95.59-46.04L224 322.6V445.1zM288 322.6l95.59 76.47C357.2 422.6 324.4 438.1 288 445.1V322.6zM64 256c0-94.95 69.34-173.8 160-189.1v173.7l-135.7 108.6C72.86 321.6 64 289.8 64 256zM423.7 349.2L288 240.6V66.89C378.7 82.2 448 161.1 448 256C448 289.8 439.1 321.6 423.7 349.2z" - } - }, - "free": [ - "solid" - ] - }, - "pen": { - "changes": [ - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f304", - "aliases": { - "unicodes": { - "composite": [ - "1f58a" - ], - "secondary": [ - "10f304" - ] - } - }, - "label": "Pen", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32zM421.7 220.3L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3z" - } - }, - "free": [ - "solid" - ] - }, - "pen-clip": { - "changes": [ - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f305", - "aliases": { - "names": [ - "pen-alt" - ], - "unicodes": { - "secondary": [ - "10f305" - ] - } - }, - "label": "Pen clip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L440.6 201.4L310.6 71.43L362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75zM240.1 114.9C231.6 105.5 216.4 105.5 207 114.9L104.1 216.1C95.6 226.3 80.4 226.3 71.03 216.1C61.66 207.6 61.66 192.4 71.03 183L173.1 80.97C201.2 52.85 246.8 52.85 274.9 80.97L417.9 224L229.5 412.5C181.5 460.5 120.3 493.2 53.7 506.5L28.71 511.5C20.84 513.1 12.7 510.6 7.03 504.1C1.356 499.3-1.107 491.2 .4662 483.3L5.465 458.3C18.78 391.7 51.52 330.5 99.54 282.5L254.1 128L240.1 114.9z" - } - }, - "free": [ - "solid" - ] - }, - "pen-fancy": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ac", - "aliases": { - "unicodes": { - "composite": [ - "1f58b", - "2712" - ], - "secondary": [ - "10f5ac" - ] - } - }, - "label": "Pen Fancy", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M373.5 27.11C388.5 9.885 410.2 0 433 0C476.6 0 512 35.36 512 78.98C512 101.8 502.1 123.5 484.9 138.5L277.7 319L192.1 234.3L373.5 27.11zM255.1 341.7L235.9 425.1C231.9 442.2 218.9 455.8 202 460.5L24.35 510.3L119.7 414.9C122.4 415.6 125.1 416 128 416C145.7 416 160 401.7 160 384C160 366.3 145.7 352 128 352C110.3 352 96 366.3 96 384C96 386.9 96.38 389.6 97.08 392.3L1.724 487.6L51.47 309.1C56.21 293.1 69.8 280.1 86.9 276.1L170.3 256.9L255.1 341.7z" - } - }, - "free": [ - "solid" - ] - }, - "pen-nib": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ad", - "aliases": { - "unicodes": { - "composite": [ - "2711" - ], - "secondary": [ - "10f5ad" - ] - } - }, - "label": "Pen Nib", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M368.4 18.34C390.3-3.526 425.7-3.526 447.6 18.34L493.7 64.4C515.5 86.27 515.5 121.7 493.7 143.6L437.9 199.3L312.7 74.06L368.4 18.34zM417.4 224L371.4 377.3C365.4 397.2 350.2 413 330.5 419.6L66.17 508.2C54.83 512 42.32 509.2 33.74 500.9L187.3 347.3C193.6 350.3 200.6 352 207.1 352C234.5 352 255.1 330.5 255.1 304C255.1 277.5 234.5 256 207.1 256C181.5 256 159.1 277.5 159.1 304C159.1 311.4 161.7 318.4 164.7 324.7L11.11 478.3C2.809 469.7-.04 457.2 3.765 445.8L92.39 181.5C98.1 161.8 114.8 146.6 134.7 140.6L287.1 94.6L417.4 224z" - } - }, - "free": [ - "solid" - ] - }, - "pen-ruler": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ae", - "aliases": { - "names": [ - "pencil-ruler" - ], - "unicodes": { - "secondary": [ - "10f5ae" - ] - } - }, - "label": "Pen ruler", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M492.7 42.75C517.7 67.74 517.7 108.3 492.7 133.3L436.3 189.7L322.3 75.72L378.7 19.32C403.7-5.678 444.3-5.678 469.3 19.32L492.7 42.75zM44.89 353.2L299.7 98.34L413.7 212.3L158.8 467.1C152.1 473.8 143.8 478.7 134.6 481.4L30.59 511.1C22.21 513.5 13.19 511.1 7.03 504.1C.8669 498.8-1.47 489.8 .9242 481.4L30.65 377.4C33.26 368.2 38.16 359.9 44.89 353.2zM249.4 103.4L103.4 249.4L16 161.9C-2.745 143.2-2.745 112.8 16 94.06L94.06 16C112.8-2.745 143.2-2.745 161.9 16L181.7 35.76C181.4 36.05 181 36.36 180.7 36.69L116.7 100.7C110.4 106.9 110.4 117.1 116.7 123.3C122.9 129.6 133.1 129.6 139.3 123.3L203.3 59.31C203.6 58.99 203.1 58.65 204.2 58.3L249.4 103.4zM453.7 307.8C453.4 308 453 308.4 452.7 308.7L388.7 372.7C382.4 378.9 382.4 389.1 388.7 395.3C394.9 401.6 405.1 401.6 411.3 395.3L475.3 331.3C475.6 330.1 475.1 330.6 476.2 330.3L496 350.1C514.7 368.8 514.7 399.2 496 417.9L417.9 496C399.2 514.7 368.8 514.7 350.1 496L262.6 408.6L408.6 262.6L453.7 307.8z" - } - }, - "free": [ - "solid" - ] - }, - "pen-to-square": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f044", - "aliases": { - "names": [ - "edit" - ], - "unicodes": { - "secondary": [ - "10f044" - ] - } - }, - "label": "Pen to square", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M490.3 40.4C512.2 62.27 512.2 97.73 490.3 119.6L460.3 149.7L362.3 51.72L392.4 21.66C414.3-.2135 449.7-.2135 471.6 21.66L490.3 40.4zM172.4 241.7L339.7 74.34L437.7 172.3L270.3 339.6C264.2 345.8 256.7 350.4 248.4 353.2L159.6 382.8C150.1 385.6 141.5 383.4 135 376.1C128.6 370.5 126.4 361 129.2 352.4L158.8 263.6C161.6 255.3 166.2 247.8 172.4 241.7V241.7zM192 63.1C209.7 63.1 224 78.33 224 95.1C224 113.7 209.7 127.1 192 127.1H96C78.33 127.1 64 142.3 64 159.1V416C64 433.7 78.33 448 96 448H352C369.7 448 384 433.7 384 416V319.1C384 302.3 398.3 287.1 416 287.1C433.7 287.1 448 302.3 448 319.1V416C448 469 405 512 352 512H96C42.98 512 0 469 0 416V159.1C0 106.1 42.98 63.1 96 63.1H192z" - }, - "regular": { - "last_modified": 1658443573094, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M373.1 24.97C401.2-3.147 446.8-3.147 474.9 24.97L487 37.09C515.1 65.21 515.1 110.8 487 138.9L289.8 336.2C281.1 344.8 270.4 351.1 258.6 354.5L158.6 383.1C150.2 385.5 141.2 383.1 135 376.1C128.9 370.8 126.5 361.8 128.9 353.4L157.5 253.4C160.9 241.6 167.2 230.9 175.8 222.2L373.1 24.97zM440.1 58.91C431.6 49.54 416.4 49.54 407 58.91L377.9 88L424 134.1L453.1 104.1C462.5 95.6 462.5 80.4 453.1 71.03L440.1 58.91zM203.7 266.6L186.9 325.1L245.4 308.3C249.4 307.2 252.9 305.1 255.8 302.2L390.1 168L344 121.9L209.8 256.2C206.9 259.1 204.8 262.6 203.7 266.6zM200 64C213.3 64 224 74.75 224 88C224 101.3 213.3 112 200 112H88C65.91 112 48 129.9 48 152V424C48 446.1 65.91 464 88 464H360C382.1 464 400 446.1 400 424V312C400 298.7 410.7 288 424 288C437.3 288 448 298.7 448 312V424C448 472.6 408.6 512 360 512H88C39.4 512 0 472.6 0 424V152C0 103.4 39.4 64 88 64H200z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "pencil": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f303", - "aliases": { - "names": [ - "pencil-alt" - ], - "unicodes": { - "composite": [ - "f040", - "270f" - ], - "primary": [ - "f040" - ], - "secondary": [ - "10f303", - "10f040" - ] - } - }, - "label": "pencil", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M421.7 220.3L188.5 453.4L154.6 419.5L158.1 416H112C103.2 416 96 408.8 96 400V353.9L92.51 357.4C87.78 362.2 84.31 368 82.42 374.4L59.44 452.6L137.6 429.6C143.1 427.7 149.8 424.2 154.6 419.5L188.5 453.4C178.1 463.8 165.2 471.5 151.1 475.6L30.77 511C22.35 513.5 13.24 511.2 7.03 504.1C.8198 498.8-1.502 489.7 .976 481.2L36.37 360.9C40.53 346.8 48.16 333.9 58.57 323.5L291.7 90.34L421.7 220.3zM492.7 58.75C517.7 83.74 517.7 124.3 492.7 149.3L444.3 197.7L314.3 67.72L362.7 19.32C387.7-5.678 428.3-5.678 453.3 19.32L492.7 58.75z" - } - }, - "free": [ - "solid" - ] - }, - "people-arrows": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e068", - "aliases": { - "names": [ - "people-arrows-left-right" - ], - "unicodes": { - "secondary": [ - "10e068" - ] - } - }, - "label": "People arrows left right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 304.1c0-12.16 4.971-23.83 13.64-32.01l72.13-68.08c1.65-1.555 3.773-2.311 5.611-3.578C177.1 176.8 155 160 128 160H64C28.65 160 0 188.7 0 224v96c0 17.67 14.33 32 31.1 32L32 480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-96.39l-50.36-47.53C100.1 327.9 96 316.2 96 304.1zM480 128c35.38 0 64-28.62 64-64s-28.62-64-64-64s-64 28.62-64 64S444.6 128 480 128zM96 128c35.38 0 64-28.62 64-64S131.4 0 96 0S32 28.62 32 64S60.63 128 96 128zM444.4 295.3L372.3 227.3c-3.49-3.293-8.607-4.193-13.01-2.299C354.9 226.9 352 231.2 352 236V272H224V236c0-4.795-2.857-9.133-7.262-11.03C212.3 223.1 207.2 223.1 203.7 227.3L131.6 295.3c-4.805 4.535-4.805 12.94 0 17.47l72.12 68.07c3.49 3.291 8.607 4.191 13.01 2.297C221.1 381.3 224 376.9 224 372.1V336h128v36.14c0 4.795 2.857 9.135 7.262 11.04c4.406 1.893 9.523 .9922 13.01-2.299l72.12-68.07C449.2 308.3 449.2 299.9 444.4 295.3zM512 160h-64c-26.1 0-49.98 16.77-59.38 40.42c1.842 1.271 3.969 2.027 5.623 3.588l72.12 68.06C475 280.2 480 291.9 480 304.1c.002 12.16-4.969 23.83-13.64 32.01L416 383.6V480c0 17.67 14.33 32 32 32h64c17.67 0 32-14.33 32-32v-128c17.67 0 32-14.33 32-32V224C576 188.7 547.3 160 512 160z" - } - }, - "free": [ - "solid" - ] - }, - "people-carry-box": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4ce", - "aliases": { - "names": [ - "people-carry" - ], - "unicodes": { - "secondary": [ - "10f4ce" - ] - } - }, - "label": "People carry box", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573291, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M128 95.1c26.5 0 47.1-21.5 47.1-47.1S154.5 0 128 0S80.01 21.5 80.01 47.1S101.5 95.1 128 95.1zM511.1 95.1c26.5 0 47.1-21.5 47.1-47.1S538.5 0 511.1 0c-26.5 0-48 21.5-48 47.1S485.5 95.1 511.1 95.1zM603.5 258.3l-18.5-80.13c-4.625-20-18.62-36.88-37.5-44.88c-18.5-8-38.1-6.75-56.12 3.25c-22.62 13.38-39.62 34.5-48.12 59.38l-11.25 33.88l-15.1 10.25L415.1 144c0-8.75-7.25-16-16-16H240c-8.75 0-16 7.25-16 16L224 239.1l-16.12-10.25l-11.25-33.88c-8.375-25-25.38-46-48.12-59.38c-17.25-10-37.63-11.25-56.12-3.25c-18.88 8-32.88 24.88-37.5 44.88l-18.37 80.13c-4.625 20 .7506 41.25 14.37 56.75l67.25 75.88l10.12 92.63C130 499.8 143.8 512 160 512c1.25 0 2.25-.125 3.5-.25c17.62-1.875 30.25-17.62 28.25-35.25l-10-92.75c-1.5-13-7-25.12-15.62-35l-43.37-49l17.62-70.38l6.876 20.38c4 12.5 11.87 23.5 24.5 32.63l51 32.5c4.623 2.875 12.12 4.625 17.25 5h159.1c5.125-.375 12.62-2.125 17.25-5l51-32.5c12.62-9.125 20.5-20 24.5-32.63l6.875-20.38l17.63 70.38l-43.37 49c-8.625 9.875-14.12 22-15.62 35l-10 92.75c-2 17.62 10.75 33.38 28.25 35.25C477.7 511.9 478.7 512 479.1 512c16.12 0 29.1-12.12 31.75-28.5l10.12-92.63L589.1 315C602.7 299.5 608.1 278.3 603.5 258.3zM46.26 358.1l-44 110c-6.5 16.38 1.5 35 17.88 41.63c16.75 6.5 35.12-1.75 41.62-17.88l27.62-69.13l-2-18.25L46.26 358.1zM637.7 468.1l-43.1-110l-41.13 46.38l-2 18.25l27.62 69.13C583.2 504.4 595.2 512 607.1 512c3.998 0 7.998-.75 11.87-2.25C636.2 503.1 644.2 484.5 637.7 468.1z" - } - }, - "free": [ - "solid" - ] - }, - "people-group": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e533", - "label": "People Group", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573292, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M184 88C184 118.9 158.9 144 128 144C97.07 144 72 118.9 72 88C72 57.07 97.07 32 128 32C158.9 32 184 57.07 184 88zM208.4 196.3C178.7 222.7 160 261.2 160 304C160 338.3 171.1 369.8 192 394.5V416C192 433.7 177.7 448 160 448H96C78.33 448 64 433.7 64 416V389.2C26.16 371.2 0 332.7 0 288C0 226.1 50.14 176 112 176H144C167.1 176 190.2 183.5 208.4 196.3V196.3zM64 245.7C54.04 256.9 48 271.8 48 288C48 304.2 54.04 319.1 64 330.3V245.7zM448 416V394.5C468 369.8 480 338.3 480 304C480 261.2 461.3 222.7 431.6 196.3C449.8 183.5 472 176 496 176H528C589.9 176 640 226.1 640 288C640 332.7 613.8 371.2 576 389.2V416C576 433.7 561.7 448 544 448H480C462.3 448 448 433.7 448 416zM576 330.3C585.1 319.1 592 304.2 592 288C592 271.8 585.1 256.9 576 245.7V330.3zM568 88C568 118.9 542.9 144 512 144C481.1 144 456 118.9 456 88C456 57.07 481.1 32 512 32C542.9 32 568 57.07 568 88zM256 96C256 60.65 284.7 32 320 32C355.3 32 384 60.65 384 96C384 131.3 355.3 160 320 160C284.7 160 256 131.3 256 96zM448 304C448 348.7 421.8 387.2 384 405.2V448C384 465.7 369.7 480 352 480H288C270.3 480 256 465.7 256 448V405.2C218.2 387.2 192 348.7 192 304C192 242.1 242.1 192 304 192H336C397.9 192 448 242.1 448 304zM256 346.3V261.7C246 272.9 240 287.8 240 304C240 320.2 246 335.1 256 346.3zM384 261.7V346.3C393.1 335 400 320.2 400 304C400 287.8 393.1 272.9 384 261.7z" - } - }, - "free": [ - "solid" - ] - }, - "people-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e534", - "label": "People Line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573292, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M360 72C360 94.09 342.1 112 320 112C297.9 112 280 94.09 280 72C280 49.91 297.9 32 320 32C342.1 32 360 49.91 360 72zM104 168C104 145.9 121.9 128 144 128C166.1 128 184 145.9 184 168C184 190.1 166.1 208 144 208C121.9 208 104 190.1 104 168zM608 416C625.7 416 640 430.3 640 448C640 465.7 625.7 480 608 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H608zM456 168C456 145.9 473.9 128 496 128C518.1 128 536 145.9 536 168C536 190.1 518.1 208 496 208C473.9 208 456 190.1 456 168zM200 352C200 369.7 185.7 384 168 384H120C102.3 384 88 369.7 88 352V313.5L61.13 363.4C54.85 375 40.29 379.4 28.62 373.1C16.95 366.8 12.58 352.3 18.87 340.6L56.75 270.3C72.09 241.8 101.9 224 134.2 224H153.8C170.1 224 185.7 228.5 199.2 236.6L232.7 174.3C248.1 145.8 277.9 128 310.2 128H329.8C362.1 128 391.9 145.8 407.3 174.3L440.8 236.6C454.3 228.5 469.9 224 486.2 224H505.8C538.1 224 567.9 241.8 583.3 270.3L621.1 340.6C627.4 352.3 623 366.8 611.4 373.1C599.7 379.4 585.2 375 578.9 363.4L552 313.5V352C552 369.7 537.7 384 520 384H472C454.3 384 440 369.7 440 352V313.5L413.1 363.4C406.8 375 392.3 379.4 380.6 373.1C368.1 366.8 364.6 352.3 370.9 340.6L407.2 273.1C405.5 271.5 404 269.6 402.9 267.4L376 217.5V272C376 289.7 361.7 304 344 304H295.1C278.3 304 263.1 289.7 263.1 272V217.5L237.1 267.4C235.1 269.6 234.5 271.5 232.8 273.1L269.1 340.6C275.4 352.3 271 366.8 259.4 373.1C247.7 379.4 233.2 375 226.9 363.4L199.1 313.5L200 352z" - } - }, - "free": [ - "solid" - ] - }, - "people-pulling": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e535", - "label": "People Pulling", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573292, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M32 48C32 21.49 53.49 0 80 0C106.5 0 128 21.49 128 48C128 74.51 106.5 96 80 96C53.49 96 32 74.51 32 48V48zM118.3 128C130.1 128 143.5 130.5 155.2 135.4L289.3 191.2C302.6 171.1 320.1 156.6 342.7 146.9L353.7 142C374.5 132.8 396.1 128 419.7 128C464.3 128 504.5 154.8 521.6 195.9L536.1 232.7L558.3 243.4C574.1 251.3 580.5 270.5 572.6 286.3C564.7 302.1 545.5 308.5 529.7 300.6L503 287.3C492.7 282.1 484.6 273.4 480.2 262.8L470.6 239.8L451.3 305.3L500.8 359.4C506.2 365.3 510.1 372.4 512 380.2L535 472.2C539.3 489.4 528.9 506.8 511.8 511C494.6 515.3 477.2 504.9 472.1 487.8L450.9 399.6L380.3 322.5C365.5 306.4 359.1 283.9 365.6 262.8L382.5 199.3C381.6 199.7 380.6 200.1 379.7 200.5L368.7 205.4C353.4 212.2 341.4 224.6 335.2 240.1L333.7 243.9C328.6 256.7 316.1 264.4 303 263.1C299.2 263.9 295.4 263.1 291.7 261.5L173.3 212.2L231.2 473.1C235.1 490.3 224.2 507.4 206.9 511.2C189.7 515.1 172.6 504.2 168.8 486.9L138.8 352H123.1L143.6 474.7C146.5 492.2 134.7 508.7 117.3 511.6C99.83 514.5 83.34 502.7 80.44 485.3L56.35 340.8C50.48 347.6 41.75 352 32 352C14.33 352 0 337.7 0 319.1V191.1C0 156.7 28.65 127.1 64 127.1L118.3 128zM416 48C416 21.49 437.5 0 464 0C490.5 0 512 21.49 512 48C512 74.51 490.5 96 464 96C437.5 96 416 74.51 416 48V48zM356.7 344.2L397.4 388.6L382.9 424.8C380.5 430.9 376.9 436.4 372.3 440.9L310.6 502.6C298.1 515.1 277.9 515.1 265.4 502.6C252.9 490.1 252.9 469.9 265.4 457.4L324.7 398L349.7 335.6C351.8 338.6 354.2 341.4 356.7 344.2H356.7z" - } - }, - "free": [ - "solid" - ] - }, - "people-robbery": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e536", - "label": "People Robbery", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573292, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M496.1 24.24C501.2 7.093 518.6-3.331 535.8 .9552C552.9 5.242 563.3 22.62 559 39.76L550.3 74.63C539.3 118.6 510.1 154.2 472 174.3V480C472 497.7 457.7 512 440 512C422.3 512 408 497.7 408 480V352H392V480C392 497.7 377.7 512 360 512C342.3 512 328 497.7 328 480V174.3C289.9 154.2 260.7 118.6 249.7 74.63L240.1 39.76C236.7 22.62 247.1 5.242 264.2 .9552C281.4-3.331 298.8 7.093 303 24.24L311.8 59.1C321.9 99.59 358.3 127.1 400 127.1C441.7 127.1 478.1 99.59 488.2 59.1L496.1 24.24zM352 47.1C352 21.49 373.5-.0006 400-.0006C426.5-.0006 448 21.49 448 47.1C448 74.51 426.5 95.1 400 95.1C373.5 95.1 352 74.51 352 47.1V47.1zM32.01 48C32.01 21.49 53.5 0 80.01 0C106.5 0 128 21.49 128 48C128 74.51 106.5 96 80.01 96C53.5 96 32.01 74.51 32.01 48V48zM104.7 128C132.1 128 157.6 142 172.2 165.1L209.6 224H240C257.7 224 272 238.3 272 256C272 273.7 257.7 288 240 288H192C181 288 170.9 282.4 164.1 273.1L152 252.7V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V352H72V480C72 497.7 57.68 512 40 512C22.33 512 8.005 497.7 8.005 480V288.6L8 287.1V191.1C8 156.7 36.65 127.1 72 127.1L104.7 128z" - } - }, - "free": [ - "solid" - ] - }, - "people-roof": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e537", - "label": "People Roof", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573292, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M623.5 164C638.1 172.6 644.6 192.1 635.1 207.5C627.4 222.1 607.9 228.6 592.5 219.1L319.1 68.61L47.54 219.1C32.09 228.6 12.61 222.1 4.025 207.5C-4.558 192.1 1.008 172.6 16.46 164L304.5 4.027C314.1-1.342 325.9-1.342 335.5 4.027L623.5 164zM279.1 200C279.1 177.9 297.9 160 319.1 160C342.1 160 359.1 177.9 359.1 200C359.1 222.1 342.1 240 319.1 240C297.9 240 279.1 222.1 279.1 200zM103.1 296C103.1 273.9 121.9 256 143.1 256C166.1 256 183.1 273.9 183.1 296C183.1 318.1 166.1 336 143.1 336C121.9 336 103.1 318.1 103.1 296V296zM535.1 296C535.1 318.1 518.1 336 495.1 336C473.9 336 455.1 318.1 455.1 296C455.1 273.9 473.9 256 495.1 256C518.1 256 535.1 273.9 535.1 296zM226.9 491.4L199.1 441.5V480C199.1 497.7 185.7 512 167.1 512H119.1C102.3 512 87.1 497.7 87.1 480V441.5L61.13 491.4C54.84 503 40.29 507.4 28.62 501.1C16.95 494.8 12.58 480.3 18.87 468.6L56.74 398.3C72.09 369.8 101.9 352 134.2 352H153.8C170.1 352 185.7 356.5 199.2 364.6L232.7 302.3C248.1 273.8 277.9 255.1 310.2 255.1H329.8C362.1 255.1 391.9 273.8 407.3 302.3L440.8 364.6C454.3 356.5 469.9 352 486.2 352H505.8C538.1 352 567.9 369.8 583.3 398.3L621.1 468.6C627.4 480.3 623 494.8 611.4 501.1C599.7 507.4 585.2 503 578.9 491.4L551.1 441.5V480C551.1 497.7 537.7 512 519.1 512H471.1C454.3 512 439.1 497.7 439.1 480V441.5L413.1 491.4C406.8 503 392.3 507.4 380.6 501.1C368.1 494.8 364.6 480.3 370.9 468.6L407.2 401.1C405.5 399.5 404 397.6 402.9 395.4L375.1 345.5V400C375.1 417.7 361.7 432 343.1 432H295.1C278.3 432 263.1 417.7 263.1 400V345.5L237.1 395.4C235.1 397.6 234.5 399.5 232.8 401.1L269.1 468.6C275.4 480.3 271 494.8 259.4 501.1C247.7 507.4 233.2 503 226.9 491.4H226.9z" - } - }, - "free": [ - "solid" - ] - }, - "pepper-hot": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f816", - "aliases": { - "unicodes": { - "composite": [ - "1f336" - ], - "secondary": [ - "10f816" - ] - } - }, - "label": "Hot Pepper", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573292, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M465 134.2c21.46-38.38 19.87-87.17-5.65-123.1c-7.541-10.83-22.31-13.53-33.2-5.938c-10.77 7.578-13.44 22.55-5.896 33.41c14.41 20.76 15.13 47.69 4.098 69.77C407.1 100.1 388 95.1 368 95.1c-36.23 0-68.93 13.83-94.24 35.92L352 165.5V256h90.56l33.53 78.23C498.2 308.9 512 276.2 512 239.1C512 198 493.7 160.6 465 134.2zM320 288V186.6l-52.95-22.69C216.2 241.3 188.5 400 56 400C25.13 400 0 425.1 0 456S25.13 512 56 512c180.3 0 320.1-88.27 389.3-168.5L421.5 288H320z" - } - }, - "free": [ - "solid" - ] - }, - "perbyte": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e083", - "label": "PerByte", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M305.3 284.6H246.6V383.3h58.71q24.42 0 38.19-13.77t13.77-36.11q0-21.83-14.03-35.33T305.3 284.6zM149.4 128.7H90.72v98.72h58.71q24.42 0 38.19-13.77t13.77-36.11q0-21.83-14.03-35.34T149.4 128.7zM366.6 32H81.35A81.44 81.44 0 0 0 0 113.4V398.6A81.44 81.44 0 0 0 81.35 480H366.6A81.44 81.44 0 0 0 448 398.6V113.4A81.44 81.44 0 0 0 366.6 32zm63.63 366.6a63.71 63.71 0 0 1 -63.63 63.63H81.35a63.71 63.71 0 0 1 -63.63-63.63V113.4A63.71 63.71 0 0 1 81.35 49.72H366.6a63.71 63.71 0 0 1 63.63 63.63zM305.3 128.7H246.6v98.72h58.71q24.42 0 38.19-13.77t13.77-36.11q0-21.83-14.03-35.34T305.3 128.7z" - } - }, - "free": [ - "brands" - ] - }, - "percent": { - "changes": [ - "4.5.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "25", - "aliases": { - "names": [ - "percentage" - ], - "unicodes": { - "composite": [ - "f295", - "f541" - ], - "primary": [ - "f541", - "f295" - ], - "secondary": [ - "10f541", - "1025", - "10f295" - ] - } - }, - "label": "Percent", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573292, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M374.6 73.39c-12.5-12.5-32.75-12.5-45.25 0l-320 320c-12.5 12.5-12.5 32.75 0 45.25C15.63 444.9 23.81 448 32 448s16.38-3.125 22.62-9.375l320-320C387.1 106.1 387.1 85.89 374.6 73.39zM64 192c35.3 0 64-28.72 64-64S99.3 64.01 64 64.01S0 92.73 0 128S28.7 192 64 192zM320 320c-35.3 0-64 28.72-64 64s28.7 64 64 64s64-28.72 64-64S355.3 320 320 320z" - } - }, - "free": [ - "solid" - ] - }, - "periscope": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3da", - "label": "Periscope", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M370 63.6C331.4 22.6 280.5 0 226.6 0 111.9 0 18.5 96.2 18.5 214.4c0 75.1 57.8 159.8 82.7 192.7C137.8 455.5 192.6 512 226.6 512c41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3 .1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8v.4c0 24.5 20.1 44.4 44.8 44.4 24.7 0 44.8-19.9 44.8-44.4 0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z" - } - }, - "free": [ - "brands" - ] - }, - "person": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f183", - "aliases": { - "names": [ - "male" - ], - "unicodes": { - "composite": [ - "1f9cd" - ], - "secondary": [ - "10f183" - ] - } - }, - "label": "Person", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48zM152 352V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H174.9C208.6 128 239.8 145.7 257.2 174.6L315.4 271.5C324.5 286.7 319.6 306.3 304.5 315.4C289.3 324.5 269.7 319.6 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352L152 352z" - } - }, - "free": [ - "solid" - ] - }, - "person-arrow-down-to-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e538", - "label": "Person Arrow-down-to-line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144 48C144 21.49 165.5 0 192 0C218.5 0 240 21.49 240 48C240 74.51 218.5 96 192 96C165.5 96 144 74.51 144 48zM120 256.9L91.43 304.5C82.33 319.6 62.67 324.5 47.52 315.4C32.37 306.3 27.47 286.7 36.57 271.5L94.85 174.6C112.2 145.7 143.4 128 177.1 128H206.9C240.6 128 271.8 145.7 289.2 174.6L347.4 271.5C356.5 286.7 351.6 306.3 336.5 315.4C321.3 324.5 301.7 319.6 292.6 304.5L264 256.9V448H608C625.7 448 640 462.3 640 480C640 497.7 625.7 512 608 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H120L120 256.9zM200 448V352H184V448H200zM393.4 326.6C380.9 314.1 380.9 293.9 393.4 281.4C405.9 268.9 426.1 268.9 438.6 281.4L464 306.7V64C464 46.33 478.3 32 496 32C513.7 32 528 46.33 528 64V306.7L553.4 281.4C565.9 268.9 586.1 268.9 598.6 281.4C611.1 293.9 611.1 314.1 598.6 326.6L518.6 406.6C506.1 419.1 485.9 419.1 473.4 406.6L393.4 326.6z" - } - }, - "free": [ - "solid" - ] - }, - "person-arrow-up-from-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e539", - "label": "Person Arrow-up-from-line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144 48C144 21.49 165.5 0 192 0C218.5 0 240 21.49 240 48C240 74.51 218.5 96 192 96C165.5 96 144 74.51 144 48zM120 256.9L91.43 304.5C82.33 319.6 62.67 324.5 47.52 315.4C32.37 306.3 27.47 286.7 36.57 271.5L94.85 174.6C112.2 145.7 143.4 128 177.1 128H206.9C240.6 128 271.8 145.7 289.2 174.6L347.4 271.5C356.5 286.7 351.6 306.3 336.5 315.4C321.3 324.5 301.7 319.6 292.6 304.5L264 256.9V448H608C625.7 448 640 462.3 640 480C640 497.7 625.7 512 608 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H120L120 256.9zM200 448V352H184V448H200zM598.6 121.4C611.1 133.9 611.1 154.1 598.6 166.6C586.1 179.1 565.9 179.1 553.4 166.6L528 141.3V384C528 401.7 513.7 416 496 416C478.3 416 464 401.7 464 384V141.3L438.6 166.6C426.1 179.1 405.9 179.1 393.4 166.6C380.9 154.1 380.9 133.9 393.4 121.4L473.4 41.37C485.9 28.88 506.1 28.88 518.6 41.37L598.6 121.4z" - } - }, - "free": [ - "solid" - ] - }, - "person-biking": { - "changes": [ - "5.9.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f84a", - "aliases": { - "names": [ - "biking" - ], - "unicodes": { - "composite": [ - "1f6b4" - ], - "secondary": [ - "10f84a" - ] - } - }, - "label": "Person biking", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 48C352 21.49 373.5 0 400 0C426.5 0 448 21.49 448 48C448 74.51 426.5 96 400 96C373.5 96 352 74.51 352 48zM480 159.1C497.7 159.1 512 174.3 512 191.1C512 209.7 497.7 223.1 480 223.1H416C408.7 223.1 401.7 221.5 396 216.1L355.3 184.4L295 232.9L337.8 261.4C346.7 267.3 352 277.3 352 288V416C352 433.7 337.7 448 320 448C302.3 448 288 433.7 288 416V305.1L227.5 266.8C194.7 245.1 192.5 198.9 223.2 175.2L306.3 110.9C323.8 97.45 348.1 97.58 365.4 111.2L427.2 159.1H480zM256 384C256 454.7 198.7 512 128 512C57.31 512 0 454.7 0 384C0 313.3 57.31 256 128 256C198.7 256 256 313.3 256 384zM128 312C88.24 312 56 344.2 56 384C56 423.8 88.24 456 128 456C167.8 456 200 423.8 200 384C200 344.2 167.8 312 128 312zM640 384C640 454.7 582.7 512 512 512C441.3 512 384 454.7 384 384C384 313.3 441.3 256 512 256C582.7 256 640 313.3 640 384zM512 312C472.2 312 440 344.2 440 384C440 423.8 472.2 456 512 456C551.8 456 584 423.8 584 384C584 344.2 551.8 312 512 312z" - } - }, - "free": [ - "solid" - ] - }, - "person-booth": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f756", - "aliases": { - "unicodes": { - "secondary": [ - "10f756" - ] - } - }, - "label": "Person Entering Booth", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M192 496C192 504.8 199.3 512 208 512h32C248.8 512 256 504.8 256 496V320H192V496zM544 0h-32v496c0 8.75 7.25 16 16 16h32c8.75 0 16-7.25 16-16V32C576 14.25 561.8 0 544 0zM64 128c26.5 0 48-21.5 48-48S90.5 32 64 32S16 53.5 16 80S37.5 128 64 128zM224 224H173.1L127.9 178.8C115.8 166.6 99.75 160 82.75 160H64C46.88 160 30.75 166.8 18.75 178.8c-12 12.12-18.72 28.22-18.72 45.35L0 480c0 17.75 14.25 32 31.88 32s32-14.25 32-32L64 379.3c.875 .5 1.625 1.375 2.5 1.75L95.63 424V480c0 17.75 14.25 32 32 32c17.62 0 32-14.25 32-32v-56.5c0-9.875-2.375-19.75-6.75-28.62l-41.13-61.25V253l20.88 20.88C141.8 283 153.8 288 166.5 288H224c17.75 0 32-14.25 32-32S241.8 224 224 224zM192 32v160h64V0H224C206.3 0 192 14.25 192 32zM288 32l31.5 223.1l-30.88 154.6C284.3 431.3 301.6 448 320 448c15.25 0 27.99-9.125 32.24-30.38C353.3 434.5 366.9 448 384 448c17.75 0 32-14.25 32-32c0 17.75 14.25 32 32 32s32-14.25 32-32V0h-192V32z" - } - }, - "free": [ - "solid" - ] - }, - "person-breastfeeding": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e53a", - "label": "Person Breastfeeding", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M144 80C144 35.82 179.8 0 224 0C268.2 0 304 35.82 304 80C304 124.2 268.2 160 224 160C179.8 160 144 124.2 144 80zM436.8 382.8L373.5 461.1C356.9 482.7 326.7 486 306 469.5C288.4 455.4 283.3 431.3 292.5 411.7L291.7 411.6C252.8 406.1 217.4 386.5 192 356.8V320C192 302.3 177.7 288 160 288C142.3 288 128 302.3 128 320V368C128 368.8 128 369.6 128.1 370.4L229.5 421.1C253.2 432.9 262.8 461.8 250.9 485.5C239.1 509.2 210.2 518.8 186.5 506.9L27.21 427.3C26.11 426.7 25.02 426.2 23.95 425.5C19.04 422.7 14.79 419.1 11.3 414.1C6.732 409.5 3.492 403.3 1.683 396.6C-1.576 384.6-.1811 371.4 6.459 359.9C7.098 358.8 7.776 357.8 8.489 356.7L75.56 256.1C102.3 216.1 147.2 192 195.4 192H270.6C317.1 192 360.7 214.5 387.8 252.3L438.5 323.2C440.7 326.2 442.5 329.4 443.9 332.7C446.9 339.3 448.2 346.4 447.1 353.5C447.7 364.1 443.8 374.5 436.8 382.8V382.8zM276 288C251.7 288 232 307.7 232 332C232 356.3 251.7 376 276 376C300.3 376 320 356.3 320 332C320 307.7 300.3 288 276 288z" - } - }, - "free": [ - "solid" - ] - }, - "person-burst": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e53b", - "label": "Person Burst", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M431.1 48C431.1 21.49 453.5 0 479.1 0C506.5 0 527.1 21.49 527.1 48C527.1 74.51 506.5 96 479.1 96C453.5 96 431.1 74.51 431.1 48zM439.1 512C422.3 512 407.1 497.7 407.1 480V256.9L379.4 304.5C370.3 319.6 350.7 324.5 335.5 315.4C320.4 306.3 315.5 286.7 324.6 271.5L382.8 174.6C400.2 145.7 431.4 128 465.1 128H494.9C528.6 128 559.8 145.7 577.2 174.6L635.4 271.5C644.5 286.7 639.6 306.3 624.5 315.4C609.3 324.5 589.7 319.6 580.6 304.5L551.1 256.9V480C551.1 497.7 537.7 512 519.1 512C502.3 512 487.1 497.7 487.1 480V352H471.1V480C471.1 497.7 457.7 512 439.1 512L439.1 512zM220.3 92.05L296.4 68.93C302.7 67.03 309.5 69.14 313.6 74.27C317.7 79.39 318.2 86.49 314.1 92.18L275.5 161.3L330.7 199.3L306.3 239.8L255.8 247.6L261.4 327C261.8 333.6 258.3 339.7 252.4 342.6C246.5 345.4 239.4 344.4 234.6 339.9L175.1 286.1L117.4 339.9C112.6 344.4 105.5 345.4 99.63 342.6C93.73 339.7 90.15 333.6 90.62 327L96.21 247.6L17.55 235.4C11.08 234.4 5.868 229.6 4.41 223.2C2.951 216.8 5.538 210.1 10.94 206.4L76.5 161.3L37.01 92.18C33.76 86.49 34.31 79.39 38.39 74.27C42.48 69.14 49.28 67.03 55.55 68.93L131.7 92.05L161.1 18.09C163.6 11.1 169.4 7.1 175.1 7.1C182.6 7.1 188.4 11.1 190.9 18.09L220.3 92.05z" - } - }, - "free": [ - "solid" - ] - }, - "person-cane": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e53c", - "label": "Person Cane", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M240 48C240 74.51 218.5 96 192 96C165.5 96 144 74.51 144 48C144 21.49 165.5 0 192 0C218.5 0 240 21.49 240 48zM232 480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352H152V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H181C209.6 128 236.7 140.7 254.9 162.7L328.6 251.6C339.9 265.2 338 285.3 324.4 296.6C310.8 307.9 290.7 306 279.4 292.4L232 235.3L232 480zM320 384C320 397.3 309.3 408 296 408C282.7 408 272 397.3 272 384V376C272 345.1 297.1 320 328 320C358.9 320 384 345.1 384 376V488C384 501.3 373.3 512 360 512C346.7 512 336 501.3 336 488V376C336 371.6 332.4 368 328 368C323.6 368 320 371.6 320 376V384z" - } - }, - "free": [ - "solid" - ] - }, - "person-chalkboard": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e53d", - "label": "Person Chalkboard", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144 48C144 21.49 165.5 0 192 0C218.5 0 240 21.49 240 48C240 74.51 218.5 96 192 96C165.5 96 144 74.51 144 48zM152 512C134.3 512 120 497.7 120 480V256.9L91.43 304.5C82.33 319.6 62.67 324.5 47.52 315.4C32.37 306.3 27.47 286.7 36.58 271.5L94.85 174.6C112.2 145.7 143.4 128 177.1 128H320V48C320 21.49 341.5 .0003 368 .0003H592C618.5 .0003 640 21.49 640 48V272C640 298.5 618.5 320 592 320H368C341.5 320 320 298.5 320 272V224H384V256H576V64H384V128H400C417.7 128 432 142.3 432 160C432 177.7 417.7 192 400 192H264V480C264 497.7 249.7 512 232 512C214.3 512 200 497.7 200 480V352H184V480C184 497.7 169.7 512 152 512L152 512z" - } - }, - "free": [ - "solid" - ] - }, - "person-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e53e", - "label": "Person Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48zM152 352V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H174.9C208.6 128 239.8 145.7 257.2 174.6L302.1 249.3C285.1 266.9 273.4 287.7 265.5 310.8C263.6 308.9 261.1 306.8 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352L152 352zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM476.7 324.7L416 385.4L387.3 356.7C381.1 350.4 370.9 350.4 364.7 356.7C358.4 362.9 358.4 373.1 364.7 379.3L404.7 419.3C410.9 425.6 421.1 425.6 427.3 419.3L499.3 347.3C505.6 341.1 505.6 330.9 499.3 324.7C493.1 318.4 482.9 318.4 476.7 324.7H476.7z" - } - }, - "free": [ - "solid" - ] - }, - "person-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e53f", - "label": "Person Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48zM152 352V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H174.9C208.6 128 239.8 145.7 257.2 174.6L302.1 249.3C285.1 266.9 273.4 287.7 265.5 310.8C263.6 308.9 261.1 306.8 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352L152 352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464zM415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "person-circle-minus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e540", - "label": "Person Circle-minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48zM152 352V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H174.9C208.6 128 239.8 145.7 257.2 174.6L302.1 249.3C285.1 266.9 273.4 287.7 265.5 310.8C263.6 308.9 261.1 306.8 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352L152 352zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM496 351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1z" - } - }, - "free": [ - "solid" - ] - }, - "person-circle-plus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e541", - "label": "Person Circle-plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48zM152 352V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H174.9C208.6 128 239.8 145.7 257.2 174.6L302.1 249.3C285.1 266.9 273.4 287.7 265.5 310.8C263.6 308.9 261.1 306.8 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352L152 352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM448 303.1C448 295.2 440.8 287.1 432 287.1C423.2 287.1 416 295.2 416 303.1V351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H416V431.1C416 440.8 423.2 447.1 432 447.1C440.8 447.1 448 440.8 448 431.1V383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1H448V303.1z" - } - }, - "free": [ - "solid" - ] - }, - "person-circle-question": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e542", - "label": "Person Circle-question", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48zM152 352V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H174.9C208.6 128 239.8 145.7 257.2 174.6L302.1 249.3C285.1 266.9 273.4 287.7 265.5 310.8C263.6 308.9 261.1 306.8 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352L152 352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464zM368 328C368 336.8 375.2 344 384 344C392.8 344 400 336.8 400 328V321.6C400 316.3 404.3 312 409.6 312H450.1C457.8 312 464 318.2 464 325.9C464 331.1 461.1 335.8 456.6 338.3L424.6 355.1C419.3 357.9 416 363.3 416 369.2V384C416 392.8 423.2 400 432 400C440.8 400 448 392.8 448 384V378.9L471.5 366.6C486.5 358.6 496 342.1 496 325.9C496 300.6 475.4 280 450.1 280H409.6C386.6 280 368 298.6 368 321.6V328z" - } - }, - "free": [ - "solid" - ] - }, - "person-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e543", - "label": "Person Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48zM152 352V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H174.9C208.6 128 239.8 145.7 257.2 174.6L302.1 249.3C285.1 266.9 273.4 287.7 265.5 310.8C263.6 308.9 261.1 306.8 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352L152 352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM491.3 331.3C497.6 325.1 497.6 314.9 491.3 308.7C485.1 302.4 474.9 302.4 468.7 308.7L432 345.4L395.3 308.7C389.1 302.4 378.9 302.4 372.7 308.7C366.4 314.9 366.4 325.1 372.7 331.3L409.4 368L372.7 404.7C366.4 410.9 366.4 421.1 372.7 427.3C378.9 433.6 389.1 433.6 395.3 427.3L432 390.6L468.7 427.3C474.9 433.6 485.1 433.6 491.3 427.3C497.6 421.1 497.6 410.9 491.3 404.7L454.6 368L491.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "person-digging": { - "changes": [ - "5.9.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f85e", - "aliases": { - "names": [ - "digging" - ], - "unicodes": { - "secondary": [ - "10f85e" - ] - } - }, - "label": "Person digging", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573293, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M272 95.93c26.5 0 47.99-21.47 47.99-47.97S298.5 0 272 0C245.5 0 224 21.47 224 47.97S245.5 95.93 272 95.93zM209.7 357.3c-25.75-17.25-52.25-33.24-79.5-48.11L58.62 270.2L1.246 471.1c-4.875 16.1 4.1 34.74 22 39.62s34.63-4.998 39.5-21.99l36.63-128.1l60.63 40.37v78.86c0 17.62 14.38 31.99 32 31.99s32-14.37 32-31.99l.0022-95.93C224 373.2 218.6 363.2 209.7 357.3zM311.1 416c-13.88 0-25.95 8.863-30.33 21.86l-24.75 74.07h319.9l-101.9-206.3c-11.38-22.49-43.1-23.63-56.1-2.01l-31.89 54.21l-65.26-35.64l-24-121.2C288.1 161.3 263.2 127.7 227.1 109.7c-1-.4999-2.125-.625-3.125-1.125c-2.25-1.125-4.752-1.1-7.252-2.625C201.5 99.85 185.2 95.98 168.7 95.98H95.1c-9.25 0-18.05 4.061-24.18 10.93l-55.95 63.92c-.75 .9998-1.5 2.124-2.25 3.249c-8.875 13.1-3 32.87 11.63 40.74l336.6 184.3l-9.837 16.87H311.1zM105.9 204.1l-23.5-12.87l28.13-32.12h34.38L105.9 204.1zM199.5 256.1l34.9-41.28l13.5 67.61L199.5 256.1z" - } - }, - "free": [ - "solid" - ] - }, - "person-dots-from-line": { - "changes": [ - "5.0.7", - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f470", - "aliases": { - "names": [ - "diagnoses" - ], - "unicodes": { - "secondary": [ - "10f470" - ] - } - }, - "label": "Person dots from line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M463.1 256c8.75 0 15.1-7.25 15.1-16S472.7 224 463.1 224c-8.75 0-15.1 7.25-15.1 16S455.2 256 463.1 256zM287.1 176c48.5 0 87.1-39.5 87.1-88S336.5 0 287.1 0S200 39.5 200 88S239.5 176 287.1 176zM80 256c8.75 0 15.1-7.25 15.1-16S88.75 224 80 224S64 231.3 64 240S71.25 256 80 256zM75.91 375.1c.6289-.459 41.62-29.26 100.1-50.05L176 432h223.1l-.0004-106.8c58.32 20.8 99.51 49.49 100.1 49.91C508.6 381.1 518.3 384 527.9 384c14.98 0 29.73-7 39.11-20.09c15.41-21.59 10.41-51.56-11.16-66.97c-1.955-1.391-21.1-14.83-51.83-30.85C495.5 279.2 480.7 288 463.1 288c-26.25 0-47.1-21.75-47.1-48c0-3.549 .4648-6.992 1.217-10.33C378.6 217.2 334.4 208 288 208c-59.37 0-114.1 15.01-160.1 32.67C127.6 266.6 106 288 80 288C69.02 288 58.94 284 50.8 277.7c-18.11 10.45-29.25 18.22-30.7 19.26c-21.56 15.41-26.56 45.38-11.16 66.97C24.33 385.5 54.3 390.4 75.91 375.1zM335.1 344c13.25 0 23.1 10.75 23.1 24s-10.75 24-23.1 24c-13.25 0-23.1-10.75-23.1-24S322.7 344 335.1 344zM240 248c13.25 0 23.1 10.75 23.1 24S253.3 296 240 296c-13.25 0-23.1-10.75-23.1-24S226.8 248 240 248zM559.1 464H16c-8.75 0-15.1 7.25-15.1 16l-.0016 16c0 8.75 7.25 16 15.1 16h543.1c8.75 0 15.1-7.25 15.1-16L575.1 480C575.1 471.3 568.7 464 559.1 464z" - } - }, - "free": [ - "solid" - ] - }, - "person-dress": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f182", - "aliases": { - "names": [ - "female" - ], - "unicodes": { - "secondary": [ - "10f182" - ] - } - }, - "label": "Person dress", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48zM88 384H70.2C59.28 384 51.57 373.3 55.02 362.9L93.28 248.1L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L58.18 182.3C78.43 148.6 114.9 128 154.2 128H165.8C205.1 128 241.6 148.6 261.8 182.3L315.4 271.5C324.5 286.7 319.6 306.3 304.5 315.4C289.3 324.5 269.7 319.6 260.6 304.5L226.7 248.1L264.1 362.9C268.4 373.3 260.7 384 249.8 384H232V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V384H152V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480L88 384z" - } - }, - "free": [ - "solid" - ] - }, - "person-dress-burst": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e544", - "label": "Person Dress BUrst", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M527.1 48C527.1 74.51 506.5 96 479.1 96C453.5 96 431.1 74.51 431.1 48C431.1 21.49 453.5 0 479.1 0C506.5 0 527.1 21.49 527.1 48zM375 362.9L413.3 248.1L379.4 304.5C370.3 319.6 350.7 324.5 335.5 315.4C320.4 306.3 315.5 286.7 324.6 271.5L378.2 182.3C398.4 148.6 434.9 128 474.2 128H485.8C525.1 128 561.6 148.6 581.8 182.3L635.4 271.5C644.5 286.7 639.6 306.3 624.5 315.4C609.3 324.5 589.7 319.6 580.6 304.5L546.7 248.1L584.1 362.9C588.4 373.3 580.7 384 569.8 384H551.1V480C551.1 497.7 537.7 512 519.1 512C502.3 512 487.1 497.7 487.1 480V384H471.1V480C471.1 497.7 457.7 512 439.1 512C422.3 512 407.1 497.7 407.1 480V384H390.2C379.3 384 371.6 373.3 375 362.9L375 362.9zM220.3 92.05L296.4 68.93C302.7 67.03 309.5 69.14 313.6 74.27C317.7 79.39 318.2 86.49 314.1 92.18L275.5 161.3L330.7 199.3L306.3 239.8L255.8 247.6L261.4 327C261.8 333.6 258.3 339.7 252.4 342.6C246.5 345.4 239.4 344.4 234.6 339.9L175.1 286.1L117.4 339.9C112.6 344.4 105.5 345.4 99.63 342.6C93.73 339.7 90.15 333.6 90.62 327L96.21 247.6L17.55 235.4C11.08 234.4 5.868 229.6 4.41 223.2C2.951 216.8 5.538 210.1 10.94 206.4L76.5 161.3L37.01 92.18C33.76 86.49 34.31 79.39 38.39 74.27C42.48 69.14 49.28 67.03 55.55 68.93L131.7 92.05L161.1 18.09C163.6 11.1 169.4 7.1 175.1 7.1C182.6 7.1 188.4 11.1 190.9 18.09L220.3 92.05z" - } - }, - "free": [ - "solid" - ] - }, - "person-drowning": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e545", - "label": "Person Drowning", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M191.1 96.16C191.1 148.8 226.1 195.4 276.3 211.4C316.3 224.2 358.1 225.1 399.1 216.6L504.9 192.8C522.1 188.9 539.3 199.7 543.2 216.9C547.1 234.1 536.3 251.3 519.1 255.2L414.1 279.1C403.6 281.5 392.9 283.3 382.2 284.5L364.5 382.1C350.9 378.9 337.2 372.7 324.8 364.1C302.8 348.6 273.3 348.6 251.2 364.1C234 375.9 213.2 384.5 192 384.5C184.7 384.5 177 383.3 169.2 381.2L190.2 234.5C151.5 200.1 127.1 150.2 127.1 96.16V64C127.1 46.33 142.3 32 159.1 32C177.7 32 191.1 46.33 191.1 64V96.16zM255.1 127.1C255.1 92.65 284.7 63.1 320 63.1C355.3 63.1 384 92.65 384 127.1C384 163.3 355.3 191.1 320 191.1C284.7 191.1 255.1 163.3 255.1 127.1zM384 416C410.9 416 439.4 405.2 461.4 389.9L461.5 389.9C473.4 381.4 489.5 382.1 500.7 391.6C515 403.5 533.2 412.6 551.3 416.8C568.5 420.8 579.2 438.1 575.2 455.3C571.2 472.5 553.1 483.2 536.7 479.2C512.2 473.4 491.9 462.6 478.5 454.2C449.5 469.7 417 480 384 480C352.1 480 323.4 470.1 303.6 461.1C297.7 458.5 292.5 455.8 288 453.4C283.5 455.8 278.3 458.5 272.4 461.1C252.6 470.1 223.9 480 192 480C158.1 480 126.5 469.7 97.5 454.2C84.12 462.6 63.79 473.4 39.27 479.2C22.06 483.2 4.853 472.5 .8422 455.3C-3.169 438.1 7.532 420.8 24.74 416.8C42.84 412.6 60.96 403.5 75.31 391.6C86.46 382.1 102.6 381.4 114.5 389.9L114.6 389.9C136.7 405.2 165.1 416 192 416C219.5 416 247 405.4 269.5 389.9C280.6 382 295.4 382 306.5 389.9C328.1 405.4 356.5 416 384 416H384z" - } - }, - "free": [ - "solid" - ] - }, - "person-falling": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e546", - "label": "Person Falling", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M256 0C273.7 0 288 14.33 288 32V41.84C288 96.45 260.1 146.5 215.5 175.4L215.7 175.8L272.5 255.1H360C375.1 255.1 389.3 263.1 398.4 275.2L441.6 332.8C452.2 346.9 449.3 366.1 435.2 377.6C421.1 388.2 401 385.3 390.4 371.2L352 319.1H254.6L346.9 462.6C356.5 477.5 352.2 497.3 337.4 506.9C322.5 516.5 302.7 512.2 293.1 497.4L132.5 249.2C129.6 258.4 127.1 268.1 127.1 278.2V351.1C127.1 369.7 113.7 383.1 95.1 383.1C78.33 383.1 63.1 369.7 63.1 351.1V278.2C63.1 213 103.6 154.5 164.1 130.3C200.3 115.8 223.1 80.79 223.1 41.84V32C223.1 14.33 238.3 .0003 256 .0003L256 0zM32 80C32 53.49 53.49 32 80 32C106.5 32 128 53.49 128 80C128 106.5 106.5 128 80 128C53.49 128 32 106.5 32 80z" - } - }, - "free": [ - "solid" - ] - }, - "person-falling-burst": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e547", - "label": "Person Falling Burst", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M256 41.84C256 96.45 228.1 146.5 183.5 175.4L183.7 175.8L240.5 255.1H311.1C327.1 255.1 341.3 263.1 350.4 275.2L393.6 332.8C404.2 346.9 401.3 366.1 387.2 377.6C373.1 388.2 353 385.3 342.4 371.2L303.1 319.1H222.6L314.9 462.6C324.5 477.5 320.2 497.3 305.4 506.9C290.5 516.5 270.7 512.2 261.1 497.4L100.5 249.2C97.57 258.4 95.1 268.1 95.1 278.2V351.1C95.1 369.7 81.67 383.1 63.1 383.1C46.33 383.1 31.1 369.7 31.1 351.1V278.2C31.1 213 71.65 154.5 132.1 130.3C168.3 115.8 191.1 80.79 191.1 41.84V32C191.1 14.33 206.3 0 223.1 0C241.7 0 255.1 14.33 255.1 32L256 41.84zM96 79.1C96 106.5 74.51 127.1 48 127.1C21.49 127.1 0 106.5 0 79.1C0 53.49 21.49 31.1 48 31.1C74.51 31.1 96 53.49 96 79.1zM464 286.1L424.7 322.2C423.1 319.3 421.3 316.4 419.2 313.6L382.1 265.3L384.2 247.6L365.8 244.8C351.2 231.5 332.1 223.1 311.1 223.1H292.6C292.5 223.7 292.5 223.4 292.4 223.2C290.1 216.8 293.5 210.1 298.9 206.4L364.5 161.3L325 92.18C321.8 86.49 322.3 79.39 326.4 74.27C330.5 69.14 337.3 67.03 343.6 68.93L419.7 92.05L449.1 18.09C451.6 11.1 457.4 8 464 8C470.6 8 476.4 11.1 478.9 18.09L508.3 92.05L584.4 68.93C590.7 67.03 597.5 69.14 601.6 74.27C605.7 79.39 606.2 86.49 602.1 92.18L563.5 161.3L629.1 206.4C634.5 210.1 637 216.8 635.6 223.2C634.1 229.6 628.9 234.4 622.4 235.4L543.8 247.6L549.4 327C549.8 333.6 546.3 339.7 540.4 342.6C534.5 345.4 527.4 344.4 522.6 339.9L464 286.1z" - } - }, - "free": [ - "solid" - ] - }, - "person-half-dress": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e548", - "label": "Person Half-dress", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48zM168 128H174.9C208.6 128 239.8 145.7 257.2 174.6L315.4 271.5C324.5 286.7 319.6 306.3 304.5 315.4C289.3 324.5 269.7 319.6 260.6 304.5L232 256.9V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480L168 128zM58.18 182.3C78.06 149.2 113.5 128.8 152 128V480.2C151.9 497.8 137.6 512 120 512C102.3 512 88 497.7 88 480V384H70.2C59.28 384 51.57 373.3 55.02 362.9L93.28 248.1L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L58.18 182.3z" - } - }, - "free": [ - "solid" - ] - }, - "person-harassing": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e549", - "label": "Person Harassing", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M144 48C144 21.49 165.5 0 192 0C218.5 0 240 21.49 240 48C240 74.51 218.5 96 192 96C165.5 96 144 74.51 144 48V48zM15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C80.2 145.7 111.4 128 145.1 128H181C209.6 128 236.7 140.7 254.9 162.7L328.6 251.6C339.9 265.2 338 285.3 324.4 296.6C310.8 307.9 290.7 306 279.4 292.4L232 235.3V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V352H152V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480V256.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4H15.52zM480 240C480 266.5 458.5 288 432 288C405.5 288 384 266.5 384 240C384 213.5 405.5 192 432 192C458.5 192 480 213.5 480 240zM464 344C464 313.1 489.1 288 520 288C550.9 288 576 313.1 576 344V446.1C576 482.5 546.5 512 510.1 512C492.6 512 475.8 505.1 463.4 492.7L408.8 438L380.6 494.3C372.7 510.1 353.5 516.5 337.7 508.6C321.9 500.7 315.5 481.5 323.4 465.7L371.4 369.7C375.1 360.5 384.7 354.1 394.9 352.4C405 350.8 415.4 354.1 422.6 361.4L464 402.7V344zM288 48C288 39.16 295.2 32 304 32H360C368.8 32 376 39.16 376 48C376 56.84 368.8 64 360 64H304C295.2 64 288 56.84 288 48zM335.2 121.7C343.1 125.6 346.3 135.3 342.3 143.2C338.4 151.1 328.7 154.3 320.8 150.3L272.8 126.3C264.9 122.4 261.7 112.7 265.7 104.8C269.6 96.94 279.3 93.74 287.2 97.69L335.2 121.7z" - } - }, - "free": [ - "solid" - ] - }, - "person-hiking": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6ec", - "aliases": { - "names": [ - "hiking" - ], - "unicodes": { - "secondary": [ - "10f6ec" - ] - } - }, - "label": "Person hiking", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573294, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M240 96c26.5 0 48-21.5 48-48S266.5 0 240 0C213.5 0 192 21.5 192 48S213.5 96 240 96zM80.01 287.1c7.31 0 13.97-4.762 15.87-11.86L137 117c.3468-1.291 .5125-2.588 .5125-3.866c0-7.011-4.986-13.44-12.39-15.13C118.4 96.38 111.7 95.6 105.1 95.6c-36.65 0-70 23.84-79.32 59.53L.5119 253.3C.1636 254.6-.0025 255.9-.0025 257.2c0 7.003 4.961 13.42 12.36 15.11L76.01 287.5C77.35 287.8 78.69 287.1 80.01 287.1zM368 160h-15.1c-8.875 0-15.1 7.125-15.1 16V192h-34.75l-46.75-46.75C243.4 134.1 228.6 128 212.9 128C185.9 128 162.5 146.3 155.9 172.5L129 280.3C128.4 282.8 128 285.5 128 288.1c0 8.325 3.265 16.44 9.354 22.53l86.62 86.63V480c0 17.62 14.37 32 31.1 32s32-14.38 32-32v-82.75c0-17.12-6.625-33.13-18.75-45.25l-46.87-46.88c.25-.5 .5-.875 .625-1.375l19.1-79.5l22.37 22.38C271.4 252.6 279.5 256 288 256h47.1v240c0 8.875 7.125 16 15.1 16h15.1C376.9 512 384 504.9 384 496v-320C384 167.1 376.9 160 368 160zM81.01 472.3c-.672 2.63-.993 5.267-.993 7.86c0 14.29 9.749 27.29 24.24 30.89C106.9 511.8 109.5 512 112 512c14.37 0 27.37-9.75 30.1-24.25l25.25-101l-52.75-52.75L81.01 472.3z" - } - }, - "free": [ - "solid" - ] - }, - "person-military-pointing": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e54a", - "label": "Person Military-pointing", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M366.7 1.443C376 .6658 384 8.027 384 17.39V47.1C384 56.84 376.8 63.1 368 63.1H216.1C203.2 63.1 192 52.81 192 39C192 25.1 201.1 15.17 214.9 14.09L366.7 1.443zM208 111.1C208 106.5 208.6 101.2 209.6 95.1H366.4C367.5 101.2 368 106.5 368 111.1C368 156.2 332.2 191.1 288 191.1C243.8 191.1 208 156.2 208 111.1V111.1zM313.2 223.1C327.6 223.1 341.6 226.3 354.9 230.5L192 393.4V303.1H40.01C17.92 303.1 .0077 286.1 .0077 263.1C.0077 241.9 17.92 223.1 40.01 223.1H313.2zM430.3 290.8L506.4 419.7C517.7 438.7 511.4 463.2 492.4 474.4C473.3 485.7 448.8 479.4 437.6 460.3L384 369.7V416H214.6L385.7 244.9C403.7 256.3 419.1 271.9 430.3 290.8V290.8zM384 448V480C384 497.7 369.7 512 352 512H224C206.3 512 192 497.7 192 480V448H384z" - } - }, - "free": [ - "solid" - ] - }, - "person-military-rifle": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e54b", - "label": "Person Military-rifle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M128 39C128 25.1 137.1 15.17 150.9 14.09L302.7 1.443C312 .6658 320 8.027 320 17.39V47.1C320 56.84 312.8 63.1 304 63.1H152.1C139.2 63.1 128 52.81 128 39V39zM302.4 95.1C303.5 101.2 304 106.5 304 111.1C304 156.2 268.2 191.1 224 191.1C179.8 191.1 144 156.2 144 111.1C144 106.5 144.6 101.2 145.6 95.1H302.4zM373.6 460.3L320 369.7V480C320 481.3 319.9 482.5 319.8 483.8L145.5 234.9C162.1 227.8 180.2 223.1 198.8 223.1H249.2C265.1 223.1 280.6 226.8 295 231.9L389.9 67.71C382.2 63.3 379.6 53.51 384 45.86C388.4 38.21 398.2 35.58 405.9 40L433.6 56C441.2 60.42 443.8 70.21 439.4 77.86L383.1 173.9L385.6 174.9C400.9 183.7 406.1 203.3 397.3 218.6L360.6 282C362.6 284.9 364.5 287.8 366.3 290.8L442.4 419.7C453.7 438.7 447.4 463.2 428.4 474.4C409.3 485.7 384.8 479.4 373.6 460.3V460.3zM264 319.1C277.3 319.1 288 309.3 288 295.1C288 282.7 277.3 271.1 264 271.1C250.7 271.1 240 282.7 240 295.1C240 309.3 250.7 319.1 264 319.1zM160 512C142.3 512 128 497.7 128 480V369.7L74.44 460.3C63.21 479.4 38.68 485.7 19.66 474.4C.6381 463.2-5.669 438.7 5.569 419.7L81.7 290.8C91.06 274.1 103.4 261.5 117.7 250.8L299.1 510C295.6 511.3 291.9 512 288 512L160 512z" - } - }, - "free": [ - "solid" - ] - }, - "person-military-to-person": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e54c", - "label": "Person Military-to-person", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M182.2 .0998C191.7-.9534 200 6.466 200 16V30.13C200 38.91 192.9 46.05 184.1 46.13H72.74C63.48 46.04 56 38.52 56 29.24C56 20.64 62.47 13.41 71.02 12.46L182.2 .0998zM192 96C192 131.3 163.3 160 128 160C92.65 160 64 131.3 64 96C64 89.8 64.88 83.8 66.53 78.13H189.5C191.1 83.8 192 89.8 192 96V96zM32 256C32 237.2 40.09 220.3 52.97 208.6L197.2 319.6C195.5 319.9 193.8 320 192 320H64C46.33 320 32 305.7 32 288L32 256zM222.2 298.5L85.05 192.9C88.61 192.3 92.27 191.1 96 191.1H160C195.3 191.1 224 220.7 224 255.1V287.1C224 291.7 223.4 295.2 222.2 298.5V298.5zM320 96C320 60.65 348.7 31.1 384 31.1C419.3 31.1 448 60.65 448 96C448 131.3 419.3 160 384 160C348.7 160 320 131.3 320 96zM416 192C451.3 192 480 220.7 480 256V288C480 305.7 465.7 320 448 320H320C302.3 320 288 305.7 288 288V256C288 220.7 316.7 192 352 192H416zM151.8 506.1C141.8 514.8 126.7 513.8 117.9 503.8C109.2 493.8 110.2 478.7 120.2 469.9L136.1 456L23.1 455.1C10.74 455.1-.0003 445.2 0 431.1C.0003 418.7 10.75 407.1 24 407.1L136.1 408L120.2 394.1C110.2 385.3 109.2 370.2 117.9 360.2C126.7 350.2 141.8 349.2 151.8 357.9L215.8 413.9C221 418.5 224 425.1 224 431.1C224 438.9 221 445.5 215.8 450.1L151.8 506.1zM296.2 413.9L360.2 357.9C370.2 349.2 385.3 350.2 394.1 360.2C402.8 370.2 401.8 385.3 391.8 394.1L375.9 407.1L488 407.1C501.3 407.1 512 418.7 512 431.1C512 445.2 501.3 455.1 488 455.1L375.9 455.1L391.8 469.9C401.8 478.7 402.8 493.8 394.1 503.8C385.3 513.8 370.2 514.8 360.2 506.1L296.2 450.1C290.1 445.5 288 438.9 288 431.1C288 425.1 290.1 418.5 296.2 413.9H296.2z" - } - }, - "free": [ - "solid" - ] - }, - "person-praying": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f683", - "aliases": { - "names": [ - "pray" - ], - "unicodes": { - "composite": [ - "1f6d0" - ], - "secondary": [ - "10f683" - ] - } - }, - "label": "Person praying", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M255.1 128c35.38 0 63.1-28.62 63.1-64s-28.62-64-63.1-64S191.1 28.62 191.1 64S220.6 128 255.1 128zM225.4 297.8c14 16.75 39 19.12 56.01 5.25l88.01-72c17-14 19.5-39.25 5.625-56.38c-14-17.12-39.25-19.5-56.38-5.625L261.3 216l-39-46.25c-15.38-18.38-39.13-27.88-64.01-25.38c-24.13 2.5-45.25 16.25-56.38 37l-49.38 92C29.13 317 43.88 369.8 86.76 397.1L131.5 432H40C17.88 432 0 449.9 0 472S17.88 512 40 512h208c34.13 0 53.76-42.75 28.25-68.25L166.4 333.9L201.3 269L225.4 297.8z" - } - }, - "free": [ - "solid" - ] - }, - "person-pregnant": { - "changes": [ - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e31e", - "label": "Person Pregnant", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M112 48C112 21.49 133.5 0 160 0C186.5 0 208 21.49 208 48C208 74.51 186.5 96 160 96C133.5 96 112 74.51 112 48zM88 382.1C74.2 379.4 64 366.9 64 352V296.9L59.43 304.5C50.33 319.6 30.67 324.5 15.52 315.4C.3696 306.3-4.531 286.7 4.573 271.5L62.85 174.6C77.84 149.6 103.2 133 131.5 128.1C135.6 128.3 139.8 128 144 128H160C161.4 128 162.8 128.1 164.1 128.3C199.8 131.2 229.5 157.6 236.2 193.3L242.3 225.7C286.6 234.3 320 273.2 320 320V352C320 369.7 305.7 384 288 384H232V480C232 497.7 217.7 512 200 512C182.3 512 168 497.7 168 480V384H152V480C152 497.7 137.7 512 120 512C102.3 512 88 497.7 88 480L88 382.1z" - } - }, - "free": [ - "solid" - ] - }, - "person-rays": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e54d", - "label": "Person Rays", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M304 48C304 74.51 282.5 96 256 96C229.5 96 208 74.51 208 48C208 21.49 229.5 0 256 0C282.5 0 304 21.49 304 48zM248 352V480C248 497.7 233.7 512 216 512C198.3 512 184 497.7 184 480V256.9L155.4 304.5C146.3 319.6 126.7 324.5 111.5 315.4C96.37 306.3 91.47 286.7 100.6 271.5L158.8 174.6C176.2 145.7 207.4 128 241.1 128H270.9C304.6 128 335.8 145.7 353.2 174.6L411.4 271.5C420.5 286.7 415.6 306.3 400.5 315.4C385.3 324.5 365.7 319.6 356.6 304.5L328 256.9V480C328 497.7 313.7 512 296 512C278.3 512 264 497.7 264 480V352L248 352zM7.029 7.029C16.4-2.343 31.6-2.343 40.97 7.029L120.1 87.03C130.3 96.4 130.3 111.6 120.1 120.1C111.6 130.3 96.4 130.3 87.03 120.1L7.029 40.97C-2.343 31.6-2.343 16.4 7.029 7.029V7.029zM471 7.029C480.4-2.343 495.6-2.343 504.1 7.029C514.3 16.4 514.3 31.6 504.1 40.97L424.1 120.1C415.6 130.3 400.4 130.3 391 120.1C381.7 111.6 381.7 96.4 391 87.03L471 7.029zM7.029 471L87.03 391C96.4 381.7 111.6 381.7 120.1 391C130.3 400.4 130.3 415.6 120.1 424.1L40.97 504.1C31.6 514.3 16.4 514.3 7.029 504.1C-2.343 495.6-2.343 480.4 7.029 471V471zM391 424.1C381.7 415.6 381.7 400.4 391 391C400.4 381.7 415.6 381.7 424.1 391L504.1 471C514.3 480.4 514.3 495.6 504.1 504.1C495.6 514.3 480.4 514.3 471 504.1L391 424.1z" - } - }, - "free": [ - "solid" - ] - }, - "person-rifle": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e54e", - "label": "Person Rifle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M265.2 192C290.6 192 315 199.1 336 211.9V512H144V337.7L90.44 428.3C79.21 447.4 54.68 453.7 35.66 442.4C16.64 431.2 10.33 406.7 21.57 387.7L97.7 258.8C122.2 217.4 166.7 192 214.8 192L265.2 192zM320 80C320 124.2 284.2 160 240 160C195.8 160 160 124.2 160 80C160 35.82 195.8 .0003 240 .0003C284.2 .0003 320 35.82 320 80zM464 16V132.3C473.6 137.8 480 148.2 480 160V269.3L496 264V208C496 199.2 503.2 192 512 192H528C536.8 192 544 199.2 544 208V292.5C544 299.4 539.6 305.5 533.1 307.6L480 325.3V352H528C536.8 352 544 359.2 544 368V384C544 392.8 536.8 400 528 400H484L507 492.1C509.6 502.2 501.9 512 491.5 512H432C423.2 512 416 504.8 416 496V400H400C382.3 400 368 385.7 368 368V224C368 206.3 382.3 192 400 192V160C400 148.2 406.4 137.8 416 132.3V32C407.2 32 400 24.84 400 16C400 7.164 407.2 0 416 0H448C456.8 0 464 7.164 464 16V16z" - } - }, - "free": [ - "solid" - ] - }, - "person-running": { - "changes": [ - "5.4.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f70c", - "aliases": { - "names": [ - "running" - ], - "unicodes": { - "composite": [ - "1f3c3" - ], - "secondary": [ - "10f70c" - ] - } - }, - "label": "Person running", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 224h-44l-26.12-53.25c-12.5-25.5-35.38-44.25-61.75-51L197 98.63C189.5 96.84 181.1 95.97 174.5 95.97c-20.88 0-41.33 6.81-58.26 19.78L76.5 146.3C68.31 152.5 64.01 162 64.01 171.6c0 17.11 13.67 32.02 32.02 32.02c6.808 0 13.67-2.158 19.47-6.616l39.63-30.38c5.92-4.488 13.01-6.787 19.53-6.787c2.017 0 3.981 .2196 5.841 .6623l14.62 4.25l-37.5 87.5C154.1 260.3 152.5 268.8 152.5 277.2c0 22.09 11.49 43.52 31.51 55.29l85 50.13l-27.5 87.75c-.9875 3.174-1.458 6.388-1.458 9.55c0 13.65 8.757 26.31 22.46 30.58C265.6 511.5 268.9 512 272 512c13.62 0 26.25-8.75 30.5-22.5l31.75-101c1.211-4.278 1.796-8.625 1.796-12.93c0-16.57-8.661-32.51-23.55-41.44l-61.13-36.12l31.25-78.38l20.25 41.5C310.9 277.4 327.9 288 345.1 288H400c17.62 0 32-14.38 32-32C432 238.3 417.6 224 400 224zM288 96c26.5 0 48-21.5 48-48s-21.5-48-48-48s-48 21.5-48 48S261.5 96 288 96zM129.8 317.5L114.9 352H48c-17.62 0-32 14.38-32 32s14.38 32 32 32h77.5c19.25 0 36.5-11.5 44-29.12l8.875-20.5l-10.75-6.25C150.4 349.9 137.6 334.8 129.8 317.5z" - } - }, - "free": [ - "solid" - ] - }, - "person-shelter": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e54f", - "label": "Person Shelter", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M495.9 132.2C505.8 137.9 512 148.5 512 160V480C512 497.7 497.7 512 480 512C462.3 512 448 497.7 448 480V178.6L256 68.86L64 178.6V480C64 497.7 49.67 512 32 512C14.33 512 0 497.7 0 480V160C0 148.5 6.153 137.9 16.12 132.2L240.1 4.216C249.1-1.405 262-1.405 271.9 4.216L495.9 132.2zM216 168C216 145.9 233.9 128 256 128C278.1 128 296 145.9 296 168C296 190.1 278.1 208 256 208C233.9 208 216 190.1 216 168zM224 512C210.7 512 200 501.3 200 488V313.5L173.1 363.4C166.8 375 152.3 379.4 140.6 373.1C128.1 366.8 124.6 352.3 130.9 340.6L168.7 270.3C184.1 241.8 213.9 223.1 246.2 223.1H265.8C298.1 223.1 327.9 241.8 343.3 270.3L381.1 340.6C387.4 352.3 383 366.8 371.4 373.1C359.7 379.4 345.2 375 338.9 363.4L312 313.5V488C312 501.3 301.3 512 288 512C274.7 512 264 501.3 264 488V400H248V488C248 501.3 237.3 512 224 512V512z" - } - }, - "free": [ - "solid" - ] - }, - "person-skating": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7c5", - "aliases": { - "names": [ - "skating" - ], - "unicodes": { - "secondary": [ - "10f7c5" - ] - } - }, - "label": "Person skating", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573295, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M399.1 0c-26.5 0-48.01 21.5-48.01 48S373.5 96 399.1 96C426.5 96 448 74.5 448 48S426.5 0 399.1 0zM399.1 448c-8.751 0-16 7.25-16 16S376.7 480 367.1 480h-96.01c-8.751 0-16 7.25-16 16s7.251 16 16 16h96.01c26.5 0 48.01-21.5 48.01-48C415.1 455.2 408.7 448 399.1 448zM129.1 451.9c-11.34 0-11.19 9.36-22.65 9.36c-4.074 0-8.163-1.516-11.21-4.625l-67.98-67.89c-3.063-3.125-7.165-4.688-11.27-4.688c-4.102 0-8.204 1.562-11.27 4.688C1.562 391.8-.0001 395.9-.0001 400s1.562 8.203 4.688 11.27l67.88 67.98c9.376 9.375 21.59 14 33.96 14c13.23 0 38.57-8.992 38.57-25.36C145.1 456.7 135.2 451.9 129.1 451.9zM173.8 276.8L80.2 370.5c-6.251 6.25-9.376 14.44-9.376 22.62c0 24.75 22.57 32 31.88 32c8.251 0 16.5-3.125 22.63-9.375l91.89-92l-30.13-30.12C182.1 288.6 177.7 282.9 173.8 276.8zM127.1 160h105.5L213.3 177.3c-21.18 18.04-22.31 41.73-22.31 48.65c0 16.93 6.8 33.22 18.68 45.1l78.26 78.25V432c0 17.75 14.25 32 32 32s32-14.25 32-32v-89.38c0-12.62-5.126-25-14.13-33.88l-61.01-61c.5001-.5 1.25-.625 1.75-1.125l82.26-82.38c7.703-7.702 11.76-17.87 11.76-28.25c0-22.04-17.86-39.97-40.01-39.97L127.1 96C110.2 96 95.96 110.2 95.96 128S110.2 160 127.1 160z" - } - }, - "free": [ - "solid" - ] - }, - "person-skiing": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7c9", - "aliases": { - "names": [ - "skiing" - ], - "unicodes": { - "composite": [ - "26f7" - ], - "secondary": [ - "10f7c9" - ] - } - }, - "label": "Person skiing", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M432.1 96.02c26.51 0 47.99-21.5 47.99-48.01S458.6 0 432.1 0s-47.98 21.5-47.98 48.01S405.6 96.02 432.1 96.02zM511.1 469.1c0-13.98-11.33-23.95-23.89-23.95c-18.89 0-19.23 19.11-46.15 19.11c-5.476 0-10.87-1.081-15.87-3.389l-135.8-70.26l49.15-73.82c5.446-8.116 8.09-17.39 8.09-26.63c0-12.4-4.776-24.73-14.09-33.9l-40.38-40.49l-106.1-53.1C185.6 165.8 185.4 169 185.4 172.2c0 16.65 6.337 32.78 18.42 44.86l75.03 75.21l-45.88 68.76L34.97 258.8C31.44 257 27.64 256.1 23.93 256.1C9.675 256.1 0 267.8 0 280.1c0 8.673 4.735 17.04 12.96 21.24l392 202.6c11.88 5.501 24.45 8.119 37.08 8.119C480.1 512 511.1 486.7 511.1 469.1zM119.1 91.65L108.5 114.2C114.2 117 120.2 118.4 126.2 118.4c9.153 0 18.1-3.2 25.06-9.102l47.26 23.51c-.125 0-.125 .125-.2501 .25l114.5 56.76l32.51-13l6.376 19.13c4.001 12.13 12.63 22.01 24 27.76l58.14 28.1c4.609 2.287 9.455 3.355 14.26 3.355c18.8 0 31.98-15.43 31.98-31.93c0-11.74-6.461-23.1-17.74-28.7l-52.03-26.1l-17.12-51.15C386.6 98.69 364.2 73.99 333.1 73.99c-7.658 0-15.82 1.504-24.43 4.934L227.4 111.3L164.9 80.33c.009-.3461 .0134-.692 .0134-1.038c0-14.13-7.468-27.7-20.89-34.53L132.9 66.45L98.17 59.43C97.83 59.36 97.53 59.35 97.19 59.35c-2.666 0-5.276 2.177-5.276 5.273c0 1.473 .648 2.936 1.81 3.961L119.1 91.65z" - } - }, - "free": [ - "solid" - ] - }, - "person-skiing-nordic": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ca", - "aliases": { - "names": [ - "skiing-nordic" - ], - "unicodes": { - "secondary": [ - "10f7ca" - ] - } - }, - "label": "Person skiing nordic", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M336 96C362.5 96 384 74.5 384 48S362.5 0 336 0S288 21.5 288 48S309.5 96 336 96zM552 416c-13.25 0-24 10.75-24 24s-10.75 24-24 24h-69.5L460 285.6c11.75-4.75 20.04-16.31 20.04-29.69c0-17.75-14.38-31.95-32.01-31.95l-43.9-.0393l-26.11-53.22c-12.5-25.5-35.5-44.12-61.75-50.87l-71.22-21.15c-7.475-1.819-15.08-2.693-22.59-2.693c-20.86 0-41.25 6.854-58.16 19.72L124.6 146.2C116.3 152.5 111.1 161.1 111.1 171.6c0 14.71 8.712 21.23 9.031 21.6L66.88 464H24C10.75 464 0 474.8 0 488S10.75 512 24 512h480c39.75 0 72-32.25 72-72C576 426.8 565.3 416 552 416zM291.6 463.9H194.7l43.1-90.97l-21.99-12.1c-12.13-7.25-21.99-16.89-29.49-27.77l-62.48 131.7L99.5 464l52.25-261.4c4.125-1 8.112-2.846 11.74-5.596l39.81-30.45c5.821-4.485 12.86-6.771 19.38-6.771c2.021 0 4.015 .212 5.878 .6556l14.73 4.383L205.8 252.2C202.3 260.3 200.7 268.9 200.7 277.3c0 22.06 11.42 43.37 31.41 55.22l84.97 50.15L291.6 463.9zM402.1 464l-43.58-.125l23.6-75.48c1.221-4.314 1.805-8.69 1.805-13.03c0-16.53-8.558-32.43-23.41-41.34l-61.21-36.1l31.32-78.23l20.26 41.36c8 16.25 24.86 26.89 43.11 26.89L427.3 288L402.1 464z" - } - }, - "free": [ - "solid" - ] - }, - "person-snowboarding": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7ce", - "aliases": { - "names": [ - "snowboarding" - ], - "unicodes": { - "composite": [ - "1f3c2" - ], - "secondary": [ - "10f7ce" - ] - } - }, - "label": "Person snowboarding", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M460.7 249.6c5.877 4.25 12.47 6.393 19.22 6.393c10.76 0 32.05-8.404 32.05-31.97c0-9.74-4.422-19.36-12.8-25.65l-111.5-83.48c-13.75-10.25-29.04-18.42-45.42-23.79l-63.66-21.23l-26.12-52.12c-5.589-11.17-16.9-17.64-28.63-17.64c-17.8 0-31.99 14.47-31.99 32.01c0 4.803 1.086 9.674 3.374 14.25l29.12 58.12c5.75 11.38 15.55 19.85 27.67 23.98l16.45 5.522L227.3 154.6C205.5 165.5 191.9 187.4 191.9 211.8L191.9 264.9L117.8 289.6C104.4 294.1 95.95 306.5 95.95 319.9c0 12.05 6.004 19.05 10.33 23.09l-38.68-14.14C41.23 319.4 49.11 295 23.97 295c-18.67 0-23.97 17.16-23.97 24.09c0 8.553 13.68 41.32 51.13 54.88l364.1 132.8C425.7 510.2 435.7 512 445.7 512c12.5 0 24.97-2.732 36.47-8.232c8.723-3.997 13.85-12.71 13.85-21.77c0-18.67-17.15-23.96-24.06-23.96c-3.375 0-6.73 .7505-9.998 2.248c-5.111 2.486-10.64 3.702-16.21 3.702c-4.511 0-9.049-.7978-13.41-2.364l-90.68-33.12c8.625-4.125 15.53-11.76 17.78-21.89l21.88-101.1c.7086-3.335 1.05-6.668 1.05-10c0-14.91-6.906-29.31-19.17-38.4l-52.01-39l66.01-30.5L460.7 249.6zM316.3 301.3l-19.66 92c-.4205 1.997-.5923 3.976-.5923 5.911c0 4.968 1.264 9.691 3.333 14.01l-169.5-61.49c2.625-.25 5.492-.4448 8.117-1.32l85-28.38c19.63-6.5 32.77-24.73 32.77-45.48l0-20.53L316.3 301.3zM431.9 95.99c26.5 0 48-21.5 48-47.1S458.4 0 431.9 0s-48 21.5-48 47.1S405.4 95.99 431.9 95.99z" - } - }, - "free": [ - "solid" - ] - }, - "person-swimming": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5c4", - "aliases": { - "names": [ - "swimmer" - ], - "unicodes": { - "composite": [ - "1f3ca" - ], - "secondary": [ - "10f5c4" - ] - } - }, - "label": "Person swimming", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M192.4 320c63.38 0 54.09-39.67 95.33-40.02c42.54 .3672 31.81 40.02 95.91 40.02c39.27 0 55.72-18.41 62.21-24.83l-140.4-116.1c3.292-1.689 31.66-18.2 75.25-18.2c12.57 0 25.18 1.397 37.53 4.21l38.59 8.844c2.412 .5592 4.824 .8272 7.2 .8272c15.91 0 31.96-12.81 31.96-32.04c0-14.58-10.03-27.77-24.84-31.16l-38.59-8.844c-17.06-3.904-34.46-5.837-51.81-5.837c-120.1 0-177.4 85.87-178.1 88.02L179.1 213.3C158.1 241.3 147.4 273.8 145 307.7C157.5 315.4 174.3 320 192.4 320zM576 397c0-15.14-10.82-28.59-26.25-31.42c-48.52-8.888-45.5-29.48-69.6-29.48c-25.02 0-31.19 31.79-96.18 31.79c-48.59 0-72.72-22.06-73.38-22.62c-6.141-6.157-14.26-9.188-22.42-9.188c-24.75 0-31.59 31.81-96.2 31.81c-48.59 0-72.69-22.03-73.41-22.59c-6.125-6.157-14.3-9.245-22.46-9.245c-8.072 0-16.12 3.026-22.38 8.901c-29.01 26.25-73.75 12.54-73.75 52.08c0 16.08 12.77 32.07 31.71 32.07c9.77 0 39.65-7.34 64.26-21.84C115.5 418.8 147.4 431.1 192 431.1s76.5-13.12 96-24.66c19.53 11.53 51.47 24.59 96 24.59c44.59 0 76.56-13.09 96.06-24.62c24.71 14.57 54.74 21.83 64.24 21.83C563.2 429.1 576 413.3 576 397zM95.1 224c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C31.1 195.3 60.65 224 95.1 224z" - } - }, - "free": [ - "solid" - ] - }, - "person-through-window": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e5a9", - "label": "Person Through-window", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M191.1 128C191.1 154.5 170.5 176 143.1 176C117.5 176 95.1 154.5 95.1 128C95.1 101.5 117.5 80 143.1 80C170.5 80 191.1 101.5 191.1 128zM385 336H310.5L394.6 462.2C404.4 476.1 400.5 496.8 385.8 506.6C371 516.4 351.2 512.5 341.4 497.8L308.2 448H48C21.49 448 0 426.5 0 400V48C0 21.49 21.49 0 48 0H592C618.5 0 640 21.49 640 48V400C640 426.5 618.5 448 592 448H421.9L379.2 384H425L385 336zM63.1 64V384H127.1C127.1 384 127.1 384 127.1 384V310.2C127.1 245 167.6 186.5 228.1 162.3C264.3 147.8 287.1 112.8 287.1 73.84V64H63.1zM352 64V73.84C352 128.5 324.1 178.5 279.5 207.4C279.8 207.9 280.1 208.4 280.4 208.9L321.4 271.1H392.5C406.8 271.1 420.3 278.3 429.4 289.3L508.3 384H576V64H352zM265.5 384L196.7 280.7C193.6 290 191.1 299.1 191.1 310.2V383.1C191.1 383.1 191.1 384 191.1 383.1L265.5 384z" - } - }, - "free": [ - "solid" - ] - }, - "person-walking": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f554", - "aliases": { - "names": [ - "walking" - ], - "unicodes": { - "composite": [ - "1f6b6" - ], - "secondary": [ - "10f554" - ] - } - }, - "label": "Person walking", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M256 48C256 74.51 234.5 96 208 96C181.5 96 160 74.51 160 48C160 21.49 181.5 0 208 0C234.5 0 256 21.49 256 48zM126.5 199.3C125.6 199.7 124.6 200.1 123.7 200.5L112.7 205.4C97.41 212.2 85.42 224.6 79.22 240.1L77.71 243.9C71.15 260.3 52.53 268.3 36.12 261.7C19.71 255.1 11.73 236.5 18.29 220.1L19.8 216.3C32.19 185.4 56.18 160.5 86.66 146.9L97.66 142C118.5 132.8 140.1 128 163.7 128C208.3 128 248.5 154.8 265.6 195.9L280.1 232.7L302.3 243.4C318.1 251.3 324.5 270.5 316.6 286.3C308.7 302.1 289.5 308.5 273.7 300.6L247 287.3C236.7 282.1 228.6 273.4 224.2 262.8L214.6 239.8L195.3 305.3L244.8 359.4C250.2 365.3 254.1 372.4 256 380.2L279 472.2C283.3 489.4 272.9 506.8 255.8 511C238.6 515.3 221.2 504.9 216.1 487.8L194.9 399.6L124.3 322.5C109.5 306.4 103.1 283.9 109.6 262.8L126.5 199.3zM68.73 398L93.69 335.6C95.84 338.6 98.16 341.4 100.7 344.2L141.4 388.6L126.9 424.8C124.5 430.9 120.9 436.4 116.3 440.9L54.63 502.6C42.13 515.1 21.87 515.1 9.372 502.6C-3.124 490.1-3.124 469.9 9.372 457.4L68.73 398z" - } - }, - "free": [ - "solid" - ] - }, - "person-walking-arrow-loop-left": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e551", - "label": "Person Walking-arrow-loop-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M160 48C160 21.49 181.5 0 208 0C234.5 0 256 21.49 256 48C256 74.51 234.5 96 208 96C181.5 96 160 74.51 160 48V48zM112.7 205.4C97.41 212.2 85.42 224.6 79.22 240.1L77.71 243.9C71.15 260.3 52.53 268.3 36.12 261.7C19.71 255.1 11.73 236.5 18.29 220.1L19.8 216.3C32.19 185.4 56.18 160.5 86.66 146.9L97.66 142C118.5 132.8 140.1 128 163.7 128C208.3 128 248.5 154.8 265.6 195.9L280.1 232.7L302.3 243.4C318.1 251.3 324.5 270.5 316.6 286.3C308.7 302.1 289.5 308.5 273.7 300.6L247 287.3C236.7 282.1 228.6 273.4 224.2 262.8L214.6 239.8L195.3 305.3L244.8 359.4C250.2 365.3 254.1 372.4 256 380.2L279 472.2C283.3 489.4 272.9 506.8 255.8 511C238.6 515.3 221.2 504.9 216.1 487.8L194.9 399.6L124.3 322.5C109.5 306.4 103.1 283.9 109.6 262.8L126.5 199.3C125.6 199.7 124.6 200.1 123.7 200.5L112.7 205.4zM100.7 344.2L141.4 388.6L126.9 424.8C124.5 430.9 120.9 436.4 116.3 440.9L54.63 502.6C42.13 515.1 21.87 515.1 9.372 502.6C-3.124 490.1-3.124 469.9 9.372 457.4L68.73 398L93.69 335.6C95.84 338.6 98.17 341.4 100.7 344.2H100.7zM361.4 374.6C348.9 362.1 348.9 341.9 361.4 329.4L441.4 249.4C453.9 236.9 474.1 236.9 486.6 249.4C499.1 261.9 499.1 282.1 486.6 294.6L461.3 320H480C533 320 576 277 576 224C576 170.1 533 128 480 128H352C334.3 128 319.1 113.7 319.1 96C319.1 78.33 334.3 64 352 64H480C568.4 64 640 135.6 640 224C640 312.4 568.4 384 480 384H461.3L486.6 409.4C499.1 421.9 499.1 442.1 486.6 454.6C474.1 467.1 453.9 467.1 441.4 454.6L361.4 374.6z" - } - }, - "free": [ - "solid" - ] - }, - "person-walking-arrow-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e552", - "label": "Person Walking-arrow-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M160 48C160 21.49 181.5 0 208 0C234.5 0 256 21.49 256 48C256 74.51 234.5 96 208 96C181.5 96 160 74.51 160 48V48zM112.7 205.4C97.41 212.2 85.42 224.6 79.22 240.1L77.71 243.9C71.15 260.3 52.53 268.3 36.12 261.7C19.71 255.1 11.73 236.5 18.29 220.1L19.8 216.3C32.19 185.4 56.18 160.5 86.66 146.9L97.66 142C118.5 132.8 140.1 128 163.7 128C208.3 128 248.5 154.8 265.6 195.9L280.1 232.7L302.3 243.4C318.1 251.3 324.5 270.5 316.6 286.3C308.7 302.1 289.5 308.5 273.7 300.6L247 287.3C236.7 282.1 228.6 273.4 224.2 262.8L214.6 239.8L195.3 305.3L244.8 359.4C250.2 365.3 254.1 372.4 256 380.2L279 472.2C283.3 489.4 272.9 506.8 255.8 511C238.6 515.3 221.2 504.9 216.1 487.8L194.9 399.6L124.3 322.5C109.5 306.4 103.1 283.9 109.6 262.8L126.5 199.3C125.6 199.7 124.6 200.1 123.7 200.5L112.7 205.4zM100.7 344.2L141.4 388.6L126.9 424.8C124.5 430.9 120.9 436.4 116.3 440.9L54.63 502.6C42.13 515.1 21.87 515.1 9.372 502.6C-3.124 490.1-3.124 469.9 9.372 457.4L68.73 398L93.69 335.6C95.84 338.6 98.17 341.4 100.7 344.2H100.7zM630.6 233.4C643.1 245.9 643.1 266.1 630.6 278.6L550.6 358.6C538.1 371.1 517.9 371.1 505.4 358.6C492.9 346.1 492.9 325.9 505.4 313.4L530.7 288H384C366.3 288 352 273.7 352 256C352 238.3 366.3 224 384 224H530.7L505.4 198.6C492.9 186.1 492.9 165.9 505.4 153.4C517.9 140.9 538.1 140.9 550.6 153.4L630.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "person-walking-dashed-line-arrow-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e553", - "label": "Person Walking-dashed-line-arrow-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M160 48C160 21.49 181.5 0 208 0C234.5 0 256 21.49 256 48C256 74.51 234.5 96 208 96C181.5 96 160 74.51 160 48V48zM112.7 205.4C97.41 212.2 85.42 224.6 79.22 240.1L77.71 243.9C71.15 260.3 52.53 268.3 36.12 261.7C19.71 255.1 11.73 236.5 18.29 220.1L19.8 216.3C32.19 185.4 56.18 160.5 86.66 146.9L97.66 142C118.5 132.8 140.1 128 163.7 128C208.3 128 248.5 154.8 265.6 195.9L280.1 232.7L302.3 243.4C318.1 251.3 324.5 270.5 316.6 286.3C308.7 302.1 289.5 308.5 273.7 300.6L247 287.3C236.7 282.1 228.6 273.4 224.2 262.8L214.6 239.8L195.3 305.3L244.8 359.4C250.2 365.3 254.1 372.4 256 380.2L279 472.2C283.3 489.4 272.9 506.8 255.8 511C238.6 515.3 221.2 504.9 216.1 487.8L194.9 399.6L124.3 322.5C109.5 306.4 103.1 283.9 109.6 262.8L126.5 199.3C125.6 199.7 124.6 200.1 123.7 200.5L112.7 205.4zM100.7 344.2L141.4 388.6L126.9 424.8C124.5 430.9 120.9 436.4 116.3 440.9L54.63 502.6C42.13 515.1 21.87 515.1 9.372 502.6C-3.124 490.1-3.124 469.9 9.372 457.4L68.73 398L93.69 335.6C95.84 338.6 98.17 341.4 100.7 344.2H100.7zM630.6 233.4C643.1 245.9 643.1 266.1 630.6 278.6L550.6 358.6C538.1 371.1 517.9 371.1 505.4 358.6C492.9 346.1 492.9 325.9 505.4 313.4L530.7 288H384C366.3 288 352 273.7 352 256C352 238.3 366.3 224 384 224H530.7L505.4 198.6C492.9 186.1 492.9 165.9 505.4 153.4C517.9 140.9 538.1 140.9 550.6 153.4L630.6 233.4zM392 0C405.3 0 416 10.75 416 24V72C416 85.25 405.3 96 392 96C378.7 96 368 85.25 368 72V24C368 10.75 378.7 0 392 0zM416 168C416 181.3 405.3 192 392 192C378.7 192 368 181.3 368 168V152C368 138.7 378.7 128 392 128C405.3 128 416 138.7 416 152V168zM392 320C405.3 320 416 330.7 416 344V360C416 373.3 405.3 384 392 384C378.7 384 368 373.3 368 360V344C368 330.7 378.7 320 392 320zM416 488C416 501.3 405.3 512 392 512C378.7 512 368 501.3 368 488V440C368 426.7 378.7 416 392 416C405.3 416 416 426.7 416 440V488z" - } - }, - "free": [ - "solid" - ] - }, - "person-walking-luggage": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e554", - "label": "Person Walking-luggage", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M352 48C352 21.49 373.5 0 400 0C426.5 0 448 21.49 448 48C448 74.51 426.5 96 400 96C373.5 96 352 74.51 352 48zM304.6 205.4C289.4 212.2 277.4 224.6 271.2 240.1L269.7 243.9C263.1 260.3 244.5 268.3 228.1 261.7C211.7 255.1 203.7 236.5 210.3 220.1L211.8 216.3C224.2 185.4 248.2 160.5 278.7 146.9L289.7 142C310.5 132.8 332.1 128 355.7 128C400.3 128 440.5 154.8 457.6 195.9L472.1 232.7L494.3 243.4C510.1 251.3 516.5 270.5 508.6 286.3C500.7 302.1 481.5 308.5 465.7 300.6L439 287.3C428.7 282.1 420.6 273.4 416.2 262.8L406.6 239.8L387.3 305.3L436.8 359.4C442.2 365.3 446.1 372.4 448 380.2L471 472.2C475.3 489.4 464.9 506.8 447.8 511C430.6 515.3 413.2 504.9 408.1 487.8L386.9 399.6L316.3 322.5C301.5 306.4 295.1 283.9 301.6 262.8L318.5 199.3C317.6 199.7 316.6 200.1 315.7 200.5L304.6 205.4zM292.7 344.2L333.4 388.6L318.9 424.8C316.5 430.9 312.9 436.4 308.3 440.9L246.6 502.6C234.1 515.1 213.9 515.1 201.4 502.6C188.9 490.1 188.9 469.9 201.4 457.4L260.7 398L285.7 335.6C287.8 338.6 290.2 341.4 292.7 344.2H292.7zM223.1 274.1C231.7 278.6 234.3 288.3 229.9 295.1L186.1 371.8C185.4 374.5 184.3 377.2 182.9 379.7L118.9 490.6C110 505.9 90.44 511.1 75.14 502.3L19.71 470.3C4.407 461.4-.8371 441.9 7.999 426.6L71.1 315.7C80.84 300.4 100.4 295.2 115.7 303.1L170.1 335.4L202.1 279.1C206.6 272.3 216.3 269.7 223.1 274.1H223.1z" - } - }, - "free": [ - "solid" - ] - }, - "person-walking-with-cane": { - "changes": [ - "4.6.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f29d", - "aliases": { - "names": [ - "blind" - ], - "unicodes": { - "secondary": [ - "10f29d" - ] - } - }, - "label": "Person walking with cane", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573296, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M445.2 486.1l-117.3-172.6c-3.002 4.529-6.646 8.652-11.12 12c-4.414 3.318-9.299 5.689-14.43 7.307l116.4 171.3c3.094 4.547 8.127 7.008 13.22 7.008c3.125 0 6.247-.8984 8.997-2.773C448.3 504.2 450.2 494.3 445.2 486.1zM143.1 95.1c26.51 0 48.01-21.49 48.01-47.1S170.5 0 144 0S96 21.49 96 48S117.5 95.1 143.1 95.1zM96.01 348.1l-31.03 124.2c-4.312 17.16 6.125 34.53 23.28 38.81C90.86 511.7 93.48 512 96.04 512c14.34 0 27.38-9.703 31-24.23l22.04-88.18L96.01 346.5V348.1zM313.6 268.8l-76.78-102.4C218.8 142.3 190.1 128 160 128L135.6 127.1c-36.59 0-69.5 20.33-85.87 53.06L3.387 273.7C-4.518 289.5 1.887 308.7 17.7 316.6c4.594 2.297 9.469 3.375 14.28 3.375c11.75 0 23.03-6.469 28.66-17.69l35.38-70.76v56.45c0 8.484 3.375 16.62 9.375 22.63l86.63 86.63v82.75c0 17.67 14.31 32 32 32c17.69 0 32-14.33 32-32v-82.75c0-17.09-6.656-33.16-18.75-45.25L192 306.8V213.3l70.38 93.88c10.59 14.11 30.62 16.98 44.78 6.406C321.3 303 324.2 282.9 313.6 268.8z" - } - }, - "free": [ - "solid" - ] - }, - "peseta-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e221", - "label": "Peseta Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M192 32C269.4 32 333.1 86.97 348.8 160H352C369.7 160 384 174.3 384 192C384 209.7 369.7 224 352 224H348.8C333.1 297 269.4 352 192 352H96V448C96 465.7 81.67 480 64 480C46.33 480 32 465.7 32 448V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160V64C32 46.33 46.33 32 64 32H192zM282.5 160C269.4 122.7 233.8 96 192 96H96V160H282.5zM96 224V288H192C233.8 288 269.4 261.3 282.5 224H96z" - } - }, - "free": [ - "solid" - ] - }, - "peso-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e222", - "label": "Peso Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M176 32C244.4 32 303.7 71.01 332.8 128H352C369.7 128 384 142.3 384 160C384 177.7 369.7 192 352 192H351.3C351.8 197.3 352 202.6 352 208C352 213.4 351.8 218.7 351.3 224H352C369.7 224 384 238.3 384 256C384 273.7 369.7 288 352 288H332.8C303.7 344.1 244.4 384 176 384H96V448C96 465.7 81.67 480 64 480C46.33 480 32 465.7 32 448V288C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224V192C14.33 192 0 177.7 0 160C0 142.3 14.33 128 32 128V64C32 46.33 46.33 32 64 32H176zM254.4 128C234.2 108.2 206.5 96 176 96H96V128H254.4zM96 192V224H286.9C287.6 218.8 288 213.4 288 208C288 202.6 287.6 197.2 286.9 192H96zM254.4 288H96V320H176C206.5 320 234.2 307.8 254.4 288z" - } - }, - "free": [ - "solid" - ] - }, - "phabricator": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3db", - "label": "Phabricator", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M323 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4 .5 .2 28.9 .2 28.9l-9.1 9.1s-29.2-.9-29.7 .4l-8.1 19.8c-.6 1.4 21 21 21 21l.1 12.9s-21.7 19.8-21.1 21.2l9.5 20c.6 1.4 29.5 .5 29.5 .5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4 .6 20.7-23.5 20.7-23.5l13.1 .2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2 .9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4-17.3 .8-32.1-12.5-32.8-29.6-.7-17.1 12.8-31.6 30.1-32.3 17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1 .1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM140.4 363.8c-59.6-59.5-59.6-156 0-215.5 59.5-59.6 156-59.5 215.6 0 59.5 59.5 59.6 156 0 215.6-59.6 59.5-156 59.4-215.6-.1z" - } - }, - "free": [ - "brands" - ] - }, - "phoenix-framework": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3dc", - "label": "Phoenix Framework", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572489, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4 .1-.8 .2-1.1 .3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7C279.8 194.5 262.1 47.4 138.5 37.9 94.2 34.5 39.1 46 2.2 72.9c-.8 .6-1.5 1.2-2.2 1.8 .1 .2 .1 .3 .2 .5 .8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7 .3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zm196.9 350.5c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1 .2-.3 .3-.4 .5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zm174.8-252c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6 .1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2 .1-.2 2.1 .6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zm102.7 117.5c-32.4 .2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2v-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7 .3 .2 .4 .5 .7 .9-.5 0-.7 .1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1 .2-.1 .4-.2 .6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2 .1-.3 .1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7 .4-.1 .9 0 1.5 .3-.6 .4-1.2 .9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4 .6-.8 .9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5 .1-.1 .2 0 .4 .4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7 .5-.2 .8-.4 1.1-.4 13.1 .1 26.1 .7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z" - } - }, - "free": [ - "brands" - ] - }, - "phoenix-squadron": { - "changes": [ - "5.0.12", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f511", - "label": "Phoenix Squadron", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 63.38C142.5 27.25 201.6 7.31 260.5 8.81c29.58-.38 59.11 5.37 86.91 15.33-24.13-4.63-49-6.34-73.38-2.45C231.2 27 191 48.84 162.2 80.87c5.67-1 10.78-3.67 16-5.86 18.14-7.87 37.49-13.26 57.23-14.83 19.74-2.13 39.64-.43 59.28 1.92-14.42 2.79-29.12 4.57-43 9.59-34.43 11.07-65.27 33.16-86.3 62.63-13.8 19.71-23.63 42.86-24.67 67.13-.35 16.49 5.22 34.81 19.83 44a53.27 53.27 0 0 0 37.52 6.74c15.45-2.46 30.07-8.64 43.6-16.33 11.52-6.82 22.67-14.55 32-24.25 3.79-3.22 2.53-8.45 2.62-12.79-2.12-.34-4.38-1.11-6.3 .3a203 203 0 0 1 -35.82 15.37c-20 6.17-42.16 8.46-62.1 .78 12.79 1.73 26.06 .31 37.74-5.44 20.23-9.72 36.81-25.2 54.44-38.77a526.6 526.6 0 0 1 88.9-55.31c25.71-12 52.94-22.78 81.57-24.12-15.63 13.72-32.15 26.52-46.78 41.38-14.51 14-27.46 29.5-40.11 45.18-3.52 4.6-8.95 6.94-13.58 10.16a150.7 150.7 0 0 0 -51.89 60.1c-9.33 19.68-14.5 41.85-11.77 63.65 1.94 13.69 8.71 27.59 20.9 34.91 12.9 8 29.05 8.07 43.48 5.1 32.8-7.45 61.43-28.89 81-55.84 20.44-27.52 30.52-62.2 29.16-96.35-.52-7.5-1.57-15-1.66-22.49 8 19.48 14.82 39.71 16.65 60.83 2 14.28 .75 28.76-1.62 42.9-1.91 11-5.67 21.51-7.78 32.43a165 165 0 0 0 39.34-81.07 183.6 183.6 0 0 0 -14.21-104.6c20.78 32 32.34 69.58 35.71 107.5 .49 12.73 .49 25.51 0 38.23A243.2 243.2 0 0 1 482 371.3c-26.12 47.34-68 85.63-117.2 108-78.29 36.23-174.7 31.32-248-14.68A248.3 248.3 0 0 1 25.36 366 238.3 238.3 0 0 1 0 273.1v-31.34C3.93 172 40.87 105.8 96 63.38m222 80.33a79.13 79.13 0 0 0 16-4.48c5-1.77 9.24-5.94 10.32-11.22-8.96 4.99-17.98 9.92-26.32 15.7z" - } - }, - "free": [ - "brands" - ] - }, - "phone": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f095", - "aliases": { - "unicodes": { - "composite": [ - "1f57b", - "1f4de" - ], - "secondary": [ - "10f095" - ] - } - }, - "label": "Phone", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M511.2 387l-23.25 100.8c-3.266 14.25-15.79 24.22-30.46 24.22C205.2 512 0 306.8 0 54.5c0-14.66 9.969-27.2 24.22-30.45l100.8-23.25C139.7-2.602 154.7 5.018 160.8 18.92l46.52 108.5c5.438 12.78 1.77 27.67-8.98 36.45L144.5 207.1c33.98 69.22 90.26 125.5 159.5 159.5l44.08-53.8c8.688-10.78 23.69-14.51 36.47-8.975l108.5 46.51C506.1 357.2 514.6 372.4 511.2 387z" - } - }, - "free": [ - "solid" - ] - }, - "phone-flip": { - "changes": [ - "5.9.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f879", - "aliases": { - "names": [ - "phone-alt" - ], - "unicodes": { - "composite": [ - "1f57d" - ], - "secondary": [ - "10f879" - ] - } - }, - "label": "Phone flip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M18.92 351.2l108.5-46.52c12.78-5.531 27.77-1.801 36.45 8.98l44.09 53.82c69.25-34 125.5-90.31 159.5-159.5l-53.81-44.04c-10.75-8.781-14.41-23.69-8.974-36.47l46.51-108.5c6.094-13.91 21.1-21.52 35.79-18.11l100.8 23.25c14.25 3.25 24.22 15.8 24.22 30.46c0 252.3-205.2 457.5-457.5 457.5c-14.67 0-27.18-9.968-30.45-24.22l-23.25-100.8C-2.571 372.4 5.018 357.2 18.92 351.2z" - } - }, - "free": [ - "solid" - ] - }, - "phone-slash": { - "changes": [ - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3dd", - "aliases": { - "unicodes": { - "secondary": [ - "10f3dd" - ] - } - }, - "label": "Phone Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M271.1 367.5L227.9 313.7c-8.688-10.78-23.69-14.51-36.47-8.974l-108.5 46.51c-13.91 6-21.49 21.19-18.11 35.79l23.25 100.8C91.32 502 103.8 512 118.5 512c107.4 0 206.1-37.46 284.2-99.65l-88.75-69.56C300.6 351.9 286.6 360.3 271.1 367.5zM630.8 469.1l-159.6-125.1c65.03-78.97 104.7-179.5 104.7-289.5c0-14.66-9.969-27.2-24.22-30.45L451 .8125c-14.69-3.406-29.73 4.213-35.82 18.12l-46.52 108.5c-5.438 12.78-1.771 27.67 8.979 36.45l53.82 44.08C419.2 232.1 403.9 256.2 386.2 277.4L38.81 5.111C34.41 1.673 29.19 0 24.03 0C16.91 0 9.84 3.158 5.121 9.189c-8.188 10.44-6.37 25.53 4.068 33.7l591.1 463.1c10.5 8.203 25.57 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1z" - } - }, - "free": [ - "solid" - ] - }, - "phone-volume": { - "changes": [ - "4.6.0", - "5.0.0", - "5.0.3", - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2a0", - "aliases": { - "names": [ - "volume-control-phone" - ], - "unicodes": { - "secondary": [ - "10f2a0" - ] - } - }, - "label": "Phone Volume", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573297, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M284.6 181.9c-10.28-8.344-25.41-6.875-33.75 3.406C242.4 195.6 243.9 210.7 254.2 219.1c11.31 9.25 17.81 22.69 17.81 36.87c0 14.19-6.5 27.62-17.81 36.87c-10.28 8.406-11.78 23.53-3.375 33.78c4.719 5.812 11.62 8.812 18.56 8.812c5.344 0 10.75-1.781 15.19-5.406c22.53-18.44 35.44-45.4 35.44-74.05S307.1 200.4 284.6 181.9zM345.1 107.1c-10.22-8.344-25.34-6.907-33.78 3.343c-8.406 10.25-6.906 25.37 3.344 33.78c33.88 27.78 53.31 68.18 53.31 110.9s-19.44 83.09-53.31 110.9c-10.25 8.406-11.75 23.53-3.344 33.78c4.75 5.781 11.62 8.781 18.56 8.781c5.375 0 10.75-1.781 15.22-5.438C390.2 367.1 416 313.1 416 255.1S390.2 144.9 345.1 107.1zM406.4 33.15c-10.22-8.344-25.34-6.875-33.78 3.344c-8.406 10.25-6.906 25.37 3.344 33.78C431.9 116.1 464 183.8 464 255.1s-32.09 139.9-88.06 185.7c-10.25 8.406-11.75 23.53-3.344 33.78c4.75 5.781 11.62 8.781 18.56 8.781c5.375 0 10.75-1.781 15.22-5.438C473.5 423.8 512 342.6 512 255.1S473.5 88.15 406.4 33.15zM151.3 174.6C161.1 175.6 172.1 169.5 176 159.6l33.75-84.38C214 64.35 209.1 51.1 200.2 45.86l-67.47-42.17C123.2-2.289 110.9-.8945 102.9 7.08C-34.32 144.3-34.31 367.7 102.9 504.9c7.982 7.984 20.22 9.379 29.75 3.402l67.48-42.19c9.775-6.104 13.9-18.47 9.598-29.3L176 352.5c-3.945-9.963-14.14-16.11-24.73-14.97l-53.24 5.314C78.89 286.7 78.89 225.4 98.06 169.3L151.3 174.6z" - } - }, - "free": [ - "solid" - ] - }, - "photo-film": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f87c", - "aliases": { - "names": [ - "photo-video" - ], - "unicodes": { - "secondary": [ - "10f87c" - ] - } - }, - "label": "Photo film", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573298, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 432c0 8.836-7.164 16-16 16H176c-8.838 0-16-7.164-16-16L160 128H48C21.49 128 .0003 149.5 .0003 176v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48L512 384h-160L352 432zM104 439c0 4.969-4.031 9-9 9h-30c-4.969 0-9-4.031-9-9v-30c0-4.969 4.031-9 9-9h30c4.969 0 9 4.031 9 9V439zM104 335c0 4.969-4.031 9-9 9h-30c-4.969 0-9-4.031-9-9v-30c0-4.969 4.031-9 9-9h30c4.969 0 9 4.031 9 9V335zM104 231c0 4.969-4.031 9-9 9h-30c-4.969 0-9-4.031-9-9v-30C56 196 60.03 192 65 192h30c4.969 0 9 4.031 9 9V231zM408 409c0-4.969 4.031-9 9-9h30c4.969 0 9 4.031 9 9v30c0 4.969-4.031 9-9 9h-30c-4.969 0-9-4.031-9-9V409zM591.1 0H239.1C213.5 0 191.1 21.49 191.1 48v256c0 26.51 21.49 48 48 48h352c26.51 0 48-21.49 48-48v-256C640 21.49 618.5 0 591.1 0zM303.1 64c17.68 0 32 14.33 32 32s-14.32 32-32 32C286.3 128 271.1 113.7 271.1 96S286.3 64 303.1 64zM574.1 279.6C571.3 284.8 565.9 288 560 288H271.1C265.1 288 260.5 284.6 257.7 279.3C255 273.9 255.5 267.4 259.1 262.6l70-96C332.1 162.4 336.9 160 341.1 160c5.11 0 9.914 2.441 12.93 6.574l22.35 30.66l62.74-94.11C442.1 98.67 447.1 96 453.3 96c5.348 0 10.34 2.672 13.31 7.125l106.7 160C576.6 268 576.9 274.3 574.1 279.6z" - } - }, - "free": [ - "solid" - ] - }, - "php": { - "changes": [ - "5.0.5" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f457", - "label": "PHP", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5c-171.4 0-303.2-72.2-303.2-151.5S148.7 104.5 320 104.5m0-16.8C143.3 87.7 0 163 0 256s143.3 168.3 320 168.3S640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3h36.7l8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7h-70.7L97.4 350.3zm185.7-213.6h36.5l-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1h-37c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6h-36.5l32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3H421l8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7H417l-32.8 168.7z" - } - }, - "free": [ - "brands" - ] - }, - "pied-piper": { - "changes": [ - "4.6.0", - "5.0.0", - "5.0.10", - "5.12.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2ae", - "label": "Pied Piper Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 480, - 512 - ], - "width": 480, - "height": 512, - "path": "M455.9 23.2C429.2 30 387.8 51.69 341.4 90.66A206 206 0 0 0 240 64C125.1 64 32 157.1 32 272s93.13 208 208 208 208-93.13 208-208a207.3 207.3 0 0 0 -58.75-144.8 155.4 155.4 0 0 0 -17 27.4A176.2 176.2 0 0 1 417.1 272c0 97.66-79.44 177.1-177.1 177.1a175.8 175.8 0 0 1 -87.63-23.4c82.94-107.3 150.8-37.77 184.3-226.6 5.79-32.62 28-94.26 126.2-160.2C471 33.45 465.4 20.8 455.9 23.2zM125 406.4A176.7 176.7 0 0 1 62.9 272C62.9 174.3 142.4 94.9 240 94.9a174 174 0 0 1 76.63 17.75C250.6 174.8 189.8 265.5 125 406.4z" - } - }, - "free": [ - "brands" - ] - }, - "pied-piper-alt": { - "changes": [ - "4.1.0", - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a8", - "label": "Alternate Pied Piper Logo (Old)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9zm135.9 197.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7C548.3 29.3 554 16.1 554.6 2l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3v-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3 .9 .6-.6zm-59.2 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9 .6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zm-196.2 46.1v27.2l11.8-3.4-2.9-23.8zm-68.7-150.4l24.1 61.2 21-13.8-31.3-50.9zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z" - } - }, - "free": [ - "brands" - ] - }, - "pied-piper-hat": { - "changes": [ - "5.0.10" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4e5", - "label": "Pied Piper Hat (Old)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9 .6 2.8 .8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6C24.1 488 0 453.4 0 451.8c0-1.1 .6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3C178.4 294.5 244 245.4 315.4 245.4c0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z" - } - }, - "free": [ - "brands" - ] - }, - "pied-piper-pp": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a7", - "label": "Pied Piper PP Logo (Old)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7v-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2v68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6 0-44-33.2-79.6-74.2-79.6-12 0-24.1 3.2-34.6 8.8h-45.7V311l51.8-10.1v-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4 .2-9.6 .7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8V416l51.8-10.1v-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z" - } - }, - "free": [ - "brands" - ] - }, - "piggy-bank": { - "changes": [ - "5.0.9", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4d3", - "aliases": { - "unicodes": { - "secondary": [ - "10f4d3" - ] - } - }, - "label": "Piggy Bank", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573298, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M400 96L399.1 96.66C394.7 96.22 389.4 96 384 96H256C239.5 96 223.5 98.08 208.2 102C208.1 100 208 98.02 208 96C208 42.98 250.1 0 304 0C357 0 400 42.98 400 96zM384 128C387.5 128 390.1 128.1 394.4 128.3C398.7 128.6 402.9 129 407 129.6C424.6 109.1 450.8 96 480 96H512L493.2 171.1C509.1 185.9 521.9 203.9 530.7 224H544C561.7 224 576 238.3 576 256V352C576 369.7 561.7 384 544 384H512C502.9 396.1 492.1 406.9 480 416V480C480 497.7 465.7 512 448 512H416C398.3 512 384 497.7 384 480V448H256V480C256 497.7 241.7 512 224 512H192C174.3 512 160 497.7 160 480V416C125.1 389.8 101.3 349.8 96.79 304H68C30.44 304 0 273.6 0 236C0 198.4 30.44 168 68 168H72C85.25 168 96 178.7 96 192C96 205.3 85.25 216 72 216H68C56.95 216 48 224.1 48 236C48 247 56.95 256 68 256H99.2C111.3 196.2 156.9 148.5 215.5 133.2C228.4 129.8 241.1 128 256 128H384zM424 240C410.7 240 400 250.7 400 264C400 277.3 410.7 288 424 288C437.3 288 448 277.3 448 264C448 250.7 437.3 240 424 240z" - } - }, - "free": [ - "solid" - ] - }, - "pills": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f484", - "aliases": { - "unicodes": { - "secondary": [ - "10f484" - ] - } - }, - "label": "Pills", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573298, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M112 32C50.12 32 0 82.12 0 143.1v223.1c0 61.88 50.12 111.1 112 111.1s112-50.12 112-111.1V143.1C224 82.12 173.9 32 112 32zM160 256H64V144c0-26.5 21.5-48 48-48s48 21.5 48 48V256zM299.8 226.2c-3.5-3.5-9.5-3-12.38 .875c-45.25 62.5-40.38 150.1 15.88 206.4c56.38 56.25 144 61.25 206.5 15.88c4-2.875 4.249-8.75 .75-12.25L299.8 226.2zM529.5 207.2c-56.25-56.25-143.9-61.13-206.4-15.87c-4 2.875-4.375 8.875-.875 12.38l210.9 210.7c3.5 3.5 9.375 3.125 12.25-.75C590.8 351.1 585.9 263.6 529.5 207.2z" - } - }, - "free": [ - "solid" - ] - }, - "pinterest": { - "changes": [ - "2.0.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f0d2", - "label": "Pinterest", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M496 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3 .8-3.4 5-20.3 6.9-28.1 .6-2.5 .3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2c-5 21.4-3 51.6-.9 71.2C65.4 450.9 0 361.1 0 256 0 119 111 8 248 8s248 111 248 248z" - } - }, - "free": [ - "brands" - ] - }, - "pinterest-p": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f231", - "label": "Pinterest P", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M204 6.5C101.4 6.5 0 74.9 0 185.6 0 256 39.6 296 63.6 296c9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8C384 71.3 298.2 6.5 204 6.5z" - } - }, - "free": [ - "brands" - ] - }, - "pix": { - "changes": [ - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e43a", - "label": "Pix", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M242.4 292.5C247.8 287.1 257.1 287.1 262.5 292.5L339.5 369.5C353.7 383.7 372.6 391.5 392.6 391.5H407.7L310.6 488.6C280.3 518.1 231.1 518.1 200.8 488.6L103.3 391.2H112.6C132.6 391.2 151.5 383.4 165.7 369.2L242.4 292.5zM262.5 218.9C256.1 224.4 247.9 224.5 242.4 218.9L165.7 142.2C151.5 127.1 132.6 120.2 112.6 120.2H103.3L200.7 22.76C231.1-7.586 280.3-7.586 310.6 22.76L407.8 119.9H392.6C372.6 119.9 353.7 127.7 339.5 141.9L262.5 218.9zM112.6 142.7C126.4 142.7 139.1 148.3 149.7 158.1L226.4 234.8C233.6 241.1 243 245.6 252.5 245.6C261.9 245.6 271.3 241.1 278.5 234.8L355.5 157.8C365.3 148.1 378.8 142.5 392.6 142.5H430.3L488.6 200.8C518.9 231.1 518.9 280.3 488.6 310.6L430.3 368.9H392.6C378.8 368.9 365.3 363.3 355.5 353.5L278.5 276.5C264.6 262.6 240.3 262.6 226.4 276.6L149.7 353.2C139.1 363 126.4 368.6 112.6 368.6H80.78L22.76 310.6C-7.586 280.3-7.586 231.1 22.76 200.8L80.78 142.7H112.6z" - } - }, - "free": [ - "brands" - ] - }, - "pizza-slice": { - "changes": [ - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f818", - "aliases": { - "unicodes": { - "secondary": [ - "10f818" - ] - } - }, - "label": "Pizza Slice", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M100.4 112.3L.5101 491.7c-1.375 5.625 .1622 11.6 4.287 15.6c4.127 4.125 10.13 5.744 15.63 4.119l379.1-105.1C395.3 231.4 276.5 114.1 100.4 112.3zM127.1 416c-17.62 0-32-14.38-32-31.1c0-17.62 14.39-32 32.01-32c17.63 0 32 14.38 32 31.1C160 401.6 145.6 416 127.1 416zM175.1 271.1c-17.63 0-32-14.38-32-32c0-17.62 14.38-31.1 32-31.1c17.62 0 32 14.38 32 31.1C208 257.6 193.6 271.1 175.1 271.1zM272 367.1c-17.62 0-32-14.38-32-31.1c0-17.62 14.38-32 32-32c17.63 0 32 14.38 32 32C304 353.6 289.6 367.1 272 367.1zM158.9 .1406c-16.13-1.5-31.25 8.501-35.38 24.12L108.7 80.52c187.6 5.5 314.5 130.6 322.5 316.1l56.88-15.75c15.75-4.375 25.5-19.62 23.63-35.87C490.9 165.1 340.8 17.39 158.9 .1406z" - } - }, - "free": [ - "solid" - ] - }, - "place-of-worship": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f67f", - "aliases": { - "unicodes": { - "secondary": [ - "10f67f" - ] - } - }, - "label": "Place of Worship", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M233.4 86.63L308.7 11.32C314.9 5.067 325.1 5.067 331.3 11.32L406.6 86.63C412.6 92.63 416 100.8 416 109.3V217.6L456.7 242C471.2 250.7 480 266.3 480 283.2V512H384V416C384 380.7 355.3 352 319.1 352C284.7 352 255.1 380.7 255.1 416V512H159.1V283.2C159.1 266.3 168.8 250.7 183.3 242L223.1 217.6V109.3C223.1 100.8 227.4 92.63 233.4 86.63H233.4zM24.87 330.3L128 273.6V512H48C21.49 512 0 490.5 0 464V372.4C0 354.9 9.53 338.8 24.87 330.3V330.3zM592 512H512V273.6L615.1 330.3C630.5 338.8 640 354.9 640 372.4V464C640 490.5 618.5 512 592 512V512z" - } - }, - "free": [ - "solid" - ] - }, - "plane": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f072", - "aliases": { - "unicodes": { - "secondary": [ - "10f072" - ] - } - }, - "label": "plane", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M482.3 192C516.5 192 576 221 576 256C576 292 516.5 320 482.3 320H365.7L265.2 495.9C259.5 505.8 248.9 512 237.4 512H181.2C170.6 512 162.9 501.8 165.8 491.6L214.9 320H112L68.8 377.6C65.78 381.6 61.04 384 56 384H14.03C6.284 384 0 377.7 0 369.1C0 368.7 .1818 367.4 .5398 366.1L32 256L.5398 145.9C.1818 144.6 0 143.3 0 142C0 134.3 6.284 128 14.03 128H56C61.04 128 65.78 130.4 68.8 134.4L112 192H214.9L165.8 20.4C162.9 10.17 170.6 0 181.2 0H237.4C248.9 0 259.5 6.153 265.2 16.12L365.7 192H482.3z" - } - }, - "free": [ - "solid" - ] - }, - "plane-arrival": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5af", - "aliases": { - "unicodes": { - "composite": [ - "1f6ec" - ], - "secondary": [ - "10f5af" - ] - } - }, - "label": "Plane Arrival", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M.2528 166.9L.0426 67.99C.0208 57.74 9.508 50.11 19.51 52.34L55.07 60.24C65.63 62.58 74.29 70.11 78.09 80.24L95.1 127.1L223.3 165.6L181.8 20.4C178.9 10.18 186.6 .001 197.2 .001H237.3C248.8 .001 259.5 6.236 265.2 16.31L374.2 210.2L481.5 241.8C497.4 246.5 512.2 254.3 525.2 264.7L559.6 292.2C583.7 311.4 577.7 349.5 548.9 360.5C507.7 376.1 462.7 378.5 420.1 367.4L121.7 289.8C110.6 286.9 100.5 281.1 92.4 272.9L9.536 189.4C3.606 183.4 .2707 175.3 .2528 166.9V166.9zM608 448C625.7 448 640 462.3 640 480C640 497.7 625.7 512 608 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H608zM192 368C192 385.7 177.7 400 160 400C142.3 400 128 385.7 128 368C128 350.3 142.3 336 160 336C177.7 336 192 350.3 192 368zM224 384C224 366.3 238.3 352 256 352C273.7 352 288 366.3 288 384C288 401.7 273.7 416 256 416C238.3 416 224 401.7 224 384z" - } - }, - "free": [ - "solid" - ] - }, - "plane-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e555", - "label": "Plane Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 93.68V178.3L397.1 222.4C350.6 254 320 307.4 320 368C320 422.2 344.5 470.7 383.1 502.1C381 508.3 375.9 512 369.1 512C368.7 512 367.4 511.8 366.1 511.5L256 480L145.9 511.5C144.6 511.8 143.3 512 142 512C134.3 512 128 505.7 128 497.1V456C128 450.1 130.4 446.2 134.4 443.2L192 400V329.1L20.4 378.2C10.17 381.1 0 373.4 0 362.8V297.3C0 291.5 3.076 286.2 8.062 283.4L192 178.3V93.68C192 59.53 221 0 256 0C292 0 320 59.53 320 93.68H320zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM540.7 324.7L480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "plane-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e556", - "label": "Plane Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 93.68V178.3L397.1 222.4C350.6 254 320 307.4 320 368C320 422.2 344.5 470.7 383.1 502.1C381 508.3 375.9 512 369.1 512C368.7 512 367.4 511.8 366.1 511.5L256 480L145.9 511.5C144.6 511.8 143.3 512 142 512C134.3 512 128 505.7 128 497.1V456C128 450.1 130.4 446.2 134.4 443.2L192 400V329.1L20.4 378.2C10.17 381.1 0 373.4 0 362.8V297.3C0 291.5 3.076 286.2 8.062 283.4L192 178.3V93.68C192 59.53 221 0 256 0C292 0 320 59.53 320 93.68H320zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "plane-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e557", - "label": "Plane Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 93.68V178.3L397.1 222.4C350.6 254 320 307.4 320 368C320 422.2 344.5 470.7 383.1 502.1C381 508.3 375.9 512 369.1 512C368.7 512 367.4 511.8 366.1 511.5L256 480L145.9 511.5C144.6 511.8 143.3 512 142 512C134.3 512 128 505.7 128 497.1V456C128 450.1 130.4 446.2 134.4 443.2L192 400V329.1L20.4 378.2C10.17 381.1 0 373.4 0 362.8V297.3C0 291.5 3.076 286.2 8.062 283.4L192 178.3V93.68C192 59.53 221 0 256 0C292 0 320 59.53 320 93.68H320zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368L555.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "plane-departure": { - "changes": [ - "5.1.0", - "5.8.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5b0", - "aliases": { - "unicodes": { - "composite": [ - "1f6eb" - ], - "secondary": [ - "10f5b0" - ] - } - }, - "label": "Plane Departure", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M484.6 62C502.6 52.8 522.6 48 542.8 48H600.2C627.2 48 645.9 74.95 636.4 100.2C618.2 148.9 582.1 188.9 535.6 212.2L262.8 348.6C258.3 350.8 253.4 352 248.4 352H110.7C101.4 352 92.5 347.9 86.42 340.8L13.34 255.6C6.562 247.7 9.019 235.5 18.33 230.8L50.49 214.8C59.05 210.5 69.06 210.2 77.8 214.1L135.1 239.1L234.6 189.7L87.64 95.2C77.21 88.49 78.05 72.98 89.14 67.43L135 44.48C150.1 36.52 169.5 35.55 186.1 41.8L381 114.9L484.6 62zM0 480C0 462.3 14.33 448 32 448H608C625.7 448 640 462.3 640 480C640 497.7 625.7 512 608 512H32C14.33 512 0 497.7 0 480z" - } - }, - "free": [ - "solid" - ] - }, - "plane-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e558", - "label": "Plane Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M192 93.68C192 59.53 221 0 256 0C292 0 320 59.53 320 93.68V178.3L421.8 236.4C418 247.6 416 259.6 416 272V296.6C398.1 306.9 385.7 325.7 384.2 347.5L320 329.1V400L377.6 443.2C381.6 446.2 384 450.1 384 456V497.1C384 505.7 377.7 512 369.1 512C368.7 512 367.4 511.8 366.1 511.5L256 480L145.9 511.5C144.6 511.8 143.3 512 142 512C134.3 512 128 505.7 128 497.1V456C128 450.1 130.4 446.2 134.4 443.2L192 400V329.1L20.4 378.2C10.17 381.1 0 373.4 0 362.8V297.3C0 291.5 3.076 286.2 8.062 283.4L192 178.3L192 93.68zM528 192C572.2 192 608 227.8 608 272V320C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 320 448 320V272C448 227.8 483.8 192 528 192zM528 240C510.3 240 496 254.3 496 272V320H560V272C560 254.3 545.7 240 528 240z" - } - }, - "free": [ - "solid" - ] - }, - "plane-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e069", - "aliases": { - "unicodes": { - "secondary": [ - "10e069" - ] - } - }, - "label": "Plane Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573299, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M238.1 161.3L197.8 20.4C194.9 10.17 202.6-.0001 213.2-.0001H269.4C280.9-.0001 291.5 6.153 297.2 16.12L397.7 192H514.3C548.5 192 608 221 608 256C608 292 548.5 320 514.3 320H440.6L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.237 28.37-3.065 38.81 5.112L238.1 161.3zM41.54 128.7L362.5 381.6L297.2 495.9C291.5 505.8 280.9 512 269.4 512H213.2C202.6 512 194.9 501.8 197.8 491.6L246.9 319.1H144L100.8 377.6C97.78 381.6 93.04 384 88 384H46.03C38.28 384 32 377.7 32 369.1C32 368.7 32.18 367.4 32.54 366.1L64 255.1L32.54 145.9C32.18 144.6 32 143.3 32 142C32 135.9 35.1 130.6 41.54 128.7V128.7z" - } - }, - "free": [ - "solid" - ] - }, - "plane-up": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e22d", - "label": "Plane Up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M192 93.68C192 59.53 221 0 256 0C292 0 320 59.53 320 93.68V160L497.8 278.5C506.7 284.4 512 294.4 512 305.1V361.8C512 372.7 501.3 380.4 490.9 376.1L320 319.1V400L377.6 443.2C381.6 446.2 384 450.1 384 456V497.1C384 505.7 377.7 512 369.1 512C368.7 512 367.4 511.8 366.1 511.5L256 480L145.9 511.5C144.6 511.8 143.3 512 142 512C134.3 512 128 505.7 128 497.1V456C128 450.1 130.4 446.2 134.4 443.2L192 400V319.1L21.06 376.1C10.7 380.4 0 372.7 0 361.8V305.1C0 294.4 5.347 284.4 14.25 278.5L192 160L192 93.68z" - } - }, - "free": [ - "solid" - ] - }, - "plant-wilt": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e5aa", - "label": "Plant Wilt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 512H224V248C224 217.1 198.9 192 168 192C137.1 192 112 217.1 112 248V260.1C141.3 270.9 160 295.5 160 331.1C160 359.1 124.2 410.5 80 448C35.83 410.5 0 360.4 0 331.1C0 295.5 18.67 270.9 48 260.1V248C48 181.7 101.7 128 168 128C188.2 128 207.3 133 224 141.8V120C224 53.73 277.7 0 344 0C410.3 0 464 53.73 464 120V132.1C493.3 142.9 512 167.5 512 203.1C512 231.1 476.2 282.5 432 320C387.8 282.5 352 232.4 352 203.1C352 167.5 370.7 142.9 400 132.1V120C400 89.07 374.9 64 344 64C313.1 64 288 89.07 288 120V512z" - } - }, - "free": [ - "solid" - ] - }, - "plate-wheat": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e55a", - "label": "Plate Wheat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 112V128C256 136.8 248.8 144 240 144C195.8 144 160 108.2 160 64V48C160 39.16 167.2 32 176 32C220.2 32 256 67.82 256 112zM104 64C117.3 64 128 74.75 128 88C128 101.3 117.3 112 104 112H56C42.75 112 32 101.3 32 88C32 74.75 42.75 64 56 64H104zM136 136C149.3 136 160 146.7 160 160C160 173.3 149.3 184 136 184H24C10.75 184 0 173.3 0 160C0 146.7 10.75 136 24 136H136zM32 232C32 218.7 42.75 208 56 208H104C117.3 208 128 218.7 128 232C128 245.3 117.3 256 104 256H56C42.75 256 32 245.3 32 232zM272 48C272 39.16 279.2 32 288 32C332.2 32 368 67.82 368 112V128C368 136.8 360.8 144 352 144C307.8 144 272 108.2 272 64V48zM480 112V128C480 136.8 472.8 144 464 144C419.8 144 384 108.2 384 64V48C384 39.16 391.2 32 400 32C444.2 32 480 67.82 480 112zM480 208C480 252.2 444.2 288 400 288C391.2 288 384 280.8 384 272V256C384 211.8 419.8 176 464 176C472.8 176 480 183.2 480 192V208zM352 176C360.8 176 368 183.2 368 192V208C368 252.2 332.2 288 288 288C279.2 288 272 280.8 272 272V256C272 211.8 307.8 176 352 176zM256 208C256 252.2 220.2 288 176 288C167.2 288 160 280.8 160 272V256C160 211.8 195.8 176 240 176C248.8 176 256 183.2 256 192V208zM3.451 347.6C1.618 332.9 13.05 320 27.82 320H484.2C498.1 320 510.4 332.9 508.6 347.6C502.3 397.8 464.2 437 416 446V448C416 465.7 401.7 480 384 480H127.1C110.3 480 95.1 465.7 95.1 448V446C47.84 437 9.724 397.8 3.45 347.6H3.451z" - } - }, - "free": [ - "solid" - ] - }, - "play": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f04b", - "aliases": { - "unicodes": { - "composite": [ - "25b6" - ], - "secondary": [ - "10f04b" - ] - } - }, - "label": "play", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M361 215C375.3 223.8 384 239.3 384 256C384 272.7 375.3 288.2 361 296.1L73.03 472.1C58.21 482 39.66 482.4 24.52 473.9C9.377 465.4 0 449.4 0 432V80C0 62.64 9.377 46.63 24.52 38.13C39.66 29.64 58.21 29.99 73.03 39.04L361 215z" - } - }, - "free": [ - "solid" - ] - }, - "playstation": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3df", - "label": "PlayStation", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M570.9 372.3c-11.3 14.2-38.8 24.3-38.8 24.3L327 470.2v-54.3l150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9L327 381.1v-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9 .6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zm-224.4-92.5v-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4v347.9l-93.8-29.8V32c39.9 7.4 98 24.9 129.2 35.4C424.1 94.7 451 128.7 451 205.2c0 74.5-46 102.8-104.5 74.6zM43.2 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8v54.5l-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4 13.9 4.6 39.1 3.3 56.2-2.9l46.4-16.9v48.8c-51.6 9.3-101.4 7.3-153.9-10z" - } - }, - "free": [ - "brands" - ] - }, - "plug": { - "changes": [ - "4.2.0", - "5.0.0", - "5.12.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1e6", - "aliases": { - "unicodes": { - "composite": [ - "1f50c" - ], - "secondary": [ - "10f1e6" - ] - } - }, - "label": "Plug", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573301, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V128H64V32C64 14.33 78.33 0 96 0zM288 0C305.7 0 320 14.33 320 32V128H256V32C256 14.33 270.3 0 288 0zM352 160C369.7 160 384 174.3 384 192C384 209.7 369.7 224 352 224V256C352 333.4 297 397.1 224 412.8V512H160V412.8C86.97 397.1 32 333.4 32 256V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H352z" - } - }, - "free": [ - "solid" - ] - }, - "plug-circle-bolt": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e55b", - "label": "Plug Circle-bolt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V128H64V32C64 14.33 78.33 0 96 0zM288 0C305.7 0 320 14.33 320 32V128H256V32C256 14.33 270.3 0 288 0zM352 160C369.7 160 384 174.3 384 192C384 194.3 383.7 196.6 383.3 198.8C309.8 219.1 256 287.7 256 368C256 379.4 257.1 390.5 259.1 401.3C248.1 406.4 236.3 410.3 224 412.8V512H160V412.8C86.97 397.1 32 333.4 32 256V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM464.8 286.4L368.8 358.4C364.7 361.5 362.1 366.9 364.6 371.8C366.2 376.7 370.8 380 376 380H411.6L381.5 434.2C378.8 439.1 379.8 445.3 384.1 449C388.4 452.8 394.7 452.1 399.2 449.6L495.2 377.6C499.3 374.5 501 369.1 499.4 364.2C497.8 359.3 493.2 356 488 356H452.4L482.5 301.8C485.2 296.9 484.2 290.7 479.9 286.1C475.6 283.2 469.3 283 464.8 286.4V286.4z" - } - }, - "free": [ - "solid" - ] - }, - "plug-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e55c", - "label": "Plug Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V128H64V32C64 14.33 78.33 0 96 0zM288 0C305.7 0 320 14.33 320 32V128H256V32C256 14.33 270.3 0 288 0zM352 160C369.7 160 384 174.3 384 192C384 194.3 383.7 196.6 383.3 198.8C309.8 219.1 256 287.7 256 368C256 379.4 257.1 390.5 259.1 401.3C248.1 406.4 236.3 410.3 224 412.8V512H160V412.8C86.97 397.1 32 333.4 32 256V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H352zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM476.7 324.7L416 385.4L387.3 356.7C381.1 350.4 370.9 350.4 364.7 356.7C358.4 362.9 358.4 373.1 364.7 379.3L404.7 419.3C410.9 425.6 421.1 425.6 427.3 419.3L499.3 347.3C505.6 341.1 505.6 330.9 499.3 324.7C493.1 318.4 482.9 318.4 476.7 324.7H476.7z" - } - }, - "free": [ - "solid" - ] - }, - "plug-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e55d", - "label": "Plug Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V128H64V32C64 14.33 78.33 0 96 0zM288 0C305.7 0 320 14.33 320 32V128H256V32C256 14.33 270.3 0 288 0zM352 160C369.7 160 384 174.3 384 192C384 194.3 383.7 196.6 383.3 198.8C309.8 219.1 256 287.7 256 368C256 379.4 257.1 390.5 259.1 401.3C248.1 406.4 236.3 410.3 224 412.8V512H160V412.8C86.97 397.1 32 333.4 32 256V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM432 464C445.3 464 456 453.3 456 440C456 426.7 445.3 416 432 416C418.7 416 408 426.7 408 440C408 453.3 418.7 464 432 464zM415.1 288V368C415.1 376.8 423.2 384 431.1 384C440.8 384 447.1 376.8 447.1 368V288C447.1 279.2 440.8 272 431.1 272C423.2 272 415.1 279.2 415.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "plug-circle-minus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e55e", - "label": "Plug Circle-minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V128H64V32C64 14.33 78.33 0 96 0zM288 0C305.7 0 320 14.33 320 32V128H256V32C256 14.33 270.3 0 288 0zM352 160C369.7 160 384 174.3 384 192C384 194.3 383.7 196.6 383.3 198.8C309.8 219.1 256 287.7 256 368C256 379.4 257.1 390.5 259.1 401.3C248.1 406.4 236.3 410.3 224 412.8V512H160V412.8C86.97 397.1 32 333.4 32 256V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H352zM576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368zM496 351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1z" - } - }, - "free": [ - "solid" - ] - }, - "plug-circle-plus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e55f", - "label": "Plug Circle-plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V128H64V32C64 14.33 78.33 0 96 0zM288 0C305.7 0 320 14.33 320 32V128H256V32C256 14.33 270.3 0 288 0zM352 160C369.7 160 384 174.3 384 192C384 194.3 383.7 196.6 383.3 198.8C309.8 219.1 256 287.7 256 368C256 379.4 257.1 390.5 259.1 401.3C248.1 406.4 236.3 410.3 224 412.8V512H160V412.8C86.97 397.1 32 333.4 32 256V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM448 303.1C448 295.2 440.8 287.1 432 287.1C423.2 287.1 416 295.2 416 303.1V351.1H368C359.2 351.1 352 359.2 352 367.1C352 376.8 359.2 383.1 368 383.1H416V431.1C416 440.8 423.2 447.1 432 447.1C440.8 447.1 448 440.8 448 431.1V383.1H496C504.8 383.1 512 376.8 512 367.1C512 359.2 504.8 351.1 496 351.1H448V303.1z" - } - }, - "free": [ - "solid" - ] - }, - "plug-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e560", - "label": "Plug Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573300, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V128H64V32C64 14.33 78.33 0 96 0zM288 0C305.7 0 320 14.33 320 32V128H256V32C256 14.33 270.3 0 288 0zM352 160C369.7 160 384 174.3 384 192C384 194.3 383.7 196.6 383.3 198.8C309.8 219.1 256 287.7 256 368C256 379.4 257.1 390.5 259.1 401.3C248.1 406.4 236.3 410.3 224 412.8V512H160V412.8C86.97 397.1 32 333.4 32 256V224C14.33 224 0 209.7 0 192C0 174.3 14.33 160 32 160H352zM288 368C288 288.5 352.5 224 432 224C511.5 224 576 288.5 576 368C576 447.5 511.5 512 432 512C352.5 512 288 447.5 288 368zM491.3 331.3C497.6 325.1 497.6 314.9 491.3 308.7C485.1 302.4 474.9 302.4 468.7 308.7L432 345.4L395.3 308.7C389.1 302.4 378.9 302.4 372.7 308.7C366.4 314.9 366.4 325.1 372.7 331.3L409.4 368L372.7 404.7C366.4 410.9 366.4 421.1 372.7 427.3C378.9 433.6 389.1 433.6 395.3 427.3L432 390.6L468.7 427.3C474.9 433.6 485.1 433.6 491.3 427.3C497.6 421.1 497.6 410.9 491.3 404.7L454.6 368L491.3 331.3z" - } - }, - "free": [ - "solid" - ] - }, - "plus": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "2b", - "aliases": { - "names": [ - "add" - ], - "unicodes": { - "composite": [ - "2795", - "f067" - ], - "primary": [ - "f067" - ], - "secondary": [ - "10f067", - "102b" - ] - } - }, - "label": "plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573301, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M432 256c0 17.69-14.33 32.01-32 32.01H256v144c0 17.69-14.33 31.99-32 31.99s-32-14.3-32-31.99v-144H48c-17.67 0-32-14.32-32-32.01s14.33-31.99 32-31.99H192v-144c0-17.69 14.33-32.01 32-32.01s32 14.32 32 32.01v144h144C417.7 224 432 238.3 432 256z" - } - }, - "free": [ - "solid" - ] - }, - "plus-minus": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e43c", - "label": "Plus Minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573301, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 448H32c-17.69 0-32 14.31-32 32s14.31 31.1 32 31.1h320c17.69 0 32-14.31 32-31.1S369.7 448 352 448zM48 208H160v111.1c0 17.69 14.31 31.1 32 31.1s32-14.31 32-31.1V208h112c17.69 0 32-14.32 32-32.01s-14.31-31.99-32-31.99H224v-112c0-17.69-14.31-32.01-32-32.01S160 14.33 160 32.01v112H48c-17.69 0-32 14.31-32 31.99S30.31 208 48 208z" - } - }, - "free": [ - "solid" - ] - }, - "podcast": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2ce", - "aliases": { - "unicodes": { - "secondary": [ - "10f2ce" - ] - } - }, - "label": "Podcast", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573301, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 0C100.3 0 0 100.3 0 224c0 92.22 55.77 171.4 135.4 205.7c-3.48-20.75-6.17-41.59-6.998-58.15C80.08 340.1 48 285.8 48 224c0-97.05 78.95-176 176-176s176 78.95 176 176c0 61.79-32.08 116.1-80.39 147.6c-.834 16.5-3.541 37.37-7.035 58.17C392.2 395.4 448 316.2 448 224C448 100.3 347.7 0 224 0zM224 312c-32.88 0-64 8.625-64 43.75c0 33.13 12.88 104.3 20.62 132.8C185.8 507.6 205.1 512 224 512s38.25-4.375 43.38-23.38C275.1 459.9 288 388.8 288 355.8C288 320.6 256.9 312 224 312zM224 280c30.95 0 56-25.05 56-56S254.1 168 224 168S168 193 168 224S193 280 224 280zM368 224c0-79.53-64.47-144-144-144S80 144.5 80 224c0 44.83 20.92 84.38 53.04 110.8c4.857-12.65 14.13-25.88 32.05-35.04C165.1 299.7 165.4 299.7 165.6 299.7C142.9 282.1 128 254.9 128 224c0-53.02 42.98-96 96-96s96 42.98 96 96c0 30.92-14.87 58.13-37.57 75.68c.1309 .0254 .5078 .0488 .4746 .0742c17.93 9.16 27.19 22.38 32.05 35.04C347.1 308.4 368 268.8 368 224z" - } - }, - "free": [ - "solid" - ] - }, - "poo": { - "changes": [ - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2fe", - "aliases": { - "unicodes": { - "composite": [ - "1f4a9" - ], - "secondary": [ - "10f2fe" - ] - } - }, - "label": "Poo", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573301, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M451.4 369.1C468.8 356 480 335.4 480 312c0-39.75-32.25-72-72-72h-14.12C407.3 228.2 416 211.2 416 191.1c0-35.25-28.75-63.1-64-63.1h-5.875C349.8 117.9 352 107.2 352 95.1c0-53-43-96-96-96c-5.25 0-10.25 .75-15.12 1.5C250.3 14.62 256 30.62 256 47.1c0 44.25-35.75 80-80 80H160c-35.25 0-64 28.75-64 63.1c0 19.25 8.75 36.25 22.12 48H104C64.25 239.1 32 272.3 32 312c0 23.38 11.25 44 28.62 57.13C26.25 374.6 0 404.1 0 440C0 479.8 32.25 512 72 512h368c39.75 0 72-32.25 72-72C512 404.1 485.8 374.6 451.4 369.1zM192 256c17.75 0 32 14.25 32 32s-14.25 32-32 32S160 305.8 160 288S174.3 256 192 256zM351.5 395C340.1 422.9 292.1 448 256 448c-36.99 0-84.98-25.12-95.48-53C158.5 389.8 162.5 384 168.3 384h175.5C349.5 384 353.5 389.8 351.5 395zM320 320c-17.75 0-32-14.25-32-32s14.25-32 32-32s32 14.25 32 32S337.8 320 320 320z" - } - }, - "free": [ - "solid" - ] - }, - "poo-storm": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f75a", - "aliases": { - "names": [ - "poo-bolt" - ], - "unicodes": { - "secondary": [ - "10f75a" - ] - } - }, - "label": "Poo bolt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573301, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M304 368H248.3l38.45-89.7c2.938-6.859 .7187-14.84-5.312-19.23c-6.096-4.422-14.35-4.031-19.94 .8906l-128 111.1c-5.033 4.391-6.783 11.44-4.439 17.67c2.346 6.25 8.314 10.38 14.97 10.38H199.7l-38.45 89.7c-2.938 6.859-.7187 14.84 5.312 19.23C169.4 510.1 172.7 512 175.1 512c3.781 0 7.531-1.328 10.53-3.953l128-111.1c5.033-4.391 6.783-11.44 4.439-17.67C316.6 372.1 310.7 368 304 368zM373.3 226.6C379.9 216.6 384 204.9 384 192c0-35.38-28.62-64-64-64h-5.875C317.8 118 320 107.3 320 96c0-53-43-96-96-96C218.9 0 213.9 .75 208.9 1.5C218.3 14.62 224 30.62 224 48C224 92.13 188.1 128 144 128H128C92.63 128 64 156.6 64 192c0 12.88 4.117 24.58 10.72 34.55C31.98 236.3 0 274.3 0 320c0 53.02 42.98 96 96 96h12.79c-4.033-4.414-7.543-9.318-9.711-15.1c-7.01-18.64-1.645-39.96 13.32-53.02l127.9-111.9C249.1 228.2 260.3 223.1 271.1 224c10.19 0 19.95 3.174 28.26 9.203c18.23 13.27 24.76 36.1 15.89 57.71l-19.33 45.1h7.195c19.89 0 37.95 12.51 44.92 31.11C355.3 384 351 402.8 339.1 416H352c53.02 0 96-42.98 96-96C448 274.3 416 236.3 373.3 226.6z" - } - }, - "free": [ - "solid" - ] - }, - "poop": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f619", - "aliases": { - "unicodes": { - "secondary": [ - "10f619" - ] - } - }, - "label": "Poop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573301, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 440.1C512 479.9 479.7 512 439.1 512H71.92C32.17 512 0 479.8 0 440c0-35.88 26.19-65.35 60.56-70.85C43.31 356 32 335.4 32 312C32 272.2 64.25 240 104 240h13.99C104.5 228.2 96 211.2 96 192c0-35.38 28.56-64 63.94-64h16C220.1 128 256 92.12 256 48c0-17.38-5.784-33.35-15.16-46.47C245.8 .7754 250.9 0 256 0c53 0 96 43 96 96c0 11.25-2.288 22-5.913 32h5.879C387.3 128 416 156.6 416 192c0 19.25-8.59 36.25-22.09 48H408C447.8 240 480 272.2 480 312c0 23.38-11.38 44.01-28.63 57.14C485.7 374.6 512 404.3 512 440.1z" - } - }, - "free": [ - "solid" - ] - }, - "power-off": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f011", - "aliases": { - "unicodes": { - "composite": [ - "23fb" - ], - "secondary": [ - "10f011" - ] - } - }, - "label": "Power Off", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 256C288 273.7 273.7 288 256 288C238.3 288 224 273.7 224 256V32C224 14.33 238.3 0 256 0C273.7 0 288 14.33 288 32V256zM80 256C80 353.2 158.8 432 256 432C353.2 432 432 353.2 432 256C432 201.6 407.3 152.9 368.5 120.6C354.9 109.3 353 89.13 364.3 75.54C375.6 61.95 395.8 60.1 409.4 71.4C462.2 115.4 496 181.8 496 255.1C496 388.5 388.5 496 256 496C123.5 496 16 388.5 16 255.1C16 181.8 49.75 115.4 102.6 71.4C116.2 60.1 136.4 61.95 147.7 75.54C158.1 89.13 157.1 109.3 143.5 120.6C104.7 152.9 80 201.6 80 256z" - } - }, - "free": [ - "solid" - ] - }, - "prescription": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5b1", - "aliases": { - "unicodes": { - "secondary": [ - "10f5b1" - ] - } - }, - "label": "Prescription", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M440.1 448.4l-96.28-96.21l95.87-95.95c9.373-9.381 9.373-24.59 0-33.97l-22.62-22.64c-9.373-9.381-24.57-9.381-33.94 0L288.1 295.6L220.5 228c46.86-22.92 76.74-75.46 64.95-133.1C273.9 38.74 221.8 0 164.6 0H31.1C14.33 0 0 14.34 0 32.03v264.1c0 13.26 10.75 24.01 23.1 24.01l31.1 .085c13.25 0 23.1-10.75 23.1-24.02V240.2H119.4l112.1 112L135.4 448.4c-9.373 9.381-9.373 24.59 0 33.97l22.62 22.64c9.373 9.38 24.57 9.38 33.94 0l96.13-96.21l96.28 96.21c9.373 9.381 24.57 9.381 33.94 0l22.62-22.64C450.3 472.9 450.3 457.7 440.1 448.4zM79.1 80.06h87.1c22.06 0 39.1 17.95 39.1 40.03s-17.94 40.03-39.1 40.03H79.1V80.06z" - } - }, - "free": [ - "solid" - ] - }, - "prescription-bottle": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f485", - "aliases": { - "unicodes": { - "secondary": [ - "10f485" - ] - } - }, - "label": "Prescription Bottle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M32 192h112C152.8 192 160 199.2 160 208C160 216.8 152.8 224 144 224H32v64h112C152.8 288 160 295.2 160 304C160 312.8 152.8 320 144 320H32v64h112C152.8 384 160 391.2 160 400C160 408.8 152.8 416 144 416H32v32c0 35.2 28.8 64 64 64h192c35.2 0 64-28.8 64-64V128H32V192zM360 0H24C10.75 0 0 10.75 0 24v48C0 85.25 10.75 96 24 96h336C373.3 96 384 85.25 384 72v-48C384 10.75 373.3 0 360 0z" - } - }, - "free": [ - "solid" - ] - }, - "prescription-bottle-medical": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f486", - "aliases": { - "names": [ - "prescription-bottle-alt" - ], - "unicodes": { - "secondary": [ - "10f486" - ] - } - }, - "label": "Prescription bottle medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M32 448c0 35.2 28.8 64 64 64h192c35.2 0 64-28.8 64-64V128H32V448zM96 304C96 295.2 103.2 288 112 288H160V240C160 231.2 167.2 224 176 224h32C216.8 224 224 231.2 224 240V288h48C280.8 288 288 295.2 288 304v32c0 8.799-7.199 16-16 16H224v48c0 8.799-7.199 16-16 16h-32C167.2 416 160 408.8 160 400V352H112C103.2 352 96 344.8 96 336V304zM360 0H24C10.75 0 0 10.75 0 24v48C0 85.25 10.75 96 24 96h336C373.3 96 384 85.25 384 72v-48C384 10.75 373.3 0 360 0z" - } - }, - "free": [ - "solid" - ] - }, - "print": { - "changes": [ - "1.0.0", - "5.0.0", - "5.3.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f02f", - "aliases": { - "unicodes": { - "composite": [ - "1f5a8", - "1f5b6", - "2399" - ], - "secondary": [ - "10f02f" - ] - } - }, - "label": "print", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 192H64C28.65 192 0 220.7 0 256v96c0 17.67 14.33 32 32 32h32v96c0 17.67 14.33 32 32 32h320c17.67 0 32-14.33 32-32v-96h32c17.67 0 32-14.33 32-32V256C512 220.7 483.3 192 448 192zM384 448H128v-96h256V448zM432 296c-13.25 0-24-10.75-24-24c0-13.27 10.75-24 24-24s24 10.73 24 24C456 285.3 445.3 296 432 296zM128 64h229.5L384 90.51V160h64V77.25c0-8.484-3.375-16.62-9.375-22.62l-45.25-45.25C387.4 3.375 379.2 0 370.8 0H96C78.34 0 64 14.33 64 32v128h64V64z" - } - }, - "free": [ - "solid" - ] - }, - "product-hunt": { - "changes": [ - "4.5.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f288", - "label": "Product Hunt", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2h-70.3v-74.4h70.3c20.5 0 37.2 16.7 37.2 37.2zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-128.1-37.2c0-47.9-38.9-86.8-86.8-86.8H169.2v248h49.6v-74.4h70.3c47.9 0 86.8-38.9 86.8-86.8z" - } - }, - "free": [ - "brands" - ] - }, - "pump-medical": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e06a", - "aliases": { - "unicodes": { - "secondary": [ - "10e06a" - ] - } - }, - "label": "Pump Medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M379.3 94.06l-43.32-43.32C323.1 38.74 307.7 32 290.8 32h-66.75c0-17.67-14.33-32-32-32H127.1c-17.67 0-32 14.33-32 32L96 128h128l-.0002-32h66.75l43.31 43.31c6.248 6.248 16.38 6.248 22.63 0l22.62-22.62C385.6 110.4 385.6 100.3 379.3 94.06zM235.6 160H84.37C51.27 160 23.63 185.2 20.63 218.2l-20.36 224C-3.139 479.7 26.37 512 64.01 512h191.1c37.63 0 67.14-32.31 63.74-69.79l-20.36-224C296.4 185.2 268.7 160 235.6 160zM239.1 333.3c0 7.363-5.971 13.33-13.33 13.33h-40v40c0 7.363-5.969 13.33-13.33 13.33h-26.67c-7.363 0-13.33-5.971-13.33-13.33v-40H93.33c-7.363 0-13.33-5.971-13.33-13.33V306.7c0-7.365 5.971-13.33 13.33-13.33h40v-40C133.3 245.1 139.3 240 146.7 240h26.67c7.363 0 13.33 5.969 13.33 13.33v40h40c7.363 0 13.33 5.969 13.33 13.33V333.3z" - } - }, - "free": [ - "solid" - ] - }, - "pump-soap": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e06b", - "aliases": { - "unicodes": { - "secondary": [ - "10e06b" - ] - } - }, - "label": "Pump Soap", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M235.6 160H84.37C51.27 160 23.63 185.2 20.63 218.2l-20.36 224C-3.139 479.7 26.37 512 64.01 512h191.1c37.63 0 67.14-32.31 63.74-69.79l-20.36-224C296.4 185.2 268.7 160 235.6 160zM159.1 416C124.7 416 96 389.7 96 357.3c0-25 38.08-75.47 55.5-97.27c4.25-5.312 12.75-5.312 17 0C185.9 281.8 224 332.3 224 357.3C224 389.7 195.3 416 159.1 416zM379.3 94.06l-43.32-43.32C323.1 38.74 307.7 32 290.8 32h-66.75c0-17.67-14.33-32-32-32H127.1c-17.67 0-32 14.33-32 32L96 128h128l-.0002-32h66.75l43.31 43.31c6.248 6.248 16.38 6.248 22.63 0l22.62-22.62C385.6 110.4 385.6 100.3 379.3 94.06z" - } - }, - "free": [ - "solid" - ] - }, - "pushed": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e1", - "label": "Pushed", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572490, - "raw": "", - "viewBox": [ - 0, - 0, - 432, - 512 - ], - "width": 432, - "height": 512, - "path": "M407 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L22.5 76.9c-15.1 2.7-26 18.3-21.4 36.6l105.1 348.3c6.5 21.3 36.7 24.2 47.7 7l35.3-80.8 235.2-231.3c16.4-16.8 4.3-42.9-17.4-44.8zM297.6 53.6c5.1-.7 7.5 2.5 5.2 7.4L286 100.9 108.6 84.6l189-31zM22.7 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7L22.7 107.9zM136 456.4c-2.6 4-7.9 3.1-9.4-1.2L43.5 179.7l127.7 197.6c-7 15-35.2 79.1-35.2 79.1zm272.8-314.5L210.1 337.3l89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z" - } - }, - "free": [ - "brands" - ] - }, - "puzzle-piece": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f12e", - "aliases": { - "unicodes": { - "composite": [ - "1f9e9" - ], - "secondary": [ - "10f12e" - ] - } - }, - "label": "Puzzle Piece", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573302, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 288c0 35.35-21.49 64-48 64c-32.43 0-31.72-32-55.64-32C394.9 320 384 330.9 384 344.4V480c0 17.67-14.33 32-32 32h-71.64C266.9 512 256 501.1 256 487.6C256 463.1 288 464.4 288 432c0-26.51-28.65-48-64-48s-64 21.49-64 48c0 32.43 32 31.72 32 55.64C192 501.1 181.1 512 167.6 512H32c-17.67 0-32-14.33-32-32v-135.6C0 330.9 10.91 320 24.36 320C48.05 320 47.6 352 80 352C106.5 352 128 323.3 128 288S106.5 223.1 80 223.1c-32.43 0-31.72 32-55.64 32C10.91 255.1 0 245.1 0 231.6v-71.64c0-17.67 14.33-31.1 32-31.1h135.6C181.1 127.1 192 117.1 192 103.6c0-23.69-32-23.24-32-55.64c0-26.51 28.65-47.1 64-47.1s64 21.49 64 47.1c0 32.43-32 31.72-32 55.64c0 13.45 10.91 24.36 24.36 24.36H352c17.67 0 32 14.33 32 31.1v71.64c0 13.45 10.91 24.36 24.36 24.36c23.69 0 23.24-32 55.64-32C490.5 223.1 512 252.7 512 288z" - } - }, - "free": [ - "solid" - ] - }, - "python": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e2", - "label": "Python", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2h-40.1v47.4c0 36.8-31.2 67.8-66.8 67.8H172.7c-29.2 0-53.4 25-53.4 54.3v101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3v-40.7H226.2v-13.6h160.2c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 404c11.1 0 20.1 9.1 20.1 20.3 0 11.3-9 20.4-20.1 20.4-11 0-20.1-9.2-20.1-20.4 .1-11.3 9.1-20.3 20.1-20.3zM167.8 248.1h106.8c29.7 0 53.4-24.5 53.4-54.3V91.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6v40.7h106.9v13.6h-147c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2H101v-48.8c0-35.3 30.5-66.4 66.8-66.4zm-6.7-142.6c-11.1 0-20.1-9.1-20.1-20.3 .1-11.3 9-20.4 20.1-20.4 11 0 20.1 9.2 20.1 20.4s-9 20.3-20.1 20.3z" - } - }, - "free": [ - "brands" - ] - }, - "q": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "51", - "aliases": { - "unicodes": { - "composite": [ - "71" - ] - } - }, - "label": "Q", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M393.1 402.5c34.12-39.32 54.93-90.48 54.93-146.5c0-123.5-100.5-224-223.1-224S.0001 132.5 .0001 256s100.5 224 223.1 224c44.45 0 85.81-13.16 120.7-35.58l46.73 56.08c6.328 7.594 15.42 11.52 24.59 11.52c21.35 0 31.98-18.26 31.98-32.01c0-7.223-2.433-14.49-7.419-20.47L393.1 402.5zM224 416c-88.22 0-160-71.78-160-160s71.78-159.1 160-159.1s160 71.78 160 159.1c0 36.21-12.55 69.28-32.92 96.12L280.6 267.5c-6.338-7.597-15.44-11.53-24.61-11.53c-21.27 0-31.96 18.22-31.96 32.02c0 7.223 2.433 14.49 7.419 20.47l71.53 85.83C279.6 407.7 252.8 416 224 416z" - } - }, - "free": [ - "solid" - ] - }, - "qq": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d6", - "label": "QQ", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M433.8 420.4c-11.53 1.393-44.86-52.74-44.86-52.74 0 31.34-16.14 72.25-51.05 101.8 16.84 5.192 54.84 19.17 45.8 34.42-7.316 12.34-125.5 7.881-159.6 4.037-34.12 3.844-152.3 8.306-159.6-4.037-9.045-15.25 28.92-29.21 45.78-34.42-34.92-29.54-51.06-70.44-51.06-101.8 0 0-33.33 54.13-44.86 52.74-5.37-.65-12.42-29.64 9.347-99.7 10.26-33.02 21.1-60.48 40.14-105.8C60.68 98.06 108.1 .006 224 0c113.7 .006 163.2 96.13 160.3 214.1 18.12 45.22 29.91 72.85 40.14 105.8 21.77 70.06 14.72 99.05 9.346 99.7z" - } - }, - "free": [ - "brands" - ] - }, - "qrcode": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f029", - "aliases": { - "unicodes": { - "secondary": [ - "10f029" - ] - } - }, - "label": "qrcode", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M144 32C170.5 32 192 53.49 192 80V176C192 202.5 170.5 224 144 224H48C21.49 224 0 202.5 0 176V80C0 53.49 21.49 32 48 32H144zM128 96H64V160H128V96zM144 288C170.5 288 192 309.5 192 336V432C192 458.5 170.5 480 144 480H48C21.49 480 0 458.5 0 432V336C0 309.5 21.49 288 48 288H144zM128 352H64V416H128V352zM256 80C256 53.49 277.5 32 304 32H400C426.5 32 448 53.49 448 80V176C448 202.5 426.5 224 400 224H304C277.5 224 256 202.5 256 176V80zM320 160H384V96H320V160zM352 448H384V480H352V448zM448 480H416V448H448V480zM416 288H448V416H352V384H320V480H256V288H352V320H416V288z" - } - }, - "free": [ - "solid" - ] - }, - "question": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "3f", - "aliases": { - "unicodes": { - "composite": [ - "2753", - "2754", - "f128" - ], - "primary": [ - "f128" - ], - "secondary": [ - "10f128", - "103f" - ] - } - }, - "label": "Question", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M204.3 32.01H96c-52.94 0-96 43.06-96 96c0 17.67 14.31 31.1 32 31.1s32-14.32 32-31.1c0-17.64 14.34-32 32-32h108.3C232.8 96.01 256 119.2 256 147.8c0 19.72-10.97 37.47-30.5 47.33L127.8 252.4C117.1 258.2 112 268.7 112 280v40c0 17.67 14.31 31.99 32 31.99s32-14.32 32-31.99V298.3L256 251.3c39.47-19.75 64-59.42 64-103.5C320 83.95 268.1 32.01 204.3 32.01zM144 400c-22.09 0-40 17.91-40 40s17.91 39.1 40 39.1s40-17.9 40-39.1S166.1 400 144 400z" - } - }, - "free": [ - "solid" - ] - }, - "quinscape": { - "changes": [ - "5.0.5", - "5.7.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f459", - "label": "QuinScape", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M313.6 474.6h-1a158.1 158.1 0 0 1 0-316.2c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7C501.1 117.5 391.6 8 256.5 8S12 117.5 12 252.6s109.5 244.6 244.5 244.6a237.4 237.4 0 0 0 70.4-10.1c-5.2-3.5-8.9-8.1-13.3-12.5zm-.1-.1l.4 .1zm78.4-168.9a99.2 99.2 0 1 0 99.2 99.2 99.18 99.18 0 0 0 -99.2-99.2z" - } - }, - "free": [ - "brands" - ] - }, - "quora": { - "changes": [ - "4.7.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2c4", - "label": "Quora", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M440.5 386.7h-29.3c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153C403.5 111.2 306.8 32 205 32 105.3 32 7.3 111.7 7.3 228.7c0 134.1 131.3 221.6 249 189C276 451.3 302 480 351.5 480c81.8 0 90.8-75.3 89-93.3zM297 329.2C277.5 300 253.3 277 205.5 277c-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7C97.5 124.5 130 71 205 71c76.2 0 108.7 53.5 108.7 157.7 .1 41.8-5.4 75.6-16.7 100.5z" - } - }, - "free": [ - "brands" - ] - }, - "quote-left": { - "changes": [ - "3.0.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f10d", - "aliases": { - "names": [ - "quote-left-alt" - ], - "unicodes": { - "composite": [ - "201c" - ], - "secondary": [ - "10f10d" - ] - } - }, - "label": "quote-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M96 224C84.72 224 74.05 226.3 64 229.9V224c0-35.3 28.7-64 64-64c17.67 0 32-14.33 32-32S145.7 96 128 96C57.42 96 0 153.4 0 224v96c0 53.02 42.98 96 96 96s96-42.98 96-96S149 224 96 224zM352 224c-11.28 0-21.95 2.305-32 5.879V224c0-35.3 28.7-64 64-64c17.67 0 32-14.33 32-32s-14.33-32-32-32c-70.58 0-128 57.42-128 128v96c0 53.02 42.98 96 96 96s96-42.98 96-96S405 224 352 224z" - } - }, - "free": [ - "solid" - ] - }, - "quote-right": { - "changes": [ - "3.0.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f10e", - "aliases": { - "names": [ - "quote-right-alt" - ], - "unicodes": { - "composite": [ - "201d" - ], - "secondary": [ - "10f10e" - ] - } - }, - "label": "quote-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M96 96C42.98 96 0 138.1 0 192s42.98 96 96 96c11.28 0 21.95-2.305 32-5.879V288c0 35.3-28.7 64-64 64c-17.67 0-32 14.33-32 32s14.33 32 32 32c70.58 0 128-57.42 128-128V192C192 138.1 149 96 96 96zM448 192c0-53.02-42.98-96-96-96s-96 42.98-96 96s42.98 96 96 96c11.28 0 21.95-2.305 32-5.879V288c0 35.3-28.7 64-64 64c-17.67 0-32 14.33-32 32s14.33 32 32 32c70.58 0 128-57.42 128-128V192z" - } - }, - "free": [ - "solid" - ] - }, - "r": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "52", - "aliases": { - "unicodes": { - "composite": [ - "72" - ] - } - }, - "label": "R", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M228.7 309.7C282 288.6 320 236.8 320 176c0-79.41-64.59-144-144-144H32c-17.67 0-32 14.33-32 32v384c0 17.67 14.33 32 32 32s32-14.33 32-32v-128h93.43l104.5 146.6c6.25 8.75 16.09 13.42 26.09 13.42c6.422 0 12.91-1.922 18.55-5.938c14.39-10.27 17.73-30.25 7.484-44.64L228.7 309.7zM64 96.01h112c44.11 0 80 35.89 80 80s-35.89 79.1-80 79.1H64V96.01z" - } - }, - "free": [ - "solid" - ] - }, - "r-project": { - "changes": [ - "5.0.11", - "5.0.12" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f7", - "label": "R Project", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 581, - 512 - ], - "width": 581, - "height": 512, - "path": "M581 226.6C581 119.1 450.9 32 290.5 32S0 119.1 0 226.6C0 322.4 103.3 402 239.4 418.1V480h99.1v-61.5c24.3-2.7 47.6-7.4 69.4-13.9L448 480h112l-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zm-466.8 14.5c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9h-199V361c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3v-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5H365c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9v-22.1z" - } - }, - "free": [ - "brands" - ] - }, - "radiation": { - "changes": [ - "5.6.0", - "5.8.2", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7b9", - "aliases": { - "unicodes": { - "secondary": [ - "10f7b9" - ] - } - }, - "label": "Radiation", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 303.1c26.5 0 48-21.5 48-48S282.5 207.1 256 207.1S208 229.5 208 255.1S229.5 303.1 256 303.1zM213.6 188L142.7 74.71C132.5 58.41 109.9 54.31 95.25 66.75c-44.94 38.1-76.19 91.82-85.17 152.8C7.266 238.7 22.67 255.8 42.01 255.8h133.8C175.8 227.2 191 202.3 213.6 188zM416.8 66.75c-14.67-12.44-37.21-8.338-47.41 7.965L298.4 188c22.6 14.3 37.8 39.2 37.8 67.8h133.8c19.34 0 34.74-17.13 31.93-36.26C492.9 158.6 461.7 104.8 416.8 66.75zM298.4 323.5C286.1 331.2 271.6 335.9 256 335.9s-30.1-4.701-42.4-12.4L142.7 436.9c-10.14 16.21-4.16 38.2 13.32 45.95C186.6 496.4 220.4 504 256 504s69.42-7.611 100-21.18c17.48-7.752 23.46-29.74 13.32-45.95L298.4 323.5z" - } - }, - "free": [ - "solid" - ] - }, - "radio": { - "changes": [ - "5.11.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f8d7", - "aliases": { - "unicodes": { - "composite": [ - "1f4fb" - ], - "secondary": [ - "10f8d7" - ] - } - }, - "label": "Radio", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M447.1 128L218.5 128l276.2-80.97c12.72-3.734 19.1-17.06 16.28-29.78c-3.719-12.7-16.1-19.1-29.78-16.28L51.75 126.9c-29.07 8.512-49.55 34.8-51.39 64.78L.0007 192v255.1c0 35.31 28.69 63.1 63.1 63.1h383.1c35.31 0 63.1-28.69 63.1-63.1V192C511.1 156.7 483.3 128 447.1 128zM80 248c0-4.406 3.594-7.1 7.1-7.1h111.1c4.406 0 7.1 3.594 7.1 7.1V263.1c0 4.406-3.594 7.1-7.1 7.1h-111.1c-4.406 0-7.1-3.594-7.1-7.1V248zM208 391.1c0 4.406-3.594 7.1-7.1 7.1h-111.1c-4.406 0-7.1-3.594-7.1-7.1v-15.1c0-4.406 3.594-7.1 7.1-7.1h111.1c4.406 0 7.1 3.594 7.1 7.1V391.1zM224 327.1c0 4.406-3.594 7.1-7.1 7.1H72c-4.406 0-7.1-3.594-7.1-7.1V311.1c0-4.406 3.594-7.1 7.1-7.1h143.1c4.406 0 7.1 3.594 7.1 7.1V327.1zM367.1 399.1c-44.16 0-80-35.84-80-79.1s35.84-80 80-80s79.1 35.85 79.1 80S412.2 399.1 367.1 399.1z" - } - }, - "free": [ - "solid" - ] - }, - "rainbow": { - "changes": [ - "5.5.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f75b", - "aliases": { - "unicodes": { - "composite": [ - "1f308" - ], - "secondary": [ - "10f75b" - ] - } - }, - "label": "Rainbow", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573303, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M312.3 32.09C137.6 36.22 0 183.3 0 358V464C0 472.8 7.164 480 16 480h32C56.84 480 64 472.8 64 464v-106.9c0-143.2 117.2-263.5 260.4-261.1C463.5 98.4 576 212.3 576 352v112c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16V352C640 172.1 492.3 27.84 312.3 32.09zM313.5 224.2C244.8 227.6 192 286.9 192 355.7V464C192 472.8 199.2 480 208 480h32C248.8 480 256 472.8 256 464v-109.7c0-34.06 25.65-63.85 59.64-66.11C352.9 285.7 384 315.3 384 352v112c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16V352C448 279.3 387 220.5 313.5 224.2zM313.2 128.1C191.4 131.7 96 234.9 96 356.8V464C96 472.8 103.2 480 112 480h32C152.8 480 160 472.8 160 464v-108.1c0-86.64 67.24-160.5 153.8-163.8C404.8 188.7 480 261.7 480 352v112c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16V352C544 226.2 439.8 124.3 313.2 128.1z" - } - }, - "free": [ - "solid" - ] - }, - "ranking-star": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e561", - "label": "Ranking Star", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573304, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M406.1 61.65C415.4 63.09 419.4 74.59 412.6 81.41L374.6 118.1L383.6 170.1C384.1 179.5 375.3 186.7 366.7 182.4L320.2 157.9L273.3 182.7C264.7 187 255 179.8 256.4 170.5L265.4 118.4L227.4 81.41C220.6 74.59 224.6 63.09 233.9 61.65L286.2 54.11L309.8 6.332C314.1-2.289 326.3-1.93 330.2 6.332L353.8 54.11L406.1 61.65zM384 256C401.7 256 416 270.3 416 288V480C416 497.7 401.7 512 384 512H256C238.3 512 224 497.7 224 480V288C224 270.3 238.3 256 256 256H384zM160 320C177.7 320 192 334.3 192 352V480C192 497.7 177.7 512 160 512H32C14.33 512 0 497.7 0 480V352C0 334.3 14.33 320 32 320H160zM448 416C448 398.3 462.3 384 480 384H608C625.7 384 640 398.3 640 416V480C640 497.7 625.7 512 608 512H480C462.3 512 448 497.7 448 480V416z" - } - }, - "free": [ - "solid" - ] - }, - "raspberry-pi": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7bb", - "label": "Raspberry Pi", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 407, - 512 - ], - "width": 407, - "height": 512, - "path": "M372 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2 .7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6 .8C271.6 .6 269 5.5 263.5 7.6c-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9 .1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6 .1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8C21.2 16 15.8 28 22 39.2c-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2C159 504.2 181 512 203 512h1c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80c24.5-15.8 59.8-5.6 78.8 22.8s14.6 64.2-9.9 80zM238.9 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7 .8 14.1 .6 23.9 .8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8 .4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2 .1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7 .9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6 .9 2.7 3.6 4.4 6.7 5.8-15.4 .9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zm-34.4 114.6c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zm-123-12.8c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8 .7 8.3 .1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6 .4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3 .4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6 .2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM38.2 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zm-26.4-119.7c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM205 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9 .5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54-32.6 .2-59.2-23.8-59.4-53.4v-.6c-.2-29.7 26.2-53.8 58.8-54 32.6-.2 59.2 23.8 59.4 53.4v.6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z" - } - }, - "free": [ - "brands" - ] - }, - "ravelry": { - "changes": [ - "4.7.0", - "5.0.0", - "5.15.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2d9", - "label": "Ravelry", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M498.3 234.2c-1.208-10.34-1.7-20.83-3.746-31a310.3 310.3 0 0 0 -9.622-36.6 184.1 184.1 0 0 0 -30.87-57.5 251.2 251.2 0 0 0 -18.82-21.69 237.4 237.4 0 0 0 -47.11-36.12A240.8 240.8 0 0 0 331.4 26.65c-11.02-3.1-22.27-5.431-33.51-7.615-6.78-1.314-13.75-1.667-20.63-2.482-.316-.036-.6-.358-.9-.553q-16.14 .009-32.29 .006c-2.41 .389-4.808 .925-7.236 1.15a179.3 179.3 0 0 0 -34.26 7.1 221.5 221.5 0 0 0 -39.77 16.35 281.4 281.4 0 0 0 -38.08 24.16c-6.167 4.61-12.27 9.36-17.97 14.52C96.54 88.49 86.34 97.72 76.79 107.6a243.9 243.9 0 0 0 -33.65 43.95 206.5 206.5 0 0 0 -20.49 44.6 198.2 198.2 0 0 0 -7.691 34.76A201.1 201.1 0 0 0 13.4 266.4a299.7 299.7 0 0 0 4.425 40.24 226.9 226.9 0 0 0 16.73 53.3 210.5 210.5 0 0 0 24 39.53 213.6 213.6 0 0 0 26.36 28.42A251.3 251.3 0 0 0 126.7 458.5a287.8 287.8 0 0 0 55.9 25.28 269.5 269.5 0 0 0 40.64 9.835c6.071 1.01 12.27 1.253 18.41 1.873a4.149 4.149 0 0 1 1.19 .56h32.29c2.507-.389 5-.937 7.527-1.143 16.34-1.332 32.11-5.335 47.49-10.72A219.1 219.1 0 0 0 379.1 460.3c9.749-6.447 19.4-13.08 28.74-20.1 5.785-4.348 10.99-9.5 16.3-14.46 3.964-3.7 7.764-7.578 11.51-11.5a232.2 232.2 0 0 0 31.43-41.64c9.542-16.05 17.35-32.9 22.3-50.93 2.859-10.41 4.947-21.05 7.017-31.65 1.032-5.279 1.251-10.72 1.87-16.09 .036-.317 .358-.6 .552-.9V236A9.757 9.757 0 0 1 498.3 234.2zm-161.1-1.15s-16.57-2.98-28.47-2.98c-27.2 0-33.57 14.9-33.57 37.04V360.8H201.6V170.1H275.1v31.93c8.924-26.82 26.77-36.19 62.04-36.19z" - } - }, - "free": [ - "brands" - ] - }, - "react": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f41b", - "label": "React", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1 .9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2 .6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9C38.3 196.2 0 225.4 0 255.6c0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zm-30.3-120.3c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zm-24.5 263.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6 .4 19.5 .6 29.5 .6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8 .9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zm-149.7-15c25.3 0 45.8-20.5 45.8-45.8s-20.5-45.8-45.8-45.8c-25.3 0-45.8 20.5-45.8 45.8s20.5 45.8 45.8 45.8z" - } - }, - "free": [ - "brands" - ] - }, - "reacteurope": { - "changes": [ - "5.5.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f75d", - "label": "ReactEurope", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M250.6 211.7l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3zm-91.3 50.5h-3.4c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1v-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5h3.4c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1h-.2c-10.1 0-16.8 4.2-16.8 14.1V276c0 10.4 6.7 14.1 16.8 14.1h.2c10.1 0 16.8-3.8 16.8-14.1 0-9.86 1.1-13.76-3.8-13.76zm-80.7 17.4h-14.7v-19.3H139c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-11.4v-18.3H142c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-21.7c-2.4-.1-3.7 1.3-3.7 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h21.9c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4v-11.9c0-10.1-6.7-14.1-16.8-14.1H77.4c-2.5 0-3.8 1.3-3.8 3.8v59.1c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 0 3.8-1.3 3.8-3.8v-22.9h5.6l7.4 23.5a4.1 4.1 0 0 0 4.3 3.2h3.3c2.8 0 4-1.8 3.2-4.4zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1h-5.8v-20.9h5.8c3.6 0 6.1 1.3 6.1 6.1zM176 226a3.82 3.82 0 0 0 -4.2-3.4h-6.9a3.68 3.68 0 0 0 -4 3.4l-11 59.2c-.5 2.7 .9 4.1 3.4 4.1h3a3.74 3.74 0 0 0 4.1-3.5l1.8-11.3h12.2l1.8 11.3a3.74 3.74 0 0 0 4.1 3.5h3.5c2.6 0 3.9-1.4 3.4-4.1zm-12.3 39.3l4.7-29.7 4.7 29.7zm89.3 20.2v-53.2h7.5c2.5 0 3.8-1.3 3.8-3.8v-2.1c0-2.5-1.3-3.8-3.8-3.8h-25.8c-2.5 0-3.8 1.3-3.8 3.8v2.1c0 2.5 1.3 3.8 3.8 3.8h7.3v53.2c0 2.5 1.3 3.8 3.8 3.8h3.4c2.5 .04 3.8-1.3 3.8-3.76zm248-.8h-19.4V258h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0 -2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0 -2-1.9h-22.2a1.62 1.62 0 0 0 -2 1.8v63a1.81 1.81 0 0 0 2 1.9H501a1.81 1.81 0 0 0 2-1.9v-.8a1.84 1.84 0 0 0 -2-1.96zm-93.1-62.9h-.8c-10.1 0-15.3 4.7-15.3 14.1V276c0 9.3 5.2 14.1 15.3 14.1h.8c10.1 0 15.3-4.8 15.3-14.1v-40.1c0-9.36-5.2-14.06-15.3-14.06zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1v-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3v-9.7c0-9.4-5.2-14.1-15.3-14.1h-13.7a1.81 1.81 0 0 0 -2 1.9v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.9h11.6l10.4 27.2a2.32 2.32 0 0 0 2.3 1.5h1.5c1.4 0 2-1 1.5-2.3zm-6.4-3.9H355v-28.5h10.2c7.5 0 10.5 3.1 10.5 11.1v6.4c0 7.84-3 11.04-10.5 11.04zm85.9-33.1h-13.7a1.62 1.62 0 0 0 -2 1.8v63a1.81 1.81 0 0 0 2 1.9h1.2a1.74 1.74 0 0 0 1.9-1.9v-26.1h10.6c10.1 0 15.3-4.8 15.3-14.1v-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1h-10.2v-29.2h10.2c7.5-.1 10.5 3.1 10.5 11zM259.5 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm227.6-136.1a364.4 364.4 0 0 0 -35.6-11.3c19.6-78 11.6-134.7-22.3-153.9C394.7-12.66 343.3 11 291 61.94q5.1 4.95 10.2 10.2c82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8a587.8 587.8 0 0 0 -84.6-13C281.1 43.64 212.4 2 170.8 2 140 2 127 23 123.2 29.74c-18.1 32-13.3 84.2 .1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2q-5.1-4.95-10.2-10.2c-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3zM135.9 36.84c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2a714 714 0 0 0 -93.9 .9 547.8 547.8 0 0 1 42.2-52.4Q277.3 86 272.2 81a598.3 598.3 0 0 0 -50.7 64.2 569.7 569.7 0 0 0 -84.4 14.6c-.2-1.4-24.3-82.2-1.2-123zm304.8 438.3c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2a695.4 695.4 0 0 0 93.9-.9 547.8 547.8 0 0 1 -42.2 52.4q5.1 5.25 10.2 10.2a588.5 588.5 0 0 0 50.7-64.2c47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4a12.67 12.67 0 0 1 -10.7-5.7l-.1 .1a19.61 19.61 0 0 1 -5.4 3.6c5.7 14.3 10.6 28.4 14.7 42.2a535.3 535.3 0 0 1 -72 13c3.5-5.3 17.2-26.2 32.2-54.2a24.6 24.6 0 0 1 -6-3.2c-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2a711.9 711.9 0 0 1 -112.4 1c-7.9-11.2-21.5-31.1-36.8-57.8a21 21 0 0 1 -3-1.5c-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6a548.8 548.8 0 0 1 -72.2-11.7q5.85-21 14.1-42.9c-3.2 0-5.4 .2-8.4-1a17.58 17.58 0 0 1 -6.9 1c-4.9 13.4-9.1 26.5-12.7 39.4C-31.7 297-12.1 216 126.7 175.6c3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3a12 12 0 0 1 2.3-2.2c-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3a14.22 14.22 0 0 1 6.4 8 23.42 23.42 0 0 1 10.2-8.4c6.5-11.7 17.9-31.9 34.8-56.9a711.7 711.7 0 0 1 112.4-1c31.5 44.6 28.9 48.1 42.5 64.5a21.42 21.42 0 0 1 10.4-7.4c-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2a20.74 20.74 0 0 1 6.8 4.3l.1 .1a12.72 12.72 0 0 1 8.9-5.6c4.9-13.4 9.2-26.6 12.8-39.5a359.7 359.7 0 0 1 34.5 11c106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114h-1.2a1.74 1.74 0 0 0 -1.9 1.9v49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1v-49.8a1.69 1.69 0 0 0 -1.9-1.9H309a1.81 1.81 0 0 0 -2 1.9v51.5c0 9.6 5 14.1 15.1 14.1h.4c10.1 0 15.1-4.6 15.1-14.1v-51.5a2 2 0 0 0 -2.2-1.9zM321.7 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3zm5.1-30.8h-19.4v-26.7h16.1a1.89 1.89 0 0 0 2-2v-.8a1.89 1.89 0 0 0 -2-2h-16.1v-25.8h19.1a1.89 1.89 0 0 0 2-2v-.8a1.77 1.77 0 0 0 -2-1.9h-22.2a1.81 1.81 0 0 0 -2 1.9v63a1.81 1.81 0 0 0 2 1.9h22.5a1.77 1.77 0 0 0 2-1.9v-.8a1.83 1.83 0 0 0 -2-2.06zm-7.4-99.4L286 192l-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1z" - } - }, - "free": [ - "brands" - ] - }, - "readme": { - "changes": [ - "5.0.9", - "5.0.10" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4d5", - "label": "ReadMe", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M528.3 46.5H388.5c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3H48c-26.5 0-48 21.5-48 48v245.8c0 26.5 21.5 48 48 48h89.7c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75H528c26.5 0 48-21.5 48-48V94.6c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5V289c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V251zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H78.2c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm259.3 121.7c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.9c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5V228c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5v22.9zm0-60.9c0 1.9-1.5 3.5-3.5 3.5H337.5c-1.9 0-3.5-1.5-3.5-3.5v-22.8c0-1.9 1.5-3.5 3.5-3.5h160.4c1.9 0 3.5 1.5 3.5 3.5V190z" - } - }, - "free": [ - "brands" - ] - }, - "rebel": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d0", - "label": "Rebel Alliance", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256.5 504C117.2 504 9 387.8 13.2 249.9 16 170.7 56.4 97.7 129.7 49.5c.3 0 1.9-.6 1.1 .8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7 .8-29.6-21.9-61.4-21.9-61.4L255.1 8l44.3 50.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4 .6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5 .8-2.8 .8-2.8 50.1 36.5 114.6 84.4 116.2 204.8C500.9 400.2 399 504 256.5 504z" - } - }, - "free": [ - "brands" - ] - }, - "receipt": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f543", - "aliases": { - "unicodes": { - "composite": [ - "1f9fe" - ], - "secondary": [ - "10f543" - ] - } - }, - "label": "Receipt", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573304, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M13.97 2.196C22.49-1.72 32.5-.3214 39.62 5.778L80 40.39L120.4 5.778C129.4-1.926 142.6-1.926 151.6 5.778L192 40.39L232.4 5.778C241.4-1.926 254.6-1.926 263.6 5.778L304 40.39L344.4 5.778C351.5-.3214 361.5-1.72 370 2.196C378.5 6.113 384 14.63 384 24V488C384 497.4 378.5 505.9 370 509.8C361.5 513.7 351.5 512.3 344.4 506.2L304 471.6L263.6 506.2C254.6 513.9 241.4 513.9 232.4 506.2L192 471.6L151.6 506.2C142.6 513.9 129.4 513.9 120.4 506.2L80 471.6L39.62 506.2C32.5 512.3 22.49 513.7 13.97 509.8C5.456 505.9 0 497.4 0 488V24C0 14.63 5.456 6.112 13.97 2.196V2.196zM96 144C87.16 144 80 151.2 80 160C80 168.8 87.16 176 96 176H288C296.8 176 304 168.8 304 160C304 151.2 296.8 144 288 144H96zM96 368H288C296.8 368 304 360.8 304 352C304 343.2 296.8 336 288 336H96C87.16 336 80 343.2 80 352C80 360.8 87.16 368 96 368zM96 240C87.16 240 80 247.2 80 256C80 264.8 87.16 272 96 272H288C296.8 272 304 264.8 304 256C304 247.2 296.8 240 288 240H96z" - } - }, - "free": [ - "solid" - ] - }, - "record-vinyl": { - "changes": [ - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f8d9", - "aliases": { - "unicodes": { - "secondary": [ - "10f8d9" - ] - } - }, - "label": "Record Vinyl", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573304, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 160C202.9 160 160 202.9 160 256s42.92 96 96 96c53.08 0 96-42.92 96-96S309.1 160 256 160zM256 288C238.3 288 224 273.7 224 256s14.33-32 32-32c17.67 0 32 14.33 32 32S273.7 288 256 288zM256 0c-141.4 0-256 114.6-256 256s114.6 256 256 256c141.4 0 256-114.6 256-256S397.4 0 256 0zM256 384c-70.75 0-128-57.25-128-128s57.25-128 128-128s128 57.25 128 128S326.8 384 256 384z" - } - }, - "free": [ - "solid" - ] - }, - "rectangle-ad": { - "changes": [ - "5.3.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f641", - "aliases": { - "names": [ - "ad" - ], - "unicodes": { - "secondary": [ - "10f641" - ] - } - }, - "label": "Rectangle ad", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573304, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 237.7L229.2 280H186.8L208 237.7zM416 280C416 293.3 405.3 304 392 304C378.7 304 368 293.3 368 280C368 266.7 378.7 256 392 256C405.3 256 416 266.7 416 280zM512 32C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H512zM229.5 173.3C225.4 165.1 217.1 160 208 160C198.9 160 190.6 165.1 186.5 173.3L114.5 317.3C108.6 329.1 113.4 343.5 125.3 349.5C137.1 355.4 151.5 350.6 157.5 338.7L162.8 328H253.2L258.5 338.7C264.5 350.6 278.9 355.4 290.7 349.5C302.6 343.5 307.4 329.1 301.5 317.3L229.5 173.3zM416 212.1C408.5 209.4 400.4 208 392 208C352.2 208 320 240.2 320 280C320 319.8 352.2 352 392 352C403.1 352 413.6 349.5 423 344.1C427.4 349.3 433.4 352 440 352C453.3 352 464 341.3 464 328V184C464 170.7 453.3 160 440 160C426.7 160 416 170.7 416 184V212.1z" - } - }, - "free": [ - "solid" - ] - }, - "rectangle-list": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f022", - "aliases": { - "names": [ - "list-alt" - ], - "unicodes": { - "secondary": [ - "10f022" - ] - } - }, - "label": "Rectangle list", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573304, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 96C0 60.65 28.65 32 64 32H512C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96zM160 256C160 238.3 145.7 224 128 224C110.3 224 96 238.3 96 256C96 273.7 110.3 288 128 288C145.7 288 160 273.7 160 256zM160 160C160 142.3 145.7 128 128 128C110.3 128 96 142.3 96 160C96 177.7 110.3 192 128 192C145.7 192 160 177.7 160 160zM160 352C160 334.3 145.7 320 128 320C110.3 320 96 334.3 96 352C96 369.7 110.3 384 128 384C145.7 384 160 369.7 160 352zM224 136C210.7 136 200 146.7 200 160C200 173.3 210.7 184 224 184H448C461.3 184 472 173.3 472 160C472 146.7 461.3 136 448 136H224zM224 232C210.7 232 200 242.7 200 256C200 269.3 210.7 280 224 280H448C461.3 280 472 269.3 472 256C472 242.7 461.3 232 448 232H224zM224 328C210.7 328 200 338.7 200 352C200 365.3 210.7 376 224 376H448C461.3 376 472 365.3 472 352C472 338.7 461.3 328 448 328H224z" - }, - "regular": { - "last_modified": 1658443573106, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M128 192C110.3 192 96 177.7 96 160C96 142.3 110.3 128 128 128C145.7 128 160 142.3 160 160C160 177.7 145.7 192 128 192zM200 160C200 146.7 210.7 136 224 136H448C461.3 136 472 146.7 472 160C472 173.3 461.3 184 448 184H224C210.7 184 200 173.3 200 160zM200 256C200 242.7 210.7 232 224 232H448C461.3 232 472 242.7 472 256C472 269.3 461.3 280 448 280H224C210.7 280 200 269.3 200 256zM200 352C200 338.7 210.7 328 224 328H448C461.3 328 472 338.7 472 352C472 365.3 461.3 376 448 376H224C210.7 376 200 365.3 200 352zM128 224C145.7 224 160 238.3 160 256C160 273.7 145.7 288 128 288C110.3 288 96 273.7 96 256C96 238.3 110.3 224 128 224zM128 384C110.3 384 96 369.7 96 352C96 334.3 110.3 320 128 320C145.7 320 160 334.3 160 352C160 369.7 145.7 384 128 384zM0 96C0 60.65 28.65 32 64 32H512C547.3 32 576 60.65 576 96V416C576 451.3 547.3 480 512 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H512C520.8 432 528 424.8 528 416V96C528 87.16 520.8 80 512 80H64C55.16 80 48 87.16 48 96z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "rectangle-xmark": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f410", - "aliases": { - "names": [ - "rectangle-times", - "times-rectangle", - "window-close" - ], - "unicodes": { - "composite": [ - "f2d4" - ], - "secondary": [ - "10f410" - ] - } - }, - "label": "Rectangle X Mark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573304, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM175 208.1L222.1 255.1L175 303C165.7 312.4 165.7 327.6 175 336.1C184.4 346.3 199.6 346.3 208.1 336.1L255.1 289.9L303 336.1C312.4 346.3 327.6 346.3 336.1 336.1C346.3 327.6 346.3 312.4 336.1 303L289.9 255.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175C327.6 165.7 312.4 165.7 303 175L255.1 222.1L208.1 175C199.6 165.7 184.4 165.7 175 175C165.7 184.4 165.7 199.6 175 208.1V208.1z" - }, - "regular": { - "last_modified": 1658443573107, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M175 175C184.4 165.7 199.6 165.7 208.1 175L255.1 222.1L303 175C312.4 165.7 327.6 165.7 336.1 175C346.3 184.4 346.3 199.6 336.1 208.1L289.9 255.1L336.1 303C346.3 312.4 346.3 327.6 336.1 336.1C327.6 346.3 312.4 346.3 303 336.1L255.1 289.9L208.1 336.1C199.6 346.3 184.4 346.3 175 336.1C165.7 327.6 165.7 312.4 175 303L222.1 255.1L175 208.1C165.7 199.6 165.7 184.4 175 175V175zM0 96C0 60.65 28.65 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V96C464 87.16 456.8 80 448 80H64C55.16 80 48 87.16 48 96z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "recycle": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1b8", - "aliases": { - "unicodes": { - "composite": [ - "267a", - "267b", - "2672" - ], - "secondary": [ - "10f1b8" - ] - } - }, - "label": "Recycle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M180.2 243.1C185 263.9 162.2 280.2 144.1 268.8L119.8 253.6l-50.9 81.43c-13.33 21.32 2.004 48.98 27.15 48.98h32.02c17.64 0 31.98 14.32 31.98 31.96c0 17.64-14.34 32.05-31.98 32.05H96.15c-75.36 0-121.3-82.84-81.47-146.8L65.51 219.8L41.15 204.5C23.04 193.1 27.66 165.5 48.48 160.7l91.43-21.15C148.5 137.7 157.2 142.9 159.2 151.6L180.2 243.1zM283.1 78.96l41.25 66.14l-24.25 15.08c-18.16 11.31-13.57 38.94 7.278 43.77l91.4 21.15c8.622 1.995 17.23-3.387 19.21-12.01l21.04-91.43c4.789-20.81-17.95-37.05-36.07-25.76l-24.36 15.2L337.4 45.14c-37.58-60.14-125.2-60.18-162.8-.0617L167.2 56.9C157.9 71.75 162.5 91.58 177.3 100.9c14.92 9.359 34.77 4.886 44.11-10.04l7.442-11.89C241.6 58.58 270.9 59.33 283.1 78.96zM497.3 301.3l-16.99-27.26c-9.336-14.98-29.06-19.56-44.04-10.21c-14.94 9.318-19.52 29.15-10.18 44.08l16.99 27.15c13.35 21.32-1.984 49-27.14 49h-95.99l.0234-28.74c0-21.38-25.85-32.09-40.97-16.97l-66.41 66.43c-6.222 6.223-6.222 16.41 .0044 22.63l66.42 66.34c15.12 15.1 40.95 4.386 40.95-16.98l-.0234-28.68h95.86C491.2 448.1 537.2 365.2 497.3 301.3z" - } - }, - "free": [ - "solid" - ] - }, - "red-river": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e3", - "label": "red river", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M353.2 32H94.8C42.4 32 0 74.4 0 126.8v258.4C0 437.6 42.4 480 94.8 480h258.4c52.4 0 94.8-42.4 94.8-94.8V126.8c0-52.4-42.4-94.8-94.8-94.8zM144.9 200.9v56.3c0 27-21.9 48.9-48.9 48.9V151.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9h-56.3c-12.3-.6-24.6 11.6-24 24zm176.3 72h-56.3c-12.3-.6-24.6 11.6-24 24v56.3c0 27-21.9 48.9-48.9 48.9V247.9c0-13.2 10.7-23.9 23.9-23.9h154.2c0 27-21.9 48.9-48.9 48.9z" - } - }, - "free": [ - "brands" - ] - }, - "reddit": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a1", - "label": "reddit Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M201.5 305.5c-13.8 0-24.9-11.1-24.9-24.6 0-13.8 11.1-24.9 24.9-24.9 13.6 0 24.6 11.1 24.6 24.9 0 13.6-11.1 24.6-24.6 24.6zM504 256c0 137-111 248-248 248S8 393 8 256 119 8 256 8s248 111 248 248zm-132.3-41.2c-9.4 0-17.7 3.9-23.8 10-22.4-15.5-52.6-25.5-86.1-26.6l17.4-78.3 55.4 12.5c0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.3 24.9-24.9s-11.1-24.9-24.9-24.9c-9.7 0-18 5.8-22.1 13.8l-61.2-13.6c-3-.8-6.1 1.4-6.9 4.4l-19.1 86.4c-33.2 1.4-63.1 11.3-85.5 26.8-6.1-6.4-14.7-10.2-24.1-10.2-34.9 0-46.3 46.9-14.4 62.8-1.1 5-1.7 10.2-1.7 15.5 0 52.6 59.2 95.2 132 95.2 73.1 0 132.3-42.6 132.3-95.2 0-5.3-.6-10.8-1.9-15.8 31.3-16 19.8-62.5-14.9-62.5zM302.8 331c-18.2 18.2-76.1 17.9-93.6 0-2.2-2.2-6.1-2.2-8.3 0-2.5 2.5-2.5 6.4 0 8.6 22.8 22.8 87.3 22.8 110.2 0 2.5-2.2 2.5-6.1 0-8.6-2.2-2.2-6.1-2.2-8.3 0zm7.7-75c-13.6 0-24.6 11.1-24.6 24.9 0 13.6 11.1 24.6 24.6 24.6 13.8 0 24.9-11.1 24.9-24.6 0-13.8-11-24.9-24.9-24.9z" - } - }, - "free": [ - "brands" - ] - }, - "reddit-alien": { - "changes": [ - "4.5.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f281", - "label": "reddit Alien", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572491, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M440.3 203.5c-15 0-28.2 6.2-37.9 15.9-35.7-24.7-83.8-40.6-137.1-42.3L293 52.3l88.2 19.8c0 21.6 17.6 39.2 39.2 39.2 22 0 39.7-18.1 39.7-39.7s-17.6-39.7-39.7-39.7c-15.4 0-28.7 9.3-35.3 22l-97.4-21.6c-4.9-1.3-9.7 2.2-11 7.1L246.3 177c-52.9 2.2-100.5 18.1-136.3 42.8-9.7-10.1-23.4-16.3-38.4-16.3-55.6 0-73.8 74.6-22.9 100.1-1.8 7.9-2.6 16.3-2.6 24.7 0 83.8 94.4 151.7 210.3 151.7 116.4 0 210.8-67.9 210.8-151.7 0-8.4-.9-17.2-3.1-25.1 49.9-25.6 31.5-99.7-23.8-99.7zM129.4 308.9c0-22 17.6-39.7 39.7-39.7 21.6 0 39.2 17.6 39.2 39.7 0 21.6-17.6 39.2-39.2 39.2-22 .1-39.7-17.6-39.7-39.2zm214.3 93.5c-36.4 36.4-139.1 36.4-175.5 0-4-3.5-4-9.7 0-13.7 3.5-3.5 9.7-3.5 13.2 0 27.8 28.5 120 29 149 0 3.5-3.5 9.7-3.5 13.2 0 4.1 4 4.1 10.2 .1 13.7zm-.8-54.2c-21.6 0-39.2-17.6-39.2-39.2 0-22 17.6-39.7 39.2-39.7 22 0 39.7 17.6 39.7 39.7-.1 21.5-17.7 39.2-39.7 39.2z" - } - }, - "free": [ - "brands" - ] - }, - "redhat": { - "changes": [ - "5.6.0", - "5.8.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7bc", - "label": "Redhat", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M341.5 285.6c33.65 0 82.34-6.94 82.34-47 .22-6.74 .86-1.82-20.88-96.24-4.62-19.15-8.68-27.84-42.31-44.65-26.09-13.34-82.92-35.37-99.73-35.37-15.66 0-20.2 20.17-38.87 20.17-18 0-31.31-15.06-48.12-15.06-16.14 0-26.66 11-34.78 33.62-27.5 77.55-26.28 74.27-26.12 78.27 0 24.8 97.64 106.1 228.5 106.1M429 254.8c4.65 22 4.65 24.35 4.65 27.25 0 37.66-42.33 58.56-98 58.56-125.7 .08-235.9-73.65-235.9-122.3a49.55 49.55 0 0 1 4.06-19.72C58.56 200.9 0 208.9 0 260.6c0 84.67 200.6 189 359.5 189 121.8 0 152.5-55.08 152.5-98.58 0-34.21-29.59-73.05-82.93-96.24" - } - }, - "free": [ - "brands" - ] - }, - "registered": { - "changes": [ - "4.4.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f25d", - "aliases": { - "unicodes": { - "composite": [ - "ae" - ], - "secondary": [ - "10f25d" - ] - } - }, - "label": "Registered Trademark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM349.8 349.8c5.594 12.03 .4375 26.31-11.56 31.94c-3.312 1.531-6.75 2.25-10.19 2.25c-9 0-17.66-5.125-21.75-13.81l-38.46-82.19H208v72c0 13.25-10.75 24-24 24s-24-10.75-24-24V152c0-13.25 10.75-24 24-24l88 .0044c44.13 0 80 35.88 80 80c0 28.32-14.87 53.09-37.12 67.31L349.8 349.8zM272 176h-64v64h64c17.66 0 32-14.34 32-32S289.7 176 272 176z" - }, - "regular": { - "last_modified": 1658443573107, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 464c-114.7 0-208-93.31-208-208S141.3 48 256 48s208 93.31 208 208S370.7 464 256 464zM352 208c0-44.13-35.88-80-80-80L184 128c-13.25 0-24 10.75-24 24v208c0 13.25 10.75 24 24 24s24-10.75 24-24v-72h59.79l38.46 82.19C310.3 378.9 319 384 328 384c3.438 0 6.875-.7187 10.19-2.25c12-5.625 17.16-19.91 11.56-31.94l-34.87-74.5C337.1 261.1 352 236.3 352 208zM272 240h-64v-64h64c17.66 0 32 14.34 32 32S289.7 240 272 240z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "renren": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f18b", - "label": "Renren", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M214 169.1c0 110.4-61 205.4-147.6 247.4C30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5v156.6zM255 504c-42.9 0-83.3-11-118.5-30.4C193.7 437.5 239.9 382.9 255 319c15.5 63.9 61.7 118.5 118.8 154.7C338.7 493 298.3 504 255 504zm190.6-87.5C359 374.5 298 279.6 298 169.1V12.5c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z" - } - }, - "free": [ - "brands" - ] - }, - "repeat": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f363", - "aliases": { - "unicodes": { - "composite": [ - "1f501" - ], - "secondary": [ - "10f363" - ] - } - }, - "label": "Repeat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 256c-17.67 0-32 14.31-32 32c0 52.94-43.06 96-96 96H192L192 344c0-9.469-5.578-18.06-14.23-21.94C169.1 318.3 159 319.8 151.9 326.2l-80 72C66.89 402.7 64 409.2 64 416s2.891 13.28 7.938 17.84l80 72C156.4 509.9 162.2 512 168 512c3.312 0 6.615-.6875 9.756-2.062C186.4 506.1 192 497.5 192 488L192 448h160c88.22 0 160-71.78 160-160C512 270.3 497.7 256 480 256zM160 128h159.1L320 168c0 9.469 5.578 18.06 14.23 21.94C337.4 191.3 340.7 192 343.1 192c5.812 0 11.57-2.125 16.07-6.156l80-72C445.1 109.3 448 102.8 448 95.1s-2.891-13.28-7.938-17.84l-80-72c-7.047-6.312-17.19-7.875-25.83-4.094C325.6 5.938 319.1 14.53 319.1 24L320 64H160C71.78 64 0 135.8 0 224c0 17.69 14.33 32 32 32s32-14.31 32-32C64 171.1 107.1 128 160 128z" - } - }, - "free": [ - "solid" - ] - }, - "reply": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3e5", - "aliases": { - "names": [ - "mail-reply" - ], - "unicodes": { - "composite": [ - "f112" - ], - "secondary": [ - "10f3e5" - ] - } - }, - "label": "Reply", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M8.31 189.9l176-151.1c15.41-13.3 39.69-2.509 39.69 18.16v80.05C384.6 137.9 512 170.1 512 322.3c0 61.44-39.59 122.3-83.34 154.1c-13.66 9.938-33.09-2.531-28.06-18.62c45.34-145-21.5-183.5-176.6-185.8v87.92c0 20.7-24.31 31.45-39.69 18.16l-176-151.1C-2.753 216.6-2.784 199.4 8.31 189.9z" - } - }, - "free": [ - "solid" - ] - }, - "reply-all": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f122", - "aliases": { - "names": [ - "mail-reply-all" - ], - "unicodes": { - "secondary": [ - "10f122" - ] - } - }, - "label": "reply-all", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M136.3 226.2l176 151.1c15.38 13.3 39.69 2.545 39.69-18.16V275.1c108.5 12.58 151.1 58.79 112.6 181.9c-5.031 16.09 14.41 28.56 28.06 18.62c43.75-31.81 83.34-92.69 83.34-154.1c0-131.3-94.86-173.2-224-183.5V56.02c0-20.67-24.28-31.46-39.69-18.16L136.3 189.9C125.2 199.4 125.2 216.6 136.3 226.2zM8.31 226.2l176 151.1c15.38 13.3 39.69 2.545 39.69-18.16v-15.83L66.33 208l157.7-136.2V56.02c0-20.67-24.28-31.46-39.69-18.16l-176 151.1C-2.77 199.4-2.77 216.6 8.31 226.2z" - } - }, - "free": [ - "solid" - ] - }, - "replyd": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e6", - "label": "replyd", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M320 480H128C57.6 480 0 422.4 0 352V160C0 89.6 57.6 32 128 32h192c70.4 0 128 57.6 128 128v192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6-5.4 3.7-9.6 9-12.8 15.8h-1.1l-4.2-18.3h-28v138.9h36.1v-89.7c1.5-5.4 4.4-9.8 8.7-13.2 4.3-3.4 9.8-5.1 16.2-5.1 4.6 0 9.8 1 15.6 3.1l4.8-34zm115.2 103.4c-3.2 2.4-7.7 4.8-13.7 7.1-6 2.3-12.8 3.5-20.4 3.5-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4h83.3c.9-4.8 1.6-9.4 2.1-13.9 .5-4.4 .7-8.6 .7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6 9.5-3.1 17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1h-51.7c.9-9.4 3.7-17 8.2-22.6 4.5-5.6 11.5-8.5 21-8.5 8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4s2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4c-4.1-3.8-9.6-5.7-16.7-5.7-6.7 0-12 1.9-16.1 5.7-4.1 3.8-6.1 8.9-6.1 15.4 0 6.6 2 11.7 6.1 15.6z" - } - }, - "free": [ - "brands" - ] - }, - "republican": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f75e", - "aliases": { - "unicodes": { - "secondary": [ - "10f75e" - ] - } - }, - "label": "Republican", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M544 191.1c0-88.37-71.62-159.1-159.1-159.1L159.1 32C71.62 32 0 103.6 0 191.1l.025 63.98h543.1V191.1zM176.3 170.4l-19.75 19.37l4.75 27.25c.7498 4.875-4.375 8.625-8.75 6.25l-24.5-12.87L103.5 223.2C99.27 225.6 94.02 221.9 94.77 216.1l4.75-27.25l-19.75-19.37C76.15 166.9 78.15 160.9 83.02 160.2L110.4 156.2l12.25-24.87c2.125-4.5 8.625-4.375 10.62 0L145.5 156.2L172.9 160.2C177.9 160.9 179.8 166.9 176.3 170.4zM320.3 170.4l-19.75 19.37l4.75 27.25c.7498 4.875-4.375 8.625-8.75 6.25L272 210.4l-24.5 12.87C243.3 225.6 238 221.9 238.8 216.1L243.5 189.7l-19.75-19.37c-3.625-3.5-1.625-9.498 3.25-10.12L254.4 156.2l12.25-24.87c2.125-4.5 8.625-4.375 10.62 0L289.5 156.2l27.37 4C321.9 160.9 323.8 166.9 320.3 170.4zM464.3 170.4l-19.75 19.37l4.75 27.25c.7498 4.875-4.375 8.625-8.75 6.25l-24.5-12.87l-24.5 12.87c-4.25 2.375-9.5-1.375-8.75-6.25l4.75-27.25l-19.75-19.37c-3.625-3.5-1.625-9.498 3.25-10.12l27.37-4l12.25-24.87c2.125-4.5 8.625-4.375 10.62 0l12.25 24.87l27.37 4C465.9 160.9 467.8 166.9 464.3 170.4zM624 319.1L592 319.1c-8.799 0-15.1 7.199-15.1 15.1v63.99c0 8.748-7.25 15.1-15.1 15.1c-8.75 0-15.1-7.25-15.1-15.1l-.0313-111.1L.025 287.1v159.1c0 17.6 14.4 31.1 31.1 31.1L95.98 479.1c17.6 0 32.04-14.4 32.04-32v-63.98l191.1-.0169v63.99c0 17.6 14.36 32 31.96 32l64.04 .013c17.6 0 31.1-14.4 31.1-31.1l-.0417-96.01l32.04 .0006v43.25c0 41.79 29.91 80.03 71.48 84.35C599.3 484.5 640 446.9 640 399.1v-63.98C640 327.2 632.8 319.1 624 319.1z" - } - }, - "free": [ - "solid" - ] - }, - "researchgate": { - "changes": [ - "5.0.11" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f8", - "label": "Researchgate", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32v448h448V32H0zm262.2 334.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6v46.4c0 23.5 6 21.2 25.8 23.9v8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1 .6-33.6 .8v-8.1c15.5-2.9 22-1.3 22-23.9V225c0-22.6-6.4-21-22-23.9V193c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7v7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2V167c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7v26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8h-17.9v-10.7h30.4c0 20.5 4.7 49.9-34 49.9zm-116.5 44.7c-9.4 0-13.6-.3-20-.8v-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z" - } - }, - "free": [ - "brands" - ] - }, - "resolving": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e7", - "label": "Resolving", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M281.2 278.2c46-13.3 49.6-23.5 44-43.4L314 195.5c-6.1-20.9-18.4-28.1-71.1-12.8L54.7 236.8l28.6 98.6 197.9-57.2zM248.5 8C131.4 8 33.2 88.7 7.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2L203 351.8l220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2c36.8 22 80.3 34.7 126.3 34.7 137 0 248.5-111.4 248.5-248.3C497 119.4 385.5 8 248.5 8zM38.3 388.6L0 256.8c0 48.5 14.3 93.4 38.3 131.8z" - } - }, - "free": [ - "brands" - ] - }, - "restroom": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7bd", - "aliases": { - "unicodes": { - "secondary": [ - "10f7bd" - ] - } - }, - "label": "Restroom", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M319.1 0C306.8 0 296 10.8 296 24v464c0 13.2 10.8 24 23.1 24s24-10.8 24-24V24C344 10.8 333.2 0 319.1 0zM213.7 171.8C204.9 145.6 180.5 128 152.9 128H103.1C75.47 128 51.06 145.6 42.37 171.8L1.653 293.9c-5.594 16.77 3.469 34.89 20.22 40.48c12.68 4.211 25.93 .1426 34.13-9.18V480c0 17.67 14.33 32 32 32s31.1-14.33 31.1-32l-.0003-144h16l.0003 144c0 17.67 14.33 32 32 32s31.1-14.33 31.1-32l-.0003-155.2c6.041 6.971 14.7 11.25 24 11.25c3.344 0 6.75-.5313 10.13-1.656c16.75-5.594 25.81-23.72 20.22-40.48L213.7 171.8zM128 96c26.5 0 47.1-21.5 47.1-48S154.5 0 128 0S80 21.5 80 48S101.5 96 128 96zM511.1 96c26.5 0 48-21.5 48-48S538.5 0 511.1 0s-47.1 21.5-47.1 48S485.5 96 511.1 96zM638.3 293.9l-40.69-122.1C588.9 145.6 564.5 128 536.9 128h-49.88c-27.59 0-52 17.59-60.69 43.75l-40.72 122.1c-5.594 16.77 3.469 34.89 20.22 40.48c3.422 1.137 6.856 1.273 10.25 1.264L399.1 384h40v96c0 17.67 14.32 32 31.1 32s32-14.33 32-32v-96h16v96c0 17.67 14.32 32 31.1 32s32-14.33 32-32v-96h39.1l-15.99-47.98c3.342 0 6.747-.5313 10.12-1.656C634.9 328.8 643.9 310.6 638.3 293.9z" - } - }, - "free": [ - "solid" - ] - }, - "retweet": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f079", - "aliases": { - "unicodes": { - "secondary": [ - "10f079" - ] - } - }, - "label": "Retweet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M614.2 334.8C610.5 325.8 601.7 319.1 592 319.1H544V176C544 131.9 508.1 96 464 96h-128c-17.67 0-32 14.31-32 32s14.33 32 32 32h128C472.8 160 480 167.2 480 176v143.1h-48c-9.703 0-18.45 5.844-22.17 14.82s-1.656 19.29 5.203 26.16l80 80.02C499.7 445.7 505.9 448 512 448s12.28-2.344 16.97-7.031l80-80.02C615.8 354.1 617.9 343.8 614.2 334.8zM304 352h-128C167.2 352 160 344.8 160 336V192h48c9.703 0 18.45-5.844 22.17-14.82s1.656-19.29-5.203-26.16l-80-80.02C140.3 66.34 134.1 64 128 64S115.7 66.34 111 71.03l-80 80.02C24.17 157.9 22.11 168.2 25.83 177.2S38.3 192 48 192H96V336C96 380.1 131.9 416 176 416h128c17.67 0 32-14.31 32-32S321.7 352 304 352z" - } - }, - "free": [ - "solid" - ] - }, - "rev": { - "changes": [ - "5.1.0", - "5.1.1", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5b2", - "label": "Rev.io", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M289.7 274.9a65.57 65.57 0 1 1 -65.56-65.56 65.64 65.64 0 0 1 65.56 65.56zm139.6-5.05h-.13a204.7 204.7 0 0 0 -74.32-153l-45.38 26.2a157.1 157.1 0 0 1 71.81 131.8C381.2 361.5 310.7 432 224.1 432S67 361.5 67 274.9c0-81.88 63-149.3 143-156.4v39.12l108.8-62.79L210 32v38.32c-106.7 7.25-191 96-191 204.6 0 111.6 89.12 202.3 200.1 205v.11h210.2V269.8z" - } - }, - "free": [ - "brands" - ] - }, - "ribbon": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4d6", - "aliases": { - "unicodes": { - "composite": [ - "1f397" - ], - "secondary": [ - "10f4d6" - ] - } - }, - "label": "Ribbon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M6.05 444.3c-9.626 10.87-7.501 27.62 4.5 35.75l68.76 27.87c9.876 6.75 23.38 4.1 31.38-3.75l91.76-101.9L123.2 314.3L6.05 444.3zM441.8 444.3c0 0-292-324.5-295.4-329.1c15.38-8.5 40.25-17.1 77.51-17.1s62.13 9.5 77.51 17.1c-3.25 5.5-56.01 64.5-56.01 64.5l79.13 87.75l34.13-37.1c28.75-31.87 33.38-78.62 11.5-115.5L326.5 39.52c-4.25-7.25-9.876-13.25-16.75-17.1c-40.75-27.62-127.5-29.75-171.5 0C131.3 26.27 125.7 32.27 121.4 39.52L77.81 112.8C76.31 115.3 40.68 174.9 89.31 228.8l248.1 275.2c8.001 8.875 21.38 10.5 31.25 3.75l68.88-27.87C449.5 471.9 451.6 455.1 441.8 444.3z" - } - }, - "free": [ - "solid" - ] - }, - "right-from-bracket": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2f5", - "aliases": { - "names": [ - "sign-out-alt" - ], - "unicodes": { - "secondary": [ - "10f2f5" - ] - } - }, - "label": "Right from bracket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573305, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 480h64C177.7 480 192 465.7 192 448S177.7 416 160 416H96c-17.67 0-32-14.33-32-32V128c0-17.67 14.33-32 32-32h64C177.7 96 192 81.67 192 64S177.7 32 160 32H96C42.98 32 0 74.98 0 128v256C0 437 42.98 480 96 480zM504.8 238.5l-144.1-136c-6.975-6.578-17.2-8.375-26-4.594c-8.803 3.797-14.51 12.47-14.51 22.05l-.0918 72l-128-.001c-17.69 0-32.02 14.33-32.02 32v64c0 17.67 14.34 32 32.02 32l128 .001l.0918 71.1c0 9.578 5.707 18.25 14.51 22.05c8.803 3.781 19.03 1.984 26-4.594l144.1-136C514.4 264.4 514.4 247.6 504.8 238.5z" - } - }, - "free": [ - "solid" - ] - }, - "right-left": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f362", - "aliases": { - "names": [ - "exchange-alt" - ], - "unicodes": { - "secondary": [ - "10f362" - ] - } - }, - "label": "Right left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573306, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 160h319.9l.0791 72c0 9.547 5.652 18.19 14.41 22c8.754 3.812 18.93 2.078 25.93-4.406l112-104c10.24-9.5 10.24-25.69 0-35.19l-112-104c-6.992-6.484-17.17-8.217-25.93-4.408c-8.758 3.816-14.41 12.46-14.41 22L351.9 96H32C14.31 96 0 110.3 0 127.1S14.31 160 32 160zM480 352H160.1L160 279.1c0-9.547-5.652-18.19-14.41-22C136.9 254.2 126.7 255.9 119.7 262.4l-112 104c-10.24 9.5-10.24 25.69 0 35.19l112 104c6.992 6.484 17.17 8.219 25.93 4.406C154.4 506.2 160 497.5 160 488L160.1 416H480c17.69 0 32-14.31 32-32S497.7 352 480 352z" - } - }, - "free": [ - "solid" - ] - }, - "right-long": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f30b", - "aliases": { - "names": [ - "long-arrow-alt-right" - ], - "unicodes": { - "secondary": [ - "10f30b" - ] - } - }, - "label": "Right long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573306, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M504.3 273.6l-112.1 104c-6.992 6.484-17.18 8.218-25.94 4.406c-8.758-3.812-14.42-12.45-14.42-21.1L351.9 288H32C14.33 288 .0002 273.7 .0002 255.1S14.33 224 32 224h319.9l0-72c0-9.547 5.66-18.19 14.42-22c8.754-3.809 18.95-2.075 25.94 4.41l112.1 104C514.6 247.9 514.6 264.1 504.3 273.6z" - } - }, - "free": [ - "solid" - ] - }, - "right-to-bracket": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2f6", - "aliases": { - "names": [ - "sign-in-alt" - ], - "unicodes": { - "secondary": [ - "10f2f6" - ] - } - }, - "label": "Right to bracket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M344.7 238.5l-144.1-136C193.7 95.97 183.4 94.17 174.6 97.95C165.8 101.8 160.1 110.4 160.1 120V192H32.02C14.33 192 0 206.3 0 224v64c0 17.68 14.33 32 32.02 32h128.1v72c0 9.578 5.707 18.25 14.51 22.05c8.803 3.781 19.03 1.984 26-4.594l144.1-136C354.3 264.4 354.3 247.6 344.7 238.5zM416 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c17.67 0 32 14.33 32 32v256c0 17.67-14.33 32-32 32h-64c-17.67 0-32 14.33-32 32s14.33 32 32 32h64c53.02 0 96-42.98 96-96V128C512 74.98 469 32 416 32z" - } - }, - "free": [ - "solid" - ] - }, - "ring": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f70b", - "aliases": { - "unicodes": { - "secondary": [ - "10f70b" - ] - } - }, - "label": "Ring", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 64C109.1 64 0 125.9 0 208v98.13C0 384.5 114.6 448 256 448s256-63.5 256-141.9V208C512 125.9 401.1 64 256 64zM256 288C203.1 288 155.1 279.1 120.4 264.6C155 249.9 201.6 240 256 240s101 9.875 135.6 24.62C356.9 279.1 308.9 288 256 288zM437.1 234.4C392.1 208.3 328.3 192 256 192S119.9 208.3 74.88 234.4C68 226.1 64 217.3 64 208C64 163.9 149.1 128 256 128c105.1 0 192 35.88 192 80C448 217.3 444 226.1 437.1 234.4z" - } - }, - "free": [ - "solid" - ] - }, - "road": { - "changes": [ - "1.0.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f018", - "aliases": { - "unicodes": { - "composite": [ - "1f6e3" - ], - "secondary": [ - "10f018" - ] - } - }, - "label": "road", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 96C256 113.7 270.3 128 288 128C305.7 128 320 113.7 320 96V32H394.8C421.9 32 446 49.08 455.1 74.63L572.9 407.2C574.9 413 576 419.2 576 425.4C576 455.5 551.5 480 521.4 480H320V416C320 398.3 305.7 384 288 384C270.3 384 256 398.3 256 416V480H54.61C24.45 480 0 455.5 0 425.4C0 419.2 1.06 413 3.133 407.2L120.9 74.63C129.1 49.08 154.1 32 181.2 32H255.1L256 96zM320 224C320 206.3 305.7 192 288 192C270.3 192 256 206.3 256 224V288C256 305.7 270.3 320 288 320C305.7 320 320 305.7 320 288V224z" - } - }, - "free": [ - "solid" - ] - }, - "road-barrier": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e562", - "label": "Road Barrier", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M32 32C49.67 32 64 46.33 64 64V96H149.2L64 266.3V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448V64C0 46.33 14.33 32 32 32V32zM309.2 288H234.8L330.8 96H405.2L309.2 288zM458.8 96H533.2L437.2 288H362.8L458.8 96zM202.8 96H277.2L181.2 288H106.8L202.8 96zM576 117.7V64C576 46.33 590.3 32 608 32C625.7 32 640 46.33 640 64V448C640 465.7 625.7 480 608 480C590.3 480 576 465.7 576 448V288H490.8L576 117.7z" - } - }, - "free": [ - "solid" - ] - }, - "road-bridge": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e563", - "label": "Road Bridge", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 0H608C625.7 0 640 14.33 640 32V480C640 497.7 625.7 512 608 512H352C334.3 512 320 497.7 320 480V32C320 14.33 334.3 0 352 0zM456 224V288C456 301.3 466.7 312 480 312C493.3 312 504 301.3 504 288V224C504 210.7 493.3 200 480 200C466.7 200 456 210.7 456 224zM504 384C504 370.7 493.3 360 480 360C466.7 360 456 370.7 456 384V448C456 461.3 466.7 472 480 472C493.3 472 504 461.3 504 448V384zM456 64V128C456 141.3 466.7 152 480 152C493.3 152 504 141.3 504 128V64C504 50.75 493.3 40 480 40C466.7 40 456 50.75 456 64zM32 96H288V160H248V224H288V320C234.1 320 192 362.1 192 416V480C192 497.7 177.7 512 160 512H128C110.3 512 96 497.7 96 480V416C96 362.1 53.02 320 0 320V224H72V160H32C14.33 160 0 145.7 0 128C0 110.3 14.33 96 32 96zM200 160H120V224H200V160z" - } - }, - "free": [ - "solid" - ] - }, - "road-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e564", - "label": "Road Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M213.2 32H288V96C288 113.7 302.3 128 320 128C337.7 128 352 113.7 352 96V32H426.8C453.9 32 478 49.08 487.1 74.63L529.8 195.2C518.9 193.1 507.6 192 496 192C436.5 192 383.9 221.6 352 266.8V224C352 206.3 337.7 192 320 192C302.3 192 288 206.3 288 224V288C288 305.7 302.3 320 320 320C322.3 320 324.6 319.7 326.8 319.3C322.4 334.7 320 351.1 320 368C320 373.4 320.2 378.7 320.7 384L320 384C302.3 384 288 398.3 288 416V480H86.61C56.45 480 32 455.5 32 425.4C32 419.2 33.06 413 35.13 407.2L152.9 74.63C161.1 49.08 186.1 32 213.2 32H213.2zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM540.7 324.7L480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7H540.7z" - } - }, - "free": [ - "solid" - ] - }, - "road-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e565", - "label": "Road Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M213.2 32H288V96C288 113.7 302.3 128 320 128C337.7 128 352 113.7 352 96V32H426.8C453.9 32 478 49.08 487.1 74.63L529.8 195.2C518.9 193.1 507.6 192 496 192C436.5 192 383.9 221.6 352 266.8V224C352 206.3 337.7 192 320 192C302.3 192 288 206.3 288 224V288C288 305.7 302.3 320 320 320C322.3 320 324.6 319.7 326.8 319.3C322.4 334.7 320 351.1 320 368C320 373.4 320.2 378.7 320.7 384L320 384C302.3 384 288 398.3 288 416V480H86.61C56.45 480 32 455.5 32 425.4C32 419.2 33.06 413 35.13 407.2L152.9 74.63C161.1 49.08 186.1 32 213.2 32H213.2zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "road-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e566", - "label": "Road Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M213.2 32H288V96C288 113.7 302.3 128 320 128C337.7 128 352 113.7 352 96V32H426.8C453.9 32 478 49.08 487.1 74.63L529.8 195.2C518.9 193.1 507.6 192 496 192C436.5 192 383.9 221.6 352 266.8V224C352 206.3 337.7 192 320 192C302.3 192 288 206.3 288 224V288C288 305.7 302.3 320 320 320C322.3 320 324.6 319.7 326.8 319.3C322.4 334.7 320 351.1 320 368C320 373.4 320.2 378.7 320.7 384L320 384C302.3 384 288 398.3 288 416V480H86.61C56.45 480 32 455.5 32 425.4C32 419.2 33.06 413 35.13 407.2L152.9 74.63C161.1 49.08 186.1 32 213.2 32H213.2zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM518.6 368L555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368z" - } - }, - "free": [ - "solid" - ] - }, - "road-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e567", - "label": "Road Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M288 96C288 113.7 302.3 128 320 128C337.7 128 352 113.7 352 96V32H426.8C453.9 32 478 49.08 487.1 74.63L517.5 160.5C460.6 165.8 416 213.7 416 272V296.6C396.9 307.6 384 328.3 384 352V480H352V416C352 398.3 337.7 384 320 384C302.3 384 288 398.3 288 416V480H86.61C56.45 480 32 455.5 32 425.4C32 419.2 33.06 413 35.13 407.2L152.9 74.63C161.1 49.08 186.1 32 213.2 32H287.1L288 96zM352 224C352 206.3 337.7 192 320 192C302.3 192 288 206.3 288 224V288C288 305.7 302.3 320 320 320C337.7 320 352 305.7 352 288V224zM528 192C572.2 192 608 227.8 608 272V320C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 320 448 320V272C448 227.8 483.8 192 528 192zM528 240C510.3 240 496 254.3 496 272V320H560V272C560 254.3 545.7 240 528 240z" - } - }, - "free": [ - "solid" - ] - }, - "road-spikes": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e568", - "label": "Road Spikes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573307, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M64 116.8C64 101 84.53 94.79 93.31 107.1L192 255.1V116.8C192 101 212.5 94.79 221.3 107.1L320 255.1V116.8C320 101 340.5 94.79 349.3 107.1L448 255.1V116.8C448 101 468.5 94.79 477.3 107.1L606.8 302.2C621 323.5 605.8 351.1 580.2 351.1H64L64 116.8zM608 383.1C625.7 383.1 640 398.3 640 415.1C640 433.7 625.7 447.1 608 447.1H32C14.33 447.1 0 433.7 0 415.1C0 398.3 14.33 383.1 32 383.1H608z" - } - }, - "free": [ - "solid" - ] - }, - "robot": { - "changes": [ - "5.0.13", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f544", - "aliases": { - "unicodes": { - "composite": [ - "1f916" - ], - "secondary": [ - "10f544" - ] - } - }, - "label": "Robot", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M9.375 233.4C3.375 239.4 0 247.5 0 256v128c0 8.5 3.375 16.62 9.375 22.62S23.5 416 32 416h32V224H32C23.5 224 15.38 227.4 9.375 233.4zM464 96H352V32c0-17.62-14.38-32-32-32S288 14.38 288 32v64H176C131.8 96 96 131.8 96 176V448c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V176C544 131.8 508.3 96 464 96zM256 416H192v-32h64V416zM224 296C201.9 296 184 278.1 184 256S201.9 216 224 216S264 233.9 264 256S246.1 296 224 296zM352 416H288v-32h64V416zM448 416h-64v-32h64V416zM416 296c-22.12 0-40-17.88-40-40S393.9 216 416 216S456 233.9 456 256S438.1 296 416 296zM630.6 233.4C624.6 227.4 616.5 224 608 224h-32v192h32c8.5 0 16.62-3.375 22.62-9.375S640 392.5 640 384V256C640 247.5 636.6 239.4 630.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "rocket": { - "changes": [ - "3.1.0", - "5.0.0", - "5.7.0", - "5.12.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f135", - "aliases": { - "unicodes": { - "secondary": [ - "10f135" - ] - } - }, - "label": "rocket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M156.6 384.9L125.7 353.1C117.2 345.5 114.2 333.1 117.1 321.8C120.1 312.9 124.1 301.3 129.8 288H24C15.38 288 7.414 283.4 3.146 275.9C-1.123 268.4-1.042 259.2 3.357 251.8L55.83 163.3C68.79 141.4 92.33 127.1 117.8 127.1H200C202.4 124 204.8 120.3 207.2 116.7C289.1-4.07 411.1-8.142 483.9 5.275C495.6 7.414 504.6 16.43 506.7 28.06C520.1 100.9 516.1 222.9 395.3 304.8C391.8 307.2 387.1 309.6 384 311.1V394.2C384 419.7 370.6 443.2 348.7 456.2L260.2 508.6C252.8 513 243.6 513.1 236.1 508.9C228.6 504.6 224 496.6 224 488V380.8C209.9 385.6 197.6 389.7 188.3 392.7C177.1 396.3 164.9 393.2 156.6 384.9V384.9zM384 167.1C406.1 167.1 424 150.1 424 127.1C424 105.9 406.1 87.1 384 87.1C361.9 87.1 344 105.9 344 127.1C344 150.1 361.9 167.1 384 167.1z" - } - }, - "free": [ - "solid" - ] - }, - "rocketchat": { - "changes": [ - "5.0.0", - "5.4.2", - "5.8.0", - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e8", - "label": "Rocket.Chat", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M284 224.8a34.11 34.11 0 1 0 34.32 34.11A34.22 34.22 0 0 0 284 224.8zm-110.4 0a34.11 34.11 0 1 0 34.32 34.11A34.22 34.22 0 0 0 173.6 224.8zm220.9 0a34.11 34.11 0 1 0 34.32 34.11A34.22 34.22 0 0 0 394.5 224.8zm153.8-55.32c-15.53-24.17-37.31-45.57-64.68-63.62-52.89-34.82-122.4-54-195.7-54a405.1 405.1 0 0 0 -72.03 6.357 238.5 238.5 0 0 0 -49.51-36.59C99.68-11.7 40.86 .711 11.14 11.42A14.29 14.29 0 0 0 5.58 34.78C26.54 56.46 61.22 99.3 52.7 138.3c-33.14 33.9-51.11 74.78-51.11 117.3 0 43.37 17.97 84.25 51.11 118.1 8.526 38.96-26.15 81.82-47.12 103.5a14.28 14.28 0 0 0 5.555 23.34c29.72 10.71 88.55 23.15 155.3-10.2a238.7 238.7 0 0 0 49.51-36.59A405.1 405.1 0 0 0 288 460.1c73.31 0 142.8-19.16 195.7-53.97 27.37-18.05 49.15-39.43 64.68-63.62 17.31-26.92 26.07-55.92 26.07-86.13C574.4 225.4 565.6 196.4 548.3 169.5zM284.1 409.9a345.6 345.6 0 0 1 -89.45-11.5l-20.13 19.39a184.4 184.4 0 0 1 -37.14 27.58 145.8 145.8 0 0 1 -52.52 14.87c.983-1.771 1.881-3.563 2.842-5.356q30.26-55.68 16.33-100.1c-32.99-25.96-52.78-59.2-52.78-95.4 0-83.1 104.3-150.5 232.8-150.5s232.9 67.37 232.9 150.5C517.9 342.5 413.6 409.9 284.1 409.9z" - } - }, - "free": [ - "brands" - ] - }, - "rockrms": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e9", - "label": "Rockrms", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm157.4 419.5h-90l-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1h75.3l-84.6-99.3-84.3 98.9h-90L193.5 67.2c14.4-18.4 41.3-17.3 54.5 0l157.7 185.1c19 22.8 2 57.2-27.6 56.1-.6 0-74.2 .2-74.2 .2l101.5 118.9z" - } - }, - "free": [ - "brands" - ] - }, - "rotate": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2f1", - "aliases": { - "names": [ - "sync-alt" - ], - "unicodes": { - "composite": [ - "1f504" - ], - "secondary": [ - "10f2f1" - ] - } - }, - "label": "Rotate", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M449.9 39.96l-48.5 48.53C362.5 53.19 311.4 32 256 32C161.5 32 78.59 92.34 49.58 182.2c-5.438 16.81 3.797 34.88 20.61 40.28c16.97 5.5 34.86-3.812 40.3-20.59C130.9 138.5 189.4 96 256 96c37.96 0 73 14.18 100.2 37.8L311.1 178C295.1 194.8 306.8 223.4 330.4 224h146.9C487.7 223.7 496 215.3 496 204.9V59.04C496 34.99 466.9 22.95 449.9 39.96zM441.8 289.6c-16.94-5.438-34.88 3.812-40.3 20.59C381.1 373.5 322.6 416 256 416c-37.96 0-73-14.18-100.2-37.8L200 334C216.9 317.2 205.2 288.6 181.6 288H34.66C24.32 288.3 16 296.7 16 307.1v145.9c0 24.04 29.07 36.08 46.07 19.07l48.5-48.53C149.5 458.8 200.6 480 255.1 480c94.45 0 177.4-60.34 206.4-150.2C467.9 313 458.6 294.1 441.8 289.6z" - } - }, - "free": [ - "solid" - ] - }, - "rotate-left": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2ea", - "aliases": { - "names": [ - "rotate-back", - "rotate-backward", - "undo-alt" - ], - "unicodes": { - "secondary": [ - "10f2ea" - ] - } - }, - "label": "Rotate Left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 256c0 123.4-100.5 223.9-223.9 223.9c-48.84 0-95.17-15.58-134.2-44.86c-14.12-10.59-16.97-30.66-6.375-44.81c10.59-14.12 30.62-16.94 44.81-6.375c27.84 20.91 61 31.94 95.88 31.94C344.3 415.8 416 344.1 416 256s-71.69-159.8-159.8-159.8c-37.46 0-73.09 13.49-101.3 36.64l45.12 45.14c17.01 17.02 4.955 46.1-19.1 46.1H35.17C24.58 224.1 16 215.5 16 204.9V59.04c0-24.04 29.07-36.08 46.07-19.07l47.6 47.63C149.9 52.71 201.5 32.11 256.1 32.11C379.5 32.11 480 132.6 480 256z" - } - }, - "free": [ - "solid" - ] - }, - "rotate-right": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2f9", - "aliases": { - "names": [ - "redo-alt", - "rotate-forward" - ], - "unicodes": { - "secondary": [ - "10f2f9" - ] - } - }, - "label": "Rotate Right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M468.9 32.11c13.87 0 27.18 10.77 27.18 27.04v145.9c0 10.59-8.584 19.17-19.17 19.17h-145.7c-16.28 0-27.06-13.32-27.06-27.2c0-6.634 2.461-13.4 7.96-18.9l45.12-45.14c-28.22-23.14-63.85-36.64-101.3-36.64c-88.09 0-159.8 71.69-159.8 159.8S167.8 415.9 255.9 415.9c73.14 0 89.44-38.31 115.1-38.31c18.48 0 31.97 15.04 31.97 31.96c0 35.04-81.59 70.41-147 70.41c-123.4 0-223.9-100.5-223.9-223.9S132.6 32.44 256 32.44c54.6 0 106.2 20.39 146.4 55.26l47.6-47.63C455.5 34.57 462.3 32.11 468.9 32.11z" - } - }, - "free": [ - "solid" - ] - }, - "route": { - "changes": [ - "5.0.9", - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4d7", - "aliases": { - "unicodes": { - "secondary": [ - "10f4d7" - ] - } - }, - "label": "Route", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 256C302.3 256 288 270.3 288 288C288 305.7 302.3 320 320 320H416C469 320 512 362.1 512 416C512 469 469 512 416 512H139.6C148.3 502.1 158.9 489.4 169.6 475.2C175.9 466.8 182.4 457.6 188.6 448H416C433.7 448 448 433.7 448 416C448 398.3 433.7 384 416 384H320C266.1 384 223.1 341 223.1 288C223.1 234.1 266.1 192 320 192H362.1C340.2 161.5 320 125.4 320 96C320 42.98 362.1 0 416 0C469 0 512 42.98 512 96C512 160 416 256 416 256H320zM416 128C433.7 128 448 113.7 448 96C448 78.33 433.7 64 416 64C398.3 64 384 78.33 384 96C384 113.7 398.3 128 416 128zM118.3 487.8C118.1 488 117.9 488.2 117.7 488.4C113.4 493.4 109.5 497.7 106.3 501.2C105.9 501.6 105.5 502 105.2 502.4C99.5 508.5 96 512 96 512C96 512 0 416 0 352C0 298.1 42.98 255.1 96 255.1C149 255.1 192 298.1 192 352C192 381.4 171.8 417.5 149.9 448C138.1 463.2 127.7 476.9 118.3 487.8L118.3 487.8zM95.1 384C113.7 384 127.1 369.7 127.1 352C127.1 334.3 113.7 320 95.1 320C78.33 320 63.1 334.3 63.1 352C63.1 369.7 78.33 384 95.1 384z" - } - }, - "free": [ - "solid" - ] - }, - "rss": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f09e", - "aliases": { - "names": [ - "feed" - ], - "unicodes": { - "secondary": [ - "10f09e" - ] - } - }, - "label": "rss", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M25.57 176.1C12.41 175.4 .9117 185.2 .0523 198.4s9.173 24.65 22.39 25.5c120.1 7.875 225.7 112.7 233.6 233.6C256.9 470.3 267.4 480 279.1 480c.5313 0 1.062-.0313 1.594-.0625c13.22-.8438 23.25-12.28 22.39-25.5C294.6 310.3 169.7 185.4 25.57 176.1zM32 32C14.33 32 0 46.31 0 64s14.33 32 32 32c194.1 0 352 157.9 352 352c0 17.69 14.33 32 32 32s32-14.31 32-32C448 218.6 261.4 32 32 32zM63.1 351.9C28.63 351.9 0 380.6 0 416s28.63 64 63.1 64s64.08-28.62 64.08-64S99.37 351.9 63.1 351.9z" - } - }, - "free": [ - "solid" - ] - }, - "ruble-sign": { - "changes": [ - "4.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f158", - "aliases": { - "names": [ - "rouble", - "rub", - "ruble" - ], - "unicodes": { - "composite": [ - "20bd" - ], - "secondary": [ - "10f158" - ] - } - }, - "label": "Ruble Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M240 32C319.5 32 384 96.47 384 176C384 255.5 319.5 320 240 320H128V352H288C305.7 352 320 366.3 320 384C320 401.7 305.7 416 288 416H128V448C128 465.7 113.7 480 96 480C78.33 480 64 465.7 64 448V416H32C14.33 416 0 401.7 0 384C0 366.3 14.33 352 32 352H64V320H32C14.33 320 0 305.7 0 288C0 270.3 14.33 256 32 256H64V64C64 46.33 78.33 32 96 32H240zM320 176C320 131.8 284.2 96 240 96H128V256H240C284.2 256 320 220.2 320 176z" - } - }, - "free": [ - "solid" - ] - }, - "rug": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e569", - "label": "Rug", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M80 64V448H24C10.75 448 0 437.3 0 424C0 410.7 10.75 400 24 400H32V360H24C10.75 360 0 349.3 0 336C0 322.7 10.75 312 24 312H32V280H24C10.75 280 0 269.3 0 256C0 242.7 10.75 232 24 232H32V200H24C10.75 200 0 189.3 0 176C0 162.7 10.75 152 24 152H32V112H24C10.75 112 0 101.3 0 88C0 74.75 10.75 64 24 64H80zM112 64H528V448H112V64zM616 112H608V152H616C629.3 152 640 162.7 640 176C640 189.3 629.3 200 616 200H608V232H616C629.3 232 640 242.7 640 256C640 269.3 629.3 280 616 280H608V312H616C629.3 312 640 322.7 640 336C640 349.3 629.3 360 616 360H608V400H616C629.3 400 640 410.7 640 424C640 437.3 629.3 448 616 448H560V64H616C629.3 64 640 74.75 640 88C640 101.3 629.3 112 616 112z" - } - }, - "free": [ - "solid" - ] - }, - "ruler": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f545", - "aliases": { - "unicodes": { - "composite": [ - "1f4cf" - ], - "secondary": [ - "10f545" - ] - } - }, - "label": "Ruler", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M177.9 494.1C159.2 512.8 128.8 512.8 110.1 494.1L17.94 401.9C-.8054 383.2-.8054 352.8 17.94 334.1L68.69 283.3L116.7 331.3C122.9 337.6 133.1 337.6 139.3 331.3C145.6 325.1 145.6 314.9 139.3 308.7L91.31 260.7L132.7 219.3L180.7 267.3C186.9 273.6 197.1 273.6 203.3 267.3C209.6 261.1 209.6 250.9 203.3 244.7L155.3 196.7L196.7 155.3L244.7 203.3C250.9 209.6 261.1 209.6 267.3 203.3C273.6 197.1 273.6 186.9 267.3 180.7L219.3 132.7L260.7 91.31L308.7 139.3C314.9 145.6 325.1 145.6 331.3 139.3C337.6 133.1 337.6 122.9 331.3 116.7L283.3 68.69L334.1 17.94C352.8-.8055 383.2-.8055 401.9 17.94L494.1 110.1C512.8 128.8 512.8 159.2 494.1 177.9L177.9 494.1z" - } - }, - "free": [ - "solid" - ] - }, - "ruler-combined": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f546", - "aliases": { - "unicodes": { - "secondary": [ - "10f546" - ] - } - }, - "label": "Ruler Combined", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 464V48C0 21.49 21.49 0 48 0H144C170.5 0 192 21.49 192 48V96H112C103.2 96 96 103.2 96 112C96 120.8 103.2 128 112 128H192V192H112C103.2 192 96 199.2 96 208C96 216.8 103.2 224 112 224H192V288H112C103.2 288 96 295.2 96 304C96 312.8 103.2 320 112 320H192V400C192 408.8 199.2 416 208 416C216.8 416 224 408.8 224 400V320H288V400C288 408.8 295.2 416 304 416C312.8 416 320 408.8 320 400V320H384V400C384 408.8 391.2 416 400 416C408.8 416 416 408.8 416 400V320H464C490.5 320 512 341.5 512 368V464C512 490.5 490.5 512 464 512H48C23.15 512 2.706 493.1 .2477 468.9C.0838 467.3 0 465.7 0 464z" - } - }, - "free": [ - "solid" - ] - }, - "ruler-horizontal": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f547", - "aliases": { - "unicodes": { - "secondary": [ - "10f547" - ] - } - }, - "label": "Ruler Horizontal", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573308, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 176C0 149.5 21.49 128 48 128H112V208C112 216.8 119.2 224 128 224C136.8 224 144 216.8 144 208V128H208V208C208 216.8 215.2 224 224 224C232.8 224 240 216.8 240 208V128H304V208C304 216.8 311.2 224 320 224C328.8 224 336 216.8 336 208V128H400V208C400 216.8 407.2 224 416 224C424.8 224 432 216.8 432 208V128H496V208C496 216.8 503.2 224 512 224C520.8 224 528 216.8 528 208V128H592C618.5 128 640 149.5 640 176V336C640 362.5 618.5 384 592 384H48C21.49 384 0 362.5 0 336V176z" - } - }, - "free": [ - "solid" - ] - }, - "ruler-vertical": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f548", - "aliases": { - "unicodes": { - "secondary": [ - "10f548" - ] - } - }, - "label": "Ruler Vertical", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M0 48C0 21.49 21.49 0 48 0H208C234.5 0 256 21.49 256 48V96H176C167.2 96 160 103.2 160 112C160 120.8 167.2 128 176 128H256V192H176C167.2 192 160 199.2 160 208C160 216.8 167.2 224 176 224H256V288H176C167.2 288 160 295.2 160 304C160 312.8 167.2 320 176 320H256V384H176C167.2 384 160 391.2 160 400C160 408.8 167.2 416 176 416H256V464C256 490.5 234.5 512 208 512H48C21.49 512 0 490.5 0 464V48z" - } - }, - "free": [ - "solid" - ] - }, - "rupee-sign": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f156", - "aliases": { - "names": [ - "rupee" - ], - "unicodes": { - "composite": [ - "20a8" - ], - "secondary": [ - "10f156" - ] - } - }, - "label": "Indian Rupee Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M.0003 64C.0003 46.33 14.33 32 32 32H112C191.5 32 256 96.47 256 176C256 234.8 220.8 285.3 170.3 307.7L221.7 436.1C228.3 452.5 220.3 471.1 203.9 477.7C187.5 484.3 168.9 476.3 162.3 459.9L106.3 320H64V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448L.0003 64zM64 256H112C156.2 256 192 220.2 192 176C192 131.8 156.2 96 112 96H64V256zM320.8 282.2C321.3 283.3 322.2 284.8 325 287.1C332.2 292.8 343.7 297.1 362.9 303.8L364.2 304.3C380.3 309.1 402.9 317.9 419.1 332.4C429.5 340.5 437.9 351 443 364.7C448.1 378.4 449.1 393.2 446.8 408.7C442.7 436.8 426.4 457.1 403.1 469.6C381 480.7 354.9 482.1 329.9 477.6L329.7 477.5C320.4 475.8 309.2 471.8 300.5 468.6C294.4 466.3 287.9 463.7 282.7 461.6C280.2 460.6 278.1 459.8 276.4 459.1C259.9 452.7 251.8 434.2 258.2 417.7C264.6 401.2 283.1 393.1 299.6 399.5C302.2 400.5 304.8 401.5 307.5 402.6C312.3 404.5 317.4 406.5 322.9 408.6C331.7 411.9 338.2 413.1 341.6 414.6C357.2 417.5 368.3 415.5 374.5 412.4C379.4 409.9 382.5 406.3 383.5 399.3C384.5 392.4 383.7 388.8 383.1 387.1C382.4 385.4 381.3 383.5 378.6 381.2C371.7 375.4 360.4 370.8 341.6 364.2L338.6 363.1C323.1 357.7 301.6 350.2 285.3 337.2C275.8 329.7 266.1 319.7 261.5 306.3C256.1 292.8 254.9 278.2 257.2 263.1C265.6 205.1 324.2 185.1 374.1 194.2C380.1 195.5 401.4 200 409.5 202.6C426.4 207.8 435.8 225.7 430.6 242.6C425.3 259.5 407.4 268.9 390.5 263.7C385.8 262.2 368.2 258.2 362.6 257.2C347.1 254.5 336.8 256.8 329.1 260.4C323.7 263.7 321.1 267.1 320.5 272.4C319.6 278.4 320.4 281.2 320.8 282.2H320.8z" - } - }, - "free": [ - "solid" - ] - }, - "rupiah-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e23d", - "label": "Rupiah Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M.0003 64C.0003 46.33 14.33 32 32 32H112C191.5 32 256 96.47 256 176C256 234.8 220.8 285.3 170.3 307.7L221.7 436.1C228.3 452.5 220.3 471.1 203.9 477.7C187.5 484.3 168.9 476.3 162.3 459.9L106.3 320H64V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448L.0003 64zM64 256H112C156.2 256 192 220.2 192 176C192 131.8 156.2 96 112 96H64V256zM400 160C461.9 160 512 210.1 512 272C512 333.9 461.9 384 400 384H352V480C352 497.7 337.7 512 320 512C302.3 512 288 497.7 288 480V192C288 174.3 302.3 160 320 160H400zM448 272C448 245.5 426.5 224 400 224H352V320H400C426.5 320 448 298.5 448 272z" - } - }, - "free": [ - "solid" - ] - }, - "rust": { - "changes": [ - "5.13.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e07a", - "label": "Rust", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M508.5 249.8 486.7 236.2c-.17-2-.34-3.93-.55-5.88l18.72-17.5a7.35 7.35 0 0 0 -2.44-12.25l-24-9c-.54-1.88-1.08-3.78-1.67-5.64l15-20.83a7.35 7.35 0 0 0 -4.79-11.54l-25.42-4.15c-.9-1.73-1.79-3.45-2.73-5.15l10.68-23.42a7.35 7.35 0 0 0 -6.95-10.39l-25.82 .91q-1.79-2.22-3.61-4.4L439 81.84A7.36 7.36 0 0 0 430.2 73L405 78.93q-2.17-1.83-4.4-3.61l.91-25.82a7.35 7.35 0 0 0 -10.39-7L367.7 53.23c-1.7-.94-3.43-1.84-5.15-2.73L358.4 25.08a7.35 7.35 0 0 0 -11.54-4.79L326 35.26c-1.86-.59-3.75-1.13-5.64-1.67l-9-24a7.35 7.35 0 0 0 -12.25-2.44l-17.5 18.72c-1.95-.21-3.91-.38-5.88-.55L262.3 3.48a7.35 7.35 0 0 0 -12.5 0L236.2 25.3c-2 .17-3.93 .34-5.88 .55L212.9 7.13a7.35 7.35 0 0 0 -12.25 2.44l-9 24c-1.89 .55-3.79 1.08-5.66 1.68l-20.82-15a7.35 7.35 0 0 0 -11.54 4.79l-4.15 25.41c-1.73 .9-3.45 1.79-5.16 2.73L120.9 42.55a7.35 7.35 0 0 0 -10.39 7l.92 25.81c-1.49 1.19-3 2.39-4.42 3.61L81.84 73A7.36 7.36 0 0 0 73 81.84L78.93 107c-1.23 1.45-2.43 2.93-3.62 4.41l-25.81-.91a7.42 7.42 0 0 0 -6.37 3.26 7.35 7.35 0 0 0 -.57 7.13l10.66 23.41c-.94 1.7-1.83 3.43-2.73 5.16L25.08 153.6a7.35 7.35 0 0 0 -4.79 11.54l15 20.82c-.59 1.87-1.13 3.77-1.68 5.66l-24 9a7.35 7.35 0 0 0 -2.44 12.25l18.72 17.5c-.21 1.95-.38 3.91-.55 5.88L3.48 249.8a7.35 7.35 0 0 0 0 12.5L25.3 275.8c.17 2 .34 3.92 .55 5.87L7.13 299.1a7.35 7.35 0 0 0 2.44 12.25l24 9c.55 1.89 1.08 3.78 1.68 5.65l-15 20.83a7.35 7.35 0 0 0 4.79 11.54l25.42 4.15c.9 1.72 1.79 3.45 2.73 5.14L42.56 391.1a7.35 7.35 0 0 0 .57 7.13 7.13 7.13 0 0 0 6.37 3.26l25.83-.91q1.77 2.22 3.6 4.4L73 430.2A7.36 7.36 0 0 0 81.84 439L107 433.1q2.18 1.83 4.41 3.61l-.92 25.82a7.35 7.35 0 0 0 10.39 6.95l23.43-10.68c1.69 .94 3.42 1.83 5.14 2.73l4.15 25.42a7.34 7.34 0 0 0 11.54 4.78l20.83-15c1.86 .6 3.76 1.13 5.65 1.68l9 24a7.36 7.36 0 0 0 12.25 2.44l17.5-18.72c1.95 .21 3.92 .38 5.88 .55l13.51 21.82a7.35 7.35 0 0 0 12.5 0l13.51-21.82c2-.17 3.93-.34 5.88-.56l17.5 18.73a7.36 7.36 0 0 0 12.25-2.44l9-24c1.89-.55 3.78-1.08 5.65-1.68l20.82 15a7.34 7.34 0 0 0 11.54-4.78l4.15-25.42c1.72-.9 3.45-1.79 5.15-2.73l23.42 10.68a7.35 7.35 0 0 0 10.39-6.95l-.91-25.82q2.22-1.79 4.4-3.61L430.2 439a7.36 7.36 0 0 0 8.84-8.84L433.1 405q1.83-2.17 3.61-4.4l25.82 .91a7.23 7.23 0 0 0 6.37-3.26 7.35 7.35 0 0 0 .58-7.13L458.8 367.7c.94-1.7 1.83-3.43 2.73-5.15l25.42-4.15a7.35 7.35 0 0 0 4.79-11.54l-15-20.83c.59-1.87 1.13-3.76 1.67-5.65l24-9a7.35 7.35 0 0 0 2.44-12.25l-18.72-17.5c.21-1.95 .38-3.91 .55-5.87l21.82-13.51a7.35 7.35 0 0 0 0-12.5zm-151 129.1A13.91 13.91 0 0 0 341 389.5l-7.64 35.67A187.5 187.5 0 0 1 177 424.4l-7.64-35.66a13.87 13.87 0 0 0 -16.46-10.68l-31.51 6.76a187.4 187.4 0 0 1 -16.26-19.21H258.3c1.72 0 2.89-.29 2.89-1.91V309.5c0-1.57-1.17-1.91-2.89-1.91H213.5l.05-34.35H262c4.41 0 23.66 1.28 29.79 25.87 1.91 7.55 6.17 32.14 9.06 40 2.89 8.82 14.6 26.46 27.1 26.46H407a187.3 187.3 0 0 1 -17.34 20.09zm25.77 34.49A15.24 15.24 0 1 1 368 398.1h.44A15.23 15.23 0 0 1 383.2 413.3zm-225.6-.68a15.24 15.24 0 1 1 -15.25-15.25h.45A15.25 15.25 0 0 1 157.6 412.6zM69.57 234.1l32.83-14.6a13.88 13.88 0 0 0 7.06-18.33L102.7 186h26.56V305.7H75.65A187.6 187.6 0 0 1 69.57 234.1zM58.31 198.1a15.24 15.24 0 0 1 15.23-15.25H74a15.24 15.24 0 1 1 -15.67 15.24zm155.2 24.49 .05-35.32h63.26c3.28 0 23.07 3.77 23.07 18.62 0 12.29-15.19 16.7-27.68 16.7zM399 306.7c-9.8 1.13-20.63-4.12-22-10.09-5.78-32.49-15.39-39.4-30.57-51.4 18.86-11.95 38.46-29.64 38.46-53.26 0-25.52-17.49-41.59-29.4-49.48-16.76-11-35.28-13.23-40.27-13.23H116.3A187.5 187.5 0 0 1 221.2 70.06l23.47 24.6a13.82 13.82 0 0 0 19.6 .44l26.26-25a187.5 187.5 0 0 1 128.4 91.43l-18 40.57A14 14 0 0 0 408 220.4l34.59 15.33a187.1 187.1 0 0 1 .4 32.54H423.7c-1.91 0-2.69 1.27-2.69 3.13v8.82C421 301 409.3 305.6 399 306.7zM240 60.21A15.24 15.24 0 0 1 255.2 45h.45A15.24 15.24 0 1 1 240 60.21zM436.8 214a15.24 15.24 0 1 1 0-30.48h.44a15.24 15.24 0 0 1 -.44 30.48z" - } - }, - "free": [ - "brands" - ] - }, - "s": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "53", - "aliases": { - "unicodes": { - "composite": [ - "73" - ] - } - }, - "label": "S", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M349.9 379.1c-6.281 36.63-25.89 65.02-56.69 82.11c-24.91 13.83-54.08 18.98-83.73 18.98c-61.86 0-125.8-22.42-157.5-35.38c-16.38-6.672-24.22-25.34-17.55-41.7c6.641-16.36 25.27-24.28 41.7-17.55c77.56 31.64 150.6 39.39 186.1 19.69c13.83-7.672 21.67-19.42 24.69-36.98c7.25-42.31-18.2-56.75-103.7-81.38C112.6 266.6 15.98 238.7 34.11 133.2c5.484-32 23.64-59.36 51.14-77.02c45.59-29.33 115-31.87 206.4-7.688c17.09 4.531 27.27 22.05 22.75 39.13s-22.06 27.23-39.13 22.75C184 86.17 140.4 96.81 119.8 110c-12.55 8.062-20.17 19.5-22.66 34c-7.266 42.31 18.19 56.75 103.7 81.38C271.4 245.7 368 273.5 349.9 379.1z" - } - }, - "free": [ - "solid" - ] - }, - "sack-dollar": { - "changes": [ - "5.7.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f81d", - "aliases": { - "unicodes": { - "composite": [ - "1f4b0" - ], - "secondary": [ - "10f81d" - ] - } - }, - "label": "Sack of Money", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 96H192L144.6 24.88C137.5 14.24 145.1 0 157.9 0H354.1C366.9 0 374.5 14.24 367.4 24.88L320 96zM192 128H320C323.8 130.5 328.1 133.3 332.1 136.4C389.7 172.7 512 250.9 512 416C512 469 469 512 416 512H96C42.98 512 0 469 0 416C0 250.9 122.3 172.7 179 136.4C183.9 133.3 188.2 130.5 192 128V128zM276.1 224C276.1 212.9 267.1 203.9 255.1 203.9C244.9 203.9 235.9 212.9 235.9 224V230C230.3 231.2 224.1 232.9 220 235.1C205.1 241.9 192.1 254.5 188.9 272.8C187.1 283 188.1 292.9 192.3 301.8C196.5 310.6 203 316.8 209.6 321.3C221.2 329.2 236.5 333.8 248.2 337.3L250.4 337.9C264.4 342.2 273.8 345.3 279.7 349.6C282.2 351.4 283.1 352.8 283.4 353.7C283.8 354.5 284.4 356.3 283.7 360.3C283.1 363.8 281.2 366.8 275.7 369.1C269.6 371.7 259.7 373 246.9 371C240.9 370 230.2 366.4 220.7 363.2C218.5 362.4 216.3 361.7 214.3 361C203.8 357.5 192.5 363.2 189 373.7C185.5 384.2 191.2 395.5 201.7 398.1C202.9 399.4 204.4 399.9 206.1 400.5C213.1 403.2 226.4 407.4 235.9 409.6V416C235.9 427.1 244.9 436.1 255.1 436.1C267.1 436.1 276.1 427.1 276.1 416V410.5C281.4 409.5 286.6 407.1 291.4 405.9C307.2 399.2 319.8 386.2 323.1 367.2C324.9 356.8 324.1 346.8 320.1 337.7C316.2 328.7 309.9 322.1 303.2 317.3C291.1 308.4 274.9 303.6 262.8 299.9L261.1 299.7C247.8 295.4 238.2 292.4 232.1 288.2C229.5 286.4 228.7 285.2 228.5 284.7C228.3 284.3 227.7 283.1 228.3 279.7C228.7 277.7 230.2 274.4 236.5 271.6C242.1 268.7 252.9 267.1 265.1 268.1C269.5 269.7 283 272.3 286.9 273.3C297.5 276.2 308.5 269.8 311.3 259.1C314.2 248.5 307.8 237.5 297.1 234.7C292.7 233.5 282.7 231.5 276.1 230.3L276.1 224z" - } - }, - "free": [ - "solid" - ] - }, - "sack-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e56a", - "label": "Sack Xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M144.6 24.88C137.5 14.24 145.1 0 157.9 0H354.1C366.9 0 374.5 14.24 367.4 24.88L320 96H192L144.6 24.88zM332.1 136.4C389.7 172.7 512 250.9 512 416C512 469 469 512 416 512H96C42.98 512 0 469 0 416C0 250.9 122.3 172.7 179 136.4C183.9 133.3 188.2 130.5 192 128H320C323.8 130.5 328.1 133.3 332.1 136.4V136.4zM336.1 288.1C346.3 279.6 346.3 264.4 336.1 255C327.6 245.7 312.4 245.7 303 255L256 302.1L208.1 255C199.6 245.7 184.4 245.7 175 255C165.7 264.4 165.7 279.6 175 288.1L222.1 336L175 383C165.7 392.4 165.7 407.6 175 416.1C184.4 426.3 199.6 426.3 208.1 416.1L256 369.9L303 416.1C312.4 426.3 327.6 426.3 336.1 416.1C346.3 407.6 346.3 392.4 336.1 383L289.9 336L336.1 288.1z" - } - }, - "free": [ - "solid" - ] - }, - "safari": { - "changes": [ - "4.4.0", - "5.0.0", - "5.12.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f267", - "label": "Safari", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M274.7 274.7l-37.38-37.38L166 346zM256 8C119 8 8 119 8 256S119 504 256 504 504 393 504 256 393 8 256 8zM411.9 182.8l14.78-6.13A8 8 0 0 1 437.1 181h0a8 8 0 0 1 -4.33 10.46L418 197.6a8 8 0 0 1 -10.45-4.33h0A8 8 0 0 1 411.9 182.8zM314.4 94l6.12-14.78A8 8 0 0 1 331 74.92h0a8 8 0 0 1 4.33 10.45l-6.13 14.78a8 8 0 0 1 -10.45 4.33h0A8 8 0 0 1 314.4 94zM256 60h0a8 8 0 0 1 8 8V84a8 8 0 0 1 -8 8h0a8 8 0 0 1 -8-8V68A8 8 0 0 1 256 60zM181 74.92a8 8 0 0 1 10.46 4.33L197.6 94a8 8 0 1 1 -14.78 6.12l-6.13-14.78A8 8 0 0 1 181 74.92zm-63.58 42.49h0a8 8 0 0 1 11.31 0L140 128.7A8 8 0 0 1 140 140h0a8 8 0 0 1 -11.31 0l-11.31-11.31A8 8 0 0 1 117.4 117.4zM60 256h0a8 8 0 0 1 8-8H84a8 8 0 0 1 8 8h0a8 8 0 0 1 -8 8H68A8 8 0 0 1 60 256zm40.15 73.21-14.78 6.13A8 8 0 0 1 74.92 331h0a8 8 0 0 1 4.33-10.46L94 314.4a8 8 0 0 1 10.45 4.33h0A8 8 0 0 1 100.2 329.2zm4.33-136h0A8 8 0 0 1 94 197.6l-14.78-6.12A8 8 0 0 1 74.92 181h0a8 8 0 0 1 10.45-4.33l14.78 6.13A8 8 0 0 1 104.5 193.2zM197.6 418l-6.12 14.78a8 8 0 0 1 -14.79-6.12l6.13-14.78A8 8 0 1 1 197.6 418zM264 444a8 8 0 0 1 -8 8h0a8 8 0 0 1 -8-8V428a8 8 0 0 1 8-8h0a8 8 0 0 1 8 8zm67-6.92h0a8 8 0 0 1 -10.46-4.33L314.4 418a8 8 0 0 1 4.33-10.45h0a8 8 0 0 1 10.45 4.33l6.13 14.78A8 8 0 0 1 331 437.1zm63.58-42.49h0a8 8 0 0 1 -11.31 0L372 383.3A8 8 0 0 1 372 372h0a8 8 0 0 1 11.31 0l11.31 11.31A8 8 0 0 1 394.6 394.6zM286.3 286.3 110.3 401.7 225.8 225.8 401.7 110.3zM437.1 331h0a8 8 0 0 1 -10.45 4.33l-14.78-6.13a8 8 0 0 1 -4.33-10.45h0A8 8 0 0 1 418 314.4l14.78 6.12A8 8 0 0 1 437.1 331zM444 264H428a8 8 0 0 1 -8-8h0a8 8 0 0 1 8-8h16a8 8 0 0 1 8 8h0A8 8 0 0 1 444 264z" - } - }, - "free": [ - "brands" - ] - }, - "sailboat": { - "changes": [ - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e445", - "label": "Sailboat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 16C256 9.018 260.5 2.841 267.2 .7414C273.9-1.358 281.1 1.105 285.1 6.826L509.1 326.8C512.5 331.7 512.9 338.1 510.2 343.4C507.4 348.7 501.1 352 496 352H272C263.2 352 256 344.8 256 336V16zM212.1 96.54C219.1 98.4 224 104.7 224 112V336C224 344.8 216.8 352 208 352H80C74.3 352 69.02 348.1 66.16 344C63.3 339.1 63.28 333 66.11 328.1L194.1 104.1C197.7 97.76 205.1 94.68 212.1 96.54V96.54zM5.718 404.3C2.848 394.1 10.52 384 21.12 384H554.9C565.5 384 573.2 394.1 570.3 404.3L566.3 418.7C550.7 473.9 500.4 512 443 512H132.1C75.62 512 25.27 473.9 9.747 418.7L5.718 404.3z" - } - }, - "free": [ - "solid" - ] - }, - "salesforce": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f83b", - "label": "Salesforce", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572492, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M248.9 245.6h-26.35c.69-5.16 3.32-14.12 13.64-14.12 6.75 0 11.97 3.82 12.71 14.12zm136.7-13.88c-.47 0-14.11-1.77-14.11 20s13.63 20 14.11 20c13 0 14.11-13.54 14.11-20 0-21.76-13.66-20-14.11-20zm-243.2 23.76a8.63 8.63 0 0 0 -3.29 7.29c0 4.78 2.08 6.05 3.29 7.05 4.7 3.7 15.07 2.12 20.93 .95v-16.94c-5.32-1.07-16.73-1.96-20.93 1.65zM640 232c0 87.58-80 154.4-165.4 136.4-18.37 33-70.73 70.75-132.2 41.63-41.16 96.05-177.9 92.18-213.8-5.17C8.91 428.8-50.19 266.5 53.36 205.6 18.61 126.2 76 32 167.7 32a124.2 124.2 0 0 1 98.56 48.7c20.7-21.4 49.4-34.81 81.15-34.81 42.34 0 79 23.52 98.8 58.57C539 63.78 640 132.7 640 232zm-519.5 31.8c0-11.76-11.69-15.17-17.87-17.17-5.27-2.11-13.41-3.51-13.41-8.94 0-9.46 17-6.66 25.17-2.12 0 0 1.17 .71 1.64-.47 .24-.7 2.36-6.58 2.59-7.29a1.13 1.13 0 0 0 -.7-1.41c-12.33-7.63-40.7-8.51-40.7 12.7 0 12.46 11.49 15.44 17.88 17.17 4.72 1.58 13.17 3 13.17 8.7 0 4-3.53 7.06-9.17 7.06a31.76 31.76 0 0 1 -19-6.35c-.47-.23-1.42-.71-1.65 .71l-2.4 7.47c-.47 .94 .23 1.18 .23 1.41 1.75 1.4 10.3 6.59 22.82 6.59 13.17 0 21.4-7.06 21.4-18.11zm32-42.58c-10.13 0-18.66 3.17-21.4 5.18a1 1 0 0 0 -.24 1.41l2.59 7.06a1 1 0 0 0 1.18 .7c.65 0 6.8-4 16.93-4 4 0 7.06 .71 9.18 2.36 3.6 2.8 3.06 8.29 3.06 10.58-4.79-.3-19.11-3.44-29.41 3.76a16.92 16.92 0 0 0 -7.34 14.54c0 5.9 1.51 10.4 6.59 14.35 12.24 8.16 36.28 2 38.1 1.41 1.58-.32 3.53-.66 3.53-1.88v-33.88c.04-4.61 .32-21.64-22.78-21.64zM199 200.2a1.11 1.11 0 0 0 -1.18-1.18H188a1.11 1.11 0 0 0 -1.17 1.18v79a1.11 1.11 0 0 0 1.17 1.18h9.88a1.11 1.11 0 0 0 1.18-1.18zm55.75 28.93c-2.1-2.31-6.79-7.53-17.65-7.53-3.51 0-14.16 .23-20.7 8.94-6.35 7.63-6.58 18.11-6.58 21.41 0 3.12 .15 14.26 7.06 21.17 2.64 2.91 9.06 8.23 22.81 8.23 10.82 0 16.47-2.35 18.58-3.76 .47-.24 .71-.71 .24-1.88l-2.35-6.83a1.26 1.26 0 0 0 -1.41-.7c-2.59 .94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.94-16.7h37.17a1.23 1.23 0 0 0 1.17-.94c-.29 0 2.07-14.7-6.09-24.23zm36.69 52.69c13.17 0 21.41-7.06 21.41-18.11 0-11.76-11.7-15.17-17.88-17.17-4.14-1.66-13.41-3.38-13.41-8.94 0-3.76 3.29-6.35 8.47-6.35a38.11 38.11 0 0 1 16.7 4.23s1.18 .71 1.65-.47c.23-.7 2.35-6.58 2.58-7.29a1.13 1.13 0 0 0 -.7-1.41c-7.91-4.9-16.74-4.94-20.23-4.94-12 0-20.46 7.29-20.46 17.64 0 12.46 11.48 15.44 17.87 17.17 6.11 2 13.17 3.26 13.17 8.7 0 4-3.52 7.06-9.17 7.06a31.8 31.8 0 0 1 -19-6.35 1 1 0 0 0 -1.65 .71l-2.35 7.52c-.47 .94 .23 1.18 .23 1.41 1.72 1.4 10.33 6.59 22.79 6.59zM357.1 224c0-.71-.24-1.18-1.18-1.18h-11.76c0-.14 .94-8.94 4.47-12.47 4.16-4.15 11.76-1.64 12-1.64 1.17 .47 1.41 0 1.64-.47l2.83-7.77c.7-.94 0-1.17-.24-1.41-5.09-2-17.35-2.87-24.46 4.24-5.48 5.48-7 13.92-8 19.52h-8.47a1.28 1.28 0 0 0 -1.17 1.18l-1.42 7.76c0 .7 .24 1.17 1.18 1.17h8.23c-8.51 47.9-8.75 50.21-10.35 55.52-1.08 3.62-3.29 6.9-5.88 7.76-.09 0-3.88 1.68-9.64-.24 0 0-.94-.47-1.41 .71-.24 .71-2.59 6.82-2.83 7.53s0 1.41 .47 1.41c5.11 2 13 1.77 17.88 0 6.28-2.28 9.72-7.89 11.53-12.94 2.75-7.71 2.81-9.79 11.76-59.74h12.23a1.29 1.29 0 0 0 1.18-1.18zm53.39 16c-.56-1.68-5.1-18.11-25.17-18.11-15.25 0-23 10-25.16 18.11-1 3-3.18 14 0 23.52 .09 .3 4.41 18.12 25.16 18.12 14.95 0 22.9-9.61 25.17-18.12 3.21-9.61 1.01-20.52 0-23.52zm45.4-16.7c-5-1.65-16.62-1.9-22.11 5.41v-4.47a1.11 1.11 0 0 0 -1.18-1.17h-9.4a1.11 1.11 0 0 0 -1.18 1.17v55.28a1.12 1.12 0 0 0 1.18 1.18h9.64a1.12 1.12 0 0 0 1.18-1.18v-27.77c0-2.91 .05-11.37 4.46-15.05 4.9-4.9 12-3.36 13.41-3.06a1.57 1.57 0 0 0 1.41-.94 74 74 0 0 0 3.06-8 1.16 1.16 0 0 0 -.47-1.41zm46.81 54.1l-2.12-7.29c-.47-1.18-1.41-.71-1.41-.71-4.23 1.82-10.15 1.89-11.29 1.89-4.64 0-17.17-1.13-17.17-19.76 0-6.23 1.85-19.76 16.47-19.76a34.85 34.85 0 0 1 11.52 1.65s.94 .47 1.18-.71c.94-2.59 1.64-4.47 2.59-7.53 .23-.94-.47-1.17-.71-1.17-11.59-3.87-22.34-2.53-27.76 0-1.59 .74-16.23 6.49-16.23 27.52 0 2.9-.58 30.11 28.94 30.11a44.45 44.45 0 0 0 15.52-2.83 1.3 1.3 0 0 0 .47-1.42zm53.87-39.52c-.8-3-5.37-16.23-22.35-16.23-16 0-23.52 10.11-25.64 18.59a38.58 38.58 0 0 0 -1.65 11.76c0 25.87 18.84 29.4 29.88 29.4 10.82 0 16.46-2.35 18.58-3.76 .47-.24 .71-.71 .24-1.88l-2.36-6.83a1.26 1.26 0 0 0 -1.41-.7c-2.59 .94-6.35 2.82-15.29 2.82-17.42 0-16.85-14.74-16.93-16.7h37.16a1.25 1.25 0 0 0 1.18-.94c-.24-.01 .94-7.07-1.41-15.54zm-23.29-6.35c-10.33 0-13 9-13.64 14.12H546c-.88-11.92-7.62-14.13-12.73-14.13z" - } - }, - "free": [ - "brands" - ] - }, - "sass": { - "changes": [ - "5.0.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f41e", - "label": "Sass", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M301.8 378.9c-.3 .6-.6 1.08 0 0zm249.1-87a131.2 131.2 0 0 0 -58 13.5c-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.29 5.9a122.8 122.8 0 0 0 -5.3 19.1c-2.3 11.7-25.79 53.5-39.09 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.29-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.89 77.3-42.08 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4 .8-.7 1.3-.9 1.7 .3-.5 .5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7v.1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4 .3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.39-42.4c-18.4 0-44 20.2-56.58 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.79-38.2-101.9-65.2-99.07-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.4-35.4 189.8-5.6 19.4 42.5-41.89 121.6-143.7 133-38.79 4.3-59.18-10.7-64.28-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.79 28.9 18.7 6.1 64.18 9.5 119.2-11.8 61.78-23.8 109.9-90.1 95.77-145.6C386.5 18.32 293-.18 204.6 31.22c-52.69 18.7-109.7 48.1-150.7 86.4-48.69 45.6-56.48 85.3-53.28 101.9 11.39 58.9 92.57 97.3 125.1 125.7-1.6 .9-3.1 1.7-4.5 2.5-16.29 8.1-78.18 40.5-93.67 74.7-17.5 38.8 2.9 66.6 16.29 70.4 41.79 11.6 84.58-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.29-4.9 16.39-9.4 23.49-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.49 5 15.39 5 13.8 0 20-11.4 26.89-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.39 0 18.79-12.1 23-18.3v.1s.2-.4 .7-1.2c1-1.5 1.5-2.4 1.5-2.4v-.3c3.8-6.5 12.1-21.4 24.59-46 16.2-31.8 31.69-71.5 31.69-71.5a201.2 201.2 0 0 0 6.2 25.8c2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2a.31 .31 0 0 0 .1 .2c-3 4-6.4 8.3-9.9 12.5-12.79 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.69 2.5 11.5-.8 19.6-3.6 23.5-5.4a82.2 82.2 0 0 0 20.19-10.6c12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5C434.8 301.7 450.1 270 450.1 270a201.2 201.2 0 0 0 6.2 25.8c2.4 8.1 7.09 17 11.39 25.7-18.59 15.1-30.09 32.6-34.09 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5a79.46 79.46 0 0 0 21.59-11.1c12.5-9.2 24.59-22.1 23.79-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.09-10.2 62.09-7.2 55.68 6.5 66.58 41.3 64.48 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.19-11.8 30.29-38.7 1.6-34-31.09-71.4-89-71.1zm-429.2 144.7c-18.39 20.1-44.19 27.7-55.28 21.3C54.61 451 59.31 421.4 82 400c13.8-13 31.59-25 43.39-32.4 2.7-1.6 6.6-4 11.4-6.9 .8-.5 1.2-.7 1.2-.7 .9-.6 1.9-1.1 2.9-1.7 8.29 30.4 .3 57.2-19.1 78.3zm134.4-91.4c-6.4 15.7-19.89 55.7-28.09 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.09-11.3 21.19-14.9 23.79-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.89-13.9 0 .5 .1 1 .1 1.6-.13 17.9-17.32 30-25.12 34.8zm85.58-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.59-15.3 19-24.5a36.18 36.18 0 0 1 1.9 10.8c-.1 22.5-16.2 30.9-25.89 34.4z" - } - }, - "free": [ - "brands" - ] - }, - "satellite": { - "changes": [ - "5.6.0", - "5.10.1", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7bf", - "aliases": { - "unicodes": { - "composite": [ - "1f6f0" - ], - "secondary": [ - "10f7bf" - ] - } - }, - "label": "Satellite", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.8 264.1l-80.37-80.37l47.87-47.88c13-13.12 13-34.37 0-47.5l-47.5-47.5c-13.12-13.12-34.38-13.12-47.5 0l-47.88 47.88L247.1 9.25C241 3.375 232.9 0 224.5 0c-8.5 0-16.62 3.375-22.5 9.25l-96.75 96.75c-12.38 12.5-12.38 32.62 0 45.12L185.5 231.5L175.8 241.4c-54-24.5-116.3-22.5-168.5 5.375c-8.498 4.625-9.623 16.38-2.873 23.25l107.6 107.5l-17.88 17.75c-2.625-.75-5-1.625-7.75-1.625c-17.75 0-32 14.38-32 32c0 17.75 14.25 32 32 32c17.62 0 32-14.25 32-32c0-2.75-.875-5.125-1.625-7.75l17.75-17.88l107.6 107.6c6.75 6.75 18.62 5.625 23.12-2.875c27.88-52.25 29.88-114.5 5.375-168.5l10-9.873l80.25 80.36c12.5 12.38 32.62 12.38 44.1 0l96.75-96.75C508.6 304.1 512 295.1 512 287.5C512 279.1 508.6 270.1 502.8 264.1zM219.5 197.4L150.6 128.5l73.87-73.75l68.86 68.88L219.5 197.4zM383.5 361.4L314.6 292.5l73.75-73.88l68.88 68.87L383.5 361.4z" - } - }, - "free": [ - "solid" - ] - }, - "satellite-dish": { - "changes": [ - "5.6.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7c0", - "aliases": { - "unicodes": { - "composite": [ - "1f4e1" - ], - "secondary": [ - "10f7c0" - ] - } - }, - "label": "Satellite Dish", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573309, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M216 104C202.8 104 192 114.8 192 128s10.75 24 24 24c79.41 0 144 64.59 144 144C360 309.3 370.8 320 384 320s24-10.75 24-24C408 190.1 321.9 104 216 104zM224 0C206.3 0 192 14.31 192 32s14.33 32 32 32c123.5 0 224 100.5 224 224c0 17.69 14.33 32 32 32s32-14.31 32-32C512 129.2 382.8 0 224 0zM188.9 346l27.37-27.37c2.625 .625 5.059 1.506 7.809 1.506c17.75 0 31.99-14.26 31.99-32c0-17.62-14.24-32.01-31.99-32.01c-17.62 0-31.99 14.38-31.99 32.01c0 2.875 .8099 5.25 1.56 7.875L166.2 323.4L49.37 206.5c-7.25-7.25-20.12-6-24.1 3c-41.75 77.88-29.88 176.7 35.75 242.4c65.62 65.62 164.6 77.5 242.4 35.75c9.125-5 10.38-17.75 3-25L188.9 346z" - } - }, - "free": [ - "solid" - ] - }, - "scale-balanced": { - "changes": [ - "4.4.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f24e", - "aliases": { - "names": [ - "balance-scale" - ], - "unicodes": { - "composite": [ - "2696" - ], - "secondary": [ - "10f24e" - ] - } - }, - "label": "Scale balanced", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573310, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M554.9 154.5c-17.62-35.25-68.12-35.38-85.87 0c-87 174.3-84.1 165.9-84.1 181.5c0 44.13 57.25 80 128 80s127.1-35.88 127.1-80C639.1 319.9 641.4 327.3 554.9 154.5zM439.1 320l71.96-144l72.17 144H439.1zM256 336c0-16.12 1.375-8.75-85.12-181.5c-17.62-35.25-68.12-35.38-85.87 0c-87 174.3-84.1 165.9-84.1 181.5c0 44.13 57.25 80 127.1 80S256 380.1 256 336zM127.9 176L200.1 320H55.96L127.9 176zM495.1 448h-143.1V153.3C375.5 143 393.1 121.8 398.4 96h113.6c17.67 0 31.1-14.33 31.1-32s-14.33-32-31.1-32h-128.4c-14.62-19.38-37.5-32-63.62-32S270.1 12.62 256.4 32H128C110.3 32 96 46.33 96 64S110.3 96 127.1 96h113.6c5.25 25.75 22.87 47 46.37 57.25V448H144c-26.51 0-48.01 21.49-48.01 48c0 8.836 7.165 16 16 16h416c8.836 0 16-7.164 16-16C544 469.5 522.5 448 495.1 448z" - } - }, - "free": [ - "solid" - ] - }, - "scale-unbalanced": { - "changes": [ - "5.0.13", - "5.9.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f515", - "aliases": { - "names": [ - "balance-scale-left" - ], - "unicodes": { - "secondary": [ - "10f515" - ] - } - }, - "label": "Scale unbalanced", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573310, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M85 250.5c-87 174.2-84.1 165.9-84.1 181.5C.0035 476.1 57.25 512 128 512s128-35.88 128-79.1c0-16.12 1.375-8.752-85.12-181.5C153.3 215.3 102.8 215.1 85 250.5zM55.96 416l71.98-143.1l72.15 143.1H55.96zM554.9 122.5c-17.62-35.25-68.08-35.37-85.83 0c-87 174.2-85.04 165.9-85.04 181.5c0 44.12 57.25 79.1 128 79.1s127.1-35.87 127.1-79.1C639.1 287.9 641.4 295.3 554.9 122.5zM439.1 288l72.04-143.1l72.08 143.1H439.1zM495.1 448h-143.1V153.3c20.83-9.117 36.72-26.93 43.78-48.77l126.3-42.11c16.77-5.594 25.83-23.72 20.23-40.48c-5.578-16.73-23.62-25.86-40.48-20.23l-113.3 37.76c-13.94-23.49-39.29-39.41-68.58-39.41c-44.18 0-79.1 35.82-79.1 80c0 2.961 .5587 5.771 .8712 8.648L117.9 129.7C101.1 135.3 92.05 153.4 97.64 170.1c4.469 13.41 16.95 21.88 30.36 21.88c3.344 0 6.768-.5186 10.13-1.644L273.8 145.1C278.2 148.3 282.1 151.1 288 153.3V496C288 504.8 295.2 512 304 512h223.1c8.838 0 16-7.164 16-15.1C543.1 469.5 522.5 448 495.1 448z" - } - }, - "free": [ - "solid" - ] - }, - "scale-unbalanced-flip": { - "changes": [ - "5.0.13", - "5.9.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f516", - "aliases": { - "names": [ - "balance-scale-right" - ], - "unicodes": { - "secondary": [ - "10f516" - ] - } - }, - "label": "Scale unbalanced flip", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573310, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M554.9 250.5c-17.62-35.37-68.12-35.25-85.87 0c-86.38 172.7-85.04 165.4-85.04 181.5C383.1 476.1 441.3 512 512 512s127.1-35.88 127.1-79.1C639.1 416.4 642 424.7 554.9 250.5zM439.9 416l72.15-143.1l71.98 143.1H439.9zM512 192c13.41 0 25.89-8.471 30.36-21.88c5.594-16.76-3.469-34.89-20.23-40.48l-122.1-40.1c.3125-2.877 .8712-5.687 .8712-8.648c0-44.18-35.81-80-79.1-80c-29.29 0-54.65 15.92-68.58 39.41l-113.3-37.76C121.3-3.963 103.2 5.162 97.64 21.9C92.05 38.66 101.1 56.78 117.9 62.38l126.3 42.11c7.061 21.84 22.95 39.65 43.78 48.77v294.7H144c-26.51 0-47.1 21.49-47.1 47.1C96 504.8 103.2 512 112 512h223.1c8.836 0 15.1-7.164 15.1-15.1V153.3c5.043-2.207 9.756-4.965 14.19-8.115l135.7 45.23C505.2 191.5 508.7 192 512 192zM256 304c0-15.62 1.1-7.252-85.12-181.5c-17.62-35.37-68.08-35.25-85.83 0c-86.38 172.7-85.04 165.4-85.04 181.5c0 44.12 57.25 79.1 127.1 79.1S256 348.1 256 304zM128 144l72.04 143.1H55.92L128 144z" - } - }, - "free": [ - "solid" - ] - }, - "schlix": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ea", - "label": "SCHLIX", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1L176 135l-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zm-21.2-83.7l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7L59 206.5zm-30.6 16.6l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268l19.2-10.2 .4 38.2-21 8.8L1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8L90.1 221l8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zm-84.9-279.7l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z" - } - }, - "free": [ - "brands" - ] - }, - "school": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f549", - "aliases": { - "unicodes": { - "composite": [ - "1f3eb" - ], - "secondary": [ - "10f549" - ] - } - }, - "label": "School", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 128C328.8 128 336 135.2 336 144V160H352C360.8 160 368 167.2 368 176C368 184.8 360.8 192 352 192H320C311.2 192 304 184.8 304 176V144C304 135.2 311.2 128 320 128zM476.8 98.06L602.4 125.1C624.4 130.9 640 150.3 640 172.8V464C640 490.5 618.5 512 592 512H48C21.49 512 0 490.5 0 464V172.8C0 150.3 15.63 130.9 37.59 125.1L163.2 98.06L302.2 5.374C312.1-1.791 327-1.791 337.8 5.374L476.8 98.06zM256 512H384V416C384 380.7 355.3 352 320 352C284.7 352 256 380.7 256 416V512zM96 192C87.16 192 80 199.2 80 208V272C80 280.8 87.16 288 96 288H128C136.8 288 144 280.8 144 272V208C144 199.2 136.8 192 128 192H96zM496 272C496 280.8 503.2 288 512 288H544C552.8 288 560 280.8 560 272V208C560 199.2 552.8 192 544 192H512C503.2 192 496 199.2 496 208V272zM96 320C87.16 320 80 327.2 80 336V400C80 408.8 87.16 416 96 416H128C136.8 416 144 408.8 144 400V336C144 327.2 136.8 320 128 320H96zM496 400C496 408.8 503.2 416 512 416H544C552.8 416 560 408.8 560 400V336C560 327.2 552.8 320 544 320H512C503.2 320 496 327.2 496 336V400zM320 88C271.4 88 232 127.4 232 176C232 224.6 271.4 264 320 264C368.6 264 408 224.6 408 176C408 127.4 368.6 88 320 88z" - } - }, - "free": [ - "solid" - ] - }, - "school-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e56b", - "label": "School Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573310, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M476.8 98.06L602.4 125.1C624.4 130.9 640 150.3 640 172.8V266.8C608.1 221.6 555.5 191.1 496 191.1C457.5 191.1 421.8 204.4 392.9 225.4C402.4 211.3 408 194.3 408 175.1C408 127.4 368.6 87.1 320 87.1C271.4 87.1 232 127.4 232 175.1C232 224.6 271.4 263.1 320 263.1C335.6 263.1 350.2 259.1 362.9 252.9C339.4 279.9 324.1 314.3 320.7 352H320.3L320 352C284.7 352 256 380.7 256 416V512L320 512H48C21.49 512 0 490.5 0 464V172.8C0 150.3 15.63 130.9 37.59 125.1L163.2 98.06L302.2 5.374C312.1-1.791 327-1.791 337.8 5.374L476.8 98.06zM96 192C87.16 192 80 199.2 80 208V272C80 280.8 87.16 288 96 288H128C136.8 288 144 280.8 144 272V208C144 199.2 136.8 192 128 192H96zM96 320C87.16 320 80 327.2 80 336V400C80 408.8 87.16 416 96 416H128C136.8 416 144 408.8 144 400V336C144 327.2 136.8 320 128 320H96zM320 128C328.8 128 336 135.2 336 144V160H352C360.8 160 368 167.2 368 176C368 184.8 360.8 192 352 192H320C311.2 192 304 184.8 304 176V144C304 135.2 311.2 128 320 128zM640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368zM480 385.4L451.3 356.7C445.1 350.4 434.9 350.4 428.7 356.7C422.4 362.9 422.4 373.1 428.7 379.3L468.7 419.3C474.9 425.6 485.1 425.6 491.3 419.3L563.3 347.3C569.6 341.1 569.6 330.9 563.3 324.7C557.1 318.4 546.9 318.4 540.7 324.7L480 385.4z" - } - }, - "free": [ - "solid" - ] - }, - "school-circle-exclamation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e56c", - "label": "School Circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573310, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M476.8 98.06L602.4 125.1C624.4 130.9 640 150.3 640 172.8V266.8C608.1 221.6 555.5 191.1 496 191.1C457.5 191.1 421.8 204.4 392.9 225.4C402.4 211.3 408 194.3 408 175.1C408 127.4 368.6 87.1 320 87.1C271.4 87.1 232 127.4 232 175.1C232 224.6 271.4 263.1 320 263.1C335.6 263.1 350.2 259.1 362.9 252.9C339.4 279.9 324.1 314.3 320.7 352H320.3L320 352C284.7 352 256 380.7 256 416V512L320 512H48C21.49 512 0 490.5 0 464V172.8C0 150.3 15.63 130.9 37.59 125.1L163.2 98.06L302.2 5.374C312.1-1.791 327-1.791 337.8 5.374L476.8 98.06zM96 192C87.16 192 80 199.2 80 208V272C80 280.8 87.16 288 96 288H128C136.8 288 144 280.8 144 272V208C144 199.2 136.8 192 128 192H96zM96 320C87.16 320 80 327.2 80 336V400C80 408.8 87.16 416 96 416H128C136.8 416 144 408.8 144 400V336C144 327.2 136.8 320 128 320H96zM320 128C328.8 128 336 135.2 336 144V160H352C360.8 160 368 167.2 368 176C368 184.8 360.8 192 352 192H320C311.2 192 304 184.8 304 176V144C304 135.2 311.2 128 320 128zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "school-circle-xmark": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e56d", - "label": "School Circle-xmark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573310, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M476.8 98.06L602.4 125.1C624.4 130.9 640 150.3 640 172.8V266.8C608.1 221.6 555.5 191.1 496 191.1C457.5 191.1 421.8 204.4 392.9 225.4C402.4 211.3 408 194.3 408 175.1C408 127.4 368.6 87.1 320 87.1C271.4 87.1 232 127.4 232 175.1C232 224.6 271.4 263.1 320 263.1C335.6 263.1 350.2 259.1 362.9 252.9C339.4 279.9 324.1 314.3 320.7 352H320.3L320 352C284.7 352 256 380.7 256 416V512L320 512H48C21.49 512 0 490.5 0 464V172.8C0 150.3 15.63 130.9 37.59 125.1L163.2 98.06L302.2 5.374C312.1-1.791 327-1.791 337.8 5.374L476.8 98.06zM96 192C87.16 192 80 199.2 80 208V272C80 280.8 87.16 288 96 288H128C136.8 288 144 280.8 144 272V208C144 199.2 136.8 192 128 192H96zM96 320C87.16 320 80 327.2 80 336V400C80 408.8 87.16 416 96 416H128C136.8 416 144 408.8 144 400V336C144 327.2 136.8 320 128 320H96zM320 128C328.8 128 336 135.2 336 144V160H352C360.8 160 368 167.2 368 176C368 184.8 360.8 192 352 192H320C311.2 192 304 184.8 304 176V144C304 135.2 311.2 128 320 128zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM518.6 368L555.3 331.3C561.6 325.1 561.6 314.9 555.3 308.7C549.1 302.4 538.9 302.4 532.7 308.7L496 345.4L459.3 308.7C453.1 302.4 442.9 302.4 436.7 308.7C430.4 314.9 430.4 325.1 436.7 331.3L473.4 368L436.7 404.7C430.4 410.9 430.4 421.1 436.7 427.3C442.9 433.6 453.1 433.6 459.3 427.3L496 390.6L532.7 427.3C538.9 433.6 549.1 433.6 555.3 427.3C561.6 421.1 561.6 410.9 555.3 404.7L518.6 368z" - } - }, - "free": [ - "solid" - ] - }, - "school-flag": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e56e", - "label": "School Flag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573310, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 0H400C408.8 0 416 7.164 416 16V64C416 72.84 408.8 80 400 80H320V95.53L410.3 160H512C547.3 160 576 188.7 576 224V448C576 483.3 547.3 512 512 512H336V400C336 373.5 314.5 352 288 352C261.5 352 240 373.5 240 400V512H64C28.65 512 0 483.3 0 448V224C0 188.7 28.65 160 64 160H165.7L256 95.53V32C256 14.33 270.3 0 288 0V0zM288 192C261.5 192 240 213.5 240 240C240 266.5 261.5 288 288 288C314.5 288 336 266.5 336 240C336 213.5 314.5 192 288 192zM80 224C71.16 224 64 231.2 64 240V304C64 312.8 71.16 320 80 320H112C120.8 320 128 312.8 128 304V240C128 231.2 120.8 224 112 224H80zM448 304C448 312.8 455.2 320 464 320H496C504.8 320 512 312.8 512 304V240C512 231.2 504.8 224 496 224H464C455.2 224 448 231.2 448 240V304zM80 352C71.16 352 64 359.2 64 368V432C64 440.8 71.16 448 80 448H112C120.8 448 128 440.8 128 432V368C128 359.2 120.8 352 112 352H80zM464 352C455.2 352 448 359.2 448 368V432C448 440.8 455.2 448 464 448H496C504.8 448 512 440.8 512 432V368C512 359.2 504.8 352 496 352H464z" - } - }, - "free": [ - "solid" - ] - }, - "school-lock": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e56f", - "label": "School Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M336 160H352C360.8 160 368 167.2 368 176C368 184.8 360.8 192 352 192H320C311.2 192 304 184.8 304 176V144C304 135.2 311.2 128 320 128C328.8 128 336 135.2 336 144V160zM302.2 5.374C312.1-1.791 327-1.791 337.8 5.374L476.8 98.06L602.4 125.1C624.4 130.9 640 150.3 640 172.8V271.1C640 210.1 589.9 159.1 528 159.1C466.1 159.1 416 210.1 416 271.1V296.6C396.9 307.6 384 328.3 384 352H320.3L320 352C284.7 352 256 380.7 256 416V512H320L48 512C21.49 512 0 490.5 0 464V172.8C0 150.3 15.63 130.9 37.59 125.1L163.2 98.06L302.2 5.374zM80 272C80 280.8 87.16 288 96 288H128C136.8 288 144 280.8 144 272V208C144 199.2 136.8 192 128 192H96C87.16 192 80 199.2 80 208V272zM80 400C80 408.8 87.16 416 96 416H128C136.8 416 144 408.8 144 400V336C144 327.2 136.8 320 128 320H96C87.16 320 80 327.2 80 336V400zM320 264C368.6 264 408 224.6 408 176C408 127.4 368.6 88 320 88C271.4 88 232 127.4 232 176C232 224.6 271.4 264 320 264zM528 192C572.2 192 608 227.8 608 272V320C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 320 448 320V272C448 227.8 483.8 192 528 192zM528 240C510.3 240 496 254.3 496 272V320H560V272C560 254.3 545.7 240 528 240z" - } - }, - "free": [ - "solid" - ] - }, - "scissors": { - "changes": [ - "2.0.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0c4", - "aliases": { - "names": [ - "cut" - ], - "unicodes": { - "composite": [ - "2702", - "2704", - "2700" - ], - "secondary": [ - "10f0c4" - ] - } - }, - "label": "Scissors", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M396.8 51.2C425.1 22.92 470.9 22.92 499.2 51.2C506.3 58.27 506.3 69.73 499.2 76.8L216.5 359.5C221.3 372.1 224 385.7 224 400C224 461.9 173.9 512 112 512C50.14 512 0 461.9 0 400C0 338.1 50.14 287.1 112 287.1C126.3 287.1 139.9 290.7 152.5 295.5L191.1 255.1L152.5 216.5C139.9 221.3 126.3 224 112 224C50.14 224 0 173.9 0 112C0 50.14 50.14 0 112 0C173.9 0 224 50.14 224 112C224 126.3 221.3 139.9 216.5 152.5L255.1 191.1L396.8 51.2zM160 111.1C160 85.49 138.5 63.1 112 63.1C85.49 63.1 64 85.49 64 111.1C64 138.5 85.49 159.1 112 159.1C138.5 159.1 160 138.5 160 111.1zM112 448C138.5 448 160 426.5 160 400C160 373.5 138.5 352 112 352C85.49 352 64 373.5 64 400C64 426.5 85.49 448 112 448zM278.6 342.6L342.6 278.6L499.2 435.2C506.3 442.3 506.3 453.7 499.2 460.8C470.9 489.1 425.1 489.1 396.8 460.8L278.6 342.6z" - } - }, - "free": [ - "solid" - ] - }, - "screenpal": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e570", - "label": "Screenpal", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M233.5 22.49C233.5 10.07 243.6 0 256 0C268.4 0 278.5 10.07 278.5 22.49C278.5 34.91 268.4 44.98 256 44.98C243.6 44.98 233.5 34.91 233.5 22.49zM313.4 259C313.4 290.7 287.7 316.4 256 316.4C224.3 316.4 198.6 290.7 198.6 259C198.6 227.3 224.3 201.6 256 201.6C287.7 201.6 313.4 227.3 313.4 259zM337.2 350C359.5 330.1 373.7 302.7 377.1 273H496.6C493.1 334.4 466.2 392.2 421.4 434.4C376.7 476.6 317.5 500.2 256 500.2C194.5 500.2 135.3 476.6 90.56 434.4C45.83 392.2 18.94 334.4 15.39 273H135.1C138.5 302.7 152.7 330.1 175 350C197.3 369.9 226.2 380.9 256.1 380.9C285.1 380.9 314.8 369.9 337.2 350zM73.14 140.3C73.54 152.7 63.81 163.1 51.39 163.5C38.97 163.9 28.59 154.2 28.18 141.8C27.78 129.3 37.52 118.9 49.94 118.5C62.35 118.1 72.74 127.9 73.14 140.3zM438.9 141C438.9 128.6 448.9 118.5 461.4 118.5C473.8 118.5 483.8 128.6 483.8 141C483.8 153.5 473.8 163.5 461.4 163.5C448.9 163.5 438.9 153.5 438.9 141zM317.9 95.27C300.6 109.1 278.7 118.1 256 118.1C233.3 118.1 211.4 109.1 194.1 95.27C176.8 80.55 165.3 60.18 161.7 37.78C176.8 31.37 192.5 26.52 208.6 23.31C208.6 35.88 213.6 47.93 222.5 56.82C231.4 65.7 243.4 70.7 256 70.7C268.6 70.7 280.6 65.7 289.5 56.82C298.4 47.93 303.4 35.88 303.4 23.31C319.5 26.52 335.2 31.37 350.3 37.78C346.7 60.18 335.2 80.55 317.9 95.27H317.9zM82.78 231C61.42 238.6 38.06 238.4 16.86 230.4C18.82 214.1 22.46 198.1 27.71 182.5C33.1 185.6 39.05 187.6 45.22 188.5C51.39 189.3 57.67 188.9 63.68 187.3C69.69 185.6 75.33 182.9 80.27 179.1C85.21 175.3 89.36 170.6 92.47 165.2C95.58 159.8 97.61 153.8 98.42 147.7C99.23 141.5 98.83 135.2 97.22 129.2C95.61 123.2 92.83 117.6 89.04 112.6C85.25 107.7 80.53 103.5 75.14 100.4C85.96 88.11 98.01 76.94 111.1 67.07C128.7 81.42 140.6 101.6 144.7 123.9C148.8 146.2 144.8 169.3 133.5 188.9C122.1 208.5 104.1 223.4 82.78 231V231zM429.2 231.1C407.9 223.5 389.9 208.5 378.5 188.9C367.2 169.3 363.3 146.2 367.4 123.9C371.5 101.7 383.4 81.54 400.9 67.19C414 77.04 426.1 88.21 436.9 100.5C426.2 106.9 418.5 117.2 415.4 129.3C412.2 141.3 413.1 154.1 420.2 164.9C426.4 175.7 436.6 183.6 448.6 186.9C460.6 190.2 473.5 188.6 484.3 182.6C489.6 198.1 493.2 214.2 495.2 230.4C473.1 238.5 450.6 238.7 429.2 231.1L429.2 231.1z" - } - }, - "free": [ - "brands" - ] - }, - "screwdriver": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f54a", - "aliases": { - "unicodes": { - "composite": [ - "1fa9b" - ], - "secondary": [ - "10f54a" - ] - } - }, - "label": "Screwdriver", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M128 278.6l-117.1 116.9c-14.5 14.62-14.5 38.29 0 52.79l52.75 52.75c14.5 14.5 38.17 14.5 52.79 0L233.4 384c29.12-29.12 29.12-76.25 0-105.4S157.1 249.5 128 278.6zM447.1 0l-128 96L320 158L237 241.1C243.8 245.4 250.3 250.1 256 256c5.875 5.75 10.62 12.25 14.88 19L353.1 192h61.99l95.1-128L447.1 0z" - } - }, - "free": [ - "solid" - ] - }, - "screwdriver-wrench": { - "changes": [ - "5.6.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7d9", - "aliases": { - "names": [ - "tools" - ], - "unicodes": { - "secondary": [ - "10f7d9" - ] - } - }, - "label": "Screwdriver wrench", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M331.8 224.1c28.29 0 54.88 10.99 74.86 30.97l19.59 19.59c40.01-17.74 71.25-53.3 81.62-96.65c5.725-23.92 5.34-47.08 .2148-68.4c-2.613-10.88-16.43-14.51-24.34-6.604l-68.9 68.9h-75.6V97.2l68.9-68.9c7.912-7.912 4.275-21.73-6.604-24.34c-21.32-5.125-44.48-5.51-68.4 .2148c-55.3 13.23-98.39 60.22-107.2 116.4C224.5 128.9 224.2 137 224.3 145l82.78 82.86C315.2 225.1 323.5 224.1 331.8 224.1zM384 278.6c-23.16-23.16-57.57-27.57-85.39-13.9L191.1 158L191.1 95.99l-127.1-95.99L0 63.1l96 127.1l62.04 .0077l106.7 106.6c-13.67 27.82-9.251 62.23 13.91 85.39l117 117.1c14.62 14.5 38.21 14.5 52.71-.0016l52.75-52.75c14.5-14.5 14.5-38.08-.0016-52.71L384 278.6zM227.9 307L168.7 247.9l-148.9 148.9c-26.37 26.37-26.37 69.08 0 95.45C32.96 505.4 50.21 512 67.5 512s34.54-6.592 47.72-19.78l119.1-119.1C225.5 352.3 222.6 329.4 227.9 307zM64 472c-13.25 0-24-10.75-24-24c0-13.26 10.75-24 24-24S88 434.7 88 448C88 461.3 77.25 472 64 472z" - } - }, - "free": [ - "solid" - ] - }, - "scribd": { - "changes": [ - "4.5.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f28a", - "label": "Scribd", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M42.3 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9 .6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9 .2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4L0 406.3l15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z" - } - }, - "free": [ - "brands" - ] - }, - "scroll": { - "changes": [ - "5.4.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f70e", - "aliases": { - "unicodes": { - "composite": [ - "1f4dc" - ], - "secondary": [ - "10f70e" - ] - } - }, - "label": "Scroll", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M48 32C21.5 32 0 53.5 0 80v64C0 152.9 7.125 160 16 160H96V80C96 53.5 74.5 32 48 32zM256 380.6V320h224V128c0-53-43-96-96-96H111.6C121.8 45.38 128 61.88 128 80V384c0 38.88 34.62 69.63 74.75 63.13C234.3 442 256 412.5 256 380.6zM288 352v32c0 52.88-43 96-96 96h272c61.88 0 112-50.13 112-112c0-8.875-7.125-16-16-16H288z" - } - }, - "free": [ - "solid" - ] - }, - "scroll-torah": { - "changes": [ - "5.3.0", - "5.7.0", - "5.9.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6a0", - "aliases": { - "names": [ - "torah" - ], - "unicodes": { - "secondary": [ - "10f6a0" - ] - } - }, - "label": "Scroll torah", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 366.5l17.75-29.62l-35.5 .0011L320 366.5zM382.5 311.5l36.75-.0011l-18.38-30.75L382.5 311.5zM48 0C21.5 0 0 14.38 0 32v448c0 17.62 21.5 32 48 32S96 497.6 96 480V32C96 14.38 74.5 0 48 0zM419.2 200.5L382.4 200.5l18.5 30.79L419.2 200.5zM220.8 311.5l36.87-.0012l-18.5-30.87L220.8 311.5zM287.1 311.5L352.9 311.5l33.25-55.5l-33.25-55.5L287.1 200.5L253.9 256L287.1 311.5zM592 0C565.5 0 544 14.38 544 32v448c0 17.62 21.5 32 48 32s48-14.38 48-32V32C640 14.38 618.5 0 592 0zM128 480h384V32H128V480zM194.8 185.9c3.75-6.625 10.87-10.75 18.5-10.75L272.7 175.1l29.12-48.67C305.6 119.1 312.6 116.1 319.1 116.1c7.375-.125 14.25 3.916 17.1 10.17l29.25 48.87l59.5-.0019c7.625 0 14.62 4.124 18.38 10.75s3.626 14.75-.2493 21.25l-29.25 48.87l29.38 48.1c4 6.5 4.001 14.62 .2506 21.12c-3.75 6.625-10.87 10.75-18.5 10.75l-59.5 .0019l-29.12 48.67c-3.75 6.5-10.62 10.33-18.12 10.46c-7.375 0-14.25-3.874-18-10.25l-29.25-48.87l-59.5 .0019c-7.625 0-14.62-4.124-18.37-10.75S191.3 311.4 195.1 304.9l29.25-48.87L195 207C191.1 200.5 191 192.4 194.8 185.9zM319.1 145.5L302.2 175.1l35.37-.0011L319.1 145.5zM257.5 200.5L220.8 200.5l18.38 30.83L257.5 200.5z" - } - }, - "free": [ - "solid" - ] - }, - "sd-card": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7c2", - "aliases": { - "unicodes": { - "secondary": [ - "10f7c2" - ] - } - }, - "label": "Sd Card", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573311, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M320 0H128L0 128v320c0 35.25 28.75 64 64 64h256c35.25 0 64-28.75 64-64V64C384 28.75 355.3 0 320 0zM160 160H112V64H160V160zM240 160H192V64h48V160zM320 160h-48V64H320V160z" - } - }, - "free": [ - "solid" - ] - }, - "searchengin": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3eb", - "label": "Searchengin", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 460, - 512 - ], - "width": 460, - "height": 512, - "path": "M220.6 130.3l-67.2 28.2V43.2L98.7 233.5l54.7-24.2v130.3l67.2-209.3zm-83.2-96.7l-1.3 4.7-15.2 52.9C80.6 106.7 52 145.8 52 191.5c0 52.3 34.3 95.9 83.4 105.5v53.6C57.5 340.1 0 272.4 0 191.6c0-80.5 59.8-147.2 137.4-158zm311.4 447.2c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1V32.3C254.4 37.4 320 106.8 320 191.6c0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z" - } - }, - "free": [ - "brands" - ] - }, - "section": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e447", - "label": "Section", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573312, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M224.5 337.4c15.66-14.28 26.09-33.12 29.8-55.82c14.46-88.44-64.67-112.4-117-128.2L124.7 149.5C65.67 131.2 61.11 119.4 64.83 96.79c1.531-9.344 5.715-16.19 13.21-21.56c14.74-10.56 39.94-13.87 69.23-9.029c10.74 1.75 24.36 5.686 41.66 12.03c16.58 6 34.98-2.438 41.04-19.06c6.059-16.59-2.467-34.97-19.05-41.06c-21.39-7.842-38.35-12.62-53.28-15.06c-46.47-7.781-88.1-.5313-116.9 20.19C19.46 38.52 5.965 60.39 1.686 86.48C-5.182 128.6 9.839 156 31.47 174.7C15.87 188.1 5.406 207.8 1.686 230.5C-12.59 317.9 67.36 342.7 105.7 354.6l12.99 3.967c64.71 19.56 76.92 29.09 72.42 56.59c-1.279 7.688-4.84 18.75-21.23 26.16c-15.27 6.906-37.01 8.406-61.4 4.469c-16.74-2.656-37.32-10.5-55.49-17.41l-9.773-3.719c-16.52-6.156-34.95 2.25-41.16 18.75c-6.184 16.56 2.186 34.1 18.74 41.19l9.463 3.594c21.05 8 44.94 17.12 68.02 20.75c12.21 2.031 24.14 3.032 35.54 3.032c23.17 0 44.28-4.157 62.4-12.34c31.95-14.44 52.53-40.75 58.02-74.12C261.1 383.6 246.8 356.3 224.5 337.4zM64.83 240.8c3.303-20.28 21.22-28.1 38.09-31.04c.9258 .2891 15.81 4.852 15.81 4.852c64.71 19.56 76.92 29.09 72.39 56.62c-3.291 20.2-21.12 28.07-37.93 31.04c-5.488-1.746-28.49-8.754-28.49-8.754C65.67 275.2 61.11 263.4 64.83 240.8z" - } - }, - "free": [ - "solid" - ] - }, - "seedling": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4d8", - "aliases": { - "names": [ - "sprout" - ], - "unicodes": { - "composite": [ - "1f331" - ], - "secondary": [ - "10f4d8" - ] - } - }, - "label": "Seedling", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573312, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 95.1H0c0 123.8 100.3 224 224 224v128C224 465.6 238.4 480 255.1 480S288 465.6 288 448V320C288 196.3 187.7 95.1 64 95.1zM448 32c-84.25 0-157.4 46.5-195.8 115.3c27.75 30.12 48.25 66.88 59 107.5C424 243.1 512 147.9 512 32H448z" - } - }, - "free": [ - "solid" - ] - }, - "sellcast": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2da", - "label": "Sellcast", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M353.4 32H94.7C42.6 32 0 74.6 0 126.6v258.7C0 437.4 42.6 480 94.7 480h258.7c52.1 0 94.7-42.6 94.7-94.6V126.6c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8 .1 .1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8 .1 .1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z" - } - }, - "free": [ - "brands" - ] - }, - "sellsy": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f213", - "label": "Sellsy", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M539.7 237.3c3.064-12.26 4.29-24.82 4.29-37.38C544 107.4 468.6 32 376.1 32c-77.22 0-144.6 53.01-163 127.8-15.32-13.18-34.93-20.53-55.16-20.53-46.27 0-83.96 37.69-83.96 83.96 0 7.354 .92 15.02 3.065 22.37-42.9 20.23-70.79 63.74-70.79 111.2C6.216 424.8 61.68 480 129.4 480h381.2c67.72 0 123.2-55.16 123.2-123.2 .001-56.38-38.92-106-94.07-119.5zM199.9 401.6c0 8.274-7.048 15.32-15.32 15.32H153.6c-8.274 0-15.32-7.048-15.32-15.32V290.6c0-8.273 7.048-15.32 15.32-15.32h30.95c8.274 0 15.32 7.048 15.32 15.32v110.9zm89.48 0c0 8.274-7.048 15.32-15.32 15.32h-30.95c-8.274 0-15.32-7.048-15.32-15.32V270.1c0-8.274 7.048-15.32 15.32-15.32h30.95c8.274 0 15.32 7.048 15.32 15.32v131.5zm89.48 0c0 8.274-7.047 15.32-15.32 15.32h-30.95c-8.274 0-15.32-7.048-15.32-15.32V238.8c0-8.274 7.048-15.32 15.32-15.32h30.95c8.274 0 15.32 7.048 15.32 15.32v162.7zm87.03 0c0 8.274-7.048 15.32-15.32 15.32h-28.5c-8.274 0-15.32-7.048-15.32-15.32V176.9c0-8.579 7.047-15.63 15.32-15.63h28.5c8.274 0 15.32 7.048 15.32 15.63v224.6z" - } - }, - "free": [ - "brands" - ] - }, - "server": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f233", - "aliases": { - "unicodes": { - "secondary": [ - "10f233" - ] - } - }, - "label": "Server", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573312, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 288H32c-17.62 0-32 14.38-32 32v128c0 17.62 14.38 32 32 32h448c17.62 0 32-14.38 32-32v-128C512 302.4 497.6 288 480 288zM352 408c-13.25 0-24-10.75-24-24s10.75-24 24-24s24 10.75 24 24S365.3 408 352 408zM416 408c-13.25 0-24-10.75-24-24s10.75-24 24-24s24 10.75 24 24S429.3 408 416 408zM480 32H32C14.38 32 0 46.38 0 64v128c0 17.62 14.38 32 32 32h448c17.62 0 32-14.38 32-32V64C512 46.38 497.6 32 480 32zM352 152c-13.25 0-24-10.75-24-24S338.8 104 352 104S376 114.8 376 128S365.3 152 352 152zM416 152c-13.25 0-24-10.75-24-24S402.8 104 416 104S440 114.8 440 128S429.3 152 416 152z" - } - }, - "free": [ - "solid" - ] - }, - "servicestack": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ec", - "label": "Servicestack", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M88 216c81.7 10.2 273.7 102.3 304 232H0c99.5-8.1 184.5-137 88-232zm32-152c32.3 35.6 47.7 83.9 46.4 133.6C249.3 231.3 373.7 321.3 400 448h96C455.3 231.9 222.8 79.5 120 64z" - } - }, - "free": [ - "brands" - ] - }, - "shapes": { - "changes": [ - "5.2.0", - "5.12.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f61f", - "aliases": { - "names": [ - "triangle-circle-square" - ], - "unicodes": { - "secondary": [ - "10f61f" - ] - } - }, - "label": "Shapes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573312, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M411.4 175.5C417.4 185.4 417.5 197.7 411.8 207.8C406.2 217.8 395.5 223.1 384 223.1H192C180.5 223.1 169.8 217.8 164.2 207.8C158.5 197.7 158.6 185.4 164.6 175.5L260.6 15.54C266.3 5.897 276.8 0 288 0C299.2 0 309.7 5.898 315.4 15.54L411.4 175.5zM288 312C288 289.9 305.9 272 328 272H472C494.1 272 512 289.9 512 312V456C512 478.1 494.1 496 472 496H328C305.9 496 288 478.1 288 456V312zM0 384C0 313.3 57.31 256 128 256C198.7 256 256 313.3 256 384C256 454.7 198.7 512 128 512C57.31 512 0 454.7 0 384z" - } - }, - "free": [ - "solid" - ] - }, - "share": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f064", - "aliases": { - "names": [ - "arrow-turn-right", - "mail-forward" - ], - "unicodes": { - "secondary": [ - "10f064" - ] - } - }, - "label": "Share", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573312, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M503.7 226.2l-176 151.1c-15.38 13.3-39.69 2.545-39.69-18.16V272.1C132.9 274.3 66.06 312.8 111.4 457.8c5.031 16.09-14.41 28.56-28.06 18.62C39.59 444.6 0 383.8 0 322.3c0-152.2 127.4-184.4 288-186.3V56.02c0-20.67 24.28-31.46 39.69-18.16l176 151.1C514.8 199.4 514.8 216.6 503.7 226.2z" - } - }, - "free": [ - "solid" - ] - }, - "share-from-square": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f14d", - "aliases": { - "names": [ - "share-square" - ], - "unicodes": { - "composite": [ - "f045" - ], - "secondary": [ - "10f14d" - ] - } - }, - "label": "Share from square", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573312, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M568.9 143.5l-150.9-138.2C404.8-6.773 384 3.039 384 21.84V96C241.2 97.63 128 126.1 128 260.6c0 54.3 35.2 108.1 74.08 136.2c12.14 8.781 29.42-2.238 24.94-16.46C186.7 252.2 256 224 384 223.1v74.2c0 18.82 20.84 28.59 34.02 16.51l150.9-138.2C578.4 167.8 578.4 152.2 568.9 143.5zM416 384c-17.67 0-32 14.33-32 32v31.1l-320-.0013V128h32c17.67 0 32-14.32 32-32S113.7 64 96 64H64C28.65 64 0 92.65 0 128v319.1c0 35.34 28.65 64 64 64l320-.0013c35.35 0 64-28.66 64-64V416C448 398.3 433.7 384 416 384z" - }, - "regular": { - "last_modified": 1658443573114, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M568.5 142.6l-144-135.1c-9.625-9.156-24.81-8.656-33.91 .9687c-9.125 9.625-8.688 24.81 .9687 33.91l100.1 94.56h-163.4C287.5 134.2 249.7 151 221 179.4C192 208.2 176 246.7 176 288v87.1c0 13.25 10.75 23.1 24 23.1S224 389.3 224 376V288c0-28.37 10.94-54.84 30.78-74.5C274.3 194.2 298.9 183 328 184h163.6l-100.1 94.56c-9.656 9.094-10.09 24.28-.9687 33.91c4.719 4.1 11.06 7.531 17.44 7.531c5.906 0 11.84-2.156 16.47-6.562l144-135.1C573.3 172.9 576 166.6 576 160S573.3 147.1 568.5 142.6zM360 384c-13.25 0-24 10.75-24 23.1v47.1c0 4.406-3.594 7.1-8 7.1h-272c-4.406 0-8-3.594-8-7.1V184c0-4.406 3.594-7.1 8-7.1H112c13.25 0 24-10.75 24-23.1s-10.75-23.1-24-23.1H56c-30.88 0-56 25.12-56 55.1v271.1C0 486.9 25.13 512 56 512h272c30.88 0 56-25.12 56-55.1v-47.1C384 394.8 373.3 384 360 384z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "share-nodes": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1e0", - "aliases": { - "names": [ - "share-alt" - ], - "unicodes": { - "secondary": [ - "10f1e0" - ] - } - }, - "label": "Share nodes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573312, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M285.4 197.1L191.3 244.1C191.8 248 191.1 251.1 191.1 256C191.1 260 191.8 263.1 191.3 267.9L285.4 314.9C302.6 298.2 326.1 288 352 288C405 288 448 330.1 448 384C448 437 405 480 352 480C298.1 480 256 437 256 384C256 379.1 256.2 376 256.7 372.1L162.6 325.1C145.4 341.8 121.9 352 96 352C42.98 352 0 309 0 256C0 202.1 42.98 160 96 160C121.9 160 145.4 170.2 162.6 186.9L256.7 139.9C256.2 135.1 256 132 256 128C256 74.98 298.1 32 352 32C405 32 448 74.98 448 128C448 181 405 224 352 224C326.1 224 302.6 213.8 285.4 197.1L285.4 197.1z" - } - }, - "free": [ - "solid" - ] - }, - "sheet-plastic": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e571", - "label": "Sheet Plastic", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573313, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 64C0 28.65 28.65 0 64 0H320C355.3 0 384 28.65 384 64V352H256C238.3 352 224 366.3 224 384V512H64C28.65 512 0 483.3 0 448V64zM171.3 52.69C165.1 46.44 154.9 46.44 148.7 52.69L52.69 148.7C46.44 154.9 46.44 165.1 52.69 171.3C58.93 177.6 69.06 177.6 75.31 171.3L171.3 75.31C177.6 69.07 177.6 58.94 171.3 52.69V52.69zM267.3 107.3C273.6 101.1 273.6 90.93 267.3 84.69C261.1 78.44 250.9 78.44 244.7 84.69L84.69 244.7C78.44 250.9 78.44 261.1 84.69 267.3C90.93 273.6 101.1 273.6 107.3 267.3L267.3 107.3zM384 384L256 512V384H384z" - } - }, - "free": [ - "solid" - ] - }, - "shekel-sign": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f20b", - "aliases": { - "names": [ - "ils", - "shekel", - "sheqel", - "sheqel-sign" - ], - "unicodes": { - "composite": [ - "20aa" - ], - "secondary": [ - "10f20b" - ] - } - }, - "label": "Shekel Sign", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573313, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M192 32C262.7 32 320 89.31 320 160V320C320 337.7 305.7 352 288 352C270.3 352 256 337.7 256 320V160C256 124.7 227.3 96 192 96H64V448C64 465.7 49.67 480 32 480C14.33 480 0 465.7 0 448V64C0 46.33 14.33 32 32 32H192zM160 480C142.3 480 128 465.7 128 448V192C128 174.3 142.3 160 160 160C177.7 160 192 174.3 192 192V416H320C355.3 416 384 387.3 384 352V64C384 46.33 398.3 32 416 32C433.7 32 448 46.33 448 64V352C448 422.7 390.7 480 320 480H160z" - } - }, - "free": [ - "solid" - ] - }, - "shield": { - "changes": [ - "3.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f132", - "aliases": { - "names": [ - "shield-blank" - ], - "unicodes": { - "composite": [ - "1f6e1" - ], - "secondary": [ - "10f132" - ] - } - }, - "label": "shield", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256-.0078C260.7-.0081 265.2 1.008 269.4 2.913L457.7 82.79C479.7 92.12 496.2 113.8 496 139.1C495.5 239.2 454.7 420.7 282.4 503.2C265.7 511.1 246.3 511.1 229.6 503.2C57.25 420.7 16.49 239.2 15.1 139.1C15.87 113.8 32.32 92.12 54.3 82.79L242.7 2.913C246.8 1.008 251.4-.0081 256-.0078V-.0078z" - } - }, - "free": [ - "solid" - ] - }, - "shield-cat": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e572", - "label": "Shield Cat", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573313, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M199.1 272C199.1 263.2 207.2 256 215.1 256C224.8 256 231.1 263.2 231.1 272C231.1 280.8 224.8 288 215.1 288C207.2 288 199.1 280.8 199.1 272zM312 272C312 280.8 304.8 288 296 288C287.2 288 280 280.8 280 272C280 263.2 287.2 256 296 256C304.8 256 312 263.2 312 272zM256.3-.0068C261.9-.0507 267.3 1.386 272.1 4.066L476.5 90.53C487.7 95.27 495.2 105.1 495.9 118.1C501.6 213.6 466.7 421.9 272.5 507.7C267.6 510.5 261.1 512.1 256.3 512C250.5 512.1 244.9 510.5 239.1 507.7C45.8 421.9 10.95 213.6 16.57 118.1C17.28 105.1 24.83 95.27 36.04 90.53L240.4 4.066C245.2 1.386 250.7-.0507 256.3-.0068H256.3zM223.1 208L159.1 144V272C159.1 325 202.1 368 255.1 368C309 368 352 325 352 272V144L288 208H223.1z" - } - }, - "free": [ - "solid" - ] - }, - "shield-dog": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e573", - "label": "Shield Dog", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573313, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 208C288 216.8 280.8 224 272 224C263.2 224 255.1 216.8 255.1 208C255.1 199.2 263.2 192 272 192C280.8 192 288 199.2 288 208zM256.3-.0068C261.9-.0507 267.3 1.386 272.1 4.066L476.5 90.53C487.7 95.27 495.2 105.1 495.9 118.1C501.6 213.6 466.7 421.9 272.5 507.7C267.6 510.5 261.1 512.1 256.3 512C250.5 512.1 244.9 510.5 239.1 507.7C45.8 421.9 10.95 213.6 16.57 118.1C17.28 105.1 24.83 95.27 36.04 90.53L240.4 4.066C245.2 1.386 250.7-.0507 256.3-.0068H256.3zM160.9 286.2L143.1 320L272 384V320H320C364.2 320 400 284.2 400 240V208C400 199.2 392.8 192 384 192H320L312.8 177.7C307.4 166.8 296.3 160 284.2 160H239.1V224C239.1 259.3 211.3 288 175.1 288C170.8 288 165.7 287.4 160.9 286.2H160.9zM143.1 176V224C143.1 241.7 158.3 256 175.1 256C193.7 256 207.1 241.7 207.1 224V160H159.1C151.2 160 143.1 167.2 143.1 176z" - } - }, - "free": [ - "solid" - ] - }, - "shield-halved": { - "changes": [ - "5.0.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3ed", - "aliases": { - "names": [ - "shield-alt" - ], - "unicodes": { - "secondary": [ - "10f3ed" - ] - } - }, - "label": "Shield Halved", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573313, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256-.0078C260.7-.0081 265.2 1.008 269.4 2.913L457.7 82.79C479.7 92.12 496.2 113.8 496 139.1C495.5 239.2 454.7 420.7 282.4 503.2C265.7 511.1 246.3 511.1 229.6 503.2C57.25 420.7 16.49 239.2 15.1 139.1C15.87 113.8 32.32 92.12 54.3 82.79L242.7 2.913C246.8 1.008 251.4-.0081 256-.0078V-.0078zM256 444.8C393.1 378 431.1 230.1 432 141.4L256 66.77L256 444.8z" - } - }, - "free": [ - "solid" - ] - }, - "shield-heart": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e574", - "label": "Shield Heart", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573313, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256.3-.0068C261.9-.0507 267.3 1.386 272.1 4.066L476.5 90.53C487.7 95.27 495.2 105.1 495.9 118.1C501.6 213.6 466.7 421.9 272.5 507.7C267.6 510.5 261.1 512.1 256.3 512C250.5 512.1 244.9 510.5 239.1 507.7C45.8 421.9 10.95 213.6 16.57 118.1C17.28 105.1 24.83 95.27 36.04 90.53L240.4 4.066C245.2 1.386 250.7-.0507 256.3-.0068H256.3zM266.1 363.4L364.2 263.6C392.2 234.7 390.5 186.6 358.1 159.5C331.8 135.8 291.5 140.2 266.1 166.5L256.4 176.1L245.9 166.5C221.4 140.2 180.2 135.8 153 159.5C121.5 186.6 119.8 234.7 147.8 263.6L244.2 363.4C251.2 369.5 260.8 369.5 266.1 363.4V363.4z" - } - }, - "free": [ - "solid" - ] - }, - "shield-virus": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e06c", - "aliases": { - "unicodes": { - "secondary": [ - "10e06c" - ] - } - }, - "label": "Shield Virus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573313, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 255.1c-8.836 0-16 7.162-16 16c0 8.836 7.164 15.1 16 15.1s16-7.163 16-15.1C304 263.2 296.8 255.1 288 255.1zM224 191.1c-8.836 0-16 7.162-16 16c0 8.836 7.164 16 15.1 16s16-7.164 16-16C240 199.2 232.8 191.1 224 191.1zM466.5 83.68l-192-80.01C269.6 1.641 261.3 0 256.1 0C250.7 0 242.5 1.641 237.6 3.672l-192 80.01C27.69 91.07 16 108.6 16 127.1C16 385.2 205.2 512 255.9 512c52.02 0 240.1-128.2 240.1-384C496 108.6 484.3 91.07 466.5 83.68zM384 255.1h-12.12c-19.29 0-32.06 15.78-32.06 32.23c0 7.862 2.918 15.88 9.436 22.4l8.576 8.576c3.125 3.125 4.688 7.218 4.688 11.31c0 8.527-6.865 15.1-16 15.1c-4.094 0-8.188-1.562-11.31-4.688l-8.576-8.576c-6.519-6.519-14.53-9.436-22.4-9.436c-16.45 0-32.23 12.77-32.23 32.06v12.12c0 8.844-7.156 16-16 16s-16-7.156-16-16v-12.12c0-19.29-15.78-32.06-32.23-32.06c-7.862 0-15.87 2.917-22.39 9.436l-8.576 8.576c-3.125 3.125-7.219 4.688-11.31 4.688c-9.139 0-16-7.473-16-15.1c0-4.094 1.562-8.187 4.688-11.31l8.576-8.576c6.519-6.519 9.436-14.53 9.436-22.4c0-16.45-12.77-32.23-32.06-32.23H128c-8.844 0-16-7.156-16-16s7.156-16 16-16h12.12c19.29 0 32.06-15.78 32.06-32.23c0-7.862-2.918-15.88-9.436-22.4L154.2 160.8C151 157.7 149.5 153.6 149.5 149.5c0-8.527 6.865-15.1 16-15.1c4.094 0 8.188 1.562 11.31 4.688L185.4 146.7C191.9 153.3 199.9 156.2 207.8 156.2c16.45 0 32.23-12.77 32.23-32.07V111.1c0-8.844 7.156-16 16-16s16 7.156 16 16v12.12c0 19.29 15.78 32.07 32.23 32.07c7.862 0 15.88-2.917 22.4-9.436l8.576-8.577c3.125-3.125 7.219-4.688 11.31-4.688c9.139 0 16 7.473 16 15.1c0 4.094-1.562 8.187-4.688 11.31l-8.576 8.577c-6.519 6.519-9.436 14.53-9.436 22.4c0 16.45 12.77 32.23 32.06 32.23h12.12c8.844 0 16 7.156 16 16S392.8 255.1 384 255.1z" - } - }, - "free": [ - "solid" - ] - }, - "ship": { - "changes": [ - "4.3.0", - "5.0.0", - "5.10.2", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f21a", - "aliases": { - "unicodes": { - "composite": [ - "1f6a2" - ], - "secondary": [ - "10f21a" - ] - } - }, - "label": "Ship", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M192 32C192 14.33 206.3 0 224 0H352C369.7 0 384 14.33 384 32V64H432C458.5 64 480 85.49 480 112V240L524.4 254.8C547.6 262.5 553.9 292.3 535.9 308.7L434.9 401.4C418.7 410.7 400.2 416.5 384 416.5C364.4 416.5 343.2 408.8 324.8 396.1C302.8 380.6 273.3 380.6 251.2 396.1C234 407.9 213.2 416.5 192 416.5C175.8 416.5 157.3 410.7 141.1 401.3L40.09 308.7C22.1 292.3 28.45 262.5 51.59 254.8L96 239.1V111.1C96 85.49 117.5 63.1 144 63.1H192V32zM160 218.7L267.8 182.7C280.9 178.4 295.1 178.4 308.2 182.7L416 218.7V128H160V218.7zM384 448C410.9 448 439.4 437.2 461.4 421.9L461.5 421.9C473.4 413.4 489.5 414.1 500.7 423.6C515 435.5 533.2 444.6 551.3 448.8C568.5 452.8 579.2 470.1 575.2 487.3C571.2 504.5 553.1 515.2 536.7 511.2C512.2 505.4 491.9 494.6 478.5 486.2C449.5 501.7 417 512 384 512C352.1 512 323.4 502.1 303.6 493.1C297.7 490.5 292.5 487.8 288 485.4C283.5 487.8 278.3 490.5 272.4 493.1C252.6 502.1 223.9 512 192 512C158.1 512 126.5 501.7 97.5 486.2C84.12 494.6 63.79 505.4 39.27 511.2C22.06 515.2 4.853 504.5 .8422 487.3C-3.169 470.1 7.532 452.8 24.74 448.8C42.84 444.6 60.96 435.5 75.31 423.6C86.46 414.1 102.6 413.4 114.5 421.9L114.6 421.9C136.7 437.2 165.1 448 192 448C219.5 448 247 437.4 269.5 421.9C280.6 414 295.4 414 306.5 421.9C328.1 437.4 356.5 448 384 448H384z" - } - }, - "free": [ - "solid" - ] - }, - "shirt": { - "changes": [ - "5.0.13", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f553", - "aliases": { - "names": [ - "t-shirt", - "tshirt" - ], - "unicodes": { - "composite": [ - "1f455" - ], - "secondary": [ - "10f553" - ] - } - }, - "label": "T-Shirt", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 162.8c0 6.917-2.293 13.88-7.012 19.7l-49.96 61.63c-6.32 7.796-15.62 11.85-25.01 11.85c-7.01 0-14.07-2.262-19.97-6.919L480 203.3V464c0 26.51-21.49 48-48 48H208C181.5 512 160 490.5 160 464V203.3L101.1 249.1C96.05 253.7 88.99 255.1 81.98 255.1c-9.388 0-18.69-4.057-25.01-11.85L7.012 182.5C2.292 176.7-.0003 169.7-.0003 162.8c0-9.262 4.111-18.44 12.01-24.68l135-106.6C159.8 21.49 175.7 16 191.1 16H225.6C233.3 61.36 272.5 96 320 96s86.73-34.64 94.39-80h33.6c16.35 0 32.22 5.49 44.99 15.57l135 106.6C635.9 144.4 640 153.6 640 162.8z" - } - }, - "free": [ - "solid" - ] - }, - "shirtsinbulk": { - "changes": [ - "4.3.0", - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f214", - "label": "Shirts in Bulk", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4zM60.4 392.8L91 406.2l4.4-9.6-30.6-13.7zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9zM170 46.6h-33.5v10.5H170zm-47.2 0H89.2v10.5h33.5zm-47.3 0H42.3v10.5h33.3zm141.5 0h-33.2v10.5H217zm94.5 0H278v10.5h33.5zm47.3 0h-33.5v10.5h33.5zm-94.6 0H231v10.5h33.2zm141.5 0h-33.3v10.5h33.3zM52.8 351.1H42v33.5h10.8zm70-215.9H89.2v10.5h33.5zm-70 10.6h22.8v-10.5H42v33.5h10.8zm168.9 228.6c50.5 0 91.3-40.8 91.3-91.3 0-50.2-40.8-91.3-91.3-91.3-50.2 0-91.3 41.1-91.3 91.3 0 50.5 41.1 91.3 91.3 91.3zm-48.2-111.1c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9h-.9c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4h.9c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4H42V212h10.8zm342.4 206.2H406v-33.5h-10.8zM52.8 307.9H42v33.5h10.8zM0 3.7v406l221.7 98.6L448 409.7V3.7zm418.8 387.1L222 476.5 29.2 390.8V120.7h389.7v270.1zm0-299.3H29.2V32.9h389.7v58.6zm-366 130.1H42v33.5h10.8zm0 43.2H42v33.5h10.8zM170 135.2h-33.5v10.5H170zm225.2 163.1H406v-33.5h-10.8zm0-43.2H406v-33.5h-10.8zM217 135.2h-33.2v10.5H217zM395.2 212H406v-33.5h-10.8zm0 129.5H406V308h-10.8zm-131-206.3H231v10.5h33.2zm47.3 0H278v10.5h33.5zm83.7 33.6H406v-33.5h-33.5v10.5h22.8zm-36.4-33.6h-33.5v10.5h33.5z" - } - }, - "free": [ - "brands" - ] - }, - "shoe-prints": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f54b", - "aliases": { - "unicodes": { - "secondary": [ - "10f54b" - ] - } - }, - "label": "Shoe Prints", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M192 159.1L224 159.1V32L192 32c-35.38 0-64 28.62-64 63.1S156.6 159.1 192 159.1zM0 415.1c0 35.37 28.62 64.01 64 64.01l32-.0103v-127.1l-32-.0005C28.62 351.1 0 380.6 0 415.1zM337.5 287.1c-35 0-76.25 13.12-104.8 31.1C208 336.4 188.3 351.1 128 351.1v128l57.5 15.98c26.25 7.25 53 13.13 80.38 15.01c32.63 2.375 65.63 .743 97.5-6.132C472.9 481.2 512 429.2 512 383.1C512 319.1 427.9 287.1 337.5 287.1zM491.4 7.252c-31.88-6.875-64.88-8.625-97.5-6.25C366.5 2.877 339.8 8.752 313.5 16L256 32V159.1c60.25 0 80 15.62 104.8 31.1c28.5 18.87 69.75 31.1 104.8 31.1C555.9 223.1 640 191.1 640 127.1C640 82.75 600.9 30.75 491.4 7.252z" - } - }, - "free": [ - "solid" - ] - }, - "shop": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f54f", - "aliases": { - "names": [ - "store-alt" - ], - "unicodes": { - "secondary": [ - "10f54f" - ] - } - }, - "label": "Shop", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 155.2C0 147.9 2.153 140.8 6.188 134.7L81.75 21.37C90.65 8.021 105.6 0 121.7 0H518.3C534.4 0 549.3 8.021 558.2 21.37L633.8 134.7C637.8 140.8 640 147.9 640 155.2C640 175.5 623.5 192 603.2 192H36.84C16.5 192 .0003 175.5 .0003 155.2H0zM64 224H128V384H320V224H384V464C384 490.5 362.5 512 336 512H112C85.49 512 64 490.5 64 464V224zM512 224H576V480C576 497.7 561.7 512 544 512C526.3 512 512 497.7 512 480V224z" - } - }, - "free": [ - "solid" - ] - }, - "shop-lock": { - "changes": [ - "6.0.0", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4a5", - "label": "Shop Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 155.2C0 147.9 2.153 140.8 6.188 134.7L81.75 21.37C90.65 8.021 105.6 0 121.7 0H518.3C534.4 0 549.3 8.021 558.2 21.37L633.8 134.7C637.8 140.8 640 147.9 640 155.2C640 174.5 625.2 190.3 606.3 191.9C586.1 172.2 558.5 160 528 160C497.5 160 469.8 172.2 449.6 192H36.84C16.5 192 .0003 175.5 .0003 155.2H0zM384 224V464C384 490.5 362.5 512 336 512H112C85.49 512 64 490.5 64 464V224H128V384H320V224H384zM528 192C572.2 192 608 227.8 608 272V320C625.7 320 640 334.3 640 352V480C640 497.7 625.7 512 608 512H448C430.3 512 416 497.7 416 480V352C416 334.3 430.3 320 448 320V272C448 227.8 483.8 192 528 192zM528 240C510.3 240 496 254.3 496 272V320H560V272C560 254.3 545.7 240 528 240z" - } - }, - "free": [ - "solid" - ] - }, - "shop-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e070", - "aliases": { - "names": [ - "store-alt-slash" - ], - "unicodes": { - "secondary": [ - "10e070" - ] - } - }, - "label": "Shop slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M74.13 32.8L81.75 21.38C90.65 8.022 105.6 .001 121.7 .001H518.3C534.4 .001 549.3 8.022 558.2 21.38L633.8 134.7C637.8 140.8 640 147.9 640 155.2C640 175.5 623.5 192 603.2 192H277.3L320 225.5V224H384V275.7L512 375.1V224H576V426.2L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L74.13 32.8zM0 155.2C0 147.9 2.153 140.8 6.188 134.7L20.98 112.5L121.8 192H36.84C16.5 192 .0003 175.5 .0003 155.2H0zM320 384V348.1L384 398.5V464C384 490.5 362.5 512 336 512H112C85.49 512 64 490.5 64 464V224H128V384H320z" - } - }, - "free": [ - "solid" - ] - }, - "shopify": { - "changes": [ - "5.12.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e057", - "label": "Shopify", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M388.3 104.1a4.66 4.66 0 0 0 -4.4-4c-2 0-37.23-.8-37.23-.8s-21.61-20.82-29.62-28.83V503.2L442.8 472S388.7 106.5 388.3 104.1zM288.6 70.47a116.7 116.7 0 0 0 -7.21-17.61C271 32.85 255.4 22 237 22a15 15 0 0 0 -4 .4c-.4-.8-1.2-1.2-1.6-2C223.4 11.63 213 7.63 200.6 8c-24 .8-48 18-67.25 48.83-13.61 21.62-24 48.84-26.82 70.06-27.62 8.4-46.83 14.41-47.23 14.81-14 4.4-14.41 4.8-16 18-1.2 10-38 291.8-38 291.8L307.9 504V65.67a41.66 41.66 0 0 0 -4.4 .4S297.9 67.67 288.6 70.47zM233.4 87.69c-16 4.8-33.63 10.4-50.84 15.61 4.8-18.82 14.41-37.63 25.62-50 4.4-4.4 10.41-9.61 17.21-12.81C232.2 54.86 233.8 74.48 233.4 87.69zM200.6 24.44A27.49 27.49 0 0 1 215 28c-6.4 3.2-12.81 8.41-18.81 14.41-15.21 16.42-26.82 42-31.62 66.45-14.42 4.41-28.83 8.81-42 12.81C131.3 83.28 163.8 25.24 200.6 24.44zM154.1 244.6c1.6 25.61 69.25 31.22 73.25 91.66 2.8 47.64-25.22 80.06-65.65 82.47-48.83 3.2-75.65-25.62-75.65-25.62l10.4-44s26.82 20.42 48.44 18.82c14-.8 19.22-12.41 18.81-20.42-2-33.62-57.24-31.62-60.84-86.86-3.2-46.44 27.22-93.27 94.47-97.68 26-1.6 39.23 4.81 39.23 4.81L221.4 225.4s-17.21-8-37.63-6.4C154.1 221 153.8 239.8 154.1 244.6zM249.4 82.88c0-12-1.6-29.22-7.21-43.63 18.42 3.6 27.22 24 31.23 36.43Q262.6 78.68 249.4 82.88z" - } - }, - "free": [ - "brands" - ] - }, - "shopware": { - "changes": [ - "5.1.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5b5", - "label": "Shopware", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M403.5 455.4A246.2 246.2 0 0 1 256 504C118.8 504 8 393 8 256 8 118.8 119 8 256 8a247.4 247.4 0 0 1 165.7 63.5 3.57 3.57 0 0 1 -2.86 6.18A418.6 418.6 0 0 0 362.1 74c-129.4 0-222.4 53.47-222.4 155.4 0 109 92.13 145.9 176.8 178.7 33.64 13 65.4 25.36 87 41.59a3.58 3.58 0 0 1 0 5.72zM503 233.1a3.64 3.64 0 0 0 -1.27-2.44c-51.76-43-93.62-60.48-144.5-60.48-84.13 0-80.25 52.17-80.25 53.63 0 42.6 52.06 62 112.3 84.49 31.07 11.59 63.19 23.57 92.68 39.93a3.57 3.57 0 0 0 5-1.82A249 249 0 0 0 503 233.1z" - } - }, - "free": [ - "brands" - ] - }, - "shower": { - "changes": [ - "4.7.0", - "5.0.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2cc", - "aliases": { - "unicodes": { - "composite": [ - "1f6bf" - ], - "secondary": [ - "10f2cc" - ] - } - }, - "label": "Shower", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 384c-17.67 0-32 14.33-32 32c0 17.67 14.33 32 32 32s32-14.33 32-32C320 398.3 305.7 384 288 384zM416 256c-17.67 0-32 14.33-32 32c0 17.67 14.33 32 32 32s32-14.33 32-32C448 270.3 433.7 256 416 256zM480 192c-17.67 0-32 14.33-32 32c0 17.67 14.33 32 32 32s32-14.33 32-32C512 206.3 497.7 192 480 192zM288 320c0-17.67-14.33-32-32-32s-32 14.33-32 32c0 17.67 14.33 32 32 32S288 337.7 288 320zM320 224c-17.67 0-32 14.33-32 32c0 17.67 14.33 32 32 32s32-14.33 32-32C352 238.3 337.7 224 320 224zM384 224c17.67 0 32-14.33 32-32c0-17.67-14.33-32-32-32s-32 14.33-32 32C352 209.7 366.3 224 384 224zM352 320c-17.67 0-32 14.33-32 32c0 17.67 14.33 32 32 32s32-14.33 32-32C384 334.3 369.7 320 352 320zM347.3 91.31l-11.31-11.31c-6.248-6.248-16.38-6.248-22.63 0l-6.631 6.631c-35.15-26.29-81.81-29.16-119.6-8.779L170.5 61.25C132.2 22.95 63.65 18.33 21.98 71.16C7.027 90.11 0 114.3 0 138.4V464C0 472.8 7.164 480 16 480h32C56.84 480 64 472.8 64 464V131.9c0-19.78 16.09-35.87 35.88-35.87c9.438 0 18.69 3.828 25.38 10.5l16.61 16.61C121.5 160.9 124.3 207.6 150.6 242.7L144 249.4c-6.248 6.248-6.248 16.38 0 22.63l11.31 11.31c6.248 6.25 16.38 6.25 22.63 0l169.4-169.4C353.6 107.7 353.6 97.56 347.3 91.31z" - } - }, - "free": [ - "solid" - ] - }, - "shrimp": { - "changes": [ - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e448", - "aliases": { - "unicodes": { - "composite": [ - "1f990" - ] - } - }, - "label": "Shrimp", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 320V128H64C46.34 128 32 113.6 32 96s14.34-32 32-32h368c8.844 0 16-7.156 16-16s-7.156-16-16-16H64C28.72 32 0 60.7 0 96s28.72 64 64 64h2.879c15.26 90.77 94.01 160 189.1 160H288zM192 216c-13.25 0-24-10.75-24-24c0-13.26 10.75-24 24-24s24 10.74 24 24C216 205.3 205.3 216 192 216zM225.6 399.4c-4.75 12.36 1.406 26.25 13.78 31.02l5.688 2.188C233.3 434.1 224 443.8 224 456c0 13.25 10.75 24 24 24h72v-70.03l-63.38-24.38C244.3 380.9 230.4 386.1 225.6 399.4zM511.2 286.7c-.5488-5.754-2.201-11.1-3.314-16.65l-124.6 90.62c.3711 2.404 .7383 4.814 .7383 7.322c0 1.836-.3379 3.576-.5391 5.357l90.15 40.06C500.8 379.2 515.8 334.8 511.2 286.7zM352 413.1v66.08c37.23-3.363 71.04-18.3 97.94-41.21l-80.34-35.71C364.7 407.1 358.6 410.7 352 413.1zM497.9 237.7C470.1 172.4 402.8 128 328.4 128h-8.436v192h16c12.28 0 23.36 4.748 31.85 12.33L497.9 237.7z" - } - }, - "free": [ - "solid" - ] - }, - "shuffle": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f074", - "aliases": { - "names": [ - "random" - ], - "unicodes": { - "composite": [ - "1f500" - ], - "secondary": [ - "10f074" - ] - } - }, - "label": "Shuffle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573314, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M424.1 287c-15.13-15.12-40.1-4.426-40.1 16.97V352H336L153.6 108.8C147.6 100.8 138.1 96 128 96H32C14.31 96 0 110.3 0 128s14.31 32 32 32h80l182.4 243.2C300.4 411.3 309.9 416 320 416h63.97v47.94c0 21.39 25.86 32.12 40.99 17l79.1-79.98c9.387-9.387 9.387-24.59 0-33.97L424.1 287zM336 160h47.97v48.03c0 21.39 25.87 32.09 40.1 16.97l79.1-79.98c9.387-9.391 9.385-24.59-.0013-33.97l-79.1-79.98c-15.13-15.12-40.99-4.391-40.99 17V96H320c-10.06 0-19.56 4.75-25.59 12.81L254 162.7L293.1 216L336 160zM112 352H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h96c10.06 0 19.56-4.75 25.59-12.81l40.4-53.87L154 296L112 352z" - } - }, - "free": [ - "solid" - ] - }, - "shuttle-space": { - "changes": [ - "4.1.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f197", - "aliases": { - "names": [ - "space-shuttle" - ], - "unicodes": { - "secondary": [ - "10f197" - ] - } - }, - "label": "Shuttle space", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573315, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M129.1 480H128V384H352L245.2 448.1C210.4 468.1 170.6 480 129.1 480zM352 128H128V32H129.1C170.6 32 210.4 43.03 245.2 63.92L352 128zM104 128C130.2 128 153.4 140.6 168 160H456C525.3 160 591 182.7 635.2 241.6C641.6 250.1 641.6 261.9 635.2 270.4C591 329.3 525.3 352 456 352H168C153.4 371.4 130.2 384 104 384H96V480H80C53.49 480 32 458.5 32 432V384H40C17.91 384 0 366.1 0 344V168C0 145.9 17.89 128 39.96 128H32V80C32 53.49 53.49 32 80 32H96V128H104zM476.4 208C473.1 208 472 209.1 472 212.4V299.6C472 302 473.1 304 476.4 304C496.1 304 512 288.1 512 268.4V243.6C512 223.9 496.1 208 476.4 208z" - } - }, - "free": [ - "solid" - ] - }, - "sign-hanging": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4d9", - "aliases": { - "names": [ - "sign" - ], - "unicodes": { - "secondary": [ - "10f4d9" - ] - } - }, - "label": "Sign hanging", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573315, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 0C113.7 0 128 14.33 128 32V64H480C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H128V480C128 497.7 113.7 512 96 512C78.33 512 64 497.7 64 480V128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H64V32C64 14.33 78.33 0 96 0zM448 160C465.7 160 480 174.3 480 192V352C480 369.7 465.7 384 448 384H192C174.3 384 160 369.7 160 352V192C160 174.3 174.3 160 192 160H448z" - } - }, - "free": [ - "solid" - ] - }, - "signal": { - "changes": [ - "1.0.0", - "5.0.0", - "5.3.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f012", - "aliases": { - "names": [ - "signal-5", - "signal-perfect" - ], - "unicodes": { - "composite": [ - "1f4f6" - ], - "secondary": [ - "10f012" - ] - } - }, - "label": "signal", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M544 0c-17.67 0-32 14.33-32 31.1V480C512 497.7 526.3 512 544 512s32-14.33 32-31.1V31.1C576 14.33 561.7 0 544 0zM160 288C142.3 288 128 302.3 128 319.1v160C128 497.7 142.3 512 160 512s32-14.33 32-31.1V319.1C192 302.3 177.7 288 160 288zM32 384C14.33 384 0 398.3 0 415.1v64C0 497.7 14.33 512 31.1 512S64 497.7 64 480V415.1C64 398.3 49.67 384 32 384zM416 96c-17.67 0-32 14.33-32 31.1V480C384 497.7 398.3 512 416 512s32-14.33 32-31.1V127.1C448 110.3 433.7 96 416 96zM288 192C270.3 192 256 206.3 256 223.1v256C256 497.7 270.3 512 288 512s32-14.33 32-31.1V223.1C320 206.3 305.7 192 288 192z" - } - }, - "free": [ - "solid" - ] - }, - "signature": { - "changes": [ - "5.1.0", - "5.6.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5b7", - "aliases": { - "unicodes": { - "secondary": [ - "10f5b7" - ] - } - }, - "label": "Signature", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M192 160C192 177.7 177.7 192 160 192C142.3 192 128 177.7 128 160V128C128 74.98 170.1 32 224 32C277 32 320 74.98 320 128V135.8C320 156.6 318.8 177.4 316.4 198.1L438.8 161.3C450.2 157.9 462.6 161.1 470.1 169.7C479.3 178.3 482.1 190.8 478.4 202.1L460.4 255.1H544C561.7 255.1 576 270.3 576 287.1C576 305.7 561.7 319.1 544 319.1H416C405.7 319.1 396.1 315.1 390 306.7C384 298.4 382.4 287.6 385.6 277.9L398.1 240.4L303.7 268.7C291.9 321.5 272.2 372.2 245.3 419.2L231.4 443.5C218.5 466.1 194.5 480 168.5 480C128.5 480 95.1 447.5 95.1 407.5V335.6C95.1 293.2 123.8 255.8 164.4 243.7L248.8 218.3C253.6 191.1 255.1 163.5 255.1 135.8V128C255.1 110.3 241.7 96 223.1 96C206.3 96 191.1 110.3 191.1 128L192 160zM160 335.6V407.5C160 412.2 163.8 416 168.5 416C171.5 416 174.4 414.4 175.9 411.7L189.8 387.4C207.3 356.6 221.4 324.1 231.8 290.3L182.8 304.1C169.3 309 160 321.5 160 335.6V335.6zM24 368H64V407.5C64 410.4 64.11 413.2 64.34 416H24C10.75 416 0 405.3 0 392C0 378.7 10.75 368 24 368zM616 416H283.5C291.7 400.3 299.2 384.3 305.9 368H616C629.3 368 640 378.7 640 392C640 405.3 629.3 416 616 416z" - } - }, - "free": [ - "solid" - ] - }, - "signs-post": { - "changes": [ - "4.4.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f277", - "aliases": { - "names": [ - "map-signs" - ], - "unicodes": { - "secondary": [ - "10f277" - ] - } - }, - "label": "Signs post", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M223.1 32C223.1 14.33 238.3 0 255.1 0C273.7 0 288 14.33 288 32H441.4C445.6 32 449.7 33.69 452.7 36.69L500.7 84.69C506.9 90.93 506.9 101.1 500.7 107.3L452.7 155.3C449.7 158.3 445.6 160 441.4 160H63.1C46.33 160 31.1 145.7 31.1 128V64C31.1 46.33 46.33 32 63.1 32L223.1 32zM480 320C480 337.7 465.7 352 448 352H70.63C66.38 352 62.31 350.3 59.31 347.3L11.31 299.3C5.065 293.1 5.065 282.9 11.31 276.7L59.31 228.7C62.31 225.7 66.38 223.1 70.63 223.1H223.1V191.1H288V223.1H448C465.7 223.1 480 238.3 480 255.1V320zM255.1 512C238.3 512 223.1 497.7 223.1 480V384H288V480C288 497.7 273.7 512 255.1 512z" - } - }, - "free": [ - "solid" - ] - }, - "sim-card": { - "changes": [ - "5.6.0", - "5.8.2", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7c4", - "aliases": { - "unicodes": { - "secondary": [ - "10f7c4" - ] - } - }, - "label": "SIM Card", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 64v384c0 35.25 28.75 64 64 64h256c35.25 0 64-28.75 64-64V128l-128-128H64C28.75 0 0 28.75 0 64zM224 256H160V192h64V256zM320 256h-64V192h32c17.75 0 32 14.25 32 32V256zM256 384h64v32c0 17.75-14.25 32-32 32h-32V384zM160 384h64v64H160V384zM64 384h64v64H96c-17.75 0-32-14.25-32-32V384zM64 288h256v64H64V288zM64 224c0-17.75 14.25-32 32-32h32v64H64V224z" - } - }, - "free": [ - "solid" - ] - }, - "simplybuilt": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f215", - "label": "SimplyBuilt", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M481.2 64h-106c-14.5 0-26.6 11.8-26.6 26.3v39.6H163.3V90.3c0-14.5-12-26.3-26.6-26.3h-106C16.1 64 4.3 75.8 4.3 90.3v331.4c0 14.5 11.8 26.3 26.6 26.3h450.4c14.8 0 26.6-11.8 26.6-26.3V90.3c-.2-14.5-12-26.3-26.7-26.3zM149.8 355.8c-36.6 0-66.4-29.7-66.4-66.4 0-36.9 29.7-66.6 66.4-66.6 36.9 0 66.6 29.7 66.6 66.6 0 36.7-29.7 66.4-66.6 66.4zm212.4 0c-36.9 0-66.6-29.7-66.6-66.6 0-36.6 29.7-66.4 66.6-66.4 36.6 0 66.4 29.7 66.4 66.4 0 36.9-29.8 66.6-66.4 66.6z" - } - }, - "free": [ - "brands" - ] - }, - "sink": { - "changes": [ - "5.13.0", - "5.13.1", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e06d", - "aliases": { - "unicodes": { - "secondary": [ - "10e06d" - ] - } - }, - "label": "Sink", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M496 288h-96V256l64 .0002c8.838 0 16-7.164 16-15.1v-15.1c0-8.838-7.162-16-16-16L384 208c-17.67 0-32 14.33-32 32v47.1l-64 .0005v-192c0-17.64 14.36-32 32-32s32 14.36 32 32v16c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16v-16c0-59.2-53.85-106-115.1-94.14C255.3 10.71 224 53.36 224 99.79v188.2L160 288V240c0-17.67-14.33-32-32-32L48 208c-8.836 0-16 7.162-16 16v15.1C32 248.8 39.16 256 48 256l64-.0002V288h-96c-8.836 0-16 7.164-16 16v32c0 8.836 7.164 16 16 16h480c8.836 0 16-7.164 16-16V304C512 295.2 504.8 288 496 288zM32 416c0 53.02 42.98 96 96 96h256c53.02 0 96-42.98 96-96v-32H32V416z" - } - }, - "free": [ - "solid" - ] - }, - "sistrix": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3ee", - "label": "SISTRIX", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9C74.7 32 0 107.8 0 200.9s74.7 168.9 166.5 168.9c39.8 0 76.3-14.2 105-37.9l146 148.1 30.5-31zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71s128.1 58.3 128.1 129.9-57.4 129.9-128.1 129.9z" - } - }, - "free": [ - "brands" - ] - }, - "sitemap": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0e8", - "aliases": { - "unicodes": { - "secondary": [ - "10f0e8" - ] - } - }, - "label": "Sitemap", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M208 80C208 53.49 229.5 32 256 32H320C346.5 32 368 53.49 368 80V144C368 170.5 346.5 192 320 192H312V232H464C494.9 232 520 257.1 520 288V320H528C554.5 320 576 341.5 576 368V432C576 458.5 554.5 480 528 480H464C437.5 480 416 458.5 416 432V368C416 341.5 437.5 320 464 320H472V288C472 283.6 468.4 280 464 280H312V320H320C346.5 320 368 341.5 368 368V432C368 458.5 346.5 480 320 480H256C229.5 480 208 458.5 208 432V368C208 341.5 229.5 320 256 320H264V280H112C107.6 280 104 283.6 104 288V320H112C138.5 320 160 341.5 160 368V432C160 458.5 138.5 480 112 480H48C21.49 480 0 458.5 0 432V368C0 341.5 21.49 320 48 320H56V288C56 257.1 81.07 232 112 232H264V192H256C229.5 192 208 170.5 208 144V80z" - } - }, - "free": [ - "solid" - ] - }, - "sith": { - "changes": [ - "5.0.12" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f512", - "label": "Sith", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 32l69.71 118.8-58.86-11.52 69.84 91.03a146.7 146.7 0 0 0 0 51.45l-69.84 91.03 58.86-11.52L0 480l118.8-69.71-11.52 58.86 91.03-69.84c17.02 3.04 34.47 3.04 51.48 0l91.03 69.84-11.52-58.86L448 480l-69.71-118.8 58.86 11.52-69.84-91.03c3.03-17.01 3.04-34.44 0-51.45l69.84-91.03-58.86 11.52L448 32l-118.8 69.71 11.52-58.9-91.06 69.87c-8.5-1.52-17.1-2.29-25.71-2.29s-17.21 .78-25.71 2.29l-91.06-69.87 11.52 58.9L0 32zm224 99.78c31.8 0 63.6 12.12 87.85 36.37 48.5 48.5 48.49 127.2 0 175.7s-127.2 48.46-175.7-.03c-48.5-48.5-48.49-127.2 0-175.7 24.24-24.25 56.05-36.34 87.85-36.34zm0 36.66c-22.42 0-44.83 8.52-61.92 25.61-34.18 34.18-34.19 89.68 0 123.9s89.65 34.18 123.8 0c34.18-34.18 34.19-89.68 0-123.9-17.09-17.09-39.5-25.61-61.92-25.61z" - } - }, - "free": [ - "brands" - ] - }, - "sitrox": { - "changes": [ - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e44a", - "label": "Sitrox", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M212.4 .0085V0H448V128H64C64 57.6 141.8 .4753 212.4 .0085zM237.3 192V192C307.1 192.5 384 249.6 384 320H210.8V319.1C140.9 319.6 64 262.4 64 192H237.3zM235.6 511.1C306.3 511.5 384 454.4 384 384H0V512H235.6V511.1z" - } - }, - "free": [ - "brands" - ] - }, - "sketch": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7c6", - "label": "Sketch", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572493, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M27.5 162.2L9 187.1h90.5l6.9-130.7-78.9 105.8zM396.3 45.7L267.7 32l135.7 147.2-7.1-133.5zM112.2 218.3l-11.2-22H9.9L234.8 458zm2-31.2h284l-81.5-88.5L256.3 33zm297.3 9.1L277.6 458l224.8-261.7h-90.9zM415.4 69L406 56.4l.9 17.3 6.1 113.4h90.3zM113.5 93.5l-4.6 85.6L244.7 32 116.1 45.7zm287.7 102.7h-290l42.4 82.9L256.3 480l144.9-283.8z" - } - }, - "free": [ - "brands" - ] - }, - "skull": { - "changes": [ - "5.0.13", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f54c", - "aliases": { - "unicodes": { - "composite": [ - "1f480" - ], - "secondary": [ - "10f54c" - ] - } - }, - "label": "Skull", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 400V464C416 490.5 394.5 512 368 512H320V464C320 455.2 312.8 448 304 448C295.2 448 288 455.2 288 464V512H224V464C224 455.2 216.8 448 208 448C199.2 448 192 455.2 192 464V512H144C117.5 512 96 490.5 96 464V400C96 399.6 96 399.3 96.01 398.9C37.48 357.8 0 294.7 0 224C0 100.3 114.6 0 256 0C397.4 0 512 100.3 512 224C512 294.7 474.5 357.8 415.1 398.9C415.1 399.3 416 399.6 416 400V400zM160 192C124.7 192 96 220.7 96 256C96 291.3 124.7 320 160 320C195.3 320 224 291.3 224 256C224 220.7 195.3 192 160 192zM352 320C387.3 320 416 291.3 416 256C416 220.7 387.3 192 352 192C316.7 192 288 220.7 288 256C288 291.3 316.7 320 352 320z" - } - }, - "free": [ - "solid" - ] - }, - "skull-crossbones": { - "changes": [ - "5.4.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f714", - "aliases": { - "unicodes": { - "composite": [ - "1f571", - "2620" - ], - "secondary": [ - "10f714" - ] - } - }, - "label": "Skull & Crossbones", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573316, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M368 128C368 172.4 342.6 211.5 304 234.4V256C304 273.7 289.7 288 272 288H175.1C158.3 288 143.1 273.7 143.1 256V234.4C105.4 211.5 79.1 172.4 79.1 128C79.1 57.31 144.5 0 223.1 0C303.5 0 368 57.31 368 128V128zM167.1 176C185.7 176 199.1 161.7 199.1 144C199.1 126.3 185.7 112 167.1 112C150.3 112 135.1 126.3 135.1 144C135.1 161.7 150.3 176 167.1 176zM280 112C262.3 112 248 126.3 248 144C248 161.7 262.3 176 280 176C297.7 176 312 161.7 312 144C312 126.3 297.7 112 280 112zM3.378 273.7C11.28 257.9 30.5 251.5 46.31 259.4L223.1 348.2L401.7 259.4C417.5 251.5 436.7 257.9 444.6 273.7C452.5 289.5 446.1 308.7 430.3 316.6L295.6 384L430.3 451.4C446.1 459.3 452.5 478.5 444.6 494.3C436.7 510.1 417.5 516.5 401.7 508.6L223.1 419.8L46.31 508.6C30.5 516.5 11.28 510.1 3.378 494.3C-4.526 478.5 1.881 459.3 17.69 451.4L152.4 384L17.69 316.6C1.881 308.7-4.526 289.5 3.378 273.7V273.7z" - } - }, - "free": [ - "solid" - ] - }, - "skyatlas": { - "changes": [ - "4.3.0", - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f216", - "label": "skyatlas", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4 .1-154-59-154-144.9s67.5-149.1 152.8-149.1c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z" - } - }, - "free": [ - "brands" - ] - }, - "skype": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f17e", - "label": "Skype", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7C161.3 40.7 137.7 32 112 32 50.2 32 0 82.2 0 144c0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zm-194.6 91.5c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z" - } - }, - "free": [ - "brands" - ] - }, - "slack": { - "changes": [ - "4.1.0", - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f198", - "aliases": { - "names": [ - "slack-hash" - ], - "unicodes": { - "composite": [ - "f3ef" - ] - } - }, - "label": "Slack Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M94.12 315.1c0 25.9-21.16 47.06-47.06 47.06S0 341 0 315.1c0-25.9 21.16-47.06 47.06-47.06h47.06v47.06zm23.72 0c0-25.9 21.16-47.06 47.06-47.06s47.06 21.16 47.06 47.06v117.8c0 25.9-21.16 47.06-47.06 47.06s-47.06-21.16-47.06-47.06V315.1zm47.06-188.1c-25.9 0-47.06-21.16-47.06-47.06S139 32 164.9 32s47.06 21.16 47.06 47.06v47.06H164.9zm0 23.72c25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06H47.06C21.16 243.1 0 222.8 0 196.9s21.16-47.06 47.06-47.06H164.9zm188.1 47.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06s-21.16 47.06-47.06 47.06h-47.06V196.9zm-23.72 0c0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06V79.06c0-25.9 21.16-47.06 47.06-47.06 25.9 0 47.06 21.16 47.06 47.06V196.9zM283.1 385.9c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06-25.9 0-47.06-21.16-47.06-47.06v-47.06h47.06zm0-23.72c-25.9 0-47.06-21.16-47.06-47.06 0-25.9 21.16-47.06 47.06-47.06h117.8c25.9 0 47.06 21.16 47.06 47.06 0 25.9-21.16 47.06-47.06 47.06H283.1z" - } - }, - "free": [ - "brands" - ] - }, - "slash": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f715", - "aliases": { - "unicodes": { - "secondary": [ - "10f715" - ] - } - }, - "label": "Slash", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573317, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196V9.196z" - } - }, - "free": [ - "solid" - ] - }, - "sleigh": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7cc", - "aliases": { - "unicodes": { - "secondary": [ - "10f7cc" - ] - } - }, - "label": "Sleigh", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573317, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M63.1 32C66.31 32 68.56 32.24 70.74 32.71C124.1 37.61 174.2 67.59 203.4 114.3L207.7 121.1C247.7 185.1 317.8 224 393.3 224C423.5 224 448 199.5 448 169.3V128C448 110.3 462.3 96 480 96H544C561.7 96 576 110.3 576 128C576 145.7 561.7 160 544 160V256C544 309 501 352 448 352V384H384V352H192V384H128V352C74.98 352 32 309 32 256V96C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H63.1zM640 392C640 440.6 600.6 480 552 480H63.1C46.33 480 31.1 465.7 31.1 448C31.1 430.3 46.33 416 63.1 416H552C565.3 416 576 405.3 576 392V384C576 366.3 590.3 352 608 352C625.7 352 640 366.3 640 384V392z" - } - }, - "free": [ - "solid" - ] - }, - "sliders": { - "changes": [ - "4.1.0", - "5.0.0", - "5.0.11", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1de", - "aliases": { - "names": [ - "sliders-h" - ], - "unicodes": { - "secondary": [ - "10f1de" - ] - } - }, - "label": "Sliders", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573317, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 416C0 398.3 14.33 384 32 384H86.66C99 355.7 127.2 336 160 336C192.8 336 220.1 355.7 233.3 384H480C497.7 384 512 398.3 512 416C512 433.7 497.7 448 480 448H233.3C220.1 476.3 192.8 496 160 496C127.2 496 99 476.3 86.66 448H32C14.33 448 0 433.7 0 416V416zM192 416C192 398.3 177.7 384 160 384C142.3 384 128 398.3 128 416C128 433.7 142.3 448 160 448C177.7 448 192 433.7 192 416zM352 176C384.8 176 412.1 195.7 425.3 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H425.3C412.1 316.3 384.8 336 352 336C319.2 336 291 316.3 278.7 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H278.7C291 195.7 319.2 176 352 176zM384 256C384 238.3 369.7 224 352 224C334.3 224 320 238.3 320 256C320 273.7 334.3 288 352 288C369.7 288 384 273.7 384 256zM480 64C497.7 64 512 78.33 512 96C512 113.7 497.7 128 480 128H265.3C252.1 156.3 224.8 176 192 176C159.2 176 131 156.3 118.7 128H32C14.33 128 0 113.7 0 96C0 78.33 14.33 64 32 64H118.7C131 35.75 159.2 16 192 16C224.8 16 252.1 35.75 265.3 64H480zM160 96C160 113.7 174.3 128 192 128C209.7 128 224 113.7 224 96C224 78.33 209.7 64 192 64C174.3 64 160 78.33 160 96z" - } - }, - "free": [ - "solid" - ] - }, - "slideshare": { - "changes": [ - "4.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1e7", - "label": "Slideshare", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M187.7 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7 .1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3V49.7c0-27.4-20.6-49.7-46-49.7H76.6c-25.4 0-46 22.3-46 49.7V248c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72C58.3 525.1 252 555.7 248.9 457.5c0-.7 .3-56.6 .3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7 .3 92.8 .3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28V72.3c0-34.9 8.9-45.7 40.6-45.7h317.7c30.3 0 40.9 12.9 40.9 45.7v190.6z" - } - }, - "free": [ - "brands" - ] - }, - "smog": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f75f", - "aliases": { - "unicodes": { - "secondary": [ - "10f75f" - ] - } - }, - "label": "Smog", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573317, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144 288h156.1C322.6 307.8 351.8 320 384 320s61.25-12.25 83.88-32H528C589.9 288 640 237.9 640 176s-50.13-112-112-112c-18 0-34.75 4.625-49.75 12.12C453.1 30.1 406.8 0 352 0c-41 0-77.75 17.25-104 44.75C221.8 17.25 185 0 144 0c-79.5 0-144 64.5-144 144S64.5 288 144 288zM136 464H23.1C10.8 464 0 474.8 0 487.1S10.8 512 23.1 512H136C149.2 512 160 501.2 160 488S149.2 464 136 464zM616 368h-528C74.8 368 64 378.8 64 391.1S74.8 416 87.1 416h528c13.2 0 24-10.8 24-23.1S629.2 368 616 368zM552 464H231.1C218.8 464 208 474.8 208 487.1S218.8 512 231.1 512H552c13.2 0 24-10.8 24-23.1S565.2 464 552 464z" - } - }, - "free": [ - "solid" - ] - }, - "smoking": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f48d", - "aliases": { - "unicodes": { - "composite": [ - "1f6ac" - ], - "secondary": [ - "10f48d" - ] - } - }, - "label": "Smoking", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573317, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M432 352h-384C21.5 352 0 373.5 0 400v64C0 490.5 21.5 512 48 512h384c8.75 0 16-7.25 16-16v-128C448 359.3 440.8 352 432 352zM400 464H224v-64h176V464zM536 352h-48C483.6 352 480 355.6 480 360v144c0 4.375 3.625 8 8 8h48c4.375 0 8-3.625 8-8v-144C544 355.6 540.4 352 536 352zM632 352h-48C579.6 352 576 355.6 576 360v144c0 4.375 3.625 8 8 8h48c4.375 0 8-3.625 8-8v-144C640 355.6 636.4 352 632 352zM553.3 87.13C547.6 83.25 544 77.12 544 70.25V8C544 3.625 540.4 0 536 0h-48C483.6 0 480 3.625 480 8v62.25c0 22 10.25 43.5 28.62 55.5C550.8 153 576 199.5 576 249.8V280C576 284.4 579.6 288 584 288h48C636.4 288 640 284.4 640 280V249.8C640 184.3 607.6 123.5 553.3 87.13zM487.8 141.6C463.8 125 448 99.25 448 70.25V8C448 3.625 444.4 0 440 0h-48C387.6 0 384 3.625 384 8v66.38C384 118.1 408.6 156 444.3 181.1C466.8 196.8 480 222.3 480 249.8V280C480 284.4 483.6 288 488 288h48C540.4 288 544 284.4 544 280V249.8C544 206.4 523 166.3 487.8 141.6z" - } - }, - "free": [ - "solid" - ] - }, - "snapchat": { - "changes": [ - "4.6.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2ab", - "aliases": { - "names": [ - "snapchat-ghost" - ], - "unicodes": { - "composite": [ - "f2ac" - ] - } - }, - "label": "Snapchat", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M496.9 366.6c-3.373-9.176-9.8-14.09-17.11-18.15-1.376-.806-2.641-1.451-3.72-1.947-2.182-1.128-4.414-2.22-6.634-3.373-22.8-12.09-40.61-27.34-52.96-45.42a102.9 102.9 0 0 1 -9.089-16.12c-1.054-3.013-1-4.724-.248-6.287a10.22 10.22 0 0 1 2.914-3.038c3.918-2.591 7.96-5.22 10.7-6.993 4.885-3.162 8.754-5.667 11.25-7.44 9.362-6.547 15.91-13.5 20-21.28a42.37 42.37 0 0 0 2.1-35.19c-6.2-16.32-21.61-26.45-40.29-26.45a55.54 55.54 0 0 0 -11.72 1.24c-1.029 .224-2.059 .459-3.063 .72 .174-11.16-.074-22.94-1.066-34.53-3.522-40.76-17.79-62.12-32.67-79.16A130.2 130.2 0 0 0 332.1 36.44C309.5 23.55 283.9 17 256 17S202.6 23.55 180 36.44a129.7 129.7 0 0 0 -33.28 26.78c-14.88 17.04-29.15 38.44-32.67 79.16-.992 11.59-1.24 23.43-1.079 34.53-1-.26-2.021-.5-3.051-.719a55.46 55.46 0 0 0 -11.72-1.24c-18.69 0-34.13 10.13-40.3 26.45a42.42 42.42 0 0 0 2.046 35.23c4.105 7.774 10.65 14.73 20.01 21.28 2.48 1.736 6.361 4.24 11.25 7.44 2.641 1.711 6.5 4.216 10.28 6.72a11.05 11.05 0 0 1 3.3 3.311c.794 1.624 .818 3.373-.36 6.6a102 102 0 0 1 -8.94 15.78c-12.08 17.67-29.36 32.65-51.43 44.64C32.35 348.6 20.2 352.8 15.07 366.7c-3.868 10.53-1.339 22.51 8.494 32.6a49.14 49.14 0 0 0 12.4 9.387 134.3 134.3 0 0 0 30.34 12.14 20.02 20.02 0 0 1 6.126 2.741c3.583 3.137 3.075 7.861 7.849 14.78a34.47 34.47 0 0 0 8.977 9.127c10.02 6.919 21.28 7.353 33.21 7.811 10.78 .41 22.99 .881 36.94 5.481 5.778 1.91 11.78 5.605 18.74 9.92C194.8 480.1 217.7 495 255.1 495s61.29-14.12 78.12-24.43c6.907-4.24 12.87-7.9 18.49-9.758 13.95-4.613 26.16-5.072 36.94-5.481 11.93-.459 23.19-.893 33.21-7.812a34.58 34.58 0 0 0 10.22-11.16c3.434-5.84 3.348-9.919 6.572-12.77a18.97 18.97 0 0 1 5.753-2.629A134.9 134.9 0 0 0 476 408.7a48.34 48.34 0 0 0 13.02-10.19l.124-.149C498.4 388.5 500.7 376.9 496.9 366.6zm-34.01 18.28c-20.75 11.46-34.53 10.23-45.26 17.14-9.114 5.865-3.72 18.51-10.34 23.08-8.134 5.617-32.18-.4-63.24 9.858-25.62 8.469-41.96 32.82-88.04 32.82s-62.04-24.3-88.08-32.88c-31-10.26-55.09-4.241-63.24-9.858-6.609-4.563-1.24-17.21-10.34-23.08-10.74-6.907-24.53-5.679-45.26-17.08-13.21-7.291-5.716-11.8-1.314-13.94 75.14-36.38 87.13-92.55 87.67-96.72 .645-5.046 1.364-9.014-4.191-14.15-5.369-4.96-29.19-19.7-35.8-24.32-10.94-7.638-15.75-15.26-12.2-24.64 2.48-6.485 8.531-8.928 14.88-8.928a27.64 27.64 0 0 1 5.965 .67c12 2.6 23.66 8.617 30.39 10.24a10.75 10.75 0 0 0 2.48 .335c3.6 0 4.86-1.811 4.612-5.927-.768-13.13-2.628-38.72-.558-62.64 2.84-32.91 13.44-49.22 26.04-63.64 6.051-6.932 34.48-36.98 88.86-36.98s82.88 29.92 88.93 36.83c12.61 14.42 23.23 30.73 26.04 63.64 2.071 23.92 .285 49.53-.558 62.64-.285 4.327 1.017 5.927 4.613 5.927a10.65 10.65 0 0 0 2.48-.335c6.745-1.624 18.4-7.638 30.4-10.24a27.64 27.64 0 0 1 5.964-.67c6.386 0 12.4 2.48 14.88 8.928 3.546 9.374-1.24 17-12.19 24.64-6.609 4.612-30.43 19.34-35.8 24.32-5.568 5.134-4.836 9.1-4.191 14.15 .533 4.228 12.51 60.4 87.67 96.72C468.6 373 476.1 377.5 462.9 384.9z" - } - }, - "free": [ - "brands" - ] - }, - "snowflake": { - "changes": [ - "4.7.0", - "5.0.0", - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2dc", - "aliases": { - "unicodes": { - "composite": [ - "2746", - "2744" - ], - "secondary": [ - "10f2dc" - ] - } - }, - "label": "Snowflake", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573317, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M475.6 384.1C469.7 394.3 458.9 400 447.9 400c-5.488 0-11.04-1.406-16.13-4.375l-25.09-14.64l5.379 20.29c3.393 12.81-4.256 25.97-17.08 29.34c-2.064 .5625-4.129 .8125-6.164 .8125c-10.63 0-20.36-7.094-23.21-17.84l-17.74-66.92L288 311.7l.0002 70.5l48.38 48.88c9.338 9.438 9.244 24.62-.1875 33.94C331.5 469.7 325.4 472 319.3 472c-6.193 0-12.39-2.375-17.08-7.125l-14.22-14.37L288 480c0 17.69-14.34 32-32.03 32s-32.03-14.31-32.03-32l-.0002-29.5l-14.22 14.37c-9.322 9.438-24.53 9.5-33.97 .1875c-9.432-9.312-9.525-24.5-.1875-33.94l48.38-48.88L223.1 311.7l-59.87 34.93l-17.74 66.92c-2.848 10.75-12.58 17.84-23.21 17.84c-2.035 0-4.1-.25-6.164-.8125c-12.82-3.375-20.47-16.53-17.08-29.34l5.379-20.29l-25.09 14.64C75.11 398.6 69.56 400 64.07 400c-11.01 0-21.74-5.688-27.69-15.88c-8.932-15.25-3.785-34.84 11.5-43.75l25.96-15.15l-20.33-5.508C40.7 316.3 33.15 303.1 36.62 290.3S53.23 270 66.09 273.4L132 291.3L192.5 256L132 220.7L66.09 238.6c-2.111 .5625-4.225 .8438-6.305 .8438c-10.57 0-20.27-7.031-23.16-17.72C33.15 208.9 40.7 195.8 53.51 192.3l20.33-5.508L47.88 171.6c-15.28-8.906-20.43-28.5-11.5-43.75c8.885-15.28 28.5-20.44 43.81-11.5l25.09 14.64L99.9 110.7C96.51 97.91 104.2 84.75 116.1 81.38C129.9 77.91 142.1 85.63 146.4 98.41l17.74 66.92L223.1 200.3l-.0002-70.5L175.6 80.88C166.3 71.44 166.3 56.25 175.8 46.94C185.2 37.59 200.4 37.72 209.8 47.13l14.22 14.37L223.1 32c0-17.69 14.34-32 32.03-32s32.03 14.31 32.03 32l.0002 29.5l14.22-14.37c9.307-9.406 24.51-9.531 33.97-.1875c9.432 9.312 9.525 24.5 .1875 33.94l-48.38 48.88L288 200.3l59.87-34.93l17.74-66.92c3.395-12.78 16.56-20.5 29.38-17.03c12.82 3.375 20.47 16.53 17.08 29.34l-5.379 20.29l25.09-14.64c15.28-8.906 34.91-3.75 43.81 11.5c8.932 15.25 3.785 34.84-11.5 43.75l-25.96 15.15l20.33 5.508c12.81 3.469 20.37 16.66 16.89 29.44c-2.895 10.69-12.59 17.72-23.16 17.72c-2.08 0-4.193-.2813-6.305-.8438L379.1 220.7L319.5 256l60.46 35.28l65.95-17.87C458.8 270 471.9 277.5 475.4 290.3c3.473 12.78-4.082 25.97-16.89 29.44l-20.33 5.508l25.96 15.15C479.4 349.3 484.5 368.9 475.6 384.1z" - }, - "regular": { - "last_modified": 1658443573119, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M484.4 294.4c1.715 6.402 .6758 12.89-2.395 18.21s-8.172 9.463-14.57 11.18l-31.46 8.43l32.96 19.03C480.4 357.8 484.4 372.5 477.8 384s-21.38 15.41-32.86 8.783l-32.96-19.03l8.43 31.46c3.432 12.81-4.162 25.96-16.97 29.39s-25.96-4.162-29.39-16.97l-20.85-77.82L280 297.6v84.49l56.97 56.97c9.375 9.375 9.375 24.56 0 33.94C332.3 477.7 326.1 480 320 480s-12.28-2.344-16.97-7.031L280 449.9V488c0 13.25-10.75 24-24 24s-24-10.75-24-24v-38.06l-23.03 23.03c-9.375 9.375-24.56 9.375-33.94 0s-9.375-24.56 0-33.94L232 382.1V297.6l-73.17 42.25l-20.85 77.82c-3.432 12.81-16.58 20.4-29.39 16.97s-20.4-16.58-16.97-29.39l8.43-31.46l-32.96 19.03C55.61 399.4 40.85 395.5 34.22 384s-2.615-26.16 8.859-32.79l32.96-19.03l-31.46-8.43c-12.81-3.432-20.4-16.58-16.97-29.39s16.58-20.4 29.39-16.97l77.82 20.85L208 255.1L134.8 213.8L57.01 234.6C44.2 238 31.05 230.4 27.62 217.6s4.162-25.96 16.97-29.39l31.46-8.432L43.08 160.8C31.61 154.2 27.6 139.5 34.22 128s21.38-15.41 32.86-8.785l32.96 19.03L91.62 106.8C88.18 93.98 95.78 80.83 108.6 77.39s25.96 4.162 29.39 16.97l20.85 77.82L232 214.4V129.9L175 72.97c-9.375-9.375-9.375-24.56 0-33.94s24.56-9.375 33.94 0L232 62.06V24C232 10.75 242.8 0 256 0s24 10.75 24 24v38.06l23.03-23.03c9.375-9.375 24.56-9.375 33.94 0s9.375 24.56 0 33.94L280 129.9v84.49l73.17-42.25l20.85-77.82c3.432-12.81 16.58-20.4 29.39-16.97c6.402 1.715 11.5 5.861 14.57 11.18s4.109 11.81 2.395 18.21l-8.43 31.46l32.96-19.03C456.4 112.6 471.2 116.5 477.8 128s2.615 26.16-8.859 32.78l-32.96 19.03l31.46 8.432c12.81 3.432 20.4 16.58 16.97 29.39s-16.58 20.4-29.39 16.97l-77.82-20.85L304 255.1l73.17 42.25l77.82-20.85C467.8 273.1 480.1 281.6 484.4 294.4z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "snowman": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7d0", - "aliases": { - "unicodes": { - "composite": [ - "26c4", - "2603" - ], - "secondary": [ - "10f7d0" - ] - } - }, - "label": "Snowman", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573318, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M510.9 152.3l-5.875-14.5c-3.25-8-12.62-11.88-20.75-8.625l-28.25 11.5v-29C455.1 103 448.7 96 439.1 96h-16c-8.75 0-16 7-16 15.62V158.5c0 .5 .25 1 .25 1.5l-48.98 20.6c-5.291-12.57-12.98-23.81-22.24-33.55c9.35-14.81 14.98-32.23 14.98-51.04C351.1 42.98 309 0 255.1 0S160 42.98 160 95.1c0 18.81 5.626 36.23 14.98 51.04C165.7 156.8 158.1 168.1 152.8 180.7L103.8 160c0-.5 .25-1 .25-1.5V111.6C104 103 96.76 96 88.01 96h-16c-8.75 0-16 7-16 15.62v29l-28.25-11.5c-8.125-3.25-17.5 .625-20.75 8.625l-5.875 14.5C-2.119 160.4 1.881 169.5 10.01 172.6L144.4 228.4C144.9 240.8 147.3 252.7 151.5 263.7c-33.78 29.34-55.53 72.04-55.53 120.3c0 52.59 25.71 98.84 64.88 128h190.2c39.17-29.17 64.88-75.42 64.88-128c0-48.25-21.76-90.95-55.53-120.3c4.195-11.03 6.599-22.89 7.091-35.27l134.4-55.8C510.1 169.5 514.1 160.4 510.9 152.3zM224 95.1c-8.75 0-15.1-7.25-15.1-15.1s7.25-15.1 15.1-15.1s15.1 7.25 15.1 15.1S232.8 95.1 224 95.1zM256 367.1c-8.75 0-15.1-7.25-15.1-15.1S247.3 335.1 256 335.1s15.1 7.25 15.1 15.1S264.8 367.1 256 367.1zM256 303.1c-8.75 0-15.1-7.25-15.1-15.1S247.3 271.1 256 271.1s15.1 7.25 15.1 15.1S264.8 303.1 256 303.1zM256 239.1c-8.75 0-15.1-7.25-15.1-15.1S247.3 207.1 256 207.1s15.1 7.25 15.1 15.1S264.8 239.1 256 239.1zM256 152c0 0-15.1-23.25-15.1-32S247.3 104 256 104s15.1 7.25 15.1 16S256 152 256 152zM287.1 95.1c-8.75 0-15.1-7.25-15.1-15.1s7.25-15.1 15.1-15.1s15.1 7.25 15.1 15.1S296.7 95.1 287.1 95.1z" - } - }, - "free": [ - "solid" - ] - }, - "snowplow": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7d2", - "aliases": { - "unicodes": { - "secondary": [ - "10f7d2" - ] - } - }, - "label": "Snowplow", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573318, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M144 400C144 413.3 133.3 424 120 424C106.7 424 96 413.3 96 400C96 386.7 106.7 376 120 376C133.3 376 144 386.7 144 400zM336 400C336 386.7 346.7 376 360 376C373.3 376 384 386.7 384 400C384 413.3 373.3 424 360 424C346.7 424 336 413.3 336 400zM304 400C304 413.3 293.3 424 280 424C266.7 424 256 413.3 256 400C256 386.7 266.7 376 280 376C293.3 376 304 386.7 304 400zM176 400C176 386.7 186.7 376 200 376C213.3 376 224 386.7 224 400C224 413.3 213.3 424 200 424C186.7 424 176 413.3 176 400zM447.4 249.6C447.8 251.9 448.1 254.3 448 256.7V288H512V235.2C512 220.7 516.9 206.6 526 195.2L583 124C594.1 110.2 614.2 107.1 627.1 119C641.8 130.1 644 150.2 632.1 163.1L576 235.2V402.7L630.6 457.4C643.1 469.9 643.1 490.1 630.6 502.6C618.1 515.1 597.9 515.1 585.4 502.6L530.7 448C518.7 435.1 512 419.7 512 402.7V352H469.2C476.1 366.5 480 382.8 480 400C480 461.9 429.9 512 368 512H112C50.14 512 0 461.9 0 400C0 355.3 26.16 316.8 64 298.8V192C64 174.3 78.33 160 96 160H128V48C128 21.49 149.5 0 176 0H298.9C324.5 0 347.6 15.26 357.7 38.79L445.1 242.7C446.1 244.9 446.9 247.2 447.4 249.6H447.4zM298.9 64H192V160L256 224H367.5L298.9 64zM368 352H112C85.49 352 64 373.5 64 400C64 426.5 85.49 448 112 448H368C394.5 448 416 426.5 416 400C416 373.5 394.5 352 368 352z" - } - }, - "free": [ - "solid" - ] - }, - "soap": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e06e", - "aliases": { - "unicodes": { - "composite": [ - "1f9fc" - ], - "secondary": [ - "10e06e" - ] - } - }, - "label": "Soap", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573318, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 256c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64s-64 28.65-64 64C256 227.3 284.7 256 320 256zM160 288c-35.35 0-64 28.65-64 64c0 35.35 28.65 64 64 64h192c35.35 0 64-28.65 64-64c0-35.35-28.65-64-64-64H160zM384 64c17.67 0 32-14.33 32-32c0-17.67-14.33-32-32-32s-32 14.33-32 32C352 49.67 366.3 64 384 64zM208 96C234.5 96 256 74.51 256 48S234.5 0 208 0S160 21.49 160 48S181.5 96 208 96zM416 192c0 27.82-12.02 52.68-30.94 70.21C421.7 275.7 448 310.7 448 352c0 53.02-42.98 96-96 96H160c-53.02 0-96-42.98-96-96s42.98-96 96-96h88.91C233.6 238.1 224 216.7 224 192H96C42.98 192 0 234.1 0 288v128c0 53.02 42.98 96 96 96h320c53.02 0 96-42.98 96-96V288C512 234.1 469 192 416 192z" - } - }, - "free": [ - "solid" - ] - }, - "socks": { - "changes": [ - "5.3.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f696", - "aliases": { - "unicodes": { - "composite": [ - "1f9e6" - ], - "secondary": [ - "10f696" - ] - } - }, - "label": "Socks", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573318, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M319.1 32c0-11 3.125-21.25 8-30.38C325.4 .8721 322.9 0 319.1 0H192C174.4 0 159.1 14.38 159.1 32l.0042 32h160L319.1 32zM246.6 310.1l73.36-55l.0026-159.1h-160l-.0042 175.1l-86.64 64.61c-39.38 29.5-53.86 84.4-29.24 127c18.25 31.62 51.1 48.36 83.97 48.36c20 0 40.26-6.225 57.51-19.22l21.87-16.38C177.6 421 193.9 350.6 246.6 310.1zM351.1 271.1l-86.13 64.61c-39.37 29.5-53.86 84.4-29.23 127C254.9 495.3 287.2 512 320.1 512c20 0 40.25-6.25 57.5-19.25l115.2-86.38C525 382.3 544 344.2 544 303.1v-207.1h-192L351.1 271.1zM512 0h-128c-17.62 0-32 14.38-32 32l-.0003 32H544V32C544 14.38 529.6 0 512 0z" - } - }, - "free": [ - "solid" - ] - }, - "solar-panel": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ba", - "aliases": { - "unicodes": { - "secondary": [ - "10f5ba" - ] - } - }, - "label": "Solar Panel", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573318, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M575.4 25.72C572.4 10.78 559.2 0 543.1 0H96c-15.25 0-28.39 10.78-31.38 25.72l-63.1 320c-1.891 9.406 .5469 19.16 6.625 26.56S22.41 384 32 384h255.1v64.25H239.8c-26.26 0-47.75 21.49-47.75 47.75c0 8.844 7.168 16.01 16.01 16l223.1-.1667c8.828-.0098 15.99-7.17 15.99-16C447.1 469.5 426.6 448 400.2 448h-48.28v-64h256c9.594 0 18.67-4.312 24.75-11.72s8.516-17.16 6.625-26.56L575.4 25.72zM517.8 64l19.2 96h-97.98L429.2 64H517.8zM380.1 64l9.617 96H250l9.873-96H380.1zM210.8 64L201 160H103.1l19.18-96H210.8zM71.16 320l22.28-112h102.7L184.6 320H71.16zM233.8 320l11.37-112h149.7L406.2 320H233.8zM455.4 320l-11.5-112h102.7l22.28 112H455.4z" - } - }, - "free": [ - "solid" - ] - }, - "sort": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0dc", - "aliases": { - "names": [ - "unsorted" - ], - "unicodes": { - "secondary": [ - "10f0dc" - ] - } - }, - "label": "Sort", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M27.66 224h264.7c24.6 0 36.89-29.78 19.54-47.12l-132.3-136.8c-5.406-5.406-12.47-8.107-19.53-8.107c-7.055 0-14.09 2.701-19.45 8.107L8.119 176.9C-9.229 194.2 3.055 224 27.66 224zM292.3 288H27.66c-24.6 0-36.89 29.77-19.54 47.12l132.5 136.8C145.9 477.3 152.1 480 160 480c7.053 0 14.12-2.703 19.53-8.109l132.3-136.8C329.2 317.8 316.9 288 292.3 288z" - } - }, - "free": [ - "solid" - ] - }, - "sort-down": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0dd", - "aliases": { - "names": [ - "sort-desc" - ], - "unicodes": { - "secondary": [ - "10f0dd" - ] - } - }, - "label": "Sort Down (Descending)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573318, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M311.9 335.1l-132.4 136.8C174.1 477.3 167.1 480 160 480c-7.055 0-14.12-2.702-19.47-8.109l-132.4-136.8C-9.229 317.8 3.055 288 27.66 288h264.7C316.9 288 329.2 317.8 311.9 335.1z" - } - }, - "free": [ - "solid" - ] - }, - "sort-up": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0de", - "aliases": { - "names": [ - "sort-asc" - ], - "unicodes": { - "secondary": [ - "10f0de" - ] - } - }, - "label": "Sort Up (Ascending)", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573318, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M27.66 224h264.7c24.6 0 36.89-29.78 19.54-47.12l-132.3-136.8c-5.406-5.406-12.47-8.107-19.53-8.107c-7.055 0-14.09 2.701-19.45 8.107L8.119 176.9C-9.229 194.2 3.055 224 27.66 224z" - } - }, - "free": [ - "solid" - ] - }, - "soundcloud": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1be", - "label": "SoundCloud", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M111.4 256.3l5.8 65-5.8 68.3c-.3 2.5-2.2 4.4-4.4 4.4s-4.2-1.9-4.2-4.4l-5.6-68.3 5.6-65c0-2.2 1.9-4.2 4.2-4.2 2.2 0 4.1 2 4.4 4.2zm21.4-45.6c-2.8 0-4.7 2.2-5 5l-5 105.6 5 68.3c.3 2.8 2.2 5 5 5 2.5 0 4.7-2.2 4.7-5l5.8-68.3-5.8-105.6c0-2.8-2.2-5-4.7-5zm25.5-24.1c-3.1 0-5.3 2.2-5.6 5.3l-4.4 130 4.4 67.8c.3 3.1 2.5 5.3 5.6 5.3 2.8 0 5.3-2.2 5.3-5.3l5.3-67.8-5.3-130c0-3.1-2.5-5.3-5.3-5.3zM7.2 283.2c-1.4 0-2.2 1.1-2.5 2.5L0 321.3l4.7 35c.3 1.4 1.1 2.5 2.5 2.5s2.2-1.1 2.5-2.5l5.6-35-5.6-35.6c-.3-1.4-1.1-2.5-2.5-2.5zm23.6-21.9c-1.4 0-2.5 1.1-2.5 2.5l-6.4 57.5 6.4 56.1c0 1.7 1.1 2.8 2.5 2.8s2.5-1.1 2.8-2.5l7.2-56.4-7.2-57.5c-.3-1.4-1.4-2.5-2.8-2.5zm25.3-11.4c-1.7 0-3.1 1.4-3.3 3.3L47 321.3l5.8 65.8c.3 1.7 1.7 3.1 3.3 3.1 1.7 0 3.1-1.4 3.1-3.1l6.9-65.8-6.9-68.1c0-1.9-1.4-3.3-3.1-3.3zm25.3-2.2c-1.9 0-3.6 1.4-3.6 3.6l-5.8 70 5.8 67.8c0 2.2 1.7 3.6 3.6 3.6s3.6-1.4 3.9-3.6l6.4-67.8-6.4-70c-.3-2.2-2-3.6-3.9-3.6zm241.4-110.9c-1.1-.8-2.8-1.4-4.2-1.4-2.2 0-4.2 .8-5.6 1.9-1.9 1.7-3.1 4.2-3.3 6.7v.8l-3.3 176.7 1.7 32.5 1.7 31.7c.3 4.7 4.2 8.6 8.9 8.6s8.6-3.9 8.6-8.6l3.9-64.2-3.9-177.5c-.4-3-2-5.8-4.5-7.2zm-26.7 15.3c-1.4-.8-2.8-1.4-4.4-1.4s-3.1 .6-4.4 1.4c-2.2 1.4-3.6 3.9-3.6 6.7l-.3 1.7-2.8 160.8s0 .3 3.1 65.6v.3c0 1.7 .6 3.3 1.7 4.7 1.7 1.9 3.9 3.1 6.4 3.1 2.2 0 4.2-1.1 5.6-2.5 1.7-1.4 2.5-3.3 2.5-5.6l.3-6.7 3.1-58.6-3.3-162.8c-.3-2.8-1.7-5.3-3.9-6.7zm-111.4 22.5c-3.1 0-5.8 2.8-5.8 6.1l-4.4 140.6 4.4 67.2c.3 3.3 2.8 5.8 5.8 5.8 3.3 0 5.8-2.5 6.1-5.8l5-67.2-5-140.6c-.2-3.3-2.7-6.1-6.1-6.1zm376.7 62.8c-10.8 0-21.1 2.2-30.6 6.1-6.4-70.8-65.8-126.4-138.3-126.4-17.8 0-35 3.3-50.3 9.4-6.1 2.2-7.8 4.4-7.8 9.2v249.7c0 5 3.9 8.6 8.6 9.2h218.3c43.3 0 78.6-35 78.6-78.3 .1-43.6-35.2-78.9-78.5-78.9zm-296.7-60.3c-4.2 0-7.5 3.3-7.8 7.8l-3.3 136.7 3.3 65.6c.3 4.2 3.6 7.5 7.8 7.5 4.2 0 7.5-3.3 7.5-7.5l3.9-65.6-3.9-136.7c-.3-4.5-3.3-7.8-7.5-7.8zm-53.6-7.8c-3.3 0-6.4 3.1-6.4 6.7l-3.9 145.3 3.9 66.9c.3 3.6 3.1 6.4 6.4 6.4 3.6 0 6.4-2.8 6.7-6.4l4.4-66.9-4.4-145.3c-.3-3.6-3.1-6.7-6.7-6.7zm26.7 3.4c-3.9 0-6.9 3.1-6.9 6.9L227 321.3l3.9 66.4c.3 3.9 3.1 6.9 6.9 6.9s6.9-3.1 6.9-6.9l4.2-66.4-4.2-141.7c0-3.9-3-6.9-6.9-6.9z" - } - }, - "free": [ - "brands" - ] - }, - "sourcetree": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7d3", - "label": "Sourcetree", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M427.2 203c0-112.1-90.9-203-203-203C112.1-.2 21.2 90.6 21 202.6A202.9 202.9 0 0 0 161.5 396v101.7a14.3 14.3 0 0 0 14.3 14.3h96.4a14.3 14.3 0 0 0 14.3-14.3V396.1A203.2 203.2 0 0 0 427.2 203zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z" - } - }, - "free": [ - "brands" - ] - }, - "spa": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5bb", - "aliases": { - "unicodes": { - "secondary": [ - "10f5bb" - ] - } - }, - "label": "Spa", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M568.3 192c-29 .125-135 6.124-213.9 82.1C321.2 304.7 301 338.3 288 369.9c-13-31.63-33.25-65.25-66.38-94.87C142.8 198.2 36.75 192.2 7.75 192C3.375 192 0 195.4 0 199.9c.25 27.88 7.125 126.2 88.75 199.3C172.8 481 256 479.1 288 479.1s115.2 1.025 199.3-80.85C568.9 326 575.8 227.7 576 199.9C576 195.4 572.6 192 568.3 192zM288 302.6c12.75-18.87 27.62-35.75 44.13-50.5c19-18.62 39.5-33.37 60.25-45.25c-16.5-70.5-51.75-133-96.75-172.3c-4.125-3.5-11-3.5-15.12 0c-45 39.25-80.25 101.6-96.75 172.1c20.37 11.75 40.5 26.12 59.25 44.37C260 266.4 275.1 283.7 288 302.6z" - } - }, - "free": [ - "solid" - ] - }, - "space-awesome": { - "changes": [ - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e5ac", - "label": "Space Awesome", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 256H128V512H0V352H32V320H64V288H96V256zM512 352V512H384V256H416V288H448V320H480V352H512zM320 64H352V448H320V416H192V448H160V64H192V32H224V0H288V32H320V64zM288 128H224V192H288V128z" - } - }, - "free": [ - "brands" - ] - }, - "spaghetti-monster-flying": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f67b", - "aliases": { - "names": [ - "pastafarianism" - ], - "unicodes": { - "secondary": [ - "10f67b" - ] - } - }, - "label": "Spaghetti monster flying", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M624.5 347.7c-32.63-12.5-57.38 4.241-75.38 16.49c-17 11.5-23.25 14.37-31.38 11.37c-8.125-3.125-10.88-9.358-15.88-29.36c-3.375-13.12-7.5-29.47-18-42.72c2.25-3 4.5-5.875 6.375-8.625C500.5 304.5 513.8 312 532 312c33.1 0 50.87-25.75 61.1-42.88C604.6 253 609 248 616 248C629.3 248 640 237.3 640 224s-10.75-24-24-24c-34 0-50.88 25.75-62 42.88C543.4 259 539 264 532 264c-17.25 0-37.5-61.38-97.25-101.9L452 127.6C485.4 125.5 512 97.97 512 63.97C512 28.6 483.4 0 448 0s-64 28.6-64 63.97c0 13 4 25.15 10.62 35.28L376.5 135.5C359.5 130.9 340.9 128 320 128S280.5 130.9 263.5 135.5L245.4 99.25C252 89.13 256 76.97 256 63.97C256 28.6 227.4 0 192 0S128 28.6 128 63.97C128 97.97 154.5 125.5 188 127.6l17.25 34.5C145.6 202.5 125.1 264 108 264c-7 0-11.31-5-21.94-21.12C74.94 225.8 57.1 200 24 200C10.75 200 0 210.8 0 224s10.75 24 24 24c7 0 11.37 5 21.1 21.12C57.12 286.3 73.1 312 108 312c18.25 0 31.5-7.5 41.75-17.12C151.6 297.6 153.9 300.5 156.1 303.5c-10.5 13.25-14.62 29.59-18 42.72c-5 20-7.75 26.23-15.88 29.36c-8.125 3-14.37 .1314-31.37-11.37c-18.12-12.25-42.75-28.87-75.38-16.49c-12.38 4.75-18.62 18.61-13.88 30.98c4.625 12.38 18.62 18.62 30.88 13.87C40.75 389.6 46.88 392.4 64 403.9c13.5 9.125 30.75 20.86 52.38 20.86c7.125 0 14.88-1.248 23-4.373c32.63-12.5 40-41.34 45.25-62.46c2.25-8.75 4-14.49 6-18.86c16.62 13.62 37 25.86 61.63 34.23C242.3 410.3 220.1 464 192 464c-13.25 0-24 10.74-24 23.99S178.8 512 192 512c66.75 0 97-88.55 107.4-129.1C306.1 383.6 312.9 384 320 384s13.88-.4706 20.62-1.096C351 423.4 381.3 512 448 512c13.25 0 24-10.74 24-23.99S461.3 464 448 464c-28 0-50.25-53.74-60.25-90.74c24.75-8.375 45-20.56 61.63-34.19c2 4.375 3.75 10.11 6 18.86c5.375 21.12 12.62 49.96 45.25 62.46c8.25 3.125 15.88 4.373 23 4.373c21.62 0 38.83-11.74 52.46-20.86c17-11.5 23.29-14.37 31.42-11.37c12.38 4.75 26.25-1.492 30.88-13.87C643.1 366.3 637 352.5 624.5 347.7zM192 79.97c-8.875 0-16-7.125-16-16S183.1 47.98 192 47.98s16 7.118 16 15.99S200.9 79.97 192 79.97zM448 47.98c8.875 0 16 7.118 16 15.99s-7.125 16-16 16s-16-7.125-16-16S439.1 47.98 448 47.98z" - } - }, - "free": [ - "solid" - ] - }, - "speakap": { - "changes": [ - "5.0.0", - "5.4.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3f3", - "label": "Speakap", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M64 391.8C-15.41 303.6-8 167.4 80.64 87.64s224.8-73 304.2 15.24 72 224.4-16.64 304.1c-18.74 16.87 64 43.09 42 52.26-82.06 34.21-253.9 35-346.2-67.5zm213.3-211.6l38.5-40.86c-9.61-8.89-32-26.83-76.17-27.6-52.33-.91-95.86 28.3-96.77 80-.2 11.33 .29 36.72 29.42 54.83 34.46 21.42 86.52 21.51 86 52.26-.37 21.28-26.42 25.81-38.59 25.6-3-.05-30.23-.46-47.61-24.62l-40 42.61c28.16 27 59 32.62 83.49 33.05 10.23 .18 96.42 .33 97.84-81 .28-15.81-2.07-39.72-28.86-56.59-34.36-21.64-85-19.45-84.43-49.75 .41-23.25 31-25.37 37.53-25.26 .43 0 26.62 .26 39.62 17.37z" - } - }, - "free": [ - "brands" - ] - }, - "speaker-deck": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f83c", - "label": "Speaker Deck", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M213.9 296H100a100 100 0 0 1 0-200h132.8a40 40 0 0 1 0 80H98c-26.47 0-26.45 40 0 40h113.8a100 100 0 0 1 0 200H40a40 40 0 0 1 0-80h173.9c26.48 0 26.46-40 0-40zM298 416a120.2 120.2 0 0 0 51.11-80h64.55a19.83 19.83 0 0 0 19.66-20V196a19.83 19.83 0 0 0 -19.66-20H296.4a60.77 60.77 0 0 0 0-80h136.9c43.44 0 78.65 35.82 78.65 80v160c0 44.18-35.21 80-78.65 80z" - } - }, - "free": [ - "brands" - ] - }, - "spell-check": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f891", - "aliases": { - "unicodes": { - "secondary": [ - "10f891" - ] - } - }, - "label": "Spell Check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M566.6 265.4c-12.5-12.5-32.75-12.5-45.25 0L352 434.8l-73.38-73.38c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25l96 96c6.25 6.25 14.44 9.368 22.62 9.368s16.38-3.118 22.63-9.368l192-192C579.1 298.1 579.1 277.9 566.6 265.4zM221.5 211.7l-80-192C136.6 7.796 124.9 .0147 112 .0147S87.44 7.796 82.47 19.7l-80 192C-4.328 228 3.375 246.8 19.69 253.5c16.36 6.812 35.06-.9375 41.84-17.22l5.131-12.31h90.68l5.131 12.31c5.109 12.28 17.02 19.69 29.55 19.69c4.094 0 8.266-.7812 12.3-2.469C220.6 246.8 228.3 228 221.5 211.7zM93.33 160L112 115.2l18.67 44.81H93.33zM288 256h80c44.11 0 80-35.87 80-79.1c0-23.15-10.03-43.85-25.79-58.47C428.3 106.3 432 93.65 432 80.01c0-44.13-35.89-80-79.1-80L288 .0147c-17.67 0-32 14.31-32 31.1v192C256 241.7 270.3 256 288 256zM320 64.01h32c8.828 0 16 7.188 16 16s-7.172 16-16 16h-32V64.01zM320 160h48c8.828 0 16 7.188 16 16s-7.172 16-16 16H320V160z" - } - }, - "free": [ - "solid" - ] - }, - "spider": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f717", - "aliases": { - "unicodes": { - "composite": [ - "1f577" - ], - "secondary": [ - "10f717" - ] - } - }, - "label": "Spider", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M563.3 401.6c2.608 8.443-2.149 17.4-10.62 19.1l-15.35 4.709c-8.48 2.6-17.47-2.139-20.08-10.59L493.2 338l-79.79-31.8l53.47 62.15c5.08 5.904 6.972 13.89 5.08 21.44l-28.23 110.1c-2.151 8.57-10.87 13.78-19.47 11.64l-15.58-3.873c-8.609-2.141-13.84-10.83-11.69-19.4l25.2-98.02l-38.51-44.77c.1529 2.205 .6627 4.307 .6627 6.549c0 53.02-43.15 96-96.37 96S191.6 405 191.6 352c0-2.242 .5117-4.34 .6627-6.543l-38.51 44.76l25.2 98.02c2.151 8.574-3.084 17.26-11.69 19.4l-15.58 3.873c-8.603 2.141-17.32-3.072-19.47-11.64l-28.23-110.1c-1.894-7.543 0-15.53 5.08-21.44l53.47-62.15l-79.79 31.8l-24.01 77.74c-2.608 8.447-11.6 13.19-20.08 10.59l-15.35-4.709c-8.478-2.6-13.23-11.55-10.63-19.1l27.4-88.69c2.143-6.939 7.323-12.54 14.09-15.24L158.9 256l-104.7-41.73C47.43 211.6 42.26 205.1 40.11 199.1L12.72 110.4c-2.608-8.443 2.149-17.4 10.62-19.1l15.35-4.709c8.48-2.6 17.47 2.139 20.08 10.59l24.01 77.74l79.79 31.8L109.1 143.6C104 137.7 102.1 129.7 104 122.2l28.23-110.1c2.151-8.57 10.87-13.78 19.47-11.64l15.58 3.873C175.9 6.494 181.1 15.18 178.1 23.76L153.8 121.8L207.7 184.4l.1542-24.44C206.1 123.4 228.9 91.77 261.4 80.43c5.141-1.793 10.5 2.215 10.5 7.641V112h32.12V88.09c0-5.443 5.394-9.443 10.55-7.641C345.9 91.39 368.3 121 368.3 155.9c0 1.393-.1786 2.689-.2492 4.064L368.3 184.4l53.91-62.66l-25.2-98.02c-2.151-8.574 3.084-17.26 11.69-19.4l15.58-3.873c8.603-2.141 17.32 3.072 19.47 11.64l28.23 110.1c1.894 7.543 0 15.53-5.08 21.44l-53.47 62.15l79.79-31.8l24.01-77.74c2.608-8.447 11.6-13.19 20.08-10.59l15.35 4.709c8.478 2.6 13.23 11.55 10.63 19.1l-27.4 88.69c-2.143 6.939-7.323 12.54-14.09 15.24L417.1 256l104.7 41.73c6.754 2.691 11.92 8.283 14.07 15.21L563.3 401.6z" - } - }, - "free": [ - "solid" - ] - }, - "spinner": { - "changes": [ - "3.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f110", - "aliases": { - "unicodes": { - "secondary": [ - "10f110" - ] - } - }, - "label": "Spinner", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M304 48C304 74.51 282.5 96 256 96C229.5 96 208 74.51 208 48C208 21.49 229.5 0 256 0C282.5 0 304 21.49 304 48zM304 464C304 490.5 282.5 512 256 512C229.5 512 208 490.5 208 464C208 437.5 229.5 416 256 416C282.5 416 304 437.5 304 464zM0 256C0 229.5 21.49 208 48 208C74.51 208 96 229.5 96 256C96 282.5 74.51 304 48 304C21.49 304 0 282.5 0 256zM512 256C512 282.5 490.5 304 464 304C437.5 304 416 282.5 416 256C416 229.5 437.5 208 464 208C490.5 208 512 229.5 512 256zM74.98 437C56.23 418.3 56.23 387.9 74.98 369.1C93.73 350.4 124.1 350.4 142.9 369.1C161.6 387.9 161.6 418.3 142.9 437C124.1 455.8 93.73 455.8 74.98 437V437zM142.9 142.9C124.1 161.6 93.73 161.6 74.98 142.9C56.24 124.1 56.24 93.73 74.98 74.98C93.73 56.23 124.1 56.23 142.9 74.98C161.6 93.73 161.6 124.1 142.9 142.9zM369.1 369.1C387.9 350.4 418.3 350.4 437 369.1C455.8 387.9 455.8 418.3 437 437C418.3 455.8 387.9 455.8 369.1 437C350.4 418.3 350.4 387.9 369.1 369.1V369.1z" - } - }, - "free": [ - "solid" - ] - }, - "splotch": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5bc", - "aliases": { - "unicodes": { - "secondary": [ - "10f5bc" - ] - } - }, - "label": "Splotch", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M349.3 47.38L367.9 116.1C374.6 142.1 393.2 162.3 417.6 171.2L475.8 192.4C497.5 200.3 512 221 512 244.2C512 261.8 503.6 278.4 489.4 288.8L406.9 348.1C393.3 358.9 385.7 374.1 386.7 391.8L389.8 442.4C392.1 480.1 362.2 511.9 324.4 511.9C308.8 511.9 293.8 506.4 281.1 496.4L236.1 458.2C221.1 444.7 200.9 437.3 180 437.3H171.6C165.1 437.3 160.4 437.8 154.8 438.9L87.81 451.9C63.82 456.6 39.53 445.5 27.41 424.3C17.39 406.7 17.39 385.2 27.41 367.7L55.11 319.2C60.99 308.9 64.09 297.3 64.09 285.4C64.09 272.3 60.33 259.6 53.27 248.6L8.796 179.4C-6.738 155.2-1.267 123.2 21.41 105.6C32.12 97.25 45.52 93.13 59.07 94.01L130.8 98.66C159.8 100.5 187.1 87.91 205.9 64.93L237.3 24.66C249.4 9.133 267.9 .0566 287.6 .0566C316.5 .0566 341.8 19.47 349.3 47.38V47.38z" - } - }, - "free": [ - "solid" - ] - }, - "spoon": { - "changes": [ - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2e5", - "aliases": { - "names": [ - "utensil-spoon" - ], - "unicodes": { - "composite": [ - "f1b1", - "1f944" - ], - "secondary": [ - "10f2e5" - ] - } - }, - "label": "Spoon", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573319, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M449.5 242.2C436.4 257.8 419.8 270 400.1 277.8C382.2 285.6 361.7 288.8 341.4 287C326.2 284.5 311.8 278.4 299.5 269.1L68.29 500.3C60.79 507.8 50.61 512 40 512C29.39 512 19.22 507.8 11.71 500.3C4.211 492.8-.0039 482.6-.0039 472C-.0039 461.4 4.211 451.2 11.71 443.7L243 212.5C233.7 200.2 227.6 185.8 225.1 170.6C223.3 150.3 226.5 129.9 234.3 111C242.1 92.22 254.3 75.56 269.9 62.47C337.8-5.437 433.1-20.28 482.7 29.35C532.3 78.95 517.4 174.2 449.5 242.2z" - } - }, - "free": [ - "solid" - ] - }, - "spotify": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1bc", - "label": "Spotify", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111.1 8 0 119.1 0 256s111.1 248 248 248 248-111.1 248-248S384.9 8 248 8zm100.7 364.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z" - } - }, - "free": [ - "brands" - ] - }, - "spray-can": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5bd", - "aliases": { - "unicodes": { - "secondary": [ - "10f5bd" - ] - } - }, - "label": "Spray Can", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573320, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M192 0C209.7 0 224 14.33 224 32V128H96V32C96 14.33 110.3 0 128 0H192zM0 256C0 202.1 42.98 160 96 160H224C277 160 320 202.1 320 256V464C320 490.5 298.5 512 272 512H48C21.49 512 0 490.5 0 464V256zM160 256C115.8 256 80 291.8 80 336C80 380.2 115.8 416 160 416C204.2 416 240 380.2 240 336C240 291.8 204.2 256 160 256zM320 64C320 81.67 305.7 96 288 96C270.3 96 256 81.67 256 64C256 46.33 270.3 32 288 32C305.7 32 320 46.33 320 64zM352 64C352 46.33 366.3 32 384 32C401.7 32 416 46.33 416 64C416 81.67 401.7 96 384 96C366.3 96 352 81.67 352 64zM512 64C512 81.67 497.7 96 480 96C462.3 96 448 81.67 448 64C448 46.33 462.3 32 480 32C497.7 32 512 46.33 512 64zM448 160C448 142.3 462.3 128 480 128C497.7 128 512 142.3 512 160C512 177.7 497.7 192 480 192C462.3 192 448 177.7 448 160zM512 256C512 273.7 497.7 288 480 288C462.3 288 448 273.7 448 256C448 238.3 462.3 224 480 224C497.7 224 512 238.3 512 256zM352 160C352 142.3 366.3 128 384 128C401.7 128 416 142.3 416 160C416 177.7 401.7 192 384 192C366.3 192 352 177.7 352 160z" - } - }, - "free": [ - "solid" - ] - }, - "spray-can-sparkles": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5d0", - "aliases": { - "names": [ - "air-freshener" - ], - "unicodes": { - "secondary": [ - "10f5d0" - ] - } - }, - "label": "Spray Can Sparkles", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573320, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 32C96 14.33 110.3 0 128 0H192C209.7 0 224 14.33 224 32V128H96V32zM224 160C277 160 320 202.1 320 256V464C320 490.5 298.5 512 272 512H48C21.49 512 0 490.5 0 464V256C0 202.1 42.98 160 96 160H224zM160 416C204.2 416 240 380.2 240 336C240 291.8 204.2 256 160 256C115.8 256 80 291.8 80 336C80 380.2 115.8 416 160 416zM384 48C384 49.36 383 50.97 381.8 51.58L352 64L339.6 93.78C338.1 95 337.4 96 336 96C334.6 96 333 95 332.4 93.78L320 64L290.2 51.58C288.1 50.97 288 49.36 288 48C288 46.62 288.1 45.03 290.2 44.42L320 32L332.4 2.219C333 1 334.6 0 336 0C337.4 0 338.1 1 339.6 2.219L352 32L381.8 44.42C383 45.03 384 46.62 384 48zM460.4 93.78L448 64L418.2 51.58C416.1 50.97 416 49.36 416 48C416 46.62 416.1 45.03 418.2 44.42L448 32L460.4 2.219C461 1 462.6 0 464 0C465.4 0 466.1 1 467.6 2.219L480 32L509.8 44.42C511 45.03 512 46.62 512 48C512 49.36 511 50.97 509.8 51.58L480 64L467.6 93.78C466.1 95 465.4 96 464 96C462.6 96 461 95 460.4 93.78zM467.6 194.2L480 224L509.8 236.4C511 237 512 238.6 512 240C512 241.4 511 242.1 509.8 243.6L480 256L467.6 285.8C466.1 287 465.4 288 464 288C462.6 288 461 287 460.4 285.8L448 256L418.2 243.6C416.1 242.1 416 241.4 416 240C416 238.6 416.1 237 418.2 236.4L448 224L460.4 194.2C461 193 462.6 192 464 192C465.4 192 466.1 193 467.6 194.2zM448 144C448 145.4 447 146.1 445.8 147.6L416 160L403.6 189.8C402.1 191 401.4 192 400 192C398.6 192 397 191 396.4 189.8L384 160L354.2 147.6C352.1 146.1 352 145.4 352 144C352 142.6 352.1 141 354.2 140.4L384 128L396.4 98.22C397 97 398.6 96 400 96C401.4 96 402.1 97 403.6 98.22L416 128L445.8 140.4C447 141 448 142.6 448 144z" - } - }, - "free": [ - "solid" - ] - }, - "square": { - "changes": [ - "2.0.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0c8", - "aliases": { - "unicodes": { - "composite": [ - "25fb", - "25fc", - "f096", - "25a0" - ], - "secondary": [ - "10f0c8" - ] - } - }, - "label": "Square", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573326, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96z" - }, - "regular": { - "last_modified": 1658443573128, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM384 80H64C55.16 80 48 87.16 48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-arrow-up-right": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f14c", - "aliases": { - "names": [ - "external-link-square" - ], - "unicodes": { - "secondary": [ - "10f14c" - ] - } - }, - "label": "Square arrow up right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573321, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM344 312c0 17.69-14.31 32-32 32s-32-14.31-32-32V245.3l-121.4 121.4C152.4 372.9 144.2 376 136 376s-16.38-3.125-22.62-9.375c-12.5-12.5-12.5-32.75 0-45.25L234.8 200H168c-17.69 0-32-14.31-32-32s14.31-32 32-32h144c17.69 0 32 14.31 32 32V312z" - } - }, - "free": [ - "solid" - ] - }, - "square-behance": { - "changes": [ - "4.1.0", - "5.0.0", - "5.0.3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1b5", - "aliases": { - "names": [ - "behance-square" - ] - }, - "label": "Behance Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M186.5 293c0 19.3-14 25.4-31.2 25.4h-45.1v-52.9h46c18.6 .1 30.3 7.8 30.3 27.5zm-7.7-82.3c0-17.7-13.7-21.9-28.9-21.9h-39.6v44.8H153c15.1 0 25.8-6.6 25.8-22.9zm132.3 23.2c-18.3 0-30.5 11.4-31.7 29.7h62.2c-1.7-18.5-11.3-29.7-30.5-29.7zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zM271.7 185h77.8v-18.9h-77.8V185zm-43 110.3c0-24.1-11.4-44.9-35-51.6 17.2-8.2 26.2-17.7 26.2-37 0-38.2-28.5-47.5-61.4-47.5H68v192h93.1c34.9-.2 67.6-16.9 67.6-55.9zM380 280.5c0-41.1-24.1-75.4-67.6-75.4-42.4 0-71.1 31.8-71.1 73.6 0 43.3 27.3 73 71.1 73 33.2 0 54.7-14.9 65.1-46.8h-33.7c-3.7 11.9-18.6 18.1-30.2 18.1-22.4 0-34.1-13.1-34.1-35.3h100.2c.1-2.3 .3-4.8 .3-7.2z" - } - }, - "free": [ - "brands" - ] - }, - "square-caret-down": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f150", - "aliases": { - "names": [ - "caret-square-down" - ], - "unicodes": { - "secondary": [ - "10f150" - ] - } - }, - "label": "Square caret down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573321, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.65 419.3 32 384 32zM345.6 232.3l-104 112C237 349.2 230.7 352 224 352s-13.03-2.781-17.59-7.656l-104-112c-6.5-7-8.219-17.19-4.407-25.94C101.8 197.7 110.5 192 120 192h208c9.531 0 18.19 5.656 21.1 14.41C353.8 215.2 352.1 225.3 345.6 232.3z" - }, - "regular": { - "last_modified": 1658443573123, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M320 192H128C118.5 192 109.8 197.7 105.1 206.4C102.2 215.1 103.9 225.3 110.4 232.3l96 104C210.9 341.2 217.3 344 224 344s13.09-2.812 17.62-7.719l96-104c6.469-7 8.188-17.19 4.375-25.91C338.2 197.7 329.5 192 320 192zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-caret-left": { - "changes": [ - "4.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f191", - "aliases": { - "names": [ - "caret-square-left" - ], - "unicodes": { - "secondary": [ - "10f191" - ] - } - }, - "label": "Square caret left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573321, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.65 419.3 32 384 32zM288 360c0 9.531-5.656 18.19-14.41 22C270.5 383.3 267.3 384 264 384c-5.938 0-11.81-2.219-16.34-6.406l-112-104C130.8 269 128 262.7 128 256s2.781-13.03 7.656-17.59l112-104c7.031-6.469 17.22-8.156 25.94-4.406C282.3 133.8 288 142.5 288 152V360z" - }, - "regular": { - "last_modified": 1658443573123, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416zM273.6 138c-8.719-3.812-18.91-2.094-25.91 4.375l-104 96C138.8 242.9 136 249.3 136 256s2.812 13.09 7.719 17.62l104 96c7 6.469 17.19 8.188 25.91 4.375C282.3 370.2 288 361.5 288 352V160C288 150.5 282.3 141.8 273.6 138z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-caret-right": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f152", - "aliases": { - "names": [ - "caret-square-right" - ], - "unicodes": { - "secondary": [ - "10f152" - ] - } - }, - "label": "Square caret right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573321, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.65 419.3 32 384 32zM312.3 273.6l-112 104C195.8 381.8 189.9 384 184 384c-3.25 0-6.5-.6562-9.594-2C165.7 378.2 160 369.5 160 360v-208c0-9.531 5.656-18.19 14.41-22c8.75-3.75 18.94-2.062 25.94 4.406l112 104C317.2 242.1 320 249.3 320 256S317.2 269 312.3 273.6z" - }, - "regular": { - "last_modified": 1658443573123, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M200.3 142.4C193.3 135.9 183.1 134.2 174.4 138C165.7 141.8 160 150.5 160 159.1v192C160 361.5 165.7 370.2 174.4 374c8.719 3.812 18.91 2.094 25.91-4.375l104-96C309.2 269.1 312 262.7 312 256s-2.812-13.09-7.719-17.62L200.3 142.4zM384 32H64C28.66 32 0 60.66 0 96v320c0 35.34 28.66 64 64 64h320c35.34 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.18 16-16 16H64c-8.82 0-16-7.18-16-16V96c0-8.82 7.18-16 16-16h320c8.82 0 16 7.18 16 16V416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-caret-up": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f151", - "aliases": { - "names": [ - "caret-square-up" - ], - "unicodes": { - "secondary": [ - "10f151" - ] - } - }, - "label": "Square caret up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573321, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.65 419.3 32 384 32zM349.1 305.6C346.2 314.3 337.5 320 328 320h-208c-9.531 0-18.19-5.656-22-14.41C94.19 296.8 95.91 286.7 102.4 279.7l104-112c9.125-9.75 26.06-9.75 35.19 0l104 112C352.1 286.7 353.8 296.8 349.1 305.6z" - }, - "regular": { - "last_modified": 1658443573123, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M241.6 175.7C237.1 170.8 230.7 168 224 168S210.9 170.8 206.4 175.7l-96 104c-6.469 7-8.188 17.19-4.375 25.91C109.8 314.3 118.5 320 127.1 320h192c9.531 0 18.16-5.656 22-14.38c3.813-8.719 2.094-18.91-4.375-25.91L241.6 175.7zM384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM400 416c0 8.82-7.178 16-16 16H64c-8.822 0-16-7.18-16-16V96c0-8.82 7.178-16 16-16h320c8.822 0 16 7.18 16 16V416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-check": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f14a", - "aliases": { - "names": [ - "check-square" - ], - "unicodes": { - "composite": [ - "2705", - "f046", - "2611" - ], - "secondary": [ - "10f14a" - ] - } - }, - "label": "Square check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573321, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM339.8 211.8C350.7 200.9 350.7 183.1 339.8 172.2C328.9 161.3 311.1 161.3 300.2 172.2L192 280.4L147.8 236.2C136.9 225.3 119.1 225.3 108.2 236.2C97.27 247.1 97.27 264.9 108.2 275.8L172.2 339.8C183.1 350.7 200.9 350.7 211.8 339.8L339.8 211.8z" - }, - "regular": { - "last_modified": 1658443573124, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M211.8 339.8C200.9 350.7 183.1 350.7 172.2 339.8L108.2 275.8C97.27 264.9 97.27 247.1 108.2 236.2C119.1 225.3 136.9 225.3 147.8 236.2L192 280.4L300.2 172.2C311.1 161.3 328.9 161.3 339.8 172.2C350.7 183.1 350.7 200.9 339.8 211.8L211.8 339.8zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-dribbble": { - "changes": [ - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f397", - "aliases": { - "names": [ - "dribbble-square" - ] - }, - "label": "Dribbble Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M90.2 228.2c8.9-42.4 37.4-77.7 75.7-95.7 3.6 4.9 28 38.8 50.7 79-64 17-120.3 16.8-126.4 16.7zM314.6 154c-33.6-29.8-79.3-41.1-122.6-30.6 3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4zM140.1 364c40.5 31.6 93.3 36.7 137.3 18-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6zm98.8-108.2c-3.4-7.8-7.2-15.5-11.1-23.2C159.6 253 93.4 252.2 87.4 252c0 1.4-.1 2.8-.1 4.2 0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8zm34.9 16.3c17.9 49.1 25.1 89.1 26.5 97.4 30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8zm-20.3-48.4c4.8 9.8 8.3 17.8 12 26.8 45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-64 176c0-88.2-71.8-160-160-160S64 167.8 64 256s71.8 160 160 160 160-71.8 160-160z" - } - }, - "free": [ - "brands" - ] - }, - "square-envelope": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f199", - "aliases": { - "names": [ - "envelope-square" - ], - "unicodes": { - "secondary": [ - "10f199" - ] - } - }, - "label": "Square envelope", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573322, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.63 32 0 60.63 0 96v320c0 35.38 28.62 64 64 64h320c35.38 0 64-28.62 64-64V96C448 60.63 419.4 32 384 32zM384 336c0 17.67-14.33 32-32 32H96c-17.67 0-32-14.33-32-32V225.9l138.5 69.27C209.3 298.5 216.6 300.2 224 300.2s14.75-1.688 21.47-5.047L384 225.9V336zM384 190.1l-152.8 76.42c-4.5 2.25-9.812 2.25-14.31 0L64 190.1V176c0-17.67 14.33-32 32-32h256c17.67 0 32 14.33 32 32V190.1z" - } - }, - "free": [ - "solid" - ] - }, - "square-facebook": { - "changes": [ - "1.0.0", - "5.0.0", - "5.8.2", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f082", - "aliases": { - "names": [ - "facebook-square" - ] - }, - "label": "Facebook Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48A48 48 0 0 0 0 80v352a48 48 0 0 0 48 48h137.3V327.7h-63V256h63v-54.64c0-62.15 37-96.48 93.67-96.48 27.14 0 55.52 4.84 55.52 4.84v61h-31.27c-30.81 0-40.42 19.12-40.42 38.73V256h68.78l-11 71.69h-57.78V480H400a48 48 0 0 0 48-48V80a48 48 0 0 0 -48-48z" - } - }, - "free": [ - "brands" - ] - }, - "square-font-awesome": { - "changes": [ - "5.0.0", - "5.0.1", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e5ad", - "label": "Font Awesome in Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384.5 32.5h-320c-35.3 0-64 28.7-64 64v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64v-320C448.5 61.2 419.8 32.5 384.5 32.5zM336.5 312.5c-31.6 11.2-41.2 16-59.8 16c-31.4 0-43.2-16-74.6-16c-10.2 0-18.2 1.6-25.6 4v-32c7.4-2.2 15.4-4 25.6-4c31.2 0 43.2 16 74.6 16c10.2 0 17.8-1.4 27.8-4.6v-96c-10 3.2-17.6 4.6-27.8 4.6c-31.4 0-43.2-16-74.6-16c-25.4 0-37.4 10.4-57.6 14.4v153.6c0 8.8-7.2 16-16 16c-8.8 0-16-7.2-16-16v-192c0-8.8 7.2-16 16-16c8.8 0 16 7.2 16 16v6.4c20.2-4 32.2-14.4 57.6-14.4c31.2 0 43.2 16 74.6 16c18.6 0 28.2-4.8 59.8-16V312.5z" - } - }, - "free": [ - "brands" - ] - }, - "square-font-awesome-stroke": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f35c", - "aliases": { - "names": [ - "font-awesome-alt" - ], - "unicodes": {} - }, - "label": "Font Awesome in Square with Stroke Outline", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572494, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M201.6 152c-25.4 0-37.4 10.4-57.6 14.4V160c0-8.8-7.2-16-16-16s-16 7.2-16 16v192c0 .8 .1 1.6 .2 2.4c.1 .4 .1 .8 .2 1.2c1.6 7.1 8 12.4 15.6 12.4s14-5.3 15.6-12.4c.1-.4 .2-.8 .2-1.2c.1-.8 .2-1.6 .2-2.4V198.4c4-.8 7.7-1.8 11.2-3c14.3-4.7 26-11.4 46.4-11.4c31.4 0 43.2 16 74.6 16c8.9 0 15.9-1.1 24.2-3.5c1.2-.3 2.4-.7 3.6-1.1v96c-10 3.2-17.6 4.6-27.8 4.6c-31.4 0-43.4-16-74.6-16c-10.2 0-18.2 1.8-25.6 4v32c7.4-2.4 15.4-4 25.6-4c31.4 0 43.2 16 74.6 16c18.6 0 28.2-4.8 59.8-16V152c-31.6 11.2-41.2 16-59.8 16C244.8 168 232.8 152 201.6 152zM384 32H64C28.7 32 0 60.7 0 96v320c0 35.3 28.7 64 64 64h320c35.3 0 64-28.7 64-64V96C448 60.7 419.3 32 384 32zM416 416c0 17.6-14.4 32-32 32H64c-17.6 0-32-14.4-32-32V96c0-17.6 14.4-32 32-32h320c17.6 0 32 14.4 32 32V416z" - } - }, - "free": [ - "brands" - ] - }, - "square-full": { - "changes": [ - "5.0.5", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f45c", - "aliases": { - "unicodes": { - "composite": [ - "1f7e5", - "1f7e6", - "1f7e7", - "1f7e8", - "1f7e9", - "1f7ea", - "1f7eb", - "2b1c", - "2b1b" - ], - "secondary": [ - "10f45c" - ] - } - }, - "label": "Square Full", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573322, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 0H512V512H0V0z" - }, - "regular": { - "last_modified": 1658443573125, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 0V512H0V0H512zM464 48H48V464H464V48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-git": { - "changes": [ - "4.1.0", - "5.0.0", - "5.8.2", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d2", - "aliases": { - "names": [ - "git-square" - ] - }, - "label": "Git Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M100.6 334.2c48.57 3.31 58.95 2.11 58.95 11.94 0 20-65.55 20.06-65.55 1.52 .01-5.09 3.29-9.4 6.6-13.46zm27.95-116.6c-32.29 0-33.75 44.47-.75 44.47 32.51 0 31.71-44.47 .75-44.47zM448 80v352a48 48 0 0 1 -48 48H48a48 48 0 0 1 -48-48V80a48 48 0 0 1 48-48h352a48 48 0 0 1 48 48zm-227 69.31c0 14.49 8.38 22.88 22.86 22.88 14.74 0 23.13-8.39 23.13-22.88S258.6 127 243.9 127c-14.48 0-22.88 7.84-22.88 22.31zM199.2 195h-49.55c-25-6.55-81.56-4.85-81.56 46.75 0 18.8 9.4 32 21.85 38.11C74.23 294.2 66.8 301 66.8 310.6c0 6.87 2.79 13.22 11.18 16.76-8.9 8.4-14 14.48-14 25.92C64 373.4 81.53 385 127.5 385c44.22 0 69.87-16.51 69.87-45.73 0-36.67-28.23-35.32-94.77-39.38l8.38-13.43c17 4.74 74.19 6.23 74.19-42.43 0-11.69-4.83-19.82-9.4-25.67l23.38-1.78zm84.34 109.8l-13-1.78c-3.82-.51-4.07-1-4.07-5.09V192.5h-52.6l-2.79 20.57c15.75 5.55 17 4.86 17 10.17V298c0 5.62-.31 4.58-17 6.87v20.06h72.42zM384 315l-6.87-22.37c-40.93 15.37-37.85-12.41-37.85-16.73v-60.72h37.85v-25.41h-35.82c-2.87 0-2 2.52-2-38.63h-24.18c-2.79 27.7-11.68 38.88-34 41.42v22.62c20.47 0 19.82-.85 19.82 2.54v66.57c0 28.72 11.43 40.91 41.67 40.91 14.45 0 30.45-4.83 41.38-10.2z" - } - }, - "free": [ - "brands" - ] - }, - "square-github": { - "changes": [ - "1.0.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f092", - "aliases": { - "names": [ - "github-square" - ] - }, - "label": "GitHub Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM277.3 415.7c-8.4 1.5-11.5-3.7-11.5-8 0-5.4 .2-33 .2-55.3 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-13.2-3.7-27.5-5.6-41.6-5.6-14.1 0-28.4 1.9-41.6 5.6 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 13.9 .2 36.5 .2 40.6 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3zm-98.1-61.1c-1.9 .4-3.7-.4-3.9-1.7-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7 .6 3.9 1.9 .3 1.3-1 2.6-3 3zm-9.5-.9c0 1.3-1.5 2.4-3.5 2.4-2.2 .2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7 .9 3.7 2.4zm-13.7-1.1c-.4 1.3-2.4 1.9-4.1 1.3-1.9-.4-3.2-1.9-2.8-3.2 .4-1.3 2.4-1.9 4.1-1.5 2 .6 3.3 2.1 2.8 3.4zm-12.3-5.4c-.9 1.1-2.8 .9-4.3-.6-1.5-1.3-1.9-3.2-.9-4.1 .9-1.1 2.8-.9 4.3 .6 1.3 1.3 1.8 3.3 .9 4.1zm-9.1-9.1c-.9 .6-2.6 0-3.7-1.5s-1.1-3.2 0-3.9c1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1zm-6.5-9.7c-.9 .9-2.4 .4-3.5-.6-1.1-1.3-1.3-2.8-.4-3.5 .9-.9 2.4-.4 3.5 .6 1.1 1.3 1.3 2.8 .4 3.5zm-6.7-7.4c-.4 .9-1.7 1.1-2.8 .4-1.3-.6-1.9-1.7-1.5-2.6 .4-.6 1.5-.9 2.8-.4 1.3 .7 1.9 1.8 1.5 2.6z" - } - }, - "free": [ - "brands" - ] - }, - "square-gitlab": { - "changes": [ - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e5ae", - "aliases": { - "names": [ - "gitlab-square" - ] - }, - "label": "Square Gitlab", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M48 32H400C426.5 32 448 53.5 448 80V432C448 458.5 426.5 480 400 480H48C21.5 480 0 458.5 0 432V80C0 53.5 21.5 32 48 32zM382.1 224.9L337.5 108.5C336.6 106.2 334.9 104.2 332.9 102.9C331.3 101.9 329.5 101.3 327.7 101.1C325.9 100.9 324 101.2 322.3 101.8C320.6 102.5 319 103.5 317.8 104.9C316.6 106.3 315.7 107.9 315.2 109.7L285 201.9H162.1L132.9 109.7C132.4 107.9 131.4 106.3 130.2 104.9C128.1 103.6 127.4 102.5 125.7 101.9C123.1 101.2 122.1 100.1 120.3 101.1C118.5 101.3 116.7 101.9 115.1 102.9C113.1 104.2 111.5 106.2 110.6 108.5L65.94 224.9L65.47 226.1C59.05 242.9 58.26 261.3 63.22 278.6C68.18 295.9 78.62 311.1 92.97 321.9L93.14 322L93.52 322.3L161.4 373.2L215.6 414.1C217.1 415.1 220.9 416.9 223.9 416.9C226.9 416.9 229.9 415.1 232.3 414.1L286.4 373.2L354.8 322L355 321.9C369.4 311 379.8 295.8 384.8 278.6C389.7 261.3 388.1 242.9 382.5 226.1L382.1 224.9z" - } - }, - "free": [ - "brands" - ] - }, - "square-google-plus": { - "changes": [ - "2.0.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f0d4", - "aliases": { - "names": [ - "google-plus-square" - ] - }, - "label": "Google Plus Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM164 356c-55.3 0-100-44.7-100-100s44.7-100 100-100c27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1H164v-34.4h94.4c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6zm220-81.8h-29v29h-29.2v-29h-29V245h29v-29H355v29h29v29.2z" - } - }, - "free": [ - "brands" - ] - }, - "square-h": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0fd", - "aliases": { - "names": [ - "h-square" - ], - "unicodes": { - "secondary": [ - "10f0fd" - ] - } - }, - "label": "Square h", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573322, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96C448 60.65 419.3 32 384 32zM336 360c0 13.25-10.75 24-24 24S288 373.3 288 360v-80H160v80C160 373.3 149.3 384 136 384S112 373.3 112 360v-208C112 138.8 122.8 128 136 128S160 138.8 160 152v80h128v-80C288 138.8 298.8 128 312 128s24 10.75 24 24V360z" - } - }, - "free": [ - "solid" - ] - }, - "square-hacker-news": { - "changes": [ - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3af", - "aliases": { - "names": [ - "hacker-news-square" - ] - }, - "label": "Hacker News Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM21.2 229.2H21c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4zm218 53.9V384h-31.4V281.3L128 128h37.3c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6H320l-80.8 155.1z" - } - }, - "free": [ - "brands" - ] - }, - "square-instagram": { - "changes": [ - "5.12.1", - "5.14.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e055", - "aliases": { - "names": [ - "instagram-square" - ] - }, - "label": "Instagram Square", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 202.7A53.34 53.34 0 1 0 277.4 256 53.38 53.38 0 0 0 224 202.7zm124.7-41a54 54 0 0 0 -30.41-30.41c-21-8.29-71-6.43-94.3-6.43s-73.25-1.93-94.31 6.43a54 54 0 0 0 -30.41 30.41c-8.28 21-6.43 71.05-6.43 94.33S91 329.3 99.32 350.3a54 54 0 0 0 30.41 30.41c21 8.29 71 6.43 94.31 6.43s73.24 1.93 94.3-6.43a54 54 0 0 0 30.41-30.41c8.35-21 6.43-71.05 6.43-94.33S357.1 182.7 348.8 161.7zM224 338a82 82 0 1 1 82-82A81.9 81.9 0 0 1 224 338zm85.38-148.3a19.14 19.14 0 1 1 19.13-19.14A19.1 19.1 0 0 1 309.4 189.7zM400 32H48A48 48 0 0 0 0 80V432a48 48 0 0 0 48 48H400a48 48 0 0 0 48-48V80A48 48 0 0 0 400 32zM382.9 322c-1.29 25.63-7.14 48.34-25.85 67s-41.4 24.63-67 25.85c-26.41 1.49-105.6 1.49-132 0-25.63-1.29-48.26-7.15-67-25.85s-24.63-41.42-25.85-67c-1.49-26.42-1.49-105.6 0-132 1.29-25.63 7.07-48.34 25.85-67s41.47-24.56 67-25.78c26.41-1.49 105.6-1.49 132 0 25.63 1.29 48.33 7.15 67 25.85s24.63 41.42 25.85 67.05C384.4 216.4 384.4 295.6 382.9 322z" - } - }, - "free": [ - "brands" - ] - }, - "square-js": { - "changes": [ - "5.0.0", - "5.0.3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3b9", - "aliases": { - "names": [ - "js-square" - ] - }, - "label": "JavaScript (JS) Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5l34.3-20.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5V237.7h42.1v143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43l34.3-19.8c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z" - } - }, - "free": [ - "brands" - ] - }, - "square-lastfm": { - "changes": [ - "4.2.0", - "5.0.0", - "5.0.11", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f203", - "aliases": { - "names": [ - "lastfm-square" - ] - }, - "label": "last.fm Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-92.2 312.9c-63.4 0-85.4-28.6-97.1-64.1-16.3-51-21.5-84.3-63-84.3-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 73.5 0 80.8 41.4 100.8 101.9 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-19.9-21.8-22-49.9-28.6-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 32.7 7.1 71.8 12 71.8 57.5 .1 36.7-30.7 50.6-76.1 50.6z" - } - }, - "free": [ - "brands" - ] - }, - "square-minus": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f146", - "aliases": { - "names": [ - "minus-square" - ], - "unicodes": { - "composite": [ - "f147" - ], - "secondary": [ - "10f146" - ] - } - }, - "label": "Square minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573323, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM136 232C122.7 232 112 242.7 112 256C112 269.3 122.7 280 136 280H312C325.3 280 336 269.3 336 256C336 242.7 325.3 232 312 232H136z" - }, - "regular": { - "last_modified": 1658443573125, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M312 232C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H312zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-nfi": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e576", - "label": "Square Nfi", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573323, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM64 176V336C64 344.8 71.16 352 80 352C88.84 352 96 344.8 96 336V233.8L162.3 344.2C165.1 350.4 173.3 353.3 180.3 351.4C187.2 349.5 191.1 343.2 191.1 336V176C191.1 167.2 184.8 160 175.1 160C167.2 160 159.1 167.2 159.1 176V278.2L93.72 167.8C90.02 161.6 82.66 158.7 75.73 160.6C68.8 162.5 64 168.8 64 176V176zM224 336C224 344.8 231.2 352 240 352C248.8 352 256 344.8 256 336V256H304C312.8 256 320 248.8 320 240C320 231.2 312.8 224 304 224H256V192H304C312.8 192 320 184.8 320 176C320 167.2 312.8 160 304 160H240C231.2 160 224 167.2 224 176V336zM384 176C384 167.2 376.8 160 368 160C359.2 160 352 167.2 352 176V336C352 344.8 359.2 352 368 352C376.8 352 384 344.8 384 336V176z" - } - }, - "free": [ - "solid" - ] - }, - "square-odnoklassniki": { - "changes": [ - "4.4.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f264", - "aliases": { - "names": [ - "odnoklassniki-square" - ] - }, - "label": "Odnoklassniki Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M184.2 177.1c0-22.1 17.9-40 39.8-40s39.8 17.9 39.8 40c0 22-17.9 39.8-39.8 39.8s-39.8-17.9-39.8-39.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-305.1 97.1c0 44.6 36.4 80.9 81.1 80.9s81.1-36.2 81.1-80.9c0-44.8-36.4-81.1-81.1-81.1s-81.1 36.2-81.1 81.1zm174.5 90.7c-4.6-9.1-17.3-16.8-34.1-3.6 0 0-22.7 18-59.3 18s-59.3-18-59.3-18c-16.8-13.2-29.5-5.5-34.1 3.6-7.9 16.1 1.1 23.7 21.4 37 17.3 11.1 41.2 15.2 56.6 16.8l-12.9 12.9c-18.2 18-35.5 35.5-47.7 47.7-17.6 17.6 10.7 45.8 28.4 28.6l47.7-47.9c18.2 18.2 35.7 35.7 47.7 47.9 17.6 17.2 46-10.7 28.6-28.6l-47.7-47.7-13-12.9c15.5-1.6 39.1-5.9 56.2-16.8 20.4-13.3 29.3-21 21.5-37z" - } - }, - "free": [ - "brands" - ] - }, - "square-parking": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f540", - "aliases": { - "names": [ - "parking" - ], - "unicodes": { - "composite": [ - "1f17f" - ], - "secondary": [ - "10f540" - ] - } - }, - "label": "Square parking", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573323, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M192 256V192H240C257.7 192 272 206.3 272 224C272 241.7 257.7 256 240 256H192zM384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM336 224C336 170.1 293 128 240 128H168C145.9 128 128 145.9 128 168V352C128 369.7 142.3 384 160 384C177.7 384 192 369.7 192 352V320H240C293 320 336 277 336 224z" - } - }, - "free": [ - "solid" - ] - }, - "square-pen": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f14b", - "aliases": { - "names": [ - "pen-square", - "pencil-square" - ], - "unicodes": { - "secondary": [ - "10f14b" - ] - } - }, - "label": "Square pen", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573323, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM325.8 139.7C310.1 124.1 284.8 124.1 269.2 139.7L247.8 161.1L318.7 232.1L340.1 210.7C355.8 195 355.8 169.7 340.1 154.1L325.8 139.7zM111.5 303.8L96.48 363.1C95.11 369.4 96.71 375.2 100.7 379.2C104.7 383.1 110.4 384.7 115.9 383.4L176 368.3C181.6 366.9 186.8 364 190.9 359.9L296.1 254.7L225.1 183.8L119.9 288.1C115.8 293.1 112.9 298.2 111.5 303.8z" - } - }, - "free": [ - "solid" - ] - }, - "square-person-confined": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e577", - "label": "Square Person-confined", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM208 96C181.5 96 160 117.5 160 144C160 170.5 181.5 192 208 192C234.5 192 256 170.5 256 144C256 117.5 234.5 96 208 96zM240 306.7L198.6 265.4C191.4 258.1 181 254.8 170.9 256.4C160.7 258.1 151.1 264.5 147.4 273.7L99.39 369.7C91.48 385.5 97.89 404.7 113.7 412.6C129.5 420.5 148.7 414.1 156.6 398.3L184.8 342L239.4 396.7C251.8 409.1 268.6 416 286.1 416C322.5 416 352 386.5 352 350.1V248C352 217.1 326.9 192 296 192C265.1 192 240 217.1 240 248V306.7z" - } - }, - "free": [ - "solid" - ] - }, - "square-phone": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f098", - "aliases": { - "names": [ - "phone-square" - ], - "unicodes": { - "secondary": [ - "10f098" - ] - } - }, - "label": "Square phone", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96C448 60.65 419.3 32 384 32zM351.6 321.5l-11.62 50.39c-1.633 7.125-7.9 12.11-15.24 12.11c-126.1 0-228.7-102.6-228.7-228.8c0-7.328 4.984-13.59 12.11-15.22l50.38-11.63c7.344-1.703 14.88 2.109 17.93 9.062l23.27 54.28c2.719 6.391 .8828 13.83-4.492 18.22L168.3 232c16.99 34.61 45.14 62.75 79.77 79.75l22.02-26.91c4.344-5.391 11.85-7.25 18.24-4.484l54.24 23.25C349.5 306.6 353.3 314.2 351.6 321.5z" - } - }, - "free": [ - "solid" - ] - }, - "square-phone-flip": { - "changes": [ - "5.9.0", - "5.10.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f87b", - "aliases": { - "names": [ - "phone-square-alt" - ], - "unicodes": { - "secondary": [ - "10f87b" - ] - } - }, - "label": "Square phone flip", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 96v320c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V96c0-35.35-28.65-64-64-64H64C28.65 32 0 60.65 0 96zM105.5 303.6l54.24-23.25c6.391-2.766 13.9-.9062 18.24 4.484l22.02 26.91c34.63-17 62.77-45.14 79.77-79.75l-26.91-22.05c-5.375-4.391-7.211-11.83-4.492-18.22l23.27-54.28c3.047-6.953 10.59-10.77 17.93-9.062l50.38 11.63c7.125 1.625 12.11 7.891 12.11 15.22c0 126.1-102.6 228.8-228.7 228.8c-7.336 0-13.6-4.984-15.24-12.11l-11.62-50.39C94.71 314.2 98.5 306.6 105.5 303.6z" - } - }, - "free": [ - "solid" - ] - }, - "square-pied-piper": { - "changes": [ - "5.12.0", - "5.14.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e01e", - "aliases": { - "names": [ - "pied-piper-square" - ] - }, - "label": "Pied Piper Square Logo (Old)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572495, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M32 419L0 479.2l.8-328C.8 85.3 54 32 120 32h327.2c-93 28.9-189.9 94.2-253.9 168.6C122.7 282 82.6 338 32 419M448 32S305.2 98.8 261.6 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66h328.4c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z" - } - }, - "free": [ - "brands" - ] - }, - "square-pinterest": { - "changes": [ - "2.0.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f0d3", - "aliases": { - "names": [ - "pinterest-square" - ] - }, - "label": "Pinterest Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 80v352c0 26.5-21.5 48-48 48H154.4c9.8-16.4 22.4-40 27.4-59.3 3-11.5 15.3-58.4 15.3-58.4 8 15.3 31.4 28.2 56.3 28.2 74.1 0 127.4-68.1 127.4-152.7 0-81.1-66.2-141.8-151.4-141.8-106 0-162.2 71.1-162.2 148.6 0 36 19.2 80.8 49.8 95.1 4.7 2.2 7.1 1.2 8.2-3.3 .8-3.4 5-20.1 6.8-27.8 .6-2.5 .3-4.6-1.7-7-10.1-12.3-18.3-34.9-18.3-56 0-54.2 41-106.6 110.9-106.6 60.3 0 102.6 41.1 102.6 99.9 0 66.4-33.5 112.4-77.2 112.4-24.1 0-42.1-19.9-36.4-44.4 6.9-29.2 20.3-60.7 20.3-81.8 0-53-75.5-45.7-75.5 25 0 21.7 7.3 36.5 7.3 36.5-31.4 132.8-36.1 134.5-29.6 192.6l2.2 .8H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48z" - } - }, - "free": [ - "brands" - ] - }, - "square-plus": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f0fe", - "aliases": { - "names": [ - "plus-square" - ], - "unicodes": { - "composite": [ - "f196" - ], - "secondary": [ - "10f0fe" - ] - } - }, - "label": "Square plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM224 368C237.3 368 248 357.3 248 344V280H312C325.3 280 336 269.3 336 256C336 242.7 325.3 232 312 232H248V168C248 154.7 237.3 144 224 144C210.7 144 200 154.7 200 168V232H136C122.7 232 112 242.7 112 256C112 269.3 122.7 280 136 280H200V344C200 357.3 210.7 368 224 368z" - }, - "regular": { - "last_modified": 1658443573126, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M200 344V280H136C122.7 280 112 269.3 112 256C112 242.7 122.7 232 136 232H200V168C200 154.7 210.7 144 224 144C237.3 144 248 154.7 248 168V232H312C325.3 232 336 242.7 336 256C336 269.3 325.3 280 312 280H248V344C248 357.3 237.3 368 224 368C210.7 368 200 357.3 200 344zM0 96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96zM48 96V416C48 424.8 55.16 432 64 432H384C392.8 432 400 424.8 400 416V96C400 87.16 392.8 80 384 80H64C55.16 80 48 87.16 48 96z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "square-poll-horizontal": { - "changes": [ - "5.3.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f682", - "aliases": { - "names": [ - "poll-h" - ], - "unicodes": { - "secondary": [ - "10f682" - ] - } - }, - "label": "Square poll horizontal", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384C419.3 32 448 60.65 448 96V416zM256 160C256 142.3 241.7 128 224 128H128C110.3 128 96 142.3 96 160C96 177.7 110.3 192 128 192H224C241.7 192 256 177.7 256 160zM128 224C110.3 224 96 238.3 96 256C96 273.7 110.3 288 128 288H320C337.7 288 352 273.7 352 256C352 238.3 337.7 224 320 224H128zM192 352C192 334.3 177.7 320 160 320H128C110.3 320 96 334.3 96 352C96 369.7 110.3 384 128 384H160C177.7 384 192 369.7 192 352z" - } - }, - "free": [ - "solid" - ] - }, - "square-poll-vertical": { - "changes": [ - "5.3.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f681", - "aliases": { - "names": [ - "poll" - ], - "unicodes": { - "secondary": [ - "10f681" - ] - } - }, - "label": "Square poll vertical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM128 224C110.3 224 96 238.3 96 256V352C96 369.7 110.3 384 128 384C145.7 384 160 369.7 160 352V256C160 238.3 145.7 224 128 224zM192 352C192 369.7 206.3 384 224 384C241.7 384 256 369.7 256 352V160C256 142.3 241.7 128 224 128C206.3 128 192 142.3 192 160V352zM320 288C302.3 288 288 302.3 288 320V352C288 369.7 302.3 384 320 384C337.7 384 352 369.7 352 352V320C352 302.3 337.7 288 320 288z" - } - }, - "free": [ - "solid" - ] - }, - "square-reddit": { - "changes": [ - "4.1.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a2", - "aliases": { - "names": [ - "reddit-square" - ] - }, - "label": "reddit Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M283.2 345.5c2.7 2.7 2.7 6.8 0 9.2-24.5 24.5-93.8 24.6-118.4 0-2.7-2.4-2.7-6.5 0-9.2 2.4-2.4 6.5-2.4 8.9 0 18.7 19.2 81 19.6 100.5 0 2.4-2.3 6.6-2.3 9 0zm-91.3-53.8c0-14.9-11.9-26.8-26.5-26.8-14.9 0-26.8 11.9-26.8 26.8 0 14.6 11.9 26.5 26.8 26.5 14.6 0 26.5-11.9 26.5-26.5zm90.7-26.8c-14.6 0-26.5 11.9-26.5 26.8 0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-11.9 26.8-26.5 0-14.9-11.9-26.8-26.8-26.8zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-99.7 140.6c-10.1 0-19 4.2-25.6 10.7-24.1-16.7-56.5-27.4-92.5-28.6l18.7-84.2 59.5 13.4c0 14.6 11.9 26.5 26.5 26.5 14.9 0 26.8-12.2 26.8-26.8 0-14.6-11.9-26.8-26.8-26.8-10.4 0-19.3 6.2-23.8 14.9l-65.7-14.6c-3.3-.9-6.5 1.5-7.4 4.8l-20.5 92.8c-35.7 1.5-67.8 12.2-91.9 28.9-6.5-6.8-15.8-11-25.9-11-37.5 0-49.8 50.4-15.5 67.5-1.2 5.4-1.8 11-1.8 16.7 0 56.5 63.7 102.3 141.9 102.3 78.5 0 142.2-45.8 142.2-102.3 0-5.7-.6-11.6-2.1-17 33.6-17.2 21.2-67.2-16.1-67.2z" - } - }, - "free": [ - "brands" - ] - }, - "square-root-variable": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f698", - "aliases": { - "names": [ - "square-root-alt" - ], - "unicodes": { - "secondary": [ - "10f698" - ] - } - }, - "label": "Square root variable", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M576 32.01c0-17.69-14.33-31.1-32-31.1l-224-.0049c-14.69 0-27.48 10-31.05 24.25L197.9 388.3L124.6 241.7C119.2 230.9 108.1 224 96 224L32 224c-17.67 0-32 14.31-32 31.1s14.33 32 32 32h44.22l103.2 206.3c5.469 10.91 16.6 17.68 28.61 17.68c1.172 0 2.323-.0576 3.495-.1826c13.31-1.469 24.31-11.06 27.56-24.06l105.9-423.8H544C561.7 64.01 576 49.7 576 32.01zM566.6 233.4c-12.5-12.5-32.75-12.5-45.25 0L480 274.8l-41.38-41.37c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25l41.38 41.38l-41.38 41.38c-12.5 12.5-12.5 32.75 0 45.25C399.6 412.9 407.8 416 416 416s16.38-3.125 22.62-9.375L480 365.3l41.38 41.38C527.6 412.9 535.8 416 544 416s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25l-41.38-41.38L566.6 278.6C579.1 266.1 579.1 245.9 566.6 233.4z" - } - }, - "free": [ - "solid" - ] - }, - "square-rss": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f143", - "aliases": { - "names": [ - "rss-square" - ], - "unicodes": { - "secondary": [ - "10f143" - ] - } - }, - "label": "Square rss", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573324, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.66 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.66 419.3 32 384 32zM150.6 374.6C144.4 380.9 136.2 384 128 384s-16.38-3.121-22.63-9.371c-12.5-12.5-12.5-32.76 0-45.26C111.6 323.1 119.8 320 128 320s16.38 3.121 22.63 9.371C163.1 341.9 163.1 362.1 150.6 374.6zM249.6 383.9C249 383.1 248.5 384 247.1 384c-12.53 0-23.09-9.75-23.92-22.44C220.5 306.9 173.1 259.5 118.4 255.9c-13.22-.8438-23.25-12.28-22.39-25.5c.8594-13.25 12.41-22.81 25.52-22.38c77.86 5.062 145.3 72.5 150.4 150.4C272.8 371.7 262.8 383.1 249.6 383.9zM345 383.1C344.7 384 344.3 384 343.1 384c-12.8 0-23.42-10.09-23.97-23C315.6 254.6 225.4 164.4 119 159.1C105.8 159.4 95.47 148.3 96.02 135C96.58 121.8 107.9 111.2 121 112c130.7 5.469 241.5 116.3 246.1 246.1C368.5 372.3 358.3 383.4 345 383.1z" - } - }, - "free": [ - "solid" - ] - }, - "square-share-nodes": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1e1", - "aliases": { - "names": [ - "share-alt-square" - ], - "unicodes": { - "secondary": [ - "10f1e1" - ] - } - }, - "label": "Square share nodes", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573325, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM320 96C284.7 96 256 124.7 256 160C256 162.5 256.1 164.9 256.4 167.3L174.5 212C162.8 199.7 146.3 192 128 192C92.65 192 64 220.7 64 256C64 291.3 92.65 320 128 320C146.3 320 162.8 312.3 174.5 299.1L256.4 344.7C256.1 347.1 256 349.5 256 352C256 387.3 284.7 416 320 416C355.3 416 384 387.3 384 352C384 316.7 355.3 288 320 288C304.6 288 290.5 293.4 279.4 302.5L194.1 256L279.4 209.5C290.5 218.6 304.6 224 320 224C355.3 224 384 195.3 384 160C384 124.7 355.3 96 320 96V96z" - } - }, - "free": [ - "solid" - ] - }, - "square-snapchat": { - "changes": [ - "4.6.0", - "5.0.0", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2ad", - "aliases": { - "names": [ - "snapchat-square" - ] - }, - "label": "Snapchat Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64A64 64 0 0 0 0 96V416a64 64 0 0 0 64 64H384a64 64 0 0 0 64-64V96A64 64 0 0 0 384 32zm-3.907 319.3-.083 .1a32.36 32.36 0 0 1 -8.717 6.823 90.26 90.26 0 0 1 -20.59 8.2 12.69 12.69 0 0 0 -3.852 1.76c-2.158 1.909-2.1 4.64-4.4 8.55a23.14 23.14 0 0 1 -6.84 7.471c-6.707 4.632-14.24 4.923-22.23 5.23-7.214 .274-15.39 .581-24.73 3.669-3.761 1.245-7.753 3.694-12.38 6.533-11.27 6.9-26.68 16.35-52.3 16.35s-40.92-9.4-52.11-16.28c-4.657-2.888-8.675-5.362-12.54-6.64-9.339-3.08-17.52-3.4-24.73-3.67-7.986-.307-15.52-.6-22.23-5.229a23.08 23.08 0 0 1 -6.01-6.11c-3.2-4.632-2.855-7.8-5.254-9.895a13.43 13.43 0 0 0 -4.1-1.834 89.99 89.99 0 0 1 -20.31-8.127 32.9 32.9 0 0 1 -8.3-6.284c-6.583-6.757-8.276-14.78-5.686-21.82 3.436-9.338 11.57-12.11 19.4-16.26 14.78-8.027 26.35-18.06 34.43-29.88a68.24 68.24 0 0 0 5.985-10.57c.789-2.158 .772-3.329 .241-4.416a7.386 7.386 0 0 0 -2.208-2.217c-2.532-1.676-5.113-3.353-6.882-4.5-3.27-2.141-5.868-3.818-7.529-4.98-6.267-4.383-10.65-9.04-13.4-14.24a28.4 28.4 0 0 1 -1.369-23.58c4.134-10.92 14.47-17.71 26.98-17.71a37.14 37.14 0 0 1 7.845 .83c.689 .15 1.37 .307 2.042 .482-.108-7.43 .058-15.36 .722-23.12 2.358-27.26 11.91-41.59 21.87-52.99a86.84 86.84 0 0 1 22.28-17.93C188.3 100.4 205.3 96 224 96s35.83 4.383 50.94 13.02a87.17 87.17 0 0 1 22.24 17.9c9.961 11.41 19.52 25.71 21.87 52.99a231.2 231.2 0 0 1 .713 23.12c.673-.174 1.362-.332 2.051-.481a37.13 37.13 0 0 1 7.844-.83c12.5 0 22.82 6.782 26.97 17.71a28.37 28.37 0 0 1 -1.4 23.56c-2.74 5.2-7.123 9.861-13.39 14.24-1.668 1.187-4.258 2.864-7.529 4.981-1.835 1.187-4.541 2.947-7.164 4.682a6.856 6.856 0 0 0 -1.951 2.034c-.506 1.046-.539 2.191 .166 4.208a69.01 69.01 0 0 0 6.085 10.79c8.268 12.1 20.19 22.31 35.45 30.41 1.486 .772 2.98 1.5 4.441 2.258 .722 .332 1.569 .763 2.491 1.3 4.9 2.723 9.2 6.01 11.45 12.15C387.8 336.9 386.3 344.7 380.1 351.3zm-16.72-18.46c-50.31-24.31-58.33-61.92-58.69-64.75-.431-3.379-.921-6.035 2.806-9.472 3.594-3.328 19.54-13.19 23.97-16.28 7.33-5.114 10.53-10.22 8.16-16.5-1.66-4.316-5.686-5.976-9.961-5.976a18.5 18.5 0 0 0 -3.993 .448c-8.035 1.743-15.84 5.769-20.35 6.857a7.1 7.1 0 0 1 -1.66 .224c-2.408 0-3.279-1.071-3.088-3.968 .564-8.783 1.759-25.92 .373-41.94-1.884-22.03-8.99-32.95-17.43-42.6-4.051-4.624-23.14-24.65-59.54-24.65S168.5 134.4 164.5 139c-8.434 9.654-15.53 20.57-17.43 42.6-1.386 16.01-.141 33.15 .373 41.94 .166 2.756-.68 3.968-3.088 3.968a7.1 7.1 0 0 1 -1.66-.224c-4.507-1.087-12.31-5.113-20.35-6.856a18.49 18.49 0 0 0 -3.993-.449c-4.25 0-8.3 1.636-9.961 5.977-2.374 6.276 .847 11.38 8.168 16.49 4.425 3.088 20.37 12.96 23.97 16.28 3.719 3.437 3.237 6.093 2.805 9.471-.356 2.79-8.384 40.39-58.69 64.75-2.946 1.428-7.96 4.45 .88 9.331 13.88 7.628 23.11 6.807 30.3 11.43 6.093 3.927 2.5 12.39 6.923 15.45 5.454 3.76 21.58-.266 42.33 6.6 17.43 5.744 28.12 22.01 58.96 22.01s41.79-16.3 58.94-21.97c20.8-6.865 36.89-2.839 42.34-6.6 4.433-3.055 .822-11.52 6.923-15.45 7.181-4.624 16.41-3.8 30.3-11.47C371.4 337.4 366.3 334.3 363.4 332.8z" - } - }, - "free": [ - "brands" - ] - }, - "square-steam": { - "changes": [ - "4.1.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1b7", - "aliases": { - "names": [ - "steam-square" - ] - }, - "label": "Steam Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M185.2 356.5c7.7-18.5-1-39.7-19.6-47.4l-29.5-12.2c11.4-4.3 24.3-4.5 36.4 .5 12.2 5.1 21.6 14.6 26.7 26.7 5 12.2 5 25.6-.1 37.7-10.5 25.1-39.4 37-64.6 26.5-11.6-4.8-20.4-13.6-25.4-24.2l28.5 11.8c18.6 7.8 39.9-.9 47.6-19.4zM400 32H48C21.5 32 0 53.5 0 80v160.7l116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2v-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2V432c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-99.7 222.5c-32.2 0-58.4-26.1-58.4-58.3s26.2-58.3 58.4-58.3 58.4 26.2 58.4 58.3-26.2 58.3-58.4 58.3zm.1-14.6c24.2 0 43.9-19.6 43.9-43.8 0-24.2-19.6-43.8-43.9-43.8-24.2 0-43.9 19.6-43.9 43.8 0 24.2 19.7 43.8 43.9 43.8z" - } - }, - "free": [ - "brands" - ] - }, - "square-tumblr": { - "changes": [ - "3.2.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f174", - "aliases": { - "names": [ - "tumblr-square" - ] - }, - "label": "Tumblr Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-82.3 364.2c-8.5 9.1-31.2 19.8-60.9 19.8-75.5 0-91.9-55.5-91.9-87.9v-90h-29.7c-3.4 0-6.2-2.8-6.2-6.2v-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2 .5-6.9 4.1-10.2 10-10.2h44.3c3.4 0 6.2 2.8 6.2 6.2v72h51.9c3.4 0 6.2 2.8 6.2 6.2v51.1c0 3.4-2.8 6.2-6.2 6.2h-52.1V321c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2 .5 3.6 2.1 4.6 4.9l13.8 40.2c1 3.2 2 6.7-.3 9.1z" - } - }, - "free": [ - "brands" - ] - }, - "square-twitter": { - "changes": [ - "1.0.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f081", - "aliases": { - "names": [ - "twitter-square" - ] - }, - "label": "Twitter Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-48.9 158.8c.2 2.8 .2 5.7 .2 8.5 0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3 .6 10.4 .8 15.8 .8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4v-.8c8.7 4.9 18.9 7.9 29.6 8.3a65.45 65.45 0 0 1 -29.2-54.6c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34z" - } - }, - "free": [ - "brands" - ] - }, - "square-up-right": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f360", - "aliases": { - "names": [ - "external-link-square-alt" - ], - "unicodes": { - "composite": [ - "2197" - ], - "secondary": [ - "10f360" - ] - } - }, - "label": "Square up right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573325, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32H64C28.65 32 0 60.65 0 96v320c0 35.34 28.65 64 64 64h320c35.35 0 64-28.66 64-64V96C448 60.65 419.3 32 384 32zM330.5 323.9c0 6.473-3.889 12.3-9.877 14.78c-5.979 2.484-12.86 1.105-17.44-3.469l-45.25-45.25l-67.92 67.92c-12.5 12.5-32.72 12.46-45.21-.0411l-22.63-22.63C109.7 322.7 109.6 302.5 122.1 289.1l67.92-67.92L144.8 176.8C140.2 172.2 138.8 165.3 141.3 159.4c2.477-5.984 8.309-9.875 14.78-9.875h158.4c8.835 0 15.1 7.163 15.1 15.1V323.9z" - } - }, - "free": [ - "solid" - ] - }, - "square-viadeo": { - "changes": [ - "4.6.0", - "5.0.0", - "5.7.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2aa", - "aliases": { - "names": [ - "viadeo-square" - ] - }, - "label": "Viadeo Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM280.7 381.2c-42.4 46.2-120 46.6-162.4 0-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1v.4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6zM309 233.7c-13.3 0-25.1-7.1-34.4-16.1 21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 21.6-20.5 53-8.5 72.4-50 32.5 46.2 13.1 130.3-36.3 130.3z" - } - }, - "free": [ - "brands" - ] - }, - "square-vimeo": { - "changes": [ - "4.0.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f194", - "aliases": { - "names": [ - "vimeo-square" - ] - }, - "label": "Vimeo Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zm-16.2 149.6c-1.4 31.1-23.2 73.8-65.3 127.9-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-25.2-92.3-35.9-146.4-56.7-146.4-2.4 0-10.8 5-25.1 15.1L64 192c36.9-32.4 72.1-68.4 94.1-70.4 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64z" - } - }, - "free": [ - "brands" - ] - }, - "square-virus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e578", - "label": "Square Virus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573326, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 224C160 206.3 174.3 192 192 192C209.7 192 224 206.3 224 224C224 241.7 209.7 256 192 256C174.3 256 160 241.7 160 224zM280 288C280 301.3 269.3 312 256 312C242.7 312 232 301.3 232 288C232 274.7 242.7 264 256 264C269.3 264 280 274.7 280 288zM384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM199.8 117.7C199.8 146.9 164.5 161.6 143.8 140.9C134.4 131.5 119.2 131.5 109.8 140.9C100.5 150.2 100.5 165.4 109.8 174.8C130.5 195.5 115.9 230.9 86.61 230.9C73.35 230.9 62.61 241.6 62.61 254.9C62.61 268.1 73.35 278.9 86.61 278.9C115.9 278.9 130.5 314.3 109.8 334.9C100.5 344.3 100.5 359.5 109.8 368.9C119.2 378.3 134.4 378.3 143.8 368.9C164.5 348.2 199.8 362.9 199.8 392.1C199.8 405.4 210.6 416.1 223.8 416.1C237.1 416.1 247.8 405.4 247.8 392.1C247.8 362.9 283.2 348.2 303.9 368.9C313.3 378.3 328.5 378.3 337.8 368.9C347.2 359.5 347.2 344.3 337.8 334.9C317.2 314.3 331.8 278.9 361.1 278.9C374.3 278.9 385.1 268.1 385.1 254.9C385.1 241.6 374.3 230.9 361.1 230.9C331.8 230.9 317.2 195.5 337.8 174.8C347.2 165.4 347.2 150.2 337.8 140.9C328.5 131.5 313.3 131.5 303.9 140.9C283.2 161.6 247.8 146.9 247.8 117.7C247.8 104.4 237.1 93.65 223.8 93.65C210.6 93.65 199.8 104.4 199.8 117.7H199.8z" - } - }, - "free": [ - "solid" - ] - }, - "square-whatsapp": { - "changes": [ - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f40c", - "aliases": { - "names": [ - "whatsapp-square" - ] - }, - "label": "What's App Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 122.8c-72.7 0-131.8 59.1-131.9 131.8 0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4h.1c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7zm77.5 188.4c-3.3 9.3-19.1 17.7-26.7 18.8-12.6 1.9-22.4 .9-47.5-9.9-39.7-17.2-65.7-57.2-67.7-59.8-2-2.6-16.2-21.5-16.2-41s10.2-29.1 13.9-33.1c3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6 .1 2.4 .1 5.7-.9 8.9 6.8 3.3 7.9 11.2 27.4 12.2 29.4s1.7 4.3 .3 6.9c-7.6 15.2-15.7 14.6-11.6 21.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2 3.6 1.3 23.1 10.9 27.1 12.9s6.6 3 7.6 4.6c.9 1.9 .9 9.9-2.4 19.1zM400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM223.9 413.2c-26.6 0-52.7-6.7-75.8-19.3L64 416l22.5-82.2c-13.9-24-21.2-51.3-21.2-79.3C65.4 167.1 136.5 96 223.9 96c42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5z" - } - }, - "free": [ - "brands" - ] - }, - "square-xing": { - "changes": [ - "3.2.0", - "5.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f169", - "aliases": { - "names": [ - "xing-square" - ] - }, - "label": "Xing Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M400 32H48C21.5 32 0 53.5 0 80v352c0 26.5 21.5 48 48 48h352c26.5 0 48-21.5 48-48V80c0-26.5-21.5-48-48-48zM140.4 320.2H93.8c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1h46.6c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1zm219.7-214.1L257.3 286.8v.2l65.5 119c2.8 5.1 .1 10.1-6 10.1h-46.6c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c2.3-4.1 36.8-64.9 103.4-182.3 3.3-5.8 7.4-8.7 12.5-8.7h46.9c5.7-.1 8.8 4.7 6 10z" - } - }, - "free": [ - "brands" - ] - }, - "square-xmark": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2d3", - "aliases": { - "names": [ - "times-square", - "xmark-square" - ], - "unicodes": { - "composite": [ - "274e" - ], - "secondary": [ - "10f2d3" - ] - } - }, - "label": "Square X Mark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573326, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 32C419.3 32 448 60.65 448 96V416C448 451.3 419.3 480 384 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H384zM143 208.1L190.1 255.1L143 303C133.7 312.4 133.7 327.6 143 336.1C152.4 346.3 167.6 346.3 176.1 336.1L223.1 289.9L271 336.1C280.4 346.3 295.6 346.3 304.1 336.1C314.3 327.6 314.3 312.4 304.1 303L257.9 255.1L304.1 208.1C314.3 199.6 314.3 184.4 304.1 175C295.6 165.7 280.4 165.7 271 175L223.1 222.1L176.1 175C167.6 165.7 152.4 165.7 143 175C133.7 184.4 133.7 199.6 143 208.1V208.1z" - } - }, - "free": [ - "solid" - ] - }, - "square-youtube": { - "changes": [ - "5.0.3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f431", - "aliases": { - "names": [ - "youtube-square" - ], - "unicodes": { - "composite": [ - "f166" - ] - } - }, - "label": "YouTube Square", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572496, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M186.8 202.1l95.2 54.1-95.2 54.1V202.1zM448 80v352c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48h352c26.5 0 48 21.5 48 48zm-42 176.3s0-59.6-7.6-88.2c-4.2-15.8-16.5-28.2-32.2-32.4C337.9 128 224 128 224 128s-113.9 0-142.2 7.7c-15.7 4.2-28 16.6-32.2 32.4-7.6 28.5-7.6 88.2-7.6 88.2s0 59.6 7.6 88.2c4.2 15.8 16.5 27.7 32.2 31.9C110.1 384 224 384 224 384s113.9 0 142.2-7.7c15.7-4.2 28-16.1 32.2-31.9 7.6-28.5 7.6-88.1 7.6-88.1z" - } - }, - "free": [ - "brands" - ] - }, - "squarespace": { - "changes": [ - "5.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5be", - "label": "Squarespace", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M186.1 343.3c-9.65 9.65-9.65 25.29 0 34.94 9.65 9.65 25.29 9.65 34.94 0L378.2 221.1c19.29-19.29 50.57-19.29 69.86 0s19.29 50.57 0 69.86L293.1 445.1c19.27 19.29 50.53 19.31 69.82 .04l.04-.04 119.3-119.2c38.59-38.59 38.59-101.1 0-139.7-38.59-38.59-101.2-38.59-139.7 0l-157.2 157.2zm244.5-104.8c-9.65-9.65-25.29-9.65-34.93 0l-157.2 157.2c-19.27 19.29-50.53 19.31-69.82 .05l-.05-.05c-9.64-9.64-25.27-9.65-34.92-.01l-.01 .01c-9.65 9.64-9.66 25.28-.02 34.93l.02 .02c38.58 38.57 101.1 38.57 139.7 0l157.2-157.2c9.65-9.65 9.65-25.29 .01-34.93zm-261.1 87.33l157.2-157.2c9.64-9.65 9.64-25.29 0-34.94-9.64-9.64-25.27-9.64-34.91 0L133.7 290.9c-19.28 19.29-50.56 19.3-69.85 .01l-.01-.01c-19.29-19.28-19.31-50.54-.03-69.84l.03-.03L218 66.89c-19.28-19.29-50.55-19.3-69.85-.02l-.02 .02L28.93 186.1c-38.58 38.59-38.58 101.1 0 139.7 38.6 38.59 101.1 38.59 139.7 .01zm-87.33-52.4c9.64 9.64 25.27 9.64 34.91 0l157.2-157.2c19.28-19.29 50.55-19.3 69.84-.02l.02 .02c9.65 9.65 25.29 9.65 34.93 0 9.65-9.65 9.65-25.29 0-34.93-38.59-38.59-101.1-38.59-139.7 0L81.33 238.5c-9.65 9.64-9.65 25.28-.01 34.93h.01z" - } - }, - "free": [ - "brands" - ] - }, - "stack-exchange": { - "changes": [ - "4.0.0", - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f18d", - "label": "Stack Exchange", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M17.7 332.3h412.7v22c0 37.7-29.3 68-65.3 68h-19L259.3 512v-89.7H83c-36 0-65.3-30.3-65.3-68v-22zm0-23.6h412.7v-85H17.7v85zm0-109.4h412.7v-85H17.7v85zM365 0H83C47 0 17.7 30.3 17.7 67.7V90h412.7V67.7C430.3 30.3 401 0 365 0z" - } - }, - "free": [ - "brands" - ] - }, - "stack-overflow": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f16c", - "label": "Stack Overflow", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M290.7 311L95 269.7 86.8 309l195.7 41zm51-87L188.2 95.7l-25.5 30.8 153.5 128.3zm-31.2 39.7L129.2 179l-16.7 36.5L293.7 300zM262 32l-32 24 119.3 160.3 32-24zm20.5 328h-200v39.7h200zm39.7 80H42.7V320h-40v160h359.5V320h-40z" - } - }, - "free": [ - "brands" - ] - }, - "stackpath": { - "changes": [ - "5.8.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f842", - "label": "Stackpath", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M244.6 232.4c0 8.5-4.26 20.49-21.34 20.49h-19.61v-41.47h19.61c17.13 0 21.34 12.36 21.34 20.98zM448 32v448H0V32zM151.3 287.8c0-21.24-12.12-34.54-46.72-44.85-20.57-7.41-26-10.91-26-18.63s7-14.61 20.41-14.61c14.09 0 20.79 8.45 20.79 18.35h30.7l.19-.57c.5-19.57-15.06-41.65-51.12-41.65-23.37 0-52.55 10.75-52.55 38.29 0 19.4 9.25 31.29 50.74 44.37 17.26 6.15 21.91 10.4 21.91 19.48 0 15.2-19.13 14.23-19.47 14.23-20.4 0-25.65-9.1-25.65-21.9h-30.8l-.18 .56c-.68 31.32 28.38 45.22 56.63 45.22 29.98 0 51.12-13.55 51.12-38.29zm125.4-55.63c0-25.3-18.43-45.46-53.42-45.46h-51.78v138.2h32.17v-47.36h19.61c30.25 0 53.42-15.95 53.42-45.36zM297.9 325L347 186.8h-31.09L268 325zm106.5-138.2h-31.09L325.5 325h29.94z" - } - }, - "free": [ - "brands" - ] - }, - "staff-snake": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e579", - "aliases": { - "names": [ - "rod-asclepius", - "rod-snake", - "staff-aesculapius" - ] - }, - "label": "Staff Aesculapius", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573327, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M222.5 48H288C341 48 384 90.98 384 144C384 197 341 240 288 240H248V160H288C296.8 160 304 152.8 304 144C304 135.2 296.8 128 288 128H220L215.5 272H256C309 272 352 314.1 352 368C352 421 309 464 256 464H240V384H256C264.8 384 272 376.8 272 368C272 359.2 264.8 352 256 352H212.1L208.5 496C208.2 504.9 200.9 512 191.1 512C183.1 512 175.8 504.9 175.5 496L174.5 464H135.1C113.9 464 95.1 446.1 95.1 424C95.1 401.9 113.9 384 135.1 384H171.1L170.1 352H151.1C98.98 352 55.1 309 55.1 256C55.1 208.4 90.6 168.9 135.1 161.3V256C135.1 264.8 143.2 272 151.1 272H168.5L164 128H122.6C113.6 146.9 94.34 160 72 160H56C25.07 160 0 134.9 0 104C0 73.07 25.07 48 56 48H161.5L160.1 31.98C160.1 31.33 160.1 30.69 160.1 30.05C161.5 13.43 175.1 0 192 0C208.9 0 222.5 13.43 223 30.05C223 30.69 223 31.33 223 31.98L222.5 48zM79.1 96C79.1 87.16 72.84 80 63.1 80C55.16 80 47.1 87.16 47.1 96C47.1 104.8 55.16 112 63.1 112C72.84 112 79.1 104.8 79.1 96z" - } - }, - "free": [ - "solid" - ] - }, - "stairs": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e289", - "label": "Stairs", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573327, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M576 64c0 17.67-14.31 32-32 32h-96v96c0 17.67-14.31 32-32 32h-96v96c0 17.67-14.31 32-32 32H192v96c0 17.67-14.31 32-32 32H32c-17.69 0-32-14.33-32-32s14.31-32 32-32h96v-96c0-17.67 14.31-32 32-32h96V192c0-17.67 14.31-32 32-32h96V64c0-17.67 14.31-32 32-32h128C561.7 32 576 46.33 576 64z" - } - }, - "free": [ - "solid" - ] - }, - "stamp": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5bf", - "aliases": { - "unicodes": { - "secondary": [ - "10f5bf" - ] - } - }, - "label": "Stamp", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573327, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M366.2 256H400C461.9 256 512 306.1 512 368C512 388.9 498.6 406.7 480 413.3V464C480 490.5 458.5 512 432 512H80C53.49 512 32 490.5 32 464V413.3C13.36 406.7 0 388.9 0 368C0 306.1 50.14 256 112 256H145.8C175.7 256 200 231.7 200 201.8C200 184.3 190.8 168.5 180.1 154.8C167.5 138.5 160 118.1 160 96C160 42.98 202.1 0 256 0C309 0 352 42.98 352 96C352 118.1 344.5 138.5 331.9 154.8C321.2 168.5 312 184.3 312 201.8C312 231.7 336.3 256 366.2 256zM416 416H96V448H416V416z" - } - }, - "free": [ - "solid" - ] - }, - "stapler": { - "changes": [ - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e5af", - "label": "Stapler", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573327, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 299.3V432C640 458.5 618.5 480 592 480H64C46.33 480 32 465.7 32 448C32 430.3 46.33 416 64 416H448V368H96C78.33 368 64 353.7 64 336V219.4L33.8 214C14.24 210.5 0 193.5 0 173.7C0 164.8 2.878 156.2 8.201 149.1L43.83 101.6C76.67 57.77 128.2 32 182.9 32C209.9 32 236.6 38.29 260.7 50.36L586.9 213.5C619.5 229.7 640 262.1 640 299.3H640zM448 288L128 230.9V304H448V288z" - } - }, - "free": [ - "solid" - ] - }, - "star": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f005", - "aliases": { - "unicodes": { - "composite": [ - "f006", - "2b50" - ], - "secondary": [ - "10f005" - ] - } - }, - "label": "Star", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573328, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M381.2 150.3L524.9 171.5C536.8 173.2 546.8 181.6 550.6 193.1C554.4 204.7 551.3 217.3 542.7 225.9L438.5 328.1L463.1 474.7C465.1 486.7 460.2 498.9 450.2 506C440.3 513.1 427.2 514 416.5 508.3L288.1 439.8L159.8 508.3C149 514 135.9 513.1 126 506C116.1 498.9 111.1 486.7 113.2 474.7L137.8 328.1L33.58 225.9C24.97 217.3 21.91 204.7 25.69 193.1C29.46 181.6 39.43 173.2 51.42 171.5L195 150.3L259.4 17.97C264.7 6.954 275.9-.0391 288.1-.0391C300.4-.0391 311.6 6.954 316.9 17.97L381.2 150.3z" - }, - "regular": { - "last_modified": 1658443573130, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0L287.9 0zM287.9 78.95L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L276.6 387.5C283.7 383.7 292.2 383.7 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.9 78.95z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "star-and-crescent": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f699", - "aliases": { - "unicodes": { - "composite": [ - "262a" - ], - "secondary": [ - "10f699" - ] - } - }, - "label": "Star and Crescent", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573327, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M340.5 466.4c-1.5 0-6.875 .5-9.25 .5c-116.3 0-210.8-94.63-210.8-210.9s94.5-210.9 210.8-210.9c2.375 0 7.75 .5 9.25 .5c7.125 0 13.25-5 14.75-12c1.375-7.25-2.625-14.5-9.5-17.12c-29.13-11-59.38-16.5-89.75-16.5c-141.1 0-256 114.9-256 256s114.9 256 256 256c30.25 0 60.25-5.5 89.38-16.38c5.875-2 10.25-7.625 10.25-14.25C355.6 473.4 349.3 466.4 340.5 466.4zM503.5 213.9l-76.38-11.12L392.9 133.5C391.1 129.9 387.5 128 384 128c-3.5 0-7.125 1.875-9 5.5l-34.13 69.25l-76.38 11.12c-8.125 1.125-11.38 11.25-5.5 17l55.25 53.88l-13 76c-1.125 6.5 3.1 11.75 9.75 11.75c1.5 0 3.125-.375 4.625-1.25l68.38-35.88l68.25 35.88c1.625 .875 3.125 1.25 4.75 1.25c5.75 0 10.88-5.25 9.75-11.75l-13-76l55.25-53.88C514.9 225.1 511.6 214.1 503.5 213.9z" - } - }, - "free": [ - "solid" - ] - }, - "star-half": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f089", - "aliases": { - "unicodes": { - "composite": [ - "f123" - ], - "secondary": [ - "10f089" - ] - } - }, - "label": "star-half", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573328, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 439.8L159.8 508.3C149 514 135.9 513.1 126 506C116.1 498.9 111.1 486.7 113.2 474.7L137.8 328.1L33.58 225.9C24.97 217.3 21.91 204.7 25.69 193.1C29.46 181.6 39.43 173.2 51.42 171.5L195 150.3L259.4 17.97C264.7 6.995 275.8 .0131 287.1-.0391L288 439.8zM433.2 512C432.1 512.1 431 512.1 429.9 512H433.2z" - }, - "regular": { - "last_modified": 1658443573129, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M293.3 .6123C304.2 3.118 311.9 12.82 311.9 24V408.7C311.9 417.5 307.1 425.7 299.2 429.8L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.1 115.1 483.9L142.2 328.4L31.11 218.3C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C271.2 3.46 282.4-1.893 293.3 .6127L293.3 .6123zM263.9 128.4L235.4 187.2C231.9 194.3 225.1 199.3 217.3 200.5L98.98 217.9L184.9 303C190.4 308.5 192.9 316.4 191.6 324.1L171.4 443.7L263.9 394.3L263.9 128.4z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "star-half-stroke": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f5c0", - "aliases": { - "names": [ - "star-half-alt" - ], - "unicodes": { - "secondary": [ - "10f5c0" - ] - } - }, - "label": "Star half stroke", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573327, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M463.1 474.7C465.1 486.7 460.2 498.9 450.2 506C440.3 513.1 427.2 514 416.5 508.3L288.1 439.8L159.8 508.3C149 514 135.9 513.1 126 506C116.1 498.9 111.1 486.7 113.2 474.7L137.8 328.1L33.58 225.9C24.97 217.3 21.91 204.7 25.69 193.1C29.46 181.6 39.43 173.2 51.42 171.5L195 150.3L259.4 17.97C264.7 6.954 275.9-.0391 288.1-.0391C300.4-.0391 311.6 6.954 316.9 17.97L381.2 150.3L524.9 171.5C536.8 173.2 546.8 181.6 550.6 193.1C554.4 204.7 551.3 217.3 542.7 225.9L438.5 328.1L463.1 474.7zM288 376.4L288.1 376.3L399.7 435.9L378.4 309.6L469.2 219.8L343.8 201.4L288.1 86.85L288 87.14V376.4z" - }, - "regular": { - "last_modified": 1658443573129, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M378.1 154.8L531.4 177.5C540.4 178.8 547.8 185.1 550.7 193.7C553.5 202.4 551.2 211.9 544.8 218.2L433.6 328.4L459.9 483.9C461.4 492.9 457.7 502.1 450.2 507.4C442.8 512.7 432.1 513.4 424.9 509.1L287.9 435.9L150.1 509.1C142.9 513.4 133.1 512.7 125.6 507.4C118.2 502.1 114.5 492.9 115.1 483.9L142.2 328.4L31.11 218.2C24.65 211.9 22.36 202.4 25.2 193.7C28.03 185.1 35.5 178.8 44.49 177.5L197.7 154.8L266.3 13.52C270.4 5.249 278.7 0 287.9 0C297.1 0 305.5 5.25 309.5 13.52L378.1 154.8zM287.1 384.7C291.9 384.7 295.7 385.6 299.2 387.5L404.4 443.7L384.2 324.1C382.9 316.4 385.5 308.5 391 303L476.9 217.9L358.6 200.5C350.7 199.3 343.9 194.3 340.5 187.2L287.1 79.09L287.1 384.7z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "star-of-david": { - "changes": [ - "5.3.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f69a", - "aliases": { - "unicodes": { - "composite": [ - "2721" - ], - "secondary": [ - "10f69a" - ] - } - }, - "label": "Star of David", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573328, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M490.7 345.4L435.6 256l55.1-89.38c14.87-24.25-3.62-54.61-33.12-54.61l-110.6-.005l-57.87-93.1C281.7 6.003 268.9 0 256 0C243.1 0 230.3 6.003 222.9 18L165 112H54.39c-29.62 0-47.99 30.37-33.12 54.62L76.37 256l-55.1 89.38C6.4 369.6 24.77 399.1 54.39 399.1h110.6l57.87 93.1C230.3 505.1 243.1 512 256 512c12.88 0 25.74-6.002 33.12-18l57.83-93.1h110.7C487.2 399.1 505.6 369.6 490.7 345.4zM256 73.77l23.59 38.23H232.5L256 73.77zM89.48 343.1l20.59-33.35l20.45 33.35H89.48zM110 201.3L89.48 168h41.04L110 201.3zM256 438.2l-23.59-38.25h47.08L256 438.2zM313.9 343.1H198L143.8 256l54.22-87.1h116L368.3 256L313.9 343.1zM381.3 343.1l20.67-33.29l20.52 33.29H381.3zM401.1 201.3l-20.51-33.29h41.04L401.1 201.3z" - } - }, - "free": [ - "solid" - ] - }, - "star-of-life": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f621", - "aliases": { - "unicodes": { - "secondary": [ - "10f621" - ] - } - }, - "label": "Star of Life", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573328, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M489.1 363.3l-24.03 41.59c-6.635 11.48-21.33 15.41-32.82 8.78l-129.1-74.56V488c0 13.25-10.75 24-24.02 24H231.1c-13.27 0-24.02-10.75-24.02-24v-148.9L78.87 413.7c-11.49 6.629-26.19 2.698-32.82-8.78l-24.03-41.59c-6.635-11.48-2.718-26.14 8.774-32.77L159.9 256L30.8 181.5C19.3 174.8 15.39 160.2 22.02 148.7l24.03-41.59c6.635-11.48 21.33-15.41 32.82-8.781l129.1 74.56L207.1 24c0-13.25 10.75-24 24.02-24h48.04c13.27 0 24.02 10.75 24.02 24l.0005 148.9l129.1-74.56c11.49-6.629 26.19-2.698 32.82 8.78l24.02 41.59c6.637 11.48 2.718 26.14-8.774 32.77L352.1 256l129.1 74.53C492.7 337.2 496.6 351.8 489.1 363.3z" - } - }, - "free": [ - "solid" - ] - }, - "staylinked": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3f5", - "label": "StayLinked", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 440, - 512 - ], - "width": 440, - "height": 512, - "path": "M382.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L144.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L63.2 268c-3.5-3.5-9.7-3.7-13.9-.5L3.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L211 510.7s7.4 6.8 17.3-.8l198-163.9c4-3.2 4.4-8.7 .7-12.2zm54.5-83.4L226.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L3.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3 .4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7 .9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1 .1c-4.2 3.2-10.5 3.1-14.2-.4L109 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9 .5l160.4 159c3.7 3.5 10 3.7 14.1 .5l45.8-35.8c4.1-3.2 4.4-8.7 .7-12.2z" - } - }, - "free": [ - "brands" - ] - }, - "steam": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1b6", - "label": "Steam", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M496 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5v1.2L176.6 279c-15.5-.9-30.7 3.4-43.5 12.1L0 236.1C10.2 108.4 117.1 8 247.6 8 384.8 8 496 119 496 256zM155.7 384.3l-30.5-12.6a52.79 52.79 0 0 0 27.2 25.8c26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3 .1-40.3-5.4-13-15.5-23.2-28.5-28.6-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zm173.8-129.9c-34.4 0-62.4-28-62.4-62.3s28-62.3 62.4-62.3 62.4 28 62.4 62.3-27.9 62.3-62.4 62.3zm.1-15.6c25.9 0 46.9-21 46.9-46.8 0-25.9-21-46.8-46.9-46.8s-46.9 21-46.9 46.8c.1 25.8 21.1 46.8 46.9 46.8z" - } - }, - "free": [ - "brands" - ] - }, - "steam-symbol": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3f6", - "label": "Steam Symbol", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M395.5 177.5c0 33.8-27.5 61-61 61-33.8 0-61-27.3-61-61s27.3-61 61-61c33.5 0 61 27.2 61 61zm52.5 .2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358V250.7L97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7c.5-62.3 51.5-112.8 114-112.8C397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zm207.5-185.3c0-42-34.3-76.2-76.2-76.2-42.3 0-76.5 34.2-76.5 76.2 0 42.2 34.3 76.2 76.5 76.2 41.9 .1 76.2-33.9 76.2-76.2z" - } - }, - "free": [ - "brands" - ] - }, - "sterling-sign": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f154", - "aliases": { - "names": [ - "gbp", - "pound-sign" - ], - "unicodes": { - "composite": [ - "a3" - ], - "secondary": [ - "10f154" - ] - } - }, - "label": "Sterling sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M112 223.1H224C241.7 223.1 256 238.3 256 255.1C256 273.7 241.7 287.1 224 287.1H112V332.5C112 361.5 104.1 389.1 89.2 414.9L88.52 416H288C305.7 416 320 430.3 320 448C320 465.7 305.7 480 288 480H32C20.47 480 9.834 473.8 4.154 463.8C-1.527 453.7-1.371 441.4 4.56 431.5L34.32 381.9C43.27 367 48 349.9 48 332.5V288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H48V160.4C48 89.47 105.5 32 176.4 32C190.2 32 203.9 34.22 216.1 38.59L298.1 65.64C314.9 71.23 323.9 89.35 318.4 106.1C312.8 122.9 294.6 131.9 277.9 126.4L196.7 99.3C190.2 97.12 183.3 96 176.4 96C140.8 96 112 124.8 112 160.4V223.1z" - } - }, - "free": [ - "solid" - ] - }, - "stethoscope": { - "changes": [ - "3.0.0", - "5.0.0", - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0f1", - "aliases": { - "unicodes": { - "composite": [ - "1fa7a" - ], - "secondary": [ - "10f0f1" - ] - } - }, - "label": "Stethoscope", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M480 112c-44.18 0-80 35.82-80 80c0 32.84 19.81 60.98 48.11 73.31v78.7c0 57.25-50.25 104-112 104c-60 0-109.3-44.1-111.9-99.23C296.1 333.8 352 269.3 352 191.1V36.59c0-11.38-8.15-21.38-19.28-23.5L269.8 .4775c-13-2.625-25.54 5.766-28.16 18.77L238.4 34.99c-2.625 13 5.812 25.59 18.81 28.22l30.69 6.059L287.9 190.7c0 52.88-42.13 96.63-95.13 97.13c-53.38 .5-96.81-42.56-96.81-95.93L95.89 69.37l30.72-6.112c13-2.5 21.41-15.15 18.78-28.15L142.3 19.37c-2.5-13-15.15-21.41-28.15-18.78L51.28 12.99C40.15 15.24 32 25.09 32 36.59v155.4c0 77.25 55.11 142 128.1 156.8C162.7 439.3 240.6 512 336 512c97 0 176-75.37 176-168V265.3c28.23-12.36 48-40.46 48-73.25C560 147.8 524.2 112 480 112zM480 216c-13.25 0-24-10.75-24-24S466.7 168 480 168S504 178.7 504 192S493.3 216 480 216z" - } - }, - "free": [ - "solid" - ] - }, - "sticker-mule": { - "changes": [ - "5.0.0", - "5.7.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3f7", - "label": "Sticker Mule", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M561.7 199.6c-1.3 .3 .3 0 0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3 .5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8 .4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5 .5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5 .5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4 .5 1 1 2 1.5 3.5 .5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5 .5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5 .3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6 .5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3 .8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z" - } - }, - "free": [ - "brands" - ] - }, - "stop": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f04d", - "aliases": { - "unicodes": { - "composite": [ - "23f9" - ], - "secondary": [ - "10f04d" - ] - } - }, - "label": "stop", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 128v255.1c0 35.35-28.65 64-64 64H64c-35.35 0-64-28.65-64-64V128c0-35.35 28.65-64 64-64H320C355.3 64 384 92.65 384 128z" - } - }, - "free": [ - "solid" - ] - }, - "stopwatch": { - "changes": [ - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2f2", - "aliases": { - "unicodes": { - "composite": [ - "23f1" - ], - "secondary": [ - "10f2f2" - ] - } - }, - "label": "Stopwatch", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M272 0C289.7 0 304 14.33 304 32C304 49.67 289.7 64 272 64H256V98.45C293.5 104.2 327.7 120 355.7 143L377.4 121.4C389.9 108.9 410.1 108.9 422.6 121.4C435.1 133.9 435.1 154.1 422.6 166.6L398.5 190.8C419.7 223.3 432 262.2 432 304C432 418.9 338.9 512 224 512C109.1 512 16 418.9 16 304C16 200 92.32 113.8 192 98.45V64H176C158.3 64 144 49.67 144 32C144 14.33 158.3 0 176 0L272 0zM248 192C248 178.7 237.3 168 224 168C210.7 168 200 178.7 200 192V320C200 333.3 210.7 344 224 344C237.3 344 248 333.3 248 320V192z" - } - }, - "free": [ - "solid" - ] - }, - "stopwatch-20": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e06f", - "aliases": { - "unicodes": { - "secondary": [ - "10e06f" - ] - } - }, - "label": "Stopwatch 20", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M276 256C276 249.4 281.4 244 288 244C294.6 244 300 249.4 300 256V352C300 358.6 294.6 364 288 364C281.4 364 276 358.6 276 352V256zM272 0C289.7 0 304 14.33 304 32C304 49.67 289.7 64 272 64H256V98.45C293.5 104.2 327.7 120 355.7 143L377.4 121.4C389.9 108.9 410.1 108.9 422.6 121.4C435.1 133.9 435.1 154.1 422.6 166.6L398.5 190.8C419.7 223.3 432 262.2 432 304C432 418.9 338.9 512 224 512C109.1 512 16 418.9 16 304C16 200 92.32 113.8 192 98.45V64H176C158.3 64 144 49.67 144 32C144 14.33 158.3 0 176 0L272 0zM288 204C259.3 204 236 227.3 236 256V352C236 380.7 259.3 404 288 404C316.7 404 340 380.7 340 352V256C340 227.3 316.7 204 288 204zM172 256.5V258.8C172 262.4 170.7 265.9 168.3 268.6L129.2 312.5C115.5 327.9 108 347.8 108 368.3V384C108 395 116.1 404 128 404H192C203 404 212 395 212 384C212 372.1 203 364 192 364H148.2C149.1 354.8 152.9 346.1 159.1 339.1L198.2 295.2C207.1 285.1 211.1 272.2 211.1 258.8V256.5C211.1 227.5 188.5 204 159.5 204C136.8 204 116.8 218.5 109.6 239.9L109 241.7C105.5 252.2 111.2 263.5 121.7 266.1C132.2 270.5 143.5 264.8 146.1 254.3L147.6 252.6C149.3 247.5 154.1 244 159.5 244C166.4 244 171.1 249.6 171.1 256.5L172 256.5z" - } - }, - "free": [ - "solid" - ] - }, - "store": { - "changes": [ - "5.0.13", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f54e", - "aliases": { - "unicodes": { - "secondary": [ - "10f54e" - ] - } - }, - "label": "Store", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M495.5 223.2C491.6 223.7 487.6 224 483.4 224C457.4 224 434.2 212.6 418.3 195C402.4 212.6 379.2 224 353.1 224C327 224 303.8 212.6 287.9 195C272 212.6 248.9 224 222.7 224C196.7 224 173.5 212.6 157.6 195C141.7 212.6 118.5 224 92.36 224C88.3 224 84.21 223.7 80.24 223.2C24.92 215.8-1.255 150.6 28.33 103.8L85.66 13.13C90.76 4.979 99.87 0 109.6 0H466.4C476.1 0 485.2 4.978 490.3 13.13L547.6 103.8C577.3 150.7 551 215.8 495.5 223.2H495.5zM499.7 254.9C503.1 254.4 508 253.6 512 252.6V448C512 483.3 483.3 512 448 512H128C92.66 512 64 483.3 64 448V252.6C67.87 253.6 71.86 254.4 75.97 254.9L76.09 254.9C81.35 255.6 86.83 256 92.36 256C104.8 256 116.8 254.1 128 250.6V384H448V250.7C459.2 254.1 471.1 256 483.4 256C489 256 494.4 255.6 499.7 254.9L499.7 254.9z" - } - }, - "free": [ - "solid" - ] - }, - "store-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e071", - "aliases": { - "unicodes": { - "secondary": [ - "10e071" - ] - } - }, - "label": "Store Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M94.92 49.09L117.7 13.13C122.8 4.98 131.9 .0007 141.6 .0007H498.4C508.1 .0007 517.2 4.979 522.3 13.13L579.6 103.8C609.3 150.7 583 215.8 527.5 223.2C523.6 223.7 519.6 224 515.4 224C489.4 224 466.2 212.6 450.3 195C434.4 212.6 411.2 224 385.1 224C359 224 335.8 212.6 319.9 195C314.4 201.1 308.1 206.4 301.2 210.7L480 350.9V250.7C491.2 254.1 503.1 256 515.4 256C521 256 526.4 255.6 531.7 254.9L531.7 254.9C535.1 254.4 540 253.6 544 252.6V401.1L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L94.92 49.09zM112.2 223.2C68.36 217.3 42.82 175.1 48.9 134.5L155.3 218.4C145.7 222 135.3 224 124.4 224C120.3 224 116.2 223.7 112.2 223.2V223.2zM160 384H365.5L514.9 501.7C504.8 508.2 492.9 512 480 512H160C124.7 512 96 483.3 96 448V252.6C99.87 253.6 103.9 254.4 107.1 254.9L108.1 254.9C113.3 255.6 118.8 256 124.4 256C136.8 256 148.8 254.1 160 250.6V384z" - } - }, - "free": [ - "solid" - ] - }, - "strava": { - "changes": [ - "5.0.0", - "5.0.1", - "5.7.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f428", - "label": "Strava", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M158.4 0L7 292h89.2l62.2-116.1L220.1 292h88.5zm150.2 292l-43.9 88.2-44.6-88.2h-67.6l112.2 220 111.5-220z" - } - }, - "free": [ - "brands" - ] - }, - "street-view": { - "changes": [ - "4.3.0", - "5.0.0", - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f21d", - "aliases": { - "unicodes": { - "secondary": [ - "10f21d" - ] - } - }, - "label": "Street View", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M320 64C320 99.35 291.3 128 256 128C220.7 128 192 99.35 192 64C192 28.65 220.7 0 256 0C291.3 0 320 28.65 320 64zM288 160C323.3 160 352 188.7 352 224V272C352 289.7 337.7 304 320 304H318.2L307.2 403.5C305.4 419.7 291.7 432 275.4 432H236.6C220.3 432 206.6 419.7 204.8 403.5L193.8 304H192C174.3 304 160 289.7 160 272V224C160 188.7 188.7 160 224 160H288zM63.27 414.7C60.09 416.3 57.47 417.8 55.33 419.2C51.7 421.6 51.72 426.4 55.34 428.8C64.15 434.6 78.48 440.6 98.33 446.1C137.7 456.1 193.5 464 256 464C318.5 464 374.3 456.1 413.7 446.1C433.5 440.6 447.9 434.6 456.7 428.8C460.3 426.4 460.3 421.6 456.7 419.2C454.5 417.8 451.9 416.3 448.7 414.7C433.4 406.1 409.9 399.8 379.7 394.2C366.6 391.8 358 379.3 360.4 366.3C362.8 353.3 375.3 344.6 388.3 347C420.8 352.9 449.2 361.2 470.3 371.8C480.8 377.1 490.6 383.5 498 391.4C505.6 399.5 512 410.5 512 424C512 445.4 496.5 460.1 482.9 469C468.2 478.6 448.6 486.3 426.4 492.4C381.8 504.7 321.6 512 256 512C190.4 512 130.2 504.7 85.57 492.4C63.44 486.3 43.79 478.6 29.12 469C15.46 460.1 0 445.4 0 424C0 410.5 6.376 399.5 13.96 391.4C21.44 383.5 31.24 377.1 41.72 371.8C62.75 361.2 91.24 352.9 123.7 347C136.7 344.6 149.2 353.3 151.6 366.3C153.1 379.3 145.4 391.8 132.3 394.2C102.1 399.8 78.57 406.1 63.27 414.7H63.27z" - } - }, - "free": [ - "solid" - ] - }, - "strikethrough": { - "changes": [ - "2.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0cc", - "aliases": { - "unicodes": { - "secondary": [ - "10f0cc" - ] - } - }, - "label": "Strikethrough", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M332.2 319.9c17.22 12.17 22.33 26.51 18.61 48.21c-3.031 17.59-10.88 29.34-24.72 36.99c-35.44 19.75-108.5 11.96-186-19.68c-16.34-6.686-35.03 1.156-41.72 17.53s1.188 35.05 17.53 41.71c31.75 12.93 95.69 35.37 157.6 35.37c29.62 0 58.81-5.156 83.72-18.96c30.81-17.09 50.44-45.46 56.72-82.11c3.998-23.27 2.168-42.58-3.488-59.05H332.2zM488 239.9l-176.5-.0309c-15.85-5.613-31.83-10.34-46.7-14.62c-85.47-24.62-110.9-39.05-103.7-81.33c2.5-14.53 10.16-25.96 22.72-34.03c20.47-13.15 64.06-23.84 155.4 .3438c17.09 4.531 34.59-5.654 39.13-22.74c4.531-17.09-5.656-34.59-22.75-39.12c-91.31-24.18-160.7-21.62-206.3 7.654C121.8 73.72 103.6 101.1 98.09 133.1C89.26 184.5 107.9 217.3 137.2 239.9L24 239.9c-13.25 0-24 10.75-24 23.1c0 13.25 10.75 23.1 24 23.1h464c13.25 0 24-10.75 24-23.1C512 250.7 501.3 239.9 488 239.9z" - } - }, - "free": [ - "solid" - ] - }, - "stripe": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f429", - "label": "Stripe", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9v-33.8c-5.7 2.3-33.7 10.5-33.7-15.7V221h33.7v-37.8h-33.7zm89.1 51.6l-2.7-13.1H213v153.2h44.3V233.3c10.5-13.8 28.2-11.1 33.9-9.3v-40.8c-6-2.1-26.7-6-37.1 13.1zm92.3-72.3l-44.6 9.5v36.2l44.6-9.5zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4v-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2v40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5v-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9h86.9c.2-2.3 .6-11.6 .6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4zm-112.9-64.6c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11H363v204.8l44.4-9.4 .1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6 .1-51.6-29.3-79.7-60.5-79.7zm-10.6 122.5c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4 .1 23.9-10.9 41.8-27.4 41.8zm-126.7 33.7h44.6V183.2h-44.6z" - } - }, - "free": [ - "brands" - ] - }, - "stripe-s": { - "changes": [ - "5.0.1", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f42a", - "label": "Stripe S", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M155.3 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7V26.1C298.3 7.2 251.1 0 203.8 0 88.1 0 11 60.4 11 161.4c0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5v128.5a396.1 396.1 0 0 0 156 32.4c118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z" - } - }, - "free": [ - "brands" - ] - }, - "stroopwafel": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f551", - "aliases": { - "unicodes": { - "secondary": [ - "10f551" - ] - } - }, - "label": "Stroopwafel", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M188.1 210.8l-45.25 45.25l45.25 45.25l45.25-45.25L188.1 210.8zM301.2 188.1l-45.25-45.25L210.7 188.1l45.25 45.25L301.2 188.1zM210.7 323.9l45.25 45.25l45.25-45.25L255.1 278.6L210.7 323.9zM256 16c-132.5 0-240 107.5-240 240s107.5 240 240 240s240-107.5 240-240S388.5 16 256 16zM442.6 295.6l-11.25 11.25c-3.125 3.125-8.25 3.125-11.38 0L391.8 278.6l-45.25 45.25l34 33.88l16.88-16.88c3.125-3.125 8.251-3.125 11.38 0l11.25 11.25c3.125 3.125 3.125 8.25 0 11.38l-16.88 16.88l16.88 17c3.125 3.125 3.125 8.25 0 11.38l-11.25 11.25c-3.125 3.125-8.251 3.125-11.38 0l-16.88-17l-17 17c-3.125 3.125-8.25 3.125-11.38 0l-11.25-11.25c-3.125-3.125-3.125-8.25 0-11.38l17-17l-34-33.88l-45.25 45.25l28.25 28.25c3.125 3.125 3.125 8.25 0 11.38l-11.25 11.25c-3.125 3.125-8.25 3.125-11.38 0l-28.25-28.25L227.7 442.6c-3.125 3.125-8.25 3.125-11.38 0l-11.25-11.25c-3.125-3.125-3.125-8.25 0-11.38l28.25-28.25l-45.25-45.25l-33.88 34l16.88 16.88c3.125 3.125 3.125 8.25 0 11.38l-11.25 11.25c-3.125 3.125-8.25 3.125-11.38 0L131.6 403.1l-16.1 16.88c-3.125 3.125-8.25 3.125-11.38 0l-11.25-11.25c-3.125-3.125-3.125-8.25 0-11.38l17-16.88l-17-17c-3.125-3.125-3.125-8.25 0-11.38l11.25-11.25c3.125-3.125 8.25-3.125 11.38 0l16.1 17l33.88-34L120.2 278.6l-28.25 28.25c-3.125 3.125-8.25 3.125-11.38 0L69.37 295.6c-3.125-3.125-3.125-8.25 0-11.38l28.25-28.25l-28.25-28.25c-3.125-3.125-3.125-8.25 0-11.38l11.25-11.25c3.125-3.125 8.25-3.125 11.38 0l28.25 28.25l45.25-45.25l-34-34l-16.88 17c-3.125 3.125-8.25 3.125-11.38 0l-11.25-11.25c-3.125-3.125-3.125-8.25 0-11.38l16.88-17l-16.88-16.88c-3.125-3.125-3.125-8.25 0-11.38l11.25-11.25c3.125-3.125 8.25-3.125 11.38 0l16.88 17l17-17c3.125-3.125 8.25-3.125 11.38 0l11.25 11.25c3.125 3.125 3.125 8.25 0 11.38l-17 16.88l34 34l45.25-45.25L205.1 92c-3.125-3.125-3.125-8.25 0-11.38l11.25-11.25c3.125-3.125 8.25-3.125 11.38 0l28.25 28.25l28.25-28.25c3.125-3.125 8.25-3.125 11.38 0l11.25 11.25c3.125 3.125 3.125 8.25 0 11.38l-28.25 28.25l45.25 45.25l34-34l-17-16.88c-3.125-3.125-3.125-8.25 0-11.38l11.25-11.25c3.125-3.125 8.25-3.125 11.38 0l17 16.88l16.88-16.88c3.125-3.125 8.251-3.125 11.38 0l11.25 11.25c3.125 3.125 3.125 8.25 0 11.38l-17 16.88l17 17c3.125 3.125 3.125 8.25 0 11.38l-11.25 11.25c-3.125 3.125-8.251 3.125-11.38 0l-16.88-17l-34 34l45.25 45.25l28.25-28.25c3.125-3.125 8.25-3.125 11.38 0l11.25 11.25c3.125 3.125 3.125 8.25 0 11.38l-28.25 28.25l28.25 28.25C445.7 287.4 445.7 292.5 442.6 295.6zM278.6 256l45.25 45.25l45.25-45.25l-45.25-45.25L278.6 256z" - } - }, - "free": [ - "solid" - ] - }, - "studiovinari": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3f8", - "label": "Studio Vinari", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480.3 187.7l4.2 28v28l-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6c2.1 0 20.3 .7 20.3 .7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9L133.5 108 32.2 0l252.9 126.6-31.5-38L378 163 234.7 64l18.7 38.4-49.6-18.1L158.3 0l194.6 122L310 66.2l108 96.4 12-8.9-21-16.4 4.2-37.8L451 89.1l29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z" - } - }, - "free": [ - "brands" - ] - }, - "stumbleupon": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a4", - "label": "StumbleUpon Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.9 266v69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3v-70.2l34.3 16 51.1-15.2V338c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338v-72h85.9zm-224.7-58.2l34.3 16 51.1-15.2V173c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2v162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6V266H0v69.7C0 397.7 50.3 448 112.4 448c61.6 0 112.4-49.5 112.4-110.8V176.9c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7v30.9z" - } - }, - "free": [ - "brands" - ] - }, - "stumbleupon-circle": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1a3", - "label": "StumbleUpon Circle", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 177.5c-9.8 0-17.8 8-17.8 17.8v106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9v-46.5h57.3v45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8V200.1c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6v23.7l-34.1 10.1-22.9-10.7v-20.6c.1-9.6-7.9-17.6-17.7-17.6zm167.6 123.6c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2V263l22.9 10.7 34.1-10.1v47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6v-48h57.3c-.1 45.9-.1 46.4-.1 46.4z" - } - }, - "free": [ - "brands" - ] - }, - "subscript": { - "changes": [ - "3.1.0", - "5.0.0", - "5.9.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f12c", - "aliases": { - "unicodes": { - "secondary": [ - "10f12c" - ] - } - }, - "label": "subscript", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 448v-128c0-11.09-5.75-21.38-15.17-27.22c-9.422-5.875-21.25-6.344-31.14-1.406l-32 16c-15.81 7.906-22.22 27.12-14.31 42.94c5.609 11.22 16.89 17.69 28.62 17.69v80c-17.67 0-32 14.31-32 32s14.33 32 32 32h64c17.67 0 32-14.31 32-32S497.7 448 480 448zM320 128c17.67 0 32-14.31 32-32s-14.33-32-32-32l-32-.0024c-10.44 0-20.23 5.101-26.22 13.66L176 200.2L90.22 77.67C84.23 69.11 74.44 64.01 64 64.01L32 64.01c-17.67 0-32 14.32-32 32s14.33 32 32 32h15.34L136.9 256l-89.6 128H32c-17.67 0-32 14.31-32 32s14.33 31.1 32 31.1l32-.0024c10.44 0 20.23-5.086 26.22-13.65L176 311.8l85.78 122.5C267.8 442.9 277.6 448 288 448l32 .0024c17.67 0 32-14.31 32-31.1s-14.33-32-32-32h-15.34l-89.6-128l89.6-127.1H320z" - } - }, - "free": [ - "solid" - ] - }, - "suitcase": { - "changes": [ - "3.0.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0f2", - "aliases": { - "unicodes": { - "composite": [ - "1f9f3" - ], - "secondary": [ - "10f0f2" - ] - } - }, - "label": "Suitcase", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573330, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M128 56C128 25.07 153.1 0 184 0H328C358.9 0 384 25.07 384 56V480H128V56zM176 96H336V56C336 51.58 332.4 48 328 48H184C179.6 48 176 51.58 176 56V96zM64 96H96V480H64C28.65 480 0 451.3 0 416V160C0 124.7 28.65 96 64 96zM448 480H416V96H448C483.3 96 512 124.7 512 160V416C512 451.3 483.3 480 448 480z" - } - }, - "free": [ - "solid" - ] - }, - "suitcase-medical": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0fa", - "aliases": { - "names": [ - "medkit" - ], - "unicodes": { - "secondary": [ - "10f0fa" - ] - } - }, - "label": "Suitcase medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573329, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 144v288C0 457.6 22.41 480 48 480H64V96H48C22.41 96 0 118.4 0 144zM464 96H448v384h16c25.59 0 48-22.41 48-48v-288C512 118.4 489.6 96 464 96zM384 48C384 22.41 361.6 0 336 0h-160C150.4 0 128 22.41 128 48V96H96v384h320V96h-32V48zM176 48h160V96h-160V48zM352 312C352 316.4 348.4 320 344 320H288v56c0 4.375-3.625 8-8 8h-48C227.6 384 224 380.4 224 376V320H168C163.6 320 160 316.4 160 312v-48C160 259.6 163.6 256 168 256H224V200C224 195.6 227.6 192 232 192h48C284.4 192 288 195.6 288 200V256h56C348.4 256 352 259.6 352 264V312z" - } - }, - "free": [ - "solid" - ] - }, - "suitcase-rolling": { - "changes": [ - "5.1.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5c1", - "aliases": { - "unicodes": { - "secondary": [ - "10f5c1" - ] - } - }, - "label": "Suitcase Rolling", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573330, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M368 128h-47.95l.0123-80c0-26.5-21.5-48-48-48h-96c-26.5 0-48 21.5-48 48L128 128H80C53.5 128 32 149.5 32 176v256C32 458.5 53.5 480 80 480h16.05L96 496C96 504.9 103.1 512 112 512h32C152.9 512 160 504.9 160 496L160.1 480h128L288 496c0 8.875 7.125 16 16 16h32c8.875 0 16-7.125 16-16l.0492-16H368c26.5 0 48-21.5 48-48v-256C416 149.5 394.5 128 368 128zM176.1 48h96V128h-96V48zM336 384h-224C103.2 384 96 376.8 96 368C96 359.2 103.2 352 112 352h224c8.801 0 16 7.199 16 16C352 376.8 344.8 384 336 384zM336 256h-224C103.2 256 96 248.8 96 240C96 231.2 103.2 224 112 224h224C344.8 224 352 231.2 352 240C352 248.8 344.8 256 336 256z" - } - }, - "free": [ - "solid" - ] - }, - "sun": { - "changes": [ - "3.2.0", - "5.0.0", - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f185", - "aliases": { - "unicodes": { - "composite": [ - "2600" - ], - "secondary": [ - "10f185" - ] - } - }, - "label": "Sun", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573330, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 159.1c-53.02 0-95.1 42.98-95.1 95.1S202.1 351.1 256 351.1s95.1-42.98 95.1-95.1S309 159.1 256 159.1zM509.3 347L446.1 255.1l63.15-91.01c6.332-9.125 1.104-21.74-9.826-23.72l-109-19.7l-19.7-109c-1.975-10.93-14.59-16.16-23.72-9.824L256 65.89L164.1 2.736c-9.125-6.332-21.74-1.107-23.72 9.824L121.6 121.6L12.56 141.3C1.633 143.2-3.596 155.9 2.736 164.1L65.89 256l-63.15 91.01c-6.332 9.125-1.105 21.74 9.824 23.72l109 19.7l19.7 109c1.975 10.93 14.59 16.16 23.72 9.824L256 446.1l91.01 63.15c9.127 6.334 21.75 1.107 23.72-9.822l19.7-109l109-19.7C510.4 368.8 515.6 356.1 509.3 347zM256 383.1c-70.69 0-127.1-57.31-127.1-127.1c0-70.69 57.31-127.1 127.1-127.1s127.1 57.3 127.1 127.1C383.1 326.7 326.7 383.1 256 383.1z" - }, - "regular": { - "last_modified": 1658443573132, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M505.2 324.8l-47.73-68.78l47.75-68.81c7.359-10.62 8.797-24.12 3.844-36.06c-4.969-11.94-15.52-20.44-28.22-22.72l-82.39-14.88l-14.89-82.41c-2.281-12.72-10.76-23.25-22.69-28.22c-11.97-4.936-25.42-3.498-36.12 3.844L256 54.49L187.2 6.709C176.5-.6016 163.1-2.039 151.1 2.896c-11.92 4.971-20.4 15.5-22.7 28.19l-14.89 82.44L31.15 128.4C18.42 130.7 7.854 139.2 2.9 151.2C-2.051 163.1-.5996 176.6 6.775 187.2l47.73 68.78l-47.75 68.81c-7.359 10.62-8.795 24.12-3.844 36.06c4.969 11.94 15.52 20.44 28.22 22.72l82.39 14.88l14.89 82.41c2.297 12.72 10.78 23.25 22.7 28.22c11.95 4.906 25.44 3.531 36.09-3.844L256 457.5l68.83 47.78C331.3 509.7 338.8 512 346.3 512c4.906 0 9.859-.9687 14.56-2.906c11.92-4.969 20.4-15.5 22.7-28.19l14.89-82.44l82.37-14.88c12.73-2.281 23.3-10.78 28.25-22.75C514.1 348.9 512.6 335.4 505.2 324.8zM456.8 339.2l-99.61 18l-18 99.63L256 399.1L172.8 456.8l-18-99.63l-99.61-18L112.9 255.1L55.23 172.8l99.61-18l18-99.63L256 112.9l83.15-57.75l18.02 99.66l99.61 18L399.1 255.1L456.8 339.2zM256 143.1c-61.85 0-111.1 50.14-111.1 111.1c0 61.85 50.15 111.1 111.1 111.1s111.1-50.14 111.1-111.1C367.1 194.1 317.8 143.1 256 143.1zM256 319.1c-35.28 0-63.99-28.71-63.99-63.99S220.7 192 256 192s63.99 28.71 63.99 63.1S291.3 319.1 256 319.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "sun-plant-wilt": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e57a", - "label": "Sun Plant-wilt", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573330, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M192 160C192 177.7 177.7 192 160 192C142.3 192 128 177.7 128 160C128 142.3 142.3 128 160 128C177.7 128 192 142.3 192 160zM160 0C166.3 0 172 3.708 174.6 9.467L199.4 64.89L256.1 43.23C262 40.98 268.7 42.4 273.1 46.86C277.6 51.32 279 57.99 276.8 63.88L255.1 120.6L310.5 145.4C316.3 147.1 320 153.7 320 160C320 166.3 316.3 172 310.5 174.6L255.1 199.4L276.8 256.1C279 262 277.6 268.7 273.1 273.1C268.7 277.6 262 279 256.1 276.8L199.4 255.1L174.6 310.5C172 316.3 166.3 320 160 320C153.7 320 147.1 316.3 145.4 310.5L120.6 255.1L63.88 276.8C57.99 279 51.32 277.6 46.86 273.1C42.4 268.7 40.98 262 43.23 256.1L64.89 199.4L9.467 174.6C3.708 172 0 166.3 0 160C0 153.7 3.708 147.1 9.467 145.4L64.89 120.6L43.23 63.88C40.98 57.99 42.4 51.32 46.86 46.86C51.32 42.4 57.99 40.98 63.88 43.23L120.6 64.89L145.4 9.467C147.1 3.708 153.7 0 160 0V0zM160 224C195.3 224 224 195.3 224 160C224 124.7 195.3 96 160 96C124.7 96 96 124.7 96 160C96 195.3 124.7 224 160 224zM504 448H608C625.7 448 640 462.3 640 480C640 497.7 625.7 512 608 512H32C14.33 512 .0003 497.7 .0003 480C.0003 462.3 14.33 448 32 448H456V272C456 254.3 441.7 240 424 240C406.3 240 392 254.3 392 272V293.4C406.8 301.1 416 316.5 416 338C416 357.3 394.5 390.1 368 416C341.5 390.1 320 357.6 320 338C320 316.5 329.2 301.1 344 293.4V271.1C344 227.8 379.8 191.1 424 191.1C435.4 191.1 446.2 194.4 456 198.7V175.1C456 131.8 491.8 95.1 536 95.1C580.2 95.1 616 131.8 616 175.1V229.4C630.8 237.1 640 252.5 640 274C640 293.3 618.5 326.1 592 352C565.5 326.1 544 293.6 544 274C544 252.5 553.2 237.1 568 229.4V175.1C568 158.3 553.7 143.1 536 143.1C518.3 143.1 504 158.3 504 175.1V448z" - } - }, - "free": [ - "solid" - ] - }, - "superpowers": { - "changes": [ - "4.7.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2dd", - "label": "Superpowers", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zm-79.7 232.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z" - } - }, - "free": [ - "brands" - ] - }, - "superscript": { - "changes": [ - "3.1.0", - "5.0.0", - "5.9.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f12b", - "aliases": { - "unicodes": { - "secondary": [ - "10f12b" - ] - } - }, - "label": "superscript", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573330, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M480 160v-128c0-11.09-5.75-21.37-15.17-27.22C455.4-1.048 443.6-1.548 433.7 3.39l-32 16c-15.81 7.906-22.22 27.12-14.31 42.94C392.1 73.55 404.3 80.01 416 80.01v80c-17.67 0-32 14.31-32 32s14.33 32 32 32h64c17.67 0 32-14.31 32-32S497.7 160 480 160zM320 128c17.67 0 32-14.31 32-32s-14.33-32-32-32l-32-.0024c-10.44 0-20.23 5.101-26.22 13.66L176 200.2L90.22 77.67C84.23 69.11 74.44 64.01 64 64.01L32 64.01c-17.67 0-32 14.32-32 32s14.33 32 32 32h15.34L136.9 256l-89.6 128H32c-17.67 0-32 14.31-32 32s14.33 31.1 32 31.1l32-.0024c10.44 0 20.23-5.086 26.22-13.65L176 311.8l85.78 122.5C267.8 442.9 277.6 448 288 448l32 .0024c17.67 0 32-14.31 32-31.1s-14.33-32-32-32h-15.34l-89.6-128l89.6-127.1H320z" - } - }, - "free": [ - "solid" - ] - }, - "supple": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3f9", - "label": "Supple", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7 .4 15.5 .6 23.4 .6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6 .2 23.3 .5-22.5-3.2-46.3-4.9-71-4.9C108.8 96.3-.1 148.5 0 212.6c.1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9s10.5 13.2 29.3 13.2c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6v3.9h14.2v-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6v54.4c0 11.3-7.1 17.8-17.8 17.8-10.7 0-17.8-6.5-17.8-17.7v-54.5h-15.8v55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9v-55h-15.7zm34.4 85.4h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.8-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7h-12.6zm57 43h15.8v-29.5h15.5c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8h-39.1v13.4h7.8v72zm15.7-43v-29.1h12.9c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7h-12.6zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2h37.6c5.8 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-18.6c-1.7 0-2.6-1-2.6-2.6v-61.2c0-5.7-2.4-8.2-8.2-8.2H401v13.4h5.2c1.7 0 2.6 1 2.6 2.6v61.2zm63.4 0c0 5.8 2.4 8.2 8.2 8.2H519c5.7 0 8.2-2.4 8.2-8.2v-13h-14.3v5.2c0 1.7-1 2.6-2.6 2.6h-19.7c-1.7 0-2.6-1-2.6-2.6v-20.3h27.7v-13.4H488v-22.4h19.2c1.7 0 2.6 1 2.6 2.6v5.2H524v-13c0-5.7-2.5-8.2-8.2-8.2h-51.6v13.4h7.8v63.9zm58.9-76v5.9h1.6v-5.9h2.7v-1.2h-7v1.2h2.7zm5.7-1.2v7.1h1.5v-5.7l2.3 5.7h1.3l2.3-5.7v5.7h1.5v-7.1h-2.3l-2.1 5.1-2.1-5.1h-2.4z" - } - }, - "free": [ - "brands" - ] - }, - "suse": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7d6", - "label": "Suse", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7C7 277-.12 307 7 335.1a111 111 0 0 0 16.5 35.7c17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2 .3 27.8 24.3 42.6 41.5 42.6a49 49 0 0 0 15.8-2.7c6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9 .5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14V316c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3h45.9c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3H460c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5 .4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3 .5-76.2-25.4-81.6-28.2-.3-.4 .1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7 .8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3 .1-.1-.9-.3-.9 .7zm60.4 72.8a37.54 37.54 0 0 1 38.9-36.3c33.4 1.2 48.8 42.3 24.4 65.2-24.2 22.7-64.4 4.6-63.3-28.9zm38.6-25.3a26.27 26.27 0 1 0 25.4 27.2 26.19 26.19 0 0 0 -25.4-27.2zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.64 0 15.64z" - } - }, - "free": [ - "brands" - ] - }, - "swatchbook": { - "changes": [ - "5.1.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5c3", - "aliases": { - "unicodes": { - "secondary": [ - "10f5c3" - ] - } - }, - "label": "Swatchbook", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573330, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 32C0 14.33 14.33 0 32 0H160C177.7 0 192 14.33 192 32V416C192 469 149 512 96 512C42.98 512 0 469 0 416V32zM128 64H64V128H128V64zM64 256H128V192H64V256zM96 440C109.3 440 120 429.3 120 416C120 402.7 109.3 392 96 392C82.75 392 72 402.7 72 416C72 429.3 82.75 440 96 440zM224 416V154L299.4 78.63C311.9 66.13 332.2 66.13 344.7 78.63L435.2 169.1C447.7 181.6 447.7 201.9 435.2 214.4L223.6 425.9C223.9 422.7 224 419.3 224 416V416zM374.8 320H480C497.7 320 512 334.3 512 352V480C512 497.7 497.7 512 480 512H182.8L374.8 320z" - } - }, - "free": [ - "solid" - ] - }, - "swift": { - "changes": [ - "5.11.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f8e1", - "label": "Swift", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572497, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 156.1c0-4.51-.08-9-.2-13.52a196.3 196.3 0 0 0 -2.58-29.42 99.62 99.62 0 0 0 -9.22-28A94.08 94.08 0 0 0 394.8 44a99.17 99.17 0 0 0 -28-9.22 195 195 0 0 0 -29.43-2.59c-4.51-.12-9-.17-13.52-.2H124.1c-4.51 0-9 .08-13.52 .2-2.45 .07-4.91 .15-7.37 .27a171.7 171.7 0 0 0 -22.06 2.32 103.1 103.1 0 0 0 -21.21 6.1q-3.46 1.45-6.81 3.12a94.66 94.66 0 0 0 -18.39 12.32c-1.88 1.61-3.69 3.28-5.43 5A93.86 93.86 0 0 0 12 85.17a99.45 99.45 0 0 0 -9.22 28 196.3 196.3 0 0 0 -2.54 29.4c-.13 4.51-.18 9-.21 13.52v199.8c0 4.51 .08 9 .21 13.51a196.1 196.1 0 0 0 2.58 29.42 99.3 99.3 0 0 0 9.22 28A94.31 94.31 0 0 0 53.17 468a99.47 99.47 0 0 0 28 9.21 195 195 0 0 0 29.43 2.59c4.5 .12 9 .17 13.52 .2H323.9c4.51 0 9-.08 13.52-.2a196.6 196.6 0 0 0 29.44-2.59 99.57 99.57 0 0 0 28-9.21A94.22 94.22 0 0 0 436 426.8a99.3 99.3 0 0 0 9.22-28 194.8 194.8 0 0 0 2.59-29.42c.12-4.5 .17-9 .2-13.51V172.1c-.01-5.35-.01-10.7-.01-16.05zm-69.88 241c-20-38.93-57.23-29.27-76.31-19.47-1.72 1-3.48 2-5.25 3l-.42 .25c-39.5 21-92.53 22.54-145.9-.38A234.6 234.6 0 0 1 45 290.1a230.6 230.6 0 0 0 39.17 23.37c56.36 26.4 113 24.49 153 0-57-43.85-104.6-101-141.1-147.2a197.1 197.1 0 0 1 -18.78-25.9c43.7 40 112.7 90.22 137.5 104.1-52.57-55.49-98.89-123.9-96.72-121.7 82.79 83.42 159.2 130.6 159.2 130.6 2.88 1.58 5 2.85 6.73 4a127.4 127.4 0 0 0 4.16-12.47c13.22-48.33-1.66-103.6-35.31-149.2C329.6 141.8 375 229.3 356.4 303.4c-.44 1.73-.95 3.4-1.44 5.09 38.52 47.4 28.04 98.17 23.13 88.59z" - } - }, - "free": [ - "brands" - ] - }, - "symfony": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f83d", - "label": "Symfony", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm133.7 143.5c-11.47 .41-19.4-6.45-19.77-16.87-.27-9.18 6.68-13.44 6.53-18.85-.23-6.55-10.16-6.82-12.87-6.67-39.78 1.29-48.59 57-58.89 113.8 21.43 3.15 36.65-.72 45.14-6.22 12-7.75-3.34-15.72-1.42-24.56 4-18.16 32.55-19 32 5.3-.36 17.86-25.92 41.81-77.6 35.7-10.76 59.52-18.35 115-58.2 161.7-29 34.46-58.4 39.82-71.58 40.26-24.65 .85-41-12.31-41.58-29.84-.56-17 14.45-26.26 24.31-26.59 21.89-.75 30.12 25.67 14.88 34-12.09 9.71 .11 12.61 2.05 12.55 10.42-.36 17.34-5.51 22.18-9 24-20 33.24-54.86 45.35-118.3 8.19-49.66 17-78 18.23-82-16.93-12.75-27.08-28.55-49.85-34.72-15.61-4.23-25.12-.63-31.81 7.83-7.92 10-5.29 23 2.37 30.7l12.63 14c15.51 17.93 24 31.87 20.8 50.62-5.06 29.93-40.72 52.9-82.88 39.94-36-11.11-42.7-36.56-38.38-50.62 7.51-24.15 42.36-11.72 34.62 13.6-2.79 8.6-4.92 8.68-6.28 13.07-4.56 14.77 41.85 28.4 51-1.39 4.47-14.52-5.3-21.71-22.25-39.85-28.47-31.75-16-65.49 2.95-79.67C204.2 140.1 251.9 197 262 205.3c37.17-109 100.5-105.5 102.4-105.5 25.16-.81 44.19 10.59 44.83 28.65 .25 7.69-4.17 22.59-19.52 23.13z" - } - }, - "free": [ - "brands" - ] - }, - "synagogue": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f69b", - "aliases": { - "unicodes": { - "composite": [ - "1f54d" - ], - "secondary": [ - "10f69b" - ] - } - }, - "label": "Synagogue", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M309.8 3.708C315.7-1.236 324.3-1.236 330.2 3.708L451.2 104.5C469.5 119.7 480 142.2 480 165.1V512H384V384C384 348.7 355.3 320 320 320C284.7 320 256 348.7 256 384V512H160V165.1C160 142.2 170.5 119.7 188.8 104.5L309.8 3.708zM326.1 124.3C323.9 118.9 316.1 118.9 313 124.3L297.2 152.4L264.9 152.1C258.7 152.1 254.8 158.8 257.9 164.2L274.3 191.1L257.9 219.8C254.8 225.2 258.7 231.9 264.9 231.9L297.2 231.6L313 259.7C316.1 265.1 323.9 265.1 326.1 259.7L342.8 231.6L375.1 231.9C381.3 231.9 385.2 225.2 382.1 219.8L365.7 191.1L382.1 164.2C385.2 158.8 381.3 152.1 375.1 152.1L342.8 152.4L326.1 124.3zM512 244.5L540.1 213.3C543.1 209.9 547.5 208 552 208C556.5 208 560.9 209.9 563.9 213.3L627.7 284.2C635.6 292.1 640 304.4 640 316.3V448C640 483.3 611.3 512 576 512H512V244.5zM128 244.5V512H64C28.65 512 0 483.3 0 448V316.3C0 304.4 4.389 292.1 12.32 284.2L76.11 213.3C79.14 209.9 83.46 208 88 208C92.54 208 96.86 209.9 99.89 213.3L128 244.5z" - } - }, - "free": [ - "solid" - ] - }, - "syringe": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f48e", - "aliases": { - "unicodes": { - "composite": [ - "1f489" - ], - "secondary": [ - "10f48e" - ] - } - }, - "label": "Syringe", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M504.1 71.03l-64-64c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94L422.1 56L384 94.06l-55.03-55.03c-9.375-9.375-24.56-9.375-33.94 0c-8.467 8.467-8.873 21.47-2.047 30.86l149.1 149.1C446.3 222.1 451.1 224 456 224c6.141 0 12.28-2.344 16.97-7.031c9.375-9.375 9.375-24.56 0-33.94L417.9 128L456 89.94l15.03 15.03C475.7 109.7 481.9 112 488 112s12.28-2.344 16.97-7.031C514.3 95.59 514.3 80.41 504.1 71.03zM208.8 154.1l58.56 58.56c6.25 6.25 6.25 16.38 0 22.62C264.2 238.4 260.1 240 256 240S247.8 238.4 244.7 235.3L186.1 176.8L144.8 218.1l58.56 58.56c6.25 6.25 6.25 16.38 0 22.62C200.2 302.4 196.1 304 192 304S183.8 302.4 180.7 299.3L122.1 240.8L82.75 280.1C70.74 292.1 64 308.4 64 325.4v88.68l-56.97 56.97c-9.375 9.375-9.375 24.56 0 33.94C11.72 509.7 17.86 512 24 512s12.28-2.344 16.97-7.031L97.94 448h88.69c16.97 0 33.25-6.744 45.26-18.75l187.6-187.6l-149.1-149.1L208.8 154.1z" - } - }, - "free": [ - "solid" - ] - }, - "t": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "54", - "aliases": { - "unicodes": { - "composite": [ - "74" - ] - } - }, - "label": "T", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 64.01c0 17.67-14.33 32-32 32h-128v352c0 17.67-14.33 31.99-32 31.99s-32-14.32-32-31.99v-352H32c-17.67 0-32-14.33-32-32s14.33-32 32-32h320C369.7 32.01 384 46.34 384 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "table": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ce", - "aliases": { - "unicodes": { - "secondary": [ - "10f0ce" - ] - } - }, - "label": "table", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM224 256V160H64V256H224zM64 320V416H224V320H64zM288 416H448V320H288V416zM448 256V160H288V256H448z" - } - }, - "free": [ - "solid" - ] - }, - "table-cells": { - "changes": [ - "1.0.0", - "5.0.0", - "5.7.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f00a", - "aliases": { - "names": [ - "th" - ], - "unicodes": { - "secondary": [ - "10f00a" - ] - } - }, - "label": "Table cells", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM152 96H64V160H152V96zM208 160H296V96H208V160zM448 96H360V160H448V96zM64 288H152V224H64V288zM296 224H208V288H296V224zM360 288H448V224H360V288zM152 352H64V416H152V352zM208 416H296V352H208V416zM448 352H360V416H448V352z" - } - }, - "free": [ - "solid" - ] - }, - "table-cells-large": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f009", - "aliases": { - "names": [ - "th-large" - ], - "unicodes": { - "secondary": [ - "10f009" - ] - } - }, - "label": "Table cells large", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM448 96H288V224H448V96zM448 288H288V416H448V288zM224 224V96H64V224H224zM64 416H224V288H64V416z" - } - }, - "free": [ - "solid" - ] - }, - "table-columns": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0db", - "aliases": { - "names": [ - "columns" - ], - "unicodes": { - "secondary": [ - "10f0db" - ] - } - }, - "label": "Table columns", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 96C0 60.65 28.65 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96zM64 416H224V160H64V416zM448 160H288V416H448V160z" - } - }, - "free": [ - "solid" - ] - }, - "table-list": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f00b", - "aliases": { - "names": [ - "th-list" - ], - "unicodes": { - "secondary": [ - "10f00b" - ] - } - }, - "label": "Table list", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 96C0 60.65 28.65 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96zM64 160H128V96H64V160zM448 96H192V160H448V96zM64 288H128V224H64V288zM448 224H192V288H448V224zM64 416H128V352H64V416zM448 352H192V416H448V352z" - } - }, - "free": [ - "solid" - ] - }, - "table-tennis-paddle-ball": { - "changes": [ - "5.0.5", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f45d", - "aliases": { - "names": [ - "ping-pong-paddle-ball", - "table-tennis" - ], - "unicodes": { - "composite": [ - "1f3d3" - ], - "secondary": [ - "10f45d" - ] - } - }, - "label": "Table tennis paddle ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573331, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416 287.1c27.99 0 53.68 9.254 74.76 24.51c14.03-29.82 21.06-62.13 21.06-94.43c0-103.1-79.37-218.1-216.5-218.1c-59.94 0-120.4 23.71-165.5 68.95l-54.66 54.8C73.61 125.3 72.58 126.1 71.14 128.5l230.7 230.7C322.8 317.2 365.8 287.1 416 287.1zM290.3 392.1l-238.6-238.6C38.74 176.2 32.3 199.4 32.3 221.9c0 30.53 11.71 59.94 34.29 82.58l36.6 36.7l-92.38 81.32c-7.177 6.255-10.81 15.02-10.81 23.81c0 8.027 3.032 16.07 9.164 22.24l34.05 34.2c6.145 6.16 14.16 9.205 22.15 9.205c8.749 0 17.47-3.649 23.7-10.86l81.03-92.85l35.95 36.04c23.62 23.68 54.41 35.23 85.37 35.23c4.532 0 9.205-.2677 13.72-.7597c-10.56-18.61-17.12-39.89-17.12-62.81C288 408.1 288.1 400.5 290.3 392.1zM415.1 320c-52.99 0-95.99 42.1-95.99 95.1c0 52.1 42.99 95.99 95.99 95.99c52.1 0 95.99-42.1 95.99-95.99C511.1 363 468.1 320 415.1 320z" - } - }, - "free": [ - "solid" - ] - }, - "tablet": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3fb", - "aliases": { - "names": [ - "tablet-android" - ], - "unicodes": { - "secondary": [ - "10f3fb" - ] - } - }, - "label": "Tablet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573332, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V64C448 28.65 419.3 0 384 0zM288 447.1C288 456.8 280.8 464 272 464H175.1C167.2 464 160 456.8 160 448S167.2 432 175.1 432h96C280.8 432 288 439.2 288 447.1z" - } - }, - "free": [ - "solid" - ] - }, - "tablet-button": { - "changes": [ - "3.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f10a", - "aliases": { - "unicodes": { - "secondary": [ - "10f10a" - ] - } - }, - "label": "Tablet button", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573332, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 0H64C28.65 0 0 28.65 0 64v384c0 35.35 28.65 64 64 64h320c35.35 0 64-28.65 64-64V64C448 28.65 419.3 0 384 0zM224 464c-17.75 0-32-14.25-32-32s14.25-32 32-32s32 14.25 32 32S241.8 464 224 464z" - } - }, - "free": [ - "solid" - ] - }, - "tablet-screen-button": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3fa", - "aliases": { - "names": [ - "tablet-alt" - ], - "unicodes": { - "secondary": [ - "10f3fa" - ] - } - }, - "label": "Tablet screen button", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573332, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M384 .0001H64c-35.35 0-64 28.65-64 64v384c0 35.35 28.65 63.1 64 63.1h320c35.35 0 64-28.65 64-63.1v-384C448 28.65 419.3 .0001 384 .0001zM224 480c-17.75 0-32-14.25-32-32s14.25-32 32-32s32 14.25 32 32S241.8 480 224 480zM384 384H64v-320h320V384z" - } - }, - "free": [ - "solid" - ] - }, - "tablets": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f490", - "aliases": { - "unicodes": { - "secondary": [ - "10f490" - ] - } - }, - "label": "Tablets", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573332, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M159.1 191.1c-81.1 0-147.5 58.51-159.9 134.8C-.7578 331.5 3.367 336 8.365 336h303.3c4.998 0 8.996-4.5 8.248-9.25C307.4 250.5 241.1 191.1 159.1 191.1zM311.5 368H8.365c-4.998 0-9.123 4.5-8.248 9.25C12.49 453.5 78.88 512 159.1 512s147.4-58.5 159.8-134.8C320.7 372.5 316.5 368 311.5 368zM362.9 65.74c-3.502-3.502-9.504-3.252-12.25 .75c-45.52 62.76-40.52 150.4 15.88 206.9c56.52 56.51 144.2 61.39 206.1 15.88c4.002-2.875 4.252-8.877 .75-12.25L362.9 65.74zM593.4 46.61c-56.52-56.51-144.2-61.39-206.1-16c-4.002 2.877-4.252 8.877-.75 12.25l211.3 211.4c3.5 3.502 9.504 3.252 12.25-.75C654.8 190.8 649.9 103.1 593.4 46.61z" - } - }, - "free": [ - "solid" - ] - }, - "tachograph-digital": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f566", - "aliases": { - "names": [ - "digital-tachograph" - ], - "unicodes": { - "secondary": [ - "10f566" - ] - } - }, - "label": "Tachograph digital", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573332, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M576 64H64C28.8 64 0 92.8 0 128v256c0 35.2 28.8 64 64 64h512c35.2 0 64-28.8 64-64V128C640 92.8 611.2 64 576 64zM64 296C64 291.6 67.63 288 72 288h16C92.38 288 96 291.6 96 296v16C96 316.4 92.38 320 88 320h-16C67.63 320 64 316.4 64 312V296zM336 384h-256C71.2 384 64 376.8 64 368C64 359.2 71.2 352 79.1 352h256c8.801 0 16 7.199 16 16C352 376.8 344.8 384 336 384zM128 312v-16C128 291.6 131.6 288 136 288h16C156.4 288 160 291.6 160 296v16C160 316.4 156.4 320 152 320h-16C131.6 320 128 316.4 128 312zM192 312v-16C192 291.6 195.6 288 200 288h16C220.4 288 224 291.6 224 296v16C224 316.4 220.4 320 216 320h-16C195.6 320 192 316.4 192 312zM256 312v-16C256 291.6 259.6 288 264 288h16C284.4 288 288 291.6 288 296v16C288 316.4 284.4 320 280 320h-16C259.6 320 256 316.4 256 312zM352 312C352 316.4 348.4 320 344 320h-16C323.6 320 320 316.4 320 312v-16C320 291.6 323.6 288 328 288h16C348.4 288 352 291.6 352 296V312zM352 237.7C352 247.9 344.4 256 334.9 256H81.07C71.6 256 64 247.9 64 237.7V146.3C64 136.1 71.6 128 81.07 128h253.9C344.4 128 352 136.1 352 146.3V237.7zM560 384h-160c-8.801 0-16-7.201-16-16c0-8.801 7.199-16 16-16h160c8.801 0 16 7.199 16 16C576 376.8 568.8 384 560 384z" - } - }, - "free": [ - "solid" - ] - }, - "tag": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f02b", - "aliases": { - "unicodes": { - "composite": [ - "1f3f7" - ], - "secondary": [ - "10f02b" - ] - } - }, - "label": "tag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573332, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M48 32H197.5C214.5 32 230.7 38.74 242.7 50.75L418.7 226.7C443.7 251.7 443.7 292.3 418.7 317.3L285.3 450.7C260.3 475.7 219.7 475.7 194.7 450.7L18.75 274.7C6.743 262.7 0 246.5 0 229.5V80C0 53.49 21.49 32 48 32L48 32zM112 176C129.7 176 144 161.7 144 144C144 126.3 129.7 112 112 112C94.33 112 80 126.3 80 144C80 161.7 94.33 176 112 176z" - } - }, - "free": [ - "solid" - ] - }, - "tags": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f02c", - "aliases": { - "unicodes": { - "secondary": [ - "10f02c" - ] - } - }, - "label": "tags", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573332, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M472.8 168.4C525.1 221.4 525.1 306.6 472.8 359.6L360.8 472.9C351.5 482.3 336.3 482.4 326.9 473.1C317.4 463.8 317.4 448.6 326.7 439.1L438.6 325.9C472.5 291.6 472.5 236.4 438.6 202.1L310.9 72.87C301.5 63.44 301.6 48.25 311.1 38.93C320.5 29.61 335.7 29.7 344.1 39.13L472.8 168.4zM.0003 229.5V80C.0003 53.49 21.49 32 48 32H197.5C214.5 32 230.7 38.74 242.7 50.75L410.7 218.7C435.7 243.7 435.7 284.3 410.7 309.3L277.3 442.7C252.3 467.7 211.7 467.7 186.7 442.7L18.75 274.7C6.743 262.7 0 246.5 0 229.5L.0003 229.5zM112 112C94.33 112 80 126.3 80 144C80 161.7 94.33 176 112 176C129.7 176 144 161.7 144 144C144 126.3 129.7 112 112 112z" - } - }, - "free": [ - "solid" - ] - }, - "tape": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4db", - "aliases": { - "unicodes": { - "secondary": [ - "10f4db" - ] - } - }, - "label": "Tape", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573333, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 256C288 291.3 259.3 320 224 320C188.7 320 160 291.3 160 256C160 220.7 188.7 192 224 192C259.3 192 288 220.7 288 256zM544 416C561.7 416 576 430.3 576 448C576 465.7 561.7 480 544 480H224C100.3 480 0 379.7 0 256C0 132.3 100.3 32 224 32C347.7 32 448 132.3 448 256C448 318.7 422.3 375.3 380.8 416H544zM224 352C277 352 320 309 320 256C320 202.1 277 160 224 160C170.1 160 128 202.1 128 256C128 309 170.1 352 224 352z" - } - }, - "free": [ - "solid" - ] - }, - "tarp": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e57b", - "label": "Tarp", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573333, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M576 288H448C430.3 288 416 302.3 416 320V448H64C28.65 448 0 419.3 0 384V128C0 92.65 28.65 64 64 64H512C547.3 64 576 92.65 576 128V288zM96 192C113.7 192 128 177.7 128 160C128 142.3 113.7 128 96 128C78.33 128 64 142.3 64 160C64 177.7 78.33 192 96 192zM448 448V320H576L448 448z" - } - }, - "free": [ - "solid" - ] - }, - "tarp-droplet": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e57c", - "label": "Tarp Droplet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573333, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M224 100C224 75.95 257.7 29.93 276.2 6.49C282.3-1.226 293.7-1.226 299.8 6.49C318.3 29.93 352 75.95 352 100C352 133.1 323.3 160 288 160C252.7 160 224 133.1 224 100V100zM64 128H197.5C210.6 165.3 246.2 192 288 192C329.8 192 365.4 165.3 378.5 128H512C547.3 128 576 156.7 576 192V352H448C430.3 352 416 366.3 416 384V512H64C28.65 512 0 483.3 0 448V192C0 156.7 28.65 128 64 128V128zM96 256C113.7 256 128 241.7 128 224C128 206.3 113.7 192 96 192C78.33 192 64 206.3 64 224C64 241.7 78.33 256 96 256zM448 512V384H576L448 512z" - } - }, - "free": [ - "solid" - ] - }, - "taxi": { - "changes": [ - "4.1.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1ba", - "aliases": { - "names": [ - "cab" - ], - "unicodes": { - "composite": [ - "1f696" - ], - "secondary": [ - "10f1ba" - ] - } - }, - "label": "Taxi", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573333, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M352 0C369.7 0 384 14.33 384 32V64L384 64.15C422.6 66.31 456.3 91.49 469.2 128.3L504.4 228.8C527.6 238.4 544 261.3 544 288V480C544 497.7 529.7 512 512 512H480C462.3 512 448 497.7 448 480V432H128V480C128 497.7 113.7 512 96 512H64C46.33 512 32 497.7 32 480V288C32 261.3 48.36 238.4 71.61 228.8L106.8 128.3C119.7 91.49 153.4 66.31 192 64.15L192 64V32C192 14.33 206.3 0 224 0L352 0zM197.4 128C183.8 128 171.7 136.6 167.2 149.4L141.1 224H434.9L408.8 149.4C404.3 136.6 392.2 128 378.6 128H197.4zM128 352C145.7 352 160 337.7 160 320C160 302.3 145.7 288 128 288C110.3 288 96 302.3 96 320C96 337.7 110.3 352 128 352zM448 288C430.3 288 416 302.3 416 320C416 337.7 430.3 352 448 352C465.7 352 480 337.7 480 320C480 302.3 465.7 288 448 288z" - } - }, - "free": [ - "solid" - ] - }, - "teamspeak": { - "changes": [ - "5.0.11", - "5.1.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f4f9", - "label": "TeamSpeak", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M244.2 346.8c2.4-12.3-12-30-32.4-48.7-20.9-19.2-48.2-39.1-63.4-46.6-21.7-12-41.7-1.8-46.3 22.7-5 26.2 0 51.4 14.5 73.9 10.2 15.5 25.4 22.7 43.4 24 11.6 .6 52.5 2.2 61.7-1 11.9-4.3 20.1-11.8 22.5-24.3zm205 20.8a5.22 5.22 0 0 0 -8.3 2.4c-8 25.4-44.7 112.5-172.1 121.5-149.7 10.5 80.3 43.6 145.4-6.4 22.7-17.4 47.6-35 46.6-85.4-.4-10.1-4.9-26.69-11.6-32.1zm62-122.4c-.3-18.9-8.6-33.4-26-42.2-2.9-1.3-5-2.7-5.9-6.4A222.6 222.6 0 0 0 438.9 103c-1.1-1.5-3.5-3.2-2.2-5 8.5-11.5-.3-18-7-24.4Q321.4-31.11 177.4 13.09c-40.1 12.3-73.9 35.6-102 67.4-4 4.3-6.7 9.1-3 14.5 3 4 1.3 6.2-1 9.3C51.6 132 38.2 162.6 32.1 196c-.7 4.3-2.9 6-6.4 7.8-14.2 7-22.5 18.5-24.9 34L0 264.3v20.9c0 30.8 21 50.4 51.8 49 7.7-.3 11.7-4.3 12-11.5 2-77.5-2.4-95.4 3.7-125.8C92.1 72.39 234.3 5 345.3 65.39 411.4 102 445.7 159 447.6 234.8c.8 28.2 0 56.5 0 84.6 0 7 2.2 12.5 9.4 14.2 24.1 5 49.2-12 53.2-36.7 2.9-17.1 1-34.5 1-51.7zm-159.6 131.5c36.5 2.8 59.3-28.5 58.4-60.5-2.1-45.2-66.2-16.5-87.8-8-73.2 28.1-45 54.9-22.2 60.8z" - } - }, - "free": [ - "brands" - ] - }, - "teeth": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f62e", - "aliases": { - "unicodes": { - "secondary": [ - "10f62e" - ] - } - }, - "label": "Teeth", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573333, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M480 32H96C42.98 32 0 74.98 0 128v256c0 53.02 42.98 96 96 96h384c53.02 0 96-42.98 96-96V128C576 74.98 533 32 480 32zM144 336C144 362.5 122.5 384 96 384s-48-21.5-48-48v-32C48 295.1 55.13 288 64 288h64c8.875 0 16 7.125 16 16V336zM144 240C144 248.9 136.9 256 128 256H64C55.13 256 48 248.9 48 240v-32C48 181.5 69.5 160 96 160s48 21.5 48 48V240zM272 336C272 362.5 250.5 384 224 384s-48-21.5-48-48v-32C176 295.1 183.1 288 192 288h64c8.875 0 16 7.125 16 16V336zM272 242.3C272 249.9 265.9 256 258.3 256H189.7C182.1 256 176 249.9 176 242.3V176C176 149.5 197.5 128 224 128s48 21.54 48 48V242.3zM400 336c0 26.5-21.5 48-48 48s-48-21.5-48-48v-32C304 295.1 311.1 288 320 288h64c8.875 0 16 7.125 16 16V336zM400 242.3C400 249.9 393.9 256 386.3 256h-68.57C310.1 256 304 249.9 304 242.3V176C304 149.5 325.5 128 352 128s48 21.54 48 48V242.3zM528 336c0 26.5-21.5 48-48 48s-48-21.5-48-48v-32C432 295.1 439.1 288 448 288h64c8.875 0 16 7.125 16 16V336zM528 240C528 248.9 520.9 256 512 256h-64c-8.875 0-16-7.125-16-16v-32C432 181.5 453.5 160 480 160s48 21.5 48 48V240z" - } - }, - "free": [ - "solid" - ] - }, - "teeth-open": { - "changes": [ - "5.2.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f62f", - "aliases": { - "unicodes": { - "secondary": [ - "10f62f" - ] - } - }, - "label": "Teeth Open", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573333, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M512 288H64c-35.35 0-64 28.65-64 64v32c0 53.02 42.98 96 96 96h384c53.02 0 96-42.98 96-96v-32C576 316.7 547.3 288 512 288zM144 368C144 394.5 122.5 416 96 416s-48-21.5-48-48v-32C48 327.1 55.13 320 64 320h64c8.875 0 16 7.125 16 16V368zM272 368C272 394.5 250.5 416 224 416s-48-21.5-48-48v-32C176 327.1 183.1 320 192 320h64c8.875 0 16 7.125 16 16V368zM400 368c0 26.5-21.5 48-48 48s-48-21.5-48-48v-32c0-8.875 7.125-16 16-16h64c8.875 0 16 7.125 16 16V368zM528 368c0 26.5-21.5 48-48 48s-48-21.5-48-48v-32c0-8.875 7.125-16 16-16h64c8.875 0 16 7.125 16 16V368zM480 32H96C42.98 32 0 74.98 0 128v64c0 35.35 28.65 64 64 64h448c35.35 0 64-28.65 64-64V128C576 74.98 533 32 480 32zM144 208C144 216.9 136.9 224 128 224H64C55.13 224 48 216.9 48 208v-32C48 149.5 69.5 128 96 128s48 21.5 48 48V208zM272 210.3C272 217.9 265.9 224 258.3 224H189.7C182.1 224 176 217.9 176 210.3V144C176 117.5 197.5 96 224 96s48 21.54 48 48V210.3zM400 210.3C400 217.9 393.9 224 386.3 224h-68.57C310.1 224 304 217.9 304 210.3V144C304 117.5 325.5 96 352 96s48 21.54 48 48V210.3zM528 208C528 216.9 520.9 224 512 224h-64c-8.875 0-16-7.125-16-16v-32C432 149.5 453.5 128 480 128s48 21.5 48 48V208z" - } - }, - "free": [ - "solid" - ] - }, - "telegram": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2c6", - "aliases": { - "names": [ - "telegram-plane" - ], - "unicodes": { - "composite": [ - "f3fe" - ], - "secondary": [ - "10f3fe" - ] - } - }, - "label": "Telegram", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119 0 256S111 504 248 504 496 392.1 496 256 384.1 8 248 8zM362.1 176.7c-3.732 39.22-19.88 134.4-28.1 178.3-3.476 18.58-10.32 24.82-16.95 25.42-14.4 1.326-25.34-9.517-39.29-18.66-21.83-14.31-34.16-23.22-55.35-37.18-24.49-16.14-8.612-25 5.342-39.5 3.652-3.793 67.11-61.51 68.33-66.75 .153-.655 .3-3.1-1.154-4.384s-3.59-.849-5.135-.5q-3.283 .746-104.6 69.14-14.85 10.19-26.89 9.934c-8.855-.191-25.89-5.006-38.55-9.123-15.53-5.048-27.88-7.717-26.8-16.29q.84-6.7 18.45-13.7 108.4-47.25 144.6-62.3c68.87-28.65 83.18-33.62 92.51-33.79 2.052-.034 6.639 .474 9.61 2.885a10.45 10.45 0 0 1 3.53 6.716A43.76 43.76 0 0 1 362.1 176.7z" - } - }, - "free": [ - "brands" - ] - }, - "temperature-arrow-down": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e03f", - "aliases": { - "names": [ - "temperature-down" - ], - "unicodes": { - "secondary": [ - "10e03f" - ] - } - }, - "label": "Temperature arrow down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M159.1 322.9l-.0002-18.92C159.1 295.1 152.9 287.1 144 287.1c-8.875 0-15.1 7.115-15.1 15.99L128 322.9c-22 7.875-35.25 30.38-31.25 53.38C100.6 399.4 120.6 416.1 144 416.1c23.37 0 43.37-16.71 47.25-39.83C195.2 353.3 181.1 330.8 159.1 322.9zM255.1 112C255.1 50.13 205.9 0 144 0C82.13 0 32 50.13 32 112v166.5C12.25 303.3 0 334 0 368C0 447.5 64.5 512 144 512c79.5 0 143.1-64.5 143.1-144c0-34-12.25-64.88-32-89.5V112zM219.9 393.4C208.1 426.1 178.4 447.1 144 447.1c-34.38 0-65-21.84-75.88-54.59C57.25 360.8 68.5 324.9 96 304.3V112C96 85.5 117.5 64 144 64c26.5 0 47.1 21.5 47.1 48v192.3C219.5 324.9 230.7 360.8 219.9 393.4zM499.1 343c-13.77-11.03-33.92-8.75-44.97 5L448 356.8V64c0-17.69-14.33-32-32-32s-32 14.31-32 32v292.8L376.1 348c-11.03-13.81-31.19-16.03-44.97-5c-13.81 11.06-16.05 31.19-5 45l64 80C397.1 475.6 406.3 480 416 480s18.92-4.406 24.98-12l64-80C516 374.2 513.8 354.1 499.1 343z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-arrow-up": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e040", - "aliases": { - "names": [ - "temperature-up" - ], - "unicodes": { - "secondary": [ - "10e040" - ] - } - }, - "label": "Temperature arrow up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M159.1 322.9V112C159.1 103.1 152.9 96 144 96C135.1 96 128 103.1 128 112v210.9c-22 7.875-35.25 30.38-31.25 53.38C100.6 399.4 120.6 416.1 144 416.1c23.37 0 43.37-16.71 47.25-39.83C195.2 353.3 181.1 330.8 159.1 322.9zM255.1 112C255.1 50.13 205.9 0 144 0C82.13 0 32 50.13 32 112v166.5C12.25 303.3 0 334 0 368C0 447.5 64.5 512 144 512c79.5 0 143.1-64.5 143.1-144c0-34-12.25-64.88-32-89.5V112zM219.9 393.4C208.1 426.1 178.4 447.1 144 447.1c-34.38 0-65-21.84-75.88-54.59C57.25 360.8 68.5 324.9 96 304.3V112c0-26.5 21.5-48.01 48-48.01c26.5 0 47.1 21.51 47.1 48.01v192.3C219.5 324.9 230.7 360.8 219.9 393.4zM504.1 124l-64-80c-12.12-15.19-37.84-15.19-49.97 0l-64 80c-11.05 13.81-8.812 33.94 5 45c13.75 11.03 33.94 8.781 44.97-5L384 155.2V448c0 17.69 14.33 32 32 32s32-14.31 32-32V155.2L455 164c6.312 7.906 15.61 12 25 12c7.016 0 14.08-2.281 19.97-7C513.8 157.9 516 137.8 504.1 124z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-empty": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2cb", - "aliases": { - "names": [ - "temperature-0", - "thermometer-0", - "thermometer-empty" - ], - "unicodes": { - "secondary": [ - "10f2cb" - ] - } - }, - "label": "Temperature empty", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M272 278.5V112c0-61.87-50.12-112-111.1-112S48 50.13 48 112v166.5c-19.75 24.75-32 55.5-32 89.5c0 79.5 64.5 143.1 144 143.1S304 447.5 304 368C304 334 291.8 303.1 272 278.5zM160 448c-44.13 0-80-35.87-80-79.1c0-25.5 12.25-48.88 32-63.75v-192.3c0-26.5 21.5-48 48-48s48 21.5 48 48v192.3c19.75 14.75 32 38.25 32 63.75C240 412.1 204.1 448 160 448zM160 320c-26.51 0-48 21.49-48 48s21.49 48 48 48s48-21.49 48-48S186.5 320 160 320z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-full": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2c7", - "aliases": { - "names": [ - "temperature-4", - "thermometer-4", - "thermometer-full" - ], - "unicodes": { - "secondary": [ - "10f2c7" - ] - } - }, - "label": "Temperature full", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M176 322.9V112c0-8.75-7.25-16-16-16s-16 7.25-16 16v210.9c-18.62 6.625-32 24.25-32 45.13c0 26.5 21.5 48 48 48s48-21.5 48-48C208 347.1 194.6 329.5 176 322.9zM272 278.5V112c0-61.87-50.12-112-111.1-112S48 50.13 48 112v166.5c-19.75 24.75-32 55.5-32 89.5c0 79.5 64.5 143.1 144 143.1S304 447.5 304 368C304 334 291.8 303.1 272 278.5zM160 448c-44.13 0-80-35.87-80-79.1c0-25.5 12.25-48.88 32-63.75v-192.3c0-26.5 21.5-48 48-48s48 21.5 48 48v192.3c19.75 14.75 32 38.25 32 63.75C240 412.1 204.1 448 160 448z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-half": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2c9", - "aliases": { - "names": [ - "temperature-2", - "thermometer-2", - "thermometer-half" - ], - "unicodes": { - "composite": [ - "1f321" - ], - "secondary": [ - "10f2c9" - ] - } - }, - "label": "Temperature half", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M176 322.9l.0002-114.9c0-8.75-7.25-16-16-16s-15.1 7.25-15.1 16L144 322.9c-18.62 6.625-32 24.25-32 45.13c0 26.5 21.5 48 48 48s48-21.5 48-48C208 347.1 194.6 329.5 176 322.9zM272 278.5V112c0-61.87-50.12-112-111.1-112S48 50.13 48 112v166.5c-19.75 24.75-32 55.5-32 89.5c0 79.5 64.5 143.1 144 143.1S304 447.5 304 368C304 334 291.8 303.1 272 278.5zM160 448c-44.13 0-80-35.87-80-79.1c0-25.5 12.25-48.88 32-63.75v-192.3c0-26.5 21.5-48 48-48s48 21.5 48 48v192.3c19.75 14.75 32 38.25 32 63.75C240 412.1 204.1 448 160 448z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-high": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f769", - "aliases": { - "unicodes": { - "secondary": [ - "10f769" - ] - } - }, - "label": "High Temperature", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M160 322.9V112C160 103.3 152.8 96 144 96S128 103.3 128 112v210.9C109.4 329.5 96 347.1 96 368C96 394.5 117.5 416 144 416S192 394.5 192 368C192 347.1 178.6 329.5 160 322.9zM416 0c-52.88 0-96 43.13-96 96s43.13 96 96 96s96-43.13 96-96S468.9 0 416 0zM416 128c-17.75 0-32-14.25-32-32s14.25-32 32-32s32 14.25 32 32S433.8 128 416 128zM256 112c0-61.88-50.13-112-112-112s-112 50.13-112 112v166.5c-19.75 24.75-32 55.5-32 89.5c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.1-12.25-64.88-32-89.5V112zM144 448c-44.13 0-80-35.88-80-80c0-25.5 12.25-48.88 32-63.75v-192.3c0-26.5 21.5-48 48-48S192 85.5 192 112V304.3c19.75 14.75 32 38.25 32 63.75C224 412.1 188.1 448 144 448z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-low": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f76b", - "aliases": { - "unicodes": { - "secondary": [ - "10f76b" - ] - } - }, - "label": "Low Temperature", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M160 322.9V304C160 295.3 152.8 288 144 288S128 295.3 128 304v18.88C109.4 329.5 96 347.1 96 368C96 394.5 117.5 416 144 416S192 394.5 192 368C192 347.1 178.6 329.5 160 322.9zM256 112c0-61.88-50.13-112-112-112s-112 50.13-112 112v166.5c-19.75 24.75-32 55.5-32 89.5c0 79.5 64.5 144 144 144s144-64.5 144-144c0-33.1-12.25-64.88-32-89.5V112zM144 448c-44.13 0-80-35.88-80-80c0-25.5 12.25-48.88 32-63.75v-192.3c0-26.5 21.5-48 48-48s48 21.5 48 48v192.1c19.75 14.75 32 38.38 32 63.88C224 412.1 188.1 448 144 448zM416 0c-52.88 0-96 43.13-96 96s43.13 96 96 96s96-43.13 96-96S468.9 0 416 0zM416 128c-17.75 0-32-14.25-32-32s14.25-32 32-32s32 14.25 32 32S433.8 128 416 128z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-quarter": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2ca", - "aliases": { - "names": [ - "temperature-1", - "thermometer-1", - "thermometer-quarter" - ], - "unicodes": { - "secondary": [ - "10f2ca" - ] - } - }, - "label": "Temperature quarter", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M176 322.9l.0002-50.88c0-8.75-7.25-16-16-16s-15.1 7.25-15.1 16L144 322.9c-18.62 6.625-32 24.25-32 45.13c0 26.5 21.5 48 48 48s48-21.5 48-48C208 347.1 194.6 329.5 176 322.9zM272 278.5V112c0-61.87-50.12-112-111.1-112S48 50.13 48 112v166.5c-19.75 24.75-32 55.5-32 89.5c0 79.5 64.5 143.1 144 143.1S304 447.5 304 368C304 334 291.8 303.1 272 278.5zM160 448c-44.13 0-80-35.87-80-79.1c0-25.5 12.25-48.88 32-63.75v-192.3c0-26.5 21.5-48 48-48s48 21.5 48 48v192.3c19.75 14.75 32 38.25 32 63.75C240 412.1 204.1 448 160 448z" - } - }, - "free": [ - "solid" - ] - }, - "temperature-three-quarters": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2c8", - "aliases": { - "names": [ - "temperature-3", - "thermometer-3", - "thermometer-three-quarters" - ], - "unicodes": { - "secondary": [ - "10f2c8" - ] - } - }, - "label": "Temperature three quarters", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M176 322.9V160c0-8.75-7.25-16-16-16s-16 7.25-16 16v162.9c-18.62 6.625-32 24.25-32 45.13c0 26.5 21.5 48 48 48s48-21.5 48-48C208 347.1 194.6 329.5 176 322.9zM272 278.5V112c0-61.87-50.12-112-111.1-112S48 50.13 48 112v166.5c-19.75 24.75-32 55.5-32 89.5c0 79.5 64.5 143.1 144 143.1S304 447.5 304 368C304 334 291.8 303.1 272 278.5zM160 448c-44.13 0-80-35.87-80-79.1c0-25.5 12.25-48.88 32-63.75v-192.3c0-26.5 21.5-48 48-48s48 21.5 48 48v192.3c19.75 14.75 32 38.25 32 63.75C240 412.1 204.1 448 160 448z" - } - }, - "free": [ - "solid" - ] - }, - "tencent-weibo": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d5", - "label": "Tencent Weibo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M72.3 495.8c1.4 19.9-27.6 22.2-29.7 2.9C31 368.8 73.7 259.2 144 185.5c-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM192 .1C66.1 .1-12.3 134.3 43.7 242.4 52.4 259.8 79 246.9 70 229 23.7 136.4 91 29.8 192 29.8c75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3C358.6 74.7 284 .1 192 .1z" - } - }, - "free": [ - "brands" - ] - }, - "tenge-sign": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7d7", - "aliases": { - "names": [ - "tenge" - ], - "unicodes": { - "composite": [ - "20b8" - ], - "secondary": [ - "10f7d7" - ] - } - }, - "label": "Tenge sign", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M0 64C0 46.33 14.33 32 32 32H352C369.7 32 384 46.33 384 64C384 81.67 369.7 96 352 96H32C14.33 96 0 81.67 0 64zM0 192C0 174.3 14.33 160 32 160H352C369.7 160 384 174.3 384 192C384 209.7 369.7 224 352 224H224V448C224 465.7 209.7 480 192 480C174.3 480 160 465.7 160 448V224H32C14.33 224 0 209.7 0 192z" - } - }, - "free": [ - "solid" - ] - }, - "tent": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e57d", - "label": "Tent", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M269.4 5.961C280.5-1.987 295.5-1.987 306.6 5.961L530.6 165.1C538 171.2 542.8 179.4 543.8 188.5L575.8 476.5C576.8 485.5 573.9 494.6 567.8 501.3C561.8 508.1 553.1 512 544 512H416L288 288V512H32C22.9 512 14.23 508.1 8.156 501.3C2.086 494.6-.8093 485.5 .1958 476.5L32.2 188.5C33.2 179.4 38 171.2 45.4 165.1L269.4 5.961z" - } - }, - "free": [ - "solid" - ] - }, - "tent-arrow-down-to-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e57e", - "label": "Tent Arrow-down-to-line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M241.8 111.9C250.7 121.8 249.9 136.1 240.1 145.8L160.1 217.8C150.9 226.1 137.1 226.1 127.9 217.8L47.94 145.8C38.09 136.1 37.29 121.8 46.16 111.9C55.03 102.1 70.2 101.3 80.05 110.2L119.1 146.1V24C119.1 10.75 130.7 0 143.1 0C157.3 0 167.1 10.75 167.1 24V146.1L207.9 110.2C217.8 101.3 232.1 102.1 241.8 111.9H241.8zM364.6 134.5C376.1 125.8 391.9 125.8 403.4 134.5L571.4 262.5C578 267.6 582.4 275 583.6 283.3L608.4 448C625.9 448.2 640 462.4 640 480C640 497.7 625.7 512 608 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H159.6L184.4 283.3C185.6 275 189.1 267.6 196.6 262.5L364.6 134.5zM384 448H460.8L384 320V448z" - } - }, - "free": [ - "solid" - ] - }, - "tent-arrow-left-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e57f", - "label": "Tent Arrow-left-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M568.1 78.16C573.1 82.71 576 89.2 576 96C576 102.8 573.1 109.3 568.1 113.8L488.1 185.8C478.2 194.7 463 193.9 454.2 184.1C445.3 174.2 446.1 159 455.9 150.2L489.5 120H86.54L120.1 150.2C129.9 159 130.7 174.2 121.8 184.1C112.1 193.9 97.8 194.7 87.94 185.8L7.945 113.8C2.888 109.3 0 102.8 0 96C0 89.2 2.888 82.71 7.945 78.16L87.94 6.161C97.8-2.706 112.1-1.907 121.8 7.945C130.7 17.8 129.9 32.97 120.1 41.84L86.54 72H489.5L455.9 41.84C446.1 32.97 445.3 17.8 454.2 7.945C463-1.907 478.2-2.706 488.1 6.161L568.1 78.16zM475.4 294.5C482 299.6 486.4 307 487.6 315.3L511.6 475.3C513 484.5 510.3 493.8 504.2 500.9C498.2 507.9 489.3 512 480 512H384L287.1 352V512H96C86.68 512 77.83 507.9 71.75 500.9C65.67 493.8 62.97 484.5 64.35 475.3L88.35 315.3C89.59 307 93.98 299.6 100.6 294.5L268.6 166.5C280.1 157.8 295.9 157.8 307.4 166.5L475.4 294.5z" - } - }, - "free": [ - "solid" - ] - }, - "tent-arrow-turn-left": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e580", - "label": "Tent Arrow-turn-left", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573334, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M86.54 72H456C522.3 72 576 125.7 576 192V232C576 245.3 565.3 256 552 256C538.7 256 528 245.3 528 232V192C528 152.2 495.8 120 456 120H86.54L120.1 150.2C129.9 159 130.7 174.2 121.8 184.1C112.1 193.9 97.8 194.7 87.94 185.8L7.945 113.8C2.888 109.3 0 102.8 0 96C0 89.2 2.888 82.71 7.945 78.16L87.94 6.161C97.8-2.706 112.1-1.907 121.8 7.945C130.7 17.8 129.9 32.97 120.1 41.84L86.54 72zM475.4 294.5C482 299.6 486.4 307 487.6 315.3L511.6 475.3C513 484.5 510.3 493.8 504.2 500.9C498.2 507.9 489.3 512 480 512H384L287.1 352V512H96C86.68 512 77.83 507.9 71.75 500.9C65.67 493.8 62.97 484.5 64.35 475.3L88.35 315.3C89.59 307 93.98 299.6 100.6 294.5L268.6 166.5C280.1 157.8 295.9 157.8 307.4 166.5L475.4 294.5z" - } - }, - "free": [ - "solid" - ] - }, - "tent-arrows-down": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e581", - "label": "Tent Arrows-down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M209.8 111.9C218.7 121.8 217.9 136.1 208.1 145.8L128.1 217.8C118.9 226.1 105.1 226.1 95.94 217.8L15.94 145.8C6.093 136.1 5.294 121.8 14.16 111.9C23.03 102.1 38.2 101.3 48.06 110.2L88 146.1V24C88 10.75 98.75 0 112 0C125.3 0 136 10.75 136 24V146.1L175.9 110.2C185.8 101.3 200.1 102.1 209.8 111.9H209.8zM561.8 111.9C570.7 121.8 569.9 136.1 560.1 145.8L480.1 217.8C470.9 226.1 457.1 226.1 447.9 217.8L367.9 145.8C358.1 136.1 357.3 121.8 366.2 111.9C375 102.1 390.2 101.3 400.1 110.2L440 146.1V24C440 10.75 450.7 0 464 0C477.3 0 488 10.75 488 24V146.1L527.9 110.2C537.8 101.3 552.1 102.1 561.8 111.9H561.8zM475.4 294.5C482 299.6 486.4 307 487.6 315.3L511.6 475.3C513 484.5 510.3 493.8 504.2 500.9C498.2 507.9 489.3 512 480 512H384L287.1 352V512H96C86.68 512 77.83 507.9 71.75 500.9C65.67 493.8 62.97 484.5 64.35 475.3L88.35 315.3C89.59 307 93.98 299.6 100.6 294.5L268.6 166.5C280.1 157.8 295.9 157.8 307.4 166.5L475.4 294.5z" - } - }, - "free": [ - "solid" - ] - }, - "tents": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e582", - "label": "Tents", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M396.6 6.546C408.1-2.182 423.9-2.182 435.4 6.546L603.4 134.5C610 139.6 614.4 147 615.6 155.3L639.6 315.3C641 324.5 638.3 333.8 632.2 340.9C626.2 347.9 617.3 352 608 352H461.5L455.3 310.5C452.8 294 444 279.2 430.8 269.1L262.8 141.1C254.6 134.9 245.4 130.9 235.8 129.1L396.6 6.546zM411.4 294.5C418 299.6 422.4 307 423.6 315.3L447.6 475.3C449 484.5 446.3 493.8 440.2 500.9C434.2 507.9 425.3 512 416 512H319.1L223.1 352V512H32C22.68 512 13.83 507.9 7.753 500.9C1.674 493.8-1.028 484.5 .3542 475.3L24.35 315.3C25.59 307 29.98 299.6 36.61 294.5L204.6 166.5C216.1 157.8 231.9 157.8 243.4 166.5L411.4 294.5z" - } - }, - "free": [ - "solid" - ] - }, - "terminal": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f120", - "aliases": { - "unicodes": { - "secondary": [ - "10f120" - ] - } - }, - "label": "Terminal", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M9.372 86.63C-3.124 74.13-3.124 53.87 9.372 41.37C21.87 28.88 42.13 28.88 54.63 41.37L246.6 233.4C259.1 245.9 259.1 266.1 246.6 278.6L54.63 470.6C42.13 483.1 21.87 483.1 9.372 470.6C-3.124 458.1-3.124 437.9 9.372 425.4L178.7 256L9.372 86.63zM544 416C561.7 416 576 430.3 576 448C576 465.7 561.7 480 544 480H256C238.3 480 224 465.7 224 448C224 430.3 238.3 416 256 416H544z" - } - }, - "free": [ - "solid" - ] - }, - "text-height": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f034", - "aliases": { - "unicodes": { - "secondary": [ - "10f034" - ] - } - }, - "label": "text-height", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M288 32.01H32c-17.67 0-32 14.31-32 32v64c0 17.69 14.33 32 32 32s32-14.31 32-32v-32h64v320H96c-17.67 0-32 14.31-32 32s14.33 32 32 32h128c17.67 0 32-14.31 32-32s-14.33-32-32-32H192v-320h64v32c0 17.69 14.33 32 32 32s32-14.31 32-32v-64C320 46.33 305.7 32.01 288 32.01zM521.4 361.4L512 370.8V141.3l9.375 9.375C527.6 156.9 535.8 160 544 160s16.38-3.125 22.62-9.375c12.5-12.5 12.5-32.75 0-45.25l-64-64c-12.5-12.5-32.75-12.5-45.25 0l-64 64c-12.5 12.5-12.5 32.75 0 45.25s32.75 12.5 45.25 0L448 141.3v229.5l-9.375-9.375c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25l64 64C463.6 476.9 471.8 480 480 480s16.38-3.118 22.62-9.368l64-64c12.5-12.5 12.5-32.75 0-45.25S533.9 348.9 521.4 361.4z" - } - }, - "free": [ - "solid" - ] - }, - "text-slash": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f87d", - "aliases": { - "names": [ - "remove-format" - ], - "unicodes": { - "secondary": [ - "10f87d" - ] - } - }, - "label": "Text slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M352 416H306.7l18.96-64.1L271.4 308.5L239.1 416H192c-17.67 0-32 14.31-32 32s14.33 31.99 31.1 31.99h160C369.7 480 384 465.7 384 448S369.7 416 352 416zM630.8 469.1l-276.4-216.7l45.63-156.5H512v32c0 17.69 14.33 32 32 32s32-14.31 32-32v-64c0-17.69-14.33-32-32-32H192c-17.67 0-32 14.31-32 32v36.11L38.81 5.13c-10.47-8.219-25.53-6.37-33.7 4.068s-6.349 25.54 4.073 33.69l591.1 463.1c4.406 3.469 9.61 5.127 14.8 5.127c7.125 0 14.17-3.164 18.9-9.195C643.1 492.4 641.2 477.3 630.8 469.1zM300.1 209.9l-82.08-64.33C221.5 140.5 224 134.7 224 128v-32h109.3L300.1 209.9z" - } - }, - "free": [ - "solid" - ] - }, - "text-width": { - "changes": [ - "1.0.0", - "5.0.0", - "5.9.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f035", - "aliases": { - "unicodes": { - "secondary": [ - "10f035" - ] - } - }, - "label": "Text Width", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 32.01H32c-17.67 0-32 14.31-32 32v63.1c0 17.69 14.33 32 32 32s32-14.31 32-32v-32h128v128H176c-17.67 0-32 14.31-32 31.1s14.33 32 32 32h96c17.67 0 32-14.31 32-32s-14.33-31.1-32-31.1H256v-128h128v32c0 17.69 14.33 32 32 32s32-14.32 32-32V64.01C448 46.33 433.7 32.01 416 32.01zM374.6 297.4c-12.5-12.5-32.75-12.5-45.25 0s-12.5 32.75 0 45.25l9.375 9.375h-229.5L118.6 342.6c12.5-12.5 12.5-32.75 0-45.25s-32.75-12.5-45.25 0l-64 64c-12.5 12.5-12.5 32.75 0 45.25l64 64C79.63 476.9 87.81 480 96 480s16.38-3.118 22.62-9.368c12.5-12.5 12.5-32.75 0-45.25l-9.375-9.375h229.5l-9.375 9.375c-12.5 12.5-12.5 32.75 0 45.25C335.6 476.9 343.8 480 352 480s16.38-3.118 22.62-9.368l64-64c12.5-12.5 12.5-32.75 0-45.25L374.6 297.4z" - } - }, - "free": [ - "solid" - ] - }, - "the-red-yeti": { - "changes": [ - "5.3.0", - "5.7.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f69d", - "label": "The Red Yeti", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M488.2 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9a122.2 122.2 0 0 0 -25.3 16.5c-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5 .5a239.4 239.4 0 0 0 -68.4-13.3c-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2L182 0c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27a35.12 35.12 0 0 0 -.5 25.3c3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0h-3.7l33 14.3a194.3 194.3 0 0 0 -46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8a200.2 200.2 0 0 0 -27.8 40.3c-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7 .7 3.4 1.2 5.2 0 25.5 .4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5A181.8 181.8 0 0 0 495 255a44.74 44.74 0 0 0 -6.8-13.3zM398 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4a242.4 242.4 0 0 1 -27 0c12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9a56.38 56.38 0 0 1 -1.7-15.2c5.4 .5 8.8 3.4 9.3 10.1 .5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8 .9-.7 14.8h-2.5a62.32 62.32 0 0 0 -8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2zM91 143.1l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5 .5 20.9 1.2a52.35 52.35 0 0 0 16 2.5l.5-1.7-8.4-35.8 13.5 29a42.89 42.89 0 0 0 5.9-14.3c1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3a234.7 234.7 0 0 0 -6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5C190.4 39.9 214 34 239.8 34.5l21.1 .5c-11.8 13.5-27.8 21.9-48.5 24.8a201.3 201.3 0 0 1 -23.4 2.9l-.2-.5-2.5-1.2a20.75 20.75 0 0 0 -14 2c-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7 .5 1.2c2 .2 3.9 .5 6.2 .7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4h1.2a39.4 39.4 0 0 1 25.3-15.2v-3c6.4 .5 13 1 19.4 1.2 6.4 0 8.4 .5 5.4 1.2a189.6 189.6 0 0 1 20.7 13.5c13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6a141.1 141.1 0 0 1 -3 28.3 209.9 209.9 0 0 1 -16 46l2.5 .5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2 .2-.2 .2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.3-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1L149 225c-8.8-3-18.2-3-28.3 .5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zm276.5 330c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3a262.6 262.6 0 0 0 35.4 24.8c3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1a80.25 80.25 0 0 1 20.7 26.6c-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2 .7 89.5zm115.3-214.4l-2.5 .5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2h-1.2l-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2a214.8 214.8 0 0 1 -93.2-6.4c-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4l-2.5-16.4-22.27 22.3c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2a18.5 18.5 0 0 1 3.7-1.7c.6-3.2 .4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7 .5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6v-.5l1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8v-2l-5.4-4.2h10.1l5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5a184 184 0 0 1 33 4.2l-23.6 2.5-1.2 3 26.6 23.1a254.2 254.2 0 0 1 27 32c-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5zm-6.1-71.3l-3.9 13-14.3-11.8zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2a50.22 50.22 0 0 0 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7a39.57 39.57 0 0 0 -14.27-13.8zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6v-4.7l-1.2 .5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5 .5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6 .3 9.3-1.1 9.3-14.8h-.5c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2a7.51 7.51 0 0 0 5.43 4.2zM216 82.9l-2.5 .5 .5 3a48.94 48.94 0 0 1 26.1 5.9c-2.5-5.5-10-14.3-28.3-14.3l.5 2.5zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7a42.67 42.67 0 0 0 14.8-28.3c1.7-16-1.2-29.5-8.8-41.3l13-7.6a2.26 2.26 0 0 0 -.5-1.7 14.21 14.21 0 0 0 -13.5 1.7c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5a99.61 99.61 0 0 0 -2.9 23.6c-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3a72.14 72.14 0 0 1 3 25.3c-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6a39.21 39.21 0 0 1 -11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9 .5 .5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6a83.47 83.47 0 0 0 1.7 33.7c.1 .5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2 .5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6h2.5l-11.8-7.6-7.1 .5c-5.9 1.2-12.3 4.2-19.4 8.4z" - } - }, - "free": [ - "brands" - ] - }, - "themeco": { - "changes": [ - "5.1.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5c6", - "label": "Themeco", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M202.9 8.43c9.9-5.73 26-5.82 35.95-.21L430 115.8c10 5.6 18 19.44 18 30.86V364c0 11.44-8.06 25.29-18 31L238.8 503.7c-9.93 5.66-26 5.57-35.85-.21L17.86 395.1C8 389.3 0 375.4 0 364V146.7c0-11.44 8-25.36 17.91-31.08zm-77.4 199.8c-15.94 0-31.89 .14-47.83 .14v101.4H96.8V280h28.7c49.71 0 49.56-71.74 0-71.74zm140.1 100.3l-30.73-34.64c37-7.51 34.8-65.23-10.87-65.51-16.09 0-32.17-.14-48.26-.14v101.6h19.13v-33.91h18.41l29.56 33.91h22.76zm-41.59-82.32c23.34 0 23.26 32.46 0 32.46h-29.13v-32.46zm-95.56-1.6c21.18 0 21.11 38.85 0 38.85H96.18v-38.84zm192.6-18.25c-68.46 0-71 105.8 0 105.8 69.48-.01 69.41-105.8 0-105.8zm0 17.39c44.12 0 44.8 70.86 0 70.86s-44.43-70.86 0-70.86z" - } - }, - "free": [ - "brands" - ] - }, - "themeisle": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2b2", - "label": "ThemeIsle", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M208 88.29c0-10 6.286-21.71 17.72-21.71 11.14 0 17.71 11.71 17.71 21.71 0 10.28-6.572 21.71-17.71 21.71C214.3 110 208 98.57 208 88.29zm304 160c0 36-11.43 102.3-36.29 129.7-22.86 24.86-87.43 61.14-120.9 70.57l-1.143 .286v32.57c0 16.29-12.57 30.57-29.14 30.57-10 0-19.43-5.714-24.57-14.29-5.427 8.572-14.86 14.29-24.86 14.29-10 0-19.43-5.714-24.86-14.29-5.142 8.572-14.57 14.29-24.57 14.29-10.29 0-19.43-5.714-24.86-14.29-5.143 8.572-14.57 14.29-24.57 14.29-18.86 0-29.43-15.71-29.43-32.86-16.29 12.28-35.72 19.43-56.57 19.43-22 0-43.43-8.285-60.29-22.86 10.28-.286 20.57-2.286 30.28-5.714-20.86-5.714-39.43-18.86-52-36.29 21.37 4.645 46.21 1.673 67.14-11.14-22-22-56.57-58.86-68.57-87.43C1.143 321.7 0 303.7 0 289.4c0-49.71 20.29-160 86.29-160 10.57 0 18.86 4.858 23.14 14.86a158.8 158.8 0 0 1 12-15.43c2-2.572 5.714-5.429 7.143-8.286 7.999-12.57 11.71-21.14 21.71-34C182.6 45.43 232 17.14 285.1 17.14c6 0 12 .285 17.71 1.143C313.7 6.571 328.9 0 344.6 0c14.57 0 29.71 6 40 16.29 .857 .858 1.428 2.286 1.428 3.428 0 3.714-10.28 13.43-12.86 16.29 4.286 1.429 15.71 6.858 15.71 12 0 2.857-2.857 5.143-4.571 7.143 31.43 27.71 49.43 67.14 56.29 108 4.286-5.143 10.28-8.572 17.14-8.572 10.57 0 20.86 7.144 28.57 14C507.1 187.1 512 221.7 512 248.3zM188 89.43c0 18.29 12.57 37.14 32.29 37.14 19.71 0 32.28-18.86 32.28-37.14 0-18-12.57-36.86-32.28-36.86-19.72 0-32.29 18.86-32.29 36.86zM237.7 194c0-19.71 3.714-39.14 8.571-58.29-52.04 79.53-13.53 184.6 68.86 184.6 21.43 0 42.57-7.714 60-20 2-7.429 3.714-14.86 3.714-22.57 0-14.29-6.286-21.43-20.57-21.43-4.571 0-9.143 .857-13.43 1.714-63.34 12.67-107.1 3.669-107.1-63.1zm-41.14 254.9c0-11.14-8.858-20.86-20.29-20.86-11.43 0-20 9.715-20 20.86v32.57c0 11.14 8.571 21.14 20 21.14 11.43 0 20.29-9.715 20.29-21.14v-32.57zm49.14 0c0-11.14-8.572-20.86-20-20.86-11.43 0-20.29 9.715-20.29 20.86v32.57c0 11.14 8.857 21.14 20.29 21.14 11.43 0 20-10 20-21.14v-32.57zm49.71 0c0-11.14-8.857-20.86-20.28-20.86-11.43 0-20.29 9.715-20.29 20.86v32.57c0 11.14 8.857 21.14 20.29 21.14 11.43 0 20.28-9.715 20.28-21.14v-32.57zm49.72 0c0-11.14-8.857-20.86-20.29-20.86-11.43 0-20.29 9.715-20.29 20.86v32.57c0 11.14 8.858 21.14 20.29 21.14 11.43 0 20.29-10 20.29-21.14v-32.57zM421.7 286c-30.86 59.14-90.29 102.6-158.6 102.6-96.57 0-160.6-84.57-160.6-176.6 0-16.86 2-33.43 6-49.71-20 33.72-29.71 72.57-29.71 111.4 0 60.29 24.86 121.7 71.43 160.9 5.143-9.714 14.86-16.29 26-16.29 10 0 19.43 5.714 24.57 14.29 5.429-8.571 14.57-14.29 24.86-14.29 10 0 19.43 5.714 24.57 14.29 5.429-8.571 14.86-14.29 24.86-14.29 10 0 19.43 5.714 24.86 14.29 5.143-8.571 14.57-14.29 24.57-14.29 10.86 0 20.86 6.572 25.71 16 43.43-36.29 68.57-92 71.43-148.3zm10.57-99.71c0-53.71-34.57-105.7-92.57-105.7-30.28 0-58.57 15.14-78.86 36.86C240.9 183.8 233.4 254 302.3 254c28.81 0 97.36-28.54 84.29 36.86 28.86-26 45.71-65.71 45.71-104.6z" - } - }, - "free": [ - "brands" - ] - }, - "thermometer": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f491", - "aliases": { - "unicodes": { - "secondary": [ - "10f491" - ] - } - }, - "label": "Thermometer", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M483.1 162.6L229.8 415.9l-99.87-.0001l-88.99 89.02c-9.249 9.377-24.5 9.377-33.87 0c-9.374-9.252-9.374-24.51 0-33.88l88.99-89.02l.0003-100.9l49.05-49.39l51.6 51.59c3.125 3.126 7.218 4.688 11.31 4.688s8.187-1.563 11.31-4.688c6.249-6.252 6.249-16.38 0-22.63L167.6 209.1l41.24-41.52l51.81 51.81c3.125 3.126 7.218 4.688 11.31 4.688s8.187-1.563 11.31-4.688c6.249-6.252 6.249-16.38 0-22.63L231.4 144.8l41.24-41.52l52.02 52.02c3.125 3.126 7.218 4.688 11.31 4.688s8.187-1.563 11.31-4.688c6.249-6.252 6.249-16.38 0-22.63l-52.09-52.09l49.68-50.02c36.37-36.51 94.37-40.88 131.9-10.25C526.2 61.11 518.9 127.8 483.1 162.6z" - } - }, - "free": [ - "solid" - ] - }, - "think-peaks": { - "changes": [ - "5.4.2", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f731", - "label": "Think Peaks", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M465.4 409.4l87.1-150.2-32-.3-55.1 95L259.2 0 23 407.4l32 .3L259.2 55.6zm-355.3-44.1h32.1l117.4-202.5L463 511.9l32.5 .1-235.8-404.6z" - } - }, - "free": [ - "brands" - ] - }, - "thumbs-down": { - "changes": [ - "3.2.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f165", - "aliases": { - "unicodes": { - "composite": [ - "f088", - "1f44e" - ], - "secondary": [ - "10f165" - ] - } - }, - "label": "thumbs-down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 32.04H32c-17.67 0-32 14.32-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64c17.67 0 32-14.33 32-31.1V64.03C128 46.36 113.7 32.04 96 32.04zM467.3 240.2C475.1 231.7 480 220.4 480 207.9c0-23.47-16.87-42.92-39.14-47.09C445.3 153.6 448 145.1 448 135.1c0-21.32-14-39.18-33.25-45.43C415.5 87.12 416 83.61 416 79.98C416 53.47 394.5 32 368 32h-58.69c-34.61 0-68.28 11.22-95.97 31.98L179.2 89.57C167.1 98.63 160 112.9 160 127.1l.1074 160c0 0-.0234-.0234 0 0c.0703 13.99 6.123 27.94 17.91 37.36l16.3 13.03C276.2 403.9 239.4 480 302.5 480c30.96 0 49.47-24.52 49.47-48.11c0-15.15-11.76-58.12-34.52-96.02H464c26.52 0 48-21.47 48-47.98C512 262.5 492.2 241.9 467.3 240.2z" - }, - "regular": { - "last_modified": 1658443573136, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M128 288V64.03c0-17.67-14.33-31.1-32-31.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64C113.7 320 128 305.7 128 288zM481.5 229.1c1.234-5.092 1.875-10.32 1.875-15.64c0-22.7-11.44-43.13-29.28-55.28c.4219-3.015 .6406-6.076 .6406-9.122c0-22.32-11.06-42.6-28.83-54.83c-2.438-34.71-31.47-62.2-66.8-62.2h-52.53c-35.94 0-71.55 11.87-100.3 33.41L169.6 92.93c-6.285 4.71-9.596 11.85-9.596 19.13c0 12.76 10.29 24.04 24.03 24.04c5.013 0 10.07-1.565 14.38-4.811l36.66-27.51c20.48-15.34 45.88-23.81 71.5-23.81h52.53c10.45 0 18.97 8.497 18.97 18.95c0 3.5-1.11 4.94-1.11 9.456c0 26.97 29.77 17.91 29.77 40.64c0 9.254-6.392 10.96-6.392 22.25c0 13.97 10.85 21.95 19.58 23.59c8.953 1.671 15.45 9.481 15.45 18.56c0 13.04-11.39 13.37-11.39 28.91c0 12.54 9.702 23.08 22.36 23.94C456.2 266.1 464 275.2 464 284.1c0 10.43-8.516 18.93-18.97 18.93H307.4c-12.44 0-24 10.02-24 23.1c0 4.038 1.02 8.078 3.066 11.72C304.4 371.7 312 403.8 312 411.2c0 8.044-5.984 20.79-22.06 20.79c-12.53 0-14.27-.9059-24.94-28.07c-24.75-62.91-61.74-99.9-80.98-99.9c-13.8 0-24.02 11.27-24.02 23.99c0 7.041 3.083 14.02 9.016 18.76C238.1 402 211.4 480 289.9 480C333.8 480 360 445 360 411.2c0-12.7-5.328-35.21-14.83-59.33h99.86C481.1 351.9 512 321.9 512 284.1C512 261.8 499.9 241 481.5 229.1z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "thumbs-up": { - "changes": [ - "3.2.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f164", - "aliases": { - "unicodes": { - "composite": [ - "f087", - "1f44d" - ], - "secondary": [ - "10f164" - ] - } - }, - "label": "thumbs-up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M128 447.1V223.1c0-17.67-14.33-31.1-32-31.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64C113.7 479.1 128 465.6 128 447.1zM512 224.1c0-26.5-21.48-47.98-48-47.98h-146.5c22.77-37.91 34.52-80.88 34.52-96.02C352 56.52 333.5 32 302.5 32c-63.13 0-26.36 76.15-108.2 141.6L178 186.6C166.2 196.1 160.2 210 160.1 224c-.0234 .0234 0 0 0 0L160 384c0 15.1 7.113 29.33 19.2 38.39l34.14 25.59C241 468.8 274.7 480 309.3 480H368c26.52 0 48-21.47 48-47.98c0-3.635-.4805-7.143-1.246-10.55C434 415.2 448 397.4 448 376c0-9.148-2.697-17.61-7.139-24.88C463.1 347 480 327.5 480 304.1c0-12.5-4.893-23.78-12.72-32.32C492.2 270.1 512 249.5 512 224.1z" - }, - "regular": { - "last_modified": 1658443573136, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M96 191.1H32c-17.67 0-32 14.33-32 31.1v223.1c0 17.67 14.33 31.1 32 31.1h64c17.67 0 32-14.33 32-31.1V223.1C128 206.3 113.7 191.1 96 191.1zM512 227c0-36.89-30.05-66.92-66.97-66.92h-99.86C354.7 135.1 360 113.5 360 100.8c0-33.8-26.2-68.78-70.06-68.78c-46.61 0-59.36 32.44-69.61 58.5c-31.66 80.5-60.33 66.39-60.33 93.47c0 12.84 10.36 23.99 24.02 23.99c5.256 0 10.55-1.721 14.97-5.26c76.76-61.37 57.97-122.7 90.95-122.7c16.08 0 22.06 12.75 22.06 20.79c0 7.404-7.594 39.55-25.55 71.59c-2.046 3.646-3.066 7.686-3.066 11.72c0 13.92 11.43 23.1 24 23.1h137.6C455.5 208.1 464 216.6 464 227c0 9.809-7.766 18.03-17.67 18.71c-12.66 .8593-22.36 11.4-22.36 23.94c0 15.47 11.39 15.95 11.39 28.91c0 25.37-35.03 12.34-35.03 42.15c0 11.22 6.392 13.03 6.392 22.25c0 22.66-29.77 13.76-29.77 40.64c0 4.515 1.11 5.961 1.11 9.456c0 10.45-8.516 18.95-18.97 18.95h-52.53c-25.62 0-51.02-8.466-71.5-23.81l-36.66-27.51c-4.315-3.245-9.37-4.811-14.38-4.811c-13.85 0-24.03 11.38-24.03 24.04c0 7.287 3.312 14.42 9.596 19.13l36.67 27.52C235 468.1 270.6 480 306.6 480h52.53c35.33 0 64.36-27.49 66.8-62.2c17.77-12.23 28.83-32.51 28.83-54.83c0-3.046-.2187-6.107-.6406-9.122c17.84-12.15 29.28-32.58 29.28-55.28c0-5.311-.6406-10.54-1.875-15.64C499.9 270.1 512 250.2 512 227z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "thumbtack": { - "changes": [ - "1.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f08d", - "aliases": { - "names": [ - "thumb-tack" - ], - "unicodes": { - "composite": [ - "1f588", - "1f4cc" - ], - "secondary": [ - "10f08d" - ] - } - }, - "label": "Thumbtack", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M32 32C32 14.33 46.33 0 64 0H320C337.7 0 352 14.33 352 32C352 49.67 337.7 64 320 64H290.5L301.9 212.2C338.6 232.1 367.5 265.4 381.4 306.9L382.4 309.9C385.6 319.6 383.1 330.4 377.1 338.7C371.9 347.1 362.3 352 352 352H32C21.71 352 12.05 347.1 6.04 338.7C.0259 330.4-1.611 319.6 1.642 309.9L2.644 306.9C16.47 265.4 45.42 232.1 82.14 212.2L93.54 64H64C46.33 64 32 49.67 32 32zM224 384V480C224 497.7 209.7 512 192 512C174.3 512 160 497.7 160 480V384H224z" - } - }, - "free": [ - "solid" - ] - }, - "ticket": { - "changes": [ - "3.1.0", - "5.0.0", - "5.10.1", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f145", - "aliases": { - "unicodes": { - "composite": [ - "1f39f" - ], - "secondary": [ - "10f145" - ] - } - }, - "label": "Ticket", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573336, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M128 160H448V352H128V160zM512 64C547.3 64 576 92.65 576 128V208C549.5 208 528 229.5 528 256C528 282.5 549.5 304 576 304V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V304C26.51 304 48 282.5 48 256C48 229.5 26.51 208 0 208V128C0 92.65 28.65 64 64 64H512zM96 352C96 369.7 110.3 384 128 384H448C465.7 384 480 369.7 480 352V160C480 142.3 465.7 128 448 128H128C110.3 128 96 142.3 96 160V352z" - } - }, - "free": [ - "solid" - ] - }, - "ticket-simple": { - "changes": [ - "5.0.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3ff", - "aliases": { - "names": [ - "ticket-alt" - ], - "unicodes": { - "secondary": [ - "10f3ff" - ] - } - }, - "label": "Ticket simple", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573335, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M0 128C0 92.65 28.65 64 64 64H512C547.3 64 576 92.65 576 128V208C549.5 208 528 229.5 528 256C528 282.5 549.5 304 576 304V384C576 419.3 547.3 448 512 448H64C28.65 448 0 419.3 0 384V304C26.51 304 48 282.5 48 256C48 229.5 26.51 208 0 208V128z" - } - }, - "free": [ - "solid" - ] - }, - "tiktok": { - "changes": [ - "5.13.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e07b", - "label": "TikTok", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 209.9a210.1 210.1 0 0 1 -122.8-39.25V349.4A162.6 162.6 0 1 1 185 188.3V278.2a74.62 74.62 0 1 0 52.23 71.18V0l88 0a121.2 121.2 0 0 0 1.86 22.17h0A122.2 122.2 0 0 0 381 102.4a121.4 121.4 0 0 0 67 20.14z" - } - }, - "free": [ - "brands" - ] - }, - "timeline": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e29c", - "label": "Timeline", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573336, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M160 224H480V169.3C451.7 156.1 432 128.8 432 96C432 51.82 467.8 16 512 16C556.2 16 592 51.82 592 96C592 128.8 572.3 156.1 544 169.3V224H608C625.7 224 640 238.3 640 256C640 273.7 625.7 288 608 288H352V342.7C380.3 355 400 383.2 400 416C400 460.2 364.2 496 320 496C275.8 496 240 460.2 240 416C240 383.2 259.7 355 288 342.7V288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H96V169.3C67.75 156.1 48 128.8 48 96C48 51.82 83.82 16 128 16C172.2 16 208 51.82 208 96C208 128.8 188.3 156.1 160 169.3V224zM128 120C141.3 120 152 109.3 152 96C152 82.75 141.3 72 128 72C114.7 72 104 82.75 104 96C104 109.3 114.7 120 128 120zM512 72C498.7 72 488 82.75 488 96C488 109.3 498.7 120 512 120C525.3 120 536 109.3 536 96C536 82.75 525.3 72 512 72zM320 440C333.3 440 344 429.3 344 416C344 402.7 333.3 392 320 392C306.7 392 296 402.7 296 416C296 429.3 306.7 440 320 440z" - } - }, - "free": [ - "solid" - ] - }, - "toggle-off": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f204", - "aliases": { - "unicodes": { - "secondary": [ - "10f204" - ] - } - }, - "label": "Toggle Off", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573336, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M192 352C138.1 352 96 309 96 256C96 202.1 138.1 160 192 160C245 160 288 202.1 288 256C288 309 245 352 192 352zM384 448H192C85.96 448 0 362 0 256C0 149.1 85.96 64 192 64H384C490 64 576 149.1 576 256C576 362 490 448 384 448zM384 128H192C121.3 128 64 185.3 64 256C64 326.7 121.3 384 192 384H384C454.7 384 512 326.7 512 256C512 185.3 454.7 128 384 128z" - } - }, - "free": [ - "solid" - ] - }, - "toggle-on": { - "changes": [ - "4.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f205", - "aliases": { - "unicodes": { - "secondary": [ - "10f205" - ] - } - }, - "label": "Toggle On", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573336, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M384 64C490 64 576 149.1 576 256C576 362 490 448 384 448H192C85.96 448 0 362 0 256C0 149.1 85.96 64 192 64H384zM384 352C437 352 480 309 480 256C480 202.1 437 160 384 160C330.1 160 288 202.1 288 256C288 309 330.1 352 384 352z" - } - }, - "free": [ - "solid" - ] - }, - "toilet": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7d8", - "aliases": { - "unicodes": { - "composite": [ - "1f6bd" - ], - "secondary": [ - "10f7d8" - ] - } - }, - "label": "Toilet", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M432 48C440.8 48 448 40.75 448 32V16C448 7.25 440.8 0 432 0h-416C7.25 0 0 7.25 0 16V32c0 8.75 7.25 16 16 16H32v158.7C11.82 221.2 0 237.1 0 256c0 60.98 33.28 115.2 84.1 150.4l-19.59 64.36C59.16 491.3 74.53 512 96.03 512h255.9c21.5 0 36.88-20.75 30.62-41.25L363 406.4C414.7 371.2 448 316.1 448 256c0-18.04-11.82-34.85-32-49.26V48H432zM96 72C96 67.63 99.63 64 104 64h48C156.4 64 160 67.63 160 72v16C160 92.38 156.4 96 152 96h-48C99.63 96 96 92.38 96 88V72zM224 288C135.6 288 64 273.7 64 256c0-17.67 71.63-32 160-32s160 14.33 160 32C384 273.7 312.4 288 224 288z" - } - }, - "free": [ - "solid" - ] - }, - "toilet-paper": { - "changes": [ - "5.4.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f71e", - "aliases": { - "unicodes": { - "composite": [ - "1f9fb" - ], - "secondary": [ - "10f71e" - ] - } - }, - "label": "Toilet Paper", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M127.1 0C74.98 0 31.98 86 31.98 192v172.1c0 41.12-9.751 62.75-31.13 126.9C-2.65 501.2 5.101 512 15.98 512h280.9c13.88 0 26-8.75 30.38-21.88c12.88-38.5 24.75-72.37 24.75-126L351.1 192c0-83.62 23.62-153.5 60.5-192H127.1zM95.99 224C87.11 224 79.99 216.9 79.99 208S87.11 192 95.99 192s16 7.125 16 16S104.9 224 95.99 224zM159.1 224c-8.875 0-16-7.125-16-16S151.1 192 159.1 192s16 7.125 16 16S168.9 224 159.1 224zM223.1 224C215.1 224 207.1 216.9 207.1 208S215.1 192 223.1 192c8.875 0 16 7.125 16 16S232.9 224 223.1 224zM287.1 224C279.1 224 271.1 216.9 271.1 208S279.1 192 287.1 192c8.875 0 16 7.125 16 16S296.9 224 287.1 224zM479.1 0c-53 0-96 86.06-96 192.1C383.1 298.1 426.1 384 479.1 384S576 298 576 192C576 86 532.1 0 479.1 0zM479.1 256c-17.63 0-32-28.62-32-64s14.38-64 32-64c17.63 0 32 28.62 32 64S497.6 256 479.1 256z" - } - }, - "free": [ - "solid" - ] - }, - "toilet-paper-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e072", - "aliases": { - "unicodes": { - "secondary": [ - "10e072" - ] - } - }, - "label": "Toilet Paper Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M63.98 191.1v172.1c0 41.12-9.75 62.75-31.13 126.9c-3.5 10.25 4.25 20.1 15.13 20.1l280.9-.0059c13.87 0 25.1-8.75 30.37-21.87c10.08-30.15 19.46-57.6 23.1-93.78L66.51 148.8C64.9 162.7 63.98 177.1 63.98 191.1zM630.8 469.1l-109.8-86.02c48.75-9.144 86.94-91.2 86.94-191.1C607.1 86 564.1 0 511.1 0s-96 86-96 191.1c0 49.25 9.362 94.03 24.62 128l-56.62-44.38l.0049-83.65c0-83.62 23.62-153.5 60.5-191.1H159.1C135.2 0 112.7 18.93 95.72 49.72L38.81 5.109C34.41 1.672 29.19 0 24.03 0c-7.125 0-14.19 3.156-18.91 9.187C-3.061 19.62-1.249 34.72 9.189 42.89l591.1 463.1c10.5 8.203 25.56 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1zM479.1 191.1c0-35.37 14.37-64 32-64c17.62 0 32 28.63 32 64S529.6 255.1 511.1 255.1C494.4 255.1 479.1 227.4 479.1 191.1z" - } - }, - "free": [ - "solid" - ] - }, - "toilet-portable": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e583", - "label": "Toilet Portable", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M0 32C0 14.33 14.33 0 32 0H288C305.7 0 320 14.33 320 32V64H0V32zM320 96V488C320 501.3 309.3 512 296 512C282.7 512 272 501.3 272 488V480H48V488C48 501.3 37.25 512 24 512C10.75 512 0 501.3 0 488V96H320zM256 240C256 231.2 248.8 224 240 224C231.2 224 224 231.2 224 240V304C224 312.8 231.2 320 240 320C248.8 320 256 312.8 256 304V240z" - } - }, - "free": [ - "solid" - ] - }, - "toilets-portable": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e584", - "label": "Toilets Portable", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M224 0C241.7 0 256 14.33 256 32V64H0V32C0 14.33 14.33 0 32 0H224zM0 96H256V488C256 501.3 245.3 512 232 512C218.7 512 208 501.3 208 488V480H48V488C48 501.3 37.25 512 24 512C10.75 512 0 501.3 0 488V96zM176 240V304C176 312.8 183.2 320 192 320C200.8 320 208 312.8 208 304V240C208 231.2 200.8 224 192 224C183.2 224 176 231.2 176 240zM544 0C561.7 0 576 14.33 576 32V64H320V32C320 14.33 334.3 0 352 0H544zM320 96H576V488C576 501.3 565.3 512 552 512C538.7 512 528 501.3 528 488V480H368V488C368 501.3 357.3 512 344 512C330.7 512 320 501.3 320 488V96zM496 240V304C496 312.8 503.2 320 512 320C520.8 320 528 312.8 528 304V240C528 231.2 520.8 224 512 224C503.2 224 496 231.2 496 240z" - } - }, - "free": [ - "solid" - ] - }, - "toolbox": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f552", - "aliases": { - "unicodes": { - "composite": [ - "1f9f0" - ], - "secondary": [ - "10f552" - ] - } - }, - "label": "Toolbox", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.6 182.6l-45.25-45.25C451.4 131.4 443.3 128 434.8 128H384V80C384 53.5 362.5 32 336 32h-160C149.5 32 128 53.5 128 80V128H77.25c-8.5 0-16.62 3.375-22.62 9.375L9.375 182.6C3.375 188.6 0 196.8 0 205.3V304h128v-32C128 263.1 135.1 256 144 256h32C184.9 256 192 263.1 192 272v32h128v-32C320 263.1 327.1 256 336 256h32C376.9 256 384 263.1 384 272v32h128V205.3C512 196.8 508.6 188.6 502.6 182.6zM336 128h-160V80h160V128zM384 368c0 8.875-7.125 16-16 16h-32c-8.875 0-16-7.125-16-16v-32H192v32C192 376.9 184.9 384 176 384h-32C135.1 384 128 376.9 128 368v-32H0V448c0 17.62 14.38 32 32 32h448c17.62 0 32-14.38 32-32v-112h-128V368z" - } - }, - "free": [ - "solid" - ] - }, - "tooth": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5c9", - "aliases": { - "unicodes": { - "composite": [ - "1f9b7" - ], - "secondary": [ - "10f5c9" - ] - } - }, - "label": "Tooth", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M394.1 212.8c-20.04 27.67-28.07 60.15-31.18 93.95c-3.748 41.34-8.785 82.46-17.89 122.8l-6.75 29.64c-2.68 12.14-13.29 20.78-25.39 20.78c-12 0-22.39-8.311-25.29-20.23l-29.57-121.2C254.1 322.6 240.1 311.4 224 311.4c-16.18 0-30.21 11.26-34.07 27.23l-29.57 121.2c-2.893 11.92-13.39 20.23-25.29 20.23c-12.21 0-22.71-8.639-25.5-20.78l-6.643-29.64c-9.105-40.36-14.14-81.48-17.1-122.8C81.93 272.1 73.9 240.5 53.86 212.8c-18.75-25.92-27.11-60.15-18.43-96.57c9.428-39.59 40.39-71.75 78.85-82.03c20.14-5.25 39.54-.4375 57.32 9.077l86.14 56.54c6.643 4.375 15.11 1.86 18.96-4.264c4.07-6.454 2.25-15.09-4.18-19.36l-24.21-15.86c3-1.531 6.215-2.735 9-4.813c22.39-16.84 48.75-28.65 76.39-21.33c38.46 10.28 69.43 42.43 78.85 82.03C421.2 152.7 412.9 187 394.1 212.8z" - } - }, - "free": [ - "solid" - ] - }, - "torii-gate": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6a1", - "aliases": { - "unicodes": { - "composite": [ - "26e9" - ], - "secondary": [ - "10f6a1" - ] - } - }, - "label": "Torii Gate", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 80V0L71.37 23.79C87.68 29.23 104.8 32 121.1 32H390C407.2 32 424.3 29.23 440.6 23.79L512 0V80C512 106.5 490.5 128 464 128H448V192H384V128H288V192H224V128H128V192H64V128H48C21.49 128 0 106.5 0 80zM32 288C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H448V480C448 497.7 433.7 512 416 512C398.3 512 384 497.7 384 480V288H128V480C128 497.7 113.7 512 96 512C78.33 512 64 497.7 64 480V288H32z" - } - }, - "free": [ - "solid" - ] - }, - "tornado": { - "changes": [ - "5.5.0", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f76f", - "aliases": { - "unicodes": { - "composite": [ - "1f32a" - ], - "secondary": [ - "10f76f" - ] - } - }, - "label": "Tornado", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M407.8 42.09c7.531-6.562 10.22-17.12 6.688-26.5C410.1 6.219 401.1 0 391.1 0L24.16 .0313c-13 0-23.66 10.38-24 23.38C-.5495 50.32 1.349 74.22 4.945 95.98h353.9C367.9 80.76 383.4 63.34 407.8 42.09zM387.7 195.9c-22.02-25.33-38.96-44.87-39-67.93H12.05c11.47 40.4 30.38 71.34 53.15 96h345.8C403.4 214.1 395.4 204.8 387.7 195.9zM303.6 485.3c-1.125 10.12 4.249 19.84 13.44 24.28C320.3 511.2 323.9 512 327.4 512c6.219 0 12.34-2.406 16.94-7c43.73-43.61 73.32-83.63 89.35-121h-148.6C300.8 408.6 308.7 440 303.6 485.3zM431.7 255.1H100.5C127.1 276.3 155.8 291.6 182.4 305.8c28.14 15.01 54.04 28.9 74.73 46.14h186.8C446.4 341.1 447.1 330.4 448 320C448 295.4 441.4 274.6 431.7 255.1z" - } - }, - "free": [ - "solid" - ] - }, - "tower-broadcast": { - "changes": [ - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f519", - "aliases": { - "names": [ - "broadcast-tower" - ], - "unicodes": { - "secondary": [ - "10f519" - ] - } - }, - "label": "Tower broadcast", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573337, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M160.9 59.01C149.3 52.6 134.7 56.76 128.3 68.39C117.6 87.6 112 109.4 112 131.4c0 19.03 4.031 37.44 11.98 54.62c4.047 8.777 12.73 13.93 21.8 13.93c3.375 0 6.797-.7187 10.05-2.219C167.9 192.2 173.1 177.1 167.5 165.9C162.5 155.1 160 143.5 160 131.4c0-13.93 3.547-27.69 10.25-39.81C176.7 80.04 172.5 65.42 160.9 59.01zM62.61 2.363C46.17-4.32 27.58 3.676 20.95 20.02C7.047 54.36 0 90.69 0 127.1C0 165.3 7.047 201.7 20.95 236C25.98 248.5 37.97 256 50.63 256C54.61 256 58.69 255.3 62.61 253.7C79 247 86.91 228.4 80.27 212C69.47 185.3 64 157.1 64 128c0-29.06 5.469-57.3 16.27-83.99C86.91 27.64 79 8.988 62.61 2.363zM555 20.02c-6.609-16.41-25.23-24.31-41.66-17.66c-16.39 6.625-24.3 25.28-17.66 41.65C506.5 70.7 512 98.95 512 128c0 29.06-5.469 57.31-16.27 83.1C489.1 228.4 497 247 513.4 253.7C517.3 255.3 521.4 256 525.4 256c12.66 0 24.64-7.562 29.67-20C568.1 201.7 576 165.3 576 127.1C576 90.69 568.1 54.36 555 20.02zM420.2 58.23c-12.03 5.562-17.28 19.81-11.72 31.84C413.5 100.9 416 112.5 416 124.6c0 13.94-3.547 27.69-10.25 39.81c-6.422 11.59-2.219 26.22 9.375 32.62c3.688 2.031 7.672 3 11.61 3c8.438 0 16.64-4.47 21.02-12.37C458.4 168.4 464 146.6 464 124.6c0-19.03-4.031-37.43-11.98-54.62C446.5 57.89 432.1 52.7 420.2 58.23zM301.8 65.45C260.5 56.78 224 88.13 224 128c0 23.63 12.95 44.04 32 55.12v296.9c0 17.67 14.33 32 32 32s32-14.33 32-32V183.1c23.25-13.54 37.42-40.96 30.03-71.18C344.4 88.91 325 70.31 301.8 65.45z" - } - }, - "free": [ - "solid" - ] - }, - "tower-cell": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e585", - "label": "Tower Cell", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M62.62 2.339C78.1 8.97 86.9 27.63 80.27 44.01C69.79 69.9 64 98.24 64 128C64 157.8 69.79 186.1 80.27 211.1C86.9 228.4 78.1 247 62.62 253.7C46.23 260.3 27.58 252.4 20.95 236C7.428 202.6 0 166.1 0 128C0 89.87 7.428 53.39 20.95 19.99C27.58 3.612 46.23-4.293 62.62 2.339V2.339zM513.4 2.339C529.8-4.293 548.4 3.612 555.1 19.99C568.6 53.39 576 89.87 576 128C576 166.1 568.6 202.6 555.1 236C548.4 252.4 529.8 260.3 513.4 253.7C497 247 489.1 228.4 495.7 211.1C506.2 186.1 512 157.8 512 128C512 98.24 506.2 69.9 495.7 44.01C489.1 27.63 497 8.969 513.4 2.338V2.339zM477.1 466.8C484.4 482.8 477.3 501.8 461.2 509.1C445.2 516.4 426.2 509.3 418.9 493.2L398.3 448H177.7L157.1 493.2C149.8 509.3 130.8 516.4 114.8 509.1C98.67 501.8 91.56 482.8 98.87 466.8L235.9 165.2C228.4 154.7 224 141.9 224 128C224 92.65 252.7 64 288 64C323.3 64 352 92.65 352 128C352 141.9 347.6 154.7 340.1 165.2L477.1 466.8zM369.2 384L354.7 352H221.3L206.8 384H369.2zM250.4 288H325.6L288 205.3L250.4 288zM152 128C152 147.4 156 165.8 163.3 182.4C168.6 194.5 163.1 208.7 150.9 213.1C138.8 219.3 124.6 213.8 119.3 201.6C109.5 179 104 154.1 104 128C104 101.9 109.5 76.96 119.3 54.39C124.6 42.25 138.8 36.7 150.9 42.01C163.1 47.31 168.6 61.46 163.3 73.61C156 90.23 152 108.6 152 128V128zM472 128C472 154.1 466.5 179 456.7 201.6C451.4 213.8 437.2 219.3 425.1 213.1C412.9 208.7 407.4 194.5 412.7 182.4C419.1 165.8 424 147.4 424 128C424 108.6 419.1 90.24 412.7 73.61C407.4 61.46 412.9 47.32 425.1 42.01C437.2 36.7 451.4 42.25 456.7 54.39C466.5 76.96 472 101.9 472 128V128z" - } - }, - "free": [ - "solid" - ] - }, - "tower-observation": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e586", - "label": "Tower Observation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M241.7 3.378C250.7-1.126 261.3-1.126 270.3 3.378L430.3 83.38C446.1 91.28 452.5 110.5 444.6 126.3C439 137.5 427.7 143.1 416 144V224C416 241.7 401.7 256 384 256H379.1L411.1 448H480C497.7 448 512 462.3 512 480C512 497.7 497.7 512 480 512H384.5C384.2 512 383.8 512 383.4 512H128.6C128.2 512 127.9 512 127.5 512H32C14.33 512 0 497.7 0 480C0 462.3 14.33 448 32 448H100.9L132.9 256H128C110.3 256 96 241.7 96 224V144C84.27 143.1 72.98 137.5 67.38 126.3C59.47 110.5 65.88 91.28 81.69 83.38L241.7 3.378zM314.5 448L256 399.2L197.5 448H314.5zM193.1 284.3L256 336.8L318.9 284.3L314.2 256H197.8L193.1 284.3zM183.9 339.2L172.8 406.1L218.5 368L183.9 339.2zM293.5 368L339.2 406.1L328.1 339.2L293.5 368zM176 128C167.2 128 160 135.2 160 144C160 152.8 167.2 160 176 160H336C344.8 160 352 152.8 352 144C352 135.2 344.8 128 336 128H176z" - } - }, - "free": [ - "solid" - ] - }, - "tractor": { - "changes": [ - "5.4.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f722", - "aliases": { - "unicodes": { - "composite": [ - "1f69c" - ], - "secondary": [ - "10f722" - ] - } - }, - "label": "Tractor", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M96 64C96 28.65 124.7 0 160 0H266.3C292.5 0 316 15.93 325.8 40.23L373.7 160H480V126.2C480 101.4 485.8 76.88 496.9 54.66L499.4 49.69C507.3 33.88 526.5 27.47 542.3 35.38C558.1 43.28 564.5 62.5 556.6 78.31L554.1 83.28C547.5 96.61 544 111.3 544 126.2V160H600C622.1 160 640 177.9 640 200V245.4C640 261.9 631.5 277.3 617.4 286.1L574.1 313.2C559.9 307.3 544.3 304 528 304C488.7 304 453.9 322.9 431.1 352H352C352 369.7 337.7 384 320 384H311.8C310.1 388.8 308.2 393.5 305.1 398.1L311.8 403.9C324.3 416.4 324.3 436.6 311.8 449.1L289.1 471.8C276.6 484.3 256.4 484.3 243.9 471.8L238.1 465.1C233.5 468.2 228.8 470.1 224 471.8V480C224 497.7 209.7 512 192 512H160C142.3 512 128 497.7 128 480V471.8C123.2 470.1 118.5 468.2 113.9 465.1L108.1 471.8C95.62 484.3 75.36 484.3 62.86 471.8L40.24 449.1C27.74 436.6 27.74 416.4 40.24 403.9L46.03 398.1C43.85 393.5 41.9 388.8 40.19 384H32C14.33 384 0 369.7 0 352V320C0 302.3 14.33 288 32 288H40.19C41.9 283.2 43.85 278.5 46.03 273.9L40.24 268.1C27.74 255.6 27.74 235.4 40.24 222.9L62.86 200.2C71.82 191.3 84.78 188.7 96 192.6L96 64zM160 64V160H304.7L266.3 64H160zM176 256C131.8 256 96 291.8 96 336C96 380.2 131.8 416 176 416C220.2 416 256 380.2 256 336C256 291.8 220.2 256 176 256zM440 424C440 394.2 454.8 367.9 477.4 352C491.7 341.9 509.2 336 528 336C530.7 336 533.3 336.1 535.9 336.3C580.8 340.3 616 378.1 616 424C616 472.6 576.6 512 528 512C479.4 512 440 472.6 440 424zM528 448C541.3 448 552 437.3 552 424C552 410.7 541.3 400 528 400C514.7 400 504 410.7 504 424C504 437.3 514.7 448 528 448z" - } - }, - "free": [ - "solid" - ] - }, - "trade-federation": { - "changes": [ - "5.0.12" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f513", - "label": "Trade Federation", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8.8c-137 0-248 111-248 248s111 248 248 248 248-111 248-248-111-248-248-248zm0 482.8c-129.7 0-234.8-105.1-234.8-234.8S118.3 22 248 22s234.8 105.1 234.8 234.8S377.7 491.6 248 491.6zm155.1-328.5v-46.8H209.3V198H54.2l36.7 46h117.7v196.8h48.8V245h83.3v-47h-83.3v-34.8h145.7zm-73.3 45.1v23.9h-82.9v197.4h-26.8V232.1H96.3l-20.1-23.9h143.9v-80.6h171.8V152h-145v56.2zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3zm165.4 145.2l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17zM248 29.9c-125.3 0-226.9 101.6-226.9 226.9S122.7 483.7 248 483.7s226.9-101.6 226.9-226.9S373.3 29.9 248 29.9zM342.6 196v51h-83.3v195.7h-52.7V245.9H89.9l-40-49.9h157.4v-81.6h197.8v50.7H259.4V196zM248 43.2c60.3 0 114.8 25 153.6 65.2H202.5V190H45.1C73.1 104.8 153.4 43.2 248 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1L87.1 252h114.7v196.8h64.6V253h83.3v-62.7h-83.2v-19.2h145.6v-50.8c30.8 37 49.3 84.6 49.3 136.5 .1 117.9-95.5 213.5-213.4 213.5zM178.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1z" - } - }, - "free": [ - "brands" - ] - }, - "trademark": { - "changes": [ - "4.4.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f25c", - "aliases": { - "unicodes": { - "composite": [ - "2122" - ], - "secondary": [ - "10f25c" - ] - } - }, - "label": "Trademark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M618.1 97.67c-13.02-4.375-27.45 .1562-35.72 11.16L464 266.7l-118.4-157.8c-8.266-11.03-22.64-15.56-35.72-11.16C296.8 102 288 114.2 288 128v256c0 17.69 14.33 32 32 32s32-14.31 32-32v-160l86.41 115.2c12.06 16.12 39.13 16.12 51.19 0L576 224v160c0 17.69 14.33 32 32 32s32-14.31 32-32v-256C640 114.2 631.2 102 618.1 97.67zM224 96.01H32c-17.67 0-32 14.31-32 32s14.33 32 32 32h64v223.1c0 17.69 14.33 31.99 32 31.99s32-14.3 32-31.99V160h64c17.67 0 32-14.31 32-32S241.7 96.01 224 96.01z" - } - }, - "free": [ - "solid" - ] - }, - "traffic-light": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f637", - "aliases": { - "unicodes": { - "composite": [ - "1f6a6" - ], - "secondary": [ - "10f637" - ] - } - }, - "label": "Traffic Light", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M256 0C291.3 0 320 28.65 320 64V352C320 440.4 248.4 512 160 512C71.63 512 0 440.4 0 352V64C0 28.65 28.65 0 64 0H256zM160 320C133.5 320 112 341.5 112 368C112 394.5 133.5 416 160 416C186.5 416 208 394.5 208 368C208 341.5 186.5 320 160 320zM160 288C186.5 288 208 266.5 208 240C208 213.5 186.5 192 160 192C133.5 192 112 213.5 112 240C112 266.5 133.5 288 160 288zM160 64C133.5 64 112 85.49 112 112C112 138.5 133.5 160 160 160C186.5 160 208 138.5 208 112C208 85.49 186.5 64 160 64z" - } - }, - "free": [ - "solid" - ] - }, - "trailer": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e041", - "aliases": { - "unicodes": { - "secondary": [ - "10e041" - ] - } - }, - "label": "Trailer", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M496 32C522.5 32 544 53.49 544 80V320H608C625.7 320 640 334.3 640 352C640 369.7 625.7 384 608 384H286.9C279.1 329.7 232.4 288 176 288C119.6 288 72.9 329.7 65.13 384H48C21.49 384 0 362.5 0 336V80C0 53.49 21.49 32 48 32H496zM64 112V264.2C73.83 256.1 84.55 249 96 243.2V112C96 103.2 88.84 96 80 96C71.16 96 64 103.2 64 112V112zM176 224C181.4 224 186.7 224.2 192 224.7V112C192 103.2 184.8 96 176 96C167.2 96 160 103.2 160 112V224.7C165.3 224.2 170.6 224 176 224zM256 243.2C267.4 249 278.2 256.1 288 264.2V112C288 103.2 280.8 96 272 96C263.2 96 256 103.2 256 112V243.2zM352 112V304C352 312.8 359.2 320 368 320C376.8 320 384 312.8 384 304V112C384 103.2 376.8 96 368 96C359.2 96 352 103.2 352 112zM480 112C480 103.2 472.8 96 464 96C455.2 96 448 103.2 448 112V304C448 312.8 455.2 320 464 320C472.8 320 480 312.8 480 304V112zM96 400C96 355.8 131.8 320 176 320C220.2 320 256 355.8 256 400C256 444.2 220.2 480 176 480C131.8 480 96 444.2 96 400zM176 432C193.7 432 208 417.7 208 400C208 382.3 193.7 368 176 368C158.3 368 144 382.3 144 400C144 417.7 158.3 432 176 432z" - } - }, - "free": [ - "solid" - ] - }, - "train": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f238", - "aliases": { - "unicodes": { - "composite": [ - "1f686" - ], - "secondary": [ - "10f238" - ] - } - }, - "label": "Train", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M352 0C405 0 448 42.98 448 96V352C448 399.1 412.8 439.7 366.9 446.9L412.9 492.9C419.9 499.9 414.9 512 404.1 512H365.3C356.8 512 348.6 508.6 342.6 502.6L288 448H160L105.4 502.6C99.37 508.6 91.23 512 82.75 512H43.04C33.06 512 28.06 499.9 35.12 492.9L81.14 446.9C35.18 439.7 0 399.1 0 352V96C0 42.98 42.98 0 96 0H352zM64 192C64 209.7 78.33 224 96 224H352C369.7 224 384 209.7 384 192V96C384 78.33 369.7 64 352 64H96C78.33 64 64 78.33 64 96V192zM224 384C250.5 384 272 362.5 272 336C272 309.5 250.5 288 224 288C197.5 288 176 309.5 176 336C176 362.5 197.5 384 224 384z" - } - }, - "free": [ - "solid" - ] - }, - "train-subway": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f239", - "aliases": { - "names": [ - "subway" - ], - "unicodes": { - "secondary": [ - "10f239" - ] - } - }, - "label": "Train subway", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M352 0C405 0 448 42.98 448 96V352C448 399.1 412.8 439.7 366.9 446.9L412.9 492.9C419.9 499.9 414.9 512 404.1 512H365.3C356.8 512 348.6 508.6 342.6 502.6L288 448H160L105.4 502.6C99.37 508.6 91.23 512 82.75 512H43.04C33.06 512 28.06 499.9 35.12 492.9L81.14 446.9C35.18 439.7 0 399.1 0 352V96C0 42.98 42.98 0 96 0H352zM64 224C64 241.7 78.33 256 96 256H176C193.7 256 208 241.7 208 224V128C208 110.3 193.7 96 176 96H96C78.33 96 64 110.3 64 128V224zM272 96C254.3 96 240 110.3 240 128V224C240 241.7 254.3 256 272 256H352C369.7 256 384 241.7 384 224V128C384 110.3 369.7 96 352 96H272zM96 320C78.33 320 64 334.3 64 352C64 369.7 78.33 384 96 384C113.7 384 128 369.7 128 352C128 334.3 113.7 320 96 320zM352 384C369.7 384 384 369.7 384 352C384 334.3 369.7 320 352 320C334.3 320 320 334.3 320 352C320 369.7 334.3 384 352 384z" - } - }, - "free": [ - "solid" - ] - }, - "train-tram": { - "changes": [ - "5.6.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e5b4", - "aliases": { - "unicodes": { - "composite": [ - "1f68a" - ] - } - }, - "label": "Train tram", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M86.76 48C74.61 48 63.12 53.52 55.53 63.01L42.74 78.99C34.46 89.34 19.36 91.02 9.007 82.74C-1.343 74.46-3.021 59.36 5.259 49.01L18.04 33.03C34.74 12.15 60.03 0 86.76 0H361.2C387.1 0 413.3 12.15 429.1 33.03L442.7 49.01C451 59.36 449.3 74.46 438.1 82.74C428.6 91.02 413.5 89.34 405.3 78.99L392.5 63.01C384.9 53.52 373.4 48 361.2 48H248V96H288C341 96 384 138.1 384 192V352C384 382.6 369.7 409.8 347.4 427.4L412.9 492.9C419.9 499.9 414.9 512 404.1 512H365.3C356.8 512 348.6 508.6 342.6 502.6L288 448H160L105.4 502.6C99.37 508.6 91.23 512 82.74 512H43.04C33.06 512 28.06 499.9 35.12 492.9L100.6 427.4C78.3 409.8 64 382.6 64 352V192C64 138.1 106.1 96 160 96H200V48H86.76zM160 160C142.3 160 128 174.3 128 192V224C128 241.7 142.3 256 160 256H288C305.7 256 320 241.7 320 224V192C320 174.3 305.7 160 288 160H160zM160 320C142.3 320 128 334.3 128 352C128 369.7 142.3 384 160 384C177.7 384 192 369.7 192 352C192 334.3 177.7 320 160 320zM288 384C305.7 384 320 369.7 320 352C320 334.3 305.7 320 288 320C270.3 320 256 334.3 256 352C256 369.7 270.3 384 288 384z" - } - }, - "free": [ - "solid" - ] - }, - "transgender": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f225", - "aliases": { - "names": [ - "transgender-alt" - ], - "unicodes": { - "composite": [ - "26a7" - ], - "secondary": [ - "10f225" - ] - } - }, - "label": "Transgender", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573338, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M498.6 .0003h-94.37c-17.96 0-26.95 21.71-14.25 34.41L411.1 55.61l-67.01 67.01C318.8 105.9 288.6 96 256 96S193.2 105.9 167.9 122.6L151.6 106.3l6.061-6.062c6.25-6.248 6.25-16.38 0-22.63L146.3 66.34c-6.25-6.248-16.38-6.248-22.63 0L117.7 72.41L100.9 55.61L122.1 34.41c12.7-12.7 3.703-34.41-14.25-34.41H13.44C6.016 .0003 0 6.016 0 13.44v94.37c0 17.96 21.71 26.95 34.41 14.25l21.2-21.2l16.8 16.8L66.35 123.7c-6.25 6.248-6.25 16.38 0 22.63l11.31 11.31c6.25 6.248 16.38 6.248 22.63 0l6.061-6.061L122.6 167.9C105.9 193.2 96 223.4 96 256c0 77.4 54.97 141.9 128 156.8v19.23l-16-.0014c-8.836 0-16 7.165-16 16v15.1c0 8.836 7.164 16 16 16L224 480v16c0 8.836 7.164 16 16 16h32c8.836 0 16-7.164 16-16v-16l16-.0001c8.836 0 16-7.164 16-16v-15.1c0-8.836-7.164-16-16-16L288 432v-19.23c73.03-14.83 128-79.37 128-156.8c0-32.6-9.867-62.85-26.61-88.14l67.01-67.01l21.2 21.2C490.3 134.8 512 125.8 512 107.8V13.44C512 6.016 505.1 .0003 498.6 .0003zM256 336c-44.11 0-80-35.89-80-80c0-44.11 35.89-80 80-80c44.11 0 80 35.89 80 80C336 300.1 300.1 336 256 336z" - } - }, - "free": [ - "solid" - ] - }, - "trash": { - "changes": [ - "4.2.0", - "5.0.0", - "5.7.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1f8", - "aliases": { - "unicodes": { - "secondary": [ - "10f1f8" - ] - } - }, - "label": "Trash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573340, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128H416L394.8 466.1z" - } - }, - "free": [ - "solid" - ] - }, - "trash-arrow-up": { - "changes": [ - "5.7.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f829", - "aliases": { - "names": [ - "trash-restore" - ], - "unicodes": { - "secondary": [ - "10f829" - ] - } - }, - "label": "Trash arrow up", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573339, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M284.2 0C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2zM31.1 128H416L394.8 466.1C393.2 492.3 372.3 512 346.9 512H101.1C75.75 512 54.77 492.3 53.19 466.1L31.1 128zM207 199L127 279C117.7 288.4 117.7 303.6 127 312.1C136.4 322.3 151.6 322.3 160.1 312.1L199.1 273.9V408C199.1 421.3 210.7 432 223.1 432C237.3 432 248 421.3 248 408V273.9L287 312.1C296.4 322.3 311.6 322.3 320.1 312.1C330.3 303.6 330.3 288.4 320.1 279L240.1 199C236.5 194.5 230.4 191.1 223.1 191.1C217.6 191.1 211.5 194.5 207 199V199z" - } - }, - "free": [ - "solid" - ] - }, - "trash-can": { - "changes": [ - "5.0.0", - "5.7.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2ed", - "aliases": { - "names": [ - "trash-alt" - ], - "unicodes": { - "composite": [ - "f014" - ], - "secondary": [ - "10f2ed" - ] - } - }, - "label": "Trash can", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573339, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM111.1 208V432C111.1 440.8 119.2 448 127.1 448C136.8 448 143.1 440.8 143.1 432V208C143.1 199.2 136.8 192 127.1 192C119.2 192 111.1 199.2 111.1 208zM207.1 208V432C207.1 440.8 215.2 448 223.1 448C232.8 448 240 440.8 240 432V208C240 199.2 232.8 192 223.1 192C215.2 192 207.1 199.2 207.1 208zM304 208V432C304 440.8 311.2 448 320 448C328.8 448 336 440.8 336 432V208C336 199.2 328.8 192 320 192C311.2 192 304 199.2 304 208z" - }, - "regular": { - "last_modified": 1658443573141, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M160 400C160 408.8 152.8 416 144 416C135.2 416 128 408.8 128 400V192C128 183.2 135.2 176 144 176C152.8 176 160 183.2 160 192V400zM240 400C240 408.8 232.8 416 224 416C215.2 416 208 408.8 208 400V192C208 183.2 215.2 176 224 176C232.8 176 240 183.2 240 192V400zM320 400C320 408.8 312.8 416 304 416C295.2 416 288 408.8 288 400V192C288 183.2 295.2 176 304 176C312.8 176 320 183.2 320 192V400zM317.5 24.94L354.2 80H424C437.3 80 448 90.75 448 104C448 117.3 437.3 128 424 128H416V432C416 476.2 380.2 512 336 512H112C67.82 512 32 476.2 32 432V128H24C10.75 128 0 117.3 0 104C0 90.75 10.75 80 24 80H93.82L130.5 24.94C140.9 9.357 158.4 0 177.1 0H270.9C289.6 0 307.1 9.358 317.5 24.94H317.5zM151.5 80H296.5L277.5 51.56C276 49.34 273.5 48 270.9 48H177.1C174.5 48 171.1 49.34 170.5 51.56L151.5 80zM80 432C80 449.7 94.33 464 112 464H336C353.7 464 368 449.7 368 432V128H80V432z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "trash-can-arrow-up": { - "changes": [ - "5.7.0", - "5.10.2", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f82a", - "aliases": { - "names": [ - "trash-restore-alt" - ], - "unicodes": { - "secondary": [ - "10f82a" - ] - } - }, - "label": "Trash can arrow up", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573339, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M284.2 0C296.3 0 307.4 6.848 312.8 17.69L320 32H416C433.7 32 448 46.33 448 64C448 81.67 433.7 96 416 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H128L135.2 17.69C140.6 6.848 151.7 0 163.8 0H284.2zM31.1 128H416V448C416 483.3 387.3 512 352 512H95.1C60.65 512 31.1 483.3 31.1 448V128zM207 199L127 279C117.7 288.4 117.7 303.6 127 312.1C136.4 322.3 151.6 322.3 160.1 312.1L199.1 273.9V408C199.1 421.3 210.7 432 223.1 432C237.3 432 248 421.3 248 408V273.9L287 312.1C296.4 322.3 311.6 322.3 320.1 312.1C330.3 303.6 330.3 288.4 320.1 279L240.1 199C236.5 194.5 230.4 191.1 223.1 191.1C217.6 191.1 211.5 194.5 207 199V199z" - } - }, - "free": [ - "solid" - ] - }, - "tree": { - "changes": [ - "4.1.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1bb", - "aliases": { - "unicodes": { - "composite": [ - "1f332" - ], - "secondary": [ - "10f1bb" - ] - } - }, - "label": "Tree", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573340, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M413.8 447.1L256 448l0 31.99C256 497.7 241.8 512 224.1 512c-17.67 0-32.1-14.32-32.1-31.99l0-31.99l-158.9-.0099c-28.5 0-43.69-34.49-24.69-56.4l68.98-79.59H62.22c-25.41 0-39.15-29.8-22.67-49.13l60.41-70.85H89.21c-21.28 0-32.87-22.5-19.28-37.31l134.8-146.5c10.4-11.3 28.22-11.3 38.62-.0033l134.9 146.5c13.62 14.81 2.001 37.31-19.28 37.31h-10.77l60.35 70.86c16.46 19.34 2.716 49.12-22.68 49.12h-15.2l68.98 79.59C458.7 413.7 443.1 447.1 413.8 447.1z" - } - }, - "free": [ - "solid" - ] - }, - "tree-city": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e587", - "label": "Tree City", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573340, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M288 48C288 21.49 309.5 0 336 0H432C458.5 0 480 21.49 480 48V192H520V120C520 106.7 530.7 96 544 96C557.3 96 568 106.7 568 120V192H592C618.5 192 640 213.5 640 240V464C640 490.5 618.5 512 592 512H336C309.5 512 288 490.5 288 464V48zM352 112C352 120.8 359.2 128 368 128H400C408.8 128 416 120.8 416 112V80C416 71.16 408.8 64 400 64H368C359.2 64 352 71.16 352 80V112zM368 160C359.2 160 352 167.2 352 176V208C352 216.8 359.2 224 368 224H400C408.8 224 416 216.8 416 208V176C416 167.2 408.8 160 400 160H368zM352 304C352 312.8 359.2 320 368 320H400C408.8 320 416 312.8 416 304V272C416 263.2 408.8 256 400 256H368C359.2 256 352 263.2 352 272V304zM528 256C519.2 256 512 263.2 512 272V304C512 312.8 519.2 320 528 320H560C568.8 320 576 312.8 576 304V272C576 263.2 568.8 256 560 256H528zM512 400C512 408.8 519.2 416 528 416H560C568.8 416 576 408.8 576 400V368C576 359.2 568.8 352 560 352H528C519.2 352 512 359.2 512 368V400zM224 160C224 166 223 171 222 176C242 190 256 214 256 240C256 285 220 320 176 320H160V480C160 498 145 512 128 512C110 512 96 498 96 480V320H80C35 320 0 285 0 240C0 214 13 190 33 176C32 171 32 166 32 160C32 107 74 64 128 64C181 64 224 107 224 160z" - } - }, - "free": [ - "solid" - ] - }, - "trello": { - "changes": [ - "3.2.0", - "5.0.0", - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f181", - "label": "Trello", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M392.3 32H56.1C25.1 32 0 57.1 0 88c-.1 0 0-4 0 336 0 30.9 25.1 56 56 56h336.2c30.8-.2 55.7-25.2 55.7-56V88c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6H87.4c-14.8 .1-26.9-11.8-27-26.6V117.1c0-14.8 12-26.9 26.9-26.9h82.9c14.8 0 26.9 12 26.9 26.9v254.2zm193.1-112c0 14.8-12 26.9-26.9 26.9h-81c-14.8 0-26.9-12-26.9-26.9V117.2c0-14.8 12-26.9 26.8-26.9h81.1c14.8 0 26.9 12 26.9 26.9v142.1z" - } - }, - "free": [ - "brands" - ] - }, - "triangle-exclamation": { - "changes": [ - "1.0.0", - "5.0.0", - "5.6.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f071", - "aliases": { - "names": [ - "exclamation-triangle", - "warning" - ], - "unicodes": { - "composite": [ - "26a0" - ], - "secondary": [ - "10f071" - ] - } - }, - "label": "Triangle exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573340, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M506.3 417l-213.3-364c-16.33-28-57.54-28-73.98 0l-213.2 364C-10.59 444.9 9.849 480 42.74 480h426.6C502.1 480 522.6 445 506.3 417zM232 168c0-13.25 10.75-24 24-24S280 154.8 280 168v128c0 13.25-10.75 24-23.1 24S232 309.3 232 296V168zM256 416c-17.36 0-31.44-14.08-31.44-31.44c0-17.36 14.07-31.44 31.44-31.44s31.44 14.08 31.44 31.44C287.4 401.9 273.4 416 256 416z" - } - }, - "free": [ - "solid" - ] - }, - "trophy": { - "changes": [ - "1.0.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f091", - "aliases": { - "unicodes": { - "composite": [ - "1f3c6" - ], - "secondary": [ - "10f091" - ] - } - }, - "label": "trophy", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573341, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M572.1 82.38C569.5 71.59 559.8 64 548.7 64h-100.8c.2422-12.45 .1078-23.7-.1559-33.02C447.3 13.63 433.2 0 415.8 0H160.2C142.8 0 128.7 13.63 128.2 30.98C127.1 40.3 127.8 51.55 128.1 64H27.26C16.16 64 6.537 71.59 3.912 82.38C3.1 85.78-15.71 167.2 37.07 245.9c37.44 55.82 100.6 95.03 187.5 117.4c18.7 4.805 31.41 22.06 31.41 41.37C256 428.5 236.5 448 212.6 448H208c-26.51 0-47.99 21.49-47.99 48c0 8.836 7.163 16 15.1 16h223.1c8.836 0 15.1-7.164 15.1-16c0-26.51-21.48-48-47.99-48h-4.644c-23.86 0-43.36-19.5-43.36-43.35c0-19.31 12.71-36.57 31.41-41.37c86.96-22.34 150.1-61.55 187.5-117.4C591.7 167.2 572.9 85.78 572.1 82.38zM77.41 219.8C49.47 178.6 47.01 135.7 48.38 112h80.39c5.359 59.62 20.35 131.1 57.67 189.1C137.4 281.6 100.9 254.4 77.41 219.8zM498.6 219.8c-23.44 34.6-59.94 61.75-109 81.22C426.9 243.1 441.9 171.6 447.2 112h80.39C528.1 135.7 526.5 178.7 498.6 219.8z" - } - }, - "free": [ - "solid" - ] - }, - "trowel": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e589", - "label": "Trowel", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573341, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M343.9 213.4L245.3 312L310.6 377.4C318.5 385.3 321.8 396.8 319.1 407.6C316.4 418.5 308.2 427.2 297.5 430.5L41.55 510.5C30.18 514.1 17.79 511 9.373 502.6C.9565 494.2-2.093 481.8 1.458 470.5L81.46 214.5C84.8 203.8 93.48 195.6 104.4 192.9C115.2 190.3 126.7 193.5 134.6 201.4L200 266.7L298.6 168.1C284.4 153.5 284.5 130.1 298.9 115.6L394.4 20.18C421.3-6.728 464.9-6.728 491.8 20.18C518.7 47.1 518.7 90.73 491.8 117.6L396.4 213.1C381.9 227.5 358.5 227.6 343.9 213.4V213.4z" - } - }, - "free": [ - "solid" - ] - }, - "trowel-bricks": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e58a", - "label": "Trowel Bricks", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573341, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M240.8 4.779C250.3 10.61 256 20.91 256 32V104H345C348.6 90.2 361.1 80 376 80H464C490.5 80 512 101.5 512 128C512 154.5 490.5 176 464 176H376C361.1 176 348.6 165.8 345 152H256V224C256 235.1 250.3 245.4 240.8 251.2C231.4 257.1 219.6 257.6 209.7 252.6L17.69 156.6C6.848 151.2 0 140.1 0 128C0 115.9 6.848 104.8 17.69 99.38L209.7 3.378C219.6-1.581 231.4-1.051 240.8 4.779V4.779zM288 256C288 238.3 302.3 224 320 224H480C497.7 224 512 238.3 512 256V320C512 337.7 497.7 352 480 352H320C302.3 352 288 337.7 288 320V256zM128 384C145.7 384 160 398.3 160 416V480C160 497.7 145.7 512 128 512H32C14.33 512 0 497.7 0 480V416C0 398.3 14.33 384 32 384H128zM480 384C497.7 384 512 398.3 512 416V480C512 497.7 497.7 512 480 512H224C206.3 512 192 497.7 192 480V416C192 398.3 206.3 384 224 384H480z" - } - }, - "free": [ - "solid" - ] - }, - "truck": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.7", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0d1", - "aliases": { - "unicodes": { - "composite": [ - "1f69a", - "26df" - ], - "secondary": [ - "10f0d1" - ] - } - }, - "label": "truck", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573343, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M368 0C394.5 0 416 21.49 416 48V96H466.7C483.7 96 499.1 102.7 512 114.7L589.3 192C601.3 204 608 220.3 608 237.3V352C625.7 352 640 366.3 640 384C640 401.7 625.7 416 608 416H576C576 469 533 512 480 512C426.1 512 384 469 384 416H256C256 469 213 512 160 512C106.1 512 64 469 64 416H48C21.49 416 0 394.5 0 368V48C0 21.49 21.49 0 48 0H368zM416 160V256H544V237.3L466.7 160H416zM160 368C133.5 368 112 389.5 112 416C112 442.5 133.5 464 160 464C186.5 464 208 442.5 208 416C208 389.5 186.5 368 160 368zM480 464C506.5 464 528 442.5 528 416C528 389.5 506.5 368 480 368C453.5 368 432 389.5 432 416C432 442.5 453.5 464 480 464z" - } - }, - "free": [ - "solid" - ] - }, - "truck-arrow-right": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e58b", - "label": "Truck Arrow-right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573341, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 48C0 21.49 21.49 0 48 0H368C394.5 0 416 21.49 416 48V96H466.7C483.7 96 499.1 102.7 512 114.7L589.3 192C601.3 204 608 220.3 608 237.3V352C625.7 352 640 366.3 640 384C640 401.7 625.7 416 608 416H576C576 469 533 512 480 512C426.1 512 384 469 384 416H256C256 469 213 512 160 512C106.1 512 64 469 64 416H48C21.49 416 0 394.5 0 368V48zM544 256V237.3L466.7 160H416V256H544zM160 464C186.5 464 208 442.5 208 416C208 389.5 186.5 368 160 368C133.5 368 112 389.5 112 416C112 442.5 133.5 464 160 464zM480 368C453.5 368 432 389.5 432 416C432 442.5 453.5 464 480 464C506.5 464 528 442.5 528 416C528 389.5 506.5 368 480 368zM256.1 95.03C247.6 85.66 232.4 85.66 223 95.03C213.7 104.4 213.7 119.6 223 128.1L262.1 168H96C82.75 168 72 178.7 72 192C72 205.3 82.75 216 96 216H262.1L223 255C213.7 264.4 213.7 279.6 223 288.1C232.4 298.3 247.6 298.3 256.1 288.1L336.1 208.1C346.3 199.6 346.3 184.4 336.1 175L256.1 95.03z" - } - }, - "free": [ - "solid" - ] - }, - "truck-droplet": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e58c", - "label": "Truck Droplet", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573341, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 48C0 21.49 21.49 0 48 0H368C394.5 0 416 21.49 416 48V96H466.7C483.7 96 499.1 102.7 512 114.7L589.3 192C601.3 204 608 220.3 608 237.3V352C625.7 352 640 366.3 640 384C640 401.7 625.7 416 608 416H576C576 469 533 512 480 512C426.1 512 384 469 384 416H256C256 469 213 512 160 512C106.1 512 64 469 64 416H48C21.49 416 0 394.5 0 368V48zM544 256V237.3L466.7 160H416V256H544zM160 464C186.5 464 208 442.5 208 416C208 389.5 186.5 368 160 368C133.5 368 112 389.5 112 416C112 442.5 133.5 464 160 464zM480 368C453.5 368 432 389.5 432 416C432 442.5 453.5 464 480 464C506.5 464 528 442.5 528 416C528 389.5 506.5 368 480 368zM208 272C247.8 272 280 242.4 280 205.1C280 179 240.6 123 220.1 95.71C213.1 87.54 202 87.54 195.9 95.71C175.4 123 136 179 136 205.1C136 242.4 168.2 272 208 272V272z" - } - }, - "free": [ - "solid" - ] - }, - "truck-fast": { - "changes": [ - "5.0.7", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f48b", - "aliases": { - "names": [ - "shipping-fast" - ], - "unicodes": { - "secondary": [ - "10f48b" - ] - } - }, - "label": "Truck fast", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573341, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M112 0C85.49 0 64 21.49 64 48V96H16C7.163 96 0 103.2 0 112C0 120.8 7.163 128 16 128H272C280.8 128 288 135.2 288 144C288 152.8 280.8 160 272 160H48C39.16 160 32 167.2 32 176C32 184.8 39.16 192 48 192H240C248.8 192 256 199.2 256 208C256 216.8 248.8 224 240 224H16C7.163 224 0 231.2 0 240C0 248.8 7.163 256 16 256H208C216.8 256 224 263.2 224 272C224 280.8 216.8 288 208 288H64V416C64 469 106.1 512 160 512C213 512 256 469 256 416H384C384 469 426.1 512 480 512C533 512 576 469 576 416H608C625.7 416 640 401.7 640 384C640 366.3 625.7 352 608 352V237.3C608 220.3 601.3 204 589.3 192L512 114.7C499.1 102.7 483.7 96 466.7 96H416V48C416 21.49 394.5 0 368 0H112zM544 237.3V256H416V160H466.7L544 237.3zM160 464C133.5 464 112 442.5 112 416C112 389.5 133.5 368 160 368C186.5 368 208 389.5 208 416C208 442.5 186.5 464 160 464zM528 416C528 442.5 506.5 464 480 464C453.5 464 432 442.5 432 416C432 389.5 453.5 368 480 368C506.5 368 528 389.5 528 416z" - } - }, - "free": [ - "solid" - ] - }, - "truck-field": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e58d", - "label": "Truck Field", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M32 96C32 60.65 60.65 32 96 32H320C343.7 32 364.4 44.87 375.4 64H427.2C452.5 64 475.4 78.9 485.7 102L538.5 220.8C538.1 221.9 539.4 222.9 539.8 223.1H544C579.3 223.1 608 252.7 608 287.1V319.1C625.7 319.1 640 334.3 640 352C640 369.7 625.7 384 608 384H576C576 437 533 480 480 480C426.1 480 384 437 384 384H256C256 437 213 480 160 480C106.1 480 64 437 64 384H32C14.33 384 0 369.7 0 352C0 334.3 14.33 319.1 32 319.1V287.1C14.33 287.1 0 273.7 0 255.1V159.1C0 142.3 14.33 127.1 32 127.1V96zM469.9 224L427.2 128H384V224H469.9zM160 432C186.5 432 208 410.5 208 384C208 357.5 186.5 336 160 336C133.5 336 112 357.5 112 384C112 410.5 133.5 432 160 432zM480 336C453.5 336 432 357.5 432 384C432 410.5 453.5 432 480 432C506.5 432 528 410.5 528 384C528 357.5 506.5 336 480 336z" - } - }, - "free": [ - "solid" - ] - }, - "truck-field-un": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e58e", - "label": "Truck Field-un", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M320 32C343.7 32 364.4 44.87 375.4 64H427.2C452.5 64 475.4 78.9 485.7 102L538.5 220.8C538.1 221.9 539.4 222.9 539.8 224H544C579.3 224 608 252.7 608 288V320C625.7 320 640 334.3 640 352C640 369.7 625.7 384 608 384H576C576 437 533 480 480 480C426.1 480 384 437 384 384H256C256 437 213 480 160 480C106.1 480 64 437 64 384H32C14.33 384 0 369.7 0 352C0 334.3 14.33 320 32 320V288C14.33 288 0 273.7 0 256V160C0 142.3 14.33 128 32 128V96C32 60.65 60.65 32 96 32L320 32zM384 128V224H469.9L427.2 128H384zM160 336C133.5 336 112 357.5 112 384C112 410.5 133.5 432 160 432C186.5 432 208 410.5 208 384C208 357.5 186.5 336 160 336zM480 432C506.5 432 528 410.5 528 384C528 357.5 506.5 336 480 336C453.5 336 432 357.5 432 384C432 410.5 453.5 432 480 432zM253.3 135.1C249.4 129.3 242.1 126.6 235.4 128.7C228.6 130.7 224 136.9 224 144V240C224 248.8 231.2 256 240 256C248.8 256 256 248.8 256 240V196.8L290.7 248.9C294.6 254.7 301.9 257.4 308.6 255.3C315.4 253.3 320 247.1 320 240V144C320 135.2 312.8 128 304 128C295.2 128 288 135.2 288 144V187.2L253.3 135.1zM128 144C128 135.2 120.8 128 112 128C103.2 128 96 135.2 96 144V208C96 234.5 117.5 256 144 256C170.5 256 192 234.5 192 208V144C192 135.2 184.8 128 176 128C167.2 128 160 135.2 160 144V208C160 216.8 152.8 224 144 224C135.2 224 128 216.8 128 208V144z" - } - }, - "free": [ - "solid" - ] - }, - "truck-front": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e2b7", - "label": "Truck Front", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 80C0 35.82 35.82 0 80 0H432C476.2 0 512 35.82 512 80V368C512 394.2 499.4 417.4 480 432V480C480 497.7 465.7 512 448 512H416C398.3 512 384 497.7 384 480V448H128V480C128 497.7 113.7 512 96 512H64C46.33 512 32 497.7 32 480V432C12.57 417.4 0 394.2 0 368V80zM129.9 152.2L112 224H400L382.1 152.2C378.5 137.1 365.7 128 351 128H160.1C146.3 128 133.5 137.1 129.9 152.2H129.9zM96 288C78.33 288 64 302.3 64 320C64 337.7 78.33 352 96 352C113.7 352 128 337.7 128 320C128 302.3 113.7 288 96 288zM416 352C433.7 352 448 337.7 448 320C448 302.3 433.7 288 416 288C398.3 288 384 302.3 384 320C384 337.7 398.3 352 416 352z" - } - }, - "free": [ - "solid" - ] - }, - "truck-medical": { - "changes": [ - "3.0.0", - "5.0.0", - "5.0.7", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0f9", - "aliases": { - "names": [ - "ambulance" - ], - "unicodes": { - "composite": [ - "1f691" - ], - "secondary": [ - "10f0f9" - ] - } - }, - "label": "Truck medical", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M368 0C394.5 0 416 21.49 416 48V96H466.7C483.7 96 499.1 102.7 512 114.7L589.3 192C601.3 204 608 220.3 608 237.3V352C625.7 352 640 366.3 640 384C640 401.7 625.7 416 608 416H576C576 469 533 512 480 512C426.1 512 384 469 384 416H256C256 469 213 512 160 512C106.1 512 64 469 64 416H48C21.49 416 0 394.5 0 368V48C0 21.49 21.49 0 48 0H368zM416 160V256H544V237.3L466.7 160H416zM160 368C133.5 368 112 389.5 112 416C112 442.5 133.5 464 160 464C186.5 464 208 442.5 208 416C208 389.5 186.5 368 160 368zM480 464C506.5 464 528 442.5 528 416C528 389.5 506.5 368 480 368C453.5 368 432 389.5 432 416C432 442.5 453.5 464 480 464zM112 176C112 184.8 119.2 192 128 192H176V240C176 248.8 183.2 256 192 256H224C232.8 256 240 248.8 240 240V192H288C296.8 192 304 184.8 304 176V144C304 135.2 296.8 128 288 128H240V80C240 71.16 232.8 64 224 64H192C183.2 64 176 71.16 176 80V128H128C119.2 128 112 135.2 112 144V176z" - } - }, - "free": [ - "solid" - ] - }, - "truck-monster": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f63b", - "aliases": { - "unicodes": { - "secondary": [ - "10f63b" - ] - } - }, - "label": "Truck Monster", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M419.2 25.6L496 128H576C593.7 128 608 142.3 608 160V224C625.7 224 640 238.3 640 256C640 273.7 625.7 287.1 608 288C578.8 249.1 532.3 224 480 224C427.7 224 381.2 249.1 351.1 288H288C258.8 249.1 212.3 224 160 224C107.7 224 61.18 249.1 31.99 288C14.32 287.1 0 273.7 0 256C0 238.3 14.33 224 32 224V160C32 142.3 46.33 128 64 128H224V48C224 21.49 245.5 0 272 0H368C388.1 0 407.1 9.484 419.2 25.6H419.2zM288 128H416L368 64H288V128zM168 256C180.1 256 190.1 264.9 191.8 276.6C199.4 278.8 206.7 281.9 213.5 285.6C222.9 278.5 236.3 279.3 244.9 287.8L256.2 299.1C264.7 307.7 265.5 321.1 258.4 330.5C262.1 337.3 265.2 344.6 267.4 352.2C279.1 353.9 288 363.9 288 376V392C288 404.1 279.1 414.1 267.4 415.8C265.2 423.4 262.1 430.7 258.4 437.5C265.5 446.9 264.7 460.3 256.2 468.9L244.9 480.2C236.3 488.7 222.9 489.5 213.5 482.4C206.7 486.1 199.4 489.2 191.8 491.4C190.1 503.1 180.1 512 167.1 512H151.1C139.9 512 129.9 503.1 128.2 491.4C120.6 489.2 113.3 486.1 106.5 482.4C97.09 489.5 83.7 488.7 75.15 480.2L63.83 468.9C55.28 460.3 54.53 446.9 61.58 437.5C57.85 430.7 54.81 423.4 52.57 415.8C40.94 414.1 31.1 404.1 31.1 392V376C31.1 363.9 40.94 353.9 52.57 352.2C54.81 344.6 57.85 337.3 61.58 330.5C54.53 321.1 55.28 307.7 63.83 299.1L75.15 287.8C83.7 279.3 97.09 278.5 106.5 285.6C113.3 281.9 120.6 278.8 128.2 276.6C129.9 264.9 139.9 255.1 151.1 255.1L168 256zM160 432C186.5 432 208 410.5 208 384C208 357.5 186.5 336 160 336C133.5 336 112 357.5 112 384C112 410.5 133.5 432 160 432zM448.2 276.6C449.9 264.9 459.9 256 472 256H488C500.1 256 510.1 264.9 511.8 276.6C519.4 278.8 526.7 281.9 533.5 285.6C542.9 278.5 556.3 279.3 564.9 287.8L576.2 299.1C584.7 307.7 585.5 321.1 578.4 330.5C582.1 337.3 585.2 344.6 587.4 352.2C599.1 353.9 608 363.9 608 376V392C608 404.1 599.1 414.1 587.4 415.8C585.2 423.4 582.1 430.7 578.4 437.5C585.5 446.9 584.7 460.3 576.2 468.9L564.9 480.2C556.3 488.7 542.9 489.5 533.5 482.4C526.7 486.1 519.4 489.2 511.8 491.4C510.1 503.1 500.1 512 488 512H472C459.9 512 449.9 503.1 448.2 491.4C440.6 489.2 433.3 486.1 426.5 482.4C417.1 489.5 403.7 488.7 395.1 480.2L383.8 468.9C375.3 460.3 374.5 446.9 381.6 437.5C377.9 430.7 374.8 423.4 372.6 415.8C360.9 414.1 352 404.1 352 392V376C352 363.9 360.9 353.9 372.6 352.2C374.8 344.6 377.9 337.3 381.6 330.5C374.5 321.1 375.3 307.7 383.8 299.1L395.1 287.8C403.7 279.3 417.1 278.5 426.5 285.6C433.3 281.9 440.6 278.8 448.2 276.6L448.2 276.6zM480 336C453.5 336 432 357.5 432 384C432 410.5 453.5 432 480 432C506.5 432 528 410.5 528 384C528 357.5 506.5 336 480 336z" - } - }, - "free": [ - "solid" - ] - }, - "truck-moving": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4df", - "aliases": { - "unicodes": { - "secondary": [ - "10f4df" - ] - } - }, - "label": "Truck Moving", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M416 32C451.3 32 480 60.65 480 96V144H528.8C545.6 144 561.5 151.5 572.2 164.5L630.1 236.4C636.8 243.5 640 252.5 640 261.7V352C640 369.7 625.7 384 608 384H606.4C607.4 389.2 608 394.5 608 400C608 444.2 572.2 480 528 480C483.8 480 448 444.2 448 400C448 394.5 448.6 389.2 449.6 384H286.4C287.4 389.2 288 394.5 288 400C288 444.2 252.2 480 208 480C181.8 480 158.6 467.4 144 448C129.4 467.4 106.2 480 80 480C35.82 480 0 444.2 0 400V96C0 60.65 28.65 32 64 32H416zM535 194.9C533.5 193.1 531.2 192 528.8 192H480V256H584.1L535 194.9zM528 432C545.7 432 560 417.7 560 400C560 382.3 545.7 368 528 368C510.3 368 496 382.3 496 400C496 417.7 510.3 432 528 432zM208 368C190.3 368 176 382.3 176 400C176 417.7 190.3 432 208 432C225.7 432 240 417.7 240 400C240 382.3 225.7 368 208 368zM80 432C97.67 432 112 417.7 112 400C112 382.3 97.67 368 80 368C62.33 368 48 382.3 48 400C48 417.7 62.33 432 80 432z" - } - }, - "free": [ - "solid" - ] - }, - "truck-pickup": { - "changes": [ - "5.2.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f63c", - "aliases": { - "unicodes": { - "composite": [ - "1f6fb" - ], - "secondary": [ - "10f63c" - ] - } - }, - "label": "Truck Side", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M272 32H368.6C388.1 32 406.5 40.84 418.6 56.02L527.4 192H576C593.7 192 608 206.3 608 224V288C625.7 288 640 302.3 640 320C640 337.7 625.7 352 608 352H574.9C575.6 357.2 576 362.6 576 368C576 429.9 525.9 480 464 480C402.1 480 352 429.9 352 368C352 362.6 352.4 357.2 353.1 352H286.9C287.6 357.2 288 362.6 288 368C288 429.9 237.9 480 176 480C114.1 480 64 429.9 64 368C64 362.6 64.39 357.2 65.13 352H32C14.33 352 0 337.7 0 320C0 302.3 14.33 288 32 288V224C32 206.3 46.33 192 64 192H224V80C224 53.49 245.5 32 272 32H272zM368.6 96H288V192H445.4L368.6 96zM176 416C202.5 416 224 394.5 224 368C224 341.5 202.5 320 176 320C149.5 320 128 341.5 128 368C128 394.5 149.5 416 176 416zM464 416C490.5 416 512 394.5 512 368C512 341.5 490.5 320 464 320C437.5 320 416 341.5 416 368C416 394.5 437.5 416 464 416z" - } - }, - "free": [ - "solid" - ] - }, - "truck-plane": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e58f", - "label": "Truck Plane", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M256 86.06L256 182.9L256 184V411.5L256.1 411.6C257.3 433.8 269.8 452.9 288 463.4V496C288 501.2 288.8 506.3 290.4 510.1L200 480.9L109.1 511.2C104.2 512.8 98.82 511.1 94.64 508.1C90.47 505.1 88 501.1 88 496V464C88 459.1 90.21 454.5 94 451.5L144 411.5V330.3L20.6 367.3C15.75 368.8 10.51 367.9 6.449 364.8C2.391 361.8 0 357.1 0 352V288C0 282.4 2.949 277.2 7.768 274.3L144 192.5V86.06C144 54.68 169.4 0 200 0C231.5 0 256 54.68 256 86.06V86.06zM288 176C288 149.5 309.5 128 336 128H592C618.5 128 640 149.5 640 176V400C640 420.9 626.6 438.7 608 445.3V488C608 501.3 597.3 512 584 512H568C554.7 512 544 501.3 544 488V448H384V488C384 501.3 373.3 512 360 512H344C330.7 512 320 501.3 320 488V445.3C301.4 438.7 288 420.9 288 400V176zM367.8 254.7L352 304H576L560.2 254.7C556.9 246 548.9 240 539.7 240H388.3C379.1 240 371.1 246 367.8 254.7H367.8zM568 400C581.3 400 592 389.3 592 376C592 362.7 581.3 352 568 352C554.7 352 544 362.7 544 376C544 389.3 554.7 400 568 400zM360 352C346.7 352 336 362.7 336 376C336 389.3 346.7 400 360 400C373.3 400 384 389.3 384 376C384 362.7 373.3 352 360 352z" - } - }, - "free": [ - "solid" - ] - }, - "truck-ramp-box": { - "changes": [ - "5.0.9", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4de", - "aliases": { - "names": [ - "truck-loading" - ], - "unicodes": { - "secondary": [ - "10f4de" - ] - } - }, - "label": "Truck ramp box", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573342, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 .0003V400C640 461.9 589.9 512 528 512C467 512 417.5 463.3 416 402.7L48.41 502.9C31.36 507.5 13.77 497.5 9.126 480.4C4.48 463.4 14.54 445.8 31.59 441.1L352 353.8V64C352 28.65 380.7 0 416 0L640 .0003zM528 352C501.5 352 480 373.5 480 400C480 426.5 501.5 448 528 448C554.5 448 576 426.5 576 400C576 373.5 554.5 352 528 352zM23.11 207.7C18.54 190.6 28.67 173.1 45.74 168.5L92.1 156.1L112.8 233.4C115.1 241.9 123.9 246.1 132.4 244.7L163.3 236.4C171.8 234.1 176.9 225.3 174.6 216.8L153.9 139.5L200.3 127.1C217.4 122.5 234.9 132.7 239.5 149.7L280.9 304.3C285.5 321.4 275.3 338.9 258.3 343.5L103.7 384.9C86.64 389.5 69.1 379.3 64.52 362.3L23.11 207.7z" - } - }, - "free": [ - "solid" - ] - }, - "tty": { - "changes": [ - "4.2.0", - "5.0.0", - "5.7.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1e4", - "aliases": { - "names": [ - "teletype" - ], - "unicodes": { - "secondary": [ - "10f1e4" - ] - } - }, - "label": "TTY", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573343, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M271.1 364v40c0 6.625 5.375 12 12 12h40c6.625 0 12-5.375 12-12v-40c0-6.625-5.375-12-12-12h-40C277.3 352 271.1 357.4 271.1 364zM367.1 364v40c0 6.625 5.375 12 12 12h40c6.625 0 12-5.375 12-12v-40c0-6.625-5.375-12-12-12h-40C373.3 352 367.1 357.4 367.1 364zM275.1 256h-40c-6.625 0-12 5.375-12 12v40c0 6.625 5.376 12 12 12h39.1c6.625 0 12-5.375 12-12v-40C287.1 261.4 282.6 256 275.1 256zM83.96 448h-40c-6.625 0-12 5.375-12 12v40c0 6.625 5.375 12 12 12h40c6.625 0 12-5.375 12-12v-40C95.96 453.4 90.59 448 83.96 448zM175.1 364v40c0 6.625 5.375 12 12 12h40c6.625 0 12-5.375 12-12v-40c0-6.625-5.375-12-12-12h-40C181.3 352 175.1 357.4 175.1 364zM371.1 256h-40c-6.625 0-12 5.375-12 12v40c0 6.625 5.372 12 11.1 12h39.1c6.625 0 12-5.375 12-12v-40C383.1 261.4 378.6 256 371.1 256zM467.1 256h-40c-6.625 0-12 5.375-12 12v40c0 6.625 5.369 12 11.99 12h39.1c6.625 0 12.01-5.375 12.01-12v-40C479.1 261.4 474.6 256 467.1 256zM371.1 448h-232c-6.625 0-12 5.375-12 12v40c0 6.625 5.375 12 12 12h232c6.625 0 12-5.375 12-12v-40C383.1 453.4 378.6 448 371.1 448zM179.1 256h-40c-6.625 0-12 5.375-12 12v40c0 6.625 5.38 12 12 12h39.1c6.625 0 11.1-5.375 11.1-12v-40C191.1 261.4 186.6 256 179.1 256zM467.1 448h-40c-6.625 0-12 5.375-12 12v40c0 6.625 5.375 12 12 12h40c6.625 0 12-5.375 12-12v-40C479.1 453.4 474.6 448 467.1 448zM79.96 364v40c0 6.625 5.375 12 12 12h40c6.625 0 12-5.375 12-12v-40c0-6.625-5.375-12-12-12h-40C85.34 352 79.96 357.4 79.96 364zM83.96 256h-40c-6.625 0-12 5.375-12 12v40c0 6.625 5.383 12 12.01 12H83.97c6.625 0 11.99-5.375 11.99-12v-40C95.96 261.4 90.59 256 83.96 256zM504.9 102.9C367.7-34.31 144.3-34.32 7.083 102.9c-7.975 7.973-9.375 20.22-3.391 29.74l42.17 67.47c6.141 9.844 18.47 13.88 29.35 9.632l84.36-33.74C169.5 172.1 175.6 161.1 174.5 151.3l-5.303-53.27c56.15-19.17 117.4-19.17 173.6 .0059L337.5 151.3c-1.139 10.59 4.997 20.78 14.96 24.73l84.35 33.73c10.83 4.303 23.22 .1608 29.33-9.615l42.18-67.48C514.3 123.2 512.9 110.9 504.9 102.9z" - } - }, - "free": [ - "solid" - ] - }, - "tumblr": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f173", - "label": "Tumblr", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M309.8 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6v-144H17.9c-5.5 0-10-4.5-10-10v-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1 .8-11 6.5-16.3 16.1-16.3h70.9c5.5 0 10 4.5 10 10v115.2h83c5.5 0 10 4.4 10 9.9v81.7c0 5.5-4.5 10-10 10h-83.4V360c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5 .9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z" - } - }, - "free": [ - "brands" - ] - }, - "turkish-lira-sign": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e2bb", - "aliases": { - "names": [ - "try", - "turkish-lira" - ] - }, - "label": "Turkish Lira-sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573343, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M96 32C113.7 32 128 46.33 128 64V99.29L247.2 65.23C264.2 60.38 281.9 70.22 286.8 87.21C291.6 104.2 281.8 121.9 264.8 126.8L128 165.9V195.3L247.2 161.2C264.2 156.4 281.9 166.2 286.8 183.2C291.6 200.2 281.8 217.9 264.8 222.8L128 261.9V416H191.8C260 416 316.2 362.5 319.6 294.4L320 286.4C320.9 268.8 335.9 255.2 353.6 256C371.2 256.9 384.8 271.9 383.1 289.6L383.6 297.6C378.5 399.8 294.1 480 191.8 480H96C78.33 480 64 465.7 64 448V280.1L40.79 286.8C23.8 291.6 6.087 281.8 1.232 264.8C-3.623 247.8 6.217 230.1 23.21 225.2L64 213.6V184.1L40.79 190.8C23.8 195.6 6.087 185.8 1.232 168.8C-3.623 151.8 6.216 134.1 23.21 129.2L64 117.6V64C64 46.33 78.33 32 96 32L96 32z" - } - }, - "free": [ - "solid" - ] - }, - "turn-down": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3be", - "aliases": { - "names": [ - "level-down-alt" - ], - "unicodes": { - "composite": [ - "2935" - ], - "secondary": [ - "10f3be" - ] - } - }, - "label": "Turn down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573343, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M313.6 392.3l-104 112c-9.5 10.23-25.69 10.23-35.19 0l-104-112c-6.484-6.984-8.219-17.17-4.406-25.92S78.45 352 88 352H160V80C160 71.19 152.8 64 144 64H32C14.33 64 0 49.69 0 32s14.33-32 32-32h112C188.1 0 224 35.88 224 80V352h72c9.547 0 18.19 5.656 22 14.41S320.1 385.3 313.6 392.3z" - } - }, - "free": [ - "solid" - ] - }, - "turn-up": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f3bf", - "aliases": { - "names": [ - "level-up-alt" - ], - "unicodes": { - "composite": [ - "2934" - ], - "secondary": [ - "10f3bf" - ] - } - }, - "label": "Turn up", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573343, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M318 145.6c-3.812 8.75-12.45 14.41-22 14.41L224 160v272c0 44.13-35.89 80-80 80H32c-17.67 0-32-14.31-32-32s14.33-32 32-32h112C152.8 448 160 440.8 160 432V160L88 159.1c-9.547 0-18.19-5.656-22-14.41S63.92 126.7 70.41 119.7l104-112c9.498-10.23 25.69-10.23 35.19 0l104 112C320.1 126.7 321.8 136.8 318 145.6z" - } - }, - "free": [ - "solid" - ] - }, - "tv": { - "changes": [ - "4.4.0", - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f26c", - "aliases": { - "names": [ - "television", - "tv-alt" - ], - "unicodes": { - "composite": [ - "f8e5" - ], - "primary": [ - "f8e5" - ], - "secondary": [ - "10f8e5", - "10f26c" - ] - } - }, - "label": "Television", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M512 448H127.1C110.3 448 96 462.3 96 479.1S110.3 512 127.1 512h384C529.7 512 544 497.7 544 480S529.7 448 512 448zM592 0h-544C21.5 0 0 21.5 0 48v320C0 394.5 21.5 416 48 416h544c26.5 0 48-21.5 48-48v-320C640 21.5 618.5 0 592 0zM576 352H64v-288h512V352z" - } - }, - "free": [ - "solid" - ] - }, - "twitch": { - "changes": [ - "4.2.0", - "5.0.0", - "5.12.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1e8", - "label": "Twitch", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M391.2 103.5H352.5v109.7h38.63zM285 103H246.4V212.8H285zM120.8 0 24.31 91.42V420.6H140.1V512l96.53-91.42h77.25L487.7 256V0zM449.1 237.8l-77.22 73.12H294.6l-67.6 64v-64H140.1V36.58H449.1z" - } - }, - "free": [ - "brands" - ] - }, - "twitter": { - "changes": [ - "2.0.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f099", - "label": "Twitter", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M459.4 151.7c.325 4.548 .325 9.097 .325 13.65 0 138.7-105.6 298.6-298.6 298.6-59.45 0-114.7-17.22-161.1-47.11 8.447 .974 16.57 1.299 25.34 1.299 49.06 0 94.21-16.57 130.3-44.83-46.13-.975-84.79-31.19-98.11-72.77 6.498 .974 12.99 1.624 19.82 1.624 9.421 0 18.84-1.3 27.61-3.573-48.08-9.747-84.14-51.98-84.14-102.1v-1.299c13.97 7.797 30.21 12.67 47.43 13.32-28.26-18.84-46.78-51.01-46.78-87.39 0-19.49 5.197-37.36 14.29-52.95 51.65 63.67 129.3 105.3 216.4 109.8-1.624-7.797-2.599-15.92-2.599-24.04 0-57.83 46.78-104.9 104.9-104.9 30.21 0 57.5 12.67 76.67 33.14 23.72-4.548 46.46-13.32 66.6-25.34-7.798 24.37-24.37 44.83-46.13 57.83 21.12-2.273 41.58-8.122 60.43-16.24-14.29 20.79-32.16 39.31-52.63 54.25z" - } - }, - "free": [ - "brands" - ] - }, - "typo3": { - "changes": [ - "5.0.1", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f42b", - "label": "Typo3", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1C7 246 113.8 480 191.1 480c36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z" - } - }, - "free": [ - "brands" - ] - }, - "u": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "55", - "aliases": { - "unicodes": { - "composite": [ - "75" - ] - } - }, - "label": "U", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 64.01v225.7c0 104.1-86.13 190.3-192 190.3s-192-85.38-192-190.3V64.01C0 46.34 14.33 32.01 32 32.01S64 46.34 64 64.01v225.7c0 69.67 57.42 126.3 128 126.3s128-56.67 128-126.3V64.01c0-17.67 14.33-32 32-32S384 46.34 384 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "uber": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f402", - "label": "Uber", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M414.1 32H33.9C15.2 32 0 47.2 0 65.9V446c0 18.8 15.2 34 33.9 34H414c18.7 0 33.9-15.2 33.9-33.9V65.9C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6h94.4V290c0 3.7 3 6.8 6.8 6.8H258c3.7 0 6.8-3 6.8-6.8v-67.9c0-3.7-3-6.8-6.8-6.8h-67.9c-3.7 0-6.8 3-6.8 6.8v20.4H88.9c7-69.4 65.4-122.2 135.1-122.2 69.7 0 128.1 52.8 135.1 122.2 7.5 74.5-46.9 141.1-121.5 148.6z" - } - }, - "free": [ - "brands" - ] - }, - "ubuntu": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7df", - "label": "Ubuntu", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572498, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S385 8 248 8zm52.7 93c8.8-15.2 28.3-20.5 43.5-11.7 15.3 8.8 20.5 28.3 11.7 43.6-8.8 15.2-28.3 20.5-43.5 11.7-15.3-8.9-20.5-28.4-11.7-43.6zM87.4 287.9c-17.6 0-31.9-14.3-31.9-31.9 0-17.6 14.3-31.9 31.9-31.9 17.6 0 31.9 14.3 31.9 31.9 0 17.6-14.3 31.9-31.9 31.9zm28.1 3.1c22.3-17.9 22.4-51.9 0-69.9 8.6-32.8 29.1-60.7 56.5-79.1l23.7 39.6c-51.5 36.3-51.5 112.5 0 148.8L172 370c-27.4-18.3-47.8-46.3-56.5-79zm228.7 131.7c-15.3 8.8-34.7 3.6-43.5-11.7-8.8-15.3-3.6-34.8 11.7-43.6 15.2-8.8 34.7-3.6 43.5 11.7 8.8 15.3 3.6 34.8-11.7 43.6zm.3-69.5c-26.7-10.3-56.1 6.6-60.5 35-5.2 1.4-48.9 14.3-96.7-9.4l22.5-40.3c57 26.5 123.4-11.7 128.9-74.4l46.1 .7c-2.3 34.5-17.3 65.5-40.3 88.4zm-5.9-105.3c-5.4-62-71.3-101.2-128.9-74.4l-22.5-40.3c47.9-23.7 91.5-10.8 96.7-9.4 4.4 28.3 33.8 45.3 60.5 35 23.1 22.9 38 53.9 40.2 88.5l-46 .6z" - } - }, - "free": [ - "brands" - ] - }, - "uikit": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f403", - "label": "UIkit", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M443.9 128v256L218 512 0 384V169.7l87.6 45.1v117l133.5 75.5 135.8-75.5v-151l-101.1-57.6 87.6-53.1L443.9 128zM308.6 49.1L223.8 0l-88.6 54.8 86 47.3 87.4-53z" - } - }, - "free": [ - "brands" - ] - }, - "umbraco": { - "changes": [ - "5.11.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f8e8", - "label": "Umbraco", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 510, - 512 - ], - "width": 510, - "height": 512, - "path": "M255.4 8C118.4 7.83 7.14 118.7 7 255.7c-.07 137 111 248.2 248 248.3 136.9 0 247.8-110.7 248-247.7S392.3 8.17 255.4 8zm145 266q-1.14 40.68-14 65t-43.51 35q-30.61 10.7-85.45 10.47h-4.6q-54.78 .22-85.44-10.47t-43.52-35q-12.85-24.36-14-65a224.8 224.8 0 0 1 0-30.71 418.4 418.4 0 0 1 3.6-43.88c1.88-13.39 3.57-22.58 5.4-32 1-4.88 1.28-6.42 1.82-8.45a5.09 5.09 0 0 1 4.9-3.89h.69l32 5a5.07 5.07 0 0 1 4.16 5 5 5 0 0 1 0 .77l-1.7 8.78q-2.41 13.25-4.84 33.68a380.6 380.6 0 0 0 -2.64 42.15q-.28 40.43 8.13 59.83a43.87 43.87 0 0 0 31.31 25.18A243 243 0 0 0 250 340.6h10.25a242.6 242.6 0 0 0 57.27-5.16 43.86 43.86 0 0 0 31.15-25.23q8.53-19.42 8.13-59.78a388 388 0 0 0 -2.6-42.15q-2.48-20.38-4.89-33.68l-1.69-8.78a5 5 0 0 1 0-.77 5 5 0 0 1 4.2-5l32-5h.82a5 5 0 0 1 4.9 3.89c.55 2.05 .81 3.57 1.83 8.45 1.82 9.62 3.52 18.78 5.39 32a415.7 415.7 0 0 1 3.61 43.88 228.1 228.1 0 0 1 -.04 30.73z" - } - }, - "free": [ - "brands" - ] - }, - "umbrella": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0e9", - "aliases": { - "unicodes": { - "secondary": [ - "10f0e9" - ] - } - }, - "label": "Umbrella", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M255.1 301.7v130.3c0 8.814-7.188 16-16 16c-7.814 0-13.19-5.314-15.1-10.69c-5.906-16.72-24.1-25.41-40.81-19.5c-16.69 5.875-25.41 24.19-19.5 40.79C175.8 490.6 206.2 512 239.1 512C284.1 512 320 476.1 320 431.1v-130.3c-9.094-7.908-19.81-13.61-32-13.61C275.7 288.1 265.6 292.9 255.1 301.7zM575.7 280.9C547.1 144.5 437.3 62.61 320 49.91V32.01c0-17.69-14.31-32.01-32-32.01S255.1 14.31 255.1 32.01v17.91C138.3 62.61 29.48 144.5 .2949 280.9C-1.926 290.1 8.795 302.1 18.98 292.2c52-55.01 107.7-52.39 158.6 37.01c5.312 9.502 14.91 8.625 19.72 0C217.5 293.9 242.2 256 287.1 256c58.5 0 88.19 68.82 90.69 73.2c4.812 8.625 14.41 9.502 19.72 0c51-89.52 107.1-91.39 158.6-37.01C567.3 302.2 577.9 290.1 575.7 280.9z" - } - }, - "free": [ - "solid" - ] - }, - "umbrella-beach": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ca", - "aliases": { - "unicodes": { - "composite": [ - "1f3d6" - ], - "secondary": [ - "10f5ca" - ] - } - }, - "label": "Umbrella Beach", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M115.4 136.8l102.1 37.35c35.13-81.62 86.25-144.4 139-173.7c-95.88-4.875-188.8 36.96-248.5 111.7C101.2 120.6 105.2 133.2 115.4 136.8zM247.6 185l238.5 86.87c35.75-121.4 18.62-231.6-42.63-253.9c-7.375-2.625-15.12-4.062-23.12-4.062C362.4 13.88 292.1 83.13 247.6 185zM521.5 60.51c6.25 16.25 10.75 34.62 13.13 55.25c5.75 49.87-1.376 108.1-18.88 166.9l102.6 37.37c10.13 3.75 21.25-3.375 21.5-14.12C642.3 210.1 598 118.4 521.5 60.51zM528 448h-207l65-178.5l-60.13-21.87l-72.88 200.4H48C21.49 448 0 469.5 0 496C0 504.8 7.163 512 16 512h544c8.837 0 16-7.163 16-15.1C576 469.5 554.5 448 528 448z" - } - }, - "free": [ - "solid" - ] - }, - "uncharted": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e084", - "label": "Uncharted Software", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M171.7 232.8A5.381 5.381 0 0 0 176.7 229.5 48.08 48.08 0 0 1 191.6 204.2c1.243-.828 1.657-2.484 1.657-4.141a4.22 4.22 0 0 0 -2.071-3.312L74.43 128.5 148.1 85a9.941 9.941 0 0 0 4.968-8.281 9.108 9.108 0 0 0 -4.968-8.281L126.6 55.6a9.748 9.748 0 0 0 -9.523 0l-100.2 57.97a9.943 9.943 0 0 0 -4.969 8.281V236.1a9.109 9.109 0 0 0 4.969 8.281L39.24 258.1a8.829 8.829 0 0 0 4.968 1.242 9.4 9.4 0 0 0 6.625-2.484 10.8 10.8 0 0 0 2.9-7.039V164.5L169.7 232.4A4.5 4.5 0 0 0 171.7 232.8zM323.3 377.7a12.48 12.48 0 0 0 -4.969 1.242l-74.53 43.06V287.9c0-2.9-2.9-5.8-6.211-4.555a53.04 53.04 0 0 1 -28.98 .414 4.86 4.86 0 0 0 -6.21 4.555V421.6l-74.53-43.06a8.83 8.83 0 0 0 -4.969-1.242 9.631 9.631 0 0 0 -9.523 9.523v26.08a9.107 9.107 0 0 0 4.969 8.281l100.2 57.55A8.829 8.829 0 0 0 223.5 480a11.03 11.03 0 0 0 4.969-1.242l100.2-57.55a9.941 9.941 0 0 0 4.968-8.281V386.8C332.8 382.3 328.2 377.7 323.3 377.7zM286 78a23 23 0 1 0 -23-23A23 23 0 0 0 286 78zm63.63-10.09a23 23 0 1 0 23 23A23 23 0 0 0 349.6 67.91zM412.8 151.6a23 23 0 1 0 -23-23A23 23 0 0 0 412.8 151.6zm-63.18-9.2a23 23 0 1 0 23 23A23 23 0 0 0 349.6 142.4zm-63.63 83.24a23 23 0 1 0 -23-23A23 23 0 0 0 286 225.6zm-62.07 36.36a23 23 0 1 0 -23-23A23 23 0 0 0 223.9 262zm188.9-82.36a23 23 0 1 0 23 23A23 23 0 0 0 412.8 179.6zm0 72.27a23 23 0 1 0 23 23A23 23 0 0 0 412.8 251.9z" - } - }, - "free": [ - "brands" - ] - }, - "underline": { - "changes": [ - "2.0.0", - "5.0.0", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0cd", - "aliases": { - "unicodes": { - "secondary": [ - "10f0cd" - ] - } - }, - "label": "Underline", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 448H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h384c17.69 0 32-14.31 32-32S433.7 448 416 448zM48 64.01H64v160c0 88.22 71.78 159.1 160 159.1s160-71.78 160-159.1v-160h16c17.69 0 32-14.32 32-32s-14.31-31.1-32-31.1l-96-.0049c-17.69 0-32 14.32-32 32s14.31 32 32 32H320v160c0 52.94-43.06 95.1-96 95.1S128 276.1 128 224v-160h16c17.69 0 32-14.31 32-32s-14.31-32-32-32l-96 .0049c-17.69 0-32 14.31-32 31.1S30.31 64.01 48 64.01z" - } - }, - "free": [ - "solid" - ] - }, - "uniregistry": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f404", - "label": "Uniregistry", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M192 480c39.5 0 76.2-11.8 106.8-32.2H85.3C115.8 468.2 152.5 480 192 480zm-89.1-193.1v-12.4H0v12.4c0 2.5 0 5 .1 7.4h103.1c-.2-2.4-.3-4.9-.3-7.4zm20.5 57H8.5c2.6 8.5 5.8 16.8 9.6 24.8h138.3c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7H1.3c.9 7.6 2.2 15 3.9 22.3h109.7c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3H0v17.3h102.9zm0-173.2H0v4.9h102.9zm0-34.7H0v2.5h102.9zm0 69.3H0v7.4h102.9zm0 104H0v14.8h102.9zm0-69.3H0v9.9h102.9zm0 34.6H0V183h102.9zm166.2 160.9h109.7c1.8-7.3 3.1-14.7 3.9-22.3H278.3c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7H384V136H281.1zm0 37.2H384v-12.4H281.1zm0-74.3H384v-7.4H281.1zm0-76.7v2.5H384V32zm-203 410.9h227.7c11.8-8.7 22.7-18.6 32.2-29.7H44.9c9.6 11 21.4 21 33.2 29.7zm203-371.3H384v-4.9H281.1zm0 148.5H384v-14.8H281.1zM38.8 405.7h305.3c6.7-8.5 12.6-17.6 17.8-27.2H23c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1H367c3.7-8 5.8-16.2 8.5-24.8h-115c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4h103.1c.1-2.5 .2-4.9 .2-7.4v-12.4H281.1zm0-29.7H384v-17.3H281.1z" - } - }, - "free": [ - "brands" - ] - }, - "unity": { - "changes": [ - "5.12.0", - "5.14.0", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e049", - "label": "Unity 3D", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M243.6 91.6L323.7 138.4C326.6 140 326.7 144.6 323.7 146.2L228.5 201.9C225.6 203.6 222.2 203.4 219.5 201.9L124.4 146.2C121.4 144.6 121.4 139.1 124.4 138.4L204.4 91.6V0L0 119.4V358.3L78.38 312.5V218.9C78.33 215.6 82.21 213.2 85.09 214.1L180.3 270.6C183.2 272.3 184.8 275.3 184.8 278.5V389.7C184.8 393 180.1 395.4 178.1 393.6L97.97 346.8L19.58 392.6L224 512L428.4 392.6L350 346.8L269.9 393.6C267.1 395.3 263.1 393.1 263.2 389.7V278.5C263.2 275.1 265.1 272.2 267.7 270.6L362.9 214.1C365.7 213.2 369.7 215.5 369.6 218.9V312.5L448 358.3V119.4L243.6 0V91.6z" - } - }, - "free": [ - "brands" - ] - }, - "universal-access": { - "changes": [ - "4.6.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f29a", - "aliases": { - "unicodes": { - "secondary": [ - "10f29a" - ] - } - }, - "label": "Universal Access", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 0C114.6 0 0 114.6 0 256c0 141.4 114.6 256 256 256s256-114.6 256-256C512 114.6 397.4 0 256 0zM256 80c22.09 0 40 17.91 40 40S278.1 160 256 160S216 142.1 216 120S233.9 80 256 80zM374.6 215.1L315.3 232C311.6 233.1 307.8 233.6 304 234.4v62.32l30.64 87.34c4.391 12.5-2.188 26.19-14.69 30.59C317.3 415.6 314.6 416 312 416c-9.906 0-19.19-6.188-22.64-16.06l-25.85-70.65c-2.562-7.002-12.46-7.002-15.03 0l-25.85 70.65C219.2 409.8 209.9 416 200 416c-2.641 0-5.312-.4375-7.953-1.344c-12.5-4.406-19.08-18.09-14.69-30.59L208 296.7V234.4C204.2 233.6 200.4 233.1 196.7 232L137.4 215.1C124.7 211.4 117.3 198.2 120.9 185.4S137.9 165.2 150.6 168.9l59.25 16.94c30.17 8.623 62.15 8.623 92.31 0l59.25-16.94c12.7-3.781 26.02 3.719 29.67 16.47C394.7 198.2 387.3 211.4 374.6 215.1z" - } - }, - "free": [ - "solid" - ] - }, - "unlock": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f09c", - "aliases": { - "unicodes": { - "composite": [ - "1f513" - ], - "secondary": [ - "10f09c" - ] - } - }, - "label": "unlock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M144 192H384C419.3 192 448 220.7 448 256V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V256C0 220.7 28.65 192 64 192H80V144C80 64.47 144.5 0 224 0C281.5 0 331 33.69 354.1 82.27C361.7 98.23 354.9 117.3 338.1 124.9C322.1 132.5 303.9 125.7 296.3 109.7C283.4 82.63 255.9 64 224 64C179.8 64 144 99.82 144 144L144 192z" - } - }, - "free": [ - "solid" - ] - }, - "unlock-keyhole": { - "changes": [ - "3.1.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f13e", - "aliases": { - "names": [ - "unlock-alt" - ], - "unicodes": { - "secondary": [ - "10f13e" - ] - } - }, - "label": "Unlock keyhole", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 64C179.8 64 144 99.82 144 144V192H384C419.3 192 448 220.7 448 256V448C448 483.3 419.3 512 384 512H64C28.65 512 0 483.3 0 448V256C0 220.7 28.65 192 64 192H80V144C80 64.47 144.5 0 224 0C281.5 0 331 33.69 354.1 82.27C361.7 98.23 354.9 117.3 338.1 124.9C322.1 132.5 303.9 125.7 296.3 109.7C283.4 82.63 255.9 64 224 64H224zM256 384C273.7 384 288 369.7 288 352C288 334.3 273.7 320 256 320H192C174.3 320 160 334.3 160 352C160 369.7 174.3 384 192 384H256z" - } - }, - "free": [ - "solid" - ] - }, - "unsplash": { - "changes": [ - "5.13.1", - "5.14.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e07c", - "label": "Unsplash", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 230.2V480H0V230.2H141.1V355.1H306.9V230.2zM306.9 32H141.1V156.9H306.9z" - } - }, - "free": [ - "brands" - ] - }, - "untappd": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f405", - "label": "Untappd", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M401.3 49.9c-79.8 160.1-84.6 152.5-87.9 173.2l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.6 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4l148.9-207.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1 .6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4 .9-2.5 4.4-2.3 7.4 .1 2.8-2.3 3.6-6.5 6.1zM230.1 36.4c3.4 .9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3 .5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5 .1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6 .3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620 406.7L471.2 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6 .5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4l148.9 207.9c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z" - } - }, - "free": [ - "brands" - ] - }, - "up-down": { - "changes": [ - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f338", - "aliases": { - "names": [ - "arrows-alt-v" - ], - "unicodes": { - "composite": [ - "2b0d", - "2195" - ], - "secondary": [ - "10f338" - ] - } - }, - "label": "Up down", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M249.6 392.3l-104 112c-9.094 9.781-26.09 9.781-35.19 0l-103.1-112c-6.484-6.984-8.219-17.17-4.406-25.92S14.45 352 24 352H80V160H24C14.45 160 5.812 154.3 1.999 145.6C-1.813 136.8-.0781 126.7 6.406 119.7l104-112c9.094-9.781 26.09-9.781 35.19 0l104 112c6.484 6.984 8.219 17.17 4.406 25.92C250.2 154.3 241.5 160 232 160H176v192h56c9.547 0 18.19 5.656 22 14.41S256.1 385.3 249.6 392.3z" - } - }, - "free": [ - "solid" - ] - }, - "up-down-left-right": { - "changes": [ - "2.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0b2", - "aliases": { - "names": [ - "arrows-alt" - ], - "unicodes": { - "secondary": [ - "10f0b2" - ] - } - }, - "label": "Up down left right", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573344, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256c0 6.797-2.891 13.28-7.938 17.84l-80 72C419.6 349.9 413.8 352 408 352c-3.312 0-6.625-.6875-9.766-2.078C389.6 346.1 384 337.5 384 328V288h-96v96l40-.0013c9.484 0 18.06 5.578 21.92 14.23s2.25 18.78-4.078 25.83l-72 80C269.3 509.1 262.8 512 255.1 512s-13.28-2.89-17.84-7.937l-71.1-80c-6.328-7.047-7.938-17.17-4.078-25.83s12.44-14.23 21.92-14.23l39.1 .0013V288H128v40c0 9.484-5.578 18.06-14.23 21.92C110.6 351.3 107.3 352 104 352c-5.812 0-11.56-2.109-16.06-6.156l-80-72C2.891 269.3 0 262.8 0 256s2.891-13.28 7.938-17.84l80-72C95 159.8 105.1 158.3 113.8 162.1C122.4 165.9 128 174.5 128 184V224h95.1V128l-39.1-.0013c-9.484 0-18.06-5.578-21.92-14.23S159.8 94.99 166.2 87.94l71.1-80c9.125-10.09 26.56-10.09 35.69 0l72 80c6.328 7.047 7.938 17.17 4.078 25.83s-12.44 14.23-21.92 14.23l-40 .0013V224H384V184c0-9.484 5.578-18.06 14.23-21.92c8.656-3.812 18.77-2.266 25.83 4.078l80 72C509.1 242.7 512 249.2 512 256z" - } - }, - "free": [ - "solid" - ] - }, - "up-long": { - "changes": [ - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f30c", - "aliases": { - "names": [ - "long-arrow-alt-up" - ], - "unicodes": { - "secondary": [ - "10f30c" - ] - } - }, - "label": "Up long", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573345, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M285.1 145.7c-3.81 8.758-12.45 14.42-21.1 14.42L192 160.1V480c0 17.69-14.33 32-32 32s-32-14.31-32-32V160.1L55.1 160.1c-9.547 0-18.19-5.658-22-14.42c-3.811-8.758-2.076-18.95 4.408-25.94l104-112.1c9.498-10.24 25.69-10.24 35.19 0l104 112.1C288.1 126.7 289.8 136.9 285.1 145.7z" - } - }, - "free": [ - "solid" - ] - }, - "up-right-and-down-left-from-center": { - "changes": [ - "1.0.0", - "5.0.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f424", - "aliases": { - "names": [ - "expand-alt" - ], - "unicodes": { - "secondary": [ - "10f424" - ] - } - }, - "label": "Up right and down left from center", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573345, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M208 281.4c-12.5-12.5-32.76-12.5-45.26-.002l-78.06 78.07l-30.06-30.06c-6.125-6.125-14.31-9.367-22.63-9.367c-4.125 0-8.279 .7891-12.25 2.43c-11.97 4.953-19.75 16.62-19.75 29.56v135.1C.0013 501.3 10.75 512 24 512h136c12.94 0 24.63-7.797 29.56-19.75c4.969-11.97 2.219-25.72-6.938-34.87l-30.06-30.06l78.06-78.07c12.5-12.49 12.5-32.75 .002-45.25L208 281.4zM487.1 0h-136c-12.94 0-24.63 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.87l30.06 30.06l-78.06 78.07c-12.5 12.5-12.5 32.76 0 45.26l22.62 22.62c12.5 12.5 32.76 12.5 45.26 0l78.06-78.07l30.06 30.06c9.156 9.141 22.87 11.84 34.87 6.937C504.2 184.6 512 172.9 512 159.1V23.1C512 10.74 501.3 0 487.1 0z" - } - }, - "free": [ - "solid" - ] - }, - "up-right-from-square": { - "changes": [ - "5.0.0", - "5.11.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f35d", - "aliases": { - "names": [ - "external-link-alt" - ], - "unicodes": { - "secondary": [ - "10f35d" - ] - } - }, - "label": "Up right from square", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573345, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M384 320c-17.67 0-32 14.33-32 32v96H64V160h96c17.67 0 32-14.32 32-32s-14.33-32-32-32L64 96c-35.35 0-64 28.65-64 64V448c0 35.34 28.65 64 64 64h288c35.35 0 64-28.66 64-64v-96C416 334.3 401.7 320 384 320zM488 0H352c-12.94 0-24.62 7.797-29.56 19.75c-4.969 11.97-2.219 25.72 6.938 34.88L370.8 96L169.4 297.4c-12.5 12.5-12.5 32.75 0 45.25C175.6 348.9 183.8 352 192 352s16.38-3.125 22.62-9.375L416 141.3l41.38 41.38c9.156 9.141 22.88 11.84 34.88 6.938C504.2 184.6 512 172.9 512 160V24C512 10.74 501.3 0 488 0z" - } - }, - "free": [ - "solid" - ] - }, - "upload": { - "changes": [ - "1.0.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f093", - "aliases": { - "unicodes": { - "secondary": [ - "10f093" - ] - } - }, - "label": "Upload", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573345, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M105.4 182.6c12.5 12.49 32.76 12.5 45.25 .001L224 109.3V352c0 17.67 14.33 32 32 32c17.67 0 32-14.33 32-32V109.3l73.38 73.38c12.49 12.49 32.75 12.49 45.25-.001c12.49-12.49 12.49-32.75 0-45.25l-128-128C272.4 3.125 264.2 0 256 0S239.6 3.125 233.4 9.375L105.4 137.4C92.88 149.9 92.88 170.1 105.4 182.6zM480 352h-160c0 35.35-28.65 64-64 64s-64-28.65-64-64H32c-17.67 0-32 14.33-32 32v96c0 17.67 14.33 32 32 32h448c17.67 0 32-14.33 32-32v-96C512 366.3 497.7 352 480 352zM432 456c-13.2 0-24-10.8-24-24c0-13.2 10.8-24 24-24s24 10.8 24 24C456 445.2 445.2 456 432 456z" - } - }, - "free": [ - "solid" - ] - }, - "ups": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7e0", - "label": "UPS", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M103.2 303c-5.2 3.6-32.6 13.1-32.6-19V180H37.9v102.6c0 74.9 80.2 51.1 97.9 39V180h-32.6zM4 74.82v220.9c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1V74.82c-116.3-61.6-281.8-49.6-375.4 0zm358.1 220.9c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3v-126.4c102.3-93.8 231.6-100 340.9-89.8zm-209.6-107.4v212.8h32.7v-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.92-104.4-65.6zm32.7 117.3v-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4 .6 23.5-30.4 23-50.8 4.9v30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2 .6-20.3 30.6-20.5 48.5-2.2v-28.4c-28.5-22-79.9-9.2-79.7 31.9z" - } - }, - "free": [ - "brands" - ] - }, - "usb": { - "changes": [ - "4.5.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f287", - "label": "USB", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M641.5 256c0 3.1-1.7 6.1-4.5 7.5L547.9 317c-1.4 .8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8v-35.6H295.7c25.3 39.6 40.5 106.9 69.6 106.9H392V354c0-5 3.9-8.9 8.9-8.9H490c5 0 8.9 3.9 8.9 8.9v89.1c0 5-3.9 8.9-8.9 8.9h-89.1c-5 0-8.9-3.9-8.9-8.9v-26.7h-26.7c-75.4 0-81.1-142.5-124.7-142.5H140.3c-8.1 30.6-35.9 53.5-69 53.5C32 327.3 0 295.3 0 256s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4C255 88.7 273 95.7 323.8 95.7c7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6H294c-29.1 0-44.3 67.4-69.6 106.9h310.1v-35.6c0-3.3 1.7-6.1 4.5-7.8 2.8-1.7 6.4-1.4 8.9 .3l89.1 53.5c2.8 1.1 4.5 4.1 4.5 7.2z" - } - }, - "free": [ - "brands" - ] - }, - "user": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.3", - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f007", - "aliases": { - "unicodes": { - "composite": [ - "f2c0", - "1f464" - ], - "secondary": [ - "10f007" - ] - } - }, - "label": "User", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573348, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 256c70.7 0 128-57.31 128-128s-57.3-128-128-128C153.3 0 96 57.31 96 128S153.3 256 224 256zM274.7 304H173.3C77.61 304 0 381.6 0 477.3c0 19.14 15.52 34.67 34.66 34.67h378.7C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304z" - }, - "regular": { - "last_modified": 1658443573152, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M272 304h-96C78.8 304 0 382.8 0 480c0 17.67 14.33 32 32 32h384c17.67 0 32-14.33 32-32C448 382.8 369.2 304 272 304zM48.99 464C56.89 400.9 110.8 352 176 352h96c65.16 0 119.1 48.95 127 112H48.99zM224 256c70.69 0 128-57.31 128-128c0-70.69-57.31-128-128-128S96 57.31 96 128C96 198.7 153.3 256 224 256zM224 48c44.11 0 80 35.89 80 80c0 44.11-35.89 80-80 80S144 172.1 144 128C144 83.89 179.9 48 224 48z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "user-astronaut": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4fb", - "aliases": { - "unicodes": { - "secondary": [ - "10f4fb" - ] - } - }, - "label": "User Astronaut", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573345, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M176 448C167.3 448 160 455.3 160 464V512h32v-48C192 455.3 184.8 448 176 448zM272 448c-8.75 0-16 7.25-16 16s7.25 16 16 16s16-7.25 16-16S280.8 448 272 448zM164 172l8.205 24.62c1.215 3.645 6.375 3.645 7.59 0L188 172l24.62-8.203c3.646-1.219 3.646-6.375 0-7.594L188 148L179.8 123.4c-1.215-3.648-6.375-3.648-7.59 0L164 148L139.4 156.2c-3.646 1.219-3.646 6.375 0 7.594L164 172zM336.1 315.4C304 338.6 265.1 352 224 352s-80.03-13.43-112.1-36.59C46.55 340.2 0 403.3 0 477.3C0 496.5 15.52 512 34.66 512H128v-64c0-17.75 14.25-32 32-32h128c17.75 0 32 14.25 32 32v64h93.34C432.5 512 448 496.5 448 477.3C448 403.3 401.5 340.2 336.1 315.4zM64 224h13.5C102.3 280.5 158.4 320 224 320s121.8-39.5 146.5-96H384c8.75 0 16-7.25 16-16v-96C400 103.3 392.8 96 384 96h-13.5C345.8 39.5 289.6 0 224 0S102.3 39.5 77.5 96H64C55.25 96 48 103.3 48 112v96C48 216.8 55.25 224 64 224zM104 136C104 113.9 125.5 96 152 96h144c26.5 0 48 17.88 48 40V160c0 53-43 96-96 96h-48c-53 0-96-43-96-96V136z" - } - }, - "free": [ - "solid" - ] - }, - "user-check": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4fc", - "aliases": { - "unicodes": { - "secondary": [ - "10f4fc" - ] - } - }, - "label": "User Check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573346, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M274.7 304H173.3C77.61 304 0 381.6 0 477.3C0 496.5 15.52 512 34.66 512H413.3C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM632.3 134.4c-9.703-9-24.91-8.453-33.92 1.266l-87.05 93.75l-38.39-38.39c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94l56 56C499.5 285.5 505.6 288 512 288h.4375c6.531-.125 12.72-2.891 17.16-7.672l104-112C642.6 158.6 642 143.4 632.3 134.4z" - } - }, - "free": [ - "solid" - ] - }, - "user-clock": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4fd", - "aliases": { - "unicodes": { - "secondary": [ - "10f4fd" - ] - } - }, - "label": "User Clock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573346, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M496 224c-79.63 0-144 64.38-144 144s64.38 144 144 144s144-64.38 144-144S575.6 224 496 224zM544 384h-54.25C484.4 384 480 379.6 480 374.3V304c0-8.836 7.164-16 16-16c8.838 0 16 7.164 16 16v48h32c8.838 0 16 7.164 16 15.1S552.8 384 544 384zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM320 368c0-19.3 3.221-37.82 8.961-55.2C311.9 307.2 293.6 304 274.7 304H173.3C77.61 304 0 381.7 0 477.4C0 496.5 15.52 512 34.66 512H395C349.7 480.2 320 427.6 320 368z" - } - }, - "free": [ - "solid" - ] - }, - "user-doctor": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.3", - "5.0.7", - "5.0.11", - "6.0.0-beta1", - "6.0.0-beta2", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0f0", - "aliases": { - "names": [ - "user-md" - ], - "unicodes": { - "secondary": [ - "10f0f0" - ] - } - }, - "label": "User doctor", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573346, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M96 128C96 57.31 153.3 0 224 0C294.7 0 352 57.31 352 128C352 198.7 294.7 256 224 256C153.3 256 96 198.7 96 128zM128 370.3C104.9 377.2 88 398.6 88 424C88 454.9 113.1 480 144 480C174.9 480 200 454.9 200 424C200 398.6 183.1 377.2 160 370.3V304.9C166 304.3 172.1 304 178.3 304H269.7C275.9 304 281.1 304.3 288 304.9V362C260.4 369.1 240 394.2 240 424V464C240 472.8 247.2 480 256 480H272C280.8 480 288 472.8 288 464C288 455.2 280.8 448 272 448V424C272 406.3 286.3 392 304 392C321.7 392 336 406.3 336 424V448C327.2 448 320 455.2 320 464C320 472.8 327.2 480 336 480H352C360.8 480 368 472.8 368 464V424C368 394.2 347.6 369.1 320 362V311.2C393.1 332.9 448 401.3 448 482.3C448 498.7 434.7 512 418.3 512H29.71C13.3 512 0 498.7 0 482.3C0 401.3 54.02 332.9 128 311.2V370.3zM120 424C120 410.7 130.7 400 144 400C157.3 400 168 410.7 168 424C168 437.3 157.3 448 144 448C130.7 448 120 437.3 120 424z" - } - }, - "free": [ - "solid" - ] - }, - "user-gear": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4fe", - "aliases": { - "names": [ - "user-cog" - ], - "unicodes": { - "secondary": [ - "10f4fe" - ] - } - }, - "label": "User gear", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573346, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M425.1 482.6c-2.303-1.25-4.572-2.559-6.809-3.93l-7.818 4.493c-6.002 3.504-12.83 5.352-19.75 5.352c-10.71 0-21.13-4.492-28.97-12.75c-18.41-20.09-32.29-44.15-40.22-69.9c-5.352-18.06 2.343-36.87 17.83-45.24l8.018-4.669c-.0664-2.621-.0664-5.242 0-7.859l-7.655-4.461c-12.3-6.953-19.4-19.66-19.64-33.38C305.6 306.3 290.4 304 274.7 304H173.3C77.61 304 0 381.7 0 477.4C0 496.5 15.52 512 34.66 512H413.3c5.727 0 10.9-1.727 15.66-4.188c-2.271-4.984-3.86-10.3-3.86-16.06V482.6zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM610.5 373.3c2.625-14 2.625-28.5 0-42.5l25.75-15c3-1.625 4.375-5.125 3.375-8.5c-6.75-21.5-18.25-41.13-33.25-57.38c-2.25-2.5-6-3.125-9-1.375l-25.75 14.88c-10.88-9.25-23.38-16.5-36.88-21.25V212.3c0-3.375-2.5-6.375-5.75-7c-22.25-5-45-4.875-66.25 0c-3.25 .625-5.625 3.625-5.625 7v29.88c-13.5 4.75-26 12-36.88 21.25L394.4 248.5c-2.875-1.75-6.625-1.125-9 1.375c-15 16.25-26.5 35.88-33.13 57.38c-1 3.375 .3751 6.875 3.25 8.5l25.75 15c-2.5 14-2.5 28.5 0 42.5l-25.75 15c-3 1.625-4.25 5.125-3.25 8.5c6.625 21.5 18.13 41 33.13 57.38c2.375 2.5 6 3.125 9 1.375l25.88-14.88c10.88 9.25 23.38 16.5 36.88 21.25v29.88c0 3.375 2.375 6.375 5.625 7c22.38 5 45 4.875 66.25 0c3.25-.625 5.75-3.625 5.75-7v-29.88c13.5-4.75 26-12 36.88-21.25l25.75 14.88c2.875 1.75 6.75 1.125 9-1.375c15-16.25 26.5-35.88 33.25-57.38c1-3.375-.3751-6.875-3.375-8.5L610.5 373.3zM496 400.5c-26.75 0-48.5-21.75-48.5-48.5s21.75-48.5 48.5-48.5c26.75 0 48.5 21.75 48.5 48.5S522.8 400.5 496 400.5z" - } - }, - "free": [ - "solid" - ] - }, - "user-graduate": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f501", - "aliases": { - "unicodes": { - "secondary": [ - "10f501" - ] - } - }, - "label": "User Graduate", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573346, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M45.63 79.75L52 81.25v58.5C45 143.9 40 151.3 40 160c0 8.375 4.625 15.38 11.12 19.75L35.5 242C33.75 248.9 37.63 256 43.13 256h41.75c5.5 0 9.375-7.125 7.625-13.1L76.88 179.8C83.38 175.4 88 168.4 88 160c0-8.75-5-16.12-12-20.25V87.13L128 99.63l.001 60.37c0 70.75 57.25 128 128 128s127.1-57.25 127.1-128L384 99.62l82.25-19.87c18.25-4.375 18.25-27 0-31.5l-190.4-46c-13-3-26.62-3-39.63 0l-190.6 46C27.5 52.63 27.5 75.38 45.63 79.75zM359.2 312.8l-103.2 103.2l-103.2-103.2c-69.93 22.3-120.8 87.2-120.8 164.5C32 496.5 47.53 512 66.67 512h378.7C464.5 512 480 496.5 480 477.3C480 400 429.1 335.1 359.2 312.8z" - } - }, - "free": [ - "solid" - ] - }, - "user-group": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f500", - "aliases": { - "names": [ - "user-friends" - ], - "unicodes": { - "composite": [ - "1f465" - ], - "secondary": [ - "10f500" - ] - } - }, - "label": "User group", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573346, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM274.7 304H173.3c-95.73 0-173.3 77.6-173.3 173.3C0 496.5 15.52 512 34.66 512H413.3C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM479.1 320h-73.85C451.2 357.7 480 414.1 480 477.3C480 490.1 476.2 501.9 470 512h138C625.7 512 640 497.6 640 479.1C640 391.6 568.4 320 479.1 320zM432 256C493.9 256 544 205.9 544 144S493.9 32 432 32c-25.11 0-48.04 8.555-66.72 22.51C376.8 76.63 384 101.4 384 128c0 35.52-11.93 68.14-31.59 94.71C372.7 243.2 400.8 256 432 256z" - } - }, - "free": [ - "solid" - ] - }, - "user-injured": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f728", - "aliases": { - "unicodes": { - "secondary": [ - "10f728" - ] - } - }, - "label": "User Injured", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M277.4 11.98C261.1 4.469 243.1 0 224 0C170.3 0 124.5 33.13 105.5 80h81.07L277.4 11.98zM342.5 80c-7.895-19.47-20.66-36.19-36.48-49.51L240 80H342.5zM224 256c70.7 0 128-57.31 128-128c0-5.48-.9453-10.7-1.613-16H97.61C96.95 117.3 96 122.5 96 128C96 198.7 153.3 256 224 256zM272 416h-45.14l58.64 93.83C305.4 503.1 320 485.8 320 464C320 437.5 298.5 416 272 416zM274.7 304H173.3c-5.393 0-10.71 .3242-15.98 .8047L206.9 384H272c44.13 0 80 35.88 80 80c0 18.08-6.252 34.59-16.4 48h77.73C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM0 477.3C0 496.5 15.52 512 34.66 512H64v-169.1C24.97 374.7 0 423.1 0 477.3zM96 322.4V512h153.1L123.7 311.3C114.1 314.2 104.8 317.9 96 322.4z" - } - }, - "free": [ - "solid" - ] - }, - "user-large": { - "changes": [ - "5.0.0", - "5.0.3", - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f406", - "aliases": { - "names": [ - "user-alt" - ], - "unicodes": { - "secondary": [ - "10f406" - ] - } - }, - "label": "User large", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 288c79.53 0 144-64.47 144-144s-64.47-144-144-144c-79.52 0-144 64.47-144 144S176.5 288 256 288zM351.1 320H160c-88.36 0-160 71.63-160 160c0 17.67 14.33 32 31.1 32H480c17.67 0 31.1-14.33 31.1-32C512 391.6 440.4 320 351.1 320z" - } - }, - "free": [ - "solid" - ] - }, - "user-large-slash": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4fa", - "aliases": { - "names": [ - "user-alt-slash" - ], - "unicodes": { - "secondary": [ - "10f4fa" - ] - } - }, - "label": "User large slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M284.9 320l-60.9-.0002c-88.36 0-160 71.63-160 159.1C63.1 497.7 78.33 512 95.1 512l448-.0039c.0137 0-.0137 0 0 0l-14.13-.0013L284.9 320zM630.8 469.1l-249.5-195.5c48.74-22.1 82.65-72.1 82.65-129.6c0-79.53-64.47-143.1-143.1-143.1c-69.64 0-127.3 49.57-140.6 115.3L38.81 5.109C34.41 1.672 29.19 0 24.03 0C16.91 0 9.845 3.156 5.127 9.187c-8.187 10.44-6.375 25.53 4.062 33.7L601.2 506.9c10.5 8.203 25.56 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1z" - } - }, - "free": [ - "solid" - ] - }, - "user-lock": { - "changes": [ - "5.0.11", - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f502", - "aliases": { - "unicodes": { - "secondary": [ - "10f502" - ] - } - }, - "label": "User Lock", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M592 288H576V212.7c0-41.84-30.03-80.04-71.66-84.27C456.5 123.6 416 161.1 416 208V288h-16C373.6 288 352 309.6 352 336v128c0 26.4 21.6 48 48 48h192c26.4 0 48-21.6 48-48v-128C640 309.6 618.4 288 592 288zM496 432c-17.62 0-32-14.38-32-32s14.38-32 32-32s32 14.38 32 32S513.6 432 496 432zM528 288h-64V208c0-17.62 14.38-32 32-32s32 14.38 32 32V288zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM320 336c0-8.672 1.738-16.87 4.303-24.7C308.6 306.6 291.9 304 274.7 304H173.3C77.61 304 0 381.7 0 477.4C0 496.5 15.52 512 34.66 512h301.7C326.3 498.6 320 482.1 320 464V336z" - } - }, - "free": [ - "solid" - ] - }, - "user-minus": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f503", - "aliases": { - "unicodes": { - "secondary": [ - "10f503" - ] - } - }, - "label": "User Minus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M274.7 304H173.3C77.61 304 0 381.6 0 477.3C0 496.5 15.52 512 34.66 512h378.7C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM616 200h-144C458.8 200 448 210.8 448 224s10.75 24 24 24h144C629.3 248 640 237.3 640 224S629.3 200 616 200z" - } - }, - "free": [ - "solid" - ] - }, - "user-ninja": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f504", - "aliases": { - "unicodes": { - "composite": [ - "1f977" - ], - "secondary": [ - "10f504" - ] - } - }, - "label": "User Ninja", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M64 192c27.25 0 51.75-11.5 69.25-29.75c15 54 64 93.75 122.8 93.75c70.75 0 127.1-57.25 127.1-128s-57.25-128-127.1-128c-50.38 0-93.63 29.38-114.5 71.75C124.1 47.75 96 32 64 32c0 33.37 17.12 62.75 43.13 80C81.13 129.3 64 158.6 64 192zM208 96h95.1C321.7 96 336 110.3 336 128h-160C176 110.3 190.3 96 208 96zM337.8 306.9L256 416L174.2 306.9C93.36 321.6 32 392.2 32 477.3c0 19.14 15.52 34.67 34.66 34.67H445.3c19.14 0 34.66-15.52 34.66-34.67C480 392.2 418.6 321.6 337.8 306.9z" - } - }, - "free": [ - "solid" - ] - }, - "user-nurse": { - "changes": [ - "5.7.0", - "5.12.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f82f", - "aliases": { - "unicodes": { - "secondary": [ - "10f82f" - ] - } - }, - "label": "Nurse", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224 304c70.75 0 128-57.25 128-128V65.88c0-13.38-8.25-25.38-20.75-30L246.5 4.125C239.3 1.375 231.6 0 224 0S208.8 1.375 201.5 4.125L116.8 35.88C104.3 40.5 96 52.5 96 65.88V176C96 246.8 153.3 304 224 304zM184 71.63c0-2.75 2.25-5 5-5h21.62V45c0-2.75 2.25-5 5-5h16.75c2.75 0 5 2.25 5 5v21.62H259c2.75 0 5 2.25 5 5v16.75c0 2.75-2.25 5-5 5h-21.62V115c0 2.75-2.25 5-5 5H215.6c-2.75 0-5-2.25-5-5V93.38H189c-2.75 0-5-2.25-5-5V71.63zM144 160h160v16C304 220.1 268.1 256 224 256S144 220.1 144 176V160zM327.2 312.8L224 416L120.8 312.8c-69.93 22.3-120.8 87.25-120.8 164.6C.0006 496.5 15.52 512 34.66 512H413.3c19.14 0 34.66-15.46 34.66-34.61C447.1 400.1 397.1 335.1 327.2 312.8z" - } - }, - "free": [ - "solid" - ] - }, - "user-pen": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4ff", - "aliases": { - "names": [ - "user-edit" - ], - "unicodes": { - "secondary": [ - "10f4ff" - ] - } - }, - "label": "User pen", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M223.1 256c70.7 0 128-57.31 128-128s-57.3-128-128-128C153.3 0 96 57.31 96 128S153.3 256 223.1 256zM274.7 304H173.3C77.61 304 0 381.7 0 477.4C0 496.5 15.52 512 34.66 512h286.4c-1.246-5.531-1.43-11.31-.2832-17.04l14.28-71.41c1.943-9.723 6.676-18.56 13.68-25.56l45.72-45.72C363.3 322.4 321.2 304 274.7 304zM371.4 420.6c-2.514 2.512-4.227 5.715-4.924 9.203l-14.28 71.41c-1.258 6.289 4.293 11.84 10.59 10.59l71.42-14.29c3.482-.6992 6.682-2.406 9.195-4.922l125.3-125.3l-72.01-72.01L371.4 420.6zM629.5 255.7l-21.1-21.11c-14.06-14.06-36.85-14.06-50.91 0l-38.13 38.14l72.01 72.01l38.13-38.13C643.5 292.5 643.5 269.7 629.5 255.7z" - } - }, - "free": [ - "solid" - ] - }, - "user-plus": { - "changes": [ - "4.3.0", - "5.0.0", - "5.0.3", - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f234", - "aliases": { - "unicodes": { - "secondary": [ - "10f234" - ] - } - }, - "label": "User Plus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573347, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM274.7 304H173.3C77.61 304 0 381.6 0 477.3C0 496.5 15.52 512 34.66 512h378.7C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM616 200h-48v-48C568 138.8 557.3 128 544 128s-24 10.75-24 24v48h-48C458.8 200 448 210.8 448 224s10.75 24 24 24h48v48C520 309.3 530.8 320 544 320s24-10.75 24-24v-48h48C629.3 248 640 237.3 640 224S629.3 200 616 200z" - } - }, - "free": [ - "solid" - ] - }, - "user-secret": { - "changes": [ - "4.3.0", - "5.0.0", - "5.0.3", - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f21b", - "aliases": { - "unicodes": { - "composite": [ - "1f575" - ], - "secondary": [ - "10f21b" - ] - } - }, - "label": "User Secret", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573348, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M377.7 338.8l37.15-92.87C419 235.4 411.3 224 399.1 224h-57.48C348.5 209.2 352 193 352 176c0-4.117-.8359-8.057-1.217-12.08C390.7 155.1 416 142.3 416 128c0-16.08-31.75-30.28-80.31-38.99C323.8 45.15 304.9 0 277.4 0c-10.38 0-19.62 4.5-27.38 10.5c-15.25 11.88-36.75 11.88-52 0C190.3 4.5 181.1 0 170.7 0C143.2 0 124.4 45.16 112.5 88.98C63.83 97.68 32 111.9 32 128c0 14.34 25.31 27.13 65.22 35.92C96.84 167.9 96 171.9 96 176C96 193 99.47 209.2 105.5 224H48.02C36.7 224 28.96 235.4 33.16 245.9l37.15 92.87C27.87 370.4 0 420.4 0 477.3C0 496.5 15.52 512 34.66 512H413.3C432.5 512 448 496.5 448 477.3C448 420.4 420.1 370.4 377.7 338.8zM176 479.1L128 288l64 32l16 32L176 479.1zM271.1 479.1L240 352l16-32l64-32L271.1 479.1zM320 186C320 207 302.8 224 281.6 224h-12.33c-16.46 0-30.29-10.39-35.63-24.99C232.1 194.9 228.4 192 224 192S215.9 194.9 214.4 199C209 213.6 195.2 224 178.8 224h-12.33C145.2 224 128 207 128 186V169.5C156.3 173.6 188.1 176 224 176s67.74-2.383 96-6.473V186z" - } - }, - "free": [ - "solid" - ] - }, - "user-shield": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f505", - "aliases": { - "unicodes": { - "secondary": [ - "10f505" - ] - } - }, - "label": "User Shield", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573348, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M622.3 271.1l-115.1-45.01c-4.125-1.629-12.62-3.754-22.25 0L369.8 271.1C359 275.2 352 285.1 352 295.1c0 111.6 68.75 188.8 132.9 213.9c9.625 3.75 18 1.625 22.25 0C558.4 489.9 640 420.5 640 295.1C640 285.1 633 275.2 622.3 271.1zM496 462.4V273.2l95.5 37.38C585.9 397.8 530.6 446 496 462.4zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM320.6 310.3C305.9 306.3 290.6 304 274.7 304H173.3C77.61 304 0 381.7 0 477.4C0 496.5 15.52 512 34.66 512H413.3c3.143 0 5.967-1.004 8.861-1.789C369.7 469.8 324.1 400.3 320.6 310.3z" - } - }, - "free": [ - "solid" - ] - }, - "user-slash": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f506", - "aliases": { - "unicodes": { - "secondary": [ - "10f506" - ] - } - }, - "label": "User Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573348, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M95.1 477.3c0 19.14 15.52 34.67 34.66 34.67h378.7c5.625 0 10.73-1.65 15.42-4.029L264.9 304.3C171.3 306.7 95.1 383.1 95.1 477.3zM630.8 469.1l-277.1-217.9c54.69-14.56 95.18-63.95 95.18-123.2C447.1 57.31 390.7 0 319.1 0C250.2 0 193.7 55.93 192.3 125.4l-153.4-120.3C34.41 1.672 29.19 0 24.03 0C16.91 0 9.845 3.156 5.127 9.187c-8.187 10.44-6.375 25.53 4.062 33.7L601.2 506.9c10.5 8.203 25.56 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1z" - } - }, - "free": [ - "solid" - ] - }, - "user-tag": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f507", - "aliases": { - "unicodes": { - "secondary": [ - "10f507" - ] - } - }, - "label": "User Tag", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573348, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M351.8 367.3v-44.1C328.5 310.7 302.4 304 274.7 304H173.3c-95.73 0-173.3 77.65-173.3 173.4C.0005 496.5 15.52 512 34.66 512h378.7c11.86 0 21.82-6.337 28.07-15.43l-61.65-61.57C361.7 416.9 351.8 392.9 351.8 367.3zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM630.6 364.8L540.3 274.8C528.3 262.8 512 256 495 256h-79.23c-17.75 0-31.99 14.25-31.99 32l.0147 79.2c0 17 6.647 33.15 18.65 45.15l90.31 90.27c12.5 12.5 32.74 12.5 45.24 0l92.49-92.5C643.1 397.6 643.1 377.3 630.6 364.8zM447.8 343.9c-13.25 0-24-10.62-24-24c0-13.25 10.75-24 24-24c13.38 0 24 10.75 24 24S461.1 343.9 447.8 343.9z" - } - }, - "free": [ - "solid" - ] - }, - "user-tie": { - "changes": [ - "5.0.11", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f508", - "aliases": { - "unicodes": { - "secondary": [ - "10f508" - ] - } - }, - "label": "User Tie", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573348, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M352 128C352 198.7 294.7 256 224 256C153.3 256 96 198.7 96 128C96 57.31 153.3 0 224 0C294.7 0 352 57.31 352 128zM209.1 359.2L176 304H272L238.9 359.2L272.2 483.1L311.7 321.9C388.9 333.9 448 400.7 448 481.3C448 498.2 434.2 512 417.3 512H30.72C13.75 512 0 498.2 0 481.3C0 400.7 59.09 333.9 136.3 321.9L175.8 483.1L209.1 359.2z" - } - }, - "free": [ - "solid" - ] - }, - "user-xmark": { - "changes": [ - "4.3.0", - "5.0.0", - "5.0.3", - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f235", - "aliases": { - "names": [ - "user-times" - ], - "unicodes": { - "secondary": [ - "10f235" - ] - } - }, - "label": "User X Mark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573348, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M274.7 304H173.3C77.61 304 0 381.6 0 477.3C0 496.5 15.52 512 34.66 512h378.7C432.5 512 448 496.5 448 477.3C448 381.6 370.4 304 274.7 304zM224 256c70.7 0 128-57.31 128-128S294.7 0 224 0C153.3 0 96 57.31 96 128S153.3 256 224 256zM577.9 223.1l47.03-47.03c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L544 190.1l-47.03-47.03c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94l47.03 47.03l-47.03 47.03c-9.375 9.375-9.375 24.56 0 33.94c9.373 9.373 24.56 9.381 33.94 0L544 257.9l47.03 47.03c9.373 9.373 24.56 9.381 33.94 0c9.375-9.375 9.375-24.56 0-33.94L577.9 223.1z" - } - }, - "free": [ - "solid" - ] - }, - "users": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.3", - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0c0", - "aliases": { - "unicodes": { - "secondary": [ - "10f0c0" - ] - } - }, - "label": "Users", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M319.9 320c57.41 0 103.1-46.56 103.1-104c0-57.44-46.54-104-103.1-104c-57.41 0-103.1 46.56-103.1 104C215.9 273.4 262.5 320 319.9 320zM369.9 352H270.1C191.6 352 128 411.7 128 485.3C128 500.1 140.7 512 156.4 512h327.2C499.3 512 512 500.1 512 485.3C512 411.7 448.4 352 369.9 352zM512 160c44.18 0 80-35.82 80-80S556.2 0 512 0c-44.18 0-80 35.82-80 80S467.8 160 512 160zM183.9 216c0-5.449 .9824-10.63 1.609-15.91C174.6 194.1 162.6 192 149.9 192H88.08C39.44 192 0 233.8 0 285.3C0 295.6 7.887 304 17.62 304h199.5C196.7 280.2 183.9 249.7 183.9 216zM128 160c44.18 0 80-35.82 80-80S172.2 0 128 0C83.82 0 48 35.82 48 80S83.82 160 128 160zM551.9 192h-61.84c-12.8 0-24.88 3.037-35.86 8.24C454.8 205.5 455.8 210.6 455.8 216c0 33.71-12.78 64.21-33.16 88h199.7C632.1 304 640 295.6 640 285.3C640 233.8 600.6 192 551.9 192z" - } - }, - "free": [ - "solid" - ] - }, - "users-between-lines": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e591", - "label": "Users Between-lines", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 24C0 10.75 10.75 0 24 0H616C629.3 0 640 10.75 640 24C640 37.25 629.3 48 616 48H24C10.75 48 0 37.25 0 24zM0 488C0 474.7 10.75 464 24 464H616C629.3 464 640 474.7 640 488C640 501.3 629.3 512 616 512H24C10.75 512 0 501.3 0 488zM211.2 160C211.2 195.3 182.5 224 147.2 224C111.9 224 83.2 195.3 83.2 160C83.2 124.7 111.9 96 147.2 96C182.5 96 211.2 124.7 211.2 160zM32 320C32 284.7 60.65 256 96 256H192C204.2 256 215.7 259.4 225.4 265.4C188.2 280.5 159.8 312.6 149.6 352H64C46.33 352 32 337.7 32 320V320zM415.9 264.6C425.3 259.1 436.3 256 448 256H544C579.3 256 608 284.7 608 320C608 337.7 593.7 352 576 352H493.6C483.2 311.9 453.1 279.4 415.9 264.6zM391.2 290.4C423.3 297.8 449.3 321.3 460.1 352C463.7 362 465.6 372.8 465.6 384C465.6 401.7 451.3 416 433.6 416H209.6C191.9 416 177.6 401.7 177.6 384C177.6 372.8 179.5 362 183.1 352C193.6 322.3 218.3 299.2 249.1 291.1C256.1 289.1 265.1 288 273.6 288H369.6C377 288 384.3 288.8 391.2 290.4zM563.2 160C563.2 195.3 534.5 224 499.2 224C463.9 224 435.2 195.3 435.2 160C435.2 124.7 463.9 96 499.2 96C534.5 96 563.2 124.7 563.2 160zM241.6 176C241.6 131.8 277.4 96 321.6 96C365.8 96 401.6 131.8 401.6 176C401.6 220.2 365.8 256 321.6 256C277.4 256 241.6 220.2 241.6 176z" - } - }, - "free": [ - "solid" - ] - }, - "users-gear": { - "changes": [ - "5.0.11", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f509", - "aliases": { - "names": [ - "users-cog" - ], - "unicodes": { - "secondary": [ - "10f509" - ] - } - }, - "label": "Users gear", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M512 160c44.18 0 80-35.82 80-80S556.2 0 512 0c-44.18 0-80 35.82-80 80S467.8 160 512 160zM128 160c44.18 0 80-35.82 80-80S172.2 0 128 0C83.82 0 48 35.82 48 80S83.82 160 128 160zM319.9 320c57.41 0 103.1-46.56 103.1-104c0-57.44-46.54-104-103.1-104c-57.41 0-103.1 46.56-103.1 104C215.9 273.4 262.5 320 319.9 320zM368 400c0-16.69 3.398-32.46 8.619-47.36C374.3 352.5 372.2 352 369.9 352H270.1C191.6 352 128 411.7 128 485.3C128 500.1 140.7 512 156.4 512h266.1C389.5 485.6 368 445.5 368 400zM183.9 216c0-5.449 .9824-10.63 1.609-15.91C174.6 194.1 162.6 192 149.9 192H88.08C39.44 192 0 233.8 0 285.3C0 295.6 7.887 304 17.62 304h199.5C196.7 280.2 183.9 249.7 183.9 216zM551.9 192h-61.84c-12.8 0-24.88 3.037-35.86 8.24C454.8 205.5 455.8 210.6 455.8 216c0 21.47-5.625 41.38-14.65 59.34C462.2 263.4 486.1 256 512 256c42.48 0 80.27 18.74 106.6 48h3.756C632.1 304 640 295.6 640 285.3C640 233.8 600.6 192 551.9 192zM618.1 366.7c-5.025-16.01-13.59-30.62-24.75-42.71c-1.674-1.861-4.467-2.326-6.699-1.023l-19.17 11.07c-8.096-6.887-17.4-12.28-27.45-15.82V295.1c0-2.514-1.861-4.746-4.281-5.213c-16.56-3.723-33.5-3.629-49.32 0C484.9 291.2 483.1 293.5 483.1 295.1v22.24c-10.05 3.537-19.36 8.932-27.45 15.82l-19.26-11.07c-2.139-1.303-4.932-.8379-6.697 1.023c-11.17 12.1-19.73 26.71-24.66 42.71c-.7441 2.512 .2793 5.117 2.42 6.326l19.17 11.17c-1.859 10.42-1.859 21.21 0 31.64l-19.17 11.17c-2.234 1.209-3.164 3.816-2.42 6.328c4.932 16.01 13.49 30.52 24.66 42.71c1.766 1.863 4.467 2.328 6.697 1.025l19.26-11.07c8.094 6.887 17.4 12.28 27.45 15.82v22.24c0 2.514 1.77 4.746 4.188 5.211c16.66 3.723 33.5 3.629 49.32 0c2.42-.4648 4.281-2.697 4.281-5.211v-22.24c10.05-3.535 19.36-8.932 27.45-15.82l19.17 11.07c2.141 1.303 5.025 .8379 6.699-1.025c11.17-12.1 19.73-26.7 24.75-42.71c.7441-2.512-.2773-5.119-2.512-6.328l-19.17-11.17c1.953-10.42 1.953-21.22 0-31.64l19.17-11.17C618.7 371.8 619.7 369.2 618.1 366.7zM512 432c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32s32 14.33 32 32C544 417.7 529.7 432 512 432z" - } - }, - "free": [ - "solid" - ] - }, - "users-line": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e592", - "label": "Users Line", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M211.2 96C211.2 131.3 182.5 160 147.2 160C111.9 160 83.2 131.3 83.2 96C83.2 60.65 111.9 32 147.2 32C182.5 32 211.2 60.65 211.2 96zM32 256C32 220.7 60.65 192 96 192H192C204.2 192 215.7 195.4 225.4 201.4C188.2 216.5 159.8 248.6 149.6 288H64C46.33 288 32 273.7 32 256V256zM415.9 200.6C425.3 195.1 436.3 192 448 192H544C579.3 192 608 220.7 608 256C608 273.7 593.7 288 576 288H493.6C483.2 247.9 453.1 215.4 415.9 200.6zM391.2 226.4C423.3 233.8 449.3 257.3 460.1 288C463.7 298 465.6 308.8 465.6 320C465.6 337.7 451.3 352 433.6 352H209.6C191.9 352 177.6 337.7 177.6 320C177.6 308.8 179.5 298 183.1 288C193.6 258.3 218.3 235.2 249.1 227.1C256.1 225.1 265.1 224 273.6 224H369.6C377 224 384.3 224.8 391.2 226.4zM563.2 96C563.2 131.3 534.5 160 499.2 160C463.9 160 435.2 131.3 435.2 96C435.2 60.65 463.9 32 499.2 32C534.5 32 563.2 60.65 563.2 96zM241.6 112C241.6 67.82 277.4 32 321.6 32C365.8 32 401.6 67.82 401.6 112C401.6 156.2 365.8 192 321.6 192C277.4 192 241.6 156.2 241.6 112zM608 416C625.7 416 640 430.3 640 448C640 465.7 625.7 480 608 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H608z" - } - }, - "free": [ - "solid" - ] - }, - "users-rays": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e593", - "label": "Users Rays", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M112.1 79.03C122.3 88.4 122.3 103.6 112.1 112.1C103.6 122.3 88.4 122.3 79.03 112.1L7.029 40.97C-2.343 31.6-2.343 16.4 7.029 7.029C16.4-2.343 31.6-2.343 40.97 7.029L112.1 79.03zM599 7.029C608.4-2.343 623.6-2.343 632.1 7.029C642.3 16.4 642.3 31.6 632.1 40.97L560.1 112.1C551.6 122.3 536.4 122.3 527 112.1C517.7 103.6 517.7 88.4 527 79.03L599 7.029zM7.029 471L79.03 399C88.4 389.7 103.6 389.7 112.1 399C122.3 408.4 122.3 423.6 112.1 432.1L40.97 504.1C31.6 514.3 16.4 514.3 7.029 504.1C-2.343 495.6-2.343 480.4 7.029 471V471zM527 432.1C517.7 423.6 517.7 408.4 527 399C536.4 389.7 551.6 389.7 560.1 399L632.1 471C642.3 480.4 642.3 495.6 632.1 504.1C623.6 514.3 608.4 514.3 599 504.1L527 432.1zM256 192C256 156.7 284.7 128 320 128C355.3 128 384 156.7 384 192C384 227.3 355.3 256 320 256C284.7 256 256 227.3 256 192zM265.5 289.5C266.3 289.3 267.1 289.1 267.1 288.1C271.9 288.3 275.9 288 280 288H360C364.1 288 368.1 288.3 372 288.1C396.6 293.1 416.9 309.7 426.3 331.1C426.9 333.3 427.4 334.6 427.9 336C430.6 343.5 432 351.6 432 360C432 373.3 421.3 384 408 384H232C218.7 384 208 373.3 208 360C208 351.6 209.4 343.5 212.1 336C220.4 312.5 240.6 294.6 265.5 289.5V289.5zM127.8 176C127.8 149.5 149.3 128 175.8 128C202.3 128 223.8 149.5 223.8 176C223.8 202.5 202.3 224 175.8 224C149.3 224 127.8 202.5 127.8 176V176zM218.7 256C227.8 256 236.5 258.3 244 262.4C211.6 274.3 186.8 301.9 178.8 336H122.7C107.9 336 96 324.1 96 309.3C96 279.9 119.9 256 149.3 256H218.7zM517.3 336H461.2C453.2 301.9 428.4 274.3 395.1 262.4C403.5 258.3 412.2 256 421.3 256H490.7C520.1 256 544 279.9 544 309.3C544 324.1 532.1 336 517.3 336H517.3zM416 176C416 149.5 437.5 128 464 128C490.5 128 512 149.5 512 176C512 202.5 490.5 224 464 224C437.5 224 416 202.5 416 176z" - } - }, - "free": [ - "solid" - ] - }, - "users-rectangle": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e594", - "label": "Users Rectangle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M223.8 176C223.8 202.5 202.3 224 175.8 224C149.3 224 127.8 202.5 127.8 176C127.8 149.5 149.3 128 175.8 128C202.3 128 223.8 149.5 223.8 176zM96 309.3C96 279.9 119.9 256 149.3 256H218.7C227.8 256 236.5 258.3 244 262.4C211.6 274.3 186.8 301.9 178.8 336H122.7C107.9 336 96 324.1 96 309.3H96zM395.1 262.4C403.5 258.3 412.2 256 421.3 256H490.7C520.1 256 544 279.9 544 309.3C544 324.1 532.1 336 517.3 336H461.2C453.2 301.9 428.4 274.3 395.1 262.4H395.1zM372 288.1C398 293.4 419.3 311.7 427.9 336C430.6 343.5 432 351.6 432 360C432 373.3 421.3 384 408 384H232C218.7 384 208 373.3 208 360C208 351.6 209.4 343.5 212.1 336C220.7 311.7 241.1 293.4 267.1 288.1C271.9 288.3 275.9 288 280 288H360C364.1 288 368.1 288.3 372 288.1V288.1zM512 176C512 202.5 490.5 224 464 224C437.5 224 416 202.5 416 176C416 149.5 437.5 128 464 128C490.5 128 512 149.5 512 176zM256 192C256 156.7 284.7 128 320 128C355.3 128 384 156.7 384 192C384 227.3 355.3 256 320 256C284.7 256 256 227.3 256 192zM544 0C597 0 640 42.98 640 96V416C640 469 597 512 544 512H96C42.98 512 0 469 0 416V96C0 42.98 42.98 0 96 0H544zM64 416C64 433.7 78.33 448 96 448H544C561.7 448 576 433.7 576 416V96C576 78.33 561.7 64 544 64H96C78.33 64 64 78.33 64 96V416z" - } - }, - "free": [ - "solid" - ] - }, - "users-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e073", - "aliases": { - "unicodes": { - "secondary": [ - "10e073" - ] - } - }, - "label": "Users Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M512 160c44.18 0 80-35.82 80-80S556.2 0 512 0c-44.18 0-80 35.82-80 80S467.8 160 512 160zM490.1 192c-12.8 0-24.88 3.037-35.86 8.24C454.8 205.5 455.8 210.6 455.8 216c0 33.71-12.78 64.21-33.16 88h199.7C632.1 304 640 295.6 640 285.3C640 233.8 600.6 192 551.9 192H490.1zM396.6 285.5C413.4 267.2 423.8 242.9 423.8 216c0-57.44-46.54-104-103.1-104c-35.93 0-67.07 18.53-85.59 46.3L193.1 126.1C202.4 113.1 208 97.24 208 80C208 35.82 172.2 0 128 0C103.8 0 82.52 10.97 67.96 27.95L38.81 5.109C34.41 1.672 29.19 0 24.03 0C16.91 0 9.846 3.156 5.127 9.188C-3.061 19.62-1.248 34.72 9.189 42.89l591.1 463.1c10.5 8.203 25.56 6.328 33.69-4.078c8.188-10.44 6.375-25.53-4.062-33.7L396.6 285.5zM270.1 352C191.6 352 128 411.7 128 485.3C128 500.1 140.7 512 156.4 512h327.2c11.62 0 21.54-6.583 25.95-15.96L325.7 352H270.1zM186.1 243.2L121.6 192H88.08C39.44 192 0 233.8 0 285.3C0 295.6 7.887 304 17.62 304h199.5C202.4 286.8 191.8 266.1 186.1 243.2z" - } - }, - "free": [ - "solid" - ] - }, - "users-viewfinder": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e595", - "label": "Users Viewfinder", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M48 136C48 149.3 37.25 160 24 160C10.75 160 0 149.3 0 136V32C0 14.33 14.33 0 32 0H136C149.3 0 160 10.75 160 24C160 37.25 149.3 48 136 48H48V136zM127.8 176C127.8 149.5 149.3 128 175.8 128C202.3 128 223.8 149.5 223.8 176C223.8 202.5 202.3 224 175.8 224C149.3 224 127.8 202.5 127.8 176V176zM218.7 256C227.8 256 236.5 258.3 244 262.4C211.6 274.3 186.8 301.9 178.8 336H122.7C107.9 336 96 324.1 96 309.3C96 279.9 119.9 256 149.3 256H218.7zM517.3 336H461.2C453.2 301.9 428.4 274.3 395.1 262.4C403.5 258.3 412.2 256 421.3 256H490.7C520.1 256 544 279.9 544 309.3C544 324.1 532.1 336 517.3 336H517.3zM432 360C432 373.3 421.3 384 408 384H232C218.7 384 208 373.3 208 360C208 351.6 209.4 343.5 212.1 336C220.7 311.7 241.1 293.4 267.1 288.1C271.9 288.3 275.9 288 280 288H360C364.1 288 368.1 288.3 372 288.1C398 293.4 419.3 311.7 427.9 336C430.6 343.5 432 351.6 432 360zM416 176C416 149.5 437.5 128 464 128C490.5 128 512 149.5 512 176C512 202.5 490.5 224 464 224C437.5 224 416 202.5 416 176zM384 192C384 227.3 355.3 256 320 256C284.7 256 256 227.3 256 192C256 156.7 284.7 128 320 128C355.3 128 384 156.7 384 192zM480 24C480 10.75 490.7 0 504 0H608C625.7 0 640 14.33 640 32V136C640 149.3 629.3 160 616 160C602.7 160 592 149.3 592 136V48H504C490.7 48 480 37.25 480 24zM48 464H136C149.3 464 160 474.7 160 488C160 501.3 149.3 512 136 512H32C14.33 512 0 497.7 0 480V376C0 362.7 10.75 352 24 352C37.25 352 48 362.7 48 376V464zM504 464H592V376C592 362.7 602.7 352 616 352C629.3 352 640 362.7 640 376V480C640 497.7 625.7 512 608 512H504C490.7 512 480 501.3 480 488C480 474.7 490.7 464 504 464z" - } - }, - "free": [ - "solid" - ] - }, - "usps": { - "changes": [ - "5.6.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7e1", - "label": "United States Postal Service", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M460.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8h-27c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8 .1zm-112.1 22.6c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3h196.6c-2.7-28.2-152.9-22.6-337.9-22.6L27 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM94.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2h423.1L549 96z" - } - }, - "free": [ - "brands" - ] - }, - "ussunnah": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f407", - "label": "us-Sunnah Foundation", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M156.8 285.1l5.7 14.4h-8.2c-1.3-3.2-3.1-7.7-3.8-9.5-2.5-6.3-1.1-8.4 0-10 1.9-2.7 3.2-4.4 3.6-5.2 0 2.2 .8 5.7 2.7 10.3zm297.3 18.8c-2.1 13.8-5.7 27.1-10.5 39.7l43 23.4-44.8-18.8c-5.3 13.2-12 25.6-19.9 37.2l34.2 30.2-36.8-26.4c-8.4 11.8-18 22.6-28.7 32.3l24.9 34.7-28.1-31.8c-11 9.6-23.1 18-36.1 25.1l15.7 37.2-19.3-35.3c-13.1 6.8-27 12.1-41.6 15.9l6.7 38.4-10.5-37.4c-14.3 3.4-29.2 5.3-44.5 5.4L256 512l-1.9-38.4c-15.3-.1-30.2-2-44.5-5.3L199 505.6l6.7-38.2c-14.6-3.7-28.6-9.1-41.7-15.8l-19.2 35.1 15.6-37c-13-7-25.2-15.4-36.2-25.1l-27.9 31.6 24.7-34.4c-10.7-9.7-20.4-20.5-28.8-32.3l-36.5 26.2 33.9-29.9c-7.9-11.6-14.6-24.1-20-37.3l-44.4 18.7L67.8 344c-4.8-12.7-8.4-26.1-10.5-39.9l-51 9 50.3-14.2c-1.1-8.5-1.7-17.1-1.7-25.9 0-4.7 .2-9.4 .5-14.1L0 256l56-2.8c1.3-13.1 3.8-25.8 7.5-38.1L6.4 199l58.9 10.4c4-12 9.1-23.5 15.2-34.4l-55.1-30 58.3 24.6C90 159 97.2 149.2 105.3 140L55.8 96.4l53.9 38.7c8.1-8.6 17-16.5 26.6-23.6l-40-55.6 45.6 51.6c9.5-6.6 19.7-12.3 30.3-17.2l-27.3-64.9 33.8 62.1c10.5-4.4 21.4-7.9 32.7-10.4L199 6.4l19.5 69.2c11-2.1 22.3-3.2 33.8-3.4L256 0l3.6 72.2c11.5 .2 22.8 1.4 33.8 3.5L313 6.4l-12.4 70.7c11.3 2.6 22.2 6.1 32.6 10.5l33.9-62.2-27.4 65.1c10.6 4.9 20.7 10.7 30.2 17.2l45.8-51.8-40.1 55.9c9.5 7.1 18.4 15 26.5 23.6l54.2-38.9-49.7 43.9c8 9.1 15.2 18.9 21.5 29.4l58.7-24.7-55.5 30.2c6.1 10.9 11.1 22.3 15.1 34.3l59.3-10.4-57.5 16.2c3.7 12.2 6.2 24.9 7.5 37.9L512 256l-56 2.8c.3 4.6 .5 9.3 .5 14.1 0 8.7-.6 17.3-1.6 25.8l50.7 14.3-51.5-9.1zm-21.8-31c0-97.5-79-176.5-176.5-176.5s-176.5 79-176.5 176.5 79 176.5 176.5 176.5 176.5-79 176.5-176.5zm-24 0c0 84.3-68.3 152.6-152.6 152.6s-152.6-68.3-152.6-152.6 68.3-152.6 152.6-152.6 152.6 68.3 152.6 152.6zM195 241c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-40.7-19c0 2.1 1.3 3.8 3.6 5.1 3.5 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.5 6.8-9.6 10.9-9.6 12.6zm-19 0c0 2.1 1.3 3.8 3.6 5.1 3.3 1.9 6.2 4.6 8.2 8.2 2.8-5.7 4.3-9.5 4.3-11.2 0-2.2-1.1-4.4-3.2-7-2.1-2.5-3.2-5.2-3.3-7.7-6.4 6.8-9.6 10.9-9.6 12.6zm204.9 87.9c-8.4-3-8.7-6.8-8.7-15.6V182c-8.2 12.5-14.2 18.6-18 18.6 6.3 14.4 9.5 23.9 9.5 28.3v64.3c0 2.2-2.2 6.5-4.7 6.5h-18c-2.8-7.5-10.2-26.9-15.3-40.3-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 2.6 6.7 6.4 16.5 7.9 20.2h-9.2c-3.9-10.4-9.6-25.4-11.8-31.1-2 2.5-7.2 9.2-10.7 13.7 2.4 1.6 4.1 3.6 5.2 6.3 .8 2 2.8 7.3 4.3 10.9H256c-1.5-4.1-5.6-14.6-8.4-22-2 2.5-7.2 9.2-10.7 13.7 2.5 1.6 4.3 3.6 5.2 6.3 .2 .6 .5 1.4 .6 1.7H225c-4.6-13.9-11.4-27.7-11.4-34.1 0-2.2 .3-5.1 1.1-8.2-8.8 10.8-14 15.9-14 25 0 7.5 10.4 28.3 10.4 33.3 0 1.7-.5 3.3-1.4 4.9-9.6-12.7-15.5-20.7-18.8-20.7h-12l-11.2-28c-3.8-9.6-5.7-16-5.7-18.8 0-3.8 .5-7.7 1.7-12.2-1 1.3-3.7 4.7-5.5 7.1-.8-2.1-3.1-7.7-4.6-11.5-2.1 2.5-7.5 9.1-11.2 13.6 .9 2.3 3.3 8.1 4.9 12.2-2.5 3.3-9.1 11.8-13.6 17.7-4 5.3-5.8 13.3-2.7 21.8 2.5 6.7 2 7.9-1.7 14.1H191c5.5 0 14.3 14 15.5 22 13.2-16 15.4-19.6 16.8-21.6h107c3.9 0 7.2-1.9 9.9-5.8zm20.1-26.6V181.7c-9 12.5-15.9 18.6-20.7 18.6 7.1 14.4 10.7 23.9 10.7 28.3v66.3c0 17.5 8.6 20.4 24 20.4 8.1 0 12.5-.8 13.7-2.7-4.3-1.6-7.6-2.5-9.9-3.3-8.1-3.2-17.8-7.4-17.8-26z" - } - }, - "free": [ - "brands" - ] - }, - "utensils": { - "changes": [ - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f2e7", - "aliases": { - "names": [ - "cutlery" - ], - "unicodes": { - "composite": [ - "f0f5", - "1f374" - ], - "secondary": [ - "10f2e7" - ] - } - }, - "label": "Utensils", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M221.6 148.7C224.7 161.3 224.8 174.5 222.1 187.2C219.3 199.1 213.6 211.9 205.6 222.1C191.1 238.6 173 249.1 151.1 254.1V472C151.1 482.6 147.8 492.8 140.3 500.3C132.8 507.8 122.6 512 111.1 512C101.4 512 91.22 507.8 83.71 500.3C76.21 492.8 71.1 482.6 71.1 472V254.1C50.96 250.1 31.96 238.9 18.3 222.4C10.19 212.2 4.529 200.3 1.755 187.5C-1.019 174.7-.8315 161.5 2.303 148.8L32.51 12.45C33.36 8.598 35.61 5.197 38.82 2.9C42.02 .602 45.97-.4297 49.89 .0026C53.82 .4302 57.46 2.303 60.1 5.259C62.74 8.214 64.18 12.04 64.16 16V160H81.53L98.62 11.91C99.02 8.635 100.6 5.621 103.1 3.434C105.5 1.248 108.7 .0401 111.1 .0401C115.3 .0401 118.5 1.248 120.9 3.434C123.4 5.621 124.1 8.635 125.4 11.91L142.5 160H159.1V16C159.1 12.07 161.4 8.268 163.1 5.317C166.6 2.366 170.2 .474 174.1 .0026C178-.4262 181.1 .619 185.2 2.936C188.4 5.253 190.6 8.677 191.5 12.55L221.6 148.7zM448 472C448 482.6 443.8 492.8 436.3 500.3C428.8 507.8 418.6 512 408 512C397.4 512 387.2 507.8 379.7 500.3C372.2 492.8 368 482.6 368 472V352H351.2C342.8 352 334.4 350.3 326.6 347.1C318.9 343.8 311.8 339.1 305.8 333.1C299.9 327.1 295.2 320 291.1 312.2C288.8 304.4 287.2 296 287.2 287.6L287.1 173.8C288 136.9 299.1 100.8 319.8 70.28C340.5 39.71 369.8 16.05 404.1 2.339C408.1 .401 414.2-.3202 419.4 .2391C424.6 .7982 429.6 2.62 433.9 5.546C438.2 8.472 441.8 12.41 444.2 17.03C446.7 21.64 447.1 26.78 448 32V472z" - } - }, - "free": [ - "solid" - ] - }, - "v": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "56", - "aliases": { - "unicodes": { - "composite": [ - "76" - ] - } - }, - "label": "V", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573349, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M381.5 76.33l-160 384C216.6 472.2 204.9 480 192 480s-24.56-7.757-29.53-19.68l-160-384c-6.797-16.31 .9062-35.05 17.22-41.84c16.38-6.859 35.08 .9219 41.84 17.22L192 364.8l130.5-313.1c6.766-16.3 25.47-24.09 41.84-17.22C380.6 41.28 388.3 60.01 381.5 76.33z" - } - }, - "free": [ - "solid" - ] - }, - "vaadin": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f408", - "label": "Vaadin", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M224.5 140.7c1.5-17.6 4.9-52.7 49.8-52.7h98.6c20.7 0 32.1-7.8 32.1-21.6V54.1c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1v36.5c0 42.9-21.5 62-66.8 62H280.7c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1H66.8c-45.3 0-66.8-19.1-66.8-62V54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1v12.3C43.1 80.2 54.5 88 75.2 88h98.6c44.8 0 48.3 35.1 49.8 52.7h.9zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362l-66.9-117.7c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z" - } - }, - "free": [ - "brands" - ] - }, - "van-shuttle": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0-beta2", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5b6", - "aliases": { - "names": [ - "shuttle-van" - ], - "unicodes": { - "composite": [ - "1f690" - ], - "secondary": [ - "10f5b6" - ] - } - }, - "label": "Van shuttle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M592 384H576C576 437 533 480 480 480C426.1 480 384 437 384 384H256C256 437 213 480 160 480C106.1 480 64 437 64 384H48C21.49 384 0 362.5 0 336V104C0 64.24 32.24 32 72 32H465.1C483.1 32 501.9 40.34 514.1 54.78L624.1 186.5C634.7 197.1 640 212.6 640 227.7V336C640 362.5 618.5 384 592 384zM64 192H160V96H72C67.58 96 64 99.58 64 104V192zM545.1 192L465.1 96H384V192H545.1zM320 192V96H224V192H320zM480 336C453.5 336 432 357.5 432 384C432 410.5 453.5 432 480 432C506.5 432 528 410.5 528 384C528 357.5 506.5 336 480 336zM160 432C186.5 432 208 410.5 208 384C208 357.5 186.5 336 160 336C133.5 336 112 357.5 112 384C112 410.5 133.5 432 160 432z" - } - }, - "free": [ - "solid" - ] - }, - "vault": { - "changes": [ - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e2c5", - "label": "Vault", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M144 240C144 195.8 179.8 160 224 160C268.2 160 304 195.8 304 240C304 284.2 268.2 320 224 320C179.8 320 144 284.2 144 240zM512 0C547.3 0 576 28.65 576 64V416C576 451.3 547.3 480 512 480H496L480 512H416L400 480H176L160 512H96L80 480H64C28.65 480 0 451.3 0 416V64C0 28.65 28.65 0 64 0H512zM224 400C312.4 400 384 328.4 384 240C384 151.6 312.4 80 224 80C135.6 80 64 151.6 64 240C64 328.4 135.6 400 224 400zM480 221.3C498.6 214.7 512 196.9 512 176C512 149.5 490.5 128 464 128C437.5 128 416 149.5 416 176C416 196.9 429.4 214.7 448 221.3V336C448 344.8 455.2 352 464 352C472.8 352 480 344.8 480 336V221.3z" - } - }, - "free": [ - "solid" - ] - }, - "vector-square": { - "changes": [ - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5cb", - "aliases": { - "unicodes": { - "secondary": [ - "10f5cb" - ] - } - }, - "label": "Vector Square", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 32C433.7 32 448 46.33 448 64V128C448 145.7 433.7 160 416 160V352C433.7 352 448 366.3 448 384V448C448 465.7 433.7 480 416 480H352C334.3 480 320 465.7 320 448H128C128 465.7 113.7 480 96 480H32C14.33 480 0 465.7 0 448V384C0 366.3 14.33 352 32 352V160C14.33 160 0 145.7 0 128V64C0 46.33 14.33 32 32 32H96C113.7 32 128 46.33 128 64H320C320 46.33 334.3 32 352 32H416zM368 80V112H400V80H368zM96 160V352C113.7 352 128 366.3 128 384H320C320 366.3 334.3 352 352 352V160C334.3 160 320 145.7 320 128H128C128 145.7 113.7 160 96 160zM48 400V432H80V400H48zM400 432V400H368V432H400zM80 112V80H48V112H80z" - } - }, - "free": [ - "solid" - ] - }, - "venus": { - "changes": [ - "4.3.0", - "5.0.0", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f221", - "aliases": { - "unicodes": { - "composite": [ - "2640" - ], - "secondary": [ - "10f221" - ] - } - }, - "label": "Venus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M368 176c0-97.2-78.8-176-176-176c-97.2 0-176 78.8-176 176c0 86.26 62.1 157.9 144 172.1v35.05H112c-8.836 0-16 7.162-16 16v32c0 8.836 7.164 16 16 16H160v48c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16v-48h48c8.838 0 16-7.164 16-16v-32c0-8.838-7.162-16-16-16H224v-35.05C305.9 333.9 368 262.3 368 176zM192 272c-52.93 0-96-43.07-96-96c0-52.94 43.07-96 96-96c52.94 0 96 43.06 96 96C288 228.9 244.9 272 192 272z" - } - }, - "free": [ - "solid" - ] - }, - "venus-double": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f226", - "aliases": { - "unicodes": { - "composite": [ - "26a2" - ], - "secondary": [ - "10f226" - ] - } - }, - "label": "Venus Double", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M368 176c0-97.2-78.8-176-176-176c-97.2 0-176 78.8-176 176c0 86.26 62.1 157.9 144 172.1v35.05H112c-8.836 0-16 7.162-16 16v32c0 8.836 7.164 16 16 16H160v48c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16v-48h48c8.838 0 16-7.164 16-16v-32c0-8.838-7.162-16-16-16H224v-35.05C305.9 333.9 368 262.3 368 176zM192 272c-52.93 0-96-43.07-96-96c0-52.94 43.07-96 96-96c52.94 0 96 43.06 96 96C288 228.9 244.9 272 192 272zM624 176C624 78.8 545.2 0 448 0c-39.02 0-74.95 12.85-104.1 34.34c18.38 19.7 32.94 42.91 42.62 68.58C403.2 88.83 424.5 80 448 80c52.94 0 96 43.06 96 96c0 52.93-43.06 96-96 96c-23.57 0-44.91-8.869-61.63-23.02c-9.572 25.45-23.95 48.54-42.23 68.23C365.1 332.7 389.3 344 416 348.1V384h-48c-8.836 0-16 7.162-16 16v32c0 8.836 7.164 16 16 16H416v48c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16V448h48c8.838 0 16-7.164 16-16v-32c0-8.838-7.162-16-16-16H480v-35.05C561.9 333.9 624 262.3 624 176z" - } - }, - "free": [ - "solid" - ] - }, - "venus-mars": { - "changes": [ - "4.3.0", - "5.0.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f228", - "aliases": { - "unicodes": { - "composite": [ - "26a4" - ], - "secondary": [ - "10f228" - ] - } - }, - "label": "Venus Mars", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M256 384H208v-35.05C289.9 333.9 352 262.3 352 176c0-97.2-78.8-176-176-176c-97.2 0-176 78.8-176 176c0 86.26 62.1 157.9 144 172.1v35.05H96c-8.836 0-16 7.162-16 16v32c0 8.836 7.164 16 16 16h48v48c0 8.836 7.164 16 16 16h32c8.838 0 16-7.164 16-16v-48H256c8.838 0 16-7.164 16-16v-32C272 391.2 264.8 384 256 384zM176 272c-52.93 0-96-43.07-96-96c0-52.94 43.07-96 96-96c52.94 0 96 43.06 96 96C272 228.9 228.9 272 176 272zM624 0h-112.4c-21.38 0-32.09 25.85-16.97 40.97l29.56 29.56l-24.55 24.55c-29.97-20.66-64.81-31.05-99.74-31.05c-15.18 0-30.42 2.225-45.19 6.132c13.55 22.8 22.82 48.36 26.82 75.67c6.088-1.184 12.27-1.785 18.45-1.785c24.58 0 49.17 9.357 67.88 28.07c37.43 37.43 37.43 98.33 0 135.8c-18.71 18.71-43.3 28.07-67.88 28.07c-23.55 0-46.96-8.832-65.35-26.01c-15.92 18.84-34.93 35.1-56.75 47.35c11.45 5.898 20.17 16.3 23.97 28.82C331.5 406 365.7 416 400 416c45.04 0 90.08-17.18 124.5-51.55c60.99-60.99 67.73-155.6 20.47-224.1l24.55-24.55l29.56 29.56c4.889 4.889 10.9 7.078 16.8 7.078C628.2 152.4 640 142.8 640 128.4V16C640 7.164 632.8 0 624 0z" - } - }, - "free": [ - "solid" - ] - }, - "vest": { - "changes": [ - "5.15.0", - "5.15.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e085", - "aliases": { - "unicodes": { - "secondary": [ - "10e085" - ] - } - }, - "label": "vest", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M437.3 239.9L384 160V32c0-17.67-14.33-32-32-32h-32c-4.75 0-9.375 1.406-13.31 4.031l-25 16.66c-35.03 23.38-80.28 23.38-115.4 0l-25-16.66C137.4 1.406 132.8 0 128 0H96C78.33 0 64 14.33 64 32v128L10.75 239.9C3.74 250.4 0 262.7 0 275.4V480c0 17.67 14.33 32 32 32h160V288c0-3.439 .5547-6.855 1.643-10.12l13.49-40.48L150.2 66.56C173.2 79.43 198.5 86.25 224 86.25s50.79-6.824 73.81-19.69L224 288v224h192c17.67 0 32-14.33 32-32V275.4C448 262.7 444.3 250.4 437.3 239.9zM131.3 371.3l-48 48C80.19 422.4 76.09 424 72 424s-8.188-1.562-11.31-4.688c-6.25-6.25-6.25-16.38 0-22.62l48-48c6.25-6.25 16.38-6.25 22.62 0S137.6 365.1 131.3 371.3zM387.3 419.3C384.2 422.4 380.1 424 376 424s-8.188-1.562-11.31-4.688l-48-48c-6.25-6.25-6.25-16.38 0-22.62s16.38-6.25 22.62 0l48 48C393.6 402.9 393.6 413.1 387.3 419.3z" - } - }, - "free": [ - "solid" - ] - }, - "vest-patches": { - "changes": [ - "5.15.0", - "5.15.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e086", - "aliases": { - "unicodes": { - "secondary": [ - "10e086" - ] - } - }, - "label": "vest-patches", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M437.3 239.9L384 160V32c0-17.67-14.33-32-32-32h-32c-4.75 0-9.375 1.406-13.31 4.031l-25 16.66c-35.03 23.38-80.28 23.38-115.4 0l-25-16.66C137.4 1.406 132.8 0 128 0H96C78.33 0 64 14.33 64 32v128L10.75 239.9C3.74 250.4 0 262.7 0 275.4V480c0 17.67 14.33 32 32 32h160V288c0-3.439 .5547-6.855 1.643-10.12l13.49-40.48L150.2 66.56C173.2 79.43 198.5 86.25 224 86.25s50.79-6.824 73.81-19.69L224 288v224h192c17.67 0 32-14.33 32-32V275.4C448 262.7 444.3 250.4 437.3 239.9zM63.5 272.5c-4.656-4.688-4.656-12.31 0-17c4.688-4.688 12.31-4.688 17 0L96 271l15.5-15.5c4.688-4.688 12.31-4.688 17 0c4.656 4.688 4.656 12.31 0 17L113 288l15.5 15.5c4.656 4.688 4.656 12.31 0 17C126.2 322.8 123.1 324 120 324s-6.156-1.156-8.5-3.5L96 305l-15.5 15.5C78.16 322.8 75.06 324 72 324s-6.156-1.156-8.5-3.5c-4.656-4.688-4.656-12.31 0-17L79 288L63.5 272.5zM96 456c-22.09 0-40-17.91-40-40S73.91 376 96 376S136 393.9 136 416S118.1 456 96 456zM359.2 335.8L310.7 336C306.1 336 303.1 333 304 329.3l.2158-48.53c.1445-14.4 12.53-25.98 27.21-24.67c12.79 1.162 22.13 12.62 22.06 25.42l-.0557 5.076l5.069-.0566c12.83-.0352 24.24 9.275 25.4 22.08C385.2 323.3 373.7 335.7 359.2 335.8z" - } - }, - "free": [ - "solid" - ] - }, - "viacoin": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f237", - "label": "Viacoin", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 32h-64l-80.7 192h-94.5L64 32H0l48 112H0v48h68.5l13.8 32H0v48h102.8L192 480l89.2-208H384v-48h-82.3l13.8-32H384v-48h-48l48-112zM192 336l-27-64h54l-27 64z" - } - }, - "free": [ - "brands" - ] - }, - "viadeo": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2a9", - "label": "Viadeo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M276.2 150.5v.7C258.3 98.6 233.6 47.8 205.4 0c43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280C95 455.2 49.4 398 49.4 329.2c0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.1 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z" - } - }, - "free": [ - "brands" - ] - }, - "vial": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f492", - "aliases": { - "unicodes": { - "composite": [ - "1f9ea" - ], - "secondary": [ - "10f492" - ] - } - }, - "label": "Vial", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.6 169.4l-160-160C336.4 3.125 328.2 0 320 0s-16.38 3.125-22.62 9.375c-12.5 12.5-12.5 32.75 0 45.25l6.975 6.977l-271.4 271c-38.75 38.75-45.13 102-9.375 143.5C44.08 500 72.76 512 101.5 512h.4473c26.38 0 52.75-9.1 72.88-30.12l275.2-274.6l7.365 7.367C463.6 220.9 471.8 224 480 224s16.38-3.125 22.62-9.375C515.1 202.1 515.1 181.9 502.6 169.4zM310.6 256H200.2l149.3-149.1l55.18 55.12L310.6 256z" - } - }, - "free": [ - "solid" - ] - }, - "vial-circle-check": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e596", - "label": "Vial Circle-check", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 64C0 46.33 14.33 32 32 32H224C241.7 32 256 46.33 256 64C256 81.67 241.7 96 224 96V266.8C203.8 295.4 192 330.3 192 368C192 393.2 197.3 417.1 206.8 438.8C189.5 463.7 160.6 480 128 480C74.98 480 32 437 32 384V96C14.33 96 0 81.67 0 64V64zM96 192H160V96H96V192zM512 368C512 447.5 447.5 512 368 512C288.5 512 224 447.5 224 368C224 288.5 288.5 224 368 224C447.5 224 512 288.5 512 368zM412.7 324.7L352 385.4L323.3 356.7C317.1 350.4 306.9 350.4 300.7 356.7C294.4 362.9 294.4 373.1 300.7 379.3L340.7 419.3C346.9 425.6 357.1 425.6 363.3 419.3L435.3 347.3C441.6 341.1 441.6 330.9 435.3 324.7C429.1 318.4 418.9 318.4 412.7 324.7H412.7z" - } - }, - "free": [ - "solid" - ] - }, - "vial-virus": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e597", - "label": "Vial Virus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M256 32C273.7 32 288 46.33 288 64C288 81.67 273.7 96 256 96V207.1C252.9 209.1 249.9 211.5 247.2 214.2C225.3 236.1 225.3 271.6 247.2 293.4C247.4 293.6 247.4 293.7 247.5 293.8L247.5 293.8C247.5 293.9 247.5 294.1 247.4 294.4C247.3 294.6 247.1 294.8 247.1 294.8L247 294.9C246.1 294.9 246.8 294.9 246.6 294.9C215.7 294.9 190.6 319.1 190.6 350.9C190.6 381.8 215.7 406.9 246.6 406.9C246.8 406.9 246.1 406.9 247 406.9L247.1 406.9C247.1 406.1 247.3 407.1 247.4 407.4C247.5 407.7 247.5 407.9 247.5 407.1L247.5 408C247.4 408.1 247.4 408.2 247.2 408.3C236 419.5 230.6 434.2 230.8 448.8C213.3 467.1 188 480 160 480C106.1 480 64 437 64 384V96C46.33 96 32 81.67 32 64C32 46.33 46.33 32 64 32H256zM192 192V96H128V192H192zM383.8 189.7C397.1 189.7 407.8 200.4 407.8 213.7C407.8 242.9 443.2 257.6 463.9 236.9C473.3 227.5 488.5 227.5 497.8 236.9C507.2 246.2 507.2 261.4 497.8 270.8C477.2 291.5 491.8 326.9 521.1 326.9C534.3 326.9 545.1 337.6 545.1 350.9C545.1 364.1 534.3 374.9 521.1 374.9C491.8 374.9 477.2 410.3 497.8 430.9C507.2 440.3 507.2 455.5 497.8 464.9C488.5 474.3 473.3 474.3 463.9 464.9C443.2 444.2 407.8 458.9 407.8 488.1C407.8 501.4 397.1 512.1 383.8 512.1C370.6 512.1 359.8 501.4 359.8 488.1C359.8 458.9 324.5 444.2 303.8 464.9C294.4 474.3 279.2 474.3 269.8 464.9C260.5 455.5 260.5 440.3 269.8 430.9C290.5 410.3 275.9 374.9 246.6 374.9C233.4 374.9 222.6 364.1 222.6 350.9C222.6 337.6 233.4 326.9 246.6 326.9C275.9 326.9 290.5 291.5 269.8 270.8C260.5 261.4 260.5 246.2 269.8 236.9C279.2 227.5 294.4 227.5 303.8 236.9C324.5 257.6 359.8 242.9 359.8 213.7C359.8 200.4 370.6 189.7 383.8 189.7H383.8zM352 352C369.7 352 384 337.7 384 320C384 302.3 369.7 288 352 288C334.3 288 320 302.3 320 320C320 337.7 334.3 352 352 352zM416 360C402.7 360 392 370.7 392 384C392 397.3 402.7 408 416 408C429.3 408 440 397.3 440 384C440 370.7 429.3 360 416 360z" - } - }, - "free": [ - "solid" - ] - }, - "vials": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f493", - "aliases": { - "unicodes": { - "secondary": [ - "10f493" - ] - } - }, - "label": "Vials", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573350, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M200 32h-176C10.75 32 0 42.74 0 56C0 69.25 10.75 80 24 80H32v320C32 444.1 67.88 480 112 480S192 444.1 192 400v-320h8C213.3 80 224 69.25 224 56C224 42.74 213.3 32 200 32zM144 256h-64V80h64V256zM488 32h-176C298.7 32 288 42.74 288 56c0 13.25 10.75 24 24 24H320v320c0 44.13 35.88 80 80 80s80-35.88 80-80v-320h8C501.3 80 512 69.25 512 56C512 42.74 501.3 32 488 32zM432 256h-64V80h64V256z" - } - }, - "free": [ - "solid" - ] - }, - "viber": { - "changes": [ - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f409", - "label": "Viber", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M444 49.9C431.3 38.2 379.9 .9 265.3 .4c0 0-135.1-8.1-200.9 52.3C27.8 89.3 14.9 143 13.5 209.5c-1.4 66.5-3.1 191.1 117 224.9h.1l-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM457.9 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9 .4-85.7 .4-85.7-.1 0-.1 0 0 0-101.8-28.2-95.8-134.3-94.7-189.8 1.1-55.5 11.6-101 42.6-131.6 55.7-50.5 170.4-43 170.4-43 96.9 .4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9 .6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4 .7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5 .9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9 .1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7 .5 133 51.4 133.7 139.2zM374.9 329v.2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8h.2c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1 .8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z" - } - }, - "free": [ - "brands" - ] - }, - "video": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f03d", - "aliases": { - "names": [ - "video-camera" - ], - "unicodes": { - "secondary": [ - "10f03d" - ] - } - }, - "label": "Video", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M384 112v288c0 26.51-21.49 48-48 48h-288c-26.51 0-48-21.49-48-48v-288c0-26.51 21.49-48 48-48h288C362.5 64 384 85.49 384 112zM576 127.5v256.9c0 25.5-29.17 40.39-50.39 25.79L416 334.7V177.3l109.6-75.56C546.9 87.13 576 102.1 576 127.5z" - } - }, - "free": [ - "solid" - ] - }, - "video-slash": { - "changes": [ - "5.0.9", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4e2", - "aliases": { - "unicodes": { - "secondary": [ - "10f4e2" - ] - } - }, - "label": "Video Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M32 399.1c0 26.51 21.49 47.1 47.1 47.1h287.1c19.57 0 36.34-11.75 43.81-28.56L32 121.8L32 399.1zM630.8 469.1l-89.21-69.92l15.99 11.02c21.22 14.59 50.41-.2971 50.41-25.8V127.5c0-25.41-29.07-40.37-50.39-25.76l-109.6 75.56l.0001 148.5l-32-25.08l.0001-188.7c0-26.51-21.49-47.1-47.1-47.1H113.9L38.81 5.111C34.41 1.673 29.19 0 24.03 0C16.91 0 9.84 3.158 5.121 9.189C-3.066 19.63-1.249 34.72 9.189 42.89l591.1 463.1c10.5 8.203 25.57 6.328 33.69-4.078C643.1 492.4 641.2 477.3 630.8 469.1z" - } - }, - "free": [ - "solid" - ] - }, - "vihara": { - "changes": [ - "5.3.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6a7", - "aliases": { - "unicodes": { - "secondary": [ - "10f6a7" - ] - } - }, - "label": "Vihara", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M280.1 22.03L305.8 4.661C307.1 3.715 308.4 2.908 309.9 2.246C313.1 .7309 316.6-.0029 319.1 0C323.4-.0029 326.9 .7309 330.1 2.246C331.6 2.909 332.9 3.716 334.2 4.661L359 22.03C392.1 45.8 430.8 63.52 470.8 74.42L493.8 80.71C495.6 81.17 497.4 81.83 499 82.68C502.2 84.33 504.1 86.66 507.1 89.43C510.8 94.38 512.7 100.7 511.8 107.2C511.4 109.1 510.6 112.6 509.3 115C507.7 118.2 505.3 120.1 502.6 123.1C498.3 126.3 492.1 128.1 487.5 128H480V184.1L491.7 193.3C512.8 210 536.6 222.9 562.2 231.4L591.1 241.1C592.7 241.6 594.2 242.2 595.7 243C598.8 244.8 601.4 247.2 603.5 249.1C605.5 252.8 606.9 256 607.6 259.6C608.1 262.2 608.2 265 607.7 267.8C607.2 270.6 606.3 273.3 604.1 275.7C603.2 278.8 600.8 281.5 598 283.5C595.2 285.5 591.1 286.9 588.4 287.6C586.8 287.9 585.1 288 583.4 288H544V353.9C564.5 376.7 591.4 393 621.4 400.6C632 403 640 412.6 640 424C640 437.3 629.3 448 616 448H576V480C576 497.7 561.7 512 544 512C526.3 512 512 497.7 512 480V448H352V480C352 497.7 337.7 512 320 512C302.3 512 288 497.7 288 480V448H128V480C128 497.7 113.7 512 96 512C78.33 512 64 497.7 64 480V448H24C10.75 448 0 437.3 0 424C0 412.6 7.962 403 18.63 400.6C48.61 393 75.51 376.7 96 353.9V288H56.55C54.87 288 53.2 287.9 51.57 287.6C48.03 286.9 44.77 285.5 41.96 283.5C39.16 281.5 36.77 278.8 35.03 275.7C33.69 273.3 32.76 270.6 32.31 267.8C31.85 265 31.9 262.2 32.41 259.6C33.07 256 34.51 252.8 36.53 249.1C38.55 247.2 41.19 244.8 44.34 243C45.78 242.2 47.32 241.6 48.94 241.1L77.81 231.4C103.4 222.9 127.2 210 148.3 193.3L160 184.1V128H152.5C147 128.1 141.7 126.3 137.4 123.1C134.7 120.1 132.3 118.2 130.7 115C129.4 112.6 128.6 109.1 128.2 107.2C127.3 100.7 129.2 94.38 132.9 89.43C135 86.66 137.8 84.33 140.1 82.68C142.6 81.83 144.4 81.17 146.2 80.71L169.2 74.42C209.2 63.52 247 45.8 280.1 22.03H280.1zM223.1 128V192H416V128H223.1zM159.1 352H480V288H159.1V352z" - } - }, - "free": [ - "solid" - ] - }, - "vimeo": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f40a", - "label": "Vimeo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M403.2 32H44.8C20.1 32 0 52.1 0 76.8v358.4C0 459.9 20.1 480 44.8 480h358.4c24.7 0 44.8-20.1 44.8-44.8V76.8c0-24.7-20.1-44.8-44.8-44.8zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2l-15.2-19.6c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3 .9 49 22.5 47.1 64.7z" - } - }, - "free": [ - "brands" - ] - }, - "vimeo-v": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f27d", - "label": "Vimeo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572499, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3C100.3 250 85.3 174.3 56.2 174.3c-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z" - } - }, - "free": [ - "brands" - ] - }, - "vine": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1ca", - "label": "Vine", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 254.7v52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8C137 452 34.2 367.7 0 102.7h74.5C93.2 261.8 139 343.4 189.3 404.5c27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z" - } - }, - "free": [ - "brands" - ] - }, - "virus": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e074", - "aliases": { - "unicodes": { - "secondary": [ - "10e074" - ] - } - }, - "label": "Virus", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M288 43.55C288 93.44 348.3 118.4 383.6 83.15L391.8 74.98C404.3 62.48 424.5 62.48 437 74.98C449.5 87.48 449.5 107.7 437 120.2L428.9 128.4C393.6 163.7 418.6 224 468.5 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H468.5C418.6 288 393.6 348.3 428.9 383.6L437 391.8C449.5 404.3 449.5 424.5 437 437C424.5 449.5 404.3 449.5 391.8 437L383.6 428.9C348.3 393.6 288 418.6 288 468.5V480C288 497.7 273.7 512 256 512C238.3 512 224 497.7 224 480V468.5C224 418.6 163.7 393.6 128.4 428.9L120.2 437C107.7 449.5 87.48 449.5 74.98 437C62.48 424.5 62.48 404.3 74.98 391.8L83.15 383.6C118.4 348.3 93.44 288 43.55 288H32C14.33 288 0 273.7 0 256C0 238.3 14.33 224 32 224H43.55C93.44 224 118.4 163.7 83.15 128.4L74.98 120.2C62.48 107.7 62.48 87.48 74.98 74.98C87.48 62.48 107.7 62.48 120.2 74.98L128.4 83.15C163.7 118.4 224 93.44 224 43.55V32C224 14.33 238.3 0 256 0C273.7 0 288 14.33 288 32V43.55zM224 176C197.5 176 176 197.5 176 224C176 250.5 197.5 272 224 272C250.5 272 272 250.5 272 224C272 197.5 250.5 176 224 176zM304 328C317.3 328 328 317.3 328 304C328 290.7 317.3 280 304 280C290.7 280 280 290.7 280 304C280 317.3 290.7 328 304 328z" - } - }, - "free": [ - "solid" - ] - }, - "virus-covid": { - "changes": [ - "6.0.0", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4a8", - "label": "Virus Covid", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M192 24C192 10.75 202.7 0 216 0H296C309.3 0 320 10.75 320 24C320 37.25 309.3 48 296 48H280V81.62C310.7 85.8 338.8 97.88 362.3 115.7L386.1 91.95L374.8 80.64C365.4 71.26 365.4 56.07 374.8 46.7C384.2 37.32 399.4 37.32 408.7 46.7L465.3 103.3C474.7 112.6 474.7 127.8 465.3 137.2C455.9 146.6 440.7 146.6 431.4 137.2L420 125.9L396.3 149.7C414.1 173.2 426.2 201.3 430.4 232H464V216C464 202.7 474.7 192 488 192C501.3 192 512 202.7 512 216V296C512 309.3 501.3 320 488 320C474.7 320 464 309.3 464 296V280H430.4C426.2 310.7 414.1 338.8 396.3 362.3L420 386.1L431.4 374.8C440.7 365.4 455.9 365.4 465.3 374.8C474.7 384.2 474.7 399.4 465.3 408.7L408.7 465.3C399.4 474.7 384.2 474.7 374.8 465.3C365.4 455.9 365.4 440.7 374.8 431.4L386.1 420L362.3 396.3C338.8 414.1 310.7 426.2 280 430.4V464H296C309.3 464 320 474.7 320 488C320 501.3 309.3 512 296 512H216C202.7 512 192 501.3 192 488C192 474.7 202.7 464 216 464H232V430.4C201.3 426.2 173.2 414.1 149.7 396.3L125.9 420.1L137.2 431.4C146.6 440.7 146.6 455.9 137.2 465.3C127.8 474.7 112.6 474.7 103.3 465.3L46.7 408.7C37.32 399.4 37.32 384.2 46.7 374.8C56.07 365.4 71.27 365.4 80.64 374.8L91.95 386.1L115.7 362.3C97.88 338.8 85.8 310.7 81.62 280H48V296C48 309.3 37.25 320 24 320C10.75 320 0 309.3 0 296V216C0 202.7 10.75 192 24 192C37.25 192 48 202.7 48 216V232H81.62C85.8 201.3 97.88 173.2 115.7 149.7L91.95 125.9L80.64 137.2C71.26 146.6 56.07 146.6 46.7 137.2C37.32 127.8 37.32 112.6 46.7 103.3L103.3 46.7C112.6 37.33 127.8 37.33 137.2 46.7C146.6 56.07 146.6 71.27 137.2 80.64L125.9 91.95L149.7 115.7C173.2 97.88 201.3 85.8 232 81.62V48H216C202.7 48 192 37.26 192 24V24zM192 176C165.5 176 144 197.5 144 224C144 250.5 165.5 272 192 272C218.5 272 240 250.5 240 224C240 197.5 218.5 176 192 176zM304 328C317.3 328 328 317.3 328 304C328 290.7 317.3 280 304 280C290.7 280 280 290.7 280 304C280 317.3 290.7 328 304 328z" - } - }, - "free": [ - "solid" - ] - }, - "virus-covid-slash": { - "changes": [ - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e4a9", - "label": "Virus Covid-slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M134.1 79.83L167.3 46.7C176.6 37.33 191.8 37.33 201.2 46.7C210.6 56.07 210.6 71.27 201.2 80.64L189.9 91.95L213.7 115.7C237.2 97.88 265.3 85.8 295.1 81.62V48H279.1C266.7 48 255.1 37.26 255.1 24C255.1 10.75 266.7 .0003 279.1 .0003H360C373.3 .0003 384 10.75 384 24C384 37.26 373.3 48 360 48H344V81.62C374.7 85.8 402.8 97.88 426.3 115.7L450.1 91.95L438.8 80.64C429.4 71.26 429.4 56.07 438.8 46.7C448.2 37.32 463.4 37.32 472.7 46.7L529.3 103.3C538.7 112.6 538.7 127.8 529.3 137.2C519.9 146.6 504.7 146.6 495.4 137.2L484 125.9L460.3 149.7C478.1 173.2 490.2 201.3 494.4 232H528V216C528 202.7 538.7 192 552 192C565.3 192 576 202.7 576 216V296C576 309.3 565.3 320 552 320C538.7 320 528 309.3 528 296V280H494.4C491.2 303.3 483.4 325.2 472.1 344.7L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L134.1 79.83zM149.2 213.5L401.3 412.2C383.7 421.3 364.4 427.6 344 430.4V464H360C373.3 464 384 474.7 384 488C384 501.3 373.3 512 360 512H279.1C266.7 512 255.1 501.3 255.1 488C255.1 474.7 266.7 464 279.1 464H295.1V430.4C265.3 426.2 237.2 414.1 213.7 396.3L189.9 420.1L201.2 431.4C210.6 440.7 210.6 455.9 201.2 465.3C191.8 474.7 176.6 474.7 167.3 465.3L110.7 408.7C101.3 399.4 101.3 384.2 110.7 374.8C120.1 365.4 135.3 365.4 144.6 374.8L155.1 386.1L179.7 362.3C161.9 338.8 149.8 310.7 145.6 280H111.1V296C111.1 309.3 101.3 320 87.1 320C74.74 320 63.1 309.3 63.1 296V216C63.1 202.7 74.74 192 87.1 192C101.3 192 111.1 202.7 111.1 216V232H145.6C146.5 225.7 147.7 219.6 149.2 213.5L149.2 213.5z" - } - }, - "free": [ - "solid" - ] - }, - "virus-slash": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e075", - "aliases": { - "unicodes": { - "secondary": [ - "10e075" - ] - } - }, - "label": "Virus Slash", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M134.7 80.27C135.9 78.4 137.3 76.62 138.1 74.98C151.5 62.48 171.7 62.48 184.2 74.98L192.4 83.15C227.7 118.4 287.1 93.44 287.1 43.55V32C287.1 14.33 302.3 0 319.1 0C337.7 0 352 14.33 352 32V43.55C352 93.44 412.3 118.4 447.6 83.15L455.8 74.98C468.3 62.48 488.5 62.48 501 74.98C513.5 87.48 513.5 107.7 501 120.2L492.9 128.4C457.6 163.7 482.6 224 532.4 224H544C561.7 224 576 238.3 576 256C576 273.7 561.7 288 544 288H532.5C497.2 288 474.4 318.1 476.5 348.1L630.8 469.1C641.2 477.3 643.1 492.4 634.9 502.8C626.7 513.2 611.6 515.1 601.2 506.9L9.196 42.89C-1.236 34.71-3.065 19.63 5.112 9.196C13.29-1.236 28.37-3.065 38.81 5.112L134.7 80.27zM264.6 182.1L334.3 236.7C335.4 232.7 336 228.4 336 224C336 197.5 314.5 176 288 176C279.5 176 271.5 178.2 264.6 182.1V182.1zM107.5 224C122.5 224 135.2 218.6 144.7 210L401.1 412.7C375.6 415.7 352 437.2 352 468.5V480C352 497.7 337.7 512 319.1 512C302.3 512 287.1 497.7 287.1 480V468.5C287.1 418.6 227.7 393.6 192.4 428.9L184.2 437C171.7 449.5 151.5 449.5 138.1 437C126.5 424.5 126.5 404.3 138.1 391.8L147.1 383.6C182.4 348.3 157.4 288 107.5 288H95.1C78.33 288 63.1 273.7 63.1 256C63.1 238.3 78.33 224 95.1 224H107.5z" - } - }, - "free": [ - "solid" - ] - }, - "viruses": { - "changes": [ - "5.13.0", - "5.14.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e076", - "aliases": { - "unicodes": { - "secondary": [ - "10e076" - ] - } - }, - "label": "Viruses", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M346.5 213.3h16.16C374.5 213.3 384 203.8 384 192c0-11.79-9.541-21.33-21.33-21.33h-16.16c-38.01 0-57.05-45.96-30.17-72.84l11.44-11.44c8.332-8.332 8.331-21.83-.0012-30.17c-8.334-8.334-21.83-8.332-30.17 .002L286.2 67.66C259.3 94.54 213.3 75.51 213.3 37.49V21.33C213.3 9.542 203.8 0 192 0S170.7 9.542 170.7 21.33v16.16c0 38.01-45.96 57.05-72.84 30.17L86.4 56.23c-8.334-8.334-21.83-8.336-30.17-.002c-8.332 8.334-8.333 21.84-.0012 30.17L67.66 97.83c26.88 26.88 7.842 72.84-30.17 72.84H21.33C9.541 170.7 0 180.2 0 192c0 11.79 9.541 21.33 21.33 21.33h16.16c38.01 0 57.05 45.96 30.17 72.84L56.23 297.6c-8.332 8.334-8.328 21.84 .0043 30.17c4.168 4.168 9.621 6.248 15.08 6.248s10.92-2.082 15.08-6.25L97.83 316.3c26.88-26.88 72.84-7.842 72.84 30.17v16.16C170.7 374.5 180.2 384 192 384s21.33-9.543 21.33-21.33v-16.16c0-38.01 45.96-57.05 72.84-30.17l11.43 11.43c4.168 4.168 9.625 6.25 15.08 6.25s10.91-2.08 15.08-6.248c8.332-8.332 8.333-21.83 .0012-30.17L316.3 286.2C289.5 259.3 308.5 213.3 346.5 213.3zM160 192C142.3 192 128 177.7 128 160c0-17.67 14.33-32 32-32s32 14.33 32 32C192 177.7 177.7 192 160 192zM240 224C231.2 224 224 216.8 224 208C224 199.2 231.2 192 240 192S256 199.2 256 208C256 216.8 248.8 224 240 224zM624 352h-12.12c-28.51 0-42.79-34.47-22.63-54.63l8.576-8.576c6.25-6.25 6.25-16.37 0-22.62s-16.38-6.253-22.62-.0031l-8.576 8.576C546.5 294.9 512 280.6 512 252.1V240C512 231.2 504.8 224 496 224S480 231.2 480 240v12.12c0 28.51-34.47 42.79-54.63 22.63l-8.576-8.576c-6.25-6.25-16.37-6.253-22.62-.0031s-6.253 16.38-.0031 22.63l8.576 8.576C422.9 317.5 408.6 352 380.1 352H368c-8.844 0-16 7.156-16 16s7.156 16 16 16h12.12c28.51 0 42.79 34.47 22.63 54.63l-8.576 8.576c-6.25 6.25-6.253 16.37-.0031 22.62c3.125 3.125 7.222 4.691 11.32 4.691s8.188-1.562 11.31-4.688l8.576-8.576C445.5 441.1 480 455.4 480 483.9V496c0 8.844 7.156 16 16 16s16-7.156 16-16v-12.12c0-28.51 34.47-42.79 54.63-22.63l8.576 8.576c3.125 3.125 7.219 4.688 11.31 4.688s8.184-1.559 11.31-4.684c6.25-6.25 6.253-16.38 .0031-22.63l-8.576-8.576C569.1 418.5 583.4 384 611.9 384H624c8.844 0 16-7.156 16-16S632.8 352 624 352zM480 384c-17.67 0-32-14.33-32-32c0-17.67 14.33-32 32-32s32 14.33 32 32C512 369.7 497.7 384 480 384z" - } - }, - "free": [ - "solid" - ] - }, - "vk": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f189", - "label": "VK", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M31.49 63.49C0 94.98 0 145.7 0 247V264.1C0 366.3 0 417 31.49 448.5C62.98 480 113.7 480 215 480H232.1C334.3 480 385 480 416.5 448.5C448 417 448 366.3 448 264.1V247C448 145.7 448 94.98 416.5 63.49C385 32 334.3 32 232.1 32H215C113.7 32 62.98 32 31.49 63.49zM75.6 168.3H126.7C128.4 253.8 166.1 289.1 196 297.4V168.3H244.2V242C273.7 238.8 304.6 205.2 315.1 168.3H363.3C359.3 187.4 351.5 205.6 340.2 221.6C328.9 237.6 314.5 251.1 297.7 261.2C316.4 270.5 332.9 283.6 346.1 299.8C359.4 315.9 369 334.6 374.5 354.7H321.4C316.6 337.3 306.6 321.6 292.9 309.8C279.1 297.9 262.2 290.4 244.2 288.1V354.7H238.4C136.3 354.7 78.03 284.7 75.6 168.3z" - } - }, - "free": [ - "brands" - ] - }, - "vnv": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f40b", - "label": "VNV", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1h32.8c20.8 0 10.4 18.1 10.4 18.1l-55.8 111.5S174.2 352 140 352h-35.1zm395 0c-34.1 0-46.4-30.4-46.4-30.4l-55.9-111.5S387.2 192 408 192h32.8c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1H627c20.8 0 10.4 18.1 10.4 18.1l-55.9 111.5S569.3 352 535.1 352h-35.2zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5s10.4 18.1-10.4 18.1h-32.8c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1c-15.9 0-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1h-32.9c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5s12.2-30.4 46.4-30.4h35.1z" - } - }, - "free": [ - "brands" - ] - }, - "voicemail": { - "changes": [ - "5.9.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f897", - "aliases": { - "unicodes": { - "secondary": [ - "10f897" - ] - } - }, - "label": "Voicemail", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M495.1 96c-53.13 0-102 29.25-127 76.13c-25 46.88-22.25 103.8 7.25 147.9H263.7c36.63-54.88 31.25-127.8-13-176.8c-44.38-48.87-116.4-61.37-174.6-30.25s-87.88 97.88-71.75 162c16 64 73.63 108.1 139.6 108.1h352C575.5 384 640 319.5 640 240S575.5 96 495.1 96zM63.99 240c0-44.12 35.88-80 80-80s80 35.88 80 80s-35.88 79.1-80 79.1S63.99 284.1 63.99 240zM495.1 320c-44.13 0-80-35.88-80-79.1s35.88-80 80-80s80 35.88 80 80S540.1 320 495.1 320z" - } - }, - "free": [ - "solid" - ] - }, - "volcano": { - "changes": [ - "5.5.0", - "5.10.2", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f770", - "aliases": { - "unicodes": { - "composite": [ - "1f30b" - ], - "secondary": [ - "10f770" - ] - } - }, - "label": "Volcano", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M304.4 224H207.6C197.7 224 188.5 228.5 182.4 236.3l-55.63 71l13.25 16.5C149.7 336 170.2 336 180.1 323.8c10.75-13.5 26.75-21.25 44.13-21.5c17.13-1.5 33.5 7 44.75 20l31.63 36.88c9.751 11.38 29.13 11.38 39 0l45.13-52.62l-55-70.25C323.5 228.5 314.3 224 304.4 224zM159.1 144c12.88 0 24.75-3.875 34.75-10.38L223.1 192h64l29.25-58.38C327.3 140.1 339.1 144 352 144c35.25 0 64-28.75 64-64s-28.75-64-64-64c-15.75 0-30 5.875-41.25 15.38C299.6 12.75 279.4 0 255.1 0C232.6 0 212.4 12.75 201.2 31.38C189.1 21.88 175.7 16 159.1 16c-35.25 0-64 28.75-64 64S124.7 144 159.1 144zM505.5 460.8l-100.8-128.6l-41 47.63C352.8 392.6 336.8 400 320 400s-32.75-7.25-43.75-20.25L244.6 343C239.7 337.3 232.6 334 225.1 334H224.7c-7.751 .25-14.88 3.75-19.63 9.75c-22.13 27.5-68.13 27.5-90.13 0l-8.376-10.62l-100.1 127.6C-9.397 481.9 5.727 512 32.1 512h447.9C506.3 512 521.4 481.9 505.5 460.8z" - } - }, - "free": [ - "solid" - ] - }, - "volleyball": { - "changes": [ - "5.0.5", - "5.8.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f45f", - "aliases": { - "names": [ - "volleyball-ball" - ], - "unicodes": { - "composite": [ - "1f3d0" - ], - "secondary": [ - "10f45f" - ] - } - }, - "label": "Volleyball Ball", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M200.3 106C185.4 80.24 165.2 53.9 137.4 29.26C55.75 72.05 0 157.4 0 256c0 21.33 2.898 41.94 7.814 61.75C53.59 182.1 155.1 124.9 200.3 106zM381.7 281.1c1.24-9.223 2.414-22.08 2.414-37.65c0-59.1-16.93-157.2-111.5-242.6C267.1 .4896 261.6 0 256 0C225.5 0 196.5 5.591 169.4 15.36c93.83 90.15 102.6 198.5 102.8 231.7C287.8 255.9 327.3 275.1 381.7 281.1zM240.1 246.5C239.1 228.5 236.9 184.7 214.9 134.6C173.6 151.6 60.4 211.7 26.67 369.2c15.66 31.64 37.52 59.66 64.22 82.23C122 325.1 211.5 263.3 240.1 246.5zM326.5 10.07c74.79 84.9 89.5 175.9 89.5 234c0 15.45-1.042 28.56-2.27 38.61l.5501 .0005c29.54 0 62.2-4.325 97.16-15.99C511.6 263.1 512 259.6 512 256C512 139.1 433.6 40.72 326.5 10.07zM255.7 274.5c-15.43 9.086-51.89 33.63-84.32 77.86c26.34 20.33 93.51 63.27 189.5 63.27c32.83 0 69.02-5.021 108.1-17.69c19.08-28.59 32.41-61.34 38.71-96.47C474.5 311.1 443 315 414.4 315C334.6 315 276.5 286.3 255.7 274.5zM153.1 379.3c-14.91 25.71-27.62 56.33-35.03 92.72C158.6 497.2 205.5 512 256 512c69 0 131.5-27.43 177.5-71.82c-25.42 5.105-49.71 7.668-72.38 7.668C258.6 447.8 185.5 402.1 153.1 379.3z" - } - }, - "free": [ - "solid" - ] - }, - "volume-high": { - "changes": [ - "1.0.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f028", - "aliases": { - "names": [ - "volume-up" - ], - "unicodes": { - "composite": [ - "1f50a" - ], - "secondary": [ - "10f028" - ] - } - }, - "label": "Volume high", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M412.6 182c-10.28-8.334-25.41-6.867-33.75 3.402c-8.406 10.24-6.906 25.35 3.375 33.74C393.5 228.4 400 241.8 400 255.1c0 14.17-6.5 27.59-17.81 36.83c-10.28 8.396-11.78 23.5-3.375 33.74c4.719 5.806 11.62 8.802 18.56 8.802c5.344 0 10.75-1.779 15.19-5.399C435.1 311.5 448 284.6 448 255.1S435.1 200.4 412.6 182zM473.1 108.2c-10.22-8.334-25.34-6.898-33.78 3.34c-8.406 10.24-6.906 25.35 3.344 33.74C476.6 172.1 496 213.3 496 255.1s-19.44 82.1-53.31 110.7c-10.25 8.396-11.75 23.5-3.344 33.74c4.75 5.775 11.62 8.771 18.56 8.771c5.375 0 10.75-1.779 15.22-5.431C518.2 366.9 544 313 544 255.1S518.2 145 473.1 108.2zM534.4 33.4c-10.22-8.334-25.34-6.867-33.78 3.34c-8.406 10.24-6.906 25.35 3.344 33.74C559.9 116.3 592 183.9 592 255.1s-32.09 139.7-88.06 185.5c-10.25 8.396-11.75 23.5-3.344 33.74C505.3 481 512.2 484 519.2 484c5.375 0 10.75-1.779 15.22-5.431C601.5 423.6 640 342.5 640 255.1S601.5 88.34 534.4 33.4zM301.2 34.98c-11.5-5.181-25.01-3.076-34.43 5.29L131.8 160.1H48c-26.51 0-48 21.48-48 47.96v95.92c0 26.48 21.49 47.96 48 47.96h83.84l134.9 119.8C272.7 477 280.3 479.8 288 479.8c4.438 0 8.959-.9314 13.16-2.835C312.7 471.8 320 460.4 320 447.9V64.12C320 51.55 312.7 40.13 301.2 34.98z" - } - }, - "free": [ - "solid" - ] - }, - "volume-low": { - "changes": [ - "1.0.0", - "5.0.0", - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f027", - "aliases": { - "names": [ - "volume-down" - ], - "unicodes": { - "composite": [ - "1f508" - ], - "secondary": [ - "10f027" - ] - } - }, - "label": "Volume low", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M412.6 181.9c-10.28-8.344-25.41-6.875-33.75 3.406c-8.406 10.25-6.906 25.37 3.375 33.78C393.5 228.4 400 241.8 400 256c0 14.19-6.5 27.62-17.81 36.87c-10.28 8.406-11.78 23.53-3.375 33.78c4.719 5.812 11.62 8.812 18.56 8.812c5.344 0 10.75-1.781 15.19-5.406C435.1 311.6 448 284.7 448 256S435.1 200.4 412.6 181.9zM301.2 34.84c-11.5-5.187-25.01-3.116-34.43 5.259L131.8 160H48c-26.51 0-48 21.49-48 47.1v95.1c0 26.51 21.49 47.1 48 47.1h83.84l134.9 119.9C272.7 477.2 280.3 480 288 480c4.438 0 8.959-.9313 13.16-2.837C312.7 472 320 460.6 320 448V64C320 51.41 312.7 39.1 301.2 34.84z" - } - }, - "free": [ - "solid" - ] - }, - "volume-off": { - "changes": [ - "1.0.0", - "5.0.0", - "5.3.0", - "5.8.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f026", - "aliases": { - "unicodes": { - "secondary": [ - "10f026" - ] - } - }, - "label": "Volume Off", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573351, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M320 64v383.1c0 12.59-7.337 24.01-18.84 29.16C296.1 479.1 292.4 480 288 480c-7.688 0-15.28-2.781-21.27-8.094l-134.9-119.9H48c-26.51 0-48-21.49-48-47.1V208c0-26.51 21.49-47.1 48-47.1h83.84l134.9-119.9c9.422-8.375 22.93-10.45 34.43-5.259C312.7 39.1 320 51.41 320 64z" - } - }, - "free": [ - "solid" - ] - }, - "volume-xmark": { - "changes": [ - "5.3.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6a9", - "aliases": { - "names": [ - "volume-mute", - "volume-times" - ], - "unicodes": { - "secondary": [ - "10f6a9" - ] - } - }, - "label": "Volume X Mark", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M301.2 34.85c-11.5-5.188-25.02-3.122-34.44 5.253L131.8 160H48c-26.51 0-48 21.49-48 47.1v95.1c0 26.51 21.49 47.1 48 47.1h83.84l134.9 119.9c5.984 5.312 13.58 8.094 21.26 8.094c4.438 0 8.972-.9375 13.17-2.844c11.5-5.156 18.82-16.56 18.82-29.16V64C319.1 51.41 312.7 40 301.2 34.85zM513.9 255.1l47.03-47.03c9.375-9.375 9.375-24.56 0-33.94s-24.56-9.375-33.94 0L480 222.1L432.1 175c-9.375-9.375-24.56-9.375-33.94 0s-9.375 24.56 0 33.94l47.03 47.03l-47.03 47.03c-9.375 9.375-9.375 24.56 0 33.94c9.373 9.373 24.56 9.381 33.94 0L480 289.9l47.03 47.03c9.373 9.373 24.56 9.381 33.94 0c9.375-9.375 9.375-24.56 0-33.94L513.9 255.1z" - } - }, - "free": [ - "solid" - ] - }, - "vr-cardboard": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f729", - "aliases": { - "unicodes": { - "secondary": [ - "10f729" - ] - } - }, - "label": "Cardboard VR", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M576 64H64c-35.2 0-64 28.8-64 64v256c0 35.2 28.8 64 64 64l128.3 .0001c25.18 0 48.03-14.77 58.37-37.73l27.76-61.65c7.875-17.5 24-28.63 41.63-28.63s33.75 11.13 41.63 28.63l27.75 61.63c10.35 22.98 33.2 37.75 58.4 37.75L576 448c35.2 0 64-28.8 64-64v-256C640 92.8 611.2 64 576 64zM160 304c-35.38 0-64-28.63-64-64s28.62-63.1 64-63.1s64 28.62 64 63.1S195.4 304 160 304zM480 304c-35.38 0-64-28.63-64-64s28.62-63.1 64-63.1s64 28.62 64 63.1S515.4 304 480 304z" - } - }, - "free": [ - "solid" - ] - }, - "vuejs": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f41f", - "label": "Vue.js", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M356.9 64.3H280l-56 88.6-48-88.6H0L224 448 448 64.3h-91.1zm-301.2 32h53.8L224 294.5 338.4 96.3h53.8L224 384.5 55.7 96.3z" - } - }, - "free": [ - "brands" - ] - }, - "w": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "57", - "aliases": { - "unicodes": { - "composite": [ - "77" - ] - } - }, - "label": "W", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M573.1 75.25l-144 384c-4.703 12.53-16.67 20.77-29.95 20.77c-.4062 0-.8125 0-1.219-.0156c-13.77-.5156-25.66-9.797-29.52-23.03L288 178.3l-81.28 278.7c-3.859 13.23-15.75 22.52-29.52 23.03c-13.75 .4687-26.33-7.844-31.17-20.75l-144-384c-6.203-16.55 2.188-34.98 18.73-41.2C37.31 27.92 55.75 36.23 61.97 52.78l110.2 293.1l85.08-291.7C261.3 41.41 273.8 32.01 288 32.01s26.73 9.396 30.72 23.05l85.08 291.7l110.2-293.1c6.219-16.55 24.67-24.86 41.2-18.73C571.8 40.26 580.2 58.7 573.1 75.25z" - } - }, - "free": [ - "solid" - ] - }, - "walkie-talkie": { - "changes": [ - "5.11.0", - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f8ef", - "aliases": { - "unicodes": { - "secondary": [ - "10f8ef" - ] - } - }, - "label": "Walkie Talkie", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M352 96h-32V80C320 71.16 312.8 64 304 64h-32C263.2 64 256 71.16 256 80V96h-32V80C224 71.16 216.8 64 208 64h-32C167.2 64 160 71.16 160 80V96H112V23.1C112 10.74 101.3 0 88 0S64 10.74 64 23.1V96H32C14.4 96 0 110.4 0 128v178.7c0 8.484 3.373 16.62 9.371 22.62L32 352v112C32 490.5 53.49 512 80 512h224c26.51 0 48-21.49 48-48V352l22.63-22.63C380.6 323.4 384 315.2 384 306.7V128C384 110.4 369.6 96 352 96zM288 312C288 316.4 284.4 320 280 320h-176C99.63 320 96 316.4 96 312v-16C96 291.6 99.63 288 104 288h176C284.4 288 288 291.6 288 296V312zM288 248C288 252.4 284.4 256 280 256h-176C99.63 256 96 252.4 96 248v-16C96 227.6 99.63 224 104 224h176C284.4 224 288 227.6 288 232V248zM288 184C288 188.4 284.4 192 280 192h-176C99.63 192 96 188.4 96 184v-16C96 163.6 99.63 160 104 160h176C284.4 160 288 163.6 288 168V184z" - } - }, - "free": [ - "solid" - ] - }, - "wallet": { - "changes": [ - "5.0.13", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f555", - "aliases": { - "unicodes": { - "secondary": [ - "10f555" - ] - } - }, - "label": "Wallet", - "voted": true, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 32C465.7 32 480 46.33 480 64C480 81.67 465.7 96 448 96H80C71.16 96 64 103.2 64 112C64 120.8 71.16 128 80 128H448C483.3 128 512 156.7 512 192V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM416 336C433.7 336 448 321.7 448 304C448 286.3 433.7 272 416 272C398.3 272 384 286.3 384 304C384 321.7 398.3 336 416 336z" - } - }, - "free": [ - "solid" - ] - }, - "wand-magic": { - "changes": [ - "2.0.0", - "5.0.0", - "5.1.0", - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0d0", - "aliases": { - "names": [ - "magic" - ], - "unicodes": { - "secondary": [ - "10f0d0" - ] - } - }, - "label": "Wand magic", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M14.06 463.3C-4.686 444.6-4.686 414.2 14.06 395.4L395.4 14.06C414.2-4.686 444.6-4.686 463.3 14.06L497.9 48.64C516.6 67.38 516.6 97.78 497.9 116.5L116.5 497.9C97.78 516.6 67.38 516.6 48.64 497.9L14.06 463.3zM347.6 187.6L452.6 82.58L429.4 59.31L324.3 164.3L347.6 187.6z" - } - }, - "free": [ - "solid" - ] - }, - "wand-magic-sparkles": { - "changes": [ - "6.0.0-beta1", - "6.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e2ca", - "aliases": { - "names": [ - "magic-wand-sparkles" - ] - }, - "label": "Wand magic sparkles", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M248.8 4.994C249.9 1.99 252.8 .0001 256 .0001C259.2 .0001 262.1 1.99 263.2 4.994L277.3 42.67L315 56.79C318 57.92 320 60.79 320 64C320 67.21 318 70.08 315 71.21L277.3 85.33L263.2 123C262.1 126 259.2 128 256 128C252.8 128 249.9 126 248.8 123L234.7 85.33L196.1 71.21C193.1 70.08 192 67.21 192 64C192 60.79 193.1 57.92 196.1 56.79L234.7 42.67L248.8 4.994zM427.4 14.06C446.2-4.686 476.6-4.686 495.3 14.06L529.9 48.64C548.6 67.38 548.6 97.78 529.9 116.5L148.5 497.9C129.8 516.6 99.38 516.6 80.64 497.9L46.06 463.3C27.31 444.6 27.31 414.2 46.06 395.4L427.4 14.06zM461.4 59.31L356.3 164.3L379.6 187.6L484.6 82.58L461.4 59.31zM7.491 117.2L64 96L85.19 39.49C86.88 34.98 91.19 32 96 32C100.8 32 105.1 34.98 106.8 39.49L128 96L184.5 117.2C189 118.9 192 123.2 192 128C192 132.8 189 137.1 184.5 138.8L128 160L106.8 216.5C105.1 221 100.8 224 96 224C91.19 224 86.88 221 85.19 216.5L64 160L7.491 138.8C2.985 137.1 0 132.8 0 128C0 123.2 2.985 118.9 7.491 117.2zM359.5 373.2L416 352L437.2 295.5C438.9 290.1 443.2 288 448 288C452.8 288 457.1 290.1 458.8 295.5L480 352L536.5 373.2C541 374.9 544 379.2 544 384C544 388.8 541 393.1 536.5 394.8L480 416L458.8 472.5C457.1 477 452.8 480 448 480C443.2 480 438.9 477 437.2 472.5L416 416L359.5 394.8C354.1 393.1 352 388.8 352 384C352 379.2 354.1 374.9 359.5 373.2z" - } - }, - "free": [ - "solid" - ] - }, - "wand-sparkles": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f72b", - "aliases": { - "unicodes": { - "secondary": [ - "10f72b" - ] - } - }, - "label": "Wand sparkles", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M3.682 149.1L53.32 170.7L74.02 220.3c1.016 2.043 3.698 3.696 5.977 3.696c.0078 0-.0078 0 0 0c2.271-.0156 4.934-1.661 5.946-3.696l20.72-49.63l49.62-20.71c2.023-1.008 3.68-3.681 3.691-5.947C159.1 141.7 158.3 139 156.3 138L106.9 117.4L106.5 117L85.94 67.7C84.93 65.66 82.27 64.02 80 64c-.0078 0 .0078 0 0 0c-2.279 0-4.966 1.649-5.981 3.692L53.32 117.3L3.682 138C1.652 139.1 0 141.7 0 144C0 146.3 1.652 148.9 3.682 149.1zM511.1 368c-.0039-2.273-1.658-4.95-3.687-5.966l-49.57-20.67l-20.77-49.67C436.9 289.7 434.3 288 432 288c-2.281 0-4.948 1.652-5.964 3.695l-20.7 49.63l-49.64 20.71c-2.027 1.016-3.684 3.683-3.687 5.956c.0039 2.262 1.662 4.954 3.687 5.966l49.57 20.67l20.77 49.67C427.1 446.3 429.7 448 432 448c2.277 0 4.944-1.656 5.96-3.699l20.69-49.63l49.65-20.71C510.3 372.9 511.1 370.3 511.1 368zM207.1 64l12.42 29.78C221 95.01 222.6 96 223.1 96s2.965-.9922 3.575-2.219L239.1 64l29.78-12.42c1.219-.6094 2.215-2.219 2.215-3.578c0-1.367-.996-2.969-2.215-3.578L239.1 32L227.6 2.219C226.1 .9922 225.4 0 223.1 0S221 .9922 220.4 2.219L207.1 32L178.2 44.42C176.1 45.03 176 46.63 176 48c0 1.359 .9928 2.969 2.21 3.578L207.1 64zM399.1 191.1c8.875 0 15.1-7.127 15.1-16v-28l91.87-101.7c5.75-6.371 5.5-15.1-.4999-22.12L487.8 4.774c-6.125-6.125-15.75-6.375-22.12-.625L186.6 255.1H144c-8.875 0-15.1 7.125-15.1 15.1v36.88l-117.5 106c-13.5 12.25-14.14 33.34-1.145 46.34l41.4 41.41c12.1 12.1 34.13 12.36 46.37-1.133l279.2-309.5H399.1z" - } - }, - "free": [ - "solid" - ] - }, - "warehouse": { - "changes": [ - "5.0.7", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f494", - "aliases": { - "unicodes": { - "secondary": [ - "10f494" - ] - } - }, - "label": "Warehouse", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573352, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M0 488V171.3C0 145.2 15.93 121.6 40.23 111.9L308.1 4.753C315.7 1.702 324.3 1.702 331.9 4.753L599.8 111.9C624.1 121.6 640 145.2 640 171.3V488C640 501.3 629.3 512 616 512H568C554.7 512 544 501.3 544 488V223.1C544 206.3 529.7 191.1 512 191.1H128C110.3 191.1 96 206.3 96 223.1V488C96 501.3 85.25 512 72 512H24C10.75 512 0 501.3 0 488zM152 512C138.7 512 128 501.3 128 488V432H512V488C512 501.3 501.3 512 488 512H152zM128 336H512V400H128V336zM128 224H512V304H128V224z" - } - }, - "free": [ - "solid" - ] - }, - "watchman-monitoring": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e087", - "label": "Watchman Monitoring", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 16C123.5 16 16 123.5 16 256S123.5 496 256 496 496 388.5 496 256 388.5 16 256 16zM121.7 429.1C70.06 388.1 36.74 326.3 36.74 256a218.5 218.5 0 0 1 9.587-64.12l102.9-17.9-.121 10.97-13.94 2.013s-.144 12.5-.144 19.55a12.78 12.78 0 0 0 4.887 10.35l9.468 7.4zm105.7-283.3 8.48-7.618s6.934-5.38-.143-9.344c-7.188-4.024-39.53-34.5-39.53-34.5-5.348-5.477-8.257-7.347-15.46 0 0 0-32.34 30.47-39.53 34.5-7.078 3.964-.144 9.344-.144 9.344l8.481 7.618-.048 4.369L75.98 131c39.64-56.94 105.5-94.3 180-94.3A218.8 218.8 0 0 1 420.9 111.8l-193.5 37.7zm34.06 329.3-33.9-250.9 9.467-7.4a12.78 12.78 0 0 0 4.888-10.35c0-7.044-.144-19.55-.144-19.55l-13.94-2.013-.116-10.47 241.7 31.39A218.9 218.9 0 0 1 475.3 256C475.3 375.1 379.8 472.2 261.4 475.1z" - } - }, - "free": [ - "brands" - ] - }, - "water": { - "changes": [ - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f773", - "aliases": { - "unicodes": { - "secondary": [ - "10f773" - ] - } - }, - "label": "Water", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573353, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M549.8 237.5c-31.23-5.719-46.84-20.06-47.13-20.31C490.4 205 470.3 205.1 457.7 216.8c-1 .9375-25.14 23-73.73 23s-72.73-22.06-73.38-22.62C298.4 204.9 278.3 205.1 265.7 216.8c-1 .9375-25.14 23-73.73 23S119.3 217.8 118.6 217.2C106.4 204.9 86.35 205 73.74 216.9C73.09 217.4 57.48 231.8 26.24 237.5c-17.38 3.188-28.89 19.84-25.72 37.22c3.188 17.38 19.78 29.09 37.25 25.72C63.1 295.8 82.49 287.1 95.96 279.2c19.5 11.53 51.47 24.68 96.04 24.68c44.55 0 76.49-13.12 96-24.65c19.52 11.53 51.45 24.59 96 24.59c44.58 0 76.55-13.09 96.05-24.62c13.47 7.938 32.86 16.62 58.19 21.25c17.56 3.375 34.06-8.344 37.25-25.72C578.7 257.4 567.2 240.7 549.8 237.5zM549.8 381.7c-31.23-5.719-46.84-20.06-47.13-20.31c-12.22-12.19-32.31-12.12-44.91-.375C456.7 361.9 432.6 384 384 384s-72.73-22.06-73.38-22.62c-12.22-12.25-32.3-12.12-44.89-.375C264.7 361.9 240.6 384 192 384s-72.73-22.06-73.38-22.62c-12.22-12.25-32.28-12.16-44.89-.3438c-.6562 .5938-16.27 14.94-47.5 20.66c-17.38 3.188-28.89 19.84-25.72 37.22C3.713 436.3 20.31 448 37.78 444.6C63.1 440 82.49 431.3 95.96 423.4c19.5 11.53 51.51 24.62 96.08 24.62c44.55 0 76.45-13.06 95.96-24.59C307.5 434.9 339.5 448 384.1 448c44.58 0 76.5-13.09 95.1-24.62c13.47 7.938 32.86 16.62 58.19 21.25C555.8 448 572.3 436.3 575.5 418.9C578.7 401.5 567.2 384.9 549.8 381.7zM37.78 156.4c25.33-4.625 44.72-13.31 58.19-21.25c19.5 11.53 51.47 24.68 96.04 24.68c44.55 0 76.49-13.12 96-24.65c19.52 11.53 51.45 24.59 96 24.59c44.58 0 76.55-13.09 96.05-24.62c13.47 7.938 32.86 16.62 58.19 21.25c17.56 3.375 34.06-8.344 37.25-25.72c3.172-17.38-8.344-34.03-25.72-37.22c-31.23-5.719-46.84-20.06-47.13-20.31c-12.22-12.19-32.31-12.12-44.91-.375c-1 .9375-25.14 23-73.73 23s-72.73-22.06-73.38-22.62c-12.22-12.25-32.3-12.12-44.89-.375c-1 .9375-25.14 23-73.73 23S119.3 73.76 118.6 73.2C106.4 60.95 86.35 61.04 73.74 72.85C73.09 73.45 57.48 87.79 26.24 93.51c-17.38 3.188-28.89 19.84-25.72 37.22C3.713 148.1 20.31 159.8 37.78 156.4z" - } - }, - "free": [ - "solid" - ] - }, - "water-ladder": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5c5", - "aliases": { - "names": [ - "ladder-water", - "swimming-pool" - ], - "unicodes": { - "secondary": [ - "10f5c5" - ] - } - }, - "label": "Water ladder", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573353, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M320 128c0 .375-.1992 .6855-.2129 1.057C319.8 129.9 320 130.7 320 131.6V128zM192 383.1V288h192v95.99c39.6-.1448 53.95-17.98 64-26.83V128c0-17.62 14.38-32 32-32s32 14.38 32 32c0 17.67 14.33 32 32 32s32-14.33 32-32c0-53-42.1-95.1-95.1-95.1C420.1 32 384 81.94 384 131.6V224H192V128c0-17.62 14.38-32 32-32s32 14.38 32 32c0 17.67 14.33 32 32 32c17.3 0 31.2-13.79 31.79-30.94c-1.227-49.01-37.99-97.06-95.79-97.06C170.1 32 128 74.1 128 128v229.2C138.5 366.4 151.4 383.8 192 383.1zM576 445c0-15.14-10.82-28.59-26.25-31.42c-48.52-8.888-45.5-29.48-69.6-29.48c-25.02 0-31.19 31.79-96.18 31.79c-48.59 0-72.72-22.06-73.38-22.62c-6.141-6.157-14.26-9.188-22.42-9.188c-24.75 0-31.59 31.81-96.2 31.81c-48.59 0-72.69-22.03-73.41-22.59c-6.125-6.157-14.24-9.196-22.4-9.196c-8.072 0-16.18 2.976-22.45 8.852c-29.01 26.25-73.75 12.54-73.75 52.08c0 16.08 12.77 32.07 31.71 32.07c9.77 0 39.65-7.34 64.26-21.84c19.5 11.53 51.51 24.69 96.08 24.69s76.46-13.12 95.96-24.66c19.53 11.53 51.52 24.62 96.06 24.62c44.59 0 76.51-13.12 96.01-24.66c24.71 14.57 54.74 21.83 64.24 21.83C563.2 477.1 576 461.3 576 445z" - } - }, - "free": [ - "solid" - ] - }, - "wave-square": { - "changes": [ - "5.8.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f83e", - "aliases": { - "unicodes": { - "secondary": [ - "10f83e" - ] - } - }, - "label": "Square Wave", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573353, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M476 480h-152c-19.88 0-36-16.12-36-36v-348H192v156c0 19.88-16.12 36-36 36H31.1C14.33 288 0 273.7 0 256s14.33-31.1 31.1-31.1H128v-156c0-19.88 16.12-36 36-36h152c19.88 0 36 16.12 36 36v348h96v-156c0-19.88 16.12-36 36-36h124C625.7 224 640 238.3 640 256s-14.33 32-31.1 32H512v156C512 463.9 495.9 480 476 480z" - } - }, - "free": [ - "solid" - ] - }, - "waze": { - "changes": [ - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f83f", - "label": "Waze", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M502.2 201.7C516.7 287.5 471.2 369.6 389 409.8c13 34.1-12.4 70.2-48.32 70.2a51.68 51.68 0 0 1 -51.57-49c-6.44 .19-64.2 0-76.33-.64A51.69 51.69 0 0 1 159 479.9c-33.86-1.36-57.95-34.84-47-67.92-37.21-13.11-72.54-34.87-99.62-70.8-13-17.28-.48-41.8 20.84-41.8 46.31 0 32.22-54.17 43.15-110.3C94.8 95.2 193.1 32 288.1 32c102.5 0 197.1 70.67 214.1 169.7zM373.5 388.3c42-19.18 81.33-56.71 96.29-102.1 40.48-123.1-64.15-228-181.7-228-83.45 0-170.3 55.42-186.1 136-9.53 48.91 5 131.4-68.75 131.4C58.21 358.6 91.6 378.1 127 389.5c24.66-21.8 63.87-15.47 79.83 14.34 14.22 1 79.19 1.18 87.9 .82a51.69 51.69 0 0 1 78.78-16.42zM205.1 187.1c0-34.74 50.84-34.75 50.84 0s-50.84 34.74-50.84 0zm116.6 0c0-34.74 50.86-34.75 50.86 0s-50.86 34.75-50.86 0zm-122.6 70.69c-3.44-16.94 22.18-22.18 25.62-5.21l.06 .28c4.14 21.42 29.85 44 64.12 43.07 35.68-.94 59.25-22.21 64.11-42.77 4.46-16.05 28.6-10.36 25.47 6-5.23 22.18-31.21 62-91.46 62.9-42.55 0-80.88-27.84-87.9-64.25z" - } - }, - "free": [ - "brands" - ] - }, - "weebly": { - "changes": [ - "5.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5cc", - "label": "Weebly", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M425.1 65.83c-39.88 0-73.28 25.73-83.66 64.33-18.16-58.06-65.5-64.33-84.95-64.33-19.78 0-66.8 6.28-85.28 64.33-10.38-38.6-43.45-64.33-83.66-64.33C38.59 65.83 0 99.72 0 143c0 28.96 4.18 33.27 77.17 233.5 22.37 60.57 67.77 69.35 92.74 69.35 39.23 0 70.04-19.46 85.93-53.98 15.89 34.83 46.69 54.29 85.93 54.29 24.97 0 70.36-9.1 92.74-69.67 76.55-208.6 77.5-205.6 77.5-227.2 .63-48.32-36.01-83.47-86.92-83.47zm26.34 114.8l-65.57 176.4c-7.92 21.49-21.22 37.22-46.24 37.22-23.44 0-37.38-12.41-44.03-33.9l-39.28-117.4h-.95L216.1 360.4c-6.96 21.5-20.9 33.6-44.02 33.6-25.02 0-38.33-15.74-46.24-37.22L60.88 181.6c-5.38-14.83-7.92-23.91-7.92-34.5 0-16.34 15.84-29.36 38.33-29.36 18.69 0 31.99 11.8 36.11 29.05l44.03 139.8h.95l44.66-136.8c6.02-19.67 16.47-32.08 38.96-32.08s32.94 12.11 38.96 32.08l44.66 136.8h.95l44.03-139.8c4.12-17.25 17.42-29.05 36.11-29.05 22.17 0 38.33 13.32 38.33 35.71-.32 7.87-4.12 16.04-7.61 27.24z" - } - }, - "free": [ - "brands" - ] - }, - "weibo": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f18a", - "label": "Weibo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7C108.5 446.7 0 395.3 0 310.4c0-44.3 28-95.4 76.3-143.7C176 67 279.5 65.8 249.9 161c-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zm143.7-146.3c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8 .3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4 .6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z" - } - }, - "free": [ - "brands" - ] - }, - "weight-hanging": { - "changes": [ - "5.1.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5cd", - "aliases": { - "unicodes": { - "secondary": [ - "10f5cd" - ] - } - }, - "label": "Hanging Weight", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573354, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M510.3 445.9L437.3 153.8C433.5 138.5 420.8 128 406.4 128H346.1c3.625-9.1 5.875-20.75 5.875-32c0-53-42.1-96-96-96S159.1 43 159.1 96c0 11.25 2.25 22 5.875 32H105.6c-14.38 0-27.13 10.5-30.88 25.75l-73.01 292.1C-6.641 479.1 16.36 512 47.99 512h416C495.6 512 518.6 479.1 510.3 445.9zM256 128C238.4 128 223.1 113.6 223.1 96S238.4 64 256 64c17.63 0 32 14.38 32 32S273.6 128 256 128z" - } - }, - "free": [ - "solid" - ] - }, - "weight-scale": { - "changes": [ - "5.0.7", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f496", - "aliases": { - "names": [ - "weight" - ], - "unicodes": { - "secondary": [ - "10f496" - ] - } - }, - "label": "Weight scale", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573354, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M310.3 97.25c-8-3.5-17.5 .25-21 8.5L255.8 184C233.8 184.3 216 202 216 224c0 22.12 17.88 40 40 40S296 246.1 296 224c0-10.5-4.25-20-11-27.12l33.75-78.63C322.3 110.1 318.4 100.8 310.3 97.25zM448 64h-56.23C359.5 24.91 310.7 0 256 0S152.5 24.91 120.2 64H64C28.75 64 0 92.75 0 128v320c0 35.25 28.75 64 64 64h384c35.25 0 64-28.75 64-64V128C512 92.75 483.3 64 448 64zM256 304c-70.58 0-128-57.42-128-128s57.42-128 128-128c70.58 0 128 57.42 128 128S326.6 304 256 304z" - } - }, - "free": [ - "solid" - ] - }, - "weixin": { - "changes": [ - "4.1.0", - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1d7", - "label": "Weixin (WeChat)", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M385.2 167.6c6.4 0 12.6 .3 18.8 1.1C387.4 90.3 303.3 32 207.7 32 100.5 32 13 104.8 13 197.4c0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zm-104.5-52.9c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2 .1-14.7 14.6-24.4 29.3-24.4zm-136.4 48.6c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zm-219.1-24.5c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3 .1 10-9.9 19.6-24.4 19.6z" - } - }, - "free": [ - "brands" - ] - }, - "whatsapp": { - "changes": [ - "4.3.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f232", - "label": "What's App", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M380.9 97.1C339 55.1 283.2 32 223.9 32c-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480l117.7-30.9c32.4 17.7 68.9 27 106.1 27h.1c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3L72 359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1 34.8 34.9 56.2 81.2 56.1 130.5 0 101.8-84.9 184.6-186.6 184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8-3.7 5.6-14.3 18-17.6 21.8-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7 0-9.7 1.4-14.8 6.9-5.1 5.6-19.4 19-19.4 46.3 0 27.3 19.9 53.7 22.6 57.4 2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4 4.6-13 4.6-24.1 3.2-26.4-1.3-2.5-5-3.9-10.5-6.6z" - } - }, - "free": [ - "brands" - ] - }, - "wheat-awn": { - "changes": [ - "6.0.0-beta1", - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e2cd", - "aliases": { - "names": [ - "wheat-alt" - ] - }, - "label": "Wheat awn", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573354, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M416.1 128.1C407.6 138.3 392.4 138.3 383 128.1C373.7 119.6 373.7 104.4 383 95.03L471 7.029C480.4-2.343 495.6-2.343 504.1 7.029C514.3 16.4 514.3 31.6 504.1 40.97L416.1 128.1zM316.8 38.63C321.3 43.15 325.4 47.94 329.1 52.93L375 7.029C384.4-2.343 399.6-2.343 408.1 7.029C418.3 16.4 418.3 31.6 408.1 40.97L350.7 99.2C355.9 120.7 355.4 143.2 349.3 164.5C369.6 158.7 391.1 157.1 411.7 162.4L471 103C480.4 93.66 495.6 93.66 504.1 103C514.3 112.4 514.3 127.6 504.1 136.1L458.8 183.1C464.5 187.2 470 191.9 475.2 197L486.5 208.3C492.7 214.6 492.7 224.7 486.5 230.1L475.2 242.3C437.7 279.8 376.9 279.8 339.4 242.3L327.2 230.1L295.3 261.1C323.8 264.7 351.5 277 373.4 298.8L384.7 310.2C390.9 316.4 390.9 326.5 384.7 332.8L373.4 344.1C335.9 381.6 275.1 381.6 237.6 344.1L225.4 331.9L193.5 363.8C221.1 366.5 249.7 378.8 271.5 400.7L282.8 411.1C289.1 418.2 289.1 428.4 282.8 434.6L271.5 445.9C234 483.4 173.3 483.4 135.8 445.9L123.5 433.7L54.63 502.6C42.13 515.1 21.87 515.1 9.372 502.6C-3.124 490.1-3.124 469.9 9.372 457.4L78.29 388.5L67.88 378C30.39 340.6 30.39 279.8 67.88 242.3L79.2 230.1C85.44 224.7 95.57 224.7 101.8 230.1L113.1 242.3C134.1 263.3 146.3 289.7 149.7 317.1L180.1 286.6L169.7 276.2C132.2 238.7 132.2 177.9 169.7 140.5L181 129.1C187.3 122.9 197.4 122.9 203.6 129.1L214.1 140.5C235.1 161.4 248.1 187.9 251.5 215.3L281.9 184.8L271.5 174.4C234 136.9 234 76.12 271.5 38.63L282.8 27.31C289.1 21.07 299.2 21.07 305.5 27.31L316.8 38.63z" - } - }, - "free": [ - "solid" - ] - }, - "wheat-awn-circle-exclamation": { - "changes": [ - "6.1.0", - "6.1.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e598", - "label": "Wheat Awn-circle-exclamation", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573354, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M416.1 128.1C407.6 138.3 392.4 138.3 383 128.1C373.7 119.6 373.7 104.4 383 95.03L471 7.029C480.4-2.343 495.6-2.343 504.1 7.029C514.3 16.4 514.3 31.6 504.1 40.97L416.1 128.1zM316.8 38.63C321.3 43.15 325.4 47.94 329.1 52.93L375 7.029C384.4-2.343 399.6-2.343 408.1 7.029C418.3 16.4 418.3 31.6 408.1 40.97L350.7 99.2C355.9 120.7 355.4 143.2 349.3 164.5C369.6 158.7 391.1 157.1 411.7 162.4L471 103C480.4 93.66 495.6 93.66 504.1 103C514.3 112.4 514.3 127.6 504.1 136.1L458.8 183.1C463.3 186.3 467.6 189.8 471.7 193.7C426.3 199.9 386.5 223.5 359.1 257.4C352 253.3 345.4 248.3 339.4 242.3L327.2 230.1L295.3 261.1C312.5 263.6 329.5 268.8 345 277.4C329.1 303.9 320 334.9 320 368C320 369 320 370.1 320 371.1C290.9 375.6 260 366.6 237.6 344.1L225.4 331.9L193.5 363.8C221.1 366.5 249.7 378.8 271.5 400.7L282.8 411.1C289.1 418.2 289.1 428.4 282.8 434.6L271.5 445.9C234 483.4 173.3 483.4 135.8 445.9L123.5 433.7L54.63 502.6C42.13 515.1 21.87 515.1 9.372 502.6C-3.124 490.1-3.124 469.9 9.372 457.4L78.29 388.5L67.88 378C30.39 340.6 30.39 279.8 67.88 242.3L79.2 230.1C85.44 224.7 95.57 224.7 101.8 230.1L113.1 242.3C134.1 263.3 146.3 289.7 149.7 317.1L180.1 286.6L169.7 276.2C132.2 238.7 132.2 177.9 169.7 140.5L181 129.1C187.3 122.9 197.4 122.9 203.6 129.1L214.1 140.5C235.1 161.4 248.1 187.9 251.5 215.3L281.9 184.8L271.5 174.4C234 136.9 234 76.12 271.5 38.63L282.8 27.31C289.1 21.06 299.2 21.06 305.5 27.31L316.8 38.63zM352 368C352 288.5 416.5 224 496 224C575.5 224 640 288.5 640 368C640 447.5 575.5 512 496 512C416.5 512 352 447.5 352 368zM496 464C509.3 464 520 453.3 520 440C520 426.7 509.3 416 496 416C482.7 416 472 426.7 472 440C472 453.3 482.7 464 496 464zM479.1 288V368C479.1 376.8 487.2 384 495.1 384C504.8 384 511.1 376.8 511.1 368V288C511.1 279.2 504.8 272 495.1 272C487.2 272 479.1 279.2 479.1 288z" - } - }, - "free": [ - "solid" - ] - }, - "wheelchair": { - "changes": [ - "4.0.0", - "5.0.0", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f193", - "aliases": { - "unicodes": { - "secondary": [ - "10f193" - ] - } - }, - "label": "Wheelchair", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573354, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M510.3 421.9c-5.594-16.75-23.53-25.84-40.47-20.22l-19.38 6.438l-41.7-99.97C403.9 295.1 392.2 288 379.1 288h-97.78l-10.4-48h65.11c17.69 0 32-14.31 32-32s-14.31-32-32-32h-78.98L255.6 169.2C251.8 142.1 227.2 124.8 201.2 128.5C174.1 132.2 156.7 156.5 160.5 182.8l23.68 140.4C185.8 339.6 199.6 352 216 352h141.4l44.86 107.9C407.3 472.3 419.3 480 432 480c3.344 0 6.781-.5313 10.12-1.656l48-16C506.9 456.8 515.9 438.7 510.3 421.9zM160 464c-61.76 0-112-50.24-112-112c0-54.25 38.78-99.55 90.06-109.8L130.1 195C56.06 209 0 273.9 0 352c0 88.37 71.63 160 160 160c77.4 0 141.9-54.97 156.8-128h-49.1C252.9 430.1 210.6 464 160 464zM192 96c26.51 0 48-21.49 48-48S218.5 0 192 0S144 21.49 144 48S165.5 96 192 96z" - } - }, - "free": [ - "solid" - ] - }, - "wheelchair-move": { - "changes": [ - "6.0.0-beta1", - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e2ce", - "aliases": { - "names": [ - "wheelchair-alt" - ] - }, - "label": "Wheelchair Move", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573354, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M416 48C416 74.51 394.5 96 368 96C341.5 96 320 74.51 320 48C320 21.49 341.5 0 368 0C394.5 0 416 21.49 416 48zM172.8 54.4C182.3 47.29 194.9 46 205.6 51.05L322.1 105.9C351.3 119.6 358.9 157.5 337.4 181.4L299.1 224H416C425.6 224 434.7 228.3 440.7 235.7C446.8 243.1 449.3 252.9 447.4 262.3L415.4 422.3C411.9 439.6 395.1 450.8 377.7 447.4C360.4 443.9 349.2 427.1 352.6 409.7L376.1 288H306.7C315.3 307.6 320 329.2 320 352C320 440.4 248.4 512 160 512C71.63 512 0 440.4 0 352C0 263.6 71.63 192 160 192C171.1 192 181.1 193.1 192.4 195.3L246.6 141.1L195.8 117.2L147.2 153.6C133.1 164.2 113 161.3 102.4 147.2C91.8 133.1 94.66 113 108.8 102.4L172.8 54.4zM160 448C213 448 256 405 256 352C256 298.1 213 256 160 256C106.1 256 64 298.1 64 352C64 405 106.1 448 160 448z" - } - }, - "free": [ - "solid" - ] - }, - "whiskey-glass": { - "changes": [ - "5.6.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f7a0", - "aliases": { - "names": [ - "glass-whiskey" - ], - "unicodes": { - "composite": [ - "1f943" - ], - "secondary": [ - "10f7a0" - ] - } - }, - "label": "Whiskey glass", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573354, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M479.1 32H32.04C12.55 32-2.324 49.25 .3008 68.51L56.29 425.1C60.79 456.6 87.78 480 119.8 480h272.9c31.74 0 58.86-23.38 63.36-54.89l55.61-356.6C514.3 49.25 499.5 32 479.1 32zM422.7 224H89.49L69.39 96h373.2L422.7 224z" - } - }, - "free": [ - "solid" - ] - }, - "whmcs": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f40d", - "label": "WHMCS", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 161v-21.3l-28.5-8.8-2.2-10.4 20.1-20.7L427 80.4l-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4h-22.6l-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6 .3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zm-119.2 45.2c-31.3 0-56.8-25.4-56.8-56.8s25.4-56.8 56.8-56.8 56.8 25.4 56.8 56.8c0 31.5-25.4 56.8-56.8 56.8zm72.3 16.4l46.9 14.5V277l-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1 .5-40.9L54 219.9l5.7-19.7-38.9-39.4L41.5 125l53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4L191 84l11.6-52H245l11.6 45.9L234 72l-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7-.1 6.4-.2 12.9C153.8 161.6 118 204 118 254.7c0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8l13.2 .2 6.9 .1 1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z" - } - }, - "free": [ - "brands" - ] - }, - "wifi": { - "changes": [ - "4.2.0", - "5.0.0", - "5.3.0", - "5.10.1", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f1eb", - "aliases": { - "names": [ - "wifi-3", - "wifi-strong" - ], - "unicodes": { - "secondary": [ - "10f1eb" - ] - } - }, - "label": "WiFi", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M319.1 351.1c-35.35 0-64 28.66-64 64.01s28.66 64.01 64 64.01c35.34 0 64-28.66 64-64.01S355.3 351.1 319.1 351.1zM320 191.1c-70.25 0-137.9 25.6-190.5 72.03C116.3 275.7 115 295.9 126.7 309.2C138.5 322.4 158.7 323.7 171.9 312C212.8 275.9 265.4 256 320 256s107.3 19.88 148.1 56C474.2 317.4 481.8 320 489.3 320c8.844 0 17.66-3.656 24-10.81C525 295.9 523.8 275.7 510.5 264C457.9 217.6 390.3 191.1 320 191.1zM630.2 156.7C546.3 76.28 436.2 32 320 32S93.69 76.28 9.844 156.7c-12.75 12.25-13.16 32.5-.9375 45.25c12.22 12.78 32.47 13.12 45.25 .9375C125.1 133.1 220.4 96 320 96s193.1 37.97 265.8 106.9C592.1 208.8 600 211.8 608 211.8c8.406 0 16.81-3.281 23.09-9.844C643.3 189.2 642.9 168.1 630.2 156.7z" - } - }, - "free": [ - "solid" - ] - }, - "wikipedia-w": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f266", - "label": "Wikipedia W", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6H415l-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3C172 352.3 122.8 243.4 75.8 133.4 64.4 106.7 26.4 63.4 .2 63.7c0-3.1-.3-10-.3-14.2h161.9v13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7V49.8l142.5 .3v13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6v13.6c-22.5 .8-45.8 12.8-58.1 31.7l-59.2 122.8c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3V49.6l127.8 1.1 .2 .5z" - } - }, - "free": [ - "brands" - ] - }, - "wind": { - "changes": [ - "5.4.0", - "5.5.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f72e", - "aliases": { - "unicodes": { - "secondary": [ - "10f72e" - ] - } - }, - "label": "Wind", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M32 192h320c52.94 0 96-43.06 96-96s-43.06-96-96-96h-32c-17.69 0-32 14.31-32 32s14.31 32 32 32h32c17.66 0 32 14.34 32 32s-14.34 32-32 32H32C14.31 128 0 142.3 0 160S14.31 192 32 192zM160 320H32c-17.69 0-32 14.31-32 32s14.31 32 32 32h128c17.66 0 32 14.34 32 32s-14.34 32-32 32H128c-17.69 0-32 14.31-32 32s14.31 32 32 32h32c52.94 0 96-43.06 96-96S212.9 320 160 320zM416 224H32C14.31 224 0 238.3 0 256s14.31 32 32 32h384c17.66 0 32 14.34 32 32s-14.34 32-32 32h-32c-17.69 0-32 14.31-32 32s14.31 32 32 32h32c52.94 0 96-43.06 96-96S468.9 224 416 224z" - } - }, - "free": [ - "solid" - ] - }, - "window-maximize": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2d0", - "aliases": { - "unicodes": { - "composite": [ - "1f5d6" - ], - "secondary": [ - "10f2d0" - ] - } - }, - "label": "Window Maximize", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M448 32C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 60.65 28.65 32 64 32H448zM96 96C78.33 96 64 110.3 64 128C64 145.7 78.33 160 96 160H416C433.7 160 448 145.7 448 128C448 110.3 433.7 96 416 96H96z" - }, - "regular": { - "last_modified": 1658443573159, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M7.724 65.49C13.36 55.11 21.79 46.47 32 40.56C39.63 36.15 48.25 33.26 57.46 32.33C59.61 32.11 61.79 32 64 32H448C483.3 32 512 60.65 512 96V416C512 451.3 483.3 480 448 480H64C28.65 480 0 451.3 0 416V96C0 93.79 .112 91.61 .3306 89.46C1.204 80.85 3.784 72.75 7.724 65.49V65.49zM48 416C48 424.8 55.16 432 64 432H448C456.8 432 464 424.8 464 416V224H48V416z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "window-minimize": { - "changes": [ - "4.7.0", - "5.0.0", - "5.10.1", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2d1", - "aliases": { - "unicodes": { - "composite": [ - "1f5d5" - ], - "secondary": [ - "10f2d1" - ] - } - }, - "label": "Window Minimize", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 448C0 430.3 14.33 416 32 416H480C497.7 416 512 430.3 512 448C512 465.7 497.7 480 480 480H32C14.33 480 0 465.7 0 448z" - }, - "regular": { - "last_modified": 1658443573159, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M0 456C0 442.7 10.75 432 24 432H488C501.3 432 512 442.7 512 456C512 469.3 501.3 480 488 480H24C10.75 480 0 469.3 0 456z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "window-restore": { - "changes": [ - "4.7.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid", - "regular" - ], - "unicode": "f2d2", - "aliases": { - "unicodes": { - "secondary": [ - "10f2d2" - ] - } - }, - "label": "Window Restore", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M432 64H208C199.2 64 192 71.16 192 80V96H128V80C128 35.82 163.8 0 208 0H432C476.2 0 512 35.82 512 80V304C512 348.2 476.2 384 432 384H416V320H432C440.8 320 448 312.8 448 304V80C448 71.16 440.8 64 432 64zM0 192C0 156.7 28.65 128 64 128H320C355.3 128 384 156.7 384 192V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V192zM96 256H288C305.7 256 320 241.7 320 224C320 206.3 305.7 192 288 192H96C78.33 192 64 206.3 64 224C64 241.7 78.33 256 96 256z" - }, - "regular": { - "last_modified": 1658443573159, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M432 48H208C190.3 48 176 62.33 176 80V96H128V80C128 35.82 163.8 0 208 0H432C476.2 0 512 35.82 512 80V304C512 348.2 476.2 384 432 384H416V336H432C449.7 336 464 321.7 464 304V80C464 62.33 449.7 48 432 48zM320 128C355.3 128 384 156.7 384 192V448C384 483.3 355.3 512 320 512H64C28.65 512 0 483.3 0 448V192C0 156.7 28.65 128 64 128H320zM64 464H320C328.8 464 336 456.8 336 448V256H48V448C48 456.8 55.16 464 64 464z" - } - }, - "free": [ - "solid", - "regular" - ] - }, - "windows": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f17a", - "label": "Windows", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z" - } - }, - "free": [ - "brands" - ] - }, - "wine-bottle": { - "changes": [ - "5.4.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f72f", - "aliases": { - "unicodes": { - "secondary": [ - "10f72f" - ] - } - }, - "label": "Wine Bottle", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M507.3 72.57l-67.88-67.88c-6.252-6.25-16.38-6.25-22.63 0l-22.63 22.62c-6.25 6.254-6.251 16.38-.0006 22.63l-76.63 76.63c-46.63-19.75-102.4-10.75-140.4 27.25l-158.4 158.4c-25 25-25 65.51 0 90.51l90.51 90.52c25 25 65.51 25 90.51 0l158.4-158.4c38-38 47-93.76 27.25-140.4l76.63-76.63c6.25 6.25 16.5 6.25 22.75 0l22.63-22.63C513.5 88.95 513.5 78.82 507.3 72.57zM179.3 423.2l-90.51-90.51l122-122l90.51 90.52L179.3 423.2z" - } - }, - "free": [ - "solid" - ] - }, - "wine-glass": { - "changes": [ - "5.0.9", - "5.1.0", - "5.10.1", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f4e3", - "aliases": { - "unicodes": { - "composite": [ - "1f377" - ], - "secondary": [ - "10f4e3" - ] - } - }, - "label": "Wine Glass", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M232 464h-40.01v-117.3c68.51-15.88 118-79.86 111.4-154.1L287.5 14.5C286.8 6.25 279.9 0 271.8 0H48.23C40.1 0 33.22 6.25 32.47 14.5L16.6 192.6c-6.626 74.25 42.88 138.2 111.4 154.2V464H87.98c-22.13 0-40.01 17.88-40.01 40c0 4.375 3.626 8 8.002 8h208c4.376 0 8.002-3.625 8.002-8C272 481.9 254.1 464 232 464zM77.72 48h164.6L249.4 128H70.58L77.72 48z" - } - }, - "free": [ - "solid" - ] - }, - "wine-glass-empty": { - "changes": [ - "5.1.0", - "5.10.1", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f5ce", - "aliases": { - "names": [ - "wine-glass-alt" - ], - "unicodes": { - "secondary": [ - "10f5ce" - ] - } - }, - "label": "Wine glass empty", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M232 464h-40.01v-117.3c68.52-15.88 118-79.86 111.4-154.1L287.5 14.5C286.8 6.25 279.9 0 271.8 0H48.23C40.1 0 33.22 6.25 32.47 14.5L16.6 192.6c-6.625 74.25 42.88 138.2 111.4 154.2V464H87.98c-22.13 0-40.01 17.88-40.01 40c0 4.375 3.625 8 8.002 8h208c4.377 0 8.002-3.625 8.002-8C272 481.9 254.1 464 232 464zM180.4 300.2c-13.64 3.16-27.84 3.148-41.48-.0371C91.88 289.2 60.09 245.2 64.38 197.1L77.7 48h164.6L255.6 197.2c4.279 48.01-27.5 91.93-74.46 102.8L180.4 300.2z" - } - }, - "free": [ - "solid" - ] - }, - "wirsindhandwerk": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e2d0", - "aliases": { - "names": [ - "wsh" - ] - }, - "label": "wirsindhandwerk", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "\n", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M50.77 479.8h83.36V367.8l-83.36 47.01zm329 0h82.35V414.9l-82.35-47.01zm.0057-448V251.6L256.2 179.2 134.5 251.6V31.81H50.77V392.6L256.2 270.3 462.2 392.6V31.81z" - } - }, - "free": [ - "brands" - ] - }, - "wix": { - "changes": [ - "5.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f5cf", - "label": "Wix", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572500, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M393.4 131.7c0 13.03 2.08 32.69-28.68 43.83-9.52 3.45-15.95 9.66-15.95 9.66 0-31 4.72-42.22 17.4-48.86 9.75-5.11 27.23-4.63 27.23-4.63zm-115.8 35.54l-34.24 132.7-28.48-108.6c-7.69-31.99-20.81-48.53-48.43-48.53-27.37 0-40.66 16.18-48.43 48.53L89.52 299.9 55.28 167.2C49.73 140.5 23.86 128.1 0 131.1l65.57 247.9s21.63 1.56 32.46-3.96c14.22-7.25 20.98-12.84 29.59-46.57 7.67-30.07 29.11-118.4 31.12-124.7 4.76-14.94 11.09-13.81 15.4 0 1.97 6.3 23.45 94.63 31.12 124.7 8.6 33.73 15.37 39.32 29.59 46.57 10.82 5.52 32.46 3.96 32.46 3.96l65.57-247.9c-24.42-3.07-49.82 8.93-55.3 35.27zm115.8 5.21s-4.1 6.34-13.46 11.57c-6.01 3.36-11.78 5.64-17.97 8.61-15.14 7.26-13.18 13.95-13.18 35.2v152.1s16.55 2.09 27.37-3.43c13.93-7.1 17.13-13.95 17.26-44.78V181.4l-.02 .01v-8.98zm163.4 84.08L640 132.8s-35.11-5.98-52.5 9.85c-13.3 12.1-24.41 29.55-54.18 72.47-.47 .73-6.25 10.54-13.07 0-29.29-42.23-40.8-60.29-54.18-72.47-17.39-15.83-52.5-9.85-52.5-9.85l83.2 123.7-82.97 123.4s36.57 4.62 53.95-11.21c11.49-10.46 17.58-20.37 52.51-70.72 6.81-10.52 12.57-.77 13.07 0 29.4 42.38 39.23 58.06 53.14 70.72 17.39 15.83 53.32 11.21 53.32 11.21L556.8 256.5z" - } - }, - "free": [ - "brands" - ] - }, - "wizards-of-the-coast": { - "changes": [ - "5.4.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f730", - "label": "Wizards of the Coast", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M219.2 345.7c-1.9 1.38-11.07 8.44-.26 23.57 4.64 6.42 14.11 12.79 21.73 6.55 6.5-4.88 7.35-12.92 .26-23.04-5.47-7.76-14.28-12.88-21.73-7.08zm336.8 75.94c-.34 1.7-.55 1.67 .79 0 2.09-4.19 4.19-10.21 4.98-19.9 3.14-38.49-40.33-71.49-101.3-78.03-54.73-6.02-124.4 9.17-188.8 60.49l-.26 1.57c2.62 4.98 4.98 10.74 3.4 21.21l.79 .26c63.89-58.4 131.2-77.25 184.4-73.85 58.4 3.67 100 34.04 100 68.08-.01 9.96-2.63 15.72-3.94 20.17zM392.3 240.4c.79 7.07 4.19 10.21 9.17 10.47 5.5 .26 9.43-2.62 10.47-6.55 .79-3.4 2.09-29.85 2.09-29.85s-11.26 6.55-14.93 10.47c-3.66 3.68-7.33 8.39-6.8 15.46zm-50.02-151.1C137.8 89.32 13.1 226.8 .79 241.2c-1.05 .52-1.31 .79 .79 1.31 60.49 16.5 155.8 81.18 196.1 202.2l1.05 .26c55.25-69.92 140.9-128.1 236.1-128.1 80.92 0 130.1 42.16 130.1 80.39 0 18.33-6.55 33.52-22.26 46.35 0 .96-.2 .79 .79 .79 14.66-10.74 27.5-28.8 27.5-48.18 0-22.78-12.05-38.23-12.05-38.23 7.07 7.07 10.74 16.24 10.74 16.24 5.76-40.85 26.97-62.32 26.97-62.32-2.36-9.69-6.81-17.81-6.81-17.81 7.59 8.12 14.4 27.5 14.4 41.37 0 10.47-3.4 22.78-12.57 31.95l.26 .52c8.12-4.98 16.5-16.76 16.5-37.97 0-15.71-4.71-25.92-4.71-25.92 5.76-5.24 11.26-9.17 15.97-11.78 .79 3.4 2.09 9.69 2.36 14.93 0 1.05 .79 1.83 1.05 0 .79-5.76-.26-16.24-.26-16.5 6.02-3.14 9.69-4.45 9.69-4.45C617.7 176 489.4 89.32 342.3 89.32zm-99.24 289.6c-11.06 8.99-24.2 4.08-30.64-4.19-7.45-9.58-6.76-24.09 4.19-32.47 14.85-11.35 27.08-.49 31.16 5.5 .28 .39 12.13 16.57-4.71 31.16zm2.09-136.4l9.43-17.81 11.78 70.96-12.57 6.02-24.62-28.8 14.14-26.71 3.67 4.45-1.83-8.11zm18.59 117.6l-.26-.26c2.05-4.1-2.5-6.61-17.54-31.69-1.31-2.36-3.14-2.88-4.45-2.62l-.26-.52c7.86-5.76 15.45-10.21 25.4-15.71l.52 .26c1.31 1.83 2.09 2.88 3.4 4.71l-.26 .52c-1.05-.26-2.36-.79-5.24 .26-2.09 .79-7.86 3.67-12.31 7.59v1.31c1.57 2.36 3.93 6.55 5.76 9.69h.26c10.05-6.28 7.56-4.55 11.52-7.86h.26c.52 1.83 .52 1.83 1.83 5.5l-.26 .26c-3.06 .61-4.65 .34-11.52 5.5v.26c9.46 17.02 11.01 16.75 12.57 15.97l.26 .26c-2.34 1.59-6.27 4.21-9.68 6.57zm55.26-32.47c-3.14 1.57-6.02 2.88-9.95 4.98l-.26-.26c1.29-2.59 1.16-2.71-11.78-32.47l-.26-.26c-.15 0-8.9 3.65-9.95 7.33h-.52l-1.05-5.76 .26-.52c7.29-4.56 25.53-11.64 27.76-12.57l.52 .26 3.14 4.98-.26 .52c-3.53-1.76-7.35 .76-12.31 2.62v.26c12.31 32.01 12.67 30.64 14.66 30.64v.25zm44.77-16.5c-4.19 1.05-5.24 1.31-9.69 2.88l-.26-.26 .52-4.45c-1.05-3.4-3.14-11.52-3.67-13.62l-.26-.26c-3.4 .79-8.9 2.62-12.83 3.93l-.26 .26c.79 2.62 3.14 9.95 4.19 13.88 .79 2.36 1.83 2.88 2.88 3.14v.52c-3.67 1.05-7.07 2.62-10.21 3.93l-.26-.26c1.05-1.31 1.05-2.88 .26-4.98-1.05-3.14-8.12-23.83-9.17-27.23-.52-1.83-1.57-3.14-2.62-3.14v-.52c3.14-1.05 6.02-2.09 10.74-3.4l.26 .26-.26 4.71c1.31 3.93 2.36 7.59 3.14 9.69h.26c3.93-1.31 9.43-2.88 12.83-3.93l.26-.26-2.62-9.43c-.52-1.83-1.05-3.4-2.62-3.93v-.26c4.45-1.05 7.33-1.83 10.74-2.36l.26 .26c-1.05 1.31-1.05 2.88-.52 4.45 1.57 6.28 4.71 20.43 6.28 26.45 .54 2.62 1.85 3.41 2.63 3.93zm32.21-6.81l-.26 .26c-4.71 .52-14.14 2.36-22.52 4.19l-.26-.26 .79-4.19c-1.57-7.86-3.4-18.59-4.98-26.19-.26-1.83-.79-2.88-2.62-3.67l.79-.52c9.17-1.57 20.16-2.36 24.88-2.62l.26 .26c.52 2.36 .79 3.14 1.57 5.5l-.26 .26c-1.14-1.14-3.34-3.2-16.24-.79l-.26 .26c.26 1.57 1.05 6.55 1.57 9.95l.26 .26c9.52-1.68 4.76-.06 10.74-2.36h.26c0 1.57-.26 1.83-.26 5.24h-.26c-4.81-1.03-2.15-.9-10.21 0l-.26 .26c.26 2.09 1.57 9.43 2.09 12.57l.26 .26c1.15 .38 14.21-.65 16.24-4.71h.26c-.53 2.38-1.05 4.21-1.58 6.04zm10.74-44.51c-4.45 2.36-8.12 2.88-11 2.88-.25 .02-11.41 1.09-17.54-9.95-6.74-10.79-.98-25.2 5.5-31.69 8.8-8.12 23.35-10.1 28.54-17.02 8.03-10.33-13.04-22.31-29.59-5.76l-2.62-2.88 5.24-16.24c25.59-1.57 45.2-3.04 50.02 16.24 .79 3.14 0 9.43-.26 12.05 0 2.62-1.83 18.85-2.09 23.04-.52 4.19-.79 18.33-.79 20.69 .26 2.36 .52 4.19 1.57 5.5 1.57 1.83 5.76 1.83 5.76 1.83l-.79 4.71c-11.82-1.07-10.28-.59-20.43-1.05-3.22-5.15-2.23-3.28-4.19-7.86 0 .01-4.19 3.94-7.33 5.51zm37.18 21.21c-6.35-10.58-19.82-7.16-21.73 5.5-2.63 17.08 14.3 19.79 20.69 10.21l.26 .26c-.52 1.83-1.83 6.02-1.83 6.28l-.52 .52c-10.3 6.87-28.5-2.5-25.66-18.59 1.94-10.87 14.44-18.93 28.8-9.95l.26 .52c0 1.06-.27 3.41-.27 5.25zm5.77-87.73v-6.55c.69 0 19.65 3.28 27.76 7.33l-1.57 17.54s10.21-9.43 15.45-10.74c5.24-1.57 14.93 7.33 14.93 7.33l-11.26 11.26c-12.07-6.35-19.59-.08-20.69 .79-5.29 38.72-8.6 42.17 4.45 46.09l-.52 4.71c-17.55-4.29-18.53-4.5-36.92-7.33l.79-4.71c7.25 0 7.48-5.32 7.59-6.81 0 0 4.98-53.16 4.98-55.25-.02-2.87-4.99-3.66-4.99-3.66zm10.99 114.4c-8.12-2.09-14.14-11-10.74-20.69 3.14-9.43 12.31-12.31 18.85-10.21 9.17 2.62 12.83 11.78 10.74 19.38-2.61 8.9-9.42 13.87-18.85 11.52zm42.16 9.69c-2.36-.52-7.07-2.36-8.64-2.88v-.26l1.57-1.83c.59-8.24 .59-7.27 .26-7.59-4.82-1.81-6.66-2.36-7.07-2.36-1.31 1.83-2.88 4.45-3.67 5.5l-.79 3.4v.26c-1.31-.26-3.93-1.31-6.02-1.57v-.26l2.62-1.83c3.4-4.71 9.95-14.14 13.88-20.16v-2.09l.52-.26c2.09 .79 5.5 2.09 7.59 2.88 .48 .48 .18-1.87-1.05 25.14-.24 1.81 .02 2.6 .8 3.91zm-4.71-89.82c11.25-18.27 30.76-16.19 34.04-3.4L539.7 198c2.34-6.25-2.82-9.9-4.45-11.26l1.83-3.67c12.22 10.37 16.38 13.97 22.52 20.43-25.91 73.07-30.76 80.81-24.62 84.32l-1.83 4.45c-6.37-3.35-8.9-4.42-17.81-8.64l2.09-6.81c-.26-.26-3.93 3.93-9.69 3.67-19.06-1.3-22.89-31.75-9.67-52.9zm29.33 79.34c0-5.71-6.34-7.89-7.86-5.24-1.31 2.09 1.05 4.98 2.88 8.38 1.57 2.62 2.62 6.28 1.05 9.43-2.64 6.34-12.4 5.31-15.45-.79 0-.7-.27 .09 1.83-4.71l.79-.26c-.57 5.66 6.06 9.61 8.38 4.98 1.05-2.09-.52-5.5-2.09-8.38-1.57-2.62-3.67-6.28-1.83-9.69 2.72-5.06 11.25-4.47 14.66 2.36v.52l-2.36 3.4zm21.21 13.36c-1.96-3.27-.91-2.14-4.45-4.71h-.26c-2.36 4.19-5.76 10.47-8.64 16.24-1.31 2.36-1.05 3.4-.79 3.93l-.26 .26-5.76-4.45 .26-.26 2.09-1.31c3.14-5.76 6.55-12.05 9.17-17.02v-.26c-2.64-1.98-1.22-1.51-6.02-1.83v-.26l3.14-3.4h.26c3.67 2.36 9.95 6.81 12.31 8.9l.26 .26-1.31 3.91zm27.23-44.26l-2.88-2.88c.79-2.36 1.83-4.98 2.09-7.59 .75-9.74-11.52-11.84-11.52-4.98 0 4.98 7.86 19.38 7.86 27.76 0 10.21-5.76 15.71-13.88 16.5-8.38 .79-20.16-10.47-20.16-10.47l4.98-14.4 2.88 2.09c-2.97 17.8 17.68 20.37 13.35 5.24-1.06-4.02-18.75-34.2 2.09-38.23 13.62-2.36 23.04 16.5 23.04 16.5l-7.85 10.46zm35.62-10.21c-11-30.38-60.49-127.5-191.9-129.6-53.42-1.05-94.27 15.45-132.8 37.97l85.63-9.17-91.39 20.69 25.14 19.64-3.93-16.5c7.5-1.71 39.15-8.45 66.77-8.9l-22.26 80.39c13.61-.7 18.97-8.98 19.64-22.78l4.98-1.05 .26 26.71c-22.46 3.21-37.3 6.69-49.49 9.95l13.09-43.21-61.54-36.66 2.36 8.12 10.21 4.98c6.28 18.59 19.38 56.56 20.43 58.66 1.95 4.28 3.16 5.78 12.05 4.45l1.05 4.98c-16.08 4.86-23.66 7.61-39.02 14.4l-2.36-4.71c4.4-2.94 8.73-3.94 5.5-12.83-23.7-62.5-21.48-58.14-22.78-59.44l2.36-4.45 33.52 67.3c-3.84-11.87 1.68 1.69-32.99-78.82l-41.9 88.51 4.71-13.88-35.88-42.16 27.76 93.48-11.78 8.38C95 228.6 101.1 231.9 93.23 231.5c-5.5-.26-13.62 5.5-13.62 5.5L74.63 231c30.56-23.53 31.62-24.33 58.4-42.68l4.19 7.07s-5.76 4.19-7.86 7.07c-5.9 9.28 1.67 13.28 61.8 75.68l-18.85-58.92 39.8-10.21 25.66 30.64 4.45-12.31-4.98-24.62 13.09-3.4 .52 3.14 3.67-10.47-94.27 29.33 11.26-4.98-13.62-42.42 17.28-9.17 30.11 36.14 28.54-13.09c-1.41-7.47-2.47-14.5-4.71-19.64l17.28 13.88 4.71-2.09-59.18-42.68 23.08 11.5c18.98-6.07 25.23-7.47 32.21-9.69l2.62 11c-12.55 12.55 1.43 16.82 6.55 19.38l-13.62-61.01 12.05 28.28c4.19-1.31 7.33-2.09 7.33-2.09l2.62 8.64s-3.14 1.05-6.28 2.09l8.9 20.95 33.78-65.73-20.69 61.01c42.42-24.09 81.44-36.66 131.1-35.88 67.04 1.05 167.3 40.85 199.8 139.8 .78 2.1-.01 2.63-.79 .27zM203.5 152.4s1.83-.52 4.19-1.31l9.43 7.59c-.4 0-3.44-.25-11.26 2.36l-2.36-8.64zm143.8 38.5c-1.57-.6-26.46-4.81-33.26 20.69l21.73 17.02 11.53-37.71zM318.4 67.07c-58.4 0-106.1 12.05-114.1 14.4v.79c8.38 2.09 14.4 4.19 21.21 11.78l1.57 .26c6.55-1.83 48.97-13.88 110.2-13.88 180.2 0 301.7 116.8 301.7 223.4v9.95c0 1.31 .79 2.62 1.05 .52 .52-2.09 .79-8.64 .79-19.64 .26-83.79-96.63-227.6-321.6-227.6zm211.1 169.7c1.31-5.76 0-12.31-7.33-13.09-9.62-1.13-16.14 23.79-17.02 33.52-.79 5.5-1.31 14.93 6.02 14.93 4.68-.01 9.72-.91 18.33-35.36zm-61.53 42.95c-2.62-.79-9.43-.79-12.57 10.47-1.83 6.81 .52 13.35 6.02 14.66 3.67 1.05 8.9 .52 11.78-10.74 2.62-9.94-1.83-13.61-5.23-14.39zM491 300.6c1.83 .52 3.14 1.05 5.76 1.83 0-1.83 .52-8.38 .79-12.05-1.05 1.31-5.5 8.12-6.55 9.95v.27z" - } - }, - "free": [ - "brands" - ] - }, - "wodu": { - "changes": [ - "5.15.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "e088", - "label": "Wodu", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M178.4 339.7H141.1L112.2 223.5h-.478L83.23 339.7H45.2L0 168.9H37.55L64.57 285.2h.478L94.71 168.9h35.16l29.18 117.7h.479L187.5 168.9h36.83zM271.4 212.7c38.98 0 64.1 25.83 64.1 65.29 0 39.22-25.11 65.05-64.1 65.05-38.74 0-63.85-25.83-63.85-65.05C207.5 238.5 232.7 212.7 271.4 212.7zm0 104.8c23.2 0 30.13-19.85 30.13-39.46 0-19.85-6.934-39.7-30.13-39.7-27.7 0-29.89 19.85-29.89 39.7C241.5 297.6 248.4 317.5 271.4 317.5zM435.1 323.9h-.478c-7.893 13.39-21.76 19.13-37.55 19.13-37.31 0-55.49-32.04-55.49-66.25 0-33.24 18.42-64.1 54.77-64.1 14.59 0 28.94 6.218 36.83 18.42h.24V168.9h33.96v170.8H435.1zM405.4 238.3c-22.24 0-29.89 19.13-29.89 39.46 0 19.37 8.848 39.7 29.89 39.7 22.48 0 29.18-19.61 29.18-39.94C434.6 257.4 427.4 238.3 405.4 238.3zM592.1 339.7H560.7V322.5h-.718c-8.609 13.87-23.44 20.57-37.79 20.57-36.11 0-45.2-20.33-45.2-50.94V216.1h33.96V285.9c0 20.33 5.979 30.37 21.76 30.37 18.42 0 26.31-10.28 26.31-35.39V216.1H592.1zM602.5 302.9H640v36.83H602.5z" - } - }, - "free": [ - "brands" - ] - }, - "wolf-pack-battalion": { - "changes": [ - "5.0.12", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f514", - "label": "Wolf Pack Battalion", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M267.7 471.5l10.56 15.84 5.28-12.32 5.28 7V512c21.06-7.92 21.11-66.86 25.51-97.21 4.62-31.89-.88-92.81 81.37-149.1-8.88-23.61-12-49.43-2.64-80.05C421 189 447 196.2 456.4 239.7l-30.35 8.36c11.15 23 17 46.76 13.2 72.14L412 313.2l-6.16 33.43-18.47-7-8.8 33.39-19.35-7 26.39 21.11 8.8-28.15L419 364.2l7-35.63 26.39 14.52c.25-20 7-58.06-8.8-84.45l26.39 5.28c4-22.07-2.38-39.21-7.92-56.74l22.43 9.68c-.44-25.07-29.94-56.79-61.58-58.5-20.22-1.09-56.74-25.17-54.1-51.9 2-19.87 17.45-42.62 43.11-49.7-44 36.51-9.68 67.3 5.28 73.46 4.4-11.44 17.54-69.08 0-130.2-40.39 22.87-89.65 65.1-93.2 147.8l-58 38.71-3.52 93.25L369.8 220l7 7-17.59 3.52-44 38.71-15.84-5.28-28.1 49.25-3.52 119.6 21.11 15.84-32.55 15.84-32.55-15.84 21.11-15.84-3.52-119.6-28.15-49.26-15.84 5.28-44-38.71-17.58-3.51 7-7 107.3 59.82-3.52-93.25-58.06-38.71C185 65.1 135.8 22.87 95.3 0c-17.54 61.12-4.4 118.8 0 130.2 15-6.16 49.26-36.95 5.28-73.46 25.66 7.08 41.15 29.83 43.11 49.7 2.63 26.74-33.88 50.81-54.1 51.9-31.65 1.72-61.15 33.44-61.59 58.51l22.43-9.68c-5.54 17.53-11.91 34.67-7.92 56.74l26.39-5.28c-15.76 26.39-9.05 64.43-8.8 84.45l26.39-14.52 7 35.63 24.63-5.28 8.8 28.15L153.4 366 134 373l-8.8-33.43-18.47 7-6.16-33.43-27.27 7c-3.82-25.38 2-49.1 13.2-72.14l-30.35-8.36c9.4-43.52 35.47-50.77 63.34-54.1 9.36 30.62 6.24 56.45-2.64 80.05 82.25 56.3 76.75 117.2 81.37 149.1 4.4 30.35 4.45 89.29 25.51 97.21v-29.83l5.28-7 5.28 12.32 10.56-15.84 11.44 21.11 11.43-21.1zm79.17-95L331.1 366c7.47-4.36 13.76-8.42 19.35-12.32-.6 7.22-.27 13.84-3.51 22.84zm28.15-49.26c-.4 10.94-.9 21.66-1.76 31.67-7.85-1.86-15.57-3.8-21.11-7 8.24-7.94 15.55-16.32 22.87-24.68zm24.63 5.28c0-13.43-2.05-24.21-5.28-33.43a235 235 0 0 1 -18.47 27.27zm3.52-80.94c19.44 12.81 27.8 33.66 29.91 56.3-12.32-4.53-24.63-9.31-36.95-10.56 5.06-12 6.65-28.14 7-45.74zm-1.76-45.74c.81 14.3 1.84 28.82 1.76 42.23 19.22-8.11 29.78-9.72 44-14.08-10.61-18.96-27.2-25.53-45.76-28.16zM165.7 376.5L181.5 366c-7.47-4.36-13.76-8.42-19.35-12.32 .6 7.26 .27 13.88 3.51 22.88zm-28.15-49.26c.4 10.94 .9 21.66 1.76 31.67 7.85-1.86 15.57-3.8 21.11-7-8.24-7.93-15.55-16.31-22.87-24.67zm-24.64 5.28c0-13.43 2-24.21 5.28-33.43a235 235 0 0 0 18.47 27.27zm-3.52-80.94c-19.44 12.81-27.8 33.66-29.91 56.3 12.32-4.53 24.63-9.31 37-10.56-5-12-6.65-28.14-7-45.74zm1.76-45.74c-.81 14.3-1.84 28.82-1.76 42.23-19.22-8.11-29.78-9.72-44-14.08 10.63-18.95 27.23-25.52 45.76-28.15z" - } - }, - "free": [ - "brands" - ] - }, - "won-sign": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f159", - "aliases": { - "names": [ - "krw", - "won" - ], - "unicodes": { - "composite": [ - "20a9" - ], - "secondary": [ - "10f159" - ] - } - }, - "label": "Won Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M119.1 224H183L224.1 56.24C228.5 41.99 241.3 32 256 32C270.7 32 283.5 41.99 287 56.24L328.1 224H392.9L449.6 53.88C455.2 37.12 473.4 28.05 490.1 33.64C506.9 39.23 515.9 57.35 510.4 74.12L460.4 224H480C497.7 224 512 238.3 512 256C512 273.7 497.7 288 480 288H439.1L382.4 458.1C377.9 471.6 364.1 480.5 350.8 479.1C336.6 479.4 324.4 469.6 320.1 455.8L279 288H232.1L191 455.8C187.6 469.6 175.4 479.4 161.2 479.1C147 480.5 134.1 471.6 129.6 458.1L72.94 288H32C14.33 288 .001 273.7 .001 256C.001 238.3 14.33 224 32 224H51.6L1.643 74.12C-3.946 57.35 5.115 39.23 21.88 33.64C38.65 28.05 56.77 37.12 62.36 53.88L119.1 224zM140.4 288L155.6 333.6L167 288H140.4zM248.1 224H263L256 195.9L248.1 224zM344.1 288L356.4 333.6L371.6 288H344.1z" - } - }, - "free": [ - "solid" - ] - }, - "wordpress": { - "changes": [ - "4.1.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f19a", - "label": "WordPress Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M61.7 169.4l101.5 278C92.2 413 43.3 340.2 43.3 256c0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4L249.8 247l-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zm-139.9 29.3l-63.8 185.5c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9l-65.4-179.2zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9C426.2 403 468.7 334.5 468.7 256c0-37-9.4-71.8-26-102.1zM504 256c0 136.8-111.3 248-248 248C119.2 504 8 392.7 8 256 8 119.2 119.2 8 256 8c136.7 0 248 111.2 248 248zm-11.4 0c0-130.5-106.2-236.6-236.6-236.6C125.5 19.4 19.4 125.5 19.4 256S125.6 492.6 256 492.6c130.5 0 236.6-106.1 236.6-236.6z" - } - }, - "free": [ - "brands" - ] - }, - "wordpress-simple": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f411", - "label": "Wordpress Simple", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 8C119.3 8 8 119.2 8 256c0 136.7 111.3 248 248 248s248-111.3 248-248C504 119.2 392.7 8 256 8zM33 256c0-32.3 6.9-63 19.3-90.7l106.4 291.4C84.3 420.5 33 344.2 33 256zm223 223c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2L200.6 393l-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3C109.6 73 178.1 33 256 33c58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z" - } - }, - "free": [ - "brands" - ] - }, - "worm": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e599", - "label": "Worm", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573355, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 96C256 42.98 298.1 0 352 0H390.4C439.9 0 480 40.12 480 89.6V376C480 451.1 419.1 512 344 512C268.9 512 208 451.1 208 376V296C208 273.9 190.1 256 168 256C145.9 256 128 273.9 128 296V464C128 490.5 106.5 512 80 512C53.49 512 32 490.5 32 464V296C32 220.9 92.89 160 168 160C243.1 160 304 220.9 304 296V376C304 398.1 321.9 416 344 416C366.1 416 384 398.1 384 376V192H352C298.1 192 256 149 256 96zM376 64C362.7 64 352 74.75 352 88C352 101.3 362.7 112 376 112C389.3 112 400 101.3 400 88C400 74.75 389.3 64 376 64z" - } - }, - "free": [ - "solid" - ] - }, - "wpbeginner": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f297", - "label": "WPBeginner", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M462.8 322.4C519 386.7 466.1 480 370.9 480c-39.6 0-78.82-17.69-100.1-50.04-6.887 .356-22.7 .356-29.59 0C219.8 462.4 180.6 480 141.1 480c-95.49 0-148.3-92.1-91.86-157.6C-29.92 190.5 80.48 32 256 32c175.6 0 285.9 158.6 206.8 290.4zm-339.6-82.97h41.53v-58.08h-41.53v58.08zm217.2 86.07v-23.84c-60.51 20.92-132.4 9.198-187.6-33.97l.246 24.9c51.1 46.37 131.7 57.88 187.3 32.91zm-150.8-86.07h166.1v-58.08H189.6v58.08z" - } - }, - "free": [ - "brands" - ] - }, - "wpexplorer": { - "changes": [ - "4.7.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2de", - "label": "WPExplorer", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M512 256c0 141.2-114.7 256-256 256C114.8 512 0 397.3 0 256S114.7 0 256 0s256 114.7 256 256zm-32 0c0-123.2-100.3-224-224-224C132.5 32 32 132.5 32 256s100.5 224 224 224 224-100.5 224-224zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94h-14.6l-50-100-48.9 100h-14l51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zm-11.8-116.3l68.6 29.4-29.4 68.3L230 246l29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z" - } - }, - "free": [ - "brands" - ] - }, - "wpforms": { - "changes": [ - "4.6.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f298", - "label": "WPForms", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 75.2v361.7c0 24.3-19 43.2-43.2 43.2H43.2C19.3 480 0 461.4 0 436.8V75.2C0 51.1 18.8 32 43.2 32h361.7c24 0 43.1 18.8 43.1 43.2zm-37.3 361.6V75.2c0-3-2.6-5.8-5.8-5.8h-9.3L285.3 144 224 94.1 162.8 144 52.5 69.3h-9.3c-3.2 0-5.8 2.8-5.8 5.8v361.7c0 3 2.6 5.8 5.8 5.8h361.7c3.2 .1 5.8-2.7 5.8-5.8zM150.2 186v37H76.7v-37h73.5zm0 74.4v37.3H76.7v-37.3h73.5zm11.1-147.3l54-43.7H96.8l64.5 43.7zm210 72.9v37h-196v-37h196zm0 74.4v37.3h-196v-37.3h196zm-84.6-147.3l64.5-43.7H232.8l53.9 43.7zM371.3 335v37.3h-99.4V335h99.4z" - } - }, - "free": [ - "brands" - ] - }, - "wpressr": { - "changes": [ - "5.4.2" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f3e4", - "aliases": { - "names": [ - "rendact" - ] - }, - "label": "wpressr", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M248 8C111 8 0 119 0 256s111 248 248 248 248-111 248-248S384.1 8 248 8zm171.3 158.6c-15.18 34.51-30.37 69.02-45.63 103.5-2.44 5.51-6.89 8.24-12.97 8.24-23.02-.01-46.03 .06-69.05-.05-5.12-.03-8.25 1.89-10.34 6.72-10.19 23.56-20.63 47-30.95 70.5-1.54 3.51-4.06 5.29-7.92 5.29-45.94-.01-91.87-.02-137.8 0-3.13 0-5.63-1.15-7.72-3.45-11.21-12.33-22.46-24.63-33.68-36.94-2.69-2.95-2.79-6.18-1.21-9.73 8.66-19.54 17.27-39.1 25.89-58.66 12.93-29.35 25.89-58.69 38.75-88.08 1.7-3.88 4.28-5.68 8.54-5.65 14.24 .1 28.48 .02 42.72 .05 6.24 .01 9.2 4.84 6.66 10.59-13.6 30.77-27.17 61.55-40.74 92.33-5.72 12.99-11.42 25.99-17.09 39-3.91 8.95 7.08 11.97 10.95 5.6 .23-.37-1.42 4.18 30.01-67.69 1.36-3.1 3.41-4.4 6.77-4.39 15.21 .08 30.43 .02 45.64 .04 5.56 .01 7.91 3.64 5.66 8.75-8.33 18.96-16.71 37.9-24.98 56.89-4.98 11.43 8.08 12.49 11.28 5.33 .04-.08 27.89-63.33 32.19-73.16 2.02-4.61 5.44-6.51 10.35-6.5 26.43 .05 52.86 0 79.29 .05 12.44 .02 13.93-13.65 3.9-13.64-25.26 .03-50.52 .02-75.78 .02-6.27 0-7.84-2.47-5.27-8.27 5.78-13.06 11.59-26.11 17.3-39.21 1.73-3.96 4.52-5.79 8.84-5.78 23.09 .06 25.98 .02 130.8 .03 6.08-.01 8.03 2.79 5.62 8.27z" - } - }, - "free": [ - "brands" - ] - }, - "wrench": { - "changes": [ - "2.0.0", - "5.0.0", - "5.0.13", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f0ad", - "aliases": { - "unicodes": { - "composite": [ - "1f527" - ], - "secondary": [ - "10f0ad" - ] - } - }, - "label": "Wrench", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M507.6 122.8c-2.904-12.09-18.25-16.13-27.04-7.338l-76.55 76.56l-83.1-.0002l0-83.1l76.55-76.56c8.791-8.789 4.75-24.14-7.336-27.04c-23.69-5.693-49.34-6.111-75.92 .2484c-61.45 14.7-109.4 66.9-119.2 129.3C189.8 160.8 192.3 186.7 200.1 210.1l-178.1 178.1c-28.12 28.12-28.12 73.69 0 101.8C35.16 504.1 53.56 512 71.1 512s36.84-7.031 50.91-21.09l178.1-178.1c23.46 7.736 49.31 10.24 76.17 6.004c62.41-9.84 114.6-57.8 129.3-119.2C513.7 172.1 513.3 146.5 507.6 122.8zM80 456c-13.25 0-24-10.75-24-24c0-13.26 10.75-24 24-24s24 10.74 24 24C104 445.3 93.25 456 80 456z" - } - }, - "free": [ - "solid" - ] - }, - "x": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "58", - "aliases": { - "unicodes": { - "composite": [ - "78" - ] - } - }, - "label": "X", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M376.6 427.5c11.31 13.58 9.484 33.75-4.094 45.06c-5.984 4.984-13.25 7.422-20.47 7.422c-9.172 0-18.27-3.922-24.59-11.52L192 305.1l-135.4 162.5c-6.328 7.594-15.42 11.52-24.59 11.52c-7.219 0-14.48-2.438-20.47-7.422c-13.58-11.31-15.41-31.48-4.094-45.06l142.9-171.5L7.422 84.5C-3.891 70.92-2.063 50.75 11.52 39.44c13.56-11.34 33.73-9.516 45.06 4.094L192 206l135.4-162.5c11.3-13.58 31.48-15.42 45.06-4.094c13.58 11.31 15.41 31.48 4.094 45.06l-142.9 171.5L376.6 427.5z" - } - }, - "free": [ - "solid" - ] - }, - "x-ray": { - "changes": [ - "5.0.7", - "5.10.2", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f497", - "aliases": { - "unicodes": { - "secondary": [ - "10f497" - ] - } - }, - "label": "X-Ray", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M208 352C199.2 352 192 359.2 192 368C192 376.8 199.2 384 208 384S224 376.8 224 368C224 359.2 216.8 352 208 352zM304 384c8.836 0 16-7.164 16-16c0-8.838-7.164-16-16-16S288 359.2 288 368C288 376.8 295.2 384 304 384zM496 96C504.8 96 512 88.84 512 80v-32C512 39.16 504.8 32 496 32h-480C7.164 32 0 39.16 0 48v32C0 88.84 7.164 96 16 96H32v320H16C7.164 416 0 423.2 0 432v32C0 472.8 7.164 480 16 480h480c8.836 0 16-7.164 16-16v-32c0-8.836-7.164-16-16-16H480V96H496zM416 216C416 220.4 412.4 224 408 224H272v32h104C380.4 256 384 259.6 384 264v16C384 284.4 380.4 288 376 288H272v32h69.33c25.56 0 40.8 28.48 26.62 49.75l-21.33 32C340.7 410.7 330.7 416 319.1 416H192c-10.7 0-20.69-5.347-26.62-14.25l-21.33-32C129.9 348.5 145.1 320 170.7 320H240V288H136C131.6 288 128 284.4 128 280v-16C128 259.6 131.6 256 136 256H240V224H104C99.6 224 96 220.4 96 216v-16C96 195.6 99.6 192 104 192H240V160H136C131.6 160 128 156.4 128 152v-16C128 131.6 131.6 128 136 128H240V104C240 99.6 243.6 96 248 96h16c4.4 0 8 3.6 8 8V128h104C380.4 128 384 131.6 384 136v16C384 156.4 380.4 160 376 160H272v32h136C412.4 192 416 195.6 416 200V216z" - } - }, - "free": [ - "solid" - ] - }, - "xbox": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f412", - "label": "Xbox", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39C93.3 445.8 87 438.3 87 423.4c0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5C483.3 127.3 432.7 77 425.6 77c-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8C367.7 197 427.5 283.1 448.2 346c6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43C189 40.5 251 77.5 255.6 78.4c.7 .1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z" - } - }, - "free": [ - "brands" - ] - }, - "xing": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f168", - "label": "Xing", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5H9.8c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3l-43.9-75.6c-4.3-7.8 .3-14.1 8.5-14.1H100c7.3 0 13.3 4.1 18 12.2l44.7 77.5zM382.6 46.1l-144 253v.3L330.2 466c3.9 7.1 .2 14.1-8.5 14.1h-65.2c-7.6 0-13.6-4-18-12.2l-92.4-168.5c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2h65.7c8 0 12.3 6.7 8.5 14.1z" - } - }, - "free": [ - "brands" - ] - }, - "xmark": { - "changes": [ - "1.0.0", - "5.0.0", - "5.0.13", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f00d", - "aliases": { - "names": [ - "close", - "multiply", - "remove", - "times" - ], - "unicodes": { - "composite": [ - "1f5d9", - "2715", - "2716", - "274c", - "d7" - ], - "secondary": [ - "10f00d" - ] - } - }, - "label": "X Mark", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M310.6 361.4c12.5 12.5 12.5 32.75 0 45.25C304.4 412.9 296.2 416 288 416s-16.38-3.125-22.62-9.375L160 301.3L54.63 406.6C48.38 412.9 40.19 416 32 416S15.63 412.9 9.375 406.6c-12.5-12.5-12.5-32.75 0-45.25l105.4-105.4L9.375 150.6c-12.5-12.5-12.5-32.75 0-45.25s32.75-12.5 45.25 0L160 210.8l105.4-105.4c12.5-12.5 32.75-12.5 45.25 0s12.5 32.75 0 45.25l-105.4 105.4L310.6 361.4z" - } - }, - "free": [ - "solid" - ] - }, - "xmarks-lines": { - "changes": [ - "6.1.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "e59a", - "label": "Xmarks Lines", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M608 32C625.7 32 640 46.33 640 64C640 81.67 625.7 96 608 96H32C14.33 96 0 81.67 0 64C0 46.33 14.33 32 32 32H608zM608 416C625.7 416 640 430.3 640 448C640 465.7 625.7 480 608 480H32C14.33 480 0 465.7 0 448C0 430.3 14.33 416 32 416H608zM7.029 167C16.4 157.7 31.6 157.7 40.97 167L96 222.1L151 167C160.4 157.7 175.6 157.7 184.1 167C194.3 176.4 194.3 191.6 184.1 200.1L129.9 256L184.1 311C194.3 320.4 194.3 335.6 184.1 344.1C175.6 354.3 160.4 354.3 151 344.1L96 289.9L40.97 344.1C31.6 354.3 16.4 354.3 7.029 344.1C-2.343 335.6-2.343 320.4 7.029 311L62.06 256L7.029 200.1C-2.343 191.6-2.343 176.4 7.029 167V167zM320 222.1L375 167C384.4 157.7 399.6 157.7 408.1 167C418.3 176.4 418.3 191.6 408.1 200.1L353.9 256L408.1 311C418.3 320.4 418.3 335.6 408.1 344.1C399.6 354.3 384.4 354.3 375 344.1L320 289.9L264.1 344.1C255.6 354.3 240.4 354.3 231 344.1C221.7 335.6 221.7 320.4 231 311L286.1 256L231 200.1C221.7 191.6 221.7 176.4 231 167C240.4 157.7 255.6 157.7 264.1 167L320 222.1zM455 167C464.4 157.7 479.6 157.7 488.1 167L544 222.1L599 167C608.4 157.7 623.6 157.7 632.1 167C642.3 176.4 642.3 191.6 632.1 200.1L577.9 256L632.1 311C642.3 320.4 642.3 335.6 632.1 344.1C623.6 354.3 608.4 354.3 599 344.1L544 289.9L488.1 344.1C479.6 354.3 464.4 354.3 455 344.1C445.7 335.6 445.7 320.4 455 311L510.1 256L455 200.1C445.7 191.6 445.7 176.4 455 167V167z" - } - }, - "free": [ - "solid" - ] - }, - "y": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "59", - "aliases": { - "unicodes": { - "composite": [ - "79" - ] - } - }, - "label": "Y", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M378 82.61L224 298.3v149.8c0 17.67-14.31 31.1-32 31.1S160 465.7 160 448V298.3L5.969 82.61C-4.313 68.23-.9688 48.25 13.41 37.97c14.34-10.27 34.38-6.922 44.63 7.453L192 232.1l133.1-187.5c10.28-14.37 30.28-17.7 44.63-7.453C384.1 48.25 388.3 68.23 378 82.61z" - } - }, - "free": [ - "solid" - ] - }, - "y-combinator": { - "changes": [ - "4.4.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f23b", - "label": "Y Combinator", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M448 32v448H0V32h448zM236 287.5L313.5 142h-32.7L235 233c-4.7 9.3-9 18.3-12.8 26.8L210 233l-45.2-91h-35l76.7 143.8v94.5H236v-92.8z" - } - }, - "free": [ - "brands" - ] - }, - "yahoo": { - "changes": [ - "4.1.0", - "5.0.0", - "5.0.3", - "5.13.1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f19e", - "label": "Yahoo Logo", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572501, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M223.7 141.1 167 284.2 111 141.1H14.93L120.8 390.2 82.19 480h94.17L317.3 141.1zm105.4 135.8a58.22 58.22 0 1 0 58.22 58.22A58.22 58.22 0 0 0 329.1 276.9zM394.6 32l-93 223.5H406.4L499.1 32z" - } - }, - "free": [ - "brands" - ] - }, - "yammer": { - "changes": [ - "5.8.0", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f840", - "label": "Yammer", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M500.7 159.5a12.78 12.78 0 0 0 -6.4-8.282 13.95 13.95 0 0 0 -10.08-1.125L457.8 156.7l-.043-.2-22.3 5.785-1.243 .333-.608-2.17A369 369 0 0 0 347.5 4.289a14.1 14.1 0 0 0 -19.78-.463l-102.9 102.7H24.95A24.9 24.9 0 0 0 0 131.4V380.4a24.96 24.96 0 0 0 24.92 24.9H224.1L328.1 508a13.67 13.67 0 0 0 19.33 0c.126-.126 .249-.255 .37-.385a368 368 0 0 0 69.58-107.4 403.5 403.5 0 0 0 17.3-50.8v-.028l20.41 5.336 .029-.073L483.3 362a20.25 20.25 0 0 0 2.619 .5 13.36 13.36 0 0 0 4.139-.072 13.5 13.5 0 0 0 10.52-9.924 415.9 415.9 0 0 0 .058-193zM337.1 24.65l.013 .014h-.013zm-110.2 165.2L174.3 281.1a11.34 11.34 0 0 0 -1.489 5.655v46.19a22.04 22.04 0 0 1 -22.04 22h-3.4A22.07 22.07 0 0 1 125.3 332.1V287.3a11.53 11.53 0 0 0 -1.388-5.51l-51.6-92.2a21.99 21.99 0 0 1 19.26-32.73h3.268a22.06 22.06 0 0 1 19.61 11.92l36.36 70.28 37.51-70.51a22.07 22.07 0 0 1 38.56-.695 21.7 21.7 0 0 1 0 21.97zM337.1 24.67a348.1 348.1 0 0 1 75.8 141.3l.564 1.952-114.1 29.6V131.4a25.01 25.01 0 0 0 -24.95-24.9H255.1zm60.5 367.3v-.043l-.014 .014a347.2 347.2 0 0 1 -60.18 95.23l-82.2-81.89h19.18a24.98 24.98 0 0 0 24.95-24.9v-66.2l114.6 29.86A385.2 385.2 0 0 1 397.6 391.1zm84-52.45 .015 .014-50.62-13.13L299.4 292.1V219.6l119.7-30.99 4.468-1.157 39.54-10.25 18.51-4.816A393 393 0 0 1 481.6 339.5z" - } - }, - "free": [ - "brands" - ] - }, - "yandex": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f413", - "label": "Yandex", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 256, - 512 - ], - "width": 256, - "height": 512, - "path": "M153.1 315.8L65.7 512H2l96-209.8c-45.1-22.9-75.2-64.4-75.2-141.1C22.7 53.7 90.8 0 171.7 0H254v512h-55.1V315.8h-45.8zm45.8-269.3h-29.4c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8h29.4V46.5z" - } - }, - "free": [ - "brands" - ] - }, - "yandex-international": { - "changes": [ - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f414", - "label": "Yandex International", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M129.5 512V345.9L18.5 48h55.8l81.8 229.7L250.2 0h51.3L180.8 347.8V512h-51.3z" - } - }, - "free": [ - "brands" - ] - }, - "yarn": { - "changes": [ - "5.6.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f7e3", - "label": "Yarn", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 496, - 512 - ], - "width": 496, - "height": 512, - "path": "M393.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4 .1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3 .8-10.8-5.7 .8-19.2 .8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3 .8 1.4 13.7 .8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM496 256c0 136.9-111.1 248-248 248S0 392.9 0 256 111.1 8 248 8s248 111.1 248 248zm-79.3 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2 .9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4h.1c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4 .2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z" - } - }, - "free": [ - "brands" - ] - }, - "yelp": { - "changes": [ - "4.2.0", - "5.0.0", - "5.7.0", - "5.8.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f1e9", - "label": "Yelp", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M42.9 240.3l99.62 48.61c19.2 9.4 16.2 37.51-4.5 42.71L30.5 358.5a22.79 22.79 0 0 1 -28.21-19.6 197.2 197.2 0 0 1 9-85.32 22.8 22.8 0 0 1 31.61-13.21zm44 239.3a199.4 199.4 0 0 0 79.42 32.11A22.78 22.78 0 0 0 192.9 490l3.9-110.8c.7-21.3-25.5-31.91-39.81-16.1l-74.21 82.4a22.82 22.82 0 0 0 4.09 34.09zm145.3-109.9l58.81 94a22.93 22.93 0 0 0 34 5.5 198.4 198.4 0 0 0 52.71-67.61A23 23 0 0 0 364.2 370l-105.4-34.26c-20.31-6.5-37.81 15.8-26.51 33.91zm148.3-132.2a197.4 197.4 0 0 0 -50.41-69.31 22.85 22.85 0 0 0 -34 4.4l-62 91.92c-11.9 17.7 4.7 40.61 25.2 34.71L366 268.6a23 23 0 0 0 14.61-31.21zM62.11 30.18a22.86 22.86 0 0 0 -9.9 32l104.1 180.4c11.7 20.2 42.61 11.9 42.61-11.4V22.88a22.67 22.67 0 0 0 -24.5-22.8 320.4 320.4 0 0 0 -112.3 30.1z" - } - }, - "free": [ - "brands" - ] - }, - "yen-sign": { - "changes": [ - "3.2.0", - "5.0.0", - "6.0.0-beta1", - "6.0.0-beta3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f157", - "aliases": { - "names": [ - "cny", - "jpy", - "rmb", - "yen" - ], - "unicodes": { - "composite": [ - "a5" - ], - "secondary": [ - "10f157" - ] - } - }, - "label": "Yen Sign", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 320, - 512 - ], - "width": 320, - "height": 512, - "path": "M159.1 198.3L261.4 46.25C271.2 31.54 291 27.57 305.8 37.37C320.5 47.18 324.4 67.04 314.6 81.75L219.8 223.1H272C289.7 223.1 304 238.3 304 255.1C304 273.7 289.7 287.1 272 287.1H192V319.1H272C289.7 319.1 304 334.3 304 352C304 369.7 289.7 384 272 384H192V448C192 465.7 177.7 480 159.1 480C142.3 480 127.1 465.7 127.1 448V384H47.1C30.33 384 15.1 369.7 15.1 352C15.1 334.3 30.33 319.1 47.1 319.1H127.1V287.1H47.1C30.33 287.1 15.1 273.7 15.1 255.1C15.1 238.3 30.33 223.1 47.1 223.1H100.2L5.374 81.75C-4.429 67.04-.456 47.18 14.25 37.37C28.95 27.57 48.82 31.54 58.62 46.25L159.1 198.3z" - } - }, - "free": [ - "solid" - ] - }, - "yin-yang": { - "changes": [ - "5.3.0", - "5.10.2", - "5.11.0", - "5.11.1", - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "f6ad", - "aliases": { - "unicodes": { - "composite": [ - "262f" - ], - "secondary": [ - "10f6ad" - ] - } - }, - "label": "Yin Yang", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 512, - 512 - ], - "width": 512, - "height": 512, - "path": "M256 128C238.3 128 224 142.4 224 160S238.3 192 256 192s31.97-14.38 31.97-32S273.7 128 256 128zM256 0C114.6 0 0 114.6 0 256s114.6 256 256 256s256-114.6 256-256S397.4 0 256 0zM256 384c-17.68 0-31.97-14.38-31.97-32S238.3 320 256 320s31.97 14.38 31.97 32S273.7 384 256 384zM256 256c-53.04 0-96.03 43-96.03 96S202.1 448 256 448c-106.1 0-192.1-86-192.1-192S149.9 64 256 64c53.04 0 96.03 43 96.03 96S309 256 256 256z" - } - }, - "free": [ - "solid" - ] - }, - "yoast": { - "changes": [ - "4.6.0", - "5.0.0", - "5.0.3" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f2b1", - "label": "Yoast", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 448, - 512 - ], - "width": 448, - "height": 512, - "path": "M91.3 76h186l-7 18.9h-179c-39.7 0-71.9 31.6-71.9 70.3v205.4c0 35.4 24.9 70.3 84 70.3V460H91.3C41.2 460 0 419.8 0 370.5V165.2C0 115.9 40.7 76 91.3 76zm229.1-56h66.5C243.1 398.1 241.2 418.9 202.2 459.3c-20.8 21.6-49.3 31.7-78.3 32.7v-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1 .6-12.6-82.1-223.2h61.4L218.2 299 320.4 20zM448 161.5V460H234c6.6-9.6 10.7-16.3 12.1-19.4h182.5V161.5c0-32.5-17.1-51.9-48.2-62.9l6.7-17.6c41.7 13.6 60.9 43.1 60.9 80.5z" - } - }, - "free": [ - "brands" - ] - }, - "youtube": { - "changes": [ - "3.2.0", - "5.0.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f167", - "aliases": { - "unicodes": { - "composite": [ - "f16a" - ] - } - }, - "label": "YouTube", - "voted": false, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 576, - 512 - ], - "width": 576, - "height": 512, - "path": "M549.7 124.1c-6.281-23.65-24.79-42.28-48.28-48.6C458.8 64 288 64 288 64S117.2 64 74.63 75.49c-23.5 6.322-42 24.95-48.28 48.6-11.41 42.87-11.41 132.3-11.41 132.3s0 89.44 11.41 132.3c6.281 23.65 24.79 41.5 48.28 47.82C117.2 448 288 448 288 448s170.8 0 213.4-11.49c23.5-6.321 42-24.17 48.28-47.82 11.41-42.87 11.41-132.3 11.41-132.3s0-89.44-11.41-132.3zm-317.5 213.5V175.2l142.7 81.21-142.7 81.2z" - } - }, - "free": [ - "brands" - ] - }, - "z": { - "changes": [ - "6.0.0-beta1" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "solid" - ], - "unicode": "5a", - "aliases": { - "unicodes": { - "composite": [ - "7a" - ] - } - }, - "label": "Z", - "voted": false, - "svg": { - "solid": { - "last_modified": 1658443573356, - "raw": "", - "viewBox": [ - 0, - 0, - 384, - 512 - ], - "width": 384, - "height": 512, - "path": "M384 448c0 17.67-14.31 32-32 32H32c-12.41 0-23.72-7.188-28.97-18.42c-5.281-11.25-3.562-24.53 4.375-34.06l276.3-331.5H32c-17.69 0-32-14.33-32-32s14.31-32 32-32h320c12.41 0 23.72 7.188 28.97 18.42c5.281 11.25 3.562 24.53-4.375 34.06L100.3 416H352C369.7 416 384 430.3 384 448z" - } - }, - "free": [ - "solid" - ] - }, - "zhihu": { - "changes": [ - "5.2.0" - ], - "ligatures": [], - "search": { - "terms": [] - }, - "styles": [ - "brands" - ], - "unicode": "f63f", - "label": "Zhihu", - "voted": true, - "svg": { - "brands": { - "last_modified": 1658443572502, - "raw": "", - "viewBox": [ - 0, - 0, - 640, - 512 - ], - "width": 640, - "height": 512, - "path": "M170.5 148.1v217.5l23.43 .01 7.71 26.37 42.01-26.37h49.53V148.1H170.5zm97.75 193.9h-27.94l-27.9 17.51-5.08-17.47-11.9-.04V171.8h72.82v170.3zm-118.5-94.39H97.5c1.74-27.1 2.2-51.59 2.2-73.46h51.16s1.97-22.56-8.58-22.31h-88.5c3.49-13.12 7.87-26.66 13.12-40.67 0 0-24.07 0-32.27 21.57-3.39 8.9-13.21 43.14-30.7 78.12 5.89-.64 25.37-1.18 36.84-22.21 2.11-5.89 2.51-6.66 5.14-14.53h28.87c0 10.5-1.2 66.88-1.68 73.44H20.83c-11.74 0-15.56 23.62-15.56 23.62h65.58C66.45 321.1 42.83 363.1 0 396.3c20.49 5.85 40.91-.93 51-9.9 0 0 22.98-20.9 35.59-69.25l53.96 64.94s7.91-26.89-1.24-39.99c-7.58-8.92-28.06-33.06-36.79-41.81L87.9 311.1c4.36-13.98 6.99-27.55 7.87-40.67h61.65s-.09-23.62-7.59-23.62v.01zm412-1.6c20.83-25.64 44.98-58.57 44.98-58.57s-18.65-14.8-27.38-4.06c-6 8.15-36.83 48.2-36.83 48.2l19.23 14.43zm-150.1-59.09c-9.01-8.25-25.91 2.13-25.91 2.13s39.52 55.04 41.12 57.45l19.46-13.73s-25.67-37.61-34.66-45.86h-.01zM640 258.4c-19.78 0-130.9 .93-131.1 .93v-101c4.81 0 12.42-.4 22.85-1.2 40.88-2.41 70.13-4 87.77-4.81 0 0 12.22-27.19-.59-33.44-3.07-1.18-23.17 4.58-23.17 4.58s-165.2 16.49-232.4 18.05c1.6 8.82 7.62 17.08 15.78 19.55 13.31 3.48 22.69 1.7 49.15 .89 24.83-1.6 43.68-2.43 56.51-2.43v99.81H351.4s2.82 22.31 25.51 22.85h107.9v70.92c0 13.97-11.19 21.99-24.48 21.12-14.08 .11-26.08-1.15-41.69-1.81 1.99 3.97 6.33 14.39 19.31 21.84 9.88 4.81 16.17 6.57 26.02 6.57 29.56 0 45.67-17.28 44.89-45.31v-73.32h122.4c9.68 0 8.7-23.78 8.7-23.78l.03-.01z" - } - }, - "free": [ - "brands" - ] - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIcon.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIcon.cs deleted file mode 100644 index 46551fc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIcon.cs +++ /dev/null @@ -1,9 +0,0 @@ -using System.Collections.Generic; - -namespace Projektanker.Icons.Avalonia.FontAwesome -{ - internal class FontAwesomeIcon - { - public Dictionary Svg { get; set; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconKey.Legacy.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconKey.Legacy.cs deleted file mode 100644 index 4dcd40ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconKey.Legacy.cs +++ /dev/null @@ -1,411 +0,0 @@ -using System.Collections.Generic; - -namespace Projektanker.Icons.Avalonia.FontAwesome -{ - internal partial class FontAwesomeIconKey - { - private static readonly Dictionary _legacyToVersion6 = new Dictionary - { - ["ad"] = "rectangle-ad", - ["adjust"] = "circle-half-stroke", - ["air-freshener"] = "spray-can-sparkles", - ["allergies"] = "hand-dots", - ["ambulance"] = "truck-medical", - ["american-sign-language-interpreting"] = "hands-asl-interpreting", - ["angle-double-down"] = "angles-down", - ["angle-double-left"] = "angles-left", - ["angle-double-right"] = "angles-right", - ["angle-double-up"] = "angles-up", - ["angry"] = "face-angry", - ["apple-alt"] = "apple-whole", - ["archive"] = "box-archive", - ["arrow-alt-circle-down"] = "circle-down", - ["arrow-alt-circle-left"] = "circle-left", - ["arrow-alt-circle-right"] = "circle-right", - ["arrow-alt-circle-up"] = "circle-up", - ["arrow-circle-down"] = "circle-arrow-down", - ["arrow-circle-left"] = "circle-arrow-left", - ["arrow-circle-right"] = "circle-arrow-right", - ["arrow-circle-up"] = "circle-arrow-up", - ["arrows"] = "arrows-up-down-left-right", - ["arrows-alt"] = "up-down-left-right", - ["arrows-alt-h"] = "left-right", - ["arrows-alt-v"] = "up-down", - ["arrows-h"] = "arrows-left-right", - ["arrows-v"] = "arrows-up-down", - ["assistive-listening-systems"] = "ear-listen", - ["atlas"] = "book-atlas", - ["backspace"] = "delete-left", - ["balance-scale"] = "scale-balanced", - ["balance-scale-left"] = "scale-unbalanced", - ["balance-scale-right"] = "scale-unbalanced-flip", - ["band-aid"] = "bandage", - ["baseball-ball"] = "baseball", - ["basketball-ball"] = "basketball", - ["beer"] = "beer-mug-empty", - ["bible"] = "book-bible", - ["biking"] = "person-biking", - ["birthday-cake"] = "cake-candles", - ["blind"] = "person-walking-with-cane", - ["book-dead"] = "book-skull", - ["book-reader"] = "book-open-reader", - ["border-style"] = "border-top-left", - ["boxes"] = "boxes-stacked", - ["boxes-alt"] = "boxes-stacked", - ["broadcast-tower"] = "tower-broadcast", - ["burn"] = "fire-flame-simple", - ["bus-alt"] = "bus-simple", - ["calendar-alt"] = "calendar-days", - ["calendar-times"] = "calendar-xmark", - ["camera-alt"] = "camera", - ["car-alt"] = "car-rear", - ["caret-square-down"] = "square-caret-down", - ["caret-square-left"] = "square-caret-left", - ["caret-square-right"] = "square-caret-right", - ["caret-square-up"] = "square-caret-up", - ["chalkboard-teacher"] = "chalkboard-user", - ["check-circle"] = "circle-check", - ["check-square"] = "square-check", - ["chevron-circle-down"] = "circle-chevron-down", - ["chevron-circle-left"] = "circle-chevron-left", - ["chevron-circle-right"] = "circle-chevron-right", - ["chevron-circle-up"] = "circle-chevron-up", - ["clinic-medical"] = "house-chimney-medical", - ["cloud-download"] = "cloud-arrow-down", - ["cloud-download-alt"] = "cloud-arrow-down", - ["cloud-upload"] = "cloud-arrow-up", - ["cloud-upload-alt"] = "cloud-arrow-up", - ["cocktail"] = "martini-glass-citrus", - ["coffee"] = "mug-saucer", - ["cog"] = "gear", - ["cogs"] = "gears", - ["columns"] = "table-columns", - ["comment-alt"] = "message", - ["compress-alt"] = "down-left-and-up-right-to-center", - ["compress-arrows-alt"] = "minimize", - ["concierge-bell"] = "bell-concierge", - ["crop-alt"] = "crop-simple", - ["cut"] = "scissors", - ["deaf"] = "ear-deaf", - ["desktop-alt"] = "desktop", - ["diagnoses"] = "person-dots-from-line", - ["digging"] = "person-digging", - ["digital-tachograph"] = "tachograph-digital", - ["directions"] = "diamond-turn-right", - ["dizzy"] = "face-dizzy", - ["dolly-flatbed"] = "cart-flatbed", - ["donate"] = "circle-dollar-to-slot", - ["dot-circle"] = "circle-dot", - ["drafting-compass"] = "compass-drafting", - ["edit"] = "pen-to-square", - ["ellipsis-h"] = "ellipsis", - ["ellipsis-v"] = "ellipsis-vertical", - ["envelope-square"] = "square-envelope", - ["exchange"] = "arrow-right-arrow-left", - ["exchange-alt"] = "right-left", - ["exclamation-circle"] = "circle-exclamation", - ["exclamation-triangle"] = "triangle-exclamation", - ["expand-alt"] = "up-right-and-down-left-from-center", - ["expand-arrows-alt"] = "maximize", - ["external-link"] = "arrow-up-right-from-square", - ["external-link-alt"] = "up-right-from-square", - ["external-link-square"] = "square-arrow-up-right", - ["external-link-square-alt"] = "square-up-right", - ["fast-backward"] = "backward-fast", - ["fast-forward"] = "forward-fast", - ["feather-alt"] = "feather-pointed", - ["female"] = "person-dress", - ["fighter-jet"] = "jet-fighter", - ["file-alt"] = "file-lines", - ["file-archive"] = "file-zipper", - ["file-download"] = "file-arrow-down", - ["file-edit"] = "file-pen", - ["file-medical-alt"] = "file-waveform", - ["file-upload"] = "file-arrow-up", - ["fire-alt"] = "fire-flame-curved", - ["first-aid"] = "kit-medical", - ["fist-raised"] = "hand-fist", - ["flushed"] = "face-flushed", - ["font-awesome-alt"] = "square-font-awesome-stroke", - ["font-awesome-flag"] = "font-awesome", - ["font-awesome-logo-full"] = "font-awesome", - ["football-ball"] = "football", - ["frown"] = "face-frown", - ["frown-open"] = "face-frown-open", - ["funnel-dollar"] = "filter-circle-dollar", - ["glass-cheers"] = "champagne-glasses", - ["glass-martini"] = "martini-glass-empty", - ["glass-martini-alt"] = "martini-glass", - ["glass-whiskey"] = "whiskey-glass", - ["globe-africa"] = "earth-africa", - ["globe-americas"] = "earth-americas", - ["globe-asia"] = "earth-asia", - ["globe-europe"] = "earth-europe", - ["golf-ball"] = "golf-ball-tee", - ["grimace"] = "face-grimace", - ["grin"] = "face-grin", - ["grin-alt"] = "face-grin-wide", - ["grin-beam"] = "face-grin-beam", - ["grin-beam-sweat"] = "face-grin-beam-sweat", - ["grin-hearts"] = "face-grin-hearts", - ["grin-squint"] = "face-grin-squint", - ["grin-squint-tears"] = "face-grin-squint-tears", - ["grin-stars"] = "face-grin-stars", - ["grin-tears"] = "face-grin-tears", - ["grin-tongue"] = "face-grin-tongue", - ["grin-tongue-squint"] = "face-grin-tongue-squint", - ["grin-tongue-wink"] = "face-grin-tongue-wink", - ["grin-wink"] = "face-grin-wink", - ["grip-horizontal"] = "grip", - ["h-square"] = "square-h", - ["hamburger"] = "burger", - ["hand-holding-usd"] = "hand-holding-dollar", - ["hand-holding-water"] = "hand-holding-droplet", - ["hand-paper"] = "hand", - ["hand-rock"] = "hand-back-fist", - ["hands-helping"] = "handshake-angle", - ["hands-wash"] = "hands-bubbles", - ["handshake-alt"] = "handshake-simple", - ["handshake-alt-slash"] = "handshake-simple-slash", - ["hard-hat"] = "helmet-safety", - ["hdd"] = "hard-drive", - ["headphones-alt"] = "headphones-simple", - ["heart-broken"] = "heart-crack", - ["heartbeat"] = "heart-pulse", - ["hiking"] = "person-hiking", - ["history"] = "clock-rotate-left", - ["home"] = "house", - ["home-alt"] = "house", - ["home-lg"] = "house-chimney", - ["home-lg-alt"] = "house", - ["hospital-alt"] = "hospital", - ["hospital-symbol"] = "circle-h", - ["hot-tub"] = "hot-tub-person", - ["hourglass-half"] = "hourglass", - ["house-damage"] = "house-chimney-crack", - ["hryvnia"] = "hryvnia-sign", - ["id-card-alt"] = "id-card-clip", - ["info-circle"] = "circle-info", - ["innosoft"] = "42-group", - ["journal-whills"] = "book-journal-whills", - ["kiss"] = "face-kiss", - ["kiss-beam"] = "face-kiss-beam", - ["kiss-wink-heart"] = "face-kiss-wink-heart", - ["landmark-alt"] = "landmark-dome", - ["laptop-house"] = "house-laptop", - ["laugh"] = "face-laugh", - ["laugh-beam"] = "face-laugh-beam", - ["laugh-squint"] = "face-laugh-squint", - ["laugh-wink"] = "face-laugh-wink", - ["level-down"] = "arrow-turn-down", - ["level-down-alt"] = "turn-down", - ["level-up"] = "arrow-turn-up", - ["level-up-alt"] = "turn-up", - ["list-alt"] = "rectangle-list", - ["location"] = "location-crosshairs", - ["long-arrow-alt-down"] = "down-long", - ["long-arrow-alt-left"] = "left-long", - ["long-arrow-alt-right"] = "right-long", - ["long-arrow-alt-up"] = "up-long", - ["long-arrow-down"] = "arrow-down-long", - ["long-arrow-left"] = "arrow-left-long", - ["long-arrow-right"] = "arrow-right-long", - ["long-arrow-up"] = "arrow-up-long", - ["low-vision"] = "eye-low-vision", - ["luggage-cart"] = "cart-flatbed-suitcase", - ["magic"] = "wand-magic", - ["mail-bulk"] = "envelopes-bulk", - ["male"] = "person", - ["map-marked"] = "map-location", - ["map-marked-alt"] = "map-location-dot", - ["map-marker"] = "location-pin", - ["map-marker-alt"] = "location-dot", - ["map-signs"] = "signs-post", - ["mars-stroke-h"] = "mars-stroke-right", - ["mars-stroke-v"] = "mars-stroke-up", - ["medium-m"] = "medium", - ["medkit"] = "suitcase-medical", - ["meh"] = "face-meh", - ["meh-blank"] = "face-meh-blank", - ["meh-rolling-eyes"] = "face-rolling-eyes", - ["microphone-alt"] = "microphone-lines", - ["microphone-alt-slash"] = "microphone-lines-slash", - ["minus-circle"] = "circle-minus", - ["minus-square"] = "square-minus", - ["mobile-alt"] = "mobile-screen-button", - ["mobile-android"] = "mobile", - ["mobile-android-alt"] = "mobile-screen", - ["money-bill-alt"] = "money-bill-1", - ["money-bill-wave-alt"] = "money-bill-1-wave", - ["money-check-alt"] = "money-check-dollar", - ["mouse"] = "computer-mouse", - ["mouse-pointer"] = "arrow-pointer", - ["paint-brush"] = "paintbrush", - ["parking"] = "square-parking", - ["pastafarianism"] = "spaghetti-monster-flying", - ["pause-circle"] = "circle-pause", - ["pen-alt"] = "pen-clip", - ["pen-square"] = "square-pen", - ["pencil-alt"] = "pencil", - ["pencil-ruler"] = "pen-ruler", - ["people-arrows"] = "people-arrows-left-right", - ["percentage"] = "percent", - ["phone-alt"] = "phone-flip", - ["phone-square"] = "square-phone", - ["phone-square-alt"] = "square-phone-flip", - ["photo-video"] = "photo-film", - ["play-circle"] = "circle-play", - ["plus-circle"] = "circle-plus", - ["plus-square"] = "square-plus", - ["poll"] = "square-poll-vertical", - ["poll-h"] = "square-poll-horizontal", - ["portrait"] = "image-portrait", - ["pound-sign"] = "sterling-sign", - ["pray"] = "person-praying", - ["praying-hands"] = "hands-praying", - ["prescription-bottle-alt"] = "prescription-bottle-medical", - ["procedures"] = "bed-pulse", - ["project-diagram"] = "diagram-project", - ["question-circle"] = "circle-question", - ["quran"] = "book-quran", - ["radiation-alt"] = "circle-radiation", - ["random"] = "shuffle", - ["redo"] = "arrow-rotate-right", - ["redo-alt"] = "rotate-right", - ["remove-format"] = "text-slash", - ["rss-square"] = "square-rss", - ["running"] = "person-running", - ["sad-cry"] = "face-sad-cry", - ["sad-tear"] = "face-sad-tear", - ["save"] = "floppy-disk", - ["search"] = "magnifying-glass", - ["search-dollar"] = "magnifying-glass-dollar", - ["search-location"] = "magnifying-glass-location", - ["search-minus"] = "magnifying-glass-minus", - ["search-plus"] = "magnifying-glass-plus", - ["share-alt"] = "share-nodes", - ["share-alt-square"] = "square-share-nodes", - ["share-square"] = "share-from-square", - ["shipping-fast"] = "truck-fast", - ["shopping-bag"] = "bag-shopping", - ["shopping-basket"] = "basket-shopping", - ["shopping-cart"] = "cart-shopping", - ["shuttle-van"] = "van-shuttle", - ["sign"] = "sign-hanging", - ["sign-in"] = "arrow-right-to-bracket", - ["sign-in-alt"] = "right-to-bracket", - ["sign-language"] = "hands", - ["sign-out"] = "arrow-right-from-bracket", - ["sign-out-alt"] = "right-from-bracket", - ["skating"] = "person-skating", - ["skiing"] = "person-skiing", - ["skiing-nordic"] = "person-skiing-nordic", - ["slack-hash"] = "slack", - ["sliders-h"] = "sliders", - ["smile"] = "face-smile", - ["smile-beam"] = "face-smile-beam", - ["smile-wink"] = "face-smile-wink", - ["smoking-ban"] = "ban-smoking", - ["sms"] = "comment-sms", - ["snapchat-ghost"] = "snapchat", - ["snowboarding"] = "person-snowboarding", - ["sort-alpha-down"] = "arrow-down-a-z", - ["sort-alpha-down-alt"] = "arrow-down-z-a", - ["sort-alpha-up"] = "arrow-up-a-z", - ["sort-alpha-up-alt"] = "arrow-up-z-a", - ["sort-amount-down"] = "arrow-down-wide-short", - ["sort-amount-down-alt"] = "arrow-down-short-wide", - ["sort-amount-up"] = "arrow-up-wide-short", - ["sort-amount-up-alt"] = "arrow-up-short-wide", - ["sort-numeric-down"] = "arrow-down-1-9", - ["sort-numeric-down-alt"] = "arrow-down-9-1", - ["sort-numeric-up"] = "arrow-up-1-9", - ["sort-numeric-up-alt"] = "arrow-up-9-1", - ["space-shuttle"] = "shuttle-space", - ["square-root-alt"] = "square-root-variable", - ["star-half-alt"] = "star-half-stroke", - ["step-backward"] = "backward-step", - ["step-forward"] = "forward-step", - ["sticky-note"] = "note-sticky", - ["stop-circle"] = "circle-stop", - ["store-alt"] = "shop", - ["store-alt-slash"] = "shop-slash", - ["stream"] = "bars-staggered", - ["subway"] = "train-subway", - ["surprise"] = "face-surprise", - ["swimmer"] = "person-swimming", - ["swimming-pool"] = "water-ladder", - ["sync"] = "arrows-rotate", - ["sync-alt"] = "rotate", - ["table-tennis"] = "table-tennis-paddle-ball", - ["tablet-alt"] = "tablet-screen-button", - ["tablet-android"] = "tablet", - ["tachometer"] = "gauge-simple", - ["tachometer-alt"] = "gauge", - ["tachometer-alt-fast"] = "gauge", - ["tasks"] = "list-check", - ["tasks-alt"] = "bars-progress", - ["telegram-plane"] = "telegram", - ["temperature-down"] = "temperature-arrow-down", - ["temperature-up"] = "temperature-arrow-up", - ["tenge"] = "tenge-sign", - ["th"] = "table-cells", - ["th-large"] = "table-cells-large", - ["th-list"] = "table-list", - ["theater-masks"] = "masks-theater", - ["thermometer-empty"] = "temperature-empty", - ["thermometer-full"] = "temperature-full", - ["thermometer-half"] = "temperature-half", - ["thermometer-quarter"] = "temperature-quarter", - ["thermometer-three-quarters"] = "temperature-three-quarters", - ["thunderstorm"] = "cloud-bolt", - ["ticket-alt"] = "ticket-simple", - ["times"] = "xmark", - ["times-circle"] = "circle-xmark", - ["times-square"] = "square-xmark", - ["tint"] = "droplet", - ["tint-slash"] = "droplet-slash", - ["tired"] = "face-tired", - ["tools"] = "screwdriver-wrench", - ["torah"] = "scroll-torah", - ["tram"] = "train-tram", - ["transgender-alt"] = "transgender", - ["trash-alt"] = "trash-can", - ["trash-restore"] = "trash-arrow-up", - ["trash-restore-alt"] = "trash-can-arrow-up", - ["truck-loading"] = "truck-ramp-box", - ["tshirt"] = "shirt", - ["tv-alt"] = "tv", - ["undo"] = "arrow-rotate-left", - ["undo-alt"] = "rotate-left", - ["university"] = "building-columns", - ["unlink"] = "link-slash", - ["unlock-alt"] = "unlock-keyhole", - ["user-alt"] = "user-large", - ["user-alt-slash"] = "user-large-slash", - ["user-circle"] = "circle-user", - ["user-cog"] = "user-gear", - ["user-edit"] = "user-pen", - ["user-friends"] = "user-group", - ["user-md"] = "user-doctor", - ["user-times"] = "user-xmark", - ["users-cog"] = "users-gear", - ["utensil-spoon"] = "spoon", - ["volleyball-ball"] = "volleyball", - ["volume-down"] = "volume-low", - ["volume-mute"] = "volume-xmark", - ["volume-up"] = "volume-high", - ["vote-yea"] = "check-to-slot", - ["walking"] = "person-walking", - ["weight"] = "weight-scale", - ["window-close"] = "rectangle-xmark", - }; - - private static string SupportLegacy(string value) - { - return _legacyToVersion6.TryGetValue(value, out var result) - ? result - : value; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconKey.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconKey.cs deleted file mode 100644 index 5f479816..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconKey.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; - -namespace Projektanker.Icons.Avalonia.FontAwesome -{ - internal partial class FontAwesomeIconKey - { - private const string _faKeyPrefix = "fa-"; - public string Value { get; set; } - public Style? Style { get; set; } - - public static bool TryParse(string value, out FontAwesomeIconKey key) - { - var parts = value.Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); - - if (parts.Length == 1) - { - key = new FontAwesomeIconKey - { - Value = GetValue(parts[0]), - }; - return true; - } - - if (parts.Length == 2) - { - key = new FontAwesomeIconKey - { - Style = GetStyle(parts[0]), - Value = GetValue(parts[1]), - }; - - return true; - } - - key = null; - return false; - } - - private static Style? GetStyle(string value) - { - switch (value.ToUpperInvariant()) - { - case "FA-SOLID": - case "FAS": - return FontAwesome.Style.Solid; - - case "FA-REGULAR": - case "FAR": - return FontAwesome.Style.Regular; - - case "FA-BRANDS": - case "FAB": - return FontAwesome.Style.Brands; - - default: - return null; - } - } - - private static string GetValue(string input) - { - var value = input.Length <= _faKeyPrefix.Length - ? string.Empty - : input.Substring(_faKeyPrefix.Length); - - return SupportLegacy(value); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconProvider.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconProvider.cs deleted file mode 100644 index f19c2404..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/FontAwesomeIconProvider.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Reflection; -using System.Text.Json; -using System.Text.Json.Serialization; - -namespace Projektanker.Icons.Avalonia.FontAwesome -{ - /// - /// Implements the interface to provide font-awesome icons. - /// - public class FontAwesomeIconProvider : IIconProvider - { - private const string _faProviderPrefix = "fa"; - private static readonly Lazy> _lazyIcons = new Lazy>(Parse); - - public string Prefix => _faProviderPrefix; - private static Dictionary Icons => _lazyIcons.Value; - - /// - public string GetIconPath(string value) - { - if (!FontAwesomeIconKey.TryParse(value, out FontAwesomeIconKey key)) - { - throw new KeyNotFoundException($"FontAwesome Icon \"{value}\" not found!"); - } - else if (!Icons.TryGetValue(key.Value, out FontAwesomeIcon icon)) - { - throw new KeyNotFoundException($"FontAwesome Icon \"{key.Value}\" not found!"); - } - else if (!key.Style.HasValue) - { - return icon.Svg.Values.First().Path; - } - else if (icon.Svg.TryGetValue(key.Style.Value, out Svg svg)) - { - return svg.Path; - } - - throw new KeyNotFoundException($"FontAwesome Style \"{key.Style}\" not found!"); - } - - private static Dictionary Parse() - { - var assembly = Assembly.GetExecutingAssembly(); - var resourceName = $"{assembly.GetName().Name}.Assets.icons.json"; - using (var stream = assembly.GetManifestResourceStream(resourceName)) - { - var result = JsonSerializer.Deserialize>( - stream, - new JsonSerializerOptions() - { - PropertyNameCaseInsensitive = true, - Converters = { new JsonStringEnumConverter() } - }); - - return result; - } - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Projektanker.Icons.Avalonia.FontAwesome.csproj b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Projektanker.Icons.Avalonia.FontAwesome.csproj deleted file mode 100644 index c03ac92e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Projektanker.Icons.Avalonia.FontAwesome.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - netstandard2.0 - A library to easily display FontAwesome icons in an Avalonia App. - - - - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Style.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Style.cs deleted file mode 100644 index f61a911f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Style.cs +++ /dev/null @@ -1,20 +0,0 @@ -namespace Projektanker.Icons.Avalonia.FontAwesome -{ - internal enum Style - { - /// - /// Solid - /// - Solid, - - /// - /// Regular - /// - Regular, - - /// - /// Brand - /// - Brands, - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Svg.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Svg.cs deleted file mode 100644 index 5d427717..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.FontAwesome/Svg.cs +++ /dev/null @@ -1,7 +0,0 @@ -namespace Projektanker.Icons.Avalonia.FontAwesome -{ - internal class Svg - { - public string Path { get; set; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign.Test/MaterialDesignIconProviderTest.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign.Test/MaterialDesignIconProviderTest.cs deleted file mode 100644 index 6c512ffb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign.Test/MaterialDesignIconProviderTest.cs +++ /dev/null @@ -1,47 +0,0 @@ -using System; -using System.Collections.Generic; -using FluentAssertions; -using SkiaSharp; -using Xunit; - -namespace Projektanker.Icons.Avalonia.MaterialDesign.Test -{ - public class MaterialDesignIconProviderTest - { - private readonly IIconProvider _iconProvider = new MaterialDesignIconProvider(); - - [Theory] - [InlineData("ab-testing")] - [InlineData("arrow-left")] - [InlineData("arrow-right")] - [InlineData("github")] - public void Icon_Should_Exist_And_Be_Valid_SVG_Path(string value) - { - // Act #1 - var path = _iconProvider.GetIconPath($"mdi-{value}"); - - // Assert #1 - path.Should().NotBeNullOrEmpty(); - - // Act #2 - var skiaPath = SKPath.ParseSvgPathData(path); - - // Assert #2 - skiaPath.Should().NotBeNull(); - skiaPath.Bounds.IsEmpty.Should().BeFalse(); - } - - [Theory] - [InlineData("mdi-you-cant-find-me")] - [InlineData("mdi")] - public void IconProvider_Should_Throw_Exception_If_Icon_Does_Not_Exist(string value) - { - // Act - Func func = () => _iconProvider.GetIconPath(value); - - // Assert - func.Should().Throw() - .WithMessage($"*{value}*"); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign.Test/Projektanker.Icons.Avalonia.MaterialDesign.Test.csproj b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign.Test/Projektanker.Icons.Avalonia.MaterialDesign.Test.csproj deleted file mode 100644 index c2d56276..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign.Test/Projektanker.Icons.Avalonia.MaterialDesign.Test.csproj +++ /dev/null @@ -1,27 +0,0 @@ - - - - net6.0 - false - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - - diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ab-testing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ab-testing.svg deleted file mode 100644 index 90cdab0a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ab-testing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abacus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abacus.svg deleted file mode 100644 index e18f68b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abacus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abjad-arabic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abjad-arabic.svg deleted file mode 100644 index 32909c52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abjad-arabic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abjad-hebrew.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abjad-hebrew.svg deleted file mode 100644 index 6aaaa1c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abjad-hebrew.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abugida-devanagari.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abugida-devanagari.svg deleted file mode 100644 index a5172247..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abugida-devanagari.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abugida-thai.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abugida-thai.svg deleted file mode 100644 index 1a41d705..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/abugida-thai.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-check.svg deleted file mode 100644 index 39aeb2e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-minus.svg deleted file mode 100644 index 3fdc9b31..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-network-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-network-off.svg deleted file mode 100644 index 1d34fe4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-network-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-network.svg deleted file mode 100644 index 0f58df81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-off.svg deleted file mode 100644 index e256ae86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-plus.svg deleted file mode 100644 index 3dfc00f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-remove.svg deleted file mode 100644 index f06d1cf2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point.svg deleted file mode 100644 index 5e774954..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/access-point.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-alert-outline.svg deleted file mode 100644 index ee6a913e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-alert.svg deleted file mode 100644 index 33395059..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-down-outline.svg deleted file mode 100644 index a5df0efb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-down.svg deleted file mode 100644 index 91370398..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-left-outline.svg deleted file mode 100644 index 782d66d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-left.svg deleted file mode 100644 index 456c90d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-right-outline.svg deleted file mode 100644 index f5dee89f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-right.svg deleted file mode 100644 index 89789a8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-up-outline.svg deleted file mode 100644 index fb60c40b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-up.svg deleted file mode 100644 index 3c8f7d4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-badge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-badge-outline.svg deleted file mode 100644 index 20f92721..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-badge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-badge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-badge.svg deleted file mode 100644 index 6789fb18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-multiple-outline.svg deleted file mode 100644 index 0c9ed2c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-multiple.svg deleted file mode 100644 index 5f7a68e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-outline.svg deleted file mode 100644 index fe84bcfe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box.svg deleted file mode 100644 index 7a0a3436..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cancel-outline.svg deleted file mode 100644 index 6e5578bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cancel.svg deleted file mode 100644 index 2a1efd19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-card-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-card-outline.svg deleted file mode 100644 index 32139258..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-card-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-card.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-card.svg deleted file mode 100644 index 1bdde1ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cash-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cash-outline.svg deleted file mode 100644 index cb90c160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cash-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cash.svg deleted file mode 100644 index 0b1a3125..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-check-outline.svg deleted file mode 100644 index 57b16138..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-check.svg deleted file mode 100644 index cd87c9a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child-circle.svg deleted file mode 100644 index 18baa77a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child-outline.svg deleted file mode 100644 index 4f05c49a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child.svg deleted file mode 100644 index 96fe83e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-child.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-circle-outline.svg deleted file mode 100644 index fd7c6350..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-circle.svg deleted file mode 100644 index fa2125f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-clock-outline.svg deleted file mode 100644 index 294c335e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-clock.svg deleted file mode 100644 index 8a677236..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cog-outline.svg deleted file mode 100644 index 83be7797..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cog.svg deleted file mode 100644 index a4c54318..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-convert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-convert-outline.svg deleted file mode 100644 index d763c0bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-convert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-convert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-convert.svg deleted file mode 100644 index b6a4c32a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-convert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cowboy-hat-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cowboy-hat-outline.svg deleted file mode 100644 index e2d96450..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cowboy-hat-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cowboy-hat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cowboy-hat.svg deleted file mode 100644 index c8dbea79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-cowboy-hat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-credit-card-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-credit-card-outline.svg deleted file mode 100644 index 21fe4eb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-credit-card-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-credit-card.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-credit-card.svg deleted file mode 100644 index cdf6abf5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-credit-card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-details-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-details-outline.svg deleted file mode 100644 index dd7830a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-details-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-details.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-details.svg deleted file mode 100644 index 3d0c8a5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-details.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-edit-outline.svg deleted file mode 100644 index aa6d505c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-edit.svg deleted file mode 100644 index c5b029a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-eye-outline.svg deleted file mode 100644 index 4749c14d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-eye.svg deleted file mode 100644 index ae2abbbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-filter-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-filter-outline.svg deleted file mode 100644 index 5da49c24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-filter-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-filter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-filter.svg deleted file mode 100644 index 49f54df9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-group-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-group-outline.svg deleted file mode 100644 index 0895f406..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-group-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-group.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-group.svg deleted file mode 100644 index 992ab7e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-group.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-hard-hat-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-hard-hat-outline.svg deleted file mode 100644 index 9bc48865..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-hard-hat-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-hard-hat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-hard-hat.svg deleted file mode 100644 index 49222569..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-hard-hat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-heart-outline.svg deleted file mode 100644 index 6c7b8b41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-heart.svg deleted file mode 100644 index 3db01b09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-injury-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-injury-outline.svg deleted file mode 100644 index 68ec42ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-injury-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-injury.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-injury.svg deleted file mode 100644 index 4f841ac6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-injury.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-key-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-key-outline.svg deleted file mode 100644 index a8edbd25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-key-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-key.svg deleted file mode 100644 index b081ae52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-open-outline.svg deleted file mode 100644 index 14db73ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-open.svg deleted file mode 100644 index 8a057f45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-outline.svg deleted file mode 100644 index b995a024..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock.svg deleted file mode 100644 index 172f4671..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-minus-outline.svg deleted file mode 100644 index a14536a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-minus.svg deleted file mode 100644 index 8ac45c07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-check-outline.svg deleted file mode 100644 index d7b33383..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-check.svg deleted file mode 100644 index 0db79767..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-minus-outline.svg deleted file mode 100644 index 3c88ca1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-minus.svg deleted file mode 100644 index 2226dc0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-outline.svg deleted file mode 100644 index cc780de9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-plus-outline.svg deleted file mode 100644 index d508c8fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-plus.svg deleted file mode 100644 index fae8f135..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-remove-outline.svg deleted file mode 100644 index 2871be1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-remove.svg deleted file mode 100644 index e6064dff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple.svg deleted file mode 100644 index 17e3a2b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-music-outline.svg deleted file mode 100644 index b5dab128..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-music.svg deleted file mode 100644 index b83a7edd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-off-outline.svg deleted file mode 100644 index 2923d9f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-off.svg deleted file mode 100644 index 96cc55c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-outline.svg deleted file mode 100644 index 0a606121..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network.svg deleted file mode 100644 index 000fd65b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-off-outline.svg deleted file mode 100644 index ad5129ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-off.svg deleted file mode 100644 index e194ec83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-outline.svg deleted file mode 100644 index 2788cfda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-plus-outline.svg deleted file mode 100644 index 8655c152..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-plus.svg deleted file mode 100644 index 5e925156..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-question-outline.svg deleted file mode 100644 index 7b19133c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-question.svg deleted file mode 100644 index 94fe9d36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-reactivate-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-reactivate-outline.svg deleted file mode 100644 index 42817cb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-reactivate-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-reactivate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-reactivate.svg deleted file mode 100644 index ed05a413..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-reactivate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-remove-outline.svg deleted file mode 100644 index f6c4a625..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-remove.svg deleted file mode 100644 index 4d78a62c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-school-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-school-outline.svg deleted file mode 100644 index c600a647..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-school-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-school.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-school.svg deleted file mode 100644 index bb812c50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-school.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-search-outline.svg deleted file mode 100644 index 814d2470..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-search.svg deleted file mode 100644 index ac2765c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-settings-outline.svg deleted file mode 100644 index 918afa99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-settings.svg deleted file mode 100644 index 280a3112..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-star-outline.svg deleted file mode 100644 index f1b63e76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-star.svg deleted file mode 100644 index 725020af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-circle-outline.svg deleted file mode 100644 index d498f34f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-circle.svg deleted file mode 100644 index b3681129..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-outline.svg deleted file mode 100644 index 7b20a1fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor.svg deleted file mode 100644 index 4bceee0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-supervisor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-switch-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-switch-outline.svg deleted file mode 100644 index d02d19e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-switch-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-switch.svg deleted file mode 100644 index 0e425518..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-sync-outline.svg deleted file mode 100644 index 04728e75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-sync.svg deleted file mode 100644 index b9a57a39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-hat-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-hat-outline.svg deleted file mode 100644 index 80a395d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-hat-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-hat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-hat.svg deleted file mode 100644 index 63e8c13a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-hat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-outline.svg deleted file mode 100644 index 6f64c8e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-off-outline.svg deleted file mode 100644 index 8d828362..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-off.svg deleted file mode 100644 index dd23183d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-outline.svg deleted file mode 100644 index 252f0857..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice.svg deleted file mode 100644 index 5daa1d3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-voice.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-woman.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-woman.svg deleted file mode 100644 index ccdbd6f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie-woman.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie.svg deleted file mode 100644 index e4ceb8a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-tie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-voice-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-voice-off.svg deleted file mode 100644 index 0facc9d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-voice-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-voice.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-voice.svg deleted file mode 100644 index ab59337a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-voice.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-wrench-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-wrench-outline.svg deleted file mode 100644 index 5fe11a3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-wrench-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-wrench.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-wrench.svg deleted file mode 100644 index 10b5a755..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account-wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account.svg deleted file mode 100644 index f10dedee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/adjust.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/adjust.svg deleted file mode 100644 index 231e3f60..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/adjust.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/advertisements-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/advertisements-off.svg deleted file mode 100644 index 41ccf1d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/advertisements-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/advertisements.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/advertisements.svg deleted file mode 100644 index e15b5c21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/advertisements.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-conditioner.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-conditioner.svg deleted file mode 100644 index 29e95826..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-conditioner.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-filter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-filter.svg deleted file mode 100644 index 99fb3ff7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-horn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-horn.svg deleted file mode 100644 index dcf96d6e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-horn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-humidifier-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-humidifier-off.svg deleted file mode 100644 index 4d9d16bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-humidifier-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-humidifier.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-humidifier.svg deleted file mode 100644 index 39e66026..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-humidifier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-purifier-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-purifier-off.svg deleted file mode 100644 index 03875831..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-purifier-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-purifier.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-purifier.svg deleted file mode 100644 index cfb1be2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/air-purifier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airbag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airbag.svg deleted file mode 100644 index f3edf761..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airbag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airballoon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airballoon-outline.svg deleted file mode 100644 index 776304f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airballoon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airballoon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airballoon.svg deleted file mode 100644 index 1976b199..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airballoon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-alert.svg deleted file mode 100644 index 5097d938..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-check.svg deleted file mode 100644 index f8c113c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-clock.svg deleted file mode 100644 index 6c99bbf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-cog.svg deleted file mode 100644 index 38b80de9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-edit.svg deleted file mode 100644 index 984f3171..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-landing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-landing.svg deleted file mode 100644 index bb25f2f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-landing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-marker.svg deleted file mode 100644 index 14fde659..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-minus.svg deleted file mode 100644 index d70bd9b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-off.svg deleted file mode 100644 index 7604d67e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-plus.svg deleted file mode 100644 index b887c295..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-remove.svg deleted file mode 100644 index 436e47b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-search.svg deleted file mode 100644 index 8e8ef95e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-settings.svg deleted file mode 100644 index 38070ae8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-takeoff.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-takeoff.svg deleted file mode 100644 index 74d2b8d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane-takeoff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane.svg deleted file mode 100644 index 1a018056..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airplane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airport.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airport.svg deleted file mode 100644 index 9adb12f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/airport.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-bell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-bell.svg deleted file mode 100644 index 12af1429..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-bell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-check.svg deleted file mode 100644 index 42ced6fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-off-outline.svg deleted file mode 100644 index 22c1b759..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-off.svg deleted file mode 100644 index fe82dc02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-outline.svg deleted file mode 100644 index 914e623b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light.svg deleted file mode 100644 index f9dbd669..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-multiple.svg deleted file mode 100644 index 4df0d293..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-note-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-note-off.svg deleted file mode 100644 index 3d5fedfa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-note-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-note.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-note.svg deleted file mode 100644 index 2c1598ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-note.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-off.svg deleted file mode 100644 index 2a5963f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-panel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-panel-outline.svg deleted file mode 100644 index abdc46b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-panel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-panel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-panel.svg deleted file mode 100644 index 8df6e13d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-panel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-plus.svg deleted file mode 100644 index 1a67fbce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-snooze.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-snooze.svg deleted file mode 100644 index 61ae6b2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm-snooze.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm.svg deleted file mode 100644 index 888a5273..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alarm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/album.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/album.svg deleted file mode 100644 index 8a57df3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/album.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-box-outline.svg deleted file mode 100644 index 6c8728c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-box.svg deleted file mode 100644 index 512f51f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-check-outline.svg deleted file mode 100644 index 6dc5cc87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-check.svg deleted file mode 100644 index 7cb33d58..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-outline.svg deleted file mode 100644 index e80b1b54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle.svg deleted file mode 100644 index 6a14f1ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-decagram-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-decagram-outline.svg deleted file mode 100644 index 052e0eb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-decagram-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-decagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-decagram.svg deleted file mode 100644 index bcc3ee34..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-decagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-minus-outline.svg deleted file mode 100644 index 65b23013..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-minus.svg deleted file mode 100644 index 37320282..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagon-outline.svg deleted file mode 100644 index 321721f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagon.svg deleted file mode 100644 index 0883901d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagram-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagram-outline.svg deleted file mode 100644 index edeae18f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagram-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagram.svg deleted file mode 100644 index a9654da5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-octagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-outline.svg deleted file mode 100644 index 1cbe6def..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-plus-outline.svg deleted file mode 100644 index 1fc38cb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-plus.svg deleted file mode 100644 index 6c50abf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-remove-outline.svg deleted file mode 100644 index d93bc714..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-remove.svg deleted file mode 100644 index 228aa9b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-rhombus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-rhombus-outline.svg deleted file mode 100644 index 75f7d169..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-rhombus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-rhombus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-rhombus.svg deleted file mode 100644 index 51829286..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert-rhombus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert.svg deleted file mode 100644 index 706f09f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alien-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alien-outline.svg deleted file mode 100644 index 90030ae8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alien-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alien.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alien.svg deleted file mode 100644 index 1c13a5dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alien.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-center.svg deleted file mode 100644 index 3613f4e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-distribute.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-distribute.svg deleted file mode 100644 index d516b96b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-distribute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-left.svg deleted file mode 100644 index 77b42046..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-right.svg deleted file mode 100644 index 6719a4ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-horizontal-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-bottom.svg deleted file mode 100644 index afd8068c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-center.svg deleted file mode 100644 index 07432efc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-distribute.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-distribute.svg deleted file mode 100644 index eb060066..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-distribute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-top.svg deleted file mode 100644 index cdf44fb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/align-vertical-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive-box-outline.svg deleted file mode 100644 index 21a5bccf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive-box.svg deleted file mode 100644 index 22c2e7e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive.svg deleted file mode 100644 index 3b8698b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/all-inclusive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/allergy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/allergy.svg deleted file mode 100644 index d491f2a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/allergy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-box-outline.svg deleted file mode 100644 index 81f8fb78..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-box.svg deleted file mode 100644 index c681963b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-circle-outline.svg deleted file mode 100644 index bd7326e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-circle.svg deleted file mode 100644 index 35cc2d9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a.svg deleted file mode 100644 index 810fd224..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-box-outline.svg deleted file mode 100644 index 022e75b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-box.svg deleted file mode 100644 index 1df235ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-circle-outline.svg deleted file mode 100644 index 57f9a92b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-circle.svg deleted file mode 100644 index a3aa5fe8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b.svg deleted file mode 100644 index e5b5b12d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-box-outline.svg deleted file mode 100644 index b51b4897..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-box.svg deleted file mode 100644 index 17a752f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-circle-outline.svg deleted file mode 100644 index 9798269c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-circle.svg deleted file mode 100644 index 324880fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c.svg deleted file mode 100644 index efe8e541..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-box-outline.svg deleted file mode 100644 index ac41fcc9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-box.svg deleted file mode 100644 index 0b007945..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-circle-outline.svg deleted file mode 100644 index 8ff67247..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-circle.svg deleted file mode 100644 index 1c0ecd63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d.svg deleted file mode 100644 index 2e0b60f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-box-outline.svg deleted file mode 100644 index fead7cdf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-box.svg deleted file mode 100644 index a46de737..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-circle-outline.svg deleted file mode 100644 index 74aa0239..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-circle.svg deleted file mode 100644 index ca26c5ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e.svg deleted file mode 100644 index 30c97eab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-e.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-box-outline.svg deleted file mode 100644 index ceeb1594..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-box.svg deleted file mode 100644 index d360be27..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-circle-outline.svg deleted file mode 100644 index 344e9dbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-circle.svg deleted file mode 100644 index 159dfbd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f.svg deleted file mode 100644 index bb917caa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-f.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-box-outline.svg deleted file mode 100644 index df0fa9dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-box.svg deleted file mode 100644 index c31cf733..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-circle-outline.svg deleted file mode 100644 index 8eeb919d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-circle.svg deleted file mode 100644 index 5645edf4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g.svg deleted file mode 100644 index 4e30d48a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-g.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-box-outline.svg deleted file mode 100644 index 7aa22762..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-box.svg deleted file mode 100644 index e9d98def..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-circle-outline.svg deleted file mode 100644 index 8bd0c696..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-circle.svg deleted file mode 100644 index 07ba54b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h.svg deleted file mode 100644 index daae2303..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-h.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-box-outline.svg deleted file mode 100644 index e0ae34c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-box.svg deleted file mode 100644 index dbb233da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-circle-outline.svg deleted file mode 100644 index 6570bea8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-circle.svg deleted file mode 100644 index ae462ecc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i.svg deleted file mode 100644 index ad813a0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-i.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-box-outline.svg deleted file mode 100644 index 88104db3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-box.svg deleted file mode 100644 index 9cac5116..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-circle-outline.svg deleted file mode 100644 index 5da03101..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-circle.svg deleted file mode 100644 index d4042b6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j.svg deleted file mode 100644 index 4794fef4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-j.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-box-outline.svg deleted file mode 100644 index c50ad23d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-box.svg deleted file mode 100644 index fc5604c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-circle-outline.svg deleted file mode 100644 index 037b1eb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-circle.svg deleted file mode 100644 index 84d6ca48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k.svg deleted file mode 100644 index 08899c8c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-k.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-box-outline.svg deleted file mode 100644 index fb5bcfbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-box.svg deleted file mode 100644 index 77e5e951..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-circle-outline.svg deleted file mode 100644 index 72495007..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-circle.svg deleted file mode 100644 index 6b003207..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l.svg deleted file mode 100644 index 28d529bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-l.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-box-outline.svg deleted file mode 100644 index 68db3b02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-box.svg deleted file mode 100644 index 1208aa70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-circle-outline.svg deleted file mode 100644 index dffbd544..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-circle.svg deleted file mode 100644 index fad88a8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m.svg deleted file mode 100644 index 0255e104..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-m.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-box-outline.svg deleted file mode 100644 index 075ab996..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-box.svg deleted file mode 100644 index 03f68905..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-circle-outline.svg deleted file mode 100644 index e5112f36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-circle.svg deleted file mode 100644 index 731d1d3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n.svg deleted file mode 100644 index 64cd6937..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-n.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-box-outline.svg deleted file mode 100644 index 23aab8cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-box.svg deleted file mode 100644 index 76f68381..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-circle-outline.svg deleted file mode 100644 index 6f4273a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-circle.svg deleted file mode 100644 index 694b547f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o.svg deleted file mode 100644 index ad0de59c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-o.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-box-outline.svg deleted file mode 100644 index b978ceac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-box.svg deleted file mode 100644 index 8de5258f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-circle-outline.svg deleted file mode 100644 index b7589141..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-circle.svg deleted file mode 100644 index 8294127f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p.svg deleted file mode 100644 index f3445428..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-p.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-box-outline.svg deleted file mode 100644 index 8a01d0bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-box.svg deleted file mode 100644 index c839607f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-circle-outline.svg deleted file mode 100644 index 03d2975c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-circle.svg deleted file mode 100644 index b4b856f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q.svg deleted file mode 100644 index 1f738089..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-q.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-box-outline.svg deleted file mode 100644 index 8e1711f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-box.svg deleted file mode 100644 index 8075308d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-circle-outline.svg deleted file mode 100644 index 0c7ba885..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-circle.svg deleted file mode 100644 index 442af353..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r.svg deleted file mode 100644 index 050d0b0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-r.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-box-outline.svg deleted file mode 100644 index 33a316f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-box.svg deleted file mode 100644 index aa237969..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-circle-outline.svg deleted file mode 100644 index 7889a642..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-circle.svg deleted file mode 100644 index cd9a56a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s.svg deleted file mode 100644 index 4e497bfe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-s.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-box-outline.svg deleted file mode 100644 index ae61b340..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-box.svg deleted file mode 100644 index 91084ec5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-circle-outline.svg deleted file mode 100644 index d19841ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-circle.svg deleted file mode 100644 index b11c6026..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t.svg deleted file mode 100644 index 930fd10d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-t.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-box-outline.svg deleted file mode 100644 index 909e95d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-box.svg deleted file mode 100644 index 7ba04c2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-circle-outline.svg deleted file mode 100644 index cb8a8601..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-circle.svg deleted file mode 100644 index f15dd223..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u.svg deleted file mode 100644 index f1897c6f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-u.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-box-outline.svg deleted file mode 100644 index b0246f5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-box.svg deleted file mode 100644 index f1b6de25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-circle-outline.svg deleted file mode 100644 index abc3ff68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-circle.svg deleted file mode 100644 index 8423c4fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v.svg deleted file mode 100644 index 9fb28afb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-v.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-box-outline.svg deleted file mode 100644 index e3781ff4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-box.svg deleted file mode 100644 index 229bac61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-circle-outline.svg deleted file mode 100644 index 516dbe2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-circle.svg deleted file mode 100644 index adb12482..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w.svg deleted file mode 100644 index 26e1c8ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-w.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-box-outline.svg deleted file mode 100644 index bd880a79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-box.svg deleted file mode 100644 index 131ff67a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-circle-outline.svg deleted file mode 100644 index 8390e409..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-circle.svg deleted file mode 100644 index aa47da3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x.svg deleted file mode 100644 index 05b3e324..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-x.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-box-outline.svg deleted file mode 100644 index 6ece3331..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-box.svg deleted file mode 100644 index c35b33b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-circle-outline.svg deleted file mode 100644 index ef8aae52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-circle.svg deleted file mode 100644 index 6c5f0525..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y.svg deleted file mode 100644 index c187e474..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-y.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-box-outline.svg deleted file mode 100644 index 058ae0a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-box.svg deleted file mode 100644 index 3040132c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-circle-outline.svg deleted file mode 100644 index 946389bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-circle.svg deleted file mode 100644 index 1985b249..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z.svg deleted file mode 100644 index 33d6bae1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha-z.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha.svg deleted file mode 100644 index a0b6f110..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alpha.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-aurebesh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-aurebesh.svg deleted file mode 100644 index 3d6c311a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-aurebesh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-cyrillic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-cyrillic.svg deleted file mode 100644 index 2d04fcce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-cyrillic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-greek.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-greek.svg deleted file mode 100644 index ea1c4762..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-greek.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-latin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-latin.svg deleted file mode 100644 index 20bae795..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-latin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-piqad.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-piqad.svg deleted file mode 100644 index 5ba85e6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-piqad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-tengwar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-tengwar.svg deleted file mode 100644 index 870a383a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabet-tengwar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-off.svg deleted file mode 100644 index b57eac0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-variant-off.svg deleted file mode 100644 index 94563f96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-variant.svg deleted file mode 100644 index cc46ca57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical.svg deleted file mode 100644 index 06c04b96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/alphabetical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/altimeter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/altimeter.svg deleted file mode 100644 index 13a0837b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/altimeter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ambulance.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ambulance.svg deleted file mode 100644 index c11d69c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ambulance.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ammunition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ammunition.svg deleted file mode 100644 index 3303a880..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ammunition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ampersand.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ampersand.svg deleted file mode 100644 index 556a2cd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ampersand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/amplifier-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/amplifier-off.svg deleted file mode 100644 index 9d5e6475..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/amplifier-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/amplifier.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/amplifier.svg deleted file mode 100644 index 4aaa6b5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/amplifier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/anchor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/anchor.svg deleted file mode 100644 index b6a0ce3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/anchor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/android-studio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/android-studio.svg deleted file mode 100644 index 434d629a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/android-studio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/android.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/android.svg deleted file mode 100644 index 696199da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/android.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-acute.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-acute.svg deleted file mode 100644 index 7cc18fd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-acute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-obtuse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-obtuse.svg deleted file mode 100644 index 56c4987f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-obtuse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-right.svg deleted file mode 100644 index 795adddc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angle-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angular.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angular.svg deleted file mode 100644 index 5406d698..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angular.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angularjs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angularjs.svg deleted file mode 100644 index f14ef905..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/angularjs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-outline.svg deleted file mode 100644 index 82041710..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-play-outline.svg deleted file mode 100644 index bfc7272e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-play.svg deleted file mode 100644 index ed1b747b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation.svg deleted file mode 100644 index 904b6515..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/animation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ansible.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ansible.svg deleted file mode 100644 index 30f5ea85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ansible.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/antenna.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/antenna.svg deleted file mode 100644 index 5209d8f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/antenna.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/anvil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/anvil.svg deleted file mode 100644 index 6100bcc0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/anvil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apache-kafka.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apache-kafka.svg deleted file mode 100644 index fda9bf73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apache-kafka.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/api-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/api-off.svg deleted file mode 100644 index 9d701a1f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/api-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/api.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/api.svg deleted file mode 100644 index 4eab4f76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/api.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-finder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-finder.svg deleted file mode 100644 index 17da2b49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-finder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-icloud.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-icloud.svg deleted file mode 100644 index b7c3bfdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-icloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-ios.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-ios.svg deleted file mode 100644 index 2ccd0b5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-ios.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-caps.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-caps.svg deleted file mode 100644 index db44c818..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-caps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-command.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-command.svg deleted file mode 100644 index 595c8e51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-command.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-control.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-control.svg deleted file mode 100644 index 4ae96bf7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-control.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-option.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-option.svg deleted file mode 100644 index c685948e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-option.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-shift.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-shift.svg deleted file mode 100644 index 3747d473..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-keyboard-shift.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-safari.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-safari.svg deleted file mode 100644 index 35d90078..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple-safari.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple.svg deleted file mode 100644 index 50a4329f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-array-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-array-outline.svg deleted file mode 100644 index a020a6e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-array-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-array.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-array.svg deleted file mode 100644 index d345a9c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-array.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-braces-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-braces-outline.svg deleted file mode 100644 index 3f855193..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-braces-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-braces.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-braces.svg deleted file mode 100644 index 2834b123..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-braces.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-brackets-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-brackets-outline.svg deleted file mode 100644 index 8844d0a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-brackets-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-brackets.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-brackets.svg deleted file mode 100644 index 1ce4932a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-brackets.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-cog-outline.svg deleted file mode 100644 index 19a9dcd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-cog.svg deleted file mode 100644 index 39a02a83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-edit-outline.svg deleted file mode 100644 index 8d5aafaa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-edit.svg deleted file mode 100644 index 1951da60..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-export.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-export.svg deleted file mode 100644 index ea91914b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-import.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-import.svg deleted file mode 100644 index 590aec17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-outline.svg deleted file mode 100644 index 08b2d12e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-parentheses-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-parentheses-outline.svg deleted file mode 100644 index bc17dc8c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-parentheses-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-parentheses.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-parentheses.svg deleted file mode 100644 index cc9bcdd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-parentheses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-settings-outline.svg deleted file mode 100644 index 9b10dcb5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-settings.svg deleted file mode 100644 index 26ee0367..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-variable-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-variable-outline.svg deleted file mode 100644 index c31b5374..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-variable-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-variable.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-variable.svg deleted file mode 100644 index 5e9e7ba1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application-variable.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application.svg deleted file mode 100644 index 46e05b75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/application.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/approximately-equal-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/approximately-equal-box.svg deleted file mode 100644 index 5f935464..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/approximately-equal-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/approximately-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/approximately-equal.svg deleted file mode 100644 index 3ba428e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/approximately-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apps-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apps-box.svg deleted file mode 100644 index f6046ead..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apps-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apps.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apps.svg deleted file mode 100644 index f3b8074f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/apps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arch.svg deleted file mode 100644 index 2caeeb1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-alert-outline.svg deleted file mode 100644 index 1d3f973c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-alert.svg deleted file mode 100644 index 91d4fcda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-down-outline.svg deleted file mode 100644 index 66bd46f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-down.svg deleted file mode 100644 index f5999282..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-up-outline.svg deleted file mode 100644 index 8fbcfb17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-up.svg deleted file mode 100644 index 9c1d1d7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cancel-outline.svg deleted file mode 100644 index c22f561e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cancel.svg deleted file mode 100644 index 854442b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-check-outline.svg deleted file mode 100644 index 885adfbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-check.svg deleted file mode 100644 index 5a53796f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-clock-outline.svg deleted file mode 100644 index 7abb493d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-clock.svg deleted file mode 100644 index fe52473b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cog-outline.svg deleted file mode 100644 index 23db4bc6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cog.svg deleted file mode 100644 index b5a7a130..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-edit-outline.svg deleted file mode 100644 index 741aeb88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-edit.svg deleted file mode 100644 index f0296072..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-eye-outline.svg deleted file mode 100644 index ff04b0d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-eye.svg deleted file mode 100644 index 0d912fb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-open-outline.svg deleted file mode 100644 index 8b5967b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-open.svg deleted file mode 100644 index 4cd8fa06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-outline.svg deleted file mode 100644 index fe2bd21a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock.svg deleted file mode 100644 index 1e316034..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-marker-outline.svg deleted file mode 100644 index 301516ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-marker.svg deleted file mode 100644 index ee6590ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-minus-outline.svg deleted file mode 100644 index a7a10b6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-minus.svg deleted file mode 100644 index 4ad0cdde..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-music-outline.svg deleted file mode 100644 index 4d8c2ff3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-music.svg deleted file mode 100644 index e5e5f429..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-off-outline.svg deleted file mode 100644 index 47a6d69e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-off.svg deleted file mode 100644 index 5c911bc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-outline.svg deleted file mode 100644 index 4b3eb55c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-plus-outline.svg deleted file mode 100644 index a49e0049..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-plus.svg deleted file mode 100644 index 07f9a8f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-refresh-outline.svg deleted file mode 100644 index 0db796de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-refresh.svg deleted file mode 100644 index 63574624..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-remove-outline.svg deleted file mode 100644 index 555ad6c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-remove.svg deleted file mode 100644 index 13037fc6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-search-outline.svg deleted file mode 100644 index bda74e00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-search.svg deleted file mode 100644 index 31e7ab56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-settings-outline.svg deleted file mode 100644 index 4e841b39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-settings.svg deleted file mode 100644 index 68154dbe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-star-outline.svg deleted file mode 100644 index b0c4f45a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-star.svg deleted file mode 100644 index d09a4645..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-sync-outline.svg deleted file mode 100644 index 246a04d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-sync.svg deleted file mode 100644 index 9397c446..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive.svg deleted file mode 100644 index 4760e9c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/archive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arm-flex-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arm-flex-outline.svg deleted file mode 100644 index 0ee2868e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arm-flex-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arm-flex.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arm-flex.svg deleted file mode 100644 index c9f92bd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arm-flex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-bring-forward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-bring-forward.svg deleted file mode 100644 index 996d389e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-bring-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-bring-to-front.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-bring-to-front.svg deleted file mode 100644 index 8b7efac9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-bring-to-front.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-send-backward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-send-backward.svg deleted file mode 100644 index 6d18f640..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-send-backward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-send-to-back.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-send-to-back.svg deleted file mode 100644 index 295306d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrange-send-to-back.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-all.svg deleted file mode 100644 index 01a81a9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-box-outline.svg deleted file mode 100644 index 8ddd256e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-box.svg deleted file mode 100644 index b3ad4952..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-outline.svg deleted file mode 100644 index fe5de170..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thick.svg deleted file mode 100644 index 1295c817..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thin-circle-outline.svg deleted file mode 100644 index 11ff1f3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thin.svg deleted file mode 100644 index 8e31d0e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left.svg deleted file mode 100644 index 43a3ce3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-box-outline.svg deleted file mode 100644 index 4a6e1e41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-box.svg deleted file mode 100644 index ede5bc78..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-outline.svg deleted file mode 100644 index f7ac05b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thick.svg deleted file mode 100644 index c688d8b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thin-circle-outline.svg deleted file mode 100644 index a6d09b47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thin.svg deleted file mode 100644 index 9f89d41e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right.svg deleted file mode 100644 index 5c81bc07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-bottom-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-all.svg deleted file mode 100644 index 0e7c0fad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-down.svg deleted file mode 100644 index 7a686de2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-horizontal.svg deleted file mode 100644 index 8dc09f17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-left.svg deleted file mode 100644 index f01ae432..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-right.svg deleted file mode 100644 index 587b686f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-up.svg deleted file mode 100644 index 2a82754e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-vertical.svg deleted file mode 100644 index 12257075..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse.svg deleted file mode 100644 index 432c2601..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-collapse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-auto-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-auto-outline.svg deleted file mode 100644 index e1e78531..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-auto-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-auto.svg deleted file mode 100644 index 8540619a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-outline.svg deleted file mode 100644 index 60354ab7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision.svg deleted file mode 100644 index bf16f4a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-decision.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-box-outline.svg deleted file mode 100644 index ce764ef8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-box.svg deleted file mode 100644 index a4176280..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-circle-outline.svg deleted file mode 100644 index 4c92707c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-circle.svg deleted file mode 100644 index 51e1a9b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-hexagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-hexagon-outline.svg deleted file mode 100644 index cab71ca6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-hexagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-outline.svg deleted file mode 100644 index d22b8031..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold.svg deleted file mode 100644 index 2e72971c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-box.svg deleted file mode 100644 index 266ee550..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-circle-outline.svg deleted file mode 100644 index 30a40306..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-circle.svg deleted file mode 100644 index c345b76f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-drop-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-drop-circle-outline.svg deleted file mode 100644 index 9b9380e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-drop-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-drop-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-drop-circle.svg deleted file mode 100644 index 98348df6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-drop-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-left-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-left-bold.svg deleted file mode 100644 index 0b454f3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-left-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-left.svg deleted file mode 100644 index bf24e3ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-right-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-right-bold.svg deleted file mode 100644 index 4ac9838f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-right-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-right.svg deleted file mode 100644 index 8d6a2563..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thick.svg deleted file mode 100644 index f57076ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thin-circle-outline.svg deleted file mode 100644 index e1569c5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thin.svg deleted file mode 100644 index d1aedf14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down.svg deleted file mode 100644 index 7bd7d6ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-all.svg deleted file mode 100644 index 37fb6189..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-down.svg deleted file mode 100644 index d3e23605..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-horizontal.svg deleted file mode 100644 index 9f02bb37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-left.svg deleted file mode 100644 index efa6edb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-right.svg deleted file mode 100644 index 73adc6f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-up.svg deleted file mode 100644 index 57a9784f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-vertical.svg deleted file mode 100644 index a095e0cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand.svg deleted file mode 100644 index 51f77f26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-expand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-horizontal-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-horizontal-lock.svg deleted file mode 100644 index 55f6f08f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-horizontal-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-box-outline.svg deleted file mode 100644 index 4eeb0ab5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-box.svg deleted file mode 100644 index dbf9e65c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-circle-outline.svg deleted file mode 100644 index e66a96aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-circle.svg deleted file mode 100644 index 352eabb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-hexagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-hexagon-outline.svg deleted file mode 100644 index a888c6cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-hexagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-outline.svg deleted file mode 100644 index 9cff15c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold.svg deleted file mode 100644 index 7eb6bdc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bottom-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bottom-bold.svg deleted file mode 100644 index b557c731..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bottom-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bottom.svg deleted file mode 100644 index 75a871f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-box.svg deleted file mode 100644 index 092faa8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-circle-outline.svg deleted file mode 100644 index 5b619bae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-circle.svg deleted file mode 100644 index b869281e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-drop-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-drop-circle-outline.svg deleted file mode 100644 index 3419051c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-drop-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-drop-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-drop-circle.svg deleted file mode 100644 index 392567b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-drop-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right-bold-outline.svg deleted file mode 100644 index 271d4dcf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right-bold.svg deleted file mode 100644 index 1c977eb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right.svg deleted file mode 100644 index d39b34ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thick.svg deleted file mode 100644 index 1cf3556a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thin-circle-outline.svg deleted file mode 100644 index 12c268dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thin.svg deleted file mode 100644 index ab607bba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-top-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-top-bold.svg deleted file mode 100644 index e79ff2c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-top-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-top.svg deleted file mode 100644 index 9ec8a6f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left.svg deleted file mode 100644 index 4c380fb1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-projectile-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-projectile-multiple.svg deleted file mode 100644 index dd0ef8de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-projectile-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-projectile.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-projectile.svg deleted file mode 100644 index 56b0ce21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-projectile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-box-outline.svg deleted file mode 100644 index a5aac91a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-box.svg deleted file mode 100644 index b0b39168..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-circle-outline.svg deleted file mode 100644 index 67aa2086..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-circle.svg deleted file mode 100644 index f15b7ce3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-hexagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-hexagon-outline.svg deleted file mode 100644 index 81147659..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-hexagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-outline.svg deleted file mode 100644 index b7d9c3e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold.svg deleted file mode 100644 index 906bb160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bottom-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bottom-bold.svg deleted file mode 100644 index d63a06cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bottom-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bottom.svg deleted file mode 100644 index 4c3d4025..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-box.svg deleted file mode 100644 index 133f410d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-circle-outline.svg deleted file mode 100644 index 5b504978..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-circle.svg deleted file mode 100644 index b8af4192..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-drop-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-drop-circle-outline.svg deleted file mode 100644 index 5f40a434..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-drop-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-drop-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-drop-circle.svg deleted file mode 100644 index 0ccb6cb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-drop-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thick.svg deleted file mode 100644 index ffd88135..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thin-circle-outline.svg deleted file mode 100644 index e5bdfd4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thin.svg deleted file mode 100644 index 2ef7dd69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-top-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-top-bold.svg deleted file mode 100644 index ba6b9107..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-top-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-top.svg deleted file mode 100644 index 1424996d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right.svg deleted file mode 100644 index a4e19575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-split-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-split-horizontal.svg deleted file mode 100644 index 07bc0c5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-split-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-split-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-split-vertical.svg deleted file mode 100644 index 85be28ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-split-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-box-outline.svg deleted file mode 100644 index a0dcc706..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-box.svg deleted file mode 100644 index 8ecafef2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-outline.svg deleted file mode 100644 index a36b27de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bottom-right-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bottom-right-bold.svg deleted file mode 100644 index 64853a6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bottom-right-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bottom-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bottom-right.svg deleted file mode 100644 index 8fed93ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-bottom-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thick.svg deleted file mode 100644 index c45a06f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thin-circle-outline.svg deleted file mode 100644 index fd59a947..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thin.svg deleted file mode 100644 index 397c37d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left.svg deleted file mode 100644 index 2a5dc89b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-box-outline.svg deleted file mode 100644 index bf9ec629..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-box.svg deleted file mode 100644 index 0fc40077..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-outline.svg deleted file mode 100644 index fad367c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bottom-left-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bottom-left-bold.svg deleted file mode 100644 index f0baea0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bottom-left-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bottom-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bottom-left.svg deleted file mode 100644 index 63d89a74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-bottom-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thick.svg deleted file mode 100644 index 493262fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thin-circle-outline.svg deleted file mode 100644 index 2c89f558..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thin.svg deleted file mode 100644 index f25c2907..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right.svg deleted file mode 100644 index df29e395..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-top-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-left-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-left-bold.svg deleted file mode 100644 index c5165ffa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-left-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-left.svg deleted file mode 100644 index 343e2f0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-right-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-right-bold.svg deleted file mode 100644 index 033a03b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-right-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-right.svg deleted file mode 100644 index e576c1d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-down-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-bottom-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-bottom-bold.svg deleted file mode 100644 index 6883dc2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-bottom-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-bottom.svg deleted file mode 100644 index e2141157..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-top-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-top-bold.svg deleted file mode 100644 index 1522f405..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-top-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-top.svg deleted file mode 100644 index cc3fbc51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-left-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-bottom-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-bottom-bold.svg deleted file mode 100644 index 255b9af0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-bottom-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-bottom.svg deleted file mode 100644 index 7c79724a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-top-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-top-bold.svg deleted file mode 100644 index 4c329662..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-top-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-top.svg deleted file mode 100644 index e81da18b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-right-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-left-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-left-bold.svg deleted file mode 100644 index 3f4af162..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-left-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-left.svg deleted file mode 100644 index 21938622..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-right-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-right-bold.svg deleted file mode 100644 index 6a005c6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-right-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-right.svg deleted file mode 100644 index f496a19f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-u-up-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-box-outline.svg deleted file mode 100644 index 5e0bcd06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-box.svg deleted file mode 100644 index 0f5b2db5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-circle-outline.svg deleted file mode 100644 index 762a1642..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-circle.svg deleted file mode 100644 index 5fb1243b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-hexagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-hexagon-outline.svg deleted file mode 100644 index da9c0e62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-hexagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-outline.svg deleted file mode 100644 index c6a8d5e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold.svg deleted file mode 100644 index ac542e59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-box.svg deleted file mode 100644 index f3f44a9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-circle-outline.svg deleted file mode 100644 index 1d5a25da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-circle.svg deleted file mode 100644 index 41eaf047..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down-bold-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down-bold-outline.svg deleted file mode 100644 index effdacdb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down-bold-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down-bold.svg deleted file mode 100644 index ba9a5180..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down.svg deleted file mode 100644 index e237c7e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-drop-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-drop-circle-outline.svg deleted file mode 100644 index 01fa6e78..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-drop-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-drop-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-drop-circle.svg deleted file mode 100644 index b948f329..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-drop-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-left-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-left-bold.svg deleted file mode 100644 index 233223b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-left-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-left.svg deleted file mode 100644 index a0eaea40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-right-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-right-bold.svg deleted file mode 100644 index 28ca7054..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-right-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-right.svg deleted file mode 100644 index 826083ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thick.svg deleted file mode 100644 index 56240ee8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thin-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thin-circle-outline.svg deleted file mode 100644 index 9faf0bcc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thin-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thin.svg deleted file mode 100644 index b6e113c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up-thin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up.svg deleted file mode 100644 index 5ae67ba4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-vertical-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-vertical-lock.svg deleted file mode 100644 index 9cd4eef3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/arrow-vertical-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/artboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/artboard.svg deleted file mode 100644 index 6e56ab67..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/artboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/artstation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/artstation.svg deleted file mode 100644 index 60415575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/artstation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/aspect-ratio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/aspect-ratio.svg deleted file mode 100644 index 82810d23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/aspect-ratio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/assistant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/assistant.svg deleted file mode 100644 index b89c370d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/assistant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/asterisk-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/asterisk-circle-outline.svg deleted file mode 100644 index 8c23d01b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/asterisk-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/asterisk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/asterisk.svg deleted file mode 100644 index ee686ab0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/asterisk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/at.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/at.svg deleted file mode 100644 index 3a3da819..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/at.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atlassian.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atlassian.svg deleted file mode 100644 index 064326c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atlassian.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atm.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atm.svg deleted file mode 100644 index 2bfa0ab2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atom-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atom-variant.svg deleted file mode 100644 index dda67be7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atom-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atom.svg deleted file mode 100644 index b208431d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-check.svg deleted file mode 100644 index 727b464a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-lock.svg deleted file mode 100644 index 333c82d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-minus.svg deleted file mode 100644 index 037e3365..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-off.svg deleted file mode 100644 index a03ca7b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-plus.svg deleted file mode 100644 index a3e33905..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-remove.svg deleted file mode 100644 index 2da5972d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment.svg deleted file mode 100644 index 4092dd88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/attachment.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atv.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atv.svg deleted file mode 100644 index 8fb6c464..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/atv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-rca.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-rca.svg deleted file mode 100644 index 027402ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-rca.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-stereo-minijack.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-stereo-minijack.svg deleted file mode 100644 index 73e1d127..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-stereo-minijack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-xlr.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-xlr.svg deleted file mode 100644 index 0c8c32a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-input-xlr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-video-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-video-off.svg deleted file mode 100644 index 9cd59fb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-video-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-video.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-video.svg deleted file mode 100644 index d8749e7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/audio-video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/augmented-reality.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/augmented-reality.svg deleted file mode 100644 index 6f5be9fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/augmented-reality.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-download.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-download.svg deleted file mode 100644 index d2fab336..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-fix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-fix.svg deleted file mode 100644 index 72311a08..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-fix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-upload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-upload.svg deleted file mode 100644 index a76184aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/auto-upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/autorenew-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/autorenew-off.svg deleted file mode 100644 index e8a3c271..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/autorenew-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/autorenew.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/autorenew.svg deleted file mode 100644 index b10518b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/autorenew.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/av-timer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/av-timer.svg deleted file mode 100644 index c64a8546..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/av-timer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/awning-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/awning-outline.svg deleted file mode 100644 index d94f62ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/awning-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/awning.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/awning.svg deleted file mode 100644 index 63755729..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/awning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/aws.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/aws.svg deleted file mode 100644 index d35ead62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/aws.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axe-battle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axe-battle.svg deleted file mode 100644 index eb317635..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axe-battle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axe.svg deleted file mode 100644 index d9be373d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow-info.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow-info.svg deleted file mode 100644 index 2b610a91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow-info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow-lock.svg deleted file mode 100644 index 4ad6ae45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow.svg deleted file mode 100644 index 98a4aa49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-lock.svg deleted file mode 100644 index da9f3246..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-arrow-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-arrow-lock.svg deleted file mode 100644 index 214e2cac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-arrow-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-arrow.svg deleted file mode 100644 index 710cd3bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-rotate-clockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-rotate-clockwise.svg deleted file mode 100644 index 82f4bb10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-rotate-clockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-rotate-counterclockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-rotate-counterclockwise.svg deleted file mode 100644 index bc805a43..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-rotate-counterclockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-y-arrow-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-y-arrow-lock.svg deleted file mode 100644 index 97a1a8b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-x-y-arrow-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-arrow-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-arrow-lock.svg deleted file mode 100644 index 029ca71f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-arrow-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-arrow.svg deleted file mode 100644 index 636f5e61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-rotate-clockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-rotate-clockwise.svg deleted file mode 100644 index c5d93714..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-rotate-clockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-rotate-counterclockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-rotate-counterclockwise.svg deleted file mode 100644 index 1a633b39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-y-rotate-counterclockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-arrow-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-arrow-lock.svg deleted file mode 100644 index 43b1639c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-arrow-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-arrow.svg deleted file mode 100644 index 68c8ce42..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-rotate-clockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-rotate-clockwise.svg deleted file mode 100644 index d569b9bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-rotate-clockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-rotate-counterclockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-rotate-counterclockwise.svg deleted file mode 100644 index 064577a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis-z-rotate-counterclockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis.svg deleted file mode 100644 index aaac6312..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/axis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/babel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/babel.svg deleted file mode 100644 index 57f26f0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/babel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-bottle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-bottle-outline.svg deleted file mode 100644 index d6bfb30d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-bottle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-bottle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-bottle.svg deleted file mode 100644 index bc83d51a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-bottle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-buggy-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-buggy-off.svg deleted file mode 100644 index 9fd80fe5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-buggy-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-buggy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-buggy.svg deleted file mode 100644 index b45ebf53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-buggy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-carriage-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-carriage-off.svg deleted file mode 100644 index d282a651..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-carriage-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-carriage.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-carriage.svg deleted file mode 100644 index bfb6c334..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-carriage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-face-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-face-outline.svg deleted file mode 100644 index 0cc9eec3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-face-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-face.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-face.svg deleted file mode 100644 index 61161776..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby-face.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby.svg deleted file mode 100644 index eeb52bb5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backburger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backburger.svg deleted file mode 100644 index 3ba2ee19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backburger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-outline.svg deleted file mode 100644 index eb679dd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-reverse-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-reverse-outline.svg deleted file mode 100644 index 9ca20f7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-reverse-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-reverse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-reverse.svg deleted file mode 100644 index b79e2a1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace-reverse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace.svg deleted file mode 100644 index 34e70f37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backspace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backup-restore.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backup-restore.svg deleted file mode 100644 index c9497d86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/backup-restore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bacteria-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bacteria-outline.svg deleted file mode 100644 index 42f2d87d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bacteria-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bacteria.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bacteria.svg deleted file mode 100644 index 607d1982..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bacteria.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-alert-outline.svg deleted file mode 100644 index 71168d5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-alert.svg deleted file mode 100644 index 3b837b93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-horizontal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-horizontal-outline.svg deleted file mode 100644 index 75a8e537..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-horizontal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-horizontal.svg deleted file mode 100644 index 4a7b3d70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-outline.svg deleted file mode 100644 index 74d468cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account.svg deleted file mode 100644 index ff034046..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badge-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badminton.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badminton.svg deleted file mode 100644 index 22448256..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/badminton.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on-check.svg deleted file mode 100644 index 6a25f06e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on-off.svg deleted file mode 100644 index 87409488..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on.svg deleted file mode 100644 index 27f52516..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-carry-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-checked.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-checked.svg deleted file mode 100644 index d34c1508..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-checked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-off-outline.svg deleted file mode 100644 index 71a3d5f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-off.svg deleted file mode 100644 index 4e3d576c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-outline.svg deleted file mode 100644 index 1d07c3b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-tag-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-tag-outline.svg deleted file mode 100644 index 5d535bd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-tag-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-tag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-tag.svg deleted file mode 100644 index 63594699..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal-tag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal.svg deleted file mode 100644 index 16bffcb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-personal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-off-outline.svg deleted file mode 100644 index 96aba824..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-off.svg deleted file mode 100644 index d24a2bb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-outline.svg deleted file mode 100644 index bcc4c76b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase.svg deleted file mode 100644 index 90866e4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bag-suitcase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baguette.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baguette.svg deleted file mode 100644 index 3909ea6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baguette.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/balcony.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/balcony.svg deleted file mode 100644 index a757a0db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/balcony.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/balloon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/balloon.svg deleted file mode 100644 index 81cce5e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/balloon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-outline.svg deleted file mode 100644 index 24a1b38a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-recount-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-recount-outline.svg deleted file mode 100644 index 156cdfa0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-recount-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-recount.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-recount.svg deleted file mode 100644 index 0c29aab1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot-recount.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot.svg deleted file mode 100644 index f0153a41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ballot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bandage.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bandage.svg deleted file mode 100644 index 6f0a4858..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bandage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-check.svg deleted file mode 100644 index da2a9b62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-minus.svg deleted file mode 100644 index 236cdd2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-off-outline.svg deleted file mode 100644 index d043bc13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-off.svg deleted file mode 100644 index 9e06b919..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-outline.svg deleted file mode 100644 index 228cfdd4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-plus.svg deleted file mode 100644 index d3854888..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-remove.svg deleted file mode 100644 index b8168a69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer-in.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer-in.svg deleted file mode 100644 index 9c456da2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer-in.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer-out.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer-out.svg deleted file mode 100644 index 8cc1c1b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer-out.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer.svg deleted file mode 100644 index da1f8ff6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank-transfer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank.svg deleted file mode 100644 index 0a0a461e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode-off.svg deleted file mode 100644 index 6374c58d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode-scan.svg deleted file mode 100644 index 89cdf4cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode.svg deleted file mode 100644 index f629fa41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barcode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barley-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barley-off.svg deleted file mode 100644 index 5b9920fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barley-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barley.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barley.svg deleted file mode 100644 index 619b8834..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barley.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barn.svg deleted file mode 100644 index 2944f51a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barrel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barrel-outline.svg deleted file mode 100644 index e53ab044..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barrel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barrel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barrel.svg deleted file mode 100644 index 2e15682d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/barrel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-bat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-bat.svg deleted file mode 100644 index 2402d179..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-bat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-diamond-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-diamond-outline.svg deleted file mode 100644 index b107e522..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-diamond-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-diamond.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-diamond.svg deleted file mode 100644 index b2790062..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball-diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball.svg deleted file mode 100644 index 5e4cd2ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/baseball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bash.svg deleted file mode 100644 index 18fade15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-check-outline.svg deleted file mode 100644 index 2ab282e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-check.svg deleted file mode 100644 index 05d665ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-fill.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-fill.svg deleted file mode 100644 index e558c09d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-minus-outline.svg deleted file mode 100644 index 1d440d0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-minus.svg deleted file mode 100644 index cd84b899..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-off-outline.svg deleted file mode 100644 index 5c24587a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-off.svg deleted file mode 100644 index 541b9813..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-outline.svg deleted file mode 100644 index 77c230b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-plus-outline.svg deleted file mode 100644 index 4d9dedb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-plus.svg deleted file mode 100644 index b839d5f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-remove-outline.svg deleted file mode 100644 index 01f219ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-remove.svg deleted file mode 100644 index 7adabca1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-unfill.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-unfill.svg deleted file mode 100644 index 24fb6598..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket-unfill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket.svg deleted file mode 100644 index 0dcab783..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball-hoop-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball-hoop-outline.svg deleted file mode 100644 index 6aedbef3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball-hoop-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball-hoop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball-hoop.svg deleted file mode 100644 index 68b913b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball-hoop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball.svg deleted file mode 100644 index 184b3ea4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/basketball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bat.svg deleted file mode 100644 index b269d21d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bathtub-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bathtub-outline.svg deleted file mode 100644 index 876e4754..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bathtub-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bathtub.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bathtub.svg deleted file mode 100644 index 87a40e8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bathtub.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-10-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-10-bluetooth.svg deleted file mode 100644 index 8fb2488d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-10-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-10.svg deleted file mode 100644 index 67ac433e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-20-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-20-bluetooth.svg deleted file mode 100644 index a717c72c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-20-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-20.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-20.svg deleted file mode 100644 index 4acc7a03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-20.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-30-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-30-bluetooth.svg deleted file mode 100644 index 4901a6c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-30-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-30.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-30.svg deleted file mode 100644 index cd50ae59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-30.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-40-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-40-bluetooth.svg deleted file mode 100644 index 7386328a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-40-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-40.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-40.svg deleted file mode 100644 index ad1abb99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-40.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-50-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-50-bluetooth.svg deleted file mode 100644 index da34fc8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-50-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-50.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-50.svg deleted file mode 100644 index 8061b8fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-50.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-60-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-60-bluetooth.svg deleted file mode 100644 index efeb0a4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-60-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-60.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-60.svg deleted file mode 100644 index cd8e2bef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-60.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-70-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-70-bluetooth.svg deleted file mode 100644 index e4fd3c7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-70-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-70.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-70.svg deleted file mode 100644 index 928a7464..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-70.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-80-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-80-bluetooth.svg deleted file mode 100644 index f3b48937..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-80-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-80.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-80.svg deleted file mode 100644 index 4e9200ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-80.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-90-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-90-bluetooth.svg deleted file mode 100644 index 47166846..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-90-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-90.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-90.svg deleted file mode 100644 index 224a50fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-90.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-bluetooth.svg deleted file mode 100644 index 59e77450..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-variant-outline.svg deleted file mode 100644 index d762e231..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-variant.svg deleted file mode 100644 index c080e922..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert.svg deleted file mode 100644 index 8f189a5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-down-outline.svg deleted file mode 100644 index 9fd8fdd3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-down.svg deleted file mode 100644 index badf6ddf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-up-outline.svg deleted file mode 100644 index 457b2926..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-up.svg deleted file mode 100644 index 0c66a2b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-bluetooth-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-bluetooth-variant.svg deleted file mode 100644 index d28137a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-bluetooth-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-bluetooth.svg deleted file mode 100644 index 28d25a3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-10.svg deleted file mode 100644 index c8e3a781..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-100.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-100.svg deleted file mode 100644 index 85c1db7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-100.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-20.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-20.svg deleted file mode 100644 index cdfb3f69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-20.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-30.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-30.svg deleted file mode 100644 index e02b9ecc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-30.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-40.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-40.svg deleted file mode 100644 index fece9fda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-40.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-50.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-50.svg deleted file mode 100644 index 6fea3d76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-50.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-60.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-60.svg deleted file mode 100644 index 5c6a27d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-60.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-70.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-70.svg deleted file mode 100644 index d1b319a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-70.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-80.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-80.svg deleted file mode 100644 index 5c82a57c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-80.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-90.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-90.svg deleted file mode 100644 index 57194f92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-90.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-high.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-high.svg deleted file mode 100644 index 946e6308..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-low.svg deleted file mode 100644 index ba0994ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-medium.svg deleted file mode 100644 index 3cf75ea4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-outline.svg deleted file mode 100644 index 401a67e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-10.svg deleted file mode 100644 index 796fd5de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-20.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-20.svg deleted file mode 100644 index a1fed3d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-20.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-30.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-30.svg deleted file mode 100644 index 26c661c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-30.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-40.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-40.svg deleted file mode 100644 index 3549e622..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-40.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-50.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-50.svg deleted file mode 100644 index f1f37e01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-50.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-60.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-60.svg deleted file mode 100644 index db6b38d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-60.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-70.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-70.svg deleted file mode 100644 index 7311c1a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-70.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-80.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-80.svg deleted file mode 100644 index 963065ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-80.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-90.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-90.svg deleted file mode 100644 index b11867a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-90.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-alert.svg deleted file mode 100644 index f29e45a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-outline.svg deleted file mode 100644 index ad37d842..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless.svg deleted file mode 100644 index 39ddb405..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging.svg deleted file mode 100644 index 32fb0338..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-charging.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-check-outline.svg deleted file mode 100644 index 4760c74a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-check.svg deleted file mode 100644 index f0ac9e2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-clock-outline.svg deleted file mode 100644 index 1ea02c50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-clock.svg deleted file mode 100644 index 1552d96c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart-outline.svg deleted file mode 100644 index f437a302..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart-variant.svg deleted file mode 100644 index b17ba8d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart.svg deleted file mode 100644 index d5d21a8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-high.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-high.svg deleted file mode 100644 index 4eb95356..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-lock-open.svg deleted file mode 100644 index f1fc11b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-lock.svg deleted file mode 100644 index 83312032..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-low.svg deleted file mode 100644 index 24be2392..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-medium.svg deleted file mode 100644 index ad556242..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus-outline.svg deleted file mode 100644 index d755a30c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus-variant.svg deleted file mode 100644 index 9fd3ed0a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus.svg deleted file mode 100644 index 93afe192..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-negative.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-negative.svg deleted file mode 100644 index c3bdd77c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-negative.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-off-outline.svg deleted file mode 100644 index 03d6a686..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-off.svg deleted file mode 100644 index b1d04ba9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-outline.svg deleted file mode 100644 index 94cf414e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus-outline.svg deleted file mode 100644 index 0adbda14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus-variant.svg deleted file mode 100644 index d7bcf381..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus.svg deleted file mode 100644 index 14f000a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-positive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-positive.svg deleted file mode 100644 index 6272852e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-positive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-remove-outline.svg deleted file mode 100644 index 01ae191b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-remove.svg deleted file mode 100644 index 8b3009af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-sync-outline.svg deleted file mode 100644 index 84ff37e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-sync.svg deleted file mode 100644 index a4d31981..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-unknown-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-unknown-bluetooth.svg deleted file mode 100644 index 1ad53ce8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-unknown-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-unknown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-unknown.svg deleted file mode 100644 index 8a950d3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery-unknown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery.svg deleted file mode 100644 index fd2aa132..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/battery.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beach.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beach.svg deleted file mode 100644 index b4719209..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beach.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-alert-outline.svg deleted file mode 100644 index 4fa4c154..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-alert.svg deleted file mode 100644 index 7afb8ffa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-check-outline.svg deleted file mode 100644 index 349a4aa4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-check.svg deleted file mode 100644 index 955df50e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-minus-outline.svg deleted file mode 100644 index c7559b69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-minus.svg deleted file mode 100644 index 64c3b4e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-outline.svg deleted file mode 100644 index ab637960..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-plus-outline.svg deleted file mode 100644 index 0f9251e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-plus.svg deleted file mode 100644 index 6f4f65bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-question-outline.svg deleted file mode 100644 index 459fabfc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-question.svg deleted file mode 100644 index eb48460d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-remove-outline.svg deleted file mode 100644 index 018fafc9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-remove.svg deleted file mode 100644 index 7959ad32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker.svg deleted file mode 100644 index 511bdedc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-clock.svg deleted file mode 100644 index 046c545d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-double-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-double-outline.svg deleted file mode 100644 index 74e4cd4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-double-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-double.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-double.svg deleted file mode 100644 index 0bf75931..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-double.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-empty.svg deleted file mode 100644 index 153a1745..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-king-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-king-outline.svg deleted file mode 100644 index 0acf9e8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-king-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-king.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-king.svg deleted file mode 100644 index f79f242c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-king.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-outline.svg deleted file mode 100644 index d40c5115..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-queen-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-queen-outline.svg deleted file mode 100644 index ed42f0da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-queen-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-queen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-queen.svg deleted file mode 100644 index 7d194773..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-queen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-single-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-single-outline.svg deleted file mode 100644 index d7d7d5d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-single-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-single.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-single.svg deleted file mode 100644 index 0b367345..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed-single.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed.svg deleted file mode 100644 index a8c9c505..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bee-flower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bee-flower.svg deleted file mode 100644 index 68758a94..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bee-flower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bee.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bee.svg deleted file mode 100644 index 9f1b9a52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beehive-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beehive-off-outline.svg deleted file mode 100644 index 08a5ddc0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beehive-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beehive-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beehive-outline.svg deleted file mode 100644 index 1ca8b70a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beehive-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beekeeper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beekeeper.svg deleted file mode 100644 index ec307f76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beekeeper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beer-outline.svg deleted file mode 100644 index 039936e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beer.svg deleted file mode 100644 index 8f3073f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-alert-outline.svg deleted file mode 100644 index 6d1b1151..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-alert.svg deleted file mode 100644 index ce5e8ecf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-badge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-badge-outline.svg deleted file mode 100644 index 753eeeb5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-badge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-badge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-badge.svg deleted file mode 100644 index 173b77c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cancel-outline.svg deleted file mode 100644 index 18f92cdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cancel.svg deleted file mode 100644 index 3f8fe044..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-check-outline.svg deleted file mode 100644 index bf3b3dc6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-check.svg deleted file mode 100644 index 77558b38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-circle-outline.svg deleted file mode 100644 index a145cd27..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-circle.svg deleted file mode 100644 index ab02670b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cog-outline.svg deleted file mode 100644 index 056c60a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cog.svg deleted file mode 100644 index 4dc7e059..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-minus-outline.svg deleted file mode 100644 index a3b98dd4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-minus.svg deleted file mode 100644 index afb68fc9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-off-outline.svg deleted file mode 100644 index db8c4ee3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-off.svg deleted file mode 100644 index e16bba8c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-outline.svg deleted file mode 100644 index 74b217e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-plus-outline.svg deleted file mode 100644 index 8e128cd5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-plus.svg deleted file mode 100644 index 090ec360..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-remove-outline.svg deleted file mode 100644 index 5bad7515..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-remove.svg deleted file mode 100644 index e278a78f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-ring-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-ring-outline.svg deleted file mode 100644 index 390e51ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-ring-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-ring.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-ring.svg deleted file mode 100644 index 05dc03e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-ring.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-sleep-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-sleep-outline.svg deleted file mode 100644 index 3c5b3164..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-sleep-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-sleep.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-sleep.svg deleted file mode 100644 index b8ee1114..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell-sleep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell.svg deleted file mode 100644 index 1a387b86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beta.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beta.svg deleted file mode 100644 index 91f43da9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/beta.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/betamax.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/betamax.svg deleted file mode 100644 index 53ed6c2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/betamax.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/biathlon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/biathlon.svg deleted file mode 100644 index cd1f0c3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/biathlon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-basket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-basket.svg deleted file mode 100644 index e26bd94b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-basket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-cargo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-cargo.svg deleted file mode 100644 index 06b69171..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-cargo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-electric.svg deleted file mode 100644 index 1c341073..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-penny-farthing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-penny-farthing.svg deleted file mode 100644 index bb0781ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle-penny-farthing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle.svg deleted file mode 100644 index 15ca9023..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bicycle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bike-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bike-fast.svg deleted file mode 100644 index cc7aa9d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bike-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bike.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bike.svg deleted file mode 100644 index a425e223..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bike.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billboard.svg deleted file mode 100644 index de5121a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billiards-rack.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billiards-rack.svg deleted file mode 100644 index 2d96c404..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billiards-rack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billiards.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billiards.svg deleted file mode 100644 index c8626f79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/billiards.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/binoculars.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/binoculars.svg deleted file mode 100644 index 7a03a651..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/binoculars.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bio.svg deleted file mode 100644 index a24bfe1f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/biohazard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/biohazard.svg deleted file mode 100644 index 288c89a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/biohazard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bird.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bird.svg deleted file mode 100644 index b15dc074..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bird.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bitbucket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bitbucket.svg deleted file mode 100644 index c861d9e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bitbucket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bitcoin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bitcoin.svg deleted file mode 100644 index 237af5d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bitcoin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/black-mesa.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/black-mesa.svg deleted file mode 100644 index dca3de3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/black-mesa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender-outline.svg deleted file mode 100644 index adf228b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender-software.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender-software.svg deleted file mode 100644 index 8e283b1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender-software.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender.svg deleted file mode 100644 index e632f312..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blender.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-horizontal-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-horizontal-closed.svg deleted file mode 100644 index 4dee3558..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-horizontal-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-horizontal.svg deleted file mode 100644 index 2759d575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-open.svg deleted file mode 100644 index 1fafd3d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-vertical-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-vertical-closed.svg deleted file mode 100644 index f5835a11..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-vertical-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-vertical.svg deleted file mode 100644 index f4779eac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds.svg deleted file mode 100644 index ce84bb3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blinds.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/block-helper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/block-helper.svg deleted file mode 100644 index 15ba669c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/block-helper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blood-bag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blood-bag.svg deleted file mode 100644 index 66a30aea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blood-bag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-audio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-audio.svg deleted file mode 100644 index f40cae44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-audio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-connect.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-connect.svg deleted file mode 100644 index adcf1e3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-connect.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-off.svg deleted file mode 100644 index f4f248d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-settings.svg deleted file mode 100644 index b847c53e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-transfer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-transfer.svg deleted file mode 100644 index 32be2d98..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth-transfer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth.svg deleted file mode 100644 index 0f33eadd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-linear.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-linear.svg deleted file mode 100644 index df6db7a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-linear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-off.svg deleted file mode 100644 index 88c429cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-radial.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-radial.svg deleted file mode 100644 index 2941c49f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur-radial.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur.svg deleted file mode 100644 index 7dfe1bea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/blur.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bolt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bolt.svg deleted file mode 100644 index f95ea6ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bolt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bomb-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bomb-off.svg deleted file mode 100644 index fd36e8a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bomb-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bomb.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bomb.svg deleted file mode 100644 index ef1c2ea9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bomb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bone-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bone-off.svg deleted file mode 100644 index 87bd8a03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bone-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bone.svg deleted file mode 100644 index c00c1849..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-account-outline.svg deleted file mode 100644 index a243b238..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-account.svg deleted file mode 100644 index 3754cb4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alert-outline.svg deleted file mode 100644 index e522b2fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alert.svg deleted file mode 100644 index 000cb411..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alphabet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alphabet.svg deleted file mode 100644 index 480f7d20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-alphabet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-down-outline.svg deleted file mode 100644 index dc795ccd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-down.svg deleted file mode 100644 index 3c0a059c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-left-outline.svg deleted file mode 100644 index 2434dee8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-left.svg deleted file mode 100644 index b86b3ce8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-right-outline.svg deleted file mode 100644 index 503772ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-right.svg deleted file mode 100644 index b0f7316b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-up-outline.svg deleted file mode 100644 index 0e2480ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-up.svg deleted file mode 100644 index ed01a014..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cancel-outline.svg deleted file mode 100644 index 6a111d00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cancel.svg deleted file mode 100644 index c251c390..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-check-outline.svg deleted file mode 100644 index 34d0e6cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-check.svg deleted file mode 100644 index 0aba1509..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-clock-outline.svg deleted file mode 100644 index da923934..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-clock.svg deleted file mode 100644 index 4f7acabb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cog-outline.svg deleted file mode 100644 index 33964e12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cog.svg deleted file mode 100644 index 17b996cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cross.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cross.svg deleted file mode 100644 index dc73d0ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-cross.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-edit-outline.svg deleted file mode 100644 index 841ba735..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-edit.svg deleted file mode 100644 index 1669951a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-education-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-education-outline.svg deleted file mode 100644 index 2184871f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-education-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-education.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-education.svg deleted file mode 100644 index 4afa2751..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-education.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-heart-outline.svg deleted file mode 100644 index e329527b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-heart.svg deleted file mode 100644 index eff0149e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-information-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-information-variant.svg deleted file mode 100644 index a5dbb809..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-information-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-open-outline.svg deleted file mode 100644 index d161794c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-open.svg deleted file mode 100644 index 3d28c625..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-outline.svg deleted file mode 100644 index a3abfc4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock.svg deleted file mode 100644 index d3726a7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-marker-outline.svg deleted file mode 100644 index 93fc7f4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-marker.svg deleted file mode 100644 index 71e50717..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-multiple-outline.svg deleted file mode 100644 index 3cae0d28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-multiple.svg deleted file mode 100644 index 5e2df540..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-outline.svg deleted file mode 100644 index 92fb5a44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus.svg deleted file mode 100644 index c6f289da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-multiple-outline.svg deleted file mode 100644 index fa648c97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-multiple.svg deleted file mode 100644 index 4338ad7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-music-outline.svg deleted file mode 100644 index dd9bf7b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-music.svg deleted file mode 100644 index defb772a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-off-outline.svg deleted file mode 100644 index 5f23c38e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-off.svg deleted file mode 100644 index 5b74002b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-blank-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-blank-variant.svg deleted file mode 100644 index 95ce1477..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-blank-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-outline.svg deleted file mode 100644 index 3bed7eeb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-page-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-page-variant-outline.svg deleted file mode 100644 index 72ed5fc1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-page-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-page-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-page-variant.svg deleted file mode 100644 index 8a2b9902..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-page-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-variant.svg deleted file mode 100644 index ec69214e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open.svg deleted file mode 100644 index 207e7e2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-outline.svg deleted file mode 100644 index 3ee82c2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-play-outline.svg deleted file mode 100644 index 5ce28672..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-play.svg deleted file mode 100644 index dd48f70e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-multiple-outline.svg deleted file mode 100644 index 61c43a64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-multiple.svg deleted file mode 100644 index 453a7f28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-outline.svg deleted file mode 100644 index 3bf559ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus.svg deleted file mode 100644 index b855599e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-refresh-outline.svg deleted file mode 100644 index 7e919141..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-refresh.svg deleted file mode 100644 index 66d80f63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-multiple-outline.svg deleted file mode 100644 index 4192ab23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-multiple.svg deleted file mode 100644 index d9ed9db0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-outline.svg deleted file mode 100644 index 422077cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove.svg deleted file mode 100644 index e1164258..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-search-outline.svg deleted file mode 100644 index 76937cff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-search.svg deleted file mode 100644 index 176c70fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-settings-outline.svg deleted file mode 100644 index cf9e005e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-settings.svg deleted file mode 100644 index 5b5809f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-sync-outline.svg deleted file mode 100644 index 205e13f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-sync.svg deleted file mode 100644 index 275165f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-variant.svg deleted file mode 100644 index ad43a404..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book.svg deleted file mode 100644 index 5c22f900..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/book.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-multiple-outline.svg deleted file mode 100644 index 187cc6f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-multiple.svg deleted file mode 100644 index e56a0e46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-outline.svg deleted file mode 100644 index f3c9eba8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box.svg deleted file mode 100644 index e4da88ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-check-outline.svg deleted file mode 100644 index dc4b6ee8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-check.svg deleted file mode 100644 index 4b590531..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-minus-outline.svg deleted file mode 100644 index ca9beaa8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-minus.svg deleted file mode 100644 index 57cd50a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-multiple-outline.svg deleted file mode 100644 index 013b0585..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-multiple.svg deleted file mode 100644 index c9526b4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-music-outline.svg deleted file mode 100644 index a8cbe423..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-music.svg deleted file mode 100644 index 02578d04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-off-outline.svg deleted file mode 100644 index 789f1dd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-off.svg deleted file mode 100644 index 56fbd564..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-outline.svg deleted file mode 100644 index c50890f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-plus-outline.svg deleted file mode 100644 index 73f69f73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-plus.svg deleted file mode 100644 index 558e46b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-remove-outline.svg deleted file mode 100644 index 260d9515..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-remove.svg deleted file mode 100644 index edd6bb4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark.svg deleted file mode 100644 index cf01792e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookmark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookshelf.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookshelf.svg deleted file mode 100644 index 17485f82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bookshelf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-alert-outline.svg deleted file mode 100644 index 5f2d596c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-alert.svg deleted file mode 100644 index 3e088d0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-down-outline.svg deleted file mode 100644 index 6b5e409c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-down.svg deleted file mode 100644 index b0119318..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-up-outline.svg deleted file mode 100644 index 79dbfdf3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-up.svg deleted file mode 100644 index d24ba5a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-outline.svg deleted file mode 100644 index 8e238aff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-up-outline.svg deleted file mode 100644 index 489b2216..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-up.svg deleted file mode 100644 index 63813b0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate.svg deleted file mode 100644 index c79ba892..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boom-gate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boombox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boombox.svg deleted file mode 100644 index 33d2e543..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boombox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boomerang.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boomerang.svg deleted file mode 100644 index fd51ab98..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boomerang.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bootstrap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bootstrap.svg deleted file mode 100644 index d8df5f01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bootstrap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-all-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-all-variant.svg deleted file mode 100644 index 0058e256..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-all-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-all.svg deleted file mode 100644 index 13f8eeae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-bottom-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-bottom-variant.svg deleted file mode 100644 index 89e62e44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-bottom-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-bottom.svg deleted file mode 100644 index 2b08eaa6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-color.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-color.svg deleted file mode 100644 index d951afe7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-color.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-horizontal.svg deleted file mode 100644 index 4787d27e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-inside.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-inside.svg deleted file mode 100644 index 8f4387af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-inside.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-left-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-left-variant.svg deleted file mode 100644 index e09261d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-left-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-left.svg deleted file mode 100644 index 80d1b94c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-none-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-none-variant.svg deleted file mode 100644 index 46454771..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-none-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-none.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-none.svg deleted file mode 100644 index f1b8dc81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-none.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-outside.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-outside.svg deleted file mode 100644 index f2ffcac4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-outside.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-radius.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-radius.svg deleted file mode 100644 index cbf65a95..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-radius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-right-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-right-variant.svg deleted file mode 100644 index 875c4970..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-right-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-right.svg deleted file mode 100644 index 9f54f81a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-style.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-style.svg deleted file mode 100644 index 8358d0de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-style.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-top-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-top-variant.svg deleted file mode 100644 index cdd68a0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-top-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-top.svg deleted file mode 100644 index 738869f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-vertical.svg deleted file mode 100644 index 14ccc392..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/border-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-classic-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-classic-outline.svg deleted file mode 100644 index 4145d53f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-classic-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-classic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-classic.svg deleted file mode 100644 index 067c525e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-classic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-outline.svg deleted file mode 100644 index 9d52d8c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda.svg deleted file mode 100644 index 055331d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-soda.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-outline.svg deleted file mode 100644 index f7a6a7ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-plus-outline.svg deleted file mode 100644 index bd4fb991..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-plus.svg deleted file mode 100644 index 12cd3fb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-skull-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-skull-outline.svg deleted file mode 100644 index df71ce5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-skull-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-skull.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-skull.svg deleted file mode 100644 index 1ed5eafa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic-skull.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic.svg deleted file mode 100644 index a45644a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-tonic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-wine-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-wine-outline.svg deleted file mode 100644 index c3eae0fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-wine-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-wine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-wine.svg deleted file mode 100644 index e6054507..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bottle-wine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bow-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bow-arrow.svg deleted file mode 100644 index c03cfb4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bow-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bow-tie.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bow-tie.svg deleted file mode 100644 index 9b3aa62c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bow-tie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-mix-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-mix-outline.svg deleted file mode 100644 index 81bd002e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-mix-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-mix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-mix.svg deleted file mode 100644 index 782db715..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-mix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-outline.svg deleted file mode 100644 index 2489a69e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl.svg deleted file mode 100644 index e9942326..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowling.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowling.svg deleted file mode 100644 index 1a32b1c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bowling.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-cutter-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-cutter-off.svg deleted file mode 100644 index 05734336..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-cutter-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-cutter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-cutter.svg deleted file mode 100644 index 2aa18de5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-cutter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-shadow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-shadow.svg deleted file mode 100644 index 8dbd9f82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box-shadow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box.svg deleted file mode 100644 index 34db0539..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boxing-glove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boxing-glove.svg deleted file mode 100644 index 4e87e38c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/boxing-glove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/braille.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/braille.svg deleted file mode 100644 index f8a1f573..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/braille.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brain.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brain.svg deleted file mode 100644 index 77ff1ef6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bread-slice-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bread-slice-outline.svg deleted file mode 100644 index a88c195b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bread-slice-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bread-slice.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bread-slice.svg deleted file mode 100644 index 7fe5f4cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bread-slice.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bridge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bridge.svg deleted file mode 100644 index 7c99d088..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bridge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-account-outline.svg deleted file mode 100644 index 3643e7ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-account.svg deleted file mode 100644 index f9ba8df4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-left-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-left-right-outline.svg deleted file mode 100644 index eb838132..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-left-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-left-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-left-right.svg deleted file mode 100644 index 6d0001e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-left-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-up-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-up-down-outline.svg deleted file mode 100644 index dcab9f10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-up-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-up-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-up-down.svg deleted file mode 100644 index f7b33a28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-arrow-up-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-check-outline.svg deleted file mode 100644 index 9bb9d91a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-check.svg deleted file mode 100644 index 644c078a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-clock-outline.svg deleted file mode 100644 index 96981091..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-clock.svg deleted file mode 100644 index 14e819ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-download-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-download-outline.svg deleted file mode 100644 index ce1f8b30..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-download-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-download.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-download.svg deleted file mode 100644 index 21dca9ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-edit-outline.svg deleted file mode 100644 index 6caa48d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-edit.svg deleted file mode 100644 index 87a5ae36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-eye-outline.svg deleted file mode 100644 index 800e5328..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-eye.svg deleted file mode 100644 index e8e2342f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-minus-outline.svg deleted file mode 100644 index 298e7e87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-minus.svg deleted file mode 100644 index 16184e76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-off-outline.svg deleted file mode 100644 index a32aa8a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-off.svg deleted file mode 100644 index a21f0ded..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-outline.svg deleted file mode 100644 index 7cf041a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-plus-outline.svg deleted file mode 100644 index 985c8f57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-plus.svg deleted file mode 100644 index 6e03b058..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-remove-outline.svg deleted file mode 100644 index 7146ab71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-remove.svg deleted file mode 100644 index 240743e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-search-outline.svg deleted file mode 100644 index 39b8f969..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-search.svg deleted file mode 100644 index 549c18b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-upload-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-upload-outline.svg deleted file mode 100644 index f4f188b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-upload-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-upload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-upload.svg deleted file mode 100644 index e9296e77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-off-outline.svg deleted file mode 100644 index 9fb50b65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-off.svg deleted file mode 100644 index 2009fec7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-outline.svg deleted file mode 100644 index bbffec91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant.svg deleted file mode 100644 index 194fcf57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase.svg deleted file mode 100644 index 579043d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/briefcase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-1.svg deleted file mode 100644 index 2d324835..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-2.svg deleted file mode 100644 index f947edbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-3.svg deleted file mode 100644 index 0a57f2c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-4.svg deleted file mode 100644 index 85f69e78..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-5.svg deleted file mode 100644 index 1809475f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-6.svg deleted file mode 100644 index e9c12880..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-7.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-7.svg deleted file mode 100644 index feed5acb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-auto.svg deleted file mode 100644 index 85a77946..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-percent.svg deleted file mode 100644 index 2039c00f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brightness-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broadcast-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broadcast-off.svg deleted file mode 100644 index 6fe2336a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broadcast-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broadcast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broadcast.svg deleted file mode 100644 index b070c557..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broadcast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broom.svg deleted file mode 100644 index 57c4965c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/broom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-off.svg deleted file mode 100644 index 176c28da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-outline.svg deleted file mode 100644 index 7b4c3044..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-variant.svg deleted file mode 100644 index f37853bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush.svg deleted file mode 100644 index f5fd488d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/brush.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bucket-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bucket-outline.svg deleted file mode 100644 index f5948215..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bucket-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bucket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bucket.svg deleted file mode 100644 index a94097d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bucket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/buffet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/buffet.svg deleted file mode 100644 index 04120aff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/buffet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-check-outline.svg deleted file mode 100644 index af3eac7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-check.svg deleted file mode 100644 index 1dda9f9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-outline.svg deleted file mode 100644 index a02c6676..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-pause-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-pause-outline.svg deleted file mode 100644 index 24387d9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-pause-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-pause.svg deleted file mode 100644 index d47b9e9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-play-outline.svg deleted file mode 100644 index 32ab870a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-play.svg deleted file mode 100644 index 7fa04a4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-stop-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-stop-outline.svg deleted file mode 100644 index 14216f5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-stop-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-stop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-stop.svg deleted file mode 100644 index 3fc56219..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug-stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug.svg deleted file mode 100644 index 804ca32f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bugle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bugle.svg deleted file mode 100644 index ddc92a13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bugle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulkhead-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulkhead-light.svg deleted file mode 100644 index 010c4d6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulkhead-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulldozer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulldozer.svg deleted file mode 100644 index 67f479a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulldozer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullet.svg deleted file mode 100644 index af9b67e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulletin-board.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulletin-board.svg deleted file mode 100644 index 30a64330..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulletin-board.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-outline.svg deleted file mode 100644 index a0262b35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-variant-outline.svg deleted file mode 100644 index 74b4b902..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-variant.svg deleted file mode 100644 index 82c45ded..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn.svg deleted file mode 100644 index d8f05ea9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullhorn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullseye-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullseye-arrow.svg deleted file mode 100644 index 2852703d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullseye-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullseye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullseye.svg deleted file mode 100644 index 4ed7809d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bullseye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulma.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulma.svg deleted file mode 100644 index d609892f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bulma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bunk-bed-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bunk-bed-outline.svg deleted file mode 100644 index bc56e688..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bunk-bed-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bunk-bed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bunk-bed.svg deleted file mode 100644 index a4fca7d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bunk-bed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-alert.svg deleted file mode 100644 index 75fb7898..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-articulated-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-articulated-end.svg deleted file mode 100644 index afeba8f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-articulated-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-articulated-front.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-articulated-front.svg deleted file mode 100644 index f446a498..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-articulated-front.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-clock.svg deleted file mode 100644 index 7a14e40f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-double-decker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-double-decker.svg deleted file mode 100644 index 1f837675..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-double-decker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-electric.svg deleted file mode 100644 index 1c807cd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-marker.svg deleted file mode 100644 index 66528299..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-multiple.svg deleted file mode 100644 index 5d0f2ceb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-school.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-school.svg deleted file mode 100644 index 901f3a13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-school.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-side.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-side.svg deleted file mode 100644 index 8a682741..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-side.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop-covered.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop-covered.svg deleted file mode 100644 index 0863a282..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop-covered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop-uncovered.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop-uncovered.svg deleted file mode 100644 index 336ff884..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop-uncovered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop.svg deleted file mode 100644 index 2afe6baa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus-stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus.svg deleted file mode 100644 index 13fb6f5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/bus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/butterfly-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/butterfly-outline.svg deleted file mode 100644 index 5d795392..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/butterfly-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/butterfly.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/butterfly.svg deleted file mode 100644 index 9a9544ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/butterfly.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/button-cursor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/button-cursor.svg deleted file mode 100644 index 0622df00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/button-cursor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/button-pointer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/button-pointer.svg deleted file mode 100644 index f466be6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/button-pointer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cabin-a-frame.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cabin-a-frame.svg deleted file mode 100644 index f5433991..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cabin-a-frame.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cable-data.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cable-data.svg deleted file mode 100644 index 6bc9d637..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cable-data.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cached.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cached.svg deleted file mode 100644 index 2a5ccc47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cached.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cactus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cactus.svg deleted file mode 100644 index 2a056c59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cactus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-layered.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-layered.svg deleted file mode 100644 index 624c1780..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-layered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-variant-outline.svg deleted file mode 100644 index 949e7922..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-variant.svg deleted file mode 100644 index b3cde13a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake.svg deleted file mode 100644 index ad1534d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator-variant-outline.svg deleted file mode 100644 index 2f244897..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator-variant.svg deleted file mode 100644 index bf6bc9e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator.svg deleted file mode 100644 index db7fd873..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calculator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-account-outline.svg deleted file mode 100644 index ac5e0fcc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-account.svg deleted file mode 100644 index ce9d7e5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-alert-outline.svg deleted file mode 100644 index ec585292..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-alert.svg deleted file mode 100644 index 21a182dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-arrow-left.svg deleted file mode 100644 index d560c6eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-arrow-right.svg deleted file mode 100644 index fed6b4f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-badge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-badge-outline.svg deleted file mode 100644 index 9f8835df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-badge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-badge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-badge.svg deleted file mode 100644 index c52bad75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank-multiple.svg deleted file mode 100644 index c784fbc5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank-outline.svg deleted file mode 100644 index 60ab92cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank.svg deleted file mode 100644 index 8afc4214..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-blank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-check-outline.svg deleted file mode 100644 index d9f1e1b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-check.svg deleted file mode 100644 index 1f590ebf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-clock-outline.svg deleted file mode 100644 index dee84b0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-clock.svg deleted file mode 100644 index 9f8b94df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-collapse-horizontal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-collapse-horizontal-outline.svg deleted file mode 100644 index 873883f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-collapse-horizontal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-collapse-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-collapse-horizontal.svg deleted file mode 100644 index 49f5326b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-collapse-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-cursor-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-cursor-outline.svg deleted file mode 100644 index d56eba3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-cursor-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-cursor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-cursor.svg deleted file mode 100644 index ac772207..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-cursor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-edit-outline.svg deleted file mode 100644 index 7f18d3b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-edit.svg deleted file mode 100644 index c812963d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-end-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-end-outline.svg deleted file mode 100644 index 4e855dd5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-end-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-end.svg deleted file mode 100644 index 503b18cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-expand-horizontal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-expand-horizontal-outline.svg deleted file mode 100644 index c0b42d29..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-expand-horizontal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-expand-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-expand-horizontal.svg deleted file mode 100644 index 61785606..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-expand-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-export-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-export-outline.svg deleted file mode 100644 index e4c07ffa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-export-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-export.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-export.svg deleted file mode 100644 index 0263ad40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-filter-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-filter-outline.svg deleted file mode 100644 index a8288636..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-filter-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-filter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-filter.svg deleted file mode 100644 index 2c1427d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-heart-outline.svg deleted file mode 100644 index e6708479..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-heart.svg deleted file mode 100644 index 72f7e9d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-import-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-import-outline.svg deleted file mode 100644 index 603953b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-import-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-import.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-import.svg deleted file mode 100644 index 86cfc112..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-open-outline.svg deleted file mode 100644 index 2e7569c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-open.svg deleted file mode 100644 index a9f47e70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-outline.svg deleted file mode 100644 index 1a14303b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock.svg deleted file mode 100644 index 8747ea7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-minus-outline.svg deleted file mode 100644 index 6bae7006..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-minus.svg deleted file mode 100644 index 7e73ed49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-month-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-month-outline.svg deleted file mode 100644 index 7916ec67..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-month-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-month.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-month.svg deleted file mode 100644 index ba554b05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-month.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiple-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiple-check.svg deleted file mode 100644 index 2886ab68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiple-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiple.svg deleted file mode 100644 index ea731e12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiselect-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiselect-outline.svg deleted file mode 100644 index 83073ba9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiselect-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiselect.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiselect.svg deleted file mode 100644 index 52dd9472..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-multiselect.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-outline.svg deleted file mode 100644 index 3819e7ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-plus-outline.svg deleted file mode 100644 index 7b846d4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-plus.svg deleted file mode 100644 index df1eb55a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-question-outline.svg deleted file mode 100644 index c992cd5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-question.svg deleted file mode 100644 index ec3db110..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-range-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-range-outline.svg deleted file mode 100644 index 43675884..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-range-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-range.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-range.svg deleted file mode 100644 index b3b81b31..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-range.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-refresh-outline.svg deleted file mode 100644 index cc00fe65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-refresh.svg deleted file mode 100644 index 173311b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-remove-outline.svg deleted file mode 100644 index f18146e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-remove.svg deleted file mode 100644 index d6903152..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-search-outline.svg deleted file mode 100644 index ea124359..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-search.svg deleted file mode 100644 index c7874ef4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-star-outline.svg deleted file mode 100644 index 0a1c25c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-star.svg deleted file mode 100644 index a87ee2f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-start-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-start-outline.svg deleted file mode 100644 index 354bdcba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-start-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-start.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-start.svg deleted file mode 100644 index 1b3ac14c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-start.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-sync-outline.svg deleted file mode 100644 index 896b3225..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-sync.svg deleted file mode 100644 index 826435e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-text-outline.svg deleted file mode 100644 index 8e6dd338..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-text.svg deleted file mode 100644 index a8ca0697..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-today-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-today-outline.svg deleted file mode 100644 index 007fc48a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-today-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-today.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-today.svg deleted file mode 100644 index f8ec8ba2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-today.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-begin-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-begin-outline.svg deleted file mode 100644 index 3f8f3654..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-begin-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-begin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-begin.svg deleted file mode 100644 index c8052495..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-begin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-outline.svg deleted file mode 100644 index ba7d9899..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week.svg deleted file mode 100644 index fd77f1ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-week.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-weekend-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-weekend-outline.svg deleted file mode 100644 index 37854083..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-weekend-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-weekend.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-weekend.svg deleted file mode 100644 index 84786d93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar-weekend.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar.svg deleted file mode 100644 index 27e5f066..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/calendar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-made.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-made.svg deleted file mode 100644 index 90a3302d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-made.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-merge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-merge.svg deleted file mode 100644 index 25efe574..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-merge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-missed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-missed.svg deleted file mode 100644 index aaf1a6e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-missed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-received.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-received.svg deleted file mode 100644 index 4991273e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-received.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-split.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-split.svg deleted file mode 100644 index 247623d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/call-split.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camcorder-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camcorder-off.svg deleted file mode 100644 index 70072877..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camcorder-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camcorder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camcorder.svg deleted file mode 100644 index 461bb4c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camcorder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-account.svg deleted file mode 100644 index 00540a62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-burst.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-burst.svg deleted file mode 100644 index 706d231d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-burst.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-control.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-control.svg deleted file mode 100644 index 33ab2e77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-control.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-document-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-document-off.svg deleted file mode 100644 index 2757cc93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-document-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-document.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-document.svg deleted file mode 100644 index 7b3e5f31..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-document.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-enhance-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-enhance-outline.svg deleted file mode 100644 index 3aa950f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-enhance-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-enhance.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-enhance.svg deleted file mode 100644 index 1f2b0d2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-enhance.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-flip-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-flip-outline.svg deleted file mode 100644 index 533f2a5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-flip-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-flip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-flip.svg deleted file mode 100644 index 293a008e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-flip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-front-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-front-variant.svg deleted file mode 100644 index 9cc46008..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-front-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-front.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-front.svg deleted file mode 100644 index 675defdb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-front.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-gopro.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-gopro.svg deleted file mode 100644 index 1ea27a3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-gopro.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-image.svg deleted file mode 100644 index 5ef1eac0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-iris.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-iris.svg deleted file mode 100644 index 8b2cc50d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-iris.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-lock-outline.svg deleted file mode 100644 index d30f04a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-lock.svg deleted file mode 100644 index 635f7d1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-marker-outline.svg deleted file mode 100644 index e72fd645..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-marker.svg deleted file mode 100644 index 212ba889..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-center.svg deleted file mode 100644 index 8a4b18a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-matrix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-matrix.svg deleted file mode 100644 index 7bc5d7a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-matrix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-partial.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-partial.svg deleted file mode 100644 index 65013bed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-partial.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-spot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-spot.svg deleted file mode 100644 index dc704db1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-metering-spot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-off-outline.svg deleted file mode 100644 index 08a68704..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-off.svg deleted file mode 100644 index d4d1266f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-outline.svg deleted file mode 100644 index bf2f8abc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-party-mode.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-party-mode.svg deleted file mode 100644 index 59f78093..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-party-mode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-plus-outline.svg deleted file mode 100644 index 40d0facb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-plus.svg deleted file mode 100644 index 1f53039b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-rear-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-rear-variant.svg deleted file mode 100644 index b02171f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-rear-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-rear.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-rear.svg deleted file mode 100644 index e262fc88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-rear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-retake-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-retake-outline.svg deleted file mode 100644 index fbe2818d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-retake-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-retake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-retake.svg deleted file mode 100644 index ddbfcd20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-retake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-switch-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-switch-outline.svg deleted file mode 100644 index b34b724d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-switch-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-switch.svg deleted file mode 100644 index 17f579a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-timer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-timer.svg deleted file mode 100644 index 873abeb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-timer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-wireless-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-wireless-outline.svg deleted file mode 100644 index 43df415a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-wireless-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-wireless.svg deleted file mode 100644 index 1ba0d0f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera.svg deleted file mode 100644 index 3b0c3d3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/camera.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/campfire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/campfire.svg deleted file mode 100644 index d04e4610..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/campfire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cancel.svg deleted file mode 100644 index 5c26d780..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candelabra-fire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candelabra-fire.svg deleted file mode 100644 index d37421f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candelabra-fire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candelabra.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candelabra.svg deleted file mode 100644 index 9dfab17f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candelabra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candle.svg deleted file mode 100644 index 5264af13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-off-outline.svg deleted file mode 100644 index 62cb651c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-off.svg deleted file mode 100644 index fcb9fdad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-outline.svg deleted file mode 100644 index b33382bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy.svg deleted file mode 100644 index 834b30f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candycane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candycane.svg deleted file mode 100644 index b5c7c2d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/candycane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cannabis-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cannabis-off.svg deleted file mode 100644 index 718a510c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cannabis-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cannabis.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cannabis.svg deleted file mode 100644 index 5e3d8a57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cannabis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/caps-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/caps-lock.svg deleted file mode 100644 index 11e3e1df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/caps-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-2-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-2-plus.svg deleted file mode 100644 index ec035215..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-2-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-3-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-3-plus.svg deleted file mode 100644 index f2fde7ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-3-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-arrow-left.svg deleted file mode 100644 index 888c524b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-arrow-right.svg deleted file mode 100644 index 989cf337..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-back.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-back.svg deleted file mode 100644 index ad5fdd36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-back.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-battery.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-battery.svg deleted file mode 100644 index 09a904f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-battery.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-abs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-abs.svg deleted file mode 100644 index 1ce3f37a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-abs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-alert.svg deleted file mode 100644 index 18a0127d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-fluid-level.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-fluid-level.svg deleted file mode 100644 index 0095e5a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-fluid-level.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-hold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-hold.svg deleted file mode 100644 index baef2336..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-hold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-low-pressure.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-low-pressure.svg deleted file mode 100644 index 0d3d4763..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-low-pressure.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-parking.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-parking.svg deleted file mode 100644 index 3468fc5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-parking.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-retarder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-retarder.svg deleted file mode 100644 index f3844015..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-retarder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-temperature.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-temperature.svg deleted file mode 100644 index ac89080f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-temperature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-worn-linings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-worn-linings.svg deleted file mode 100644 index 324727c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-brake-worn-linings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-child-seat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-child-seat.svg deleted file mode 100644 index 5ec5514a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-child-seat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-clock.svg deleted file mode 100644 index 855ad17b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-clutch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-clutch.svg deleted file mode 100644 index c268430c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-clutch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-cog.svg deleted file mode 100644 index 2b044b92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-connected.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-connected.svg deleted file mode 100644 index 10ce94b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-connected.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-convertible.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-convertible.svg deleted file mode 100644 index 538e77af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-convertible.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-coolant-level.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-coolant-level.svg deleted file mode 100644 index 047f5c67..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-coolant-level.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-cruise-control.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-cruise-control.svg deleted file mode 100644 index 5ff81180..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-cruise-control.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-defrost-front.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-defrost-front.svg deleted file mode 100644 index c749b1ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-defrost-front.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-defrost-rear.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-defrost-rear.svg deleted file mode 100644 index c7a3be70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-defrost-rear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-door-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-door-lock.svg deleted file mode 100644 index 56f7fc40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-door-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-door.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-door.svg deleted file mode 100644 index e3476cc7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-door.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-electric-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-electric-outline.svg deleted file mode 100644 index d81466ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-electric-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-electric.svg deleted file mode 100644 index 8aecee80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-emergency.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-emergency.svg deleted file mode 100644 index cbb99d9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-emergency.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-esp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-esp.svg deleted file mode 100644 index 17094fa4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-esp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-estate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-estate.svg deleted file mode 100644 index 73ee8215..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-estate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-hatchback.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-hatchback.svg deleted file mode 100644 index ed2a92b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-hatchback.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-info.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-info.svg deleted file mode 100644 index fec6987f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-info.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-key.svg deleted file mode 100644 index 8209c282..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-lifted-pickup.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-lifted-pickup.svg deleted file mode 100644 index e6dcaea4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-lifted-pickup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-alert.svg deleted file mode 100644 index 6481702e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-dimmed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-dimmed.svg deleted file mode 100644 index 9241c22c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-dimmed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-fog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-fog.svg deleted file mode 100644 index d05da6b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-fog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-high.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-high.svg deleted file mode 100644 index 73549106..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-light-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-limousine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-limousine.svg deleted file mode 100644 index 7ee87f45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-limousine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-multiple.svg deleted file mode 100644 index 00019635..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-off.svg deleted file mode 100644 index dc48f6d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-outline.svg deleted file mode 100644 index e949e136..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-parking-lights.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-parking-lights.svg deleted file mode 100644 index a0c3f771..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-parking-lights.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-pickup.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-pickup.svg deleted file mode 100644 index 77f891c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-pickup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-search-outline.svg deleted file mode 100644 index 6377444f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-search.svg deleted file mode 100644 index 22264375..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat-cooler.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat-cooler.svg deleted file mode 100644 index ab00b0a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat-cooler.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat-heater.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat-heater.svg deleted file mode 100644 index 6f2eea15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat-heater.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat.svg deleted file mode 100644 index 1bb924f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-seat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-select.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-select.svg deleted file mode 100644 index b8bbb8c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-settings.svg deleted file mode 100644 index 2e1fb30e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-shift-pattern.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-shift-pattern.svg deleted file mode 100644 index 952eda47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-shift-pattern.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-side.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-side.svg deleted file mode 100644 index 57dadd4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-side.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-speed-limiter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-speed-limiter.svg deleted file mode 100644 index 293f2059..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-speed-limiter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-sports.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-sports.svg deleted file mode 100644 index 7e90f08e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-sports.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-tire-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-tire-alert.svg deleted file mode 100644 index 31d903d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-tire-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-traction-control.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-traction-control.svg deleted file mode 100644 index ca7ad234..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-traction-control.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-turbocharger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-turbocharger.svg deleted file mode 100644 index 08e5abac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-turbocharger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wash.svg deleted file mode 100644 index 9b01c4db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-windshield-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-windshield-outline.svg deleted file mode 100644 index 062bec90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-windshield-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-windshield.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-windshield.svg deleted file mode 100644 index 67426c7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-windshield.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wireless.svg deleted file mode 100644 index 3632598e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wrench.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wrench.svg deleted file mode 100644 index 335f0a23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car-wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car.svg deleted file mode 100644 index 4efaf67e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/car.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/carabiner.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/carabiner.svg deleted file mode 100644 index d3655904..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/carabiner.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/caravan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/caravan.svg deleted file mode 100644 index 03ccf04a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/caravan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-outline.svg deleted file mode 100644 index 0b5776ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-star-outline.svg deleted file mode 100644 index 90f75b5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-star.svg deleted file mode 100644 index 8e68da41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details.svg deleted file mode 100644 index 9806ed8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-details.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-mail-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-mail-outline.svg deleted file mode 100644 index db2e5fe4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-mail-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-mail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-mail.svg deleted file mode 100644 index 45fce042..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-mail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-phone-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-phone-outline.svg deleted file mode 100644 index 3e593b74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-phone-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-phone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-phone.svg deleted file mode 100644 index 0b995f3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-account-phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-off-outline.svg deleted file mode 100644 index 39d3fc19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-off.svg deleted file mode 100644 index 1d8e140c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-outline.svg deleted file mode 100644 index 8c6c0f8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-settings-outline.svg deleted file mode 100644 index b5e250d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-settings.svg deleted file mode 100644 index 12020107..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted.svg deleted file mode 100644 index 1673cfbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-bulleted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-minus-outline.svg deleted file mode 100644 index 25b51817..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-minus.svg deleted file mode 100644 index 4cbfaf9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-multiple-outline.svg deleted file mode 100644 index b9480057..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-multiple.svg deleted file mode 100644 index 9b08d48c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-off-outline.svg deleted file mode 100644 index 4e3f852a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-off.svg deleted file mode 100644 index ef1949e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-outline.svg deleted file mode 100644 index 7182b56f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-plus-outline.svg deleted file mode 100644 index d9e021f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-plus.svg deleted file mode 100644 index 3aab4664..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-remove-outline.svg deleted file mode 100644 index 16a1b430..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-remove.svg deleted file mode 100644 index fc6661ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-search-outline.svg deleted file mode 100644 index 1075b0c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-search.svg deleted file mode 100644 index f37cf31e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-text-outline.svg deleted file mode 100644 index ac846dc3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-text.svg deleted file mode 100644 index 91e31c51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card.svg deleted file mode 100644 index f2d96f96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-club-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-club-outline.svg deleted file mode 100644 index e2957002..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-club-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-club.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-club.svg deleted file mode 100644 index f696e81d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-club.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-diamond-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-diamond-outline.svg deleted file mode 100644 index 2726c30e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-diamond-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-diamond.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-diamond.svg deleted file mode 100644 index e9ae5d51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-heart-outline.svg deleted file mode 100644 index 55d5e943..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-heart.svg deleted file mode 100644 index 0961c7e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-outline.svg deleted file mode 100644 index 60380f77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-multiple-outline.svg deleted file mode 100644 index 9fb898ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-multiple.svg deleted file mode 100644 index 3f9e6f8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-outline.svg deleted file mode 100644 index f2a376ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club.svg deleted file mode 100644 index c06ce29a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-club.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-multiple-outline.svg deleted file mode 100644 index bc4a26af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-multiple.svg deleted file mode 100644 index 465e86e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-outline.svg deleted file mode 100644 index 1613bdc9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond.svg deleted file mode 100644 index a54addcb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-multiple-outline.svg deleted file mode 100644 index 1a24c2cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-multiple.svg deleted file mode 100644 index 76d71f12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-outline.svg deleted file mode 100644 index d96bf60b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart.svg deleted file mode 100644 index d5eb08c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-outline.svg deleted file mode 100644 index d1c75398..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-multiple-outline.svg deleted file mode 100644 index 990d14e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-multiple.svg deleted file mode 100644 index ea3e2ad3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-outline.svg deleted file mode 100644 index 919aca35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade.svg deleted file mode 100644 index 740a76a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing-spade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing.svg deleted file mode 100644 index 6ffa1354..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-playing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-spade-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-spade-outline.svg deleted file mode 100644 index 3edad48a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-spade-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-spade.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-spade.svg deleted file mode 100644 index de8463e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-spade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-variant.svg deleted file mode 100644 index 4b594d57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards.svg deleted file mode 100644 index 9015ecb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cards.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/carrot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/carrot.svg deleted file mode 100644 index 62d86a6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/carrot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-down.svg deleted file mode 100644 index 94db5c8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-right.svg deleted file mode 100644 index ccd2d675..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-up.svg deleted file mode 100644 index 03389c36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-check.svg deleted file mode 100644 index 7491fe5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-heart.svg deleted file mode 100644 index 0f56cfba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-minus.svg deleted file mode 100644 index 816623c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-off.svg deleted file mode 100644 index ccea5a05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-outline.svg deleted file mode 100644 index a42a803a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-percent.svg deleted file mode 100644 index c145dcbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-plus.svg deleted file mode 100644 index 0834ef1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-remove.svg deleted file mode 100644 index ac3a6c62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-variant.svg deleted file mode 100644 index 6458465d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart.svg deleted file mode 100644 index 8531d218..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/case-sensitive-alt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/case-sensitive-alt.svg deleted file mode 100644 index 2c3b584f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/case-sensitive-alt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-100.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-100.svg deleted file mode 100644 index 57390f65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-100.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-check.svg deleted file mode 100644 index cd13be09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-clock.svg deleted file mode 100644 index 1ebc8b86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-fast.svg deleted file mode 100644 index e47f7e67..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-lock-open.svg deleted file mode 100644 index 9a4eaa15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-lock.svg deleted file mode 100644 index 025365af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-marker.svg deleted file mode 100644 index 5cc5844c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-minus.svg deleted file mode 100644 index eda855ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-multiple.svg deleted file mode 100644 index db72aeb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-plus.svg deleted file mode 100644 index eb2f42a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-refund.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-refund.svg deleted file mode 100644 index 2a363845..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-refund.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-register.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-register.svg deleted file mode 100644 index ff764d96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-register.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-remove.svg deleted file mode 100644 index f966746d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-sync.svg deleted file mode 100644 index 2025b65a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash.svg deleted file mode 100644 index 0157c737..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cassette.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cassette.svg deleted file mode 100644 index dfa03f23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cassette.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-audio-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-audio-variant.svg deleted file mode 100644 index a1a80764..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-audio-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-audio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-audio.svg deleted file mode 100644 index f7bb7072..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-audio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-connected.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-connected.svg deleted file mode 100644 index e59a537e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-connected.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-education.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-education.svg deleted file mode 100644 index 8465b72d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-education.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-off.svg deleted file mode 100644 index 3dc0501d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-variant.svg deleted file mode 100644 index 601fbd6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast.svg deleted file mode 100644 index 1cd0bbf5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/castle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/castle.svg deleted file mode 100644 index 0e953c3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/castle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cat.svg deleted file mode 100644 index d60b3d05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cctv-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cctv-off.svg deleted file mode 100644 index b54b4591..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cctv-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cctv.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cctv.svg deleted file mode 100644 index a5d19800..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cctv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-fan-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-fan-light.svg deleted file mode 100644 index daabd2a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-fan-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-fan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-fan.svg deleted file mode 100644 index 6219d5ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-fan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-multiple-outline.svg deleted file mode 100644 index 0bfb46c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-multiple.svg deleted file mode 100644 index 329bad65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-outline.svg deleted file mode 100644 index 6c61a13d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light.svg deleted file mode 100644 index 7aa6bbf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ceiling-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-arrow-down-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-arrow-down-variant.svg deleted file mode 100644 index 5f125442..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-arrow-down-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-arrow-down.svg deleted file mode 100644 index 46ef4348..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-basic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-basic.svg deleted file mode 100644 index 1d365d9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-basic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-charging.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-charging.svg deleted file mode 100644 index 6d639006..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-charging.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-check.svg deleted file mode 100644 index 8db4073e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-cog.svg deleted file mode 100644 index 27ccc8d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-dock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-dock.svg deleted file mode 100644 index b434ad65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-dock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-information.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-information.svg deleted file mode 100644 index ebb0dbcd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-information.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-key.svg deleted file mode 100644 index a6e63935..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-link-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-link-off.svg deleted file mode 100644 index 7936457a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-link-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-link.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-link.svg deleted file mode 100644 index bbd89504..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-lock.svg deleted file mode 100644 index cd556032..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-marker.svg deleted file mode 100644 index f1712e4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-message-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-message-off.svg deleted file mode 100644 index ef0c7c4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-message-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-message.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-message.svg deleted file mode 100644 index 3edb209b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-nfc-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-nfc-off.svg deleted file mode 100644 index 6eb41eea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-nfc-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-nfc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-nfc.svg deleted file mode 100644 index 26e1749c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-nfc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-off.svg deleted file mode 100644 index 42103446..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-play.svg deleted file mode 100644 index 4d63fc25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-remove.svg deleted file mode 100644 index 0d5b3094..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-screenshot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-screenshot.svg deleted file mode 100644 index c6f5504a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-screenshot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-settings.svg deleted file mode 100644 index 371f77fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-sound.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-sound.svg deleted file mode 100644 index b6124326..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-sound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-text.svg deleted file mode 100644 index eba0d5fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-wireless.svg deleted file mode 100644 index f0f81186..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone.svg deleted file mode 100644 index 4f7b7d99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cellphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/centos.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/centos.svg deleted file mode 100644 index 31a81869..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/centos.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/certificate-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/certificate-outline.svg deleted file mode 100644 index 68f0d96d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/certificate-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/certificate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/certificate.svg deleted file mode 100644 index 64bc0bc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/certificate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chair-rolling.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chair-rolling.svg deleted file mode 100644 index 64dc5005..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chair-rolling.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chair-school.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chair-school.svg deleted file mode 100644 index fa295a6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chair-school.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chandelier.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chandelier.svg deleted file mode 100644 index de8b87ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chandelier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/charity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/charity.svg deleted file mode 100644 index 713ea42e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/charity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-arc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-arc.svg deleted file mode 100644 index d6089326..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-arc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-areaspline-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-areaspline-variant.svg deleted file mode 100644 index b411c682..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-areaspline-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-areaspline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-areaspline.svg deleted file mode 100644 index 34028af7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-areaspline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bar-stacked.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bar-stacked.svg deleted file mode 100644 index 6ddc21d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bar-stacked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bar.svg deleted file mode 100644 index ec84909e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bell-curve-cumulative.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bell-curve-cumulative.svg deleted file mode 100644 index 743eb47d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bell-curve-cumulative.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bell-curve.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bell-curve.svg deleted file mode 100644 index c0df5875..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bell-curve.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box-outline.svg deleted file mode 100644 index 0ca14800..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box-plus-outline.svg deleted file mode 100644 index 0f5569fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box.svg deleted file mode 100644 index 77e16bf0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bubble.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bubble.svg deleted file mode 100644 index d43c899e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-bubble.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-donut-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-donut-variant.svg deleted file mode 100644 index 8d8d154a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-donut-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-donut.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-donut.svg deleted file mode 100644 index 1a57844f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-donut.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-gantt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-gantt.svg deleted file mode 100644 index 2a20f680..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-gantt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-histogram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-histogram.svg deleted file mode 100644 index 98b725ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-histogram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line-stacked.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line-stacked.svg deleted file mode 100644 index 41451cc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line-stacked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line-variant.svg deleted file mode 100644 index a8da8a6f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line.svg deleted file mode 100644 index 4701aef7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-line.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-multiline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-multiline.svg deleted file mode 100644 index d9340050..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-multiline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-multiple.svg deleted file mode 100644 index 302b778d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-pie.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-pie.svg deleted file mode 100644 index 298d62ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-pie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-ppf.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-ppf.svg deleted file mode 100644 index 2b2780d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-ppf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-sankey-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-sankey-variant.svg deleted file mode 100644 index 91d163c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-sankey-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-sankey.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-sankey.svg deleted file mode 100644 index 49bb1db4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-sankey.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-scatter-plot-hexbin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-scatter-plot-hexbin.svg deleted file mode 100644 index 3bbfead5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-scatter-plot-hexbin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-scatter-plot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-scatter-plot.svg deleted file mode 100644 index 9b366646..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-scatter-plot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline-variant-shimmer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline-variant-shimmer.svg deleted file mode 100644 index c06fc4d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline-variant-shimmer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline-variant.svg deleted file mode 100644 index af1bdcbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline.svg deleted file mode 100644 index 3487037e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-timeline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-tree.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-tree.svg deleted file mode 100644 index abbb367c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-waterfall.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-waterfall.svg deleted file mode 100644 index d06dfd52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chart-waterfall.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-alert-outline.svg deleted file mode 100644 index 949b33ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-alert.svg deleted file mode 100644 index 7ea5bbb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-minus-outline.svg deleted file mode 100644 index db0285de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-minus.svg deleted file mode 100644 index e4755cc1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-outline.svg deleted file mode 100644 index 838f95d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-plus-outline.svg deleted file mode 100644 index 8694abc9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-plus.svg deleted file mode 100644 index 5def7db6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-processing-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-processing-outline.svg deleted file mode 100644 index 3fd42722..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-processing-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-processing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-processing.svg deleted file mode 100644 index 2b864795..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-processing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-question-outline.svg deleted file mode 100644 index 0aabe106..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-question.svg deleted file mode 100644 index 104bca66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-remove-outline.svg deleted file mode 100644 index c9b3da2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-remove.svg deleted file mode 100644 index af7ab4b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-sleep-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-sleep-outline.svg deleted file mode 100644 index 8f02136d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-sleep-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-sleep.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-sleep.svg deleted file mode 100644 index e447ed8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat-sleep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat.svg deleted file mode 100644 index 57f37fe1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-all.svg deleted file mode 100644 index 193092d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-bold.svg deleted file mode 100644 index cdf07ff4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-circle-outline.svg deleted file mode 100644 index 0cc4e728..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-circle.svg deleted file mode 100644 index 3557d1a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-decagram-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-decagram-outline.svg deleted file mode 100644 index 35dfc38f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-decagram-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-decagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-decagram.svg deleted file mode 100644 index 9dab6f02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-decagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-network-outline.svg deleted file mode 100644 index 0f52b27f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-network.svg deleted file mode 100644 index ca95d25a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-outline.svg deleted file mode 100644 index 7be98058..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline-circle-outline.svg deleted file mode 100644 index 44f3a372..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline-circle.svg deleted file mode 100644 index 76b3dee0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline.svg deleted file mode 100644 index e8632933..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check-underline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check.svg deleted file mode 100644 index 066aed30..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbook.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbook.svg deleted file mode 100644 index c3c50fc1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-badge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-badge-outline.svg deleted file mode 100644 index 4395faef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-badge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-badge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-badge.svg deleted file mode 100644 index 1d74b183..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-circle-outline.svg deleted file mode 100644 index 8f74c2b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-circle.svg deleted file mode 100644 index 56496178..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-off-outline.svg deleted file mode 100644 index f9cad521..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-off.svg deleted file mode 100644 index 76c86447..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-outline.svg deleted file mode 100644 index 96924f23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank.svg deleted file mode 100644 index 9b26a467..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-blank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-intermediate-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-intermediate-variant.svg deleted file mode 100644 index 492669df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-intermediate-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-intermediate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-intermediate.svg deleted file mode 100644 index 6e06cb12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-intermediate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle-outline.svg deleted file mode 100644 index 88785aba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle-plus-outline.svg deleted file mode 100644 index 7f7a4a41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle.svg deleted file mode 100644 index 564d8fff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-outline.svg deleted file mode 100644 index 13f3ba45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked.svg deleted file mode 100644 index d86a36dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-marked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-circle-outline.svg deleted file mode 100644 index ddcbdff0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-circle.svg deleted file mode 100644 index c5d7c476..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-outline.svg deleted file mode 100644 index 3894aa33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank.svg deleted file mode 100644 index 676095b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-blank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-circle-outline.svg deleted file mode 100644 index a3616df1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-circle.svg deleted file mode 100644 index 67b21877..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-outline.svg deleted file mode 100644 index 2b19cc46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked.svg deleted file mode 100644 index 1334d8dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-marked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-outline.svg deleted file mode 100644 index 1d3dfdbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-outline.svg deleted file mode 100644 index b682ae66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkbox-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-minus.svg deleted file mode 100644 index 371ad49c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-plus.svg deleted file mode 100644 index 9f033bae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-remove.svg deleted file mode 100644 index fd3ac603..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard.svg deleted file mode 100644 index 14188620..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/checkerboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cheese-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cheese-off.svg deleted file mode 100644 index b426da1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cheese-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cheese.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cheese.svg deleted file mode 100644 index 5fcd9093..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cheese.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chef-hat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chef-hat.svg deleted file mode 100644 index 5768367b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chef-hat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chemical-weapon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chemical-weapon.svg deleted file mode 100644 index 31645217..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chemical-weapon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-bishop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-bishop.svg deleted file mode 100644 index 213d6ea1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-bishop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-king.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-king.svg deleted file mode 100644 index 3f178c37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-king.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-knight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-knight.svg deleted file mode 100644 index 8a89142c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-knight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-pawn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-pawn.svg deleted file mode 100644 index 8ccba431..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-pawn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-queen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-queen.svg deleted file mode 100644 index 6a088fb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-queen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-rook.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-rook.svg deleted file mode 100644 index cc0b38d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chess-rook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-down.svg deleted file mode 100644 index 2da72e84..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-left.svg deleted file mode 100644 index b7df5046..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-right.svg deleted file mode 100644 index dfebf182..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-up.svg deleted file mode 100644 index 29c57f62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-double-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-box-outline.svg deleted file mode 100644 index 40dd55bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-box.svg deleted file mode 100644 index 0337f6a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-circle-outline.svg deleted file mode 100644 index 2ade968f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-circle.svg deleted file mode 100644 index 1450205c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down.svg deleted file mode 100644 index dd1b2f97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-box-outline.svg deleted file mode 100644 index 91ef8220..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-box.svg deleted file mode 100644 index b1305bd8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-circle-outline.svg deleted file mode 100644 index ba62d8ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-circle.svg deleted file mode 100644 index 33eb5809..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left.svg deleted file mode 100644 index 642ca859..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-box-outline.svg deleted file mode 100644 index 0ba29743..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-box.svg deleted file mode 100644 index 7edc97b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-circle-outline.svg deleted file mode 100644 index 3e371497..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-circle.svg deleted file mode 100644 index 68cf8b5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right.svg deleted file mode 100644 index 8853e62f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-down.svg deleted file mode 100644 index 93c7701e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-left.svg deleted file mode 100644 index 0bf1de92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-right.svg deleted file mode 100644 index bcf732e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-up.svg deleted file mode 100644 index 7da1b5b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-triple-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-box-outline.svg deleted file mode 100644 index 135487df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-box.svg deleted file mode 100644 index e1d0696a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-circle-outline.svg deleted file mode 100644 index 0e38c8d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-circle.svg deleted file mode 100644 index 96bdc1c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up.svg deleted file mode 100644 index bf6ba45f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chevron-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-alert-outline.svg deleted file mode 100644 index c5a92c4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-alert.svg deleted file mode 100644 index e72a49d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-hot-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-hot-outline.svg deleted file mode 100644 index 7b3ad4f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-hot-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-hot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-hot.svg deleted file mode 100644 index 383ecad8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-hot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-medium-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-medium-outline.svg deleted file mode 100644 index 3a0d488c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-medium-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-medium.svg deleted file mode 100644 index 0029e00b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-mild-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-mild-outline.svg deleted file mode 100644 index 1ebde973..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-mild-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-mild.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-mild.svg deleted file mode 100644 index 4d6a4bd6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-mild.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-off-outline.svg deleted file mode 100644 index c8eccf35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-off.svg deleted file mode 100644 index e837b973..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chili-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chip.svg deleted file mode 100644 index bae4a428..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/chip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/church-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/church-outline.svg deleted file mode 100644 index 72fe1926..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/church-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/church.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/church.svg deleted file mode 100644 index 5319c7e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/church.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cigar-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cigar-off.svg deleted file mode 100644 index 9640e967..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cigar-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cigar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cigar.svg deleted file mode 100644 index 1f163b1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cigar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-box-outline.svg deleted file mode 100644 index 6d84b4a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-box.svg deleted file mode 100644 index 5781c97c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-double.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-double.svg deleted file mode 100644 index 9b1e35ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-double.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-edit-outline.svg deleted file mode 100644 index 8b4c6ab7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-expand.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-expand.svg deleted file mode 100644 index d7cbfd6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-expand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-half-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-half-full.svg deleted file mode 100644 index 02e2f6f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-half-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-half.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-half.svg deleted file mode 100644 index 2161bdfe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-medium.svg deleted file mode 100644 index a4704529..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-multiple-outline.svg deleted file mode 100644 index 96ffb3ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-multiple.svg deleted file mode 100644 index a73c9682..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-off-outline.svg deleted file mode 100644 index 93bdcd0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-opacity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-opacity.svg deleted file mode 100644 index c344d577..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-opacity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-outline.svg deleted file mode 100644 index fc796282..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-1.svg deleted file mode 100644 index 8c7b3a0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-2.svg deleted file mode 100644 index 0eb6e6c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-3.svg deleted file mode 100644 index 5db4641f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-4.svg deleted file mode 100644 index 8c39efb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-5.svg deleted file mode 100644 index e33dc3fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-6.svg deleted file mode 100644 index 5cfa6fd5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-7.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-7.svg deleted file mode 100644 index 0d542502..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-8.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-8.svg deleted file mode 100644 index 85b9003d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-slice-8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-small.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-small.svg deleted file mode 100644 index 6b3bc612..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle-small.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle.svg deleted file mode 100644 index af2d27d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circular-saw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circular-saw.svg deleted file mode 100644 index c74a60de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/circular-saw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city-variant-outline.svg deleted file mode 100644 index f0abaefc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city-variant.svg deleted file mode 100644 index ad7f26ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city.svg deleted file mode 100644 index c159f18d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/city.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-account-outline.svg deleted file mode 100644 index 9e1d2be8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-account.svg deleted file mode 100644 index 0d395b30..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-alert-outline.svg deleted file mode 100644 index e0578c99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-alert.svg deleted file mode 100644 index ea3a378a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-down-outline.svg deleted file mode 100644 index 36969211..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-down.svg deleted file mode 100644 index 1a08fe96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-left-outline.svg deleted file mode 100644 index 6068fd06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-left.svg deleted file mode 100644 index 037f4c2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-right-outline.svg deleted file mode 100644 index 39cfe7d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-right.svg deleted file mode 100644 index 46a4c15c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-up-outline.svg deleted file mode 100644 index fc5ebe7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-up.svg deleted file mode 100644 index f6d363e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-multiple-outline.svg deleted file mode 100644 index 9cce9954..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-multiple.svg deleted file mode 100644 index 818e2456..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-outline.svg deleted file mode 100644 index 2e2b9213..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check.svg deleted file mode 100644 index 01aa0745..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-clock-outline.svg deleted file mode 100644 index 71d01138..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-clock.svg deleted file mode 100644 index 049f91be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-edit-outline.svg deleted file mode 100644 index b73098b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-edit.svg deleted file mode 100644 index feff8f3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-file-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-file-outline.svg deleted file mode 100644 index 30fc6eff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-file-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-file.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-file.svg deleted file mode 100644 index 13ffa991..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-flow-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-flow-outline.svg deleted file mode 100644 index 88f7f539..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-flow-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-flow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-flow.svg deleted file mode 100644 index 0e2a201a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-flow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-list-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-list-outline.svg deleted file mode 100644 index dd9bf996..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-list-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-list.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-list.svg deleted file mode 100644 index 52b97c5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-minus-outline.svg deleted file mode 100644 index bddc614d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-minus.svg deleted file mode 100644 index 8dfdc278..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-multiple-outline.svg deleted file mode 100644 index 15b18654..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-multiple.svg deleted file mode 100644 index 87710f1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-off-outline.svg deleted file mode 100644 index 67798eb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-off.svg deleted file mode 100644 index 58aaf0b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-outline.svg deleted file mode 100644 index 06c15c85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-multiple-outline.svg deleted file mode 100644 index 86393caa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-multiple.svg deleted file mode 100644 index b27e32e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-outline.svg deleted file mode 100644 index 029249f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play.svg deleted file mode 100644 index c35f860e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-plus-outline.svg deleted file mode 100644 index a39166bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-plus.svg deleted file mode 100644 index d828ccc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-pulse-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-pulse-outline.svg deleted file mode 100644 index 22be7548..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-pulse-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-pulse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-pulse.svg deleted file mode 100644 index 7d415262..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-pulse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-remove-outline.svg deleted file mode 100644 index 8e0bc3dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-remove.svg deleted file mode 100644 index d4c7a8b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-search-outline.svg deleted file mode 100644 index 7b1a1f81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-search.svg deleted file mode 100644 index d0368d5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-clock-outline.svg deleted file mode 100644 index 094d36c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-clock.svg deleted file mode 100644 index b758b15e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-multiple-outline.svg deleted file mode 100644 index 6fa27e0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-multiple.svg deleted file mode 100644 index 6ed70a45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-off-outline.svg deleted file mode 100644 index 02400640..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-off.svg deleted file mode 100644 index a629abbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-outline.svg deleted file mode 100644 index 7e53374e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-play-outline.svg deleted file mode 100644 index 615ddebc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-play.svg deleted file mode 100644 index 8297fde1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-search-outline.svg deleted file mode 100644 index dfe39a3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-search.svg deleted file mode 100644 index bdb5944a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text.svg deleted file mode 100644 index 3c5710ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard.svg deleted file mode 100644 index d31c23fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clipboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clippy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clippy.svg deleted file mode 100644 index af6239d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clippy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-alert-outline.svg deleted file mode 100644 index 5794c70e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-alert.svg deleted file mode 100644 index 53e63faa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-check-outline.svg deleted file mode 100644 index 4911e77b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-check.svg deleted file mode 100644 index 334f1323..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-digital.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-digital.svg deleted file mode 100644 index cb085fbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-digital.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-edit-outline.svg deleted file mode 100644 index 1aee673b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-edit.svg deleted file mode 100644 index 8b23dc20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-end.svg deleted file mode 100644 index dab5bdb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-fast.svg deleted file mode 100644 index 58254f3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-in.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-in.svg deleted file mode 100644 index 4d5d496c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-in.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-minus-outline.svg deleted file mode 100644 index 1a13b1af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-minus.svg deleted file mode 100644 index 65485414..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-out.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-out.svg deleted file mode 100644 index d0ec64ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-out.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-outline.svg deleted file mode 100644 index 96347fa8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-plus-outline.svg deleted file mode 100644 index d76a6cb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-plus.svg deleted file mode 100644 index 15e3f7a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-remove-outline.svg deleted file mode 100644 index 32822db3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-remove.svg deleted file mode 100644 index 5fcb3d83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-start.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-start.svg deleted file mode 100644 index 76208221..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-start.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eight-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eight-outline.svg deleted file mode 100644 index 60728125..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eight-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eight.svg deleted file mode 100644 index a467fc68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eleven-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eleven-outline.svg deleted file mode 100644 index 0ed13182..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eleven-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eleven.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eleven.svg deleted file mode 100644 index 92d341e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-eleven.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-five-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-five-outline.svg deleted file mode 100644 index cf194342..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-five-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-five.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-five.svg deleted file mode 100644 index 35896e69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-five.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-four-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-four-outline.svg deleted file mode 100644 index e6045de3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-four-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-four.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-four.svg deleted file mode 100644 index 29404127..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-four.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-nine-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-nine-outline.svg deleted file mode 100644 index 96714cad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-nine-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-nine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-nine.svg deleted file mode 100644 index 17b9ea37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-nine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-one-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-one-outline.svg deleted file mode 100644 index d303617a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-one-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-one.svg deleted file mode 100644 index d4e96bb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-seven-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-seven-outline.svg deleted file mode 100644 index d5261741..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-seven-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-seven.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-seven.svg deleted file mode 100644 index 76b13f4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-seven.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-six-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-six-outline.svg deleted file mode 100644 index 8cf4e0a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-six-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-six.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-six.svg deleted file mode 100644 index 30d4677b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-six.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-ten-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-ten-outline.svg deleted file mode 100644 index f847f984..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-ten-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-ten.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-ten.svg deleted file mode 100644 index 8e148ed9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-ten.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-three-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-three-outline.svg deleted file mode 100644 index b5b48216..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-three-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-three.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-three.svg deleted file mode 100644 index 2e2cf47f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-three.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-twelve-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-twelve-outline.svg deleted file mode 100644 index 23370cf1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-twelve-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-twelve.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-twelve.svg deleted file mode 100644 index 0584602e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-twelve.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-two-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-two-outline.svg deleted file mode 100644 index da4aee49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-two-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-two.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-two.svg deleted file mode 100644 index 1fb51c34..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock-time-two.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock.svg deleted file mode 100644 index 4e52306b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-multiple-outline.svg deleted file mode 100644 index 209d3221..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-multiple.svg deleted file mode 100644 index 7fb68715..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-outline.svg deleted file mode 100644 index a877c122..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box.svg deleted file mode 100644 index d805d9e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-multiple-outline.svg deleted file mode 100644 index 0b69c2f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-multiple.svg deleted file mode 100644 index 974b98d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-outline.svg deleted file mode 100644 index bf107828..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle.svg deleted file mode 100644 index 6bba88ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-network-outline.svg deleted file mode 100644 index 0bdca315..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-network.svg deleted file mode 100644 index f73ea0b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-octagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-octagon-outline.svg deleted file mode 100644 index 5916a817..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-octagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-octagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-octagon.svg deleted file mode 100644 index 95c362a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-outline.svg deleted file mode 100644 index 255653ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-thick.svg deleted file mode 100644 index 775dd08d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close.svg deleted file mode 100644 index 64fc924e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/closed-caption-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/closed-caption-outline.svg deleted file mode 100644 index 8a00d950..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/closed-caption-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/closed-caption.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/closed-caption.svg deleted file mode 100644 index c00d2b52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/closed-caption.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-alert.svg deleted file mode 100644 index 9f9f11ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-braces.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-braces.svg deleted file mode 100644 index 04e0aa33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-braces.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-check-outline.svg deleted file mode 100644 index 0f21927d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-check.svg deleted file mode 100644 index 270fe285..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-circle.svg deleted file mode 100644 index 5ebec736..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-download-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-download-outline.svg deleted file mode 100644 index de2f89c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-download-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-download.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-download.svg deleted file mode 100644 index 2797e800..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-lock-outline.svg deleted file mode 100644 index 792a08be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-lock.svg deleted file mode 100644 index c6a53188..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-off-outline.svg deleted file mode 100644 index 708418c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-outline.svg deleted file mode 100644 index 02f512cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-percent-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-percent-outline.svg deleted file mode 100644 index 192d9a98..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-percent-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-percent.svg deleted file mode 100644 index b5eb2660..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-print-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-print-outline.svg deleted file mode 100644 index 246c4f3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-print-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-print.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-print.svg deleted file mode 100644 index 3f3e5897..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-print.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-question.svg deleted file mode 100644 index 67543e61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-refresh.svg deleted file mode 100644 index 57b21181..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-search-outline.svg deleted file mode 100644 index 4d00b7e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-search.svg deleted file mode 100644 index c7fec467..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-sync-outline.svg deleted file mode 100644 index 1c105960..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-sync.svg deleted file mode 100644 index 39259ba9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-tags.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-tags.svg deleted file mode 100644 index bd2b90dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-tags.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-upload-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-upload-outline.svg deleted file mode 100644 index 4cdd2ca6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-upload-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-upload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-upload.svg deleted file mode 100644 index dbae7fc8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud-upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud.svg deleted file mode 100644 index 899b6cb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clouds.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clouds.svg deleted file mode 100644 index e9dfcbc8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clouds.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clover.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clover.svg deleted file mode 100644 index 5608d303..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/clover.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coach-lamp-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coach-lamp-variant.svg deleted file mode 100644 index b2d68c88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coach-lamp-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coach-lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coach-lamp.svg deleted file mode 100644 index 46020c33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coach-lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coat-rack.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coat-rack.svg deleted file mode 100644 index 64e89e18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coat-rack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-array.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-array.svg deleted file mode 100644 index 8f393248..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-array.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-braces-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-braces-box.svg deleted file mode 100644 index 6d3de379..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-braces-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-braces.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-braces.svg deleted file mode 100644 index 0adf4e82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-braces.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-brackets.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-brackets.svg deleted file mode 100644 index 28d4fd18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-brackets.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-equal.svg deleted file mode 100644 index 31169aa2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-greater-than-or-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-greater-than-or-equal.svg deleted file mode 100644 index 443025d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-greater-than-or-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-greater-than.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-greater-than.svg deleted file mode 100644 index 1d0d33a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-greater-than.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-json.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-json.svg deleted file mode 100644 index d592b934..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-json.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-less-than-or-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-less-than-or-equal.svg deleted file mode 100644 index 93c68a43..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-less-than-or-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-less-than.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-less-than.svg deleted file mode 100644 index f456fbe2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-less-than.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-not-equal-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-not-equal-variant.svg deleted file mode 100644 index 4b00bb23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-not-equal-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-not-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-not-equal.svg deleted file mode 100644 index dc77f981..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-not-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-parentheses-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-parentheses-box.svg deleted file mode 100644 index ab9d606e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-parentheses-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-parentheses.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-parentheses.svg deleted file mode 100644 index 1e07d860..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-parentheses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-string.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-string.svg deleted file mode 100644 index 15eaa7c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-string.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-tags-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-tags-check.svg deleted file mode 100644 index 292ad5ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-tags-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-tags.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-tags.svg deleted file mode 100644 index d2764857..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/code-tags.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/codepen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/codepen.svg deleted file mode 100644 index 5e8f5832..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/codepen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-check-outline.svg deleted file mode 100644 index a7a3ab4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-check.svg deleted file mode 100644 index 36d379e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-outline.svg deleted file mode 100644 index 026ff589..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker.svg deleted file mode 100644 index 3bab47bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-maker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-off-outline.svg deleted file mode 100644 index 14b084dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-off.svg deleted file mode 100644 index 09dfafd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-outline.svg deleted file mode 100644 index ffbdfce9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-to-go-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-to-go-outline.svg deleted file mode 100644 index 07a21a93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-to-go-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-to-go.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-to-go.svg deleted file mode 100644 index 9cd2c8fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee-to-go.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee.svg deleted file mode 100644 index 472ba948..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffin.svg deleted file mode 100644 index 60acc5b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coffin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-box.svg deleted file mode 100644 index 729d4601..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-clockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-clockwise.svg deleted file mode 100644 index fcd8ce9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-clockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-counterclockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-counterclockwise.svg deleted file mode 100644 index 003f89bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-counterclockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-off-outline.svg deleted file mode 100644 index d63948c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-off.svg deleted file mode 100644 index 1886a209..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-outline.svg deleted file mode 100644 index 8e056098..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-pause-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-pause-outline.svg deleted file mode 100644 index 29fabea9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-pause-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-pause.svg deleted file mode 100644 index d83addb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-play-outline.svg deleted file mode 100644 index f7ebbc7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-play.svg deleted file mode 100644 index 95295ab9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-refresh-outline.svg deleted file mode 100644 index 49138216..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-refresh.svg deleted file mode 100644 index f0c4e2a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-stop-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-stop-outline.svg deleted file mode 100644 index d98e06ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-stop-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-stop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-stop.svg deleted file mode 100644 index a765ce88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-sync-outline.svg deleted file mode 100644 index 512f38ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-sync.svg deleted file mode 100644 index f2c4492d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-transfer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-transfer-outline.svg deleted file mode 100644 index 0ec46ba4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-transfer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-transfer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-transfer.svg deleted file mode 100644 index 42e69971..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog-transfer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog.svg deleted file mode 100644 index 337bd33e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cogs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cogs.svg deleted file mode 100644 index 8dac129e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cogs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collage.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collage.svg deleted file mode 100644 index bec56c61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collapse-all-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collapse-all-outline.svg deleted file mode 100644 index 69be49df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collapse-all-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collapse-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collapse-all.svg deleted file mode 100644 index fe128ecb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/collapse-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/color-helper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/color-helper.svg deleted file mode 100644 index 5ec11ee0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/color-helper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-box-outline.svg deleted file mode 100644 index 677683cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-box.svg deleted file mode 100644 index 9698802c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-circle-outline.svg deleted file mode 100644 index 2143a958..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-circle.svg deleted file mode 100644 index 0f9c2f22..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma.svg deleted file mode 100644 index 65c680f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-account-outline.svg deleted file mode 100644 index 67684d1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-account.svg deleted file mode 100644 index 6abd88d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-alert-outline.svg deleted file mode 100644 index e2393cd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-alert.svg deleted file mode 100644 index 57b26acc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-left-outline.svg deleted file mode 100644 index e44b86ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-left.svg deleted file mode 100644 index 1c5fffc5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-right-outline.svg deleted file mode 100644 index 67114f97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-right.svg deleted file mode 100644 index f0943466..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-bookmark-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-bookmark-outline.svg deleted file mode 100644 index 9d7a6566..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-bookmark-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-bookmark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-bookmark.svg deleted file mode 100644 index d881edc7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-bookmark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-check-outline.svg deleted file mode 100644 index 720c83a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-check.svg deleted file mode 100644 index cf32934a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-edit-outline.svg deleted file mode 100644 index 4f5e593d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-edit.svg deleted file mode 100644 index 31607df7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-eye-outline.svg deleted file mode 100644 index 0ef67fdb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-eye.svg deleted file mode 100644 index 66788011..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-flash-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-flash-outline.svg deleted file mode 100644 index eb11bfaa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-flash-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-flash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-flash.svg deleted file mode 100644 index 09f9b098..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-flash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-minus-outline.svg deleted file mode 100644 index 88aef05f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-minus.svg deleted file mode 100644 index 0269bc24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-multiple-outline.svg deleted file mode 100644 index 0d3ecf00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-multiple.svg deleted file mode 100644 index 1712d3c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-off-outline.svg deleted file mode 100644 index e8facb9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-off.svg deleted file mode 100644 index 98ed6822..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-outline.svg deleted file mode 100644 index 0c51bb1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-plus-outline.svg deleted file mode 100644 index 9eed7571..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-plus.svg deleted file mode 100644 index 02c69424..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-processing-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-processing-outline.svg deleted file mode 100644 index 5ba196a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-processing-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-processing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-processing.svg deleted file mode 100644 index 04180d04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-processing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-question-outline.svg deleted file mode 100644 index 57019192..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-question.svg deleted file mode 100644 index f2ba0405..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-quote-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-quote-outline.svg deleted file mode 100644 index f1bff6fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-quote-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-quote.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-quote.svg deleted file mode 100644 index 30b2b62d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-quote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-remove-outline.svg deleted file mode 100644 index eb2bf5de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-remove.svg deleted file mode 100644 index 790b24c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-search-outline.svg deleted file mode 100644 index e4b1e92a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-search.svg deleted file mode 100644 index 83714d06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-multiple-outline.svg deleted file mode 100644 index ed0e8602..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-multiple.svg deleted file mode 100644 index 2f048046..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-outline.svg deleted file mode 100644 index e3290297..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text.svg deleted file mode 100644 index d9af495a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment.svg deleted file mode 100644 index 427607ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/comment.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-horizontal.svg deleted file mode 100644 index fef09cf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-remove.svg deleted file mode 100644 index 5d485db2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-vertical.svg deleted file mode 100644 index 8fcdc8af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare.svg deleted file mode 100644 index db0bab25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compare.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-off-outline.svg deleted file mode 100644 index 67a9bbf4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-off.svg deleted file mode 100644 index 234e3579..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-outline.svg deleted file mode 100644 index 99c3ed89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-rose.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-rose.svg deleted file mode 100644 index 20e24ad2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass-rose.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass.svg deleted file mode 100644 index a761c2ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compost.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compost.svg deleted file mode 100644 index da1f000e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/compost.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cone-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cone-off.svg deleted file mode 100644 index a3e5c24c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cone-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cone.svg deleted file mode 100644 index 2fd5bf35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/connection.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/connection.svg deleted file mode 100644 index 8ab0ec4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/connection.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-line.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-line.svg deleted file mode 100644 index b15ae072..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-line.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-network-outline.svg deleted file mode 100644 index 9021f79c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-network.svg deleted file mode 100644 index 67ed34a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console.svg deleted file mode 100644 index 450d93cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/console.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/consolidate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/consolidate.svg deleted file mode 100644 index 8a791e45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/consolidate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment-circle-outline.svg deleted file mode 100644 index fcddc492..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment-circle.svg deleted file mode 100644 index 1c6e49d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment.svg deleted file mode 100644 index 7ef3aeff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contactless-payment.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contacts-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contacts-outline.svg deleted file mode 100644 index 6a120a3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contacts-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contacts.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contacts.svg deleted file mode 100644 index 1e444c74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contacts.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain-end.svg deleted file mode 100644 index 2b124f17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain-start.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain-start.svg deleted file mode 100644 index 04c94bdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain-start.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain.svg deleted file mode 100644 index 0105c47c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-copy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-copy.svg deleted file mode 100644 index df9261f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-copy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-cut.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-cut.svg deleted file mode 100644 index 1d0b2ef0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-cut.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-duplicate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-duplicate.svg deleted file mode 100644 index 832ee058..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-duplicate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-paste.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-paste.svg deleted file mode 100644 index facc683a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-paste.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-alert-outline.svg deleted file mode 100644 index 1c893137..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-alert.svg deleted file mode 100644 index 4a42bfe0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-all-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-all-outline.svg deleted file mode 100644 index 1796e77a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-all-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-all.svg deleted file mode 100644 index 659db603..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-check-outline.svg deleted file mode 100644 index 2c4adb79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-check.svg deleted file mode 100644 index 1d72a6b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-cog-outline.svg deleted file mode 100644 index 38280304..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-cog.svg deleted file mode 100644 index 246194b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-edit-outline.svg deleted file mode 100644 index 4f3f4bc0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-edit.svg deleted file mode 100644 index 3eb56c91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-minus-outline.svg deleted file mode 100644 index b7fe2c99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-minus.svg deleted file mode 100644 index 66344e42..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-move-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-move-outline.svg deleted file mode 100644 index a04d3f4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-move-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-move.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-move.svg deleted file mode 100644 index cad808b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-move.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-off-outline.svg deleted file mode 100644 index 66ca3389..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-off.svg deleted file mode 100644 index a665addf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-outline.svg deleted file mode 100644 index 131343fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-plus-outline.svg deleted file mode 100644 index 1323b3c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-plus.svg deleted file mode 100644 index f35558da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-settings-outline.svg deleted file mode 100644 index 49fcafa9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-settings.svg deleted file mode 100644 index 8843d7e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save.svg deleted file mode 100644 index 39535bb6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/content-save.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast-box.svg deleted file mode 100644 index 7679576f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast-circle.svg deleted file mode 100644 index 7fa3814a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast.svg deleted file mode 100644 index 8c36232b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/contrast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-classic-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-classic-outline.svg deleted file mode 100644 index 766b3a08..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-classic-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-classic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-classic.svg deleted file mode 100644 index b39cf125..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-classic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-off.svg deleted file mode 100644 index 9cb66101..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller.svg deleted file mode 100644 index 6be1b624..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/controller.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-alert-outline.svg deleted file mode 100644 index 3077daf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-alert.svg deleted file mode 100644 index 71169546..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-check-outline.svg deleted file mode 100644 index cda6f8d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-check.svg deleted file mode 100644 index 189a6786..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-clock-outline.svg deleted file mode 100644 index e53c5160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-clock.svg deleted file mode 100644 index 63be7f7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-cog-outline.svg deleted file mode 100644 index ceda010b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-cog.svg deleted file mode 100644 index 8b80967b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-edit-outline.svg deleted file mode 100644 index 30d78fad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-edit.svg deleted file mode 100644 index dde6c1dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-lock-outline.svg deleted file mode 100644 index 3c264e26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-lock.svg deleted file mode 100644 index fe573fc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-minus-outline.svg deleted file mode 100644 index 10f3d01d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-minus.svg deleted file mode 100644 index c0c503c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-off-outline.svg deleted file mode 100644 index 1b0ef980..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-off.svg deleted file mode 100644 index 1c87178c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-outline.svg deleted file mode 100644 index 5b010f2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-plus-outline.svg deleted file mode 100644 index cade3671..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-plus.svg deleted file mode 100644 index 6d69cb9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-refresh-outline.svg deleted file mode 100644 index dc054a02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-refresh.svg deleted file mode 100644 index 2d3b7cba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-remove-outline.svg deleted file mode 100644 index 187a6556..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-remove.svg deleted file mode 100644 index 03476748..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-settings-outline.svg deleted file mode 100644 index 835923cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-settings.svg deleted file mode 100644 index 8293d43c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie.svg deleted file mode 100644 index 0dd69093..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cookie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coolant-temperature.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coolant-temperature.svg deleted file mode 100644 index ac3f5d2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/coolant-temperature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/copyleft.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/copyleft.svg deleted file mode 100644 index 7c6abb93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/copyleft.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/copyright.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/copyright.svg deleted file mode 100644 index 4c6012e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/copyright.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cordova.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cordova.svg deleted file mode 100644 index 3093c713..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cordova.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/corn-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/corn-off.svg deleted file mode 100644 index 0d4dc775..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/corn-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/corn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/corn.svg deleted file mode 100644 index 1ab88256..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/corn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cosine-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cosine-wave.svg deleted file mode 100644 index 42069d13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cosine-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/counter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/counter.svg deleted file mode 100644 index e777ac26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/counter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/countertop-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/countertop-outline.svg deleted file mode 100644 index 0f3ad7d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/countertop-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/countertop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/countertop.svg deleted file mode 100644 index aa39d037..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/countertop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cow-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cow-off.svg deleted file mode 100644 index 2d4ce958..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cow-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cow.svg deleted file mode 100644 index b804bfde..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cpu-32-bit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cpu-32-bit.svg deleted file mode 100644 index b9a4f62b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cpu-32-bit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cpu-64-bit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cpu-64-bit.svg deleted file mode 100644 index a9f52d1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cpu-64-bit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cradle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cradle-outline.svg deleted file mode 100644 index 79acc2b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cradle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cradle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cradle.svg deleted file mode 100644 index adff7712..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cradle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crane.svg deleted file mode 100644 index dc3fd8d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/creation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/creation.svg deleted file mode 100644 index 619034fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/creation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/creative-commons.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/creative-commons.svg deleted file mode 100644 index dc2e714e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/creative-commons.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-check-outline.svg deleted file mode 100644 index e2499266..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-check.svg deleted file mode 100644 index 47af1225..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-chip-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-chip-outline.svg deleted file mode 100644 index c24b6ebb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-chip-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-chip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-chip.svg deleted file mode 100644 index 000a5feb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-chip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-clock-outline.svg deleted file mode 100644 index 9fa29f0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-clock.svg deleted file mode 100644 index a879fd25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-edit-outline.svg deleted file mode 100644 index ed7c5ce7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-edit.svg deleted file mode 100644 index 9435cc5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-fast-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-fast-outline.svg deleted file mode 100644 index 84fde0fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-fast-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-fast.svg deleted file mode 100644 index b4e8f77c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-lock-outline.svg deleted file mode 100644 index 823a473b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-lock.svg deleted file mode 100644 index 71a1839d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-marker-outline.svg deleted file mode 100644 index 63d10444..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-marker.svg deleted file mode 100644 index b2a83a3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-minus-outline.svg deleted file mode 100644 index 3cbdb96e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-minus.svg deleted file mode 100644 index e6ac36ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-multiple-outline.svg deleted file mode 100644 index 16e9160d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-multiple.svg deleted file mode 100644 index 22fb0e21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-off-outline.svg deleted file mode 100644 index 6f76785f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-off.svg deleted file mode 100644 index dc292603..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-outline.svg deleted file mode 100644 index 78f2dbd7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-plus-outline.svg deleted file mode 100644 index 7455046d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-plus.svg deleted file mode 100644 index 3f6c3174..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refresh-outline.svg deleted file mode 100644 index 6c11aad4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refresh.svg deleted file mode 100644 index 2a1b5cae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refund-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refund-outline.svg deleted file mode 100644 index 5e455f24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refund-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refund.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refund.svg deleted file mode 100644 index d7242e73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-refund.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-remove-outline.svg deleted file mode 100644 index 62009831..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-remove.svg deleted file mode 100644 index 497421aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-scan-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-scan-outline.svg deleted file mode 100644 index bf33b1bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-scan-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-scan.svg deleted file mode 100644 index c111149c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-search-outline.svg deleted file mode 100644 index c9063faa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-search.svg deleted file mode 100644 index df9f74be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-settings-outline.svg deleted file mode 100644 index c36782e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-settings.svg deleted file mode 100644 index 4a06c13e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-sync-outline.svg deleted file mode 100644 index c44dbcbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-sync.svg deleted file mode 100644 index fc9ee4a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-off-outline.svg deleted file mode 100644 index 4a993740..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-off.svg deleted file mode 100644 index 4e2a2dce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-outline.svg deleted file mode 100644 index 469782c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless.svg deleted file mode 100644 index 4fc71c76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card.svg deleted file mode 100644 index 31642d94..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/credit-card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cricket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cricket.svg deleted file mode 100644 index 972bd1e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cricket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-free.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-free.svg deleted file mode 100644 index bad61753..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-free.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-landscape.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-landscape.svg deleted file mode 100644 index dd8c178e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-landscape.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-portrait.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-portrait.svg deleted file mode 100644 index 474314b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-portrait.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-rotate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-rotate.svg deleted file mode 100644 index 32b663af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-rotate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-square.svg deleted file mode 100644 index 11f14823..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop.svg deleted file mode 100644 index 4740d4fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-bolnisi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-bolnisi.svg deleted file mode 100644 index 8d05d5ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-bolnisi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-celtic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-celtic.svg deleted file mode 100644 index 1073fc88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-celtic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-outline.svg deleted file mode 100644 index 2e9ced69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross.svg deleted file mode 100644 index 7ad6a792..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cross.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-gps.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-gps.svg deleted file mode 100644 index 4aaaebbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-gps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-off.svg deleted file mode 100644 index be0e7495..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-question.svg deleted file mode 100644 index af857e22..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs.svg deleted file mode 100644 index b8747260..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crosshairs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crowd.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crowd.svg deleted file mode 100644 index 4720bf87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crowd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-circle-outline.svg deleted file mode 100644 index 48719183..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-circle.svg deleted file mode 100644 index 0d09bc80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-outline.svg deleted file mode 100644 index ed0905ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown.svg deleted file mode 100644 index d6dc3407..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cryengine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cryengine.svg deleted file mode 100644 index 859d0a82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cryengine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crystal-ball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crystal-ball.svg deleted file mode 100644 index 494bde71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/crystal-ball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-off-outline.svg deleted file mode 100644 index 9cc84e89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-off.svg deleted file mode 100644 index a3220ccd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-outline.svg deleted file mode 100644 index 4b40f5c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-scan.svg deleted file mode 100644 index 54d94f61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-send.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-send.svg deleted file mode 100644 index 74d4c4af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-send.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-unfolded.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-unfolded.svg deleted file mode 100644 index b76e501d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube-unfolded.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube.svg deleted file mode 100644 index 61e0e60b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cube.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-off-outline.svg deleted file mode 100644 index a16b5a1f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-off.svg deleted file mode 100644 index 52e65f05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-outline.svg deleted file mode 100644 index 0856c3f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-water.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-water.svg deleted file mode 100644 index 5b8f38c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup-water.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup.svg deleted file mode 100644 index d5520b2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupboard-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupboard-outline.svg deleted file mode 100644 index 7a1cfe43..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupboard-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupboard.svg deleted file mode 100644 index 59c947ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupcake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupcake.svg deleted file mode 100644 index 89656660..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cupcake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curling.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curling.svg deleted file mode 100644 index 11d6d54b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curling.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-bdt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-bdt.svg deleted file mode 100644 index 186661bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-bdt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-brl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-brl.svg deleted file mode 100644 index 320d921e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-brl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-btc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-btc.svg deleted file mode 100644 index 5ae9582f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-btc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-cny.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-cny.svg deleted file mode 100644 index 22039282..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-cny.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eth.svg deleted file mode 100644 index e311ae3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eur-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eur-off.svg deleted file mode 100644 index 9290e630..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eur-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eur.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eur.svg deleted file mode 100644 index ad124771..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-eur.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-fra.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-fra.svg deleted file mode 100644 index 69be766a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-fra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-gbp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-gbp.svg deleted file mode 100644 index 652c3a93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-gbp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-ils.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-ils.svg deleted file mode 100644 index 33abc993..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-ils.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-inr.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-inr.svg deleted file mode 100644 index abc1d853..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-inr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-jpy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-jpy.svg deleted file mode 100644 index cbe3c44a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-jpy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-krw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-krw.svg deleted file mode 100644 index 13105d13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-krw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-kzt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-kzt.svg deleted file mode 100644 index b07df22d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-kzt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-mnt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-mnt.svg deleted file mode 100644 index e11364d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-mnt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-ngn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-ngn.svg deleted file mode 100644 index 3f75ce23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-ngn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-php.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-php.svg deleted file mode 100644 index ea6fab1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-php.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rial.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rial.svg deleted file mode 100644 index 93e4df62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rial.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rub.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rub.svg deleted file mode 100644 index e6baacd7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rub.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rupee.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rupee.svg deleted file mode 100644 index e858fc7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-rupee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-sign.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-sign.svg deleted file mode 100644 index 3663ed8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-sign.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-try.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-try.svg deleted file mode 100644 index 9d11a4c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-try.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-twd.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-twd.svg deleted file mode 100644 index e1613f7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-twd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-uah.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-uah.svg deleted file mode 100644 index d4f5dbc1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-uah.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-usd-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-usd-off.svg deleted file mode 100644 index d24206e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-usd-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-usd.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-usd.svg deleted file mode 100644 index 5455cf02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/currency-usd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/current-ac.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/current-ac.svg deleted file mode 100644 index 6d200e80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/current-ac.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/current-dc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/current-dc.svg deleted file mode 100644 index 847e5b46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/current-dc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-click-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-click-outline.svg deleted file mode 100644 index afe51424..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-click-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-click.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-click.svg deleted file mode 100644 index f7933c3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-click.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-gesture-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-gesture-outline.svg deleted file mode 100644 index 27136bb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-gesture-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-gesture.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-gesture.svg deleted file mode 100644 index e0204f55..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-gesture.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-outline.svg deleted file mode 100644 index 3ef122f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default.svg deleted file mode 100644 index 7e70355b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-default.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-move.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-move.svg deleted file mode 100644 index f97353dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-move.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-pointer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-pointer.svg deleted file mode 100644 index f72bb642..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-pointer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-text.svg deleted file mode 100644 index 50937a7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cursor-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curtains-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curtains-closed.svg deleted file mode 100644 index d8e7952f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curtains-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curtains.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curtains.svg deleted file mode 100644 index 600f3c08..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/curtains.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cylinder-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cylinder-off.svg deleted file mode 100644 index 37064926..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cylinder-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cylinder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cylinder.svg deleted file mode 100644 index 598f5fcc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/cylinder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dance-ballroom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dance-ballroom.svg deleted file mode 100644 index af3bbe5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dance-ballroom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dance-pole.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dance-pole.svg deleted file mode 100644 index cbda110f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dance-pole.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-edit.svg deleted file mode 100644 index 9a7d1732..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-minus.svg deleted file mode 100644 index 2afe9daa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-plus.svg deleted file mode 100644 index ad246d8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-remove.svg deleted file mode 100644 index 4d67f528..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-scan.svg deleted file mode 100644 index abce838a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix.svg deleted file mode 100644 index 1f2f769e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/data-matrix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-alert-outline.svg deleted file mode 100644 index 380daed1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-alert.svg deleted file mode 100644 index ddfe44be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-down-outline.svg deleted file mode 100644 index dad0ca73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-down.svg deleted file mode 100644 index 57ed7d31..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-left-outline.svg deleted file mode 100644 index d73f85be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-left.svg deleted file mode 100644 index a6dbcf95..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-right-outline.svg deleted file mode 100644 index 38c422a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-right.svg deleted file mode 100644 index 5914ef82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-up-outline.svg deleted file mode 100644 index e1e2bf39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-up.svg deleted file mode 100644 index 6fc87071..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-check-outline.svg deleted file mode 100644 index 90873057..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-check.svg deleted file mode 100644 index c877b39f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-clock-outline.svg deleted file mode 100644 index 6f84083f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-clock.svg deleted file mode 100644 index 5c7f9b1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-cog-outline.svg deleted file mode 100644 index 925aaa3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-cog.svg deleted file mode 100644 index 927c4cf2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-edit-outline.svg deleted file mode 100644 index 10e6d30c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-edit.svg deleted file mode 100644 index 5709a376..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-export-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-export-outline.svg deleted file mode 100644 index 392898ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-export-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-export.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-export.svg deleted file mode 100644 index 1fcfe8a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-off-outline.svg deleted file mode 100644 index be2ea144..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-off.svg deleted file mode 100644 index e5386345..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-outline.svg deleted file mode 100644 index 277e59bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye.svg deleted file mode 100644 index 701657b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-import-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-import-outline.svg deleted file mode 100644 index a0000c69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-import-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-import.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-import.svg deleted file mode 100644 index bf1ee634..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-lock-outline.svg deleted file mode 100644 index 68f1bc74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-lock.svg deleted file mode 100644 index bb03a010..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-marker-outline.svg deleted file mode 100644 index d2960b53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-marker.svg deleted file mode 100644 index 4e30f2ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-minus-outline.svg deleted file mode 100644 index fdc767f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-minus.svg deleted file mode 100644 index 9bb2ee80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-off-outline.svg deleted file mode 100644 index bc21be5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-off.svg deleted file mode 100644 index 03a0106d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-outline.svg deleted file mode 100644 index 830ed19a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-plus-outline.svg deleted file mode 100644 index a451f7ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-plus.svg deleted file mode 100644 index 375ed091..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-refresh-outline.svg deleted file mode 100644 index 6b768efd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-refresh.svg deleted file mode 100644 index 8b8e5b2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-remove-outline.svg deleted file mode 100644 index 8fb9e17f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-remove.svg deleted file mode 100644 index 98c3ca20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-search-outline.svg deleted file mode 100644 index 17067575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-search.svg deleted file mode 100644 index 86942e1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-settings-outline.svg deleted file mode 100644 index f0cf7892..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-settings.svg deleted file mode 100644 index a733318a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-sync-outline.svg deleted file mode 100644 index a999fd91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-sync.svg deleted file mode 100644 index 7afa6f0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database.svg deleted file mode 100644 index 7704227c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/database.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/death-star-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/death-star-variant.svg deleted file mode 100644 index dee3c7b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/death-star-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/death-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/death-star.svg deleted file mode 100644 index f85e5abf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/death-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deathly-hallows.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deathly-hallows.svg deleted file mode 100644 index b27975d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deathly-hallows.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debian.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debian.svg deleted file mode 100644 index fda6eb9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debian.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-into.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-into.svg deleted file mode 100644 index 01a5e7a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-into.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-out.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-out.svg deleted file mode 100644 index f505bc7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-out.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-over.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-over.svg deleted file mode 100644 index fcec832d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/debug-step-over.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decagram-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decagram-outline.svg deleted file mode 100644 index 48ce5078..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decagram-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decagram.svg deleted file mode 100644 index f0d8707b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma-decrease.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma-decrease.svg deleted file mode 100644 index 4b29f0ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma-decrease.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma-increase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma-increase.svg deleted file mode 100644 index b7ce7900..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma-increase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma.svg deleted file mode 100644 index f51cbabc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-comma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-decrease.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-decrease.svg deleted file mode 100644 index d1ebb6f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-decrease.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-increase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-increase.svg deleted file mode 100644 index 44725cb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal-increase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal.svg deleted file mode 100644 index 2bd24784..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/decimal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-alert-outline.svg deleted file mode 100644 index 23af0612..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-alert.svg deleted file mode 100644 index 1fdfc9d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-circle-outline.svg deleted file mode 100644 index 88fc2922..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-circle.svg deleted file mode 100644 index 3e4605cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-clock-outline.svg deleted file mode 100644 index f33aae9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-clock.svg deleted file mode 100644 index a00349b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-empty-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-empty-outline.svg deleted file mode 100644 index ed1c6f42..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-empty-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-empty.svg deleted file mode 100644 index fac75481..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-forever-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-forever-outline.svg deleted file mode 100644 index 4d69df8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-forever-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-forever.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-forever.svg deleted file mode 100644 index 79998f2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-forever.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-off-outline.svg deleted file mode 100644 index 03a6b9cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-off.svg deleted file mode 100644 index b72b7d8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-outline.svg deleted file mode 100644 index 7645d7ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-restore.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-restore.svg deleted file mode 100644 index 87a7d012..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-restore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-sweep-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-sweep-outline.svg deleted file mode 100644 index b962965c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-sweep-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-sweep.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-sweep.svg deleted file mode 100644 index 2ea466dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-sweep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-variant.svg deleted file mode 100644 index 23353aea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete.svg deleted file mode 100644 index a7db71d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delete.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delta.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delta.svg deleted file mode 100644 index e4fcbae3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/delta.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp-off.svg deleted file mode 100644 index cb0fabcb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp-on.svg deleted file mode 100644 index 568b8acb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp.svg deleted file mode 100644 index 4953dd3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk-lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk.svg deleted file mode 100644 index bcd38e90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deskphone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deskphone.svg deleted file mode 100644 index 57abb293..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deskphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-classic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-classic.svg deleted file mode 100644 index 0b4f7f69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-classic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-tower-monitor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-tower-monitor.svg deleted file mode 100644 index 23a0f3cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-tower-monitor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-tower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-tower.svg deleted file mode 100644 index 324d86e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/desktop-tower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/details.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/details.svg deleted file mode 100644 index 7a2ad93c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/details.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dev-to.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dev-to.svg deleted file mode 100644 index d8de690f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dev-to.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/developer-board.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/developer-board.svg deleted file mode 100644 index 42085810..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/developer-board.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deviantart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deviantart.svg deleted file mode 100644 index cb517a29..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/deviantart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/devices.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/devices.svg deleted file mode 100644 index 6b3fd126..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/devices.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dharmachakra.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dharmachakra.svg deleted file mode 100644 index 960a6868..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dharmachakra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diabetes.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diabetes.svg deleted file mode 100644 index 01fb74d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diabetes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dialpad.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dialpad.svg deleted file mode 100644 index 6518871c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dialpad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter-outline.svg deleted file mode 100644 index 1f7a2377..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter-variant.svg deleted file mode 100644 index 0e773e07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter.svg deleted file mode 100644 index 6a9ab20e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diameter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond-outline.svg deleted file mode 100644 index 1a2e4721..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond-stone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond-stone.svg deleted file mode 100644 index ce232583..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond-stone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond.svg deleted file mode 100644 index 87c3caa3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diamond.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-1-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-1-outline.svg deleted file mode 100644 index d6f61065..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-1-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-1.svg deleted file mode 100644 index 055c3ea8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-2-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-2-outline.svg deleted file mode 100644 index 42714c7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-2-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-2.svg deleted file mode 100644 index 55173e70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-3-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-3-outline.svg deleted file mode 100644 index 8acd5afe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-3-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-3.svg deleted file mode 100644 index 4aa4d61f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-4-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-4-outline.svg deleted file mode 100644 index 803935b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-4-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-4.svg deleted file mode 100644 index 72965695..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-5-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-5-outline.svg deleted file mode 100644 index 3da623a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-5-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-5.svg deleted file mode 100644 index db440937..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-6-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-6-outline.svg deleted file mode 100644 index c1d7ff2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-6-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-6.svg deleted file mode 100644 index 63a04ef1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d10-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d10-outline.svg deleted file mode 100644 index 49251b93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d10-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d10.svg deleted file mode 100644 index a26f3ad7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d12-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d12-outline.svg deleted file mode 100644 index 4d49706f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d12-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d12.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d12.svg deleted file mode 100644 index 988aec9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d12.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d20-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d20-outline.svg deleted file mode 100644 index 525ae98b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d20-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d20.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d20.svg deleted file mode 100644 index cd582220..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d20.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d4-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d4-outline.svg deleted file mode 100644 index 6e0e2d60..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d4-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d4.svg deleted file mode 100644 index 51631705..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d6-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d6-outline.svg deleted file mode 100644 index 0124f0b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d6-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d6.svg deleted file mode 100644 index 43b10f40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d8-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d8-outline.svg deleted file mode 100644 index 2277142d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d8-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d8.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d8.svg deleted file mode 100644 index 26e8b34d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-d8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-multiple-outline.svg deleted file mode 100644 index 0e82bc53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-multiple.svg deleted file mode 100644 index f6271ce9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dice-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/digital-ocean.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/digital-ocean.svg deleted file mode 100644 index 27fa734d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/digital-ocean.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dip-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dip-switch.svg deleted file mode 100644 index 0def1d46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dip-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/directions-fork.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/directions-fork.svg deleted file mode 100644 index 0fc37ff5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/directions-fork.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/directions.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/directions.svg deleted file mode 100644 index af4fe4ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/directions.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc-alert.svg deleted file mode 100644 index be74d84c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc-player.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc-player.svg deleted file mode 100644 index a6cfd622..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc-player.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc.svg deleted file mode 100644 index ada104c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher-alert.svg deleted file mode 100644 index 4950d25f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher-off.svg deleted file mode 100644 index 2bf30fbe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher.svg deleted file mode 100644 index 15f88f33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dishwasher.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disqus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disqus.svg deleted file mode 100644 index ccf9bbd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/disqus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-center.svg deleted file mode 100644 index 8612b5f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-left.svg deleted file mode 100644 index ff5515ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-right.svg deleted file mode 100644 index 572f35a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-horizontal-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-bottom.svg deleted file mode 100644 index a74af5b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-center.svg deleted file mode 100644 index 9799c497..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-top.svg deleted file mode 100644 index a3dd7f06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/distribute-vertical-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diversify.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diversify.svg deleted file mode 100644 index 155f8444..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diversify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-flippers.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-flippers.svg deleted file mode 100644 index 0fcb56df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-flippers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-helmet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-helmet.svg deleted file mode 100644 index 72d9f2eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-helmet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-flag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-flag.svg deleted file mode 100644 index 374c0d6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-flag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-mask.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-mask.svg deleted file mode 100644 index e62fa734..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-mask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-tank-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-tank-multiple.svg deleted file mode 100644 index 0b8beb4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-tank-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-tank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-tank.svg deleted file mode 100644 index 160709e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba-tank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba.svg deleted file mode 100644 index a3bee3b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-scuba.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-snorkel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-snorkel.svg deleted file mode 100644 index 82a9891e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving-snorkel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving.svg deleted file mode 100644 index c7733194..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/diving.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/division-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/division-box.svg deleted file mode 100644 index 296e49bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/division-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/division.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/division.svg deleted file mode 100644 index 4e9fb7da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/division.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dlna.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dlna.svg deleted file mode 100644 index 73ac7631..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dlna.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dna.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dna.svg deleted file mode 100644 index 6834a8a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dna.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dns-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dns-outline.svg deleted file mode 100644 index 6d50b176..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dns-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dns.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dns.svg deleted file mode 100644 index 4aaef6c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dns.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-bottom.svg deleted file mode 100644 index 9362be2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-left.svg deleted file mode 100644 index a4ea0160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-right.svg deleted file mode 100644 index f45a59ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-top.svg deleted file mode 100644 index 29679ea7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-window.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-window.svg deleted file mode 100644 index 3b4a9f13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dock-window.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/docker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/docker.svg deleted file mode 100644 index 7648cf9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/docker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doctor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doctor.svg deleted file mode 100644 index b55e6f09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doctor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-service.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-service.svg deleted file mode 100644 index 8d00aa47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-service.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-side-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-side-off.svg deleted file mode 100644 index 95130d5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-side-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-side.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-side.svg deleted file mode 100644 index f101c6e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog-side.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog.svg deleted file mode 100644 index 038ccd1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolby.svg deleted file mode 100644 index 39916526..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolly.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolly.svg deleted file mode 100644 index dcbc3fc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolly.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolphin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolphin.svg deleted file mode 100644 index 1b5af21a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dolphin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-off.svg deleted file mode 100644 index 552e1dae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-plus.svg deleted file mode 100644 index fb74d8d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-remove.svg deleted file mode 100644 index 6d7cd62d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain.svg deleted file mode 100644 index a573ba3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dome-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dome-light.svg deleted file mode 100644 index 87ca61cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dome-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domino-mask.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domino-mask.svg deleted file mode 100644 index f148c4b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/domino-mask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/donkey.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/donkey.svg deleted file mode 100644 index 1cff807a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/donkey.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-closed-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-closed-lock.svg deleted file mode 100644 index ea16d939..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-closed-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-closed.svg deleted file mode 100644 index 7c2aa10b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-open.svg deleted file mode 100644 index efaa3200..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding-lock.svg deleted file mode 100644 index 8e0eae68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding-open.svg deleted file mode 100644 index 91630daf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding.svg deleted file mode 100644 index dec21380..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door-sliding.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door.svg deleted file mode 100644 index 81781e0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/door.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doorbell-video.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doorbell-video.svg deleted file mode 100644 index d78145cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doorbell-video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doorbell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doorbell.svg deleted file mode 100644 index 661717ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/doorbell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dot-net.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dot-net.svg deleted file mode 100644 index d32b55e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dot-net.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-circle.svg deleted file mode 100644 index 233f82ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-grid.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-grid.svg deleted file mode 100644 index f9d41a36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-grid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-hexagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-hexagon.svg deleted file mode 100644 index 7b1deba4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-hexagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal-circle-outline.svg deleted file mode 100644 index 67df4c8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal-circle.svg deleted file mode 100644 index bb83dfb1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal.svg deleted file mode 100644 index 823377cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-square.svg deleted file mode 100644 index 1b8b03d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-triangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-triangle.svg deleted file mode 100644 index 9eaf3ddd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical-circle-outline.svg deleted file mode 100644 index ebfa402d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical-circle.svg deleted file mode 100644 index 335c6c38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical.svg deleted file mode 100644 index 9a12f93a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dots-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-box-outline.svg deleted file mode 100644 index 3d954ca8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-box.svg deleted file mode 100644 index 99d0d589..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-circle-outline.svg deleted file mode 100644 index 1bb593d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-circle.svg deleted file mode 100644 index b82b9b9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-lock-outline.svg deleted file mode 100644 index 8593502a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-lock.svg deleted file mode 100644 index e9b9b5b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-multiple.svg deleted file mode 100644 index 774af260..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-network-outline.svg deleted file mode 100644 index 577ccd48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-network.svg deleted file mode 100644 index d9acdccb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-off-outline.svg deleted file mode 100644 index 8317ee05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-off.svg deleted file mode 100644 index 51a90c65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-outline.svg deleted file mode 100644 index 6b2e1927..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download.svg deleted file mode 100644 index f7598aa3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-horizontal-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-horizontal-variant.svg deleted file mode 100644 index 5b4a2131..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-horizontal-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-horizontal.svg deleted file mode 100644 index a4fd6656..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-variant.svg deleted file mode 100644 index a159519a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-vertical-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-vertical-variant.svg deleted file mode 100644 index 35259c45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-vertical-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-vertical.svg deleted file mode 100644 index 7d93f744..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag.svg deleted file mode 100644 index f4fe97aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drama-masks.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drama-masks.svg deleted file mode 100644 index 0ee2e45f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drama-masks.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/draw-pen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/draw-pen.svg deleted file mode 100644 index b3d336b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/draw-pen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/draw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/draw.svg deleted file mode 100644 index a1b37a32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/draw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drawing-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drawing-box.svg deleted file mode 100644 index ef35cf91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drawing-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drawing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drawing.svg deleted file mode 100644 index 48599af7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drawing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dresser-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dresser-outline.svg deleted file mode 100644 index b874a164..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dresser-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dresser.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dresser.svg deleted file mode 100644 index 01552711..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dresser.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drone.svg deleted file mode 100644 index 85b3848e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dropbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dropbox.svg deleted file mode 100644 index 60254853..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dropbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drupal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drupal.svg deleted file mode 100644 index 55795abc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/drupal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/duck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/duck.svg deleted file mode 100644 index 6522193d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/duck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dumbbell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dumbbell.svg deleted file mode 100644 index 3092fd02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dumbbell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dump-truck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dump-truck.svg deleted file mode 100644 index b5ef6123..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/dump-truck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing-loop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing-loop.svg deleted file mode 100644 index e1401045..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing-loop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing-off.svg deleted file mode 100644 index 0ba86bd5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing.svg deleted file mode 100644 index 69a4a247..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ear-hearing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-off-outline.svg deleted file mode 100644 index 1fb2b588..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-off.svg deleted file mode 100644 index fc24d5d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-outline.svg deleted file mode 100644 index 33b8f6dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds.svg deleted file mode 100644 index 4208391c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earbuds.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-arrow-right.svg deleted file mode 100644 index 8a235d51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-minus.svg deleted file mode 100644 index f30ed802..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-off.svg deleted file mode 100644 index cff79060..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-plus.svg deleted file mode 100644 index 1f6f849b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-remove.svg deleted file mode 100644 index 27ed0caf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box.svg deleted file mode 100644 index d9f6c8a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-minus.svg deleted file mode 100644 index b7306fff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-off.svg deleted file mode 100644 index 5e681c8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-plus.svg deleted file mode 100644 index e464bc60..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-remove.svg deleted file mode 100644 index 3406b792..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth.svg deleted file mode 100644 index ce4671f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/earth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-easter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-easter.svg deleted file mode 100644 index 392541b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-easter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-fried.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-fried.svg deleted file mode 100644 index c9b533d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-fried.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-off-outline.svg deleted file mode 100644 index dd6a6745..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-off.svg deleted file mode 100644 index a85c18a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-outline.svg deleted file mode 100644 index 6c87a5b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg.svg deleted file mode 100644 index d9b1b953..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/egg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eiffel-tower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eiffel-tower.svg deleted file mode 100644 index 9a03d309..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eiffel-tower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eight-track.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eight-track.svg deleted file mode 100644 index e76922d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eight-track.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-circle-outline.svg deleted file mode 100644 index 5abac6c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-circle.svg deleted file mode 100644 index 20bd56e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-outline.svg deleted file mode 100644 index 0add6911..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject.svg deleted file mode 100644 index 62e0b9dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eject.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electric-switch-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electric-switch-closed.svg deleted file mode 100644 index b64ae369..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electric-switch-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electric-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electric-switch.svg deleted file mode 100644 index 7eaebed8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electric-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electron-framework.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electron-framework.svg deleted file mode 100644 index 2cdcc8ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/electron-framework.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elephant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elephant.svg deleted file mode 100644 index a6fe2d50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elephant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevation-decline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevation-decline.svg deleted file mode 100644 index f17ff92a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevation-decline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevation-rise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevation-rise.svg deleted file mode 100644 index b3e0f319..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevation-rise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-down.svg deleted file mode 100644 index 5bf8b991..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-off-outline.svg deleted file mode 100644 index 468755ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-off.svg deleted file mode 100644 index 3de20fcb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-outline.svg deleted file mode 100644 index 22886d7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger.svg deleted file mode 100644 index 944e6e6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-passenger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-up.svg deleted file mode 100644 index 8d6ece4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator.svg deleted file mode 100644 index 0d5fc7d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/elevator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ellipse-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ellipse-outline.svg deleted file mode 100644 index 2d9d2f9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ellipse-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ellipse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ellipse.svg deleted file mode 100644 index 27695f11..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ellipse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-alert-outline.svg deleted file mode 100644 index 745fcd5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-alert.svg deleted file mode 100644 index f76105f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-left-outline.svg deleted file mode 100644 index 71852689..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-left.svg deleted file mode 100644 index 92a0616b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-right-outline.svg deleted file mode 100644 index d9ab2fe0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-right.svg deleted file mode 100644 index f5d24494..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-box.svg deleted file mode 100644 index 8aad1c52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-check-outline.svg deleted file mode 100644 index be3245c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-check.svg deleted file mode 100644 index 4e328089..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-edit-outline.svg deleted file mode 100644 index f2650c76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-edit.svg deleted file mode 100644 index 9dc1e4dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-fast-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-fast-outline.svg deleted file mode 100644 index 3c872b58..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-fast-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-fast.svg deleted file mode 100644 index cd5fe09e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-lock-outline.svg deleted file mode 100644 index d37d8d63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-lock.svg deleted file mode 100644 index 80bd60b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-mark-as-unread.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-mark-as-unread.svg deleted file mode 100644 index c7f939b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-mark-as-unread.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-minus-outline.svg deleted file mode 100644 index 349e6944..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-minus.svg deleted file mode 100644 index 2486305b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-multiple-outline.svg deleted file mode 100644 index 4c16c4ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-multiple.svg deleted file mode 100644 index 23cff977..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-newsletter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-newsletter.svg deleted file mode 100644 index 326fbbeb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-newsletter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-off-outline.svg deleted file mode 100644 index e5f1cad7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-off.svg deleted file mode 100644 index 0fb5d480..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-multiple-outline.svg deleted file mode 100644 index 994bee5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-multiple.svg deleted file mode 100644 index 71dba765..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-outline.svg deleted file mode 100644 index 444ad254..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open.svg deleted file mode 100644 index 65b90bb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-outline.svg deleted file mode 100644 index 239ea6d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-plus-outline.svg deleted file mode 100644 index df56bb32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-plus.svg deleted file mode 100644 index 35e83f59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-remove-outline.svg deleted file mode 100644 index e60e1fbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-remove.svg deleted file mode 100644 index b43decf7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-seal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-seal-outline.svg deleted file mode 100644 index 6fc3f4aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-seal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-seal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-seal.svg deleted file mode 100644 index 30691570..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-seal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-search-outline.svg deleted file mode 100644 index 47443970..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-search.svg deleted file mode 100644 index 9ad274b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-sync-outline.svg deleted file mode 100644 index 510b1e8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-sync.svg deleted file mode 100644 index 1b01ded1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-variant.svg deleted file mode 100644 index 7589744e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email.svg deleted file mode 100644 index 00227bb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/email.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ember.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ember.svg deleted file mode 100644 index a943a95f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ember.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emby.svg deleted file mode 100644 index 71161d54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-angry-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-angry-outline.svg deleted file mode 100644 index a3327fdb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-angry-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-angry.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-angry.svg deleted file mode 100644 index 8e61bad7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-angry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-confused-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-confused-outline.svg deleted file mode 100644 index 29ec8e4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-confused-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-confused.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-confused.svg deleted file mode 100644 index 124e0643..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-confused.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cool-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cool-outline.svg deleted file mode 100644 index 074c3240..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cool-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cool.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cool.svg deleted file mode 100644 index b036b0b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cry-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cry-outline.svg deleted file mode 100644 index 2430d88e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cry-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cry.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cry.svg deleted file mode 100644 index 420b5084..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-cry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-dead-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-dead-outline.svg deleted file mode 100644 index c54d6a9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-dead-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-dead.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-dead.svg deleted file mode 100644 index aa6dee7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-dead.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-devil-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-devil-outline.svg deleted file mode 100644 index c90ebf75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-devil-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-devil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-devil.svg deleted file mode 100644 index e3bf5f54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-devil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-excited-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-excited-outline.svg deleted file mode 100644 index a757c05d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-excited-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-excited.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-excited.svg deleted file mode 100644 index 3acfe467..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-excited.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-frown-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-frown-outline.svg deleted file mode 100644 index 841515fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-frown-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-frown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-frown.svg deleted file mode 100644 index fdbc4d0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-frown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-happy-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-happy-outline.svg deleted file mode 100644 index d78e39b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-happy-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-happy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-happy.svg deleted file mode 100644 index 00e0914c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-happy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-kiss-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-kiss-outline.svg deleted file mode 100644 index 06e8a44a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-kiss-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-kiss.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-kiss.svg deleted file mode 100644 index 3438c3ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-kiss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-lol-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-lol-outline.svg deleted file mode 100644 index ea0512ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-lol-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-lol.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-lol.svg deleted file mode 100644 index a6983d67..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-lol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-neutral-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-neutral-outline.svg deleted file mode 100644 index 94798d63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-neutral-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-neutral.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-neutral.svg deleted file mode 100644 index 76a58507..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-neutral.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-outline.svg deleted file mode 100644 index 41fe7a17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-poop-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-poop-outline.svg deleted file mode 100644 index b033d5b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-poop-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-poop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-poop.svg deleted file mode 100644 index e80bba21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-poop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sad-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sad-outline.svg deleted file mode 100644 index 85c4e4c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sad-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sad.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sad.svg deleted file mode 100644 index 7e5501e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sick-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sick-outline.svg deleted file mode 100644 index cb8d57ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sick-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sick.svg deleted file mode 100644 index 17cb7b5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-sick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-tongue-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-tongue-outline.svg deleted file mode 100644 index 61e4907b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-tongue-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-tongue.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-tongue.svg deleted file mode 100644 index 1925fd02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-tongue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-wink-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-wink-outline.svg deleted file mode 100644 index eedbbf8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-wink-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-wink.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-wink.svg deleted file mode 100644 index 7e056306..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon-wink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon.svg deleted file mode 100644 index fd08fa1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/emoticon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-off-outline.svg deleted file mode 100644 index 0b84721a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-off.svg deleted file mode 100644 index 310f9465..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-outline.svg deleted file mode 100644 index ffd26c37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine.svg deleted file mode 100644 index 35a9bace..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/engine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/epsilon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/epsilon.svg deleted file mode 100644 index 20ded481..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/epsilon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equal-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equal-box.svg deleted file mode 100644 index 6eb97e28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equal-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equal.svg deleted file mode 100644 index ea3acd2c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equalizer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equalizer-outline.svg deleted file mode 100644 index 8da3e070..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equalizer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equalizer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equalizer.svg deleted file mode 100644 index d7d8ea24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/equalizer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eraser-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eraser-variant.svg deleted file mode 100644 index 33465424..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eraser-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eraser.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eraser.svg deleted file mode 100644 index 91835b1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eraser.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-box.svg deleted file mode 100644 index 356156a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-down.svg deleted file mode 100644 index b90a410e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-up.svg deleted file mode 100644 index 3ed24cf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator.svg deleted file mode 100644 index 98636ab0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/escalator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eslint.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eslint.svg deleted file mode 100644 index 9c41a8d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eslint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/et.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/et.svg deleted file mode 100644 index 1f76d79c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/et.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethereum.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethereum.svg deleted file mode 100644 index 995622f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethereum.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet-cable-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet-cable-off.svg deleted file mode 100644 index adeb6368..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet-cable-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet-cable.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet-cable.svg deleted file mode 100644 index b0ec9c07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet-cable.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet.svg deleted file mode 100644 index 7dac4fb5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ethernet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-ccs1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-ccs1.svg deleted file mode 100644 index e3478e4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-ccs1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-ccs2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-ccs2.svg deleted file mode 100644 index 95d187f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-ccs2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-chademo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-chademo.svg deleted file mode 100644 index 96472ffe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-chademo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-tesla.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-tesla.svg deleted file mode 100644 index c726a63f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-tesla.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-type1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-type1.svg deleted file mode 100644 index eb92d1f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-type1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-type2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-type2.svg deleted file mode 100644 index 951469cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-plug-type2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-station.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-station.svg deleted file mode 100644 index f2231d9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ev-station.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/evernote.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/evernote.svg deleted file mode 100644 index 769c00f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/evernote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/excavator.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/excavator.svg deleted file mode 100644 index 01c1c557..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/excavator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exclamation-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exclamation-thick.svg deleted file mode 100644 index 0579a92d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exclamation-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exclamation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exclamation.svg deleted file mode 100644 index 455ed30d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exclamation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exit-run.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exit-run.svg deleted file mode 100644 index 6c54fc9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exit-run.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exit-to-app.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exit-to-app.svg deleted file mode 100644 index 73873754..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exit-to-app.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expand-all-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expand-all-outline.svg deleted file mode 100644 index 8f8ad39a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expand-all-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expand-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expand-all.svg deleted file mode 100644 index 75fb0bd5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expand-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expansion-card-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expansion-card-variant.svg deleted file mode 100644 index b5d3836a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expansion-card-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expansion-card.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expansion-card.svg deleted file mode 100644 index 13e37ccd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/expansion-card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exponent-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exponent-box.svg deleted file mode 100644 index a9130d28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exponent-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exponent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exponent.svg deleted file mode 100644 index 62c466e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/exponent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/export-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/export-variant.svg deleted file mode 100644 index 09b69651..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/export-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/export.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/export.svg deleted file mode 100644 index 384fa52a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-left-outline.svg deleted file mode 100644 index 3393fa71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-left.svg deleted file mode 100644 index b2115c8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-right-outline.svg deleted file mode 100644 index 51771da2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-right.svg deleted file mode 100644 index b11239f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-check-outline.svg deleted file mode 100644 index 37336dbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-check.svg deleted file mode 100644 index c91d6e31..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-circle-outline.svg deleted file mode 100644 index 1a329efe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-circle.svg deleted file mode 100644 index dc8543f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-minus-outline.svg deleted file mode 100644 index e6a30594..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-minus.svg deleted file mode 100644 index b5540269..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-off-outline.svg deleted file mode 100644 index dc98378a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-off.svg deleted file mode 100644 index 25536563..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-outline.svg deleted file mode 100644 index 99f9b16f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-plus-outline.svg deleted file mode 100644 index 9c947804..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-plus.svg deleted file mode 100644 index 9893dd69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-refresh-outline.svg deleted file mode 100644 index 8bfae982..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-refresh.svg deleted file mode 100644 index 5c49a8d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-remove-outline.svg deleted file mode 100644 index eb5b175a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-remove.svg deleted file mode 100644 index 7aeb6b1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-settings-outline.svg deleted file mode 100644 index c946d7da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-settings.svg deleted file mode 100644 index 310fe52b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye.svg deleted file mode 100644 index 915c953c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-minus.svg deleted file mode 100644 index b625990c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-off.svg deleted file mode 100644 index a0219ff5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-plus.svg deleted file mode 100644 index d2ea385a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-remove.svg deleted file mode 100644 index b0bc6719..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-variant.svg deleted file mode 100644 index 2fcbcc45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper.svg deleted file mode 100644 index 0e2cd06d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/eyedropper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-agent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-agent.svg deleted file mode 100644 index ef1704c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-agent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-outline.svg deleted file mode 100644 index 86d2b3be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-profile.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-profile.svg deleted file mode 100644 index 9ceeaf19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-profile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-shimmer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-shimmer-outline.svg deleted file mode 100644 index c4592bea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-shimmer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-shimmer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-shimmer.svg deleted file mode 100644 index 1840043a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man-shimmer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man.svg deleted file mode 100644 index f0cd3eda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-man.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-mask-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-mask-outline.svg deleted file mode 100644 index a34524e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-mask-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-mask.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-mask.svg deleted file mode 100644 index ec0f90f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-mask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-recognition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-recognition.svg deleted file mode 100644 index 78cb1281..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-recognition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-outline.svg deleted file mode 100644 index 9f9afee9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-profile.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-profile.svg deleted file mode 100644 index 49e0e9d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-profile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-shimmer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-shimmer-outline.svg deleted file mode 100644 index 9bb4a370..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-shimmer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-shimmer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-shimmer.svg deleted file mode 100644 index 4d4e9cef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman-shimmer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman.svg deleted file mode 100644 index 83ac16ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/face-woman.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-gaming.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-gaming.svg deleted file mode 100644 index 2fa69afe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-gaming.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-messenger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-messenger.svg deleted file mode 100644 index d7359fc6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-messenger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-workplace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-workplace.svg deleted file mode 100644 index 7a494663..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook-workplace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook.svg deleted file mode 100644 index b78449f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/facebook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/factory.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/factory.svg deleted file mode 100644 index d0da0041..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/factory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/family-tree.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/family-tree.svg deleted file mode 100644 index 3b66e479..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/family-tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-alert.svg deleted file mode 100644 index 9d7ea6c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-auto.svg deleted file mode 100644 index 5696c95e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-chevron-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-chevron-down.svg deleted file mode 100644 index d7d2f4fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-chevron-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-chevron-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-chevron-up.svg deleted file mode 100644 index d7e08467..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-chevron-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-clock.svg deleted file mode 100644 index 0b712111..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-minus.svg deleted file mode 100644 index 5873eab1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-off.svg deleted file mode 100644 index 67745ae6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-plus.svg deleted file mode 100644 index 38fadad3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-remove.svg deleted file mode 100644 index 80283b55..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-1.svg deleted file mode 100644 index d090cf23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-2.svg deleted file mode 100644 index e9860919..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-3.svg deleted file mode 100644 index 6c58cb70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan-speed-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan.svg deleted file mode 100644 index 31adbadc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-10.svg deleted file mode 100644 index a76539fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-15.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-15.svg deleted file mode 100644 index 0b8899dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-15.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-30.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-30.svg deleted file mode 100644 index 961a23ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-30.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-45.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-45.svg deleted file mode 100644 index 19b49f8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-45.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-5.svg deleted file mode 100644 index 17c8124d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-60.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-60.svg deleted file mode 100644 index e79e7f6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-60.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-outline.svg deleted file mode 100644 index 02f56157..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward.svg deleted file mode 100644 index 8b81853a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fast-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/faucet-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/faucet-variant.svg deleted file mode 100644 index 9f6dd3ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/faucet-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/faucet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/faucet.svg deleted file mode 100644 index 05f0e315..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/faucet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fax.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fax.svg deleted file mode 100644 index a731b3b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fax.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feather.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feather.svg deleted file mode 100644 index 62ee700f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feather.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feature-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feature-search-outline.svg deleted file mode 100644 index 8c227f4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feature-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feature-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feature-search.svg deleted file mode 100644 index bcd7b425..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/feature-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fedora.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fedora.svg deleted file mode 100644 index 0164e716..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fedora.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fence-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fence-electric.svg deleted file mode 100644 index 62c9a960..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fence-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fence.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fence.svg deleted file mode 100644 index f4d556a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fence.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fencing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fencing.svg deleted file mode 100644 index 2035b6a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fencing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ferris-wheel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ferris-wheel.svg deleted file mode 100644 index 32ed0f6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ferris-wheel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ferry.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ferry.svg deleted file mode 100644 index 030b2cf5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ferry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-account-outline.svg deleted file mode 100644 index 2c5923db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-account.svg deleted file mode 100644 index 796802be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-alert-outline.svg deleted file mode 100644 index 0fa33252..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-alert.svg deleted file mode 100644 index b9afdbdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-left-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-left-right-outline.svg deleted file mode 100644 index 83e0f5ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-left-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-left-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-left-right.svg deleted file mode 100644 index 9c66cf92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-left-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-up-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-up-down-outline.svg deleted file mode 100644 index a43fab8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-up-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-up-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-up-down.svg deleted file mode 100644 index d4220f6e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-arrow-up-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cabinet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cabinet.svg deleted file mode 100644 index 15f5d635..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cabinet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cad-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cad-box.svg deleted file mode 100644 index fa4018bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cad-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cad.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cad.svg deleted file mode 100644 index b060e4d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cancel-outline.svg deleted file mode 100644 index 31b261f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cancel.svg deleted file mode 100644 index 45eaf2f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-certificate-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-certificate-outline.svg deleted file mode 100644 index fac4533b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-certificate-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-certificate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-certificate.svg deleted file mode 100644 index c0c9fb4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-certificate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-check-outline.svg deleted file mode 100644 index 82f033cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-check.svg deleted file mode 100644 index 07b4086c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-outline.svg deleted file mode 100644 index 857a01d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart.svg deleted file mode 100644 index c6ab5388..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-chart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-check-outline.svg deleted file mode 100644 index 6670487a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-check.svg deleted file mode 100644 index 26e99f9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-clock-outline.svg deleted file mode 100644 index 596979d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-clock.svg deleted file mode 100644 index bb82036f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cloud-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cloud-outline.svg deleted file mode 100644 index 1a105b6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cloud-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cloud.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cloud.svg deleted file mode 100644 index 8cbf93ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-code-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-code-outline.svg deleted file mode 100644 index ea69a5c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-code-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-code.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-code.svg deleted file mode 100644 index d782e1fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cog-outline.svg deleted file mode 100644 index f44ac292..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cog.svg deleted file mode 100644 index 92eee75d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-compare.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-compare.svg deleted file mode 100644 index 08d6aebb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-compare.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-delimited-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-delimited-outline.svg deleted file mode 100644 index f61fe06d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-delimited-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-delimited.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-delimited.svg deleted file mode 100644 index a6cdccdf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-delimited.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-alert-outline.svg deleted file mode 100644 index 56f3b1c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-alert.svg deleted file mode 100644 index 573799d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-check-outline.svg deleted file mode 100644 index 6e7ab349..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-check.svg deleted file mode 100644 index a9a7385d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-edit-outline.svg deleted file mode 100644 index a6e85fa0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-edit.svg deleted file mode 100644 index 26a80cce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-minus-outline.svg deleted file mode 100644 index 6efd61ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-minus.svg deleted file mode 100644 index af84101e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-multiple-outline.svg deleted file mode 100644 index 358928b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-multiple.svg deleted file mode 100644 index 0c8546bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-outline.svg deleted file mode 100644 index 4f94724d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-plus-outline.svg deleted file mode 100644 index ecd49aa5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-plus.svg deleted file mode 100644 index e4c3b1ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-remove-outline.svg deleted file mode 100644 index 63efdf86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-remove.svg deleted file mode 100644 index 778390d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document.svg deleted file mode 100644 index 6ad81be2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-document.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-download-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-download-outline.svg deleted file mode 100644 index f7878fb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-download-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-download.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-download.svg deleted file mode 100644 index 17aaf509..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-edit-outline.svg deleted file mode 100644 index 95907b34..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-edit.svg deleted file mode 100644 index 58c8ae69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-box-outline.svg deleted file mode 100644 index dff83c16..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-box.svg deleted file mode 100644 index 2d2f8ac9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-outline.svg deleted file mode 100644 index 5d458ddf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel.svg deleted file mode 100644 index 59a354dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-export-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-export-outline.svg deleted file mode 100644 index f5ba3171..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-export-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-export.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-export.svg deleted file mode 100644 index ff48cc1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-eye-outline.svg deleted file mode 100644 index d04643a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-eye.svg deleted file mode 100644 index 27ff2cf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-find-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-find-outline.svg deleted file mode 100644 index 1a2bdb38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-find-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-find.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-find.svg deleted file mode 100644 index f4b4fef4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-find.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-gif-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-gif-box.svg deleted file mode 100644 index c9511d0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-gif-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-hidden.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-hidden.svg deleted file mode 100644 index 8b8d6c0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-hidden.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-marker-outline.svg deleted file mode 100644 index 6b70ea49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-marker.svg deleted file mode 100644 index f12be134..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-minus-outline.svg deleted file mode 100644 index e44facbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-minus.svg deleted file mode 100644 index 2ee89871..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-outline.svg deleted file mode 100644 index 2da46eeb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-plus-outline.svg deleted file mode 100644 index c601d1e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-plus.svg deleted file mode 100644 index d1536c3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-remove-outline.svg deleted file mode 100644 index a32eb725..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-remove.svg deleted file mode 100644 index 0fd52e62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image.svg deleted file mode 100644 index 47ad0287..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-import-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-import-outline.svg deleted file mode 100644 index bf043b16..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-import-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-import.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-import.svg deleted file mode 100644 index 1534d00c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-jpg-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-jpg-box.svg deleted file mode 100644 index ac9f3c6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-jpg-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-key-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-key-outline.svg deleted file mode 100644 index 17e7776f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-key-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-key.svg deleted file mode 100644 index 1e0f9525..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-link-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-link-outline.svg deleted file mode 100644 index ccc1f9b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-link-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-link.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-link.svg deleted file mode 100644 index 04ba8134..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-open-outline.svg deleted file mode 100644 index 0efd19e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-open.svg deleted file mode 100644 index b76d9833..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-outline.svg deleted file mode 100644 index 979039d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock.svg deleted file mode 100644 index 8caae98c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-marker-outline.svg deleted file mode 100644 index db34c7c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-marker.svg deleted file mode 100644 index b34ff9b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-minus-outline.svg deleted file mode 100644 index d0da62c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-minus.svg deleted file mode 100644 index 4e67a1d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-move-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-move-outline.svg deleted file mode 100644 index ff86b8c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-move-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-move.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-move.svg deleted file mode 100644 index 39dd1dd3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-move.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-multiple-outline.svg deleted file mode 100644 index a398308d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-multiple.svg deleted file mode 100644 index 4e168af9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-music-outline.svg deleted file mode 100644 index c827c0d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-music.svg deleted file mode 100644 index 1399d0e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-outline.svg deleted file mode 100644 index 6601cc4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-pdf-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-pdf-box.svg deleted file mode 100644 index a0c25112..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-pdf-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-percent-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-percent-outline.svg deleted file mode 100644 index 7b856271..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-percent-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-percent.svg deleted file mode 100644 index 8b55544a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-phone-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-phone-outline.svg deleted file mode 100644 index ce2a2e93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-phone-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-phone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-phone.svg deleted file mode 100644 index ff46e85f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-plus-outline.svg deleted file mode 100644 index a83bef3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-plus.svg deleted file mode 100644 index 57bdf61b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-png-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-png-box.svg deleted file mode 100644 index 7b2edba9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-png-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-box-outline.svg deleted file mode 100644 index 0db0d933..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-box.svg deleted file mode 100644 index 15cff8e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-outline.svg deleted file mode 100644 index 37c285cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint.svg deleted file mode 100644 index 0ef8857f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-powerpoint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-presentation-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-presentation-box.svg deleted file mode 100644 index e73273c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-presentation-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-question-outline.svg deleted file mode 100644 index 1a375a46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-question.svg deleted file mode 100644 index e39743c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-refresh-outline.svg deleted file mode 100644 index d7a0e846..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-refresh.svg deleted file mode 100644 index 80776d7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-remove-outline.svg deleted file mode 100644 index 97096779..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-remove.svg deleted file mode 100644 index 774419c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-replace-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-replace-outline.svg deleted file mode 100644 index c0c189db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-replace-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-replace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-replace.svg deleted file mode 100644 index 6caee08c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-replace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-restore-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-restore-outline.svg deleted file mode 100644 index 52be7c82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-restore-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-restore.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-restore.svg deleted file mode 100644 index 9d5a2956..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-restore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-left-outline.svg deleted file mode 100644 index 8ce177c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-left.svg deleted file mode 100644 index df19a033..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-right-outline.svg deleted file mode 100644 index 8445bad3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-right.svg deleted file mode 100644 index 566b75d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-rotate-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-search-outline.svg deleted file mode 100644 index e09b6e94..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-search.svg deleted file mode 100644 index 294e17ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-send-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-send-outline.svg deleted file mode 100644 index 6f1a477b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-send-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-send.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-send.svg deleted file mode 100644 index a19cbe92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-send.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-settings-outline.svg deleted file mode 100644 index 36cba751..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-settings.svg deleted file mode 100644 index 009f91c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sign.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sign.svg deleted file mode 100644 index 303f9d85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sign.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-star-outline.svg deleted file mode 100644 index 65fcb372..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-star.svg deleted file mode 100644 index fa62f406..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-swap-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-swap-outline.svg deleted file mode 100644 index 2b4fbd84..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-swap-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-swap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-swap.svg deleted file mode 100644 index 4710d4e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-swap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sync-outline.svg deleted file mode 100644 index a9a653b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sync.svg deleted file mode 100644 index 66471e2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-multiple-outline.svg deleted file mode 100644 index df2c23e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-multiple.svg deleted file mode 100644 index b27fbee5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-outline.svg deleted file mode 100644 index 37e03dd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box.svg deleted file mode 100644 index 4652ebc3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-outline.svg deleted file mode 100644 index be0b920b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table.svg deleted file mode 100644 index 3f59bcef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-tree-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-tree-outline.svg deleted file mode 100644 index beb86d53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-tree-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-tree.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-tree.svg deleted file mode 100644 index c58e4b99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-undo-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-undo-outline.svg deleted file mode 100644 index 8681ce6f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-undo-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-undo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-undo.svg deleted file mode 100644 index b58c98a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-undo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-upload-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-upload-outline.svg deleted file mode 100644 index 424d4f9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-upload-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-upload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-upload.svg deleted file mode 100644 index 8e11858b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-video-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-video-outline.svg deleted file mode 100644 index 28d80911..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-video-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-video.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-video.svg deleted file mode 100644 index 6fa6b4d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-box-outline.svg deleted file mode 100644 index 14545c17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-box.svg deleted file mode 100644 index 344d0cde..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-outline.svg deleted file mode 100644 index c15d32cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word.svg deleted file mode 100644 index 4c242eb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-word.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-xml-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-xml-box.svg deleted file mode 100644 index d8b77589..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file-xml-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file.svg deleted file mode 100644 index 657a5c8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/film.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/film.svg deleted file mode 100644 index f9237006..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/film.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-box-multiple.svg deleted file mode 100644 index 7a575fb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-box.svg deleted file mode 100644 index 1a981da2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-off.svg deleted file mode 100644 index a16205f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip.svg deleted file mode 100644 index a9313d00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filmstrip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-check-outline.svg deleted file mode 100644 index 7d1fda4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-check.svg deleted file mode 100644 index 9004e2ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-cog-outline.svg deleted file mode 100644 index 611c5f59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-cog.svg deleted file mode 100644 index a337b19f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-menu-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-menu-outline.svg deleted file mode 100644 index e07159ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-menu-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-menu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-menu.svg deleted file mode 100644 index 835bafdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-menu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-minus-outline.svg deleted file mode 100644 index 5a3eed00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-minus.svg deleted file mode 100644 index 42b712b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-multiple-outline.svg deleted file mode 100644 index 6b298333..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-multiple.svg deleted file mode 100644 index 4ac5c614..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-off-outline.svg deleted file mode 100644 index 31a2c7ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-off.svg deleted file mode 100644 index ba794c4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-outline.svg deleted file mode 100644 index 0833619c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-plus-outline.svg deleted file mode 100644 index 01fa7e50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-plus.svg deleted file mode 100644 index 0d8779f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-remove-outline.svg deleted file mode 100644 index faf5fa32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-remove.svg deleted file mode 100644 index 90ed0148..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-settings-outline.svg deleted file mode 100644 index 2f1ac984..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-settings.svg deleted file mode 100644 index 8908eee6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-minus.svg deleted file mode 100644 index 40819ce8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-plus.svg deleted file mode 100644 index 995cfd12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-remove.svg deleted file mode 100644 index 844ce35d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant.svg deleted file mode 100644 index 7139c991..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter.svg deleted file mode 100644 index 88e05d3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/finance.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/finance.svg deleted file mode 100644 index 639eda91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/finance.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/find-replace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/find-replace.svg deleted file mode 100644 index 11791d83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/find-replace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fingerprint-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fingerprint-off.svg deleted file mode 100644 index b3c00e56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fingerprint-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fingerprint.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fingerprint.svg deleted file mode 100644 index bf26b599..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fingerprint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-alert.svg deleted file mode 100644 index 85e78f72..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-circle.svg deleted file mode 100644 index 531eed9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-extinguisher.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-extinguisher.svg deleted file mode 100644 index b20a754f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-extinguisher.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant-alert.svg deleted file mode 100644 index 67fd87e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant-off.svg deleted file mode 100644 index ab3f420c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant.svg deleted file mode 100644 index b4bfb345..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-hydrant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-off.svg deleted file mode 100644 index e3094065..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-truck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-truck.svg deleted file mode 100644 index 42273b7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire-truck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire.svg deleted file mode 100644 index 1f1ad862..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firebase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firebase.svg deleted file mode 100644 index 60d9fa55..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firebase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firefox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firefox.svg deleted file mode 100644 index c27877a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firefox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fireplace-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fireplace-off.svg deleted file mode 100644 index 8c36f244..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fireplace-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fireplace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fireplace.svg deleted file mode 100644 index a20fed59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fireplace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firewire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firewire.svg deleted file mode 100644 index 61b3395e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firewire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firework-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firework-off.svg deleted file mode 100644 index f5dfa3a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firework-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firework.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firework.svg deleted file mode 100644 index f690ea28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/firework.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fish-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fish-off.svg deleted file mode 100644 index c726241b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fish-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fish.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fish.svg deleted file mode 100644 index c71cdb24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fish.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fishbowl-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fishbowl-outline.svg deleted file mode 100644 index 52989c19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fishbowl-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fishbowl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fishbowl.svg deleted file mode 100644 index f834580e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fishbowl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-page-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-page-outline.svg deleted file mode 100644 index d312dd7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-page-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-page.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-page.svg deleted file mode 100644 index c45eac9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-page.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-screen-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-screen-outline.svg deleted file mode 100644 index 10f044cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-screen-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-screen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-screen.svg deleted file mode 100644 index d2b0097a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fit-to-screen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-checkered.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-checkered.svg deleted file mode 100644 index 0e2e5ee2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-checkered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-minus-outline.svg deleted file mode 100644 index c4ec2e25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-minus.svg deleted file mode 100644 index 5481bdc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-off-outline.svg deleted file mode 100644 index 11773651..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-off.svg deleted file mode 100644 index 5d1831ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-outline.svg deleted file mode 100644 index b4161e55..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-plus-outline.svg deleted file mode 100644 index 90b9fd6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-plus.svg deleted file mode 100644 index 837a033b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-remove-outline.svg deleted file mode 100644 index 0a632680..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-remove.svg deleted file mode 100644 index d8ecd807..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-triangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-triangle.svg deleted file mode 100644 index 67592672..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-minus-outline.svg deleted file mode 100644 index 86be4bd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-minus.svg deleted file mode 100644 index 7ef69d25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-off-outline.svg deleted file mode 100644 index a9ec1ac0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-off.svg deleted file mode 100644 index 4635e892..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-outline.svg deleted file mode 100644 index b6952426..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-plus-outline.svg deleted file mode 100644 index 92a78289..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-plus.svg deleted file mode 100644 index fcca55f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-remove-outline.svg deleted file mode 100644 index 61e4263e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-remove.svg deleted file mode 100644 index b5b19c43..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant.svg deleted file mode 100644 index c631ae5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag.svg deleted file mode 100644 index a535b6b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flare.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flare.svg deleted file mode 100644 index 054a03f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flare.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-alert-outline.svg deleted file mode 100644 index dd655390..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-alert.svg deleted file mode 100644 index f9060dea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-auto.svg deleted file mode 100644 index 4f80b5e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-off-outline.svg deleted file mode 100644 index 5e515281..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-off.svg deleted file mode 100644 index da7f4d57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-outline.svg deleted file mode 100644 index 5a0a0870..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-red-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-red-eye.svg deleted file mode 100644 index fbedc9ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-red-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-triangle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-triangle-outline.svg deleted file mode 100644 index 2cd743c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-triangle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-triangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-triangle.svg deleted file mode 100644 index 368e7ffb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash.svg deleted file mode 100644 index fbab16a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flashlight-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flashlight-off.svg deleted file mode 100644 index e80d9842..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flashlight-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flashlight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flashlight.svg deleted file mode 100644 index 6ff507a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flashlight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-minus-outline.svg deleted file mode 100644 index 511617d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-minus.svg deleted file mode 100644 index a58f1087..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-off-outline.svg deleted file mode 100644 index 1e353a75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-off.svg deleted file mode 100644 index 3f0b21b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-outline.svg deleted file mode 100644 index 0587da76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-plus-outline.svg deleted file mode 100644 index 3934b06b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-plus.svg deleted file mode 100644 index 179b9c7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-remove-outline.svg deleted file mode 100644 index 3f0e65f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-remove.svg deleted file mode 100644 index 9d56f2e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty.svg deleted file mode 100644 index 70f8e24d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-minus-outline.svg deleted file mode 100644 index 9fab9977..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-minus.svg deleted file mode 100644 index cd5be727..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-off-outline.svg deleted file mode 100644 index 0c53ae84..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-off.svg deleted file mode 100644 index 9264f6aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-outline.svg deleted file mode 100644 index 12f6f4b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-plus-outline.svg deleted file mode 100644 index efe03ae8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-plus.svg deleted file mode 100644 index 521e16d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-remove-outline.svg deleted file mode 100644 index 2d8ec63b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-remove.svg deleted file mode 100644 index 50abb16c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-empty-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-empty-outline.svg deleted file mode 100644 index 31ed618b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-empty-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-empty.svg deleted file mode 100644 index 9e8d8e58..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-outline.svg deleted file mode 100644 index b515d9f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom.svg deleted file mode 100644 index 3a18773f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask-round-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask.svg deleted file mode 100644 index 1806d182..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fleur-de-lis.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fleur-de-lis.svg deleted file mode 100644 index a452e6df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fleur-de-lis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-horizontal.svg deleted file mode 100644 index f0edc9e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-to-back.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-to-back.svg deleted file mode 100644 index b0e7d6f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-to-back.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-to-front.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-to-front.svg deleted file mode 100644 index 036c30bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-to-front.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-vertical.svg deleted file mode 100644 index 8126d296..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flip-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-dual-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-dual-outline.svg deleted file mode 100644 index 1a8411f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-dual-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-dual.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-dual.svg deleted file mode 100644 index aec607cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-dual.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-outline.svg deleted file mode 100644 index 4102e48f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-outline.svg deleted file mode 100644 index d28094e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-variant-outline.svg deleted file mode 100644 index 5624f94d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-variant.svg deleted file mode 100644 index d6af6e52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere.svg deleted file mode 100644 index fc379099..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp-torchiere.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp.svg deleted file mode 100644 index 846df5a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-plan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-plan.svg deleted file mode 100644 index 39cbd166..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floor-plan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floppy-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floppy-variant.svg deleted file mode 100644 index adca3147..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floppy-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floppy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floppy.svg deleted file mode 100644 index d6180f81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/floppy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-outline.svg deleted file mode 100644 index 29918c01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-pollen-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-pollen-outline.svg deleted file mode 100644 index 96cf10c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-pollen-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-pollen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-pollen.svg deleted file mode 100644 index 8626dcb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-pollen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-poppy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-poppy.svg deleted file mode 100644 index b8f35595..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-poppy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-tulip-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-tulip-outline.svg deleted file mode 100644 index 09097098..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-tulip-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-tulip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-tulip.svg deleted file mode 100644 index c54d33ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower-tulip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower.svg deleted file mode 100644 index 9d30cd4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/flower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-auto.svg deleted file mode 100644 index 09e44769..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field-horizontal.svg deleted file mode 100644 index 609dcefc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field-vertical.svg deleted file mode 100644 index 04a7bdcb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field.svg deleted file mode 100644 index a9a077f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/focus-field.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-account-outline.svg deleted file mode 100644 index 532071a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-account.svg deleted file mode 100644 index 2547e2da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-alert-outline.svg deleted file mode 100644 index ed58cb10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-alert.svg deleted file mode 100644 index 251b0f04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-down-outline.svg deleted file mode 100644 index dc38ffc8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-down.svg deleted file mode 100644 index 5661d75c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-outline.svg deleted file mode 100644 index 84115a52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-right-outline.svg deleted file mode 100644 index b7d01e7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-right.svg deleted file mode 100644 index 525c914b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left.svg deleted file mode 100644 index 2e8c266d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-right-outline.svg deleted file mode 100644 index 29fc01ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-right.svg deleted file mode 100644 index 4799a842..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-down-outline.svg deleted file mode 100644 index b844b477..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-down.svg deleted file mode 100644 index 87a49481..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-outline.svg deleted file mode 100644 index c28b333b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up.svg deleted file mode 100644 index cd271ca3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cancel-outline.svg deleted file mode 100644 index 907ec3f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cancel.svg deleted file mode 100644 index 360bb524..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-check-outline.svg deleted file mode 100644 index 387ffe0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-check.svg deleted file mode 100644 index 07902c7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-clock-outline.svg deleted file mode 100644 index 82105434..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-clock.svg deleted file mode 100644 index 265344e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cog-outline.svg deleted file mode 100644 index fd1f5fbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cog.svg deleted file mode 100644 index b7b2ec71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-download-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-download-outline.svg deleted file mode 100644 index b2f70d2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-download-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-download.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-download.svg deleted file mode 100644 index ccd432fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-edit-outline.svg deleted file mode 100644 index 13fd6233..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-edit.svg deleted file mode 100644 index e28e3787..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-eye-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-eye-outline.svg deleted file mode 100644 index db78b23d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-eye-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-eye.svg deleted file mode 100644 index b17683d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-file-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-file-outline.svg deleted file mode 100644 index e8335666..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-file-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-file.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-file.svg deleted file mode 100644 index 720f3862..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-file.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-google-drive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-google-drive.svg deleted file mode 100644 index 3d2a5de8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-google-drive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-heart-outline.svg deleted file mode 100644 index 4684bde1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-heart.svg deleted file mode 100644 index 0c315d18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-hidden.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-hidden.svg deleted file mode 100644 index 96fcccf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-hidden.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-home-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-home-outline.svg deleted file mode 100644 index acca9031..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-home-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-home.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-home.svg deleted file mode 100644 index 0da17f85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-home.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-image.svg deleted file mode 100644 index ad80c010..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-information-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-information-outline.svg deleted file mode 100644 index b3a72980..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-information-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-information.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-information.svg deleted file mode 100644 index 98467b24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-information.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-network-outline.svg deleted file mode 100644 index e138a10f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-network.svg deleted file mode 100644 index 4e684fbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-outline.svg deleted file mode 100644 index a136e3d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key.svg deleted file mode 100644 index a288c91c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-open-outline.svg deleted file mode 100644 index 76ab499f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-open.svg deleted file mode 100644 index 73038c5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-outline.svg deleted file mode 100644 index c75df2ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock.svg deleted file mode 100644 index 47218e3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-marker-outline.svg deleted file mode 100644 index 97f88a70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-marker.svg deleted file mode 100644 index 117612f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-minus-outline.svg deleted file mode 100644 index d1b1046c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-minus.svg deleted file mode 100644 index 65cc21b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-move-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-move-outline.svg deleted file mode 100644 index f565a498..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-move-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-move.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-move.svg deleted file mode 100644 index 349106f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-move.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-image.svg deleted file mode 100644 index 208f175a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-outline.svg deleted file mode 100644 index 6d30523b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-plus-outline.svg deleted file mode 100644 index d9d4f480..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-plus.svg deleted file mode 100644 index d90733f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple.svg deleted file mode 100644 index 06c92d23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-music-outline.svg deleted file mode 100644 index 8785f080..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-music.svg deleted file mode 100644 index 6acfd6c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-network-outline.svg deleted file mode 100644 index c2ba40ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-network.svg deleted file mode 100644 index b71d1b85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-off-outline.svg deleted file mode 100644 index 2c1d09be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-off.svg deleted file mode 100644 index c170cadc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-open-outline.svg deleted file mode 100644 index d013ecad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-open.svg deleted file mode 100644 index b9d05087..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-outline.svg deleted file mode 100644 index 7ff92d4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-play-outline.svg deleted file mode 100644 index 33941220..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-play.svg deleted file mode 100644 index 0730f5ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-plus-outline.svg deleted file mode 100644 index 563cf001..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-plus.svg deleted file mode 100644 index 000b2b1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-pound-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-pound-outline.svg deleted file mode 100644 index 634adfc3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-pound-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-pound.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-pound.svg deleted file mode 100644 index a88c91a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-pound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-question-outline.svg deleted file mode 100644 index e8525ba3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-question.svg deleted file mode 100644 index 23291307..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-refresh-outline.svg deleted file mode 100644 index c2816e87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-refresh.svg deleted file mode 100644 index 5260ca96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-remove-outline.svg deleted file mode 100644 index e7a81051..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-remove.svg deleted file mode 100644 index f5bb8d06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-search-outline.svg deleted file mode 100644 index 4df05a51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-search.svg deleted file mode 100644 index 2ec272d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-settings-outline.svg deleted file mode 100644 index bff35714..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-settings.svg deleted file mode 100644 index d3689beb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-multiple-outline.svg deleted file mode 100644 index 9e480d24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-multiple.svg deleted file mode 100644 index c326d455..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-outline.svg deleted file mode 100644 index 9d03d06b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star.svg deleted file mode 100644 index b9eea6b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-swap-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-swap-outline.svg deleted file mode 100644 index 0ea72211..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-swap-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-swap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-swap.svg deleted file mode 100644 index 973fba83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-swap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-sync-outline.svg deleted file mode 100644 index c3768f25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-sync.svg deleted file mode 100644 index d5bffb7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-table-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-table-outline.svg deleted file mode 100644 index 4864522f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-table-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-table.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-table.svg deleted file mode 100644 index d456291b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-text-outline.svg deleted file mode 100644 index e456e822..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-text.svg deleted file mode 100644 index ea0e7093..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-upload-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-upload-outline.svg deleted file mode 100644 index fa421fad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-upload-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-upload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-upload.svg deleted file mode 100644 index b46104b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-wrench-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-wrench-outline.svg deleted file mode 100644 index db700bcb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-wrench-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-wrench.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-wrench.svg deleted file mode 100644 index d60180dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-zip-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-zip-outline.svg deleted file mode 100644 index a64bd5f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-zip-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-zip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-zip.svg deleted file mode 100644 index 10101012..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder-zip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder.svg deleted file mode 100644 index 9b7d7718..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/folder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/font-awesome.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/font-awesome.svg deleted file mode 100644 index 97039bec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/font-awesome.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-apple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-apple-outline.svg deleted file mode 100644 index c2096bdd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-apple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-apple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-apple.svg deleted file mode 100644 index 4b4400a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-apple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-croissant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-croissant.svg deleted file mode 100644 index fa4a33c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-croissant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-off-outline.svg deleted file mode 100644 index 644cf4a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-off.svg deleted file mode 100644 index 8ecf6210..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-outline.svg deleted file mode 100644 index 340995e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick.svg deleted file mode 100644 index d92e0411..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-drumstick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-fork-drink.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-fork-drink.svg deleted file mode 100644 index 4caf4f80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-fork-drink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-halal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-halal.svg deleted file mode 100644 index 92d7ea88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-halal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-hot-dog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-hot-dog.svg deleted file mode 100644 index 3eb8490a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-hot-dog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-kosher.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-kosher.svg deleted file mode 100644 index f2d9f07c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-kosher.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-off-outline.svg deleted file mode 100644 index fe44a8f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-off.svg deleted file mode 100644 index 51b45a90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-outline.svg deleted file mode 100644 index 4e91d1f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-steak-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-steak-off.svg deleted file mode 100644 index e1ca7b3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-steak-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-steak.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-steak.svg deleted file mode 100644 index 6acdc921..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-steak.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-takeout-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-takeout-box-outline.svg deleted file mode 100644 index ba3b667e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-takeout-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-takeout-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-takeout-box.svg deleted file mode 100644 index 513a781b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-takeout-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-turkey.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-turkey.svg deleted file mode 100644 index e13e8942..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-turkey.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-variant-off.svg deleted file mode 100644 index 4b9c336b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-variant.svg deleted file mode 100644 index fac040f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food.svg deleted file mode 100644 index 7cf9df91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/food.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/foot-print.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/foot-print.svg deleted file mode 100644 index 8c257135..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/foot-print.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football-australian.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football-australian.svg deleted file mode 100644 index 5f0c7e0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football-australian.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football-helmet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football-helmet.svg deleted file mode 100644 index 86eb4fea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football-helmet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football.svg deleted file mode 100644 index 840ddad8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/football.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forest.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forest.svg deleted file mode 100644 index a62650cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forklift.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forklift.svg deleted file mode 100644 index d5325f74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forklift.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-dropdown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-dropdown.svg deleted file mode 100644 index 16adde16..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-dropdown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-select.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-select.svg deleted file mode 100644 index 6f96ab4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textarea.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textarea.svg deleted file mode 100644 index 5973dafb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textarea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox-lock.svg deleted file mode 100644 index 2c0af735..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox-password.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox-password.svg deleted file mode 100644 index 441f7f03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox-password.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox.svg deleted file mode 100644 index 3f359997..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/form-textbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-bottom.svg deleted file mode 100644 index da0cefe9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-center.svg deleted file mode 100644 index 9eff4368..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-justify.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-justify.svg deleted file mode 100644 index c238a24a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-justify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-left.svg deleted file mode 100644 index e0b315ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-middle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-middle.svg deleted file mode 100644 index ef786b0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-middle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-right.svg deleted file mode 100644 index 9d134072..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-top.svg deleted file mode 100644 index 9d5986ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-align-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-annotation-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-annotation-minus.svg deleted file mode 100644 index 3dd7bf88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-annotation-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-annotation-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-annotation-plus.svg deleted file mode 100644 index 5cd365a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-annotation-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-bold.svg deleted file mode 100644 index fe5a40fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-clear.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-clear.svg deleted file mode 100644 index 0210f5da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-clear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-fill.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-fill.svg deleted file mode 100644 index 5d4aee51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-fill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-highlight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-highlight.svg deleted file mode 100644 index 3347fb52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-highlight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-marker-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-marker-cancel.svg deleted file mode 100644 index 580c8415..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-marker-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-text.svg deleted file mode 100644 index 111ce3dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-color-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-columns.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-columns.svg deleted file mode 100644 index 34866160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-columns.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-center.svg deleted file mode 100644 index 86ef46fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-left.svg deleted file mode 100644 index e7bd4114..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-none.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-none.svg deleted file mode 100644 index ff2bc5ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-none.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-right.svg deleted file mode 100644 index e459cf2c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-float-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font-size-decrease.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font-size-decrease.svg deleted file mode 100644 index 7922f648..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font-size-decrease.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font-size-increase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font-size-increase.svg deleted file mode 100644 index ddbb84a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font-size-increase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font.svg deleted file mode 100644 index 1d707b4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-font.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-1.svg deleted file mode 100644 index c0f1eb9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-2.svg deleted file mode 100644 index 7811d362..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-3.svg deleted file mode 100644 index b43fd3e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-4.svg deleted file mode 100644 index 4d97cedd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-5.svg deleted file mode 100644 index d346282a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-6.svg deleted file mode 100644 index 98aa64cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-decrease.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-decrease.svg deleted file mode 100644 index b39ac01c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-decrease.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-equal.svg deleted file mode 100644 index a604b33e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-increase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-increase.svg deleted file mode 100644 index ef5734dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-increase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-pound.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-pound.svg deleted file mode 100644 index 643c76ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-header-pound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-center.svg deleted file mode 100644 index e2aec9ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-left.svg deleted file mode 100644 index 88d376b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-right.svg deleted file mode 100644 index d37149d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-horizontal-align-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-indent-decrease.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-indent-decrease.svg deleted file mode 100644 index 89840e0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-indent-decrease.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-indent-increase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-indent-increase.svg deleted file mode 100644 index f5fd9df4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-indent-increase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-italic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-italic.svg deleted file mode 100644 index aa298230..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-italic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case-lower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case-lower.svg deleted file mode 100644 index b7bf81e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case-lower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case-upper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case-upper.svg deleted file mode 100644 index decdbd9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case-upper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case.svg deleted file mode 100644 index 198b9fbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-case.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-ends-with.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-ends-with.svg deleted file mode 100644 index 615aab6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-ends-with.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-matches.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-matches.svg deleted file mode 100644 index 5359ba09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-matches.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-spacing-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-spacing-variant.svg deleted file mode 100644 index c180133d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-spacing-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-spacing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-spacing.svg deleted file mode 100644 index 9b2b980a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-spacing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-starts-with.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-starts-with.svg deleted file mode 100644 index eafcf7a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-letter-starts-with.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-height.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-height.svg deleted file mode 100644 index 34da4ce4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-height.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-spacing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-spacing.svg deleted file mode 100644 index 80fc706f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-spacing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-style.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-style.svg deleted file mode 100644 index 6759e5fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-style.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-weight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-weight.svg deleted file mode 100644 index 8321def4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-line-weight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-square.svg deleted file mode 100644 index 462acd0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-triangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-triangle.svg deleted file mode 100644 index 5e358575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-type.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-type.svg deleted file mode 100644 index 1034f814..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted-type.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted.svg deleted file mode 100644 index 10c3879a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-bulleted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-checkbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-checkbox.svg deleted file mode 100644 index 218dfcf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-checkbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-checks.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-checks.svg deleted file mode 100644 index f2df5763..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-checks.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-group-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-group-plus.svg deleted file mode 100644 index 1b34a5d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-group-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-group.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-group.svg deleted file mode 100644 index d748e101..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-group.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-numbered-rtl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-numbered-rtl.svg deleted file mode 100644 index 56f2eb9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-numbered-rtl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-numbered.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-numbered.svg deleted file mode 100644 index 6899badd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-numbered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-text.svg deleted file mode 100644 index 8276dd2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-list-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-overline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-overline.svg deleted file mode 100644 index 06c5c440..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-overline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-page-break.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-page-break.svg deleted file mode 100644 index aee31d5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-page-break.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-page-split.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-page-split.svg deleted file mode 100644 index 75b91638..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-page-split.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paint.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paint.svg deleted file mode 100644 index 356147db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paragraph-spacing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paragraph-spacing.svg deleted file mode 100644 index 34a719dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paragraph-spacing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paragraph.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paragraph.svg deleted file mode 100644 index af493ef9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-paragraph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow-arrow-left.svg deleted file mode 100644 index 970d65b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow-arrow-right.svg deleted file mode 100644 index da942b4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow.svg deleted file mode 100644 index c1959ed7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-pilcrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-close-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-close-outline.svg deleted file mode 100644 index 565a2fdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-close-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-close.svg deleted file mode 100644 index b4010c9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-open-outline.svg deleted file mode 100644 index 9a48999a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-open.svg deleted file mode 100644 index 7bc0a324..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-quote-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-rotate-90.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-rotate-90.svg deleted file mode 100644 index 12fff008..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-rotate-90.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-section.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-section.svg deleted file mode 100644 index ea811372..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-section.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-size.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-size.svg deleted file mode 100644 index 6b688b36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-size.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-strikethrough-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-strikethrough-variant.svg deleted file mode 100644 index d7871734..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-strikethrough-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-strikethrough.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-strikethrough.svg deleted file mode 100644 index 1274ae75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-strikethrough.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-subscript.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-subscript.svg deleted file mode 100644 index f1be70d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-subscript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-superscript.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-superscript.svg deleted file mode 100644 index bfeb6703..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-superscript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-angle-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-angle-down.svg deleted file mode 100644 index 80c80bef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-angle-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-angle-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-angle-up.svg deleted file mode 100644 index 24f8fd83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-angle-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-down-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-down-vertical.svg deleted file mode 100644 index 7583dadf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-down-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-down.svg deleted file mode 100644 index 017b15f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-none.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-none.svg deleted file mode 100644 index bf49ea19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-none.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-up.svg deleted file mode 100644 index 089fcc8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-vertical.svg deleted file mode 100644 index 275ae48d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-rotation-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-variant-outline.svg deleted file mode 100644 index 1e70a0fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-variant.svg deleted file mode 100644 index c2f5d186..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-clip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-clip.svg deleted file mode 100644 index c7b3f63b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-clip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-overflow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-overflow.svg deleted file mode 100644 index 25405097..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-overflow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-wrap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-wrap.svg deleted file mode 100644 index 8f468e4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text-wrapping-wrap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text.svg deleted file mode 100644 index 563e479e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-textbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-textbox.svg deleted file mode 100644 index a49c9fbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-textbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-title.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-title.svg deleted file mode 100644 index 2444d8c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-title.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-underline-wavy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-underline-wavy.svg deleted file mode 100644 index b82327fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-underline-wavy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-underline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-underline.svg deleted file mode 100644 index 641f0e75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-underline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-bottom.svg deleted file mode 100644 index c40bcb32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-center.svg deleted file mode 100644 index 78272d20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-top.svg deleted file mode 100644 index da219214..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-vertical-align-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-inline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-inline.svg deleted file mode 100644 index a9386cf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-inline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-square.svg deleted file mode 100644 index 4217b75c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-tight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-tight.svg deleted file mode 100644 index 241e7f11..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-tight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-top-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-top-bottom.svg deleted file mode 100644 index ad1e1afd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/format-wrap-top-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-minus-outline.svg deleted file mode 100644 index e545998f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-minus.svg deleted file mode 100644 index 2475cfff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-outline.svg deleted file mode 100644 index 0849c6ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-plus-outline.svg deleted file mode 100644 index 22837114..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-plus.svg deleted file mode 100644 index caca0e33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-remove-outline.svg deleted file mode 100644 index 69c49d2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-remove.svg deleted file mode 100644 index 22497d88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum.svg deleted file mode 100644 index 4a9671c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forum.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forward.svg deleted file mode 100644 index 7df7b977..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forwardburger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forwardburger.svg deleted file mode 100644 index 87e141fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/forwardburger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain-pen-tip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain-pen-tip.svg deleted file mode 100644 index d39c56ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain-pen-tip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain-pen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain-pen.svg deleted file mode 100644 index 24476672..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain-pen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain.svg deleted file mode 100644 index 00468182..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fountain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fraction-one-half.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fraction-one-half.svg deleted file mode 100644 index c7506067..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fraction-one-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/freebsd.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/freebsd.svg deleted file mode 100644 index 2c7adebb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/freebsd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/french-fries.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/french-fries.svg deleted file mode 100644 index 03e3b848..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/french-fries.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/frequently-asked-questions.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/frequently-asked-questions.svg deleted file mode 100644 index 1551cd0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/frequently-asked-questions.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-alert-outline.svg deleted file mode 100644 index f5d0a79d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-alert.svg deleted file mode 100644 index fa4b450b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-bottom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-bottom.svg deleted file mode 100644 index 3f0dfa7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-bottom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-alert-outline.svg deleted file mode 100644 index 2e960262..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-alert.svg deleted file mode 100644 index 5506f662..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-off-outline.svg deleted file mode 100644 index e1ca054d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-off.svg deleted file mode 100644 index d0b59a70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-outline.svg deleted file mode 100644 index ec73312d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial.svg deleted file mode 100644 index d6e5ecd3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-industrial.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-off-outline.svg deleted file mode 100644 index 80f64452..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-off.svg deleted file mode 100644 index 010d16c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-outline.svg deleted file mode 100644 index b47668a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-top.svg deleted file mode 100644 index 6c497de8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-alert-outline.svg deleted file mode 100644 index 22a2081b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-alert.svg deleted file mode 100644 index 4d6599a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-off-outline.svg deleted file mode 100644 index bc518431..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-off.svg deleted file mode 100644 index 98a25315..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-outline.svg deleted file mode 100644 index b63dc245..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant.svg deleted file mode 100644 index 41f527d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge.svg deleted file mode 100644 index efb027ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fridge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-cherries-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-cherries-off.svg deleted file mode 100644 index dfb917c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-cherries-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-cherries.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-cherries.svg deleted file mode 100644 index 08dd25b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-cherries.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-citrus-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-citrus-off.svg deleted file mode 100644 index 64cc18dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-citrus-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-citrus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-citrus.svg deleted file mode 100644 index a6e86ea8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-citrus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-grapes-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-grapes-outline.svg deleted file mode 100644 index 2e511594..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-grapes-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-grapes.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-grapes.svg deleted file mode 100644 index d63d3af7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-grapes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-pear.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-pear.svg deleted file mode 100644 index 055b4c40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-pear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-pineapple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-pineapple.svg deleted file mode 100644 index 82d12841..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-pineapple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-watermelon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-watermelon.svg deleted file mode 100644 index 22a24e2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fruit-watermelon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuel-cell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuel-cell.svg deleted file mode 100644 index 68f7c564..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuel-cell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuel.svg deleted file mode 100644 index c393949e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fullscreen-exit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fullscreen-exit.svg deleted file mode 100644 index b712ffc0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fullscreen-exit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fullscreen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fullscreen.svg deleted file mode 100644 index 6c94f97a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fullscreen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/function-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/function-variant.svg deleted file mode 100644 index bdc84531..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/function-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/function.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/function.svg deleted file mode 100644 index 5f0b4f64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/function.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/furigana-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/furigana-horizontal.svg deleted file mode 100644 index a53d3c4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/furigana-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/furigana-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/furigana-vertical.svg deleted file mode 100644 index 97baf129..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/furigana-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-alert.svg deleted file mode 100644 index 1e2829da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-blade.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-blade.svg deleted file mode 100644 index b89a2fbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-blade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-off.svg deleted file mode 100644 index 41b747ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse.svg deleted file mode 100644 index 51a12c01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/fuse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-down.svg deleted file mode 100644 index 793a7a77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-left.svg deleted file mode 100644 index 4b314f5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-outline.svg deleted file mode 100644 index 4023e026..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-right.svg deleted file mode 100644 index 9a7657ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-up.svg deleted file mode 100644 index 34e8eb0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle.svg deleted file mode 100644 index 7247a374..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-down.svg deleted file mode 100644 index d1ff6bdf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-left.svg deleted file mode 100644 index 56458641..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-outline.svg deleted file mode 100644 index 32c4ac52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-right.svg deleted file mode 100644 index 6e5dc76d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-down.svg deleted file mode 100644 index 7f3f0de6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-left.svg deleted file mode 100644 index bd82d0b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-outline.svg deleted file mode 100644 index 054c8a5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-right.svg deleted file mode 100644 index 5246911c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-up.svg deleted file mode 100644 index 06f68a72..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round.svg deleted file mode 100644 index a4ccb578..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-round.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-square-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-square-outline.svg deleted file mode 100644 index 6a459115..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-square-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-square.svg deleted file mode 100644 index dabfe595..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-up.svg deleted file mode 100644 index 00ccb8e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-variant-outline.svg deleted file mode 100644 index 6bd160a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-variant.svg deleted file mode 100644 index 4777bcd6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad.svg deleted file mode 100644 index 59e4768d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamepad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamma.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamma.svg deleted file mode 100644 index 6bd41f0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gamma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gantry-crane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gantry-crane.svg deleted file mode 100644 index f69ac703..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gantry-crane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-alert-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-alert-variant.svg deleted file mode 100644 index 2de5c0b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-alert-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-alert.svg deleted file mode 100644 index 26f39f84..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-lock.svg deleted file mode 100644 index 0dd8b22c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-open-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-open-variant.svg deleted file mode 100644 index bab28594..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-open-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-open.svg deleted file mode 100644 index 801ce747..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-variant-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-variant-lock.svg deleted file mode 100644 index f597dd32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-variant-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-variant.svg deleted file mode 100644 index 91f8df88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage.svg deleted file mode 100644 index f597e735..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/garage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-burner.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-burner.svg deleted file mode 100644 index 9416f366..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-burner.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-cylinder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-cylinder.svg deleted file mode 100644 index b8a8f3d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-cylinder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-off-outline.svg deleted file mode 100644 index 2b0161f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-off.svg deleted file mode 100644 index 0c656378..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-outline.svg deleted file mode 100644 index 923bb868..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station.svg deleted file mode 100644 index 67941a03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gas-station.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-alert.svg deleted file mode 100644 index d188ae11..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-and.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-and.svg deleted file mode 100644 index 5c2c9c13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-and.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-arrow-left.svg deleted file mode 100644 index 15308782..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-arrow-right.svg deleted file mode 100644 index 804d7eb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-buffer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-buffer.svg deleted file mode 100644 index 8bcdf8a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-buffer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-nand.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-nand.svg deleted file mode 100644 index 2019749d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-nand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-nor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-nor.svg deleted file mode 100644 index 58345e33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-nor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-not.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-not.svg deleted file mode 100644 index e4e74233..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-not.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-open.svg deleted file mode 100644 index 75ea98ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-or.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-or.svg deleted file mode 100644 index b4bc6fb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-or.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-xnor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-xnor.svg deleted file mode 100644 index 042b6b91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-xnor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-xor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-xor.svg deleted file mode 100644 index 0be864f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate-xor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate.svg deleted file mode 100644 index eb1124df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gatsby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gatsby.svg deleted file mode 100644 index 876fa805..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gatsby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-empty.svg deleted file mode 100644 index 06c66011..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-full.svg deleted file mode 100644 index 439f9219..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-low.svg deleted file mode 100644 index 4f24d5a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge.svg deleted file mode 100644 index 2e7179c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gauge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gavel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gavel.svg deleted file mode 100644 index 73969135..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gavel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-female.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-female.svg deleted file mode 100644 index 126e24f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-female.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male-female-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male-female-variant.svg deleted file mode 100644 index c330c434..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male-female-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male-female.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male-female.svg deleted file mode 100644 index 118cf2ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male-female.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male.svg deleted file mode 100644 index 7d59dce2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-male.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-non-binary.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-non-binary.svg deleted file mode 100644 index b615c08f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-non-binary.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-transgender.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-transgender.svg deleted file mode 100644 index 33f3b5f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gender-transgender.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gentoo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gentoo.svg deleted file mode 100644 index 690162bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gentoo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-double-tap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-double-tap.svg deleted file mode 100644 index 474b2762..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-double-tap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-pinch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-pinch.svg deleted file mode 100644 index 7470a297..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-pinch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-spread.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-spread.svg deleted file mode 100644 index 227f8085..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-spread.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-down.svg deleted file mode 100644 index 3fd4a212..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-horizontal.svg deleted file mode 100644 index 32c6c2ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-left.svg deleted file mode 100644 index c0074389..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-right.svg deleted file mode 100644 index 33b767db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-up.svg deleted file mode 100644 index 04e129b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-vertical.svg deleted file mode 100644 index db99aaf7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe.svg deleted file mode 100644 index 6aec8088..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-swipe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-box.svg deleted file mode 100644 index 96f61d54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-button.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-button.svg deleted file mode 100644 index 15615f1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-button.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-hold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-hold.svg deleted file mode 100644 index 9fbf783d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap-hold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap.svg deleted file mode 100644 index 3bf7a18f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-tap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-two-double-tap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-two-double-tap.svg deleted file mode 100644 index 128c2c9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-two-double-tap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-two-tap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-two-tap.svg deleted file mode 100644 index cd5a5272..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture-two-tap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture.svg deleted file mode 100644 index 6fb3fcca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gesture.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-off-outline.svg deleted file mode 100644 index 2f680cc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-off.svg deleted file mode 100644 index 5fc83770..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-outline.svg deleted file mode 100644 index 237dac72..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost.svg deleted file mode 100644 index e5b23f50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ghost.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-off-outline.svg deleted file mode 100644 index 78b0e301..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-off.svg deleted file mode 100644 index 07f58512..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-open-outline.svg deleted file mode 100644 index 1843e9aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-open.svg deleted file mode 100644 index 127c3eb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-outline.svg deleted file mode 100644 index 8c987d5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift.svg deleted file mode 100644 index 002677fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gift.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/git.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/git.svg deleted file mode 100644 index e4d5f6ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/git.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/github.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/github.svg deleted file mode 100644 index d0dae77f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/github.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gitlab.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gitlab.svg deleted file mode 100644 index 6782387e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gitlab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-cocktail-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-cocktail-off.svg deleted file mode 100644 index 7ffb975d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-cocktail-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-cocktail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-cocktail.svg deleted file mode 100644 index 144bc6fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-cocktail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-flute.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-flute.svg deleted file mode 100644 index 8bafd375..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-flute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-fragile.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-fragile.svg deleted file mode 100644 index 36d25a19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-fragile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-off.svg deleted file mode 100644 index 7baed22a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-variant-off.svg deleted file mode 100644 index 872edef0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-variant.svg deleted file mode 100644 index 824a46c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug.svg deleted file mode 100644 index bda9e5fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-mug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-pint-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-pint-outline.svg deleted file mode 100644 index 9384abac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-pint-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-stange.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-stange.svg deleted file mode 100644 index 7ff79c6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-stange.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-tulip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-tulip.svg deleted file mode 100644 index 4c077917..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-tulip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-wine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-wine.svg deleted file mode 100644 index 812bff7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glass-wine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glasses.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glasses.svg deleted file mode 100644 index c985bd31..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/glasses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-light-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-light-outline.svg deleted file mode 100644 index 59cb9553..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-light-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-light.svg deleted file mode 100644 index c1b6a1ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-model.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-model.svg deleted file mode 100644 index ab56ff94..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/globe-model.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gmail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gmail.svg deleted file mode 100644 index 6e5c5ce5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gmail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gnome.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gnome.svg deleted file mode 100644 index ac8e0a66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gnome.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/go-kart-track.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/go-kart-track.svg deleted file mode 100644 index a8b51821..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/go-kart-track.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/go-kart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/go-kart.svg deleted file mode 100644 index 74e0abd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/go-kart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gog.svg deleted file mode 100644 index 52b2d401..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gold.svg deleted file mode 100644 index caff146d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf-cart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf-cart.svg deleted file mode 100644 index b69e3460..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf-cart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf-tee.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf-tee.svg deleted file mode 100644 index 29025d47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf-tee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf.svg deleted file mode 100644 index f190b9f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/golf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gondola.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gondola.svg deleted file mode 100644 index 8089d9d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gondola.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/goodreads.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/goodreads.svg deleted file mode 100644 index 3e7ceb1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/goodreads.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-ads.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-ads.svg deleted file mode 100644 index 74a303fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-ads.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-analytics.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-analytics.svg deleted file mode 100644 index a9f309e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-analytics.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-assistant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-assistant.svg deleted file mode 100644 index c5b0c2ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-assistant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-cardboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-cardboard.svg deleted file mode 100644 index d711d939..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-cardboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-chrome.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-chrome.svg deleted file mode 100644 index 712075d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-chrome.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-communities.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-communities.svg deleted file mode 100644 index 55d2f410..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-communities.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-extended.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-extended.svg deleted file mode 100644 index 40baf151..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-extended.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-group.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-group.svg deleted file mode 100644 index 51188f2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles-group.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles.svg deleted file mode 100644 index c3c64046..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-circles.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-classroom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-classroom.svg deleted file mode 100644 index 79f3eec3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-classroom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-cloud.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-cloud.svg deleted file mode 100644 index 8290e546..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-cloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-downasaur.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-downasaur.svg deleted file mode 100644 index 873e112a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-downasaur.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-drive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-drive.svg deleted file mode 100644 index 9ad90484..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-drive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-earth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-earth.svg deleted file mode 100644 index 140ecd31..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-earth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-fit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-fit.svg deleted file mode 100644 index f924fa97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-fit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-glass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-glass.svg deleted file mode 100644 index 11d23854..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-glass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-hangouts.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-hangouts.svg deleted file mode 100644 index 6af05799..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-hangouts.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-keep.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-keep.svg deleted file mode 100644 index 3214281e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-keep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-lens.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-lens.svg deleted file mode 100644 index e61a2608..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-lens.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-maps.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-maps.svg deleted file mode 100644 index 1a5680fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-maps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-my-business.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-my-business.svg deleted file mode 100644 index 8f82beba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-my-business.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-nearby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-nearby.svg deleted file mode 100644 index 9d3984fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-nearby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-play.svg deleted file mode 100644 index c48bcc49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-plus.svg deleted file mode 100644 index 6796cb71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-podcast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-podcast.svg deleted file mode 100644 index 1223ff5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-podcast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-spreadsheet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-spreadsheet.svg deleted file mode 100644 index 75444135..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-spreadsheet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-street-view.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-street-view.svg deleted file mode 100644 index 4f0b54a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-street-view.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-translate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-translate.svg deleted file mode 100644 index bad2e7d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google-translate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google.svg deleted file mode 100644 index ac5f6d32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/google.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gradient-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gradient-horizontal.svg deleted file mode 100644 index 3cb915fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gradient-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gradient-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gradient-vertical.svg deleted file mode 100644 index 1056e7c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gradient-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grain.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grain.svg deleted file mode 100644 index 719528ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graph-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graph-outline.svg deleted file mode 100644 index 56cbd556..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graph-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graph.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graph.svg deleted file mode 100644 index d337ebd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graphql.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graphql.svg deleted file mode 100644 index ff0e804d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/graphql.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grass.svg deleted file mode 100644 index bf1e4db1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grave-stone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grave-stone.svg deleted file mode 100644 index ea466898..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grave-stone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grease-pencil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grease-pencil.svg deleted file mode 100644 index 327c44fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grease-pencil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greater-than-or-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greater-than-or-equal.svg deleted file mode 100644 index 40b51bf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greater-than-or-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greater-than.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greater-than.svg deleted file mode 100644 index eb2ed678..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greater-than.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greenhouse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greenhouse.svg deleted file mode 100644 index ed1e5e18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/greenhouse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid-large.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid-large.svg deleted file mode 100644 index 23204771..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid-large.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid-off.svg deleted file mode 100644 index 94fa8582..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid.svg deleted file mode 100644 index f3f06e73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grill-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grill-outline.svg deleted file mode 100644 index ab316723..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grill-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grill.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grill.svg deleted file mode 100644 index b07603f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/grill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/group.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/group.svg deleted file mode 100644 index 79dd3eff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/group.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-acoustic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-acoustic.svg deleted file mode 100644 index 686c69d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-acoustic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-electric.svg deleted file mode 100644 index fb309cdb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-pick-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-pick-outline.svg deleted file mode 100644 index 4a35d08b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-pick-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-pick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-pick.svg deleted file mode 100644 index baa59c4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guitar-pick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guy-fawkes-mask.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guy-fawkes-mask.svg deleted file mode 100644 index d3909a57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/guy-fawkes-mask.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gymnastics.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gymnastics.svg deleted file mode 100644 index 67325504..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/gymnastics.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hail.svg deleted file mode 100644 index cf35d84d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hair-dryer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hair-dryer-outline.svg deleted file mode 100644 index e3429110..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hair-dryer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hair-dryer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hair-dryer.svg deleted file mode 100644 index 9c568084..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hair-dryer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/halloween.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/halloween.svg deleted file mode 100644 index 45359faf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/halloween.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-check.svg deleted file mode 100644 index e1c40e11..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-minus.svg deleted file mode 100644 index 04dc811f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-off.svg deleted file mode 100644 index 7842a130..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-plus.svg deleted file mode 100644 index bb2b3e17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-remove.svg deleted file mode 100644 index 3de3dc0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger.svg deleted file mode 100644 index c7444f34..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hamburger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-screwdriver.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-screwdriver.svg deleted file mode 100644 index 0e315575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-screwdriver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-sickle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-sickle.svg deleted file mode 100644 index 53010dc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-sickle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-wrench.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-wrench.svg deleted file mode 100644 index 1b859b8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer-wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer.svg deleted file mode 100644 index 29ebd785..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hammer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-off-outline.svg deleted file mode 100644 index d5c2f456..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-off.svg deleted file mode 100644 index b7e845af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-outline.svg deleted file mode 100644 index 6297b0c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left.svg deleted file mode 100644 index 2ad1e722..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-off-outline.svg deleted file mode 100644 index a95f8290..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-off.svg deleted file mode 100644 index f1fbd746..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-outline.svg deleted file mode 100644 index 0a66210c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right.svg deleted file mode 100644 index 9e03e288..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-back-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-clap-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-clap-off.svg deleted file mode 100644 index 5959ecd8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-clap-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-clap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-clap.svg deleted file mode 100644 index c4c6a52d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-clap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-coin-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-coin-outline.svg deleted file mode 100644 index 57011ea6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-coin-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-coin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-coin.svg deleted file mode 100644 index adfd4a41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-coin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-cycle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-cycle.svg deleted file mode 100644 index 25de60f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-cycle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-extended-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-extended-outline.svg deleted file mode 100644 index f0744825..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-extended-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-extended.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-extended.svg deleted file mode 100644 index 0de1e288..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-extended.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-left-outline.svg deleted file mode 100644 index c13eff0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-left.svg deleted file mode 100644 index a3c0c8a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-right-outline.svg deleted file mode 100644 index 6a7663c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-right.svg deleted file mode 100644 index d0ca40db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-front-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-heart-outline.svg deleted file mode 100644 index f3b3542b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-heart.svg deleted file mode 100644 index be600bfb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-okay.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-okay.svg deleted file mode 100644 index 342ee5bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-okay.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-peace-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-peace-variant.svg deleted file mode 100644 index d4d7d01d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-peace-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-peace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-peace.svg deleted file mode 100644 index f3abc231..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-peace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-down.svg deleted file mode 100644 index e062b97c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-left.svg deleted file mode 100644 index 6585b142..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-right.svg deleted file mode 100644 index 9f3d3c4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-up.svg deleted file mode 100644 index fd7148c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-pointing-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-saw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-saw.svg deleted file mode 100644 index fc5b7d4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-saw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wash-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wash-outline.svg deleted file mode 100644 index d91233f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wash-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wash.svg deleted file mode 100644 index 89312aa7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-water.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-water.svg deleted file mode 100644 index 546d03a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-water.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wave-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wave-outline.svg deleted file mode 100644 index c96e4d35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wave-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wave.svg deleted file mode 100644 index 55afddc8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hand-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handball.svg deleted file mode 100644 index fff8c5e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handcuffs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handcuffs.svg deleted file mode 100644 index c3ee8181..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handcuffs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hands-pray.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hands-pray.svg deleted file mode 100644 index 4da23e00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hands-pray.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handshake-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handshake-outline.svg deleted file mode 100644 index 42d2a5f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handshake-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handshake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handshake.svg deleted file mode 100644 index 71b94774..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/handshake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hanger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hanger.svg deleted file mode 100644 index 5e58ff2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hanger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hard-hat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hard-hat.svg deleted file mode 100644 index 3b9bc051..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hard-hat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk-plus.svg deleted file mode 100644 index eb1e66c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk-remove.svg deleted file mode 100644 index 17649e12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk.svg deleted file mode 100644 index 1bcb2e13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/harddisk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hat-fedora.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hat-fedora.svg deleted file mode 100644 index 246ac416..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hat-fedora.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hazard-lights.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hazard-lights.svg deleted file mode 100644 index 3b4c9670..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hazard-lights.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdmi-port.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdmi-port.svg deleted file mode 100644 index 3ffc99d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdmi-port.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdr-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdr-off.svg deleted file mode 100644 index cc8610ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdr-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdr.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdr.svg deleted file mode 100644 index a47e81ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hdr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-alert-outline.svg deleted file mode 100644 index 3f965953..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-alert.svg deleted file mode 100644 index b0908145..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-check-outline.svg deleted file mode 100644 index e1152bdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-check.svg deleted file mode 100644 index 6ae3d602..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-cog-outline.svg deleted file mode 100644 index d95db780..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-cog.svg deleted file mode 100644 index 500c13e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-dots-horizontal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-dots-horizontal-outline.svg deleted file mode 100644 index 18b676f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-dots-horizontal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-dots-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-dots-horizontal.svg deleted file mode 100644 index fffd27d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-dots-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-flash-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-flash-outline.svg deleted file mode 100644 index 748a0566..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-flash-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-flash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-flash.svg deleted file mode 100644 index 2297f350..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-flash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-heart-outline.svg deleted file mode 100644 index a05cac15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-heart.svg deleted file mode 100644 index 82f409bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-lightbulb-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-lightbulb-outline.svg deleted file mode 100644 index 46692b5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-lightbulb-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-lightbulb.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-lightbulb.svg deleted file mode 100644 index ff05530c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-lightbulb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-minus-outline.svg deleted file mode 100644 index 503a2445..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-minus.svg deleted file mode 100644 index 5d429aee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-outline.svg deleted file mode 100644 index c841dd65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-plus-outline.svg deleted file mode 100644 index d1eb8496..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-plus.svg deleted file mode 100644 index aa1543ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-question-outline.svg deleted file mode 100644 index fea6a17a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-question.svg deleted file mode 100644 index 6dc37966..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-remove-outline.svg deleted file mode 100644 index 3441b762..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-remove.svg deleted file mode 100644 index 44fea68f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-snowflake-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-snowflake-outline.svg deleted file mode 100644 index 9829b098..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-snowflake-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-snowflake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-snowflake.svg deleted file mode 100644 index 6363e8a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-snowflake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-sync-outline.svg deleted file mode 100644 index 2539e42b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-sync.svg deleted file mode 100644 index 99f5c2db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head.svg deleted file mode 100644 index a820c484..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/head.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-bluetooth.svg deleted file mode 100644 index b04f457d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-box.svg deleted file mode 100644 index 590a8795..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-off.svg deleted file mode 100644 index 6dc0aade..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-settings.svg deleted file mode 100644 index e23ee697..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones.svg deleted file mode 100644 index cb1a62f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headphones.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset-dock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset-dock.svg deleted file mode 100644 index 224c25eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset-dock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset-off.svg deleted file mode 100644 index 3d44131b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset.svg deleted file mode 100644 index 957984bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/headset.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-box-outline.svg deleted file mode 100644 index b89e4850..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-box.svg deleted file mode 100644 index 08ff45b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-broken-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-broken-outline.svg deleted file mode 100644 index 2bbdce14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-broken-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-broken.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-broken.svg deleted file mode 100644 index 30324c26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-broken.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-circle-outline.svg deleted file mode 100644 index c58c3d04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-circle.svg deleted file mode 100644 index 88b23184..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-cog-outline.svg deleted file mode 100644 index f2d53cdb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-cog.svg deleted file mode 100644 index cb305e5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-flash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-flash.svg deleted file mode 100644 index 811945c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-flash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half-full.svg deleted file mode 100644 index eee18204..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half-outline.svg deleted file mode 100644 index 79b7ddec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half.svg deleted file mode 100644 index f78e7900..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-minus-outline.svg deleted file mode 100644 index 8fc249cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-minus.svg deleted file mode 100644 index bfbc7817..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-multiple-outline.svg deleted file mode 100644 index a66efdd4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-multiple.svg deleted file mode 100644 index d8740243..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-off-outline.svg deleted file mode 100644 index c3b3f7e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-off.svg deleted file mode 100644 index ba5ecd7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-outline.svg deleted file mode 100644 index 91475fdb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-plus-outline.svg deleted file mode 100644 index 24f0558e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-plus.svg deleted file mode 100644 index 5a30ad83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-pulse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-pulse.svg deleted file mode 100644 index 5953e95b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-pulse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-remove-outline.svg deleted file mode 100644 index d2d45954..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-remove.svg deleted file mode 100644 index e0ea10a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-settings-outline.svg deleted file mode 100644 index 411aa0b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-settings.svg deleted file mode 100644 index bc51d7e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart.svg deleted file mode 100644 index 551a3572..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-pump-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-pump-outline.svg deleted file mode 100644 index 2a656862..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-pump-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-pump.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-pump.svg deleted file mode 100644 index 2084f180..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-pump.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-wave.svg deleted file mode 100644 index c4534bda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heat-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heating-coil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heating-coil.svg deleted file mode 100644 index c467acae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/heating-coil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/helicopter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/helicopter.svg deleted file mode 100644 index 66e58001..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/helicopter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-box.svg deleted file mode 100644 index 857b6a39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-circle-outline.svg deleted file mode 100644 index e01897b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-circle.svg deleted file mode 100644 index 7aa4180b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-network-outline.svg deleted file mode 100644 index 8fe86c1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-network.svg deleted file mode 100644 index 1faa7f9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-rhombus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-rhombus-outline.svg deleted file mode 100644 index da94d67a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-rhombus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-rhombus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-rhombus.svg deleted file mode 100644 index 6a6002b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help-rhombus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help.svg deleted file mode 100644 index ce916895..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/help.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexadecimal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexadecimal.svg deleted file mode 100644 index c8ad865a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexadecimal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-multiple-outline.svg deleted file mode 100644 index 63e83344..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-multiple.svg deleted file mode 100644 index 2bb5cead..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-outline.svg deleted file mode 100644 index 0ffe8575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-1.svg deleted file mode 100644 index 37d9bdae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-2.svg deleted file mode 100644 index 8a1fc3f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-3.svg deleted file mode 100644 index 5075ef38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-4.svg deleted file mode 100644 index 01fff711..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-5.svg deleted file mode 100644 index 7feb6f95..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-6.svg deleted file mode 100644 index 77172a50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon-slice-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon.svg deleted file mode 100644 index 58307205..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagram-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagram-outline.svg deleted file mode 100644 index 95e4bf2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagram-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagram.svg deleted file mode 100644 index 8de35c28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hexagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/high-definition-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/high-definition-box.svg deleted file mode 100644 index 2205ebcc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/high-definition-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/high-definition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/high-definition.svg deleted file mode 100644 index 6e3c7c03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/high-definition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/highway.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/highway.svg deleted file mode 100644 index 6809560c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/highway.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hiking.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hiking.svg deleted file mode 100644 index c387a87b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hiking.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/history.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/history.svg deleted file mode 100644 index 675288a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/history.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hockey-puck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hockey-puck.svg deleted file mode 100644 index 0bde2632..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hockey-puck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hockey-sticks.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hockey-sticks.svg deleted file mode 100644 index b045f018..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hockey-sticks.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hololens.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hololens.svg deleted file mode 100644 index 2d8dd4ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hololens.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-account.svg deleted file mode 100644 index 60af19cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-alert-outline.svg deleted file mode 100644 index f47c8f4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-alert.svg deleted file mode 100644 index 51b54f86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-analytics.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-analytics.svg deleted file mode 100644 index e3987b87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-analytics.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-assistant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-assistant.svg deleted file mode 100644 index 00f290d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-assistant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-automation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-automation.svg deleted file mode 100644 index 3370f8f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-automation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-battery-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-battery-outline.svg deleted file mode 100644 index dec50d41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-battery-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-battery.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-battery.svg deleted file mode 100644 index c09af1b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-battery.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-circle-outline.svg deleted file mode 100644 index 0dc74773..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-circle.svg deleted file mode 100644 index 417e6dea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-city-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-city-outline.svg deleted file mode 100644 index f7d4e9d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-city-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-city.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-city.svg deleted file mode 100644 index ecfdd5c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-city.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-clock-outline.svg deleted file mode 100644 index 6ffcb8e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-clock.svg deleted file mode 100644 index cb6bbfe0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-edit-outline.svg deleted file mode 100644 index 228aa385..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-edit.svg deleted file mode 100644 index d4785961..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-export-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-export-outline.svg deleted file mode 100644 index a079b81f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-export-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-flood.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-flood.svg deleted file mode 100644 index 062e4628..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-flood.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-0.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-0.svg deleted file mode 100644 index e01ed814..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-1.svg deleted file mode 100644 index a9f8e4da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-2.svg deleted file mode 100644 index d3c2fccc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-3.svg deleted file mode 100644 index 296a5dbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-a.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-a.svg deleted file mode 100644 index 1fc93eb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-a.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-b.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-b.svg deleted file mode 100644 index a60e34f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-b.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-g.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-g.svg deleted file mode 100644 index 54e48670..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-g.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-l.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-l.svg deleted file mode 100644 index 0eca7345..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-l.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-negative-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-negative-1.svg deleted file mode 100644 index d963f405..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-floor-negative-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-minus.svg deleted file mode 100644 index 92ab500f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-plus.svg deleted file mode 100644 index cf6c9c4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-remove.svg deleted file mode 100644 index b5085bc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group.svg deleted file mode 100644 index e075c132..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-group.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-heart.svg deleted file mode 100644 index 01809a09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-import-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-import-outline.svg deleted file mode 100644 index f035ab0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-import-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightbulb-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightbulb-outline.svg deleted file mode 100644 index e9eddf84..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightbulb-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightbulb.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightbulb.svg deleted file mode 100644 index e153fc58..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightbulb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightning-bolt-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightning-bolt-outline.svg deleted file mode 100644 index bac76658..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightning-bolt-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightning-bolt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightning-bolt.svg deleted file mode 100644 index 78bf13fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lightning-bolt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lock-open.svg deleted file mode 100644 index 28c3807d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lock.svg deleted file mode 100644 index 1eafe0df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-map-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-map-marker.svg deleted file mode 100644 index 30a4df1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-map-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-minus-outline.svg deleted file mode 100644 index d61e4564..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-minus.svg deleted file mode 100644 index 71d4e491..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-modern.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-modern.svg deleted file mode 100644 index 77afc130..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-modern.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-off-outline.svg deleted file mode 100644 index ae918ce4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-off.svg deleted file mode 100644 index b3b3d35b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-outline.svg deleted file mode 100644 index a22a78aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-plus-outline.svg deleted file mode 100644 index 8452493e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-plus.svg deleted file mode 100644 index 6bfcfe9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-remove-outline.svg deleted file mode 100644 index 521b8b57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-remove.svg deleted file mode 100644 index e2d0cd85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-roof.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-roof.svg deleted file mode 100644 index 2fa92785..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-roof.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-search-outline.svg deleted file mode 100644 index 234c3042..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-search.svg deleted file mode 100644 index 0553f688..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-silo-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-silo-outline.svg deleted file mode 100644 index 431a095e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-silo-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-silo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-silo.svg deleted file mode 100644 index c2d3c853..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-silo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-switch-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-switch-outline.svg deleted file mode 100644 index fc28d7d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-switch-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-switch.svg deleted file mode 100644 index 6c6a9229..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-thermometer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-thermometer-outline.svg deleted file mode 100644 index 22f65998..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-thermometer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-thermometer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-thermometer.svg deleted file mode 100644 index b5ad3cb1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-thermometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-variant-outline.svg deleted file mode 100644 index 7667d74a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-variant.svg deleted file mode 100644 index 79bf478a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home.svg deleted file mode 100644 index 0cf7c605..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/home.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hook-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hook-off.svg deleted file mode 100644 index b731eb0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hook-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hook.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hook.svg deleted file mode 100644 index 918394e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hoop-house.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hoop-house.svg deleted file mode 100644 index dccbdaae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hoop-house.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hops.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hops.svg deleted file mode 100644 index feb3c1bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hops.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horizontal-rotate-clockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horizontal-rotate-clockwise.svg deleted file mode 100644 index bb9e9a73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horizontal-rotate-clockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horizontal-rotate-counterclockwise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horizontal-rotate-counterclockwise.svg deleted file mode 100644 index ba65b77e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horizontal-rotate-counterclockwise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-human.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-human.svg deleted file mode 100644 index 30fff94f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-human.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-variant-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-variant-fast.svg deleted file mode 100644 index a47c7a26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-variant-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-variant.svg deleted file mode 100644 index 91168ad1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse.svg deleted file mode 100644 index c72a5538..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horseshoe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horseshoe.svg deleted file mode 100644 index 9127e28a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/horseshoe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-box-outline.svg deleted file mode 100644 index 3872364d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-box.svg deleted file mode 100644 index ca8eda88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-building.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-building.svg deleted file mode 100644 index 5511e73e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-building.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-marker.svg deleted file mode 100644 index e7c934af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital.svg deleted file mode 100644 index c3f11799..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hospital.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hot-tub.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hot-tub.svg deleted file mode 100644 index 6c091d51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hot-tub.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hours-24.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hours-24.svg deleted file mode 100644 index 92308b04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hours-24.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hubspot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hubspot.svg deleted file mode 100644 index db2fc922..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hubspot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hulu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hulu.svg deleted file mode 100644 index 3c305ebe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hulu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-baby-changing-table.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-baby-changing-table.svg deleted file mode 100644 index f89cbff8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-baby-changing-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-cane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-cane.svg deleted file mode 100644 index dd1e0040..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-cane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-capacity-decrease.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-capacity-decrease.svg deleted file mode 100644 index f43720ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-capacity-decrease.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-capacity-increase.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-capacity-increase.svg deleted file mode 100644 index 316b5e3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-capacity-increase.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-child.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-child.svg deleted file mode 100644 index bbca2d48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-child.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-dolly.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-dolly.svg deleted file mode 100644 index 1f161f67..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-dolly.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-edit.svg deleted file mode 100644 index 5a6daa51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-boy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-boy.svg deleted file mode 100644 index 8d2a9e91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-boy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-dance.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-dance.svg deleted file mode 100644 index 32624f7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-dance.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-female.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-female.svg deleted file mode 100644 index dfbfeb1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-female.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-girl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-girl.svg deleted file mode 100644 index f957a838..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female-girl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female.svg deleted file mode 100644 index 6a8a5797..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-female.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting-proximity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting-proximity.svg deleted file mode 100644 index c6a67ed6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting-proximity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting-variant.svg deleted file mode 100644 index 6329ab71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting.svg deleted file mode 100644 index 8d0703fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-greeting.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-handsdown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-handsdown.svg deleted file mode 100644 index a0b3de71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-handsdown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-handsup.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-handsup.svg deleted file mode 100644 index fc8a8e3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-handsup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-board-poll.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-board-poll.svg deleted file mode 100644 index 4fd30208..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-board-poll.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-board.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-board.svg deleted file mode 100644 index 8aac5f14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-board.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-boy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-boy.svg deleted file mode 100644 index 280073e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-boy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-child.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-child.svg deleted file mode 100644 index 950641e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-child.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-female-child.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-female-child.svg deleted file mode 100644 index 0e5cbff0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-female-child.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-female.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-female.svg deleted file mode 100644 index 9f6349c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-female.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-girl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-girl.svg deleted file mode 100644 index a87c9a92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-girl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-height-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-height-variant.svg deleted file mode 100644 index f0f1b0f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-height-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-height.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-height.svg deleted file mode 100644 index 69c1ef25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-height.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-male.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-male.svg deleted file mode 100644 index 7f210cea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male-male.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male.svg deleted file mode 100644 index 3e66b539..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-male.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-non-binary.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-non-binary.svg deleted file mode 100644 index 89d8fce9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-non-binary.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-pregnant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-pregnant.svg deleted file mode 100644 index 8799cc06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-pregnant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-queue.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-queue.svg deleted file mode 100644 index a1a39504..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-queue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-scooter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-scooter.svg deleted file mode 100644 index 956705d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-scooter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-walker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-walker.svg deleted file mode 100644 index 71ae7c24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-walker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-wheelchair.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-wheelchair.svg deleted file mode 100644 index 5e333da0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-wheelchair.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-white-cane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-white-cane.svg deleted file mode 100644 index e903eb97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human-white-cane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human.svg deleted file mode 100644 index 72b0b570..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/human.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/humble-bundle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/humble-bundle.svg deleted file mode 100644 index 0721bd40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/humble-bundle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hvac-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hvac-off.svg deleted file mode 100644 index 57bc4d0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hvac-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hvac.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hvac.svg deleted file mode 100644 index c15eb530..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hvac.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydraulic-oil-level.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydraulic-oil-level.svg deleted file mode 100644 index 3b482d27..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydraulic-oil-level.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydraulic-oil-temperature.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydraulic-oil-temperature.svg deleted file mode 100644 index 3d4031a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydraulic-oil-temperature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydro-power.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydro-power.svg deleted file mode 100644 index cef607d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydro-power.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydrogen-station.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydrogen-station.svg deleted file mode 100644 index 19d6e9e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/hydrogen-station.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-cream-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-cream-off.svg deleted file mode 100644 index 53237218..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-cream-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-cream.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-cream.svg deleted file mode 100644 index a0856153..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-cream.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-pop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-pop.svg deleted file mode 100644 index 0f05638f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ice-pop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/id-card.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/id-card.svg deleted file mode 100644 index 0a24623a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/id-card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/identifier.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/identifier.svg deleted file mode 100644 index 7a531169..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/identifier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ideogram-cjk-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ideogram-cjk-variant.svg deleted file mode 100644 index 0c3904a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ideogram-cjk-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ideogram-cjk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ideogram-cjk.svg deleted file mode 100644 index b8530cd3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ideogram-cjk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-album.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-album.svg deleted file mode 100644 index 4755e13e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-album.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-area-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-area-close.svg deleted file mode 100644 index 4b14c330..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-area-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-area.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-area.svg deleted file mode 100644 index efecae08..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-area.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-auto-adjust.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-auto-adjust.svg deleted file mode 100644 index 820b74f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-auto-adjust.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-broken-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-broken-variant.svg deleted file mode 100644 index e2f41397..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-broken-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-broken.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-broken.svg deleted file mode 100644 index 83253283..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-broken.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-check-outline.svg deleted file mode 100644 index 450ae539..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-check.svg deleted file mode 100644 index 64994994..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-edit-outline.svg deleted file mode 100644 index 60cd4a3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-edit.svg deleted file mode 100644 index d97a27a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-black-white.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-black-white.svg deleted file mode 100644 index 72c9d779..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-black-white.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-strong-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-strong-outline.svg deleted file mode 100644 index a1222207..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-strong-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-strong.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-strong.svg deleted file mode 100644 index f211584d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-strong.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-weak.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-weak.svg deleted file mode 100644 index 0d382b9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus-weak.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus.svg deleted file mode 100644 index 1642ae5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-center-focus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-drama.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-drama.svg deleted file mode 100644 index ba53215b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-drama.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-frames.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-frames.svg deleted file mode 100644 index 72979550..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-frames.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-hdr.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-hdr.svg deleted file mode 100644 index fde037f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-hdr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-none.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-none.svg deleted file mode 100644 index 41f5a27f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-none.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-tilt-shift.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-tilt-shift.svg deleted file mode 100644 index 45dca97b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-tilt-shift.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-vintage.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-vintage.svg deleted file mode 100644 index 25c069e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-filter-vintage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-frame.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-frame.svg deleted file mode 100644 index 27f4ffa1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-frame.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-lock-outline.svg deleted file mode 100644 index f996090c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-lock.svg deleted file mode 100644 index 49e51718..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-marker-outline.svg deleted file mode 100644 index f42c8a06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-marker.svg deleted file mode 100644 index 4069c202..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-minus-outline.svg deleted file mode 100644 index e8162706..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-minus.svg deleted file mode 100644 index 4a1ad234..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-move.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-move.svg deleted file mode 100644 index 75c80c81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-move.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-multiple-outline.svg deleted file mode 100644 index 8c7414a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-multiple.svg deleted file mode 100644 index d56ce38d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-off-outline.svg deleted file mode 100644 index 86c769d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-off.svg deleted file mode 100644 index 55ffa10e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-outline.svg deleted file mode 100644 index bb9ef595..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-plus-outline.svg deleted file mode 100644 index c4f9f235..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-plus.svg deleted file mode 100644 index 2044317c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-refresh-outline.svg deleted file mode 100644 index e6dbd3bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-refresh.svg deleted file mode 100644 index 04e65ec6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-remove-outline.svg deleted file mode 100644 index e2db107e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-remove.svg deleted file mode 100644 index 6852d530..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-search-outline.svg deleted file mode 100644 index 5a0d582e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-search.svg deleted file mode 100644 index 246674e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-actual.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-actual.svg deleted file mode 100644 index ca92d1da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-actual.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-large.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-large.svg deleted file mode 100644 index c87d6dd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-large.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-small.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-small.svg deleted file mode 100644 index 598ce4c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-size-select-small.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-sync-outline.svg deleted file mode 100644 index 57aea5a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-sync.svg deleted file mode 100644 index 971942f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-text.svg deleted file mode 100644 index 5df5fba5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image.svg deleted file mode 100644 index c3290a9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/import.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/import.svg deleted file mode 100644 index 5457d3ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-down-outline.svg deleted file mode 100644 index 7cf1f3f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-down.svg deleted file mode 100644 index fdedfbe7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-up-outline.svg deleted file mode 100644 index 4ccc45d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-up.svg deleted file mode 100644 index 77788fef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-full-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-full-outline.svg deleted file mode 100644 index e051124c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-full-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-full.svg deleted file mode 100644 index 93adfda0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-multiple-outline.svg deleted file mode 100644 index 4cffcfbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-multiple.svg deleted file mode 100644 index 2dbc5027..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-outline.svg deleted file mode 100644 index 5a87f953..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-remove-outline.svg deleted file mode 100644 index 03ca3361..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-remove.svg deleted file mode 100644 index 1557d9da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox.svg deleted file mode 100644 index 27f4eacf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/inbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-circle-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-circle-off.svg deleted file mode 100644 index 4ea001ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-circle-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-circle.svg deleted file mode 100644 index 2b862f36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-off.svg deleted file mode 100644 index ef9e8d9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito.svg deleted file mode 100644 index c1e9a6d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/incognito.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/induction.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/induction.svg deleted file mode 100644 index 8a442f56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/induction.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/infinity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/infinity.svg deleted file mode 100644 index 6f6431ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/infinity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-off-outline.svg deleted file mode 100644 index 086faafa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-off.svg deleted file mode 100644 index ed04e76c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-outline.svg deleted file mode 100644 index 5b1336f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-variant.svg deleted file mode 100644 index 5b277934..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information.svg deleted file mode 100644 index 89ce3242..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/information.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/instagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/instagram.svg deleted file mode 100644 index 06be2bbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/instagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/instrument-triangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/instrument-triangle.svg deleted file mode 100644 index ff57ac0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/instrument-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/integrated-circuit-chip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/integrated-circuit-chip.svg deleted file mode 100644 index a4fb6e57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/integrated-circuit-chip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/invert-colors-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/invert-colors-off.svg deleted file mode 100644 index ec2bb55d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/invert-colors-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/invert-colors.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/invert-colors.svg deleted file mode 100644 index ea0f81cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/invert-colors.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iobroker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iobroker.svg deleted file mode 100644 index ca872198..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iobroker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-network-outline.svg deleted file mode 100644 index 57149cc5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-network.svg deleted file mode 100644 index d0f5e165..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-outline.svg deleted file mode 100644 index 6191d853..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip.svg deleted file mode 100644 index 96113d5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ipod.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ipod.svg deleted file mode 100644 index c94aba5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ipod.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron-board.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron-board.svg deleted file mode 100644 index 5e6a4889..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron-board.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron-outline.svg deleted file mode 100644 index 2a7ead2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron.svg deleted file mode 100644 index e0960f79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iron.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/island.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/island.svg deleted file mode 100644 index ac6cc09f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/island.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iv-bag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iv-bag.svg deleted file mode 100644 index f5b6afab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/iv-bag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jabber.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jabber.svg deleted file mode 100644 index 7250ec05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jabber.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jeepney.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jeepney.svg deleted file mode 100644 index 2ab42fd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jeepney.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jellyfish-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jellyfish-outline.svg deleted file mode 100644 index 3f123ddf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jellyfish-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jellyfish.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jellyfish.svg deleted file mode 100644 index 4f0337f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jellyfish.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jira.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jira.svg deleted file mode 100644 index e314a4a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jira.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jquery.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jquery.svg deleted file mode 100644 index 2c9914ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jquery.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jsfiddle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jsfiddle.svg deleted file mode 100644 index 2655970e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jsfiddle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jump-rope.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jump-rope.svg deleted file mode 100644 index 691d58ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/jump-rope.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kabaddi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kabaddi.svg deleted file mode 100644 index 78a08b28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kabaddi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kangaroo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kangaroo.svg deleted file mode 100644 index ae3e5c15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kangaroo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/karate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/karate.svg deleted file mode 100644 index 79f16852..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/karate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kayaking.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kayaking.svg deleted file mode 100644 index a818ba26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kayaking.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keg.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keg.svg deleted file mode 100644 index 1cca3034..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-alert-outline.svg deleted file mode 100644 index 7a82ac48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-alert.svg deleted file mode 100644 index ddc7ffe4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-off-outline.svg deleted file mode 100644 index 2d2cd260..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-off.svg deleted file mode 100644 index 67d4bde6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-outline.svg deleted file mode 100644 index 8a658a81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-pour-over.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-pour-over.svg deleted file mode 100644 index 59794b5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-pour-over.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-steam-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-steam-outline.svg deleted file mode 100644 index 87df4b6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-steam-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-steam.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-steam.svg deleted file mode 100644 index dbdfdd73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle-steam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle.svg deleted file mode 100644 index 02e2ea09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettlebell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettlebell.svg deleted file mode 100644 index 76d2aeae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kettlebell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-alert-outline.svg deleted file mode 100644 index 714dcc09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-alert.svg deleted file mode 100644 index 10bb09b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-arrow-right.svg deleted file mode 100644 index 2fd51f25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-chain-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-chain-variant.svg deleted file mode 100644 index f5b2d9bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-chain-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-chain.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-chain.svg deleted file mode 100644 index 094e6e4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-chain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-change.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-change.svg deleted file mode 100644 index cc561093..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-change.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-link.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-link.svg deleted file mode 100644 index e90456e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-minus.svg deleted file mode 100644 index a71875f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-outline.svg deleted file mode 100644 index 3909e485..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-plus.svg deleted file mode 100644 index 25d7ed75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-remove.svg deleted file mode 100644 index ac253ff3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-star.svg deleted file mode 100644 index 4a42d470..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-variant.svg deleted file mode 100644 index 251604fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-wireless.svg deleted file mode 100644 index 1646cf2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key.svg deleted file mode 100644 index 98415965..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-backspace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-backspace.svg deleted file mode 100644 index 5f0ae9fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-backspace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-caps.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-caps.svg deleted file mode 100644 index 3bfcea7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-caps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-close.svg deleted file mode 100644 index 3248ec74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-esc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-esc.svg deleted file mode 100644 index 182d3f2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-esc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f1.svg deleted file mode 100644 index 8838e458..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f10.svg deleted file mode 100644 index 1e0ac1c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f11.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f11.svg deleted file mode 100644 index 99ac1719..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f11.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f12.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f12.svg deleted file mode 100644 index 5dd1233c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f12.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f2.svg deleted file mode 100644 index b58286b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f3.svg deleted file mode 100644 index 261be50f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f4.svg deleted file mode 100644 index fed2d5fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f5.svg deleted file mode 100644 index 344fd22c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f6.svg deleted file mode 100644 index 472034c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f7.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f7.svg deleted file mode 100644 index 468c3b44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f8.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f8.svg deleted file mode 100644 index c658397a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f9.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f9.svg deleted file mode 100644 index 724498ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-f9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-off-outline.svg deleted file mode 100644 index fbd92a51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-off.svg deleted file mode 100644 index 4b9bc650..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-outline.svg deleted file mode 100644 index 9baeac24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-return.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-return.svg deleted file mode 100644 index 28dfb957..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-return.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-settings-outline.svg deleted file mode 100644 index ea54aeb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-settings.svg deleted file mode 100644 index 5b904ffd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-space.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-space.svg deleted file mode 100644 index 99177570..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-space.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-tab-reverse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-tab-reverse.svg deleted file mode 100644 index 355801a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-tab-reverse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-tab.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-tab.svg deleted file mode 100644 index 4b7876f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-variant.svg deleted file mode 100644 index 94ac9756..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard.svg deleted file mode 100644 index 18a8cc62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/keyboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/khanda.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/khanda.svg deleted file mode 100644 index 02be010c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/khanda.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kickstarter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kickstarter.svg deleted file mode 100644 index 50ae40de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kickstarter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kite-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kite-outline.svg deleted file mode 100644 index 8eba5081..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kite-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kite.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kite.svg deleted file mode 100644 index d3f734e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kitesurfing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kitesurfing.svg deleted file mode 100644 index 98a56ddb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kitesurfing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/klingon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/klingon.svg deleted file mode 100644 index b9e97e69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/klingon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knife-military.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knife-military.svg deleted file mode 100644 index 422d0335..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knife-military.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knife.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knife.svg deleted file mode 100644 index 2a503714..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knife.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knob.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knob.svg deleted file mode 100644 index 3afbdabe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/knob.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/koala.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/koala.svg deleted file mode 100644 index ced317c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/koala.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kodi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kodi.svg deleted file mode 100644 index da5fc2f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kodi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kubernetes.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kubernetes.svg deleted file mode 100644 index 6e4a4dac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/kubernetes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-multiple-outline.svg deleted file mode 100644 index 2db7741c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-multiple.svg deleted file mode 100644 index c30f602e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-off-outline.svg deleted file mode 100644 index 2eeb7820..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-off.svg deleted file mode 100644 index 6e70e8f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-outline.svg deleted file mode 100644 index ad9b7f2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-percent-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-percent-outline.svg deleted file mode 100644 index 268fe8c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-percent-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-percent.svg deleted file mode 100644 index fcff951e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-variant-outline.svg deleted file mode 100644 index cac877b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-variant.svg deleted file mode 100644 index dc697a40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label.svg deleted file mode 100644 index 3f6eebb4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/label.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ladder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ladder.svg deleted file mode 100644 index 3d2c22b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ladder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ladybug.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ladybug.svg deleted file mode 100644 index ec4487b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ladybug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lambda.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lambda.svg deleted file mode 100644 index c4ead004..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lambda.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamp-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamp-outline.svg deleted file mode 100644 index 2716e369..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamp-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamp.svg deleted file mode 100644 index 08ed158d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamps-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamps-outline.svg deleted file mode 100644 index 307729f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamps-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamps.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamps.svg deleted file mode 100644 index 17a642df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lamps.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-check.svg deleted file mode 100644 index 047630ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-connect.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-connect.svg deleted file mode 100644 index 1121de04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-connect.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-disconnect.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-disconnect.svg deleted file mode 100644 index 4ca8e1c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-disconnect.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-pending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-pending.svg deleted file mode 100644 index 8693ddbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan-pending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan.svg deleted file mode 100644 index 463e8656..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-fields.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-fields.svg deleted file mode 100644 index a51a2191..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-fields.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots-circle-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots-circle-variant.svg deleted file mode 100644 index d6b998d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots-circle-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots-circle.svg deleted file mode 100644 index 7133c032..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots.svg deleted file mode 100644 index f3fcd717..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-plots.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-rows-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-rows-horizontal.svg deleted file mode 100644 index 1b349a2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-rows-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-rows-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-rows-vertical.svg deleted file mode 100644 index fef33bd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/land-rows-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/landslide-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/landslide-outline.svg deleted file mode 100644 index 75d4eff8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/landslide-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/landslide.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/landslide.svg deleted file mode 100644 index 3224977e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/landslide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-c.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-c.svg deleted file mode 100644 index 4a94a96b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-c.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-cpp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-cpp.svg deleted file mode 100644 index 38f8599b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-cpp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-csharp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-csharp.svg deleted file mode 100644 index 084b9825..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-csharp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-css3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-css3.svg deleted file mode 100644 index 2a05efa0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-css3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-fortran.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-fortran.svg deleted file mode 100644 index 2c6c840f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-fortran.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-go.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-go.svg deleted file mode 100644 index 0cd40030..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-go.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-haskell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-haskell.svg deleted file mode 100644 index e1cf63cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-haskell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-html5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-html5.svg deleted file mode 100644 index 1d6e6f5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-html5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-java.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-java.svg deleted file mode 100644 index 6ea4c4f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-java.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-javascript.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-javascript.svg deleted file mode 100644 index 5f3a500c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-javascript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-kotlin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-kotlin.svg deleted file mode 100644 index 60ffd0db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-kotlin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-lua.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-lua.svg deleted file mode 100644 index 3a9fc590..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-lua.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-markdown-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-markdown-outline.svg deleted file mode 100644 index e8f2130d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-markdown-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-markdown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-markdown.svg deleted file mode 100644 index b5369ca5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-markdown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-php.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-php.svg deleted file mode 100644 index d6dfb992..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-php.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-python.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-python.svg deleted file mode 100644 index 0a4ebba1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-python.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-r.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-r.svg deleted file mode 100644 index f0e5b0c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-r.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-ruby-on-rails.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-ruby-on-rails.svg deleted file mode 100644 index 9664ac64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-ruby-on-rails.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-ruby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-ruby.svg deleted file mode 100644 index 1cf93182..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-ruby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-rust.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-rust.svg deleted file mode 100644 index 8f90d814..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-rust.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-swift.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-swift.svg deleted file mode 100644 index a33d3f21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-swift.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-typescript.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-typescript.svg deleted file mode 100644 index 758247b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-typescript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-xaml.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-xaml.svg deleted file mode 100644 index 009bc041..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/language-xaml.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop-account.svg deleted file mode 100644 index 1d54626f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop-off.svg deleted file mode 100644 index 6f78cd6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop.svg deleted file mode 100644 index 3bc0ea1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laptop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laravel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laravel.svg deleted file mode 100644 index 1a990a56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laravel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laser-pointer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laser-pointer.svg deleted file mode 100644 index a7d14599..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/laser-pointer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lasso.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lasso.svg deleted file mode 100644 index a6503700..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lasso.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lastpass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lastpass.svg deleted file mode 100644 index fa9b4f17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lastpass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/latitude.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/latitude.svg deleted file mode 100644 index 540f9f9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/latitude.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/launch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/launch.svg deleted file mode 100644 index cbe15e27..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/launch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lava-lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lava-lamp.svg deleted file mode 100644 index ab891d07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lava-lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-edit.svg deleted file mode 100644 index 7b483aa1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-minus.svg deleted file mode 100644 index 8283efaf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-off-outline.svg deleted file mode 100644 index a2502de2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-off.svg deleted file mode 100644 index 1334a3b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-outline.svg deleted file mode 100644 index 5e934d6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-plus.svg deleted file mode 100644 index e7e13ec7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-remove.svg deleted file mode 100644 index 97e19200..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-search-outline.svg deleted file mode 100644 index a0a8cffe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-search.svg deleted file mode 100644 index bbddcdf4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-triple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-triple-outline.svg deleted file mode 100644 index b22d1a2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-triple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-triple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-triple.svg deleted file mode 100644 index 14d759e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers-triple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers.svg deleted file mode 100644 index 8bfbd4fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/layers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lead-pencil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lead-pencil.svg deleted file mode 100644 index 85b107f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lead-pencil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-circle-outline.svg deleted file mode 100644 index c9d5c9bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-circle.svg deleted file mode 100644 index c7d356f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-maple-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-maple-off.svg deleted file mode 100644 index 930b5764..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-maple-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-maple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-maple.svg deleted file mode 100644 index b0d74c74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-maple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-off.svg deleted file mode 100644 index 5f9a2f48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf.svg deleted file mode 100644 index 690902b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leaf.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leak-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leak-off.svg deleted file mode 100644 index 147d716a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leak-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leak.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leak.svg deleted file mode 100644 index bf607d40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leak.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lectern.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lectern.svg deleted file mode 100644 index f2526507..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lectern.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-off.svg deleted file mode 100644 index 462fc397..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-on.svg deleted file mode 100644 index d5a2ea66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-outline.svg deleted file mode 100644 index 2a84b5cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip-variant-off.svg deleted file mode 100644 index 3e360bf4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip-variant.svg deleted file mode 100644 index 65e058d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip.svg deleted file mode 100644 index 59833d3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-strip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-off.svg deleted file mode 100644 index 0cfde246..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-on.svg deleted file mode 100644 index c03c0875..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-outline.svg deleted file mode 100644 index 1a57c523..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/led-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leek.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leek.svg deleted file mode 100644 index 2b56a3d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/leek.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/less-than-or-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/less-than-or-equal.svg deleted file mode 100644 index e7d29100..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/less-than-or-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/less-than.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/less-than.svg deleted file mode 100644 index 88915a2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/less-than.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library-outline.svg deleted file mode 100644 index 7c10e252..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library-shelves.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library-shelves.svg deleted file mode 100644 index f20d928d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library-shelves.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library.svg deleted file mode 100644 index 6ee97b74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/library.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/license.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/license.svg deleted file mode 100644 index 21ebb797..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/license.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lifebuoy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lifebuoy.svg deleted file mode 100644 index 165c932d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lifebuoy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-flood-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-flood-down.svg deleted file mode 100644 index 4b9cd6a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-flood-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-flood-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-flood-up.svg deleted file mode 100644 index c15c3a3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-flood-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-recessed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-recessed.svg deleted file mode 100644 index ec0c6035..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-recessed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-switch-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-switch-off.svg deleted file mode 100644 index 8ad4b59d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-switch-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-switch.svg deleted file mode 100644 index b1933469..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/light-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-alert-outline.svg deleted file mode 100644 index 85357555..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-alert.svg deleted file mode 100644 index 051a6a13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-auto-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-auto-outline.svg deleted file mode 100644 index b625652e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-auto-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-auto.svg deleted file mode 100644 index 0c7cf3e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-off.svg deleted file mode 100644 index 8c672fe1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-spiral-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-spiral-off.svg deleted file mode 100644 index 20cf6392..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-spiral-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-spiral.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-spiral.svg deleted file mode 100644 index 1b3d570d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl-spiral.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl.svg deleted file mode 100644 index dce74e89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-cfl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-fluorescent-tube-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-fluorescent-tube-outline.svg deleted file mode 100644 index 631f8c8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-fluorescent-tube-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-fluorescent-tube.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-fluorescent-tube.svg deleted file mode 100644 index eb4e77ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-fluorescent-tube.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-off-outline.svg deleted file mode 100644 index ea3991e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-off.svg deleted file mode 100644 index 4e706407..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-outline.svg deleted file mode 100644 index 8430543b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group.svg deleted file mode 100644 index 3ff4607f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-group.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-off-outline.svg deleted file mode 100644 index 04a647e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-off.svg deleted file mode 100644 index b4dd581a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-outline.svg deleted file mode 100644 index 283fabab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple.svg deleted file mode 100644 index 2e6b7fc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-night-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-night-outline.svg deleted file mode 100644 index 6fe50334..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-night-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-night.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-night.svg deleted file mode 100644 index 1709de92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-night.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-off-outline.svg deleted file mode 100644 index 1e622ee5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-off.svg deleted file mode 100644 index 75cf6910..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-10.svg deleted file mode 100644 index cee3a9a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-20.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-20.svg deleted file mode 100644 index 4f37c437..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-20.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-30.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-30.svg deleted file mode 100644 index 1d119c18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-30.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-40.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-40.svg deleted file mode 100644 index a45f2907..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-40.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-50.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-50.svg deleted file mode 100644 index 0dde23ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-50.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-60.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-60.svg deleted file mode 100644 index acdb7d59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-60.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-70.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-70.svg deleted file mode 100644 index cc1c1b04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-70.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-80.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-80.svg deleted file mode 100644 index bf309961..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-80.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-90.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-90.svg deleted file mode 100644 index 58f0214b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-90.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-outline.svg deleted file mode 100644 index 92a3ca7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on.svg deleted file mode 100644 index ca09da07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-outline.svg deleted file mode 100644 index 084b195a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-question-outline.svg deleted file mode 100644 index 68a40579..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-question.svg deleted file mode 100644 index f15e4d96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-spot-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-spot-off.svg deleted file mode 100644 index 2537b44e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-spot-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-spot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-spot.svg deleted file mode 100644 index 0ceb3dea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-spot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-variant-outline.svg deleted file mode 100644 index 30aa0c82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-variant.svg deleted file mode 100644 index 00b0fdbe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb.svg deleted file mode 100644 index 273f3106..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightbulb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lighthouse-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lighthouse-on.svg deleted file mode 100644 index e8814888..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lighthouse-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lighthouse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lighthouse.svg deleted file mode 100644 index eed7cc61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lighthouse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt-circle.svg deleted file mode 100644 index ae5594d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt-outline.svg deleted file mode 100644 index e4b40f48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt.svg deleted file mode 100644 index ae8e541f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lightning-bolt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/line-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/line-scan.svg deleted file mode 100644 index d5c0a622..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/line-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lingerie.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lingerie.svg deleted file mode 100644 index c979af0a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lingerie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-outline.svg deleted file mode 100644 index d16a53a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-variant-outline.svg deleted file mode 100644 index 1ab491d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-variant.svg deleted file mode 100644 index 88f7830c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box.svg deleted file mode 100644 index 30dfa762..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-lock.svg deleted file mode 100644 index 93248f8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-off.svg deleted file mode 100644 index 2a334810..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-plus.svg deleted file mode 100644 index ca94370d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-minus.svg deleted file mode 100644 index 82b81dde..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-off.svg deleted file mode 100644 index bef76a1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-plus.svg deleted file mode 100644 index 9d445a4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-remove.svg deleted file mode 100644 index 1cc9c4cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant.svg deleted file mode 100644 index 2b672700..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link.svg deleted file mode 100644 index c88a5692..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linkedin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linkedin.svg deleted file mode 100644 index bd26f42c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linkedin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linux-mint.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linux-mint.svg deleted file mode 100644 index f4632b41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linux-mint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linux.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linux.svg deleted file mode 100644 index c212557a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/linux.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lipstick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lipstick.svg deleted file mode 100644 index cd57df01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lipstick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/liquid-spot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/liquid-spot.svg deleted file mode 100644 index 00408184..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/liquid-spot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/liquor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/liquor.svg deleted file mode 100644 index 6a10583e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/liquor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-box-outline.svg deleted file mode 100644 index a898a9a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-box.svg deleted file mode 100644 index ff2b5392..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-status.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-status.svg deleted file mode 100644 index 0720991e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/list-status.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/litecoin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/litecoin.svg deleted file mode 100644 index a596aaf0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/litecoin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/loading.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/loading.svg deleted file mode 100644 index d5248c9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/loading.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/location-enter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/location-enter.svg deleted file mode 100644 index 56c56e3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/location-enter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/location-exit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/location-exit.svg deleted file mode 100644 index 0851cbb6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/location-exit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-alert-outline.svg deleted file mode 100644 index 4053e9d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-alert.svg deleted file mode 100644 index 8c17a7b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-check-outline.svg deleted file mode 100644 index 3ada4c74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-check.svg deleted file mode 100644 index 7043c3df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-clock.svg deleted file mode 100644 index 0b294a13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-minus-outline.svg deleted file mode 100644 index 2e210d85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-minus.svg deleted file mode 100644 index 9b6dc3ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-off-outline.svg deleted file mode 100644 index b82524f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-off.svg deleted file mode 100644 index afae3c49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-alert-outline.svg deleted file mode 100644 index db752eb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-alert.svg deleted file mode 100644 index 0debb621..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-check-outline.svg deleted file mode 100644 index 28e47256..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-check.svg deleted file mode 100644 index 18cc5c2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-minus-outline.svg deleted file mode 100644 index 1920b608..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-minus.svg deleted file mode 100644 index 238e1661..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-outline.svg deleted file mode 100644 index 971d3637..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-plus-outline.svg deleted file mode 100644 index 4119bdd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-plus.svg deleted file mode 100644 index 71594415..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-remove-outline.svg deleted file mode 100644 index 29539a68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-remove.svg deleted file mode 100644 index 36a7a294..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-variant-outline.svg deleted file mode 100644 index c30077f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-variant.svg deleted file mode 100644 index 85e5c9b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open.svg deleted file mode 100644 index fdc64f1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-outline.svg deleted file mode 100644 index 510e42f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-pattern.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-pattern.svg deleted file mode 100644 index 98cda804..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-pattern.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-plus-outline.svg deleted file mode 100644 index 5b15c240..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-plus.svg deleted file mode 100644 index 07666055..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-question.svg deleted file mode 100644 index 7e7712ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-remove-outline.svg deleted file mode 100644 index 5911522c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-remove.svg deleted file mode 100644 index 722f27e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-reset.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-reset.svg deleted file mode 100644 index 54d7fd79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-reset.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-smart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-smart.svg deleted file mode 100644 index 686b39a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock-smart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock.svg deleted file mode 100644 index c57e1093..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/locker-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/locker-multiple.svg deleted file mode 100644 index 901c6419..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/locker-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/locker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/locker.svg deleted file mode 100644 index e94a67f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/locker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/login-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/login-variant.svg deleted file mode 100644 index 245c9e09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/login-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/login.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/login.svg deleted file mode 100644 index 7cf59a46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/login.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/logout-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/logout-variant.svg deleted file mode 100644 index e4fa9b23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/logout-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/logout.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/logout.svg deleted file mode 100644 index 9ec11eb6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/logout.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/longitude.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/longitude.svg deleted file mode 100644 index 16c09fe6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/longitude.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/looks.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/looks.svg deleted file mode 100644 index aa36d3c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/looks.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-outline.svg deleted file mode 100644 index dc46e67b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-plus-outline.svg deleted file mode 100644 index fa7874c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-plus.svg deleted file mode 100644 index b5a38d7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion.svg deleted file mode 100644 index 9e4fc31d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lotion.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/loupe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/loupe.svg deleted file mode 100644 index c2da80fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/loupe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lumx.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lumx.svg deleted file mode 100644 index fcbfc54f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lumx.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lungs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lungs.svg deleted file mode 100644 index 10caf5de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/lungs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mace.svg deleted file mode 100644 index 2e5cdf96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magazine-pistol.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magazine-pistol.svg deleted file mode 100644 index 4da3de4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magazine-pistol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magazine-rifle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magazine-rifle.svg deleted file mode 100644 index 0d2a64e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magazine-rifle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magic-staff.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magic-staff.svg deleted file mode 100644 index da335c62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magic-staff.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnet-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnet-on.svg deleted file mode 100644 index 0968dd70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnet-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnet.svg deleted file mode 100644 index d6df72b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-close.svg deleted file mode 100644 index e5887509..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-expand.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-expand.svg deleted file mode 100644 index 42227af9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-expand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus-cursor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus-cursor.svg deleted file mode 100644 index 6f505c86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus-cursor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus-outline.svg deleted file mode 100644 index e2bfbe02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus.svg deleted file mode 100644 index df4786c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus-cursor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus-cursor.svg deleted file mode 100644 index 0c44cb57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus-cursor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus-outline.svg deleted file mode 100644 index 1bc1527a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus.svg deleted file mode 100644 index b196cb5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-remove-cursor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-remove-cursor.svg deleted file mode 100644 index 012fe5d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-remove-cursor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-remove-outline.svg deleted file mode 100644 index cef2712e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-scan.svg deleted file mode 100644 index 4616370c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify.svg deleted file mode 100644 index 45e15c5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/magnify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mail.svg deleted file mode 100644 index 9ca186ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-outline.svg deleted file mode 100644 index 627611ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-up-outline.svg deleted file mode 100644 index c60a8b14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-up.svg deleted file mode 100644 index ed8f22e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open.svg deleted file mode 100644 index 58488e79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-outline.svg deleted file mode 100644 index 2e184a24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-up-outline.svg deleted file mode 100644 index 632caebc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-up.svg deleted file mode 100644 index 63ebf6eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox.svg deleted file mode 100644 index c0984d53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mailbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/manjaro.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/manjaro.svg deleted file mode 100644 index e1733966..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/manjaro.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-check-outline.svg deleted file mode 100644 index 6fc92537..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-check.svg deleted file mode 100644 index 76633612..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-clock-outline.svg deleted file mode 100644 index 471af4a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-clock.svg deleted file mode 100644 index 6db0bca6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-legend.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-legend.svg deleted file mode 100644 index a456831c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-legend.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-account-outline.svg deleted file mode 100644 index 07b53935..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-account.svg deleted file mode 100644 index 8a002b80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-alert-outline.svg deleted file mode 100644 index 4d4bfc02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-alert.svg deleted file mode 100644 index c4c83b3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-check-outline.svg deleted file mode 100644 index 689b7234..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-check.svg deleted file mode 100644 index 1e27c392..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-circle.svg deleted file mode 100644 index e3e5c445..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-distance.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-distance.svg deleted file mode 100644 index ea5489a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-distance.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-down.svg deleted file mode 100644 index ba400398..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-left-outline.svg deleted file mode 100644 index 129a17f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-left.svg deleted file mode 100644 index 63f7bb89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-minus-outline.svg deleted file mode 100644 index b62ba1d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-minus.svg deleted file mode 100644 index 9dac157c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-multiple-outline.svg deleted file mode 100644 index af762882..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-multiple.svg deleted file mode 100644 index f8ded8ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-off-outline.svg deleted file mode 100644 index 6d0b6d97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-off.svg deleted file mode 100644 index f97b2b77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-outline.svg deleted file mode 100644 index bc889ab2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-path.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-path.svg deleted file mode 100644 index 3eef116b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-path.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-plus-outline.svg deleted file mode 100644 index ed00895d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-plus.svg deleted file mode 100644 index 2469f13f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-question-outline.svg deleted file mode 100644 index 863bcf64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-question.svg deleted file mode 100644 index 680fbee4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-radius-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-radius-outline.svg deleted file mode 100644 index f235ae5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-radius-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-radius.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-radius.svg deleted file mode 100644 index d185d946..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-radius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove-outline.svg deleted file mode 100644 index 3e79b60e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove-variant.svg deleted file mode 100644 index 4ffa7c5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove.svg deleted file mode 100644 index 386b832d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-right-outline.svg deleted file mode 100644 index 111fcf63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-right.svg deleted file mode 100644 index e73c03a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-star-outline.svg deleted file mode 100644 index e8866609..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-star.svg deleted file mode 100644 index 9546619a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-up.svg deleted file mode 100644 index 1c92b829..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker.svg deleted file mode 100644 index 79081153..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-minus.svg deleted file mode 100644 index 150cec02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-outline.svg deleted file mode 100644 index f578e610..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-plus.svg deleted file mode 100644 index d3d13f7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-search-outline.svg deleted file mode 100644 index 62638dbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-search.svg deleted file mode 100644 index b04c0c6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map.svg deleted file mode 100644 index d89267d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/map.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mapbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mapbox.svg deleted file mode 100644 index a76b802c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mapbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/margin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/margin.svg deleted file mode 100644 index 61d1a9b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/margin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker-cancel.svg deleted file mode 100644 index 04238c71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker-check.svg deleted file mode 100644 index b3a6757e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker.svg deleted file mode 100644 index 88c9a6e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mastodon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mastodon.svg deleted file mode 100644 index 859836c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mastodon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/material-design.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/material-design.svg deleted file mode 100644 index 2d4710f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/material-design.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/material-ui.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/material-ui.svg deleted file mode 100644 index c18273f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/material-ui.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-compass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-compass.svg deleted file mode 100644 index fbcb92d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-compass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-cos.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-cos.svg deleted file mode 100644 index 46013c93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-cos.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-integral-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-integral-box.svg deleted file mode 100644 index d1fd50db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-integral-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-integral.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-integral.svg deleted file mode 100644 index a6eaadc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-integral.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-log.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-log.svg deleted file mode 100644 index e2b571c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-log.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-norm-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-norm-box.svg deleted file mode 100644 index b94d479a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-norm-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-norm.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-norm.svg deleted file mode 100644 index b46ce2f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-norm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-sin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-sin.svg deleted file mode 100644 index 837748f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-sin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-tan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-tan.svg deleted file mode 100644 index 3fff65b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/math-tan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/matrix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/matrix.svg deleted file mode 100644 index 116239dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/matrix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medal-outline.svg deleted file mode 100644 index 7b4c5d8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medal.svg deleted file mode 100644 index 149e9228..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medical-bag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medical-bag.svg deleted file mode 100644 index c1b41d5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medical-bag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medical-cotton-swab.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medical-cotton-swab.svg deleted file mode 100644 index b1e83d12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medical-cotton-swab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medication-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medication-outline.svg deleted file mode 100644 index c48fabc5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medication-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medication.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medication.svg deleted file mode 100644 index 14960fd7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/medication.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meditation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meditation.svg deleted file mode 100644 index fb8c9e3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meditation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/memory.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/memory.svg deleted file mode 100644 index aae5d93b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/memory.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menorah-fire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menorah-fire.svg deleted file mode 100644 index df36b3d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menorah-fire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menorah.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menorah.svg deleted file mode 100644 index b2a172fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menorah.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-down-outline.svg deleted file mode 100644 index 6c0ec499..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-down.svg deleted file mode 100644 index 71d659f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-left-outline.svg deleted file mode 100644 index 1cb7ab9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-left.svg deleted file mode 100644 index f4fc4d61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-open.svg deleted file mode 100644 index a0c2e348..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-right-outline.svg deleted file mode 100644 index f5678e07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-right.svg deleted file mode 100644 index aa20fd63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-swap-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-swap-outline.svg deleted file mode 100644 index d19594be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-swap-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-swap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-swap.svg deleted file mode 100644 index fa6a1678..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-swap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-up-outline.svg deleted file mode 100644 index 39ad39b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-up.svg deleted file mode 100644 index 1df771a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu.svg deleted file mode 100644 index a20e0d99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/menu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/merge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/merge.svg deleted file mode 100644 index be1dbeb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/merge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-alert-outline.svg deleted file mode 100644 index 61bfb675..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-alert.svg deleted file mode 100644 index ce6eeaf3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-left-outline.svg deleted file mode 100644 index 4160c1bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-left.svg deleted file mode 100644 index a2db40b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-right-outline.svg deleted file mode 100644 index 3621b1d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-right.svg deleted file mode 100644 index 983ffb33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-badge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-badge-outline.svg deleted file mode 100644 index 748a6bc3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-badge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-badge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-badge.svg deleted file mode 100644 index 906a0e6f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bookmark-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bookmark-outline.svg deleted file mode 100644 index ae9311a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bookmark-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bookmark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bookmark.svg deleted file mode 100644 index f977f12b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bookmark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bulleted-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bulleted-off.svg deleted file mode 100644 index f23a6301..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bulleted-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bulleted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bulleted.svg deleted file mode 100644 index 53d301a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-bulleted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-check-outline.svg deleted file mode 100644 index 02ae6519..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-check.svg deleted file mode 100644 index 80221279..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-cog-outline.svg deleted file mode 100644 index d61da06c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-cog.svg deleted file mode 100644 index fb1bd752..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-draw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-draw.svg deleted file mode 100644 index 2caae19c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-draw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-fast-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-fast-outline.svg deleted file mode 100644 index 006e4f4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-fast-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-fast.svg deleted file mode 100644 index a00d4931..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-flash-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-flash-outline.svg deleted file mode 100644 index 73ff6c32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-flash-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-flash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-flash.svg deleted file mode 100644 index e3910839..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-flash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-image-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-image-outline.svg deleted file mode 100644 index 80eab1e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-image-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-image.svg deleted file mode 100644 index a2a6a094..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-lock-outline.svg deleted file mode 100644 index dbb62f9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-lock.svg deleted file mode 100644 index ed31f4f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-minus-outline.svg deleted file mode 100644 index 6a110326..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-minus.svg deleted file mode 100644 index f97182cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-off-outline.svg deleted file mode 100644 index 6f53e952..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-off.svg deleted file mode 100644 index 493f8f26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-outline.svg deleted file mode 100644 index 7e402ee5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-plus-outline.svg deleted file mode 100644 index de89f74c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-plus.svg deleted file mode 100644 index 6fc14ea4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-processing-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-processing-outline.svg deleted file mode 100644 index 66af6b80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-processing-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-processing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-processing.svg deleted file mode 100644 index d6290b79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-processing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-question-outline.svg deleted file mode 100644 index 8fa51027..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-question.svg deleted file mode 100644 index 69e9886c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-outline.svg deleted file mode 100644 index 67e0a0c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-text-outline.svg deleted file mode 100644 index 07beb986..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-text.svg deleted file mode 100644 index 70163c3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply.svg deleted file mode 100644 index bcaefabe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-reply.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-settings-outline.svg deleted file mode 100644 index cdacb619..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-settings.svg deleted file mode 100644 index 0d1154e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-star-outline.svg deleted file mode 100644 index c7230654..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-star.svg deleted file mode 100644 index e4d98ce4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-clock-outline.svg deleted file mode 100644 index 0dccf211..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-clock.svg deleted file mode 100644 index c998a097..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-fast-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-fast-outline.svg deleted file mode 100644 index 6429995e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-fast-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-fast.svg deleted file mode 100644 index f4e1ed76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-lock-outline.svg deleted file mode 100644 index 81f9331a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-lock.svg deleted file mode 100644 index 268256d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-outline.svg deleted file mode 100644 index 392d65f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text.svg deleted file mode 100644 index b8972e0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-video.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-video.svg deleted file mode 100644 index 4b61d19d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message-video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message.svg deleted file mode 100644 index 399525c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meteor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meteor.svg deleted file mode 100644 index 7a6380ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meteor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-electric-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-electric-outline.svg deleted file mode 100644 index a0e40629..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-electric-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-electric.svg deleted file mode 100644 index 442342e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-gas-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-gas-outline.svg deleted file mode 100644 index ef620a9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-gas-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-gas.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-gas.svg deleted file mode 100644 index d1d84b8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/meter-gas.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/metronome-tick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/metronome-tick.svg deleted file mode 100644 index fc5d8991..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/metronome-tick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/metronome.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/metronome.svg deleted file mode 100644 index 3e923f87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/metronome.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/micro-sd.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/micro-sd.svg deleted file mode 100644 index f03080c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/micro-sd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-message-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-message-off.svg deleted file mode 100644 index f088a254..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-message-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-message.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-message.svg deleted file mode 100644 index 528b0d40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-minus.svg deleted file mode 100644 index 6940e053..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-off.svg deleted file mode 100644 index 1a983145..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-outline.svg deleted file mode 100644 index aec11fd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-plus.svg deleted file mode 100644 index 8ec0bbfa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-question-outline.svg deleted file mode 100644 index 96ada7ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-question.svg deleted file mode 100644 index e94e4eaf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-settings.svg deleted file mode 100644 index b7bf55cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-variant-off.svg deleted file mode 100644 index 20a91c7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-variant.svg deleted file mode 100644 index b06159b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone.svg deleted file mode 100644 index d5b058aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microscope.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microscope.svg deleted file mode 100644 index c7ace3f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microscope.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-access.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-access.svg deleted file mode 100644 index 03b96652..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-access.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-azure-devops.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-azure-devops.svg deleted file mode 100644 index c9aaa3db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-azure-devops.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-azure.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-azure.svg deleted file mode 100644 index 9aafc27d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-azure.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-bing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-bing.svg deleted file mode 100644 index 602dd1fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-bing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-dynamics-365.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-dynamics-365.svg deleted file mode 100644 index 40d7ac65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-dynamics-365.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-edge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-edge.svg deleted file mode 100644 index 73d39c0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-edge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-excel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-excel.svg deleted file mode 100644 index fa1fbbeb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-excel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-internet-explorer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-internet-explorer.svg deleted file mode 100644 index 89edfa7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-internet-explorer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-office.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-office.svg deleted file mode 100644 index cc233834..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-office.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-onedrive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-onedrive.svg deleted file mode 100644 index feed97ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-onedrive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-onenote.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-onenote.svg deleted file mode 100644 index a94e2d59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-onenote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-outlook.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-outlook.svg deleted file mode 100644 index 5ffc489e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-outlook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-powerpoint.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-powerpoint.svg deleted file mode 100644 index e56e34e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-powerpoint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-sharepoint.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-sharepoint.svg deleted file mode 100644 index 57779e63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-sharepoint.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-teams.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-teams.svg deleted file mode 100644 index f108827f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-teams.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-visual-studio-code.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-visual-studio-code.svg deleted file mode 100644 index 8845f60b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-visual-studio-code.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-visual-studio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-visual-studio.svg deleted file mode 100644 index b0599cbe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-visual-studio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-windows-classic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-windows-classic.svg deleted file mode 100644 index 4f571820..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-windows-classic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-windows.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-windows.svg deleted file mode 100644 index 74eca53c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-windows.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-word.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-word.svg deleted file mode 100644 index 9f1d5947..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-word.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-alert.svg deleted file mode 100644 index b4e6576f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-charging.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-charging.svg deleted file mode 100644 index 215e64e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-charging.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-empty.svg deleted file mode 100644 index 53c6317b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-full.svg deleted file mode 100644 index 355ced49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-low.svg deleted file mode 100644 index 14ea1eb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-medium.svg deleted file mode 100644 index a9540284..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-unknown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-unknown.svg deleted file mode 100644 index 527fe99e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-battery-unknown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-menu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-menu.svg deleted file mode 100644 index 5215881c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-menu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-off.svg deleted file mode 100644 index 105cf907..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-view.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-view.svg deleted file mode 100644 index d398382a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller-view.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller.svg deleted file mode 100644 index ab30aba8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox-controller.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox.svg deleted file mode 100644 index 560388e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft-xbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft.svg deleted file mode 100644 index 18100e3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microsoft.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microwave-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microwave-off.svg deleted file mode 100644 index 20dedb7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microwave-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microwave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microwave.svg deleted file mode 100644 index 216cdfdd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/microwave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/middleware-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/middleware-outline.svg deleted file mode 100644 index bdaeca86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/middleware-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/middleware.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/middleware.svg deleted file mode 100644 index 4118bc3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/middleware.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/midi-port.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/midi-port.svg deleted file mode 100644 index 409bb37d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/midi-port.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/midi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/midi.svg deleted file mode 100644 index c56dd063..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/midi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mine.svg deleted file mode 100644 index dfacae0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minecraft.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minecraft.svg deleted file mode 100644 index 1e5058b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minecraft.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mini-sd.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mini-sd.svg deleted file mode 100644 index c3b681ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mini-sd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minidisc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minidisc.svg deleted file mode 100644 index b8d85dac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minidisc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-multiple-outline.svg deleted file mode 100644 index 624047e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-multiple.svg deleted file mode 100644 index 9bfb8bb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-outline.svg deleted file mode 100644 index 343956da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box.svg deleted file mode 100644 index 98f827e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-multiple-outline.svg deleted file mode 100644 index 6895208b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-multiple.svg deleted file mode 100644 index 5ae1689d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-off-outline.svg deleted file mode 100644 index cc8c76f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-off.svg deleted file mode 100644 index 53133f41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-outline.svg deleted file mode 100644 index 2bdc4430..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle.svg deleted file mode 100644 index 96b125d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-network-outline.svg deleted file mode 100644 index bdbe87fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-network.svg deleted file mode 100644 index 162e7572..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-thick.svg deleted file mode 100644 index ff47df5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus.svg deleted file mode 100644 index ff742c72..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror-rectangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror-rectangle.svg deleted file mode 100644 index 007a45f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror-rectangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror-variant.svg deleted file mode 100644 index e1543279..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror.svg deleted file mode 100644 index 6a1f6325..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mirror.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mixed-martial-arts.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mixed-martial-arts.svg deleted file mode 100644 index 55ef9a41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mixed-martial-arts.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mixed-reality.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mixed-reality.svg deleted file mode 100644 index 4ebdaed2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mixed-reality.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule-co.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule-co.svg deleted file mode 100644 index a2488970..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule-co.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule-co2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule-co2.svg deleted file mode 100644 index 5f4ff543..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule-co2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule.svg deleted file mode 100644 index 4ee22215..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/molecule.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-account.svg deleted file mode 100644 index 880124a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-arrow-down-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-arrow-down-variant.svg deleted file mode 100644 index 591d8e44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-arrow-down-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-arrow-down.svg deleted file mode 100644 index 7a56080e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-cellphone-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-cellphone-star.svg deleted file mode 100644 index 66f95f92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-cellphone-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-cellphone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-cellphone.svg deleted file mode 100644 index e5698ac1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-cellphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-dashboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-dashboard.svg deleted file mode 100644 index 3406b62c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-dashboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-edit.svg deleted file mode 100644 index 736e4bbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-eye.svg deleted file mode 100644 index 0685b5dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-lock.svg deleted file mode 100644 index 73cf876f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-multiple.svg deleted file mode 100644 index c7829d72..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-off.svg deleted file mode 100644 index d89281b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-screenshot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-screenshot.svg deleted file mode 100644 index 8ea6f109..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-screenshot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-share.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-share.svg deleted file mode 100644 index a110066c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-share.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-shimmer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-shimmer.svg deleted file mode 100644 index f5ac9657..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-shimmer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-small.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-small.svg deleted file mode 100644 index 156ea116..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-small.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-speaker-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-speaker-off.svg deleted file mode 100644 index 2361d79f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-speaker-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-speaker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-speaker.svg deleted file mode 100644 index 4923e7de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-speaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-star.svg deleted file mode 100644 index 22111e88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor.svg deleted file mode 100644 index db52c3c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/monitor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-first-quarter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-first-quarter.svg deleted file mode 100644 index 8f7e7aae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-first-quarter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-full.svg deleted file mode 100644 index 4fbeea1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-last-quarter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-last-quarter.svg deleted file mode 100644 index f464810e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-last-quarter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-new.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-new.svg deleted file mode 100644 index b9dc3088..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-new.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waning-crescent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waning-crescent.svg deleted file mode 100644 index cef45e97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waning-crescent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waning-gibbous.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waning-gibbous.svg deleted file mode 100644 index 8e503bbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waning-gibbous.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waxing-crescent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waxing-crescent.svg deleted file mode 100644 index 27275ca0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waxing-crescent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waxing-gibbous.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waxing-gibbous.svg deleted file mode 100644 index e2320673..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moon-waxing-gibbous.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-electric-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-electric-outline.svg deleted file mode 100644 index 2a1c9ed1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-electric-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-electric.svg deleted file mode 100644 index a7b1aee6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-outline.svg deleted file mode 100644 index 50ebfd05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped.svg deleted file mode 100644 index 6edd51cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/moped.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/more.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/more.svg deleted file mode 100644 index 7c4621d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/more.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mortar-pestle-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mortar-pestle-plus.svg deleted file mode 100644 index ca6a3b96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mortar-pestle-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mortar-pestle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mortar-pestle.svg deleted file mode 100644 index 802952c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mortar-pestle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mosque-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mosque-outline.svg deleted file mode 100644 index 155aadee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mosque-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mosque.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mosque.svg deleted file mode 100644 index ca7d7748..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mosque.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mother-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mother-heart.svg deleted file mode 100644 index 8922f622..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mother-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mother-nurse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mother-nurse.svg deleted file mode 100644 index 404c5125..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mother-nurse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-outline.svg deleted file mode 100644 index 99324f13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-pause-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-pause-outline.svg deleted file mode 100644 index d053dd17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-pause-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-pause.svg deleted file mode 100644 index 03af1f85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-play-outline.svg deleted file mode 100644 index 644ef94b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-play.svg deleted file mode 100644 index 71408bc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-sensor-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-sensor-off.svg deleted file mode 100644 index ebd6f71d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-sensor-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-sensor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-sensor.svg deleted file mode 100644 index c467bec8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion-sensor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion.svg deleted file mode 100644 index 5bdfc8e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motion.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike-electric.svg deleted file mode 100644 index 432766b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike-off.svg deleted file mode 100644 index e89146b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike.svg deleted file mode 100644 index d826a15e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/motorbike.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-bluetooth.svg deleted file mode 100644 index 44da3a4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-down.svg deleted file mode 100644 index 64ef506d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-up.svg deleted file mode 100644 index 79259dc7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-vertical.svg deleted file mode 100644 index 6e7c16d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-move-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-off.svg deleted file mode 100644 index b12b9c34..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-variant-off.svg deleted file mode 100644 index 75cb5cac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-variant.svg deleted file mode 100644 index bfc440f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse.svg deleted file mode 100644 index dfba3395..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mouse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/move-resize-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/move-resize-variant.svg deleted file mode 100644 index e3be89c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/move-resize-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/move-resize.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/move-resize.svg deleted file mode 100644 index be69888d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/move-resize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-check-outline.svg deleted file mode 100644 index 975a74cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-check.svg deleted file mode 100644 index fc1b26fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-cog-outline.svg deleted file mode 100644 index 9b31df3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-cog.svg deleted file mode 100644 index 3076e779..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-edit-outline.svg deleted file mode 100644 index 1499fa1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-edit.svg deleted file mode 100644 index 19b8e19f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-filter-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-filter-outline.svg deleted file mode 100644 index 9c49cd8c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-filter-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-filter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-filter.svg deleted file mode 100644 index 2295bd7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-minus-outline.svg deleted file mode 100644 index 5b831941..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-minus.svg deleted file mode 100644 index f5eec5b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-off-outline.svg deleted file mode 100644 index 8478e954..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-off.svg deleted file mode 100644 index 8a9887e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-check-outline.svg deleted file mode 100644 index 8f89255b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-check.svg deleted file mode 100644 index d13527f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-cog-outline.svg deleted file mode 100644 index 9000a394..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-cog.svg deleted file mode 100644 index d4ac65e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-edit-outline.svg deleted file mode 100644 index c1d794c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-edit.svg deleted file mode 100644 index 5d68e984..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-minus-outline.svg deleted file mode 100644 index 3fba6060..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-minus.svg deleted file mode 100644 index aa4dfecf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-off-outline.svg deleted file mode 100644 index 4a8b165e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-off.svg deleted file mode 100644 index 37bc1c8c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-outline.svg deleted file mode 100644 index 7baff12c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-play-outline.svg deleted file mode 100644 index 1703e912..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-play.svg deleted file mode 100644 index 31e48405..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-plus-outline.svg deleted file mode 100644 index 8113a1d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-plus.svg deleted file mode 100644 index f90de0d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-remove-outline.svg deleted file mode 100644 index 91d0eb61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-remove.svg deleted file mode 100644 index feb108f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-settings-outline.svg deleted file mode 100644 index ad70f3e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-settings.svg deleted file mode 100644 index df72650e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-star-outline.svg deleted file mode 100644 index c4c3cffa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-star.svg deleted file mode 100644 index ec0138ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open.svg deleted file mode 100644 index 2ec5aa2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-outline.svg deleted file mode 100644 index fdbbbff4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-play-outline.svg deleted file mode 100644 index 2cf80e86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-play.svg deleted file mode 100644 index 0646ef38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-plus-outline.svg deleted file mode 100644 index 1fa29570..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-plus.svg deleted file mode 100644 index 809c6c72..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-remove-outline.svg deleted file mode 100644 index 0cf39a6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-remove.svg deleted file mode 100644 index aa5cb04c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-roll.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-roll.svg deleted file mode 100644 index eee25055..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-roll.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-search-outline.svg deleted file mode 100644 index 1d6bbdf5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-search.svg deleted file mode 100644 index 978e3749..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-settings-outline.svg deleted file mode 100644 index 94caf5a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-settings.svg deleted file mode 100644 index f6f4fadb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-star-outline.svg deleted file mode 100644 index fc7cb2be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-star.svg deleted file mode 100644 index 7f5e5cf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie.svg deleted file mode 100644 index 61569394..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/movie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-bag-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-bag-on.svg deleted file mode 100644 index 169ee985..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-bag-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-bag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-bag.svg deleted file mode 100644 index 6166fa3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-bag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-on.svg deleted file mode 100644 index 31c0f708..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower.svg deleted file mode 100644 index b3b20d25..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/muffin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/muffin.svg deleted file mode 100644 index 5eb32d0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/muffin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multicast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multicast.svg deleted file mode 100644 index 3a092655..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multicast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multimedia.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multimedia.svg deleted file mode 100644 index decc1807..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multimedia.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multiplication-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multiplication-box.svg deleted file mode 100644 index 229a4843..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multiplication-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multiplication.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multiplication.svg deleted file mode 100644 index a7b619cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/multiplication.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-off-outline.svg deleted file mode 100644 index bdb6e18a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-off.svg deleted file mode 100644 index b7c06e13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-outline.svg deleted file mode 100644 index 567bc621..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom.svg deleted file mode 100644 index a4b5e4c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mushroom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-double-flat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-double-flat.svg deleted file mode 100644 index 799dfd18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-double-flat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-double-sharp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-double-sharp.svg deleted file mode 100644 index cfe9d44c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-double-sharp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-flat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-flat.svg deleted file mode 100644 index 597fb820..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-flat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-natural.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-natural.svg deleted file mode 100644 index a82ed33c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-natural.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-sharp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-sharp.svg deleted file mode 100644 index 40a05012..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-accidental-sharp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-multiple-outline.svg deleted file mode 100644 index 437878dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-multiple.svg deleted file mode 100644 index 34df5b45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-outline.svg deleted file mode 100644 index 59171b8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box.svg deleted file mode 100644 index 9b0b4c00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-circle-outline.svg deleted file mode 100644 index d71ee311..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-circle.svg deleted file mode 100644 index 25d51314..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-alto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-alto.svg deleted file mode 100644 index fa7c4cf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-alto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-bass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-bass.svg deleted file mode 100644 index 3ed21941..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-bass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-treble.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-treble.svg deleted file mode 100644 index 61317782..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-clef-treble.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-bluetooth-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-bluetooth-off.svg deleted file mode 100644 index e1c1cefc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-bluetooth-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-bluetooth.svg deleted file mode 100644 index 293d4444..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-eighth-dotted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-eighth-dotted.svg deleted file mode 100644 index 93f153c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-eighth-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-eighth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-eighth.svg deleted file mode 100644 index 392c03d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-eighth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-half-dotted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-half-dotted.svg deleted file mode 100644 index 1bf5c9aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-half-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-half.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-half.svg deleted file mode 100644 index 36248543..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-minus.svg deleted file mode 100644 index 11ab5781..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-off-outline.svg deleted file mode 100644 index 407a9530..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-off.svg deleted file mode 100644 index 619fef89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-outline.svg deleted file mode 100644 index 1f0923e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-plus.svg deleted file mode 100644 index b2df7c40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-quarter-dotted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-quarter-dotted.svg deleted file mode 100644 index 1a970d10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-quarter-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-quarter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-quarter.svg deleted file mode 100644 index 713ccdbc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-quarter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-sixteenth-dotted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-sixteenth-dotted.svg deleted file mode 100644 index 9c2823db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-sixteenth-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-sixteenth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-sixteenth.svg deleted file mode 100644 index 97f540b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-sixteenth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-whole-dotted.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-whole-dotted.svg deleted file mode 100644 index 4afeee6e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-whole-dotted.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-whole.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-whole.svg deleted file mode 100644 index 696c1b73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note-whole.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note.svg deleted file mode 100644 index f902f299..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-note.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-off.svg deleted file mode 100644 index 9ec7729d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-eighth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-eighth.svg deleted file mode 100644 index 0bb4adc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-eighth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-half.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-half.svg deleted file mode 100644 index 927dfac8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-quarter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-quarter.svg deleted file mode 100644 index 53922df1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-quarter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-sixteenth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-sixteenth.svg deleted file mode 100644 index d422cead..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-sixteenth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-whole.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-whole.svg deleted file mode 100644 index e68e6a56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music-rest-whole.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music.svg deleted file mode 100644 index a131323e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mustache.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mustache.svg deleted file mode 100644 index 69427031..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/mustache.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nail.svg deleted file mode 100644 index 9a49153a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nas.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nas.svg deleted file mode 100644 index 3c3e4494..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nas.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nativescript.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nativescript.svg deleted file mode 100644 index 05d277aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nativescript.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nature-people.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nature-people.svg deleted file mode 100644 index c8b83052..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nature-people.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nature.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nature.svg deleted file mode 100644 index 4578974e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-outline.svg deleted file mode 100644 index bbcf5ec1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-variant-outline.svg deleted file mode 100644 index a990533b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-variant.svg deleted file mode 100644 index dbeeae6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation.svg deleted file mode 100644 index 8919dcb1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/navigation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/near-me.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/near-me.svg deleted file mode 100644 index da5dccc3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/near-me.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/necklace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/necklace.svg deleted file mode 100644 index 6989a94e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/necklace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/needle-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/needle-off.svg deleted file mode 100644 index 84ba297c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/needle-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/needle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/needle.svg deleted file mode 100644 index 3b4f822a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/needle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/netflix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/netflix.svg deleted file mode 100644 index 004e7768..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/netflix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-off-outline.svg deleted file mode 100644 index 39a2da12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-off.svg deleted file mode 100644 index 6f701ac7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-outline.svg deleted file mode 100644 index 10efff03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-pos.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-pos.svg deleted file mode 100644 index 8e868826..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-pos.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-1-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-1-alert.svg deleted file mode 100644 index 3e1dfa90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-1-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-1.svg deleted file mode 100644 index dd00d8b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-2-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-2-alert.svg deleted file mode 100644 index 40bde1f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-2-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-2.svg deleted file mode 100644 index a69c9ed0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-3-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-3-alert.svg deleted file mode 100644 index 1b9cb605..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-3-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-3.svg deleted file mode 100644 index 7df0c603..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4-alert.svg deleted file mode 100644 index 1d3f6258..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4-cog.svg deleted file mode 100644 index 1bf52ac3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4.svg deleted file mode 100644 index 878aae90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-off-outline.svg deleted file mode 100644 index 36814148..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-off.svg deleted file mode 100644 index d396c0f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-outline.svg deleted file mode 100644 index 3ae2aff0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network-strength-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network.svg deleted file mode 100644 index 672eaad7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/new-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/new-box.svg deleted file mode 100644 index c5b3065e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/new-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-check.svg deleted file mode 100644 index 941d0a6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-minus.svg deleted file mode 100644 index ae2688af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-plus.svg deleted file mode 100644 index ce48386c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-remove.svg deleted file mode 100644 index 0fcba752..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-multiple-outline.svg deleted file mode 100644 index 09a9bb92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-multiple.svg deleted file mode 100644 index e00402db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-outline.svg deleted file mode 100644 index b846006e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant.svg deleted file mode 100644 index aec3efaa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper.svg deleted file mode 100644 index 299436a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/newspaper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-search-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-search-variant.svg deleted file mode 100644 index 441db39b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-search-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-tap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-tap.svg deleted file mode 100644 index 6af0a691..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-tap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-variant-off.svg deleted file mode 100644 index 7e71a766..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-variant.svg deleted file mode 100644 index c45dd424..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc.svg deleted file mode 100644 index 215f1c18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nfc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ninja.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ninja.svg deleted file mode 100644 index 600d4303..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ninja.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-game-boy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-game-boy.svg deleted file mode 100644 index 7c89adeb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-game-boy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-switch.svg deleted file mode 100644 index 923471d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-wii.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-wii.svg deleted file mode 100644 index d0d1b746..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-wii.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-wiiu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-wiiu.svg deleted file mode 100644 index 9bfc31c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nintendo-wiiu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nix.svg deleted file mode 100644 index 36a21f1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nodejs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nodejs.svg deleted file mode 100644 index aaaa7671..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nodejs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/noodles.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/noodles.svg deleted file mode 100644 index 1c98e292..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/noodles.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/not-equal-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/not-equal-variant.svg deleted file mode 100644 index 28b1d160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/not-equal-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/not-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/not-equal.svg deleted file mode 100644 index 0fed2067..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/not-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-alert-outline.svg deleted file mode 100644 index e4b30a92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-alert.svg deleted file mode 100644 index 8de25e5b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-check-outline.svg deleted file mode 100644 index 9935983b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-check.svg deleted file mode 100644 index 5eb3cb76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-edit-outline.svg deleted file mode 100644 index 0a885eff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-edit.svg deleted file mode 100644 index e2780673..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-minus-outline.svg deleted file mode 100644 index 1d4d5ec1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-minus.svg deleted file mode 100644 index 994bedcf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-multiple-outline.svg deleted file mode 100644 index b6f1f4d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-multiple.svg deleted file mode 100644 index ee55e2ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-off-outline.svg deleted file mode 100644 index 7331e688..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-off.svg deleted file mode 100644 index 90e6ff3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-outline.svg deleted file mode 100644 index 87730d4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-plus-outline.svg deleted file mode 100644 index b71fff4b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-plus.svg deleted file mode 100644 index 35ebb24d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-remove-outline.svg deleted file mode 100644 index bbd34972..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-remove.svg deleted file mode 100644 index 3a57663f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-search-outline.svg deleted file mode 100644 index 79dfcdd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-search.svg deleted file mode 100644 index 3b9deaca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-text-outline.svg deleted file mode 100644 index 82f2c9d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-text.svg deleted file mode 100644 index 479e84b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note.svg deleted file mode 100644 index eba96dd3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/note.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-check-outline.svg deleted file mode 100644 index a50c1c5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-check.svg deleted file mode 100644 index e4167932..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-edit-outline.svg deleted file mode 100644 index b40074a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-edit.svg deleted file mode 100644 index c09a831f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-heart-outline.svg deleted file mode 100644 index 6f90d312..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-heart.svg deleted file mode 100644 index 8c2b4f77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-minus-outline.svg deleted file mode 100644 index 79b030e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-minus.svg deleted file mode 100644 index da0b19ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-multiple.svg deleted file mode 100644 index 1ed915ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-outline.svg deleted file mode 100644 index 513b7073..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-plus-outline.svg deleted file mode 100644 index 32406e8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-plus.svg deleted file mode 100644 index f33ad380..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-remove-outline.svg deleted file mode 100644 index 2a345aa6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-remove.svg deleted file mode 100644 index 03c0f616..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook.svg deleted file mode 100644 index 6ae8d2ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notebook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notification-clear-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notification-clear-all.svg deleted file mode 100644 index 23e69542..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/notification-clear-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/npm.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/npm.svg deleted file mode 100644 index 3a61c186..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/npm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nuke.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nuke.svg deleted file mode 100644 index c684cc32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nuke.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/null.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/null.svg deleted file mode 100644 index 8c6b5265..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/null.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-multiple-outline.svg deleted file mode 100644 index cf826f81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-multiple.svg deleted file mode 100644 index d2a27417..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-outline.svg deleted file mode 100644 index 409b58e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box.svg deleted file mode 100644 index a3ca07b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-circle-outline.svg deleted file mode 100644 index 684e512d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-circle.svg deleted file mode 100644 index 7bf044bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0.svg deleted file mode 100644 index 89b0d444..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-multiple-outline.svg deleted file mode 100644 index 06b7cc68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-multiple.svg deleted file mode 100644 index b7788652..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-outline.svg deleted file mode 100644 index c05f7189..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box.svg deleted file mode 100644 index a169f757..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-circle-outline.svg deleted file mode 100644 index 67ededed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-circle.svg deleted file mode 100644 index 389a9352..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1.svg deleted file mode 100644 index fb122f36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-multiple-outline.svg deleted file mode 100644 index 3a40a8df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-multiple.svg deleted file mode 100644 index 346fc2ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-outline.svg deleted file mode 100644 index 35e0e5a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box.svg deleted file mode 100644 index a21f5453..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-circle-outline.svg deleted file mode 100644 index a96b40ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-circle.svg deleted file mode 100644 index fb4e7498..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10.svg deleted file mode 100644 index 6fdc3ca8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-multiple-outline.svg deleted file mode 100644 index 6c56e248..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-multiple.svg deleted file mode 100644 index 53b78bc5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-outline.svg deleted file mode 100644 index 3d7e3d1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box.svg deleted file mode 100644 index 5ef69fc6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-circle-outline.svg deleted file mode 100644 index ebf6f79b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-circle.svg deleted file mode 100644 index e5e71d1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2.svg deleted file mode 100644 index 7373f840..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-multiple-outline.svg deleted file mode 100644 index 916d0900..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-multiple.svg deleted file mode 100644 index ab60b3fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-outline.svg deleted file mode 100644 index 253043b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box.svg deleted file mode 100644 index e0c7e204..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-circle-outline.svg deleted file mode 100644 index 9b022925..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-circle.svg deleted file mode 100644 index 6fb31b87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3.svg deleted file mode 100644 index d77700d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-multiple-outline.svg deleted file mode 100644 index f6313f71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-multiple.svg deleted file mode 100644 index c44a2992..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-outline.svg deleted file mode 100644 index a7742e3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box.svg deleted file mode 100644 index f32670cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-circle-outline.svg deleted file mode 100644 index d6d1d545..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-circle.svg deleted file mode 100644 index 1fb9ea7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4.svg deleted file mode 100644 index 8a4227f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-multiple-outline.svg deleted file mode 100644 index 08bc9a20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-multiple.svg deleted file mode 100644 index 0b29e236..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-outline.svg deleted file mode 100644 index e4719460..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box.svg deleted file mode 100644 index 5208da53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-circle-outline.svg deleted file mode 100644 index fd915647..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-circle.svg deleted file mode 100644 index 6bc5c71c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5.svg deleted file mode 100644 index 3c296da1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-multiple-outline.svg deleted file mode 100644 index a6988031..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-multiple.svg deleted file mode 100644 index f6f93285..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-outline.svg deleted file mode 100644 index 47fbf0c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box.svg deleted file mode 100644 index 6f7fdfb4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-circle-outline.svg deleted file mode 100644 index 8571b774..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-circle.svg deleted file mode 100644 index e6ac5308..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6.svg deleted file mode 100644 index 8d7248d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-multiple-outline.svg deleted file mode 100644 index 1f28bc4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-multiple.svg deleted file mode 100644 index e8b353a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-outline.svg deleted file mode 100644 index eae12795..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box.svg deleted file mode 100644 index eeed5d26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-circle-outline.svg deleted file mode 100644 index 391c762c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-circle.svg deleted file mode 100644 index f3a9bc63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7.svg deleted file mode 100644 index 9848a214..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-multiple-outline.svg deleted file mode 100644 index 87ac2fab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-multiple.svg deleted file mode 100644 index 63abb613..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-outline.svg deleted file mode 100644 index dc707d6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box.svg deleted file mode 100644 index cce7e3f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-circle-outline.svg deleted file mode 100644 index 62ab2a6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-circle.svg deleted file mode 100644 index 0e51e0bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8.svg deleted file mode 100644 index 347a8f6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-multiple-outline.svg deleted file mode 100644 index 5599152d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-multiple.svg deleted file mode 100644 index 62fbd833..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-outline.svg deleted file mode 100644 index c59d8d3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box.svg deleted file mode 100644 index 6c3332a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-circle-outline.svg deleted file mode 100644 index 9e0d522a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-circle.svg deleted file mode 100644 index 3a00dd8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-multiple-outline.svg deleted file mode 100644 index 52a343b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-multiple.svg deleted file mode 100644 index f7b1287e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-outline.svg deleted file mode 100644 index 0c428007..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box.svg deleted file mode 100644 index e1ad3d2c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-circle-outline.svg deleted file mode 100644 index a2535a10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-circle.svg deleted file mode 100644 index f6a57bc8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus.svg deleted file mode 100644 index e72594fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9.svg deleted file mode 100644 index 76cadbe0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-negative-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-negative-1.svg deleted file mode 100644 index cbc19ed2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-negative-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-off.svg deleted file mode 100644 index 77a7f4a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-positive-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-positive-1.svg deleted file mode 100644 index 5945ac55..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric-positive-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric.svg deleted file mode 100644 index 851b4ce8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/numeric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nut.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nut.svg deleted file mode 100644 index 7bc4543d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nut.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nutrition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nutrition.svg deleted file mode 100644 index d26cc882..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nutrition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nuxt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nuxt.svg deleted file mode 100644 index 73d60fe3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/nuxt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oar.svg deleted file mode 100644 index 4f0d7a09..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ocarina.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ocarina.svg deleted file mode 100644 index dd860bb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ocarina.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oci.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oci.svg deleted file mode 100644 index a8e9ace8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oci.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ocr.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ocr.svg deleted file mode 100644 index 7c0b92dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ocr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagon-outline.svg deleted file mode 100644 index ae4c4abe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagon.svg deleted file mode 100644 index 3a6a5937..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagram-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagram-outline.svg deleted file mode 100644 index 50d02ca7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagram-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagram.svg deleted file mode 100644 index bd0298eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octahedron-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octahedron-off.svg deleted file mode 100644 index e4637de1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octahedron-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octahedron.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octahedron.svg deleted file mode 100644 index 7f18bbfd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/octahedron.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/odnoklassniki.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/odnoklassniki.svg deleted file mode 100644 index 159c8367..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/odnoklassniki.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/offer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/offer.svg deleted file mode 100644 index 201538dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/offer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-cog-outline.svg deleted file mode 100644 index 22d0083c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-cog.svg deleted file mode 100644 index 41a957c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-marker-outline.svg deleted file mode 100644 index 2d03807c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-marker.svg deleted file mode 100644 index 987385a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-minus-outline.svg deleted file mode 100644 index 675fd0f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-minus.svg deleted file mode 100644 index db151e38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-outline.svg deleted file mode 100644 index 612aefc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-plus-outline.svg deleted file mode 100644 index 5b315d53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-plus.svg deleted file mode 100644 index c3f57636..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-remove-outline.svg deleted file mode 100644 index 4b0b2bf1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-remove.svg deleted file mode 100644 index 3c6894cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building.svg deleted file mode 100644 index 7ac753d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/office-building.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-lamp.svg deleted file mode 100644 index e729689d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-level.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-level.svg deleted file mode 100644 index a1998b1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-level.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-temperature.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-temperature.svg deleted file mode 100644 index a0861308..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil-temperature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil.svg deleted file mode 100644 index 46553e2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/oil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/om.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/om.svg deleted file mode 100644 index e6cd54a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/om.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/omega.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/omega.svg deleted file mode 100644 index c8569273..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/omega.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/one-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/one-up.svg deleted file mode 100644 index fd03fd6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/one-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/onepassword.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/onepassword.svg deleted file mode 100644 index 6a3384a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/onepassword.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/opacity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/opacity.svg deleted file mode 100644 index f421f172..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/opacity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-in-app.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-in-app.svg deleted file mode 100644 index 1aab86de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-in-app.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-in-new.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-in-new.svg deleted file mode 100644 index 8aa9065d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-in-new.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-source-initiative.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-source-initiative.svg deleted file mode 100644 index bf1c78cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/open-source-initiative.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/openid.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/openid.svg deleted file mode 100644 index 36aeb1eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/openid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/opera.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/opera.svg deleted file mode 100644 index 1a9e4d3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/opera.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/orbit-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/orbit-variant.svg deleted file mode 100644 index ad65a621..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/orbit-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/orbit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/orbit.svg deleted file mode 100644 index f2f4356c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/orbit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-alphabetical-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-alphabetical-ascending.svg deleted file mode 100644 index dd5ec4d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-alphabetical-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-alphabetical-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-alphabetical-descending.svg deleted file mode 100644 index 293e5f9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-alphabetical-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-ascending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-ascending-variant.svg deleted file mode 100644 index 82f5fe89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-ascending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-ascending.svg deleted file mode 100644 index 4399361e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-descending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-descending-variant.svg deleted file mode 100644 index 8671254a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-descending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-descending.svg deleted file mode 100644 index fc0f21ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-bool-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-numeric-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-numeric-ascending.svg deleted file mode 100644 index dabe1806..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-numeric-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-numeric-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-numeric-descending.svg deleted file mode 100644 index 7d527c36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/order-numeric-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/origin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/origin.svg deleted file mode 100644 index 5bda1a07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/origin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ornament-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ornament-variant.svg deleted file mode 100644 index 1d9c369e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ornament-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ornament.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ornament.svg deleted file mode 100644 index 29d36072..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ornament.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/outdoor-lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/outdoor-lamp.svg deleted file mode 100644 index 80c5db5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/outdoor-lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/overscan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/overscan.svg deleted file mode 100644 index f0e82154..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/overscan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/owl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/owl.svg deleted file mode 100644 index 2b271704..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/owl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pac-man.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pac-man.svg deleted file mode 100644 index f9e12ca4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pac-man.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-check.svg deleted file mode 100644 index ab037f70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-down.svg deleted file mode 100644 index 3d9ce33f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-up.svg deleted file mode 100644 index 94906fd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-check.svg deleted file mode 100644 index cde27bf2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-minus.svg deleted file mode 100644 index f0f0ef1f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-plus.svg deleted file mode 100644 index 3d747481..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-remove.svg deleted file mode 100644 index 0df865d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed.svg deleted file mode 100644 index 5975afb4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-minus.svg deleted file mode 100644 index dd7b031e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-plus.svg deleted file mode 100644 index 50894e18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-remove.svg deleted file mode 100644 index b879936d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant.svg deleted file mode 100644 index 17a76d8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package.svg deleted file mode 100644 index 0d13fe10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/package.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-first.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-first.svg deleted file mode 100644 index b42c96d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-first.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-last.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-last.svg deleted file mode 100644 index 72f35ca2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-last.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-body.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-body.svg deleted file mode 100644 index 57d100b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-body.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-footer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-footer.svg deleted file mode 100644 index 53b6d1c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-footer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-header-footer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-header-footer.svg deleted file mode 100644 index acb7adf3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-header-footer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-header.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-header.svg deleted file mode 100644 index e3f3f5d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-header.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-sidebar-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-sidebar-left.svg deleted file mode 100644 index 65751d56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-sidebar-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-sidebar-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-sidebar-right.svg deleted file mode 100644 index 352d8924..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-layout-sidebar-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-next-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-next-outline.svg deleted file mode 100644 index fbd4cfda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-next-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-next.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-next.svg deleted file mode 100644 index c92417b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-previous-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-previous-outline.svg deleted file mode 100644 index fc0c2bb5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-previous-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-previous.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-previous.svg deleted file mode 100644 index 169c8ef5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/page-previous.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-minus-outline.svg deleted file mode 100644 index d5b57c6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-minus.svg deleted file mode 100644 index 4920b688..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-off-outline.svg deleted file mode 100644 index c4a78e4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-off.svg deleted file mode 100644 index e9103bda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-outline.svg deleted file mode 100644 index b377968f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-plus-outline.svg deleted file mode 100644 index a05ed7d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-plus.svg deleted file mode 100644 index 01f2c4cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-remove-outline.svg deleted file mode 100644 index 7f222687..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-remove.svg deleted file mode 100644 index 4f1b1c2c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail.svg deleted file mode 100644 index 0655c0fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-advanced.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-advanced.svg deleted file mode 100644 index c5ae5847..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-advanced.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-outline.svg deleted file mode 100644 index 001705db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch-outline.svg deleted file mode 100644 index fc1d566f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch-variant.svg deleted file mode 100644 index 0fedcc90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch.svg deleted file mode 100644 index 76ae0cb5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette-swatch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette.svg deleted file mode 100644 index 1a44f93f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palette.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palm-tree.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palm-tree.svg deleted file mode 100644 index 46959da0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/palm-tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-bottom-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-bottom-left.svg deleted file mode 100644 index f838b63c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-bottom-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-bottom-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-bottom-right.svg deleted file mode 100644 index 4fe6914f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-bottom-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-down.svg deleted file mode 100644 index 1e04be82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-horizontal.svg deleted file mode 100644 index 5de92f9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-left.svg deleted file mode 100644 index a6a2522a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-right.svg deleted file mode 100644 index c03eabdf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-top-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-top-left.svg deleted file mode 100644 index 298c7af0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-top-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-top-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-top-right.svg deleted file mode 100644 index bab243d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-top-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-up.svg deleted file mode 100644 index 51c34df4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-vertical.svg deleted file mode 100644 index e8d83769..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan.svg deleted file mode 100644 index 617752b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panda.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panda.svg deleted file mode 100644 index 7b5943fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panda.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pandora.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pandora.svg deleted file mode 100644 index 3f4232f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pandora.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-fisheye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-fisheye.svg deleted file mode 100644 index b589b856..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-fisheye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-horizontal-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-horizontal-outline.svg deleted file mode 100644 index d9d6173b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-horizontal-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-horizontal.svg deleted file mode 100644 index 4ecc8c15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-outline.svg deleted file mode 100644 index a920f4c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-sphere-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-sphere-outline.svg deleted file mode 100644 index 1d708fb6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-sphere-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-sphere.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-sphere.svg deleted file mode 100644 index 08f0bdc3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-sphere.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-variant-outline.svg deleted file mode 100644 index 402cf2ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-variant.svg deleted file mode 100644 index ecfbe41c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-vertical-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-vertical-outline.svg deleted file mode 100644 index c22e9ba0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-vertical-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-vertical.svg deleted file mode 100644 index 85af80b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-wide-angle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-wide-angle-outline.svg deleted file mode 100644 index d297370c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-wide-angle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-wide-angle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-wide-angle.svg deleted file mode 100644 index 8e853898..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama-wide-angle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama.svg deleted file mode 100644 index e75649f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/panorama.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-cut-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-cut-vertical.svg deleted file mode 100644 index 5b004ead..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-cut-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-roll-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-roll-outline.svg deleted file mode 100644 index 34aca11e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-roll-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-roll.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-roll.svg deleted file mode 100644 index d5e6074d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paper-roll.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-check.svg deleted file mode 100644 index a7b4e91a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-lock.svg deleted file mode 100644 index f02b430a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-minus.svg deleted file mode 100644 index 0b08afa7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-off.svg deleted file mode 100644 index 4668f449..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-plus.svg deleted file mode 100644 index 8ccdc5bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-remove.svg deleted file mode 100644 index 6440397c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip.svg deleted file mode 100644 index ed36ff16..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paperclip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parachute-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parachute-outline.svg deleted file mode 100644 index 6a51fc02..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parachute-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parachute.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parachute.svg deleted file mode 100644 index ee514c0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parachute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paragliding.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paragliding.svg deleted file mode 100644 index de2444ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paragliding.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parking.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parking.svg deleted file mode 100644 index 6337794e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/parking.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/party-popper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/party-popper.svg deleted file mode 100644 index b7a0f4ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/party-popper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/passport-biometric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/passport-biometric.svg deleted file mode 100644 index 878d4d9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/passport-biometric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/passport.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/passport.svg deleted file mode 100644 index 1296879e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/passport.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pasta.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pasta.svg deleted file mode 100644 index 7c769643..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pasta.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/patio-heater.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/patio-heater.svg deleted file mode 100644 index fb65440b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/patio-heater.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/patreon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/patreon.svg deleted file mode 100644 index c53f7393..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/patreon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-box-outline.svg deleted file mode 100644 index a2502b8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-box.svg deleted file mode 100644 index e78a7e7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-circle-outline.svg deleted file mode 100644 index bcebae89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-circle.svg deleted file mode 100644 index 93824626..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-octagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-octagon-outline.svg deleted file mode 100644 index a8963a99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-octagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-octagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-octagon.svg deleted file mode 100644 index 7dd02232..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause-octagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause.svg deleted file mode 100644 index bf79b982..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-off-outline.svg deleted file mode 100644 index d1e21ee9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-off.svg deleted file mode 100644 index 26b367c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-outline.svg deleted file mode 100644 index 2366e350..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw.svg deleted file mode 100644 index 2e8eedf0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/paw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peace.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peace.svg deleted file mode 100644 index 7ad224da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peace.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-off-outline.svg deleted file mode 100644 index 60a64ea7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-off.svg deleted file mode 100644 index bf9ef62b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-outline.svg deleted file mode 100644 index d769046d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut.svg deleted file mode 100644 index 7830f6f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/peanut.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-lock.svg deleted file mode 100644 index 15b389b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-minus.svg deleted file mode 100644 index afd73489..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-off.svg deleted file mode 100644 index d68180a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-plus.svg deleted file mode 100644 index d29fc70d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-remove.svg deleted file mode 100644 index e98063d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen.svg deleted file mode 100644 index dc9d7d20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-multiple-outline.svg deleted file mode 100644 index ea33f0b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-multiple.svg deleted file mode 100644 index 68d2f686..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-outline.svg deleted file mode 100644 index 41c7f940..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box.svg deleted file mode 100644 index 52cff49e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-circle-outline.svg deleted file mode 100644 index 1b13beb4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-circle.svg deleted file mode 100644 index 774fb938..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-lock-outline.svg deleted file mode 100644 index f1e87a9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-lock.svg deleted file mode 100644 index 69988305..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-minus-outline.svg deleted file mode 100644 index 6cca3549..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-minus.svg deleted file mode 100644 index 8de9574c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-off-outline.svg deleted file mode 100644 index 5df1d072..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-off.svg deleted file mode 100644 index 32489159..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-outline.svg deleted file mode 100644 index 2d421fcf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-plus-outline.svg deleted file mode 100644 index 2c24049a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-plus.svg deleted file mode 100644 index 796a8aee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-remove-outline.svg deleted file mode 100644 index b47e55cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-remove.svg deleted file mode 100644 index 2166d5c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-ruler.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-ruler.svg deleted file mode 100644 index be01fd98..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil-ruler.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil.svg deleted file mode 100644 index ad0b10f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pencil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/penguin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/penguin.svg deleted file mode 100644 index 350dbeb4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/penguin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagon-outline.svg deleted file mode 100644 index 58f27d64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagon.svg deleted file mode 100644 index fb4925df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagram.svg deleted file mode 100644 index 27ef59fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pentagram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-box-outline.svg deleted file mode 100644 index ec0b9f3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-box.svg deleted file mode 100644 index 9f0eba12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-circle-outline.svg deleted file mode 100644 index 76d4be13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-circle.svg deleted file mode 100644 index b51af7bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-outline.svg deleted file mode 100644 index 92ef3870..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent.svg deleted file mode 100644 index 70d79843..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/periodic-table.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/periodic-table.svg deleted file mode 100644 index 5ccb4e5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/periodic-table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/perspective-less.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/perspective-less.svg deleted file mode 100644 index e3ac1e64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/perspective-less.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/perspective-more.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/perspective-more.svg deleted file mode 100644 index 08c952c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/perspective-more.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ph.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ph.svg deleted file mode 100644 index 02c53cd6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ph.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-alert-outline.svg deleted file mode 100644 index ebf68c53..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-alert.svg deleted file mode 100644 index 28282939..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-bluetooth-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-bluetooth-outline.svg deleted file mode 100644 index b5922bff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-bluetooth-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-bluetooth.svg deleted file mode 100644 index 5d6ee44c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-cancel-outline.svg deleted file mode 100644 index 5a8e6fa9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-cancel.svg deleted file mode 100644 index 2e54ddb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-check-outline.svg deleted file mode 100644 index 19d18f15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-check.svg deleted file mode 100644 index 57744b2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-classic-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-classic-off.svg deleted file mode 100644 index 396dee74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-classic-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-classic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-classic.svg deleted file mode 100644 index c138d33c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-classic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-clock.svg deleted file mode 100644 index 09f1feea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-dial-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-dial-outline.svg deleted file mode 100644 index 03d377ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-dial-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-dial.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-dial.svg deleted file mode 100644 index 5999c202..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-dial.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-forward-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-forward-outline.svg deleted file mode 100644 index d2885904..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-forward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-forward.svg deleted file mode 100644 index 529391ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-hangup-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-hangup-outline.svg deleted file mode 100644 index dffa3449..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-hangup-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-hangup.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-hangup.svg deleted file mode 100644 index 0fd0c2f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-hangup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-in-talk-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-in-talk-outline.svg deleted file mode 100644 index 97f72cf3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-in-talk-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-in-talk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-in-talk.svg deleted file mode 100644 index f1d0d5c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-in-talk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outgoing-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outgoing-outline.svg deleted file mode 100644 index 184326c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outgoing-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outgoing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outgoing.svg deleted file mode 100644 index 9b3c1ec2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outgoing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outline.svg deleted file mode 100644 index 46728604..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming.svg deleted file mode 100644 index 7dc0bf71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-incoming.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-lock-outline.svg deleted file mode 100644 index 4f7e87c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-lock.svg deleted file mode 100644 index e963b829..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-log-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-log-outline.svg deleted file mode 100644 index 5a67a6dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-log-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-log.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-log.svg deleted file mode 100644 index 751d2fc7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-log.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-message-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-message-outline.svg deleted file mode 100644 index 757e3551..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-message-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-message.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-message.svg deleted file mode 100644 index 982e9b68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-minus-outline.svg deleted file mode 100644 index 46b7ea81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-minus.svg deleted file mode 100644 index 3f8408e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-missed-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-missed-outline.svg deleted file mode 100644 index be558acb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-missed-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-missed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-missed.svg deleted file mode 100644 index d0e39714..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-missed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-off-outline.svg deleted file mode 100644 index e8e2349d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-off.svg deleted file mode 100644 index 6a4a78c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outgoing-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outgoing-outline.svg deleted file mode 100644 index 24e13d48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outgoing-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outgoing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outgoing.svg deleted file mode 100644 index 10926749..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outgoing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outline.svg deleted file mode 100644 index 73e753f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-paused-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-paused-outline.svg deleted file mode 100644 index b93f193a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-paused-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-paused.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-paused.svg deleted file mode 100644 index bb051f62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-paused.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-plus-outline.svg deleted file mode 100644 index aa8909ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-plus.svg deleted file mode 100644 index c174aaab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-refresh-outline.svg deleted file mode 100644 index 3e7b9b10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-refresh.svg deleted file mode 100644 index d93ea6e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-remove-outline.svg deleted file mode 100644 index a4e98837..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-remove.svg deleted file mode 100644 index b12e8578..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-return-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-return-outline.svg deleted file mode 100644 index d1e2e48e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-return-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-return.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-return.svg deleted file mode 100644 index 24e8b9c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-return.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-ring-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-ring-outline.svg deleted file mode 100644 index 3faa9261..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-ring-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-ring.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-ring.svg deleted file mode 100644 index d9bc6521..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-ring.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-rotate-landscape.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-rotate-landscape.svg deleted file mode 100644 index 9b4ad2e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-rotate-landscape.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-rotate-portrait.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-rotate-portrait.svg deleted file mode 100644 index 69446ab2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-rotate-portrait.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-settings-outline.svg deleted file mode 100644 index 571a53dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-settings.svg deleted file mode 100644 index 86f350e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-sync-outline.svg deleted file mode 100644 index 73601d63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-sync.svg deleted file mode 100644 index c7b5b84d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-voip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-voip.svg deleted file mode 100644 index 76528401..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone-voip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone.svg deleted file mode 100644 index 7419a6d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/phone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi-box.svg deleted file mode 100644 index b9faa353..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi-hole.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi-hole.svg deleted file mode 100644 index ff657cb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi-hole.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi.svg deleted file mode 100644 index 07f61994..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piano-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piano-off.svg deleted file mode 100644 index c2410449..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piano-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piano.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piano.svg deleted file mode 100644 index 6b072f7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piano.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pickaxe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pickaxe.svg deleted file mode 100644 index aa476eb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pickaxe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-bottom-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-bottom-right-outline.svg deleted file mode 100644 index abca7b5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-bottom-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-bottom-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-bottom-right.svg deleted file mode 100644 index 37a4c1ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-bottom-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-top-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-top-right-outline.svg deleted file mode 100644 index 82945e3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-top-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-top-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-top-right.svg deleted file mode 100644 index 2a999194..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/picture-in-picture-top-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pier-crane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pier-crane.svg deleted file mode 100644 index ac3ccfc5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pier-crane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pier.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pier.svg deleted file mode 100644 index 7f727a48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig-variant-outline.svg deleted file mode 100644 index c6edd365..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig-variant.svg deleted file mode 100644 index edb57a0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig.svg deleted file mode 100644 index f34228c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pig.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piggy-bank-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piggy-bank-outline.svg deleted file mode 100644 index 41fd7a4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piggy-bank-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piggy-bank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piggy-bank.svg deleted file mode 100644 index e14e6249..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piggy-bank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill-multiple.svg deleted file mode 100644 index 7faa2918..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill-off.svg deleted file mode 100644 index 22e23f88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill.svg deleted file mode 100644 index d2a0176d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pillar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pillar.svg deleted file mode 100644 index 727c4d1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pillar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-off-outline.svg deleted file mode 100644 index 11081219..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-off.svg deleted file mode 100644 index ffb2a4c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-outline.svg deleted file mode 100644 index 8241d4ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin.svg deleted file mode 100644 index e558fef6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree-box.svg deleted file mode 100644 index 94df594f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree-fire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree-fire.svg deleted file mode 100644 index e2037ddd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree-fire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree.svg deleted file mode 100644 index ead44f2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pine-tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinterest.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinterest.svg deleted file mode 100644 index 31b34b0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinterest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinwheel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinwheel-outline.svg deleted file mode 100644 index 0ca21a48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinwheel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinwheel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinwheel.svg deleted file mode 100644 index 6fa6c222..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pinwheel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-disconnected.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-disconnected.svg deleted file mode 100644 index 36eb0f5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-disconnected.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-leak.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-leak.svg deleted file mode 100644 index 3b5a834e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-leak.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-valve.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-valve.svg deleted file mode 100644 index a492f421..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-valve.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-wrench.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-wrench.svg deleted file mode 100644 index 11144f4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe-wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe.svg deleted file mode 100644 index 4eb6321a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pipe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pirate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pirate.svg deleted file mode 100644 index ff31eecb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pirate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pistol.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pistol.svg deleted file mode 100644 index fcdee093..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pistol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piston.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piston.svg deleted file mode 100644 index 55a5dca3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/piston.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pitchfork.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pitchfork.svg deleted file mode 100644 index fa936baf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pitchfork.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pizza.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pizza.svg deleted file mode 100644 index 424d350d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pizza.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plane-car.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plane-car.svg deleted file mode 100644 index 528654e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plane-car.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plane-train.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plane-train.svg deleted file mode 100644 index f28ddbb1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plane-train.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-open-outline.svg deleted file mode 100644 index 17c9768e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-open.svg deleted file mode 100644 index 914e8e9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-outline.svg deleted file mode 100644 index 41637bed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock.svg deleted file mode 100644 index 3b974cd7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-multiple-outline.svg deleted file mode 100644 index 2690afd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-multiple.svg deleted file mode 100644 index 26d42f54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-outline.svg deleted file mode 100644 index ee92b357..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box.svg deleted file mode 100644 index 8b1de075..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-circle-outline.svg deleted file mode 100644 index 3d68d004..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-circle.svg deleted file mode 100644 index 3e2b9cbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-network-outline.svg deleted file mode 100644 index dc5f32cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-network.svg deleted file mode 100644 index 4cc52e30..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-outline.svg deleted file mode 100644 index d461696e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-pause.svg deleted file mode 100644 index 086b1dea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-protected-content.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-protected-content.svg deleted file mode 100644 index 440a99cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-protected-content.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-speed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-speed.svg deleted file mode 100644 index 0dbf77b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play-speed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play.svg deleted file mode 100644 index 6e314400..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-check.svg deleted file mode 100644 index 15c4121c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-edit.svg deleted file mode 100644 index 8d0fa1ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-minus.svg deleted file mode 100644 index d42289bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-music-outline.svg deleted file mode 100644 index 1e168af6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-music.svg deleted file mode 100644 index 904303ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-play.svg deleted file mode 100644 index 52c96813..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-plus.svg deleted file mode 100644 index 5b8c2108..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-remove.svg deleted file mode 100644 index 222cc577..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-star.svg deleted file mode 100644 index 4c3a45d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/playlist-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plex.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plex.svg deleted file mode 100644 index 96b7444d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pliers.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pliers.svg deleted file mode 100644 index 41ca1a00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pliers.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-multiple-outline.svg deleted file mode 100644 index 274dcb22..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-multiple.svg deleted file mode 100644 index 06a3e6ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-outline.svg deleted file mode 100644 index ad61b9cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box.svg deleted file mode 100644 index 42de9033..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-multiple-outline.svg deleted file mode 100644 index 805da6cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-multiple.svg deleted file mode 100644 index 21dfaf8e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-outline.svg deleted file mode 100644 index 6e90a770..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle.svg deleted file mode 100644 index e89c5378..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-lock-open.svg deleted file mode 100644 index cd0cf60c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-lock.svg deleted file mode 100644 index 89199340..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus-box.svg deleted file mode 100644 index 39fcc4f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus-variant.svg deleted file mode 100644 index 3f7371a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus.svg deleted file mode 100644 index 944954fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-network-outline.svg deleted file mode 100644 index 3b908912..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-network.svg deleted file mode 100644 index 7235806e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-outline.svg deleted file mode 100644 index 6caaa852..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-thick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-thick.svg deleted file mode 100644 index 7a089856..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus-thick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus.svg deleted file mode 100644 index 399ae9f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podcast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podcast.svg deleted file mode 100644 index c36265f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podcast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-bronze.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-bronze.svg deleted file mode 100644 index 3546c7f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-bronze.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-gold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-gold.svg deleted file mode 100644 index 5c45b57e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-gold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-silver.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-silver.svg deleted file mode 100644 index c2475949..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium-silver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium.svg deleted file mode 100644 index f95d7a2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/podium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/point-of-sale.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/point-of-sale.svg deleted file mode 100644 index fe43d97a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/point-of-sale.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pokeball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pokeball.svg deleted file mode 100644 index 012d5b6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pokeball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pokemon-go.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pokemon-go.svg deleted file mode 100644 index 767f0065..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pokemon-go.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/poker-chip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/poker-chip.svg deleted file mode 100644 index 5353c193..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/poker-chip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polaroid.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polaroid.svg deleted file mode 100644 index fa3e0bdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polaroid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-badge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-badge-outline.svg deleted file mode 100644 index 10b3b0fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-badge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-badge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-badge.svg deleted file mode 100644 index 433e58ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-station.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-station.svg deleted file mode 100644 index 891b44b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/police-station.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/poll.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/poll.svg deleted file mode 100644 index 532e791b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/poll.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polo.svg deleted file mode 100644 index 6402ec60..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polymer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polymer.svg deleted file mode 100644 index 3988ec2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/polymer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pool-thermometer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pool-thermometer.svg deleted file mode 100644 index 827421be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pool-thermometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pool.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pool.svg deleted file mode 100644 index 396f9097..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/popcorn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/popcorn.svg deleted file mode 100644 index f3639096..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/popcorn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post-lamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post-lamp.svg deleted file mode 100644 index 8d021202..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post-lamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post-outline.svg deleted file mode 100644 index f7641d30..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post.svg deleted file mode 100644 index 3f1f4b0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/post.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/postage-stamp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/postage-stamp.svg deleted file mode 100644 index 8a06e6a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/postage-stamp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-mix-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-mix-outline.svg deleted file mode 100644 index 3415ecf0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-mix-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-mix.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-mix.svg deleted file mode 100644 index 8b366b41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-mix.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-outline.svg deleted file mode 100644 index 290a5cef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-steam-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-steam-outline.svg deleted file mode 100644 index 80cb0ef1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-steam-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-steam.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-steam.svg deleted file mode 100644 index 5545fd49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot-steam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot.svg deleted file mode 100644 index 1afc15e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound-box-outline.svg deleted file mode 100644 index 33a23ca9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound-box.svg deleted file mode 100644 index d33f3134..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound.svg deleted file mode 100644 index 44e783f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-cycle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-cycle.svg deleted file mode 100644 index daa3994a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-cycle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-off.svg deleted file mode 100644 index 30d30971..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-on.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-on.svg deleted file mode 100644 index 75f68832..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-on.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-off-outline.svg deleted file mode 100644 index b1b20a7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-off.svg deleted file mode 100644 index 79392567..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-outline.svg deleted file mode 100644 index 291e2bd4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug.svg deleted file mode 100644 index 7871116c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-plug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-settings.svg deleted file mode 100644 index 5146ef03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-sleep.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-sleep.svg deleted file mode 100644 index 1a07888f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-sleep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-au.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-au.svg deleted file mode 100644 index 4275459e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-au.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-ch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-ch.svg deleted file mode 100644 index 99d89bd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-ch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-de.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-de.svg deleted file mode 100644 index 915874a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-de.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-eu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-eu.svg deleted file mode 100644 index 6c4762fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-eu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-fr.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-fr.svg deleted file mode 100644 index 6ee84b5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-fr.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-it.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-it.svg deleted file mode 100644 index 1d02111a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-it.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-jp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-jp.svg deleted file mode 100644 index a7da525c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-jp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-uk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-uk.svg deleted file mode 100644 index 380e5460..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-uk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-us.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-us.svg deleted file mode 100644 index 54ca7a5a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket-us.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket.svg deleted file mode 100644 index ca3c2903..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-socket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-standby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-standby.svg deleted file mode 100644 index a099d733..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power-standby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power.svg deleted file mode 100644 index fd5d24d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/power.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/powershell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/powershell.svg deleted file mode 100644 index 9654fa58..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/powershell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/prescription.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/prescription.svg deleted file mode 100644 index cf73b54a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/prescription.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/presentation-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/presentation-play.svg deleted file mode 100644 index 0bb8e573..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/presentation-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/presentation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/presentation.svg deleted file mode 100644 index cd946eff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/presentation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pretzel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pretzel.svg deleted file mode 100644 index df58dc5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pretzel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-alert-outline.svg deleted file mode 100644 index 1b0450bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-alert.svg deleted file mode 100644 index e0120ec7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-heat-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-heat-outline.svg deleted file mode 100644 index c7350d28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-heat-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-heat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-heat.svg deleted file mode 100644 index d6725447..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-heat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-off-outline.svg deleted file mode 100644 index 11ceda2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-off.svg deleted file mode 100644 index 94825565..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-outline.svg deleted file mode 100644 index 8fb345a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle.svg deleted file mode 100644 index 44acbd3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-nozzle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-off.svg deleted file mode 100644 index f62c559a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d.svg deleted file mode 100644 index 31b23007..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-3d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-alert.svg deleted file mode 100644 index a125c7de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-check.svg deleted file mode 100644 index 74f85761..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-eye.svg deleted file mode 100644 index 810035f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-off-outline.svg deleted file mode 100644 index e4af8e74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-off.svg deleted file mode 100644 index 03d5aaf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-outline.svg deleted file mode 100644 index 94e31286..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-pos.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-pos.svg deleted file mode 100644 index 80c697bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-pos.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-search.svg deleted file mode 100644 index ac88fb0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-settings.svg deleted file mode 100644 index efb01892..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-wireless.svg deleted file mode 100644 index 24180ae5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer.svg deleted file mode 100644 index 642d1e0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/printer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/priority-high.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/priority-high.svg deleted file mode 100644 index 30300244..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/priority-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/priority-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/priority-low.svg deleted file mode 100644 index b835dd0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/priority-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/professional-hexagon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/professional-hexagon.svg deleted file mode 100644 index 61029d80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/professional-hexagon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-alert.svg deleted file mode 100644 index 832fd278..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-check.svg deleted file mode 100644 index cc435928..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-clock.svg deleted file mode 100644 index 4157358c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-close.svg deleted file mode 100644 index 721271e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-download.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-download.svg deleted file mode 100644 index e14e0791..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-helper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-helper.svg deleted file mode 100644 index de84a6ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-helper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-pencil.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-pencil.svg deleted file mode 100644 index 9876b79a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-pencil.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-question.svg deleted file mode 100644 index 002340c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-star.svg deleted file mode 100644 index 14f01cae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-upload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-upload.svg deleted file mode 100644 index 3f4a38db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-wrench.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-wrench.svg deleted file mode 100644 index 3f1fff52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/progress-wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-off.svg deleted file mode 100644 index 833a218e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-off-outline.svg deleted file mode 100644 index 5fcb3cfa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-off.svg deleted file mode 100644 index 24ad933d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-outline.svg deleted file mode 100644 index 3318c95f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-off-outline.svg deleted file mode 100644 index 01e5da63..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-off.svg deleted file mode 100644 index 5bb6835f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-outline.svg deleted file mode 100644 index 48b0902c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant.svg deleted file mode 100644 index b5a59678..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen.svg deleted file mode 100644 index a3361e9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector-screen.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector.svg deleted file mode 100644 index 2e5dbf1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/projector.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/propane-tank-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/propane-tank-outline.svg deleted file mode 100644 index 62f88e37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/propane-tank-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/propane-tank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/propane-tank.svg deleted file mode 100644 index 075af721..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/propane-tank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/protocol.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/protocol.svg deleted file mode 100644 index eed653ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/protocol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/publish-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/publish-off.svg deleted file mode 100644 index 293260db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/publish-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/publish.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/publish.svg deleted file mode 100644 index a5d21b26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/publish.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pulse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pulse.svg deleted file mode 100644 index 02d1ca7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pulse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pump-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pump-off.svg deleted file mode 100644 index 3e24cdd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pump-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pump.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pump.svg deleted file mode 100644 index e1e64f3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pump.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pumpkin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pumpkin.svg deleted file mode 100644 index e05f1e05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pumpkin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/purse-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/purse-outline.svg deleted file mode 100644 index baf03870..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/purse-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/purse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/purse.svg deleted file mode 100644 index 0c808e87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/purse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-check-outline.svg deleted file mode 100644 index b538f9f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-check.svg deleted file mode 100644 index 6f0f45fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-edit-outline.svg deleted file mode 100644 index b6e4d42d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-edit.svg deleted file mode 100644 index 8bb4c7dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-heart-outline.svg deleted file mode 100644 index f865acd7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-heart.svg deleted file mode 100644 index 32eb5f33..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-minus-outline.svg deleted file mode 100644 index 7409b862..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-minus.svg deleted file mode 100644 index 0725c0ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-outline.svg deleted file mode 100644 index 8066d5d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-plus-outline.svg deleted file mode 100644 index ba0bbd41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-plus.svg deleted file mode 100644 index ba7020a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-remove-outline.svg deleted file mode 100644 index 1df3c0d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-remove.svg deleted file mode 100644 index 49d92061..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-star-outline.svg deleted file mode 100644 index 50f9f695..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-star.svg deleted file mode 100644 index 9a722bcd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle.svg deleted file mode 100644 index baf5f932..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/puzzle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pyramid-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pyramid-off.svg deleted file mode 100644 index 65ede5b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pyramid-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pyramid.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pyramid.svg deleted file mode 100644 index a2358032..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/pyramid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qi.svg deleted file mode 100644 index 17344359..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qqchat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qqchat.svg deleted file mode 100644 index a01431b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qqchat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-edit.svg deleted file mode 100644 index 1ed07549..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-minus.svg deleted file mode 100644 index d97f564b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-plus.svg deleted file mode 100644 index a9e9ceb0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-remove.svg deleted file mode 100644 index 1e155adb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-scan.svg deleted file mode 100644 index ce16cf91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode.svg deleted file mode 100644 index 28385f2b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/qrcode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quadcopter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quadcopter.svg deleted file mode 100644 index 9d1239ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quadcopter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-high.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-high.svg deleted file mode 100644 index 795904fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-low.svg deleted file mode 100644 index c75adcfb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-medium.svg deleted file mode 100644 index f4c440a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quality-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quora.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quora.svg deleted file mode 100644 index c150d9e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/quora.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit-variant-outline.svg deleted file mode 100644 index 9e3de275..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit-variant.svg deleted file mode 100644 index 89bfca48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit.svg deleted file mode 100644 index 41ef18f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rabbit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/racing-helmet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/racing-helmet.svg deleted file mode 100644 index a14e096e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/racing-helmet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/racquetball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/racquetball.svg deleted file mode 100644 index d16db5a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/racquetball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radar.svg deleted file mode 100644 index 4084a854..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator-disabled.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator-disabled.svg deleted file mode 100644 index 153e69e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator-disabled.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator-off.svg deleted file mode 100644 index f5325694..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator.svg deleted file mode 100644 index 7ff98eec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiator.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-am.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-am.svg deleted file mode 100644 index 93c07974..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-am.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-fm.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-fm.svg deleted file mode 100644 index 99812a0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-fm.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-handheld.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-handheld.svg deleted file mode 100644 index 3e9254ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-handheld.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-off.svg deleted file mode 100644 index 22267d14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-tower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-tower.svg deleted file mode 100644 index 9b82009e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio-tower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio.svg deleted file mode 100644 index 51a08c87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-circle-outline.svg deleted file mode 100644 index 2e9362dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-circle.svg deleted file mode 100644 index a2c2c92f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-off.svg deleted file mode 100644 index d2c530da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive.svg deleted file mode 100644 index 3a84c98b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radioactive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiobox-blank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiobox-blank.svg deleted file mode 100644 index 22e0a56d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiobox-blank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiobox-marked.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiobox-marked.svg deleted file mode 100644 index 79f129c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiobox-marked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiology-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiology-box-outline.svg deleted file mode 100644 index 8a70095c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiology-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiology-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiology-box.svg deleted file mode 100644 index ad4f47b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radiology-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radius-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radius-outline.svg deleted file mode 100644 index c7da81dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radius-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radius.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radius.svg deleted file mode 100644 index bed7a6f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/radius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/railroad-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/railroad-light.svg deleted file mode 100644 index 6c61c9b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/railroad-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rake.svg deleted file mode 100644 index 1c6e42e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raspberry-pi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raspberry-pi.svg deleted file mode 100644 index d340c128..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raspberry-pi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raw-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raw-off.svg deleted file mode 100644 index c2afde9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raw-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raw.svg deleted file mode 100644 index 430a1ec2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/raw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-end-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-end-arrow.svg deleted file mode 100644 index ac2bb42f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-end-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-end.svg deleted file mode 100644 index 08f8d201..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-arrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-arrow.svg deleted file mode 100644 index f8ea8f3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-arrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-end.svg deleted file mode 100644 index dc15f31f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-vertex-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-vertex-end.svg deleted file mode 100644 index 73022575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start-vertex-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start.svg deleted file mode 100644 index 805f2c81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-start.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-vertex.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-vertex.svg deleted file mode 100644 index a3e94e89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ray-vertex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/razor-double-edge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/razor-double-edge.svg deleted file mode 100644 index 187ef383..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/razor-double-edge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/razor-single-edge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/razor-single-edge.svg deleted file mode 100644 index 9e04a938..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/razor-single-edge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/react.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/react.svg deleted file mode 100644 index d0a5d8f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/read.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/read.svg deleted file mode 100644 index 14f137ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/read.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-outline.svg deleted file mode 100644 index 43de36be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-check-outline.svg deleted file mode 100644 index 84d0198c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-check.svg deleted file mode 100644 index 4567b514..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-minus-outline.svg deleted file mode 100644 index ed3de0cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-minus.svg deleted file mode 100644 index 1c588016..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-outline.svg deleted file mode 100644 index d521dadc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-plus-outline.svg deleted file mode 100644 index 30f3299d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-plus.svg deleted file mode 100644 index aa1cff19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-remove-outline.svg deleted file mode 100644 index 3702b9af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-remove.svg deleted file mode 100644 index 39a5c1c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text.svg deleted file mode 100644 index 9bf833eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt.svg deleted file mode 100644 index 5c056fd4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/receipt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-circle-outline.svg deleted file mode 100644 index bcb7dc3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-circle.svg deleted file mode 100644 index d96c2cbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-player.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-player.svg deleted file mode 100644 index 54349807..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-player.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-rec.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-rec.svg deleted file mode 100644 index 5d42fe34..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record-rec.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record.svg deleted file mode 100644 index 8b7d89b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/record.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rectangle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rectangle-outline.svg deleted file mode 100644 index 77ec50de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rectangle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rectangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rectangle.svg deleted file mode 100644 index 7a170f62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rectangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/recycle-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/recycle-variant.svg deleted file mode 100644 index 58bfd464..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/recycle-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/recycle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/recycle.svg deleted file mode 100644 index 7316ada5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/recycle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reddit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reddit.svg deleted file mode 100644 index f175199e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reddit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redhat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redhat.svg deleted file mode 100644 index b447ca05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redhat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redo-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redo-variant.svg deleted file mode 100644 index bcef1de7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redo-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redo.svg deleted file mode 100644 index 523b6be4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/redo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reflect-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reflect-horizontal.svg deleted file mode 100644 index c985a024..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reflect-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reflect-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reflect-vertical.svg deleted file mode 100644 index c3eec2f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reflect-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh-auto.svg deleted file mode 100644 index 3a17f380..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh-circle.svg deleted file mode 100644 index 6b620a7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh.svg deleted file mode 100644 index 57eb75d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/regex.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/regex.svg deleted file mode 100644 index 539867b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/regex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/registered-trademark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/registered-trademark.svg deleted file mode 100644 index d8b03a65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/registered-trademark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reiterate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reiterate.svg deleted file mode 100644 index 260b6fbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reiterate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-many.svg deleted file mode 100644 index af74949a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-one-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-one-or-many.svg deleted file mode 100644 index 55d80377..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-one-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-one.svg deleted file mode 100644 index 0ff44828..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-only-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-only-one.svg deleted file mode 100644 index e0b41063..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-only-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-zero-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-zero-or-many.svg deleted file mode 100644 index 39fcedd7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-zero-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-zero-or-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-zero-or-one.svg deleted file mode 100644 index 2451ec6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-many-to-zero-or-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-many.svg deleted file mode 100644 index a96c8abd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-one-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-one-or-many.svg deleted file mode 100644 index 6a9334c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-one-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-one.svg deleted file mode 100644 index b98daa92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-only-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-only-one.svg deleted file mode 100644 index 483f4a90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-only-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-zero-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-zero-or-many.svg deleted file mode 100644 index 647faf2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-zero-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-zero-or-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-zero-or-one.svg deleted file mode 100644 index b71a0c57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-or-many-to-zero-or-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-many.svg deleted file mode 100644 index efa932af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-one-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-one-or-many.svg deleted file mode 100644 index fae9458a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-one-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-one.svg deleted file mode 100644 index 0a5d6a2a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-only-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-only-one.svg deleted file mode 100644 index ab00b8f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-only-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-zero-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-zero-or-many.svg deleted file mode 100644 index 5d6e4681..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-zero-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-zero-or-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-zero-or-one.svg deleted file mode 100644 index cf418576..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-one-to-zero-or-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-many.svg deleted file mode 100644 index 66c5194b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-one-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-one-or-many.svg deleted file mode 100644 index 43707795..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-one-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-one.svg deleted file mode 100644 index 4ee437d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-only-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-only-one.svg deleted file mode 100644 index db2cd6d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-only-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-zero-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-zero-or-many.svg deleted file mode 100644 index 57a3c3c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-zero-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-zero-or-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-zero-or-one.svg deleted file mode 100644 index af7dfcf9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-only-one-to-zero-or-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-many.svg deleted file mode 100644 index cf0bceaa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-one-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-one-or-many.svg deleted file mode 100644 index 4d424240..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-one-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-one.svg deleted file mode 100644 index e3aac33f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-only-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-only-one.svg deleted file mode 100644 index c5a535c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-only-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-zero-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-zero-or-many.svg deleted file mode 100644 index a6a270c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-zero-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-zero-or-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-zero-or-one.svg deleted file mode 100644 index 6218d831..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-many-to-zero-or-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-many.svg deleted file mode 100644 index df9c66c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-one-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-one-or-many.svg deleted file mode 100644 index 56404165..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-one-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-one.svg deleted file mode 100644 index ca6097a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-only-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-only-one.svg deleted file mode 100644 index 10b730b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-only-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-zero-or-many.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-zero-or-many.svg deleted file mode 100644 index 6c262bf2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-zero-or-many.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-zero-or-one.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-zero-or-one.svg deleted file mode 100644 index 6e4deef5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relation-zero-or-one-to-zero-or-one.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relative-scale.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relative-scale.svg deleted file mode 100644 index 9bde502e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/relative-scale.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reload-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reload-alert.svg deleted file mode 100644 index cd529adf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reload-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reload.svg deleted file mode 100644 index 928b4682..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reminder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reminder.svg deleted file mode 100644 index e41767c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reminder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-desktop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-desktop.svg deleted file mode 100644 index ffee9fc9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-desktop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-off.svg deleted file mode 100644 index d5b899fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-tv-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-tv-off.svg deleted file mode 100644 index 2a11bc40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-tv-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-tv.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-tv.svg deleted file mode 100644 index 5fe6ecfc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote-tv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote.svg deleted file mode 100644 index fc9cca3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/remote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rename-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rename-box.svg deleted file mode 100644 index f3b797b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rename-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reorder-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reorder-horizontal.svg deleted file mode 100644 index b71043d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reorder-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reorder-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reorder-vertical.svg deleted file mode 100644 index 14aba463..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reorder-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-off.svg deleted file mode 100644 index 00fc5356..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-once.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-once.svg deleted file mode 100644 index 6f833c7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-once.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-variant.svg deleted file mode 100644 index 0a307e3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat.svg deleted file mode 100644 index 7feeb303..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/repeat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/replay.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/replay.svg deleted file mode 100644 index 662ef7ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/replay.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-all-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-all-outline.svg deleted file mode 100644 index 7aaf496e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-all-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-all.svg deleted file mode 100644 index d2c9a8d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-circle.svg deleted file mode 100644 index 44a6a558..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-outline.svg deleted file mode 100644 index ccf9865d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply.svg deleted file mode 100644 index 99b68156..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reply.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reproduction.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reproduction.svg deleted file mode 100644 index a06b28c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/reproduction.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resistor-nodes.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resistor-nodes.svg deleted file mode 100644 index f6e24f06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resistor-nodes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resistor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resistor.svg deleted file mode 100644 index b1966db8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resistor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resize-bottom-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resize-bottom-right.svg deleted file mode 100644 index 0dd69733..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resize-bottom-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resize.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resize.svg deleted file mode 100644 index 7071b3fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/resize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/responsive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/responsive.svg deleted file mode 100644 index 78ea3a9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/responsive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart-alert.svg deleted file mode 100644 index d703711f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart-off.svg deleted file mode 100644 index f9fe0615..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart.svg deleted file mode 100644 index 7525db6e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restore-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restore-alert.svg deleted file mode 100644 index 2fe49fa4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restore-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restore.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restore.svg deleted file mode 100644 index 4feba8ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/restore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-10.svg deleted file mode 100644 index b9672d93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-15.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-15.svg deleted file mode 100644 index ceaae0da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-15.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-30.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-30.svg deleted file mode 100644 index 67edcf75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-30.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-45.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-45.svg deleted file mode 100644 index 904cd1da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-45.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-5.svg deleted file mode 100644 index c69df095..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-60.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-60.svg deleted file mode 100644 index 7230c159..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-60.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-outline.svg deleted file mode 100644 index 67707e4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind.svg deleted file mode 100644 index fbe35308..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rewind.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-medium-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-medium-outline.svg deleted file mode 100644 index e7db6b56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-medium-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-medium.svg deleted file mode 100644 index 6369192d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-outline.svg deleted file mode 100644 index b4d86dab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-split-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-split-outline.svg deleted file mode 100644 index f6a422d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-split-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-split.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-split.svg deleted file mode 100644 index a00b2df6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus-split.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus.svg deleted file mode 100644 index 5a5c7e26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rhombus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ribbon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ribbon.svg deleted file mode 100644 index 59bbd6c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ribbon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rice.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rice.svg deleted file mode 100644 index 3d96b10a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rice.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rickshaw-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rickshaw-electric.svg deleted file mode 100644 index 1791bb87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rickshaw-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rickshaw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rickshaw.svg deleted file mode 100644 index 74143276..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rickshaw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ring.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ring.svg deleted file mode 100644 index 54978ac5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ring.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rivet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rivet.svg deleted file mode 100644 index b3d6bcad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rivet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/road-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/road-variant.svg deleted file mode 100644 index 3e2c07b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/road-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/road.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/road.svg deleted file mode 100644 index 7a4c7a5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/road.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robber.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robber.svg deleted file mode 100644 index 987ceb92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robber.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-angry-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-angry-outline.svg deleted file mode 100644 index 9ce7aa1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-angry-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-angry.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-angry.svg deleted file mode 100644 index 623095d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-angry.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-confused-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-confused-outline.svg deleted file mode 100644 index 66ba0a65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-confused-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-confused.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-confused.svg deleted file mode 100644 index 8b2972eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-confused.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-dead-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-dead-outline.svg deleted file mode 100644 index dc7bd941..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-dead-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-dead.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-dead.svg deleted file mode 100644 index 8f8f72e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-dead.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-excited-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-excited-outline.svg deleted file mode 100644 index b64b04a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-excited-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-excited.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-excited.svg deleted file mode 100644 index 29b4c040..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-excited.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-happy-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-happy-outline.svg deleted file mode 100644 index f04a1581..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-happy-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-happy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-happy.svg deleted file mode 100644 index d21aa43e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-happy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-industrial-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-industrial-outline.svg deleted file mode 100644 index 636b53e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-industrial-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-industrial.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-industrial.svg deleted file mode 100644 index 92cb3b89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-industrial.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-love-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-love-outline.svg deleted file mode 100644 index e7d0282f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-love-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-love.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-love.svg deleted file mode 100644 index dddf1e84..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-love.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-mower-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-mower-outline.svg deleted file mode 100644 index 53c65366..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-mower-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-mower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-mower.svg deleted file mode 100644 index 901711ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-mower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-off-outline.svg deleted file mode 100644 index 6452338d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-off.svg deleted file mode 100644 index fba2abe8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-outline.svg deleted file mode 100644 index a2d4c2fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-alert.svg deleted file mode 100644 index df14a1a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-variant-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-variant-alert.svg deleted file mode 100644 index 6f948884..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-variant-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-variant.svg deleted file mode 100644 index f8c94b7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum.svg deleted file mode 100644 index 8e73b0f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot-vacuum.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot.svg deleted file mode 100644 index 1b4dd578..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/robot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-launch-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-launch-outline.svg deleted file mode 100644 index 01785390..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-launch-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-launch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-launch.svg deleted file mode 100644 index 64e24da5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-launch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-outline.svg deleted file mode 100644 index f4ae276c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket.svg deleted file mode 100644 index 0c691689..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rocket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rodent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rodent.svg deleted file mode 100644 index 8dae5063..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rodent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-shade-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-shade-closed.svg deleted file mode 100644 index 357504f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-shade-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-shade.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-shade.svg deleted file mode 100644 index 775e930e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-shade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-skate-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-skate-off.svg deleted file mode 100644 index 4a930fe8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-skate-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-skate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-skate.svg deleted file mode 100644 index e00e79ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roller-skate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollerblade-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollerblade-off.svg deleted file mode 100644 index da06a7b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollerblade-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollerblade.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollerblade.svg deleted file mode 100644 index 43dc1e4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollerblade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollupjs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollupjs.svg deleted file mode 100644 index 456fd8a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rollupjs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rolodex-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rolodex-outline.svg deleted file mode 100644 index db01880f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rolodex-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rolodex.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rolodex.svg deleted file mode 100644 index 898e481b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rolodex.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-1.svg deleted file mode 100644 index daa1b082..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-10.svg deleted file mode 100644 index 762ad1e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-2.svg deleted file mode 100644 index 2c31117c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-3.svg deleted file mode 100644 index b6bd65a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-4.svg deleted file mode 100644 index 5de6207b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-5.svg deleted file mode 100644 index c77b0108..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-6.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-6.svg deleted file mode 100644 index b375da00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-6.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-7.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-7.svg deleted file mode 100644 index 9a43f314..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-7.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-8.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-8.svg deleted file mode 100644 index 0b7a0f88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-8.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-9.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-9.svg deleted file mode 100644 index 50a53654..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/roman-numeral-9.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/room-service-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/room-service-outline.svg deleted file mode 100644 index f4a9095c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/room-service-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/room-service.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/room-service.svg deleted file mode 100644 index 48fab1a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/room-service.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-360.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-360.svg deleted file mode 100644 index 11304c0a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-360.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-3d-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-3d-variant.svg deleted file mode 100644 index d80ffe0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-3d-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-3d.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-3d.svg deleted file mode 100644 index d42d0d16..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-3d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-left-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-left-variant.svg deleted file mode 100644 index 215035c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-left-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-left.svg deleted file mode 100644 index 850d5889..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-orbit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-orbit.svg deleted file mode 100644 index 00ed2389..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-orbit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-right-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-right-variant.svg deleted file mode 100644 index f55449da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-right-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-right.svg deleted file mode 100644 index 736526b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rotate-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rounded-corner.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rounded-corner.svg deleted file mode 100644 index 0c3f0f17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rounded-corner.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-network.svg deleted file mode 100644 index 72525996..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless-off.svg deleted file mode 100644 index d134ec1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless-settings.svg deleted file mode 100644 index 02bbc9e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless.svg deleted file mode 100644 index 17469cf2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router.svg deleted file mode 100644 index d6c015e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/router.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/routes-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/routes-clock.svg deleted file mode 100644 index 95157267..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/routes-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/routes.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/routes.svg deleted file mode 100644 index 170a2655..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/routes.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rowing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rowing.svg deleted file mode 100644 index 7a75c1f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rowing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss-box.svg deleted file mode 100644 index 6047a6aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss-off.svg deleted file mode 100644 index bfd5fa67..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss.svg deleted file mode 100644 index 08a1881b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rss.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rug.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rug.svg deleted file mode 100644 index 7210d1bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rugby.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rugby.svg deleted file mode 100644 index 019b9f80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rugby.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler-square-compass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler-square-compass.svg deleted file mode 100644 index 179c1235..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler-square-compass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler-square.svg deleted file mode 100644 index 7c2bf022..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler.svg deleted file mode 100644 index 6aefa85f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ruler.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/run-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/run-fast.svg deleted file mode 100644 index 995daa5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/run-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/run.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/run.svg deleted file mode 100644 index 7b69ebe4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/run.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rv-truck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rv-truck.svg deleted file mode 100644 index 8e3e3706..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/rv-truck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sack-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sack-percent.svg deleted file mode 100644 index 2cd12688..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sack-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sack.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sack.svg deleted file mode 100644 index 52e65870..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe-square-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe-square-outline.svg deleted file mode 100644 index 2b72bf9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe-square-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe-square.svg deleted file mode 100644 index 2d4a49f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe.svg deleted file mode 100644 index d77889d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safety-goggles.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safety-goggles.svg deleted file mode 100644 index f956b16d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/safety-goggles.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sail-boat-sink.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sail-boat-sink.svg deleted file mode 100644 index aa642cf3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sail-boat-sink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sail-boat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sail-boat.svg deleted file mode 100644 index 5c4b4fd5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sail-boat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sale-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sale-outline.svg deleted file mode 100644 index 6a1cbcd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sale-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sale.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sale.svg deleted file mode 100644 index 4beb54c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sale.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/salesforce.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/salesforce.svg deleted file mode 100644 index 8d89a2e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/salesforce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sass.svg deleted file mode 100644 index c258dd05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite-uplink.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite-uplink.svg deleted file mode 100644 index dcc45a69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite-uplink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite-variant.svg deleted file mode 100644 index 5b7759c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite.svg deleted file mode 100644 index 97e56c78..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/satellite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sausage-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sausage-off.svg deleted file mode 100644 index 0595da50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sausage-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sausage.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sausage.svg deleted file mode 100644 index f6c91b16..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sausage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/saw-blade.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/saw-blade.svg deleted file mode 100644 index a190e1ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/saw-blade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sawtooth-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sawtooth-wave.svg deleted file mode 100644 index 491fcf59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sawtooth-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/saxophone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/saxophone.svg deleted file mode 100644 index f414b41d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/saxophone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-balance.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-balance.svg deleted file mode 100644 index 72335b81..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-balance.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-bathroom.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-bathroom.svg deleted file mode 100644 index b37324f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-bathroom.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-off.svg deleted file mode 100644 index ccfbde10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-unbalanced.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-unbalanced.svg deleted file mode 100644 index 3edbcf1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale-unbalanced.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale.svg deleted file mode 100644 index dbe2b1aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scale.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scan-helper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scan-helper.svg deleted file mode 100644 index 70d8a7af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scan-helper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scanner-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scanner-off.svg deleted file mode 100644 index 844b882a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scanner-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scanner.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scanner.svg deleted file mode 100644 index 356e5ee3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scanner.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scatter-plot-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scatter-plot-outline.svg deleted file mode 100644 index 367aab85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scatter-plot-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scatter-plot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scatter-plot.svg deleted file mode 100644 index a1b310a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scatter-plot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scent-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scent-off.svg deleted file mode 100644 index db2628eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scent-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scent.svg deleted file mode 100644 index 378b9a62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/school-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/school-outline.svg deleted file mode 100644 index b0b396e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/school-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/school.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/school.svg deleted file mode 100644 index 048903b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/school.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scissors-cutting.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scissors-cutting.svg deleted file mode 100644 index 6504a46a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scissors-cutting.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scooter-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scooter-electric.svg deleted file mode 100644 index 8cdecc5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scooter-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scooter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scooter.svg deleted file mode 100644 index 99d55e1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scooter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scoreboard-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scoreboard-outline.svg deleted file mode 100644 index bcabfd26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scoreboard-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scoreboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scoreboard.svg deleted file mode 100644 index 61d1f4eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/scoreboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screen-rotation-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screen-rotation-lock.svg deleted file mode 100644 index d615d159..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screen-rotation-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screen-rotation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screen-rotation.svg deleted file mode 100644 index 00dd2638..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screen-rotation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-flat-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-flat-top.svg deleted file mode 100644 index 58d842d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-flat-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-lag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-lag.svg deleted file mode 100644 index c44b6302..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-lag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-machine-flat-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-machine-flat-top.svg deleted file mode 100644 index 17717c73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-machine-flat-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-machine-round-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-machine-round-top.svg deleted file mode 100644 index 2edd25f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-machine-round-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-round-top.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-round-top.svg deleted file mode 100644 index 0fd37e66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screw-round-top.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screwdriver.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screwdriver.svg deleted file mode 100644 index 47bfc07b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/screwdriver.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-outline.svg deleted file mode 100644 index ece2af3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-key-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-key-outline.svg deleted file mode 100644 index e7321384..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-key-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-key.svg deleted file mode 100644 index 7d23c9e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-outline.svg deleted file mode 100644 index 54a6c7df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-play-outline.svg deleted file mode 100644 index 18a34686..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-play.svg deleted file mode 100644 index 8acf1adf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text.svg deleted file mode 100644 index aae16623..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script.svg deleted file mode 100644 index ad6209e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/script.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sd.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sd.svg deleted file mode 100644 index a1be60c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sd.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seal-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seal-variant.svg deleted file mode 100644 index c1f41f7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seal-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seal.svg deleted file mode 100644 index cbac5e9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/search-web.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/search-web.svg deleted file mode 100644 index 120a567c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/search-web.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-flat-angled.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-flat-angled.svg deleted file mode 100644 index 93f53ba1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-flat-angled.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-flat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-flat.svg deleted file mode 100644 index fd26e397..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-flat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-individual-suite.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-individual-suite.svg deleted file mode 100644 index 7b385fd5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-individual-suite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-extra.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-extra.svg deleted file mode 100644 index 3f2f05ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-extra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-normal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-normal.svg deleted file mode 100644 index 553e44f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-normal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-reduced.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-reduced.svg deleted file mode 100644 index b177dd04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-legroom-reduced.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-outline.svg deleted file mode 100644 index 6ecbd0a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-passenger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-passenger.svg deleted file mode 100644 index c71ad273..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-passenger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-recline-extra.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-recline-extra.svg deleted file mode 100644 index 7906f29c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-recline-extra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-recline-normal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-recline-normal.svg deleted file mode 100644 index 5647e703..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat-recline-normal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat.svg deleted file mode 100644 index b60212bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seatbelt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seatbelt.svg deleted file mode 100644 index f9b881cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seatbelt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/security-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/security-network.svg deleted file mode 100644 index 84145b82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/security-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/security.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/security.svg deleted file mode 100644 index 6240ce2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/security.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-off-outline.svg deleted file mode 100644 index 9c2ec2c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-off.svg deleted file mode 100644 index e0a3a325..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-outline.svg deleted file mode 100644 index 0284f896..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-plus-outline.svg deleted file mode 100644 index e414bed5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-plus.svg deleted file mode 100644 index cf1842e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed.svg deleted file mode 100644 index 746b47d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seesaw.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seesaw.svg deleted file mode 100644 index 959a8f91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/seesaw.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/segment.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/segment.svg deleted file mode 100644 index 6fe5e5eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/segment.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-all.svg deleted file mode 100644 index 6c60728e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-arrow-down.svg deleted file mode 100644 index 3060555c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-arrow-up.svg deleted file mode 100644 index e2176ce1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-color.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-color.svg deleted file mode 100644 index 1fed0b45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-color.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-compare.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-compare.svg deleted file mode 100644 index a387e2a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-compare.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-drag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-drag.svg deleted file mode 100644 index ccb61784..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-drag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-group.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-group.svg deleted file mode 100644 index 1e96597e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-group.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-inverse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-inverse.svg deleted file mode 100644 index 23c937fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-inverse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-marker.svg deleted file mode 100644 index f9833341..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-multiple-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-multiple-marker.svg deleted file mode 100644 index ad0d26ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-multiple-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-multiple.svg deleted file mode 100644 index c8ac2933..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-off.svg deleted file mode 100644 index ee38cac6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-place.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-place.svg deleted file mode 100644 index a3639d12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-place.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-remove.svg deleted file mode 100644 index 6d302993..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-search.svg deleted file mode 100644 index 7518f5fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select.svg deleted file mode 100644 index d16f9f70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-drag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-drag.svg deleted file mode 100644 index 7ed1535c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-drag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse-arrow-inside.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse-arrow-inside.svg deleted file mode 100644 index 2bbe8275..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse-arrow-inside.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse-remove.svg deleted file mode 100644 index e7fb6c91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse.svg deleted file mode 100644 index da11f5e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-ellipse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-marker.svg deleted file mode 100644 index 605dda51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-multiple-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-multiple-marker.svg deleted file mode 100644 index 0f245a43..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-multiple-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-multiple.svg deleted file mode 100644 index dc7e21ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-off.svg deleted file mode 100644 index d394bfab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-remove.svg deleted file mode 100644 index a658d1a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-search.svg deleted file mode 100644 index 5528974a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection.svg deleted file mode 100644 index fd167049..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/selection.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/semantic-web.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/semantic-web.svg deleted file mode 100644 index 5ecb1d54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/semantic-web.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-check-outline.svg deleted file mode 100644 index fd64719a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-check.svg deleted file mode 100644 index 4be8fd46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-circle-outline.svg deleted file mode 100644 index cb738e88..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-circle.svg deleted file mode 100644 index 81fa3512..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-clock-outline.svg deleted file mode 100644 index 229f77ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-clock.svg deleted file mode 100644 index 9f6135dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-lock-outline.svg deleted file mode 100644 index ba1a1f41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-lock.svg deleted file mode 100644 index 5f9a3393..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-outline.svg deleted file mode 100644 index 0b894b5f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send.svg deleted file mode 100644 index 59b10b5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/send.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/serial-port.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/serial-port.svg deleted file mode 100644 index 8699257f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/serial-port.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-minus.svg deleted file mode 100644 index ff677827..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-network-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-network-off.svg deleted file mode 100644 index 4ee68644..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-network-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-network.svg deleted file mode 100644 index 3e323967..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-off.svg deleted file mode 100644 index e5d79ea4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-plus.svg deleted file mode 100644 index 21c98865..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-remove.svg deleted file mode 100644 index 26df62f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-security.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-security.svg deleted file mode 100644 index 6d9a8ed6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server-security.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server.svg deleted file mode 100644 index 60b1a9f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/server.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-all.svg deleted file mode 100644 index 334a80ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-center-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-center-right.svg deleted file mode 100644 index 9ff2cee3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-center-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-center.svg deleted file mode 100644 index 9b89ed3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left-center.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left-center.svg deleted file mode 100644 index a454a0fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left-center.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left-right.svg deleted file mode 100644 index 80f22267..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left.svg deleted file mode 100644 index cd505af0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-merge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-merge.svg deleted file mode 100644 index 9f09fcbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-merge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-none.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-none.svg deleted file mode 100644 index 2a006dd6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-none.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-right.svg deleted file mode 100644 index 41be3c59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-split.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-split.svg deleted file mode 100644 index 48d80c73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-split.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-square.svg deleted file mode 100644 index 426279d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-top-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-top-box.svg deleted file mode 100644 index 1552bb0a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/set-top-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/settings-helper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/settings-helper.svg deleted file mode 100644 index 556950ee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/settings-helper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shaker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shaker-outline.svg deleted file mode 100644 index 62524c9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shaker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shaker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shaker.svg deleted file mode 100644 index 2a3cc051..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-circle-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-circle-plus.svg deleted file mode 100644 index 68e9d375..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-circle-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-outline.svg deleted file mode 100644 index 7424ce45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-oval-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-oval-plus.svg deleted file mode 100644 index 4704d4f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-oval-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-plus.svg deleted file mode 100644 index 954614dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-polygon-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-polygon-plus.svg deleted file mode 100644 index a339c9bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-polygon-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-rectangle-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-rectangle-plus.svg deleted file mode 100644 index 661ad894..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-rectangle-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-square-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-square-plus.svg deleted file mode 100644 index aba97fb1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-square-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-square-rounded-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-square-rounded-plus.svg deleted file mode 100644 index a56cd353..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape-square-rounded-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape.svg deleted file mode 100644 index cabc9812..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shape.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-all-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-all-outline.svg deleted file mode 100644 index 63cffcdd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-all-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-all.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-all.svg deleted file mode 100644 index 82a68508..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-all.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-circle.svg deleted file mode 100644 index 00fd1ecd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-off-outline.svg deleted file mode 100644 index 5b6004b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-off.svg deleted file mode 100644 index 37320c4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-outline.svg deleted file mode 100644 index c1a6f74f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-variant-outline.svg deleted file mode 100644 index 56c6b7c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-variant.svg deleted file mode 100644 index b9588160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share.svg deleted file mode 100644 index 583e620b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/share.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-fin-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-fin-outline.svg deleted file mode 100644 index e1d75ca3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-fin-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-fin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-fin.svg deleted file mode 100644 index 7a02a7b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-fin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-off.svg deleted file mode 100644 index 41343cd8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark.svg deleted file mode 100644 index e06ab23b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sheep.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sheep.svg deleted file mode 100644 index 7418038f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sheep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-outline.svg deleted file mode 100644 index 7cfc802e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-variant-outline.svg deleted file mode 100644 index 34e16bee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-variant.svg deleted file mode 100644 index dfcf0713..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account.svg deleted file mode 100644 index de437831..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-airplane-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-airplane-outline.svg deleted file mode 100644 index 5fb3a217..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-airplane-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-airplane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-airplane.svg deleted file mode 100644 index 325463b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-airplane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-alert-outline.svg deleted file mode 100644 index ed621aec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-alert.svg deleted file mode 100644 index 603de02c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-bug-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-bug-outline.svg deleted file mode 100644 index 3ddf603f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-bug-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-bug.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-bug.svg deleted file mode 100644 index 0edf1df3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-bug.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-car.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-car.svg deleted file mode 100644 index 590646e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-car.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-check-outline.svg deleted file mode 100644 index d3394a6e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-check.svg deleted file mode 100644 index 9ba4ee64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-cross-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-cross-outline.svg deleted file mode 100644 index 3b040a40..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-cross-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-cross.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-cross.svg deleted file mode 100644 index 25194c54..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-cross.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-crown-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-crown-outline.svg deleted file mode 100644 index 58f687e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-crown-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-crown.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-crown.svg deleted file mode 100644 index c6fbfecf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-crown.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-edit-outline.svg deleted file mode 100644 index 4598a1d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-edit.svg deleted file mode 100644 index 0fac33a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-half-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-half-full.svg deleted file mode 100644 index f01771dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-half-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-half.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-half.svg deleted file mode 100644 index 85466252..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-home-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-home-outline.svg deleted file mode 100644 index d25082df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-home-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-home.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-home.svg deleted file mode 100644 index 393ef9d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-home.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-key-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-key-outline.svg deleted file mode 100644 index ed8735d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-key-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-key.svg deleted file mode 100644 index 14f22837..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-link-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-link-variant-outline.svg deleted file mode 100644 index 2dc63ce3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-link-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-link-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-link-variant.svg deleted file mode 100644 index 4fec4e6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-link-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-open-outline.svg deleted file mode 100644 index acdd27a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-open.svg deleted file mode 100644 index 58761034..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-outline.svg deleted file mode 100644 index 2ef1055e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock.svg deleted file mode 100644 index efba9ddc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-moon-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-moon-outline.svg deleted file mode 100644 index b9253956..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-moon-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-moon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-moon.svg deleted file mode 100644 index bf57987f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-moon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-off-outline.svg deleted file mode 100644 index 19eb339b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-off.svg deleted file mode 100644 index 3765f946..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-outline.svg deleted file mode 100644 index c454e6b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-plus-outline.svg deleted file mode 100644 index 564eaa2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-plus.svg deleted file mode 100644 index f0c2f832..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-refresh-outline.svg deleted file mode 100644 index 342feb69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-refresh.svg deleted file mode 100644 index d8fc6c3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-remove-outline.svg deleted file mode 100644 index 0e55d576..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-remove.svg deleted file mode 100644 index 221f62dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-search.svg deleted file mode 100644 index 0c0493e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-star-outline.svg deleted file mode 100644 index d44b699d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-star.svg deleted file mode 100644 index dbfde60b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sun-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sun-outline.svg deleted file mode 100644 index 8ce79308..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sun-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sun.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sun.svg deleted file mode 100644 index f05c7611..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sun.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sword-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sword-outline.svg deleted file mode 100644 index ba0d588c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sword-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sword.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sword.svg deleted file mode 100644 index 190d91ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sword.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sync-outline.svg deleted file mode 100644 index 570362ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sync.svg deleted file mode 100644 index 34d9456a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield.svg deleted file mode 100644 index 53dce01f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shield.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shimmer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shimmer.svg deleted file mode 100644 index 40424d48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shimmer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ship-wheel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ship-wheel.svg deleted file mode 100644 index 8be5d76f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ship-wheel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shipping-pallet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shipping-pallet.svg deleted file mode 100644 index 28a6ff07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shipping-pallet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-ballet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-ballet.svg deleted file mode 100644 index 41306537..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-ballet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-cleat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-cleat.svg deleted file mode 100644 index 22d60ed4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-cleat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-formal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-formal.svg deleted file mode 100644 index c69f1da7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-formal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-heel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-heel.svg deleted file mode 100644 index 0cdc40e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-heel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-print.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-print.svg deleted file mode 100644 index 764707ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-print.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-sneaker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-sneaker.svg deleted file mode 100644 index d9263c3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shoe-sneaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-music.svg deleted file mode 100644 index a010411b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-outline.svg deleted file mode 100644 index 4999a19d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-search-outline.svg deleted file mode 100644 index 51e490aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-search.svg deleted file mode 100644 index 7e3f24a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping.svg deleted file mode 100644 index 9afb4d0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shopping.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shore.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shore.svg deleted file mode 100644 index dfb8b596..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shovel-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shovel-off.svg deleted file mode 100644 index b956c395..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shovel-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shovel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shovel.svg deleted file mode 100644 index 9a11a803..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shovel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shower-head.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shower-head.svg deleted file mode 100644 index 375c2920..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shower-head.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shower.svg deleted file mode 100644 index 83a02f2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shredder.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shredder.svg deleted file mode 100644 index 76467f7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shredder.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle-disabled.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle-disabled.svg deleted file mode 100644 index d58a2233..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle-disabled.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle-variant.svg deleted file mode 100644 index 68135062..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle.svg deleted file mode 100644 index 3994c65d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuffle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuriken.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuriken.svg deleted file mode 100644 index e9f02563..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/shuriken.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sickle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sickle.svg deleted file mode 100644 index 75d89e70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sickle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sigma-lower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sigma-lower.svg deleted file mode 100644 index 80f562e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sigma-lower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sigma.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sigma.svg deleted file mode 100644 index c27c4b51..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sigma.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-caution.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-caution.svg deleted file mode 100644 index 22d20182..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-caution.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-minus.svg deleted file mode 100644 index 1f763e86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-plus.svg deleted file mode 100644 index 3cd51517..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-remove.svg deleted file mode 100644 index c06900b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction.svg deleted file mode 100644 index f5b09d86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-direction.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-language-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-language-outline.svg deleted file mode 100644 index 226bc121..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-language-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-language.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-language.svg deleted file mode 100644 index 726e9efb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-language.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-pole.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-pole.svg deleted file mode 100644 index 26c912e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-pole.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-real-estate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-real-estate.svg deleted file mode 100644 index 89ff6016..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-real-estate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-text.svg deleted file mode 100644 index efb6e929..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-yield.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-yield.svg deleted file mode 100644 index 35363c8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sign-yield.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-2g.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-2g.svg deleted file mode 100644 index dd34be57..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-2g.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-3g.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-3g.svg deleted file mode 100644 index c5af3458..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-3g.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-4g.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-4g.svg deleted file mode 100644 index 2be83669..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-4g.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-5g.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-5g.svg deleted file mode 100644 index 74c75ed7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-5g.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-1.svg deleted file mode 100644 index ac3e46cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-2.svg deleted file mode 100644 index be35c45e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-3.svg deleted file mode 100644 index 442e1396..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-outline.svg deleted file mode 100644 index 69097f6a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-cellular-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-distance-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-distance-variant.svg deleted file mode 100644 index 4126d482..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-distance-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-hspa-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-hspa-plus.svg deleted file mode 100644 index 03ebd698..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-hspa-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-hspa.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-hspa.svg deleted file mode 100644 index f7ce3db7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-hspa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-off.svg deleted file mode 100644 index c0275a7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-variant.svg deleted file mode 100644 index 3665512d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal.svg deleted file mode 100644 index 0c240edd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-freehand.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-freehand.svg deleted file mode 100644 index 1ea65d15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-freehand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-image.svg deleted file mode 100644 index b991d284..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-text.svg deleted file mode 100644 index b0f5a219..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature.svg deleted file mode 100644 index 93aed0bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/signature.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silo-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silo-outline.svg deleted file mode 100644 index d0fddc12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silo-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silo.svg deleted file mode 100644 index 26a2b334..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-clean.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-clean.svg deleted file mode 100644 index 9e8ba193..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-clean.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-fork-knife.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-fork-knife.svg deleted file mode 100644 index 60858d14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-fork-knife.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-fork.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-fork.svg deleted file mode 100644 index abe3d544..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-fork.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-spoon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-spoon.svg deleted file mode 100644 index e804c49b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-spoon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-variant.svg deleted file mode 100644 index 4bdd36e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware.svg deleted file mode 100644 index 255e39ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/silverware.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-alert-outline.svg deleted file mode 100644 index 5e4ec1e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-alert.svg deleted file mode 100644 index c3a5cb1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-off-outline.svg deleted file mode 100644 index b9cb6856..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-off.svg deleted file mode 100644 index 5194a1d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-outline.svg deleted file mode 100644 index 4d989e90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim.svg deleted file mode 100644 index ee08103f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sim.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/simple-icons.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/simple-icons.svg deleted file mode 100644 index 0c9b6a1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/simple-icons.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sina-weibo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sina-weibo.svg deleted file mode 100644 index 661b26d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sina-weibo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sine-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sine-wave.svg deleted file mode 100644 index 9b767911..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sine-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sitemap-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sitemap-outline.svg deleted file mode 100644 index a22fa91b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sitemap-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sitemap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sitemap.svg deleted file mode 100644 index 04d45c8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sitemap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-l.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-l.svg deleted file mode 100644 index 95abbb14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-l.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-m.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-m.svg deleted file mode 100644 index d2bade1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-m.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-s.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-s.svg deleted file mode 100644 index b2a91272..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-s.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xl.svg deleted file mode 100644 index 411e3db6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xs.svg deleted file mode 100644 index 7be09f78..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxl.svg deleted file mode 100644 index 23ee6ad1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxs.svg deleted file mode 100644 index 1386effc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxxl.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxxl.svg deleted file mode 100644 index 738bd364..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/size-xxxl.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skate-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skate-off.svg deleted file mode 100644 index 116d6660..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skate-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skate.svg deleted file mode 100644 index 1cf80abb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skateboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skateboard.svg deleted file mode 100644 index 9df4ca97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skateboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skateboarding.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skateboarding.svg deleted file mode 100644 index 78a1f76d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skateboarding.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skew-less.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skew-less.svg deleted file mode 100644 index 989377e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skew-less.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skew-more.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skew-more.svg deleted file mode 100644 index b074d16a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skew-more.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski-cross-country.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski-cross-country.svg deleted file mode 100644 index 4b4f5c85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski-cross-country.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski-water.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski-water.svg deleted file mode 100644 index e839d669..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski-water.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski.svg deleted file mode 100644 index cb709a9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ski.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-backward-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-backward-outline.svg deleted file mode 100644 index 5a16230e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-backward-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-backward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-backward.svg deleted file mode 100644 index 5fa3f32f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-backward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-forward-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-forward-outline.svg deleted file mode 100644 index b5eb807d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-forward-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-forward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-forward.svg deleted file mode 100644 index 7b95b126..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-circle-outline.svg deleted file mode 100644 index abec5473..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-circle.svg deleted file mode 100644 index f51c2867..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-outline.svg deleted file mode 100644 index 27ea1e94..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next.svg deleted file mode 100644 index a771ae3d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-circle-outline.svg deleted file mode 100644 index 6635b2ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-circle.svg deleted file mode 100644 index 1a36b760..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-outline.svg deleted file mode 100644 index 1aa1d5d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous.svg deleted file mode 100644 index 302a484a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skip-previous.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-crossbones-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-crossbones-outline.svg deleted file mode 100644 index 346f8146..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-crossbones-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-crossbones.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-crossbones.svg deleted file mode 100644 index bb8b4b27..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-crossbones.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-outline.svg deleted file mode 100644 index e33a4764..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-scan-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-scan-outline.svg deleted file mode 100644 index a1973ce9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-scan-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-scan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-scan.svg deleted file mode 100644 index 8db9fce1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull-scan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull.svg deleted file mode 100644 index 6711e117..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skull.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skype-business.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skype-business.svg deleted file mode 100644 index e19eedc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skype-business.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skype.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skype.svg deleted file mode 100644 index f9df6c37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/skype.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slack.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slack.svg deleted file mode 100644 index 3ff18c91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slash-forward-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slash-forward-box.svg deleted file mode 100644 index 8ddba989..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slash-forward-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slash-forward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slash-forward.svg deleted file mode 100644 index 3592012e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slash-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sledding.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sledding.svg deleted file mode 100644 index aeb0c735..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sledding.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sleep-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sleep-off.svg deleted file mode 100644 index 90cd26fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sleep-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sleep.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sleep.svg deleted file mode 100644 index d139b9a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sleep.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slide.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slide.svg deleted file mode 100644 index 2fef639b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slope-downhill.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slope-downhill.svg deleted file mode 100644 index d2a31a8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slope-downhill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slope-uphill.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slope-uphill.svg deleted file mode 100644 index b97c087a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slope-uphill.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slot-machine-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slot-machine-outline.svg deleted file mode 100644 index 87e31a56..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slot-machine-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slot-machine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slot-machine.svg deleted file mode 100644 index 406a0709..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/slot-machine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-off-outline.svg deleted file mode 100644 index 28f466ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-off.svg deleted file mode 100644 index 6a25a523..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-outline.svg deleted file mode 100644 index 670f042f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-reader-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-reader-outline.svg deleted file mode 100644 index 58aa6e37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-reader-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-reader.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-reader.svg deleted file mode 100644 index 4cab532a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card-reader.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card.svg deleted file mode 100644 index 94c0cd75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smart-card.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smog.svg deleted file mode 100644 index 0b1800f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-alert-outline.svg deleted file mode 100644 index 163b72df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-alert.svg deleted file mode 100644 index 4981bcf7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-off-outline.svg deleted file mode 100644 index daaa865c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-off.svg deleted file mode 100644 index ec1e593b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-outline.svg deleted file mode 100644 index 1cc33c07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant-alert.svg deleted file mode 100644 index 56ff7f0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant-off.svg deleted file mode 100644 index 2e3ccc70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant.svg deleted file mode 100644 index 656df134..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector.svg deleted file mode 100644 index f0e797f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke-detector.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke.svg deleted file mode 100644 index b1965921..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoke.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-off.svg deleted file mode 100644 index c363a2f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-pipe-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-pipe-off.svg deleted file mode 100644 index 68ca6e77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-pipe-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-pipe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-pipe.svg deleted file mode 100644 index b416fd79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking-pipe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking.svg deleted file mode 100644 index c1f712ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/smoking.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snail.svg deleted file mode 100644 index 364f0737..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snake.svg deleted file mode 100644 index 0da5b3be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snapchat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snapchat.svg deleted file mode 100644 index 55c4528f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snapchat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowboard.svg deleted file mode 100644 index 2cae25f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-alert.svg deleted file mode 100644 index c2db626c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-check.svg deleted file mode 100644 index f1bddf41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-melt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-melt.svg deleted file mode 100644 index 2a074149..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-melt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-off.svg deleted file mode 100644 index fdc3864e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-thermometer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-thermometer.svg deleted file mode 100644 index 8fb66f8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-thermometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-variant.svg deleted file mode 100644 index 65acb60a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake.svg deleted file mode 100644 index 3910a04d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowflake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowman.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowman.svg deleted file mode 100644 index 71bf1d0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowman.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowmobile.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowmobile.svg deleted file mode 100644 index 13cd8d18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowmobile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowshoeing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowshoeing.svg deleted file mode 100644 index d9dd7273..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/snowshoeing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soccer-field.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soccer-field.svg deleted file mode 100644 index 6e9f5d86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soccer-field.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soccer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soccer.svg deleted file mode 100644 index a83b84db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soccer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/social-distance-2-meters.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/social-distance-2-meters.svg deleted file mode 100644 index 1fa1979f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/social-distance-2-meters.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/social-distance-6-feet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/social-distance-6-feet.svg deleted file mode 100644 index 34046403..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/social-distance-6-feet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-outline.svg deleted file mode 100644 index 22311eb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-single-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-single-outline.svg deleted file mode 100644 index ba91d24f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-single-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-single.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-single.svg deleted file mode 100644 index 31f27d99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa-single.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa.svg deleted file mode 100644 index d668fb22..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sofa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-panel-large.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-panel-large.svg deleted file mode 100644 index d4cf8f77..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-panel-large.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-panel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-panel.svg deleted file mode 100644 index 8e8754a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-panel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power-variant-outline.svg deleted file mode 100644 index 51779fd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power-variant.svg deleted file mode 100644 index aa848fcc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power.svg deleted file mode 100644 index 0352546f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solar-power.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soldering-iron.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soldering-iron.svg deleted file mode 100644 index 54cc60f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soldering-iron.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solid.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solid.svg deleted file mode 100644 index 5ee89b08..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/solid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sony-playstation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sony-playstation.svg deleted file mode 100644 index d08179d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sony-playstation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-ascending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-ascending-variant.svg deleted file mode 100644 index 025bead1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-ascending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-ascending.svg deleted file mode 100644 index ab4f94ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-descending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-descending-variant.svg deleted file mode 100644 index 97a118d1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-descending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-descending.svg deleted file mode 100644 index 99f69967..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-variant.svg deleted file mode 100644 index e31e0e59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-alphabetical-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-ascending.svg deleted file mode 100644 index 7185d46e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-ascending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-ascending-variant.svg deleted file mode 100644 index 75386851..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-ascending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-ascending.svg deleted file mode 100644 index 3623c9d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-descending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-descending-variant.svg deleted file mode 100644 index 6a4585d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-descending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-descending.svg deleted file mode 100644 index e98ca9a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-bool-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-calendar-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-calendar-ascending.svg deleted file mode 100644 index e038ba1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-calendar-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-calendar-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-calendar-descending.svg deleted file mode 100644 index b73cacb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-calendar-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-ascending-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-ascending-outline.svg deleted file mode 100644 index 58c469e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-ascending-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-ascending.svg deleted file mode 100644 index 757a5dc7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-descending-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-descending-outline.svg deleted file mode 100644 index 31bd47f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-descending-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-descending.svg deleted file mode 100644 index 0ca57337..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-clock-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-descending.svg deleted file mode 100644 index db60e836..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-ascending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-ascending-variant.svg deleted file mode 100644 index fecec882..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-ascending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-ascending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-ascending.svg deleted file mode 100644 index adb4d485..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-ascending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-descending-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-descending-variant.svg deleted file mode 100644 index bdd1a77f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-descending-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-descending.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-descending.svg deleted file mode 100644 index 91506736..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-descending.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-variant.svg deleted file mode 100644 index b93a104d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-numeric-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-reverse-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-reverse-variant.svg deleted file mode 100644 index 00331838..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-reverse-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-lock-open.svg deleted file mode 100644 index bcf9beac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-lock.svg deleted file mode 100644 index 68093bda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-off.svg deleted file mode 100644 index 2963900c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-remove.svg deleted file mode 100644 index b6862cbb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant.svg deleted file mode 100644 index 44f0eb6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort.svg deleted file mode 100644 index a84ac578..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sort.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soundbar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soundbar.svg deleted file mode 100644 index cbe53dae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soundbar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soundcloud.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soundcloud.svg deleted file mode 100644 index 3c7f9784..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soundcloud.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-check.svg deleted file mode 100644 index 60253ed8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-minus.svg deleted file mode 100644 index f551d965..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-plus.svg deleted file mode 100644 index a1ac770a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-refresh.svg deleted file mode 100644 index 5808bbf9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-remove.svg deleted file mode 100644 index 8cfafd87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-sync.svg deleted file mode 100644 index 0cd675b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch.svg deleted file mode 100644 index daa06dfd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-branch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-end-local.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-end-local.svg deleted file mode 100644 index 47181285..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-end-local.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-end.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-end.svg deleted file mode 100644 index 8642ef91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-end.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-local.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-local.svg deleted file mode 100644 index 52ddd7a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-local.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-next-local.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-next-local.svg deleted file mode 100644 index 69913077..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-next-local.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-start-next-local.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-start-next-local.svg deleted file mode 100644 index 630383ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-start-next-local.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-start.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-start.svg deleted file mode 100644 index bcca207b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit-start.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit.svg deleted file mode 100644 index 1c9fed2e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-commit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-fork.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-fork.svg deleted file mode 100644 index 19d7df05..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-fork.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-merge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-merge.svg deleted file mode 100644 index 0d2becd0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-merge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-pull.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-pull.svg deleted file mode 100644 index 5b0e8197..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-pull.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-repository-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-repository-multiple.svg deleted file mode 100644 index 3680debd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-repository-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-repository.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-repository.svg deleted file mode 100644 index 71822929..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/source-repository.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soy-sauce-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soy-sauce-off.svg deleted file mode 100644 index 3aec5139..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soy-sauce-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soy-sauce.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soy-sauce.svg deleted file mode 100644 index b9ea3553..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/soy-sauce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spa-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spa-outline.svg deleted file mode 100644 index 729e7ac0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spa-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spa.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spa.svg deleted file mode 100644 index 0998694a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spa.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/space-invaders.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/space-invaders.svg deleted file mode 100644 index 89117c8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/space-invaders.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/space-station.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/space-station.svg deleted file mode 100644 index ac266a01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/space-station.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spade.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spade.svg deleted file mode 100644 index 947c970b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spade.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-bluetooth.svg deleted file mode 100644 index 10e3f4c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-message.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-message.svg deleted file mode 100644 index 77a91729..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-message.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-multiple.svg deleted file mode 100644 index e11ca04b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-off.svg deleted file mode 100644 index 3d87132c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-pause.svg deleted file mode 100644 index 441c2bde..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-play.svg deleted file mode 100644 index fe087761..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-stop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-stop.svg deleted file mode 100644 index f5aad62e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-wireless.svg deleted file mode 100644 index ae6665a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker.svg deleted file mode 100644 index d95de1e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spear.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spear.svg deleted file mode 100644 index ee6832a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer-medium.svg deleted file mode 100644 index 26a4811e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer-slow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer-slow.svg deleted file mode 100644 index 1799d52c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer-slow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer.svg deleted file mode 100644 index e606f821..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/speedometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spellcheck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spellcheck.svg deleted file mode 100644 index da0ff9cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spellcheck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sphere-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sphere-off.svg deleted file mode 100644 index 0eb0055b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sphere-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sphere.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sphere.svg deleted file mode 100644 index 6ac4ad38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sphere.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider-thread.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider-thread.svg deleted file mode 100644 index 2483b110..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider-thread.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider-web.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider-web.svg deleted file mode 100644 index be403dbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider-web.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider.svg deleted file mode 100644 index afcf8788..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spider.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spirit-level.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spirit-level.svg deleted file mode 100644 index 0472ae9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spirit-level.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spoon-sugar.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spoon-sugar.svg deleted file mode 100644 index 1446a37e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spoon-sugar.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotify.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotify.svg deleted file mode 100644 index 8f0d09c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotlight-beam.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotlight-beam.svg deleted file mode 100644 index ecd99035..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotlight-beam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotlight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotlight.svg deleted file mode 100644 index af05aa1f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spotlight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spray-bottle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spray-bottle.svg deleted file mode 100644 index a6988616..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spray-bottle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spray.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spray.svg deleted file mode 100644 index 36b30aef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/spray.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler-fire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler-fire.svg deleted file mode 100644 index a076a048..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler-fire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler-variant.svg deleted file mode 100644 index dc2f40cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler.svg deleted file mode 100644 index 84c55d44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprinkler.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprout-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprout-outline.svg deleted file mode 100644 index 35f39249..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprout-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprout.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprout.svg deleted file mode 100644 index c8f30950..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sprout.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-circle.svg deleted file mode 100644 index ea7e8300..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-edit-outline.svg deleted file mode 100644 index f1dfef75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-medium-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-medium-outline.svg deleted file mode 100644 index 3e4fc1f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-medium-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-medium.svg deleted file mode 100644 index aca05eb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-off-outline.svg deleted file mode 100644 index 47d22fd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-off.svg deleted file mode 100644 index 5bf20575..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-opacity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-opacity.svg deleted file mode 100644 index a7080727..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-opacity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-outline.svg deleted file mode 100644 index 2e2379ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-root-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-root-box.svg deleted file mode 100644 index b3b91f4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-root-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-root.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-root.svg deleted file mode 100644 index 305dbde4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-root.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-badge-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-badge-outline.svg deleted file mode 100644 index 19d4bbce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-badge-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-badge.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-badge.svg deleted file mode 100644 index 0d8cb6eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-badge.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-outline.svg deleted file mode 100644 index b88b3ab3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded.svg deleted file mode 100644 index d12baf9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-rounded.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-small.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-small.svg deleted file mode 100644 index a774d8a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-small.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-wave.svg deleted file mode 100644 index 1094016b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square.svg deleted file mode 100644 index 73c38233..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/squeegee.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/squeegee.svg deleted file mode 100644 index e6a2a117..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/squeegee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ssh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ssh.svg deleted file mode 100644 index b47a1852..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ssh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stack-exchange.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stack-exchange.svg deleted file mode 100644 index 19ad795c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stack-exchange.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stack-overflow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stack-overflow.svg deleted file mode 100644 index d404a96b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stack-overflow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stackpath.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stackpath.svg deleted file mode 100644 index 7eaeb545..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stackpath.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium-outline.svg deleted file mode 100644 index d21011d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium-variant.svg deleted file mode 100644 index ef36fb91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium.svg deleted file mode 100644 index e924de16..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stadium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-box.svg deleted file mode 100644 index 0b37c26a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-down.svg deleted file mode 100644 index 5ce5c95a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-up.svg deleted file mode 100644 index e868430b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs.svg deleted file mode 100644 index 25fa4e3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stairs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stamper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stamper.svg deleted file mode 100644 index d4505b66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stamper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/standard-definition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/standard-definition.svg deleted file mode 100644 index e2a84659..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/standard-definition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-multiple-outline.svg deleted file mode 100644 index 0ac5c672..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-multiple.svg deleted file mode 100644 index 29e0e525..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-outline.svg deleted file mode 100644 index 2cf1c53e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box.svg deleted file mode 100644 index a2ba4438..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-check-outline.svg deleted file mode 100644 index a1a22c9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-check.svg deleted file mode 100644 index 3d6f6d19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-circle-outline.svg deleted file mode 100644 index 0581d592..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-circle.svg deleted file mode 100644 index a1f529f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-cog-outline.svg deleted file mode 100644 index e0aead9b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-cog.svg deleted file mode 100644 index d58dcdc5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-crescent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-crescent.svg deleted file mode 100644 index 446de2e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-crescent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-david.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-david.svg deleted file mode 100644 index c593b5ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-david.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-face.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-face.svg deleted file mode 100644 index d2d39dfe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-face.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-four-points-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-four-points-outline.svg deleted file mode 100644 index 77759e01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-four-points-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-four-points.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-four-points.svg deleted file mode 100644 index 3d57b71f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-four-points.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-half-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-half-full.svg deleted file mode 100644 index b36bca43..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-half-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-half.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-half.svg deleted file mode 100644 index 3c9b3314..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-half.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-minus-outline.svg deleted file mode 100644 index 63621d45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-minus.svg deleted file mode 100644 index d18ba4bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-off-outline.svg deleted file mode 100644 index 8e505fe4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-off.svg deleted file mode 100644 index c85f7e0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-outline.svg deleted file mode 100644 index e3207899..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-plus-outline.svg deleted file mode 100644 index 6ee6ebb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-plus.svg deleted file mode 100644 index 0f8721c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-remove-outline.svg deleted file mode 100644 index f00b6f8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-remove.svg deleted file mode 100644 index 1f5067e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-settings-outline.svg deleted file mode 100644 index da753827..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-settings.svg deleted file mode 100644 index ad340c32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-shooting-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-shooting-outline.svg deleted file mode 100644 index db008984..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-shooting-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-shooting.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-shooting.svg deleted file mode 100644 index 3ed24000..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-shooting.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-three-points-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-three-points-outline.svg deleted file mode 100644 index c7cb083d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-three-points-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-three-points.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-three-points.svg deleted file mode 100644 index fb107e97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star-three-points.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star.svg deleted file mode 100644 index 1edd4f61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/state-machine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/state-machine.svg deleted file mode 100644 index 2b86c8bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/state-machine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steam.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steam.svg deleted file mode 100644 index 316f63eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steering-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steering-off.svg deleted file mode 100644 index 712c463c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steering-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steering.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steering.svg deleted file mode 100644 index d428a59e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/steering.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-backward-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-backward-2.svg deleted file mode 100644 index 4fc9ef23..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-backward-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-backward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-backward.svg deleted file mode 100644 index 109da36d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-backward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-forward-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-forward-2.svg deleted file mode 100644 index 72a30d0d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-forward-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-forward.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-forward.svg deleted file mode 100644 index c4ee9205..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/step-forward.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stethoscope.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stethoscope.svg deleted file mode 100644 index d4b3c069..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stethoscope.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-alert-outline.svg deleted file mode 100644 index 0719d7de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-alert.svg deleted file mode 100644 index 6c51be7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-check-outline.svg deleted file mode 100644 index a33c582d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-check.svg deleted file mode 100644 index 08a20210..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-circle-outline.svg deleted file mode 100644 index a7a80286..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-emoji.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-emoji.svg deleted file mode 100644 index 08ac3e15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-emoji.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-minus-outline.svg deleted file mode 100644 index 79d58ee2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-minus.svg deleted file mode 100644 index e1f56a78..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-outline.svg deleted file mode 100644 index dcd61b83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-plus-outline.svg deleted file mode 100644 index 3694063c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-plus.svg deleted file mode 100644 index 38e1a6b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-remove-outline.svg deleted file mode 100644 index ded7dfc7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-remove.svg deleted file mode 100644 index c522816c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-text-outline.svg deleted file mode 100644 index 4177f7b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-text.svg deleted file mode 100644 index a30e1e12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker.svg deleted file mode 100644 index ffc1ffea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sticker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stocking.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stocking.svg deleted file mode 100644 index 6f060c80..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stocking.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stomach.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stomach.svg deleted file mode 100644 index a68a9a97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stomach.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stool-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stool-outline.svg deleted file mode 100644 index 0f910ea6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stool-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stool.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stool.svg deleted file mode 100644 index 061fee19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stool.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop-circle-outline.svg deleted file mode 100644 index 5e889a76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop-circle.svg deleted file mode 100644 index f71bd04a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop.svg deleted file mode 100644 index a9d807d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storage-tank-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storage-tank-outline.svg deleted file mode 100644 index de1e0657..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storage-tank-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storage-tank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storage-tank.svg deleted file mode 100644 index 0aea7c93..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storage-tank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-24-hour.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-24-hour.svg deleted file mode 100644 index b7fbef44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-24-hour.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-alert-outline.svg deleted file mode 100644 index 5af23b29..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-alert.svg deleted file mode 100644 index 96cf416b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-check-outline.svg deleted file mode 100644 index 27617c17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-check.svg deleted file mode 100644 index 753226c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-clock-outline.svg deleted file mode 100644 index 0f1a8133..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-clock.svg deleted file mode 100644 index f0b9d925..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-cog-outline.svg deleted file mode 100644 index ac757419..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-cog.svg deleted file mode 100644 index 857a4e41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-edit-outline.svg deleted file mode 100644 index ecd5ccdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-edit.svg deleted file mode 100644 index 313db504..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-marker-outline.svg deleted file mode 100644 index df52b836..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-marker.svg deleted file mode 100644 index 018e5e48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-minus-outline.svg deleted file mode 100644 index 2ffcdefc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-minus.svg deleted file mode 100644 index 2f19199e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-off-outline.svg deleted file mode 100644 index 988ba9b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-off.svg deleted file mode 100644 index ffbebfa9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-outline.svg deleted file mode 100644 index b4acc74d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-plus-outline.svg deleted file mode 100644 index 50f97f47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-plus.svg deleted file mode 100644 index 7a7fb3d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-remove-outline.svg deleted file mode 100644 index 0e8d8ce5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-remove.svg deleted file mode 100644 index cd84dce5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-search-outline.svg deleted file mode 100644 index d351329d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-search.svg deleted file mode 100644 index 30da420d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-settings-outline.svg deleted file mode 100644 index a01c5650..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-settings.svg deleted file mode 100644 index 691abc1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store.svg deleted file mode 100644 index fde9ef49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/store.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-check-outline.svg deleted file mode 100644 index 67d4ba72..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-check.svg deleted file mode 100644 index 76c72c3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-edit-outline.svg deleted file mode 100644 index c789d22c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-edit.svg deleted file mode 100644 index 1080c22d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-minus-outline.svg deleted file mode 100644 index 257223be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-minus.svg deleted file mode 100644 index adc3dfba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-outline.svg deleted file mode 100644 index cc442fca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-plus-outline.svg deleted file mode 100644 index b3f191eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-plus.svg deleted file mode 100644 index 6b1512f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-remove-outline.svg deleted file mode 100644 index 12a00d10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-remove.svg deleted file mode 100644 index 71c38b95..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront.svg deleted file mode 100644 index 6085dc58..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/storefront.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stove.svg deleted file mode 100644 index 6d34122b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/strategy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/strategy.svg deleted file mode 100644 index 6ca7a3c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/strategy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stretch-to-page-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stretch-to-page-outline.svg deleted file mode 100644 index e1d6920d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stretch-to-page-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stretch-to-page.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stretch-to-page.svg deleted file mode 100644 index 8e9ac2c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/stretch-to-page.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/string-lights-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/string-lights-off.svg deleted file mode 100644 index 7dd50b5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/string-lights-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/string-lights.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/string-lights.svg deleted file mode 100644 index 5060fc5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/string-lights.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subdirectory-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subdirectory-arrow-left.svg deleted file mode 100644 index 4e9b75ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subdirectory-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subdirectory-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subdirectory-arrow-right.svg deleted file mode 100644 index 03a38605..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subdirectory-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/submarine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/submarine.svg deleted file mode 100644 index 30353784..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/submarine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subtitles-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subtitles-outline.svg deleted file mode 100644 index 33a09718..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subtitles-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subtitles.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subtitles.svg deleted file mode 100644 index fe0c7943..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subtitles.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway-alert-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway-alert-variant.svg deleted file mode 100644 index ebb6e57e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway-alert-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway-variant.svg deleted file mode 100644 index b69aa29b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway.svg deleted file mode 100644 index ed968e2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/subway.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/summit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/summit.svg deleted file mode 100644 index afdbcf4e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/summit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-angle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-angle-outline.svg deleted file mode 100644 index 34ad10df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-angle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-angle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-angle.svg deleted file mode 100644 index cd327901..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-angle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-clock-outline.svg deleted file mode 100644 index eb0eaa9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-clock.svg deleted file mode 100644 index b981b2a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-compass.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-compass.svg deleted file mode 100644 index 9b3c2b12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-compass.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-snowflake-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-snowflake-variant.svg deleted file mode 100644 index 391309d0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-snowflake-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-snowflake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-snowflake.svg deleted file mode 100644 index 26afb55b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-snowflake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-thermometer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-thermometer-outline.svg deleted file mode 100644 index 89229253..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-thermometer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-thermometer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-thermometer.svg deleted file mode 100644 index 3ac2b209..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-thermometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-wireless-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-wireless-outline.svg deleted file mode 100644 index a9e47cf8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-wireless-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-wireless.svg deleted file mode 100644 index 49715107..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sun-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sunglasses.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sunglasses.svg deleted file mode 100644 index 3501db0a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sunglasses.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surfing.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surfing.svg deleted file mode 100644 index 3a99d54a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surfing.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-2-0.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-2-0.svg deleted file mode 100644 index ad255a8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-2-0.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-2-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-2-1.svg deleted file mode 100644 index 0022853c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-2-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-3-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-3-1.svg deleted file mode 100644 index 95b4f5a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-3-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-5-1-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-5-1-2.svg deleted file mode 100644 index 48476eb2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-5-1-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-5-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-5-1.svg deleted file mode 100644 index d24d216f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-5-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-7-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-7-1.svg deleted file mode 100644 index 7f5d6e96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound-7-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound.svg deleted file mode 100644 index 6ad9700d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/surround-sound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/svg.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/svg.svg deleted file mode 100644 index c83246f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/svg.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-bold.svg deleted file mode 100644 index 0736e080..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-circle-outline.svg deleted file mode 100644 index 8ed5fa32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-circle.svg deleted file mode 100644 index 88e69c52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-variant.svg deleted file mode 100644 index 59bc47d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal.svg deleted file mode 100644 index 293cfacc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-bold.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-bold.svg deleted file mode 100644 index 5518ac90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-bold.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-circle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-circle-outline.svg deleted file mode 100644 index 118f60e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-circle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-circle.svg deleted file mode 100644 index b0a4f9d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-variant.svg deleted file mode 100644 index be00f533..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical.svg deleted file mode 100644 index 59be7d39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swap-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swim.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swim.svg deleted file mode 100644 index d3632deb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/swim.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/switch.svg deleted file mode 100644 index a9e0de75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sword-cross.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sword-cross.svg deleted file mode 100644 index 6b321ce3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sword-cross.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sword.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sword.svg deleted file mode 100644 index 1d76a120..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sword.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-hangul.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-hangul.svg deleted file mode 100644 index 8fc44987..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-hangul.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-hiragana.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-hiragana.svg deleted file mode 100644 index d0a71a01..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-hiragana.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-katakana-halfwidth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-katakana-halfwidth.svg deleted file mode 100644 index 51a7158c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-katakana-halfwidth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-katakana.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-katakana.svg deleted file mode 100644 index 82f8e044..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/syllabary-katakana.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/symbol.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/symbol.svg deleted file mode 100644 index a827d8b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/symbol.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/symfony.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/symfony.svg deleted file mode 100644 index b3cf71c1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/symfony.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/synagogue-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/synagogue-outline.svg deleted file mode 100644 index a553171d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/synagogue-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/synagogue.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/synagogue.svg deleted file mode 100644 index a13a0a90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/synagogue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-alert.svg deleted file mode 100644 index 322c85e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-circle.svg deleted file mode 100644 index 77864dbf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-off.svg deleted file mode 100644 index 544e1a43..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync.svg deleted file mode 100644 index ca5d90c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-minus.svg deleted file mode 100644 index 532e98c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-plus.svg deleted file mode 100644 index 1c3ec9f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-remove.svg deleted file mode 100644 index e7f63a12..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-search.svg deleted file mode 100644 index b3383de6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-unselected.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-unselected.svg deleted file mode 100644 index ff3fdd4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab-unselected.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab.svg deleted file mode 100644 index 643ae16f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-account.svg deleted file mode 100644 index 5e2f562d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-alert.svg deleted file mode 100644 index 3b3845ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-down.svg deleted file mode 100644 index b3463a19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-left.svg deleted file mode 100644 index 399adf39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-right.svg deleted file mode 100644 index 00d79075..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-up.svg deleted file mode 100644 index 48c0c3aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-border.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-border.svg deleted file mode 100644 index e257b514..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-border.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-cancel.svg deleted file mode 100644 index 4c0ba65a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-chair.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-chair.svg deleted file mode 100644 index 44196ef6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-chair.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-check.svg deleted file mode 100644 index 5fd57c2c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-clock.svg deleted file mode 100644 index b69c31eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-cog.svg deleted file mode 100644 index 69feae55..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-plus-after.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-plus-after.svg deleted file mode 100644 index 863a0bda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-plus-after.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-plus-before.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-plus-before.svg deleted file mode 100644 index 6d26b057..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-plus-before.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-remove.svg deleted file mode 100644 index d8932ea2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-width.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-width.svg deleted file mode 100644 index 5d97987d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column-width.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column.svg deleted file mode 100644 index 84db2ad2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-column.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-edit.svg deleted file mode 100644 index c09642e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-eye-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-eye-off.svg deleted file mode 100644 index ec353724..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-eye-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-eye.svg deleted file mode 100644 index 7c7e451a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-filter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-filter.svg deleted file mode 100644 index 06ab5d26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-filter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-furniture.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-furniture.svg deleted file mode 100644 index 2b61446f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-furniture.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-headers-eye-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-headers-eye-off.svg deleted file mode 100644 index c02a18f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-headers-eye-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-headers-eye.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-headers-eye.svg deleted file mode 100644 index 50573e48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-headers-eye.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-heart.svg deleted file mode 100644 index 02b47653..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-key.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-key.svg deleted file mode 100644 index 41af7716..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-key.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large-plus.svg deleted file mode 100644 index e0a1fa85..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large-remove.svg deleted file mode 100644 index a73f04f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large.svg deleted file mode 100644 index 434fc931..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-large.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-lock.svg deleted file mode 100644 index 978c0c39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-merge-cells.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-merge-cells.svg deleted file mode 100644 index 770a3dbd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-merge-cells.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-minus.svg deleted file mode 100644 index 1b5d16c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-multiple.svg deleted file mode 100644 index 5e31fba7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-network.svg deleted file mode 100644 index 59d52002..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-of-contents.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-of-contents.svg deleted file mode 100644 index 615c50f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-of-contents.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-off.svg deleted file mode 100644 index 0c208c24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-picnic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-picnic.svg deleted file mode 100644 index 4802de1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-picnic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-pivot.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-pivot.svg deleted file mode 100644 index d94ec60a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-pivot.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-plus.svg deleted file mode 100644 index c470a084..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-question.svg deleted file mode 100644 index e8286495..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-refresh.svg deleted file mode 100644 index 9e9be4e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-remove.svg deleted file mode 100644 index 47588b94..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-height.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-height.svg deleted file mode 100644 index 726a1585..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-height.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-plus-after.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-plus-after.svg deleted file mode 100644 index 2afad6f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-plus-after.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-plus-before.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-plus-before.svg deleted file mode 100644 index e4147f0a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-plus-before.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-remove.svg deleted file mode 100644 index 1393666f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row.svg deleted file mode 100644 index 135e6f00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-row.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-search.svg deleted file mode 100644 index 3fce1864..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-settings.svg deleted file mode 100644 index 16b816af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-split-cell.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-split-cell.svg deleted file mode 100644 index 1abe31cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-split-cell.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-star.svg deleted file mode 100644 index c9550d3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-sync.svg deleted file mode 100644 index 6916ffee..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-tennis.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-tennis.svg deleted file mode 100644 index 72bab3fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table-tennis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table.svg deleted file mode 100644 index e010b283..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/table.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet-cellphone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet-cellphone.svg deleted file mode 100644 index 0388b82a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet-cellphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet-dashboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet-dashboard.svg deleted file mode 100644 index 7b50a0a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet-dashboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet.svg deleted file mode 100644 index b77ca696..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tablet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/taco.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/taco.svg deleted file mode 100644 index c26f8e7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/taco.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-down-outline.svg deleted file mode 100644 index 82bb7e5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-down.svg deleted file mode 100644 index f7136318..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-left-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-left-outline.svg deleted file mode 100644 index 95782de5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-left-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-left.svg deleted file mode 100644 index 0218de28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-right-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-right-outline.svg deleted file mode 100644 index 3e054a7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-right-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-right.svg deleted file mode 100644 index 613e37b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-up-outline.svg deleted file mode 100644 index 0c596661..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-up.svg deleted file mode 100644 index 12f51076..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-check-outline.svg deleted file mode 100644 index a8e1ef13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-check.svg deleted file mode 100644 index e50d23b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-faces.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-faces.svg deleted file mode 100644 index e1caf247..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-faces.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-heart-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-heart-outline.svg deleted file mode 100644 index 8b4a024c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-heart-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-heart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-heart.svg deleted file mode 100644 index e03c2034..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-heart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-minus-outline.svg deleted file mode 100644 index 0cefe1e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-minus.svg deleted file mode 100644 index e5522a79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-multiple-outline.svg deleted file mode 100644 index 8fda8d24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-multiple.svg deleted file mode 100644 index 88305133..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-off-outline.svg deleted file mode 100644 index 04815a38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-off.svg deleted file mode 100644 index 395b7b0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-outline.svg deleted file mode 100644 index 1993118a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-plus-outline.svg deleted file mode 100644 index a5f9be66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-plus.svg deleted file mode 100644 index c9ca5caf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-remove-outline.svg deleted file mode 100644 index a090a952..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-remove.svg deleted file mode 100644 index 0a69258e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-search-outline.svg deleted file mode 100644 index 98bf6492..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-search.svg deleted file mode 100644 index d6c9c896..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-text-outline.svg deleted file mode 100644 index ce7f0e13..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-text.svg deleted file mode 100644 index 59c56294..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag.svg deleted file mode 100644 index fbf14b59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tag.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tailwind.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tailwind.svg deleted file mode 100644 index d5f1ec64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tailwind.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-1.svg deleted file mode 100644 index a315fb07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-2.svg deleted file mode 100644 index c5dec4a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-3.svg deleted file mode 100644 index 5fa76f4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-4.svg deleted file mode 100644 index 8d41ce8b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-5.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-5.svg deleted file mode 100644 index 1ea2cbb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tally-mark-5.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tangram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tangram.svg deleted file mode 100644 index 868e7d9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tangram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tank.svg deleted file mode 100644 index 97821ac8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tanker-truck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tanker-truck.svg deleted file mode 100644 index 041af7ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tanker-truck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tape-drive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tape-drive.svg deleted file mode 100644 index c1796ab5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tape-drive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tape-measure.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tape-measure.svg deleted file mode 100644 index 49375415..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tape-measure.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target-account.svg deleted file mode 100644 index 67d2ddc8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target-variant.svg deleted file mode 100644 index 717d0c7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target.svg deleted file mode 100644 index 889759f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/target.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/taxi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/taxi.svg deleted file mode 100644 index 09b7f5c3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/taxi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tea-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tea-outline.svg deleted file mode 100644 index 95ed5002..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tea-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tea.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tea.svg deleted file mode 100644 index 984b1473..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tea.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/teamviewer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/teamviewer.svg deleted file mode 100644 index ee25db41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/teamviewer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/teddy-bear.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/teddy-bear.svg deleted file mode 100644 index 6127a47a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/teddy-bear.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/telescope.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/telescope.svg deleted file mode 100644 index 73604137..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/telescope.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-ambient-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-ambient-light.svg deleted file mode 100644 index b78bd458..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-ambient-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-box.svg deleted file mode 100644 index 7247a10d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-classic-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-classic-off.svg deleted file mode 100644 index 2a1fec14..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-classic-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-classic.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-classic.svg deleted file mode 100644 index 2a7b20f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-classic.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-guide.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-guide.svg deleted file mode 100644 index 224c34c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-guide.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-off.svg deleted file mode 100644 index 92385e21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-pause.svg deleted file mode 100644 index afdf4420..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-play.svg deleted file mode 100644 index 3b0f662a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-shimmer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-shimmer.svg deleted file mode 100644 index 8c7f6333..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-shimmer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-speaker-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-speaker-off.svg deleted file mode 100644 index f2ec7a36..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-speaker-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-speaker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-speaker.svg deleted file mode 100644 index aa4ecb04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-speaker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-stop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-stop.svg deleted file mode 100644 index aad45f15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television-stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television.svg deleted file mode 100644 index c7b77001..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/television.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-celsius.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-celsius.svg deleted file mode 100644 index 38fa0128..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-celsius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-fahrenheit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-fahrenheit.svg deleted file mode 100644 index 98d5783f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-fahrenheit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-kelvin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-kelvin.svg deleted file mode 100644 index b266c8ab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temperature-kelvin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-buddhist-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-buddhist-outline.svg deleted file mode 100644 index ae01e066..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-buddhist-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-buddhist.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-buddhist.svg deleted file mode 100644 index 58a22061..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-buddhist.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-hindu-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-hindu-outline.svg deleted file mode 100644 index fbb9b8ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-hindu-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-hindu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-hindu.svg deleted file mode 100644 index 734e6114..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/temple-hindu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tennis-ball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tennis-ball.svg deleted file mode 100644 index f415215e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tennis-ball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tennis.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tennis.svg deleted file mode 100644 index 44e3f9ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tennis.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tent.svg deleted file mode 100644 index 7a7c40c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/terraform.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/terraform.svg deleted file mode 100644 index 85fe759e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/terraform.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/terrain.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/terrain.svg deleted file mode 100644 index b6665f9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/terrain.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube-empty.svg deleted file mode 100644 index ba407039..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube-off.svg deleted file mode 100644 index 872a7422..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube.svg deleted file mode 100644 index f6156ed9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/test-tube.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-account.svg deleted file mode 100644 index cfb22864..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-check-outline.svg deleted file mode 100644 index f871ccd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-check.svg deleted file mode 100644 index 8a9e6a4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-edit-outline.svg deleted file mode 100644 index efc246a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-edit.svg deleted file mode 100644 index 7c13309f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-minus-outline.svg deleted file mode 100644 index f1a4b449..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-minus.svg deleted file mode 100644 index 9796127f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-multiple-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-multiple-outline.svg deleted file mode 100644 index 07759c1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-multiple-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-multiple.svg deleted file mode 100644 index c9a579f9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-outline.svg deleted file mode 100644 index cd59d6be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-plus-outline.svg deleted file mode 100644 index 3989e932..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-plus.svg deleted file mode 100644 index 95bbe1b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-remove-outline.svg deleted file mode 100644 index bf939d4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-remove.svg deleted file mode 100644 index d0a9501a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-search-outline.svg deleted file mode 100644 index e29f7034..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-search.svg deleted file mode 100644 index 20c917af..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box.svg deleted file mode 100644 index 7add62ac..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-long.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-long.svg deleted file mode 100644 index d4ca47b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-long.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-recognition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-recognition.svg deleted file mode 100644 index 30dde950..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-recognition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-search-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-search-variant.svg deleted file mode 100644 index 326b786b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-search-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-search.svg deleted file mode 100644 index c0bac8ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-shadow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-shadow.svg deleted file mode 100644 index 4ff8b71a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-shadow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-short.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-short.svg deleted file mode 100644 index 28f6f339..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text-short.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text.svg deleted file mode 100644 index af1050fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/texture-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/texture-box.svg deleted file mode 100644 index 179b2773..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/texture-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/texture.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/texture.svg deleted file mode 100644 index 66196199..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/texture.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/theater.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/theater.svg deleted file mode 100644 index 11ab6aff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/theater.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/theme-light-dark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/theme-light-dark.svg deleted file mode 100644 index 92d02182..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/theme-light-dark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-alert.svg deleted file mode 100644 index d3c52136..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-auto.svg deleted file mode 100644 index 138bbc5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-bluetooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-bluetooth.svg deleted file mode 100644 index 089c1f3a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-bluetooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-check.svg deleted file mode 100644 index 096cc455..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-chevron-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-chevron-down.svg deleted file mode 100644 index dbaf1e21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-chevron-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-chevron-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-chevron-up.svg deleted file mode 100644 index 34c10023..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-chevron-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-high.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-high.svg deleted file mode 100644 index 6650db79..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-lines.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-lines.svg deleted file mode 100644 index 2f729431..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-lines.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-low.svg deleted file mode 100644 index 5d1ec5d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-minus.svg deleted file mode 100644 index 09d9325a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-off.svg deleted file mode 100644 index 6df03d65..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-plus.svg deleted file mode 100644 index 52cc08a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-probe-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-probe-off.svg deleted file mode 100644 index 756ec81d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-probe-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-probe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-probe.svg deleted file mode 100644 index 29a7b3a7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-probe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-water.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-water.svg deleted file mode 100644 index 7086e803..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer-water.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer.svg deleted file mode 100644 index a7815ac2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-auto.svg deleted file mode 100644 index df72fb37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-box-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-box-auto.svg deleted file mode 100644 index 0f2eca9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-box-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-box.svg deleted file mode 100644 index f3daee21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat.svg deleted file mode 100644 index 84c85fef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thermostat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thought-bubble-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thought-bubble-outline.svg deleted file mode 100644 index 3c6d8d35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thought-bubble-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thought-bubble.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thought-bubble.svg deleted file mode 100644 index 5ef7c9bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thought-bubble.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-down-outline.svg deleted file mode 100644 index 1aa85029..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-down.svg deleted file mode 100644 index 12743800..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-up-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-up-outline.svg deleted file mode 100644 index cab7383c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-up-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-up.svg deleted file mode 100644 index cd613a9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumb-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumbs-up-down-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumbs-up-down-outline.svg deleted file mode 100644 index 85f86b28..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumbs-up-down-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumbs-up-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumbs-up-down.svg deleted file mode 100644 index 0c6c3dfa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/thumbs-up-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-account.svg deleted file mode 100644 index a2fb9769..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-confirmation-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-confirmation-outline.svg deleted file mode 100644 index 1069a33f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-confirmation-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-confirmation.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-confirmation.svg deleted file mode 100644 index add0a018..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-confirmation.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-outline.svg deleted file mode 100644 index 4fc66ffd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-percent-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-percent-outline.svg deleted file mode 100644 index 5357aa70..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-percent-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-percent.svg deleted file mode 100644 index d8fe61e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket.svg deleted file mode 100644 index a8f9d3f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ticket.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tie.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tie.svg deleted file mode 100644 index db3d9669..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tie.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tilde-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tilde-off.svg deleted file mode 100644 index a2438849..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tilde-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tilde.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tilde.svg deleted file mode 100644 index f4b786d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tilde.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timelapse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timelapse.svg deleted file mode 100644 index cb028905..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timelapse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-alert-outline.svg deleted file mode 100644 index 5183f836..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-alert.svg deleted file mode 100644 index 2945d5e4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-check-outline.svg deleted file mode 100644 index 91b829fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-check.svg deleted file mode 100644 index 0274ebd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-clock-outline.svg deleted file mode 100644 index 819c60c8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-clock.svg deleted file mode 100644 index 7d82b20e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-minus-outline.svg deleted file mode 100644 index 946c653f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-minus.svg deleted file mode 100644 index 1160e437..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-outline.svg deleted file mode 100644 index 5ae1e16a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-plus-outline.svg deleted file mode 100644 index 04f9a5da..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-plus.svg deleted file mode 100644 index 4898ec89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-question-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-question-outline.svg deleted file mode 100644 index 71f8fdca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-question-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-question.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-question.svg deleted file mode 100644 index 7cac9e90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-question.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-remove-outline.svg deleted file mode 100644 index e343c238..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-remove.svg deleted file mode 100644 index 6228bb45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-text-outline.svg deleted file mode 100644 index 2dae74ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-text.svg deleted file mode 100644 index 84061f9d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline.svg deleted file mode 100644 index 7746b5d7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timeline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-10.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-10.svg deleted file mode 100644 index 3e868dfd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-10.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-3.svg deleted file mode 100644 index 6c015b4a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-alert-outline.svg deleted file mode 100644 index 292a705c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-alert.svg deleted file mode 100644 index 14c81bc9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cancel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cancel-outline.svg deleted file mode 100644 index 1bb7cb15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cancel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cancel.svg deleted file mode 100644 index 76791788..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-check-outline.svg deleted file mode 100644 index 40994641..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-check.svg deleted file mode 100644 index b0f3afc2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cog-outline.svg deleted file mode 100644 index 54442ffd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cog.svg deleted file mode 100644 index c49ab12c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-edit-outline.svg deleted file mode 100644 index fea0916b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-edit.svg deleted file mode 100644 index 7728ddec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-open-outline.svg deleted file mode 100644 index 6fad032c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-open.svg deleted file mode 100644 index 6f2cc71d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-outline.svg deleted file mode 100644 index cbb20c15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock.svg deleted file mode 100644 index 3c77be38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-marker-outline.svg deleted file mode 100644 index 29fcd33b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-marker.svg deleted file mode 100644 index 8d0bee0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-minus-outline.svg deleted file mode 100644 index 32952aad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-minus.svg deleted file mode 100644 index fcc76374..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-music-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-music-outline.svg deleted file mode 100644 index 81bf3d9a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-music-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-music.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-music.svg deleted file mode 100644 index bf6dd413..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-music.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-off-outline.svg deleted file mode 100644 index 13e25d84..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-off.svg deleted file mode 100644 index 9da8d142..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-outline.svg deleted file mode 100644 index f99a5ff4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-pause-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-pause-outline.svg deleted file mode 100644 index 9b0708bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-pause-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-pause.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-pause.svg deleted file mode 100644 index 456c1bde..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-play-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-play-outline.svg deleted file mode 100644 index e03136b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-play-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-play.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-play.svg deleted file mode 100644 index c325f93b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-plus-outline.svg deleted file mode 100644 index a4f630a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-plus.svg deleted file mode 100644 index 44adc3bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-refresh-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-refresh-outline.svg deleted file mode 100644 index b482ff19..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-refresh-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-refresh.svg deleted file mode 100644 index 4335f909..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-remove-outline.svg deleted file mode 100644 index 2c5f8eb3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-remove.svg deleted file mode 100644 index 069f2c6e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-complete.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-complete.svg deleted file mode 100644 index 589c7343..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-complete.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-empty.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-empty.svg deleted file mode 100644 index 8b954078..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-empty.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-full.svg deleted file mode 100644 index 444f2f47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-paused.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-paused.svg deleted file mode 100644 index c031b434..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand-paused.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand.svg deleted file mode 100644 index 8415c037..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sand.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-settings-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-settings-outline.svg deleted file mode 100644 index b69d837a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-settings-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-settings.svg deleted file mode 100644 index 7f6d5878..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-star-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-star-outline.svg deleted file mode 100644 index ac23d696..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-star-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-star.svg deleted file mode 100644 index 5463ea47..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-stop-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-stop-outline.svg deleted file mode 100644 index 96b4db48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-stop-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-stop.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-stop.svg deleted file mode 100644 index 704de003..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-stop.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sync-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sync-outline.svg deleted file mode 100644 index 3626ab68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sync-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sync.svg deleted file mode 100644 index 05aaff0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer.svg deleted file mode 100644 index 698be15f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timetable.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timetable.svg deleted file mode 100644 index f2634a37..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/timetable.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tire.svg deleted file mode 100644 index 70025610..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster-off.svg deleted file mode 100644 index 72f7e860..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster-oven.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster-oven.svg deleted file mode 100644 index 5ffe1a7e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster-oven.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster.svg deleted file mode 100644 index a9d2b102..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toaster.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-off-outline.svg deleted file mode 100644 index 1f049cae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-off.svg deleted file mode 100644 index c791965b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-outline.svg deleted file mode 100644 index d761bbc3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-variant-off.svg deleted file mode 100644 index 22a9dac9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-variant.svg deleted file mode 100644 index b0d2eb8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch.svg deleted file mode 100644 index bc740420..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toggle-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toilet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toilet.svg deleted file mode 100644 index 49110f35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toilet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toolbox-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toolbox-outline.svg deleted file mode 100644 index eda3f040..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toolbox-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toolbox.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toolbox.svg deleted file mode 100644 index 1f586330..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toolbox.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tools.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tools.svg deleted file mode 100644 index 78c37b5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tools.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-account.svg deleted file mode 100644 index 3f9e3fc4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-cellphone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-cellphone.svg deleted file mode 100644 index 6d382891..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-cellphone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-check-outline.svg deleted file mode 100644 index c2228dce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-check.svg deleted file mode 100644 index 74dea4a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-edit-outline.svg deleted file mode 100644 index f81fddf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-edit.svg deleted file mode 100644 index 29d753c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-image-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-image-outline.svg deleted file mode 100644 index b2e4478f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-image-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-image.svg deleted file mode 100644 index 445a9fe5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-minus-outline.svg deleted file mode 100644 index 4ca1bf52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-minus.svg deleted file mode 100644 index abe51037..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-outline.svg deleted file mode 100644 index 4c71e0f3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-plus-outline.svg deleted file mode 100644 index 7fd93595..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-plus.svg deleted file mode 100644 index d39ffe45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-remove-outline.svg deleted file mode 100644 index d9df57db..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-remove.svg deleted file mode 100644 index 818132b7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-text-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-text-outline.svg deleted file mode 100644 index f0c153ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-text-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-text.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-text.svg deleted file mode 100644 index d19cbfb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip-text.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip.svg deleted file mode 100644 index 81d242ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooltip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooth-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooth-outline.svg deleted file mode 100644 index 13c23e32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooth-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooth.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooth.svg deleted file mode 100644 index 8762027e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tooth.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush-electric.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush-electric.svg deleted file mode 100644 index 4b25b0f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush-electric.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush-paste.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush-paste.svg deleted file mode 100644 index 173fb4f1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush-paste.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush.svg deleted file mode 100644 index 3ccf776b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toothbrush.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/torch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/torch.svg deleted file mode 100644 index cce0e6dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/torch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tortoise.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tortoise.svg deleted file mode 100644 index cf58a715..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tortoise.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toslink.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toslink.svg deleted file mode 100644 index af23fb59..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toslink.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tournament.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tournament.svg deleted file mode 100644 index 110b2ff6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tournament.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tow-truck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tow-truck.svg deleted file mode 100644 index 5cc8d897..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tow-truck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tower-beach.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tower-beach.svg deleted file mode 100644 index 171cb658..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tower-beach.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tower-fire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tower-fire.svg deleted file mode 100644 index ac05cce6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tower-fire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/town-hall.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/town-hall.svg deleted file mode 100644 index 598d0994..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/town-hall.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-marker-outline.svg deleted file mode 100644 index e38e96bf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-marker.svg deleted file mode 100644 index 82486890..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-minus-outline.svg deleted file mode 100644 index 64fb8e41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-minus.svg deleted file mode 100644 index 112df233..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-outline.svg deleted file mode 100644 index 312a8128..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-plus-outline.svg deleted file mode 100644 index 32a1b3ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-plus.svg deleted file mode 100644 index c540f4eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-remove-outline.svg deleted file mode 100644 index 05d65ea6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-remove.svg deleted file mode 100644 index aa252d26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-search-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-search-outline.svg deleted file mode 100644 index 7bb85330..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-search-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-search.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-search.svg deleted file mode 100644 index bfef5d76..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick-search.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick.svg deleted file mode 100644 index d57ecd06..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/toy-brick.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/track-light-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/track-light-off.svg deleted file mode 100644 index 361ffb73..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/track-light-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/track-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/track-light.svg deleted file mode 100644 index e8818070..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/track-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trackpad-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trackpad-lock.svg deleted file mode 100644 index b5000f62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trackpad-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trackpad.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trackpad.svg deleted file mode 100644 index 11df3077..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trackpad.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tractor-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tractor-variant.svg deleted file mode 100644 index 756563c2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tractor-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tractor.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tractor.svg deleted file mode 100644 index 759a964e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tractor.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trademark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trademark.svg deleted file mode 100644 index 6011173e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trademark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-cone.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-cone.svg deleted file mode 100644 index c1feb47f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-cone.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-light-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-light-outline.svg deleted file mode 100644 index 91efdaf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-light-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-light.svg deleted file mode 100644 index b1d848b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/traffic-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-autorack.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-autorack.svg deleted file mode 100644 index 45abc39d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-autorack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box-full.svg deleted file mode 100644 index eab44b7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box-open.svg deleted file mode 100644 index acba2082..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box.svg deleted file mode 100644 index cb234de7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-caboose.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-caboose.svg deleted file mode 100644 index 165496e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-caboose.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-centerbeam-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-centerbeam-full.svg deleted file mode 100644 index 7827acdd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-centerbeam-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-centerbeam.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-centerbeam.svg deleted file mode 100644 index 936eabeb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-centerbeam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-container.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-container.svg deleted file mode 100644 index 41e91543..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-container.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed-car.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed-car.svg deleted file mode 100644 index ee7d0a90..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed-car.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed-tank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed-tank.svg deleted file mode 100644 index 32f00375..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed-tank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed.svg deleted file mode 100644 index 4c651ec2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-flatbed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-gondola-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-gondola-full.svg deleted file mode 100644 index bef710de..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-gondola-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-gondola.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-gondola.svg deleted file mode 100644 index ce4d18c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-gondola.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper-covered.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper-covered.svg deleted file mode 100644 index bf33fad5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper-covered.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper-full.svg deleted file mode 100644 index 6b191c83..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper.svg deleted file mode 100644 index fc31c8a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-hopper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-intermodal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-intermodal.svg deleted file mode 100644 index fedc6949..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-intermodal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-door-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-door-open.svg deleted file mode 100644 index 38702423..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-door-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-door.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-door.svg deleted file mode 100644 index a7c81ccc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-door.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-variant.svg deleted file mode 100644 index 957a4a29..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger.svg deleted file mode 100644 index 6d669219..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-passenger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-tank.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-tank.svg deleted file mode 100644 index f2635f75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car-tank.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car.svg deleted file mode 100644 index 4e4706a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-car.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-variant.svg deleted file mode 100644 index e2214edb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train.svg deleted file mode 100644 index 5f913007..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/train.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tram-side.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tram-side.svg deleted file mode 100644 index dbb50dd8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tram-side.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tram.svg deleted file mode 100644 index 6cb19abf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transcribe-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transcribe-close.svg deleted file mode 100644 index 072f557d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transcribe-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transcribe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transcribe.svg deleted file mode 100644 index dc8ca245..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transcribe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-down.svg deleted file mode 100644 index 04e23131..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-left.svg deleted file mode 100644 index 87f9e647..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-right.svg deleted file mode 100644 index 1174a9c4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-up.svg deleted file mode 100644 index 257fcbdd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer.svg deleted file mode 100644 index d67c3cd7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transfer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection-horizontal.svg deleted file mode 100644 index 9224065f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection-variant.svg deleted file mode 100644 index 4eac892d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection.svg deleted file mode 100644 index c974aff2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-connection.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-detour.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-detour.svg deleted file mode 100644 index 10f2b5e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-detour.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-skip.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-skip.svg deleted file mode 100644 index 948d2c5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-skip.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-transfer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-transfer.svg deleted file mode 100644 index 8d51e7e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transit-transfer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transition-masked.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transition-masked.svg deleted file mode 100644 index 716650a6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transition-masked.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transition.svg deleted file mode 100644 index 423b0be0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate-off.svg deleted file mode 100644 index e37cf6ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate-variant.svg deleted file mode 100644 index 83b29f82..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate.svg deleted file mode 100644 index 0a13b4a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/translate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-export.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-export.svg deleted file mode 100644 index 94443118..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-import.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-import.svg deleted file mode 100644 index 3a6ff595..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-off.svg deleted file mode 100644 index d7523f97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower.svg deleted file mode 100644 index ddfad6ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/transmission-tower.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trash-can-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trash-can-outline.svg deleted file mode 100644 index 7515b215..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trash-can-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trash-can.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trash-can.svg deleted file mode 100644 index a1879e9c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trash-can.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-alert.svg deleted file mode 100644 index 2aea1ac2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-arrow-down.svg deleted file mode 100644 index 78aeb3ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-arrow-up.svg deleted file mode 100644 index 00d94821..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-full.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-full.svg deleted file mode 100644 index 7471e699..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-full.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-minus.svg deleted file mode 100644 index 1e0b2add..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-plus.svg deleted file mode 100644 index d309e6bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-remove.svg deleted file mode 100644 index ee253626..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray.svg deleted file mode 100644 index f00e2cd2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tray.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/treasure-chest.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/treasure-chest.svg deleted file mode 100644 index ad2ef263..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/treasure-chest.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tree-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tree-outline.svg deleted file mode 100644 index 2ac2e51d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tree-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tree.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tree.svg deleted file mode 100644 index f2e2af1e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tree.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trello.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trello.svg deleted file mode 100644 index dd4ca501..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trello.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-down.svg deleted file mode 100644 index 2216dcde..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-neutral.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-neutral.svg deleted file mode 100644 index 3c8e34d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-neutral.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-up.svg deleted file mode 100644 index 8a4cde6e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trending-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-outline.svg deleted file mode 100644 index 386233ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-small-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-small-down.svg deleted file mode 100644 index 727add9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-small-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-small-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-small-up.svg deleted file mode 100644 index 832e661d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-small-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-wave.svg deleted file mode 100644 index cfd583b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle.svg deleted file mode 100644 index 441e3429..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triforce.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triforce.svg deleted file mode 100644 index c0e204d9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/triforce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-award.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-award.svg deleted file mode 100644 index b071a758..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-award.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-broken.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-broken.svg deleted file mode 100644 index 712a3453..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-broken.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-outline.svg deleted file mode 100644 index 30551c35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-variant-outline.svg deleted file mode 100644 index 373a596b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-variant.svg deleted file mode 100644 index 6dc811ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy.svg deleted file mode 100644 index 92853c4c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trophy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-alert-outline.svg deleted file mode 100644 index e5f45438..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-alert.svg deleted file mode 100644 index d1112667..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-cargo-container.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-cargo-container.svg deleted file mode 100644 index 997b777e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-cargo-container.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-check-outline.svg deleted file mode 100644 index f4020fff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-check.svg deleted file mode 100644 index d2404b46..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-delivery-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-delivery-outline.svg deleted file mode 100644 index e0681605..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-delivery-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-delivery.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-delivery.svg deleted file mode 100644 index 18b0c01b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-delivery.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-fast-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-fast-outline.svg deleted file mode 100644 index 13972c97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-fast-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-fast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-fast.svg deleted file mode 100644 index 660394ce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-fast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-flatbed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-flatbed.svg deleted file mode 100644 index 50753d6d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-flatbed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-minus-outline.svg deleted file mode 100644 index 846ad326..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-minus.svg deleted file mode 100644 index e125b80d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-outline.svg deleted file mode 100644 index 031f3db1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-plus-outline.svg deleted file mode 100644 index f58fb162..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-plus.svg deleted file mode 100644 index ecf8cc24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-remove-outline.svg deleted file mode 100644 index 5127a9e9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-remove.svg deleted file mode 100644 index 31d5c5d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-snowflake.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-snowflake.svg deleted file mode 100644 index e88d08ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-snowflake.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-trailer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-trailer.svg deleted file mode 100644 index 7128e452..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck-trailer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck.svg deleted file mode 100644 index 8dc619d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/truck.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trumpet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trumpet.svg deleted file mode 100644 index 4d505d6b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/trumpet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-crew-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-crew-outline.svg deleted file mode 100644 index d1abb56c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-crew-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-crew.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-crew.svg deleted file mode 100644 index cc688c1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-crew.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-v-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-v-outline.svg deleted file mode 100644 index 48deb12b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-v-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-v.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-v.svg deleted file mode 100644 index 127b50aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tshirt-v.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tsunami.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tsunami.svg deleted file mode 100644 index c4e35f0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tsunami.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer-alert.svg deleted file mode 100644 index 24968636..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer-off.svg deleted file mode 100644 index 2df2719a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer.svg deleted file mode 100644 index 7b74ca1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tumble-dryer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-variant.svg deleted file mode 100644 index fc2f6629..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-vertical-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-vertical-variant.svg deleted file mode 100644 index a8d60cc6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-vertical-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-vertical.svg deleted file mode 100644 index 80dd44d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune.svg deleted file mode 100644 index db254ac0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tune.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tunnel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tunnel-outline.svg deleted file mode 100644 index ba5c93cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tunnel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tunnel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tunnel.svg deleted file mode 100644 index d583cc10..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/tunnel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turbine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turbine.svg deleted file mode 100644 index 6d43fbd6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turbine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turkey.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turkey.svg deleted file mode 100644 index c932042e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turkey.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turnstile-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turnstile-outline.svg deleted file mode 100644 index 436c7d71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turnstile-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turnstile.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turnstile.svg deleted file mode 100644 index 1412751b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turnstile.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turtle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turtle.svg deleted file mode 100644 index 03cf31bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/turtle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/twitch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/twitch.svg deleted file mode 100644 index c6f8c78d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/twitch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/twitter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/twitter.svg deleted file mode 100644 index 0993d58f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/twitter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/two-factor-authentication.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/two-factor-authentication.svg deleted file mode 100644 index 21f78275..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/two-factor-authentication.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/typewriter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/typewriter.svg deleted file mode 100644 index 007551aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/typewriter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ubisoft.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ubisoft.svg deleted file mode 100644 index 4dbe0070..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ubisoft.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ubuntu.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ubuntu.svg deleted file mode 100644 index 8395e1a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ubuntu.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ufo-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ufo-outline.svg deleted file mode 100644 index eb075f1a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ufo-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ufo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ufo.svg deleted file mode 100644 index a19fe663..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ufo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ultra-high-definition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ultra-high-definition.svg deleted file mode 100644 index f33101e5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ultra-high-definition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbraco.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbraco.svg deleted file mode 100644 index 85bdd261..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbraco.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-beach-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-beach-outline.svg deleted file mode 100644 index cd160792..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-beach-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-beach.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-beach.svg deleted file mode 100644 index 25c895e6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-beach.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed-outline.svg deleted file mode 100644 index cf29e3cd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed-variant.svg deleted file mode 100644 index 88f31a03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed.svg deleted file mode 100644 index 8dbdb142..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-outline.svg deleted file mode 100644 index 34ba15f2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella.svg deleted file mode 100644 index 7c41dfab..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/umbrella.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/undo-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/undo-variant.svg deleted file mode 100644 index 6cff26a8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/undo-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/undo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/undo.svg deleted file mode 100644 index 6f3cc453..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/undo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-less-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-less-horizontal.svg deleted file mode 100644 index 3f631b96..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-less-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-less-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-less-vertical.svg deleted file mode 100644 index 9778eca3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-less-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-more-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-more-horizontal.svg deleted file mode 100644 index b84130dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-more-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-more-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-more-vertical.svg deleted file mode 100644 index 2c94bfda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unfold-more-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ungroup.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ungroup.svg deleted file mode 100644 index 25a6797b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/ungroup.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicode.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicode.svg deleted file mode 100644 index 674c008f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicode.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicorn-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicorn-variant.svg deleted file mode 100644 index ef819552..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicorn-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicorn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicorn.svg deleted file mode 100644 index 430ce616..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicorn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicycle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicycle.svg deleted file mode 100644 index c0608fa7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unicycle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unity.svg deleted file mode 100644 index 4a42a497..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unreal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unreal.svg deleted file mode 100644 index fddf2b95..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/unreal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/update.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/update.svg deleted file mode 100644 index d819ac6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/update.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-lock-outline.svg deleted file mode 100644 index 3a147f62..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-lock.svg deleted file mode 100644 index 07d7e957..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-multiple.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-multiple.svg deleted file mode 100644 index c498e751..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-multiple.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-network-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-network-outline.svg deleted file mode 100644 index 34ad8ee6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-network-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-network.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-network.svg deleted file mode 100644 index 04803054..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-network.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-off-outline.svg deleted file mode 100644 index 93a66474..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-off.svg deleted file mode 100644 index cf02a69e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-outline.svg deleted file mode 100644 index 801dd99f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload.svg deleted file mode 100644 index f9e61726..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/upload.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-flash-drive-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-flash-drive-outline.svg deleted file mode 100644 index ada82b8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-flash-drive-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-flash-drive.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-flash-drive.svg deleted file mode 100644 index 31fb37ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-flash-drive.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-port.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-port.svg deleted file mode 100644 index b0c1b160..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb-port.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb.svg deleted file mode 100644 index edeb943e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/usb.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vacuum-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vacuum-outline.svg deleted file mode 100644 index c4da1857..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vacuum-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vacuum.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vacuum.svg deleted file mode 100644 index 7fd23447..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vacuum.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve-closed.svg deleted file mode 100644 index 23dd7064..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve-open.svg deleted file mode 100644 index eb9dac3f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve.svg deleted file mode 100644 index c5266158..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/valve.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/van-passenger.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/van-passenger.svg deleted file mode 100644 index 93836045..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/van-passenger.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/van-utility.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/van-utility.svg deleted file mode 100644 index ca857db5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/van-utility.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanish-quarter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanish-quarter.svg deleted file mode 100644 index e6201441..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanish-quarter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanish.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanish.svg deleted file mode 100644 index d10e50a4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanish.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanity-light.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanity-light.svg deleted file mode 100644 index 95be5a4f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vanity-light.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/variable-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/variable-box.svg deleted file mode 100644 index ff078250..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/variable-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/variable.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/variable.svg deleted file mode 100644 index 06ef0d5d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/variable.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-arrange-above.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-arrange-above.svg deleted file mode 100644 index af6cc2fa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-arrange-above.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-arrange-below.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-arrange-below.svg deleted file mode 100644 index 3ad478ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-arrange-below.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-bezier.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-bezier.svg deleted file mode 100644 index 2128bb1b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-bezier.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-circle-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-circle-variant.svg deleted file mode 100644 index 29b42d44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-circle-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-circle.svg deleted file mode 100644 index 192a24a0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-combine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-combine.svg deleted file mode 100644 index 7b05899a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-combine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-curve.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-curve.svg deleted file mode 100644 index ca9287c7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-curve.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference-ab.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference-ab.svg deleted file mode 100644 index bff22170..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference-ab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference-ba.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference-ba.svg deleted file mode 100644 index 77b5bd97..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference-ba.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference.svg deleted file mode 100644 index 900d2b61..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-difference.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-ellipse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-ellipse.svg deleted file mode 100644 index 2931fe99..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-ellipse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-intersection.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-intersection.svg deleted file mode 100644 index 89a61b91..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-intersection.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-line.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-line.svg deleted file mode 100644 index 25dff304..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-line.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-link.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-link.svg deleted file mode 100644 index 9dd344be..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-link.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-edit.svg deleted file mode 100644 index 6102ceb9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-minus.svg deleted file mode 100644 index d37d4a26..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-plus.svg deleted file mode 100644 index 85bd21ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-select.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-select.svg deleted file mode 100644 index 41938953..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point-select.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point.svg deleted file mode 100644 index 9667d189..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-point.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polygon-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polygon-variant.svg deleted file mode 100644 index 29ea4101..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polygon-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polygon.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polygon.svg deleted file mode 100644 index 8b193357..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polygon.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-edit.svg deleted file mode 100644 index 1757b6b6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-minus.svg deleted file mode 100644 index ab11a46f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-plus.svg deleted file mode 100644 index 5eed7515..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-remove.svg deleted file mode 100644 index 8cbd437c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline.svg deleted file mode 100644 index 14aa88d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-polyline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-radius.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-radius.svg deleted file mode 100644 index 9af5a269..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-radius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-rectangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-rectangle.svg deleted file mode 100644 index 8bc5ee7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-rectangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-selection.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-selection.svg deleted file mode 100644 index e55e92bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-selection.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-close.svg deleted file mode 100644 index be0c0263..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-edit.svg deleted file mode 100644 index 74eac32d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-minus.svg deleted file mode 100644 index 5f03209e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-open.svg deleted file mode 100644 index 06b295f4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-plus.svg deleted file mode 100644 index 5d75ba44..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-remove.svg deleted file mode 100644 index 6f54bdd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square.svg deleted file mode 100644 index b5875bcd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-square.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-triangle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-triangle.svg deleted file mode 100644 index 1f8b2a49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-triangle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-union.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-union.svg deleted file mode 100644 index aabe6e41..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vector-union.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vhs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vhs.svg deleted file mode 100644 index 7a4608bd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vhs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vibrate-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vibrate-off.svg deleted file mode 100644 index f8de8a1c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vibrate-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vibrate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vibrate.svg deleted file mode 100644 index ed02104b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vibrate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-2d.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-2d.svg deleted file mode 100644 index 5400ef04..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-2d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d-off.svg deleted file mode 100644 index a003100f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d-variant.svg deleted file mode 100644 index a42be183..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d.svg deleted file mode 100644 index 6e91bdb8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-3d.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-4k-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-4k-box.svg deleted file mode 100644 index 371057b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-4k-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-account.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-account.svg deleted file mode 100644 index 9c5eff1d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-account.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-box-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-box-off.svg deleted file mode 100644 index 8ab4d505..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-box-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-box.svg deleted file mode 100644 index d2e1558f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-check-outline.svg deleted file mode 100644 index 9dbb425d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-check.svg deleted file mode 100644 index 190be3eb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-high-definition.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-high-definition.svg deleted file mode 100644 index 74ef96c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-high-definition.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-image.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-image.svg deleted file mode 100644 index a647cbcb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-image.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-antenna.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-antenna.svg deleted file mode 100644 index 966de969..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-antenna.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-component.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-component.svg deleted file mode 100644 index 3f6cb079..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-component.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-hdmi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-hdmi.svg deleted file mode 100644 index 126e96b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-hdmi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-scart.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-scart.svg deleted file mode 100644 index 64648d18..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-scart.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-svideo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-svideo.svg deleted file mode 100644 index 75439e29..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-input-svideo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-marker-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-marker-outline.svg deleted file mode 100644 index 93297dd4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-marker-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-marker.svg deleted file mode 100644 index 73dd0f35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-minus-outline.svg deleted file mode 100644 index 1c7b7f3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-minus.svg deleted file mode 100644 index 4edb1651..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-off-outline.svg deleted file mode 100644 index 2a7447f0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-off.svg deleted file mode 100644 index 7023a03e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-outline.svg deleted file mode 100644 index be45c0f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-plus-outline.svg deleted file mode 100644 index 02f39d24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-plus.svg deleted file mode 100644 index deb56752..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-stabilization.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-stabilization.svg deleted file mode 100644 index 44dd89c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-stabilization.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-switch-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-switch-outline.svg deleted file mode 100644 index d565045f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-switch-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-switch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-switch.svg deleted file mode 100644 index 2098e43c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-switch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-vintage.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-vintage.svg deleted file mode 100644 index ef622d24..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-vintage.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-wireless-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-wireless-outline.svg deleted file mode 100644 index 5ed4f6d4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-wireless-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-wireless.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-wireless.svg deleted file mode 100644 index 137904cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video-wireless.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video.svg deleted file mode 100644 index cdccbe21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/video.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-agenda-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-agenda-outline.svg deleted file mode 100644 index d1361e75..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-agenda-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-agenda.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-agenda.svg deleted file mode 100644 index 055892a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-agenda.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-array-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-array-outline.svg deleted file mode 100644 index e829fcfe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-array-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-array.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-array.svg deleted file mode 100644 index e9fddc68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-array.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-carousel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-carousel-outline.svg deleted file mode 100644 index b99a711e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-carousel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-carousel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-carousel.svg deleted file mode 100644 index d121c7d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-carousel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-column-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-column-outline.svg deleted file mode 100644 index 1fe2a349..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-column-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-column.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-column.svg deleted file mode 100644 index d0618837..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-column.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-comfy-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-comfy-outline.svg deleted file mode 100644 index fd6c5c52..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-comfy-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-comfy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-comfy.svg deleted file mode 100644 index 88c1a01c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-comfy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-compact-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-compact-outline.svg deleted file mode 100644 index 50c56436..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-compact-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-compact.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-compact.svg deleted file mode 100644 index 458a4b4d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-compact.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-edit-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-edit-outline.svg deleted file mode 100644 index 9e2ec9cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-edit-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-edit.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-edit.svg deleted file mode 100644 index bcd18572..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-edit.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-outline.svg deleted file mode 100644 index a9b9d851..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-variant-outline.svg deleted file mode 100644 index fc00c478..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-variant.svg deleted file mode 100644 index cdf01ecb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard.svg deleted file mode 100644 index 3edda3a3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-dashboard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-day-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-day-outline.svg deleted file mode 100644 index b569999c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-day-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-day.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-day.svg deleted file mode 100644 index e60ab4df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-day.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-gallery-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-gallery-outline.svg deleted file mode 100644 index fe042a86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-gallery-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-gallery.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-gallery.svg deleted file mode 100644 index 1d368b64..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-gallery.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-outline.svg deleted file mode 100644 index dcb2aced..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-plus-outline.svg deleted file mode 100644 index 6d78f844..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-plus.svg deleted file mode 100644 index c11205ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid.svg deleted file mode 100644 index d7a16269..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-grid.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-headline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-headline.svg deleted file mode 100644 index 4b3f391e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-headline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-list-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-list-outline.svg deleted file mode 100644 index 452c7c0f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-list-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-list.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-list.svg deleted file mode 100644 index 44d7d4fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-list.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-module-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-module-outline.svg deleted file mode 100644 index 44b83309..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-module-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-module.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-module.svg deleted file mode 100644 index 0c02c274..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-module.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-parallel-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-parallel-outline.svg deleted file mode 100644 index 461368ec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-parallel-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-parallel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-parallel.svg deleted file mode 100644 index 411f50b3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-parallel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-quilt-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-quilt-outline.svg deleted file mode 100644 index 87b90d3e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-quilt-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-quilt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-quilt.svg deleted file mode 100644 index 531db979..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-quilt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-sequential-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-sequential-outline.svg deleted file mode 100644 index 24ceb58e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-sequential-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-sequential.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-sequential.svg deleted file mode 100644 index 4c92fcf1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-sequential.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-split-horizontal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-split-horizontal.svg deleted file mode 100644 index bd3a5523..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-split-horizontal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-split-vertical.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-split-vertical.svg deleted file mode 100644 index 4cf9c68a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-split-vertical.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-stream-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-stream-outline.svg deleted file mode 100644 index ae368475..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-stream-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-stream.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-stream.svg deleted file mode 100644 index d7e48f17..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-stream.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-week-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-week-outline.svg deleted file mode 100644 index 78e39c8d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-week-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-week.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-week.svg deleted file mode 100644 index 4ba8cdda..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/view-week.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vimeo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vimeo.svg deleted file mode 100644 index e1ea7744..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vimeo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/violin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/violin.svg deleted file mode 100644 index 382fa6ff..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/violin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virtual-reality.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virtual-reality.svg deleted file mode 100644 index 10428f8a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virtual-reality.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-off-outline.svg deleted file mode 100644 index fa6b4288..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-off.svg deleted file mode 100644 index 01e1f383..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-outline.svg deleted file mode 100644 index a2165a60..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus.svg deleted file mode 100644 index 4f1232f5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/virus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vlc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vlc.svg deleted file mode 100644 index 4c3d92e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vlc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/voicemail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/voicemail.svg deleted file mode 100644 index 03f970c0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/voicemail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volcano-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volcano-outline.svg deleted file mode 100644 index e29d85cb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volcano-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volcano.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volcano.svg deleted file mode 100644 index 00293693..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volcano.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volleyball.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volleyball.svg deleted file mode 100644 index dccc94a5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volleyball.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-equal.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-equal.svg deleted file mode 100644 index 087ab9b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-equal.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-high.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-high.svg deleted file mode 100644 index e57a011c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-high.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-low.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-low.svg deleted file mode 100644 index 5e87f04a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-low.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-medium.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-medium.svg deleted file mode 100644 index 24013905..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-medium.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-minus.svg deleted file mode 100644 index 00f048b5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-mute.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-mute.svg deleted file mode 100644 index 6c91895d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-mute.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-off.svg deleted file mode 100644 index 97a8b8c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-plus.svg deleted file mode 100644 index 7bcc449e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-source.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-source.svg deleted file mode 100644 index 6fce2ef8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-source.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-variant-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-variant-off.svg deleted file mode 100644 index 21fd1366..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-variant-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-vibrate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-vibrate.svg deleted file mode 100644 index 0df07ba0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/volume-vibrate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vote-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vote-outline.svg deleted file mode 100644 index b3361ff3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vote-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vote.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vote.svg deleted file mode 100644 index a1393e55..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vote.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vpn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vpn.svg deleted file mode 100644 index 2fb9cb0b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vpn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vuejs.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vuejs.svg deleted file mode 100644 index 1866acf7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vuejs.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vuetify.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vuetify.svg deleted file mode 100644 index 3b6f70b9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/vuetify.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/walk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/walk.svg deleted file mode 100644 index d8a47505..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/walk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-fire.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-fire.svg deleted file mode 100644 index c15fe646..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-fire.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-outline.svg deleted file mode 100644 index bfd09b86..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-variant-outline.svg deleted file mode 100644 index 689e614e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-variant.svg deleted file mode 100644 index 230c4ecc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat.svg deleted file mode 100644 index b811108a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-flat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-outline.svg deleted file mode 100644 index 3b6f567e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-outline.svg deleted file mode 100644 index a0867f0c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-variant-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-variant-outline.svg deleted file mode 100644 index 75838139..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-variant-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-variant.svg deleted file mode 100644 index 5a9cd45f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round.svg deleted file mode 100644 index 4ab70aba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce-round.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce.svg deleted file mode 100644 index 3e4c4a92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall-sconce.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall.svg deleted file mode 100644 index ddff29d3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wall.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-giftcard.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-giftcard.svg deleted file mode 100644 index 12636e35..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-giftcard.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-membership.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-membership.svg deleted file mode 100644 index 56759b8f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-membership.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-outline.svg deleted file mode 100644 index 78b81f74..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-plus-outline.svg deleted file mode 100644 index b5b47f6f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-plus.svg deleted file mode 100644 index 7bf441df..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-travel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-travel.svg deleted file mode 100644 index 22d992ae..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet-travel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet.svg deleted file mode 100644 index 6cfa7869..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallet.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallpaper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallpaper.svg deleted file mode 100644 index 60b786e0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wallpaper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wan.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wan.svg deleted file mode 100644 index c780b3b8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wan.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wardrobe-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wardrobe-outline.svg deleted file mode 100644 index 6cd54111..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wardrobe-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wardrobe.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wardrobe.svg deleted file mode 100644 index bf4b5f7f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wardrobe.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/warehouse.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/warehouse.svg deleted file mode 100644 index accb965d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/warehouse.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine-alert.svg deleted file mode 100644 index 626f46e8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine-off.svg deleted file mode 100644 index 909f4157..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine.svg deleted file mode 100644 index 86253037..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/washing-machine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-export-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-export-variant.svg deleted file mode 100644 index a22440fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-export-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-export.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-export.svg deleted file mode 100644 index 8c846037..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-export.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-import-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-import-variant.svg deleted file mode 100644 index 54dee220..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-import-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-import.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-import.svg deleted file mode 100644 index 50c453d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-import.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-variant.svg deleted file mode 100644 index 37b039cf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-vibrate-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-vibrate-off.svg deleted file mode 100644 index 8b2baf45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-vibrate-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-vibrate.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-vibrate.svg deleted file mode 100644 index e44b7abb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch-vibrate.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch.svg deleted file mode 100644 index c94d921d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watch.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-alert-outline.svg deleted file mode 100644 index ecb5b667..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-alert.svg deleted file mode 100644 index 781e56fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-alert.svg deleted file mode 100644 index 39032e42..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-auto.svg deleted file mode 100644 index 9e5da73e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-off.svg deleted file mode 100644 index 6fe0157a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler.svg deleted file mode 100644 index 62bd736e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-boiler.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-check-outline.svg deleted file mode 100644 index dee3fde4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-check.svg deleted file mode 100644 index e618470a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-circle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-circle.svg deleted file mode 100644 index c6ecfd89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-circle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-minus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-minus-outline.svg deleted file mode 100644 index 501bca71..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-minus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-minus.svg deleted file mode 100644 index 02c76920..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-off-outline.svg deleted file mode 100644 index 1a29b2f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-off.svg deleted file mode 100644 index 9d2f082c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-opacity.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-opacity.svg deleted file mode 100644 index f5bb71dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-opacity.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-outline.svg deleted file mode 100644 index 499eb360..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-percent-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-percent-alert.svg deleted file mode 100644 index ec686a34..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-percent-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-percent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-percent.svg deleted file mode 100644 index 67334156..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-percent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-plus-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-plus-outline.svg deleted file mode 100644 index 6d3154bc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-plus-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-plus.svg deleted file mode 100644 index 3e786d21..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-polo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-polo.svg deleted file mode 100644 index 65dc3e2d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-polo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-pump-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-pump-off.svg deleted file mode 100644 index c1c2c8b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-pump-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-pump.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-pump.svg deleted file mode 100644 index 3eb96369..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-pump.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-remove-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-remove-outline.svg deleted file mode 100644 index bd30a3ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-remove-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-remove.svg deleted file mode 100644 index fa85d272..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-sync.svg deleted file mode 100644 index e9b369e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-thermometer-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-thermometer-outline.svg deleted file mode 100644 index 0032bb20..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-thermometer-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-thermometer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-thermometer.svg deleted file mode 100644 index 45b5a65d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-thermometer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-well-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-well-outline.svg deleted file mode 100644 index 8145b9b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-well-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-well.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-well.svg deleted file mode 100644 index fa56dd9e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water-well.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water.svg deleted file mode 100644 index 8c8677c6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/water.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waterfall.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waterfall.svg deleted file mode 100644 index 9b248fef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waterfall.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watering-can-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watering-can-outline.svg deleted file mode 100644 index dd6372a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watering-can-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watering-can.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watering-can.svg deleted file mode 100644 index 4778c06a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watering-can.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watermark.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watermark.svg deleted file mode 100644 index 79ee2b7b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/watermark.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wave.svg deleted file mode 100644 index 3be7c197..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waveform.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waveform.svg deleted file mode 100644 index 09ba63ba..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waveform.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-left.svg deleted file mode 100644 index eddda2fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-right.svg deleted file mode 100644 index 8b34c29a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-up.svg deleted file mode 100644 index 116758e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves.svg deleted file mode 100644 index 5a5bb762..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waves.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waze.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waze.svg deleted file mode 100644 index 0979d2fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/waze.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-alert.svg deleted file mode 100644 index 5b597e2f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-arrow-right.svg deleted file mode 100644 index 7d90dadf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-clock.svg deleted file mode 100644 index 4bc81fe3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy.svg deleted file mode 100644 index c0a3a990..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-cloudy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-dust.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-dust.svg deleted file mode 100644 index 2daad581..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-dust.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-fog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-fog.svg deleted file mode 100644 index 2b1cd702..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-fog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hail.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hail.svg deleted file mode 100644 index 36700556..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hail.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hazy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hazy.svg deleted file mode 100644 index bc282f48..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hazy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hurricane.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hurricane.svg deleted file mode 100644 index 3e1a43a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-hurricane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-lightning-rainy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-lightning-rainy.svg deleted file mode 100644 index 59aed814..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-lightning-rainy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-lightning.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-lightning.svg deleted file mode 100644 index 3b159c42..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-lightning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-night-partly-cloudy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-night-partly-cloudy.svg deleted file mode 100644 index b8b9eb5c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-night-partly-cloudy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-night.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-night.svg deleted file mode 100644 index 01b5cecf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-night.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-cloudy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-cloudy.svg deleted file mode 100644 index 7cdb9cce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-cloudy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-lightning.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-lightning.svg deleted file mode 100644 index 78207ae1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-lightning.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-rainy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-rainy.svg deleted file mode 100644 index ecae742f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-rainy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-snowy-rainy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-snowy-rainy.svg deleted file mode 100644 index f9b38291..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-snowy-rainy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-snowy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-snowy.svg deleted file mode 100644 index 0e65f6a9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-partly-snowy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-pouring.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-pouring.svg deleted file mode 100644 index 2d40982f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-pouring.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-rainy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-rainy.svg deleted file mode 100644 index e8d11cf6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-rainy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy-heavy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy-heavy.svg deleted file mode 100644 index 13237344..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy-heavy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy-rainy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy-rainy.svg deleted file mode 100644 index 9e536831..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy-rainy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy.svg deleted file mode 100644 index cf9585c5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-snowy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny-alert.svg deleted file mode 100644 index 8a3697e2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny-off.svg deleted file mode 100644 index 4682beeb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny.svg deleted file mode 100644 index a584d1fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunny.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset-down.svg deleted file mode 100644 index 9c91f597..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset-up.svg deleted file mode 100644 index 6bc90a7c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset.svg deleted file mode 100644 index a84dc9ea..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-sunset.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-tornado.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-tornado.svg deleted file mode 100644 index bbc23a50..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-tornado.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-windy-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-windy-variant.svg deleted file mode 100644 index 105eda03..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-windy-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-windy.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-windy.svg deleted file mode 100644 index dfc89e69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weather-windy.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-box.svg deleted file mode 100644 index 17c64993..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-cancel.svg deleted file mode 100644 index 24930123..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-check.svg deleted file mode 100644 index 54fc67c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-clock.svg deleted file mode 100644 index 78768b15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-minus.svg deleted file mode 100644 index bdcb1913..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-off.svg deleted file mode 100644 index 65caf592..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-plus.svg deleted file mode 100644 index 9c7d47b2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-refresh.svg deleted file mode 100644 index 8f8c760d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-remove.svg deleted file mode 100644 index b6855d15..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-sync.svg deleted file mode 100644 index 31d9e0b0..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web.svg deleted file mode 100644 index 9eb763f6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/web.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webcam-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webcam-off.svg deleted file mode 100644 index 6c3b15f8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webcam-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webcam.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webcam.svg deleted file mode 100644 index 3caaf562..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webcam.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webhook.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webhook.svg deleted file mode 100644 index e5a6a6fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webhook.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webpack.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webpack.svg deleted file mode 100644 index c3511cfe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webpack.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webrtc.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webrtc.svg deleted file mode 100644 index 45008d00..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/webrtc.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wechat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wechat.svg deleted file mode 100644 index 75adbf87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wechat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-gram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-gram.svg deleted file mode 100644 index 6ba11bd8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-gram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-kilogram.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-kilogram.svg deleted file mode 100644 index b9ded09a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-kilogram.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-lifter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-lifter.svg deleted file mode 100644 index 67842801..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-lifter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-pound.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-pound.svg deleted file mode 100644 index c4f2408a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight-pound.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight.svg deleted file mode 100644 index d731a13b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/weight.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whatsapp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whatsapp.svg deleted file mode 100644 index fd4bf915..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whatsapp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheel-barrow.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheel-barrow.svg deleted file mode 100644 index 99ec6bcc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheel-barrow.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheelchair-accessibility.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheelchair-accessibility.svg deleted file mode 100644 index a787415d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheelchair-accessibility.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheelchair.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheelchair.svg deleted file mode 100644 index 80722274..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wheelchair.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whistle-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whistle-outline.svg deleted file mode 100644 index ada2ec32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whistle-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whistle.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whistle.svg deleted file mode 100644 index 9695d2b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/whistle.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-auto.svg deleted file mode 100644 index 95ffbe45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-incandescent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-incandescent.svg deleted file mode 100644 index 913822b4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-incandescent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-iridescent.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-iridescent.svg deleted file mode 100644 index 0b4f9563..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-iridescent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-sunny.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-sunny.svg deleted file mode 100644 index 63dfd2a2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/white-balance-sunny.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/widgets-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/widgets-outline.svg deleted file mode 100644 index 1d15c53b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/widgets-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/widgets.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/widgets.svg deleted file mode 100644 index a1aff291..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/widgets.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-alert.svg deleted file mode 100644 index 73749449..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-down.svg deleted file mode 100644 index 95f8db8c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-left-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-left-right.svg deleted file mode 100644 index d0b4911f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-left-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-left.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-left.svg deleted file mode 100644 index 3aaa0c8c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-left.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-right.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-right.svg deleted file mode 100644 index 0523e301..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-right.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-up-down.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-up-down.svg deleted file mode 100644 index 2343758e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-up-down.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-up.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-up.svg deleted file mode 100644 index 480b2617..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-arrow-up.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-cancel.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-cancel.svg deleted file mode 100644 index f7a30850..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-cancel.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-check.svg deleted file mode 100644 index aa799765..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-cog.svg deleted file mode 100644 index 1b3ae52f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-lock-open.svg deleted file mode 100644 index b849d476..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-lock.svg deleted file mode 100644 index b82541ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-marker.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-marker.svg deleted file mode 100644 index 643edbce..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-marker.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-minus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-minus.svg deleted file mode 100644 index c7a36a3b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-minus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-off.svg deleted file mode 100644 index d81f2bd1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-plus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-plus.svg deleted file mode 100644 index fb6eb996..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-plus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-refresh.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-refresh.svg deleted file mode 100644 index 72a3f0d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-refresh.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-remove.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-remove.svg deleted file mode 100644 index 74766b92..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-remove.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-settings.svg deleted file mode 100644 index 72e4f6ef..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-star.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-star.svg deleted file mode 100644 index d0465ec6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-star.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-alert.svg deleted file mode 100644 index 2bbdb94d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-lock-open.svg deleted file mode 100644 index f53c521f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-lock.svg deleted file mode 100644 index 6dbcbbdc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1.svg deleted file mode 100644 index eccbf202..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-1.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-alert.svg deleted file mode 100644 index f613972f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-lock-open.svg deleted file mode 100644 index 33113fe9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-lock.svg deleted file mode 100644 index b190bb7d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2.svg deleted file mode 100644 index f0226837..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-2.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-alert.svg deleted file mode 100644 index c919cbd9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-lock-open.svg deleted file mode 100644 index fad95689..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-lock.svg deleted file mode 100644 index 46ec3f68..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3.svg deleted file mode 100644 index 6d622dec..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-3.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-alert.svg deleted file mode 100644 index a87d4582..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-lock-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-lock-open.svg deleted file mode 100644 index d7a13b07..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-lock-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-lock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-lock.svg deleted file mode 100644 index 62ffc941..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4-lock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4.svg deleted file mode 100644 index 14285ab8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-4.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-alert-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-alert-outline.svg deleted file mode 100644 index de9e6e0e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-alert-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-lock-open-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-lock-open-outline.svg deleted file mode 100644 index 91000596..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-lock-open-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-lock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-lock-outline.svg deleted file mode 100644 index 0cff32fd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-lock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-off-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-off-outline.svg deleted file mode 100644 index 9c20b165..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-off-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-off.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-off.svg deleted file mode 100644 index 4d6761fe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-off.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-outline.svg deleted file mode 100644 index dbd853d5..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-strength-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-sync.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-sync.svg deleted file mode 100644 index ef3045d8..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi-sync.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi.svg deleted file mode 100644 index eed394dd..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wifi.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wikipedia.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wikipedia.svg deleted file mode 100644 index 50b1db6c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wikipedia.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-power-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-power-outline.svg deleted file mode 100644 index e6d2108a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-power-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-power.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-power.svg deleted file mode 100644 index f044d873..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-power.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine-alert.svg deleted file mode 100644 index 161f1a69..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine-check.svg deleted file mode 100644 index ab8db77e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine.svg deleted file mode 100644 index 33cf5adc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wind-turbine.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-close.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-close.svg deleted file mode 100644 index 5108bd7a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-closed-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-closed-variant.svg deleted file mode 100644 index 0a3f109b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-closed-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-closed.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-closed.svg deleted file mode 100644 index 85cb69fb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-closed.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-maximize.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-maximize.svg deleted file mode 100644 index 20035601..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-maximize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-minimize.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-minimize.svg deleted file mode 100644 index c6982edf..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-minimize.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-open-variant.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-open-variant.svg deleted file mode 100644 index 64dfe67f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-open-variant.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-open.svg deleted file mode 100644 index 375298cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-restore.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-restore.svg deleted file mode 100644 index e872b78c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-restore.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-alert.svg deleted file mode 100644 index d02ffa45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-auto.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-auto.svg deleted file mode 100644 index 0136b057..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-auto.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-cog.svg deleted file mode 100644 index 39c5f758..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-open.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-open.svg deleted file mode 100644 index f5e12f66..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-open.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-settings.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-settings.svg deleted file mode 100644 index ed66fdd4..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter-settings.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter.svg deleted file mode 100644 index b011d89b..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/window-shutter.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/windsock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/windsock.svg deleted file mode 100644 index 470340c9..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/windsock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper-wash-alert.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper-wash-alert.svg deleted file mode 100644 index bf76eb39..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper-wash-alert.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper-wash.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper-wash.svg deleted file mode 100644 index e35dea58..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper-wash.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper.svg deleted file mode 100644 index e90ab996..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wiper.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wizard-hat.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wizard-hat.svg deleted file mode 100644 index bc3ac31d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wizard-hat.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wordpress.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wordpress.svg deleted file mode 100644 index d9ebc18a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wordpress.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrap-disabled.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrap-disabled.svg deleted file mode 100644 index 17b4dca1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrap-disabled.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrap.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrap.svg deleted file mode 100644 index 30415935..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrap.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-check-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-check-outline.svg deleted file mode 100644 index 2e67a79a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-check-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-check.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-check.svg deleted file mode 100644 index 4c27a5b1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-check.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-clock-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-clock-outline.svg deleted file mode 100644 index 5fc23787..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-clock-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-clock.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-clock.svg deleted file mode 100644 index fd15222a..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-clock.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-cog-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-cog-outline.svg deleted file mode 100644 index cd5752cc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-cog-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-cog.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-cog.svg deleted file mode 100644 index 19d9c1d2..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-cog.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-outline.svg deleted file mode 100644 index 9604c07e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench.svg deleted file mode 100644 index 4eef0e38..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/wrench.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xamarin.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xamarin.svg deleted file mode 100644 index cb270b1f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xamarin.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xml.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xml.svg deleted file mode 100644 index 34caa1e1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xml.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xmpp.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xmpp.svg deleted file mode 100644 index eb813355..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/xmpp.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yahoo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yahoo.svg deleted file mode 100644 index eb0a468c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yahoo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yeast.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yeast.svg deleted file mode 100644 index 1ed87584..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yeast.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yin-yang.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yin-yang.svg deleted file mode 100644 index ceee1b49..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yin-yang.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yoga.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yoga.svg deleted file mode 100644 index d00bcf5e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yoga.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-gaming.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-gaming.svg deleted file mode 100644 index cc0bf677..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-gaming.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-studio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-studio.svg deleted file mode 100644 index 76c0b475..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-studio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-subscription.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-subscription.svg deleted file mode 100644 index 5c49e8dc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-subscription.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-tv.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-tv.svg deleted file mode 100644 index 40a820fc..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube-tv.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube.svg deleted file mode 100644 index 35c9e345..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/youtube.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yurt.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yurt.svg deleted file mode 100644 index 8bd6d217..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/yurt.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/z-wave.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/z-wave.svg deleted file mode 100644 index b1cdd21e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/z-wave.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zend.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zend.svg deleted file mode 100644 index fc2e0c87..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zend.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zigbee.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zigbee.svg deleted file mode 100644 index 913c69e3..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zigbee.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-box-outline.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-box-outline.svg deleted file mode 100644 index cea89005..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-box-outline.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-box.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-box.svg deleted file mode 100644 index 0ab50f89..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-box.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-disk.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-disk.svg deleted file mode 100644 index 502fa908..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zip-disk.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-aquarius.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-aquarius.svg deleted file mode 100644 index 733bd44f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-aquarius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-aries.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-aries.svg deleted file mode 100644 index 75d012a1..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-aries.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-cancer.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-cancer.svg deleted file mode 100644 index fbbaee3c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-cancer.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-capricorn.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-capricorn.svg deleted file mode 100644 index ba0d1577..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-capricorn.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-gemini.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-gemini.svg deleted file mode 100644 index 1e3ea980..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-gemini.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-leo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-leo.svg deleted file mode 100644 index ae82d10e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-leo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-libra.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-libra.svg deleted file mode 100644 index f57f9458..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-libra.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-pisces.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-pisces.svg deleted file mode 100644 index 229d86e7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-pisces.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-sagittarius.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-sagittarius.svg deleted file mode 100644 index ed2ea9d6..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-sagittarius.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-scorpio.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-scorpio.svg deleted file mode 100644 index 4cc9b595..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-scorpio.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-taurus.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-taurus.svg deleted file mode 100644 index 717fb4ad..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-taurus.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-virgo.svg b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-virgo.svg deleted file mode 100644 index 5688a5ca..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Assets/zodiac-virgo.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/MaterialDesignIconProvider.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/MaterialDesignIconProvider.cs deleted file mode 100644 index 39d80fb7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/MaterialDesignIconProvider.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using System.Text.RegularExpressions; - -namespace Projektanker.Icons.Avalonia.MaterialDesign -{ - /// - /// Implements the interface to provide Material Design icons. - /// - public class MaterialDesignIconProvider : IIconProvider - { - private const string _mdiProviderPrefix = "mdi"; - - private static readonly string _resourceNameTemplate - = $"{typeof(MaterialDesignIconProvider).Assembly.GetName().Name}.Assets.{{0}}.svg"; - - private static readonly Regex _pathRegex = new Regex(" _icons = new Dictionary(); - - public string Prefix => _mdiProviderPrefix; - - /// - public string GetIconPath(string value) - { - if (_icons.TryGetValue(value, out var icon)) - { - return icon; - } - - icon = GetIconFromResource(value); - return _icons[value] = icon; - } - - private static string GetIconFromResource(string value) - { - using (Stream stream = GetIconResourceStream(value)) - using (TextReader textReader = new StreamReader(stream)) - { - var svg = textReader.ReadToEnd(); - var pathMatch = _pathRegex.Match(svg); - var path = pathMatch.Groups[1].Value; - return path; - } - } - - private static Stream GetIconResourceStream(string value) - { - return TryGetIconResourceStream(value, out var stream) - ? stream - : throw new KeyNotFoundException($"Material Design Icon \"{value}\" not found!"); - } - - private static bool TryGetIconResourceStream(string value, out Stream stream) - { - stream = default; - - if (value.Length <= _mdiProviderPrefix.Length + 1) - { - return false; - } - - var withoutPrefix = value.Substring(_mdiProviderPrefix.Length + 1); - var resourceName = string.Format(_resourceNameTemplate, withoutPrefix); - stream = Assembly.GetExecutingAssembly() - .GetManifestResourceStream(resourceName); - - return stream != default; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Projektanker.Icons.Avalonia.MaterialDesign.csproj b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Projektanker.Icons.Avalonia.MaterialDesign.csproj deleted file mode 100644 index 36c83f45..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.MaterialDesign/Projektanker.Icons.Avalonia.MaterialDesign.csproj +++ /dev/null @@ -1,12 +0,0 @@ - - - netstandard2.0 - A library to easily display Material Design icons in an Avalonia App. - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/IconProviderTest.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/IconProviderTest.cs deleted file mode 100644 index 827a57f7..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/IconProviderTest.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System; -using System.Collections.Generic; -using FluentAssertions; -using Moq; -using Xunit; - -namespace Projektanker.Icons.Avalonia.Test -{ - public class IconProviderTest - { - private readonly IconProvider _iconProvider; - - public IconProviderTest() - { - var mock = new Mock(); - mock.Setup(provider => provider.GetIconPath(It.IsAny())) - .Returns(arg => arg); - - mock.SetupGet(provider => provider.Prefix) - .Returns("Test"); - - _iconProvider = new(); - _iconProvider.Register(mock.Object); - } - - [Fact] - public void Echo() - { - // Arrange - const string echo = "Test-test"; - - // Act - var iconPath = _iconProvider.GetIconPath(echo); - - // Assert - iconPath.Should().Be(echo); - } - - [Fact] - public void EmptyValue() - { - // Act - var iconPath = _iconProvider.GetIconPath(string.Empty); - - // Assert - iconPath.Should().BeEmpty(); - } - - [Fact] - public void NullValue() - { - // Act - var iconPath = _iconProvider.GetIconPath(null); - - // Assert - iconPath.Should().BeEmpty(); - } - - [Fact] - public void ProviderNotFound() - { - // Act - Func func = () => _iconProvider.GetIconPath("YouCantFindMe"); - - // Assert - func.Should().Throw(); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/Projektanker.Icons.Avalonia.Test.csproj b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/Projektanker.Icons.Avalonia.Test.csproj deleted file mode 100644 index 31629912..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/Projektanker.Icons.Avalonia.Test.csproj +++ /dev/null @@ -1,26 +0,0 @@ - - - - net6.0 - false - - - - - - - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - runtime; build; native; contentfiles; analyzers; buildtransitive - all - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/PulseEasingTest.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/PulseEasingTest.cs deleted file mode 100644 index 4ca97889..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.Test/PulseEasingTest.cs +++ /dev/null @@ -1,28 +0,0 @@ -using FluentAssertions; -using Xunit; - -namespace Projektanker.Icons.Avalonia.Test -{ - public class PulseEasingTest - { - [Theory] - [InlineData(0.0, 0.000)] - [InlineData(0.1, 0.000)] - [InlineData(0.2, 0.125)] - [InlineData(0.3, 0.250)] - [InlineData(0.4, 0.375)] - [InlineData(0.5, 0.500)] - [InlineData(0.6, 0.500)] - [InlineData(0.7, 0.625)] - [InlineData(0.8, 0.750)] - [InlineData(0.9, 0.875)] - [InlineData(1.0, 1)] - public void PulseEasing_Should_Return_Progress_In_Eight_Steps(double progress, double expected) - { - var pulseEasing = new PulseEasing(); - - var result = pulseEasing.Ease(progress); - result.Should().Be(expected); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.sln b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.sln deleted file mode 100644 index 25aa4737..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia.sln +++ /dev/null @@ -1,66 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 17 -VisualStudioVersion = 17.3.32811.315 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Projektanker.Icons.Avalonia.FontAwesome", "Projektanker.Icons.Avalonia.FontAwesome\Projektanker.Icons.Avalonia.FontAwesome.csproj", "{62C76C4B-8E96-4755-8EEC-C77F3F3B6C42}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Projektanker.Icons.Avalonia", "Projektanker.Icons.Avalonia\Projektanker.Icons.Avalonia.csproj", "{BE748D3C-D04C-49FA-BF3D-FA05F2AA7787}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Projektanker.Icons.Avalonia.Test", "Projektanker.Icons.Avalonia.Test\Projektanker.Icons.Avalonia.Test.csproj", "{D580D190-83BE-47FE-BED2-83BD6B85C0A3}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Projektanker.Icons.Avalonia.FontAwesome.Test", "Projektanker.Icons.Avalonia.FontAwesome.Test\Projektanker.Icons.Avalonia.FontAwesome.Test.csproj", "{B4E187E5-52CC-4F40-957E-6290E14BA2C6}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{6AA17950-E83A-4A31-AB97-73289DF4ADCE}" - ProjectSection(SolutionItems) = preProject - Directory.Build.props = Directory.Build.props - EndProjectSection -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Projektanker.Icons.Avalonia.MaterialDesign", "Projektanker.Icons.Avalonia.MaterialDesign\Projektanker.Icons.Avalonia.MaterialDesign.csproj", "{E9362EA8-481A-4A94-BDFA-1ABDFDEBC377}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Projektanker.Icons.Avalonia.MaterialDesign.Test", "Projektanker.Icons.Avalonia.MaterialDesign.Test\Projektanker.Icons.Avalonia.MaterialDesign.Test.csproj", "{A64323F1-3E17-4ABB-8E91-7D26A8865161}" -EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Demo", "..\demo\Demo.csproj", "{A332E41F-95D9-4EA2-9525-9853B5419EB0}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {62C76C4B-8E96-4755-8EEC-C77F3F3B6C42}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62C76C4B-8E96-4755-8EEC-C77F3F3B6C42}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62C76C4B-8E96-4755-8EEC-C77F3F3B6C42}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62C76C4B-8E96-4755-8EEC-C77F3F3B6C42}.Release|Any CPU.Build.0 = Release|Any CPU - {BE748D3C-D04C-49FA-BF3D-FA05F2AA7787}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BE748D3C-D04C-49FA-BF3D-FA05F2AA7787}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BE748D3C-D04C-49FA-BF3D-FA05F2AA7787}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BE748D3C-D04C-49FA-BF3D-FA05F2AA7787}.Release|Any CPU.Build.0 = Release|Any CPU - {D580D190-83BE-47FE-BED2-83BD6B85C0A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D580D190-83BE-47FE-BED2-83BD6B85C0A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D580D190-83BE-47FE-BED2-83BD6B85C0A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D580D190-83BE-47FE-BED2-83BD6B85C0A3}.Release|Any CPU.Build.0 = Release|Any CPU - {B4E187E5-52CC-4F40-957E-6290E14BA2C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B4E187E5-52CC-4F40-957E-6290E14BA2C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B4E187E5-52CC-4F40-957E-6290E14BA2C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B4E187E5-52CC-4F40-957E-6290E14BA2C6}.Release|Any CPU.Build.0 = Release|Any CPU - {E9362EA8-481A-4A94-BDFA-1ABDFDEBC377}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E9362EA8-481A-4A94-BDFA-1ABDFDEBC377}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E9362EA8-481A-4A94-BDFA-1ABDFDEBC377}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E9362EA8-481A-4A94-BDFA-1ABDFDEBC377}.Release|Any CPU.Build.0 = Release|Any CPU - {A64323F1-3E17-4ABB-8E91-7D26A8865161}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A64323F1-3E17-4ABB-8E91-7D26A8865161}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A64323F1-3E17-4ABB-8E91-7D26A8865161}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A64323F1-3E17-4ABB-8E91-7D26A8865161}.Release|Any CPU.Build.0 = Release|Any CPU - {A332E41F-95D9-4EA2-9525-9853B5419EB0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A332E41F-95D9-4EA2-9525-9853B5419EB0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A332E41F-95D9-4EA2-9525-9853B5419EB0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A332E41F-95D9-4EA2-9525-9853B5419EB0}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {60F7FBD6-B01B-4568-B864-E771E8A3CABC} - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/AppBuilderIconsExtensions.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/AppBuilderIconsExtensions.cs deleted file mode 100644 index 3c61bd32..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/AppBuilderIconsExtensions.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using Avalonia.Controls; - -namespace Projektanker.Icons.Avalonia -{ - public static class AppBuilderIconsExtensions - { - public static TAppBuilder WithIcons(this TAppBuilder appBuilder, Action configure) - where TAppBuilder : AppBuilderBase, new() - { - var iconProvider = new IconProvider(); - configure(iconProvider); - appBuilder.With(iconProvider); - - return appBuilder; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Attached.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Attached.cs deleted file mode 100644 index 4adfe750..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Attached.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using Avalonia; -using Avalonia.Controls; - -namespace Projektanker.Icons.Avalonia -{ - public static class Attached - { - /// - /// Identifies the avalonia attached property. - /// - public static readonly AttachedProperty IconProperty = - AvaloniaProperty.RegisterAttached("Icon", string.Empty); - - static Attached() - { - IconProperty.Changed.Subscribe(IconChanged); - } - - /// - /// Accessor for attached property - /// - public static string GetIcon(ContentControl target) - { - return target.GetValue(IconProperty); - } - - /// - /// Accessor for attached property - /// - public static void SetIcon(ContentControl target, string value) - { - target.SetValue(IconProperty, value); - } - - private static void IconChanged(AvaloniaPropertyChangedEventArgs evt) - { - if (evt.NewValue is not string value || evt.Sender is not ContentControl target) - { - return; - } - - target.Content = new Icon() - { - Value = value, - }; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconProvider.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconProvider.cs deleted file mode 100644 index 51a4dd9f..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconProvider.cs +++ /dev/null @@ -1,13 +0,0 @@ -namespace Projektanker.Icons.Avalonia -{ - /// - /// Represents an icon provider. - /// - public interface IIconProvider : IIconReader - { - /// - /// Gets the prefix of the . - /// - string Prefix { get; } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconProviderContainer.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconProviderContainer.cs deleted file mode 100644 index 158c153c..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconProviderContainer.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; - -namespace Projektanker.Icons.Avalonia -{ - public interface IIconProviderContainer - { - /// - /// Registers an with the . - /// - /// The to register. - /// A reference to this instance after the registration has completed. - /// is null. - IIconProviderContainer Register(IIconProvider iconProvider); - - /// - /// Registers an with the . - /// - /// - /// The type of the to register. - /// - /// A reference to this instance after the registration has completed. - /// - /// An with an conflicting prefix is already registered. - /// - IIconProviderContainer Register() where TIconProvider : IIconProvider, new(); - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconReader.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconReader.cs deleted file mode 100644 index adc69ebe..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IIconReader.cs +++ /dev/null @@ -1,18 +0,0 @@ -namespace Projektanker.Icons.Avalonia -{ - /// - /// Represents an icon reader. - /// - public interface IIconReader - { - /// - /// Gets the SVG path of the requested icon. - /// - /// The value specifying the icon to return it's path from. - /// The path of the icon. - /// - /// The icon associated with the specified does not exists. - /// - string GetIconPath(string value); - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Icon.axaml b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Icon.axaml deleted file mode 100644 index 101cc1ed..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Icon.axaml +++ /dev/null @@ -1,55 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Icon.axaml.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Icon.axaml.cs deleted file mode 100644 index efd3170d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Icon.axaml.cs +++ /dev/null @@ -1,78 +0,0 @@ -using System; -using System.Reactive.Linq; -using Avalonia; -using Avalonia.Controls.Primitives; -using Avalonia.Media; - -namespace Projektanker.Icons.Avalonia -{ - public class Icon : TemplatedControl - { - public static readonly DirectProperty DrawingImageProperty = - AvaloniaProperty.RegisterDirect(nameof(DrawingImage), o => o.DrawingImage); - - public static readonly StyledProperty ValueProperty = - AvaloniaProperty.Register(nameof(Value)); - - public static readonly StyledProperty AnimationProperty = - AvaloniaProperty.Register(nameof(Animation)); - - private DrawingImage _drawingImage; - - static Icon() - { - ValueProperty.Changed - .Select(e => e.Sender) - .OfType() - .Subscribe(icon => icon.OnValueChanged()); - - ForegroundProperty.Changed - .Select(e => e.Sender) - .OfType() - .Subscribe(icon => icon.OnForegroundChanged()); - } - - public DrawingImage DrawingImage - { - get => _drawingImage; - private set => SetAndRaise(DrawingImageProperty, ref _drawingImage, value); - } - - public string Value - { - get => GetValue(ValueProperty); - set => SetValue(ValueProperty, value); - } - - public IconAnimation Animation - { - get => GetValue(AnimationProperty); - set => SetValue(AnimationProperty, value); - } - - private void OnValueChanged() - { - var iconProvider = AvaloniaLocator.Current.GetService(); - string path = iconProvider.GetIconPath(Value); - var drawing = new GeometryDrawing() - { - Geometry = Geometry.Parse(path), - Brush = Foreground ?? new SolidColorBrush(0), - }; - - DrawingImage = new DrawingImage { Drawing = drawing }; - } - - private void OnForegroundChanged() - { - if (DrawingImage?.Drawing is GeometryDrawing geometryDrawing) - { - DrawingImage.Drawing = new GeometryDrawing - { - Geometry = geometryDrawing.Geometry, - Brush = Foreground, - }; - } - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IconAnimation.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IconAnimation.cs deleted file mode 100644 index 947119bb..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IconAnimation.cs +++ /dev/null @@ -1,9 +0,0 @@ -namespace Projektanker.Icons.Avalonia -{ - public enum IconAnimation - { - None, - Spin, - Pulse - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IconProvider.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IconProvider.cs deleted file mode 100644 index 231cd5aa..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/IconProvider.cs +++ /dev/null @@ -1,67 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; - -namespace Projektanker.Icons.Avalonia -{ - /// - /// Class providing the icon paths. - /// - public class IconProvider : IIconReader, IIconProviderContainer - { - private readonly SortedList _iconProvidersByPrefix = new(Comparer.Default); - - /// - public string GetIconPath(string value) - { - if (string.IsNullOrEmpty(value)) - { - return string.Empty; - } - - var provider = _iconProvidersByPrefix - .Select(prefixProviderPair => prefixProviderPair.Value) - .FirstOrDefault(p => value.StartsWith(p.Prefix, StringComparison.OrdinalIgnoreCase)); - - if (provider is null) - { - throw new KeyNotFoundException($"No provider with prefix matching \"{value}\" found."); - } - else - { - return provider.GetIconPath(value); - } - } - - /// /> - public IIconProviderContainer Register(IIconProvider iconProvider) - { - if (iconProvider is null) - { - throw new ArgumentNullException(nameof(iconProvider)); - } - - var conflicting = _iconProvidersByPrefix.Values.FirstOrDefault(existing => IsPrefix(existing.Prefix, iconProvider.Prefix)); - if (conflicting != null) - { - throw new ArgumentException($"Prefix \"{iconProvider.Prefix}\" conflicts with existing icon provider prefix \"{conflicting.Prefix}\"."); - } - - _iconProvidersByPrefix.Add(iconProvider.Prefix, iconProvider); - return this; - } - - /// - public IIconProviderContainer Register() - where TIconProvider : IIconProvider, new() - { - return Register(new TIconProvider()); - } - - private static bool IsPrefix(string existing, string adding) - { - return existing.StartsWith(adding, StringComparison.OrdinalIgnoreCase) - || adding.StartsWith(existing, StringComparison.OrdinalIgnoreCase); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/MenuItem.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/MenuItem.cs deleted file mode 100644 index 77c8832d..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/MenuItem.cs +++ /dev/null @@ -1,49 +0,0 @@ -using System; -using Avalonia; -using AvaloniaMenuItem = Avalonia.Controls.MenuItem; - -namespace Projektanker.Icons.Avalonia -{ - public static class MenuItem - { - /// - /// Identifies the avalonia attached property. - /// - public static readonly AttachedProperty IconProperty = - AvaloniaProperty.RegisterAttached("Icon", string.Empty); - - static MenuItem() - { - IconProperty.Changed.Subscribe(IconChanged); - } - - /// - /// Accessor for attached property - /// - public static string GetIcon(AvaloniaMenuItem target) - { - return target.GetValue(IconProperty); - } - - /// - /// Accessor for attached property - /// - public static void SetIcon(AvaloniaMenuItem target, string value) - { - target.SetValue(IconProperty, value); - } - - private static void IconChanged(AvaloniaPropertyChangedEventArgs evt) - { - if (evt.NewValue is not string value || evt.Sender is not AvaloniaMenuItem target) - { - return; - } - - target.Icon = new Icon() - { - Value = value, - }; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Projektanker.Icons.Avalonia.csproj b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Projektanker.Icons.Avalonia.csproj deleted file mode 100644 index 365bf792..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/Projektanker.Icons.Avalonia.csproj +++ /dev/null @@ -1,15 +0,0 @@ - - - - netstandard2.0 - A library to easily display icons in an Avalonia App. - 9 - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/PulseEasing.cs b/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/PulseEasing.cs deleted file mode 100644 index db3c451e..00000000 --- a/RE/Commit2/ThirdParty/Icons.Avalonia/src/Projektanker.Icons.Avalonia/PulseEasing.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System.Collections.Generic; -using System.Linq; -using Avalonia.Animation.Easings; - -namespace Projektanker.Icons.Avalonia -{ - public class PulseEasing : Easing - { - private const int Steps = 8; - - private static readonly IEnumerable _steps = Enumerable - .Range(0, Steps + 1) - .Select(index => 1.0 / Steps * index) - .ToArray(); - - public override double Ease(double progress) - { - return _steps.Last(step => step <= progress); - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyDecompressor.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyDecompressor.cs deleted file mode 100644 index 3ebf43bc..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyDecompressor.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System.Buffers; -using System.IO; - -using K4os.Compression.LZ4; - -namespace Xamarin.Android.AssemblyStore -{ - // https://github.com/xamarin/xamarin-android/blob/main/tools/decompress-assemblies/main.cs - public static class AssemblyDecompressor - { - const uint CompressedDataMagic = 0x5A4C4158; // 'XALZ', little-endian - static private ArrayPool BytePool = ArrayPool.Shared; - - public static bool IsCompressed(Stream inputStream) - { - return (new BinaryReader(inputStream, System.Text.Encoding.Default, true).ReadUInt32() == CompressedDataMagic); - } - - public static bool Work(Stream inputStream, Stream outputStream) - { - bool retVal = true; - - // - // LZ4 compressed assembly header format: - // uint magic; // 0x5A4C4158; 'XALZ', little-endian - // uint descriptor_index; // Index into an internal assembly descriptor table - // uint uncompressed_length; // Size of assembly, uncompressed - // - using (var reader = new BinaryReader(inputStream)) - { - uint magic = reader.ReadUInt32(); - if (magic == CompressedDataMagic) - { - reader.ReadUInt32(); // descriptor index, ignore - uint decompressedLength = reader.ReadUInt32(); - - int inputLength = (int)(inputStream.Length - 12); - byte[] sourceBytes = BytePool.Rent((int)inputLength); - reader.Read(sourceBytes, 0, inputLength); - - byte[] assemblyBytes = BytePool.Rent((int)decompressedLength); - int decoded = LZ4Codec.Decode(sourceBytes, 0, inputLength, assemblyBytes, 0, (int)decompressedLength); - if (decoded != (int)decompressedLength) - { - retVal = false; - } - else - { - outputStream.Write(assemblyBytes, 0, decoded); - outputStream.Flush(); - } - - BytePool.Return(sourceBytes); - BytePool.Return(assemblyBytes); - } - else - { - retVal = false; - } - } - - return retVal; - } - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreAssembly.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreAssembly.cs deleted file mode 100644 index e03e4b08..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreAssembly.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.IO; - -namespace Xamarin.Android.AssemblyStore -{ - public class AssemblyStoreAssembly - { - public uint DataOffset { get; } - public uint DataSize { get; } - public uint DebugDataOffset { get; } - public uint DebugDataSize { get; } - public uint ConfigDataOffset { get; } - public uint ConfigDataSize { get; } - - public uint Hash32 { get; set; } - public ulong Hash64 { get; set; } - public string Name { get; set; } = String.Empty; - public uint RuntimeIndex { get; set; } - - public AssemblyStoreReader Store { get; } - public string DllName => MakeFileName ("dll"); - public string PdbName => MakeFileName ("pdb"); - public string ConfigName => MakeFileName ("dll.config"); - - internal AssemblyStoreAssembly (BinaryReader reader, AssemblyStoreReader store) - { - Store = store; - - DataOffset = reader.ReadUInt32 (); - DataSize = reader.ReadUInt32 (); - DebugDataOffset = reader.ReadUInt32 (); - DebugDataSize = reader.ReadUInt32 (); - ConfigDataOffset = reader.ReadUInt32 (); - ConfigDataSize = reader.ReadUInt32 (); - } - - public void ExtractImage (string outputDirPath, string? fileName = null) - { - Store.ExtractAssemblyImage (this, MakeOutputFilePath (outputDirPath, "dll", fileName)); - } - - public void ExtractImage (Stream output) - { - Store.ExtractAssemblyImage (this, output); - } - - public void ExtractDebugData (string outputDirPath, string? fileName = null) - { - Store.ExtractAssemblyDebugData (this, MakeOutputFilePath (outputDirPath, "pdb", fileName)); - } - - public void ExtractDebugData (Stream output) - { - Store.ExtractAssemblyDebugData (this, output); - } - - public void ExtractConfig (string outputDirPath, string? fileName = null) - { - Store.ExtractAssemblyConfig (this, MakeOutputFilePath (outputDirPath, "dll.config", fileName)); - } - - public void ExtractConfig (Stream output) - { - Store.ExtractAssemblyConfig (this, output); - } - - string MakeOutputFilePath (string outputDirPath, string extension, string? fileName) - { - return Path.Combine (outputDirPath, MakeFileName (extension, fileName)); - } - - string MakeFileName (string extension, string? fileName = null) - { - if (String.IsNullOrEmpty (fileName)) { - fileName = Name; - - if (String.IsNullOrEmpty (fileName)) { - fileName = $"{Hash32:x}_{Hash64:x}"; - } - - fileName = $"{fileName}.{extension}"; - } - - return fileName!; - } - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreExplorer.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreExplorer.cs deleted file mode 100644 index b1cca696..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreExplorer.cs +++ /dev/null @@ -1,335 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; - -using System.IO.Compression; - -namespace Xamarin.Android.AssemblyStore -{ - public class AssemblyStoreExplorer - { - AssemblyStoreReader? indexStore; - AssemblyStoreManifestReader? manifest; - int numberOfStores = 0; - Action? logger; - bool keepStoreInMemory; - - public IDictionary AssembliesByName { get; } = new SortedDictionary (StringComparer.OrdinalIgnoreCase); - public IDictionary AssembliesByHash32 { get; } = new Dictionary (); - public IDictionary AssembliesByHash64 { get; } = new Dictionary (); - public List Assemblies { get; } = new List (); - public IDictionary> Stores { get; } = new SortedDictionary> (); - public string StorePath { get; } - public string StoreSetName { get; } - public bool HasErrors { get; private set; } - public bool HasWarnings { get; private set; } - - public bool IsCompleteSet => indexStore != null && manifest != null; - public int NumberOfStores => numberOfStores; - - // storePath can point to: - // - // aab - // apk - // index store (e.g. base_assemblies.blob) - // arch store (e.g. base_assemblies.arm64_v8a.blob) - // store manifest (e.g. base_assemblies.manifest) - // store base name (e.g. base or base_assemblies) - // - // In each case the whole set of stores and manifests will be read (if available). Search for the various members of the store set (common/main store, arch stores, - // manifest) is based on this naming convention: - // - // {BASE_NAME}[.ARCH_NAME].{blob|manifest} - // - // Whichever file is referenced in `storePath`, the BASE_NAME component is extracted and all the found files are read. - // If `storePath` points to an aab or an apk, BASE_NAME will always be `assemblies` - // - public AssemblyStoreExplorer (string storePath, Action? customLogger = null, bool keepStoreInMemory = false) - { - if (String.IsNullOrEmpty (storePath)) { - throw new ArgumentException ("must not be null or empty", nameof (storePath)); - } - - if (Directory.Exists (storePath)) { - throw new ArgumentException ($"'{storePath}' points to a directory", nameof (storePath)); - } - - logger = customLogger; - this.keepStoreInMemory = keepStoreInMemory; - StorePath = storePath; - string? extension = Path.GetExtension (storePath); - string? baseName = null; - - if (String.IsNullOrEmpty (extension)) { - baseName = GetBaseNameNoExtension (storePath); - } else { - baseName = GetBaseNameHaveExtension (storePath, extension); - } - - if (String.IsNullOrEmpty (baseName)) { - throw new InvalidOperationException ($"Unable to determine base name of a store set from path '{storePath}'"); - } - - StoreSetName = baseName; - if (!IsAndroidArchive (extension)) { - Logger (AssemblyStoreExplorerLogLevel.Info, $"{storePath} is not an Android archive, reading from filesystem"); - string? directoryName = Path.GetDirectoryName (storePath); - if (String.IsNullOrEmpty (directoryName)) { - directoryName = "."; - } - - ReadStoreSetFromFilesystem (baseName, directoryName); - } else { - Logger (AssemblyStoreExplorerLogLevel.Info, $"{storePath} is an Android archive"); - ReadStoreSetFromArchive (baseName, storePath, extension); - } - - ProcessStores (); - } - - void Logger (AssemblyStoreExplorerLogLevel level, string message) - { - if (level == AssemblyStoreExplorerLogLevel.Error) { - HasErrors = true; - } else if (level == AssemblyStoreExplorerLogLevel.Warning) { - HasWarnings = true; - } - - if (logger != null) { - logger (level, message); - } else { - DefaultLogger (level, message); - } - } - - void DefaultLogger (AssemblyStoreExplorerLogLevel level, string message) - { - Console.WriteLine ($"{level}: {message}"); - } - - void ProcessStores () - { - if (Stores.Count == 0 || indexStore == null) { - return; - } - - ProcessIndex (indexStore.GlobalIndex32, "32", (AssemblyStoreHashEntry he, AssemblyStoreAssembly assembly) => { - assembly.Hash32 = (uint)he.Hash; - assembly.RuntimeIndex = he.MappingIndex; - - if (manifest != null && manifest.EntriesByHash32.TryGetValue (assembly.Hash32, out AssemblyStoreManifestEntry? me) && me != null) { - assembly.Name = me.Name; - } - - if (!AssembliesByHash32.ContainsKey (assembly.Hash32)) { - AssembliesByHash32.Add (assembly.Hash32, assembly); - } - }); - - ProcessIndex (indexStore.GlobalIndex64, "64", (AssemblyStoreHashEntry he, AssemblyStoreAssembly assembly) => { - assembly.Hash64 = he.Hash; - if (assembly.RuntimeIndex != he.MappingIndex) { - Logger (AssemblyStoreExplorerLogLevel.Warning, $"assembly with hashes 0x{assembly.Hash32} and 0x{assembly.Hash64} has a different 32-bit runtime index ({assembly.RuntimeIndex}) than the 64-bit runtime index({he.MappingIndex})"); - } - - if (manifest != null && manifest.EntriesByHash64.TryGetValue (assembly.Hash64, out AssemblyStoreManifestEntry? me) && me != null) { - if (String.IsNullOrEmpty (assembly.Name)) { - Logger (AssemblyStoreExplorerLogLevel.Warning, $"32-bit hash 0x{assembly.Hash32:x} did not match any assembly name in the manifest"); - assembly.Name = me.Name; - if (String.IsNullOrEmpty (assembly.Name)) { - Logger (AssemblyStoreExplorerLogLevel.Warning, $"64-bit hash 0x{assembly.Hash64:x} did not match any assembly name in the manifest"); - } - } else if (String.Compare (assembly.Name, me.Name, StringComparison.Ordinal) != 0) { - Logger (AssemblyStoreExplorerLogLevel.Warning, $"32-bit hash 0x{assembly.Hash32:x} maps to assembly name '{assembly.Name}', however 64-bit hash 0x{assembly.Hash64:x} for the same entry matches assembly name '{me.Name}'"); - } - } - - if (!AssembliesByHash64.ContainsKey (assembly.Hash64)) { - AssembliesByHash64.Add (assembly.Hash64, assembly); - } - }); - - foreach (var kvp in Stores) { - List list = kvp.Value; - if (list.Count < 2) { - continue; - } - - AssemblyStoreReader template = list[0]; - for (int i = 1; i < list.Count; i++) { - AssemblyStoreReader other = list[i]; - if (!template.HasIdenticalContent (other)) { - Logger (AssemblyStoreExplorerLogLevel.Error, $"Store ID {template.StoreID} for architecture {other.Arch} is not identical to other stores with the same ID"); - } - } - } - - void ProcessIndex (List index, string bitness, Action assemblyHandler) - { - foreach (AssemblyStoreHashEntry he in index) { - if (!Stores.TryGetValue (he.StoreID, out List? storeList) || storeList == null) { - Logger (AssemblyStoreExplorerLogLevel.Warning, $"store with id {he.StoreID} not part of the set"); - continue; - } - - foreach (AssemblyStoreReader store in storeList) { - if (he.LocalStoreIndex >= (uint)store.Assemblies.Count) { - Logger (AssemblyStoreExplorerLogLevel.Warning, $"{bitness}-bit index entry with hash 0x{he.Hash:x} has invalid store {store.StoreID} index {he.LocalStoreIndex} (maximum allowed is {store.Assemblies.Count})"); - continue; - } - - AssemblyStoreAssembly assembly = store.Assemblies[(int)he.LocalStoreIndex]; - assemblyHandler (he, assembly); - - if (!AssembliesByName.ContainsKey (assembly.Name)) { - AssembliesByName.Add (assembly.Name, assembly); - } - } - } - } - } - - void ReadStoreSetFromArchive (string baseName, string archivePath, string extension) - { - string basePathInArchive; - - if (String.Compare (".aab", extension, StringComparison.OrdinalIgnoreCase) == 0) { - basePathInArchive = "base/root/assemblies"; - } else if (String.Compare (".apk", extension, StringComparison.OrdinalIgnoreCase) == 0) { - basePathInArchive = "assemblies"; - } else if (String.Compare (".zip", extension, StringComparison.OrdinalIgnoreCase) == 0) { - basePathInArchive = "root/assemblies"; - } else { - throw new InvalidOperationException ($"Unrecognized archive extension '{extension}'"); - } - - basePathInArchive = $"{basePathInArchive}/{baseName}."; - using (ZipArchive archive = ZipFile.OpenRead(archivePath)) { - ReadStoreSetFromArchive (archive, basePathInArchive); - } - } - - void ReadStoreSetFromArchive (ZipArchive archive, string basePathInArchive) - { - foreach (ZipArchiveEntry entry in archive.Entries) { - if (!entry.FullName.StartsWith (basePathInArchive, StringComparison.Ordinal)) { - continue; - } - - using (var streamEntry = entry.Open()) { - using (var stream = new MemoryStream()) - { - streamEntry.CopyTo(stream); - - if (entry.FullName.EndsWith(".blob", StringComparison.Ordinal)) - { - AddStore(new AssemblyStoreReader(stream, GetStoreArch(entry.FullName), keepStoreInMemory)); - } - else if (entry.FullName.EndsWith(".manifest", StringComparison.Ordinal)) - { - manifest = new AssemblyStoreManifestReader(stream); - } - } - } - } - } - - void AddStore (AssemblyStoreReader reader) - { - if (reader.HasGlobalIndex) { - indexStore = reader; - } - - List? storeList; - if (!Stores.TryGetValue (reader.StoreID, out storeList)) { - storeList = new List (); - Stores.Add (reader.StoreID, storeList); - } - storeList.Add (reader); - - Assemblies.AddRange (reader.Assemblies); - } - - string? GetStoreArch (string path) - { - string? arch = Path.GetFileNameWithoutExtension (path); - if (!String.IsNullOrEmpty (arch)) { - arch = Path.GetExtension (arch); - if (!String.IsNullOrEmpty (arch)) { - arch = arch.Substring (1); - } - } - - return arch; - } - - void ReadStoreSetFromFilesystem (string baseName, string setPath) - { - foreach (string de in Directory.EnumerateFiles (setPath, $"{baseName}.*", SearchOption.TopDirectoryOnly)) { - string? extension = Path.GetExtension (de); - if (String.IsNullOrEmpty (extension)) { - continue; - } - - if (String.Compare (".blob", extension, StringComparison.OrdinalIgnoreCase) == 0) { - AddStore (ReadStore (de)); - } else if (String.Compare (".manifest", extension, StringComparison.OrdinalIgnoreCase) == 0) { - manifest = ReadManifest (de); - } - } - - AssemblyStoreReader ReadStore (string filePath) - { - string? arch = GetStoreArch (filePath); - using (var fs = File.OpenRead (filePath)) { - return CreateStoreReader (fs, arch); - } - } - - AssemblyStoreManifestReader ReadManifest (string filePath) - { - using (var fs = File.OpenRead (filePath)) { - return new AssemblyStoreManifestReader (fs); - } - } - } - - AssemblyStoreReader CreateStoreReader (Stream input, string? arch) - { - numberOfStores++; - return new AssemblyStoreReader (input, arch, keepStoreInMemory); - } - - bool IsAndroidArchive (string extension) - { - return - String.Compare (".aab", extension, StringComparison.OrdinalIgnoreCase) == 0 || - String.Compare (".apk", extension, StringComparison.OrdinalIgnoreCase) == 0 || - String.Compare (".zip", extension, StringComparison.OrdinalIgnoreCase) == 0; - } - - string GetBaseNameHaveExtension (string storePath, string extension) - { - if (IsAndroidArchive (extension)) { - return "assemblies"; - } - - string fileName = Path.GetFileNameWithoutExtension (storePath); - int dot = fileName.IndexOf ('.'); - if (dot >= 0) { - return fileName.Substring (0, dot); - } - - return fileName; - } - - string GetBaseNameNoExtension (string storePath) - { - string fileName = Path.GetFileName (storePath); - if (fileName.EndsWith ("_assemblies", StringComparison.OrdinalIgnoreCase)) { - return fileName; - } - return $"{fileName}_assemblies"; - } - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreExplorerLogLevel.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreExplorerLogLevel.cs deleted file mode 100644 index a60417b4..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreExplorerLogLevel.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Xamarin.Android.AssemblyStore -{ - public enum AssemblyStoreExplorerLogLevel - { - Debug, - Info, - Warning, - Error, - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreHashEntry.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreHashEntry.cs deleted file mode 100644 index 8ad6db00..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreHashEntry.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.IO; - -namespace Xamarin.Android.AssemblyStore -{ - public class AssemblyStoreHashEntry - { - public bool Is32Bit { get; } - - public ulong Hash { get; } - public uint MappingIndex { get; } - public uint LocalStoreIndex { get; } - public uint StoreID { get; } - - internal AssemblyStoreHashEntry (BinaryReader reader, bool is32Bit) - { - Is32Bit = is32Bit; - - Hash = reader.ReadUInt64 (); - MappingIndex = reader.ReadUInt32 (); - LocalStoreIndex = reader.ReadUInt32 (); - StoreID = reader.ReadUInt32 (); - } - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreManifestEntry.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreManifestEntry.cs deleted file mode 100644 index 92d51d00..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreManifestEntry.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Globalization; - -namespace Xamarin.Android.AssemblyStore -{ - public class AssemblyStoreManifestEntry - { - // Fields are: - // Hash 32 | Hash 64 | Store ID | Store idx | Name - const int NumberOfFields = 5; - const int Hash32FieldIndex = 0; - const int Hash64FieldIndex = 1; - const int StoreIDFieldIndex = 2; - const int StoreIndexFieldIndex = 3; - const int NameFieldIndex = 4; - - public uint Hash32 { get; } - public ulong Hash64 { get; } - public uint StoreID { get; } - public uint IndexInStore { get; } - public string Name { get; } - - public AssemblyStoreManifestEntry (string[] fields) - { - if (fields.Length != NumberOfFields) { - throw new ArgumentOutOfRangeException (nameof (fields), "Invalid number of fields"); - } - - Hash32 = GetUInt32 (fields[Hash32FieldIndex]); - Hash64 = GetUInt64 (fields[Hash64FieldIndex]); - StoreID = GetUInt32 (fields[StoreIDFieldIndex]); - IndexInStore = GetUInt32 (fields[StoreIndexFieldIndex]); - Name = fields[NameFieldIndex].Trim (); - } - - uint GetUInt32 (string value) - { - if (UInt32.TryParse (PrepHexValue (value), NumberStyles.HexNumber, null, out uint hash)) { - return hash; - } - - return 0; - } - - ulong GetUInt64 (string value) - { - if (UInt64.TryParse (PrepHexValue (value), NumberStyles.HexNumber, null, out ulong hash)) { - return hash; - } - - return 0; - } - - string PrepHexValue (string value) - { - if (value.StartsWith ("0x", StringComparison.Ordinal)) { - return value.Substring (2); - } - - return value; - } - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreManifestReader.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreManifestReader.cs deleted file mode 100644 index 15a96929..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreManifestReader.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace Xamarin.Android.AssemblyStore -{ - public class AssemblyStoreManifestReader - { - static readonly char[] fieldSplit = new char[] { ' ' }; - - public List Entries { get; } = new List (); - public Dictionary EntriesByHash32 { get; } = new Dictionary (); - public Dictionary EntriesByHash64 { get; } = new Dictionary (); - - public AssemblyStoreManifestReader (Stream manifest) - { - manifest.Seek (0, SeekOrigin.Begin); - using (var sr = new StreamReader (manifest, Encoding.UTF8, detectEncodingFromByteOrderMarks: false)) { - ReadManifest (sr); - } - } - - void ReadManifest (StreamReader reader) - { - // First line is ignored, it contains headers - reader.ReadLine (); - - // Each subsequent line consists of fields separated with any number of spaces (for the pleasure of a human being reading the manifest) - while (!reader.EndOfStream) { - string[]? fields = reader.ReadLine ()?.Split (fieldSplit, StringSplitOptions.RemoveEmptyEntries); - if (fields == null) { - continue; - } - - var entry = new AssemblyStoreManifestEntry (fields); - Entries.Add (entry); - if (entry.Hash32 != 0) { - EntriesByHash32.Add (entry.Hash32, entry); - } - - if (entry.Hash64 != 0) { - EntriesByHash64.Add (entry.Hash64, entry); - } - } - } - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreReader.cs b/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreReader.cs deleted file mode 100644 index c3a389ee..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/AssemblyStoreReader.cs +++ /dev/null @@ -1,184 +0,0 @@ -using System; -using System.Buffers; -using System.Collections.Generic; -using System.IO; -using System.Text; - -namespace Xamarin.Android.AssemblyStore -{ - public class AssemblyStoreReader - { - // These two constants must be identical to the native ones in src/monodroid/jni/xamarin-app.hh - const uint ASSEMBLY_STORE_MAGIC = 0x41424158; // 'XABA', little-endian - const uint ASSEMBLY_STORE_FORMAT_VERSION = 1; // The highest format version this reader understands - - MemoryStream? storeData; - - public uint Version { get; private set; } - public uint LocalEntryCount { get; private set; } - public uint GlobalEntryCount { get; private set; } - public uint StoreID { get; private set; } - public List Assemblies { get; } - public List GlobalIndex32 { get; } = new List (); - public List GlobalIndex64 { get; } = new List (); - public string Arch { get; } - - public bool HasGlobalIndex => StoreID == 0; - - public AssemblyStoreReader (Stream store, string? arch = null, bool keepStoreInMemory = false) - { - Arch = arch ?? String.Empty; - - store.Seek (0, SeekOrigin.Begin); - if (keepStoreInMemory) { - storeData = new MemoryStream (); - store.CopyTo (storeData); - storeData.Flush (); - store.Seek (0, SeekOrigin.Begin); - } - - using (var reader = new BinaryReader (store, Encoding.UTF8, leaveOpen: true)) { - ReadHeader (reader); - - Assemblies = new List (); - ReadLocalEntries (reader, Assemblies); - if (HasGlobalIndex) { - ReadGlobalIndex (reader, GlobalIndex32, GlobalIndex64); - } - } - } - - internal void ExtractAssemblyImage (AssemblyStoreAssembly assembly, string outputFilePath) - { - SaveDataToFile (outputFilePath, assembly.DataOffset, assembly.DataSize); - } - - internal void ExtractAssemblyImage (AssemblyStoreAssembly assembly, Stream output) - { - SaveDataToStream (output, assembly.DataOffset, assembly.DataSize); - } - - internal void ExtractAssemblyDebugData (AssemblyStoreAssembly assembly, string outputFilePath) - { - if (assembly.DebugDataOffset == 0 || assembly.DebugDataSize == 0) { - return; - } - SaveDataToFile (outputFilePath, assembly.DebugDataOffset, assembly.DebugDataSize); - } - - internal void ExtractAssemblyDebugData (AssemblyStoreAssembly assembly, Stream output) - { - if (assembly.DebugDataOffset == 0 || assembly.DebugDataSize == 0) { - return; - } - SaveDataToStream (output, assembly.DebugDataOffset, assembly.DebugDataSize); - } - - internal void ExtractAssemblyConfig (AssemblyStoreAssembly assembly, string outputFilePath) - { - if (assembly.ConfigDataOffset == 0 || assembly.ConfigDataSize == 0) { - return; - } - - SaveDataToFile (outputFilePath, assembly.ConfigDataOffset, assembly.ConfigDataSize); - } - - internal void ExtractAssemblyConfig (AssemblyStoreAssembly assembly, Stream output) - { - if (assembly.ConfigDataOffset == 0 || assembly.ConfigDataSize == 0) { - return; - } - SaveDataToStream (output, assembly.ConfigDataOffset, assembly.ConfigDataSize); - } - - void SaveDataToFile (string outputFilePath, uint offset, uint size) - { - EnsureStoreDataAvailable (); - using (var fs = File.Open (outputFilePath, FileMode.Create, FileAccess.Write, FileShare.Read)) { - SaveDataToStream (fs, offset, size); - } - } - - void SaveDataToStream (Stream output, uint offset, uint size) - { - EnsureStoreDataAvailable (); - ArrayPool pool = ArrayPool.Shared; - - storeData!.Seek (offset, SeekOrigin.Begin); - byte[] buf = pool.Rent (16384); - int nread; - long toRead = size; - while (toRead > 0 && (nread = storeData.Read (buf, 0, buf.Length)) > 0) { - if (nread > toRead) { - nread = (int)toRead; - } - - output.Write (buf, 0, nread); - toRead -= nread; - } - output.Flush (); - pool.Return (buf); - } - - void EnsureStoreDataAvailable () - { - if (storeData != null) { - return; - } - - throw new InvalidOperationException ("Store data not available. AssemblyStore/AssemblyStoreExplorer must be instantiated with the `keepStoreInMemory` argument set to `true`"); - } - - public bool HasIdenticalContent (AssemblyStoreReader other) - { - return - other.Version == Version && - other.LocalEntryCount == LocalEntryCount && - other.GlobalEntryCount == GlobalEntryCount && - other.StoreID == StoreID && - other.Assemblies.Count == Assemblies.Count && - other.GlobalIndex32.Count == GlobalIndex32.Count && - other.GlobalIndex64.Count == GlobalIndex64.Count; - } - - void ReadHeader (BinaryReader reader) - { - uint magic = reader.ReadUInt32 (); - if (magic != ASSEMBLY_STORE_MAGIC) { - throw new InvalidOperationException ("Invalid header magic number"); - } - - Version = reader.ReadUInt32 (); - if (Version == 0) { - throw new InvalidOperationException ("Invalid version number: 0"); - } - - if (Version > ASSEMBLY_STORE_FORMAT_VERSION) { - throw new InvalidOperationException ($"Store format version {Version} is higher than the one understood by this reader, {ASSEMBLY_STORE_FORMAT_VERSION}"); - } - - LocalEntryCount = reader.ReadUInt32 (); - GlobalEntryCount = reader.ReadUInt32 (); - StoreID = reader.ReadUInt32 (); - } - - void ReadLocalEntries (BinaryReader reader, List assemblies) - { - for (uint i = 0; i < LocalEntryCount; i++) { - assemblies.Add (new AssemblyStoreAssembly (reader, this)); - } - } - - void ReadGlobalIndex (BinaryReader reader, List index32, List index64) - { - ReadIndex (true, index32); - ReadIndex (true, index64); - - void ReadIndex (bool is32Bit, List index) { - for (uint i = 0; i < GlobalEntryCount; i++) { - index.Add (new AssemblyStoreHashEntry (reader, is32Bit)); - } - } - } - } -} diff --git a/RE/Commit2/ThirdParty/assembly-store-reader/assembly-store-reader.csproj b/RE/Commit2/ThirdParty/assembly-store-reader/assembly-store-reader.csproj deleted file mode 100644 index 4ea37505..00000000 --- a/RE/Commit2/ThirdParty/assembly-store-reader/assembly-store-reader.csproj +++ /dev/null @@ -1,17 +0,0 @@ - - - Microsoft Corporation - 2021 Microsoft Corporation - 0.0.1 - Library - net6.0;net5.0 - disable - enable - Xamarin.Android.AssemblyStoreReader - 21 - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/.editorconfig b/RE/Commit2/ThirdParty/fna/.editorconfig deleted file mode 100644 index 1a824395..00000000 --- a/RE/Commit2/ThirdParty/fna/.editorconfig +++ /dev/null @@ -1,6 +0,0 @@ -# EditorConfig is awesome: https://EditorConfig.org - -[*.cs] -indent_style = tab -trim_trailing_whitespace = true -insert_final_newline = true diff --git a/RE/Commit2/ThirdParty/fna/.github/FUNDING.yml b/RE/Commit2/ThirdParty/fna/.github/FUNDING.yml deleted file mode 100644 index aef30d32..00000000 --- a/RE/Commit2/ThirdParty/fna/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [flibitijibibo] diff --git a/RE/Commit2/ThirdParty/fna/.gitignore b/RE/Commit2/ThirdParty/fna/.gitignore deleted file mode 100644 index 59bee9dd..00000000 --- a/RE/Commit2/ThirdParty/fna/.gitignore +++ /dev/null @@ -1,8 +0,0 @@ -bin/ -obj/ -obj_core/ -*.pidb -*.user -*.userprefs -*.suo -*.vs diff --git a/RE/Commit2/ThirdParty/fna/.gitmodules b/RE/Commit2/ThirdParty/fna/.gitmodules deleted file mode 100644 index 59c7b39d..00000000 --- a/RE/Commit2/ThirdParty/fna/.gitmodules +++ /dev/null @@ -1,12 +0,0 @@ -[submodule "lib/SDL2-CS"] - path = lib/SDL2-CS - url = https://github.com/flibitijibibo/SDL2-CS -[submodule "lib/FAudio"] - path = lib/FAudio - url = https://github.com/FNA-XNA/FAudio -[submodule "lib/FNA3D"] - path = lib/FNA3D - url = https://github.com/FNA-XNA/FNA3D -[submodule "lib/Theorafile"] - path = lib/Theorafile - url = https://github.com/FNA-XNA/Theorafile diff --git a/RE/Commit2/ThirdParty/fna/Directory.Build.props b/RE/Commit2/ThirdParty/fna/Directory.Build.props deleted file mode 100644 index 813d4bfd..00000000 --- a/RE/Commit2/ThirdParty/fna/Directory.Build.props +++ /dev/null @@ -1,5 +0,0 @@ - - - obj_core\ - - diff --git a/RE/Commit2/ThirdParty/fna/FNA.Core.csproj b/RE/Commit2/ThirdParty/fna/FNA.Core.csproj deleted file mode 100644 index 52906e41..00000000 --- a/RE/Commit2/ThirdParty/fna/FNA.Core.csproj +++ /dev/null @@ -1,369 +0,0 @@ - - - netstandard2.0;net5.0 - x64 - - - false - FNA - Microsoft.Xna.Framework - true - false - - - $(SolutionDir)FNA.Settings.props - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.AlphaTestEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.BasicEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.DualTextureEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.EnvironmentMapEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.SkinnedEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.SpriteEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.YUVToRGBAEffect.fxb - - - diff --git a/RE/Commit2/ThirdParty/fna/FNA.csproj b/RE/Commit2/ThirdParty/fna/FNA.csproj deleted file mode 100644 index 6e14c007..00000000 --- a/RE/Commit2/ThirdParty/fna/FNA.csproj +++ /dev/null @@ -1,442 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {35253CE1-C864-4CD3-8249-4D1319748E8F} - Library - Microsoft.Xna.Framework - FNA - - - True - full - False - bin\Debug - DEBUG; - prompt - 4 - x86 - False - True - - - none - True - bin\Release - prompt - 4 - x86 - False - True - - - True - full - False - bin\Debug - DEBUG; - prompt - 4 - x64 - False - True - - - none - True - bin\Release - prompt - 4 - x64 - False - True - - - True - full - False - bin\Debug - DEBUG; - prompt - 4 - AnyCPU - False - True - - - none - True - bin\Release - prompt - 4 - AnyCPU - False - True - - - $(SolutionDir)FNA.Settings.props - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - $(TargetFileName).config - PreserveNewest - - - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.AlphaTestEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.BasicEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.DualTextureEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.EnvironmentMapEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.SkinnedEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.SpriteEffect.fxb - - - Microsoft.Xna.Framework.Graphics.Effect.Resources.YUVToRGBAEffect.fxb - - - diff --git a/RE/Commit2/ThirdParty/fna/FNA.sln b/RE/Commit2/ThirdParty/fna/FNA.sln deleted file mode 100644 index 8b8df2c4..00000000 --- a/RE/Commit2/ThirdParty/fna/FNA.sln +++ /dev/null @@ -1,32 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA", "FNA.csproj", "{35253CE1-C864-4CD3-8249-4D1319748E8F}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x86.ActiveCfg = Debug|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x86.Build.0 = Debug|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x86.ActiveCfg = Release|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x86.Build.0 = Release|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x64.ActiveCfg = Debug|x64 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x64.Build.0 = Debug|x64 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x64.ActiveCfg = Release|x64 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x64.Build.0 = Release|x64 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|AnyCPU.ActiveCfg = Debug|Any CPU - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|AnyCPU.Build.0 = Debug|Any CPU - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|AnyCPU.ActiveCfg = Release|Any CPU - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|AnyCPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = FNA.csproj - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/Makefile b/RE/Commit2/ThirdParty/fna/Makefile deleted file mode 100644 index b5a029e0..00000000 --- a/RE/Commit2/ThirdParty/fna/Makefile +++ /dev/null @@ -1,358 +0,0 @@ -# Makefile for FNA -# Written by Ethan "flibitijibibo" Lee - -# Source Lists -SRC = \ - src/Audio/AudioCategory.cs \ - src/Audio/AudioChannels.cs \ - src/Audio/AudioEmitter.cs \ - src/Audio/AudioEngine.cs \ - src/Audio/AudioListener.cs \ - src/Audio/AudioStopOptions.cs \ - src/Audio/Cue.cs \ - src/Audio/DynamicSoundEffectInstance.cs \ - src/Audio/InstancePlayLimitException.cs \ - src/Audio/Microphone.cs \ - src/Audio/MicrophoneState.cs \ - src/Audio/NoAudioHardwareException.cs \ - src/Audio/NoMicrophoneConnectedException.cs \ - src/Audio/RendererDetail.cs \ - src/Audio/SoundBank.cs \ - src/Audio/SoundEffect.cs \ - src/Audio/SoundEffectInstance.cs \ - src/Audio/SoundState.cs \ - src/Audio/WaveBank.cs \ - src/BoundingBox.cs \ - src/BoundingFrustum.cs \ - src/BoundingSphere.cs \ - src/Color.cs \ - src/ContainmentType.cs \ - src/Content/ContentExtensions.cs \ - src/Content/ContentLoadException.cs \ - src/Content/ContentManager.cs \ - src/Content/ContentReader.cs \ - src/Content/ContentReaders/AlphaTestEffectReader.cs \ - src/Content/ContentReaders/ArrayReader.cs \ - src/Content/ContentReaders/BasicEffectReader.cs \ - src/Content/ContentReaders/BooleanReader.cs \ - src/Content/ContentReaders/BoundingBoxReader.cs \ - src/Content/ContentReaders/BoundingFrustumReader.cs \ - src/Content/ContentReaders/BoundingSphereReader.cs \ - src/Content/ContentReaders/ByteReader.cs \ - src/Content/ContentReaders/CharReader.cs \ - src/Content/ContentReaders/ColorReader.cs \ - src/Content/ContentReaders/CurveReader.cs \ - src/Content/ContentReaders/DateTimeReader.cs \ - src/Content/ContentReaders/DecimalReader.cs \ - src/Content/ContentReaders/DictionaryReader.cs \ - src/Content/ContentReaders/DoubleReader.cs \ - src/Content/ContentReaders/DualTextureEffectReader.cs \ - src/Content/ContentReaders/EffectMaterialReader.cs \ - src/Content/ContentReaders/EffectReader.cs \ - src/Content/ContentReaders/EnumReader.cs \ - src/Content/ContentReaders/EnvironmentMapEffectReader.cs \ - src/Content/ContentReaders/ExternalReferenceReader.cs \ - src/Content/ContentReaders/IndexBufferReader.cs \ - src/Content/ContentReaders/Int16Reader.cs \ - src/Content/ContentReaders/Int32Reader.cs \ - src/Content/ContentReaders/Int64Reader.cs \ - src/Content/ContentReaders/ListReader.cs \ - src/Content/ContentReaders/MatrixReader.cs \ - src/Content/ContentReaders/ModelReader.cs \ - src/Content/ContentReaders/NullableReader.cs \ - src/Content/ContentReaders/PlaneReader.cs \ - src/Content/ContentReaders/PointReader.cs \ - src/Content/ContentReaders/QuaternionReader.cs \ - src/Content/ContentReaders/RayReader.cs \ - src/Content/ContentReaders/RectangleReader.cs \ - src/Content/ContentReaders/ReflectiveReader.cs \ - src/Content/ContentReaders/SByteReader.cs \ - src/Content/ContentReaders/SingleReader.cs \ - src/Content/ContentReaders/SkinnedEffectReader.cs \ - src/Content/ContentReaders/SongReader.cs \ - src/Content/ContentReaders/SoundEffectReader.cs \ - src/Content/ContentReaders/SpriteFontReader.cs \ - src/Content/ContentReaders/StringReader.cs \ - src/Content/ContentReaders/Texture2DReader.cs \ - src/Content/ContentReaders/Texture3DReader.cs \ - src/Content/ContentReaders/TextureCubeReader.cs \ - src/Content/ContentReaders/TextureReader.cs \ - src/Content/ContentReaders/TimeSpanReader.cs \ - src/Content/ContentReaders/UInt16Reader.cs \ - src/Content/ContentReaders/UInt32Reader.cs \ - src/Content/ContentReaders/UInt64Reader.cs \ - src/Content/ContentReaders/Vector2Reader.cs \ - src/Content/ContentReaders/Vector3Reader.cs \ - src/Content/ContentReaders/Vector4Reader.cs \ - src/Content/ContentReaders/VertexBufferReader.cs \ - src/Content/ContentReaders/VertexDeclarationReader.cs \ - src/Content/ContentReaders/VideoReader.cs \ - src/Content/ContentSerializerAttribute.cs \ - src/Content/ContentSerializerCollectionItemNameAttribute.cs \ - src/Content/ContentSerializerIgnoreAttribute.cs \ - src/Content/ContentSerializerRuntimeTypeAttribute.cs \ - src/Content/ContentSerializerTypeVersionAttribute.cs \ - src/Content/ContentTypeReader.cs \ - src/Content/ContentTypeReaderManager.cs \ - src/Content/LzxDecoder.cs \ - src/Content/ResourceContentManager.cs \ - src/Curve.cs \ - src/CurveContinuity.cs \ - src/CurveKey.cs \ - src/CurveKeyCollection.cs \ - src/CurveLoopType.cs \ - src/CurveTangent.cs \ - src/Design/BoundingBoxConverter.cs \ - src/Design/BoundingSphereConverter.cs \ - src/Design/ColorConverter.cs \ - src/Design/MathTypeConverter.cs \ - src/Design/MatrixConverter.cs \ - src/Design/PlaneConverter.cs \ - src/Design/PointConverter.cs \ - src/Design/QuaternionConverter.cs \ - src/Design/RayConverter.cs \ - src/Design/RectangleConverter.cs \ - src/Design/Vector2Converter.cs \ - src/Design/Vector3Converter.cs \ - src/Design/Vector4Converter.cs \ - src/DisplayOrientation.cs \ - src/DrawableGameComponent.cs \ - src/FNALoggerEXT.cs \ - src/FNAPlatform/FNAPlatform.cs \ - src/FNAPlatform/FNAWindow.cs \ - src/FNAPlatform/SDL2_FNAPlatform.cs \ - src/FrameworkDispatcher.cs \ - src/Game.cs \ - src/GameComponent.cs \ - src/GameComponentCollection.cs \ - src/GameComponentCollectionEventArgs.cs \ - src/GameServiceContainer.cs \ - src/GameTime.cs \ - src/GameWindow.cs \ - src/Graphics/ClearOptions.cs \ - src/Graphics/ColorWriteChannels.cs \ - src/Graphics/CubeMapFace.cs \ - src/Graphics/DepthFormat.cs \ - src/Graphics/DeviceLostException.cs \ - src/Graphics/DeviceNotResetException.cs \ - src/Graphics/DirectionalLight.cs \ - src/Graphics/DisplayMode.cs \ - src/Graphics/DisplayModeCollection.cs \ - src/Graphics/DxtUtil.cs \ - src/Graphics/Effect/Effect.cs \ - src/Graphics/Effect/EffectAnnotation.cs \ - src/Graphics/Effect/EffectAnnotationCollection.cs \ - src/Graphics/Effect/EffectMaterial.cs \ - src/Graphics/Effect/EffectParameter.cs \ - src/Graphics/Effect/EffectParameterClass.cs \ - src/Graphics/Effect/EffectParameterCollection.cs \ - src/Graphics/Effect/EffectParameterType.cs \ - src/Graphics/Effect/EffectPass.cs \ - src/Graphics/Effect/EffectPassCollection.cs \ - src/Graphics/Effect/EffectTechnique.cs \ - src/Graphics/Effect/EffectTechniqueCollection.cs \ - src/Graphics/Effect/IEffectFog.cs \ - src/Graphics/Effect/IEffectLights.cs \ - src/Graphics/Effect/IEffectMatrices.cs \ - src/Graphics/Effect/Resources.cs \ - src/Graphics/Effect/StockEffects/AlphaTestEffect.cs \ - src/Graphics/Effect/StockEffects/BasicEffect.cs \ - src/Graphics/Effect/StockEffects/DualTextureEffect.cs \ - src/Graphics/Effect/StockEffects/EffectHelpers.cs \ - src/Graphics/Effect/StockEffects/EnvironmentMapEffect.cs \ - src/Graphics/Effect/StockEffects/SkinnedEffect.cs \ - src/Graphics/Effect/StockEffects/SpriteEffect.cs \ - src/Graphics/FNA3D.cs \ - src/Graphics/GraphicsAdapter.cs \ - src/Graphics/GraphicsDevice.cs \ - src/Graphics/GraphicsDeviceStatus.cs \ - src/Graphics/GraphicsProfile.cs \ - src/Graphics/GraphicsResource.cs \ - src/Graphics/IGraphicsDeviceService.cs \ - src/Graphics/IRenderTarget.cs \ - src/Graphics/Model.cs \ - src/Graphics/ModelBone.cs \ - src/Graphics/ModelBoneCollection.cs \ - src/Graphics/ModelEffectCollection.cs \ - src/Graphics/ModelMesh.cs \ - src/Graphics/ModelMeshCollection.cs \ - src/Graphics/ModelMeshPart.cs \ - src/Graphics/ModelMeshPartCollection.cs \ - src/Graphics/NoSuitableGraphicsDeviceException.cs \ - src/Graphics/OcclusionQuery.cs \ - src/Graphics/PackedVector/Alpha8.cs \ - src/Graphics/PackedVector/Bgr565.cs \ - src/Graphics/PackedVector/Bgra4444.cs \ - src/Graphics/PackedVector/Bgra5551.cs \ - src/Graphics/PackedVector/Byte4.cs \ - src/Graphics/PackedVector/HalfSingle.cs \ - src/Graphics/PackedVector/HalfTypeHelper.cs \ - src/Graphics/PackedVector/HalfVector2.cs \ - src/Graphics/PackedVector/HalfVector4.cs \ - src/Graphics/PackedVector/IPackedVector.cs \ - src/Graphics/PackedVector/NormalizedByte2.cs \ - src/Graphics/PackedVector/NormalizedByte4.cs \ - src/Graphics/PackedVector/NormalizedShort2.cs \ - src/Graphics/PackedVector/NormalizedShort4.cs \ - src/Graphics/PackedVector/Rg32.cs \ - src/Graphics/PackedVector/Rgba64.cs \ - src/Graphics/PackedVector/Rgba1010102.cs \ - src/Graphics/PackedVector/Short2.cs \ - src/Graphics/PackedVector/Short4.cs \ - src/Graphics/PipelineCache.cs \ - src/Graphics/PresentationParameters.cs \ - src/Graphics/PresentInterval.cs \ - src/Graphics/PrimitiveType.cs \ - src/Graphics/ProfileCapabilities.cs \ - src/Graphics/RenderTarget2D.cs \ - src/Graphics/RenderTargetBinding.cs \ - src/Graphics/RenderTargetCube.cs \ - src/Graphics/RenderTargetUsage.cs \ - src/Graphics/ResourceCreatedEventArgs.cs \ - src/Graphics/ResourceDestroyedEventArgs.cs \ - src/Graphics/SamplerStateCollection.cs \ - src/Graphics/SetDataOptions.cs \ - src/Graphics/SpriteBatch.cs \ - src/Graphics/SpriteEffects.cs \ - src/Graphics/SpriteFont.cs \ - src/Graphics/SpriteSortMode.cs \ - src/Graphics/States/Blend.cs \ - src/Graphics/States/BlendFunction.cs \ - src/Graphics/States/BlendState.cs \ - src/Graphics/States/CompareFunction.cs \ - src/Graphics/States/CullMode.cs \ - src/Graphics/States/DepthStencilState.cs \ - src/Graphics/States/FillMode.cs \ - src/Graphics/States/RasterizerState.cs \ - src/Graphics/States/SamplerState.cs \ - src/Graphics/States/StencilOperation.cs \ - src/Graphics/States/TextureAddressMode.cs \ - src/Graphics/States/TextureFilter.cs \ - src/Graphics/SurfaceFormat.cs \ - src/Graphics/Texture.cs \ - src/Graphics/Texture2D.cs \ - src/Graphics/Texture3D.cs \ - src/Graphics/TextureCollection.cs \ - src/Graphics/TextureCube.cs \ - src/Graphics/Vertices/BufferUsage.cs \ - src/Graphics/Vertices/DynamicIndexBuffer.cs \ - src/Graphics/Vertices/DynamicVertexBuffer.cs \ - src/Graphics/Vertices/IndexBuffer.cs \ - src/Graphics/Vertices/IndexElementSize.cs \ - src/Graphics/Vertices/IVertexType.cs \ - src/Graphics/Vertices/VertexBuffer.cs \ - src/Graphics/Vertices/VertexBufferBinding.cs \ - src/Graphics/Vertices/VertexDeclaration.cs \ - src/Graphics/Vertices/VertexDeclarationCache.cs \ - src/Graphics/Vertices/VertexElement.cs \ - src/Graphics/Vertices/VertexElementFormat.cs \ - src/Graphics/Vertices/VertexElementUsage.cs \ - src/Graphics/Vertices/VertexPositionColor.cs \ - src/Graphics/Vertices/VertexPositionColorTexture.cs \ - src/Graphics/Vertices/VertexPositionNormalTexture.cs \ - src/Graphics/Vertices/VertexPositionTexture.cs \ - src/Graphics/Viewport.cs \ - src/Graphics/X360TexUtil.cs \ - src/GraphicsDeviceInformation.cs \ - src/GraphicsDeviceManager.cs \ - src/IDrawable.cs \ - src/IGameComponent.cs \ - src/IGraphicsDeviceManager.cs \ - src/Input/Buttons.cs \ - src/Input/ButtonState.cs \ - src/Input/GamePad.cs \ - src/Input/GamePadButtons.cs \ - src/Input/GamePadCapabilities.cs \ - src/Input/GamePadDeadZone.cs \ - src/Input/GamePadDPad.cs \ - src/Input/GamePadState.cs \ - src/Input/GamePadThumbSticks.cs \ - src/Input/GamePadTriggers.cs \ - src/Input/GamePadType.cs \ - src/Input/Keyboard.cs \ - src/Input/KeyboardState.cs \ - src/Input/Keys.cs \ - src/Input/KeyState.cs \ - src/Input/Mouse.cs \ - src/Input/MouseState.cs \ - src/Input/TextInputEXT.cs \ - src/Input/Touch/GestureDetector.cs \ - src/Input/Touch/GestureSample.cs \ - src/Input/Touch/GestureType.cs \ - src/Input/Touch/TouchCollection.cs \ - src/Input/Touch/TouchLocation.cs \ - src/Input/Touch/TouchLocationState.cs \ - src/Input/Touch/TouchPanel.cs \ - src/Input/Touch/TouchPanelCapabilities.cs \ - src/IUpdateable.cs \ - src/LaunchParameters.cs \ - src/MathHelper.cs \ - src/Matrix.cs \ - src/Media/MediaPlayer.cs \ - src/Media/MediaQueue.cs \ - src/Media/MediaState.cs \ - src/Media/Song.cs \ - src/Media/SongCollection.cs \ - src/Media/VideoSoundtrackType.cs \ - src/Media/VisualizationData.cs \ - src/Media/Xiph/Video.cs \ - src/Media/Xiph/VideoPlayer.cs \ - src/NamespaceDocs.cs \ - src/Plane.cs \ - src/PlaneIntersectionType.cs \ - src/PlayerIndex.cs \ - src/Point.cs \ - src/PreparingDeviceSettingsEventArgs.cs \ - src/Properties/AssemblyInfo.cs \ - src/Quaternion.cs \ - src/Ray.cs \ - src/Rectangle.cs \ - src/Storage/StorageContainer.cs \ - src/Storage/StorageDevice.cs \ - src/Storage/StorageDeviceNotConnectedException.cs \ - src/TitleContainer.cs \ - src/TitleLocation.cs \ - src/Utilities/AssemblyHelper.cs \ - src/Utilities/FileHelpers.cs \ - src/Utilities/FNAInternalExtensions.cs \ - src/Utilities/XamarinHelper.cs \ - src/Vector2.cs \ - src/Vector3.cs \ - src/Vector4.cs \ - lib/SDL2-CS/src/SDL2.cs \ - lib/FAudio/csharp/FAudio.cs \ - lib/Theorafile/csharp/Theorafile.cs - -RESDIR = src/Graphics/Effect/StockEffects/FXB -RESNAME = Microsoft.Xna.Framework.Graphics.Effect.Resources -RES = \ - -resource:$(RESDIR)/AlphaTestEffect.fxb,$(RESNAME).AlphaTestEffect.fxb \ - -resource:$(RESDIR)/BasicEffect.fxb,$(RESNAME).BasicEffect.fxb \ - -resource:$(RESDIR)/DualTextureEffect.fxb,$(RESNAME).DualTextureEffect.fxb \ - -resource:$(RESDIR)/EnvironmentMapEffect.fxb,$(RESNAME).EnvironmentMapEffect.fxb \ - -resource:$(RESDIR)/SkinnedEffect.fxb,$(RESNAME).SkinnedEffect.fxb \ - -resource:$(RESDIR)/SpriteEffect.fxb,$(RESNAME).SpriteEffect.fxb \ - -resource:src/Graphics/Effect/YUVToRGBA/YUVToRGBAEffect.fxb,$(RESNAME).YUVToRGBAEffect.fxb - -# Targets - -debug: clean-debug - mkdir -p bin/Debug - cp app.config bin/Debug/FNA.dll.config - mcs /unsafe -debug -define:DEBUG -out:bin/Debug/FNA.dll -target:library $(SRC) $(RES) - -clean-debug: - rm -rf bin/Debug - -release: clean-release - mkdir -p bin/Release - cp app.config bin/Release/FNA.dll.config - mcs /unsafe -optimize -out:bin/Release/FNA.dll -target:library $(SRC) $(RES) - -clean-release: - rm -rf bin/Release - -clean: clean-debug clean-release - rm -rf bin - -all: debug release diff --git a/RE/Commit2/ThirdParty/fna/README b/RE/Commit2/ThirdParty/fna/README deleted file mode 100644 index a8f060da..00000000 --- a/RE/Commit2/ThirdParty/fna/README +++ /dev/null @@ -1,26 +0,0 @@ -This is FNA, an XNA4 reimplementation that focuses solely on developing a fully -accurate XNA4 runtime for the desktop. - -Project Website: https://fna-xna.github.io/ - -License -------- -FNA is released under the Microsoft Public License. See LICENSE for details. - -FNA uses LzxDecoder.cs, released under a dual MSPL/LGPL license. -See lzxdecoder.LICENSE for details. - -FNA uses code from the Mono.Xna project, released under the MIT license. -See monoxna.LICENSE for details. - -Documentation -------------- -Documentation for FNA can be found on the FNA wiki: - -https://github.com/FNA-XNA/FNA/wiki - -Found an issue? ---------------- -Issues and patches can be reported via GitHub: - -https://github.com/FNA-XNA/FNA/issues diff --git a/RE/Commit2/ThirdParty/fna/abi/Makefile b/RE/Commit2/ThirdParty/fna/abi/Makefile deleted file mode 100644 index 4a20c856..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Makefile +++ /dev/null @@ -1,38 +0,0 @@ -# Makefile for FNA ABI Compatibility Files -# Written by Ethan "flibitijibibo" Lee - -all: Microsoft.Xna.Framework Game Graphics GamerServices Graphics Input.Touch Net Storage Video Xact - -Microsoft.Xna.Framework: fnacopy - mcs Microsoft.Xna.Framework.cs -target:library -r:FNA.dll - -Game: fnacopy - mcs Microsoft.Xna.Framework.Game.cs -target:library -r:FNA.dll -r:FNA.NetStub.dll - -GamerServices: fnacopy - mcs Microsoft.Xna.Framework.GamerServices.cs -target:library -r:FNA.dll -r:FNA.NetStub.dll - -Graphics: fnacopy - mcs Microsoft.Xna.Framework.Graphics.cs -target:library -r:FNA.dll - -Input.Touch: fnacopy - mcs Microsoft.Xna.Framework.Input.Touch.cs -target:library -r:FNA.dll - -Net: fnacopy - mcs Microsoft.Xna.Framework.Net.cs -target:library -r:FNA.dll -r:FNA.NetStub.dll - -Storage: fnacopy - mcs Microsoft.Xna.Framework.Storage.cs -target:library -r:FNA.dll - -Video: fnacopy - mcs Microsoft.Xna.Framework.Video.cs -target:library -r:FNA.dll - -Xact: fnacopy - mcs Microsoft.Xna.Framework.Xact.cs -target:library -r:FNA.dll - -fnacopy: clean - cp ../bin/Debug/FNA.dll . - cp ../../FNA.NetStub/bin/Debug/FNA.NetStub.dll . - -clean: - rm -f *.dll diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Game.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Game.cs deleted file mode 100644 index 18b303a8..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Game.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.IGameComponent))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.IUpdateable))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GameComponent))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.IDrawable))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.DrawableGameComponent))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.PreparingDeviceSettingsEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Game))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GameComponentCollectionEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GameComponentCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerServicesComponent))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GameServiceContainer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GameTime))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GameWindow))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GraphicsDeviceInformation))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.IGraphicsDeviceManager))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GraphicsDeviceManager))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.LaunchParameters))] diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Game.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Game.csproj deleted file mode 100644 index 6873430c..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Game.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {78E3C95E-BF6F-4606-AA84-A101CFCD4899} - Library - Microsoft.Xna.Framework.Game - Microsoft.Xna.Framework.Game - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - {F5328B35-F276-4157-9B69-E06D527C689B} - FNA.NetStub - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.GamerServices.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.GamerServices.cs deleted file mode 100644 index 5c1b28cd..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.GamerServices.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.SignedInEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.SignedOutEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.InviteAcceptedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.Gamer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.FriendGamer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerPrivilegeSetting))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerPrivileges))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerServicesNotAvailableException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.SignedInGamerCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.AchievementCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.PropertyDictionary))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.LeaderboardIdentity))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.LeaderboardReader))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.LeaderboardEntry))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.Guide))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.MessageBoxIcon))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.NotificationPosition))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.ControllerSensitivity))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GameDifficulty))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.RacingCameraAngle))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerZone))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerPresenceMode))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.LeaderboardKey))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.LeaderboardOutcome))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.FriendCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.NetworkException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.NetworkNotAvailableException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GameDefaults))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerPresence))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerProfile))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerServicesDispatcher))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerPrivilegeException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GameUpdateRequiredException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GuideAlreadyVisibleException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.SignedInGamer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.Achievement))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.LeaderboardWriter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.GamerServices.GamerCollection))] diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.GamerServices.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.GamerServices.csproj deleted file mode 100644 index c5382ab5..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.GamerServices.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {AB4D48E9-F8A9-4883-913C-D485922ACE3B} - Library - Microsoft.Xna.Framework.GamerServices - Microsoft.Xna.Framework.GamerServices - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - {F5328B35-F276-4157-9B69-E06D527C689B} - FNA.NetStub - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Graphics.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Graphics.cs deleted file mode 100644 index b71e2522..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Graphics.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.RenderTargetBinding))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexBufferBinding))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.GraphicsDevice))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.IGraphicsDeviceService))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.GraphicsResource))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.BlendState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DepthStencilState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectAnnotation))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectAnnotationCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectPass))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectPassCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectParameter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectParameterCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectTechnique))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectTechniqueCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.Effect))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.Texture))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.TextureCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.Texture2D))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.TextureCube))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.Texture3D))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SamplerState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SamplerStateCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.GraphicsAdapter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.RasterizerState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexDeclaration))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.IVertexType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexBuffer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DynamicVertexBuffer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.IndexBuffer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DynamicIndexBuffer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.RenderTarget2D))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.RenderTargetCube))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.OcclusionQuery))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.Model))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ModelBone))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ModelBoneCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ModelEffectCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ModelMesh))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ModelMeshCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ModelMeshPart))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ModelMeshPartCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectMaterial))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.IEffectMatrices))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.IEffectLights))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.IEffectFog))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SpriteFont))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SpriteBatch))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DirectionalLight))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.BasicEffect))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DualTextureEffect))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.AlphaTestEffect))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EnvironmentMapEffect))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexPositionColor))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexPositionTexture))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexPositionColorTexture))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexPositionNormalTexture))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SkinnedEffect))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexElement))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DisplayMode))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DisplayModeCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.Viewport))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ResourceCreatedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ResourceDestroyedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PresentationParameters))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DeviceLostException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DeviceNotResetException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.NoSuitableGraphicsDeviceException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.GraphicsProfile))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SurfaceFormat))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.DepthFormat))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.GraphicsDeviceStatus))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PresentInterval))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ClearOptions))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.RenderTargetUsage))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SetDataOptions))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.CubeMapFace))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.BufferUsage))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.IndexElementSize))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PrimitiveType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexElementFormat))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.VertexElementUsage))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.TextureFilter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectParameterClass))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.EffectParameterType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.BlendFunction))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.Blend))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.CompareFunction))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.ColorWriteChannels))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.CullMode))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.StencilOperation))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.FillMode))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.TextureAddressMode))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SpriteEffects))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.SpriteSortMode))] \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Graphics.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Graphics.csproj deleted file mode 100644 index 1312ccc4..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Graphics.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {08819388-9A86-4F75-AE6E-5793A15F91E3} - Library - Microsoft.Xna.Framework.Graphics - Microsoft.Xna.Framework.Graphics - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Input.Touch.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Input.Touch.cs deleted file mode 100644 index b7ccfdf0..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Input.Touch.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Touch.GestureType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Touch.GestureSample))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Touch.TouchCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Touch.TouchLocationState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Touch.TouchPanelCapabilities))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Touch.TouchLocation))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Touch.TouchPanel))] \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Input.Touch.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Input.Touch.csproj deleted file mode 100644 index ddcd8988..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Input.Touch.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {2780FC6A-807A-4648-B0A3-D040863684F5} - Library - Microsoft.Xna.Framework.Input.Touch - Microsoft.Xna.Framework.Input.Touch - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Net.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Net.cs deleted file mode 100644 index 3e133ae9..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Net.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSessionEndedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.GamerJoinedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.GamerLeftEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.GameStartedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.GameEndedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.HostChangedEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.WriteLeaderboardsEventArgs))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.PacketReader))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.PacketWriter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.QualityOfService))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSessionType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSessionState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSessionEndReason))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.SendDataOptions))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.AvailableNetworkSession))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.AvailableNetworkSessionCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkGamer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.LocalNetworkGamer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkMachine))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSession))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSessionProperties))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSessionJoinError))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Net.NetworkSessionJoinException))] diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Net.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Net.csproj deleted file mode 100644 index 1a821e9c..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Net.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {9213BDDB-1501-45E9-80F9-B4050244E36E} - Library - Microsoft.Xna.Framework.Net - Microsoft.Xna.Framework.Net - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - {F5328B35-F276-4157-9B69-E06D527C689B} - FNA.NetStub - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Storage.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Storage.cs deleted file mode 100644 index 60616900..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Storage.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Storage.StorageDevice))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Storage.StorageContainer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Storage.StorageDeviceNotConnectedException))] \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Storage.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Storage.csproj deleted file mode 100644 index 188ca569..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Storage.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {9B3ECF4F-85DA-4FDC-8E8B-E809AA8DA733} - Library - Microsoft.Xna.Framework.Storage - Microsoft.Xna.Framework.Storage - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Video.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Video.cs deleted file mode 100644 index 04fd0338..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Video.cs +++ /dev/null @@ -1,6 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.VideoSoundtrackType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.Video))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.VideoPlayer))] \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Video.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Video.csproj deleted file mode 100644 index 3ef80844..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Video.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {D321F4A8-C5BE-4B07-9AFD-2D411D27DDF8} - Library - Microsoft.Xna.Framework.Video - Microsoft.Xna.Framework.Video - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Xact.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Xact.cs deleted file mode 100644 index 36eb9740..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Xact.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.RendererDetail))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.Cue))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.AudioStopOptions))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.SoundBank))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.WaveBank))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.AudioCategory))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.AudioEngine))] \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Xact.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Xact.csproj deleted file mode 100644 index b467ac60..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.Xact.csproj +++ /dev/null @@ -1,43 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {041B1120-5701-43F0-B2CA-81290099C965} - Library - Microsoft.Xna.Framework.Xact - Microsoft.Xna.Framework.Xact - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - full - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.cs b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.cs deleted file mode 100644 index eade86d2..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.cs +++ /dev/null @@ -1,129 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -[assembly: AssemblyVersion("4.0.0.0")] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.MediaState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Keyboard))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Mouse))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentSerializerAttribute))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentSerializerCollectionItemNameAttribute))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentSerializerIgnoreAttribute))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentSerializerTypeVersionAttribute))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentSerializerRuntimeTypeAttribute))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentLoadException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentManager))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ResourceContentManager))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentTypeReader))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentTypeReader))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.FrameworkDispatcher))] -#if TODO_MEDIASTUB -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.MediaLibrary))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.MediaSourceType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.MediaSource))] -#endif -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.VisualizationData))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.TitleContainer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.MicrophoneState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.Microphone))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.AudioChannels))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.SoundEffect))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.SoundState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.SoundEffectInstance))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.DynamicSoundEffectInstance))] -#if TODO_MEDIASTUB -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.Album))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.AlbumCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.Artist))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.ArtistCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.Genre))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.GenreCollection))] -#endif -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.MediaPlayer))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.MediaQueue))] -#if TODO_MEDIASTUB -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.Picture))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.PictureAlbum))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.PictureAlbumCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.PictureCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.Playlist))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.PlaylistCollection))] -#endif -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.Song))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Media.SongCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentReader))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Content.ContentTypeReaderManager))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.AudioEmitter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.AudioListener))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.NoMicrophoneConnectedException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.PlayerIndex))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Buttons))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.ButtonState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePad))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadDeadZone))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.Keys))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.KeyState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.KeyboardState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.MouseState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadButtons))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadDPad))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadThumbSticks))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadTriggers))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadState))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Input.GamePadCapabilities))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.MathHelper))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.MathTypeConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.PointConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.RectangleConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.Vector2Converter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.Vector3Converter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.Vector4Converter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.QuaternionConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.MatrixConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.BoundingBoxConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.BoundingSphereConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.PlaneConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.RayConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Design.ColorConverter))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.IPackedVector))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.IPackedVector))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Alpha8))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Bgr565))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Bgra5551))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Bgra4444))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Byte4))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.HalfSingle))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.HalfVector2))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.HalfVector4))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.NormalizedByte2))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.NormalizedByte4))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.NormalizedShort2))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.NormalizedShort4))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Rg32))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Rgba1010102))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Rgba64))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Short2))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Graphics.PackedVector.Short4))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.DisplayOrientation))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.NoAudioHardwareException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Audio.InstancePlayLimitException))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.ContainmentType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.BoundingBox))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.BoundingFrustum))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.BoundingSphere))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.CurveLoopType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.CurveTangent))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Curve))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.CurveContinuity))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.CurveKey))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.CurveKeyCollection))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Matrix))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Color))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.PlaneIntersectionType))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Plane))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Point))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Quaternion))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Ray))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Rectangle))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Vector2))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Vector3))] -[assembly: TypeForwardedToAttribute(typeof(Microsoft.Xna.Framework.Vector4))] diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.csproj b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.csproj deleted file mode 100644 index 2a89ff88..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.csproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {8AC4F036-E2C6-42E7-9934-B593E171E6CB} - Library - Microsoft.Xna.Framework - Microsoft.Xna.Framework - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - x86 - - - true - bin\Release - prompt - 4 - false - x86 - - - - - - - - {35253CE1-C864-4CD3-8249-4D1319748E8F} - FNA - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.sln b/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.sln deleted file mode 100644 index 30e2712f..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/Microsoft.Xna.Framework.sln +++ /dev/null @@ -1,77 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2012 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework", "Microsoft.Xna.Framework.csproj", "{8AC4F036-E2C6-42E7-9934-B593E171E6CB}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.Game", "Microsoft.Xna.Framework.Game.csproj", "{78E3C95E-BF6F-4606-AA84-A101CFCD4899}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.GamerServices", "Microsoft.Xna.Framework.GamerServices.csproj", "{AB4D48E9-F8A9-4883-913C-D485922ACE3B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.Graphics", "Microsoft.Xna.Framework.Graphics.csproj", "{08819388-9A86-4F75-AE6E-5793A15F91E3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.Input.Touch", "Microsoft.Xna.Framework.Input.Touch.csproj", "{2780FC6A-807A-4648-B0A3-D040863684F5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.Net", "Microsoft.Xna.Framework.Net.csproj", "{9213BDDB-1501-45E9-80F9-B4050244E36E}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.Storage", "Microsoft.Xna.Framework.Storage.csproj", "{9B3ECF4F-85DA-4FDC-8E8B-E809AA8DA733}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.Video", "Microsoft.Xna.Framework.Video.csproj", "{D321F4A8-C5BE-4B07-9AFD-2D411D27DDF8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.Xna.Framework.Xact", "Microsoft.Xna.Framework.Xact.csproj", "{041B1120-5701-43F0-B2CA-81290099C965}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA", "..\FNA.csproj", "{35253CE1-C864-4CD3-8249-4D1319748E8F}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FNA.NetStub", "..\..\FNA.NetStub\FNA.NetStub.csproj", "{F5328B35-F276-4157-9B69-E06D527C689B}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {041B1120-5701-43F0-B2CA-81290099C965}.Debug|x86.ActiveCfg = Debug|x86 - {041B1120-5701-43F0-B2CA-81290099C965}.Debug|x86.Build.0 = Debug|x86 - {041B1120-5701-43F0-B2CA-81290099C965}.Release|x86.ActiveCfg = Release|x86 - {041B1120-5701-43F0-B2CA-81290099C965}.Release|x86.Build.0 = Release|x86 - {08819388-9A86-4F75-AE6E-5793A15F91E3}.Debug|x86.ActiveCfg = Debug|x86 - {08819388-9A86-4F75-AE6E-5793A15F91E3}.Debug|x86.Build.0 = Debug|x86 - {08819388-9A86-4F75-AE6E-5793A15F91E3}.Release|x86.ActiveCfg = Release|x86 - {08819388-9A86-4F75-AE6E-5793A15F91E3}.Release|x86.Build.0 = Release|x86 - {2780FC6A-807A-4648-B0A3-D040863684F5}.Debug|x86.ActiveCfg = Debug|x86 - {2780FC6A-807A-4648-B0A3-D040863684F5}.Debug|x86.Build.0 = Debug|x86 - {2780FC6A-807A-4648-B0A3-D040863684F5}.Release|x86.ActiveCfg = Release|x86 - {2780FC6A-807A-4648-B0A3-D040863684F5}.Release|x86.Build.0 = Release|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x86.ActiveCfg = Debug|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Debug|x86.Build.0 = Debug|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x86.ActiveCfg = Release|x86 - {35253CE1-C864-4CD3-8249-4D1319748E8F}.Release|x86.Build.0 = Release|x86 - {78E3C95E-BF6F-4606-AA84-A101CFCD4899}.Debug|x86.ActiveCfg = Debug|x86 - {78E3C95E-BF6F-4606-AA84-A101CFCD4899}.Debug|x86.Build.0 = Debug|x86 - {78E3C95E-BF6F-4606-AA84-A101CFCD4899}.Release|x86.ActiveCfg = Release|x86 - {78E3C95E-BF6F-4606-AA84-A101CFCD4899}.Release|x86.Build.0 = Release|x86 - {8AC4F036-E2C6-42E7-9934-B593E171E6CB}.Debug|x86.ActiveCfg = Debug|x86 - {8AC4F036-E2C6-42E7-9934-B593E171E6CB}.Debug|x86.Build.0 = Debug|x86 - {8AC4F036-E2C6-42E7-9934-B593E171E6CB}.Release|x86.ActiveCfg = Release|x86 - {8AC4F036-E2C6-42E7-9934-B593E171E6CB}.Release|x86.Build.0 = Release|x86 - {9213BDDB-1501-45E9-80F9-B4050244E36E}.Debug|x86.ActiveCfg = Debug|x86 - {9213BDDB-1501-45E9-80F9-B4050244E36E}.Debug|x86.Build.0 = Debug|x86 - {9213BDDB-1501-45E9-80F9-B4050244E36E}.Release|x86.ActiveCfg = Release|x86 - {9213BDDB-1501-45E9-80F9-B4050244E36E}.Release|x86.Build.0 = Release|x86 - {9B3ECF4F-85DA-4FDC-8E8B-E809AA8DA733}.Debug|x86.ActiveCfg = Debug|x86 - {9B3ECF4F-85DA-4FDC-8E8B-E809AA8DA733}.Debug|x86.Build.0 = Debug|x86 - {9B3ECF4F-85DA-4FDC-8E8B-E809AA8DA733}.Release|x86.ActiveCfg = Release|x86 - {9B3ECF4F-85DA-4FDC-8E8B-E809AA8DA733}.Release|x86.Build.0 = Release|x86 - {AB4D48E9-F8A9-4883-913C-D485922ACE3B}.Debug|x86.ActiveCfg = Debug|x86 - {AB4D48E9-F8A9-4883-913C-D485922ACE3B}.Debug|x86.Build.0 = Debug|x86 - {AB4D48E9-F8A9-4883-913C-D485922ACE3B}.Release|x86.ActiveCfg = Release|x86 - {AB4D48E9-F8A9-4883-913C-D485922ACE3B}.Release|x86.Build.0 = Release|x86 - {D321F4A8-C5BE-4B07-9AFD-2D411D27DDF8}.Debug|x86.ActiveCfg = Debug|x86 - {D321F4A8-C5BE-4B07-9AFD-2D411D27DDF8}.Debug|x86.Build.0 = Debug|x86 - {D321F4A8-C5BE-4B07-9AFD-2D411D27DDF8}.Release|x86.ActiveCfg = Release|x86 - {D321F4A8-C5BE-4B07-9AFD-2D411D27DDF8}.Release|x86.Build.0 = Release|x86 - {F5328B35-F276-4157-9B69-E06D527C689B}.Debug|x86.ActiveCfg = Debug|x86 - {F5328B35-F276-4157-9B69-E06D527C689B}.Debug|x86.Build.0 = Debug|x86 - {F5328B35-F276-4157-9B69-E06D527C689B}.Release|x86.ActiveCfg = Release|x86 - {F5328B35-F276-4157-9B69-E06D527C689B}.Release|x86.Build.0 = Release|x86 - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/abi/README b/RE/Commit2/ThirdParty/fna/abi/README deleted file mode 100644 index dfc07d4f..00000000 --- a/RE/Commit2/ThirdParty/fna/abi/README +++ /dev/null @@ -1,16 +0,0 @@ -These are XNA ABI compatibility files for FNA. - -Note that these files are only important if you are working on XNA games without -source code access. If you have the source, build against FNA directly! - -To build, you need FNA as well as FNA.NetStub, for the Xbox Live namespaces. - -There are two ways to build: - -1. Microsoft.Xna.Framework.sln. This is the recommended path, since FNA and - FNA.NetStub will be built for you. -2. Makefile. You need to build FNA and FNA.NetStub first. Then, type `make`! - -Regardless of which path you choose, be sure that the FNA and FNA.NetStub repos -are sitting next to each other! For example, the Makefile in this folder will -look for FNA.NetStub in `../../FNA.NetStub/bin/Debug/FNA.NetStub.dll`. diff --git a/RE/Commit2/ThirdParty/fna/app.config b/RE/Commit2/ThirdParty/fna/app.config deleted file mode 100644 index 051087db..00000000 --- a/RE/Commit2/ThirdParty/fna/app.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/.github/FUNDING.yml b/RE/Commit2/ThirdParty/fna/lib/FAudio/.github/FUNDING.yml deleted file mode 100644 index aef30d32..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [flibitijibibo] diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/.gitignore b/RE/Commit2/ThirdParty/fna/lib/FAudio/.gitignore deleted file mode 100644 index 495c4316..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.o -*.so -*.dylib -*.dll -.vs/ -obj/ -Debug/ -Release/ -*.csproj.user -*.vcxproj.user -.DS_Store -xcuserdata/ -*.xcworkspace/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/CMakeLists.txt b/RE/Commit2/ThirdParty/fna/lib/FAudio/CMakeLists.txt deleted file mode 100644 index 5c2c8c57..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/CMakeLists.txt +++ /dev/null @@ -1,320 +0,0 @@ -# CMake Project for FAudio -# Written by @NeroBurner -cmake_minimum_required(VERSION 2.8.12) -project(FAudio C) - -# Options -option(BUILD_UTILS "Build utils/ folder" OFF) -option(BUILD_TESTS "Build tests/ folder for unit tests to be executed on the host against FAudio" OFF) -if(WIN32) -option(PLATFORM_WIN32 "Enable native Win32 platform instead of SDL2" OFF) -endif() -option(XNASONG "Build with XNA_Song.c" ON) -option(LOG_ASSERTIONS "Bind FAudio_assert to log, instead of platform's assert" OFF) -option(FORCE_ENABLE_DEBUGCONFIGURATION "Enable DebugConfiguration in all build types" OFF) -option(DUMP_VOICES "Dump voices to RIFF WAVE files" OFF) -option(BUILD_SHARED_LIBS "Build shared library" ON) -if(WIN32) -option(INSTALL_MINGW_DEPENDENCIES "Add dependent libraries to MinGW install target" OFF) -endif() - -# C99 Requirement -if(${CMAKE_VERSION} VERSION_LESS "3.1.3") - message(WARNING "Your CMake version is too old, set -std=c99 yourself!") -else() - set(CMAKE_C_STANDARD 99) - set(CMAKE_C_EXTENSIONS OFF) -endif() - -# Version -SET(LIB_MAJOR_VERSION "0") -SET(LIB_MINOR_VERSION "22") -SET(LIB_REVISION "08") -SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_REVISION}") - -# Build Type -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - # By default, we use Release - message(STATUS "Setting build type to 'Release' as none was specified.") - set(CMAKE_BUILD_TYPE "Release" CACHE - STRING "Choose the type of build." FORCE - ) - - # Set the possible values of build type for cmake-gui - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY - STRINGS "Debug" "Release" "RelWithDebInfo" - ) -endif() - -# Add our repository's module path to CMake's module path list -set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules") - -# Platform Flags -if(APPLE) - set(CMAKE_MACOSX_RPATH ON) - set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9) -elseif(WIN32) - # "FAudio.dll", not "libFAudio.dll" - set(CMAKE_SHARED_LIBRARY_PREFIX "") -endif() - -# Helper function for finding/installing MinGW libs -if(INSTALL_MINGW_DEPENDENCIES) - include(cmake/install_shared_libs.cmake) -endif() - -# Source lists -add_library(FAudio - # Public Headers - include/F3DAudio.h - include/FACT3D.h - include/FACT.h - include/FAPOBase.h - include/FAPOFX.h - include/FAPO.h - include/FAudioFX.h - include/FAudio.h - # Internal Headers - src/FACT_internal.h - src/FAudio_internal.h - src/stb.h - src/stb_vorbis.h - # Source Files - src/F3DAudio.c - src/FACT3D.c - src/FACT.c - src/FACT_internal.c - src/FAPOBase.c - src/FAPOFX.c - src/FAPOFX_echo.c - src/FAPOFX_eq.c - src/FAPOFX_masteringlimiter.c - src/FAPOFX_reverb.c - src/FAudio.c - src/FAudioFX_reverb.c - src/FAudioFX_volumemeter.c - src/FAudio_internal.c - src/FAudio_internal_simd.c - src/FAudio_operationset.c - src/FAudio_platform_sdl2.c - src/FAudio_platform_win32.c - # Optional source files - src/XNA_Song.c -) - -if(PLATFORM_WIN32) - target_link_libraries(FAudio PRIVATE -ldxguid -luuid -lwinmm -lole32 -ladvapi32 -luser32 -lmfplat -lmfreadwrite -lmfuuid -lpropsys) - target_compile_definitions(FAudio PUBLIC FAUDIO_WIN32_PLATFORM) - target_compile_definitions(FAudio PRIVATE HAVE_WMADEC=1) - set(PLATFORM_CFLAGS "-DFAUDIO_WIN32_PLATFORM") - set(XNASONG OFF) -else() - set(PLATFORM_CFLAGS) -endif() - -# Only disable DebugConfiguration in release builds -if(NOT FORCE_ENABLE_DEBUGCONFIGURATION) - target_compile_definitions(FAudio PRIVATE $<$:FAUDIO_DISABLE_DEBUGCONFIGURATION>) -endif() - -# FAudio_assert Customization -if(LOG_ASSERTIONS) - target_compile_definitions(FAudio PUBLIC FAUDIO_LOG_ASSERTIONS) -endif() - -# FAudio folders as includes, for other targets to consume -target_include_directories(FAudio PUBLIC - $ - $ -) - -# MinGW builds should statically link libgcc -if(MINGW) - target_link_libraries(FAudio PRIVATE -static-libgcc) -endif() - -# Soname -set_target_properties(FAudio PROPERTIES OUTPUT_NAME "FAudio" - VERSION ${LIB_VERSION} - SOVERSION ${LIB_MAJOR_VERSION} -) - -# XNA_Song Support -if(NOT XNASONG) - target_compile_definitions(FAudio PRIVATE DISABLE_XNASONG) -endif() - -# Dump source voices to RIFF WAVE files -if(DUMP_VOICES) - target_compile_definitions(FAudio PRIVATE FAUDIO_DUMP_VOICES) -endif() - -# SDL2 Dependency -if (PLATFORM_WIN32) - message(STATUS "not using SDL2") -elseif (DEFINED SDL2_INCLUDE_DIRS AND DEFINED SDL2_LIBRARIES) - message(STATUS "using pre-defined SDL2 variables SDL2_INCLUDE_DIRS and SDL2_LIBRARIES") - target_include_directories(FAudio PUBLIC "$") - target_link_libraries(FAudio PUBLIC ${SDL2_LIBRARIES}) - if(INSTALL_MINGW_DEPENDENCIES) - install_shared_libs(${SDL2_LIBRARIES} DESTINATION bin NO_INSTALL_SYMLINKS) - endif() -else() - # Only try to autodetect if both SDL2 variables aren't explicitly set - find_package(SDL2 CONFIG) - if (TARGET SDL2::SDL2) - message(STATUS "using TARGET SDL2::SDL2") - target_link_libraries(FAudio PUBLIC SDL2::SDL2) - if(INSTALL_MINGW_DEPENDENCIES) - install_shared_libs(TARGETS SDL2::SDL2 DESTINATION bin NO_INSTALL_SYMLINKS REQUIRED) - endif() - elseif (TARGET SDL2) - message(STATUS "using TARGET SDL2") - target_link_libraries(FAudio PUBLIC SDL2) - if(INSTALL_MINGW_DEPENDENCIES) - install_shared_libs(TARGETS SDL2 DESTINATION bin NO_INSTALL_SYMLINKS REQUIRED) - endif() - else() - message(STATUS "no TARGET SDL2::SDL2, or SDL2, using variables") - target_include_directories(FAudio PUBLIC "$") - target_link_libraries(FAudio PUBLIC ${SDL2_LIBRARIES}) - if(INSTALL_MINGW_DEPENDENCIES) - install_shared_libs(${SDL2_LIBRARIES} DESTINATION bin NO_INSTALL_SYMLINKS) - endif() - endif() -endif() - -# utils/ Folder -if(BUILD_UTILS) - enable_language(CXX) - - # Shared ImGui Framework - add_library(uicommon STATIC - utils/uicommon/FAudioUI_main.cpp - utils/uicommon/imconfig.h - utils/uicommon/imgui.cpp - utils/uicommon/imgui_demo.cpp - utils/uicommon/imgui_draw.cpp - utils/uicommon/imgui_widgets.cpp - utils/uicommon/imgui.h - utils/uicommon/imgui_internal.h - utils/uicommon/imstb_rectpack.h - utils/uicommon/imstb_textedit.h - utils/uicommon/imstb_truetype.h - ) - target_link_libraries(uicommon PUBLIC FAudio) - - # Shared WAV Resources - add_library(wavs STATIC utils/wavcommon/wavs.cpp) - target_compile_definitions(wavs PUBLIC - RESOURCE_PATH="${CMAKE_SOURCE_DIR}/utils/wavcommon/resources" - ) - - # These tools do NOT use uicommon - add_executable(testparse utils/testparse/testparse.c) - target_link_libraries(testparse PRIVATE FAudio) - add_executable(testxwma utils/testxwma/testxwma.cpp) - target_link_libraries(testxwma PRIVATE FAudio) - add_executable(showriffheader utils/showriffheader/showriffheader.cpp) - target_link_libraries(showriffheader PRIVATE FAudio) - - # These tools use uicommon, but NOT wavs - add_executable(facttool utils/facttool/facttool.cpp) - target_link_libraries(facttool PRIVATE uicommon) - add_executable(testfilter - utils/testfilter/audio.cpp - utils/testfilter/audio_faudio.cpp - utils/testfilter/audio.h - utils/testfilter/audio_player.h - utils/testfilter/audio_xaudio.cpp - utils/testfilter/oscillator.cpp - utils/testfilter/oscillator.h - utils/testfilter/testfilter.cpp - ) - target_link_libraries(testfilter PRIVATE uicommon) - - # These tools use both uicommon and wavs - add_executable(testreverb - utils/testreverb/audio.cpp - utils/testreverb/audio_faudio.cpp - utils/testreverb/audio.h - utils/testreverb/audio_xaudio.cpp - utils/testreverb/testreverb.cpp - ) - target_link_libraries(testreverb PRIVATE uicommon wavs) - add_executable(testvolumemeter - utils/testvolumemeter/audio.cpp - utils/testvolumemeter/audio_faudio.cpp - utils/testvolumemeter/audio.h - utils/testvolumemeter/testvolumemeter.cpp - ) - target_link_libraries(testvolumemeter PRIVATE uicommon wavs) -endif() - -# define install directories -# on mingw-w64 cross compilation $CMAKE_INSTALL_LIBDIR is set to an absolute -# path. Work around that by hard coding the directories on windows -if(WIN32) - set(FAudio_INSTALL_INCLUDEDIR include) - set(FAudio_INSTALL_BINDIR bin) - set(FAudio_INSTALL_LIBDIR lib) -else() - include(GNUInstallDirs) - set(FAudio_INSTALL_INCLUDEDIR ${CMAKE_INSTALL_INCLUDEDIR}) - set(FAudio_INSTALL_BINDIR ${CMAKE_INSTALL_BINDIR}) - set(FAudio_INSTALL_LIBDIR ${CMAKE_INSTALL_LIBDIR}) -endif() - -# tests/ Folder -if(BUILD_TESTS) - add_executable(faudio_tests tests/xaudio2.c) - target_link_libraries(faudio_tests PRIVATE FAudio) -endif() - -# Installation - -# Public Headers... -install( - DIRECTORY include/ - DESTINATION ${FAudio_INSTALL_INCLUDEDIR} -) -# Libraries... -install( - TARGETS ${PROJECT_NAME} - EXPORT ${PROJECT_NAME}-targets - INCLUDES DESTINATION ${FAudio_INSTALL_INCLUDEDIR} - RUNTIME DESTINATION ${FAudio_INSTALL_BINDIR} - LIBRARY DESTINATION ${FAudio_INSTALL_LIBDIR} - ARCHIVE DESTINATION ${FAudio_INSTALL_LIBDIR} -) - -# Generate a pkgconfig file -include(cmake/JoinPaths.cmake) -join_paths(FAUDIO_PKGCONF_LIBDIR "\${prefix}" "${CMAKE_INSTALL_LIBDIR}") -join_paths(FAUDIO_PKGCONF_INCLUDEDIR "\${prefix}" "${CMAKE_INSTALL_INCLUDEDIR}") -configure_file( - "${PROJECT_SOURCE_DIR}/cmake/${PROJECT_NAME}.pc.in" - ${PROJECT_BINARY_DIR}/generated/${PROJECT_NAME}.pc - @ONLY -) -install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}.pc - DESTINATION ${FAudio_INSTALL_LIBDIR}/pkgconfig -) - -# Generate cmake-config file, install CMake files -include(CMakePackageConfigHelpers) -configure_package_config_file( - cmake/config.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}Config.cmake - INSTALL_DESTINATION ${FAudio_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} -) -install( - FILES ${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}Config.cmake - DESTINATION ${FAudio_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} -) -install( - EXPORT ${PROJECT_NAME}-targets - NAMESPACE ${PROJECT_NAME}:: - DESTINATION ${FAudio_INSTALL_LIBDIR}/cmake/${PROJECT_NAME} -) diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/LICENSE b/RE/Commit2/ThirdParty/fna/lib/FAudio/LICENSE deleted file mode 100644 index f2525bc7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/README b/RE/Commit2/ThirdParty/fna/lib/FAudio/README deleted file mode 100644 index 262821ec..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/README +++ /dev/null @@ -1,55 +0,0 @@ -This is FAudio, an XAudio reimplementation that focuses solely on developing -fully accurate DirectX Audio runtime libraries for the FNA project, including -XAudio2, X3DAudio, XAPO, and XACT3. - -Project Website: https://fna-xna.github.io/ - -License -------- -FAudio is released under the zlib license. See LICENSE for details. - -About FAudio ------------- -FAudio was written to be used for FNA's Audio/Media namespaces. We access this -library via FAudio#, which you can find in the 'csharp/' directory. - -Dependencies ------------- -FAudio depends solely on SDL 2.0.9 or newer. -FAudio never explicitly uses the C runtime. - -Building FAudio ---------------- -For *nix platforms, use cmake. - - $ mkdir build/ - $ cd build/ - $ cmake ../ - $ make - -For Windows, see the 'visualc/' directory. - -For Xbox One, see the 'visualc-winrt/' directory. - -For iOS/tvOS, see the 'Xcode-iOS/' directory. - -Unit tests ----------- -FAudio includes a set of unit tests which document the behavior of XAudio2 and -are to be run against FAudio to verify it has the same behavior. The tests are -NOT built by default; set BUILD_TESTS=1 to build and then run the output with: - - $ ./faudio_tests - -To build a Windows executable to run the tests against XAudio2, use the -provided Makefile. This requires mingw-w64 to build. - - $ cd tests/ - $ make faudio_tests.exe - # run faudio_tests.exe on a Windows box - -Found an issue? ---------------- -Issues and patches can be reported via GitHub: - -https://github.com/FNA-XNA/FAudio/issues diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/FAudio.xcodeproj/project.pbxproj b/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/FAudio.xcodeproj/project.pbxproj deleted file mode 100644 index 77cbeae8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/FAudio.xcodeproj/project.pbxproj +++ /dev/null @@ -1,511 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 7B6908272190EC41003C0941 /* XNA_Song.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B6908262190EC41003C0941 /* XNA_Song.c */; }; - 7B6908282190EC41003C0941 /* XNA_Song.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B6908262190EC41003C0941 /* XNA_Song.c */; }; - 7B7E14162190E10C00616654 /* F3DAudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D612190C8E50020B14B /* F3DAudio.c */; }; - 7B7E14172190E10C00616654 /* FACT_internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D602190C8E50020B14B /* FACT_internal.c */; }; - 7B7E14182190E10C00616654 /* FACT.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6A2190C8E50020B14B /* FACT.c */; }; - 7B7E14192190E10C00616654 /* FACT3D.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D652190C8E50020B14B /* FACT3D.c */; }; - 7B7E141A2190E10C00616654 /* FAPOBase.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D642190C8E50020B14B /* FAPOBase.c */; }; - 7B7E141B2190E10C00616654 /* FAPOFX_echo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D682190C8E50020B14B /* FAPOFX_echo.c */; }; - 7B7E141C2190E10C00616654 /* FAPOFX_eq.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6B2190C8E50020B14B /* FAPOFX_eq.c */; }; - 7B7E141D2190E10C00616654 /* FAPOFX_masteringlimiter.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D632190C8E50020B14B /* FAPOFX_masteringlimiter.c */; }; - 7B7E141E2190E10C00616654 /* FAPOFX_reverb.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6D2190C8E50020B14B /* FAPOFX_reverb.c */; }; - 7B7E141F2190E10C00616654 /* FAPOFX.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D672190C8E50020B14B /* FAPOFX.c */; }; - 7B7E14202190E10C00616654 /* FAudio_internal_simd.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D662190C8E50020B14B /* FAudio_internal_simd.c */; }; - 7B7E14212190E10C00616654 /* FAudio_internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D622190C8E50020B14B /* FAudio_internal.c */; }; - 7B7E14222190E10C00616654 /* FAudio_platform_sdl2.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6C2190C8E50020B14B /* FAudio_platform_sdl2.c */; }; - 7B7E14232190E10C00616654 /* FAudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D692190C8E50020B14B /* FAudio.c */; }; - 7B7E14242190E10C00616654 /* FAudioFX_reverb.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6E2190C8E50020B14B /* FAudioFX_reverb.c */; }; - 7B7E14252190E10C00616654 /* FAudioFX_volumemeter.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D5F2190C8E50020B14B /* FAudioFX_volumemeter.c */; }; - 7B80D133227CE0E000AE825D /* FAudio_operationset.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B80D132227CE0E000AE825D /* FAudio_operationset.c */; }; - 7BD20D6F2190C8E50020B14B /* FAudioFX_volumemeter.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D5F2190C8E50020B14B /* FAudioFX_volumemeter.c */; }; - 7BD20D712190C8E50020B14B /* FACT_internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D602190C8E50020B14B /* FACT_internal.c */; }; - 7BD20D732190C8E50020B14B /* F3DAudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D612190C8E50020B14B /* F3DAudio.c */; }; - 7BD20D752190C8E50020B14B /* FAudio_internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D622190C8E50020B14B /* FAudio_internal.c */; }; - 7BD20D772190C8E50020B14B /* FAPOFX_masteringlimiter.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D632190C8E50020B14B /* FAPOFX_masteringlimiter.c */; }; - 7BD20D792190C8E50020B14B /* FAPOBase.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D642190C8E50020B14B /* FAPOBase.c */; }; - 7BD20D7B2190C8E50020B14B /* FACT3D.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D652190C8E50020B14B /* FACT3D.c */; }; - 7BD20D7D2190C8E50020B14B /* FAudio_internal_simd.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D662190C8E50020B14B /* FAudio_internal_simd.c */; }; - 7BD20D7F2190C8E50020B14B /* FAPOFX.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D672190C8E50020B14B /* FAPOFX.c */; }; - 7BD20D812190C8E50020B14B /* FAPOFX_echo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D682190C8E50020B14B /* FAPOFX_echo.c */; }; - 7BD20D832190C8E50020B14B /* FAudio.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D692190C8E50020B14B /* FAudio.c */; }; - 7BD20D852190C8E50020B14B /* FACT.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6A2190C8E50020B14B /* FACT.c */; }; - 7BD20D872190C8E50020B14B /* FAPOFX_eq.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6B2190C8E50020B14B /* FAPOFX_eq.c */; }; - 7BD20D892190C8E50020B14B /* FAudio_platform_sdl2.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6C2190C8E50020B14B /* FAudio_platform_sdl2.c */; }; - 7BD20D8B2190C8E50020B14B /* FAPOFX_reverb.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6D2190C8E50020B14B /* FAPOFX_reverb.c */; }; - 7BD20D8D2190C8E50020B14B /* FAudioFX_reverb.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BD20D6E2190C8E50020B14B /* FAudioFX_reverb.c */; }; - 7BD806B122A0B4F900D9679D /* FAudio_operationset.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B80D132227CE0E000AE825D /* FAudio_operationset.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 7B1CDD432190C0A200175C7B /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B7E140B2190E0CB00616654 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 7B1CDD452190C0A200175C7B /* libFAudio.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFAudio.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B6908262190EC41003C0941 /* XNA_Song.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = XNA_Song.c; path = ../src/XNA_Song.c; sourceTree = ""; }; - 7B7E140D2190E0CB00616654 /* libFAudio-tv.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libFAudio-tv.a"; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B80D132227CE0E000AE825D /* FAudio_operationset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAudio_operationset.c; path = ../src/FAudio_operationset.c; sourceTree = ""; }; - 7BA5611F21B9C7D800AB0E8C /* F3DAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = F3DAudio.h; path = ../include/F3DAudio.h; sourceTree = ""; }; - 7BA5612021B9C7D800AB0E8C /* FAPO.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FAPO.h; path = ../include/FAPO.h; sourceTree = ""; }; - 7BA5612121B9C7D800AB0E8C /* FAudioFX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FAudioFX.h; path = ../include/FAudioFX.h; sourceTree = ""; }; - 7BA5612221B9C7D800AB0E8C /* FACT.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FACT.h; path = ../include/FACT.h; sourceTree = ""; }; - 7BA5612321B9C7D800AB0E8C /* FAPOFX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FAPOFX.h; path = ../include/FAPOFX.h; sourceTree = ""; }; - 7BA5612421B9C7D800AB0E8C /* FACT3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FACT3D.h; path = ../include/FACT3D.h; sourceTree = ""; }; - 7BA5612521B9C7D900AB0E8C /* FAPOBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FAPOBase.h; path = ../include/FAPOBase.h; sourceTree = ""; }; - 7BA5612621B9C7D900AB0E8C /* FAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FAudio.h; path = ../include/FAudio.h; sourceTree = ""; }; - 7BD20D582190C8C30020B14B /* FACT_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FACT_internal.h; path = ../src/FACT_internal.h; sourceTree = ""; }; - 7BD20D5B2190C8C30020B14B /* FAudio_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FAudio_internal.h; path = ../src/FAudio_internal.h; sourceTree = ""; }; - 7BD20D5F2190C8E50020B14B /* FAudioFX_volumemeter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAudioFX_volumemeter.c; path = ../src/FAudioFX_volumemeter.c; sourceTree = ""; }; - 7BD20D602190C8E50020B14B /* FACT_internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FACT_internal.c; path = ../src/FACT_internal.c; sourceTree = ""; }; - 7BD20D612190C8E50020B14B /* F3DAudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = F3DAudio.c; path = ../src/F3DAudio.c; sourceTree = ""; }; - 7BD20D622190C8E50020B14B /* FAudio_internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAudio_internal.c; path = ../src/FAudio_internal.c; sourceTree = ""; }; - 7BD20D632190C8E50020B14B /* FAPOFX_masteringlimiter.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAPOFX_masteringlimiter.c; path = ../src/FAPOFX_masteringlimiter.c; sourceTree = ""; }; - 7BD20D642190C8E50020B14B /* FAPOBase.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAPOBase.c; path = ../src/FAPOBase.c; sourceTree = ""; }; - 7BD20D652190C8E50020B14B /* FACT3D.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FACT3D.c; path = ../src/FACT3D.c; sourceTree = ""; }; - 7BD20D662190C8E50020B14B /* FAudio_internal_simd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAudio_internal_simd.c; path = ../src/FAudio_internal_simd.c; sourceTree = ""; }; - 7BD20D672190C8E50020B14B /* FAPOFX.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAPOFX.c; path = ../src/FAPOFX.c; sourceTree = ""; }; - 7BD20D682190C8E50020B14B /* FAPOFX_echo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAPOFX_echo.c; path = ../src/FAPOFX_echo.c; sourceTree = ""; }; - 7BD20D692190C8E50020B14B /* FAudio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAudio.c; path = ../src/FAudio.c; sourceTree = ""; }; - 7BD20D6A2190C8E50020B14B /* FACT.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FACT.c; path = ../src/FACT.c; sourceTree = ""; }; - 7BD20D6B2190C8E50020B14B /* FAPOFX_eq.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAPOFX_eq.c; path = ../src/FAPOFX_eq.c; sourceTree = ""; }; - 7BD20D6C2190C8E50020B14B /* FAudio_platform_sdl2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAudio_platform_sdl2.c; path = ../src/FAudio_platform_sdl2.c; sourceTree = ""; }; - 7BD20D6D2190C8E50020B14B /* FAPOFX_reverb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAPOFX_reverb.c; path = ../src/FAPOFX_reverb.c; sourceTree = ""; }; - 7BD20D6E2190C8E50020B14B /* FAudioFX_reverb.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FAudioFX_reverb.c; path = ../src/FAudioFX_reverb.c; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7B1CDD422190C0A200175C7B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B7E140A2190E0CB00616654 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7B1CDD3C2190C0A200175C7B = { - isa = PBXGroup; - children = ( - 7B1CDDA72190C52900175C7B /* Public Headers */, - 7B1CDDA62190C50300175C7B /* Library Source */, - 7B1CDD462190C0A200175C7B /* Products */, - ); - sourceTree = ""; - }; - 7B1CDD462190C0A200175C7B /* Products */ = { - isa = PBXGroup; - children = ( - 7B1CDD452190C0A200175C7B /* libFAudio.a */, - 7B7E140D2190E0CB00616654 /* libFAudio-tv.a */, - ); - name = Products; - sourceTree = ""; - }; - 7B1CDDA62190C50300175C7B /* Library Source */ = { - isa = PBXGroup; - children = ( - 7BD20D612190C8E50020B14B /* F3DAudio.c */, - 7BD20D602190C8E50020B14B /* FACT_internal.c */, - 7BD20D6A2190C8E50020B14B /* FACT.c */, - 7BD20D652190C8E50020B14B /* FACT3D.c */, - 7BD20D642190C8E50020B14B /* FAPOBase.c */, - 7BD20D682190C8E50020B14B /* FAPOFX_echo.c */, - 7BD20D6B2190C8E50020B14B /* FAPOFX_eq.c */, - 7BD20D632190C8E50020B14B /* FAPOFX_masteringlimiter.c */, - 7BD20D6D2190C8E50020B14B /* FAPOFX_reverb.c */, - 7BD20D672190C8E50020B14B /* FAPOFX.c */, - 7BD20D662190C8E50020B14B /* FAudio_internal_simd.c */, - 7B80D132227CE0E000AE825D /* FAudio_operationset.c */, - 7BD20D622190C8E50020B14B /* FAudio_internal.c */, - 7BD20D6C2190C8E50020B14B /* FAudio_platform_sdl2.c */, - 7BD20D692190C8E50020B14B /* FAudio.c */, - 7BD20D6E2190C8E50020B14B /* FAudioFX_reverb.c */, - 7BD20D5F2190C8E50020B14B /* FAudioFX_volumemeter.c */, - 7B6908262190EC41003C0941 /* XNA_Song.c */, - ); - name = "Library Source"; - sourceTree = ""; - }; - 7B1CDDA72190C52900175C7B /* Public Headers */ = { - isa = PBXGroup; - children = ( - 7BA5611F21B9C7D800AB0E8C /* F3DAudio.h */, - 7BA5612221B9C7D800AB0E8C /* FACT.h */, - 7BA5612421B9C7D800AB0E8C /* FACT3D.h */, - 7BA5612021B9C7D800AB0E8C /* FAPO.h */, - 7BA5612521B9C7D900AB0E8C /* FAPOBase.h */, - 7BA5612321B9C7D800AB0E8C /* FAPOFX.h */, - 7BA5612621B9C7D900AB0E8C /* FAudio.h */, - 7BA5612121B9C7D800AB0E8C /* FAudioFX.h */, - 7BD20D582190C8C30020B14B /* FACT_internal.h */, - 7BD20D5B2190C8C30020B14B /* FAudio_internal.h */, - ); - name = "Public Headers"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7B1CDD442190C0A200175C7B /* FAudio */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7B1CDD4E2190C0A200175C7B /* Build configuration list for PBXNativeTarget "FAudio" */; - buildPhases = ( - 7B1CDD412190C0A200175C7B /* Sources */, - 7B1CDD422190C0A200175C7B /* Frameworks */, - 7B1CDD432190C0A200175C7B /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = FAudio; - productName = "FAudio-iOS"; - productReference = 7B1CDD452190C0A200175C7B /* libFAudio.a */; - productType = "com.apple.product-type.library.static"; - }; - 7B7E140C2190E0CB00616654 /* FAudio-tv */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7B7E14132190E0CB00616654 /* Build configuration list for PBXNativeTarget "FAudio-tv" */; - buildPhases = ( - 7B7E14092190E0CB00616654 /* Sources */, - 7B7E140A2190E0CB00616654 /* Frameworks */, - 7B7E140B2190E0CB00616654 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "FAudio-tv"; - productName = "FAudio-tv"; - productReference = 7B7E140D2190E0CB00616654 /* libFAudio-tv.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7B1CDD3D2190C0A200175C7B /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 7B1CDD442190C0A200175C7B = { - CreatedOnToolsVersion = 10.1; - }; - 7B7E140C2190E0CB00616654 = { - CreatedOnToolsVersion = 10.1; - }; - }; - }; - buildConfigurationList = 7B1CDD402190C0A200175C7B /* Build configuration list for PBXProject "FAudio" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7B1CDD3C2190C0A200175C7B; - productRefGroup = 7B1CDD462190C0A200175C7B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7B1CDD442190C0A200175C7B /* FAudio */, - 7B7E140C2190E0CB00616654 /* FAudio-tv */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 7B1CDD412190C0A200175C7B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7BD20D832190C8E50020B14B /* FAudio.c in Sources */, - 7BD20D852190C8E50020B14B /* FACT.c in Sources */, - 7BD20D792190C8E50020B14B /* FAPOBase.c in Sources */, - 7BD20D8B2190C8E50020B14B /* FAPOFX_reverb.c in Sources */, - 7BD20D732190C8E50020B14B /* F3DAudio.c in Sources */, - 7BD20D772190C8E50020B14B /* FAPOFX_masteringlimiter.c in Sources */, - 7BD20D7F2190C8E50020B14B /* FAPOFX.c in Sources */, - 7BD20D7B2190C8E50020B14B /* FACT3D.c in Sources */, - 7BD20D892190C8E50020B14B /* FAudio_platform_sdl2.c in Sources */, - 7BD20D712190C8E50020B14B /* FACT_internal.c in Sources */, - 7B80D133227CE0E000AE825D /* FAudio_operationset.c in Sources */, - 7BD20D872190C8E50020B14B /* FAPOFX_eq.c in Sources */, - 7BD20D812190C8E50020B14B /* FAPOFX_echo.c in Sources */, - 7BD20D752190C8E50020B14B /* FAudio_internal.c in Sources */, - 7BD20D8D2190C8E50020B14B /* FAudioFX_reverb.c in Sources */, - 7BD20D6F2190C8E50020B14B /* FAudioFX_volumemeter.c in Sources */, - 7B6908272190EC41003C0941 /* XNA_Song.c in Sources */, - 7BD20D7D2190C8E50020B14B /* FAudio_internal_simd.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B7E14092190E0CB00616654 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7BD806B122A0B4F900D9679D /* FAudio_operationset.c in Sources */, - 7B7E14162190E10C00616654 /* F3DAudio.c in Sources */, - 7B7E14172190E10C00616654 /* FACT_internal.c in Sources */, - 7B7E14182190E10C00616654 /* FACT.c in Sources */, - 7B7E14192190E10C00616654 /* FACT3D.c in Sources */, - 7B7E141A2190E10C00616654 /* FAPOBase.c in Sources */, - 7B7E141B2190E10C00616654 /* FAPOFX_echo.c in Sources */, - 7B7E141C2190E10C00616654 /* FAPOFX_eq.c in Sources */, - 7B7E141D2190E10C00616654 /* FAPOFX_masteringlimiter.c in Sources */, - 7B7E141E2190E10C00616654 /* FAPOFX_reverb.c in Sources */, - 7B7E141F2190E10C00616654 /* FAPOFX.c in Sources */, - 7B7E14202190E10C00616654 /* FAudio_internal_simd.c in Sources */, - 7B7E14212190E10C00616654 /* FAudio_internal.c in Sources */, - 7B7E14222190E10C00616654 /* FAudio_platform_sdl2.c in Sources */, - 7B7E14232190E10C00616654 /* FAudio.c in Sources */, - 7B7E14242190E10C00616654 /* FAudioFX_reverb.c in Sources */, - 7B6908282190EC41003C0941 /* XNA_Song.c in Sources */, - 7B7E14252190E10C00616654 /* FAudioFX_volumemeter.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7B1CDD4C2190C0A200175C7B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ../../SDL2/include; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvos appletvsimulator"; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 7B1CDD4D2190C0A200175C7B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - FAUDIO_DISABLE_DEBUGCONFIGURATION, - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ../../SDL2/include; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvos appletvsimulator"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7B1CDD4F2190C0A200175C7B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7B1CDD502190C0A200175C7B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 7B7E14142190E0CB00616654 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 7B7E14152190E0CB00616654 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7B1CDD402190C0A200175C7B /* Build configuration list for PBXProject "FAudio" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B1CDD4C2190C0A200175C7B /* Debug */, - 7B1CDD4D2190C0A200175C7B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7B1CDD4E2190C0A200175C7B /* Build configuration list for PBXNativeTarget "FAudio" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B1CDD4F2190C0A200175C7B /* Debug */, - 7B1CDD502190C0A200175C7B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7B7E14132190E0CB00616654 /* Build configuration list for PBXNativeTarget "FAudio-tv" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B7E14142190E0CB00616654 /* Debug */, - 7B7E14152190E0CB00616654 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7B1CDD3D2190C0A200175C7B /* Project object */; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/FAudio.xcodeproj/xcshareddata/xcschemes/FAudio.xcscheme b/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/FAudio.xcodeproj/xcshareddata/xcschemes/FAudio.xcscheme deleted file mode 100644 index 76d67b60..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/FAudio.xcodeproj/xcshareddata/xcschemes/FAudio.xcscheme +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/README b/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/README deleted file mode 100644 index 2f44afad..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/Xcode-iOS/README +++ /dev/null @@ -1,18 +0,0 @@ -Building FAudio for iOS/tvOS ----------------------------- -FAudio uses Xcode to build on iOS and tvOS. - -Dependencies ------------- -Before building, download SDL2's source code from SDL's website: - -http://libsdl.org/download-2.0.php - -After extracting the zip file, be sure to rename the directory to remove the -version number (for example, 'SDL2-2.0.8' should be 'SDL2'). - -Compiling ---------- -1. Build SDL2/Xcode-iOS/SDL/SDL.xcodeproj -2. Build FAudio.xcodeproj -3. Grab libFAudio.a and libSDL2.a, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/FAudio.pc.in b/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/FAudio.pc.in deleted file mode 100644 index 3907ccb0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/FAudio.pc.in +++ /dev/null @@ -1,12 +0,0 @@ -prefix=@CMAKE_INSTALL_PREFIX@ -exec_prefix=${prefix} -libdir=@FAUDIO_PKGCONF_LIBDIR@ -includedir=@FAUDIO_PKGCONF_INCLUDEDIR@ - -Name: @PROJECT_NAME@ -URL: https://github.com/FNA-XNA/FAudio -Description: Accuracy-focused XAudio reimplementation for open platforms -Version: @LIB_VERSION@ - -Libs: -L${libdir} -l@PROJECT_NAME@ -Cflags: -I${includedir} @PLATFORM_CFLAGS@ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/JoinPaths.cmake b/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/JoinPaths.cmake deleted file mode 100644 index a7672707..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/JoinPaths.cmake +++ /dev/null @@ -1,26 +0,0 @@ -# This module provides a function for joining paths -# known from most languages -# -# SPDX-License-Identifier: (MIT OR CC0-1.0) -# Copyright 2020 Jan Tojnar -# https://github.com/jtojnar/cmake-snips -# -# Modelled after Python’s os.path.join -# https://docs.python.org/3.7/library/os.path.html#os.path.join -# Windows not supported -function(join_paths joined_path first_path_segment) - set(temp_path "${first_path_segment}") - foreach(current_segment IN LISTS ARGN) - if(NOT ("${current_segment}" STREQUAL "")) - string(REGEX REPLACE "^${CMAKE_INSTALL_PREFIX}/?" "" new_segment "${current_segment}") - if(NOT ("${new_segment}" STREQUAL "")) - if(NOT IS_ABSOLUTE "${current_segment}" OR NOT "${current_segment}" MATCHES "^${new_segment}$") - set(temp_path "${temp_path}/${new_segment}") - else() - set(temp_path "${current_segment}") - endif() - endif() - endif() - endforeach() - set(${joined_path} "${temp_path}" PARENT_SCOPE) -endfunction() diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/config.cmake.in b/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/config.cmake.in deleted file mode 100644 index 8bb8c0e8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/config.cmake.in +++ /dev/null @@ -1,5 +0,0 @@ -@PACKAGE_INIT@ - -include("${CMAKE_CURRENT_LIST_DIR}/@CMAKE_PROJECT_NAME@-targets.cmake") -check_required_components("@CMAKE_PROJECT_NAME@") - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/install_shared_libs.cmake b/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/install_shared_libs.cmake deleted file mode 100644 index dc47f506..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/cmake/install_shared_libs.cmake +++ /dev/null @@ -1,268 +0,0 @@ -# install all libraries to path defined by DESTINATION -# symlinks are resolved and both the symlink and the target are installed -# -# example: install imported TARGETS -# find_package(Qt5 COMPONENTS Core REQUIRED) -# install_shared_libs(TARGETS Qt5::Core DESTINATION lib REQUIRED) -# -# example: define the libraries (or symlinks to libraries) to install -# install_shared_libs(FILES "/usr/lib/x86_64-linux-gnu/libQt5Core.so" DESTINATION bin REQUIRED) -# -# example: pass the linker flags and let cmake find the libraries to install -# install_shared_libs("-lQt5Core" DESTINATION lib REQUIRED) -# -# options: -# - NO_INSTALL_SYMLINKS: don't install symlinks, just the real shared libraries -# - REQUIRED|OPTIONAL: default is OPTIONAL, if REQUIRED is specified an error -# is thrown if the library is not found -# - QUIET: don't print status messages - -function(install_shared_libs) - set(function_name "install_shared_libs") - set(function_synopsis "${function_name}([TARGETS [target]+] [FILES [file]+] DESTINATION destination [target_lib_or_file] [NO_INSTALL_SYMLINKS] [REQUIRED|OPTIONAL] [QUIET]") - - # parse arguments - set(option_args REQUIRED OPTIONAL NO_INSTALL_SYMLINKS QUIET) - set(one_value_args DESTINATION) - set(multi_value_args TARGETS FILES CONFIGURATIONS) - cmake_parse_arguments(x "${option_args}" "${one_value_args}" "${multi_value_args}" ${ARGV}) - - # check options (flags) - set(x_options) - if(x_REQUIRED AND x_OPTIONAL) - message(FATAL_ERROR - "'${function_name}' incorrect usage," - " both REQUIRED and OPTIONAL are specified." - " Synopsis: ${function_synopsis}" - ) - endif() - # append for recursive calls to insall_shared_libs - if(x_NO_INSTALL_SYMLINKS) - list(APPEND x_options "NO_INSTALL_SYMLINKS") - endif() - if(x_REQUIRED) - list(APPEND x_options "REQUIRED") - else() - list(APPEND x_options "OPTIONAL") - endif() - if(x_QUIET) - list(APPEND x_options "QUIET") - endif() - - # option DESTINATION is mandatory - string(COMPARE EQUAL "${x_DESTINATION}" "" is_empty) - if(is_empty) - message(FATAL_ERROR - "'${function_name}' incorrect usage," - " option 'DESTINATION' with one argument is mandatory." - " Synopsis: ${function_synopsis}" - ) - endif() - - # when TARGETS is defined no free libs are allowed - list(LENGTH x_UNPARSED_ARGUMENTS x_len) - if(x_len GREATER 0) - list(LENGTH x_TARGETS x_len_TARGETS) - list(LENGTH x_FILES x_len_FILES) - if(x_len_TARGETS GREATER 0) - message(FATAL_ERROR - "'${function_name}' incorrect usage," - " if TARGETS defined no free arguments are allowed '${x_UNPARSED_ARGUMENTS}'." - " Synopsis: ${function_synopsis}" - ) - endif() - if(x_len_FILES GREATER 0) - message(FATAL_ERROR - "'${function_name}' incorrect usage," - " if FILES defined no free arguments are allowed '${x_FILES}' '${x_UNPARSED_ARGUMENTS}'." - " Synopsis: ${function_synopsis}" - ) - endif() - endif() - - list(LENGTH x_CONFIGURATIONS x_len_CONFIGURATIONS) - if(x_len_CONFIGURATIONS GREATER 0) - set(x_conf_options CONFIGURATIONS ${x_CONFIGURATIONS}) - set(x_conf_info "CONFIGURATIONS '${x_CONFIGURATIONS}'") - else() - set(x_conf_options) - set(x_conf_info "CONFIGURATIONS 'all'") - endif() - - # local variable to use - set(shared_libs_destination "${x_DESTINATION}") - - foreach(target_lib ${x_TARGETS}) - if(TARGET ${target_lib}) - unset(lib_location) - unset(lib_location_rel) # Release - unset(lib_location_dbg) # Debug - unset(lib_location_noc) # NoConfig - set(found_location NO) - # special handling for cmake targets - get_target_property(lib_location ${target_lib} IMPORTED_LOCATION) - get_target_property(lib_location_rel ${target_lib} IMPORTED_LOCATION_RELEASE) - get_target_property(lib_location_dbg ${target_lib} IMPORTED_LOCATION_DEBUG) - get_target_property(lib_location_noc ${target_lib} IMPORTED_LOCATION_NOCONFIG) - if(lib_location) - install_shared_libs(FILES ${lib_location} - DESTINATION ${shared_libs_destination} - ${x_options}) - set(found_location YES) - endif() - if(lib_location_rel) - install_shared_libs(FILES ${lib_location_rel} - DESTINATION ${shared_libs_destination} - CONFIGURATIONS Release RelWithDebInfo - ${x_options}) - set(found_location YES) - endif() - if(lib_location_dbg) - install_shared_libs(FILES ${lib_location_dbg} - DESTINATION ${shared_libs_destination} - CONFIGURATIONS Debug - ${x_options}) - set(found_location YES) - endif() - if(lib_location_noc) - install_shared_libs(FILES ${lib_location_noc} - DESTINATION ${shared_libs_destination} - ${x_options}) - set(found_location YES) - endif() - if(NOT found_location) - if(x_REQUIRED) - message(FATAL_ERROR - "'${function_name}' can't get imported location from required target '${target_lib}'" - ) - elseif(NOT x_QUIET) - message(STATUS - "'${function_name}' can't get imported location from optional target '${target_lib}'" - ) - endif() - endif() - else() # TARGET - if(x_REQUIRED) - message(FATAL_ERROR - "'${function_name}' required target can't be found '${target_lib}'" - ) - elseif(NOT x_QUIET) - message(STATUS - "'${function_name}' optional target can't be found '${target_lib}'" - ) - endif() - endif() - endforeach() # TARGETS - - # no-targets are defined, free arguments are parsed as libraries - foreach(lib ${x_UNPARSED_ARGUMENTS}) - # check if it is a linker flag - # for example -L/usr/x86_64-w64-mingw32/lib -lmingw32 -lSDL2main -lSDL2 -mwindows - string(REGEX MATCH "-L[^ \t]+" linker_search_dir ${lib}) - string(REGEX MATCHALL "[ \t;]-l[^ \t]+" linker_libs " ${lib}") - string(REGEX REPLACE "^-L" "" linker_search_dir "${linker_search_dir}") - if(linker_libs) - foreach(linker_lib ${linker_libs}) - string(REGEX REPLACE "^[ \t;]-l" "" linker_lib ${linker_lib}) - find_library(lib_path ${linker_lib} - HINTS "${linker_search_dir}") - if(lib_path) - install_shared_libs( - FILES ${lib_path} - DESTINATION ${shared_libs_destination} - ${x_options}) - unset(lib_path CACHE) - continue() - else() # no library path found - if(x_REQUIRED) - message(FATAL_ERROR - "'${function_name}' no library found for required library '${linker_lib}' with linker search directory '${linker_search_dir}'" - ) - elseif(NOT x_QUIET) - message(STATUS - "'${function_name}' no library found for optional library '${linker_lib}' with linker search directory '${linker_search_dir}'" - ) - endif() # required - endif() # lib_path - endforeach() # linker_lib in linker_libs - continue() - endif() #linker_libs - endforeach() # unparsed library - - # install all passed filepaths with some magic to get the dynamic libraries - foreach(lib ${x_FILES}) - # got an absolute path for a library - string(REGEX MATCH "\\.(dll\\.a$|lib$)" is_static "${lib}") - if(is_static) - # lib is a dynamic wrapper ending in .dll.a, search for the linked - # dll in the ../bin and ../lib directories - get_filename_component(dynlib_name ${lib} NAME_WE) - string(REGEX REPLACE "^lib" "" dynlib_simple "${dynlib_name}") - get_filename_component(linker_search_dir ${lib} DIRECTORY) - get_filename_component(linker_search_dir ${linker_search_dir} DIRECTORY) - file(GLOB dyn_lib - "${linker_search_dir}/bin/${dynlib_simple}*.dll" - "${linker_search_dir}/lib/${dynlib_simple}*.dll" - LIST_DIRECTORIES false) - if(dyn_lib) - # found the dynamic library - set(lib "${dyn_lib}") - endif() - endif() - string(REGEX MATCH "\\.(so|dll$|dylib$)" is_shared_lib "${lib}") - if(NOT is_shared_lib) - # don't install static libraries - if(x_REQUIRED) - message(FATAL_ERROR - "'${function_name}' ${x_conf_info}: required library is not a shared library '${lib}'" - ) - elseif(NOT x_QUIET) - message(STATUS - "'${function_name}' ${x_conf_info}: optional library is not a shared library '${lib}'" - ) - continue() - endif() - endif() - # resolve possible symlink and install the real library - get_filename_component(lib_REAL ${lib} REALPATH) - if(NOT x_QUIET) - message(STATUS - "'${function_name}' ${x_conf_info}: install shared lib: ${lib_REAL}") - endif() - install(FILES ${lib_REAL} ${x_conf_options} DESTINATION ${shared_libs_destination}) - # check if given library is no symlink to prevent double installation - STRING(COMPARE NOTEQUAL "${lib}" "${lib_REAL}" real_lib_different) - if(real_lib_different AND NOT x_NO_INSTALL_SYMLINKS) - # find all the symlinks linking to lib_REAL - string(REGEX MATCH "\\.so" is_shared_lib_linux "${lib}") - string(REGEX MATCH "\\.dylib$" is_shared_lib_darwin "${lib}") - if(is_shared_lib_linux OR is_shared_lib_darwin) - if(is_shared_lib_linux) - string(REGEX REPLACE "\\.so.*" ".so" lib_base "${lib}") - file(GLOB lib_symlinks "${lib_base}*") - else() - string(REGEX REPLACE "\\.dylib$" "" lib_base "${lib}") - file(GLOB lib_symlinks "${lib_base}*.dylib") - endif() - foreach(lib_sym ${lib_symlinks}) - STRING(COMPARE NOTEQUAL "${lib_sym}" "${lib_REAL}" real_lib_different) - if(NOT real_lib_different) - continue() # we found the real lib, not a symlink, skip it - endif() - if(NOT x_QUIET) - message(STATUS - "'${function_name}' ${x_conf_info}: install symlink to lib: ${lib_sym}") - endif() - # actually install the found symlink - install(FILES ${lib_sym} ${x_conf_options} DESTINATION ${shared_libs_destination}) - endforeach() - else() # neither linux nor darwin - if(NOT x_QUIET) - message(STATUS - "'${function_name}' ${x_conf_info}: install symlink to lib: ${lib}") - endif() - install(FILES ${lib} ${x_conf_options} DESTINATION ${shared_libs_destination}) - endif() - endif() # x_NO_INSTALL_SYMLINKS - endforeach() -endfunction() diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.Core.csproj b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.Core.csproj deleted file mode 100644 index bb529eda..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.Core.csproj +++ /dev/null @@ -1,19 +0,0 @@ - - - net40;netstandard2.0 - x64 - - - false - FAudio-CS - FAudio - true - false - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.csproj b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.csproj deleted file mode 100644 index adffcf90..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.csproj +++ /dev/null @@ -1,87 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {4FF0E874-ADB4-4AE5-B059-DD6116C4A370} - Library - FAudio - FAudio-CS - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - x86 - false - true - - - none - false - bin\Release - prompt - 4 - x86 - false - true - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - true - - - none - false - bin\Release - prompt - 4 - false - true - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - x64 - false - true - - - none - false - bin\Release - prompt - 4 - x64 - false - true - - - - - - - - $(TargetFileName).config - PreserveNewest - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.sln b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.sln deleted file mode 100644 index 1cb6c6ee..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio-CS.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FAudio-CS", "FAudio-CS.csproj", "{4FF0E874-ADB4-4AE5-B059-DD6116C4A370}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {4FF0E874-ADB4-4AE5-B059-DD6116C4A370}.Debug|x86.ActiveCfg = Debug|x86 - {4FF0E874-ADB4-4AE5-B059-DD6116C4A370}.Debug|x86.Build.0 = Debug|x86 - {4FF0E874-ADB4-4AE5-B059-DD6116C4A370}.Release|x86.ActiveCfg = Release|x86 - {4FF0E874-ADB4-4AE5-B059-DD6116C4A370}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = FAudio-CS.csproj - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio.cs b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio.cs deleted file mode 100644 index effbb109..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/FAudio.cs +++ /dev/null @@ -1,2388 +0,0 @@ -/* FAudio# - C# Wrapper for FAudio - * - * Copyright (c) 2018-2022 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#region Using Statements -using System; -using System.Runtime.InteropServices; -using System.Text; -#endregion - -public static class FAudio -{ - #region Native Library Name - - const string nativeLibName = "FAudio"; - - #endregion - - #region UTF8 Marshaling - - /* Used for stack allocated string marshaling. */ - private static int Utf8Size(string str) - { - return (str.Length * 4) + 1; - } - private static unsafe byte* Utf8Encode(string str, byte* buffer, int bufferSize) - { - fixed (char* strPtr = str) - { - Encoding.UTF8.GetBytes(strPtr, str.Length + 1, buffer, bufferSize); - } - - return buffer; - } - - /* Used for heap allocated string marshaling - * Returned byte* must be free'd with FreeHGlobal. - */ - private static unsafe byte* Utf8Encode(string str) - { - int bufferSize = (str.Length * 4) + 1; - byte* buffer = (byte*)Marshal.AllocHGlobal(bufferSize); - fixed (char* strPtr = str) - { - Encoding.UTF8.GetBytes(strPtr, str.Length + 1, buffer, bufferSize); - } - return buffer; - } - - #endregion - - #region FAudio API - - /* Version */ - - public const uint FAUDIO_TARGET_VERSION = 8; - - public const uint FAUDIO_ABI_VERSION = 0; - public const uint FAUDIO_MAJOR_VERSION = 22; - public const uint FAUDIO_MINOR_VERSION = 8; - public const uint FAUDIO_PATCH_VERSION = 0; - - public const uint FAUDIO_COMPILED_VERSION = ( - (FAUDIO_ABI_VERSION * 100 * 100 * 100) + - (FAUDIO_MAJOR_VERSION * 100 * 100) + - (FAUDIO_MINOR_VERSION * 100) + - (FAUDIO_PATCH_VERSION) - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioLinkedVersion(); - - /* Enumerations */ - - [Flags] - public enum FAudioDeviceRole - { - FAudioNotDefaultDevice = 0x0, - FAudioDefaultConsoleDevice = 0x1, - FAudioDefaultMultimediaDevice = 0x2, - FAudioDefaultCommunicationsDevice = 0x4, - FAudioDefaultGameDevice = 0x8, - FAudioGlobalDefaultDevice = 0xF, - FAudioInvalidDeviceRole = ~FAudioGlobalDefaultDevice - } - - public enum FAudioFilterType - { - FAudioLowPassFilter, - FAudioBandPassFilter, - FAudioHighPassFilter, - FAudioNotchFilter - } - - /* FIXME: The original enum violates ISO C and is platform specific anyway... */ - public const uint FAUDIO_DEFAULT_PROCESSOR = 0xFFFFFFFF; - - /* Structures */ - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public unsafe struct FAudioGUID - { - public uint Data1; - public ushort Data2; - public ushort Data3; - public fixed byte Data4[8]; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioWaveFormatEx - { - public ushort wFormatTag; - public ushort nChannels; - public uint nSamplesPerSec; - public uint nAvgBytesPerSec; - public ushort nBlockAlign; - public ushort wBitsPerSample; - public ushort cbSize; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioWaveFormatExtensible - { - public FAudioWaveFormatEx Format; - public ushort Samples; /* FIXME: union! */ - public uint dwChannelMask; - public FAudioGUID SubFormat; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioADPCMCoefSet - { - public short iCoef1; - public short iCoef2; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioADPCMWaveFormat - { - public FAudioWaveFormatEx wfx; - public ushort wSamplesPerBlock; - public ushort wNumCoef; - public IntPtr aCoef; /* FAudioADPCMCoefSet[] */ - /* MSADPCM has 7 coefficient pairs: - * { - * { 256, 0 }, - * { 512, -256 }, - * { 0, 0 }, - * { 192, 64 }, - * { 240, 0 }, - * { 460, -208 }, - * { 392, -232 } - * } - */ - } - - public struct FAudioXMA2WaveFormatEx - { - public FAudioWaveFormatEx wfx; - public ushort wNumStreams; - public uint dwChannelMask; - public uint dwSamplesEncoded; - public uint dwBytesPerBlock; - public uint dwPlayBegin; - public uint dwPlayLength; - public uint dwLoopBegin; - public uint dwLoopLength; - public byte bLoopCount; - public byte bEncoderVersion; - public ushort wBlockCount; - }; - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public unsafe struct FAudioDeviceDetails - { - public fixed short DeviceID[256]; /* Win32 wchar_t */ - public fixed short DisplayName[256]; /* Win32 wchar_t */ - public FAudioDeviceRole Role; - public FAudioWaveFormatExtensible OutputFormat; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioVoiceDetails - { - public uint CreationFlags; - public uint ActiveFlags; - public uint InputChannels; - public uint InputSampleRate; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioSendDescriptor - { - public uint Flags; - public IntPtr pOutputVoice; /* FAudioVoice* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioVoiceSends - { - public uint SendCount; - public IntPtr pSends; /* FAudioSendDescriptor* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioEffectDescriptor - { - public IntPtr pEffect; /* void* */ - public int InitialState; - public uint OutputChannels; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioEffectChain - { - public uint EffectCount; - public IntPtr pEffectDescriptors; /* FAudioEffectDescriptor* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioFilterParameters - { - public FAudioFilterType Type; - public float Frequency; - public float OneOverQ; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioBuffer - { - public uint Flags; - public uint AudioBytes; - public IntPtr pAudioData; /* const uint8_t* */ - public uint PlayBegin; - public uint PlayLength; - public uint LoopBegin; - public uint LoopLength; - public uint LoopCount; - public IntPtr pContext; /* void* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioBufferWMA - { - public IntPtr pDecodedPacketCumulativeBytes; /* const uint32_t* */ - public uint PacketCount; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioVoiceState - { - public IntPtr pCurrentBufferContext; /* void* */ - public uint BuffersQueued; - public ulong SamplesPlayed; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioPerformanceData - { - public ulong AudioCyclesSinceLastQuery; - public ulong TotalCyclesSinceLastQuery; - public uint MinimumCyclesPerQuantum; - public uint MaximumCyclesPerQuantum; - public uint MemoryUsageInBytes; - public uint CurrentLatencyInSamples; - public uint GlitchesSinceEngineStarted; - public uint ActiveSourceVoiceCount; - public uint TotalSourceVoiceCount; - public uint ActiveSubmixVoiceCount; - public uint ActiveResamplerCount; - public uint ActiveMatrixMixCount; - public uint ActiveXmaSourceVoices; - public uint ActiveXmaStreams; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FAudioDebugConfiguration - { - public uint TraceMask; - public uint BreakMask; - public int LogThreadID; - public int LogFileline; - public int LogFunctionName; - public int LogTiming; - } - - /* Constants */ - - public const uint FAUDIO_MAX_BUFFER_BYTES = 0x80000000; - public const uint FAUDIO_MAX_QUEUED_BUFFERS = 64; - public const uint FAUDIO_MAX_AUDIO_CHANNELS = 64; - public const uint FAUDIO_MIN_SAMPLE_RATE = 1000; - public const uint FAUDIO_MAX_SAMPLE_RATE = 200000; - public const float FAUDIO_MAX_VOLUME_LEVEL = 16777216.0f; - public const float FAUDIO_MIN_FREQ_RATIO = (1.0f / 1024.0f); - public const float FAUDIO_MAX_FREQ_RATIO = 1024.0f; - public const float FAUDIO_DEFAULT_FREQ_RATIO = 2.0f; - public const float FAUDIO_MAX_FILTER_ONEOVERQ = 1.5f; - public const float FAUDIO_MAX_FILTER_FREQUENCY = 1.0f; - public const uint FAUDIO_MAX_LOOP_COUNT = 254; - - public const uint FAUDIO_COMMIT_NOW = 0; - public const uint FAUDIO_COMMIT_ALL = 0; - public const uint FAUDIO_INVALID_OPSET = unchecked((uint) -1); - public const uint FAUDIO_NO_LOOP_REGION = 0; - public const uint FAUDIO_LOOP_INFINITE = 255; - public const uint FAUDIO_DEFAULT_CHANNELS = 0; - public const uint FAUDIO_DEFAULT_SAMPLERATE = 0; - - public const uint FAUDIO_DEBUG_ENGINE = 0x0001; - public const uint FAUDIO_VOICE_NOPITCH = 0x0002; - public const uint FAUDIO_VOICE_NOSRC = 0x0004; - public const uint FAUDIO_VOICE_USEFILTER = 0x0008; - public const uint FAUDIO_VOICE_MUSIC = 0x0010; - public const uint FAUDIO_PLAY_TAILS = 0x0020; - public const uint FAUDIO_END_OF_STREAM = 0x0040; - public const uint FAUDIO_SEND_USEFILTER = 0x0080; - public const uint FAUDIO_VOICE_NOSAMPLESPLAYED = 0x0100; - public const uint FAUDIO_1024_QUANTUM = 0x8000; - - public const FAudioFilterType FAUDIO_DEFAULT_FILTER_TYPE = FAudioFilterType.FAudioLowPassFilter; - public const float FAUDIO_DEFAULT_FILTER_FREQUENCY = FAUDIO_MAX_FILTER_FREQUENCY; - public const float FAUDIO_DEFAULT_FILTER_ONEOVERQ = 1.0f; - - public const ushort FAUDIO_LOG_ERRORS = 0x0001; - public const ushort FAUDIO_LOG_WARNINGS = 0x0002; - public const ushort FAUDIO_LOG_INFO = 0x0004; - public const ushort FAUDIO_LOG_DETAIL = 0x0008; - public const ushort FAUDIO_LOG_API_CALLS = 0x0010; - public const ushort FAUDIO_LOG_FUNC_CALLS = 0x0020; - public const ushort FAUDIO_LOG_TIMING = 0x0040; - public const ushort FAUDIO_LOG_LOCKS = 0x0080; - public const ushort FAUDIO_LOG_MEMORY = 0x0100; - public const ushort FAUDIO_LOG_STREAMING = 0x1000; - - /* FAudio Interface */ - - /* FIXME: Do we want to actually reproduce the COM stuff or what...? -flibit */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioCreate( - out IntPtr ppFAudio, /* FAudio** */ - uint Flags, - uint XAudio2Processor /* FAudioProcessor */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_AddRef( - IntPtr audio /* FAudio */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_Release( - IntPtr audio /* FAudio* */ - ); - - /* FIXME: QueryInterface? Or just ignore COM garbage... -flibit */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_GetDeviceCount( - IntPtr audio, /* FAudio* */ - out uint pCount - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_GetDeviceDetails( - IntPtr audio, /* FAudio* */ - uint Index, - out FAudioDeviceDetails pDeviceDetails - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_Initialize( - IntPtr audio, /* FAudio* */ - uint Flags, - uint XAudio2Processor /* FAudioProcessor */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_RegisterForCallbacks( - IntPtr audio, /* FAudio* */ - IntPtr pCallback /* FAudioEngineCallback* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudio_UnregisterForCallbacks( - IntPtr audio, /* FAudio* */ - IntPtr pCallback /* FAudioEngineCallback* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_CreateSourceVoice( - IntPtr audio, /* FAudio* */ - out IntPtr ppSourceVoice, /* FAudioSourceVoice** */ - ref FAudioWaveFormatEx pSourceFormat, - uint Flags, - float MaxFrequencyRatio, - IntPtr pCallback, /* FAudioVoiceCallback* */ - IntPtr pSendList, /* FAudioVoiceSends* */ - IntPtr pEffectChain /* FAudioEffectChain* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_CreateSourceVoice( - IntPtr audio, /* FAudio* */ - out IntPtr ppSourceVoice, /* FAudioSourceVoice** */ - IntPtr pSourceFormat, /* FAudioWaveFormatEx* */ - uint Flags, - float MaxFrequencyRatio, - IntPtr pCallback, /* FAudioVoiceCallback* */ - IntPtr pSendList, /* FAudioVoiceSends* */ - IntPtr pEffectChain /* FAudioEffectChain* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_CreateSubmixVoice( - IntPtr audio, /* FAudio* */ - out IntPtr ppSubmixVoice, /* FAudioSubmixVoice** */ - uint InputChannels, - uint InputSampleRate, - uint Flags, - uint ProcessingStage, - IntPtr pSendList, /* FAudioVoiceSends* */ - IntPtr pEffectChain /* FAudioEffectChain* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_CreateMasteringVoice( - IntPtr audio, /* FAudio* */ - out IntPtr ppMasteringVoice, /* FAudioMasteringVoice** */ - uint InputChannels, - uint InputSampleRate, - uint Flags, - uint DeviceIndex, - IntPtr pEffectChain /* FAudioEffectChain* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_StartEngine( - IntPtr audio /* FAudio* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudio_StopEngine( - IntPtr audio /* FAudio* */ - ); - - [DllImport(nativeLibName, EntryPoint = "FAudio_CommitOperationSet", CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudio_CommitChanges( - IntPtr audio /* FAudio* */, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudio_GetPerformanceData( - IntPtr audio, /* FAudio* */ - out FAudioPerformanceData pPerfData - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudio_SetDebugConfiguration( - IntPtr audio, /* FAudio* */ - ref FAudioDebugConfiguration pDebugConfiguration, - IntPtr pReserved /* void* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudio_GetProcessingQuantum( - IntPtr audio, /* FAudio */ - out uint quantumNumerator, - out uint quantumDenominator - ); - - /* FAudioVoice Interface */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_GetVoiceDetails( - IntPtr voice, /* FAudioVoice* */ - out FAudioVoiceDetails pVoiceDetails - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetOutputVoices( - IntPtr voice, /* FAudioVoice* */ - ref FAudioVoiceSends pSendList - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetEffectChain( - IntPtr voice, /* FAudioVoice* */ - ref FAudioEffectChain pEffectChain - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_EnableEffect( - IntPtr voice, /* FAudioVoice* */ - uint EffectIndex, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_DisableEffect( - IntPtr voice, /* FAudioVoice* */ - uint EffectIndex, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_GetEffectState( - IntPtr voice, /* FAudioVoice* */ - uint EffectIndex, - out int pEnabled - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetEffectParameters( - IntPtr voice, /* FAudioVoice* */ - uint EffectIndex, - IntPtr pParameters, /* const void* */ - uint ParametersByteSize, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_GetEffectParameters( - IntPtr voice, /* FAudioVoice* */ - uint EffectIndex, - IntPtr pParameters, /* void* */ - uint ParametersByteSize - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetFilterParameters( - IntPtr voice, /* FAudioVoice* */ - ref FAudioFilterParameters pParameters, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_GetFilterParameters( - IntPtr voice, /* FAudioVoice* */ - out FAudioFilterParameters pParameters - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetOutputFilterParameters( - IntPtr voice, /* FAudioVoice* */ - IntPtr pDestinationVoice, /* FAudioVoice */ - ref FAudioFilterParameters pParameters, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_GetOutputFilterParameters( - IntPtr voice, /* FAudioVoice* */ - IntPtr pDestinationVoice, /* FAudioVoice */ - out FAudioFilterParameters pParameters - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetVolume( - IntPtr voice, /* FAudioVoice* */ - float Volume, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_GetVolume( - IntPtr voice, /* FAudioVoice* */ - out float pVolume - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetChannelVolumes( - IntPtr voice, /* FAudioVoice* */ - uint Channels, - float[] pVolumes, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_GetChannelVolumes( - IntPtr voice, /* FAudioVoice* */ - uint Channels, - float[] pVolumes - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioVoice_SetOutputMatrix( - IntPtr voice, /* FAudioVoice* */ - IntPtr pDestinationVoice, /* FAudioVoice* */ - uint SourceChannels, - uint DestinationChannels, - IntPtr pLevelMatrix, /* float* */ - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_GetOutputMatrix( - IntPtr voice, /* FAudioVoice* */ - IntPtr pDestinationVoice, /* FAudioVoice* */ - uint SourceChannels, - uint DestinationChannels, - float[] pLevelMatrix - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioVoice_DestroyVoice( - IntPtr voice /* FAudioVoice* */ - ); - - /* FAudioSourceVoice Interface */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_Start( - IntPtr voice, /* FAudioSourceVoice* */ - uint Flags, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_Stop( - IntPtr voice, /* FAudioSourceVoice* */ - uint Flags, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_SubmitSourceBuffer( - IntPtr voice, /* FAudioSourceVoice* */ - ref FAudioBuffer pBuffer, - IntPtr pBufferWMA /* const FAudioBufferWMA* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_SubmitSourceBuffer( - IntPtr voice, /* FAudioSourceVoice* */ - ref FAudioBuffer pBuffer, - ref FAudioBufferWMA pBufferWMA - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_FlushSourceBuffers( - IntPtr voice /* FAudioSourceVoice* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_Discontinuity( - IntPtr voice /* FAudioSourceVoice* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_ExitLoop( - IntPtr voice, /* FAudioSourceVoice* */ - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioSourceVoice_GetState( - IntPtr voice, /* FAudioSourceVoice* */ - out FAudioVoiceState pVoiceState, - uint Flags - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_SetFrequencyRatio( - IntPtr voice, /* FAudioSourceVoice* */ - float Ratio, - uint OperationSet - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudioSourceVoice_GetFrequencyRatio( - IntPtr voice, /* FAudioSourceVoice* */ - out float pRatio - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioSourceVoice_SetSourceSampleRate( - IntPtr voice, /* FAudioSourceVoice* */ - uint NewSourceSampleRate - ); - - /* FAudioEngineCallback Interface */ - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnCriticalErrorFunc( - IntPtr engineCallback, /* FAudioEngineCallback* */ - uint Error - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnProcessingPassEndFunc( - IntPtr engineCallback /* FAudioEngineCallback* */ - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnProcessingPassStartFunc( - IntPtr engineCallback /* FAudioEngineCallback* */ - ); - - [StructLayout(LayoutKind.Sequential)] - public struct FAudioEngineCallback - { - public IntPtr OnCriticalError; /* OnCriticalErrorFunc */ - public IntPtr OnProcessingPassEnd; /* OnProcessingPassEndFunc */ - public IntPtr OnProcessingPassStart; /* OnProcessingPassStartFunc */ - } - - /* FAudioVoiceCallback Interface */ - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnBufferEndFunc( - IntPtr voiceCallback, /* FAudioVoiceCallback* */ - IntPtr pBufferContext /* void* */ - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnBufferStartFunc( - IntPtr voiceCallback, /* FAudioVoiceCallback* */ - IntPtr pBufferContext /* void* */ - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnLoopEndFunc( - IntPtr voiceCallback, /* FAudioVoiceCallback* */ - IntPtr pBufferContext /* void* */ - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnStreamEndFunc( - IntPtr voiceCallback /* FAudioVoiceCallback* */ - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnVoiceErrorFunc( - IntPtr voiceCallback, /* FAudioVoiceCallback* */ - IntPtr pBufferContext, /* void* */ - uint Error - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnVoiceProcessingPassEndFunc( - IntPtr voiceCallback /* FAudioVoiceCallback* */ - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void OnVoiceProcessingPassStartFunc( - IntPtr voiceCallback, /* FAudioVoiceCallback* */ - uint BytesRequired - ); - - [StructLayout(LayoutKind.Sequential)] - public struct FAudioVoiceCallback - { - public IntPtr OnBufferEnd; /* OnBufferEndFunc */ - public IntPtr OnBufferStart; /* OnBufferStartFunc */ - public IntPtr OnLoopEnd; /* OnLoopEndFunc */ - public IntPtr OnStreamEnd; /* OnStreamEndFunc */ - public IntPtr OnVoiceError; /* OnVoiceErrorFunc */ - public IntPtr OnVoiceProcessingPassEnd; /* OnVoiceProcessingPassEndFunc */ - public IntPtr OnVoiceProcessingPassStart; /* OnVoiceProcessingPassStartFunc */ - } - - #endregion - - #region FAudioFX API - - /* TODO */ - - /* Structures */ - - [StructLayout(LayoutKind.Sequential)] - public struct FAudioFXReverbParameters - { - public float WetDryMix; - public uint ReflectionsDelay; - public byte ReverbDelay; - public byte RearDelay; - public byte PositionLeft; - public byte PositionRight; - public byte PositionMatrixLeft; - public byte PositionMatrixRight; - public byte EarlyDiffusion; - public byte LateDiffusion; - public byte LowEQGain; - public byte LowEQCutoff; - public byte HighEQGain; - public byte HighEQCutoff; - public float RoomFilterFreq; - public float RoomFilterMain; - public float RoomFilterHF; - public float ReflectionsGain; - public float ReverbGain; - public float DecayTime; - public float Density; - public float RoomSize; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FAudioFXReverbParameters9 - { - public float WetDryMix; - public uint ReflectionsDelay; - public byte ReverbDelay; - public byte RearDelay; - public byte SideDelay; - public byte PositionLeft; - public byte PositionRight; - public byte PositionMatrixLeft; - public byte PositionMatrixRight; - public byte EarlyDiffusion; - public byte LateDiffusion; - public byte LowEQGain; - public byte LowEQCutoff; - public byte HighEQGain; - public byte HighEQCutoff; - public float RoomFilterFreq; - public float RoomFilterMain; - public float RoomFilterHF; - public float ReflectionsGain; - public float ReverbGain; - public float DecayTime; - public float Density; - public float RoomSize; - } - - /* Constants */ - - public const float FAUDIOFX_REVERB_DEFAULT_WET_DRY_MIX = 100.0f; - public const uint FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_DELAY = 5; - public const byte FAUDIOFX_REVERB_DEFAULT_REVERB_DELAY = 5; - public const byte FAUDIOFX_REVERB_DEFAULT_REAR_DELAY = 5; - public const byte FAUDIOFX_REVERB_DEFAULT_7POINT1_SIDE_DELAY = 5; - public const byte FAUDIOFX_REVERB_DEFAULT_7POINT1_REAR_DELAY = 20; - public const byte FAUDIOFX_REVERB_DEFAULT_POSITION = 6; - public const byte FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX = 27; - public const byte FAUDIOFX_REVERB_DEFAULT_EARLY_DIFFUSION = 8; - public const byte FAUDIOFX_REVERB_DEFAULT_LATE_DIFFUSION = 8; - public const byte FAUDIOFX_REVERB_DEFAULT_LOW_EQ_GAIN = 8; - public const byte FAUDIOFX_REVERB_DEFAULT_LOW_EQ_CUTOFF = 4; - public const byte FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_GAIN = 8; - public const byte FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_CUTOFF = 4; - public const float FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_FREQ = 5000.0f; - public const float FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_MAIN = 0.0f; - public const float FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_HF = 0.0f; - public const float FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_GAIN = 0.0f; - public const float FAUDIOFX_REVERB_DEFAULT_REVERB_GAIN = 0.0f; - public const float FAUDIOFX_REVERB_DEFAULT_DECAY_TIME = 1.0f; - public const float FAUDIOFX_REVERB_DEFAULT_DENSITY = 100.0f; - public const float FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE = 100.0f; - - /* Functions */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioCreateReverb(out IntPtr ppApo, uint Flags); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAudioCreateReverb9(out IntPtr ppApo, uint Flags); - - #endregion - - #region FAPO API - - /* TODO */ - - #endregion - - #region FAPOBase API - - /* TODO */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FAPOBase_Release(IntPtr fapo); - - #endregion - - #region FACT API - - /* Delegates */ - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate int FACTReadFileCallback( - IntPtr hFile, - IntPtr buffer, - uint nNumberOfBytesToRead, - IntPtr lpOverlapped /* FACTOverlapped* */ - ); - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate int FACTGetOverlappedResultCallback( - IntPtr hFile, - IntPtr lpOverlapped, /* FACTOverlapped* */ - out uint lpNumberOfBytesTransferred, - int bWait - ); - - [UnmanagedFunctionPointer(CallingConvention.StdCall)] - public delegate void FACTNotificationCallback( - IntPtr pNotification /* const FACTNotification* */ - ); - - /* Enumerations */ - - public enum FACTWaveBankSegIdx - { - FACT_WAVEBANK_SEGIDX_BANKDATA = 0, - FACT_WAVEBANK_SEGIDX_ENTRYMETADATA, - FACT_WAVEBANK_SEGIDX_SEEKTABLES, - FACT_WAVEBANK_SEGIDX_ENTRYNAMES, - FACT_WAVEBANK_SEGIDX_ENTRYWAVEDATA, - FACT_WAVEBANK_SEGIDX_COUNT - } - - /* Structures */ - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct FACTRendererDetails - { - public fixed short rendererID[0xFF]; // Win32 wchar_t - public fixed short displayName[0xFF]; // Win32 wchar_t - public int defaultDevice; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTOverlapped - { - public IntPtr Internal; /* ULONG_PTR */ - public IntPtr InternalHigh; /* ULONG_PTR */ - public uint Offset; /* FIXME: union! */ - public uint OffsetHigh; /* FIXME: union! */ - public IntPtr hEvent; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTFileIOCallbacks - { - public IntPtr readFileCallback; /* FACTReadCallback */ - public IntPtr getOverlappedResultCallback; /* FACTGetOverlappedResultCallback */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTRuntimeParameters - { - public uint lookAheadTime; - public IntPtr pGlobalSettingsBuffer; - public uint globalSettingsBufferSize; - public uint globalSettingsFlags; - public uint globalSettingsAllocAttributes; - public FACTFileIOCallbacks fileIOCallbacks; - public IntPtr fnNotificationCallback; /* FACTNotificationCallback */ - public IntPtr pRendererID; /* Win32 wchar_t* */ - public IntPtr pXAudio2; - public IntPtr pMasteringVoice; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTStreamingParameters - { - public IntPtr file; - public uint offset; - public uint flags; - public ushort packetSize; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTWaveBankRegion - { - public uint dwOffset; - public uint dwLength; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTWaveBankSampleRegion - { - public uint dwStartSample; - public uint dwTotalSamples; - } - - /* TODO - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTWaveBankHeader - { - public uint dwSignature; - public uint dwVersion; - public uint dwHeaderVersion; - public fixed FACTWaveBankRegion Segments[FACT_WAVEBANK_SEGIDX_COUNT]; - } - */ - - [StructLayout(LayoutKind.Sequential, Pack = 1)] /* FIXME: union! */ - public struct FACTWaveBankMiniWaveFormat - { - /*struct - { - public uint wFormatTag : 2; - public uint nChannels : 3; - public uint nSamplesPerSec : 18; - public uint wBlockAlign : 8; - public uint wBitsPerSample : 1; - };*/ - public uint dwValue; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTWaveBankEntry - { - public uint dwFlagsAndDuration; /* FIXME: union! */ - public FACTWaveBankMiniWaveFormat Format; - public FACTWaveBankRegion PlayRegion; - public FACTWaveBankSampleRegion LoopRegion; - } - - /* TODO - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTWaveBankEntryCompact - { - public uint dwOffset : 21; - public uint dwLengthDeviation : 11; - } - */ - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public unsafe struct FACTWaveBankData - { - public uint dwFlags; - public uint dwEntryCount; - public fixed char szBankName[64]; - public uint dwEntryMetaDataElementSize; - public uint dwEntryNameElementSize; - public uint dwAlignment; - public FACTWaveBankMiniWaveFormat CompactFormat; - public ulong BuildTime; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct FACTWaveProperties - { - public fixed byte friendlyName[64]; - public FACTWaveBankMiniWaveFormat format; - public uint durationInSamples; - public FACTWaveBankSampleRegion loopRegion; - public int streaming; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTWaveInstanceProperties - { - public FACTWaveProperties properties; - public int backgroundMusic; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct FACTCueProperties - { - public fixed char friendlyName[0xFF]; - public int interactive; - public ushort iaVariableIndex; - public ushort numVariations; - public byte maxInstances; - public byte currentInstances; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTTrackProperties - { - public uint duration; - public ushort numVariations; - public byte numChannels; - public ushort waveVariation; - public byte loopCount; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTVariationProperties - { - public ushort index; - public byte weight; - public float iaVariableMin; - public float iaVariableMax; - public int linger; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTSoundProperties - { - public ushort category; - public byte priority; - public short pitch; - public float volume; - public ushort numTracks; - public FACTTrackProperties arrTrackProperties; /* FIXME: [1] */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTSoundVariationProperties - { - public FACTVariationProperties variationProperties; - public FACTSoundProperties soundProperties; - } - - [StructLayout(LayoutKind.Sequential)] - public struct FACTCueInstanceProperties - { - public uint allocAttributes; - public FACTCueProperties cueProperties; - public FACTSoundVariationProperties activeVariationProperties; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationDescription - { - public byte type; - public byte flags; - public IntPtr pSoundBank; /* FACTSoundBank* */ - public IntPtr pWaveBank; /* FACTWaveBank* */ - public IntPtr pCue; /* FACTCue* */ - public IntPtr pWave; /* FACTWave* */ - public ushort cueIndex; - public ushort waveIndex; - public IntPtr pvContext; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationCue - { - public ushort cueIndex; - public IntPtr pSoundBank; /* FACTSoundBank* */ - public IntPtr pCue; /* FACTCue* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationMarker - { - public ushort cueIndex; - public IntPtr pSoundBank; /* FACTSoundBank* */ - public IntPtr pCue; /* FACTCue* */ - public uint marker; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationSoundBank - { - public IntPtr pSoundBank; /* FACTSoundBank* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationWaveBank - { - public IntPtr pWaveBank; /* FACTWaveBank* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationVariable - { - public ushort cueIndex; - public IntPtr pSoundBank; /* FACTSoundBank* */ - public IntPtr pCue; /* FACTCue* */ - public ushort variableIndex; - public float variableValue; - public int local; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationGUI - { - public uint reserved; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotificationWave - { - public IntPtr pWaveBank; /* FACTWaveBank* */ - public ushort waveIndex; - public ushort cueIndex; - public IntPtr pSoundBank; /* FACTSoundBank* */ - public IntPtr pCue; /* FACTCue* */ - public IntPtr pWave; /* FACTWave* */ - } - - [StructLayout(LayoutKind.Explicit)] - public struct FACTNotification_union - { - [FieldOffset(0)] - public FACTNotificationCue cue; - [FieldOffset(0)] - public FACTNotificationMarker marker; - [FieldOffset(0)] - public FACTNotificationSoundBank soundBank; - [FieldOffset(0)] - public FACTNotificationWaveBank waveBank; - [FieldOffset(0)] - public FACTNotificationVariable variable; - [FieldOffset(0)] - public FACTNotificationGUI gui; - [FieldOffset(0)] - public FACTNotificationWave wave; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct FACTNotification - { - public byte type; - public int timeStamp; - public IntPtr pvContext; - public FACTNotification_union anon; - } - - /* Constants */ - - public const int FACT_CONTENT_VERSION = 46; - - public const uint FACT_FLAG_MANAGEDATA = 0x00000001; - - public const uint FACT_FLAG_STOP_RELEASE = 0x00000000; - public const uint FACT_FLAG_STOP_IMMEDIATE = 0x00000001; - - public const uint FACT_FLAG_BACKGROUND_MUSIC = 0x00000002; - public const uint FACT_FLAG_UNITS_MS = 0x00000004; - public const uint FACT_FLAG_UNITS_SAMPLES = 0x00000008; - - public const uint FACT_STATE_CREATED = 0x00000001; - public const uint FACT_STATE_PREPARING = 0x00000002; - public const uint FACT_STATE_PREPARED = 0x00000004; - public const uint FACT_STATE_PLAYING = 0x00000008; - public const uint FACT_STATE_STOPPING = 0x00000010; - public const uint FACT_STATE_STOPPED = 0x00000020; - public const uint FACT_STATE_PAUSED = 0x00000040; - public const uint FACT_STATE_INUSE = 0x00000080; - public const uint FACT_STATE_PREPAREFAILED = 0x80000000; - - public const short FACTPITCH_MIN = -1200; - public const short FACTPITCH_MAX = 1200; - public const short FACTPITCH_MIN_TOTAL = -2400; - public const short FACTPITCH_MAX_TOTAL = 2400; - - public const float FACTVOLUME_MIN = 0.0f; - public const float FACTVOLUME_MAX = 16777216.0f; - - public const ushort FACTINDEX_INVALID = 0xFFFF; - public const ushort FACTVARIABLEINDEX_INVALID = 0xFFFF; - public const ushort FACTCATEGORY_INVALID = 0xFFFF; - - public const uint FACT_ENGINE_LOOKAHEAD_DEFAULT = 250; - - public const byte FACTNOTIFICATIONTYPE_CUEPREPARED = 1; - public const byte FACTNOTIFICATIONTYPE_CUEPLAY = 2; - public const byte FACTNOTIFICATIONTYPE_CUESTOP = 3; - public const byte FACTNOTIFICATIONTYPE_CUEDESTROYED = 4; - public const byte FACTNOTIFICATIONTYPE_MARKER = 5; - public const byte FACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED = 6; - public const byte FACTNOTIFICATIONTYPE_WAVEBANKDESTROYED = 7; - public const byte FACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED = 8; - public const byte FACTNOTIFICATIONTYPE_GLOBALVARIABLECHANGED = 9; - public const byte FACTNOTIFICATIONTYPE_GUICONNECTED = 10; - public const byte FACTNOTIFICATIONTYPE_GUIDISCONNECTED = 11; - public const byte FACTNOTIFICATIONTYPE_WAVEPREPARED = 12; - public const byte FACTNOTIFICATIONTYPE_WAVEPLAY = 13; - public const byte FACTNOTIFICATIONTYPE_WAVESTOP = 14; - public const byte FACTNOTIFICATIONTYPE_WAVELOOPED = 15; - public const byte FACTNOTIFICATIONTYPE_WAVEDESTROYED = 16; - public const byte FACTNOTIFICATIONTYPE_WAVEBANKPREPARED = 17; - public const byte FACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT = 18; - - public const byte FACT_FLAG_NOTIFICATION_PERSIST = 0x01; - - public const uint FACT_WAVEBANK_TYPE_BUFFER = 0x00000000; - public const uint FACT_WAVEBANK_TYPE_STREAMING = 0x00000001; - public const uint FACT_WAVEBANK_TYPE_MASK = 0x00000001; - - public const uint FACT_WAVEBANK_FLAGS_ENTRYNAMES = 0x00010000; - public const uint FACT_WAVEBANK_FLAGS_COMPACT = 0x00020000; - public const uint FACT_WAVEBANK_FLAGS_SYNC_DISABLED = 0x00040000; - public const uint FACT_WAVEBANK_FLAGS_SEEKTABLES = 0x00080000; - public const uint FACT_WAVEBANK_FLAGS_MASK = 0x000F0000; - - /* AudioEngine Interface */ - - /* FIXME: Do we want to actually reproduce the COM stuff or what...? -flibit */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCreateEngine( - uint dwCreationFlags, - out IntPtr ppEngine /* FACTAudioEngine** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_AddRef( - IntPtr pEngine /* FACTAudioEngine* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_Release( - IntPtr pEngine /* FACTAudioEngine* */ - ); - - /* FIXME: QueryInterface? Or just ignore COM garbage... -flibit */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_GetRendererCount( - IntPtr pEngine, /* FACTAudioEngine* */ - out ushort pnRendererCount - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_GetRendererDetails( - IntPtr pEngine, /* FACTAudioEngine* */ - ushort nRendererIndex, - out FACTRendererDetails pRendererDetails - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_GetFinalMixFormat( - IntPtr pEngine, /* FACTAudioEngine* */ - out FAudioWaveFormatExtensible pFinalMixFormat - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_Initialize( - IntPtr pEngine, /* FACTAudioEngine* */ - ref FACTRuntimeParameters pParams - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_ShutDown( - IntPtr pEngine /* FACTAudioEngine* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_DoWork( - IntPtr pEngine /* FACTAudioEngine* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_CreateSoundBank( - IntPtr pEngine, /* FACTAudioEngine* */ - IntPtr pvBuffer, - uint dwSize, - uint dwFlags, - uint dwAllocAttributes, - out IntPtr ppSoundBank /* FACTSoundBank** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_CreateInMemoryWaveBank( - IntPtr pEngine, /* FACTAudioEngine* */ - IntPtr pvBuffer, - uint dwSize, - uint dwFlags, - uint dwAllocAttributes, - out IntPtr ppWaveBank /* FACTWaveBank** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_CreateStreamingWaveBank( - IntPtr pEngine, /* FACTAudioEngine* */ - ref FACTStreamingParameters pParms, - out IntPtr ppWaveBank /* FACTWaveBank** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe uint FACTAudioEngine_PrepareWave( - IntPtr pEngine, /* FACTAudioEngine* */ - uint dwFlags, - byte* szWavePath, - uint wStreamingPacketSize, - uint dwAlignment, - uint dwPlayOffset, - byte nLoopCount, - out IntPtr ppWave /* FACTWave** */ - ); - public static unsafe uint FACTAudioEngine_PrepareWave( - IntPtr pEngine, /* FACTAudioEngine* */ - uint dwFlags, - string szWavePath, - uint wStreamingPacketSize, - uint dwAlignment, - uint dwPlayOffset, - byte nLoopCount, - out IntPtr ppWave /* FACTWave** */ - ) { - byte* utf8WavePath = Utf8Encode(szWavePath); - uint result = FACTAudioEngine_PrepareWave( - pEngine, - dwFlags, - utf8WavePath, - wStreamingPacketSize, - dwAlignment, - dwPlayOffset, - nLoopCount, - out ppWave - ); - Marshal.FreeHGlobal((IntPtr) utf8WavePath); - return result; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_PrepareInMemoryWave( - IntPtr pEngine, /* FACTAudioEngine* */ - uint dwFlags, - FACTWaveBankEntry entry, - uint[] pdwSeekTable, /* Optional! */ - byte[] pbWaveData, - uint dwPlayOffset, - byte nLoopCount, - out IntPtr ppWave /* FACTWave** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_PrepareStreamingWave( - IntPtr pEngine, /* FACTAudioEngine* */ - uint dwFlags, - FACTWaveBankEntry entry, - FACTStreamingParameters streamingParams, - uint dwAlignment, - uint[] pdwSeekTable, /* Optional! */ - byte[] pbWaveData, - uint dwPlayOffset, - byte nLoopCount, - out IntPtr ppWave /* FACTWave** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_RegisterNotification( - IntPtr pEngine, /* FACTAudioEngine* */ - ref FACTNotificationDescription pNotificationDescription - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_UnRegisterNotification( - IntPtr pEngine, /* FACTAudioEngine* */ - ref FACTNotificationDescription pNotificationDescription - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe ushort FACTAudioEngine_GetCategory( - IntPtr pEngine, /* FACTAudioEngine* */ - byte* szFriendlyName - ); - public static unsafe ushort FACTAudioEngine_GetCategory( - IntPtr pEngine, /* FACTAudioEngine* */ - string szFriendlyName - ) { - int utf8BufSize = Utf8Size(szFriendlyName); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return FACTAudioEngine_GetCategory( - pEngine, - Utf8Encode(szFriendlyName, utf8Buf, utf8BufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_Stop( - IntPtr pEngine, /* FACTAudioEngine* */ - ushort nCategory, - uint dwFlags - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_SetVolume( - IntPtr pEngine, /* FACTAudioEngine* */ - ushort nCategory, - float volume - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_Pause( - IntPtr pEngine, /* FACTAudioEngine* */ - ushort nCategory, - int fPause - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe ushort FACTAudioEngine_GetGlobalVariableIndex( - IntPtr pEngine, /* FACTAudioEngine* */ - byte* szFriendlyName - ); - public static unsafe ushort FACTAudioEngine_GetGlobalVariableIndex( - IntPtr pEngine, /* FACTAudioEngine* */ - string szFriendlyName - ) { - int utf8BufSize = Utf8Size(szFriendlyName); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return FACTAudioEngine_GetGlobalVariableIndex( - pEngine, - Utf8Encode(szFriendlyName, utf8Buf, utf8BufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_SetGlobalVariable( - IntPtr pEngine, /* FACTAudioEngine* */ - ushort nIndex, - float nValue - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTAudioEngine_GetGlobalVariable( - IntPtr pEngine, /* FACTAudioEngine* */ - ushort nIndex, - out float pnValue - ); - - /* SoundBank Interface */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe ushort FACTSoundBank_GetCueIndex( - IntPtr pSoundBank, /* FACTSoundBank* */ - byte* szFriendlyName - ); - public static unsafe ushort FACTSoundBank_GetCueIndex( - IntPtr pSoundBank, /* FACTSoundBank* */ - string szFriendlyName - ) - { - int utf8BufSize = Utf8Size(szFriendlyName); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return FACTSoundBank_GetCueIndex( - pSoundBank, - Utf8Encode(szFriendlyName, utf8Buf, utf8BufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_GetNumCues( - IntPtr pSoundBank, /* FACTSoundBank* */ - out ushort pnNumCues - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_GetCueProperties( - IntPtr pSoundBank, /* FACTSoundBank* */ - ushort nCueIndex, - out FACTCueProperties pProperties - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_Prepare( - IntPtr pSoundBank, /* FACTSoundBank* */ - ushort nCueIndex, - uint dwFlags, - int timeOffset, - out IntPtr ppCue /* FACTCue** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_Play( - IntPtr pSoundBank, /* FACTSoundBank* */ - ushort nCueIndex, - uint dwFlags, - int timeOffset, - out IntPtr ppCue /* FACTCue** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_Play( - IntPtr pSoundBank, /* FACTSoundBank* */ - ushort nCueIndex, - uint dwFlags, - int timeOffset, - IntPtr ppCue /* Pass IntPtr.Zero! */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_Play3D( - IntPtr pSoundBank, /* FACTSoundBank* */ - ushort nCueIndex, - uint dwFlags, - int timeOffset, - ref F3DAUDIO_DSP_SETTINGS pDSPSettings, - IntPtr ppCue /* Pass IntPtr.Zero! */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_Stop( - IntPtr pSoundBank, /* FACTSoundBank* */ - ushort nCueIndex, - uint dwFlags - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_Destroy( - IntPtr pSoundBank /* FACTSoundBank* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTSoundBank_GetState( - IntPtr pSoundBank, /* FACTSoundBank* */ - out uint pdwState - ); - - /* WaveBank Interface */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWaveBank_Destroy( - IntPtr pWaveBank /* FACTWaveBank* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWaveBank_GetState( - IntPtr pWaveBank, /* FACTWaveBank* */ - out uint pdwState - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWaveBank_GetNumWaves( - IntPtr pWaveBank, /* FACTWaveBank* */ - out ushort pnNumWaves - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe ushort FACTWaveBank_GetWaveIndex( - IntPtr pWaveBank, /* FACTWaveBank* */ - byte* szFriendlyName - ); - public static unsafe ushort FACTWaveBank_GetWaveIndex( - IntPtr pWaveBank, /* FACTWaveBank* */ - string szFriendlyName - ) { - int utf8BufSize = Utf8Size(szFriendlyName); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return FACTWaveBank_GetWaveIndex( - pWaveBank, - Utf8Encode(szFriendlyName, utf8Buf, utf8BufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWaveBank_GetWaveProperties( - IntPtr pWaveBank, /* FACTWaveBank* */ - ushort nWaveIndex, - out FACTWaveProperties pWaveProperties - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWaveBank_Prepare( - IntPtr pWaveBank, /* FACTWaveBank* */ - ushort nWaveIndex, - uint dwFlags, - uint dwPlayOffset, - byte nLoopCount, - out IntPtr ppWave /* FACTWave** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWaveBank_Play( - IntPtr pWaveBank, /* FACTWaveBank* */ - ushort nWaveIndex, - uint dwFlags, - uint dwPlayOffset, - byte nLoopCount, - out IntPtr ppWave /* FACTWave** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWaveBank_Stop( - IntPtr pWaveBank, /* FACTWaveBank* */ - ushort nWaveIndex, - uint dwFlags - ); - - /* Wave Interface */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_Destroy( - IntPtr pWave /* FACTWave* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_Play( - IntPtr pWave /* FACTWave* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_Stop( - IntPtr pWave, /* FACTWave* */ - uint dwFlags - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_Pause( - IntPtr pWave, /* FACTWave* */ - int fPause - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_GetState( - IntPtr pWave, /* FACTWave* */ - out uint pdwState - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_SetPitch( - IntPtr pWave, /* FACTWave* */ - short pitch - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_SetVolume( - IntPtr pWave, /* FACTWave* */ - float volume - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_SetMatrixCoefficients( - IntPtr pWave, /* FACTWave* */ - uint uSrcChannelCount, - uint uDstChannelCount, - float[] pMatrixCoefficients - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTWave_GetProperties( - IntPtr pWave, /* FACTWave* */ - out FACTWaveInstanceProperties pProperties - ); - - /* Cue Interface */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_Destroy( - IntPtr pCue /* FACTCue* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_Play( - IntPtr pCue /* FACTCue* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_Stop( - IntPtr pCue, /* FACTCue* */ - uint dwFlags - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_GetState( - IntPtr pCue, /* FACTCue* */ - out uint pdwState - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_SetMatrixCoefficients( - IntPtr pCue, /* FACTCue* */ - uint uSrcChannelCount, - uint uDstChannelCount, - float[] pMatrixCoefficients - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe ushort FACTCue_GetVariableIndex( - IntPtr pCue, /* FACTCue* */ - byte* szFriendlyName - ); - public static unsafe ushort FACTCue_GetVariableIndex( - IntPtr pCue, /* FACTCue* */ - string szFriendlyName - ) { - int utf8BufSize = Utf8Size(szFriendlyName); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return FACTCue_GetVariableIndex( - pCue, - Utf8Encode(szFriendlyName, utf8Buf, utf8BufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_SetVariable( - IntPtr pCue, /* FACTCue* */ - ushort nIndex, - float nValue - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_GetVariable( - IntPtr pCue, /* FACTCue* */ - ushort nIndex, - out float nValue - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_Pause( - IntPtr pCue, /* FACTCue* */ - int fPause - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_GetProperties( - IntPtr pCue, /* FACTCue* */ - out IntPtr ppProperties /* FACTCueInstanceProperties** */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_SetOutputVoices( - IntPtr pCue, /* FACTCue* */ - IntPtr pSendList /* Optional FAudioVoiceSends* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACTCue_SetOutputVoiceMatrix( - IntPtr pCue, /* FACTCue* */ - IntPtr pDestinationVoice, /* Optional FAudioVoice* */ - uint SourceChannels, - uint DestinationChannels, - float[] pLevelMatrix /* SourceChannels * DestinationChannels */ - ); - - #endregion - - #region F3DAudio API - - /* Constants */ - - public const uint SPEAKER_FRONT_LEFT = 0x00000001; - public const uint SPEAKER_FRONT_RIGHT = 0x00000002; - public const uint SPEAKER_FRONT_CENTER = 0x00000004; - public const uint SPEAKER_LOW_FREQUENCY = 0x00000008; - public const uint SPEAKER_BACK_LEFT = 0x00000010; - public const uint SPEAKER_BACK_RIGHT = 0x00000020; - public const uint SPEAKER_FRONT_LEFT_OF_CENTER = 0x00000040; - public const uint SPEAKER_FRONT_RIGHT_OF_CENTER = 0x00000080; - public const uint SPEAKER_BACK_CENTER = 0x00000100; - public const uint SPEAKER_SIDE_LEFT = 0x00000200; - public const uint SPEAKER_SIDE_RIGHT = 0x00000400; - public const uint SPEAKER_TOP_CENTER = 0x00000800; - public const uint SPEAKER_TOP_FRONT_LEFT = 0x00001000; - public const uint SPEAKER_TOP_FRONT_CENTER = 0x00002000; - public const uint SPEAKER_TOP_FRONT_RIGHT = 0x00004000; - public const uint SPEAKER_TOP_BACK_LEFT = 0x00008000; - public const uint SPEAKER_TOP_BACK_CENTER = 0x00010000; - public const uint SPEAKER_TOP_BACK_RIGHT = 0x00020000; - - public const uint SPEAKER_MONO = SPEAKER_FRONT_CENTER; - public const uint SPEAKER_STEREO = (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT); - public const uint SPEAKER_2POINT1 = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_LOW_FREQUENCY ); - public const uint SPEAKER_SURROUND = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_FRONT_CENTER | - SPEAKER_BACK_CENTER ); - public const uint SPEAKER_QUAD = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT ); - public const uint SPEAKER_4POINT1 = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_LOW_FREQUENCY | - SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT ); - public const uint SPEAKER_5POINT1 = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_FRONT_CENTER | - SPEAKER_LOW_FREQUENCY | - SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT ); - public const uint SPEAKER_7POINT1 = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_FRONT_CENTER | - SPEAKER_LOW_FREQUENCY | - SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT | - SPEAKER_FRONT_LEFT_OF_CENTER | - SPEAKER_FRONT_RIGHT_OF_CENTER ); - public const uint SPEAKER_5POINT1_SURROUND = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_FRONT_CENTER | - SPEAKER_LOW_FREQUENCY | - SPEAKER_SIDE_LEFT | - SPEAKER_SIDE_RIGHT ); - public const uint SPEAKER_7POINT1_SURROUND = - ( SPEAKER_FRONT_LEFT | - SPEAKER_FRONT_RIGHT | - SPEAKER_FRONT_CENTER | - SPEAKER_LOW_FREQUENCY | - SPEAKER_BACK_LEFT | - SPEAKER_BACK_RIGHT | - SPEAKER_SIDE_LEFT | - SPEAKER_SIDE_RIGHT ); - - /* FIXME: Hmmmm */ - public const uint SPEAKER_XBOX = SPEAKER_5POINT1; - - public const float F3DAUDIO_PI = 3.141592654f; - public const float F3DAUDIO_2PI = 6.283185307f; - - public const uint F3DAUDIO_CALCULATE_MATRIX = 0x00000001; - public const uint F3DAUDIO_CALCULATE_DELAY = 0x00000002; - public const uint F3DAUDIO_CALCULATE_LPF_DIRECT = 0x00000004; - public const uint F3DAUDIO_CALCULATE_LPF_REVERB = 0x00000008; - public const uint F3DAUDIO_CALCULATE_REVERB = 0x00000010; - public const uint F3DAUDIO_CALCULATE_DOPPLER = 0x00000020; - public const uint F3DAUDIO_CALCULATE_EMITTER_ANGLE = 0x00000040; - public const uint F3DAUDIO_CALCULATE_ZEROCENTER = 0x00010000; - public const uint F3DAUDIO_CALCULATE_REDIRECT_TO_LFE = 0x00020000; - - /* Type Declarations */ - - /* FIXME: Everything about this type blows */ - public const int F3DAUDIO_HANDLE_BYTESIZE = 20; - // Alloc a byte[] of size F3DAUDIO_HANDLE_BYTESIZE! - - /* Structures */ - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct F3DAUDIO_VECTOR - { - public float x; - public float y; - public float z; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct F3DAUDIO_DISTANCE_CURVE_POINT - { - public float Distance; - public float DSPSetting; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct F3DAUDIO_DISTANCE_CURVE - { - IntPtr pPoints; /* F3DAUDIO_DISTANCE_CURVE_POINT* */ - public uint PointCount; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct F3DAUDIO_CONE - { - public float InnerAngle; - public float OuterAngle; - public float InnerVolume; - public float OuterVolume; - public float InnerLPF; - public float OuterLPF; - public float InnerReverb; - public float OuterReverb; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct F3DAUDIO_LISTENER - { - public F3DAUDIO_VECTOR OrientFront; - public F3DAUDIO_VECTOR OrientTop; - public F3DAUDIO_VECTOR Position; - public F3DAUDIO_VECTOR Velocity; - public IntPtr pCone; /* F3DAUDIO_CONE* */ - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct F3DAUDIO_EMITTER - { - public IntPtr pCone; /* F3DAUDIO_CONE* */ - public F3DAUDIO_VECTOR OrientFront; - public F3DAUDIO_VECTOR OrientTop; - public F3DAUDIO_VECTOR Position; - public F3DAUDIO_VECTOR Velocity; - public float InnerRadius; - public float InnerRadiusAngle; - public uint ChannelCount; - public float ChannelRadius; - public IntPtr pChannelAzimuths; /* float */ - public IntPtr pVolumeCurve; - public IntPtr pLFECurve; /* F3DAUDIO_DISTANCE_CURVE* */ - public IntPtr pLPFDirectCurve; /* F3DAUDIO_DISTANCE_CURVE* */ - public IntPtr pLPFReverbCurve; /* F3DAUDIO_DISTANCE_CURVE* */ - public IntPtr pReverbCurve; /* F3DAUDIO_DISTANCE_CURVE* */ - public float CurveDistanceScaler; - public float DopplerScaler; - } - - [StructLayout(LayoutKind.Sequential, Pack = 1)] - public struct F3DAUDIO_DSP_SETTINGS - { - public IntPtr pMatrixCoefficients; /* float* */ - public IntPtr pDelayTimes; /* float* */ - public uint SrcChannelCount; - public uint DstChannelCount; - public float LPFDirectCoefficient; - public float LPFReverbCoefficient; - public float ReverbLevel; - public float DopplerFactor; - public float EmitterToListenerAngle; - public float EmitterToListenerDistance; - public float EmitterVelocityComponent; - public float ListenerVelocityComponent; - } - - /* Functions */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void F3DAudioInitialize( - uint SpeakerChannelMask, - float SpeedOfSound, - byte[] Instance // F3DAUDIO_HANDLE - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint F3DAudioInitialize8( - uint SpeakerChannelMask, - float SpeedOfSound, - byte[] Instance // F3DAUDIO_HANDLE - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void F3DAudioCalculate( - byte[] Instance, // F3DAUDIO_HANDLE - ref F3DAUDIO_LISTENER pListener, - ref F3DAUDIO_EMITTER pEmitter, - uint Flags, - ref F3DAUDIO_DSP_SETTINGS pDSPSettings - ); - - #endregion - - #region FACT3D API - - /* Constants */ - - public const float LEFT_AZIMUTH = (3.0f * F3DAUDIO_PI / 2.0f); - public const float RIGHT_AZIMUTH = (F3DAUDIO_PI / 2.0f); - public const float FRONT_LEFT_AZIMUTH = (7.0f * F3DAUDIO_PI / 4.0f); - public const float FRONT_RIGHT_AZIMUTH = (F3DAUDIO_PI / 4.0f); - public const float FRONT_CENTER_AZIMUTH = 0.0f; - public const float LOW_FREQUENCY_AZIMUTH = F3DAUDIO_2PI; - public const float BACK_LEFT_AZIMUTH = (5.0f * F3DAUDIO_PI / 4.0f); - public const float BACK_RIGHT_AZIMUTH = (3.0f * F3DAUDIO_PI / 4.0f); - public const float BACK_CENTER_AZIMUTH = F3DAUDIO_PI; - public const float FRONT_LEFT_OF_CENTER_AZIMUTH = (15.0f * F3DAUDIO_PI / 8.0f); - public const float FRONT_RIGHT_OF_CENTER_AZIMUTH = (F3DAUDIO_PI / 8.0f); - - public static readonly float[] aStereoLayout = new float[] - { - LEFT_AZIMUTH, - RIGHT_AZIMUTH - }; - public static readonly float[] a2Point1Layout = new float[] - { - LEFT_AZIMUTH, - RIGHT_AZIMUTH, - LOW_FREQUENCY_AZIMUTH - }; - public static readonly float[] aQuadLayout = new float[] - { - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH - }; - public static readonly float[] a4Point1Layout = new float[] - { - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - LOW_FREQUENCY_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH - }; - public static readonly float[] a5Point1Layout = new float[] - { - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - FRONT_CENTER_AZIMUTH, - LOW_FREQUENCY_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH - }; - public static readonly float[] a7Point1Layout = new float[] - { - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - FRONT_CENTER_AZIMUTH, - LOW_FREQUENCY_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH, - LEFT_AZIMUTH, - RIGHT_AZIMUTH - }; - - /* Functions */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACT3DInitialize( - IntPtr pEngine, /* FACTAudioEngine* */ - byte[] D3FInstance // F3DAUDIO_HANDLE - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACT3DCalculate( - byte[] F3DInstance, // F3DAUDIO_HANDLE - ref F3DAUDIO_LISTENER pListener, - ref F3DAUDIO_EMITTER pEmitter, - ref F3DAUDIO_DSP_SETTINGS pDSPSettings - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint FACT3DApply( - ref F3DAUDIO_DSP_SETTINGS pDSPSettings, - IntPtr pCue /* FACTCue* */ - ); - - #endregion - - #region XNA Song API - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_SongInit(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_SongQuit(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe float XNA_PlaySong(byte* name); - public static unsafe float XNA_PlaySong(string name) - { - int utf8BufSize = Utf8Size(name); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return XNA_PlaySong(Utf8Encode(name, utf8Buf, utf8BufSize)); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_PauseSong(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_ResumeSong(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_StopSong(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_SetSongVolume(float volume); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint XNA_GetSongEnded(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_EnableVisualization(uint enable); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint XNA_VisualizationEnabled(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void XNA_GetSongVisualizationData( - float[] frequencies, - float[] samples, - uint count - ); - - #endregion - - #region FAudio I/O API - - /* Delegates */ - - /* IntPtr refers to a size_t */ - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate IntPtr FAudio_readfunc( - IntPtr data, /* void* */ - IntPtr dst, /* void* */ - IntPtr size, /* size_t */ - IntPtr count /* size_t */ - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate long FAudio_seekfunc( - IntPtr data, /* void* */ - long offset, - int whence - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int FAudio_closefunc(IntPtr data); - - /* Structures */ - - [StructLayout(LayoutKind.Sequential)] - public struct FAudioIOStream - { - public IntPtr data; - public IntPtr read; /* FAudio_readfunc */ - public IntPtr seek; /* FAudio_seekfunc */ - public IntPtr close; /* FAudio_closefunc */ - public IntPtr ioLock; /* lock, lolC# */ - } - - /* Functions */ - - /* IntPtr refers to an FAudioIOStream* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr FAudio_fopen(byte* path); - public static unsafe IntPtr FAudio_fopen(string path) - { - int utf8BufSize = Utf8Size(path); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return FAudio_fopen(Utf8Encode(path, utf8Buf, utf8BufSize)); - } - - /* IntPtr refers to an FAudioIOStream* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr FAudio_memopen(IntPtr mem, int len); - - /* IntPtr refers to a uint8_t* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr FAudio_memptr(IntPtr io, IntPtr offset); - - /* io refers to an FAudioIOStream* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void FAudio_close(IntPtr io); - - #endregion - - #region stb_vorbis - - /* Because why not? */ - - [StructLayout(LayoutKind.Sequential)] - public struct stb_vorbis_alloc - { - public IntPtr alloc_buffer; - public int alloc_buffer_length_in_bytes; - } - - [StructLayout(LayoutKind.Sequential)] - public struct stb_vorbis_info - { - public uint sample_rate; - public int channels; - - public uint setup_memory_required; - public uint setup_temp_memory_required; - public uint temp_memory_required; - - public int max_frame_size; - } - - [StructLayout(LayoutKind.Sequential)] - public struct stb_vorbis_comment - { - public IntPtr vendor; - - public int comment_list_length; - public IntPtr comment_list; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern stb_vorbis_info stb_vorbis_get_info(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern stb_vorbis_comment stb_vorbis_get_comment(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_get_error(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void stb_vorbis_close(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_get_sample_offset(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint stb_vorbis_get_file_offset(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr stb_vorbis_open_memory( - IntPtr data, - int len, - out int error, - IntPtr alloc_buffer /* stb_vorbis_alloc* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr stb_vorbis_open_filename( - byte* filename, - out int error, - IntPtr alloc_buffer /* stb_vorbis_alloc* */ - ); - public static unsafe IntPtr stb_vorbis_open_filename( - string filename, - out int error, - IntPtr alloc_buffer /* stb_vorbis_alloc* */ - ) { - int utf8BufSize = Utf8Size(filename); - byte* utf8Buf = stackalloc byte[utf8BufSize]; - return stb_vorbis_open_filename( - Utf8Encode(filename, utf8Buf, utf8BufSize), - out error, - alloc_buffer - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr stb_vorbis_open_file( - IntPtr f, /* FAudioIOStream* */ - int close_handle_on_close, - out int error, - IntPtr alloc_buffer /* stb_vorbis_alloc* */ - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr stb_vorbis_open_file_section( - IntPtr f, /* FAudioIOStream* */ - int close_handle_on_close, - out int error, - IntPtr alloc_buffer, /* stb_vorbis_alloc* */ - uint len - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_seek_frame(IntPtr f, uint sample_number); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_seek(IntPtr f, uint sample_number); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_seek_start(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint stb_vorbis_stream_length_in_samples(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern float stb_vorbis_stream_length_in_seconds(IntPtr f); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_get_frame_float( - IntPtr f, - out int channels, - ref float[][] output - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_get_frame_float( - IntPtr f, - IntPtr channels, /* IntPtr.Zero */ - ref float[][] output - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_get_samples_float_interleaved( - IntPtr f, - int channels, - float[] buffer, - int num_floats - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_get_samples_float_interleaved( - IntPtr f, - int channels, - IntPtr buffer, - int num_floats - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stb_vorbis_get_samples_float( - IntPtr f, - int channels, - float[][] buffer, - int num_samples - ); - - #endregion -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/LICENSE b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/LICENSE deleted file mode 100644 index 4becec18..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -/* FAudio# - C# Wrapper for FAudio - * - * Copyright (c) 2018-2022 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/Makefile b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/Makefile deleted file mode 100644 index 2194d4df..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/Makefile +++ /dev/null @@ -1,10 +0,0 @@ -# Makefile for FAudio# -# Written by Ethan "flibitijibibo" Lee - -build: clean - mkdir bin - cp app.config bin/FAudio-CS.dll.config - mcs /unsafe -debug -out:bin/FAudio-CS.dll -target:library FAudio.cs - -clean: - rm -rf bin diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/README b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/README deleted file mode 100644 index ebead838..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/README +++ /dev/null @@ -1,11 +0,0 @@ -This is FAudio#, a C# wrapper for FAudio, an XAudio reimplementation for FNA. - -Project Website: http://fna-xna.github.io/ - -License -------- -FAudio# is released under the zlib license. See LICENSE for details. - -Building FAudio# ----------------- -Just type `make` in the root directory! diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/app.config b/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/app.config deleted file mode 100644 index a12ab103..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/csharp/app.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/COMConstructEXT.txt b/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/COMConstructEXT.txt deleted file mode 100644 index 09474295..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/COMConstructEXT.txt +++ /dev/null @@ -1,41 +0,0 @@ -COMConstructEXT - Entry point for improved compatibility with COM wrappers - -About ------ -This entry point is needed for scenarios when you need to create the FAudio -object, but are unable to provide the parameters that FAudioCreate asks for by -default. This is typical in COM wrappers where XAudio2 (<= 2.7) programs will -first construct the object (as requested by CoCreateInstance), then call -IXAudio2_Initialize with the 'Flags' and 'XAudio2Processor' parameters -afterward. - -Dependencies ------------- -This extension does not interact with any non-standard XAudio features. - -New Procedures and Functions ----------------------------- -FAUDIOAPI uint32_t FAudioCOMConstructEXT(FAudio **ppFAudio, uint8_t version); - -How to Use ----------- -Instead of initializing FAudio with the traditional method... - - FAudio *audio; - FAudioCreate(&audio, 0, FAUDIO_PROCESSOR_DEFAULT); - -... you construct and then initialize as two separate function calls: - - FAudio *audio; - FAudioCOMConstructEXT(&audio, FAUDIO_TARGET_VERSION); - FAudio_Initialize(audio, 0, FAUDIO_PROCESSOR_DEFAULT); - -FAQ: ----- -Q: Should we create similar functions for other XAudio subsystems (such as XACT, - XAPOFX, and XAudio2FX)? -A: No. While other objects in XAudio 2.7 (or lower) are initialized via COM on - Windows, XAudio2 has a unique situation where the 'XAudio2Create' macro calls - Initialize in addition to CoCreateInstance. All other creation macros simply - call CoCreateInstance with no further activity, so it is easy to support them - with the one exported 'Create' function. diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/CustomAllocatorEXT.txt b/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/CustomAllocatorEXT.txt deleted file mode 100644 index c05f60fa..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/CustomAllocatorEXT.txt +++ /dev/null @@ -1,125 +0,0 @@ -CustomAllocatorEXT - Allow using custom memory management functions with FAudio - -About ------ -These entry points are needed for scenarios where the application needs control -over the memory allocators used by FAudio. This is useful for programs that have -strict memory requirements, and is also useful for COM wrappers that need to use -the same memory allocator as Microsoft's XAudio2 runtime, for accuracy. - -This extension only supports using ONE and ONLY ONE set of custom callbacks. You -are NOT allowed to send different malloc/free/realloc functions to each object, -ALL objects must use the exact same callbacks. Any and all attempts to mix -callbacks will result in an unspecified program crash. - -Dependencies ------------- -This extension interacts with COMConstructEXT. - -New Types ---------- -typedef void* (FAUDIOCALL * FAudioMallocFunc)(size_t size); - -typedef void (FAUDIOCALL * FAudioFreeFunc)(void* ptr); - -typedef void* (FAUDIOCALL * FAudioReallocFunc)(void* ptr, size_t size); - -New Procedures and Functions ----------------------------- -FAUDIOAPI uint32_t FAudioCreateWithCustomAllocatorEXT( - FAudio **ppFAudio, - uint32_t Flags, - FAudioProcessor XAudio2Processor, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAUDIOAPI uint32_t FAudioCOMConstructWithCustomAllocatorEXT( - FAudio **ppFAudio, - uint8_t version, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAUDIOAPI uint32_t FAudioCreateVolumeMeterWithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAUDIOAPI uint32_t FAudioCreateReverbWithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAUDIOAPI uint32_t FAudioCreateReverb9WithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAPOAPI void CreateFAPOBaseWithCustomAllocatorEXT( - FAPOBase *fapo, - const FAPORegistrationProperties *pRegistrationProperties, - uint8_t *pParameterBlocks, - uint32_t uParameterBlockByteSize, - uint8_t fProducer, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAPOFXAPI uint32_t FAPOFX_CreateFXWithCustomAllocatorEXT( - const FAudioGUID *clsid, - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FACTAPI uint32_t FACTCreateEngineWithCustomAllocatorEXT( - uint32_t dwCreationFlags, - FACTAudioEngine **ppEngine, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -How to Use ----------- -Initialization of FAudio objects should be the same, only you send three more -parameters when initializing: A malloc, free, and realloc function: - - extern void* MyMalloc(size_t size); - extern void MyFree(void* ptr); - extern void MyRealloc(void* ptr, size_t size); - FAudio *audio; - FAudioCreateWithCustomAllocatorEXT( - &audio, - 0, - FAUDIO_PROCESSOR_DEFAULT, - MyMalloc, - MyFree, - MyRealloc - ); - -If you use a custom allocator with one object, you MUST send the same allocators -to ALL new objects that support custom allocators. - -FAQ: ----- -Q: Should we allow custom allocators to be mixed between objects? -A: No. While each object asks for callbacks separately, XAudio2 objects all - closely interact with each other, including allocating/freeing memory from - one another. Your program WILL crash if allocator functions are mismatched! diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/EngineProcedureEXT.txt b/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/EngineProcedureEXT.txt deleted file mode 100644 index cafeaa82..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/extensions/EngineProcedureEXT.txt +++ /dev/null @@ -1,44 +0,0 @@ -EngineProcedureEXT - Allow clients to wrap engine procedure - -About ------ -Clients may be interested in having more control over the engine procedure. In -particular, they may want to modify or access the generated output before -passing it to the underlying platform. In other cases, clients like Wine may -have specific thread requirements that the platform's audio library cannot -satisfy. This extension allows clients to "wrap" the engine procedure with -arbitrary code. - -Dependencies ------------- -This extension does not interact with any non-standard XAudio features. - -New Types ---------- -typedef void (FAUDIOCALL *FAudioEngineCallEXT)(FAudio *audio, float *output); - -typedef void (FAUDIOCALL *FAudioEngineProcedureEXT)( - FAudioEngineCallEXT defaultEngineProc, - FAudio *audio, - float *output, - void *user -); - -New Procedures and Functions ----------------------------- -FAUDIOAPI void FAudio_SetEngineProcedureEXT( - FAudio *audio, - FAudioEngineProcedureEXT clientEngineProc, - void *user -); - -How to Use ----------- -At any time, the client may request that FAudio call the given -clientEngineProc function instead of FAudio's default engine procedure -beginning with the next engine tick. It is valid to call -FAudio_SetEngineProcedureEXT before creating the mastering voice. - -clientEngineProc will be invoked with a pointer to FAudio's default engine -procedure, allowing the client to execute the procedure on a specific thread, -or operate on the retrieved audio before returning control back to FAudio. diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/F3DAudio.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/F3DAudio.h deleted file mode 100644 index 9d0fc479..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/F3DAudio.h +++ /dev/null @@ -1,262 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* This file has no documentation since the MSDN docs are still perfectly fine: - * https://docs.microsoft.com/en-us/windows/desktop/api/x3daudio/ - */ - -#ifndef F3DAUDIO_H -#define F3DAUDIO_H - -#ifdef _WIN32 -#define F3DAUDIOAPI __declspec(dllexport) -#else -#define F3DAUDIOAPI -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Constants */ - -#ifndef _SPEAKER_POSITIONS_ -#define SPEAKER_FRONT_LEFT 0x00000001 -#define SPEAKER_FRONT_RIGHT 0x00000002 -#define SPEAKER_FRONT_CENTER 0x00000004 -#define SPEAKER_LOW_FREQUENCY 0x00000008 -#define SPEAKER_BACK_LEFT 0x00000010 -#define SPEAKER_BACK_RIGHT 0x00000020 -#define SPEAKER_FRONT_LEFT_OF_CENTER 0x00000040 -#define SPEAKER_FRONT_RIGHT_OF_CENTER 0x00000080 -#define SPEAKER_BACK_CENTER 0x00000100 -#define SPEAKER_SIDE_LEFT 0x00000200 -#define SPEAKER_SIDE_RIGHT 0x00000400 -#define SPEAKER_TOP_CENTER 0x00000800 -#define SPEAKER_TOP_FRONT_LEFT 0x00001000 -#define SPEAKER_TOP_FRONT_CENTER 0x00002000 -#define SPEAKER_TOP_FRONT_RIGHT 0x00004000 -#define SPEAKER_TOP_BACK_LEFT 0x00008000 -#define SPEAKER_TOP_BACK_CENTER 0x00010000 -#define SPEAKER_TOP_BACK_RIGHT 0x00020000 -#define _SPEAKER_POSITIONS_ -#endif - -#ifndef SPEAKER_MONO -#define SPEAKER_MONO SPEAKER_FRONT_CENTER -#define SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT) -#define SPEAKER_2POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_LOW_FREQUENCY ) -#define SPEAKER_SURROUND \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_BACK_CENTER ) -#define SPEAKER_QUAD \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT ) -#define SPEAKER_4POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT ) -#define SPEAKER_5POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT ) -#define SPEAKER_7POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT | \ - SPEAKER_FRONT_LEFT_OF_CENTER | \ - SPEAKER_FRONT_RIGHT_OF_CENTER ) -#define SPEAKER_5POINT1_SURROUND \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_SIDE_LEFT | \ - SPEAKER_SIDE_RIGHT ) -#define SPEAKER_7POINT1_SURROUND \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT | \ - SPEAKER_SIDE_LEFT | \ - SPEAKER_SIDE_RIGHT ) -#define SPEAKER_XBOX SPEAKER_5POINT1 -#endif - -#define F3DAUDIO_PI 3.141592654f -#define F3DAUDIO_2PI 6.283185307f - -#define F3DAUDIO_CALCULATE_MATRIX 0x00000001 -#define F3DAUDIO_CALCULATE_DELAY 0x00000002 -#define F3DAUDIO_CALCULATE_LPF_DIRECT 0x00000004 -#define F3DAUDIO_CALCULATE_LPF_REVERB 0x00000008 -#define F3DAUDIO_CALCULATE_REVERB 0x00000010 -#define F3DAUDIO_CALCULATE_DOPPLER 0x00000020 -#define F3DAUDIO_CALCULATE_EMITTER_ANGLE 0x00000040 -#define F3DAUDIO_CALCULATE_ZEROCENTER 0x00010000 -#define F3DAUDIO_CALCULATE_REDIRECT_TO_LFE 0x00020000 - -/* Type Declarations */ - -#define F3DAUDIO_HANDLE_BYTESIZE 20 -typedef uint8_t F3DAUDIO_HANDLE[F3DAUDIO_HANDLE_BYTESIZE]; - -/* Structures */ - -#pragma pack(push, 1) - -typedef struct F3DAUDIO_VECTOR -{ - float x; - float y; - float z; -} F3DAUDIO_VECTOR; - -typedef struct F3DAUDIO_DISTANCE_CURVE_POINT -{ - float Distance; - float DSPSetting; -} F3DAUDIO_DISTANCE_CURVE_POINT; - -typedef struct F3DAUDIO_DISTANCE_CURVE -{ - F3DAUDIO_DISTANCE_CURVE_POINT *pPoints; - uint32_t PointCount; -} F3DAUDIO_DISTANCE_CURVE; - -typedef struct F3DAUDIO_CONE -{ - float InnerAngle; - float OuterAngle; - float InnerVolume; - float OuterVolume; - float InnerLPF; - float OuterLPF; - float InnerReverb; - float OuterReverb; -} F3DAUDIO_CONE; - -typedef struct F3DAUDIO_LISTENER -{ - F3DAUDIO_VECTOR OrientFront; - F3DAUDIO_VECTOR OrientTop; - F3DAUDIO_VECTOR Position; - F3DAUDIO_VECTOR Velocity; - F3DAUDIO_CONE *pCone; -} F3DAUDIO_LISTENER; - -typedef struct F3DAUDIO_EMITTER -{ - F3DAUDIO_CONE *pCone; - F3DAUDIO_VECTOR OrientFront; - F3DAUDIO_VECTOR OrientTop; - F3DAUDIO_VECTOR Position; - F3DAUDIO_VECTOR Velocity; - float InnerRadius; - float InnerRadiusAngle; - uint32_t ChannelCount; - float ChannelRadius; - float *pChannelAzimuths; - F3DAUDIO_DISTANCE_CURVE *pVolumeCurve; - F3DAUDIO_DISTANCE_CURVE *pLFECurve; - F3DAUDIO_DISTANCE_CURVE *pLPFDirectCurve; - F3DAUDIO_DISTANCE_CURVE *pLPFReverbCurve; - F3DAUDIO_DISTANCE_CURVE *pReverbCurve; - float CurveDistanceScaler; - float DopplerScaler; -} F3DAUDIO_EMITTER; - -#ifndef F3DAUDIO_DSP_SETTINGS_DECL -#define F3DAUDIO_DSP_SETTINGS_DECL -typedef struct F3DAUDIO_DSP_SETTINGS F3DAUDIO_DSP_SETTINGS; -#endif /* F3DAUDIO_DSP_SETTINGS_DECL */ - -struct F3DAUDIO_DSP_SETTINGS -{ - float *pMatrixCoefficients; - float *pDelayTimes; - uint32_t SrcChannelCount; - uint32_t DstChannelCount; - float LPFDirectCoefficient; - float LPFReverbCoefficient; - float ReverbLevel; - float DopplerFactor; - float EmitterToListenerAngle; - float EmitterToListenerDistance; - float EmitterVelocityComponent; - float ListenerVelocityComponent; -}; - -#pragma pack(pop) - -/* Functions */ - -F3DAUDIOAPI void F3DAudioInitialize( - uint32_t SpeakerChannelMask, - float SpeedOfSound, - F3DAUDIO_HANDLE Instance -); - -F3DAUDIOAPI uint32_t F3DAudioInitialize8( - uint32_t SpeakerChannelMask, - float SpeedOfSound, - F3DAUDIO_HANDLE Instance -); - -F3DAUDIOAPI void F3DAudioCalculate( - const F3DAUDIO_HANDLE Instance, - const F3DAUDIO_LISTENER *pListener, - const F3DAUDIO_EMITTER *pEmitter, - uint32_t Flags, - F3DAUDIO_DSP_SETTINGS *pDSPSettings -); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* F3DAUDIO_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FACT.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FACT.h deleted file mode 100644 index d9fa53ca..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FACT.h +++ /dev/null @@ -1,814 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* This file has no documentation since you are expected to already know how - * XACT works if you are still using these APIs! - */ - -#ifndef FACT_H -#define FACT_H - -#include "FAudio.h" - -#define FACTAPI FAUDIOAPI -#ifdef _WIN32 -#define FACTCALL __stdcall -#else -#define FACTCALL -#endif - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Type Declarations */ - -typedef struct FACTAudioEngine FACTAudioEngine; -typedef struct FACTSoundBank FACTSoundBank; -typedef struct FACTWaveBank FACTWaveBank; -typedef struct FACTWave FACTWave; -typedef struct FACTCue FACTCue; -typedef struct FACTNotification FACTNotification; - -typedef struct FACTRendererDetails -{ - int16_t rendererID[0xFF]; /* Win32 wchar_t */ - int16_t displayName[0xFF]; /* Win32 wchar_t */ - int32_t defaultDevice; -} FACTRendererDetails; - -typedef struct FACTOverlapped -{ - void *Internal; /* ULONG_PTR */ - void *InternalHigh; /* ULONG_PTR */ - FAUDIONAMELESS union - { - FAUDIONAMELESS struct - { - uint32_t Offset; - uint32_t OffsetHigh; - }; - void *Pointer; - }; - void *hEvent; -} FACTOverlapped; - -typedef int32_t (FACTCALL * FACTReadFileCallback)( - void *hFile, - void *buffer, - uint32_t nNumberOfBytesToRead, - uint32_t *lpNumberOfBytesRead, - FACTOverlapped *lpOverlapped -); - -typedef int32_t (FACTCALL * FACTGetOverlappedResultCallback)( - void *hFile, - FACTOverlapped *lpOverlapped, - uint32_t *lpNumberOfBytesTransferred, - int32_t bWait -); - -typedef struct FACTFileIOCallbacks -{ - FACTReadFileCallback readFileCallback; - FACTGetOverlappedResultCallback getOverlappedResultCallback; -} FACTFileIOCallbacks; - -typedef void (FACTCALL * FACTNotificationCallback)( - const FACTNotification *pNotification -); - -/* FIXME: ABI bug! This should be pack(1) explicitly. Do not memcpy this! */ -typedef struct FACTRuntimeParameters -{ - uint32_t lookAheadTime; - void *pGlobalSettingsBuffer; - uint32_t globalSettingsBufferSize; - uint32_t globalSettingsFlags; - uint32_t globalSettingsAllocAttributes; - FACTFileIOCallbacks fileIOCallbacks; - FACTNotificationCallback fnNotificationCallback; - int16_t *pRendererID; /* Win32 wchar_t* */ - FAudio *pXAudio2; - FAudioMasteringVoice *pMasteringVoice; -} FACTRuntimeParameters; - -typedef struct FACTStreamingParameters -{ - void *file; - uint32_t offset; - uint32_t flags; - uint16_t packetSize; /* Measured in DVD sectors, or 2048 bytes */ -} FACTStreamingParameters; - -#define FACT_WAVEBANK_TYPE_BUFFER 0x00000000 -#define FACT_WAVEBANK_TYPE_STREAMING 0x00000001 -#define FACT_WAVEBANK_TYPE_MASK 0x00000001 - -#define FACT_WAVEBANK_FLAGS_ENTRYNAMES 0x00010000 -#define FACT_WAVEBANK_FLAGS_COMPACT 0x00020000 -#define FACT_WAVEBANK_FLAGS_SYNC_DISABLED 0x00040000 -#define FACT_WAVEBANK_FLAGS_SEEKTABLES 0x00080000 -#define FACT_WAVEBANK_FLAGS_MASK 0x000F0000 - -typedef enum FACTWaveBankSegIdx -{ - FACT_WAVEBANK_SEGIDX_BANKDATA = 0, - FACT_WAVEBANK_SEGIDX_ENTRYMETADATA, - FACT_WAVEBANK_SEGIDX_SEEKTABLES, - FACT_WAVEBANK_SEGIDX_ENTRYNAMES, - FACT_WAVEBANK_SEGIDX_ENTRYWAVEDATA, - FACT_WAVEBANK_SEGIDX_COUNT -} FACTWaveBankSegIdx; - -#pragma pack(push, 1) - -typedef struct FACTWaveBankRegion -{ - uint32_t dwOffset; - uint32_t dwLength; -} FACTWaveBankRegion; - -typedef struct FACTWaveBankSampleRegion -{ - uint32_t dwStartSample; - uint32_t dwTotalSamples; -} FACTWaveBankSampleRegion; - -typedef struct FACTWaveBankHeader -{ - uint32_t dwSignature; - uint32_t dwVersion; - uint32_t dwHeaderVersion; - FACTWaveBankRegion Segments[FACT_WAVEBANK_SEGIDX_COUNT]; -} FACTWaveBankHeader; - -typedef union FACTWaveBankMiniWaveFormat -{ - FAUDIONAMELESS struct - { - uint32_t wFormatTag : 2; - uint32_t nChannels : 3; - uint32_t nSamplesPerSec : 18; - uint32_t wBlockAlign : 8; - uint32_t wBitsPerSample : 1; - }; - uint32_t dwValue; -} FACTWaveBankMiniWaveFormat; - -typedef struct FACTWaveBankEntry -{ - FAUDIONAMELESS union - { - FAUDIONAMELESS struct - { - uint32_t dwFlags : 4; - uint32_t Duration : 28; - }; - uint32_t dwFlagsAndDuration; - }; - FACTWaveBankMiniWaveFormat Format; - FACTWaveBankRegion PlayRegion; - FACTWaveBankSampleRegion LoopRegion; -} FACTWaveBankEntry; - -typedef struct FACTWaveBankEntryCompact -{ - uint32_t dwOffset : 21; - uint32_t dwLengthDeviation : 11; -} FACTWaveBankEntryCompact; - -typedef struct FACTWaveBankData -{ - uint32_t dwFlags; - uint32_t dwEntryCount; - char szBankName[64]; - uint32_t dwEntryMetaDataElementSize; - uint32_t dwEntryNameElementSize; - uint32_t dwAlignment; - FACTWaveBankMiniWaveFormat CompactFormat; - uint64_t BuildTime; -} FACTWaveBankData; - -#pragma pack(pop) - -typedef struct FACTWaveProperties -{ - char friendlyName[64]; - FACTWaveBankMiniWaveFormat format; - uint32_t durationInSamples; - FACTWaveBankSampleRegion loopRegion; - int32_t streaming; -} FACTWaveProperties; - -typedef struct FACTWaveInstanceProperties -{ - FACTWaveProperties properties; - int32_t backgroundMusic; -} FACTWaveInstanceProperties; - -typedef struct FACTCueProperties -{ - char friendlyName[0xFF]; - int32_t interactive; - uint16_t iaVariableIndex; - uint16_t numVariations; - uint8_t maxInstances; - uint8_t currentInstances; -} FACTCueProperties; - -typedef struct FACTTrackProperties -{ - uint32_t duration; - uint16_t numVariations; - uint8_t numChannels; - uint16_t waveVariation; - uint8_t loopCount; -} FACTTrackProperties; - -typedef struct FACTVariationProperties -{ - uint16_t index; - uint8_t weight; - float iaVariableMin; - float iaVariableMax; - int32_t linger; -} FACTVariationProperties; - -typedef struct FACTSoundProperties -{ - uint16_t category; - uint8_t priority; - int16_t pitch; - float volume; - uint16_t numTracks; - FACTTrackProperties arrTrackProperties[1]; -} FACTSoundProperties; - -typedef struct FACTSoundVariationProperties -{ - FACTVariationProperties variationProperties; - FACTSoundProperties soundProperties; -} FACTSoundVariationProperties; - -typedef struct FACTCueInstanceProperties -{ - uint32_t allocAttributes; - FACTCueProperties cueProperties; - FACTSoundVariationProperties activeVariationProperties; -} FACTCueInstanceProperties; - -#pragma pack(push, 1) - -typedef struct FACTNotificationDescription -{ - uint8_t type; - uint8_t flags; - FACTSoundBank *pSoundBank; - FACTWaveBank *pWaveBank; - FACTCue *pCue; - FACTWave *pWave; - uint16_t cueIndex; - uint16_t waveIndex; - void* pvContext; -} FACTNotificationDescription; - -typedef struct FACTNotificationCue -{ - uint16_t cueIndex; - FACTSoundBank *pSoundBank; - FACTCue *pCue; -} FACTNotificationCue; - -typedef struct FACTNotificationMarker -{ - uint16_t cueIndex; - FACTSoundBank *pSoundBank; - FACTCue *pCue; - uint32_t marker; -} FACTNotificationMarker; - -typedef struct FACTNotificationSoundBank -{ - FACTSoundBank *pSoundBank; -} FACTNotificationSoundBank; - -typedef struct FACTNotificationWaveBank -{ - FACTWaveBank *pWaveBank; -} FACTNotificationWaveBank; - -typedef struct FACTNotificationVariable -{ - uint16_t cueIndex; - FACTSoundBank *pSoundBank; - FACTCue *pCue; - uint16_t variableIndex; - float variableValue; - int32_t local; -} FACTNotificationVariable; - -typedef struct FACTNotificationGUI -{ - uint32_t reserved; -} FACTNotificationGUI; - -typedef struct FACTNotificationWave -{ - FACTWaveBank *pWaveBank; - uint16_t waveIndex; - uint16_t cueIndex; - FACTSoundBank *pSoundBank; - FACTCue *pCue; - FACTWave *pWave; -} FACTNotificationWave; - -struct FACTNotification -{ - uint8_t type; - int32_t timeStamp; - void *pvContext; - FAUDIONAMELESS union - { - FACTNotificationCue cue; - FACTNotificationMarker marker; - FACTNotificationSoundBank soundBank; - FACTNotificationWaveBank waveBank; - FACTNotificationVariable variable; - FACTNotificationGUI gui; - FACTNotificationWave wave; - }; -}; - -#pragma pack(pop) - -/* Constants */ - -#define FACT_CONTENT_VERSION 46 - -static const uint32_t FACT_FLAG_MANAGEDATA = 0x00000001; - -static const uint32_t FACT_FLAG_STOP_RELEASE = 0x00000000; -static const uint32_t FACT_FLAG_STOP_IMMEDIATE = 0x00000001; - -static const uint32_t FACT_FLAG_BACKGROUND_MUSIC = 0x00000002; -static const uint32_t FACT_FLAG_UNITS_MS = 0x00000004; -static const uint32_t FACT_FLAG_UNITS_SAMPLES = 0x00000008; - -static const uint32_t FACT_STATE_CREATED = 0x00000001; -static const uint32_t FACT_STATE_PREPARING = 0x00000002; -static const uint32_t FACT_STATE_PREPARED = 0x00000004; -static const uint32_t FACT_STATE_PLAYING = 0x00000008; -static const uint32_t FACT_STATE_STOPPING = 0x00000010; -static const uint32_t FACT_STATE_STOPPED = 0x00000020; -static const uint32_t FACT_STATE_PAUSED = 0x00000040; -static const uint32_t FACT_STATE_INUSE = 0x00000080; -static const uint32_t FACT_STATE_PREPAREFAILED = 0x80000000; - -static const int16_t FACTPITCH_MIN = -1200; -static const int16_t FACTPITCH_MAX = 1200; -static const int16_t FACTPITCH_MIN_TOTAL = -2400; -static const int16_t FACTPITCH_MAX_TOTAL = 2400; - -static const float FACTVOLUME_MIN = 0.0f; -static const float FACTVOLUME_MAX = 16777216.0f; - -static const uint16_t FACTINDEX_INVALID = 0xFFFF; -static const uint16_t FACTVARIABLEINDEX_INVALID = 0xFFFF; -static const uint16_t FACTCATEGORY_INVALID = 0xFFFF; - -static const uint8_t FACTNOTIFICATIONTYPE_CUEPREPARED = 1; -static const uint8_t FACTNOTIFICATIONTYPE_CUEPLAY = 2; -static const uint8_t FACTNOTIFICATIONTYPE_CUESTOP = 3; -static const uint8_t FACTNOTIFICATIONTYPE_CUEDESTROYED = 4; -static const uint8_t FACTNOTIFICATIONTYPE_MARKER = 5; -static const uint8_t FACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED = 6; -static const uint8_t FACTNOTIFICATIONTYPE_WAVEBANKDESTROYED = 7; -static const uint8_t FACTNOTIFICATIONTYPE_LOCALVARIABLECHANGED = 8; -static const uint8_t FACTNOTIFICATIONTYPE_GLOBALVARIABLECHANGED = 9; -static const uint8_t FACTNOTIFICATIONTYPE_GUICONNECTED = 10; -static const uint8_t FACTNOTIFICATIONTYPE_GUIDISCONNECTED = 11; -static const uint8_t FACTNOTIFICATIONTYPE_WAVEPREPARED = 12; -static const uint8_t FACTNOTIFICATIONTYPE_WAVEPLAY = 13; -static const uint8_t FACTNOTIFICATIONTYPE_WAVESTOP = 14; -static const uint8_t FACTNOTIFICATIONTYPE_WAVELOOPED = 15; -static const uint8_t FACTNOTIFICATIONTYPE_WAVEDESTROYED = 16; -static const uint8_t FACTNOTIFICATIONTYPE_WAVEBANKPREPARED = 17; -static const uint8_t FACTNOTIFICATIONTYPE_WAVEBANKSTREAMING_INVALIDCONTENT = 18; - -static const uint8_t FACT_FLAG_NOTIFICATION_PERSIST = 0x01; - -#define FACT_ENGINE_LOOKAHEAD_DEFAULT 250 - -#define FACT_MAX_WMA_AVG_BYTES_PER_SEC_ENTRIES 7 -static const uint32_t aWMAAvgBytesPerSec[] = -{ - 12000, - 24000, - 4000, - 6000, - 8000, - 20000, - 2500 -}; - -#define FACT_MAX_WMA_BLOCK_ALIGN_ENTRIES 17 -static const uint32_t aWMABlockAlign[] = -{ - 929, - 1487, - 1280, - 2230, - 8917, - 8192, - 4459, - 5945, - 2304, - 1536, - 1485, - 1008, - 2731, - 4096, - 6827, - 5462, - 1280 -}; - -/* AudioEngine Interface */ - -FACTAPI uint32_t FACTCreateEngine( - uint32_t dwCreationFlags, - FACTAudioEngine **ppEngine -); - -/* See "extensions/CustomAllocatorEXT.txt" for more details. */ -FACTAPI uint32_t FACTCreateEngineWithCustomAllocatorEXT( - uint32_t dwCreationFlags, - FACTAudioEngine **ppEngine, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FACTAPI uint32_t FACTAudioEngine_AddRef(FACTAudioEngine *pEngine); - -FACTAPI uint32_t FACTAudioEngine_Release(FACTAudioEngine *pEngine); - -/* FIXME: QueryInterface? Or just ignore COM garbage... -flibit */ - -FACTAPI uint32_t FACTAudioEngine_GetRendererCount( - FACTAudioEngine *pEngine, - uint16_t *pnRendererCount -); - -FACTAPI uint32_t FACTAudioEngine_GetRendererDetails( - FACTAudioEngine *pEngine, - uint16_t nRendererIndex, - FACTRendererDetails *pRendererDetails -); - -FACTAPI uint32_t FACTAudioEngine_GetFinalMixFormat( - FACTAudioEngine *pEngine, - FAudioWaveFormatExtensible *pFinalMixFormat -); - -FACTAPI uint32_t FACTAudioEngine_Initialize( - FACTAudioEngine *pEngine, - const FACTRuntimeParameters *pParams -); - -FACTAPI uint32_t FACTAudioEngine_ShutDown(FACTAudioEngine *pEngine); - -FACTAPI uint32_t FACTAudioEngine_DoWork(FACTAudioEngine *pEngine); - -FACTAPI uint32_t FACTAudioEngine_CreateSoundBank( - FACTAudioEngine *pEngine, - const void *pvBuffer, - uint32_t dwSize, - uint32_t dwFlags, - uint32_t dwAllocAttributes, - FACTSoundBank **ppSoundBank -); - -FACTAPI uint32_t FACTAudioEngine_CreateInMemoryWaveBank( - FACTAudioEngine *pEngine, - const void *pvBuffer, - uint32_t dwSize, - uint32_t dwFlags, - uint32_t dwAllocAttributes, - FACTWaveBank **ppWaveBank -); - -FACTAPI uint32_t FACTAudioEngine_CreateStreamingWaveBank( - FACTAudioEngine *pEngine, - const FACTStreamingParameters *pParms, - FACTWaveBank **ppWaveBank -); - -FACTAPI uint32_t FACTAudioEngine_PrepareWave( - FACTAudioEngine *pEngine, - uint32_t dwFlags, - const char *szWavePath, - uint32_t wStreamingPacketSize, - uint32_t dwAlignment, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -); - -FACTAPI uint32_t FACTAudioEngine_PrepareInMemoryWave( - FACTAudioEngine *pEngine, - uint32_t dwFlags, - FACTWaveBankEntry entry, - uint32_t *pdwSeekTable, /* Optional! */ - uint8_t *pbWaveData, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -); - -FACTAPI uint32_t FACTAudioEngine_PrepareStreamingWave( - FACTAudioEngine *pEngine, - uint32_t dwFlags, - FACTWaveBankEntry entry, - FACTStreamingParameters streamingParams, - uint32_t dwAlignment, - uint32_t *pdwSeekTable, /* Optional! */ - uint8_t *pbWaveData, /* ABI bug, do not use! */ - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -); - -FACTAPI uint32_t FACTAudioEngine_RegisterNotification( - FACTAudioEngine *pEngine, - const FACTNotificationDescription *pNotificationDescription -); - -FACTAPI uint32_t FACTAudioEngine_UnRegisterNotification( - FACTAudioEngine *pEngine, - const FACTNotificationDescription *pNotificationDescription -); - -FACTAPI uint16_t FACTAudioEngine_GetCategory( - FACTAudioEngine *pEngine, - const char *szFriendlyName -); - -FACTAPI uint32_t FACTAudioEngine_Stop( - FACTAudioEngine *pEngine, - uint16_t nCategory, - uint32_t dwFlags -); - -FACTAPI uint32_t FACTAudioEngine_SetVolume( - FACTAudioEngine *pEngine, - uint16_t nCategory, - float volume -); - -FACTAPI uint32_t FACTAudioEngine_Pause( - FACTAudioEngine *pEngine, - uint16_t nCategory, - int32_t fPause -); - -FACTAPI uint16_t FACTAudioEngine_GetGlobalVariableIndex( - FACTAudioEngine *pEngine, - const char *szFriendlyName -); - -FACTAPI uint32_t FACTAudioEngine_SetGlobalVariable( - FACTAudioEngine *pEngine, - uint16_t nIndex, - float nValue -); - -FACTAPI uint32_t FACTAudioEngine_GetGlobalVariable( - FACTAudioEngine *pEngine, - uint16_t nIndex, - float *pnValue -); - -/* SoundBank Interface */ - -FACTAPI uint16_t FACTSoundBank_GetCueIndex( - FACTSoundBank *pSoundBank, - const char *szFriendlyName -); - -FACTAPI uint32_t FACTSoundBank_GetNumCues( - FACTSoundBank *pSoundBank, - uint16_t *pnNumCues -); - -FACTAPI uint32_t FACTSoundBank_GetCueProperties( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - FACTCueProperties *pProperties -); - -FACTAPI uint32_t FACTSoundBank_Prepare( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags, - int32_t timeOffset, - FACTCue** ppCue -); - -FACTAPI uint32_t FACTSoundBank_Play( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags, - int32_t timeOffset, - FACTCue** ppCue /* Optional! */ -); - -#ifndef F3DAUDIO_DSP_SETTINGS_DECL -#define F3DAUDIO_DSP_SETTINGS_DECL -typedef struct F3DAUDIO_DSP_SETTINGS F3DAUDIO_DSP_SETTINGS; -#endif /* F3DAUDIO_DSP_SETTINGS_DECL */ - -FACTAPI uint32_t FACTSoundBank_Play3D( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags, - int32_t timeOffset, - F3DAUDIO_DSP_SETTINGS *pDSPSettings, - FACTCue** ppCue /* Optional! */ -); - -FACTAPI uint32_t FACTSoundBank_Stop( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags -); - -FACTAPI uint32_t FACTSoundBank_Destroy(FACTSoundBank *pSoundBank); - -FACTAPI uint32_t FACTSoundBank_GetState( - FACTSoundBank *pSoundBank, - uint32_t *pdwState -); - -/* WaveBank Interface */ - -FACTAPI uint32_t FACTWaveBank_Destroy(FACTWaveBank *pWaveBank); - -FACTAPI uint32_t FACTWaveBank_GetState( - FACTWaveBank *pWaveBank, - uint32_t *pdwState -); - -FACTAPI uint32_t FACTWaveBank_GetNumWaves( - FACTWaveBank *pWaveBank, - uint16_t *pnNumWaves -); - -FACTAPI uint16_t FACTWaveBank_GetWaveIndex( - FACTWaveBank *pWaveBank, - const char *szFriendlyName -); - -FACTAPI uint32_t FACTWaveBank_GetWaveProperties( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - FACTWaveProperties *pWaveProperties -); - -FACTAPI uint32_t FACTWaveBank_Prepare( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - uint32_t dwFlags, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -); - -FACTAPI uint32_t FACTWaveBank_Play( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - uint32_t dwFlags, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -); - -FACTAPI uint32_t FACTWaveBank_Stop( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - uint32_t dwFlags -); - -/* Wave Interface */ - -FACTAPI uint32_t FACTWave_Destroy(FACTWave *pWave); - -FACTAPI uint32_t FACTWave_Play(FACTWave *pWave); - -FACTAPI uint32_t FACTWave_Stop(FACTWave *pWave, uint32_t dwFlags); - -FACTAPI uint32_t FACTWave_Pause(FACTWave *pWave, int32_t fPause); - -FACTAPI uint32_t FACTWave_GetState(FACTWave *pWave, uint32_t *pdwState); - -FACTAPI uint32_t FACTWave_SetPitch(FACTWave *pWave, int16_t pitch); - -FACTAPI uint32_t FACTWave_SetVolume(FACTWave *pWave, float volume); - -FACTAPI uint32_t FACTWave_SetMatrixCoefficients( - FACTWave *pWave, - uint32_t uSrcChannelCount, - uint32_t uDstChannelCount, - float *pMatrixCoefficients -); - -FACTAPI uint32_t FACTWave_GetProperties( - FACTWave *pWave, - FACTWaveInstanceProperties *pProperties -); - -/* Cue Interface */ - -FACTAPI uint32_t FACTCue_Destroy(FACTCue *pCue); - -FACTAPI uint32_t FACTCue_Play(FACTCue *pCue); - -FACTAPI uint32_t FACTCue_Stop(FACTCue *pCue, uint32_t dwFlags); - -FACTAPI uint32_t FACTCue_GetState(FACTCue *pCue, uint32_t *pdwState); - -FACTAPI uint32_t FACTCue_SetMatrixCoefficients( - FACTCue *pCue, - uint32_t uSrcChannelCount, - uint32_t uDstChannelCount, - float *pMatrixCoefficients -); - -FACTAPI uint16_t FACTCue_GetVariableIndex( - FACTCue *pCue, - const char *szFriendlyName -); - -FACTAPI uint32_t FACTCue_SetVariable( - FACTCue *pCue, - uint16_t nIndex, - float nValue -); - -FACTAPI uint32_t FACTCue_GetVariable( - FACTCue *pCue, - uint16_t nIndex, - float *nValue -); - -FACTAPI uint32_t FACTCue_Pause(FACTCue *pCue, int32_t fPause); - -FACTAPI uint32_t FACTCue_GetProperties( - FACTCue *pCue, - FACTCueInstanceProperties **ppProperties -); - -FACTAPI uint32_t FACTCue_SetOutputVoices( - FACTCue *pCue, - const FAudioVoiceSends *pSendList /* Optional! */ -); - -FACTAPI uint32_t FACTCue_SetOutputVoiceMatrix( - FACTCue *pCue, - const FAudioVoice *pDestinationVoice, /* Optional! */ - uint32_t SourceChannels, - uint32_t DestinationChannels, - const float *pLevelMatrix /* SourceChannels * DestinationChannels */ -); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FACT_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FACT3D.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FACT3D.h deleted file mode 100644 index 6b80acc8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FACT3D.h +++ /dev/null @@ -1,127 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* This file has no documentation since you are expected to already know how - * XACT works if you are still using these APIs! - */ - -#ifndef FACT3D_H -#define FACT3D_H - -#include "F3DAudio.h" -#include "FACT.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Constants */ - -#define LEFT_AZIMUTH (3.0f * F3DAUDIO_PI / 2.0f) -#define RIGHT_AZIMUTH (F3DAUDIO_PI / 2.0f) -#define FRONT_LEFT_AZIMUTH (7.0f * F3DAUDIO_PI / 4.0f) -#define FRONT_RIGHT_AZIMUTH (F3DAUDIO_PI / 4.0f) -#define FRONT_CENTER_AZIMUTH 0.0f -#define LOW_FREQUENCY_AZIMUTH F3DAUDIO_2PI -#define BACK_LEFT_AZIMUTH (5.0f * F3DAUDIO_PI / 4.0f) -#define BACK_RIGHT_AZIMUTH (3.0f * F3DAUDIO_PI / 4.0f) -#define BACK_CENTER_AZIMUTH F3DAUDIO_PI -#define FRONT_LEFT_OF_CENTER_AZIMUTH (15.0f * F3DAUDIO_PI / 8.0f) -#define FRONT_RIGHT_OF_CENTER_AZIMUTH (F3DAUDIO_PI / 8.0f) - -static const float aStereoLayout[] = -{ - LEFT_AZIMUTH, - RIGHT_AZIMUTH -}; -static const float a2Point1Layout[] = -{ - LEFT_AZIMUTH, - RIGHT_AZIMUTH, - LOW_FREQUENCY_AZIMUTH -}; -static const float aQuadLayout[] = -{ - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH -}; -static const float a4Point1Layout[] = -{ - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - LOW_FREQUENCY_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH -}; -static const float a5Point1Layout[] = -{ - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - FRONT_CENTER_AZIMUTH, - LOW_FREQUENCY_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH -}; -static const float a7Point1Layout[] = -{ - FRONT_LEFT_AZIMUTH, - FRONT_RIGHT_AZIMUTH, - FRONT_CENTER_AZIMUTH, - LOW_FREQUENCY_AZIMUTH, - BACK_LEFT_AZIMUTH, - BACK_RIGHT_AZIMUTH, - LEFT_AZIMUTH, - RIGHT_AZIMUTH -}; - -/* Functions */ - -FACTAPI uint32_t FACT3DInitialize( - FACTAudioEngine *pEngine, - F3DAUDIO_HANDLE F3DInstance -); - -FACTAPI uint32_t FACT3DCalculate( - F3DAUDIO_HANDLE F3DInstance, - const F3DAUDIO_LISTENER *pListener, - F3DAUDIO_EMITTER *pEmitter, - F3DAUDIO_DSP_SETTINGS *pDSPSettings -); - -FACTAPI uint32_t FACT3DApply( - F3DAUDIO_DSP_SETTINGS *pDSPSettings, - FACTCue *pCue -); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FACT3D_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPO.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPO.h deleted file mode 100644 index 89eaa0be..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPO.h +++ /dev/null @@ -1,207 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* This file has no documentation since the MSDN docs are still perfectly fine: - * https://docs.microsoft.com/en-us/windows/desktop/api/xapo/ - * - * Of course, the APIs aren't exactly the same since XAPO is super dependent on - * C++. Instead, we use a struct full of functions to mimic a vtable. - * - * The only serious difference is that our FAPO (yes, really) always has the - * Get/SetParameters function pointers, for simplicity. You can ignore these if - * your effect does not have parameters, as they will never get called unless - * it is explicitly requested by the application. - */ - -#ifndef FAPO_H -#define FAPO_H - -#include "FAudio.h" - -#define FAPOAPI FAUDIOAPI -#define FAPOCALL FAUDIOCALL - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Enumerations */ - -typedef enum FAPOBufferFlags -{ - FAPO_BUFFER_SILENT, - FAPO_BUFFER_VALID -} FAPOBufferFlags; - -/* Structures */ - -#pragma pack(push, 1) - -typedef struct FAPORegistrationProperties -{ - FAudioGUID clsid; - int16_t FriendlyName[256]; /* Win32 wchar_t */ - int16_t CopyrightInfo[256]; /* Win32 wchar_t */ - uint32_t MajorVersion; - uint32_t MinorVersion; - uint32_t Flags; - uint32_t MinInputBufferCount; - uint32_t MaxInputBufferCount; - uint32_t MinOutputBufferCount; - uint32_t MaxOutputBufferCount; -} FAPORegistrationProperties; - -typedef struct FAPOLockForProcessBufferParameters -{ - const FAudioWaveFormatEx *pFormat; - uint32_t MaxFrameCount; -} FAPOLockForProcessBufferParameters; - -typedef struct FAPOProcessBufferParameters -{ - void* pBuffer; - FAPOBufferFlags BufferFlags; - uint32_t ValidFrameCount; -} FAPOProcessBufferParameters; - -#pragma pack(pop) - -/* Constants */ - -#define FAPO_MIN_CHANNELS 1 -#define FAPO_MAX_CHANNELS 64 - -#define FAPO_MIN_FRAMERATE 1000 -#define FAPO_MAX_FRAMERATE 200000 - -#define FAPO_REGISTRATION_STRING_LENGTH 256 - -#define FAPO_FLAG_CHANNELS_MUST_MATCH 0x00000001 -#define FAPO_FLAG_FRAMERATE_MUST_MATCH 0x00000002 -#define FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH 0x00000004 -#define FAPO_FLAG_BUFFERCOUNT_MUST_MATCH 0x00000008 -#define FAPO_FLAG_INPLACE_REQUIRED 0x00000020 -#define FAPO_FLAG_INPLACE_SUPPORTED 0x00000010 - -/* FAPO Interface */ - -#ifndef FAPO_DECL -#define FAPO_DECL -typedef struct FAPO FAPO; -#endif /* FAPO_DECL */ - -typedef int32_t (FAPOCALL * AddRefFunc)( - void *fapo -); -typedef int32_t (FAPOCALL * ReleaseFunc)( - void *fapo -); -typedef uint32_t (FAPOCALL * GetRegistrationPropertiesFunc)( - void* fapo, - FAPORegistrationProperties **ppRegistrationProperties -); -typedef uint32_t (FAPOCALL * IsInputFormatSupportedFunc)( - void* fapo, - const FAudioWaveFormatEx *pOutputFormat, - const FAudioWaveFormatEx *pRequestedInputFormat, - FAudioWaveFormatEx **ppSupportedInputFormat -); -typedef uint32_t (FAPOCALL * IsOutputFormatSupportedFunc)( - void* fapo, - const FAudioWaveFormatEx *pInputFormat, - const FAudioWaveFormatEx *pRequestedOutputFormat, - FAudioWaveFormatEx **ppSupportedOutputFormat -); -typedef uint32_t (FAPOCALL * InitializeFunc)( - void* fapo, - const void* pData, - uint32_t DataByteSize -); -typedef void (FAPOCALL * ResetFunc)( - void* fapo -); -typedef uint32_t (FAPOCALL * LockForProcessFunc)( - void* fapo, - uint32_t InputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pInputLockedParameters, - uint32_t OutputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pOutputLockedParameters -); -typedef void (FAPOCALL * UnlockForProcessFunc)( - void* fapo -); -typedef void (FAPOCALL * ProcessFunc)( - void* fapo, - uint32_t InputProcessParameterCount, - const FAPOProcessBufferParameters* pInputProcessParameters, - uint32_t OutputProcessParameterCount, - FAPOProcessBufferParameters* pOutputProcessParameters, - int32_t IsEnabled -); -typedef uint32_t (FAPOCALL * CalcInputFramesFunc)( - void* fapo, - uint32_t OutputFrameCount -); -typedef uint32_t (FAPOCALL * CalcOutputFramesFunc)( - void* fapo, - uint32_t InputFrameCount -); -typedef void (FAPOCALL * SetParametersFunc)( - void* fapo, - const void* pParameters, - uint32_t ParameterByteSize -); -typedef void (FAPOCALL * GetParametersFunc)( - void* fapo, - void* pParameters, - uint32_t ParameterByteSize -); - -struct FAPO -{ - AddRefFunc AddRef; - ReleaseFunc Release; - GetRegistrationPropertiesFunc GetRegistrationProperties; - IsInputFormatSupportedFunc IsInputFormatSupported; - IsOutputFormatSupportedFunc IsOutputFormatSupported; - InitializeFunc Initialize; - ResetFunc Reset; - LockForProcessFunc LockForProcess; - UnlockForProcessFunc UnlockForProcess; - ProcessFunc Process; - CalcInputFramesFunc CalcInputFrames; - CalcOutputFramesFunc CalcOutputFrames; - SetParametersFunc SetParameters; - GetParametersFunc GetParameters; -}; - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FAPO_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPOBase.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPOBase.h deleted file mode 100644 index 40411605..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPOBase.h +++ /dev/null @@ -1,264 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* This file has no documentation since the MSDN docs are still perfectly fine: - * https://docs.microsoft.com/en-us/windows/desktop/api/xapobase/ - * - * Of course, the APIs aren't exactly the same since XAPO is super dependent on - * C++. Instead, we use a struct full of functions to mimic a vtable. - * - * To mimic the CXAPOParametersBase experience, initialize the object like this: - * - * extern FAPORegistrationProperties MyFAPOProperties; - * extern int32_t producer; - * typedef struct MyFAPOParams - * { - * uint32_t something; - * } MyFAPOParams; - * typedef struct MyFAPO - * { - * FAPOBase base; - * uint32_t somethingElse; - * } MyFAPO; - * void MyFAPO_Free(void* fapo) - * { - * MyFAPO *mine = (MyFAPO*) fapo; - * mine->base.pFree(mine->base.m_pParameterBlocks); - * mine->base.pFree(fapo); - * } - * - * MyFAPO *result = (MyFAPO*) SDL_malloc(sizeof(MyFAPO)); - * uint8_t *params = (uint8_t*) SDL_malloc(sizeof(MyFAPOParams) * 3); - * CreateFAPOBase( - * &result->base, - * &MyFAPOProperties, - * params, - * sizeof(MyFAPOParams), - * producer - * ); - * result->base.base.Initialize = (InitializeFunc) MyFAPO_Initialize; - * result->base.base.Process = (ProcessFunc) MyFAPO_Process; - * result->base.Destructor = MyFAPO_Free; - */ - -#ifndef FAPOBASE_H -#define FAPOBASE_H - -#include "FAPO.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Constants */ - -#define FAPOBASE_DEFAULT_FORMAT_TAG FAUDIO_FORMAT_IEEE_FLOAT -#define FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS FAPO_MIN_CHANNELS -#define FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS FAPO_MAX_CHANNELS -#define FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE FAPO_MIN_FRAMERATE -#define FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE FAPO_MAX_FRAMERATE -#define FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE 32 - -#define FAPOBASE_DEFAULT_FLAG ( \ - FAPO_FLAG_CHANNELS_MUST_MATCH | \ - FAPO_FLAG_FRAMERATE_MUST_MATCH | \ - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | \ - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | \ - FAPO_FLAG_INPLACE_SUPPORTED \ -) - -#define FAPOBASE_DEFAULT_BUFFER_COUNT 1 - -/* FAPOBase Interface */ - -typedef struct FAPOBase FAPOBase; - -typedef void (FAPOCALL * OnSetParametersFunc)( - FAPOBase *fapo, - const void* parameters, - uint32_t parametersSize -); - -#pragma pack(push, 8) -struct FAPOBase -{ - /* Base Classes/Interfaces */ - FAPO base; - void (FAPOCALL *Destructor)(void*); - - /* Public Virtual Functions */ - OnSetParametersFunc OnSetParameters; - - /* Private Variables */ - const FAPORegistrationProperties *m_pRegistrationProperties; - void* m_pfnMatrixMixFunction; - float *m_pfl32MatrixCoefficients; - uint32_t m_nSrcFormatType; - uint8_t m_fIsScalarMatrix; - uint8_t m_fIsLocked; - uint8_t *m_pParameterBlocks; - uint8_t *m_pCurrentParameters; - uint8_t *m_pCurrentParametersInternal; - uint32_t m_uCurrentParametersIndex; - uint32_t m_uParameterBlockByteSize; - uint8_t m_fNewerResultsReady; - uint8_t m_fProducer; - - /* Protected Variables */ - int32_t m_lReferenceCount; /* LONG */ - - /* Allocator callbacks, NOT part of XAPOBase spec! */ - FAudioMallocFunc pMalloc; - FAudioFreeFunc pFree; - FAudioReallocFunc pRealloc; -}; -#pragma pack(pop) - -FAPOAPI void CreateFAPOBase( - FAPOBase *fapo, - const FAPORegistrationProperties *pRegistrationProperties, - uint8_t *pParameterBlocks, - uint32_t uParameterBlockByteSize, - uint8_t fProducer -); - -/* See "extensions/CustomAllocatorEXT.txt" for more information. */ -FAPOAPI void CreateFAPOBaseWithCustomAllocatorEXT( - FAPOBase *fapo, - const FAPORegistrationProperties *pRegistrationProperties, - uint8_t *pParameterBlocks, - uint32_t uParameterBlockByteSize, - uint8_t fProducer, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAPOAPI int32_t FAPOBase_AddRef(FAPOBase *fapo); - -FAPOAPI int32_t FAPOBase_Release(FAPOBase *fapo); - -FAPOAPI uint32_t FAPOBase_GetRegistrationProperties( - FAPOBase *fapo, - FAPORegistrationProperties **ppRegistrationProperties -); - -FAPOAPI uint32_t FAPOBase_IsInputFormatSupported( - FAPOBase *fapo, - const FAudioWaveFormatEx *pOutputFormat, - const FAudioWaveFormatEx *pRequestedInputFormat, - FAudioWaveFormatEx **ppSupportedInputFormat -); - -FAPOAPI uint32_t FAPOBase_IsOutputFormatSupported( - FAPOBase *fapo, - const FAudioWaveFormatEx *pInputFormat, - const FAudioWaveFormatEx *pRequestedOutputFormat, - FAudioWaveFormatEx **ppSupportedOutputFormat -); - -FAPOAPI uint32_t FAPOBase_Initialize( - FAPOBase *fapo, - const void* pData, - uint32_t DataByteSize -); - -FAPOAPI void FAPOBase_Reset(FAPOBase *fapo); - -FAPOAPI uint32_t FAPOBase_LockForProcess( - FAPOBase *fapo, - uint32_t InputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pInputLockedParameters, - uint32_t OutputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pOutputLockedParameters -); - -FAPOAPI void FAPOBase_UnlockForProcess(FAPOBase *fapo); - -FAPOAPI uint32_t FAPOBase_CalcInputFrames( - FAPOBase *fapo, - uint32_t OutputFrameCount -); - -FAPOAPI uint32_t FAPOBase_CalcOutputFrames( - FAPOBase *fapo, - uint32_t InputFrameCount -); - -FAPOAPI uint32_t FAPOBase_ValidateFormatDefault( - FAPOBase *fapo, - FAudioWaveFormatEx *pFormat, - uint8_t fOverwrite -); - -FAPOAPI uint32_t FAPOBase_ValidateFormatPair( - FAPOBase *fapo, - const FAudioWaveFormatEx *pSupportedFormat, - FAudioWaveFormatEx *pRequestedFormat, - uint8_t fOverwrite -); - -FAPOAPI void FAPOBase_ProcessThru( - FAPOBase *fapo, - void* pInputBuffer, - float *pOutputBuffer, - uint32_t FrameCount, - uint16_t InputChannelCount, - uint16_t OutputChannelCount, - uint8_t MixWithOutput -); - -FAPOAPI void FAPOBase_SetParameters( - FAPOBase *fapo, - const void* pParameters, - uint32_t ParameterByteSize -); - -FAPOAPI void FAPOBase_GetParameters( - FAPOBase *fapo, - void* pParameters, - uint32_t ParameterByteSize -); - -FAPOAPI void FAPOBase_OnSetParameters( - FAPOBase *fapo, - const void* parameters, - uint32_t parametersSize -); - -FAPOAPI uint8_t FAPOBase_ParametersChanged(FAPOBase *fapo); - -FAPOAPI uint8_t* FAPOBase_BeginProcess(FAPOBase *fapo); - -FAPOAPI void FAPOBase_EndProcess(FAPOBase *fapo); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FAPOBASE_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPOFX.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPOFX.h deleted file mode 100644 index 733ab1a2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAPOFX.h +++ /dev/null @@ -1,178 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FAPOFX_H -#define FAPOFX_H - -#include "FAPO.h" - -#define FAPOFXAPI FAUDIOAPI - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* GUIDs */ - -/* "Legacy" GUIDs are from XAPOFX <= 1.5. They were removed in XAudio 2.8 and later. */ -extern const FAudioGUID FAPOFX_CLSID_FXEQ, FAPOFX_CLSID_FXEQ_LEGACY; -extern const FAudioGUID FAPOFX_CLSID_FXMasteringLimiter, FAPOFX_CLSID_FXMasteringLimiter_LEGACY; -extern const FAudioGUID FAPOFX_CLSID_FXReverb, FAPOFX_CLSID_FXReverb_LEGACY; -extern const FAudioGUID FAPOFX_CLSID_FXEcho, FAPOFX_CLSID_FXEcho_LEGACY; - -/* Structures */ - -#pragma pack(push, 1) - -/* See FAPOFXEQ_* constants below. - * FrequencyCenter is in Hz, Gain is amplitude ratio, Bandwidth is Q factor. - */ -typedef struct FAPOFXEQParameters -{ - float FrequencyCenter0; - float Gain0; - float Bandwidth0; - float FrequencyCenter1; - float Gain1; - float Bandwidth1; - float FrequencyCenter2; - float Gain2; - float Bandwidth2; - float FrequencyCenter3; - float Gain3; - float Bandwidth3; -} FAPOFXEQParameters; - -/* See FAPOFXMASTERINGLIMITER_* constants below. */ -typedef struct FAPOFXMasteringLimiterParameters -{ - uint32_t Release; /* In milliseconds */ - uint32_t Loudness; /* In... uh, MSDN doesn't actually say what. */ -} FAPOFXMasteringLimiterParameters; - -/* See FAPOFXREVERB_* constants below. - * Both parameters are arbitrary and should be treated subjectively. - */ -typedef struct FAPOFXReverbParameters -{ - float Diffusion; - float RoomSize; -} FAPOFXReverbParameters; - -/* See FAPOFXECHO_* constants below. */ -typedef struct FAPOFXEchoParameters -{ - float WetDryMix; /* Percentage of processed signal vs original */ - float Feedback; /* Percentage to feed back into input */ - float Delay; /* In milliseconds */ -} FAPOFXEchoParameters; - -#pragma pack(pop) - -/* Constants */ - -#define FAPOFXEQ_MIN_FRAMERATE 22000 -#define FAPOFXEQ_MAX_FRAMERATE 48000 - -#define FAPOFXEQ_MIN_FREQUENCY_CENTER 20.0f -#define FAPOFXEQ_MAX_FREQUENCY_CENTER 20000.0f -#define FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_0 100.0f -#define FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_1 800.0f -#define FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_2 2000.0f -#define FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_3 10000.0f - -#define FAPOFXEQ_MIN_GAIN 0.126f -#define FAPOFXEQ_MAX_GAIN 7.94f -#define FAPOFXEQ_DEFAULT_GAIN 1.0f - -#define FAPOFXEQ_MIN_BANDWIDTH 0.1f -#define FAPOFXEQ_MAX_BANDWIDTH 2.0f -#define FAPOFXEQ_DEFAULT_BANDWIDTH 1.0f - -#define FAPOFXMASTERINGLIMITER_MIN_RELEASE 1 -#define FAPOFXMASTERINGLIMITER_MAX_RELEASE 20 -#define FAPOFXMASTERINGLIMITER_DEFAULT_RELEASE 6 - -#define FAPOFXMASTERINGLIMITER_MIN_LOUDNESS 1 -#define FAPOFXMASTERINGLIMITER_MAX_LOUDNESS 1800 -#define FAPOFXMASTERINGLIMITER_DEFAULT_LOUDNESS 1000 - -#define FAPOFXREVERB_MIN_DIFFUSION 0.0f -#define FAPOFXREVERB_MAX_DIFFUSION 1.0f -#define FAPOFXREVERB_DEFAULT_DIFFUSION 0.9f - -#define FAPOFXREVERB_MIN_ROOMSIZE 0.0001f -#define FAPOFXREVERB_MAX_ROOMSIZE 1.0f -#define FAPOFXREVERB_DEFAULT_ROOMSIZE 0.6f - -#define FAPOFXECHO_MIN_WETDRYMIX 0.0f -#define FAPOFXECHO_MAX_WETDRYMIX 1.0f -#define FAPOFXECHO_DEFAULT_WETDRYMIX 0.5f - -#define FAPOFXECHO_MIN_FEEDBACK 0.0f -#define FAPOFXECHO_MAX_FEEDBACK 1.0f -#define FAPOFXECHO_DEFAULT_FEEDBACK 0.5f - -#define FAPOFXECHO_MIN_DELAY 1.0f -#define FAPOFXECHO_MAX_DELAY 2000.0f -#define FAPOFXECHO_DEFAULT_DELAY 500.0f - -/* Functions */ - -/* Creates an effect from the pre-made FAPOFX effect library. - * - * clsid: A reference to one of the FAPOFX_CLSID_* GUIDs - * pEffect: Filled with the resulting FAPO object - * pInitData: Starting parameters, pass NULL to use the default values - * InitDataByteSize: Parameter struct size, pass 0 if pInitData is NULL - * - * Returns 0 on success. - */ -FAPOFXAPI uint32_t FAPOFX_CreateFX( - const FAudioGUID *clsid, - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize -); - -/* See "extensions/CustomAllocatorEXT.txt" for more details. */ -FAPOFXAPI uint32_t FAPOFX_CreateFXWithCustomAllocatorEXT( - const FAudioGUID *clsid, - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FAPOFX_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAudio.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAudio.h deleted file mode 100644 index 292eb456..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAudio.h +++ /dev/null @@ -1,1322 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FAUDIO_H -#define FAUDIO_H - -#ifdef _WIN32 -#define FAUDIOAPI __declspec(dllexport) -#define FAUDIOCALL __cdecl -#else -#define FAUDIOAPI -#define FAUDIOCALL -#endif - -#ifdef _MSC_VER -#define FAUDIODEPRECATED(msg) __declspec(deprecated(msg)) -#else -#define FAUDIODEPRECATED(msg) __attribute__((deprecated(msg))) -#endif - -/* -Wpedantic nameless union/struct silencing */ -#ifndef FAUDIONAMELESS -#ifdef __GNUC__ -#define FAUDIONAMELESS __extension__ -#else -#define FAUDIONAMELESS -#endif /* __GNUC__ */ -#endif /* FAUDIONAMELESS */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Type Declarations */ - -typedef struct FAudio FAudio; -typedef struct FAudioVoice FAudioVoice; -typedef FAudioVoice FAudioSourceVoice; -typedef FAudioVoice FAudioSubmixVoice; -typedef FAudioVoice FAudioMasteringVoice; -typedef struct FAudioEngineCallback FAudioEngineCallback; -typedef struct FAudioVoiceCallback FAudioVoiceCallback; - -/* Enumerations */ - -typedef enum FAudioDeviceRole -{ - FAudioNotDefaultDevice = 0x0, - FAudioDefaultConsoleDevice = 0x1, - FAudioDefaultMultimediaDevice = 0x2, - FAudioDefaultCommunicationsDevice = 0x4, - FAudioDefaultGameDevice = 0x8, - FAudioGlobalDefaultDevice = 0xF, - FAudioInvalidDeviceRole = ~FAudioGlobalDefaultDevice -} FAudioDeviceRole; - -typedef enum FAudioFilterType -{ - FAudioLowPassFilter, - FAudioBandPassFilter, - FAudioHighPassFilter, - FAudioNotchFilter -} FAudioFilterType; - -typedef enum FAudioStreamCategory -{ - FAudioStreamCategory_Other, - FAudioStreamCategory_ForegroundOnlyMedia, - FAudioStreamCategory_BackgroundCapableMedia, - FAudioStreamCategory_Communications, - FAudioStreamCategory_Alerts, - FAudioStreamCategory_SoundEffects, - FAudioStreamCategory_GameEffects, - FAudioStreamCategory_GameMedia, - FAudioStreamCategory_GameChat, - FAudioStreamCategory_Speech, - FAudioStreamCategory_Movie, - FAudioStreamCategory_Media -} FAudioStreamCategory; - -/* FIXME: The original enum violates ISO C and is platform specific anyway... */ -typedef uint32_t FAudioProcessor; -#define FAUDIO_DEFAULT_PROCESSOR 0xFFFFFFFF - -/* Structures */ - -#pragma pack(push, 1) - -typedef struct FAudioGUID -{ - uint32_t Data1; - uint16_t Data2; - uint16_t Data3; - uint8_t Data4[8]; -} FAudioGUID; - -/* See MSDN: - * https://msdn.microsoft.com/en-us/library/windows/desktop/dd390970%28v=vs.85%29.aspx - */ -typedef struct FAudioWaveFormatEx -{ - uint16_t wFormatTag; - uint16_t nChannels; - uint32_t nSamplesPerSec; - uint32_t nAvgBytesPerSec; - uint16_t nBlockAlign; - uint16_t wBitsPerSample; - uint16_t cbSize; -} FAudioWaveFormatEx; - -/* See MSDN: - * https://msdn.microsoft.com/en-us/library/windows/desktop/dd390971(v=vs.85).aspx - */ -typedef struct FAudioWaveFormatExtensible -{ - FAudioWaveFormatEx Format; - union - { - uint16_t wValidBitsPerSample; - uint16_t wSamplesPerBlock; - uint16_t wReserved; - } Samples; - uint32_t dwChannelMask; - FAudioGUID SubFormat; -} FAudioWaveFormatExtensible; - -typedef struct FAudioADPCMCoefSet -{ - int16_t iCoef1; - int16_t iCoef2; -} FAudioADPCMCoefSet; - -typedef struct FAudioADPCMWaveFormat -{ - FAudioWaveFormatEx wfx; - uint16_t wSamplesPerBlock; - uint16_t wNumCoef; - - /* MSVC warns on empty arrays in structs */ - #ifdef _MSC_VER - #pragma warning(push) - #pragma warning(disable: 4200) - #endif - - FAudioADPCMCoefSet aCoef[]; - /* MSADPCM has 7 coefficient pairs: - * { - * { 256, 0 }, - * { 512, -256 }, - * { 0, 0 }, - * { 192, 64 }, - * { 240, 0 }, - * { 460, -208 }, - * { 392, -232 } - * } - */ - - #ifdef _MSC_VER - #pragma warning(pop) - #endif -} FAudioADPCMWaveFormat; - -typedef struct FAudioDeviceDetails -{ - int16_t DeviceID[256]; /* Win32 wchar_t */ - int16_t DisplayName[256]; /* Win32 wchar_t */ - FAudioDeviceRole Role; - FAudioWaveFormatExtensible OutputFormat; -} FAudioDeviceDetails; - -typedef struct FAudioVoiceDetails -{ - uint32_t CreationFlags; - uint32_t ActiveFlags; - uint32_t InputChannels; - uint32_t InputSampleRate; -} FAudioVoiceDetails; - -typedef struct FAudioSendDescriptor -{ - uint32_t Flags; /* 0 or FAUDIO_SEND_USEFILTER */ - FAudioVoice *pOutputVoice; -} FAudioSendDescriptor; - -typedef struct FAudioVoiceSends -{ - uint32_t SendCount; - FAudioSendDescriptor *pSends; -} FAudioVoiceSends; - -#ifndef FAPO_DECL -#define FAPO_DECL -typedef struct FAPO FAPO; -#endif /* FAPO_DECL */ - -typedef struct FAudioEffectDescriptor -{ - FAPO *pEffect; - int32_t InitialState; /* 1 - Enabled, 0 - Disabled */ - uint32_t OutputChannels; -} FAudioEffectDescriptor; - -typedef struct FAudioEffectChain -{ - uint32_t EffectCount; - FAudioEffectDescriptor *pEffectDescriptors; -} FAudioEffectChain; - -typedef struct FAudioFilterParameters -{ - FAudioFilterType Type; - float Frequency; /* [0, FAUDIO_MAX_FILTER_FREQUENCY] */ - float OneOverQ; /* [0, FAUDIO_MAX_FILTER_ONEOVERQ] */ -} FAudioFilterParameters; - -typedef struct FAudioBuffer -{ - /* Either 0 or FAUDIO_END_OF_STREAM */ - uint32_t Flags; - /* Pointer to wave data, memory block size. - * Note that pAudioData is not copied; FAudio reads directly from your - * pointer! This pointer must be valid until FAudio has finished using - * it, at which point an OnBufferEnd callback will be generated. - */ - uint32_t AudioBytes; - const uint8_t *pAudioData; - /* Play region, in sample frames. */ - uint32_t PlayBegin; - uint32_t PlayLength; - /* Loop region, in sample frames. - * This can be used to loop a subregion of the wave instead of looping - * the whole thing, i.e. if you have an intro/outro you can set these - * to loop the middle sections instead. If you don't need this, set both - * values to 0. - */ - uint32_t LoopBegin; - uint32_t LoopLength; - /* [0, FAUDIO_LOOP_INFINITE] */ - uint32_t LoopCount; - /* This is sent to callbacks as pBufferContext */ - void *pContext; -} FAudioBuffer; - -typedef struct FAudioBufferWMA -{ - const uint32_t *pDecodedPacketCumulativeBytes; - uint32_t PacketCount; -} FAudioBufferWMA; - -typedef struct FAudioVoiceState -{ - void *pCurrentBufferContext; - uint32_t BuffersQueued; - uint64_t SamplesPlayed; -} FAudioVoiceState; - -typedef struct FAudioPerformanceData -{ - uint64_t AudioCyclesSinceLastQuery; - uint64_t TotalCyclesSinceLastQuery; - uint32_t MinimumCyclesPerQuantum; - uint32_t MaximumCyclesPerQuantum; - uint32_t MemoryUsageInBytes; - uint32_t CurrentLatencyInSamples; - uint32_t GlitchesSinceEngineStarted; - uint32_t ActiveSourceVoiceCount; - uint32_t TotalSourceVoiceCount; - uint32_t ActiveSubmixVoiceCount; - uint32_t ActiveResamplerCount; - uint32_t ActiveMatrixMixCount; - uint32_t ActiveXmaSourceVoices; - uint32_t ActiveXmaStreams; -} FAudioPerformanceData; - -typedef struct FAudioDebugConfiguration -{ - /* See FAUDIO_LOG_* */ - uint32_t TraceMask; - uint32_t BreakMask; - /* 0 or 1 */ - int32_t LogThreadID; - int32_t LogFileline; - int32_t LogFunctionName; - int32_t LogTiming; -} FAudioDebugConfiguration; - -#pragma pack(pop) - -/* This ISN'T packed. Strictly speaking it wouldn't have mattered anyway but eh. - * See https://github.com/microsoft/DirectXTK/issues/256 - */ -typedef struct FAudioXMA2WaveFormatEx -{ - FAudioWaveFormatEx wfx; - uint16_t wNumStreams; - uint32_t dwChannelMask; - uint32_t dwSamplesEncoded; - uint32_t dwBytesPerBlock; - uint32_t dwPlayBegin; - uint32_t dwPlayLength; - uint32_t dwLoopBegin; - uint32_t dwLoopLength; - uint8_t bLoopCount; - uint8_t bEncoderVersion; - uint16_t wBlockCount; -} FAudioXMA2WaveFormat; - -/* Constants */ - -#define FAUDIO_E_OUT_OF_MEMORY 0x8007000e -#define FAUDIO_E_INVALID_ARG 0x80070057 -#define FAUDIO_E_UNSUPPORTED_FORMAT 0x88890008 -#define FAUDIO_E_INVALID_CALL 0x88960001 -#define FAUDIO_E_DEVICE_INVALIDATED 0x88960004 -#define FAPO_E_FORMAT_UNSUPPORTED 0x88970001 - -#define FAUDIO_MAX_BUFFER_BYTES 0x80000000 -#define FAUDIO_MAX_QUEUED_BUFFERS 64 -#define FAUDIO_MAX_AUDIO_CHANNELS 64 -#define FAUDIO_MIN_SAMPLE_RATE 1000 -#define FAUDIO_MAX_SAMPLE_RATE 200000 -#define FAUDIO_MAX_VOLUME_LEVEL 16777216.0f -#define FAUDIO_MIN_FREQ_RATIO (1.0f / 1024.0f) -#define FAUDIO_MAX_FREQ_RATIO 1024.0f -#define FAUDIO_DEFAULT_FREQ_RATIO 2.0f -#define FAUDIO_MAX_FILTER_ONEOVERQ 1.5f -#define FAUDIO_MAX_FILTER_FREQUENCY 1.0f -#define FAUDIO_MAX_LOOP_COUNT 254 - -#define FAUDIO_COMMIT_NOW 0 -#define FAUDIO_COMMIT_ALL 0 -#define FAUDIO_INVALID_OPSET (uint32_t) (-1) -#define FAUDIO_NO_LOOP_REGION 0 -#define FAUDIO_LOOP_INFINITE 255 -#define FAUDIO_DEFAULT_CHANNELS 0 -#define FAUDIO_DEFAULT_SAMPLERATE 0 - -#define FAUDIO_DEBUG_ENGINE 0x0001 -#define FAUDIO_VOICE_NOPITCH 0x0002 -#define FAUDIO_VOICE_NOSRC 0x0004 -#define FAUDIO_VOICE_USEFILTER 0x0008 -#define FAUDIO_VOICE_MUSIC 0x0010 -#define FAUDIO_PLAY_TAILS 0x0020 -#define FAUDIO_END_OF_STREAM 0x0040 -#define FAUDIO_SEND_USEFILTER 0x0080 -#define FAUDIO_VOICE_NOSAMPLESPLAYED 0x0100 -#define FAUDIO_1024_QUANTUM 0x8000 - -#define FAUDIO_DEFAULT_FILTER_TYPE FAudioLowPassFilter -#define FAUDIO_DEFAULT_FILTER_FREQUENCY FAUDIO_MAX_FILTER_FREQUENCY -#define FAUDIO_DEFAULT_FILTER_ONEOVERQ 1.0f - -#define FAUDIO_LOG_ERRORS 0x0001 -#define FAUDIO_LOG_WARNINGS 0x0002 -#define FAUDIO_LOG_INFO 0x0004 -#define FAUDIO_LOG_DETAIL 0x0008 -#define FAUDIO_LOG_API_CALLS 0x0010 -#define FAUDIO_LOG_FUNC_CALLS 0x0020 -#define FAUDIO_LOG_TIMING 0x0040 -#define FAUDIO_LOG_LOCKS 0x0080 -#define FAUDIO_LOG_MEMORY 0x0100 -#define FAUDIO_LOG_STREAMING 0x1000 - -#ifndef _SPEAKER_POSITIONS_ -#define SPEAKER_FRONT_LEFT 0x00000001 -#define SPEAKER_FRONT_RIGHT 0x00000002 -#define SPEAKER_FRONT_CENTER 0x00000004 -#define SPEAKER_LOW_FREQUENCY 0x00000008 -#define SPEAKER_BACK_LEFT 0x00000010 -#define SPEAKER_BACK_RIGHT 0x00000020 -#define SPEAKER_FRONT_LEFT_OF_CENTER 0x00000040 -#define SPEAKER_FRONT_RIGHT_OF_CENTER 0x00000080 -#define SPEAKER_BACK_CENTER 0x00000100 -#define SPEAKER_SIDE_LEFT 0x00000200 -#define SPEAKER_SIDE_RIGHT 0x00000400 -#define SPEAKER_TOP_CENTER 0x00000800 -#define SPEAKER_TOP_FRONT_LEFT 0x00001000 -#define SPEAKER_TOP_FRONT_CENTER 0x00002000 -#define SPEAKER_TOP_FRONT_RIGHT 0x00004000 -#define SPEAKER_TOP_BACK_LEFT 0x00008000 -#define SPEAKER_TOP_BACK_CENTER 0x00010000 -#define SPEAKER_TOP_BACK_RIGHT 0x00020000 -#define _SPEAKER_POSITIONS_ -#endif - -#ifndef SPEAKER_MONO -#define SPEAKER_MONO SPEAKER_FRONT_CENTER -#define SPEAKER_STEREO (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT) -#define SPEAKER_2POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_LOW_FREQUENCY ) -#define SPEAKER_SURROUND \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_BACK_CENTER ) -#define SPEAKER_QUAD \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT ) -#define SPEAKER_4POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT ) -#define SPEAKER_5POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT ) -#define SPEAKER_7POINT1 \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT | \ - SPEAKER_FRONT_LEFT_OF_CENTER | \ - SPEAKER_FRONT_RIGHT_OF_CENTER ) -#define SPEAKER_5POINT1_SURROUND \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_SIDE_LEFT | \ - SPEAKER_SIDE_RIGHT ) -#define SPEAKER_7POINT1_SURROUND \ - ( SPEAKER_FRONT_LEFT | \ - SPEAKER_FRONT_RIGHT | \ - SPEAKER_FRONT_CENTER | \ - SPEAKER_LOW_FREQUENCY | \ - SPEAKER_BACK_LEFT | \ - SPEAKER_BACK_RIGHT | \ - SPEAKER_SIDE_LEFT | \ - SPEAKER_SIDE_RIGHT ) -#define SPEAKER_XBOX SPEAKER_5POINT1 -#endif - -#define FAUDIO_FORMAT_PCM 1 -#define FAUDIO_FORMAT_MSADPCM 2 -#define FAUDIO_FORMAT_IEEE_FLOAT 3 -#define FAUDIO_FORMAT_WMAUDIO2 0x0161 -#define FAUDIO_FORMAT_WMAUDIO3 0x0162 -#define FAUDIO_FORMAT_WMAUDIO_LOSSLESS 0x0163 -#define FAUDIO_FORMAT_XMAUDIO2 0x0166 -#define FAUDIO_FORMAT_EXTENSIBLE 0xFFFE - -extern FAudioGUID DATAFORMAT_SUBTYPE_PCM; -extern FAudioGUID DATAFORMAT_SUBTYPE_IEEE_FLOAT; - -/* FAudio Version API */ - -#define FAUDIO_TARGET_VERSION 8 /* Targeting compatibility with XAudio 2.8 */ - -#define FAUDIO_ABI_VERSION 0 -#define FAUDIO_MAJOR_VERSION 22 -#define FAUDIO_MINOR_VERSION 8 -#define FAUDIO_PATCH_VERSION 0 - -#define FAUDIO_COMPILED_VERSION ( \ - (FAUDIO_ABI_VERSION * 100 * 100 * 100) + \ - (FAUDIO_MAJOR_VERSION * 100 * 100) + \ - (FAUDIO_MINOR_VERSION * 100) + \ - (FAUDIO_PATCH_VERSION) \ -) - -FAUDIOAPI uint32_t FAudioLinkedVersion(void); - -/* FAudio Interface */ - -/* This should be your first FAudio call. - * - * ppFAudio: Filled with the FAudio core context. - * Flags: Can be 0 or FAUDIO_DEBUG_ENGINE. - * XAudio2Processor: Set this to FAUDIO_DEFAULT_PROCESSOR. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioCreate( - FAudio **ppFAudio, - uint32_t Flags, - FAudioProcessor XAudio2Processor -); - -/* See "extensions/COMConstructEXT.txt" for more details */ -FAUDIOAPI uint32_t FAudioCOMConstructEXT(FAudio **ppFAudio, uint8_t version); - -/* Increments a reference counter. When counter is 0, audio is freed. - * Returns the reference count after incrementing. - */ -FAUDIOAPI uint32_t FAudio_AddRef(FAudio *audio); - -/* Decrements a reference counter. When counter is 0, audio is freed. - * Returns the reference count after decrementing. - */ -FAUDIOAPI uint32_t FAudio_Release(FAudio *audio); - -/* Queries the number of sound devices available for use. - * - * pCount: Filled with the number of available sound devices. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_GetDeviceCount(FAudio *audio, uint32_t *pCount); - -/* Gets basic information about a sound device. - * - * Index: Can be between 0 and the result of GetDeviceCount. - * pDeviceDetails: Filled with the device information. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_GetDeviceDetails( - FAudio *audio, - uint32_t Index, - FAudioDeviceDetails *pDeviceDetails -); - -/* You don't actually have to call this, unless you're using the COM APIs. - * See the FAudioCreate API for parameter information. - */ -FAUDIOAPI uint32_t FAudio_Initialize( - FAudio *audio, - uint32_t Flags, - FAudioProcessor XAudio2Processor -); - -/* Register a new set of engine callbacks. - * There is no limit to the number of sets, but expect performance to degrade - * if you have a whole bunch of these. You most likely only need one. - * - * pCallback: The completely-initialized FAudioEngineCallback structure. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_RegisterForCallbacks( - FAudio *audio, - FAudioEngineCallback *pCallback -); - -/* Remove an active set of engine callbacks. - * This checks the pointer value, NOT the callback values! - * - * pCallback: An FAudioEngineCallback structure previously sent to Register. - * - * Returns 0 on success. - */ -FAUDIOAPI void FAudio_UnregisterForCallbacks( - FAudio *audio, - FAudioEngineCallback *pCallback -); - -/* Creates a "source" voice, used to play back wavedata. - * - * ppSourceVoice: Filled with the source voice pointer. - * pSourceFormat: The input wavedata format, see the documentation for - * FAudioWaveFormatEx. - * Flags: Can be 0 or a mix of the following FAUDIO_VOICE_* flags: - * NOPITCH/NOSRC: Resampling is disabled. If you set this, - * the source format sample rate MUST match - * the output voices' input sample rates. - * Also, SetFrequencyRatio will fail. - * USEFILTER: Enables the use of SetFilterParameters. - * MUSIC: Unsupported. - * MaxFrequencyRatio: AKA your max pitch. This allows us to optimize the size - * of the decode/resample cache sizes. For example, if you - * only expect to raise pitch by a single octave, you can - * set this value to 2.0f. 2.0f is the default value. - * Bounds: [FAUDIO_MIN_FREQ_RATIO, FAUDIO_MAX_FREQ_RATIO]. - * pCallback: Voice callbacks, see FAudioVoiceCallback documentation. - * pSendList: List of output voices. If NULL, defaults to master. - * All output voices must have the same sample rate! - * pEffectChain: List of FAPO effects. This value can be NULL. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_CreateSourceVoice( - FAudio *audio, - FAudioSourceVoice **ppSourceVoice, - const FAudioWaveFormatEx *pSourceFormat, - uint32_t Flags, - float MaxFrequencyRatio, - FAudioVoiceCallback *pCallback, - const FAudioVoiceSends *pSendList, - const FAudioEffectChain *pEffectChain -); - -/* Creates a "submix" voice, used to mix/process input voices. - * The typical use case for this is to perform CPU-intensive tasks on large - * groups of voices all at once. Examples include resampling and FAPO effects. - * - * ppSubmixVoice: Filled with the submix voice pointer. - * InputChannels: Input voices will convert to this channel count. - * InputSampleRate: Input voices will convert to this sample rate. - * Flags: Can be 0 or FAUDIO_VOICE_USEFILTER. - * ProcessingStage: If you have multiple submixes that depend on a specific - * order of processing, you can sort them by setting this - * value to prioritize them. For example, submixes with - * stage 0 will process first, then stage 1, 2, and so on. - * pSendList: List of output voices. If NULL, defaults to master. - * All output voices must have the same sample rate! - * pEffectChain: List of FAPO effects. This value can be NULL. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_CreateSubmixVoice( - FAudio *audio, - FAudioSubmixVoice **ppSubmixVoice, - uint32_t InputChannels, - uint32_t InputSampleRate, - uint32_t Flags, - uint32_t ProcessingStage, - const FAudioVoiceSends *pSendList, - const FAudioEffectChain *pEffectChain -); - -/* This should be your second FAudio call, unless you care about which device - * you want to use. In that case, see GetDeviceDetails. - * - * ppMasteringVoice: Filled with the mastering voice pointer. - * InputChannels: Device channel count. Can be FAUDIO_DEFAULT_CHANNELS. - * InputSampleRate: Device sample rate. Can be FAUDIO_DEFAULT_SAMPLERATE. - * Flags: This value must be 0. - * DeviceIndex: 0 for the default device. See GetDeviceCount. - * pEffectChain: List of FAPO effects. This value can be NULL. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_CreateMasteringVoice( - FAudio *audio, - FAudioMasteringVoice **ppMasteringVoice, - uint32_t InputChannels, - uint32_t InputSampleRate, - uint32_t Flags, - uint32_t DeviceIndex, - const FAudioEffectChain *pEffectChain -); - -/* This is the XAudio 2.8+ version of CreateMasteringVoice. - * Right now this doesn't do anything. Don't use this function. - */ -FAUDIOAPI uint32_t FAudio_CreateMasteringVoice8( - FAudio *audio, - FAudioMasteringVoice **ppMasteringVoice, - uint32_t InputChannels, - uint32_t InputSampleRate, - uint32_t Flags, - uint16_t *szDeviceId, - const FAudioEffectChain *pEffectChain, - FAudioStreamCategory StreamCategory -); - -/* Starts the engine, begins processing the audio graph. - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_StartEngine(FAudio *audio); - -/* Stops the engine and halts all processing. - * The audio device will continue to run, but will produce silence. - * The graph will be frozen until you call StartEngine, where it will then - * resume all processing exactly as it would have had this never been called. - */ -FAUDIOAPI void FAudio_StopEngine(FAudio *audio); - -/* Flushes a batch of FAudio calls compiled with a given "OperationSet" tag. - * This function is based on IXAudio2::CommitChanges from the XAudio2 spec. - * This is useful for pushing calls that need to be done perfectly in sync. For - * example, if you want to play two separate sources at the exact same time, you - * can call FAudioSourceVoice_Start with an OperationSet value of your choice, - * then call CommitChanges with that same value to start the sources together. - * - * OperationSet: Either a value known by you or FAUDIO_COMMIT_ALL - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudio_CommitOperationSet( - FAudio *audio, - uint32_t OperationSet -); - -/* DO NOT USE THIS FUNCTION OR I SWEAR TO GOD */ -FAUDIODEPRECATED("This function will break your program! Use FAudio_CommitOperationSet instead!") -FAUDIOAPI uint32_t FAudio_CommitChanges(FAudio *audio); - -/* Requests various bits of performance information from the engine. - * - * pPerfData: Filled with the data. See FAudioPerformanceData for details. - */ -FAUDIOAPI void FAudio_GetPerformanceData( - FAudio *audio, - FAudioPerformanceData *pPerfData -); - -/* When using a Debug binary, this lets you configure what information gets - * logged to output. Be careful, this can spit out a LOT of text. - * - * pDebugConfiguration: See FAudioDebugConfiguration for details. - * pReserved: Set this to NULL. - */ -FAUDIOAPI void FAudio_SetDebugConfiguration( - FAudio *audio, - FAudioDebugConfiguration *pDebugConfiguration, - void* pReserved -); - -/* Requests the values that determine's the engine's update size. - * For example, a 48KHz engine with a 1024-sample update period would return - * 1024 for the numerator and 48000 for the denominator. With this information, - * you can determine the precise update size in milliseconds. - * - * quantumNumerator - The engine's update size, in sample frames. - * quantumDenominator - The engine's sample rate, in Hz - */ -FAUDIOAPI void FAudio_GetProcessingQuantum( - FAudio *audio, - uint32_t *quantumNumerator, - uint32_t *quantumDenominator -); - -/* FAudioVoice Interface */ - -/* Requests basic information about a voice. - * - * pVoiceDetails: See FAudioVoiceDetails for details. - */ -FAUDIOAPI void FAudioVoice_GetVoiceDetails( - FAudioVoice *voice, - FAudioVoiceDetails *pVoiceDetails -); - -/* Change the output voices for this voice. - * This function is invalid for mastering voices. - * - * pSendList: List of output voices. If NULL, defaults to master. - * All output voices must have the same sample rate! - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetOutputVoices( - FAudioVoice *voice, - const FAudioVoiceSends *pSendList -); - -/* Change/Remove the effect chain for this voice. - * - * pEffectChain: List of FAPO effects. This value can be NULL. - * Note that the final channel counts for this chain MUST - * match the input/output channel count that was - * determined at voice creation time! - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetEffectChain( - FAudioVoice *voice, - const FAudioEffectChain *pEffectChain -); - -/* Enables an effect in the effect chain. - * - * EffectIndex: The index of the effect (based on the chain order). - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_EnableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -); - -/* Disables an effect in the effect chain. - * - * EffectIndex: The index of the effect (based on the chain order). - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_DisableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -); - -/* Queries the enabled/disabled state of an effect in the effect chain. - * - * EffectIndex: The index of the effect (based on the chain order). - * pEnabled: Filled with either 1 (Enabled) or 0 (Disabled). - * - * Returns 0 on success. - */ -FAUDIOAPI void FAudioVoice_GetEffectState( - FAudioVoice *voice, - uint32_t EffectIndex, - int32_t *pEnabled -); - -/* Submits a block of memory to be sent to FAPO::SetParameters. - * - * EffectIndex: The index of the effect (based on the chain order). - * pParameters: The values to be copied and submitted to the FAPO. - * ParametersByteSize: This should match what the FAPO expects! - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetEffectParameters( - FAudioVoice *voice, - uint32_t EffectIndex, - const void *pParameters, - uint32_t ParametersByteSize, - uint32_t OperationSet -); - -/* Requests the latest parameters from FAPO::GetParameters. - * - * EffectIndex: The index of the effect (based on the chain order). - * pParameters: Filled with the latest parameter values from the FAPO. - * ParametersByteSize: This should match what the FAPO expects! - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_GetEffectParameters( - FAudioVoice *voice, - uint32_t EffectIndex, - void *pParameters, - uint32_t ParametersByteSize -); - -/* Sets the filter variables for a voice. - * This is only valid on voices with the USEFILTER flag. - * - * pParameters: See FAudioFilterParameters for details. - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetFilterParameters( - FAudioVoice *voice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -); - -/* Requests the filter variables for a voice. - * This is only valid on voices with the USEFILTER flag. - * - * pParameters: See FAudioFilterParameters for details. - */ -FAUDIOAPI void FAudioVoice_GetFilterParameters( - FAudioVoice *voice, - FAudioFilterParameters *pParameters -); - -/* Sets the filter variables for a voice's output voice. - * This is only valid on sends with the USEFILTER flag. - * - * pDestinationVoice: An output voice from the voice's send list. - * pParameters: See FAudioFilterParameters for details. - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetOutputFilterParameters( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -); - -/* Requests the filter variables for a voice's output voice. - * This is only valid on sends with the USEFILTER flag. - * - * pDestinationVoice: An output voice from the voice's send list. - * pParameters: See FAudioFilterParameters for details. - */ -FAUDIOAPI void FAudioVoice_GetOutputFilterParameters( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - FAudioFilterParameters *pParameters -); - -/* Sets the global volume of a voice. - * - * Volume: Amplitude ratio. 1.0f is default, 0.0f is silence. - * Note that you can actually set volume < 0.0f! - * Bounds: [-FAUDIO_MAX_VOLUME_LEVEL, FAUDIO_MAX_VOLUME_LEVEL] - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetVolume( - FAudioVoice *voice, - float Volume, - uint32_t OperationSet -); - -/* Requests the global volume of a voice. - * - * pVolume: Filled with the current voice amplitude ratio. - */ -FAUDIOAPI void FAudioVoice_GetVolume( - FAudioVoice *voice, - float *pVolume -); - -/* Sets the per-channel volumes of a voice. - * - * Channels: Must match the channel count of this voice! - * pVolumes: Amplitude ratios for each channel. Same as SetVolume. - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetChannelVolumes( - FAudioVoice *voice, - uint32_t Channels, - const float *pVolumes, - uint32_t OperationSet -); - -/* Requests the per-channel volumes of a voice. - * - * Channels: Must match the channel count of this voice! - * pVolumes: Filled with the current channel amplitude ratios. - */ -FAUDIOAPI void FAudioVoice_GetChannelVolumes( - FAudioVoice *voice, - uint32_t Channels, - float *pVolumes -); - -/* Sets the volumes of a send's output channels. The matrix is based on the - * voice's input channels. For example, the default matrix for a 2-channel - * source and a 2-channel output voice is as follows: - * [0] = 1.0f; <- Left input, left output - * [1] = 0.0f; <- Right input, left output - * [2] = 0.0f; <- Left input, right output - * [3] = 1.0f; <- Right input, right output - * This is typically only used for panning or 3D sound (via F3DAudio). - * - * pDestinationVoice: An output voice from the voice's send list. - * SourceChannels: Must match the voice's input channel count! - * DestinationChannels: Must match the destination's input channel count! - * pLevelMatrix: A float[SourceChannels * DestinationChannels]. - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioVoice_SetOutputMatrix( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - uint32_t SourceChannels, - uint32_t DestinationChannels, - const float *pLevelMatrix, - uint32_t OperationSet -); - -/* Gets the volumes of a send's output channels. See SetOutputMatrix. - * - * pDestinationVoice: An output voice from the voice's send list. - * SourceChannels: Must match the voice's input channel count! - * DestinationChannels: Must match the voice's output channel count! - * pLevelMatrix: A float[SourceChannels * DestinationChannels]. - */ -FAUDIOAPI void FAudioVoice_GetOutputMatrix( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - uint32_t SourceChannels, - uint32_t DestinationChannels, - float *pLevelMatrix -); - -/* Removes this voice from the audio graph and frees memory. */ -FAUDIOAPI void FAudioVoice_DestroyVoice(FAudioVoice *voice); - -/* FAudioSourceVoice Interface */ - -/* Starts processing for a source voice. - * - * Flags: Must be 0. - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_Start( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -); - -/* Pauses processing for a source voice. Yes, I said pausing. - * If you want to _actually_ stop, call FlushSourceBuffers next. - * - * Flags: Can be 0 or FAUDIO_PLAY_TAILS, which allows effects to - * keep emitting output even after processing has stopped. - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_Stop( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -); - -/* Submits a block of wavedata for the source to process. - * - * pBuffer: See FAudioBuffer for details. - * pBufferWMA: See FAudioBufferWMA for details. (Also, don't use WMA.) - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_SubmitSourceBuffer( - FAudioSourceVoice *voice, - const FAudioBuffer *pBuffer, - const FAudioBufferWMA *pBufferWMA -); - -/* Removes all buffers from a source, with a minor exception. - * If the voice is still playing, the active buffer is left alone. - * All buffers that are removed will spawn an OnBufferEnd callback. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_FlushSourceBuffers( - FAudioSourceVoice *voice -); - -/* Takes the last buffer currently queued and sets the END_OF_STREAM flag. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_Discontinuity( - FAudioSourceVoice *voice -); - -/* Sets the loop count of the active buffer to 0. - * - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_ExitLoop( - FAudioSourceVoice *voice, - uint32_t OperationSet -); - -/* Requests the state and some basic statistics for this source. - * - * pVoiceState: See FAudioVoiceState for details. - * Flags: Can be 0 or FAUDIO_VOICE_NOSAMPLESPLAYED. - */ -FAUDIOAPI void FAudioSourceVoice_GetState( - FAudioSourceVoice *voice, - FAudioVoiceState *pVoiceState, - uint32_t Flags -); - -/* Sets the frequency ratio (fancy phrase for pitch) of this source. - * - * Ratio: The frequency ratio, must be <= MaxFrequencyRatio. - * OperationSet: See CommitChanges. Default is FAUDIO_COMMIT_NOW. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_SetFrequencyRatio( - FAudioSourceVoice *voice, - float Ratio, - uint32_t OperationSet -); - -/* Requests the frequency ratio (fancy phrase for pitch) of this source. - * - * pRatio: Filled with the frequency ratio. - */ -FAUDIOAPI void FAudioSourceVoice_GetFrequencyRatio( - FAudioSourceVoice *voice, - float *pRatio -); - -/* Resets the core sample rate of this source. - * You probably don't want this, it's more likely you want SetFrequencyRatio. - * This is used to recycle voices without having to constantly reallocate them. - * For example, if you have wavedata that's all float32 mono, but the sample - * rates are different, you can take a source that was being used for a 48KHz - * wave and call this so it can be used for a 44.1KHz wave. - * - * NewSourceSampleRate: The new sample rate for this source. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioSourceVoice_SetSourceSampleRate( - FAudioSourceVoice *voice, - uint32_t NewSourceSampleRate -); - -/* FAudioMasteringVoice Interface */ - -/* Requests the channel mask for the mastering voice. - * This is typically used with F3DAudioInitialize, but you may find it - * interesting if you want to see the user's basic speaker layout. - * - * pChannelMask: Filled with the channel mask. - * - * Returns 0 on success. - */ -FAUDIOAPI uint32_t FAudioMasteringVoice_GetChannelMask( - FAudioMasteringVoice *voice, - uint32_t *pChannelMask -); - -/* FAudioEngineCallback Interface */ - -/* If something horrible happens, this will be called. - * - * Error: The error code that spawned this callback. - */ -typedef void (FAUDIOCALL * OnCriticalErrorFunc)( - FAudioEngineCallback *callback, - uint32_t Error -); - -/* This is called at the end of a processing update. */ -typedef void (FAUDIOCALL * OnProcessingPassEndFunc)( - FAudioEngineCallback *callback -); - -/* This is called at the beginning of a processing update. */ -typedef void (FAUDIOCALL * OnProcessingPassStartFunc)( - FAudioEngineCallback *callback -); - -struct FAudioEngineCallback -{ - OnCriticalErrorFunc OnCriticalError; - OnProcessingPassEndFunc OnProcessingPassEnd; - OnProcessingPassStartFunc OnProcessingPassStart; -}; - -/* FAudioVoiceCallback Interface */ - -/* When a buffer is no longer in use, this is called. - * - * pBufferContext: The pContext for the FAudioBuffer in question. - */ -typedef void (FAUDIOCALL * OnBufferEndFunc)( - FAudioVoiceCallback *callback, - void *pBufferContext -); - -/* When a buffer is now being used, this is called. - * - * pBufferContext: The pContext for the FAudioBuffer in question. - */ -typedef void (FAUDIOCALL * OnBufferStartFunc)( - FAudioVoiceCallback *callback, - void *pBufferContext -); - -/* When a buffer completes a loop, this is called. - * - * pBufferContext: The pContext for the FAudioBuffer in question. - */ -typedef void (FAUDIOCALL * OnLoopEndFunc)( - FAudioVoiceCallback *callback, - void *pBufferContext -); - -/* When a buffer that has the END_OF_STREAM flag is finished, this is called. */ -typedef void (FAUDIOCALL * OnStreamEndFunc)( - FAudioVoiceCallback *callback -); - -/* If something horrible happens to a voice, this is called. - * - * pBufferContext: The pContext for the FAudioBuffer in question. - * Error: The error code that spawned this callback. - */ -typedef void (FAUDIOCALL * OnVoiceErrorFunc)( - FAudioVoiceCallback *callback, - void *pBufferContext, - uint32_t Error -); - -/* When this voice is done being processed, this is called. */ -typedef void (FAUDIOCALL * OnVoiceProcessingPassEndFunc)( - FAudioVoiceCallback *callback -); - -/* When a voice is about to start being processed, this is called. - * - * BytesRequested: The number of bytes needed from the application to - * complete a full update. For example, if we need 512 - * frames for a whole update, and the voice is a float32 - * stereo source, BytesRequired will be 4096. - */ -typedef void (FAUDIOCALL * OnVoiceProcessingPassStartFunc)( - FAudioVoiceCallback *callback, - uint32_t BytesRequired -); - -struct FAudioVoiceCallback -{ - OnBufferEndFunc OnBufferEnd; - OnBufferStartFunc OnBufferStart; - OnLoopEndFunc OnLoopEnd; - OnStreamEndFunc OnStreamEnd; - OnVoiceErrorFunc OnVoiceError; - OnVoiceProcessingPassEndFunc OnVoiceProcessingPassEnd; - OnVoiceProcessingPassStartFunc OnVoiceProcessingPassStart; -}; - -/* FAudio Custom Allocator API - * See "extensions/CustomAllocatorEXT.txt" for more information. - */ - -typedef void* (FAUDIOCALL * FAudioMallocFunc)(size_t size); -typedef void (FAUDIOCALL * FAudioFreeFunc)(void* ptr); -typedef void* (FAUDIOCALL * FAudioReallocFunc)(void* ptr, size_t size); - -FAUDIOAPI uint32_t FAudioCreateWithCustomAllocatorEXT( - FAudio **ppFAudio, - uint32_t Flags, - FAudioProcessor XAudio2Processor, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); -FAUDIOAPI uint32_t FAudioCOMConstructWithCustomAllocatorEXT( - FAudio **ppFAudio, - uint8_t version, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -/* FAudio Engine Procedure API - * See "extensions/EngineProcedureEXT.txt" for more information. - */ -typedef void (FAUDIOCALL *FAudioEngineCallEXT)(FAudio *audio, float *output); -typedef void (FAUDIOCALL *FAudioEngineProcedureEXT)(FAudioEngineCallEXT defaultEngineProc, FAudio *audio, float *output, void *user); - -FAUDIOAPI void FAudio_SetEngineProcedureEXT( - FAudio *audio, - FAudioEngineProcedureEXT clientEngineProc, - void *user -); - - -/* FAudio I/O API */ - -#define FAUDIO_SEEK_SET 0 -#define FAUDIO_SEEK_CUR 1 -#define FAUDIO_SEEK_END 2 -#define FAUDIO_EOF -1 - -typedef size_t (FAUDIOCALL * FAudio_readfunc)( - void *data, - void *dst, - size_t size, - size_t count -); -typedef int64_t (FAUDIOCALL * FAudio_seekfunc)( - void *data, - int64_t offset, - int whence -); -typedef int (FAUDIOCALL * FAudio_closefunc)( - void *data -); - -typedef struct FAudioIOStream -{ - void *data; - FAudio_readfunc read; - FAudio_seekfunc seek; - FAudio_closefunc close; - void *lock; -} FAudioIOStream; - -FAUDIOAPI FAudioIOStream* FAudio_fopen(const char *path); -FAUDIOAPI FAudioIOStream* FAudio_memopen(void *mem, int len); -FAUDIOAPI uint8_t* FAudio_memptr(FAudioIOStream *io, size_t offset); -FAUDIOAPI void FAudio_close(FAudioIOStream *io); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FAUDIO_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAudioFX.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAudioFX.h deleted file mode 100644 index ca326fde..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/include/FAudioFX.h +++ /dev/null @@ -1,308 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* This file has no documentation since the MSDN docs are still perfectly fine: - * https://docs.microsoft.com/en-us/windows/desktop/api/xaudio2fx/ - * - * Note, however, that FAudio's Reverb implementation does NOT support the new - * parameters for XAudio 2.9's 7.1 Reverb effect! - */ - -#ifndef FAUDIOFX_H -#define FAUDIOFX_H - -#include "FAudio.h" - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* GUIDs */ - -extern const FAudioGUID FAudioFX_CLSID_AudioVolumeMeter; -extern const FAudioGUID FAudioFX_CLSID_AudioReverb; - -/* Structures */ - -#pragma pack(push, 1) - -typedef struct FAudioFXVolumeMeterLevels -{ - float *pPeakLevels; - float *pRMSLevels; - uint32_t ChannelCount; -} FAudioFXVolumeMeterLevels; - -typedef struct FAudioFXReverbParameters -{ - float WetDryMix; - uint32_t ReflectionsDelay; - uint8_t ReverbDelay; - uint8_t RearDelay; - uint8_t PositionLeft; - uint8_t PositionRight; - uint8_t PositionMatrixLeft; - uint8_t PositionMatrixRight; - uint8_t EarlyDiffusion; - uint8_t LateDiffusion; - uint8_t LowEQGain; - uint8_t LowEQCutoff; - uint8_t HighEQGain; - uint8_t HighEQCutoff; - float RoomFilterFreq; - float RoomFilterMain; - float RoomFilterHF; - float ReflectionsGain; - float ReverbGain; - float DecayTime; - float Density; - float RoomSize; -} FAudioFXReverbParameters; - -typedef struct FAudioFXReverbParameters9 -{ - float WetDryMix; - uint32_t ReflectionsDelay; - uint8_t ReverbDelay; - uint8_t RearDelay; - uint8_t SideDelay; - uint8_t PositionLeft; - uint8_t PositionRight; - uint8_t PositionMatrixLeft; - uint8_t PositionMatrixRight; - uint8_t EarlyDiffusion; - uint8_t LateDiffusion; - uint8_t LowEQGain; - uint8_t LowEQCutoff; - uint8_t HighEQGain; - uint8_t HighEQCutoff; - float RoomFilterFreq; - float RoomFilterMain; - float RoomFilterHF; - float ReflectionsGain; - float ReverbGain; - float DecayTime; - float Density; - float RoomSize; -} FAudioFXReverbParameters9; - -typedef struct FAudioFXReverbI3DL2Parameters -{ - float WetDryMix; - int32_t Room; - int32_t RoomHF; - float RoomRolloffFactor; - float DecayTime; - float DecayHFRatio; - int32_t Reflections; - float ReflectionsDelay; - int32_t Reverb; - float ReverbDelay; - float Diffusion; - float Density; - float HFReference; -} FAudioFXReverbI3DL2Parameters; - -#pragma pack(pop) - -/* Constants */ - -#define FAUDIOFX_DEBUG 1 - -#define FAUDIOFX_REVERB_MIN_FRAMERATE 20000 -#define FAUDIOFX_REVERB_MAX_FRAMERATE 48000 - -#define FAUDIOFX_REVERB_MIN_WET_DRY_MIX 0.0f -#define FAUDIOFX_REVERB_MIN_REFLECTIONS_DELAY 0 -#define FAUDIOFX_REVERB_MIN_REVERB_DELAY 0 -#define FAUDIOFX_REVERB_MIN_REAR_DELAY 0 -#define FAUDIOFX_REVERB_MIN_7POINT1_SIDE_DELAY 0 -#define FAUDIOFX_REVERB_MIN_7POINT1_REAR_DELAY 0 -#define FAUDIOFX_REVERB_MIN_POSITION 0 -#define FAUDIOFX_REVERB_MIN_DIFFUSION 0 -#define FAUDIOFX_REVERB_MIN_LOW_EQ_GAIN 0 -#define FAUDIOFX_REVERB_MIN_LOW_EQ_CUTOFF 0 -#define FAUDIOFX_REVERB_MIN_HIGH_EQ_GAIN 0 -#define FAUDIOFX_REVERB_MIN_HIGH_EQ_CUTOFF 0 -#define FAUDIOFX_REVERB_MIN_ROOM_FILTER_FREQ 20.0f -#define FAUDIOFX_REVERB_MIN_ROOM_FILTER_MAIN -100.0f -#define FAUDIOFX_REVERB_MIN_ROOM_FILTER_HF -100.0f -#define FAUDIOFX_REVERB_MIN_REFLECTIONS_GAIN -100.0f -#define FAUDIOFX_REVERB_MIN_REVERB_GAIN -100.0f -#define FAUDIOFX_REVERB_MIN_DECAY_TIME 0.1f -#define FAUDIOFX_REVERB_MIN_DENSITY 0.0f -#define FAUDIOFX_REVERB_MIN_ROOM_SIZE 0.0f - -#define FAUDIOFX_REVERB_MAX_WET_DRY_MIX 100.0f -#define FAUDIOFX_REVERB_MAX_REFLECTIONS_DELAY 300 -#define FAUDIOFX_REVERB_MAX_REVERB_DELAY 85 -#define FAUDIOFX_REVERB_MAX_REAR_DELAY 5 -#define FAUDIOFX_REVERB_MAX_7POINT1_SIDE_DELAY 5 -#define FAUDIOFX_REVERB_MAX_7POINT1_REAR_DELAY 20 -#define FAUDIOFX_REVERB_MAX_POSITION 30 -#define FAUDIOFX_REVERB_MAX_DIFFUSION 15 -#define FAUDIOFX_REVERB_MAX_LOW_EQ_GAIN 12 -#define FAUDIOFX_REVERB_MAX_LOW_EQ_CUTOFF 9 -#define FAUDIOFX_REVERB_MAX_HIGH_EQ_GAIN 8 -#define FAUDIOFX_REVERB_MAX_HIGH_EQ_CUTOFF 14 -#define FAUDIOFX_REVERB_MAX_ROOM_FILTER_FREQ 20000.0f -#define FAUDIOFX_REVERB_MAX_ROOM_FILTER_MAIN 0.0f -#define FAUDIOFX_REVERB_MAX_ROOM_FILTER_HF 0.0f -#define FAUDIOFX_REVERB_MAX_REFLECTIONS_GAIN 20.0f -#define FAUDIOFX_REVERB_MAX_REVERB_GAIN 20.0f -#define FAUDIOFX_REVERB_MAX_DENSITY 100.0f -#define FAUDIOFX_REVERB_MAX_ROOM_SIZE 100.0f - -#define FAUDIOFX_REVERB_DEFAULT_WET_DRY_MIX 100.0f -#define FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_DELAY 5 -#define FAUDIOFX_REVERB_DEFAULT_REVERB_DELAY 5 -#define FAUDIOFX_REVERB_DEFAULT_REAR_DELAY 5 -#define FAUDIOFX_REVERB_DEFAULT_7POINT1_SIDE_DELAY 5 -#define FAUDIOFX_REVERB_DEFAULT_7POINT1_REAR_DELAY 20 -#define FAUDIOFX_REVERB_DEFAULT_POSITION 6 -#define FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX 27 -#define FAUDIOFX_REVERB_DEFAULT_EARLY_DIFFUSION 8 -#define FAUDIOFX_REVERB_DEFAULT_LATE_DIFFUSION 8 -#define FAUDIOFX_REVERB_DEFAULT_LOW_EQ_GAIN 8 -#define FAUDIOFX_REVERB_DEFAULT_LOW_EQ_CUTOFF 4 -#define FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_GAIN 8 -#define FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_CUTOFF 4 -#define FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_FREQ 5000.0f -#define FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_MAIN 0.0f -#define FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_HF 0.0f -#define FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_GAIN 0.0f -#define FAUDIOFX_REVERB_DEFAULT_REVERB_GAIN 0.0f -#define FAUDIOFX_REVERB_DEFAULT_DECAY_TIME 1.0f -#define FAUDIOFX_REVERB_DEFAULT_DENSITY 100.0f -#define FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE 100.0f - -#define FAUDIOFX_I3DL2_PRESET_DEFAULT \ - {100,-10000, 0,0.0f, 1.00f,0.50f,-10000,0.020f,-10000,0.040f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_GENERIC \ - {100, -1000, -100,0.0f, 1.49f,0.83f, -2602,0.007f, 200,0.011f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_PADDEDCELL \ - {100, -1000,-6000,0.0f, 0.17f,0.10f, -1204,0.001f, 207,0.002f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_ROOM \ - {100, -1000, -454,0.0f, 0.40f,0.83f, -1646,0.002f, 53,0.003f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_BATHROOM \ - {100, -1000,-1200,0.0f, 1.49f,0.54f, -370,0.007f, 1030,0.011f,100.0f, 60.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_LIVINGROOM \ - {100, -1000,-6000,0.0f, 0.50f,0.10f, -1376,0.003f, -1104,0.004f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_STONEROOM \ - {100, -1000, -300,0.0f, 2.31f,0.64f, -711,0.012f, 83,0.017f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_AUDITORIUM \ - {100, -1000, -476,0.0f, 4.32f,0.59f, -789,0.020f, -289,0.030f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_CONCERTHALL \ - {100, -1000, -500,0.0f, 3.92f,0.70f, -1230,0.020f, -2,0.029f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_CAVE \ - {100, -1000, 0,0.0f, 2.91f,1.30f, -602,0.015f, -302,0.022f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_ARENA \ - {100, -1000, -698,0.0f, 7.24f,0.33f, -1166,0.020f, 16,0.030f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_HANGAR \ - {100, -1000,-1000,0.0f,10.05f,0.23f, -602,0.020f, 198,0.030f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_CARPETEDHALLWAY \ - {100, -1000,-4000,0.0f, 0.30f,0.10f, -1831,0.002f, -1630,0.030f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_HALLWAY \ - {100, -1000, -300,0.0f, 1.49f,0.59f, -1219,0.007f, 441,0.011f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_STONECORRIDOR \ - {100, -1000, -237,0.0f, 2.70f,0.79f, -1214,0.013f, 395,0.020f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_ALLEY \ - {100, -1000, -270,0.0f, 1.49f,0.86f, -1204,0.007f, -4,0.011f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_FOREST \ - {100, -1000,-3300,0.0f, 1.49f,0.54f, -2560,0.162f, -613,0.088f, 79.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_CITY \ - {100, -1000, -800,0.0f, 1.49f,0.67f, -2273,0.007f, -2217,0.011f, 50.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_MOUNTAINS \ - {100, -1000,-2500,0.0f, 1.49f,0.21f, -2780,0.300f, -2014,0.100f, 27.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_QUARRY \ - {100, -1000,-1000,0.0f, 1.49f,0.83f,-10000,0.061f, 500,0.025f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_PLAIN \ - {100, -1000,-2000,0.0f, 1.49f,0.50f, -2466,0.179f, -2514,0.100f, 21.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_PARKINGLOT \ - {100, -1000, 0,0.0f, 1.65f,1.50f, -1363,0.008f, -1153,0.012f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_SEWERPIPE \ - {100, -1000,-1000,0.0f, 2.81f,0.14f, 429,0.014f, 648,0.021f, 80.0f, 60.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_UNDERWATER \ - {100, -1000,-4000,0.0f, 1.49f,0.10f, -449,0.007f, 1700,0.011f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_SMALLROOM \ - {100, -1000, -600,0.0f, 1.10f,0.83f, -400,0.005f, 500,0.010f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_MEDIUMROOM \ - {100, -1000, -600,0.0f, 1.30f,0.83f, -1000,0.010f, -200,0.020f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_LARGEROOM \ - {100, -1000, -600,0.0f, 1.50f,0.83f, -1600,0.020f, -1000,0.040f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_MEDIUMHALL \ - {100, -1000, -600,0.0f, 1.80f,0.70f, -1300,0.015f, -800,0.030f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_LARGEHALL \ - {100, -1000, -600,0.0f, 1.80f,0.70f, -2000,0.030f, -1400,0.060f,100.0f,100.0f,5000.0f} -#define FAUDIOFX_I3DL2_PRESET_PLATE \ - {100, -1000, -200,0.0f, 1.30f,0.90f, 0,0.002f, 0,0.010f,100.0f, 75.0f,5000.0f} - -/* Functions */ - -FAUDIOAPI uint32_t FAudioCreateVolumeMeter(FAPO** ppApo, uint32_t Flags); -FAUDIOAPI uint32_t FAudioCreateReverb(FAPO** ppApo, uint32_t Flags); -FAUDIOAPI uint32_t FAudioCreateReverb9(FAPO** ppApo, uint32_t Flags); - -/* See "extensions/CustomAllocatorEXT.txt" for more information. */ -FAUDIOAPI uint32_t FAudioCreateVolumeMeterWithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); -FAUDIOAPI uint32_t FAudioCreateReverbWithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); -FAUDIOAPI uint32_t FAudioCreateReverb9WithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -); - -FAUDIOAPI void ReverbConvertI3DL2ToNative( - const FAudioFXReverbI3DL2Parameters *pI3DL2, - FAudioFXReverbParameters *pNative -); -FAUDIOAPI void ReverbConvertI3DL2ToNative9( - const FAudioFXReverbI3DL2Parameters *pI3DL2, - FAudioFXReverbParameters9 *pNative, - int32_t sevenDotOneReverb -); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FAUDIOFX_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/F3DAudio.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/F3DAudio.c deleted file mode 100644 index 8b9db590..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/F3DAudio.c +++ /dev/null @@ -1,1563 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "F3DAudio.h" -#include "FAudio_internal.h" - -#include /* ONLY USE THIS FOR isnan! */ -#include /* ONLY USE THIS FOR FLT_MIN/FLT_MAX! */ - -/* VS2010 doesn't define isnan (which is C99), so here it is. */ -#if defined(_MSC_VER) && !defined(isnan) -#define isnan(x) _isnan(x) -#endif - -/* UTILITY MACROS */ - -#define PARAM_CHECK_OK 1 -#define PARAM_CHECK_FAIL (!PARAM_CHECK_OK) - -#define ARRAY_COUNT(x) (sizeof(x) / sizeof(x[0])) - -#define LERP(a, x, y) ((1.0f - a) * x + a * y) - -/* PARAMETER CHECK MACROS */ - -#define PARAM_CHECK(cond, msg) FAudio_assert(cond && msg) - -#define POINTER_CHECK(p) \ - PARAM_CHECK(p != NULL, "Pointer " #p " must be != NULL") - -#define FLOAT_BETWEEN_CHECK(f, a, b) \ - PARAM_CHECK(f >= a, "Value" #f " is too low"); \ - PARAM_CHECK(f <= b, "Value" #f " is too big") - - -/* Quote X3DAUDIO docs: - * "To be considered orthonormal, a pair of vectors must have a magnitude of - * 1 +- 1x10-5 and a dot product of 0 +- 1x10-5." - * VECTOR_NORMAL_CHECK verifies that vectors are normal (i.e. have norm 1 +- 1x10-5) - * VECTOR_BASE_CHECK verifies that a pair of vectors are orthogonal (i.e. their dot - * product is 0 +- 1x10-5) - */ - -/* TODO: Switch to square length (to save CPU) */ -#define VECTOR_NORMAL_CHECK(v) \ - PARAM_CHECK( \ - FAudio_fabsf(VectorLength(v) - 1.0f) <= 1e-5f, \ - "Vector " #v " isn't normal" \ - ) - -#define VECTOR_BASE_CHECK(u, v) \ - PARAM_CHECK( \ - FAudio_fabsf(VectorDot(u, v)) <= 1e-5f, \ - "Vector u and v have non-negligible dot product" \ - ) - -/************************************* - * F3DAudioInitialize Implementation * - *************************************/ - -/* F3DAUDIO_HANDLE Structure */ -#define SPEAKERMASK(Instance) *((uint32_t*) &Instance[0]) -#define SPEAKERCOUNT(Instance) *((uint32_t*) &Instance[4]) -#define SPEAKER_LF_INDEX(Instance) *((uint32_t*) &Instance[8]) -#define SPEEDOFSOUND(Instance) *((float*) &Instance[12]) -#define SPEEDOFSOUNDEPSILON(Instance) *((float*) &Instance[16]) - -/* Export for unit tests */ -F3DAUDIOAPI uint32_t F3DAudioCheckInitParams( - uint32_t SpeakerChannelMask, - float SpeedOfSound, - F3DAUDIO_HANDLE instance -) { - const uint32_t kAllowedSpeakerMasks[] = - { - SPEAKER_MONO, - SPEAKER_STEREO, - SPEAKER_2POINT1, - SPEAKER_QUAD, - SPEAKER_SURROUND, - SPEAKER_4POINT1, - SPEAKER_5POINT1, - SPEAKER_5POINT1_SURROUND, - SPEAKER_7POINT1, - SPEAKER_7POINT1_SURROUND, - }; - uint8_t speakerMaskIsValid = 0; - uint32_t i; - - POINTER_CHECK(instance); - - for (i = 0; i < ARRAY_COUNT(kAllowedSpeakerMasks); i += 1) - { - if (SpeakerChannelMask == kAllowedSpeakerMasks[i]) - { - speakerMaskIsValid = 1; - break; - } - } - - /* The docs don't clearly say it, but the debug dll does check that - * we're exactly in one of the allowed speaker configurations. - * -Adrien - */ - PARAM_CHECK( - speakerMaskIsValid == 1, - "SpeakerChannelMask is invalid. Needs to be one of" - " MONO, STEREO, QUAD, 2POINT1, 4POINT1, 5POINT1, 7POINT1," - " SURROUND, 5POINT1_SURROUND, or 7POINT1_SURROUND." - ); - - PARAM_CHECK(SpeedOfSound >= FLT_MIN, "SpeedOfSound needs to be >= FLT_MIN"); - - return PARAM_CHECK_OK; -} - -void F3DAudioInitialize( - uint32_t SpeakerChannelMask, - float SpeedOfSound, - F3DAUDIO_HANDLE Instance -) { - F3DAudioInitialize8(SpeakerChannelMask, SpeedOfSound, Instance); -} - -uint32_t F3DAudioInitialize8( - uint32_t SpeakerChannelMask, - float SpeedOfSound, - F3DAUDIO_HANDLE Instance -) { - union - { - float f; - uint32_t i; - } epsilonHack; - uint32_t speakerCount = 0; - - if (!F3DAudioCheckInitParams(SpeakerChannelMask, SpeedOfSound, Instance)) - { - return FAUDIO_E_INVALID_CALL; - } - - SPEAKERMASK(Instance) = SpeakerChannelMask; - SPEEDOFSOUND(Instance) = SpeedOfSound; - - /* "Convert" raw float to int... */ - epsilonHack.f = SpeedOfSound; - /* ... Subtract epsilon value... */ - epsilonHack.i -= 1; - /* ... Convert back to float. */ - SPEEDOFSOUNDEPSILON(Instance) = epsilonHack.f; - - SPEAKER_LF_INDEX(Instance) = 0xFFFFFFFF; - if (SpeakerChannelMask & SPEAKER_LOW_FREQUENCY) - { - if (SpeakerChannelMask & SPEAKER_FRONT_CENTER) - { - SPEAKER_LF_INDEX(Instance) = 3; - } - else - { - SPEAKER_LF_INDEX(Instance) = 2; - } - } - - while (SpeakerChannelMask) - { - speakerCount += 1; - SpeakerChannelMask &= SpeakerChannelMask - 1; - } - SPEAKERCOUNT(Instance) = speakerCount; - - return 0; -} - - -/************************************ - * F3DAudioCalculate Implementation * - ************************************/ - -/* VECTOR UTILITIES */ - -static inline F3DAUDIO_VECTOR Vec(float x, float y, float z) -{ - F3DAUDIO_VECTOR res; - res.x = x; - res.y = y; - res.z = z; - return res; -} - -#define VectorAdd(u, v) Vec(u.x + v.x, u.y + v.y, u.z + v.z) - -#define VectorSub(u, v) Vec(u.x - v.x, u.y - v.y, u.z - v.z) - -#define VectorScale(u, s) Vec(u.x * s, u.y * s, u.z * s) - -#define VectorCross(u, v) Vec( \ - (u.y * v.z) - (u.z * v.y), \ - (u.z * v.x) - (u.x * v.z), \ - (u.x * v.y) - (u.y * v.x) \ -) - -#define VectorLength(v) FAudio_sqrtf( \ - (v.x * v.x) + (v.y * v.y) + (v.z * v.z) \ -) - -#define VectorDot(u, v) ((u.x * v.x) + (u.y * v.y) + (u.z * v.z)) - -/* This structure represent a tuple of vectors that form a left-handed basis. - * That is, all vectors are normal, orthogonal to each other, and taken in the - * order front, right, top they follow the left-hand rule. - * (https://en.wikipedia.org/wiki/Right-hand_rule) - */ -typedef struct F3DAUDIO_BASIS -{ - F3DAUDIO_VECTOR front; - F3DAUDIO_VECTOR right; - F3DAUDIO_VECTOR top; -} F3DAUDIO_BASIS; - -/* CHECK UTILITY FUNCTIONS */ - -static inline uint8_t CheckCone(F3DAUDIO_CONE *pCone) -{ - if (!pCone) - { - return PARAM_CHECK_OK; - } - - FLOAT_BETWEEN_CHECK(pCone->InnerAngle, 0.0f, F3DAUDIO_2PI); - FLOAT_BETWEEN_CHECK(pCone->OuterAngle, pCone->InnerAngle, F3DAUDIO_2PI); - - FLOAT_BETWEEN_CHECK(pCone->InnerVolume, 0.0f, 2.0f); - FLOAT_BETWEEN_CHECK(pCone->OuterVolume, 0.0f, 2.0f); - - FLOAT_BETWEEN_CHECK(pCone->InnerLPF, 0.0f, 1.0f); - FLOAT_BETWEEN_CHECK(pCone->OuterLPF, 0.0f, 1.0f); - - FLOAT_BETWEEN_CHECK(pCone->InnerReverb, 0.0f, 2.0f); - FLOAT_BETWEEN_CHECK(pCone->OuterReverb, 0.0f, 2.0f); - - return PARAM_CHECK_OK; -} - -static inline uint8_t CheckCurve(F3DAUDIO_DISTANCE_CURVE *pCurve) -{ - F3DAUDIO_DISTANCE_CURVE_POINT *points; - uint32_t i; - if (!pCurve) - { - return PARAM_CHECK_OK; - } - - points = pCurve->pPoints; - POINTER_CHECK(points); - PARAM_CHECK(pCurve->PointCount >= 2, "Invalid number of points for curve"); - - for (i = 0; i < pCurve->PointCount; i += 1) - { - FLOAT_BETWEEN_CHECK(points[i].Distance, 0.0f, 1.0f); - } - - PARAM_CHECK( - points[0].Distance == 0.0f, - "First point in the curve must be at distance 0.0f" - ); - PARAM_CHECK( - points[pCurve->PointCount - 1].Distance == 1.0f, - "Last point in the curve must be at distance 1.0f" - ); - - for (i = 0; i < (pCurve->PointCount - 1); i += 1) - { - PARAM_CHECK( - points[i].Distance < points[i + 1].Distance, - "Curve points must be in strict ascending order" - ); - } - - return PARAM_CHECK_OK; -} - -/* Export for unit tests */ -F3DAUDIOAPI uint8_t F3DAudioCheckCalculateParams( - const F3DAUDIO_HANDLE Instance, - const F3DAUDIO_LISTENER *pListener, - const F3DAUDIO_EMITTER *pEmitter, - uint32_t Flags, - F3DAUDIO_DSP_SETTINGS *pDSPSettings -) { - uint32_t i, ChannelCount; - - POINTER_CHECK(Instance); - POINTER_CHECK(pListener); - POINTER_CHECK(pEmitter); - POINTER_CHECK(pDSPSettings); - - if (Flags & F3DAUDIO_CALCULATE_MATRIX) - { - POINTER_CHECK(pDSPSettings->pMatrixCoefficients); - } - if (Flags & F3DAUDIO_CALCULATE_ZEROCENTER) - { - const uint32_t isCalculateMatrix = (Flags & F3DAUDIO_CALCULATE_MATRIX); - const uint32_t hasCenter = SPEAKERMASK(Instance) & SPEAKER_FRONT_CENTER; - PARAM_CHECK( - isCalculateMatrix && hasCenter, - "F3DAUDIO_CALCULATE_ZEROCENTER is only valid for matrix" - " calculations with an output format that has a center channel" - ); - } - - if (Flags & F3DAUDIO_CALCULATE_REDIRECT_TO_LFE) - { - const uint32_t isCalculateMatrix = (Flags & F3DAUDIO_CALCULATE_MATRIX); - const uint32_t hasLF = SPEAKERMASK(Instance) & SPEAKER_LOW_FREQUENCY; - PARAM_CHECK( - isCalculateMatrix && hasLF, - "F3DAUDIO_CALCULATE_REDIRECT_TO_LFE is only valid for matrix" - " calculations with an output format that has a low-frequency" - " channel" - ); - } - - ChannelCount = SPEAKERCOUNT(Instance); - PARAM_CHECK( - pDSPSettings->DstChannelCount == ChannelCount, - "Invalid channel count, DSP settings and speaker configuration must agree" - ); - PARAM_CHECK( - pDSPSettings->SrcChannelCount == pEmitter->ChannelCount, - "Invalid channel count, DSP settings and emitter must agree" - ); - - if (pListener->pCone) - { - PARAM_CHECK( - CheckCone(pListener->pCone) == PARAM_CHECK_OK, - "Invalid listener cone" - ); - } - VECTOR_NORMAL_CHECK(pListener->OrientFront); - VECTOR_NORMAL_CHECK(pListener->OrientTop); - VECTOR_BASE_CHECK(pListener->OrientFront, pListener->OrientTop); - - if (pEmitter->pCone) - { - VECTOR_NORMAL_CHECK(pEmitter->OrientFront); - PARAM_CHECK( - CheckCone(pEmitter->pCone) == PARAM_CHECK_OK, - "Invalid emitter cone" - ); - } - else if (Flags & F3DAUDIO_CALCULATE_EMITTER_ANGLE) - { - VECTOR_NORMAL_CHECK(pEmitter->OrientFront); - } - if (pEmitter->ChannelCount > 1) - { - /* Only used for multi-channel emitters */ - VECTOR_NORMAL_CHECK(pEmitter->OrientFront); - VECTOR_NORMAL_CHECK(pEmitter->OrientTop); - VECTOR_BASE_CHECK(pEmitter->OrientFront, pEmitter->OrientTop); - } - FLOAT_BETWEEN_CHECK(pEmitter->InnerRadius, 0.0f, FLT_MAX); - FLOAT_BETWEEN_CHECK(pEmitter->InnerRadiusAngle, 0.0f, F3DAUDIO_2PI / 4.0f); - PARAM_CHECK( - pEmitter->ChannelCount > 0, - "Invalid channel count for emitter" - ); - PARAM_CHECK( - pEmitter->ChannelRadius >= 0.0f, - "Invalid channel radius for emitter" - ); - if (pEmitter->ChannelCount > 1) - { - PARAM_CHECK( - pEmitter->pChannelAzimuths != NULL, - "Invalid channel azimuths for multi-channel emitter" - ); - if (pEmitter->pChannelAzimuths) - { - for (i = 0; i < pEmitter->ChannelCount; i += 1) - { - float currentAzimuth = pEmitter->pChannelAzimuths[i]; - FLOAT_BETWEEN_CHECK(currentAzimuth, 0.0f, F3DAUDIO_2PI); - if (currentAzimuth == F3DAUDIO_2PI) - { - PARAM_CHECK( - !(Flags & F3DAUDIO_CALCULATE_REDIRECT_TO_LFE), - "F3DAUDIO_CALCULATE_REDIRECT_TO_LFE valid only for" - " matrix calculations with emitters that have no LFE" - " channel" - ); - } - } - } - } - FLOAT_BETWEEN_CHECK(pEmitter->CurveDistanceScaler, FLT_MIN, FLT_MAX); - FLOAT_BETWEEN_CHECK(pEmitter->DopplerScaler, 0.0f, FLT_MAX); - - PARAM_CHECK( - CheckCurve(pEmitter->pVolumeCurve) == PARAM_CHECK_OK, - "Invalid Volume curve" - ); - PARAM_CHECK( - CheckCurve(pEmitter->pLFECurve) == PARAM_CHECK_OK, - "Invalid LFE curve" - ); - PARAM_CHECK( - CheckCurve(pEmitter->pLPFDirectCurve) == PARAM_CHECK_OK, - "Invalid LPFDirect curve" - ); - PARAM_CHECK( - CheckCurve(pEmitter->pLPFReverbCurve) == PARAM_CHECK_OK, - "Invalid LPFReverb curve" - ); - PARAM_CHECK( - CheckCurve(pEmitter->pReverbCurve) == PARAM_CHECK_OK, - "Invalid Reverb curve" - ); - - return PARAM_CHECK_OK; -} - -/* - * MATRIX CALCULATION - */ - -/* This function computes the distance either according to a curve if pCurve - * isn't NULL, or according to the inverse distance law 1/d otherwise. - */ -static inline float ComputeDistanceAttenuation( - float normalizedDistance, - F3DAUDIO_DISTANCE_CURVE *pCurve -) { - float res; - float alpha; - uint32_t n_points; - size_t i; - if (pCurve) - { - F3DAUDIO_DISTANCE_CURVE_POINT* points = pCurve->pPoints; - n_points = pCurve->PointCount; - - /* By definition, the first point in the curve must be 0.0f - * -Adrien - */ - - /* We advance i up until our normalizedDistance lies between the distances of - * the i_th and (i-1)_th points, or we reach the last point. - */ - for (i = 1; (i < n_points) && (normalizedDistance >= points[i].Distance); i += 1); - if (i == n_points) - { - /* We've reached the last point, so we use its value directly. - * Quote X3DAUDIO docs: - * "If an emitter moves beyond a distance of (CurveDistanceScaler × 1.0f), - * the last point on the curve is used to compute the volume output level." - */ - res = points[n_points - 1].DSPSetting; - } - else - { - /* We're between two points: the distance attenuation is the linear interpolation of the DSPSetting - * values defined by our points, according to the distance. - */ - alpha = (points[i].Distance - normalizedDistance) / (points[i].Distance - points[i - 1].Distance); - res = LERP(alpha, points[i].DSPSetting, points[i - 1].DSPSetting); - } - } - else - { - res = 1.0f; - if (normalizedDistance >= 1.0f) - { - res /= normalizedDistance; - } - } - return res; -} - -static inline float ComputeConeParameter( - float distance, - float angle, - float innerAngle, - float outerAngle, - float innerParam, - float outerParam -) { - /* When computing whether a point lies inside a cone, X3DAUDIO first determines - * whether the point is close enough to the apex of the cone. - * If it is, the innerParam is used. - * The following constant is the one that is used for this distance check; - * It is an approximation, found by manual binary search. - * TODO: find the exact value of the constant via automated binary search. */ - #define CONE_NULL_DISTANCE_TOLERANCE 1e-7 - - float halfInnerAngle, halfOuterAngle, alpha; - - /* Quote X3DAudio.h: - * "Set both cone angles to 0 or X3DAUDIO_2PI for omnidirectionality using - * only the outer or inner values respectively." - */ - if (innerAngle == 0.0f && outerAngle == 0.0f) - { - return outerParam; - } - if (innerAngle == F3DAUDIO_2PI && outerAngle == F3DAUDIO_2PI) - { - return innerParam; - } - - /* If we're within the inner angle, or close enough to the apex, we use - * the innerParam. */ - halfInnerAngle = innerAngle / 2.0f; - if (distance <= CONE_NULL_DISTANCE_TOLERANCE || angle <= halfInnerAngle) - { - return innerParam; - } - - /* If we're between the inner angle and the outer angle, we must use - * some interpolation of the innerParam and outerParam according to the - * distance between our angle and the inner and outer angles. - */ - halfOuterAngle = outerAngle / 2.0f; - if (angle <= halfOuterAngle) - { - alpha = (angle - halfInnerAngle) / (halfOuterAngle - halfInnerAngle); - - /* Sooo... This is awkward. MSDN doesn't say anything, but - * X3DAudio.h says that this should be lerped. However in - * practice the behaviour of X3DAudio isn't a lerp at all. It's - * easy to see with big (InnerAngle / OuterAngle) values. If we - * want accurate emulation, we'll need to either find what - * formula they use, or use a more advanced interpolation, like - * tricubic. - * - * TODO: HIGH_ACCURACY version. - * -Adrien - */ - return LERP(alpha, innerParam, outerParam); - } - - /* Otherwise, we're outside the outer angle, so we just return the outer param. */ - return outerParam; -} - -/* X3DAudio.h declares something like this, but the default (if emitter is NULL) - * volume curve is a *computed* inverse law, while on the other hand a curve - * leads to a piecewise linear function. So a "default curve" like this is - * pointless, not sure what X3DAudio does with it... - * -Adrien - */ -#if 0 -static F3DAUDIO_DISTANCE_CURVE_POINT DefaultVolumeCurvePoints[] = -{ - { 0.0f, 1.0f }, - { 1.0f, 0.0f } -}; -static F3DAUDIO_DISTANCE_CURVE DefaultVolumeCurve = -{ - DefaultVolumeCurvePoints, - ARRAY_COUNT(DefaultVolumeCurvePoints) -}; -#endif - -/* Here we declare the azimuths of every speaker for every speaker - * configuration, ordered by increasing angle, as well as the index to which - * they map in the final matrix for their respective configuration. It had to be - * reverse engineered by looking at the data from various X3DAudioCalculate() - * matrix results for the various speaker configurations; *in particular*, the - * azimuths are different from the ones in F3DAudio.h (and X3DAudio.h) for - * SPEAKER_STEREO (which is declared has having front L and R speakers in the - * bit mask, but in fact has L and R *side* speakers). LF speakers are - * deliberately not included in the SpeakerInfo list, rather, we store the index - * into a separate field (with a -1 sentinel value if it has no LF speaker). - * -Adrien - */ -typedef struct -{ - float azimuth; - uint32_t matrixIdx; -} SpeakerInfo; - -typedef struct -{ - uint32_t configMask; - const SpeakerInfo *speakers; - - /* Not strictly necessary because it can be inferred from the - * SpeakerCount field of the F3DAUDIO_HANDLE, but makes code much - * cleaner and less error prone - */ - uint32_t numNonLFSpeakers; - - int32_t LFSpeakerIdx; -} ConfigInfo; - -/* It is absolutely necessary that these are stored in increasing, *positive* - * azimuth order (i.e. all angles between [0; 2PI]), as we'll do a linear - * interval search inside FindSpeakerAzimuths. - * -Adrien - */ - -#define SPEAKER_AZIMUTH_CENTER 0.0f -#define SPEAKER_AZIMUTH_FRONT_RIGHT_OF_CENTER (F3DAUDIO_PI * 1.0f / 8.0f) -#define SPEAKER_AZIMUTH_FRONT_RIGHT (F3DAUDIO_PI * 1.0f / 4.0f) -#define SPEAKER_AZIMUTH_SIDE_RIGHT (F3DAUDIO_PI * 1.0f / 2.0f) -#define SPEAKER_AZIMUTH_BACK_RIGHT (F3DAUDIO_PI * 3.0f / 4.0f) -#define SPEAKER_AZIMUTH_BACK_CENTER F3DAUDIO_PI -#define SPEAKER_AZIMUTH_BACK_LEFT (F3DAUDIO_PI * 5.0f / 4.0f) -#define SPEAKER_AZIMUTH_SIDE_LEFT (F3DAUDIO_PI * 3.0f / 2.0f) -#define SPEAKER_AZIMUTH_FRONT_LEFT (F3DAUDIO_PI * 7.0f / 4.0f) -#define SPEAKER_AZIMUTH_FRONT_LEFT_OF_CENTER (F3DAUDIO_PI * 15.0f / 8.0f) - -const SpeakerInfo kMonoConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_CENTER, 0 }, -}; -const SpeakerInfo kStereoConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_SIDE_RIGHT, 1 }, - { SPEAKER_AZIMUTH_SIDE_LEFT, 0 }, -}; -const SpeakerInfo k2Point1ConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_SIDE_RIGHT, 1 }, - { SPEAKER_AZIMUTH_SIDE_LEFT, 0 }, -}; -const SpeakerInfo kSurroundConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_CENTER, 2 }, - { SPEAKER_AZIMUTH_FRONT_RIGHT, 1 }, - { SPEAKER_AZIMUTH_BACK_CENTER, 3 }, - { SPEAKER_AZIMUTH_FRONT_LEFT, 0 }, -}; -const SpeakerInfo kQuadConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_FRONT_RIGHT, 1 }, - { SPEAKER_AZIMUTH_BACK_RIGHT, 3 }, - { SPEAKER_AZIMUTH_BACK_LEFT, 2 }, - { SPEAKER_AZIMUTH_FRONT_LEFT, 0 }, -}; -const SpeakerInfo k4Point1ConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_FRONT_RIGHT, 1 }, - { SPEAKER_AZIMUTH_BACK_RIGHT, 4 }, - { SPEAKER_AZIMUTH_BACK_LEFT, 3 }, - { SPEAKER_AZIMUTH_FRONT_LEFT, 0 }, -}; -const SpeakerInfo k5Point1ConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_CENTER, 2 }, - { SPEAKER_AZIMUTH_FRONT_RIGHT, 1 }, - { SPEAKER_AZIMUTH_BACK_RIGHT, 5 }, - { SPEAKER_AZIMUTH_BACK_LEFT, 4 }, - { SPEAKER_AZIMUTH_FRONT_LEFT, 0 }, -}; -const SpeakerInfo k7Point1ConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_CENTER, 2 }, - { SPEAKER_AZIMUTH_FRONT_RIGHT_OF_CENTER, 7 }, - { SPEAKER_AZIMUTH_FRONT_RIGHT, 1 }, - { SPEAKER_AZIMUTH_BACK_RIGHT, 5 }, - { SPEAKER_AZIMUTH_BACK_LEFT, 4 }, - { SPEAKER_AZIMUTH_FRONT_LEFT, 0 }, - { SPEAKER_AZIMUTH_FRONT_LEFT_OF_CENTER, 6 }, -}; -const SpeakerInfo k5Point1SurroundConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_CENTER, 2 }, - { SPEAKER_AZIMUTH_FRONT_RIGHT, 1 }, - { SPEAKER_AZIMUTH_SIDE_RIGHT, 5 }, - { SPEAKER_AZIMUTH_SIDE_LEFT, 4 }, - { SPEAKER_AZIMUTH_FRONT_LEFT, 0 }, -}; -const SpeakerInfo k7Point1SurroundConfigSpeakers[] = -{ - { SPEAKER_AZIMUTH_CENTER, 2 }, - { SPEAKER_AZIMUTH_FRONT_RIGHT, 1 }, - { SPEAKER_AZIMUTH_SIDE_RIGHT, 7 }, - { SPEAKER_AZIMUTH_BACK_RIGHT, 5 }, - { SPEAKER_AZIMUTH_BACK_LEFT, 4 }, - { SPEAKER_AZIMUTH_SIDE_LEFT, 6 }, - { SPEAKER_AZIMUTH_FRONT_LEFT, 0 }, -}; - -/* With that organization, the index of the LF speaker into the matrix array - * strangely looks *exactly* like the mystery field in the F3DAUDIO_HANDLE!! - * We're keeping a separate field within ConfigInfo because it makes the code - * much cleaner, though. - * -Adrien - */ -const ConfigInfo kSpeakersConfigInfo[] = -{ - { SPEAKER_MONO, kMonoConfigSpeakers, ARRAY_COUNT(kMonoConfigSpeakers), -1 }, - { SPEAKER_STEREO, kStereoConfigSpeakers, ARRAY_COUNT(kStereoConfigSpeakers), -1 }, - { SPEAKER_2POINT1, k2Point1ConfigSpeakers, ARRAY_COUNT(k2Point1ConfigSpeakers), 2 }, - { SPEAKER_SURROUND, kSurroundConfigSpeakers, ARRAY_COUNT(kSurroundConfigSpeakers), -1 }, - { SPEAKER_QUAD, kQuadConfigSpeakers, ARRAY_COUNT(kQuadConfigSpeakers), -1 }, - { SPEAKER_4POINT1, k4Point1ConfigSpeakers, ARRAY_COUNT(k4Point1ConfigSpeakers), 2 }, - { SPEAKER_5POINT1, k5Point1ConfigSpeakers, ARRAY_COUNT(k5Point1ConfigSpeakers), 3 }, - { SPEAKER_7POINT1, k7Point1ConfigSpeakers, ARRAY_COUNT(k7Point1ConfigSpeakers), 3 }, - { SPEAKER_5POINT1_SURROUND, k5Point1SurroundConfigSpeakers, ARRAY_COUNT(k5Point1SurroundConfigSpeakers), 3 }, - { SPEAKER_7POINT1_SURROUND, k7Point1SurroundConfigSpeakers, ARRAY_COUNT(k7Point1SurroundConfigSpeakers), 3 }, -}; - -/* A simple linear search is absolutely OK for 10 elements. */ -static const ConfigInfo* GetConfigInfo(uint32_t speakerConfigMask) -{ - uint32_t i; - for (i = 0; i < ARRAY_COUNT(kSpeakersConfigInfo); i += 1) - { - if (kSpeakersConfigInfo[i].configMask == speakerConfigMask) - { - return &kSpeakersConfigInfo[i]; - } - } - - FAudio_assert(0 && "Config info not found!"); - return NULL; -} - -/* Given a configuration, this function finds the azimuths of the two speakers - * between which the emitter lies. All the azimuths here are relative to the - * listener's base, since that's where the speakers are defined. - */ -static inline void FindSpeakerAzimuths( - const ConfigInfo* config, - float emitterAzimuth, - uint8_t skipCenter, - const SpeakerInfo **speakerInfo -) { - uint32_t i, nexti = 0; - float a0 = 0.0f, a1 = 0.0f; - - FAudio_assert(config != NULL); - - /* We want to find, given an azimuth, which speakers are the closest - * ones (in terms of angle) to that azimuth. - * This is done by iterating through the list of speaker azimuths, as - * given to us by the current ConfigInfo (which stores speaker azimuths - * in increasing order of azimuth for each possible speaker configuration; - * each speaker azimuth is defined to be between 0 and 2PI by construction). - */ - for (i = 0; i < config->numNonLFSpeakers; i += 1) - { - /* a0 and a1 are the azimuths of candidate speakers */ - a0 = config->speakers[i].azimuth; - nexti = (i + 1) % config->numNonLFSpeakers; - a1 = config->speakers[nexti].azimuth; - - if (a0 < a1) - { - if (emitterAzimuth >= a0 && emitterAzimuth < a1) - { - break; - } - } - /* It is possible for a speaker pair to enclose the singulary at 0 == 2PI: - * consider for example the quad config, which has a front left speaker - * at 7PI/4 and a front right speaker at PI/4. In that case a0 = 7PI/4 and - * a1 = PI/4, and the way we know whether our current azimuth lies between - * that pair is by checking whether the azimuth is greather than 7PI/4 or - * whether it's less than PI/4. (By contract, currentAzimuth is always less - * than 2PI.) - */ - else - { - if (emitterAzimuth >= a0 || emitterAzimuth < a1) - { - break; - } - } - } - FAudio_assert(emitterAzimuth >= a0 || emitterAzimuth < a1); - - /* skipCenter means that we don't want to use the center speaker. - * The easiest way to deal with this is to check whether either of our candidate - * speakers are the center, which always has an azimuth of 0.0. If that is the case - * we just replace it with either the previous one or the next one. - */ - if (skipCenter) - { - if (a0 == 0.0f) - { - if (i == 0) - { - i = config->numNonLFSpeakers - 1; - } - else - { - i -= 1; - } - } - else if (a1 == 0.0f) - { - nexti += 1; - if (nexti >= config->numNonLFSpeakers) - { - nexti -= config->numNonLFSpeakers; - } - } - } - speakerInfo[0] = &config->speakers[i]; - speakerInfo[1] = &config->speakers[nexti]; -} - -/* Used to store diffusion factors */ -/* See below for explanation. */ -#define DIFFUSION_SPEAKERS_ALL 0 -#define DIFFUSION_SPEAKERS_MATCHING 1 -#define DIFFUSION_SPEAKERS_OPPOSITE 2 -typedef float DiffusionSpeakerFactors[3]; - -/* ComputeInnerRadiusDiffusionFactors is a utility function that returns how - * energy dissipates to the speakers, given the radial distance between the - * emitter and the listener and the (optionally 0) InnerRadius distance. It - * returns 3 floats, via the diffusionFactors array, that say how much energy - * (after distance attenuation) will need to be distributed between each of the - * following cases: - * - * - SPEAKERS_ALL for all (non-LF) speakers, _INCLUDING_ the MATCHING and OPPOSITE. - * - SPEAKERS_OPPOSITE corresponds to the two speakers OPPOSITE the emitter. - * - SPEAKERS_MATCHING corresponds to the two speakers closest to the emitter. - * - * For a distance below a certain threshold (DISTANCE_EQUAL_ENERGY), all - * speakers receive equal energy. - * - * Above that, the amount that all speakers receive decreases linearly as radial - * distance increases, up until InnerRadius / 2. (If InnerRadius is null, we use - * MINIMUM_INNER_RADIUS.) - * - * At the same time, both opposite and matching speakers start to receive sound - * (in addition to the energy they receive from the aforementioned "all - * speakers" linear law) according to some unknown as of now law, - * that is currently emulated with a LERP. This is true up until InnerRadius. - * - * Above InnerRadius, only the two matching speakers receive sound. - * - * For more detail, see the "Inner Radius and Inner Radius Angle" in the - * MSDN docs for the X3DAUDIO_EMITTER structure. - * https://msdn.microsoft.com/en-us/library/windows/desktop/microsoft.directx_sdk.x3daudio.x3daudio_emitter(v=vs.85).aspx - */ -static inline void ComputeInnerRadiusDiffusionFactors( - float radialDistance, - float InnerRadius, - DiffusionSpeakerFactors diffusionFactors -) { - - /* Determined experimentally; this is the midpoint value, i.e. the - * value at 0.5 for the matching speakers, used for the standard - * diffusion curve. - * - * Note: It is SUSPICIOUSLY close to 1/sqrt(2), but I haven't figured out why. - * -Adrien - */ - #define DIFFUSION_LERP_MIDPOINT_VALUE 0.707107f - - /* X3DAudio always uses an InnerRadius-like behaviour (i.e. diffusing sound to more than - * a pair of speakers) even if InnerRadius is set to 0.0f. - * This constant determines the distance at which this behaviour is produced in that case. */ - /* This constant was determined by manual binary search. TODO: get a more accurate version - * via an automated binary search. */ - #define DIFFUSION_DISTANCE_MINIMUM_INNER_RADIUS 4e-7f - float actualInnerRadius = FAudio_max(InnerRadius, DIFFUSION_DISTANCE_MINIMUM_INNER_RADIUS); - float normalizedRadialDist; - float a, ms, os; - - normalizedRadialDist = radialDistance / actualInnerRadius; - - /* X3DAudio does another check for small radial distances before applying any InnerRadius-like - * behaviour. This is the constant that determines the threshold: below this distance we simply - * diffuse to all speakers equally. */ - #define DIFFUSION_DISTANCE_EQUAL_ENERGY 1e-7f - if (radialDistance <= DIFFUSION_DISTANCE_EQUAL_ENERGY) - { - a = 1.0f; - ms = 0.0f; - os = 0.0f; - } - else if (normalizedRadialDist <= 0.5f) - { - /* Determined experimentally that this is indeed a linear law, - * with 100% confidence. - * -Adrien - */ - a = 1.0f - 2.0f * normalizedRadialDist; - - /* Lerping here is an approximation. - * TODO: High accuracy version. Having stared at the curves long - * enough, I'm pretty sure this is a quadratic, but trying to - * polyfit with numpy didn't give nice, round polynomial - * coefficients... - * -Adrien - */ - ms = LERP(2.0f * normalizedRadialDist, 0.0f, DIFFUSION_LERP_MIDPOINT_VALUE); - os = 1.0f - a - ms; - } - else if (normalizedRadialDist <= 1.0f) - { - a = 0.0f; - - /* Similarly, this is a lerp based on the midpoint value; the - * real, high-accuracy curve also looks like a quadratic. - * -Adrien - */ - ms = LERP(2.0f * (normalizedRadialDist - 0.5f), DIFFUSION_LERP_MIDPOINT_VALUE, 1.0f); - os = 1.0f - a - ms; - } - else - { - a = 0.0f; - ms = 1.0f; - os = 0.0f; - } - diffusionFactors[DIFFUSION_SPEAKERS_ALL] = a; - diffusionFactors[DIFFUSION_SPEAKERS_MATCHING] = ms; - diffusionFactors[DIFFUSION_SPEAKERS_OPPOSITE] = os; -} - -/* ComputeEmitterChannelCoefficients handles the coefficients calculation for 1 - * column of the matrix. It uses ComputeInnerRadiusDiffusionFactors to separate - * into three discrete cases; and for each case does the right repartition of - * the energy after attenuation to the right speakers, in particular in the - * MATCHING and OPPOSITE cases, it gives each of the two speakers found a linear - * amount of the energy, according to the angular distance between the emitter - * and the speaker azimuth. - */ -static inline void ComputeEmitterChannelCoefficients( - const ConfigInfo *curConfig, - const F3DAUDIO_BASIS *listenerBasis, - float innerRadius, - F3DAUDIO_VECTOR channelPosition, - float attenuation, - float LFEattenuation, - uint32_t flags, - uint32_t currentChannel, - uint32_t numSrcChannels, - float *pMatrixCoefficients -) { - float elevation, radialDistance; - F3DAUDIO_VECTOR projTopVec, projPlane; - uint8_t skipCenter = (flags & F3DAUDIO_CALCULATE_ZEROCENTER) ? 1 : 0; - DiffusionSpeakerFactors diffusionFactors = { 0.0f }; - - float x, y; - float emitterAzimuth; - float energyPerChannel; - float totalEnergy; - uint32_t nChannelsToDiffuseTo; - uint32_t iS, centerChannelIdx = -1; - const SpeakerInfo* infos[2]; - float a0, a1, val; - uint32_t i0, i1; - - /* We project against the listener basis' top vector to get the elevation of the - * current emitter channel position. - */ - elevation = VectorDot(listenerBasis->top, channelPosition); - - /* To obtain the projection in the front-right plane of the listener's basis of the - * emitter channel position, we simply remove the projection against the top vector. - * The radial distance is then the length of the projected vector. - */ - projTopVec = VectorScale(listenerBasis->top, elevation); - projPlane = VectorSub(channelPosition, projTopVec); - radialDistance = VectorLength(projPlane); - - ComputeInnerRadiusDiffusionFactors( - radialDistance, - innerRadius, - diffusionFactors - ); - - /* See the ComputeInnerRadiusDiffusionFactors comment above for more context. */ - /* DIFFUSION_SPEAKERS_ALL corresponds to diffusing part of the sound to all of the - * speakers, equally. The amount of sound is determined by the float value - * diffusionFactors[DIFFUSION_SPEAKERS_ALL]. */ - if (diffusionFactors[DIFFUSION_SPEAKERS_ALL] > 0.0f) - { - nChannelsToDiffuseTo = curConfig->numNonLFSpeakers; - totalEnergy = diffusionFactors[DIFFUSION_SPEAKERS_ALL] * attenuation; - - if (skipCenter) - { - nChannelsToDiffuseTo -= 1; - FAudio_assert(curConfig->speakers[0].azimuth == SPEAKER_AZIMUTH_CENTER); - centerChannelIdx = curConfig->speakers[0].matrixIdx; - } - - energyPerChannel = totalEnergy / nChannelsToDiffuseTo; - - for (iS = 0; iS < curConfig->numNonLFSpeakers; iS += 1) - { - const uint32_t curSpeakerIdx = curConfig->speakers[iS].matrixIdx; - if (skipCenter && curSpeakerIdx == centerChannelIdx) - { - continue; - } - - pMatrixCoefficients[curSpeakerIdx * numSrcChannels + currentChannel] += energyPerChannel; - } - } - - /* DIFFUSION_SPEAKERS_MATCHING corresponds to sending part of the sound to the speakers closest - * (in terms of azimuth) to the current position of the emitter. The amount of sound we shoud send - * corresponds here to diffusionFactors[DIFFUSION_SPEAKERS_MATCHING]. - * We use the FindSpeakerAzimuths function to find the speakers that match. */ - if (diffusionFactors[DIFFUSION_SPEAKERS_MATCHING] > 0.0f) - { - const float totalEnergy = diffusionFactors[DIFFUSION_SPEAKERS_MATCHING] * attenuation; - - x = VectorDot(listenerBasis->front, projPlane); - y = VectorDot(listenerBasis->right, projPlane); - - /* Now, a critical point: We shouldn't be sending sound to - * matching speakers when x and y are close to 0. That's the - * contract we get from ComputeInnerRadiusDiffusionFactors, - * which checks that we're not too close to the zero distance. - * This allows the atan2 calculation to give good results. - */ - - /* atan2 returns [-PI, PI], but we want [0, 2PI] */ - emitterAzimuth = FAudio_atan2f(y, x); - if (emitterAzimuth < 0.0f) - { - emitterAzimuth += F3DAUDIO_2PI; - } - - FindSpeakerAzimuths(curConfig, emitterAzimuth, skipCenter, infos); - a0 = infos[0]->azimuth; - a1 = infos[1]->azimuth; - - /* The following code is necessary to handle the singularity in - * (0 == 2PI). It'll give us a nice, well ordered interval. - */ - if (a0 > a1) - { - if (emitterAzimuth >= a0) - { - emitterAzimuth -= F3DAUDIO_2PI; - } - a0 -= F3DAUDIO_2PI; - } - FAudio_assert(emitterAzimuth >= a0 && emitterAzimuth <= a1); - - val = (emitterAzimuth - a0) / (a1 - a0); - - i0 = infos[0]->matrixIdx; - i1 = infos[1]->matrixIdx; - - pMatrixCoefficients[i0 * numSrcChannels + currentChannel] += (1.0f - val) * totalEnergy; - pMatrixCoefficients[i1 * numSrcChannels + currentChannel] += ( val) * totalEnergy; - } - - /* DIFFUSION_SPEAKERS_OPPOSITE corresponds to sending part of the sound to the speakers - * _opposite_ the ones that are the closest to the current emitter position. - * To find these, we simply find the ones that are closest to the current emitter's azimuth + PI - * using the FindSpeakerAzimuth function. */ - if (diffusionFactors[DIFFUSION_SPEAKERS_OPPOSITE] > 0.0f) - { - /* This code is similar to the matching speakers code above. */ - const float totalEnergy = diffusionFactors[DIFFUSION_SPEAKERS_OPPOSITE] * attenuation; - - x = VectorDot(listenerBasis->front, projPlane); - y = VectorDot(listenerBasis->right, projPlane); - - /* Similarly, we expect atan2 to be well behaved here. */ - emitterAzimuth = FAudio_atan2f(y, x); - - /* Opposite speakers lie at azimuth + PI */ - emitterAzimuth += F3DAUDIO_PI; - - /* Normalize to [0; 2PI) range. */ - if (emitterAzimuth < 0.0f) - { - emitterAzimuth += F3DAUDIO_2PI; - } - else if (emitterAzimuth > F3DAUDIO_2PI) - { - emitterAzimuth -= F3DAUDIO_2PI; - } - - FindSpeakerAzimuths(curConfig, emitterAzimuth, skipCenter, infos); - a0 = infos[0]->azimuth; - a1 = infos[1]->azimuth; - - /* The following code is necessary to handle the singularity in - * (0 == 2PI). It'll give us a nice, well ordered interval. - */ - if (a0 > a1) - { - if (emitterAzimuth >= a0) - { - emitterAzimuth -= F3DAUDIO_2PI; - } - a0 -= F3DAUDIO_2PI; - } - FAudio_assert(emitterAzimuth >= a0 && emitterAzimuth <= a1); - - val = (emitterAzimuth - a0) / (a1 - a0); - - i0 = infos[0]->matrixIdx; - i1 = infos[1]->matrixIdx; - - pMatrixCoefficients[i0 * numSrcChannels + currentChannel] += (1.0f - val) * totalEnergy; - pMatrixCoefficients[i1 * numSrcChannels + currentChannel] += ( val) * totalEnergy; - } - - if (flags & F3DAUDIO_CALCULATE_REDIRECT_TO_LFE) - { - FAudio_assert(curConfig->LFSpeakerIdx != -1); - pMatrixCoefficients[curConfig->LFSpeakerIdx * numSrcChannels + currentChannel] += LFEattenuation / numSrcChannels; - } -} - -/* Calculations consist of several orthogonal steps that compose multiplicatively: - * - * First, we compute the attenuations (volume and LFE) due to distance, which - * may involve an optional volume and/or LFE volume curve. - * - * Then, we compute those due to optional cones. - * - * We then compute how much energy is diffuse w.r.t InnerRadius. If InnerRadius - * is 0.0f, this step is computed as if it was InnerRadius was - * NON_NULL_DISTANCE_DISK_RADIUS. The way this works is, we look at the radial - * distance of the current emitter channel to the listener, with regard to the - * listener's top orientation (i.e. this distance is independant of the - * emitter's elevation!). If this distance is less than NULL_DISTANCE_RADIUS, - * energy is diffused equally between all channels. If it's greater than - * InnerRadius (or NON_NULL_DISTANCE_RADIUS, if InnerRadius is 0.0f, as - * mentioned above), the two closest speakers, by azimuth, receive all the - * energy. Between InnerRadius/2.0f and InnerRadius, the energy starts bleeding - * into the opposite speakers. Once we go below InnerRadius/2.0f, the energy - * also starts to bleed into the other (non-opposite) channels, if there are - * any. This computation is handled by the ComputeInnerRadiusDiffusionFactors - * function. (TODO: High-accuracy version of this.) - * - * Finally, if we're not in the equal diffusion case, we find out the azimuths - * of the two closest speakers (with azimuth being defined with respect to the - * listener's front orientation, in the plane normal to the listener's top - * vector), as well as the azimuths of the two opposite speakers, if necessary, - * and linearly interpolate with respect to the angular distance. In the equal - * diffusion case, each channel receives the same value. - * - * Note: in the case of multi-channel emitters, the distance attenuation is only - * compted once, but all the azimuths and InnerRadius calculations are done per - * emitter channel. - * - * TODO: Handle InnerRadiusAngle. But honestly the X3DAudio default behaviour is - * so wacky that I wonder if anybody has ever used it. - * -Adrien - */ -static inline void CalculateMatrix( - uint32_t ChannelMask, - uint32_t Flags, - const F3DAUDIO_LISTENER *pListener, - const F3DAUDIO_EMITTER *pEmitter, - uint32_t SrcChannelCount, - uint32_t DstChannelCount, - F3DAUDIO_VECTOR emitterToListener, - float eToLDistance, - float normalizedDistance, - float* MatrixCoefficients -) { - uint32_t iEC; - float curEmAzimuth; - const ConfigInfo* curConfig = GetConfigInfo(ChannelMask); - float attenuation = ComputeDistanceAttenuation( - normalizedDistance, - pEmitter->pVolumeCurve - ); - /* TODO: this could be skipped if the destination has no LFE */ - float LFEattenuation = ComputeDistanceAttenuation( - normalizedDistance, - pEmitter->pLFECurve - ); - - F3DAUDIO_VECTOR listenerToEmitter; - F3DAUDIO_VECTOR listenerToEmChannel; - F3DAUDIO_BASIS listenerBasis; - - /* Note: For both cone calculations, the angle might be NaN or infinite - * if distance == 0... ComputeConeParameter *does* check for this - * special case. It is necessary that we still go through the - * ComputeConeParameter function, because omnidirectional cones might - * give either InnerVolume or OuterVolume. - * -Adrien - */ - if (pListener->pCone) - { - /* Negate the dot product because we need listenerToEmitter in - * this case - * -Adrien - */ - const float angle = -FAudio_acosf( - VectorDot(pListener->OrientFront, emitterToListener) / - eToLDistance - ); - - const float listenerConeParam = ComputeConeParameter( - eToLDistance, - angle, - pListener->pCone->InnerAngle, - pListener->pCone->OuterAngle, - pListener->pCone->InnerVolume, - pListener->pCone->OuterVolume - ); - attenuation *= listenerConeParam; - LFEattenuation *= listenerConeParam; - } - - /* See note above. */ - if (pEmitter->pCone && pEmitter->ChannelCount == 1) - { - const float angle = FAudio_acosf( - VectorDot(pEmitter->OrientFront, emitterToListener) / - eToLDistance - ); - - const float emitterConeParam = ComputeConeParameter( - eToLDistance, - angle, - pEmitter->pCone->InnerAngle, - pEmitter->pCone->OuterAngle, - pEmitter->pCone->InnerVolume, - pEmitter->pCone->OuterVolume - ); - attenuation *= emitterConeParam; - } - - FAudio_zero(MatrixCoefficients, sizeof(float) * SrcChannelCount * DstChannelCount); - - /* In the SPEAKER_MONO case, we can skip all energy diffusion calculation. */ - if (DstChannelCount == 1) - { - for (iEC = 0; iEC < pEmitter->ChannelCount; iEC += 1) - { - curEmAzimuth = 0.0f; - if (pEmitter->pChannelAzimuths) - { - curEmAzimuth = pEmitter->pChannelAzimuths[iEC]; - } - - /* The MONO setup doesn't have an LFE speaker. */ - if (curEmAzimuth != F3DAUDIO_2PI) - { - MatrixCoefficients[iEC] = attenuation; - } - } - } - else - { - listenerToEmitter = VectorScale(emitterToListener, -1.0f); - - /* Remember here that the coordinate system is Left-Handed. */ - listenerBasis.front = pListener->OrientFront; - listenerBasis.right = VectorCross(pListener->OrientTop, pListener->OrientFront); - listenerBasis.top = pListener->OrientTop; - - - /* Handling the mono-channel emitter case separately is easier - * than having it as a separate case of a for-loop; indeed, in - * this case, we need to ignore the non-relevant values from the - * emitter, _even if they're set_. - */ - if (pEmitter->ChannelCount == 1) - { - listenerToEmChannel = listenerToEmitter; - - ComputeEmitterChannelCoefficients( - curConfig, - &listenerBasis, - pEmitter->InnerRadius, - listenerToEmChannel, - attenuation, - LFEattenuation, - Flags, - 0 /* currentChannel */, - 1 /* numSrcChannels */, - MatrixCoefficients - ); - } - else /* Multi-channel emitter case. */ - { - const F3DAUDIO_VECTOR emitterRight = VectorCross(pEmitter->OrientTop, pEmitter->OrientFront); - - for (iEC = 0; iEC < pEmitter->ChannelCount; iEC += 1) - { - const float emChAzimuth = pEmitter->pChannelAzimuths[iEC]; - - /* LFEs are easy enough to deal with; we can - * just do them separately. - */ - if (emChAzimuth == F3DAUDIO_2PI) - { - MatrixCoefficients[curConfig->LFSpeakerIdx * pEmitter->ChannelCount + iEC] = LFEattenuation; - } - else - { - /* First compute the emitter channel - * vector relative to the emitter base... - */ - const F3DAUDIO_VECTOR emitterBaseToChannel = VectorAdd( - VectorScale(pEmitter->OrientFront, pEmitter->ChannelRadius * FAudio_cosf(emChAzimuth)), - VectorScale(emitterRight, pEmitter->ChannelRadius * FAudio_sinf(emChAzimuth)) - ); - /* ... then translate. */ - listenerToEmChannel = VectorAdd( - listenerToEmitter, - emitterBaseToChannel - ); - - ComputeEmitterChannelCoefficients( - curConfig, - &listenerBasis, - pEmitter->InnerRadius, - listenerToEmChannel, - attenuation, - LFEattenuation, - Flags, - iEC, - pEmitter->ChannelCount, - MatrixCoefficients - ); - } - } - } - - - } - - /* TODO: add post check to validate values - * (sum < 1, all values > 0, no Inf / NaN.. - * Sum can be >1 when cone or curve is set to a gain! - * Perhaps under a paranoid check disabled by default. - */ -} - -/* - * OTHER CALCULATIONS - */ - -/* DopplerPitchScalar - * Adapted from algorithm published as a part of the webaudio specification: - * https://dvcs.w3.org/hg/audio/raw-file/tip/webaudio/specification.html#Spatialization-doppler-shift - * -Chad - */ -static inline void CalculateDoppler( - float SpeedOfSound, - const F3DAUDIO_LISTENER* pListener, - const F3DAUDIO_EMITTER* pEmitter, - F3DAUDIO_VECTOR emitterToListener, - float eToLDistance, - float* listenerVelocityComponent, - float* emitterVelocityComponent, - float* DopplerFactor -) { - float scaledSpeedOfSound; - *DopplerFactor = 1.0f; - - /* Project... */ - if (eToLDistance != 0.0f) - { - *listenerVelocityComponent = - VectorDot(emitterToListener, pListener->Velocity) / eToLDistance; - *emitterVelocityComponent = - VectorDot(emitterToListener, pEmitter->Velocity) / eToLDistance; - } - else - { - *listenerVelocityComponent = 0.0f; - *emitterVelocityComponent = 0.0f; - } - - if (pEmitter->DopplerScaler > 0.0f) - { - scaledSpeedOfSound = SpeedOfSound / pEmitter->DopplerScaler; - - /* Clamp... */ - *listenerVelocityComponent = FAudio_min( - *listenerVelocityComponent, - scaledSpeedOfSound - ); - *emitterVelocityComponent = FAudio_min( - *emitterVelocityComponent, - scaledSpeedOfSound - ); - - /* ... then Multiply. */ - *DopplerFactor = ( - SpeedOfSound - pEmitter->DopplerScaler * *listenerVelocityComponent - ) / ( - SpeedOfSound - pEmitter->DopplerScaler * *emitterVelocityComponent - ); - if (isnan(*DopplerFactor)) /* If emitter/listener are at the same pos... */ - { - *DopplerFactor = 1.0f; - } - - /* Limit the pitch shifting to 2 octaves up and 1 octave down */ - *DopplerFactor = FAudio_clamp( - *DopplerFactor, - 0.5f, - 4.0f - ); - } -} - -void F3DAudioCalculate( - const F3DAUDIO_HANDLE Instance, - const F3DAUDIO_LISTENER *pListener, - const F3DAUDIO_EMITTER *pEmitter, - uint32_t Flags, - F3DAUDIO_DSP_SETTINGS *pDSPSettings -) { - uint32_t i; - F3DAUDIO_VECTOR emitterToListener; - float eToLDistance, normalizedDistance, dp; - - #define DEFAULT_POINTS(name, x1, y1, x2, y2) \ - static F3DAUDIO_DISTANCE_CURVE_POINT name##Points[2] = \ - { \ - { x1, y1 }, \ - { x2, y2 } \ - }; \ - static F3DAUDIO_DISTANCE_CURVE name##Default = \ - { \ - (F3DAUDIO_DISTANCE_CURVE_POINT*) &name##Points[0], 2 \ - }; - DEFAULT_POINTS(lpfDirect, 0.0f, 1.0f, 1.0f, 0.75f) - DEFAULT_POINTS(lpfReverb, 0.0f, 0.75f, 1.0f, 0.75f) - DEFAULT_POINTS(reverb, 0.0f, 1.0f, 1.0f, 0.0f) - #undef DEFAULT_POINTS - - /* For XACT, this calculates "Distance" */ - emitterToListener = VectorSub(pListener->Position, pEmitter->Position); - eToLDistance = VectorLength(emitterToListener); - pDSPSettings->EmitterToListenerDistance = eToLDistance; - - F3DAudioCheckCalculateParams(Instance, pListener, pEmitter, Flags, pDSPSettings); - - /* This is used by MATRIX, LPF, and REVERB */ - normalizedDistance = eToLDistance / pEmitter->CurveDistanceScaler; - - if (Flags & F3DAUDIO_CALCULATE_MATRIX) - { - CalculateMatrix( - SPEAKERMASK(Instance), - Flags, - pListener, - pEmitter, - pDSPSettings->SrcChannelCount, - pDSPSettings->DstChannelCount, - emitterToListener, - eToLDistance, - normalizedDistance, - pDSPSettings->pMatrixCoefficients - ); - } - - if (Flags & F3DAUDIO_CALCULATE_LPF_DIRECT) - { - pDSPSettings->LPFDirectCoefficient = ComputeDistanceAttenuation( - normalizedDistance, - (pEmitter->pLPFDirectCurve != NULL) ? - pEmitter->pLPFDirectCurve : - &lpfDirectDefault - ); - } - - if (Flags & F3DAUDIO_CALCULATE_LPF_REVERB) - { - pDSPSettings->LPFReverbCoefficient = ComputeDistanceAttenuation( - normalizedDistance, - (pEmitter->pLPFReverbCurve != NULL) ? - pEmitter->pLPFReverbCurve : - &lpfReverbDefault - ); - } - - if (Flags & F3DAUDIO_CALCULATE_REVERB) - { - pDSPSettings->ReverbLevel = ComputeDistanceAttenuation( - normalizedDistance, - (pEmitter->pReverbCurve != NULL) ? - pEmitter->pReverbCurve : - &reverbDefault - ); - } - - /* For XACT, this calculates "DopplerPitchScalar" */ - if (Flags & F3DAUDIO_CALCULATE_DOPPLER) - { - CalculateDoppler( - SPEEDOFSOUND(Instance), - pListener, - pEmitter, - emitterToListener, - eToLDistance, - &pDSPSettings->ListenerVelocityComponent, - &pDSPSettings->EmitterVelocityComponent, - &pDSPSettings->DopplerFactor - ); - } - - /* For XACT, this calculates "OrientationAngle" */ - if (Flags & F3DAUDIO_CALCULATE_EMITTER_ANGLE) - { - /* Determined roughly. - * Below that distance, the emitter angle is considered to be PI/2. - */ - #define EMITTER_ANGLE_NULL_DISTANCE 1.2e-7 - if (eToLDistance < EMITTER_ANGLE_NULL_DISTANCE) - { - pDSPSettings->EmitterToListenerAngle = F3DAUDIO_PI / 2.0f; - } - else - { - /* Note: pEmitter->OrientFront is normalized. */ - dp = VectorDot(emitterToListener, pEmitter->OrientFront) / eToLDistance; - pDSPSettings->EmitterToListenerAngle = FAudio_acosf(dp); - } - } - - /* Unimplemented Flags */ - if ( (Flags & F3DAUDIO_CALCULATE_DELAY) && - SPEAKERMASK(Instance) == SPEAKER_STEREO ) - { - for (i = 0; i < pDSPSettings->DstChannelCount; i += 1) - { - pDSPSettings->pDelayTimes[i] = 0.0f; - } - FAudio_assert(0 && "DELAY not implemented!"); - } -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT.c deleted file mode 100644 index f7b3a64b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT.c +++ /dev/null @@ -1,3040 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAudioFX.h" -#include "FACT_internal.h" - -/* AudioEngine implementation */ - -uint32_t FACTCreateEngine( - uint32_t dwCreationFlags, - FACTAudioEngine **ppEngine -) { - return FACTCreateEngineWithCustomAllocatorEXT( - dwCreationFlags, - ppEngine, - FAudio_malloc, - FAudio_free, - FAudio_realloc - ); -} - -uint32_t FACTCreateEngineWithCustomAllocatorEXT( - uint32_t dwCreationFlags, - FACTAudioEngine **ppEngine, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { - /* TODO: Anything fun with dwCreationFlags? */ - FAudio_PlatformAddRef(); - *ppEngine = (FACTAudioEngine*) customMalloc(sizeof(FACTAudioEngine)); - if (*ppEngine == NULL) - { - return -1; /* TODO: E_OUTOFMEMORY */ - } - FAudio_zero(*ppEngine, sizeof(FACTAudioEngine)); - (*ppEngine)->sbLock = FAudio_PlatformCreateMutex(); - (*ppEngine)->wbLock = FAudio_PlatformCreateMutex(); - (*ppEngine)->apiLock = FAudio_PlatformCreateMutex(); - (*ppEngine)->pMalloc = customMalloc; - (*ppEngine)->pFree = customFree; - (*ppEngine)->pRealloc = customRealloc; - (*ppEngine)->refcount = 1; - return 0; -} - -uint32_t FACTAudioEngine_AddRef(FACTAudioEngine *pEngine) -{ - FAudio_PlatformLockMutex(pEngine->apiLock); - pEngine->refcount += 1; - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return pEngine->refcount; -} - -uint32_t FACTAudioEngine_Release(FACTAudioEngine *pEngine) -{ - FAudio_PlatformLockMutex(pEngine->apiLock); - pEngine->refcount -= 1; - if (pEngine->refcount > 0) - { - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return pEngine->refcount; - } - FACTAudioEngine_ShutDown(pEngine); - FAudio_PlatformDestroyMutex(pEngine->sbLock); - FAudio_PlatformDestroyMutex(pEngine->wbLock); - FAudio_PlatformUnlockMutex(pEngine->apiLock); - FAudio_PlatformDestroyMutex(pEngine->apiLock); - if (pEngine->settings != NULL) - { - pEngine->pFree(pEngine->settings); - } - pEngine->pFree(pEngine); - FAudio_PlatformRelease(); - return 0; -} - -uint32_t FACTAudioEngine_GetRendererCount( - FACTAudioEngine *pEngine, - uint16_t *pnRendererCount -) { - FAudio_PlatformLockMutex(pEngine->apiLock); - *pnRendererCount = (uint16_t) FAudio_PlatformGetDeviceCount(); - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_GetRendererDetails( - FACTAudioEngine *pEngine, - uint16_t nRendererIndex, - FACTRendererDetails *pRendererDetails -) { - FAudioDeviceDetails deviceDetails; - - FAudio_PlatformLockMutex(pEngine->apiLock); - - FAudio_PlatformGetDeviceDetails( - nRendererIndex, - &deviceDetails - ); - FAudio_memcpy( - pRendererDetails->rendererID, - deviceDetails.DeviceID, - sizeof(int16_t) * 0xFF - ); - FAudio_memcpy( - pRendererDetails->displayName, - deviceDetails.DisplayName, - sizeof(int16_t) * 0xFF - ); - /* FIXME: Which defaults does it care about...? */ - pRendererDetails->defaultDevice = (deviceDetails.Role & ( - FAudioGlobalDefaultDevice | - FAudioDefaultGameDevice - )) != 0; - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_GetFinalMixFormat( - FACTAudioEngine *pEngine, - FAudioWaveFormatExtensible *pFinalMixFormat -) { - FAudio_PlatformLockMutex(pEngine->apiLock); - FAudio_memcpy( - pFinalMixFormat, - &pEngine->audio->mixFormat, - sizeof(FAudioWaveFormatExtensible) - ); - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_Initialize( - FACTAudioEngine *pEngine, - const FACTRuntimeParameters *pParams -) { - uint32_t parseRet; - uint32_t deviceIndex; - FAudioVoiceDetails masterDetails; - FAudioEffectDescriptor reverbDesc; - FAudioEffectChain reverbChain; - - FAudio_PlatformLockMutex(pEngine->apiLock); - - if (!pParams->pGlobalSettingsBuffer || pParams->globalSettingsBufferSize == 0) - { - /* No file? Just go with a safe default. (Also why are you using XACT) */ - pEngine->categoryCount = 3; - pEngine->variableCount = 0; - pEngine->rpcCount = 0; - pEngine->dspPresetCount = 0; - pEngine->dspParameterCount = 0; - - pEngine->categories = (FACTAudioCategory*) pEngine->pMalloc( - sizeof(FACTAudioCategory) * pEngine->categoryCount - ); - pEngine->categoryNames = (char**) pEngine->pMalloc( - sizeof(char*) * pEngine->categoryCount - ); - - pEngine->categoryNames[0] = pEngine->pMalloc(7); - FAudio_strlcpy(pEngine->categoryNames[0], "Global", 7); - pEngine->categories[0].instanceLimit = 255; - pEngine->categories[0].fadeInMS = 0; - pEngine->categories[0].fadeOutMS = 0; - pEngine->categories[0].maxInstanceBehavior = 0; - pEngine->categories[0].parentCategory = -1; - pEngine->categories[0].volume = 1.0f; - pEngine->categories[0].visibility = 1; - pEngine->categories[0].instanceCount = 0; - pEngine->categories[0].currentVolume = 1.0f; - - pEngine->categoryNames[1] = pEngine->pMalloc(8); - FAudio_strlcpy(pEngine->categoryNames[1], "Default", 8); - pEngine->categories[1].instanceLimit = 255; - pEngine->categories[1].fadeInMS = 0; - pEngine->categories[1].fadeOutMS = 0; - pEngine->categories[1].maxInstanceBehavior = 0; - pEngine->categories[1].parentCategory = 0; - pEngine->categories[1].volume = 1.0f; - pEngine->categories[1].visibility = 1; - pEngine->categories[1].instanceCount = 0; - pEngine->categories[1].currentVolume = 1.0f; - - pEngine->categoryNames[2] = pEngine->pMalloc(6); - FAudio_strlcpy(pEngine->categoryNames[2], "Music", 6); - pEngine->categories[2].instanceLimit = 255; - pEngine->categories[2].fadeInMS = 0; - pEngine->categories[2].fadeOutMS = 0; - pEngine->categories[2].maxInstanceBehavior = 0; - pEngine->categories[2].parentCategory = 0; - pEngine->categories[2].volume = 1.0f; - pEngine->categories[2].visibility = 1; - pEngine->categories[2].instanceCount = 0; - pEngine->categories[2].currentVolume = 1.0f; - - pEngine->variables = NULL; - pEngine->variableNames = NULL; - pEngine->globalVariableValues = NULL; - pEngine->rpcs = NULL; - pEngine->dspPresets = NULL; - } - else - { - /* Parse the file */ - parseRet = FACT_INTERNAL_ParseAudioEngine(pEngine, pParams); - if (parseRet != 0) - { - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return parseRet; - } - } - - /* Peristent Notifications */ - pEngine->notifications = 0; - pEngine->cue_context = NULL; - pEngine->sb_context = NULL; - pEngine->wb_context = NULL; - pEngine->wave_context = NULL; - - /* Assign the callbacks */ - pEngine->notificationCallback = pParams->fnNotificationCallback; - pEngine->pReadFile = pParams->fileIOCallbacks.readFileCallback; - pEngine->pGetOverlappedResult = pParams->fileIOCallbacks.getOverlappedResultCallback; - if (pEngine->pReadFile == NULL) - { - pEngine->pReadFile = FACT_INTERNAL_DefaultReadFile; - } - if (pEngine->pGetOverlappedResult == NULL) - { - pEngine->pGetOverlappedResult = FACT_INTERNAL_DefaultGetOverlappedResult; - } - - /* Init the FAudio subsystem */ - pEngine->audio = pParams->pXAudio2; - if (pEngine->audio == NULL) - { - FAudio_assert(pParams->pMasteringVoice == NULL); - FAudioCreate(&pEngine->audio, 0, FAUDIO_DEFAULT_PROCESSOR); - } - - /* Create the audio device */ - pEngine->master = pParams->pMasteringVoice; - if (pEngine->master == NULL) - { - if (pParams->pRendererID == NULL || pParams->pRendererID[0] == 0) - { - deviceIndex = 0; - } - else - { - deviceIndex = pParams->pRendererID[0] - L'0'; - if (deviceIndex > FAudio_PlatformGetDeviceCount()) - { - deviceIndex = 0; - } - } - if (FAudio_CreateMasteringVoice( - pEngine->audio, - &pEngine->master, - FAUDIO_DEFAULT_CHANNELS, - FAUDIO_DEFAULT_SAMPLERATE, - 0, - deviceIndex, - NULL - ) != 0) { - FAudio_Release(pEngine->audio); - return FAUDIO_E_INVALID_CALL; - } - } - - /* Create the reverb effect, if applicable */ - if (pEngine->dspPresetCount > 0) /* Never more than 1...? */ - { - FAudioVoice_GetVoiceDetails(pEngine->master, &masterDetails); - - /* Reverb effect chain... */ - FAudioCreateReverb(&reverbDesc.pEffect, 0); - reverbDesc.InitialState = 1; - reverbDesc.OutputChannels = (masterDetails.InputChannels == 6) ? 6 : 1; - reverbChain.EffectCount = 1; - reverbChain.pEffectDescriptors = &reverbDesc; - - /* Reverb submix voice... */ - FAudio_CreateSubmixVoice( - pEngine->audio, - &pEngine->reverbVoice, - 1, /* Reverb will be omnidirectional */ - masterDetails.InputSampleRate, - 0, - 0, - NULL, - &reverbChain - ); - - /* We can release now, the submix owns this! */ - FAPOBase_Release((FAPOBase*) reverbDesc.pEffect); - } - - pEngine->initialized = 1; - pEngine->apiThread = FAudio_PlatformCreateThread( - FACT_INTERNAL_APIThread, - "FACT Thread", - pEngine - ); - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_ShutDown(FACTAudioEngine *pEngine) -{ - uint32_t i, refcount; - FAudioMutex mutex; - FAudioMallocFunc pMalloc; - FAudioFreeFunc pFree; - FAudioReallocFunc pRealloc; - - /* Close thread, then lock ASAP */ - pEngine->initialized = 0; - FAudio_PlatformWaitThread(pEngine->apiThread, NULL); - FAudio_PlatformLockMutex(pEngine->apiLock); - - /* Stop the platform stream before freeing stuff! */ - if (pEngine->audio != NULL) - { - FAudio_StopEngine(pEngine->audio); - } - - /* This method destroys all existing cues, sound banks, and wave banks. - * It blocks until all cues are destroyed. - */ - while (pEngine->wbList != NULL) - { - FACTWaveBank_Destroy((FACTWaveBank*) pEngine->wbList->entry); - } - while (pEngine->sbList != NULL) - { - FACTSoundBank_Destroy((FACTSoundBank*) pEngine->sbList->entry); - } - - /* Category data */ - for (i = 0; i < pEngine->categoryCount; i += 1) - { - pEngine->pFree(pEngine->categoryNames[i]); - } - pEngine->pFree(pEngine->categoryNames); - pEngine->pFree(pEngine->categories); - - /* Variable data */ - for (i = 0; i < pEngine->variableCount; i += 1) - { - pEngine->pFree(pEngine->variableNames[i]); - } - pEngine->pFree(pEngine->variableNames); - pEngine->pFree(pEngine->variables); - pEngine->pFree(pEngine->globalVariableValues); - - /* RPC data */ - for (i = 0; i < pEngine->rpcCount; i += 1) - { - pEngine->pFree(pEngine->rpcs[i].points); - } - pEngine->pFree(pEngine->rpcs); - pEngine->pFree(pEngine->rpcCodes); - - /* DSP data */ - for (i = 0; i < pEngine->dspPresetCount; i += 1) - { - pEngine->pFree(pEngine->dspPresets[i].parameters); - } - pEngine->pFree(pEngine->dspPresets); - pEngine->pFree(pEngine->dspPresetCodes); - - /* Audio resources */ - if (pEngine->reverbVoice != NULL) - { - FAudioVoice_DestroyVoice(pEngine->reverbVoice); - } - if (pEngine->master != NULL) - { - FAudioVoice_DestroyVoice(pEngine->master); - } - if (pEngine->audio != NULL) - { - FAudio_Release(pEngine->audio); - } - - /* Finally. */ - refcount = pEngine->refcount; - mutex = pEngine->apiLock; - pMalloc = pEngine->pMalloc; - pFree = pEngine->pFree; - pRealloc = pEngine->pRealloc; - FAudio_zero(pEngine, sizeof(FACTAudioEngine)); - pEngine->pMalloc = pMalloc; - pEngine->pFree = pFree; - pEngine->pRealloc = pRealloc; - pEngine->refcount = refcount; - pEngine->apiLock = mutex; - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_DoWork(FACTAudioEngine *pEngine) -{ - uint8_t i; - FACTCue *cue; - LinkedList *list; - FACTNotification *note; - - FAudio_PlatformLockMutex(pEngine->apiLock); - - while (pEngine->wb_notifications_list) - { - note = (FACTNotification*) pEngine->wb_notifications_list->entry; - pEngine->notificationCallback(note); - LinkedList_RemoveEntry(&pEngine->wb_notifications_list, note, pEngine->apiLock, pEngine->pFree); - } - - list = pEngine->sbList; - while (list != NULL) - { - cue = ((FACTSoundBank*) list->entry)->cueList; - while (cue != NULL) - { - if (cue->playingSound != NULL) - for (i = 0; i < cue->playingSound->sound->trackCount; i += 1) - { - if ( cue->playingSound->tracks[i].upcomingWave.wave == NULL && - cue->playingSound->tracks[i].waveEvtInst->loopCount > 0 ) - { - FACT_INTERNAL_GetNextWave( - cue, - cue->playingSound->sound, - &cue->playingSound->sound->tracks[i], - &cue->playingSound->tracks[i], - cue->playingSound->tracks[i].waveEvt, - cue->playingSound->tracks[i].waveEvtInst - ); - } - } - cue = cue->next; - } - list = list->next; - } - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_CreateSoundBank( - FACTAudioEngine *pEngine, - const void *pvBuffer, - uint32_t dwSize, - uint32_t dwFlags, - uint32_t dwAllocAttributes, - FACTSoundBank **ppSoundBank -) { - uint32_t retval; - FAudio_PlatformLockMutex(pEngine->apiLock); - retval = FACT_INTERNAL_ParseSoundBank( - pEngine, - pvBuffer, - dwSize, - ppSoundBank - ); - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return retval; -} - -uint32_t FACTAudioEngine_CreateInMemoryWaveBank( - FACTAudioEngine *pEngine, - const void *pvBuffer, - uint32_t dwSize, - uint32_t dwFlags, - uint32_t dwAllocAttributes, - FACTWaveBank **ppWaveBank -) { - FACTNotification *note; - uint32_t retval; - FAudio_PlatformLockMutex(pEngine->apiLock); - retval = FACT_INTERNAL_ParseWaveBank( - pEngine, - FAudio_memopen((void*) pvBuffer, dwSize), - 0, - 0, - FACT_INTERNAL_DefaultReadFile, - FACT_INTERNAL_DefaultGetOverlappedResult, - 0, - ppWaveBank - ); - if (pEngine->notifications & NOTIFY_WAVEBANKPREPARED) - { - note = (FACTNotification*) pEngine->pMalloc(sizeof(FACTNotification)); - note->type = FACTNOTIFICATIONTYPE_WAVEBANKPREPARED; - note->waveBank.pWaveBank = *ppWaveBank; - note->pvContext = pEngine->wb_context; - LinkedList_AddEntry(&pEngine->wb_notifications_list, note, pEngine->apiLock, pEngine->pMalloc); - } - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return retval; -} - -uint32_t FACTAudioEngine_CreateStreamingWaveBank( - FACTAudioEngine *pEngine, - const FACTStreamingParameters *pParms, - FACTWaveBank **ppWaveBank -) { - FACTNotification *note; - uint32_t retval, packetSize; - FAudio_PlatformLockMutex(pEngine->apiLock); - if ( pEngine->pReadFile == FACT_INTERNAL_DefaultReadFile && - pEngine->pGetOverlappedResult == FACT_INTERNAL_DefaultGetOverlappedResult ) - { - /* Our I/O doesn't care about packets, set to 0 as an optimization */ - packetSize = 0; - } - else - { - packetSize = pParms->packetSize * 2048; - } - retval = FACT_INTERNAL_ParseWaveBank( - pEngine, - pParms->file, - pParms->offset, - packetSize, - pEngine->pReadFile, - pEngine->pGetOverlappedResult, - 1, - ppWaveBank - ); - if (pEngine->notifications & NOTIFY_WAVEBANKPREPARED) - { - note = (FACTNotification*) pEngine->pMalloc(sizeof(FACTNotification)); - note->type = FACTNOTIFICATIONTYPE_WAVEBANKPREPARED; - note->waveBank.pWaveBank = *ppWaveBank; - note->pvContext = pEngine->wb_context; - LinkedList_AddEntry(&pEngine->wb_notifications_list, note, pEngine->apiLock, pEngine->pMalloc); - } - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return retval; -} - -uint32_t FACTAudioEngine_PrepareWave( - FACTAudioEngine *pEngine, - uint32_t dwFlags, - const char *szWavePath, - uint32_t wStreamingPacketSize, - uint32_t dwAlignment, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -) { - /* TODO: FACTWave */ - return 0; -} - -uint32_t FACTAudioEngine_PrepareInMemoryWave( - FACTAudioEngine *pEngine, - uint32_t dwFlags, - FACTWaveBankEntry entry, - uint32_t *pdwSeekTable, /* Optional! */ - uint8_t *pbWaveData, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -) { - /* TODO: FACTWave */ - return 0; -} - -uint32_t FACTAudioEngine_PrepareStreamingWave( - FACTAudioEngine *pEngine, - uint32_t dwFlags, - FACTWaveBankEntry entry, - FACTStreamingParameters streamingParams, - uint32_t dwAlignment, - uint32_t *pdwSeekTable, /* Optional! */ - uint8_t *pbWaveData, /* ABI bug, do not use! */ - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -) { - /* TODO: FACTWave */ - return 0; -} - -uint32_t FACTAudioEngine_RegisterNotification( - FACTAudioEngine *pEngine, - const FACTNotificationDescription *pNotificationDescription -) { - FAudio_assert(pEngine != NULL); - FAudio_assert(pNotificationDescription != NULL); - FAudio_assert(pEngine->notificationCallback != NULL); - - FAudio_PlatformLockMutex(pEngine->apiLock); - - #define HANDLE_PERSIST(nt) \ - if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_##nt) \ - { \ - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) \ - { \ - pEngine->notifications |= NOTIFY_##nt; \ - PERSIST_ACTION \ - } \ - else \ - { \ - FAudio_assert(0 && "TODO: "#nt" notification!"); \ - } \ - } - - /* Cues */ - #define PERSIST_ACTION pEngine->cue_context = pNotificationDescription->pvContext; - HANDLE_PERSIST(CUEPREPARED) - else HANDLE_PERSIST(CUEPLAY) - else HANDLE_PERSIST(CUESTOP) - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_CUEDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications |= NOTIFY_CUEDESTROY; - pEngine->cue_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pCue->notifyOnDestroy = 1; - pNotificationDescription->pCue->usercontext = pNotificationDescription->pvContext; - } - } - #undef PERSIST_ACTION - - /* Markers */ - #define PERSIST_ACTION - else HANDLE_PERSIST(MARKER) - #undef PERSIST_ACTION - - /* SoundBank/WaveBank Destruction */ - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications |= NOTIFY_SOUNDBANKDESTROY; - pEngine->sb_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pSoundBank->notifyOnDestroy = 1; - pNotificationDescription->pSoundBank->usercontext = pNotificationDescription->pvContext; - } - } - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_WAVEBANKDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications |= NOTIFY_WAVEBANKDESTROY; - pEngine->wb_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pWaveBank->notifyOnDestroy = 1; - pNotificationDescription->pWaveBank->usercontext = pNotificationDescription->pvContext; - } - } - - /* Variables, Auditioning Tool */ - #define PERSIST_ACTION - else HANDLE_PERSIST(LOCALVARIABLECHANGED) - else HANDLE_PERSIST(GLOBALVARIABLECHANGED) - else HANDLE_PERSIST(GUICONNECTED) - else HANDLE_PERSIST(GUIDISCONNECTED) - #undef PERSIST_ACTION - - /* Waves */ - #define PERSIST_ACTION pEngine->wave_context = pNotificationDescription->pvContext; - else HANDLE_PERSIST(WAVEPREPARED) - else HANDLE_PERSIST(WAVEPLAY) - else HANDLE_PERSIST(WAVESTOP) - else HANDLE_PERSIST(WAVELOOPED) - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_WAVEDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications |= NOTIFY_WAVEDESTROY; - pEngine->wave_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pWave->notifyOnDestroy = 1; - pNotificationDescription->pWave->usercontext = pNotificationDescription->pvContext; - } - } - #undef PERSIST_ACTION - - /* WaveBanks */ - #define PERSIST_ACTION pEngine->wb_context = pNotificationDescription->pvContext; - else HANDLE_PERSIST(WAVEBANKPREPARED) - #undef PERSIST_ACTION - - /* Anything else? */ - else - { - FAudio_assert(0 && "TODO: Unimplemented notification!"); - } - - #undef HANDLE_PERSIST - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_UnRegisterNotification( - FACTAudioEngine *pEngine, - const FACTNotificationDescription *pNotificationDescription -) { - FAudio_assert(pEngine != NULL); - FAudio_assert(pNotificationDescription != NULL); - FAudio_assert(pEngine->notificationCallback != NULL); - - FAudio_PlatformLockMutex(pEngine->apiLock); - - #define HANDLE_PERSIST(nt) \ - if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_##nt) \ - { \ - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) \ - { \ - pEngine->notifications &= ~NOTIFY_##nt; \ - PERSIST_ACTION \ - } \ - else \ - { \ - FAudio_assert(0 && "TODO: "#nt" notification!"); \ - } \ - } - - /* Cues */ - #define PERSIST_ACTION pEngine->cue_context = pNotificationDescription->pvContext; - HANDLE_PERSIST(CUEPREPARED) - else HANDLE_PERSIST(CUEPLAY) - else HANDLE_PERSIST(CUESTOP) - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_CUEDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications &= ~NOTIFY_CUEDESTROY; - pEngine->cue_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pCue->notifyOnDestroy = 0; - pNotificationDescription->pCue->usercontext = pNotificationDescription->pvContext; - } - } - #undef PERSIST_ACTION - - /* Markers */ - #define PERSIST_ACTION - else HANDLE_PERSIST(MARKER) - #undef PERSIST_ACTION - - /* SoundBank/WaveBank Destruction */ - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications &= ~NOTIFY_SOUNDBANKDESTROY; - pEngine->sb_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pSoundBank->notifyOnDestroy = 0; - pNotificationDescription->pSoundBank->usercontext = pNotificationDescription->pvContext; - } - } - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_WAVEBANKDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications &= ~NOTIFY_WAVEBANKDESTROY; - pEngine->wb_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pWaveBank->notifyOnDestroy = 0; - pNotificationDescription->pWaveBank->usercontext = pNotificationDescription->pvContext; - } - } - - /* Variables, Auditioning Tool */ - #define PERSIST_ACTION - else HANDLE_PERSIST(LOCALVARIABLECHANGED) - else HANDLE_PERSIST(GLOBALVARIABLECHANGED) - else HANDLE_PERSIST(GUICONNECTED) - else HANDLE_PERSIST(GUIDISCONNECTED) - #undef PERSIST_ACTION - - /* Waves */ - #define PERSIST_ACTION pEngine->wave_context = pNotificationDescription->pvContext; - else HANDLE_PERSIST(WAVEPREPARED) - else HANDLE_PERSIST(WAVEPLAY) - else HANDLE_PERSIST(WAVESTOP) - else HANDLE_PERSIST(WAVELOOPED) - else if (pNotificationDescription->type == FACTNOTIFICATIONTYPE_WAVEDESTROYED) - { - if (pNotificationDescription->flags & FACT_FLAG_NOTIFICATION_PERSIST) - { - pEngine->notifications &= ~NOTIFY_WAVEDESTROY; - pEngine->wave_context = pNotificationDescription->pvContext; - } - else - { - pNotificationDescription->pWave->notifyOnDestroy = 0; - pNotificationDescription->pWave->usercontext = pNotificationDescription->pvContext; - } - } - #undef PERSIST_ACTION - - /* WaveBanks */ - #define PERSIST_ACTION pEngine->wb_context = pNotificationDescription->pvContext; - else HANDLE_PERSIST(WAVEBANKPREPARED) - #undef PERSIST_ACTION - - /* Anything else? */ - else - { - FAudio_assert(0 && "TODO: Unimplemented notification!"); - } - - #undef HANDLE_PERSIST - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint16_t FACTAudioEngine_GetCategory( - FACTAudioEngine *pEngine, - const char *szFriendlyName -) { - uint16_t i; - FAudio_PlatformLockMutex(pEngine->apiLock); - for (i = 0; i < pEngine->categoryCount; i += 1) - { - if (FAudio_strcmp(szFriendlyName, pEngine->categoryNames[i]) == 0) - { - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return i; - } - } - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return FACTCATEGORY_INVALID; -} - -uint8_t FACT_INTERNAL_IsInCategory( - FACTAudioEngine *engine, - uint16_t target, - uint16_t category -) { - FACTAudioCategory *cat; - - /* Same category, no need to go on a crazy hunt */ - if (category == target) - { - return 1; - } - - /* Right, on with the crazy hunt */ - cat = &engine->categories[category]; - while (cat->parentCategory != -1) - { - if (cat->parentCategory == target) - { - return 1; - } - cat = &engine->categories[cat->parentCategory]; - } - return 0; -} - -uint32_t FACTAudioEngine_Stop( - FACTAudioEngine *pEngine, - uint16_t nCategory, - uint32_t dwFlags -) { - FACTCue *cue, *backup; - LinkedList *list; - - FAudio_PlatformLockMutex(pEngine->apiLock); - list = pEngine->sbList; - while (list != NULL) - { - cue = ((FACTSoundBank*) list->entry)->cueList; - while (cue != NULL) - { - if ( cue->playingSound != NULL && - FACT_INTERNAL_IsInCategory( - pEngine, - nCategory, - cue->playingSound->sound->category - ) ) - { - if ( dwFlags == FACT_FLAG_STOP_IMMEDIATE && - cue->managed ) - { - /* Just blow this up now */ - backup = cue->next; - FACTCue_Destroy(cue); - cue = backup; - } - else - { - /* If managed, the mixer will destroy for us */ - FACTCue_Stop(cue, dwFlags); - cue = cue->next; - } - } - else - { - cue = cue->next; - } - } - list = list->next; - } - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_SetVolume( - FACTAudioEngine *pEngine, - uint16_t nCategory, - float volume -) { - uint16_t i; - FAudio_PlatformLockMutex(pEngine->apiLock); - pEngine->categories[nCategory].currentVolume = ( - pEngine->categories[nCategory].volume * - volume - ); - for (i = 0; i < pEngine->categoryCount; i += 1) - { - if (pEngine->categories[i].parentCategory == nCategory) - { - FACTAudioEngine_SetVolume( - pEngine, - i, - pEngine->categories[i].currentVolume - ); - } - } - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_Pause( - FACTAudioEngine *pEngine, - uint16_t nCategory, - int32_t fPause -) { - FACTCue *cue; - LinkedList *list; - - FAudio_PlatformLockMutex(pEngine->apiLock); - list = pEngine->sbList; - while (list != NULL) - { - cue = ((FACTSoundBank*) list->entry)->cueList; - while (cue != NULL) - { - if ( cue->playingSound != NULL && - FACT_INTERNAL_IsInCategory( - pEngine, - nCategory, - cue->playingSound->sound->category - ) ) - { - FACTCue_Pause(cue, fPause); - } - cue = cue->next; - } - list = list->next; - } - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint16_t FACTAudioEngine_GetGlobalVariableIndex( - FACTAudioEngine *pEngine, - const char *szFriendlyName -) { - uint16_t i; - FAudio_PlatformLockMutex(pEngine->apiLock); - for (i = 0; i < pEngine->variableCount; i += 1) - { - if ( FAudio_strcmp(szFriendlyName, pEngine->variableNames[i]) == 0 && - !(pEngine->variables[i].accessibility & 0x04) ) - { - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return i; - } - } - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return FACTVARIABLEINDEX_INVALID; -} - -uint32_t FACTAudioEngine_SetGlobalVariable( - FACTAudioEngine *pEngine, - uint16_t nIndex, - float nValue -) { - FACTVariable *var; - - FAudio_PlatformLockMutex(pEngine->apiLock); - - var = &pEngine->variables[nIndex]; - FAudio_assert(var->accessibility & 0x01); - FAudio_assert(!(var->accessibility & 0x02)); - FAudio_assert(!(var->accessibility & 0x04)); - pEngine->globalVariableValues[nIndex] = FAudio_clamp( - nValue, - var->minValue, - var->maxValue - ); - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -uint32_t FACTAudioEngine_GetGlobalVariable( - FACTAudioEngine *pEngine, - uint16_t nIndex, - float *pnValue -) { - FACTVariable *var; - - FAudio_PlatformLockMutex(pEngine->apiLock); - - var = &pEngine->variables[nIndex]; - FAudio_assert(var->accessibility & 0x01); - FAudio_assert(!(var->accessibility & 0x04)); - *pnValue = pEngine->globalVariableValues[nIndex]; - - FAudio_PlatformUnlockMutex(pEngine->apiLock); - return 0; -} - -/* SoundBank implementation */ - -uint16_t FACTSoundBank_GetCueIndex( - FACTSoundBank *pSoundBank, - const char *szFriendlyName -) { - uint16_t i; - if (pSoundBank == NULL) - { - return FACTINDEX_INVALID; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - if (pSoundBank->cueNames != NULL) - for (i = 0; i < pSoundBank->cueCount; i += 1) - { - if (FAudio_strcmp(szFriendlyName, pSoundBank->cueNames[i]) == 0) - { - FAudio_PlatformUnlockMutex( - pSoundBank->parentEngine->apiLock - ); - return i; - } - } - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return FACTINDEX_INVALID; -} - -uint32_t FACTSoundBank_GetNumCues( - FACTSoundBank *pSoundBank, - uint16_t *pnNumCues -) { - if (pSoundBank == NULL) - { - *pnNumCues = 0; - return 0; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - *pnNumCues = pSoundBank->cueCount; - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTSoundBank_GetCueProperties( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - FACTCueProperties *pProperties -) { - uint16_t i; - if (pSoundBank == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - - if (pSoundBank->cueNames == NULL) - { - FAudio_zero(pProperties->friendlyName, 0xFF); - } - else - { - FAudio_strlcpy( - pProperties->friendlyName, - pSoundBank->cueNames[nCueIndex], - 0xFF - ); - } - if (!(pSoundBank->cues[nCueIndex].flags & 0x04)) - { - for (i = 0; i < pSoundBank->variationCount; i += 1) - { - if (pSoundBank->variationCodes[i] == pSoundBank->cues[nCueIndex].sbCode) - { - break; - } - } - - FAudio_assert(i < pSoundBank->variationCount && "Variation table not found!"); - - if (pSoundBank->variations[i].flags == 3) - { - pProperties->interactive = 1; - pProperties->iaVariableIndex = pSoundBank->variations[i].variable; - } - else - { - pProperties->interactive = 0; - pProperties->iaVariableIndex = 0; - } - pProperties->numVariations = pSoundBank->variations[i].entryCount; - } - else - { - pProperties->interactive = 0; - pProperties->iaVariableIndex = 0; - pProperties->numVariations = 0; - } - pProperties->maxInstances = pSoundBank->cues[nCueIndex].instanceLimit; - pProperties->currentInstances = pSoundBank->cues[nCueIndex].instanceCount; - - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTSoundBank_Prepare( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags, - int32_t timeOffset, - FACTCue** ppCue -) { - uint16_t i; - FACTCue *latest; - - if (pSoundBank == NULL) - { - *ppCue = NULL; - return 1; - } - - *ppCue = (FACTCue*) pSoundBank->parentEngine->pMalloc(sizeof(FACTCue)); - FAudio_zero(*ppCue, sizeof(FACTCue)); - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - - /* Engine references */ - (*ppCue)->parentBank = pSoundBank; - (*ppCue)->next = NULL; - (*ppCue)->managed = 0; - (*ppCue)->index = nCueIndex; - (*ppCue)->notifyOnDestroy = 0; - (*ppCue)->usercontext = NULL; - - /* Sound data */ - (*ppCue)->data = &pSoundBank->cues[nCueIndex]; - if ((*ppCue)->data->flags & 0x04) - { - for (i = 0; i < pSoundBank->soundCount; i += 1) - { - if ((*ppCue)->data->sbCode == pSoundBank->soundCodes[i]) - { - (*ppCue)->sound = &pSoundBank->sounds[i]; - break; - } - } - } - else - { - for (i = 0; i < pSoundBank->variationCount; i += 1) - { - if ((*ppCue)->data->sbCode == pSoundBank->variationCodes[i]) - { - (*ppCue)->variation = &pSoundBank->variations[i]; - break; - } - } - if ((*ppCue)->variation->flags == 3) - { - (*ppCue)->interactive = pSoundBank->parentEngine->variables[ - (*ppCue)->variation->variable - ].initialValue; - } - } - - /* Instance data */ - (*ppCue)->variableValues = (float*) pSoundBank->parentEngine->pMalloc( - sizeof(float) * pSoundBank->parentEngine->variableCount - ); - for (i = 0; i < pSoundBank->parentEngine->variableCount; i += 1) - { - (*ppCue)->variableValues[i] = - pSoundBank->parentEngine->variables[i].initialValue; - } - - /* Playback */ - (*ppCue)->state = FACT_STATE_PREPARED; - - /* Add to the SoundBank Cue list */ - if (pSoundBank->cueList == NULL) - { - pSoundBank->cueList = *ppCue; - } - else - { - latest = pSoundBank->cueList; - while (latest->next != NULL) - { - latest = latest->next; - } - latest->next = *ppCue; - } - - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTSoundBank_Play( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags, - int32_t timeOffset, - FACTCue** ppCue /* Optional! */ -) { - FACTCue *result; - if (pSoundBank == NULL) - { - if (ppCue != NULL) - { - *ppCue = NULL; - } - return 1; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - - FACTSoundBank_Prepare( - pSoundBank, - nCueIndex, - dwFlags, - timeOffset, - &result - ); - if (ppCue != NULL) - { - *ppCue = result; - } - else - { - /* AKA we get to Destroy() this ourselves */ - result->managed = 1; - } - FACTCue_Play(result); - - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTSoundBank_Play3D( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags, - int32_t timeOffset, - F3DAUDIO_DSP_SETTINGS *pDSPSettings, - FACTCue** ppCue /* Optional! */ -) { - FACTCue *result; - if (pSoundBank == NULL) - { - if (ppCue != NULL) - { - *ppCue = NULL; - } - return 1; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - - FACTSoundBank_Prepare( - pSoundBank, - nCueIndex, - dwFlags, - timeOffset, - &result - ); - if (ppCue != NULL) - { - *ppCue = result; - } - else - { - /* AKA we get to Destroy() this ourselves */ - result->managed = 1; - } - FACT3DApply(pDSPSettings, result); - FACTCue_Play(result); - - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTSoundBank_Stop( - FACTSoundBank *pSoundBank, - uint16_t nCueIndex, - uint32_t dwFlags -) { - FACTCue *backup, *cue; - if (pSoundBank == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - cue = pSoundBank->cueList; - while (cue != NULL) - { - if (cue->index == nCueIndex) - { - if ( dwFlags == FACT_FLAG_STOP_IMMEDIATE && - cue->managed ) - { - /* Just blow this up now */ - backup = cue->next; - FACTCue_Destroy(cue); - cue = backup; - } - else - { - /* If managed, the mixer will destroy for us */ - FACTCue_Stop(cue, dwFlags); - cue = cue->next; - } - } - else - { - cue = cue->next; - } - } - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTSoundBank_Destroy(FACTSoundBank *pSoundBank) -{ - uint16_t i, j, k; - FAudioMutex mutex; - FACTNotification note; - if (pSoundBank == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - - /* Synchronously destroys all cues that are associated */ - while (pSoundBank->cueList != NULL) - { - FACTCue_Destroy(pSoundBank->cueList); - } - - if (pSoundBank->parentEngine != NULL) - { - /* Remove this SoundBank from the Engine list */ - LinkedList_RemoveEntry( - &pSoundBank->parentEngine->sbList, - pSoundBank, - pSoundBank->parentEngine->sbLock, - pSoundBank->parentEngine->pFree - ); - } - - /* SoundBank Name */ - pSoundBank->parentEngine->pFree(pSoundBank->name); - - /* Cue data */ - pSoundBank->parentEngine->pFree(pSoundBank->cues); - - /* WaveBank Name data */ - for (i = 0; i < pSoundBank->wavebankCount; i += 1) - { - pSoundBank->parentEngine->pFree(pSoundBank->wavebankNames[i]); - } - pSoundBank->parentEngine->pFree(pSoundBank->wavebankNames); - - /* Sound data */ - for (i = 0; i < pSoundBank->soundCount; i += 1) - { - for (j = 0; j < pSoundBank->sounds[i].trackCount; j += 1) - { - for (k = 0; k < pSoundBank->sounds[i].tracks[j].eventCount; k += 1) - { - #define MATCH(t) \ - pSoundBank->sounds[i].tracks[j].events[k].type == t - if ( MATCH(FACTEVENT_PLAYWAVE) || - MATCH(FACTEVENT_PLAYWAVETRACKVARIATION) || - MATCH(FACTEVENT_PLAYWAVEEFFECTVARIATION) || - MATCH(FACTEVENT_PLAYWAVETRACKEFFECTVARIATION) ) - { - if (pSoundBank->sounds[i].tracks[j].events[k].wave.isComplex) - { - pSoundBank->parentEngine->pFree( - pSoundBank->sounds[i].tracks[j].events[k].wave.complex.tracks - ); - pSoundBank->parentEngine->pFree( - pSoundBank->sounds[i].tracks[j].events[k].wave.complex.wavebanks - ); - pSoundBank->parentEngine->pFree( - pSoundBank->sounds[i].tracks[j].events[k].wave.complex.weights - ); - } - } - #undef MATCH - } - pSoundBank->parentEngine->pFree( - pSoundBank->sounds[i].tracks[j].events - ); - } - pSoundBank->parentEngine->pFree(pSoundBank->sounds[i].tracks); - pSoundBank->parentEngine->pFree(pSoundBank->sounds[i].rpcCodes); - pSoundBank->parentEngine->pFree(pSoundBank->sounds[i].dspCodes); - } - pSoundBank->parentEngine->pFree(pSoundBank->sounds); - pSoundBank->parentEngine->pFree(pSoundBank->soundCodes); - - /* Variation data */ - for (i = 0; i < pSoundBank->variationCount; i += 1) - { - pSoundBank->parentEngine->pFree( - pSoundBank->variations[i].entries - ); - } - pSoundBank->parentEngine->pFree(pSoundBank->variations); - pSoundBank->parentEngine->pFree(pSoundBank->variationCodes); - - /* Transition data */ - for (i = 0; i < pSoundBank->transitionCount; i += 1) - { - pSoundBank->parentEngine->pFree( - pSoundBank->transitions[i].entries - ); - } - pSoundBank->parentEngine->pFree(pSoundBank->transitions); - pSoundBank->parentEngine->pFree(pSoundBank->transitionCodes); - - /* Cue Name data */ - if (pSoundBank->cueNames != NULL) - { - for (i = 0; i < pSoundBank->cueCount; i += 1) - { - pSoundBank->parentEngine->pFree(pSoundBank->cueNames[i]); - } - pSoundBank->parentEngine->pFree(pSoundBank->cueNames); - } - - /* Finally. */ - if (pSoundBank->notifyOnDestroy || pSoundBank->parentEngine->notifications & NOTIFY_SOUNDBANKDESTROY) - { - note.type = FACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED; - note.soundBank.pSoundBank = pSoundBank; - if (pSoundBank->parentEngine->notifications & NOTIFY_SOUNDBANKDESTROY) - { - note.pvContext = pSoundBank->parentEngine->sb_context; - } - else - { - note.pvContext = pSoundBank->usercontext; - } - pSoundBank->parentEngine->notificationCallback(¬e); - } - - mutex = pSoundBank->parentEngine->apiLock; - pSoundBank->parentEngine->pFree(pSoundBank); - FAudio_PlatformUnlockMutex(mutex); - return 0; -} - -uint32_t FACTSoundBank_GetState( - FACTSoundBank *pSoundBank, - uint32_t *pdwState -) { - uint16_t i; - if (pSoundBank == NULL) - { - *pdwState = 0; - return 1; - } - - FAudio_PlatformLockMutex(pSoundBank->parentEngine->apiLock); - - *pdwState = FACT_STATE_PREPARED; - for (i = 0; i < pSoundBank->cueCount; i += 1) - { - if (pSoundBank->cues[i].instanceCount > 0) - { - *pdwState |= FACT_STATE_INUSE; - FAudio_PlatformUnlockMutex( - pSoundBank->parentEngine->apiLock - ); - return 0; - } - } - - FAudio_PlatformUnlockMutex(pSoundBank->parentEngine->apiLock); - return 0; -} - -/* WaveBank implementation */ - -uint32_t FACTWaveBank_Destroy(FACTWaveBank *pWaveBank) -{ - uint32_t i; - FACTWave *wave; - FAudioMutex mutex; - FACTNotification note; - if (pWaveBank == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - - /* Synchronously destroys any cues that are using the wavebank */ - while (pWaveBank->waveList != NULL) - { - wave = (FACTWave*) pWaveBank->waveList->entry; - if (wave->parentCue != NULL) - { - /* Destroying this Cue destroys the Wave */ - FACTCue_Destroy(wave->parentCue); - } - else - { - FACTWave_Destroy(wave); - } - } - - if (pWaveBank->parentEngine != NULL) - { - /* Remove this WaveBank from the Engine list */ - LinkedList_RemoveEntry( - &pWaveBank->parentEngine->wbList, - pWaveBank, - pWaveBank->parentEngine->wbLock, - pWaveBank->parentEngine->pFree - ); - } - - /* Free everything, finally. */ - pWaveBank->parentEngine->pFree(pWaveBank->name); - pWaveBank->parentEngine->pFree(pWaveBank->entries); - pWaveBank->parentEngine->pFree(pWaveBank->entryRefs); - if (pWaveBank->seekTables != NULL) - { - for (i = 0; i < pWaveBank->entryCount; i += 1) - { - if (pWaveBank->seekTables[i].entries != NULL) - { - pWaveBank->parentEngine->pFree( - pWaveBank->seekTables[i].entries - ); - } - } - pWaveBank->parentEngine->pFree(pWaveBank->seekTables); - } - - if (!pWaveBank->streaming) - { - FAudio_close(pWaveBank->io); - } - - if (pWaveBank->packetBuffer != NULL) - { - pWaveBank->parentEngine->pFree(pWaveBank->packetBuffer); - } - if (pWaveBank->notifyOnDestroy || pWaveBank->parentEngine->notifications & NOTIFY_WAVEBANKDESTROY) - { - note.type = FACTNOTIFICATIONTYPE_WAVEBANKDESTROYED; - note.waveBank.pWaveBank = pWaveBank; - if (pWaveBank->parentEngine->notifications & NOTIFY_WAVEBANKDESTROY) - { - note.pvContext = pWaveBank->parentEngine->wb_context; - } - else - { - note.pvContext = pWaveBank->usercontext; - } - pWaveBank->parentEngine->notificationCallback(¬e); - } - FAudio_PlatformDestroyMutex(pWaveBank->waveLock); - - if (pWaveBank->waveBankNames != NULL) - { - pWaveBank->parentEngine->pFree(pWaveBank->waveBankNames); - } - - mutex = pWaveBank->parentEngine->apiLock; - pWaveBank->parentEngine->pFree(pWaveBank); - FAudio_PlatformUnlockMutex(mutex); - return 0; -} - -uint32_t FACTWaveBank_GetState( - FACTWaveBank *pWaveBank, - uint32_t *pdwState -) { - uint32_t i; - if (pWaveBank == NULL) - { - *pdwState = 0; - return 1; - } - - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - - *pdwState = FACT_STATE_PREPARED; - for (i = 0; i < pWaveBank->entryCount; i += 1) - { - if (pWaveBank->entryRefs[i] > 0) - { - *pdwState |= FACT_STATE_INUSE; - FAudio_PlatformUnlockMutex( - pWaveBank->parentEngine->apiLock - ); - return 0; - } - } - - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWaveBank_GetNumWaves( - FACTWaveBank *pWaveBank, - uint16_t *pnNumWaves -) { - if (pWaveBank == NULL) - { - *pnNumWaves = 0; - return 1; - } - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - *pnNumWaves = pWaveBank->entryCount; - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - return 0; -} - -uint16_t FACTWaveBank_GetWaveIndex( - FACTWaveBank *pWaveBank, - const char *szFriendlyName -) { - uint16_t i; - char *curName; - if (pWaveBank == NULL || pWaveBank->waveBankNames == NULL) - { - return FACTINDEX_INVALID; - } - - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - curName = pWaveBank->waveBankNames; - for (i = 0; i < pWaveBank->entryCount; i += 1, curName += 64) - { - if (FAudio_strncmp(szFriendlyName, curName, 64) == 0) - { - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - return i; - } - } - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - - return FACTINDEX_INVALID; -} - -uint32_t FACTWaveBank_GetWaveProperties( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - FACTWaveProperties *pWaveProperties -) { - FACTWaveBankEntry *entry; - if (pWaveBank == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - - entry = &pWaveBank->entries[nWaveIndex]; - - if (pWaveBank->waveBankNames) - { - FAudio_memcpy( - pWaveProperties->friendlyName, - &pWaveBank->waveBankNames[nWaveIndex * 64], - sizeof(pWaveProperties->friendlyName) - ); - } - else - { - FAudio_zero( - pWaveProperties->friendlyName, - sizeof(pWaveProperties->friendlyName) - ); - } - - pWaveProperties->format = entry->Format; - pWaveProperties->durationInSamples = entry->PlayRegion.dwLength; - if (entry->Format.wFormatTag == 0) - { - pWaveProperties->durationInSamples /= (8 << entry->Format.wBitsPerSample) / 8; - pWaveProperties->durationInSamples /= entry->Format.nChannels; - } - else if (entry->Format.wFormatTag == FAUDIO_FORMAT_MSADPCM) - { - pWaveProperties->durationInSamples = ( - pWaveProperties->durationInSamples / - ((entry->Format.wBlockAlign + 22) * entry->Format.nChannels) * - ((entry->Format.wBlockAlign + 16) * 2) - ); - } - else - { - FAudio_assert(0 && "Unrecognized wFormatTag!"); - } - - pWaveProperties->loopRegion = entry->LoopRegion; - pWaveProperties->streaming = pWaveBank->streaming; - - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWaveBank_Prepare( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - uint32_t dwFlags, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -) { - FAudioBuffer buffer; - FAudioBufferWMA bufferWMA; - FAudioVoiceSends sends; - FAudioSendDescriptor send; - union - { - FAudioWaveFormatEx pcm; - FAudioADPCMWaveFormat adpcm; - FAudioXMA2WaveFormat xma2; - } format; - FACTWaveBankEntry *entry; - FACTSeekTable *seek; - if (pWaveBank == NULL) - { - *ppWave = NULL; - return 1; - } - - *ppWave = (FACTWave*) pWaveBank->parentEngine->pMalloc(sizeof(FACTWave)); - - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - - entry = &pWaveBank->entries[nWaveIndex]; - - /* Engine references */ - (*ppWave)->parentBank = pWaveBank; - (*ppWave)->parentCue = NULL; - (*ppWave)->index = nWaveIndex; - (*ppWave)->notifyOnDestroy = 0; - (*ppWave)->usercontext = NULL; - - /* Playback */ - (*ppWave)->state = FACT_STATE_PREPARED; - (*ppWave)->volume = 1.0f; - (*ppWave)->pitch = 0; - (*ppWave)->loopCount = nLoopCount; - - /* TODO: Convert dwPlayOffset to a byte offset */ - FAudio_assert(dwPlayOffset == 0); -#if 0 - if (dwFlags & FACT_FLAG_UNITS_MS) - { - dwPlayOffset = (uint32_t) ( - ( /* Samples per millisecond... */ - (float) entry->Format.nSamplesPerSec / - 1000.0f - ) * (float) dwPlayOffset - ); - } -#endif - - /* Create the voice */ - send.Flags = 0; - send.pOutputVoice = pWaveBank->parentEngine->master; - sends.SendCount = 1; - sends.pSends = &send; - format.pcm.nChannels = entry->Format.nChannels; - format.pcm.nSamplesPerSec = entry->Format.nSamplesPerSec; - if (entry->Format.wFormatTag == 0x0) - { - format.pcm.wFormatTag = FAUDIO_FORMAT_PCM; - format.pcm.wBitsPerSample = 8 << entry->Format.wBitsPerSample; - format.pcm.nBlockAlign = format.pcm.nChannels * format.pcm.wBitsPerSample / 8; - format.pcm.nAvgBytesPerSec = format.pcm.nBlockAlign * format.pcm.nSamplesPerSec; - format.pcm.cbSize = 0; - } - else if (entry->Format.wFormatTag == 0x1) - { - /* XMA2 is quite similar to WMA Pro... is what everyone thought. - * What a great way to start this comment. - * - * Let's reconstruct the extra data because who knows what decoder we're dealing with in . - * It's also a good exercise in understanding XMA2 metadata and feeding blocks into the decoder properly. - * At the time of writing this patch, it's FFmpeg via gstreamer which doesn't even respect most of this. - * ... which means: good luck to whoever ends up finding inaccuracies here in the future! - * - * dwLoopLength seems to match dwPlayLength in everything I've seen that had bLoopCount == 0. - * dwLoopBegin can be > 0 even with bLoopCount == 0 because why not. Let's ignore that. - * - * dwSamplesEncoded is usually close to dwPlayLength but not always (if ever?) equal. Let's assume equality. - * The XMA2 seek table uses sample indices as opposed to WMA's byte index seek table. - * - * nBlockAlign uses aWMABlockAlign given the entire WMA Pro thing BUT it's expected to be the block size for decoding. - * The XMA2 block size MUST be a multiple of 2048 BUT entry->PlayRegion.dwLength / seek->entryCount doesn't respect that. - * And even when correctly guesstimating the block size, we sometimes end up with block sizes >= 64k BYTES. nBlockAlign IS 16-BIT! - * Scrap nBlockAlign. I've given up and made all FAudio gstreamer functions use dwBytesPerBlock if available. - * Still though, if we don't want FAudio_INTERNAL_DecodeGSTREAMER to hang, the total data length must match (see SoundEffect.cs in FNA). - * As such, we round up when guessing the block size, feed GStreamer with zeroes^Wundersized blocks and hope for the best. - * - * This is FUN. - * -ade - */ - FAudio_assert(entry->Format.wBitsPerSample != 0); - - seek = &pWaveBank->seekTables[nWaveIndex]; - format.pcm.wFormatTag = FAUDIO_FORMAT_XMAUDIO2; - format.pcm.wBitsPerSample = 16; - format.pcm.nAvgBytesPerSec = aWMAAvgBytesPerSec[entry->Format.wBlockAlign >> 5]; - format.pcm.nBlockAlign = aWMABlockAlign[entry->Format.wBlockAlign & 0x1F]; - format.pcm.cbSize = ( - sizeof(FAudioXMA2WaveFormat) - - sizeof(FAudioWaveFormatEx) - ); - format.xma2.wNumStreams = (format.pcm.nChannels + 1) / 2; - format.xma2.dwChannelMask = format.pcm.nChannels > 1 ? 0xFFFFFFFF >> (32 - format.pcm.nChannels) : 0; - format.xma2.dwSamplesEncoded = seek->entries[seek->entryCount - 1]; - format.xma2.dwBytesPerBlock = (uint16_t) FAudio_ceil( - (double) entry->PlayRegion.dwLength / - (double) seek->entryCount / - 2048.0 - ) * 2048; - format.xma2.dwPlayBegin = format.xma2.dwLoopBegin = 0; - format.xma2.dwPlayLength = format.xma2.dwLoopLength = format.xma2.dwSamplesEncoded; - format.xma2.bLoopCount = 0; - format.xma2.bEncoderVersion = 4; - format.xma2.wBlockCount = seek->entryCount; - } - else if (entry->Format.wFormatTag == 0x2) - { - format.pcm.wFormatTag = FAUDIO_FORMAT_MSADPCM; - format.pcm.nBlockAlign = (entry->Format.wBlockAlign + 22) * format.pcm.nChannels; - format.pcm.wBitsPerSample = 16; - format.pcm.cbSize = ( - sizeof(FAudioADPCMWaveFormat) - - sizeof(FAudioWaveFormatEx) - ); - format.adpcm.wSamplesPerBlock = ( - ((format.pcm.nBlockAlign / format.pcm.nChannels) - 6) * 2 - ); - } - else if (entry->Format.wFormatTag == 0x3) - { - /* Apparently this is used to detect WMA Pro...? */ - FAudio_assert(entry->Format.wBitsPerSample == 0); - - format.pcm.wFormatTag = FAUDIO_FORMAT_WMAUDIO2; - format.pcm.nAvgBytesPerSec = aWMAAvgBytesPerSec[entry->Format.wBlockAlign >> 5]; - format.pcm.nBlockAlign = aWMABlockAlign[entry->Format.wBlockAlign & 0x1F]; - format.pcm.wBitsPerSample = 16; - format.pcm.cbSize = 0; - } - else - { - FAudio_assert(0 && "Rebuild your WaveBanks with ADPCM!"); - } - (*ppWave)->callback.callback.OnBufferEnd = pWaveBank->streaming ? - FACT_INTERNAL_OnBufferEnd : - NULL; - (*ppWave)->callback.callback.OnBufferStart = NULL; - (*ppWave)->callback.callback.OnLoopEnd = NULL; - (*ppWave)->callback.callback.OnStreamEnd = FACT_INTERNAL_OnStreamEnd; - (*ppWave)->callback.callback.OnVoiceError = NULL; - (*ppWave)->callback.callback.OnVoiceProcessingPassEnd = NULL; - (*ppWave)->callback.callback.OnVoiceProcessingPassStart = NULL; - (*ppWave)->callback.wave = *ppWave; - (*ppWave)->srcChannels = format.pcm.nChannels; - FAudio_CreateSourceVoice( - pWaveBank->parentEngine->audio, - &(*ppWave)->voice, - &format.pcm, - FAUDIO_VOICE_USEFILTER, /* FIXME: Can this be optional? */ - 4.0f, - (FAudioVoiceCallback*) &(*ppWave)->callback, - &sends, - NULL - ); - if (pWaveBank->streaming) - { - /* Init stream cache info */ - if (format.pcm.wFormatTag == FAUDIO_FORMAT_PCM) - { - (*ppWave)->streamSize = ( - format.pcm.nSamplesPerSec * - format.pcm.nBlockAlign - ); - } - else if (format.pcm.wFormatTag == FAUDIO_FORMAT_MSADPCM) - { - (*ppWave)->streamSize = ( - format.pcm.nSamplesPerSec / - format.adpcm.wSamplesPerBlock * - format.pcm.nBlockAlign - ); - } - else - { - /* Screw it, load the whole thing */ - (*ppWave)->streamSize = entry->PlayRegion.dwLength; - - /* XACT does NOT support loop subregions for these formats */ - FAudio_assert(entry->LoopRegion.dwStartSample == 0); - FAudio_assert(entry->LoopRegion.dwTotalSamples == 0 || entry->LoopRegion.dwTotalSamples == entry->Duration); - } - (*ppWave)->streamCache = (uint8_t*) pWaveBank->parentEngine->pMalloc( - (*ppWave)->streamSize - ); - (*ppWave)->streamOffset = entry->PlayRegion.dwOffset; - - /* Read and submit first buffer from the WaveBank */ - FACT_INTERNAL_OnBufferEnd(&(*ppWave)->callback.callback, NULL); - } - else - { - (*ppWave)->streamCache = NULL; - - buffer.Flags = FAUDIO_END_OF_STREAM; - buffer.AudioBytes = entry->PlayRegion.dwLength; - buffer.pAudioData = FAudio_memptr( - pWaveBank->io, - entry->PlayRegion.dwOffset - ); - buffer.PlayBegin = 0; - buffer.PlayLength = entry->Duration; - if (nLoopCount == 0) - { - buffer.LoopBegin = 0; - buffer.LoopLength = 0; - buffer.LoopCount = 0; - } - else - { - buffer.LoopBegin = entry->LoopRegion.dwStartSample; - buffer.LoopLength = entry->LoopRegion.dwTotalSamples; - buffer.LoopCount = nLoopCount; - } - buffer.pContext = NULL; - if (format.pcm.wFormatTag == FAUDIO_FORMAT_WMAUDIO2) - { - bufferWMA.pDecodedPacketCumulativeBytes = - pWaveBank->seekTables[nWaveIndex].entries; - bufferWMA.PacketCount = - pWaveBank->seekTables[nWaveIndex].entryCount; - FAudioSourceVoice_SubmitSourceBuffer( - (*ppWave)->voice, - &buffer, - &bufferWMA - ); - } - else - { - FAudioSourceVoice_SubmitSourceBuffer( - (*ppWave)->voice, - &buffer, - NULL - ); - } - } - - /* Add to the WaveBank Wave list */ - LinkedList_AddEntry( - &pWaveBank->waveList, - *ppWave, - pWaveBank->waveLock, - pWaveBank->parentEngine->pMalloc - ); - - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWaveBank_Play( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - uint32_t dwFlags, - uint32_t dwPlayOffset, - uint8_t nLoopCount, - FACTWave **ppWave -) { - if (pWaveBank == NULL) - { - *ppWave = NULL; - return 1; - } - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - FACTWaveBank_Prepare( - pWaveBank, - nWaveIndex, - dwFlags, - dwPlayOffset, - nLoopCount, - ppWave - ); - FACTWave_Play(*ppWave); - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWaveBank_Stop( - FACTWaveBank *pWaveBank, - uint16_t nWaveIndex, - uint32_t dwFlags -) { - FACTWave *wave; - LinkedList *list; - if (pWaveBank == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pWaveBank->parentEngine->apiLock); - list = pWaveBank->waveList; - while (list != NULL) - { - wave = (FACTWave*) list->entry; - if (wave->index == nWaveIndex) - { - FACTWave_Stop(wave, dwFlags); - } - list = list->next; - } - FAudio_PlatformUnlockMutex(pWaveBank->parentEngine->apiLock); - return 0; -} - -/* Wave implementation */ - -uint32_t FACTWave_Destroy(FACTWave *pWave) -{ - FAudioMutex mutex; - FACTNotification note; - if (pWave == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - - /* Stop before we start deleting everything */ - FACTWave_Stop(pWave, FACT_FLAG_STOP_IMMEDIATE); - - LinkedList_RemoveEntry( - &pWave->parentBank->waveList, - pWave, - pWave->parentBank->waveLock, - pWave->parentBank->parentEngine->pFree - ); - - FAudioVoice_DestroyVoice(pWave->voice); - if (pWave->streamCache != NULL) - { - pWave->parentBank->parentEngine->pFree(pWave->streamCache); - } - if (pWave->notifyOnDestroy || pWave->parentBank->parentEngine->notifications & NOTIFY_WAVEDESTROY) - { - note.type = FACTNOTIFICATIONTYPE_WAVEDESTROYED; - note.wave.pWave = pWave; - if (pWave->parentBank->parentEngine->notifications & NOTIFY_WAVEDESTROY) - { - note.pvContext = pWave->parentBank->parentEngine->wave_context; - } - else - { - note.pvContext = pWave->usercontext; - } - pWave->parentBank->parentEngine->notificationCallback(¬e); - } - - mutex = pWave->parentBank->parentEngine->apiLock; - pWave->parentBank->parentEngine->pFree(pWave); - FAudio_PlatformUnlockMutex(mutex); - return 0; -} - -uint32_t FACTWave_Play(FACTWave *pWave) -{ - if (pWave == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - FAudio_assert(!(pWave->state & (FACT_STATE_PLAYING | FACT_STATE_STOPPING))); - pWave->state |= FACT_STATE_PLAYING; - pWave->state &= ~( - FACT_STATE_PAUSED | - FACT_STATE_STOPPED - ); - FAudioSourceVoice_Start(pWave->voice, 0, 0); - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWave_Stop(FACTWave *pWave, uint32_t dwFlags) -{ - if (pWave == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - - /* There are two ways that a Wave might be stopped immediately: - * 1. The program explicitly asks for it - * 2. The Wave is paused and therefore we can't do fade/release effects - */ - if ( dwFlags & FACT_FLAG_STOP_IMMEDIATE || - pWave->state & FACT_STATE_PAUSED ) - { - pWave->state |= FACT_STATE_STOPPED; - pWave->state &= ~( - FACT_STATE_PLAYING | - FACT_STATE_STOPPING | - FACT_STATE_PAUSED - ); - FAudioSourceVoice_Stop(pWave->voice, 0, 0); - FAudioSourceVoice_FlushSourceBuffers(pWave->voice); - } - else - { - pWave->state |= FACT_STATE_STOPPING; - FAudioSourceVoice_ExitLoop(pWave->voice, 0); - } - - if (pWave->parentBank->parentEngine->notifications & NOTIFY_WAVESTOP) - { - FACTNotification note; - note.type = FACTNOTIFICATIONTYPE_WAVESTOP; - note.wave.cueIndex = pWave->parentCue->index; - note.wave.pCue = pWave->parentCue; - note.wave.pSoundBank = pWave->parentCue->parentBank; - note.wave.pWave = pWave; - note.wave.pWaveBank = pWave->parentBank; - note.pvContext = pWave->parentBank->parentEngine->wave_context; - - pWave->parentBank->parentEngine->notificationCallback(¬e); - } - - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWave_Pause(FACTWave *pWave, int32_t fPause) -{ - if (pWave == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - - /* FIXME: Does the Cue STOPPING/STOPPED rule apply here too? */ - if (pWave->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) - { - FAudio_PlatformUnlockMutex( - pWave->parentBank->parentEngine->apiLock - ); - return 0; - } - - /* All we do is set the flag, the mixer handles the rest */ - if (fPause) - { - pWave->state |= FACT_STATE_PAUSED; - FAudioSourceVoice_Stop(pWave->voice, 0, 0); - } - else - { - pWave->state &= ~FACT_STATE_PAUSED; - FAudioSourceVoice_Start(pWave->voice, 0, 0); - } - - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWave_GetState(FACTWave *pWave, uint32_t *pdwState) -{ - if (pWave == NULL) - { - *pdwState = 0; - return 1; - } - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - *pdwState = pWave->state; - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWave_SetPitch(FACTWave *pWave, int16_t pitch) -{ - if (pWave == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - pWave->pitch = FAudio_clamp( - pitch, - FACTPITCH_MIN_TOTAL, - FACTPITCH_MAX_TOTAL - ); - FAudioSourceVoice_SetFrequencyRatio( - pWave->voice, - (float) FAudio_pow(2.0, pWave->pitch / 1200.0), - 0 - ); - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWave_SetVolume(FACTWave *pWave, float volume) -{ - if (pWave == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - pWave->volume = FAudio_clamp( - volume, - FACTVOLUME_MIN, - FACTVOLUME_MAX - ); - FAudioVoice_SetVolume( - pWave->voice, - pWave->volume, - 0 - ); - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTWave_SetMatrixCoefficients( - FACTWave *pWave, - uint32_t uSrcChannelCount, - uint32_t uDstChannelCount, - float *pMatrixCoefficients -) { - uint32_t i; - float *mtxDst, *mtxSrc, *mtxTmp = NULL; - if (pWave == NULL) - { - return 1; - } - - /* There seems to be this weird feature in XACT where the channel count - * can be completely wrong and it'll go to the right place. - * I guess these XACT functions do some extra work to merge coefficients - * but I have no idea where it really happens and XAudio2 definitely - * does NOT like it when this is wrong, so here it goes... - * -flibit - */ - if (uSrcChannelCount == 1 && pWave->srcChannels == 2) - { - mtxTmp = (float*) FAudio_alloca( - sizeof(float) * - pWave->srcChannels * - uDstChannelCount - ); - mtxDst = mtxTmp; - mtxSrc = pMatrixCoefficients; - for (i = 0; i < uDstChannelCount; i += 1) - { - mtxDst[0] = *mtxSrc; - mtxDst[1] = *mtxSrc; - mtxDst += 2; - mtxSrc += 1; - } - uSrcChannelCount = 2; - pMatrixCoefficients = mtxTmp; - } - else if (uSrcChannelCount == 2 && pWave->srcChannels == 1) - { - mtxTmp = (float*) FAudio_alloca( - sizeof(float) * - pWave->srcChannels * - uDstChannelCount - ); - mtxDst = mtxTmp; - mtxSrc = pMatrixCoefficients; - for (i = 0; i < uDstChannelCount; i += 1) - { - *mtxDst = (mtxSrc[0] + mtxSrc[1]) / 2.0f; - mtxDst += 1; - mtxSrc += 2; - } - uSrcChannelCount = 1; - pMatrixCoefficients = mtxTmp; - } - - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - - FAudioVoice_SetOutputMatrix( - pWave->voice, - pWave->voice->sends.pSends->pOutputVoice, - uSrcChannelCount, - uDstChannelCount, - pMatrixCoefficients, - 0 - ); - - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - if (mtxTmp != NULL) - { - FAudio_dealloca(mtxTmp); - } - return 0; -} - -uint32_t FACTWave_GetProperties( - FACTWave *pWave, - FACTWaveInstanceProperties *pProperties -) { - if (pWave == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pWave->parentBank->parentEngine->apiLock); - - FACTWaveBank_GetWaveProperties( - pWave->parentBank, - pWave->index, - &pProperties->properties - ); - - /* FIXME: This is unsupported on PC, do we care about this? */ - pProperties->backgroundMusic = 0; - - FAudio_PlatformUnlockMutex(pWave->parentBank->parentEngine->apiLock); - return 0; -} - -/* Cue implementation */ - -uint32_t FACTCue_Destroy(FACTCue *pCue) -{ - FACTCue *cue, *prev; - FAudioMutex mutex; - FACTNotification note; - if (pCue == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - /* Stop before we start deleting everything */ - FACTCue_Stop(pCue, FACT_FLAG_STOP_IMMEDIATE); - - /* Remove this Cue from the SoundBank list */ - cue = pCue->parentBank->cueList; - prev = cue; - while (cue != NULL) - { - if (cue == pCue) - { - if (cue == prev) /* First in list */ - { - pCue->parentBank->cueList = cue->next; - } - else - { - prev->next = cue->next; - } - break; - } - prev = cue; - cue = cue->next; - } - FAudio_assert(cue != NULL && "Could not find Cue reference!"); - - pCue->parentBank->parentEngine->pFree(pCue->variableValues); - FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUEDESTROY, FACTNOTIFICATIONTYPE_CUEDESTROYED); - - mutex = pCue->parentBank->parentEngine->apiLock; - pCue->parentBank->parentEngine->pFree(pCue); - FAudio_PlatformUnlockMutex(mutex); - return 0; -} - -uint32_t FACTCue_Play(FACTCue *pCue) -{ - union - { - float maxf; - uint8_t maxi; - } limitmax; - FACTCue *tmp, *wnr; - uint16_t fadeInMS = 0; - FACTCueData *data; - if (pCue == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - FAudio_assert(!(pCue->state & (FACT_STATE_PLAYING | FACT_STATE_STOPPING))); - - data = &pCue->parentBank->cues[pCue->index]; - - /* Cue Instance Limits */ - if (data->instanceCount >= data->instanceLimit) - { - wnr = NULL; - tmp = pCue->parentBank->cueList; - if (data->maxInstanceBehavior == 0) /* Fail */ - { - pCue->state |= FACT_STATE_STOPPED; - pCue->state &= ~( - FACT_STATE_PLAYING | - FACT_STATE_STOPPING | - FACT_STATE_PAUSED - ); - - FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUESTOP, FACTNOTIFICATIONTYPE_CUESTOP); - - FAudio_PlatformUnlockMutex( - pCue->parentBank->parentEngine->apiLock - ); - return 1; - } - else if (data->maxInstanceBehavior == 1) /* Queue */ - { - /* FIXME: How is this different from Replace Oldest? */ - while (tmp != NULL) - { - if ( tmp != pCue && - tmp->index == pCue->index && - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - break; - } - tmp = tmp->next; - } - } - else if (data->maxInstanceBehavior == 2) /* Replace Oldest */ - { - while (tmp != NULL) - { - if ( tmp != pCue && - tmp->index == pCue->index && - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - break; - } - tmp = tmp->next; - } - } - else if (data->maxInstanceBehavior == 3) /* Replace Quietest */ - { - limitmax.maxf = FACTVOLUME_MAX; - while (tmp != NULL) - { - if ( tmp != pCue && - tmp->index == pCue->index && - tmp->playingSound != NULL && - /*FIXME: tmp->playingSound->volume < limitmax.maxf &&*/ - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - /* limitmax.maxf = tmp->playingSound->volume; */ - } - tmp = tmp->next; - } - } - else if (data->maxInstanceBehavior == 4) /* Replace Lowest Priority */ - { - limitmax.maxi = 0xFF; - while (tmp != NULL) - { - if ( tmp != pCue && - tmp->index == pCue->index && - tmp->playingSound != NULL && - tmp->playingSound->sound->priority < limitmax.maxi && - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - limitmax.maxi = tmp->playingSound->sound->priority; - } - tmp = tmp->next; - } - } - if (wnr != NULL) - { - fadeInMS = data->fadeInMS; - if (wnr->playingSound != NULL) - { - FACT_INTERNAL_BeginFadeOut(wnr->playingSound, data->fadeOutMS); - } - else - { - FACTCue_Stop(wnr, 0); - } - } - } - - /* Need an initial sound to play */ - if (!FACT_INTERNAL_CreateSound(pCue, fadeInMS)) - { - FAudio_PlatformUnlockMutex( - pCue->parentBank->parentEngine->apiLock - ); - return 1; - } - data->instanceCount += 1; - - pCue->state |= FACT_STATE_PLAYING; - pCue->state &= ~( - FACT_STATE_PAUSED | - FACT_STATE_STOPPED | - FACT_STATE_PREPARED - ); - - FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUEPLAY, FACTNOTIFICATIONTYPE_CUEPLAY); - - pCue->start = FAudio_timems(); - - /* If it's a simple wave, just play it! */ - if (pCue->simpleWave != NULL) - { - if (pCue->active3D) - { - FACTWave_SetMatrixCoefficients( - pCue->simpleWave, - pCue->srcChannels, - pCue->dstChannels, - pCue->matrixCoefficients - ); - } - FACTWave_Play(pCue->simpleWave); - } - - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTCue_Stop(FACTCue *pCue, uint32_t dwFlags) -{ - if (pCue == NULL) - { - return 1; - } - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - /* If we're already stopped, there's nothing to do... */ - if (pCue->state & FACT_STATE_STOPPED) - { - FAudio_PlatformUnlockMutex( - pCue->parentBank->parentEngine->apiLock - ); - return 0; - } - - /* If we're stopping and we haven't asked for IMMEDIATE, we're already - * doing what the application is asking us to do... - */ - if ( (pCue->state & FACT_STATE_STOPPING) && - !(dwFlags & FACT_FLAG_STOP_IMMEDIATE) ) - { - FAudio_PlatformUnlockMutex( - pCue->parentBank->parentEngine->apiLock - ); - return 0; - } - - /* There are three ways that a Cue might be stopped immediately: - * 1. The program explicitly asks for it - * 2. The Cue is paused and therefore we can't do fade/release effects - * 3. The Cue is stopped "as authored" and has no fade effects - */ - if ( dwFlags & FACT_FLAG_STOP_IMMEDIATE || - pCue->state & FACT_STATE_PAUSED || - pCue->playingSound == NULL || - ( pCue->parentBank->cues[pCue->index].fadeOutMS == 0 && - pCue->maxRpcReleaseTime == 0 ) ) - { - pCue->start = 0; - pCue->elapsed = 0; - pCue->state |= FACT_STATE_STOPPED; - pCue->state &= ~( - FACT_STATE_PLAYING | - FACT_STATE_STOPPING | - FACT_STATE_PAUSED - ); - - if (pCue->simpleWave != NULL) - { - FACTWave_Destroy(pCue->simpleWave); - pCue->simpleWave = NULL; - - pCue->data->instanceCount -= 1; - } - else if (pCue->playingSound != NULL) - { - FACT_INTERNAL_DestroySound(pCue->playingSound); - } - } - else - { - if (pCue->parentBank->cues[pCue->index].fadeOutMS > 0) - { - FACT_INTERNAL_BeginFadeOut( - pCue->playingSound, - pCue->parentBank->cues[pCue->index].fadeOutMS - ); - } - else if (pCue->maxRpcReleaseTime > 0) - { - FACT_INTERNAL_BeginReleaseRPC( - pCue->playingSound, - pCue->maxRpcReleaseTime - ); - } - else - { - /* Pretty sure this doesn't happen, but just in case? */ - pCue->state |= FACT_STATE_STOPPING; - } - } - - FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUESTOP, FACTNOTIFICATIONTYPE_CUESTOP); - - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTCue_GetState(FACTCue *pCue, uint32_t *pdwState) -{ - if (pCue == NULL) - { - *pdwState = 0; - return 1; - } - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - *pdwState = pCue->state; - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTCue_SetMatrixCoefficients( - FACTCue *pCue, - uint32_t uSrcChannelCount, - uint32_t uDstChannelCount, - float *pMatrixCoefficients -) { - uint8_t i; - - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - /* See FACTCue.matrixCoefficients declaration */ - FAudio_assert(uSrcChannelCount > 0 && uSrcChannelCount < 3); - FAudio_assert(uDstChannelCount > 0 && uDstChannelCount < 9); - - /* Local storage */ - pCue->srcChannels = uSrcChannelCount; - pCue->dstChannels = uDstChannelCount; - FAudio_memcpy( - pCue->matrixCoefficients, - pMatrixCoefficients, - sizeof(float) * uSrcChannelCount * uDstChannelCount - ); - pCue->active3D = 1; - - /* Apply to Waves if they exist */ - if (pCue->simpleWave != NULL) - { - FACTWave_SetMatrixCoefficients( - pCue->simpleWave, - uSrcChannelCount, - uDstChannelCount, - pMatrixCoefficients - ); - } - else if (pCue->playingSound != NULL) - { - for (i = 0; i < pCue->playingSound->sound->trackCount; i += 1) - { - if (pCue->playingSound->tracks[i].activeWave.wave != NULL) - { - FACTWave_SetMatrixCoefficients( - pCue->playingSound->tracks[i].activeWave.wave, - uSrcChannelCount, - uDstChannelCount, - pMatrixCoefficients - ); - } - } - } - - FACT_INTERNAL_SendCueNotification(pCue, NOTIFY_CUESTOP, FACTNOTIFICATIONTYPE_CUESTOP); - - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return 0; -} - -uint16_t FACTCue_GetVariableIndex( - FACTCue *pCue, - const char *szFriendlyName -) { - uint16_t i; - if (pCue == NULL) - { - return FACTVARIABLEINDEX_INVALID; - } - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - for (i = 0; i < pCue->parentBank->parentEngine->variableCount; i += 1) - { - if ( FAudio_strcmp(szFriendlyName, pCue->parentBank->parentEngine->variableNames[i]) == 0 && - pCue->parentBank->parentEngine->variables[i].accessibility & 0x04 ) - { - FAudio_PlatformUnlockMutex( - pCue->parentBank->parentEngine->apiLock - ); - return i; - } - } - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return FACTVARIABLEINDEX_INVALID; -} - -uint32_t FACTCue_SetVariable( - FACTCue *pCue, - uint16_t nIndex, - float nValue -) { - FACTVariable *var; - if (pCue == NULL) - { - return 1; - } - - if (nIndex == FACTINDEX_INVALID) - { - return 1; - } - - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - var = &pCue->parentBank->parentEngine->variables[nIndex]; - FAudio_assert(var->accessibility & 0x01); - FAudio_assert(!(var->accessibility & 0x02)); - FAudio_assert(var->accessibility & 0x04); - pCue->variableValues[nIndex] = FAudio_clamp( - nValue, - var->minValue, - var->maxValue - ); - - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTCue_GetVariable( - FACTCue *pCue, - uint16_t nIndex, - float *nValue -) { - FACTVariable *var; - if (pCue == NULL) - { - *nValue = 0.0f; - return 1; - } - - if (nIndex == FACTINDEX_INVALID) - { - return 1; - } - - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - var = &pCue->parentBank->parentEngine->variables[nIndex]; - FAudio_assert(var->accessibility & 0x01); - FAudio_assert(var->accessibility & 0x04); - - if (nIndex == 0) /* NumCueInstances */ - { - *nValue = pCue->parentBank->cues[pCue->index].instanceCount; - } - else - { - *nValue = pCue->variableValues[nIndex]; - } - - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTCue_Pause(FACTCue *pCue, int32_t fPause) -{ - uint8_t i; - if (pCue == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - /* "A stopping or stopped cue cannot be paused." */ - if (pCue->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) - { - FAudio_PlatformUnlockMutex( - pCue->parentBank->parentEngine->apiLock - ); - return 0; - } - - /* Store elapsed time */ - pCue->elapsed += FAudio_timems() - pCue->start; - - /* All we do is set the flag, not much to see here */ - if (fPause) - { - pCue->state |= FACT_STATE_PAUSED; - } - else - { - pCue->state &= ~FACT_STATE_PAUSED; - } - - /* Pause the Waves */ - if (pCue->simpleWave != NULL) - { - FACTWave_Pause(pCue->simpleWave, fPause); - } - else if (pCue->playingSound != NULL) - { - for (i = 0; i < pCue->playingSound->sound->trackCount; i += 1) - { - if (pCue->playingSound->tracks[i].activeWave.wave != NULL) - { - FACTWave_Pause( - pCue->playingSound->tracks[i].activeWave.wave, - fPause - ); - } - } - } - - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - return 0; -} - -uint32_t FACTCue_GetProperties( - FACTCue *pCue, - FACTCueInstanceProperties **ppProperties -) { - uint32_t i; - size_t allocSize; - FACTCueInstanceProperties *cueProps; - FACTVariationProperties *varProps; - FACTSoundProperties *sndProps; - FACTWaveInstanceProperties waveProps; - if (pCue == NULL) - { - return 1; - } - - FAudio_PlatformLockMutex(pCue->parentBank->parentEngine->apiLock); - - /* Alloc container (including variable length array space) */ - allocSize = sizeof(FACTCueInstanceProperties); - if (pCue->playingSound != NULL) - { - allocSize += ( - sizeof(FACTTrackProperties) * - pCue->playingSound->sound->trackCount - ); - } - cueProps = (FACTCueInstanceProperties*) pCue->parentBank->parentEngine->pMalloc( - allocSize - ); - FAudio_zero(cueProps, allocSize); - - /* Cue Properties */ - FACTSoundBank_GetCueProperties( - pCue->parentBank, - pCue->index, - &cueProps->cueProperties - ); - - /* Variation Properties */ - varProps = &cueProps->activeVariationProperties.variationProperties; - if (pCue->playingVariation != NULL) - { - varProps->index = 0; /* TODO: Index of what...? */ - /* TODO: This is just max - min right? Also why u8 wtf */ - varProps->weight = (uint8_t) ( - pCue->playingVariation->maxWeight - - pCue->playingVariation->minWeight - ); - if (pCue->variation->flags == 3) - { - varProps->iaVariableMin = - pCue->playingVariation->minWeight; - varProps->iaVariableMax = - pCue->playingVariation->maxWeight; - } - else - { - varProps->iaVariableMin = 0; - varProps->iaVariableMax = 0; - } - varProps->linger = pCue->playingVariation->linger; - } - - /* Sound Properties */ - sndProps = &cueProps->activeVariationProperties.soundProperties; - if (pCue->playingSound != NULL) - { - sndProps->category = pCue->playingSound->sound->category; - sndProps->priority = pCue->playingSound->sound->priority; - sndProps->pitch = pCue->playingSound->sound->pitch; - sndProps->volume = pCue->playingSound->sound->volume; - sndProps->numTracks = pCue->playingSound->sound->trackCount; - - for (i = 0; i < sndProps->numTracks; i += 1) - { - if (FACTWave_GetProperties( - pCue->playingSound->tracks[i].activeWave.wave, - &waveProps - ) == 0) { - sndProps->arrTrackProperties[i].duration = (uint32_t) ( - ( - (float) waveProps.properties.durationInSamples / - (float) waveProps.properties.format.nSamplesPerSec - ) / 1000.0f - ); - sndProps->arrTrackProperties[i].numVariations = 1; /* ? */ - sndProps->arrTrackProperties[i].numChannels = - waveProps.properties.format.nChannels; - sndProps->arrTrackProperties[i].waveVariation = 0; /* ? */ - sndProps->arrTrackProperties[i].loopCount = - pCue->playingSound->tracks[i].waveEvt->wave.loopCount; - } - } - } - - FAudio_PlatformUnlockMutex(pCue->parentBank->parentEngine->apiLock); - - *ppProperties = cueProps; - return 0; -} - -uint32_t FACTCue_SetOutputVoices( - FACTCue *pCue, - const FAudioVoiceSends *pSendList /* Optional XAUDIO2_VOICE_SENDS */ -) { - /* TODO */ - return 0; -} - -uint32_t FACTCue_SetOutputVoiceMatrix( - FACTCue *pCue, - const FAudioVoice *pDestinationVoice, /* Optional! */ - uint32_t SourceChannels, - uint32_t DestinationChannels, - const float *pLevelMatrix /* SourceChannels * DestinationChannels */ -) { - /* TODO */ - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT3D.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT3D.c deleted file mode 100644 index 0fd7d8e7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT3D.c +++ /dev/null @@ -1,172 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FACT3D.h" - -uint32_t FACT3DInitialize( - FACTAudioEngine *pEngine, - F3DAUDIO_HANDLE F3DInstance -) { - float nSpeedOfSound; - FAudioWaveFormatExtensible wfxFinalMixFormat; - - if (pEngine == NULL) - { - return 0; - } - - FACTAudioEngine_GetGlobalVariable( - pEngine, - FACTAudioEngine_GetGlobalVariableIndex( - pEngine, - "SpeedOfSound" - ), - &nSpeedOfSound - ); - FACTAudioEngine_GetFinalMixFormat( - pEngine, - &wfxFinalMixFormat - ); - F3DAudioInitialize( - wfxFinalMixFormat.dwChannelMask, - nSpeedOfSound, - F3DInstance - ); - return 0; -} - -uint32_t FACT3DCalculate( - F3DAUDIO_HANDLE F3DInstance, - const F3DAUDIO_LISTENER *pListener, - F3DAUDIO_EMITTER *pEmitter, - F3DAUDIO_DSP_SETTINGS *pDSPSettings -) { - static F3DAUDIO_DISTANCE_CURVE_POINT DefaultCurvePoints[2] = - { - { 0.0f, 1.0f }, - { 1.0f, 1.0f } - }; - static F3DAUDIO_DISTANCE_CURVE DefaultCurve = - { - (F3DAUDIO_DISTANCE_CURVE_POINT*) &DefaultCurvePoints[0], 2 - }; - - if (pListener == NULL || pEmitter == NULL || pDSPSettings == NULL) - { - return 0; - } - - if (pEmitter->ChannelCount > 1 && pEmitter->pChannelAzimuths == NULL) - { - pEmitter->ChannelRadius = 1.0f; - - if (pEmitter->ChannelCount == 2) - { - pEmitter->pChannelAzimuths = (float*) &aStereoLayout[0]; - } - else if (pEmitter->ChannelCount == 3) - { - pEmitter->pChannelAzimuths = (float*) &a2Point1Layout[0]; - } - else if (pEmitter->ChannelCount == 4) - { - pEmitter->pChannelAzimuths = (float*) &aQuadLayout[0]; - } - else if (pEmitter->ChannelCount == 5) - { - pEmitter->pChannelAzimuths = (float*) &a4Point1Layout[0]; - } - else if (pEmitter->ChannelCount == 6) - { - pEmitter->pChannelAzimuths = (float*) &a5Point1Layout[0]; - } - else if (pEmitter->ChannelCount == 8) - { - pEmitter->pChannelAzimuths = (float*) &a7Point1Layout[0]; - } - else - { - return 0; - } - } - - if (pEmitter->pVolumeCurve == NULL) - { - pEmitter->pVolumeCurve = &DefaultCurve; - } - if (pEmitter->pLFECurve == NULL) - { - pEmitter->pLFECurve = &DefaultCurve; - } - - F3DAudioCalculate( - F3DInstance, - pListener, - pEmitter, - ( - F3DAUDIO_CALCULATE_MATRIX | - F3DAUDIO_CALCULATE_DOPPLER | - F3DAUDIO_CALCULATE_EMITTER_ANGLE - ), - pDSPSettings - ); - return 0; -} - -uint32_t FACT3DApply( - F3DAUDIO_DSP_SETTINGS *pDSPSettings, - FACTCue *pCue -) { - if (pDSPSettings == NULL || pCue == NULL) - { - return 0; - } - - FACTCue_SetMatrixCoefficients( - pCue, - pDSPSettings->SrcChannelCount, - pDSPSettings->DstChannelCount, - pDSPSettings->pMatrixCoefficients - ); - FACTCue_SetVariable( - pCue, - FACTCue_GetVariableIndex(pCue, "Distance"), - pDSPSettings->EmitterToListenerDistance - ); - FACTCue_SetVariable( - pCue, - FACTCue_GetVariableIndex(pCue, "DopplerPitchScalar"), - pDSPSettings->DopplerFactor - ); - FACTCue_SetVariable( - pCue, - FACTCue_GetVariableIndex(pCue, "OrientationAngle"), - pDSPSettings->EmitterToListenerAngle * (180.0f / F3DAUDIO_PI) - ); - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT_internal.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT_internal.c deleted file mode 100644 index 84a50d00..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT_internal.c +++ /dev/null @@ -1,3344 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FACT_internal.h" -#include "FAudioFX.h" - -/* RNG */ - -#define STB_EXTERN -#define STB_DEFINE -#include "stb.h" -#define FACT_INTERNAL_rng() ((float) stb_frand()) - -/* XACT Versions */ - -#define FACT_CONTENT_VERSION_3_4 45 -#define FACT_CONTENT_VERSION_3_1 44 -#define FACT_CONTENT_VERSION_3_0 43 - -static inline int FACT_INTERNAL_SupportedContent(uint16_t version) -{ - return ( version == FACT_CONTENT_VERSION || - version == FACT_CONTENT_VERSION_3_4 || - version == FACT_CONTENT_VERSION_3_1 || - version == FACT_CONTENT_VERSION_3_0 ); -} - -#define WAVEBANK_HEADER_VERSION 44 -#define WAVEBANK_HEADER_VERSION_3_4 43 -#define WAVEBANK_HEADER_VERSION_3_1 42 - -static inline int FACT_INTERNAL_SupportedWBContent(uint16_t version) -{ - return ( version == WAVEBANK_HEADER_VERSION || - version == WAVEBANK_HEADER_VERSION_3_4 || - version == WAVEBANK_HEADER_VERSION_3_1 ); -} - -/* Helper Functions */ - -static inline float FACT_INTERNAL_CalculateAmplitudeRatio(float decibel) -{ - return (float) FAudio_pow(10.0, decibel / 2000.0); -} - -static inline float FACT_INTERNAL_CalculateFilterFrequency( - float desiredFrequency, - uint32_t sampleRate -) { - /* This is needed to convert linear frequencies to the value - * FAudio_INTERNAL_FilterVoice expects, in order for it to actually - * filter at the correct frequency. - * - * The formula is... - * - * (2 * sin(pi * (desired filter cutoff frequency) / sampleRate)) - * - * ... but it behaves badly as the filter frequency gets too high as a - * fraction of the sample rate, hence the mins. - * - * -@Woflox - */ - float freq = 2 * FAudio_sin( - F3DAUDIO_PI * - FAudio_min(desiredFrequency / sampleRate, 0.5f) - ); - return FAudio_min(freq, 1.0f); -} - -static inline void FACT_INTERNAL_ReadFile( - FACTReadFileCallback pReadFile, - FACTGetOverlappedResultCallback pGetOverlappedResult, - void* io, - uint32_t offset, - uint32_t packetSize, - uint8_t **packetBuffer, - uint32_t *packetBufferLen, - FAudioReallocFunc pRealloc, - void* dst, - uint32_t len -) { - FACTOverlapped ovlp; - uint32_t realOffset, realLen, offPacket, lenPacket, result; - uint8_t usePacketBuffer; - void *buf; - - ovlp.Internal = NULL; - ovlp.InternalHigh = NULL; - ovlp.OffsetHigh = 0; /* I sure hope so... */ - ovlp.hEvent = NULL; - - /* We have to read data in multiples of the sector size, or else - * Win32 ReadFile returns ERROR_INVALID_PARAMETER - */ - realOffset = offset; - realLen = len; - usePacketBuffer = 0; - if (packetSize > 0) - { - offPacket = realOffset % packetSize; - if (offPacket > 0) - { - usePacketBuffer = 1; - realOffset -= offPacket; - realLen += offPacket; - } - lenPacket = realLen % packetSize; - if (lenPacket > 0) - { - usePacketBuffer = 1; - realLen += (packetSize - lenPacket); - } - } - - /* If we're compensating for sector alignment, use a temp buffer and copy to - * the real destination after we're finished. - */ - if (usePacketBuffer) - { - if (*packetBufferLen < realLen) - { - *packetBufferLen = realLen; - *packetBuffer = pRealloc(*packetBuffer, realLen); - } - buf = *packetBuffer; - } - else - { - buf = dst; - } - - /* Read, finally. */ - ovlp.Offset = realOffset; - if (!pReadFile(io, buf, realLen, NULL, &ovlp)) - { - while (ovlp.Internal == (void*) 0x103) /* STATUS_PENDING */ - { - /* Don't actually sleep, just yield the thread */ - FAudio_sleep(0); - } - } - pGetOverlappedResult(io, &ovlp, &result, 1); - - /* Copy the subregion that we actually care about, if applicable */ - if (usePacketBuffer) - { - FAudio_memcpy(dst, *packetBuffer + offPacket, len); - } -} - -/* Internal Functions */ - -void FACT_INTERNAL_GetNextWave( - FACTCue *cue, - FACTSound *sound, - FACTTrack *track, - FACTTrackInstance *trackInst, - FACTEvent *evt, - FACTEventInstance *evtInst -) { - FAudioSendDescriptor reverbDesc[2]; - FAudioVoiceSends reverbSends; - const char *wbName; - FACTWaveBank *wb = NULL; - LinkedList *list; - uint16_t wbTrack; - uint8_t wbIndex; - uint8_t loopCount = 0; - float max, next; - uint8_t noTrackVariation = 1; - uint32_t i; - - /* Track Variation */ - if (evt->wave.isComplex) - { - if ( trackInst->activeWave.wave == NULL || - !(evt->wave.complex.variation & 0x00F0) ) - { - /* No-op, no variation on loop */ - } - /* Ordered, Ordered From Random */ - else if ( (evt->wave.complex.variation & 0xF) == 0 || - (evt->wave.complex.variation & 0xF) == 1 ) - { - evtInst->valuei += 1; - if (evtInst->valuei >= evt->wave.complex.trackCount) - { - evtInst->valuei = 0; - } - } - /* Random */ - else if ((evt->wave.complex.variation & 0xF) == 2) - { - max = 0.0f; - for (i = 0; i < evt->wave.complex.trackCount; i += 1) - { - max += evt->wave.complex.weights[i]; - } - next = FACT_INTERNAL_rng() * max; - for (i = evt->wave.complex.trackCount; i > 0; i -= 1) - { - if (next > (max - evt->wave.complex.weights[i - 1])) - { - evtInst->valuei = i - 1; - break; - } - max -= evt->wave.complex.weights[i - 1]; - } - } - /* Random (No Immediate Repeats), Shuffle */ - else if ( (evt->wave.complex.variation & 0xF) == 3 || - (evt->wave.complex.variation & 0xF) == 4 ) - { - max = 0.0f; - for (i = 0; i < evt->wave.complex.trackCount; i += 1) - { - if (i == evtInst->valuei) - { - continue; - } - max += evt->wave.complex.weights[i]; - } - next = FACT_INTERNAL_rng() * max; - for (i = evt->wave.complex.trackCount; i > 0; i -= 1) - { - if (i - 1 == evtInst->valuei) - { - continue; - } - if (next > (max - evt->wave.complex.weights[i - 1])) - { - evtInst->valuei = i - 1; - break; - } - max -= evt->wave.complex.weights[i - 1]; - } - } - - if (evt->wave.complex.variation & 0x00F0) - { - noTrackVariation = 0; - } - - wbIndex = evt->wave.complex.wavebanks[evtInst->valuei]; - wbTrack = evt->wave.complex.tracks[evtInst->valuei]; - } - else - { - wbIndex = evt->wave.simple.wavebank; - wbTrack = evt->wave.simple.track; - } - wbName = cue->parentBank->wavebankNames[wbIndex]; - list = cue->parentBank->parentEngine->wbList; - while (list != NULL) - { - wb = (FACTWaveBank*) list->entry; - if (FAudio_strcmp(wbName, wb->name) == 0) - { - break; - } - list = list->next; - } - FAudio_assert(wb != NULL); - - /* Generate the Wave */ - if ( evtInst->loopCount == 255 && - noTrackVariation && - !(evt->wave.variationFlags & 0x0F00) ) - { - /* For infinite loops with no variation, let Wave do the work */ - loopCount = 255; - } - FACTWaveBank_Prepare( - wb, - wbTrack, - evt->wave.flags, - 0, - loopCount, - &trackInst->upcomingWave.wave - ); - trackInst->upcomingWave.wave->parentCue = cue; - if (sound->dspCodeCount > 0) /* Never more than 1...? */ - { - reverbDesc[0].Flags = 0; - reverbDesc[0].pOutputVoice = cue->parentBank->parentEngine->master; - reverbDesc[1].Flags = 0; - reverbDesc[1].pOutputVoice = cue->parentBank->parentEngine->reverbVoice; - reverbSends.SendCount = 2; - reverbSends.pSends = reverbDesc; - FAudioVoice_SetOutputVoices( - trackInst->upcomingWave.wave->voice, - &reverbSends - ); - } - - /* 3D Audio */ - if (cue->active3D) - { - FACTWave_SetMatrixCoefficients( - trackInst->upcomingWave.wave, - cue->srcChannels, - cue->dstChannels, - cue->matrixCoefficients - ); - } - else - { - /* TODO: Position/Angle/UseCenterSpeaker */ - } - - /* Pitch Variation */ - if (evt->wave.variationFlags & 0x1000) - { - const int16_t rngPitch = (int16_t) ( - FACT_INTERNAL_rng() * - (evt->wave.maxPitch - evt->wave.minPitch) - ) + evt->wave.minPitch; - if (trackInst->activeWave.wave != NULL) - { - /* Variation on Loop */ - if (evt->wave.variationFlags & 0x0100) - { - /* Add/Replace */ - if (evt->wave.variationFlags & 0x0004) - { - trackInst->upcomingWave.basePitch = - trackInst->activeWave.basePitch + rngPitch; - } - else - { - trackInst->upcomingWave.basePitch = rngPitch + sound->pitch; - } - } - } - else - { - /* Initial Pitch Variation */ - trackInst->upcomingWave.basePitch = rngPitch + sound->pitch; - } - } - else - { - trackInst->upcomingWave.basePitch = sound->pitch; - } - - /* Volume Variation */ - if (evt->wave.variationFlags & 0x2000) - { - const float rngVolume = ( - FACT_INTERNAL_rng() * - (evt->wave.maxVolume - evt->wave.minVolume) - ) + evt->wave.minVolume; - if (trackInst->activeWave.wave != NULL) - { - /* Variation on Loop */ - if (evt->wave.variationFlags & 0x0200) - { - /* Add/Replace */ - if (evt->wave.variationFlags & 0x0001) - { - trackInst->upcomingWave.baseVolume = - trackInst->activeWave.baseVolume + rngVolume; - } - else - { - trackInst->upcomingWave.baseVolume = ( - rngVolume + - sound->volume + - track->volume - ); - } - } - } - else - { - /* Initial Volume Variation */ - trackInst->upcomingWave.baseVolume = ( - rngVolume + - sound->volume + - track->volume - ); - } - } - else - { - trackInst->upcomingWave.baseVolume = sound->volume + track->volume; - } - - /* Filter Variation, QFactor/Freq are always together */ - if (evt->wave.variationFlags & 0xC000) - { - const float rngQFactor = 1.0f / ( - FACT_INTERNAL_rng() * - (evt->wave.maxQFactor - evt->wave.minQFactor) + - evt->wave.minQFactor - ); - const float rngFrequency = FACT_INTERNAL_CalculateFilterFrequency( - ( - FACT_INTERNAL_rng() * - (evt->wave.maxFrequency - evt->wave.minFrequency) + - evt->wave.minFrequency - ), - cue->parentBank->parentEngine->audio->master->master.inputSampleRate - ); - if (trackInst->activeWave.wave != NULL) - { - /* Variation on Loop */ - if (evt->wave.variationFlags & 0x0C00) - { - /* TODO: Add/Replace */ - /* FIXME: Which is QFactor/Freq? - if (evt->wave.variationFlags & 0x0010) - { - } - else - { - } - if (evt->wave.variationFlags & 0x0040) - { - } - else - { - } - */ - trackInst->upcomingWave.baseQFactor = rngQFactor; - trackInst->upcomingWave.baseFrequency = rngFrequency; - } - } - else - { - /* Initial Filter Variation */ - trackInst->upcomingWave.baseQFactor = rngQFactor; - trackInst->upcomingWave.baseFrequency = rngFrequency; - } - } - else - { - trackInst->upcomingWave.baseQFactor = 1.0f / (track->qfactor / 3.0f); - trackInst->upcomingWave.baseFrequency = FACT_INTERNAL_CalculateFilterFrequency( - track->frequency, - cue->parentBank->parentEngine->audio->master->master.inputSampleRate - ); - - /* FIXME: For some reason the 0.67 Q Factor causes problems, but it's also - * the only possible value until ~1 so just clamp it for now. - */ - trackInst->upcomingWave.baseQFactor = FAudio_min( - trackInst->upcomingWave.baseQFactor, - 1.0f - ); - } - - /* Try to change loop counter at the very end */ - if (loopCount == 255) - { - /* For infinite loops with no variation, Wave does the work */ - evtInst->loopCount = 0; - } - else if (evtInst->loopCount > 0) - { - evtInst->loopCount -= 1; - } -} - -uint8_t FACT_INTERNAL_CreateSound(FACTCue *cue, uint16_t fadeInMS) -{ - int32_t i, j, k; - float max, next, weight; - const char *wbName; - FACTWaveBank *wb = NULL; - LinkedList *list; - FACTEvent *evt; - FACTEventInstance *evtInst; - FACTSound *baseSound = NULL; - FACTSoundInstance *newSound; - FACTRPC *rpc; - float lastX; - - union - { - float maxf; - uint8_t maxi; - } limitmax; - FACTCue *tmp, *wnr; - uint16_t categoryIndex; - FACTAudioCategory *category; - - if (cue->data->flags & 0x04) - { - /* Sound */ - baseSound = cue->sound; - } - else - { - /* Variation */ - if (cue->variation->flags == 3) - { - /* Interactive */ - if (cue->parentBank->parentEngine->variables[cue->variation->variable].accessibility & 0x04) - { - FACTCue_GetVariable( - cue, - cue->variation->variable, - &next - ); - } - else - { - FACTAudioEngine_GetGlobalVariable( - cue->parentBank->parentEngine, - cue->variation->variable, - &next - ); - } - for (i = 0; i < cue->variation->entryCount; i += 1) - { - if ( next <= cue->variation->entries[i].maxWeight && - next >= cue->variation->entries[i].minWeight ) - { - break; - } - } - - /* This should only happen when the user control - * variable is none of the sound probabilities, in - * which case we are just silent. But, we should still - * claim to be "playing" in the meantime. - */ - if (i == cue->variation->entryCount) - { - return 1; - } - } - else - { - /* Random */ - max = 0.0f; - for (i = 0; i < cue->variation->entryCount; i += 1) - { - max += ( - cue->variation->entries[i].maxWeight - - cue->variation->entries[i].minWeight - ); - } - next = FACT_INTERNAL_rng() * max; - - /* Use > 0, not >= 0. If we hit 0, that's it! */ - for (i = cue->variation->entryCount - 1; i > 0; i -= 1) - { - weight = ( - cue->variation->entries[i].maxWeight - - cue->variation->entries[i].minWeight - ); - if (next > (max - weight)) - { - break; - } - max -= weight; - } - } - - if (cue->variation->isComplex) - { - /* Grab the Sound via the code. FIXME: Do this at load time? */ - for (j = 0; j < cue->parentBank->soundCount; j += 1) - { - if (cue->variation->entries[i].soundCode == cue->parentBank->soundCodes[j]) - { - baseSound = &cue->parentBank->sounds[j]; - break; - } - } - } - else - { - /* Pull in the WaveBank... */ - wbName = cue->parentBank->wavebankNames[ - cue->variation->entries[i].simple.wavebank - ]; - list = cue->parentBank->parentEngine->wbList; - while (list != NULL) - { - wb = (FACTWaveBank*) list->entry; - if (FAudio_strcmp(wbName, wb->name) == 0) - { - break; - } - list = list->next; - } - FAudio_assert(wb != NULL); - - /* Generate the wave... */ - FACTWaveBank_Prepare( - wb, - cue->variation->entries[i].simple.track, - 0, - 0, - 0, - &cue->simpleWave - ); - cue->simpleWave->parentCue = cue; - } - } - - /* Alloc SoundInstance variables */ - if (baseSound != NULL) - { - /* Category Instance Limits */ - categoryIndex = baseSound->category; - if (categoryIndex != FACTCATEGORY_INVALID) - { - category = &cue->parentBank->parentEngine->categories[categoryIndex]; - if (category->instanceCount >= category->instanceLimit) - { - wnr = NULL; - tmp = cue->parentBank->cueList; - if (category->maxInstanceBehavior == 0) /* Fail */ - { - cue->state |= FACT_STATE_STOPPED; - cue->state &= ~( - FACT_STATE_PLAYING | - FACT_STATE_STOPPING | - FACT_STATE_PAUSED - ); - return 0; - } - else if (category->maxInstanceBehavior == 1) /* Queue */ - { - /* FIXME: How is this different from Replace Oldest? */ - while (tmp != NULL) - { - if ( tmp != cue && - tmp->playingSound != NULL && - tmp->playingSound->sound->category == categoryIndex && - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - break; - } - tmp = tmp->next; - } - } - else if (category->maxInstanceBehavior == 2) /* Replace Oldest */ - { - while (tmp != NULL) - { - if ( tmp != cue && - tmp->playingSound != NULL && - tmp->playingSound->sound->category == categoryIndex && - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - break; - } - tmp = tmp->next; - } - } - else if (category->maxInstanceBehavior == 3) /* Replace Quietest */ - { - limitmax.maxf = FACTVOLUME_MAX; - while (tmp != NULL) - { - if ( tmp != cue && - tmp->playingSound != NULL && - tmp->playingSound->sound->category == categoryIndex && - /*FIXME: tmp->playingSound->volume < limitmax.maxf &&*/ - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - /* limitmax.maxf = tmp->playingSound->volume; */ - } - tmp = tmp->next; - } - } - else if (category->maxInstanceBehavior == 4) /* Replace Lowest Priority */ - { - limitmax.maxi = 0xFF; - while (tmp != NULL) - { - if ( tmp != cue && - tmp->playingSound != NULL && - tmp->playingSound->sound->category == categoryIndex && - tmp->playingSound->sound->priority < limitmax.maxi && - !(tmp->state & (FACT_STATE_STOPPING | FACT_STATE_STOPPED)) ) - { - wnr = tmp; - limitmax.maxi = tmp->playingSound->sound->priority; - } - tmp = tmp->next; - } - } - if (wnr != NULL) - { - fadeInMS = category->fadeInMS; - if (wnr->playingSound != NULL) - { - FACT_INTERNAL_BeginFadeOut(wnr->playingSound, category->fadeOutMS); - } - else - { - FACTCue_Stop(wnr, 0); - } - } - } - category->instanceCount += 1; - } - - newSound = (FACTSoundInstance*) cue->parentBank->parentEngine->pMalloc( - sizeof(FACTSoundInstance) - ); - newSound->parentCue = cue; - newSound->sound = baseSound; - newSound->rpcData.rpcVolume = 0.0f; - newSound->rpcData.rpcPitch = 0.0f; - newSound->rpcData.rpcReverbSend = 0.0f; - newSound->rpcData.rpcFilterQFactor = FAUDIO_DEFAULT_FILTER_ONEOVERQ; - newSound->rpcData.rpcFilterFreq = FAUDIO_DEFAULT_FILTER_FREQUENCY; - newSound->fadeType = (fadeInMS > 0); - if (newSound->fadeType) - { - newSound->fadeStart = FAudio_timems(); - newSound->fadeTarget = fadeInMS; - } - else - { - newSound->fadeStart = 0; - newSound->fadeTarget = 0; - } - newSound->tracks = (FACTTrackInstance*) cue->parentBank->parentEngine->pMalloc( - sizeof(FACTTrackInstance) * newSound->sound->trackCount - ); - for (i = 0; i < newSound->sound->trackCount; i += 1) - { - newSound->tracks[i].rpcData.rpcVolume = 0.0f; - newSound->tracks[i].rpcData.rpcPitch = 0.0f; - newSound->tracks[i].rpcData.rpcReverbSend = 0.0f; - newSound->tracks[i].rpcData.rpcFilterQFactor = FAUDIO_DEFAULT_FILTER_ONEOVERQ; - newSound->tracks[i].rpcData.rpcFilterFreq = FAUDIO_DEFAULT_FILTER_FREQUENCY; - - newSound->tracks[i].evtVolume = 0.0f; - newSound->tracks[i].evtPitch = 0.0f; - - newSound->tracks[i].activeWave.wave = NULL; - newSound->tracks[i].activeWave.baseVolume = 0.0f; - newSound->tracks[i].activeWave.basePitch = 0; - newSound->tracks[i].activeWave.baseQFactor = FAUDIO_DEFAULT_FILTER_ONEOVERQ; - newSound->tracks[i].activeWave.baseFrequency = FAUDIO_DEFAULT_FILTER_FREQUENCY; - newSound->tracks[i].upcomingWave.wave = NULL; - newSound->tracks[i].upcomingWave.baseVolume = 0.0f; - newSound->tracks[i].upcomingWave.basePitch = 0; - newSound->tracks[i].upcomingWave.baseQFactor = FAUDIO_DEFAULT_FILTER_ONEOVERQ; - newSound->tracks[i].upcomingWave.baseFrequency = FAUDIO_DEFAULT_FILTER_FREQUENCY; - - newSound->tracks[i].events = (FACTEventInstance*) cue->parentBank->parentEngine->pMalloc( - sizeof(FACTEventInstance) * newSound->sound->tracks[i].eventCount - ); - for (j = 0; j < newSound->sound->tracks[i].eventCount; j += 1) - { - evt = &newSound->sound->tracks[i].events[j]; - - newSound->tracks[i].events[j].timestamp = - newSound->sound->tracks[i].events[j].timestamp; - newSound->tracks[i].events[j].loopCount = 0; - newSound->tracks[i].events[j].finished = 0; - newSound->tracks[i].events[j].value = 0.0f; - - if ( evt->type == FACTEVENT_PLAYWAVE || - evt->type == FACTEVENT_PLAYWAVETRACKVARIATION || - evt->type == FACTEVENT_PLAYWAVEEFFECTVARIATION || - evt->type == FACTEVENT_PLAYWAVETRACKEFFECTVARIATION ) - { - newSound->tracks[i].events[j].loopCount = - newSound->sound->tracks[i].events[j].wave.loopCount; - - evtInst = &newSound->tracks[i].events[j]; - if ( !evt->wave.isComplex || - (evt->wave.complex.variation & 0xF) == 0 ) - { - evtInst->valuei = 0; - } - else - { - max = 0.0f; - for (k = 0; k < evt->wave.complex.trackCount; k += 1) - { - max += evt->wave.complex.weights[k]; - } - next = FACT_INTERNAL_rng() * max; - for (k = evt->wave.complex.trackCount - 1; k >= 0; k -= 1) - { - if (next > (max - evt->wave.complex.weights[k])) - { - evtInst->valuei = k; - break; - } - max -= evt->wave.complex.weights[k]; - } - } - FACT_INTERNAL_GetNextWave( - cue, - newSound->sound, - &newSound->sound->tracks[i], - &newSound->tracks[i], - evt, - evtInst - ); - newSound->tracks[i].waveEvt = evt; - newSound->tracks[i].waveEvtInst = evtInst; - } - else if ( evt->type == FACTEVENT_PITCHREPEATING || - evt->type == FACTEVENT_VOLUMEREPEATING ) - { - newSound->tracks[i].events[j].loopCount = - newSound->sound->tracks[i].events[j].value.repeats; - } - else if (evt->type == FACTEVENT_MARKERREPEATING) - { - newSound->tracks[i].events[j].loopCount = - newSound->sound->tracks[i].events[j].marker.repeats; - } - } - } - - /* Calculate Max RPC Release Time */ - cue->maxRpcReleaseTime = 0; - for (i = 0; i < newSound->sound->trackCount; i += 1) - { - for (j = 0; j < newSound->sound->tracks[i].rpcCodeCount; j += 1) - { - rpc = FACT_INTERNAL_GetRPC( - newSound->parentCue->parentBank->parentEngine, - newSound->sound->tracks[i].rpcCodes[j] - ); - if ( rpc->parameter == RPC_PARAMETER_VOLUME && - cue->parentBank->parentEngine->variables[rpc->variable].accessibility & 0x04 ) - { - if (FAudio_strcmp( - newSound->parentCue->parentBank->parentEngine->variableNames[rpc->variable], - "ReleaseTime" - ) == 0) { - lastX = rpc->points[rpc->pointCount - 1].x; - if (lastX > cue->maxRpcReleaseTime) - { - cue->maxRpcReleaseTime = (uint32_t) lastX /* bleh */; - } - } - } - } - } - - cue->playingSound = newSound; - } - - return 1; -} - -void FACT_INTERNAL_SendCueNotification(FACTCue *cue, FACTNoticationsFlags flag, uint8_t type) -{ - if (cue->parentBank->parentEngine->notifications & flag) - { - FACTNotification note; - - note.type = type; - note.pvContext = cue->parentBank->parentEngine->cue_context; - note.cue.cueIndex = cue->index; - note.cue.pSoundBank = cue->parentBank; - note.cue.pCue = cue; - - cue->parentBank->parentEngine->notificationCallback(¬e); - } -} - -void FACT_INTERNAL_DestroySound(FACTSoundInstance *sound) -{ - uint8_t i; - - sound->parentCue->playingSound = NULL; - for (i = 0; i < sound->sound->trackCount; i += 1) - { - if (sound->tracks[i].activeWave.wave != NULL) - { - FACTWave_Destroy( - sound->tracks[i].activeWave.wave - ); - } - if (sound->tracks[i].upcomingWave.wave != NULL) - { - FACTWave_Destroy( - sound->tracks[i].upcomingWave.wave - ); - } - sound->parentCue->parentBank->parentEngine->pFree( - sound->tracks[i].events - ); - } - sound->parentCue->parentBank->parentEngine->pFree(sound->tracks); - - if (sound->sound->category != FACTCATEGORY_INVALID) - { - sound->parentCue->parentBank->parentEngine->categories[ - sound->sound->category - ].instanceCount -= 1; - } - - /* TODO: if (sound->parentCue->playingSounds == NULL) */ - { - sound->parentCue->state |= FACT_STATE_STOPPED; - sound->parentCue->state &= ~(FACT_STATE_PLAYING | FACT_STATE_STOPPING); - sound->parentCue->data->instanceCount -= 1; - - FACT_INTERNAL_SendCueNotification(sound->parentCue, NOTIFY_CUESTOP, FACTNOTIFICATIONTYPE_CUESTOP); - } - sound->parentCue->parentBank->parentEngine->pFree(sound); -} - -void FACT_INTERNAL_BeginFadeOut(FACTSoundInstance *sound, uint16_t fadeOutMS) -{ - if (fadeOutMS == 0) - { - /* No fade? Screw it, just delete us */ - FACT_INTERNAL_DestroySound(sound); - return; - } - - sound->fadeType = 2; /* Out */ - sound->fadeStart = FAudio_timems(); - sound->fadeTarget = fadeOutMS; - - sound->parentCue->state |= FACT_STATE_STOPPING; -} - -void FACT_INTERNAL_BeginReleaseRPC(FACTSoundInstance *sound, uint16_t releaseMS) -{ - if (releaseMS == 0) - { - /* No release RPC? Screw it, just delete us */ - FACT_INTERNAL_DestroySound(sound); - return; - } - - sound->fadeType = 3; /* Release RPC */ - sound->fadeStart = FAudio_timems(); - sound->fadeTarget = releaseMS; - - sound->parentCue->state |= FACT_STATE_STOPPING; -} - -/* RPC Helper Functions */ - -FACTRPC* FACT_INTERNAL_GetRPC( - FACTAudioEngine *engine, - uint32_t code -) { - uint16_t i; - for (i = 0; i < engine->rpcCount; i += 1) - { - if (engine->rpcCodes[i] == code) - { - return &engine->rpcs[i]; - } - } - - FAudio_assert(0 && "RPC code not found!"); - return NULL; -} - -float FACT_INTERNAL_CalculateRPC( - FACTRPC *rpc, - float var -) { - float result; - uint8_t i; - - /* Min/Max */ - if (var <= rpc->points[0].x) - { - /* Zero to first defined point */ - return rpc->points[0].y; - } - if (var >= rpc->points[rpc->pointCount - 1].x) - { - /* Last defined point to infinity */ - return rpc->points[rpc->pointCount - 1].y; - } - - /* Something between points */ - result = 0.0f; - for (i = 0; i < rpc->pointCount - 1; i += 1) - { - /* y = b */ - result = rpc->points[i].y; - if (var >= rpc->points[i].x && var <= rpc->points[i + 1].x) - { - const float maxX = rpc->points[i + 1].x - rpc->points[i].x; - const float maxY = rpc->points[i + 1].y - rpc->points[i].y; - const float deltaX = (var - rpc->points[i].x); - const float deltaXNormalized = deltaX / maxX; - - if (rpc->points[i].type == 0) /* Linear */ - { - result += maxY * deltaXNormalized; - } - else if (rpc->points[i].type == 1) /* Fast */ - { - result += maxY * (1.0f - FAudio_pow(1.0f - FAudio_pow(deltaXNormalized, 1.0f / 1.5f), 1.5f)); - } - else if (rpc->points[i].type == 2) /* Slow */ - { - result += maxY * (1.0f - FAudio_pow(1.0f - FAudio_pow(deltaXNormalized, 1.5f), 1.0f / 1.5f)); - } - else if (rpc->points[i].type == 3) /* SinCos */ - { - if (maxY > 0.0f) - { - result += maxY * (1.0f - FAudio_pow(1.0f - FAudio_sqrtf(deltaXNormalized), 2.0f)); - } - else - { - result += maxY * (1.0f - FAudio_sqrtf(1.0f - FAudio_pow(deltaXNormalized, 2.0f))); - } - } - else - { - FAudio_assert(0 && "Unrecognized curve type!"); - } - - break; - } - } - return result; -} - -void FACT_INTERNAL_UpdateRPCs( - FACTCue *cue, - uint8_t codeCount, - uint32_t *codes, - FACTInstanceRPCData *data, - uint32_t timestamp, - uint32_t elapsedTrack -) { - uint8_t i; - FACTRPC *rpc; - float rpcResult; - float variableValue; - FACTAudioEngine *engine = cue->parentBank->parentEngine; - - if (codeCount > 0) - { - /* Do NOT overwrite Frequency/QFactor! */ - data->rpcVolume = 0.0f; - data->rpcPitch = 0.0f; - data->rpcReverbSend = 0.0f; - for (i = 0; i < codeCount; i += 1) - { - rpc = FACT_INTERNAL_GetRPC( - engine, - codes[i] - ); - if (engine->variables[rpc->variable].accessibility & 0x04) - { - if (FAudio_strcmp( - engine->variableNames[rpc->variable], - "AttackTime" - ) == 0) { - variableValue = (float) elapsedTrack; - } - else if (FAudio_strcmp( - engine->variableNames[rpc->variable], - "ReleaseTime" - ) == 0) { - if (cue->playingSound->fadeType == 3) /* Release RPC */ - { - variableValue = (float) (timestamp - cue->playingSound->fadeStart); - } - else - { - variableValue = 0.0f; - } - } - else - { - variableValue = cue->variableValues[rpc->variable]; - } - - rpcResult = FACT_INTERNAL_CalculateRPC( - rpc, - variableValue - ); - } - else - { - rpcResult = FACT_INTERNAL_CalculateRPC( - rpc, - engine->globalVariableValues[rpc->variable] - ); - } - if (rpc->parameter == RPC_PARAMETER_VOLUME) - { - data->rpcVolume += rpcResult; - } - else if (rpc->parameter == RPC_PARAMETER_PITCH) - { - data->rpcPitch += rpcResult; - } - else if (rpc->parameter == RPC_PARAMETER_REVERBSEND) - { - data->rpcReverbSend += rpcResult; - } - else if (rpc->parameter == RPC_PARAMETER_FILTERFREQUENCY) - { - /* Yes, just overwrite... */ - data->rpcFilterFreq = FACT_INTERNAL_CalculateFilterFrequency( - rpcResult, - engine->audio->master->master.inputSampleRate - ); - } - else if (rpc->parameter == RPC_PARAMETER_FILTERQFACTOR) - { - /* Yes, just overwrite... */ - data->rpcFilterQFactor = 1.0f / rpcResult; - } - else - { - FAudio_assert(0 && "Unhandled RPC parameter type!"); - } - } - } -} - -/* Engine Update Function */ - -void FACT_INTERNAL_UpdateEngine(FACTAudioEngine *engine) -{ - FAudioFXReverbParameters rvbPar; - uint16_t i, j, par; - float rpcResult; - for (i = 0; i < engine->rpcCount; i += 1) - { - if (engine->rpcs[i].parameter >= RPC_PARAMETER_COUNT) - { - /* FIXME: Why did I make this global vars only...? */ - if (!(engine->variables[engine->rpcs[i].variable].accessibility & 0x04)) - { - for (j = 0; j < engine->dspPresetCount; j += 1) - { - /* FIXME: This affects all DSP presets! - * What if there's more than one? - */ - par = engine->rpcs[i].parameter - RPC_PARAMETER_COUNT; - rpcResult = FACT_INTERNAL_CalculateRPC( - &engine->rpcs[i], - engine->globalVariableValues[engine->rpcs[i].variable] - ); - engine->dspPresets[j].parameters[par].value = FAudio_clamp( - rpcResult, - engine->dspPresets[j].parameters[par].minVal, - engine->dspPresets[j].parameters[par].maxVal - ); - } - } - } - } - - /* Set Effect parameters from above RPC changes */ - if (engine->reverbVoice != NULL) - { - rvbPar.WetDryMix = engine->dspPresets[0].parameters[21].value; - rvbPar.ReflectionsDelay = (uint32_t) engine->dspPresets[0].parameters[0].value; - rvbPar.ReverbDelay = (uint8_t) engine->dspPresets[0].parameters[1].value; - rvbPar.RearDelay = (uint8_t) engine->dspPresets[0].parameters[12].value; - rvbPar.PositionLeft = (uint8_t) engine->dspPresets[0].parameters[2].value; - rvbPar.PositionRight = (uint8_t) engine->dspPresets[0].parameters[3].value; - rvbPar.PositionMatrixLeft = (uint8_t) engine->dspPresets[0].parameters[4].value; - rvbPar.PositionMatrixRight = (uint8_t) engine->dspPresets[0].parameters[5].value; - rvbPar.HighEQGain = (uint8_t) engine->dspPresets[0].parameters[10].value; - rvbPar.LowEQCutoff = (uint8_t) engine->dspPresets[0].parameters[9].value; - rvbPar.LowEQGain = (uint8_t) engine->dspPresets[0].parameters[8].value; - rvbPar.LateDiffusion = (uint8_t) engine->dspPresets[0].parameters[7].value; - rvbPar.EarlyDiffusion = (uint8_t) engine->dspPresets[0].parameters[6].value; - rvbPar.HighEQCutoff = (uint8_t) engine->dspPresets[0].parameters[11].value; - rvbPar.RoomFilterMain = engine->dspPresets[0].parameters[14].value; - rvbPar.RoomFilterFreq = engine->dspPresets[0].parameters[13].value; - rvbPar.RoomFilterHF = engine->dspPresets[0].parameters[15].value; - rvbPar.ReflectionsGain = engine->dspPresets[0].parameters[16].value; - rvbPar.ReverbGain = engine->dspPresets[0].parameters[17].value; - rvbPar.DecayTime = engine->dspPresets[0].parameters[18].value; - rvbPar.Density = engine->dspPresets[0].parameters[19].value; - rvbPar.RoomSize = engine->dspPresets[0].parameters[20].value; - - FAudioVoice_SetEffectParameters( - engine->reverbVoice, - 0, - &rvbPar, - sizeof(FAudioFXReverbParameters), - 0 - ); - } -} - -/* Cue Update Functions */ - -static inline void FACT_INTERNAL_StopTrack( - FACTTrack *track, - FACTTrackInstance *trackInst, - uint8_t immediate -) { - uint8_t i; - - /* Stop the wave (may as-authored or immedate */ - if (trackInst->activeWave.wave != NULL) - { - FACTWave_Stop( - trackInst->activeWave.wave, - immediate - ); - } - - /* If there was another sound coming, it ain't now! */ - if (trackInst->upcomingWave.wave != NULL) - { - FACTWave_Destroy(trackInst->upcomingWave.wave); - trackInst->upcomingWave.wave = NULL; - } - - /* Kill the loop count too */ - for (i = 0; i < track->eventCount; i += 1) - { - trackInst->events[i].loopCount = 0; - trackInst->events[i].finished = 1; - } -} - -void FACT_INTERNAL_ActivateEvent( - FACTSoundInstance *sound, - FACTTrack *track, - FACTTrackInstance *trackInst, - FACTEvent *evt, - FACTEventInstance *evtInst, - uint32_t elapsed -) { - uint8_t i; - float svResult; - uint8_t skipLoopCheck = 0; - - /* STOP */ - if (evt->type == FACTEVENT_STOP) - { - /* Stop Cue */ - if (evt->stop.flags & 0x02) - { - if ( evt->stop.flags & 0x01 || - ( sound->parentCue->parentBank->cues[sound->parentCue->index].fadeOutMS == 0 && - sound->parentCue->maxRpcReleaseTime == 0 ) ) - { - for (i = 0; i < sound->sound->trackCount; i += 1) - { - FACT_INTERNAL_StopTrack( - &sound->sound->tracks[i], - &sound->tracks[i], - 1 - ); - } - } - else - { - if (sound->parentCue->parentBank->cues[sound->parentCue->index].fadeOutMS > 0) - { - FACT_INTERNAL_BeginFadeOut( - sound, - sound->parentCue->parentBank->cues[sound->parentCue->index].fadeOutMS - ); - } - else if (sound->parentCue->maxRpcReleaseTime > 0) - { - FACT_INTERNAL_BeginReleaseRPC( - sound, - sound->parentCue->maxRpcReleaseTime - ); - } - else - { - /* Pretty sure this doesn't happen, but just in case? */ - sound->parentCue->state |= FACT_STATE_STOPPING; - } - } - } - - /* Stop track */ - else - { - FACT_INTERNAL_StopTrack( - track, - trackInst, - evt->stop.flags & 0x01 - ); - } - } - - /* PLAYWAVE */ - else if ( evt->type == FACTEVENT_PLAYWAVE || - evt->type == FACTEVENT_PLAYWAVETRACKVARIATION || - evt->type == FACTEVENT_PLAYWAVEEFFECTVARIATION || - evt->type == FACTEVENT_PLAYWAVETRACKEFFECTVARIATION ) - { - FAudio_assert(trackInst->activeWave.wave == NULL); - FAudio_assert(trackInst->upcomingWave.wave != NULL); - FAudio_memcpy( - &trackInst->activeWave, - &trackInst->upcomingWave, - sizeof(trackInst->activeWave) - ); - trackInst->upcomingWave.wave = NULL; - FACTWave_Play(trackInst->activeWave.wave); - } - - /* SETVALUE */ - else if ( evt->type == FACTEVENT_PITCH || - evt->type == FACTEVENT_PITCHREPEATING || - evt->type == FACTEVENT_VOLUME || - evt->type == FACTEVENT_VOLUMEREPEATING ) - { - /* Ramp/Equation */ - if (evt->value.settings & 0x01) - { - /* FIXME: Incorporate 2nd derivative into the interpolated pitch (slopeDelta) */ - skipLoopCheck = elapsed <= (evtInst->timestamp + evt->value.ramp.duration); - svResult = ( - evt->value.ramp.initialSlope * - evt->value.ramp.duration / 1000 * - 10 /* "Slices" */ - ) + evt->value.ramp.initialValue; - svResult = ( - (svResult - evt->value.ramp.initialValue) - ) * FAudio_clamp( - (float) (elapsed - evtInst->timestamp) / evt->value.ramp.duration, - 0.0f, - 1.0f - ) + evt->value.ramp.initialValue; - - evtInst->value = svResult; - } - else - { - /* Value/Random */ - if (evt->value.equation.flags & 0x04) - { - svResult = evt->value.equation.value1; - } - else if (evt->value.equation.flags & 0x08) - { - svResult = evt->value.equation.value1 + FACT_INTERNAL_rng() * ( - evt->value.equation.value2 - - evt->value.equation.value1 - ); - } - else - { - svResult = 0.0f; - FAudio_assert(0 && "Equation flags?"); - } - - /* Add/Replace */ - if (evt->value.equation.flags & 0x01) - { - if( evt->type == FACTEVENT_PITCH || - evt->type == FACTEVENT_PITCHREPEATING ) - { - evtInst->value = trackInst->evtPitch + svResult; - } - else - { - evtInst->value = trackInst->evtVolume + svResult; - } - } - else - { - evtInst->value = svResult; - } - } - - /* Set the result, finally. */ - if ( evt->type == FACTEVENT_PITCH || - evt->type == FACTEVENT_PITCHREPEATING ) - { - trackInst->evtPitch = evtInst->value; - } - else - { - trackInst->evtVolume = evtInst->value; - } - - if (skipLoopCheck) - { - return; - } - if (evtInst->loopCount > 0) - { - if (evtInst->loopCount != 0xFF && evtInst->loopCount != 0xFFFF) - { - evtInst->loopCount -= 1; - } - - evtInst->timestamp += evt->value.frequency; - return; - } - } - - /* MARKER */ - else if ( evt->type == FACTEVENT_MARKER || - evt->type == FACTEVENT_MARKERREPEATING ) - { - /* TODO: FACT_INTERNAL_Marker(evt->marker*) */ - if (evtInst->loopCount > 0) - { - if (evtInst->loopCount != 0xFF) - { - evtInst->loopCount -= 1; - } - - evtInst->timestamp += evt->marker.frequency; - return; - } - } - - /* ??? */ - else - { - FAudio_assert(0 && "Unknown event type!"); - } - - /* If we made it here, we're done! */ - evtInst->finished = 1; -} - -uint8_t FACT_INTERNAL_UpdateSound(FACTSoundInstance *sound, uint32_t timestamp) -{ - uint8_t i, j; - uint32_t waveState; - uint32_t elapsedCue; - FACTEventInstance *evtInst; - FAudioFilterParameters filterParams; - uint8_t finished = 1; - - /* Instance limiting Fade in/out */ - float fadeVolume; - if (sound->fadeType == 1) /* Fade In */ - { - if ((timestamp - sound->fadeStart) >= sound->fadeTarget) - { - /* We've faded in! */ - fadeVolume = 1.0f; - sound->fadeStart = 0; - sound->fadeTarget = 0; - sound->fadeType = 0; - } - else - { - fadeVolume = ( - (float) (timestamp - sound->fadeStart) / - (float) sound->fadeTarget - ); - } - } - else if (sound->fadeType == 2) /* Fade Out */ - { - if ((timestamp - sound->fadeStart) >= sound->fadeTarget) - { - /* We've faded out! */ - return 1; - } - fadeVolume = 1.0f - ( - (float) (timestamp - sound->fadeStart) / - (float) sound->fadeTarget - ); - } - else if (sound->fadeType == 3) /* Release RPC */ - { - if ((timestamp - sound->fadeStart) >= sound->fadeTarget) - { - /* We've faded out! */ - return 1; - } - fadeVolume = 1.0f; - } - else - { - fadeVolume = 1.0f; - } - - /* To get the time on a single Cue, subtract from the global time - * the latest start time minus the total time elapsed (minus pause time) - */ - elapsedCue = timestamp - (sound->parentCue->start - sound->parentCue->elapsed); - - /* RPC updates */ - sound->rpcData.rpcFilterFreq = -1.0f; - sound->rpcData.rpcFilterQFactor = -1.0f; - FACT_INTERNAL_UpdateRPCs( - sound->parentCue, - sound->sound->rpcCodeCount, - sound->sound->rpcCodes, - &sound->rpcData, - timestamp, - elapsedCue - sound->tracks[0].events[0].timestamp - ); - for (i = 0; i < sound->sound->trackCount; i += 1) - { - sound->tracks[i].rpcData.rpcFilterFreq = sound->rpcData.rpcFilterFreq; - sound->tracks[i].rpcData.rpcFilterQFactor = sound->rpcData.rpcFilterQFactor; - FACT_INTERNAL_UpdateRPCs( - sound->parentCue, - sound->sound->tracks[i].rpcCodeCount, - sound->sound->tracks[i].rpcCodes, - &sound->tracks[i].rpcData, - timestamp, - elapsedCue - sound->sound->tracks[i].events[0].timestamp - ); - } - - /* Go through each event for each track */ - for (i = 0; i < sound->sound->trackCount; i += 1) - { - /* Event updates */ - for (j = 0; j < sound->sound->tracks[i].eventCount; j += 1) - { - evtInst = &sound->tracks[i].events[j]; - if (!evtInst->finished) - { - /* Cue's not done yet...! */ - finished = 0; - - /* Trigger events at the right time */ - if (elapsedCue >= evtInst->timestamp) - { - FACT_INTERNAL_ActivateEvent( - sound, - &sound->sound->tracks[i], - &sound->tracks[i], - &sound->sound->tracks[i].events[j], - evtInst, - elapsedCue - ); - } - } - } - - /* Wave updates */ - if (sound->tracks[i].activeWave.wave == NULL) - { - continue; - } - finished = 0; - - /* Clear out Waves as they finish */ - FACTWave_GetState( - sound->tracks[i].activeWave.wave, - &waveState - ); - if (waveState & FACT_STATE_STOPPED) - { - FACTWave_Destroy(sound->tracks[i].activeWave.wave); - FAudio_memcpy( - &sound->tracks[i].activeWave, - &sound->tracks[i].upcomingWave, - sizeof(sound->tracks[i].activeWave) - ); - sound->tracks[i].upcomingWave.wave = NULL; - if (sound->tracks[i].activeWave.wave == NULL) - { - continue; - } - FACTWave_Play(sound->tracks[i].activeWave.wave); - } - - FACTWave_SetVolume( - sound->tracks[i].activeWave.wave, - FACT_INTERNAL_CalculateAmplitudeRatio( - sound->tracks[i].activeWave.baseVolume + - sound->rpcData.rpcVolume + - sound->tracks[i].rpcData.rpcVolume + - sound->tracks[i].evtVolume - ) * sound->parentCue->parentBank->parentEngine->categories[ - sound->sound->category - ].currentVolume * - fadeVolume - ); - FACTWave_SetPitch( - sound->tracks[i].activeWave.wave, - (int16_t) ( - sound->tracks[i].activeWave.basePitch + - sound->rpcData.rpcPitch + - sound->tracks[i].rpcData.rpcPitch + - sound->tracks[i].evtPitch - ) - ); - if (sound->sound->tracks[i].filter != 0xFF) - { - /* FIXME: From what I can gather, filter parameters get - * overwritten by the RPC value if a filter RPC exists. - * Priority is Sound < Sound RPC < Track RPC, I think? - */ - filterParams.Type = (FAudioFilterType) sound->sound->tracks[i].filter; - if (sound->tracks[i].rpcData.rpcFilterFreq >= 0.0f) - { - filterParams.Frequency = sound->tracks[i].rpcData.rpcFilterFreq; - } - else - { - filterParams.Frequency = sound->tracks[i].activeWave.baseFrequency; - } - if (sound->tracks[i].rpcData.rpcFilterQFactor >= 0.0f) - { - filterParams.OneOverQ = sound->tracks[i].rpcData.rpcFilterQFactor; - } - else - { - filterParams.OneOverQ = sound->tracks[i].activeWave.baseQFactor; - } - FAudioVoice_SetFilterParameters( - sound->tracks[i].activeWave.wave->voice, - &filterParams, - 0 - ); - } - /* TODO: Wave updates: - * - ReverbSend (SetOutputMatrix on index 1, submix voice) - */ - } - - return finished; -} - -void FACT_INTERNAL_UpdateCue(FACTCue *cue) -{ - uint32_t i; - float next; - FACTSoundInstance *sound; - - /* Interactive sound selection */ - if (!(cue->data->flags & 0x04) && cue->variation->flags == 3) - { - /* Interactive */ - if (cue->parentBank->parentEngine->variables[cue->variation->variable].accessibility & 0x04) - { - FACTCue_GetVariable( - cue, - cue->variation->variable, - &next - ); - } - else - { - FACTAudioEngine_GetGlobalVariable( - cue->parentBank->parentEngine, - cue->variation->variable, - &next - ); - } - if (next != cue->interactive) - { - cue->interactive = next; - - /* New sound, time for death! */ - if (cue->playingSound != NULL) - { - /* Copy of DestroySound but does not set Cue to STOPPED */ - sound = cue->playingSound; - sound->parentCue->playingSound = NULL; - for (i = 0; i < sound->sound->trackCount; i += 1) - { - if (sound->tracks[i].activeWave.wave != NULL) - { - FACTWave_Destroy( - sound->tracks[i].activeWave.wave - ); - } - if (sound->tracks[i].upcomingWave.wave != NULL) - { - FACTWave_Destroy( - sound->tracks[i].upcomingWave.wave - ); - } - cue->parentBank->parentEngine->pFree( - sound->tracks[i].events - ); - } - cue->parentBank->parentEngine->pFree(sound->tracks); - - if (sound->sound->category != FACTCATEGORY_INVALID) - { - sound->parentCue->parentBank->parentEngine->categories[ - sound->sound->category - ].instanceCount -= 1; - } - } - - /* TODO: Reset cue times? Transition tables...? - cue->start = elapsed; - cue->elapsed = 0; - */ - - FACT_INTERNAL_CreateSound(cue, 0 /* fadeIn */); - } - } -} - -/* FACT Thread */ - -int32_t FACT_INTERNAL_APIThread(void* enginePtr) -{ - FACTAudioEngine *engine = (FACTAudioEngine*) enginePtr; - LinkedList *sbList; - FACTCue *cue, *cBackup; - uint32_t timestamp, updateTime; - - /* Needs to match the audio thread priority, or else the scheduler will - * let this thread sit around with a lock while the audio thread spins - * infinitely! - */ - FAudio_PlatformThreadPriority(FAUDIO_THREAD_PRIORITY_HIGH); - -threadstart: - FAudio_PlatformLockMutex(engine->apiLock); - - /* We want the timestamp to be uniform across all Cues. - * Oftentimes many Cues are played at once with the expectation - * that they will sync, so give them all the same timestamp - * so all the various actions will go together even if it takes - * an extra millisecond to get through the whole Cue list. - */ - timestamp = FAudio_timems(); - - FACT_INTERNAL_UpdateEngine(engine); - - sbList = engine->sbList; - while (sbList != NULL) - { - cue = ((FACTSoundBank*) sbList->entry)->cueList; - while (cue != NULL) - { - FACT_INTERNAL_UpdateCue(cue); - - if (cue->state & FACT_STATE_PAUSED) - { - cue = cue->next; - continue; - } - - if (cue->playingSound != NULL) - { - if (FACT_INTERNAL_UpdateSound(cue->playingSound, timestamp)) - { - FACT_INTERNAL_DestroySound(cue->playingSound); - } - } - - /* Destroy if it's done and not user-handled. */ - if (cue->managed && (cue->state & FACT_STATE_STOPPED)) - { - cBackup = cue->next; - FACTCue_Destroy(cue); - cue = cBackup; - } - else - { - cue = cue->next; - } - } - sbList = sbList->next; - } - - FAudio_PlatformUnlockMutex(engine->apiLock); - - if (engine->initialized) - { - /* FIXME: 10ms is based on the XAudio2 update time...? */ - updateTime = FAudio_timems() - timestamp; - if (updateTime < 10) - { - FAudio_sleep(10 - updateTime); - } - goto threadstart; - } - - return 0; -} - -/* FAudio callbacks */ - -void FACT_INTERNAL_OnBufferEnd(FAudioVoiceCallback *callback, void* pContext) -{ - FAudioBuffer buffer; - FAudioBufferWMA bufferWMA; - FACTWaveCallback *c = (FACTWaveCallback*) callback; - FACTWaveBankEntry *entry; - uint32_t end, left, length; - - entry = &c->wave->parentBank->entries[c->wave->index]; - - /* Calculate total bytes left in this wave iteration */ - if (c->wave->loopCount > 0 && entry->LoopRegion.dwTotalSamples > 0) - { - length = entry->LoopRegion.dwStartSample + entry->LoopRegion.dwTotalSamples; - if (entry->Format.wFormatTag == 0x0) - { - length = ( - length * - entry->Format.nChannels * - (1 << entry->Format.wBitsPerSample) - ); - } - else if (entry->Format.wFormatTag == 0x2) - { - length = ( - length / - /* wSamplesPerBlock */ - ((entry->Format.wBlockAlign + 16) * 2) * - /* nBlockAlign */ - ((entry->Format.wBlockAlign + 22) * entry->Format.nChannels) - ); - } - else - { - length = entry->PlayRegion.dwLength; - } - } - else - { - length = entry->PlayRegion.dwLength; - } - end = entry->PlayRegion.dwOffset + length; - left = length - (c->wave->streamOffset - entry->PlayRegion.dwOffset); - - /* Don't bother if we're EOS or the Wave has stopped */ - if ( (c->wave->streamOffset >= end) || - (c->wave->state & FACT_STATE_STOPPED) ) - { - return; - } - - /* Assign buffer memory */ - buffer.pAudioData = c->wave->streamCache; - buffer.AudioBytes = FAudio_min( - c->wave->streamSize, - left - ); - - /* Read! */ - FACT_INTERNAL_ReadFile( - c->wave->parentBank->parentEngine->pReadFile, - c->wave->parentBank->parentEngine->pGetOverlappedResult, - c->wave->parentBank->io, - c->wave->streamOffset, - c->wave->parentBank->packetSize, - &c->wave->parentBank->packetBuffer, - &c->wave->parentBank->packetBufferLen, - c->wave->parentBank->parentEngine->pRealloc, - c->wave->streamCache, - buffer.AudioBytes - ); - c->wave->streamOffset += buffer.AudioBytes; - - /* Last buffer in the stream? */ - buffer.Flags = 0; - if (c->wave->streamOffset >= end) - { - /* Loop if applicable */ - if (c->wave->loopCount > 0) - { - if (c->wave->loopCount != 255) - { - c->wave->loopCount -= 1; - } - c->wave->streamOffset = entry->PlayRegion.dwOffset; - - /* Loop start */ - if (entry->Format.wFormatTag == 0x0) - { - c->wave->streamOffset += ( - entry->LoopRegion.dwStartSample * - entry->Format.nChannels * - (1 << entry->Format.wBitsPerSample) - ); - } - else if (entry->Format.wFormatTag == 0x2) - { - c->wave->streamOffset += ( - entry->LoopRegion.dwStartSample / - /* wSamplesPerBlock */ - ((entry->Format.wBlockAlign + 16) * 2) * - /* nBlockAlign */ - ((entry->Format.wBlockAlign + 22) * entry->Format.nChannels) - ); - } - } - else - { - buffer.Flags = FAUDIO_END_OF_STREAM; - } - } - - /* Unused properties */ - buffer.PlayBegin = 0; - buffer.PlayLength = 0; - buffer.LoopBegin = 0; - buffer.LoopLength = 0; - buffer.LoopCount = 0; - buffer.pContext = NULL; - - /* Submit, finally. */ - if (entry->Format.wFormatTag == 0x3) - { - bufferWMA.pDecodedPacketCumulativeBytes = - c->wave->parentBank->seekTables[c->wave->index].entries; - bufferWMA.PacketCount = - c->wave->parentBank->seekTables[c->wave->index].entryCount; - FAudioSourceVoice_SubmitSourceBuffer( - c->wave->voice, - &buffer, - &bufferWMA - ); - } - else - { - FAudioSourceVoice_SubmitSourceBuffer( - c->wave->voice, - &buffer, - NULL - ); - } -} - -void FACT_INTERNAL_OnStreamEnd(FAudioVoiceCallback *callback) -{ - FACTWaveCallback *c = (FACTWaveCallback*) callback; - - c->wave->state = FACT_STATE_STOPPED; - - if ( c->wave->parentCue != NULL && - c->wave->parentCue->simpleWave == c->wave ) - { - c->wave->parentCue->state |= FACT_STATE_STOPPED; - c->wave->parentCue->state &= ~( - FACT_STATE_PLAYING | - FACT_STATE_STOPPING - ); - c->wave->parentCue->data->instanceCount -= 1; - } -} - -/* FAudioIOStream functions */ - -int32_t FACTCALL FACT_INTERNAL_DefaultReadFile( - void *hFile, - void *buffer, - uint32_t nNumberOfBytesToRead, - uint32_t *lpNumberOfBytesRead, /* Not referenced! */ - FACTOverlapped *lpOverlapped -) { - FAudioIOStream *io = (FAudioIOStream*) hFile; - lpOverlapped->Internal = (void*) 0x00000103; /* STATUS_PENDING */ - FAudio_PlatformLockMutex((FAudioMutex) io->lock); - io->seek(io->data, (size_t) lpOverlapped->Pointer, FAUDIO_SEEK_SET); - lpOverlapped->InternalHigh = (void*) (size_t) (io->read( - io->data, - buffer, - nNumberOfBytesToRead, - 1 - ) * nNumberOfBytesToRead); - FAudio_PlatformUnlockMutex((FAudioMutex) io->lock); - lpOverlapped->Internal = 0; /* STATUS_SUCCESS */ - return 1; -} - -int32_t FACTCALL FACT_INTERNAL_DefaultGetOverlappedResult( - void *hFile, - FACTOverlapped *lpOverlapped, - uint32_t *lpNumberOfBytesTransferred, - int32_t bWait -) { - *lpNumberOfBytesTransferred = (uint32_t) (size_t) lpOverlapped->InternalHigh; - return 1; -} - -/* Parsing functions */ - -#define READ_FUNC(type, size, bitsize, suffix) \ - static inline type read_##suffix(uint8_t **ptr, const uint8_t swapendian) \ - { \ - type result = *((type*) *ptr); \ - *ptr += size; \ - return swapendian ? \ - FAudio_swap##bitsize##BE(result) : \ - FAudio_swap##bitsize##LE(result); \ - } - -static inline uint8_t read_u8(uint8_t **ptr) -{ - uint8_t result = *((uint8_t*) *ptr); - *ptr += 1; - return result; -} -READ_FUNC(uint16_t, 2, 16, u16) -READ_FUNC(uint32_t, 4, 32, u32) -READ_FUNC(int16_t, 2, 16, s16) -READ_FUNC(int32_t, 4, 32, s32) -static inline float read_f32(uint8_t **ptr, const uint8_t swapendian) -{ - float result = *((float*) *ptr); - *ptr += 4; - return result; -} - -#undef READ_FUNC - -static inline float read_volbyte(uint8_t **ptr) -{ - /* FIXME: This magnificent beauty came from Mathematica! - * The byte values for all possible input dB values from the .xap are here: - * http://www.flibitijibibo.com/XACTVolume.txt - * Yes, this is actually what the XACT builder really does. - * - * Thanks to Kenny for plotting all that data. - * -flibit - */ - return (float) ((3969.0 * FAudio_log10(read_u8(ptr) / 28240.0)) + 8715.0); -} - -uint32_t FACT_INTERNAL_ParseAudioEngine( - FACTAudioEngine *pEngine, - const FACTRuntimeParameters *pParams -) { - uint32_t categoryOffset, - variableOffset, - blob1Offset, - categoryNameIndexOffset, - blob2Offset, - variableNameIndexOffset, - categoryNameOffset, - variableNameOffset, - rpcOffset, - dspPresetOffset, - dspParameterOffset; - uint16_t blob1Count, blob2Count; - uint8_t version, tool; - uint8_t se; - uint32_t magic; - size_t memsize; - uint16_t i, j; - - uint8_t *ptr = (uint8_t*) pParams->pGlobalSettingsBuffer; - uint8_t *start = ptr; - - magic = read_u32(&ptr, 0); - se = magic == 0x58475346; /* Swap Endian */ - if (magic != 0x46534758 && magic != 0x58475346) /* 'XGSF' */ - { - return -1; /* TODO: NOT XACT FILE */ - } - - if (!FACT_INTERNAL_SupportedContent(read_u16(&ptr, se))) - { - return -2; - } - - tool = read_u16(&ptr, se); /* Tool version */ - if (tool != 42) - { - return -3; - } - - ptr += 2; /* Unknown value */ - - /* Last modified, unused */ - ptr += 8; - - /* XACT Version (Windows == 3, Xbox == 7) */ - version = read_u8(&ptr); - if ( version != 3 && - version != 7 ) - { - return -4; /* TODO: VERSION TOO OLD */ - } - - /* Object counts */ - pEngine->categoryCount = read_u16(&ptr, se); - pEngine->variableCount = read_u16(&ptr, se); - blob1Count = read_u16(&ptr, se); - blob2Count = read_u16(&ptr, se); - pEngine->rpcCount = read_u16(&ptr, se); - pEngine->dspPresetCount = read_u16(&ptr, se); - pEngine->dspParameterCount = read_u16(&ptr, se); - - /* Object offsets */ - categoryOffset = read_u32(&ptr, se); - variableOffset = read_u32(&ptr, se); - blob1Offset = read_u32(&ptr, se); - categoryNameIndexOffset = read_u32(&ptr, se); - blob2Offset = read_u32(&ptr, se); - variableNameIndexOffset = read_u32(&ptr, se); - categoryNameOffset = read_u32(&ptr, se); - variableNameOffset = read_u32(&ptr, se); - rpcOffset = read_u32(&ptr, se); - dspPresetOffset = read_u32(&ptr, se); - dspParameterOffset = read_u32(&ptr, se); - - /* Category data */ - FAudio_assert((ptr - start) == categoryOffset); - pEngine->categories = (FACTAudioCategory*) pEngine->pMalloc( - sizeof(FACTAudioCategory) * pEngine->categoryCount - ); - for (i = 0; i < pEngine->categoryCount; i += 1) - { - pEngine->categories[i].instanceLimit = read_u8(&ptr); - pEngine->categories[i].fadeInMS = read_u16(&ptr, se); - pEngine->categories[i].fadeOutMS = read_u16(&ptr, se); - pEngine->categories[i].maxInstanceBehavior = read_u8(&ptr) >> 3; - pEngine->categories[i].parentCategory = read_u16(&ptr, se); - pEngine->categories[i].volume = FACT_INTERNAL_CalculateAmplitudeRatio( - read_volbyte(&ptr) - ); - pEngine->categories[i].visibility = read_u8(&ptr); - pEngine->categories[i].instanceCount = 0; - pEngine->categories[i].currentVolume = 1.0f; - } - - /* Variable data */ - FAudio_assert((ptr - start) == variableOffset); - pEngine->variables = (FACTVariable*) pEngine->pMalloc( - sizeof(FACTVariable) * pEngine->variableCount - ); - for (i = 0; i < pEngine->variableCount; i += 1) - { - pEngine->variables[i].accessibility = read_u8(&ptr); - pEngine->variables[i].initialValue = read_f32(&ptr, se); - pEngine->variables[i].minValue = read_f32(&ptr, se); - pEngine->variables[i].maxValue = read_f32(&ptr, se); - } - - /* Global variable storage. Some unused data for non-global vars */ - pEngine->globalVariableValues = (float*) pEngine->pMalloc( - sizeof(float) * pEngine->variableCount - ); - for (i = 0; i < pEngine->variableCount; i += 1) - { - pEngine->globalVariableValues[i] = pEngine->variables[i].initialValue; - } - - /* RPC data */ - if (pEngine->rpcCount > 0) - { - FAudio_assert((ptr - start) == rpcOffset); - pEngine->rpcs = (FACTRPC*) pEngine->pMalloc( - sizeof(FACTRPC) * - pEngine->rpcCount - ); - pEngine->rpcCodes = (uint32_t*) pEngine->pMalloc( - sizeof(uint32_t) * - pEngine->rpcCount - ); - for (i = 0; i < pEngine->rpcCount; i += 1) - { - pEngine->rpcCodes[i] = (uint32_t) (ptr - start); - pEngine->rpcs[i].variable = read_u16(&ptr, se); - pEngine->rpcs[i].pointCount = read_u8(&ptr); - pEngine->rpcs[i].parameter = read_u16(&ptr, se); - pEngine->rpcs[i].points = (FACTRPCPoint*) pEngine->pMalloc( - sizeof(FACTRPCPoint) * - pEngine->rpcs[i].pointCount - ); - for (j = 0; j < pEngine->rpcs[i].pointCount; j += 1) - { - pEngine->rpcs[i].points[j].x = read_f32(&ptr, se); - pEngine->rpcs[i].points[j].y = read_f32(&ptr, se); - pEngine->rpcs[i].points[j].type = read_u8(&ptr); - } - } - } - - /* DSP Preset data */ - if (pEngine->dspPresetCount > 0) - { - FAudio_assert((ptr - start) == dspPresetOffset); - pEngine->dspPresets = (FACTDSPPreset*) pEngine->pMalloc( - sizeof(FACTDSPPreset) * - pEngine->dspPresetCount - ); - pEngine->dspPresetCodes = (uint32_t*) pEngine->pMalloc( - sizeof(uint32_t) * - pEngine->dspPresetCount - ); - for (i = 0; i < pEngine->dspPresetCount; i += 1) - { - pEngine->dspPresetCodes[i] = (uint32_t) (ptr - start); - pEngine->dspPresets[i].accessibility = read_u8(&ptr); - pEngine->dspPresets[i].parameterCount = read_u16(&ptr, se); - ptr += 2; /* Unknown value */ - pEngine->dspPresets[i].parameters = (FACTDSPParameter*) pEngine->pMalloc( - sizeof(FACTDSPParameter) * - pEngine->dspPresets[i].parameterCount - ); /* This will be filled in just a moment... */ - } - - /* DSP Parameter data */ - FAudio_assert((ptr - start) == dspParameterOffset); - for (i = 0; i < pEngine->dspPresetCount; i += 1) - { - for (j = 0; j < pEngine->dspPresets[i].parameterCount; j += 1) - { - pEngine->dspPresets[i].parameters[j].type = read_u8(&ptr); - pEngine->dspPresets[i].parameters[j].value = read_f32(&ptr, se); - pEngine->dspPresets[i].parameters[j].minVal = read_f32(&ptr, se); - pEngine->dspPresets[i].parameters[j].maxVal = read_f32(&ptr, se); - pEngine->dspPresets[i].parameters[j].unknown = read_u16(&ptr, se); - } - } - } - - /* Blob #1, no idea what this is... */ - FAudio_assert((ptr - start) == blob1Offset); - ptr += blob1Count * 2; - - /* Category Name Index data */ - FAudio_assert((ptr - start) == categoryNameIndexOffset); - ptr += pEngine->categoryCount * 6; /* FIXME: index as assert value? */ - - /* Category Name data */ - FAudio_assert((ptr - start) == categoryNameOffset); - pEngine->categoryNames = (char**) pEngine->pMalloc( - sizeof(char*) * - pEngine->categoryCount - ); - for (i = 0; i < pEngine->categoryCount; i += 1) - { - memsize = FAudio_strlen((char*) ptr) + 1; /* Dastardly! */ - pEngine->categoryNames[i] = (char*) pEngine->pMalloc(memsize); - FAudio_memcpy(pEngine->categoryNames[i], ptr, memsize); - ptr += memsize; - } - - /* Blob #2, no idea what this is... */ - FAudio_assert((ptr - start) == blob2Offset); - ptr += blob2Count * 2; - - /* Variable Name Index data */ - FAudio_assert((ptr - start) == variableNameIndexOffset); - ptr += pEngine->variableCount * 6; /* FIXME: index as assert value? */ - - /* Variable Name data */ - FAudio_assert((ptr - start) == variableNameOffset); - pEngine->variableNames = (char**) pEngine->pMalloc( - sizeof(char*) * - pEngine->variableCount - ); - for (i = 0; i < pEngine->variableCount; i += 1) - { - memsize = FAudio_strlen((char*) ptr) + 1; /* Dastardly! */ - pEngine->variableNames[i] = (char*) pEngine->pMalloc(memsize); - FAudio_memcpy(pEngine->variableNames[i], ptr, memsize); - ptr += memsize; - } - - /* Store this pointer in case we're asked to free it */ - if (pParams->globalSettingsFlags & FACT_FLAG_MANAGEDATA) - { - pEngine->settings = pParams->pGlobalSettingsBuffer; - } - - /* Finally. */ - FAudio_assert((ptr - start) == pParams->globalSettingsBufferSize); - return 0; -} - -void FACT_INTERNAL_ParseTrackEvents( - uint8_t **ptr, - uint8_t se, - FACTTrack *track, - FAudioMallocFunc pMalloc -) { - uint32_t evtInfo; - uint8_t minWeight, maxWeight, separator; - uint8_t i; - uint16_t j; - - track->eventCount = read_u8(ptr); - track->events = (FACTEvent*) pMalloc( - sizeof(FACTEvent) * - track->eventCount - ); - FAudio_zero(track->events, sizeof(FACTEvent) * track->eventCount); - for (i = 0; i < track->eventCount; i += 1) - { - evtInfo = read_u32(ptr, se); - track->events[i].randomOffset = read_u16(ptr, se); - - track->events[i].type = evtInfo & 0x001F; - track->events[i].timestamp = (evtInfo >> 5) & 0xFFFF; - - separator = read_u8(ptr); - FAudio_assert(separator == 0xFF); /* Separator? */ - - #define EVTTYPE(t) (track->events[i].type == t) - if (EVTTYPE(FACTEVENT_STOP)) - { - track->events[i].stop.flags = read_u8(ptr); - } - else if (EVTTYPE(FACTEVENT_PLAYWAVE)) - { - /* Basic Wave */ - track->events[i].wave.isComplex = 0; - track->events[i].wave.flags = read_u8(ptr); - track->events[i].wave.simple.track = read_u16(ptr, se); - track->events[i].wave.simple.wavebank = read_u8(ptr); - track->events[i].wave.loopCount = read_u8(ptr); - track->events[i].wave.position = read_u16(ptr, se); - track->events[i].wave.angle = read_u16(ptr, se); - - /* No Effect Variation */ - track->events[i].wave.variationFlags = 0; - } - else if (EVTTYPE(FACTEVENT_PLAYWAVETRACKVARIATION)) - { - /* Complex Wave */ - track->events[i].wave.isComplex = 1; - track->events[i].wave.flags = read_u8(ptr); - track->events[i].wave.loopCount = read_u8(ptr); - track->events[i].wave.position = read_u16(ptr, se); - track->events[i].wave.angle = read_u16(ptr, se); - - /* Track Variation */ - evtInfo = read_u32(ptr, se); - track->events[i].wave.complex.trackCount = evtInfo & 0xFFFF; - track->events[i].wave.complex.variation = (evtInfo >> 16) & 0xFFFF; - *ptr += 4; /* Unknown values */ - track->events[i].wave.complex.tracks = (uint16_t*) pMalloc( - sizeof(uint16_t) * - track->events[i].wave.complex.trackCount - ); - track->events[i].wave.complex.wavebanks = (uint8_t*) pMalloc( - sizeof(uint8_t) * - track->events[i].wave.complex.trackCount - ); - track->events[i].wave.complex.weights = (uint8_t*) pMalloc( - sizeof(uint8_t) * - track->events[i].wave.complex.trackCount - ); - for (j = 0; j < track->events[i].wave.complex.trackCount; j += 1) - { - track->events[i].wave.complex.tracks[j] = read_u16(ptr, se); - track->events[i].wave.complex.wavebanks[j] = read_u8(ptr); - minWeight = read_u8(ptr); - maxWeight = read_u8(ptr); - track->events[i].wave.complex.weights[j] = ( - maxWeight - minWeight - ); - } - - /* No Effect Variation */ - track->events[i].wave.variationFlags = 0; - } - else if (EVTTYPE(FACTEVENT_PLAYWAVEEFFECTVARIATION)) - { - /* Basic Wave */ - track->events[i].wave.isComplex = 0; - track->events[i].wave.flags = read_u8(ptr); - track->events[i].wave.simple.track = read_u16(ptr, se); - track->events[i].wave.simple.wavebank = read_u8(ptr); - track->events[i].wave.loopCount = read_u8(ptr); - track->events[i].wave.position = read_u16(ptr, se); - track->events[i].wave.angle = read_u16(ptr, se); - - /* Effect Variation */ - track->events[i].wave.minPitch = read_s16(ptr, se); - track->events[i].wave.maxPitch = read_s16(ptr, se); - track->events[i].wave.minVolume = read_volbyte(ptr); - track->events[i].wave.maxVolume = read_volbyte(ptr); - track->events[i].wave.minFrequency = read_f32(ptr, se); - track->events[i].wave.maxFrequency = read_f32(ptr, se); - track->events[i].wave.minQFactor = read_f32(ptr, se); - track->events[i].wave.maxQFactor = read_f32(ptr, se); - track->events[i].wave.variationFlags = read_u16(ptr, se); - } - else if (EVTTYPE(FACTEVENT_PLAYWAVETRACKEFFECTVARIATION)) - { - /* Complex Wave */ - track->events[i].wave.isComplex = 1; - track->events[i].wave.flags = read_u8(ptr); - track->events[i].wave.loopCount = read_u8(ptr); - track->events[i].wave.position = read_u16(ptr, se); - track->events[i].wave.angle = read_u16(ptr, se); - - /* Effect Variation */ - track->events[i].wave.minPitch = read_s16(ptr, se); - track->events[i].wave.maxPitch = read_s16(ptr, se); - track->events[i].wave.minVolume = read_volbyte(ptr); - track->events[i].wave.maxVolume = read_volbyte(ptr); - track->events[i].wave.minFrequency = read_f32(ptr, se); - track->events[i].wave.maxFrequency = read_f32(ptr, se); - track->events[i].wave.minQFactor = read_f32(ptr, se); - track->events[i].wave.maxQFactor = read_f32(ptr, se); - track->events[i].wave.variationFlags = read_u16(ptr, se); - - /* Track Variation */ - evtInfo = read_u32(ptr, se); - track->events[i].wave.complex.trackCount = evtInfo & 0xFFFF; - track->events[i].wave.complex.variation = (evtInfo >> 16) & 0xFFFF; - *ptr += 4; /* Unknown values */ - track->events[i].wave.complex.tracks = (uint16_t*) pMalloc( - sizeof(uint16_t) * - track->events[i].wave.complex.trackCount - ); - track->events[i].wave.complex.wavebanks = (uint8_t*) pMalloc( - sizeof(uint8_t) * - track->events[i].wave.complex.trackCount - ); - track->events[i].wave.complex.weights = (uint8_t*) pMalloc( - sizeof(uint8_t) * - track->events[i].wave.complex.trackCount - ); - for (j = 0; j < track->events[i].wave.complex.trackCount; j += 1) - { - track->events[i].wave.complex.tracks[j] = read_u16(ptr, se); - track->events[i].wave.complex.wavebanks[j] = read_u8(ptr); - minWeight = read_u8(ptr); - maxWeight = read_u8(ptr); - track->events[i].wave.complex.weights[j] = ( - maxWeight - minWeight - ); - } - } - else if ( EVTTYPE(FACTEVENT_PITCH) || - EVTTYPE(FACTEVENT_VOLUME) || - EVTTYPE(FACTEVENT_PITCHREPEATING) || - EVTTYPE(FACTEVENT_VOLUMEREPEATING) ) - { - track->events[i].value.settings = read_u8(ptr); - if (track->events[i].value.settings & 1) /* Ramp */ - { - track->events[i].value.repeats = 0; - track->events[i].value.ramp.initialValue = read_f32(ptr, se); - track->events[i].value.ramp.initialSlope = read_f32(ptr, se) * 100; - track->events[i].value.ramp.slopeDelta = read_f32(ptr, se); - track->events[i].value.ramp.duration = read_u16(ptr, se); - } - else /* Equation */ - { - track->events[i].value.equation.flags = read_u8(ptr); - - /* SetValue, SetRandomValue, anything else? */ - FAudio_assert(track->events[i].value.equation.flags & 0x0C); - - track->events[i].value.equation.value1 = read_f32(ptr, se); - track->events[i].value.equation.value2 = read_f32(ptr, se); - - *ptr += 5; /* Unknown values */ - - if ( EVTTYPE(FACTEVENT_PITCHREPEATING) || - EVTTYPE(FACTEVENT_VOLUMEREPEATING) ) - { - track->events[i].value.repeats = read_u16(ptr, se); - track->events[i].value.frequency = read_u16(ptr, se); - } - else - { - track->events[i].value.repeats = 0; - } - } - } - else if (EVTTYPE(FACTEVENT_MARKER)) - { - track->events[i].marker.marker = read_u32(ptr, se); - track->events[i].marker.repeats = 0; - track->events[i].marker.frequency = 0; - } - else if (EVTTYPE(FACTEVENT_MARKERREPEATING)) - { - track->events[i].marker.marker = read_u32(ptr, se); - track->events[i].marker.repeats = read_u16(ptr, se); - track->events[i].marker.frequency = read_u16(ptr, se); - } - else - { - FAudio_assert(0 && "Unknown event type!"); - } - #undef EVTTYPE - } -} - -uint32_t FACT_INTERNAL_ParseSoundBank( - FACTAudioEngine *pEngine, - const void *pvBuffer, - uint32_t dwSize, - FACTSoundBank **ppSoundBank -) { - FACTSoundBank *sb; - uint16_t contentVersion, - cueSimpleCount, - cueComplexCount, - cueTotalAlign; - int32_t cueSimpleOffset, - cueComplexOffset, - cueNameOffset, - variationOffset, - transitionOffset, - wavebankNameOffset, - cueHashOffset, - cueNameIndexOffset, - soundOffset; - uint32_t entryCountAndFlags; - uint16_t filterData; - uint8_t platform; - size_t memsize; - uint16_t i, j, k, cur, tool; - uint8_t *ptrBookmark; - - uint8_t *ptr = (uint8_t*) pvBuffer; - uint8_t *start = ptr; - - uint32_t magic = read_u32(&ptr, 0); - uint8_t se = magic == 0x5344424B; /* Swap Endian */ - - if (magic != 0x4B424453 && magic != 0x5344424B) /* 'SDBK' */ - { - return -1; /* TODO: NOT XACT FILE */ - } - - contentVersion = read_u16(&ptr, se); - if (!FACT_INTERNAL_SupportedContent(contentVersion)) - { - return -2; - } - - tool = read_u16(&ptr, se); /* Tool version */ - if (tool != 43) - { - return -3; - } - - /* CRC, unused */ - ptr += 2; - - /* Last modified, unused */ - ptr += 8; - - /* Windows == 1, Xbox == 3. 0 is unknown, probably old content */ - platform = read_u8(&ptr); - if ( platform != 0 && - platform != 1 && - platform != 3 ) - { - return -4; /* TODO: WRONG PLATFORM */ - } - - sb = (FACTSoundBank*) pEngine->pMalloc(sizeof(FACTSoundBank)); - sb->parentEngine = pEngine; - sb->cueList = NULL; - sb->notifyOnDestroy = 0; - sb->usercontext = NULL; - - cueSimpleCount = read_u16(&ptr, se); - cueComplexCount = read_u16(&ptr, se); - - ptr += 2; /* Unknown value */ - - cueTotalAlign = read_u16(&ptr, se); /* FIXME: Why? */ - sb->cueCount = cueSimpleCount + cueComplexCount; - sb->wavebankCount = read_u8(&ptr); - sb->soundCount = read_u16(&ptr, se); - - /* Cue name length, unused */ - ptr += 2; - - ptr += 2; /* Unknown value */ - - cueSimpleOffset = read_s32(&ptr, se); - cueComplexOffset = read_s32(&ptr, se); - cueNameOffset = read_s32(&ptr, se); - - ptr += 4; /* Unknown value */ - - variationOffset = read_s32(&ptr, se); - transitionOffset = read_s32(&ptr, se); - wavebankNameOffset = read_s32(&ptr, se); - cueHashOffset = read_s32(&ptr, se); - cueNameIndexOffset = read_s32(&ptr, se); - soundOffset = read_s32(&ptr, se); - - /* SoundBank Name */ - memsize = FAudio_strlen((char*) ptr) + 1; /* Dastardly! */ - sb->name = (char*) pEngine->pMalloc(memsize); - FAudio_memcpy(sb->name, ptr, memsize); - ptr += 64; - - /* WaveBank Name data */ - FAudio_assert((ptr - start) == wavebankNameOffset); - sb->wavebankNames = (char**) pEngine->pMalloc( - sizeof(char*) * - sb->wavebankCount - ); - for (i = 0; i < sb->wavebankCount; i += 1) - { - memsize = FAudio_strlen((char*) ptr) + 1; - sb->wavebankNames[i] = (char*) pEngine->pMalloc(memsize); - FAudio_memcpy(sb->wavebankNames[i], ptr, memsize); - ptr += 64; - } - - /* Sound data */ - FAudio_assert((ptr - start) == soundOffset); - sb->sounds = (FACTSound*) pEngine->pMalloc( - sizeof(FACTSound) * - sb->soundCount - ); - sb->soundCodes = (uint32_t*) pEngine->pMalloc( - sizeof(uint32_t) * - sb->soundCount - ); - for (i = 0; i < sb->soundCount; i += 1) - { - sb->soundCodes[i] = (uint32_t) (ptr - start); - sb->sounds[i].flags = read_u8(&ptr); - sb->sounds[i].category = read_u16(&ptr, se); - sb->sounds[i].volume = read_volbyte(&ptr); - sb->sounds[i].pitch = read_s16(&ptr, se); - sb->sounds[i].priority = read_u8(&ptr); - - /* Length of sound entry, unused */ - ptr += 2; - - /* Simple/Complex Track data */ - if (sb->sounds[i].flags & 0x01) - { - sb->sounds[i].trackCount = read_u8(&ptr); - memsize = sizeof(FACTTrack) * sb->sounds[i].trackCount; - sb->sounds[i].tracks = (FACTTrack*) pEngine->pMalloc(memsize); - FAudio_zero(sb->sounds[i].tracks, memsize); - } - else - { - sb->sounds[i].trackCount = 1; - memsize = sizeof(FACTTrack) * sb->sounds[i].trackCount; - sb->sounds[i].tracks = (FACTTrack*) pEngine->pMalloc(memsize); - FAudio_zero(sb->sounds[i].tracks, memsize); - sb->sounds[i].tracks[0].volume = 0.0f; - sb->sounds[i].tracks[0].filter = 0xFF; - sb->sounds[i].tracks[0].eventCount = 1; - sb->sounds[i].tracks[0].events = (FACTEvent*) pEngine->pMalloc( - sizeof(FACTEvent) - ); - FAudio_zero( - sb->sounds[i].tracks[0].events, - sizeof(FACTEvent) - ); - sb->sounds[i].tracks[0].events[0].type = FACTEVENT_PLAYWAVE; - sb->sounds[i].tracks[0].events[0].wave.position = 0; /* FIXME */ - sb->sounds[i].tracks[0].events[0].wave.angle = 0; /* FIXME */ - sb->sounds[i].tracks[0].events[0].wave.simple.track = read_u16(&ptr, se); - sb->sounds[i].tracks[0].events[0].wave.simple.wavebank = read_u8(&ptr); - } - - /* RPC Code data */ - if (sb->sounds[i].flags & 0x0E) - { - const uint16_t rpcDataLength = read_u16(&ptr, se); - ptrBookmark = ptr - 2; - - #define COPYRPCBLOCK(loc) \ - loc.rpcCodeCount = read_u8(&ptr); \ - memsize = sizeof(uint32_t) * loc.rpcCodeCount; \ - loc.rpcCodes = (uint32_t*) pEngine->pMalloc(memsize); \ - for (k = 0; k < loc.rpcCodeCount; k += 1) \ - { \ - loc.rpcCodes[k] = read_u32(&ptr, se); \ - } \ - - /* Sound has attached RPCs */ - if (sb->sounds[i].flags & 0x02) - { - COPYRPCBLOCK(sb->sounds[i]) - } - else - { - sb->sounds[i].rpcCodeCount = 0; - sb->sounds[i].rpcCodes = NULL; - } - - /* Tracks have attached RPCs */ - if (sb->sounds[i].flags & 0x04) - { - for (j = 0; j < sb->sounds[i].trackCount; j += 1) - { - COPYRPCBLOCK(sb->sounds[i].tracks[j]) - } - } - else - { - for (j = 0; j < sb->sounds[i].trackCount; j += 1) - { - sb->sounds[i].tracks[j].rpcCodeCount = 0; - sb->sounds[i].tracks[j].rpcCodes = NULL; - } - } - - #undef COPYRPCBLOCK - - /* FIXME: Does 0x08 mean something for RPCs...? */ - FAudio_assert((ptr - ptrBookmark) == rpcDataLength); - } - else - { - sb->sounds[i].rpcCodeCount = 0; - sb->sounds[i].rpcCodes = NULL; - for (j = 0; j < sb->sounds[i].trackCount; j += 1) - { - sb->sounds[i].tracks[j].rpcCodeCount = 0; - sb->sounds[i].tracks[j].rpcCodes = NULL; - } - } - - /* DSP Preset Code data */ - if (sb->sounds[i].flags & 0x10) - { - /* DSP presets length, unused */ - ptr += 2; - - sb->sounds[i].dspCodeCount = read_u8(&ptr); - memsize = sizeof(uint32_t) * sb->sounds[i].dspCodeCount; - sb->sounds[i].dspCodes = (uint32_t*) pEngine->pMalloc(memsize); - for (j = 0; j < sb->sounds[i].dspCodeCount; j += 1) - { - sb->sounds[i].dspCodes[j] = read_u32(&ptr, se); - } - } - else - { - sb->sounds[i].dspCodeCount = 0; - sb->sounds[i].dspCodes = NULL; - } - - /* Track data */ - if (sb->sounds[i].flags & 0x01) - { - for (j = 0; j < sb->sounds[i].trackCount; j += 1) - { - sb->sounds[i].tracks[j].volume = read_volbyte(&ptr); - - sb->sounds[i].tracks[j].code = read_u32(&ptr, se); - - if (contentVersion == FACT_CONTENT_VERSION_3_0) - { - /* 3.0 doesn't have track filter data */ - sb->sounds[i].tracks[j].filter = 0xFF; - sb->sounds[i].tracks[j].qfactor = 0; - sb->sounds[i].tracks[j].frequency = 0; - continue; - } - - filterData = read_u16(&ptr, se); - if (filterData & 0x0001) - { - sb->sounds[i].tracks[j].filter = - (filterData >> 1) & 0x02; - } - else - { - /* Huh...? */ - sb->sounds[i].tracks[j].filter = 0xFF; - } - sb->sounds[i].tracks[j].qfactor = (filterData >> 8) & 0xFF; - sb->sounds[i].tracks[j].frequency = read_u16(&ptr, se); - } - - /* All Track events are stored at the end of the block */ - for (j = 0; j < sb->sounds[i].trackCount; j += 1) - { - FAudio_assert((ptr - start) == sb->sounds[i].tracks[j].code); - FACT_INTERNAL_ParseTrackEvents( - &ptr, - se, - &sb->sounds[i].tracks[j], - pEngine->pMalloc - ); - } - } - } - - /* All Cue data */ - sb->variationCount = 0; - sb->transitionCount = 0; - sb->cues = (FACTCueData*) pEngine->pMalloc( - sizeof(FACTCueData) * - sb->cueCount - ); - cur = 0; - - /* Simple Cue data */ - FAudio_assert(cueSimpleCount == 0 || (ptr - start) == cueSimpleOffset); - for (i = 0; i < cueSimpleCount; i += 1, cur += 1) - { - sb->cues[cur].flags = read_u8(&ptr); - sb->cues[cur].sbCode = read_u32(&ptr, se); - sb->cues[cur].transitionOffset = 0; - sb->cues[cur].instanceLimit = 0xFF; - sb->cues[cur].fadeInMS = 0; - sb->cues[cur].fadeOutMS = 0; - sb->cues[cur].maxInstanceBehavior = 0; - sb->cues[cur].instanceCount = 0; - } - - /* Complex Cue data */ - FAudio_assert(cueComplexCount == 0 || (ptr - start) == cueComplexOffset); - for (i = 0; i < cueComplexCount; i += 1, cur += 1) - { - sb->cues[cur].flags = read_u8(&ptr); - sb->cues[cur].sbCode = read_u32(&ptr, se); - sb->cues[cur].transitionOffset = read_u32(&ptr, se); - if (sb->cues[cur].transitionOffset == 0xFFFFFFFF) - { - /* FIXME: Why */ - sb->cues[cur].transitionOffset = 0; - } - sb->cues[cur].instanceLimit = read_u8(&ptr); - sb->cues[cur].fadeInMS = read_u16(&ptr, se); - sb->cues[cur].fadeOutMS = read_u16(&ptr, se); - sb->cues[cur].maxInstanceBehavior = read_u8(&ptr) >> 3; - sb->cues[cur].instanceCount = 0; - - if (!(sb->cues[cur].flags & 0x04)) - { - /* FIXME: Is this the only way to get this...? */ - sb->variationCount += 1; - } - if (sb->cues[cur].transitionOffset > 0) - { - /* FIXME: Is this the only way to get this...? */ - sb->transitionCount += 1; - } - } - - /* Variation data */ - if (sb->variationCount > 0) - { - FAudio_assert((ptr - start) == variationOffset); - sb->variations = (FACTVariationTable*) pEngine->pMalloc( - sizeof(FACTVariationTable) * - sb->variationCount - ); - sb->variationCodes = (uint32_t*) pEngine->pMalloc( - sizeof(uint32_t) * - sb->variationCount - ); - } - else - { - sb->variations = NULL; - sb->variationCodes = NULL; - } - for (i = 0; i < sb->variationCount; i += 1) - { - sb->variationCodes[i] = (uint32_t) (ptr - start); - entryCountAndFlags = read_u32(&ptr, se); - sb->variations[i].entryCount = entryCountAndFlags & 0xFFFF; - sb->variations[i].flags = (entryCountAndFlags >> (16 + 3)) & 0x07; - ptr += 2; /* Unknown value */ - sb->variations[i].variable = read_s16(&ptr, se); - memsize = sizeof(FACTVariation) * sb->variations[i].entryCount; - sb->variations[i].entries = (FACTVariation*) pEngine->pMalloc( - memsize - ); - FAudio_zero(sb->variations[i].entries, memsize); - - if (sb->variations[i].flags == 0) - { - /* Wave with byte min/max */ - sb->variations[i].isComplex = 0; - for (j = 0; j < sb->variations[i].entryCount; j += 1) - { - sb->variations[i].entries[j].simple.track = read_u16(&ptr, se); - sb->variations[i].entries[j].simple.wavebank = read_u8(&ptr); - sb->variations[i].entries[j].minWeight = read_u8(&ptr) / 255.0f; - sb->variations[i].entries[j].maxWeight = read_u8(&ptr) / 255.0f; - } - } - else if (sb->variations[i].flags == 1) - { - /* Complex with byte min/max */ - sb->variations[i].isComplex = 1; - for (j = 0; j < sb->variations[i].entryCount; j += 1) - { - sb->variations[i].entries[j].soundCode = read_u32(&ptr, se); - sb->variations[i].entries[j].minWeight = read_u8(&ptr) / 255.0f; - sb->variations[i].entries[j].maxWeight = read_u8(&ptr) / 255.0f; - } - } - else if (sb->variations[i].flags == 3) - { - /* Complex Interactive Variation with float min/max */ - sb->variations[i].isComplex = 1; - for (j = 0; j < sb->variations[i].entryCount; j += 1) - { - sb->variations[i].entries[j].soundCode = read_u32(&ptr, se); - sb->variations[i].entries[j].minWeight = read_f32(&ptr, se); - sb->variations[i].entries[j].maxWeight = read_f32(&ptr, se); - sb->variations[i].entries[j].linger = read_u32(&ptr, se); - } - } - else if (sb->variations[i].flags == 4) - { - /* Compact Wave */ - sb->variations[i].isComplex = 0; - for (j = 0; j < sb->variations[i].entryCount; j += 1) - { - sb->variations[i].entries[j].simple.track = read_u16(&ptr, se); - sb->variations[i].entries[j].simple.wavebank = read_u8(&ptr); - sb->variations[i].entries[j].minWeight = 0.0f; - sb->variations[i].entries[j].maxWeight = 1.0f; - } - } - else - { - FAudio_assert(0 && "Unknown variation type!"); - } - } - - /* Transition data */ - if (sb->transitionCount > 0) - { - FAudio_assert((ptr - start) == transitionOffset); - sb->transitions = (FACTTransitionTable*) pEngine->pMalloc( - sizeof(FACTTransitionTable) * - sb->transitionCount - ); - sb->transitionCodes = (uint32_t*) pEngine->pMalloc( - sizeof(uint32_t) * - sb->transitionCount - ); - } - else - { - sb->transitions = NULL; - sb->transitionCodes = NULL; - } - for (i = 0; i < sb->transitionCount; i += 1) - { - sb->transitionCodes[i] = (uint32_t) (ptr - start); - sb->transitions[i].entryCount = read_u32(&ptr, se); - memsize = sizeof(FACTTransition) * sb->transitions[i].entryCount; - sb->transitions[i].entries = (FACTTransition*) pEngine->pMalloc( - memsize - ); - FAudio_zero(sb->transitions[i].entries, memsize); - for (j = 0; j < sb->transitions[i].entryCount; j += 1) - { - sb->transitions[i].entries[j].soundCode = read_s32(&ptr, se); - sb->transitions[i].entries[j].srcMarkerMin = read_u32(&ptr, se); - sb->transitions[i].entries[j].srcMarkerMax = read_u32(&ptr, se); - sb->transitions[i].entries[j].dstMarkerMin = read_u32(&ptr, se); - sb->transitions[i].entries[j].dstMarkerMax = read_u32(&ptr, se); - sb->transitions[i].entries[j].fadeIn = read_u16(&ptr, se); - sb->transitions[i].entries[j].fadeOut = read_u16(&ptr, se); - sb->transitions[i].entries[j].flags = read_u16(&ptr, se); - } - } - - /* Cue Hash data? No idea what this is... */ - if (cueHashOffset != -1) - { - FAudio_assert((ptr - start) == cueHashOffset); - ptr += 2 * cueTotalAlign; - } - - /* Cue Name Index data */ - if (cueNameIndexOffset != -1) - { - FAudio_assert((ptr - start) == cueNameIndexOffset); - ptr += 6 * sb->cueCount; /* FIXME: index as assert value? */ - } - - /* Cue Name data */ - if (cueNameOffset != -1) - { - FAudio_assert((ptr - start) == cueNameOffset); - sb->cueNames = (char**) pEngine->pMalloc( - sizeof(char*) * - sb->cueCount - ); - for (i = 0; i < sb->cueCount; i += 1) - { - memsize = FAudio_strlen((char*) ptr) + 1; - sb->cueNames[i] = (char*) pEngine->pMalloc(memsize); - FAudio_memcpy(sb->cueNames[i], ptr, memsize); - ptr += memsize; - } - } - else - { - sb->cueNames = NULL; - } - - /* Add to the Engine SoundBank list */ - LinkedList_AddEntry( - &pEngine->sbList, - sb, - pEngine->sbLock, - pEngine->pMalloc - ); - - /* Finally. */ - FAudio_assert((ptr - start) == dwSize); - *ppSoundBank = sb; - return 0; -} - -/* This parser is based on the unxwb project, written by Luigi Auriemma. - * - * While the unxwb project was released under the GPL, Luigi has given us - * permission to use the unxwb sources under the zlib license. - * - * The unxwb website can be found here: - * - * http://aluigi.altervista.org/papers.htm#xbox - */ -uint32_t FACT_INTERNAL_ParseWaveBank( - FACTAudioEngine *pEngine, - void* io, - uint32_t offset, - uint32_t packetSize, - FACTReadFileCallback pRead, - FACTGetOverlappedResultCallback pOverlap, - uint16_t isStreaming, - FACTWaveBank **ppWaveBank -) { - uint8_t se = 0; /* Swap Endian */ - FACTWaveBank *wb; - size_t memsize; - uint32_t i, j; - FACTWaveBankHeader header; - FACTWaveBankData wbinfo; - uint32_t compactEntry; - int32_t seekTableOffset; - uint32_t fileOffset; - uint8_t *packetBuffer = NULL; - uint32_t packetBufferLen = 0; - uint16_t *pcm; - - #define SEEKSET(loc) \ - fileOffset = offset + loc; - #define SEEKCUR(loc) \ - fileOffset += loc; - #define READ(dst, size) \ - FACT_INTERNAL_ReadFile( \ - pRead, \ - pOverlap, \ - io, \ - fileOffset, \ - packetSize, \ - &packetBuffer, \ - &packetBufferLen, \ - pEngine->pRealloc, \ - dst, \ - size \ - ); \ - SEEKCUR(size) - - #define DOSWAP_16(x) x = FAudio_swap16BE(x) - #define DOSWAP_32(x) x = FAudio_swap32BE(x) - #define DOSWAP_64(x) x = FAudio_swap64BE(x) - - fileOffset = offset; - READ(&header, sizeof(header)) - se = header.dwSignature == 0x57424E44; - if (se) - { - DOSWAP_32(header.dwSignature); - DOSWAP_32(header.dwVersion); - DOSWAP_32(header.dwHeaderVersion); - for (i = 0; i < FACT_WAVEBANK_SEGIDX_COUNT; i += 1) - { - DOSWAP_32(header.Segments[i].dwOffset); - DOSWAP_32(header.Segments[i].dwLength); - } - } - if (header.dwSignature != 0x444E4257) - { - return -1; /* TODO: NOT XACT FILE */ - } - - if (!FACT_INTERNAL_SupportedContent(header.dwVersion)) - { - return -2; - } - - if (!FACT_INTERNAL_SupportedWBContent(header.dwHeaderVersion)) - { - return -3; - } - - wb = (FACTWaveBank*) pEngine->pMalloc(sizeof(FACTWaveBank)); - wb->parentEngine = pEngine; - wb->waveList = NULL; - wb->waveLock = FAudio_PlatformCreateMutex(); - wb->packetSize = packetSize; - wb->io = io; - wb->notifyOnDestroy = 0; - wb->usercontext = NULL; - - /* WaveBank Data */ - SEEKSET(header.Segments[FACT_WAVEBANK_SEGIDX_BANKDATA].dwOffset) - READ(&wbinfo, sizeof(wbinfo)) - if (se) - { - DOSWAP_32(wbinfo.dwFlags); - DOSWAP_32(wbinfo.dwEntryCount); - DOSWAP_32(wbinfo.dwEntryMetaDataElementSize); - DOSWAP_32(wbinfo.dwEntryNameElementSize); - DOSWAP_32(wbinfo.dwAlignment); - DOSWAP_32(wbinfo.CompactFormat.dwValue); - DOSWAP_64(wbinfo.BuildTime); - } - wb->streaming = (wbinfo.dwFlags & FACT_WAVEBANK_TYPE_STREAMING); - wb->entryCount = wbinfo.dwEntryCount; - memsize = FAudio_strlen(wbinfo.szBankName) + 1; - wb->name = (char*) pEngine->pMalloc(memsize); - FAudio_memcpy(wb->name, wbinfo.szBankName, memsize); - memsize = sizeof(FACTWaveBankEntry) * wbinfo.dwEntryCount; - wb->entries = (FACTWaveBankEntry*) pEngine->pMalloc(memsize); - FAudio_zero(wb->entries, memsize); - memsize = sizeof(uint32_t) * wbinfo.dwEntryCount; - wb->entryRefs = (uint32_t*) pEngine->pMalloc(memsize); - FAudio_zero(wb->entryRefs, memsize); - - /* FIXME: How much do we care about this? */ - FAudio_assert(wb->streaming == isStreaming); - wb->streaming = isStreaming; - - /* WaveBank Entry Metadata */ - SEEKSET(header.Segments[FACT_WAVEBANK_SEGIDX_ENTRYMETADATA].dwOffset) - if (wbinfo.dwFlags & FACT_WAVEBANK_FLAGS_COMPACT) - { - for (i = 0; i < wbinfo.dwEntryCount - 1; i += 1) - { - READ(&compactEntry, sizeof(compactEntry)) - if (se) - { - DOSWAP_32(compactEntry); - } - wb->entries[i].PlayRegion.dwOffset = ( - (compactEntry & ((1 << 21) - 1)) * - wbinfo.dwAlignment - ); - wb->entries[i].PlayRegion.dwLength = ( - (compactEntry >> 21) & ((1 << 11) - 1) - ); - - /* TODO: Deviation table */ - SEEKCUR(wbinfo.dwEntryMetaDataElementSize) - wb->entries[i].PlayRegion.dwLength = ( - (compactEntry & ((1 << 21) - 1)) * - wbinfo.dwAlignment - ) - wb->entries[i].PlayRegion.dwOffset; - - wb->entries[i].PlayRegion.dwOffset += - header.Segments[FACT_WAVEBANK_SEGIDX_ENTRYWAVEDATA].dwOffset; - } - - READ(&compactEntry, sizeof(compactEntry)) - if (se) - { - DOSWAP_32(compactEntry); - } - wb->entries[i].PlayRegion.dwOffset = ( - (compactEntry & ((1 << 21) - 1)) * - wbinfo.dwAlignment - ); - - /* TODO: Deviation table */ - SEEKCUR(wbinfo.dwEntryMetaDataElementSize) - wb->entries[i].PlayRegion.dwLength = ( - header.Segments[FACT_WAVEBANK_SEGIDX_ENTRYWAVEDATA].dwLength - - wb->entries[i].PlayRegion.dwOffset - ); - - wb->entries[i].PlayRegion.dwOffset += - header.Segments[FACT_WAVEBANK_SEGIDX_ENTRYWAVEDATA].dwOffset; - } - else - { - for (i = 0; i < wbinfo.dwEntryCount; i += 1) - { - READ(&wb->entries[i], wbinfo.dwEntryMetaDataElementSize) - if (se) - { - DOSWAP_32(wb->entries[i].dwFlagsAndDuration); - DOSWAP_32(wb->entries[i].Format.dwValue); - DOSWAP_32(wb->entries[i].PlayRegion.dwOffset); - DOSWAP_32(wb->entries[i].PlayRegion.dwLength); - DOSWAP_32(wb->entries[i].LoopRegion.dwStartSample); - DOSWAP_32(wb->entries[i].LoopRegion.dwTotalSamples); - } - wb->entries[i].PlayRegion.dwOffset += - header.Segments[FACT_WAVEBANK_SEGIDX_ENTRYWAVEDATA].dwOffset; - - /* If it's in-memory big-endian PCM, swap! */ - if ( se && - !wb->streaming && - wb->entries[i].Format.wFormatTag == 0x0 && - wb->entries[i].Format.wBitsPerSample == 1 ) - { - pcm = (uint16_t*) FAudio_memptr( - (FAudioIOStream*) wb->io, - wb->entries[i].PlayRegion.dwOffset - ); - for (j = 0; j < wb->entries[i].PlayRegion.dwLength; j += 2, pcm += 1) - { - DOSWAP_16(*pcm); - } - } - } - - /* FIXME: This is a bit hacky. */ - if (wbinfo.dwEntryMetaDataElementSize < 24) - { - for (i = 0; i < wbinfo.dwEntryCount; i += 1) - { - wb->entries[i].PlayRegion.dwLength = - header.Segments[FACT_WAVEBANK_SEGIDX_ENTRYWAVEDATA].dwLength; - } - } - } - - /* WaveBank Seek Tables */ - if ( wbinfo.dwFlags & FACT_WAVEBANK_FLAGS_SEEKTABLES && - header.Segments[FACT_WAVEBANK_SEGIDX_SEEKTABLES].dwLength > 0 ) - { - /* The seek table data layout is an absolute disaster! */ - wb->seekTables = (FACTSeekTable*) pEngine->pMalloc( - wbinfo.dwEntryCount * sizeof(FACTSeekTable) - ); - for (i = 0; i < wbinfo.dwEntryCount; i += 1) - { - /* Get the table offset... */ - SEEKSET( - header.Segments[FACT_WAVEBANK_SEGIDX_SEEKTABLES].dwOffset + - i * sizeof(uint32_t) - ) - READ(&seekTableOffset, sizeof(int32_t)) - if (se) - { - DOSWAP_32(seekTableOffset); - } - - /* If the offset is -1, this wave needs no table */ - if (seekTableOffset == -1) - { - wb->seekTables[i].entryCount = 0; - wb->seekTables[i].entries = NULL; - continue; - } - - /* Go to the table offset, after the offset table... */ - SEEKSET( - header.Segments[FACT_WAVEBANK_SEGIDX_SEEKTABLES].dwOffset + - (wbinfo.dwEntryCount * sizeof(uint32_t)) + - seekTableOffset - ) - - /* Read the table, finally. */ - READ(&wb->seekTables[i].entryCount, sizeof(uint32_t)) - if (se) - { - DOSWAP_32(wb->seekTables[i].entryCount); - } - wb->seekTables[i].entries = (uint32_t*) pEngine->pMalloc( - wb->seekTables[i].entryCount * sizeof(uint32_t) - ); - READ( - wb->seekTables[i].entries, - wb->seekTables[i].entryCount * sizeof(uint32_t) - ) - if (se) - { - for (j = 0; j < wb->seekTables[i].entryCount; j += 1) - { - DOSWAP_32(wb->seekTables[i].entries[j]); - } - } - } - } - else - { - wb->seekTables = NULL; - } - - /* WaveBank Entry Names */ - if (wbinfo.dwFlags & FACT_WAVEBANK_FLAGS_ENTRYNAMES) - { - SEEKSET(header.Segments[FACT_WAVEBANK_SEGIDX_ENTRYNAMES].dwOffset) - wb->waveBankNames = (char*) pEngine->pMalloc(64 * wbinfo.dwEntryCount); - READ(wb->waveBankNames, 64 * wbinfo.dwEntryCount); - } - else - { - wb->waveBankNames = NULL; - } - - /* Add to the Engine WaveBank list */ - LinkedList_AddEntry( - &pEngine->wbList, - wb, - pEngine->wbLock, - pEngine->pMalloc - ); - - /* Finally. */ - wb->packetBuffer = packetBuffer; - wb->packetBufferLen = packetBufferLen; - *ppWaveBank = wb; - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT_internal.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT_internal.h deleted file mode 100644 index 97d09e56..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FACT_internal.h +++ /dev/null @@ -1,645 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FACT.h" -#include "FACT3D.h" -#include "FAudio_internal.h" - -/* Internal AudioEngine Types */ - -typedef struct FACTAudioCategory -{ - uint8_t instanceLimit; - uint16_t fadeInMS; - uint16_t fadeOutMS; - uint8_t maxInstanceBehavior; - int16_t parentCategory; - float volume; - uint8_t visibility; - - uint8_t instanceCount; - float currentVolume; -} FACTAudioCategory; - -typedef struct FACTVariable -{ - uint8_t accessibility; - float initialValue; - float minValue; - float maxValue; -} FACTVariable; - -typedef struct FACTRPCPoint -{ - float x; - float y; - uint8_t type; -} FACTRPCPoint; - -typedef enum FACTRPCParameter -{ - RPC_PARAMETER_VOLUME, - RPC_PARAMETER_PITCH, - RPC_PARAMETER_REVERBSEND, - RPC_PARAMETER_FILTERFREQUENCY, - RPC_PARAMETER_FILTERQFACTOR, - RPC_PARAMETER_COUNT /* If >=, DSP Parameter! */ -} FACTRPCParameter; - -typedef struct FACTRPC -{ - uint16_t variable; - uint8_t pointCount; - uint16_t parameter; - FACTRPCPoint *points; -} FACTRPC; - -typedef struct FACTDSPParameter -{ - uint8_t type; - float value; - float minVal; - float maxVal; - uint16_t unknown; -} FACTDSPParameter; - -typedef struct FACTDSPPreset -{ - uint8_t accessibility; - uint16_t parameterCount; - FACTDSPParameter *parameters; -} FACTDSPPreset; - -typedef enum FACTNoticationsFlags -{ - NOTIFY_CUEPREPARED = 0x00000001, - NOTIFY_CUEPLAY = 0x00000002, - NOTIFY_CUESTOP = 0x00000004, - NOTIFY_CUEDESTROY = 0x00000008, - NOTIFY_MARKER = 0x00000010, - NOTIFY_SOUNDBANKDESTROY = 0x00000020, - NOTIFY_WAVEBANKDESTROY = 0x00000040, - NOTIFY_LOCALVARIABLECHANGED = 0x00000080, - NOTIFY_GLOBALVARIABLECHANGED = 0x00000100, - NOTIFY_GUICONNECTED = 0x00000200, - NOTIFY_GUIDISCONNECTED = 0x00000400, - NOTIFY_WAVEPREPARED = 0x00000800, - NOTIFY_WAVEPLAY = 0x00001000, - NOTIFY_WAVESTOP = 0x00002000, - NOTIFY_WAVELOOPED = 0x00004000, - NOTIFY_WAVEDESTROY = 0x00008000, - NOTIFY_WAVEBANKPREPARED = 0x00010000 -} FACTNoticationsFlags; - -/* Internal SoundBank Types */ - -typedef enum -{ - FACTEVENT_STOP = 0, - FACTEVENT_PLAYWAVE = 1, - FACTEVENT_PLAYWAVETRACKVARIATION = 3, - FACTEVENT_PLAYWAVEEFFECTVARIATION = 4, - FACTEVENT_PLAYWAVETRACKEFFECTVARIATION = 6, - FACTEVENT_PITCH = 7, - FACTEVENT_VOLUME = 8, - FACTEVENT_MARKER = 9, - FACTEVENT_PITCHREPEATING = 16, - FACTEVENT_VOLUMEREPEATING = 17, - FACTEVENT_MARKERREPEATING = 18 -} FACTEventType; - -typedef struct FACTEvent -{ - uint16_t type; - uint16_t timestamp; - uint16_t randomOffset; - FAUDIONAMELESS union - { - /* Play Wave Event */ - struct - { - uint8_t flags; - uint8_t loopCount; - uint16_t position; - uint16_t angle; - - /* Track Variation */ - uint8_t isComplex; - FAUDIONAMELESS union - { - struct - { - uint16_t track; - uint8_t wavebank; - } simple; - struct - { - uint16_t variation; - uint16_t trackCount; - uint16_t *tracks; - uint8_t *wavebanks; - uint8_t *weights; - } complex; - }; - - /* Effect Variation */ - int16_t minPitch; - int16_t maxPitch; - float minVolume; - float maxVolume; - float minFrequency; - float maxFrequency; - float minQFactor; - float maxQFactor; - uint16_t variationFlags; - } wave; - /* Set Pitch/Volume Event */ - struct - { - uint8_t settings; - uint16_t repeats; - uint16_t frequency; - FAUDIONAMELESS union - { - struct - { - float initialValue; - float initialSlope; - float slopeDelta; - uint16_t duration; - } ramp; - struct - { - uint8_t flags; - float value1; - float value2; - } equation; - }; - } value; - /* Stop Event */ - struct - { - uint8_t flags; - } stop; - /* Marker Event */ - struct - { - uint32_t marker; - uint16_t repeats; - uint16_t frequency; - } marker; - }; -} FACTEvent; - -typedef struct FACTTrack -{ - uint32_t code; - - float volume; - uint8_t filter; - uint8_t qfactor; - uint16_t frequency; - - uint8_t rpcCodeCount; - uint32_t *rpcCodes; - - uint8_t eventCount; - FACTEvent *events; -} FACTTrack; - -typedef struct FACTSound -{ - uint8_t flags; - uint16_t category; - float volume; - int16_t pitch; - uint8_t priority; - - uint8_t trackCount; - uint8_t rpcCodeCount; - uint8_t dspCodeCount; - - FACTTrack *tracks; - uint32_t *rpcCodes; - uint32_t *dspCodes; -} FACTSound; - -typedef struct FACTCueData -{ - uint8_t flags; - uint32_t sbCode; - uint32_t transitionOffset; - uint8_t instanceLimit; - uint16_t fadeInMS; - uint16_t fadeOutMS; - uint8_t maxInstanceBehavior; - uint8_t instanceCount; -} FACTCueData; - -typedef struct FACTVariation -{ - FAUDIONAMELESS union - { - struct - { - uint16_t track; - uint8_t wavebank; - } simple; - uint32_t soundCode; - }; - float minWeight; - float maxWeight; - uint32_t linger; -} FACTVariation; - -typedef struct FACTVariationTable -{ - uint8_t flags; - int16_t variable; - uint8_t isComplex; - - uint16_t entryCount; - FACTVariation *entries; -} FACTVariationTable; - -typedef struct FACTTransition -{ - int32_t soundCode; - uint32_t srcMarkerMin; - uint32_t srcMarkerMax; - uint32_t dstMarkerMin; - uint32_t dstMarkerMax; - uint16_t fadeIn; - uint16_t fadeOut; - uint16_t flags; -} FACTTransition; - -typedef struct FACTTransitionTable -{ - uint32_t entryCount; - FACTTransition *entries; -} FACTTransitionTable; - -/* Internal WaveBank Types */ - -typedef struct FACTSeekTable -{ - uint32_t entryCount; - uint32_t *entries; -} FACTSeekTable; - -/* Internal Cue Types */ - -typedef struct FACTInstanceRPCData -{ - float rpcVolume; - float rpcPitch; - float rpcReverbSend; - float rpcFilterFreq; - float rpcFilterQFactor; -} FACTInstanceRPCData; - -typedef struct FACTEventInstance -{ - uint32_t timestamp; - uint16_t loopCount; - uint8_t finished; - FAUDIONAMELESS union - { - float value; - uint32_t valuei; - }; -} FACTEventInstance; - -typedef struct FACTTrackInstance -{ - /* Tracks which events have fired */ - FACTEventInstance *events; - - /* RPC instance data */ - FACTInstanceRPCData rpcData; - - /* SetPitch/SetVolume data */ - float evtPitch; - float evtVolume; - - /* Wave playback */ - struct - { - FACTWave *wave; - float baseVolume; - int16_t basePitch; - float baseQFactor; - float baseFrequency; - } activeWave, upcomingWave; - FACTEvent *waveEvt; - FACTEventInstance *waveEvtInst; -} FACTTrackInstance; - -typedef struct FACTSoundInstance -{ - /* Base Sound reference */ - FACTSound *sound; - - /* Per-instance track information */ - FACTTrackInstance *tracks; - - /* RPC instance data */ - FACTInstanceRPCData rpcData; - - /* Fade data */ - uint32_t fadeStart; - uint16_t fadeTarget; - uint8_t fadeType; /* In (1), Out (2), Release RPC (3) */ - - /* Engine references */ - FACTCue *parentCue; -} FACTSoundInstance; - -/* Internal Wave Types */ - -typedef struct FACTWaveCallback -{ - FAudioVoiceCallback callback; - FACTWave *wave; -} FACTWaveCallback; - -/* Public XACT Types */ - -struct FACTAudioEngine -{ - uint32_t refcount; - FACTNotificationCallback notificationCallback; - FACTReadFileCallback pReadFile; - FACTGetOverlappedResultCallback pGetOverlappedResult; - - uint16_t categoryCount; - uint16_t variableCount; - uint16_t rpcCount; - uint16_t dspPresetCount; - uint16_t dspParameterCount; - - char **categoryNames; - char **variableNames; - uint32_t *rpcCodes; - uint32_t *dspPresetCodes; - - FACTAudioCategory *categories; - FACTVariable *variables; - FACTRPC *rpcs; - FACTDSPPreset *dspPresets; - - /* Engine references */ - LinkedList *sbList; - LinkedList *wbList; - FAudioMutex sbLock; - FAudioMutex wbLock; - float *globalVariableValues; - - /* FAudio references */ - FAudio *audio; - FAudioMasteringVoice *master; - FAudioSubmixVoice *reverbVoice; - - /* Engine thread */ - FAudioThread apiThread; - FAudioMutex apiLock; - uint8_t initialized; - - /* Allocator callbacks */ - FAudioMallocFunc pMalloc; - FAudioFreeFunc pFree; - FAudioReallocFunc pRealloc; - - /* Peristent Notifications */ - FACTNoticationsFlags notifications; - void *cue_context; - void *sb_context; - void *wb_context; - void *wave_context; - LinkedList *wb_notifications_list; - - /* Settings handle */ - void *settings; -}; - -struct FACTSoundBank -{ - /* Engine references */ - FACTAudioEngine *parentEngine; - FACTCue *cueList; - uint8_t notifyOnDestroy; - void *usercontext; - - /* Array sizes */ - uint16_t cueCount; - uint8_t wavebankCount; - uint16_t soundCount; - uint16_t variationCount; - uint16_t transitionCount; - - /* Strings, strings everywhere! */ - char **wavebankNames; - char **cueNames; - - /* Actual SoundBank information */ - char *name; - FACTCueData *cues; - FACTSound *sounds; - uint32_t *soundCodes; - FACTVariationTable *variations; - uint32_t *variationCodes; - FACTTransitionTable *transitions; - uint32_t *transitionCodes; -}; - -struct FACTWaveBank -{ - /* Engine references */ - FACTAudioEngine *parentEngine; - LinkedList *waveList; - FAudioMutex waveLock; - uint8_t notifyOnDestroy; - void *usercontext; - - /* Actual WaveBank information */ - char *name; - uint32_t entryCount; - FACTWaveBankEntry *entries; - uint32_t *entryRefs; - FACTSeekTable *seekTables; - char *waveBankNames; - - /* I/O information */ - uint32_t packetSize; - uint16_t streaming; - uint8_t *packetBuffer; - uint32_t packetBufferLen; - void* io; -}; - -struct FACTWave -{ - /* Engine references */ - FACTWaveBank *parentBank; - FACTCue *parentCue; - uint16_t index; - uint8_t notifyOnDestroy; - void *usercontext; - - /* Playback */ - uint32_t state; - float volume; - int16_t pitch; - uint8_t loopCount; - - /* Stream data */ - uint32_t streamSize; - uint32_t streamOffset; - uint8_t *streamCache; - - /* FAudio references */ - uint16_t srcChannels; - FAudioSourceVoice *voice; - FACTWaveCallback callback; -}; - -struct FACTCue -{ - /* Engine references */ - FACTSoundBank *parentBank; - FACTCue *next; - uint8_t managed; - uint16_t index; - uint8_t notifyOnDestroy; - void *usercontext; - - /* Sound data */ - FACTCueData *data; - FAUDIONAMELESS union - { - FACTVariationTable *variation; - - /* This is only used in scenarios where there is only one - * Sound; XACT does not generate variation tables for - * Cues with only one Sound. - */ - FACTSound *sound; - }; - - /* Instance data */ - float *variableValues; - float interactive; - - /* Playback */ - uint32_t state; - FACTWave *simpleWave; - FACTSoundInstance *playingSound; - FACTVariation *playingVariation; - uint32_t maxRpcReleaseTime; - - /* 3D Data */ - uint8_t active3D; - uint32_t srcChannels; - uint32_t dstChannels; - float matrixCoefficients[2 * 8]; /* Stereo input, 7.1 output */ - - /* Timer */ - uint32_t start; - uint32_t elapsed; -}; - -/* Internal functions */ - -void FACT_INTERNAL_GetNextWave( - FACTCue *cue, - FACTSound *sound, - FACTTrack *track, - FACTTrackInstance *trackInst, - FACTEvent *evt, - FACTEventInstance *evtInst -); -uint8_t FACT_INTERNAL_CreateSound(FACTCue *cue, uint16_t fadeInMS); -void FACT_INTERNAL_DestroySound(FACTSoundInstance *sound); -void FACT_INTERNAL_BeginFadeOut(FACTSoundInstance *sound, uint16_t fadeOutMS); -void FACT_INTERNAL_BeginReleaseRPC(FACTSoundInstance *sound, uint16_t releaseMS); - -void FACT_INTERNAL_SendCueNotification(FACTCue *cue, FACTNoticationsFlags flag, uint8_t type); - -/* RPC Helper Functions */ - -FACTRPC* FACT_INTERNAL_GetRPC(FACTAudioEngine *engine, uint32_t code); - -/* FACT Thread */ - -int32_t FAUDIOCALL FACT_INTERNAL_APIThread(void* enginePtr); - -/* FAudio callbacks */ - -void FACT_INTERNAL_OnBufferEnd(FAudioVoiceCallback *callback, void* pContext); -void FACT_INTERNAL_OnStreamEnd(FAudioVoiceCallback *callback); - -/* FAudioIOStream functions */ - -int32_t FACTCALL FACT_INTERNAL_DefaultReadFile( - void *hFile, - void *buffer, - uint32_t nNumberOfBytesToRead, - uint32_t *lpNumberOfBytesRead, - FACTOverlapped *lpOverlapped -); - -int32_t FACTCALL FACT_INTERNAL_DefaultGetOverlappedResult( - void *hFile, - FACTOverlapped *lpOverlapped, - uint32_t *lpNumberOfBytesTransferred, - int32_t bWait -); - -/* Parsing functions */ - -uint32_t FACT_INTERNAL_ParseAudioEngine( - FACTAudioEngine *pEngine, - const FACTRuntimeParameters *pParams -); -uint32_t FACT_INTERNAL_ParseSoundBank( - FACTAudioEngine *pEngine, - const void *pvBuffer, - uint32_t dwSize, - FACTSoundBank **ppSoundBank -); -uint32_t FACT_INTERNAL_ParseWaveBank( - FACTAudioEngine *pEngine, - void* io, - uint32_t offset, - uint32_t packetSize, - FACTReadFileCallback pRead, - FACTGetOverlappedResultCallback pOverlap, - uint16_t isStreaming, - FACTWaveBank **ppWaveBank -); - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOBase.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOBase.c deleted file mode 100644 index d9eed759..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOBase.c +++ /dev/null @@ -1,451 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAPOBase.h" -#include "FAudio_internal.h" - -/* FAPOBase Interface */ - -void CreateFAPOBase( - FAPOBase *fapo, - const FAPORegistrationProperties *pRegistrationProperties, - uint8_t *pParameterBlocks, - uint32_t uParameterBlockByteSize, - uint8_t fProducer -) { - CreateFAPOBaseWithCustomAllocatorEXT( - fapo, - pRegistrationProperties, - pParameterBlocks, - uParameterBlockByteSize, - fProducer, - FAudio_malloc, - FAudio_free, - FAudio_realloc - ); -} - -void CreateFAPOBaseWithCustomAllocatorEXT( - FAPOBase *fapo, - const FAPORegistrationProperties *pRegistrationProperties, - uint8_t *pParameterBlocks, - uint32_t uParameterBlockByteSize, - uint8_t fProducer, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { - /* Base Classes/Interfaces */ - #define ASSIGN_VT(name) \ - fapo->base.name = (name##Func) FAPOBase_##name; - ASSIGN_VT(AddRef) - ASSIGN_VT(Release) - ASSIGN_VT(GetRegistrationProperties) - ASSIGN_VT(IsInputFormatSupported) - ASSIGN_VT(IsOutputFormatSupported) - ASSIGN_VT(Initialize) - ASSIGN_VT(Reset) - ASSIGN_VT(LockForProcess) - ASSIGN_VT(UnlockForProcess) - ASSIGN_VT(CalcInputFrames) - ASSIGN_VT(CalcOutputFrames) - ASSIGN_VT(SetParameters) - ASSIGN_VT(GetParameters) - #undef ASSIGN_VT - - /* Public Virtual Functions */ - fapo->OnSetParameters = (OnSetParametersFunc) - FAPOBase_OnSetParameters; - - /* Private Variables */ - fapo->m_pRegistrationProperties = pRegistrationProperties; /* FIXME */ - fapo->m_pfnMatrixMixFunction = NULL; /* FIXME */ - fapo->m_pfl32MatrixCoefficients = NULL; /* FIXME */ - fapo->m_nSrcFormatType = 0; /* FIXME */ - fapo->m_fIsScalarMatrix = 0; /* FIXME: */ - fapo->m_fIsLocked = 0; - fapo->m_pParameterBlocks = pParameterBlocks; - fapo->m_pCurrentParameters = pParameterBlocks; - fapo->m_pCurrentParametersInternal = pParameterBlocks; - fapo->m_uCurrentParametersIndex = 0; - fapo->m_uParameterBlockByteSize = uParameterBlockByteSize; - fapo->m_fNewerResultsReady = 0; - fapo->m_fProducer = fProducer; - - /* Allocator Callbacks */ - fapo->pMalloc = customMalloc; - fapo->pFree = customFree; - fapo->pRealloc = customRealloc; - - /* Protected Variables */ - fapo->m_lReferenceCount = 1; -} - -int32_t FAPOBase_AddRef(FAPOBase *fapo) -{ - fapo->m_lReferenceCount += 1; - return fapo->m_lReferenceCount; -} - -int32_t FAPOBase_Release(FAPOBase *fapo) -{ - fapo->m_lReferenceCount -= 1; - if (fapo->m_lReferenceCount == 0) - { - fapo->Destructor(fapo); - return 0; - } - return fapo->m_lReferenceCount; -} - -uint32_t FAPOBase_GetRegistrationProperties( - FAPOBase *fapo, - FAPORegistrationProperties **ppRegistrationProperties -) { - *ppRegistrationProperties = (FAPORegistrationProperties*) fapo->pMalloc( - sizeof(FAPORegistrationProperties) - ); - FAudio_memcpy( - *ppRegistrationProperties, - fapo->m_pRegistrationProperties, - sizeof(FAPORegistrationProperties) - ); - return 0; -} - -uint32_t FAPOBase_IsInputFormatSupported( - FAPOBase *fapo, - const FAudioWaveFormatEx *pOutputFormat, - const FAudioWaveFormatEx *pRequestedInputFormat, - FAudioWaveFormatEx **ppSupportedInputFormat -) { - if ( pRequestedInputFormat->wFormatTag != FAPOBASE_DEFAULT_FORMAT_TAG || - pRequestedInputFormat->nChannels < FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS || - pRequestedInputFormat->nChannels > FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS || - pRequestedInputFormat->nSamplesPerSec < FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE || - pRequestedInputFormat->nSamplesPerSec > FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE || - pRequestedInputFormat->wBitsPerSample != FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE ) - { - if (ppSupportedInputFormat != NULL) - { - (*ppSupportedInputFormat)->wFormatTag = - FAPOBASE_DEFAULT_FORMAT_TAG; - (*ppSupportedInputFormat)->nChannels = FAudio_clamp( - pRequestedInputFormat->nChannels, - FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS, - FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS - ); - (*ppSupportedInputFormat)->nSamplesPerSec = FAudio_clamp( - pRequestedInputFormat->nSamplesPerSec, - FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE, - FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE - ); - (*ppSupportedInputFormat)->wBitsPerSample = - FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE; - } - return FAPO_E_FORMAT_UNSUPPORTED; - } - return 0; -} - -uint32_t FAPOBase_IsOutputFormatSupported( - FAPOBase *fapo, - const FAudioWaveFormatEx *pInputFormat, - const FAudioWaveFormatEx *pRequestedOutputFormat, - FAudioWaveFormatEx **ppSupportedOutputFormat -) { - if ( pRequestedOutputFormat->wFormatTag != FAPOBASE_DEFAULT_FORMAT_TAG || - pRequestedOutputFormat->nChannels < FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS || - pRequestedOutputFormat->nChannels > FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS || - pRequestedOutputFormat->nSamplesPerSec < FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE || - pRequestedOutputFormat->nSamplesPerSec > FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE || - pRequestedOutputFormat->wBitsPerSample != FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE ) - { - if (ppSupportedOutputFormat != NULL) - { - (*ppSupportedOutputFormat)->wFormatTag = - FAPOBASE_DEFAULT_FORMAT_TAG; - (*ppSupportedOutputFormat)->nChannels = FAudio_clamp( - pRequestedOutputFormat->nChannels, - FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS, - FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS - ); - (*ppSupportedOutputFormat)->nSamplesPerSec = FAudio_clamp( - pRequestedOutputFormat->nSamplesPerSec, - FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE, - FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE - ); - (*ppSupportedOutputFormat)->wBitsPerSample = - FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE; - } - return FAPO_E_FORMAT_UNSUPPORTED; - } - return 0; -} - -uint32_t FAPOBase_Initialize( - FAPOBase *fapo, - const void* pData, - uint32_t DataByteSize -) { - return 0; -} - -void FAPOBase_Reset(FAPOBase *fapo) -{ -} - -uint32_t FAPOBase_LockForProcess( - FAPOBase *fapo, - uint32_t InputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pInputLockedParameters, - uint32_t OutputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pOutputLockedParameters -) { - /* Verify parameter counts... */ - if ( InputLockedParameterCount < fapo->m_pRegistrationProperties->MinInputBufferCount || - InputLockedParameterCount > fapo->m_pRegistrationProperties->MaxInputBufferCount || - OutputLockedParameterCount < fapo->m_pRegistrationProperties->MinOutputBufferCount || - OutputLockedParameterCount > fapo->m_pRegistrationProperties->MaxOutputBufferCount ) - { - return FAUDIO_E_INVALID_ARG; - } - - - /* Validate input/output formats */ - #define VERIFY_FORMAT_FLAG(flag, prop) \ - if ( (fapo->m_pRegistrationProperties->Flags & flag) && \ - (pInputLockedParameters->pFormat->prop != pOutputLockedParameters->pFormat->prop) ) \ - { \ - return FAUDIO_E_INVALID_ARG; \ - } - VERIFY_FORMAT_FLAG(FAPO_FLAG_CHANNELS_MUST_MATCH, nChannels) - VERIFY_FORMAT_FLAG(FAPO_FLAG_FRAMERATE_MUST_MATCH, nSamplesPerSec) - VERIFY_FORMAT_FLAG(FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH, wBitsPerSample) - #undef VERIFY_FORMAT_FLAG - if ( (fapo->m_pRegistrationProperties->Flags & FAPO_FLAG_BUFFERCOUNT_MUST_MATCH) && - (InputLockedParameterCount != OutputLockedParameterCount) ) - { - return FAUDIO_E_INVALID_ARG; - } - fapo->m_fIsLocked = 1; - return 0; -} - -void FAPOBase_UnlockForProcess(FAPOBase *fapo) -{ - fapo->m_fIsLocked = 0; -} - -uint32_t FAPOBase_CalcInputFrames(FAPOBase *fapo, uint32_t OutputFrameCount) -{ - return OutputFrameCount; -} - -uint32_t FAPOBase_CalcOutputFrames(FAPOBase *fapo, uint32_t InputFrameCount) -{ - return InputFrameCount; -} - -uint32_t FAPOBase_ValidateFormatDefault( - FAPOBase *fapo, - FAudioWaveFormatEx *pFormat, - uint8_t fOverwrite -) { - if ( pFormat->wFormatTag != FAPOBASE_DEFAULT_FORMAT_TAG || - pFormat->nChannels < FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS || - pFormat->nChannels > FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS || - pFormat->nSamplesPerSec < FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE || - pFormat->nSamplesPerSec > FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE || - pFormat->wBitsPerSample != FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE ) - { - if (fOverwrite) - { - pFormat->wFormatTag = - FAPOBASE_DEFAULT_FORMAT_TAG; - pFormat->nChannels = FAudio_clamp( - pFormat->nChannels, - FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS, - FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS - ); - pFormat->nSamplesPerSec = FAudio_clamp( - pFormat->nSamplesPerSec, - FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE, - FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE - ); - pFormat->wBitsPerSample = - FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE; - } - return FAPO_E_FORMAT_UNSUPPORTED; - } - return 0; -} - -uint32_t FAPOBase_ValidateFormatPair( - FAPOBase *fapo, - const FAudioWaveFormatEx *pSupportedFormat, - FAudioWaveFormatEx *pRequestedFormat, - uint8_t fOverwrite -) { - if ( pRequestedFormat->wFormatTag != FAPOBASE_DEFAULT_FORMAT_TAG || - pRequestedFormat->nChannels < FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS || - pRequestedFormat->nChannels > FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS || - pRequestedFormat->nSamplesPerSec < FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE || - pRequestedFormat->nSamplesPerSec > FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE || - pRequestedFormat->wBitsPerSample != FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE ) - { - if (fOverwrite) - { - pRequestedFormat->wFormatTag = - FAPOBASE_DEFAULT_FORMAT_TAG; - pRequestedFormat->nChannels = FAudio_clamp( - pRequestedFormat->nChannels, - FAPOBASE_DEFAULT_FORMAT_MIN_CHANNELS, - FAPOBASE_DEFAULT_FORMAT_MAX_CHANNELS - ); - pRequestedFormat->nSamplesPerSec = FAudio_clamp( - pRequestedFormat->nSamplesPerSec, - FAPOBASE_DEFAULT_FORMAT_MIN_FRAMERATE, - FAPOBASE_DEFAULT_FORMAT_MAX_FRAMERATE - ); - pRequestedFormat->wBitsPerSample = - FAPOBASE_DEFAULT_FORMAT_BITSPERSAMPLE; - } - return FAPO_E_FORMAT_UNSUPPORTED; - } - return 0; -} - -void FAPOBase_ProcessThru( - FAPOBase *fapo, - void* pInputBuffer, - float *pOutputBuffer, - uint32_t FrameCount, - uint16_t InputChannelCount, - uint16_t OutputChannelCount, - uint8_t MixWithOutput -) { - uint32_t i, co, ci; - float *input = (float*) pInputBuffer; - - if (MixWithOutput) - { - /* TODO: SSE */ - for (i = 0; i < FrameCount; i += 1) - for (co = 0; co < OutputChannelCount; co += 1) - for (ci = 0; ci < InputChannelCount; ci += 1) - { - /* Add, don't overwrite! */ - pOutputBuffer[i * OutputChannelCount + co] += - input[i * InputChannelCount + ci]; - } - } - else - { - /* TODO: SSE */ - for (i = 0; i < FrameCount; i += 1) - for (co = 0; co < OutputChannelCount; co += 1) - for (ci = 0; ci < InputChannelCount; ci += 1) - { - /* Overwrite, don't add! */ - pOutputBuffer[i * OutputChannelCount + co] = - input[i * InputChannelCount + ci]; - } - } -} - -void FAPOBase_SetParameters( - FAPOBase *fapo, - const void* pParameters, - uint32_t ParameterByteSize -) { - FAudio_assert(!fapo->m_fProducer); - - /* User callback for validation */ - fapo->OnSetParameters( - fapo, - pParameters, - ParameterByteSize - ); - - /* Increment parameter block index... */ - fapo->m_uCurrentParametersIndex += 1; - if (fapo->m_uCurrentParametersIndex == 3) - { - fapo->m_uCurrentParametersIndex = 0; - } - fapo->m_pCurrentParametersInternal = fapo->m_pParameterBlocks + ( - fapo->m_uParameterBlockByteSize * - fapo->m_uCurrentParametersIndex - ); - - /* Copy to what will eventually be the next parameter update */ - FAudio_memcpy( - fapo->m_pCurrentParametersInternal, - pParameters, - ParameterByteSize - ); -} - -void FAPOBase_GetParameters( - FAPOBase *fapo, - void* pParameters, - uint32_t ParameterByteSize -) { - /* Copy what's current as of the last Process */ - FAudio_memcpy( - pParameters, - fapo->m_pCurrentParameters, - ParameterByteSize - ); -} - -void FAPOBase_OnSetParameters( - FAPOBase *fapo, - const void* parameters, - uint32_t parametersSize -) { -} - -uint8_t FAPOBase_ParametersChanged(FAPOBase *fapo) -{ - /* Internal will get updated when SetParameters is called */ - return fapo->m_pCurrentParametersInternal != fapo->m_pCurrentParameters; -} - -uint8_t* FAPOBase_BeginProcess(FAPOBase *fapo) -{ - /* Set the latest block as "current", this is what Process will use now */ - fapo->m_pCurrentParameters = fapo->m_pCurrentParametersInternal; - return fapo->m_pCurrentParameters; -} - -void FAPOBase_EndProcess(FAPOBase *fapo) -{ - /* I'm 100% sure my parameter block increment is wrong... */ -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX.c deleted file mode 100644 index aef9148a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX.c +++ /dev/null @@ -1,89 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAPOFX.h" -#include "FAudio_internal.h" - -uint32_t FAPOFX_CreateFX( - const FAudioGUID *clsid, - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize -) { - return FAPOFX_CreateFXWithCustomAllocatorEXT( - clsid, - pEffect, - pInitData, - InitDataByteSize, - FAudio_malloc, - FAudio_free, - FAudio_realloc - ); -} - -uint32_t FAPOFX_CreateFXWithCustomAllocatorEXT( - const FAudioGUID *clsid, - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { - #define CHECK_AND_RETURN(effect) \ - if (FAudio_memcmp(clsid, &FAPOFX_CLSID_FX##effect, sizeof(FAudioGUID)) == 0) \ - { \ - return FAPOFXCreate##effect( \ - pEffect, \ - pInitData, \ - InitDataByteSize, \ - customMalloc, \ - customFree, \ - customRealloc, \ - 0 \ - ); \ - } \ - else if (FAudio_memcmp(clsid, &FAPOFX_CLSID_FX##effect##_LEGACY, sizeof(FAudioGUID)) == 0) \ - { \ - return FAPOFXCreate##effect( \ - pEffect, \ - pInitData, \ - InitDataByteSize, \ - customMalloc, \ - customFree, \ - customRealloc, \ - 1 \ - ); \ - } - CHECK_AND_RETURN(EQ) - CHECK_AND_RETURN(MasteringLimiter) - CHECK_AND_RETURN(Reverb) - CHECK_AND_RETURN(Echo) - #undef CHECK_AND_RETURN - return -1; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_echo.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_echo.c deleted file mode 100644 index de69362b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_echo.c +++ /dev/null @@ -1,248 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAPOFX.h" -#include "FAudio_internal.h" - -/* FXEcho FAPO Implementation */ - -const FAudioGUID FAPOFX_CLSID_FXEcho = -{ - 0x5039D740, - 0xF736, - 0x449A, - { - 0x84, - 0xD3, - 0xA5, - 0x62, - 0x02, - 0x55, - 0x7B, - 0x87 - } -}; - -static FAPORegistrationProperties FXEchoProperties = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'E', 'c', 'h', 'o', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -const FAudioGUID FAPOFX_CLSID_FXEcho_LEGACY = -{ - 0xA90BC001, - 0xE897, - 0xE897, - { - 0x74, - 0x39, - 0x43, - 0x55, - 0x00, - 0x00, - 0x00, - 0x03 - } -}; - -static FAPORegistrationProperties FXEchoProperties_LEGACY = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'E', 'c', 'h', 'o', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -typedef struct FAPOFXEcho -{ - FAPOBase base; - - /* TODO */ -} FAPOFXEcho; - -uint32_t FAPOFXEcho_Initialize( - FAPOFXEcho *fapo, - const void* pData, - uint32_t DataByteSize -) { - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - fapo->base.m_pParameterBlocks + DataByteSize * offset, \ - pData, \ - DataByteSize \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - return 0; -} - -void FAPOFXEcho_Process( - FAPOFXEcho *fapo, - uint32_t InputProcessParameterCount, - const FAPOProcessBufferParameters* pInputProcessParameters, - uint32_t OutputProcessParameterCount, - FAPOProcessBufferParameters* pOutputProcessParameters, - int32_t IsEnabled -) { - FAPOBase_BeginProcess(&fapo->base); - - /* TODO */ - - FAPOBase_EndProcess(&fapo->base); -} - -void FAPOFXEcho_Free(void* fapo) -{ - FAPOFXEcho *echo = (FAPOFXEcho*) fapo; - echo->base.pFree(echo->base.m_pParameterBlocks); - echo->base.pFree(fapo); -} - -/* Public API */ - -uint32_t FAPOFXCreateEcho( - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc, - uint8_t legacy -) { - const FAPOFXEchoParameters fxdefault = - { - FAPOFXECHO_DEFAULT_WETDRYMIX, - FAPOFXECHO_DEFAULT_FEEDBACK, - FAPOFXECHO_DEFAULT_DELAY - }; - - /* Allocate... */ - FAPOFXEcho *result = (FAPOFXEcho*) customMalloc( - sizeof(FAPOFXEcho) - ); - uint8_t *params = (uint8_t*) customMalloc( - sizeof(FAPOFXEchoParameters) * 3 - ); - if (pInitData == NULL) - { - FAudio_zero(params, sizeof(FAPOFXEchoParameters) * 3); - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - params + sizeof(FAPOFXEchoParameters) * offset, \ - &fxdefault, \ - sizeof(FAPOFXEchoParameters) \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - } - else - { - FAudio_assert(InitDataByteSize == sizeof(FAPOFXEchoParameters)); - FAudio_memcpy(params, pInitData, InitDataByteSize); - FAudio_memcpy(params + InitDataByteSize, pInitData, InitDataByteSize); - FAudio_memcpy(params + (InitDataByteSize * 2), pInitData, InitDataByteSize); - } - - /* Initialize... */ - FAudio_memcpy( - &FXEchoProperties_LEGACY.clsid, - &FAPOFX_CLSID_FXEcho_LEGACY, - sizeof(FAudioGUID) - ); - FAudio_memcpy( - &FXEchoProperties.clsid, - &FAPOFX_CLSID_FXEcho, - sizeof(FAudioGUID) - ); - CreateFAPOBaseWithCustomAllocatorEXT( - &result->base, - legacy ? &FXEchoProperties_LEGACY : &FXEchoProperties, - params, - sizeof(FAPOFXEchoParameters), - 0, - customMalloc, - customFree, - customRealloc - ); - - /* Function table... */ - result->base.base.Initialize = (InitializeFunc) - FAPOFXEcho_Initialize; - result->base.base.Process = (ProcessFunc) - FAPOFXEcho_Process; - result->base.Destructor = FAPOFXEcho_Free; - - /* Finally. */ - *pEffect = &result->base.base; - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_eq.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_eq.c deleted file mode 100644 index 58b19cf0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_eq.c +++ /dev/null @@ -1,257 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAPOFX.h" -#include "FAudio_internal.h" - -/* FXEQ FAPO Implementation */ - -const FAudioGUID FAPOFX_CLSID_FXEQ = -{ - 0xF5E01117, - 0xD6C4, - 0x485A, - { - 0xA3, - 0xF5, - 0x69, - 0x51, - 0x96, - 0xF3, - 0xDB, - 0xFA - } -}; - -static FAPORegistrationProperties FXEQProperties = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'E', 'Q', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -const FAudioGUID FAPOFX_CLSID_FXEQ_LEGACY = -{ - 0xA90BC001, - 0xE897, - 0xE897, - { - 0x74, - 0x39, - 0x43, - 0x55, - 0x00, - 0x00, - 0x00, - 0x00 - } -}; - -static FAPORegistrationProperties FXEQProperties_LEGACY = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'E', 'Q', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -typedef struct FAPOFXEQ -{ - FAPOBase base; - - /* TODO */ -} FAPOFXEQ; - -uint32_t FAPOFXEQ_Initialize( - FAPOFXEQ *fapo, - const void* pData, - uint32_t DataByteSize -) { - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - fapo->base.m_pParameterBlocks + DataByteSize * offset, \ - pData, \ - DataByteSize \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - return 0; -} - -void FAPOFXEQ_Process( - FAPOFXEQ *fapo, - uint32_t InputProcessParameterCount, - const FAPOProcessBufferParameters* pInputProcessParameters, - uint32_t OutputProcessParameterCount, - FAPOProcessBufferParameters* pOutputProcessParameters, - int32_t IsEnabled -) { - FAPOBase_BeginProcess(&fapo->base); - - /* TODO */ - - FAPOBase_EndProcess(&fapo->base); -} - -void FAPOFXEQ_Free(void* fapo) -{ - FAPOFXEQ *eq = (FAPOFXEQ*) fapo; - eq->base.pFree(eq->base.m_pParameterBlocks); - eq->base.pFree(fapo); -} - -/* Public API */ - -uint32_t FAPOFXCreateEQ( - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc, - uint8_t legacy -) { - const FAPOFXEQParameters fxdefault = - { - FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_0, - FAPOFXEQ_DEFAULT_GAIN, - FAPOFXEQ_DEFAULT_BANDWIDTH, - FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_1, - FAPOFXEQ_DEFAULT_GAIN, - FAPOFXEQ_DEFAULT_BANDWIDTH, - FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_2, - FAPOFXEQ_DEFAULT_GAIN, - FAPOFXEQ_DEFAULT_BANDWIDTH, - FAPOFXEQ_DEFAULT_FREQUENCY_CENTER_3, - FAPOFXEQ_DEFAULT_GAIN, - FAPOFXEQ_DEFAULT_BANDWIDTH - }; - - /* Allocate... */ - FAPOFXEQ *result = (FAPOFXEQ*) customMalloc( - sizeof(FAPOFXEQ) - ); - uint8_t *params = (uint8_t*) customMalloc( - sizeof(FAPOFXEQParameters) * 3 - ); - if (pInitData == NULL) - { - FAudio_zero(params, sizeof(FAPOFXEQParameters) * 3); - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - params + sizeof(FAPOFXEQParameters) * offset, \ - &fxdefault, \ - sizeof(FAPOFXEQParameters) \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - } - else - { - FAudio_assert(InitDataByteSize == sizeof(FAPOFXEQParameters)); - FAudio_memcpy(params, pInitData, InitDataByteSize); - FAudio_memcpy(params + InitDataByteSize, pInitData, InitDataByteSize); - FAudio_memcpy(params + (InitDataByteSize * 2), pInitData, InitDataByteSize); - } - - /* Initialize... */ - FAudio_memcpy( - &FXEQProperties_LEGACY.clsid, - &FAPOFX_CLSID_FXEQ_LEGACY, - sizeof(FAudioGUID) - ); - FAudio_memcpy( - &FXEQProperties.clsid, - &FAPOFX_CLSID_FXEQ, - sizeof(FAudioGUID) - ); - CreateFAPOBaseWithCustomAllocatorEXT( - &result->base, - legacy ? &FXEQProperties_LEGACY : &FXEQProperties, - params, - sizeof(FAPOFXEQParameters), - 0, - customMalloc, - customFree, - customRealloc - ); - - /* Function table... */ - result->base.base.Initialize = (InitializeFunc) - FAPOFXEQ_Initialize; - result->base.base.Process = (ProcessFunc) - FAPOFXEQ_Process; - result->base.Destructor = FAPOFXEQ_Free; - - /* Finally. */ - *pEffect = &result->base.base; - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_masteringlimiter.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_masteringlimiter.c deleted file mode 100644 index 2efc53f5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_masteringlimiter.c +++ /dev/null @@ -1,247 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAPOFX.h" -#include "FAudio_internal.h" - -/* FXMasteringLimiter FAPO Implementation */ - -const FAudioGUID FAPOFX_CLSID_FXMasteringLimiter = -{ - 0xC4137916, - 0x2BE1, - 0x46FD, - { - 0x85, - 0x99, - 0x44, - 0x15, - 0x36, - 0xF4, - 0x98, - 0x56 - } -}; - -static FAPORegistrationProperties FXMasteringLimiterProperties = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'M', 'a', 's', 't', 'e', 'r', 'i', 'n', 'g', 'L', 'i', 'm', 'i', 't', 'e', 'r', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -const FAudioGUID FAPOFX_CLSID_FXMasteringLimiter_LEGACY = -{ - 0xA90BC001, - 0xE897, - 0xE897, - { - 0x74, - 0x39, - 0x43, - 0x55, - 0x00, - 0x00, - 0x00, - 0x01 - } -}; - -static FAPORegistrationProperties FXMasteringLimiterProperties_LEGACY = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'M', 'a', 's', 't', 'e', 'r', 'i', 'n', 'g', 'L', 'i', 'm', 'i', 't', 'e', 'r', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -typedef struct FAPOFXMasteringLimiter -{ - FAPOBase base; - - /* TODO */ -} FAPOFXMasteringLimiter; - -uint32_t FAPOFXMasteringLimiter_Initialize( - FAPOFXMasteringLimiter *fapo, - const void* pData, - uint32_t DataByteSize -) { - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - fapo->base.m_pParameterBlocks + DataByteSize * offset, \ - pData, \ - DataByteSize \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - return 0; -} - -void FAPOFXMasteringLimiter_Process( - FAPOFXMasteringLimiter *fapo, - uint32_t InputProcessParameterCount, - const FAPOProcessBufferParameters* pInputProcessParameters, - uint32_t OutputProcessParameterCount, - FAPOProcessBufferParameters* pOutputProcessParameters, - int32_t IsEnabled -) { - FAPOBase_BeginProcess(&fapo->base); - - /* TODO */ - - FAPOBase_EndProcess(&fapo->base); -} - -void FAPOFXMasteringLimiter_Free(void* fapo) -{ - FAPOFXMasteringLimiter *limiter = (FAPOFXMasteringLimiter*) fapo; - limiter->base.pFree(limiter->base.m_pParameterBlocks); - limiter->base.pFree(fapo); -} - -/* Public API */ - -uint32_t FAPOFXCreateMasteringLimiter( - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc, - uint8_t legacy -) { - const FAPOFXMasteringLimiterParameters fxdefault = - { - FAPOFXMASTERINGLIMITER_DEFAULT_RELEASE, - FAPOFXMASTERINGLIMITER_DEFAULT_LOUDNESS - }; - - /* Allocate... */ - FAPOFXMasteringLimiter *result = (FAPOFXMasteringLimiter*) customMalloc( - sizeof(FAPOFXMasteringLimiter) - ); - uint8_t *params = (uint8_t*) customMalloc( - sizeof(FAPOFXMasteringLimiterParameters) * 3 - ); - if (pInitData == NULL) - { - FAudio_zero(params, sizeof(FAPOFXMasteringLimiterParameters) * 3); - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - params + sizeof(FAPOFXMasteringLimiterParameters) * offset, \ - &fxdefault, \ - sizeof(FAPOFXMasteringLimiterParameters) \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - } - else - { - FAudio_assert(InitDataByteSize == sizeof(FAPOFXMasteringLimiterParameters)); - FAudio_memcpy(params, pInitData, InitDataByteSize); - FAudio_memcpy(params + InitDataByteSize, pInitData, InitDataByteSize); - FAudio_memcpy(params + (InitDataByteSize * 2), pInitData, InitDataByteSize); - } - - /* Initialize... */ - FAudio_memcpy( - &FXMasteringLimiterProperties_LEGACY.clsid, - &FAPOFX_CLSID_FXMasteringLimiter_LEGACY, - sizeof(FAudioGUID) - ); - FAudio_memcpy( - &FXMasteringLimiterProperties.clsid, - &FAPOFX_CLSID_FXMasteringLimiter, - sizeof(FAudioGUID) - ); - CreateFAPOBaseWithCustomAllocatorEXT( - &result->base, - legacy ? &FXMasteringLimiterProperties_LEGACY : &FXMasteringLimiterProperties, - params, - sizeof(FAPOFXMasteringLimiterParameters), - 0, - customMalloc, - customFree, - customRealloc - ); - - /* Function table... */ - result->base.base.Initialize = (InitializeFunc) - FAPOFXMasteringLimiter_Initialize; - result->base.base.Process = (ProcessFunc) - FAPOFXMasteringLimiter_Process; - result->base.Destructor = FAPOFXMasteringLimiter_Free; - - /* Finally. */ - *pEffect = &result->base.base; - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_reverb.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_reverb.c deleted file mode 100644 index 4f2938c2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAPOFX_reverb.c +++ /dev/null @@ -1,247 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAPOFX.h" -#include "FAudio_internal.h" - -/* FXReverb FAPO Implementation */ - -const FAudioGUID FAPOFX_CLSID_FXReverb = -{ - 0x7D9ACA56, - 0xCB68, - 0x4807, - { - 0xB6, - 0x32, - 0xB1, - 0x37, - 0x35, - 0x2E, - 0x85, - 0x96 - } -}; - -static FAPORegistrationProperties FXReverbProperties = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'R', 'e', 'v', 'e', 'r', 'b', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -const FAudioGUID FAPOFX_CLSID_FXReverb_LEGACY = -{ - 0xA90BC001, - 0xE897, - 0xE897, - { - 0x74, - 0x39, - 0x43, - 0x55, - 0x00, - 0x00, - 0x00, - 0x02 - } -}; - -static FAPORegistrationProperties FXReverbProperties_LEGACY = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'F', 'X', 'R', 'e', 'v', 'e', 'r', 'b', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -typedef struct FAPOFXReverb -{ - FAPOBase base; - - /* TODO */ -} FAPOFXReverb; - -uint32_t FAPOFXReverb_Initialize( - FAPOFXReverb *fapo, - const void* pData, - uint32_t DataByteSize -) { - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - fapo->base.m_pParameterBlocks + DataByteSize * offset, \ - pData, \ - DataByteSize \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - return 0; -} - -void FAPOFXReverb_Process( - FAPOFXReverb *fapo, - uint32_t InputProcessParameterCount, - const FAPOProcessBufferParameters* pInputProcessParameters, - uint32_t OutputProcessParameterCount, - FAPOProcessBufferParameters* pOutputProcessParameters, - int32_t IsEnabled -) { - FAPOBase_BeginProcess(&fapo->base); - - /* TODO */ - - FAPOBase_EndProcess(&fapo->base); -} - -void FAPOFXReverb_Free(void* fapo) -{ - FAPOFXReverb *reverb = (FAPOFXReverb*) fapo; - reverb->base.pFree(reverb->base.m_pParameterBlocks); - reverb->base.pFree(fapo); -} - -/* Public API */ - -uint32_t FAPOFXCreateReverb( - FAPO **pEffect, - const void *pInitData, - uint32_t InitDataByteSize, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc, - uint8_t legacy -) { - const FAPOFXReverbParameters fxdefault = - { - FAPOFXREVERB_DEFAULT_DIFFUSION, - FAPOFXREVERB_DEFAULT_ROOMSIZE, - }; - - /* Allocate... */ - FAPOFXReverb *result = (FAPOFXReverb*) customMalloc( - sizeof(FAPOFXReverb) - ); - uint8_t *params = (uint8_t*) customMalloc( - sizeof(FAPOFXReverbParameters) * 3 - ); - if (pInitData == NULL) - { - FAudio_zero(params, sizeof(FAPOFXReverbParameters) * 3); - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - params + sizeof(FAPOFXReverbParameters) * offset, \ - &fxdefault, \ - sizeof(FAPOFXReverbParameters) \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - } - else - { - FAudio_assert(InitDataByteSize == sizeof(FAPOFXReverbParameters)); - FAudio_memcpy(params, pInitData, InitDataByteSize); - FAudio_memcpy(params + InitDataByteSize, pInitData, InitDataByteSize); - FAudio_memcpy(params + (InitDataByteSize * 2), pInitData, InitDataByteSize); - } - - /* Initialize... */ - FAudio_memcpy( - &FXReverbProperties_LEGACY.clsid, - &FAPOFX_CLSID_FXReverb_LEGACY, - sizeof(FAudioGUID) - ); - FAudio_memcpy( - &FXReverbProperties.clsid, - &FAPOFX_CLSID_FXReverb, - sizeof(FAudioGUID) - ); - CreateFAPOBaseWithCustomAllocatorEXT( - &result->base, - legacy ? &FXReverbProperties_LEGACY : &FXReverbProperties, - params, - sizeof(FAPOFXReverbParameters), - 0, - customMalloc, - customFree, - customRealloc - ); - - /* Function table... */ - result->base.base.Initialize = (InitializeFunc) - FAPOFXReverb_Initialize; - result->base.base.Process = (ProcessFunc) - FAPOFXReverb_Process; - result->base.Destructor = FAPOFXReverb_Free; - - /* Finally. */ - *pEffect = &result->base.base; - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio.c deleted file mode 100644 index be3b0381..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio.c +++ /dev/null @@ -1,3203 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAudio_internal.h" - -#define MAKE_SUBFORMAT_GUID(guid, fmt) \ - FAudioGUID DATAFORMAT_SUBTYPE_##guid = \ - { \ - (uint16_t) (fmt), \ - 0x0000, \ - 0x0010, \ - { \ - 0x80, \ - 0x00, \ - 0x00, \ - 0xAA, \ - 0x00, \ - 0x38, \ - 0x9B, \ - 0x71 \ - } \ - } -MAKE_SUBFORMAT_GUID(PCM, 1); -MAKE_SUBFORMAT_GUID(ADPCM, 2); -MAKE_SUBFORMAT_GUID(IEEE_FLOAT, 3); -MAKE_SUBFORMAT_GUID(XMAUDIO2, FAUDIO_FORMAT_XMAUDIO2); -MAKE_SUBFORMAT_GUID(WMAUDIO2, FAUDIO_FORMAT_WMAUDIO2); -MAKE_SUBFORMAT_GUID(WMAUDIO3, FAUDIO_FORMAT_WMAUDIO3); -MAKE_SUBFORMAT_GUID(WMAUDIO_LOSSLESS, FAUDIO_FORMAT_WMAUDIO_LOSSLESS); -#undef MAKE_SUBFORMAT_GUID - -#ifdef FAUDIO_DUMP_VOICES -static void FAudio_DUMPVOICE_Init(const FAudioSourceVoice *voice); -static void FAudio_DUMPVOICE_Finalize(const FAudioSourceVoice *voice); -static void FAudio_DUMPVOICE_WriteBuffer( - const FAudioSourceVoice *voice, - const FAudioBuffer *pBuffer, - const FAudioBufferWMA *pBufferWMA, - const uint32_t playBegin, - const uint32_t playLength -); -#endif /* FAUDIO_DUMP_VOICES */ - -/* FAudio Version */ - -uint32_t FAudioLinkedVersion(void) -{ - return FAUDIO_COMPILED_VERSION; -} - -/* FAudio Interface */ - -uint32_t FAudioCreate( - FAudio **ppFAudio, - uint32_t Flags, - FAudioProcessor XAudio2Processor -) { - FAudioCOMConstructEXT(ppFAudio, FAUDIO_TARGET_VERSION); - FAudio_Initialize(*ppFAudio, Flags, XAudio2Processor); - return 0; -} - -uint32_t FAudioCOMConstructEXT(FAudio **ppFAudio, uint8_t version) -{ - return FAudioCOMConstructWithCustomAllocatorEXT( - ppFAudio, - version, - FAudio_malloc, - FAudio_free, - FAudio_realloc - ); -} - -uint32_t FAudioCreateWithCustomAllocatorEXT( - FAudio **ppFAudio, - uint32_t Flags, - FAudioProcessor XAudio2Processor, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { - FAudioCOMConstructWithCustomAllocatorEXT( - ppFAudio, - FAUDIO_TARGET_VERSION, - customMalloc, - customFree, - customRealloc - ); - FAudio_Initialize(*ppFAudio, Flags, XAudio2Processor); - return 0; -} - -uint32_t FAudioCOMConstructWithCustomAllocatorEXT( - FAudio **ppFAudio, - uint8_t version, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { -#ifndef FAUDIO_DISABLE_DEBUGCONFIGURATION - FAudioDebugConfiguration debugInit = {0}; -#endif /* FAUDIO_DISABLE_DEBUGCONFIGURATION */ - FAudio_PlatformAddRef(); - *ppFAudio = (FAudio*) customMalloc(sizeof(FAudio)); - FAudio_zero(*ppFAudio, sizeof(FAudio)); - (*ppFAudio)->version = version; -#ifndef FAUDIO_DISABLE_DEBUGCONFIGURATION - FAudio_SetDebugConfiguration(*ppFAudio, &debugInit, NULL); -#endif /* FAUDIO_DISABLE_DEBUGCONFIGURATION */ - (*ppFAudio)->sourceLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE((*ppFAudio), (*ppFAudio)->sourceLock) - (*ppFAudio)->submixLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE((*ppFAudio), (*ppFAudio)->submixLock) - (*ppFAudio)->callbackLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE((*ppFAudio), (*ppFAudio)->callbackLock) - (*ppFAudio)->operationLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE((*ppFAudio), (*ppFAudio)->operationLock) - (*ppFAudio)->pMalloc = customMalloc; - (*ppFAudio)->pFree = customFree; - (*ppFAudio)->pRealloc = customRealloc; - (*ppFAudio)->refcount = 1; - return 0; -} - -uint32_t FAudio_AddRef(FAudio *audio) -{ - LOG_API_ENTER(audio) - audio->refcount += 1; - LOG_API_EXIT(audio) - return audio->refcount; -} - -uint32_t FAudio_Release(FAudio *audio) -{ - uint32_t refcount; - LOG_API_ENTER(audio) - audio->refcount -= 1; - refcount = audio->refcount; - if (audio->refcount == 0) - { - FAudio_OPERATIONSET_ClearAll(audio); - FAudio_StopEngine(audio); - audio->pFree(audio->decodeCache); - audio->pFree(audio->resampleCache); - audio->pFree(audio->effectChainCache); - LOG_MUTEX_DESTROY(audio, audio->sourceLock) - FAudio_PlatformDestroyMutex(audio->sourceLock); - LOG_MUTEX_DESTROY(audio, audio->submixLock) - FAudio_PlatformDestroyMutex(audio->submixLock); - LOG_MUTEX_DESTROY(audio, audio->callbackLock) - FAudio_PlatformDestroyMutex(audio->callbackLock); - LOG_MUTEX_DESTROY(audio, audio->operationLock) - FAudio_PlatformDestroyMutex(audio->operationLock); - audio->pFree(audio); - FAudio_PlatformRelease(); - } - else - { - LOG_API_EXIT(audio) - } - return refcount; -} - -uint32_t FAudio_GetDeviceCount(FAudio *audio, uint32_t *pCount) -{ - LOG_API_ENTER(audio) - *pCount = FAudio_PlatformGetDeviceCount(); - LOG_API_EXIT(audio) - return 0; -} - -uint32_t FAudio_GetDeviceDetails( - FAudio *audio, - uint32_t Index, - FAudioDeviceDetails *pDeviceDetails -) { - uint32_t result; - LOG_API_ENTER(audio) - result = FAudio_PlatformGetDeviceDetails(Index, pDeviceDetails); - LOG_API_EXIT(audio) - return result; -} - -uint32_t FAudio_Initialize( - FAudio *audio, - uint32_t Flags, - FAudioProcessor XAudio2Processor -) { - LOG_API_ENTER(audio) - FAudio_assert(Flags == 0 || Flags == FAUDIO_DEBUG_ENGINE); - FAudio_assert(XAudio2Processor == FAUDIO_DEFAULT_PROCESSOR); - - audio->initFlags = Flags; - - /* FIXME: This is lazy... */ - audio->decodeCache = (float*) audio->pMalloc(sizeof(float)); - audio->resampleCache = (float*) audio->pMalloc(sizeof(float)); - audio->decodeSamples = 1; - audio->resampleSamples = 1; - - FAudio_StartEngine(audio); - LOG_API_EXIT(audio) - return 0; -} - -uint32_t FAudio_RegisterForCallbacks( - FAudio *audio, - FAudioEngineCallback *pCallback -) { - LOG_API_ENTER(audio) - LinkedList_AddEntry( - &audio->callbacks, - pCallback, - audio->callbackLock, - audio->pMalloc - ); - LOG_API_EXIT(audio) - return 0; -} - -void FAudio_UnregisterForCallbacks( - FAudio *audio, - FAudioEngineCallback *pCallback -) { - LOG_API_ENTER(audio) - LinkedList_RemoveEntry( - &audio->callbacks, - pCallback, - audio->callbackLock, - audio->pFree - ); - LOG_API_EXIT(audio) -} - -uint32_t FAudio_CreateSourceVoice( - FAudio *audio, - FAudioSourceVoice **ppSourceVoice, - const FAudioWaveFormatEx *pSourceFormat, - uint32_t Flags, - float MaxFrequencyRatio, - FAudioVoiceCallback *pCallback, - const FAudioVoiceSends *pSendList, - const FAudioEffectChain *pEffectChain -) { - uint32_t i; - - LOG_API_ENTER(audio) - LOG_FORMAT(audio, pSourceFormat) - - *ppSourceVoice = (FAudioSourceVoice*) audio->pMalloc(sizeof(FAudioVoice)); - FAudio_zero(*ppSourceVoice, sizeof(FAudioSourceVoice)); - (*ppSourceVoice)->audio = audio; - (*ppSourceVoice)->type = FAUDIO_VOICE_SOURCE; - (*ppSourceVoice)->flags = Flags; - (*ppSourceVoice)->filter.Type = FAUDIO_DEFAULT_FILTER_TYPE; - (*ppSourceVoice)->filter.Frequency = FAUDIO_DEFAULT_FILTER_FREQUENCY; - (*ppSourceVoice)->filter.OneOverQ = FAUDIO_DEFAULT_FILTER_ONEOVERQ; - (*ppSourceVoice)->sendLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSourceVoice)->sendLock) - (*ppSourceVoice)->effectLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSourceVoice)->effectLock) - (*ppSourceVoice)->filterLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSourceVoice)->filterLock) - (*ppSourceVoice)->volumeLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSourceVoice)->volumeLock) - - /* Source Properties */ - FAudio_assert(MaxFrequencyRatio <= FAUDIO_MAX_FREQ_RATIO); - (*ppSourceVoice)->src.maxFreqRatio = MaxFrequencyRatio; - - if ( pSourceFormat->wFormatTag == FAUDIO_FORMAT_PCM || - pSourceFormat->wFormatTag == FAUDIO_FORMAT_IEEE_FLOAT || - pSourceFormat->wFormatTag == FAUDIO_FORMAT_WMAUDIO2 ) - { - FAudioWaveFormatExtensible *fmtex = (FAudioWaveFormatExtensible*) audio->pMalloc( - sizeof(FAudioWaveFormatExtensible) - ); - /* convert PCM to EXTENSIBLE */ - fmtex->Format.wFormatTag = FAUDIO_FORMAT_EXTENSIBLE; - fmtex->Format.nChannels = pSourceFormat->nChannels; - fmtex->Format.nSamplesPerSec = pSourceFormat->nSamplesPerSec; - fmtex->Format.nAvgBytesPerSec = pSourceFormat->nAvgBytesPerSec; - fmtex->Format.nBlockAlign = pSourceFormat->nBlockAlign; - fmtex->Format.wBitsPerSample = pSourceFormat->wBitsPerSample; - fmtex->Format.cbSize = sizeof(FAudioWaveFormatExtensible) - sizeof(FAudioWaveFormatEx); - fmtex->Samples.wValidBitsPerSample = pSourceFormat->wBitsPerSample; - fmtex->dwChannelMask = 0; - if (pSourceFormat->wFormatTag == FAUDIO_FORMAT_PCM) - { - FAudio_memcpy(&fmtex->SubFormat, &DATAFORMAT_SUBTYPE_PCM, sizeof(FAudioGUID)); - } - else if (pSourceFormat->wFormatTag == FAUDIO_FORMAT_IEEE_FLOAT) - { - FAudio_memcpy(&fmtex->SubFormat, &DATAFORMAT_SUBTYPE_IEEE_FLOAT, sizeof(FAudioGUID)); - } - else if (pSourceFormat->wFormatTag == FAUDIO_FORMAT_WMAUDIO2) - { - FAudio_memcpy(&fmtex->SubFormat, &DATAFORMAT_SUBTYPE_WMAUDIO2, sizeof(FAudioGUID)); - } - (*ppSourceVoice)->src.format = &fmtex->Format; - } - else if (pSourceFormat->wFormatTag == FAUDIO_FORMAT_MSADPCM) - { - FAudioADPCMWaveFormat *fmtex = (FAudioADPCMWaveFormat*) audio->pMalloc( - sizeof(FAudioADPCMWaveFormat) - ); - - /* Copy what we can, ideally the sizes match! */ - size_t cbSize = sizeof(FAudioWaveFormatEx) + pSourceFormat->cbSize; - FAudio_memcpy( - fmtex, - pSourceFormat, - FAudio_min(cbSize, sizeof(FAudioADPCMWaveFormat)) - ); - if (cbSize < sizeof(FAudioADPCMWaveFormat)) - { - FAudio_zero( - ((uint8_t*) fmtex) + cbSize, - sizeof(FAudioADPCMWaveFormat) - cbSize - ); - } - - /* XAudio2 does not validate this input! */ - fmtex->wfx.cbSize = sizeof(FAudioADPCMWaveFormat) - sizeof(FAudioWaveFormatEx); - fmtex->wSamplesPerBlock = (( - fmtex->wfx.nBlockAlign / fmtex->wfx.nChannels - ) - 6) * 2; - (*ppSourceVoice)->src.format = &fmtex->wfx; - } - else if (pSourceFormat->wFormatTag == FAUDIO_FORMAT_XMAUDIO2) - { - FAudioXMA2WaveFormat *fmtex = (FAudioXMA2WaveFormat*) audio->pMalloc( - sizeof(FAudioXMA2WaveFormat) - ); - - /* Copy what we can, ideally the sizes match! */ - size_t cbSize = sizeof(FAudioWaveFormatEx) + pSourceFormat->cbSize; - FAudio_memcpy( - fmtex, - pSourceFormat, - FAudio_min(cbSize, sizeof(FAudioXMA2WaveFormat)) - ); - if (cbSize < sizeof(FAudioXMA2WaveFormat)) - { - FAudio_zero( - ((uint8_t*) fmtex) + cbSize, - sizeof(FAudioADPCMWaveFormat) - cbSize - ); - } - - /* Does XAudio2 validate this input?! */ - fmtex->wfx.cbSize = sizeof(FAudioXMA2WaveFormat) - sizeof(FAudioWaveFormatEx); - (*ppSourceVoice)->src.format = &fmtex->wfx; - } - else - { - /* direct copy anything else */ - (*ppSourceVoice)->src.format = (FAudioWaveFormatEx*) audio->pMalloc( - sizeof(FAudioWaveFormatEx) + pSourceFormat->cbSize - ); - FAudio_memcpy( - (*ppSourceVoice)->src.format, - pSourceFormat, - sizeof(FAudioWaveFormatEx) + pSourceFormat->cbSize - ); - } - - (*ppSourceVoice)->src.callback = pCallback; - (*ppSourceVoice)->src.active = 0; - (*ppSourceVoice)->src.freqRatio = 1.0f; - (*ppSourceVoice)->src.totalSamples = 0; - (*ppSourceVoice)->src.bufferList = NULL; - (*ppSourceVoice)->src.flushList = NULL; - (*ppSourceVoice)->src.bufferLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSourceVoice)->src.bufferLock) - - if ((*ppSourceVoice)->src.format->wFormatTag == FAUDIO_FORMAT_EXTENSIBLE) - { - FAudioWaveFormatExtensible *fmtex = (FAudioWaveFormatExtensible*) (*ppSourceVoice)->src.format; - - #define COMPARE_GUID(type) \ - (FAudio_memcmp( \ - &fmtex->SubFormat, \ - &DATAFORMAT_SUBTYPE_##type, \ - sizeof(FAudioGUID) \ - ) == 0) - if (COMPARE_GUID(PCM)) - { - #define DECODER(bit) \ - if (fmtex->Format.wBitsPerSample == bit) \ - { \ - (*ppSourceVoice)->src.decode = FAudio_INTERNAL_DecodePCM##bit; \ - } - DECODER(16) - else DECODER(8) - else DECODER(24) - else DECODER(32) - else - { - LOG_ERROR( - audio, - "Unrecognized wBitsPerSample: %d", - fmtex->Format.wBitsPerSample - ) - FAudio_assert(0 && "Unrecognized wBitsPerSample!"); - } - #undef DECODER - } - else if (COMPARE_GUID(IEEE_FLOAT)) - { - /* FIXME: Weird behavior! - * Prototype creates a source with the IEEE_FLOAT tag, - * but it's actually PCM16. It seems to prioritize - * wBitsPerSample over the format tag. Not sure if we - * should fold this section into the section above...? - * -flibit - */ - if (fmtex->Format.wBitsPerSample == 16) - { - (*ppSourceVoice)->src.decode = FAudio_INTERNAL_DecodePCM16; - } - else - { - (*ppSourceVoice)->src.decode = FAudio_INTERNAL_DecodePCM32F; - } - } - else if ( COMPARE_GUID(WMAUDIO2) || - COMPARE_GUID(WMAUDIO3) || - COMPARE_GUID(WMAUDIO_LOSSLESS) ) - { -#ifdef HAVE_WMADEC - if (FAudio_WMADEC_init(*ppSourceVoice, fmtex->SubFormat.Data1) != 0) - { - (*ppSourceVoice)->src.decode = FAudio_INTERNAL_DecodeWMAERROR; - } -#else - FAudio_assert(0 && "xWMA is not supported!"); - (*ppSourceVoice)->src.decode = FAudio_INTERNAL_DecodeWMAERROR; -#endif /* HAVE_WMADEC */ - } - else - { - FAudio_assert(0 && "Unsupported WAVEFORMATEXTENSIBLE subtype!"); - } - #undef COMPARE_GUID - } - else if ((*ppSourceVoice)->src.format->wFormatTag == FAUDIO_FORMAT_XMAUDIO2) - { -#ifdef HAVE_WMADEC - if (FAudio_WMADEC_init(*ppSourceVoice, FAUDIO_FORMAT_XMAUDIO2) != 0) - { - (*ppSourceVoice)->src.decode = FAudio_INTERNAL_DecodeWMAERROR; - } -#else - FAudio_assert(0 && "XMA2 is not supported!"); - (*ppSourceVoice)->src.decode = FAudio_INTERNAL_DecodeWMAERROR; -#endif /* HAVE_WMADEC */ - } - else if ((*ppSourceVoice)->src.format->wFormatTag == FAUDIO_FORMAT_MSADPCM) - { - (*ppSourceVoice)->src.decode = ((*ppSourceVoice)->src.format->nChannels == 2) ? - FAudio_INTERNAL_DecodeStereoMSADPCM : - FAudio_INTERNAL_DecodeMonoMSADPCM; - } - else - { - FAudio_assert(0 && "Unsupported format tag!"); - } - - if ((*ppSourceVoice)->src.format->nChannels == 1) - { - (*ppSourceVoice)->src.resample = FAudio_INTERNAL_ResampleMono; - } - else if ((*ppSourceVoice)->src.format->nChannels == 2) - { - (*ppSourceVoice)->src.resample = FAudio_INTERNAL_ResampleStereo; - } - else - { - (*ppSourceVoice)->src.resample = FAudio_INTERNAL_ResampleGeneric; - } - - (*ppSourceVoice)->src.curBufferOffset = 0; - - /* Sends/Effects */ - FAudio_INTERNAL_VoiceOutputFrequency(*ppSourceVoice, pSendList); - FAudioVoice_SetEffectChain(*ppSourceVoice, pEffectChain); - - /* Default Levels */ - (*ppSourceVoice)->volume = 1.0f; - (*ppSourceVoice)->channelVolume = (float*) audio->pMalloc( - sizeof(float) * (*ppSourceVoice)->outputChannels - ); - for (i = 0; i < (*ppSourceVoice)->outputChannels; i += 1) - { - (*ppSourceVoice)->channelVolume[i] = 1.0f; - } - - FAudioVoice_SetOutputVoices(*ppSourceVoice, pSendList); - - /* Filters */ - if (Flags & FAUDIO_VOICE_USEFILTER) - { - (*ppSourceVoice)->filterState = (FAudioFilterState*) audio->pMalloc( - sizeof(FAudioFilterState) * (*ppSourceVoice)->src.format->nChannels - ); - FAudio_zero( - (*ppSourceVoice)->filterState, - sizeof(FAudioFilterState) * (*ppSourceVoice)->src.format->nChannels - ); - } - - /* Sample Storage */ - (*ppSourceVoice)->src.decodeSamples = (uint32_t) (FAudio_ceil( - (double) audio->updateSize * - (double) MaxFrequencyRatio * - (double) (*ppSourceVoice)->src.format->nSamplesPerSec / - (double) audio->master->master.inputSampleRate - )) + EXTRA_DECODE_PADDING * (*ppSourceVoice)->src.format->nChannels; - FAudio_INTERNAL_ResizeDecodeCache( - audio, - ((*ppSourceVoice)->src.decodeSamples + EXTRA_DECODE_PADDING) * (*ppSourceVoice)->src.format->nChannels - ); - - LOG_INFO(audio, "-> %p", (void*) (*ppSourceVoice)) - - /* Add to list, finally. */ - LinkedList_PrependEntry( - &audio->sources, - *ppSourceVoice, - audio->sourceLock, - audio->pMalloc - ); - FAudio_AddRef(audio); - -#ifdef FAUDIO_DUMP_VOICES - FAudio_DUMPVOICE_Init(*ppSourceVoice); -#endif /* FAUDIO_DUMP_VOICES */ - - LOG_API_EXIT(audio) - return 0; -} - -uint32_t FAudio_CreateSubmixVoice( - FAudio *audio, - FAudioSubmixVoice **ppSubmixVoice, - uint32_t InputChannels, - uint32_t InputSampleRate, - uint32_t Flags, - uint32_t ProcessingStage, - const FAudioVoiceSends *pSendList, - const FAudioEffectChain *pEffectChain -) { - uint32_t i; - - LOG_API_ENTER(audio) - - *ppSubmixVoice = (FAudioSubmixVoice*) audio->pMalloc(sizeof(FAudioVoice)); - FAudio_zero(*ppSubmixVoice, sizeof(FAudioSubmixVoice)); - (*ppSubmixVoice)->audio = audio; - (*ppSubmixVoice)->type = FAUDIO_VOICE_SUBMIX; - (*ppSubmixVoice)->flags = Flags; - (*ppSubmixVoice)->filter.Type = FAUDIO_DEFAULT_FILTER_TYPE; - (*ppSubmixVoice)->filter.Frequency = FAUDIO_DEFAULT_FILTER_FREQUENCY; - (*ppSubmixVoice)->filter.OneOverQ = FAUDIO_DEFAULT_FILTER_ONEOVERQ; - (*ppSubmixVoice)->sendLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSubmixVoice)->sendLock) - (*ppSubmixVoice)->effectLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSubmixVoice)->effectLock) - (*ppSubmixVoice)->filterLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSubmixVoice)->filterLock) - (*ppSubmixVoice)->volumeLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppSubmixVoice)->volumeLock) - - /* Submix Properties */ - (*ppSubmixVoice)->mix.inputChannels = InputChannels; - (*ppSubmixVoice)->mix.inputSampleRate = InputSampleRate; - (*ppSubmixVoice)->mix.processingStage = ProcessingStage; - - /* Resampler */ - if (InputChannels == 1) - { - (*ppSubmixVoice)->mix.resample = FAudio_INTERNAL_ResampleMono; - } - else if (InputChannels == 2) - { - (*ppSubmixVoice)->mix.resample = FAudio_INTERNAL_ResampleStereo; - } - else - { - (*ppSubmixVoice)->mix.resample = FAudio_INTERNAL_ResampleGeneric; - } - - /* Sample Storage */ - (*ppSubmixVoice)->mix.inputSamples = ((uint32_t) FAudio_ceil( - audio->updateSize * - (double) InputSampleRate / - (double) audio->master->master.inputSampleRate - ) + EXTRA_DECODE_PADDING) * InputChannels; - (*ppSubmixVoice)->mix.inputCache = (float*) audio->pMalloc( - sizeof(float) * (*ppSubmixVoice)->mix.inputSamples - ); - FAudio_zero( /* Zero this now, for the first update */ - (*ppSubmixVoice)->mix.inputCache, - sizeof(float) * (*ppSubmixVoice)->mix.inputSamples - ); - - /* Sends/Effects */ - FAudio_INTERNAL_VoiceOutputFrequency(*ppSubmixVoice, pSendList); - FAudioVoice_SetEffectChain(*ppSubmixVoice, pEffectChain); - - /* Default Levels */ - (*ppSubmixVoice)->volume = 1.0f; - (*ppSubmixVoice)->channelVolume = (float*) audio->pMalloc( - sizeof(float) * (*ppSubmixVoice)->outputChannels - ); - for (i = 0; i < (*ppSubmixVoice)->outputChannels; i += 1) - { - (*ppSubmixVoice)->channelVolume[i] = 1.0f; - } - - FAudioVoice_SetOutputVoices(*ppSubmixVoice, pSendList); - - /* Filters */ - if (Flags & FAUDIO_VOICE_USEFILTER) - { - (*ppSubmixVoice)->filterState = (FAudioFilterState*) audio->pMalloc( - sizeof(FAudioFilterState) * InputChannels - ); - FAudio_zero( - (*ppSubmixVoice)->filterState, - sizeof(FAudioFilterState) * InputChannels - ); - } - - /* Add to list, finally. */ - FAudio_INTERNAL_InsertSubmixSorted( - &audio->submixes, - *ppSubmixVoice, - audio->submixLock, - audio->pMalloc - ); - FAudio_AddRef(audio); - - LOG_API_EXIT(audio) - return 0; -} - -uint32_t FAudio_CreateMasteringVoice( - FAudio *audio, - FAudioMasteringVoice **ppMasteringVoice, - uint32_t InputChannels, - uint32_t InputSampleRate, - uint32_t Flags, - uint32_t DeviceIndex, - const FAudioEffectChain *pEffectChain -) { - FAudioDeviceDetails details; - - LOG_API_ENTER(audio) - - /* For now we only support one allocated master voice at a time */ - FAudio_assert(audio->master == NULL); - - if (FAudio_GetDeviceDetails(audio, DeviceIndex, &details) != 0) - { - return FAUDIO_E_INVALID_CALL; - } - - *ppMasteringVoice = (FAudioMasteringVoice*) audio->pMalloc(sizeof(FAudioVoice)); - FAudio_zero(*ppMasteringVoice, sizeof(FAudioMasteringVoice)); - (*ppMasteringVoice)->audio = audio; - (*ppMasteringVoice)->type = FAUDIO_VOICE_MASTER; - (*ppMasteringVoice)->flags = Flags; - (*ppMasteringVoice)->effectLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppMasteringVoice)->effectLock) - (*ppMasteringVoice)->volumeLock = FAudio_PlatformCreateMutex(); - LOG_MUTEX_CREATE(audio, (*ppMasteringVoice)->volumeLock) - - /* Default Levels */ - (*ppMasteringVoice)->volume = 1.0f; - - /* Master Properties */ - (*ppMasteringVoice)->master.inputChannels = (InputChannels == FAUDIO_DEFAULT_CHANNELS) ? - details.OutputFormat.Format.nChannels : - InputChannels; - (*ppMasteringVoice)->master.inputSampleRate = (InputSampleRate == FAUDIO_DEFAULT_SAMPLERATE) ? - details.OutputFormat.Format.nSamplesPerSec : - InputSampleRate; - - /* Sends/Effects */ - FAudio_zero(&(*ppMasteringVoice)->sends, sizeof(FAudioVoiceSends)); - FAudioVoice_SetEffectChain(*ppMasteringVoice, pEffectChain); - - /* This is now safe enough to assign */ - audio->master = *ppMasteringVoice; - - /* Build the device format. - * The most unintuitive part of this is the use of outputChannels - * instead of master.inputChannels. Bizarrely, the effect chain can - * dictate the _actual_ output channel count, and when the channel count - * mismatches, we have to add a staging buffer for effects to process on - * before ultimately copying the final result to the device. ARGH. - */ - WriteWaveFormatExtensible( - &audio->mixFormat, - audio->master->outputChannels, - audio->master->master.inputSampleRate, - &DATAFORMAT_SUBTYPE_IEEE_FLOAT - ); - - /* Platform Device */ - FAudio_AddRef(audio); - FAudio_PlatformInit( - audio, - audio->initFlags, - DeviceIndex, - &audio->mixFormat, - &audio->updateSize, - &audio->platform - ); - if (audio->platform == NULL) - { - FAudioVoice_DestroyVoice(*ppMasteringVoice); - *ppMasteringVoice = NULL; - - /* Not the best code, but it's probably true? */ - return FAUDIO_E_DEVICE_INVALIDATED; - } - audio->master->outputChannels = audio->mixFormat.Format.nChannels; - audio->master->master.inputSampleRate = audio->mixFormat.Format.nSamplesPerSec; - - /* Effect Chain Cache */ - if ((*ppMasteringVoice)->master.inputChannels != (*ppMasteringVoice)->outputChannels) - { - (*ppMasteringVoice)->master.effectCache = (float*) audio->pMalloc( - sizeof(float) * - audio->updateSize * - (*ppMasteringVoice)->master.inputChannels - ); - } - - LOG_API_EXIT(audio) - return 0; -} - -uint32_t FAudio_CreateMasteringVoice8( - FAudio *audio, - FAudioMasteringVoice **ppMasteringVoice, - uint32_t InputChannels, - uint32_t InputSampleRate, - uint32_t Flags, - uint16_t *szDeviceId, - const FAudioEffectChain *pEffectChain, - FAudioStreamCategory StreamCategory -) { - uint32_t DeviceIndex, retval; - - LOG_API_ENTER(audio) - - /* Eventually, we'll want the old CreateMastering to call the new one. - * That will depend on us being able to use DeviceID though. - * For now, use our little ID hack to turn szDeviceId into DeviceIndex. - * -flibit - */ - if (szDeviceId == NULL || szDeviceId[0] == 0) - { - DeviceIndex = 0; - } - else - { - DeviceIndex = szDeviceId[0] - L'0'; - if (DeviceIndex > FAudio_PlatformGetDeviceCount()) - { - DeviceIndex = 0; - } - } - - /* Note that StreamCategory is ignored! */ - retval = FAudio_CreateMasteringVoice( - audio, - ppMasteringVoice, - InputChannels, - InputSampleRate, - Flags, - DeviceIndex, - pEffectChain - ); - - LOG_API_EXIT(audio) - return retval; -} - -void FAudio_SetEngineProcedureEXT( - FAudio *audio, - FAudioEngineProcedureEXT clientEngineProc, - void *user -) { - LOG_API_ENTER(audio) - audio->pClientEngineProc = clientEngineProc; - audio->clientEngineUser = user; - LOG_API_EXIT(audio) -} - -uint32_t FAudio_StartEngine(FAudio *audio) -{ - LOG_API_ENTER(audio) - audio->active = 1; - LOG_API_EXIT(audio) - return 0; -} - -void FAudio_StopEngine(FAudio *audio) -{ - LOG_API_ENTER(audio) - audio->active = 0; - FAudio_OPERATIONSET_CommitAll(audio); - FAudio_OPERATIONSET_Execute(audio); - LOG_API_EXIT(audio) -} - -uint32_t FAudio_CommitOperationSet(FAudio *audio, uint32_t OperationSet) -{ - LOG_API_ENTER(audio) - if (OperationSet == FAUDIO_COMMIT_ALL) - { - FAudio_OPERATIONSET_CommitAll(audio); - } - else - { - FAudio_OPERATIONSET_Commit(audio, OperationSet); - } - LOG_API_EXIT(audio) - return 0; -} - -uint32_t FAudio_CommitChanges(FAudio *audio) -{ - FAudio_Log( - "IF YOU CAN READ THIS, YOUR PROGRAM IS ABOUT TO BREAK!" - "\n\nEither you or somebody else is using FAudio_CommitChanges," - "\nwhen they should be using FAudio_CommitOperationSet instead." - "\n\nIf your program calls this, move to CommitOperationSet." - "\n\nIf somebody else is calling this, find out who it is and" - "\nfile a bug report with them ASAP." - ); - - /* Seriously, this is like the worst possible thing short of no-oping. - * For the love-a Pete, just migrate, do it, what is wrong with you - */ - return FAudio_CommitOperationSet(audio, FAUDIO_COMMIT_ALL); -} - -void FAudio_GetPerformanceData( - FAudio *audio, - FAudioPerformanceData *pPerfData -) { - LinkedList *list; - FAudioSourceVoice *source; - - LOG_API_ENTER(audio) - - FAudio_zero(pPerfData, sizeof(FAudioPerformanceData)); - - FAudio_PlatformLockMutex(audio->sourceLock); - LOG_MUTEX_LOCK(audio, audio->sourceLock) - list = audio->sources; - while (list != NULL) - { - source = (FAudioSourceVoice*) list->entry; - pPerfData->TotalSourceVoiceCount += 1; - if (source->src.active) - { - pPerfData->ActiveSourceVoiceCount += 1; - } - list = list->next; - } - FAudio_PlatformUnlockMutex(audio->sourceLock); - LOG_MUTEX_UNLOCK(audio, audio->sourceLock) - - FAudio_PlatformLockMutex(audio->submixLock); - LOG_MUTEX_LOCK(audio, audio->submixLock) - list = audio->submixes; - while (list != NULL) - { - pPerfData->ActiveSubmixVoiceCount += 1; - list = list->next; - } - FAudio_PlatformUnlockMutex(audio->submixLock); - LOG_MUTEX_UNLOCK(audio, audio->submixLock) - - if (audio->master != NULL) - { - /* estimate, should use real latency from platform */ - pPerfData->CurrentLatencyInSamples = 2 * audio->updateSize; - } - - LOG_API_EXIT(audio) -} - -void FAudio_SetDebugConfiguration( - FAudio *audio, - FAudioDebugConfiguration *pDebugConfiguration, - void* pReserved -) { -#ifndef FAUDIO_DISABLE_DEBUGCONFIGURATION - char *env; - - LOG_API_ENTER(audio) - - FAudio_memcpy( - &audio->debug, - pDebugConfiguration, - sizeof(FAudioDebugConfiguration) - ); - - env = FAudio_getenv("FAUDIO_LOG_EVERYTHING"); - if (env != NULL && *env == '1') - { - audio->debug.TraceMask = ( - FAUDIO_LOG_ERRORS | - FAUDIO_LOG_WARNINGS | - FAUDIO_LOG_INFO | - FAUDIO_LOG_DETAIL | - FAUDIO_LOG_API_CALLS | - FAUDIO_LOG_FUNC_CALLS | - FAUDIO_LOG_TIMING | - FAUDIO_LOG_LOCKS | - FAUDIO_LOG_MEMORY | - FAUDIO_LOG_STREAMING - ); - audio->debug.LogThreadID = 1; - audio->debug.LogFunctionName = 1; - audio->debug.LogTiming = 1; - } - - #define CHECK_ENV(type) \ - env = FAudio_getenv("FAUDIO_LOG_" #type); \ - if (env != NULL) \ - { \ - if (*env == '1') \ - { \ - audio->debug.TraceMask |= FAUDIO_LOG_##type; \ - } \ - else \ - { \ - audio->debug.TraceMask &= ~FAUDIO_LOG_##type; \ - } \ - } - CHECK_ENV(ERRORS) - CHECK_ENV(WARNINGS) - CHECK_ENV(INFO) - CHECK_ENV(DETAIL) - CHECK_ENV(API_CALLS) - CHECK_ENV(FUNC_CALLS) - CHECK_ENV(TIMING) - CHECK_ENV(LOCKS) - CHECK_ENV(MEMORY) - CHECK_ENV(STREAMING) - #undef CHECK_ENV - #define CHECK_ENV(envvar, boolvar) \ - env = FAudio_getenv("FAUDIO_LOG_LOG" #envvar); \ - if (env != NULL) \ - { \ - audio->debug.Log##boolvar = (*env == '1'); \ - } - CHECK_ENV(THREADID, ThreadID) - CHECK_ENV(FILELINE, Fileline) - CHECK_ENV(FUNCTIONNAME, FunctionName) - CHECK_ENV(TIMING, Timing) - #undef CHECK_ENV - - LOG_API_EXIT(audio) -#endif /* FAUDIO_DISABLE_DEBUGCONFIGURATION */ -} - -void FAudio_GetProcessingQuantum( - FAudio *audio, - uint32_t *quantumNumerator, - uint32_t *quantumDenominator -) { - FAudio_assert(audio->master != NULL); - if (quantumNumerator != NULL) - { - *quantumNumerator = audio->updateSize; - } - if (quantumDenominator != NULL) - { - *quantumDenominator = audio->master->master.inputSampleRate; - } -} - -/* FAudioVoice Interface */ - -static void FAudio_RecalcMixMatrix(FAudioVoice *voice, uint32_t sendIndex) -{ - uint32_t oChan, s, d; - FAudioVoice *out = voice->sends.pSends[sendIndex].pOutputVoice; - float volume, *matrix = voice->mixCoefficients[sendIndex]; - - if (voice->type == FAUDIO_VOICE_SUBMIX) - { - volume = 1.f; - } - else - { - volume = voice->volume; - } - - if (out->type == FAUDIO_VOICE_MASTER) - { - oChan = out->master.inputChannels; - } - else - { - oChan = out->mix.inputChannels; - } - - for (d = 0; d < oChan; d += 1) - { - for (s = 0; s < voice->outputChannels; s += 1) - { - matrix[d * voice->outputChannels + s] = volume * - voice->channelVolume[s] * - voice->sendCoefficients[sendIndex][d * voice->outputChannels + s]; - } - } -} - -void FAudioVoice_GetVoiceDetails( - FAudioVoice *voice, - FAudioVoiceDetails *pVoiceDetails -) { - LOG_API_ENTER(voice->audio) - - pVoiceDetails->CreationFlags = voice->flags; - pVoiceDetails->ActiveFlags = voice->flags; - if (voice->type == FAUDIO_VOICE_SOURCE) - { - pVoiceDetails->InputChannels = voice->src.format->nChannels; - pVoiceDetails->InputSampleRate = voice->src.format->nSamplesPerSec; - } - else if (voice->type == FAUDIO_VOICE_SUBMIX) - { - pVoiceDetails->InputChannels = voice->mix.inputChannels; - pVoiceDetails->InputSampleRate = voice->mix.inputSampleRate; - } - else if (voice->type == FAUDIO_VOICE_MASTER) - { - pVoiceDetails->InputChannels = voice->master.inputChannels; - pVoiceDetails->InputSampleRate = voice->master.inputSampleRate; - } - else - { - FAudio_assert(0 && "Unknown voice type!"); - } - - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioVoice_SetOutputVoices( - FAudioVoice *voice, - const FAudioVoiceSends *pSendList -) { - uint32_t i; - uint32_t outChannels; - FAudioVoiceSends defaultSends; - FAudioSendDescriptor defaultSend; - - LOG_API_ENTER(voice->audio) - - if (voice->type == FAUDIO_VOICE_MASTER) - { - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - if (FAudio_INTERNAL_VoiceOutputFrequency(voice, pSendList) != 0) - { - LOG_ERROR( - voice->audio, - "%s", - "Changing the sample rate while an effect chain is attached is invalid!" - ) - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - - /* FIXME: This is lazy... */ - for (i = 0; i < voice->sends.SendCount; i += 1) - { - voice->audio->pFree(voice->sendCoefficients[i]); - } - if (voice->sendCoefficients != NULL) - { - voice->audio->pFree(voice->sendCoefficients); - } - for (i = 0; i < voice->sends.SendCount; i += 1) - { - voice->audio->pFree(voice->mixCoefficients[i]); - } - if (voice->mixCoefficients != NULL) - { - voice->audio->pFree(voice->mixCoefficients); - } - if (voice->sendMix != NULL) - { - voice->audio->pFree(voice->sendMix); - } - if (voice->sendFilter != NULL) - { - voice->audio->pFree(voice->sendFilter); - voice->sendFilter = NULL; - } - if (voice->sendFilterState != NULL) - { - for (i = 0; i < voice->sends.SendCount; i += 1) - { - if (voice->sendFilterState[i] != NULL) - { - voice->audio->pFree(voice->sendFilterState[i]); - } - } - voice->audio->pFree(voice->sendFilterState); - voice->sendFilterState = NULL; - } - if (voice->sends.pSends != NULL) - { - voice->audio->pFree(voice->sends.pSends); - } - - if (pSendList == NULL) - { - /* Default to the mastering voice as output */ - defaultSend.Flags = 0; - defaultSend.pOutputVoice = voice->audio->master; - defaultSends.SendCount = 1; - defaultSends.pSends = &defaultSend; - pSendList = &defaultSends; - } - else if (pSendList->SendCount == 0) - { - /* No sends? Nothing to do... */ - voice->sendCoefficients = NULL; - voice->mixCoefficients = NULL; - voice->sendMix = NULL; - FAudio_zero(&voice->sends, sizeof(FAudioVoiceSends)); - - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return 0; - } - - /* Copy send list */ - voice->sends.SendCount = pSendList->SendCount; - voice->sends.pSends = (FAudioSendDescriptor*) voice->audio->pMalloc( - pSendList->SendCount * sizeof(FAudioSendDescriptor) - ); - FAudio_memcpy( - voice->sends.pSends, - pSendList->pSends, - pSendList->SendCount * sizeof(FAudioSendDescriptor) - ); - - /* Allocate/Reset default output matrix, mixer function, filters */ - voice->sendCoefficients = (float**) voice->audio->pMalloc( - sizeof(float*) * pSendList->SendCount - ); - voice->mixCoefficients = (float**) voice->audio->pMalloc( - sizeof(float*) * pSendList->SendCount - ); - voice->sendMix = (FAudioMixCallback*) voice->audio->pMalloc( - sizeof(FAudioMixCallback) * pSendList->SendCount - ); - - for (i = 0; i < pSendList->SendCount; i += 1) - { - if (pSendList->pSends[i].pOutputVoice->type == FAUDIO_VOICE_MASTER) - { - outChannels = pSendList->pSends[i].pOutputVoice->master.inputChannels; - } - else - { - outChannels = pSendList->pSends[i].pOutputVoice->mix.inputChannels; - } - voice->sendCoefficients[i] = (float*) voice->audio->pMalloc( - sizeof(float) * voice->outputChannels * outChannels - ); - voice->mixCoefficients[i] = (float*) voice->audio->pMalloc( - sizeof(float) * voice->outputChannels * outChannels - ); - - FAudio_assert(voice->outputChannels > 0 && voice->outputChannels < 9); - FAudio_assert(outChannels > 0 && outChannels < 9); - FAudio_memcpy( - voice->sendCoefficients[i], - FAUDIO_INTERNAL_MATRIX_DEFAULTS[voice->outputChannels - 1][outChannels - 1], - voice->outputChannels * outChannels * sizeof(float) - ); - FAudio_RecalcMixMatrix(voice, i); - - if (voice->outputChannels == 1) - { - if (outChannels == 1) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_1in_1out_Scalar; - } - else if (outChannels == 2) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_1in_2out_Scalar; - } - else if (outChannels == 6) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_1in_6out_Scalar; - } - else if (outChannels == 8) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_1in_8out_Scalar; - } - else - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_Generic; - } - } - else if (voice->outputChannels == 2) - { - if (outChannels == 1) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_2in_1out_Scalar; - } - else if (outChannels == 2) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_2in_2out_Scalar; - } - else if (outChannels == 6) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_2in_6out_Scalar; - } - else if (outChannels == 8) - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_2in_8out_Scalar; - } - else - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_Generic; - } - } - else - { - voice->sendMix[i] = FAudio_INTERNAL_Mix_Generic; - } - - if (pSendList->pSends[i].Flags & FAUDIO_SEND_USEFILTER) - { - /* Allocate the whole send filter array if needed... */ - if (voice->sendFilter == NULL) - { - voice->sendFilter = (FAudioFilterParameters*) voice->audio->pMalloc( - sizeof(FAudioFilterParameters) * pSendList->SendCount - ); - } - if (voice->sendFilterState == NULL) - { - voice->sendFilterState = (FAudioFilterState**) voice->audio->pMalloc( - sizeof(FAudioFilterState*) * pSendList->SendCount - ); - FAudio_zero( - voice->sendFilterState, - sizeof(FAudioFilterState*) * pSendList->SendCount - ); - } - - /* ... then fill in this send's filter data */ - voice->sendFilter[i].Type = FAUDIO_DEFAULT_FILTER_TYPE; - voice->sendFilter[i].Frequency = FAUDIO_DEFAULT_FILTER_FREQUENCY; - voice->sendFilter[i].OneOverQ = FAUDIO_DEFAULT_FILTER_ONEOVERQ; - voice->sendFilterState[i] = (FAudioFilterState*) voice->audio->pMalloc( - sizeof(FAudioFilterState) * outChannels - ); - FAudio_zero( - voice->sendFilterState[i], - sizeof(FAudioFilterState) * outChannels - ); - } - } - - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioVoice_SetEffectChain( - FAudioVoice *voice, - const FAudioEffectChain *pEffectChain -) { - uint32_t i; - FAPO *fapo; - uint32_t channelCount; - FAudioVoiceDetails voiceDetails; - FAPORegistrationProperties *pProps; - FAudioWaveFormatExtensible srcFmt, dstFmt; - FAPOLockForProcessBufferParameters srcLockParams, dstLockParams; - - LOG_API_ENTER(voice->audio) - - FAudioVoice_GetVoiceDetails(voice, &voiceDetails); - - /* SetEffectChain must not change the number of output channels once the voice has been created */ - if (pEffectChain == NULL && voice->outputChannels != 0) - { - /* cannot remove an effect chain that changes the number of channels */ - if (voice->outputChannels != voiceDetails.InputChannels) - { - LOG_ERROR( - voice->audio, - "%s", - "Cannot remove effect chain that changes the number of channels" - ) - FAudio_assert(0 && "Cannot remove effect chain that changes the number of channels"); - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - } - - if (pEffectChain != NULL && voice->outputChannels != 0) - { - uint32_t lst = pEffectChain->EffectCount - 1; - - /* new effect chain must have same number of output channels */ - if (voice->outputChannels != pEffectChain->pEffectDescriptors[lst].OutputChannels) - { - LOG_ERROR( - voice->audio, - "%s", - "New effect chain must have same number of output channels as the old chain" - ) - FAudio_assert(0 && "New effect chain must have same number of output channels as the old chain"); - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - } - - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - - if (pEffectChain == NULL) - { - FAudio_INTERNAL_FreeEffectChain(voice); - FAudio_zero(&voice->effects, sizeof(voice->effects)); - voice->outputChannels = voiceDetails.InputChannels; - } - else - { - /* Validate incoming chain before changing the current chain */ - - /* These are always the same, so just write them now. */ - srcLockParams.pFormat = &srcFmt.Format; - dstLockParams.pFormat = &dstFmt.Format; - if (voice->type == FAUDIO_VOICE_SOURCE) - { - srcLockParams.MaxFrameCount = voice->src.resampleSamples; - dstLockParams.MaxFrameCount = voice->src.resampleSamples; - } - else if (voice->type == FAUDIO_VOICE_SUBMIX) - { - srcLockParams.MaxFrameCount = voice->mix.outputSamples; - dstLockParams.MaxFrameCount = voice->mix.outputSamples; - } - else if (voice->type == FAUDIO_VOICE_MASTER) - { - srcLockParams.MaxFrameCount = voice->audio->updateSize; - dstLockParams.MaxFrameCount = voice->audio->updateSize; - } - - /* The first source is the voice input data... */ - srcFmt.Format.wBitsPerSample = 32; - srcFmt.Format.wFormatTag = FAUDIO_FORMAT_EXTENSIBLE; - srcFmt.Format.nChannels = voiceDetails.InputChannels; - srcFmt.Format.nSamplesPerSec = voiceDetails.InputSampleRate; - srcFmt.Format.nBlockAlign = srcFmt.Format.nChannels * (srcFmt.Format.wBitsPerSample / 8); - srcFmt.Format.nAvgBytesPerSec = srcFmt.Format.nSamplesPerSec * srcFmt.Format.nBlockAlign; - srcFmt.Format.cbSize = sizeof(FAudioWaveFormatExtensible) - sizeof(FAudioWaveFormatEx); - srcFmt.Samples.wValidBitsPerSample = srcFmt.Format.wBitsPerSample; - srcFmt.dwChannelMask = 0; - FAudio_memcpy(&srcFmt.SubFormat, &DATAFORMAT_SUBTYPE_IEEE_FLOAT, sizeof(FAudioGUID)); - FAudio_memcpy(&dstFmt, &srcFmt, sizeof(srcFmt)); - - for (i = 0; i < pEffectChain->EffectCount; i += 1) - { - fapo = pEffectChain->pEffectDescriptors[i].pEffect; - - /* ... then we get this effect's format... */ - dstFmt.Format.nChannels = pEffectChain->pEffectDescriptors[i].OutputChannels; - dstFmt.Format.nBlockAlign = dstFmt.Format.nChannels * (dstFmt.Format.wBitsPerSample / 8); - dstFmt.Format.nAvgBytesPerSec = dstFmt.Format.nSamplesPerSec * dstFmt.Format.nBlockAlign; - - /* FIXME: This error needs to be found _before_ we start - * shredding the voice's state. This function is highly - * destructive so any errors need to be found at the - * beginning, not in the middle! We can't undo this! - * -flibit - */ - if (fapo->LockForProcess(fapo, 1, &srcLockParams, 1, &dstLockParams)) - { - LOG_ERROR( - voice->audio, - "%s", - "Effect output format not supported" - ) - FAudio_assert(0 && "Effect output format not supported"); - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_API_EXIT(voice->audio) - return FAUDIO_E_UNSUPPORTED_FORMAT; - } - - /* Okay, now this effect is the source and the next - * effect will be the destination. Repeat until no - * effects left. - */ - FAudio_memcpy(&srcFmt, &dstFmt, sizeof(srcFmt)); - } - - FAudio_INTERNAL_FreeEffectChain(voice); - FAudio_INTERNAL_AllocEffectChain( - voice, - pEffectChain - ); - - /* check if in-place processing is supported */ - channelCount = voiceDetails.InputChannels; - for (i = 0; i < voice->effects.count; i += 1) - { - fapo = voice->effects.desc[i].pEffect; - if (fapo->GetRegistrationProperties(fapo, &pProps) == 0) - { - voice->effects.inPlaceProcessing[i] = (pProps->Flags & FAPO_FLAG_INPLACE_SUPPORTED) == FAPO_FLAG_INPLACE_SUPPORTED; - voice->effects.inPlaceProcessing[i] &= (channelCount == voice->effects.desc[i].OutputChannels); - channelCount = voice->effects.desc[i].OutputChannels; - - /* Fails if in-place processing is mandatory and - * the chain forces us to do otherwise... - */ - FAudio_assert( - !(pProps->Flags & FAPO_FLAG_INPLACE_REQUIRED) || - voice->effects.inPlaceProcessing[i] - ); - - voice->audio->pFree(pProps); - } - } - voice->outputChannels = channelCount; - } - - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioVoice_EnableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueEnableEffect( - voice, - EffectIndex, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - voice->effects.desc[EffectIndex].InitialState = 1; - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioVoice_DisableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueDisableEffect( - voice, - EffectIndex, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - voice->effects.desc[EffectIndex].InitialState = 0; - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -void FAudioVoice_GetEffectState( - FAudioVoice *voice, - uint32_t EffectIndex, - int32_t *pEnabled -) { - LOG_API_ENTER(voice->audio) - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - *pEnabled = voice->effects.desc[EffectIndex].InitialState; - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioVoice_SetEffectParameters( - FAudioVoice *voice, - uint32_t EffectIndex, - const void *pParameters, - uint32_t ParametersByteSize, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueSetEffectParameters( - voice, - EffectIndex, - pParameters, - ParametersByteSize, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - if (voice->effects.parameters[EffectIndex] == NULL) - { - voice->effects.parameters[EffectIndex] = voice->audio->pMalloc( - ParametersByteSize - ); - voice->effects.parameterSizes[EffectIndex] = ParametersByteSize; - } - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - if (voice->effects.parameterSizes[EffectIndex] < ParametersByteSize) - { - voice->effects.parameters[EffectIndex] = voice->audio->pRealloc( - voice->effects.parameters[EffectIndex], - ParametersByteSize - ); - voice->effects.parameterSizes[EffectIndex] = ParametersByteSize; - } - FAudio_memcpy( - voice->effects.parameters[EffectIndex], - pParameters, - ParametersByteSize - ); - voice->effects.parameterUpdates[EffectIndex] = 1; - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioVoice_GetEffectParameters( - FAudioVoice *voice, - uint32_t EffectIndex, - void *pParameters, - uint32_t ParametersByteSize -) { - FAPO *fapo; - LOG_API_ENTER(voice->audio) - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - fapo = voice->effects.desc[EffectIndex].pEffect; - fapo->GetParameters(fapo, pParameters, ParametersByteSize); - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioVoice_SetFilterParameters( - FAudioVoice *voice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueSetFilterParameters( - voice, - pParameters, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - /* MSDN: "This method is usable only on source and submix voices and - * has no effect on mastering voices." - */ - if (voice->type == FAUDIO_VOICE_MASTER) - { - LOG_API_EXIT(voice->audio) - return 0; - } - - if (!(voice->flags & FAUDIO_VOICE_USEFILTER)) - { - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_PlatformLockMutex(voice->filterLock); - LOG_MUTEX_LOCK(voice->audio, voice->filterLock) - FAudio_memcpy( - &voice->filter, - pParameters, - sizeof(FAudioFilterParameters) - ); - FAudio_PlatformUnlockMutex(voice->filterLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->filterLock) - - LOG_API_EXIT(voice->audio) - return 0; -} - -void FAudioVoice_GetFilterParameters( - FAudioVoice *voice, - FAudioFilterParameters *pParameters -) { - LOG_API_ENTER(voice->audio) - - /* MSDN: "This method is usable only on source and submix voices and - * has no effect on mastering voices." - */ - if (voice->type == FAUDIO_VOICE_MASTER) - { - LOG_API_EXIT(voice->audio) - return; - } - - if (!(voice->flags & FAUDIO_VOICE_USEFILTER)) - { - LOG_API_EXIT(voice->audio) - return; - } - - FAudio_PlatformLockMutex(voice->filterLock); - LOG_MUTEX_LOCK(voice->audio, voice->filterLock) - FAudio_memcpy( - pParameters, - &voice->filter, - sizeof(FAudioFilterParameters) - ); - FAudio_PlatformUnlockMutex(voice->filterLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->filterLock) - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioVoice_SetOutputFilterParameters( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -) { - uint32_t i; - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueSetOutputFilterParameters( - voice, - pDestinationVoice, - pParameters, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - /* MSDN: "This method is usable only on source and submix voices and - * has no effect on mastering voices." - */ - if (voice->type == FAUDIO_VOICE_MASTER) - { - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - /* Find the send index */ - if (pDestinationVoice == NULL && voice->sends.SendCount == 1) - { - pDestinationVoice = voice->sends.pSends[0].pOutputVoice; - } - for (i = 0; i < voice->sends.SendCount; i += 1) - { - if (pDestinationVoice == voice->sends.pSends[i].pOutputVoice) - { - break; - } - } - if (i >= voice->sends.SendCount) - { - LOG_ERROR( - voice->audio, - "Destination not attached to source: %p %p", - (void*) voice, - (void*) pDestinationVoice - ) - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - if (!(voice->sends.pSends[i].Flags & FAUDIO_SEND_USEFILTER)) - { - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return 0; - } - - /* Set the filter parameters, finally. */ - FAudio_memcpy( - &voice->sendFilter[i], - pParameters, - sizeof(FAudioFilterParameters) - ); - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -void FAudioVoice_GetOutputFilterParameters( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - FAudioFilterParameters *pParameters -) { - uint32_t i; - - LOG_API_ENTER(voice->audio) - - /* MSDN: "This method is usable only on source and submix voices and - * has no effect on mastering voices." - */ - if (voice->type == FAUDIO_VOICE_MASTER) - { - LOG_API_EXIT(voice->audio) - return; - } - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - /* Find the send index */ - if (pDestinationVoice == NULL && voice->sends.SendCount == 1) - { - pDestinationVoice = voice->sends.pSends[0].pOutputVoice; - } - for (i = 0; i < voice->sends.SendCount; i += 1) - { - if (pDestinationVoice == voice->sends.pSends[i].pOutputVoice) - { - break; - } - } - if (i >= voice->sends.SendCount) - { - LOG_ERROR( - voice->audio, - "Destination not attached to source: %p %p", - (void*) voice, - (void*) pDestinationVoice - ) - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return; - } - - if (!(voice->sends.pSends[i].Flags & FAUDIO_SEND_USEFILTER)) - { - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return; - } - - /* Set the filter parameters, finally. */ - FAudio_memcpy( - pParameters, - &voice->sendFilter[i], - sizeof(FAudioFilterParameters) - ); - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioVoice_SetVolume( - FAudioVoice *voice, - float Volume, - uint32_t OperationSet -) { - uint32_t i; - - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueSetVolume( - voice, - Volume, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - - voice->volume = FAudio_clamp( - Volume, - -FAUDIO_MAX_VOLUME_LEVEL, - FAUDIO_MAX_VOLUME_LEVEL - ); - - for (i = 0; i < voice->sends.SendCount; i += 1) - { - FAudio_RecalcMixMatrix(voice, i); - } - - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - - LOG_API_EXIT(voice->audio) - return 0; -} - -void FAudioVoice_GetVolume( - FAudioVoice *voice, - float *pVolume -) { - LOG_API_ENTER(voice->audio) - *pVolume = voice->volume; - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioVoice_SetChannelVolumes( - FAudioVoice *voice, - uint32_t Channels, - const float *pVolumes, - uint32_t OperationSet -) { - uint32_t i; - - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueSetChannelVolumes( - voice, - Channels, - pVolumes, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - if (pVolumes == NULL) - { - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - if (voice->type == FAUDIO_VOICE_MASTER) - { - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - if (voice->audio->version > 7 && Channels != voice->outputChannels) - { - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - - FAudio_memcpy( - voice->channelVolume, - pVolumes, - sizeof(float) * Channels - ); - - for (i = 0; i < voice->sends.SendCount; i += 1) - { - FAudio_RecalcMixMatrix(voice, i); - } - - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - - LOG_API_EXIT(voice->audio) - return 0; -} - -void FAudioVoice_GetChannelVolumes( - FAudioVoice *voice, - uint32_t Channels, - float *pVolumes -) { - LOG_API_ENTER(voice->audio) - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - FAudio_memcpy( - pVolumes, - voice->channelVolume, - sizeof(float) * Channels - ); - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioVoice_SetOutputMatrix( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - uint32_t SourceChannels, - uint32_t DestinationChannels, - const float *pLevelMatrix, - uint32_t OperationSet -) { - uint32_t i, result = 0; - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueSetOutputMatrix( - voice, - pDestinationVoice, - SourceChannels, - DestinationChannels, - pLevelMatrix, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - /* Find the send index */ - if (pDestinationVoice == NULL && voice->sends.SendCount == 1) - { - pDestinationVoice = voice->sends.pSends[0].pOutputVoice; - } - FAudio_assert(pDestinationVoice != NULL); - for (i = 0; i < voice->sends.SendCount; i += 1) - { - if (pDestinationVoice == voice->sends.pSends[i].pOutputVoice) - { - break; - } - } - if (i >= voice->sends.SendCount) - { - LOG_ERROR( - voice->audio, - "Destination not attached to source: %p %p", - (void*) voice, - (void*) pDestinationVoice - ) - result = FAUDIO_E_INVALID_CALL; - goto end; - } - - /* Verify the Source/Destination channel count */ - if (SourceChannels != voice->outputChannels) - { - LOG_ERROR( - voice->audio, - "SourceChannels not equal to voice channel count: %p %d %d", - (void*) voice, - SourceChannels, - voice->outputChannels - ) - result = FAUDIO_E_INVALID_CALL; - goto end; - } - - if (pDestinationVoice->type == FAUDIO_VOICE_MASTER) - { - if (DestinationChannels != pDestinationVoice->master.inputChannels) - { - LOG_ERROR( - voice->audio, - "DestinationChannels not equal to master channel count: %p %d %d", - (void*) pDestinationVoice, - DestinationChannels, - pDestinationVoice->master.inputChannels - ) - result = FAUDIO_E_INVALID_CALL; - goto end; - } - } - else - { - if (DestinationChannels != pDestinationVoice->mix.inputChannels) - { - LOG_ERROR( - voice->audio, - "DestinationChannels not equal to submix channel count: %p %d %d", - (void*) pDestinationVoice, - DestinationChannels, - pDestinationVoice->mix.inputChannels - ) - result = FAUDIO_E_INVALID_CALL; - goto end; - } - } - - /* Set the matrix values, finally */ - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - - FAudio_memcpy( - voice->sendCoefficients[i], - pLevelMatrix, - sizeof(float) * SourceChannels * DestinationChannels - ); - - FAudio_RecalcMixMatrix(voice, i); - - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - -end: - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return result; -} - -void FAudioVoice_GetOutputMatrix( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - uint32_t SourceChannels, - uint32_t DestinationChannels, - float *pLevelMatrix -) { - uint32_t i; - - LOG_API_ENTER(voice->audio) - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - /* Find the send index */ - for (i = 0; i < voice->sends.SendCount; i += 1) - { - if (pDestinationVoice == voice->sends.pSends[i].pOutputVoice) - { - break; - } - } - if (i >= voice->sends.SendCount) - { - LOG_ERROR( - voice->audio, - "Destination not attached to source: %p %p", - (void*) voice, - (void*) pDestinationVoice - ) - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return; - } - - /* Verify the Source/Destination channel count */ - if (voice->type == FAUDIO_VOICE_SOURCE) - { - FAudio_assert(SourceChannels == voice->src.format->nChannels); - } - else - { - FAudio_assert(SourceChannels == voice->mix.inputChannels); - } - if (pDestinationVoice->type == FAUDIO_VOICE_MASTER) - { - FAudio_assert(DestinationChannels == pDestinationVoice->master.inputChannels); - } - else - { - FAudio_assert(DestinationChannels == pDestinationVoice->mix.inputChannels); - } - - /* Get the matrix values, finally */ - FAudio_memcpy( - pLevelMatrix, - voice->sendCoefficients[i], - sizeof(float) * SourceChannels * DestinationChannels - ); - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) -} - -void FAudioVoice_DestroyVoice(FAudioVoice *voice) -{ - uint32_t i; - LOG_API_ENTER(voice->audio) - - /* TODO: Check for dependencies and remove from audio graph first! */ - FAudio_OPERATIONSET_ClearAllForVoice(voice); - - if (voice->type == FAUDIO_VOICE_SOURCE) - { - FAudioBufferEntry *entry, *next; - -#ifdef FAUDIO_DUMP_VOICES - FAudio_DUMPVOICE_Finalize((FAudioSourceVoice*) voice); -#endif /* FAUDIO_DUMP_VOICES */ - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - while (voice == voice->audio->processingSource) - { - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - } - LinkedList_RemoveEntry( - &voice->audio->sources, - voice, - voice->audio->sourceLock, - voice->audio->pFree - ); - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - entry = voice->src.bufferList; - while (entry != NULL) - { - next = entry->next; - voice->audio->pFree(entry); - entry = next; - } - - entry = voice->src.flushList; - while (entry != NULL) - { - next = entry->next; - voice->audio->pFree(entry); - entry = next; - } - - voice->audio->pFree(voice->src.format); - LOG_MUTEX_DESTROY(voice->audio, voice->src.bufferLock) - FAudio_PlatformDestroyMutex(voice->src.bufferLock); -#ifdef HAVE_WMADEC - if (voice->src.wmadec) - { - FAudio_WMADEC_free(voice); - } -#endif /* HAVE_WMADEC */ - } - else if (voice->type == FAUDIO_VOICE_SUBMIX) - { - /* Remove submix from list */ - LinkedList_RemoveEntry( - &voice->audio->submixes, - voice, - voice->audio->submixLock, - voice->audio->pFree - ); - - /* Delete submix data */ - voice->audio->pFree(voice->mix.inputCache); - } - else if (voice->type == FAUDIO_VOICE_MASTER) - { - if (voice->audio->platform != NULL) - { - FAudio_PlatformQuit(voice->audio->platform); - voice->audio->platform = NULL; - } - if (voice->master.effectCache != NULL) - { - voice->audio->pFree(voice->master.effectCache); - } - voice->audio->master = NULL; - } - - if (voice->sendLock != NULL) - { - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - for (i = 0; i < voice->sends.SendCount; i += 1) - { - voice->audio->pFree(voice->sendCoefficients[i]); - } - if (voice->sendCoefficients != NULL) - { - voice->audio->pFree(voice->sendCoefficients); - } - for (i = 0; i < voice->sends.SendCount; i += 1) - { - voice->audio->pFree(voice->mixCoefficients[i]); - } - if (voice->mixCoefficients != NULL) - { - voice->audio->pFree(voice->mixCoefficients); - } - if (voice->sendMix != NULL) - { - voice->audio->pFree(voice->sendMix); - } - if (voice->sendFilter != NULL) - { - voice->audio->pFree(voice->sendFilter); - } - if (voice->sendFilterState != NULL) - { - for (i = 0; i < voice->sends.SendCount; i += 1) - { - if (voice->sendFilterState[i] != NULL) - { - voice->audio->pFree(voice->sendFilterState[i]); - } - } - voice->audio->pFree(voice->sendFilterState); - } - if (voice->sends.pSends != NULL) - { - voice->audio->pFree(voice->sends.pSends); - } - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_MUTEX_DESTROY(voice->audio, voice->sendLock) - FAudio_PlatformDestroyMutex(voice->sendLock); - } - - if (voice->effectLock != NULL) - { - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - FAudio_INTERNAL_FreeEffectChain(voice); - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - LOG_MUTEX_DESTROY(voice->audio, voice->effectLock) - FAudio_PlatformDestroyMutex(voice->effectLock); - } - - if (voice->filterLock != NULL) - { - FAudio_PlatformLockMutex(voice->filterLock); - LOG_MUTEX_LOCK(voice->audio, voice->filterLock) - if (voice->filterState != NULL) - { - voice->audio->pFree(voice->filterState); - } - FAudio_PlatformUnlockMutex(voice->filterLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->filterLock) - LOG_MUTEX_DESTROY(voice->audio, voice->filterLock) - FAudio_PlatformDestroyMutex(voice->filterLock); - } - - if (voice->volumeLock != NULL) - { - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - if (voice->channelVolume != NULL) - { - voice->audio->pFree(voice->channelVolume); - } - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - LOG_MUTEX_DESTROY(voice->audio, voice->volumeLock) - FAudio_PlatformDestroyMutex(voice->volumeLock); - } - - LOG_API_EXIT(voice->audio) - FAudio_Release(voice->audio); - voice->audio->pFree(voice); -} - -/* FAudioSourceVoice Interface */ - -uint32_t FAudioSourceVoice_Start( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueStart( - voice, - Flags, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - FAudio_assert(Flags == 0); - voice->src.active = 1; - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioSourceVoice_Stop( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueStop( - voice, - Flags, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - if (Flags & FAUDIO_PLAY_TAILS) - { - voice->src.active = 2; - } - else - { - voice->src.active = 0; - } - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioSourceVoice_SubmitSourceBuffer( - FAudioSourceVoice *voice, - const FAudioBuffer *pBuffer, - const FAudioBufferWMA *pBufferWMA -) { - uint32_t adpcmMask, *adpcmByteCount; - uint32_t playBegin, playLength, loopBegin, loopLength; - FAudioBufferEntry *entry, *list; - - LOG_API_ENTER(voice->audio) - LOG_INFO( - voice->audio, - "%p: {Flags: 0x%x, AudioBytes: %u, pAudioData: %p, Play: %u + %u, Loop: %u + %u x %u}", - (void*) voice, - pBuffer->Flags, - pBuffer->AudioBytes, - (const void*) pBuffer->pAudioData, - pBuffer->PlayBegin, - pBuffer->PlayLength, - pBuffer->LoopBegin, - pBuffer->LoopLength, - pBuffer->LoopCount - ) - - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); -#ifdef HAVE_WMADEC - FAudio_assert( (voice->src.wmadec != NULL && (pBufferWMA != NULL || - (voice->src.format->wFormatTag == FAUDIO_FORMAT_XMAUDIO2 || - voice->src.format->wFormatTag == FAUDIO_FORMAT_EXTENSIBLE))) || - (voice->src.wmadec == NULL && (pBufferWMA == NULL && voice->src.format->wFormatTag != FAUDIO_FORMAT_XMAUDIO2)) ); -#endif /* HAVE_WMADEC */ - - /* Start off with whatever they just sent us... */ - playBegin = pBuffer->PlayBegin; - playLength = pBuffer->PlayLength; - loopBegin = pBuffer->LoopBegin; - loopLength = pBuffer->LoopLength; - - /* "LoopBegin/LoopLength must be zero if LoopCount is 0" */ - if (pBuffer->LoopCount == 0 && (loopBegin > 0 || loopLength > 0)) - { - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - /* PlayLength Default */ - if (playLength == 0) - { - if (voice->src.format->wFormatTag == FAUDIO_FORMAT_MSADPCM) - { - FAudioADPCMWaveFormat *fmtex = (FAudioADPCMWaveFormat*) voice->src.format; - playLength = ( - pBuffer->AudioBytes / - fmtex->wfx.nBlockAlign * - fmtex->wSamplesPerBlock - ) - playBegin; - } - else if (voice->src.format->wFormatTag == FAUDIO_FORMAT_XMAUDIO2) - { - FAudioXMA2WaveFormat *fmtex = (FAudioXMA2WaveFormat*) voice->src.format; - playLength = fmtex->dwSamplesEncoded - playBegin; - } - else if (pBufferWMA != NULL) - { - playLength = ( - pBufferWMA->pDecodedPacketCumulativeBytes[pBufferWMA->PacketCount - 1] / - (voice->src.format->nChannels * voice->src.format->wBitsPerSample / 8) - ) - playBegin; - } - else - { - playLength = ( - pBuffer->AudioBytes / - voice->src.format->nBlockAlign - ) - playBegin; - } - } - - if (pBuffer->LoopCount > 0 && pBufferWMA == NULL && voice->src.format->wFormatTag != FAUDIO_FORMAT_XMAUDIO2) - { - /* "The value of LoopBegin must be less than PlayBegin + PlayLength" */ - if (loopBegin >= (playBegin + playLength)) - { - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - - /* LoopLength Default */ - if (loopLength == 0) - { - loopLength = playBegin + playLength - loopBegin; - } - - /* "The value of LoopBegin + LoopLength must be greater than PlayBegin - * and less than PlayBegin + PlayLength" - */ - if ( voice->audio->version > 7 && ( - (loopBegin + loopLength) <= playBegin || - (loopBegin + loopLength) > (playBegin + playLength)) ) - { - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - } - - /* For ADPCM, round down to the nearest sample block size */ - if (voice->src.format->wFormatTag == FAUDIO_FORMAT_MSADPCM) - { - adpcmMask = ((FAudioADPCMWaveFormat*) voice->src.format)->wSamplesPerBlock; - playBegin -= playBegin % adpcmMask; - playLength -= playLength % adpcmMask; - loopBegin -= loopBegin % adpcmMask; - loopLength -= loopLength % adpcmMask; - - /* This is basically a const_cast... */ - adpcmByteCount = (uint32_t*) &pBuffer->AudioBytes; - *adpcmByteCount = ( - pBuffer->AudioBytes / voice->src.format->nBlockAlign - ) * voice->src.format->nBlockAlign; - } - else if (pBufferWMA != NULL || voice->src.format->wFormatTag == FAUDIO_FORMAT_XMAUDIO2) - { - /* WMA only supports looping the whole buffer */ - loopBegin = 0; - loopLength = playBegin + playLength; - } - - /* Allocate, now that we have valid input */ - entry = (FAudioBufferEntry*) voice->audio->pMalloc(sizeof(FAudioBufferEntry)); - FAudio_memcpy(&entry->buffer, pBuffer, sizeof(FAudioBuffer)); - entry->buffer.PlayBegin = playBegin; - entry->buffer.PlayLength = playLength; - entry->buffer.LoopBegin = loopBegin; - entry->buffer.LoopLength = loopLength; - if (pBufferWMA != NULL) - { - FAudio_memcpy(&entry->bufferWMA, pBufferWMA, sizeof(FAudioBufferWMA)); - } - entry->next = NULL; - - if ( voice->audio->version <= 7 && ( - entry->buffer.LoopCount > 0 && - entry->buffer.LoopBegin + entry->buffer.LoopLength <= entry->buffer.PlayBegin)) - { - entry->buffer.LoopCount = 0; - } - -#ifdef FAUDIO_DUMP_VOICES - /* dumping current buffer, append into "data" section */ - if (pBuffer->pAudioData != NULL && playLength > 0) - { - FAudio_DUMPVOICE_WriteBuffer(voice, pBuffer, pBufferWMA, playBegin, playLength); - } -#endif /* FAUDIO_DUMP_VOICES */ - - /* Submit! */ - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - if (voice->src.bufferList == NULL) - { - voice->src.bufferList = entry; - voice->src.curBufferOffset = entry->buffer.PlayBegin; - voice->src.newBuffer = 1; - } - else - { - list = voice->src.bufferList; - while (list->next != NULL) - { - list = list->next; - } - list->next = entry; - - /* For some bizarre reason we get scenarios where a buffer is freed, only to - * have the allocator give us the exact same address and somehow get a single - * buffer referencing itself. I don't even know. - */ - FAudio_assert(list != entry); - } - LOG_INFO( - voice->audio, - "%p: appended buffer %p", - (void*) voice, - (void*) &entry->buffer - ) - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioSourceVoice_FlushSourceBuffers( - FAudioSourceVoice *voice -) { - FAudioBufferEntry *entry, *latest; - - LOG_API_ENTER(voice->audio) - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - - /* If the source is playing, don't flush the active buffer */ - entry = voice->src.bufferList; - if ((voice->src.active == 1) && entry != NULL && !voice->src.newBuffer) - { - entry = entry->next; - voice->src.bufferList->next = NULL; - } - else - { - voice->src.curBufferOffset = 0; - voice->src.bufferList = NULL; - voice->src.newBuffer = 0; - } - - /* Move them to the pending flush list */ - if (entry != NULL) - { - if (voice->src.flushList == NULL) - { - voice->src.flushList = entry; - } - else - { - latest = voice->src.flushList; - while (latest->next != NULL) - { - latest = latest->next; - } - latest->next = entry; - } - } - - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioSourceVoice_Discontinuity( - FAudioSourceVoice *voice -) { - FAudioBufferEntry *buf; - - LOG_API_ENTER(voice->audio) - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - - if (voice->src.bufferList != NULL) - { - for (buf = voice->src.bufferList; buf->next != NULL; buf = buf->next); - buf->buffer.Flags |= FAUDIO_END_OF_STREAM; - } - - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -uint32_t FAudioSourceVoice_ExitLoop( - FAudioSourceVoice *voice, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueExitLoop( - voice, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - - if (voice->src.bufferList != NULL) - { - voice->src.bufferList->buffer.LoopCount = 0; - } - - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - LOG_API_EXIT(voice->audio) - return 0; -} - -void FAudioSourceVoice_GetState( - FAudioSourceVoice *voice, - FAudioVoiceState *pVoiceState, - uint32_t Flags -) { - FAudioBufferEntry *entry; - - LOG_API_ENTER(voice->audio) - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - - if (!(Flags & FAUDIO_VOICE_NOSAMPLESPLAYED)) - { - pVoiceState->SamplesPlayed = voice->src.totalSamples; - } - - pVoiceState->BuffersQueued = 0; - pVoiceState->pCurrentBufferContext = NULL; - if (voice->src.bufferList != NULL) - { - entry = voice->src.bufferList; - if (!voice->src.newBuffer) - { - pVoiceState->pCurrentBufferContext = entry->buffer.pContext; - } - do - { - pVoiceState->BuffersQueued += 1; - entry = entry->next; - } while (entry != NULL); - } - - /* Pending flushed buffers also count */ - entry = voice->src.flushList; - while (entry != NULL) - { - pVoiceState->BuffersQueued += 1; - entry = entry->next; - } - - LOG_INFO( - voice->audio, - "-> {pCurrentBufferContext: %p, BuffersQueued: %u, SamplesPlayed: %"FAudio_PRIu64"}", - pVoiceState->pCurrentBufferContext, pVoiceState->BuffersQueued, - pVoiceState->SamplesPlayed - ) - - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioSourceVoice_SetFrequencyRatio( - FAudioSourceVoice *voice, - float Ratio, - uint32_t OperationSet -) { - LOG_API_ENTER(voice->audio) - - if (OperationSet != FAUDIO_COMMIT_NOW && voice->audio->active) - { - FAudio_OPERATIONSET_QueueSetFrequencyRatio( - voice, - Ratio, - OperationSet - ); - LOG_API_EXIT(voice->audio) - return 0; - } - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - if (voice->flags & FAUDIO_VOICE_NOPITCH) - { - LOG_API_EXIT(voice->audio) - return 0; - } - - voice->src.freqRatio = FAudio_clamp( - Ratio, - FAUDIO_MIN_FREQ_RATIO, - voice->src.maxFreqRatio - ); - LOG_API_EXIT(voice->audio) - return 0; -} - -void FAudioSourceVoice_GetFrequencyRatio( - FAudioSourceVoice *voice, - float *pRatio -) { - LOG_API_ENTER(voice->audio) - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - - *pRatio = voice->src.freqRatio; - LOG_API_EXIT(voice->audio) -} - -uint32_t FAudioSourceVoice_SetSourceSampleRate( - FAudioSourceVoice *voice, - uint32_t NewSourceSampleRate -) { - uint32_t outSampleRate; - uint32_t newDecodeSamples, newResampleSamples; - - LOG_API_ENTER(voice->audio) - FAudio_assert(voice->type == FAUDIO_VOICE_SOURCE); - FAudio_assert( NewSourceSampleRate >= FAUDIO_MIN_SAMPLE_RATE && - NewSourceSampleRate <= FAUDIO_MAX_SAMPLE_RATE ); - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - if ( voice->audio->version > 7 && - voice->src.bufferList != NULL ) - { - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - LOG_API_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - - voice->src.format->nSamplesPerSec = NewSourceSampleRate; - - /* Resize decode cache */ - newDecodeSamples = (uint32_t) FAudio_ceil( - voice->audio->updateSize * - (double) voice->src.maxFreqRatio * - (double) NewSourceSampleRate / - (double) voice->audio->master->master.inputSampleRate - ) + EXTRA_DECODE_PADDING * voice->src.format->nChannels; - FAudio_INTERNAL_ResizeDecodeCache( - voice->audio, - (newDecodeSamples + EXTRA_DECODE_PADDING) * voice->src.format->nChannels - ); - voice->src.decodeSamples = newDecodeSamples; - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - if (voice->sends.SendCount == 0) - { - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_API_EXIT(voice->audio) - return 0; - } - outSampleRate = voice->sends.pSends[0].pOutputVoice->type == FAUDIO_VOICE_MASTER ? - voice->sends.pSends[0].pOutputVoice->master.inputSampleRate : - voice->sends.pSends[0].pOutputVoice->mix.inputSampleRate; - - newResampleSamples = (uint32_t) (FAudio_ceil( - (double) voice->audio->updateSize * - (double) outSampleRate / - (double) voice->audio->master->master.inputSampleRate - )); - voice->src.resampleSamples = newResampleSamples; - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - - LOG_API_EXIT(voice->audio) - return 0; -} - -/* FAudioMasteringVoice Interface */ - -FAUDIOAPI uint32_t FAudioMasteringVoice_GetChannelMask( - FAudioMasteringVoice *voice, - uint32_t *pChannelMask -) { - LOG_API_ENTER(voice->audio) - FAudio_assert(voice->type == FAUDIO_VOICE_MASTER); - FAudio_assert(pChannelMask != NULL); - - *pChannelMask = voice->audio->mixFormat.dwChannelMask; - LOG_API_EXIT(voice->audio) - return 0; -} - -#ifdef FAUDIO_DUMP_VOICES - -static inline FAudioIOStreamOut *DumpVoices_fopen( - const FAudioSourceVoice *voice, - const FAudioWaveFormatEx *format, - const char *mode, - const char *ext -) { - char loc[64]; - uint16_t format_tag = format->wFormatTag; - uint16_t format_ex_tag = 0; - if (format->wFormatTag == FAUDIO_FORMAT_EXTENSIBLE) - { - /* get the GUID of the extended subformat */ - const FAudioWaveFormatExtensible *format_ex = - (const FAudioWaveFormatExtensible*) format; - format_ex_tag = (uint16_t) (format_ex->SubFormat.Data1); - } - FAudio_snprintf( - loc, - sizeof(loc), - "FA_fmt_0x%04X_0x%04X_0x%016lX%s.wav", - format_tag, - format_ex_tag, - (uint64_t) voice, - ext - ); - FAudioIOStreamOut *fileOut = FAudio_fopen_out(loc, mode); - return fileOut; -} - -static inline void DumpVoices_finalize_section( - const FAudioSourceVoice *voice, - const FAudioWaveFormatEx *format, - const char *section /* one of "data" or "dpds" */ -) { - /* data file only contains the real data bytes */ - FAudioIOStreamOut *io_data = DumpVoices_fopen(voice, format, "rb", section); - if (!io_data) - { - return; - } - FAudio_PlatformLockMutex((FAudioMutex) io_data->lock); - size_t file_size_data = io_data->size(io_data->data); - if (file_size_data == 0) - { - /* nothing to do */ - /* close data file */ - FAudio_PlatformUnlockMutex((FAudioMutex) io_data->lock); - FAudio_close_out(io_data); - return; - } - - /* we got some data: append data section to main file */ - FAudioIOStreamOut *io = DumpVoices_fopen(voice, format, "ab", ""); - if (!io) - { - /* close data file */ - FAudio_PlatformUnlockMutex((FAudioMutex) io_data->lock); - FAudio_close_out(io_data); - return; - } - - /* data sub-chunk - 8 bytes + data */ - /* SubChunk2ID - 4 --> "data" or "dpds" */ - io->write(io->data, section, 4, 1); - /* Subchunk2Size - 4 */ - uint32_t chunk_size = (uint32_t)file_size_data; - io->write(io->data, &chunk_size, 4, 1); - /* data */ - /* fill in data bytes */ - uint8_t buffer[1024*1024]; - size_t count; - while((count = io_data->read(io_data->data, (void*) buffer, 1, 1024*1024)) > 0) - { - io->write(io->data, (void*) buffer, 1, count); - } - - /* close data file */ - FAudio_PlatformUnlockMutex((FAudioMutex) io_data->lock); - FAudio_close_out(io_data); - /* close main file */ - FAudio_PlatformUnlockMutex((FAudioMutex) io->lock); - FAudio_close_out(io); -} - -static void FAudio_DUMPVOICE_Init(const FAudioSourceVoice *voice) -{ - const FAudioWaveFormatEx *format = voice->src.format; - - FAudioIOStreamOut *io = DumpVoices_fopen(voice, format, "wb", ""); - if (!io) - { - return; - } - FAudio_PlatformLockMutex((FAudioMutex) io->lock); - /* another GREAT ressource - * https://wiki.multimedia.cx/index.php/Microsoft_xWMA - */ - - - /* wave file format taken from - * http://soundfile.sapp.org/doc/WaveFormat - * https://sites.google.com/site/musicgapi/technical-documents/wav-file-format - * |52 49|46 46|52 4A|02 00| - * |c1 sz|af|nc|sp rt|bt rt| - * |ba|bs|da ta|c2 sz| - - * | R I F F |chunk size |W A V E |f m t | - * 19026 - * | 52 49 46 46 52 4A 02 00 57 41 56 45 66 6D 74 20 | RIFFRJ..WAVEfmt - - * | subchnk size|fmt |nChan |samplerate |byte rate | - * | 50 | 2 |2 |11025 |11289 | - * | 32 00 00 00 02 00 02 00 11 2B 00 00 19 2C 00 00 | 2........+...,.. - - * |blkaln|bps |efmt |XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX| - * | 512 |4 |32 |500 |7 |256 |0 |512 | - * | 512 |4 |32 |459252 |256 | - * | 00 02|04 00 20 00 F4 01 07 00 00 01 00 00 00 02 | .... .ô......... - - * | XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX | - * | - * | 00 FF 00 00 00 00 C0 00 40 00 F0 00 00 00 CC 01 | .ÿ....À.@.ð...Ì. - - * | XXXXXXXXXXXXXXXXXX|d a t a |chunk size |XXXXX | - * | | |18944 | | - * | 30 FF 88 01 18 FF 64 61 74 61 00 4A 02 00 00 00 | 0ÿ...ÿdata.J.... - */ - - uint16_t cbSize = format->cbSize; - const char *formatFourcc = "WAVE"; - uint16_t wFormatTag = format->wFormatTag; - /* special handling for WMAUDIO2 */ - if (wFormatTag == FAUDIO_FORMAT_EXTENSIBLE && cbSize >= 22) - { - const FAudioWaveFormatExtensible *format_ex = - (const FAudioWaveFormatExtensible*) format; - uint16_t format_ex_tag = (uint16_t) (format_ex->SubFormat.Data1); - if (format_ex_tag == FAUDIO_FORMAT_WMAUDIO2) - { - cbSize = 0; - formatFourcc = "XWMA"; - wFormatTag = FAUDIO_FORMAT_WMAUDIO2; - } - } - - { /* RIFF chunk descriptor - 12 byte */ - /* ChunkID - 4 */ - io->write(io->data, "RIFF", 4, 1); - /* ChunkSize - 4 */ - uint32_t filesize = 0; /* the real file size is written in finalize step */ - io->write(io->data, &filesize, 4, 1); - /* Format - 4 */ - io->write(io->data, formatFourcc, 4, 1); - } - { /* fmt sub-chunk 24 */ - /* Subchunk1ID - 4 */ - io->write(io->data, "fmt ", 4, 1); - /* Subchunk1Size - 4 */ - /* 18 byte for WAVEFORMATEX and cbSize for WAVEFORMATEXTENDED */ - uint32_t chunk_data_size = 18 + (uint32_t) cbSize; - io->write(io->data, &chunk_data_size, 4, 1); - /* AudioFormat - 2 */ - io->write(io->data, &wFormatTag, 2, 1); - /* NumChannels - 2 */ - io->write(io->data, &format->nChannels, 2, 1); - /* SampleRate - 4 */ - io->write(io->data, &format->nSamplesPerSec, 4, 1); - /* ByteRate - 4 */ - /* SampleRate * NumChannels * BitsPerSample/8 */ - io->write(io->data, &format->nAvgBytesPerSec, 4, 1); - /* BlockAlign - 2 */ - /* NumChannels * BitsPerSample/8 */ - io->write(io->data, &format->nBlockAlign, 2, 1); - /* BitsPerSample - 2 */ - io->write(io->data, &format->wBitsPerSample, 2, 1); - } - /* in case of extensible audio format write the additional data to the file */ - { - /* always write the cbSize */ - io->write(io->data, &cbSize, 2, 1); - - if (cbSize >= 22) - { - /* we have a WAVEFORMATEXTENSIBLE struct to write */ - const FAudioWaveFormatExtensible *format_ex = - (const FAudioWaveFormatExtensible*) format; - io->write(io->data, &format_ex->Samples.wValidBitsPerSample, 2, 1); - io->write(io->data, &format_ex->dwChannelMask, 4, 1); - /* write FAudioGUID */ - io->write(io->data, &format_ex->SubFormat.Data1, 4, 1); - io->write(io->data, &format_ex->SubFormat.Data2, 2, 1); - io->write(io->data, &format_ex->SubFormat.Data3, 2, 1); - io->write(io->data, &format_ex->SubFormat.Data4, 1, 8); - } - if (format->cbSize > 22) - { - /* fill up the remaining cbSize bytes with zeros */ - uint8_t zero = 0; - for (uint16_t i=23; i<=format->cbSize; i++) - { - io->write(io->data, &zero, 1, 1); - } - } - } - { /* dpds sub-chunk - optional - 8 bytes + bufferWMA uint32_t samples */ - /* create file to hold the bufferWMA samples */ - FAudioIOStreamOut *io_dpds = DumpVoices_fopen(voice, format, "wb", "dpds"); - FAudio_close_out(io_dpds); - /* io_dpds file will be filled by SubmitBuffer */ - } - { /* data sub-chunk - 8 bytes + data */ - /* create file to hold the data samples */ - FAudioIOStreamOut *io_data = DumpVoices_fopen(voice, format, "wb", "data"); - FAudio_close_out(io_data); - /* io_data file will be filled by SubmitBuffer */ - } - FAudio_PlatformUnlockMutex((FAudioMutex) io->lock); - FAudio_close_out(io); -} - -static void FAudio_DUMPVOICE_Finalize(const FAudioSourceVoice *voice) -{ - const FAudioWaveFormatEx *format = voice->src.format; - - /* add dpds subchunk - optional */ - DumpVoices_finalize_section(voice, format, "dpds"); - /* add data subchunk */ - DumpVoices_finalize_section(voice, format, "data"); - - /* open main file to update filesize */ - FAudioIOStreamOut *io = DumpVoices_fopen(voice, format, "r+b", ""); - if (!io) - { - return; - } - FAudio_PlatformLockMutex((FAudioMutex) io->lock); - size_t file_size = io->size(io->data); - if (file_size >= 44) - { - /* update filesize */ - uint32_t chunk_size = (uint32_t)(file_size - 8); - io->seek(io->data, 4, FAUDIO_SEEK_SET); - io->write(io->data, &chunk_size, 4, 1); - } - FAudio_PlatformUnlockMutex((FAudioMutex) io->lock); - FAudio_close_out(io); -} - -static void FAudio_DUMPVOICE_WriteBuffer( - const FAudioSourceVoice *voice, - const FAudioBuffer *pBuffer, - const FAudioBufferWMA *pBufferWMA, - const uint32_t playBegin, - const uint32_t playLength -) { - FAudioIOStreamOut *io_data = DumpVoices_fopen(voice, voice->src.format, "ab", "data"); - if (io_data == NULL) - { - return; - } - - FAudio_PlatformLockMutex((FAudioMutex) io_data->lock); - if (pBufferWMA != NULL) - { - /* dump encoded buffer contents */ - if (pBufferWMA->PacketCount > 0) - { - FAudioIOStreamOut *io_dpds = DumpVoices_fopen(voice, voice->src.format, "ab", "dpds"); - if (io_dpds) - { - FAudio_PlatformLockMutex((FAudioMutex) io_dpds->lock); - /* write to dpds file */ - io_dpds->write(io_dpds->data, pBufferWMA->pDecodedPacketCumulativeBytes, sizeof(uint32_t), pBufferWMA->PacketCount); - FAudio_PlatformUnlockMutex((FAudioMutex) io_dpds->lock); - FAudio_close_out(io_dpds); - } - /* write buffer contents to data file */ - io_data->write(io_data->data, pBuffer->pAudioData, sizeof(uint8_t), pBuffer->AudioBytes); - } - } - else - { - /* dump unencoded buffer contents */ - uint16_t bytesPerFrame = (voice->src.format->nChannels * voice->src.format->wBitsPerSample / 8); - FAudio_assert(bytesPerFrame > 0); - const void *pAudioDataBegin = pBuffer->pAudioData + playBegin*bytesPerFrame; - io_data->write(io_data->data, pAudioDataBegin, bytesPerFrame, playLength); - } - FAudio_PlatformUnlockMutex((FAudioMutex) io_data->lock); - FAudio_close_out(io_data); -} - -#endif /* FAUDIO_DUMP_VOICES */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudioFX_reverb.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudioFX_reverb.c deleted file mode 100644 index b357b772..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudioFX_reverb.c +++ /dev/null @@ -1,1982 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAudioFX.h" -#include "FAudio_internal.h" - -/* #define DISABLE_SUBNORMALS */ -#ifdef DISABLE_SUBNORMALS -#include /* ONLY USE THIS FOR fpclassify/_fpclass! */ - -/* VS2010 doesn't define fpclassify (which is C99), so here it is. */ -#if defined(_MSC_VER) && !defined(fpclassify) -#define IS_SUBNORMAL(a) (_fpclass(a) & (_FPCLASS_ND | _FPCLASS_PD)) -#else -#define IS_SUBNORMAL(a) (fpclassify(a) == FP_SUBNORMAL) -#endif -#endif /* DISABLE_SUBNORMALS */ - -/* Utility Functions */ - -static inline float DbGainToFactor(float gain) -{ - return (float) FAudio_pow(10, gain / 20.0f); -} - -static inline uint32_t MsToSamples(float msec, int32_t sampleRate) -{ - return (uint32_t) ((sampleRate * msec) / 1000.0f); -} - -#ifndef DISABLE_SUBNORMALS -#define Undenormalize(a) ((a)) -#else /* DISABLE_SUBNORMALS */ -static inline float Undenormalize(float sample_in) -{ - if (IS_SUBNORMAL(sample_in)) - { - return 0.0f; - } - return sample_in; -} -#endif /* DISABLE_SUBNORMALS */ - -/* Component - Delay */ - -#define DSP_DELAY_MAX_DELAY_MS 300 - -typedef struct DspDelay -{ - int32_t sampleRate; - uint32_t capacity; /* In samples */ - uint32_t delay; /* In samples */ - uint32_t read_idx; - uint32_t write_idx; - float *buffer; -} DspDelay; - -static inline void DspDelay_Initialize( - DspDelay *filter, - int32_t sampleRate, - float delay_ms, - FAudioMallocFunc pMalloc -) { - FAudio_assert(delay_ms >= 0 && delay_ms <= DSP_DELAY_MAX_DELAY_MS); - - filter->sampleRate = sampleRate; - filter->capacity = MsToSamples(DSP_DELAY_MAX_DELAY_MS, sampleRate); - filter->delay = MsToSamples(delay_ms, sampleRate); - filter->read_idx = 0; - filter->write_idx = filter->delay; - filter->buffer = (float*) pMalloc(filter->capacity * sizeof(float)); - FAudio_zero(filter->buffer, filter->capacity * sizeof(float)); -} - -static inline void DspDelay_Change(DspDelay *filter, float delay_ms) -{ - FAudio_assert(delay_ms >= 0 && delay_ms <= DSP_DELAY_MAX_DELAY_MS); - - /* Length */ - filter->delay = MsToSamples(delay_ms, filter->sampleRate); - filter->read_idx = (filter->write_idx - filter->delay + filter->capacity) % filter->capacity; -} - -static inline float DspDelay_Read(DspDelay *filter) -{ - float delay_out; - - FAudio_assert(filter->read_idx < filter->capacity); - - delay_out = filter->buffer[filter->read_idx]; - filter->read_idx = (filter->read_idx + 1) % filter->capacity; - return delay_out; -} - -static inline void DspDelay_Write(DspDelay *filter, float sample) -{ - FAudio_assert(filter->write_idx < filter->capacity); - - filter->buffer[filter->write_idx] = sample; - filter->write_idx = (filter->write_idx + 1) % filter->capacity; -} - -static inline float DspDelay_Process(DspDelay *filter, float sample_in) -{ - float delay_out = DspDelay_Read(filter); - DspDelay_Write(filter, sample_in); - return delay_out; -} - -static inline float DspDelay_Tap(DspDelay *filter, uint32_t delay) -{ - FAudio_assert(delay <= filter->delay); - return filter->buffer[(filter->write_idx - delay + filter->capacity) % filter->capacity]; -} - -static inline void DspDelay_Reset(DspDelay *filter) -{ - filter->read_idx = 0; - filter->write_idx = filter->delay; - FAudio_zero(filter->buffer, filter->capacity * sizeof(float)); -} - -static inline void DspDelay_Destroy(DspDelay *filter, FAudioFreeFunc pFree) -{ - pFree(filter->buffer); -} - -static inline float DspComb_FeedbackFromRT60(DspDelay *delay, float rt60_ms) -{ - float exponent = ( - (-3.0f * delay->delay * 1000.0f) / - (delay->sampleRate * rt60_ms) - ); - return (float) FAudio_pow(10.0f, exponent); -} - -/* Component - Bi-Quad Filter */ - -typedef enum DspBiQuadType -{ - DSP_BIQUAD_LOWSHELVING, - DSP_BIQUAD_HIGHSHELVING -} DspBiQuadType; - -typedef struct DspBiQuad -{ - int32_t sampleRate; - float a0, a1, a2; - float b1, b2; - float c0, d0; - float delay0, delay1; -} DspBiQuad; - -static inline void DspBiQuad_Change( - DspBiQuad *filter, - DspBiQuadType type, - float frequency, - float q, - float gain -) { - const float TWOPI = 6.283185307179586476925286766559005; - float theta_c = (TWOPI * frequency) / (float) filter->sampleRate; - float mu = DbGainToFactor(gain); - float beta = (type == DSP_BIQUAD_LOWSHELVING) ? - 4.0f / (1 + mu) : - (1 + mu) / 4.0f; - float delta = beta * (float) FAudio_tan(theta_c * 0.5f); - float gamma = (1 - delta) / (1 + delta); - - if (type == DSP_BIQUAD_LOWSHELVING) - { - filter->a0 = (1 - gamma) * 0.5f; - filter->a1 = filter->a0; - } - else - { - filter->a0 = (1 + gamma) * 0.5f; - filter->a1 = -filter->a0; - } - - filter->a2 = 0.0f; - filter->b1 = -gamma; - filter->b2 = 0.0f; - filter->c0 = mu - 1.0f; - filter->d0 = 1.0f; -} - -static inline void DspBiQuad_Initialize( - DspBiQuad *filter, - int32_t sampleRate, - DspBiQuadType type, - float frequency, /* Corner frequency */ - float q, /* Only used by low/high-pass filters */ - float gain /* Only used by low/high-shelving filters */ -) { - filter->sampleRate = sampleRate; - filter->delay0 = 0.0f; - filter->delay1 = 0.0f; - DspBiQuad_Change(filter, type, frequency, q, gain); -} - -static inline float DspBiQuad_Process(DspBiQuad *filter, float sample_in) -{ - /* Direct Form II Transposed: - * - Less delay registers than Direct Form I - * - More numerically stable than Direct Form II - */ - float result = (filter->a0 * sample_in) + filter->delay0; - filter->delay0 = (filter->a1 * sample_in) - (filter->b1 * result) + filter->delay1; - filter->delay1 = (filter->a2 * sample_in) - (filter->b2 * result); - - return Undenormalize( - (result * filter->c0) + - (sample_in * filter->d0) - ); -} - -static inline void DspBiQuad_Reset(DspBiQuad *filter) -{ - filter->delay0 = 0.0f; - filter->delay1 = 0.0f; -} - -static inline void DspBiQuad_Destroy(DspBiQuad *filter) -{ -} - -/* Component - Comb Filter with Integrated Low/High Shelving Filters */ - -typedef struct DspCombShelving -{ - DspDelay comb_delay; - float comb_feedback_gain; - - DspBiQuad low_shelving; - DspBiQuad high_shelving; -} DspCombShelving; - -static inline void DspCombShelving_Initialize( - DspCombShelving *filter, - int32_t sampleRate, - float delay_ms, - float rt60_ms, - float low_frequency, - float low_gain, - float high_frequency, - float high_gain, - FAudioMallocFunc pMalloc -) { - DspDelay_Initialize(&filter->comb_delay, sampleRate, delay_ms, pMalloc); - filter->comb_feedback_gain = DspComb_FeedbackFromRT60( - &filter->comb_delay, - rt60_ms - ); - - DspBiQuad_Initialize( - &filter->low_shelving, - sampleRate, - DSP_BIQUAD_LOWSHELVING, - low_frequency, - 0.0f, - low_gain - ); - DspBiQuad_Initialize( - &filter->high_shelving, - sampleRate, - DSP_BIQUAD_HIGHSHELVING, - high_frequency, - 0.0f, - high_gain - ); -} - -static inline float DspCombShelving_Process( - DspCombShelving *filter, - float sample_in -) { - float delay_out, feedback, to_buf; - - delay_out = DspDelay_Read(&filter->comb_delay); - - /* Apply shelving filters */ - feedback = DspBiQuad_Process(&filter->high_shelving, delay_out); - feedback = DspBiQuad_Process(&filter->low_shelving, feedback); - - /* Apply comb filter */ - to_buf = Undenormalize(sample_in + (filter->comb_feedback_gain * feedback)); - DspDelay_Write(&filter->comb_delay, to_buf); - - return delay_out; -} - -static inline void DspCombShelving_Reset(DspCombShelving *filter) -{ - DspDelay_Reset(&filter->comb_delay); - DspBiQuad_Reset(&filter->low_shelving); - DspBiQuad_Reset(&filter->high_shelving); -} - -static inline void DspCombShelving_Destroy( - DspCombShelving *filter, - FAudioFreeFunc pFree -) { - DspDelay_Destroy(&filter->comb_delay, pFree); - DspBiQuad_Destroy(&filter->low_shelving); - DspBiQuad_Destroy(&filter->high_shelving); -} - -/* Component - Delaying All-Pass Filter */ - -typedef struct DspAllPass -{ - DspDelay delay; - float feedback_gain; -} DspAllPass; - -static inline void DspAllPass_Initialize( - DspAllPass *filter, - int32_t sampleRate, - float delay_ms, - float gain, - FAudioMallocFunc pMalloc -) { - DspDelay_Initialize(&filter->delay, sampleRate, delay_ms, pMalloc); - filter->feedback_gain = gain; -} - -static inline void DspAllPass_Change(DspAllPass *filter, float delay_ms, float gain) -{ - DspDelay_Change(&filter->delay, delay_ms); - filter->feedback_gain = gain; -} - -static inline float DspAllPass_Process(DspAllPass *filter, float sample_in) -{ - float delay_out, to_buf; - - delay_out = DspDelay_Read(&filter->delay); - - to_buf = Undenormalize(sample_in + (filter->feedback_gain * delay_out)); - DspDelay_Write(&filter->delay, to_buf); - - return Undenormalize(delay_out - (filter->feedback_gain * to_buf)); -} - -static inline void DspAllPass_Reset(DspAllPass *filter) -{ - DspDelay_Reset(&filter->delay); -} - -static inline void DspAllPass_Destroy(DspAllPass *filter, FAudioFreeFunc pFree) -{ - DspDelay_Destroy(&filter->delay, pFree); -} - -/* -Reverb network - loosely based on the reverberator from -"Designing Audio Effect Plug-Ins in C++" by Will Pirkle and -the classic classic Schroeder-Moorer reverberator with modifications -to fit the XAudio2FX parameters. - - - In +--------+ +----+ +------------+ +-----+ - ----|--->PreDelay---->APF1---+--->Sub LeftCh |----->| | Left Out - | +--------+ +----+ | +------------+ | Wet |--------> - | | +------------+ | | - | |---|Sub RightCh |----->| Dry | - | +------------+ | | Right Out - | | Mix |--------> - +----------------------------------------------->| | - +-----+ - Sub routine per channel : - - In +-----+ +-----+ * cg - ---+->|Delay|--+---|Comb1|------+ - | +-----+ | +-----+ | - | | | - | | +-----+ * cg | - | +--->Comb2|------+ - | | +-----+ | +-----+ - | | +---->| SUM |--------+ - | | +-----+ * cg | +-----+ | - | +--->... |------+ | - | * g0 | +-----+ | | - | | | | - | +--->-----+ * cg | | - | |Comb8|------+ | - | +-----+ | - v | - +-----+ g1 +----+ +----+ +----+ +----+ | - | SUM |<------|APF4|<--|APF3|<--|APF2|<--|APF1|<-----+ - +-----+ +----+ +----+ +----+ +----+ - | - | - | +-------------+ Out - +----------->|RoomFilter |------------------------> - +-------------+ - - -Parameters: - -float WetDryMix; 0 - 100 (0 = fully dry, 100 = fully wet) -uint32_t ReflectionsDelay; 0 - 300 ms -uint8_t ReverbDelay; 0 - 85 ms -uint8_t RearDelay; 0 - 5 ms -uint8_t PositionLeft; 0 - 30 -uint8_t PositionRight; 0 - 30 -uint8_t PositionMatrixLeft; 0 - 30 -uint8_t PositionMatrixRight; 0 - 30 -uint8_t EarlyDiffusion; 0 - 15 -uint8_t LateDiffusion; 0 - 15 -uint8_t LowEQGain; 0 - 12 (formula dB = LowEQGain - 8) -uint8_t LowEQCutoff; 0 - 9 (formula Hz = 50 + (LowEQCutoff * 50)) -uint8_t HighEQGain; 0 - 8 (formula dB = HighEQGain - 8) -uint8_t HighEQCutoff; 0 - 14 (formula Hz = 1000 + (HighEqCutoff * 500)) -float RoomFilterFreq; 20 - 20000Hz -float RoomFilterMain; -100 - 0dB -float RoomFilterHF; -100 - 0dB -float ReflectionsGain; -100 - 20dB -float ReverbGain; -100 - 20dB -float DecayTime; 0.1 - .... ms -float Density; 0 - 100 % -float RoomSize; 1 - 100 feet (NOT USED YET) - -*/ - -#define REVERB_COUNT_COMB 8 -#define REVERB_COUNT_APF_IN 1 -#define REVERB_COUNT_APF_OUT 4 - -static float COMB_DELAYS[REVERB_COUNT_COMB] = -{ - 25.31f, - 26.94f, - 28.96f, - 30.75f, - 32.24f, - 33.80f, - 35.31f, - 36.67f -}; - -static float APF_IN_DELAYS[REVERB_COUNT_APF_IN] = -{ - 13.28f, -/* 28.13f */ -}; - -static float APF_OUT_DELAYS[REVERB_COUNT_APF_OUT] = -{ - 5.10f, - 12.61f, - 10.0f, - 7.73f -}; - -typedef enum FAudio_ChannelPositionFlags -{ - Position_Left = 0x1, - Position_Right = 0x2, - Position_Center = 0x4, - Position_Rear = 0x8, -} FAudio_ChannelPositionFlags; - -static FAudio_ChannelPositionFlags FAudio_GetChannelPositionFlags(int32_t total_channels, int32_t channel) -{ - switch (total_channels) - { - case 1: - return Position_Center; - - case 2: - return (channel == 0) ? Position_Left : Position_Right; - - case 4: - switch (channel) - { - case 0: - return Position_Left; - case 1: - return Position_Right; - case 2: - return Position_Left | Position_Rear; - case 3: - return Position_Right | Position_Rear; - } - FAudio_assert(0 && "Unsupported channel count"); - break; - case 5: - switch (channel) - { - case 0: - return Position_Left; - case 1: - return Position_Right; - case 2: - return Position_Center; - case 3: - return Position_Left | Position_Rear; - case 4: - return Position_Right | Position_Rear; - } - FAudio_assert(0 && "Unsupported channel count"); - break; - default: - FAudio_assert(0 && "Unsupported channel count"); - break; - } - - /* shouldn't happen, but default to left speaker */ - return Position_Left; -} - -float FAudio_GetStereoSpreadDelayMS(int32_t total_channels, int32_t channel) -{ - FAudio_ChannelPositionFlags flags = FAudio_GetChannelPositionFlags(total_channels, channel); - return (flags & Position_Right) ? 0.5216f : 0.0f; -} - -typedef struct DspReverbChannel -{ - DspDelay reverb_delay; - DspCombShelving lpf_comb[REVERB_COUNT_COMB]; - DspAllPass apf_out[REVERB_COUNT_APF_OUT]; - DspBiQuad room_high_shelf; - float early_gain; - float gain; -} DspReverbChannel; - -typedef struct DspReverb -{ - DspDelay early_delay; - DspAllPass apf_in[REVERB_COUNT_APF_IN]; - - int32_t in_channels; - int32_t out_channels; - int32_t reverb_channels; - DspReverbChannel channel[5]; - - float early_gain; - float reverb_gain; - float room_gain; - float wet_ratio; - float dry_ratio; -} DspReverb; - -static inline void DspReverb_Create( - DspReverb *reverb, - int32_t sampleRate, - int32_t in_channels, - int32_t out_channels, - FAudioMallocFunc pMalloc -) { - int32_t i, c; - - FAudio_assert(in_channels == 1 || in_channels == 2 || in_channels == 6); - FAudio_assert(out_channels == 1 || out_channels == 2 || out_channels == 6); - - FAudio_zero(reverb, sizeof(DspReverb)); - DspDelay_Initialize(&reverb->early_delay, sampleRate, 10, pMalloc); - - for (i = 0; i < REVERB_COUNT_APF_IN; i += 1) - { - DspAllPass_Initialize( - &reverb->apf_in[i], - sampleRate, - APF_IN_DELAYS[i], - 0.5f, - pMalloc - ); - } - - if (out_channels == 6) - { - reverb->reverb_channels = (in_channels == 6) ? 5 : 4; - } - else - { - reverb->reverb_channels = out_channels; - } - - for (c = 0; c < reverb->reverb_channels; c += 1) - { - DspDelay_Initialize( - &reverb->channel[c].reverb_delay, - sampleRate, - 10, - pMalloc - ); - - for (i = 0; i < REVERB_COUNT_COMB; i += 1) - { - DspCombShelving_Initialize( - &reverb->channel[c].lpf_comb[i], - sampleRate, - COMB_DELAYS[i] + FAudio_GetStereoSpreadDelayMS(reverb->reverb_channels, c), - 500, - 500, - -6, - 5000, - -6, - pMalloc - ); - } - - for (i = 0; i < REVERB_COUNT_APF_OUT; i += 1) - { - DspAllPass_Initialize( - &reverb->channel[c].apf_out[i], - sampleRate, - APF_OUT_DELAYS[i] + FAudio_GetStereoSpreadDelayMS(reverb->reverb_channels, c), - 0.5f, - pMalloc - ); - } - - DspBiQuad_Initialize( - &reverb->channel[c].room_high_shelf, - sampleRate, - DSP_BIQUAD_HIGHSHELVING, - 5000, - 0, - -10 - ); - reverb->channel[c].gain = 1.0f; - } - - reverb->early_gain = 1.0f; - reverb->reverb_gain = 1.0f; - reverb->dry_ratio = 0.0f; - reverb->wet_ratio = 1.0f; - reverb->in_channels = in_channels; - reverb->out_channels = out_channels; -} - -static inline void DspReverb_Destroy(DspReverb *reverb, FAudioFreeFunc pFree) -{ - int32_t i, c; - - DspDelay_Destroy(&reverb->early_delay, pFree); - - for (i = 0; i < REVERB_COUNT_APF_IN; i += 1) - { - DspAllPass_Destroy(&reverb->apf_in[i], pFree); - } - - for (c = 0; c < reverb->reverb_channels; c += 1) - { - DspDelay_Destroy(&reverb->channel[c].reverb_delay, pFree); - - for (i = 0; i < REVERB_COUNT_COMB; i += 1) - { - DspCombShelving_Destroy( - &reverb->channel[c].lpf_comb[i], - pFree - ); - } - - DspBiQuad_Destroy(&reverb->channel[c].room_high_shelf); - - for (i = 0; i < REVERB_COUNT_APF_OUT; i += 1) - { - DspAllPass_Destroy( - &reverb->channel[c].apf_out[i], - pFree - ); - } - } -} - -static inline void DspReverb_SetParameters( - DspReverb *reverb, - FAudioFXReverbParameters *params -) { - float early_diffusion, late_diffusion; - DspCombShelving *comb; - int32_t i, c; - - /* Pre-Delay */ - DspDelay_Change(&reverb->early_delay, (float) params->ReflectionsDelay); - - /* Early Reflections - Diffusion */ - early_diffusion = 0.6f - ((params->EarlyDiffusion / 15.0f) * 0.2f); - - for (i = 0; i < REVERB_COUNT_APF_IN; i += 1) - { - DspAllPass_Change( - &reverb->apf_in[i], - APF_IN_DELAYS[i], - early_diffusion - ); - } - - /* Reverberation */ - for (c = 0; c < reverb->reverb_channels; c += 1) - { - float channel_delay = - (FAudio_GetChannelPositionFlags(reverb->reverb_channels, c) & Position_Rear) ? - params->RearDelay : - 0.0f; - - DspDelay_Change( - &reverb->channel[c].reverb_delay, - (float) params->ReverbDelay + channel_delay - ); - - for (i = 0; i < REVERB_COUNT_COMB; i += 1) - { - comb = &reverb->channel[c].lpf_comb[i]; - - /* Set decay time of comb filter */ - DspDelay_Change( - &comb->comb_delay, - COMB_DELAYS[i] + FAudio_GetStereoSpreadDelayMS(reverb->reverb_channels, c) - ); - comb->comb_feedback_gain = DspComb_FeedbackFromRT60( - &comb->comb_delay, - FAudio_max(params->DecayTime, FAUDIOFX_REVERB_MIN_DECAY_TIME) * 1000.0f - ); - - /* High/Low shelving */ - DspBiQuad_Change( - &comb->low_shelving, - DSP_BIQUAD_LOWSHELVING, - 50.0f + params->LowEQCutoff * 50.0f, - 0.0f, - params->LowEQGain - 8.0f - ); - DspBiQuad_Change( - &comb->high_shelving, - DSP_BIQUAD_HIGHSHELVING, - 1000 + params->HighEQCutoff * 500.0f, - 0.0f, - params->HighEQGain - 8.0f - ); - } - } - - /* Gain */ - reverb->early_gain = DbGainToFactor(params->ReflectionsGain); - reverb->reverb_gain = DbGainToFactor(params->ReverbGain); - reverb->room_gain = DbGainToFactor(params->RoomFilterMain); - - /* Late Diffusion */ - late_diffusion = 0.6f - ((params->LateDiffusion / 15.0f) * 0.2f); - - for (c = 0; c < reverb->reverb_channels; c += 1) - { - FAudio_ChannelPositionFlags position = FAudio_GetChannelPositionFlags(reverb->reverb_channels, c); - float gain; - - for (i = 0; i < REVERB_COUNT_APF_OUT; i += 1) - { - DspAllPass_Change( - &reverb->channel[c].apf_out[i], - APF_OUT_DELAYS[i] + FAudio_GetStereoSpreadDelayMS(reverb->reverb_channels, c), - late_diffusion - ); - } - - DspBiQuad_Change( - &reverb->channel[c].room_high_shelf, - DSP_BIQUAD_HIGHSHELVING, - params->RoomFilterFreq, - 0.0f, - params->RoomFilterMain + params->RoomFilterHF - ); - - if (position & Position_Left) - { - gain = params->PositionMatrixLeft; - } - else if (position & Position_Right) - { - gain = params->PositionMatrixRight; - } - else /*if (position & Position_Center) */ - { - gain = (params->PositionMatrixLeft + params->PositionMatrixRight) / 2.0f; - } - reverb->channel[c].gain = 1.5f - (gain / 27.0f) * 0.5f; - - if (position & Position_Rear) - { - /* Rear-channel Attenuation */ - reverb->channel[c].gain *= 0.75f; - } - - if (position & Position_Left) - { - gain = params->PositionLeft; - } - else if (position & Position_Right) - { - gain = params->PositionRight; - } - else /*if (position & Position_Center) */ - { - gain = (params->PositionLeft + params->PositionRight) / 2.0f; - } - reverb->channel[c].early_gain = 1.2f - (gain / 6.0f) * 0.2f; - reverb->channel[c].early_gain = ( - reverb->channel[c].early_gain * - reverb->early_gain - ); - } - - /* Wet/Dry Mix (100 = fully wet, 0 = fully dry) */ - reverb->wet_ratio = params->WetDryMix / 100.0f; - reverb->dry_ratio = 1.0f - reverb->wet_ratio; -} - -static inline void DspReverb_SetParameters9( - DspReverb *reverb, - FAudioFXReverbParameters9 *params -) { - FAudioFXReverbParameters oldParams; - oldParams.WetDryMix = params->WetDryMix; - oldParams.ReflectionsDelay = params->ReflectionsDelay; - oldParams.ReverbDelay = params->ReverbDelay; - oldParams.RearDelay = params->RearDelay; - oldParams.PositionLeft = params->PositionLeft; - oldParams.PositionRight = params->PositionRight; - oldParams.PositionMatrixLeft = params->PositionMatrixLeft; - oldParams.PositionMatrixRight = params->PositionMatrixRight; - oldParams.EarlyDiffusion = params->EarlyDiffusion; - oldParams.LateDiffusion = params->LateDiffusion; - oldParams.LowEQGain = params->LowEQGain; - oldParams.LowEQCutoff = params->LowEQCutoff; - oldParams.HighEQGain = params->HighEQGain; - oldParams.HighEQCutoff = params->HighEQCutoff; - oldParams.RoomFilterFreq = params->RoomFilterFreq; - oldParams.RoomFilterMain = params->RoomFilterMain; - oldParams.RoomFilterHF = params->RoomFilterHF; - oldParams.ReflectionsGain = params->ReflectionsGain; - oldParams.ReverbGain = params->ReverbGain; - oldParams.DecayTime = params->DecayTime; - oldParams.Density = params->Density; - oldParams.RoomSize = params->RoomSize; - DspReverb_SetParameters(reverb, &oldParams); -} - -static inline float DspReverb_INTERNAL_ProcessEarly( - DspReverb *reverb, - float sample_in -) { - float early; - int32_t i; - - /* Pre-Delay */ - early = DspDelay_Process(&reverb->early_delay, sample_in); - - /* Early Reflections */ - for (i = 0; i < REVERB_COUNT_APF_IN; i += 1) - { - early = DspAllPass_Process(&reverb->apf_in[i], early); - } - - return early; -} - -static inline float DspReverb_INTERNAL_ProcessChannel( - DspReverb *reverb, - DspReverbChannel *channel, - float sample_in -) { - float revdelay, early_late, sample_out; - int32_t i; - - revdelay = DspDelay_Process(&channel->reverb_delay, sample_in); - - sample_out = 0.0f; - for (i = 0; i < REVERB_COUNT_COMB; i += 1) - { - sample_out += DspCombShelving_Process( - &channel->lpf_comb[i], - revdelay - ); - } - sample_out /= (float) REVERB_COUNT_COMB; - - /* Output Diffusion */ - for (i = 0; i < REVERB_COUNT_APF_OUT; i += 1) - { - sample_out = DspAllPass_Process( - &channel->apf_out[i], - sample_out - ); - } - - /* Combine early reflections and reverberation */ - early_late = ( - (sample_in * channel->early_gain) + - (sample_out * reverb->reverb_gain) - ); - - /* Room filter */ - sample_out = DspBiQuad_Process( - &channel->room_high_shelf, - early_late * reverb->room_gain - ); - - /* PositionMatrixLeft/Right */ - return sample_out * channel->gain; -} - -/* Reverb Process Functions */ - -static inline float DspReverb_INTERNAL_Process_1_to_1( - DspReverb *reverb, - float *restrict samples_in, - float *restrict samples_out, - size_t sample_count -) { - const float *in_end = samples_in + sample_count; - float in, early, late, out; - float squared_sum = 0.0f; - - while (samples_in < in_end) - { - /* Input */ - in = *samples_in++; - - /* Early Reflections */ - early = DspReverb_INTERNAL_ProcessEarly(reverb, in); - - /* Reverberation */ - late = DspReverb_INTERNAL_ProcessChannel( - reverb, - &reverb->channel[0], - early - ); - - /* Wet/Dry Mix */ - out = (late * reverb->wet_ratio) + (in * reverb->dry_ratio); - squared_sum += out * out; - - /* Output */ - *samples_out++ = out; - } - - return squared_sum; -} - -static inline float DspReverb_INTERNAL_Process_1_to_5p1( - DspReverb *reverb, - float *restrict samples_in, - float *restrict samples_out, - size_t sample_count -) { - const float *in_end = samples_in + sample_count; - float in, in_ratio, early, late[4]; - float squared_sum = 0.0f; - int32_t c; - - while (samples_in < in_end) - { - /* Input */ - in = *samples_in++; - in_ratio = in * reverb->dry_ratio; - - /* Early Reflections */ - early = DspReverb_INTERNAL_ProcessEarly(reverb, in); - - /* Reverberation with Wet/Dry Mix */ - for (c = 0; c < 4; c += 1) - { - late[c] = (DspReverb_INTERNAL_ProcessChannel( - reverb, - &reverb->channel[c], - early - ) * reverb->wet_ratio) + in_ratio; - squared_sum += late[c] * late[c]; - } - - /* Output */ - *samples_out++ = late[0]; /* Front Left */ - *samples_out++ = late[1]; /* Front Right */ - *samples_out++ = 0.0f; /* Center */ - *samples_out++ = 0.0f; /* LFE */ - *samples_out++ = late[2]; /* Rear Left */ - *samples_out++ = late[3]; /* Rear Right */ - } - - return squared_sum; -} - -static inline float DspReverb_INTERNAL_Process_2_to_2( - DspReverb *reverb, - float *restrict samples_in, - float *restrict samples_out, - size_t sample_count -) { - const float *in_end = samples_in + sample_count; - float in, early, late[2]; - float squared_sum = 0; - - while (samples_in < in_end) - { - /* Input - Combine 2 channels into 1 */ - in = (samples_in[0] + samples_in[1]) / 2.0f; - - /* Early Reflections */ - early = DspReverb_INTERNAL_ProcessEarly(reverb, in); - - /* Reverberation with Wet/Dry Mix */ - late[0] = (DspReverb_INTERNAL_ProcessChannel( - reverb, - &reverb->channel[0], - early - ) * reverb->wet_ratio) + samples_in[0] * reverb->dry_ratio; - late[1] = (DspReverb_INTERNAL_ProcessChannel( - reverb, - &reverb->channel[1], - early - ) * reverb->wet_ratio) + samples_in[1] * reverb->dry_ratio; - squared_sum += (late[0] * late[0]) + (late[1] * late[1]); - - /* Output */ - *samples_out++ = late[0]; - *samples_out++ = late[1]; - - samples_in += 2; - } - - return squared_sum; -} - -static inline float DspReverb_INTERNAL_Process_2_to_5p1( - DspReverb *reverb, - float *restrict samples_in, - float *restrict samples_out, - size_t sample_count -) { - const float *in_end = samples_in + sample_count; - float in, in_ratio, early, late[4]; - float squared_sum = 0; - int32_t c; - - while (samples_in < in_end) - { - /* Input - Combine 2 channels into 1 */ - in = (samples_in[0] + samples_in[1]) / 2.0f; - in_ratio = in * reverb->dry_ratio; - samples_in += 2; - - /* Early Reflections */ - early = DspReverb_INTERNAL_ProcessEarly(reverb, in); - - /* Reverberation with Wet/Dry Mix */ - for (c = 0; c < 4; c += 1) - { - late[c] = (DspReverb_INTERNAL_ProcessChannel( - reverb, - &reverb->channel[c], - early - ) * reverb->wet_ratio) + in_ratio; - squared_sum += late[c] * late[c]; - } - - /* Output */ - *samples_out++ = late[0]; /* Front Left */ - *samples_out++ = late[1]; /* Front Right */ - *samples_out++ = 0.0f; /* Center */ - *samples_out++ = 0.0f; /* LFE */ - *samples_out++ = late[2]; /* Rear Left */ - *samples_out++ = late[3]; /* Rear Right */ - } - - return squared_sum; -} - -static inline float DspReverb_INTERNAL_Process_5p1_to_5p1( - DspReverb *reverb, - float *restrict samples_in, - float *restrict samples_out, - size_t sample_count -) { - const float *in_end = samples_in + sample_count; - float in, in_ratio, early, late[5]; - float squared_sum = 0; - int32_t c; - - while (samples_in < in_end) - { - /* Input - Combine non-LFE channels into 1 */ - in = (samples_in[0] + samples_in[1] + samples_in[2] + - samples_in[4] + samples_in[5]) / 5.0f; - in_ratio = in * reverb->dry_ratio; - - /* Early Reflections */ - early = DspReverb_INTERNAL_ProcessEarly(reverb, in); - - /* Reverberation with Wet/Dry Mix */ - for (c = 0; c < 5; c += 1) - { - late[c] = (DspReverb_INTERNAL_ProcessChannel( - reverb, - &reverb->channel[c], - early - ) * reverb->wet_ratio) + in_ratio; - squared_sum += late[c] * late[c]; - } - - /* Output */ - *samples_out++ = late[0]; /* Front Left */ - *samples_out++ = late[1]; /* Front Right */ - *samples_out++ = late[2]; /* Center */ - *samples_out++ = samples_in[3]; /* LFE, pass through */ - *samples_out++ = late[3]; /* Rear Left */ - *samples_out++ = late[4]; /* Rear Right */ - - samples_in += 6; - } - - return squared_sum; -} - -#undef OUTPUT_SAMPLE - -/* Reverb FAPO Implementation */ - -const FAudioGUID FAudioFX_CLSID_AudioReverb = /* 2.7 */ -{ - 0x6A93130E, - 0xCB4E, - 0x4CE1, - { - 0xA9, - 0xCF, - 0xE7, - 0x58, - 0x80, - 0x0B, - 0xB1, - 0x79 - } -}; - -static FAPORegistrationProperties ReverbProperties = -{ - /* .clsid = */ {0}, - /*.FriendlyName = */ - { - 'R', 'e', 'v', 'e', 'r', 'b', '\0' - }, - /*.CopyrightInfo = */ { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */ ( - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount = */ 1 -}; - -typedef struct FAudioFXReverb -{ - FAPOBase base; - - uint16_t inChannels; - uint16_t outChannels; - uint32_t sampleRate; - uint16_t inBlockAlign; - uint16_t outBlockAlign; - - uint8_t apiVersion; - DspReverb reverb; -} FAudioFXReverb; - -static inline int8_t IsFloatFormat(const FAudioWaveFormatEx *format) -{ - if (format->wFormatTag == FAUDIO_FORMAT_IEEE_FLOAT) - { - /* Plain ol' WaveFormatEx */ - return 1; - } - - if (format->wFormatTag == FAUDIO_FORMAT_EXTENSIBLE) - { - /* WaveFormatExtensible, match GUID */ - #define MAKE_SUBFORMAT_GUID(guid, fmt) \ - static FAudioGUID KSDATAFORMAT_SUBTYPE_##guid = \ - { \ - (uint16_t) (fmt), 0x0000, 0x0010, \ - { \ - 0x80, 0x00, 0x00, 0xaa, \ - 0x00, 0x38, 0x9b, 0x71 \ - } \ - } - MAKE_SUBFORMAT_GUID(IEEE_FLOAT, 3); - #undef MAKE_SUBFORMAT_GUID - - if (FAudio_memcmp( - &((FAudioWaveFormatExtensible*) format)->SubFormat, - &KSDATAFORMAT_SUBTYPE_IEEE_FLOAT, - sizeof(FAudioGUID) - ) == 0) { - return 1; - } - } - - return 0; -} - -uint32_t FAudioFXReverb_IsInputFormatSupported( - FAPOBase *fapo, - const FAudioWaveFormatEx *pOutputFormat, - const FAudioWaveFormatEx *pRequestedInputFormat, - FAudioWaveFormatEx **ppSupportedInputFormat -) { - uint32_t result = 0; - -#define SET_SUPPORTED_FIELD(field, value) \ - result = 1; \ - if (ppSupportedInputFormat && *ppSupportedInputFormat) \ - { \ - (*ppSupportedInputFormat)->field = (value); \ - } - - /* Sample Rate */ - if (pOutputFormat->nSamplesPerSec != pRequestedInputFormat->nSamplesPerSec) - { - SET_SUPPORTED_FIELD(nSamplesPerSec, pOutputFormat->nSamplesPerSec); - } - - /* Data Type */ - if (!IsFloatFormat(pRequestedInputFormat)) - { - SET_SUPPORTED_FIELD(wFormatTag, FAUDIO_FORMAT_IEEE_FLOAT); - } - - /* Input/Output Channel Count */ - if (pOutputFormat->nChannels == 1 || pOutputFormat->nChannels == 2) - { - if (pRequestedInputFormat->nChannels != pOutputFormat->nChannels) - { - SET_SUPPORTED_FIELD(nChannels, pOutputFormat->nChannels); - } - } - else if (pOutputFormat->nChannels == 6) - { - if ( pRequestedInputFormat->nChannels != 1 && - pRequestedInputFormat->nChannels != 2 && - pRequestedInputFormat->nChannels != 6 ) - { - SET_SUPPORTED_FIELD(nChannels, 1); - } - } - else - { - SET_SUPPORTED_FIELD(nChannels, 1); - } - -#undef SET_SUPPORTED_FIELD - - return result; -} - - -uint32_t FAudioFXReverb_IsOutputFormatSupported( - FAPOBase *fapo, - const FAudioWaveFormatEx *pInputFormat, - const FAudioWaveFormatEx *pRequestedOutputFormat, - FAudioWaveFormatEx **ppSupportedOutputFormat -) { - uint32_t result = 0; - -#define SET_SUPPORTED_FIELD(field, value) \ - result = 1; \ - if (ppSupportedOutputFormat && *ppSupportedOutputFormat) \ - { \ - (*ppSupportedOutputFormat)->field = (value); \ - } - - /* Sample Rate */ - if (pInputFormat->nSamplesPerSec != pRequestedOutputFormat->nSamplesPerSec) - { - SET_SUPPORTED_FIELD(nSamplesPerSec, pInputFormat->nSamplesPerSec); - } - - /* Data Type */ - if (!IsFloatFormat(pRequestedOutputFormat)) - { - SET_SUPPORTED_FIELD(wFormatTag, FAUDIO_FORMAT_IEEE_FLOAT); - } - - /* Input/Output Channel Count */ - if (pInputFormat->nChannels == 1 || pInputFormat->nChannels == 2) - { - if ( pRequestedOutputFormat->nChannels != pInputFormat->nChannels && - pRequestedOutputFormat->nChannels != 6) - { - SET_SUPPORTED_FIELD(nChannels, pInputFormat->nChannels); - } - } - else if (pInputFormat->nChannels == 6) - { - if (pRequestedOutputFormat->nChannels != 6) - { - SET_SUPPORTED_FIELD(nChannels, pInputFormat->nChannels); - } - } - else - { - SET_SUPPORTED_FIELD(nChannels, 1); - } - -#undef SET_SUPPORTED_FIELD - - return result; -} - -uint32_t FAudioFXReverb_Initialize( - FAudioFXReverb *fapo, - const void* pData, - uint32_t DataByteSize -) { - #define INITPARAMS(offset) \ - FAudio_memcpy( \ - fapo->base.m_pParameterBlocks + DataByteSize * offset, \ - pData, \ - DataByteSize \ - ); - INITPARAMS(0) - INITPARAMS(1) - INITPARAMS(2) - #undef INITPARAMS - return 0; -} - -uint32_t FAudioFXReverb_LockForProcess( - FAudioFXReverb *fapo, - uint32_t InputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pInputLockedParameters, - uint32_t OutputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pOutputLockedParameters -) { - /* Reverb specific validation */ - if (!IsFloatFormat(pInputLockedParameters->pFormat)) - { - return FAPO_E_FORMAT_UNSUPPORTED; - } - - if ( pInputLockedParameters->pFormat->nSamplesPerSec < FAUDIOFX_REVERB_MIN_FRAMERATE || - pInputLockedParameters->pFormat->nSamplesPerSec > FAUDIOFX_REVERB_MAX_FRAMERATE ) - { - return FAPO_E_FORMAT_UNSUPPORTED; - } - - if (!( (pInputLockedParameters->pFormat->nChannels == 1 && - (pOutputLockedParameters->pFormat->nChannels == 1 || - pOutputLockedParameters->pFormat->nChannels == 6)) || - (pInputLockedParameters->pFormat->nChannels == 2 && - (pOutputLockedParameters->pFormat->nChannels == 2 || - pOutputLockedParameters->pFormat->nChannels == 6)) || - (pInputLockedParameters->pFormat->nChannels == 6 && - pOutputLockedParameters->pFormat->nChannels == 6))) - { - return FAPO_E_FORMAT_UNSUPPORTED; - } - - /* Save the things we care about */ - fapo->inChannels = pInputLockedParameters->pFormat->nChannels; - fapo->outChannels = pOutputLockedParameters->pFormat->nChannels; - fapo->sampleRate = pOutputLockedParameters->pFormat->nSamplesPerSec; - fapo->inBlockAlign = pInputLockedParameters->pFormat->nBlockAlign; - fapo->outBlockAlign = pOutputLockedParameters->pFormat->nBlockAlign; - - /* Create the network */ - DspReverb_Create( - &fapo->reverb, - fapo->sampleRate, - fapo->inChannels, - fapo->outChannels, - fapo->base.pMalloc - ); - - /* Initialize the effect to a default setting */ - if (fapo->apiVersion == 9) - { - DspReverb_SetParameters9( - &fapo->reverb, - (FAudioFXReverbParameters9*) fapo->base.m_pParameterBlocks - ); - } - else - { - DspReverb_SetParameters( - &fapo->reverb, - (FAudioFXReverbParameters*) fapo->base.m_pParameterBlocks - ); - } - - /* Call parent to do basic validation */ - return FAPOBase_LockForProcess( - &fapo->base, - InputLockedParameterCount, - pInputLockedParameters, - OutputLockedParameterCount, - pOutputLockedParameters - ); -} - -static inline void FAudioFXReverb_CopyBuffer( - FAudioFXReverb *fapo, - float *restrict buffer_in, - float *restrict buffer_out, - size_t frames_in -) { - /* In-place processing? */ - if (buffer_in == buffer_out) - { - return; - } - - /* equal channel count */ - if (fapo->inBlockAlign == fapo->outBlockAlign) - { - FAudio_memcpy( - buffer_out, - buffer_in, - fapo->inBlockAlign * frames_in - ); - return; - } - - /* 1 -> 5.1 */ - if (fapo->inChannels == 1 && fapo->outChannels == 6) - { - const float *in_end = buffer_in + frames_in; - while (buffer_in < in_end) - { - *buffer_out++ = *buffer_in; - *buffer_out++ = *buffer_in++; - *buffer_out++ = 0.0f; - *buffer_out++ = 0.0f; - *buffer_out++ = 0.0f; - *buffer_out++ = 0.0f; - } - return; - } - - /* 2 -> 5.1 */ - if (fapo->inChannels == 2 && fapo->outChannels == 6) - { - const float *in_end = buffer_in + (frames_in * 2); - while (buffer_in < in_end) - { - *buffer_out++ = *buffer_in++; - *buffer_out++ = *buffer_in++; - *buffer_out++ = 0.0f; - *buffer_out++ = 0.0f; - *buffer_out++ = 0.0f; - *buffer_out++ = 0.0f; - } - return; - } - - FAudio_assert(0 && "Unsupported channel combination"); - FAudio_zero(buffer_out, fapo->outBlockAlign * frames_in); -} - -void FAudioFXReverb_Process( - FAudioFXReverb *fapo, - uint32_t InputProcessParameterCount, - const FAPOProcessBufferParameters* pInputProcessParameters, - uint32_t OutputProcessParameterCount, - FAPOProcessBufferParameters* pOutputProcessParameters, - int32_t IsEnabled -) { - FAudioFXReverbParameters *params; - uint8_t update_params = FAPOBase_ParametersChanged(&fapo->base); - float total; - - params = (FAudioFXReverbParameters*) FAPOBase_BeginProcess(&fapo->base); - - /* Update parameters before doing anything else */ - if (update_params) - { - if (fapo->apiVersion == 9) - { - DspReverb_SetParameters9( - &fapo->reverb, - (FAudioFXReverbParameters9*) params - ); - } - else - { - DspReverb_SetParameters(&fapo->reverb, params); - } - } - - /* Handle disabled filter */ - if (IsEnabled == 0) - { - pOutputProcessParameters->BufferFlags = pInputProcessParameters->BufferFlags; - - if (pOutputProcessParameters->BufferFlags != FAPO_BUFFER_SILENT) - { - FAudioFXReverb_CopyBuffer( - fapo, - (float*) pInputProcessParameters->pBuffer, - (float*) pOutputProcessParameters->pBuffer, - pInputProcessParameters->ValidFrameCount - ); - } - - FAPOBase_EndProcess(&fapo->base); - return; - } - - /* XAudio2 passes a 'silent' buffer when no input buffer is available to play the effect tail */ - if (pInputProcessParameters->BufferFlags == FAPO_BUFFER_SILENT) - { - /* Make sure input data is usable. FIXME: Is this required? */ - FAudio_zero( - pInputProcessParameters->pBuffer, - pInputProcessParameters->ValidFrameCount * fapo->inBlockAlign - ); - } - - /* Run reverb effect */ - #define PROCESS(pin, pout) \ - DspReverb_INTERNAL_Process_##pin##_to_##pout( \ - &fapo->reverb, \ - (float*) pInputProcessParameters->pBuffer, \ - (float*) pOutputProcessParameters->pBuffer, \ - pInputProcessParameters->ValidFrameCount * fapo->inChannels \ - ) - switch (fapo->reverb.out_channels) - { - case 1: - total = PROCESS(1, 1); - break; - case 2: - total = PROCESS(2, 2); - break; - default: /* 5.1 */ - if (fapo->reverb.in_channels == 1) - { - total = PROCESS(1, 5p1); - } - else if (fapo->reverb.in_channels == 2) - { - total = PROCESS(2, 5p1); - } - else /* 5.1 */ - { - total = PROCESS(5p1, 5p1); - } - break; - } - #undef PROCESS - - /* Set BufferFlags to silent so PLAY_TAILS knows when to stop */ - pOutputProcessParameters->BufferFlags = (total < 0.0000001f) ? - FAPO_BUFFER_SILENT : - FAPO_BUFFER_VALID; - - FAPOBase_EndProcess(&fapo->base); -} - -void FAudioFXReverb_Reset(FAudioFXReverb *fapo) -{ - int32_t i, c; - FAPOBase_Reset(&fapo->base); - - /* Reset the cached state of the reverb filter */ - DspDelay_Reset(&fapo->reverb.early_delay); - - for (i = 0; i < REVERB_COUNT_APF_IN; i += 1) - { - DspAllPass_Reset(&fapo->reverb.apf_in[i]); - } - - for (c = 0; c < fapo->reverb.reverb_channels; c += 1) - { - DspDelay_Reset(&fapo->reverb.channel[c].reverb_delay); - - for (i = 0; i < REVERB_COUNT_COMB; i += 1) - { - DspCombShelving_Reset(&fapo->reverb.channel[c].lpf_comb[i]); - } - - DspBiQuad_Reset(&fapo->reverb.channel[c].room_high_shelf); - - for (i = 0; i < REVERB_COUNT_APF_OUT; i += 1) - { - DspAllPass_Reset(&fapo->reverb.channel[c].apf_out[i]); - } - } -} - -void FAudioFXReverb_Free(void* fapo) -{ - FAudioFXReverb *reverb = (FAudioFXReverb*) fapo; - DspReverb_Destroy(&reverb->reverb, reverb->base.pFree); - reverb->base.pFree(reverb->base.m_pParameterBlocks); - reverb->base.pFree(fapo); -} - -/* Public API (Version 7) */ - -uint32_t FAudioCreateReverb(FAPO** ppApo, uint32_t Flags) -{ - return FAudioCreateReverbWithCustomAllocatorEXT( - ppApo, - Flags, - FAudio_malloc, - FAudio_free, - FAudio_realloc - ); -} - -uint32_t FAudioCreateReverbWithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { - const FAudioFXReverbParameters fxdefault = - { - FAUDIOFX_REVERB_DEFAULT_WET_DRY_MIX, - FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_DELAY, - FAUDIOFX_REVERB_DEFAULT_REVERB_DELAY, - FAUDIOFX_REVERB_DEFAULT_REAR_DELAY, - FAUDIOFX_REVERB_DEFAULT_POSITION, - FAUDIOFX_REVERB_DEFAULT_POSITION, - FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX, - FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX, - FAUDIOFX_REVERB_DEFAULT_EARLY_DIFFUSION, - FAUDIOFX_REVERB_DEFAULT_LATE_DIFFUSION, - FAUDIOFX_REVERB_DEFAULT_LOW_EQ_GAIN, - FAUDIOFX_REVERB_DEFAULT_LOW_EQ_CUTOFF, - FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_GAIN, - FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_CUTOFF, - FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_FREQ, - FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_MAIN, - FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_HF, - FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_GAIN, - FAUDIOFX_REVERB_DEFAULT_REVERB_GAIN, - FAUDIOFX_REVERB_DEFAULT_DECAY_TIME, - FAUDIOFX_REVERB_DEFAULT_DENSITY, - FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE - }; - - /* Allocate... */ - FAudioFXReverb *result = (FAudioFXReverb*) customMalloc(sizeof(FAudioFXReverb)); - uint8_t *params = (uint8_t*) customMalloc( - sizeof(FAudioFXReverbParameters) * 3 - ); - result->apiVersion = 7; - - /* Initialize... */ - FAudio_memcpy( - &ReverbProperties.clsid, - &FAudioFX_CLSID_AudioReverb, - sizeof(FAudioGUID) - ); - CreateFAPOBaseWithCustomAllocatorEXT( - &result->base, - &ReverbProperties, - params, - sizeof(FAudioFXReverbParameters), - 0, - customMalloc, - customFree, - customRealloc - ); - - result->inChannels = 0; - result->outChannels = 0; - result->sampleRate = 0; - FAudio_zero(&result->reverb, sizeof(DspReverb)); - - /* Function table... */ - #define ASSIGN_VT(name) \ - result->base.base.name = (name##Func) FAudioFXReverb_##name; - ASSIGN_VT(LockForProcess); - ASSIGN_VT(IsInputFormatSupported); - ASSIGN_VT(IsOutputFormatSupported); - ASSIGN_VT(Initialize); - ASSIGN_VT(Reset); - ASSIGN_VT(Process); - result->base.Destructor = FAudioFXReverb_Free; - #undef ASSIGN_VT - - /* Prepare the default parameters */ - result->base.base.Initialize( - result, - &fxdefault, - sizeof(FAudioFXReverbParameters) - ); - - /* Finally. */ - *ppApo = &result->base.base; - return 0; -} - -void ReverbConvertI3DL2ToNative( - const FAudioFXReverbI3DL2Parameters *pI3DL2, - FAudioFXReverbParameters *pNative -) { - float reflectionsDelay; - float reverbDelay; - - pNative->RearDelay = FAUDIOFX_REVERB_DEFAULT_REAR_DELAY; - pNative->PositionLeft = FAUDIOFX_REVERB_DEFAULT_POSITION; - pNative->PositionRight = FAUDIOFX_REVERB_DEFAULT_POSITION; - pNative->PositionMatrixLeft = FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX; - pNative->PositionMatrixRight = FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX; - pNative->RoomSize = FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE; - pNative->LowEQCutoff = 4; - pNative->HighEQCutoff = 6; - - pNative->RoomFilterMain = (float) pI3DL2->Room / 100.0f; - pNative->RoomFilterHF = (float) pI3DL2->RoomHF / 100.0f; - - if (pI3DL2->DecayHFRatio >= 1.0f) - { - int32_t index = (int32_t) (-4.0 * FAudio_log10(pI3DL2->DecayHFRatio)); - if (index < -8) - { - index = -8; - } - pNative->LowEQGain = (uint8_t) ((index < 0) ? index + 8 : 8); - pNative->HighEQGain = 8; - pNative->DecayTime = pI3DL2->DecayTime * pI3DL2->DecayHFRatio; - } - else - { - int32_t index = (int32_t) (4.0 * FAudio_log10(pI3DL2->DecayHFRatio)); - if (index < -8) - { - index = -8; - } - pNative->LowEQGain = 8; - pNative->HighEQGain = (uint8_t) ((index < 0) ? index + 8 : 8); - pNative->DecayTime = pI3DL2->DecayTime; - } - - reflectionsDelay = pI3DL2->ReflectionsDelay * 1000.0f; - if (reflectionsDelay >= FAUDIOFX_REVERB_MAX_REFLECTIONS_DELAY) - { - reflectionsDelay = (float) (FAUDIOFX_REVERB_MAX_REFLECTIONS_DELAY - 1); - } - else if (reflectionsDelay <= 1) - { - reflectionsDelay = 1; - } - pNative->ReflectionsDelay = (uint32_t) reflectionsDelay; - - reverbDelay = pI3DL2->ReverbDelay * 1000.0f; - if (reverbDelay >= FAUDIOFX_REVERB_MAX_REVERB_DELAY) - { - reverbDelay = (float) (FAUDIOFX_REVERB_MAX_REVERB_DELAY - 1); - } - pNative->ReverbDelay = (uint8_t) reverbDelay; - - pNative->ReflectionsGain = pI3DL2->Reflections / 100.0f; - pNative->ReverbGain = pI3DL2->Reverb / 100.0f; - pNative->EarlyDiffusion = (uint8_t) (15.0f * pI3DL2->Diffusion / 100.0f); - pNative->LateDiffusion = pNative->EarlyDiffusion; - pNative->Density = pI3DL2->Density; - pNative->RoomFilterFreq = pI3DL2->HFReference; - - pNative->WetDryMix = pI3DL2->WetDryMix; -} - -/* Public API (Version 9) */ - -uint32_t FAudioCreateReverb9(FAPO** ppApo, uint32_t Flags) -{ - return FAudioCreateReverb9WithCustomAllocatorEXT( - ppApo, - Flags, - FAudio_malloc, - FAudio_free, - FAudio_realloc - ); -} - -uint32_t FAudioCreateReverb9WithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { - const FAudioFXReverbParameters9 fxdefault = - { - FAUDIOFX_REVERB_DEFAULT_WET_DRY_MIX, - FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_DELAY, - FAUDIOFX_REVERB_DEFAULT_REVERB_DELAY, - FAUDIOFX_REVERB_DEFAULT_REAR_DELAY, /* FIXME: 7POINT1? */ - FAUDIOFX_REVERB_DEFAULT_7POINT1_SIDE_DELAY, - FAUDIOFX_REVERB_DEFAULT_POSITION, - FAUDIOFX_REVERB_DEFAULT_POSITION, - FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX, - FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX, - FAUDIOFX_REVERB_DEFAULT_EARLY_DIFFUSION, - FAUDIOFX_REVERB_DEFAULT_LATE_DIFFUSION, - FAUDIOFX_REVERB_DEFAULT_LOW_EQ_GAIN, - FAUDIOFX_REVERB_DEFAULT_LOW_EQ_CUTOFF, - FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_GAIN, - FAUDIOFX_REVERB_DEFAULT_HIGH_EQ_CUTOFF, - FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_FREQ, - FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_MAIN, - FAUDIOFX_REVERB_DEFAULT_ROOM_FILTER_HF, - FAUDIOFX_REVERB_DEFAULT_REFLECTIONS_GAIN, - FAUDIOFX_REVERB_DEFAULT_REVERB_GAIN, - FAUDIOFX_REVERB_DEFAULT_DECAY_TIME, - FAUDIOFX_REVERB_DEFAULT_DENSITY, - FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE - }; - - /* Allocate... */ - FAudioFXReverb *result = (FAudioFXReverb*) customMalloc(sizeof(FAudioFXReverb)); - uint8_t *params = (uint8_t*) customMalloc( - sizeof(FAudioFXReverbParameters9) * 3 - ); - result->apiVersion = 9; - - /* Initialize... */ - FAudio_memcpy( - &ReverbProperties.clsid, - &FAudioFX_CLSID_AudioReverb, - sizeof(FAudioGUID) - ); - CreateFAPOBaseWithCustomAllocatorEXT( - &result->base, - &ReverbProperties, - params, - sizeof(FAudioFXReverbParameters9), - 0, - customMalloc, - customFree, - customRealloc - ); - - result->inChannels = 0; - result->outChannels = 0; - result->sampleRate = 0; - FAudio_zero(&result->reverb, sizeof(DspReverb)); - - /* Function table... */ - #define ASSIGN_VT(name) \ - result->base.base.name = (name##Func) FAudioFXReverb_##name; - ASSIGN_VT(LockForProcess); - ASSIGN_VT(IsInputFormatSupported); - ASSIGN_VT(IsOutputFormatSupported); - ASSIGN_VT(Initialize); - ASSIGN_VT(Reset); - ASSIGN_VT(Process); - result->base.Destructor = FAudioFXReverb_Free; - #undef ASSIGN_VT - - /* Prepare the default parameters */ - result->base.base.Initialize( - result, - &fxdefault, - sizeof(FAudioFXReverbParameters9) - ); - - /* Finally. */ - *ppApo = &result->base.base; - return 0; -} - -void ReverbConvertI3DL2ToNative9( - const FAudioFXReverbI3DL2Parameters *pI3DL2, - FAudioFXReverbParameters9 *pNative, - int32_t sevenDotOneReverb -) { - float reflectionsDelay; - float reverbDelay; - - if (sevenDotOneReverb) - { - pNative->RearDelay = FAUDIOFX_REVERB_DEFAULT_7POINT1_REAR_DELAY; - } - else - { - pNative->RearDelay = FAUDIOFX_REVERB_DEFAULT_REAR_DELAY; - } - pNative->SideDelay = FAUDIOFX_REVERB_DEFAULT_7POINT1_SIDE_DELAY; - pNative->PositionLeft = FAUDIOFX_REVERB_DEFAULT_POSITION; - pNative->PositionRight = FAUDIOFX_REVERB_DEFAULT_POSITION; - pNative->PositionMatrixLeft = FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX; - pNative->PositionMatrixRight = FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX; - pNative->RoomSize = FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE; - pNative->LowEQCutoff = 4; - pNative->HighEQCutoff = 6; - - pNative->RoomFilterMain = (float) pI3DL2->Room / 100.0f; - pNative->RoomFilterHF = (float) pI3DL2->RoomHF / 100.0f; - - if (pI3DL2->DecayHFRatio >= 1.0f) - { - int32_t index = (int32_t) (-4.0 * FAudio_log10(pI3DL2->DecayHFRatio)); - if (index < -8) - { - index = -8; - } - pNative->LowEQGain = (uint8_t) ((index < 0) ? index + 8 : 8); - pNative->HighEQGain = 8; - pNative->DecayTime = pI3DL2->DecayTime * pI3DL2->DecayHFRatio; - } - else - { - int32_t index = (int32_t) (4.0 * FAudio_log10(pI3DL2->DecayHFRatio)); - if (index < -8) - { - index = -8; - } - pNative->LowEQGain = 8; - pNative->HighEQGain = (uint8_t) ((index < 0) ? index + 8 : 8); - pNative->DecayTime = pI3DL2->DecayTime; - } - - reflectionsDelay = pI3DL2->ReflectionsDelay * 1000.0f; - if (reflectionsDelay >= FAUDIOFX_REVERB_MAX_REFLECTIONS_DELAY) - { - reflectionsDelay = (float) (FAUDIOFX_REVERB_MAX_REFLECTIONS_DELAY - 1); - } - else if (reflectionsDelay <= 1) - { - reflectionsDelay = 1; - } - pNative->ReflectionsDelay = (uint32_t) reflectionsDelay; - - reverbDelay = pI3DL2->ReverbDelay * 1000.0f; - if (reverbDelay >= FAUDIOFX_REVERB_MAX_REVERB_DELAY) - { - reverbDelay = (float) (FAUDIOFX_REVERB_MAX_REVERB_DELAY - 1); - } - pNative->ReverbDelay = (uint8_t) reverbDelay; - - pNative->ReflectionsGain = pI3DL2->Reflections / 100.0f; - pNative->ReverbGain = pI3DL2->Reverb / 100.0f; - pNative->EarlyDiffusion = (uint8_t) (15.0f * pI3DL2->Diffusion / 100.0f); - pNative->LateDiffusion = pNative->EarlyDiffusion; - pNative->Density = pI3DL2->Density; - pNative->RoomFilterFreq = pI3DL2->HFReference; - - pNative->WetDryMix = pI3DL2->WetDryMix; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudioFX_volumemeter.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudioFX_volumemeter.c deleted file mode 100644 index 9405679a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudioFX_volumemeter.c +++ /dev/null @@ -1,281 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAudioFX.h" -#include "FAudio_internal.h" - -/* Volume Meter FAPO Implementation */ - -const FAudioGUID FAudioFX_CLSID_AudioVolumeMeter = /* 2.7 */ -{ - 0xCAC1105F, - 0x619B, - 0x4D04, - { - 0x83, - 0x1A, - 0x44, - 0xE1, - 0xCB, - 0xF1, - 0x2D, - 0x57 - } -}; - -static FAPORegistrationProperties VolumeMeterProperties = -{ - /* .clsid = */ {0}, - /* .FriendlyName = */ - { - 'V', 'o', 'l', 'u', 'm', 'e', 'M', 'e', 't', 'e', 'r', '\0' - }, - /*.CopyrightInfo = */ - { - 'C', 'o', 'p', 'y', 'r', 'i', 'g', 'h', 't', ' ', '(', 'c', ')', - 'E', 't', 'h', 'a', 'n', ' ', 'L', 'e', 'e', '\0' - }, - /*.MajorVersion = */ 0, - /*.MinorVersion = */ 0, - /*.Flags = */( - FAPO_FLAG_CHANNELS_MUST_MATCH | - FAPO_FLAG_FRAMERATE_MUST_MATCH | - FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH | - FAPO_FLAG_BUFFERCOUNT_MUST_MATCH | - FAPO_FLAG_INPLACE_SUPPORTED | - FAPO_FLAG_INPLACE_REQUIRED - ), - /*.MinInputBufferCount = */ 1, - /*.MaxInputBufferCount = */ 1, - /*.MinOutputBufferCount = */ 1, - /*.MaxOutputBufferCount =*/ 1 -}; - -typedef struct FAudioFXVolumeMeter -{ - FAPOBase base; - uint16_t channels; -} FAudioFXVolumeMeter; - -uint32_t FAudioFXVolumeMeter_LockForProcess( - FAudioFXVolumeMeter *fapo, - uint32_t InputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pInputLockedParameters, - uint32_t OutputLockedParameterCount, - const FAPOLockForProcessBufferParameters *pOutputLockedParameters -) { - FAudioFXVolumeMeterLevels *levels = (FAudioFXVolumeMeterLevels*) - fapo->base.m_pParameterBlocks; - - /* Verify parameter counts... */ - if ( InputLockedParameterCount < fapo->base.m_pRegistrationProperties->MinInputBufferCount || - InputLockedParameterCount > fapo->base.m_pRegistrationProperties->MaxInputBufferCount || - OutputLockedParameterCount < fapo->base.m_pRegistrationProperties->MinOutputBufferCount || - OutputLockedParameterCount > fapo->base.m_pRegistrationProperties->MaxOutputBufferCount ) - { - return FAUDIO_E_INVALID_ARG; - } - - - /* Validate input/output formats */ - #define VERIFY_FORMAT_FLAG(flag, prop) \ - if ( (fapo->base.m_pRegistrationProperties->Flags & flag) && \ - (pInputLockedParameters->pFormat->prop != pOutputLockedParameters->pFormat->prop) ) \ - { \ - return FAUDIO_E_INVALID_ARG; \ - } - VERIFY_FORMAT_FLAG(FAPO_FLAG_CHANNELS_MUST_MATCH, nChannels) - VERIFY_FORMAT_FLAG(FAPO_FLAG_FRAMERATE_MUST_MATCH, nSamplesPerSec) - VERIFY_FORMAT_FLAG(FAPO_FLAG_BITSPERSAMPLE_MUST_MATCH, wBitsPerSample) - #undef VERIFY_FORMAT_FLAG - if ( (fapo->base.m_pRegistrationProperties->Flags & FAPO_FLAG_BUFFERCOUNT_MUST_MATCH) && - (InputLockedParameterCount != OutputLockedParameterCount) ) - { - return FAUDIO_E_INVALID_ARG; - } - - /* Allocate volume meter arrays */ - fapo->channels = pInputLockedParameters->pFormat->nChannels; - levels[0].pPeakLevels = (float*) fapo->base.pMalloc( - fapo->channels * sizeof(float) * 6 - ); - FAudio_zero(levels[0].pPeakLevels, fapo->channels * sizeof(float) * 6); - levels[0].pRMSLevels = levels[0].pPeakLevels + fapo->channels; - levels[1].pPeakLevels = levels[0].pPeakLevels + (fapo->channels * 2); - levels[1].pRMSLevels = levels[0].pPeakLevels + (fapo->channels * 3); - levels[2].pPeakLevels = levels[0].pPeakLevels + (fapo->channels * 4); - levels[2].pRMSLevels = levels[0].pPeakLevels + (fapo->channels * 5); - - fapo->base.m_fIsLocked = 1; - return 0; -} - -void FAudioFXVolumeMeter_UnlockForProcess(FAudioFXVolumeMeter *fapo) -{ - FAudioFXVolumeMeterLevels *levels = (FAudioFXVolumeMeterLevels*) - fapo->base.m_pParameterBlocks; - fapo->base.pFree(levels[0].pPeakLevels); - fapo->base.m_fIsLocked = 0; -} - -void FAudioFXVolumeMeter_Process( - FAudioFXVolumeMeter *fapo, - uint32_t InputProcessParameterCount, - const FAPOProcessBufferParameters* pInputProcessParameters, - uint32_t OutputProcessParameterCount, - FAPOProcessBufferParameters* pOutputProcessParameters, - int32_t IsEnabled -) { - float peak; - float total; - float *buffer; - uint32_t i, j; - FAudioFXVolumeMeterLevels *levels = (FAudioFXVolumeMeterLevels*) - FAPOBase_BeginProcess(&fapo->base); - - /* TODO: This could probably be SIMD-ified... */ - for (i = 0; i < fapo->channels; i += 1) - { - peak = 0.0f; - total = 0.0f; - buffer = ((float*) pInputProcessParameters->pBuffer) + i; - for (j = 0; j < pInputProcessParameters->ValidFrameCount; j += 1, buffer += fapo->channels) - { - const float sampleAbs = FAudio_fabsf(*buffer); - if (sampleAbs > peak) - { - peak = sampleAbs; - } - total += (*buffer) * (*buffer); - } - levels->pPeakLevels[i] = peak; - levels->pRMSLevels[i] = FAudio_sqrtf( - total / pInputProcessParameters->ValidFrameCount - ); - } - - FAPOBase_EndProcess(&fapo->base); -} - -void FAudioFXVolumeMeter_GetParameters( - FAudioFXVolumeMeter *fapo, - FAudioFXVolumeMeterLevels *pParameters, - uint32_t ParameterByteSize -) { - FAudioFXVolumeMeterLevels *levels = (FAudioFXVolumeMeterLevels*) - fapo->base.m_pCurrentParameters; - FAudio_assert(ParameterByteSize == sizeof(FAudioFXVolumeMeterLevels)); - FAudio_assert(pParameters->ChannelCount == fapo->channels); - - /* Copy what's current as of the last Process */ - if (pParameters->pPeakLevels != NULL) - { - FAudio_memcpy( - pParameters->pPeakLevels, - levels->pPeakLevels, - fapo->channels * sizeof(float) - ); - } - if (pParameters->pRMSLevels != NULL) - { - FAudio_memcpy( - pParameters->pRMSLevels, - levels->pRMSLevels, - fapo->channels * sizeof(float) - ); - } -} - -void FAudioFXVolumeMeter_Free(void* fapo) -{ - FAudioFXVolumeMeter *volumemeter = (FAudioFXVolumeMeter*) fapo; - volumemeter->base.pFree(volumemeter->base.m_pParameterBlocks); - volumemeter->base.pFree(fapo); -} - -/* Public API */ - -uint32_t FAudioCreateVolumeMeter(FAPO** ppApo, uint32_t Flags) -{ - return FAudioCreateVolumeMeterWithCustomAllocatorEXT( - ppApo, - Flags, - FAudio_malloc, - FAudio_free, - FAudio_realloc - ); -} - -uint32_t FAudioCreateVolumeMeterWithCustomAllocatorEXT( - FAPO** ppApo, - uint32_t Flags, - FAudioMallocFunc customMalloc, - FAudioFreeFunc customFree, - FAudioReallocFunc customRealloc -) { - /* Allocate... */ - FAudioFXVolumeMeter *result = (FAudioFXVolumeMeter*) customMalloc( - sizeof(FAudioFXVolumeMeter) - ); - uint8_t *params = (uint8_t*) customMalloc( - sizeof(FAudioFXVolumeMeterLevels) * 3 - ); - FAudio_zero(params, sizeof(FAudioFXVolumeMeterLevels) * 3); - - /* Initialize... */ - FAudio_memcpy( - &VolumeMeterProperties.clsid, - &FAudioFX_CLSID_AudioVolumeMeter, - sizeof(FAudioGUID) - ); - CreateFAPOBaseWithCustomAllocatorEXT( - &result->base, - &VolumeMeterProperties, - params, - sizeof(FAudioFXVolumeMeterLevels), - 1, - customMalloc, - customFree, - customRealloc - ); - - /* Function table... */ - result->base.base.LockForProcess = (LockForProcessFunc) - FAudioFXVolumeMeter_LockForProcess; - result->base.base.UnlockForProcess = (UnlockForProcessFunc) - FAudioFXVolumeMeter_UnlockForProcess; - result->base.base.Process = (ProcessFunc) - FAudioFXVolumeMeter_Process; - result->base.base.GetParameters = (GetParametersFunc) - FAudioFXVolumeMeter_GetParameters; - result->base.Destructor = FAudioFXVolumeMeter_Free; - - /* Finally. */ - *ppApo = &result->base.base; - return 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal.c deleted file mode 100644 index 85a0ca58..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal.c +++ /dev/null @@ -1,1971 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAudio_internal.h" - -#ifndef FAUDIO_DISABLE_DEBUGCONFIGURATION -void FAudio_INTERNAL_debug( - FAudio *audio, - const char *file, - uint32_t line, - const char *func, - const char *fmt, - ... -) { - char output[1024]; - char *out = output; - va_list va; - out[0] = '\0'; - - /* Logging extras */ - if (audio->debug.LogThreadID) - { - out += FAudio_snprintf( - out, - sizeof(output) - (out - output), - "0x%" FAudio_PRIx64 " ", - FAudio_PlatformGetThreadID() - ); - } - if (audio->debug.LogFileline) - { - out += FAudio_snprintf( - out, - sizeof(output) - (out - output), - "%s:%u ", - file, - line - ); - } - if (audio->debug.LogFunctionName) - { - out += FAudio_snprintf( - out, - sizeof(output) - (out - output), - "%s ", - func - ); - } - if (audio->debug.LogTiming) - { - out += FAudio_snprintf( - out, - sizeof(output) - (out - output), - "%dms ", - FAudio_timems() - ); - } - - /* The actual message... */ - va_start(va, fmt); - FAudio_vsnprintf( - out, - sizeof(output) - (out - output), - fmt, - va - ); - va_end(va); - - /* Print, finally. */ - FAudio_Log(output); -} - -static const char *get_wformattag_string(const FAudioWaveFormatEx *fmt) -{ -#define FMT_STRING(suffix) \ - if (fmt->wFormatTag == FAUDIO_FORMAT_##suffix) \ - { \ - return #suffix; \ - } - FMT_STRING(PCM) - FMT_STRING(MSADPCM) - FMT_STRING(IEEE_FLOAT) - FMT_STRING(XMAUDIO2) - FMT_STRING(WMAUDIO2) - FMT_STRING(EXTENSIBLE) -#undef FMT_STRING - return "UNKNOWN!"; -} - -static const char *get_subformat_string(const FAudioWaveFormatEx *fmt) -{ - const FAudioWaveFormatExtensible *fmtex = (const FAudioWaveFormatExtensible*) fmt; - - if (fmt->wFormatTag != FAUDIO_FORMAT_EXTENSIBLE) - { - return "N/A"; - } - if (!FAudio_memcmp(&fmtex->SubFormat, &DATAFORMAT_SUBTYPE_IEEE_FLOAT, sizeof(FAudioGUID))) - { - return "IEEE_FLOAT"; - } - if (!FAudio_memcmp(&fmtex->SubFormat, &DATAFORMAT_SUBTYPE_PCM, sizeof(FAudioGUID))) - { - return "PCM"; - } - return "UNKNOWN!"; -} - -void FAudio_INTERNAL_debug_fmt( - FAudio *audio, - const char *file, - uint32_t line, - const char *func, - const FAudioWaveFormatEx *fmt -) { - FAudio_INTERNAL_debug( - audio, - file, - line, - func, - ( - "{" - "wFormatTag: 0x%x %s, " - "nChannels: %u, " - "nSamplesPerSec: %u, " - "wBitsPerSample: %u, " - "nBlockAlign: %u, " - "SubFormat: %s" - "}" - ), - fmt->wFormatTag, - get_wformattag_string(fmt), - fmt->nChannels, - fmt->nSamplesPerSec, - fmt->wBitsPerSample, - fmt->nBlockAlign, - get_subformat_string(fmt) - ); -} -#endif /* FAUDIO_DISABLE_DEBUGCONFIGURATION */ - -void LinkedList_AddEntry( - LinkedList **start, - void* toAdd, - FAudioMutex lock, - FAudioMallocFunc pMalloc -) { - LinkedList *newEntry, *latest; - newEntry = (LinkedList*) pMalloc(sizeof(LinkedList)); - newEntry->entry = toAdd; - newEntry->next = NULL; - FAudio_PlatformLockMutex(lock); - if (*start == NULL) - { - *start = newEntry; - } - else - { - latest = *start; - while (latest->next != NULL) - { - latest = latest->next; - } - latest->next = newEntry; - } - FAudio_PlatformUnlockMutex(lock); -} - -void LinkedList_PrependEntry( - LinkedList **start, - void* toAdd, - FAudioMutex lock, - FAudioMallocFunc pMalloc -) { - LinkedList *newEntry; - newEntry = (LinkedList*) pMalloc(sizeof(LinkedList)); - newEntry->entry = toAdd; - FAudio_PlatformLockMutex(lock); - newEntry->next = *start; - *start = newEntry; - FAudio_PlatformUnlockMutex(lock); -} - -void LinkedList_RemoveEntry( - LinkedList **start, - void* toRemove, - FAudioMutex lock, - FAudioFreeFunc pFree -) { - LinkedList *latest, *prev; - latest = *start; - prev = latest; - FAudio_PlatformLockMutex(lock); - while (latest != NULL) - { - if (latest->entry == toRemove) - { - if (latest == prev) /* First in list */ - { - *start = latest->next; - } - else - { - prev->next = latest->next; - } - pFree(latest); - FAudio_PlatformUnlockMutex(lock); - return; - } - prev = latest; - latest = latest->next; - } - FAudio_PlatformUnlockMutex(lock); - FAudio_assert(0 && "LinkedList element not found!"); -} - -void FAudio_INTERNAL_InsertSubmixSorted( - LinkedList **start, - FAudioSubmixVoice *toAdd, - FAudioMutex lock, - FAudioMallocFunc pMalloc -) { - LinkedList *newEntry, *latest; - newEntry = (LinkedList*) pMalloc(sizeof(LinkedList)); - newEntry->entry = toAdd; - newEntry->next = NULL; - FAudio_PlatformLockMutex(lock); - if (*start == NULL) - { - *start = newEntry; - } - else - { - latest = *start; - - /* Special case if the new stage is lower than everyone else */ - if (toAdd->mix.processingStage < ((FAudioSubmixVoice*) latest->entry)->mix.processingStage) - { - newEntry->next = latest; - *start = newEntry; - } - else - { - /* If we got here, we know that the new stage is - * _at least_ as high as the first submix in the list. - * - * Each loop iteration checks to see if the new stage - * is smaller than `latest->next`, meaning it fits - * between `latest` and `latest->next`. - */ - while (latest->next != NULL) - { - if (toAdd->mix.processingStage < ((FAudioSubmixVoice *) latest->next->entry)->mix.processingStage) - { - newEntry->next = latest->next; - latest->next = newEntry; - break; - } - latest = latest->next; - } - /* If newEntry didn't get a `next` value, that means - * it didn't fall in between any stages and `latest` - * is the last entry in the list. Add it to the end! - */ - if (newEntry->next == NULL) - { - latest->next = newEntry; - } - } - } - FAudio_PlatformUnlockMutex(lock); -} - -static uint32_t FAudio_INTERNAL_GetBytesRequested( - FAudioSourceVoice *voice, - uint32_t decoding -) { - uint32_t end, result; - FAudioBuffer *buffer; - FAudioWaveFormatExtensible *fmt; - FAudioBufferEntry *list = voice->src.bufferList; - - LOG_FUNC_ENTER(voice->audio) - -#ifdef HAVE_WMADEC - if (voice->src.wmadec != NULL) - { - /* Always 0, per the spec */ - LOG_FUNC_EXIT(voice->audio) - return 0; - } -#endif /* HAVE_WMADEC */ - while (list != NULL && decoding > 0) - { - buffer = &list->buffer; - if (buffer->LoopCount > 0) - { - end = ( - /* Current loop... */ - ((buffer->LoopBegin + buffer->LoopLength) - voice->src.curBufferOffset) + - /* Remaining loops... */ - (buffer->LoopLength * buffer->LoopCount - 1) + - /* ... Final iteration */ - buffer->PlayLength - ); - } - else - { - end = (buffer->PlayBegin + buffer->PlayLength) - voice->src.curBufferOffset; - } - if (end > decoding) - { - decoding = 0; - break; - } - decoding -= end; - list = list->next; - } - - /* Convert samples to bytes, factoring block alignment */ - if (voice->src.format->wFormatTag == FAUDIO_FORMAT_MSADPCM) - { - fmt = (FAudioWaveFormatExtensible*) voice->src.format; - result = ( - (decoding / fmt->Samples.wSamplesPerBlock) + - ((decoding % fmt->Samples.wSamplesPerBlock) > 0) - ) * voice->src.format->nBlockAlign; - } - else - { - result = decoding * voice->src.format->nBlockAlign; - } - - LOG_FUNC_EXIT(voice->audio) - return result; -} - -static void FAudio_INTERNAL_DecodeBuffers( - FAudioSourceVoice *voice, - uint64_t *toDecode -) { - uint32_t end, endRead, decoding, decoded = 0; - FAudioBuffer *buffer = &voice->src.bufferList->buffer; - FAudioBufferEntry *toDelete; - - LOG_FUNC_ENTER(voice->audio) - - /* This should never go past the max ratio size */ - FAudio_assert(*toDecode <= voice->src.decodeSamples); - - while (decoded < *toDecode && buffer != NULL) - { - decoding = (uint32_t) *toDecode - decoded; - - /* Start-of-buffer behavior */ - if (voice->src.newBuffer) - { - voice->src.newBuffer = 0; - if ( voice->src.callback != NULL && - voice->src.callback->OnBufferStart != NULL ) - { - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - voice->src.callback->OnBufferStart( - voice->src.callback, - buffer->pContext - ); - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - } - } - - /* Check for end-of-buffer */ - end = (buffer->LoopCount > 0) ? - (buffer->LoopBegin + buffer->LoopLength) : - buffer->PlayBegin + buffer->PlayLength; - endRead = FAudio_min( - end - voice->src.curBufferOffset, - decoding - ); - - /* Decode... */ - voice->src.decode( - voice, - buffer, - voice->audio->decodeCache + ( - decoded * voice->src.format->nChannels - ), - endRead - ); - - LOG_INFO( - voice->audio, - "Voice %p, buffer %p, decoded %u samples from [%u,%u)", - (void*) voice, - (void*) buffer, - endRead, - voice->src.curBufferOffset, - voice->src.curBufferOffset + endRead - ) - - decoded += endRead; - voice->src.curBufferOffset += endRead; - voice->src.totalSamples += endRead; - - /* End-of-buffer behavior */ - if (endRead < decoding) - { - if (buffer->LoopCount > 0) - { - voice->src.curBufferOffset = buffer->LoopBegin; - if (buffer->LoopCount < FAUDIO_LOOP_INFINITE) - { - buffer->LoopCount -= 1; - } - if ( voice->src.callback != NULL && - voice->src.callback->OnLoopEnd != NULL ) - { - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - voice->src.callback->OnLoopEnd( - voice->src.callback, - buffer->pContext - ); - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - } - } - else - { -#ifdef HAVE_WMADEC - if (voice->src.wmadec != NULL) - { - FAudio_WMADEC_end_buffer(voice); - } -#endif /* HAVE_WMADEC */ - /* For EOS we can stop storing fraction offsets */ - if (buffer->Flags & FAUDIO_END_OF_STREAM) - { - voice->src.curBufferOffsetDec = 0; - voice->src.totalSamples = 0; - } - - LOG_INFO( - voice->audio, - "Voice %p, finished with buffer %p", - (void*) voice, - (void*) buffer - ) - - /* Change active buffer, delete finished buffer */ - toDelete = voice->src.bufferList; - voice->src.bufferList = voice->src.bufferList->next; - if (voice->src.bufferList != NULL) - { - buffer = &voice->src.bufferList->buffer; - voice->src.curBufferOffset = buffer->PlayBegin; - } - else - { - buffer = NULL; - - /* FIXME: I keep going past the buffer so fuck it */ - FAudio_zero( - voice->audio->decodeCache + ( - decoded * - voice->src.format->nChannels - ), - sizeof(float) * ( - (*toDecode - decoded) * - voice->src.format->nChannels - ) - ); - } - - /* Callbacks */ - if (voice->src.callback != NULL) - { - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - if (voice->src.callback->OnBufferEnd != NULL) - { - voice->src.callback->OnBufferEnd( - voice->src.callback, - toDelete->buffer.pContext - ); - } - if ( toDelete->buffer.Flags & FAUDIO_END_OF_STREAM && - voice->src.callback->OnStreamEnd != NULL ) - { - voice->src.callback->OnStreamEnd( - voice->src.callback - ); - } - - /* One last chance at redemption */ - if (buffer == NULL && voice->src.bufferList != NULL) - { - buffer = &voice->src.bufferList->buffer; - voice->src.curBufferOffset = buffer->PlayBegin; - } - - if (buffer != NULL && voice->src.callback->OnBufferStart != NULL) - { - voice->src.callback->OnBufferStart( - voice->src.callback, - buffer->pContext - ); - } - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - } - - voice->audio->pFree(toDelete); - } - } - } - - /* ... FIXME: I keep going past the buffer so fuck it */ - if (buffer) - { - end = (buffer->LoopCount > 0) ? - (buffer->LoopBegin + buffer->LoopLength) : - buffer->PlayBegin + buffer->PlayLength; - endRead = FAudio_min( - end - voice->src.curBufferOffset, - EXTRA_DECODE_PADDING - ); - - voice->src.decode( - voice, - buffer, - voice->audio->decodeCache + ( - decoded * voice->src.format->nChannels - ), - endRead - ); - /* Do NOT increment curBufferOffset! */ - - if (endRead < EXTRA_DECODE_PADDING) - { - FAudio_zero( - voice->audio->decodeCache + ( - decoded * voice->src.format->nChannels - ), - sizeof(float) * ( - (EXTRA_DECODE_PADDING - endRead) * - voice->src.format->nChannels - ) - ); - } - } - else - { - FAudio_zero( - voice->audio->decodeCache + ( - decoded * voice->src.format->nChannels - ), - sizeof(float) * ( - EXTRA_DECODE_PADDING * - voice->src.format->nChannels - ) - ); - } - - *toDecode = decoded; - LOG_FUNC_EXIT(voice->audio) -} - -static inline void FAudio_INTERNAL_FilterVoice( - FAudio *audio, - const FAudioFilterParameters *filter, - FAudioFilterState *filterState, - float *samples, - uint32_t numSamples, - uint16_t numChannels -) { - uint32_t j, ci; - - LOG_FUNC_ENTER(audio) - - /* Apply a digital state-variable filter to the voice. - * The difference equations of the filter are: - * - * Yl(n) = F Yb(n - 1) + Yl(n - 1) - * Yh(n) = x(n) - Yl(n) - OneOverQ Yb(n - 1) - * Yb(n) = F Yh(n) + Yb(n - 1) - * Yn(n) = Yl(n) + Yh(n) - * - * Please note that FAudioFilterParameters.Frequency is defined as: - * - * (2 * sin(pi * (desired filter cutoff frequency) / sampleRate)) - * - * - @JohanSmet - */ - - for (j = 0; j < numSamples; j += 1) - for (ci = 0; ci < numChannels; ci += 1) - { - filterState[ci][FAudioLowPassFilter] = filterState[ci][FAudioLowPassFilter] + (filter->Frequency * filterState[ci][FAudioBandPassFilter]); - filterState[ci][FAudioHighPassFilter] = samples[j * numChannels + ci] - filterState[ci][FAudioLowPassFilter] - (filter->OneOverQ * filterState[ci][FAudioBandPassFilter]); - filterState[ci][FAudioBandPassFilter] = (filter->Frequency * filterState[ci][FAudioHighPassFilter]) + filterState[ci][FAudioBandPassFilter]; - filterState[ci][FAudioNotchFilter] = filterState[ci][FAudioHighPassFilter] + filterState[ci][FAudioLowPassFilter]; - samples[j * numChannels + ci] = filterState[ci][filter->Type]; - } - - LOG_FUNC_EXIT(audio) -} - -static void FAudio_INTERNAL_ResizeEffectChainCache(FAudio *audio, uint32_t samples) -{ - LOG_FUNC_ENTER(audio) - if (samples > audio->effectChainSamples) - { - audio->effectChainSamples = samples; - audio->effectChainCache = (float*) audio->pRealloc( - audio->effectChainCache, - sizeof(float) * audio->effectChainSamples - ); - } - LOG_FUNC_EXIT(audio) -} - -static inline float *FAudio_INTERNAL_ProcessEffectChain( - FAudioVoice *voice, - float *buffer, - uint32_t *samples -) { - uint32_t i; - FAPO *fapo; - FAPOProcessBufferParameters srcParams, dstParams; - - LOG_FUNC_ENTER(voice->audio) - - /* Set up the buffer to be written into */ - srcParams.pBuffer = buffer; - srcParams.BufferFlags = FAPO_BUFFER_SILENT; - srcParams.ValidFrameCount = *samples; - for (i = 0; i < srcParams.ValidFrameCount; i += 1) - { - if (buffer[i] != 0.0f) /* Arbitrary! */ - { - srcParams.BufferFlags = FAPO_BUFFER_VALID; - break; - } - } - - /* Initialize output parameters to something sane */ - dstParams.pBuffer = srcParams.pBuffer; - dstParams.BufferFlags = FAPO_BUFFER_VALID; - dstParams.ValidFrameCount = srcParams.ValidFrameCount; - - /* Update parameters, process! */ - for (i = 0; i < voice->effects.count; i += 1) - { - fapo = voice->effects.desc[i].pEffect; - - if (!voice->effects.inPlaceProcessing[i]) - { - if (dstParams.pBuffer == buffer) - { - FAudio_INTERNAL_ResizeEffectChainCache( - voice->audio, - voice->effects.desc[i].OutputChannels * srcParams.ValidFrameCount - ); - dstParams.pBuffer = voice->audio->effectChainCache; - } - else - { - /* FIXME: What if this is smaller because - * inputChannels < desc[i].OutputChannels? - */ - dstParams.pBuffer = buffer; - } - - FAudio_zero( - dstParams.pBuffer, - voice->effects.desc[i].OutputChannels * srcParams.ValidFrameCount * sizeof(float) - ); - } - - if (voice->effects.parameterUpdates[i]) - { - fapo->SetParameters( - fapo, - voice->effects.parameters[i], - voice->effects.parameterSizes[i] - ); - voice->effects.parameterUpdates[i] = 0; - } - - fapo->Process( - fapo, - 1, - &srcParams, - 1, - &dstParams, - voice->effects.desc[i].InitialState - ); - - FAudio_memcpy(&srcParams, &dstParams, sizeof(dstParams)); - } - - *samples = dstParams.ValidFrameCount; - - /* Save the output buffer-flags so the mixer-function can determine when it's save to stop processing the effect chain */ - voice->effects.state = dstParams.BufferFlags; - - LOG_FUNC_EXIT(voice->audio) - return (float*) dstParams.pBuffer; -} - -static void FAudio_INTERNAL_ResizeResampleCache(FAudio *audio, uint32_t samples) -{ - LOG_FUNC_ENTER(audio) - if (samples > audio->resampleSamples) - { - audio->resampleSamples = samples; - audio->resampleCache = (float*) audio->pRealloc( - audio->resampleCache, - sizeof(float) * audio->resampleSamples - ); - } - LOG_FUNC_EXIT(audio) -} - -static void FAudio_INTERNAL_MixSource(FAudioSourceVoice *voice) -{ - /* Iterators */ - uint32_t i; - /* Decode/Resample variables */ - uint64_t toDecode; - uint64_t toResample; - /* Output mix variables */ - float *stream; - uint32_t mixed; - uint32_t oChan; - FAudioVoice *out; - uint32_t outputRate; - double stepd; - float *finalSamples; - - LOG_FUNC_ENTER(voice->audio) - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - /* Calculate the resample stepping value */ - if (voice->src.resampleFreq != voice->src.freqRatio * voice->src.format->nSamplesPerSec) - { - out = (voice->sends.SendCount == 0) ? - voice->audio->master : /* Barf */ - voice->sends.pSends->pOutputVoice; - outputRate = (out->type == FAUDIO_VOICE_MASTER) ? - out->master.inputSampleRate : - out->mix.inputSampleRate; - stepd = ( - voice->src.freqRatio * - (double) voice->src.format->nSamplesPerSec / - (double) outputRate - ); - voice->src.resampleStep = DOUBLE_TO_FIXED(stepd); - voice->src.resampleFreq = voice->src.freqRatio * voice->src.format->nSamplesPerSec; - } - - if (voice->src.active == 2) - { - /* We're just playing tails, skip all buffer stuff */ - FAudio_INTERNAL_ResizeResampleCache( - voice->audio, - voice->src.resampleSamples * voice->src.format->nChannels - ); - mixed = voice->src.resampleSamples; - FAudio_zero( - voice->audio->resampleCache, - mixed * voice->src.format->nChannels * sizeof(float) - ); - finalSamples = voice->audio->resampleCache; - goto sendwork; - } - - /* Base decode size, int to fixed... */ - toDecode = voice->src.resampleSamples * voice->src.resampleStep; - /* ... rounded up based on current offset... */ - toDecode += voice->src.curBufferOffsetDec + FIXED_FRACTION_MASK; - /* ... fixed to int, truncating extra fraction from rounding. */ - toDecode >>= FIXED_PRECISION; - - /* First voice callback */ - if ( voice->src.callback != NULL && - voice->src.callback->OnVoiceProcessingPassStart != NULL ) - { - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - voice->src.callback->OnVoiceProcessingPassStart( - voice->src.callback, - FAudio_INTERNAL_GetBytesRequested(voice, (uint32_t) toDecode) - ); - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - } - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - - /* Nothing to do? */ - if (voice->src.bufferList == NULL) - { - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - - if (voice->effects.count > 0 && voice->effects.state != FAPO_BUFFER_SILENT) - { - /* do not stop while the effect chain generates a non-silent buffer */ - FAudio_INTERNAL_ResizeResampleCache( - voice->audio, - voice->src.resampleSamples * voice->src.format->nChannels - ); - mixed = voice->src.resampleSamples; - FAudio_zero( - voice->audio->resampleCache, - mixed * voice->src.format->nChannels * sizeof(float) - ); - finalSamples = voice->audio->resampleCache; - goto sendwork; - } - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - if ( voice->src.callback != NULL && - voice->src.callback->OnVoiceProcessingPassEnd != NULL) - { - voice->src.callback->OnVoiceProcessingPassEnd( - voice->src.callback - ); - } - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - - LOG_FUNC_EXIT(voice->audio) - return; - } - - /* Decode... */ - FAudio_INTERNAL_DecodeBuffers(voice, &toDecode); - - /* Subtract any padding samples from the total, if applicable */ - if ( voice->src.curBufferOffsetDec > 0 && - voice->src.totalSamples > 0 ) - { - voice->src.totalSamples -= 1; - } - - /* Okay, we're done messing with client data */ - if ( voice->src.callback != NULL && - voice->src.callback->OnVoiceProcessingPassEnd != NULL) - { - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - voice->src.callback->OnVoiceProcessingPassEnd( - voice->src.callback - ); - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - } - - /* Nothing to resample? */ - if (toDecode == 0) - { - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - - LOG_FUNC_EXIT(voice->audio) - return; - } - - /* int to fixed... */ - toResample = toDecode << FIXED_PRECISION; - /* ... round back down based on current offset... */ - toResample -= voice->src.curBufferOffsetDec; - /* ... but also ceil for any fraction value... */ - toResample += FIXED_FRACTION_MASK; - /* ... undo step size, fixed to int. */ - toResample /= voice->src.resampleStep; - /* Add the padding, for some reason this helps? */ - toResample += EXTRA_DECODE_PADDING; - /* FIXME: I feel like this should be an assert but I suck */ - toResample = FAudio_min(toResample, voice->src.resampleSamples); - - /* Resample... */ - if (voice->src.resampleStep == FIXED_ONE) - { - /* Actually, just use the existing buffer... */ - finalSamples = voice->audio->decodeCache; - } - else - { - FAudio_INTERNAL_ResizeResampleCache( - voice->audio, - voice->src.resampleSamples * voice->src.format->nChannels - ); - voice->src.resample( - voice->audio->decodeCache, - voice->audio->resampleCache, - &voice->src.resampleOffset, - voice->src.resampleStep, - toResample, - (uint8_t) voice->src.format->nChannels - ); - finalSamples = voice->audio->resampleCache; - } - - /* Update buffer offsets */ - if (voice->src.bufferList != NULL) - { - /* Increment fixed offset by resample size, int to fixed... */ - voice->src.curBufferOffsetDec += toResample * voice->src.resampleStep; - /* ... chop off any ints we got from the above increment */ - voice->src.curBufferOffsetDec &= FIXED_FRACTION_MASK; - - /* Dec >0? We need one frame from the past... - * FIXME: We can't go back to a prev buffer though? - */ - if ( voice->src.curBufferOffsetDec > 0 && - voice->src.curBufferOffset > 0 ) - { - voice->src.curBufferOffset -= 1; - } - } - else - { - voice->src.curBufferOffsetDec = 0; - voice->src.curBufferOffset = 0; - } - - /* Done with buffers, finally. */ - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) - mixed = (uint32_t) toResample; - -sendwork: - - /* Filters */ - if (voice->flags & FAUDIO_VOICE_USEFILTER) - { - FAudio_PlatformLockMutex(voice->filterLock); - LOG_MUTEX_LOCK(voice->audio, voice->filterLock) - FAudio_INTERNAL_FilterVoice( - voice->audio, - &voice->filter, - voice->filterState, - finalSamples, - mixed, - voice->src.format->nChannels - ); - FAudio_PlatformUnlockMutex(voice->filterLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->filterLock) - } - - /* Process effect chain */ - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - if (voice->effects.count > 0) - { - /* If we didn't get the full size of the update, we have to fill - * it with silence so the effect can process a whole update - */ - if (mixed < voice->src.resampleSamples) - { - FAudio_zero( - finalSamples + (mixed * voice->src.format->nChannels), - (voice->src.resampleSamples - mixed) * voice->src.format->nChannels * sizeof(float) - ); - mixed = voice->src.resampleSamples; - } - finalSamples = FAudio_INTERNAL_ProcessEffectChain( - voice, - finalSamples, - &mixed - ); - } - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - - /* Nowhere to send it? Just skip the rest...*/ - if (voice->sends.SendCount == 0) - { - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_FUNC_EXIT(voice->audio) - return; - } - - /* Send float cache to sends */ - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - for (i = 0; i < voice->sends.SendCount; i += 1) - { - out = voice->sends.pSends[i].pOutputVoice; - if (out->type == FAUDIO_VOICE_MASTER) - { - stream = out->master.output; - oChan = out->master.inputChannels; - } - else - { - stream = out->mix.inputCache; - oChan = out->mix.inputChannels; - } - - voice->sendMix[i]( - mixed, - voice->outputChannels, - oChan, - finalSamples, - stream, - voice->mixCoefficients[i] - ); - - if (voice->sends.pSends[i].Flags & FAUDIO_SEND_USEFILTER) - { - FAudio_INTERNAL_FilterVoice( - voice->audio, - &voice->sendFilter[i], - voice->sendFilterState[i], - stream, - mixed, - oChan - ); - } - } - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - LOG_FUNC_EXIT(voice->audio) -} - -static void FAudio_INTERNAL_MixSubmix(FAudioSubmixVoice *voice) -{ - uint32_t i; - float *stream; - uint32_t oChan; - FAudioVoice *out; - uint32_t resampled; - uint64_t resampleOffset = 0; - float *finalSamples; - - LOG_FUNC_ENTER(voice->audio) - FAudio_PlatformLockMutex(voice->sendLock); - LOG_MUTEX_LOCK(voice->audio, voice->sendLock) - - /* Resample */ - if (voice->mix.resampleStep == FIXED_ONE) - { - /* Actually, just use the existing buffer... */ - finalSamples = voice->mix.inputCache; - } - else - { - FAudio_INTERNAL_ResizeResampleCache( - voice->audio, - voice->mix.outputSamples * voice->mix.inputChannels - ); - voice->mix.resample( - voice->mix.inputCache, - voice->audio->resampleCache, - &resampleOffset, - voice->mix.resampleStep, - voice->mix.outputSamples, - (uint8_t) voice->mix.inputChannels - ); - finalSamples = voice->audio->resampleCache; - } - resampled = voice->mix.outputSamples * voice->mix.inputChannels; - - /* Submix overall volume is applied _before_ effects/filters, blech! */ - if (voice->volume != 1.0f) - { - FAudio_INTERNAL_Amplify( - finalSamples, - resampled, - voice->volume - ); - } - resampled /= voice->mix.inputChannels; - - /* Filters */ - if (voice->flags & FAUDIO_VOICE_USEFILTER) - { - FAudio_PlatformLockMutex(voice->filterLock); - LOG_MUTEX_LOCK(voice->audio, voice->filterLock) - FAudio_INTERNAL_FilterVoice( - voice->audio, - &voice->filter, - voice->filterState, - finalSamples, - resampled, - voice->mix.inputChannels - ); - FAudio_PlatformUnlockMutex(voice->filterLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->filterLock) - } - - /* Process effect chain */ - FAudio_PlatformLockMutex(voice->effectLock); - LOG_MUTEX_LOCK(voice->audio, voice->effectLock) - if (voice->effects.count > 0) - { - finalSamples = FAudio_INTERNAL_ProcessEffectChain( - voice, - finalSamples, - &resampled - ); - } - FAudio_PlatformUnlockMutex(voice->effectLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->effectLock) - - /* Nothing more to do? */ - if (voice->sends.SendCount == 0) - { - goto end; - } - - /* Send float cache to sends */ - FAudio_PlatformLockMutex(voice->volumeLock); - LOG_MUTEX_LOCK(voice->audio, voice->volumeLock) - for (i = 0; i < voice->sends.SendCount; i += 1) - { - out = voice->sends.pSends[i].pOutputVoice; - if (out->type == FAUDIO_VOICE_MASTER) - { - stream = out->master.output; - oChan = out->master.inputChannels; - } - else - { - stream = out->mix.inputCache; - oChan = out->mix.inputChannels; - } - - voice->sendMix[i]( - resampled, - voice->outputChannels, - oChan, - finalSamples, - stream, - voice->mixCoefficients[i] - ); - - if (voice->sends.pSends[i].Flags & FAUDIO_SEND_USEFILTER) - { - FAudio_INTERNAL_FilterVoice( - voice->audio, - &voice->sendFilter[i], - voice->sendFilterState[i], - stream, - resampled, - oChan - ); - } - } - FAudio_PlatformUnlockMutex(voice->volumeLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->volumeLock) - - /* Zero this at the end, for the next update */ -end: - FAudio_PlatformUnlockMutex(voice->sendLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->sendLock) - FAudio_zero( - voice->mix.inputCache, - sizeof(float) * voice->mix.inputSamples - ); - LOG_FUNC_EXIT(voice->audio) -} - -static void FAudio_INTERNAL_FlushPendingBuffers(FAudioSourceVoice *voice) -{ - FAudioBufferEntry *entry; - - FAudio_PlatformLockMutex(voice->src.bufferLock); - LOG_MUTEX_LOCK(voice->audio, voice->src.bufferLock) - - /* Remove pending flushed buffers and send an event for each one */ - while (voice->src.flushList != NULL) - { - entry = voice->src.flushList; - voice->src.flushList = voice->src.flushList->next; - - if (voice->src.callback != NULL && voice->src.callback->OnBufferEnd != NULL) - { - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - - voice->src.callback->OnBufferEnd( - voice->src.callback, - entry->buffer.pContext - ); - - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - } - voice->audio->pFree(entry); - } - - FAudio_PlatformUnlockMutex(voice->src.bufferLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->src.bufferLock) -} - -static void FAUDIOCALL FAudio_INTERNAL_GenerateOutput(FAudio *audio, float *output) -{ - uint32_t totalSamples; - LinkedList *list; - float *effectOut; - FAudioEngineCallback *callback; - - LOG_FUNC_ENTER(audio) - if (!audio->active) - { - LOG_FUNC_EXIT(audio) - return; - } - - /* Apply any committed changes */ - FAudio_OPERATIONSET_Execute(audio); - - /* ProcessingPassStart callbacks */ - FAudio_PlatformLockMutex(audio->callbackLock); - LOG_MUTEX_LOCK(audio, audio->callbackLock) - list = audio->callbacks; - while (list != NULL) - { - callback = (FAudioEngineCallback*) list->entry; - if (callback->OnProcessingPassStart != NULL) - { - callback->OnProcessingPassStart( - callback - ); - } - list = list->next; - } - FAudio_PlatformUnlockMutex(audio->callbackLock); - LOG_MUTEX_UNLOCK(audio, audio->callbackLock) - - /* Writes to master will directly write to output, but ONLY if there - * isn't any channel-changing effect processing to do first. - */ - if (audio->master->master.effectCache != NULL) - { - audio->master->master.output = audio->master->master.effectCache; - FAudio_zero( - audio->master->master.effectCache, - ( - sizeof(float) * - audio->updateSize * - audio->master->master.inputChannels - ) - ); - } - else - { - audio->master->master.output = output; - } - - /* Mix sources */ - FAudio_PlatformLockMutex(audio->sourceLock); - LOG_MUTEX_LOCK(audio, audio->sourceLock) - list = audio->sources; - while (list != NULL) - { - audio->processingSource = (FAudioSourceVoice*) list->entry; - - FAudio_INTERNAL_FlushPendingBuffers(audio->processingSource); - if (audio->processingSource->src.active) - { - FAudio_INTERNAL_MixSource(audio->processingSource); - FAudio_INTERNAL_FlushPendingBuffers(audio->processingSource); - } - - list = list->next; - } - audio->processingSource = NULL; - FAudio_PlatformUnlockMutex(audio->sourceLock); - LOG_MUTEX_UNLOCK(audio, audio->sourceLock) - - /* Mix submixes, ordered by processing stage */ - FAudio_PlatformLockMutex(audio->submixLock); - LOG_MUTEX_LOCK(audio, audio->submixLock) - list = audio->submixes; - while (list != NULL) - { - FAudio_INTERNAL_MixSubmix((FAudioSubmixVoice*) list->entry); - list = list->next; - } - FAudio_PlatformUnlockMutex(audio->submixLock); - LOG_MUTEX_UNLOCK(audio, audio->submixLock) - - /* Apply master volume */ - if (audio->master->volume != 1.0f) - { - FAudio_INTERNAL_Amplify( - audio->master->master.output, - audio->updateSize * audio->master->master.inputChannels, - audio->master->volume - ); - } - - /* Process master effect chain */ - FAudio_PlatformLockMutex(audio->master->effectLock); - LOG_MUTEX_LOCK(audio, audio->master->effectLock) - if (audio->master->effects.count > 0) - { - totalSamples = audio->updateSize; - effectOut = FAudio_INTERNAL_ProcessEffectChain( - audio->master, - audio->master->master.output, - &totalSamples - ); - - if (effectOut != output) - { - FAudio_memcpy( - output, - effectOut, - totalSamples * audio->master->outputChannels * sizeof(float) - ); - } - if (totalSamples < audio->updateSize) - { - FAudio_zero( - output + (totalSamples * audio->master->outputChannels), - (audio->updateSize - totalSamples) * sizeof(float) - ); - } - } - FAudio_PlatformUnlockMutex(audio->master->effectLock); - LOG_MUTEX_UNLOCK(audio, audio->master->effectLock) - - /* OnProcessingPassEnd callbacks */ - FAudio_PlatformLockMutex(audio->callbackLock); - LOG_MUTEX_LOCK(audio, audio->callbackLock) - list = audio->callbacks; - while (list != NULL) - { - callback = (FAudioEngineCallback*) list->entry; - if (callback->OnProcessingPassEnd != NULL) - { - callback->OnProcessingPassEnd( - callback - ); - } - list = list->next; - } - FAudio_PlatformUnlockMutex(audio->callbackLock); - LOG_MUTEX_UNLOCK(audio, audio->callbackLock) - - LOG_FUNC_EXIT(audio) -} - -void FAudio_INTERNAL_UpdateEngine(FAudio *audio, float *output) -{ - LOG_FUNC_ENTER(audio) - if (audio->pClientEngineProc) - { - audio->pClientEngineProc( - &FAudio_INTERNAL_GenerateOutput, - audio, - output, - audio->clientEngineUser - ); - } - else - { - FAudio_INTERNAL_GenerateOutput(audio, output); - } - LOG_FUNC_EXIT(audio) -} - -void FAudio_INTERNAL_ResizeDecodeCache(FAudio *audio, uint32_t samples) -{ - LOG_FUNC_ENTER(audio) - FAudio_PlatformLockMutex(audio->sourceLock); - LOG_MUTEX_LOCK(audio, audio->sourceLock) - if (samples > audio->decodeSamples) - { - audio->decodeSamples = samples; - audio->decodeCache = (float*) audio->pRealloc( - audio->decodeCache, - sizeof(float) * audio->decodeSamples - ); - } - FAudio_PlatformUnlockMutex(audio->sourceLock); - LOG_MUTEX_UNLOCK(audio, audio->sourceLock) - LOG_FUNC_EXIT(audio) -} - -void FAudio_INTERNAL_AllocEffectChain( - FAudioVoice *voice, - const FAudioEffectChain *pEffectChain -) { - uint32_t i; - - LOG_FUNC_ENTER(voice->audio) - voice->effects.state = FAPO_BUFFER_VALID; - voice->effects.count = pEffectChain->EffectCount; - if (voice->effects.count == 0) - { - LOG_FUNC_EXIT(voice->audio) - return; - } - - for (i = 0; i < pEffectChain->EffectCount; i += 1) - { - pEffectChain->pEffectDescriptors[i].pEffect->AddRef(pEffectChain->pEffectDescriptors[i].pEffect); - } - - voice->effects.desc = (FAudioEffectDescriptor*) voice->audio->pMalloc( - voice->effects.count * sizeof(FAudioEffectDescriptor) - ); - FAudio_memcpy( - voice->effects.desc, - pEffectChain->pEffectDescriptors, - voice->effects.count * sizeof(FAudioEffectDescriptor) - ); - #define ALLOC_EFFECT_PROPERTY(prop, type) \ - voice->effects.prop = (type*) voice->audio->pMalloc( \ - voice->effects.count * sizeof(type) \ - ); \ - FAudio_zero( \ - voice->effects.prop, \ - voice->effects.count * sizeof(type) \ - ); - ALLOC_EFFECT_PROPERTY(parameters, void*) - ALLOC_EFFECT_PROPERTY(parameterSizes, uint32_t) - ALLOC_EFFECT_PROPERTY(parameterUpdates, uint8_t) - ALLOC_EFFECT_PROPERTY(inPlaceProcessing, uint8_t) - #undef ALLOC_EFFECT_PROPERTY - LOG_FUNC_EXIT(voice->audio) -} - -void FAudio_INTERNAL_FreeEffectChain(FAudioVoice *voice) -{ - uint32_t i; - - LOG_FUNC_ENTER(voice->audio) - if (voice->effects.count == 0) - { - LOG_FUNC_EXIT(voice->audio) - return; - } - - for (i = 0; i < voice->effects.count; i += 1) - { - voice->effects.desc[i].pEffect->UnlockForProcess(voice->effects.desc[i].pEffect); - voice->effects.desc[i].pEffect->Release(voice->effects.desc[i].pEffect); - } - - voice->audio->pFree(voice->effects.desc); - voice->audio->pFree(voice->effects.parameters); - voice->audio->pFree(voice->effects.parameterSizes); - voice->audio->pFree(voice->effects.parameterUpdates); - voice->audio->pFree(voice->effects.inPlaceProcessing); - LOG_FUNC_EXIT(voice->audio) -} - -uint32_t FAudio_INTERNAL_VoiceOutputFrequency( - FAudioVoice *voice, - const FAudioVoiceSends *pSendList -) { - uint32_t outSampleRate; - uint32_t newResampleSamples; - uint64_t resampleSanityCheck; - - LOG_FUNC_ENTER(voice->audio) - - if ((pSendList == NULL) || (pSendList->SendCount == 0)) - { - /* When we're deliberately given no sends, use master rate! */ - outSampleRate = voice->audio->master->master.inputSampleRate; - } - else - { - outSampleRate = pSendList->pSends[0].pOutputVoice->type == FAUDIO_VOICE_MASTER ? - pSendList->pSends[0].pOutputVoice->master.inputSampleRate : - pSendList->pSends[0].pOutputVoice->mix.inputSampleRate; - } - newResampleSamples = (uint32_t) FAudio_ceil( - voice->audio->updateSize * - (double) outSampleRate / - (double) voice->audio->master->master.inputSampleRate - ); - if (voice->type == FAUDIO_VOICE_SOURCE) - { - if ( (voice->src.resampleSamples != 0) && - (newResampleSamples != voice->src.resampleSamples) && - (voice->effects.count > 0) ) - { - LOG_FUNC_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - voice->src.resampleSamples = newResampleSamples; - } - else /* (voice->type == FAUDIO_VOICE_SUBMIX) */ - { - if ( (voice->mix.outputSamples != 0) && - (newResampleSamples != voice->mix.outputSamples) && - (voice->effects.count > 0) ) - { - LOG_FUNC_EXIT(voice->audio) - return FAUDIO_E_INVALID_CALL; - } - voice->mix.outputSamples = newResampleSamples; - - voice->mix.resampleStep = DOUBLE_TO_FIXED(( - (double) voice->mix.inputSampleRate / - (double) outSampleRate - )); - - /* Because we used ceil earlier, there's a chance that - * downsampling submixes will go past the number of samples - * available. Sources can do this thanks to padding, but we - * don't have that luxury for submixes, so unfortunately we - * just have to undo the ceil and turn it into a floor. - * -flibit - */ - resampleSanityCheck = ( - voice->mix.resampleStep * voice->mix.outputSamples - ) >> FIXED_PRECISION; - if (resampleSanityCheck > (voice->mix.inputSamples / voice->mix.inputChannels)) - { - voice->mix.outputSamples -= 1; - } - } - - LOG_FUNC_EXIT(voice->audio) - return 0; -} - -const float FAUDIO_INTERNAL_MATRIX_DEFAULTS[8][8][64] = -{ - #include "matrix_defaults.inl" -}; - -/* PCM Decoding */ - -void FAudio_INTERNAL_DecodePCM8( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - LOG_FUNC_ENTER(voice->audio) - FAudio_INTERNAL_Convert_U8_To_F32( - ((uint8_t*) buffer->pAudioData) + ( - voice->src.curBufferOffset * voice->src.format->nChannels - ), - decodeCache, - samples * voice->src.format->nChannels - ); - LOG_FUNC_EXIT(voice->audio) -} - -void FAudio_INTERNAL_DecodePCM16( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - LOG_FUNC_ENTER(voice->audio) - FAudio_INTERNAL_Convert_S16_To_F32( - ((int16_t*) buffer->pAudioData) + ( - voice->src.curBufferOffset * voice->src.format->nChannels - ), - decodeCache, - samples * voice->src.format->nChannels - ); - LOG_FUNC_EXIT(voice->audio) -} - -void FAudio_INTERNAL_DecodePCM24( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - uint32_t i, j; - const uint8_t *buf; - LOG_FUNC_ENTER(voice->audio) - - /* FIXME: Uh... is this something that can be SIMD-ified? */ - buf = buffer->pAudioData + ( - voice->src.curBufferOffset * voice->src.format->nBlockAlign - ); - for (i = 0; i < samples; i += 1, buf += voice->src.format->nBlockAlign) - for (j = 0; j < voice->src.format->nChannels; j += 1) - { - *decodeCache++ = ((int32_t) ( - ((uint32_t) buf[(j * 3) + 2] << 24) | - ((uint32_t) buf[(j * 3) + 1] << 16) | - ((uint32_t) buf[(j * 3) + 0] << 8) - ) >> 8) / 8388607.0f; - } - - LOG_FUNC_EXIT(voice->audio) -} - -void FAudio_INTERNAL_DecodePCM32( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - LOG_FUNC_ENTER(voice->audio) - FAudio_INTERNAL_Convert_S32_To_F32( - ((int32_t*) buffer->pAudioData) + ( - voice->src.curBufferOffset * voice->src.format->nChannels - ), - decodeCache, - samples * voice->src.format->nChannels - ); - LOG_FUNC_EXIT(voice->audio) -} - -void FAudio_INTERNAL_DecodePCM32F( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - LOG_FUNC_ENTER(voice->audio) - FAudio_memcpy( - decodeCache, - ((float*) buffer->pAudioData) + ( - voice->src.curBufferOffset * voice->src.format->nChannels - ), - sizeof(float) * samples * voice->src.format->nChannels - ); - LOG_FUNC_EXIT(voice->audio) -} - -/* MSADPCM Decoding */ - -static inline int16_t FAudio_INTERNAL_ParseNibble( - uint8_t nibble, - uint8_t predictor, - int16_t *delta, - int16_t *sample1, - int16_t *sample2 -) { - static const int32_t AdaptionTable[16] = - { - 230, 230, 230, 230, 307, 409, 512, 614, - 768, 614, 512, 409, 307, 230, 230, 230 - }; - static const int32_t AdaptCoeff_1[7] = - { - 256, 512, 0, 192, 240, 460, 392 - }; - static const int32_t AdaptCoeff_2[7] = - { - 0, -256, 0, 64, 0, -208, -232 - }; - - int8_t signedNibble; - int32_t sampleInt; - int16_t sample; - - signedNibble = (int8_t) nibble; - if (signedNibble & 0x08) - { - signedNibble -= 0x10; - } - - sampleInt = ( - (*sample1 * AdaptCoeff_1[predictor]) + - (*sample2 * AdaptCoeff_2[predictor]) - ) / 256; - sampleInt += signedNibble * (*delta); - sample = FAudio_clamp(sampleInt, -32768, 32767); - - *sample2 = *sample1; - *sample1 = sample; - *delta = (int16_t) (AdaptionTable[nibble] * (int32_t) (*delta) / 256); - if (*delta < 16) - { - *delta = 16; - } - return sample; -} - -#define READ(item, type) \ - item = *((type*) *buf); \ - *buf += sizeof(type); - -static inline void FAudio_INTERNAL_DecodeMonoMSADPCMBlock( - uint8_t **buf, - int16_t *blockCache, - uint32_t align -) { - uint32_t i; - - /* Temp storage for ADPCM blocks */ - uint8_t predictor; - int16_t delta; - int16_t sample1; - int16_t sample2; - - /* Preamble */ - READ(predictor, uint8_t) - READ(delta, int16_t) - READ(sample1, int16_t) - READ(sample2, int16_t) - align -= 7; - - /* Samples */ - *blockCache++ = sample2; - *blockCache++ = sample1; - for (i = 0; i < align; i += 1, *buf += 1) - { - *blockCache++ = FAudio_INTERNAL_ParseNibble( - *(*buf) >> 4, - predictor, - &delta, - &sample1, - &sample2 - ); - *blockCache++ = FAudio_INTERNAL_ParseNibble( - *(*buf) & 0x0F, - predictor, - &delta, - &sample1, - &sample2 - ); - } -} - -static inline void FAudio_INTERNAL_DecodeStereoMSADPCMBlock( - uint8_t **buf, - int16_t *blockCache, - uint32_t align -) { - uint32_t i; - - /* Temp storage for ADPCM blocks */ - uint8_t l_predictor; - uint8_t r_predictor; - int16_t l_delta; - int16_t r_delta; - int16_t l_sample1; - int16_t r_sample1; - int16_t l_sample2; - int16_t r_sample2; - - /* Preamble */ - READ(l_predictor, uint8_t) - READ(r_predictor, uint8_t) - READ(l_delta, int16_t) - READ(r_delta, int16_t) - READ(l_sample1, int16_t) - READ(r_sample1, int16_t) - READ(l_sample2, int16_t) - READ(r_sample2, int16_t) - align -= 14; - - /* Samples */ - *blockCache++ = l_sample2; - *blockCache++ = r_sample2; - *blockCache++ = l_sample1; - *blockCache++ = r_sample1; - for (i = 0; i < align; i += 1, *buf += 1) - { - *blockCache++ = FAudio_INTERNAL_ParseNibble( - *(*buf) >> 4, - l_predictor, - &l_delta, - &l_sample1, - &l_sample2 - ); - *blockCache++ = FAudio_INTERNAL_ParseNibble( - *(*buf) & 0x0F, - r_predictor, - &r_delta, - &r_sample1, - &r_sample2 - ); - } -} - -#undef READ - -void FAudio_INTERNAL_DecodeMonoMSADPCM( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - /* Loop variables */ - uint32_t copy, done = 0; - - /* Read pointers */ - uint8_t *buf; - int32_t midOffset; - - /* PCM block cache */ - int16_t *blockCache; - - /* Block size */ - uint32_t bsize = ((FAudioADPCMWaveFormat*) voice->src.format)->wSamplesPerBlock; - - LOG_FUNC_ENTER(voice->audio) - - /* Where are we starting? */ - buf = (uint8_t*) buffer->pAudioData + ( - (voice->src.curBufferOffset / bsize) * - voice->src.format->nBlockAlign - ); - - /* Are we starting in the middle? */ - midOffset = (voice->src.curBufferOffset % bsize); - - /* Read in each block directly to the decode cache */ - blockCache = (int16_t*) FAudio_alloca(bsize * sizeof(int16_t)); - while (done < samples) - { - copy = FAudio_min(samples - done, bsize - midOffset); - FAudio_INTERNAL_DecodeMonoMSADPCMBlock( - &buf, - blockCache, - voice->src.format->nBlockAlign - ); - FAudio_INTERNAL_Convert_S16_To_F32( - blockCache + midOffset, - decodeCache, - copy - ); - decodeCache += copy; - done += copy; - midOffset = 0; - } - FAudio_dealloca(blockCache); - LOG_FUNC_EXIT(voice->audio) -} - -void FAudio_INTERNAL_DecodeStereoMSADPCM( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - /* Loop variables */ - uint32_t copy, done = 0; - - /* Read pointers */ - uint8_t *buf; - int32_t midOffset; - - /* PCM block cache */ - int16_t *blockCache; - - /* Align, block size */ - uint32_t bsize = ((FAudioADPCMWaveFormat*) voice->src.format)->wSamplesPerBlock; - - LOG_FUNC_ENTER(voice->audio) - - /* Where are we starting? */ - buf = (uint8_t*) buffer->pAudioData + ( - (voice->src.curBufferOffset / bsize) * - voice->src.format->nBlockAlign - ); - - /* Are we starting in the middle? */ - midOffset = (voice->src.curBufferOffset % bsize); - - /* Read in each block directly to the decode cache */ - blockCache = (int16_t*) FAudio_alloca(bsize * 2 * sizeof(int16_t)); - while (done < samples) - { - copy = FAudio_min(samples - done, bsize - midOffset); - FAudio_INTERNAL_DecodeStereoMSADPCMBlock( - &buf, - blockCache, - voice->src.format->nBlockAlign - ); - FAudio_INTERNAL_Convert_S16_To_F32( - blockCache + (midOffset * 2), - decodeCache, - copy * 2 - ); - decodeCache += copy * 2; - done += copy; - midOffset = 0; - } - FAudio_dealloca(blockCache); - LOG_FUNC_EXIT(voice->audio) -} - -/* Fallback WMA decoder, get ready for spam! */ - -void FAudio_INTERNAL_DecodeWMAERROR( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - LOG_FUNC_ENTER(voice->audio) - LOG_ERROR(voice->audio, "%s", "WMA IS NOT SUPPORTED IN THIS BUILD!") - FAudio_zero(decodeCache, samples * voice->src.format->nChannels * sizeof(float)); - LOG_FUNC_EXIT(voice->audio) -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal.h deleted file mode 100644 index 926a0159..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal.h +++ /dev/null @@ -1,911 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAudio.h" -#include "FAPOBase.h" -#include - -#ifdef FAUDIO_WIN32_PLATFORM -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#define FAudio_malloc malloc -#define FAudio_realloc realloc -#define FAudio_free free -#define FAudio_alloca(x) alloca(x) -#define FAudio_dealloca(x) (void)(x) -#define FAudio_zero(ptr, size) memset(ptr, '\0', size) -#define FAudio_memset(ptr, val, size) memset(ptr, val, size) -#define FAudio_memcpy(dst, src, size) memcpy(dst, src, size) -#define FAudio_memmove(dst, src, size) memmove(dst, src, size) -#define FAudio_memcmp(ptr1, ptr2, size) memcmp(ptr1, ptr2, size) - -#define FAudio_strlen(ptr) strlen(ptr) -#define FAudio_strcmp(str1, str2) strcmp(str1, str2) -#define FAudio_strncmp(str1, str2, size) strncmp(str1, str2, size) -#define FAudio_strlcpy(ptr1, ptr2, size) lstrcpynA(ptr1, ptr2, size) - -#define FAudio_pow(x, y) pow(x, y) -#define FAudio_log(x) log(x) -#define FAudio_log10(x) log10(x) -#define FAudio_sin(x) sin(x) -#define FAudio_cos(x) cos(x) -#define FAudio_tan(x) tan(x) -#define FAudio_acos(x) acos(x) -#define FAudio_ceil(x) ceil(x) -#define FAudio_floor(x) floor(x) -#define FAudio_abs(x) abs(x) -#define FAudio_ldexp(v, e) ldexp(v, e) -#define FAudio_exp(x) exp(x) - -#define FAudio_cosf(x) cosf(x) -#define FAudio_sinf(x) sinf(x) -#define FAudio_sqrtf(x) sqrtf(x) -#define FAudio_acosf(x) acosf(x) -#define FAudio_atan2f(y, x) atan2f(y, x) -#define FAudio_fabsf(x) fabsf(x) - -#define FAudio_qsort qsort - -#define FAudio_assert assert -#define FAudio_snprintf snprintf -#define FAudio_vsnprintf vsnprintf -#define FAudio_getenv getenv -#define FAudio_PRIu64 PRIu64 -#define FAudio_PRIx64 PRIx64 - -extern void FAudio_Log(char const *msg); - -/* FIXME: Assuming little-endian! */ -#define FAudio_swap16LE(x) (x) -#define FAudio_swap16BE(x) \ - ((x >> 8) & 0x00FF) | \ - ((x << 8) & 0xFF00) -#define FAudio_swap32LE(x) (x) -#define FAudio_swap32BE(x) \ - ((x >> 24) & 0x000000FF) | \ - ((x >> 8) & 0x0000FF00) | \ - ((x << 8) & 0x00FF0000) | \ - ((x << 24) & 0xFF000000) -#define FAudio_swap64LE(x) (x) -#define FAudio_swap64BE(x) \ - ((x >> 32) & 0x00000000000000FF) | \ - ((x >> 24) & 0x000000000000FF00) | \ - ((x >> 16) & 0x0000000000FF0000) | \ - ((x >> 8) & 0x00000000FF000000) | \ - ((x << 8) & 0x000000FF00000000) | \ - ((x << 16) & 0x0000FF0000000000) | \ - ((x << 24) & 0x00FF000000000000) | \ - ((x << 32) & 0xFF00000000000000) -#else -#include -#include -#include -#include - -#define FAudio_malloc SDL_malloc -#define FAudio_realloc SDL_realloc -#define FAudio_free SDL_free -#define FAudio_alloca(x) SDL_stack_alloc(uint8_t, x) -#define FAudio_dealloca(x) SDL_stack_free(x) -#define FAudio_zero(ptr, size) SDL_memset(ptr, '\0', size) -#define FAudio_memset(ptr, val, size) SDL_memset(ptr, val, size) -#define FAudio_memcpy(dst, src, size) SDL_memcpy(dst, src, size) -#define FAudio_memmove(dst, src, size) SDL_memmove(dst, src, size) -#define FAudio_memcmp(ptr1, ptr2, size) SDL_memcmp(ptr1, ptr2, size) - -#define FAudio_strlen(ptr) SDL_strlen(ptr) -#define FAudio_strcmp(str1, str2) SDL_strcmp(str1, str2) -#define FAudio_strncmp(str1, str2, size) SDL_strncmp(str1, str1, size) -#define FAudio_strlcpy(ptr1, ptr2, size) SDL_strlcpy(ptr1, ptr2, size) - -#define FAudio_pow(x, y) SDL_pow(x, y) -#define FAudio_log(x) SDL_log(x) -#define FAudio_log10(x) SDL_log10(x) -#define FAudio_sin(x) SDL_sin(x) -#define FAudio_cos(x) SDL_cos(x) -#define FAudio_tan(x) SDL_tan(x) -#define FAudio_acos(x) SDL_acos(x) -#define FAudio_ceil(x) SDL_ceil(x) -#define FAudio_floor(x) SDL_floor(x) -#define FAudio_abs(x) SDL_abs(x) -#define FAudio_ldexp(v, e) SDL_scalbn(v, e) -#define FAudio_exp(x) SDL_exp(x) - -#define FAudio_cosf(x) SDL_cosf(x) -#define FAudio_sinf(x) SDL_sinf(x) -#define FAudio_sqrtf(x) SDL_sqrtf(x) -#define FAudio_acosf(x) SDL_acosf(x) -#define FAudio_atan2f(y, x) SDL_atan2f(y, x) -#define FAudio_fabsf(x) SDL_fabsf(x) - -#define FAudio_qsort SDL_qsort - -#ifdef FAUDIO_LOG_ASSERTIONS -#define FAudio_assert(condition) \ - { \ - static uint8_t logged = 0; \ - if (!(condition) && !logged) \ - { \ - SDL_Log("Assertion failed: %s", #condition); \ - logged = 1; \ - } \ - } -#else -#define FAudio_assert SDL_assert -#endif -#define FAudio_snprintf SDL_snprintf -#define FAudio_vsnprintf SDL_vsnprintf -#define FAudio_Log(msg) SDL_Log("%s", msg) -#define FAudio_getenv SDL_getenv -#define FAudio_PRIu64 SDL_PRIu64 -#define FAudio_PRIx64 SDL_PRIx64 - -#define FAudio_swap16LE(x) SDL_SwapLE16(x) -#define FAudio_swap16BE(x) SDL_SwapBE16(x) -#define FAudio_swap32LE(x) SDL_SwapLE32(x) -#define FAudio_swap32BE(x) SDL_SwapBE32(x) -#define FAudio_swap64LE(x) SDL_SwapLE64(x) -#define FAudio_swap64BE(x) SDL_SwapBE64(x) -#endif - -/* Easy Macros */ -#define FAudio_min(val1, val2) \ - (val1 < val2 ? val1 : val2) -#define FAudio_max(val1, val2) \ - (val1 > val2 ? val1 : val2) -#define FAudio_clamp(val, min, max) \ - (val > max ? max : (val < min ? min : val)) - -/* Windows/Visual Studio cruft */ -#ifdef _WIN32 - #ifdef __cplusplus - /* C++ should have `inline`, but not `restrict` */ - #define restrict - #else - #define inline __inline - #if defined(_MSC_VER) - #if (_MSC_VER >= 1700) /* VS2012+ */ - #define restrict __restrict - #else /* VS2010- */ - #define restrict - #endif - #endif - #endif -#endif - -/* C++ does not have restrict (though VS2012+ does have __restrict) */ -#if defined(__cplusplus) && !defined(restrict) -#define restrict -#endif - -/* Threading Types */ - -typedef void* FAudioThread; -typedef void* FAudioMutex; -typedef int32_t (FAUDIOCALL * FAudioThreadFunc)(void* data); -typedef enum FAudioThreadPriority -{ - FAUDIO_THREAD_PRIORITY_LOW, - FAUDIO_THREAD_PRIORITY_NORMAL, - FAUDIO_THREAD_PRIORITY_HIGH, -} FAudioThreadPriority; - -/* Linked Lists */ - -typedef struct LinkedList LinkedList; -struct LinkedList -{ - void* entry; - LinkedList *next; -}; -void LinkedList_AddEntry( - LinkedList **start, - void* toAdd, - FAudioMutex lock, - FAudioMallocFunc pMalloc -); -void LinkedList_PrependEntry( - LinkedList **start, - void* toAdd, - FAudioMutex lock, - FAudioMallocFunc pMalloc -); -void LinkedList_RemoveEntry( - LinkedList **start, - void* toRemove, - FAudioMutex lock, - FAudioFreeFunc pFree -); - -/* Internal FAudio Types */ - -typedef enum FAudioVoiceType -{ - FAUDIO_VOICE_SOURCE, - FAUDIO_VOICE_SUBMIX, - FAUDIO_VOICE_MASTER -} FAudioVoiceType; - -typedef struct FAudioBufferEntry FAudioBufferEntry; -struct FAudioBufferEntry -{ - FAudioBuffer buffer; - FAudioBufferWMA bufferWMA; - FAudioBufferEntry *next; -}; - -typedef void (FAUDIOCALL * FAudioDecodeCallback)( - FAudioVoice *voice, - FAudioBuffer *buffer, /* Buffer to decode */ - float *decodeCache, /* Decode into here */ - uint32_t samples /* Samples to decode */ -); - -typedef void (FAUDIOCALL * FAudioResampleCallback)( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t channels -); - -typedef void (FAUDIOCALL * FAudioMixCallback)( - uint32_t toMix, - uint32_t srcChans, - uint32_t dstChans, - float *restrict srcData, - float *restrict dstData, - float *restrict coefficients -); - -typedef float FAudioFilterState[4]; - -/* Operation Sets, original implementation by Tyler Glaiel */ - -typedef struct FAudio_OPERATIONSET_Operation FAudio_OPERATIONSET_Operation; - -void FAudio_OPERATIONSET_Commit(FAudio *audio, uint32_t OperationSet); -void FAudio_OPERATIONSET_CommitAll(FAudio *audio); -void FAudio_OPERATIONSET_Execute(FAudio *audio); - -void FAudio_OPERATIONSET_ClearAll(FAudio *audio); -void FAudio_OPERATIONSET_ClearAllForVoice(FAudioVoice *voice); - -void FAudio_OPERATIONSET_QueueEnableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueDisableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueSetEffectParameters( - FAudioVoice *voice, - uint32_t EffectIndex, - const void *pParameters, - uint32_t ParametersByteSize, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueSetFilterParameters( - FAudioVoice *voice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueSetOutputFilterParameters( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueSetVolume( - FAudioVoice *voice, - float Volume, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueSetChannelVolumes( - FAudioVoice *voice, - uint32_t Channels, - const float *pVolumes, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueSetOutputMatrix( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - uint32_t SourceChannels, - uint32_t DestinationChannels, - const float *pLevelMatrix, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueStart( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueStop( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueExitLoop( - FAudioSourceVoice *voice, - uint32_t OperationSet -); -void FAudio_OPERATIONSET_QueueSetFrequencyRatio( - FAudioSourceVoice *voice, - float Ratio, - uint32_t OperationSet -); - -/* Public FAudio Types */ - -struct FAudio -{ - uint8_t version; - uint8_t active; - uint32_t refcount; - uint32_t initFlags; - uint32_t updateSize; - FAudioMasteringVoice *master; - LinkedList *sources; - LinkedList *submixes; - LinkedList *callbacks; - FAudioMutex sourceLock; - FAudioMutex submixLock; - FAudioMutex callbackLock; - FAudioMutex operationLock; - FAudioWaveFormatExtensible mixFormat; - - FAudio_OPERATIONSET_Operation *queuedOperations; - FAudio_OPERATIONSET_Operation *committedOperations; - - /* Used to prevent destroying an active voice */ - FAudioSourceVoice *processingSource; - - /* Temp storage for processing, interleaved PCM32F */ - #define EXTRA_DECODE_PADDING 2 - uint32_t decodeSamples; - uint32_t resampleSamples; - uint32_t effectChainSamples; - float *decodeCache; - float *resampleCache; - float *effectChainCache; - - /* Allocator callbacks */ - FAudioMallocFunc pMalloc; - FAudioFreeFunc pFree; - FAudioReallocFunc pRealloc; - - /* EngineProcedureEXT */ - void *clientEngineUser; - FAudioEngineProcedureEXT pClientEngineProc; - -#ifndef FAUDIO_DISABLE_DEBUGCONFIGURATION - /* Debug Information */ - FAudioDebugConfiguration debug; -#endif /* FAUDIO_DISABLE_DEBUGCONFIGURATION */ - - /* Platform opaque pointer */ - void *platform; -}; - -struct FAudioVoice -{ - FAudio *audio; - uint32_t flags; - FAudioVoiceType type; - - FAudioVoiceSends sends; - float **sendCoefficients; - float **mixCoefficients; - FAudioMixCallback *sendMix; - FAudioFilterParameters *sendFilter; - FAudioFilterState **sendFilterState; - struct - { - FAPOBufferFlags state; - uint32_t count; - FAudioEffectDescriptor *desc; - void **parameters; - uint32_t *parameterSizes; - uint8_t *parameterUpdates; - uint8_t *inPlaceProcessing; - } effects; - FAudioFilterParameters filter; - FAudioFilterState *filterState; - FAudioMutex sendLock; - FAudioMutex effectLock; - FAudioMutex filterLock; - - float volume; - float *channelVolume; - uint32_t outputChannels; - FAudioMutex volumeLock; - - FAUDIONAMELESS union - { - struct - { - /* Sample storage */ - uint32_t decodeSamples; - uint32_t resampleSamples; - - /* Resampler */ - float resampleFreq; - uint64_t resampleStep; - uint64_t resampleOffset; - uint64_t curBufferOffsetDec; - uint32_t curBufferOffset; - - /* WMA decoding */ -#ifdef HAVE_WMADEC - struct FAudioWMADEC *wmadec; -#endif /* HAVE_WMADEC*/ - - /* Read-only */ - float maxFreqRatio; - FAudioWaveFormatEx *format; - FAudioDecodeCallback decode; - FAudioResampleCallback resample; - FAudioVoiceCallback *callback; - - /* Dynamic */ - uint8_t active; - float freqRatio; - uint8_t newBuffer; - uint64_t totalSamples; - FAudioBufferEntry *bufferList; - FAudioBufferEntry *flushList; - FAudioMutex bufferLock; - } src; - struct - { - /* Sample storage */ - uint32_t inputSamples; - uint32_t outputSamples; - float *inputCache; - uint64_t resampleStep; - FAudioResampleCallback resample; - - /* Read-only */ - uint32_t inputChannels; - uint32_t inputSampleRate; - uint32_t processingStage; - } mix; - struct - { - /* Output stream, allocated by Platform */ - float *output; - - /* Needed when inputChannels != outputChannels */ - float *effectCache; - - /* Read-only */ - uint32_t inputChannels; - uint32_t inputSampleRate; - } master; - }; -}; - -/* Internal Functions */ -void FAudio_INTERNAL_InsertSubmixSorted( - LinkedList **start, - FAudioSubmixVoice *toAdd, - FAudioMutex lock, - FAudioMallocFunc pMalloc -); -void FAudio_INTERNAL_UpdateEngine(FAudio *audio, float *output); -void FAudio_INTERNAL_ResizeDecodeCache(FAudio *audio, uint32_t size); -void FAudio_INTERNAL_AllocEffectChain( - FAudioVoice *voice, - const FAudioEffectChain *pEffectChain -); -void FAudio_INTERNAL_FreeEffectChain(FAudioVoice *voice); -uint32_t FAudio_INTERNAL_VoiceOutputFrequency( - FAudioVoice *voice, - const FAudioVoiceSends *pSendList -); -extern const float FAUDIO_INTERNAL_MATRIX_DEFAULTS[8][8][64]; - -/* Debug */ - -#ifdef FAUDIO_DISABLE_DEBUGCONFIGURATION - -#define LOG_ERROR(engine, fmt, ...) -#define LOG_WARNING(engine, fmt, ...) -#define LOG_INFO(engine, fmt, ...) -#define LOG_DETAIL(engine, fmt, ...) -#define LOG_API_ENTER(engine) -#define LOG_API_EXIT(engine) -#define LOG_FUNC_ENTER(engine) -#define LOG_FUNC_EXIT(engine) -/* TODO: LOG_TIMING */ -#define LOG_MUTEX_CREATE(engine, mutex) -#define LOG_MUTEX_DESTROY(engine, mutex) -#define LOG_MUTEX_LOCK(engine, mutex) -#define LOG_MUTEX_UNLOCK(engine, mutex) -/* TODO: LOG_MEMORY */ -/* TODO: LOG_STREAMING */ - -#define LOG_FORMAT(engine, waveFormat) - -#else - -#if defined(_MSC_VER) -/* VC doesn't support __attribute__ at all, and there's no replacement for format. */ -void FAudio_INTERNAL_debug( - FAudio *audio, - const char *file, - uint32_t line, - const char *func, - const char *fmt, - ... -); -#if _MSC_VER <= 1700 /* <=2012 also doesn't support __func__ */ -#define __func__ __FUNCTION__ -#endif -#else -void FAudio_INTERNAL_debug( - FAudio *audio, - const char *file, - uint32_t line, - const char *func, - const char *fmt, - ... -) __attribute__((format(printf,5,6))); -#endif -void FAudio_INTERNAL_debug_fmt( - FAudio *audio, - const char *file, - uint32_t line, - const char *func, - const FAudioWaveFormatEx *fmt -); - -#define PRINT_DEBUG(engine, cond, type, fmt, ...) \ - if (engine->debug.TraceMask & FAUDIO_LOG_##cond) \ - { \ - FAudio_INTERNAL_debug( \ - engine, \ - __FILE__, \ - __LINE__, \ - __func__, \ - type ": " fmt, \ - __VA_ARGS__ \ - ); \ - } - -#define LOG_ERROR(engine, fmt, ...) PRINT_DEBUG(engine, ERRORS, "ERROR", fmt, __VA_ARGS__) -#define LOG_WARNING(engine, fmt, ...) PRINT_DEBUG(engine, WARNINGS, "WARNING", fmt, __VA_ARGS__) -#define LOG_INFO(engine, fmt, ...) PRINT_DEBUG(engine, INFO, "INFO", fmt, __VA_ARGS__) -#define LOG_DETAIL(engine, fmt, ...) PRINT_DEBUG(engine, DETAIL, "DETAIL", fmt, __VA_ARGS__) -#define LOG_API_ENTER(engine) PRINT_DEBUG(engine, API_CALLS, "API Enter", "%s", __func__) -#define LOG_API_EXIT(engine) PRINT_DEBUG(engine, API_CALLS, "API Exit", "%s", __func__) -#define LOG_FUNC_ENTER(engine) PRINT_DEBUG(engine, FUNC_CALLS, "FUNC Enter", "%s", __func__) -#define LOG_FUNC_EXIT(engine) PRINT_DEBUG(engine, FUNC_CALLS, "FUNC Exit", "%s", __func__) -/* TODO: LOG_TIMING */ -#define LOG_MUTEX_CREATE(engine, mutex) PRINT_DEBUG(engine, LOCKS, "Mutex Create", "%p", mutex) -#define LOG_MUTEX_DESTROY(engine, mutex) PRINT_DEBUG(engine, LOCKS, "Mutex Destroy", "%p", mutex) -#define LOG_MUTEX_LOCK(engine, mutex) PRINT_DEBUG(engine, LOCKS, "Mutex Lock", "%p", mutex) -#define LOG_MUTEX_UNLOCK(engine, mutex) PRINT_DEBUG(engine, LOCKS, "Mutex Unlock", "%p", mutex) -/* TODO: LOG_MEMORY */ -/* TODO: LOG_STREAMING */ - -#define LOG_FORMAT(engine, waveFormat) \ - if (engine->debug.TraceMask & FAUDIO_LOG_INFO) \ - { \ - FAudio_INTERNAL_debug_fmt( \ - engine, \ - __FILE__, \ - __LINE__, \ - __func__, \ - waveFormat \ - ); \ - } - -#endif /* FAUDIO_DISABLE_DEBUGCONFIGURATION */ - -/* FAPOFX Creators */ - -#define CREATE_FAPOFX_FUNC(effect) \ - extern uint32_t FAPOFXCreate##effect( \ - FAPO **pEffect, \ - const void *pInitData, \ - uint32_t InitDataByteSize, \ - FAudioMallocFunc customMalloc, \ - FAudioFreeFunc customFree, \ - FAudioReallocFunc customRealloc, \ - uint8_t legacy \ - ); -CREATE_FAPOFX_FUNC(EQ) -CREATE_FAPOFX_FUNC(MasteringLimiter) -CREATE_FAPOFX_FUNC(Reverb) -CREATE_FAPOFX_FUNC(Echo) -#undef CREATE_FAPOFX_FUNC - -/* SIMD Stuff */ - -/* Callbacks declared as functions (rather than function pointers) are - * scalar-only, for now. SIMD versions should be possible for these. - */ - -extern void (*FAudio_INTERNAL_Convert_U8_To_F32)( - const uint8_t *restrict src, - float *restrict dst, - uint32_t len -); -extern void (*FAudio_INTERNAL_Convert_S16_To_F32)( - const int16_t *restrict src, - float *restrict dst, - uint32_t len -); -extern void (*FAudio_INTERNAL_Convert_S32_To_F32)( - const int32_t *restrict src, - float *restrict dst, - uint32_t len -); - -extern FAudioResampleCallback FAudio_INTERNAL_ResampleMono; -extern FAudioResampleCallback FAudio_INTERNAL_ResampleStereo; -extern void FAudio_INTERNAL_ResampleGeneric( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t channels -); - -extern void (*FAudio_INTERNAL_Amplify)( - float *output, - uint32_t totalSamples, - float volume -); - -extern FAudioMixCallback FAudio_INTERNAL_Mix_Generic; - -#define MIX_FUNC(type) \ - extern void FAudio_INTERNAL_Mix_##type##_Scalar( \ - uint32_t toMix, \ - uint32_t srcChans, \ - uint32_t dstChans, \ - float *restrict srcData, \ - float *restrict dstData, \ - float *restrict coefficients \ - ); -MIX_FUNC(Generic) -MIX_FUNC(1in_1out) -MIX_FUNC(1in_2out) -MIX_FUNC(1in_6out) -MIX_FUNC(1in_8out) -MIX_FUNC(2in_1out) -MIX_FUNC(2in_2out) -MIX_FUNC(2in_6out) -MIX_FUNC(2in_8out) -#undef MIX_FUNC - -void FAudio_INTERNAL_InitSIMDFunctions(uint8_t hasSSE2, uint8_t hasNEON); - -/* Decoders */ - -#define DECODE_FUNC(type) \ - extern void FAudio_INTERNAL_Decode##type( \ - FAudioVoice *voice, \ - FAudioBuffer *buffer, \ - float *decodeCache, \ - uint32_t samples \ - ); -DECODE_FUNC(PCM8) -DECODE_FUNC(PCM16) -DECODE_FUNC(PCM24) -DECODE_FUNC(PCM32) -DECODE_FUNC(PCM32F) -DECODE_FUNC(MonoMSADPCM) -DECODE_FUNC(StereoMSADPCM) -DECODE_FUNC(WMAERROR) -#undef DECODE_FUNC - -/* WMA decoding */ - -#ifdef HAVE_WMADEC -uint32_t FAudio_WMADEC_init(FAudioSourceVoice *pSourceVoice, uint32_t type); -void FAudio_WMADEC_free(FAudioSourceVoice *voice); -void FAudio_WMADEC_end_buffer(FAudioSourceVoice *voice); -#endif /* HAVE_WMADEC */ - -/* Platform Functions */ - -void FAudio_PlatformAddRef(void); -void FAudio_PlatformRelease(void); -void FAudio_PlatformInit( - FAudio *audio, - uint32_t flags, - uint32_t deviceIndex, - FAudioWaveFormatExtensible *mixFormat, - uint32_t *updateSize, - void** platformDevice -); -void FAudio_PlatformQuit(void* platformDevice); - -uint32_t FAudio_PlatformGetDeviceCount(void); -uint32_t FAudio_PlatformGetDeviceDetails( - uint32_t index, - FAudioDeviceDetails *details -); - -/* Threading */ - -FAudioThread FAudio_PlatformCreateThread( - FAudioThreadFunc func, - const char *name, - void* data -); -void FAudio_PlatformWaitThread(FAudioThread thread, int32_t *retval); -void FAudio_PlatformThreadPriority(FAudioThreadPriority priority); -uint64_t FAudio_PlatformGetThreadID(void); -FAudioMutex FAudio_PlatformCreateMutex(void); -void FAudio_PlatformDestroyMutex(FAudioMutex mutex); -void FAudio_PlatformLockMutex(FAudioMutex mutex); -void FAudio_PlatformUnlockMutex(FAudioMutex mutex); -void FAudio_sleep(uint32_t ms); - -/* Time */ - -uint32_t FAudio_timems(void); - -/* WaveFormatExtensible Helpers */ - -static inline uint32_t GetMask(uint16_t channels) -{ - if (channels == 1) return SPEAKER_MONO; - if (channels == 2) return SPEAKER_STEREO; - if (channels == 3) return SPEAKER_2POINT1; - if (channels == 4) return SPEAKER_QUAD; - if (channels == 5) return SPEAKER_4POINT1; - if (channels == 6) return SPEAKER_5POINT1; - if (channels == 8) return SPEAKER_7POINT1; - FAudio_assert(0 && "Unrecognized speaker layout!"); - return 0; -} - -static inline void WriteWaveFormatExtensible( - FAudioWaveFormatExtensible *fmt, - int channels, - int samplerate, - const FAudioGUID *subformat -) { - FAudio_assert(fmt != NULL); - fmt->Format.wBitsPerSample = 32; - fmt->Format.wFormatTag = FAUDIO_FORMAT_EXTENSIBLE; - fmt->Format.nChannels = channels; - fmt->Format.nSamplesPerSec = samplerate; - fmt->Format.nBlockAlign = ( - fmt->Format.nChannels * - (fmt->Format.wBitsPerSample / 8) - ); - fmt->Format.nAvgBytesPerSec = ( - fmt->Format.nSamplesPerSec * - fmt->Format.nBlockAlign - ); - fmt->Format.cbSize = sizeof(FAudioWaveFormatExtensible) - sizeof(FAudioWaveFormatEx); - fmt->Samples.wValidBitsPerSample = 32; - fmt->dwChannelMask = GetMask(fmt->Format.nChannels); - FAudio_memcpy(&fmt->SubFormat, subformat, sizeof(FAudioGUID)); -} - -/* Resampling */ - -/* Okay, so here's what all this fixed-point goo is for: - * - * Inevitably you're going to run into weird sample rates, - * both from WaveBank data and from pitch shifting changes. - * - * How we deal with this is by calculating a fixed "step" - * value that steps from sample to sample at the speed needed - * to get the correct output sample rate, and the offset - * is stored as separate integer and fraction values. - * - * This allows us to do weird fractional steps between samples, - * while at the same time not letting it drift off into death - * thanks to floating point madness. - * - * Steps are stored in fixed-point with 32 bits for the fraction: - * - * 00000000000000000000000000000000 00000000000000000000000000000000 - * ^ Integer block (32) ^ Fraction block (32) - * - * For example, to get 1.5: - * 00000000000000000000000000000001 10000000000000000000000000000000 - * - * The Integer block works exactly like you'd expect. - * The Fraction block is divided by the Integer's "One" value. - * So, the above Fraction represented visually... - * 1 << 31 - * ------- - * 1 << 32 - * ... which, simplified, is... - * 1 << 0 - * ------ - * 1 << 1 - * ... in other words, 1 / 2, or 0.5. - */ -#define FIXED_PRECISION 32 -#define FIXED_ONE (1LL << FIXED_PRECISION) - -/* Quick way to drop parts */ -#define FIXED_FRACTION_MASK (FIXED_ONE - 1) -#define FIXED_INTEGER_MASK ~FIXED_FRACTION_MASK - -/* Helper macros to convert fixed to float */ -#define DOUBLE_TO_FIXED(dbl) \ - ((uint64_t) (dbl * FIXED_ONE + 0.5)) -#define FIXED_TO_DOUBLE(fxd) ( \ - (double) (fxd >> FIXED_PRECISION) + /* Integer part */ \ - ((fxd & FIXED_FRACTION_MASK) * (1.0 / FIXED_ONE)) /* Fraction part */ \ -) -#define FIXED_TO_FLOAT(fxd) ( \ - (float) (fxd >> FIXED_PRECISION) + /* Integer part */ \ - ((fxd & FIXED_FRACTION_MASK) * (1.0f / FIXED_ONE)) /* Fraction part */ \ -) - -#ifdef FAUDIO_DUMP_VOICES -/* File writing structure */ -typedef size_t (FAUDIOCALL * FAudio_writefunc)( - void *data, - const void *src, - size_t size, - size_t count -); -typedef size_t (FAUDIOCALL * FAudio_sizefunc)( - void *data -); -typedef struct FAudioIOStreamOut -{ - void *data; - FAudio_readfunc read; - FAudio_writefunc write; - FAudio_seekfunc seek; - FAudio_sizefunc size; - FAudio_closefunc close; - void *lock; -} FAudioIOStreamOut; - -FAudioIOStreamOut* FAudio_fopen_out(const char *path, const char *mode); -void FAudio_close_out(FAudioIOStreamOut *io); -#endif /* FAUDIO_DUMP_VOICES */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal_simd.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal_simd.c deleted file mode 100644 index e2b192c8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_internal_simd.c +++ /dev/null @@ -1,1616 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FAudio_internal.h" - -/* SECTION 0: SSE/NEON Detection */ - -/* The SSE/NEON detection comes from MojoAL: - * https://hg.icculus.org/icculus/mojoAL/file/default/mojoal.c - */ - -#if defined(__x86_64__) || defined(_M_X64) - /* Some platforms fail to define this... */ - #ifndef __SSE2__ - #define __SSE2__ 1 - #endif - - /* x86_64 guarantees SSE2. */ - #define NEED_SCALAR_CONVERTER_FALLBACKS 0 -#elif defined(__aarch64__) || defined(_M_ARM64) - /* Some platforms fail to define this... */ - #ifndef __ARM_NEON__ - #define __ARM_NEON__ 1 - #endif - - /* AArch64 guarantees NEON. */ - #define NEED_SCALAR_CONVERTER_FALLBACKS 0 -#elif __MACOSX__ - /* Some build systems may need to specify this. */ - #if !defined(__SSE2__) && !defined(__ARM_NEON__) - #error macOS does not have SSE2/NEON? Bad compiler? - #endif - - /* Mac OS X/Intel guarantees SSE2. */ - #define NEED_SCALAR_CONVERTER_FALLBACKS 0 -#else - /* Need plain C implementations to support all other hardware */ - #define NEED_SCALAR_CONVERTER_FALLBACKS 1 -#endif - -/* Our NEON paths require AArch64, don't check __ARM_NEON__ here */ -#if defined(__aarch64__) || defined(_M_ARM64) -#include -#define HAVE_NEON_INTRINSICS 1 -#endif - - -#ifdef __SSE2__ -#include -#define HAVE_SSE2_INTRINSICS 1 -#endif - -/* SECTION 1: Type Converters */ - -/* The SSE/NEON converters are based on SDL_audiotypecvt: - * https://hg.libsdl.org/SDL/file/default/src/audio/SDL_audiotypecvt.c - */ - -#define DIVBY128 0.0078125f -#define DIVBY32768 0.000030517578125f -#define DIVBY8388607 0.00000011920930376163766f - -#if NEED_SCALAR_CONVERTER_FALLBACKS -void FAudio_INTERNAL_Convert_U8_To_F32_Scalar( - const uint8_t *restrict src, - float *restrict dst, - uint32_t len -) { - uint32_t i; - for (i = 0; i < len; i += 1) - { - *dst++ = (*src++ * DIVBY128) - 1.0f; - } -} - -void FAudio_INTERNAL_Convert_S16_To_F32_Scalar( - const int16_t *restrict src, - float *restrict dst, - uint32_t len -) { - uint32_t i; - for (i = 0; i < len; i += 1) - { - *dst++ = *src++ * DIVBY32768; - } -} - -void FAudio_INTERNAL_Convert_S32_To_F32_Scalar( - const int32_t *restrict src, - float *restrict dst, - uint32_t len -) { - uint32_t i; - for (i = 0; i < len; i += 1) - { - *dst++ = (*src++ >> 8) * DIVBY8388607; - } -} -#endif /* NEED_SCALAR_CONVERTER_FALLBACKS */ - -#if HAVE_SSE2_INTRINSICS -void FAudio_INTERNAL_Convert_U8_To_F32_SSE2( - const uint8_t *restrict src, - float *restrict dst, - uint32_t len -) { - int i; - src += len - 1; - dst += len - 1; - - /* Get dst aligned to 16 bytes (since buffer is growing, we don't have to worry about overreading from src) */ - for (i = len; i && (((size_t) (dst-15)) & 15); --i, --src, --dst) { - *dst = (((float) *src) * DIVBY128) - 1.0f; - } - - src -= 15; dst -= 15; /* adjust to read SSE blocks from the start. */ - FAudio_assert(!i || ((((size_t) dst) & 15) == 0)); - - /* Make sure src is aligned too. */ - if ((((size_t) src) & 15) == 0) { - /* Aligned! Do SSE blocks as long as we have 16 bytes available. */ - const __m128i *mmsrc = (const __m128i *) src; - const __m128i zero = _mm_setzero_si128(); - const __m128 divby128 = _mm_set1_ps(DIVBY128); - const __m128 minus1 = _mm_set1_ps(-1.0f); - while (i >= 16) { /* 16 * 8-bit */ - const __m128i bytes = _mm_load_si128(mmsrc); /* get 16 uint8 into an XMM register. */ - /* treat as int16, shift left to clear every other sint16, then back right with zero-extend. Now uint16. */ - const __m128i shorts1 = _mm_srli_epi16(_mm_slli_epi16(bytes, 8), 8); - /* right-shift-zero-extend gets us uint16 with the other set of values. */ - const __m128i shorts2 = _mm_srli_epi16(bytes, 8); - /* unpack against zero to make these int32, convert to float, multiply, add. Whew! */ - /* Note that AVX2 can do floating point multiply+add in one instruction, fwiw. SSE2 cannot. */ - const __m128 floats1 = _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_unpacklo_epi16(shorts1, zero)), divby128), minus1); - const __m128 floats2 = _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_unpacklo_epi16(shorts2, zero)), divby128), minus1); - const __m128 floats3 = _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_unpackhi_epi16(shorts1, zero)), divby128), minus1); - const __m128 floats4 = _mm_add_ps(_mm_mul_ps(_mm_cvtepi32_ps(_mm_unpackhi_epi16(shorts2, zero)), divby128), minus1); - /* Interleave back into correct order, store. */ - _mm_store_ps(dst, _mm_unpacklo_ps(floats1, floats2)); - _mm_store_ps(dst+4, _mm_unpackhi_ps(floats1, floats2)); - _mm_store_ps(dst+8, _mm_unpacklo_ps(floats3, floats4)); - _mm_store_ps(dst+12, _mm_unpackhi_ps(floats3, floats4)); - i -= 16; mmsrc--; dst -= 16; - } - - src = (const uint8_t *) mmsrc; - } - - src += 15; dst += 15; /* adjust for any scalar finishing. */ - - /* Finish off any leftovers with scalar operations. */ - while (i) { - *dst = (((float) *src) * DIVBY128) - 1.0f; - i--; src--; dst--; - } -} - -void FAudio_INTERNAL_Convert_S16_To_F32_SSE2( - const int16_t *restrict src, - float *restrict dst, - uint32_t len -) { - int i; - src += len - 1; - dst += len - 1; - - /* Get dst aligned to 16 bytes (since buffer is growing, we don't have to worry about overreading from src) */ - for (i = len; i && (((size_t) (dst-7)) & 15); --i, --src, --dst) { - *dst = ((float) *src) * DIVBY32768; - } - - src -= 7; dst -= 7; /* adjust to read SSE blocks from the start. */ - FAudio_assert(!i || ((((size_t) dst) & 15) == 0)); - - /* Make sure src is aligned too. */ - if ((((size_t) src) & 15) == 0) { - /* Aligned! Do SSE blocks as long as we have 16 bytes available. */ - const __m128 divby32768 = _mm_set1_ps(DIVBY32768); - while (i >= 8) { /* 8 * 16-bit */ - const __m128i ints = _mm_load_si128((__m128i const *) src); /* get 8 sint16 into an XMM register. */ - /* treat as int32, shift left to clear every other sint16, then back right with sign-extend. Now sint32. */ - const __m128i a = _mm_srai_epi32(_mm_slli_epi32(ints, 16), 16); - /* right-shift-sign-extend gets us sint32 with the other set of values. */ - const __m128i b = _mm_srai_epi32(ints, 16); - /* Interleave these back into the right order, convert to float, multiply, store. */ - _mm_store_ps(dst, _mm_mul_ps(_mm_cvtepi32_ps(_mm_unpacklo_epi32(a, b)), divby32768)); - _mm_store_ps(dst+4, _mm_mul_ps(_mm_cvtepi32_ps(_mm_unpackhi_epi32(a, b)), divby32768)); - i -= 8; src -= 8; dst -= 8; - } - } - - src += 7; dst += 7; /* adjust for any scalar finishing. */ - - /* Finish off any leftovers with scalar operations. */ - while (i) { - *dst = ((float) *src) * DIVBY32768; - i--; src--; dst--; - } -} - -void FAudio_INTERNAL_Convert_S32_To_F32_SSE2( - const int32_t *restrict src, - float *restrict dst, - uint32_t len -) { - int i; - - /* Get dst aligned to 16 bytes */ - for (i = len; i && (((size_t) dst) & 15); --i, ++src, ++dst) { - *dst = ((float) (*src>>8)) * DIVBY8388607; - } - - FAudio_assert(!i || ((((size_t) dst) & 15) == 0)); - - /* Make sure src is aligned too. */ - if ((((size_t) src) & 15) == 0) { - /* Aligned! Do SSE blocks as long as we have 16 bytes available. */ - const __m128 divby8388607 = _mm_set1_ps(DIVBY8388607); - const __m128i *mmsrc = (const __m128i *) src; - while (i >= 4) { /* 4 * sint32 */ - /* shift out lowest bits so int fits in a float32. Small precision loss, but much faster. */ - _mm_store_ps(dst, _mm_mul_ps(_mm_cvtepi32_ps(_mm_srai_epi32(_mm_load_si128(mmsrc), 8)), divby8388607)); - i -= 4; mmsrc++; dst += 4; - } - src = (const int32_t *) mmsrc; - } - - /* Finish off any leftovers with scalar operations. */ - while (i) { - *dst = ((float) (*src>>8)) * DIVBY8388607; - i--; src++; dst++; - } -} -#endif /* HAVE_SSE2_INTRINSICS */ - -#if HAVE_NEON_INTRINSICS -void FAudio_INTERNAL_Convert_U8_To_F32_NEON( - const uint8_t *restrict src, - float *restrict dst, - uint32_t len -) { - int i; - src += len - 1; - dst += len - 1; - - /* Get dst aligned to 16 bytes (since buffer is growing, we don't have to worry about overreading from src) */ - for (i = len; i && (((size_t) (dst-15)) & 15); --i, --src, --dst) { - *dst = (((float) *src) * DIVBY128) - 1.0f; - } - - src -= 15; dst -= 15; /* adjust to read NEON blocks from the start. */ - FAudio_assert(!i || ((((size_t) dst) & 15) == 0)); - - /* Make sure src is aligned too. */ - if ((((size_t) src) & 15) == 0) { - /* Aligned! Do NEON blocks as long as we have 16 bytes available. */ - const uint8_t *mmsrc = (const uint8_t *) src; - const float32x4_t divby128 = vdupq_n_f32(DIVBY128); - const float32x4_t negone = vdupq_n_f32(-1.0f); - while (i >= 16) { /* 16 * 8-bit */ - const uint8x16_t bytes = vld1q_u8(mmsrc); /* get 16 uint8 into a NEON register. */ - const uint16x8_t uint16hi = vmovl_u8(vget_high_u8(bytes)); /* convert top 8 bytes to 8 uint16 */ - const uint16x8_t uint16lo = vmovl_u8(vget_low_u8(bytes)); /* convert bottom 8 bytes to 8 uint16 */ - /* split uint16 to two uint32, then convert to float, then multiply to normalize, subtract to adjust for sign, store. */ - vst1q_f32(dst, vmlaq_f32(negone, vcvtq_f32_u32(vmovl_u16(vget_low_u16(uint16lo))), divby128)); - vst1q_f32(dst+4, vmlaq_f32(negone, vcvtq_f32_u32(vmovl_u16(vget_high_u16(uint16lo))), divby128)); - vst1q_f32(dst+8, vmlaq_f32(negone, vcvtq_f32_u32(vmovl_u16(vget_low_u16(uint16hi))), divby128)); - vst1q_f32(dst+12, vmlaq_f32(negone, vcvtq_f32_u32(vmovl_u16(vget_high_u16(uint16hi))), divby128)); - i -= 16; mmsrc -= 16; dst -= 16; - } - - src = (const uint8_t *) mmsrc; - } - - src += 15; dst += 15; /* adjust for any scalar finishing. */ - - /* Finish off any leftovers with scalar operations. */ - while (i) { - *dst = (((float) *src) * DIVBY128) - 1.0f; - i--; src--; dst--; - } -} - -void FAudio_INTERNAL_Convert_S16_To_F32_NEON( - const int16_t *restrict src, - float *restrict dst, - uint32_t len -) { - int i; - src += len - 1; - dst += len - 1; - - /* Get dst aligned to 16 bytes (since buffer is growing, we don't have to worry about overreading from src) */ - for (i = len; i && (((size_t) (dst-7)) & 15); --i, --src, --dst) { - *dst = ((float) *src) * DIVBY32768; - } - - src -= 7; dst -= 7; /* adjust to read NEON blocks from the start. */ - FAudio_assert(!i || ((((size_t) dst) & 15) == 0)); - - /* Make sure src is aligned too. */ - if ((((size_t) src) & 15) == 0) { - /* Aligned! Do NEON blocks as long as we have 16 bytes available. */ - const float32x4_t divby32768 = vdupq_n_f32(DIVBY32768); - while (i >= 8) { /* 8 * 16-bit */ - const int16x8_t ints = vld1q_s16((int16_t const *) src); /* get 8 sint16 into a NEON register. */ - /* split int16 to two int32, then convert to float, then multiply to normalize, store. */ - vst1q_f32(dst, vmulq_f32(vcvtq_f32_s32(vmovl_s16(vget_low_s16(ints))), divby32768)); - vst1q_f32(dst+4, vmulq_f32(vcvtq_f32_s32(vmovl_s16(vget_high_s16(ints))), divby32768)); - i -= 8; src -= 8; dst -= 8; - } - } - - src += 7; dst += 7; /* adjust for any scalar finishing. */ - - /* Finish off any leftovers with scalar operations. */ - while (i) { - *dst = ((float) *src) * DIVBY32768; - i--; src--; dst--; - } -} - -void FAudio_INTERNAL_Convert_S32_To_F32_NEON( - const int32_t *restrict src, - float *restrict dst, - uint32_t len -) { - int i; - - /* Get dst aligned to 16 bytes */ - for (i = len; i && (((size_t) dst) & 15); --i, ++src, ++dst) { - *dst = ((float) (*src>>8)) * DIVBY8388607; - } - - FAudio_assert(!i || ((((size_t) dst) & 15) == 0)); - - /* Make sure src is aligned too. */ - if ((((size_t) src) & 15) == 0) { - /* Aligned! Do NEON blocks as long as we have 16 bytes available. */ - const float32x4_t divby8388607 = vdupq_n_f32(DIVBY8388607); - const int32_t *mmsrc = (const int32_t *) src; - while (i >= 4) { /* 4 * sint32 */ - /* shift out lowest bits so int fits in a float32. Small precision loss, but much faster. */ - vst1q_f32(dst, vmulq_f32(vcvtq_f32_s32(vshrq_n_s32(vld1q_s32(mmsrc), 8)), divby8388607)); - i -= 4; mmsrc += 4; dst += 4; - } - src = (const int32_t *) mmsrc; - } - - /* Finish off any leftovers with scalar operations. */ - while (i) { - *dst = ((float) (*src>>8)) * DIVBY8388607; - i--; src++; dst++; - } -} -#endif /* HAVE_NEON_INTRINSICS */ - -/* SECTION 2: Linear Resamplers */ - -void FAudio_INTERNAL_ResampleGeneric( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t channels -) { - uint32_t i, j; - uint64_t cur = *resampleOffset & FIXED_FRACTION_MASK; - for (i = 0; i < toResample; i += 1) - { - for (j = 0; j < channels; j += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[j] + - (dCache[j + channels] - dCache[j]) * - FIXED_TO_DOUBLE(cur) - ); - } - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur >> FIXED_PRECISION) * channels; - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur &= FIXED_FRACTION_MASK; - } -} - -#if NEED_SCALAR_CONVERTER_FALLBACKS -void FAudio_INTERNAL_ResampleMono_Scalar( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t UNUSED -) { - uint32_t i; - uint64_t cur = *resampleOffset & FIXED_FRACTION_MASK; - for (i = 0; i < toResample; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[1] - dCache[0]) * - FIXED_TO_DOUBLE(cur) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur >> FIXED_PRECISION); - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur &= FIXED_FRACTION_MASK; - } -} - -void FAudio_INTERNAL_ResampleStereo_Scalar( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t UNUSED -) { - uint32_t i; - uint64_t cur = *resampleOffset & FIXED_FRACTION_MASK; - for (i = 0; i < toResample; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[2] - dCache[0]) * - FIXED_TO_DOUBLE(cur) - ); - *resampleCache++ = (float) ( - dCache[1] + - (dCache[3] - dCache[1]) * - FIXED_TO_DOUBLE(cur) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur >> FIXED_PRECISION) * 2; - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur &= FIXED_FRACTION_MASK; - } -} -#endif /* NEED_SCALAR_CONVERTER_FALLBACKS */ - -/* The SSE2 versions of the resamplers come from @8thMage! */ - -#if HAVE_SSE2_INTRINSICS -void FAudio_INTERNAL_ResampleMono_SSE2( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t UNUSED -) { - uint32_t i, header, tail; - uint64_t cur_scalar_1, cur_scalar_2, cur_scalar_3; - float *dCache_1, *dCache_2, *dCache_3; - uint64_t cur_scalar = *resampleOffset & FIXED_FRACTION_MASK; - __m128 one_over_fixed_one, half, current_next_0_1, current_next_2_3, - current, next, sub, cur_fixed, mul, res; - __m128i cur_frac, adder_frac, adder_frac_loop; - - /* This is the header, the Dest needs to be aligned to 16B */ - header = (16 - ((size_t) resampleCache) % 16) / 4; - if (header == 4) - { - header = 0; - } - for (i = 0; i < header; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[1] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION); - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } - - toResample -= header; - - /* initialising the varius cur - * cur_frac is the fractional part of cur with 4 samples. as the - * fractional part is 32 bit unsigned value, it can be just added - * and the modulu operation for keeping the fractional part will be implicit. - * the 0.5 is for converting signed values to float (no unsigned convert), - * the 0.5 is added later. - */ - cur_frac = _mm_set1_epi32( - (uint32_t) (cur_scalar & FIXED_FRACTION_MASK) - DOUBLE_TO_FIXED(0.5) - ); - adder_frac = _mm_setr_epi32( - 0, - (uint32_t) (resampleStep & FIXED_FRACTION_MASK), - (uint32_t) ((resampleStep * 2) & FIXED_FRACTION_MASK), - (uint32_t) ((resampleStep * 3) & FIXED_FRACTION_MASK) - ); - cur_frac = _mm_add_epi32(cur_frac, adder_frac); - - /* The various cur_scalar is for the different samples - * (1, 2, 3 compared to original cur_scalar = 0) - */ - cur_scalar_1 = cur_scalar + resampleStep; - cur_scalar_2 = cur_scalar + resampleStep * 2; - cur_scalar_3 = cur_scalar + resampleStep * 3; - dCache_1 = dCache + (cur_scalar_1 >> FIXED_PRECISION); - dCache_2 = dCache + (cur_scalar_2 >> FIXED_PRECISION); - dCache_3 = dCache + (cur_scalar_3 >> FIXED_PRECISION); - cur_scalar &= FIXED_FRACTION_MASK; - cur_scalar_1 &= FIXED_FRACTION_MASK; - cur_scalar_2 &= FIXED_FRACTION_MASK; - cur_scalar_3 &= FIXED_FRACTION_MASK; - - /* FIXME: These should be _mm_undefined_ps! */ - current_next_0_1 = _mm_setzero_ps(); - current_next_2_3 = _mm_setzero_ps(); - - /* Constants */ - one_over_fixed_one = _mm_set1_ps(1.0f / FIXED_ONE); - half = _mm_set1_ps(0.5f); - adder_frac_loop = _mm_set1_epi32( - (uint32_t) ((resampleStep * 4) & FIXED_FRACTION_MASK) - ); - - tail = toResample % 4; - for (i = 0; i < toResample - tail; i += 4, resampleCache += 4) - { - /* current next holds 2 pairs of the sample and the sample + 1 - * after that need to seperate them. - */ - - current_next_0_1 = _mm_loadl_pi(current_next_0_1, (__m64*) dCache); - current_next_0_1 = _mm_loadh_pi(current_next_0_1, (__m64*) dCache_1); - current_next_2_3 = _mm_loadl_pi(current_next_2_3, (__m64*) dCache_2); - current_next_2_3 = _mm_loadh_pi(current_next_2_3, (__m64*) dCache_3); - - /* Unpack them to have seperate current and next in 2 vectors. */ - current = _mm_shuffle_ps(current_next_0_1, current_next_2_3, 0x88); /* 0b1000 */ - next = _mm_shuffle_ps(current_next_0_1, current_next_2_3, 0xdd); /* 0b1101 */ - - sub = _mm_sub_ps(next, current); - - /* Convert the fractional part to float and then mul to get the fractions out. - * then add back the 0.5 we subtracted before. - */ - cur_fixed = _mm_add_ps( - _mm_mul_ps( - _mm_cvtepi32_ps(cur_frac), - one_over_fixed_one - ), - half - ); - mul = _mm_mul_ps(sub, cur_fixed); - res = _mm_add_ps(current, mul); - - /* Store back */ - _mm_store_ps(resampleCache, res); - - /* Update dCaches for next iteration */ - cur_scalar += resampleStep * 4; - cur_scalar_1 += resampleStep * 4; - cur_scalar_2 += resampleStep * 4; - cur_scalar_3 += resampleStep * 4; - dCache = dCache + (cur_scalar >> FIXED_PRECISION); - dCache_1 = dCache_1 + (cur_scalar_1 >> FIXED_PRECISION); - dCache_2 = dCache_2 + (cur_scalar_2 >> FIXED_PRECISION); - dCache_3 = dCache_3 + (cur_scalar_3 >> FIXED_PRECISION); - cur_scalar &= FIXED_FRACTION_MASK; - cur_scalar_1 &= FIXED_FRACTION_MASK; - cur_scalar_2 &= FIXED_FRACTION_MASK; - cur_scalar_3 &= FIXED_FRACTION_MASK; - - cur_frac = _mm_add_epi32(cur_frac, adder_frac_loop); - } - *resampleOffset += resampleStep * (toResample - tail); - - /* This is the tail. */ - for (i = 0; i < tail; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[1] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION); - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } -} - -void FAudio_INTERNAL_ResampleStereo_SSE2( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t UNUSED -) { - uint32_t i, header, tail; - uint64_t cur_scalar, cur_scalar_1; - float *dCache_1; - __m128 one_over_fixed_one, half, current_next_1, current_next_2, - current, next, sub, cur_fixed, mul, res; - __m128i cur_frac, adder_frac, adder_frac_loop; - - /* This is the header, the Dest needs to be aligned to 16B */ - header = (16 - ((size_t) resampleCache) % 16) / 8; - if (header == 2) - { - header = 0; - } - cur_scalar = *resampleOffset & FIXED_FRACTION_MASK; - for (i = 0; i < header; i += 2) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[2] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - *resampleCache++ = (float) ( - dCache[1] + - (dCache[3] - dCache[1]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION) * 2; - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } - - toResample -= header; - - /* initialising the varius cur. - * cur_frac holds the fractional part of cur. - * to avoid duplication please see the mono part for a thorough - * explanation. - */ - cur_frac = _mm_set1_epi32( - (uint32_t) (cur_scalar & FIXED_FRACTION_MASK) - DOUBLE_TO_FIXED(0.5) - ); - adder_frac = _mm_setr_epi32( - 0, - 0, - (uint32_t) (resampleStep & FIXED_FRACTION_MASK), - (uint32_t) (resampleStep & FIXED_FRACTION_MASK) - ); - cur_frac = _mm_add_epi32(cur_frac, adder_frac); - - /* dCache_1 is the pointer for dcache in the next resample pos. */ - cur_scalar_1 = cur_scalar + resampleStep; - dCache_1 = dCache + (cur_scalar_1 >> FIXED_PRECISION) * 2; - cur_scalar_1 &= FIXED_FRACTION_MASK; - - one_over_fixed_one = _mm_set1_ps(1.0f / FIXED_ONE); - half = _mm_set1_ps(0.5f); - adder_frac_loop = _mm_set1_epi32( - (uint32_t) ((resampleStep * 2) & FIXED_FRACTION_MASK) - ); - - tail = toResample % 2; - for (i = 0; i < toResample - tail; i += 2, resampleCache += 4) - { - /* Current_next_1 and current_next_2 each holds 4 src - * sample points for getting 4 dest resample point at the end. - * current_next_1 holds: - * (current_ch_1, current_ch_2, next_ch_1, next_ch_2) - * for the first resample position, while current_next_2 holds - * the same for the 2nd resample position - */ - current_next_1 = _mm_loadu_ps(dCache); /* A1B1A2B2 */ - current_next_2 = _mm_loadu_ps(dCache_1); /* A3B3A4B4 */ - - /* Unpack them to get the current and the next in seperate vectors. */ - current = _mm_castpd_ps( - _mm_unpacklo_pd( - _mm_castps_pd(current_next_1), - _mm_castps_pd(current_next_2) - ) - ); - next = _mm_castpd_ps( - _mm_unpackhi_pd( - _mm_castps_pd(current_next_1), - _mm_castps_pd(current_next_2) - ) - ); - - sub = _mm_sub_ps(next, current); - - /* Adding the 0.5 back. - * See mono explanation for more elaborate explanation. - */ - cur_fixed = _mm_add_ps( - _mm_mul_ps( - _mm_cvtepi32_ps(cur_frac), - one_over_fixed_one - ), - half - ); - mul = _mm_mul_ps(sub, cur_fixed); - res = _mm_add_ps(current, mul); - - /* Store the results */ - _mm_store_ps(resampleCache, res); - - /* Update dCaches for next iteration */ - cur_scalar += resampleStep * 2; - cur_scalar_1 += resampleStep * 2; - dCache = dCache + (cur_scalar >> FIXED_PRECISION) * 2; - dCache_1 = dCache_1 + (cur_scalar_1 >> FIXED_PRECISION) * 2; - cur_scalar &= FIXED_FRACTION_MASK; - cur_scalar_1 &= FIXED_FRACTION_MASK; - - cur_frac = _mm_add_epi32(cur_frac, adder_frac_loop); - } - *resampleOffset += resampleStep * (toResample - tail); - - /* This is the tail. */ - for (i = 0; i < tail; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[2] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - *resampleCache++ = (float) ( - dCache[1] + - (dCache[3] - dCache[1]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION) * 2; - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } -} -#endif /* HAVE_SSE2_INTRINSICS */ - -#if HAVE_NEON_INTRINSICS -void FAudio_INTERNAL_ResampleMono_NEON( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t UNUSED -) { - uint32_t i, header, tail; - uint64_t cur_scalar_1, cur_scalar_2, cur_scalar_3; - float *dCache_1, *dCache_2, *dCache_3; - uint64_t cur_scalar = *resampleOffset & FIXED_FRACTION_MASK; - float32x4_t one_over_fixed_one, half, current_next_0_1, current_next_2_3, - current, next, sub, cur_fixed, mul, res; - int32x4_t cur_frac, adder_frac, adder_frac_loop; - - /* This is the header, the Dest needs to be aligned to 16B */ - header = (16 - ((size_t) resampleCache) % 16) / 4; - if (header == 4) - { - header = 0; - } - for (i = 0; i < header; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[1] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION); - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } - - toResample -= header; - - /* initialising the varius cur - * cur_frac is the fractional part of cur with 4 samples. as the - * fractional part is 32 bit unsigned value, it can be just added - * and the modulu operation for keeping the fractional part will be implicit. - * the 0.5 is for converting signed values to float (no unsigned convert), - * the 0.5 is added later. - */ - cur_frac = vdupq_n_s32( - (uint32_t) (cur_scalar & FIXED_FRACTION_MASK) - DOUBLE_TO_FIXED(0.5) - ); - int32_t __attribute__((aligned(16))) data[4] = - { - 0, - (uint32_t) (resampleStep & FIXED_FRACTION_MASK), - (uint32_t) ((resampleStep * 2) & FIXED_FRACTION_MASK), - (uint32_t) ((resampleStep * 3) & FIXED_FRACTION_MASK) - }; - adder_frac = vld1q_s32(data); - cur_frac = vaddq_s32(cur_frac, adder_frac); - - /* The various cur_scalar is for the different samples - * (1, 2, 3 compared to original cur_scalar = 0) - */ - cur_scalar_1 = cur_scalar + resampleStep; - cur_scalar_2 = cur_scalar + resampleStep * 2; - cur_scalar_3 = cur_scalar + resampleStep * 3; - dCache_1 = dCache + (cur_scalar_1 >> FIXED_PRECISION); - dCache_2 = dCache + (cur_scalar_2 >> FIXED_PRECISION); - dCache_3 = dCache + (cur_scalar_3 >> FIXED_PRECISION); - cur_scalar &= FIXED_FRACTION_MASK; - cur_scalar_1 &= FIXED_FRACTION_MASK; - cur_scalar_2 &= FIXED_FRACTION_MASK; - cur_scalar_3 &= FIXED_FRACTION_MASK; - - /* Constants */ - one_over_fixed_one = vdupq_n_f32(1.0f / FIXED_ONE); - half = vdupq_n_f32(0.5f); - adder_frac_loop = vdupq_n_s32( - (uint32_t) ((resampleStep * 4) & FIXED_FRACTION_MASK) - ); - - tail = toResample % 4; - for (i = 0; i < toResample - tail; i += 4, resampleCache += 4) - { - /* current next holds 2 pairs of the sample and the sample + 1 - * after that need to separate them. - */ - current_next_0_1 = vcombine_f32( - vld1_f32(dCache), - vld1_f32(dCache_1) - ); - current_next_2_3 = vcombine_f32( - vld1_f32(dCache_2), - vld1_f32(dCache_3) - ); - - /* Unpack them to have seperate current and next in 2 vectors. */ - current = vuzp1q_f32(current_next_0_1, current_next_2_3); - next = vuzp2q_f32(current_next_0_1, current_next_2_3); - - sub = vsubq_f32(next, current); - - /* Convert the fractional part to float and then mul to get the fractions out. - * then add back the 0.5 we subtracted before. - */ - cur_fixed = vaddq_f32( - vmulq_f32( - vcvtq_f32_s32(cur_frac), - one_over_fixed_one - ), - half - ); - mul = vmulq_f32(sub, cur_fixed); - res = vaddq_f32(current, mul); - - /* Store back */ - vst1q_f32(resampleCache, res); - - /* Update dCaches for next iteration */ - cur_scalar += resampleStep * 4; - cur_scalar_1 += resampleStep * 4; - cur_scalar_2 += resampleStep * 4; - cur_scalar_3 += resampleStep * 4; - dCache = dCache + (cur_scalar >> FIXED_PRECISION); - dCache_1 = dCache_1 + (cur_scalar_1 >> FIXED_PRECISION); - dCache_2 = dCache_2 + (cur_scalar_2 >> FIXED_PRECISION); - dCache_3 = dCache_3 + (cur_scalar_3 >> FIXED_PRECISION); - cur_scalar &= FIXED_FRACTION_MASK; - cur_scalar_1 &= FIXED_FRACTION_MASK; - cur_scalar_2 &= FIXED_FRACTION_MASK; - cur_scalar_3 &= FIXED_FRACTION_MASK; - - cur_frac = vaddq_s32(cur_frac, adder_frac_loop); - } - *resampleOffset += resampleStep * (toResample - tail); - - /* This is the tail. */ - for (i = 0; i < tail; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[1] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION); - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } -} - -void FAudio_INTERNAL_ResampleStereo_NEON( - float *restrict dCache, - float *restrict resampleCache, - uint64_t *resampleOffset, - uint64_t resampleStep, - uint64_t toResample, - uint8_t channels -) { - uint32_t i, header, tail; - uint64_t cur_scalar, cur_scalar_1; - float *dCache_1; - float32x4_t one_over_fixed_one, half, current, next, sub, cur_fixed, mul, res; - int32x4_t cur_frac, adder_frac, adder_frac_loop; - - /* This is the header, the Dest needs to be aligned to 16B */ - header = (16 - ((size_t) resampleCache) % 16) / 8; - if (header == 2) - { - header = 0; - } - cur_scalar = *resampleOffset & FIXED_FRACTION_MASK; - for (i = 0; i < header; i += 2) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[2] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - *resampleCache++ = (float) ( - dCache[1] + - (dCache[3] - dCache[1]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION) * 2; - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } - - toResample -= header; - - /* initialising the varius cur. - * cur_frac holds the fractional part of cur. - * to avoid duplication please see the mono part for a thorough - * explanation. - */ - cur_frac = vdupq_n_s32( - (uint32_t) (cur_scalar & FIXED_FRACTION_MASK) - DOUBLE_TO_FIXED(0.5) - ); - int32_t __attribute__((aligned(16))) data[4] = - { - 0, - 0, - (uint32_t) (resampleStep & FIXED_FRACTION_MASK), - (uint32_t) (resampleStep & FIXED_FRACTION_MASK) - }; - adder_frac = vld1q_s32(data); - cur_frac = vaddq_s32(cur_frac, adder_frac); - - /* dCache_1 is the pointer for dcache in the next resample pos. */ - cur_scalar_1 = cur_scalar + resampleStep; - dCache_1 = dCache + (cur_scalar_1 >> FIXED_PRECISION) * 2; - cur_scalar_1 &= FIXED_FRACTION_MASK; - - one_over_fixed_one = vdupq_n_f32(1.0f / FIXED_ONE); - half = vdupq_n_f32(0.5f); - adder_frac_loop = vdupq_n_s32( - (uint32_t) ((resampleStep * 2) & FIXED_FRACTION_MASK) - ); - - tail = toResample % 2; - for (i = 0; i < toResample - tail; i += 2, resampleCache += 4) - { - /* Current_next_1 and current_next_2 each holds 4 src - * sample points for getting 4 dest resample point at the end. - * current_next_1 holds: - * (current_ch_1, current_ch_2, next_ch_1, next_ch_2) - * for the first resample position, while current_next_2 holds - * the same for the 2nd resample position - */ - current = vcombine_f32( - vld1_f32(dCache), /* A1B1 */ - vld1_f32(dCache_1) /* A3B3 */ - ); - next = vcombine_f32( - vld1_f32(dCache + 2), /* A2B2 */ - vld1_f32(dCache_1 + 2) /* A4B4 */ - ); - - sub = vsubq_f32(next, current); - - /* Adding the 0.5 back. - * See mono explanation for more elaborate explanation. - */ - cur_fixed = vaddq_f32( - vmulq_f32( - vcvtq_f32_s32(cur_frac), - one_over_fixed_one - ), - half - ); - mul = vmulq_f32(sub, cur_fixed); - res = vaddq_f32(current, mul); - - /* Store the results */ - vst1q_f32(resampleCache, res); - - /* Update dCaches for next iteration */ - cur_scalar += resampleStep * 2; - cur_scalar_1 += resampleStep * 2; - dCache = dCache + (cur_scalar >> FIXED_PRECISION) * 2; - dCache_1 = dCache_1 + (cur_scalar_1 >> FIXED_PRECISION) * 2; - cur_scalar &= FIXED_FRACTION_MASK; - cur_scalar_1 &= FIXED_FRACTION_MASK; - - cur_frac = vaddq_s32(cur_frac, adder_frac_loop); - } - *resampleOffset += resampleStep * (toResample - tail); - - /* This is the tail. */ - for (i = 0; i < tail; i += 1) - { - /* lerp, then convert to float value */ - *resampleCache++ = (float) ( - dCache[0] + - (dCache[2] - dCache[0]) * - FIXED_TO_FLOAT(cur_scalar) - ); - *resampleCache++ = (float) ( - dCache[1] + - (dCache[3] - dCache[1]) * - FIXED_TO_FLOAT(cur_scalar) - ); - - /* Increment fraction offset by the stepping value */ - *resampleOffset += resampleStep; - cur_scalar += resampleStep; - - /* Only increment the sample offset by integer values. - * Sometimes this will be 0 until cur accumulates - * enough steps, especially for "slow" rates. - */ - dCache += (cur_scalar >> FIXED_PRECISION) * 2; - - /* Now that any integer has been added, drop it. - * The offset pointer will preserve the total. - */ - cur_scalar &= FIXED_FRACTION_MASK; - } -} -#endif /* HAVE_NEON_INTRINSICS */ - -/* SECTION 3: Amplifiers */ - -#if NEED_SCALAR_CONVERTER_FALLBACKS -void FAudio_INTERNAL_Amplify_Scalar( - float* output, - uint32_t totalSamples, - float volume -) { - uint32_t i; - for (i = 0; i < totalSamples; i += 1) - { - output[i] *= volume; - } -} -#endif /* NEED_SCALAR_CONVERTER_FALLBACKS */ - -/* The SSE2 version of the amplifier comes from @8thMage! */ - -#if HAVE_SSE2_INTRINSICS -void FAudio_INTERNAL_Amplify_SSE2( - float* output, - uint32_t totalSamples, - float volume -) { - uint32_t i; - uint32_t header = (16 - (((size_t) output) % 16)) / 4; - uint32_t tail = (totalSamples - header) % 4; - __m128 volumeVec, outVec; - if (header == 4) - { - header = 0; - } - if (tail == 4) - { - tail = 0; - } - - for (i = 0; i < header; i += 1) - { - output[i] *= volume; - } - - volumeVec = _mm_set1_ps(volume); - for (i = header; i < totalSamples - tail; i += 4) - { - outVec = _mm_load_ps(output + i); - outVec = _mm_mul_ps(outVec, volumeVec); - _mm_store_ps(output + i, outVec); - } - - for (i = totalSamples - tail; i < totalSamples; i += 1) - { - output[i] *= volume; - } -} -#endif /* HAVE_SSE2_INTRINSICS */ - -#if HAVE_NEON_INTRINSICS -void FAudio_INTERNAL_Amplify_NEON( - float* output, - uint32_t totalSamples, - float volume -) { - uint32_t i; - uint32_t header = (16 - (((size_t) output) % 16)) / 4; - uint32_t tail = (totalSamples - header) % 4; - float32x4_t volumeVec, outVec; - if (header == 4) - { - header = 0; - } - if (tail == 4) - { - tail = 0; - } - - for (i = 0; i < header; i += 1) - { - output[i] *= volume; - } - - volumeVec = vdupq_n_f32(volume); - for (i = header; i < totalSamples - tail; i += 4) - { - outVec = vld1q_f32(output + i); - outVec = vmulq_f32(outVec, volumeVec); - vst1q_f32(output + i, outVec); - } - - for (i = totalSamples - tail; i < totalSamples; i += 1) - { - output[i] *= volume; - } -} -#endif /* HAVE_NEON_INTRINSICS */ - -/* SECTION 4: Mixer Functions */ - -void FAudio_INTERNAL_Mix_Generic_Scalar( - uint32_t toMix, - uint32_t srcChans, - uint32_t dstChans, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i, co, ci; - for (i = 0; i < toMix; i += 1, src += srcChans, dst += dstChans) - for (co = 0; co < dstChans; co += 1) - { - for (ci = 0; ci < srcChans; ci += 1) - { - dst[co] += ( - src[ci] * - coefficients[co * srcChans + ci] - ); - } - } -} - -#if HAVE_SSE2_INTRINSICS -/* SSE horizontal add by Peter Cordes, CC-BY-SA. - * From https://stackoverflow.com/a/35270026 */ -static inline float FAudio_simd_hadd(__m128 v) -{ - __m128 shuf = _mm_shuffle_ps(v, v, _MM_SHUFFLE(2, 3, 0, 1)); - __m128 sums = _mm_add_ps(v, shuf); - shuf = _mm_movehl_ps(shuf, sums); - sums = _mm_add_ss(sums, shuf); - return _mm_cvtss_f32(sums); -} - -void FAudio_INTERNAL_Mix_Generic_SSE2( - uint32_t toMix, - uint32_t srcChans, - uint32_t dstChans, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i, co, ci; - for (i = 0; i < toMix; i += 1, src += srcChans, dst += dstChans) - for (co = 0; co < dstChans; co += 1) - { - for (ci = 0; srcChans - ci >= 4; ci += 4) - { - /* do SIMD */ - const __m128 vols = _mm_loadu_ps(&coefficients[co * srcChans + ci]); - const __m128 dat = _mm_loadu_ps(&src[ci]); - dst[co] += FAudio_simd_hadd(_mm_mul_ps(dat, vols)); - } - - for (; ci < srcChans; ci += 1) - { - /* do scalar */ - dst[co] += ( - src[ci] * - coefficients[co * srcChans + ci] - ); - } - } -} -#endif /* HAVE_SSE2_INTRINSICS */ - -void FAudio_INTERNAL_Mix_1in_1out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 1, dst += 1) - { - /* Base source data, combined with the coefficients */ - dst[0] += src[0] * coefficients[0]; - } -} - -void FAudio_INTERNAL_Mix_1in_2out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 1, dst += 2) - { - dst[0] += src[0] * coefficients[0]; - dst[1] += src[0] * coefficients[1]; - } -} - -void FAudio_INTERNAL_Mix_1in_6out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 1, dst += 6) - { - dst[0] += src[0] * coefficients[0]; - dst[1] += src[0] * coefficients[1]; - dst[2] += src[0] * coefficients[2]; - dst[3] += src[0] * coefficients[3]; - dst[4] += src[0] * coefficients[4]; - dst[5] += src[0] * coefficients[5]; - } -} - -void FAudio_INTERNAL_Mix_1in_8out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 1, dst += 8) - { - dst[0] += src[0] * coefficients[0]; - dst[1] += src[0] * coefficients[1]; - dst[2] += src[0] * coefficients[2]; - dst[3] += src[0] * coefficients[3]; - dst[4] += src[0] * coefficients[4]; - dst[5] += src[0] * coefficients[5]; - dst[6] += src[0] * coefficients[6]; - dst[7] += src[0] * coefficients[7]; - } -} - -void FAudio_INTERNAL_Mix_2in_1out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 2, dst += 1) - { - /* Base source data, combined with the coefficients */ - dst[0] += ( - (src[0] * coefficients[0]) + - (src[1] * coefficients[1]) - ); - } -} - -void FAudio_INTERNAL_Mix_2in_2out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 2, dst += 2) - { - dst[0] += ( - (src[0] * coefficients[0]) + - (src[1] * coefficients[1]) - ); - dst[1] += ( - (src[0] * coefficients[2]) + - (src[1] * coefficients[3]) - ); - } -} - -void FAudio_INTERNAL_Mix_2in_6out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 2, dst += 6) - { - dst[0] += ( - (src[0] * coefficients[0]) + - (src[1] * coefficients[1]) - ); - dst[1] += ( - (src[0] * coefficients[2]) + - (src[1] * coefficients[3]) - ); - dst[2] += ( - (src[0] * coefficients[4]) + - (src[1] * coefficients[5]) - ); - dst[3] += ( - (src[0] * coefficients[6]) + - (src[1] * coefficients[7]) - ); - dst[4] += ( - (src[0] * coefficients[8]) + - (src[1] * coefficients[9]) - ); - dst[5] += ( - (src[0] * coefficients[10]) + - (src[1] * coefficients[11]) - ); - } -} - -void FAudio_INTERNAL_Mix_2in_8out_Scalar( - uint32_t toMix, - uint32_t UNUSED1, - uint32_t UNUSED2, - float *restrict src, - float *restrict dst, - float *restrict coefficients -) { - uint32_t i; - for (i = 0; i < toMix; i += 1, src += 2, dst += 8) - { - dst[0] += ( - (src[0] * coefficients[0]) + - (src[1] * coefficients[1]) - ); - dst[1] += ( - (src[0] * coefficients[2]) + - (src[1] * coefficients[3]) - ); - dst[2] += ( - (src[0] * coefficients[4]) + - (src[1] * coefficients[5]) - ); - dst[3] += ( - (src[0] * coefficients[6]) + - (src[1] * coefficients[7]) - ); - dst[4] += ( - (src[0] * coefficients[8]) + - (src[1] * coefficients[9]) - ); - dst[5] += ( - (src[0] * coefficients[10]) + - (src[1] * coefficients[11]) - ); - dst[6] += ( - (src[0] * coefficients[12]) + - (src[1] * coefficients[13]) - ); - dst[7] += ( - (src[0] * coefficients[14]) + - (src[1] * coefficients[15]) - ); - } -} - -/* SECTION 5: InitSIMDFunctions. Assigns based on SSE2/NEON support. */ - -void (*FAudio_INTERNAL_Convert_U8_To_F32)( - const uint8_t *restrict src, - float *restrict dst, - uint32_t len -); -void (*FAudio_INTERNAL_Convert_S16_To_F32)( - const int16_t *restrict src, - float *restrict dst, - uint32_t len -); -void (*FAudio_INTERNAL_Convert_S32_To_F32)( - const int32_t *restrict src, - float *restrict dst, - uint32_t len -); - -FAudioResampleCallback FAudio_INTERNAL_ResampleMono; -FAudioResampleCallback FAudio_INTERNAL_ResampleStereo; - -void (*FAudio_INTERNAL_Amplify)( - float *output, - uint32_t totalSamples, - float volume -); - -FAudioMixCallback FAudio_INTERNAL_Mix_Generic; - -void FAudio_INTERNAL_InitSIMDFunctions(uint8_t hasSSE2, uint8_t hasNEON) -{ -#if HAVE_SSE2_INTRINSICS - if (hasSSE2) - { - FAudio_INTERNAL_Convert_U8_To_F32 = FAudio_INTERNAL_Convert_U8_To_F32_SSE2; - FAudio_INTERNAL_Convert_S16_To_F32 = FAudio_INTERNAL_Convert_S16_To_F32_SSE2; - FAudio_INTERNAL_Convert_S32_To_F32 = FAudio_INTERNAL_Convert_S32_To_F32_SSE2; - FAudio_INTERNAL_ResampleMono = FAudio_INTERNAL_ResampleMono_SSE2; - FAudio_INTERNAL_ResampleStereo = FAudio_INTERNAL_ResampleStereo_SSE2; - FAudio_INTERNAL_Amplify = FAudio_INTERNAL_Amplify_SSE2; - FAudio_INTERNAL_Mix_Generic = FAudio_INTERNAL_Mix_Generic_SSE2; - return; - } -#endif -#if HAVE_NEON_INTRINSICS - if (hasNEON) - { - FAudio_INTERNAL_Convert_U8_To_F32 = FAudio_INTERNAL_Convert_U8_To_F32_NEON; - FAudio_INTERNAL_Convert_S16_To_F32 = FAudio_INTERNAL_Convert_S16_To_F32_NEON; - FAudio_INTERNAL_Convert_S32_To_F32 = FAudio_INTERNAL_Convert_S32_To_F32_NEON; - FAudio_INTERNAL_ResampleMono = FAudio_INTERNAL_ResampleMono_NEON; - FAudio_INTERNAL_ResampleStereo = FAudio_INTERNAL_ResampleStereo_NEON; - FAudio_INTERNAL_Amplify = FAudio_INTERNAL_Amplify_NEON; - FAudio_INTERNAL_Mix_Generic = FAudio_INTERNAL_Mix_Generic_Scalar; - return; - } -#endif -#if NEED_SCALAR_CONVERTER_FALLBACKS - FAudio_INTERNAL_Convert_U8_To_F32 = FAudio_INTERNAL_Convert_U8_To_F32_Scalar; - FAudio_INTERNAL_Convert_S16_To_F32 = FAudio_INTERNAL_Convert_S16_To_F32_Scalar; - FAudio_INTERNAL_Convert_S32_To_F32 = FAudio_INTERNAL_Convert_S32_To_F32_Scalar; - FAudio_INTERNAL_ResampleMono = FAudio_INTERNAL_ResampleMono_Scalar; - FAudio_INTERNAL_ResampleStereo = FAudio_INTERNAL_ResampleStereo_Scalar; - FAudio_INTERNAL_Amplify = FAudio_INTERNAL_Amplify_Scalar; - FAudio_INTERNAL_Mix_Generic = FAudio_INTERNAL_Mix_Generic_Scalar; -#else - FAudio_assert(0 && "Need converter functions!"); -#endif -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_operationset.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_operationset.c deleted file mode 100644 index f9228f7d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_operationset.c +++ /dev/null @@ -1,777 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* FAudio_operationset.c originally written by Tyler Glaiel */ - -#include "FAudio_internal.h" - -/* Core OperationSet Types */ - -typedef enum FAudio_OPERATIONSET_Type -{ - FAUDIOOP_ENABLEEFFECT, - FAUDIOOP_DISABLEEFFECT, - FAUDIOOP_SETEFFECTPARAMETERS, - FAUDIOOP_SETFILTERPARAMETERS, - FAUDIOOP_SETOUTPUTFILTERPARAMETERS, - FAUDIOOP_SETVOLUME, - FAUDIOOP_SETCHANNELVOLUMES, - FAUDIOOP_SETOUTPUTMATRIX, - FAUDIOOP_START, - FAUDIOOP_STOP, - FAUDIOOP_EXITLOOP, - FAUDIOOP_SETFREQUENCYRATIO -} FAudio_OPERATIONSET_Type; - -struct FAudio_OPERATIONSET_Operation -{ - FAudio_OPERATIONSET_Type Type; - uint32_t OperationSet; - FAudioVoice *Voice; - - union - { - struct - { - uint32_t EffectIndex; - } EnableEffect; - struct - { - uint32_t EffectIndex; - } DisableEffect; - struct - { - uint32_t EffectIndex; - void *pParameters; - uint32_t ParametersByteSize; - } SetEffectParameters; - struct - { - FAudioFilterParameters Parameters; - } SetFilterParameters; - struct - { - FAudioVoice *pDestinationVoice; - FAudioFilterParameters Parameters; - } SetOutputFilterParameters; - struct - { - float Volume; - } SetVolume; - struct - { - uint32_t Channels; - float *pVolumes; - } SetChannelVolumes; - struct - { - FAudioVoice *pDestinationVoice; - uint32_t SourceChannels; - uint32_t DestinationChannels; - float *pLevelMatrix; - } SetOutputMatrix; - struct - { - uint32_t Flags; - } Start; - struct - { - uint32_t Flags; - } Stop; - /* No special data for ExitLoop - struct - { - } ExitLoop; - */ - struct - { - float Ratio; - } SetFrequencyRatio; - } Data; - - FAudio_OPERATIONSET_Operation *next; -}; - -/* Used by both Commit and Clear routines */ - -static inline void DeleteOperation( - FAudio_OPERATIONSET_Operation *op, - FAudioFreeFunc pFree -) { - if (op->Type == FAUDIOOP_SETEFFECTPARAMETERS) - { - pFree(op->Data.SetEffectParameters.pParameters); - } - else if (op->Type == FAUDIOOP_SETCHANNELVOLUMES) - { - pFree(op->Data.SetChannelVolumes.pVolumes); - } - else if (op->Type == FAUDIOOP_SETOUTPUTMATRIX) - { - pFree(op->Data.SetOutputMatrix.pLevelMatrix); - } - pFree(op); -} - -/* OperationSet Execution */ - -static inline void ExecuteOperation(FAudio_OPERATIONSET_Operation *op) -{ - switch (op->Type) - { - case FAUDIOOP_ENABLEEFFECT: - FAudioVoice_EnableEffect( - op->Voice, - op->Data.EnableEffect.EffectIndex, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_DISABLEEFFECT: - FAudioVoice_DisableEffect( - op->Voice, - op->Data.DisableEffect.EffectIndex, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_SETEFFECTPARAMETERS: - FAudioVoice_SetEffectParameters( - op->Voice, - op->Data.SetEffectParameters.EffectIndex, - op->Data.SetEffectParameters.pParameters, - op->Data.SetEffectParameters.ParametersByteSize, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_SETFILTERPARAMETERS: - FAudioVoice_SetFilterParameters( - op->Voice, - &op->Data.SetFilterParameters.Parameters, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_SETOUTPUTFILTERPARAMETERS: - FAudioVoice_SetOutputFilterParameters( - op->Voice, - op->Data.SetOutputFilterParameters.pDestinationVoice, - &op->Data.SetOutputFilterParameters.Parameters, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_SETVOLUME: - FAudioVoice_SetVolume( - op->Voice, - op->Data.SetVolume.Volume, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_SETCHANNELVOLUMES: - FAudioVoice_SetChannelVolumes( - op->Voice, - op->Data.SetChannelVolumes.Channels, - op->Data.SetChannelVolumes.pVolumes, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_SETOUTPUTMATRIX: - FAudioVoice_SetOutputMatrix( - op->Voice, - op->Data.SetOutputMatrix.pDestinationVoice, - op->Data.SetOutputMatrix.SourceChannels, - op->Data.SetOutputMatrix.DestinationChannels, - op->Data.SetOutputMatrix.pLevelMatrix, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_START: - FAudioSourceVoice_Start( - op->Voice, - op->Data.Start.Flags, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_STOP: - FAudioSourceVoice_Stop( - op->Voice, - op->Data.Stop.Flags, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_EXITLOOP: - FAudioSourceVoice_ExitLoop( - op->Voice, - FAUDIO_COMMIT_NOW - ); - break; - - case FAUDIOOP_SETFREQUENCYRATIO: - FAudioSourceVoice_SetFrequencyRatio( - op->Voice, - op->Data.SetFrequencyRatio.Ratio, - FAUDIO_COMMIT_NOW - ); - break; - - default: - FAudio_assert(0 && "Unrecognized operation type!"); - break; - } -} - -void FAudio_OPERATIONSET_CommitAll(FAudio *audio) -{ - FAudio_OPERATIONSET_Operation *op, *next, **committed_end; - - FAudio_PlatformLockMutex(audio->operationLock); - LOG_MUTEX_LOCK(audio, audio->operationLock) - - if (audio->queuedOperations == NULL) - { - FAudio_PlatformUnlockMutex(audio->operationLock); - LOG_MUTEX_UNLOCK(audio, audio->operationLock) - return; - } - - committed_end = &audio->committedOperations; - while (*committed_end) - { - committed_end = &((*committed_end)->next); - } - - op = audio->queuedOperations; - do - { - next = op->next; - - *committed_end = op; - op->next = NULL; - committed_end = &op->next; - - op = next; - } while (op != NULL); - audio->queuedOperations = NULL; - - FAudio_PlatformUnlockMutex(audio->operationLock); - LOG_MUTEX_UNLOCK(audio, audio->operationLock) -} - -void FAudio_OPERATIONSET_Commit(FAudio *audio, uint32_t OperationSet) -{ - FAudio_OPERATIONSET_Operation *op, *next, *prev, **committed_end; - - FAudio_PlatformLockMutex(audio->operationLock); - LOG_MUTEX_LOCK(audio, audio->operationLock) - - if (audio->queuedOperations == NULL) - { - FAudio_PlatformUnlockMutex(audio->operationLock); - LOG_MUTEX_UNLOCK(audio, audio->operationLock) - return; - } - - committed_end = &audio->committedOperations; - while (*committed_end) - { - committed_end = &((*committed_end)->next); - } - - op = audio->queuedOperations; - prev = NULL; - do - { - next = op->next; - if (op->OperationSet == OperationSet) - { - if (prev == NULL) /* Start of linked list */ - { - audio->queuedOperations = next; - } - else - { - prev->next = next; - } - - *committed_end = op; - op->next = NULL; - committed_end = &op->next; - } - else - { - prev = op; - } - op = next; - } while (op != NULL); - - FAudio_PlatformUnlockMutex(audio->operationLock); - LOG_MUTEX_UNLOCK(audio, audio->operationLock) -} - -void FAudio_OPERATIONSET_Execute(FAudio *audio) -{ - FAudio_OPERATIONSET_Operation *op, *next; - - FAudio_PlatformLockMutex(audio->operationLock); - LOG_MUTEX_LOCK(audio, audio->operationLock) - - op = audio->committedOperations; - while (op != NULL) - { - next = op->next; - ExecuteOperation(op); - DeleteOperation(op, audio->pFree); - op = next; - } - audio->committedOperations = NULL; - - FAudio_PlatformUnlockMutex(audio->operationLock); - LOG_MUTEX_UNLOCK(audio, audio->operationLock) -} - -/* OperationSet Compilation */ - -static inline FAudio_OPERATIONSET_Operation* QueueOperation( - FAudioVoice *voice, - FAudio_OPERATIONSET_Type type, - uint32_t operationSet -) { - FAudio_OPERATIONSET_Operation *latest; - FAudio_OPERATIONSET_Operation *newop = voice->audio->pMalloc( - sizeof(FAudio_OPERATIONSET_Operation) - ); - - newop->Type = type; - newop->Voice = voice; - newop->OperationSet = operationSet; - newop->next = NULL; - - if (voice->audio->queuedOperations == NULL) - { - voice->audio->queuedOperations = newop; - } - else - { - latest = voice->audio->queuedOperations; - while (latest->next != NULL) - { - latest = latest->next; - } - latest->next = newop; - } - - return newop; -} - -void FAudio_OPERATIONSET_QueueEnableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_ENABLEEFFECT, - OperationSet - ); - - op->Data.EnableEffect.EffectIndex = EffectIndex; - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueDisableEffect( - FAudioVoice *voice, - uint32_t EffectIndex, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_DISABLEEFFECT, - OperationSet - ); - - op->Data.DisableEffect.EffectIndex = EffectIndex; - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueSetEffectParameters( - FAudioVoice *voice, - uint32_t EffectIndex, - const void *pParameters, - uint32_t ParametersByteSize, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_SETEFFECTPARAMETERS, - OperationSet - ); - - op->Data.SetEffectParameters.EffectIndex = EffectIndex; - op->Data.SetEffectParameters.pParameters = voice->audio->pMalloc( - ParametersByteSize - ); - FAudio_memcpy( - op->Data.SetEffectParameters.pParameters, - pParameters, - ParametersByteSize - ); - op->Data.SetEffectParameters.ParametersByteSize = ParametersByteSize; - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueSetFilterParameters( - FAudioVoice *voice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_SETFILTERPARAMETERS, - OperationSet - ); - - FAudio_memcpy( - &op->Data.SetFilterParameters.Parameters, - pParameters, - sizeof(FAudioFilterParameters) - ); - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueSetOutputFilterParameters( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - const FAudioFilterParameters *pParameters, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_SETOUTPUTFILTERPARAMETERS, - OperationSet - ); - - op->Data.SetOutputFilterParameters.pDestinationVoice = pDestinationVoice; - FAudio_memcpy( - &op->Data.SetOutputFilterParameters.Parameters, - pParameters, - sizeof(FAudioFilterParameters) - ); - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueSetVolume( - FAudioVoice *voice, - float Volume, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_SETVOLUME, - OperationSet - ); - - op->Data.SetVolume.Volume = Volume; - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueSetChannelVolumes( - FAudioVoice *voice, - uint32_t Channels, - const float *pVolumes, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_SETCHANNELVOLUMES, - OperationSet - ); - - op->Data.SetChannelVolumes.Channels = Channels; - op->Data.SetChannelVolumes.pVolumes = voice->audio->pMalloc( - sizeof(float) * Channels - ); - FAudio_memcpy( - op->Data.SetChannelVolumes.pVolumes, - pVolumes, - sizeof(float) * Channels - ); - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueSetOutputMatrix( - FAudioVoice *voice, - FAudioVoice *pDestinationVoice, - uint32_t SourceChannels, - uint32_t DestinationChannels, - const float *pLevelMatrix, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_SETOUTPUTMATRIX, - OperationSet - ); - - op->Data.SetOutputMatrix.pDestinationVoice = pDestinationVoice; - op->Data.SetOutputMatrix.SourceChannels = SourceChannels; - op->Data.SetOutputMatrix.DestinationChannels = DestinationChannels; - op->Data.SetOutputMatrix.pLevelMatrix = voice->audio->pMalloc( - sizeof(float) * SourceChannels * DestinationChannels - ); - FAudio_memcpy( - op->Data.SetOutputMatrix.pLevelMatrix, - pLevelMatrix, - sizeof(float) * SourceChannels * DestinationChannels - ); - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueStart( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_START, - OperationSet - ); - - op->Data.Start.Flags = Flags; - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueStop( - FAudioSourceVoice *voice, - uint32_t Flags, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_STOP, - OperationSet - ); - - op->Data.Stop.Flags = Flags; - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueExitLoop( - FAudioSourceVoice *voice, - uint32_t OperationSet -) { - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - QueueOperation( - voice, - FAUDIOOP_EXITLOOP, - OperationSet - ); - - /* No special data for ExitLoop */ - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -void FAudio_OPERATIONSET_QueueSetFrequencyRatio( - FAudioSourceVoice *voice, - float Ratio, - uint32_t OperationSet -) { - FAudio_OPERATIONSET_Operation *op; - - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - op = QueueOperation( - voice, - FAUDIOOP_SETFREQUENCYRATIO, - OperationSet - ); - - op->Data.SetFrequencyRatio.Ratio = Ratio; - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -/* Called when releasing the engine */ - -void FAudio_OPERATIONSET_ClearAll(FAudio *audio) -{ - FAudio_OPERATIONSET_Operation *current, *next; - - FAudio_PlatformLockMutex(audio->operationLock); - LOG_MUTEX_LOCK(audio, audio->operationLock) - - current = audio->queuedOperations; - while (current != NULL) - { - next = current->next; - DeleteOperation(current, audio->pFree); - current = next; - } - audio->queuedOperations = NULL; - - FAudio_PlatformUnlockMutex(audio->operationLock); - LOG_MUTEX_UNLOCK(audio, audio->operationLock) -} - -/* Called when releasing a voice */ - -static inline void RemoveFromList( - FAudioVoice *voice, - FAudio_OPERATIONSET_Operation **list -) { - FAudio_OPERATIONSET_Operation *current, *next, *prev; - - current = *list; - prev = NULL; - while (current != NULL) - { - const uint8_t baseVoice = (voice == current->Voice); - const uint8_t dstVoice = ( - current->Type == FAUDIOOP_SETOUTPUTFILTERPARAMETERS && - voice == current->Data.SetOutputFilterParameters.pDestinationVoice - ) || ( - current->Type == FAUDIOOP_SETOUTPUTMATRIX && - voice == current->Data.SetOutputMatrix.pDestinationVoice - ); - - next = current->next; - if (baseVoice || dstVoice) - { - if (prev == NULL) /* Start of linked list */ - { - *list = next; - } - else - { - prev->next = next; - } - - DeleteOperation(current, voice->audio->pFree); - } - else - { - prev = current; - } - current = next; - } -} - -void FAudio_OPERATIONSET_ClearAllForVoice(FAudioVoice *voice) -{ - FAudio_PlatformLockMutex(voice->audio->operationLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->operationLock) - - RemoveFromList(voice, &voice->audio->queuedOperations); - RemoveFromList(voice, &voice->audio->committedOperations); - - FAudio_PlatformUnlockMutex(voice->audio->operationLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->operationLock) -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_platform_sdl2.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_platform_sdl2.c deleted file mode 100644 index 15d0211a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_platform_sdl2.c +++ /dev/null @@ -1,737 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FAUDIO_WIN32_PLATFORM - -#include "FAudio_internal.h" - -#include - -#if !SDL_VERSION_ATLEAST(2, 0, 9) -#error "SDL version older than 2.0.9" -#endif /* !SDL_VERSION_ATLEAST */ - -/* Mixer Thread */ - -static void FAudio_INTERNAL_MixCallback(void *userdata, Uint8 *stream, int len) -{ - FAudio *audio = (FAudio*) userdata; - - FAudio_zero(stream, len); - if (audio->active) - { - FAudio_INTERNAL_UpdateEngine( - audio, - (float*) stream - ); - } -} - -/* Platform Functions */ - -void FAudio_PlatformAddRef() -{ - /* SDL tracks ref counts for each subsystem */ - if (SDL_InitSubSystem(SDL_INIT_AUDIO) < 0) - { - SDL_Log("SDL_INIT_AUDIO failed: %s", SDL_GetError()); - } - FAudio_INTERNAL_InitSIMDFunctions( - SDL_HasSSE2(), - SDL_HasNEON() - ); -} - -void FAudio_PlatformRelease() -{ - /* SDL tracks ref counts for each subsystem */ - SDL_QuitSubSystem(SDL_INIT_AUDIO); -} - -void FAudio_PlatformInit( - FAudio *audio, - uint32_t flags, - uint32_t deviceIndex, - FAudioWaveFormatExtensible *mixFormat, - uint32_t *updateSize, - void** platformDevice -) { - SDL_AudioDeviceID device; - SDL_AudioSpec want, have; - const char *driver; - SDL_version version; - int changes = 0; - - FAudio_assert(mixFormat != NULL); - FAudio_assert(updateSize != NULL); - - /* Build the device spec */ - want.freq = mixFormat->Format.nSamplesPerSec; - want.format = AUDIO_F32; - want.channels = mixFormat->Format.nChannels; - want.silence = 0; - want.callback = FAudio_INTERNAL_MixCallback; - want.userdata = audio; - if (flags & FAUDIO_1024_QUANTUM) - { - /* Get the sample count for a 21.33ms frame. - * For 48KHz this should be 1024. - */ - want.samples = (int) ( - want.freq / (1000.0 / (64.0 / 3.0)) - ); - } - else - { - want.samples = want.freq / 100; - } - - /* FIXME: SDL bug! - * The PulseAudio backend does this annoying thing where it halves the - * buffer size to prevent latency issues: - * - * https://hg.libsdl.org/SDL/file/df343364c6c5/src/audio/pulseaudio/SDL_pulseaudio.c#l577 - * - * To get the _actual_ quantum size we want, we just double the buffer - * size and allow SDL to set the quantum size back to normal. - * -flibit - */ - driver = SDL_GetCurrentAudioDriver(); - SDL_GetVersion(&version); - if (version.minor < 23 && SDL_strcmp(driver, "pulseaudio") == 0) - { - want.samples *= 2; - changes = SDL_AUDIO_ALLOW_SAMPLES_CHANGE; - } - - /* FIXME: SDL bug! - * The most common backends support varying samples values, but many - * require a power-of-two value, which XAudio2 is not a fan of. - * Normally SDL creates an intermediary stream to handle this, but this - * has not been written yet: - * https://bugzilla.libsdl.org/show_bug.cgi?id=5136 - * -flibit - */ - else if ( SDL_strcmp(driver, "emscripten") == 0 || - SDL_strcmp(driver, "dsp") == 0 ) - { - want.samples -= 1; - want.samples |= want.samples >> 1; - want.samples |= want.samples >> 2; - want.samples |= want.samples >> 4; - want.samples |= want.samples >> 8; - want.samples |= want.samples >> 16; - want.samples += 1; - SDL_Log( - "Forcing FAudio quantum to a power-of-two.\n" - "You don't actually want this, it's technically a bug:\n" - "https://bugzilla.libsdl.org/show_bug.cgi?id=5136" - ); - } - - /* Open the device (or at least try to) */ -iosretry: - device = SDL_OpenAudioDevice( - deviceIndex > 0 ? SDL_GetAudioDeviceName(deviceIndex - 1, 0) : NULL, - 0, - &want, - &have, - changes - ); - if (device == 0) - { - const char *err = SDL_GetError(); - SDL_Log("OpenAudioDevice failed: %s", err); - - /* iOS has a weird thing where you can't open a stream when the - * app is in the background, even though the program is meant - * to be suspended and thus not trip this in the first place. - * - * Startup suspend behavior when an app is opened then closed - * is a big pile of crap, basically. - * - * Google the error code and you'll find that this has been a - * long-standing issue that nobody seems to care about. - * -flibit - */ - if (SDL_strstr(err, "Code=561015905") != NULL) - { - goto iosretry; - } - - FAudio_assert(0 && "Failed to open audio device!"); - return; - } - - /* Write up the received format for the engine */ - WriteWaveFormatExtensible( - mixFormat, - have.channels, - have.freq, - &DATAFORMAT_SUBTYPE_IEEE_FLOAT - ); - *updateSize = have.samples; - - /* SDL_AudioDeviceID is a Uint32, anybody using a 16-bit PC still? */ - *platformDevice = (void*) ((size_t) device); - - /* Start the thread! */ - SDL_PauseAudioDevice(device, 0); -} - -void FAudio_PlatformQuit(void* platformDevice) -{ - SDL_CloseAudioDevice((SDL_AudioDeviceID) ((size_t) platformDevice)); -} - -uint32_t FAudio_PlatformGetDeviceCount() -{ - uint32_t devCount = SDL_GetNumAudioDevices(0); - if (devCount == 0) - { - return 0; - } - return devCount + 1; /* Add one for "Default Device" */ -} - -void FAudio_UTF8_To_UTF16(const char *src, uint16_t *dst, size_t len); - -uint32_t FAudio_PlatformGetDeviceDetails( - uint32_t index, - FAudioDeviceDetails *details -) { - const char *name, *envvar; - int channels, rate; - SDL_AudioSpec spec; - uint32_t devcount, i; - - FAudio_zero(details, sizeof(FAudioDeviceDetails)); - - devcount = FAudio_PlatformGetDeviceCount(); - if (index >= devcount) - { - return FAUDIO_E_INVALID_CALL; - } - - details->DeviceID[0] = L'0' + index; - if (index == 0) - { - name = "Default Device"; - details->Role = FAudioGlobalDefaultDevice; - - /* This variable will look like a DSound GUID or WASAPI ID, i.e. - * "{0.0.0.00000000}.{FD47D9CC-4218-4135-9CE2-0C195C87405B}" - */ - envvar = SDL_getenv("FAUDIO_FORCE_DEFAULT_DEVICEID"); - if (envvar != NULL) - { - FAudio_UTF8_To_UTF16( - envvar, - (uint16_t*) details->DeviceID, - sizeof(details->DeviceID) - ); - } - } - else - { - name = SDL_GetAudioDeviceName(index - 1, 0); - details->Role = FAudioNotDefaultDevice; - } - FAudio_UTF8_To_UTF16( - name, - (uint16_t*) details->DisplayName, - sizeof(details->DisplayName) - ); - - /* Environment variables take precedence over all possible values */ - envvar = SDL_getenv("SDL_AUDIO_FREQUENCY"); - if (envvar != NULL) - { - rate = SDL_atoi(envvar); - } - else - { - rate = 0; - } - envvar = SDL_getenv("SDL_AUDIO_CHANNELS"); - if (envvar != NULL) - { - channels = SDL_atoi(envvar); - } - else - { - channels = 0; - } - -#if SDL_VERSION_ATLEAST(2, 0, 15) - if (index == 0) - { - /* Okay, so go grab something from the liquor cabinet and get - * ready, because this loop is a bit of a trip: - * - * We can't get the spec for the default device, because in - * audio land a "default device" is a completely foreign idea, - * some APIs support it but in reality you just have to pass - * NULL as a driver string and the sound server figures out the - * rest. In some psychotic universe the device can even be a - * network address. No, seriously. - * - * So what do we do? Well, at least in my experience shipping - * for the PC, the easiest thing to do is assume that the - * highest spec in the list is what you should target, even if - * it turns out that's not the default at the time you create - * your device. - * - * Consider a laptop that has built-in stereo speakers, but is - * connected to a home theater system with 5.1 audio. It may be - * the case that the stereo audio is active, but the user may - * at some point move audio to 5.1, at which point the server - * will simply move the endpoint from underneath us and move our - * output stream to the new device. At that point, you _really_ - * want to already be pushing out 5.1, because if not the user - * will be stuck recreating the whole program, which on many - * platforms is an instant cert failure. The tradeoff is that - * you're potentially downmixing a 5.1 stream to stereo, which - * is a bit wasteful, but presumably the hardware can handle it - * if they were able to use a 5.1 system to begin with. - * - * So, we just aim for the highest channel count on the system. - * We also do this with sample rate to a lesser degree; we try - * to use a single device spec at a time, so it may be that - * the sample rate you get isn't the highest from the list if - * another device had a higher channel count. - * - * Lastly, if you set SDL_AUDIO_CHANNELS but not - * SDL_AUDIO_FREQUENCY, we don't bother checking for a sample - * rate, we fall through to the hardcoded value at the bottom of - * this function. - * - * I'm so tired. - * - * -flibit - */ - if (channels <= 0) - { - const uint8_t setRate = (rate <= 0); - devcount -= 1; /* Subtracting the default index */ - for (i = 0; i < devcount; i += 1) - { - SDL_GetAudioDeviceSpec(i, 0, &spec); - if ( (spec.channels > channels) && - (spec.channels <= 8) ) - { - channels = spec.channels; - if (setRate) - { - /* May be 0! That's okay! */ - rate = spec.freq; - } - } - } - } - } - else - { - SDL_GetAudioDeviceSpec(index - 1, 0, &spec); - if ((spec.freq > 0) && (rate <= 0)) - { - rate = spec.freq; - } - if ((spec.channels > 0) && (channels <= 0)) - { - channels = spec.channels; - } - } -#endif /* SDL >= 2.0.15 */ - - /* If we make it all the way here with no format, hardcode a sane one */ - if (rate <= 0) - { - rate = 48000; - } - if (channels <= 0) - { - channels = 2; - } - - /* FIXME: SDL bug! - * SDL_audio.c enforces specific channel counts for all platforms, - * even if they support channel counts that could make sense (for - * example, 2.1 is not supported), so we have to adjust it here. - * - * Note that we don't check > 8 since we do that in the spec check, - * meaning only the environment variable can give us this and that - * needs to break for validation purposes. - * - * -flibit - */ - if (channels == 3) - { - channels = 2; - } - if (channels == 5) - { - channels = 4; - } - - /* Write the format, finally. */ - WriteWaveFormatExtensible( - &details->OutputFormat, - channels, - rate, - &DATAFORMAT_SUBTYPE_PCM - ); - return 0; -} - -/* Threading */ - -FAudioThread FAudio_PlatformCreateThread( - FAudioThreadFunc func, - const char *name, - void* data -) { - return (FAudioThread) SDL_CreateThread( - (SDL_ThreadFunction) func, - name, - data - ); -} - -void FAudio_PlatformWaitThread(FAudioThread thread, int32_t *retval) -{ - SDL_WaitThread((SDL_Thread*) thread, retval); -} - -void FAudio_PlatformThreadPriority(FAudioThreadPriority priority) -{ - SDL_SetThreadPriority((SDL_ThreadPriority) priority); -} - -uint64_t FAudio_PlatformGetThreadID(void) -{ - return (uint64_t) SDL_ThreadID(); -} - -FAudioMutex FAudio_PlatformCreateMutex() -{ - return (FAudioMutex) SDL_CreateMutex(); -} - -void FAudio_PlatformDestroyMutex(FAudioMutex mutex) -{ - SDL_DestroyMutex((SDL_mutex*) mutex); -} - -void FAudio_PlatformLockMutex(FAudioMutex mutex) -{ - SDL_LockMutex((SDL_mutex*) mutex); -} - -void FAudio_PlatformUnlockMutex(FAudioMutex mutex) -{ - SDL_UnlockMutex((SDL_mutex*) mutex); -} - -void FAudio_sleep(uint32_t ms) -{ - SDL_Delay(ms); -} - -/* Time */ - -uint32_t FAudio_timems() -{ - return SDL_GetTicks(); -} - -/* FAudio I/O */ - -FAudioIOStream* FAudio_fopen(const char *path) -{ - FAudioIOStream *io = (FAudioIOStream*) FAudio_malloc( - sizeof(FAudioIOStream) - ); - SDL_RWops *rwops = SDL_RWFromFile(path, "rb"); - io->data = rwops; - io->read = (FAudio_readfunc) rwops->read; - io->seek = (FAudio_seekfunc) rwops->seek; - io->close = (FAudio_closefunc) rwops->close; - io->lock = FAudio_PlatformCreateMutex(); - return io; -} - -FAudioIOStream* FAudio_memopen(void *mem, int len) -{ - FAudioIOStream *io = (FAudioIOStream*) FAudio_malloc( - sizeof(FAudioIOStream) - ); - SDL_RWops *rwops = SDL_RWFromMem(mem, len); - io->data = rwops; - io->read = (FAudio_readfunc) rwops->read; - io->seek = (FAudio_seekfunc) rwops->seek; - io->close = (FAudio_closefunc) rwops->close; - io->lock = FAudio_PlatformCreateMutex(); - return io; -} - -uint8_t* FAudio_memptr(FAudioIOStream *io, size_t offset) -{ - SDL_RWops *rwops = (SDL_RWops*) io->data; - FAudio_assert(rwops->type == SDL_RWOPS_MEMORY); - return rwops->hidden.mem.base + offset; -} - -void FAudio_close(FAudioIOStream *io) -{ - io->close(io->data); - FAudio_PlatformDestroyMutex((FAudioMutex) io->lock); - FAudio_free(io); -} - -#ifdef FAUDIO_DUMP_VOICES -FAudioIOStreamOut* FAudio_fopen_out(const char *path, const char *mode) -{ - FAudioIOStreamOut *io = (FAudioIOStreamOut*) FAudio_malloc( - sizeof(FAudioIOStreamOut) - ); - SDL_RWops *rwops = SDL_RWFromFile(path, mode); - io->data = rwops; - io->read = (FAudio_readfunc) rwops->read; - io->write = (FAudio_writefunc) rwops->write; - io->seek = (FAudio_seekfunc) rwops->seek; - io->size = (FAudio_sizefunc) rwops->size; - io->close = (FAudio_closefunc) rwops->close; - io->lock = FAudio_PlatformCreateMutex(); - return io; -} - -void FAudio_close_out(FAudioIOStreamOut *io) -{ - io->close(io->data); - FAudio_PlatformDestroyMutex((FAudioMutex) io->lock); - FAudio_free(io); -} -#endif /* FAUDIO_DUMP_VOICES */ - -/* UTF8->UTF16 Conversion, taken from PhysicsFS */ - -#define UNICODE_BOGUS_CHAR_VALUE 0xFFFFFFFF -#define UNICODE_BOGUS_CHAR_CODEPOINT '?' - -static uint32_t FAudio_UTF8_CodePoint(const char **_str) -{ - const char *str = *_str; - uint32_t retval = 0; - uint32_t octet = (uint32_t) ((uint8_t) *str); - uint32_t octet2, octet3, octet4; - - if (octet == 0) /* null terminator, end of string. */ - return 0; - - else if (octet < 128) /* one octet char: 0 to 127 */ - { - (*_str)++; /* skip to next possible start of codepoint. */ - return octet; - } /* else if */ - - else if ((octet > 127) && (octet < 192)) /* bad (starts with 10xxxxxx). */ - { - /* - * Apparently each of these is supposed to be flagged as a bogus - * char, instead of just resyncing to the next valid codepoint. - */ - (*_str)++; /* skip to next possible start of codepoint. */ - return UNICODE_BOGUS_CHAR_VALUE; - } /* else if */ - - else if (octet < 224) /* two octets */ - { - (*_str)++; /* advance at least one byte in case of an error */ - octet -= (128+64); - octet2 = (uint32_t) ((uint8_t) *(++str)); - if ((octet2 & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - *_str += 1; /* skip to next possible start of codepoint. */ - retval = ((octet << 6) | (octet2 - 128)); - if ((retval >= 0x80) && (retval <= 0x7FF)) - return retval; - } /* else if */ - - else if (octet < 240) /* three octets */ - { - (*_str)++; /* advance at least one byte in case of an error */ - octet -= (128+64+32); - octet2 = (uint32_t) ((uint8_t) *(++str)); - if ((octet2 & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet3 = (uint32_t) ((uint8_t) *(++str)); - if ((octet3 & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - *_str += 2; /* skip to next possible start of codepoint. */ - retval = ( ((octet << 12)) | ((octet2-128) << 6) | ((octet3-128)) ); - - /* There are seven "UTF-16 surrogates" that are illegal in UTF-8. */ - switch (retval) - { - case 0xD800: - case 0xDB7F: - case 0xDB80: - case 0xDBFF: - case 0xDC00: - case 0xDF80: - case 0xDFFF: - return UNICODE_BOGUS_CHAR_VALUE; - } /* switch */ - - /* 0xFFFE and 0xFFFF are illegal, too, so we check them at the edge. */ - if ((retval >= 0x800) && (retval <= 0xFFFD)) - return retval; - } /* else if */ - - else if (octet < 248) /* four octets */ - { - (*_str)++; /* advance at least one byte in case of an error */ - octet -= (128+64+32+16); - octet2 = (uint32_t) ((uint8_t) *(++str)); - if ((octet2 & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet3 = (uint32_t) ((uint8_t) *(++str)); - if ((octet3 & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet4 = (uint32_t) ((uint8_t) *(++str)); - if ((octet4 & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - *_str += 3; /* skip to next possible start of codepoint. */ - retval = ( ((octet << 18)) | ((octet2 - 128) << 12) | - ((octet3 - 128) << 6) | ((octet4 - 128)) ); - if ((retval >= 0x10000) && (retval <= 0x10FFFF)) - return retval; - } /* else if */ - - /* - * Five and six octet sequences became illegal in rfc3629. - * We throw the codepoint away, but parse them to make sure we move - * ahead the right number of bytes and don't overflow the buffer. - */ - - else if (octet < 252) /* five octets */ - { - (*_str)++; /* advance at least one byte in case of an error */ - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - *_str += 4; /* skip to next possible start of codepoint. */ - return UNICODE_BOGUS_CHAR_VALUE; - } /* else if */ - - else /* six octets */ - { - (*_str)++; /* advance at least one byte in case of an error */ - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - octet = (uint32_t) ((uint8_t) *(++str)); - if ((octet & (128+64)) != 128) /* Format isn't 10xxxxxx? */ - return UNICODE_BOGUS_CHAR_VALUE; - - *_str += 6; /* skip to next possible start of codepoint. */ - return UNICODE_BOGUS_CHAR_VALUE; - } /* else if */ - - return UNICODE_BOGUS_CHAR_VALUE; -} - -void FAudio_UTF8_To_UTF16(const char *src, uint16_t *dst, size_t len) -{ - len -= sizeof (uint16_t); /* save room for null char. */ - while (len >= sizeof (uint16_t)) - { - uint32_t cp = FAudio_UTF8_CodePoint(&src); - if (cp == 0) - break; - else if (cp == UNICODE_BOGUS_CHAR_VALUE) - cp = UNICODE_BOGUS_CHAR_CODEPOINT; - - if (cp > 0xFFFF) /* encode as surrogate pair */ - { - if (len < (sizeof (uint16_t) * 2)) - break; /* not enough room for the pair, stop now. */ - - cp -= 0x10000; /* Make this a 20-bit value */ - - *(dst++) = 0xD800 + ((cp >> 10) & 0x3FF); - len -= sizeof (uint16_t); - - cp = 0xDC00 + (cp & 0x3FF); - } /* if */ - - *(dst++) = cp; - len -= sizeof (uint16_t); - } /* while */ - - *dst = 0; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ - -#else - -extern int this_tu_is_empty; - -#endif /* FAUDIO_WIN32_PLATFORM */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_platform_win32.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_platform_win32.c deleted file mode 100644 index 8ed9cde1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/FAudio_platform_win32.c +++ /dev/null @@ -1,1672 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2020 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifdef FAUDIO_WIN32_PLATFORM - -#include "FAudio_internal.h" - -#include - -#define COBJMACROS -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -DEFINE_GUID(CLSID_CWMADecMediaObject, 0x2eeb4adf, 0x4578, 0x4d10, 0xbc, 0xa7, 0xbb, 0x95, 0x5f, 0x56, 0x32, 0x0a); -DEFINE_MEDIATYPE_GUID(MFAudioFormat_XMAudio2, FAUDIO_FORMAT_XMAUDIO2); - -static CRITICAL_SECTION faudio_cs = { NULL, -1, 0, 0, 0, 0 }; -static IMMDeviceEnumerator *device_enumerator; -static HRESULT init_hr; - -struct FAudioWin32PlatformData -{ - IAudioClient *client; - HANDLE audioThread; - HANDLE stopEvent; -}; - -struct FAudioAudioClientThreadArgs -{ - WAVEFORMATEXTENSIBLE format; - IAudioClient *client; - HANDLE events[2]; - FAudio *audio; - UINT updateSize; -}; - -void FAudio_Log(char const *msg) -{ - OutputDebugStringA(msg); -} - -static HMODULE kernelbase = NULL; -static HRESULT (WINAPI *my_SetThreadDescription)(HANDLE, PCWSTR) = NULL; - -static void FAudio_resolve_SetThreadDescription(void) -{ - kernelbase = LoadLibraryA("kernelbase.dll"); - if (!kernelbase) - return; - - my_SetThreadDescription = (HRESULT (WINAPI *)(HANDLE, PCWSTR)) GetProcAddress(kernelbase, "SetThreadDescription"); - if (!my_SetThreadDescription) - { - FreeLibrary(kernelbase); - kernelbase = NULL; - } -} - -static void FAudio_set_thread_name(char const *name) -{ - int ret; - WCHAR *nameW; - - if (!my_SetThreadDescription) - return; - - ret = MultiByteToWideChar(CP_UTF8, 0, name, -1, NULL, 0); - - nameW = FAudio_malloc(ret * sizeof(WCHAR)); - if (!nameW) - return; - - ret = MultiByteToWideChar(CP_UTF8, 0, name, -1, nameW, ret); - if (ret) - my_SetThreadDescription(GetCurrentThread(), nameW); - - FAudio_free(nameW); -} - -static HRESULT FAudio_FillAudioClientBuffer( - struct FAudioAudioClientThreadArgs *args, - IAudioRenderClient *client, - UINT frames, - UINT padding -) { - HRESULT hr = S_OK; - BYTE *buffer; - - while (padding + args->updateSize <= frames) - { - hr = IAudioRenderClient_GetBuffer( - client, - frames - padding, - &buffer - ); - if (FAILED(hr)) return hr; - - FAudio_zero( - buffer, - args->updateSize * args->format.Format.nBlockAlign - ); - - if (args->audio->active) - { - FAudio_INTERNAL_UpdateEngine( - args->audio, - (float*) buffer - ); - } - - hr = IAudioRenderClient_ReleaseBuffer( - client, - args->updateSize, - 0 - ); - if (FAILED(hr)) return hr; - - padding += args->updateSize; - } - - return hr; -} - -static DWORD WINAPI FAudio_AudioClientThread(void *user) -{ - struct FAudioAudioClientThreadArgs *args = user; - IAudioRenderClient *render_client; - HRESULT hr = S_OK; - UINT frames, padding = 0; - - FAudio_set_thread_name(__func__); - - hr = IAudioClient_GetService( - args->client, - &IID_IAudioRenderClient, - (void **)&render_client - ); - FAudio_assert(!FAILED(hr) && "Failed to get IAudioRenderClient service!"); - - hr = IAudioClient_GetBufferSize(args->client, &frames); - FAudio_assert(!FAILED(hr) && "Failed to get IAudioClient buffer size!"); - - hr = FAudio_FillAudioClientBuffer(args, render_client, frames, 0); - FAudio_assert(!FAILED(hr) && "Failed to initialize IAudioClient buffer!"); - - hr = IAudioClient_Start(args->client); - FAudio_assert(!FAILED(hr) && "Failed to start IAudioClient!"); - - while (WaitForMultipleObjects(2, args->events, FALSE, INFINITE) == WAIT_OBJECT_0) - { - hr = IAudioClient_GetCurrentPadding(args->client, &padding); - FAudio_assert(!FAILED(hr) && "Failed to get IAudioClient current padding!"); - - hr = FAudio_FillAudioClientBuffer(args, render_client, frames, padding); - FAudio_assert(!FAILED(hr) && "Failed to fill IAudioClient buffer!"); - } - - hr = IAudioClient_Stop(args->client); - FAudio_assert(!FAILED(hr) && "Failed to stop IAudioClient!"); - - IAudioRenderClient_Release(render_client); - FAudio_free(args); - return 0; -} - -void FAudio_PlatformInit( - FAudio *audio, - uint32_t flags, - uint32_t deviceIndex, - FAudioWaveFormatExtensible *mixFormat, - uint32_t *updateSize, - void** platformDevice -) { - struct FAudioAudioClientThreadArgs *args; - struct FAudioWin32PlatformData *data; - REFERENCE_TIME duration; - WAVEFORMATEX *closest; - IMMDevice *device = NULL; - HRESULT hr; - HANDLE audioEvent = NULL; - BOOL has_sse2 = IsProcessorFeaturePresent(PF_XMMI64_INSTRUCTIONS_AVAILABLE); - - FAudio_INTERNAL_InitSIMDFunctions(has_sse2, FALSE); - FAudio_resolve_SetThreadDescription(); - - FAudio_PlatformAddRef(); - - *platformDevice = NULL; - if (deviceIndex > 0) return; - - args = FAudio_malloc(sizeof(*args)); - FAudio_assert(!!args && "Failed to allocate FAudio thread args!"); - - data = FAudio_malloc(sizeof(*data)); - FAudio_assert(!!data && "Failed to allocate FAudio platform data!"); - FAudio_zero(data, sizeof(*data)); - - args->format.Format.wFormatTag = mixFormat->Format.wFormatTag; - args->format.Format.nChannels = mixFormat->Format.nChannels; - args->format.Format.nSamplesPerSec = mixFormat->Format.nSamplesPerSec; - args->format.Format.nAvgBytesPerSec = mixFormat->Format.nAvgBytesPerSec; - args->format.Format.nBlockAlign = mixFormat->Format.nBlockAlign; - args->format.Format.wBitsPerSample = mixFormat->Format.wBitsPerSample; - args->format.Format.cbSize = mixFormat->Format.cbSize; - - if (args->format.Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) - { - args->format.Samples.wValidBitsPerSample = mixFormat->Samples.wValidBitsPerSample; - args->format.dwChannelMask = mixFormat->dwChannelMask; - FAudio_memcpy( - &args->format.SubFormat, - &mixFormat->SubFormat, - sizeof(GUID) - ); - } - - audioEvent = CreateEventW(NULL, FALSE, FALSE, NULL); - FAudio_assert(!!audioEvent && "Failed to create FAudio thread buffer event!"); - - data->stopEvent = CreateEventW(NULL, FALSE, FALSE, NULL); - FAudio_assert(!!data->stopEvent && "Failed to create FAudio thread stop event!"); - - hr = IMMDeviceEnumerator_GetDefaultAudioEndpoint( - device_enumerator, - eRender, - eConsole, - &device - ); - FAudio_assert(!FAILED(hr) && "Failed to get default audio endpoint!"); - - hr = IMMDevice_Activate( - device, - &IID_IAudioClient, - CLSCTX_ALL, - NULL, - (void **)&data->client - ); - FAudio_assert(!FAILED(hr) && "Failed to create audio client!"); - IMMDevice_Release(device); - - if (flags & FAUDIO_1024_QUANTUM) duration = 213333; - else duration = 100000; - - hr = IAudioClient_IsFormatSupported( - data->client, - AUDCLNT_SHAREMODE_SHARED, - &args->format.Format, - &closest - ); - FAudio_assert(!FAILED(hr) && "Failed to find supported audio format!"); - - if (closest) - { - if (closest->wFormatTag != WAVE_FORMAT_EXTENSIBLE) args->format.Format = *closest; - else args->format = *(WAVEFORMATEXTENSIBLE *)closest; - CoTaskMemFree(closest); - } - - hr = IAudioClient_Initialize( - data->client, - AUDCLNT_SHAREMODE_SHARED, - AUDCLNT_STREAMFLAGS_EVENTCALLBACK, - duration * 3, - 0, - &args->format.Format, - &GUID_NULL - ); - FAudio_assert(!FAILED(hr) && "Failed to initialize audio client!"); - - hr = IAudioClient_SetEventHandle(data->client, audioEvent); - FAudio_assert(!FAILED(hr) && "Failed to set audio client event!"); - - mixFormat->Format.wFormatTag = args->format.Format.wFormatTag; - mixFormat->Format.nChannels = args->format.Format.nChannels; - mixFormat->Format.nSamplesPerSec = args->format.Format.nSamplesPerSec; - mixFormat->Format.nAvgBytesPerSec = args->format.Format.nAvgBytesPerSec; - mixFormat->Format.nBlockAlign = args->format.Format.nBlockAlign; - mixFormat->Format.wBitsPerSample = args->format.Format.wBitsPerSample; - - if (args->format.Format.wFormatTag == WAVE_FORMAT_EXTENSIBLE) - { - mixFormat->Format.cbSize = sizeof(FAudioWaveFormatExtensible) - sizeof(FAudioWaveFormatEx); - mixFormat->Samples.wValidBitsPerSample = args->format.Samples.wValidBitsPerSample; - mixFormat->dwChannelMask = args->format.dwChannelMask; - FAudio_memcpy( - &mixFormat->SubFormat, - &args->format.SubFormat, - sizeof(GUID) - ); - } - else - { - mixFormat->Format.cbSize = sizeof(FAudioWaveFormatEx); - } - - args->client = data->client; - args->events[0] = audioEvent; - args->events[1] = data->stopEvent; - args->audio = audio; - if (flags & FAUDIO_1024_QUANTUM) args->updateSize = args->format.Format.nSamplesPerSec / (1000.0 / (64.0 / 3.0)); - else args->updateSize = args->format.Format.nSamplesPerSec / 100; - - data->audioThread = CreateThread(NULL, 0, &FAudio_AudioClientThread, args, 0, NULL); - FAudio_assert(!!data->audioThread && "Failed to create audio client thread!"); - - *updateSize = args->updateSize; - *platformDevice = data; - return; -} - -void FAudio_PlatformQuit(void* platformDevice) -{ - struct FAudioWin32PlatformData *data = platformDevice; - - SetEvent(data->stopEvent); - WaitForSingleObject(data->audioThread, INFINITE); - if (data->client) IAudioClient_Release(data->client); - if (kernelbase) - { - my_SetThreadDescription = NULL; - FreeLibrary(kernelbase); - kernelbase = NULL; - } - FAudio_PlatformRelease(); -} - -void FAudio_PlatformAddRef() -{ - HRESULT hr; - EnterCriticalSection(&faudio_cs); - if (!device_enumerator) - { - init_hr = CoInitialize(NULL); - hr = CoCreateInstance( - &CLSID_MMDeviceEnumerator, - NULL, - CLSCTX_INPROC_SERVER, - &IID_IMMDeviceEnumerator, - (void**)&device_enumerator - ); - FAudio_assert(!FAILED(hr) && "CoCreateInstance failed!"); - } - else IMMDeviceEnumerator_AddRef(device_enumerator); - LeaveCriticalSection(&faudio_cs); -} - -void FAudio_PlatformRelease() -{ - EnterCriticalSection(&faudio_cs); - if (!IMMDeviceEnumerator_Release(device_enumerator)) - { - device_enumerator = NULL; - if (SUCCEEDED(init_hr)) CoUninitialize(); - } - LeaveCriticalSection(&faudio_cs); -} - -uint32_t FAudio_PlatformGetDeviceCount(void) -{ - IMMDevice *device; - uint32_t count; - HRESULT hr; - - FAudio_PlatformAddRef(); - hr = IMMDeviceEnumerator_GetDefaultAudioEndpoint( - device_enumerator, - eRender, - eConsole, - &device - ); - - if (hr == E_NOTFOUND) { - FAudio_PlatformRelease(); - return 0; - } - - FAudio_assert(!FAILED(hr) && "Failed to get default audio endpoint!"); - - IMMDevice_Release(device); - FAudio_PlatformRelease(); - - return 1; -} - -uint32_t FAudio_PlatformGetDeviceDetails( - uint32_t index, - FAudioDeviceDetails *details -) { - WAVEFORMATEX *format, *obtained; - WAVEFORMATEXTENSIBLE *ext; - IAudioClient *client; - IMMDevice *device; - uint32_t ret = 0; - HRESULT hr; - WCHAR *str; - GUID sub; - - FAudio_memset(details, 0, sizeof(FAudioDeviceDetails)); - if (index > 0) return FAUDIO_E_INVALID_CALL; - - FAudio_PlatformAddRef(); - - hr = IMMDeviceEnumerator_GetDefaultAudioEndpoint( - device_enumerator, - eRender, - eConsole, - &device - ); - FAudio_assert(!FAILED(hr) && "Failed to get default audio endpoint!"); - - details->Role = FAudioGlobalDefaultDevice; - - hr = IMMDevice_GetId(device, &str); - FAudio_assert(!FAILED(hr) && "Failed to get audio endpoint id!"); - - lstrcpynW(details->DeviceID, str, ARRAYSIZE(details->DeviceID) - 1); - lstrcpynW(details->DisplayName, str, ARRAYSIZE(details->DisplayName) - 1); - CoTaskMemFree(str); - - hr = IMMDevice_Activate( - device, - &IID_IAudioClient, - CLSCTX_ALL, - NULL, - (void **)&client - ); - FAudio_assert(!FAILED(hr) && "Failed to activate audio client!"); - - hr = IAudioClient_GetMixFormat(client, &format); - FAudio_assert(!FAILED(hr) && "Failed to get audio client mix format!"); - - if (format->wFormatTag == WAVE_FORMAT_EXTENSIBLE) - { - ext = (WAVEFORMATEXTENSIBLE *)format; - sub = ext->SubFormat; - FAudio_memcpy( - &ext->SubFormat, - &DATAFORMAT_SUBTYPE_PCM, - sizeof(GUID) - ); - - hr = IAudioClient_IsFormatSupported(client, AUDCLNT_SHAREMODE_SHARED, format, &obtained); - if (FAILED(hr)) - { - ext->SubFormat = sub; - } - else if (obtained) - { - CoTaskMemFree(format); - format = obtained; - } - } - - details->OutputFormat.Format.wFormatTag = format->wFormatTag; - details->OutputFormat.Format.nChannels = format->nChannels; - details->OutputFormat.Format.nSamplesPerSec = format->nSamplesPerSec; - details->OutputFormat.Format.nAvgBytesPerSec = format->nAvgBytesPerSec; - details->OutputFormat.Format.nBlockAlign = format->nBlockAlign; - details->OutputFormat.Format.wBitsPerSample = format->wBitsPerSample; - details->OutputFormat.Format.cbSize = format->cbSize; - - if (format->wFormatTag == WAVE_FORMAT_EXTENSIBLE) - { - ext = (WAVEFORMATEXTENSIBLE *)format; - details->OutputFormat.Samples.wValidBitsPerSample = ext->Samples.wValidBitsPerSample; - details->OutputFormat.dwChannelMask = ext->dwChannelMask; - FAudio_memcpy( - &details->OutputFormat.SubFormat, - &ext->SubFormat, - sizeof(GUID) - ); - } - else - { - details->OutputFormat.dwChannelMask = GetMask(format->nChannels); - } - - CoTaskMemFree(format); - - IAudioClient_Release(client); - - IMMDevice_Release(device); - - FAudio_PlatformRelease(); - - return ret; -} - -FAudioMutex FAudio_PlatformCreateMutex(void) -{ - CRITICAL_SECTION *cs; - - cs = FAudio_malloc(sizeof(CRITICAL_SECTION)); - if (!cs) return NULL; - - InitializeCriticalSection(cs); - - return cs; -} - -void FAudio_PlatformLockMutex(FAudioMutex mutex) -{ - if (mutex) EnterCriticalSection(mutex); -} - -void FAudio_PlatformUnlockMutex(FAudioMutex mutex) -{ - if (mutex) LeaveCriticalSection(mutex); -} - -void FAudio_PlatformDestroyMutex(FAudioMutex mutex) -{ - if (mutex) DeleteCriticalSection(mutex); - FAudio_free(mutex); -} - -struct FAudioThreadArgs -{ - FAudioThreadFunc func; - const char *name; - void* data; -}; - -static DWORD WINAPI FaudioThreadWrapper(void *user) -{ - struct FAudioThreadArgs *args = user; - DWORD ret; - - FAudio_set_thread_name(args->name); - ret = args->func(args->data); - - FAudio_free(args); - return ret; -} - -FAudioThread FAudio_PlatformCreateThread( - FAudioThreadFunc func, - const char *name, - void* data -) { - struct FAudioThreadArgs *args; - - if (!(args = FAudio_malloc(sizeof(*args)))) return NULL; - args->func = func; - args->name = name; - args->data = data; - - return CreateThread(NULL, 0, &FaudioThreadWrapper, args, 0, NULL); -} - -void FAudio_PlatformWaitThread(FAudioThread thread, int32_t *retval) -{ - WaitForSingleObject(thread, INFINITE); - if (retval != NULL) GetExitCodeThread(thread, (DWORD *)retval); -} - -void FAudio_PlatformThreadPriority(FAudioThreadPriority priority) -{ - /* FIXME */ -} - -uint64_t FAudio_PlatformGetThreadID(void) -{ - return GetCurrentThreadId(); -} - -void FAudio_sleep(uint32_t ms) -{ - Sleep(ms); -} - -uint32_t FAudio_timems() -{ - return GetTickCount(); -} - -/* FAudio I/O */ - -static size_t FAUDIOCALL FAudio_FILE_read( - void *data, - void *dst, - size_t size, - size_t count -) { - if (!data) return 0; - return fread(dst, size, count, data); -} - -static int64_t FAUDIOCALL FAudio_FILE_seek( - void *data, - int64_t offset, - int whence -) { - if (!data) return -1; - fseek(data, offset, whence); - return ftell(data); -} - -static int FAUDIOCALL FAudio_FILE_close(void *data) -{ - if (!data) return 0; - fclose(data); - return 0; -} - -FAudioIOStream* FAudio_fopen(const char *path) -{ - FAudioIOStream *io; - - io = (FAudioIOStream*) FAudio_malloc(sizeof(FAudioIOStream)); - if (!io) return NULL; - - io->data = fopen(path, "rb"); - io->read = FAudio_FILE_read; - io->seek = FAudio_FILE_seek; - io->close = FAudio_FILE_close; - io->lock = FAudio_PlatformCreateMutex(); - - return io; -} - -struct FAudio_mem -{ - char *mem; - int64_t len; - int64_t pos; -}; - -static size_t FAUDIOCALL FAudio_mem_read( - void *data, - void *dst, - size_t size, - size_t count -) { - struct FAudio_mem *io = data; - size_t len = size * count; - - if (!data) return 0; - - while (len && len > (io->len - io->pos)) len -= size; - FAudio_memcpy(dst, io->mem + io->pos, len); - io->pos += len; - - return len; -} - -static int64_t FAUDIOCALL FAudio_mem_seek( - void *data, - int64_t offset, - int whence -) { - struct FAudio_mem *io = data; - if (!data) return -1; - - if (whence == SEEK_SET) - { - if (io->len > offset) io->pos = offset; - else io->pos = io->len; - } - if (whence == SEEK_CUR) - { - if (io->len > io->pos + offset) io->pos += offset; - else io->pos = io->len; - } - if (whence == SEEK_END) - { - if (io->len > offset) io->pos = io->len - offset; - else io->pos = 0; - } - - return io->pos; -} - -static int FAUDIOCALL FAudio_mem_close(void *data) -{ - if (!data) return 0; - FAudio_free(data); - return 0; -} - -FAudioIOStream* FAudio_memopen(void *mem, int len) -{ - struct FAudio_mem *data; - FAudioIOStream *io; - - io = (FAudioIOStream*) FAudio_malloc(sizeof(FAudioIOStream)); - if (!io) return NULL; - - data = FAudio_malloc(sizeof(struct FAudio_mem)); - if (!data) - { - FAudio_free(io); - return NULL; - } - - data->mem = mem; - data->len = len; - data->pos = 0; - - io->data = data; - io->read = FAudio_mem_read; - io->seek = FAudio_mem_seek; - io->close = FAudio_mem_close; - io->lock = FAudio_PlatformCreateMutex(); - return io; -} - -uint8_t* FAudio_memptr(FAudioIOStream *io, size_t offset) -{ - struct FAudio_mem *memio = io->data; - return memio->mem + offset; -} - -void FAudio_close(FAudioIOStream *io) -{ - io->close(io->data); - FAudio_PlatformDestroyMutex((FAudioMutex) io->lock); - FAudio_free(io); -} - -/* XNA Song implementation over Win32 MF */ - -static FAudioWaveFormatEx activeSongFormat; -IMFSourceReader *activeSong; -static uint8_t *songBuffer; -static SIZE_T songBufferSize; - -static float songVolume = 1.0f; -static FAudio *songAudio = NULL; -static FAudioMasteringVoice *songMaster = NULL; - -static FAudioSourceVoice *songVoice = NULL; -static FAudioVoiceCallback callbacks; - -/* Internal Functions */ - -static void XNA_SongSubmitBuffer(FAudioVoiceCallback *callback, void *pBufferContext) -{ - IMFMediaBuffer *media_buffer; - FAudioBuffer buffer; - IMFSample *sample; - HRESULT hr; - DWORD flags, buffer_size = 0; - BYTE *buffer_ptr; - - LOG_FUNC_ENTER(songAudio); - - FAudio_memset(&buffer, 0, sizeof(buffer)); - - hr = IMFSourceReader_ReadSample( - activeSong, - MF_SOURCE_READER_FIRST_AUDIO_STREAM, - 0, - NULL, - &flags, - NULL, - &sample - ); - FAudio_assert(!FAILED(hr) && "Failed to read audio sample!"); - - if (flags & MF_SOURCE_READERF_ENDOFSTREAM) - { - buffer.Flags = FAUDIO_END_OF_STREAM; - } - else - { - hr = IMFSample_ConvertToContiguousBuffer( - sample, - &media_buffer - ); - FAudio_assert(!FAILED(hr) && "Failed to get sample buffer!"); - - hr = IMFMediaBuffer_Lock( - media_buffer, - &buffer_ptr, - NULL, - &buffer_size - ); - FAudio_assert(!FAILED(hr) && "Failed to lock buffer bytes!"); - - if (songBufferSize < buffer_size) - { - songBufferSize = buffer_size; - songBuffer = FAudio_realloc(songBuffer, songBufferSize); - FAudio_assert(songBuffer != NULL && "Failed to allocate song buffer!"); - } - FAudio_memcpy(songBuffer, buffer_ptr, buffer_size); - - hr = IMFMediaBuffer_Unlock(media_buffer); - FAudio_assert(!FAILED(hr) && "Failed to unlock buffer bytes!"); - - IMFMediaBuffer_Release(media_buffer); - IMFSample_Release(sample); - } - - if (buffer_size > 0) - { - buffer.AudioBytes = buffer_size; - buffer.pAudioData = songBuffer; - buffer.PlayBegin = 0; - buffer.PlayLength = buffer_size / activeSongFormat.nBlockAlign; - buffer.LoopBegin = 0; - buffer.LoopLength = 0; - buffer.LoopCount = 0; - buffer.pContext = NULL; - FAudioSourceVoice_SubmitSourceBuffer( - songVoice, - &buffer, - NULL - ); - } - - LOG_FUNC_EXIT(songAudio); -} - -static void XNA_SongKill() -{ - if (songVoice != NULL) - { - FAudioSourceVoice_Stop(songVoice, 0, 0); - FAudioVoice_DestroyVoice(songVoice); - songVoice = NULL; - } - if (activeSong) - { - IMFSourceReader_Release(activeSong); - activeSong = NULL; - } - FAudio_free(songBuffer); - songBuffer = NULL; - songBufferSize = 0; -} - -/* "Public" API */ - -FAUDIOAPI void XNA_SongInit() -{ - HRESULT hr; - - hr = MFStartup(MF_VERSION, MFSTARTUP_FULL); - FAudio_assert(!FAILED(hr) && "Failed to initialize Media Foundation!"); - - FAudioCreate(&songAudio, 0, FAUDIO_DEFAULT_PROCESSOR); - FAudio_CreateMasteringVoice( - songAudio, - &songMaster, - FAUDIO_DEFAULT_CHANNELS, - FAUDIO_DEFAULT_SAMPLERATE, - 0, - 0, - NULL - ); -} - -FAUDIOAPI void XNA_SongQuit() -{ - XNA_SongKill(); - FAudioVoice_DestroyVoice(songMaster); - FAudio_Release(songAudio); - MFShutdown(); -} - -FAUDIOAPI float XNA_PlaySong(const char *name) -{ - IMFAttributes *attributes = NULL; - IMFMediaType *media_type = NULL; - UINT32 channels, samplerate; - UINT64 duration; - PROPVARIANT var; - HRESULT hr; - WCHAR filename_w[MAX_PATH]; - - LOG_FUNC_ENTER(songAudio); - LOG_INFO(songAudio, "name %s\n", name); - XNA_SongKill(); - - MultiByteToWideChar(CP_UTF8, 0, name, -1, filename_w, MAX_PATH); - - hr = MFCreateAttributes(&attributes, 1); - FAudio_assert(!FAILED(hr) && "Failed to create attributes!"); - hr = MFCreateSourceReaderFromURL( - filename_w, - attributes, - &activeSong - ); - FAudio_assert(!FAILED(hr) && "Failed to create source reader!"); - IMFAttributes_Release(attributes); - - hr = MFCreateMediaType(&media_type); - FAudio_assert(!FAILED(hr) && "Failed to create media type!"); - hr = IMFMediaType_SetGUID( - media_type, - &MF_MT_MAJOR_TYPE, - &MFMediaType_Audio - ); - FAudio_assert(!FAILED(hr) && "Failed to set major type!"); - hr = IMFMediaType_SetGUID( - media_type, - &MF_MT_SUBTYPE, - &MFAudioFormat_Float - ); - FAudio_assert(!FAILED(hr) && "Failed to set sub type!"); - hr = IMFSourceReader_SetCurrentMediaType( - activeSong, - MF_SOURCE_READER_FIRST_AUDIO_STREAM, - NULL, - media_type - ); - FAudio_assert(!FAILED(hr) && "Failed to set source media type!"); - hr = IMFSourceReader_SetStreamSelection( - activeSong, - MF_SOURCE_READER_FIRST_AUDIO_STREAM, - TRUE - ); - FAudio_assert(!FAILED(hr) && "Failed to select source stream!"); - IMFMediaType_Release(media_type); - - hr = IMFSourceReader_GetCurrentMediaType( - activeSong, - MF_SOURCE_READER_FIRST_AUDIO_STREAM, - &media_type - ); - FAudio_assert(!FAILED(hr) && "Failed to get current media type!"); - hr = IMFMediaType_GetUINT32( - media_type, - &MF_MT_AUDIO_NUM_CHANNELS, - &channels - ); - FAudio_assert(!FAILED(hr) && "Failed to get channel count!"); - hr = IMFMediaType_GetUINT32( - media_type, - &MF_MT_AUDIO_SAMPLES_PER_SECOND, - &samplerate - ); - FAudio_assert(!FAILED(hr) && "Failed to get sample rate!"); - IMFMediaType_Release(media_type); - - hr = IMFSourceReader_GetPresentationAttribute( - activeSong, - MF_SOURCE_READER_MEDIASOURCE, - &MF_PD_DURATION, - &var - ); - FAudio_assert(!FAILED(hr) && "Failed to get song duration!"); - hr = PropVariantToInt64(&var, &duration); - FAudio_assert(!FAILED(hr) && "Failed to get song duration!"); - PropVariantClear(&var); - - activeSongFormat.wFormatTag = FAUDIO_FORMAT_IEEE_FLOAT; - activeSongFormat.nChannels = channels; - activeSongFormat.nSamplesPerSec = samplerate; - activeSongFormat.wBitsPerSample = sizeof(float) * 8; - activeSongFormat.nBlockAlign = activeSongFormat.nChannels * activeSongFormat.wBitsPerSample / 8; - activeSongFormat.nAvgBytesPerSec = activeSongFormat.nSamplesPerSec * activeSongFormat.nBlockAlign; - activeSongFormat.cbSize = 0; - - /* Init voice */ - FAudio_zero(&callbacks, sizeof(FAudioVoiceCallback)); - callbacks.OnBufferEnd = XNA_SongSubmitBuffer; - FAudio_CreateSourceVoice( - songAudio, - &songVoice, - &activeSongFormat, - 0, - 1.0f, /* No pitch shifting here! */ - &callbacks, - NULL, - NULL - ); - FAudioVoice_SetVolume(songVoice, songVolume, 0); - XNA_SongSubmitBuffer(NULL, NULL); - - /* Finally. */ - FAudioSourceVoice_Start(songVoice, 0, 0); - LOG_FUNC_EXIT(songAudio); - return duration / 10000000.; -} - -FAUDIOAPI void XNA_PauseSong() -{ - if (songVoice == NULL) - { - return; - } - FAudioSourceVoice_Stop(songVoice, 0, 0); -} - -FAUDIOAPI void XNA_ResumeSong() -{ - if (songVoice == NULL) - { - return; - } - FAudioSourceVoice_Start(songVoice, 0, 0); -} - -FAUDIOAPI void XNA_StopSong() -{ - XNA_SongKill(); -} - -FAUDIOAPI void XNA_SetSongVolume(float volume) -{ - songVolume = volume; - if (songVoice != NULL) - { - FAudioVoice_SetVolume(songVoice, songVolume, 0); - } -} - -FAUDIOAPI uint32_t XNA_GetSongEnded() -{ - FAudioVoiceState state; - if (songVoice == NULL || activeSong == NULL) - { - return 1; - } - FAudioSourceVoice_GetState(songVoice, &state, 0); - return state.BuffersQueued == 0; -} - -FAUDIOAPI void XNA_EnableVisualization(uint32_t enable) -{ - /* TODO: Enable/Disable FAPO effect */ -} - -FAUDIOAPI uint32_t XNA_VisualizationEnabled() -{ - /* TODO: Query FAPO effect enabled */ - return 0; -} - -FAUDIOAPI void XNA_GetSongVisualizationData( - float *frequencies, - float *samples, - uint32_t count -) { - /* TODO: Visualization FAPO that reads in Song samples, FFT analysis */ -} - -/* FAudio WMADEC implementation over Win32 MF */ - -struct FAudioWMADEC -{ - IMFTransform *decoder; - IMFSample *output_sample; - - char *output_buf; - size_t output_pos; - size_t output_size; - size_t input_pos; - size_t input_size; -}; - -static HRESULT FAudio_WMAMF_ProcessInput( - FAudioVoice *voice, - FAudioBuffer *buffer -) { - struct FAudioWMADEC *impl = voice->src.wmadec; - IMFMediaBuffer *media_buffer; - IMFSample *sample; - DWORD copy_size; - BYTE *copy_buf; - HRESULT hr; - - copy_size = min(buffer->AudioBytes - impl->input_pos, impl->input_size); - if (!copy_size) return S_FALSE; - LOG_INFO(voice->audio, "pushing %x bytes at %x", copy_size, impl->input_pos); - - hr = MFCreateSample(&sample); - FAudio_assert(!FAILED(hr) && "Failed to create sample!"); - hr = MFCreateMemoryBuffer(copy_size, &media_buffer); - FAudio_assert(!FAILED(hr) && "Failed to create buffer!"); - hr = IMFMediaBuffer_SetCurrentLength(media_buffer, copy_size); - FAudio_assert(!FAILED(hr) && "Failed to set buffer length!"); - hr = IMFMediaBuffer_Lock( - media_buffer, - ©_buf, - NULL, - ©_size - ); - FAudio_assert(!FAILED(hr) && "Failed to lock buffer bytes!"); - FAudio_memcpy(copy_buf, buffer->pAudioData + impl->input_pos, copy_size); - hr = IMFMediaBuffer_Unlock(media_buffer); - FAudio_assert(!FAILED(hr) && "Failed to unlock buffer bytes!"); - - hr = IMFSample_AddBuffer(sample, media_buffer); - FAudio_assert(!FAILED(hr) && "Failed to buffer to sample!"); - IMFMediaBuffer_Release(media_buffer); - - hr = IMFTransform_ProcessInput(impl->decoder, 0, sample, 0); - IMFSample_Release(sample); - if (hr == MF_E_NOTACCEPTING) return S_OK; - if (FAILED(hr)) - { - LOG_ERROR(voice->audio, "IMFTransform_ProcessInput returned %#x", hr); - return hr; - } - - impl->input_pos += copy_size; - return S_OK; -}; - -static HRESULT FAudio_WMAMF_ProcessOutput( - FAudioVoice *voice, - FAudioBuffer *buffer -) { - struct FAudioWMADEC *impl = voice->src.wmadec; - MFT_OUTPUT_DATA_BUFFER output; - IMFMediaBuffer *media_buffer; - DWORD status, copy_size; - BYTE *copy_buf; - HRESULT hr; - - while (1) - { - FAudio_memset(&output, 0, sizeof(output)); - output.pSample = impl->output_sample; - hr = IMFTransform_ProcessOutput(impl->decoder, 0, 1, &output, &status); - if (hr == MF_E_TRANSFORM_NEED_MORE_INPUT) return S_FALSE; - if (FAILED(hr)) - { - LOG_ERROR(voice->audio, "IMFTransform_ProcessInput returned %#x", hr); - return hr; - } - - if (output.dwStatus & MFT_OUTPUT_DATA_BUFFER_NO_SAMPLE) continue; - - hr = IMFSample_ConvertToContiguousBuffer( - output.pSample, - &media_buffer - ); - FAudio_assert(!FAILED(hr) && "Failed to get sample buffer!"); - hr = IMFMediaBuffer_Lock( - media_buffer, - ©_buf, - NULL, - ©_size - ); - FAudio_assert(!FAILED(hr) && "Failed to lock buffer bytes!"); - if (impl->output_pos + copy_size > impl->output_size) - { - impl->output_size = max( - impl->output_pos + copy_size, - impl->output_size * 3 / 2 - ); - impl->output_buf = voice->audio->pRealloc( - impl->output_buf, - impl->output_size - ); - FAudio_assert(impl->output_buf && "Failed to resize output buffer!"); - } - FAudio_memcpy(impl->output_buf + impl->output_pos, copy_buf, copy_size); - impl->output_pos += copy_size; - LOG_INFO(voice->audio, "pulled %x bytes at %x", copy_size, impl->output_pos); - hr = IMFMediaBuffer_Unlock(media_buffer); - FAudio_assert(!FAILED(hr) && "Failed to unlock buffer bytes!"); - - IMFMediaBuffer_Release(media_buffer); - if (!impl->output_sample) IMFSample_Release(output.pSample); - } - - return S_OK; -}; - -static void FAudio_INTERNAL_DecodeWMAMF( - FAudioVoice *voice, - FAudioBuffer *buffer, - float *decodeCache, - uint32_t samples -) { - const FAudioWaveFormatExtensible *wfx = (FAudioWaveFormatExtensible *)voice->src.format; - size_t samples_pos, samples_size, copy_size = 0; - struct FAudioWMADEC *impl = voice->src.wmadec; - HRESULT hr; - - LOG_FUNC_ENTER(voice->audio) - - if (!impl->output_pos) - { - if (wfx->Format.wFormatTag == FAUDIO_FORMAT_EXTENSIBLE) - { - const FAudioBufferWMA *wma = &voice->src.bufferList->bufferWMA; - const UINT32 *output_sizes = wma->pDecodedPacketCumulativeBytes; - - impl->input_size = wfx->Format.nBlockAlign; - impl->output_size = max( - impl->output_size, - output_sizes[wma->PacketCount - 1] - ); - } - else - { - const FAudioXMA2WaveFormat *xwf = (const FAudioXMA2WaveFormat *)wfx; - - impl->input_size = xwf->dwBytesPerBlock; - impl->output_size = max( - impl->output_size, - (size_t) xwf->dwSamplesEncoded * - voice->src.format->nChannels * - (voice->src.format->wBitsPerSample / 8) - ); - } - - impl->output_buf = voice->audio->pRealloc( - impl->output_buf, - impl->output_size - ); - FAudio_assert(impl->output_buf && "Failed to allocate output buffer!"); - - LOG_INFO(voice->audio, "sending BOS to %p", impl->decoder); - hr = IMFTransform_ProcessMessage( - impl->decoder, - MFT_MESSAGE_NOTIFY_START_OF_STREAM, - 0 - ); - FAudio_assert(!FAILED(hr) && "Failed to notify decoder stream start!"); - FAudio_WMAMF_ProcessInput(voice, buffer); - } - - samples_pos = voice->src.curBufferOffset * voice->src.format->nChannels * sizeof(float); - samples_size = samples * voice->src.format->nChannels * sizeof(float); - - while (impl->output_pos < samples_pos + samples_size) - { - hr = FAudio_WMAMF_ProcessOutput(voice, buffer); - if (FAILED(hr)) goto error; - if (hr == S_OK) continue; - - hr = FAudio_WMAMF_ProcessInput(voice, buffer); - if (FAILED(hr)) goto error; - if (hr == S_OK) continue; - - if (!impl->input_size) break; - - LOG_INFO(voice->audio, "sending EOS to %p", impl->decoder); - hr = IMFTransform_ProcessMessage( - impl->decoder, - MFT_MESSAGE_NOTIFY_END_OF_STREAM, - 0 - ); - FAudio_assert(!FAILED(hr) && "Failed to send EOS!"); - impl->input_size = 0; - } - - if (impl->output_pos > samples_pos) - { - copy_size = FAudio_min(impl->output_pos - samples_pos, samples_size); - FAudio_memcpy(decodeCache, impl->output_buf + samples_pos, copy_size); - } - FAudio_zero(decodeCache + copy_size, samples_size - copy_size); - LOG_INFO( - voice->audio, - "decoded %x / %x bytes, copied %x / %x bytes", - impl->output_pos, - impl->output_size, - copy_size, - samples_size - ); - - LOG_FUNC_EXIT(voice->audio) - return; - -error: - FAudio_zero(decodeCache, samples * voice->src.format->nChannels * sizeof(float)); - LOG_FUNC_EXIT(voice->audio) -} - -uint32_t FAudio_WMADEC_init(FAudioSourceVoice *voice, uint32_t type) -{ - static const uint8_t fake_codec_data[16] = {0, 0, 0, 0, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}; - const FAudioWaveFormatExtensible *wfx = (FAudioWaveFormatExtensible *)voice->src.format; - struct FAudioWMADEC *impl; - MFT_OUTPUT_STREAM_INFO info = {0}; - IMFMediaBuffer *media_buffer; - IMFMediaType *media_type; - IMFTransform *decoder; - HRESULT hr; - UINT32 i, value; - GUID guid; - - LOG_FUNC_ENTER(voice->audio) - - if (!(impl = voice->audio->pMalloc(sizeof(*impl)))) return -1; - FAudio_memset(impl, 0, sizeof(*impl)); - - hr = CoCreateInstance( - &CLSID_CWMADecMediaObject, - 0, - CLSCTX_INPROC_SERVER, - &IID_IMFTransform, - (void **)&decoder - ); - if (FAILED(hr)) - { - voice->audio->pFree(impl->output_buf); - return -2; - } - - hr = MFCreateMediaType(&media_type); - FAudio_assert(!FAILED(hr) && "Failed create media type!"); - hr = IMFMediaType_SetGUID( - media_type, - &MF_MT_MAJOR_TYPE, - &MFMediaType_Audio - ); - FAudio_assert(!FAILED(hr) && "Failed set media major type!"); - - switch (type) - { - case FAUDIO_FORMAT_WMAUDIO2: - hr = IMFMediaType_SetBlob( - media_type, - &MF_MT_USER_DATA, - (void *)fake_codec_data, - sizeof(fake_codec_data) - ); - FAudio_assert(!FAILED(hr) && "Failed set codec private data!"); - hr = IMFMediaType_SetGUID( - media_type, - &MF_MT_SUBTYPE, - &MFAudioFormat_WMAudioV8 - ); - FAudio_assert(!FAILED(hr) && "Failed set media sub type!"); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_BLOCK_ALIGNMENT, - wfx->Format.nBlockAlign - ); - FAudio_assert(!FAILED(hr) && "Failed set input block align!"); - break; - case FAUDIO_FORMAT_WMAUDIO3: - hr = IMFMediaType_SetBlob( - media_type, - &MF_MT_USER_DATA, - (void *)&wfx->Samples, - wfx->Format.cbSize - ); - FAudio_assert(!FAILED(hr) && "Failed set codec private data!"); - hr = IMFMediaType_SetGUID( - media_type, - &MF_MT_SUBTYPE, - &MFAudioFormat_WMAudioV9 - ); - FAudio_assert(!FAILED(hr) && "Failed set media sub type!"); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_BLOCK_ALIGNMENT, - wfx->Format.nBlockAlign - ); - FAudio_assert(!FAILED(hr) && "Failed set input block align!"); - break; - case FAUDIO_FORMAT_WMAUDIO_LOSSLESS: - hr = IMFMediaType_SetBlob( - media_type, - &MF_MT_USER_DATA, - (void *)&wfx->Samples, - wfx->Format.cbSize - ); - FAudio_assert(!FAILED(hr) && "Failed set codec private data!"); - hr = IMFMediaType_SetGUID( - media_type, - &MF_MT_SUBTYPE, - &MFAudioFormat_WMAudio_Lossless - ); - FAudio_assert(!FAILED(hr) && "Failed set media sub type!"); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_BLOCK_ALIGNMENT, - wfx->Format.nBlockAlign - ); - FAudio_assert(!FAILED(hr) && "Failed set input block align!"); - break; - case FAUDIO_FORMAT_XMAUDIO2: - { - const FAudioXMA2WaveFormat *xwf = (const FAudioXMA2WaveFormat *)wfx; - hr = IMFMediaType_SetBlob( - media_type, - &MF_MT_USER_DATA, - (void *)&wfx->Samples, - wfx->Format.cbSize - ); - FAudio_assert(!FAILED(hr) && "Failed set codec private data!"); - hr = IMFMediaType_SetGUID( - media_type, - &MF_MT_SUBTYPE, - &MFAudioFormat_XMAudio2 - ); - FAudio_assert(!FAILED(hr) && "Failed set media sub type!"); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_BLOCK_ALIGNMENT, - xwf->dwBytesPerBlock - ); - FAudio_assert(!FAILED(hr) && "Failed set input block align!"); - break; - } - default: - FAudio_assert(0 && "Unsupported type!"); - break; - } - - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_BITS_PER_SAMPLE, - wfx->Format.wBitsPerSample - ); - FAudio_assert(!FAILED(hr) && "Failed set input bits per sample!"); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_AVG_BYTES_PER_SECOND, - wfx->Format.nAvgBytesPerSec - ); - FAudio_assert(!FAILED(hr) && "Failed set input bytes per sample!"); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_NUM_CHANNELS, - wfx->Format.nChannels - ); - FAudio_assert(!FAILED(hr) && "Failed set input channel count!"); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_SAMPLES_PER_SECOND, - wfx->Format.nSamplesPerSec - ); - FAudio_assert(!FAILED(hr) && "Failed set input sample rate!"); - - hr = IMFTransform_SetInputType( - decoder, - 0, - media_type, - 0 - ); - FAudio_assert(!FAILED(hr) && "Failed set decoder input type!"); - IMFMediaType_Release(media_type); - - i = 0; - while (SUCCEEDED(hr)) - { - hr = IMFTransform_GetOutputAvailableType( - decoder, - 0, - i++, - &media_type - ); - FAudio_assert(!FAILED(hr) && "Failed get output media type!"); - - hr = IMFMediaType_GetGUID( - media_type, - &MF_MT_MAJOR_TYPE, - &guid - ); - FAudio_assert(!FAILED(hr) && "Failed get media major type!"); - if (!IsEqualGUID(&MFMediaType_Audio, &guid)) goto next; - - hr = IMFMediaType_GetGUID( - media_type, - &MF_MT_SUBTYPE, - &guid - ); - FAudio_assert(!FAILED(hr) && "Failed get media major type!"); - if (!IsEqualGUID(&MFAudioFormat_Float, &guid)) goto next; - - hr = IMFMediaType_GetUINT32( - media_type, - &MF_MT_AUDIO_BITS_PER_SAMPLE, - &value - ); - if (FAILED(hr)) - { - value = 32; - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_BITS_PER_SAMPLE, - value - ); - } - FAudio_assert(!FAILED(hr) && "Failed get bits per sample!"); - if (value != 32) goto next; - - hr = IMFMediaType_GetUINT32( - media_type, - &MF_MT_AUDIO_NUM_CHANNELS, - &value - ); - if (FAILED(hr)) - { - value = wfx->Format.nChannels; - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_NUM_CHANNELS, - value - ); - } - FAudio_assert(!FAILED(hr) && "Failed get channel count!"); - if (value != wfx->Format.nChannels) goto next; - - hr = IMFMediaType_GetUINT32( - media_type, - &MF_MT_AUDIO_SAMPLES_PER_SECOND, - &value - ); - if (FAILED(hr)) - { - value = wfx->Format.nSamplesPerSec; - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_SAMPLES_PER_SECOND, - value - ); - } - FAudio_assert(!FAILED(hr) && "Failed get sample rate!"); - if (value != wfx->Format.nSamplesPerSec) goto next; - - hr = IMFMediaType_GetUINT32( - media_type, - &MF_MT_AUDIO_BLOCK_ALIGNMENT, - &value - ); - if (FAILED(hr)) - { - value = wfx->Format.nChannels * sizeof(float); - hr = IMFMediaType_SetUINT32( - media_type, - &MF_MT_AUDIO_BLOCK_ALIGNMENT, - value - ); - } - FAudio_assert(!FAILED(hr) && "Failed get block align!"); - if (value == wfx->Format.nChannels * sizeof(float)) break; - -next: - IMFMediaType_Release(media_type); - } - FAudio_assert(!FAILED(hr) && "Failed to find output media type!"); - hr = IMFTransform_SetOutputType(decoder, 0, media_type, 0); - FAudio_assert(!FAILED(hr) && "Failed set decoder output type!"); - IMFMediaType_Release(media_type); - - hr = IMFTransform_GetOutputStreamInfo(decoder, 0, &info); - FAudio_assert(!FAILED(hr) && "Failed to get output stream info!"); - - impl->decoder = decoder; - if (!(info.dwFlags & MFT_OUTPUT_STREAM_CAN_PROVIDE_SAMPLES)) - { - hr = MFCreateSample(&impl->output_sample); - FAudio_assert(!FAILED(hr) && "Failed to create sample!"); - hr = MFCreateMemoryBuffer(info.cbSize, &media_buffer); - FAudio_assert(!FAILED(hr) && "Failed to create buffer!"); - hr = IMFSample_AddBuffer(impl->output_sample, media_buffer); - FAudio_assert(!FAILED(hr) && "Failed to buffer to sample!"); - IMFMediaBuffer_Release(media_buffer); - } - - hr = IMFTransform_ProcessMessage( - decoder, - MFT_MESSAGE_NOTIFY_BEGIN_STREAMING, - 0 - ); - FAudio_assert(!FAILED(hr) && "Failed to start decoder stream!"); - - voice->src.wmadec = impl; - voice->src.decode = FAudio_INTERNAL_DecodeWMAMF; - - LOG_FUNC_EXIT(voice->audio); - return 0; -} - -void FAudio_WMADEC_free(FAudioSourceVoice *voice) -{ - struct FAudioWMADEC *impl = voice->src.wmadec; - HRESULT hr; - - LOG_FUNC_ENTER(voice->audio) - FAudio_PlatformLockMutex(voice->audio->sourceLock); - LOG_MUTEX_LOCK(voice->audio, voice->audio->sourceLock) - - if (impl->input_size) - { - LOG_INFO(voice->audio, "sending EOS to %p", impl->decoder); - hr = IMFTransform_ProcessMessage( - impl->decoder, - MFT_MESSAGE_NOTIFY_END_OF_STREAM, - 0 - ); - FAudio_assert(!FAILED(hr) && "Failed to send EOS!"); - impl->input_size = 0; - } - if (impl->output_pos) - { - LOG_INFO(voice->audio, "sending DRAIN to %p", impl->decoder); - hr = IMFTransform_ProcessMessage( - impl->decoder, - MFT_MESSAGE_COMMAND_DRAIN, - 0 - ); - FAudio_assert(!FAILED(hr) && "Failed to send DRAIN!"); - impl->output_pos = 0; - } - - if (impl->output_sample) IMFSample_Release(impl->output_sample); - IMFTransform_Release(impl->decoder); - voice->audio->pFree(impl->output_buf); - voice->audio->pFree(voice->src.wmadec); - voice->src.wmadec = NULL; - voice->src.decode = NULL; - - FAudio_PlatformUnlockMutex(voice->audio->sourceLock); - LOG_MUTEX_UNLOCK(voice->audio, voice->audio->sourceLock) - LOG_FUNC_EXIT(voice->audio) -} - -void FAudio_WMADEC_end_buffer(FAudioSourceVoice *voice) -{ - struct FAudioWMADEC *impl = voice->src.wmadec; - HRESULT hr; - - LOG_FUNC_ENTER(voice->audio) - - if (impl->input_size) - { - LOG_INFO(voice->audio, "sending EOS to %p", impl->decoder); - hr = IMFTransform_ProcessMessage( - impl->decoder, - MFT_MESSAGE_NOTIFY_END_OF_STREAM, - 0 - ); - FAudio_assert(!FAILED(hr) && "Failed to send EOS!"); - impl->input_size = 0; - } - impl->output_pos = 0; - impl->input_pos = 0; - - LOG_FUNC_EXIT(voice->audio) -} - -#else - -extern int this_tu_is_empty; - -#endif /* FAUDIO_WIN32_PLATFORM */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/XNA_Song.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/XNA_Song.c deleted file mode 100644 index 6b8c8de6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/XNA_Song.c +++ /dev/null @@ -1,279 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef DISABLE_XNASONG - -#include "FAudio_internal.h" - -/* stb_vorbis */ - -#define malloc FAudio_malloc -#define realloc FAudio_realloc -#define free FAudio_free -#ifdef memset /* Thanks, Apple! */ -#undef memset -#endif -#define memset FAudio_memset -#ifdef memcpy /* Thanks, Apple! */ -#undef memcpy -#endif -#define memcpy FAudio_memcpy -#define memcmp FAudio_memcmp - -#define pow FAudio_pow -#define log(x) FAudio_log(x) -#define sin(x) FAudio_sin(x) -#define cos(x) FAudio_cos(x) -#define floor FAudio_floor -#define abs(x) FAudio_abs(x) -#define ldexp(v, e) FAudio_ldexp((v), (e)) -#define exp(x) FAudio_exp(x) - -#define qsort FAudio_qsort - -#define assert FAudio_assert - -#define FILE FAudioIOStream -#ifdef SEEK_SET -#undef SEEK_SET -#endif -#ifdef SEEK_END -#undef SEEK_END -#endif -#ifdef EOF -#undef EOF -#endif -#define SEEK_SET FAUDIO_SEEK_SET -#define SEEK_END FAUDIO_SEEK_END -#define EOF FAUDIO_EOF -#define fopen(path, mode) FAudio_fopen(path) -#define fopen_s(io, path, mode) (!(*io = FAudio_fopen(path))) -#define fclose(io) FAudio_close(io) -#define fread(dst, size, count, io) io->read(io->data, dst, size, count) -#define fseek(io, offset, whence) io->seek(io->data, offset, whence) -#define ftell(io) io->seek(io->data, 0, FAUDIO_SEEK_CUR) - -#define STB_VORBIS_NO_PUSHDATA_API 1 -#define STB_VORBIS_NO_INTEGER_CONVERSION 1 -#include "stb_vorbis.h" - -/* Globals */ - -static float songVolume = 1.0f; -static FAudio *songAudio = NULL; -static FAudioMasteringVoice *songMaster = NULL; - -static FAudioSourceVoice *songVoice = NULL; -static FAudioVoiceCallback callbacks; -static stb_vorbis *activeSong = NULL; -static stb_vorbis_info activeSongInfo; -static uint8_t *songCache; - -/* Internal Functions */ - -static void XNA_SongSubmitBuffer(FAudioVoiceCallback *callback, void *pBufferContext) -{ - FAudioBuffer buffer; - uint32_t decoded = stb_vorbis_get_samples_float_interleaved( - activeSong, - activeSongInfo.channels, - (float*) songCache, - activeSongInfo.sample_rate * activeSongInfo.channels - ); - if (decoded == 0) - { - return; - } - buffer.Flags = (decoded < activeSongInfo.sample_rate) ? - FAUDIO_END_OF_STREAM : - 0; - buffer.AudioBytes = decoded * activeSongInfo.channels * sizeof(float); - buffer.pAudioData = songCache; - buffer.PlayBegin = 0; - buffer.PlayLength = decoded; - buffer.LoopBegin = 0; - buffer.LoopLength = 0; - buffer.LoopCount = 0; - buffer.pContext = NULL; - FAudioSourceVoice_SubmitSourceBuffer( - songVoice, - &buffer, - NULL - ); -} - -static void XNA_SongKill() -{ - if (songVoice != NULL) - { - FAudioSourceVoice_Stop(songVoice, 0, 0); - FAudioVoice_DestroyVoice(songVoice); - songVoice = NULL; - } - if (songCache != NULL) - { - FAudio_free(songCache); - songCache = NULL; - } - if (activeSong != NULL) - { - stb_vorbis_close(activeSong); - activeSong = NULL; - } -} - -/* "Public" API */ - -FAUDIOAPI void XNA_SongInit() -{ - FAudioCreate(&songAudio, 0, FAUDIO_DEFAULT_PROCESSOR); - FAudio_CreateMasteringVoice( - songAudio, - &songMaster, - FAUDIO_DEFAULT_CHANNELS, - FAUDIO_DEFAULT_SAMPLERATE, - 0, - 0, - NULL - ); -} - -FAUDIOAPI void XNA_SongQuit() -{ - XNA_SongKill(); - FAudioVoice_DestroyVoice(songMaster); - FAudio_Release(songAudio); -} - -FAUDIOAPI float XNA_PlaySong(const char *name) -{ - FAudioWaveFormatEx format; - XNA_SongKill(); - - activeSong = stb_vorbis_open_filename(name, NULL, NULL); - - /* Set format info */ - activeSongInfo = stb_vorbis_get_info(activeSong); - format.wFormatTag = FAUDIO_FORMAT_IEEE_FLOAT; - format.nChannels = activeSongInfo.channels; - format.nSamplesPerSec = activeSongInfo.sample_rate; - format.wBitsPerSample = sizeof(float) * 8; - format.nBlockAlign = format.nChannels * format.wBitsPerSample / 8; - format.nAvgBytesPerSec = format.nSamplesPerSec * format.nBlockAlign; - format.cbSize = 0; - - /* Allocate decode cache */ - songCache = (uint8_t*) FAudio_malloc(format.nAvgBytesPerSec); - - /* Init voice */ - FAudio_zero(&callbacks, sizeof(FAudioVoiceCallback)); - callbacks.OnBufferEnd = XNA_SongSubmitBuffer; - FAudio_CreateSourceVoice( - songAudio, - &songVoice, - &format, - 0, - 1.0f, /* No pitch shifting here! */ - &callbacks, - NULL, - NULL - ); - FAudioVoice_SetVolume(songVoice, songVolume, 0); - - /* Okay, this song is decoding now */ - stb_vorbis_seek_start(activeSong); - XNA_SongSubmitBuffer(NULL, NULL); - - /* Finally. */ - FAudioSourceVoice_Start(songVoice, 0, 0); - return stb_vorbis_stream_length_in_seconds(activeSong); -} - -FAUDIOAPI void XNA_PauseSong() -{ - if (songVoice == NULL) - { - return; - } - FAudioSourceVoice_Stop(songVoice, 0, 0); -} - -FAUDIOAPI void XNA_ResumeSong() -{ - if (songVoice == NULL) - { - return; - } - FAudioSourceVoice_Start(songVoice, 0, 0); -} - -FAUDIOAPI void XNA_StopSong() -{ - XNA_SongKill(); -} - -FAUDIOAPI void XNA_SetSongVolume(float volume) -{ - songVolume = volume; - if (songVoice != NULL) - { - FAudioVoice_SetVolume(songVoice, songVolume, 0); - } -} - -FAUDIOAPI uint32_t XNA_GetSongEnded() -{ - FAudioVoiceState state; - if (songVoice == NULL || activeSong == NULL) - { - return 1; - } - FAudioSourceVoice_GetState(songVoice, &state, 0); - return state.BuffersQueued == 0; -} - -FAUDIOAPI void XNA_EnableVisualization(uint32_t enable) -{ - /* TODO: Enable/Disable FAPO effect */ -} - -FAUDIOAPI uint32_t XNA_VisualizationEnabled() -{ - /* TODO: Query FAPO effect enabled */ - return 0; -} - -FAUDIOAPI void XNA_GetSongVisualizationData( - float *frequencies, - float *samples, - uint32_t count -) { - /* TODO: Visualization FAPO that reads in Song samples, FFT analysis */ -} - -#endif /* DISABLE_XNASONG */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/matrix_defaults.inl b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/matrix_defaults.inl deleted file mode 100644 index 6f540f28..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/matrix_defaults.inl +++ /dev/null @@ -1,209 +0,0 @@ -/* This was generated by making 8 sources and 8 submixes, then assigning each - * submix to each voice and dumping the output matrix. Terrible, but it worked! - */ -/* -int main(int argc, char **argv) -{ - CoInitialize(NULL); - - IXAudio2 *engine; - XAudio2Create(&engine); - - IXAudio2MasteringVoice *master; - engine->CreateMasteringVoice(&master); - - FILE *fileOut = fopen("matrix_defaults.inl", "w"); - for (int srcChans = 1; srcChans < 9; srcChans += 1) - { - fprintf(fileOut, "{\n"); - for (int dstChans = 1; dstChans < 9; dstChans += 1) - { - IXAudio2SubmixVoice *submix; - engine->CreateSubmixVoice(&submix, dstChans, 48000); - - XAUDIO2_SEND_DESCRIPTOR sendDesc; - sendDesc.Flags = 0; - sendDesc.pOutputVoice = submix; - - XAUDIO2_VOICE_SENDS sends; - sends.SendCount = 1; - sends.pSends = &sendDesc; - - WAVEFORMATEX fmt; - fmt.wFormatTag = 1; - fmt.nChannels = srcChans; - fmt.nSamplesPerSec = 48000; - fmt.wBitsPerSample = 16; - fmt.nBlockAlign = srcChans * (fmt.wBitsPerSample / 8); - fmt.nAvgBytesPerSec = fmt.nBlockAlign * fmt.nSamplesPerSec; - fmt.cbSize = 0; - - IXAudio2SourceVoice *source; - engine->CreateSourceVoice(&source, &fmt, 0, 2.0f, NULL, &sends); - - float matrix[8 * 8]; - source->GetOutputMatrix(submix, srcChans, dstChans, matrix); - fprintf(fileOut, "\t{ "); - for (int i = 0; i < srcChans * dstChans; i += 1) - { - fprintf(fileOut, "%.9f%s ", matrix[i], (i == ((srcChans * dstChans) - 1)) ? "" : ","); - } - fprintf(fileOut, "}%s\n", (dstChans == 8) ? "" : ","); - - source->DestroyVoice(); - submix->DestroyVoice(); - } - fprintf(fileOut, "}%s\n", (srcChans == 8) ? "" : ","); - } - fclose(fileOut); - - master->DestroyVoice(); - engine->Release(); - CoUninitialize(); - return 0; -} -*/ -{ - /* 1 x 1 */ - { 1.000000000f }, - /* 1 x 2 */ - { 1.000000000f, 1.000000000f }, - /* 1 x 3 */ - { 1.000000000f, 1.000000000f, 0.000000000f }, - /* 1 x 4 */ - { 1.000000000f, 1.000000000f, 0.000000000f, 0.000000000f }, - /* 1 x 5 */ - { 1.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 1 x 6 */ - { 1.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 1 x 7 */ - { 1.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 1 x 8 */ - { 1.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f } -}, -{ - /* 2 x 1 */ - { 0.500000000f, 0.500000000f }, - /* 2 x 2 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 2 x 3 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f }, - /* 2 x 4 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 2 x 5 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 2 x 6 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 2 x 7 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 2 x 8 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f } -}, -{ - /* 3 x 1 */ - { 0.333333343f, 0.333333343f, 0.333333343f }, - /* 3 x 2 */ - { 0.800000012f, 0.000000000f, 0.200000003f, 0.000000000f, 0.800000012f, 0.200000003f }, - /* 3 x 3 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 3 x 4 */ - { 0.888888896f, 0.000000000f, 0.111111112f, 0.000000000f, 0.888888896f, 0.111111112f, 0.000000000f, 0.000000000f, 0.111111112f, 0.000000000f, 0.000000000f, 0.111111112f }, - /* 3 x 5 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 3 x 6 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 3 x 7 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 3 x 8 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f } -}, -{ - /* 4 x 1 */ - { 0.250000000f, 0.250000000f, 0.250000000f, 0.250000000f }, - /* 4 x 2 */ - { 0.421000004f, 0.000000000f, 0.358999997f, 0.219999999f, 0.000000000f, 0.421000004f, 0.219999999f, 0.358999997f }, - /* 4 x 3 */ - { 0.421000004f, 0.000000000f, 0.358999997f, 0.219999999f, 0.000000000f, 0.421000004f, 0.219999999f, 0.358999997f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 4 x 4 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 4 x 5 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 4 x 6 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 4 x 7 */ - { 0.939999998f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.939999998f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.500000000f, 0.500000000f, 0.000000000f, 0.000000000f, 0.796000004f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.796000004f }, - /* 4 x 8 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f } -}, -{ - /* 5 x 1 */ - { 0.200000003f, 0.200000003f, 0.200000003f, 0.200000003f, 0.200000003f }, - /* 5 x 2 */ - { 0.374222219f, 0.000000000f, 0.111111112f, 0.319111109f, 0.195555553f, 0.000000000f, 0.374222219f, 0.111111112f, 0.195555553f, 0.319111109f }, - /* 5 x 3 */ - { 0.421000004f, 0.000000000f, 0.000000000f, 0.358999997f, 0.219999999f, 0.000000000f, 0.421000004f, 0.000000000f, 0.219999999f, 0.358999997f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f }, - /* 5 x 4 */ - { 0.941176474f, 0.000000000f, 0.058823530f, 0.000000000f, 0.000000000f, 0.000000000f, 0.941176474f, 0.058823530f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.058823530f, 0.941176474f, 0.000000000f, 0.000000000f, 0.000000000f, 0.058823530f, 0.000000000f, 0.941176474f }, - /* 5 x 5 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 5 x 6 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 5 x 7 */ - { 0.939999998f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.939999998f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.500000000f, 0.500000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.796000004f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.796000004f }, - /* 5 x 8 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f } -}, -{ - /* 6 x 1 */ - { 0.166666672f, 0.166666672f, 0.166666672f, 0.166666672f, 0.166666672f, 0.166666672f }, - /* 6 x 2 */ - { 0.294545442f, 0.000000000f, 0.208181813f, 0.090909094f, 0.251818180f, 0.154545456f, 0.000000000f, 0.294545442f, 0.208181813f, 0.090909094f, 0.154545456f, 0.251818180f }, - /* 6 x 3 */ - { 0.324000001f, 0.000000000f, 0.229000002f, 0.000000000f, 0.277000010f, 0.170000002f, 0.000000000f, 0.324000001f, 0.229000002f, 0.000000000f, 0.170000002f, 0.277000010f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f }, - /* 6 x 4 */ - { 0.558095276f, 0.000000000f, 0.394285709f, 0.047619049f, 0.000000000f, 0.000000000f, 0.000000000f, 0.558095276f, 0.394285709f, 0.047619049f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.047619049f, 0.558095276f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.047619049f, 0.000000000f, 0.558095276f }, - /* 6 x 5 */ - { 0.586000025f, 0.000000000f, 0.414000005f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.586000025f, 0.414000005f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.586000025f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.586000025f }, - /* 6 x 6 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 6 x 7 */ - { 0.939999998f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.939999998f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.939999998f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.500000000f, 0.500000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.796000004f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.796000004f }, - /* 6 x 8 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f } -}, -{ - /* 7 x 1 */ - { 0.143142849f, 0.143142849f, 0.143142849f, 0.142857149f, 0.143142849f, 0.143142849f, 0.143142849f }, - /* 7 x 2 */ - { 0.247384623f, 0.000000000f, 0.174461529f, 0.076923080f, 0.174461529f, 0.226153851f, 0.100615382f, 0.000000000f, 0.247384623f, 0.174461529f, 0.076923080f, 0.174461529f, 0.100615382f, 0.226153851f }, - /* 7 x 3 */ - { 0.268000007f, 0.000000000f, 0.188999996f, 0.000000000f, 0.188999996f, 0.245000005f, 0.108999997f, 0.000000000f, 0.268000007f, 0.188999996f, 0.000000000f, 0.188999996f, 0.108999997f, 0.245000005f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 7 x 4 */ - { 0.463679999f, 0.000000000f, 0.327360004f, 0.040000003f, 0.000000000f, 0.168960005f, 0.000000000f, 0.000000000f, 0.463679999f, 0.327360004f, 0.040000003f, 0.000000000f, 0.000000000f, 0.168960005f, 0.000000000f, 0.000000000f, 0.000000000f, 0.040000003f, 0.327360004f, 0.431039989f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.040000003f, 0.327360004f, 0.000000000f, 0.431039989f }, - /* 7 x 5 */ - { 0.483000010f, 0.000000000f, 0.340999991f, 0.000000000f, 0.000000000f, 0.175999999f, 0.000000000f, 0.000000000f, 0.483000010f, 0.340999991f, 0.000000000f, 0.000000000f, 0.000000000f, 0.175999999f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.340999991f, 0.449000001f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.340999991f, 0.000000000f, 0.449000001f }, - /* 7 x 6 */ - { 0.611000001f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.223000005f, 0.000000000f, 0.000000000f, 0.611000001f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.223000005f, 0.000000000f, 0.000000000f, 0.611000001f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.432000011f, 0.568000019f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.432000011f, 0.000000000f, 0.568000019f }, - /* 7 x 7 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f }, - /* 7 x 8 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.707000017f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.707000017f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f } -}, -{ - /* 8 x 1 */ - { 0.125125006f, 0.125125006f, 0.125125006f, 0.125000000f, 0.125125006f, 0.125125006f, 0.125125006f, 0.125125006f }, - /* 8 x 2 */ - { 0.211866662f, 0.000000000f, 0.150266662f, 0.066666670f, 0.181066677f, 0.111066669f, 0.194133341f, 0.085866667f, 0.000000000f, 0.211866662f, 0.150266662f, 0.066666670f, 0.111066669f, 0.181066677f, 0.085866667f, 0.194133341f }, - /* 8 x 3 */ - { 0.226999998f, 0.000000000f, 0.160999998f, 0.000000000f, 0.194000006f, 0.119000003f, 0.208000004f, 0.092000000f, 0.000000000f, 0.226999998f, 0.160999998f, 0.000000000f, 0.119000003f, 0.194000006f, 0.092000000f, 0.208000004f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f }, - /* 8 x 4 */ - { 0.466344833f, 0.000000000f, 0.329241365f, 0.034482758f, 0.000000000f, 0.000000000f, 0.169931039f, 0.000000000f, 0.000000000f, 0.466344833f, 0.329241365f, 0.034482758f, 0.000000000f, 0.000000000f, 0.000000000f, 0.169931039f, 0.000000000f, 0.000000000f, 0.000000000f, 0.034482758f, 0.466344833f, 0.000000000f, 0.433517247f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.034482758f, 0.000000000f, 0.466344833f, 0.000000000f, 0.433517247f }, - /* 8 x 5 */ - { 0.483000010f, 0.000000000f, 0.340999991f, 0.000000000f, 0.000000000f, 0.000000000f, 0.175999999f, 0.000000000f, 0.000000000f, 0.483000010f, 0.340999991f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.175999999f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.483000010f, 0.000000000f, 0.449000001f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.483000010f, 0.000000000f, 0.449000001f }, - /* 8 x 6 */ - { 0.518000007f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.188999996f, 0.000000000f, 0.000000000f, 0.518000007f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.188999996f, 0.000000000f, 0.000000000f, 0.518000007f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.518000007f, 0.000000000f, 0.481999993f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.518000007f, 0.000000000f, 0.481999993f }, - /* 8 x 7 */ - { 0.541000009f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.541000009f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.541000009f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.287999988f, 0.287999988f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.458999991f, 0.000000000f, 0.541000009f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.458999991f, 0.000000000f, 0.541000009f }, - /* 8 x 8 */ - { 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 0.000000000f, 1.000000000f } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/stb.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/stb.h deleted file mode 100644 index 5f1724a7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/stb.h +++ /dev/null @@ -1,406 +0,0 @@ -/* stb.h - v2.32 - Sean's Tool Box -- public domain -- http://nothings.org/stb.h - no warranty is offered or implied; use this code at your own risk - - This is a single header file with a bunch of useful utilities - for getting stuff done in C/C++. - - Documentation: http://nothings.org/stb/stb_h.html - Unit tests: http://nothings.org/stb/stb.c - - - ============================================================================ - You MUST - - #define STB_DEFINE - - in EXACTLY _one_ C or C++ file that includes this header, BEFORE the - include, like this: - - #define STB_DEFINE - #include "stb.h" - - All other files should just #include "stb.h" without the #define. - ============================================================================ - - -Version History - - 2.32 stb_intcmprev, stb_uidict, fix random numbers on Linux - 2.31 stb_ucharcmp - 2.30 MinGW fix - 2.29 attempt to fix use of swprintf() - 2.28 various new functionality - 2.27 test _WIN32 not WIN32 in STB_THREADS - 2.26 various warning & bugfixes - 2.25 various warning & bugfixes - 2.24 various warning & bugfixes - 2.23 fix 2.22 - 2.22 64-bit fixes from '!='; fix stb_sdict_copy() to have preferred name - 2.21 utf-8 decoder rejects "overlong" encodings; attempted 64-bit improvements - 2.20 fix to hash "copy" function--reported by someone with handle "!=" - 2.19 ??? - 2.18 stb_readdir_subdirs_mask - 2.17 stb_cfg_dir - 2.16 fix stb_bgio_, add stb_bgio_stat(); begin a streaming wrapper - 2.15 upgraded hash table template to allow: - - aggregate keys (explicit comparison func for EMPTY and DEL keys) - - "static" implementations (so they can be culled if unused) - 2.14 stb_mprintf - 2.13 reduce identifiable strings in STB_NO_STB_STRINGS - 2.12 fix STB_ONLY -- lots of uint32s, TRUE/FALSE things had crept in - 2.11 fix bug in stb_dirtree_get() which caused "c://path" sorts of stuff - 2.10 STB_F(), STB_I() inline constants (also KI,KU,KF,KD) - 2.09 stb_box_face_vertex_axis_side - 2.08 bugfix stb_trimwhite() - 2.07 colored printing in windows (why are we in 1985?) - 2.06 comparison functions are now functions-that-return-functions and - accept a struct-offset as a parameter (not thread-safe) - 2.05 compile and pass tests under Linux (but no threads); thread cleanup - 2.04 stb_cubic_bezier_1d, smoothstep, avoid dependency on registry - 2.03 ? - 2.02 remove integrated documentation - 2.01 integrate various fixes; stb_force_uniprocessor - 2.00 revised stb_dupe to use multiple hashes - 1.99 stb_charcmp - 1.98 stb_arr_deleten, stb_arr_insertn - 1.97 fix stb_newell_normal() - 1.96 stb_hash_number() - 1.95 hack stb__rec_max; clean up recursion code to use new functions - 1.94 stb_dirtree; rename stb_extra to stb_ptrmap - 1.93 stb_sem_new() API cleanup (no blockflag-starts blocked; use 'extra') - 1.92 stb_threadqueue--multi reader/writer queue, fixed size or resizeable - 1.91 stb_bgio_* for reading disk asynchronously - 1.90 stb_mutex uses CRITICAL_REGION; new stb_sync primitive for thread - joining; workqueue supports stb_sync instead of stb_semaphore - 1.89 support ';' in constant-string wildcards; stb_mutex wrapper (can - implement with EnterCriticalRegion eventually) - 1.88 portable threading API (only for win32 so far); worker thread queue - 1.87 fix wildcard handling in stb_readdir_recursive - 1.86 support ';' in wildcards - 1.85 make stb_regex work with non-constant strings; - beginnings of stb_introspect() - 1.84 (forgot to make notes) - 1.83 whoops, stb_keep_if_different wasn't deleting the temp file - 1.82 bring back stb_compress from stb_file.h for cmirror - 1.81 various bugfixes, STB_FASTMALLOC_INIT inits FASTMALLOC in release - 1.80 stb_readdir returns utf8; write own utf8-utf16 because lib was wrong - 1.79 stb_write - 1.78 calloc() support for malloc wrapper, STB_FASTMALLOC - 1.77 STB_FASTMALLOC - 1.76 STB_STUA - Lua-like language; (stb_image, stb_csample, stb_bilinear) - 1.75 alloc/free array of blocks; stb_hheap bug; a few stb_ps_ funcs; - hash*getkey, hash*copy; stb_bitset; stb_strnicmp; bugfix stb_bst - 1.74 stb_replaceinplace; use stdlib C function to convert utf8 to UTF-16 - 1.73 fix performance bug & leak in stb_ischar (C++ port lost a 'static') - 1.72 remove stb_block, stb_block_manager, stb_decompress (to stb_file.h) - 1.71 stb_trimwhite, stb_tokens_nested, etc. - 1.70 back out 1.69 because it might problemize mixed builds; stb_filec() - 1.69 (stb_file returns 'char *' in C++) - 1.68 add a special 'tree root' data type for stb_bst; stb_arr_end - 1.67 full C++ port. (stb_block_manager) - 1.66 stb_newell_normal - 1.65 stb_lex_item_wild -- allow wildcard items which MUST match entirely - 1.64 stb_data - 1.63 stb_log_name - 1.62 stb_define_sort; C++ cleanup - 1.61 stb_hash_fast -- Paul Hsieh's hash function (beats Bob Jenkins'?) - 1.60 stb_delete_directory_recursive - 1.59 stb_readdir_recursive - 1.58 stb_bst variant with parent pointer for O(1) iteration, not O(log N) - 1.57 replace LCG random with Mersenne Twister (found a public domain one) - 1.56 stb_perfect_hash, stb_ischar, stb_regex - 1.55 new stb_bst API allows multiple BSTs per node (e.g. secondary keys) - 1.54 bugfix: stb_define_hash, stb_wildmatch, regexp - 1.53 stb_define_hash; recoded stb_extra, stb_sdict use it - 1.52 stb_rand_define, stb_bst, stb_reverse - 1.51 fix 'stb_arr_setlen(NULL, 0)' - 1.50 stb_wordwrap - 1.49 minor improvements to enable the scripting language - 1.48 better approach for stb_arr using stb_malloc; more invasive, clearer - 1.47 stb_lex (lexes stb.h at 1.5ML/s on 3Ghz P4; 60/70% of optimal/flex) - 1.46 stb_wrapper_*, STB_MALLOC_WRAPPER - 1.45 lightly tested DFA acceleration of regexp searching - 1.44 wildcard matching & searching; regexp matching & searching - 1.43 stb_temp - 1.42 allow stb_arr to use stb_malloc/realloc; note this is global - 1.41 make it compile in C++; (disable stb_arr in C++) - 1.40 stb_dupe tweak; stb_swap; stb_substr - 1.39 stb_dupe; improve stb_file_max to be less stupid - 1.38 stb_sha1_file: generate sha1 for file, even > 4GB - 1.37 stb_file_max; partial support for utf8 filenames in Windows - 1.36 remove STB__NO_PREFIX - poor interaction with IDE, not worth it - streamline stb_arr to make it separately publishable - 1.35 bugfixes for stb_sdict, stb_malloc(0), stristr - 1.34 (streaming interfaces for stb_compress) - 1.33 stb_alloc; bug in stb_getopt; remove stb_overflow - 1.32 (stb_compress returns, smaller&faster; encode window & 64-bit len) - 1.31 stb_prefix_count - 1.30 (STB__NO_PREFIX - remove stb_ prefixes for personal projects) - 1.29 stb_fput_varlen64, etc. - 1.28 stb_sha1 - 1.27 ? - 1.26 stb_extra - 1.25 ? - 1.24 stb_copyfile - 1.23 stb_readdir - 1.22 ? - 1.21 ? - 1.20 ? - 1.19 ? - 1.18 ? - 1.17 ? - 1.16 ? - 1.15 stb_fixpath, stb_splitpath, stb_strchr2 - 1.14 stb_arr - 1.13 ?stb, stb_log, stb_fatal - 1.12 ?stb_hash2 - 1.11 miniML - 1.10 stb_crc32, stb_adler32 - 1.09 stb_sdict - 1.08 stb_bitreverse, stb_ispow2, stb_big32 - stb_fopen, stb_fput_varlen, stb_fput_ranged - stb_fcmp, stb_feq - 1.07 (stb_encompress) - 1.06 stb_compress - 1.05 stb_tokens, (stb_hheap) - 1.04 stb_rand - 1.03 ?(s-strings) - 1.02 ?stb_filelen, stb_tokens - 1.01 stb_tolower - 1.00 stb_hash, stb_intcmp - stb_file, stb_stringfile, stb_fgets - stb_prefix, stb_strlower, stb_strtok - stb_image - (stb_array), (stb_arena) - -Parenthesized items have since been removed. - -LICENSE - - See end of file for license information. - -CREDITS - - Written by Sean Barrett. - - Fixes: - Philipp Wiesemann - Robert Nix - r-lyeh - blackpawn - github:Mojofreem - Ryan Whitworth - Vincent Isambart - Mike Sartain - Eugene Opalev - Tim Sjostrand - github:infatum - Dave Butler (Croepha) -*/ - -#ifndef STB__INCLUDE_STB_H -#define STB__INCLUDE_STB_H - -#define STB_VERSION 1 - -/* In addition to trimming out all the stuff FAudio does not use, we are also - * binding various stdlib functions stb.h uses to FAudio's stdlib. - * -flibit - */ -#ifndef FAUDIO_WIN32_PLATFORM -#ifdef memcpy /* Thanks Apple! */ -#undef memcpy -#endif -#define memcpy FAudio_memcpy -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// Miscellany -// - -STB_EXTERN void stb_swap(void *p, void *q, size_t sz); - -#ifdef STB_DEFINE -typedef struct { char d[4]; } stb__4; -typedef struct { char d[8]; } stb__8; - -// optimize the small cases, though you shouldn't be calling this for those! -void stb_swap(void *p, void *q, size_t sz) -{ - char buffer[256]; - if (p == q) return; - if (sz == 4) { - stb__4 temp = * ( stb__4 *) p; - * (stb__4 *) p = * ( stb__4 *) q; - * (stb__4 *) q = temp; - return; - } else if (sz == 8) { - stb__8 temp = * ( stb__8 *) p; - * (stb__8 *) p = * ( stb__8 *) q; - * (stb__8 *) q = temp; - return; - } - - while (sz > sizeof(buffer)) { - stb_swap(p, q, sizeof(buffer)); - p = (char *) p + sizeof(buffer); - q = (char *) q + sizeof(buffer); - sz -= sizeof(buffer); - } - - memcpy(buffer, p , sz); - memcpy(p , q , sz); - memcpy(q , buffer, sz); -} -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// Random Numbers via Meresenne Twister or LCG -// - -STB_EXTERN unsigned int stb_srandLCG(unsigned int seed); -STB_EXTERN unsigned int stb_randLCG(void); - -STB_EXTERN void stb_srand(unsigned int seed); -STB_EXTERN unsigned int stb_rand(void); -STB_EXTERN double stb_frand(void); - -#define stb_rand_define(x,y) \ - \ - unsigned int x(void) \ - { \ - static unsigned int stb__rand = y; \ - stb__rand = stb__rand * 2147001325 + 715136305; /* BCPL */ \ - return 0x31415926 ^ ((stb__rand >> 16) + (stb__rand << 16)); \ - } - -#ifdef STB_DEFINE -static unsigned int stb__rand_seed=0; - -unsigned int stb_srandLCG(unsigned int seed) -{ - unsigned int previous = stb__rand_seed; - stb__rand_seed = seed; - return previous; -} - -unsigned int stb_randLCG(void) -{ - stb__rand_seed = stb__rand_seed * 2147001325 + 715136305; // BCPL generator - // shuffle non-random bits to the middle, and xor to decorrelate with seed - return 0x31415926 ^ ((stb__rand_seed >> 16) + (stb__rand_seed << 16)); -} - -// public domain Mersenne Twister by Michael Brundage -#define STB__MT_LEN 624 - -int stb__mt_index = STB__MT_LEN*sizeof(int)+1; -unsigned int stb__mt_buffer[STB__MT_LEN]; - -void stb_srand(unsigned int seed) -{ - int i; - unsigned int old = stb_srandLCG(seed); - for (i = 0; i < STB__MT_LEN; i++) - stb__mt_buffer[i] = stb_randLCG(); - stb_srandLCG(old); - stb__mt_index = STB__MT_LEN*sizeof(unsigned int); -} - -#define STB__MT_IA 397 -#define STB__MT_IB (STB__MT_LEN - STB__MT_IA) -#define STB__UPPER_MASK 0x80000000 -#define STB__LOWER_MASK 0x7FFFFFFF -#define STB__MATRIX_A 0x9908B0DF -#define STB__TWIST(b,i,j) ((b)[i] & STB__UPPER_MASK) | ((b)[j] & STB__LOWER_MASK) -#define STB__MAGIC(s) (((s)&1)*STB__MATRIX_A) - -unsigned int stb_rand() -{ - unsigned int * b = stb__mt_buffer; - int idx = stb__mt_index; - unsigned int s,r; - int i; - - if (idx >= STB__MT_LEN*sizeof(unsigned int)) { - if (idx > STB__MT_LEN*sizeof(unsigned int)) - stb_srand(0); - idx = 0; - i = 0; - for (; i < STB__MT_IB; i++) { - s = STB__TWIST(b, i, i+1); - b[i] = b[i + STB__MT_IA] ^ (s >> 1) ^ STB__MAGIC(s); - } - for (; i < STB__MT_LEN-1; i++) { - s = STB__TWIST(b, i, i+1); - b[i] = b[i - STB__MT_IB] ^ (s >> 1) ^ STB__MAGIC(s); - } - - s = STB__TWIST(b, STB__MT_LEN-1, 0); - b[STB__MT_LEN-1] = b[STB__MT_IA-1] ^ (s >> 1) ^ STB__MAGIC(s); - } - stb__mt_index = idx + sizeof(unsigned int); - - r = *(unsigned int *)((unsigned char *)b + idx); - - r ^= (r >> 11); - r ^= (r << 7) & 0x9D2C5680; - r ^= (r << 15) & 0xEFC60000; - r ^= (r >> 18); - - return r; -} - -double stb_frand(void) -{ - return stb_rand() / ((double) (1 << 16) * (1 << 16)); -} - -#endif - -#undef STB_EXTERN -#endif // STB_INCLUDE_STB_H - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/stb_vorbis.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/src/stb_vorbis.h deleted file mode 100644 index 3a6e009b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/src/stb_vorbis.h +++ /dev/null @@ -1,5572 +0,0 @@ -// Ogg Vorbis audio decoder - v1.20 - public domain -// http://nothings.org/stb_vorbis/ -// -// Original version written by Sean Barrett in 2007. -// -// Originally sponsored by RAD Game Tools. Seeking implementation -// sponsored by Phillip Bennefall, Marc Andersen, Aaron Baker, -// Elias Software, Aras Pranckevicius, and Sean Barrett. -// -// LICENSE -// -// See end of file for license information. -// -// Limitations: -// -// - floor 0 not supported (used in old ogg vorbis files pre-2004) -// - lossless sample-truncation at beginning ignored -// - cannot concatenate multiple vorbis streams -// - sample positions are 32-bit, limiting seekable 192Khz -// files to around 6 hours (Ogg supports 64-bit) -// -// Feature contributors: -// Dougall Johnson (sample-exact seeking) -// -// Bugfix/warning contributors: -// Terje Mathisen Niklas Frykholm Andy Hill -// Casey Muratori John Bolton Gargaj -// Laurent Gomila Marc LeBlanc Ronny Chevalier -// Bernhard Wodo Evan Balster github:alxprd -// Tom Beaumont Ingo Leitgeb Nicolas Guillemot -// Phillip Bennefall Rohit Thiago Goulart -// github:manxorist saga musix github:infatum -// Timur Gagiev Maxwell Koo Peter Waller -// github:audinowho Dougall Johnson David Reid -// github:Clownacy Pedro J. Estebanez Remi Verschelde -// -// Partial history: -// 1.20 - 2020-07-11 - several small fixes -// 1.19 - 2020-02-05 - warnings -// 1.18 - 2020-02-02 - fix seek bugs; parse header comments; misc warnings etc. -// 1.17 - 2019-07-08 - fix CVE-2019-13217..CVE-2019-13223 (by ForAllSecure) -// 1.16 - 2019-03-04 - fix warnings -// 1.15 - 2019-02-07 - explicit failure if Ogg Skeleton data is found -// 1.14 - 2018-02-11 - delete bogus dealloca usage -// 1.13 - 2018-01-29 - fix truncation of last frame (hopefully) -// 1.12 - 2017-11-21 - limit residue begin/end to blocksize/2 to avoid large temp allocs in bad/corrupt files -// 1.11 - 2017-07-23 - fix MinGW compilation -// 1.10 - 2017-03-03 - more robust seeking; fix negative ilog(); clear error in open_memory -// 1.09 - 2016-04-04 - back out 'truncation of last frame' fix from previous version -// 1.08 - 2016-04-02 - warnings; setup memory leaks; truncation of last frame -// 1.07 - 2015-01-16 - fixes for crashes on invalid files; warning fixes; const -// 1.06 - 2015-08-31 - full, correct support for seeking API (Dougall Johnson) -// some crash fixes when out of memory or with corrupt files -// fix some inappropriately signed shifts -// 1.05 - 2015-04-19 - don't define __forceinline if it's redundant -// 1.04 - 2014-08-27 - fix missing const-correct case in API -// 1.03 - 2014-08-07 - warning fixes -// 1.02 - 2014-07-09 - declare qsort comparison as explicitly _cdecl in Windows -// 1.01 - 2014-06-18 - fix stb_vorbis_get_samples_float (interleaved was correct) -// 1.0 - 2014-05-26 - fix memory leaks; fix warnings; fix bugs in >2-channel; -// (API change) report sample rate for decode-full-file funcs -// -// See end of file for full version history. - - -////////////////////////////////////////////////////////////////////////////// -// -// HEADER BEGINS HERE -// - -#ifndef STB_VORBIS_INCLUDE_STB_VORBIS_H -#define STB_VORBIS_INCLUDE_STB_VORBIS_H - -#if defined(STB_VORBIS_NO_CRT) && !defined(STB_VORBIS_NO_STDIO) -#define STB_VORBIS_NO_STDIO 1 -#endif - -#if 0 /* FAudio change! */ -#ifndef STB_VORBIS_NO_STDIO -#include -#endif -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -/////////// THREAD SAFETY - -// Individual stb_vorbis* handles are not thread-safe; you cannot decode from -// them from multiple threads at the same time. However, you can have multiple -// stb_vorbis* handles and decode from them independently in multiple thrads. - - -/////////// MEMORY ALLOCATION - -// normally stb_vorbis uses malloc() to allocate memory at startup, -// and alloca() to allocate temporary memory during a frame on the -// stack. (Memory consumption will depend on the amount of setup -// data in the file and how you set the compile flags for speed -// vs. size. In my test files the maximal-size usage is ~150KB.) -// -// You can modify the wrapper functions in the source (setup_malloc, -// setup_temp_malloc, temp_malloc) to change this behavior, or you -// can use a simpler allocation model: you pass in a buffer from -// which stb_vorbis will allocate _all_ its memory (including the -// temp memory). "open" may fail with a VORBIS_outofmem if you -// do not pass in enough data; there is no way to determine how -// much you do need except to succeed (at which point you can -// query get_info to find the exact amount required. yes I know -// this is lame). -// -// If you pass in a non-NULL buffer of the type below, allocation -// will occur from it as described above. Otherwise just pass NULL -// to use malloc()/alloca() - -typedef struct -{ - char *alloc_buffer; - int alloc_buffer_length_in_bytes; -} stb_vorbis_alloc; - - -/////////// FUNCTIONS USEABLE WITH ALL INPUT MODES - -typedef struct stb_vorbis stb_vorbis; - -typedef struct -{ - unsigned int sample_rate; - int channels; - - unsigned int setup_memory_required; - unsigned int setup_temp_memory_required; - unsigned int temp_memory_required; - - int max_frame_size; -} stb_vorbis_info; - -typedef struct -{ - char *vendor; - - int comment_list_length; - char **comment_list; -} stb_vorbis_comment; - -// get general information about the file -FAUDIOAPI stb_vorbis_info stb_vorbis_get_info(stb_vorbis *f); - -// get ogg comments -FAUDIOAPI stb_vorbis_comment stb_vorbis_get_comment(stb_vorbis *f); - -// get the last error detected (clears it, too) -FAUDIOAPI int stb_vorbis_get_error(stb_vorbis *f); - -// close an ogg vorbis file and free all memory in use -FAUDIOAPI void stb_vorbis_close(stb_vorbis *f); - -// this function returns the offset (in samples) from the beginning of the -// file that will be returned by the next decode, if it is known, or -1 -// otherwise. after a flush_pushdata() call, this may take a while before -// it becomes valid again. -// NOT WORKING YET after a seek with PULLDATA API -FAUDIOAPI int stb_vorbis_get_sample_offset(stb_vorbis *f); - -// returns the current seek point within the file, or offset from the beginning -// of the memory buffer. In pushdata mode it returns 0. -FAUDIOAPI unsigned int stb_vorbis_get_file_offset(stb_vorbis *f); - -/////////// PUSHDATA API - -#ifndef STB_VORBIS_NO_PUSHDATA_API - -// this API allows you to get blocks of data from any source and hand -// them to stb_vorbis. you have to buffer them; stb_vorbis will tell -// you how much it used, and you have to give it the rest next time; -// and stb_vorbis may not have enough data to work with and you will -// need to give it the same data again PLUS more. Note that the Vorbis -// specification does not bound the size of an individual frame. - -extern stb_vorbis *stb_vorbis_open_pushdata( - const unsigned char * datablock, int datablock_length_in_bytes, - int *datablock_memory_consumed_in_bytes, - int *error, - const stb_vorbis_alloc *alloc_buffer); -// create a vorbis decoder by passing in the initial data block containing -// the ogg&vorbis headers (you don't need to do parse them, just provide -// the first N bytes of the file--you're told if it's not enough, see below) -// on success, returns an stb_vorbis *, does not set error, returns the amount of -// data parsed/consumed on this call in *datablock_memory_consumed_in_bytes; -// on failure, returns NULL on error and sets *error, does not change *datablock_memory_consumed -// if returns NULL and *error is VORBIS_need_more_data, then the input block was -// incomplete and you need to pass in a larger block from the start of the file - -extern int stb_vorbis_decode_frame_pushdata( - stb_vorbis *f, - const unsigned char *datablock, int datablock_length_in_bytes, - int *channels, // place to write number of float * buffers - float ***output, // place to write float ** array of float * buffers - int *samples // place to write number of output samples - ); -// decode a frame of audio sample data if possible from the passed-in data block -// -// return value: number of bytes we used from datablock -// -// possible cases: -// 0 bytes used, 0 samples output (need more data) -// N bytes used, 0 samples output (resynching the stream, keep going) -// N bytes used, M samples output (one frame of data) -// note that after opening a file, you will ALWAYS get one N-bytes,0-sample -// frame, because Vorbis always "discards" the first frame. -// -// Note that on resynch, stb_vorbis will rarely consume all of the buffer, -// instead only datablock_length_in_bytes-3 or less. This is because it wants -// to avoid missing parts of a page header if they cross a datablock boundary, -// without writing state-machiney code to record a partial detection. -// -// The number of channels returned are stored in *channels (which can be -// NULL--it is always the same as the number of channels reported by -// get_info). *output will contain an array of float* buffers, one per -// channel. In other words, (*output)[0][0] contains the first sample from -// the first channel, and (*output)[1][0] contains the first sample from -// the second channel. - -extern void stb_vorbis_flush_pushdata(stb_vorbis *f); -// inform stb_vorbis that your next datablock will not be contiguous with -// previous ones (e.g. you've seeked in the data); future attempts to decode -// frames will cause stb_vorbis to resynchronize (as noted above), and -// once it sees a valid Ogg page (typically 4-8KB, as large as 64KB), it -// will begin decoding the _next_ frame. -// -// if you want to seek using pushdata, you need to seek in your file, then -// call stb_vorbis_flush_pushdata(), then start calling decoding, then once -// decoding is returning you data, call stb_vorbis_get_sample_offset, and -// if you don't like the result, seek your file again and repeat. -#endif - - -////////// PULLING INPUT API - -#ifndef STB_VORBIS_NO_PULLDATA_API -// This API assumes stb_vorbis is allowed to pull data from a source-- -// either a block of memory containing the _entire_ vorbis stream, or a -// FILE * that you or it create, or possibly some other reading mechanism -// if you go modify the source to replace the FILE * case with some kind -// of callback to your code. (But if you don't support seeking, you may -// just want to go ahead and use pushdata.) - -#if !defined(STB_VORBIS_NO_STDIO) && !defined(STB_VORBIS_NO_INTEGER_CONVERSION) -extern int stb_vorbis_decode_filename(const char *filename, int *channels, int *sample_rate, short **output); -#endif -#if !defined(STB_VORBIS_NO_INTEGER_CONVERSION) -extern int stb_vorbis_decode_memory(const unsigned char *mem, int len, int *channels, int *sample_rate, short **output); -#endif -// decode an entire file and output the data interleaved into a malloc()ed -// buffer stored in *output. The return value is the number of samples -// decoded, or -1 if the file could not be opened or was not an ogg vorbis file. -// When you're done with it, just free() the pointer returned in *output. - -FAUDIOAPI stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, - int *error, const stb_vorbis_alloc *alloc_buffer); -// create an ogg vorbis decoder from an ogg vorbis stream in memory (note -// this must be the entire stream!). on failure, returns NULL and sets *error - -#ifndef STB_VORBIS_NO_STDIO -FAUDIOAPI stb_vorbis * stb_vorbis_open_filename(const char *filename, - int *error, const stb_vorbis_alloc *alloc_buffer); -// create an ogg vorbis decoder from a filename via fopen(). on failure, -// returns NULL and sets *error (possibly to VORBIS_file_open_failure). - -FAUDIOAPI stb_vorbis * stb_vorbis_open_file(FILE *f, int close_handle_on_close, - int *error, const stb_vorbis_alloc *alloc_buffer); -// create an ogg vorbis decoder from an open FILE *, looking for a stream at -// the _current_ seek point (ftell). on failure, returns NULL and sets *error. -// note that stb_vorbis must "own" this stream; if you seek it in between -// calls to stb_vorbis, it will become confused. Moreover, if you attempt to -// perform stb_vorbis_seek_*() operations on this file, it will assume it -// owns the _entire_ rest of the file after the start point. Use the next -// function, stb_vorbis_open_file_section(), to limit it. - -FAUDIOAPI stb_vorbis * stb_vorbis_open_file_section(FILE *f, int close_handle_on_close, - int *error, const stb_vorbis_alloc *alloc_buffer, unsigned int len); -// create an ogg vorbis decoder from an open FILE *, looking for a stream at -// the _current_ seek point (ftell); the stream will be of length 'len' bytes. -// on failure, returns NULL and sets *error. note that stb_vorbis must "own" -// this stream; if you seek it in between calls to stb_vorbis, it will become -// confused. -#endif - -FAUDIOAPI int stb_vorbis_seek_frame(stb_vorbis *f, unsigned int sample_number); -FAUDIOAPI int stb_vorbis_seek(stb_vorbis *f, unsigned int sample_number); -// these functions seek in the Vorbis file to (approximately) 'sample_number'. -// after calling seek_frame(), the next call to get_frame_*() will include -// the specified sample. after calling stb_vorbis_seek(), the next call to -// stb_vorbis_get_samples_* will start with the specified sample. If you -// do not need to seek to EXACTLY the target sample when using get_samples_*, -// you can also use seek_frame(). - -FAUDIOAPI int stb_vorbis_seek_start(stb_vorbis *f); -// this function is equivalent to stb_vorbis_seek(f,0) - -FAUDIOAPI unsigned int stb_vorbis_stream_length_in_samples(stb_vorbis *f); -FAUDIOAPI float stb_vorbis_stream_length_in_seconds(stb_vorbis *f); -// these functions return the total length of the vorbis stream - -FAUDIOAPI int stb_vorbis_get_frame_float(stb_vorbis *f, int *channels, float ***output); -// decode the next frame and return the number of samples. the number of -// channels returned are stored in *channels (which can be NULL--it is always -// the same as the number of channels reported by get_info). *output will -// contain an array of float* buffers, one per channel. These outputs will -// be overwritten on the next call to stb_vorbis_get_frame_*. -// -// You generally should not intermix calls to stb_vorbis_get_frame_*() -// and stb_vorbis_get_samples_*(), since the latter calls the former. - -#ifndef STB_VORBIS_NO_INTEGER_CONVERSION -extern int stb_vorbis_get_frame_short_interleaved(stb_vorbis *f, int num_c, short *buffer, int num_shorts); -extern int stb_vorbis_get_frame_short (stb_vorbis *f, int num_c, short **buffer, int num_samples); -#endif -// decode the next frame and return the number of *samples* per channel. -// Note that for interleaved data, you pass in the number of shorts (the -// size of your array), but the return value is the number of samples per -// channel, not the total number of samples. -// -// The data is coerced to the number of channels you request according to the -// channel coercion rules (see below). You must pass in the size of your -// buffer(s) so that stb_vorbis will not overwrite the end of the buffer. -// The maximum buffer size needed can be gotten from get_info(); however, -// the Vorbis I specification implies an absolute maximum of 4096 samples -// per channel. - -// Channel coercion rules: -// Let M be the number of channels requested, and N the number of channels present, -// and Cn be the nth channel; let stereo L be the sum of all L and center channels, -// and stereo R be the sum of all R and center channels (channel assignment from the -// vorbis spec). -// M N output -// 1 k sum(Ck) for all k -// 2 * stereo L, stereo R -// k l k > l, the first l channels, then 0s -// k l k <= l, the first k channels -// Note that this is not _good_ surround etc. mixing at all! It's just so -// you get something useful. - -FAUDIOAPI int stb_vorbis_get_samples_float_interleaved(stb_vorbis *f, int channels, float *buffer, int num_floats); -FAUDIOAPI int stb_vorbis_get_samples_float(stb_vorbis *f, int channels, float **buffer, int num_samples); -// gets num_samples samples, not necessarily on a frame boundary--this requires -// buffering so you have to supply the buffers. DOES NOT APPLY THE COERCION RULES. -// Returns the number of samples stored per channel; it may be less than requested -// at the end of the file. If there are no more samples in the file, returns 0. - -#ifndef STB_VORBIS_NO_INTEGER_CONVERSION -extern int stb_vorbis_get_samples_short_interleaved(stb_vorbis *f, int channels, short *buffer, int num_shorts); -extern int stb_vorbis_get_samples_short(stb_vorbis *f, int channels, short **buffer, int num_samples); -#endif -// gets num_samples samples, not necessarily on a frame boundary--this requires -// buffering so you have to supply the buffers. Applies the coercion rules above -// to produce 'channels' channels. Returns the number of samples stored per channel; -// it may be less than requested at the end of the file. If there are no more -// samples in the file, returns 0. - -#endif - -//////// ERROR CODES - -enum STBVorbisError -{ - VORBIS__no_error, - - VORBIS_need_more_data=1, // not a real error - - VORBIS_invalid_api_mixing, // can't mix API modes - VORBIS_outofmem, // not enough memory - VORBIS_feature_not_supported, // uses floor 0 - VORBIS_too_many_channels, // STB_VORBIS_MAX_CHANNELS is too small - VORBIS_file_open_failure, // fopen() failed - VORBIS_seek_without_length, // can't seek in unknown-length file - - VORBIS_unexpected_eof=10, // file is truncated? - VORBIS_seek_invalid, // seek past EOF - - // decoding errors (corrupt/invalid stream) -- you probably - // don't care about the exact details of these - - // vorbis errors: - VORBIS_invalid_setup=20, - VORBIS_invalid_stream, - - // ogg errors: - VORBIS_missing_capture_pattern=30, - VORBIS_invalid_stream_structure_version, - VORBIS_continued_packet_flag_invalid, - VORBIS_incorrect_stream_serial_number, - VORBIS_invalid_first_page, - VORBIS_bad_packet_type, - VORBIS_cant_find_last_page, - VORBIS_seek_failed, - VORBIS_ogg_skeleton_not_supported -}; - - -#ifdef __cplusplus -} -#endif - -#endif // STB_VORBIS_INCLUDE_STB_VORBIS_H -// -// HEADER ENDS HERE -// -////////////////////////////////////////////////////////////////////////////// - -#ifndef STB_VORBIS_HEADER_ONLY - -// global configuration settings (e.g. set these in the project/makefile), -// or just set them in this file at the top (although ideally the first few -// should be visible when the header file is compiled too, although it's not -// crucial) - -// STB_VORBIS_NO_PUSHDATA_API -// does not compile the code for the various stb_vorbis_*_pushdata() -// functions -// #define STB_VORBIS_NO_PUSHDATA_API - -// STB_VORBIS_NO_PULLDATA_API -// does not compile the code for the non-pushdata APIs -// #define STB_VORBIS_NO_PULLDATA_API - -// STB_VORBIS_NO_STDIO -// does not compile the code for the APIs that use FILE *s internally -// or externally (implied by STB_VORBIS_NO_PULLDATA_API) -// #define STB_VORBIS_NO_STDIO - -// STB_VORBIS_NO_INTEGER_CONVERSION -// does not compile the code for converting audio sample data from -// float to integer (implied by STB_VORBIS_NO_PULLDATA_API) -// #define STB_VORBIS_NO_INTEGER_CONVERSION - -// STB_VORBIS_NO_FAST_SCALED_FLOAT -// does not use a fast float-to-int trick to accelerate float-to-int on -// most platforms which requires endianness be defined correctly. -//#define STB_VORBIS_NO_FAST_SCALED_FLOAT - - -// STB_VORBIS_MAX_CHANNELS [number] -// globally define this to the maximum number of channels you need. -// The spec does not put a restriction on channels except that -// the count is stored in a byte, so 255 is the hard limit. -// Reducing this saves about 16 bytes per value, so using 16 saves -// (255-16)*16 or around 4KB. Plus anything other memory usage -// I forgot to account for. Can probably go as low as 8 (7.1 audio), -// 6 (5.1 audio), or 2 (stereo only). -#ifndef STB_VORBIS_MAX_CHANNELS -#define STB_VORBIS_MAX_CHANNELS 16 // enough for anyone? -#endif - -// STB_VORBIS_PUSHDATA_CRC_COUNT [number] -// after a flush_pushdata(), stb_vorbis begins scanning for the -// next valid page, without backtracking. when it finds something -// that looks like a page, it streams through it and verifies its -// CRC32. Should that validation fail, it keeps scanning. But it's -// possible that _while_ streaming through to check the CRC32 of -// one candidate page, it sees another candidate page. This #define -// determines how many "overlapping" candidate pages it can search -// at once. Note that "real" pages are typically ~4KB to ~8KB, whereas -// garbage pages could be as big as 64KB, but probably average ~16KB. -// So don't hose ourselves by scanning an apparent 64KB page and -// missing a ton of real ones in the interim; so minimum of 2 -#ifndef STB_VORBIS_PUSHDATA_CRC_COUNT -#define STB_VORBIS_PUSHDATA_CRC_COUNT 4 -#endif - -// STB_VORBIS_FAST_HUFFMAN_LENGTH [number] -// sets the log size of the huffman-acceleration table. Maximum -// supported value is 24. with larger numbers, more decodings are O(1), -// but the table size is larger so worse cache missing, so you'll have -// to probe (and try multiple ogg vorbis files) to find the sweet spot. -#ifndef STB_VORBIS_FAST_HUFFMAN_LENGTH -#define STB_VORBIS_FAST_HUFFMAN_LENGTH 10 -#endif - -// STB_VORBIS_FAST_BINARY_LENGTH [number] -// sets the log size of the binary-search acceleration table. this -// is used in similar fashion to the fast-huffman size to set initial -// parameters for the binary search - -// STB_VORBIS_FAST_HUFFMAN_INT -// The fast huffman tables are much more efficient if they can be -// stored as 16-bit results instead of 32-bit results. This restricts -// the codebooks to having only 65535 possible outcomes, though. -// (At least, accelerated by the huffman table.) -#ifndef STB_VORBIS_FAST_HUFFMAN_INT -#define STB_VORBIS_FAST_HUFFMAN_SHORT -#endif - -// STB_VORBIS_NO_HUFFMAN_BINARY_SEARCH -// If the 'fast huffman' search doesn't succeed, then stb_vorbis falls -// back on binary searching for the correct one. This requires storing -// extra tables with the huffman codes in sorted order. Defining this -// symbol trades off space for speed by forcing a linear search in the -// non-fast case, except for "sparse" codebooks. -// #define STB_VORBIS_NO_HUFFMAN_BINARY_SEARCH - -// STB_VORBIS_DIVIDES_IN_RESIDUE -// stb_vorbis precomputes the result of the scalar residue decoding -// that would otherwise require a divide per chunk. you can trade off -// space for time by defining this symbol. -// #define STB_VORBIS_DIVIDES_IN_RESIDUE - -// STB_VORBIS_DIVIDES_IN_CODEBOOK -// vorbis VQ codebooks can be encoded two ways: with every case explicitly -// stored, or with all elements being chosen from a small range of values, -// and all values possible in all elements. By default, stb_vorbis expands -// this latter kind out to look like the former kind for ease of decoding, -// because otherwise an integer divide-per-vector-element is required to -// unpack the index. If you define STB_VORBIS_DIVIDES_IN_CODEBOOK, you can -// trade off storage for speed. -//#define STB_VORBIS_DIVIDES_IN_CODEBOOK - -#ifdef STB_VORBIS_CODEBOOK_SHORTS -#error "STB_VORBIS_CODEBOOK_SHORTS is no longer supported as it produced incorrect results for some input formats" -#endif - -// STB_VORBIS_DIVIDE_TABLE -// this replaces small integer divides in the floor decode loop with -// table lookups. made less than 1% difference, so disabled by default. - -// STB_VORBIS_NO_INLINE_DECODE -// disables the inlining of the scalar codebook fast-huffman decode. -// might save a little codespace; useful for debugging -// #define STB_VORBIS_NO_INLINE_DECODE - -// STB_VORBIS_NO_DEFER_FLOOR -// Normally we only decode the floor without synthesizing the actual -// full curve. We can instead synthesize the curve immediately. This -// requires more memory and is very likely slower, so I don't think -// you'd ever want to do it except for debugging. -// #define STB_VORBIS_NO_DEFER_FLOOR - - - - -////////////////////////////////////////////////////////////////////////////// - -#ifdef STB_VORBIS_NO_PULLDATA_API - #define STB_VORBIS_NO_INTEGER_CONVERSION - #define STB_VORBIS_NO_STDIO -#endif - -#if defined(STB_VORBIS_NO_CRT) && !defined(STB_VORBIS_NO_STDIO) - #define STB_VORBIS_NO_STDIO 1 -#endif - -#ifndef STB_VORBIS_NO_INTEGER_CONVERSION -#ifndef STB_VORBIS_NO_FAST_SCALED_FLOAT - - // only need endianness for fast-float-to-int, which we don't - // use for pushdata - - #ifndef STB_VORBIS_BIG_ENDIAN - #define STB_VORBIS_ENDIAN 0 - #else - #define STB_VORBIS_ENDIAN 1 - #endif - -#endif -#endif - - -#if 0 /* FAudio change! */ -#ifndef STB_VORBIS_NO_STDIO -#include -#endif - -#ifndef STB_VORBIS_NO_CRT - #include - #include - #include - #include - - // find definition of alloca if it's not in stdlib.h: - #if defined(_MSC_VER) || defined(__MINGW32__) - #include - #endif - #if defined(__linux__) || defined(__linux) || defined(__EMSCRIPTEN__) || defined(__NEWLIB__) - #include - #endif -#else // STB_VORBIS_NO_CRT - #define NULL 0 - #define malloc(s) 0 - #define free(s) ((void) 0) - #define realloc(s) 0 -#endif // STB_VORBIS_NO_CRT -#endif - -#include - -#ifdef __MINGW32__ - // eff you mingw: - // "fixed": - // http://sourceforge.net/p/mingw-w64/mailman/message/32882927/ - // "no that broke the build, reverted, who cares about C": - // http://sourceforge.net/p/mingw-w64/mailman/message/32890381/ - #ifdef __forceinline - #undef __forceinline - #endif - #define __forceinline - #ifndef alloca - #define alloca __builtin_alloca - #endif -#elif !defined(_MSC_VER) - #if __GNUC__ - #define __forceinline inline - #else - #define __forceinline - #endif -#endif - -#if STB_VORBIS_MAX_CHANNELS > 256 -#error "Value of STB_VORBIS_MAX_CHANNELS outside of allowed range" -#endif - -#if STB_VORBIS_FAST_HUFFMAN_LENGTH > 24 -#error "Value of STB_VORBIS_FAST_HUFFMAN_LENGTH outside of allowed range" -#endif - - -#if 0 -#include -#define CHECK(f) _CrtIsValidHeapPointer(f->channel_buffers[1]) -#else -#define CHECK(f) ((void) 0) -#endif - -#define MAX_BLOCKSIZE_LOG 13 // from specification -#define MAX_BLOCKSIZE (1 << MAX_BLOCKSIZE_LOG) - - -typedef unsigned char uint8; -typedef signed char int8; -typedef unsigned short uint16; -typedef signed short int16; -typedef unsigned int uint32; -typedef signed int int32; - -#ifndef TRUE -#define TRUE 1 -#define FALSE 0 -#endif - -typedef float codetype; - -// @NOTE -// -// Some arrays below are tagged "//varies", which means it's actually -// a variable-sized piece of data, but rather than malloc I assume it's -// small enough it's better to just allocate it all together with the -// main thing -// -// Most of the variables are specified with the smallest size I could pack -// them into. It might give better performance to make them all full-sized -// integers. It should be safe to freely rearrange the structures or change -// the sizes larger--nothing relies on silently truncating etc., nor the -// order of variables. - -#define FAST_HUFFMAN_TABLE_SIZE (1 << STB_VORBIS_FAST_HUFFMAN_LENGTH) -#define FAST_HUFFMAN_TABLE_MASK (FAST_HUFFMAN_TABLE_SIZE - 1) - -typedef struct -{ - int dimensions, entries; - uint8 *codeword_lengths; - float minimum_value; - float delta_value; - uint8 value_bits; - uint8 lookup_type; - uint8 sequence_p; - uint8 sparse; - uint32 lookup_values; - codetype *multiplicands; - uint32 *codewords; - #ifdef STB_VORBIS_FAST_HUFFMAN_SHORT - int16 fast_huffman[FAST_HUFFMAN_TABLE_SIZE]; - #else - int32 fast_huffman[FAST_HUFFMAN_TABLE_SIZE]; - #endif - uint32 *sorted_codewords; - int *sorted_values; - int sorted_entries; -} Codebook; - -typedef struct -{ - uint8 order; - uint16 rate; - uint16 bark_map_size; - uint8 amplitude_bits; - uint8 amplitude_offset; - uint8 number_of_books; - uint8 book_list[16]; // varies -} Floor0; - -typedef struct -{ - uint8 partitions; - uint8 partition_class_list[32]; // varies - uint8 class_dimensions[16]; // varies - uint8 class_subclasses[16]; // varies - uint8 class_masterbooks[16]; // varies - int16 subclass_books[16][8]; // varies - uint16 Xlist[31*8+2]; // varies - uint8 sorted_order[31*8+2]; - uint8 neighbors[31*8+2][2]; - uint8 floor1_multiplier; - uint8 rangebits; - int values; -} Floor1; - -typedef union -{ - Floor0 floor0; - Floor1 floor1; -} Floor; - -typedef struct -{ - uint32 begin, end; - uint32 part_size; - uint8 classifications; - uint8 classbook; - uint8 **classdata; - int16 (*residue_books)[8]; -} Residue; - -typedef struct -{ - uint8 magnitude; - uint8 angle; - uint8 mux; -} MappingChannel; - -typedef struct -{ - uint16 coupling_steps; - MappingChannel *chan; - uint8 submaps; - uint8 submap_floor[15]; // varies - uint8 submap_residue[15]; // varies -} Mapping; - -typedef struct -{ - uint8 blockflag; - uint8 mapping; - uint16 windowtype; - uint16 transformtype; -} Mode; - -typedef struct -{ - uint32 goal_crc; // expected crc if match - int bytes_left; // bytes left in packet - uint32 crc_so_far; // running crc - int bytes_done; // bytes processed in _current_ chunk - uint32 sample_loc; // granule pos encoded in page -} CRCscan; - -typedef struct -{ - uint32 page_start, page_end; - uint32 last_decoded_sample; -} ProbedPage; - -struct stb_vorbis -{ - // user-accessible info - unsigned int sample_rate; - int channels; - - unsigned int setup_memory_required; - unsigned int temp_memory_required; - unsigned int setup_temp_memory_required; - - char *vendor; - int comment_list_length; - char **comment_list; - - // input config -#ifndef STB_VORBIS_NO_STDIO - FILE *f; - uint32 f_start; - int close_on_free; -#endif - - uint8 *stream; - uint8 *stream_start; - uint8 *stream_end; - - uint32 stream_len; - - uint8 push_mode; - - // the page to seek to when seeking to start, may be zero - uint32 first_audio_page_offset; - - // p_first is the page on which the first audio packet ends - // (but not necessarily the page on which it starts) - ProbedPage p_first, p_last; - - // memory management - stb_vorbis_alloc alloc; - int setup_offset; - int temp_offset; - - // run-time results - int eof; - enum STBVorbisError error; - - // user-useful data - - // header info - int blocksize[2]; - int blocksize_0, blocksize_1; - int codebook_count; - Codebook *codebooks; - int floor_count; - uint16 floor_types[64]; // varies - Floor *floor_config; - int residue_count; - uint16 residue_types[64]; // varies - Residue *residue_config; - int mapping_count; - Mapping *mapping; - int mode_count; - Mode mode_config[64]; // varies - - uint32 total_samples; - - // decode buffer - float *channel_buffers[STB_VORBIS_MAX_CHANNELS]; - float *outputs [STB_VORBIS_MAX_CHANNELS]; - - float *previous_window[STB_VORBIS_MAX_CHANNELS]; - int previous_length; - - #ifndef STB_VORBIS_NO_DEFER_FLOOR - int16 *finalY[STB_VORBIS_MAX_CHANNELS]; - #else - float *floor_buffers[STB_VORBIS_MAX_CHANNELS]; - #endif - - uint32 current_loc; // sample location of next frame to decode - int current_loc_valid; - - // per-blocksize precomputed data - - // twiddle factors - float *A[2],*B[2],*C[2]; - float *window[2]; - uint16 *bit_reverse[2]; - - // current page/packet/segment streaming info - uint32 serial; // stream serial number for verification - int last_page; - int segment_count; - uint8 segments[255]; - uint8 page_flag; - uint8 bytes_in_seg; - uint8 first_decode; - int next_seg; - int last_seg; // flag that we're on the last segment - int last_seg_which; // what was the segment number of the last seg? - uint32 acc; - int valid_bits; - int packet_bytes; - int end_seg_with_known_loc; - uint32 known_loc_for_packet; - int discard_samples_deferred; - uint32 samples_output; - - // push mode scanning - int page_crc_tests; // only in push_mode: number of tests active; -1 if not searching -#ifndef STB_VORBIS_NO_PUSHDATA_API - CRCscan scan[STB_VORBIS_PUSHDATA_CRC_COUNT]; -#endif - - // sample-access - int channel_buffer_start; - int channel_buffer_end; -}; - -#if defined(STB_VORBIS_NO_PUSHDATA_API) - #define IS_PUSH_MODE(f) FALSE -#elif defined(STB_VORBIS_NO_PULLDATA_API) - #define IS_PUSH_MODE(f) TRUE -#else - #define IS_PUSH_MODE(f) ((f)->push_mode) -#endif - -typedef struct stb_vorbis vorb; - -static int error(vorb *f, enum STBVorbisError e) -{ - f->error = e; - if (!f->eof && e != VORBIS_need_more_data) { - f->error=e; // breakpoint for debugging - } - return 0; -} - - -// these functions are used for allocating temporary memory -// while decoding. if you can afford the stack space, use -// alloca(); otherwise, provide a temp buffer and it will -// allocate out of those. - -#define array_size_required(count,size) (count*(sizeof(void *)+(size))) - -#define temp_alloc(f,size) (f->alloc.alloc_buffer ? setup_temp_malloc(f,size) : FAudio_alloca(size)) -#define temp_free(f,p) FAudio_dealloca(p) -#define temp_alloc_save(f) ((f)->temp_offset) -#define temp_alloc_restore(f,p) ((f)->temp_offset = (p)) - -#define temp_block_array(f,count,size) make_block_array(temp_alloc(f,array_size_required(count,size)), count, size) - -// given a sufficiently large block of memory, make an array of pointers to subblocks of it -static void *make_block_array(void *mem, int count, int size) -{ - int i; - void ** p = (void **) mem; - char *q = (char *) (p + count); - for (i=0; i < count; ++i) { - p[i] = q; - q += size; - } - return p; -} - -// FIXME: https://github.com/nothings/stb/pull/1005 -flibit -static char zeromalloc = 0; - -static void *setup_malloc(vorb *f, int sz) -{ - sz = (sz+7) & ~7; // round up to nearest 8 for alignment of future allocs. - f->setup_memory_required += sz; - if (f->alloc.alloc_buffer) { - void *p = (char *) f->alloc.alloc_buffer + f->setup_offset; - if (f->setup_offset + sz > f->temp_offset) return NULL; - f->setup_offset += sz; - return p; - } - return sz ? malloc(sz) : &zeromalloc; -} - -static void setup_free(vorb *f, void *p) -{ - if (f->alloc.alloc_buffer) return; // do nothing; setup mem is a stack - if (p != &zeromalloc) - free(p); -} - -static void *setup_temp_malloc(vorb *f, int sz) -{ - sz = (sz+7) & ~7; // round up to nearest 8 for alignment of future allocs. - if (f->alloc.alloc_buffer) { - if (f->temp_offset - sz < f->setup_offset) return NULL; - f->temp_offset -= sz; - return (char *) f->alloc.alloc_buffer + f->temp_offset; - } - return malloc(sz); -} - -static void setup_temp_free(vorb *f, void *p, int sz) -{ - if (f->alloc.alloc_buffer) { - f->temp_offset += (sz+7)&~7; - return; - } - free(p); -} - -#define CRC32_POLY 0x04c11db7 // from spec - -static uint32 crc_table[256]; -static void crc32_init(void) -{ - int i,j; - uint32 s; - for(i=0; i < 256; i++) { - for (s=(uint32) i << 24, j=0; j < 8; ++j) - s = (s << 1) ^ (s >= (1U<<31) ? CRC32_POLY : 0); - crc_table[i] = s; - } -} - -static __forceinline uint32 crc32_update(uint32 crc, uint8 byte) -{ - return (crc << 8) ^ crc_table[byte ^ (crc >> 24)]; -} - - -// used in setup, and for huffman that doesn't go fast path -static unsigned int bit_reverse(unsigned int n) -{ - n = ((n & 0xAAAAAAAA) >> 1) | ((n & 0x55555555) << 1); - n = ((n & 0xCCCCCCCC) >> 2) | ((n & 0x33333333) << 2); - n = ((n & 0xF0F0F0F0) >> 4) | ((n & 0x0F0F0F0F) << 4); - n = ((n & 0xFF00FF00) >> 8) | ((n & 0x00FF00FF) << 8); - return (n >> 16) | (n << 16); -} - -static float square(float x) -{ - return x*x; -} - -// this is a weird definition of log2() for which log2(1) = 1, log2(2) = 2, log2(4) = 3 -// as required by the specification. fast(?) implementation from stb.h -// @OPTIMIZE: called multiple times per-packet with "constants"; move to setup -static int ilog(int32 n) -{ - static signed char log2_4[16] = { 0,1,2,2,3,3,3,3,4,4,4,4,4,4,4,4 }; - - if (n < 0) return 0; // signed n returns 0 - - // 2 compares if n < 16, 3 compares otherwise (4 if signed or n > 1<<29) - if (n < (1 << 14)) - if (n < (1 << 4)) return 0 + log2_4[n ]; - else if (n < (1 << 9)) return 5 + log2_4[n >> 5]; - else return 10 + log2_4[n >> 10]; - else if (n < (1 << 24)) - if (n < (1 << 19)) return 15 + log2_4[n >> 15]; - else return 20 + log2_4[n >> 20]; - else if (n < (1 << 29)) return 25 + log2_4[n >> 25]; - else return 30 + log2_4[n >> 30]; -} - -#ifndef M_PI - #define M_PI 3.14159265358979323846264f // from CRC -#endif - -// code length assigned to a value with no huffman encoding -#define NO_CODE 255 - -/////////////////////// LEAF SETUP FUNCTIONS ////////////////////////// -// -// these functions are only called at setup, and only a few times -// per file - -static float float32_unpack(uint32 x) -{ - // from the specification - uint32 mantissa = x & 0x1fffff; - uint32 sign = x & 0x80000000; - uint32 exp = (x & 0x7fe00000) >> 21; - double res = sign ? -(double)mantissa : (double)mantissa; - return (float) ldexp((float)res, exp-788); -} - - -// zlib & jpeg huffman tables assume that the output symbols -// can either be arbitrarily arranged, or have monotonically -// increasing frequencies--they rely on the lengths being sorted; -// this makes for a very simple generation algorithm. -// vorbis allows a huffman table with non-sorted lengths. This -// requires a more sophisticated construction, since symbols in -// order do not map to huffman codes "in order". -static void add_entry(Codebook *c, uint32 huff_code, int symbol, int count, int len, uint32 *values) -{ - if (!c->sparse) { - c->codewords [symbol] = huff_code; - } else { - c->codewords [count] = huff_code; - c->codeword_lengths[count] = len; - values [count] = symbol; - } -} - -static int compute_codewords(Codebook *c, uint8 *len, int n, uint32 *values) -{ - int i,k,m=0; - uint32 available[32]; - - memset(available, 0, sizeof(available)); - // find the first entry - for (k=0; k < n; ++k) if (len[k] < NO_CODE) break; - if (k == n) { assert(c->sorted_entries == 0); return TRUE; } - // add to the list - add_entry(c, 0, k, m++, len[k], values); - // add all available leaves - for (i=1; i <= len[k]; ++i) - available[i] = 1U << (32-i); - // note that the above code treats the first case specially, - // but it's really the same as the following code, so they - // could probably be combined (except the initial code is 0, - // and I use 0 in available[] to mean 'empty') - for (i=k+1; i < n; ++i) { - uint32 res; - int z = len[i], y; - if (z == NO_CODE) continue; - // find lowest available leaf (should always be earliest, - // which is what the specification calls for) - // note that this property, and the fact we can never have - // more than one free leaf at a given level, isn't totally - // trivial to prove, but it seems true and the assert never - // fires, so! - while (z > 0 && !available[z]) --z; - if (z == 0) { return FALSE; } - res = available[z]; - assert(z >= 0 && z < 32); - available[z] = 0; - add_entry(c, bit_reverse(res), i, m++, len[i], values); - // propagate availability up the tree - if (z != len[i]) { - assert(len[i] >= 0 && len[i] < 32); - for (y=len[i]; y > z; --y) { - assert(available[y] == 0); - available[y] = res + (1 << (32-y)); - } - } - } - return TRUE; -} - -// accelerated huffman table allows fast O(1) match of all symbols -// of length <= STB_VORBIS_FAST_HUFFMAN_LENGTH -static void compute_accelerated_huffman(Codebook *c) -{ - int i, len; - for (i=0; i < FAST_HUFFMAN_TABLE_SIZE; ++i) - c->fast_huffman[i] = -1; - - len = c->sparse ? c->sorted_entries : c->entries; - #ifdef STB_VORBIS_FAST_HUFFMAN_SHORT - if (len > 32767) len = 32767; // largest possible value we can encode! - #endif - for (i=0; i < len; ++i) { - if (c->codeword_lengths[i] <= STB_VORBIS_FAST_HUFFMAN_LENGTH) { - uint32 z = c->sparse ? bit_reverse(c->sorted_codewords[i]) : c->codewords[i]; - // set table entries for all bit combinations in the higher bits - while (z < FAST_HUFFMAN_TABLE_SIZE) { - c->fast_huffman[z] = i; - z += 1 << c->codeword_lengths[i]; - } - } - } -} - -#ifdef _MSC_VER -#define STBV_CDECL __cdecl -#else -#define STBV_CDECL -#endif - -static int STBV_CDECL uint32_compare(const void *p, const void *q) -{ - uint32 x = * (uint32 *) p; - uint32 y = * (uint32 *) q; - return x < y ? -1 : x > y; -} - -static int include_in_sort(Codebook *c, uint8 len) -{ - if (c->sparse) { assert(len != NO_CODE); return TRUE; } - if (len == NO_CODE) return FALSE; - if (len > STB_VORBIS_FAST_HUFFMAN_LENGTH) return TRUE; - return FALSE; -} - -// if the fast table above doesn't work, we want to binary -// search them... need to reverse the bits -static void compute_sorted_huffman(Codebook *c, uint8 *lengths, uint32 *values) -{ - int i, len; - // build a list of all the entries - // OPTIMIZATION: don't include the short ones, since they'll be caught by FAST_HUFFMAN. - // this is kind of a frivolous optimization--I don't see any performance improvement, - // but it's like 4 extra lines of code, so. - if (!c->sparse) { - int k = 0; - for (i=0; i < c->entries; ++i) - if (include_in_sort(c, lengths[i])) - c->sorted_codewords[k++] = bit_reverse(c->codewords[i]); - assert(k == c->sorted_entries); - } else { - for (i=0; i < c->sorted_entries; ++i) - c->sorted_codewords[i] = bit_reverse(c->codewords[i]); - } - - qsort(c->sorted_codewords, c->sorted_entries, sizeof(c->sorted_codewords[0]), uint32_compare); - c->sorted_codewords[c->sorted_entries] = 0xffffffff; - - len = c->sparse ? c->sorted_entries : c->entries; - // now we need to indicate how they correspond; we could either - // #1: sort a different data structure that says who they correspond to - // #2: for each sorted entry, search the original list to find who corresponds - // #3: for each original entry, find the sorted entry - // #1 requires extra storage, #2 is slow, #3 can use binary search! - for (i=0; i < len; ++i) { - int huff_len = c->sparse ? lengths[values[i]] : lengths[i]; - if (include_in_sort(c,huff_len)) { - uint32 code = bit_reverse(c->codewords[i]); - int x=0, n=c->sorted_entries; - while (n > 1) { - // invariant: sc[x] <= code < sc[x+n] - int m = x + (n >> 1); - if (c->sorted_codewords[m] <= code) { - x = m; - n -= (n>>1); - } else { - n >>= 1; - } - } - assert(c->sorted_codewords[x] == code); - if (c->sparse) { - c->sorted_values[x] = values[i]; - c->codeword_lengths[x] = huff_len; - } else { - c->sorted_values[x] = i; - } - } - } -} - -// only run while parsing the header (3 times) -static int vorbis_validate(uint8 *data) -{ - static uint8 vorbis[6] = { 'v', 'o', 'r', 'b', 'i', 's' }; - return memcmp(data, vorbis, 6) == 0; -} - -// called from setup only, once per code book -// (formula implied by specification) -static int lookup1_values(int entries, int dim) -{ - int r = (int) floor(exp((float) log((float) entries) / dim)); - if ((int) floor(pow((float) r+1, dim)) <= entries) // (int) cast for MinGW warning; - ++r; // floor() to avoid _ftol() when non-CRT - if (pow((float) r+1, dim) <= entries) - return -1; - if ((int) floor(pow((float) r, dim)) > entries) - return -1; - return r; -} - -// called twice per file -static void compute_twiddle_factors(int n, float *A, float *B, float *C) -{ - int n4 = n >> 2, n8 = n >> 3; - int k,k2; - - for (k=k2=0; k < n4; ++k,k2+=2) { - A[k2 ] = (float) cos(4*k*M_PI/n); - A[k2+1] = (float) -sin(4*k*M_PI/n); - B[k2 ] = (float) cos((k2+1)*M_PI/n/2) * 0.5f; - B[k2+1] = (float) sin((k2+1)*M_PI/n/2) * 0.5f; - } - for (k=k2=0; k < n8; ++k,k2+=2) { - C[k2 ] = (float) cos(2*(k2+1)*M_PI/n); - C[k2+1] = (float) -sin(2*(k2+1)*M_PI/n); - } -} - -static void compute_window(int n, float *window) -{ - int n2 = n >> 1, i; - for (i=0; i < n2; ++i) - window[i] = (float) sin(0.5 * M_PI * square((float) sin((i - 0 + 0.5) / n2 * 0.5 * M_PI))); -} - -static void compute_bitreverse(int n, uint16 *rev) -{ - int ld = ilog(n) - 1; // ilog is off-by-one from normal definitions - int i, n8 = n >> 3; - for (i=0; i < n8; ++i) - rev[i] = (bit_reverse(i) >> (32-ld+3)) << 2; -} - -static int init_blocksize(vorb *f, int b, int n) -{ - int n2 = n >> 1, n4 = n >> 2, n8 = n >> 3; - f->A[b] = (float *) setup_malloc(f, sizeof(float) * n2); - f->B[b] = (float *) setup_malloc(f, sizeof(float) * n2); - f->C[b] = (float *) setup_malloc(f, sizeof(float) * n4); - if (!f->A[b] || !f->B[b] || !f->C[b]) return error(f, VORBIS_outofmem); - compute_twiddle_factors(n, f->A[b], f->B[b], f->C[b]); - f->window[b] = (float *) setup_malloc(f, sizeof(float) * n2); - if (!f->window[b]) return error(f, VORBIS_outofmem); - compute_window(n, f->window[b]); - f->bit_reverse[b] = (uint16 *) setup_malloc(f, sizeof(uint16) * n8); - if (!f->bit_reverse[b]) return error(f, VORBIS_outofmem); - compute_bitreverse(n, f->bit_reverse[b]); - return TRUE; -} - -static void neighbors(uint16 *x, int n, int *plow, int *phigh) -{ - int low = -1; - int high = 65536; - int i; - for (i=0; i < n; ++i) { - if (x[i] > low && x[i] < x[n]) { *plow = i; low = x[i]; } - if (x[i] < high && x[i] > x[n]) { *phigh = i; high = x[i]; } - } -} - -// this has been repurposed so y is now the original index instead of y -typedef struct -{ - uint16 x,id; -} stbv__floor_ordering; - -static int STBV_CDECL point_compare(const void *p, const void *q) -{ - stbv__floor_ordering *a = (stbv__floor_ordering *) p; - stbv__floor_ordering *b = (stbv__floor_ordering *) q; - return a->x < b->x ? -1 : a->x > b->x; -} - -// -/////////////////////// END LEAF SETUP FUNCTIONS ////////////////////////// - - -#if defined(STB_VORBIS_NO_STDIO) - #define USE_MEMORY(z) TRUE -#else - #define USE_MEMORY(z) ((z)->stream) -#endif - -static uint8 get8(vorb *z) -{ - if (USE_MEMORY(z)) { - if (z->stream >= z->stream_end) { z->eof = TRUE; return 0; } - return *z->stream++; - } - - #ifndef STB_VORBIS_NO_STDIO - { - /* FAudio change! */ - int8 c; - if (fread(&c, 1, 1, z->f) != 1) { z->eof = TRUE; return 0; } - return c; - } - #endif -} - -static uint32 get32(vorb *f) -{ - uint32 x; - x = get8(f); - x += get8(f) << 8; - x += get8(f) << 16; - x += (uint32) get8(f) << 24; - return x; -} - -static int getn(vorb *z, uint8 *data, int n) -{ - if (USE_MEMORY(z)) { - if (z->stream+n > z->stream_end) { z->eof = 1; return 0; } - memcpy(data, z->stream, n); - z->stream += n; - return 1; - } - - #ifndef STB_VORBIS_NO_STDIO - if (fread(data, n, 1, z->f) == 1) - return 1; - else { - z->eof = 1; - return 0; - } - #endif -} - -static void skip(vorb *z, int n) -{ - if (USE_MEMORY(z)) { - z->stream += n; - if (z->stream >= z->stream_end) z->eof = 1; - return; - } - #ifndef STB_VORBIS_NO_STDIO - { - long x = ftell(z->f); - fseek(z->f, x+n, SEEK_SET); - } - #endif -} - -static int set_file_offset(stb_vorbis *f, unsigned int loc) -{ - #ifndef STB_VORBIS_NO_PUSHDATA_API - if (f->push_mode) return 0; - #endif - f->eof = 0; - if (USE_MEMORY(f)) { - if (f->stream_start + loc >= f->stream_end || f->stream_start + loc < f->stream_start) { - f->stream = f->stream_end; - f->eof = 1; - return 0; - } else { - f->stream = f->stream_start + loc; - return 1; - } - } - #ifndef STB_VORBIS_NO_STDIO - if (loc + f->f_start < loc || loc >= 0x80000000) { - loc = 0x7fffffff; - f->eof = 1; - } else { - loc += f->f_start; - } - if (fseek(f->f, loc, SEEK_SET) != -1) /* FAudio change! */ - return 1; - f->eof = 1; - fseek(f->f, f->f_start, SEEK_END); - return 0; - #endif -} - - -static uint8 ogg_page_header[4] = { 0x4f, 0x67, 0x67, 0x53 }; - -static int capture_pattern(vorb *f) -{ - if (0x4f != get8(f)) return FALSE; - if (0x67 != get8(f)) return FALSE; - if (0x67 != get8(f)) return FALSE; - if (0x53 != get8(f)) return FALSE; - return TRUE; -} - -#define PAGEFLAG_continued_packet 1 -#define PAGEFLAG_first_page 2 -#define PAGEFLAG_last_page 4 - -static int start_page_no_capturepattern(vorb *f) -{ - uint32 loc0,loc1,n; - if (f->first_decode && !IS_PUSH_MODE(f)) { - f->p_first.page_start = stb_vorbis_get_file_offset(f) - 4; - } - // stream structure version - if (0 != get8(f)) return error(f, VORBIS_invalid_stream_structure_version); - // header flag - f->page_flag = get8(f); - // absolute granule position - loc0 = get32(f); - loc1 = get32(f); - // @TODO: validate loc0,loc1 as valid positions? - // stream serial number -- vorbis doesn't interleave, so discard - get32(f); - //if (f->serial != get32(f)) return error(f, VORBIS_incorrect_stream_serial_number); - // page sequence number - n = get32(f); - f->last_page = n; - // CRC32 - get32(f); - // page_segments - f->segment_count = get8(f); - if (!getn(f, f->segments, f->segment_count)) - return error(f, VORBIS_unexpected_eof); - // assume we _don't_ know any the sample position of any segments - f->end_seg_with_known_loc = -2; - if (loc0 != ~0U || loc1 != ~0U) { - int i; - // determine which packet is the last one that will complete - for (i=f->segment_count-1; i >= 0; --i) - if (f->segments[i] < 255) - break; - // 'i' is now the index of the _last_ segment of a packet that ends - if (i >= 0) { - f->end_seg_with_known_loc = i; - f->known_loc_for_packet = loc0; - } - } - if (f->first_decode) { - int i,len; - len = 0; - for (i=0; i < f->segment_count; ++i) - len += f->segments[i]; - len += 27 + f->segment_count; - f->p_first.page_end = f->p_first.page_start + len; - f->p_first.last_decoded_sample = loc0; - } - f->next_seg = 0; - return TRUE; -} - -static int start_page(vorb *f) -{ - if (!capture_pattern(f)) return error(f, VORBIS_missing_capture_pattern); - return start_page_no_capturepattern(f); -} - -static int start_packet(vorb *f) -{ - while (f->next_seg == -1) { - if (!start_page(f)) return FALSE; - if (f->page_flag & PAGEFLAG_continued_packet) - return error(f, VORBIS_continued_packet_flag_invalid); - } - f->last_seg = FALSE; - f->valid_bits = 0; - f->packet_bytes = 0; - f->bytes_in_seg = 0; - // f->next_seg is now valid - return TRUE; -} - -static int maybe_start_packet(vorb *f) -{ - if (f->next_seg == -1) { - int x = get8(f); - if (f->eof) return FALSE; // EOF at page boundary is not an error! - if (0x4f != x ) return error(f, VORBIS_missing_capture_pattern); - if (0x67 != get8(f)) return error(f, VORBIS_missing_capture_pattern); - if (0x67 != get8(f)) return error(f, VORBIS_missing_capture_pattern); - if (0x53 != get8(f)) return error(f, VORBIS_missing_capture_pattern); - if (!start_page_no_capturepattern(f)) return FALSE; - if (f->page_flag & PAGEFLAG_continued_packet) { - // set up enough state that we can read this packet if we want, - // e.g. during recovery - f->last_seg = FALSE; - f->bytes_in_seg = 0; - return error(f, VORBIS_continued_packet_flag_invalid); - } - } - return start_packet(f); -} - -static int next_segment(vorb *f) -{ - int len; - if (f->last_seg) return 0; - if (f->next_seg == -1) { - f->last_seg_which = f->segment_count-1; // in case start_page fails - if (!start_page(f)) { f->last_seg = 1; return 0; } - if (!(f->page_flag & PAGEFLAG_continued_packet)) return error(f, VORBIS_continued_packet_flag_invalid); - } - len = f->segments[f->next_seg++]; - if (len < 255) { - f->last_seg = TRUE; - f->last_seg_which = f->next_seg-1; - } - if (f->next_seg >= f->segment_count) - f->next_seg = -1; - assert(f->bytes_in_seg == 0); - f->bytes_in_seg = len; - return len; -} - -#define EOP (-1) -#define INVALID_BITS (-1) - -static int get8_packet_raw(vorb *f) -{ - if (!f->bytes_in_seg) { // CLANG! - if (f->last_seg) return EOP; - else if (!next_segment(f)) return EOP; - } - assert(f->bytes_in_seg > 0); - --f->bytes_in_seg; - ++f->packet_bytes; - return get8(f); -} - -static int get8_packet(vorb *f) -{ - int x = get8_packet_raw(f); - f->valid_bits = 0; - return x; -} - -static int get32_packet(vorb *f) -{ - uint32 x; - x = get8_packet(f); - x += get8_packet(f) << 8; - x += get8_packet(f) << 16; - x += (uint32) get8_packet(f) << 24; - return x; -} - -static void flush_packet(vorb *f) -{ - while (get8_packet_raw(f) != EOP); -} - -// @OPTIMIZE: this is the secondary bit decoder, so it's probably not as important -// as the huffman decoder? -static uint32 get_bits(vorb *f, int n) -{ - uint32 z; - - if (f->valid_bits < 0) return 0; - if (f->valid_bits < n) { - if (n > 24) { - // the accumulator technique below would not work correctly in this case - z = get_bits(f, 24); - z += get_bits(f, n-24) << 24; - return z; - } - if (f->valid_bits == 0) f->acc = 0; - while (f->valid_bits < n) { - int z = get8_packet_raw(f); - if (z == EOP) { - f->valid_bits = INVALID_BITS; - return 0; - } - f->acc += z << f->valid_bits; - f->valid_bits += 8; - } - } - - assert(f->valid_bits >= n); - z = f->acc & ((1 << n)-1); - f->acc >>= n; - f->valid_bits -= n; - return z; -} - -// @OPTIMIZE: primary accumulator for huffman -// expand the buffer to as many bits as possible without reading off end of packet -// it might be nice to allow f->valid_bits and f->acc to be stored in registers, -// e.g. cache them locally and decode locally -static __forceinline void prep_huffman(vorb *f) -{ - if (f->valid_bits <= 24) { - if (f->valid_bits == 0) f->acc = 0; - do { - int z; - if (f->last_seg && !f->bytes_in_seg) return; - z = get8_packet_raw(f); - if (z == EOP) return; - f->acc += (unsigned) z << f->valid_bits; - f->valid_bits += 8; - } while (f->valid_bits <= 24); - } -} - -enum -{ - VORBIS_packet_id = 1, - VORBIS_packet_comment = 3, - VORBIS_packet_setup = 5 -}; - -static int codebook_decode_scalar_raw(vorb *f, Codebook *c) -{ - int i; - prep_huffman(f); - - if (c->codewords == NULL && c->sorted_codewords == NULL) - return -1; - - // cases to use binary search: sorted_codewords && !c->codewords - // sorted_codewords && c->entries > 8 - if (c->entries > 8 ? c->sorted_codewords!=NULL : !c->codewords) { - // binary search - uint32 code = bit_reverse(f->acc); - int x=0, n=c->sorted_entries, len; - - while (n > 1) { - // invariant: sc[x] <= code < sc[x+n] - int m = x + (n >> 1); - if (c->sorted_codewords[m] <= code) { - x = m; - n -= (n>>1); - } else { - n >>= 1; - } - } - // x is now the sorted index - if (!c->sparse) x = c->sorted_values[x]; - // x is now sorted index if sparse, or symbol otherwise - len = c->codeword_lengths[x]; - if (f->valid_bits >= len) { - f->acc >>= len; - f->valid_bits -= len; - return x; - } - - f->valid_bits = 0; - return -1; - } - - // if small, linear search - assert(!c->sparse); - for (i=0; i < c->entries; ++i) { - if (c->codeword_lengths[i] == NO_CODE) continue; - if (c->codewords[i] == (f->acc & ((1 << c->codeword_lengths[i])-1))) { - if (f->valid_bits >= c->codeword_lengths[i]) { - f->acc >>= c->codeword_lengths[i]; - f->valid_bits -= c->codeword_lengths[i]; - return i; - } - f->valid_bits = 0; - return -1; - } - } - - error(f, VORBIS_invalid_stream); - f->valid_bits = 0; - return -1; -} - -#ifndef STB_VORBIS_NO_INLINE_DECODE - -#define DECODE_RAW(var, f,c) \ - if (f->valid_bits < STB_VORBIS_FAST_HUFFMAN_LENGTH) \ - prep_huffman(f); \ - var = f->acc & FAST_HUFFMAN_TABLE_MASK; \ - var = c->fast_huffman[var]; \ - if (var >= 0) { \ - int n = c->codeword_lengths[var]; \ - f->acc >>= n; \ - f->valid_bits -= n; \ - if (f->valid_bits < 0) { f->valid_bits = 0; var = -1; } \ - } else { \ - var = codebook_decode_scalar_raw(f,c); \ - } - -#else - -static int codebook_decode_scalar(vorb *f, Codebook *c) -{ - int i; - if (f->valid_bits < STB_VORBIS_FAST_HUFFMAN_LENGTH) - prep_huffman(f); - // fast huffman table lookup - i = f->acc & FAST_HUFFMAN_TABLE_MASK; - i = c->fast_huffman[i]; - if (i >= 0) { - f->acc >>= c->codeword_lengths[i]; - f->valid_bits -= c->codeword_lengths[i]; - if (f->valid_bits < 0) { f->valid_bits = 0; return -1; } - return i; - } - return codebook_decode_scalar_raw(f,c); -} - -#define DECODE_RAW(var,f,c) var = codebook_decode_scalar(f,c); - -#endif - -#define DECODE(var,f,c) \ - DECODE_RAW(var,f,c) \ - if (c->sparse) var = c->sorted_values[var]; - -#ifndef STB_VORBIS_DIVIDES_IN_CODEBOOK - #define DECODE_VQ(var,f,c) DECODE_RAW(var,f,c) -#else - #define DECODE_VQ(var,f,c) DECODE(var,f,c) -#endif - - - - - - -// CODEBOOK_ELEMENT_FAST is an optimization for the CODEBOOK_FLOATS case -// where we avoid one addition -#define CODEBOOK_ELEMENT(c,off) (c->multiplicands[off]) -#define CODEBOOK_ELEMENT_FAST(c,off) (c->multiplicands[off]) -#define CODEBOOK_ELEMENT_BASE(c) (0) - -static int codebook_decode_start(vorb *f, Codebook *c) -{ - int z = -1; - - // type 0 is only legal in a scalar context - if (c->lookup_type == 0) - error(f, VORBIS_invalid_stream); - else { - DECODE_VQ(z,f,c); - if (c->sparse) assert(z < c->sorted_entries); - if (z < 0) { // check for EOP - if (!f->bytes_in_seg) - if (f->last_seg) - return z; - error(f, VORBIS_invalid_stream); - } - } - return z; -} - -static int codebook_decode(vorb *f, Codebook *c, float *output, int len) -{ - int i,z = codebook_decode_start(f,c); - if (z < 0) return FALSE; - if (len > c->dimensions) len = c->dimensions; - -#ifdef STB_VORBIS_DIVIDES_IN_CODEBOOK - if (c->lookup_type == 1) { - float last = CODEBOOK_ELEMENT_BASE(c); - int div = 1; - for (i=0; i < len; ++i) { - int off = (z / div) % c->lookup_values; - float val = CODEBOOK_ELEMENT_FAST(c,off) + last; - output[i] += val; - if (c->sequence_p) last = val + c->minimum_value; - div *= c->lookup_values; - } - return TRUE; - } -#endif - - z *= c->dimensions; - if (c->sequence_p) { - float last = CODEBOOK_ELEMENT_BASE(c); - for (i=0; i < len; ++i) { - float val = CODEBOOK_ELEMENT_FAST(c,z+i) + last; - output[i] += val; - last = val + c->minimum_value; - } - } else { - float last = CODEBOOK_ELEMENT_BASE(c); - for (i=0; i < len; ++i) { - output[i] += CODEBOOK_ELEMENT_FAST(c,z+i) + last; - } - } - - return TRUE; -} - -static int codebook_decode_step(vorb *f, Codebook *c, float *output, int len, int step) -{ - int i,z = codebook_decode_start(f,c); - float last = CODEBOOK_ELEMENT_BASE(c); - if (z < 0) return FALSE; - if (len > c->dimensions) len = c->dimensions; - -#ifdef STB_VORBIS_DIVIDES_IN_CODEBOOK - if (c->lookup_type == 1) { - int div = 1; - for (i=0; i < len; ++i) { - int off = (z / div) % c->lookup_values; - float val = CODEBOOK_ELEMENT_FAST(c,off) + last; - output[i*step] += val; - if (c->sequence_p) last = val; - div *= c->lookup_values; - } - return TRUE; - } -#endif - - z *= c->dimensions; - for (i=0; i < len; ++i) { - float val = CODEBOOK_ELEMENT_FAST(c,z+i) + last; - output[i*step] += val; - if (c->sequence_p) last = val; - } - - return TRUE; -} - -static int codebook_decode_deinterleave_repeat(vorb *f, Codebook *c, float **outputs, int ch, int *c_inter_p, int *p_inter_p, int len, int total_decode) -{ - int c_inter = *c_inter_p; - int p_inter = *p_inter_p; - int i,z, effective = c->dimensions; - - // type 0 is only legal in a scalar context - if (c->lookup_type == 0) return error(f, VORBIS_invalid_stream); - - while (total_decode > 0) { - float last = CODEBOOK_ELEMENT_BASE(c); - DECODE_VQ(z,f,c); - #ifndef STB_VORBIS_DIVIDES_IN_CODEBOOK - assert(!c->sparse || z < c->sorted_entries); - #endif - if (z < 0) { - if (!f->bytes_in_seg) - if (f->last_seg) return FALSE; - return error(f, VORBIS_invalid_stream); - } - - // if this will take us off the end of the buffers, stop short! - // we check by computing the length of the virtual interleaved - // buffer (len*ch), our current offset within it (p_inter*ch)+(c_inter), - // and the length we'll be using (effective) - if (c_inter + p_inter*ch + effective > len * ch) { - effective = len*ch - (p_inter*ch - c_inter); - } - - #ifdef STB_VORBIS_DIVIDES_IN_CODEBOOK - if (c->lookup_type == 1) { - int div = 1; - for (i=0; i < effective; ++i) { - int off = (z / div) % c->lookup_values; - float val = CODEBOOK_ELEMENT_FAST(c,off) + last; - if (outputs[c_inter]) - outputs[c_inter][p_inter] += val; - if (++c_inter == ch) { c_inter = 0; ++p_inter; } - if (c->sequence_p) last = val; - div *= c->lookup_values; - } - } else - #endif - { - z *= c->dimensions; - if (c->sequence_p) { - for (i=0; i < effective; ++i) { - float val = CODEBOOK_ELEMENT_FAST(c,z+i) + last; - if (outputs[c_inter]) - outputs[c_inter][p_inter] += val; - if (++c_inter == ch) { c_inter = 0; ++p_inter; } - last = val; - } - } else { - for (i=0; i < effective; ++i) { - float val = CODEBOOK_ELEMENT_FAST(c,z+i) + last; - if (outputs[c_inter]) - outputs[c_inter][p_inter] += val; - if (++c_inter == ch) { c_inter = 0; ++p_inter; } - } - } - } - - total_decode -= effective; - } - *c_inter_p = c_inter; - *p_inter_p = p_inter; - return TRUE; -} - -static int predict_point(int x, int x0, int x1, int y0, int y1) -{ - int dy = y1 - y0; - int adx = x1 - x0; - // @OPTIMIZE: force int division to round in the right direction... is this necessary on x86? - int err = abs(dy) * (x - x0); - int off = err / adx; - return dy < 0 ? y0 - off : y0 + off; -} - -// the following table is block-copied from the specification -static float inverse_db_table[256] = -{ - 1.0649863e-07f, 1.1341951e-07f, 1.2079015e-07f, 1.2863978e-07f, - 1.3699951e-07f, 1.4590251e-07f, 1.5538408e-07f, 1.6548181e-07f, - 1.7623575e-07f, 1.8768855e-07f, 1.9988561e-07f, 2.1287530e-07f, - 2.2670913e-07f, 2.4144197e-07f, 2.5713223e-07f, 2.7384213e-07f, - 2.9163793e-07f, 3.1059021e-07f, 3.3077411e-07f, 3.5226968e-07f, - 3.7516214e-07f, 3.9954229e-07f, 4.2550680e-07f, 4.5315863e-07f, - 4.8260743e-07f, 5.1396998e-07f, 5.4737065e-07f, 5.8294187e-07f, - 6.2082472e-07f, 6.6116941e-07f, 7.0413592e-07f, 7.4989464e-07f, - 7.9862701e-07f, 8.5052630e-07f, 9.0579828e-07f, 9.6466216e-07f, - 1.0273513e-06f, 1.0941144e-06f, 1.1652161e-06f, 1.2409384e-06f, - 1.3215816e-06f, 1.4074654e-06f, 1.4989305e-06f, 1.5963394e-06f, - 1.7000785e-06f, 1.8105592e-06f, 1.9282195e-06f, 2.0535261e-06f, - 2.1869758e-06f, 2.3290978e-06f, 2.4804557e-06f, 2.6416497e-06f, - 2.8133190e-06f, 2.9961443e-06f, 3.1908506e-06f, 3.3982101e-06f, - 3.6190449e-06f, 3.8542308e-06f, 4.1047004e-06f, 4.3714470e-06f, - 4.6555282e-06f, 4.9580707e-06f, 5.2802740e-06f, 5.6234160e-06f, - 5.9888572e-06f, 6.3780469e-06f, 6.7925283e-06f, 7.2339451e-06f, - 7.7040476e-06f, 8.2047000e-06f, 8.7378876e-06f, 9.3057248e-06f, - 9.9104632e-06f, 1.0554501e-05f, 1.1240392e-05f, 1.1970856e-05f, - 1.2748789e-05f, 1.3577278e-05f, 1.4459606e-05f, 1.5399272e-05f, - 1.6400004e-05f, 1.7465768e-05f, 1.8600792e-05f, 1.9809576e-05f, - 2.1096914e-05f, 2.2467911e-05f, 2.3928002e-05f, 2.5482978e-05f, - 2.7139006e-05f, 2.8902651e-05f, 3.0780908e-05f, 3.2781225e-05f, - 3.4911534e-05f, 3.7180282e-05f, 3.9596466e-05f, 4.2169667e-05f, - 4.4910090e-05f, 4.7828601e-05f, 5.0936773e-05f, 5.4246931e-05f, - 5.7772202e-05f, 6.1526565e-05f, 6.5524908e-05f, 6.9783085e-05f, - 7.4317983e-05f, 7.9147585e-05f, 8.4291040e-05f, 8.9768747e-05f, - 9.5602426e-05f, 0.00010181521f, 0.00010843174f, 0.00011547824f, - 0.00012298267f, 0.00013097477f, 0.00013948625f, 0.00014855085f, - 0.00015820453f, 0.00016848555f, 0.00017943469f, 0.00019109536f, - 0.00020351382f, 0.00021673929f, 0.00023082423f, 0.00024582449f, - 0.00026179955f, 0.00027881276f, 0.00029693158f, 0.00031622787f, - 0.00033677814f, 0.00035866388f, 0.00038197188f, 0.00040679456f, - 0.00043323036f, 0.00046138411f, 0.00049136745f, 0.00052329927f, - 0.00055730621f, 0.00059352311f, 0.00063209358f, 0.00067317058f, - 0.00071691700f, 0.00076350630f, 0.00081312324f, 0.00086596457f, - 0.00092223983f, 0.00098217216f, 0.0010459992f, 0.0011139742f, - 0.0011863665f, 0.0012634633f, 0.0013455702f, 0.0014330129f, - 0.0015261382f, 0.0016253153f, 0.0017309374f, 0.0018434235f, - 0.0019632195f, 0.0020908006f, 0.0022266726f, 0.0023713743f, - 0.0025254795f, 0.0026895994f, 0.0028643847f, 0.0030505286f, - 0.0032487691f, 0.0034598925f, 0.0036847358f, 0.0039241906f, - 0.0041792066f, 0.0044507950f, 0.0047400328f, 0.0050480668f, - 0.0053761186f, 0.0057254891f, 0.0060975636f, 0.0064938176f, - 0.0069158225f, 0.0073652516f, 0.0078438871f, 0.0083536271f, - 0.0088964928f, 0.009474637f, 0.010090352f, 0.010746080f, - 0.011444421f, 0.012188144f, 0.012980198f, 0.013823725f, - 0.014722068f, 0.015678791f, 0.016697687f, 0.017782797f, - 0.018938423f, 0.020169149f, 0.021479854f, 0.022875735f, - 0.024362330f, 0.025945531f, 0.027631618f, 0.029427276f, - 0.031339626f, 0.033376252f, 0.035545228f, 0.037855157f, - 0.040315199f, 0.042935108f, 0.045725273f, 0.048696758f, - 0.051861348f, 0.055231591f, 0.058820850f, 0.062643361f, - 0.066714279f, 0.071049749f, 0.075666962f, 0.080584227f, - 0.085821044f, 0.091398179f, 0.097337747f, 0.10366330f, - 0.11039993f, 0.11757434f, 0.12521498f, 0.13335215f, - 0.14201813f, 0.15124727f, 0.16107617f, 0.17154380f, - 0.18269168f, 0.19456402f, 0.20720788f, 0.22067342f, - 0.23501402f, 0.25028656f, 0.26655159f, 0.28387361f, - 0.30232132f, 0.32196786f, 0.34289114f, 0.36517414f, - 0.38890521f, 0.41417847f, 0.44109412f, 0.46975890f, - 0.50028648f, 0.53279791f, 0.56742212f, 0.60429640f, - 0.64356699f, 0.68538959f, 0.72993007f, 0.77736504f, - 0.82788260f, 0.88168307f, 0.9389798f, 1.0f -}; - - -// @OPTIMIZE: if you want to replace this bresenham line-drawing routine, -// note that you must produce bit-identical output to decode correctly; -// this specific sequence of operations is specified in the spec (it's -// drawing integer-quantized frequency-space lines that the encoder -// expects to be exactly the same) -// ... also, isn't the whole point of Bresenham's algorithm to NOT -// have to divide in the setup? sigh. -#ifndef STB_VORBIS_NO_DEFER_FLOOR -#define LINE_OP(a,b) a *= b -#else -#define LINE_OP(a,b) a = b -#endif - -#ifdef STB_VORBIS_DIVIDE_TABLE -#define DIVTAB_NUMER 32 -#define DIVTAB_DENOM 64 -int8 integer_divide_table[DIVTAB_NUMER][DIVTAB_DENOM]; // 2KB -#endif - -static __forceinline void draw_line(float *output, int x0, int y0, int x1, int y1, int n) -{ - int dy = y1 - y0; - int adx = x1 - x0; - int ady = abs(dy); - int base; - int x=x0,y=y0; - int err = 0; - int sy; - -#ifdef STB_VORBIS_DIVIDE_TABLE - if (adx < DIVTAB_DENOM && ady < DIVTAB_NUMER) { - if (dy < 0) { - base = -integer_divide_table[ady][adx]; - sy = base-1; - } else { - base = integer_divide_table[ady][adx]; - sy = base+1; - } - } else { - base = dy / adx; - if (dy < 0) - sy = base - 1; - else - sy = base+1; - } -#else - base = dy / adx; - if (dy < 0) - sy = base - 1; - else - sy = base+1; -#endif - ady -= abs(base) * adx; - if (x1 > n) x1 = n; - if (x < x1) { - LINE_OP(output[x], inverse_db_table[y&255]); - for (++x; x < x1; ++x) { - err += ady; - if (err >= adx) { - err -= adx; - y += sy; - } else - y += base; - LINE_OP(output[x], inverse_db_table[y&255]); - } - } -} - -static int residue_decode(vorb *f, Codebook *book, float *target, int offset, int n, int rtype) -{ - int k; - if (rtype == 0) { - int step = n / book->dimensions; - for (k=0; k < step; ++k) - if (!codebook_decode_step(f, book, target+offset+k, n-offset-k, step)) - return FALSE; - } else { - for (k=0; k < n; ) { - if (!codebook_decode(f, book, target+offset, n-k)) - return FALSE; - k += book->dimensions; - offset += book->dimensions; - } - } - return TRUE; -} - -// n is 1/2 of the blocksize -- -// specification: "Correct per-vector decode length is [n]/2" -static void decode_residue(vorb *f, float *residue_buffers[], int ch, int n, int rn, uint8 *do_not_decode) -{ - int i,j,pass; - Residue *r = f->residue_config + rn; - int rtype = f->residue_types[rn]; - int c = r->classbook; - int classwords = f->codebooks[c].dimensions; - unsigned int actual_size = rtype == 2 ? n*2 : n; - unsigned int limit_r_begin = (r->begin < actual_size ? r->begin : actual_size); - unsigned int limit_r_end = (r->end < actual_size ? r->end : actual_size); - int n_read = limit_r_end - limit_r_begin; - int part_read = n_read / r->part_size; - int temp_alloc_point = temp_alloc_save(f); - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - uint8 ***part_classdata = (uint8 ***) temp_block_array(f,f->channels, part_read * sizeof(**part_classdata)); - #else - int **classifications = (int **) temp_block_array(f,f->channels, part_read * sizeof(**classifications)); - #endif - - CHECK(f); - - for (i=0; i < ch; ++i) - if (!do_not_decode[i]) - memset(residue_buffers[i], 0, sizeof(float) * n); - - if (rtype == 2 && ch != 1) { - for (j=0; j < ch; ++j) - if (!do_not_decode[j]) - break; - if (j == ch) - goto done; - - for (pass=0; pass < 8; ++pass) { - int pcount = 0, class_set = 0; - if (ch == 2) { - while (pcount < part_read) { - int z = r->begin + pcount*r->part_size; - int c_inter = (z & 1), p_inter = z>>1; - if (pass == 0) { - Codebook *c = f->codebooks+r->classbook; - int q; - DECODE(q,f,c); - if (q == EOP) goto done; - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - part_classdata[0][class_set] = r->classdata[q]; - #else - for (i=classwords-1; i >= 0; --i) { - classifications[0][i+pcount] = q % r->classifications; - q /= r->classifications; - } - #endif - } - for (i=0; i < classwords && pcount < part_read; ++i, ++pcount) { - int z = r->begin + pcount*r->part_size; - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - int c = part_classdata[0][class_set][i]; - #else - int c = classifications[0][pcount]; - #endif - int b = r->residue_books[c][pass]; - if (b >= 0) { - Codebook *book = f->codebooks + b; - #ifdef STB_VORBIS_DIVIDES_IN_CODEBOOK - if (!codebook_decode_deinterleave_repeat(f, book, residue_buffers, ch, &c_inter, &p_inter, n, r->part_size)) - goto done; - #else - // saves 1% - if (!codebook_decode_deinterleave_repeat(f, book, residue_buffers, ch, &c_inter, &p_inter, n, r->part_size)) - goto done; - #endif - } else { - z += r->part_size; - c_inter = z & 1; - p_inter = z >> 1; - } - } - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - ++class_set; - #endif - } - } else if (ch > 2) { - while (pcount < part_read) { - int z = r->begin + pcount*r->part_size; - int c_inter = z % ch, p_inter = z/ch; - if (pass == 0) { - Codebook *c = f->codebooks+r->classbook; - int q; - DECODE(q,f,c); - if (q == EOP) goto done; - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - part_classdata[0][class_set] = r->classdata[q]; - #else - for (i=classwords-1; i >= 0; --i) { - classifications[0][i+pcount] = q % r->classifications; - q /= r->classifications; - } - #endif - } - for (i=0; i < classwords && pcount < part_read; ++i, ++pcount) { - int z = r->begin + pcount*r->part_size; - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - int c = part_classdata[0][class_set][i]; - #else - int c = classifications[0][pcount]; - #endif - int b = r->residue_books[c][pass]; - if (b >= 0) { - Codebook *book = f->codebooks + b; - if (!codebook_decode_deinterleave_repeat(f, book, residue_buffers, ch, &c_inter, &p_inter, n, r->part_size)) - goto done; - } else { - z += r->part_size; - c_inter = z % ch; - p_inter = z / ch; - } - } - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - ++class_set; - #endif - } - } - } - goto done; - } - CHECK(f); - - for (pass=0; pass < 8; ++pass) { - int pcount = 0, class_set=0; - while (pcount < part_read) { - if (pass == 0) { - for (j=0; j < ch; ++j) { - if (!do_not_decode[j]) { - Codebook *c = f->codebooks+r->classbook; - int temp; - DECODE(temp,f,c); - if (temp == EOP) goto done; - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - part_classdata[j][class_set] = r->classdata[temp]; - #else - for (i=classwords-1; i >= 0; --i) { - classifications[j][i+pcount] = temp % r->classifications; - temp /= r->classifications; - } - #endif - } - } - } - for (i=0; i < classwords && pcount < part_read; ++i, ++pcount) { - for (j=0; j < ch; ++j) { - if (!do_not_decode[j]) { - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - int c = part_classdata[j][class_set][i]; - #else - int c = classifications[j][pcount]; - #endif - int b = r->residue_books[c][pass]; - if (b >= 0) { - float *target = residue_buffers[j]; - int offset = r->begin + pcount * r->part_size; - int n = r->part_size; - Codebook *book = f->codebooks + b; - if (!residue_decode(f, book, target, offset, n, rtype)) - goto done; - } - } - } - } - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - ++class_set; - #endif - } - } - done: - CHECK(f); - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - temp_free(f,part_classdata); - #else - temp_free(f,classifications); - #endif - temp_alloc_restore(f,temp_alloc_point); -} - - -#if 0 -// slow way for debugging -void inverse_mdct_slow(float *buffer, int n) -{ - int i,j; - int n2 = n >> 1; - float *x = (float *) malloc(sizeof(*x) * n2); - memcpy(x, buffer, sizeof(*x) * n2); - for (i=0; i < n; ++i) { - float acc = 0; - for (j=0; j < n2; ++j) - // formula from paper: - //acc += n/4.0f * x[j] * (float) cos(M_PI / 2 / n * (2 * i + 1 + n/2.0)*(2*j+1)); - // formula from wikipedia - //acc += 2.0f / n2 * x[j] * (float) cos(M_PI/n2 * (i + 0.5 + n2/2)*(j + 0.5)); - // these are equivalent, except the formula from the paper inverts the multiplier! - // however, what actually works is NO MULTIPLIER!?! - //acc += 64 * 2.0f / n2 * x[j] * (float) cos(M_PI/n2 * (i + 0.5 + n2/2)*(j + 0.5)); - acc += x[j] * (float) cos(M_PI / 2 / n * (2 * i + 1 + n/2.0)*(2*j+1)); - buffer[i] = acc; - } - free(x); -} -#elif 0 -// same as above, but just barely able to run in real time on modern machines -void inverse_mdct_slow(float *buffer, int n, vorb *f, int blocktype) -{ - float mcos[16384]; - int i,j; - int n2 = n >> 1, nmask = (n << 2) -1; - float *x = (float *) malloc(sizeof(*x) * n2); - memcpy(x, buffer, sizeof(*x) * n2); - for (i=0; i < 4*n; ++i) - mcos[i] = (float) cos(M_PI / 2 * i / n); - - for (i=0; i < n; ++i) { - float acc = 0; - for (j=0; j < n2; ++j) - acc += x[j] * mcos[(2 * i + 1 + n2)*(2*j+1) & nmask]; - buffer[i] = acc; - } - free(x); -} -#elif 0 -// transform to use a slow dct-iv; this is STILL basically trivial, -// but only requires half as many ops -void dct_iv_slow(float *buffer, int n) -{ - float mcos[16384]; - float x[2048]; - int i,j; - int n2 = n >> 1, nmask = (n << 3) - 1; - memcpy(x, buffer, sizeof(*x) * n); - for (i=0; i < 8*n; ++i) - mcos[i] = (float) cos(M_PI / 4 * i / n); - for (i=0; i < n; ++i) { - float acc = 0; - for (j=0; j < n; ++j) - acc += x[j] * mcos[((2 * i + 1)*(2*j+1)) & nmask]; - buffer[i] = acc; - } -} - -void inverse_mdct_slow(float *buffer, int n, vorb *f, int blocktype) -{ - int i, n4 = n >> 2, n2 = n >> 1, n3_4 = n - n4; - float temp[4096]; - - memcpy(temp, buffer, n2 * sizeof(float)); - dct_iv_slow(temp, n2); // returns -c'-d, a-b' - - for (i=0; i < n4 ; ++i) buffer[i] = temp[i+n4]; // a-b' - for ( ; i < n3_4; ++i) buffer[i] = -temp[n3_4 - i - 1]; // b-a', c+d' - for ( ; i < n ; ++i) buffer[i] = -temp[i - n3_4]; // c'+d -} -#endif - -#ifndef LIBVORBIS_MDCT -#define LIBVORBIS_MDCT 0 -#endif - -#if LIBVORBIS_MDCT -// directly call the vorbis MDCT using an interface documented -// by Jeff Roberts... useful for performance comparison -typedef struct -{ - int n; - int log2n; - - float *trig; - int *bitrev; - - float scale; -} mdct_lookup; - -extern void mdct_init(mdct_lookup *lookup, int n); -extern void mdct_clear(mdct_lookup *l); -extern void mdct_backward(mdct_lookup *init, float *in, float *out); - -mdct_lookup M1,M2; - -void inverse_mdct(float *buffer, int n, vorb *f, int blocktype) -{ - mdct_lookup *M; - if (M1.n == n) M = &M1; - else if (M2.n == n) M = &M2; - else if (M1.n == 0) { mdct_init(&M1, n); M = &M1; } - else { - if (M2.n) __asm int 3; - mdct_init(&M2, n); - M = &M2; - } - - mdct_backward(M, buffer, buffer); -} -#endif - - -// the following were split out into separate functions while optimizing; -// they could be pushed back up but eh. __forceinline showed no change; -// they're probably already being inlined. -static void imdct_step3_iter0_loop(int n, float *e, int i_off, int k_off, float *A) -{ - float *ee0 = e + i_off; - float *ee2 = ee0 + k_off; - int i; - - assert((n & 3) == 0); - for (i=(n>>2); i > 0; --i) { - float k00_20, k01_21; - k00_20 = ee0[ 0] - ee2[ 0]; - k01_21 = ee0[-1] - ee2[-1]; - ee0[ 0] += ee2[ 0];//ee0[ 0] = ee0[ 0] + ee2[ 0]; - ee0[-1] += ee2[-1];//ee0[-1] = ee0[-1] + ee2[-1]; - ee2[ 0] = k00_20 * A[0] - k01_21 * A[1]; - ee2[-1] = k01_21 * A[0] + k00_20 * A[1]; - A += 8; - - k00_20 = ee0[-2] - ee2[-2]; - k01_21 = ee0[-3] - ee2[-3]; - ee0[-2] += ee2[-2];//ee0[-2] = ee0[-2] + ee2[-2]; - ee0[-3] += ee2[-3];//ee0[-3] = ee0[-3] + ee2[-3]; - ee2[-2] = k00_20 * A[0] - k01_21 * A[1]; - ee2[-3] = k01_21 * A[0] + k00_20 * A[1]; - A += 8; - - k00_20 = ee0[-4] - ee2[-4]; - k01_21 = ee0[-5] - ee2[-5]; - ee0[-4] += ee2[-4];//ee0[-4] = ee0[-4] + ee2[-4]; - ee0[-5] += ee2[-5];//ee0[-5] = ee0[-5] + ee2[-5]; - ee2[-4] = k00_20 * A[0] - k01_21 * A[1]; - ee2[-5] = k01_21 * A[0] + k00_20 * A[1]; - A += 8; - - k00_20 = ee0[-6] - ee2[-6]; - k01_21 = ee0[-7] - ee2[-7]; - ee0[-6] += ee2[-6];//ee0[-6] = ee0[-6] + ee2[-6]; - ee0[-7] += ee2[-7];//ee0[-7] = ee0[-7] + ee2[-7]; - ee2[-6] = k00_20 * A[0] - k01_21 * A[1]; - ee2[-7] = k01_21 * A[0] + k00_20 * A[1]; - A += 8; - ee0 -= 8; - ee2 -= 8; - } -} - -static void imdct_step3_inner_r_loop(int lim, float *e, int d0, int k_off, float *A, int k1) -{ - int i; - float k00_20, k01_21; - - float *e0 = e + d0; - float *e2 = e0 + k_off; - - for (i=lim >> 2; i > 0; --i) { - k00_20 = e0[-0] - e2[-0]; - k01_21 = e0[-1] - e2[-1]; - e0[-0] += e2[-0];//e0[-0] = e0[-0] + e2[-0]; - e0[-1] += e2[-1];//e0[-1] = e0[-1] + e2[-1]; - e2[-0] = (k00_20)*A[0] - (k01_21) * A[1]; - e2[-1] = (k01_21)*A[0] + (k00_20) * A[1]; - - A += k1; - - k00_20 = e0[-2] - e2[-2]; - k01_21 = e0[-3] - e2[-3]; - e0[-2] += e2[-2];//e0[-2] = e0[-2] + e2[-2]; - e0[-3] += e2[-3];//e0[-3] = e0[-3] + e2[-3]; - e2[-2] = (k00_20)*A[0] - (k01_21) * A[1]; - e2[-3] = (k01_21)*A[0] + (k00_20) * A[1]; - - A += k1; - - k00_20 = e0[-4] - e2[-4]; - k01_21 = e0[-5] - e2[-5]; - e0[-4] += e2[-4];//e0[-4] = e0[-4] + e2[-4]; - e0[-5] += e2[-5];//e0[-5] = e0[-5] + e2[-5]; - e2[-4] = (k00_20)*A[0] - (k01_21) * A[1]; - e2[-5] = (k01_21)*A[0] + (k00_20) * A[1]; - - A += k1; - - k00_20 = e0[-6] - e2[-6]; - k01_21 = e0[-7] - e2[-7]; - e0[-6] += e2[-6];//e0[-6] = e0[-6] + e2[-6]; - e0[-7] += e2[-7];//e0[-7] = e0[-7] + e2[-7]; - e2[-6] = (k00_20)*A[0] - (k01_21) * A[1]; - e2[-7] = (k01_21)*A[0] + (k00_20) * A[1]; - - e0 -= 8; - e2 -= 8; - - A += k1; - } -} - -static void imdct_step3_inner_s_loop(int n, float *e, int i_off, int k_off, float *A, int a_off, int k0) -{ - int i; - float A0 = A[0]; - float A1 = A[0+1]; - float A2 = A[0+a_off]; - float A3 = A[0+a_off+1]; - float A4 = A[0+a_off*2+0]; - float A5 = A[0+a_off*2+1]; - float A6 = A[0+a_off*3+0]; - float A7 = A[0+a_off*3+1]; - - float k00,k11; - - float *ee0 = e +i_off; - float *ee2 = ee0+k_off; - - for (i=n; i > 0; --i) { - k00 = ee0[ 0] - ee2[ 0]; - k11 = ee0[-1] - ee2[-1]; - ee0[ 0] = ee0[ 0] + ee2[ 0]; - ee0[-1] = ee0[-1] + ee2[-1]; - ee2[ 0] = (k00) * A0 - (k11) * A1; - ee2[-1] = (k11) * A0 + (k00) * A1; - - k00 = ee0[-2] - ee2[-2]; - k11 = ee0[-3] - ee2[-3]; - ee0[-2] = ee0[-2] + ee2[-2]; - ee0[-3] = ee0[-3] + ee2[-3]; - ee2[-2] = (k00) * A2 - (k11) * A3; - ee2[-3] = (k11) * A2 + (k00) * A3; - - k00 = ee0[-4] - ee2[-4]; - k11 = ee0[-5] - ee2[-5]; - ee0[-4] = ee0[-4] + ee2[-4]; - ee0[-5] = ee0[-5] + ee2[-5]; - ee2[-4] = (k00) * A4 - (k11) * A5; - ee2[-5] = (k11) * A4 + (k00) * A5; - - k00 = ee0[-6] - ee2[-6]; - k11 = ee0[-7] - ee2[-7]; - ee0[-6] = ee0[-6] + ee2[-6]; - ee0[-7] = ee0[-7] + ee2[-7]; - ee2[-6] = (k00) * A6 - (k11) * A7; - ee2[-7] = (k11) * A6 + (k00) * A7; - - ee0 -= k0; - ee2 -= k0; - } -} - -static __forceinline void iter_54(float *z) -{ - float k00,k11,k22,k33; - float y0,y1,y2,y3; - - k00 = z[ 0] - z[-4]; - y0 = z[ 0] + z[-4]; - y2 = z[-2] + z[-6]; - k22 = z[-2] - z[-6]; - - z[-0] = y0 + y2; // z0 + z4 + z2 + z6 - z[-2] = y0 - y2; // z0 + z4 - z2 - z6 - - // done with y0,y2 - - k33 = z[-3] - z[-7]; - - z[-4] = k00 + k33; // z0 - z4 + z3 - z7 - z[-6] = k00 - k33; // z0 - z4 - z3 + z7 - - // done with k33 - - k11 = z[-1] - z[-5]; - y1 = z[-1] + z[-5]; - y3 = z[-3] + z[-7]; - - z[-1] = y1 + y3; // z1 + z5 + z3 + z7 - z[-3] = y1 - y3; // z1 + z5 - z3 - z7 - z[-5] = k11 - k22; // z1 - z5 + z2 - z6 - z[-7] = k11 + k22; // z1 - z5 - z2 + z6 -} - -static void imdct_step3_inner_s_loop_ld654(int n, float *e, int i_off, float *A, int base_n) -{ - int a_off = base_n >> 3; - float A2 = A[0+a_off]; - float *z = e + i_off; - float *base = z - 16 * n; - - while (z > base) { - float k00,k11; - - k00 = z[-0] - z[-8]; - k11 = z[-1] - z[-9]; - z[-0] = z[-0] + z[-8]; - z[-1] = z[-1] + z[-9]; - z[-8] = k00; - z[-9] = k11 ; - - k00 = z[ -2] - z[-10]; - k11 = z[ -3] - z[-11]; - z[ -2] = z[ -2] + z[-10]; - z[ -3] = z[ -3] + z[-11]; - z[-10] = (k00+k11) * A2; - z[-11] = (k11-k00) * A2; - - k00 = z[-12] - z[ -4]; // reverse to avoid a unary negation - k11 = z[ -5] - z[-13]; - z[ -4] = z[ -4] + z[-12]; - z[ -5] = z[ -5] + z[-13]; - z[-12] = k11; - z[-13] = k00; - - k00 = z[-14] - z[ -6]; // reverse to avoid a unary negation - k11 = z[ -7] - z[-15]; - z[ -6] = z[ -6] + z[-14]; - z[ -7] = z[ -7] + z[-15]; - z[-14] = (k00+k11) * A2; - z[-15] = (k00-k11) * A2; - - iter_54(z); - iter_54(z-8); - z -= 16; - } -} - -static void inverse_mdct(float *buffer, int n, vorb *f, int blocktype) -{ - int n2 = n >> 1, n4 = n >> 2, n8 = n >> 3, l; - int ld; - // @OPTIMIZE: reduce register pressure by using fewer variables? - int save_point = temp_alloc_save(f); - float *buf2 = (float *) temp_alloc(f, n2 * sizeof(*buf2)); - float *u=NULL,*v=NULL; - // twiddle factors - float *A = f->A[blocktype]; - - // IMDCT algorithm from "The use of multirate filter banks for coding of high quality digital audio" - // See notes about bugs in that paper in less-optimal implementation 'inverse_mdct_old' after this function. - - // kernel from paper - - - // merged: - // copy and reflect spectral data - // step 0 - - // note that it turns out that the items added together during - // this step are, in fact, being added to themselves (as reflected - // by step 0). inexplicable inefficiency! this became obvious - // once I combined the passes. - - // so there's a missing 'times 2' here (for adding X to itself). - // this propagates through linearly to the end, where the numbers - // are 1/2 too small, and need to be compensated for. - - { - float *d,*e, *AA, *e_stop; - d = &buf2[n2-2]; - AA = A; - e = &buffer[0]; - e_stop = &buffer[n2]; - while (e != e_stop) { - d[1] = (e[0] * AA[0] - e[2]*AA[1]); - d[0] = (e[0] * AA[1] + e[2]*AA[0]); - d -= 2; - AA += 2; - e += 4; - } - - e = &buffer[n2-3]; - while (d >= buf2) { - d[1] = (-e[2] * AA[0] - -e[0]*AA[1]); - d[0] = (-e[2] * AA[1] + -e[0]*AA[0]); - d -= 2; - AA += 2; - e -= 4; - } - } - - // now we use symbolic names for these, so that we can - // possibly swap their meaning as we change which operations - // are in place - - u = buffer; - v = buf2; - - // step 2 (paper output is w, now u) - // this could be in place, but the data ends up in the wrong - // place... _somebody_'s got to swap it, so this is nominated - { - float *AA = &A[n2-8]; - float *d0,*d1, *e0, *e1; - - e0 = &v[n4]; - e1 = &v[0]; - - d0 = &u[n4]; - d1 = &u[0]; - - while (AA >= A) { - float v40_20, v41_21; - - v41_21 = e0[1] - e1[1]; - v40_20 = e0[0] - e1[0]; - d0[1] = e0[1] + e1[1]; - d0[0] = e0[0] + e1[0]; - d1[1] = v41_21*AA[4] - v40_20*AA[5]; - d1[0] = v40_20*AA[4] + v41_21*AA[5]; - - v41_21 = e0[3] - e1[3]; - v40_20 = e0[2] - e1[2]; - d0[3] = e0[3] + e1[3]; - d0[2] = e0[2] + e1[2]; - d1[3] = v41_21*AA[0] - v40_20*AA[1]; - d1[2] = v40_20*AA[0] + v41_21*AA[1]; - - AA -= 8; - - d0 += 4; - d1 += 4; - e0 += 4; - e1 += 4; - } - } - - // step 3 - ld = ilog(n) - 1; // ilog is off-by-one from normal definitions - - // optimized step 3: - - // the original step3 loop can be nested r inside s or s inside r; - // it's written originally as s inside r, but this is dumb when r - // iterates many times, and s few. So I have two copies of it and - // switch between them halfway. - - // this is iteration 0 of step 3 - imdct_step3_iter0_loop(n >> 4, u, n2-1-n4*0, -(n >> 3), A); - imdct_step3_iter0_loop(n >> 4, u, n2-1-n4*1, -(n >> 3), A); - - // this is iteration 1 of step 3 - imdct_step3_inner_r_loop(n >> 5, u, n2-1 - n8*0, -(n >> 4), A, 16); - imdct_step3_inner_r_loop(n >> 5, u, n2-1 - n8*1, -(n >> 4), A, 16); - imdct_step3_inner_r_loop(n >> 5, u, n2-1 - n8*2, -(n >> 4), A, 16); - imdct_step3_inner_r_loop(n >> 5, u, n2-1 - n8*3, -(n >> 4), A, 16); - - l=2; - for (; l < (ld-3)>>1; ++l) { - int k0 = n >> (l+2), k0_2 = k0>>1; - int lim = 1 << (l+1); - int i; - for (i=0; i < lim; ++i) - imdct_step3_inner_r_loop(n >> (l+4), u, n2-1 - k0*i, -k0_2, A, 1 << (l+3)); - } - - for (; l < ld-6; ++l) { - int k0 = n >> (l+2), k1 = 1 << (l+3), k0_2 = k0>>1; - int rlim = n >> (l+6), r; - int lim = 1 << (l+1); - int i_off; - float *A0 = A; - i_off = n2-1; - for (r=rlim; r > 0; --r) { - imdct_step3_inner_s_loop(lim, u, i_off, -k0_2, A0, k1, k0); - A0 += k1*4; - i_off -= 8; - } - } - - // iterations with count: - // ld-6,-5,-4 all interleaved together - // the big win comes from getting rid of needless flops - // due to the constants on pass 5 & 4 being all 1 and 0; - // combining them to be simultaneous to improve cache made little difference - imdct_step3_inner_s_loop_ld654(n >> 5, u, n2-1, A, n); - - // output is u - - // step 4, 5, and 6 - // cannot be in-place because of step 5 - { - uint16 *bitrev = f->bit_reverse[blocktype]; - // weirdly, I'd have thought reading sequentially and writing - // erratically would have been better than vice-versa, but in - // fact that's not what my testing showed. (That is, with - // j = bitreverse(i), do you read i and write j, or read j and write i.) - - float *d0 = &v[n4-4]; - float *d1 = &v[n2-4]; - while (d0 >= v) { - int k4; - - k4 = bitrev[0]; - d1[3] = u[k4+0]; - d1[2] = u[k4+1]; - d0[3] = u[k4+2]; - d0[2] = u[k4+3]; - - k4 = bitrev[1]; - d1[1] = u[k4+0]; - d1[0] = u[k4+1]; - d0[1] = u[k4+2]; - d0[0] = u[k4+3]; - - d0 -= 4; - d1 -= 4; - bitrev += 2; - } - } - // (paper output is u, now v) - - - // data must be in buf2 - assert(v == buf2); - - // step 7 (paper output is v, now v) - // this is now in place - { - float *C = f->C[blocktype]; - float *d, *e; - - d = v; - e = v + n2 - 4; - - while (d < e) { - float a02,a11,b0,b1,b2,b3; - - a02 = d[0] - e[2]; - a11 = d[1] + e[3]; - - b0 = C[1]*a02 + C[0]*a11; - b1 = C[1]*a11 - C[0]*a02; - - b2 = d[0] + e[ 2]; - b3 = d[1] - e[ 3]; - - d[0] = b2 + b0; - d[1] = b3 + b1; - e[2] = b2 - b0; - e[3] = b1 - b3; - - a02 = d[2] - e[0]; - a11 = d[3] + e[1]; - - b0 = C[3]*a02 + C[2]*a11; - b1 = C[3]*a11 - C[2]*a02; - - b2 = d[2] + e[ 0]; - b3 = d[3] - e[ 1]; - - d[2] = b2 + b0; - d[3] = b3 + b1; - e[0] = b2 - b0; - e[1] = b1 - b3; - - C += 4; - d += 4; - e -= 4; - } - } - - // data must be in buf2 - - - // step 8+decode (paper output is X, now buffer) - // this generates pairs of data a la 8 and pushes them directly through - // the decode kernel (pushing rather than pulling) to avoid having - // to make another pass later - - // this cannot POSSIBLY be in place, so we refer to the buffers directly - - { - float *d0,*d1,*d2,*d3; - - float *B = f->B[blocktype] + n2 - 8; - float *e = buf2 + n2 - 8; - d0 = &buffer[0]; - d1 = &buffer[n2-4]; - d2 = &buffer[n2]; - d3 = &buffer[n-4]; - while (e >= v) { - float p0,p1,p2,p3; - - p3 = e[6]*B[7] - e[7]*B[6]; - p2 = -e[6]*B[6] - e[7]*B[7]; - - d0[0] = p3; - d1[3] = - p3; - d2[0] = p2; - d3[3] = p2; - - p1 = e[4]*B[5] - e[5]*B[4]; - p0 = -e[4]*B[4] - e[5]*B[5]; - - d0[1] = p1; - d1[2] = - p1; - d2[1] = p0; - d3[2] = p0; - - p3 = e[2]*B[3] - e[3]*B[2]; - p2 = -e[2]*B[2] - e[3]*B[3]; - - d0[2] = p3; - d1[1] = - p3; - d2[2] = p2; - d3[1] = p2; - - p1 = e[0]*B[1] - e[1]*B[0]; - p0 = -e[0]*B[0] - e[1]*B[1]; - - d0[3] = p1; - d1[0] = - p1; - d2[3] = p0; - d3[0] = p0; - - B -= 8; - e -= 8; - d0 += 4; - d2 += 4; - d1 -= 4; - d3 -= 4; - } - } - - temp_free(f,buf2); - temp_alloc_restore(f,save_point); -} - -#if 0 -// this is the original version of the above code, if you want to optimize it from scratch -void inverse_mdct_naive(float *buffer, int n) -{ - float s; - float A[1 << 12], B[1 << 12], C[1 << 11]; - int i,k,k2,k4, n2 = n >> 1, n4 = n >> 2, n8 = n >> 3, l; - int n3_4 = n - n4, ld; - // how can they claim this only uses N words?! - // oh, because they're only used sparsely, whoops - float u[1 << 13], X[1 << 13], v[1 << 13], w[1 << 13]; - // set up twiddle factors - - for (k=k2=0; k < n4; ++k,k2+=2) { - A[k2 ] = (float) cos(4*k*M_PI/n); - A[k2+1] = (float) -sin(4*k*M_PI/n); - B[k2 ] = (float) cos((k2+1)*M_PI/n/2); - B[k2+1] = (float) sin((k2+1)*M_PI/n/2); - } - for (k=k2=0; k < n8; ++k,k2+=2) { - C[k2 ] = (float) cos(2*(k2+1)*M_PI/n); - C[k2+1] = (float) -sin(2*(k2+1)*M_PI/n); - } - - // IMDCT algorithm from "The use of multirate filter banks for coding of high quality digital audio" - // Note there are bugs in that pseudocode, presumably due to them attempting - // to rename the arrays nicely rather than representing the way their actual - // implementation bounces buffers back and forth. As a result, even in the - // "some formulars corrected" version, a direct implementation fails. These - // are noted below as "paper bug". - - // copy and reflect spectral data - for (k=0; k < n2; ++k) u[k] = buffer[k]; - for ( ; k < n ; ++k) u[k] = -buffer[n - k - 1]; - // kernel from paper - // step 1 - for (k=k2=k4=0; k < n4; k+=1, k2+=2, k4+=4) { - v[n-k4-1] = (u[k4] - u[n-k4-1]) * A[k2] - (u[k4+2] - u[n-k4-3])*A[k2+1]; - v[n-k4-3] = (u[k4] - u[n-k4-1]) * A[k2+1] + (u[k4+2] - u[n-k4-3])*A[k2]; - } - // step 2 - for (k=k4=0; k < n8; k+=1, k4+=4) { - w[n2+3+k4] = v[n2+3+k4] + v[k4+3]; - w[n2+1+k4] = v[n2+1+k4] + v[k4+1]; - w[k4+3] = (v[n2+3+k4] - v[k4+3])*A[n2-4-k4] - (v[n2+1+k4]-v[k4+1])*A[n2-3-k4]; - w[k4+1] = (v[n2+1+k4] - v[k4+1])*A[n2-4-k4] + (v[n2+3+k4]-v[k4+3])*A[n2-3-k4]; - } - // step 3 - ld = ilog(n) - 1; // ilog is off-by-one from normal definitions - for (l=0; l < ld-3; ++l) { - int k0 = n >> (l+2), k1 = 1 << (l+3); - int rlim = n >> (l+4), r4, r; - int s2lim = 1 << (l+2), s2; - for (r=r4=0; r < rlim; r4+=4,++r) { - for (s2=0; s2 < s2lim; s2+=2) { - u[n-1-k0*s2-r4] = w[n-1-k0*s2-r4] + w[n-1-k0*(s2+1)-r4]; - u[n-3-k0*s2-r4] = w[n-3-k0*s2-r4] + w[n-3-k0*(s2+1)-r4]; - u[n-1-k0*(s2+1)-r4] = (w[n-1-k0*s2-r4] - w[n-1-k0*(s2+1)-r4]) * A[r*k1] - - (w[n-3-k0*s2-r4] - w[n-3-k0*(s2+1)-r4]) * A[r*k1+1]; - u[n-3-k0*(s2+1)-r4] = (w[n-3-k0*s2-r4] - w[n-3-k0*(s2+1)-r4]) * A[r*k1] - + (w[n-1-k0*s2-r4] - w[n-1-k0*(s2+1)-r4]) * A[r*k1+1]; - } - } - if (l+1 < ld-3) { - // paper bug: ping-ponging of u&w here is omitted - memcpy(w, u, sizeof(u)); - } - } - - // step 4 - for (i=0; i < n8; ++i) { - int j = bit_reverse(i) >> (32-ld+3); - assert(j < n8); - if (i == j) { - // paper bug: original code probably swapped in place; if copying, - // need to directly copy in this case - int i8 = i << 3; - v[i8+1] = u[i8+1]; - v[i8+3] = u[i8+3]; - v[i8+5] = u[i8+5]; - v[i8+7] = u[i8+7]; - } else if (i < j) { - int i8 = i << 3, j8 = j << 3; - v[j8+1] = u[i8+1], v[i8+1] = u[j8 + 1]; - v[j8+3] = u[i8+3], v[i8+3] = u[j8 + 3]; - v[j8+5] = u[i8+5], v[i8+5] = u[j8 + 5]; - v[j8+7] = u[i8+7], v[i8+7] = u[j8 + 7]; - } - } - // step 5 - for (k=0; k < n2; ++k) { - w[k] = v[k*2+1]; - } - // step 6 - for (k=k2=k4=0; k < n8; ++k, k2 += 2, k4 += 4) { - u[n-1-k2] = w[k4]; - u[n-2-k2] = w[k4+1]; - u[n3_4 - 1 - k2] = w[k4+2]; - u[n3_4 - 2 - k2] = w[k4+3]; - } - // step 7 - for (k=k2=0; k < n8; ++k, k2 += 2) { - v[n2 + k2 ] = ( u[n2 + k2] + u[n-2-k2] + C[k2+1]*(u[n2+k2]-u[n-2-k2]) + C[k2]*(u[n2+k2+1]+u[n-2-k2+1]))/2; - v[n-2 - k2] = ( u[n2 + k2] + u[n-2-k2] - C[k2+1]*(u[n2+k2]-u[n-2-k2]) - C[k2]*(u[n2+k2+1]+u[n-2-k2+1]))/2; - v[n2+1+ k2] = ( u[n2+1+k2] - u[n-1-k2] + C[k2+1]*(u[n2+1+k2]+u[n-1-k2]) - C[k2]*(u[n2+k2]-u[n-2-k2]))/2; - v[n-1 - k2] = (-u[n2+1+k2] + u[n-1-k2] + C[k2+1]*(u[n2+1+k2]+u[n-1-k2]) - C[k2]*(u[n2+k2]-u[n-2-k2]))/2; - } - // step 8 - for (k=k2=0; k < n4; ++k,k2 += 2) { - X[k] = v[k2+n2]*B[k2 ] + v[k2+1+n2]*B[k2+1]; - X[n2-1-k] = v[k2+n2]*B[k2+1] - v[k2+1+n2]*B[k2 ]; - } - - // decode kernel to output - // determined the following value experimentally - // (by first figuring out what made inverse_mdct_slow work); then matching that here - // (probably vorbis encoder premultiplies by n or n/2, to save it on the decoder?) - s = 0.5; // theoretically would be n4 - - // [[[ note! the s value of 0.5 is compensated for by the B[] in the current code, - // so it needs to use the "old" B values to behave correctly, or else - // set s to 1.0 ]]] - for (i=0; i < n4 ; ++i) buffer[i] = s * X[i+n4]; - for ( ; i < n3_4; ++i) buffer[i] = -s * X[n3_4 - i - 1]; - for ( ; i < n ; ++i) buffer[i] = -s * X[i - n3_4]; -} -#endif - -static float *get_window(vorb *f, int len) -{ - len <<= 1; - if (len == f->blocksize_0) return f->window[0]; - if (len == f->blocksize_1) return f->window[1]; - return NULL; -} - -#ifndef STB_VORBIS_NO_DEFER_FLOOR -typedef int16 YTYPE; -#else -typedef int YTYPE; -#endif -static int do_floor(vorb *f, Mapping *map, int i, int n, float *target, YTYPE *finalY, uint8 *step2_flag) -{ - int n2 = n >> 1; - int s = map->chan[i].mux, floor; - floor = map->submap_floor[s]; - if (f->floor_types[floor] == 0) { - return error(f, VORBIS_invalid_stream); - } else { - Floor1 *g = &f->floor_config[floor].floor1; - int j,q; - int lx = 0, ly = finalY[0] * g->floor1_multiplier; - for (q=1; q < g->values; ++q) { - j = g->sorted_order[q]; - #ifndef STB_VORBIS_NO_DEFER_FLOOR - if (finalY[j] >= 0) - #else - if (step2_flag[j]) - #endif - { - int hy = finalY[j] * g->floor1_multiplier; - int hx = g->Xlist[j]; - if (lx != hx) - draw_line(target, lx,ly, hx,hy, n2); - CHECK(f); - lx = hx, ly = hy; - } - } - if (lx < n2) { - // optimization of: draw_line(target, lx,ly, n,ly, n2); - for (j=lx; j < n2; ++j) - LINE_OP(target[j], inverse_db_table[ly]); - CHECK(f); - } - } - return TRUE; -} - -// The meaning of "left" and "right" -// -// For a given frame: -// we compute samples from 0..n -// window_center is n/2 -// we'll window and mix the samples from left_start to left_end with data from the previous frame -// all of the samples from left_end to right_start can be output without mixing; however, -// this interval is 0-length except when transitioning between short and long frames -// all of the samples from right_start to right_end need to be mixed with the next frame, -// which we don't have, so those get saved in a buffer -// frame N's right_end-right_start, the number of samples to mix with the next frame, -// has to be the same as frame N+1's left_end-left_start (which they are by -// construction) - -static int vorbis_decode_initial(vorb *f, int *p_left_start, int *p_left_end, int *p_right_start, int *p_right_end, int *mode) -{ - Mode *m; - int i, n, prev, next, window_center; - f->channel_buffer_start = f->channel_buffer_end = 0; - - retry: - if (f->eof) return FALSE; - if (!maybe_start_packet(f)) - return FALSE; - // check packet type - if (get_bits(f,1) != 0) { - if (IS_PUSH_MODE(f)) - return error(f,VORBIS_bad_packet_type); - while (EOP != get8_packet(f)); - goto retry; - } - - if (f->alloc.alloc_buffer) - assert(f->alloc.alloc_buffer_length_in_bytes == f->temp_offset); - - i = get_bits(f, ilog(f->mode_count-1)); - if (i == EOP) return FALSE; - if (i >= f->mode_count) return FALSE; - *mode = i; - m = f->mode_config + i; - if (m->blockflag) { - n = f->blocksize_1; - prev = get_bits(f,1); - next = get_bits(f,1); - } else { - prev = next = 0; - n = f->blocksize_0; - } - -// WINDOWING - - window_center = n >> 1; - if (m->blockflag && !prev) { - *p_left_start = (n - f->blocksize_0) >> 2; - *p_left_end = (n + f->blocksize_0) >> 2; - } else { - *p_left_start = 0; - *p_left_end = window_center; - } - if (m->blockflag && !next) { - *p_right_start = (n*3 - f->blocksize_0) >> 2; - *p_right_end = (n*3 + f->blocksize_0) >> 2; - } else { - *p_right_start = window_center; - *p_right_end = n; - } - - return TRUE; -} - -static int vorbis_decode_packet_rest(vorb *f, int *len, Mode *m, int left_start, int left_end, int right_start, int right_end, int *p_left) -{ - Mapping *map; - int i,j,k,n,n2; - int zero_channel[256]; - int really_zero_channel[256]; - -// WINDOWING - - n = f->blocksize[m->blockflag]; - map = &f->mapping[m->mapping]; - -// FLOORS - n2 = n >> 1; - - CHECK(f); - - for (i=0; i < f->channels; ++i) { - int s = map->chan[i].mux, floor; - zero_channel[i] = FALSE; - floor = map->submap_floor[s]; - if (f->floor_types[floor] == 0) { - return error(f, VORBIS_invalid_stream); - } else { - Floor1 *g = &f->floor_config[floor].floor1; - if (get_bits(f, 1)) { - short *finalY; - uint8 step2_flag[256]; - static int range_list[4] = { 256, 128, 86, 64 }; - int range = range_list[g->floor1_multiplier-1]; - int offset = 2; - finalY = f->finalY[i]; - finalY[0] = get_bits(f, ilog(range)-1); - finalY[1] = get_bits(f, ilog(range)-1); - for (j=0; j < g->partitions; ++j) { - int pclass = g->partition_class_list[j]; - int cdim = g->class_dimensions[pclass]; - int cbits = g->class_subclasses[pclass]; - int csub = (1 << cbits)-1; - int cval = 0; - if (cbits) { - Codebook *c = f->codebooks + g->class_masterbooks[pclass]; - DECODE(cval,f,c); - } - for (k=0; k < cdim; ++k) { - int book = g->subclass_books[pclass][cval & csub]; - cval = cval >> cbits; - if (book >= 0) { - int temp; - Codebook *c = f->codebooks + book; - DECODE(temp,f,c); - finalY[offset++] = temp; - } else - finalY[offset++] = 0; - } - } - if (f->valid_bits == INVALID_BITS) goto error; // behavior according to spec - step2_flag[0] = step2_flag[1] = 1; - for (j=2; j < g->values; ++j) { - int low, high, pred, highroom, lowroom, room, val; - low = g->neighbors[j][0]; - high = g->neighbors[j][1]; - //neighbors(g->Xlist, j, &low, &high); - pred = predict_point(g->Xlist[j], g->Xlist[low], g->Xlist[high], finalY[low], finalY[high]); - val = finalY[j]; - highroom = range - pred; - lowroom = pred; - if (highroom < lowroom) - room = highroom * 2; - else - room = lowroom * 2; - if (val) { - step2_flag[low] = step2_flag[high] = 1; - step2_flag[j] = 1; - if (val >= room) - if (highroom > lowroom) - finalY[j] = val - lowroom + pred; - else - finalY[j] = pred - val + highroom - 1; - else - if (val & 1) - finalY[j] = pred - ((val+1)>>1); - else - finalY[j] = pred + (val>>1); - } else { - step2_flag[j] = 0; - finalY[j] = pred; - } - } - -#ifdef STB_VORBIS_NO_DEFER_FLOOR - do_floor(f, map, i, n, f->floor_buffers[i], finalY, step2_flag); -#else - // defer final floor computation until _after_ residue - for (j=0; j < g->values; ++j) { - if (!step2_flag[j]) - finalY[j] = -1; - } -#endif - } else { - error: - zero_channel[i] = TRUE; - } - // So we just defer everything else to later - - // at this point we've decoded the floor into buffer - } - } - CHECK(f); - // at this point we've decoded all floors - - if (f->alloc.alloc_buffer) - assert(f->alloc.alloc_buffer_length_in_bytes == f->temp_offset); - - // re-enable coupled channels if necessary - memcpy(really_zero_channel, zero_channel, sizeof(really_zero_channel[0]) * f->channels); - for (i=0; i < map->coupling_steps; ++i) - if (!zero_channel[map->chan[i].magnitude] || !zero_channel[map->chan[i].angle]) { - zero_channel[map->chan[i].magnitude] = zero_channel[map->chan[i].angle] = FALSE; - } - - CHECK(f); -// RESIDUE DECODE - for (i=0; i < map->submaps; ++i) { - float *residue_buffers[STB_VORBIS_MAX_CHANNELS]; - int r; - uint8 do_not_decode[256]; - int ch = 0; - for (j=0; j < f->channels; ++j) { - if (map->chan[j].mux == i) { - if (zero_channel[j]) { - do_not_decode[ch] = TRUE; - residue_buffers[ch] = NULL; - } else { - do_not_decode[ch] = FALSE; - residue_buffers[ch] = f->channel_buffers[j]; - } - ++ch; - } - } - r = map->submap_residue[i]; - decode_residue(f, residue_buffers, ch, n2, r, do_not_decode); - } - - if (f->alloc.alloc_buffer) - assert(f->alloc.alloc_buffer_length_in_bytes == f->temp_offset); - CHECK(f); - -// INVERSE COUPLING - for (i = map->coupling_steps-1; i >= 0; --i) { - int n2 = n >> 1; - float *m = f->channel_buffers[map->chan[i].magnitude]; - float *a = f->channel_buffers[map->chan[i].angle ]; - for (j=0; j < n2; ++j) { - float a2,m2; - if (m[j] > 0) - if (a[j] > 0) - m2 = m[j], a2 = m[j] - a[j]; - else - a2 = m[j], m2 = m[j] + a[j]; - else - if (a[j] > 0) - m2 = m[j], a2 = m[j] + a[j]; - else - a2 = m[j], m2 = m[j] - a[j]; - m[j] = m2; - a[j] = a2; - } - } - CHECK(f); - - // finish decoding the floors -#ifndef STB_VORBIS_NO_DEFER_FLOOR - for (i=0; i < f->channels; ++i) { - if (really_zero_channel[i]) { - memset(f->channel_buffers[i], 0, sizeof(*f->channel_buffers[i]) * n2); - } else { - do_floor(f, map, i, n, f->channel_buffers[i], f->finalY[i], NULL); - } - } -#else - for (i=0; i < f->channels; ++i) { - if (really_zero_channel[i]) { - memset(f->channel_buffers[i], 0, sizeof(*f->channel_buffers[i]) * n2); - } else { - for (j=0; j < n2; ++j) - f->channel_buffers[i][j] *= f->floor_buffers[i][j]; - } - } -#endif - -// INVERSE MDCT - CHECK(f); - for (i=0; i < f->channels; ++i) - inverse_mdct(f->channel_buffers[i], n, f, m->blockflag); - CHECK(f); - - // this shouldn't be necessary, unless we exited on an error - // and want to flush to get to the next packet - flush_packet(f); - - if (f->first_decode) { - // assume we start so first non-discarded sample is sample 0 - // this isn't to spec, but spec would require us to read ahead - // and decode the size of all current frames--could be done, - // but presumably it's not a commonly used feature - f->current_loc = -n2; // start of first frame is positioned for discard - // we might have to discard samples "from" the next frame too, - // if we're lapping a large block then a small at the start? - f->discard_samples_deferred = n - right_end; - f->current_loc_valid = TRUE; - f->first_decode = FALSE; - } else if (f->discard_samples_deferred) { - if (f->discard_samples_deferred >= right_start - left_start) { - f->discard_samples_deferred -= (right_start - left_start); - left_start = right_start; - *p_left = left_start; - } else { - left_start += f->discard_samples_deferred; - *p_left = left_start; - f->discard_samples_deferred = 0; - } - } else if (f->previous_length == 0 && f->current_loc_valid) { - // we're recovering from a seek... that means we're going to discard - // the samples from this packet even though we know our position from - // the last page header, so we need to update the position based on - // the discarded samples here - // but wait, the code below is going to add this in itself even - // on a discard, so we don't need to do it here... - } - - // check if we have ogg information about the sample # for this packet - if (f->last_seg_which == f->end_seg_with_known_loc) { - // if we have a valid current loc, and this is final: - if (f->current_loc_valid && (f->page_flag & PAGEFLAG_last_page)) { - uint32 current_end = f->known_loc_for_packet; - // then let's infer the size of the (probably) short final frame - if (current_end < f->current_loc + (right_end-left_start)) { - if (current_end < f->current_loc) { - // negative truncation, that's impossible! - *len = 0; - } else { - *len = current_end - f->current_loc; - } - *len += left_start; // this doesn't seem right, but has no ill effect on my test files - if (*len > right_end) *len = right_end; // this should never happen - f->current_loc += *len; - return TRUE; - } - } - // otherwise, just set our sample loc - // guess that the ogg granule pos refers to the _middle_ of the - // last frame? - // set f->current_loc to the position of left_start - f->current_loc = f->known_loc_for_packet - (n2-left_start); - f->current_loc_valid = TRUE; - } - if (f->current_loc_valid) - f->current_loc += (right_start - left_start); - - if (f->alloc.alloc_buffer) - assert(f->alloc.alloc_buffer_length_in_bytes == f->temp_offset); - *len = right_end; // ignore samples after the window goes to 0 - CHECK(f); - - return TRUE; -} - -static int vorbis_decode_packet(vorb *f, int *len, int *p_left, int *p_right) -{ - int mode, left_end, right_end; - if (!vorbis_decode_initial(f, p_left, &left_end, p_right, &right_end, &mode)) return 0; - return vorbis_decode_packet_rest(f, len, f->mode_config + mode, *p_left, left_end, *p_right, right_end, p_left); -} - -static int vorbis_finish_frame(stb_vorbis *f, int len, int left, int right) -{ - int prev,i,j; - // we use right&left (the start of the right- and left-window sin()-regions) - // to determine how much to return, rather than inferring from the rules - // (same result, clearer code); 'left' indicates where our sin() window - // starts, therefore where the previous window's right edge starts, and - // therefore where to start mixing from the previous buffer. 'right' - // indicates where our sin() ending-window starts, therefore that's where - // we start saving, and where our returned-data ends. - - // mixin from previous window - if (f->previous_length) { - int i,j, n = f->previous_length; - float *w = get_window(f, n); - if (w == NULL) return 0; - for (i=0; i < f->channels; ++i) { - for (j=0; j < n; ++j) - f->channel_buffers[i][left+j] = - f->channel_buffers[i][left+j]*w[ j] + - f->previous_window[i][ j]*w[n-1-j]; - } - } - - prev = f->previous_length; - - // last half of this data becomes previous window - f->previous_length = len - right; - - // @OPTIMIZE: could avoid this copy by double-buffering the - // output (flipping previous_window with channel_buffers), but - // then previous_window would have to be 2x as large, and - // channel_buffers couldn't be temp mem (although they're NOT - // currently temp mem, they could be (unless we want to level - // performance by spreading out the computation)) - for (i=0; i < f->channels; ++i) - for (j=0; right+j < len; ++j) - f->previous_window[i][j] = f->channel_buffers[i][right+j]; - - if (!prev) - // there was no previous packet, so this data isn't valid... - // this isn't entirely true, only the would-have-overlapped data - // isn't valid, but this seems to be what the spec requires - return 0; - - // truncate a short frame - if (len < right) right = len; - - f->samples_output += right-left; - - return right - left; -} - -static int vorbis_pump_first_frame(stb_vorbis *f) -{ - int len, right, left, res; - res = vorbis_decode_packet(f, &len, &left, &right); - if (res) - vorbis_finish_frame(f, len, left, right); - return res; -} - -#ifndef STB_VORBIS_NO_PUSHDATA_API -static int is_whole_packet_present(stb_vorbis *f) -{ - // make sure that we have the packet available before continuing... - // this requires a full ogg parse, but we know we can fetch from f->stream - - // instead of coding this out explicitly, we could save the current read state, - // read the next packet with get8() until end-of-packet, check f->eof, then - // reset the state? but that would be slower, esp. since we'd have over 256 bytes - // of state to restore (primarily the page segment table) - - int s = f->next_seg, first = TRUE; - uint8 *p = f->stream; - - if (s != -1) { // if we're not starting the packet with a 'continue on next page' flag - for (; s < f->segment_count; ++s) { - p += f->segments[s]; - if (f->segments[s] < 255) // stop at first short segment - break; - } - // either this continues, or it ends it... - if (s == f->segment_count) - s = -1; // set 'crosses page' flag - if (p > f->stream_end) return error(f, VORBIS_need_more_data); - first = FALSE; - } - for (; s == -1;) { - uint8 *q; - int n; - - // check that we have the page header ready - if (p + 26 >= f->stream_end) return error(f, VORBIS_need_more_data); - // validate the page - if (memcmp(p, ogg_page_header, 4)) return error(f, VORBIS_invalid_stream); - if (p[4] != 0) return error(f, VORBIS_invalid_stream); - if (first) { // the first segment must NOT have 'continued_packet', later ones MUST - if (f->previous_length) - if ((p[5] & PAGEFLAG_continued_packet)) return error(f, VORBIS_invalid_stream); - // if no previous length, we're resynching, so we can come in on a continued-packet, - // which we'll just drop - } else { - if (!(p[5] & PAGEFLAG_continued_packet)) return error(f, VORBIS_invalid_stream); - } - n = p[26]; // segment counts - q = p+27; // q points to segment table - p = q + n; // advance past header - // make sure we've read the segment table - if (p > f->stream_end) return error(f, VORBIS_need_more_data); - for (s=0; s < n; ++s) { - p += q[s]; - if (q[s] < 255) - break; - } - if (s == n) - s = -1; // set 'crosses page' flag - if (p > f->stream_end) return error(f, VORBIS_need_more_data); - first = FALSE; - } - return TRUE; -} -#endif // !STB_VORBIS_NO_PUSHDATA_API - -static int start_decoder(vorb *f) -{ - uint8 header[6], x,y; - int len,i,j,k, max_submaps = 0; - int longest_floorlist=0; - - // first page, first packet - f->first_decode = TRUE; - - if (!start_page(f)) return FALSE; - // validate page flag - if (!(f->page_flag & PAGEFLAG_first_page)) return error(f, VORBIS_invalid_first_page); - if (f->page_flag & PAGEFLAG_last_page) return error(f, VORBIS_invalid_first_page); - if (f->page_flag & PAGEFLAG_continued_packet) return error(f, VORBIS_invalid_first_page); - // check for expected packet length - if (f->segment_count != 1) return error(f, VORBIS_invalid_first_page); - if (f->segments[0] != 30) { - // check for the Ogg skeleton fishead identifying header to refine our error - if (f->segments[0] == 64 && - getn(f, header, 6) && - header[0] == 'f' && - header[1] == 'i' && - header[2] == 's' && - header[3] == 'h' && - header[4] == 'e' && - header[5] == 'a' && - get8(f) == 'd' && - get8(f) == '\0') return error(f, VORBIS_ogg_skeleton_not_supported); - else - return error(f, VORBIS_invalid_first_page); - } - - // read packet - // check packet header - if (get8(f) != VORBIS_packet_id) return error(f, VORBIS_invalid_first_page); - if (!getn(f, header, 6)) return error(f, VORBIS_unexpected_eof); - if (!vorbis_validate(header)) return error(f, VORBIS_invalid_first_page); - // vorbis_version - if (get32(f) != 0) return error(f, VORBIS_invalid_first_page); - f->channels = get8(f); if (!f->channels) return error(f, VORBIS_invalid_first_page); - if (f->channels > STB_VORBIS_MAX_CHANNELS) return error(f, VORBIS_too_many_channels); - f->sample_rate = get32(f); if (!f->sample_rate) return error(f, VORBIS_invalid_first_page); - get32(f); // bitrate_maximum - get32(f); // bitrate_nominal - get32(f); // bitrate_minimum - x = get8(f); - { - int log0,log1; - log0 = x & 15; - log1 = x >> 4; - f->blocksize_0 = 1 << log0; - f->blocksize_1 = 1 << log1; - if (log0 < 6 || log0 > 13) return error(f, VORBIS_invalid_setup); - if (log1 < 6 || log1 > 13) return error(f, VORBIS_invalid_setup); - if (log0 > log1) return error(f, VORBIS_invalid_setup); - } - - // framing_flag - x = get8(f); - if (!(x & 1)) return error(f, VORBIS_invalid_first_page); - - // second packet! - if (!start_page(f)) return FALSE; - - if (!start_packet(f)) return FALSE; - - if (!next_segment(f)) return FALSE; - - if (get8_packet(f) != VORBIS_packet_comment) return error(f, VORBIS_invalid_setup); - for (i=0; i < 6; ++i) header[i] = get8_packet(f); - if (!vorbis_validate(header)) return error(f, VORBIS_invalid_setup); - //file vendor - len = get32_packet(f); - f->vendor = (char*)setup_malloc(f, sizeof(char) * (len+1)); - if (f->vendor == NULL) return error(f, VORBIS_outofmem); - for(i=0; i < len; ++i) { - f->vendor[i] = get8_packet(f); - } - f->vendor[len] = (char)'\0'; - //user comments - f->comment_list_length = get32_packet(f); - f->comment_list = (char**)setup_malloc(f, sizeof(char*) * (f->comment_list_length)); - if (f->comment_list == NULL) return error(f, VORBIS_outofmem); - - for(i=0; i < f->comment_list_length; ++i) { - len = get32_packet(f); - f->comment_list[i] = (char*)setup_malloc(f, sizeof(char) * (len+1)); - if (f->comment_list[i] == NULL) return error(f, VORBIS_outofmem); - - for(j=0; j < len; ++j) { - f->comment_list[i][j] = get8_packet(f); - } - f->comment_list[i][len] = (char)'\0'; - } - - // framing_flag - x = get8_packet(f); - if (!(x & 1)) return error(f, VORBIS_invalid_setup); - - - skip(f, f->bytes_in_seg); - f->bytes_in_seg = 0; - - do { - len = next_segment(f); - skip(f, len); - f->bytes_in_seg = 0; - } while (len); - - // third packet! - if (!start_packet(f)) return FALSE; - - #ifndef STB_VORBIS_NO_PUSHDATA_API - if (IS_PUSH_MODE(f)) { - if (!is_whole_packet_present(f)) { - // convert error in ogg header to write type - if (f->error == VORBIS_invalid_stream) - f->error = VORBIS_invalid_setup; - return FALSE; - } - } - #endif - - crc32_init(); // always init it, to avoid multithread race conditions - - if (get8_packet(f) != VORBIS_packet_setup) return error(f, VORBIS_invalid_setup); - for (i=0; i < 6; ++i) header[i] = get8_packet(f); - if (!vorbis_validate(header)) return error(f, VORBIS_invalid_setup); - - // codebooks - - f->codebook_count = get_bits(f,8) + 1; - f->codebooks = (Codebook *) setup_malloc(f, sizeof(*f->codebooks) * f->codebook_count); - if (f->codebooks == NULL) return error(f, VORBIS_outofmem); - memset(f->codebooks, 0, sizeof(*f->codebooks) * f->codebook_count); - for (i=0; i < f->codebook_count; ++i) { - uint32 *values; - int ordered, sorted_count; - int total=0; - uint8 *lengths; - Codebook *c = f->codebooks+i; - CHECK(f); - x = get_bits(f, 8); if (x != 0x42) return error(f, VORBIS_invalid_setup); - x = get_bits(f, 8); if (x != 0x43) return error(f, VORBIS_invalid_setup); - x = get_bits(f, 8); if (x != 0x56) return error(f, VORBIS_invalid_setup); - x = get_bits(f, 8); - c->dimensions = (get_bits(f, 8)<<8) + x; - x = get_bits(f, 8); - y = get_bits(f, 8); - c->entries = (get_bits(f, 8)<<16) + (y<<8) + x; - ordered = get_bits(f,1); - c->sparse = ordered ? 0 : get_bits(f,1); - - if (c->dimensions == 0 && c->entries != 0) return error(f, VORBIS_invalid_setup); - - if (c->sparse) - lengths = (uint8 *) setup_temp_malloc(f, c->entries); - else - lengths = c->codeword_lengths = (uint8 *) setup_malloc(f, c->entries); - - if (!lengths) return error(f, VORBIS_outofmem); - - if (ordered) { - int current_entry = 0; - int current_length = get_bits(f,5) + 1; - while (current_entry < c->entries) { - int limit = c->entries - current_entry; - int n = get_bits(f, ilog(limit)); - if (current_length >= 32) return error(f, VORBIS_invalid_setup); - if (current_entry + n > (int) c->entries) { return error(f, VORBIS_invalid_setup); } - memset(lengths + current_entry, current_length, n); - current_entry += n; - ++current_length; - } - } else { - for (j=0; j < c->entries; ++j) { - int present = c->sparse ? get_bits(f,1) : 1; - if (present) { - lengths[j] = get_bits(f, 5) + 1; - ++total; - if (lengths[j] == 32) - return error(f, VORBIS_invalid_setup); - } else { - lengths[j] = NO_CODE; - } - } - } - - if (c->sparse && total >= c->entries >> 2) { - // convert sparse items to non-sparse! - if (c->entries > (int) f->setup_temp_memory_required) - f->setup_temp_memory_required = c->entries; - - c->codeword_lengths = (uint8 *) setup_malloc(f, c->entries); - if (c->codeword_lengths == NULL) return error(f, VORBIS_outofmem); - memcpy(c->codeword_lengths, lengths, c->entries); - setup_temp_free(f, lengths, c->entries); // note this is only safe if there have been no intervening temp mallocs! - lengths = c->codeword_lengths; - c->sparse = 0; - } - - // compute the size of the sorted tables - if (c->sparse) { - sorted_count = total; - } else { - sorted_count = 0; - #ifndef STB_VORBIS_NO_HUFFMAN_BINARY_SEARCH - for (j=0; j < c->entries; ++j) - if (lengths[j] > STB_VORBIS_FAST_HUFFMAN_LENGTH && lengths[j] != NO_CODE) - ++sorted_count; - #endif - } - - c->sorted_entries = sorted_count; - values = NULL; - - CHECK(f); - if (!c->sparse) { - c->codewords = (uint32 *) setup_malloc(f, sizeof(c->codewords[0]) * c->entries); - if (!c->codewords) return error(f, VORBIS_outofmem); - } else { - unsigned int size; - if (c->sorted_entries) { - c->codeword_lengths = (uint8 *) setup_malloc(f, c->sorted_entries); - if (!c->codeword_lengths) return error(f, VORBIS_outofmem); - c->codewords = (uint32 *) setup_temp_malloc(f, sizeof(*c->codewords) * c->sorted_entries); - if (!c->codewords) return error(f, VORBIS_outofmem); - values = (uint32 *) setup_temp_malloc(f, sizeof(*values) * c->sorted_entries); - if (!values) return error(f, VORBIS_outofmem); - } - size = c->entries + (sizeof(*c->codewords) + sizeof(*values)) * c->sorted_entries; - if (size > f->setup_temp_memory_required) - f->setup_temp_memory_required = size; - } - - if (!compute_codewords(c, lengths, c->entries, values)) { - if (c->sparse) setup_temp_free(f, values, 0); - return error(f, VORBIS_invalid_setup); - } - - if (c->sorted_entries) { - // allocate an extra slot for sentinels - c->sorted_codewords = (uint32 *) setup_malloc(f, sizeof(*c->sorted_codewords) * (c->sorted_entries+1)); - if (c->sorted_codewords == NULL) return error(f, VORBIS_outofmem); - // allocate an extra slot at the front so that c->sorted_values[-1] is defined - // so that we can catch that case without an extra if - c->sorted_values = ( int *) setup_malloc(f, sizeof(*c->sorted_values ) * (c->sorted_entries+1)); - if (c->sorted_values == NULL) return error(f, VORBIS_outofmem); - ++c->sorted_values; - c->sorted_values[-1] = -1; - compute_sorted_huffman(c, lengths, values); - } - - if (c->sparse) { - setup_temp_free(f, values, sizeof(*values)*c->sorted_entries); - setup_temp_free(f, c->codewords, sizeof(*c->codewords)*c->sorted_entries); - setup_temp_free(f, lengths, c->entries); - c->codewords = NULL; - } - - compute_accelerated_huffman(c); - - CHECK(f); - c->lookup_type = get_bits(f, 4); - if (c->lookup_type > 2) return error(f, VORBIS_invalid_setup); - if (c->lookup_type > 0) { - uint16 *mults; - c->minimum_value = float32_unpack(get_bits(f, 32)); - c->delta_value = float32_unpack(get_bits(f, 32)); - c->value_bits = get_bits(f, 4)+1; - c->sequence_p = get_bits(f,1); - if (c->lookup_type == 1) { - int values = lookup1_values(c->entries, c->dimensions); - if (values < 0) return error(f, VORBIS_invalid_setup); - c->lookup_values = (uint32) values; - } else { - c->lookup_values = c->entries * c->dimensions; - } - if (c->lookup_values == 0) return error(f, VORBIS_invalid_setup); - mults = (uint16 *) setup_temp_malloc(f, sizeof(mults[0]) * c->lookup_values); - if (mults == NULL) return error(f, VORBIS_outofmem); - for (j=0; j < (int) c->lookup_values; ++j) { - int q = get_bits(f, c->value_bits); - if (q == EOP) { setup_temp_free(f,mults,sizeof(mults[0])*c->lookup_values); return error(f, VORBIS_invalid_setup); } - mults[j] = q; - } - -#ifndef STB_VORBIS_DIVIDES_IN_CODEBOOK - if (c->lookup_type == 1) { - int len, sparse = c->sparse; - float last=0; - // pre-expand the lookup1-style multiplicands, to avoid a divide in the inner loop - if (sparse) { - if (c->sorted_entries == 0) goto skip; - c->multiplicands = (codetype *) setup_malloc(f, sizeof(c->multiplicands[0]) * c->sorted_entries * c->dimensions); - } else - c->multiplicands = (codetype *) setup_malloc(f, sizeof(c->multiplicands[0]) * c->entries * c->dimensions); - if (c->multiplicands == NULL) { setup_temp_free(f,mults,sizeof(mults[0])*c->lookup_values); return error(f, VORBIS_outofmem); } - len = sparse ? c->sorted_entries : c->entries; - for (j=0; j < len; ++j) { - unsigned int z = sparse ? c->sorted_values[j] : j; - unsigned int div=1; - for (k=0; k < c->dimensions; ++k) { - int off = (z / div) % c->lookup_values; - float val = mults[off]; - val = mults[off]*c->delta_value + c->minimum_value + last; - c->multiplicands[j*c->dimensions + k] = val; - if (c->sequence_p) - last = val; - if (k+1 < c->dimensions) { - if (div > UINT_MAX / (unsigned int) c->lookup_values) { - setup_temp_free(f, mults,sizeof(mults[0])*c->lookup_values); - return error(f, VORBIS_invalid_setup); - } - div *= c->lookup_values; - } - } - } - c->lookup_type = 2; - } - else -#endif - { - float last=0; - CHECK(f); - c->multiplicands = (codetype *) setup_malloc(f, sizeof(c->multiplicands[0]) * c->lookup_values); - if (c->multiplicands == NULL) { setup_temp_free(f, mults,sizeof(mults[0])*c->lookup_values); return error(f, VORBIS_outofmem); } - for (j=0; j < (int) c->lookup_values; ++j) { - float val = mults[j] * c->delta_value + c->minimum_value + last; - c->multiplicands[j] = val; - if (c->sequence_p) - last = val; - } - } -#ifndef STB_VORBIS_DIVIDES_IN_CODEBOOK - skip:; -#endif - setup_temp_free(f, mults, sizeof(mults[0])*c->lookup_values); - - CHECK(f); - } - CHECK(f); - } - - // time domain transfers (notused) - - x = get_bits(f, 6) + 1; - for (i=0; i < x; ++i) { - uint32 z = get_bits(f, 16); - if (z != 0) return error(f, VORBIS_invalid_setup); - } - - // Floors - f->floor_count = get_bits(f, 6)+1; - f->floor_config = (Floor *) setup_malloc(f, f->floor_count * sizeof(*f->floor_config)); - if (f->floor_config == NULL) return error(f, VORBIS_outofmem); - for (i=0; i < f->floor_count; ++i) { - f->floor_types[i] = get_bits(f, 16); - if (f->floor_types[i] > 1) return error(f, VORBIS_invalid_setup); - if (f->floor_types[i] == 0) { - Floor0 *g = &f->floor_config[i].floor0; - g->order = get_bits(f,8); - g->rate = get_bits(f,16); - g->bark_map_size = get_bits(f,16); - g->amplitude_bits = get_bits(f,6); - g->amplitude_offset = get_bits(f,8); - g->number_of_books = get_bits(f,4) + 1; - for (j=0; j < g->number_of_books; ++j) - g->book_list[j] = get_bits(f,8); - return error(f, VORBIS_feature_not_supported); - } else { - stbv__floor_ordering p[31*8+2]; - Floor1 *g = &f->floor_config[i].floor1; - int max_class = -1; - g->partitions = get_bits(f, 5); - for (j=0; j < g->partitions; ++j) { - g->partition_class_list[j] = get_bits(f, 4); - if (g->partition_class_list[j] > max_class) - max_class = g->partition_class_list[j]; - } - for (j=0; j <= max_class; ++j) { - g->class_dimensions[j] = get_bits(f, 3)+1; - g->class_subclasses[j] = get_bits(f, 2); - if (g->class_subclasses[j]) { - g->class_masterbooks[j] = get_bits(f, 8); - if (g->class_masterbooks[j] >= f->codebook_count) return error(f, VORBIS_invalid_setup); - } - for (k=0; k < 1 << g->class_subclasses[j]; ++k) { - g->subclass_books[j][k] = get_bits(f,8)-1; - if (g->subclass_books[j][k] >= f->codebook_count) return error(f, VORBIS_invalid_setup); - } - } - g->floor1_multiplier = get_bits(f,2)+1; - g->rangebits = get_bits(f,4); - g->Xlist[0] = 0; - g->Xlist[1] = 1 << g->rangebits; - g->values = 2; - for (j=0; j < g->partitions; ++j) { - int c = g->partition_class_list[j]; - for (k=0; k < g->class_dimensions[c]; ++k) { - g->Xlist[g->values] = get_bits(f, g->rangebits); - ++g->values; - } - } - // precompute the sorting - for (j=0; j < g->values; ++j) { - p[j].x = g->Xlist[j]; - p[j].id = j; - } - qsort(p, g->values, sizeof(p[0]), point_compare); - for (j=0; j < g->values-1; ++j) - if (p[j].x == p[j+1].x) - return error(f, VORBIS_invalid_setup); - for (j=0; j < g->values; ++j) - g->sorted_order[j] = (uint8) p[j].id; - // precompute the neighbors - for (j=2; j < g->values; ++j) { - int low = 0,hi = 0; - neighbors(g->Xlist, j, &low,&hi); - g->neighbors[j][0] = low; - g->neighbors[j][1] = hi; - } - - if (g->values > longest_floorlist) - longest_floorlist = g->values; - } - } - - // Residue - f->residue_count = get_bits(f, 6)+1; - f->residue_config = (Residue *) setup_malloc(f, f->residue_count * sizeof(f->residue_config[0])); - if (f->residue_config == NULL) return error(f, VORBIS_outofmem); - memset(f->residue_config, 0, f->residue_count * sizeof(f->residue_config[0])); - for (i=0; i < f->residue_count; ++i) { - uint8 residue_cascade[64]; - Residue *r = f->residue_config+i; - f->residue_types[i] = get_bits(f, 16); - if (f->residue_types[i] > 2) return error(f, VORBIS_invalid_setup); - r->begin = get_bits(f, 24); - r->end = get_bits(f, 24); - if (r->end < r->begin) return error(f, VORBIS_invalid_setup); - r->part_size = get_bits(f,24)+1; - r->classifications = get_bits(f,6)+1; - r->classbook = get_bits(f,8); - if (r->classbook >= f->codebook_count) return error(f, VORBIS_invalid_setup); - for (j=0; j < r->classifications; ++j) { - uint8 high_bits=0; - uint8 low_bits=get_bits(f,3); - if (get_bits(f,1)) - high_bits = get_bits(f,5); - residue_cascade[j] = high_bits*8 + low_bits; - } - r->residue_books = (short (*)[8]) setup_malloc(f, sizeof(r->residue_books[0]) * r->classifications); - if (r->residue_books == NULL) return error(f, VORBIS_outofmem); - for (j=0; j < r->classifications; ++j) { - for (k=0; k < 8; ++k) { - if (residue_cascade[j] & (1 << k)) { - r->residue_books[j][k] = get_bits(f, 8); - if (r->residue_books[j][k] >= f->codebook_count) return error(f, VORBIS_invalid_setup); - } else { - r->residue_books[j][k] = -1; - } - } - } - // precompute the classifications[] array to avoid inner-loop mod/divide - // call it 'classdata' since we already have r->classifications - r->classdata = (uint8 **) setup_malloc(f, sizeof(*r->classdata) * f->codebooks[r->classbook].entries); - if (!r->classdata) return error(f, VORBIS_outofmem); - memset(r->classdata, 0, sizeof(*r->classdata) * f->codebooks[r->classbook].entries); - for (j=0; j < f->codebooks[r->classbook].entries; ++j) { - int classwords = f->codebooks[r->classbook].dimensions; - int temp = j; - r->classdata[j] = (uint8 *) setup_malloc(f, sizeof(r->classdata[j][0]) * classwords); - if (r->classdata[j] == NULL) return error(f, VORBIS_outofmem); - for (k=classwords-1; k >= 0; --k) { - r->classdata[j][k] = temp % r->classifications; - temp /= r->classifications; - } - } - } - - f->mapping_count = get_bits(f,6)+1; - f->mapping = (Mapping *) setup_malloc(f, f->mapping_count * sizeof(*f->mapping)); - if (f->mapping == NULL) return error(f, VORBIS_outofmem); - memset(f->mapping, 0, f->mapping_count * sizeof(*f->mapping)); - for (i=0; i < f->mapping_count; ++i) { - Mapping *m = f->mapping + i; - int mapping_type = get_bits(f,16); - if (mapping_type != 0) return error(f, VORBIS_invalid_setup); - m->chan = (MappingChannel *) setup_malloc(f, f->channels * sizeof(*m->chan)); - if (m->chan == NULL) return error(f, VORBIS_outofmem); - if (get_bits(f,1)) - m->submaps = get_bits(f,4)+1; - else - m->submaps = 1; - if (m->submaps > max_submaps) - max_submaps = m->submaps; - if (get_bits(f,1)) { - m->coupling_steps = get_bits(f,8)+1; - if (m->coupling_steps > f->channels) return error(f, VORBIS_invalid_setup); - for (k=0; k < m->coupling_steps; ++k) { - m->chan[k].magnitude = get_bits(f, ilog(f->channels-1)); - m->chan[k].angle = get_bits(f, ilog(f->channels-1)); - if (m->chan[k].magnitude >= f->channels) return error(f, VORBIS_invalid_setup); - if (m->chan[k].angle >= f->channels) return error(f, VORBIS_invalid_setup); - if (m->chan[k].magnitude == m->chan[k].angle) return error(f, VORBIS_invalid_setup); - } - } else - m->coupling_steps = 0; - - // reserved field - if (get_bits(f,2)) return error(f, VORBIS_invalid_setup); - if (m->submaps > 1) { - for (j=0; j < f->channels; ++j) { - m->chan[j].mux = get_bits(f, 4); - if (m->chan[j].mux >= m->submaps) return error(f, VORBIS_invalid_setup); - } - } else - // @SPECIFICATION: this case is missing from the spec - for (j=0; j < f->channels; ++j) - m->chan[j].mux = 0; - - for (j=0; j < m->submaps; ++j) { - get_bits(f,8); // discard - m->submap_floor[j] = get_bits(f,8); - m->submap_residue[j] = get_bits(f,8); - if (m->submap_floor[j] >= f->floor_count) return error(f, VORBIS_invalid_setup); - if (m->submap_residue[j] >= f->residue_count) return error(f, VORBIS_invalid_setup); - } - } - - // Modes - f->mode_count = get_bits(f, 6)+1; - for (i=0; i < f->mode_count; ++i) { - Mode *m = f->mode_config+i; - m->blockflag = get_bits(f,1); - m->windowtype = get_bits(f,16); - m->transformtype = get_bits(f,16); - m->mapping = get_bits(f,8); - if (m->windowtype != 0) return error(f, VORBIS_invalid_setup); - if (m->transformtype != 0) return error(f, VORBIS_invalid_setup); - if (m->mapping >= f->mapping_count) return error(f, VORBIS_invalid_setup); - } - - flush_packet(f); - - f->previous_length = 0; - - for (i=0; i < f->channels; ++i) { - f->channel_buffers[i] = (float *) setup_malloc(f, sizeof(float) * f->blocksize_1); - f->previous_window[i] = (float *) setup_malloc(f, sizeof(float) * f->blocksize_1/2); - f->finalY[i] = (int16 *) setup_malloc(f, sizeof(int16) * longest_floorlist); - if (f->channel_buffers[i] == NULL || f->previous_window[i] == NULL || f->finalY[i] == NULL) return error(f, VORBIS_outofmem); - memset(f->channel_buffers[i], 0, sizeof(float) * f->blocksize_1); - #ifdef STB_VORBIS_NO_DEFER_FLOOR - f->floor_buffers[i] = (float *) setup_malloc(f, sizeof(float) * f->blocksize_1/2); - if (f->floor_buffers[i] == NULL) return error(f, VORBIS_outofmem); - #endif - } - - if (!init_blocksize(f, 0, f->blocksize_0)) return FALSE; - if (!init_blocksize(f, 1, f->blocksize_1)) return FALSE; - f->blocksize[0] = f->blocksize_0; - f->blocksize[1] = f->blocksize_1; - -#ifdef STB_VORBIS_DIVIDE_TABLE - if (integer_divide_table[1][1]==0) - for (i=0; i < DIVTAB_NUMER; ++i) - for (j=1; j < DIVTAB_DENOM; ++j) - integer_divide_table[i][j] = i / j; -#endif - - // compute how much temporary memory is needed - - // 1. - { - uint32 imdct_mem = (f->blocksize_1 * sizeof(float) >> 1); - uint32 classify_mem; - int i,max_part_read=0; - for (i=0; i < f->residue_count; ++i) { - Residue *r = f->residue_config + i; - unsigned int actual_size = f->blocksize_1 / 2; - unsigned int limit_r_begin = r->begin < actual_size ? r->begin : actual_size; - unsigned int limit_r_end = r->end < actual_size ? r->end : actual_size; - int n_read = limit_r_end - limit_r_begin; - int part_read = n_read / r->part_size; - if (part_read > max_part_read) - max_part_read = part_read; - } - #ifndef STB_VORBIS_DIVIDES_IN_RESIDUE - classify_mem = f->channels * (sizeof(void*) + max_part_read * sizeof(uint8 *)); - #else - classify_mem = f->channels * (sizeof(void*) + max_part_read * sizeof(int *)); - #endif - - // maximum reasonable partition size is f->blocksize_1 - - f->temp_memory_required = classify_mem; - if (imdct_mem > f->temp_memory_required) - f->temp_memory_required = imdct_mem; - } - - - if (f->alloc.alloc_buffer) { - assert(f->temp_offset == f->alloc.alloc_buffer_length_in_bytes); - // check if there's enough temp memory so we don't error later - if (f->setup_offset + sizeof(*f) + f->temp_memory_required > (unsigned) f->temp_offset) - return error(f, VORBIS_outofmem); - } - - // @TODO: stb_vorbis_seek_start expects first_audio_page_offset to point to a page - // without PAGEFLAG_continued_packet, so this either points to the first page, or - // the page after the end of the headers. It might be cleaner to point to a page - // in the middle of the headers, when that's the page where the first audio packet - // starts, but we'd have to also correctly skip the end of any continued packet in - // stb_vorbis_seek_start. - if (f->next_seg == -1) { - f->first_audio_page_offset = stb_vorbis_get_file_offset(f); - } else { - f->first_audio_page_offset = 0; - } - - return TRUE; -} - -static void vorbis_deinit(stb_vorbis *p) -{ - int i,j; - - setup_free(p, p->vendor); - for (i=0; i < p->comment_list_length; ++i) { - setup_free(p, p->comment_list[i]); - } - setup_free(p, p->comment_list); - - if (p->residue_config) { - for (i=0; i < p->residue_count; ++i) { - Residue *r = p->residue_config+i; - if (r->classdata) { - for (j=0; j < p->codebooks[r->classbook].entries; ++j) - setup_free(p, r->classdata[j]); - setup_free(p, r->classdata); - } - setup_free(p, r->residue_books); - } - } - - if (p->codebooks) { - CHECK(p); - for (i=0; i < p->codebook_count; ++i) { - Codebook *c = p->codebooks + i; - setup_free(p, c->codeword_lengths); - setup_free(p, c->multiplicands); - setup_free(p, c->codewords); - setup_free(p, c->sorted_codewords); - // c->sorted_values[-1] is the first entry in the array - setup_free(p, c->sorted_values ? c->sorted_values-1 : NULL); - } - setup_free(p, p->codebooks); - } - setup_free(p, p->floor_config); - setup_free(p, p->residue_config); - if (p->mapping) { - for (i=0; i < p->mapping_count; ++i) - setup_free(p, p->mapping[i].chan); - setup_free(p, p->mapping); - } - CHECK(p); - for (i=0; i < p->channels && i < STB_VORBIS_MAX_CHANNELS; ++i) { - setup_free(p, p->channel_buffers[i]); - setup_free(p, p->previous_window[i]); - #ifdef STB_VORBIS_NO_DEFER_FLOOR - setup_free(p, p->floor_buffers[i]); - #endif - setup_free(p, p->finalY[i]); - } - for (i=0; i < 2; ++i) { - setup_free(p, p->A[i]); - setup_free(p, p->B[i]); - setup_free(p, p->C[i]); - setup_free(p, p->window[i]); - setup_free(p, p->bit_reverse[i]); - } - #ifndef STB_VORBIS_NO_STDIO - if (p->close_on_free) fclose(p->f); - #endif -} - -void stb_vorbis_close(stb_vorbis *p) -{ - if (p == NULL) return; - vorbis_deinit(p); - setup_free(p,p); -} - -static void vorbis_init(stb_vorbis *p, const stb_vorbis_alloc *z) -{ - memset(p, 0, sizeof(*p)); // NULL out all malloc'd pointers to start - if (z) { - p->alloc = *z; - p->alloc.alloc_buffer_length_in_bytes &= ~7; - p->temp_offset = p->alloc.alloc_buffer_length_in_bytes; - } - p->eof = 0; - p->error = VORBIS__no_error; - p->stream = NULL; - p->codebooks = NULL; - p->page_crc_tests = -1; - #ifndef STB_VORBIS_NO_STDIO - p->close_on_free = FALSE; - p->f = NULL; - #endif -} - -int stb_vorbis_get_sample_offset(stb_vorbis *f) -{ - if (f->current_loc_valid) - return f->current_loc; - else - return -1; -} - -stb_vorbis_info stb_vorbis_get_info(stb_vorbis *f) -{ - stb_vorbis_info d; - d.channels = f->channels; - d.sample_rate = f->sample_rate; - d.setup_memory_required = f->setup_memory_required; - d.setup_temp_memory_required = f->setup_temp_memory_required; - d.temp_memory_required = f->temp_memory_required; - d.max_frame_size = f->blocksize_1 >> 1; - return d; -} - -stb_vorbis_comment stb_vorbis_get_comment(stb_vorbis *f) -{ - stb_vorbis_comment d; - d.vendor = f->vendor; - d.comment_list_length = f->comment_list_length; - d.comment_list = f->comment_list; - return d; -} - -int stb_vorbis_get_error(stb_vorbis *f) -{ - int e = f->error; - f->error = VORBIS__no_error; - return e; -} - -static stb_vorbis * vorbis_alloc(stb_vorbis *f) -{ - stb_vorbis *p = (stb_vorbis *) setup_malloc(f, sizeof(*p)); - return p; -} - -#ifndef STB_VORBIS_NO_PUSHDATA_API - -void stb_vorbis_flush_pushdata(stb_vorbis *f) -{ - f->previous_length = 0; - f->page_crc_tests = 0; - f->discard_samples_deferred = 0; - f->current_loc_valid = FALSE; - f->first_decode = FALSE; - f->samples_output = 0; - f->channel_buffer_start = 0; - f->channel_buffer_end = 0; -} - -static int vorbis_search_for_page_pushdata(vorb *f, uint8 *data, int data_len) -{ - int i,n; - for (i=0; i < f->page_crc_tests; ++i) - f->scan[i].bytes_done = 0; - - // if we have room for more scans, search for them first, because - // they may cause us to stop early if their header is incomplete - if (f->page_crc_tests < STB_VORBIS_PUSHDATA_CRC_COUNT) { - if (data_len < 4) return 0; - data_len -= 3; // need to look for 4-byte sequence, so don't miss - // one that straddles a boundary - for (i=0; i < data_len; ++i) { - if (data[i] == 0x4f) { - if (0==memcmp(data+i, ogg_page_header, 4)) { - int j,len; - uint32 crc; - // make sure we have the whole page header - if (i+26 >= data_len || i+27+data[i+26] >= data_len) { - // only read up to this page start, so hopefully we'll - // have the whole page header start next time - data_len = i; - break; - } - // ok, we have it all; compute the length of the page - len = 27 + data[i+26]; - for (j=0; j < data[i+26]; ++j) - len += data[i+27+j]; - // scan everything up to the embedded crc (which we must 0) - crc = 0; - for (j=0; j < 22; ++j) - crc = crc32_update(crc, data[i+j]); - // now process 4 0-bytes - for ( ; j < 26; ++j) - crc = crc32_update(crc, 0); - // len is the total number of bytes we need to scan - n = f->page_crc_tests++; - f->scan[n].bytes_left = len-j; - f->scan[n].crc_so_far = crc; - f->scan[n].goal_crc = data[i+22] + (data[i+23] << 8) + (data[i+24]<<16) + (data[i+25]<<24); - // if the last frame on a page is continued to the next, then - // we can't recover the sample_loc immediately - if (data[i+27+data[i+26]-1] == 255) - f->scan[n].sample_loc = ~0; - else - f->scan[n].sample_loc = data[i+6] + (data[i+7] << 8) + (data[i+ 8]<<16) + (data[i+ 9]<<24); - f->scan[n].bytes_done = i+j; - if (f->page_crc_tests == STB_VORBIS_PUSHDATA_CRC_COUNT) - break; - // keep going if we still have room for more - } - } - } - } - - for (i=0; i < f->page_crc_tests;) { - uint32 crc; - int j; - int n = f->scan[i].bytes_done; - int m = f->scan[i].bytes_left; - if (m > data_len - n) m = data_len - n; - // m is the bytes to scan in the current chunk - crc = f->scan[i].crc_so_far; - for (j=0; j < m; ++j) - crc = crc32_update(crc, data[n+j]); - f->scan[i].bytes_left -= m; - f->scan[i].crc_so_far = crc; - if (f->scan[i].bytes_left == 0) { - // does it match? - if (f->scan[i].crc_so_far == f->scan[i].goal_crc) { - // Houston, we have page - data_len = n+m; // consumption amount is wherever that scan ended - f->page_crc_tests = -1; // drop out of page scan mode - f->previous_length = 0; // decode-but-don't-output one frame - f->next_seg = -1; // start a new page - f->current_loc = f->scan[i].sample_loc; // set the current sample location - // to the amount we'd have decoded had we decoded this page - f->current_loc_valid = f->current_loc != ~0U; - return data_len; - } - // delete entry - f->scan[i] = f->scan[--f->page_crc_tests]; - } else { - ++i; - } - } - - return data_len; -} - -// return value: number of bytes we used -int stb_vorbis_decode_frame_pushdata( - stb_vorbis *f, // the file we're decoding - const uint8 *data, int data_len, // the memory available for decoding - int *channels, // place to write number of float * buffers - float ***output, // place to write float ** array of float * buffers - int *samples // place to write number of output samples - ) -{ - int i; - int len,right,left; - - if (!IS_PUSH_MODE(f)) return error(f, VORBIS_invalid_api_mixing); - - if (f->page_crc_tests >= 0) { - *samples = 0; - return vorbis_search_for_page_pushdata(f, (uint8 *) data, data_len); - } - - f->stream = (uint8 *) data; - f->stream_end = (uint8 *) data + data_len; - f->error = VORBIS__no_error; - - // check that we have the entire packet in memory - if (!is_whole_packet_present(f)) { - *samples = 0; - return 0; - } - - if (!vorbis_decode_packet(f, &len, &left, &right)) { - // save the actual error we encountered - enum STBVorbisError error = f->error; - if (error == VORBIS_bad_packet_type) { - // flush and resynch - f->error = VORBIS__no_error; - while (get8_packet(f) != EOP) - if (f->eof) break; - *samples = 0; - return (int) (f->stream - data); - } - if (error == VORBIS_continued_packet_flag_invalid) { - if (f->previous_length == 0) { - // we may be resynching, in which case it's ok to hit one - // of these; just discard the packet - f->error = VORBIS__no_error; - while (get8_packet(f) != EOP) - if (f->eof) break; - *samples = 0; - return (int) (f->stream - data); - } - } - // if we get an error while parsing, what to do? - // well, it DEFINITELY won't work to continue from where we are! - stb_vorbis_flush_pushdata(f); - // restore the error that actually made us bail - f->error = error; - *samples = 0; - return 1; - } - - // success! - len = vorbis_finish_frame(f, len, left, right); - for (i=0; i < f->channels; ++i) - f->outputs[i] = f->channel_buffers[i] + left; - - if (channels) *channels = f->channels; - *samples = len; - *output = f->outputs; - return (int) (f->stream - data); -} - -stb_vorbis *stb_vorbis_open_pushdata( - const unsigned char *data, int data_len, // the memory available for decoding - int *data_used, // only defined if result is not NULL - int *error, const stb_vorbis_alloc *alloc) -{ - stb_vorbis *f, p; - vorbis_init(&p, alloc); - p.stream = (uint8 *) data; - p.stream_end = (uint8 *) data + data_len; - p.push_mode = TRUE; - if (!start_decoder(&p)) { - if (p.eof) - *error = VORBIS_need_more_data; - else - *error = p.error; - return NULL; - } - f = vorbis_alloc(&p); - if (f) { - *f = p; - *data_used = (int) (f->stream - data); - *error = 0; - return f; - } else { - vorbis_deinit(&p); - return NULL; - } -} -#endif // STB_VORBIS_NO_PUSHDATA_API - -unsigned int stb_vorbis_get_file_offset(stb_vorbis *f) -{ - #ifndef STB_VORBIS_NO_PUSHDATA_API - if (f->push_mode) return 0; - #endif - if (USE_MEMORY(f)) return (unsigned int) (f->stream - f->stream_start); - #ifndef STB_VORBIS_NO_STDIO - return (unsigned int) (ftell(f->f) - f->f_start); - #endif -} - -#ifndef STB_VORBIS_NO_PULLDATA_API -// -// DATA-PULLING API -// - -static uint32 vorbis_find_page(stb_vorbis *f, uint32 *end, uint32 *last) -{ - for(;;) { - int n; - if (f->eof) return 0; - n = get8(f); - if (n == 0x4f) { // page header candidate - unsigned int retry_loc = stb_vorbis_get_file_offset(f); - int i; - // check if we're off the end of a file_section stream - if (retry_loc - 25 > f->stream_len) - return 0; - // check the rest of the header - for (i=1; i < 4; ++i) - if (get8(f) != ogg_page_header[i]) - break; - if (f->eof) return 0; - if (i == 4) { - uint8 header[27]; - uint32 i, crc, goal, len; - for (i=0; i < 4; ++i) - header[i] = ogg_page_header[i]; - for (; i < 27; ++i) - header[i] = get8(f); - if (f->eof) return 0; - if (header[4] != 0) goto invalid; - goal = header[22] + (header[23] << 8) + (header[24]<<16) + (header[25]<<24); - for (i=22; i < 26; ++i) - header[i] = 0; - crc = 0; - for (i=0; i < 27; ++i) - crc = crc32_update(crc, header[i]); - len = 0; - for (i=0; i < header[26]; ++i) { - int s = get8(f); - crc = crc32_update(crc, s); - len += s; - } - if (len && f->eof) return 0; - for (i=0; i < len; ++i) - crc = crc32_update(crc, get8(f)); - // finished parsing probable page - if (crc == goal) { - // we could now check that it's either got the last - // page flag set, OR it's followed by the capture - // pattern, but I guess TECHNICALLY you could have - // a file with garbage between each ogg page and recover - // from it automatically? So even though that paranoia - // might decrease the chance of an invalid decode by - // another 2^32, not worth it since it would hose those - // invalid-but-useful files? - if (end) - *end = stb_vorbis_get_file_offset(f); - if (last) { - if (header[5] & 0x04) - *last = 1; - else - *last = 0; - } - set_file_offset(f, retry_loc-1); - return 1; - } - } - invalid: - // not a valid page, so rewind and look for next one - set_file_offset(f, retry_loc); - } - } -} - - -#define SAMPLE_unknown 0xffffffff - -// seeking is implemented with a binary search, which narrows down the range to -// 64K, before using a linear search (because finding the synchronization -// pattern can be expensive, and the chance we'd find the end page again is -// relatively high for small ranges) -// -// two initial interpolation-style probes are used at the start of the search -// to try to bound either side of the binary search sensibly, while still -// working in O(log n) time if they fail. - -static int get_seek_page_info(stb_vorbis *f, ProbedPage *z) -{ - uint8 header[27], lacing[255]; - int i,len; - - // record where the page starts - z->page_start = stb_vorbis_get_file_offset(f); - - // parse the header - getn(f, header, 27); - if (header[0] != 'O' || header[1] != 'g' || header[2] != 'g' || header[3] != 'S') - return 0; - getn(f, lacing, header[26]); - - // determine the length of the payload - len = 0; - for (i=0; i < header[26]; ++i) - len += lacing[i]; - - // this implies where the page ends - z->page_end = z->page_start + 27 + header[26] + len; - - // read the last-decoded sample out of the data - z->last_decoded_sample = header[6] + (header[7] << 8) + (header[8] << 16) + (header[9] << 24); - - // restore file state to where we were - set_file_offset(f, z->page_start); - return 1; -} - -// rarely used function to seek back to the preceding page while finding the -// start of a packet -static int go_to_page_before(stb_vorbis *f, unsigned int limit_offset) -{ - unsigned int previous_safe, end; - - // now we want to seek back 64K from the limit - if (limit_offset >= 65536 && limit_offset-65536 >= f->first_audio_page_offset) - previous_safe = limit_offset - 65536; - else - previous_safe = f->first_audio_page_offset; - - set_file_offset(f, previous_safe); - - while (vorbis_find_page(f, &end, NULL)) { - if (end >= limit_offset && stb_vorbis_get_file_offset(f) < limit_offset) - return 1; - set_file_offset(f, end); - } - - return 0; -} - -// implements the search logic for finding a page and starting decoding. if -// the function succeeds, current_loc_valid will be true and current_loc will -// be less than or equal to the provided sample number (the closer the -// better). -static int seek_to_sample_coarse(stb_vorbis *f, uint32 sample_number) -{ - ProbedPage left, right, mid; - int i, start_seg_with_known_loc, end_pos, page_start; - uint32 delta, stream_length, padding, last_sample_limit; - double offset = 0.0, bytes_per_sample = 0.0; - int probe = 0; - - // find the last page and validate the target sample - stream_length = stb_vorbis_stream_length_in_samples(f); - if (stream_length == 0) return error(f, VORBIS_seek_without_length); - if (sample_number > stream_length) return error(f, VORBIS_seek_invalid); - - // this is the maximum difference between the window-center (which is the - // actual granule position value), and the right-start (which the spec - // indicates should be the granule position (give or take one)). - padding = ((f->blocksize_1 - f->blocksize_0) >> 2); - if (sample_number < padding) - last_sample_limit = 0; - else - last_sample_limit = sample_number - padding; - - left = f->p_first; - while (left.last_decoded_sample == ~0U) { - // (untested) the first page does not have a 'last_decoded_sample' - set_file_offset(f, left.page_end); - if (!get_seek_page_info(f, &left)) goto error; - } - - right = f->p_last; - assert(right.last_decoded_sample != ~0U); - - // starting from the start is handled differently - if (last_sample_limit <= left.last_decoded_sample) { - if (stb_vorbis_seek_start(f)) { - if (f->current_loc > sample_number) - return error(f, VORBIS_seek_failed); - return 1; - } - return 0; - } - - while (left.page_end != right.page_start) { - assert(left.page_end < right.page_start); - // search range in bytes - delta = right.page_start - left.page_end; - if (delta <= 65536) { - // there's only 64K left to search - handle it linearly - set_file_offset(f, left.page_end); - } else { - if (probe < 2) { - if (probe == 0) { - // first probe (interpolate) - double data_bytes = right.page_end - left.page_start; - bytes_per_sample = data_bytes / right.last_decoded_sample; - offset = left.page_start + bytes_per_sample * (last_sample_limit - left.last_decoded_sample); - } else { - // second probe (try to bound the other side) - double error = ((double) last_sample_limit - mid.last_decoded_sample) * bytes_per_sample; - if (error >= 0 && error < 8000) error = 8000; - if (error < 0 && error > -8000) error = -8000; - offset += error * 2; - } - - // ensure the offset is valid - if (offset < left.page_end) - offset = left.page_end; - if (offset > right.page_start - 65536) - offset = right.page_start - 65536; - - set_file_offset(f, (unsigned int) offset); - } else { - // binary search for large ranges (offset by 32K to ensure - // we don't hit the right page) - set_file_offset(f, left.page_end + (delta / 2) - 32768); - } - - if (!vorbis_find_page(f, NULL, NULL)) goto error; - } - - for (;;) { - if (!get_seek_page_info(f, &mid)) goto error; - if (mid.last_decoded_sample != ~0U) break; - // (untested) no frames end on this page - set_file_offset(f, mid.page_end); - assert(mid.page_start < right.page_start); - } - - // if we've just found the last page again then we're in a tricky file, - // and we're close enough (if it wasn't an interpolation probe). - if (mid.page_start == right.page_start) { - if (probe >= 2 || delta <= 65536) - break; - } else { - if (last_sample_limit < mid.last_decoded_sample) - right = mid; - else - left = mid; - } - - ++probe; - } - - // seek back to start of the last packet - page_start = left.page_start; - set_file_offset(f, page_start); - if (!start_page(f)) return error(f, VORBIS_seek_failed); - end_pos = f->end_seg_with_known_loc; - assert(end_pos >= 0); - - for (;;) { - for (i = end_pos; i > 0; --i) - if (f->segments[i-1] != 255) - break; - - start_seg_with_known_loc = i; - - if (start_seg_with_known_loc > 0 || !(f->page_flag & PAGEFLAG_continued_packet)) - break; - - // (untested) the final packet begins on an earlier page - if (!go_to_page_before(f, page_start)) - goto error; - - page_start = stb_vorbis_get_file_offset(f); - if (!start_page(f)) goto error; - end_pos = f->segment_count - 1; - } - - // prepare to start decoding - f->current_loc_valid = FALSE; - f->last_seg = FALSE; - f->valid_bits = 0; - f->packet_bytes = 0; - f->bytes_in_seg = 0; - f->previous_length = 0; - f->next_seg = start_seg_with_known_loc; - - for (i = 0; i < start_seg_with_known_loc; i++) - skip(f, f->segments[i]); - - // start decoding (optimizable - this frame is generally discarded) - if (!vorbis_pump_first_frame(f)) - return 0; - if (f->current_loc > sample_number) - return error(f, VORBIS_seek_failed); - return 1; - -error: - // try to restore the file to a valid state - stb_vorbis_seek_start(f); - return error(f, VORBIS_seek_failed); -} - -// the same as vorbis_decode_initial, but without advancing -static int peek_decode_initial(vorb *f, int *p_left_start, int *p_left_end, int *p_right_start, int *p_right_end, int *mode) -{ - int bits_read, bytes_read; - - if (!vorbis_decode_initial(f, p_left_start, p_left_end, p_right_start, p_right_end, mode)) - return 0; - - // either 1 or 2 bytes were read, figure out which so we can rewind - bits_read = 1 + ilog(f->mode_count-1); - if (f->mode_config[*mode].blockflag) - bits_read += 2; - bytes_read = (bits_read + 7) / 8; - - f->bytes_in_seg += bytes_read; - f->packet_bytes -= bytes_read; - skip(f, -bytes_read); - if (f->next_seg == -1) - f->next_seg = f->segment_count - 1; - else - f->next_seg--; - f->valid_bits = 0; - - return 1; -} - -int stb_vorbis_seek_frame(stb_vorbis *f, unsigned int sample_number) -{ - uint32 max_frame_samples; - - if (IS_PUSH_MODE(f)) return error(f, VORBIS_invalid_api_mixing); - - // fast page-level search - if (!seek_to_sample_coarse(f, sample_number)) - return 0; - - assert(f->current_loc_valid); - assert(f->current_loc <= sample_number); - - // linear search for the relevant packet - max_frame_samples = (f->blocksize_1*3 - f->blocksize_0) >> 2; - while (f->current_loc < sample_number) { - int left_start, left_end, right_start, right_end, mode, frame_samples; - if (!peek_decode_initial(f, &left_start, &left_end, &right_start, &right_end, &mode)) - return error(f, VORBIS_seek_failed); - // calculate the number of samples returned by the next frame - frame_samples = right_start - left_start; - if (f->current_loc + frame_samples > sample_number) { - return 1; // the next frame will contain the sample - } else if (f->current_loc + frame_samples + max_frame_samples > sample_number) { - // there's a chance the frame after this could contain the sample - vorbis_pump_first_frame(f); - } else { - // this frame is too early to be relevant - f->current_loc += frame_samples; - f->previous_length = 0; - maybe_start_packet(f); - flush_packet(f); - } - } - // the next frame should start with the sample - if (f->current_loc != sample_number) return error(f, VORBIS_seek_failed); - return 1; -} - -int stb_vorbis_seek(stb_vorbis *f, unsigned int sample_number) -{ - if (!stb_vorbis_seek_frame(f, sample_number)) - return 0; - - if (sample_number != f->current_loc) { - int n; - uint32 frame_start = f->current_loc; - stb_vorbis_get_frame_float(f, &n, NULL); - assert(sample_number > frame_start); - assert(f->channel_buffer_start + (int) (sample_number-frame_start) <= f->channel_buffer_end); - f->channel_buffer_start += (sample_number - frame_start); - } - - return 1; -} - -int stb_vorbis_seek_start(stb_vorbis *f) -{ - if (IS_PUSH_MODE(f)) { return error(f, VORBIS_invalid_api_mixing); } - set_file_offset(f, f->first_audio_page_offset); - f->previous_length = 0; - f->first_decode = TRUE; - f->next_seg = -1; - return vorbis_pump_first_frame(f); -} - -unsigned int stb_vorbis_stream_length_in_samples(stb_vorbis *f) -{ - unsigned int restore_offset, previous_safe; - unsigned int end, last_page_loc; - - if (IS_PUSH_MODE(f)) return error(f, VORBIS_invalid_api_mixing); - if (!f->total_samples) { - unsigned int last; - uint32 lo,hi; - char header[6]; - - // first, store the current decode position so we can restore it - restore_offset = stb_vorbis_get_file_offset(f); - - // now we want to seek back 64K from the end (the last page must - // be at most a little less than 64K, but let's allow a little slop) - if (f->stream_len >= 65536 && f->stream_len-65536 >= f->first_audio_page_offset) - previous_safe = f->stream_len - 65536; - else - previous_safe = f->first_audio_page_offset; - - set_file_offset(f, previous_safe); - // previous_safe is now our candidate 'earliest known place that seeking - // to will lead to the final page' - - if (!vorbis_find_page(f, &end, &last)) { - // if we can't find a page, we're hosed! - f->error = VORBIS_cant_find_last_page; - f->total_samples = 0xffffffff; - goto done; - } - - // check if there are more pages - last_page_loc = stb_vorbis_get_file_offset(f); - - // stop when the last_page flag is set, not when we reach eof; - // this allows us to stop short of a 'file_section' end without - // explicitly checking the length of the section - while (!last) { - set_file_offset(f, end); - if (!vorbis_find_page(f, &end, &last)) { - // the last page we found didn't have the 'last page' flag - // set. whoops! - break; - } - previous_safe = last_page_loc+1; - last_page_loc = stb_vorbis_get_file_offset(f); - } - - set_file_offset(f, last_page_loc); - - // parse the header - getn(f, (unsigned char *)header, 6); - // extract the absolute granule position - lo = get32(f); - hi = get32(f); - if (lo == 0xffffffff && hi == 0xffffffff) { - f->error = VORBIS_cant_find_last_page; - f->total_samples = SAMPLE_unknown; - goto done; - } - if (hi) - lo = 0xfffffffe; // saturate - f->total_samples = lo; - - f->p_last.page_start = last_page_loc; - f->p_last.page_end = end; - f->p_last.last_decoded_sample = lo; - - done: - set_file_offset(f, restore_offset); - } - return f->total_samples == SAMPLE_unknown ? 0 : f->total_samples; -} - -float stb_vorbis_stream_length_in_seconds(stb_vorbis *f) -{ - return stb_vorbis_stream_length_in_samples(f) / (float) f->sample_rate; -} - - - -int stb_vorbis_get_frame_float(stb_vorbis *f, int *channels, float ***output) -{ - int len, right,left,i; - if (IS_PUSH_MODE(f)) return error(f, VORBIS_invalid_api_mixing); - - if (!vorbis_decode_packet(f, &len, &left, &right)) { - f->channel_buffer_start = f->channel_buffer_end = 0; - return 0; - } - - len = vorbis_finish_frame(f, len, left, right); - for (i=0; i < f->channels; ++i) - f->outputs[i] = f->channel_buffers[i] + left; - - f->channel_buffer_start = left; - f->channel_buffer_end = left+len; - - if (channels) *channels = f->channels; - if (output) *output = f->outputs; - return len; -} - -#ifndef STB_VORBIS_NO_STDIO - -stb_vorbis * stb_vorbis_open_file_section(FILE *file, int close_on_free, int *error, const stb_vorbis_alloc *alloc, unsigned int length) -{ - stb_vorbis *f, p; - vorbis_init(&p, alloc); - p.f = file; - p.f_start = (uint32) ftell(file); - p.stream_len = length; - p.close_on_free = close_on_free; - if (start_decoder(&p)) { - f = vorbis_alloc(&p); - if (f) { - *f = p; - vorbis_pump_first_frame(f); - return f; - } - } - if (error) *error = p.error; - vorbis_deinit(&p); - return NULL; -} - -stb_vorbis * stb_vorbis_open_file(FILE *file, int close_on_free, int *error, const stb_vorbis_alloc *alloc) -{ - unsigned int len, start; - start = (unsigned int) ftell(file); - fseek(file, 0, SEEK_END); - len = (unsigned int) (ftell(file) - start); - fseek(file, start, SEEK_SET); - return stb_vorbis_open_file_section(file, close_on_free, error, alloc, len); -} - -stb_vorbis * stb_vorbis_open_filename(const char *filename, int *error, const stb_vorbis_alloc *alloc) -{ - FILE *f; -#if defined(_WIN32) && defined(__STDC_WANT_SECURE_LIB__) - if (0 != fopen_s(&f, filename, "rb")) - f = NULL; -#else - f = fopen(filename, "rb"); -#endif - if (f) - return stb_vorbis_open_file(f, TRUE, error, alloc); - if (error) *error = VORBIS_file_open_failure; - return NULL; -} -#endif // STB_VORBIS_NO_STDIO - -stb_vorbis * stb_vorbis_open_memory(const unsigned char *data, int len, int *error, const stb_vorbis_alloc *alloc) -{ - stb_vorbis *f, p; - if (data == NULL) return NULL; - vorbis_init(&p, alloc); - p.stream = (uint8 *) data; - p.stream_end = (uint8 *) data + len; - p.stream_start = (uint8 *) p.stream; - p.stream_len = len; - p.push_mode = FALSE; - if (start_decoder(&p)) { - f = vorbis_alloc(&p); - if (f) { - *f = p; - vorbis_pump_first_frame(f); - if (error) *error = VORBIS__no_error; - return f; - } - } - if (error) *error = p.error; - vorbis_deinit(&p); - return NULL; -} - -#ifndef STB_VORBIS_NO_INTEGER_CONVERSION -#define PLAYBACK_MONO 1 -#define PLAYBACK_LEFT 2 -#define PLAYBACK_RIGHT 4 - -#define L (PLAYBACK_LEFT | PLAYBACK_MONO) -#define C (PLAYBACK_LEFT | PLAYBACK_RIGHT | PLAYBACK_MONO) -#define R (PLAYBACK_RIGHT | PLAYBACK_MONO) - -static int8 channel_position[7][6] = -{ - { 0 }, - { C }, - { L, R }, - { L, C, R }, - { L, R, L, R }, - { L, C, R, L, R }, - { L, C, R, L, R, C }, -}; - - -#ifndef STB_VORBIS_NO_FAST_SCALED_FLOAT - typedef union { - float f; - int i; - } float_conv; - typedef char stb_vorbis_float_size_test[sizeof(float)==4 && sizeof(int) == 4]; - #define FASTDEF(x) float_conv x - // add (1<<23) to convert to int, then divide by 2^SHIFT, then add 0.5/2^SHIFT to round - #define MAGIC(SHIFT) (1.5f * (1 << (23-SHIFT)) + 0.5f/(1 << SHIFT)) - #define ADDEND(SHIFT) (((150-SHIFT) << 23) + (1 << 22)) - #define FAST_SCALED_FLOAT_TO_INT(temp,x,s) (temp.f = (x) + MAGIC(s), temp.i - ADDEND(s)) - #define check_endianness() -#else - #define FAST_SCALED_FLOAT_TO_INT(temp,x,s) ((int) ((x) * (1 << (s)))) - #define check_endianness() - #define FASTDEF(x) -#endif - -static void copy_samples(short *dest, float *src, int len) -{ - int i; - check_endianness(); - for (i=0; i < len; ++i) { - FASTDEF(temp); - int v = FAST_SCALED_FLOAT_TO_INT(temp, src[i],15); - if ((unsigned int) (v + 32768) > 65535) - v = v < 0 ? -32768 : 32767; - dest[i] = v; - } -} - -static void compute_samples(int mask, short *output, int num_c, float **data, int d_offset, int len) -{ - #define BUFFER_SIZE 32 - float buffer[BUFFER_SIZE]; - int i,j,o,n = BUFFER_SIZE; - check_endianness(); - for (o = 0; o < len; o += BUFFER_SIZE) { - memset(buffer, 0, sizeof(buffer)); - if (o + n > len) n = len - o; - for (j=0; j < num_c; ++j) { - if (channel_position[num_c][j] & mask) { - for (i=0; i < n; ++i) - buffer[i] += data[j][d_offset+o+i]; - } - } - for (i=0; i < n; ++i) { - FASTDEF(temp); - int v = FAST_SCALED_FLOAT_TO_INT(temp,buffer[i],15); - if ((unsigned int) (v + 32768) > 65535) - v = v < 0 ? -32768 : 32767; - output[o+i] = v; - } - } -} - -static void compute_stereo_samples(short *output, int num_c, float **data, int d_offset, int len) -{ - #define BUFFER_SIZE 32 - float buffer[BUFFER_SIZE]; - int i,j,o,n = BUFFER_SIZE >> 1; - // o is the offset in the source data - check_endianness(); - for (o = 0; o < len; o += BUFFER_SIZE >> 1) { - // o2 is the offset in the output data - int o2 = o << 1; - memset(buffer, 0, sizeof(buffer)); - if (o + n > len) n = len - o; - for (j=0; j < num_c; ++j) { - int m = channel_position[num_c][j] & (PLAYBACK_LEFT | PLAYBACK_RIGHT); - if (m == (PLAYBACK_LEFT | PLAYBACK_RIGHT)) { - for (i=0; i < n; ++i) { - buffer[i*2+0] += data[j][d_offset+o+i]; - buffer[i*2+1] += data[j][d_offset+o+i]; - } - } else if (m == PLAYBACK_LEFT) { - for (i=0; i < n; ++i) { - buffer[i*2+0] += data[j][d_offset+o+i]; - } - } else if (m == PLAYBACK_RIGHT) { - for (i=0; i < n; ++i) { - buffer[i*2+1] += data[j][d_offset+o+i]; - } - } - } - for (i=0; i < (n<<1); ++i) { - FASTDEF(temp); - int v = FAST_SCALED_FLOAT_TO_INT(temp,buffer[i],15); - if ((unsigned int) (v + 32768) > 65535) - v = v < 0 ? -32768 : 32767; - output[o2+i] = v; - } - } -} - -static void convert_samples_short(int buf_c, short **buffer, int b_offset, int data_c, float **data, int d_offset, int samples) -{ - int i; - if (buf_c != data_c && buf_c <= 2 && data_c <= 6) { - static int channel_selector[3][2] = { {0}, {PLAYBACK_MONO}, {PLAYBACK_LEFT, PLAYBACK_RIGHT} }; - for (i=0; i < buf_c; ++i) - compute_samples(channel_selector[buf_c][i], buffer[i]+b_offset, data_c, data, d_offset, samples); - } else { - int limit = buf_c < data_c ? buf_c : data_c; - for (i=0; i < limit; ++i) - copy_samples(buffer[i]+b_offset, data[i]+d_offset, samples); - for ( ; i < buf_c; ++i) - memset(buffer[i]+b_offset, 0, sizeof(short) * samples); - } -} - -int stb_vorbis_get_frame_short(stb_vorbis *f, int num_c, short **buffer, int num_samples) -{ - float **output = NULL; - int len = stb_vorbis_get_frame_float(f, NULL, &output); - if (len > num_samples) len = num_samples; - if (len) - convert_samples_short(num_c, buffer, 0, f->channels, output, 0, len); - return len; -} - -static void convert_channels_short_interleaved(int buf_c, short *buffer, int data_c, float **data, int d_offset, int len) -{ - int i; - check_endianness(); - if (buf_c != data_c && buf_c <= 2 && data_c <= 6) { - assert(buf_c == 2); - for (i=0; i < buf_c; ++i) - compute_stereo_samples(buffer, data_c, data, d_offset, len); - } else { - int limit = buf_c < data_c ? buf_c : data_c; - int j; - for (j=0; j < len; ++j) { - for (i=0; i < limit; ++i) { - FASTDEF(temp); - float f = data[i][d_offset+j]; - int v = FAST_SCALED_FLOAT_TO_INT(temp, f,15);//data[i][d_offset+j],15); - if ((unsigned int) (v + 32768) > 65535) - v = v < 0 ? -32768 : 32767; - *buffer++ = v; - } - for ( ; i < buf_c; ++i) - *buffer++ = 0; - } - } -} - -int stb_vorbis_get_frame_short_interleaved(stb_vorbis *f, int num_c, short *buffer, int num_shorts) -{ - float **output; - int len; - if (num_c == 1) return stb_vorbis_get_frame_short(f,num_c,&buffer, num_shorts); - len = stb_vorbis_get_frame_float(f, NULL, &output); - if (len) { - if (len*num_c > num_shorts) len = num_shorts / num_c; - convert_channels_short_interleaved(num_c, buffer, f->channels, output, 0, len); - } - return len; -} - -int stb_vorbis_get_samples_short_interleaved(stb_vorbis *f, int channels, short *buffer, int num_shorts) -{ - float **outputs; - int len = num_shorts / channels; - int n=0; - int z = f->channels; - if (z > channels) z = channels; - while (n < len) { - int k = f->channel_buffer_end - f->channel_buffer_start; - if (n+k >= len) k = len - n; - if (k) - convert_channels_short_interleaved(channels, buffer, f->channels, f->channel_buffers, f->channel_buffer_start, k); - buffer += k*channels; - n += k; - f->channel_buffer_start += k; - if (n == len) break; - if (!stb_vorbis_get_frame_float(f, NULL, &outputs)) break; - } - return n; -} - -int stb_vorbis_get_samples_short(stb_vorbis *f, int channels, short **buffer, int len) -{ - float **outputs; - int n=0; - int z = f->channels; - if (z > channels) z = channels; - while (n < len) { - int k = f->channel_buffer_end - f->channel_buffer_start; - if (n+k >= len) k = len - n; - if (k) - convert_samples_short(channels, buffer, n, f->channels, f->channel_buffers, f->channel_buffer_start, k); - n += k; - f->channel_buffer_start += k; - if (n == len) break; - if (!stb_vorbis_get_frame_float(f, NULL, &outputs)) break; - } - return n; -} - -#ifndef STB_VORBIS_NO_STDIO -int stb_vorbis_decode_filename(const char *filename, int *channels, int *sample_rate, short **output) -{ - int data_len, offset, total, limit, error; - short *data; - stb_vorbis *v = stb_vorbis_open_filename(filename, &error, NULL); - if (v == NULL) return -1; - limit = v->channels * 4096; - *channels = v->channels; - if (sample_rate) - *sample_rate = v->sample_rate; - offset = data_len = 0; - total = limit; - data = (short *) malloc(total * sizeof(*data)); - if (data == NULL) { - stb_vorbis_close(v); - return -2; - } - for (;;) { - int n = stb_vorbis_get_frame_short_interleaved(v, v->channels, data+offset, total-offset); - if (n == 0) break; - data_len += n; - offset += n * v->channels; - if (offset + limit > total) { - short *data2; - total *= 2; - data2 = (short *) realloc(data, total * sizeof(*data)); - if (data2 == NULL) { - free(data); - stb_vorbis_close(v); - return -2; - } - data = data2; - } - } - *output = data; - stb_vorbis_close(v); - return data_len; -} -#endif // NO_STDIO - -int stb_vorbis_decode_memory(const uint8 *mem, int len, int *channels, int *sample_rate, short **output) -{ - int data_len, offset, total, limit, error; - short *data; - stb_vorbis *v = stb_vorbis_open_memory(mem, len, &error, NULL); - if (v == NULL) return -1; - limit = v->channels * 4096; - *channels = v->channels; - if (sample_rate) - *sample_rate = v->sample_rate; - offset = data_len = 0; - total = limit; - data = (short *) malloc(total * sizeof(*data)); - if (data == NULL) { - stb_vorbis_close(v); - return -2; - } - for (;;) { - int n = stb_vorbis_get_frame_short_interleaved(v, v->channels, data+offset, total-offset); - if (n == 0) break; - data_len += n; - offset += n * v->channels; - if (offset + limit > total) { - short *data2; - total *= 2; - data2 = (short *) realloc(data, total * sizeof(*data)); - if (data2 == NULL) { - free(data); - stb_vorbis_close(v); - return -2; - } - data = data2; - } - } - *output = data; - stb_vorbis_close(v); - return data_len; -} -#endif // STB_VORBIS_NO_INTEGER_CONVERSION - -int stb_vorbis_get_samples_float_interleaved(stb_vorbis *f, int channels, float *buffer, int num_floats) -{ - float **outputs; - int len = num_floats / channels; - int n=0; - int z = f->channels; - if (z > channels) z = channels; - while (n < len) { - int i,j; - int k = f->channel_buffer_end - f->channel_buffer_start; - if (n+k >= len) k = len - n; - for (j=0; j < k; ++j) { - for (i=0; i < z; ++i) - *buffer++ = f->channel_buffers[i][f->channel_buffer_start+j]; - for ( ; i < channels; ++i) - *buffer++ = 0; - } - n += k; - f->channel_buffer_start += k; - if (n == len) - break; - if (!stb_vorbis_get_frame_float(f, NULL, &outputs)) - break; - } - return n; -} - -int stb_vorbis_get_samples_float(stb_vorbis *f, int channels, float **buffer, int num_samples) -{ - float **outputs; - int n=0; - int z = f->channels; - if (z > channels) z = channels; - while (n < num_samples) { - int i; - int k = f->channel_buffer_end - f->channel_buffer_start; - if (n+k >= num_samples) k = num_samples - n; - if (k) { - for (i=0; i < z; ++i) - memcpy(buffer[i]+n, f->channel_buffers[i]+f->channel_buffer_start, sizeof(float)*k); - for ( ; i < channels; ++i) - memset(buffer[i]+n, 0, sizeof(float) * k); - } - n += k; - f->channel_buffer_start += k; - if (n == num_samples) - break; - if (!stb_vorbis_get_frame_float(f, NULL, &outputs)) - break; - } - return n; -} -#endif // STB_VORBIS_NO_PULLDATA_API - -/* Version history - 1.17 - 2019-07-08 - fix CVE-2019-13217, -13218, -13219, -13220, -13221, -13222, -13223 - found with Mayhem by ForAllSecure - 1.16 - 2019-03-04 - fix warnings - 1.15 - 2019-02-07 - explicit failure if Ogg Skeleton data is found - 1.14 - 2018-02-11 - delete bogus dealloca usage - 1.13 - 2018-01-29 - fix truncation of last frame (hopefully) - 1.12 - 2017-11-21 - limit residue begin/end to blocksize/2 to avoid large temp allocs in bad/corrupt files - 1.11 - 2017-07-23 - fix MinGW compilation - 1.10 - 2017-03-03 - more robust seeking; fix negative ilog(); clear error in open_memory - 1.09 - 2016-04-04 - back out 'avoid discarding last frame' fix from previous version - 1.08 - 2016-04-02 - fixed multiple warnings; fix setup memory leaks; - avoid discarding last frame of audio data - 1.07 - 2015-01-16 - fixed some warnings, fix mingw, const-correct API - some more crash fixes when out of memory or with corrupt files - 1.06 - 2015-08-31 - full, correct support for seeking API (Dougall Johnson) - some crash fixes when out of memory or with corrupt files - 1.05 - 2015-04-19 - don't define __forceinline if it's redundant - 1.04 - 2014-08-27 - fix missing const-correct case in API - 1.03 - 2014-08-07 - Warning fixes - 1.02 - 2014-07-09 - Declare qsort compare function _cdecl on windows - 1.01 - 2014-06-18 - fix stb_vorbis_get_samples_float - 1.0 - 2014-05-26 - fix memory leaks; fix warnings; fix bugs in multichannel - (API change) report sample rate for decode-full-file funcs - 0.99996 - bracket #include for macintosh compilation by Laurent Gomila - 0.99995 - use union instead of pointer-cast for fast-float-to-int to avoid alias-optimization problem - 0.99994 - change fast-float-to-int to work in single-precision FPU mode, remove endian-dependence - 0.99993 - remove assert that fired on legal files with empty tables - 0.99992 - rewind-to-start - 0.99991 - bugfix to stb_vorbis_get_samples_short by Bernhard Wodo - 0.9999 - (should have been 0.99990) fix no-CRT support, compiling as C++ - 0.9998 - add a full-decode function with a memory source - 0.9997 - fix a bug in the read-from-FILE case in 0.9996 addition - 0.9996 - query length of vorbis stream in samples/seconds - 0.9995 - bugfix to another optimization that only happened in certain files - 0.9994 - bugfix to one of the optimizations that caused significant (but inaudible?) errors - 0.9993 - performance improvements; runs in 99% to 104% of time of reference implementation - 0.9992 - performance improvement of IMDCT; now performs close to reference implementation - 0.9991 - performance improvement of IMDCT - 0.999 - (should have been 0.9990) performance improvement of IMDCT - 0.998 - no-CRT support from Casey Muratori - 0.997 - bugfixes for bugs found by Terje Mathisen - 0.996 - bugfix: fast-huffman decode initialized incorrectly for sparse codebooks; fixing gives 10% speedup - found by Terje Mathisen - 0.995 - bugfix: fix to 'effective' overrun detection - found by Terje Mathisen - 0.994 - bugfix: garbage decode on final VQ symbol of a non-multiple - found by Terje Mathisen - 0.993 - bugfix: pushdata API required 1 extra byte for empty page (failed to consume final page if empty) - found by Terje Mathisen - 0.992 - fixes for MinGW warning - 0.991 - turn fast-float-conversion on by default - 0.990 - fix push-mode seek recovery if you seek into the headers - 0.98b - fix to bad release of 0.98 - 0.98 - fix push-mode seek recovery; robustify float-to-int and support non-fast mode - 0.97 - builds under c++ (typecasting, don't use 'class' keyword) - 0.96 - somehow MY 0.95 was right, but the web one was wrong, so here's my 0.95 rereleased as 0.96, fixes a typo in the clamping code - 0.95 - clamping code for 16-bit functions - 0.94 - not publically released - 0.93 - fixed all-zero-floor case (was decoding garbage) - 0.92 - fixed a memory leak - 0.91 - conditional compiles to omit parts of the API and the infrastructure to support them: STB_VORBIS_NO_PULLDATA_API, STB_VORBIS_NO_PUSHDATA_API, STB_VORBIS_NO_STDIO, STB_VORBIS_NO_INTEGER_CONVERSION - 0.90 - first public release -*/ - -#endif // STB_VORBIS_HEADER_ONLY - - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/FAudio_compat.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/FAudio_compat.h deleted file mode 100644 index fe666467..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/FAudio_compat.h +++ /dev/null @@ -1,101 +0,0 @@ -/* map xaudio2 API to faudio API */ -typedef uint32_t HRESULT; -typedef uint32_t UINT32; -typedef uint32_t DWORD; -typedef uint8_t BOOL; - -#define WINAPI FAUDIOCALL - -#define TRUE 1 -#define FALSE 0 - -#define S_OK 0 -#define XAUDIO2_E_INVALID_CALL FAUDIO_E_INVALID_CALL - -#define XAUDIO2_ANY_PROCESSOR FAUDIO_DEFAULT_PROCESSOR -#define XAUDIO2_COMMIT_NOW FAUDIO_COMMIT_NOW -#define XAUDIO2_END_OF_STREAM FAUDIO_END_OF_STREAM - -#define WAVE_FORMAT_IEEE_FLOAT FAUDIO_FORMAT_IEEE_FLOAT - -#define AudioCategory_GameEffects FAudioStreamCategory_GameEffects - -#define GlobalDefaultDevice FAudioGlobalDefaultDevice -#define NotDefaultDevice FAudioNotDefaultDevice - -typedef FAudioBuffer XAUDIO2_BUFFER; -typedef FAudioDeviceDetails XAUDIO2_DEVICE_DETAILS; -typedef FAudioEffectChain XAUDIO2_EFFECT_CHAIN; -typedef FAudioEffectDescriptor XAUDIO2_EFFECT_DESCRIPTOR; -typedef FAudioVoiceDetails XAUDIO2_VOICE_DETAILS; -typedef FAudioVoiceDetails XAUDIO27_VOICE_DETAILS; -typedef FAudioVoiceState XAUDIO2_VOICE_STATE; -typedef FAudioWaveFormatEx WAVEFORMATEX; -typedef FAudioPerformanceData XAUDIO2_PERFORMANCE_DATA; - -typedef FAudioEngineCallback IXAudio2EngineCallback; -typedef FAudioVoiceCallback IXAudio2VoiceCallback; - -typedef FAPO IXAPO; - -typedef FAudio IXAudio27; -#define IXAudio27_CreateMasteringVoice FAudio_CreateMasteringVoice -#define IXAudio27_CreateSourceVoice FAudio_CreateSourceVoice -#define IXAudio27_CreateSubmixVoice FAudio_CreateSubmixVoice -#define IXAudio27_GetDeviceCount FAudio_GetDeviceCount -#define IXAudio27_GetDeviceDetails FAudio_GetDeviceDetails -#define IXAudio27_GetPerformanceData FAudio_GetPerformanceData -#define IXAudio27_Initialize FAudio_Initialize -#define IXAudio27_RegisterForCallbacks FAudio_RegisterForCallbacks -#define IXAudio27_Release FAudio_Release -#define IXAudio27_StartEngine FAudio_StartEngine -#define IXAudio27_StopEngine FAudio_StopEngine -#define IXAudio27_UnregisterForCallbacks FAudio_UnregisterForCallbacks - -typedef FAudio IXAudio2; -#define IXAudio2_CreateMasteringVoice FAudio_CreateMasteringVoice -#define IXAudio2_CreateSourceVoice FAudio_CreateSourceVoice -#define IXAudio2_CreateSubmixVoice FAudio_CreateSubmixVoice -#define IXAudio2_GetPerformanceData FAudio_GetPerformanceData -#define IXAudio2_RegisterForCallbacks FAudio_RegisterForCallbacks -#define IXAudio2_Release FAudio_Release -#define IXAudio2_StartEngine FAudio_StartEngine -#define IXAudio2_StopEngine FAudio_StopEngine -#define IXAudio2_UnregisterForCallbacks FAudio_UnregisterForCallbacks - -typedef FAudioMasteringVoice IXAudio2MasteringVoice; -#define IXAudio2MasteringVoice_DestroyVoice FAudioVoice_DestroyVoice -#define IXAudio2MasteringVoice_GetChannelMask FAudioMasteringVoice_GetChannelMask -#define IXAudio2MasteringVoice_SetEffectChain FAudioVoice_SetEffectChain - -typedef FAudioSourceVoice IXAudio27SourceVoice; -#define IXAudio27SourceVoice_DestroyVoice FAudioVoice_DestroyVoice -#define IXAudio27SourceVoice_ExitLoop FAudioSourceVoice_ExitLoop -#define IXAudio27SourceVoice_FlushSourceBuffers FAudioSourceVoice_FlushSourceBuffers -#define IXAudio27SourceVoice_GetState(a,b) FAudioSourceVoice_GetState(a,b,0) -#define IXAudio27SourceVoice_GetVoiceDetails FAudioVoice_GetVoiceDetails -#define IXAudio27SourceVoice_SetChannelVolumes FAudioVoice_SetChannelVolumes -#define IXAudio27SourceVoice_SetSourceSampleRate FAudioSourceVoice_SetSourceSampleRate -#define IXAudio27SourceVoice_Start FAudioSourceVoice_Start -#define IXAudio27SourceVoice_Stop FAudioSourceVoice_Stop -#define IXAudio27SourceVoice_SubmitSourceBuffer FAudioSourceVoice_SubmitSourceBuffer - -typedef FAudioSourceVoice IXAudio2SourceVoice; -#define IXAudio2SourceVoice_DestroyVoice FAudioVoice_DestroyVoice -#define IXAudio2SourceVoice_ExitLoop FAudioSourceVoice_ExitLoop -#define IXAudio2SourceVoice_FlushSourceBuffers FAudioSourceVoice_FlushSourceBuffers -#define IXAudio2SourceVoice_GetState FAudioSourceVoice_GetState -#define IXAudio2SourceVoice_GetVoiceDetails FAudioVoice_GetVoiceDetails -#define IXAudio2SourceVoice_SetChannelVolumes FAudioVoice_SetChannelVolumes -#define IXAudio2SourceVoice_SetSourceSampleRate FAudioSourceVoice_SetSourceSampleRate -#define IXAudio2SourceVoice_Start FAudioSourceVoice_Start -#define IXAudio2SourceVoice_Stop FAudioSourceVoice_Stop -#define IXAudio2SourceVoice_SubmitSourceBuffer FAudioSourceVoice_SubmitSourceBuffer - -typedef FAudioSubmixVoice IXAudio27SubmixVoice; -#define IXAudio27SubmixVoice_GetVoiceDetails FAudioVoice_GetVoiceDetails -#define IXAudio27SubmixVoice_DestroyVoice FAudioVoice_DestroyVoice - -typedef FAudioSubmixVoice IXAudio2SubmixVoice; -#define IXAudio2SubmixVoice_GetVoiceDetails FAudioVoice_GetVoiceDetails -#define IXAudio2SubmixVoice_DestroyVoice FAudioVoice_DestroyVoice diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/Makefile b/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/Makefile deleted file mode 100644 index d88cd55f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/Makefile +++ /dev/null @@ -1,13 +0,0 @@ -# Build win32 executable to verify unit tests pass when run -# against XAudio2 on Windows. - -WINEROOT = /usr/include/wine - -CROSSCC = x86_64-w64-mingw32-gcc - -CFLAGS += -g -Wall - -all: faudio_tests.exe - -faudio_tests.exe: xaudio2.c - $(CROSSCC) $(CFLAGS) -Wall -I$(WINEROOT)/windows/ -o $@ $< -lole32 diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/xaudio2.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/xaudio2.c deleted file mode 100644 index b0338a6d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/tests/xaudio2.c +++ /dev/null @@ -1,1567 +0,0 @@ -/* XAudio2 tests - * - * This tests behavior of Microsoft's XAudio2. Tests in this file should be - * written to the XAudio2 API. FAudio_compat.h provides conversion from XAudio2 - * to FAudio to verify FAudio's behavior. - * - * Copyright (c) 2015-2018 Andrew Eikum for CodeWeavers - * Copyright (c) 2018 Masanori Kakura - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - */ - -#ifdef _WIN32 -/* cross-compile for win32 executable */ -#define COBJMACROS -#include "initguid.h" -#include "xaudio2.h" -#include "xaudio2fx.h" -#include "xapo.h" -#include "xapofx.h" -#else -/* native build against FAudio */ -#include "FAudio.h" -#include "FAudioFX.h" -#include "FAPO.h" - -#include "FAudio_compat.h" - -#include -#include -#include -#include -#include -#endif - -#include -#include -#include - -static void *FAtest_malloc(size_t len) -{ -#ifdef _WIN32 - return HeapAlloc(GetProcessHeap(), 0, len); -#else - return malloc(len); -#endif -} - -static void FAtest_free(void *p) -{ -#ifdef _WIN32 - HeapFree(GetProcessHeap(), 0, p); -#else - free(p); -#endif -} - -static void FAtest_sleep(uint64_t millis) -{ -#ifdef _WIN32 - Sleep(millis); -#else - usleep(millis * 1000); -#endif -} - -#define XA2CALL_0(method) if(xaudio27) hr = IXAudio27_##method((IXAudio27*)xa); else hr = IXAudio2_##method(xa); -#define XA2CALL_0V(method) if(xaudio27) IXAudio27_##method((IXAudio27*)xa); else IXAudio2_##method(xa); -#define XA2CALL_V(method, ...) if(xaudio27) IXAudio27_##method((IXAudio27*)xa, __VA_ARGS__); else IXAudio2_##method(xa, __VA_ARGS__); -#define XA2CALL(method, ...) if(xaudio27) hr = IXAudio27_##method((IXAudio27*)xa, __VA_ARGS__); else hr = IXAudio2_##method(xa, __VA_ARGS__); - -#ifdef _WIN32 -static HRESULT (WINAPI *pXAudio2Create)(IXAudio2 **, UINT32, XAUDIO2_PROCESSOR) = NULL; -static HRESULT (WINAPI *pCreateAudioVolumeMeter)(IUnknown**) = NULL; -#endif - -static int failure_count = 0; -static int success_count = 0; - -static void ok_(const char *file, int line, BOOL success, const char *fmt, ...) __attribute__((format(printf, 4, 5))); -#define ok(success, fmt, ...) ok_(__FILE__, __LINE__, success, fmt, ##__VA_ARGS__) -static void ok_(const char *file, int line, BOOL success, const char *fmt, ...) -{ - if(!success){ - va_list va; - va_start(va, fmt); - fprintf(stdout, "test failed (%s:%u): ", file, line); - vfprintf(stdout, fmt, va); - va_end(va); - ++failure_count; - }else - ++success_count; -} - -static int xaudio27; - -#ifdef _WIN32 -DWORD main_thread_id; -#else -pthread_t main_thread_id; -#endif - -static int is_main_thread(void) -{ -#ifdef _WIN32 - return GetCurrentThreadId() == main_thread_id; -#else - return pthread_equal(pthread_self(), main_thread_id); -#endif -} - -static void fill_buf(float *buf, WAVEFORMATEX *fmt, DWORD hz, DWORD len_frames) -{ -#if 0 - /* make sound */ - DWORD offs, c; - for(offs = 0; offs < len_frames; ++offs) - for(c = 0; c < fmt->nChannels; ++c) - buf[offs * fmt->nChannels + c] = sinf(offs * hz * 2 * M_PI / fmt->nSamplesPerSec); -#else - /* silence */ - memset(buf, 0, sizeof(float) * len_frames * fmt->nChannels); -#endif -} - -static struct _cb_state { - BOOL start_called, end_called; -} ecb_state, src1_state, src2_state; - -static int pass_state = 0; -static BOOL buffers_called = FALSE; - -static void WINAPI ECB_OnProcessingPassStart(IXAudio2EngineCallback *This) -{ - ok(!xaudio27 || pass_state == 0, "Callbacks called out of order: %u\n", pass_state); - ++pass_state; -} - -static void WINAPI ECB_OnProcessingPassEnd(IXAudio2EngineCallback *This) -{ - ok(!xaudio27 || pass_state == (buffers_called ? 7 : 5), "Callbacks called out of order: %u\n", pass_state); - pass_state = 0; - buffers_called = FALSE; -} - -static void WINAPI ECB_OnCriticalError(IXAudio2EngineCallback *This, HRESULT Error) -{ - ok(0, "Unexpected OnCriticalError\n"); -} - -#if _WIN32 -static IXAudio2EngineCallbackVtbl ecb_vtbl = { - ECB_OnProcessingPassStart, - ECB_OnProcessingPassEnd, - ECB_OnCriticalError -}; - -static IXAudio2EngineCallback ecb = { &ecb_vtbl }; -#else -static FAudioEngineCallback ecb = { - ECB_OnCriticalError, - ECB_OnProcessingPassEnd, - ECB_OnProcessingPassStart -}; -#endif - -struct simple_streaming_callback { - IXAudio2VoiceCallback IXAudio2VoiceCallback_iface; - IXAudio27SourceVoice *xa27src; - IXAudio2SourceVoice *xa2src; -}; - -static struct simple_streaming_callback vcb1, vcb2; - -static void WINAPI VCB_OnVoiceProcessingPassStart(IXAudio2VoiceCallback *iface, - UINT32 BytesRequired) -{ - struct simple_streaming_callback *This = (struct simple_streaming_callback *)iface; - XAUDIO2_VOICE_STATE state; - - if(xaudio27) - IXAudio27SourceVoice_GetState(This->xa27src, &state); - else - IXAudio2SourceVoice_GetState(This->xa2src, &state, 0); - - /* Underrun allowance may vary, but 0.03 seconds buffered should be enough - * to not require more bytes. */ - if (state.BuffersQueued == 0){ - ok(BytesRequired > 0, "No buffers queued, but no more bytes requested.\n"); - }else if(state.SamplesPlayed < 22050 - 3 * 441){ - ok(BytesRequired == 0, "Plenty of data buffered, but more bytes requested. Buffered: %"PRIu64" samples, requested: %u bytes\n", - 22050 - state.SamplesPlayed, BytesRequired); - }else if(state.SamplesPlayed == 22050){ - ok(BytesRequired > 0, "End of buffer reached, but no more bytes requested.\n"); - } - - if(iface == &vcb1.IXAudio2VoiceCallback_iface){ - ok(!xaudio27 || pass_state == (buffers_called ? 4 : 3), "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - }else{ - ok(!xaudio27 || pass_state == 1, "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - } -} - -static void WINAPI VCB_OnVoiceProcessingPassEnd(IXAudio2VoiceCallback *iface) -{ - if(iface == &vcb1.IXAudio2VoiceCallback_iface){ - ok(!xaudio27 || pass_state == (buffers_called ? 6 : 4), "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - }else{ - ok(!xaudio27 || pass_state == (buffers_called ? 3 : 2), "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - } -} - -static void WINAPI VCB_OnStreamEnd(IXAudio2VoiceCallback *iface) -{ - if(iface == &vcb1.IXAudio2VoiceCallback_iface){ - ok(0, "Unexpected OnStreamEnd\n"); - }else{ - ok(!xaudio27 || pass_state == 3, "Callbacks called out of order: %u\n", pass_state); - } -} - -static void WINAPI VCB_OnBufferStart(IXAudio2VoiceCallback *iface, - void *pBufferContext) -{ - if(iface == &vcb1.IXAudio2VoiceCallback_iface){ - ok(!xaudio27 || pass_state == 5, "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - }else{ - ok(!xaudio27 || pass_state == 2, "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - buffers_called = TRUE; - } -} - -static void WINAPI VCB_OnBufferEnd(IXAudio2VoiceCallback *iface, - void *pBufferContext) -{ - if(iface == &vcb1.IXAudio2VoiceCallback_iface){ - ok(!xaudio27 || pass_state == 5, "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - }else{ - ok(!xaudio27 || pass_state == 2, "Callbacks called out of order: %u\n", pass_state); - ++pass_state; - buffers_called = TRUE; - } -} - -static void WINAPI VCB_OnLoopEnd(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ - ok(0, "Unexpected OnLoopEnd\n"); -} - -static void WINAPI VCB_OnVoiceError(IXAudio2VoiceCallback *This, - void *pBuffercontext, HRESULT Error) -{ - ok(0, "Unexpected OnVoiceError\n"); -} - -#ifdef _WIN32 -static IXAudio2VoiceCallbackVtbl vcb_vtbl = { - VCB_OnVoiceProcessingPassStart, - VCB_OnVoiceProcessingPassEnd, - VCB_OnStreamEnd, - VCB_OnBufferStart, - VCB_OnBufferEnd, - VCB_OnLoopEnd, - VCB_OnVoiceError -}; - -static struct simple_streaming_callback vcb1 = { {&vcb_vtbl} }; -static struct simple_streaming_callback vcb2 = { {&vcb_vtbl} }; -#else -static struct simple_streaming_callback vcb1 = { - { - VCB_OnBufferEnd, - VCB_OnBufferStart, - VCB_OnLoopEnd, - VCB_OnStreamEnd, - VCB_OnVoiceError, - VCB_OnVoiceProcessingPassEnd, - VCB_OnVoiceProcessingPassStart - } -}; - -static struct simple_streaming_callback vcb2 = { - { - VCB_OnBufferEnd, - VCB_OnBufferStart, - VCB_OnLoopEnd, - VCB_OnStreamEnd, - VCB_OnVoiceError, - VCB_OnVoiceProcessingPassEnd, - VCB_OnVoiceProcessingPassStart - } -}; -#endif - -static void test_simple_streaming(IXAudio2 *xa) -{ - HRESULT hr; - IXAudio2MasteringVoice *master; - IXAudio2SourceVoice *src, *src2; -#ifdef _WIN32 - IUnknown *vumeter; -#else - FAPO *vumeter; -#endif - WAVEFORMATEX fmt; - XAUDIO2_BUFFER buf, buf2; - XAUDIO2_VOICE_STATE state; - XAUDIO2_EFFECT_DESCRIPTOR effect; - XAUDIO2_EFFECT_CHAIN chain; - XAUDIO2_PERFORMANCE_DATA perfdata; - DWORD chmask; - - memset(&perfdata, 0, sizeof(perfdata)); - XA2CALL_V(GetPerformanceData, &perfdata); - ok(perfdata.ActiveSourceVoiceCount == 0, "Got wrong ActiveSourceVoiceCount: %u\n", - perfdata.ActiveSourceVoiceCount); - ok(perfdata.TotalSourceVoiceCount == 0, "Got wrong TotalSourceVoiceCount: %u\n", - perfdata.TotalSourceVoiceCount); - ok(perfdata.CurrentLatencyInSamples == 0, "Expected zero latency before mastering voice creation, got %u\n", perfdata.CurrentLatencyInSamples); - - memset(&ecb_state, 0, sizeof(ecb_state)); - memset(&src1_state, 0, sizeof(src1_state)); - memset(&src2_state, 0, sizeof(src2_state)); - - XA2CALL_0V(StopEngine); - - /* Tests show in native XA2.8, ECB is called from a mixer thread, but VCBs - * may be called from other threads in any order. So we can't rely on any - * sequencing between VCB calls. - * - * XA2.7 does all mixing from a single thread, so call sequence can be - * tested. */ - XA2CALL(RegisterForCallbacks, &ecb); - ok(hr == S_OK, "RegisterForCallbacks failed: %08x\n", hr); - - if(xaudio27) - hr = IXAudio27_CreateMasteringVoice((IXAudio27*)xa, &master, 2, 44100, 0, 0, NULL); - else - hr = IXAudio2_CreateMasteringVoice(xa, &master, 2, 44100, 0, -#ifdef _WIN32 - NULL /*WCHAR *deviceID*/, NULL, AudioCategory_GameEffects); -#else - 0 /*int deviceIndex*/, NULL); -#endif - ok(hr == S_OK, "CreateMasteringVoice failed: %08x\n", hr); - - if(!xaudio27){ - chmask = 0xdeadbeef; - IXAudio2MasteringVoice_GetChannelMask(master, &chmask); - ok(chmask == (SPEAKER_FRONT_LEFT | SPEAKER_FRONT_RIGHT), "Got unexpected channel mask: 0x%x\n", chmask); - } - - /* create first source voice */ - fmt.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - fmt.nChannels = 2; - fmt.nSamplesPerSec = 44100; - fmt.wBitsPerSample = 32; - fmt.nBlockAlign = fmt.nChannels * fmt.wBitsPerSample / 8; - fmt.nAvgBytesPerSec = fmt.nSamplesPerSec * fmt.nBlockAlign; - fmt.cbSize = 0; - - XA2CALL(CreateSourceVoice, &src, &fmt, 0, 1.f, &vcb1.IXAudio2VoiceCallback_iface, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - if(xaudio27){ - XAUDIO27_VOICE_DETAILS details; - vcb1.xa27src = (IXAudio27SourceVoice*)src; - IXAudio27SourceVoice_GetVoiceDetails((IXAudio27SourceVoice*)src, &details); - ok(details.CreationFlags == 0, "Got wrong flags: 0x%x\n", details.CreationFlags); - ok(details.InputChannels == 2, "Got wrong channel count: 0x%x\n", details.InputChannels); - ok(details.InputSampleRate == 44100, "Got wrong sample rate: 0x%x\n", details.InputSampleRate); - }else{ - XAUDIO2_VOICE_DETAILS details; - vcb1.xa2src = src; - IXAudio2SourceVoice_GetVoiceDetails(src, &details); - ok(details.CreationFlags == 0, "Got wrong creation flags: 0x%x\n", details.CreationFlags); - ok(details.ActiveFlags == 0, "Got wrong active flags: 0x%x\n", details.CreationFlags); - ok(details.InputChannels == 2, "Got wrong channel count: 0x%x\n", details.InputChannels); - ok(details.InputSampleRate == 44100, "Got wrong sample rate: 0x%x\n", details.InputSampleRate); - } - - memset(&buf, 0, sizeof(buf)); - buf.AudioBytes = 22050 * fmt.nBlockAlign; - buf.pAudioData = FAtest_malloc(buf.AudioBytes); - fill_buf((float*)buf.pAudioData, &fmt, 440, 22050); - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - /* create second source voice */ - XA2CALL(CreateSourceVoice, &src2, &fmt, 0, 1.f, &vcb2.IXAudio2VoiceCallback_iface, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - if(xaudio27){ - XAUDIO27_VOICE_DETAILS details; - vcb2.xa27src = (IXAudio27SourceVoice*)src2; - IXAudio27SourceVoice_GetVoiceDetails((IXAudio27SourceVoice*)src2, &details); - ok(details.CreationFlags == 0, "Got wrong flags: 0x%x\n", details.CreationFlags); - ok(details.InputChannels == 2, "Got wrong channel count: 0x%x\n", details.InputChannels); - ok(details.InputSampleRate == 44100, "Got wrong sample rate: 0x%x\n", details.InputSampleRate); - }else{ - XAUDIO2_VOICE_DETAILS details; - vcb2.xa2src = src2; - IXAudio2SourceVoice_GetVoiceDetails(src2, &details); - ok(details.CreationFlags == 0, "Got wrong creation flags: 0x%x\n", details.CreationFlags); - ok(details.ActiveFlags == 0, "Got wrong active flags: 0x%x\n", details.CreationFlags); - ok(details.InputChannels == 2, "Got wrong channel count: 0x%x\n", details.InputChannels); - ok(details.InputSampleRate == 44100, "Got wrong sample rate: 0x%x\n", details.InputSampleRate); - } - - memset(&buf2, 0, sizeof(buf2)); - buf2.Flags = XAUDIO2_END_OF_STREAM; - buf2.AudioBytes = 22050 * fmt.nBlockAlign; - buf2.pAudioData = FAtest_malloc(buf2.AudioBytes); - fill_buf((float*)buf2.pAudioData, &fmt, 220, 22050); - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src2, &buf2, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_Start(src2, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - XA2CALL_0(StartEngine); - ok(hr == S_OK, "StartEngine failed: %08x\n", hr); - - /* hook up volume meter */ -#ifdef _WIN32 - if(xaudio27){ - hr = CoCreateInstance(&CLSID_AudioVolumeMeter27, NULL, - CLSCTX_INPROC_SERVER, &IID_IUnknown, (void**)&vumeter); - ok(hr == S_OK, "CoCreateInstance(AudioVolumeMeter) failed: %08x\n", hr); - }else{ - hr = pCreateAudioVolumeMeter(&vumeter); - ok(hr == S_OK, "CreateAudioVolumeMeter failed: %08x\n", hr); - } -#else - hr = FAudioCreateVolumeMeter(&vumeter, 0); - ok(hr == S_OK, "FAudioCreateVolumeMeter failed: %08x\n", hr); -#endif - - effect.InitialState = TRUE; - effect.OutputChannels = 2; - effect.pEffect = vumeter; - - chain.EffectCount = 1; - chain.pEffectDescriptors = &effect; - - hr = IXAudio2MasteringVoice_SetEffectChain(master, &chain); - ok(hr == S_OK, "SetEffectchain failed: %08x\n", hr); - -#ifdef _WIN32 - IUnknown_Release(vumeter); -#else - vumeter->Release(vumeter); -#endif - - while(1){ - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - if(state.SamplesPlayed >= 22050) - break; - FAtest_sleep(100); - } - - ok(state.SamplesPlayed == 22050, "Got wrong samples played\n"); - - memset(&perfdata, 0, sizeof(perfdata)); - XA2CALL_V(GetPerformanceData, &perfdata); - ok(perfdata.ActiveSourceVoiceCount == 2, "Got wrong ActiveSourceVoiceCount: %u\n", - perfdata.ActiveSourceVoiceCount); - ok(perfdata.TotalSourceVoiceCount == 2, "Got wrong TotalSourceVoiceCount: %u\n", - perfdata.TotalSourceVoiceCount); - ok(perfdata.CurrentLatencyInSamples > 0, "Got zero latency?\n"); - - IXAudio2SourceVoice_Stop(src, 0, XAUDIO2_COMMIT_NOW); - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - ok(state.SamplesPlayed == 22050, "Got wrong samples played after stop\n"); - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - ok(state.SamplesPlayed == 22050, "Got wrong samples played after stop and start\n"); - IXAudio2SourceVoice_Stop(src, 0, XAUDIO2_COMMIT_NOW); - IXAudio2SourceVoice_FlushSourceBuffers(src); - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - ok(state.SamplesPlayed == 22050, "Got wrong samples played after stop start and flush\n"); - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - ok(state.SamplesPlayed == 22050, "Got wrong samples played after stop start flush and start\n"); - - FAtest_free((void*)buf.pAudioData); - FAtest_free((void*)buf2.pAudioData); - - if(xaudio27){ - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src); - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src2); - }else{ - IXAudio2SourceVoice_DestroyVoice(src); - IXAudio2SourceVoice_DestroyVoice(src2); - } - IXAudio2MasteringVoice_DestroyVoice(master); - - XA2CALL_V(UnregisterForCallbacks, &ecb); -} - -FAudioGUID DATAFORMAT_SUBTYPE_PCM = { - 0x01, - 0x00, - 0x10, - { - 0x80, - 0x00, - 0x00, - 0xAA, - 0x00, - 0x38, - 0x9B, - 0x71 - } -}; - -static UINT32 test_DeviceDetails(IXAudio27 *xa) -{ - HRESULT hr; - XAUDIO2_DEVICE_DETAILS dd; - UINT32 count, i; - - hr = IXAudio27_GetDeviceCount(xa, &count); - ok(hr == S_OK, "GetDeviceCount failed: %08x\n", hr); - - if(count == 0) - return 0; - - for(i = 0; i < count; ++i){ - hr = IXAudio27_GetDeviceDetails(xa, i, &dd); - ok(hr == S_OK, "GetDeviceDetails failed: %08x\n", hr); - - ok(!memcmp(&dd.OutputFormat.SubFormat, &DATAFORMAT_SUBTYPE_PCM, sizeof(FAudioGUID)), - "Expected SubFormat of device at index %u to be MFAudioFormat_PCM. " - "Got {%8.8x-%4.4x-%4.4x-%2.2x%2.2x-%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x}.\n", i, - dd.OutputFormat.SubFormat.Data1, - dd.OutputFormat.SubFormat.Data2, - dd.OutputFormat.SubFormat.Data3, - dd.OutputFormat.SubFormat.Data4[0], - dd.OutputFormat.SubFormat.Data4[1], - dd.OutputFormat.SubFormat.Data4[2], - dd.OutputFormat.SubFormat.Data4[3], - dd.OutputFormat.SubFormat.Data4[4], - dd.OutputFormat.SubFormat.Data4[5], - dd.OutputFormat.SubFormat.Data4[6], - dd.OutputFormat.SubFormat.Data4[7]); - - if(i == 0) - ok(dd.Role == GlobalDefaultDevice, "Got wrong role for index 0: 0x%x\n", dd.Role); - else - ok(dd.Role == NotDefaultDevice, "Got wrong role for index %u: 0x%x\n", i, dd.Role); - } - - return count; -} - -static void WINAPI vcb_buf_OnVoiceProcessingPassStart(IXAudio2VoiceCallback *This, - UINT32 BytesRequired) -{ -} - -static void WINAPI vcb_buf_OnVoiceProcessingPassEnd(IXAudio2VoiceCallback *This) -{ -} - -static void WINAPI vcb_buf_OnStreamEnd(IXAudio2VoiceCallback *This) -{ - ok(0, "Unexpected OnStreamEnd\n"); -} - -struct vcb_buf_testdata { - int idx; - IXAudio2SourceVoice *src; -}; - -static int obs_calls = 0; -static int obe_calls = 0; - -static void WINAPI vcb_buf_OnBufferStart(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ - struct vcb_buf_testdata *data = pBufferContext; - XAUDIO2_VOICE_STATE state; - - ok(data->idx == obs_calls, "Buffer callback out of order: %u\n", data->idx); - - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)data->src, &state); - else - IXAudio2SourceVoice_GetState(data->src, &state, 0); - - ok(state.BuffersQueued == 5 - obs_calls, "Got wrong number of buffers remaining: %u\n", state.BuffersQueued); - ok(state.pCurrentBufferContext == pBufferContext, "Got wrong buffer from GetState\n"); - - ++obs_calls; -} - -static void WINAPI vcb_buf_OnBufferEnd(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ - struct vcb_buf_testdata *data = pBufferContext; - XAUDIO2_VOICE_STATE state; - - ok(data->idx == obe_calls, "Buffer callback out of order: %u\n", data->idx); - - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)data->src, &state); - else - IXAudio2SourceVoice_GetState(data->src, &state, 0); - - ok(state.BuffersQueued == 5 - obe_calls - 1, "Got wrong number of buffers remaining: %u\n", state.BuffersQueued); - if(state.BuffersQueued == 0) - ok(state.pCurrentBufferContext == NULL, "Got wrong buffer from GetState: %p\n", state.pCurrentBufferContext); - else - ok(state.pCurrentBufferContext == data + 1, "Got wrong buffer from GetState: %p\n", state.pCurrentBufferContext); - - ++obe_calls; -} - -static void WINAPI vcb_buf_OnLoopEnd(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ - ok(0, "Unexpected OnLoopEnd\n"); -} - -static void WINAPI vcb_buf_OnVoiceError(IXAudio2VoiceCallback *This, - void *pBuffercontext, HRESULT Error) -{ - ok(0, "Unexpected OnVoiceError\n"); -} - -#ifdef _WIN32 -static IXAudio2VoiceCallbackVtbl vcb_buf_vtbl = { - vcb_buf_OnVoiceProcessingPassStart, - vcb_buf_OnVoiceProcessingPassEnd, - vcb_buf_OnStreamEnd, - vcb_buf_OnBufferStart, - vcb_buf_OnBufferEnd, - vcb_buf_OnLoopEnd, - vcb_buf_OnVoiceError -}; - -static IXAudio2VoiceCallback vcb_buf = { &vcb_buf_vtbl }; -#else -static FAudioVoiceCallback vcb_buf = { - vcb_buf_OnBufferEnd, - vcb_buf_OnBufferStart, - vcb_buf_OnLoopEnd, - vcb_buf_OnStreamEnd, - vcb_buf_OnVoiceError, - vcb_buf_OnVoiceProcessingPassEnd, - vcb_buf_OnVoiceProcessingPassStart -}; -#endif - -static int nloopends = 0; -static int nstreamends = 0; - -static void WINAPI loop_buf_OnStreamEnd(IXAudio2VoiceCallback *This) -{ - ++nstreamends; -} - -static void WINAPI loop_buf_OnBufferStart(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ -} - -static void WINAPI loop_buf_OnBufferEnd(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ -} - -static void WINAPI loop_buf_OnLoopEnd(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ - ++nloopends; -} - -static void WINAPI loop_buf_OnVoiceError(IXAudio2VoiceCallback *This, - void *pBuffercontext, HRESULT Error) -{ -} - -#ifdef _WIN32 -static IXAudio2VoiceCallbackVtbl loop_buf_vtbl = { - vcb_buf_OnVoiceProcessingPassStart, - vcb_buf_OnVoiceProcessingPassEnd, - loop_buf_OnStreamEnd, - loop_buf_OnBufferStart, - loop_buf_OnBufferEnd, - loop_buf_OnLoopEnd, - loop_buf_OnVoiceError -}; - -static IXAudio2VoiceCallback loop_buf = { &loop_buf_vtbl }; -#else -static FAudioVoiceCallback loop_buf = { - loop_buf_OnBufferEnd, - loop_buf_OnBufferStart, - loop_buf_OnLoopEnd, - loop_buf_OnStreamEnd, - loop_buf_OnVoiceError, - vcb_buf_OnVoiceProcessingPassEnd, - vcb_buf_OnVoiceProcessingPassStart -}; -#endif - -static void test_buffer_callbacks(IXAudio2 *xa) -{ - HRESULT hr; - IXAudio2MasteringVoice *master; - IXAudio2SourceVoice *src; - WAVEFORMATEX fmt; - XAUDIO2_BUFFER buf; - XAUDIO2_VOICE_STATE state; - struct vcb_buf_testdata testdata[5]; - int i, timeout; - - obs_calls = 0; - obe_calls = 0; - - XA2CALL_0V(StopEngine); - - if(xaudio27) - hr = IXAudio27_CreateMasteringVoice((IXAudio27*)xa, &master, 2, 44100, 0, 0, NULL); - else - hr = IXAudio2_CreateMasteringVoice(xa, &master, 2, 44100, 0, -#ifdef _WIN32 - NULL /*WCHAR *deviceID*/, NULL, AudioCategory_GameEffects); -#else - 0 /*int deviceIndex*/, NULL); -#endif - ok(hr == S_OK, "CreateMasteringVoice failed: %08x\n", hr); - - /* test OnBufferStart/End callbacks */ - fmt.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - fmt.nChannels = 2; - fmt.nSamplesPerSec = 44100; - fmt.wBitsPerSample = 32; - fmt.nBlockAlign = fmt.nChannels * fmt.wBitsPerSample / 8; - fmt.nAvgBytesPerSec = fmt.nSamplesPerSec * fmt.nBlockAlign; - fmt.cbSize = 0; - - XA2CALL(CreateSourceVoice, &src, &fmt, 0, 1.f, &vcb_buf, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - memset(&buf, 0, sizeof(buf)); - buf.AudioBytes = 4410 * fmt.nBlockAlign; - buf.pAudioData = FAtest_malloc(buf.AudioBytes); - fill_buf((float*)buf.pAudioData, &fmt, 440, 4410); - - /* submit same buffer fragment 5 times */ - for(i = 0; i < 5; ++i){ - testdata[i].idx = i; - testdata[i].src = src; - buf.pContext = &testdata[i]; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - } - - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - - XA2CALL_0(StartEngine); - ok(hr == S_OK, "StartEngine failed: %08x\n", hr); - - if(xaudio27){ - hr = IXAudio27SourceVoice_SetSourceSampleRate((IXAudio27SourceVoice*)src, 48000); - ok(hr == S_OK, "SetSourceSampleRate failed: %08x\n", hr); - }else{ - hr = IXAudio2SourceVoice_SetSourceSampleRate(src, 48000); - ok(hr == XAUDIO2_E_INVALID_CALL, "SetSourceSampleRate should have failed: %08x\n", hr); - } - - while(1){ - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - if(state.SamplesPlayed >= 4410 * 5) - break; - FAtest_sleep(100); - } - - ok(state.SamplesPlayed == 4410 * 5, "Got wrong samples played\n"); - - if(xaudio27) - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src); - else - IXAudio2SourceVoice_DestroyVoice(src); - - - /* test OnStreamEnd callback */ - XA2CALL(CreateSourceVoice, &src, &fmt, 0, 1.f, &loop_buf, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - buf.Flags = XAUDIO2_END_OF_STREAM; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - timeout = 0; - while(nstreamends == 0 && timeout < 1000){ - FAtest_sleep(100); - timeout += 100; - } - - ok(nstreamends == 1, "Got wrong number of OnStreamEnd calls: %u\n", nstreamends); - - /* xaudio resets SamplesPlayed after processing an end-of-stream buffer */ - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - ok(state.SamplesPlayed == 0, "Got wrong samples played\n"); - - if(xaudio27) - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src); - else - IXAudio2SourceVoice_DestroyVoice(src); - - - IXAudio2MasteringVoice_DestroyVoice(master); - - FAtest_free((void*)buf.pAudioData); -} - -static UINT32 play_to_completion(IXAudio2SourceVoice *src, UINT32 max_samples) -{ - XAUDIO2_VOICE_STATE state; - HRESULT hr; - - nloopends = 0; - - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - while(1){ - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - if(state.BuffersQueued == 0) - break; - if(state.SamplesPlayed >= max_samples){ - if(xaudio27) - IXAudio27SourceVoice_ExitLoop((IXAudio27SourceVoice*)src, XAUDIO2_COMMIT_NOW); - else - IXAudio2SourceVoice_ExitLoop(src, XAUDIO2_COMMIT_NOW); - } - FAtest_sleep(100); - } - - hr = IXAudio2SourceVoice_Stop(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - return state.SamplesPlayed; -} - -static void test_looping(IXAudio2 *xa) -{ - HRESULT hr; - IXAudio2MasteringVoice *master; - IXAudio2SourceVoice *src; - WAVEFORMATEX fmt; - XAUDIO2_BUFFER buf; - UINT32 played, running_total = 0; - - XA2CALL_0V(StopEngine); - - if(xaudio27) - hr = IXAudio27_CreateMasteringVoice((IXAudio27*)xa, &master, 2, 44100, 0, 0, NULL); - else - hr = IXAudio2_CreateMasteringVoice(xa, &master, 2, 44100, 0, -#ifdef _WIN32 - NULL /*WCHAR *deviceID*/, NULL, AudioCategory_GameEffects); -#else - 0 /*int deviceIndex*/, NULL); -#endif - ok(hr == S_OK, "CreateMasteringVoice failed: %08x\n", hr); - - - fmt.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - fmt.nChannels = 2; - fmt.nSamplesPerSec = 44100; - fmt.wBitsPerSample = 32; - fmt.nBlockAlign = fmt.nChannels * fmt.wBitsPerSample / 8; - fmt.nAvgBytesPerSec = fmt.nSamplesPerSec * fmt.nBlockAlign; - fmt.cbSize = 0; - - XA2CALL(CreateSourceVoice, &src, &fmt, 0, 1.f, &loop_buf, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - memset(&buf, 0, sizeof(buf)); - - buf.AudioBytes = 44100 * fmt.nBlockAlign; - buf.pAudioData = FAtest_malloc(buf.AudioBytes); - fill_buf((float*)buf.pAudioData, &fmt, 440, 44100); - - XA2CALL_0(StartEngine); - ok(hr == S_OK, "StartEngine failed: %08x\n", hr); - - /* play from middle to end */ - buf.PlayBegin = 22050; - buf.PlayLength = 0; - buf.LoopBegin = 0; - buf.LoopLength = 0; - buf.LoopCount = 0; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, -1); - ok(played - running_total == 22050, "Got wrong samples played: %u\n", played - running_total); - running_total = played; - ok(nloopends == 0, "Got wrong OnLoopEnd calls: %u\n", nloopends); - - /* play 4410 samples from middle */ - buf.PlayBegin = 22050; - buf.PlayLength = 4410; - buf.LoopBegin = 0; - buf.LoopLength = 0; - buf.LoopCount = 0; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, -1); - ok(played - running_total == 4410, "Got wrong samples played: %u\n", played - running_total); - running_total = played; - ok(nloopends == 0, "Got wrong OnLoopEnd calls: %u\n", nloopends); - - /* loop 4410 samples in middle */ - buf.PlayBegin = 0; - buf.PlayLength = 0; - buf.LoopBegin = 22050; - buf.LoopLength = 4410; - buf.LoopCount = 1; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, -1); - ok(played - running_total == 44100 + 4410, "Got wrong samples played: %u\n", played - running_total); - running_total = played; - ok(nloopends == 1, "Got wrong OnLoopEnd calls: %u\n", nloopends); - - /* play last half, then loop the whole buffer */ - buf.PlayBegin = 22050; - buf.PlayLength = 0; - buf.LoopBegin = 0; - buf.LoopLength = 0; - buf.LoopCount = 1; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, -1); - ok(played - running_total == 22050 + 44100, "Got wrong samples played: %u\n", played - running_total); - running_total = played; - ok(nloopends == 1, "Got wrong OnLoopEnd calls: %u\n", nloopends); - - /* play short segment from middle, loop to the beginning, and end at PlayEnd */ - buf.PlayBegin = 22050; - buf.PlayLength = 4410; - buf.LoopBegin = 0; - buf.LoopLength = 0; - buf.LoopCount = 1; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, -1); - ok(played - running_total == 4410 + (22050 + 4410), "Got wrong samples played: %u\n", played - running_total); - running_total = played; - ok(nloopends == 1, "Got wrong OnLoopEnd calls: %u\n", nloopends); - - /* invalid: LoopEnd must be <= PlayEnd - * xaudio27: play until LoopEnd, loop to beginning, play until PlayEnd */ - buf.PlayBegin = 22050; - buf.PlayLength = 4410; - buf.LoopBegin = 0; - buf.LoopLength = 22050 + 4410 * 2; - buf.LoopCount = 1; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - if(xaudio27){ - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, -1); - ok(played - running_total == 4410 + (22050 + 4410 * 2), "Got wrong samples played: %u\n", played - running_total); - running_total = played; - ok(nloopends == 1, "Got wrong OnLoopEnd calls: %u\n", nloopends); - }else - ok(hr == XAUDIO2_E_INVALID_CALL, "SubmitSourceBuffer should have failed: %08x\n", hr); - - /* invalid: LoopEnd must be within play range - * xaudio27: plays only play range */ - buf.PlayBegin = 22050; - buf.PlayLength = 0; /* == until end of buffer */ - buf.LoopBegin = 0; - buf.LoopLength = 22050; - buf.LoopCount = 1; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - if(xaudio27){ - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, -1); - ok(played - running_total == 22050, "Got wrong samples played: %u\n", played - running_total); - running_total = played; - ok(nloopends == 0, "Got wrong OnLoopEnd calls: %u\n", nloopends); - }else - ok(hr == XAUDIO2_E_INVALID_CALL, "SubmitSourceBuffer should have failed: %08x\n", hr); - - /* invalid: LoopBegin must be before PlayEnd - * xaudio27: crashes */ - if(!xaudio27){ - buf.PlayBegin = 0; - buf.PlayLength = 4410; - buf.LoopBegin = 22050; - buf.LoopLength = 4410; - buf.LoopCount = 1; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == XAUDIO2_E_INVALID_CALL, "SubmitSourceBuffer should have failed: %08x\n", hr); - } - - /* infinite looping buffer */ - buf.PlayBegin = 22050; - buf.PlayLength = 0; - buf.LoopBegin = 0; - buf.LoopLength = 0; - buf.LoopCount = 255; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - played = play_to_completion(src, running_total + 88200); - ok(played - running_total == 22050 + 44100 * 2, "Got wrong samples played: %u\n", played - running_total); - ok(nloopends == (played - running_total) / 88200 + 1, "Got wrong OnLoopEnd calls: %u\n", nloopends); - running_total = played; - - if(xaudio27) - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src); - else - IXAudio2SourceVoice_DestroyVoice(src); - IXAudio2MasteringVoice_DestroyVoice(master); - FAtest_free((void*)buf.pAudioData); -} - -static void test_submix(IXAudio2 *xa) -{ - HRESULT hr; - IXAudio2MasteringVoice *master; - IXAudio2SubmixVoice *sub; - - XA2CALL_0V(StopEngine); - - if(xaudio27) - hr = IXAudio27_CreateMasteringVoice((IXAudio27*)xa, &master, 2, 44100, 0, 0, NULL); - else - hr = IXAudio2_CreateMasteringVoice(xa, &master, 2, 44100, 0, -#ifdef _WIN32 - NULL /*WCHAR *deviceID*/, NULL, AudioCategory_GameEffects); -#else - 0 /*int deviceIndex*/, NULL); -#endif - ok(hr == S_OK, "CreateMasteringVoice failed: %08x\n", hr); - - XA2CALL(CreateSubmixVoice, &sub, 2, 44100, 0, 0, NULL, NULL); - ok(hr == S_OK, "CreateSubmixVoice failed: %08x\n", hr); - - if(xaudio27){ - XAUDIO27_VOICE_DETAILS details; - IXAudio27SubmixVoice_GetVoiceDetails((IXAudio27SubmixVoice*)sub, &details); - ok(details.CreationFlags == 0, "Got wrong flags: 0x%x\n", details.CreationFlags); - ok(details.InputChannels == 2, "Got wrong channel count: 0x%x\n", details.InputChannels); - ok(details.InputSampleRate == 44100, "Got wrong sample rate: 0x%x\n", details.InputSampleRate); - }else{ - XAUDIO2_VOICE_DETAILS details; - IXAudio2SubmixVoice_GetVoiceDetails(sub, &details); - ok(details.CreationFlags == 0, "Got wrong creation flags: 0x%x\n", details.CreationFlags); - ok(details.ActiveFlags == 0, "Got wrong active flags: 0x%x\n", details.CreationFlags); - ok(details.InputChannels == 2, "Got wrong channel count: 0x%x\n", details.InputChannels); - ok(details.InputSampleRate == 44100, "Got wrong sample rate: 0x%x\n", details.InputSampleRate); - } - - IXAudio2SubmixVoice_DestroyVoice(sub); - IXAudio2MasteringVoice_DestroyVoice(master); -} - -static void WINAPI flush_buf_OnVoiceProcessingPassStart(IXAudio2VoiceCallback *This, - UINT32 BytesRequired) -{ -} - -static void WINAPI flush_buf_OnVoiceProcessingPassEnd(IXAudio2VoiceCallback *This) -{ -} - -static void WINAPI flush_buf_OnStreamEnd(IXAudio2VoiceCallback *This) -{ - ok(0, "Unexpected OnStreamEnd\n"); -} - -static void WINAPI flush_buf_OnBufferStart(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ -} - -struct flush_buf_testdata { - IXAudio2SourceVoice *src; - int idx; - int test; -}; - -static int flush_buf_tested; - -static void WINAPI flush_buf_OnBufferEnd(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ - struct flush_buf_testdata *data = pBufferContext; - XAUDIO2_VOICE_STATE state; - XAUDIO2_BUFFER buf; - HRESULT hr; - - ok(!is_main_thread(), "Buffer callback called from main thread!\n"); - if(!data) - return; - - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)data->src, &state); - switch(data->test){ - case 0: - ok(state.BuffersQueued == data->idx ? 0 : 1, - "Got wrong number of buffers remaining for index %u: %u\n", data->idx, state.BuffersQueued); - ok(data->idx == flush_buf_tested, "Wrong index %u\n", data->idx); - break; - - case 1: - ok(state.BuffersQueued == 1, "Got wrong number of buffers remaining: %u\n", state.BuffersQueued); - ok(data->idx == 1, "Wrong index %u\n", data->idx); - break; - - case 2: - ok(state.BuffersQueued == 1, "Got wrong number of buffers remaining: %u\n", state.BuffersQueued); - - /* Avoid it when first buffer is flushed */ - if(data->idx == 0) - return; - - /* FlushSourceBuffers is not executed immediately even when called from a callback */ - memset(&buf, 0, sizeof(buf)); - buf.AudioBytes = 22050 * 2 * 4; - buf.pAudioData = FAtest_malloc(buf.AudioBytes); - memset((float*)buf.pAudioData, 0, buf.AudioBytes); - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(data->src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)data->src, &state); - ok(state.BuffersQueued == 2, "Got wrong number of buffers remaining: %u\n", state.BuffersQueued); - - hr = IXAudio2SourceVoice_FlushSourceBuffers(data->src); - ok(hr == S_OK, "FlushSourceBuffers failed: %08x\n", hr); - - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)data->src, &state); - ok(state.BuffersQueued == 2, "Got wrong number of buffers remaining: %u\n", state.BuffersQueued); - break; - } - - flush_buf_tested++; -} - -static void WINAPI flush_buf_OnLoopEnd(IXAudio2VoiceCallback *This, - void *pBufferContext) -{ - ok(0, "Unexpected OnLoopEnd\n"); -} - -static void WINAPI flush_buf_OnVoiceError(IXAudio2VoiceCallback *This, - void *pBuffercontext, HRESULT Error) -{ - ok(0, "Unexpected OnVoiceError\n"); -} - -#ifdef _WIN32 -static IXAudio2VoiceCallbackVtbl flush_buf_vtbl = { - flush_buf_OnVoiceProcessingPassStart, - flush_buf_OnVoiceProcessingPassEnd, - flush_buf_OnStreamEnd, - flush_buf_OnBufferStart, - flush_buf_OnBufferEnd, - flush_buf_OnLoopEnd, - flush_buf_OnVoiceError -}; - -static IXAudio2VoiceCallback flush_buf = { &flush_buf_vtbl }; -#else -static FAudioVoiceCallback flush_buf = { - flush_buf_OnBufferEnd, - flush_buf_OnBufferStart, - flush_buf_OnLoopEnd, - flush_buf_OnStreamEnd, - flush_buf_OnVoiceError, - flush_buf_OnVoiceProcessingPassEnd, - flush_buf_OnVoiceProcessingPassStart -}; -#endif - -static void test_flush(IXAudio2 *xa) -{ - HRESULT hr; - IXAudio2MasteringVoice *master; - IXAudio2SourceVoice *src; - WAVEFORMATEX fmt; - XAUDIO2_BUFFER buf; - XAUDIO2_VOICE_STATE state; - struct flush_buf_testdata testdata[2]; - int i, j; - - XA2CALL_0V(StopEngine); - - if(xaudio27) - hr = IXAudio27_CreateMasteringVoice((IXAudio27*)xa, &master, 2, 44100, 0, 0, NULL); - else - hr = IXAudio2_CreateMasteringVoice(xa, &master, 2, 44100, 0, -#ifdef _WIN32 - NULL /*WCHAR *deviceID*/, NULL, AudioCategory_GameEffects); -#else - 0 /*int deviceIndex*/, NULL); -#endif - ok(hr == S_OK, "CreateMasteringVoice failed: %08x\n", hr); - - fmt.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - fmt.nChannels = 2; - fmt.nSamplesPerSec = 44100; - fmt.wBitsPerSample = 32; - fmt.nBlockAlign = fmt.nChannels * fmt.wBitsPerSample / 8; - fmt.nAvgBytesPerSec = fmt.nSamplesPerSec * fmt.nBlockAlign; - fmt.cbSize = 0; - - XA2CALL(CreateSourceVoice, &src, &fmt, 0, 1.f, NULL, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - memset(&buf, 0, sizeof(buf)); - buf.AudioBytes = 22050 * fmt.nBlockAlign; - buf.pAudioData = FAtest_malloc(buf.AudioBytes); - fill_buf((float*)buf.pAudioData, &fmt, 440, 22050); - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - XA2CALL_0(StartEngine); - ok(hr == S_OK, "StartEngine failed: %08x\n", hr); - - while(1){ - if(xaudio27) - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - else - IXAudio2SourceVoice_GetState(src, &state, 0); - if(state.SamplesPlayed >= 2205) - break; - FAtest_sleep(10); - } - - hr = IXAudio2SourceVoice_Stop(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Stop failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_FlushSourceBuffers(src); - ok(hr == S_OK, "FlushSourceBuffers failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - FAtest_sleep(100); - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - - if(xaudio27){ - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src); - }else{ - IXAudio2SourceVoice_DestroyVoice(src); - } - - /* In XA2.7 FlushSourceBuffers is always asynchronous. We also test Stop both - * before and after FlushSourceBuffers, with two buffers submitted. During the - * FlushSourceBuffers callbacks, even if Stop was called first (and thus both - * buffers get OnBufferEnd events), the BuffersQueued is still 1 for the first - * event. The game Legend of Heroes: Trails of Cold Steel 2 relies on this. */ - if(xaudio27){ - for(i = 0; i < 3; ++i){ - flush_buf_tested = 0; - - XA2CALL(CreateSourceVoice, &src, &fmt, 0, 1.f, &flush_buf, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - for(j = 0; j < 2; j++){ - testdata[j].idx = j; - testdata[j].test = i; - testdata[j].src = src; - buf.pContext = &testdata[j]; - - hr = IXAudio2SourceVoice_SubmitSourceBuffer(src, &buf, NULL); - ok(hr == S_OK, "SubmitSourceBuffer failed: %08x\n", hr); - } - - hr = IXAudio2SourceVoice_Start(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Start failed: %08x\n", hr); - - while(1){ - IXAudio27SourceVoice_GetState((IXAudio27SourceVoice*)src, &state); - if(state.SamplesPlayed >= 2205) - break; - FAtest_sleep(10); - } - - switch(i){ - case 0: - hr = IXAudio2SourceVoice_Stop(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Stop failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_FlushSourceBuffers(src); - ok(hr == S_OK, "FlushSourceBuffers failed: %08x\n", hr); - - while(1){ - if(flush_buf_tested >= 2) - break; - FAtest_sleep(10); - } - ok(flush_buf_tested == 2, "Wrong number of OnBufferEnd callbacks tested: %u\n", flush_buf_tested); - break; - - case 1: - case 2: - hr = IXAudio2SourceVoice_FlushSourceBuffers(src); - ok(hr == S_OK, "FlushSourceBuffers failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_Stop(src, 0, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "Stop failed: %08x\n", hr); - - while(1){ - if(flush_buf_tested >= 1) - break; - FAtest_sleep(10); - } - ok(flush_buf_tested == 1, "Wrong number of OnBufferEnd callbacks tested: %u\n", flush_buf_tested); - break; - } - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src); - } - } - IXAudio2MasteringVoice_DestroyVoice(master); - - FAtest_free((void*)buf.pAudioData); -} - -static void test_setchannelvolumes(IXAudio2 *xa) -{ - HRESULT hr; - IXAudio2MasteringVoice *master; - IXAudio2SourceVoice *src_2ch, *src_8ch; - WAVEFORMATEX fmt_2ch, fmt_8ch; - float volumes[] = {0.1f, 0.2f, 0.3f, 0.4f, 0.5f, 0.6f, 0.7f, 0.8f}; - - if(xaudio27) - hr = IXAudio27_CreateMasteringVoice((IXAudio27*)xa, &master, 8, 44100, 0, 0, NULL); - else - hr = IXAudio2_CreateMasteringVoice(xa, &master, 8, 44100, 0, -#ifdef _WIN32 - NULL /*WCHAR *deviceID*/, NULL, AudioCategory_GameEffects); -#else - 0 /*int deviceIndex*/, NULL); -#endif - ok(hr == S_OK, "CreateMasteringVoice failed: %08x\n", hr); - - fmt_2ch.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - fmt_2ch.nChannels = 2; - fmt_2ch.nSamplesPerSec = 44100; - fmt_2ch.wBitsPerSample = 32; - fmt_2ch.nBlockAlign = fmt_2ch.nChannels * fmt_2ch.wBitsPerSample / 8; - fmt_2ch.nAvgBytesPerSec = fmt_2ch.nSamplesPerSec * fmt_2ch.nBlockAlign; - fmt_2ch.cbSize = 0; - - fmt_8ch.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - fmt_8ch.nChannels = 8; - fmt_8ch.nSamplesPerSec = 44100; - fmt_8ch.wBitsPerSample = 32; - fmt_8ch.nBlockAlign = fmt_8ch.nChannels * fmt_8ch.wBitsPerSample / 8; - fmt_8ch.nAvgBytesPerSec = fmt_8ch.nSamplesPerSec * fmt_8ch.nBlockAlign; - fmt_8ch.cbSize = 0; - - XA2CALL(CreateSourceVoice, &src_2ch, &fmt_2ch, 0, 1.f, NULL, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - XA2CALL(CreateSourceVoice, &src_8ch, &fmt_8ch, 0, 1.f, NULL, NULL, NULL); - ok(hr == S_OK, "CreateSourceVoice failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_SetChannelVolumes(src_2ch, 2, volumes, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "SetChannelVolumes failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_SetChannelVolumes(src_8ch, 8, volumes, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "SetChannelVolumes failed: %08x\n", hr); - - if(xaudio27){ - /* XAudio 2.7 doesn't check the number of channels */ - hr = IXAudio2SourceVoice_SetChannelVolumes(src_8ch, 2, volumes, XAUDIO2_COMMIT_NOW); - ok(hr == S_OK, "SetChannelVolumes failed: %08x\n", hr); - }else{ - /* the number of channels must be the same as the number of channels on the source voice */ - hr = IXAudio2SourceVoice_SetChannelVolumes(src_8ch, 2, volumes, XAUDIO2_COMMIT_NOW); - ok(hr == XAUDIO2_E_INVALID_CALL, "SetChannelVolumes should have failed: %08x\n", hr); - - hr = IXAudio2SourceVoice_SetChannelVolumes(src_2ch, 8, volumes, XAUDIO2_COMMIT_NOW); - ok(hr == XAUDIO2_E_INVALID_CALL, "SetChannelVolumes should have failed: %08x\n", hr); - - /* volumes must not be NULL, XAudio 2.7 doesn't check this */ - hr = IXAudio2SourceVoice_SetChannelVolumes(src_2ch, 2, NULL, XAUDIO2_COMMIT_NOW); - ok(hr == XAUDIO2_E_INVALID_CALL, "SetChannelVolumes should have failed: %08x\n", hr); - } - - if(xaudio27){ - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src_2ch); - IXAudio27SourceVoice_DestroyVoice((IXAudio27SourceVoice*)src_8ch); - }else{ - IXAudio2SourceVoice_DestroyVoice(src_2ch); - IXAudio2SourceVoice_DestroyVoice(src_8ch); - } - - IXAudio2MasteringVoice_DestroyVoice(master); -} - -int main(int argc, char **argv) -{ - HRESULT hr; - IXAudio2 *xa; - IXAudio27 *xa27 = NULL; - UINT32 has_devices; -#ifdef _WIN32 - HANDLE xa28dll; - - main_thread_id = GetCurrentThreadId(); - - CoInitialize(NULL); - - hr = CoCreateInstance(&CLSID_XAudio27, NULL, CLSCTX_INPROC_SERVER, - &IID_IXAudio27, (void**)&xa27); -#else - main_thread_id = pthread_self(); - hr = FAudioCOMConstructEXT(&xa27, 7); - ok(hr == S_OK, "Failed to create FAudio object\n"); -#endif - - if(hr == S_OK){ - xaudio27 = TRUE; - - hr = IXAudio27_Initialize(xa27, 0, XAUDIO2_ANY_PROCESSOR); - ok(hr == S_OK, "Initialize failed: %08x\n", hr); - - has_devices = test_DeviceDetails(xa27); - if(has_devices){ - test_simple_streaming((IXAudio2*)xa27); - test_buffer_callbacks((IXAudio2*)xa27); - test_looping((IXAudio2*)xa27); - test_submix((IXAudio2*)xa27); - test_flush((IXAudio2*)xa27); - test_setchannelvolumes((IXAudio2*)xa27); - }else - fprintf(stdout, "No audio devices available\n"); - - IXAudio27_Release(xa27); - }else - fprintf(stdout, "XAudio2.7 not available, tests skipped\n"); - -#ifdef _WIN32 - hr = E_FAIL; - xa28dll = LoadLibraryA("xaudio2_8.dll"); - if(xa28dll){ - pXAudio2Create = (void*)GetProcAddress(xa28dll, "XAudio2Create"); - pCreateAudioVolumeMeter = (void*)GetProcAddress(xa28dll, "CreateAudioVolumeMeter"); - ok(pXAudio2Create != NULL && pCreateAudioVolumeMeter != NULL, - "xaudio2_8 doesn't have expected exports?\n"); - - if(pXAudio2Create) - hr = pXAudio2Create(&xa, 0, XAUDIO2_DEFAULT_PROCESSOR); - } -#else - hr = FAudioCreate(&xa, 0, FAUDIO_DEFAULT_PROCESSOR); - ok(hr == S_OK, "Failed to create FAudio object\n"); -#endif - - if(hr == S_OK){ - xaudio27 = FALSE; - has_devices = test_DeviceDetails((IXAudio27*)xa); - if(has_devices){ - test_simple_streaming(xa); - test_buffer_callbacks(xa); - test_looping(xa); - test_submix(xa); - test_flush(xa); - test_setchannelvolumes(xa); - }else - fprintf(stdout, "No audio devices available\n"); - - IXAudio2_Release(xa); - }else - fprintf(stdout, "XAudio2.8 not available, tests skipped\n"); - - fprintf(stdout, "Finished with %u successful tests and %u failed tests.\n", - success_count, failure_count); - - return failure_count > 0; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/facttool/facttool.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/facttool/facttool.cpp deleted file mode 100644 index 768a19c4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/facttool/facttool.cpp +++ /dev/null @@ -1,1106 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* This is where the actual tool lives! Try to do your work in here! */ - -#include /* DO NOT INCLUDE THIS IN REAL CODE! */ - -#include "../uicommon/imgui.h" - -#include -#include -#include - -const char* TOOL_NAME = "FACT Auditioning Tool"; -int TOOL_WIDTH = 1280; -int TOOL_HEIGHT = 720; - -bool openEngineShow = true; - -std::vector engines; -std::vector engineNames; -std::vector engineShows; - -std::vector soundBanks; -std::vector soundbankNames; -std::vector soundbankShows; - -std::vector waveBanks; -std::vector wavebankMems; -std::vector wavebankNames; -std::vector wavebankShows; - -std::vector waves; - -void FAudioTool_Init() -{ - /* Nothing to do... */ -} - -void FAudioTool_Quit() -{ - for (size_t i = 0; i < soundBanks.size(); i += 1) - { - FACTSoundBank_Destroy(soundBanks[i]); - } - for (size_t i = 0; i < waves.size(); i += 1) - { - FACTWave_Destroy(waves[i]); - } - for (size_t i = 0; i < waveBanks.size(); i += 1) - { - FACTWaveBank_Destroy(waveBanks[i]); - SDL_free(wavebankMems[i]); - } - for (size_t i = 0; i < engines.size(); i += 1) - { - FACTAudioEngine_ShutDown(engines[i]); - } -} - -bool show_test_window = false; -void FAudioTool_Update() -{ - ImGui::ShowDemoWindow(&show_test_window); - - uint8_t *buf; - size_t len; - - /* Menu bar */ - if (ImGui::BeginMainMenuBar()) - { - if (ImGui::BeginMenu("Window")) - { - if (ImGui::MenuItem("Open AudioEngine", NULL, openEngineShow, true)) - { - openEngineShow = !openEngineShow; - } - for (size_t i = 0; i < engines.size(); i += 1) - { - if (ImGui::MenuItem( - engineNames[i].c_str(), - NULL, - engineShows[i], - true - )) { - engineShows[i] = !engineShows[i]; - } - } - for (size_t i = 0; i < soundBanks.size(); i += 1) - { - if (ImGui::MenuItem( - soundbankNames[i].c_str(), - NULL, - soundbankShows[i], - true - )) { - soundbankShows[i] = !soundbankShows[i]; - } - } - for (size_t i = 0; i < waveBanks.size(); i += 1) - { - if (ImGui::MenuItem( - wavebankNames[i].c_str(), - NULL, - wavebankShows[i], - true - )) { - wavebankShows[i] = !wavebankShows[i]; - } - } - ImGui::EndMenu(); - } - ImGui::EndMainMenuBar(); - } - - /* Open AudioEngine */ - if (openEngineShow) - { - if (ImGui::Begin("Open AudioEngine")) - { - static char enginename[64] = "AudioEngine.xgs"; - if (ImGui::InputText( - "Open AudioEngine", - enginename, 64, - ImGuiInputTextFlags_EnterReturnsTrue - )) { - /* Load up file... */ - buf = (uint8_t*) SDL_LoadFile(enginename, &len); - FACTRuntimeParameters params; - SDL_memset( - ¶ms, - '\0', - sizeof(FACTRuntimeParameters) - ); - params.pGlobalSettingsBuffer = buf; - params.globalSettingsBufferSize = len; - - /* Create engine... */ - FACTAudioEngine *engine; - FACTCreateEngine(0, &engine); - FACTAudioEngine_Initialize(engine, ¶ms); - SDL_free(buf); - - /* Add to UI... */ - engines.push_back(engine); - engineNames.push_back(enginename); - engineShows.push_back(true); - } - } - ImGui::End(); - } - - /* AudioEngine windows */ - for (size_t i = 0; i < engines.size(); i += 1) - { - FACTAudioEngine_DoWork(engines[i]); - if (engineShows[i]) - { - /* Early out */ - if (!ImGui::Begin(engineNames[i].c_str())) - { - ImGui::End(); - continue; - } - - /* Categories */ - if (ImGui::CollapsingHeader("Categories")) - for (uint16_t j = 0; j < engines[i]->categoryCount; j += 1) - if (ImGui::TreeNode(engines[i]->categoryNames[j])) - { - ImGui::Text( - "Max Instances: %d", - engines[i]->categories[j].instanceLimit - ); - ImGui::Text( - "Fade-in (ms): %d", - engines[i]->categories[j].fadeInMS - ); - ImGui::Text( - "Fade-out (ms): %d", - engines[i]->categories[j].fadeOutMS - ); - ImGui::Text( - "Instance Behavior: %X", - engines[i]->categories[j].maxInstanceBehavior - ); - ImGui::Text( - "Parent Category Index: %d", - engines[i]->categories[j].parentCategory - ); - ImGui::Text( - "Base Volume: %f", - engines[i]->categories[j].volume - ); - ImGui::Text( - "Visibility: %X", - engines[i]->categories[j].visibility - ); - ImGui::TreePop(); - } - - /* Variables */ - if (ImGui::CollapsingHeader("Variables")) - for (uint16_t j = 0; j < engines[i]->variableCount; j += 1) - if (ImGui::TreeNode(engines[i]->variableNames[j])) - { - ImGui::Text( - "Accessibility: %X", - engines[i]->variables[j].accessibility - ); - ImGui::Text( - "Initial Value: %f", - engines[i]->variables[j].initialValue - ); - ImGui::Text( - "Min Value: %f", - engines[i]->variables[j].minValue - ); - ImGui::Text( - "Max Value: %f", - engines[i]->variables[j].maxValue - ); - ImGui::TreePop(); - } - - /* RPCs */ - if (ImGui::CollapsingHeader("RPCs")) - for (uint16_t j = 0; j < engines[i]->rpcCount; j += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) j, - "Code %d", - engines[i]->rpcCodes[j] - )) { - ImGui::Text( - "Variable Index: %d", - engines[i]->rpcs[j].variable - ); - ImGui::Text( - "Parameter: %d", - engines[i]->rpcs[j].parameter - ); - ImGui::Text( - "Point Count: %d", - engines[i]->rpcs[j].pointCount - ); - if (ImGui::TreeNode("Points")) - { - for (uint8_t k = 0; k < engines[i]->rpcs[j].pointCount; k += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) k, - "Point #%d", - k - )) { - ImGui::Text( - "Coordinate: (%f, %f)", - engines[i]->rpcs[j].points[k].x, - engines[i]->rpcs[j].points[k].y - ); - ImGui::Text( - "Type: %d\n", - engines[i]->rpcs[j].points[k].type - ); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - /* DSP Presets */ - if (ImGui::CollapsingHeader("DSP Presets")) - for (uint16_t j = 0; j < engines[i]->dspPresetCount; j += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) j, - "Code %d", - engines[i]->dspPresetCodes[j] - )) { - ImGui::Text( - "Accessibility: %X", - engines[i]->dspPresets[j].accessibility - ); - ImGui::Text( - "Parameter Count: %d", - engines[i]->dspPresets[j].parameterCount - ); - if (ImGui::TreeNode("Parameters")) - { - for (uint32_t k = 0; k < engines[i]->dspPresets[j].parameterCount; k += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) k, - "Parameter #%d", - k - )) { - ImGui::Text( - "Initial Value: %f", - engines[i]->dspPresets[j].parameters[k].value - ); - ImGui::Text( - "Min Value: %f", - engines[i]->dspPresets[j].parameters[k].minVal - ); - ImGui::Text( - "Max Value: %f", - engines[i]->dspPresets[j].parameters[k].maxVal - ); - ImGui::Text( - "Unknown u16: %d", - engines[i]->dspPresets[j].parameters[k].unknown - ); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - ImGui::Separator(); - - /* Open SoundBank */ - static char soundbankname[64] = "Sound Bank.xsb"; - if (ImGui::InputText( - "Open SoundBank", - soundbankname, 64, - ImGuiInputTextFlags_EnterReturnsTrue - )) { - /* Load up file... */ - buf = (uint8_t*) SDL_LoadFile(soundbankname, &len); - - /* Create SoundBank... */ - FACTSoundBank *sb; - FACTAudioEngine_CreateSoundBank( - engines[i], - buf, - len, - 0, - 0, - &sb - ); - SDL_free(buf); - - /* Add to UI... */ - soundBanks.push_back(sb); - soundbankNames.push_back( - "SoundBank: " + std::string(sb->name) - ); - soundbankShows.push_back(true); - } - - /* Open WaveBank */ - static char wavebankname[64] = "Wave Bank.xwb"; - if (ImGui::InputText( - "Open WaveBank", - wavebankname, 64, - ImGuiInputTextFlags_EnterReturnsTrue - )) { - /* Load up file... */ - buf = (uint8_t*) SDL_LoadFile(wavebankname, &len); - - /* Create WaveBank... */ - FACTWaveBank *wb; - FACTAudioEngine_CreateInMemoryWaveBank( - engines[i], - buf, - len, - 0, - 0, - &wb - ); - - /* Add to UI... */ - waveBanks.push_back(wb); - wavebankMems.push_back(buf); - wavebankNames.push_back( - "WaveBank: " + std::string(wb->name) - ); - wavebankShows.push_back(true); - } - - ImGui::Separator(); - - /* Close file */ - if (ImGui::Button("Close AudioEngine")) - { - /* Destroy SoundBank windows... */ - LinkedList *list = engines[i]->sbList; - while (list != NULL) - { - for (size_t j = 0; j < soundBanks.size(); j += 1) - { - if (list->entry == soundBanks[j]) - { - list = list->next; - soundBanks.erase(soundBanks.begin() + j); - soundbankNames.erase(soundbankNames.begin() + j); - soundbankShows.erase(soundbankShows.begin() + j); - break; - } - } - } - - /* Destroy WaveBank windows... */ - list = engines[i]->wbList; - while (list != NULL) - { - for (size_t j = 0; j < waveBanks.size(); j += 1) - { - if (list->entry == waveBanks[j]) - { - list = list->next; - // FIXME: SDL_free(wavebankMems[j]); - waveBanks.erase(waveBanks.begin() + j); - wavebankMems.erase(wavebankMems.begin() + j); - wavebankNames.erase(wavebankNames.begin() + j); - wavebankShows.erase(wavebankShows.begin() + j); - break; - } - } - } - - /* Close file, finally */ - FACTAudioEngine_ShutDown(engines[i]); - engines.erase(engines.begin() + i); - engineNames.erase(engineNames.begin() + i); - engineShows.erase(engineShows.begin() + i); - i -= 1; - } - - /* We out. */ - ImGui::End(); - } - } - - /* SoundBank windows */ - for (size_t i = 0; i < soundBanks.size(); i += 1) - if (soundbankShows[i]) - { - /* Early out */ - if (!ImGui::Begin(soundbankNames[i].c_str())) - { - ImGui::End(); - continue; - } - - /* Close file */ - if (ImGui::Button("Close SoundBank")) - { - FACTSoundBank_Destroy(soundBanks[i]); - soundBanks.erase(soundBanks.begin() + i); - soundbankNames.erase(soundbankNames.begin() + i); - soundbankShows.erase(soundbankShows.begin() + i); - i -= 1; - ImGui::End(); - continue; - } - - ImGui::Separator(); - - /* WaveBank Dependencies */ - if (ImGui::CollapsingHeader("WaveBank Dependencies")) - for (uint8_t j = 0; j < soundBanks[i]->wavebankCount; j += 1) - { - ImGui::Text("%s", soundBanks[i]->wavebankNames[j]); - } - - /* Cues */ - if (ImGui::CollapsingHeader("Cues")) - for (uint16_t j = 0; j < soundBanks[i]->cueCount; j += 1) - { - char nameText[255]; - if (soundBanks[i]->cueNames != NULL) - { - SDL_snprintf(nameText, sizeof(nameText), "%s", soundBanks[i]->cueNames[j]); - } - else - { - SDL_snprintf(nameText, sizeof(nameText), "%s-%d\n", soundBanks[i]->name, j); - } - if (ImGui::TreeNode(nameText)) - { - char playText[64]; - SDL_snprintf(playText, 64, "Play %s", nameText); - if (ImGui::Button(playText)) - { - FACTSoundBank_Play( - soundBanks[i], - j, - 0, - 0, - NULL - ); - } - ImGui::Text( - "Flags: %X", - soundBanks[i]->cues[j].flags - ); - ImGui::Text( - "Sound/Variation Code: %d", - soundBanks[i]->cues[j].sbCode - ); - ImGui::Text( - "Transition Offset: %d", - soundBanks[i]->cues[j].transitionOffset - ); - ImGui::Text( - "Instance Limit: %d", - soundBanks[i]->cues[j].instanceLimit - ); - ImGui::Text( - "Fade-in (ms): %d", - soundBanks[i]->cues[j].fadeInMS - ); - ImGui::Text( - "Fade-out (ms): %d", - soundBanks[i]->cues[j].fadeOutMS - ); - ImGui::Text( - "Max Instance Behavior: %d", - soundBanks[i]->cues[j].maxInstanceBehavior - ); - ImGui::TreePop(); - } - } - - /* Sounds */ - if (ImGui::CollapsingHeader("Sounds")) - for (uint16_t j = 0; j < soundBanks[i]->soundCount; j += 1) - { - if (ImGui::TreeNode( - (void*) (intptr_t) j, - "Code %d", - soundBanks[i]->soundCodes[j] - )) { - ImGui::Text( - "Flags: %X", - soundBanks[i]->sounds[j].flags - ); - ImGui::Text( - "Category Index: %d", - soundBanks[i]->sounds[j].category - ); - ImGui::Text( - "Volume: %f", - soundBanks[i]->sounds[j].volume - ); - ImGui::Text( - "Pitch: %d", - soundBanks[i]->sounds[j].pitch - ); - ImGui::Text( - "Priority: %d", - soundBanks[i]->sounds[j].priority - ); - ImGui::Text( - "RPC Code Count: %d", - soundBanks[i]->sounds[j].rpcCodeCount - ); - ImGui::Text( - "DSP Preset Code Count: %d", - soundBanks[i]->sounds[j].dspCodeCount - ); - ImGui::Text( - "Track Count: %d", - soundBanks[i]->sounds[j].trackCount - ); - if (ImGui::TreeNode("RPC Codes")) - { - for (uint8_t k = 0; k < soundBanks[i]->sounds[j].rpcCodeCount; k += 1) - { - ImGui::Text( - "%d", - soundBanks[i]->sounds[j].rpcCodes[k] - ); - } - ImGui::TreePop(); - } - if (ImGui::TreeNode("DSP Preset Codes")) - { - for (uint8_t k = 0; k < soundBanks[i]->sounds[j].dspCodeCount; k += 1) - { - ImGui::Text( - "%d", - soundBanks[i]->sounds[j].dspCodes[k] - ); - } - ImGui::TreePop(); - } - if (ImGui::TreeNode("Tracks")) - { - for (uint8_t k = 0; k < soundBanks[i]->sounds[j].trackCount; k += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) k, - "Track Code %d", - soundBanks[i]->sounds[j].tracks[k].code - )) { - ImGui::Text( - "Volume: %f", - soundBanks[i]->sounds[j].tracks[k].volume - ); - ImGui::Text( - "Filter Type: %d", - soundBanks[i]->sounds[j].tracks[k].filter - ); - ImGui::Text( - "Filter Q-Factor: %d", - soundBanks[i]->sounds[j].tracks[k].qfactor - ); - ImGui::Text( - "Filter Frequency: %d", - soundBanks[i]->sounds[j].tracks[k].frequency - ); - ImGui::Text( - "RPC Code Count: %d", - soundBanks[i]->sounds[j].tracks[k].rpcCodeCount - ); - ImGui::Text( - "Event Count: %d", - soundBanks[i]->sounds[j].tracks[k].eventCount - ); - if (ImGui::TreeNode("RPC Codes")) - { - for (uint8_t l = 0; l < soundBanks[i]->sounds[j].tracks[k].rpcCodeCount; l += 1) - { - ImGui::Text( - "%d", - soundBanks[i]->sounds[j].tracks[k].rpcCodes[l] - ); - } - ImGui::TreePop(); - } - if (ImGui::TreeNode("Events")) - { - for (uint8_t l = 0; l < soundBanks[i]->sounds[j].tracks[k].eventCount; l += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) l, - "Event #%d", - l - )) { - const FACTEvent *evt = &soundBanks[i]->sounds[j].tracks[k].events[l]; - ImGui::Text( - "Type: %d", - evt->type - ); - ImGui::Text( - "Timestamp: %d", - evt->timestamp - ); - ImGui::Text( - "Random Offset: %d", - evt->randomOffset - ); - if (evt->type == FACTEVENT_STOP) - { - ImGui::Text( - "Flags: %X", - evt->stop.flags - ); - } - else if ( evt->type == FACTEVENT_PLAYWAVE || - evt->type == FACTEVENT_PLAYWAVETRACKVARIATION || - evt->type == FACTEVENT_PLAYWAVEEFFECTVARIATION || - evt->type == FACTEVENT_PLAYWAVETRACKEFFECTVARIATION ) - { - ImGui::Text( - "Play Flags: %X", - evt->wave.flags - ); - ImGui::Text( - "Position: %d", - evt->wave.position - ); - ImGui::Text( - "Angle: %d", - evt->wave.angle - ); - ImGui::Text( - "Loop Count: %d", - evt->wave.loopCount - ); - if (evt->wave.isComplex) - { - ImGui::Text( - "Track Variation Type: %d", - evt->wave.complex.variation - ); - ImGui::Text( - "Track Count: %d", - evt->wave.complex.trackCount - ); - if (ImGui::TreeNode("Tracks")) - { - for (uint16_t m = 0; m < evt->wave.complex.trackCount; m += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) m, - "Track #%d", - m - )) { - ImGui::Text( - "Track Index: %d", - evt->wave.complex.tracks[m] - ); - ImGui::Text( - "WaveBank Index: %d", - evt->wave.complex.wavebanks[m] - ); - ImGui::Text( - "Weight: %d", - evt->wave.complex.weights[m] - ); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - } - else - { - ImGui::Text( - "Track Index: %d", - evt->wave.simple.track - ); - ImGui::Text( - "WaveBank Index: %d", - evt->wave.simple.wavebank - ); - } - - if ( evt->wave.variationFlags != 0 && - evt->wave.variationFlags != 0xFFFF ) - { - ImGui::Text( - "Effect Variation Flags: %X", - evt->wave.variationFlags - ); - if (evt->wave.variationFlags & 0x1000) - { - ImGui::Text( - "Min Pitch: %d", - evt->wave.minPitch - ); - ImGui::Text( - "Max Pitch: %d", - evt->wave.maxPitch - ); - } - if (evt->wave.variationFlags & 0x2000) - { - ImGui::Text( - "Min Volume: %f", - evt->wave.minVolume - ); - ImGui::Text( - "Max Volume: %f", - evt->wave.maxVolume - ); - } - if (evt->wave.variationFlags & 0xC000) - { - ImGui::Text( - "Min Frequency: %f", - evt->wave.minFrequency - ); - ImGui::Text( - "Max Frequency: %f", - evt->wave.maxFrequency - ); - ImGui::Text( - "Min Q-Factor: %f", - evt->wave.minQFactor - ); - ImGui::Text( - "Max Q-Factor: %f", - evt->wave.maxQFactor - ); - } - } - } - else if ( evt->type == FACTEVENT_PITCH || - evt->type == FACTEVENT_VOLUME || - evt->type == FACTEVENT_PITCHREPEATING || - evt->type == FACTEVENT_VOLUMEREPEATING ) - { - if (evt->value.settings == 0) - { - ImGui::Text( - "Equation Flags: %X", - evt->value.equation.flags - ); - ImGui::Text( - "Value 1: %f", - evt->value.equation.value1 - ); - ImGui::Text( - "Value 2: %f", - evt->value.equation.value2 - ); - } - else - { - ImGui::Text( - "Initial Value: %f", - evt->value.ramp.initialValue - ); - ImGui::Text( - "Initial Slope: %f", - evt->value.ramp.initialSlope - ); - ImGui::Text( - "Slope Delta: %f", - evt->value.ramp.slopeDelta - ); - ImGui::Text( - "Duration: %d", - evt->value.ramp.duration - ); - } - ImGui::Text( - "Repeats: %d", - evt->value.repeats - ); - ImGui::Text( - "Frequency: %d", - evt->value.frequency - ); - } - else if ( evt->type == FACTEVENT_MARKER || - evt->type == FACTEVENT_MARKERREPEATING ) - { - ImGui::Text( - "Marker: %d", - evt->marker.marker - ); - ImGui::Text( - "Repeats: %d", - evt->marker.repeats - ); - ImGui::Text( - "Frequency: %d", - evt->marker.frequency - ); - } - else - { - FAudio_assert(0 && "Unknown event type!"); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - } - - /* Variations */ - if (ImGui::CollapsingHeader("Variations")) - for (uint16_t j = 0; j < soundBanks[i]->variationCount; j += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) j, - "Code #%d", - soundBanks[i]->variationCodes[j] - )) { - ImGui::Text( - "Flags: %X", - soundBanks[i]->variations[j].flags - ); - ImGui::Text( - "Interactive Variable Index: %d", - soundBanks[i]->variations[j].variable - ); - ImGui::Text( - "Entry Count: %X", - soundBanks[i]->variations[j].entryCount - ); - if (ImGui::TreeNode("Entries")) - { - for (uint16_t k = 0; k < soundBanks[i]->variations[j].entryCount; k += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) k, - "Entry #%d", - k - )) { - if (soundBanks[i]->variations[j].isComplex) - { - ImGui::Text("Complex Variation"); - ImGui::Text( - "Sound Code: %d", - soundBanks[i]->variations[j].entries[k].soundCode - ); - } - else - { - ImGui::Text("Simple Variation"); - ImGui::Text( - "Track Index: %d", - soundBanks[i]->variations[j].entries[k].simple.track - ); - ImGui::Text( - "WaveBank Index: %d", - soundBanks[i]->variations[j].entries[k].simple.wavebank - ); - } - ImGui::Text( - "Min Weight: %f", - soundBanks[i]->variations[j].entries[k].minWeight - ); - ImGui::Text( - "Max Weight: %f", - soundBanks[i]->variations[j].entries[k].maxWeight - ); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - /* Transitions */ - if (ImGui::CollapsingHeader("Transitions")) - for (uint16_t j = 0; j < soundBanks[i]->transitionCount; j += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) j, - "Code #%d", - soundBanks[i]->transitionCodes[j] - )) { - ImGui::Text( - "Entry Count: %X", - soundBanks[i]->transitions[j].entryCount - ); - if (ImGui::TreeNode("Entries")) - { - for (uint16_t k = 0; k < soundBanks[i]->transitions[j].entryCount; k += 1) - if (ImGui::TreeNode( - (void*) (intptr_t) k, - "Entry #%d", - k - )) { - ImGui::Text( - "Sound Code: %d", - soundBanks[i]->transitions[j].entries[k].soundCode - ); - ImGui::Text( - "Src Min Marker: %d", - soundBanks[i]->transitions[j].entries[k].srcMarkerMin - ); - ImGui::Text( - "Src Max Marker: %d", - soundBanks[i]->transitions[j].entries[k].srcMarkerMax - ); - ImGui::Text( - "Dst Min Marker: %d", - soundBanks[i]->transitions[j].entries[k].dstMarkerMin - ); - ImGui::Text( - "Dst Max Marker: %d", - soundBanks[i]->transitions[j].entries[k].dstMarkerMax - ); - ImGui::Text( - "Fade In: %d", - soundBanks[i]->transitions[j].entries[k].fadeIn - ); - ImGui::Text( - "Fade Out: %d", - soundBanks[i]->transitions[j].entries[k].fadeOut - ); - ImGui::Text( - "Flags: %d", - soundBanks[i]->transitions[j].entries[k].flags - ); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - /* We out. */ - ImGui::End(); - } - - /* WaveBank windows */ - for (size_t i = 0; i < waveBanks.size(); i += 1) - if (wavebankShows[i]) - { - /* Early out */ - if (!ImGui::Begin(wavebankNames[i].c_str())) - { - ImGui::End(); - continue; - } - - /* Close file */ - if (ImGui::Button("Close WaveBank")) - { - FACTWaveBank_Destroy(waveBanks[i]); - SDL_free(wavebankMems[i]); - waveBanks.erase(waveBanks.begin() + i); - wavebankMems.erase(wavebankMems.begin() + i); - wavebankNames.erase(wavebankNames.begin() + i); - wavebankShows.erase(wavebankShows.begin() + i); - i -= 1; - ImGui::End(); - continue; - } - - /* Giant table of wavedata entries */ - ImGui::Columns(12, "wavebankentries"); - ImGui::Separator(); - ImGui::Text("Entry"); ImGui::NextColumn(); - ImGui::Text("Flags"); ImGui::NextColumn(); - ImGui::Text("Duration"); ImGui::NextColumn(); - ImGui::Text("Format Tag"); ImGui::NextColumn(); - ImGui::Text("Channels"); ImGui::NextColumn(); - ImGui::Text("Sample Rate"); ImGui::NextColumn(); - ImGui::Text("Block Align"); ImGui::NextColumn(); - ImGui::Text("Bit Depth"); ImGui::NextColumn(); - ImGui::Text("Play Offset"); ImGui::NextColumn(); - ImGui::Text("Play Length"); ImGui::NextColumn(); - ImGui::Text("Loop Offset"); ImGui::NextColumn(); - ImGui::Text("Loop Length"); ImGui::NextColumn(); - ImGui::Separator(); - for (uint32_t j = 0; j < waveBanks[i]->entryCount; j += 1) - { - char playText[16]; - SDL_snprintf(playText, 16, "%d", j); - if (ImGui::Button(playText)) - { - FACTWave *wave; - FACTWaveBank_Play( - waveBanks[i], - j, - 0, - 0, - 0, - &wave - ); - waves.push_back(wave); - } - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].dwFlags); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].Duration); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].Format.wFormatTag); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].Format.nChannels); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].Format.nSamplesPerSec); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].Format.wBlockAlign); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].Format.wBitsPerSample); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].PlayRegion.dwOffset); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].PlayRegion.dwLength); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].LoopRegion.dwStartSample); - ImGui::NextColumn(); - ImGui::Text("%d", waveBanks[i]->entries[j].LoopRegion.dwTotalSamples); - ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::Separator(); - - /* We out. */ - ImGui::End(); - } - - /* Playing Waves */ - for (size_t i = 0; i < waves.size(); i += 1) - { - uint32_t state; - FACTWave_GetState(waves[i], &state); - if (state & FACT_STATE_STOPPED) - { - FACTWave_Destroy(waves[i]); - waves.erase(waves.begin() + i); - i -= 1; - } - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/showriffheader/showriffheader.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/showriffheader/showriffheader.cpp deleted file mode 100644 index 9dca959c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/showriffheader/showriffheader.cpp +++ /dev/null @@ -1,361 +0,0 @@ -#include -#include - -#include - -#include -#include -#include - -char printable_char (char c) -{ - return (std::isprint(c) ? c : ' '); -} -std::string uint8_to_charstr(const uint8_t x) -{ - std::stringstream ss; - ss << "|" - << printable_char(static_cast(x)) - << " |" - << std::hex << std::setfill('0') << std::setw(2) - << static_cast(x) << " |" - << std::setfill(' ') << std::setw(8) - << "0x" - << std::setfill('0') << std::setw(2) - << static_cast(x) - << "|" - << std::setfill(' ') << std::setw(10) - << std::dec << static_cast(x) - << "|"; - return ss.str(); -} -std::string uint16_to_charstr(const uint16_t x) -{ - uint8_t buf[2]; - buf[0] = static_cast (x >> 8); - buf[1] = static_cast (x >> 0); - std::stringstream ss; - ss << "|" - << printable_char(static_cast(buf[1])) - << printable_char(static_cast(buf[0])) - << " |" - << std::hex << std::setfill('0') << std::setw(2) - << static_cast(buf[1]) << "." - << std::hex << std::setfill('0') << std::setw(2) - << static_cast(buf[0]) << " |" - << std::setfill(' ') << std::setw(6) - << "0x" - << std::setfill('0') << std::setw(4) - << x - << "|" - << std::setfill(' ') << std::setw(10) - << std::dec << x - << "|"; - return ss.str(); -} -std::string uint32_to_charstr(const uint32_t x) -{ - uint8_t buf[4]; - buf[0] = static_cast (x >> 24); - buf[1] = static_cast (x >> 16); - buf[2] = static_cast (x >> 8); - buf[3] = static_cast (x >> 0); - std::stringstream ss; - ss << "|" - << printable_char(static_cast(buf[3])) - << printable_char(static_cast(buf[2])) - << printable_char(static_cast(buf[1])) - << printable_char(static_cast(buf[0])) - << "|" - << std::hex << std::setfill('0') << std::setw(2) - << static_cast(buf[3]) << "." - << std::hex << std::setfill('0') << std::setw(2) - << static_cast(buf[2]) << "." - << std::hex << std::setfill('0') << std::setw(2) - << static_cast(buf[1]) << "." - << std::hex << std::setfill('0') << std::setw(2) - << static_cast(buf[0]) << "|" - << std::setfill('0') << std::setw(2) - << "0x" - << std::setfill('0') << std::setw(8) - << x - << "|" - << std::setfill(' ') << std::setw(10) - << std::dec << x - << "|"; - return ss.str(); -} - -const char* audio_format_str(const uint16_t format) -{ - if (format == FAUDIO_FORMAT_PCM) // 1 - return "FAUDIO_FORMAT_PCM"; - if (format == FAUDIO_FORMAT_MSADPCM) // 2 - return "FAUDIO_FORMAT_MSADPCM"; - if (format == FAUDIO_FORMAT_IEEE_FLOAT) // 3 - return "FAUDIO_FORMAT_IEEE_FLOAT"; - if (format == FAUDIO_FORMAT_WMAUDIO2) // 0x0161 - return "FAUDIO_FORMAT_WMAUDIO2"; - if (format == FAUDIO_FORMAT_WMAUDIO3) // 0x0162 - return "FAUDIO_FORMAT_WMAUDIO3"; - if (format == FAUDIO_FORMAT_WMAUDIO_LOSSLESS) // 0x0163 - return "FAUDIO_FORMAT_WMAUDIO_LOSSLESS"; - if (format == FAUDIO_FORMAT_XMAUDIO2) // 0x0166 - return "FAUDIO_FORMAT_XMAUDIO2"; - if (format == FAUDIO_FORMAT_EXTENSIBLE) // 0xFFE - return "FAUDIO_FORMAT_"; - return "FAUDIO_FORMAT_UNKNOWN"; -} - -/* based on https://docs.microsoft.com/en-us/windows/desktop/xaudio2/how-to--load-audio-data-files-in-xaudio2 */ -#define fourccRIFF *((uint32_t *) "RIFF") -#define fourccDATA *((uint32_t *) "data") -#define fourccFMT *((uint32_t *) "fmt ") -#define fourccWAVE *((uint32_t *) "WAVE") -#define fourccXWMA *((uint32_t *) "XWMA") -#define fourccDPDS *((uint32_t *) "dpds") - -void print_sub_chunk(FILE *hFile, uint32_t &chunkID, uint32_t &dwChunkPosition) -{ /* data sub-chunk - 8 bytes + data */ - uint32_t chunkSize; - if (fread(&chunkID, sizeof(uint32_t), 1, hFile) < 1) - { - if (feof(hFile)) - { - std::cout << "reached end of file at: " << dwChunkPosition << std::endl; - return; - } - throw std::runtime_error("can't read chunkID"); - } - dwChunkPosition += sizeof (uint32_t); - if (chunkID == fourccDATA) - { - std::cout << "data chunk position: " << dwChunkPosition - sizeof(uint32_t) << std::endl; - std::cout << "data: " - << uint32_to_charstr(chunkID) << std::endl; - if (fread(&chunkSize, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read chunkSize"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "data chunkSize: " - << uint32_to_charstr(chunkSize) << std::endl; - // skip the rest - fseek(hFile, chunkSize, SEEK_CUR); - dwChunkPosition += chunkSize; - } - else if (chunkID == fourccDPDS) - { - std::cout << "dpds chunk position: " << dwChunkPosition - sizeof(uint32_t) << std::endl; - std::cout << "dpds: " - << uint32_to_charstr(chunkID) << std::endl; - if (fread(&chunkSize, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read chunkSize"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "dpds chunkSize: " - << uint32_to_charstr(chunkSize) << std::endl; - // skip the rest - fseek(hFile, chunkSize, SEEK_CUR); - dwChunkPosition += chunkSize; - } - else - { - std::cout << "unknown chunkID at position: " << dwChunkPosition - sizeof(uint32_t) << std::endl; - std::cout << "unhandled chunk: " - << uint32_to_charstr(chunkID) << std::endl; - } -} - -uint32_t load_data(const char *filename) -{ - /* open the audio file */ - FILE *hFile = fopen(filename, "rb"); - if (!hFile) - return 1; - - fseek(hFile, 0, SEEK_SET); - - uint32_t chunkID; - uint32_t dwChunkPosition = 0; - - // search for 'RIFF' chunk - bool foundRIFF = false; - while (fread(&chunkID, sizeof(uint32_t), 1, hFile) > 0) - { - dwChunkPosition += sizeof (uint32_t); - if (chunkID == fourccRIFF) - { - foundRIFF = true; - std::cout << "found 'RIFF' at: " << dwChunkPosition - sizeof(uint32_t) << std::endl; - break; - } - } - if (!foundRIFF) - { - std::cout << "missing RIFF header" << std::endl; - return 1; - } - - { - std::cout << "RIFF: " - << uint32_to_charstr(chunkID) << std::endl; - uint32_t filesize; - uint32_t format; - if (fread(&filesize, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read RIFF filesize"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "ChunkSize: " - << uint32_to_charstr(filesize) << std::endl; - if (fread(&format, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read RIFF format"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "Format: " - << uint32_to_charstr(format) << std::endl; - } - uint32_t fmt_chunk_start = dwChunkPosition; - uint32_t fmt_chunk_size = 0; - { /* fmt sub-chunk 24 */ - if (fread(&chunkID, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt chunkID"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "fmt: " - << uint32_to_charstr(chunkID) << std::endl; - if (chunkID != fourccFMT) - { - std::cout << "expected chunkID 'fmt '" << std::endl; - return 1; - } - if (fread(&fmt_chunk_size, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt chunkSize"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "ChunkSize: " - << uint32_to_charstr(fmt_chunk_size) << std::endl; - uint16_t audio_format; - if (fread(&audio_format, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt AudioFormat"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt AudioFormat: " - << uint16_to_charstr(audio_format) - << " " << audio_format_str(audio_format) << std::endl; - uint16_t NumChannels; - if (fread(&NumChannels, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt NumChannels"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt NumChannels: " - << uint16_to_charstr(NumChannels) << std::endl; - uint32_t SampleRate; - if (fread(&SampleRate, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt SampleRate"); - std::cout << "fmt SampleRate: " - << uint32_to_charstr(SampleRate) << std::endl; - uint32_t ByteRate; - if (fread(&ByteRate, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt ByteRate"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "fmt ByteRate: " - << uint32_to_charstr(ByteRate) << std::endl; - uint16_t BloackAlign; - if (fread(&BloackAlign, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt BloackAlign"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt BloackAlign: " - << uint16_to_charstr(BloackAlign) << std::endl; - uint16_t BitsPerSample; - if (fread(&BitsPerSample, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt BitsPerSample"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt BitsPerSample:" - << uint16_to_charstr(BitsPerSample) << std::endl; - } - /* in case of extensible audio format write the additional data to the file */ - if (fmt_chunk_size > 16) - { - std::cout << "fmt chunk position: " << dwChunkPosition - fmt_chunk_start << std::endl; - uint16_t cb_size; - if (fread(&cb_size, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt cbSize"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt cbSize: " - << uint32_to_charstr(cb_size) << std::endl; - if (cb_size >= 22) - { - uint16_t ValidBitsPerSample; - if (fread(&ValidBitsPerSample, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt ex ValidBitsPerSample"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt ValidBitsPerS:" - << uint16_to_charstr(ValidBitsPerSample) << std::endl; - uint32_t dwChannelMask; - if (fread(&dwChannelMask, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt ex dwChannelMask"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "fmt dwChannelMask:" - << uint32_to_charstr(dwChannelMask) << std::endl; - uint32_t Data1; - if (fread(&Data1, sizeof(uint32_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt ex Data1"); - dwChunkPosition += sizeof (uint32_t); - std::cout << "fmt Data1: " - << uint32_to_charstr(Data1) << std::endl; - uint16_t Data2; - if (fread(&Data2, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt ex Data2"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt Data2: " - << uint16_to_charstr(Data2) << std::endl; - uint16_t Data3; - if (fread(&Data3, sizeof(uint16_t), 1, hFile) < 1) - throw std::runtime_error("can't read fmt ex Data3"); - dwChunkPosition += sizeof (uint16_t); - std::cout << "fmt Data3: " - << uint16_to_charstr(Data3) << std::endl; - uint8_t Data4[8]; - if (fread(&Data4, sizeof(uint8_t), 8, hFile) < 1) - throw std::runtime_error("can't read fmt ex Data4"); - dwChunkPosition += sizeof (uint8_t)*8; - for (uint8_t i=0; i<8; i++) - { - std::cout << "fmt Data4["<(i)<<"]: " - << uint8_to_charstr(Data4[i]) << std::endl; - } - uint16_t remaining_fmt_data = cb_size - 22; - uint8_t dummy; - std::cout << "fmt remaining data: " << remaining_fmt_data << std::endl; - for (uint16_t i=0; i 22 - std::cout << "fmt chunk position: " << dwChunkPosition - fmt_chunk_start << std::endl; - } - // ignore data until we find sub-chunk data - - if (!feof(hFile)) - print_sub_chunk(hFile, chunkID, dwChunkPosition); - if (!feof(hFile)) - print_sub_chunk(hFile, chunkID, dwChunkPosition); - - return 0; -} - -int main(int argc, char *argv[]) { - - /* process command line arguments. This is just a test program, didn't go too nuts with validation. */ - if (argc < 2) { - printf("Usage: %s filename\n", argv[0]); - printf(" - filename (required): can be either a WAV or xWMA audio file.\n"); - return -1; - } - - if (load_data(argv[1]) != 0) - { - printf("Error loading data\n"); - return -1; - } - - printf("success\n"); - return 0; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio.cpp deleted file mode 100644 index a728727d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "audio.h" - -PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context = NULL; -PFN_AUDIO_CREATE_VOICE audio_create_voice = NULL; -PFN_AUDIO_VOICE_DESTROY audio_voice_destroy = NULL; -PFN_AUDIO_VOICE_SET_VOLUME audio_voice_set_volume = NULL; -PFN_AUDIO_VOICE_SET_FREQUENCY audio_voice_set_frequency = NULL; - -PFN_AUDIO_CREATE_FILTER audio_create_filter = NULL; -PFN_AUDIO_FILTER_UPDATE audio_filter_update = NULL; -PFN_AUDIO_FILTER_APPLY audio_filter_apply = NULL; -PFN_AUDIO_FILTER_APPLY audio_output_filter_apply = NULL; - -extern AudioContext *xaudio_create_context(); -extern AudioContext *faudio_create_context(); - -AudioContext *audio_create_context(AudioEngine p_engine) -{ - switch (p_engine) - { - #ifdef HAVE_XAUDIO2 - case AudioEngine_XAudio2: - return xaudio_create_context(); - #endif - - case AudioEngine_FAudio: - return faudio_create_context(); - - default: - return NULL; - } - -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio.h deleted file mode 100644 index e0b15bf6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef FAUDIOFILTERDEMO_AUDIO_H -#define FAUDIOFILTERDEMO_AUDIO_H - -#include - -#ifdef _MSC_VER -#define HAVE_XAUDIO2 -#endif - -const float PI = 3.14159265358979323846f; - -// types -struct AudioContext; -struct AudioVoice; -struct AudioFilter; - -enum AudioEngine { - AudioEngine_XAudio2, - AudioEngine_FAudio -}; - -typedef void(*PFN_AUDIO_DESTROY_CONTEXT)(AudioContext *p_context); - -typedef AudioVoice *(*PFN_AUDIO_CREATE_VOICE)(AudioContext *p_context, float *p_buffer, size_t p_buffer_size, int p_sample_rate, int p_num_channels); -typedef void (*PFN_AUDIO_VOICE_DESTROY)(AudioVoice *p_voice); -typedef void (*PFN_AUDIO_VOICE_SET_VOLUME)(AudioVoice *p_voice, float p_volume); -typedef void (*PFN_AUDIO_VOICE_SET_FREQUENCY)(AudioVoice *p_vioce, float p_frequency); - -typedef AudioFilter *(*PFN_AUDIO_CREATE_FILTER)(AudioContext *p_context); -typedef void (*PFN_AUDIO_FILTER_UPDATE)(AudioFilter *p_filter, int p_type, float p_cutoff_frequency, float p_q); -typedef void (*PFN_AUDIO_FILTER_APPLY)(AudioFilter *p_filter, AudioVoice *p_voice); - -// API -AudioContext *audio_create_context(AudioEngine p_engine); - -extern PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context; -extern PFN_AUDIO_CREATE_VOICE audio_create_voice; -extern PFN_AUDIO_VOICE_DESTROY audio_voice_destroy; -extern PFN_AUDIO_VOICE_SET_VOLUME audio_voice_set_volume; -extern PFN_AUDIO_VOICE_SET_FREQUENCY audio_voice_set_frequency; - -extern PFN_AUDIO_CREATE_FILTER audio_create_filter; -extern PFN_AUDIO_FILTER_UPDATE audio_filter_update; -extern PFN_AUDIO_FILTER_APPLY audio_filter_apply; -extern PFN_AUDIO_FILTER_APPLY audio_output_filter_apply; - -#endif // FAUDIOFILTERDEMO_AUDIO_H diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_faudio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_faudio.cpp deleted file mode 100644 index f8c4deb7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_faudio.cpp +++ /dev/null @@ -1,165 +0,0 @@ -#include "audio.h" - -#include -#include -#include - -struct AudioContext -{ - FAudio *faudio; - FAudioMasteringVoice *mastering_voice; -}; - -struct AudioVoice -{ - AudioContext *context; - FAudioSourceVoice *voice; -}; - -struct AudioFilter -{ - AudioContext *context; - FAudioFilterParameters params; -}; - -void faudio_destroy_context(AudioContext *p_context) -{ - FAudioVoice_DestroyVoice(p_context->mastering_voice); - FAudio_Release(p_context->faudio); - delete p_context; -} - -AudioVoice *faudio_create_voice(AudioContext *p_context, float *p_buffer, size_t p_buffer_size, int p_sample_rate, int p_num_channels) -{ - // create a source voice - FAudioWaveFormatEx waveFormat; - waveFormat.wFormatTag = 3; - waveFormat.nChannels = p_num_channels; - waveFormat.nSamplesPerSec = p_sample_rate; - waveFormat.nAvgBytesPerSec = p_sample_rate * 4; - waveFormat.nBlockAlign = p_num_channels * 4; - waveFormat.wBitsPerSample = 32; - waveFormat.cbSize = 0; - - FAudioSourceVoice *voice; - FAudioSendDescriptor send; - FAudioVoiceSends sends; - sends.SendCount = 1; - sends.pSends = &send; - send.Flags = FAUDIO_SEND_USEFILTER; - send.pOutputVoice = p_context->mastering_voice; - uint32_t hr = FAudio_CreateSourceVoice(p_context->faudio, &voice, &waveFormat, FAUDIO_VOICE_USEFILTER, FAUDIO_DEFAULT_FREQ_RATIO, NULL, &sends, NULL); - - if (hr != 0) { - return NULL; - } - - FAudioVoice_SetVolume(voice, 0.0f, FAUDIO_COMMIT_NOW); - - // submit the array - FAudioBuffer buffer = { 0 }; - buffer.AudioBytes = 4 * p_buffer_size * p_num_channels; - buffer.pAudioData = (uint8_t *)p_buffer; - buffer.Flags = FAUDIO_END_OF_STREAM; - buffer.PlayBegin = 0; - buffer.PlayLength = p_buffer_size; - buffer.LoopBegin = 0; - buffer.LoopLength = p_buffer_size; - buffer.LoopCount = FAUDIO_LOOP_INFINITE; - - FAudioSourceVoice_SubmitSourceBuffer(voice, &buffer, NULL); - - // start the voice playing - FAudioSourceVoice_Start(voice, 0, FAUDIO_COMMIT_NOW); - - // return a voice struct - AudioVoice *result = new AudioVoice(); - result->context = p_context; - result->voice = voice; - return result; -} - -void faudio_voice_destroy(AudioVoice *p_voice) -{ - FAudioVoice_DestroyVoice(p_voice->voice); -} - -void faudio_voice_set_volume(AudioVoice *p_voice, float p_volume) -{ - FAudioVoice_SetVolume(p_voice->voice, p_volume, FAUDIO_COMMIT_NOW); -} - -void faudio_voice_set_frequency(AudioVoice *p_voice, float p_frequency) -{ - FAudioSourceVoice_SetFrequencyRatio(p_voice->voice, p_frequency, FAUDIO_COMMIT_NOW); -} - -AudioFilter *faudio_create_filter(AudioContext *p_context) -{ - AudioFilter *filter = new AudioFilter(); - filter->context = p_context; - return filter; -} - -void faudio_filter_update(AudioFilter *p_filter, int p_type, float p_cutoff_frequency, float p_q) -{ - if (p_type != -1) - { - p_filter->params.Type = FAudioFilterType(p_type); - p_filter->params.Frequency = (float) (2 * sin(PI * p_cutoff_frequency / 44100)); - p_filter->params.OneOverQ = (float)(1.0 / p_q); - } - else - { - // documentation of XAUDIO2_FILTER_PARAMETERS: - // Setting XAUDIO2_FILTER_PARAMETERS with the following values is acoustically equivalent to the filter being fully bypassed. - p_filter->params.Type = FAudioLowPassFilter; - p_filter->params.Frequency = 1.0f; - p_filter->params.OneOverQ = 1.0f; - } -} - -void faudio_filter_apply(AudioFilter *p_filter, AudioVoice *p_voice) -{ - FAudioVoice_SetFilterParameters(p_voice->voice, &p_filter->params, FAUDIO_COMMIT_NOW); -} - -void faudio_output_filter_apply(AudioFilter *p_filter, AudioVoice *p_voice) -{ - FAudioVoice_SetOutputFilterParameters(p_voice->voice, p_voice->context->mastering_voice, &p_filter->params, FAUDIO_COMMIT_NOW); -} - -AudioContext *faudio_create_context() -{ - // setup function pointers - audio_destroy_context = faudio_destroy_context; - audio_create_voice = faudio_create_voice; - audio_voice_destroy = faudio_voice_destroy; - audio_voice_set_volume = faudio_voice_set_volume; - audio_voice_set_frequency = faudio_voice_set_frequency; - audio_create_filter = faudio_create_filter; - audio_filter_update = faudio_filter_update; - audio_filter_apply = faudio_filter_apply; - audio_output_filter_apply = faudio_output_filter_apply; - - // create Faudio object - FAudio *faudio; - - uint32_t hr = FAudioCreate(&faudio, 0, FAUDIO_DEFAULT_PROCESSOR); - if (hr != 0) - return NULL; - - // create a mastering voice - FAudioMasteringVoice *mastering_voice; - - hr = FAudio_CreateMasteringVoice(faudio, &mastering_voice, FAUDIO_DEFAULT_CHANNELS, FAUDIO_DEFAULT_SAMPLERATE, 0, 0, NULL); - if (hr != 0) - return NULL; - - // return a context object - AudioContext *context = new AudioContext(); - context->faudio = faudio; - context->mastering_voice = mastering_voice; - - return context; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_player.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_player.h deleted file mode 100644 index 987484dc..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_player.h +++ /dev/null @@ -1,86 +0,0 @@ -#ifndef FAUDIOFILTERDEMO_AUDIO_PLAYER_H -#define FAUDIOFILTERDEMO_AUDIO_PLAYER_H - -#include "oscillator.h" -#include "audio.h" -#include - -class AudioPlayer -{ - public : - enum OscillatorType { - SineWave = 0, - SquareWave, - SawTooth, - Oscillator_Count - }; - - AudioPlayer() - { - SDL_zero(m_oscillators); - setup(AudioEngine_FAudio, 1); - } - - void setup(AudioEngine p_engine, int p_channels) - { - oscillator_sine_wave(&m_oscillators[SineWave], p_channels); - oscillator_square_wave(&m_oscillators[SquareWave], p_channels); - oscillator_saw_tooth(&m_oscillators[SawTooth], p_channels); - - m_context = audio_create_context(p_engine); - for (int idx = 0; idx < Oscillator_Count; ++idx) - { - m_voices[idx] = audio_create_voice(m_context, m_oscillators[idx].buffer, Oscillator::CHANNEL_BUFFER_LENGTH, Oscillator::SAMPLE_RATE, p_channels); - } - m_filter = audio_create_filter(m_context); - m_output_filter = audio_create_filter(m_context); - } - - void shutdown() - { - if (m_context == NULL) - return; - - for (int idx = 0; idx < Oscillator_Count; ++idx) - { - audio_voice_destroy(m_voices[idx]); - m_voices[idx] = NULL; - } - - audio_destroy_context(m_context); - m_context = NULL; - } - - void oscillator_change(OscillatorType p_type, float p_frequency, float p_volume) - { - audio_voice_set_frequency(m_voices[p_type], p_frequency / Oscillator::BASE_FREQ); - audio_voice_set_volume(m_voices[p_type], p_volume); - } - - void filter_change(int p_type, float p_cutoff_frequency, float p_q) - { - audio_filter_update(m_filter, p_type, p_cutoff_frequency, p_q); - for (int idx = 0; idx < Oscillator_Count; ++idx) - { - audio_filter_apply(m_filter, m_voices[idx]); - } - } - - void output_filter_change(int p_type, float p_cutoff_frequency, float p_q) - { - audio_filter_update(m_output_filter, p_type, p_cutoff_frequency, p_q); - for (int idx = 0; idx < Oscillator_Count; ++idx) - { - audio_output_filter_apply(m_output_filter, m_voices[idx]); - } - } - - private : - Oscillator m_oscillators[Oscillator_Count]; - AudioContext * m_context; - AudioVoice * m_voices[Oscillator_Count]; - AudioFilter * m_filter; - AudioFilter * m_output_filter; -}; - -#endif // FAUDIOFILTERDEMO_AUDIO_PLAYER_H diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_xaudio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_xaudio.cpp deleted file mode 100644 index ef2b4d56..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/audio_xaudio.cpp +++ /dev/null @@ -1,172 +0,0 @@ -#include "audio.h" - -#ifdef HAVE_XAUDIO2 - -#include -#include - -struct AudioContext -{ - IXAudio2 *xaudio2; - IXAudio2MasteringVoice *mastering_voice; -}; - -struct AudioVoice -{ - AudioContext *context; - IXAudio2SourceVoice *voice; -}; - -struct AudioFilter -{ - AudioContext *context; - XAUDIO2_FILTER_PARAMETERS params; -}; - -void xaudio_destroy_context(AudioContext *p_context) -{ - p_context->mastering_voice->DestroyVoice(); - p_context->xaudio2->Release(); - delete p_context; -} - -AudioVoice *xaudio_create_voice(AudioContext *p_context, float *p_buffer, size_t p_buffer_size, int p_sample_rate, int p_num_channels) -{ - // create a source voice - WAVEFORMATEX waveFormat; - waveFormat.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - waveFormat.nChannels = p_num_channels; - waveFormat.nSamplesPerSec = p_sample_rate; - waveFormat.nBlockAlign = p_num_channels * 4; - waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign; - waveFormat.wBitsPerSample = 32; - waveFormat.cbSize = 0; - - IXAudio2SourceVoice *voice; - XAUDIO2_SEND_DESCRIPTOR send; - XAUDIO2_VOICE_SENDS sends; - sends.SendCount = 1; - sends.pSends = &send; - send.Flags = XAUDIO2_SEND_USEFILTER; - send.pOutputVoice = p_context->mastering_voice; - HRESULT hr = p_context->xaudio2->CreateSourceVoice(&voice, &waveFormat, XAUDIO2_VOICE_USEFILTER, XAUDIO2_DEFAULT_FREQ_RATIO, NULL, &sends); - - if (FAILED(hr)) { - return NULL; - } - - voice->SetVolume(0.0f); - - // submit the array - XAUDIO2_BUFFER buffer = { 0 }; - buffer.AudioBytes = 4 * p_buffer_size * p_num_channels; - buffer.pAudioData = (byte *)p_buffer; - buffer.Flags = XAUDIO2_END_OF_STREAM; - buffer.PlayBegin = 0; - buffer.PlayLength = 0; - buffer.LoopBegin = 0; - buffer.LoopLength = 0; - buffer.LoopCount = XAUDIO2_LOOP_INFINITE; - - hr = voice->SubmitSourceBuffer(&buffer); - - if (FAILED(hr)) { - return NULL; - } - - // start the voice playing - voice->Start(); - - // return a voice struct - AudioVoice *result = new AudioVoice(); - result->context = p_context; - result->voice = voice; - return result; -} - -void xaudio_voice_destroy(AudioVoice *p_voice) -{ - -} - -void xaudio_voice_set_volume(AudioVoice *p_voice, float p_volume) -{ - p_voice->voice->SetVolume(p_volume); -} - -void xaudio_voice_set_frequency(AudioVoice *p_voice, float p_frequency) -{ - p_voice->voice->SetFrequencyRatio(p_frequency); -} - -AudioFilter *xaudio_create_filter(AudioContext *p_context) -{ - AudioFilter *filter = new AudioFilter(); - filter->context = p_context; - return filter; -} - -void xaudio_filter_update(AudioFilter *p_filter, int p_type, float p_cutoff_frequency, float p_q) -{ - if (p_type != -1) - { - p_filter->params.Type = XAUDIO2_FILTER_TYPE(p_type); - p_filter->params.Frequency = (float) (2 * sin(PI * p_cutoff_frequency / 44100)); - p_filter->params.OneOverQ = (float)(1.0 / p_q); - } - else - { - // documentation of XAUDIO2_FILTER_PARAMETERS: - // Setting XAUDIO2_FILTER_PARAMETERS with the following values is acoustically equivalent to the filter being fully bypassed. - p_filter->params.Type = LowPassFilter; - p_filter->params.Frequency = 1.0f; - p_filter->params.OneOverQ = 1.0f; - } -} - -void xaudio_filter_apply(AudioFilter *p_filter, AudioVoice *p_voice) -{ - p_voice->voice->SetFilterParameters(&p_filter->params, XAUDIO2_COMMIT_ALL); -} - -void xaudio_output_filter_apply(AudioFilter *p_filter, AudioVoice *p_voice) -{ - p_voice->voice->SetOutputFilterParameters(p_voice->context->mastering_voice, &p_filter->params, XAUDIO2_COMMIT_ALL); -} - -AudioContext *xaudio_create_context() -{ - // setup function pointers - audio_destroy_context = xaudio_destroy_context; - audio_create_voice = xaudio_create_voice; - audio_voice_destroy = xaudio_voice_destroy; - audio_voice_set_volume = xaudio_voice_set_volume; - audio_voice_set_frequency = xaudio_voice_set_frequency; - audio_create_filter = xaudio_create_filter; - audio_filter_update = xaudio_filter_update; - audio_filter_apply = xaudio_filter_apply; - audio_output_filter_apply = xaudio_output_filter_apply; - - // create XAudio object - IXAudio2 *xaudio2; - - HRESULT hr = XAudio2Create(&xaudio2); - if (FAILED(hr)) - return NULL; - - // create a mastering voice - IXAudio2MasteringVoice *mastering_voice; - - hr = xaudio2->CreateMasteringVoice(&mastering_voice); - if (FAILED(hr)) - return NULL; - - // return a context object - AudioContext *context = new AudioContext(); - context->xaudio2 = xaudio2; - context->mastering_voice = mastering_voice; - - return context; -} - -#endif // HAVE_XAUDIO2 diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/oscillator.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/oscillator.cpp deleted file mode 100644 index 5e586877..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/oscillator.cpp +++ /dev/null @@ -1,61 +0,0 @@ -#include "oscillator.h" -#include - -#define _USE_MATH_DEFINES -#include - -void oscillator_sine_wave(Oscillator *p_oscillator, int p_num_channels) -{ - if (p_oscillator->buffer != NULL) - delete[] p_oscillator->buffer; - - p_oscillator->buffer = new float[Oscillator::CHANNEL_BUFFER_LENGTH * p_num_channels]; - - for (int sample = 0; sample < Oscillator::CHANNEL_BUFFER_LENGTH; ++sample) - { - float value = (float) sin(2 * M_PI * sample / Oscillator::CHANNEL_BUFFER_LENGTH); - - for (int channel = 0; channel < p_num_channels; ++channel) - { - p_oscillator->buffer[sample * p_num_channels + channel] = value; - } - } -} - -void oscillator_square_wave(Oscillator *p_oscillator, int p_num_channels) -{ - if (p_oscillator->buffer != NULL) - delete[] p_oscillator->buffer; - - p_oscillator->buffer = new float[Oscillator::CHANNEL_BUFFER_LENGTH * p_num_channels]; - - for (int sample = 0; sample < Oscillator::CHANNEL_BUFFER_LENGTH / 2; ++sample) - for (int channel = 0; channel < p_num_channels; ++channel) - { - p_oscillator->buffer[sample * p_num_channels + channel] = 1.0f; - } - - for (int sample = Oscillator::CHANNEL_BUFFER_LENGTH / 2; sample < Oscillator::CHANNEL_BUFFER_LENGTH; ++sample) - for (int channel = 0; channel < p_num_channels; ++channel) - { - p_oscillator->buffer[sample * p_num_channels + channel] = -1.0f; - } -} - -void oscillator_saw_tooth(Oscillator *p_oscillator, int p_num_channels) -{ - if (p_oscillator->buffer != NULL) - delete[] p_oscillator->buffer; - - p_oscillator->buffer = new float[Oscillator::CHANNEL_BUFFER_LENGTH * p_num_channels]; - - for (int sample = 0; sample < Oscillator::CHANNEL_BUFFER_LENGTH; ++sample) - { - float value = (2.0f * sample / Oscillator::CHANNEL_BUFFER_LENGTH) - 1.0f; - - for (int channel = 0; channel < p_num_channels; ++channel) - { - p_oscillator->buffer[sample * p_num_channels + channel] = value; - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/oscillator.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/oscillator.h deleted file mode 100644 index 41ee6594..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/oscillator.h +++ /dev/null @@ -1,17 +0,0 @@ -#ifndef FACTFILTERDEMO_OSCILLATOR_H -#define FACTFILTERDEMO_OSCILLATOR_H - -struct Oscillator -{ - static const int BASE_FREQ = 20; - static const int SAMPLE_RATE = 48000; - static const int CHANNEL_BUFFER_LENGTH = SAMPLE_RATE / BASE_FREQ; - - float *buffer; -}; - -void oscillator_sine_wave(Oscillator *p_oscillator, int p_num_channels); -void oscillator_square_wave(Oscillator *p_oscillator, int p_num_channels); -void oscillator_saw_tooth(Oscillator *p_oscillator, int p_num_channels); - -#endif // FACTFILTERDEMO_OSCILLATOR_H \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/testfilter.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/testfilter.cpp deleted file mode 100644 index f918e477..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testfilter/testfilter.cpp +++ /dev/null @@ -1,168 +0,0 @@ -#include "../uicommon/imgui.h" - -#include "audio_player.h" -#include - -const char* TOOL_NAME = "Filter Test Tool"; -int TOOL_WIDTH = 640; -int TOOL_HEIGHT = 580; - -static const int NOTE_MIN = 24; -static const int NOTE_MAX = 96; - -float note_to_frequency(int p_note) -{ - return (float)(440.0f * pow(2.0, (p_note - 69.0) / 12.0)); -} - -int next_window_dims(int y_pos, int height) -{ - ImGui::SetNextWindowPos(ImVec2(0, static_cast(y_pos))); - ImGui::SetNextWindowSize(ImVec2(640, static_cast(height))); - - return y_pos + height; -} - -void FAudioTool_Init() -{ - /* Nothing to do... */ -} - -void FAudioTool_Quit() -{ - /* Nothing to do... */ -} - -void FAudioTool_Update() -{ - bool update_engine = false; - bool update_sine = false; - bool update_square = false; - bool update_saw = false; - bool update_filter = false; - bool update_output_filter = false; - - // gui - int window_y = next_window_dims(0, 80); - ImGui::Begin("Output Audio Engine"); - - static int audio_engine = (int)AudioEngine_FAudio; - update_engine |= ImGui::RadioButton("FAudio", &audio_engine, (int)AudioEngine_FAudio); - #ifdef HAVE_XAUDIO2 - ImGui::SameLine(); - update_engine |= ImGui::RadioButton("XAudio2", &audio_engine, (int)AudioEngine_XAudio2); - #endif - - static int num_channels = 1; - update_engine |= ImGui::RadioButton("1 Channel", &num_channels, 1); ImGui::SameLine(); - update_engine |= ImGui::RadioButton("2 Channels", &num_channels, 2); - - ImGui::End(); - - window_y = next_window_dims(window_y, 80); - ImGui::Begin("Sine Wave Generator"); - - static int sine_note = 60; - update_sine |= ImGui::SliderInt("Frequency", &sine_note, NOTE_MIN, NOTE_MAX); ImGui::SameLine(); - ImGui::Text(" (%.2f Hz)", note_to_frequency(sine_note)); - - static float sine_volume = 0.0f; - update_sine |= ImGui::SliderFloat("Volume", &sine_volume, 0.0f, 1.0f); - - ImGui::End(); - - window_y = next_window_dims(window_y, 80); - ImGui::Begin("Square Wave Generator"); - - static int square_note = 60; - update_square |= ImGui::SliderInt("Frequency", &square_note, NOTE_MIN, NOTE_MAX); ImGui::SameLine(); - ImGui::Text(" (%.2f Hz)", note_to_frequency(square_note)); - - static float square_volume = 0.0f; - update_square |= ImGui::SliderFloat("Volume", &square_volume, 0.0f, 1.0f); - - ImGui::End(); - - window_y = next_window_dims(window_y, 80); - ImGui::Begin("Saw Tooth Generator"); - - static int saw_note = 60; - update_saw |= ImGui::SliderInt("Frequency", &saw_note, NOTE_MIN, NOTE_MAX); ImGui::SameLine(); - ImGui::Text(" (%.2f Hz)", note_to_frequency(saw_note)); - - static float saw_volume = 0.0f; - update_saw |= ImGui::SliderFloat("Volume", &saw_volume, 0.0f, 1.0f); - - ImGui::End(); - - window_y = next_window_dims(window_y, 100); - ImGui::Begin("Filter"); - - static int filter_type = -1; - static int filter_cutoff_note = 60; - static float filter_q = 0.7f; - - update_filter |= ImGui::RadioButton("None", &filter_type, -1); ImGui::SameLine(); - update_filter |= ImGui::RadioButton("Low-Pass", &filter_type, 0); ImGui::SameLine(); - update_filter |= ImGui::RadioButton("Band-Pass", &filter_type, 1); ImGui::SameLine(); - update_filter |= ImGui::RadioButton("High-Pass", &filter_type, 2); ImGui::SameLine(); - update_filter |= ImGui::RadioButton("Notch", &filter_type, 3); - - update_filter |= ImGui::SliderInt("Cutoff Frequency", &filter_cutoff_note, 12, 108); ImGui::SameLine(); - ImGui::Text(" (%.2f Hz)", note_to_frequency(filter_cutoff_note)); - update_filter |= ImGui::SliderFloat("Q", &filter_q, 0.7f, 100.0f, "%.1f"); - - ImGui::End(); - - window_y = next_window_dims(window_y, 100); - ImGui::Begin("Output Filter"); - - static int output_filter_type = -1; - static int output_filter_cutoff_note = 60; - static float output_filter_q = 0.7f; - - update_output_filter |= ImGui::RadioButton("None", &output_filter_type, -1); ImGui::SameLine(); - update_output_filter |= ImGui::RadioButton("Low-Pass", &output_filter_type, 0); ImGui::SameLine(); - update_output_filter |= ImGui::RadioButton("Band-Pass", &output_filter_type, 1); ImGui::SameLine(); - update_output_filter |= ImGui::RadioButton("High-Pass", &output_filter_type, 2); ImGui::SameLine(); - update_output_filter |= ImGui::RadioButton("Notch", &output_filter_type, 3); - - update_output_filter |= ImGui::SliderInt("Cutoff Frequency", &output_filter_cutoff_note, 12, 108); ImGui::SameLine(); - ImGui::Text(" (%.2f Hz)", note_to_frequency(output_filter_cutoff_note)); - update_output_filter |= ImGui::SliderFloat("Q", &output_filter_q, 0.7f, 100.0f, "%.1f"); - - ImGui::End(); - - // audio control - static AudioPlayer player; - - if (update_engine) - { - player.shutdown(); - player.setup((AudioEngine)audio_engine, num_channels); - } - - if (update_sine | update_engine) - { - player.oscillator_change(AudioPlayer::SineWave, note_to_frequency(sine_note), sine_volume); - } - - if (update_square | update_engine) - { - player.oscillator_change(AudioPlayer::SquareWave, note_to_frequency(square_note), square_volume); - } - - if (update_saw | update_engine) - { - player.oscillator_change(AudioPlayer::SawTooth, note_to_frequency(saw_note), saw_volume); - } - - if (update_filter | update_engine) - { - player.filter_change(filter_type, note_to_frequency(filter_cutoff_note), filter_q); - } - if (update_output_filter | update_engine) - { - player.output_filter_change(output_filter_type, note_to_frequency(output_filter_cutoff_note), output_filter_q); - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testparse/testparse.c b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testparse/testparse.c deleted file mode 100644 index ea5ae9af..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testparse/testparse.c +++ /dev/null @@ -1,578 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include /* DO NOT INCLUDE THIS IN REAL CODE! */ -#include - -static void print_soundbank(FACTAudioEngine *engine, uint8_t *buf, size_t len) -{ - FACTSoundBank *sb; - uint32_t i, j, k, l; - FACTAudioEngine_CreateSoundBank( - engine, - buf, - len, - 0, - 0, - &sb - ); - printf("SoundBank \"%s\"\n", sb->name); - printf("\tWaveBank Dependencies:\n"); - for (i = 0; i < sb->wavebankCount; i += 1) - { - printf("\t\tWaveBank %d, \"%s\"\n", i, sb->wavebankNames[i]); - } - for (i = 0; i < sb->cueCount; i += 1) - { - printf( - "\tCue %d, \"%s\"\n" - "\t\tFlags: %X\n" - "\t\tSound/Variation Code: %d\n" - "\t\tTransition Offset: %d\n" - "\t\tInstance Limit: %d\n" - "\t\tFade-in (ms): %d\n" - "\t\tFade-out (ms): %d\n" - "\t\tMax Instance Behavior: %d\n", - i, - (sb->cueNames != NULL) ? sb->cueNames[i] : "NONAME", - sb->cues[i].flags, - sb->cues[i].sbCode, - sb->cues[i].transitionOffset, - sb->cues[i].instanceLimit, - sb->cues[i].fadeInMS, - sb->cues[i].fadeOutMS, - sb->cues[i].maxInstanceBehavior - ); - } - for (i = 0; i < sb->soundCount; i += 1) - { - printf( - "\tSound %d, Code %d:\n" - "\t\tFlags: %X\n" - "\t\tCategory Index: %d\n" - "\t\tVolume: %f\n" - "\t\tPitch: %d\n" - "\t\tPriority: %d\n", - i, - sb->soundCodes[i], - sb->sounds[i].flags, - sb->sounds[i].category, - sb->sounds[i].volume, - sb->sounds[i].pitch, - sb->sounds[i].priority - ); - printf("\t\tRPC Codes:"); - for (j = 0; j < sb->sounds[i].rpcCodeCount; j += 1) - { - printf(" %d", sb->sounds[i].rpcCodes[j]); - } - printf("\n"); - printf("\t\tDSP Preset Codes:"); - for (j = 0; j < sb->sounds[i].dspCodeCount; j += 1) - { - printf(" %d", sb->sounds[i].dspCodes[j]); - } - printf("\n"); - printf("\t\tTrack Count: %d\n", sb->sounds[i].trackCount); - for (j = 0; j < sb->sounds[i].trackCount; j += 1) - { - printf( - "\t\t\tTrack %d:\n" - "\t\t\t\tVolume: %f\n" - "\t\t\t\tFilter Type: %d\n" - "\t\t\t\tFilter Q-Factor: %d\n" - "\t\t\t\tFilter Frequency: %d\n", - sb->sounds[i].tracks[j].code, - sb->sounds[i].tracks[j].volume, - sb->sounds[i].tracks[j].filter, - sb->sounds[i].tracks[j].qfactor, - sb->sounds[i].tracks[j].frequency - ); - printf("\t\t\t\tRPC Codes:"); - for (k = 0; k < sb->sounds[i].tracks[j].rpcCodeCount; k += 1) - { - printf( - " %d", - sb->sounds[i].tracks[j].rpcCodes[k] - ); - } - printf("\n"); - printf( - "\t\t\t\tEvent Count: %d\n", - sb->sounds[i].tracks[j].eventCount - ); - for (k = 0; k < sb->sounds[i].tracks[j].eventCount; k += 1) - { - const FACTEvent *evt = &sb->sounds[i].tracks[j].events[k]; - printf( - "\t\t\t\t\tEvent %d:\n" - "\t\t\t\t\t\tType: %d\n" - "\t\t\t\t\t\tTimestamp: %d\n" - "\t\t\t\t\t\tRandom Offset: %d\n", - k, - evt->type, - evt->timestamp, - evt->randomOffset - ); - if (evt->type == FACTEVENT_STOP) - { - printf( - "\t\t\t\t\t\tFlags: %X\n", - evt->stop.flags - ); - } - else if ( evt->type == FACTEVENT_PLAYWAVE || - evt->type == FACTEVENT_PLAYWAVETRACKVARIATION || - evt->type == FACTEVENT_PLAYWAVEEFFECTVARIATION || - evt->type == FACTEVENT_PLAYWAVETRACKEFFECTVARIATION ) - { - printf( - "\t\t\t\t\t\tPlay Flags: %X\n" - "\t\t\t\t\t\tPosition: %d\n" - "\t\t\t\t\t\tAngle: %d\n" - "\t\t\t\t\t\tLoop Count: %d\n", - evt->wave.flags, - evt->wave.position, - evt->wave.angle, - evt->wave.loopCount - ); - if (evt->wave.isComplex) - { - printf( - "\t\t\t\t\t\tTrack Variation Type: %d\n" - "\t\t\t\t\t\tTrack Count: %d\n", - evt->wave.complex.variation, - evt->wave.complex.trackCount - ); - for (l = 0; l < evt->wave.complex.trackCount; l += 1) - { - printf( - "\t\t\t\t\t\t\tTrack %d:\n" - "\t\t\t\t\t\t\t\tTrack Index: %d\n" - "\t\t\t\t\t\t\t\tWaveBank Index: %d\n" - "\t\t\t\t\t\t\t\tWeight: %d\n", - l, - evt->wave.complex.tracks[l], - evt->wave.complex.wavebanks[l], - evt->wave.complex.weights[l] - ); - } - } - else - { - printf( - "\t\t\t\t\t\tTrack Index: %d\n" - "\t\t\t\t\t\tWaveBank Index: %d\n", - evt->wave.simple.track, - evt->wave.simple.wavebank - ); - } - - if ( evt->wave.variationFlags != 0 && - evt->wave.variationFlags != 0xFFFF ) - { - printf( - "\t\t\t\t\t\tEffect Variation Flags: %X\n", - evt->wave.variationFlags - ); - if (evt->wave.variationFlags & 0x1000) - { - printf( - "\t\t\t\t\t\tMin Pitch: %d\n" - "\t\t\t\t\t\tMax Pitch: %d\n", - evt->wave.minPitch, - evt->wave.maxPitch - ); - } - if (evt->wave.variationFlags & 0x2000) - { - printf( - "\t\t\t\t\t\tMin Volume: %f\n" - "\t\t\t\t\t\tMax Volume: %f\n", - evt->wave.minVolume, - evt->wave.maxVolume - ); - } - /* FIXME: Frequency/QFactor flags??? - if (evt->wave.variationFlags & 0x4000) - { - printf( - "\t\t\t\t\t\tMin Frequency: %f\n" - "\t\t\t\t\t\tMax Frequency: %f\n", - evt->wave.minFrequency, - evt->wave.maxFrequency - ); - } - if (evt->wave.variationFlags & 0x8000) - { - printf( - "\t\t\t\t\t\tMin Q-Factor: %f\n" - "\t\t\t\t\t\tMax Q-Factor: %f\n", - evt->wave.minQFactor, - evt->wave.maxQFactor - ); - } - */ - } - } - else if ( evt->type == FACTEVENT_PITCH || - evt->type == FACTEVENT_VOLUME || - evt->type == FACTEVENT_PITCHREPEATING || - evt->type == FACTEVENT_VOLUMEREPEATING ) - { - if (evt->value.settings == 0) - { - printf( - "\t\t\t\t\t\tEquation Flags: %X\n" - "\t\t\t\t\t\tValue 1: %f\n" - "\t\t\t\t\t\tValue 2: %f\n", - evt->value.equation.flags, - evt->value.equation.value1, - evt->value.equation.value2 - ); - } - else - { - printf( - "\t\t\t\t\t\tInitial Value: %f\n" - "\t\t\t\t\t\tInitial Slope: %f\n" - "\t\t\t\t\t\tSlope Delta: %f\n" - "\t\t\t\t\t\tDuration: %d\n", - evt->value.ramp.initialValue, - evt->value.ramp.initialSlope, - evt->value.ramp.slopeDelta, - evt->value.ramp.duration - ); - } - printf( - "\t\t\t\t\t\tRepeats: %d\n" - "\t\t\t\t\t\tFrequency: %d\n", - evt->value.repeats, - evt->value.frequency - ); - } - else if ( evt->type == FACTEVENT_MARKER || - evt->type == FACTEVENT_MARKERREPEATING ) - { - printf( - "\t\t\t\t\t\tMarker: %d\n" - "\t\t\t\t\t\tRepeats: %d\n" - "\t\t\t\t\t\tFrequency: %d\n", - evt->marker.marker, - evt->marker.repeats, - evt->marker.frequency - ); - } - else - { - FAudio_assert(0 && "Unknown event type!"); - } - } - } - } - for (i = 0; i < sb->variationCount; i += 1) - { - printf( - "\tVariation %d, Code %d:\n" - "\t\tFlags: %X\n" - "\t\tInteractive Variable Index: %d\n" - "\t\tEntry Count: %d\n", - i, - sb->variationCodes[i], - sb->variations[i].flags, - sb->variations[i].variable, - sb->variations[i].entryCount - ); - for (j = 0; j < sb->variations[i].entryCount; j += 1) - { - if (sb->variations[i].isComplex) - { - printf( - "\t\t\tVariation %d, Complex:\n" - "\t\t\t\tSound Code: %d\n", - j, - sb->variations[i].entries[j].soundCode - ); - } - else - { - printf( - "\t\t\tVariation %d, Simple:\n" - "\t\t\t\tTrack Index: %d\n" - "\t\t\t\tWaveBank Index: %d\n", - j, - sb->variations[i].entries[j].simple.track, - sb->variations[i].entries[j].simple.wavebank - ); - } - printf( - "\t\t\t\tMin Weight: %f\n" - "\t\t\t\tMax Weight: %f\n", - sb->variations[i].entries[j].minWeight, - sb->variations[i].entries[j].maxWeight - ); - } - } - for (i = 0; i < sb->transitionCount; i += 1) - { - printf( - "\tTransition %d, Code %d:\n" - "\t\tEntry Count: %d\n", - i, - sb->transitionCodes[i], - sb->transitions[i].entryCount - ); - for (j = 0; j < sb->transitions[i].entryCount; j += 1) - { - printf( - "\t\t\tTransition %d:\n" - "\t\t\t\tSound Code: %d\n" - "\t\t\t\tSrc Marker Min: %d\n" - "\t\t\t\tSrc Marker Max: %d\n" - "\t\t\t\tDst Marker Min: %d\n" - "\t\t\t\tDst Marker Max: %d\n" - "\t\t\t\tFade In: %d\n" - "\t\t\t\tFade Out: %d\n" - "\t\t\t\tFlags: %d\n", - j, - sb->transitions[i].entries[j].soundCode, - sb->transitions[i].entries[j].srcMarkerMin, - sb->transitions[i].entries[j].srcMarkerMax, - sb->transitions[i].entries[j].dstMarkerMin, - sb->transitions[i].entries[j].dstMarkerMax, - sb->transitions[i].entries[j].fadeIn, - sb->transitions[i].entries[j].fadeOut, - sb->transitions[i].entries[j].flags - ); - } - } - FACTSoundBank_Destroy(sb); -} - -static void print_wavebank(FACTAudioEngine *engine, uint8_t *buf, size_t len) -{ - FACTWaveBank *wb; - uint32_t i, j; - FACTAudioEngine_CreateInMemoryWaveBank( - engine, - buf, - len, - 0, - 0, - &wb - ); - printf("WaveBank \"%s\"\n", wb->name); - for (i = 0; i < wb->entryCount; i += 1) - { - printf( - "\tEntry %d\n" - "\t\tFlags: %d\n" - "\t\tDuration: %d\n" - "\t\tFormat:\n" - "\t\t\tTag: %d\n" - "\t\t\tChannels: %d\n" - "\t\t\tSample Rate: %d\n" - "\t\t\tBlock Align: %d\n" - "\t\t\tBit Depth: %d\n" - "\t\tPlay Region:\n" - "\t\t\tOffset: %d\n" - "\t\t\tLength: %d\n" - "\t\tLoop Region:\n" - "\t\t\tStart Sample: %d\n" - "\t\t\tTotal Samples: %d\n", - i, - wb->entries[i].dwFlags, - wb->entries[i].Duration, - wb->entries[i].Format.wFormatTag, - wb->entries[i].Format.nChannels, - wb->entries[i].Format.nSamplesPerSec, - wb->entries[i].Format.wBlockAlign, - wb->entries[i].Format.wBitsPerSample, - wb->entries[i].PlayRegion.dwOffset, - wb->entries[i].PlayRegion.dwLength, - wb->entries[i].LoopRegion.dwStartSample, - wb->entries[i].LoopRegion.dwTotalSamples - ); - if (wb->seekTables != NULL && wb->seekTables[i].entryCount > 0) - { - printf( - "\t\tSeek Table Entry Count: %d\n", - wb->seekTables[i].entryCount - ); - for (j = 0; j < wb->seekTables[i].entryCount; j += 1) - { - printf("\t\t\t%d\n", wb->seekTables[i].entries[j]); - } - } - } - FACTWaveBank_Destroy(wb); -} - -int main(int argc, char **argv) -{ - FACTAudioEngine *engine; - FACTRuntimeParameters params; - uint8_t *buf; - size_t len; - uint32_t i, j; - - /* We need an AudioEngine, SoundBank and WaveBank! */ - if (argc < 2) - { - return 0; - } - - /* Parse the AudioEngine */ - buf = (uint8_t*) SDL_LoadFile(argv[1], &len); - SDL_memset(¶ms, '\0', sizeof(params)); - params.pGlobalSettingsBuffer = buf; - params.globalSettingsBufferSize = len; - FACTCreateEngine(0, &engine); - FACTAudioEngine_Initialize(engine, ¶ms); - SDL_free(buf); - - /* Print AudioEngine information */ - printf("AudioEngine:\n"); - for (i = 0; i < engine->categoryCount; i += 1) - { - printf( - "\tCategory %d, \"%s\":\n" - "\t\tMax Instances: %d\n" - "\t\tFade-in (ms): %d\n" - "\t\tFade-out (ms): %d\n" - "\t\tInstance Behavior: %X\n" - "\t\tParent Category Index: %d\n" - "\t\tBase Volume: %f\n" - "\t\tVisibility: %X\n", - i, - engine->categoryNames[i], - engine->categories[i].instanceLimit, - engine->categories[i].fadeInMS, - engine->categories[i].fadeOutMS, - engine->categories[i].maxInstanceBehavior, - engine->categories[i].parentCategory, - engine->categories[i].volume, - engine->categories[i].visibility - ); - } - for (i = 0; i < engine->variableCount; i += 1) - { - printf( - "\tVariable %d, \"%s\":\n" - "\t\tAccessibility: %X\n" - "\t\tInitial Value: %f\n" - "\t\tMin Value: %f\n" - "\t\tMax Value: %f\n", - i, - engine->variableNames[i], - engine->variables[i].accessibility, - engine->variables[i].initialValue, - engine->variables[i].minValue, - engine->variables[i].maxValue - ); - } - for (i = 0; i < engine->rpcCount; i += 1) - { - printf( - "\tRPC %d, Code %d:\n" - "\t\tVariable Index: %d\n" - "\t\tParameter: %d\n" - "\t\tPoint Count: %d\n", - i, - engine->rpcCodes[i], - engine->rpcs[i].variable, - engine->rpcs[i].parameter, - engine->rpcs[i].pointCount - ); - for (j = 0; j < engine->rpcs[i].pointCount; j += 1) - { - printf( - "\t\t\tPoint %d:\n" - "\t\t\t\tCoordinate: (%f, %f)\n" - "\t\t\t\tType: %d\n", - j, - engine->rpcs[i].points[j].x, - engine->rpcs[i].points[j].y, - engine->rpcs[i].points[j].type - ); - } - } - for (i = 0; i < engine->dspPresetCount; i += 1) - { - printf( - "\tDSP Preset %d, Code %d:\n" - "\t\tAccessibility: %X\n" - "\t\tParameter Count: %d\n", - i, - engine->dspPresetCodes[i], - engine->dspPresets[i].accessibility, - engine->dspPresets[i].parameterCount - ); - for (j = 0; j < engine->dspPresets[i].parameterCount; j += 1) - { - printf( - "\t\t\tParameter %d:\n" - "\t\t\t\tInitial Value: %f\n" - "\t\t\t\tMin Value: %f\n" - "\t\t\t\tMax Value: %f\n" - "\t\t\t\tUnknown u16: %d\n", - j, - engine->dspPresets[i].parameters[j].value, - engine->dspPresets[i].parameters[j].minVal, - engine->dspPresets[i].parameters[j].maxVal, - engine->dspPresets[i].parameters[j].unknown - ); - } - } - - /* Print SoundBank/WaveBank information */ - for (i = 2; i < argc; i += 1) - { - buf = (uint8_t*) SDL_LoadFile(argv[i], &len); - if (buf == NULL || len < 4) - { - printf("%s invalid input!\n", argv[i]); - } - else if (*((uint32_t*) buf) == 0x4B424453) - { - print_soundbank(engine, buf, len); - } - else if (*((uint32_t*) buf) == 0x444E4257) - { - print_wavebank(engine, buf, len); - } - else - { - printf("%s not an XACT file!\n", argv[i]); - } - SDL_free(buf); - } - - /* Clean up. We out. */ - FACTAudioEngine_ShutDown(engine); - - return 0; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio.cpp deleted file mode 100644 index 3f6c23ea..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio.cpp +++ /dev/null @@ -1,119 +0,0 @@ -#include "audio.h" - -#include - -const char *audio_voice_type_names[3] = -{ - "Source Voice", - "Submix Voice", - "Mastering Voice" -}; - -const char *audio_reverb_preset_names[] = -{ - "Generic", - "Padded Cell", - "Room ", - "Bathroom", - "Livingroom", - "Stone Room", - "Auditorium", - "Concert Hall", - "Cave", - "Arena", - "Hangar", - "Carpeted Hallway", - "Hallway", - "Stone Corridor", - "Alley", - "Forest", - "City", - "Mountains", - "Quarry", - "Plain", - "Parking Lot", - "Sewerpipe", - "Underwater", - "Small Room", - "Medium Room", - "Large Room", - "Medium Hall", - "Large Hall", - "Plate", -}; - -// see xaudio2fx.h -const ReverbI3DL2Parameters audio_reverb_presets_i3dl2[] = -{ - {100, -1000, -100,0.0f, 1.49f,0.83f, -2602,0.007f, 200,0.011f,100.0f,100.0f,5000.0f}, - {100, -1000,-6000,0.0f, 0.17f,0.10f, -1204,0.001f, 207,0.002f,100.0f,100.0f,5000.0f}, - {100, -1000, -454,0.0f, 0.40f,0.83f, -1646,0.002f, 53,0.003f,100.0f,100.0f,5000.0f}, - {100, -1000,-1200,0.0f, 1.49f,0.54f, -370,0.007f, 1030,0.011f,100.0f, 60.0f,5000.0f}, - {100, -1000,-6000,0.0f, 0.50f,0.10f, -1376,0.003f, -1104,0.004f,100.0f,100.0f,5000.0f}, - {100, -1000, -300,0.0f, 2.31f,0.64f, -711,0.012f, 83,0.017f,100.0f,100.0f,5000.0f}, - {100, -1000, -476,0.0f, 4.32f,0.59f, -789,0.020f, -289,0.030f,100.0f,100.0f,5000.0f}, - {100, -1000, -500,0.0f, 3.92f,0.70f, -1230,0.020f, -2,0.029f,100.0f,100.0f,5000.0f}, - {100, -1000, 0,0.0f, 2.91f,1.30f, -602,0.015f, -302,0.022f,100.0f,100.0f,5000.0f}, - {100, -1000, -698,0.0f, 7.24f,0.33f, -1166,0.020f, 16,0.030f,100.0f,100.0f,5000.0f}, - {100, -1000,-1000,0.0f,10.05f,0.23f, -602,0.020f, 198,0.030f,100.0f,100.0f,5000.0f}, - {100, -1000,-4000,0.0f, 0.30f,0.10f, -1831,0.002f, -1630,0.030f,100.0f,100.0f,5000.0f}, - {100, -1000, -300,0.0f, 1.49f,0.59f, -1219,0.007f, 441,0.011f,100.0f,100.0f,5000.0f}, - {100, -1000, -237,0.0f, 2.70f,0.79f, -1214,0.013f, 395,0.020f,100.0f,100.0f,5000.0f}, - {100, -1000, -270,0.0f, 1.49f,0.86f, -1204,0.007f, -4,0.011f,100.0f,100.0f,5000.0f}, - {100, -1000,-3300,0.0f, 1.49f,0.54f, -2560,0.162f, -613,0.088f, 79.0f,100.0f,5000.0f}, - {100, -1000, -800,0.0f, 1.49f,0.67f, -2273,0.007f, -2217,0.011f, 50.0f,100.0f,5000.0f}, - {100, -1000,-2500,0.0f, 1.49f,0.21f, -2780,0.300f, -2014,0.100f, 27.0f,100.0f,5000.0f}, - {100, -1000,-1000,0.0f, 1.49f,0.83f,-10000,0.061f, 500,0.025f,100.0f,100.0f,5000.0f}, - {100, -1000,-2000,0.0f, 1.49f,0.50f, -2466,0.179f, -2514,0.100f, 21.0f,100.0f,5000.0f}, - {100, -1000, 0,0.0f, 1.65f,1.50f, -1363,0.008f, -1153,0.012f,100.0f,100.0f,5000.0f}, - {100, -1000,-1000,0.0f, 2.81f,0.14f, 429,0.014f, 648,0.021f, 80.0f, 60.0f,5000.0f}, - {100, -1000,-4000,0.0f, 1.49f,0.10f, -449,0.007f, 1700,0.011f,100.0f,100.0f,5000.0f}, - {100, -1000, -600,0.0f, 1.10f,0.83f, -400,0.005f, 500,0.010f,100.0f,100.0f,5000.0f}, - {100, -1000, -600,0.0f, 1.30f,0.83f, -1000,0.010f, -200,0.020f,100.0f,100.0f,5000.0f}, - {100, -1000, -600,0.0f, 1.50f,0.83f, -1600,0.020f, -1000,0.040f,100.0f,100.0f,5000.0f}, - {100, -1000, -600,0.0f, 1.80f,0.70f, -1300,0.015f, -800,0.030f,100.0f,100.0f,5000.0f}, - {100, -1000, -600,0.0f, 1.80f,0.70f, -2000,0.030f, -1400,0.060f,100.0f,100.0f,5000.0f}, - {100, -1000, -200,0.0f, 1.30f,0.90f, 0,0.002f, 0,0.010f,100.0f, 75.0f,5000.0f} -}; -const ReverbParameters *audio_reverb_presets = NULL; -const size_t audio_reverb_preset_count = sizeof(audio_reverb_preset_names) / sizeof(audio_reverb_preset_names[0]); - -PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context = NULL; -PFN_AUDIO_CREATE_VOICE audio_create_voice = NULL; -PFN_AUDIO_WAVE_LOAD audio_wave_load = NULL; -PFN_AUDIO_WAVE_PLAY audio_wave_play = NULL; -PFN_AUDIO_WAVE_STOP audio_wave_stop = NULL; -PFN_AUDIO_EFFECT_CHANGE audio_effect_change = NULL; - -extern AudioContext *xaudio_create_context(bool output_5p1, AudioVoiceType effect_on_voice); -extern AudioContext *faudio_create_context(bool output_5p1, AudioVoiceType effect_on_voice); - -AudioContext *audio_create_context(AudioEngine p_engine, bool output_5p1, AudioVoiceType effect_on_voice) -{ - if (audio_reverb_presets == NULL) - { - audio_reverb_presets = new ReverbParameters[audio_reverb_preset_count]; - - for (size_t idx = 0; idx < audio_reverb_preset_count; ++idx) - { - ReverbConvertI3DL2ToNative( - (const FAudioFXReverbI3DL2Parameters *) &audio_reverb_presets_i3dl2[idx], - (FAudioFXReverbParameters *) &audio_reverb_presets[idx]); - } - } - - switch (p_engine) - { - #ifdef HAVE_XAUDIO2 - case AudioEngine_XAudio2: - return xaudio_create_context(output_5p1, effect_on_voice); - #endif - - case AudioEngine_FAudio: - return faudio_create_context(output_5p1, effect_on_voice); - - default: - return NULL; - } - -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio.h deleted file mode 100644 index 26c79ad8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio.h +++ /dev/null @@ -1,103 +0,0 @@ -#ifndef FAUDIOFILTERDEMO_AUDIO_H -#define FAUDIOFILTERDEMO_AUDIO_H - -#include -#include -#include "../wavcommon/wavs.h" - -#ifdef _MSC_VER -#define HAVE_XAUDIO2 -#endif - -const uint32_t SAMPLERATE = 44100; - -// types -struct AudioContext; - -enum AudioEngine { - AudioEngine_XAudio2, - AudioEngine_FAudio -}; - -enum AudioVoiceType { - AudioVoiceType_Source = 0, - AudioVoiceType_Submix, - AudioVoiceType_Master -}; - -#pragma pack(push, 1) - -struct ReverbI3DL2Parameters -{ - float WetDryMix; - int Room; - int RoomHF; - float RoomRolloffFactor; - float DecayTime; - float DecayHFRatio; - int Reflections; - float ReflectionsDelay; - int Reverb; - float ReverbDelay; - float Diffusion; - float Density; - float HFReference; -}; - -struct ReverbParameters -{ - float WetDryMix; - uint32_t ReflectionsDelay; - uint8_t ReverbDelay; - uint8_t RearDelay; - uint8_t PositionLeft; - uint8_t PositionRight; - uint8_t PositionMatrixLeft; - uint8_t PositionMatrixRight; - uint8_t EarlyDiffusion; - uint8_t LateDiffusion; - uint8_t LowEQGain; - uint8_t LowEQCutoff; - uint8_t HighEQGain; - uint8_t HighEQCutoff; - float RoomFilterFreq; - float RoomFilterMain; - float RoomFilterHF; - float ReflectionsGain; - float ReverbGain; - float DecayTime; - float Density; - float RoomSize; -}; - -#pragma pack(pop) - -extern const char *audio_voice_type_names[3]; - -extern const char *audio_reverb_preset_names[]; -extern const ReverbI3DL2Parameters audio_reverb_presets_i3dl2[]; -extern const ReverbParameters *audio_reverb_presets; -extern const size_t audio_reverb_preset_count; - -typedef void (*PFN_AUDIO_DESTROY_CONTEXT)(AudioContext *p_context); -typedef void (*PFN_AUDIO_CREATE_VOICE)(AudioContext *p_context, float *p_buffer, size_t p_buffer_size, int p_sample_rate, int p_num_channels); - -typedef void (*PFN_AUDIO_WAVE_LOAD)(AudioContext *p_context, AudioSampleWave sample, bool stereo); -typedef void (*PFN_AUDIO_WAVE_PLAY)(AudioContext *p_context); -typedef void (*PFN_AUDIO_WAVE_STOP)(AudioContext *p_context); - -typedef void(*PFN_AUDIO_EFFECT_CHANGE)(AudioContext *p_context, bool p_enabled, ReverbParameters *p_params); - -// API -AudioContext *audio_create_context(AudioEngine p_engine, bool output_5p1, AudioVoiceType effect_on_voice); - -extern PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context; -extern PFN_AUDIO_CREATE_VOICE audio_create_voice; - -extern PFN_AUDIO_WAVE_LOAD audio_wave_load; -extern PFN_AUDIO_WAVE_PLAY audio_wave_play; -extern PFN_AUDIO_WAVE_STOP audio_wave_stop; - -extern PFN_AUDIO_EFFECT_CHANGE audio_effect_change; - -#endif // FAUDIOFILTERDEMO_AUDIO_H diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio_faudio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio_faudio.cpp deleted file mode 100644 index 8efa30a2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio_faudio.cpp +++ /dev/null @@ -1,261 +0,0 @@ -#include "audio.h" - -#include -#include -#include - -struct AudioContext -{ - FAudio *faudio; - bool output_5p1; - AudioVoiceType effect_on_voice; - - FAudioMasteringVoice *mastering_voice; - FAudioSubmixVoice *submix_voice; - FAudioSourceVoice *source_voice; - FAudioVoice *voices[3]; - - unsigned int wav_channels; - unsigned int wav_samplerate; - drwav_uint64 wav_sample_count; - float * wav_samples; - - FAudioBuffer buffer; - - FAudioEffectDescriptor reverb_effect; - FAudioEffectChain effect_chain; - ReverbParameters reverb_params; - bool reverb_enabled; -}; - -void faudio_destroy_context(AudioContext *context) -{ - if (context != NULL) - { - FAudioVoice_DestroyVoice(context->source_voice); - FAudioVoice_DestroyVoice(context->submix_voice); - FAudioVoice_DestroyVoice(context->mastering_voice); - FAudio_Release(context->faudio); - delete context; - } -} - -void faudio_create_voice(AudioContext *context, float *buffer, size_t buffer_size, int sample_rate, int num_channels) -{ - // create reverb effect - FAPO *fapo = NULL; - uint32_t hr = FAudioCreateReverb(&fapo, 0); - - if (hr != 0) - { - return; - } - - // create effect chain - context->reverb_effect.InitialState = context->reverb_enabled; - context->reverb_effect.OutputChannels = (context->output_5p1) ? 6 : context->wav_channels; - context->reverb_effect.pEffect = fapo; - - context->effect_chain.EffectCount = 1; - context->effect_chain.pEffectDescriptors = &context->reverb_effect; - - FAudioEffectChain *voice_effect[3] = {NULL, NULL, NULL}; - voice_effect[context->effect_on_voice] = &context->effect_chain; - - // create a mastering voice - uint32_t inChannels = context->wav_channels; - if (context->output_5p1 && context->effect_on_voice != AudioVoiceType_Master) - { - inChannels = 6; - } - - hr = FAudio_CreateMasteringVoice( - context->faudio, - &context->mastering_voice, - inChannels, - FAUDIO_DEFAULT_SAMPLERATE, - 0, - 0, - voice_effect[AudioVoiceType_Master] - ); - if (hr != 0) - { - return; - } - context->voices[AudioVoiceType_Master] = context->mastering_voice; - - // create a submix voice - inChannels = context->wav_channels; - if (context->output_5p1 && context->effect_on_voice == AudioVoiceType_Source) - { - inChannels = 6; - } - - hr = FAudio_CreateSubmixVoice( - context->faudio, - &context->submix_voice, - inChannels, - SAMPLERATE, - 0, - 0, - NULL, - voice_effect[AudioVoiceType_Submix] - ); - context->voices[AudioVoiceType_Submix] = context->submix_voice; - - FAudioVoice_SetVolume(context->submix_voice, 1.0f, FAUDIO_COMMIT_NOW); - - // create a source voice - FAudioSendDescriptor desc = {0, context->submix_voice}; - FAudioVoiceSends sends = {1, &desc}; - - FAudioWaveFormatEx waveFormat; - waveFormat.wFormatTag = 3; - waveFormat.nChannels = num_channels; - waveFormat.nSamplesPerSec = sample_rate; - waveFormat.nAvgBytesPerSec = sample_rate * 4; - waveFormat.nBlockAlign = num_channels * 4; - waveFormat.wBitsPerSample = 32; - waveFormat.cbSize = 0; - - hr = FAudio_CreateSourceVoice( - context->faudio, - &context->source_voice, - &waveFormat, - 0, - FAUDIO_DEFAULT_FREQ_RATIO, - NULL, - &sends, - voice_effect[AudioVoiceType_Source] - ); - - if (hr != 0) - { - return; - } - context->voices[AudioVoiceType_Source] = context->source_voice; - - FAudioVoice_SetVolume(context->source_voice, 1.0f, FAUDIO_COMMIT_NOW); - - // submit the array - SDL_zero(context->buffer); - context->buffer.AudioBytes = 4 * buffer_size * num_channels; - context->buffer.pAudioData = (uint8_t *)buffer; - context->buffer.Flags = FAUDIO_END_OF_STREAM; - context->buffer.PlayBegin = 0; - context->buffer.PlayLength = buffer_size; - context->buffer.LoopBegin = 0; - context->buffer.LoopLength = 0; - context->buffer.LoopCount = 0; -} - -void faudio_reverb_set_params(AudioContext *context) -{ - FAudioVoice_SetEffectParameters( - context->voices[context->effect_on_voice], - 0, - &context->reverb_params, - sizeof(context->reverb_params), - FAUDIO_COMMIT_NOW - ); -} - -void faudio_wave_load(AudioContext *context, AudioSampleWave sample, bool stereo) -{ - if (context->source_voice) - { - FAudioVoice_DestroyVoice(context->source_voice); - FAudioVoice_DestroyVoice(context->submix_voice); - FAudioVoice_DestroyVoice(context->mastering_voice); - } - - context->wav_samples = WAVS_Open( - sample, - stereo, - &context->wav_channels, - &context->wav_samplerate, - &context->wav_sample_count - ); - - context->wav_sample_count /= context->wav_channels; - - audio_create_voice(context, context->wav_samples, context->wav_sample_count, context->wav_samplerate, context->wav_channels); - faudio_reverb_set_params(context); -} - -void faudio_wave_play(AudioContext *context) -{ - FAudioSourceVoice_Stop(context->source_voice, 0, FAUDIO_COMMIT_NOW); - FAudioSourceVoice_FlushSourceBuffers(context->source_voice); - - FAudioSourceVoice_SubmitSourceBuffer(context->source_voice, &context->buffer, NULL); - FAudioSourceVoice_Start(context->source_voice, 0, FAUDIO_COMMIT_NOW); -} - -void faudio_wave_stop(AudioContext *context) -{ - FAudioSourceVoice_Stop(context->source_voice, FAUDIO_PLAY_TAILS, FAUDIO_COMMIT_NOW); -} - -void faudio_effect_change(AudioContext *context, bool enabled, ReverbParameters *params) -{ - if (context->reverb_enabled && !enabled) - { - FAudioVoice_DisableEffect( - context->voices[context->effect_on_voice], - 0, - FAUDIO_COMMIT_NOW - ); - context->reverb_enabled = enabled; - } - else if (!context->reverb_enabled && enabled) - { - FAudioVoice_EnableEffect( - context->voices[context->effect_on_voice], - 0, - FAUDIO_COMMIT_NOW - ); - context->reverb_enabled = enabled; - } - - context->reverb_params = *params; - faudio_reverb_set_params(context); -} - -AudioContext *faudio_create_context(bool output_5p1, AudioVoiceType effect_on_voice) -{ - // setup function pointers - audio_destroy_context = faudio_destroy_context; - audio_create_voice = faudio_create_voice; - audio_wave_load = faudio_wave_load; - audio_wave_play = faudio_wave_play; - audio_wave_stop = faudio_wave_stop; - audio_effect_change = faudio_effect_change; - - // create Faudio object - FAudio *faudio; - - uint32_t hr = FAudioCreate(&faudio, 0, FAUDIO_DEFAULT_PROCESSOR); - if (hr != 0) - { - return NULL; - } - - // return a context object - AudioContext *context = new AudioContext(); - context->faudio = faudio; - context->output_5p1 = output_5p1; - context->effect_on_voice = effect_on_voice; - - context->source_voice = NULL; - context->submix_voice = NULL; - context->mastering_voice = NULL; - context->wav_samples = NULL; - SDL_zero(context->reverb_params); - context->reverb_enabled = false; - - // load the first wave - audio_wave_load(context, (AudioSampleWave) 0, false); - - return context; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio_xaudio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio_xaudio.cpp deleted file mode 100644 index af37c073..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/audio_xaudio.cpp +++ /dev/null @@ -1,291 +0,0 @@ - -#include "audio.h" - -#ifdef HAVE_XAUDIO2 - -#include -#include -#include - -struct AudioContext -{ - IXAudio2 *xaudio2; - uint32_t output_5p1; - AudioVoiceType effect_on_voice; - - IXAudio2MasteringVoice *mastering_voice; - IXAudio2SubmixVoice *submix_voice; - IXAudio2SourceVoice *source_voice; - IXAudio2Voice *voices[3]; - - unsigned int wav_channels; - unsigned int wav_samplerate; - drwav_uint64 wav_sample_count; - float * wav_samples; - - XAUDIO2_BUFFER buffer; - - XAUDIO2_EFFECT_DESCRIPTOR reverb_effect; - XAUDIO2_EFFECT_CHAIN effect_chain; - ReverbParameters reverb_params; - bool reverb_enabled; -}; - -void xaudio_destroy_context(AudioContext *context) -{ - if (context != NULL) - { - context->source_voice->DestroyVoice(); - context->submix_voice->DestroyVoice(); - context->mastering_voice->DestroyVoice(); - context->xaudio2->Release(); - delete context; - } -} - -void xaudio_create_voice(AudioContext *context, float *buffer, size_t buffer_size, int sample_rate, int num_channels) -{ - // create reverb effect - IUnknown *xapo = NULL; - HRESULT hr = XAudio2CreateReverb(&xapo); - - if (FAILED(hr)) - { - return; - } - - // create effect chain - context->reverb_effect.InitialState = context->reverb_enabled; - context->reverb_effect.OutputChannels = (context->output_5p1) ? 6 : context->wav_channels; - context->reverb_effect.pEffect = xapo; - - context->effect_chain.EffectCount = 1; - context->effect_chain.pEffectDescriptors = &context->reverb_effect; - - XAUDIO2_EFFECT_CHAIN *voice_effect[3] = {NULL, NULL, NULL}; - voice_effect[context->effect_on_voice] = &context->effect_chain; - - // create a mastering voice - uint32_t inChannels = context->wav_channels; - if (context->output_5p1 && context->effect_on_voice != AudioVoiceType_Master) - { - inChannels = 6; - } - - hr = context->xaudio2->CreateMasteringVoice( - &context->mastering_voice, - inChannels, - XAUDIO2_DEFAULT_SAMPLERATE, - 0, - 0, - voice_effect[AudioVoiceType_Master] - ); - if (FAILED(hr)) - { - return; - } - context->voices[AudioVoiceType_Master] = context->mastering_voice; - - // create a submix voice - inChannels = context->wav_channels; - if (context->output_5p1 && context->effect_on_voice == AudioVoiceType_Source) - { - inChannels = 6; - } - - hr = context->xaudio2->CreateSubmixVoice( - &context->submix_voice, - inChannels, - SAMPLERATE, - 0, - 0, - NULL, - voice_effect[AudioVoiceType_Submix] - ); - if (FAILED(hr)) - { - return; - } - context->voices[AudioVoiceType_Submix] = context->submix_voice; - context->submix_voice->SetVolume(1.0f); - - // create a source voice - XAUDIO2_SEND_DESCRIPTOR desc = {0, context->submix_voice}; - XAUDIO2_VOICE_SENDS sends = {1, &desc}; - - WAVEFORMATEX waveFormat; - waveFormat.wFormatTag = WAVE_FORMAT_IEEE_FLOAT; - waveFormat.nChannels = num_channels; - waveFormat.nSamplesPerSec = sample_rate; - waveFormat.nBlockAlign = num_channels * 4; - waveFormat.nAvgBytesPerSec = waveFormat.nSamplesPerSec * waveFormat.nBlockAlign; - waveFormat.wBitsPerSample = 32; - waveFormat.cbSize = 0; - - hr = context->xaudio2->CreateSourceVoice( - &context->source_voice, - &waveFormat, - 0, - XAUDIO2_DEFAULT_FREQ_RATIO, - NULL, - &sends, - voice_effect[AudioVoiceType_Source] - ); - if (FAILED(hr)) - { - return; - } - context->voices[AudioVoiceType_Source] = context->source_voice; - - context->source_voice->SetVolume(1.0f); - - xapo->Release(); - - // submit the array - SDL_zero(context->buffer); - context->buffer.AudioBytes = 4 * buffer_size * num_channels; - context->buffer.pAudioData = (byte *)buffer; - context->buffer.Flags = XAUDIO2_END_OF_STREAM; - context->buffer.PlayBegin = 0; - context->buffer.PlayLength = buffer_size; - context->buffer.LoopBegin = 0; - context->buffer.LoopLength = 0; - context->buffer.LoopCount = 0; -} - -void xaudio_reverb_set_params(AudioContext *context) -{ - XAUDIO2FX_REVERB_PARAMETERS native_params = { 0 }; - - native_params.WetDryMix = context->reverb_params.WetDryMix; - native_params.ReflectionsDelay = context->reverb_params.ReflectionsDelay; - native_params.ReverbDelay = context->reverb_params.ReverbDelay; - native_params.RearDelay = context->reverb_params.RearDelay; - native_params.PositionLeft = context->reverb_params.PositionLeft; - native_params.PositionRight = context->reverb_params.PositionRight; - native_params.PositionMatrixLeft = context->reverb_params.PositionMatrixLeft; - native_params.PositionMatrixRight = context->reverb_params.PositionMatrixRight; - native_params.EarlyDiffusion = context->reverb_params.EarlyDiffusion; - native_params.LateDiffusion = context->reverb_params.LateDiffusion; - native_params.LowEQGain = context->reverb_params.LowEQGain; - native_params.LowEQCutoff = context->reverb_params.LowEQCutoff; - native_params.HighEQGain = context->reverb_params.HighEQGain; - native_params.HighEQCutoff = context->reverb_params.HighEQCutoff; - native_params.RoomFilterFreq = context->reverb_params.RoomFilterFreq; - native_params.RoomFilterMain = context->reverb_params.RoomFilterMain; - native_params.RoomFilterHF = context->reverb_params.RoomFilterHF; - native_params.ReflectionsGain = context->reverb_params.ReflectionsGain; - native_params.ReverbGain = context->reverb_params.ReverbGain; - native_params.DecayTime = context->reverb_params.DecayTime; - native_params.Density = context->reverb_params.Density; - native_params.RoomSize = context->reverb_params.RoomSize; - - /* 2.8+ only but zero-initialization catches this - native_params.DisableLateField = 0; */ - - HRESULT hr = context->voices[context->effect_on_voice]->SetEffectParameters( - 0, - &native_params, - sizeof(XAUDIO2FX_REVERB_PARAMETERS) - ); -} - -void xaudio_wave_load(AudioContext *context, AudioSampleWave sample, bool stereo) -{ - if (context->source_voice) - { - context->source_voice->DestroyVoice(); - context->submix_voice->DestroyVoice(); - context->mastering_voice->DestroyVoice(); - } - - context->wav_samples = WAVS_Open( - sample, - stereo, - &context->wav_channels, - &context->wav_samplerate, - &context->wav_sample_count); - - context->wav_sample_count /= context->wav_channels; - - audio_create_voice(context, context->wav_samples, context->wav_sample_count, context->wav_samplerate, context->wav_channels); - xaudio_reverb_set_params(context); -} - -void xaudio_wave_play(AudioContext *context) -{ - context->source_voice->Stop(); - context->source_voice->FlushSourceBuffers(); - - HRESULT hr = context->source_voice->SubmitSourceBuffer(&context->buffer); - - if (FAILED(hr)) - { - return; - } - - context->source_voice->Start(); -} - -void xaudio_wave_stop(AudioContext *context) -{ - context->source_voice->Stop(XAUDIO2_PLAY_TAILS); -} - -void xaudio_effect_change(AudioContext *context, bool enabled, ReverbParameters *params) -{ - HRESULT hr; - - if (context->reverb_enabled && !enabled) - { - hr = context->voices[context->effect_on_voice]->DisableEffect(0); - context->reverb_enabled = enabled; - } - else if (!context->reverb_enabled && enabled) - { - hr = context->voices[context->effect_on_voice]->EnableEffect(0); - context->reverb_enabled = enabled; - } - - memcpy(&context->reverb_params, params, sizeof(ReverbParameters)); - xaudio_reverb_set_params(context); -} - -AudioContext *xaudio_create_context(bool output_5p1, AudioVoiceType effect_on_voice) -{ - // setup function pointers - audio_destroy_context = xaudio_destroy_context; - audio_create_voice = xaudio_create_voice; - audio_wave_load = xaudio_wave_load; - audio_wave_play = xaudio_wave_play; - audio_wave_stop = xaudio_wave_stop; - audio_effect_change = xaudio_effect_change; - - // create XAudio object - IXAudio2 *xaudio2; - - HRESULT hr = XAudio2Create(&xaudio2); - if (FAILED(hr)) - { - return NULL; - } - - // return a context object - AudioContext *context = new AudioContext(); - context->xaudio2 = xaudio2; - context->output_5p1 = output_5p1; - context->effect_on_voice = effect_on_voice; - context->mastering_voice = NULL; - context->submix_voice = NULL; - context->source_voice = NULL; - context->wav_samples = NULL; - context->reverb_params = audio_reverb_presets[0]; - context->reverb_enabled = false; - - // load the first wave - audio_wave_load(context, (AudioSampleWave) 0, false); - - return context; -} - -#endif // HAVE_XAUDIO2 diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/testreverb.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/testreverb.cpp deleted file mode 100644 index d0418d1f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testreverb/testreverb.cpp +++ /dev/null @@ -1,196 +0,0 @@ -#include "../uicommon/imgui.h" - -#include "audio.h" -#include - -const char* TOOL_NAME = "Reverb Test Tool"; -int TOOL_WIDTH = 640; -int TOOL_HEIGHT = 850; - -int next_window_dims(int y_pos, int height) -{ - ImGui::SetNextWindowPos(ImVec2(0, static_cast(y_pos))); - ImGui::SetNextWindowSize(ImVec2(640, static_cast(height))); - - return y_pos + height; -} - -void FAudioTool_Init() -{ - /* Nothing to do... */ -} - -void FAudioTool_Quit() -{ - /* Nothing to do... */ -} - -void FAudioTool_Update() -{ - bool update_engine = false; - bool update_wave = false; - bool play_wave = false; - bool stop_wave = false; - bool update_effect = false; - - // gui - int window_y = next_window_dims(0, 80); - ImGui::Begin("Output Audio Engine"); - - static int audio_engine = (int)AudioEngine_FAudio; - update_engine |= ImGui::RadioButton("FAudio", &audio_engine, (int)AudioEngine_FAudio); ImGui::SameLine(); - #ifdef HAVE_XAUDIO2 - update_engine |= ImGui::RadioButton("XAudio2", &audio_engine, (int)AudioEngine_XAudio2); ImGui::SameLine(); - #endif - - static bool output_5p1 = false; - update_engine |= ImGui::Checkbox("5.1 channel output", &output_5p1); - - static int32_t voice_index = (int32_t) AudioVoiceType_Submix; - update_engine |= ImGui::Combo("Apply effect to", &voice_index, audio_voice_type_names, 3); - - ImGui::End(); - - window_y = next_window_dims(window_y, 80); - ImGui::Begin("Wave file to play"); - - static int wave_index = (int)AudioWave_SnareDrum01; - static bool wave_stereo = false; - - update_wave |= ImGui::RadioButton("Snare Drum (Forte)", &wave_index, (int)AudioWave_SnareDrum01); ImGui::SameLine(); - update_wave |= ImGui::RadioButton("Snare Drum (Fortissimo)", &wave_index, (int)AudioWave_SnareDrum02); ImGui::SameLine(); - update_wave |= ImGui::RadioButton("Snare Drum (Mezzo-Forte)", &wave_index, (int)AudioWave_SnareDrum03); - - play_wave = ImGui::Button("Play"); ImGui::SameLine(); - stop_wave = ImGui::Button("Stop"); ImGui::SameLine(); - update_wave |= ImGui::Checkbox("Stereo", &wave_stereo); - - ImGui::End(); - - window_y = next_window_dims(window_y, 80); - ImGui::Begin("Reverb effect"); - - static bool effect_enabled = false; - update_effect |= ImGui::Checkbox("Enabled", &effect_enabled); - - static int32_t preset_index = -1; - static ReverbParameters reverb_params = { - 100.0f, - 40, - 60, - 0, 0, 0, 0, 0, - 3, - 3, - 0, - 0, - 0, - 0, - 5000.0f, - -5.0f, - -5.0f, - -5.0f, - -5.0f, - 2000.0f, - 50.0f, - 100.0f, - }; - - if (ImGui::Combo("Preset", &preset_index, audio_reverb_preset_names, audio_reverb_preset_count)) { - memcpy(&reverb_params, &audio_reverb_presets[preset_index], sizeof(ReverbParameters)); - update_effect = true; - } - - ImGui::End(); - - window_y = next_window_dims(window_y, 600); - ImGui::Begin("FAudio Tune Detail"); - - int ReverbDelay = reverb_params.ReverbDelay; - int RearDelay = reverb_params.RearDelay; - int PositionLeft = reverb_params.PositionLeft; - int PositionRight = reverb_params.PositionRight; - int PositionMatrixLeft = reverb_params.PositionMatrixLeft; - int PositionMatrixRight = reverb_params.PositionMatrixRight; - int EarlyDiffusion = reverb_params.EarlyDiffusion; - int LateDiffusion = reverb_params.LateDiffusion; - int LowEQGain = reverb_params.LowEQGain; - int LowEQCutoff = reverb_params.LowEQCutoff; - int HighEQGain = reverb_params.HighEQGain; - int HighEQCutoff = reverb_params.HighEQCutoff; - - update_effect |= ImGui::SliderFloat("WetDryMix (%)", &reverb_params.WetDryMix, 0, 100); - update_effect |= ImGui::SliderInt("ReflectionsDelay (ms)", (int *)&reverb_params.ReflectionsDelay, 0, 300); - update_effect |= ImGui::SliderInt("ReverbDelay (ms)", &ReverbDelay, 0, 85); - update_effect |= ImGui::SliderInt("RearDelay (ms)", &RearDelay, 0, 5); - - update_effect |= ImGui::SliderInt("PositionLeft", &PositionLeft, 0, 30); - update_effect |= ImGui::SliderInt("PositionRight", &PositionRight, 0, 30); - update_effect |= ImGui::SliderInt("PositionMatrixLeft", &PositionMatrixLeft, 0, 30); - update_effect |= ImGui::SliderInt("PositionMatrixRight", &PositionMatrixRight, 0, 30); - - update_effect |= ImGui::SliderInt("Early Diffusion", &EarlyDiffusion, 0, 15); - update_effect |= ImGui::SliderInt("Late Diffusion", &LateDiffusion, 0, 15); - - update_effect |= ImGui::SliderInt("LowEqGain", &LowEQGain, 0, 12); - update_effect |= ImGui::SliderInt("LowEqCuttoff", &LowEQCutoff, 0, 9); - update_effect |= ImGui::SliderInt("HighEqGain", &HighEQGain, 0, 8); - update_effect |= ImGui::SliderInt("HighEqCuttoff", &HighEQCutoff, 0, 14); - - update_effect |= ImGui::SliderFloat("RoomFreq (Hz)", &reverb_params.RoomFilterFreq, 20, 20000); - update_effect |= ImGui::SliderFloat("RoomGain (dB)", &reverb_params.RoomFilterMain, -100, 0); - update_effect |= ImGui::SliderFloat("RoomHFGain (dB)", &reverb_params.RoomFilterHF, -100, 0); - - update_effect |= ImGui::SliderFloat("ReflectionsGain (dB)", &reverb_params.ReflectionsGain, -100, 20); - update_effect |= ImGui::SliderFloat("ReverbGain (dB)", &reverb_params.ReverbGain, -100, 20); - - update_effect |= ImGui::SliderFloat("DecayTime (s)", &reverb_params.DecayTime, 0.1f, 15.0f); - - update_effect |= ImGui::SliderFloat("Density (%)", &reverb_params.Density, 0, 100); - update_effect |= ImGui::SliderFloat("RoomSize (feet)", &reverb_params.RoomSize, 1, 100); - - reverb_params.ReverbDelay = ReverbDelay; - reverb_params.RearDelay = RearDelay; - reverb_params.PositionLeft = PositionLeft; - reverb_params.PositionRight = PositionRight; - reverb_params.PositionMatrixLeft = PositionMatrixLeft; - reverb_params.PositionMatrixRight = PositionMatrixRight; - reverb_params.EarlyDiffusion = EarlyDiffusion; - reverb_params.LateDiffusion = LateDiffusion; - reverb_params.LowEQGain = LowEQGain; - reverb_params.LowEQCutoff = LowEQCutoff; - reverb_params.HighEQGain = HighEQGain; - reverb_params.HighEQCutoff = HighEQCutoff; - - ImGui::End(); - - // audio control - static AudioContext *player = NULL; - - if (player == NULL || update_engine) - { - if (player != NULL) - { - audio_destroy_context(player); - } - player = audio_create_context((AudioEngine) audio_engine, output_5p1, (AudioVoiceType) voice_index); - } - - if (update_wave | update_engine) - { - audio_wave_load(player, (AudioSampleWave) wave_index, wave_stereo); - } - - if (play_wave) { - audio_wave_play(player); - } - - if (stop_wave) - { - audio_wave_stop(player); - } - - if ((update_engine || update_effect)) - { - audio_effect_change(player, effect_enabled, &reverb_params); - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio.cpp deleted file mode 100644 index 0cdbe06f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "audio.h" - -PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context = NULL; -PFN_AUDIO_WAVE_LOAD audio_wave_load = NULL; -PFN_AUDIO_WAVE_PLAY audio_wave_play = NULL; -PFN_AUDIO_UPDATE_VOLUMEMETER audio_update_volumemeter = NULL; - -extern AudioContext* xaudio_create_context(); -extern AudioContext* faudio_create_context(); - -AudioContext* audio_create_context(AudioEngine p_engine) -{ - switch (p_engine) - { - #ifdef HAVE_XAUDIO2 - case AudioEngine_XAudio2: - return xaudio_create_context(); - #endif - - case AudioEngine_FAudio: - return faudio_create_context(); - - default: - return NULL; - } - -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio.h deleted file mode 100644 index 6eb089f8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio.h +++ /dev/null @@ -1,32 +0,0 @@ -#ifndef FAUDIOTESTVOLUMEMETER_AUDIO_H -#define FAUDIOTESTVOLUMEMETER_AUDIO_H - -#include -#include -#include "../wavcommon/wavs.h" - -#ifdef _MSC_VER -#define HAVE_XAUDIO2 -#endif - -typedef struct AudioContext AudioContext; - -typedef enum -{ - AudioEngine_XAudio2, - AudioEngine_FAudio -} AudioEngine; - -typedef void (*PFN_AUDIO_DESTROY_CONTEXT)(AudioContext *p_context); -typedef void (*PFN_AUDIO_WAVE_LOAD)(AudioContext *p_context, AudioSampleWave sample, bool stereo); -typedef void (*PFN_AUDIO_WAVE_PLAY)(AudioContext *p_context); -typedef void (*PFN_AUDIO_UPDATE_VOLUMEMETER)(AudioContext *p_context, float *peak, float *rms); - -AudioContext *audio_create_context(AudioEngine p_engine); - -extern PFN_AUDIO_DESTROY_CONTEXT audio_destroy_context; -extern PFN_AUDIO_WAVE_LOAD audio_wave_load; -extern PFN_AUDIO_WAVE_PLAY audio_wave_play; -extern PFN_AUDIO_UPDATE_VOLUMEMETER audio_update_volumemeter; - -#endif /* FAUDIOTESTVOLUMEMETER_AUDIO_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio_faudio.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio_faudio.cpp deleted file mode 100644 index e58a285d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/audio_faudio.cpp +++ /dev/null @@ -1,170 +0,0 @@ -#include "audio.h" - -#include -#include -#include - -struct AudioContext -{ - FAudio *faudio; - FAudioMasteringVoice *mastering_voice; - FAudioSourceVoice *source_voice; - - unsigned int wav_channels; - unsigned int wav_samplerate; - drwav_uint64 wav_sample_count; - float *wav_samples; - FAudioBuffer buffer; -}; - -void faudio_destroy_context(AudioContext *context) -{ - if (context != NULL) - { - FAudioVoice_DestroyVoice(context->source_voice); - FAudioVoice_DestroyVoice(context->mastering_voice); - FAudio_Release(context->faudio); - delete context; - } -} - -void faudio_wave_load(AudioContext *context, AudioSampleWave sample, bool stereo) -{ - if (context->source_voice) - { - FAudioVoice_DestroyVoice(context->source_voice); - } - - /* Buffer data... */ - context->wav_samples = WAVS_Open( - sample, - stereo, - &context->wav_channels, - &context->wav_samplerate, - &context->wav_sample_count - ); - context->wav_sample_count /= context->wav_channels; - context->buffer.Flags = FAUDIO_END_OF_STREAM; - context->buffer.AudioBytes = 4 * context->wav_sample_count * context->wav_channels; - context->buffer.pAudioData = (uint8_t*) context->wav_samples; - context->buffer.PlayBegin = 0; - context->buffer.PlayLength = context->wav_sample_count; - context->buffer.LoopBegin = 0; - context->buffer.LoopLength = 0; - context->buffer.LoopCount = 0; - context->buffer.pContext = NULL; - - /* Volume meter... */ - FAPO *fapo = NULL; - uint32_t hr = FAudioCreateVolumeMeter(&fapo, 0); - if (hr != 0) - { - return; - } - - /* Effect chain... */ - FAudioEffectDescriptor vmDesc; - vmDesc.InitialState = 1; - vmDesc.OutputChannels = context->wav_channels; - vmDesc.pEffect = fapo; - FAudioEffectChain vmChain; - vmChain.EffectCount = 1; - vmChain.pEffectDescriptors = &vmDesc; - - /* Wave format... */ - FAudioWaveFormatEx waveFormat; - waveFormat.wFormatTag = 3; - waveFormat.nChannels = context->wav_channels; - waveFormat.nSamplesPerSec = context->wav_samplerate; - waveFormat.nAvgBytesPerSec = context->wav_samplerate * 4; - waveFormat.nBlockAlign = context->wav_channels * 4; - waveFormat.wBitsPerSample = 32; - waveFormat.cbSize = 0; - - /*... Source voice, finally. */ - hr = FAudio_CreateSourceVoice( - context->faudio, - &context->source_voice, - &waveFormat, - 0, - FAUDIO_DEFAULT_FREQ_RATIO, - NULL, - NULL, - &vmChain - ); - if (hr != 0) - { - return; - } - fapo->Release(fapo); -} - -void faudio_wave_play(AudioContext *context) -{ - FAudioSourceVoice_Stop(context->source_voice, 0, FAUDIO_COMMIT_NOW); - FAudioSourceVoice_FlushSourceBuffers(context->source_voice); - - FAudioSourceVoice_SubmitSourceBuffer(context->source_voice, &context->buffer, NULL); - FAudioSourceVoice_Start(context->source_voice, 0, FAUDIO_COMMIT_NOW); -} - -void faudio_update_volumemeter(AudioContext *context, float *peak, float *rms) -{ - FAudioFXVolumeMeterLevels levels; - levels.pPeakLevels = peak; - levels.pRMSLevels = rms; - levels.ChannelCount = context->wav_channels; - - if (context->source_voice != NULL) - { - FAudioVoice_GetEffectParameters( - context->source_voice, - 0, - &levels, - sizeof(levels) - ); - } -} - -AudioContext* faudio_create_context() -{ - // setup function pointers - audio_destroy_context = faudio_destroy_context; - audio_wave_load = faudio_wave_load; - audio_wave_play = faudio_wave_play; - audio_update_volumemeter = faudio_update_volumemeter; - - // create FAudio objects - FAudio *faudio; - FAudioMasteringVoice *master; - uint32_t hr = FAudioCreate(&faudio, 0, FAUDIO_DEFAULT_PROCESSOR); - if (hr != 0) - { - return NULL; - } - hr = FAudio_CreateMasteringVoice( - faudio, - &master, - FAUDIO_DEFAULT_CHANNELS, - FAUDIO_DEFAULT_SAMPLERATE, - 0, - 0, - NULL - ); - if (hr != 0) - { - return NULL; - } - - // return a context object - AudioContext *context = new AudioContext(); - context->faudio = faudio; - context->mastering_voice = master; - context->source_voice = NULL; - context->wav_samples = NULL; - - // load the first wave - audio_wave_load(context, (AudioSampleWave) 0, false); - - return context; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/testvolumemeter.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/testvolumemeter.cpp deleted file mode 100644 index 42c66f7b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testvolumemeter/testvolumemeter.cpp +++ /dev/null @@ -1,162 +0,0 @@ -#include "../uicommon/imgui.h" - -#include "audio.h" -#include - -const char* TOOL_NAME = "Volume Meter Test Tool"; -int TOOL_WIDTH = 640; -int TOOL_HEIGHT = 510; - -int next_window_dims(int y_pos, int height) -{ - ImGui::SetNextWindowPos(ImVec2(0, static_cast(y_pos))); - ImGui::SetNextWindowSize(ImVec2(640, static_cast(height))); - - return y_pos + height; -} - -void FAudioTool_Init() -{ - /* Nothing to do... */ -} - -void FAudioTool_Quit() -{ - /* Nothing to do... */ -} - -void FAudioTool_Update() -{ - bool update_engine = false; - bool update_wave = false; - bool play_wave = false; - - #define MAX_TIMELINE 120 - static float peaksL[MAX_TIMELINE] = { 0 }; - static float peaksR[MAX_TIMELINE] = { 0 }; - static float rmsL[MAX_TIMELINE] = { 0 }; - static float rmsR[MAX_TIMELINE] = { 0 }; - static int vmOffset = 0; - - // GUI - int window_y = next_window_dims(0, 50); - ImGui::Begin("Output Audio Engine"); - - static int audio_engine = (int) AudioEngine_FAudio; - update_engine |= ImGui::RadioButton( - "FAudio", - &audio_engine, - (int) AudioEngine_FAudio); - ImGui::SameLine(); - #ifdef HAVE_XAUDIO2 - update_engine |= ImGui::RadioButton( - "XAudio2", - &audio_engine, - (int) AudioEngine_XAudio2 - ); - #endif - - ImGui::End(); - - window_y = next_window_dims(window_y, 80); - ImGui::Begin("Wave file to play"); - - static int wave_index = (int) AudioWave_SnareDrum01; - static bool wave_stereo = false; - - update_wave |= ImGui::RadioButton( - "Snare Drum (Forte)", - &wave_index, - (int) AudioWave_SnareDrum01 - ); - ImGui::SameLine(); - update_wave |= ImGui::RadioButton( - "Snare Drum (Fortissimo)", - &wave_index, - (int) AudioWave_SnareDrum02 - ); - ImGui::SameLine(); - update_wave |= ImGui::RadioButton( - "Snare Drum (Mezzo-Forte)", - &wave_index, - (int) AudioWave_SnareDrum03 - ); - - play_wave = ImGui::Button("Play"); ImGui::SameLine(); - update_wave |= ImGui::Checkbox("Stereo", &wave_stereo); - - ImGui::End(); - - window_y = next_window_dims(window_y, 370); - ImGui::Begin("Volume Meter"); - - ImGui::PlotLines( - "Peaks Channel 1", - peaksL, - MAX_TIMELINE, - vmOffset, - NULL, - 0.0f, - 1.0f, - ImVec2(0, 80) - ); - ImGui::PlotLines( - "Peaks Channel 2", - peaksR, - MAX_TIMELINE, - vmOffset, - NULL, - 0.0f, - 1.0f, - ImVec2(0, 80) - ); - ImGui::PlotLines( - "RMS Channel 1", - rmsL, - MAX_TIMELINE, - vmOffset, - NULL, - 0.0f, - 1.0f, - ImVec2(0, 80) - ); - ImGui::PlotLines( - "RMS Channel 2", - rmsR, - MAX_TIMELINE, - vmOffset, - NULL, - 0.0f, - 1.0f, - ImVec2(0, 80) - ); - - ImGui::End(); - - // Audio context - static AudioContext *player = NULL; - if (player == NULL || update_engine) - { - if (player != NULL) - { - audio_destroy_context(player); - } - player = audio_create_context((AudioEngine) audio_engine); - } - if (update_wave | update_engine) - { - audio_wave_load(player, (AudioSampleWave) wave_index, wave_stereo); - } - if (play_wave) - { - audio_wave_play(player); - } - float peaks[2] = { 0.0f, 0.0f }; - float rms[2] = { 0.0f, 0.0f }; - audio_update_volumemeter(player, peaks, rms); - peaksL[vmOffset] = peaks[0]; - peaksR[vmOffset] = peaks[1]; - rmsL[vmOffset] = rms[0]; - rmsR[vmOffset] = rms[1]; - vmOffset = (vmOffset + 1) % MAX_TIMELINE; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testxwma/testxwma.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testxwma/testxwma.cpp deleted file mode 100644 index a8b64c54..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/testxwma/testxwma.cpp +++ /dev/null @@ -1,246 +0,0 @@ -#include -#include - -#include - -float argPlayBegin = 0.0f; -float argPlayLength = 0.0f; -float argLoopBegin = 0.0f; -float argLoopLength = 0.0f; -uint32_t argLoopCount = 0; - -FAudio *faudio = NULL; -FAudioMasteringVoice *mastering_voice = NULL; -FAudioSourceVoice *source_voice = NULL; - -FAudioWaveFormatExtensible *wfx = NULL; -FAudioBuffer buffer = {0}; -FAudioBufferWMA buffer_wma = {0}; - -/* based on https://docs.microsoft.com/en-us/windows/desktop/xaudio2/how-to--load-audio-data-files-in-xaudio2 */ -#define fourccRIFF *((uint32_t *) "RIFF") -#define fourccDATA *((uint32_t *) "data") -#define fourccFMT *((uint32_t *) "fmt ") -#define fourccWAVE *((uint32_t *) "WAVE") -#define fourccXWMA *((uint32_t *) "XWMA") -#define fourccDPDS *((uint32_t *) "dpds") - -uint32_t FindChunk(FILE *hFile, uint32_t fourcc, uint32_t *dwChunkSize, uint32_t *dwChunkDataPosition) -{ - uint32_t hr = 0; - - if (fseek(hFile, 0, SEEK_SET) != 0) - { - return -1; - } - - uint32_t dwChunkType; - uint32_t dwChunkDataSize; - uint32_t dwRIFFDataSize = 0; - uint32_t dwFileType; - uint32_t bytesRead = 0; - uint32_t dwOffset = 0; - - while (hr == 0) - { - if (fread(&dwChunkType, sizeof(uint32_t), 1, hFile) < 1) - hr = 1; - - if (fread(&dwChunkDataSize, sizeof(uint32_t), 1, hFile) < 1) - hr = 1; - - if (dwChunkType == fourccRIFF) - { - dwRIFFDataSize = dwChunkDataSize; - dwChunkDataSize = 4; - - if (fread(&dwFileType, sizeof(uint32_t), 1, hFile) < 1) - hr = 1; - } - else - { - if (fseek(hFile, dwChunkDataSize, SEEK_CUR) != 0) - return 1; - } - - dwOffset += sizeof(uint32_t) * 2; - - if (dwChunkType == fourcc) - { - *dwChunkSize = dwChunkDataSize; - *dwChunkDataPosition = dwOffset; - return 0; - } - - dwOffset += dwChunkDataSize; - - if (bytesRead >= dwRIFFDataSize) - return 1; - - } - - return 1; -} - -uint32_t ReadChunkData(FILE *hFile, void * buffer, uint32_t buffersize, uint32_t bufferoffset) -{ - uint32_t hr = 0; - - if (fseek(hFile, bufferoffset, SEEK_SET) != 0) - return 1; - - if (fread(buffer, buffersize, 1, hFile) < 1) - hr = 1; - - return hr; -} - -uint32_t load_data(const char *filename) -{ - /* open the audio file */ - FILE *hFile = fopen(filename, "rb"); - if (!hFile) - return 1; - - fseek(hFile, 0, SEEK_SET); - - /* Locate the 'RIFF' chunk in the audio file, and check the file type. */ - uint32_t dwChunkSize; - uint32_t dwChunkPosition; - uint32_t filetype; - - FindChunk(hFile,fourccRIFF, &dwChunkSize, &dwChunkPosition); - ReadChunkData(hFile, &filetype, sizeof(uint32_t), dwChunkPosition); - - if (filetype != fourccWAVE && filetype != fourccXWMA) - return 1; - - /* Locate the 'fmt ' chunk, and copy its contents into a WAVEFORMATEXTENSIBLE structure. */ - FindChunk(hFile,fourccFMT, &dwChunkSize, &dwChunkPosition ); - if (dwChunkSize > sizeof(FAudioWaveFormatExtensible)) - { - wfx = (FAudioWaveFormatExtensible *) malloc(dwChunkSize); - printf("chunk-size exceeds wfx size, allocating more: %u > %u\n", dwChunkSize, sizeof(FAudioWaveFormatExtensible)); - } - else - { - wfx = (FAudioWaveFormatExtensible *) malloc(sizeof(FAudioWaveFormatExtensible)); - printf("chunk-size equal or less than wfx size, capping: %u <= %u\n", dwChunkSize, sizeof(FAudioWaveFormatExtensible)); - } - ReadChunkData(hFile, wfx, dwChunkSize, dwChunkPosition ); - - /* Locate the 'data' chunk, and read its contents into a buffer. */ - FindChunk(hFile, fourccDATA, &dwChunkSize, &dwChunkPosition); - uint8_t *pDataBuffer = (uint8_t *) malloc(dwChunkSize); - ReadChunkData(hFile, pDataBuffer, dwChunkSize, dwChunkPosition); - - printf("data chunk size: %u\n", dwChunkSize); - buffer.AudioBytes = dwChunkSize; //buffer containing audio data - buffer.pAudioData = pDataBuffer; //size of the audio buffer in bytes - buffer.Flags = FAUDIO_END_OF_STREAM; // tell the source voice not to expect any data after this buffer - - /* Locate the 'dpds' chunk, and read its contents into a buffer. */ - if (FindChunk(hFile, fourccDPDS, &dwChunkSize, &dwChunkPosition) == 0) - { - uint32_t *cumulBytes = (uint32_t *) malloc(dwChunkSize); - ReadChunkData(hFile, cumulBytes, dwChunkSize, dwChunkPosition); - - buffer_wma.pDecodedPacketCumulativeBytes = cumulBytes; - buffer_wma.PacketCount = dwChunkSize / sizeof(uint32_t); - } - - fclose(hFile); - - return 0; -} - -void faudio_setup() { - uint32_t hr = FAudioCreate(&faudio, 0, FAUDIO_DEFAULT_PROCESSOR); - if (hr != 0) { - return; - } - - hr = FAudio_CreateMasteringVoice(faudio, &mastering_voice, 2, 44100, 0, 0, NULL); - if (hr != 0) { - return; - } - - hr = FAudio_CreateSourceVoice( - faudio, - &source_voice, - (FAudioWaveFormatEx *) wfx, - FAUDIO_VOICE_USEFILTER, - FAUDIO_MAX_FREQ_RATIO, - NULL, NULL, NULL - ); -} - -void play(void) { - - buffer.PlayBegin = argPlayBegin * wfx->Format.nSamplesPerSec; - buffer.PlayLength = argPlayLength * wfx->Format.nSamplesPerSec; - - buffer.LoopBegin = argLoopBegin * wfx->Format.nSamplesPerSec; - buffer.LoopLength = argLoopLength * wfx->Format.nSamplesPerSec; - buffer.LoopCount = argLoopCount; - - if (buffer_wma.pDecodedPacketCumulativeBytes != NULL) - FAudioSourceVoice_SubmitSourceBuffer(source_voice, &buffer, &buffer_wma); - else - FAudioSourceVoice_SubmitSourceBuffer(source_voice, &buffer, NULL); - - uint32_t hr = FAudioSourceVoice_Start(source_voice, 0, FAUDIO_COMMIT_NOW); - - int is_running = 1; - while (hr == 0 && is_running) { - FAudioVoiceState state; - FAudioSourceVoice_GetState(source_voice, &state, 0); - is_running = (state.BuffersQueued > 0) != 0; - SDL_Delay(10); - } - - FAudioVoice_DestroyVoice(source_voice); - - /* free allocated space for FAudioWafeFormatExtensible */ - free(wfx); -} - -int main(int argc, char *argv[]) { - - /* process command line arguments. This is just a test program, didn't go too nuts with validation. */ - if (argc < 2 || (argc > 4 && argc != 7)) { - printf("Usage: %s filename [PlayBegin] [PlayLength] [LoopBegin LoopLength LoopCount]\n", argv[0]); - printf(" - filename (required): can be either a WAV or xWMA audio file.\n"); - printf(" - PlayBegin (optional): start playing at this offset. (in seconds)\n"); - printf(" - PlayLength (optional): duration of the region to be played. (in seconds)\n"); - printf(" - LoopBegin (optional): start looping at this offset. (in seconds)\n"); - printf(" - LoopLength (optional): duration of the loop (in seconds)\n"); - printf(" - LoopCount (optional): number of times to loop\n"); - return -1; - } - - switch (argc) - { - case 7: - sscanf(argv[6], "%d", &argLoopCount); - sscanf(argv[5], "%f", &argLoopLength); - sscanf(argv[4], "%f", &argLoopBegin); - - case 4: - sscanf(argv[3], "%f", &argPlayLength); - - case 3: - sscanf(argv[2], "%f", &argPlayBegin); - } - - if (load_data(argv[1]) != 0) - { - printf("Error loading data\n"); - return -1; - } - - faudio_setup(); - play(); - - return 0; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/FAudioUI_main.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/FAudioUI_main.cpp deleted file mode 100644 index 0592572d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/FAudioUI_main.cpp +++ /dev/null @@ -1,298 +0,0 @@ -/* FAudio - XAudio Reimplementation for FNA - * - * Copyright (c) 2011-2022 Ethan Lee, Luigi Auriemma, and the MonoGame Team - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* Unless you're trying to do SDL/OpenGL work, you probably don't want this! - * Go to the other folders to look at the actual tools. - * -flibit - */ - -#include -#include -#include "imgui.h" - -/* Defined by the tools using this UI framework */ - -extern const char* TOOL_NAME; -extern int TOOL_WIDTH; -extern int TOOL_HEIGHT; -extern void FAudioTool_Init(); -extern void FAudioTool_Update(); -extern void FAudioTool_Quit(); - -/* ImGui Callbacks */ - -static void RenderDrawLists(ImDrawData *draw_data) -{ - ImGuiIO& io = ImGui::GetIO(); - SDL_Renderer *renderer = (SDL_Renderer*) io.BackendRendererUserData; - SDL_Rect rect; - - /* Set up viewport/scissor rects (based on display size/scale */ - rect.x = 0; - rect.y = 0; - rect.w = (int) (io.DisplaySize.x * io.DisplayFramebufferScale.x); - rect.h = (int) (io.DisplaySize.y * io.DisplayFramebufferScale.y); - if (rect.w == 0 || rect.h == 0) - { - /* No point in rendering to nowhere... */ - return; - } - draw_data->ScaleClipRects(io.DisplayFramebufferScale); - SDL_RenderSetViewport(renderer, &rect); - - /* Submit draw commands */ - #define OFFSETOF(TYPE, ELEMENT) ((size_t) &(((TYPE*) NULL)->ELEMENT)) - for (int cmd_l = 0; cmd_l < draw_data->CmdListsCount; cmd_l += 1) - { - const ImDrawList* cmd_list = draw_data->CmdLists[cmd_l]; - const ImDrawVert* vtx_buffer = cmd_list->VtxBuffer.Data; - const ImDrawIdx* idx_buffer = cmd_list->IdxBuffer.Data; - - for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i += 1) - { - const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i]; - const char *vtx = (const char*) (vtx_buffer + pcmd->VtxOffset); - const char *xy = vtx + OFFSETOF(ImDrawVert, pos); - const char *uv = vtx + OFFSETOF(ImDrawVert, uv); - const char *cl = vtx + OFFSETOF(ImDrawVert, col); - - rect.x = (int) pcmd->ClipRect.x; - rect.y = (int) pcmd->ClipRect.y; - rect.w = (int) (pcmd->ClipRect.z - pcmd->ClipRect.x); - rect.h = (int) (pcmd->ClipRect.w - pcmd->ClipRect.y); - SDL_RenderSetClipRect(renderer, &rect); - - SDL_RenderGeometryRaw( - renderer, - (SDL_Texture*) pcmd->TextureId, - (const float*) xy, - (int) sizeof(ImDrawVert), - (const SDL_Color*) cl, - (int) sizeof(ImDrawVert), - (const float*) uv, - (int) sizeof(ImDrawVert), - cmd_list->VtxBuffer.Size - pcmd->VtxOffset, - idx_buffer + pcmd->IdxOffset, - pcmd->ElemCount, - sizeof(ImDrawIdx) - ); - } - } - #undef OFFSETOF -} - -static const char* GetClipboardText(void* userdata) -{ - return SDL_GetClipboardText(); -} - -static void SetClipboardText(void* userdata, const char *text) -{ - SDL_SetClipboardText(text); -} - -/* Entry Point */ - -int main(int argc, char **argv) -{ - /* Basic stuff */ - SDL_Window *window; - SDL_Renderer *renderer; - SDL_Event evt; - uint8_t run = 1; - - /* ImGui interop */ - ImGuiContext *imContext; - SDL_Keymod kmod; - uint8_t mouseClicked[3]; - int8_t mouseWheel; - int mx, my; - uint32_t mouseState; - int ww, wh, dw, dh; - Uint32 tCur, tLast = 0; - - /* ImGui texture */ - unsigned char *pixels; - int tw, th; - SDL_Texture *fontTexture; - - /* Create window/context */ - SDL_Init(SDL_INIT_VIDEO); - window = SDL_CreateWindow( - TOOL_NAME, - SDL_WINDOWPOS_CENTERED, - SDL_WINDOWPOS_CENTERED, - TOOL_WIDTH, - TOOL_HEIGHT, - SDL_WINDOW_RESIZABLE | SDL_WINDOW_ALLOW_HIGHDPI - ); - renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_PRESENTVSYNC); - SDL_SetRenderDrawColor(renderer, 114, 144, 154, 255); - - /* ImGui setup */ - imContext = ImGui::CreateContext(NULL); - ImGui::SetCurrentContext(imContext); - ImGuiIO& io = ImGui::GetIO(); - io.BackendRendererUserData = (void*) renderer; - - /* Keyboard */ - io.KeyMap[ImGuiKey_Tab] = SDLK_TAB; - io.KeyMap[ImGuiKey_LeftArrow] = SDL_SCANCODE_LEFT; - io.KeyMap[ImGuiKey_RightArrow] = SDL_SCANCODE_RIGHT; - io.KeyMap[ImGuiKey_UpArrow] = SDL_SCANCODE_UP; - io.KeyMap[ImGuiKey_DownArrow] = SDL_SCANCODE_DOWN; - io.KeyMap[ImGuiKey_PageUp] = SDL_SCANCODE_PAGEUP; - io.KeyMap[ImGuiKey_PageDown] = SDL_SCANCODE_PAGEDOWN; - io.KeyMap[ImGuiKey_Home] = SDL_SCANCODE_HOME; - io.KeyMap[ImGuiKey_End] = SDL_SCANCODE_END; - io.KeyMap[ImGuiKey_Delete] = SDLK_DELETE; - io.KeyMap[ImGuiKey_Backspace] = SDLK_BACKSPACE; - io.KeyMap[ImGuiKey_Enter] = SDLK_RETURN; - io.KeyMap[ImGuiKey_Escape] = SDLK_ESCAPE; - io.KeyMap[ImGuiKey_A] = SDLK_a; - io.KeyMap[ImGuiKey_C] = SDLK_c; - io.KeyMap[ImGuiKey_V] = SDLK_v; - io.KeyMap[ImGuiKey_X] = SDLK_x; - io.KeyMap[ImGuiKey_Y] = SDLK_y; - io.KeyMap[ImGuiKey_Z] = SDLK_z; - - /* Callbacks */ - io.RenderDrawListsFn = RenderDrawLists; - io.GetClipboardTextFn = GetClipboardText; - io.SetClipboardTextFn = SetClipboardText; - - /* Create texture for text rendering */ - io.Fonts->GetTexDataAsRGBA32(&pixels, &tw, &th); - fontTexture = SDL_CreateTexture( - renderer, - SDL_PIXELFORMAT_RGBA32, /* FIXME: GL_ALPHA? */ - SDL_TEXTUREACCESS_STATIC, - tw, - th - ); - SDL_UpdateTexture(fontTexture, NULL, pixels, 4 * tw); - SDL_SetTextureBlendMode(fontTexture, SDL_BLENDMODE_BLEND); - io.Fonts->TexID = (void*) fontTexture; - - while (run) - { - while (SDL_PollEvent(&evt) == 1) - { - if (evt.type == SDL_QUIT) - { - run = 0; - } - else if ( evt.type == SDL_KEYDOWN || - evt.type == SDL_KEYUP ) - { - kmod = SDL_GetModState(); - io.KeysDown[ - evt.key.keysym.sym & ~SDLK_SCANCODE_MASK - ] = evt.type == SDL_KEYDOWN; - io.KeyShift = (kmod & KMOD_SHIFT) != 0; - io.KeyCtrl = (kmod & KMOD_CTRL) != 0; - io.KeyAlt = (kmod & KMOD_ALT) != 0; - io.KeySuper = (kmod & KMOD_GUI) != 0; - } - else if (evt.type == SDL_MOUSEBUTTONDOWN) - { - if (evt.button.button < 4) - { - mouseClicked[evt.button.button - 1] = 1; - } - } - else if (evt.type == SDL_MOUSEWHEEL) - { - if (evt.wheel.y > 0) mouseWheel = 1; - if (evt.wheel.y < 0) mouseWheel = -1; - } - else if (evt.type == SDL_TEXTINPUT) - { - io.AddInputCharactersUTF8(evt.text.text); - } - } - - /* SDL-related updates */ - SDL_GetWindowSize(window, &ww, &wh); - SDL_GL_GetDrawableSize(window, &dw, &dh); - mouseState = SDL_GetMouseState(&mx, &my); /* TODO: Focus */ - mouseClicked[0] |= (mouseState * SDL_BUTTON(SDL_BUTTON_LEFT)) != 0; - mouseClicked[1] |= (mouseState * SDL_BUTTON(SDL_BUTTON_MIDDLE)) != 0; - mouseClicked[2] |= (mouseState * SDL_BUTTON(SDL_BUTTON_RIGHT)) != 0; - tCur = SDL_GetTicks(); - - /* Set these every frame, we have a resizable window! */ - io.DisplaySize = ImVec2((float) ww, (float) wh); - io.DisplayFramebufferScale = ImVec2( - ww > 0 ? ((float) dw / ww) : 0, - wh > 0 ? ((float) dh / wh) : 0 - ); - - /* Time update */ - io.DeltaTime = (tCur - tLast) / 1000.0f; - if (io.DeltaTime == 0.0f) - { - io.DeltaTime = 0.01f; - } - - /* Input updates not done via UI_Submit*() */ - io.MousePos = ImVec2((float) mx, (float) my); - io.MouseDown[0] = mouseClicked[0]; - io.MouseDown[1] = mouseClicked[1]; - io.MouseDown[2] = mouseClicked[2]; - io.MouseWheel = mouseWheel; - - /* BEGIN */ - ImGui::NewFrame(); - - /* Reset some things now that input's updated */ - SDL_ShowCursor(io.MouseDrawCursor ? 0 : 1); - tLast = tCur; - mouseClicked[0] = 0; - mouseClicked[1] = 0; - mouseClicked[2] = 0; - mouseWheel = 0; - - /* The actual meat of the audition tool */ - FAudioTool_Update(); - - /* Draw, draw, draw! */ - SDL_RenderClear(renderer); - ImGui::Render(); - SDL_RenderPresent(renderer); - } - - /* Clean up if we need to */ - FAudioTool_Quit(); - - /* Clean up. We out. */ - ImGui::DestroyContext(imContext); - SDL_DestroyTexture(fontTexture); - SDL_DestroyRenderer(renderer); - SDL_DestroyWindow(window); - SDL_Quit(); - return 0; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imconfig.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imconfig.h deleted file mode 100644 index c6817de7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imconfig.h +++ /dev/null @@ -1,108 +0,0 @@ -//----------------------------------------------------------------------------- -// COMPILE-TIME OPTIONS FOR DEAR IMGUI -// Runtime options (clipboard callbacks, enabling various features, etc.) can generally be set via the ImGuiIO structure. -// You can use ImGui::SetAllocatorFunctions() before calling ImGui::CreateContext() to rewire memory allocation functions. -//----------------------------------------------------------------------------- -// A) You may edit imconfig.h (and not overwrite it when updating Dear ImGui, or maintain a patch/branch with your modifications to imconfig.h) -// B) or add configuration directives in your own file and compile with #define IMGUI_USER_CONFIG "myfilename.h" -// If you do so you need to make sure that configuration settings are defined consistently _everywhere_ Dear ImGui is used, which include -// the imgui*.cpp files but also _any_ of your code that uses Dear ImGui. This is because some compile-time options have an affect on data structures. -// Defining those options in imconfig.h will ensure every compilation unit gets to see the same data structure layouts. -// Call IMGUI_CHECKVERSION() from your .cpp files to verify that the data structures your files are using are matching the ones imgui.cpp is using. -//----------------------------------------------------------------------------- - -#pragma once - -//---- Define assertion handler. Defaults to calling assert(). -// If your macro uses multiple statements, make sure is enclosed in a 'do { .. } while (0)' block so it can be used as a single statement. -//#define IM_ASSERT(_EXPR) MyAssert(_EXPR) -//#define IM_ASSERT(_EXPR) ((void)(_EXPR)) // Disable asserts - -//---- Define attributes of all API symbols declarations, e.g. for DLL under Windows -// Using dear imgui via a shared library is not recommended, because of function call overhead and because we don't guarantee backward nor forward ABI compatibility. -//#define IMGUI_API __declspec( dllexport ) -//#define IMGUI_API __declspec( dllimport ) - -//---- Don't define obsolete functions/enums/behaviors. Consider enabling from time to time after updating to avoid using soon-to-be obsolete function/names. -//#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS - -//---- Disable all of Dear ImGui or don't implement standard windows. -// It is very strongly recommended to NOT disable the demo windows during development. Please read comments in imgui_demo.cpp. -//#define IMGUI_DISABLE // Disable everything: all headers and source files will be empty. -//#define IMGUI_DISABLE_DEMO_WINDOWS // Disable demo windows: ShowDemoWindow()/ShowStyleEditor() will be empty. Not recommended. -//#define IMGUI_DISABLE_METRICS_WINDOW // Disable debug/metrics window: ShowMetricsWindow() will be empty. - -//---- Don't implement some functions to reduce linkage requirements. -//#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS // [Win32] Don't implement default clipboard handler. Won't use and link with OpenClipboard/GetClipboardData/CloseClipboard etc. -//#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS // [Win32] Don't implement default IME handler. Won't use and link with ImmGetContext/ImmSetCompositionWindow. -//#define IMGUI_DISABLE_WIN32_FUNCTIONS // [Win32] Won't use and link with any Win32 function (clipboard, ime). -//#define IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS // [OSX] Implement default OSX clipboard handler (need to link with '-framework ApplicationServices', this is why this is not the default). -//#define IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS // Don't implement ImFormatString/ImFormatStringV so you can implement them yourself (e.g. if you don't want to link with vsnprintf) -//#define IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS // Don't implement ImFabs/ImSqrt/ImPow/ImFmod/ImCos/ImSin/ImAcos/ImAtan2 so you can implement them yourself. -//#define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS // Don't implement ImFileOpen/ImFileClose/ImFileRead/ImFileWrite so you can implement them yourself if you don't want to link with fopen/fclose/fread/fwrite. This will also disable the LogToTTY() function. -//#define IMGUI_DISABLE_DEFAULT_ALLOCATORS // Don't implement default allocators calling malloc()/free() to avoid linking with them. You will need to call ImGui::SetAllocatorFunctions(). - -//---- Include imgui_user.h at the end of imgui.h as a convenience -//#define IMGUI_INCLUDE_IMGUI_USER_H - -//---- Pack colors to BGRA8 instead of RGBA8 (to avoid converting from one to another) -//#define IMGUI_USE_BGRA_PACKED_COLOR - -//---- Use 32-bit for ImWchar (default is 16-bit) to support full unicode code points. -//#define IMGUI_USE_WCHAR32 - -//---- Avoid multiple STB libraries implementations, or redefine path/filenames to prioritize another version -// By default the embedded implementations are declared static and not available outside of imgui cpp files. -//#define IMGUI_STB_TRUETYPE_FILENAME "my_folder/stb_truetype.h" -//#define IMGUI_STB_RECT_PACK_FILENAME "my_folder/stb_rect_pack.h" -//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION -//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION - -//---- Unless IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS is defined, use the much faster STB sprintf library implementation of vsnprintf instead of the one from the default C library. -// Note that stb_sprintf.h is meant to be provided by the user and available in the include path at compile time. Also, the compatibility checks of the arguments and formats done by clang and GCC will be disabled in order to support the extra formats provided by STB sprintf. -// #define IMGUI_USE_STB_SPRINTF - -//---- Define constructor and implicit cast operators to convert back<>forth between your math types and ImVec2/ImVec4. -// This will be inlined as part of ImVec2 and ImVec4 class declarations. -/* -#define IM_VEC2_CLASS_EXTRA \ - ImVec2(const MyVec2& f) { x = f.x; y = f.y; } \ - operator MyVec2() const { return MyVec2(x,y); } - -#define IM_VEC4_CLASS_EXTRA \ - ImVec4(const MyVec4& f) { x = f.x; y = f.y; z = f.z; w = f.w; } \ - operator MyVec4() const { return MyVec4(x,y,z,w); } -*/ - -//---- Use 32-bit vertex indices (default is 16-bit) is one way to allow large meshes with more than 64K vertices. -// Your renderer back-end will need to support it (most example renderer back-ends support both 16/32-bit indices). -// Another way to allow large meshes while keeping 16-bit indices is to handle ImDrawCmd::VtxOffset in your renderer. -// Read about ImGuiBackendFlags_RendererHasVtxOffset for details. -//#define ImDrawIdx unsigned int - -//---- Override ImDrawCallback signature (will need to modify renderer back-ends accordingly) -//struct ImDrawList; -//struct ImDrawCmd; -//typedef void (*MyImDrawCallback)(const ImDrawList* draw_list, const ImDrawCmd* cmd, void* my_renderer_user_data); -//#define ImDrawCallback MyImDrawCallback - -//---- Debug Tools: Macro to break in Debugger -// (use 'Metrics->Tools->Item Picker' to pick widgets with the mouse and break into them for easy debugging.) -//#define IM_DEBUG_BREAK IM_ASSERT(0) -//#define IM_DEBUG_BREAK __debugbreak() - -//---- Debug Tools: Have the Item Picker break in the ItemAdd() function instead of ItemHoverable(), -// (which comes earlier in the code, will catch a few extra items, allow picking items other than Hovered one.) -// This adds a small runtime cost which is why it is not enabled by default. -//#define IMGUI_DEBUG_TOOL_ITEM_PICKER_EX - -//---- Debug Tools: Enable slower asserts -//#define IMGUI_DEBUG_PARANOID - -//---- Tip: You can add extra functions within the ImGui:: namespace, here or in your own headers files. -/* -namespace ImGui -{ - void MyFunction(const char* name, const MyMatrix44& v); -} -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui.cpp deleted file mode 100644 index b57bb195..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui.cpp +++ /dev/null @@ -1,10419 +0,0 @@ -// dear imgui, v1.76 -// (main code and documentation) - -// Help: -// - Read FAQ at http://dearimgui.org/faq -// - Newcomers, read 'Programmer guide' below for notes on how to setup Dear ImGui in your codebase. -// - Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code. All applications in examples/ are doing that. -// Read imgui.cpp for details, links and comments. - -// Resources: -// - FAQ http://dearimgui.org/faq -// - Homepage & latest https://github.com/ocornut/imgui -// - Releases & changelog https://github.com/ocornut/imgui/releases -// - Gallery https://github.com/ocornut/imgui/issues/3075 (please post your screenshots/video there!) -// - Glossary https://github.com/ocornut/imgui/wiki/Glossary -// - Wiki https://github.com/ocornut/imgui/wiki -// - Issues & support https://github.com/ocornut/imgui/issues - -// Developed by Omar Cornut and every direct or indirect contributors to the GitHub. -// See LICENSE.txt for copyright and licensing details (standard MIT License). -// This library is free but I need your support to sustain development and maintenance. -// Businesses: you can support continued development via invoiced technical support, maintenance and sponsoring contracts. Please reach out to "contact AT dearimgui.org". -// Individuals: you can support continued development via donations. See docs/README or web page. - -// It is recommended that you don't modify imgui.cpp! It will become difficult for you to update the library. -// Note that 'ImGui::' being a namespace, you can add functions into the namespace from your own source files, without -// modifying imgui.h or imgui.cpp. You may include imgui_internal.h to access internal data structures, but it doesn't -// come with any guarantee of forward compatibility. Discussing your changes on the GitHub Issue Tracker may lead you -// to a better solution or official support for them. - -/* - -Index of this file: - -DOCUMENTATION - -- MISSION STATEMENT -- END-USER GUIDE -- PROGRAMMER GUIDE - - READ FIRST - - HOW TO UPDATE TO A NEWER VERSION OF DEAR IMGUI - - GETTING STARTED WITH INTEGRATING DEAR IMGUI IN YOUR CODE/ENGINE - - HOW A SIMPLE APPLICATION MAY LOOK LIKE - - HOW A SIMPLE RENDERING FUNCTION MAY LOOK LIKE - - USING GAMEPAD/KEYBOARD NAVIGATION CONTROLS -- API BREAKING CHANGES (read me when you update!) -- FREQUENTLY ASKED QUESTIONS (FAQ) - - Read all answers online: https://www.dearimgui.org/faq, or in docs/FAQ.md (with a Markdown viewer) - -CODE -(search for "[SECTION]" in the code to find them) - -// [SECTION] INCLUDES -// [SECTION] FORWARD DECLARATIONS -// [SECTION] CONTEXT AND MEMORY ALLOCATORS -// [SECTION] USER FACING STRUCTURES (ImGuiStyle, ImGuiIO) -// [SECTION] MISC HELPERS/UTILITIES (Geometry functions) -// [SECTION] MISC HELPERS/UTILITIES (String, Format, Hash functions) -// [SECTION] MISC HELPERS/UTILITIES (File functions) -// [SECTION] MISC HELPERS/UTILITIES (ImText* functions) -// [SECTION] MISC HELPERS/UTILITIES (Color functions) -// [SECTION] ImGuiStorage -// [SECTION] ImGuiTextFilter -// [SECTION] ImGuiTextBuffer -// [SECTION] ImGuiListClipper -// [SECTION] STYLING -// [SECTION] RENDER HELPERS -// [SECTION] MAIN CODE (most of the code! lots of stuff, needs tidying up!) -// [SECTION] ERROR CHECKING -// [SECTION] LAYOUT -// [SECTION] SCROLLING -// [SECTION] TOOLTIPS -// [SECTION] POPUPS -// [SECTION] KEYBOARD/GAMEPAD NAVIGATION -// [SECTION] DRAG AND DROP -// [SECTION] LOGGING/CAPTURING -// [SECTION] SETTINGS -// [SECTION] PLATFORM DEPENDENT HELPERS -// [SECTION] METRICS/DEBUG WINDOW - -*/ - -//----------------------------------------------------------------------------- -// DOCUMENTATION -//----------------------------------------------------------------------------- - -/* - - MISSION STATEMENT - ================= - - - Easy to use to create code-driven and data-driven tools. - - Easy to use to create ad hoc short-lived tools and long-lived, more elaborate tools. - - Easy to hack and improve. - - Minimize screen real-estate usage. - - Minimize setup and maintenance. - - Minimize state storage on user side. - - Portable, minimize dependencies, run on target (consoles, phones, etc.). - - Efficient runtime and memory consumption (NB- we do allocate when "growing" content e.g. creating a window,. - opening a tree node for the first time, etc. but a typical frame should not allocate anything). - - Designed for developers and content-creators, not the typical end-user! Some of the weaknesses includes: - - Doesn't look fancy, doesn't animate. - - Limited layout features, intricate layouts are typically crafted in code. - - - END-USER GUIDE - ============== - - - Double-click on title bar to collapse window. - - Click upper right corner to close a window, available when 'bool* p_open' is passed to ImGui::Begin(). - - Click and drag on lower right corner to resize window (double-click to auto fit window to its contents). - - Click and drag on any empty space to move window. - - TAB/SHIFT+TAB to cycle through keyboard editable fields. - - CTRL+Click on a slider or drag box to input value as text. - - Use mouse wheel to scroll. - - Text editor: - - Hold SHIFT or use mouse to select text. - - CTRL+Left/Right to word jump. - - CTRL+Shift+Left/Right to select words. - - CTRL+A our Double-Click to select all. - - CTRL+X,CTRL+C,CTRL+V to use OS clipboard/ - - CTRL+Z,CTRL+Y to undo/redo. - - ESCAPE to revert text to its original value. - - You can apply arithmetic operators +,*,/ on numerical values. Use +- to subtract (because - would set a negative value!) - - Controls are automatically adjusted for OSX to match standard OSX text editing operations. - - General Keyboard controls: enable with ImGuiConfigFlags_NavEnableKeyboard. - - General Gamepad controls: enable with ImGuiConfigFlags_NavEnableGamepad. See suggested mappings in imgui.h ImGuiNavInput_ + download PNG/PSD at http://goo.gl/9LgVZW - - - PROGRAMMER GUIDE - ================ - - READ FIRST - ---------- - - Remember to read the FAQ (https://www.dearimgui.org/faq) - - Your code creates the UI, if your code doesn't run the UI is gone! The UI can be highly dynamic, there are no construction - or destruction steps, less superfluous data retention on your side, less state duplication, less state synchronization, less bugs. - - Call and read ImGui::ShowDemoWindow() for demo code demonstrating most features. - - The library is designed to be built from sources. Avoid pre-compiled binaries and packaged versions. See imconfig.h to configure your build. - - Dear ImGui is an implementation of the IMGUI paradigm (immediate-mode graphical user interface, a term coined by Casey Muratori). - You can learn about IMGUI principles at http://www.johno.se/book/imgui.html, http://mollyrocket.com/861 & more links in the FAQ. - - Dear ImGui is a "single pass" rasterizing implementation of the IMGUI paradigm, aimed at ease of use and high-performances. - For every application frame your UI code will be called only once. This is in contrast to e.g. Unity's own implementation of an IMGUI, - where the UI code is called multiple times ("multiple passes") from a single entry point. There are pros and cons to both approaches. - - Our origin are on the top-left. In axis aligned bounding boxes, Min = top-left, Max = bottom-right. - - This codebase is also optimized to yield decent performances with typical "Debug" builds settings. - - Please make sure you have asserts enabled (IM_ASSERT redirects to assert() by default, but can be redirected). - If you get an assert, read the messages and comments around the assert. - - C++: this is a very C-ish codebase: we don't rely on C++11, we don't include any C++ headers, and ImGui:: is a namespace. - - C++: ImVec2/ImVec4 do not expose math operators by default, because it is expected that you use your own math types. - See FAQ "How can I use my own math types instead of ImVec2/ImVec4?" for details about setting up imconfig.h for that. - However, imgui_internal.h can optionally export math operators for ImVec2/ImVec4, which we use in this codebase. - - C++: pay attention that ImVector<> manipulates plain-old-data and does not honor construction/destruction (avoid using it in your code!). - - - HOW TO UPDATE TO A NEWER VERSION OF DEAR IMGUI - ---------------------------------------------- - - Overwrite all the sources files except for imconfig.h (if you have made modification to your copy of imconfig.h) - - Or maintain your own branch where you have imconfig.h modified. - - Read the "API BREAKING CHANGES" section (below). This is where we list occasional API breaking changes. - If a function/type has been renamed / or marked obsolete, try to fix the name in your code before it is permanently removed - from the public API. If you have a problem with a missing function/symbols, search for its name in the code, there will - likely be a comment about it. Please report any issue to the GitHub page! - - Try to keep your copy of dear imgui reasonably up to date. - - - GETTING STARTED WITH INTEGRATING DEAR IMGUI IN YOUR CODE/ENGINE - --------------------------------------------------------------- - - Run and study the examples and demo in imgui_demo.cpp to get acquainted with the library. - - In the majority of cases you should be able to use unmodified back-ends files available in the examples/ folder. - - Add the Dear ImGui source files to your projects or using your preferred build system. - It is recommended you build and statically link the .cpp files as part of your project and NOT as shared library (DLL). - - You can later customize the imconfig.h file to tweak some compile-time behavior, such as integrating Dear ImGui types with your own maths types. - - When using Dear ImGui, your programming IDE is your friend: follow the declaration of variables, functions and types to find comments about them. - - Dear ImGui never touches or knows about your GPU state. The only function that knows about GPU is the draw function that you provide. - Effectively it means you can create widgets at any time in your code, regardless of considerations of being in "update" vs "render" - phases of your own application. All rendering information are stored into command-lists that you will retrieve after calling ImGui::Render(). - - Refer to the bindings and demo applications in the examples/ folder for instruction on how to setup your code. - - If you are running over a standard OS with a common graphics API, you should be able to use unmodified imgui_impl_*** files from the examples/ folder. - - - HOW A SIMPLE APPLICATION MAY LOOK LIKE - -------------------------------------- - EXHIBIT 1: USING THE EXAMPLE BINDINGS (= imgui_impl_XXX.cpp files from the examples/ folder). - The sub-folders in examples/ contains examples applications following this structure. - - // Application init: create a dear imgui context, setup some options, load fonts - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); - // TODO: Set optional io.ConfigFlags values, e.g. 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard' to enable keyboard controls. - // TODO: Fill optional fields of the io structure later. - // TODO: Load TTF/OTF fonts if you don't want to use the default font. - - // Initialize helper Platform and Renderer bindings (here we are using imgui_impl_win32.cpp and imgui_impl_dx11.cpp) - ImGui_ImplWin32_Init(hwnd); - ImGui_ImplDX11_Init(g_pd3dDevice, g_pd3dDeviceContext); - - // Application main loop - while (true) - { - // Feed inputs to dear imgui, start new frame - ImGui_ImplDX11_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); - - // Any application code here - ImGui::Text("Hello, world!"); - - // Render dear imgui into screen - ImGui::Render(); - ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); - g_pSwapChain->Present(1, 0); - } - - // Shutdown - ImGui_ImplDX11_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); - - EXHIBIT 2: IMPLEMENTING CUSTOM BINDING / CUSTOM ENGINE - - // Application init: create a dear imgui context, setup some options, load fonts - ImGui::CreateContext(); - ImGuiIO& io = ImGui::GetIO(); - // TODO: Set optional io.ConfigFlags values, e.g. 'io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard' to enable keyboard controls. - // TODO: Fill optional fields of the io structure later. - // TODO: Load TTF/OTF fonts if you don't want to use the default font. - - // Build and load the texture atlas into a texture - // (In the examples/ app this is usually done within the ImGui_ImplXXX_Init() function from one of the demo Renderer) - int width, height; - unsigned char* pixels = NULL; - io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); - - // At this point you've got the texture data and you need to upload that your your graphic system: - // After we have created the texture, store its pointer/identifier (_in whichever format your engine uses_) in 'io.Fonts->TexID'. - // This will be passed back to your via the renderer. Basically ImTextureID == void*. Read FAQ for details about ImTextureID. - MyTexture* texture = MyEngine::CreateTextureFromMemoryPixels(pixels, width, height, TEXTURE_TYPE_RGBA32) - io.Fonts->TexID = (void*)texture; - - // Application main loop - while (true) - { - // Setup low-level inputs, e.g. on Win32: calling GetKeyboardState(), or write to those fields from your Windows message handlers, etc. - // (In the examples/ app this is usually done within the ImGui_ImplXXX_NewFrame() function from one of the demo Platform bindings) - io.DeltaTime = 1.0f/60.0f; // set the time elapsed since the previous frame (in seconds) - io.DisplaySize.x = 1920.0f; // set the current display width - io.DisplaySize.y = 1280.0f; // set the current display height here - io.MousePos = my_mouse_pos; // set the mouse position - io.MouseDown[0] = my_mouse_buttons[0]; // set the mouse button states - io.MouseDown[1] = my_mouse_buttons[1]; - - // Call NewFrame(), after this point you can use ImGui::* functions anytime - // (So you want to try calling NewFrame() as early as you can in your mainloop to be able to use Dear ImGui everywhere) - ImGui::NewFrame(); - - // Most of your application code here - ImGui::Text("Hello, world!"); - MyGameUpdate(); // may use any Dear ImGui functions, e.g. ImGui::Begin("My window"); ImGui::Text("Hello, world!"); ImGui::End(); - MyGameRender(); // may use any Dear ImGui functions as well! - - // Render dear imgui, swap buffers - // (You want to try calling EndFrame/Render as late as you can, to be able to use Dear ImGui in your own game rendering code) - ImGui::EndFrame(); - ImGui::Render(); - ImDrawData* draw_data = ImGui::GetDrawData(); - MyImGuiRenderFunction(draw_data); - SwapBuffers(); - } - - // Shutdown - ImGui::DestroyContext(); - - To decide whether to dispatch mouse/keyboard inputs to Dear ImGui to the rest your application, - you should read the 'io.WantCaptureMouse', 'io.WantCaptureKeyboard' and 'io.WantTextInput' flags! - Please read the FAQ and example applications for details about this! - - - HOW A SIMPLE RENDERING FUNCTION MAY LOOK LIKE - --------------------------------------------- - The bindings in impl_impl_XXX.cpp files contains many working implementations of a rendering function. - - void void MyImGuiRenderFunction(ImDrawData* draw_data) - { - // TODO: Setup render state: alpha-blending enabled, no face culling, no depth testing, scissor enabled - // TODO: Setup viewport covering draw_data->DisplayPos to draw_data->DisplayPos + draw_data->DisplaySize - // TODO: Setup orthographic projection matrix cover draw_data->DisplayPos to draw_data->DisplayPos + draw_data->DisplaySize - // TODO: Setup shader: vertex { float2 pos, float2 uv, u32 color }, fragment shader sample color from 1 texture, multiply by vertex color. - for (int n = 0; n < draw_data->CmdListsCount; n++) - { - const ImDrawList* cmd_list = draw_data->CmdLists[n]; - const ImDrawVert* vtx_buffer = cmd_list->VtxBuffer.Data; // vertex buffer generated by Dear ImGui - const ImDrawIdx* idx_buffer = cmd_list->IdxBuffer.Data; // index buffer generated by Dear ImGui - for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++) - { - const ImDrawCmd* pcmd = &cmd_list->CmdBuffer[cmd_i]; - if (pcmd->UserCallback) - { - pcmd->UserCallback(cmd_list, pcmd); - } - else - { - // The texture for the draw call is specified by pcmd->TextureId. - // The vast majority of draw calls will use the Dear ImGui texture atlas, which value you have set yourself during initialization. - MyEngineBindTexture((MyTexture*)pcmd->TextureId); - - // We are using scissoring to clip some objects. All low-level graphics API should supports it. - // - If your engine doesn't support scissoring yet, you may ignore this at first. You will get some small glitches - // (some elements visible outside their bounds) but you can fix that once everything else works! - // - Clipping coordinates are provided in imgui coordinates space (from draw_data->DisplayPos to draw_data->DisplayPos + draw_data->DisplaySize) - // In a single viewport application, draw_data->DisplayPos will always be (0,0) and draw_data->DisplaySize will always be == io.DisplaySize. - // However, in the interest of supporting multi-viewport applications in the future (see 'viewport' branch on github), - // always subtract draw_data->DisplayPos from clipping bounds to convert them to your viewport space. - // - Note that pcmd->ClipRect contains Min+Max bounds. Some graphics API may use Min+Max, other may use Min+Size (size being Max-Min) - ImVec2 pos = draw_data->DisplayPos; - MyEngineScissor((int)(pcmd->ClipRect.x - pos.x), (int)(pcmd->ClipRect.y - pos.y), (int)(pcmd->ClipRect.z - pos.x), (int)(pcmd->ClipRect.w - pos.y)); - - // Render 'pcmd->ElemCount/3' indexed triangles. - // By default the indices ImDrawIdx are 16-bit, you can change them to 32-bit in imconfig.h if your engine doesn't support 16-bit indices. - MyEngineDrawIndexedTriangles(pcmd->ElemCount, sizeof(ImDrawIdx) == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT, idx_buffer, vtx_buffer); - } - idx_buffer += pcmd->ElemCount; - } - } - } - - - USING GAMEPAD/KEYBOARD NAVIGATION CONTROLS - ------------------------------------------ - - The gamepad/keyboard navigation is fairly functional and keeps being improved. - - Gamepad support is particularly useful to use Dear ImGui on a console system (e.g. PS4, Switch, XB1) without a mouse! - - You can ask questions and report issues at https://github.com/ocornut/imgui/issues/787 - - The initial focus was to support game controllers, but keyboard is becoming increasingly and decently usable. - - Keyboard: - - Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. - NewFrame() will automatically fill io.NavInputs[] based on your io.KeysDown[] + io.KeyMap[] arrays. - - When keyboard navigation is active (io.NavActive + ImGuiConfigFlags_NavEnableKeyboard), the io.WantCaptureKeyboard flag - will be set. For more advanced uses, you may want to read from: - - io.NavActive: true when a window is focused and it doesn't have the ImGuiWindowFlags_NoNavInputs flag set. - - io.NavVisible: true when the navigation cursor is visible (and usually goes false when mouse is used). - - or query focus information with e.g. IsWindowFocused(ImGuiFocusedFlags_AnyWindow), IsItemFocused() etc. functions. - Please reach out if you think the game vs navigation input sharing could be improved. - - Gamepad: - - Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. - - Backend: Set io.BackendFlags |= ImGuiBackendFlags_HasGamepad + fill the io.NavInputs[] fields before calling NewFrame(). - Note that io.NavInputs[] is cleared by EndFrame(). - - See 'enum ImGuiNavInput_' in imgui.h for a description of inputs. For each entry of io.NavInputs[], set the following values: - 0.0f= not held. 1.0f= fully held. Pass intermediate 0.0f..1.0f values for analog triggers/sticks. - - We uses a simple >0.0f test for activation testing, and won't attempt to test for a dead-zone. - Your code will probably need to transform your raw inputs (such as e.g. remapping your 0.2..0.9 raw input range to 0.0..1.0 imgui range, etc.). - - You can download PNG/PSD files depicting the gamepad controls for common controllers at: http://goo.gl/9LgVZW. - - If you need to share inputs between your game and the imgui parts, the easiest approach is to go all-or-nothing, with a buttons combo - to toggle the target. Please reach out if you think the game vs navigation input sharing could be improved. - - Mouse: - - PS4 users: Consider emulating a mouse cursor with DualShock4 touch pad or a spare analog stick as a mouse-emulation fallback. - - Consoles/Tablet/Phone users: Consider using a Synergy 1.x server (on your PC) + uSynergy.c (on your console/tablet/phone app) to share your PC mouse/keyboard. - - On a TV/console system where readability may be lower or mouse inputs may be awkward, you may want to set the ImGuiConfigFlags_NavEnableSetMousePos flag. - Enabling ImGuiConfigFlags_NavEnableSetMousePos + ImGuiBackendFlags_HasSetMousePos instructs dear imgui to move your mouse cursor along with navigation movements. - When enabled, the NewFrame() function may alter 'io.MousePos' and set 'io.WantSetMousePos' to notify you that it wants the mouse cursor to be moved. - When that happens your back-end NEEDS to move the OS or underlying mouse cursor on the next frame. Some of the binding in examples/ do that. - (If you set the NavEnableSetMousePos flag but don't honor 'io.WantSetMousePos' properly, imgui will misbehave as it will see your mouse as moving back and forth!) - (In a setup when you may not have easy control over the mouse cursor, e.g. uSynergy.c doesn't expose moving remote mouse cursor, you may want - to set a boolean to ignore your other external mouse positions until the external source is moved again.) - - - API BREAKING CHANGES - ==================== - - Occasionally introducing changes that are breaking the API. We try to make the breakage minor and easy to fix. - Below is a change-log of API breaking changes only. If you are using one of the functions listed, expect to have to fix some code. - When you are not sure about a old symbol or function name, try using the Search/Find function of your IDE to look for comments or references in all imgui files. - You can read releases logs https://github.com/ocornut/imgui/releases for more details. - - - 2020/01/22 (1.75) - ImDrawList::AddCircle()/AddCircleFilled() functions don't accept negative radius any more. - - 2019/12/17 (1.75) - [undid this change in 1.76] made Columns() limited to 64 columns by asserting above that limit. While the current code technically supports it, future code may not so we're putting the restriction ahead. - - 2019/12/13 (1.75) - [imgui_internal.h] changed ImRect() default constructor initializes all fields to 0.0f instead of (FLT_MAX,FLT_MAX,-FLT_MAX,-FLT_MAX). If you used ImRect::Add() to create bounding boxes by adding multiple points into it, you may need to fix your initial value. - - 2019/12/08 (1.75) - removed redirecting functions/enums that were marked obsolete in 1.53 (December 2017): - - ShowTestWindow() -> use ShowDemoWindow() - - IsRootWindowFocused() -> use IsWindowFocused(ImGuiFocusedFlags_RootWindow) - - IsRootWindowOrAnyChildFocused() -> use IsWindowFocused(ImGuiFocusedFlags_RootAndChildWindows) - - SetNextWindowContentWidth(w) -> use SetNextWindowContentSize(ImVec2(w, 0.0f) - - GetItemsLineHeightWithSpacing() -> use GetFrameHeightWithSpacing() - - ImGuiCol_ChildWindowBg -> use ImGuiCol_ChildBg - - ImGuiStyleVar_ChildWindowRounding -> use ImGuiStyleVar_ChildRounding - - ImGuiTreeNodeFlags_AllowOverlapMode -> use ImGuiTreeNodeFlags_AllowItemOverlap - - IMGUI_DISABLE_TEST_WINDOWS -> use IMGUI_DISABLE_DEMO_WINDOWS - - 2019/12/08 (1.75) - obsoleted calling ImDrawList::PrimReserve() with a negative count (which was the vaguely documented and rarely if ever used). Instead we added an explicit PrimUnreserve() API. - - 2019/12/06 (1.75) - removed implicit default parameter to IsMouseDragging(int button = 0) to be consistent with other mouse functions (none of the other functions have it). - - 2019/11/21 (1.74) - ImFontAtlas::AddCustomRectRegular() now requires an ID larger than 0x110000 (instead of 0x10000) to conform with supporting Unicode planes 1-16 in a future update. ID below 0x110000 will now assert. - - 2019/11/19 (1.74) - renamed IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS to IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS for consistency. - - 2019/11/19 (1.74) - renamed IMGUI_DISABLE_MATH_FUNCTIONS to IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS for consistency. - - 2019/10/22 (1.74) - removed redirecting functions/enums that were marked obsolete in 1.52 (October 2017): - - Begin() [old 5 args version] -> use Begin() [3 args], use SetNextWindowSize() SetNextWindowBgAlpha() if needed - - IsRootWindowOrAnyChildHovered() -> use IsWindowHovered(ImGuiHoveredFlags_RootAndChildWindows) - - AlignFirstTextHeightToWidgets() -> use AlignTextToFramePadding() - - SetNextWindowPosCenter() -> use SetNextWindowPos() with a pivot of (0.5f, 0.5f) - - ImFont::Glyph -> use ImFontGlyph - - 2019/10/14 (1.74) - inputs: Fixed a miscalculation in the keyboard/mouse "typematic" repeat delay/rate calculation, used by keys and e.g. repeating mouse buttons as well as the GetKeyPressedAmount() function. - if you were using a non-default value for io.KeyRepeatRate (previous default was 0.250), you can add +io.KeyRepeatDelay to it to compensate for the fix. - The function was triggering on: 0.0 and (delay+rate*N) where (N>=1). Fixed formula responds to (N>=0). Effectively it made io.KeyRepeatRate behave like it was set to (io.KeyRepeatRate + io.KeyRepeatDelay). - If you never altered io.KeyRepeatRate nor used GetKeyPressedAmount() this won't affect you. - - 2019/07/15 (1.72) - removed TreeAdvanceToLabelPos() which is rarely used and only does SetCursorPosX(GetCursorPosX() + GetTreeNodeToLabelSpacing()). Kept redirection function (will obsolete). - - 2019/07/12 (1.72) - renamed ImFontAtlas::CustomRect to ImFontAtlasCustomRect. Kept redirection typedef (will obsolete). - - 2019/06/14 (1.72) - removed redirecting functions/enums names that were marked obsolete in 1.51 (June 2017): ImGuiCol_Column*, ImGuiSetCond_*, IsItemHoveredRect(), IsPosHoveringAnyWindow(), IsMouseHoveringAnyWindow(), IsMouseHoveringWindow(), IMGUI_ONCE_UPON_A_FRAME. Grep this log for details and new names, or see how they were implemented until 1.71. - - 2019/06/07 (1.71) - rendering of child window outer decorations (bg color, border, scrollbars) is now performed as part of the parent window. If you have - overlapping child windows in a same parent, and relied on their relative z-order to be mapped to their submission order, this will affect your rendering. - This optimization is disabled if the parent window has no visual output, because it appears to be the most common situation leading to the creation of overlapping child windows. - Please reach out if you are affected. - - 2019/05/13 (1.71) - renamed SetNextTreeNodeOpen() to SetNextItemOpen(). Kept inline redirection function (will obsolete). - - 2019/05/11 (1.71) - changed io.AddInputCharacter(unsigned short c) signature to io.AddInputCharacter(unsigned int c). - - 2019/04/29 (1.70) - improved ImDrawList thick strokes (>1.0f) preserving correct thickness up to 90 degrees angles (e.g. rectangles). If you have custom rendering using thick lines, they will appear thicker now. - - 2019/04/29 (1.70) - removed GetContentRegionAvailWidth(), use GetContentRegionAvail().x instead. Kept inline redirection function (will obsolete). - - 2019/03/04 (1.69) - renamed GetOverlayDrawList() to GetForegroundDrawList(). Kept redirection function (will obsolete). - - 2019/02/26 (1.69) - renamed ImGuiColorEditFlags_RGB/ImGuiColorEditFlags_HSV/ImGuiColorEditFlags_HEX to ImGuiColorEditFlags_DisplayRGB/ImGuiColorEditFlags_DisplayHSV/ImGuiColorEditFlags_DisplayHex. Kept redirection enums (will obsolete). - - 2019/02/14 (1.68) - made it illegal/assert when io.DisplayTime == 0.0f (with an exception for the first frame). If for some reason your time step calculation gives you a zero value, replace it with a dummy small value! - - 2019/02/01 (1.68) - removed io.DisplayVisibleMin/DisplayVisibleMax (which were marked obsolete and removed from viewport/docking branch already). - - 2019/01/06 (1.67) - renamed io.InputCharacters[], marked internal as was always intended. Please don't access directly, and use AddInputCharacter() instead! - - 2019/01/06 (1.67) - renamed ImFontAtlas::GlyphRangesBuilder to ImFontGlyphRangesBuilder. Kept redirection typedef (will obsolete). - - 2018/12/20 (1.67) - made it illegal to call Begin("") with an empty string. This somehow half-worked before but had various undesirable side-effects. - - 2018/12/10 (1.67) - renamed io.ConfigResizeWindowsFromEdges to io.ConfigWindowsResizeFromEdges as we are doing a large pass on configuration flags. - - 2018/10/12 (1.66) - renamed misc/stl/imgui_stl.* to misc/cpp/imgui_stdlib.* in prevision for other C++ helper files. - - 2018/09/28 (1.66) - renamed SetScrollHere() to SetScrollHereY(). Kept redirection function (will obsolete). - - 2018/09/06 (1.65) - renamed stb_truetype.h to imstb_truetype.h, stb_textedit.h to imstb_textedit.h, and stb_rect_pack.h to imstb_rectpack.h. - If you were conveniently using the imgui copy of those STB headers in your project you will have to update your include paths. - - 2018/09/05 (1.65) - renamed io.OptCursorBlink/io.ConfigCursorBlink to io.ConfigInputTextCursorBlink. (#1427) - - 2018/08/31 (1.64) - added imgui_widgets.cpp file, extracted and moved widgets code out of imgui.cpp into imgui_widgets.cpp. Re-ordered some of the code remaining in imgui.cpp. - NONE OF THE FUNCTIONS HAVE CHANGED. THE CODE IS SEMANTICALLY 100% IDENTICAL, BUT _EVERY_ FUNCTION HAS BEEN MOVED. - Because of this, any local modifications to imgui.cpp will likely conflict when you update. Read docs/CHANGELOG.txt for suggestions. - - 2018/08/22 (1.63) - renamed IsItemDeactivatedAfterChange() to IsItemDeactivatedAfterEdit() for consistency with new IsItemEdited() API. Kept redirection function (will obsolete soonish as IsItemDeactivatedAfterChange() is very recent). - - 2018/08/21 (1.63) - renamed ImGuiTextEditCallback to ImGuiInputTextCallback, ImGuiTextEditCallbackData to ImGuiInputTextCallbackData for consistency. Kept redirection types (will obsolete). - - 2018/08/21 (1.63) - removed ImGuiInputTextCallbackData::ReadOnly since it is a duplication of (ImGuiInputTextCallbackData::Flags & ImGuiInputTextFlags_ReadOnly). - - 2018/08/01 (1.63) - removed per-window ImGuiWindowFlags_ResizeFromAnySide beta flag in favor of a global io.ConfigResizeWindowsFromEdges [update 1.67 renamed to ConfigWindowsResizeFromEdges] to enable the feature. - - 2018/08/01 (1.63) - renamed io.OptCursorBlink to io.ConfigCursorBlink [-> io.ConfigInputTextCursorBlink in 1.65], io.OptMacOSXBehaviors to ConfigMacOSXBehaviors for consistency. - - 2018/07/22 (1.63) - changed ImGui::GetTime() return value from float to double to avoid accumulating floating point imprecisions over time. - - 2018/07/08 (1.63) - style: renamed ImGuiCol_ModalWindowDarkening to ImGuiCol_ModalWindowDimBg for consistency with other features. Kept redirection enum (will obsolete). - - 2018/06/08 (1.62) - examples: the imgui_impl_xxx files have been split to separate platform (Win32, Glfw, SDL2, etc.) from renderer (DX11, OpenGL, Vulkan, etc.). - old bindings will still work as is, however prefer using the separated bindings as they will be updated to support multi-viewports. - when adopting new bindings follow the main.cpp code of your preferred examples/ folder to know which functions to call. - in particular, note that old bindings called ImGui::NewFrame() at the end of their ImGui_ImplXXXX_NewFrame() function. - - 2018/06/06 (1.62) - renamed GetGlyphRangesChinese() to GetGlyphRangesChineseFull() to distinguish other variants and discourage using the full set. - - 2018/06/06 (1.62) - TreeNodeEx()/TreeNodeBehavior(): the ImGuiTreeNodeFlags_CollapsingHeader helper now include the ImGuiTreeNodeFlags_NoTreePushOnOpen flag. See Changelog for details. - - 2018/05/03 (1.61) - DragInt(): the default compile-time format string has been changed from "%.0f" to "%d", as we are not using integers internally any more. - If you used DragInt() with custom format strings, make sure you change them to use %d or an integer-compatible format. - To honor backward-compatibility, the DragInt() code will currently parse and modify format strings to replace %*f with %d, giving time to users to upgrade their code. - If you have IMGUI_DISABLE_OBSOLETE_FUNCTIONS enabled, the code will instead assert! You may run a reg-exp search on your codebase for e.g. "DragInt.*%f" to help you find them. - - 2018/04/28 (1.61) - obsoleted InputFloat() functions taking an optional "int decimal_precision" in favor of an equivalent and more flexible "const char* format", - consistent with other functions. Kept redirection functions (will obsolete). - - 2018/04/09 (1.61) - IM_DELETE() helper function added in 1.60 doesn't clear the input _pointer_ reference, more consistent with expectation and allows passing r-value. - - 2018/03/20 (1.60) - renamed io.WantMoveMouse to io.WantSetMousePos for consistency and ease of understanding (was added in 1.52, _not_ used by core and only honored by some binding ahead of merging the Nav branch). - - 2018/03/12 (1.60) - removed ImGuiCol_CloseButton, ImGuiCol_CloseButtonActive, ImGuiCol_CloseButtonHovered as the closing cross uses regular button colors now. - - 2018/03/08 (1.60) - changed ImFont::DisplayOffset.y to default to 0 instead of +1. Fixed rounding of Ascent/Descent to match TrueType renderer. If you were adding or subtracting to ImFont::DisplayOffset check if your fonts are correctly aligned vertically. - - 2018/03/03 (1.60) - renamed ImGuiStyleVar_Count_ to ImGuiStyleVar_COUNT and ImGuiMouseCursor_Count_ to ImGuiMouseCursor_COUNT for consistency with other public enums. - - 2018/02/18 (1.60) - BeginDragDropSource(): temporarily removed the optional mouse_button=0 parameter because it is not really usable in many situations at the moment. - - 2018/02/16 (1.60) - obsoleted the io.RenderDrawListsFn callback, you can call your graphics engine render function after ImGui::Render(). Use ImGui::GetDrawData() to retrieve the ImDrawData* to display. - - 2018/02/07 (1.60) - reorganized context handling to be more explicit, - - YOU NOW NEED TO CALL ImGui::CreateContext() AT THE BEGINNING OF YOUR APP, AND CALL ImGui::DestroyContext() AT THE END. - - removed Shutdown() function, as DestroyContext() serve this purpose. - - you may pass a ImFontAtlas* pointer to CreateContext() to share a font atlas between contexts. Otherwise CreateContext() will create its own font atlas instance. - - removed allocator parameters from CreateContext(), they are now setup with SetAllocatorFunctions(), and shared by all contexts. - - removed the default global context and font atlas instance, which were confusing for users of DLL reloading and users of multiple contexts. - - 2018/01/31 (1.60) - moved sample TTF files from extra_fonts/ to misc/fonts/. If you loaded files directly from the imgui repo you may need to update your paths. - - 2018/01/11 (1.60) - obsoleted IsAnyWindowHovered() in favor of IsWindowHovered(ImGuiHoveredFlags_AnyWindow). Kept redirection function (will obsolete). - - 2018/01/11 (1.60) - obsoleted IsAnyWindowFocused() in favor of IsWindowFocused(ImGuiFocusedFlags_AnyWindow). Kept redirection function (will obsolete). - - 2018/01/03 (1.60) - renamed ImGuiSizeConstraintCallback to ImGuiSizeCallback, ImGuiSizeConstraintCallbackData to ImGuiSizeCallbackData. - - 2017/12/29 (1.60) - removed CalcItemRectClosestPoint() which was weird and not really used by anyone except demo code. If you need it it's easy to replicate on your side. - - 2017/12/24 (1.53) - renamed the emblematic ShowTestWindow() function to ShowDemoWindow(). Kept redirection function (will obsolete). - - 2017/12/21 (1.53) - ImDrawList: renamed style.AntiAliasedShapes to style.AntiAliasedFill for consistency and as a way to explicitly break code that manipulate those flag at runtime. You can now manipulate ImDrawList::Flags - - 2017/12/21 (1.53) - ImDrawList: removed 'bool anti_aliased = true' final parameter of ImDrawList::AddPolyline() and ImDrawList::AddConvexPolyFilled(). Prefer manipulating ImDrawList::Flags if you need to toggle them during the frame. - - 2017/12/14 (1.53) - using the ImGuiWindowFlags_NoScrollWithMouse flag on a child window forwards the mouse wheel event to the parent window, unless either ImGuiWindowFlags_NoInputs or ImGuiWindowFlags_NoScrollbar are also set. - - 2017/12/13 (1.53) - renamed GetItemsLineHeightWithSpacing() to GetFrameHeightWithSpacing(). Kept redirection function (will obsolete). - - 2017/12/13 (1.53) - obsoleted IsRootWindowFocused() in favor of using IsWindowFocused(ImGuiFocusedFlags_RootWindow). Kept redirection function (will obsolete). - - obsoleted IsRootWindowOrAnyChildFocused() in favor of using IsWindowFocused(ImGuiFocusedFlags_RootAndChildWindows). Kept redirection function (will obsolete). - - 2017/12/12 (1.53) - renamed ImGuiTreeNodeFlags_AllowOverlapMode to ImGuiTreeNodeFlags_AllowItemOverlap. Kept redirection enum (will obsolete). - - 2017/12/10 (1.53) - removed SetNextWindowContentWidth(), prefer using SetNextWindowContentSize(). Kept redirection function (will obsolete). - - 2017/11/27 (1.53) - renamed ImGuiTextBuffer::append() helper to appendf(), appendv() to appendfv(). If you copied the 'Log' demo in your code, it uses appendv() so that needs to be renamed. - - 2017/11/18 (1.53) - Style, Begin: removed ImGuiWindowFlags_ShowBorders window flag. Borders are now fully set up in the ImGuiStyle structure (see e.g. style.FrameBorderSize, style.WindowBorderSize). Use ImGui::ShowStyleEditor() to look them up. - Please note that the style system will keep evolving (hopefully stabilizing in Q1 2018), and so custom styles will probably subtly break over time. It is recommended you use the StyleColorsClassic(), StyleColorsDark(), StyleColorsLight() functions. - - 2017/11/18 (1.53) - Style: removed ImGuiCol_ComboBg in favor of combo boxes using ImGuiCol_PopupBg for consistency. - - 2017/11/18 (1.53) - Style: renamed ImGuiCol_ChildWindowBg to ImGuiCol_ChildBg. - - 2017/11/18 (1.53) - Style: renamed style.ChildWindowRounding to style.ChildRounding, ImGuiStyleVar_ChildWindowRounding to ImGuiStyleVar_ChildRounding. - - 2017/11/02 (1.53) - obsoleted IsRootWindowOrAnyChildHovered() in favor of using IsWindowHovered(ImGuiHoveredFlags_RootAndChildWindows); - - 2017/10/24 (1.52) - renamed IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS/IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS to IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS/IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS for consistency. - - 2017/10/20 (1.52) - changed IsWindowHovered() default parameters behavior to return false if an item is active in another window (e.g. click-dragging item from another window to this window). You can use the newly introduced IsWindowHovered() flags to requests this specific behavior if you need it. - - 2017/10/20 (1.52) - marked IsItemHoveredRect()/IsMouseHoveringWindow() as obsolete, in favor of using the newly introduced flags for IsItemHovered() and IsWindowHovered(). See https://github.com/ocornut/imgui/issues/1382 for details. - removed the IsItemRectHovered()/IsWindowRectHovered() names introduced in 1.51 since they were merely more consistent names for the two functions we are now obsoleting. - IsItemHoveredRect() --> IsItemHovered(ImGuiHoveredFlags_RectOnly) - IsMouseHoveringAnyWindow() --> IsWindowHovered(ImGuiHoveredFlags_AnyWindow) - IsMouseHoveringWindow() --> IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem) [weird, old behavior] - - 2017/10/17 (1.52) - marked the old 5-parameters version of Begin() as obsolete (still available). Use SetNextWindowSize()+Begin() instead! - - 2017/10/11 (1.52) - renamed AlignFirstTextHeightToWidgets() to AlignTextToFramePadding(). Kept inline redirection function (will obsolete). - - 2017/09/26 (1.52) - renamed ImFont::Glyph to ImFontGlyph. Kept redirection typedef (will obsolete). - - 2017/09/25 (1.52) - removed SetNextWindowPosCenter() because SetNextWindowPos() now has the optional pivot information to do the same and more. Kept redirection function (will obsolete). - - 2017/08/25 (1.52) - io.MousePos needs to be set to ImVec2(-FLT_MAX,-FLT_MAX) when mouse is unavailable/missing. Previously ImVec2(-1,-1) was enough but we now accept negative mouse coordinates. In your binding if you need to support unavailable mouse, make sure to replace "io.MousePos = ImVec2(-1,-1)" with "io.MousePos = ImVec2(-FLT_MAX,-FLT_MAX)". - - 2017/08/22 (1.51) - renamed IsItemHoveredRect() to IsItemRectHovered(). Kept inline redirection function (will obsolete). -> (1.52) use IsItemHovered(ImGuiHoveredFlags_RectOnly)! - - renamed IsMouseHoveringAnyWindow() to IsAnyWindowHovered() for consistency. Kept inline redirection function (will obsolete). - - renamed IsMouseHoveringWindow() to IsWindowRectHovered() for consistency. Kept inline redirection function (will obsolete). - - 2017/08/20 (1.51) - renamed GetStyleColName() to GetStyleColorName() for consistency. - - 2017/08/20 (1.51) - added PushStyleColor(ImGuiCol idx, ImU32 col) overload, which _might_ cause an "ambiguous call" compilation error if you are using ImColor() with implicit cast. Cast to ImU32 or ImVec4 explicily to fix. - - 2017/08/15 (1.51) - marked the weird IMGUI_ONCE_UPON_A_FRAME helper macro as obsolete. prefer using the more explicit ImGuiOnceUponAFrame type. - - 2017/08/15 (1.51) - changed parameter order for BeginPopupContextWindow() from (const char*,int buttons,bool also_over_items) to (const char*,int buttons,bool also_over_items). Note that most calls relied on default parameters completely. - - 2017/08/13 (1.51) - renamed ImGuiCol_Column to ImGuiCol_Separator, ImGuiCol_ColumnHovered to ImGuiCol_SeparatorHovered, ImGuiCol_ColumnActive to ImGuiCol_SeparatorActive. Kept redirection enums (will obsolete). - - 2017/08/11 (1.51) - renamed ImGuiSetCond_Always to ImGuiCond_Always, ImGuiSetCond_Once to ImGuiCond_Once, ImGuiSetCond_FirstUseEver to ImGuiCond_FirstUseEver, ImGuiSetCond_Appearing to ImGuiCond_Appearing. Kept redirection enums (will obsolete). - - 2017/08/09 (1.51) - removed ValueColor() helpers, they are equivalent to calling Text(label) + SameLine() + ColorButton(). - - 2017/08/08 (1.51) - removed ColorEditMode() and ImGuiColorEditMode in favor of ImGuiColorEditFlags and parameters to the various Color*() functions. The SetColorEditOptions() allows to initialize default but the user can still change them with right-click context menu. - - changed prototype of 'ColorEdit4(const char* label, float col[4], bool show_alpha = true)' to 'ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flags = 0)', where passing flags = 0x01 is a safe no-op (hello dodgy backward compatibility!). - check and run the demo window, under "Color/Picker Widgets", to understand the various new options. - - changed prototype of rarely used 'ColorButton(ImVec4 col, bool small_height = false, bool outline_border = true)' to 'ColorButton(const char* desc_id, ImVec4 col, ImGuiColorEditFlags flags = 0, ImVec2 size = ImVec2(0,0))' - - 2017/07/20 (1.51) - removed IsPosHoveringAnyWindow(ImVec2), which was partly broken and misleading. ASSERT + redirect user to io.WantCaptureMouse - - 2017/05/26 (1.50) - removed ImFontConfig::MergeGlyphCenterV in favor of a more multipurpose ImFontConfig::GlyphOffset. - - 2017/05/01 (1.50) - renamed ImDrawList::PathFill() (rarely used directly) to ImDrawList::PathFillConvex() for clarity. - - 2016/11/06 (1.50) - BeginChild(const char*) now applies the stack id to the provided label, consistently with other functions as it should always have been. It shouldn't affect you unless (extremely unlikely) you were appending multiple times to a same child from different locations of the stack id. If that's the case, generate an id with GetId() and use it instead of passing string to BeginChild(). - - 2016/10/15 (1.50) - avoid 'void* user_data' parameter to io.SetClipboardTextFn/io.GetClipboardTextFn pointers. We pass io.ClipboardUserData to it. - - 2016/09/25 (1.50) - style.WindowTitleAlign is now a ImVec2 (ImGuiAlign enum was removed). set to (0.5f,0.5f) for horizontal+vertical centering, (0.0f,0.0f) for upper-left, etc. - - 2016/07/30 (1.50) - SameLine(x) with x>0.0f is now relative to left of column/group if any, and not always to left of window. This was sort of always the intent and hopefully breakage should be minimal. - - 2016/05/12 (1.49) - title bar (using ImGuiCol_TitleBg/ImGuiCol_TitleBgActive colors) isn't rendered over a window background (ImGuiCol_WindowBg color) anymore. - If your TitleBg/TitleBgActive alpha was 1.0f or you are using the default theme it will not affect you, otherwise if <1.0f you need tweak your custom theme to readjust for the fact that we don't draw a WindowBg background behind the title bar. - This helper function will convert an old TitleBg/TitleBgActive color into a new one with the same visual output, given the OLD color and the OLD WindowBg color: - ImVec4 ConvertTitleBgCol(const ImVec4& win_bg_col, const ImVec4& title_bg_col) { float new_a = 1.0f - ((1.0f - win_bg_col.w) * (1.0f - title_bg_col.w)), k = title_bg_col.w / new_a; return ImVec4((win_bg_col.x * win_bg_col.w + title_bg_col.x) * k, (win_bg_col.y * win_bg_col.w + title_bg_col.y) * k, (win_bg_col.z * win_bg_col.w + title_bg_col.z) * k, new_a); } - If this is confusing, pick the RGB value from title bar from an old screenshot and apply this as TitleBg/TitleBgActive. Or you may just create TitleBgActive from a tweaked TitleBg color. - - 2016/05/07 (1.49) - removed confusing set of GetInternalState(), GetInternalStateSize(), SetInternalState() functions. Now using CreateContext(), DestroyContext(), GetCurrentContext(), SetCurrentContext(). - - 2016/05/02 (1.49) - renamed SetNextTreeNodeOpened() to SetNextTreeNodeOpen(), no redirection. - - 2016/05/01 (1.49) - obsoleted old signature of CollapsingHeader(const char* label, const char* str_id = NULL, bool display_frame = true, bool default_open = false) as extra parameters were badly designed and rarely used. You can replace the "default_open = true" flag in new API with CollapsingHeader(label, ImGuiTreeNodeFlags_DefaultOpen). - - 2016/04/26 (1.49) - changed ImDrawList::PushClipRect(ImVec4 rect) to ImDrawList::PushClipRect(Imvec2 min,ImVec2 max,bool intersect_with_current_clip_rect=false). Note that higher-level ImGui::PushClipRect() is preferable because it will clip at logic/widget level, whereas ImDrawList::PushClipRect() only affect your renderer. - - 2016/04/03 (1.48) - removed style.WindowFillAlphaDefault setting which was redundant. Bake default BG alpha inside style.Colors[ImGuiCol_WindowBg] and all other Bg color values. (ref github issue #337). - - 2016/04/03 (1.48) - renamed ImGuiCol_TooltipBg to ImGuiCol_PopupBg, used by popups/menus and tooltips. popups/menus were previously using ImGuiCol_WindowBg. (ref github issue #337) - - 2016/03/21 (1.48) - renamed GetWindowFont() to GetFont(), GetWindowFontSize() to GetFontSize(). Kept inline redirection function (will obsolete). - - 2016/03/02 (1.48) - InputText() completion/history/always callbacks: if you modify the text buffer manually (without using DeleteChars()/InsertChars() helper) you need to maintain the BufTextLen field. added an assert. - - 2016/01/23 (1.48) - fixed not honoring exact width passed to PushItemWidth(), previously it would add extra FramePadding.x*2 over that width. if you had manual pixel-perfect alignment in place it might affect you. - - 2015/12/27 (1.48) - fixed ImDrawList::AddRect() which used to render a rectangle 1 px too large on each axis. - - 2015/12/04 (1.47) - renamed Color() helpers to ValueColor() - dangerously named, rarely used and probably to be made obsolete. - - 2015/08/29 (1.45) - with the addition of horizontal scrollbar we made various fixes to inconsistencies with dealing with cursor position. - GetCursorPos()/SetCursorPos() functions now include the scrolled amount. It shouldn't affect the majority of users, but take note that SetCursorPosX(100.0f) puts you at +100 from the starting x position which may include scrolling, not at +100 from the window left side. - GetContentRegionMax()/GetWindowContentRegionMin()/GetWindowContentRegionMax() functions allow include the scrolled amount. Typically those were used in cases where no scrolling would happen so it may not be a problem, but watch out! - - 2015/08/29 (1.45) - renamed style.ScrollbarWidth to style.ScrollbarSize - - 2015/08/05 (1.44) - split imgui.cpp into extra files: imgui_demo.cpp imgui_draw.cpp imgui_internal.h that you need to add to your project. - - 2015/07/18 (1.44) - fixed angles in ImDrawList::PathArcTo(), PathArcToFast() (introduced in 1.43) being off by an extra PI for no justifiable reason - - 2015/07/14 (1.43) - add new ImFontAtlas::AddFont() API. For the old AddFont***, moved the 'font_no' parameter of ImFontAtlas::AddFont** functions to the ImFontConfig structure. - you need to render your textured triangles with bilinear filtering to benefit from sub-pixel positioning of text. - - 2015/07/08 (1.43) - switched rendering data to use indexed rendering. this is saving a fair amount of CPU/GPU and enables us to get anti-aliasing for a marginal cost. - this necessary change will break your rendering function! the fix should be very easy. sorry for that :( - - if you are using a vanilla copy of one of the imgui_impl_XXXX.cpp provided in the example, you just need to update your copy and you can ignore the rest. - - the signature of the io.RenderDrawListsFn handler has changed! - old: ImGui_XXXX_RenderDrawLists(ImDrawList** const cmd_lists, int cmd_lists_count) - new: ImGui_XXXX_RenderDrawLists(ImDrawData* draw_data). - parameters: 'cmd_lists' becomes 'draw_data->CmdLists', 'cmd_lists_count' becomes 'draw_data->CmdListsCount' - ImDrawList: 'commands' becomes 'CmdBuffer', 'vtx_buffer' becomes 'VtxBuffer', 'IdxBuffer' is new. - ImDrawCmd: 'vtx_count' becomes 'ElemCount', 'clip_rect' becomes 'ClipRect', 'user_callback' becomes 'UserCallback', 'texture_id' becomes 'TextureId'. - - each ImDrawList now contains both a vertex buffer and an index buffer. For each command, render ElemCount/3 triangles using indices from the index buffer. - - if you REALLY cannot render indexed primitives, you can call the draw_data->DeIndexAllBuffers() method to de-index the buffers. This is slow and a waste of CPU/GPU. Prefer using indexed rendering! - - refer to code in the examples/ folder or ask on the GitHub if you are unsure of how to upgrade. please upgrade! - - 2015/07/10 (1.43) - changed SameLine() parameters from int to float. - - 2015/07/02 (1.42) - renamed SetScrollPosHere() to SetScrollFromCursorPos(). Kept inline redirection function (will obsolete). - - 2015/07/02 (1.42) - renamed GetScrollPosY() to GetScrollY(). Necessary to reduce confusion along with other scrolling functions, because positions (e.g. cursor position) are not equivalent to scrolling amount. - - 2015/06/14 (1.41) - changed ImageButton() default bg_col parameter from (0,0,0,1) (black) to (0,0,0,0) (transparent) - makes a difference when texture have transparence - - 2015/06/14 (1.41) - changed Selectable() API from (label, selected, size) to (label, selected, flags, size). Size override should have been rarely be used. Sorry! - - 2015/05/31 (1.40) - renamed GetWindowCollapsed() to IsWindowCollapsed() for consistency. Kept inline redirection function (will obsolete). - - 2015/05/31 (1.40) - renamed IsRectClipped() to IsRectVisible() for consistency. Note that return value is opposite! Kept inline redirection function (will obsolete). - - 2015/05/27 (1.40) - removed the third 'repeat_if_held' parameter from Button() - sorry! it was rarely used and inconsistent. Use PushButtonRepeat(true) / PopButtonRepeat() to enable repeat on desired buttons. - - 2015/05/11 (1.40) - changed BeginPopup() API, takes a string identifier instead of a bool. ImGui needs to manage the open/closed state of popups. Call OpenPopup() to actually set the "open" state of a popup. BeginPopup() returns true if the popup is opened. - - 2015/05/03 (1.40) - removed style.AutoFitPadding, using style.WindowPadding makes more sense (the default values were already the same). - - 2015/04/13 (1.38) - renamed IsClipped() to IsRectClipped(). Kept inline redirection function until 1.50. - - 2015/04/09 (1.38) - renamed ImDrawList::AddArc() to ImDrawList::AddArcFast() for compatibility with future API - - 2015/04/03 (1.38) - removed ImGuiCol_CheckHovered, ImGuiCol_CheckActive, replaced with the more general ImGuiCol_FrameBgHovered, ImGuiCol_FrameBgActive. - - 2014/04/03 (1.38) - removed support for passing -FLT_MAX..+FLT_MAX as the range for a SliderFloat(). Use DragFloat() or Inputfloat() instead. - - 2015/03/17 (1.36) - renamed GetItemBoxMin()/GetItemBoxMax()/IsMouseHoveringBox() to GetItemRectMin()/GetItemRectMax()/IsMouseHoveringRect(). Kept inline redirection function until 1.50. - - 2015/03/15 (1.36) - renamed style.TreeNodeSpacing to style.IndentSpacing, ImGuiStyleVar_TreeNodeSpacing to ImGuiStyleVar_IndentSpacing - - 2015/03/13 (1.36) - renamed GetWindowIsFocused() to IsWindowFocused(). Kept inline redirection function until 1.50. - - 2015/03/08 (1.35) - renamed style.ScrollBarWidth to style.ScrollbarWidth (casing) - - 2015/02/27 (1.34) - renamed OpenNextNode(bool) to SetNextTreeNodeOpened(bool, ImGuiSetCond). Kept inline redirection function until 1.50. - - 2015/02/27 (1.34) - renamed ImGuiSetCondition_*** to ImGuiSetCond_***, and _FirstUseThisSession becomes _Once. - - 2015/02/11 (1.32) - changed text input callback ImGuiTextEditCallback return type from void-->int. reserved for future use, return 0 for now. - - 2015/02/10 (1.32) - renamed GetItemWidth() to CalcItemWidth() to clarify its evolving behavior - - 2015/02/08 (1.31) - renamed GetTextLineSpacing() to GetTextLineHeightWithSpacing() - - 2015/02/01 (1.31) - removed IO.MemReallocFn (unused) - - 2015/01/19 (1.30) - renamed ImGuiStorage::GetIntPtr()/GetFloatPtr() to GetIntRef()/GetIntRef() because Ptr was conflicting with actual pointer storage functions. - - 2015/01/11 (1.30) - big font/image API change! now loads TTF file. allow for multiple fonts. no need for a PNG loader. - - 2015/01/11 (1.30) - removed GetDefaultFontData(). uses io.Fonts->GetTextureData*() API to retrieve uncompressed pixels. - - old: const void* png_data; unsigned int png_size; ImGui::GetDefaultFontData(NULL, NULL, &png_data, &png_size); [..Upload texture to GPU..]; - - new: unsigned char* pixels; int width, height; io.Fonts->GetTexDataAsRGBA32(&pixels, &width, &height); [..Upload texture to GPU..]; io.Fonts->TexId = YourTexIdentifier; - you now have more flexibility to load multiple TTF fonts and manage the texture buffer for internal needs. It is now recommended that you sample the font texture with bilinear interpolation. - - 2015/01/11 (1.30) - added texture identifier in ImDrawCmd passed to your render function (we can now render images). make sure to set io.Fonts->TexID. - - 2015/01/11 (1.30) - removed IO.PixelCenterOffset (unnecessary, can be handled in user projection matrix) - - 2015/01/11 (1.30) - removed ImGui::IsItemFocused() in favor of ImGui::IsItemActive() which handles all widgets - - 2014/12/10 (1.18) - removed SetNewWindowDefaultPos() in favor of new generic API SetNextWindowPos(pos, ImGuiSetCondition_FirstUseEver) - - 2014/11/28 (1.17) - moved IO.Font*** options to inside the IO.Font-> structure (FontYOffset, FontTexUvForWhite, FontBaseScale, FontFallbackGlyph) - - 2014/11/26 (1.17) - reworked syntax of IMGUI_ONCE_UPON_A_FRAME helper macro to increase compiler compatibility - - 2014/11/07 (1.15) - renamed IsHovered() to IsItemHovered() - - 2014/10/02 (1.14) - renamed IMGUI_INCLUDE_IMGUI_USER_CPP to IMGUI_INCLUDE_IMGUI_USER_INL and imgui_user.cpp to imgui_user.inl (more IDE friendly) - - 2014/09/25 (1.13) - removed 'text_end' parameter from IO.SetClipboardTextFn (the string is now always zero-terminated for simplicity) - - 2014/09/24 (1.12) - renamed SetFontScale() to SetWindowFontScale() - - 2014/09/24 (1.12) - moved IM_MALLOC/IM_REALLOC/IM_FREE preprocessor defines to IO.MemAllocFn/IO.MemReallocFn/IO.MemFreeFn - - 2014/08/30 (1.09) - removed IO.FontHeight (now computed automatically) - - 2014/08/30 (1.09) - moved IMGUI_FONT_TEX_UV_FOR_WHITE preprocessor define to IO.FontTexUvForWhite - - 2014/08/28 (1.09) - changed the behavior of IO.PixelCenterOffset following various rendering fixes - - - FREQUENTLY ASKED QUESTIONS (FAQ) - ================================ - - Read all answers online: https://www.dearimgui.org/faq, or in docs/FAQ.md (with a Markdown viewer) - Some answers are copied down here to facilitate searching in code. - - Q&A: Basics - =========== - - Q: Where is the documentation? - A: This library is poorly documented at the moment and expects of the user to be acquainted with C/C++. - - Run the examples/ and explore them. - - See demo code in imgui_demo.cpp and particularly the ImGui::ShowDemoWindow() function. - - The demo covers most features of Dear ImGui, so you can read the code and see its output. - - See documentation and comments at the top of imgui.cpp + effectively imgui.h. - - Dozens of standalone example applications using e.g. OpenGL/DirectX are provided in the - examples/ folder to explain how to integrate Dear ImGui with your own engine/application. - - The Wiki (https://github.com/ocornut/imgui/wiki) has many resources and links. - - The Glossary (https://github.com/ocornut/imgui/wiki/Glossary) page also may be useful. - - Your programming IDE is your friend, find the type or function declaration to find comments - associated to it. - - Q: What is this library called? - Q: Which version should I get? - >> This library is called "Dear ImGui", please don't call it "ImGui" :) - >> See https://www.dearimgui.org/faq - - Q&A: Integration - ================ - - Q: How can I tell whether to dispatch mouse/keyboard to Dear ImGui or to my application? - A: You should read the 'io.WantCaptureMouse', 'io.WantCaptureKeyboard' and 'io.WantTextInput' flags! - >> See https://www.dearimgui.org/faq for fully detailed answer. You really want to read this. - - Q. How can I enable keyboard controls? - Q: How can I use this without a mouse, without a keyboard or without a screen? (gamepad, input share, remote display) - Q: I integrated Dear ImGui in my engine and the text or lines are blurry.. - Q: I integrated Dear ImGui in my engine and some elements are clipping or disappearing when I move windows around.. - >> See https://www.dearimgui.org/faq - - Q&A: Usage - ---------- - - Q: Why are multiple widgets reacting when I interact with a single one? - Q: How can I have multiple widgets with the same label or with an empty label? - A: A primer on labels and the ID Stack... - - Dear ImGui internally need to uniquely identify UI elements. - Elements that are typically not clickable (such as calls to the Text functions) don't need an ID. - Interactive widgets (such as calls to Button buttons) need a unique ID. - Unique ID are used internally to track active widgets and occasionally associate state to widgets. - Unique ID are implicitly built from the hash of multiple elements that identify the "path" to the UI element. - - - Unique ID are often derived from a string label: - - Button("OK"); // Label = "OK", ID = hash of (..., "OK") - Button("Cancel"); // Label = "Cancel", ID = hash of (..., "Cancel") - - - ID are uniquely scoped within windows, tree nodes, etc. which all pushes to the ID stack. Having - two buttons labeled "OK" in different windows or different tree locations is fine. - We used "..." above to signify whatever was already pushed to the ID stack previously: - - Begin("MyWindow"); - Button("OK"); // Label = "OK", ID = hash of ("MyWindow", "OK") - End(); - Begin("MyOtherWindow"); - Button("OK"); // Label = "OK", ID = hash of ("MyOtherWindow", "OK") - End(); - - - If you have a same ID twice in the same location, you'll have a conflict: - - Button("OK"); - Button("OK"); // ID collision! Interacting with either button will trigger the first one. - - Fear not! this is easy to solve and there are many ways to solve it! - - - Solving ID conflict in a simple/local context: - When passing a label you can optionally specify extra ID information within string itself. - Use "##" to pass a complement to the ID that won't be visible to the end-user. - This helps solving the simple collision cases when you know e.g. at compilation time which items - are going to be created: - - Begin("MyWindow"); - Button("Play"); // Label = "Play", ID = hash of ("MyWindow", "Play") - Button("Play##foo1"); // Label = "Play", ID = hash of ("MyWindow", "Play##foo1") // Different from above - Button("Play##foo2"); // Label = "Play", ID = hash of ("MyWindow", "Play##foo2") // Different from above - End(); - - - If you want to completely hide the label, but still need an ID: - - Checkbox("##On", &b); // Label = "", ID = hash of (..., "##On") // No visible label, just a checkbox! - - - Occasionally/rarely you might want change a label while preserving a constant ID. This allows - you to animate labels. For example you may want to include varying information in a window title bar, - but windows are uniquely identified by their ID. Use "###" to pass a label that isn't part of ID: - - Button("Hello###ID"); // Label = "Hello", ID = hash of (..., "###ID") - Button("World###ID"); // Label = "World", ID = hash of (..., "###ID") // Same as above, even though the label looks different - - sprintf(buf, "My game (%f FPS)###MyGame", fps); - Begin(buf); // Variable title, ID = hash of "MyGame" - - - Solving ID conflict in a more general manner: - Use PushID() / PopID() to create scopes and manipulate the ID stack, as to avoid ID conflicts - within the same window. This is the most convenient way of distinguishing ID when iterating and - creating many UI elements programmatically. - You can push a pointer, a string or an integer value into the ID stack. - Remember that ID are formed from the concatenation of _everything_ pushed into the ID stack. - At each level of the stack we store the seed used for items at this level of the ID stack. - - Begin("Window"); - for (int i = 0; i < 100; i++) - { - PushID(i); // Push i to the id tack - Button("Click"); // Label = "Click", ID = hash of ("Window", i, "Click") - PopID(); - } - for (int i = 0; i < 100; i++) - { - MyObject* obj = Objects[i]; - PushID(obj); - Button("Click"); // Label = "Click", ID = hash of ("Window", obj pointer, "Click") - PopID(); - } - for (int i = 0; i < 100; i++) - { - MyObject* obj = Objects[i]; - PushID(obj->Name); - Button("Click"); // Label = "Click", ID = hash of ("Window", obj->Name, "Click") - PopID(); - } - End(); - - - You can stack multiple prefixes into the ID stack: - - Button("Click"); // Label = "Click", ID = hash of (..., "Click") - PushID("node"); - Button("Click"); // Label = "Click", ID = hash of (..., "node", "Click") - PushID(my_ptr); - Button("Click"); // Label = "Click", ID = hash of (..., "node", my_ptr, "Click") - PopID(); - PopID(); - - - Tree nodes implicitly creates a scope for you by calling PushID(). - - Button("Click"); // Label = "Click", ID = hash of (..., "Click") - if (TreeNode("node")) // <-- this function call will do a PushID() for you (unless instructed not to, with a special flag) - { - Button("Click"); // Label = "Click", ID = hash of (..., "node", "Click") - TreePop(); - } - - - When working with trees, ID are used to preserve the open/close state of each tree node. - Depending on your use cases you may want to use strings, indices or pointers as ID. - e.g. when following a single pointer that may change over time, using a static string as ID - will preserve your node open/closed state when the targeted object change. - e.g. when displaying a list of objects, using indices or pointers as ID will preserve the - node open/closed state differently. See what makes more sense in your situation! - - Q: How can I display an image? What is ImTextureID, how does it works? - >> See https://www.dearimgui.org/faq and https://github.com/ocornut/imgui/wiki/Image-Loading-and-Displaying-Examples - - Q: How can I use my own math types instead of ImVec2/ImVec4? - Q: How can I interact with standard C++ types (such as std::string and std::vector)? - Q: How can I display custom shapes? (using low-level ImDrawList API) - >> See https://www.dearimgui.org/faq - - Q&A: Fonts, Text - ================ - - Q: How can I load a different font than the default? - Q: How can I easily use icons in my application? - Q: How can I load multiple fonts? - Q: How can I display and input non-Latin characters such as Chinese, Japanese, Korean, Cyrillic? - >> See https://www.dearimgui.org/faq and docs/FONTS.txt - - Q&A: Concerns - ============= - - Q: Who uses Dear ImGui? - Q: Can you create elaborate/serious tools with Dear ImGui? - Q: Can you reskin the look of Dear ImGui? - Q: Why using C++ (as opposed to C)? - >> See https://www.dearimgui.org/faq - - Q&A: Community - ============== - - Q: How can I help? - A: - Businesses: please reach out to "contact AT dearimgui.org" if you work in a place using Dear ImGui! - We can discuss ways for your company to fund development via invoiced technical support, maintenance or sponsoring contacts. - This is among the most useful thing you can do for Dear ImGui. With increased funding we can hire more people working on this project. - - Individuals: you can support continued development via PayPal donations. See README. - - If you are experienced with Dear ImGui and C++, look at the github issues, look at the Wiki, read docs/TODO.txt - and see how you want to help and can help! - - Disclose your usage of Dear ImGui via a dev blog post, a tweet, a screenshot, a mention somewhere etc. - You may post screenshot or links in the gallery threads (github.com/ocornut/imgui/issues/3075). Visuals are ideal as they inspire other programmers. - But even without visuals, disclosing your use of dear imgui help the library grow credibility, and help other teams and programmers with taking decisions. - - If you have issues or if you need to hack into the library, even if you don't expect any support it is useful that you share your issues (on github or privately). - -*/ - -//------------------------------------------------------------------------- -// [SECTION] INCLUDES -//------------------------------------------------------------------------- - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#ifndef IMGUI_DISABLE - -#ifndef IMGUI_DEFINE_MATH_OPERATORS -#define IMGUI_DEFINE_MATH_OPERATORS -#endif -#include "imgui_internal.h" - -// System includes -#include // toupper -#include // vsnprintf, sscanf, printf -#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier -#include // intptr_t -#else -#include // intptr_t -#endif - -// [Windows] OS specific includes (optional) -#if defined(_WIN32) && defined(IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS) && defined(IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS) && defined(IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) -#define IMGUI_DISABLE_WIN32_FUNCTIONS -#endif -#if defined(_WIN32) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) -#ifndef WIN32_LEAN_AND_MEAN -#define WIN32_LEAN_AND_MEAN -#endif -#ifndef NOMINMAX -#define NOMINMAX -#endif -#ifndef __MINGW32__ -#include // _wfopen, OpenClipboard -#else -#include -#endif -#if defined(WINAPI_FAMILY) && (WINAPI_FAMILY == WINAPI_FAMILY_APP) // UWP doesn't have all Win32 functions -#define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS -#define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS -#endif -#endif - -// [Apple] OS specific includes -#if defined(__APPLE__) -#include -#endif - -// Visual Studio warnings -#ifdef _MSC_VER -#pragma warning (disable: 4127) // condition expression is constant -#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen -#if defined(_MSC_VER) && _MSC_VER >= 1922 // MSVC 2019 16.2 or later -#pragma warning (disable: 5054) // operator '|': deprecated between enumerations of different types -#endif -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wunknown-pragmas" // warning : unknown warning group '-Wformat-pedantic *' // not all warnings are known by all clang versions.. so ignoring warnings triggers new warnings on some configuration. great! -#pragma clang diagnostic ignored "-Wold-style-cast" // warning : use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wfloat-equal" // warning : comparing floating point with == or != is unsafe // storing and comparing against same constants (typically 0.0f) is ok. -#pragma clang diagnostic ignored "-Wformat-nonliteral" // warning : format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. -#pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. -#pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference is. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness // -#pragma clang diagnostic ignored "-Wformat-pedantic" // warning : format specifies type 'void *' but the argument has type 'xxxx *' // unreasonable, would lead to casting every %p arg to void*. probably enabled by -pedantic. -#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' -#if __has_warning("-Wzero-as-null-pointer-constant") -#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" // warning : zero as null pointer constant // some standard header variations use #define NULL 0 -#endif -#if __has_warning("-Wdouble-promotion") -#pragma clang diagnostic ignored "-Wdouble-promotion" // warning: implicit conversion from 'float' to 'double' when passing argument to function // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. -#endif -#elif defined(__GNUC__) -// We disable -Wpragmas because GCC doesn't provide an has_warning equivalent and some forks/patches may not following the warning/version association. -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used -#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size -#pragma GCC diagnostic ignored "-Wformat" // warning: format '%p' expects argument of type 'void*', but argument 6 has type 'ImGuiWindow*' -#pragma GCC diagnostic ignored "-Wdouble-promotion" // warning: implicit conversion from 'float' to 'double' when passing argument to function -#pragma GCC diagnostic ignored "-Wconversion" // warning: conversion to 'xxxx' from 'xxxx' may alter its value -#pragma GCC diagnostic ignored "-Wformat-nonliteral" // warning: format not a string literal, format string not checked -#pragma GCC diagnostic ignored "-Wstrict-overflow" // warning: assuming signed overflow does not occur when assuming that (X - c) > X is always false -#pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead -#endif - -// Debug options -#define IMGUI_DEBUG_NAV_SCORING 0 // Display navigation scoring preview when hovering items. Display last moving direction matches when holding CTRL -#define IMGUI_DEBUG_NAV_RECTS 0 // Display the reference navigation rectangle for each window -#define IMGUI_DEBUG_INI_SETTINGS 0 // Save additional comments in .ini file (particularly helps for Docking, but makes saving slower) - -// When using CTRL+TAB (or Gamepad Square+L/R) we delay the visual a little in order to reduce visual noise doing a fast switch. -static const float NAV_WINDOWING_HIGHLIGHT_DELAY = 0.20f; // Time before the highlight and screen dimming starts fading in -static const float NAV_WINDOWING_LIST_APPEAR_DELAY = 0.15f; // Time before the window list starts to appear - -// Window resizing from edges (when io.ConfigWindowsResizeFromEdges = true and ImGuiBackendFlags_HasMouseCursors is set in io.BackendFlags by back-end) -static const float WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS = 4.0f; // Extend outside and inside windows. Affect FindHoveredWindow(). -static const float WINDOWS_RESIZE_FROM_EDGES_FEEDBACK_TIMER = 0.04f; // Reduce visual noise by only highlighting the border after a certain time. -static const float WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER = 2.00f; // Lock scrolled window (so it doesn't pick child windows that are scrolling through) for a certaint time, unless mouse moved. - -//------------------------------------------------------------------------- -// [SECTION] FORWARD DECLARATIONS -//------------------------------------------------------------------------- - -static void SetCurrentWindow(ImGuiWindow* window); -static void FindHoveredWindow(); -static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags); -static ImVec2 CalcNextScrollFromScrollTargetAndClamp(ImGuiWindow* window, bool snap_on_edges); - -static void AddDrawListToDrawData(ImVector* out_list, ImDrawList* draw_list); -static void AddWindowToSortBuffer(ImVector* out_sorted_windows, ImGuiWindow* window); - -static ImRect GetViewportRect(); - -// Settings -static void* WindowSettingsHandler_ReadOpen(ImGuiContext*, ImGuiSettingsHandler*, const char* name); -static void WindowSettingsHandler_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line); -static void WindowSettingsHandler_WriteAll(ImGuiContext*, ImGuiSettingsHandler*, ImGuiTextBuffer* buf); - -// Platform Dependents default implementation for IO functions -static const char* GetClipboardTextFn_DefaultImpl(void* user_data); -static void SetClipboardTextFn_DefaultImpl(void* user_data, const char* text); -static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y); - -namespace ImGui -{ -// Navigation -static void NavUpdate(); -static void NavUpdateWindowing(); -static void NavUpdateWindowingOverlay(); -static void NavUpdateMoveResult(); -static float NavUpdatePageUpPageDown(); -static inline void NavUpdateAnyRequestFlag(); -static bool NavScoreItem(ImGuiNavMoveResult* result, ImRect cand); -static void NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, ImGuiID id); -static ImVec2 NavCalcPreferredRefPos(); -static void NavSaveLastChildNavWindowIntoParent(ImGuiWindow* nav_window); -static ImGuiWindow* NavRestoreLastChildNavWindow(ImGuiWindow* window); -static int FindWindowFocusIndex(ImGuiWindow* window); - -// Error Checking -static void ErrorCheckNewFrameSanityChecks(); -static void ErrorCheckEndFrameSanityChecks(); -static void ErrorCheckBeginEndCompareStacksSize(ImGuiWindow* window, bool write); - -// Misc -static void UpdateSettings(); -static void UpdateMouseInputs(); -static void UpdateMouseWheel(); -static void UpdateTabFocus(); -static void UpdateDebugToolItemPicker(); -static bool UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& size_auto_fit, int* border_held, int resize_grip_count, ImU32 resize_grip_col[4]); -static void RenderWindowOuterBorders(ImGuiWindow* window); -static void RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar_rect, bool title_bar_is_highlight, int resize_grip_count, const ImU32 resize_grip_col[4], float resize_grip_draw_size); -static void RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& title_bar_rect, const char* name, bool* p_open); - -} - -//----------------------------------------------------------------------------- -// [SECTION] CONTEXT AND MEMORY ALLOCATORS -//----------------------------------------------------------------------------- - -// Current context pointer. Implicitly used by all Dear ImGui functions. Always assumed to be != NULL. -// ImGui::CreateContext() will automatically set this pointer if it is NULL. Change to a different context by calling ImGui::SetCurrentContext(). -// 1) Important: globals are not shared across DLL boundaries! If you use DLLs or any form of hot-reloading: you will need to call -// SetCurrentContext() (with the pointer you got from CreateContext) from each unique static/DLL boundary, and after each hot-reloading. -// In your debugger, add GImGui to your watch window and notice how its value changes depending on which location you are currently stepping into. -// 2) Important: Dear ImGui functions are not thread-safe because of this pointer. -// If you want thread-safety to allow N threads to access N different contexts, you can: -// - Change this variable to use thread local storage so each thread can refer to a different context, in imconfig.h: -// struct ImGuiContext; -// extern thread_local ImGuiContext* MyImGuiTLS; -// #define GImGui MyImGuiTLS -// And then define MyImGuiTLS in one of your cpp file. Note that thread_local is a C++11 keyword, earlier C++ uses compiler-specific keyword. -// - Future development aim to make this context pointer explicit to all calls. Also read https://github.com/ocornut/imgui/issues/586 -// - If you need a finite number of contexts, you may compile and use multiple instances of the ImGui code from different namespace. -#ifndef GImGui -ImGuiContext* GImGui = NULL; -#endif - -// Memory Allocator functions. Use SetAllocatorFunctions() to change them. -// If you use DLL hotreloading you might need to call SetAllocatorFunctions() after reloading code from this file. -// Otherwise, you probably don't want to modify them mid-program, and if you use global/static e.g. ImVector<> instances you may need to keep them accessible during program destruction. -#ifndef IMGUI_DISABLE_DEFAULT_ALLOCATORS -static void* MallocWrapper(size_t size, void* user_data) { IM_UNUSED(user_data); return malloc(size); } -static void FreeWrapper(void* ptr, void* user_data) { IM_UNUSED(user_data); free(ptr); } -#else -static void* MallocWrapper(size_t size, void* user_data) { IM_UNUSED(user_data); IM_UNUSED(size); IM_ASSERT(0); return NULL; } -static void FreeWrapper(void* ptr, void* user_data) { IM_UNUSED(user_data); IM_UNUSED(ptr); IM_ASSERT(0); } -#endif - -static void* (*GImAllocatorAllocFunc)(size_t size, void* user_data) = MallocWrapper; -static void (*GImAllocatorFreeFunc)(void* ptr, void* user_data) = FreeWrapper; -static void* GImAllocatorUserData = NULL; - -//----------------------------------------------------------------------------- -// [SECTION] USER FACING STRUCTURES (ImGuiStyle, ImGuiIO) -//----------------------------------------------------------------------------- - -ImGuiStyle::ImGuiStyle() -{ - Alpha = 1.0f; // Global alpha applies to everything in ImGui - WindowPadding = ImVec2(8,8); // Padding within a window - WindowRounding = 7.0f; // Radius of window corners rounding. Set to 0.0f to have rectangular windows - WindowBorderSize = 1.0f; // Thickness of border around windows. Generally set to 0.0f or 1.0f. Other values not well tested. - WindowMinSize = ImVec2(32,32); // Minimum window size - WindowTitleAlign = ImVec2(0.0f,0.5f);// Alignment for title bar text - WindowMenuButtonPosition= ImGuiDir_Left; // Position of the collapsing/docking button in the title bar (left/right). Defaults to ImGuiDir_Left. - ChildRounding = 0.0f; // Radius of child window corners rounding. Set to 0.0f to have rectangular child windows - ChildBorderSize = 1.0f; // Thickness of border around child windows. Generally set to 0.0f or 1.0f. Other values not well tested. - PopupRounding = 0.0f; // Radius of popup window corners rounding. Set to 0.0f to have rectangular child windows - PopupBorderSize = 1.0f; // Thickness of border around popup or tooltip windows. Generally set to 0.0f or 1.0f. Other values not well tested. - FramePadding = ImVec2(4,3); // Padding within a framed rectangle (used by most widgets) - FrameRounding = 0.0f; // Radius of frame corners rounding. Set to 0.0f to have rectangular frames (used by most widgets). - FrameBorderSize = 0.0f; // Thickness of border around frames. Generally set to 0.0f or 1.0f. Other values not well tested. - ItemSpacing = ImVec2(8,4); // Horizontal and vertical spacing between widgets/lines - ItemInnerSpacing = ImVec2(4,4); // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label) - TouchExtraPadding = ImVec2(0,0); // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - IndentSpacing = 21.0f; // Horizontal spacing when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2). - ColumnsMinSpacing = 6.0f; // Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1). - ScrollbarSize = 14.0f; // Width of the vertical scrollbar, Height of the horizontal scrollbar - ScrollbarRounding = 9.0f; // Radius of grab corners rounding for scrollbar - GrabMinSize = 10.0f; // Minimum width/height of a grab box for slider/scrollbar - GrabRounding = 0.0f; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. - TabRounding = 4.0f; // Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs. - TabBorderSize = 0.0f; // Thickness of border around tabs. - ColorButtonPosition = ImGuiDir_Right; // Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right. - ButtonTextAlign = ImVec2(0.5f,0.5f);// Alignment of button text when button is larger than text. - SelectableTextAlign = ImVec2(0.0f,0.0f);// Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line. - DisplayWindowPadding = ImVec2(19,19); // Window position are clamped to be visible within the display area or monitors by at least this amount. Only applies to regular windows. - DisplaySafeAreaPadding = ImVec2(3,3); // If you cannot see the edge of your screen (e.g. on a TV) increase the safe area padding. Covers popups/tooltips as well regular windows. - MouseCursorScale = 1.0f; // Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later. - AntiAliasedLines = true; // Enable anti-aliasing on lines/borders. Disable if you are really short on CPU/GPU. - AntiAliasedFill = true; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) - CurveTessellationTol = 1.25f; // Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality. - CircleSegmentMaxError = 1.60f; // Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry. - - // Default theme - ImGui::StyleColorsDark(this); -} - -// To scale your entire UI (e.g. if you want your app to use High DPI or generally be DPI aware) you may use this helper function. Scaling the fonts is done separately and is up to you. -// Important: This operation is lossy because we round all sizes to integer. If you need to change your scale multiples, call this over a freshly initialized ImGuiStyle structure rather than scaling multiple times. -void ImGuiStyle::ScaleAllSizes(float scale_factor) -{ - WindowPadding = ImFloor(WindowPadding * scale_factor); - WindowRounding = ImFloor(WindowRounding * scale_factor); - WindowMinSize = ImFloor(WindowMinSize * scale_factor); - ChildRounding = ImFloor(ChildRounding * scale_factor); - PopupRounding = ImFloor(PopupRounding * scale_factor); - FramePadding = ImFloor(FramePadding * scale_factor); - FrameRounding = ImFloor(FrameRounding * scale_factor); - ItemSpacing = ImFloor(ItemSpacing * scale_factor); - ItemInnerSpacing = ImFloor(ItemInnerSpacing * scale_factor); - TouchExtraPadding = ImFloor(TouchExtraPadding * scale_factor); - IndentSpacing = ImFloor(IndentSpacing * scale_factor); - ColumnsMinSpacing = ImFloor(ColumnsMinSpacing * scale_factor); - ScrollbarSize = ImFloor(ScrollbarSize * scale_factor); - ScrollbarRounding = ImFloor(ScrollbarRounding * scale_factor); - GrabMinSize = ImFloor(GrabMinSize * scale_factor); - GrabRounding = ImFloor(GrabRounding * scale_factor); - TabRounding = ImFloor(TabRounding * scale_factor); - DisplayWindowPadding = ImFloor(DisplayWindowPadding * scale_factor); - DisplaySafeAreaPadding = ImFloor(DisplaySafeAreaPadding * scale_factor); - MouseCursorScale = ImFloor(MouseCursorScale * scale_factor); -} - -ImGuiIO::ImGuiIO() -{ - // Most fields are initialized with zero - memset(this, 0, sizeof(*this)); - IM_ASSERT(IM_ARRAYSIZE(ImGuiIO::MouseDown) == ImGuiMouseButton_COUNT && IM_ARRAYSIZE(ImGuiIO::MouseClicked) == ImGuiMouseButton_COUNT); // Our pre-C++11 IM_STATIC_ASSERT() macros triggers warning on modern compilers so we don't use it here. - - // Settings - ConfigFlags = ImGuiConfigFlags_None; - BackendFlags = ImGuiBackendFlags_None; - DisplaySize = ImVec2(-1.0f, -1.0f); - DeltaTime = 1.0f/60.0f; - IniSavingRate = 5.0f; - IniFilename = "imgui.ini"; - LogFilename = "imgui_log.txt"; - MouseDoubleClickTime = 0.30f; - MouseDoubleClickMaxDist = 6.0f; - for (int i = 0; i < ImGuiKey_COUNT; i++) - KeyMap[i] = -1; - KeyRepeatDelay = 0.275f; - KeyRepeatRate = 0.050f; - UserData = NULL; - - Fonts = NULL; - FontGlobalScale = 1.0f; - FontDefault = NULL; - FontAllowUserScaling = false; - DisplayFramebufferScale = ImVec2(1.0f, 1.0f); - - // Miscellaneous options - MouseDrawCursor = false; -#ifdef __APPLE__ - ConfigMacOSXBehaviors = true; // Set Mac OS X style defaults based on __APPLE__ compile time flag -#else - ConfigMacOSXBehaviors = false; -#endif - ConfigInputTextCursorBlink = true; - ConfigWindowsResizeFromEdges = true; - ConfigWindowsMoveFromTitleBarOnly = false; - ConfigWindowsMemoryCompactTimer = 60.0f; - - // Platform Functions - BackendPlatformName = BackendRendererName = NULL; - BackendPlatformUserData = BackendRendererUserData = BackendLanguageUserData = NULL; - GetClipboardTextFn = GetClipboardTextFn_DefaultImpl; // Platform dependent default implementations - SetClipboardTextFn = SetClipboardTextFn_DefaultImpl; - ClipboardUserData = NULL; - ImeSetInputScreenPosFn = ImeSetInputScreenPosFn_DefaultImpl; - ImeWindowHandle = NULL; - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - RenderDrawListsFn = NULL; -#endif - - // Input (NB: we already have memset zero the entire structure!) - MousePos = ImVec2(-FLT_MAX, -FLT_MAX); - MousePosPrev = ImVec2(-FLT_MAX, -FLT_MAX); - MouseDragThreshold = 6.0f; - for (int i = 0; i < IM_ARRAYSIZE(MouseDownDuration); i++) MouseDownDuration[i] = MouseDownDurationPrev[i] = -1.0f; - for (int i = 0; i < IM_ARRAYSIZE(KeysDownDuration); i++) KeysDownDuration[i] = KeysDownDurationPrev[i] = -1.0f; - for (int i = 0; i < IM_ARRAYSIZE(NavInputsDownDuration); i++) NavInputsDownDuration[i] = -1.0f; -} - -// Pass in translated ASCII characters for text input. -// - with glfw you can get those from the callback set in glfwSetCharCallback() -// - on Windows you can get those using ToAscii+keyboard state, or via the WM_CHAR message -void ImGuiIO::AddInputCharacter(unsigned int c) -{ - InputQueueCharacters.push_back(c > 0 && c <= IM_UNICODE_CODEPOINT_MAX ? (ImWchar)c : IM_UNICODE_CODEPOINT_INVALID); -} - -// UTF16 strings use surrogate pairs to encode codepoints >= 0x10000, so -// we should save the high surrogate. -void ImGuiIO::AddInputCharacterUTF16(ImWchar16 c) -{ - if ((c & 0xFC00) == 0xD800) // High surrogate, must save - { - if (InputQueueSurrogate != 0) - InputQueueCharacters.push_back(0xFFFD); - InputQueueSurrogate = c; - return; - } - - ImWchar cp = c; - if (InputQueueSurrogate != 0) - { - if ((c & 0xFC00) != 0xDC00) // Invalid low surrogate - InputQueueCharacters.push_back(IM_UNICODE_CODEPOINT_INVALID); - else if (IM_UNICODE_CODEPOINT_MAX == (0xFFFF)) // Codepoint will not fit in ImWchar (extra parenthesis around 0xFFFF somehow fixes -Wunreachable-code with Clang) - cp = IM_UNICODE_CODEPOINT_INVALID; - else - cp = (ImWchar)(((InputQueueSurrogate - 0xD800) << 10) + (c - 0xDC00) + 0x10000); - InputQueueSurrogate = 0; - } - InputQueueCharacters.push_back(cp); -} - -void ImGuiIO::AddInputCharactersUTF8(const char* utf8_chars) -{ - while (*utf8_chars != 0) - { - unsigned int c = 0; - utf8_chars += ImTextCharFromUtf8(&c, utf8_chars, NULL); - if (c > 0) - InputQueueCharacters.push_back((ImWchar)c); - } -} - -void ImGuiIO::ClearInputCharacters() -{ - InputQueueCharacters.resize(0); -} - -//----------------------------------------------------------------------------- -// [SECTION] MISC HELPERS/UTILITIES (Geometry functions) -//----------------------------------------------------------------------------- - -ImVec2 ImBezierClosestPoint(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& p, int num_segments) -{ - IM_ASSERT(num_segments > 0); // Use ImBezierClosestPointCasteljau() - ImVec2 p_last = p1; - ImVec2 p_closest; - float p_closest_dist2 = FLT_MAX; - float t_step = 1.0f / (float)num_segments; - for (int i_step = 1; i_step <= num_segments; i_step++) - { - ImVec2 p_current = ImBezierCalc(p1, p2, p3, p4, t_step * i_step); - ImVec2 p_line = ImLineClosestPoint(p_last, p_current, p); - float dist2 = ImLengthSqr(p - p_line); - if (dist2 < p_closest_dist2) - { - p_closest = p_line; - p_closest_dist2 = dist2; - } - p_last = p_current; - } - return p_closest; -} - -// Closely mimics PathBezierToCasteljau() in imgui_draw.cpp -static void BezierClosestPointCasteljauStep(const ImVec2& p, ImVec2& p_closest, ImVec2& p_last, float& p_closest_dist2, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, float tess_tol, int level) -{ - float dx = x4 - x1; - float dy = y4 - y1; - float d2 = ((x2 - x4) * dy - (y2 - y4) * dx); - float d3 = ((x3 - x4) * dy - (y3 - y4) * dx); - d2 = (d2 >= 0) ? d2 : -d2; - d3 = (d3 >= 0) ? d3 : -d3; - if ((d2+d3) * (d2+d3) < tess_tol * (dx*dx + dy*dy)) - { - ImVec2 p_current(x4, y4); - ImVec2 p_line = ImLineClosestPoint(p_last, p_current, p); - float dist2 = ImLengthSqr(p - p_line); - if (dist2 < p_closest_dist2) - { - p_closest = p_line; - p_closest_dist2 = dist2; - } - p_last = p_current; - } - else if (level < 10) - { - float x12 = (x1+x2)*0.5f, y12 = (y1+y2)*0.5f; - float x23 = (x2+x3)*0.5f, y23 = (y2+y3)*0.5f; - float x34 = (x3+x4)*0.5f, y34 = (y3+y4)*0.5f; - float x123 = (x12+x23)*0.5f, y123 = (y12+y23)*0.5f; - float x234 = (x23+x34)*0.5f, y234 = (y23+y34)*0.5f; - float x1234 = (x123+x234)*0.5f, y1234 = (y123+y234)*0.5f; - BezierClosestPointCasteljauStep(p, p_closest, p_last, p_closest_dist2, x1, y1, x12, y12, x123, y123, x1234, y1234, tess_tol, level + 1); - BezierClosestPointCasteljauStep(p, p_closest, p_last, p_closest_dist2, x1234, y1234, x234, y234, x34, y34, x4, y4, tess_tol, level + 1); - } -} - -// tess_tol is generally the same value you would find in ImGui::GetStyle().CurveTessellationTol -// Because those ImXXX functions are lower-level than ImGui:: we cannot access this value automatically. -ImVec2 ImBezierClosestPointCasteljau(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& p, float tess_tol) -{ - IM_ASSERT(tess_tol > 0.0f); - ImVec2 p_last = p1; - ImVec2 p_closest; - float p_closest_dist2 = FLT_MAX; - BezierClosestPointCasteljauStep(p, p_closest, p_last, p_closest_dist2, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, tess_tol, 0); - return p_closest; -} - -ImVec2 ImLineClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& p) -{ - ImVec2 ap = p - a; - ImVec2 ab_dir = b - a; - float dot = ap.x * ab_dir.x + ap.y * ab_dir.y; - if (dot < 0.0f) - return a; - float ab_len_sqr = ab_dir.x * ab_dir.x + ab_dir.y * ab_dir.y; - if (dot > ab_len_sqr) - return b; - return a + ab_dir * dot / ab_len_sqr; -} - -bool ImTriangleContainsPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p) -{ - bool b1 = ((p.x - b.x) * (a.y - b.y) - (p.y - b.y) * (a.x - b.x)) < 0.0f; - bool b2 = ((p.x - c.x) * (b.y - c.y) - (p.y - c.y) * (b.x - c.x)) < 0.0f; - bool b3 = ((p.x - a.x) * (c.y - a.y) - (p.y - a.y) * (c.x - a.x)) < 0.0f; - return ((b1 == b2) && (b2 == b3)); -} - -void ImTriangleBarycentricCoords(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p, float& out_u, float& out_v, float& out_w) -{ - ImVec2 v0 = b - a; - ImVec2 v1 = c - a; - ImVec2 v2 = p - a; - const float denom = v0.x * v1.y - v1.x * v0.y; - out_v = (v2.x * v1.y - v1.x * v2.y) / denom; - out_w = (v0.x * v2.y - v2.x * v0.y) / denom; - out_u = 1.0f - out_v - out_w; -} - -ImVec2 ImTriangleClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p) -{ - ImVec2 proj_ab = ImLineClosestPoint(a, b, p); - ImVec2 proj_bc = ImLineClosestPoint(b, c, p); - ImVec2 proj_ca = ImLineClosestPoint(c, a, p); - float dist2_ab = ImLengthSqr(p - proj_ab); - float dist2_bc = ImLengthSqr(p - proj_bc); - float dist2_ca = ImLengthSqr(p - proj_ca); - float m = ImMin(dist2_ab, ImMin(dist2_bc, dist2_ca)); - if (m == dist2_ab) - return proj_ab; - if (m == dist2_bc) - return proj_bc; - return proj_ca; -} - -//----------------------------------------------------------------------------- -// [SECTION] MISC HELPERS/UTILITIES (String, Format, Hash functions) -//----------------------------------------------------------------------------- - -// Consider using _stricmp/_strnicmp under Windows or strcasecmp/strncasecmp. We don't actually use either ImStricmp/ImStrnicmp in the codebase any more. -int ImStricmp(const char* str1, const char* str2) -{ - int d; - while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } - return d; -} - -int ImStrnicmp(const char* str1, const char* str2, size_t count) -{ - int d = 0; - while (count > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; count--; } - return d; -} - -void ImStrncpy(char* dst, const char* src, size_t count) -{ - if (count < 1) - return; - if (count > 1) - strncpy(dst, src, count - 1); - dst[count - 1] = 0; -} - -char* ImStrdup(const char* str) -{ - size_t len = strlen(str); - void* buf = IM_ALLOC(len + 1); - return (char*)memcpy(buf, (const void*)str, len + 1); -} - -char* ImStrdupcpy(char* dst, size_t* p_dst_size, const char* src) -{ - size_t dst_buf_size = p_dst_size ? *p_dst_size : strlen(dst) + 1; - size_t src_size = strlen(src) + 1; - if (dst_buf_size < src_size) - { - IM_FREE(dst); - dst = (char*)IM_ALLOC(src_size); - if (p_dst_size) - *p_dst_size = src_size; - } - return (char*)memcpy(dst, (const void*)src, src_size); -} - -const char* ImStrchrRange(const char* str, const char* str_end, char c) -{ - const char* p = (const char*)memchr(str, (int)c, str_end - str); - return p; -} - -int ImStrlenW(const ImWchar* str) -{ - //return (int)wcslen((const wchar_t*)str); // FIXME-OPT: Could use this when wchar_t are 16-bit - int n = 0; - while (*str++) n++; - return n; -} - -// Find end-of-line. Return pointer will point to either first \n, either str_end. -const char* ImStreolRange(const char* str, const char* str_end) -{ - const char* p = (const char*)memchr(str, '\n', str_end - str); - return p ? p : str_end; -} - -const ImWchar* ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin) // find beginning-of-line -{ - while (buf_mid_line > buf_begin && buf_mid_line[-1] != '\n') - buf_mid_line--; - return buf_mid_line; -} - -const char* ImStristr(const char* haystack, const char* haystack_end, const char* needle, const char* needle_end) -{ - if (!needle_end) - needle_end = needle + strlen(needle); - - const char un0 = (char)toupper(*needle); - while ((!haystack_end && *haystack) || (haystack_end && haystack < haystack_end)) - { - if (toupper(*haystack) == un0) - { - const char* b = needle + 1; - for (const char* a = haystack + 1; b < needle_end; a++, b++) - if (toupper(*a) != toupper(*b)) - break; - if (b == needle_end) - return haystack; - } - haystack++; - } - return NULL; -} - -// Trim str by offsetting contents when there's leading data + writing a \0 at the trailing position. We use this in situation where the cost is negligible. -void ImStrTrimBlanks(char* buf) -{ - char* p = buf; - while (p[0] == ' ' || p[0] == '\t') // Leading blanks - p++; - char* p_start = p; - while (*p != 0) // Find end of string - p++; - while (p > p_start && (p[-1] == ' ' || p[-1] == '\t')) // Trailing blanks - p--; - if (p_start != buf) // Copy memory if we had leading blanks - memmove(buf, p_start, p - p_start); - buf[p - p_start] = 0; // Zero terminate -} - -const char* ImStrSkipBlank(const char* str) -{ - while (str[0] == ' ' || str[0] == '\t') - str++; - return str; -} - -// A) MSVC version appears to return -1 on overflow, whereas glibc appears to return total count (which may be >= buf_size). -// Ideally we would test for only one of those limits at runtime depending on the behavior the vsnprintf(), but trying to deduct it at compile time sounds like a pandora can of worm. -// B) When buf==NULL vsnprintf() will return the output size. -#ifndef IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS - -// We support stb_sprintf which is much faster (see: https://github.com/nothings/stb/blob/master/stb_sprintf.h) -// You may set IMGUI_USE_STB_SPRINTF to use our default wrapper, or set IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS -// and setup the wrapper yourself. (FIXME-OPT: Some of our high-level operations such as ImGuiTextBuffer::appendfv() are -// designed using two-passes worst case, which probably could be improved using the stbsp_vsprintfcb() function.) -#ifdef IMGUI_USE_STB_SPRINTF -#define STB_SPRINTF_IMPLEMENTATION -#include "stb_sprintf.h" -#endif - -#if defined(_MSC_VER) && !defined(vsnprintf) -#define vsnprintf _vsnprintf -#endif - -int ImFormatString(char* buf, size_t buf_size, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); -#ifdef IMGUI_USE_STB_SPRINTF - int w = stbsp_vsnprintf(buf, (int)buf_size, fmt, args); -#else - int w = vsnprintf(buf, buf_size, fmt, args); -#endif - va_end(args); - if (buf == NULL) - return w; - if (w == -1 || w >= (int)buf_size) - w = (int)buf_size - 1; - buf[w] = 0; - return w; -} - -int ImFormatStringV(char* buf, size_t buf_size, const char* fmt, va_list args) -{ -#ifdef IMGUI_USE_STB_SPRINTF - int w = stbsp_vsnprintf(buf, (int)buf_size, fmt, args); -#else - int w = vsnprintf(buf, buf_size, fmt, args); -#endif - if (buf == NULL) - return w; - if (w == -1 || w >= (int)buf_size) - w = (int)buf_size - 1; - buf[w] = 0; - return w; -} -#endif // #ifdef IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS - -// CRC32 needs a 1KB lookup table (not cache friendly) -// Although the code to generate the table is simple and shorter than the table itself, using a const table allows us to easily: -// - avoid an unnecessary branch/memory tap, - keep the ImHashXXX functions usable by static constructors, - make it thread-safe. -static const ImU32 GCrc32LookupTable[256] = -{ - 0x00000000,0x77073096,0xEE0E612C,0x990951BA,0x076DC419,0x706AF48F,0xE963A535,0x9E6495A3,0x0EDB8832,0x79DCB8A4,0xE0D5E91E,0x97D2D988,0x09B64C2B,0x7EB17CBD,0xE7B82D07,0x90BF1D91, - 0x1DB71064,0x6AB020F2,0xF3B97148,0x84BE41DE,0x1ADAD47D,0x6DDDE4EB,0xF4D4B551,0x83D385C7,0x136C9856,0x646BA8C0,0xFD62F97A,0x8A65C9EC,0x14015C4F,0x63066CD9,0xFA0F3D63,0x8D080DF5, - 0x3B6E20C8,0x4C69105E,0xD56041E4,0xA2677172,0x3C03E4D1,0x4B04D447,0xD20D85FD,0xA50AB56B,0x35B5A8FA,0x42B2986C,0xDBBBC9D6,0xACBCF940,0x32D86CE3,0x45DF5C75,0xDCD60DCF,0xABD13D59, - 0x26D930AC,0x51DE003A,0xC8D75180,0xBFD06116,0x21B4F4B5,0x56B3C423,0xCFBA9599,0xB8BDA50F,0x2802B89E,0x5F058808,0xC60CD9B2,0xB10BE924,0x2F6F7C87,0x58684C11,0xC1611DAB,0xB6662D3D, - 0x76DC4190,0x01DB7106,0x98D220BC,0xEFD5102A,0x71B18589,0x06B6B51F,0x9FBFE4A5,0xE8B8D433,0x7807C9A2,0x0F00F934,0x9609A88E,0xE10E9818,0x7F6A0DBB,0x086D3D2D,0x91646C97,0xE6635C01, - 0x6B6B51F4,0x1C6C6162,0x856530D8,0xF262004E,0x6C0695ED,0x1B01A57B,0x8208F4C1,0xF50FC457,0x65B0D9C6,0x12B7E950,0x8BBEB8EA,0xFCB9887C,0x62DD1DDF,0x15DA2D49,0x8CD37CF3,0xFBD44C65, - 0x4DB26158,0x3AB551CE,0xA3BC0074,0xD4BB30E2,0x4ADFA541,0x3DD895D7,0xA4D1C46D,0xD3D6F4FB,0x4369E96A,0x346ED9FC,0xAD678846,0xDA60B8D0,0x44042D73,0x33031DE5,0xAA0A4C5F,0xDD0D7CC9, - 0x5005713C,0x270241AA,0xBE0B1010,0xC90C2086,0x5768B525,0x206F85B3,0xB966D409,0xCE61E49F,0x5EDEF90E,0x29D9C998,0xB0D09822,0xC7D7A8B4,0x59B33D17,0x2EB40D81,0xB7BD5C3B,0xC0BA6CAD, - 0xEDB88320,0x9ABFB3B6,0x03B6E20C,0x74B1D29A,0xEAD54739,0x9DD277AF,0x04DB2615,0x73DC1683,0xE3630B12,0x94643B84,0x0D6D6A3E,0x7A6A5AA8,0xE40ECF0B,0x9309FF9D,0x0A00AE27,0x7D079EB1, - 0xF00F9344,0x8708A3D2,0x1E01F268,0x6906C2FE,0xF762575D,0x806567CB,0x196C3671,0x6E6B06E7,0xFED41B76,0x89D32BE0,0x10DA7A5A,0x67DD4ACC,0xF9B9DF6F,0x8EBEEFF9,0x17B7BE43,0x60B08ED5, - 0xD6D6A3E8,0xA1D1937E,0x38D8C2C4,0x4FDFF252,0xD1BB67F1,0xA6BC5767,0x3FB506DD,0x48B2364B,0xD80D2BDA,0xAF0A1B4C,0x36034AF6,0x41047A60,0xDF60EFC3,0xA867DF55,0x316E8EEF,0x4669BE79, - 0xCB61B38C,0xBC66831A,0x256FD2A0,0x5268E236,0xCC0C7795,0xBB0B4703,0x220216B9,0x5505262F,0xC5BA3BBE,0xB2BD0B28,0x2BB45A92,0x5CB36A04,0xC2D7FFA7,0xB5D0CF31,0x2CD99E8B,0x5BDEAE1D, - 0x9B64C2B0,0xEC63F226,0x756AA39C,0x026D930A,0x9C0906A9,0xEB0E363F,0x72076785,0x05005713,0x95BF4A82,0xE2B87A14,0x7BB12BAE,0x0CB61B38,0x92D28E9B,0xE5D5BE0D,0x7CDCEFB7,0x0BDBDF21, - 0x86D3D2D4,0xF1D4E242,0x68DDB3F8,0x1FDA836E,0x81BE16CD,0xF6B9265B,0x6FB077E1,0x18B74777,0x88085AE6,0xFF0F6A70,0x66063BCA,0x11010B5C,0x8F659EFF,0xF862AE69,0x616BFFD3,0x166CCF45, - 0xA00AE278,0xD70DD2EE,0x4E048354,0x3903B3C2,0xA7672661,0xD06016F7,0x4969474D,0x3E6E77DB,0xAED16A4A,0xD9D65ADC,0x40DF0B66,0x37D83BF0,0xA9BCAE53,0xDEBB9EC5,0x47B2CF7F,0x30B5FFE9, - 0xBDBDF21C,0xCABAC28A,0x53B39330,0x24B4A3A6,0xBAD03605,0xCDD70693,0x54DE5729,0x23D967BF,0xB3667A2E,0xC4614AB8,0x5D681B02,0x2A6F2B94,0xB40BBE37,0xC30C8EA1,0x5A05DF1B,0x2D02EF8D, -}; - -// Known size hash -// It is ok to call ImHashData on a string with known length but the ### operator won't be supported. -// FIXME-OPT: Replace with e.g. FNV1a hash? CRC32 pretty much randomly access 1KB. Need to do proper measurements. -ImU32 ImHashData(const void* data_p, size_t data_size, ImU32 seed) -{ - ImU32 crc = ~seed; - const unsigned char* data = (const unsigned char*)data_p; - const ImU32* crc32_lut = GCrc32LookupTable; - while (data_size-- != 0) - crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ *data++]; - return ~crc; -} - -// Zero-terminated string hash, with support for ### to reset back to seed value -// We support a syntax of "label###id" where only "###id" is included in the hash, and only "label" gets displayed. -// Because this syntax is rarely used we are optimizing for the common case. -// - If we reach ### in the string we discard the hash so far and reset to the seed. -// - We don't do 'current += 2; continue;' after handling ### to keep the code smaller/faster (measured ~10% diff in Debug build) -// FIXME-OPT: Replace with e.g. FNV1a hash? CRC32 pretty much randomly access 1KB. Need to do proper measurements. -ImU32 ImHashStr(const char* data_p, size_t data_size, ImU32 seed) -{ - seed = ~seed; - ImU32 crc = seed; - const unsigned char* data = (const unsigned char*)data_p; - const ImU32* crc32_lut = GCrc32LookupTable; - if (data_size != 0) - { - while (data_size-- != 0) - { - unsigned char c = *data++; - if (c == '#' && data_size >= 2 && data[0] == '#' && data[1] == '#') - crc = seed; - crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ c]; - } - } - else - { - while (unsigned char c = *data++) - { - if (c == '#' && data[0] == '#' && data[1] == '#') - crc = seed; - crc = (crc >> 8) ^ crc32_lut[(crc & 0xFF) ^ c]; - } - } - return ~crc; -} - -//----------------------------------------------------------------------------- -// [SECTION] MISC HELPERS/UTILITIES (File functions) -//----------------------------------------------------------------------------- - -// Default file functions -#ifndef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS - -ImFileHandle ImFileOpen(const char* filename, const char* mode) -{ -#if defined(_WIN32) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) && !defined(__CYGWIN__) && !defined(__GNUC__) - // We need a fopen() wrapper because MSVC/Windows fopen doesn't handle UTF-8 filenames. - // Previously we used ImTextCountCharsFromUtf8/ImTextStrFromUtf8 here but we now need to support ImWchar16 and ImWchar32! - const int filename_wsize = ::MultiByteToWideChar(CP_UTF8, 0, filename, -1, NULL, 0); - const int mode_wsize = ::MultiByteToWideChar(CP_UTF8, 0, mode, -1, NULL, 0); - ImVector buf; - buf.resize(filename_wsize + mode_wsize); - ::MultiByteToWideChar(CP_UTF8, 0, filename, -1, (wchar_t*)&buf[0], filename_wsize); - ::MultiByteToWideChar(CP_UTF8, 0, mode, -1, (wchar_t*)&buf[filename_wsize], mode_wsize); - return ::_wfopen((const wchar_t*)&buf[0], (const wchar_t*)&buf[filename_wsize]); -#else - return fopen(filename, mode); -#endif -} - -// We should in theory be using fseeko()/ftello() with off_t and _fseeki64()/_ftelli64() with __int64, waiting for the PR that does that in a very portable pre-C++11 zero-warnings way. -bool ImFileClose(ImFileHandle f) { return fclose(f) == 0; } -ImU64 ImFileGetSize(ImFileHandle f) { long off = 0, sz = 0; return ((off = ftell(f)) != -1 && !fseek(f, 0, SEEK_END) && (sz = ftell(f)) != -1 && !fseek(f, off, SEEK_SET)) ? (ImU64)sz : (ImU64)-1; } -ImU64 ImFileRead(void* data, ImU64 sz, ImU64 count, ImFileHandle f) { return fread(data, (size_t)sz, (size_t)count, f); } -ImU64 ImFileWrite(const void* data, ImU64 sz, ImU64 count, ImFileHandle f) { return fwrite(data, (size_t)sz, (size_t)count, f); } -#endif // #ifndef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS - -// Helper: Load file content into memory -// Memory allocated with IM_ALLOC(), must be freed by user using IM_FREE() == ImGui::MemFree() -// This can't really be used with "rt" because fseek size won't match read size. -void* ImFileLoadToMemory(const char* filename, const char* mode, size_t* out_file_size, int padding_bytes) -{ - IM_ASSERT(filename && mode); - if (out_file_size) - *out_file_size = 0; - - ImFileHandle f; - if ((f = ImFileOpen(filename, mode)) == NULL) - return NULL; - - size_t file_size = (size_t)ImFileGetSize(f); - if (file_size == (size_t)-1) - { - ImFileClose(f); - return NULL; - } - - void* file_data = IM_ALLOC(file_size + padding_bytes); - if (file_data == NULL) - { - ImFileClose(f); - return NULL; - } - if (ImFileRead(file_data, 1, file_size, f) != file_size) - { - ImFileClose(f); - IM_FREE(file_data); - return NULL; - } - if (padding_bytes > 0) - memset((void*)(((char*)file_data) + file_size), 0, (size_t)padding_bytes); - - ImFileClose(f); - if (out_file_size) - *out_file_size = file_size; - - return file_data; -} - -//----------------------------------------------------------------------------- -// [SECTION] MISC HELPERS/UTILITIES (ImText* functions) -//----------------------------------------------------------------------------- - -// Convert UTF-8 to 32-bit character, process single character input. -// Based on stb_from_utf8() from github.com/nothings/stb/ -// We handle UTF-8 decoding error by skipping forward. -int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end) -{ - unsigned int c = (unsigned int)-1; - const unsigned char* str = (const unsigned char*)in_text; - if (!(*str & 0x80)) - { - c = (unsigned int)(*str++); - *out_char = c; - return 1; - } - if ((*str & 0xe0) == 0xc0) - { - *out_char = IM_UNICODE_CODEPOINT_INVALID; // will be invalid but not end of string - if (in_text_end && in_text_end - (const char*)str < 2) return 1; - if (*str < 0xc2) return 2; - c = (unsigned int)((*str++ & 0x1f) << 6); - if ((*str & 0xc0) != 0x80) return 2; - c += (*str++ & 0x3f); - *out_char = c; - return 2; - } - if ((*str & 0xf0) == 0xe0) - { - *out_char = IM_UNICODE_CODEPOINT_INVALID; // will be invalid but not end of string - if (in_text_end && in_text_end - (const char*)str < 3) return 1; - if (*str == 0xe0 && (str[1] < 0xa0 || str[1] > 0xbf)) return 3; - if (*str == 0xed && str[1] > 0x9f) return 3; // str[1] < 0x80 is checked below - c = (unsigned int)((*str++ & 0x0f) << 12); - if ((*str & 0xc0) != 0x80) return 3; - c += (unsigned int)((*str++ & 0x3f) << 6); - if ((*str & 0xc0) != 0x80) return 3; - c += (*str++ & 0x3f); - *out_char = c; - return 3; - } - if ((*str & 0xf8) == 0xf0) - { - *out_char = IM_UNICODE_CODEPOINT_INVALID; // will be invalid but not end of string - if (in_text_end && in_text_end - (const char*)str < 4) return 1; - if (*str > 0xf4) return 4; - if (*str == 0xf0 && (str[1] < 0x90 || str[1] > 0xbf)) return 4; - if (*str == 0xf4 && str[1] > 0x8f) return 4; // str[1] < 0x80 is checked below - c = (unsigned int)((*str++ & 0x07) << 18); - if ((*str & 0xc0) != 0x80) return 4; - c += (unsigned int)((*str++ & 0x3f) << 12); - if ((*str & 0xc0) != 0x80) return 4; - c += (unsigned int)((*str++ & 0x3f) << 6); - if ((*str & 0xc0) != 0x80) return 4; - c += (*str++ & 0x3f); - // utf-8 encodings of values used in surrogate pairs are invalid - if ((c & 0xFFFFF800) == 0xD800) return 4; - // If codepoint does not fit in ImWchar, use replacement character U+FFFD instead - if (c > IM_UNICODE_CODEPOINT_MAX) c = IM_UNICODE_CODEPOINT_INVALID; - *out_char = c; - return 4; - } - *out_char = 0; - return 0; -} - -int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_text_remaining) -{ - ImWchar* buf_out = buf; - ImWchar* buf_end = buf + buf_size; - while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c; - in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); - if (c == 0) - break; - *buf_out++ = (ImWchar)c; - } - *buf_out = 0; - if (in_text_remaining) - *in_text_remaining = in_text; - return (int)(buf_out - buf); -} - -int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end) -{ - int char_count = 0; - while ((!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c; - in_text += ImTextCharFromUtf8(&c, in_text, in_text_end); - if (c == 0) - break; - char_count++; - } - return char_count; -} - -// Based on stb_to_utf8() from github.com/nothings/stb/ -static inline int ImTextCharToUtf8(char* buf, int buf_size, unsigned int c) -{ - if (c < 0x80) - { - buf[0] = (char)c; - return 1; - } - if (c < 0x800) - { - if (buf_size < 2) return 0; - buf[0] = (char)(0xc0 + (c >> 6)); - buf[1] = (char)(0x80 + (c & 0x3f)); - return 2; - } - if (c < 0x10000) - { - if (buf_size < 3) return 0; - buf[0] = (char)(0xe0 + (c >> 12)); - buf[1] = (char)(0x80 + ((c>> 6) & 0x3f)); - buf[2] = (char)(0x80 + ((c ) & 0x3f)); - return 3; - } - if (c <= 0x10FFFF) - { - if (buf_size < 4) return 0; - buf[0] = (char)(0xf0 + (c >> 18)); - buf[1] = (char)(0x80 + ((c >> 12) & 0x3f)); - buf[2] = (char)(0x80 + ((c >> 6) & 0x3f)); - buf[3] = (char)(0x80 + ((c ) & 0x3f)); - return 4; - } - // Invalid code point, the max unicode is 0x10FFFF - return 0; -} - -// Not optimal but we very rarely use this function. -int ImTextCountUtf8BytesFromChar(const char* in_text, const char* in_text_end) -{ - unsigned int dummy = 0; - return ImTextCharFromUtf8(&dummy, in_text, in_text_end); -} - -static inline int ImTextCountUtf8BytesFromChar(unsigned int c) -{ - if (c < 0x80) return 1; - if (c < 0x800) return 2; - if (c < 0x10000) return 3; - if (c <= 0x10FFFF) return 4; - return 3; -} - -int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end) -{ - char* buf_out = buf; - const char* buf_end = buf + buf_size; - while (buf_out < buf_end-1 && (!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c = (unsigned int)(*in_text++); - if (c < 0x80) - *buf_out++ = (char)c; - else - buf_out += ImTextCharToUtf8(buf_out, (int)(buf_end-buf_out-1), c); - } - *buf_out = 0; - return (int)(buf_out - buf); -} - -int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end) -{ - int bytes_count = 0; - while ((!in_text_end || in_text < in_text_end) && *in_text) - { - unsigned int c = (unsigned int)(*in_text++); - if (c < 0x80) - bytes_count++; - else - bytes_count += ImTextCountUtf8BytesFromChar(c); - } - return bytes_count; -} - -//----------------------------------------------------------------------------- -// [SECTION] MISC HELPERS/UTILITIES (Color functions) -// Note: The Convert functions are early design which are not consistent with other API. -//----------------------------------------------------------------------------- - -IMGUI_API ImU32 ImAlphaBlendColors(ImU32 col_a, ImU32 col_b) -{ - float t = ((col_b >> IM_COL32_A_SHIFT) & 0xFF) / 255.f; - int r = ImLerp((int)(col_a >> IM_COL32_R_SHIFT) & 0xFF, (int)(col_b >> IM_COL32_R_SHIFT) & 0xFF, t); - int g = ImLerp((int)(col_a >> IM_COL32_G_SHIFT) & 0xFF, (int)(col_b >> IM_COL32_G_SHIFT) & 0xFF, t); - int b = ImLerp((int)(col_a >> IM_COL32_B_SHIFT) & 0xFF, (int)(col_b >> IM_COL32_B_SHIFT) & 0xFF, t); - return IM_COL32(r, g, b, 0xFF); -} - -ImVec4 ImGui::ColorConvertU32ToFloat4(ImU32 in) -{ - float s = 1.0f/255.0f; - return ImVec4( - ((in >> IM_COL32_R_SHIFT) & 0xFF) * s, - ((in >> IM_COL32_G_SHIFT) & 0xFF) * s, - ((in >> IM_COL32_B_SHIFT) & 0xFF) * s, - ((in >> IM_COL32_A_SHIFT) & 0xFF) * s); -} - -ImU32 ImGui::ColorConvertFloat4ToU32(const ImVec4& in) -{ - ImU32 out; - out = ((ImU32)IM_F32_TO_INT8_SAT(in.x)) << IM_COL32_R_SHIFT; - out |= ((ImU32)IM_F32_TO_INT8_SAT(in.y)) << IM_COL32_G_SHIFT; - out |= ((ImU32)IM_F32_TO_INT8_SAT(in.z)) << IM_COL32_B_SHIFT; - out |= ((ImU32)IM_F32_TO_INT8_SAT(in.w)) << IM_COL32_A_SHIFT; - return out; -} - -// Convert rgb floats ([0-1],[0-1],[0-1]) to hsv floats ([0-1],[0-1],[0-1]), from Foley & van Dam p592 -// Optimized http://lolengine.net/blog/2013/01/13/fast-rgb-to-hsv -void ImGui::ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v) -{ - float K = 0.f; - if (g < b) - { - ImSwap(g, b); - K = -1.f; - } - if (r < g) - { - ImSwap(r, g); - K = -2.f / 6.f - K; - } - - const float chroma = r - (g < b ? g : b); - out_h = ImFabs(K + (g - b) / (6.f * chroma + 1e-20f)); - out_s = chroma / (r + 1e-20f); - out_v = r; -} - -// Convert hsv floats ([0-1],[0-1],[0-1]) to rgb floats ([0-1],[0-1],[0-1]), from Foley & van Dam p593 -// also http://en.wikipedia.org/wiki/HSL_and_HSV -void ImGui::ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b) -{ - if (s == 0.0f) - { - // gray - out_r = out_g = out_b = v; - return; - } - - h = ImFmod(h, 1.0f) / (60.0f/360.0f); - int i = (int)h; - float f = h - (float)i; - float p = v * (1.0f - s); - float q = v * (1.0f - s * f); - float t = v * (1.0f - s * (1.0f - f)); - - switch (i) - { - case 0: out_r = v; out_g = t; out_b = p; break; - case 1: out_r = q; out_g = v; out_b = p; break; - case 2: out_r = p; out_g = v; out_b = t; break; - case 3: out_r = p; out_g = q; out_b = v; break; - case 4: out_r = t; out_g = p; out_b = v; break; - case 5: default: out_r = v; out_g = p; out_b = q; break; - } -} - -//----------------------------------------------------------------------------- -// [SECTION] ImGuiStorage -// Helper: Key->value storage -//----------------------------------------------------------------------------- - -// std::lower_bound but without the bullshit -static ImGuiStorage::ImGuiStoragePair* LowerBound(ImVector& data, ImGuiID key) -{ - ImGuiStorage::ImGuiStoragePair* first = data.Data; - ImGuiStorage::ImGuiStoragePair* last = data.Data + data.Size; - size_t count = (size_t)(last - first); - while (count > 0) - { - size_t count2 = count >> 1; - ImGuiStorage::ImGuiStoragePair* mid = first + count2; - if (mid->key < key) - { - first = ++mid; - count -= count2 + 1; - } - else - { - count = count2; - } - } - return first; -} - -// For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once. -void ImGuiStorage::BuildSortByKey() -{ - struct StaticFunc - { - static int IMGUI_CDECL PairCompareByID(const void* lhs, const void* rhs) - { - // We can't just do a subtraction because qsort uses signed integers and subtracting our ID doesn't play well with that. - if (((const ImGuiStoragePair*)lhs)->key > ((const ImGuiStoragePair*)rhs)->key) return +1; - if (((const ImGuiStoragePair*)lhs)->key < ((const ImGuiStoragePair*)rhs)->key) return -1; - return 0; - } - }; - if (Data.Size > 1) - ImQsort(Data.Data, (size_t)Data.Size, sizeof(ImGuiStoragePair), StaticFunc::PairCompareByID); -} - -int ImGuiStorage::GetInt(ImGuiID key, int default_val) const -{ - ImGuiStoragePair* it = LowerBound(const_cast&>(Data), key); - if (it == Data.end() || it->key != key) - return default_val; - return it->val_i; -} - -bool ImGuiStorage::GetBool(ImGuiID key, bool default_val) const -{ - return GetInt(key, default_val ? 1 : 0) != 0; -} - -float ImGuiStorage::GetFloat(ImGuiID key, float default_val) const -{ - ImGuiStoragePair* it = LowerBound(const_cast&>(Data), key); - if (it == Data.end() || it->key != key) - return default_val; - return it->val_f; -} - -void* ImGuiStorage::GetVoidPtr(ImGuiID key) const -{ - ImGuiStoragePair* it = LowerBound(const_cast&>(Data), key); - if (it == Data.end() || it->key != key) - return NULL; - return it->val_p; -} - -// References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. -int* ImGuiStorage::GetIntRef(ImGuiID key, int default_val) -{ - ImGuiStoragePair* it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - it = Data.insert(it, ImGuiStoragePair(key, default_val)); - return &it->val_i; -} - -bool* ImGuiStorage::GetBoolRef(ImGuiID key, bool default_val) -{ - return (bool*)GetIntRef(key, default_val ? 1 : 0); -} - -float* ImGuiStorage::GetFloatRef(ImGuiID key, float default_val) -{ - ImGuiStoragePair* it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - it = Data.insert(it, ImGuiStoragePair(key, default_val)); - return &it->val_f; -} - -void** ImGuiStorage::GetVoidPtrRef(ImGuiID key, void* default_val) -{ - ImGuiStoragePair* it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - it = Data.insert(it, ImGuiStoragePair(key, default_val)); - return &it->val_p; -} - -// FIXME-OPT: Need a way to reuse the result of lower_bound when doing GetInt()/SetInt() - not too bad because it only happens on explicit interaction (maximum one a frame) -void ImGuiStorage::SetInt(ImGuiID key, int val) -{ - ImGuiStoragePair* it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - { - Data.insert(it, ImGuiStoragePair(key, val)); - return; - } - it->val_i = val; -} - -void ImGuiStorage::SetBool(ImGuiID key, bool val) -{ - SetInt(key, val ? 1 : 0); -} - -void ImGuiStorage::SetFloat(ImGuiID key, float val) -{ - ImGuiStoragePair* it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - { - Data.insert(it, ImGuiStoragePair(key, val)); - return; - } - it->val_f = val; -} - -void ImGuiStorage::SetVoidPtr(ImGuiID key, void* val) -{ - ImGuiStoragePair* it = LowerBound(Data, key); - if (it == Data.end() || it->key != key) - { - Data.insert(it, ImGuiStoragePair(key, val)); - return; - } - it->val_p = val; -} - -void ImGuiStorage::SetAllInt(int v) -{ - for (int i = 0; i < Data.Size; i++) - Data[i].val_i = v; -} - -//----------------------------------------------------------------------------- -// [SECTION] ImGuiTextFilter -//----------------------------------------------------------------------------- - -// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" -ImGuiTextFilter::ImGuiTextFilter(const char* default_filter) -{ - if (default_filter) - { - ImStrncpy(InputBuf, default_filter, IM_ARRAYSIZE(InputBuf)); - Build(); - } - else - { - InputBuf[0] = 0; - CountGrep = 0; - } -} - -bool ImGuiTextFilter::Draw(const char* label, float width) -{ - if (width != 0.0f) - ImGui::SetNextItemWidth(width); - bool value_changed = ImGui::InputText(label, InputBuf, IM_ARRAYSIZE(InputBuf)); - if (value_changed) - Build(); - return value_changed; -} - -void ImGuiTextFilter::ImGuiTextRange::split(char separator, ImVector* out) const -{ - out->resize(0); - const char* wb = b; - const char* we = wb; - while (we < e) - { - if (*we == separator) - { - out->push_back(ImGuiTextRange(wb, we)); - wb = we + 1; - } - we++; - } - if (wb != we) - out->push_back(ImGuiTextRange(wb, we)); -} - -void ImGuiTextFilter::Build() -{ - Filters.resize(0); - ImGuiTextRange input_range(InputBuf, InputBuf+strlen(InputBuf)); - input_range.split(',', &Filters); - - CountGrep = 0; - for (int i = 0; i != Filters.Size; i++) - { - ImGuiTextRange& f = Filters[i]; - while (f.b < f.e && ImCharIsBlankA(f.b[0])) - f.b++; - while (f.e > f.b && ImCharIsBlankA(f.e[-1])) - f.e--; - if (f.empty()) - continue; - if (Filters[i].b[0] != '-') - CountGrep += 1; - } -} - -bool ImGuiTextFilter::PassFilter(const char* text, const char* text_end) const -{ - if (Filters.empty()) - return true; - - if (text == NULL) - text = ""; - - for (int i = 0; i != Filters.Size; i++) - { - const ImGuiTextRange& f = Filters[i]; - if (f.empty()) - continue; - if (f.b[0] == '-') - { - // Subtract - if (ImStristr(text, text_end, f.b + 1, f.e) != NULL) - return false; - } - else - { - // Grep - if (ImStristr(text, text_end, f.b, f.e) != NULL) - return true; - } - } - - // Implicit * grep - if (CountGrep == 0) - return true; - - return false; -} - -//----------------------------------------------------------------------------- -// [SECTION] ImGuiTextBuffer -//----------------------------------------------------------------------------- - -// On some platform vsnprintf() takes va_list by reference and modifies it. -// va_copy is the 'correct' way to copy a va_list but Visual Studio prior to 2013 doesn't have it. -#ifndef va_copy -#if defined(__GNUC__) || defined(__clang__) -#define va_copy(dest, src) __builtin_va_copy(dest, src) -#else -#define va_copy(dest, src) (dest = src) -#endif -#endif - -char ImGuiTextBuffer::EmptyString[1] = { 0 }; - -void ImGuiTextBuffer::append(const char* str, const char* str_end) -{ - int len = str_end ? (int)(str_end - str) : (int)strlen(str); - - // Add zero-terminator the first time - const int write_off = (Buf.Size != 0) ? Buf.Size : 1; - const int needed_sz = write_off + len; - if (write_off + len >= Buf.Capacity) - { - int new_capacity = Buf.Capacity * 2; - Buf.reserve(needed_sz > new_capacity ? needed_sz : new_capacity); - } - - Buf.resize(needed_sz); - memcpy(&Buf[write_off - 1], str, (size_t)len); - Buf[write_off - 1 + len] = 0; -} - -void ImGuiTextBuffer::appendf(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - appendfv(fmt, args); - va_end(args); -} - -// Helper: Text buffer for logging/accumulating text -void ImGuiTextBuffer::appendfv(const char* fmt, va_list args) -{ - va_list args_copy; - va_copy(args_copy, args); - - int len = ImFormatStringV(NULL, 0, fmt, args); // FIXME-OPT: could do a first pass write attempt, likely successful on first pass. - if (len <= 0) - { - va_end(args_copy); - return; - } - - // Add zero-terminator the first time - const int write_off = (Buf.Size != 0) ? Buf.Size : 1; - const int needed_sz = write_off + len; - if (write_off + len >= Buf.Capacity) - { - int new_capacity = Buf.Capacity * 2; - Buf.reserve(needed_sz > new_capacity ? needed_sz : new_capacity); - } - - Buf.resize(needed_sz); - ImFormatStringV(&Buf[write_off - 1], (size_t)len + 1, fmt, args_copy); - va_end(args_copy); -} - -//----------------------------------------------------------------------------- -// [SECTION] ImGuiListClipper -// This is currently not as flexible/powerful as it should be and really confusing/spaghetti, mostly because we changed -// the API mid-way through development and support two ways to using the clipper, needs some rework (see TODO) -//----------------------------------------------------------------------------- - -// Helper to calculate coarse clipping of large list of evenly sized items. -// NB: Prefer using the ImGuiListClipper higher-level helper if you can! Read comments and instructions there on how those use this sort of pattern. -// NB: 'items_count' is only used to clamp the result, if you don't know your count you can use INT_MAX -void ImGui::CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (g.LogEnabled) - { - // If logging is active, do not perform any clipping - *out_items_display_start = 0; - *out_items_display_end = items_count; - return; - } - if (window->SkipItems) - { - *out_items_display_start = *out_items_display_end = 0; - return; - } - - // We create the union of the ClipRect and the NavScoringRect which at worst should be 1 page away from ClipRect - ImRect unclipped_rect = window->ClipRect; - if (g.NavMoveRequest) - unclipped_rect.Add(g.NavScoringRect); - if (g.NavJustMovedToId && window->NavLastIds[0] == g.NavJustMovedToId) - unclipped_rect.Add(ImRect(window->Pos + window->NavRectRel[0].Min, window->Pos + window->NavRectRel[0].Max)); - - const ImVec2 pos = window->DC.CursorPos; - int start = (int)((unclipped_rect.Min.y - pos.y) / items_height); - int end = (int)((unclipped_rect.Max.y - pos.y) / items_height); - - // When performing a navigation request, ensure we have one item extra in the direction we are moving to - if (g.NavMoveRequest && g.NavMoveClipDir == ImGuiDir_Up) - start--; - if (g.NavMoveRequest && g.NavMoveClipDir == ImGuiDir_Down) - end++; - - start = ImClamp(start, 0, items_count); - end = ImClamp(end + 1, start, items_count); - *out_items_display_start = start; - *out_items_display_end = end; -} - -static void SetCursorPosYAndSetupDummyPrevLine(float pos_y, float line_height) -{ - // Set cursor position and a few other things so that SetScrollHereY() and Columns() can work when seeking cursor. - // FIXME: It is problematic that we have to do that here, because custom/equivalent end-user code would stumble on the same issue. - // The clipper should probably have a 4th step to display the last item in a regular manner. - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - window->DC.CursorPos.y = pos_y; - window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, pos_y); - window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y - line_height; // Setting those fields so that SetScrollHereY() can properly function after the end of our clipper usage. - window->DC.PrevLineSize.y = (line_height - g.Style.ItemSpacing.y); // If we end up needing more accurate data (to e.g. use SameLine) we may as well make the clipper have a fourth step to let user process and display the last item in their list. - if (ImGuiColumns* columns = window->DC.CurrentColumns) - columns->LineMinY = window->DC.CursorPos.y; // Setting this so that cell Y position are set properly -} - -// Use case A: Begin() called from constructor with items_height<0, then called again from Sync() in StepNo 1 -// Use case B: Begin() called from constructor with items_height>0 -// FIXME-LEGACY: Ideally we should remove the Begin/End functions but they are part of the legacy API we still support. This is why some of the code in Step() calling Begin() and reassign some fields, spaghetti style. -void ImGuiListClipper::Begin(int count, float items_height) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - StartPosY = window->DC.CursorPos.y; - ItemsHeight = items_height; - ItemsCount = count; - StepNo = 0; - DisplayEnd = DisplayStart = -1; - if (ItemsHeight > 0.0f) - { - ImGui::CalcListClipping(ItemsCount, ItemsHeight, &DisplayStart, &DisplayEnd); // calculate how many to clip/display - if (DisplayStart > 0) - SetCursorPosYAndSetupDummyPrevLine(StartPosY + DisplayStart * ItemsHeight, ItemsHeight); // advance cursor - StepNo = 2; - } -} - -void ImGuiListClipper::End() -{ - if (ItemsCount < 0) - return; - // In theory here we should assert that ImGui::GetCursorPosY() == StartPosY + DisplayEnd * ItemsHeight, but it feels saner to just seek at the end and not assert/crash the user. - if (ItemsCount < INT_MAX) - SetCursorPosYAndSetupDummyPrevLine(StartPosY + ItemsCount * ItemsHeight, ItemsHeight); // advance cursor - ItemsCount = -1; - StepNo = 3; -} - -bool ImGuiListClipper::Step() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - if (ItemsCount == 0 || window->SkipItems) - { - ItemsCount = -1; - return false; - } - if (StepNo == 0) // Step 0: the clipper let you process the first element, regardless of it being visible or not, so we can measure the element height. - { - DisplayStart = 0; - DisplayEnd = 1; - StartPosY = window->DC.CursorPos.y; - StepNo = 1; - return true; - } - if (StepNo == 1) // Step 1: the clipper infer height from first element, calculate the actual range of elements to display, and position the cursor before the first element. - { - if (ItemsCount == 1) { ItemsCount = -1; return false; } - float items_height = window->DC.CursorPos.y - StartPosY; - IM_ASSERT(items_height > 0.0f); // If this triggers, it means Item 0 hasn't moved the cursor vertically - Begin(ItemsCount - 1, items_height); - DisplayStart++; - DisplayEnd++; - StepNo = 3; - return true; - } - if (StepNo == 2) // Step 2: dummy step only required if an explicit items_height was passed to constructor or Begin() and user still call Step(). Does nothing and switch to Step 3. - { - IM_ASSERT(DisplayStart >= 0 && DisplayEnd >= 0); - StepNo = 3; - return true; - } - if (StepNo == 3) // Step 3: the clipper validate that we have reached the expected Y position (corresponding to element DisplayEnd), advance the cursor to the end of the list and then returns 'false' to end the loop. - End(); - return false; -} - -//----------------------------------------------------------------------------- -// [SECTION] STYLING -//----------------------------------------------------------------------------- - -ImGuiStyle& ImGui::GetStyle() -{ - IM_ASSERT(GImGui != NULL && "No current context. Did you call ImGui::CreateContext() and ImGui::SetCurrentContext() ?"); - return GImGui->Style; -} - -ImU32 ImGui::GetColorU32(ImGuiCol idx, float alpha_mul) -{ - ImGuiStyle& style = GImGui->Style; - ImVec4 c = style.Colors[idx]; - c.w *= style.Alpha * alpha_mul; - return ColorConvertFloat4ToU32(c); -} - -ImU32 ImGui::GetColorU32(const ImVec4& col) -{ - ImGuiStyle& style = GImGui->Style; - ImVec4 c = col; - c.w *= style.Alpha; - return ColorConvertFloat4ToU32(c); -} - -const ImVec4& ImGui::GetStyleColorVec4(ImGuiCol idx) -{ - ImGuiStyle& style = GImGui->Style; - return style.Colors[idx]; -} - -ImU32 ImGui::GetColorU32(ImU32 col) -{ - ImGuiStyle& style = GImGui->Style; - if (style.Alpha >= 1.0f) - return col; - ImU32 a = (col & IM_COL32_A_MASK) >> IM_COL32_A_SHIFT; - a = (ImU32)(a * style.Alpha); // We don't need to clamp 0..255 because Style.Alpha is in 0..1 range. - return (col & ~IM_COL32_A_MASK) | (a << IM_COL32_A_SHIFT); -} - -// FIXME: This may incur a round-trip (if the end user got their data from a float4) but eventually we aim to store the in-flight colors as ImU32 -void ImGui::PushStyleColor(ImGuiCol idx, ImU32 col) -{ - ImGuiContext& g = *GImGui; - ImGuiColorMod backup; - backup.Col = idx; - backup.BackupValue = g.Style.Colors[idx]; - g.ColorModifiers.push_back(backup); - g.Style.Colors[idx] = ColorConvertU32ToFloat4(col); -} - -void ImGui::PushStyleColor(ImGuiCol idx, const ImVec4& col) -{ - ImGuiContext& g = *GImGui; - ImGuiColorMod backup; - backup.Col = idx; - backup.BackupValue = g.Style.Colors[idx]; - g.ColorModifiers.push_back(backup); - g.Style.Colors[idx] = col; -} - -void ImGui::PopStyleColor(int count) -{ - ImGuiContext& g = *GImGui; - while (count > 0) - { - ImGuiColorMod& backup = g.ColorModifiers.back(); - g.Style.Colors[backup.Col] = backup.BackupValue; - g.ColorModifiers.pop_back(); - count--; - } -} - -struct ImGuiStyleVarInfo -{ - ImGuiDataType Type; - ImU32 Count; - ImU32 Offset; - void* GetVarPtr(ImGuiStyle* style) const { return (void*)((unsigned char*)style + Offset); } -}; - -static const ImGuiStyleVarInfo GStyleVarInfo[] = -{ - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, Alpha) }, // ImGuiStyleVar_Alpha - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, WindowPadding) }, // ImGuiStyleVar_WindowPadding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, WindowRounding) }, // ImGuiStyleVar_WindowRounding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, WindowBorderSize) }, // ImGuiStyleVar_WindowBorderSize - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, WindowMinSize) }, // ImGuiStyleVar_WindowMinSize - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, WindowTitleAlign) }, // ImGuiStyleVar_WindowTitleAlign - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, ChildRounding) }, // ImGuiStyleVar_ChildRounding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, ChildBorderSize) }, // ImGuiStyleVar_ChildBorderSize - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, PopupRounding) }, // ImGuiStyleVar_PopupRounding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, PopupBorderSize) }, // ImGuiStyleVar_PopupBorderSize - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, FramePadding) }, // ImGuiStyleVar_FramePadding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, FrameRounding) }, // ImGuiStyleVar_FrameRounding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, FrameBorderSize) }, // ImGuiStyleVar_FrameBorderSize - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, ItemSpacing) }, // ImGuiStyleVar_ItemSpacing - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, ItemInnerSpacing) }, // ImGuiStyleVar_ItemInnerSpacing - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, IndentSpacing) }, // ImGuiStyleVar_IndentSpacing - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, ScrollbarSize) }, // ImGuiStyleVar_ScrollbarSize - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, ScrollbarRounding) }, // ImGuiStyleVar_ScrollbarRounding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, GrabMinSize) }, // ImGuiStyleVar_GrabMinSize - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, GrabRounding) }, // ImGuiStyleVar_GrabRounding - { ImGuiDataType_Float, 1, (ImU32)IM_OFFSETOF(ImGuiStyle, TabRounding) }, // ImGuiStyleVar_TabRounding - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, ButtonTextAlign) }, // ImGuiStyleVar_ButtonTextAlign - { ImGuiDataType_Float, 2, (ImU32)IM_OFFSETOF(ImGuiStyle, SelectableTextAlign) }, // ImGuiStyleVar_SelectableTextAlign -}; - -static const ImGuiStyleVarInfo* GetStyleVarInfo(ImGuiStyleVar idx) -{ - IM_ASSERT(idx >= 0 && idx < ImGuiStyleVar_COUNT); - IM_ASSERT(IM_ARRAYSIZE(GStyleVarInfo) == ImGuiStyleVar_COUNT); - return &GStyleVarInfo[idx]; -} - -void ImGui::PushStyleVar(ImGuiStyleVar idx, float val) -{ - const ImGuiStyleVarInfo* var_info = GetStyleVarInfo(idx); - if (var_info->Type == ImGuiDataType_Float && var_info->Count == 1) - { - ImGuiContext& g = *GImGui; - float* pvar = (float*)var_info->GetVarPtr(&g.Style); - g.StyleModifiers.push_back(ImGuiStyleMod(idx, *pvar)); - *pvar = val; - return; - } - IM_ASSERT(0 && "Called PushStyleVar() float variant but variable is not a float!"); -} - -void ImGui::PushStyleVar(ImGuiStyleVar idx, const ImVec2& val) -{ - const ImGuiStyleVarInfo* var_info = GetStyleVarInfo(idx); - if (var_info->Type == ImGuiDataType_Float && var_info->Count == 2) - { - ImGuiContext& g = *GImGui; - ImVec2* pvar = (ImVec2*)var_info->GetVarPtr(&g.Style); - g.StyleModifiers.push_back(ImGuiStyleMod(idx, *pvar)); - *pvar = val; - return; - } - IM_ASSERT(0 && "Called PushStyleVar() ImVec2 variant but variable is not a ImVec2!"); -} - -void ImGui::PopStyleVar(int count) -{ - ImGuiContext& g = *GImGui; - while (count > 0) - { - // We avoid a generic memcpy(data, &backup.Backup.., GDataTypeSize[info->Type] * info->Count), the overhead in Debug is not worth it. - ImGuiStyleMod& backup = g.StyleModifiers.back(); - const ImGuiStyleVarInfo* info = GetStyleVarInfo(backup.VarIdx); - void* data = info->GetVarPtr(&g.Style); - if (info->Type == ImGuiDataType_Float && info->Count == 1) { ((float*)data)[0] = backup.BackupFloat[0]; } - else if (info->Type == ImGuiDataType_Float && info->Count == 2) { ((float*)data)[0] = backup.BackupFloat[0]; ((float*)data)[1] = backup.BackupFloat[1]; } - g.StyleModifiers.pop_back(); - count--; - } -} - -const char* ImGui::GetStyleColorName(ImGuiCol idx) -{ - // Create switch-case from enum with regexp: ImGuiCol_{.*}, --> case ImGuiCol_\1: return "\1"; - switch (idx) - { - case ImGuiCol_Text: return "Text"; - case ImGuiCol_TextDisabled: return "TextDisabled"; - case ImGuiCol_WindowBg: return "WindowBg"; - case ImGuiCol_ChildBg: return "ChildBg"; - case ImGuiCol_PopupBg: return "PopupBg"; - case ImGuiCol_Border: return "Border"; - case ImGuiCol_BorderShadow: return "BorderShadow"; - case ImGuiCol_FrameBg: return "FrameBg"; - case ImGuiCol_FrameBgHovered: return "FrameBgHovered"; - case ImGuiCol_FrameBgActive: return "FrameBgActive"; - case ImGuiCol_TitleBg: return "TitleBg"; - case ImGuiCol_TitleBgActive: return "TitleBgActive"; - case ImGuiCol_TitleBgCollapsed: return "TitleBgCollapsed"; - case ImGuiCol_MenuBarBg: return "MenuBarBg"; - case ImGuiCol_ScrollbarBg: return "ScrollbarBg"; - case ImGuiCol_ScrollbarGrab: return "ScrollbarGrab"; - case ImGuiCol_ScrollbarGrabHovered: return "ScrollbarGrabHovered"; - case ImGuiCol_ScrollbarGrabActive: return "ScrollbarGrabActive"; - case ImGuiCol_CheckMark: return "CheckMark"; - case ImGuiCol_SliderGrab: return "SliderGrab"; - case ImGuiCol_SliderGrabActive: return "SliderGrabActive"; - case ImGuiCol_Button: return "Button"; - case ImGuiCol_ButtonHovered: return "ButtonHovered"; - case ImGuiCol_ButtonActive: return "ButtonActive"; - case ImGuiCol_Header: return "Header"; - case ImGuiCol_HeaderHovered: return "HeaderHovered"; - case ImGuiCol_HeaderActive: return "HeaderActive"; - case ImGuiCol_Separator: return "Separator"; - case ImGuiCol_SeparatorHovered: return "SeparatorHovered"; - case ImGuiCol_SeparatorActive: return "SeparatorActive"; - case ImGuiCol_ResizeGrip: return "ResizeGrip"; - case ImGuiCol_ResizeGripHovered: return "ResizeGripHovered"; - case ImGuiCol_ResizeGripActive: return "ResizeGripActive"; - case ImGuiCol_Tab: return "Tab"; - case ImGuiCol_TabHovered: return "TabHovered"; - case ImGuiCol_TabActive: return "TabActive"; - case ImGuiCol_TabUnfocused: return "TabUnfocused"; - case ImGuiCol_TabUnfocusedActive: return "TabUnfocusedActive"; - case ImGuiCol_PlotLines: return "PlotLines"; - case ImGuiCol_PlotLinesHovered: return "PlotLinesHovered"; - case ImGuiCol_PlotHistogram: return "PlotHistogram"; - case ImGuiCol_PlotHistogramHovered: return "PlotHistogramHovered"; - case ImGuiCol_TextSelectedBg: return "TextSelectedBg"; - case ImGuiCol_DragDropTarget: return "DragDropTarget"; - case ImGuiCol_NavHighlight: return "NavHighlight"; - case ImGuiCol_NavWindowingHighlight: return "NavWindowingHighlight"; - case ImGuiCol_NavWindowingDimBg: return "NavWindowingDimBg"; - case ImGuiCol_ModalWindowDimBg: return "ModalWindowDimBg"; - } - IM_ASSERT(0); - return "Unknown"; -} - -//----------------------------------------------------------------------------- -// [SECTION] RENDER HELPERS -// Some of those (internal) functions are currently quite a legacy mess - their signature and behavior will change, -// we need a nicer separation between low-level functions and high-level functions relying on the ImGui context. -// Also see imgui_draw.cpp for some more which have been reworked to not rely on ImGui:: context. -//----------------------------------------------------------------------------- - -const char* ImGui::FindRenderedTextEnd(const char* text, const char* text_end) -{ - const char* text_display_end = text; - if (!text_end) - text_end = (const char*)-1; - - while (text_display_end < text_end && *text_display_end != '\0' && (text_display_end[0] != '#' || text_display_end[1] != '#')) - text_display_end++; - return text_display_end; -} - -// Internal ImGui functions to render text -// RenderText***() functions calls ImDrawList::AddText() calls ImBitmapFont::RenderText() -void ImGui::RenderText(ImVec2 pos, const char* text, const char* text_end, bool hide_text_after_hash) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - // Hide anything after a '##' string - const char* text_display_end; - if (hide_text_after_hash) - { - text_display_end = FindRenderedTextEnd(text, text_end); - } - else - { - if (!text_end) - text_end = text + strlen(text); // FIXME-OPT - text_display_end = text_end; - } - - if (text != text_display_end) - { - window->DrawList->AddText(g.Font, g.FontSize, pos, GetColorU32(ImGuiCol_Text), text, text_display_end); - if (g.LogEnabled) - LogRenderedText(&pos, text, text_display_end); - } -} - -void ImGui::RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - if (!text_end) - text_end = text + strlen(text); // FIXME-OPT - - if (text != text_end) - { - window->DrawList->AddText(g.Font, g.FontSize, pos, GetColorU32(ImGuiCol_Text), text, text_end, wrap_width); - if (g.LogEnabled) - LogRenderedText(&pos, text, text_end); - } -} - -// Default clip_rect uses (pos_min,pos_max) -// Handle clipping on CPU immediately (vs typically let the GPU clip the triangles that are overlapping the clipping rectangle edges) -void ImGui::RenderTextClippedEx(ImDrawList* draw_list, const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_display_end, const ImVec2* text_size_if_known, const ImVec2& align, const ImRect* clip_rect) -{ - // Perform CPU side clipping for single clipped element to avoid using scissor state - ImVec2 pos = pos_min; - const ImVec2 text_size = text_size_if_known ? *text_size_if_known : CalcTextSize(text, text_display_end, false, 0.0f); - - const ImVec2* clip_min = clip_rect ? &clip_rect->Min : &pos_min; - const ImVec2* clip_max = clip_rect ? &clip_rect->Max : &pos_max; - bool need_clipping = (pos.x + text_size.x >= clip_max->x) || (pos.y + text_size.y >= clip_max->y); - if (clip_rect) // If we had no explicit clipping rectangle then pos==clip_min - need_clipping |= (pos.x < clip_min->x) || (pos.y < clip_min->y); - - // Align whole block. We should defer that to the better rendering function when we'll have support for individual line alignment. - if (align.x > 0.0f) pos.x = ImMax(pos.x, pos.x + (pos_max.x - pos.x - text_size.x) * align.x); - if (align.y > 0.0f) pos.y = ImMax(pos.y, pos.y + (pos_max.y - pos.y - text_size.y) * align.y); - - // Render - if (need_clipping) - { - ImVec4 fine_clip_rect(clip_min->x, clip_min->y, clip_max->x, clip_max->y); - draw_list->AddText(NULL, 0.0f, pos, GetColorU32(ImGuiCol_Text), text, text_display_end, 0.0f, &fine_clip_rect); - } - else - { - draw_list->AddText(NULL, 0.0f, pos, GetColorU32(ImGuiCol_Text), text, text_display_end, 0.0f, NULL); - } -} - -void ImGui::RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, const ImVec2& align, const ImRect* clip_rect) -{ - // Hide anything after a '##' string - const char* text_display_end = FindRenderedTextEnd(text, text_end); - const int text_len = (int)(text_display_end - text); - if (text_len == 0) - return; - - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - RenderTextClippedEx(window->DrawList, pos_min, pos_max, text, text_display_end, text_size_if_known, align, clip_rect); - if (g.LogEnabled) - LogRenderedText(&pos_min, text, text_display_end); -} - - -// Another overly complex function until we reorganize everything into a nice all-in-one helper. -// This is made more complex because we have dissociated the layout rectangle (pos_min..pos_max) which define _where_ the ellipsis is, from actual clipping of text and limit of the ellipsis display. -// This is because in the context of tabs we selectively hide part of the text when the Close Button appears, but we don't want the ellipsis to move. -void ImGui::RenderTextEllipsis(ImDrawList* draw_list, const ImVec2& pos_min, const ImVec2& pos_max, float clip_max_x, float ellipsis_max_x, const char* text, const char* text_end_full, const ImVec2* text_size_if_known) -{ - ImGuiContext& g = *GImGui; - if (text_end_full == NULL) - text_end_full = FindRenderedTextEnd(text); - const ImVec2 text_size = text_size_if_known ? *text_size_if_known : CalcTextSize(text, text_end_full, false, 0.0f); - - //draw_list->AddLine(ImVec2(pos_max.x, pos_min.y - 4), ImVec2(pos_max.x, pos_max.y + 4), IM_COL32(0, 0, 255, 255)); - //draw_list->AddLine(ImVec2(ellipsis_max_x, pos_min.y-2), ImVec2(ellipsis_max_x, pos_max.y+2), IM_COL32(0, 255, 0, 255)); - //draw_list->AddLine(ImVec2(clip_max_x, pos_min.y), ImVec2(clip_max_x, pos_max.y), IM_COL32(255, 0, 0, 255)); - // FIXME: We could technically remove (last_glyph->AdvanceX - last_glyph->X1) from text_size.x here and save a few pixels. - if (text_size.x > pos_max.x - pos_min.x) - { - // Hello wo... - // | | | - // min max ellipsis_max - // <-> this is generally some padding value - - const ImFont* font = draw_list->_Data->Font; - const float font_size = draw_list->_Data->FontSize; - const char* text_end_ellipsis = NULL; - - ImWchar ellipsis_char = font->EllipsisChar; - int ellipsis_char_count = 1; - if (ellipsis_char == (ImWchar)-1) - { - ellipsis_char = (ImWchar)'.'; - ellipsis_char_count = 3; - } - const ImFontGlyph* glyph = font->FindGlyph(ellipsis_char); - - float ellipsis_glyph_width = glyph->X1; // Width of the glyph with no padding on either side - float ellipsis_total_width = ellipsis_glyph_width; // Full width of entire ellipsis - - if (ellipsis_char_count > 1) - { - // Full ellipsis size without free spacing after it. - const float spacing_between_dots = 1.0f * (draw_list->_Data->FontSize / font->FontSize); - ellipsis_glyph_width = glyph->X1 - glyph->X0 + spacing_between_dots; - ellipsis_total_width = ellipsis_glyph_width * (float)ellipsis_char_count - spacing_between_dots; - } - - // We can now claim the space between pos_max.x and ellipsis_max.x - const float text_avail_width = ImMax((ImMax(pos_max.x, ellipsis_max_x) - ellipsis_total_width) - pos_min.x, 1.0f); - float text_size_clipped_x = font->CalcTextSizeA(font_size, text_avail_width, 0.0f, text, text_end_full, &text_end_ellipsis).x; - if (text == text_end_ellipsis && text_end_ellipsis < text_end_full) - { - // Always display at least 1 character if there's no room for character + ellipsis - text_end_ellipsis = text + ImTextCountUtf8BytesFromChar(text, text_end_full); - text_size_clipped_x = font->CalcTextSizeA(font_size, FLT_MAX, 0.0f, text, text_end_ellipsis).x; - } - while (text_end_ellipsis > text && ImCharIsBlankA(text_end_ellipsis[-1])) - { - // Trim trailing space before ellipsis (FIXME: Supporting non-ascii blanks would be nice, for this we need a function to backtrack in UTF-8 text) - text_end_ellipsis--; - text_size_clipped_x -= font->CalcTextSizeA(font_size, FLT_MAX, 0.0f, text_end_ellipsis, text_end_ellipsis + 1).x; // Ascii blanks are always 1 byte - } - - // Render text, render ellipsis - RenderTextClippedEx(draw_list, pos_min, ImVec2(clip_max_x, pos_max.y), text, text_end_ellipsis, &text_size, ImVec2(0.0f, 0.0f)); - float ellipsis_x = pos_min.x + text_size_clipped_x; - if (ellipsis_x + ellipsis_total_width <= ellipsis_max_x) - for (int i = 0; i < ellipsis_char_count; i++) - { - font->RenderChar(draw_list, font_size, ImVec2(ellipsis_x, pos_min.y), GetColorU32(ImGuiCol_Text), ellipsis_char); - ellipsis_x += ellipsis_glyph_width; - } - } - else - { - RenderTextClippedEx(draw_list, pos_min, ImVec2(clip_max_x, pos_max.y), text, text_end_full, &text_size, ImVec2(0.0f, 0.0f)); - } - - if (g.LogEnabled) - LogRenderedText(&pos_min, text, text_end_full); -} - -// Render a rectangle shaped with optional rounding and borders -void ImGui::RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border, float rounding) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - window->DrawList->AddRectFilled(p_min, p_max, fill_col, rounding); - const float border_size = g.Style.FrameBorderSize; - if (border && border_size > 0.0f) - { - window->DrawList->AddRect(p_min+ImVec2(1,1), p_max+ImVec2(1,1), GetColorU32(ImGuiCol_BorderShadow), rounding, ImDrawCornerFlags_All, border_size); - window->DrawList->AddRect(p_min, p_max, GetColorU32(ImGuiCol_Border), rounding, ImDrawCornerFlags_All, border_size); - } -} - -void ImGui::RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - const float border_size = g.Style.FrameBorderSize; - if (border_size > 0.0f) - { - window->DrawList->AddRect(p_min+ImVec2(1,1), p_max+ImVec2(1,1), GetColorU32(ImGuiCol_BorderShadow), rounding, ImDrawCornerFlags_All, border_size); - window->DrawList->AddRect(p_min, p_max, GetColorU32(ImGuiCol_Border), rounding, ImDrawCornerFlags_All, border_size); - } -} - -void ImGui::RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags) -{ - ImGuiContext& g = *GImGui; - if (id != g.NavId) - return; - if (g.NavDisableHighlight && !(flags & ImGuiNavHighlightFlags_AlwaysDraw)) - return; - ImGuiWindow* window = g.CurrentWindow; - if (window->DC.NavHideHighlightOneFrame) - return; - - float rounding = (flags & ImGuiNavHighlightFlags_NoRounding) ? 0.0f : g.Style.FrameRounding; - ImRect display_rect = bb; - display_rect.ClipWith(window->ClipRect); - if (flags & ImGuiNavHighlightFlags_TypeDefault) - { - const float THICKNESS = 2.0f; - const float DISTANCE = 3.0f + THICKNESS * 0.5f; - display_rect.Expand(ImVec2(DISTANCE,DISTANCE)); - bool fully_visible = window->ClipRect.Contains(display_rect); - if (!fully_visible) - window->DrawList->PushClipRect(display_rect.Min, display_rect.Max); - window->DrawList->AddRect(display_rect.Min + ImVec2(THICKNESS*0.5f,THICKNESS*0.5f), display_rect.Max - ImVec2(THICKNESS*0.5f,THICKNESS*0.5f), GetColorU32(ImGuiCol_NavHighlight), rounding, ImDrawCornerFlags_All, THICKNESS); - if (!fully_visible) - window->DrawList->PopClipRect(); - } - if (flags & ImGuiNavHighlightFlags_TypeThin) - { - window->DrawList->AddRect(display_rect.Min, display_rect.Max, GetColorU32(ImGuiCol_NavHighlight), rounding, ~0, 1.0f); - } -} - -//----------------------------------------------------------------------------- -// [SECTION] MAIN CODE (most of the code! lots of stuff, needs tidying up!) -//----------------------------------------------------------------------------- - -// ImGuiWindow is mostly a dumb struct. It merely has a constructor and a few helper methods -ImGuiWindow::ImGuiWindow(ImGuiContext* context, const char* name) - : DrawListInst(&context->DrawListSharedData) -{ - Name = ImStrdup(name); - ID = ImHashStr(name); - IDStack.push_back(ID); - Flags = ImGuiWindowFlags_None; - Pos = ImVec2(0.0f, 0.0f); - Size = SizeFull = ImVec2(0.0f, 0.0f); - ContentSize = ContentSizeExplicit = ImVec2(0.0f, 0.0f); - WindowPadding = ImVec2(0.0f, 0.0f); - WindowRounding = 0.0f; - WindowBorderSize = 0.0f; - NameBufLen = (int)strlen(name) + 1; - MoveId = GetID("#MOVE"); - ChildId = 0; - Scroll = ImVec2(0.0f, 0.0f); - ScrollTarget = ImVec2(FLT_MAX, FLT_MAX); - ScrollTargetCenterRatio = ImVec2(0.5f, 0.5f); - ScrollbarSizes = ImVec2(0.0f, 0.0f); - ScrollbarX = ScrollbarY = false; - Active = WasActive = false; - WriteAccessed = false; - Collapsed = false; - WantCollapseToggle = false; - SkipItems = false; - Appearing = false; - Hidden = false; - IsFallbackWindow = false; - HasCloseButton = false; - ResizeBorderHeld = -1; - BeginCount = 0; - BeginOrderWithinParent = -1; - BeginOrderWithinContext = -1; - PopupId = 0; - AutoFitFramesX = AutoFitFramesY = -1; - AutoFitChildAxises = 0x00; - AutoFitOnlyGrows = false; - AutoPosLastDirection = ImGuiDir_None; - HiddenFramesCanSkipItems = HiddenFramesCannotSkipItems = 0; - SetWindowPosAllowFlags = SetWindowSizeAllowFlags = SetWindowCollapsedAllowFlags = ImGuiCond_Always | ImGuiCond_Once | ImGuiCond_FirstUseEver | ImGuiCond_Appearing; - SetWindowPosVal = SetWindowPosPivot = ImVec2(FLT_MAX, FLT_MAX); - - InnerRect = ImRect(0.0f, 0.0f, 0.0f, 0.0f); // Clear so the InnerRect.GetSize() code in Begin() doesn't lead to overflow even if the result isn't used. - - LastFrameActive = -1; - LastTimeActive = -1.0f; - ItemWidthDefault = 0.0f; - FontWindowScale = 1.0f; - SettingsOffset = -1; - - DrawList = &DrawListInst; - DrawList->_OwnerName = Name; - ParentWindow = NULL; - RootWindow = NULL; - RootWindowForTitleBarHighlight = NULL; - RootWindowForNav = NULL; - - NavLastIds[0] = NavLastIds[1] = 0; - NavRectRel[0] = NavRectRel[1] = ImRect(); - NavLastChildNavWindow = NULL; - - MemoryCompacted = false; - MemoryDrawListIdxCapacity = MemoryDrawListVtxCapacity = 0; -} - -ImGuiWindow::~ImGuiWindow() -{ - IM_ASSERT(DrawList == &DrawListInst); - IM_DELETE(Name); - for (int i = 0; i != ColumnsStorage.Size; i++) - ColumnsStorage[i].~ImGuiColumns(); -} - -ImGuiID ImGuiWindow::GetID(const char* str, const char* str_end) -{ - ImGuiID seed = IDStack.back(); - ImGuiID id = ImHashStr(str, str_end ? (str_end - str) : 0, seed); - ImGui::KeepAliveID(id); - return id; -} - -ImGuiID ImGuiWindow::GetID(const void* ptr) -{ - ImGuiID seed = IDStack.back(); - ImGuiID id = ImHashData(&ptr, sizeof(void*), seed); - ImGui::KeepAliveID(id); - return id; -} - -ImGuiID ImGuiWindow::GetID(int n) -{ - ImGuiID seed = IDStack.back(); - ImGuiID id = ImHashData(&n, sizeof(n), seed); - ImGui::KeepAliveID(id); - return id; -} - -ImGuiID ImGuiWindow::GetIDNoKeepAlive(const char* str, const char* str_end) -{ - ImGuiID seed = IDStack.back(); - return ImHashStr(str, str_end ? (str_end - str) : 0, seed); -} - -ImGuiID ImGuiWindow::GetIDNoKeepAlive(const void* ptr) -{ - ImGuiID seed = IDStack.back(); - return ImHashData(&ptr, sizeof(void*), seed); -} - -ImGuiID ImGuiWindow::GetIDNoKeepAlive(int n) -{ - ImGuiID seed = IDStack.back(); - return ImHashData(&n, sizeof(n), seed); -} - -// This is only used in rare/specific situations to manufacture an ID out of nowhere. -ImGuiID ImGuiWindow::GetIDFromRectangle(const ImRect& r_abs) -{ - ImGuiID seed = IDStack.back(); - const int r_rel[4] = { (int)(r_abs.Min.x - Pos.x), (int)(r_abs.Min.y - Pos.y), (int)(r_abs.Max.x - Pos.x), (int)(r_abs.Max.y - Pos.y) }; - ImGuiID id = ImHashData(&r_rel, sizeof(r_rel), seed); - ImGui::KeepAliveID(id); - return id; -} - -static void SetCurrentWindow(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - g.CurrentWindow = window; - if (window) - g.FontSize = g.DrawListSharedData.FontSize = window->CalcFontSize(); -} - -// Free up/compact internal window buffers, we can use this when a window becomes unused. -// This is currently unused by the library, but you may call this yourself for easy GC. -// Not freed: -// - ImGuiWindow, ImGuiWindowSettings, Name -// - StateStorage, ColumnsStorage (may hold useful data) -// This should have no noticeable visual effect. When the window reappear however, expect new allocation/buffer growth/copy cost. -void ImGui::GcCompactTransientWindowBuffers(ImGuiWindow* window) -{ - window->MemoryCompacted = true; - window->MemoryDrawListIdxCapacity = window->DrawList->IdxBuffer.Capacity; - window->MemoryDrawListVtxCapacity = window->DrawList->VtxBuffer.Capacity; - window->IDStack.clear(); - window->DrawList->ClearFreeMemory(); - window->DC.ChildWindows.clear(); - window->DC.ItemFlagsStack.clear(); - window->DC.ItemWidthStack.clear(); - window->DC.TextWrapPosStack.clear(); - window->DC.GroupStack.clear(); -} - -void ImGui::GcAwakeTransientWindowBuffers(ImGuiWindow* window) -{ - // We stored capacity of the ImDrawList buffer to reduce growth-caused allocation/copy when awakening. - // The other buffers tends to amortize much faster. - window->MemoryCompacted = false; - window->DrawList->IdxBuffer.reserve(window->MemoryDrawListIdxCapacity); - window->DrawList->VtxBuffer.reserve(window->MemoryDrawListVtxCapacity); - window->MemoryDrawListIdxCapacity = window->MemoryDrawListVtxCapacity = 0; -} - -void ImGui::SetActiveID(ImGuiID id, ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - g.ActiveIdIsJustActivated = (g.ActiveId != id); - if (g.ActiveIdIsJustActivated) - { - g.ActiveIdTimer = 0.0f; - g.ActiveIdHasBeenPressedBefore = false; - g.ActiveIdHasBeenEditedBefore = false; - if (id != 0) - { - g.LastActiveId = id; - g.LastActiveIdTimer = 0.0f; - } - } - g.ActiveId = id; - g.ActiveIdAllowOverlap = false; - g.ActiveIdWindow = window; - g.ActiveIdHasBeenEditedThisFrame = false; - if (id) - { - g.ActiveIdIsAlive = id; - g.ActiveIdSource = (g.NavActivateId == id || g.NavInputId == id || g.NavJustTabbedId == id || g.NavJustMovedToId == id) ? ImGuiInputSource_Nav : ImGuiInputSource_Mouse; - } - - // Clear declaration of inputs claimed by the widget - // (Please note that this is WIP and not all keys/inputs are thoroughly declared by all widgets yet) - g.ActiveIdUsingNavDirMask = 0x00; - g.ActiveIdUsingNavInputMask = 0x00; - g.ActiveIdUsingKeyInputMask = 0x00; -} - -void ImGui::ClearActiveID() -{ - SetActiveID(0, NULL); -} - -void ImGui::SetHoveredID(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - g.HoveredId = id; - g.HoveredIdAllowOverlap = false; - if (id != 0 && g.HoveredIdPreviousFrame != id) - g.HoveredIdTimer = g.HoveredIdNotActiveTimer = 0.0f; -} - -ImGuiID ImGui::GetHoveredID() -{ - ImGuiContext& g = *GImGui; - return g.HoveredId ? g.HoveredId : g.HoveredIdPreviousFrame; -} - -void ImGui::KeepAliveID(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - if (g.ActiveId == id) - g.ActiveIdIsAlive = id; - if (g.ActiveIdPreviousFrame == id) - g.ActiveIdPreviousFrameIsAlive = true; -} - -void ImGui::MarkItemEdited(ImGuiID id) -{ - // This marking is solely to be able to provide info for IsItemDeactivatedAfterEdit(). - // ActiveId might have been released by the time we call this (as in the typical press/release button behavior) but still need need to fill the data. - ImGuiContext& g = *GImGui; - IM_ASSERT(g.ActiveId == id || g.ActiveId == 0 || g.DragDropActive); - IM_UNUSED(id); // Avoid unused variable warnings when asserts are compiled out. - //IM_ASSERT(g.CurrentWindow->DC.LastItemId == id); - g.ActiveIdHasBeenEditedThisFrame = true; - g.ActiveIdHasBeenEditedBefore = true; - g.CurrentWindow->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_Edited; -} - -static inline bool IsWindowContentHoverable(ImGuiWindow* window, ImGuiHoveredFlags flags) -{ - // An active popup disable hovering on other windows (apart from its own children) - // FIXME-OPT: This could be cached/stored within the window. - ImGuiContext& g = *GImGui; - if (g.NavWindow) - if (ImGuiWindow* focused_root_window = g.NavWindow->RootWindow) - if (focused_root_window->WasActive && focused_root_window != window->RootWindow) - { - // For the purpose of those flags we differentiate "standard popup" from "modal popup" - // NB: The order of those two tests is important because Modal windows are also Popups. - if (focused_root_window->Flags & ImGuiWindowFlags_Modal) - return false; - if ((focused_root_window->Flags & ImGuiWindowFlags_Popup) && !(flags & ImGuiHoveredFlags_AllowWhenBlockedByPopup)) - return false; - } - return true; -} - -// This is roughly matching the behavior of internal-facing ItemHoverable() -// - we allow hovering to be true when ActiveId==window->MoveID, so that clicking on non-interactive items such as a Text() item still returns true with IsItemHovered() -// - this should work even for non-interactive items that have no ID, so we cannot use LastItemId -bool ImGui::IsItemHovered(ImGuiHoveredFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (g.NavDisableMouseHover && !g.NavDisableHighlight) - return IsItemFocused(); - - // Test for bounding box overlap, as updated as ItemAdd() - if (!(window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_HoveredRect)) - return false; - IM_ASSERT((flags & (ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows)) == 0); // Flags not supported by this function - - // Test if we are hovering the right window (our window could be behind another window) - // [2017/10/16] Reverted commit 344d48be3 and testing RootWindow instead. I believe it is correct to NOT test for RootWindow but this leaves us unable to use IsItemHovered() after EndChild() itself. - // Until a solution is found I believe reverting to the test from 2017/09/27 is safe since this was the test that has been running for a long while. - //if (g.HoveredWindow != window) - // return false; - if (g.HoveredRootWindow != window->RootWindow && !(flags & ImGuiHoveredFlags_AllowWhenOverlapped)) - return false; - - // Test if another item is active (e.g. being dragged) - if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem)) - if (g.ActiveId != 0 && g.ActiveId != window->DC.LastItemId && !g.ActiveIdAllowOverlap && g.ActiveId != window->MoveId) - return false; - - // Test if interactions on this window are blocked by an active popup or modal. - // The ImGuiHoveredFlags_AllowWhenBlockedByPopup flag will be tested here. - if (!IsWindowContentHoverable(window, flags)) - return false; - - // Test if the item is disabled - if ((window->DC.ItemFlags & ImGuiItemFlags_Disabled) && !(flags & ImGuiHoveredFlags_AllowWhenDisabled)) - return false; - - // Special handling for the dummy item after Begin() which represent the title bar or tab. - // When the window is collapsed (SkipItems==true) that last item will never be overwritten so we need to detect the case. - if (window->DC.LastItemId == window->MoveId && window->WriteAccessed) - return false; - return true; -} - -// Internal facing ItemHoverable() used when submitting widgets. Differs slightly from IsItemHovered(). -bool ImGui::ItemHoverable(const ImRect& bb, ImGuiID id) -{ - ImGuiContext& g = *GImGui; - if (g.HoveredId != 0 && g.HoveredId != id && !g.HoveredIdAllowOverlap) - return false; - - ImGuiWindow* window = g.CurrentWindow; - if (g.HoveredWindow != window) - return false; - if (g.ActiveId != 0 && g.ActiveId != id && !g.ActiveIdAllowOverlap) - return false; - if (!IsMouseHoveringRect(bb.Min, bb.Max)) - return false; - if (g.NavDisableMouseHover || !IsWindowContentHoverable(window, ImGuiHoveredFlags_None)) - return false; - if (window->DC.ItemFlags & ImGuiItemFlags_Disabled) - return false; - - SetHoveredID(id); - - // [DEBUG] Item Picker tool! - // We perform the check here because SetHoveredID() is not frequently called (1~ time a frame), making - // the cost of this tool near-zero. We can get slightly better call-stack and support picking non-hovered - // items if we perform the test in ItemAdd(), but that would incur a small runtime cost. - // #define IMGUI_DEBUG_TOOL_ITEM_PICKER_EX in imconfig.h if you want this check to also be performed in ItemAdd(). - if (g.DebugItemPickerActive && g.HoveredIdPreviousFrame == id) - GetForegroundDrawList()->AddRect(bb.Min, bb.Max, IM_COL32(255, 255, 0, 255)); - if (g.DebugItemPickerBreakId == id) - IM_DEBUG_BREAK(); - - return true; -} - -bool ImGui::IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (!bb.Overlaps(window->ClipRect)) - if (id == 0 || (id != g.ActiveId && id != g.NavId)) - if (clip_even_when_logged || !g.LogEnabled) - return true; - return false; -} - -// Process TAB/Shift+TAB. Be mindful that this function may _clear_ the ActiveID when tabbing out. -bool ImGui::FocusableItemRegister(ImGuiWindow* window, ImGuiID id) -{ - ImGuiContext& g = *GImGui; - - // Increment counters - const bool is_tab_stop = (window->DC.ItemFlags & (ImGuiItemFlags_NoTabStop | ImGuiItemFlags_Disabled)) == 0; - window->DC.FocusCounterRegular++; - if (is_tab_stop) - window->DC.FocusCounterTabStop++; - - // Process TAB/Shift-TAB to tab *OUT* of the currently focused item. - // (Note that we can always TAB out of a widget that doesn't allow tabbing in) - if (g.ActiveId == id && g.FocusTabPressed && !IsActiveIdUsingKey(ImGuiKey_Tab) && g.FocusRequestNextWindow == NULL) - { - g.FocusRequestNextWindow = window; - g.FocusRequestNextCounterTabStop = window->DC.FocusCounterTabStop + (g.IO.KeyShift ? (is_tab_stop ? -1 : 0) : +1); // Modulo on index will be applied at the end of frame once we've got the total counter of items. - } - - // Handle focus requests - if (g.FocusRequestCurrWindow == window) - { - if (window->DC.FocusCounterRegular == g.FocusRequestCurrCounterRegular) - return true; - if (is_tab_stop && window->DC.FocusCounterTabStop == g.FocusRequestCurrCounterTabStop) - { - g.NavJustTabbedId = id; - return true; - } - - // If another item is about to be focused, we clear our own active id - if (g.ActiveId == id) - ClearActiveID(); - } - - return false; -} - -void ImGui::FocusableItemUnregister(ImGuiWindow* window) -{ - window->DC.FocusCounterRegular--; - window->DC.FocusCounterTabStop--; -} - -float ImGui::CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x) -{ - if (wrap_pos_x < 0.0f) - return 0.0f; - - ImGuiWindow* window = GImGui->CurrentWindow; - if (wrap_pos_x == 0.0f) - wrap_pos_x = window->WorkRect.Max.x; - else if (wrap_pos_x > 0.0f) - wrap_pos_x += window->Pos.x - window->Scroll.x; // wrap_pos_x is provided is window local space - - return ImMax(wrap_pos_x - pos.x, 1.0f); -} - -// IM_ALLOC() == ImGui::MemAlloc() -void* ImGui::MemAlloc(size_t size) -{ - if (ImGuiContext* ctx = GImGui) - ctx->IO.MetricsActiveAllocations++; - return GImAllocatorAllocFunc(size, GImAllocatorUserData); -} - -// IM_FREE() == ImGui::MemFree() -void ImGui::MemFree(void* ptr) -{ - if (ptr) - if (ImGuiContext* ctx = GImGui) - ctx->IO.MetricsActiveAllocations--; - return GImAllocatorFreeFunc(ptr, GImAllocatorUserData); -} - -const char* ImGui::GetClipboardText() -{ - ImGuiContext& g = *GImGui; - return g.IO.GetClipboardTextFn ? g.IO.GetClipboardTextFn(g.IO.ClipboardUserData) : ""; -} - -void ImGui::SetClipboardText(const char* text) -{ - ImGuiContext& g = *GImGui; - if (g.IO.SetClipboardTextFn) - g.IO.SetClipboardTextFn(g.IO.ClipboardUserData, text); -} - -const char* ImGui::GetVersion() -{ - return IMGUI_VERSION; -} - -// Internal state access - if you want to share Dear ImGui state between modules (e.g. DLL) or allocate it yourself -// Note that we still point to some static data and members (such as GFontAtlas), so the state instance you end up using will point to the static data within its module -ImGuiContext* ImGui::GetCurrentContext() -{ - return GImGui; -} - -void ImGui::SetCurrentContext(ImGuiContext* ctx) -{ -#ifdef IMGUI_SET_CURRENT_CONTEXT_FUNC - IMGUI_SET_CURRENT_CONTEXT_FUNC(ctx); // For custom thread-based hackery you may want to have control over this. -#else - GImGui = ctx; -#endif -} - -void ImGui::SetAllocatorFunctions(void* (*alloc_func)(size_t sz, void* user_data), void (*free_func)(void* ptr, void* user_data), void* user_data) -{ - GImAllocatorAllocFunc = alloc_func; - GImAllocatorFreeFunc = free_func; - GImAllocatorUserData = user_data; -} - -ImGuiContext* ImGui::CreateContext(ImFontAtlas* shared_font_atlas) -{ - ImGuiContext* ctx = IM_NEW(ImGuiContext)(shared_font_atlas); - if (GImGui == NULL) - SetCurrentContext(ctx); - Initialize(ctx); - return ctx; -} - -void ImGui::DestroyContext(ImGuiContext* ctx) -{ - if (ctx == NULL) - ctx = GImGui; - Shutdown(ctx); - if (GImGui == ctx) - SetCurrentContext(NULL); - IM_DELETE(ctx); -} - -ImGuiIO& ImGui::GetIO() -{ - IM_ASSERT(GImGui != NULL && "No current context. Did you call ImGui::CreateContext() and ImGui::SetCurrentContext() ?"); - return GImGui->IO; -} - -// Same value as passed to the old io.RenderDrawListsFn function. Valid after Render() and until the next call to NewFrame() -ImDrawData* ImGui::GetDrawData() -{ - ImGuiContext& g = *GImGui; - return g.DrawData.Valid ? &g.DrawData : NULL; -} - -double ImGui::GetTime() -{ - return GImGui->Time; -} - -int ImGui::GetFrameCount() -{ - return GImGui->FrameCount; -} - -ImDrawList* ImGui::GetBackgroundDrawList() -{ - return &GImGui->BackgroundDrawList; -} - -ImDrawList* ImGui::GetForegroundDrawList() -{ - return &GImGui->ForegroundDrawList; -} - -ImDrawListSharedData* ImGui::GetDrawListSharedData() -{ - return &GImGui->DrawListSharedData; -} - -void ImGui::StartMouseMovingWindow(ImGuiWindow* window) -{ - // Set ActiveId even if the _NoMove flag is set. Without it, dragging away from a window with _NoMove would activate hover on other windows. - // We _also_ call this when clicking in a window empty space when io.ConfigWindowsMoveFromTitleBarOnly is set, but clear g.MovingWindow afterward. - // This is because we want ActiveId to be set even when the window is not permitted to move. - ImGuiContext& g = *GImGui; - FocusWindow(window); - SetActiveID(window->MoveId, window); - g.NavDisableHighlight = true; - g.ActiveIdClickOffset = g.IO.MousePos - window->RootWindow->Pos; - - bool can_move_window = true; - if ((window->Flags & ImGuiWindowFlags_NoMove) || (window->RootWindow->Flags & ImGuiWindowFlags_NoMove)) - can_move_window = false; - if (can_move_window) - g.MovingWindow = window; -} - -// Handle mouse moving window -// Note: moving window with the navigation keys (Square + d-pad / CTRL+TAB + Arrows) are processed in NavUpdateWindowing() -// FIXME: We don't have strong guarantee that g.MovingWindow stay synched with g.ActiveId == g.MovingWindow->MoveId. -// This is currently enforced by the fact that BeginDragDropSource() is setting all g.ActiveIdUsingXXXX flags to inhibit navigation inputs, -// but if we should more thoroughly test cases where g.ActiveId or g.MovingWindow gets changed and not the other. -void ImGui::UpdateMouseMovingWindowNewFrame() -{ - ImGuiContext& g = *GImGui; - if (g.MovingWindow != NULL) - { - // We actually want to move the root window. g.MovingWindow == window we clicked on (could be a child window). - // We track it to preserve Focus and so that generally ActiveIdWindow == MovingWindow and ActiveId == MovingWindow->MoveId for consistency. - KeepAliveID(g.ActiveId); - IM_ASSERT(g.MovingWindow && g.MovingWindow->RootWindow); - ImGuiWindow* moving_window = g.MovingWindow->RootWindow; - if (g.IO.MouseDown[0] && IsMousePosValid(&g.IO.MousePos)) - { - ImVec2 pos = g.IO.MousePos - g.ActiveIdClickOffset; - if (moving_window->Pos.x != pos.x || moving_window->Pos.y != pos.y) - { - MarkIniSettingsDirty(moving_window); - SetWindowPos(moving_window, pos, ImGuiCond_Always); - } - FocusWindow(g.MovingWindow); - } - else - { - ClearActiveID(); - g.MovingWindow = NULL; - } - } - else - { - // When clicking/dragging from a window that has the _NoMove flag, we still set the ActiveId in order to prevent hovering others. - if (g.ActiveIdWindow && g.ActiveIdWindow->MoveId == g.ActiveId) - { - KeepAliveID(g.ActiveId); - if (!g.IO.MouseDown[0]) - ClearActiveID(); - } - } -} - -// Initiate moving window when clicking on empty space or title bar. -// Handle left-click and right-click focus. -void ImGui::UpdateMouseMovingWindowEndFrame() -{ - ImGuiContext& g = *GImGui; - if (g.ActiveId != 0 || g.HoveredId != 0) - return; - - // Unless we just made a window/popup appear - if (g.NavWindow && g.NavWindow->Appearing) - return; - - // Click to focus window and start moving (after we're done with all our widgets) - if (g.IO.MouseClicked[0]) - { - if (g.HoveredRootWindow != NULL) - { - StartMouseMovingWindow(g.HoveredWindow); - if (g.IO.ConfigWindowsMoveFromTitleBarOnly && !(g.HoveredRootWindow->Flags & ImGuiWindowFlags_NoTitleBar)) - if (!g.HoveredRootWindow->TitleBarRect().Contains(g.IO.MouseClickedPos[0])) - g.MovingWindow = NULL; - } - else if (g.NavWindow != NULL && GetTopMostPopupModal() == NULL) - { - // Clicking on void disable focus - FocusWindow(NULL); - } - } - - // With right mouse button we close popups without changing focus based on where the mouse is aimed - // Instead, focus will be restored to the window under the bottom-most closed popup. - // (The left mouse button path calls FocusWindow on the hovered window, which will lead NewFrame->ClosePopupsOverWindow to trigger) - if (g.IO.MouseClicked[1]) - { - // Find the top-most window between HoveredWindow and the top-most Modal Window. - // This is where we can trim the popup stack. - ImGuiWindow* modal = GetTopMostPopupModal(); - bool hovered_window_above_modal = false; - if (modal == NULL) - hovered_window_above_modal = true; - for (int i = g.Windows.Size - 1; i >= 0 && hovered_window_above_modal == false; i--) - { - ImGuiWindow* window = g.Windows[i]; - if (window == modal) - break; - if (window == g.HoveredWindow) - hovered_window_above_modal = true; - } - ClosePopupsOverWindow(hovered_window_above_modal ? g.HoveredWindow : modal, true); - } -} - -static bool IsWindowActiveAndVisible(ImGuiWindow* window) -{ - return (window->Active) && (!window->Hidden); -} - -static void ImGui::UpdateMouseInputs() -{ - ImGuiContext& g = *GImGui; - - // Round mouse position to avoid spreading non-rounded position (e.g. UpdateManualResize doesn't support them well) - if (IsMousePosValid(&g.IO.MousePos)) - g.IO.MousePos = g.LastValidMousePos = ImFloor(g.IO.MousePos); - - // If mouse just appeared or disappeared (usually denoted by -FLT_MAX components) we cancel out movement in MouseDelta - if (IsMousePosValid(&g.IO.MousePos) && IsMousePosValid(&g.IO.MousePosPrev)) - g.IO.MouseDelta = g.IO.MousePos - g.IO.MousePosPrev; - else - g.IO.MouseDelta = ImVec2(0.0f, 0.0f); - if (g.IO.MouseDelta.x != 0.0f || g.IO.MouseDelta.y != 0.0f) - g.NavDisableMouseHover = false; - - g.IO.MousePosPrev = g.IO.MousePos; - for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) - { - g.IO.MouseClicked[i] = g.IO.MouseDown[i] && g.IO.MouseDownDuration[i] < 0.0f; - g.IO.MouseReleased[i] = !g.IO.MouseDown[i] && g.IO.MouseDownDuration[i] >= 0.0f; - g.IO.MouseDownDurationPrev[i] = g.IO.MouseDownDuration[i]; - g.IO.MouseDownDuration[i] = g.IO.MouseDown[i] ? (g.IO.MouseDownDuration[i] < 0.0f ? 0.0f : g.IO.MouseDownDuration[i] + g.IO.DeltaTime) : -1.0f; - g.IO.MouseDoubleClicked[i] = false; - if (g.IO.MouseClicked[i]) - { - if ((float)(g.Time - g.IO.MouseClickedTime[i]) < g.IO.MouseDoubleClickTime) - { - ImVec2 delta_from_click_pos = IsMousePosValid(&g.IO.MousePos) ? (g.IO.MousePos - g.IO.MouseClickedPos[i]) : ImVec2(0.0f, 0.0f); - if (ImLengthSqr(delta_from_click_pos) < g.IO.MouseDoubleClickMaxDist * g.IO.MouseDoubleClickMaxDist) - g.IO.MouseDoubleClicked[i] = true; - g.IO.MouseClickedTime[i] = -DBL_MAX; // so the third click isn't turned into a double-click - } - else - { - g.IO.MouseClickedTime[i] = g.Time; - } - g.IO.MouseClickedPos[i] = g.IO.MousePos; - g.IO.MouseDownWasDoubleClick[i] = g.IO.MouseDoubleClicked[i]; - g.IO.MouseDragMaxDistanceAbs[i] = ImVec2(0.0f, 0.0f); - g.IO.MouseDragMaxDistanceSqr[i] = 0.0f; - } - else if (g.IO.MouseDown[i]) - { - // Maintain the maximum distance we reaching from the initial click position, which is used with dragging threshold - ImVec2 delta_from_click_pos = IsMousePosValid(&g.IO.MousePos) ? (g.IO.MousePos - g.IO.MouseClickedPos[i]) : ImVec2(0.0f, 0.0f); - g.IO.MouseDragMaxDistanceSqr[i] = ImMax(g.IO.MouseDragMaxDistanceSqr[i], ImLengthSqr(delta_from_click_pos)); - g.IO.MouseDragMaxDistanceAbs[i].x = ImMax(g.IO.MouseDragMaxDistanceAbs[i].x, delta_from_click_pos.x < 0.0f ? -delta_from_click_pos.x : delta_from_click_pos.x); - g.IO.MouseDragMaxDistanceAbs[i].y = ImMax(g.IO.MouseDragMaxDistanceAbs[i].y, delta_from_click_pos.y < 0.0f ? -delta_from_click_pos.y : delta_from_click_pos.y); - } - if (!g.IO.MouseDown[i] && !g.IO.MouseReleased[i]) - g.IO.MouseDownWasDoubleClick[i] = false; - if (g.IO.MouseClicked[i]) // Clicking any mouse button reactivate mouse hovering which may have been deactivated by gamepad/keyboard navigation - g.NavDisableMouseHover = false; - } -} - -static void StartLockWheelingWindow(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - if (g.WheelingWindow == window) - return; - g.WheelingWindow = window; - g.WheelingWindowRefMousePos = g.IO.MousePos; - g.WheelingWindowTimer = WINDOWS_MOUSE_WHEEL_SCROLL_LOCK_TIMER; -} - -void ImGui::UpdateMouseWheel() -{ - ImGuiContext& g = *GImGui; - - // Reset the locked window if we move the mouse or after the timer elapses - if (g.WheelingWindow != NULL) - { - g.WheelingWindowTimer -= g.IO.DeltaTime; - if (IsMousePosValid() && ImLengthSqr(g.IO.MousePos - g.WheelingWindowRefMousePos) > g.IO.MouseDragThreshold * g.IO.MouseDragThreshold) - g.WheelingWindowTimer = 0.0f; - if (g.WheelingWindowTimer <= 0.0f) - { - g.WheelingWindow = NULL; - g.WheelingWindowTimer = 0.0f; - } - } - - if (g.IO.MouseWheel == 0.0f && g.IO.MouseWheelH == 0.0f) - return; - - ImGuiWindow* window = g.WheelingWindow ? g.WheelingWindow : g.HoveredWindow; - if (!window || window->Collapsed) - return; - - // Zoom / Scale window - // FIXME-OBSOLETE: This is an old feature, it still works but pretty much nobody is using it and may be best redesigned. - if (g.IO.MouseWheel != 0.0f && g.IO.KeyCtrl && g.IO.FontAllowUserScaling) - { - StartLockWheelingWindow(window); - const float new_font_scale = ImClamp(window->FontWindowScale + g.IO.MouseWheel * 0.10f, 0.50f, 2.50f); - const float scale = new_font_scale / window->FontWindowScale; - window->FontWindowScale = new_font_scale; - if (!(window->Flags & ImGuiWindowFlags_ChildWindow)) - { - const ImVec2 offset = window->Size * (1.0f - scale) * (g.IO.MousePos - window->Pos) / window->Size; - SetWindowPos(window, window->Pos + offset, 0); - window->Size = ImFloor(window->Size * scale); - window->SizeFull = ImFloor(window->SizeFull * scale); - } - return; - } - - // Mouse wheel scrolling - // If a child window has the ImGuiWindowFlags_NoScrollWithMouse flag, we give a chance to scroll its parent - - // Vertical Mouse Wheel scrolling - const float wheel_y = (g.IO.MouseWheel != 0.0f && !g.IO.KeyShift) ? g.IO.MouseWheel : 0.0f; - if (wheel_y != 0.0f && !g.IO.KeyCtrl) - { - StartLockWheelingWindow(window); - while ((window->Flags & ImGuiWindowFlags_ChildWindow) && ((window->ScrollMax.y == 0.0f) || ((window->Flags & ImGuiWindowFlags_NoScrollWithMouse) && !(window->Flags & ImGuiWindowFlags_NoMouseInputs)))) - window = window->ParentWindow; - if (!(window->Flags & ImGuiWindowFlags_NoScrollWithMouse) && !(window->Flags & ImGuiWindowFlags_NoMouseInputs)) - { - float max_step = window->InnerRect.GetHeight() * 0.67f; - float scroll_step = ImFloor(ImMin(5 * window->CalcFontSize(), max_step)); - SetScrollY(window, window->Scroll.y - wheel_y * scroll_step); - } - } - - // Horizontal Mouse Wheel scrolling, or Vertical Mouse Wheel w/ Shift held - const float wheel_x = (g.IO.MouseWheelH != 0.0f && !g.IO.KeyShift) ? g.IO.MouseWheelH : (g.IO.MouseWheel != 0.0f && g.IO.KeyShift) ? g.IO.MouseWheel : 0.0f; - if (wheel_x != 0.0f && !g.IO.KeyCtrl) - { - StartLockWheelingWindow(window); - while ((window->Flags & ImGuiWindowFlags_ChildWindow) && ((window->ScrollMax.x == 0.0f) || ((window->Flags & ImGuiWindowFlags_NoScrollWithMouse) && !(window->Flags & ImGuiWindowFlags_NoMouseInputs)))) - window = window->ParentWindow; - if (!(window->Flags & ImGuiWindowFlags_NoScrollWithMouse) && !(window->Flags & ImGuiWindowFlags_NoMouseInputs)) - { - float max_step = window->InnerRect.GetWidth() * 0.67f; - float scroll_step = ImFloor(ImMin(2 * window->CalcFontSize(), max_step)); - SetScrollX(window, window->Scroll.x - wheel_x * scroll_step); - } - } -} - -void ImGui::UpdateTabFocus() -{ - ImGuiContext& g = *GImGui; - - // Pressing TAB activate widget focus - g.FocusTabPressed = (g.NavWindow && g.NavWindow->Active && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) && !g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab)); - if (g.ActiveId == 0 && g.FocusTabPressed) - { - // Note that SetKeyboardFocusHere() sets the Next fields mid-frame. To be consistent we also - // manipulate the Next fields even, even though they will be turned into Curr fields by the code below. - g.FocusRequestNextWindow = g.NavWindow; - g.FocusRequestNextCounterRegular = INT_MAX; - if (g.NavId != 0 && g.NavIdTabCounter != INT_MAX) - g.FocusRequestNextCounterTabStop = g.NavIdTabCounter + 1 + (g.IO.KeyShift ? -1 : 1); - else - g.FocusRequestNextCounterTabStop = g.IO.KeyShift ? -1 : 0; - } - - // Turn queued focus request into current one - g.FocusRequestCurrWindow = NULL; - g.FocusRequestCurrCounterRegular = g.FocusRequestCurrCounterTabStop = INT_MAX; - if (g.FocusRequestNextWindow != NULL) - { - ImGuiWindow* window = g.FocusRequestNextWindow; - g.FocusRequestCurrWindow = window; - if (g.FocusRequestNextCounterRegular != INT_MAX && window->DC.FocusCounterRegular != -1) - g.FocusRequestCurrCounterRegular = ImModPositive(g.FocusRequestNextCounterRegular, window->DC.FocusCounterRegular + 1); - if (g.FocusRequestNextCounterTabStop != INT_MAX && window->DC.FocusCounterTabStop != -1) - g.FocusRequestCurrCounterTabStop = ImModPositive(g.FocusRequestNextCounterTabStop, window->DC.FocusCounterTabStop + 1); - g.FocusRequestNextWindow = NULL; - g.FocusRequestNextCounterRegular = g.FocusRequestNextCounterTabStop = INT_MAX; - } - - g.NavIdTabCounter = INT_MAX; -} - -// The reason this is exposed in imgui_internal.h is: on touch-based system that don't have hovering, we want to dispatch inputs to the right target (imgui vs imgui+app) -void ImGui::UpdateHoveredWindowAndCaptureFlags() -{ - ImGuiContext& g = *GImGui; - - // Find the window hovered by mouse: - // - Child windows can extend beyond the limit of their parent so we need to derive HoveredRootWindow from HoveredWindow. - // - When moving a window we can skip the search, which also conveniently bypasses the fact that window->WindowRectClipped is lagging as this point of the frame. - // - We also support the moved window toggling the NoInputs flag after moving has started in order to be able to detect windows below it, which is useful for e.g. docking mechanisms. - FindHoveredWindow(); - - // Modal windows prevents cursor from hovering behind them. - ImGuiWindow* modal_window = GetTopMostPopupModal(); - if (modal_window) - if (g.HoveredRootWindow && !IsWindowChildOf(g.HoveredRootWindow, modal_window)) - g.HoveredRootWindow = g.HoveredWindow = NULL; - - // Disabled mouse? - if (g.IO.ConfigFlags & ImGuiConfigFlags_NoMouse) - g.HoveredWindow = g.HoveredRootWindow = NULL; - - // We track click ownership. When clicked outside of a window the click is owned by the application and won't report hovering nor request capture even while dragging over our windows afterward. - int mouse_earliest_button_down = -1; - bool mouse_any_down = false; - for (int i = 0; i < IM_ARRAYSIZE(g.IO.MouseDown); i++) - { - if (g.IO.MouseClicked[i]) - g.IO.MouseDownOwned[i] = (g.HoveredWindow != NULL) || (!g.OpenPopupStack.empty()); - mouse_any_down |= g.IO.MouseDown[i]; - if (g.IO.MouseDown[i]) - if (mouse_earliest_button_down == -1 || g.IO.MouseClickedTime[i] < g.IO.MouseClickedTime[mouse_earliest_button_down]) - mouse_earliest_button_down = i; - } - const bool mouse_avail_to_imgui = (mouse_earliest_button_down == -1) || g.IO.MouseDownOwned[mouse_earliest_button_down]; - - // If mouse was first clicked outside of ImGui bounds we also cancel out hovering. - // FIXME: For patterns of drag and drop across OS windows, we may need to rework/remove this test (first committed 311c0ca9 on 2015/02) - const bool mouse_dragging_extern_payload = g.DragDropActive && (g.DragDropSourceFlags & ImGuiDragDropFlags_SourceExtern) != 0; - if (!mouse_avail_to_imgui && !mouse_dragging_extern_payload) - g.HoveredWindow = g.HoveredRootWindow = NULL; - - // Update io.WantCaptureMouse for the user application (true = dispatch mouse info to imgui, false = dispatch mouse info to Dear ImGui + app) - if (g.WantCaptureMouseNextFrame != -1) - g.IO.WantCaptureMouse = (g.WantCaptureMouseNextFrame != 0); - else - g.IO.WantCaptureMouse = (mouse_avail_to_imgui && (g.HoveredWindow != NULL || mouse_any_down)) || (!g.OpenPopupStack.empty()); - - // Update io.WantCaptureKeyboard for the user application (true = dispatch keyboard info to imgui, false = dispatch keyboard info to Dear ImGui + app) - if (g.WantCaptureKeyboardNextFrame != -1) - g.IO.WantCaptureKeyboard = (g.WantCaptureKeyboardNextFrame != 0); - else - g.IO.WantCaptureKeyboard = (g.ActiveId != 0) || (modal_window != NULL); - if (g.IO.NavActive && (g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) && !(g.IO.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard)) - g.IO.WantCaptureKeyboard = true; - - // Update io.WantTextInput flag, this is to allow systems without a keyboard (e.g. mobile, hand-held) to show a software keyboard if possible - g.IO.WantTextInput = (g.WantTextInputNextFrame != -1) ? (g.WantTextInputNextFrame != 0) : false; -} - -ImGuiKeyModFlags ImGui::GetMergedKeyModFlags() -{ - ImGuiContext& g = *GImGui; - ImGuiKeyModFlags key_mod_flags = ImGuiKeyModFlags_None; - if (g.IO.KeyCtrl) { key_mod_flags |= ImGuiKeyModFlags_Ctrl; } - if (g.IO.KeyShift) { key_mod_flags |= ImGuiKeyModFlags_Shift; } - if (g.IO.KeyAlt) { key_mod_flags |= ImGuiKeyModFlags_Alt; } - if (g.IO.KeySuper) { key_mod_flags |= ImGuiKeyModFlags_Super; } - return key_mod_flags; -} - -void ImGui::NewFrame() -{ - IM_ASSERT(GImGui != NULL && "No current context. Did you call ImGui::CreateContext() and ImGui::SetCurrentContext() ?"); - ImGuiContext& g = *GImGui; - -#ifdef IMGUI_ENABLE_TEST_ENGINE - ImGuiTestEngineHook_PreNewFrame(&g); -#endif - - // Check and assert for various common IO and Configuration mistakes - ErrorCheckNewFrameSanityChecks(); - - // Load settings on first frame, save settings when modified (after a delay) - UpdateSettings(); - - g.Time += g.IO.DeltaTime; - g.WithinFrameScope = true; - g.FrameCount += 1; - g.TooltipOverrideCount = 0; - g.WindowsActiveCount = 0; - g.MenusIdSubmittedThisFrame.resize(0); - - // Calculate frame-rate for the user, as a purely luxurious feature - g.FramerateSecPerFrameAccum += g.IO.DeltaTime - g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx]; - g.FramerateSecPerFrame[g.FramerateSecPerFrameIdx] = g.IO.DeltaTime; - g.FramerateSecPerFrameIdx = (g.FramerateSecPerFrameIdx + 1) % IM_ARRAYSIZE(g.FramerateSecPerFrame); - g.IO.Framerate = (g.FramerateSecPerFrameAccum > 0.0f) ? (1.0f / (g.FramerateSecPerFrameAccum / (float)IM_ARRAYSIZE(g.FramerateSecPerFrame))) : FLT_MAX; - - // Setup current font and draw list shared data - g.IO.Fonts->Locked = true; - SetCurrentFont(GetDefaultFont()); - IM_ASSERT(g.Font->IsLoaded()); - g.DrawListSharedData.ClipRectFullscreen = ImVec4(0.0f, 0.0f, g.IO.DisplaySize.x, g.IO.DisplaySize.y); - g.DrawListSharedData.CurveTessellationTol = g.Style.CurveTessellationTol; - g.DrawListSharedData.SetCircleSegmentMaxError(g.Style.CircleSegmentMaxError); - g.DrawListSharedData.InitialFlags = ImDrawListFlags_None; - if (g.Style.AntiAliasedLines) - g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedLines; - if (g.Style.AntiAliasedFill) - g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AntiAliasedFill; - if (g.IO.BackendFlags & ImGuiBackendFlags_RendererHasVtxOffset) - g.DrawListSharedData.InitialFlags |= ImDrawListFlags_AllowVtxOffset; - - g.BackgroundDrawList.Clear(); - g.BackgroundDrawList.PushTextureID(g.IO.Fonts->TexID); - g.BackgroundDrawList.PushClipRectFullScreen(); - - g.ForegroundDrawList.Clear(); - g.ForegroundDrawList.PushTextureID(g.IO.Fonts->TexID); - g.ForegroundDrawList.PushClipRectFullScreen(); - - // Mark rendering data as invalid to prevent user who may have a handle on it to use it. - g.DrawData.Clear(); - - // Drag and drop keep the source ID alive so even if the source disappear our state is consistent - if (g.DragDropActive && g.DragDropPayload.SourceId == g.ActiveId) - KeepAliveID(g.DragDropPayload.SourceId); - - // Update HoveredId data - if (!g.HoveredIdPreviousFrame) - g.HoveredIdTimer = 0.0f; - if (!g.HoveredIdPreviousFrame || (g.HoveredId && g.ActiveId == g.HoveredId)) - g.HoveredIdNotActiveTimer = 0.0f; - if (g.HoveredId) - g.HoveredIdTimer += g.IO.DeltaTime; - if (g.HoveredId && g.ActiveId != g.HoveredId) - g.HoveredIdNotActiveTimer += g.IO.DeltaTime; - g.HoveredIdPreviousFrame = g.HoveredId; - g.HoveredId = 0; - g.HoveredIdAllowOverlap = false; - - // Update ActiveId data (clear reference to active widget if the widget isn't alive anymore) - if (g.ActiveIdIsAlive != g.ActiveId && g.ActiveIdPreviousFrame == g.ActiveId && g.ActiveId != 0) - ClearActiveID(); - if (g.ActiveId) - g.ActiveIdTimer += g.IO.DeltaTime; - g.LastActiveIdTimer += g.IO.DeltaTime; - g.ActiveIdPreviousFrame = g.ActiveId; - g.ActiveIdPreviousFrameWindow = g.ActiveIdWindow; - g.ActiveIdPreviousFrameHasBeenEditedBefore = g.ActiveIdHasBeenEditedBefore; - g.ActiveIdIsAlive = 0; - g.ActiveIdHasBeenEditedThisFrame = false; - g.ActiveIdPreviousFrameIsAlive = false; - g.ActiveIdIsJustActivated = false; - if (g.TempInputId != 0 && g.ActiveId != g.TempInputId) - g.TempInputId = 0; - if (g.ActiveId == 0) - { - g.ActiveIdUsingNavDirMask = 0x00; - g.ActiveIdUsingNavInputMask = 0x00; - g.ActiveIdUsingKeyInputMask = 0x00; - } - - // Drag and drop - g.DragDropAcceptIdPrev = g.DragDropAcceptIdCurr; - g.DragDropAcceptIdCurr = 0; - g.DragDropAcceptIdCurrRectSurface = FLT_MAX; - g.DragDropWithinSource = false; - g.DragDropWithinTarget = false; - - // Update keyboard input state - // Synchronize io.KeyMods with individual modifiers io.KeyXXX bools - g.IO.KeyMods = GetMergedKeyModFlags(); - memcpy(g.IO.KeysDownDurationPrev, g.IO.KeysDownDuration, sizeof(g.IO.KeysDownDuration)); - for (int i = 0; i < IM_ARRAYSIZE(g.IO.KeysDown); i++) - g.IO.KeysDownDuration[i] = g.IO.KeysDown[i] ? (g.IO.KeysDownDuration[i] < 0.0f ? 0.0f : g.IO.KeysDownDuration[i] + g.IO.DeltaTime) : -1.0f; - - // Update gamepad/keyboard navigation - NavUpdate(); - - // Update mouse input state - UpdateMouseInputs(); - - // Find hovered window - // (needs to be before UpdateMouseMovingWindowNewFrame so we fill g.HoveredWindowUnderMovingWindow on the mouse release frame) - UpdateHoveredWindowAndCaptureFlags(); - - // Handle user moving window with mouse (at the beginning of the frame to avoid input lag or sheering) - UpdateMouseMovingWindowNewFrame(); - - // Background darkening/whitening - if (GetTopMostPopupModal() != NULL || (g.NavWindowingTarget != NULL && g.NavWindowingHighlightAlpha > 0.0f)) - g.DimBgRatio = ImMin(g.DimBgRatio + g.IO.DeltaTime * 6.0f, 1.0f); - else - g.DimBgRatio = ImMax(g.DimBgRatio - g.IO.DeltaTime * 10.0f, 0.0f); - - g.MouseCursor = ImGuiMouseCursor_Arrow; - g.WantCaptureMouseNextFrame = g.WantCaptureKeyboardNextFrame = g.WantTextInputNextFrame = -1; - g.PlatformImePos = ImVec2(1.0f, 1.0f); // OS Input Method Editor showing on top-left of our window by default - - // Mouse wheel scrolling, scale - UpdateMouseWheel(); - - // Update legacy TAB focus - UpdateTabFocus(); - - // Mark all windows as not visible and compact unused memory. - IM_ASSERT(g.WindowsFocusOrder.Size == g.Windows.Size); - const float memory_compact_start_time = (g.IO.ConfigWindowsMemoryCompactTimer >= 0.0f) ? (float)g.Time - g.IO.ConfigWindowsMemoryCompactTimer : FLT_MAX; - for (int i = 0; i != g.Windows.Size; i++) - { - ImGuiWindow* window = g.Windows[i]; - window->WasActive = window->Active; - window->BeginCount = 0; - window->Active = false; - window->WriteAccessed = false; - - // Garbage collect transient buffers of recently unused windows - if (!window->WasActive && !window->MemoryCompacted && window->LastTimeActive < memory_compact_start_time) - GcCompactTransientWindowBuffers(window); - } - - // Closing the focused window restore focus to the first active root window in descending z-order - if (g.NavWindow && !g.NavWindow->WasActive) - FocusTopMostWindowUnderOne(NULL, NULL); - - // No window should be open at the beginning of the frame. - // But in order to allow the user to call NewFrame() multiple times without calling Render(), we are doing an explicit clear. - g.CurrentWindowStack.resize(0); - g.BeginPopupStack.resize(0); - ClosePopupsOverWindow(g.NavWindow, false); - - // [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. - UpdateDebugToolItemPicker(); - - // Create implicit/fallback window - which we will only render it if the user has added something to it. - // We don't use "Debug" to avoid colliding with user trying to create a "Debug" window with custom flags. - // This fallback is particularly important as it avoid ImGui:: calls from crashing. - g.WithinFrameScopeWithImplicitWindow = true; - SetNextWindowSize(ImVec2(400,400), ImGuiCond_FirstUseEver); - Begin("Debug##Default"); - IM_ASSERT(g.CurrentWindow->IsFallbackWindow == true); - -#ifdef IMGUI_ENABLE_TEST_ENGINE - ImGuiTestEngineHook_PostNewFrame(&g); -#endif -} - -// [DEBUG] Item picker tool - start with DebugStartItemPicker() - useful to visually select an item and break into its call-stack. -void ImGui::UpdateDebugToolItemPicker() -{ - ImGuiContext& g = *GImGui; - g.DebugItemPickerBreakId = 0; - if (g.DebugItemPickerActive) - { - const ImGuiID hovered_id = g.HoveredIdPreviousFrame; - ImGui::SetMouseCursor(ImGuiMouseCursor_Hand); - if (ImGui::IsKeyPressedMap(ImGuiKey_Escape)) - g.DebugItemPickerActive = false; - if (ImGui::IsMouseClicked(0) && hovered_id) - { - g.DebugItemPickerBreakId = hovered_id; - g.DebugItemPickerActive = false; - } - ImGui::SetNextWindowBgAlpha(0.60f); - ImGui::BeginTooltip(); - ImGui::Text("HoveredId: 0x%08X", hovered_id); - ImGui::Text("Press ESC to abort picking."); - ImGui::TextColored(GetStyleColorVec4(hovered_id ? ImGuiCol_Text : ImGuiCol_TextDisabled), "Click to break in debugger!"); - ImGui::EndTooltip(); - } -} - -void ImGui::Initialize(ImGuiContext* context) -{ - ImGuiContext& g = *context; - IM_ASSERT(!g.Initialized && !g.SettingsLoaded); - - // Add .ini handle for ImGuiWindow type - { - ImGuiSettingsHandler ini_handler; - ini_handler.TypeName = "Window"; - ini_handler.TypeHash = ImHashStr("Window"); - ini_handler.ReadOpenFn = WindowSettingsHandler_ReadOpen; - ini_handler.ReadLineFn = WindowSettingsHandler_ReadLine; - ini_handler.WriteAllFn = WindowSettingsHandler_WriteAll; - g.SettingsHandlers.push_back(ini_handler); - } - -#ifdef IMGUI_HAS_TABLE - // Add .ini handle for ImGuiTable type - { - ImGuiSettingsHandler ini_handler; - ini_handler.TypeName = "Table"; - ini_handler.TypeHash = ImHashStr("Table"); - ini_handler.ReadOpenFn = TableSettingsHandler_ReadOpen; - ini_handler.ReadLineFn = TableSettingsHandler_ReadLine; - ini_handler.WriteAllFn = TableSettingsHandler_WriteAll; - g.SettingsHandlers.push_back(ini_handler); - } -#endif // #ifdef IMGUI_HAS_TABLE - -#ifdef IMGUI_HAS_DOCK -#endif // #ifdef IMGUI_HAS_DOCK - - g.Initialized = true; -} - -// This function is merely here to free heap allocations. -void ImGui::Shutdown(ImGuiContext* context) -{ - // The fonts atlas can be used prior to calling NewFrame(), so we clear it even if g.Initialized is FALSE (which would happen if we never called NewFrame) - ImGuiContext& g = *context; - if (g.IO.Fonts && g.FontAtlasOwnedByContext) - { - g.IO.Fonts->Locked = false; - IM_DELETE(g.IO.Fonts); - } - g.IO.Fonts = NULL; - - // Cleanup of other data are conditional on actually having initialized Dear ImGui. - if (!g.Initialized) - return; - - // Save settings (unless we haven't attempted to load them: CreateContext/DestroyContext without a call to NewFrame shouldn't save an empty file) - if (g.SettingsLoaded && g.IO.IniFilename != NULL) - { - ImGuiContext* backup_context = GImGui; - SetCurrentContext(context); - SaveIniSettingsToDisk(g.IO.IniFilename); - SetCurrentContext(backup_context); - } - - // Clear everything else - for (int i = 0; i < g.Windows.Size; i++) - IM_DELETE(g.Windows[i]); - g.Windows.clear(); - g.WindowsFocusOrder.clear(); - g.WindowsTempSortBuffer.clear(); - g.CurrentWindow = NULL; - g.CurrentWindowStack.clear(); - g.WindowsById.Clear(); - g.NavWindow = NULL; - g.HoveredWindow = g.HoveredRootWindow = NULL; - g.ActiveIdWindow = g.ActiveIdPreviousFrameWindow = NULL; - g.MovingWindow = NULL; - g.ColorModifiers.clear(); - g.StyleModifiers.clear(); - g.FontStack.clear(); - g.OpenPopupStack.clear(); - g.BeginPopupStack.clear(); - g.DrawDataBuilder.ClearFreeMemory(); - g.BackgroundDrawList.ClearFreeMemory(); - g.ForegroundDrawList.ClearFreeMemory(); - - g.TabBars.Clear(); - g.CurrentTabBarStack.clear(); - g.ShrinkWidthBuffer.clear(); - - g.ClipboardHandlerData.clear(); - g.MenusIdSubmittedThisFrame.clear(); - g.InputTextState.ClearFreeMemory(); - - g.SettingsWindows.clear(); - g.SettingsHandlers.clear(); - - if (g.LogFile) - { -#ifndef IMGUI_DISABLE_TTY_FUNCTIONS - if (g.LogFile != stdout) -#endif - ImFileClose(g.LogFile); - g.LogFile = NULL; - } - g.LogBuffer.clear(); - - g.Initialized = false; -} - -// FIXME: Add a more explicit sort order in the window structure. -static int IMGUI_CDECL ChildWindowComparer(const void* lhs, const void* rhs) -{ - const ImGuiWindow* const a = *(const ImGuiWindow* const *)lhs; - const ImGuiWindow* const b = *(const ImGuiWindow* const *)rhs; - if (int d = (a->Flags & ImGuiWindowFlags_Popup) - (b->Flags & ImGuiWindowFlags_Popup)) - return d; - if (int d = (a->Flags & ImGuiWindowFlags_Tooltip) - (b->Flags & ImGuiWindowFlags_Tooltip)) - return d; - return (a->BeginOrderWithinParent - b->BeginOrderWithinParent); -} - -static void AddWindowToSortBuffer(ImVector* out_sorted_windows, ImGuiWindow* window) -{ - out_sorted_windows->push_back(window); - if (window->Active) - { - int count = window->DC.ChildWindows.Size; - if (count > 1) - ImQsort(window->DC.ChildWindows.Data, (size_t)count, sizeof(ImGuiWindow*), ChildWindowComparer); - for (int i = 0; i < count; i++) - { - ImGuiWindow* child = window->DC.ChildWindows[i]; - if (child->Active) - AddWindowToSortBuffer(out_sorted_windows, child); - } - } -} - -static void AddDrawListToDrawData(ImVector* out_list, ImDrawList* draw_list) -{ - if (draw_list->CmdBuffer.empty()) - return; - - // Remove trailing command if unused - ImDrawCmd& last_cmd = draw_list->CmdBuffer.back(); - if (last_cmd.ElemCount == 0 && last_cmd.UserCallback == NULL) - { - draw_list->CmdBuffer.pop_back(); - if (draw_list->CmdBuffer.empty()) - return; - } - - // Draw list sanity check. Detect mismatch between PrimReserve() calls and incrementing _VtxCurrentIdx, _VtxWritePtr etc. - // May trigger for you if you are using PrimXXX functions incorrectly. - IM_ASSERT(draw_list->VtxBuffer.Size == 0 || draw_list->_VtxWritePtr == draw_list->VtxBuffer.Data + draw_list->VtxBuffer.Size); - IM_ASSERT(draw_list->IdxBuffer.Size == 0 || draw_list->_IdxWritePtr == draw_list->IdxBuffer.Data + draw_list->IdxBuffer.Size); - if (!(draw_list->Flags & ImDrawListFlags_AllowVtxOffset)) - IM_ASSERT((int)draw_list->_VtxCurrentIdx == draw_list->VtxBuffer.Size); - - // Check that draw_list doesn't use more vertices than indexable (default ImDrawIdx = unsigned short = 2 bytes = 64K vertices per ImDrawList = per window) - // If this assert triggers because you are drawing lots of stuff manually: - // - First, make sure you are coarse clipping yourself and not trying to draw many things outside visible bounds. - // Be mindful that the ImDrawList API doesn't filter vertices. Use the Metrics window to inspect draw list contents. - // - If you want large meshes with more than 64K vertices, you can either: - // (A) Handle the ImDrawCmd::VtxOffset value in your renderer back-end, and set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset'. - // Most example back-ends already support this from 1.71. Pre-1.71 back-ends won't. - // Some graphics API such as GL ES 1/2 don't have a way to offset the starting vertex so it is not supported for them. - // (B) Or handle 32-bit indices in your renderer back-end, and uncomment '#define ImDrawIdx unsigned int' line in imconfig.h. - // Most example back-ends already support this. For example, the OpenGL example code detect index size at compile-time: - // glDrawElements(GL_TRIANGLES, (GLsizei)pcmd->ElemCount, sizeof(ImDrawIdx) == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT, idx_buffer_offset); - // Your own engine or render API may use different parameters or function calls to specify index sizes. - // 2 and 4 bytes indices are generally supported by most graphics API. - // - If for some reason neither of those solutions works for you, a workaround is to call BeginChild()/EndChild() before reaching - // the 64K limit to split your draw commands in multiple draw lists. - if (sizeof(ImDrawIdx) == 2) - IM_ASSERT(draw_list->_VtxCurrentIdx < (1 << 16) && "Too many vertices in ImDrawList using 16-bit indices. Read comment above"); - - out_list->push_back(draw_list); -} - -static void AddWindowToDrawData(ImVector* out_render_list, ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - g.IO.MetricsRenderWindows++; - AddDrawListToDrawData(out_render_list, window->DrawList); - for (int i = 0; i < window->DC.ChildWindows.Size; i++) - { - ImGuiWindow* child = window->DC.ChildWindows[i]; - if (IsWindowActiveAndVisible(child)) // clipped children may have been marked not active - AddWindowToDrawData(out_render_list, child); - } -} - -// Layer is locked for the root window, however child windows may use a different viewport (e.g. extruding menu) -static void AddRootWindowToDrawData(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - int layer = (window->Flags & ImGuiWindowFlags_Tooltip) ? 1 : 0; - AddWindowToDrawData(&g.DrawDataBuilder.Layers[layer], window); -} - -void ImDrawDataBuilder::FlattenIntoSingleLayer() -{ - int n = Layers[0].Size; - int size = n; - for (int i = 1; i < IM_ARRAYSIZE(Layers); i++) - size += Layers[i].Size; - Layers[0].resize(size); - for (int layer_n = 1; layer_n < IM_ARRAYSIZE(Layers); layer_n++) - { - ImVector& layer = Layers[layer_n]; - if (layer.empty()) - continue; - memcpy(&Layers[0][n], &layer[0], layer.Size * sizeof(ImDrawList*)); - n += layer.Size; - layer.resize(0); - } -} - -static void SetupDrawData(ImVector* draw_lists, ImDrawData* draw_data) -{ - ImGuiIO& io = ImGui::GetIO(); - draw_data->Valid = true; - draw_data->CmdLists = (draw_lists->Size > 0) ? draw_lists->Data : NULL; - draw_data->CmdListsCount = draw_lists->Size; - draw_data->TotalVtxCount = draw_data->TotalIdxCount = 0; - draw_data->DisplayPos = ImVec2(0.0f, 0.0f); - draw_data->DisplaySize = io.DisplaySize; - draw_data->FramebufferScale = io.DisplayFramebufferScale; - for (int n = 0; n < draw_lists->Size; n++) - { - draw_data->TotalVtxCount += draw_lists->Data[n]->VtxBuffer.Size; - draw_data->TotalIdxCount += draw_lists->Data[n]->IdxBuffer.Size; - } -} - -// When using this function it is sane to ensure that float are perfectly rounded to integer values, to that e.g. (int)(max.x-min.x) in user's render produce correct result. -void ImGui::PushClipRect(const ImVec2& clip_rect_min, const ImVec2& clip_rect_max, bool intersect_with_current_clip_rect) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DrawList->PushClipRect(clip_rect_min, clip_rect_max, intersect_with_current_clip_rect); - window->ClipRect = window->DrawList->_ClipRectStack.back(); -} - -void ImGui::PopClipRect() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DrawList->PopClipRect(); - window->ClipRect = window->DrawList->_ClipRectStack.back(); -} - -// This is normally called by Render(). You may want to call it directly if you want to avoid calling Render() but the gain will be very minimal. -void ImGui::EndFrame() -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.Initialized); - - // Don't process EndFrame() multiple times. - if (g.FrameCountEnded == g.FrameCount) - return; - IM_ASSERT(g.WithinFrameScope && "Forgot to call ImGui::NewFrame()?"); - - ErrorCheckEndFrameSanityChecks(); - - // Notify OS when our Input Method Editor cursor has moved (e.g. CJK inputs using Microsoft IME) - if (g.IO.ImeSetInputScreenPosFn && (g.PlatformImeLastPos.x == FLT_MAX || ImLengthSqr(g.PlatformImeLastPos - g.PlatformImePos) > 0.0001f)) - { - g.IO.ImeSetInputScreenPosFn((int)g.PlatformImePos.x, (int)g.PlatformImePos.y); - g.PlatformImeLastPos = g.PlatformImePos; - } - - // Hide implicit/fallback "Debug" window if it hasn't been used - g.WithinFrameScopeWithImplicitWindow = false; - if (g.CurrentWindow && !g.CurrentWindow->WriteAccessed) - g.CurrentWindow->Active = false; - End(); - - // Show CTRL+TAB list window - if (g.NavWindowingTarget != NULL) - NavUpdateWindowingOverlay(); - - // Drag and Drop: Elapse payload (if delivered, or if source stops being submitted) - if (g.DragDropActive) - { - bool is_delivered = g.DragDropPayload.Delivery; - bool is_elapsed = (g.DragDropPayload.DataFrameCount + 1 < g.FrameCount) && ((g.DragDropSourceFlags & ImGuiDragDropFlags_SourceAutoExpirePayload) || !IsMouseDown(g.DragDropMouseButton)); - if (is_delivered || is_elapsed) - ClearDragDrop(); - } - - // Drag and Drop: Fallback for source tooltip. This is not ideal but better than nothing. - if (g.DragDropActive && g.DragDropSourceFrameCount < g.FrameCount) - { - g.DragDropWithinSource = true; - SetTooltip("..."); - g.DragDropWithinSource = false; - } - - // End frame - g.WithinFrameScope = false; - g.FrameCountEnded = g.FrameCount; - - // Initiate moving window + handle left-click and right-click focus - UpdateMouseMovingWindowEndFrame(); - - // Sort the window list so that all child windows are after their parent - // We cannot do that on FocusWindow() because childs may not exist yet - g.WindowsTempSortBuffer.resize(0); - g.WindowsTempSortBuffer.reserve(g.Windows.Size); - for (int i = 0; i != g.Windows.Size; i++) - { - ImGuiWindow* window = g.Windows[i]; - if (window->Active && (window->Flags & ImGuiWindowFlags_ChildWindow)) // if a child is active its parent will add it - continue; - AddWindowToSortBuffer(&g.WindowsTempSortBuffer, window); - } - - // This usually assert if there is a mismatch between the ImGuiWindowFlags_ChildWindow / ParentWindow values and DC.ChildWindows[] in parents, aka we've done something wrong. - IM_ASSERT(g.Windows.Size == g.WindowsTempSortBuffer.Size); - g.Windows.swap(g.WindowsTempSortBuffer); - g.IO.MetricsActiveWindows = g.WindowsActiveCount; - - // Unlock font atlas - g.IO.Fonts->Locked = false; - - // Clear Input data for next frame - g.IO.MouseWheel = g.IO.MouseWheelH = 0.0f; - g.IO.InputQueueCharacters.resize(0); - memset(g.IO.NavInputs, 0, sizeof(g.IO.NavInputs)); -} - -void ImGui::Render() -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.Initialized); - - if (g.FrameCountEnded != g.FrameCount) - EndFrame(); - g.FrameCountRendered = g.FrameCount; - g.IO.MetricsRenderWindows = 0; - g.DrawDataBuilder.Clear(); - - // Add background ImDrawList - if (!g.BackgroundDrawList.VtxBuffer.empty()) - AddDrawListToDrawData(&g.DrawDataBuilder.Layers[0], &g.BackgroundDrawList); - - // Add ImDrawList to render - ImGuiWindow* windows_to_render_top_most[2]; - windows_to_render_top_most[0] = (g.NavWindowingTarget && !(g.NavWindowingTarget->Flags & ImGuiWindowFlags_NoBringToFrontOnFocus)) ? g.NavWindowingTarget->RootWindow : NULL; - windows_to_render_top_most[1] = (g.NavWindowingTarget ? g.NavWindowingList : NULL); - for (int n = 0; n != g.Windows.Size; n++) - { - ImGuiWindow* window = g.Windows[n]; - if (IsWindowActiveAndVisible(window) && (window->Flags & ImGuiWindowFlags_ChildWindow) == 0 && window != windows_to_render_top_most[0] && window != windows_to_render_top_most[1]) - AddRootWindowToDrawData(window); - } - for (int n = 0; n < IM_ARRAYSIZE(windows_to_render_top_most); n++) - if (windows_to_render_top_most[n] && IsWindowActiveAndVisible(windows_to_render_top_most[n])) // NavWindowingTarget is always temporarily displayed as the top-most window - AddRootWindowToDrawData(windows_to_render_top_most[n]); - g.DrawDataBuilder.FlattenIntoSingleLayer(); - - // Draw software mouse cursor if requested - if (g.IO.MouseDrawCursor) - RenderMouseCursor(&g.ForegroundDrawList, g.IO.MousePos, g.Style.MouseCursorScale, g.MouseCursor, IM_COL32_WHITE, IM_COL32_BLACK, IM_COL32(0, 0, 0, 48)); - - // Add foreground ImDrawList - if (!g.ForegroundDrawList.VtxBuffer.empty()) - AddDrawListToDrawData(&g.DrawDataBuilder.Layers[0], &g.ForegroundDrawList); - - // Setup ImDrawData structure for end-user - SetupDrawData(&g.DrawDataBuilder.Layers[0], &g.DrawData); - g.IO.MetricsRenderVertices = g.DrawData.TotalVtxCount; - g.IO.MetricsRenderIndices = g.DrawData.TotalIdxCount; - - // (Legacy) Call the Render callback function. The current prefer way is to let the user retrieve GetDrawData() and call the render function themselves. -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - if (g.DrawData.CmdListsCount > 0 && g.IO.RenderDrawListsFn != NULL) - g.IO.RenderDrawListsFn(&g.DrawData); -#endif -} - -// Calculate text size. Text can be multi-line. Optionally ignore text after a ## marker. -// CalcTextSize("") should return ImVec2(0.0f, g.FontSize) -ImVec2 ImGui::CalcTextSize(const char* text, const char* text_end, bool hide_text_after_double_hash, float wrap_width) -{ - ImGuiContext& g = *GImGui; - - const char* text_display_end; - if (hide_text_after_double_hash) - text_display_end = FindRenderedTextEnd(text, text_end); // Hide anything after a '##' string - else - text_display_end = text_end; - - ImFont* font = g.Font; - const float font_size = g.FontSize; - if (text == text_display_end) - return ImVec2(0.0f, font_size); - ImVec2 text_size = font->CalcTextSizeA(font_size, FLT_MAX, wrap_width, text, text_display_end, NULL); - - // Round - text_size.x = IM_FLOOR(text_size.x + 0.95f); - - return text_size; -} - -// Find window given position, search front-to-back -// FIXME: Note that we have an inconsequential lag here: OuterRectClipped is updated in Begin(), so windows moved programatically -// with SetWindowPos() and not SetNextWindowPos() will have that rectangle lagging by a frame at the time FindHoveredWindow() is -// called, aka before the next Begin(). Moving window isn't affected. -static void FindHoveredWindow() -{ - ImGuiContext& g = *GImGui; - - ImGuiWindow* hovered_window = NULL; - if (g.MovingWindow && !(g.MovingWindow->Flags & ImGuiWindowFlags_NoMouseInputs)) - hovered_window = g.MovingWindow; - - ImVec2 padding_regular = g.Style.TouchExtraPadding; - ImVec2 padding_for_resize_from_edges = g.IO.ConfigWindowsResizeFromEdges ? ImMax(g.Style.TouchExtraPadding, ImVec2(WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS, WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS)) : padding_regular; - for (int i = g.Windows.Size - 1; i >= 0; i--) - { - ImGuiWindow* window = g.Windows[i]; - if (!window->Active || window->Hidden) - continue; - if (window->Flags & ImGuiWindowFlags_NoMouseInputs) - continue; - - // Using the clipped AABB, a child window will typically be clipped by its parent (not always) - ImRect bb(window->OuterRectClipped); - if (window->Flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_AlwaysAutoResize)) - bb.Expand(padding_regular); - else - bb.Expand(padding_for_resize_from_edges); - if (!bb.Contains(g.IO.MousePos)) - continue; - - // Those seemingly unnecessary extra tests are because the code here is a little different in viewport/docking branches. - if (hovered_window == NULL) - hovered_window = window; - if (hovered_window) - break; - } - - g.HoveredWindow = hovered_window; - g.HoveredRootWindow = g.HoveredWindow ? g.HoveredWindow->RootWindow : NULL; - -} - -// Test if mouse cursor is hovering given rectangle -// NB- Rectangle is clipped by our current clip setting -// NB- Expand the rectangle to be generous on imprecise inputs systems (g.Style.TouchExtraPadding) -bool ImGui::IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip) -{ - ImGuiContext& g = *GImGui; - - // Clip - ImRect rect_clipped(r_min, r_max); - if (clip) - rect_clipped.ClipWith(g.CurrentWindow->ClipRect); - - // Expand for touch input - const ImRect rect_for_touch(rect_clipped.Min - g.Style.TouchExtraPadding, rect_clipped.Max + g.Style.TouchExtraPadding); - if (!rect_for_touch.Contains(g.IO.MousePos)) - return false; - return true; -} - -int ImGui::GetKeyIndex(ImGuiKey imgui_key) -{ - IM_ASSERT(imgui_key >= 0 && imgui_key < ImGuiKey_COUNT); - ImGuiContext& g = *GImGui; - return g.IO.KeyMap[imgui_key]; -} - -// Note that dear imgui doesn't know the semantic of each entry of io.KeysDown[]! -// Use your own indices/enums according to how your back-end/engine stored them into io.KeysDown[]! -bool ImGui::IsKeyDown(int user_key_index) -{ - if (user_key_index < 0) - return false; - ImGuiContext& g = *GImGui; - IM_ASSERT(user_key_index >= 0 && user_key_index < IM_ARRAYSIZE(g.IO.KeysDown)); - return g.IO.KeysDown[user_key_index]; -} - -// t0 = previous time (e.g.: g.Time - g.IO.DeltaTime) -// t1 = current time (e.g.: g.Time) -// An event is triggered at: -// t = 0.0f t = repeat_delay, t = repeat_delay + repeat_rate*N -int ImGui::CalcTypematicRepeatAmount(float t0, float t1, float repeat_delay, float repeat_rate) -{ - if (t1 == 0.0f) - return 1; - if (t0 >= t1) - return 0; - if (repeat_rate <= 0.0f) - return (t0 < repeat_delay) && (t1 >= repeat_delay); - const int count_t0 = (t0 < repeat_delay) ? -1 : (int)((t0 - repeat_delay) / repeat_rate); - const int count_t1 = (t1 < repeat_delay) ? -1 : (int)((t1 - repeat_delay) / repeat_rate); - const int count = count_t1 - count_t0; - return count; -} - -int ImGui::GetKeyPressedAmount(int key_index, float repeat_delay, float repeat_rate) -{ - ImGuiContext& g = *GImGui; - if (key_index < 0) - return 0; - IM_ASSERT(key_index >= 0 && key_index < IM_ARRAYSIZE(g.IO.KeysDown)); - const float t = g.IO.KeysDownDuration[key_index]; - return CalcTypematicRepeatAmount(t - g.IO.DeltaTime, t, repeat_delay, repeat_rate); -} - -bool ImGui::IsKeyPressed(int user_key_index, bool repeat) -{ - ImGuiContext& g = *GImGui; - if (user_key_index < 0) - return false; - IM_ASSERT(user_key_index >= 0 && user_key_index < IM_ARRAYSIZE(g.IO.KeysDown)); - const float t = g.IO.KeysDownDuration[user_key_index]; - if (t == 0.0f) - return true; - if (repeat && t > g.IO.KeyRepeatDelay) - return GetKeyPressedAmount(user_key_index, g.IO.KeyRepeatDelay, g.IO.KeyRepeatRate) > 0; - return false; -} - -bool ImGui::IsKeyReleased(int user_key_index) -{ - ImGuiContext& g = *GImGui; - if (user_key_index < 0) return false; - IM_ASSERT(user_key_index >= 0 && user_key_index < IM_ARRAYSIZE(g.IO.KeysDown)); - return g.IO.KeysDownDurationPrev[user_key_index] >= 0.0f && !g.IO.KeysDown[user_key_index]; -} - -bool ImGui::IsMouseDown(ImGuiMouseButton button) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseDown[button]; -} - -bool ImGui::IsMouseClicked(ImGuiMouseButton button, bool repeat) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - const float t = g.IO.MouseDownDuration[button]; - if (t == 0.0f) - return true; - - if (repeat && t > g.IO.KeyRepeatDelay) - { - // FIXME: 2019/05/03: Our old repeat code was wrong here and led to doubling the repeat rate, which made it an ok rate for repeat on mouse hold. - int amount = CalcTypematicRepeatAmount(t - g.IO.DeltaTime, t, g.IO.KeyRepeatDelay, g.IO.KeyRepeatRate * 0.50f); - if (amount > 0) - return true; - } - return false; -} - -bool ImGui::IsMouseReleased(ImGuiMouseButton button) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseReleased[button]; -} - -bool ImGui::IsMouseDoubleClicked(ImGuiMouseButton button) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - return g.IO.MouseDoubleClicked[button]; -} - -// [Internal] This doesn't test if the button is pressed -bool ImGui::IsMouseDragPastThreshold(ImGuiMouseButton button, float lock_threshold) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - if (lock_threshold < 0.0f) - lock_threshold = g.IO.MouseDragThreshold; - return g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold; -} - -bool ImGui::IsMouseDragging(ImGuiMouseButton button, float lock_threshold) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - if (!g.IO.MouseDown[button]) - return false; - return IsMouseDragPastThreshold(button, lock_threshold); -} - -ImVec2 ImGui::GetMousePos() -{ - ImGuiContext& g = *GImGui; - return g.IO.MousePos; -} - -// NB: prefer to call right after BeginPopup(). At the time Selectable/MenuItem is activated, the popup is already closed! -ImVec2 ImGui::GetMousePosOnOpeningCurrentPopup() -{ - ImGuiContext& g = *GImGui; - if (g.BeginPopupStack.Size > 0) - return g.OpenPopupStack[g.BeginPopupStack.Size-1].OpenMousePos; - return g.IO.MousePos; -} - -// We typically use ImVec2(-FLT_MAX,-FLT_MAX) to denote an invalid mouse position. -bool ImGui::IsMousePosValid(const ImVec2* mouse_pos) -{ - // The assert is only to silence a false-positive in XCode Static Analysis. - // Because GImGui is not dereferenced in every code path, the static analyzer assume that it may be NULL (which it doesn't for other functions). - IM_ASSERT(GImGui != NULL); - const float MOUSE_INVALID = -256000.0f; - ImVec2 p = mouse_pos ? *mouse_pos : GImGui->IO.MousePos; - return p.x >= MOUSE_INVALID && p.y >= MOUSE_INVALID; -} - -bool ImGui::IsAnyMouseDown() -{ - ImGuiContext& g = *GImGui; - for (int n = 0; n < IM_ARRAYSIZE(g.IO.MouseDown); n++) - if (g.IO.MouseDown[n]) - return true; - return false; -} - -// Return the delta from the initial clicking position while the mouse button is clicked or was just released. -// This is locked and return 0.0f until the mouse moves past a distance threshold at least once. -// NB: This is only valid if IsMousePosValid(). Back-ends in theory should always keep mouse position valid when dragging even outside the client window. -ImVec2 ImGui::GetMouseDragDelta(ImGuiMouseButton button, float lock_threshold) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - if (lock_threshold < 0.0f) - lock_threshold = g.IO.MouseDragThreshold; - if (g.IO.MouseDown[button] || g.IO.MouseReleased[button]) - if (g.IO.MouseDragMaxDistanceSqr[button] >= lock_threshold * lock_threshold) - if (IsMousePosValid(&g.IO.MousePos) && IsMousePosValid(&g.IO.MouseClickedPos[button])) - return g.IO.MousePos - g.IO.MouseClickedPos[button]; - return ImVec2(0.0f, 0.0f); -} - -void ImGui::ResetMouseDragDelta(ImGuiMouseButton button) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(button >= 0 && button < IM_ARRAYSIZE(g.IO.MouseDown)); - // NB: We don't need to reset g.IO.MouseDragMaxDistanceSqr - g.IO.MouseClickedPos[button] = g.IO.MousePos; -} - -ImGuiMouseCursor ImGui::GetMouseCursor() -{ - return GImGui->MouseCursor; -} - -void ImGui::SetMouseCursor(ImGuiMouseCursor cursor_type) -{ - GImGui->MouseCursor = cursor_type; -} - -void ImGui::CaptureKeyboardFromApp(bool capture) -{ - GImGui->WantCaptureKeyboardNextFrame = capture ? 1 : 0; -} - -void ImGui::CaptureMouseFromApp(bool capture) -{ - GImGui->WantCaptureMouseNextFrame = capture ? 1 : 0; -} - -bool ImGui::IsItemActive() -{ - ImGuiContext& g = *GImGui; - if (g.ActiveId) - { - ImGuiWindow* window = g.CurrentWindow; - return g.ActiveId == window->DC.LastItemId; - } - return false; -} - -bool ImGui::IsItemActivated() -{ - ImGuiContext& g = *GImGui; - if (g.ActiveId) - { - ImGuiWindow* window = g.CurrentWindow; - if (g.ActiveId == window->DC.LastItemId && g.ActiveIdPreviousFrame != window->DC.LastItemId) - return true; - } - return false; -} - -bool ImGui::IsItemDeactivated() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_HasDeactivated) - return (window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_Deactivated) != 0; - return (g.ActiveIdPreviousFrame == window->DC.LastItemId && g.ActiveIdPreviousFrame != 0 && g.ActiveId != window->DC.LastItemId); -} - -bool ImGui::IsItemDeactivatedAfterEdit() -{ - ImGuiContext& g = *GImGui; - return IsItemDeactivated() && (g.ActiveIdPreviousFrameHasBeenEditedBefore || (g.ActiveId == 0 && g.ActiveIdHasBeenEditedBefore)); -} - -bool ImGui::IsItemFocused() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - if (g.NavId == 0 || g.NavDisableHighlight || g.NavId != window->DC.LastItemId) - return false; - return true; -} - -bool ImGui::IsItemClicked(ImGuiMouseButton mouse_button) -{ - return IsMouseClicked(mouse_button) && IsItemHovered(ImGuiHoveredFlags_None); -} - -bool ImGui::IsItemToggledOpen() -{ - ImGuiContext& g = *GImGui; - return (g.CurrentWindow->DC.LastItemStatusFlags & ImGuiItemStatusFlags_ToggledOpen) ? true : false; -} - -bool ImGui::IsItemToggledSelection() -{ - ImGuiContext& g = *GImGui; - return (g.CurrentWindow->DC.LastItemStatusFlags & ImGuiItemStatusFlags_ToggledSelection) ? true : false; -} - -bool ImGui::IsAnyItemHovered() -{ - ImGuiContext& g = *GImGui; - return g.HoveredId != 0 || g.HoveredIdPreviousFrame != 0; -} - -bool ImGui::IsAnyItemActive() -{ - ImGuiContext& g = *GImGui; - return g.ActiveId != 0; -} - -bool ImGui::IsAnyItemFocused() -{ - ImGuiContext& g = *GImGui; - return g.NavId != 0 && !g.NavDisableHighlight; -} - -bool ImGui::IsItemVisible() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->ClipRect.Overlaps(window->DC.LastItemRect); -} - -bool ImGui::IsItemEdited() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return (window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_Edited) != 0; -} - -// Allow last item to be overlapped by a subsequent item. Both may be activated during the same frame before the later one takes priority. -void ImGui::SetItemAllowOverlap() -{ - ImGuiContext& g = *GImGui; - if (g.HoveredId == g.CurrentWindow->DC.LastItemId) - g.HoveredIdAllowOverlap = true; - if (g.ActiveId == g.CurrentWindow->DC.LastItemId) - g.ActiveIdAllowOverlap = true; -} - -ImVec2 ImGui::GetItemRectMin() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.LastItemRect.Min; -} - -ImVec2 ImGui::GetItemRectMax() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.LastItemRect.Max; -} - -ImVec2 ImGui::GetItemRectSize() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.LastItemRect.GetSize(); -} - -static ImRect GetViewportRect() -{ - ImGuiContext& g = *GImGui; - return ImRect(0.0f, 0.0f, g.IO.DisplaySize.x, g.IO.DisplaySize.y); -} - -bool ImGui::BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* parent_window = g.CurrentWindow; - - flags |= ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_ChildWindow; - flags |= (parent_window->Flags & ImGuiWindowFlags_NoMove); // Inherit the NoMove flag - - // Size - const ImVec2 content_avail = GetContentRegionAvail(); - ImVec2 size = ImFloor(size_arg); - const int auto_fit_axises = ((size.x == 0.0f) ? (1 << ImGuiAxis_X) : 0x00) | ((size.y == 0.0f) ? (1 << ImGuiAxis_Y) : 0x00); - if (size.x <= 0.0f) - size.x = ImMax(content_avail.x + size.x, 4.0f); // Arbitrary minimum child size (0.0f causing too much issues) - if (size.y <= 0.0f) - size.y = ImMax(content_avail.y + size.y, 4.0f); - SetNextWindowSize(size); - - // Build up name. If you need to append to a same child from multiple location in the ID stack, use BeginChild(ImGuiID id) with a stable value. - char title[256]; - if (name) - ImFormatString(title, IM_ARRAYSIZE(title), "%s/%s_%08X", parent_window->Name, name, id); - else - ImFormatString(title, IM_ARRAYSIZE(title), "%s/%08X", parent_window->Name, id); - - const float backup_border_size = g.Style.ChildBorderSize; - if (!border) - g.Style.ChildBorderSize = 0.0f; - bool ret = Begin(title, NULL, flags); - g.Style.ChildBorderSize = backup_border_size; - - ImGuiWindow* child_window = g.CurrentWindow; - child_window->ChildId = id; - child_window->AutoFitChildAxises = (ImS8)auto_fit_axises; - - // Set the cursor to handle case where the user called SetNextWindowPos()+BeginChild() manually. - // While this is not really documented/defined, it seems that the expected thing to do. - if (child_window->BeginCount == 1) - parent_window->DC.CursorPos = child_window->Pos; - - // Process navigation-in immediately so NavInit can run on first frame - if (g.NavActivateId == id && !(flags & ImGuiWindowFlags_NavFlattened) && (child_window->DC.NavLayerActiveMask != 0 || child_window->DC.NavHasScroll)) - { - FocusWindow(child_window); - NavInitWindow(child_window, false); - SetActiveID(id+1, child_window); // Steal ActiveId with a dummy id so that key-press won't activate child item - g.ActiveIdSource = ImGuiInputSource_Nav; - } - return ret; -} - -bool ImGui::BeginChild(const char* str_id, const ImVec2& size_arg, bool border, ImGuiWindowFlags extra_flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - return BeginChildEx(str_id, window->GetID(str_id), size_arg, border, extra_flags); -} - -bool ImGui::BeginChild(ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags extra_flags) -{ - IM_ASSERT(id != 0); - return BeginChildEx(NULL, id, size_arg, border, extra_flags); -} - -void ImGui::EndChild() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - IM_ASSERT(g.WithinEndChild == false); - IM_ASSERT(window->Flags & ImGuiWindowFlags_ChildWindow); // Mismatched BeginChild()/EndChild() calls - - g.WithinEndChild = true; - if (window->BeginCount > 1) - { - End(); - } - else - { - ImVec2 sz = window->Size; - if (window->AutoFitChildAxises & (1 << ImGuiAxis_X)) // Arbitrary minimum zero-ish child size of 4.0f causes less trouble than a 0.0f - sz.x = ImMax(4.0f, sz.x); - if (window->AutoFitChildAxises & (1 << ImGuiAxis_Y)) - sz.y = ImMax(4.0f, sz.y); - End(); - - ImGuiWindow* parent_window = g.CurrentWindow; - ImRect bb(parent_window->DC.CursorPos, parent_window->DC.CursorPos + sz); - ItemSize(sz); - if ((window->DC.NavLayerActiveMask != 0 || window->DC.NavHasScroll) && !(window->Flags & ImGuiWindowFlags_NavFlattened)) - { - ItemAdd(bb, window->ChildId); - RenderNavHighlight(bb, window->ChildId); - - // When browsing a window that has no activable items (scroll only) we keep a highlight on the child - if (window->DC.NavLayerActiveMask == 0 && window == g.NavWindow) - RenderNavHighlight(ImRect(bb.Min - ImVec2(2,2), bb.Max + ImVec2(2,2)), g.NavId, ImGuiNavHighlightFlags_TypeThin); - } - else - { - // Not navigable into - ItemAdd(bb, 0); - } - } - g.WithinEndChild = false; -} - -// Helper to create a child window / scrolling region that looks like a normal widget frame. -bool ImGui::BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags extra_flags) -{ - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - PushStyleColor(ImGuiCol_ChildBg, style.Colors[ImGuiCol_FrameBg]); - PushStyleVar(ImGuiStyleVar_ChildRounding, style.FrameRounding); - PushStyleVar(ImGuiStyleVar_ChildBorderSize, style.FrameBorderSize); - PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding); - bool ret = BeginChild(id, size, true, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysUseWindowPadding | extra_flags); - PopStyleVar(3); - PopStyleColor(); - return ret; -} - -void ImGui::EndChildFrame() -{ - EndChild(); -} - -static void SetWindowConditionAllowFlags(ImGuiWindow* window, ImGuiCond flags, bool enabled) -{ - window->SetWindowPosAllowFlags = enabled ? (window->SetWindowPosAllowFlags | flags) : (window->SetWindowPosAllowFlags & ~flags); - window->SetWindowSizeAllowFlags = enabled ? (window->SetWindowSizeAllowFlags | flags) : (window->SetWindowSizeAllowFlags & ~flags); - window->SetWindowCollapsedAllowFlags = enabled ? (window->SetWindowCollapsedAllowFlags | flags) : (window->SetWindowCollapsedAllowFlags & ~flags); -} - -ImGuiWindow* ImGui::FindWindowByID(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - return (ImGuiWindow*)g.WindowsById.GetVoidPtr(id); -} - -ImGuiWindow* ImGui::FindWindowByName(const char* name) -{ - ImGuiID id = ImHashStr(name); - return FindWindowByID(id); -} - -static ImGuiWindow* CreateNewWindow(const char* name, ImVec2 size, ImGuiWindowFlags flags) -{ - ImGuiContext& g = *GImGui; - //IMGUI_DEBUG_LOG("CreateNewWindow '%s', flags = 0x%08X\n", name, flags); - - // Create window the first time - ImGuiWindow* window = IM_NEW(ImGuiWindow)(&g, name); - window->Flags = flags; - g.WindowsById.SetVoidPtr(window->ID, window); - - // Default/arbitrary window position. Use SetNextWindowPos() with the appropriate condition flag to change the initial position of a window. - window->Pos = ImVec2(60, 60); - - // User can disable loading and saving of settings. Tooltip and child windows also don't store settings. - if (!(flags & ImGuiWindowFlags_NoSavedSettings)) - if (ImGuiWindowSettings* settings = ImGui::FindWindowSettings(window->ID)) - { - // Retrieve settings from .ini file - window->SettingsOffset = g.SettingsWindows.offset_from_ptr(settings); - SetWindowConditionAllowFlags(window, ImGuiCond_FirstUseEver, false); - window->Pos = ImVec2(settings->Pos.x, settings->Pos.y); - window->Collapsed = settings->Collapsed; - if (settings->Size.x > 0 && settings->Size.y > 0) - size = ImVec2(settings->Size.x, settings->Size.y); - } - window->Size = window->SizeFull = ImFloor(size); - window->DC.CursorStartPos = window->DC.CursorMaxPos = window->Pos; // So first call to CalcContentSize() doesn't return crazy values - - if ((flags & ImGuiWindowFlags_AlwaysAutoResize) != 0) - { - window->AutoFitFramesX = window->AutoFitFramesY = 2; - window->AutoFitOnlyGrows = false; - } - else - { - if (window->Size.x <= 0.0f) - window->AutoFitFramesX = 2; - if (window->Size.y <= 0.0f) - window->AutoFitFramesY = 2; - window->AutoFitOnlyGrows = (window->AutoFitFramesX > 0) || (window->AutoFitFramesY > 0); - } - - g.WindowsFocusOrder.push_back(window); - if (flags & ImGuiWindowFlags_NoBringToFrontOnFocus) - g.Windows.push_front(window); // Quite slow but rare and only once - else - g.Windows.push_back(window); - return window; -} - -static ImVec2 CalcWindowSizeAfterConstraint(ImGuiWindow* window, ImVec2 new_size) -{ - ImGuiContext& g = *GImGui; - if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSizeConstraint) - { - // Using -1,-1 on either X/Y axis to preserve the current size. - ImRect cr = g.NextWindowData.SizeConstraintRect; - new_size.x = (cr.Min.x >= 0 && cr.Max.x >= 0) ? ImClamp(new_size.x, cr.Min.x, cr.Max.x) : window->SizeFull.x; - new_size.y = (cr.Min.y >= 0 && cr.Max.y >= 0) ? ImClamp(new_size.y, cr.Min.y, cr.Max.y) : window->SizeFull.y; - if (g.NextWindowData.SizeCallback) - { - ImGuiSizeCallbackData data; - data.UserData = g.NextWindowData.SizeCallbackUserData; - data.Pos = window->Pos; - data.CurrentSize = window->SizeFull; - data.DesiredSize = new_size; - g.NextWindowData.SizeCallback(&data); - new_size = data.DesiredSize; - } - new_size.x = IM_FLOOR(new_size.x); - new_size.y = IM_FLOOR(new_size.y); - } - - // Minimum size - if (!(window->Flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_AlwaysAutoResize))) - { - ImGuiWindow* window_for_height = window; - new_size = ImMax(new_size, g.Style.WindowMinSize); - new_size.y = ImMax(new_size.y, window_for_height->TitleBarHeight() + window_for_height->MenuBarHeight() + ImMax(0.0f, g.Style.WindowRounding - 1.0f)); // Reduce artifacts with very small windows - } - return new_size; -} - -static ImVec2 CalcWindowContentSize(ImGuiWindow* window) -{ - if (window->Collapsed) - if (window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) - return window->ContentSize; - if (window->Hidden && window->HiddenFramesCannotSkipItems == 0 && window->HiddenFramesCanSkipItems > 0) - return window->ContentSize; - - ImVec2 sz; - sz.x = IM_FLOOR((window->ContentSizeExplicit.x != 0.0f) ? window->ContentSizeExplicit.x : window->DC.CursorMaxPos.x - window->DC.CursorStartPos.x); - sz.y = IM_FLOOR((window->ContentSizeExplicit.y != 0.0f) ? window->ContentSizeExplicit.y : window->DC.CursorMaxPos.y - window->DC.CursorStartPos.y); - return sz; -} - -static ImVec2 CalcWindowAutoFitSize(ImGuiWindow* window, const ImVec2& size_contents) -{ - ImGuiContext& g = *GImGui; - ImGuiStyle& style = g.Style; - ImVec2 size_decorations = ImVec2(0.0f, window->TitleBarHeight() + window->MenuBarHeight()); - ImVec2 size_pad = window->WindowPadding * 2.0f; - ImVec2 size_desired = size_contents + size_pad + size_decorations; - if (window->Flags & ImGuiWindowFlags_Tooltip) - { - // Tooltip always resize - return size_desired; - } - else - { - // Maximum window size is determined by the viewport size or monitor size - const bool is_popup = (window->Flags & ImGuiWindowFlags_Popup) != 0; - const bool is_menu = (window->Flags & ImGuiWindowFlags_ChildMenu) != 0; - ImVec2 size_min = style.WindowMinSize; - if (is_popup || is_menu) // Popups and menus bypass style.WindowMinSize by default, but we give then a non-zero minimum size to facilitate understanding problematic cases (e.g. empty popups) - size_min = ImMin(size_min, ImVec2(4.0f, 4.0f)); - ImVec2 size_auto_fit = ImClamp(size_desired, size_min, ImMax(size_min, g.IO.DisplaySize - style.DisplaySafeAreaPadding * 2.0f)); - - // When the window cannot fit all contents (either because of constraints, either because screen is too small), - // we are growing the size on the other axis to compensate for expected scrollbar. FIXME: Might turn bigger than ViewportSize-WindowPadding. - ImVec2 size_auto_fit_after_constraint = CalcWindowSizeAfterConstraint(window, size_auto_fit); - bool will_have_scrollbar_x = (size_auto_fit_after_constraint.x - size_pad.x - size_decorations.x < size_contents.x && !(window->Flags & ImGuiWindowFlags_NoScrollbar) && (window->Flags & ImGuiWindowFlags_HorizontalScrollbar)) || (window->Flags & ImGuiWindowFlags_AlwaysHorizontalScrollbar); - bool will_have_scrollbar_y = (size_auto_fit_after_constraint.y - size_pad.y - size_decorations.y < size_contents.y && !(window->Flags & ImGuiWindowFlags_NoScrollbar)) || (window->Flags & ImGuiWindowFlags_AlwaysVerticalScrollbar); - if (will_have_scrollbar_x) - size_auto_fit.y += style.ScrollbarSize; - if (will_have_scrollbar_y) - size_auto_fit.x += style.ScrollbarSize; - return size_auto_fit; - } -} - -ImVec2 ImGui::CalcWindowExpectedSize(ImGuiWindow* window) -{ - ImVec2 size_contents = CalcWindowContentSize(window); - ImVec2 size_auto_fit = CalcWindowAutoFitSize(window, size_contents); - ImVec2 size_final = CalcWindowSizeAfterConstraint(window, size_auto_fit); - return size_final; -} - -static ImGuiCol GetWindowBgColorIdxFromFlags(ImGuiWindowFlags flags) -{ - if (flags & (ImGuiWindowFlags_Tooltip | ImGuiWindowFlags_Popup)) - return ImGuiCol_PopupBg; - if (flags & ImGuiWindowFlags_ChildWindow) - return ImGuiCol_ChildBg; - return ImGuiCol_WindowBg; -} - -static void CalcResizePosSizeFromAnyCorner(ImGuiWindow* window, const ImVec2& corner_target, const ImVec2& corner_norm, ImVec2* out_pos, ImVec2* out_size) -{ - ImVec2 pos_min = ImLerp(corner_target, window->Pos, corner_norm); // Expected window upper-left - ImVec2 pos_max = ImLerp(window->Pos + window->Size, corner_target, corner_norm); // Expected window lower-right - ImVec2 size_expected = pos_max - pos_min; - ImVec2 size_constrained = CalcWindowSizeAfterConstraint(window, size_expected); - *out_pos = pos_min; - if (corner_norm.x == 0.0f) - out_pos->x -= (size_constrained.x - size_expected.x); - if (corner_norm.y == 0.0f) - out_pos->y -= (size_constrained.y - size_expected.y); - *out_size = size_constrained; -} - -struct ImGuiResizeGripDef -{ - ImVec2 CornerPosN; - ImVec2 InnerDir; - int AngleMin12, AngleMax12; -}; - -static const ImGuiResizeGripDef resize_grip_def[4] = -{ - { ImVec2(1,1), ImVec2(-1,-1), 0, 3 }, // Lower-right - { ImVec2(0,1), ImVec2(+1,-1), 3, 6 }, // Lower-left - { ImVec2(0,0), ImVec2(+1,+1), 6, 9 }, // Upper-left (Unused) - { ImVec2(1,0), ImVec2(-1,+1), 9,12 }, // Upper-right (Unused) -}; - -static ImRect GetResizeBorderRect(ImGuiWindow* window, int border_n, float perp_padding, float thickness) -{ - ImRect rect = window->Rect(); - if (thickness == 0.0f) rect.Max -= ImVec2(1,1); - if (border_n == 0) return ImRect(rect.Min.x + perp_padding, rect.Min.y - thickness, rect.Max.x - perp_padding, rect.Min.y + thickness); // Top - if (border_n == 1) return ImRect(rect.Max.x - thickness, rect.Min.y + perp_padding, rect.Max.x + thickness, rect.Max.y - perp_padding); // Right - if (border_n == 2) return ImRect(rect.Min.x + perp_padding, rect.Max.y - thickness, rect.Max.x - perp_padding, rect.Max.y + thickness); // Bottom - if (border_n == 3) return ImRect(rect.Min.x - thickness, rect.Min.y + perp_padding, rect.Min.x + thickness, rect.Max.y - perp_padding); // Left - IM_ASSERT(0); - return ImRect(); -} - -// 0..3: corners (Lower-right, Lower-left, Unused, Unused) -// 4..7: borders (Top, Right, Bottom, Left) -ImGuiID ImGui::GetWindowResizeID(ImGuiWindow* window, int n) -{ - IM_ASSERT(n >= 0 && n <= 7); - ImGuiID id = window->ID; - id = ImHashStr("#RESIZE", 0, id); - id = ImHashData(&n, sizeof(int), id); - return id; -} - -// Handle resize for: Resize Grips, Borders, Gamepad -// Return true when using auto-fit (double click on resize grip) -static bool ImGui::UpdateWindowManualResize(ImGuiWindow* window, const ImVec2& size_auto_fit, int* border_held, int resize_grip_count, ImU32 resize_grip_col[4]) -{ - ImGuiContext& g = *GImGui; - ImGuiWindowFlags flags = window->Flags; - - if ((flags & ImGuiWindowFlags_NoResize) || (flags & ImGuiWindowFlags_AlwaysAutoResize) || window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) - return false; - if (window->WasActive == false) // Early out to avoid running this code for e.g. an hidden implicit/fallback Debug window. - return false; - - bool ret_auto_fit = false; - const int resize_border_count = g.IO.ConfigWindowsResizeFromEdges ? 4 : 0; - const float grip_draw_size = IM_FLOOR(ImMax(g.FontSize * 1.35f, window->WindowRounding + 1.0f + g.FontSize * 0.2f)); - const float grip_hover_inner_size = IM_FLOOR(grip_draw_size * 0.75f); - const float grip_hover_outer_size = g.IO.ConfigWindowsResizeFromEdges ? WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS : 0.0f; - - ImVec2 pos_target(FLT_MAX, FLT_MAX); - ImVec2 size_target(FLT_MAX, FLT_MAX); - - // Resize grips and borders are on layer 1 - window->DC.NavLayerCurrent = ImGuiNavLayer_Menu; - window->DC.NavLayerCurrentMask = (1 << ImGuiNavLayer_Menu); - - // Manual resize grips - PushID("#RESIZE"); - for (int resize_grip_n = 0; resize_grip_n < resize_grip_count; resize_grip_n++) - { - const ImGuiResizeGripDef& grip = resize_grip_def[resize_grip_n]; - const ImVec2 corner = ImLerp(window->Pos, window->Pos + window->Size, grip.CornerPosN); - - // Using the FlattenChilds button flag we make the resize button accessible even if we are hovering over a child window - ImRect resize_rect(corner - grip.InnerDir * grip_hover_outer_size, corner + grip.InnerDir * grip_hover_inner_size); - if (resize_rect.Min.x > resize_rect.Max.x) ImSwap(resize_rect.Min.x, resize_rect.Max.x); - if (resize_rect.Min.y > resize_rect.Max.y) ImSwap(resize_rect.Min.y, resize_rect.Max.y); - bool hovered, held; - ButtonBehavior(resize_rect, window->GetID(resize_grip_n), &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_NoNavFocus); - //GetForegroundDrawList(window)->AddRect(resize_rect.Min, resize_rect.Max, IM_COL32(255, 255, 0, 255)); - if (hovered || held) - g.MouseCursor = (resize_grip_n & 1) ? ImGuiMouseCursor_ResizeNESW : ImGuiMouseCursor_ResizeNWSE; - - if (held && g.IO.MouseDoubleClicked[0] && resize_grip_n == 0) - { - // Manual auto-fit when double-clicking - size_target = CalcWindowSizeAfterConstraint(window, size_auto_fit); - ret_auto_fit = true; - ClearActiveID(); - } - else if (held) - { - // Resize from any of the four corners - // We don't use an incremental MouseDelta but rather compute an absolute target size based on mouse position - ImVec2 corner_target = g.IO.MousePos - g.ActiveIdClickOffset + ImLerp(grip.InnerDir * grip_hover_outer_size, grip.InnerDir * -grip_hover_inner_size, grip.CornerPosN); // Corner of the window corresponding to our corner grip - CalcResizePosSizeFromAnyCorner(window, corner_target, grip.CornerPosN, &pos_target, &size_target); - } - if (resize_grip_n == 0 || held || hovered) - resize_grip_col[resize_grip_n] = GetColorU32(held ? ImGuiCol_ResizeGripActive : hovered ? ImGuiCol_ResizeGripHovered : ImGuiCol_ResizeGrip); - } - for (int border_n = 0; border_n < resize_border_count; border_n++) - { - bool hovered, held; - ImRect border_rect = GetResizeBorderRect(window, border_n, grip_hover_inner_size, WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS); - ButtonBehavior(border_rect, window->GetID(border_n + 4), &hovered, &held, ImGuiButtonFlags_FlattenChildren); - //GetForegroundDrawLists(window)->AddRect(border_rect.Min, border_rect.Max, IM_COL32(255, 255, 0, 255)); - if ((hovered && g.HoveredIdTimer > WINDOWS_RESIZE_FROM_EDGES_FEEDBACK_TIMER) || held) - { - g.MouseCursor = (border_n & 1) ? ImGuiMouseCursor_ResizeEW : ImGuiMouseCursor_ResizeNS; - if (held) - *border_held = border_n; - } - if (held) - { - ImVec2 border_target = window->Pos; - ImVec2 border_posn; - if (border_n == 0) { border_posn = ImVec2(0, 0); border_target.y = (g.IO.MousePos.y - g.ActiveIdClickOffset.y + WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS); } // Top - if (border_n == 1) { border_posn = ImVec2(1, 0); border_target.x = (g.IO.MousePos.x - g.ActiveIdClickOffset.x + WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS); } // Right - if (border_n == 2) { border_posn = ImVec2(0, 1); border_target.y = (g.IO.MousePos.y - g.ActiveIdClickOffset.y + WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS); } // Bottom - if (border_n == 3) { border_posn = ImVec2(0, 0); border_target.x = (g.IO.MousePos.x - g.ActiveIdClickOffset.x + WINDOWS_RESIZE_FROM_EDGES_HALF_THICKNESS); } // Left - CalcResizePosSizeFromAnyCorner(window, border_target, border_posn, &pos_target, &size_target); - } - } - PopID(); - - // Restore nav layer - window->DC.NavLayerCurrent = ImGuiNavLayer_Main; - window->DC.NavLayerCurrentMask = (1 << ImGuiNavLayer_Main); - - // Navigation resize (keyboard/gamepad) - if (g.NavWindowingTarget && g.NavWindowingTarget->RootWindow == window) - { - ImVec2 nav_resize_delta; - if (g.NavInputSource == ImGuiInputSource_NavKeyboard && g.IO.KeyShift) - nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard, ImGuiInputReadMode_Down); - if (g.NavInputSource == ImGuiInputSource_NavGamepad) - nav_resize_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_PadDPad, ImGuiInputReadMode_Down); - if (nav_resize_delta.x != 0.0f || nav_resize_delta.y != 0.0f) - { - const float NAV_RESIZE_SPEED = 600.0f; - nav_resize_delta *= ImFloor(NAV_RESIZE_SPEED * g.IO.DeltaTime * ImMin(g.IO.DisplayFramebufferScale.x, g.IO.DisplayFramebufferScale.y)); - g.NavWindowingToggleLayer = false; - g.NavDisableMouseHover = true; - resize_grip_col[0] = GetColorU32(ImGuiCol_ResizeGripActive); - // FIXME-NAV: Should store and accumulate into a separate size buffer to handle sizing constraints properly, right now a constraint will make us stuck. - size_target = CalcWindowSizeAfterConstraint(window, window->SizeFull + nav_resize_delta); - } - } - - // Apply back modified position/size to window - if (size_target.x != FLT_MAX) - { - window->SizeFull = size_target; - MarkIniSettingsDirty(window); - } - if (pos_target.x != FLT_MAX) - { - window->Pos = ImFloor(pos_target); - MarkIniSettingsDirty(window); - } - - window->Size = window->SizeFull; - return ret_auto_fit; -} - -static inline void ClampWindowRect(ImGuiWindow* window, const ImRect& rect, const ImVec2& padding) -{ - ImGuiContext& g = *GImGui; - ImVec2 size_for_clamping = (g.IO.ConfigWindowsMoveFromTitleBarOnly && !(window->Flags & ImGuiWindowFlags_NoTitleBar)) ? ImVec2(window->Size.x, window->TitleBarHeight()) : window->Size; - window->Pos = ImMin(rect.Max - padding, ImMax(window->Pos + size_for_clamping, rect.Min + padding) - size_for_clamping); -} - -static void ImGui::RenderWindowOuterBorders(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - float rounding = window->WindowRounding; - float border_size = window->WindowBorderSize; - if (border_size > 0.0f && !(window->Flags & ImGuiWindowFlags_NoBackground)) - window->DrawList->AddRect(window->Pos, window->Pos + window->Size, GetColorU32(ImGuiCol_Border), rounding, ImDrawCornerFlags_All, border_size); - - int border_held = window->ResizeBorderHeld; - if (border_held != -1) - { - struct ImGuiResizeBorderDef - { - ImVec2 InnerDir; - ImVec2 CornerPosN1, CornerPosN2; - float OuterAngle; - }; - static const ImGuiResizeBorderDef resize_border_def[4] = - { - { ImVec2(0,+1), ImVec2(0,0), ImVec2(1,0), IM_PI*1.50f }, // Top - { ImVec2(-1,0), ImVec2(1,0), ImVec2(1,1), IM_PI*0.00f }, // Right - { ImVec2(0,-1), ImVec2(1,1), ImVec2(0,1), IM_PI*0.50f }, // Bottom - { ImVec2(+1,0), ImVec2(0,1), ImVec2(0,0), IM_PI*1.00f } // Left - }; - const ImGuiResizeBorderDef& def = resize_border_def[border_held]; - ImRect border_r = GetResizeBorderRect(window, border_held, rounding, 0.0f); - window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN1) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle - IM_PI*0.25f, def.OuterAngle); - window->DrawList->PathArcTo(ImLerp(border_r.Min, border_r.Max, def.CornerPosN2) + ImVec2(0.5f, 0.5f) + def.InnerDir * rounding, rounding, def.OuterAngle, def.OuterAngle + IM_PI*0.25f); - window->DrawList->PathStroke(GetColorU32(ImGuiCol_SeparatorActive), false, ImMax(2.0f, border_size)); // Thicker than usual - } - if (g.Style.FrameBorderSize > 0 && !(window->Flags & ImGuiWindowFlags_NoTitleBar)) - { - float y = window->Pos.y + window->TitleBarHeight() - 1; - window->DrawList->AddLine(ImVec2(window->Pos.x + border_size, y), ImVec2(window->Pos.x + window->Size.x - border_size, y), GetColorU32(ImGuiCol_Border), g.Style.FrameBorderSize); - } -} - -// Draw background and borders -// Draw and handle scrollbars -void ImGui::RenderWindowDecorations(ImGuiWindow* window, const ImRect& title_bar_rect, bool title_bar_is_highlight, int resize_grip_count, const ImU32 resize_grip_col[4], float resize_grip_draw_size) -{ - ImGuiContext& g = *GImGui; - ImGuiStyle& style = g.Style; - ImGuiWindowFlags flags = window->Flags; - - // Ensure that ScrollBar doesn't read last frame's SkipItems - window->SkipItems = false; - - // Draw window + handle manual resize - // As we highlight the title bar when want_focus is set, multiple reappearing windows will have have their title bar highlighted on their reappearing frame. - const float window_rounding = window->WindowRounding; - const float window_border_size = window->WindowBorderSize; - if (window->Collapsed) - { - // Title bar only - float backup_border_size = style.FrameBorderSize; - g.Style.FrameBorderSize = window->WindowBorderSize; - ImU32 title_bar_col = GetColorU32((title_bar_is_highlight && !g.NavDisableHighlight) ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBgCollapsed); - RenderFrame(title_bar_rect.Min, title_bar_rect.Max, title_bar_col, true, window_rounding); - g.Style.FrameBorderSize = backup_border_size; - } - else - { - // Window background - if (!(flags & ImGuiWindowFlags_NoBackground)) - { - ImU32 bg_col = GetColorU32(GetWindowBgColorIdxFromFlags(flags)); - bool override_alpha = false; - float alpha = 1.0f; - if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasBgAlpha) - { - alpha = g.NextWindowData.BgAlphaVal; - override_alpha = true; - } - if (override_alpha) - bg_col = (bg_col & ~IM_COL32_A_MASK) | (IM_F32_TO_INT8_SAT(alpha) << IM_COL32_A_SHIFT); - window->DrawList->AddRectFilled(window->Pos + ImVec2(0, window->TitleBarHeight()), window->Pos + window->Size, bg_col, window_rounding, (flags & ImGuiWindowFlags_NoTitleBar) ? ImDrawCornerFlags_All : ImDrawCornerFlags_Bot); - } - - // Title bar - if (!(flags & ImGuiWindowFlags_NoTitleBar)) - { - ImU32 title_bar_col = GetColorU32(title_bar_is_highlight ? ImGuiCol_TitleBgActive : ImGuiCol_TitleBg); - window->DrawList->AddRectFilled(title_bar_rect.Min, title_bar_rect.Max, title_bar_col, window_rounding, ImDrawCornerFlags_Top); - } - - // Menu bar - if (flags & ImGuiWindowFlags_MenuBar) - { - ImRect menu_bar_rect = window->MenuBarRect(); - menu_bar_rect.ClipWith(window->Rect()); // Soft clipping, in particular child window don't have minimum size covering the menu bar so this is useful for them. - window->DrawList->AddRectFilled(menu_bar_rect.Min + ImVec2(window_border_size, 0), menu_bar_rect.Max - ImVec2(window_border_size, 0), GetColorU32(ImGuiCol_MenuBarBg), (flags & ImGuiWindowFlags_NoTitleBar) ? window_rounding : 0.0f, ImDrawCornerFlags_Top); - if (style.FrameBorderSize > 0.0f && menu_bar_rect.Max.y < window->Pos.y + window->Size.y) - window->DrawList->AddLine(menu_bar_rect.GetBL(), menu_bar_rect.GetBR(), GetColorU32(ImGuiCol_Border), style.FrameBorderSize); - } - - // Scrollbars - if (window->ScrollbarX) - Scrollbar(ImGuiAxis_X); - if (window->ScrollbarY) - Scrollbar(ImGuiAxis_Y); - - // Render resize grips (after their input handling so we don't have a frame of latency) - if (!(flags & ImGuiWindowFlags_NoResize)) - { - for (int resize_grip_n = 0; resize_grip_n < resize_grip_count; resize_grip_n++) - { - const ImGuiResizeGripDef& grip = resize_grip_def[resize_grip_n]; - const ImVec2 corner = ImLerp(window->Pos, window->Pos + window->Size, grip.CornerPosN); - window->DrawList->PathLineTo(corner + grip.InnerDir * ((resize_grip_n & 1) ? ImVec2(window_border_size, resize_grip_draw_size) : ImVec2(resize_grip_draw_size, window_border_size))); - window->DrawList->PathLineTo(corner + grip.InnerDir * ((resize_grip_n & 1) ? ImVec2(resize_grip_draw_size, window_border_size) : ImVec2(window_border_size, resize_grip_draw_size))); - window->DrawList->PathArcToFast(ImVec2(corner.x + grip.InnerDir.x * (window_rounding + window_border_size), corner.y + grip.InnerDir.y * (window_rounding + window_border_size)), window_rounding, grip.AngleMin12, grip.AngleMax12); - window->DrawList->PathFillConvex(resize_grip_col[resize_grip_n]); - } - } - - // Borders - RenderWindowOuterBorders(window); - } -} - -// Render title text, collapse button, close button -void ImGui::RenderWindowTitleBarContents(ImGuiWindow* window, const ImRect& title_bar_rect, const char* name, bool* p_open) -{ - ImGuiContext& g = *GImGui; - ImGuiStyle& style = g.Style; - ImGuiWindowFlags flags = window->Flags; - - const bool has_close_button = (p_open != NULL); - const bool has_collapse_button = !(flags & ImGuiWindowFlags_NoCollapse) && (style.WindowMenuButtonPosition != ImGuiDir_None); - - // Close & Collapse button are on the Menu NavLayer and don't default focus (unless there's nothing else on that layer) - const ImGuiItemFlags item_flags_backup = window->DC.ItemFlags; - window->DC.ItemFlags |= ImGuiItemFlags_NoNavDefaultFocus; - window->DC.NavLayerCurrent = ImGuiNavLayer_Menu; - window->DC.NavLayerCurrentMask = (1 << ImGuiNavLayer_Menu); - - // Layout buttons - // FIXME: Would be nice to generalize the subtleties expressed here into reusable code. - float pad_l = style.FramePadding.x; - float pad_r = style.FramePadding.x; - float button_sz = g.FontSize; - ImVec2 close_button_pos; - ImVec2 collapse_button_pos; - if (has_close_button) - { - pad_r += button_sz; - close_button_pos = ImVec2(title_bar_rect.Max.x - pad_r - style.FramePadding.x, title_bar_rect.Min.y); - } - if (has_collapse_button && style.WindowMenuButtonPosition == ImGuiDir_Right) - { - pad_r += button_sz; - collapse_button_pos = ImVec2(title_bar_rect.Max.x - pad_r - style.FramePadding.x, title_bar_rect.Min.y); - } - if (has_collapse_button && style.WindowMenuButtonPosition == ImGuiDir_Left) - { - collapse_button_pos = ImVec2(title_bar_rect.Min.x + pad_l - style.FramePadding.x, title_bar_rect.Min.y); - pad_l += button_sz; - } - - // Collapse button (submitting first so it gets priority when choosing a navigation init fallback) - if (has_collapse_button) - if (CollapseButton(window->GetID("#COLLAPSE"), collapse_button_pos)) - window->WantCollapseToggle = true; // Defer actual collapsing to next frame as we are too far in the Begin() function - - // Close button - if (has_close_button) - if (CloseButton(window->GetID("#CLOSE"), close_button_pos)) - *p_open = false; - - window->DC.NavLayerCurrent = ImGuiNavLayer_Main; - window->DC.NavLayerCurrentMask = (1 << ImGuiNavLayer_Main); - window->DC.ItemFlags = item_flags_backup; - - // Title bar text (with: horizontal alignment, avoiding collapse/close button, optional "unsaved document" marker) - // FIXME: Refactor text alignment facilities along with RenderText helpers, this is WAY too much messy code.. - const char* UNSAVED_DOCUMENT_MARKER = "*"; - const float marker_size_x = (flags & ImGuiWindowFlags_UnsavedDocument) ? CalcTextSize(UNSAVED_DOCUMENT_MARKER, NULL, false).x : 0.0f; - const ImVec2 text_size = CalcTextSize(name, NULL, true) + ImVec2(marker_size_x, 0.0f); - - // As a nice touch we try to ensure that centered title text doesn't get affected by visibility of Close/Collapse button, - // while uncentered title text will still reach edges correct. - if (pad_l > style.FramePadding.x) - pad_l += g.Style.ItemInnerSpacing.x; - if (pad_r > style.FramePadding.x) - pad_r += g.Style.ItemInnerSpacing.x; - if (style.WindowTitleAlign.x > 0.0f && style.WindowTitleAlign.x < 1.0f) - { - float centerness = ImSaturate(1.0f - ImFabs(style.WindowTitleAlign.x - 0.5f) * 2.0f); // 0.0f on either edges, 1.0f on center - float pad_extend = ImMin(ImMax(pad_l, pad_r), title_bar_rect.GetWidth() - pad_l - pad_r - text_size.x); - pad_l = ImMax(pad_l, pad_extend * centerness); - pad_r = ImMax(pad_r, pad_extend * centerness); - } - - ImRect layout_r(title_bar_rect.Min.x + pad_l, title_bar_rect.Min.y, title_bar_rect.Max.x - pad_r, title_bar_rect.Max.y); - ImRect clip_r(layout_r.Min.x, layout_r.Min.y, layout_r.Max.x + g.Style.ItemInnerSpacing.x, layout_r.Max.y); - //if (g.IO.KeyCtrl) window->DrawList->AddRect(layout_r.Min, layout_r.Max, IM_COL32(255, 128, 0, 255)); // [DEBUG] - RenderTextClipped(layout_r.Min, layout_r.Max, name, NULL, &text_size, style.WindowTitleAlign, &clip_r); - if (flags & ImGuiWindowFlags_UnsavedDocument) - { - ImVec2 marker_pos = ImVec2(ImMax(layout_r.Min.x, layout_r.Min.x + (layout_r.GetWidth() - text_size.x) * style.WindowTitleAlign.x) + text_size.x, layout_r.Min.y) + ImVec2(2 - marker_size_x, 0.0f); - ImVec2 off = ImVec2(0.0f, IM_FLOOR(-g.FontSize * 0.25f)); - RenderTextClipped(marker_pos + off, layout_r.Max + off, UNSAVED_DOCUMENT_MARKER, NULL, NULL, ImVec2(0, style.WindowTitleAlign.y), &clip_r); - } -} - -void ImGui::UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags flags, ImGuiWindow* parent_window) -{ - window->ParentWindow = parent_window; - window->RootWindow = window->RootWindowForTitleBarHighlight = window->RootWindowForNav = window; - if (parent_window && (flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Tooltip)) - window->RootWindow = parent_window->RootWindow; - if (parent_window && !(flags & ImGuiWindowFlags_Modal) && (flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup))) - window->RootWindowForTitleBarHighlight = parent_window->RootWindowForTitleBarHighlight; - while (window->RootWindowForNav->Flags & ImGuiWindowFlags_NavFlattened) - { - IM_ASSERT(window->RootWindowForNav->ParentWindow != NULL); - window->RootWindowForNav = window->RootWindowForNav->ParentWindow; - } -} - -// Push a new Dear ImGui window to add widgets to. -// - A default window called "Debug" is automatically stacked at the beginning of every frame so you can use widgets without explicitly calling a Begin/End pair. -// - Begin/End can be called multiple times during the frame with the same window name to append content. -// - The window name is used as a unique identifier to preserve window information across frames (and save rudimentary information to the .ini file). -// You can use the "##" or "###" markers to use the same label with different id, or same id with different label. See documentation at the top of this file. -// - Return false when window is collapsed, so you can early out in your code. You always need to call ImGui::End() even if false is returned. -// - Passing 'bool* p_open' displays a Close button on the upper-right corner of the window, the pointed value will be set to false when the button is pressed. -bool ImGui::Begin(const char* name, bool* p_open, ImGuiWindowFlags flags) -{ - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - IM_ASSERT(name != NULL && name[0] != '\0'); // Window name required - IM_ASSERT(g.WithinFrameScope); // Forgot to call ImGui::NewFrame() - IM_ASSERT(g.FrameCountEnded != g.FrameCount); // Called ImGui::Render() or ImGui::EndFrame() and haven't called ImGui::NewFrame() again yet - - // Find or create - ImGuiWindow* window = FindWindowByName(name); - const bool window_just_created = (window == NULL); - if (window_just_created) - { - ImVec2 size_on_first_use = (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSize) ? g.NextWindowData.SizeVal : ImVec2(0.0f, 0.0f); // Any condition flag will do since we are creating a new window here. - window = CreateNewWindow(name, size_on_first_use, flags); - } - - // Automatically disable manual moving/resizing when NoInputs is set - if ((flags & ImGuiWindowFlags_NoInputs) == ImGuiWindowFlags_NoInputs) - flags |= ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoResize; - - if (flags & ImGuiWindowFlags_NavFlattened) - IM_ASSERT(flags & ImGuiWindowFlags_ChildWindow); - - const int current_frame = g.FrameCount; - const bool first_begin_of_the_frame = (window->LastFrameActive != current_frame); - window->IsFallbackWindow = (g.CurrentWindowStack.Size == 0 && g.WithinFrameScopeWithImplicitWindow); - - // Update the Appearing flag - bool window_just_activated_by_user = (window->LastFrameActive < current_frame - 1); // Not using !WasActive because the implicit "Debug" window would always toggle off->on - const bool window_just_appearing_after_hidden_for_resize = (window->HiddenFramesCannotSkipItems > 0); - if (flags & ImGuiWindowFlags_Popup) - { - ImGuiPopupData& popup_ref = g.OpenPopupStack[g.BeginPopupStack.Size]; - window_just_activated_by_user |= (window->PopupId != popup_ref.PopupId); // We recycle popups so treat window as activated if popup id changed - window_just_activated_by_user |= (window != popup_ref.Window); - } - window->Appearing = (window_just_activated_by_user || window_just_appearing_after_hidden_for_resize); - if (window->Appearing) - SetWindowConditionAllowFlags(window, ImGuiCond_Appearing, true); - - // Update Flags, LastFrameActive, BeginOrderXXX fields - if (first_begin_of_the_frame) - { - window->Flags = (ImGuiWindowFlags)flags; - window->LastFrameActive = current_frame; - window->LastTimeActive = (float)g.Time; - window->BeginOrderWithinParent = 0; - window->BeginOrderWithinContext = (short)(g.WindowsActiveCount++); - } - else - { - flags = window->Flags; - } - - // Parent window is latched only on the first call to Begin() of the frame, so further append-calls can be done from a different window stack - ImGuiWindow* parent_window_in_stack = g.CurrentWindowStack.empty() ? NULL : g.CurrentWindowStack.back(); - ImGuiWindow* parent_window = first_begin_of_the_frame ? ((flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Popup)) ? parent_window_in_stack : NULL) : window->ParentWindow; - IM_ASSERT(parent_window != NULL || !(flags & ImGuiWindowFlags_ChildWindow)); - - // We allow window memory to be compacted so recreate the base stack when needed. - if (window->IDStack.Size == 0) - window->IDStack.push_back(window->ID); - - // Add to stack - // We intentionally set g.CurrentWindow to NULL to prevent usage until when the viewport is set, then will call SetCurrentWindow() - g.CurrentWindowStack.push_back(window); - g.CurrentWindow = NULL; - ErrorCheckBeginEndCompareStacksSize(window, true); - if (flags & ImGuiWindowFlags_Popup) - { - ImGuiPopupData& popup_ref = g.OpenPopupStack[g.BeginPopupStack.Size]; - popup_ref.Window = window; - g.BeginPopupStack.push_back(popup_ref); - window->PopupId = popup_ref.PopupId; - } - - if (window_just_appearing_after_hidden_for_resize && !(flags & ImGuiWindowFlags_ChildWindow)) - window->NavLastIds[0] = 0; - - // Update ->RootWindow and others pointers (before any possible call to FocusWindow) - if (first_begin_of_the_frame) - UpdateWindowParentAndRootLinks(window, flags, parent_window); - - // Process SetNextWindow***() calls - bool window_pos_set_by_api = false; - bool window_size_x_set_by_api = false, window_size_y_set_by_api = false; - if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasPos) - { - window_pos_set_by_api = (window->SetWindowPosAllowFlags & g.NextWindowData.PosCond) != 0; - if (window_pos_set_by_api && ImLengthSqr(g.NextWindowData.PosPivotVal) > 0.00001f) - { - // May be processed on the next frame if this is our first frame and we are measuring size - // FIXME: Look into removing the branch so everything can go through this same code path for consistency. - window->SetWindowPosVal = g.NextWindowData.PosVal; - window->SetWindowPosPivot = g.NextWindowData.PosPivotVal; - window->SetWindowPosAllowFlags &= ~(ImGuiCond_Once | ImGuiCond_FirstUseEver | ImGuiCond_Appearing); - } - else - { - SetWindowPos(window, g.NextWindowData.PosVal, g.NextWindowData.PosCond); - } - } - if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSize) - { - window_size_x_set_by_api = (window->SetWindowSizeAllowFlags & g.NextWindowData.SizeCond) != 0 && (g.NextWindowData.SizeVal.x > 0.0f); - window_size_y_set_by_api = (window->SetWindowSizeAllowFlags & g.NextWindowData.SizeCond) != 0 && (g.NextWindowData.SizeVal.y > 0.0f); - SetWindowSize(window, g.NextWindowData.SizeVal, g.NextWindowData.SizeCond); - } - if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasContentSize) - window->ContentSizeExplicit = g.NextWindowData.ContentSizeVal; - else if (first_begin_of_the_frame) - window->ContentSizeExplicit = ImVec2(0.0f, 0.0f); - if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasCollapsed) - SetWindowCollapsed(window, g.NextWindowData.CollapsedVal, g.NextWindowData.CollapsedCond); - if (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasFocus) - FocusWindow(window); - if (window->Appearing) - SetWindowConditionAllowFlags(window, ImGuiCond_Appearing, false); - - // When reusing window again multiple times a frame, just append content (don't need to setup again) - if (first_begin_of_the_frame) - { - // Initialize - const bool window_is_child_tooltip = (flags & ImGuiWindowFlags_ChildWindow) && (flags & ImGuiWindowFlags_Tooltip); // FIXME-WIP: Undocumented behavior of Child+Tooltip for pinned tooltip (#1345) - window->Active = true; - window->HasCloseButton = (p_open != NULL); - window->ClipRect = ImVec4(-FLT_MAX,-FLT_MAX,+FLT_MAX,+FLT_MAX); - window->IDStack.resize(1); - - // Restore buffer capacity when woken from a compacted state, to avoid - if (window->MemoryCompacted) - GcAwakeTransientWindowBuffers(window); - - // Update stored window name when it changes (which can _only_ happen with the "###" operator, so the ID would stay unchanged). - // The title bar always display the 'name' parameter, so we only update the string storage if it needs to be visible to the end-user elsewhere. - bool window_title_visible_elsewhere = false; - if (g.NavWindowingList != NULL && (window->Flags & ImGuiWindowFlags_NoNavFocus) == 0) // Window titles visible when using CTRL+TAB - window_title_visible_elsewhere = true; - if (window_title_visible_elsewhere && !window_just_created && strcmp(name, window->Name) != 0) - { - size_t buf_len = (size_t)window->NameBufLen; - window->Name = ImStrdupcpy(window->Name, &buf_len, name); - window->NameBufLen = (int)buf_len; - } - - // UPDATE CONTENTS SIZE, UPDATE HIDDEN STATUS - - // Update contents size from last frame for auto-fitting (or use explicit size) - window->ContentSize = CalcWindowContentSize(window); - if (window->HiddenFramesCanSkipItems > 0) - window->HiddenFramesCanSkipItems--; - if (window->HiddenFramesCannotSkipItems > 0) - window->HiddenFramesCannotSkipItems--; - - // Hide new windows for one frame until they calculate their size - if (window_just_created && (!window_size_x_set_by_api || !window_size_y_set_by_api)) - window->HiddenFramesCannotSkipItems = 1; - - // Hide popup/tooltip window when re-opening while we measure size (because we recycle the windows) - // We reset Size/ContentSize for reappearing popups/tooltips early in this function, so further code won't be tempted to use the old size. - if (window_just_activated_by_user && (flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) != 0) - { - window->HiddenFramesCannotSkipItems = 1; - if (flags & ImGuiWindowFlags_AlwaysAutoResize) - { - if (!window_size_x_set_by_api) - window->Size.x = window->SizeFull.x = 0.f; - if (!window_size_y_set_by_api) - window->Size.y = window->SizeFull.y = 0.f; - window->ContentSize = ImVec2(0.f, 0.f); - } - } - - // SELECT VIEWPORT - // FIXME-VIEWPORT: In the docking/viewport branch, this is the point where we select the current viewport (which may affect the style) - SetCurrentWindow(window); - - // LOCK BORDER SIZE AND PADDING FOR THE FRAME (so that altering them doesn't cause inconsistencies) - - if (flags & ImGuiWindowFlags_ChildWindow) - window->WindowBorderSize = style.ChildBorderSize; - else - window->WindowBorderSize = ((flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_Tooltip)) && !(flags & ImGuiWindowFlags_Modal)) ? style.PopupBorderSize : style.WindowBorderSize; - window->WindowPadding = style.WindowPadding; - if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & (ImGuiWindowFlags_AlwaysUseWindowPadding | ImGuiWindowFlags_Popup)) && window->WindowBorderSize == 0.0f) - window->WindowPadding = ImVec2(0.0f, (flags & ImGuiWindowFlags_MenuBar) ? style.WindowPadding.y : 0.0f); - - // Collapse window by double-clicking on title bar - // At this point we don't have a clipping rectangle setup yet, so we can use the title bar area for hit detection and drawing - if (!(flags & ImGuiWindowFlags_NoTitleBar) && !(flags & ImGuiWindowFlags_NoCollapse)) - { - // We don't use a regular button+id to test for double-click on title bar (mostly due to legacy reason, could be fixed), so verify that we don't have items over the title bar. - ImRect title_bar_rect = window->TitleBarRect(); - if (g.HoveredWindow == window && g.HoveredId == 0 && g.HoveredIdPreviousFrame == 0 && IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max) && g.IO.MouseDoubleClicked[0]) - window->WantCollapseToggle = true; - if (window->WantCollapseToggle) - { - window->Collapsed = !window->Collapsed; - MarkIniSettingsDirty(window); - FocusWindow(window); - } - } - else - { - window->Collapsed = false; - } - window->WantCollapseToggle = false; - - // SIZE - - // Calculate auto-fit size, handle automatic resize - const ImVec2 size_auto_fit = CalcWindowAutoFitSize(window, window->ContentSize); - bool use_current_size_for_scrollbar_x = window_just_created; - bool use_current_size_for_scrollbar_y = window_just_created; - if ((flags & ImGuiWindowFlags_AlwaysAutoResize) && !window->Collapsed) - { - // Using SetNextWindowSize() overrides ImGuiWindowFlags_AlwaysAutoResize, so it can be used on tooltips/popups, etc. - if (!window_size_x_set_by_api) - { - window->SizeFull.x = size_auto_fit.x; - use_current_size_for_scrollbar_x = true; - } - if (!window_size_y_set_by_api) - { - window->SizeFull.y = size_auto_fit.y; - use_current_size_for_scrollbar_y = true; - } - } - else if (window->AutoFitFramesX > 0 || window->AutoFitFramesY > 0) - { - // Auto-fit may only grow window during the first few frames - // We still process initial auto-fit on collapsed windows to get a window width, but otherwise don't honor ImGuiWindowFlags_AlwaysAutoResize when collapsed. - if (!window_size_x_set_by_api && window->AutoFitFramesX > 0) - { - window->SizeFull.x = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.x, size_auto_fit.x) : size_auto_fit.x; - use_current_size_for_scrollbar_x = true; - } - if (!window_size_y_set_by_api && window->AutoFitFramesY > 0) - { - window->SizeFull.y = window->AutoFitOnlyGrows ? ImMax(window->SizeFull.y, size_auto_fit.y) : size_auto_fit.y; - use_current_size_for_scrollbar_y = true; - } - if (!window->Collapsed) - MarkIniSettingsDirty(window); - } - - // Apply minimum/maximum window size constraints and final size - window->SizeFull = CalcWindowSizeAfterConstraint(window, window->SizeFull); - window->Size = window->Collapsed && !(flags & ImGuiWindowFlags_ChildWindow) ? window->TitleBarRect().GetSize() : window->SizeFull; - - // Decoration size - const float decoration_up_height = window->TitleBarHeight() + window->MenuBarHeight(); - - // POSITION - - // Popup latch its initial position, will position itself when it appears next frame - if (window_just_activated_by_user) - { - window->AutoPosLastDirection = ImGuiDir_None; - if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api) - window->Pos = g.BeginPopupStack.back().OpenPopupPos; - } - - // Position child window - if (flags & ImGuiWindowFlags_ChildWindow) - { - IM_ASSERT(parent_window && parent_window->Active); - window->BeginOrderWithinParent = (short)parent_window->DC.ChildWindows.Size; - parent_window->DC.ChildWindows.push_back(window); - if (!(flags & ImGuiWindowFlags_Popup) && !window_pos_set_by_api && !window_is_child_tooltip) - window->Pos = parent_window->DC.CursorPos; - } - - const bool window_pos_with_pivot = (window->SetWindowPosVal.x != FLT_MAX && window->HiddenFramesCannotSkipItems == 0); - if (window_pos_with_pivot) - SetWindowPos(window, window->SetWindowPosVal - window->SizeFull * window->SetWindowPosPivot, 0); // Position given a pivot (e.g. for centering) - else if ((flags & ImGuiWindowFlags_ChildMenu) != 0) - window->Pos = FindBestWindowPosForPopup(window); - else if ((flags & ImGuiWindowFlags_Popup) != 0 && !window_pos_set_by_api && window_just_appearing_after_hidden_for_resize) - window->Pos = FindBestWindowPosForPopup(window); - else if ((flags & ImGuiWindowFlags_Tooltip) != 0 && !window_pos_set_by_api && !window_is_child_tooltip) - window->Pos = FindBestWindowPosForPopup(window); - - // Clamp position/size so window stays visible within its viewport or monitor - // Ignore zero-sized display explicitly to avoid losing positions if a window manager reports zero-sized window when initializing or minimizing. - ImRect viewport_rect(GetViewportRect()); - if (!window_pos_set_by_api && !(flags & ImGuiWindowFlags_ChildWindow) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) - { - ImVec2 clamp_padding = ImMax(style.DisplayWindowPadding, style.DisplaySafeAreaPadding); - if (viewport_rect.GetWidth() > 0 && viewport_rect.GetHeight() > 0.0f) - { - ClampWindowRect(window, viewport_rect, clamp_padding); - } - } - window->Pos = ImFloor(window->Pos); - - // Lock window rounding for the frame (so that altering them doesn't cause inconsistencies) - window->WindowRounding = (flags & ImGuiWindowFlags_ChildWindow) ? style.ChildRounding : ((flags & ImGuiWindowFlags_Popup) && !(flags & ImGuiWindowFlags_Modal)) ? style.PopupRounding : style.WindowRounding; - - // Apply window focus (new and reactivated windows are moved to front) - bool want_focus = false; - if (window_just_activated_by_user && !(flags & ImGuiWindowFlags_NoFocusOnAppearing)) - { - if (flags & ImGuiWindowFlags_Popup) - want_focus = true; - else if ((flags & (ImGuiWindowFlags_ChildWindow | ImGuiWindowFlags_Tooltip)) == 0) - want_focus = true; - } - - // Handle manual resize: Resize Grips, Borders, Gamepad - int border_held = -1; - ImU32 resize_grip_col[4] = {}; - const int resize_grip_count = g.IO.ConfigWindowsResizeFromEdges ? 2 : 1; // Allow resize from lower-left if we have the mouse cursor feedback for it. - const float resize_grip_draw_size = IM_FLOOR(ImMax(g.FontSize * 1.35f, window->WindowRounding + 1.0f + g.FontSize * 0.2f)); - if (!window->Collapsed) - if (UpdateWindowManualResize(window, size_auto_fit, &border_held, resize_grip_count, &resize_grip_col[0])) - use_current_size_for_scrollbar_x = use_current_size_for_scrollbar_y = true; - window->ResizeBorderHeld = (signed char)border_held; - - // SCROLLBAR VISIBILITY - - // Update scrollbar visibility (based on the Size that was effective during last frame or the auto-resized Size). - if (!window->Collapsed) - { - // When reading the current size we need to read it after size constraints have been applied. - // When we use InnerRect here we are intentionally reading last frame size, same for ScrollbarSizes values before we set them again. - ImVec2 avail_size_from_current_frame = ImVec2(window->SizeFull.x, window->SizeFull.y - decoration_up_height); - ImVec2 avail_size_from_last_frame = window->InnerRect.GetSize() + window->ScrollbarSizes; - ImVec2 needed_size_from_last_frame = window_just_created ? ImVec2(0, 0) : window->ContentSize + window->WindowPadding * 2.0f; - float size_x_for_scrollbars = use_current_size_for_scrollbar_x ? avail_size_from_current_frame.x : avail_size_from_last_frame.x; - float size_y_for_scrollbars = use_current_size_for_scrollbar_y ? avail_size_from_current_frame.y : avail_size_from_last_frame.y; - //bool scrollbar_y_from_last_frame = window->ScrollbarY; // FIXME: May want to use that in the ScrollbarX expression? How many pros vs cons? - window->ScrollbarY = (flags & ImGuiWindowFlags_AlwaysVerticalScrollbar) || ((needed_size_from_last_frame.y > size_y_for_scrollbars) && !(flags & ImGuiWindowFlags_NoScrollbar)); - window->ScrollbarX = (flags & ImGuiWindowFlags_AlwaysHorizontalScrollbar) || ((needed_size_from_last_frame.x > size_x_for_scrollbars - (window->ScrollbarY ? style.ScrollbarSize : 0.0f)) && !(flags & ImGuiWindowFlags_NoScrollbar) && (flags & ImGuiWindowFlags_HorizontalScrollbar)); - if (window->ScrollbarX && !window->ScrollbarY) - window->ScrollbarY = (needed_size_from_last_frame.y > size_y_for_scrollbars) && !(flags & ImGuiWindowFlags_NoScrollbar); - window->ScrollbarSizes = ImVec2(window->ScrollbarY ? style.ScrollbarSize : 0.0f, window->ScrollbarX ? style.ScrollbarSize : 0.0f); - } - - // UPDATE RECTANGLES (1- THOSE NOT AFFECTED BY SCROLLING) - // Update various regions. Variables they depends on should be set above in this function. - // We set this up after processing the resize grip so that our rectangles doesn't lag by a frame. - - // Outer rectangle - // Not affected by window border size. Used by: - // - FindHoveredWindow() (w/ extra padding when border resize is enabled) - // - Begin() initial clipping rect for drawing window background and borders. - // - Begin() clipping whole child - const ImRect host_rect = ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Popup) && !window_is_child_tooltip) ? parent_window->ClipRect : viewport_rect; - const ImRect outer_rect = window->Rect(); - const ImRect title_bar_rect = window->TitleBarRect(); - window->OuterRectClipped = outer_rect; - window->OuterRectClipped.ClipWith(host_rect); - - // Inner rectangle - // Not affected by window border size. Used by: - // - InnerClipRect - // - ScrollToBringRectIntoView() - // - NavUpdatePageUpPageDown() - // - Scrollbar() - window->InnerRect.Min.x = window->Pos.x; - window->InnerRect.Min.y = window->Pos.y + decoration_up_height; - window->InnerRect.Max.x = window->Pos.x + window->Size.x - window->ScrollbarSizes.x; - window->InnerRect.Max.y = window->Pos.y + window->Size.y - window->ScrollbarSizes.y; - - // Inner clipping rectangle. - // Will extend a little bit outside the normal work region. - // This is to allow e.g. Selectable or CollapsingHeader or some separators to cover that space. - // Force round operator last to ensure that e.g. (int)(max.x-min.x) in user's render code produce correct result. - // Note that if our window is collapsed we will end up with an inverted (~null) clipping rectangle which is the correct behavior. - // Affected by window/frame border size. Used by: - // - Begin() initial clip rect - float top_border_size = (((flags & ImGuiWindowFlags_MenuBar) || !(flags & ImGuiWindowFlags_NoTitleBar)) ? style.FrameBorderSize : window->WindowBorderSize); - window->InnerClipRect.Min.x = ImFloor(0.5f + window->InnerRect.Min.x + ImMax(ImFloor(window->WindowPadding.x * 0.5f), window->WindowBorderSize)); - window->InnerClipRect.Min.y = ImFloor(0.5f + window->InnerRect.Min.y + top_border_size); - window->InnerClipRect.Max.x = ImFloor(0.5f + window->InnerRect.Max.x - ImMax(ImFloor(window->WindowPadding.x * 0.5f), window->WindowBorderSize)); - window->InnerClipRect.Max.y = ImFloor(0.5f + window->InnerRect.Max.y - window->WindowBorderSize); - window->InnerClipRect.ClipWithFull(host_rect); - - // Default item width. Make it proportional to window size if window manually resizes - if (window->Size.x > 0.0f && !(flags & ImGuiWindowFlags_Tooltip) && !(flags & ImGuiWindowFlags_AlwaysAutoResize)) - window->ItemWidthDefault = ImFloor(window->Size.x * 0.65f); - else - window->ItemWidthDefault = ImFloor(g.FontSize * 16.0f); - - // SCROLLING - - // Lock down maximum scrolling - // The value of ScrollMax are ahead from ScrollbarX/ScrollbarY which is intentionally using InnerRect from previous rect in order to accommodate - // for right/bottom aligned items without creating a scrollbar. - window->ScrollMax.x = ImMax(0.0f, window->ContentSize.x + window->WindowPadding.x * 2.0f - window->InnerRect.GetWidth()); - window->ScrollMax.y = ImMax(0.0f, window->ContentSize.y + window->WindowPadding.y * 2.0f - window->InnerRect.GetHeight()); - - // Apply scrolling - window->Scroll = CalcNextScrollFromScrollTargetAndClamp(window, true); - window->ScrollTarget = ImVec2(FLT_MAX, FLT_MAX); - - // DRAWING - - // Setup draw list and outer clipping rectangle - window->DrawList->Clear(); - window->DrawList->PushTextureID(g.Font->ContainerAtlas->TexID); - PushClipRect(host_rect.Min, host_rect.Max, false); - - // Draw modal window background (darkens what is behind them, all viewports) - const bool dim_bg_for_modal = (flags & ImGuiWindowFlags_Modal) && window == GetTopMostPopupModal() && window->HiddenFramesCannotSkipItems <= 0; - const bool dim_bg_for_window_list = g.NavWindowingTargetAnim && (window == g.NavWindowingTargetAnim->RootWindow); - if (dim_bg_for_modal || dim_bg_for_window_list) - { - const ImU32 dim_bg_col = GetColorU32(dim_bg_for_modal ? ImGuiCol_ModalWindowDimBg : ImGuiCol_NavWindowingDimBg, g.DimBgRatio); - window->DrawList->AddRectFilled(viewport_rect.Min, viewport_rect.Max, dim_bg_col); - } - - // Draw navigation selection/windowing rectangle background - if (dim_bg_for_window_list && window == g.NavWindowingTargetAnim) - { - ImRect bb = window->Rect(); - bb.Expand(g.FontSize); - if (!bb.Contains(viewport_rect)) // Avoid drawing if the window covers all the viewport anyway - window->DrawList->AddRectFilled(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha * 0.25f), g.Style.WindowRounding); - } - - // Since 1.71, child window can render their decoration (bg color, border, scrollbars, etc.) within their parent to save a draw call. - // When using overlapping child windows, this will break the assumption that child z-order is mapped to submission order. - // We disable this when the parent window has zero vertices, which is a common pattern leading to laying out multiple overlapping child. - // We also disabled this when we have dimming overlay behind this specific one child. - // FIXME: More code may rely on explicit sorting of overlapping child window and would need to disable this somehow. Please get in contact if you are affected. - { - bool render_decorations_in_parent = false; - if ((flags & ImGuiWindowFlags_ChildWindow) && !(flags & ImGuiWindowFlags_Popup) && !window_is_child_tooltip) - if (window->DrawList->CmdBuffer.back().ElemCount == 0 && parent_window->DrawList->VtxBuffer.Size > 0) - render_decorations_in_parent = true; - if (render_decorations_in_parent) - window->DrawList = parent_window->DrawList; - - // Handle title bar, scrollbar, resize grips and resize borders - const ImGuiWindow* window_to_highlight = g.NavWindowingTarget ? g.NavWindowingTarget : g.NavWindow; - const bool title_bar_is_highlight = want_focus || (window_to_highlight && window->RootWindowForTitleBarHighlight == window_to_highlight->RootWindowForTitleBarHighlight); - RenderWindowDecorations(window, title_bar_rect, title_bar_is_highlight, resize_grip_count, resize_grip_col, resize_grip_draw_size); - - if (render_decorations_in_parent) - window->DrawList = &window->DrawListInst; - } - - // Draw navigation selection/windowing rectangle border - if (g.NavWindowingTargetAnim == window) - { - float rounding = ImMax(window->WindowRounding, g.Style.WindowRounding); - ImRect bb = window->Rect(); - bb.Expand(g.FontSize); - if (bb.Contains(viewport_rect)) // If a window fits the entire viewport, adjust its highlight inward - { - bb.Expand(-g.FontSize - 1.0f); - rounding = window->WindowRounding; - } - window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_NavWindowingHighlight, g.NavWindowingHighlightAlpha), rounding, ~0, 3.0f); - } - - // UPDATE RECTANGLES (2- THOSE AFFECTED BY SCROLLING) - - // Work rectangle. - // Affected by window padding and border size. Used by: - // - Columns() for right-most edge - // - TreeNode(), CollapsingHeader() for right-most edge - // - BeginTabBar() for right-most edge - const bool allow_scrollbar_x = !(flags & ImGuiWindowFlags_NoScrollbar) && (flags & ImGuiWindowFlags_HorizontalScrollbar); - const bool allow_scrollbar_y = !(flags & ImGuiWindowFlags_NoScrollbar); - const float work_rect_size_x = (window->ContentSizeExplicit.x != 0.0f ? window->ContentSizeExplicit.x : ImMax(allow_scrollbar_x ? window->ContentSize.x : 0.0f, window->Size.x - window->WindowPadding.x * 2.0f - window->ScrollbarSizes.x)); - const float work_rect_size_y = (window->ContentSizeExplicit.y != 0.0f ? window->ContentSizeExplicit.y : ImMax(allow_scrollbar_y ? window->ContentSize.y : 0.0f, window->Size.y - window->WindowPadding.y * 2.0f - decoration_up_height - window->ScrollbarSizes.y)); - window->WorkRect.Min.x = ImFloor(window->InnerRect.Min.x - window->Scroll.x + ImMax(window->WindowPadding.x, window->WindowBorderSize)); - window->WorkRect.Min.y = ImFloor(window->InnerRect.Min.y - window->Scroll.y + ImMax(window->WindowPadding.y, window->WindowBorderSize)); - window->WorkRect.Max.x = window->WorkRect.Min.x + work_rect_size_x; - window->WorkRect.Max.y = window->WorkRect.Min.y + work_rect_size_y; - - // [LEGACY] Content Region - // FIXME-OBSOLETE: window->ContentRegionRect.Max is currently very misleading / partly faulty, but some BeginChild() patterns relies on it. - // Used by: - // - Mouse wheel scrolling + many other things - window->ContentRegionRect.Min.x = window->Pos.x - window->Scroll.x + window->WindowPadding.x; - window->ContentRegionRect.Min.y = window->Pos.y - window->Scroll.y + window->WindowPadding.y + decoration_up_height; - window->ContentRegionRect.Max.x = window->ContentRegionRect.Min.x + (window->ContentSizeExplicit.x != 0.0f ? window->ContentSizeExplicit.x : (window->Size.x - window->WindowPadding.x * 2.0f - window->ScrollbarSizes.x)); - window->ContentRegionRect.Max.y = window->ContentRegionRect.Min.y + (window->ContentSizeExplicit.y != 0.0f ? window->ContentSizeExplicit.y : (window->Size.y - window->WindowPadding.y * 2.0f - decoration_up_height - window->ScrollbarSizes.y)); - - // Setup drawing context - // (NB: That term "drawing context / DC" lost its meaning a long time ago. Initially was meant to hold transient data only. Nowadays difference between window-> and window->DC-> is dubious.) - window->DC.Indent.x = 0.0f + window->WindowPadding.x - window->Scroll.x; - window->DC.GroupOffset.x = 0.0f; - window->DC.ColumnsOffset.x = 0.0f; - window->DC.CursorStartPos = window->Pos + ImVec2(window->DC.Indent.x + window->DC.ColumnsOffset.x, decoration_up_height + window->WindowPadding.y - window->Scroll.y); - window->DC.CursorPos = window->DC.CursorStartPos; - window->DC.CursorPosPrevLine = window->DC.CursorPos; - window->DC.CursorMaxPos = window->DC.CursorStartPos; - window->DC.CurrLineSize = window->DC.PrevLineSize = ImVec2(0.0f, 0.0f); - window->DC.CurrLineTextBaseOffset = window->DC.PrevLineTextBaseOffset = 0.0f; - - window->DC.NavLayerCurrent = ImGuiNavLayer_Main; - window->DC.NavLayerCurrentMask = (1 << ImGuiNavLayer_Main); - window->DC.NavLayerActiveMask = window->DC.NavLayerActiveMaskNext; - window->DC.NavLayerActiveMaskNext = 0x00; - window->DC.NavFocusScopeIdCurrent = (flags & ImGuiWindowFlags_ChildWindow) ? parent_window->DC.NavFocusScopeIdCurrent : 0; // -V595 - window->DC.NavHideHighlightOneFrame = false; - window->DC.NavHasScroll = (window->ScrollMax.y > 0.0f); - - window->DC.MenuBarAppending = false; - window->DC.MenuBarOffset.x = ImMax(ImMax(window->WindowPadding.x, style.ItemSpacing.x), g.NextWindowData.MenuBarOffsetMinVal.x); - window->DC.MenuBarOffset.y = g.NextWindowData.MenuBarOffsetMinVal.y; - window->DC.MenuColumns.Update(3, style.ItemSpacing.x, window_just_activated_by_user); - window->DC.TreeDepth = 0; - window->DC.TreeJumpToParentOnPopMask = 0x00; - window->DC.ChildWindows.resize(0); - window->DC.StateStorage = &window->StateStorage; - window->DC.CurrentColumns = NULL; - window->DC.LayoutType = ImGuiLayoutType_Vertical; - window->DC.ParentLayoutType = parent_window ? parent_window->DC.LayoutType : ImGuiLayoutType_Vertical; - window->DC.FocusCounterRegular = window->DC.FocusCounterTabStop = -1; - - window->DC.ItemWidth = window->ItemWidthDefault; - window->DC.TextWrapPos = -1.0f; // disabled - window->DC.ItemFlagsStack.resize(0); - window->DC.ItemWidthStack.resize(0); - window->DC.TextWrapPosStack.resize(0); - window->DC.GroupStack.resize(0); - window->DC.ItemFlags = parent_window ? parent_window->DC.ItemFlags : ImGuiItemFlags_Default_; - if (parent_window) - window->DC.ItemFlagsStack.push_back(window->DC.ItemFlags); - - if (window->AutoFitFramesX > 0) - window->AutoFitFramesX--; - if (window->AutoFitFramesY > 0) - window->AutoFitFramesY--; - - // Apply focus (we need to call FocusWindow() AFTER setting DC.CursorStartPos so our initial navigation reference rectangle can start around there) - if (want_focus) - { - FocusWindow(window); - NavInitWindow(window, false); - } - - // Title bar - if (!(flags & ImGuiWindowFlags_NoTitleBar)) - RenderWindowTitleBarContents(window, title_bar_rect, name, p_open); - - // Pressing CTRL+C while holding on a window copy its content to the clipboard - // This works but 1. doesn't handle multiple Begin/End pairs, 2. recursing into another Begin/End pair - so we need to work that out and add better logging scope. - // Maybe we can support CTRL+C on every element? - /* - if (g.ActiveId == move_id) - if (g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_C)) - LogToClipboard(); - */ - - // We fill last item data based on Title Bar/Tab, in order for IsItemHovered() and IsItemActive() to be usable after Begin(). - // This is useful to allow creating context menus on title bar only, etc. - window->DC.LastItemId = window->MoveId; - window->DC.LastItemStatusFlags = IsMouseHoveringRect(title_bar_rect.Min, title_bar_rect.Max, false) ? ImGuiItemStatusFlags_HoveredRect : 0; - window->DC.LastItemRect = title_bar_rect; -#ifdef IMGUI_ENABLE_TEST_ENGINE - if (!(window->Flags & ImGuiWindowFlags_NoTitleBar)) - IMGUI_TEST_ENGINE_ITEM_ADD(window->DC.LastItemRect, window->DC.LastItemId); -#endif - } - else - { - // Append - SetCurrentWindow(window); - } - - PushClipRect(window->InnerClipRect.Min, window->InnerClipRect.Max, true); - - // Clear 'accessed' flag last thing (After PushClipRect which will set the flag. We want the flag to stay false when the default "Debug" window is unused) - if (first_begin_of_the_frame) - window->WriteAccessed = false; - - window->BeginCount++; - g.NextWindowData.ClearFlags(); - - if (flags & ImGuiWindowFlags_ChildWindow) - { - // Child window can be out of sight and have "negative" clip windows. - // Mark them as collapsed so commands are skipped earlier (we can't manually collapse them because they have no title bar). - IM_ASSERT((flags & ImGuiWindowFlags_NoTitleBar) != 0); - if (!(flags & ImGuiWindowFlags_AlwaysAutoResize) && window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0) - if (window->OuterRectClipped.Min.x >= window->OuterRectClipped.Max.x || window->OuterRectClipped.Min.y >= window->OuterRectClipped.Max.y) - window->HiddenFramesCanSkipItems = 1; - - // Hide along with parent or if parent is collapsed - if (parent_window && (parent_window->Collapsed || parent_window->HiddenFramesCanSkipItems > 0)) - window->HiddenFramesCanSkipItems = 1; - if (parent_window && (parent_window->Collapsed || parent_window->HiddenFramesCannotSkipItems > 0)) - window->HiddenFramesCannotSkipItems = 1; - } - - // Don't render if style alpha is 0.0 at the time of Begin(). This is arbitrary and inconsistent but has been there for a long while (may remove at some point) - if (style.Alpha <= 0.0f) - window->HiddenFramesCanSkipItems = 1; - - // Update the Hidden flag - window->Hidden = (window->HiddenFramesCanSkipItems > 0) || (window->HiddenFramesCannotSkipItems > 0); - - // Update the SkipItems flag, used to early out of all items functions (no layout required) - bool skip_items = false; - if (window->Collapsed || !window->Active || window->Hidden) - if (window->AutoFitFramesX <= 0 && window->AutoFitFramesY <= 0 && window->HiddenFramesCannotSkipItems <= 0) - skip_items = true; - window->SkipItems = skip_items; - - return !skip_items; -} - -void ImGui::End() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - // Error checking: verify that user hasn't called End() too many times! - if (g.CurrentWindowStack.Size <= 1 && g.WithinFrameScopeWithImplicitWindow) - { - IM_ASSERT_USER_ERROR(g.CurrentWindowStack.Size > 1, "Calling End() too many times!"); - return; - } - IM_ASSERT(g.CurrentWindowStack.Size > 0); - - // Error checking: verify that user doesn't directly call End() on a child window. - if (window->Flags & ImGuiWindowFlags_ChildWindow) - IM_ASSERT_USER_ERROR(g.WithinEndChild, "Must call EndChild() and not End()!"); - - // Close anything that is open - if (window->DC.CurrentColumns) - EndColumns(); - PopClipRect(); // Inner window clip rectangle - - // Stop logging - if (!(window->Flags & ImGuiWindowFlags_ChildWindow)) // FIXME: add more options for scope of logging - LogFinish(); - - // Pop from window stack - g.CurrentWindowStack.pop_back(); - if (window->Flags & ImGuiWindowFlags_Popup) - g.BeginPopupStack.pop_back(); - ErrorCheckBeginEndCompareStacksSize(window, false); - SetCurrentWindow(g.CurrentWindowStack.empty() ? NULL : g.CurrentWindowStack.back()); -} - -void ImGui::BringWindowToFocusFront(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - if (g.WindowsFocusOrder.back() == window) - return; - for (int i = g.WindowsFocusOrder.Size - 2; i >= 0; i--) // We can ignore the top-most window - if (g.WindowsFocusOrder[i] == window) - { - memmove(&g.WindowsFocusOrder[i], &g.WindowsFocusOrder[i + 1], (size_t)(g.WindowsFocusOrder.Size - i - 1) * sizeof(ImGuiWindow*)); - g.WindowsFocusOrder[g.WindowsFocusOrder.Size - 1] = window; - break; - } -} - -void ImGui::BringWindowToDisplayFront(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* current_front_window = g.Windows.back(); - if (current_front_window == window || current_front_window->RootWindow == window) - return; - for (int i = g.Windows.Size - 2; i >= 0; i--) // We can ignore the top-most window - if (g.Windows[i] == window) - { - memmove(&g.Windows[i], &g.Windows[i + 1], (size_t)(g.Windows.Size - i - 1) * sizeof(ImGuiWindow*)); - g.Windows[g.Windows.Size - 1] = window; - break; - } -} - -void ImGui::BringWindowToDisplayBack(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - if (g.Windows[0] == window) - return; - for (int i = 0; i < g.Windows.Size; i++) - if (g.Windows[i] == window) - { - memmove(&g.Windows[1], &g.Windows[0], (size_t)i * sizeof(ImGuiWindow*)); - g.Windows[0] = window; - break; - } -} - -// Moving window to front of display and set focus (which happens to be back of our sorted list) -void ImGui::FocusWindow(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - - if (g.NavWindow != window) - { - g.NavWindow = window; - if (window && g.NavDisableMouseHover) - g.NavMousePosDirty = true; - g.NavInitRequest = false; - g.NavId = window ? window->NavLastIds[0] : 0; // Restore NavId - g.NavFocusScopeId = 0; - g.NavIdIsAlive = false; - g.NavLayer = ImGuiNavLayer_Main; - //IMGUI_DEBUG_LOG("FocusWindow(\"%s\")\n", window ? window->Name : NULL); - } - - // Close popups if any - ClosePopupsOverWindow(window, false); - - // Passing NULL allow to disable keyboard focus - if (!window) - return; - - // Move the root window to the top of the pile - IM_ASSERT(window->RootWindow != NULL); - ImGuiWindow* focus_front_window = window->RootWindow; // NB: In docking branch this is window->RootWindowDockStop - ImGuiWindow* display_front_window = window->RootWindow; - - // Steal focus on active widgets - if (focus_front_window->Flags & ImGuiWindowFlags_Popup) // FIXME: This statement may be unnecessary? Need further testing before removing it.. - if (g.ActiveId != 0 && g.ActiveIdWindow && g.ActiveIdWindow->RootWindow != focus_front_window) - ClearActiveID(); - - // Bring to front - BringWindowToFocusFront(focus_front_window); - if (((window->Flags | display_front_window->Flags) & ImGuiWindowFlags_NoBringToFrontOnFocus) == 0) - BringWindowToDisplayFront(display_front_window); -} - -void ImGui::FocusTopMostWindowUnderOne(ImGuiWindow* under_this_window, ImGuiWindow* ignore_window) -{ - ImGuiContext& g = *GImGui; - - int start_idx = g.WindowsFocusOrder.Size - 1; - if (under_this_window != NULL) - { - int under_this_window_idx = FindWindowFocusIndex(under_this_window); - if (under_this_window_idx != -1) - start_idx = under_this_window_idx - 1; - } - for (int i = start_idx; i >= 0; i--) - { - // We may later decide to test for different NoXXXInputs based on the active navigation input (mouse vs nav) but that may feel more confusing to the user. - ImGuiWindow* window = g.WindowsFocusOrder[i]; - if (window != ignore_window && window->WasActive && !(window->Flags & ImGuiWindowFlags_ChildWindow)) - if ((window->Flags & (ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs)) != (ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs)) - { - ImGuiWindow* focus_window = NavRestoreLastChildNavWindow(window); - FocusWindow(focus_window); - return; - } - } - FocusWindow(NULL); -} - -void ImGui::SetCurrentFont(ImFont* font) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(font && font->IsLoaded()); // Font Atlas not created. Did you call io.Fonts->GetTexDataAsRGBA32 / GetTexDataAsAlpha8 ? - IM_ASSERT(font->Scale > 0.0f); - g.Font = font; - g.FontBaseSize = ImMax(1.0f, g.IO.FontGlobalScale * g.Font->FontSize * g.Font->Scale); - g.FontSize = g.CurrentWindow ? g.CurrentWindow->CalcFontSize() : 0.0f; - - ImFontAtlas* atlas = g.Font->ContainerAtlas; - g.DrawListSharedData.TexUvWhitePixel = atlas->TexUvWhitePixel; - g.DrawListSharedData.Font = g.Font; - g.DrawListSharedData.FontSize = g.FontSize; -} - -void ImGui::PushFont(ImFont* font) -{ - ImGuiContext& g = *GImGui; - if (!font) - font = GetDefaultFont(); - SetCurrentFont(font); - g.FontStack.push_back(font); - g.CurrentWindow->DrawList->PushTextureID(font->ContainerAtlas->TexID); -} - -void ImGui::PopFont() -{ - ImGuiContext& g = *GImGui; - g.CurrentWindow->DrawList->PopTextureID(); - g.FontStack.pop_back(); - SetCurrentFont(g.FontStack.empty() ? GetDefaultFont() : g.FontStack.back()); -} - -void ImGui::PushItemFlag(ImGuiItemFlags option, bool enabled) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (enabled) - window->DC.ItemFlags |= option; - else - window->DC.ItemFlags &= ~option; - window->DC.ItemFlagsStack.push_back(window->DC.ItemFlags); -} - -void ImGui::PopItemFlag() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ItemFlagsStack.pop_back(); - window->DC.ItemFlags = window->DC.ItemFlagsStack.empty() ? ImGuiItemFlags_Default_ : window->DC.ItemFlagsStack.back(); -} - -// FIXME: Look into renaming this once we have settled the new Focus/Activation/TabStop system. -void ImGui::PushAllowKeyboardFocus(bool allow_keyboard_focus) -{ - PushItemFlag(ImGuiItemFlags_NoTabStop, !allow_keyboard_focus); -} - -void ImGui::PopAllowKeyboardFocus() -{ - PopItemFlag(); -} - -void ImGui::PushButtonRepeat(bool repeat) -{ - PushItemFlag(ImGuiItemFlags_ButtonRepeat, repeat); -} - -void ImGui::PopButtonRepeat() -{ - PopItemFlag(); -} - -void ImGui::PushTextWrapPos(float wrap_pos_x) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.TextWrapPos = wrap_pos_x; - window->DC.TextWrapPosStack.push_back(wrap_pos_x); -} - -void ImGui::PopTextWrapPos() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.TextWrapPosStack.pop_back(); - window->DC.TextWrapPos = window->DC.TextWrapPosStack.empty() ? -1.0f : window->DC.TextWrapPosStack.back(); -} - -bool ImGui::IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent) -{ - if (window->RootWindow == potential_parent) - return true; - while (window != NULL) - { - if (window == potential_parent) - return true; - window = window->ParentWindow; - } - return false; -} - -bool ImGui::IsWindowHovered(ImGuiHoveredFlags flags) -{ - IM_ASSERT((flags & ImGuiHoveredFlags_AllowWhenOverlapped) == 0); // Flags not supported by this function - ImGuiContext& g = *GImGui; - - if (flags & ImGuiHoveredFlags_AnyWindow) - { - if (g.HoveredWindow == NULL) - return false; - } - else - { - switch (flags & (ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows)) - { - case ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows: - if (g.HoveredRootWindow != g.CurrentWindow->RootWindow) - return false; - break; - case ImGuiHoveredFlags_RootWindow: - if (g.HoveredWindow != g.CurrentWindow->RootWindow) - return false; - break; - case ImGuiHoveredFlags_ChildWindows: - if (g.HoveredWindow == NULL || !IsWindowChildOf(g.HoveredWindow, g.CurrentWindow)) - return false; - break; - default: - if (g.HoveredWindow != g.CurrentWindow) - return false; - break; - } - } - - if (!IsWindowContentHoverable(g.HoveredWindow, flags)) - return false; - if (!(flags & ImGuiHoveredFlags_AllowWhenBlockedByActiveItem)) - if (g.ActiveId != 0 && !g.ActiveIdAllowOverlap && g.ActiveId != g.HoveredWindow->MoveId) - return false; - return true; -} - -bool ImGui::IsWindowFocused(ImGuiFocusedFlags flags) -{ - ImGuiContext& g = *GImGui; - - if (flags & ImGuiFocusedFlags_AnyWindow) - return g.NavWindow != NULL; - - IM_ASSERT(g.CurrentWindow); // Not inside a Begin()/End() - switch (flags & (ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows)) - { - case ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows: - return g.NavWindow && g.NavWindow->RootWindow == g.CurrentWindow->RootWindow; - case ImGuiFocusedFlags_RootWindow: - return g.NavWindow == g.CurrentWindow->RootWindow; - case ImGuiFocusedFlags_ChildWindows: - return g.NavWindow && IsWindowChildOf(g.NavWindow, g.CurrentWindow); - default: - return g.NavWindow == g.CurrentWindow; - } -} - -// Can we focus this window with CTRL+TAB (or PadMenu + PadFocusPrev/PadFocusNext) -// Note that NoNavFocus makes the window not reachable with CTRL+TAB but it can still be focused with mouse or programmaticaly. -// If you want a window to never be focused, you may use the e.g. NoInputs flag. -bool ImGui::IsWindowNavFocusable(ImGuiWindow* window) -{ - return window->Active && window == window->RootWindow && !(window->Flags & ImGuiWindowFlags_NoNavFocus); -} - -float ImGui::GetWindowWidth() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->Size.x; -} - -float ImGui::GetWindowHeight() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->Size.y; -} - -ImVec2 ImGui::GetWindowPos() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - return window->Pos; -} - -void ImGui::SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCond cond) -{ - // Test condition (NB: bit 0 is always true) and clear flags for next time - if (cond && (window->SetWindowPosAllowFlags & cond) == 0) - return; - - IM_ASSERT(cond == 0 || ImIsPowerOfTwo(cond)); // Make sure the user doesn't attempt to combine multiple condition flags. - window->SetWindowPosAllowFlags &= ~(ImGuiCond_Once | ImGuiCond_FirstUseEver | ImGuiCond_Appearing); - window->SetWindowPosVal = ImVec2(FLT_MAX, FLT_MAX); - - // Set - const ImVec2 old_pos = window->Pos; - window->Pos = ImFloor(pos); - ImVec2 offset = window->Pos - old_pos; - window->DC.CursorPos += offset; // As we happen to move the window while it is being appended to (which is a bad idea - will smear) let's at least offset the cursor - window->DC.CursorMaxPos += offset; // And more importantly we need to offset CursorMaxPos/CursorStartPos this so ContentSize calculation doesn't get affected. - window->DC.CursorStartPos += offset; -} - -void ImGui::SetWindowPos(const ImVec2& pos, ImGuiCond cond) -{ - ImGuiWindow* window = GetCurrentWindowRead(); - SetWindowPos(window, pos, cond); -} - -void ImGui::SetWindowPos(const char* name, const ImVec2& pos, ImGuiCond cond) -{ - if (ImGuiWindow* window = FindWindowByName(name)) - SetWindowPos(window, pos, cond); -} - -ImVec2 ImGui::GetWindowSize() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->Size; -} - -void ImGui::SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiCond cond) -{ - // Test condition (NB: bit 0 is always true) and clear flags for next time - if (cond && (window->SetWindowSizeAllowFlags & cond) == 0) - return; - - IM_ASSERT(cond == 0 || ImIsPowerOfTwo(cond)); // Make sure the user doesn't attempt to combine multiple condition flags. - window->SetWindowSizeAllowFlags &= ~(ImGuiCond_Once | ImGuiCond_FirstUseEver | ImGuiCond_Appearing); - - // Set - if (size.x > 0.0f) - { - window->AutoFitFramesX = 0; - window->SizeFull.x = IM_FLOOR(size.x); - } - else - { - window->AutoFitFramesX = 2; - window->AutoFitOnlyGrows = false; - } - if (size.y > 0.0f) - { - window->AutoFitFramesY = 0; - window->SizeFull.y = IM_FLOOR(size.y); - } - else - { - window->AutoFitFramesY = 2; - window->AutoFitOnlyGrows = false; - } -} - -void ImGui::SetWindowSize(const ImVec2& size, ImGuiCond cond) -{ - SetWindowSize(GImGui->CurrentWindow, size, cond); -} - -void ImGui::SetWindowSize(const char* name, const ImVec2& size, ImGuiCond cond) -{ - if (ImGuiWindow* window = FindWindowByName(name)) - SetWindowSize(window, size, cond); -} - -void ImGui::SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiCond cond) -{ - // Test condition (NB: bit 0 is always true) and clear flags for next time - if (cond && (window->SetWindowCollapsedAllowFlags & cond) == 0) - return; - window->SetWindowCollapsedAllowFlags &= ~(ImGuiCond_Once | ImGuiCond_FirstUseEver | ImGuiCond_Appearing); - - // Set - window->Collapsed = collapsed; -} - -void ImGui::SetWindowCollapsed(bool collapsed, ImGuiCond cond) -{ - SetWindowCollapsed(GImGui->CurrentWindow, collapsed, cond); -} - -bool ImGui::IsWindowCollapsed() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->Collapsed; -} - -bool ImGui::IsWindowAppearing() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->Appearing; -} - -void ImGui::SetWindowCollapsed(const char* name, bool collapsed, ImGuiCond cond) -{ - if (ImGuiWindow* window = FindWindowByName(name)) - SetWindowCollapsed(window, collapsed, cond); -} - -void ImGui::SetWindowFocus() -{ - FocusWindow(GImGui->CurrentWindow); -} - -void ImGui::SetWindowFocus(const char* name) -{ - if (name) - { - if (ImGuiWindow* window = FindWindowByName(name)) - FocusWindow(window); - } - else - { - FocusWindow(NULL); - } -} - -void ImGui::SetNextWindowPos(const ImVec2& pos, ImGuiCond cond, const ImVec2& pivot) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(cond == 0 || ImIsPowerOfTwo(cond)); // Make sure the user doesn't attempt to combine multiple condition flags. - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasPos; - g.NextWindowData.PosVal = pos; - g.NextWindowData.PosPivotVal = pivot; - g.NextWindowData.PosCond = cond ? cond : ImGuiCond_Always; -} - -void ImGui::SetNextWindowSize(const ImVec2& size, ImGuiCond cond) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(cond == 0 || ImIsPowerOfTwo(cond)); // Make sure the user doesn't attempt to combine multiple condition flags. - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasSize; - g.NextWindowData.SizeVal = size; - g.NextWindowData.SizeCond = cond ? cond : ImGuiCond_Always; -} - -void ImGui::SetNextWindowSizeConstraints(const ImVec2& size_min, const ImVec2& size_max, ImGuiSizeCallback custom_callback, void* custom_callback_user_data) -{ - ImGuiContext& g = *GImGui; - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasSizeConstraint; - g.NextWindowData.SizeConstraintRect = ImRect(size_min, size_max); - g.NextWindowData.SizeCallback = custom_callback; - g.NextWindowData.SizeCallbackUserData = custom_callback_user_data; -} - -// Content size = inner scrollable rectangle, padded with WindowPadding. -// SetNextWindowContentSize(ImVec2(100,100) + ImGuiWindowFlags_AlwaysAutoResize will always allow submitting a 100x100 item. -void ImGui::SetNextWindowContentSize(const ImVec2& size) -{ - ImGuiContext& g = *GImGui; - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasContentSize; - g.NextWindowData.ContentSizeVal = size; -} - -void ImGui::SetNextWindowCollapsed(bool collapsed, ImGuiCond cond) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(cond == 0 || ImIsPowerOfTwo(cond)); // Make sure the user doesn't attempt to combine multiple condition flags. - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasCollapsed; - g.NextWindowData.CollapsedVal = collapsed; - g.NextWindowData.CollapsedCond = cond ? cond : ImGuiCond_Always; -} - -void ImGui::SetNextWindowFocus() -{ - ImGuiContext& g = *GImGui; - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasFocus; -} - -void ImGui::SetNextWindowBgAlpha(float alpha) -{ - ImGuiContext& g = *GImGui; - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasBgAlpha; - g.NextWindowData.BgAlphaVal = alpha; -} - -ImDrawList* ImGui::GetWindowDrawList() -{ - ImGuiWindow* window = GetCurrentWindow(); - return window->DrawList; -} - -ImFont* ImGui::GetFont() -{ - return GImGui->Font; -} - -float ImGui::GetFontSize() -{ - return GImGui->FontSize; -} - -ImVec2 ImGui::GetFontTexUvWhitePixel() -{ - return GImGui->DrawListSharedData.TexUvWhitePixel; -} - -void ImGui::SetWindowFontScale(float scale) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - window->FontWindowScale = scale; - g.FontSize = g.DrawListSharedData.FontSize = window->CalcFontSize(); -} - -void ImGui::ActivateItem(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - g.NavNextActivateId = id; -} - -void ImGui::PushFocusScope(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - window->IDStack.push_back(window->DC.NavFocusScopeIdCurrent); - window->DC.NavFocusScopeIdCurrent = id; -} - -void ImGui::PopFocusScope() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - window->DC.NavFocusScopeIdCurrent = window->IDStack.back(); - window->IDStack.pop_back(); -} - -void ImGui::SetKeyboardFocusHere(int offset) -{ - IM_ASSERT(offset >= -1); // -1 is allowed but not below - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - g.FocusRequestNextWindow = window; - g.FocusRequestNextCounterRegular = window->DC.FocusCounterRegular + 1 + offset; - g.FocusRequestNextCounterTabStop = INT_MAX; -} - -void ImGui::SetItemDefaultFocus() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (!window->Appearing) - return; - if (g.NavWindow == window->RootWindowForNav && (g.NavInitRequest || g.NavInitResultId != 0) && g.NavLayer == g.NavWindow->DC.NavLayerCurrent) - { - g.NavInitRequest = false; - g.NavInitResultId = g.NavWindow->DC.LastItemId; - g.NavInitResultRectRel = ImRect(g.NavWindow->DC.LastItemRect.Min - g.NavWindow->Pos, g.NavWindow->DC.LastItemRect.Max - g.NavWindow->Pos); - NavUpdateAnyRequestFlag(); - if (!IsItemVisible()) - SetScrollHereY(); - } -} - -void ImGui::SetStateStorage(ImGuiStorage* tree) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - window->DC.StateStorage = tree ? tree : &window->StateStorage; -} - -ImGuiStorage* ImGui::GetStateStorage() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->DC.StateStorage; -} - -void ImGui::PushID(const char* str_id) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - window->IDStack.push_back(window->GetIDNoKeepAlive(str_id)); -} - -void ImGui::PushID(const char* str_id_begin, const char* str_id_end) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - window->IDStack.push_back(window->GetIDNoKeepAlive(str_id_begin, str_id_end)); -} - -void ImGui::PushID(const void* ptr_id) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - window->IDStack.push_back(window->GetIDNoKeepAlive(ptr_id)); -} - -void ImGui::PushID(int int_id) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - window->IDStack.push_back(window->GetIDNoKeepAlive(int_id)); -} - -// Push a given id value ignoring the ID stack as a seed. -void ImGui::PushOverrideID(ImGuiID id) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - window->IDStack.push_back(id); -} - -void ImGui::PopID() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - window->IDStack.pop_back(); -} - -ImGuiID ImGui::GetID(const char* str_id) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->GetID(str_id); -} - -ImGuiID ImGui::GetID(const char* str_id_begin, const char* str_id_end) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->GetID(str_id_begin, str_id_end); -} - -ImGuiID ImGui::GetID(const void* ptr_id) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->GetID(ptr_id); -} - -bool ImGui::IsRectVisible(const ImVec2& size) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ClipRect.Overlaps(ImRect(window->DC.CursorPos, window->DC.CursorPos + size)); -} - -bool ImGui::IsRectVisible(const ImVec2& rect_min, const ImVec2& rect_max) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ClipRect.Overlaps(ImRect(rect_min, rect_max)); -} - - -//----------------------------------------------------------------------------- -// [SECTION] ERROR CHECKING -//----------------------------------------------------------------------------- - -// Helper function to verify ABI compatibility between caller code and compiled version of Dear ImGui. -// Verify that the type sizes are matching between the calling file's compilation unit and imgui.cpp's compilation unit -// If the user has inconsistent compilation settings, imgui configuration #define, packing pragma, etc. your user code -// may see different structures than what imgui.cpp sees, which is problematic. -// We usually require settings to be in imconfig.h to make sure that they are accessible to all compilation units involved with Dear ImGui. -bool ImGui::DebugCheckVersionAndDataLayout(const char* version, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_vert, size_t sz_idx) -{ - bool error = false; - if (strcmp(version, IMGUI_VERSION) != 0) { error = true; IM_ASSERT(strcmp(version, IMGUI_VERSION) == 0 && "Mismatched version string!"); } - if (sz_io != sizeof(ImGuiIO)) { error = true; IM_ASSERT(sz_io == sizeof(ImGuiIO) && "Mismatched struct layout!"); } - if (sz_style != sizeof(ImGuiStyle)) { error = true; IM_ASSERT(sz_style == sizeof(ImGuiStyle) && "Mismatched struct layout!"); } - if (sz_vec2 != sizeof(ImVec2)) { error = true; IM_ASSERT(sz_vec2 == sizeof(ImVec2) && "Mismatched struct layout!"); } - if (sz_vec4 != sizeof(ImVec4)) { error = true; IM_ASSERT(sz_vec4 == sizeof(ImVec4) && "Mismatched struct layout!"); } - if (sz_vert != sizeof(ImDrawVert)) { error = true; IM_ASSERT(sz_vert == sizeof(ImDrawVert) && "Mismatched struct layout!"); } - if (sz_idx != sizeof(ImDrawIdx)) { error = true; IM_ASSERT(sz_idx == sizeof(ImDrawIdx) && "Mismatched struct layout!"); } - return !error; -} - -static void ImGui::ErrorCheckNewFrameSanityChecks() -{ - ImGuiContext& g = *GImGui; - - // Check user IM_ASSERT macro - // (IF YOU GET A WARNING OR COMPILE ERROR HERE: it means you assert macro is incorrectly defined! - // If your macro uses multiple statements, it NEEDS to be surrounded by a 'do { ... } while (0)' block. - // This is a common C/C++ idiom to allow multiple statements macros to be used in control flow blocks.) - // #define IM_ASSERT(EXPR) SomeCode(EXPR); SomeMoreCode(); // Wrong! - // #define IM_ASSERT(EXPR) do { SomeCode(EXPR); SomeMoreCode(); } while (0) // Correct! - if (true) IM_ASSERT(1); else IM_ASSERT(0); - - // Check user data - // (We pass an error message in the assert expression to make it visible to programmers who are not using a debugger, as most assert handlers display their argument) - IM_ASSERT(g.Initialized); - IM_ASSERT((g.IO.DeltaTime > 0.0f || g.FrameCount == 0) && "Need a positive DeltaTime!"); - IM_ASSERT((g.FrameCount == 0 || g.FrameCountEnded == g.FrameCount) && "Forgot to call Render() or EndFrame() at the end of the previous frame?"); - IM_ASSERT(g.IO.DisplaySize.x >= 0.0f && g.IO.DisplaySize.y >= 0.0f && "Invalid DisplaySize value!"); - IM_ASSERT(g.IO.Fonts->Fonts.Size > 0 && "Font Atlas not built. Did you call io.Fonts->GetTexDataAsRGBA32() / GetTexDataAsAlpha8() ?"); - IM_ASSERT(g.IO.Fonts->Fonts[0]->IsLoaded() && "Font Atlas not built. Did you call io.Fonts->GetTexDataAsRGBA32() / GetTexDataAsAlpha8() ?"); - IM_ASSERT(g.Style.CurveTessellationTol > 0.0f && "Invalid style setting!"); - IM_ASSERT(g.Style.CircleSegmentMaxError > 0.0f && "Invalid style setting!"); - IM_ASSERT(g.Style.Alpha >= 0.0f && g.Style.Alpha <= 1.0f && "Invalid style setting. Alpha cannot be negative (allows us to avoid a few clamps in color computations)!"); - IM_ASSERT(g.Style.WindowMinSize.x >= 1.0f && g.Style.WindowMinSize.y >= 1.0f && "Invalid style setting."); - IM_ASSERT(g.Style.WindowMenuButtonPosition == ImGuiDir_None || g.Style.WindowMenuButtonPosition == ImGuiDir_Left || g.Style.WindowMenuButtonPosition == ImGuiDir_Right); - for (int n = 0; n < ImGuiKey_COUNT; n++) - IM_ASSERT(g.IO.KeyMap[n] >= -1 && g.IO.KeyMap[n] < IM_ARRAYSIZE(g.IO.KeysDown) && "io.KeyMap[] contains an out of bound value (need to be 0..512, or -1 for unmapped key)"); - - // Perform simple check: required key mapping (we intentionally do NOT check all keys to not pressure user into setting up everything, but Space is required and was only recently added in 1.60 WIP) - if (g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) - IM_ASSERT(g.IO.KeyMap[ImGuiKey_Space] != -1 && "ImGuiKey_Space is not mapped, required for keyboard navigation."); - - // Perform simple check: the beta io.ConfigWindowsResizeFromEdges option requires back-end to honor mouse cursor changes and set the ImGuiBackendFlags_HasMouseCursors flag accordingly. - if (g.IO.ConfigWindowsResizeFromEdges && !(g.IO.BackendFlags & ImGuiBackendFlags_HasMouseCursors)) - g.IO.ConfigWindowsResizeFromEdges = false; -} - -static void ImGui::ErrorCheckEndFrameSanityChecks() -{ - ImGuiContext& g = *GImGui; - - // Verify that io.KeyXXX fields haven't been tampered with. Key mods shoudl not be modified between NewFrame() and EndFrame() - const ImGuiKeyModFlags expected_key_mod_flags = GetMergedKeyModFlags(); - IM_ASSERT(g.IO.KeyMods == expected_key_mod_flags && "Mismatching io.KeyCtrl/io.KeyShift/io.KeyAlt/io.KeySuper vs io.KeyMods"); - IM_UNUSED(expected_key_mod_flags); - - // Report when there is a mismatch of Begin/BeginChild vs End/EndChild calls. Important: Remember that the Begin/BeginChild API requires you - // to always call End/EndChild even if Begin/BeginChild returns false! (this is unfortunately inconsistent with most other Begin* API). - if (g.CurrentWindowStack.Size != 1) - { - if (g.CurrentWindowStack.Size > 1) - { - IM_ASSERT_USER_ERROR(g.CurrentWindowStack.Size == 1, "Mismatched Begin/BeginChild vs End/EndChild calls: did you forget to call End/EndChild?"); - while (g.CurrentWindowStack.Size > 1) - End(); - } - else - { - IM_ASSERT_USER_ERROR(g.CurrentWindowStack.Size == 1, "Mismatched Begin/BeginChild vs End/EndChild calls: did you call End/EndChild too much?"); - } - } -} - -// Save and compare stack sizes on Begin()/End() to detect usage errors -// Begin() calls this with write=true -// End() calls this with write=false -static void ImGui::ErrorCheckBeginEndCompareStacksSize(ImGuiWindow* window, bool write) -{ - ImGuiContext& g = *GImGui; - short* p = &window->DC.StackSizesBackup[0]; - - // Window stacks - // NOT checking: DC.ItemWidth, DC.AllowKeyboardFocus, DC.ButtonRepeat, DC.TextWrapPos (per window) to allow user to conveniently push once and not pop (they are cleared on Begin) - { int n = window->IDStack.Size; if (write) *p = (short)n; else IM_ASSERT(*p == n && "PushID/PopID or TreeNode/TreePop Mismatch!"); p++; } // Too few or too many PopID()/TreePop() - { int n = window->DC.GroupStack.Size; if (write) *p = (short)n; else IM_ASSERT(*p == n && "BeginGroup/EndGroup Mismatch!"); p++; } // Too few or too many EndGroup() - - // Global stacks - // For color, style and font stacks there is an incentive to use Push/Begin/Pop/.../End patterns, so we relax our checks a little to allow them. - { int n = g.BeginPopupStack.Size; if (write) *p = (short)n; else IM_ASSERT(*p == n && "BeginMenu/EndMenu or BeginPopup/EndPopup Mismatch!"); p++; }// Too few or too many EndMenu()/EndPopup() - { int n = g.ColorModifiers.Size; if (write) *p = (short)n; else IM_ASSERT(*p >= n && "PushStyleColor/PopStyleColor Mismatch!"); p++; } // Too few or too many PopStyleColor() - { int n = g.StyleModifiers.Size; if (write) *p = (short)n; else IM_ASSERT(*p >= n && "PushStyleVar/PopStyleVar Mismatch!"); p++; } // Too few or too many PopStyleVar() - { int n = g.FontStack.Size; if (write) *p = (short)n; else IM_ASSERT(*p >= n && "PushFont/PopFont Mismatch!"); p++; } // Too few or too many PopFont() - IM_ASSERT(p == window->DC.StackSizesBackup + IM_ARRAYSIZE(window->DC.StackSizesBackup)); -} - - -//----------------------------------------------------------------------------- -// [SECTION] LAYOUT -//----------------------------------------------------------------------------- -// - ItemSize() -// - ItemAdd() -// - SameLine() -// - GetCursorScreenPos() -// - SetCursorScreenPos() -// - GetCursorPos(), GetCursorPosX(), GetCursorPosY() -// - SetCursorPos(), SetCursorPosX(), SetCursorPosY() -// - GetCursorStartPos() -// - Indent() -// - Unindent() -// - SetNextItemWidth() -// - PushItemWidth() -// - PushMultiItemsWidths() -// - PopItemWidth() -// - CalcItemWidth() -// - CalcItemSize() -// - GetTextLineHeight() -// - GetTextLineHeightWithSpacing() -// - GetFrameHeight() -// - GetFrameHeightWithSpacing() -// - GetContentRegionMax() -// - GetContentRegionMaxAbs() [Internal] -// - GetContentRegionAvail(), -// - GetWindowContentRegionMin(), GetWindowContentRegionMax() -// - GetWindowContentRegionWidth() -// - BeginGroup() -// - EndGroup() -// Also see in imgui_widgets: tab bars, columns. -//----------------------------------------------------------------------------- - -// Advance cursor given item size for layout. -// Register minimum needed size so it can extend the bounding box used for auto-fit calculation. -// See comments in ItemAdd() about how/why the size provided to ItemSize() vs ItemAdd() may often different. -void ImGui::ItemSize(const ImVec2& size, float text_baseline_y) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return; - - // We increase the height in this function to accommodate for baseline offset. - // In theory we should be offsetting the starting position (window->DC.CursorPos), that will be the topic of a larger refactor, - // but since ItemSize() is not yet an API that moves the cursor (to handle e.g. wrapping) enlarging the height has the same effect. - const float offset_to_match_baseline_y = (text_baseline_y >= 0) ? ImMax(0.0f, window->DC.CurrLineTextBaseOffset - text_baseline_y) : 0.0f; - const float line_height = ImMax(window->DC.CurrLineSize.y, size.y + offset_to_match_baseline_y); - - // Always align ourselves on pixel boundaries - //if (g.IO.KeyAlt) window->DrawList->AddRect(window->DC.CursorPos, window->DC.CursorPos + ImVec2(size.x, line_height), IM_COL32(255,0,0,200)); // [DEBUG] - window->DC.CursorPosPrevLine.x = window->DC.CursorPos.x + size.x; - window->DC.CursorPosPrevLine.y = window->DC.CursorPos.y; - window->DC.CursorPos.x = IM_FLOOR(window->Pos.x + window->DC.Indent.x + window->DC.ColumnsOffset.x); // Next line - window->DC.CursorPos.y = IM_FLOOR(window->DC.CursorPos.y + line_height + g.Style.ItemSpacing.y); // Next line - window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPosPrevLine.x); - window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y - g.Style.ItemSpacing.y); - //if (g.IO.KeyAlt) window->DrawList->AddCircle(window->DC.CursorMaxPos, 3.0f, IM_COL32(255,0,0,255), 4); // [DEBUG] - - window->DC.PrevLineSize.y = line_height; - window->DC.CurrLineSize.y = 0.0f; - window->DC.PrevLineTextBaseOffset = ImMax(window->DC.CurrLineTextBaseOffset, text_baseline_y); - window->DC.CurrLineTextBaseOffset = 0.0f; - - // Horizontal layout mode - if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) - SameLine(); -} - -void ImGui::ItemSize(const ImRect& bb, float text_baseline_y) -{ - ItemSize(bb.GetSize(), text_baseline_y); -} - -// Declare item bounding box for clipping and interaction. -// Note that the size can be different than the one provided to ItemSize(). Typically, widgets that spread over available surface -// declare their minimum size requirement to ItemSize() and provide a larger region to ItemAdd() which is used drawing/interaction. -bool ImGui::ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb_arg) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - if (id != 0) - { - // Navigation processing runs prior to clipping early-out - // (a) So that NavInitRequest can be honored, for newly opened windows to select a default widget - // (b) So that we can scroll up/down past clipped items. This adds a small O(N) cost to regular navigation requests - // unfortunately, but it is still limited to one window. It may not scale very well for windows with ten of - // thousands of item, but at least NavMoveRequest is only set on user interaction, aka maximum once a frame. - // We could early out with "if (is_clipped && !g.NavInitRequest) return false;" but when we wouldn't be able - // to reach unclipped widgets. This would work if user had explicit scrolling control (e.g. mapped on a stick). - // We intentionally don't check if g.NavWindow != NULL because g.NavAnyRequest should only be set when it is non null. - // If we crash on a NULL g.NavWindow we need to fix the bug elsewhere. - window->DC.NavLayerActiveMaskNext |= window->DC.NavLayerCurrentMask; - if (g.NavId == id || g.NavAnyRequest) - if (g.NavWindow->RootWindowForNav == window->RootWindowForNav) - if (window == g.NavWindow || ((window->Flags | g.NavWindow->Flags) & ImGuiWindowFlags_NavFlattened)) - NavProcessItem(window, nav_bb_arg ? *nav_bb_arg : bb, id); - - // [DEBUG] Item Picker tool, when enabling the "extended" version we perform the check in ItemAdd() -#ifdef IMGUI_DEBUG_TOOL_ITEM_PICKER_EX - if (id == g.DebugItemPickerBreakId) - { - IM_DEBUG_BREAK(); - g.DebugItemPickerBreakId = 0; - } -#endif - } - - window->DC.LastItemId = id; - window->DC.LastItemRect = bb; - window->DC.LastItemStatusFlags = ImGuiItemStatusFlags_None; - g.NextItemData.Flags = ImGuiNextItemDataFlags_None; - -#ifdef IMGUI_ENABLE_TEST_ENGINE - if (id != 0) - IMGUI_TEST_ENGINE_ITEM_ADD(nav_bb_arg ? *nav_bb_arg : bb, id); -#endif - - // Clipping test - const bool is_clipped = IsClippedEx(bb, id, false); - if (is_clipped) - return false; - //if (g.IO.KeyAlt) window->DrawList->AddRect(bb.Min, bb.Max, IM_COL32(255,255,0,120)); // [DEBUG] - - // We need to calculate this now to take account of the current clipping rectangle (as items like Selectable may change them) - if (IsMouseHoveringRect(bb.Min, bb.Max)) - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_HoveredRect; - return true; -} - -// Gets back to previous line and continue with horizontal layout -// offset_from_start_x == 0 : follow right after previous item -// offset_from_start_x != 0 : align to specified x position (relative to window/group left) -// spacing_w < 0 : use default spacing if pos_x == 0, no spacing if pos_x != 0 -// spacing_w >= 0 : enforce spacing amount -void ImGui::SameLine(float offset_from_start_x, float spacing_w) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - if (offset_from_start_x != 0.0f) - { - if (spacing_w < 0.0f) spacing_w = 0.0f; - window->DC.CursorPos.x = window->Pos.x - window->Scroll.x + offset_from_start_x + spacing_w + window->DC.GroupOffset.x + window->DC.ColumnsOffset.x; - window->DC.CursorPos.y = window->DC.CursorPosPrevLine.y; - } - else - { - if (spacing_w < 0.0f) spacing_w = g.Style.ItemSpacing.x; - window->DC.CursorPos.x = window->DC.CursorPosPrevLine.x + spacing_w; - window->DC.CursorPos.y = window->DC.CursorPosPrevLine.y; - } - window->DC.CurrLineSize = window->DC.PrevLineSize; - window->DC.CurrLineTextBaseOffset = window->DC.PrevLineTextBaseOffset; -} - -ImVec2 ImGui::GetCursorScreenPos() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.CursorPos; -} - -void ImGui::SetCursorScreenPos(const ImVec2& pos) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos = pos; - window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos); -} - -// User generally sees positions in window coordinates. Internally we store CursorPos in absolute screen coordinates because it is more convenient. -// Conversion happens as we pass the value to user, but it makes our naming convention confusing because GetCursorPos() == (DC.CursorPos - window.Pos). May want to rename 'DC.CursorPos'. -ImVec2 ImGui::GetCursorPos() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.CursorPos - window->Pos + window->Scroll; -} - -float ImGui::GetCursorPosX() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.CursorPos.x - window->Pos.x + window->Scroll.x; -} - -float ImGui::GetCursorPosY() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.CursorPos.y - window->Pos.y + window->Scroll.y; -} - -void ImGui::SetCursorPos(const ImVec2& local_pos) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos = window->Pos - window->Scroll + local_pos; - window->DC.CursorMaxPos = ImMax(window->DC.CursorMaxPos, window->DC.CursorPos); -} - -void ImGui::SetCursorPosX(float x) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos.x = window->Pos.x - window->Scroll.x + x; - window->DC.CursorMaxPos.x = ImMax(window->DC.CursorMaxPos.x, window->DC.CursorPos.x); -} - -void ImGui::SetCursorPosY(float y) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.CursorPos.y = window->Pos.y - window->Scroll.y + y; - window->DC.CursorMaxPos.y = ImMax(window->DC.CursorMaxPos.y, window->DC.CursorPos.y); -} - -ImVec2 ImGui::GetCursorStartPos() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.CursorStartPos - window->Pos; -} - -void ImGui::Indent(float indent_w) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - window->DC.Indent.x += (indent_w != 0.0f) ? indent_w : g.Style.IndentSpacing; - window->DC.CursorPos.x = window->Pos.x + window->DC.Indent.x + window->DC.ColumnsOffset.x; -} - -void ImGui::Unindent(float indent_w) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - window->DC.Indent.x -= (indent_w != 0.0f) ? indent_w : g.Style.IndentSpacing; - window->DC.CursorPos.x = window->Pos.x + window->DC.Indent.x + window->DC.ColumnsOffset.x; -} - -// Affect large frame+labels widgets only. -void ImGui::SetNextItemWidth(float item_width) -{ - ImGuiContext& g = *GImGui; - g.NextItemData.Flags |= ImGuiNextItemDataFlags_HasWidth; - g.NextItemData.Width = item_width; -} - -void ImGui::PushItemWidth(float item_width) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - window->DC.ItemWidth = (item_width == 0.0f ? window->ItemWidthDefault : item_width); - window->DC.ItemWidthStack.push_back(window->DC.ItemWidth); - g.NextItemData.Flags &= ~ImGuiNextItemDataFlags_HasWidth; -} - -void ImGui::PushMultiItemsWidths(int components, float w_full) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - const ImGuiStyle& style = g.Style; - const float w_item_one = ImMax(1.0f, IM_FLOOR((w_full - (style.ItemInnerSpacing.x) * (components-1)) / (float)components)); - const float w_item_last = ImMax(1.0f, IM_FLOOR(w_full - (w_item_one + style.ItemInnerSpacing.x) * (components-1))); - window->DC.ItemWidthStack.push_back(w_item_last); - for (int i = 0; i < components-1; i++) - window->DC.ItemWidthStack.push_back(w_item_one); - window->DC.ItemWidth = window->DC.ItemWidthStack.back(); - g.NextItemData.Flags &= ~ImGuiNextItemDataFlags_HasWidth; -} - -void ImGui::PopItemWidth() -{ - ImGuiWindow* window = GetCurrentWindow(); - window->DC.ItemWidthStack.pop_back(); - window->DC.ItemWidth = window->DC.ItemWidthStack.empty() ? window->ItemWidthDefault : window->DC.ItemWidthStack.back(); -} - -// Calculate default item width given value passed to PushItemWidth() or SetNextItemWidth(). -// The SetNextItemWidth() data is generally cleared/consumed by ItemAdd() or NextItemData.ClearFlags() -float ImGui::CalcItemWidth() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - float w; - if (g.NextItemData.Flags & ImGuiNextItemDataFlags_HasWidth) - w = g.NextItemData.Width; - else - w = window->DC.ItemWidth; - if (w < 0.0f) - { - float region_max_x = GetContentRegionMaxAbs().x; - w = ImMax(1.0f, region_max_x - window->DC.CursorPos.x + w); - } - w = IM_FLOOR(w); - return w; -} - -// [Internal] Calculate full item size given user provided 'size' parameter and default width/height. Default width is often == CalcItemWidth(). -// Those two functions CalcItemWidth vs CalcItemSize are awkwardly named because they are not fully symmetrical. -// Note that only CalcItemWidth() is publicly exposed. -// The 4.0f here may be changed to match CalcItemWidth() and/or BeginChild() (right now we have a mismatch which is harmless but undesirable) -ImVec2 ImGui::CalcItemSize(ImVec2 size, float default_w, float default_h) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - - ImVec2 region_max; - if (size.x < 0.0f || size.y < 0.0f) - region_max = GetContentRegionMaxAbs(); - - if (size.x == 0.0f) - size.x = default_w; - else if (size.x < 0.0f) - size.x = ImMax(4.0f, region_max.x - window->DC.CursorPos.x + size.x); - - if (size.y == 0.0f) - size.y = default_h; - else if (size.y < 0.0f) - size.y = ImMax(4.0f, region_max.y - window->DC.CursorPos.y + size.y); - - return size; -} - -float ImGui::GetTextLineHeight() -{ - ImGuiContext& g = *GImGui; - return g.FontSize; -} - -float ImGui::GetTextLineHeightWithSpacing() -{ - ImGuiContext& g = *GImGui; - return g.FontSize + g.Style.ItemSpacing.y; -} - -float ImGui::GetFrameHeight() -{ - ImGuiContext& g = *GImGui; - return g.FontSize + g.Style.FramePadding.y * 2.0f; -} - -float ImGui::GetFrameHeightWithSpacing() -{ - ImGuiContext& g = *GImGui; - return g.FontSize + g.Style.FramePadding.y * 2.0f + g.Style.ItemSpacing.y; -} - -// FIXME: All the Contents Region function are messy or misleading. WE WILL AIM TO OBSOLETE ALL OF THEM WITH A NEW "WORK RECT" API. Thanks for your patience! - -// FIXME: This is in window space (not screen space!). -ImVec2 ImGui::GetContentRegionMax() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - ImVec2 mx = window->ContentRegionRect.Max - window->Pos; - if (window->DC.CurrentColumns) - mx.x = window->WorkRect.Max.x - window->Pos.x; - return mx; -} - -// [Internal] Absolute coordinate. Saner. This is not exposed until we finishing refactoring work rect features. -ImVec2 ImGui::GetContentRegionMaxAbs() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - ImVec2 mx = window->ContentRegionRect.Max; - if (window->DC.CurrentColumns) - mx.x = window->WorkRect.Max.x; - return mx; -} - -ImVec2 ImGui::GetContentRegionAvail() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return GetContentRegionMaxAbs() - window->DC.CursorPos; -} - -// In window space (not screen space!) -ImVec2 ImGui::GetWindowContentRegionMin() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ContentRegionRect.Min - window->Pos; -} - -ImVec2 ImGui::GetWindowContentRegionMax() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ContentRegionRect.Max - window->Pos; -} - -float ImGui::GetWindowContentRegionWidth() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ContentRegionRect.GetWidth(); -} - -// Lock horizontal starting position + capture group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.) -void ImGui::BeginGroup() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - window->DC.GroupStack.resize(window->DC.GroupStack.Size + 1); - ImGuiGroupData& group_data = window->DC.GroupStack.back(); - group_data.BackupCursorPos = window->DC.CursorPos; - group_data.BackupCursorMaxPos = window->DC.CursorMaxPos; - group_data.BackupIndent = window->DC.Indent; - group_data.BackupGroupOffset = window->DC.GroupOffset; - group_data.BackupCurrLineSize = window->DC.CurrLineSize; - group_data.BackupCurrLineTextBaseOffset = window->DC.CurrLineTextBaseOffset; - group_data.BackupActiveIdIsAlive = g.ActiveIdIsAlive; - group_data.BackupActiveIdPreviousFrameIsAlive = g.ActiveIdPreviousFrameIsAlive; - group_data.EmitItem = true; - - window->DC.GroupOffset.x = window->DC.CursorPos.x - window->Pos.x - window->DC.ColumnsOffset.x; - window->DC.Indent = window->DC.GroupOffset; - window->DC.CursorMaxPos = window->DC.CursorPos; - window->DC.CurrLineSize = ImVec2(0.0f, 0.0f); - if (g.LogEnabled) - g.LogLinePosY = -FLT_MAX; // To enforce Log carriage return -} - -void ImGui::EndGroup() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - IM_ASSERT(!window->DC.GroupStack.empty()); // Mismatched BeginGroup()/EndGroup() calls - - ImGuiGroupData& group_data = window->DC.GroupStack.back(); - - ImRect group_bb(group_data.BackupCursorPos, ImMax(window->DC.CursorMaxPos, group_data.BackupCursorPos)); - - window->DC.CursorPos = group_data.BackupCursorPos; - window->DC.CursorMaxPos = ImMax(group_data.BackupCursorMaxPos, window->DC.CursorMaxPos); - window->DC.Indent = group_data.BackupIndent; - window->DC.GroupOffset = group_data.BackupGroupOffset; - window->DC.CurrLineSize = group_data.BackupCurrLineSize; - window->DC.CurrLineTextBaseOffset = group_data.BackupCurrLineTextBaseOffset; - if (g.LogEnabled) - g.LogLinePosY = -FLT_MAX; // To enforce Log carriage return - - if (!group_data.EmitItem) - { - window->DC.GroupStack.pop_back(); - return; - } - - window->DC.CurrLineTextBaseOffset = ImMax(window->DC.PrevLineTextBaseOffset, group_data.BackupCurrLineTextBaseOffset); // FIXME: Incorrect, we should grab the base offset from the *first line* of the group but it is hard to obtain now. - ItemSize(group_bb.GetSize()); - ItemAdd(group_bb, 0); - - // If the current ActiveId was declared within the boundary of our group, we copy it to LastItemId so IsItemActive(), IsItemDeactivated() etc. will be functional on the entire group. - // It would be be neater if we replaced window.DC.LastItemId by e.g. 'bool LastItemIsActive', but would put a little more burden on individual widgets. - // Also if you grep for LastItemId you'll notice it is only used in that context. - // (The tests not symmetrical because ActiveIdIsAlive is an ID itself, in order to be able to handle ActiveId being overwritten during the frame.) - const bool group_contains_curr_active_id = (group_data.BackupActiveIdIsAlive != g.ActiveId) && (g.ActiveIdIsAlive == g.ActiveId) && g.ActiveId; - const bool group_contains_prev_active_id = !group_data.BackupActiveIdPreviousFrameIsAlive && g.ActiveIdPreviousFrameIsAlive; - if (group_contains_curr_active_id) - window->DC.LastItemId = g.ActiveId; - else if (group_contains_prev_active_id) - window->DC.LastItemId = g.ActiveIdPreviousFrame; - window->DC.LastItemRect = group_bb; - - // Forward Edited flag - if (group_contains_curr_active_id && g.ActiveIdHasBeenEditedThisFrame) - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_Edited; - - // Forward Deactivated flag - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_HasDeactivated; - if (group_contains_prev_active_id && g.ActiveId != g.ActiveIdPreviousFrame) - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_Deactivated; - - window->DC.GroupStack.pop_back(); - //window->DrawList->AddRect(group_bb.Min, group_bb.Max, IM_COL32(255,0,255,255)); // [Debug] -} - - -//----------------------------------------------------------------------------- -// [SECTION] SCROLLING -//----------------------------------------------------------------------------- - -static ImVec2 CalcNextScrollFromScrollTargetAndClamp(ImGuiWindow* window, bool snap_on_edges) -{ - ImGuiContext& g = *GImGui; - ImVec2 scroll = window->Scroll; - if (window->ScrollTarget.x < FLT_MAX) - { - float cr_x = window->ScrollTargetCenterRatio.x; - float target_x = window->ScrollTarget.x; - if (snap_on_edges && cr_x <= 0.0f && target_x <= window->WindowPadding.x) - target_x = 0.0f; - else if (snap_on_edges && cr_x >= 1.0f && target_x >= window->ContentSize.x + window->WindowPadding.x + g.Style.ItemSpacing.x) - target_x = window->ContentSize.x + window->WindowPadding.x * 2.0f; - scroll.x = target_x - cr_x * (window->SizeFull.x - window->ScrollbarSizes.x); - } - if (window->ScrollTarget.y < FLT_MAX) - { - // 'snap_on_edges' allows for a discontinuity at the edge of scrolling limits to take account of WindowPadding so that scrolling to make the last item visible scroll far enough to see the padding. - float decoration_up_height = window->TitleBarHeight() + window->MenuBarHeight(); - float cr_y = window->ScrollTargetCenterRatio.y; - float target_y = window->ScrollTarget.y; - if (snap_on_edges && cr_y <= 0.0f && target_y <= window->WindowPadding.y) - target_y = 0.0f; - if (snap_on_edges && cr_y >= 1.0f && target_y >= window->ContentSize.y + window->WindowPadding.y + g.Style.ItemSpacing.y) - target_y = window->ContentSize.y + window->WindowPadding.y * 2.0f; - scroll.y = target_y - cr_y * (window->SizeFull.y - window->ScrollbarSizes.y - decoration_up_height); - } - scroll.x = IM_FLOOR(ImMax(scroll.x, 0.0f)); - scroll.y = IM_FLOOR(ImMax(scroll.y, 0.0f)); - if (!window->Collapsed && !window->SkipItems) - { - scroll.x = ImMin(scroll.x, window->ScrollMax.x); - scroll.y = ImMin(scroll.y, window->ScrollMax.y); - } - return scroll; -} - -// Scroll to keep newly navigated item fully into view -ImVec2 ImGui::ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect) -{ - ImGuiContext& g = *GImGui; - ImRect window_rect(window->InnerRect.Min - ImVec2(1, 1), window->InnerRect.Max + ImVec2(1, 1)); - //GetForegroundDrawList(window)->AddRect(window_rect.Min, window_rect.Max, IM_COL32_WHITE); // [DEBUG] - - ImVec2 delta_scroll; - if (!window_rect.Contains(item_rect)) - { - if (window->ScrollbarX && item_rect.Min.x < window_rect.Min.x) - SetScrollFromPosX(window, item_rect.Min.x - window->Pos.x + g.Style.ItemSpacing.x, 0.0f); - else if (window->ScrollbarX && item_rect.Max.x >= window_rect.Max.x) - SetScrollFromPosX(window, item_rect.Max.x - window->Pos.x + g.Style.ItemSpacing.x, 1.0f); - if (item_rect.Min.y < window_rect.Min.y) - SetScrollFromPosY(window, item_rect.Min.y - window->Pos.y - g.Style.ItemSpacing.y, 0.0f); - else if (item_rect.Max.y >= window_rect.Max.y) - SetScrollFromPosY(window, item_rect.Max.y - window->Pos.y + g.Style.ItemSpacing.y, 1.0f); - - ImVec2 next_scroll = CalcNextScrollFromScrollTargetAndClamp(window, false); - delta_scroll = next_scroll - window->Scroll; - } - - // Also scroll parent window to keep us into view if necessary - if (window->Flags & ImGuiWindowFlags_ChildWindow) - delta_scroll += ScrollToBringRectIntoView(window->ParentWindow, ImRect(item_rect.Min - delta_scroll, item_rect.Max - delta_scroll)); - - return delta_scroll; -} - -float ImGui::GetScrollX() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->Scroll.x; -} - -float ImGui::GetScrollY() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->Scroll.y; -} - -float ImGui::GetScrollMaxX() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ScrollMax.x; -} - -float ImGui::GetScrollMaxY() -{ - ImGuiWindow* window = GImGui->CurrentWindow; - return window->ScrollMax.y; -} - -void ImGui::SetScrollX(float scroll_x) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->ScrollTarget.x = scroll_x; - window->ScrollTargetCenterRatio.x = 0.0f; -} - -void ImGui::SetScrollY(float scroll_y) -{ - ImGuiWindow* window = GetCurrentWindow(); - window->ScrollTarget.y = scroll_y; - window->ScrollTargetCenterRatio.y = 0.0f; -} - -void ImGui::SetScrollX(ImGuiWindow* window, float new_scroll_x) -{ - window->ScrollTarget.x = new_scroll_x; - window->ScrollTargetCenterRatio.x = 0.0f; -} - -void ImGui::SetScrollY(ImGuiWindow* window, float new_scroll_y) -{ - window->ScrollTarget.y = new_scroll_y; - window->ScrollTargetCenterRatio.y = 0.0f; -} - - -void ImGui::SetScrollFromPosX(ImGuiWindow* window, float local_x, float center_x_ratio) -{ - // We store a target position so centering can occur on the next frame when we are guaranteed to have a known window size - IM_ASSERT(center_x_ratio >= 0.0f && center_x_ratio <= 1.0f); - window->ScrollTarget.x = IM_FLOOR(local_x + window->Scroll.x); - window->ScrollTargetCenterRatio.x = center_x_ratio; -} - -void ImGui::SetScrollFromPosY(ImGuiWindow* window, float local_y, float center_y_ratio) -{ - // We store a target position so centering can occur on the next frame when we are guaranteed to have a known window size - IM_ASSERT(center_y_ratio >= 0.0f && center_y_ratio <= 1.0f); - const float decoration_up_height = window->TitleBarHeight() + window->MenuBarHeight(); - local_y -= decoration_up_height; - window->ScrollTarget.y = IM_FLOOR(local_y + window->Scroll.y); - window->ScrollTargetCenterRatio.y = center_y_ratio; -} - -void ImGui::SetScrollFromPosX(float local_x, float center_x_ratio) -{ - ImGuiContext& g = *GImGui; - SetScrollFromPosX(g.CurrentWindow, local_x, center_x_ratio); -} - -void ImGui::SetScrollFromPosY(float local_y, float center_y_ratio) -{ - ImGuiContext& g = *GImGui; - SetScrollFromPosY(g.CurrentWindow, local_y, center_y_ratio); -} - -// center_x_ratio: 0.0f left of last item, 0.5f horizontal center of last item, 1.0f right of last item. -void ImGui::SetScrollHereX(float center_x_ratio) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - float target_x = window->DC.LastItemRect.Min.x - window->Pos.x; // Left of last item, in window space - float last_item_width = window->DC.LastItemRect.GetWidth(); - target_x += (last_item_width * center_x_ratio) + (g.Style.ItemSpacing.x * (center_x_ratio - 0.5f) * 2.0f); // Precisely aim before, in the middle or after the last item. - SetScrollFromPosX(target_x, center_x_ratio); -} - -// center_y_ratio: 0.0f top of last item, 0.5f vertical center of last item, 1.0f bottom of last item. -void ImGui::SetScrollHereY(float center_y_ratio) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - float target_y = window->DC.CursorPosPrevLine.y - window->Pos.y; // Top of last item, in window space - target_y += (window->DC.PrevLineSize.y * center_y_ratio) + (g.Style.ItemSpacing.y * (center_y_ratio - 0.5f) * 2.0f); // Precisely aim above, in the middle or below the last line. - SetScrollFromPosY(target_y, center_y_ratio); -} - -//----------------------------------------------------------------------------- -// [SECTION] TOOLTIPS -//----------------------------------------------------------------------------- - -void ImGui::BeginTooltip() -{ - BeginTooltipEx(ImGuiWindowFlags_None, ImGuiTooltipFlags_None); -} - -void ImGui::BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags) -{ - ImGuiContext& g = *GImGui; - - if (g.DragDropWithinSource || g.DragDropWithinTarget) - { - // The default tooltip position is a little offset to give space to see the context menu (it's also clamped within the current viewport/monitor) - // In the context of a dragging tooltip we try to reduce that offset and we enforce following the cursor. - // Whatever we do we want to call SetNextWindowPos() to enforce a tooltip position and disable clipping the tooltip without our display area, like regular tooltip do. - //ImVec2 tooltip_pos = g.IO.MousePos - g.ActiveIdClickOffset - g.Style.WindowPadding; - ImVec2 tooltip_pos = g.IO.MousePos + ImVec2(16 * g.Style.MouseCursorScale, 8 * g.Style.MouseCursorScale); - SetNextWindowPos(tooltip_pos); - SetNextWindowBgAlpha(g.Style.Colors[ImGuiCol_PopupBg].w * 0.60f); - //PushStyleVar(ImGuiStyleVar_Alpha, g.Style.Alpha * 0.60f); // This would be nice but e.g ColorButton with checkboard has issue with transparent colors :( - tooltip_flags |= ImGuiTooltipFlags_OverridePreviousTooltip; - } - - char window_name[16]; - ImFormatString(window_name, IM_ARRAYSIZE(window_name), "##Tooltip_%02d", g.TooltipOverrideCount); - if (tooltip_flags & ImGuiTooltipFlags_OverridePreviousTooltip) - if (ImGuiWindow* window = FindWindowByName(window_name)) - if (window->Active) - { - // Hide previous tooltip from being displayed. We can't easily "reset" the content of a window so we create a new one. - window->Hidden = true; - window->HiddenFramesCanSkipItems = 1; - ImFormatString(window_name, IM_ARRAYSIZE(window_name), "##Tooltip_%02d", ++g.TooltipOverrideCount); - } - ImGuiWindowFlags flags = ImGuiWindowFlags_Tooltip|ImGuiWindowFlags_NoInputs|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoMove|ImGuiWindowFlags_NoResize|ImGuiWindowFlags_NoSavedSettings|ImGuiWindowFlags_AlwaysAutoResize; - Begin(window_name, NULL, flags | extra_flags); -} - -void ImGui::EndTooltip() -{ - IM_ASSERT(GetCurrentWindowRead()->Flags & ImGuiWindowFlags_Tooltip); // Mismatched BeginTooltip()/EndTooltip() calls - End(); -} - -void ImGui::SetTooltipV(const char* fmt, va_list args) -{ - BeginTooltipEx(0, ImGuiTooltipFlags_OverridePreviousTooltip); - TextV(fmt, args); - EndTooltip(); -} - -void ImGui::SetTooltip(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - SetTooltipV(fmt, args); - va_end(args); -} - -//----------------------------------------------------------------------------- -// [SECTION] POPUPS -//----------------------------------------------------------------------------- - -bool ImGui::IsPopupOpen(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - return g.OpenPopupStack.Size > g.BeginPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].PopupId == id; -} - -bool ImGui::IsPopupOpen(const char* str_id) -{ - ImGuiContext& g = *GImGui; - return g.OpenPopupStack.Size > g.BeginPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].PopupId == g.CurrentWindow->GetID(str_id); -} - -ImGuiWindow* ImGui::GetTopMostPopupModal() -{ - ImGuiContext& g = *GImGui; - for (int n = g.OpenPopupStack.Size-1; n >= 0; n--) - if (ImGuiWindow* popup = g.OpenPopupStack.Data[n].Window) - if (popup->Flags & ImGuiWindowFlags_Modal) - return popup; - return NULL; -} - -void ImGui::OpenPopup(const char* str_id) -{ - ImGuiContext& g = *GImGui; - OpenPopupEx(g.CurrentWindow->GetID(str_id)); -} - -// Mark popup as open (toggle toward open state). -// Popups are closed when user click outside, or activate a pressable item, or CloseCurrentPopup() is called within a BeginPopup()/EndPopup() block. -// Popup identifiers are relative to the current ID-stack (so OpenPopup and BeginPopup needs to be at the same level). -// One open popup per level of the popup hierarchy (NB: when assigning we reset the Window member of ImGuiPopupRef to NULL) -void ImGui::OpenPopupEx(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* parent_window = g.CurrentWindow; - int current_stack_size = g.BeginPopupStack.Size; - ImGuiPopupData popup_ref; // Tagged as new ref as Window will be set back to NULL if we write this into OpenPopupStack. - popup_ref.PopupId = id; - popup_ref.Window = NULL; - popup_ref.SourceWindow = g.NavWindow; - popup_ref.OpenFrameCount = g.FrameCount; - popup_ref.OpenParentId = parent_window->IDStack.back(); - popup_ref.OpenPopupPos = NavCalcPreferredRefPos(); - popup_ref.OpenMousePos = IsMousePosValid(&g.IO.MousePos) ? g.IO.MousePos : popup_ref.OpenPopupPos; - - //IMGUI_DEBUG_LOG("OpenPopupEx(0x%08X)\n", g.FrameCount, id); - if (g.OpenPopupStack.Size < current_stack_size + 1) - { - g.OpenPopupStack.push_back(popup_ref); - } - else - { - // Gently handle the user mistakenly calling OpenPopup() every frame. It is a programming mistake! However, if we were to run the regular code path, the ui - // would become completely unusable because the popup will always be in hidden-while-calculating-size state _while_ claiming focus. Which would be a very confusing - // situation for the programmer. Instead, we silently allow the popup to proceed, it will keep reappearing and the programming error will be more obvious to understand. - if (g.OpenPopupStack[current_stack_size].PopupId == id && g.OpenPopupStack[current_stack_size].OpenFrameCount == g.FrameCount - 1) - { - g.OpenPopupStack[current_stack_size].OpenFrameCount = popup_ref.OpenFrameCount; - } - else - { - // Close child popups if any, then flag popup for open/reopen - g.OpenPopupStack.resize(current_stack_size + 1); - g.OpenPopupStack[current_stack_size] = popup_ref; - } - - // When reopening a popup we first refocus its parent, otherwise if its parent is itself a popup it would get closed by ClosePopupsOverWindow(). - // This is equivalent to what ClosePopupToLevel() does. - //if (g.OpenPopupStack[current_stack_size].PopupId == id) - // FocusWindow(parent_window); - } -} - -void ImGui::ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup) -{ - ImGuiContext& g = *GImGui; - if (g.OpenPopupStack.empty()) - return; - - // When popups are stacked, clicking on a lower level popups puts focus back to it and close popups above it. - // Don't close our own child popup windows. - int popup_count_to_keep = 0; - if (ref_window) - { - // Find the highest popup which is a descendant of the reference window (generally reference window = NavWindow) - for (; popup_count_to_keep < g.OpenPopupStack.Size; popup_count_to_keep++) - { - ImGuiPopupData& popup = g.OpenPopupStack[popup_count_to_keep]; - if (!popup.Window) - continue; - IM_ASSERT((popup.Window->Flags & ImGuiWindowFlags_Popup) != 0); - if (popup.Window->Flags & ImGuiWindowFlags_ChildWindow) - continue; - - // Trim the stack when popups are not direct descendant of the reference window (the reference window is often the NavWindow) - bool popup_or_descendent_is_ref_window = false; - for (int m = popup_count_to_keep; m < g.OpenPopupStack.Size && !popup_or_descendent_is_ref_window; m++) - if (ImGuiWindow* popup_window = g.OpenPopupStack[m].Window) - if (popup_window->RootWindow == ref_window->RootWindow) - popup_or_descendent_is_ref_window = true; - if (!popup_or_descendent_is_ref_window) - break; - } - } - if (popup_count_to_keep < g.OpenPopupStack.Size) // This test is not required but it allows to set a convenient breakpoint on the statement below - { - //IMGUI_DEBUG_LOG("ClosePopupsOverWindow(%s) -> ClosePopupToLevel(%d)\n", ref_window->Name, popup_count_to_keep); - ClosePopupToLevel(popup_count_to_keep, restore_focus_to_window_under_popup); - } -} - -void ImGui::ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(remaining >= 0 && remaining < g.OpenPopupStack.Size); - ImGuiWindow* focus_window = g.OpenPopupStack[remaining].SourceWindow; - ImGuiWindow* popup_window = g.OpenPopupStack[remaining].Window; - g.OpenPopupStack.resize(remaining); - - if (restore_focus_to_window_under_popup) - { - if (focus_window && !focus_window->WasActive && popup_window) - { - // Fallback - FocusTopMostWindowUnderOne(popup_window, NULL); - } - else - { - if (g.NavLayer == ImGuiNavLayer_Main && focus_window) - focus_window = NavRestoreLastChildNavWindow(focus_window); - FocusWindow(focus_window); - } - } -} - -// Close the popup we have begin-ed into. -void ImGui::CloseCurrentPopup() -{ - ImGuiContext& g = *GImGui; - int popup_idx = g.BeginPopupStack.Size - 1; - if (popup_idx < 0 || popup_idx >= g.OpenPopupStack.Size || g.BeginPopupStack[popup_idx].PopupId != g.OpenPopupStack[popup_idx].PopupId) - return; - - // Closing a menu closes its top-most parent popup (unless a modal) - while (popup_idx > 0) - { - ImGuiWindow* popup_window = g.OpenPopupStack[popup_idx].Window; - ImGuiWindow* parent_popup_window = g.OpenPopupStack[popup_idx - 1].Window; - bool close_parent = false; - if (popup_window && (popup_window->Flags & ImGuiWindowFlags_ChildMenu)) - if (parent_popup_window == NULL || !(parent_popup_window->Flags & ImGuiWindowFlags_Modal)) - close_parent = true; - if (!close_parent) - break; - popup_idx--; - } - //IMGUI_DEBUG_LOG("CloseCurrentPopup %d -> %d\n", g.BeginPopupStack.Size - 1, popup_idx); - ClosePopupToLevel(popup_idx, true); - - // A common pattern is to close a popup when selecting a menu item/selectable that will open another window. - // To improve this usage pattern, we avoid nav highlight for a single frame in the parent window. - // Similarly, we could avoid mouse hover highlight in this window but it is less visually problematic. - if (ImGuiWindow* window = g.NavWindow) - window->DC.NavHideHighlightOneFrame = true; -} - -bool ImGui::BeginPopupEx(ImGuiID id, ImGuiWindowFlags flags) -{ - ImGuiContext& g = *GImGui; - if (!IsPopupOpen(id)) - { - g.NextWindowData.ClearFlags(); // We behave like Begin() and need to consume those values - return false; - } - - char name[20]; - if (flags & ImGuiWindowFlags_ChildMenu) - ImFormatString(name, IM_ARRAYSIZE(name), "##Menu_%02d", g.BeginPopupStack.Size); // Recycle windows based on depth - else - ImFormatString(name, IM_ARRAYSIZE(name), "##Popup_%08x", id); // Not recycling, so we can close/open during the same frame - - flags |= ImGuiWindowFlags_Popup; - bool is_open = Begin(name, NULL, flags); - if (!is_open) // NB: Begin can return false when the popup is completely clipped (e.g. zero size display) - EndPopup(); - - return is_open; -} - -bool ImGui::BeginPopup(const char* str_id, ImGuiWindowFlags flags) -{ - ImGuiContext& g = *GImGui; - if (g.OpenPopupStack.Size <= g.BeginPopupStack.Size) // Early out for performance - { - g.NextWindowData.ClearFlags(); // We behave like Begin() and need to consume those values - return false; - } - flags |= ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings; - return BeginPopupEx(g.CurrentWindow->GetID(str_id), flags); -} - -// If 'p_open' is specified for a modal popup window, the popup will have a regular close button which will close the popup. -// Note that popup visibility status is owned by Dear ImGui (and manipulated with e.g. OpenPopup) so the actual value of *p_open is meaningless here. -bool ImGui::BeginPopupModal(const char* name, bool* p_open, ImGuiWindowFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - const ImGuiID id = window->GetID(name); - if (!IsPopupOpen(id)) - { - g.NextWindowData.ClearFlags(); // We behave like Begin() and need to consume those values - return false; - } - - // Center modal windows by default - // FIXME: Should test for (PosCond & window->SetWindowPosAllowFlags) with the upcoming window. - if ((g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasPos) == 0) - SetNextWindowPos(g.IO.DisplaySize * 0.5f, ImGuiCond_Appearing, ImVec2(0.5f, 0.5f)); - - flags |= ImGuiWindowFlags_Popup | ImGuiWindowFlags_Modal | ImGuiWindowFlags_NoCollapse | ImGuiWindowFlags_NoSavedSettings; - const bool is_open = Begin(name, p_open, flags); - if (!is_open || (p_open && !*p_open)) // NB: is_open can be 'false' when the popup is completely clipped (e.g. zero size display) - { - EndPopup(); - if (is_open) - ClosePopupToLevel(g.BeginPopupStack.Size, true); - return false; - } - return is_open; -} - -void ImGui::EndPopup() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - IM_ASSERT(window->Flags & ImGuiWindowFlags_Popup); // Mismatched BeginPopup()/EndPopup() calls - IM_ASSERT(g.BeginPopupStack.Size > 0); - - // Make all menus and popups wrap around for now, may need to expose that policy. - NavMoveRequestTryWrapping(window, ImGuiNavMoveFlags_LoopY); - - // Child-popups don't need to be layed out - IM_ASSERT(g.WithinEndChild == false); - if (window->Flags & ImGuiWindowFlags_ChildWindow) - g.WithinEndChild = true; - End(); - g.WithinEndChild = false; -} - -bool ImGui::OpenPopupOnItemClick(const char* str_id, ImGuiMouseButton mouse_button) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - if (IsMouseReleased(mouse_button) && IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) - { - ImGuiID id = str_id ? window->GetID(str_id) : window->DC.LastItemId; // If user hasn't passed an ID, we can use the LastItemID. Using LastItemID as a Popup ID won't conflict! - IM_ASSERT(id != 0); // You cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item) - OpenPopupEx(id); - return true; - } - return false; -} - -// This is a helper to handle the simplest case of associating one named popup to one given widget. -// You may want to handle this on user side if you have specific needs (e.g. tweaking IsItemHovered() parameters). -// You can pass a NULL str_id to use the identifier of the last item. -bool ImGui::BeginPopupContextItem(const char* str_id, ImGuiMouseButton mouse_button) -{ - ImGuiWindow* window = GImGui->CurrentWindow; - if (window->SkipItems) - return false; - ImGuiID id = str_id ? window->GetID(str_id) : window->DC.LastItemId; // If user hasn't passed an ID, we can use the LastItemID. Using LastItemID as a Popup ID won't conflict! - IM_ASSERT(id != 0); // You cannot pass a NULL str_id if the last item has no identifier (e.g. a Text() item) - if (IsMouseReleased(mouse_button) && IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) - OpenPopupEx(id); - return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); -} - -bool ImGui::BeginPopupContextWindow(const char* str_id, ImGuiMouseButton mouse_button, bool also_over_items) -{ - if (!str_id) - str_id = "window_context"; - ImGuiID id = GImGui->CurrentWindow->GetID(str_id); - if (IsMouseReleased(mouse_button) && IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup)) - if (also_over_items || !IsAnyItemHovered()) - OpenPopupEx(id); - return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); -} - -bool ImGui::BeginPopupContextVoid(const char* str_id, ImGuiMouseButton mouse_button) -{ - if (!str_id) - str_id = "void_context"; - ImGuiID id = GImGui->CurrentWindow->GetID(str_id); - if (IsMouseReleased(mouse_button) && !IsWindowHovered(ImGuiHoveredFlags_AnyWindow)) - OpenPopupEx(id); - return BeginPopupEx(id, ImGuiWindowFlags_AlwaysAutoResize|ImGuiWindowFlags_NoTitleBar|ImGuiWindowFlags_NoSavedSettings); -} - -// r_avoid = the rectangle to avoid (e.g. for tooltip it is a rectangle around the mouse cursor which we want to avoid. for popups it's a small point around the cursor.) -// r_outer = the visible area rectangle, minus safe area padding. If our popup size won't fit because of safe area padding we ignore it. -ImVec2 ImGui::FindBestWindowPosForPopupEx(const ImVec2& ref_pos, const ImVec2& size, ImGuiDir* last_dir, const ImRect& r_outer, const ImRect& r_avoid, ImGuiPopupPositionPolicy policy) -{ - ImVec2 base_pos_clamped = ImClamp(ref_pos, r_outer.Min, r_outer.Max - size); - //GetForegroundDrawList()->AddRect(r_avoid.Min, r_avoid.Max, IM_COL32(255,0,0,255)); - //GetForegroundDrawList()->AddRect(r_outer.Min, r_outer.Max, IM_COL32(0,255,0,255)); - - // Combo Box policy (we want a connecting edge) - if (policy == ImGuiPopupPositionPolicy_ComboBox) - { - const ImGuiDir dir_prefered_order[ImGuiDir_COUNT] = { ImGuiDir_Down, ImGuiDir_Right, ImGuiDir_Left, ImGuiDir_Up }; - for (int n = (*last_dir != ImGuiDir_None) ? -1 : 0; n < ImGuiDir_COUNT; n++) - { - const ImGuiDir dir = (n == -1) ? *last_dir : dir_prefered_order[n]; - if (n != -1 && dir == *last_dir) // Already tried this direction? - continue; - ImVec2 pos; - if (dir == ImGuiDir_Down) pos = ImVec2(r_avoid.Min.x, r_avoid.Max.y); // Below, Toward Right (default) - if (dir == ImGuiDir_Right) pos = ImVec2(r_avoid.Min.x, r_avoid.Min.y - size.y); // Above, Toward Right - if (dir == ImGuiDir_Left) pos = ImVec2(r_avoid.Max.x - size.x, r_avoid.Max.y); // Below, Toward Left - if (dir == ImGuiDir_Up) pos = ImVec2(r_avoid.Max.x - size.x, r_avoid.Min.y - size.y); // Above, Toward Left - if (!r_outer.Contains(ImRect(pos, pos + size))) - continue; - *last_dir = dir; - return pos; - } - } - - // Default popup policy - const ImGuiDir dir_prefered_order[ImGuiDir_COUNT] = { ImGuiDir_Right, ImGuiDir_Down, ImGuiDir_Up, ImGuiDir_Left }; - for (int n = (*last_dir != ImGuiDir_None) ? -1 : 0; n < ImGuiDir_COUNT; n++) - { - const ImGuiDir dir = (n == -1) ? *last_dir : dir_prefered_order[n]; - if (n != -1 && dir == *last_dir) // Already tried this direction? - continue; - float avail_w = (dir == ImGuiDir_Left ? r_avoid.Min.x : r_outer.Max.x) - (dir == ImGuiDir_Right ? r_avoid.Max.x : r_outer.Min.x); - float avail_h = (dir == ImGuiDir_Up ? r_avoid.Min.y : r_outer.Max.y) - (dir == ImGuiDir_Down ? r_avoid.Max.y : r_outer.Min.y); - if (avail_w < size.x || avail_h < size.y) - continue; - ImVec2 pos; - pos.x = (dir == ImGuiDir_Left) ? r_avoid.Min.x - size.x : (dir == ImGuiDir_Right) ? r_avoid.Max.x : base_pos_clamped.x; - pos.y = (dir == ImGuiDir_Up) ? r_avoid.Min.y - size.y : (dir == ImGuiDir_Down) ? r_avoid.Max.y : base_pos_clamped.y; - *last_dir = dir; - return pos; - } - - // Fallback, try to keep within display - *last_dir = ImGuiDir_None; - ImVec2 pos = ref_pos; - pos.x = ImMax(ImMin(pos.x + size.x, r_outer.Max.x) - size.x, r_outer.Min.x); - pos.y = ImMax(ImMin(pos.y + size.y, r_outer.Max.y) - size.y, r_outer.Min.y); - return pos; -} - -ImRect ImGui::GetWindowAllowedExtentRect(ImGuiWindow* window) -{ - IM_UNUSED(window); - ImVec2 padding = GImGui->Style.DisplaySafeAreaPadding; - ImRect r_screen = GetViewportRect(); - r_screen.Expand(ImVec2((r_screen.GetWidth() > padding.x * 2) ? -padding.x : 0.0f, (r_screen.GetHeight() > padding.y * 2) ? -padding.y : 0.0f)); - return r_screen; -} - -ImVec2 ImGui::FindBestWindowPosForPopup(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - - ImRect r_outer = GetWindowAllowedExtentRect(window); - if (window->Flags & ImGuiWindowFlags_ChildMenu) - { - // Child menus typically request _any_ position within the parent menu item, and then we move the new menu outside the parent bounds. - // This is how we end up with child menus appearing (most-commonly) on the right of the parent menu. - IM_ASSERT(g.CurrentWindow == window); - ImGuiWindow* parent_window = g.CurrentWindowStack[g.CurrentWindowStack.Size - 2]; - float horizontal_overlap = g.Style.ItemInnerSpacing.x; // We want some overlap to convey the relative depth of each menu (currently the amount of overlap is hard-coded to style.ItemSpacing.x). - ImRect r_avoid; - if (parent_window->DC.MenuBarAppending) - r_avoid = ImRect(-FLT_MAX, parent_window->ClipRect.Min.y, FLT_MAX, parent_window->ClipRect.Max.y); // Avoid parent menu-bar. If we wanted multi-line menu-bar, we may instead want to have the calling window setup e.g. a NextWindowData.PosConstraintAvoidRect field - else - r_avoid = ImRect(parent_window->Pos.x + horizontal_overlap, -FLT_MAX, parent_window->Pos.x + parent_window->Size.x - horizontal_overlap - parent_window->ScrollbarSizes.x, FLT_MAX); - return FindBestWindowPosForPopupEx(window->Pos, window->Size, &window->AutoPosLastDirection, r_outer, r_avoid); - } - if (window->Flags & ImGuiWindowFlags_Popup) - { - ImRect r_avoid = ImRect(window->Pos.x - 1, window->Pos.y - 1, window->Pos.x + 1, window->Pos.y + 1); - return FindBestWindowPosForPopupEx(window->Pos, window->Size, &window->AutoPosLastDirection, r_outer, r_avoid); - } - if (window->Flags & ImGuiWindowFlags_Tooltip) - { - // Position tooltip (always follows mouse) - float sc = g.Style.MouseCursorScale; - ImVec2 ref_pos = NavCalcPreferredRefPos(); - ImRect r_avoid; - if (!g.NavDisableHighlight && g.NavDisableMouseHover && !(g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos)) - r_avoid = ImRect(ref_pos.x - 16, ref_pos.y - 8, ref_pos.x + 16, ref_pos.y + 8); - else - r_avoid = ImRect(ref_pos.x - 16, ref_pos.y - 8, ref_pos.x + 24 * sc, ref_pos.y + 24 * sc); // FIXME: Hard-coded based on mouse cursor shape expectation. Exact dimension not very important. - ImVec2 pos = FindBestWindowPosForPopupEx(ref_pos, window->Size, &window->AutoPosLastDirection, r_outer, r_avoid); - if (window->AutoPosLastDirection == ImGuiDir_None) - pos = ref_pos + ImVec2(2, 2); // If there's not enough room, for tooltip we prefer avoiding the cursor at all cost even if it means that part of the tooltip won't be visible. - return pos; - } - IM_ASSERT(0); - return window->Pos; -} - -//----------------------------------------------------------------------------- -// [SECTION] KEYBOARD/GAMEPAD NAVIGATION -//----------------------------------------------------------------------------- - -// FIXME-NAV: The existence of SetNavID vs SetNavIDWithRectRel vs SetFocusID is incredibly messy and confusing, -// and needs some explanation or serious refactoring. -void ImGui::SetNavID(ImGuiID id, int nav_layer, ImGuiID focus_scope_id) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.NavWindow); - IM_ASSERT(nav_layer == 0 || nav_layer == 1); - g.NavId = id; - g.NavFocusScopeId = focus_scope_id; - g.NavWindow->NavLastIds[nav_layer] = id; -} - -void ImGui::SetNavIDWithRectRel(ImGuiID id, int nav_layer, ImGuiID focus_scope_id, const ImRect& rect_rel) -{ - ImGuiContext& g = *GImGui; - SetNavID(id, nav_layer, focus_scope_id); - g.NavWindow->NavRectRel[nav_layer] = rect_rel; - g.NavMousePosDirty = true; - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; -} - -void ImGui::SetFocusID(ImGuiID id, ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(id != 0); - - // Assume that SetFocusID() is called in the context where its window->DC.NavLayerCurrent and window->DC.NavFocusScopeIdCurrent are valid. - // Note that window may be != g.CurrentWindow (e.g. SetFocusID call in InputTextEx for multi-line text) - const ImGuiNavLayer nav_layer = window->DC.NavLayerCurrent; - if (g.NavWindow != window) - g.NavInitRequest = false; - g.NavWindow = window; - g.NavId = id; - g.NavLayer = nav_layer; - g.NavFocusScopeId = window->DC.NavFocusScopeIdCurrent; - window->NavLastIds[nav_layer] = id; - if (window->DC.LastItemId == id) - window->NavRectRel[nav_layer] = ImRect(window->DC.LastItemRect.Min - window->Pos, window->DC.LastItemRect.Max - window->Pos); - - if (g.ActiveIdSource == ImGuiInputSource_Nav) - g.NavDisableMouseHover = true; - else - g.NavDisableHighlight = true; -} - -ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy) -{ - if (ImFabs(dx) > ImFabs(dy)) - return (dx > 0.0f) ? ImGuiDir_Right : ImGuiDir_Left; - return (dy > 0.0f) ? ImGuiDir_Down : ImGuiDir_Up; -} - -static float inline NavScoreItemDistInterval(float a0, float a1, float b0, float b1) -{ - if (a1 < b0) - return a1 - b0; - if (b1 < a0) - return a0 - b1; - return 0.0f; -} - -static void inline NavClampRectToVisibleAreaForMoveDir(ImGuiDir move_dir, ImRect& r, const ImRect& clip_rect) -{ - if (move_dir == ImGuiDir_Left || move_dir == ImGuiDir_Right) - { - r.Min.y = ImClamp(r.Min.y, clip_rect.Min.y, clip_rect.Max.y); - r.Max.y = ImClamp(r.Max.y, clip_rect.Min.y, clip_rect.Max.y); - } - else - { - r.Min.x = ImClamp(r.Min.x, clip_rect.Min.x, clip_rect.Max.x); - r.Max.x = ImClamp(r.Max.x, clip_rect.Min.x, clip_rect.Max.x); - } -} - -// Scoring function for gamepad/keyboard directional navigation. Based on https://gist.github.com/rygorous/6981057 -static bool ImGui::NavScoreItem(ImGuiNavMoveResult* result, ImRect cand) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (g.NavLayer != window->DC.NavLayerCurrent) - return false; - - const ImRect& curr = g.NavScoringRect; // Current modified source rect (NB: we've applied Max.x = Min.x in NavUpdate() to inhibit the effect of having varied item width) - g.NavScoringCount++; - - // When entering through a NavFlattened border, we consider child window items as fully clipped for scoring - if (window->ParentWindow == g.NavWindow) - { - IM_ASSERT((window->Flags | g.NavWindow->Flags) & ImGuiWindowFlags_NavFlattened); - if (!window->ClipRect.Overlaps(cand)) - return false; - cand.ClipWithFull(window->ClipRect); // This allows the scored item to not overlap other candidates in the parent window - } - - // We perform scoring on items bounding box clipped by the current clipping rectangle on the other axis (clipping on our movement axis would give us equal scores for all clipped items) - // For example, this ensure that items in one column are not reached when moving vertically from items in another column. - NavClampRectToVisibleAreaForMoveDir(g.NavMoveClipDir, cand, window->ClipRect); - - // Compute distance between boxes - // FIXME-NAV: Introducing biases for vertical navigation, needs to be removed. - float dbx = NavScoreItemDistInterval(cand.Min.x, cand.Max.x, curr.Min.x, curr.Max.x); - float dby = NavScoreItemDistInterval(ImLerp(cand.Min.y, cand.Max.y, 0.2f), ImLerp(cand.Min.y, cand.Max.y, 0.8f), ImLerp(curr.Min.y, curr.Max.y, 0.2f), ImLerp(curr.Min.y, curr.Max.y, 0.8f)); // Scale down on Y to keep using box-distance for vertically touching items - if (dby != 0.0f && dbx != 0.0f) - dbx = (dbx/1000.0f) + ((dbx > 0.0f) ? +1.0f : -1.0f); - float dist_box = ImFabs(dbx) + ImFabs(dby); - - // Compute distance between centers (this is off by a factor of 2, but we only compare center distances with each other so it doesn't matter) - float dcx = (cand.Min.x + cand.Max.x) - (curr.Min.x + curr.Max.x); - float dcy = (cand.Min.y + cand.Max.y) - (curr.Min.y + curr.Max.y); - float dist_center = ImFabs(dcx) + ImFabs(dcy); // L1 metric (need this for our connectedness guarantee) - - // Determine which quadrant of 'curr' our candidate item 'cand' lies in based on distance - ImGuiDir quadrant; - float dax = 0.0f, day = 0.0f, dist_axial = 0.0f; - if (dbx != 0.0f || dby != 0.0f) - { - // For non-overlapping boxes, use distance between boxes - dax = dbx; - day = dby; - dist_axial = dist_box; - quadrant = ImGetDirQuadrantFromDelta(dbx, dby); - } - else if (dcx != 0.0f || dcy != 0.0f) - { - // For overlapping boxes with different centers, use distance between centers - dax = dcx; - day = dcy; - dist_axial = dist_center; - quadrant = ImGetDirQuadrantFromDelta(dcx, dcy); - } - else - { - // Degenerate case: two overlapping buttons with same center, break ties arbitrarily (note that LastItemId here is really the _previous_ item order, but it doesn't matter) - quadrant = (window->DC.LastItemId < g.NavId) ? ImGuiDir_Left : ImGuiDir_Right; - } - -#if IMGUI_DEBUG_NAV_SCORING - char buf[128]; - if (IsMouseHoveringRect(cand.Min, cand.Max)) - { - ImFormatString(buf, IM_ARRAYSIZE(buf), "dbox (%.2f,%.2f->%.4f)\ndcen (%.2f,%.2f->%.4f)\nd (%.2f,%.2f->%.4f)\nnav %c, quadrant %c", dbx, dby, dist_box, dcx, dcy, dist_center, dax, day, dist_axial, "WENS"[g.NavMoveDir], "WENS"[quadrant]); - ImDrawList* draw_list = GetForegroundDrawList(window); - draw_list->AddRect(curr.Min, curr.Max, IM_COL32(255,200,0,100)); - draw_list->AddRect(cand.Min, cand.Max, IM_COL32(255,255,0,200)); - draw_list->AddRectFilled(cand.Max - ImVec2(4,4), cand.Max + CalcTextSize(buf) + ImVec2(4,4), IM_COL32(40,0,0,150)); - draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Max, ~0U, buf); - } - else if (g.IO.KeyCtrl) // Hold to preview score in matching quadrant. Press C to rotate. - { - if (IsKeyPressedMap(ImGuiKey_C)) { g.NavMoveDirLast = (ImGuiDir)((g.NavMoveDirLast + 1) & 3); g.IO.KeysDownDuration[g.IO.KeyMap[ImGuiKey_C]] = 0.01f; } - if (quadrant == g.NavMoveDir) - { - ImFormatString(buf, IM_ARRAYSIZE(buf), "%.0f/%.0f", dist_box, dist_center); - ImDrawList* draw_list = GetForegroundDrawList(window); - draw_list->AddRectFilled(cand.Min, cand.Max, IM_COL32(255, 0, 0, 200)); - draw_list->AddText(g.IO.FontDefault, 13.0f, cand.Min, IM_COL32(255, 255, 255, 255), buf); - } - } - #endif - - // Is it in the quadrant we're interesting in moving to? - bool new_best = false; - if (quadrant == g.NavMoveDir) - { - // Does it beat the current best candidate? - if (dist_box < result->DistBox) - { - result->DistBox = dist_box; - result->DistCenter = dist_center; - return true; - } - if (dist_box == result->DistBox) - { - // Try using distance between center points to break ties - if (dist_center < result->DistCenter) - { - result->DistCenter = dist_center; - new_best = true; - } - else if (dist_center == result->DistCenter) - { - // Still tied! we need to be extra-careful to make sure everything gets linked properly. We consistently break ties by symbolically moving "later" items - // (with higher index) to the right/downwards by an infinitesimal amount since we the current "best" button already (so it must have a lower index), - // this is fairly easy. This rule ensures that all buttons with dx==dy==0 will end up being linked in order of appearance along the x axis. - if (((g.NavMoveDir == ImGuiDir_Up || g.NavMoveDir == ImGuiDir_Down) ? dby : dbx) < 0.0f) // moving bj to the right/down decreases distance - new_best = true; - } - } - } - - // Axial check: if 'curr' has no link at all in some direction and 'cand' lies roughly in that direction, add a tentative link. This will only be kept if no "real" matches - // are found, so it only augments the graph produced by the above method using extra links. (important, since it doesn't guarantee strong connectedness) - // This is just to avoid buttons having no links in a particular direction when there's a suitable neighbor. you get good graphs without this too. - // 2017/09/29: FIXME: This now currently only enabled inside menu bars, ideally we'd disable it everywhere. Menus in particular need to catch failure. For general navigation it feels awkward. - // Disabling it may lead to disconnected graphs when nodes are very spaced out on different axis. Perhaps consider offering this as an option? - if (result->DistBox == FLT_MAX && dist_axial < result->DistAxial) // Check axial match - if (g.NavLayer == ImGuiNavLayer_Menu && !(g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu)) - if ((g.NavMoveDir == ImGuiDir_Left && dax < 0.0f) || (g.NavMoveDir == ImGuiDir_Right && dax > 0.0f) || (g.NavMoveDir == ImGuiDir_Up && day < 0.0f) || (g.NavMoveDir == ImGuiDir_Down && day > 0.0f)) - { - result->DistAxial = dist_axial; - new_best = true; - } - - return new_best; -} - -// We get there when either NavId == id, or when g.NavAnyRequest is set (which is updated by NavUpdateAnyRequestFlag above) -static void ImGui::NavProcessItem(ImGuiWindow* window, const ImRect& nav_bb, const ImGuiID id) -{ - ImGuiContext& g = *GImGui; - //if (!g.IO.NavActive) // [2017/10/06] Removed this possibly redundant test but I am not sure of all the side-effects yet. Some of the feature here will need to work regardless of using a _NoNavInputs flag. - // return; - - const ImGuiItemFlags item_flags = window->DC.ItemFlags; - const ImRect nav_bb_rel(nav_bb.Min - window->Pos, nav_bb.Max - window->Pos); - - // Process Init Request - if (g.NavInitRequest && g.NavLayer == window->DC.NavLayerCurrent) - { - // Even if 'ImGuiItemFlags_NoNavDefaultFocus' is on (typically collapse/close button) we record the first ResultId so they can be used as a fallback - if (!(item_flags & ImGuiItemFlags_NoNavDefaultFocus) || g.NavInitResultId == 0) - { - g.NavInitResultId = id; - g.NavInitResultRectRel = nav_bb_rel; - } - if (!(item_flags & ImGuiItemFlags_NoNavDefaultFocus)) - { - g.NavInitRequest = false; // Found a match, clear request - NavUpdateAnyRequestFlag(); - } - } - - // Process Move Request (scoring for navigation) - // FIXME-NAV: Consider policy for double scoring (scoring from NavScoringRectScreen + scoring from a rect wrapped according to current wrapping policy) - if ((g.NavId != id || (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AllowCurrentNavId)) && !(item_flags & (ImGuiItemFlags_Disabled|ImGuiItemFlags_NoNav))) - { - ImGuiNavMoveResult* result = (window == g.NavWindow) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; -#if IMGUI_DEBUG_NAV_SCORING - // [DEBUG] Score all items in NavWindow at all times - if (!g.NavMoveRequest) - g.NavMoveDir = g.NavMoveDirLast; - bool new_best = NavScoreItem(result, nav_bb) && g.NavMoveRequest; -#else - bool new_best = g.NavMoveRequest && NavScoreItem(result, nav_bb); -#endif - if (new_best) - { - result->Window = window; - result->ID = id; - result->FocusScopeId = window->DC.NavFocusScopeIdCurrent; - result->RectRel = nav_bb_rel; - } - - // Features like PageUp/PageDown need to maintain a separate score for the visible set of items. - const float VISIBLE_RATIO = 0.70f; - if ((g.NavMoveRequestFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) && window->ClipRect.Overlaps(nav_bb)) - if (ImClamp(nav_bb.Max.y, window->ClipRect.Min.y, window->ClipRect.Max.y) - ImClamp(nav_bb.Min.y, window->ClipRect.Min.y, window->ClipRect.Max.y) >= (nav_bb.Max.y - nav_bb.Min.y) * VISIBLE_RATIO) - if (NavScoreItem(&g.NavMoveResultLocalVisibleSet, nav_bb)) - { - result = &g.NavMoveResultLocalVisibleSet; - result->Window = window; - result->ID = id; - result->FocusScopeId = window->DC.NavFocusScopeIdCurrent; - result->RectRel = nav_bb_rel; - } - } - - // Update window-relative bounding box of navigated item - if (g.NavId == id) - { - g.NavWindow = window; // Always refresh g.NavWindow, because some operations such as FocusItem() don't have a window. - g.NavLayer = window->DC.NavLayerCurrent; - g.NavFocusScopeId = window->DC.NavFocusScopeIdCurrent; - g.NavIdIsAlive = true; - g.NavIdTabCounter = window->DC.FocusCounterTabStop; - window->NavRectRel[window->DC.NavLayerCurrent] = nav_bb_rel; // Store item bounding box (relative to window position) - } -} - -bool ImGui::NavMoveRequestButNoResultYet() -{ - ImGuiContext& g = *GImGui; - return g.NavMoveRequest && g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0; -} - -void ImGui::NavMoveRequestCancel() -{ - ImGuiContext& g = *GImGui; - g.NavMoveRequest = false; - NavUpdateAnyRequestFlag(); -} - -void ImGui::NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect& bb_rel, ImGuiNavMoveFlags move_flags) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.NavMoveRequestForward == ImGuiNavForward_None); - NavMoveRequestCancel(); - g.NavMoveDir = move_dir; - g.NavMoveClipDir = clip_dir; - g.NavMoveRequestForward = ImGuiNavForward_ForwardQueued; - g.NavMoveRequestFlags = move_flags; - g.NavWindow->NavRectRel[g.NavLayer] = bb_rel; -} - -void ImGui::NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags move_flags) -{ - ImGuiContext& g = *GImGui; - if (g.NavWindow != window || !NavMoveRequestButNoResultYet() || g.NavMoveRequestForward != ImGuiNavForward_None || g.NavLayer != ImGuiNavLayer_Main) - return; - IM_ASSERT(move_flags != 0); // No points calling this with no wrapping - ImRect bb_rel = window->NavRectRel[0]; - - ImGuiDir clip_dir = g.NavMoveDir; - if (g.NavMoveDir == ImGuiDir_Left && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) - { - bb_rel.Min.x = bb_rel.Max.x = ImMax(window->SizeFull.x, window->ContentSize.x + window->WindowPadding.x * 2.0f) - window->Scroll.x; - if (move_flags & ImGuiNavMoveFlags_WrapX) { bb_rel.TranslateY(-bb_rel.GetHeight()); clip_dir = ImGuiDir_Up; } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); - } - if (g.NavMoveDir == ImGuiDir_Right && (move_flags & (ImGuiNavMoveFlags_WrapX | ImGuiNavMoveFlags_LoopX))) - { - bb_rel.Min.x = bb_rel.Max.x = -window->Scroll.x; - if (move_flags & ImGuiNavMoveFlags_WrapX) { bb_rel.TranslateY(+bb_rel.GetHeight()); clip_dir = ImGuiDir_Down; } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); - } - if (g.NavMoveDir == ImGuiDir_Up && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) - { - bb_rel.Min.y = bb_rel.Max.y = ImMax(window->SizeFull.y, window->ContentSize.y + window->WindowPadding.y * 2.0f) - window->Scroll.y; - if (move_flags & ImGuiNavMoveFlags_WrapY) { bb_rel.TranslateX(-bb_rel.GetWidth()); clip_dir = ImGuiDir_Left; } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); - } - if (g.NavMoveDir == ImGuiDir_Down && (move_flags & (ImGuiNavMoveFlags_WrapY | ImGuiNavMoveFlags_LoopY))) - { - bb_rel.Min.y = bb_rel.Max.y = -window->Scroll.y; - if (move_flags & ImGuiNavMoveFlags_WrapY) { bb_rel.TranslateX(+bb_rel.GetWidth()); clip_dir = ImGuiDir_Right; } - NavMoveRequestForward(g.NavMoveDir, clip_dir, bb_rel, move_flags); - } -} - -// FIXME: This could be replaced by updating a frame number in each window when (window == NavWindow) and (NavLayer == 0). -// This way we could find the last focused window among our children. It would be much less confusing this way? -static void ImGui::NavSaveLastChildNavWindowIntoParent(ImGuiWindow* nav_window) -{ - ImGuiWindow* parent_window = nav_window; - while (parent_window && (parent_window->Flags & ImGuiWindowFlags_ChildWindow) != 0 && (parent_window->Flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_ChildMenu)) == 0) - parent_window = parent_window->ParentWindow; - if (parent_window && parent_window != nav_window) - parent_window->NavLastChildNavWindow = nav_window; -} - -// Restore the last focused child. -// Call when we are expected to land on the Main Layer (0) after FocusWindow() -static ImGuiWindow* ImGui::NavRestoreLastChildNavWindow(ImGuiWindow* window) -{ - return window->NavLastChildNavWindow ? window->NavLastChildNavWindow : window; -} - -static void NavRestoreLayer(ImGuiNavLayer layer) -{ - ImGuiContext& g = *GImGui; - g.NavLayer = layer; - if (layer == 0) - g.NavWindow = ImGui::NavRestoreLastChildNavWindow(g.NavWindow); - ImGuiWindow* window = g.NavWindow; - if (layer == 0 && window->NavLastIds[0] != 0) - ImGui::SetNavIDWithRectRel(window->NavLastIds[0], layer, 0, window->NavRectRel[0]); - else - ImGui::NavInitWindow(window, true); -} - -static inline void ImGui::NavUpdateAnyRequestFlag() -{ - ImGuiContext& g = *GImGui; - g.NavAnyRequest = g.NavMoveRequest || g.NavInitRequest || (IMGUI_DEBUG_NAV_SCORING && g.NavWindow != NULL); - if (g.NavAnyRequest) - IM_ASSERT(g.NavWindow != NULL); -} - -// This needs to be called before we submit any widget (aka in or before Begin) -void ImGui::NavInitWindow(ImGuiWindow* window, bool force_reinit) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(window == g.NavWindow); - bool init_for_nav = false; - if (!(window->Flags & ImGuiWindowFlags_NoNavInputs)) - if (!(window->Flags & ImGuiWindowFlags_ChildWindow) || (window->Flags & ImGuiWindowFlags_Popup) || (window->NavLastIds[0] == 0) || force_reinit) - init_for_nav = true; - //IMGUI_DEBUG_LOG("[Nav] NavInitWindow() init_for_nav=%d, window=\"%s\", layer=%d\n", init_for_nav, window->Name, g.NavLayer); - if (init_for_nav) - { - SetNavID(0, g.NavLayer, 0); - g.NavInitRequest = true; - g.NavInitRequestFromMove = false; - g.NavInitResultId = 0; - g.NavInitResultRectRel = ImRect(); - NavUpdateAnyRequestFlag(); - } - else - { - g.NavId = window->NavLastIds[0]; - g.NavFocusScopeId = 0; - } -} - -static ImVec2 ImGui::NavCalcPreferredRefPos() -{ - ImGuiContext& g = *GImGui; - if (g.NavDisableHighlight || !g.NavDisableMouseHover || !g.NavWindow) - { - // Mouse (we need a fallback in case the mouse becomes invalid after being used) - if (IsMousePosValid(&g.IO.MousePos)) - return g.IO.MousePos; - return g.LastValidMousePos; - } - else - { - // When navigation is active and mouse is disabled, decide on an arbitrary position around the bottom left of the currently navigated item. - const ImRect& rect_rel = g.NavWindow->NavRectRel[g.NavLayer]; - ImVec2 pos = g.NavWindow->Pos + ImVec2(rect_rel.Min.x + ImMin(g.Style.FramePadding.x * 4, rect_rel.GetWidth()), rect_rel.Max.y - ImMin(g.Style.FramePadding.y, rect_rel.GetHeight())); - ImRect visible_rect = GetViewportRect(); - return ImFloor(ImClamp(pos, visible_rect.Min, visible_rect.Max)); // ImFloor() is important because non-integer mouse position application in back-end might be lossy and result in undesirable non-zero delta. - } -} - -float ImGui::GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode) -{ - ImGuiContext& g = *GImGui; - if (mode == ImGuiInputReadMode_Down) - return g.IO.NavInputs[n]; // Instant, read analog input (0.0f..1.0f, as provided by user) - - const float t = g.IO.NavInputsDownDuration[n]; - if (t < 0.0f && mode == ImGuiInputReadMode_Released) // Return 1.0f when just released, no repeat, ignore analog input. - return (g.IO.NavInputsDownDurationPrev[n] >= 0.0f ? 1.0f : 0.0f); - if (t < 0.0f) - return 0.0f; - if (mode == ImGuiInputReadMode_Pressed) // Return 1.0f when just pressed, no repeat, ignore analog input. - return (t == 0.0f) ? 1.0f : 0.0f; - if (mode == ImGuiInputReadMode_Repeat) - return (float)CalcTypematicRepeatAmount(t - g.IO.DeltaTime, t, g.IO.KeyRepeatDelay * 0.72f, g.IO.KeyRepeatRate * 0.80f); - if (mode == ImGuiInputReadMode_RepeatSlow) - return (float)CalcTypematicRepeatAmount(t - g.IO.DeltaTime, t, g.IO.KeyRepeatDelay * 1.25f, g.IO.KeyRepeatRate * 2.00f); - if (mode == ImGuiInputReadMode_RepeatFast) - return (float)CalcTypematicRepeatAmount(t - g.IO.DeltaTime, t, g.IO.KeyRepeatDelay * 0.72f, g.IO.KeyRepeatRate * 0.30f); - return 0.0f; -} - -ImVec2 ImGui::GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor, float fast_factor) -{ - ImVec2 delta(0.0f, 0.0f); - if (dir_sources & ImGuiNavDirSourceFlags_Keyboard) - delta += ImVec2(GetNavInputAmount(ImGuiNavInput_KeyRight_, mode) - GetNavInputAmount(ImGuiNavInput_KeyLeft_, mode), GetNavInputAmount(ImGuiNavInput_KeyDown_, mode) - GetNavInputAmount(ImGuiNavInput_KeyUp_, mode)); - if (dir_sources & ImGuiNavDirSourceFlags_PadDPad) - delta += ImVec2(GetNavInputAmount(ImGuiNavInput_DpadRight, mode) - GetNavInputAmount(ImGuiNavInput_DpadLeft, mode), GetNavInputAmount(ImGuiNavInput_DpadDown, mode) - GetNavInputAmount(ImGuiNavInput_DpadUp, mode)); - if (dir_sources & ImGuiNavDirSourceFlags_PadLStick) - delta += ImVec2(GetNavInputAmount(ImGuiNavInput_LStickRight, mode) - GetNavInputAmount(ImGuiNavInput_LStickLeft, mode), GetNavInputAmount(ImGuiNavInput_LStickDown, mode) - GetNavInputAmount(ImGuiNavInput_LStickUp, mode)); - if (slow_factor != 0.0f && IsNavInputDown(ImGuiNavInput_TweakSlow)) - delta *= slow_factor; - if (fast_factor != 0.0f && IsNavInputDown(ImGuiNavInput_TweakFast)) - delta *= fast_factor; - return delta; -} - -static void ImGui::NavUpdate() -{ - ImGuiContext& g = *GImGui; - g.IO.WantSetMousePos = false; -#if 0 - if (g.NavScoringCount > 0) IMGUI_DEBUG_LOG("NavScoringCount %d for '%s' layer %d (Init:%d, Move:%d)\n", g.FrameCount, g.NavScoringCount, g.NavWindow ? g.NavWindow->Name : "NULL", g.NavLayer, g.NavInitRequest || g.NavInitResultId != 0, g.NavMoveRequest); -#endif - - // Set input source as Gamepad when buttons are pressed (as some features differs when used with Gamepad vs Keyboard) - // (do it before we map Keyboard input!) - bool nav_keyboard_active = (g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) != 0; - bool nav_gamepad_active = (g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad) != 0 && (g.IO.BackendFlags & ImGuiBackendFlags_HasGamepad) != 0; - if (nav_gamepad_active) - if (g.IO.NavInputs[ImGuiNavInput_Activate] > 0.0f || g.IO.NavInputs[ImGuiNavInput_Input] > 0.0f || g.IO.NavInputs[ImGuiNavInput_Cancel] > 0.0f || g.IO.NavInputs[ImGuiNavInput_Menu] > 0.0f) - g.NavInputSource = ImGuiInputSource_NavGamepad; - - // Update Keyboard->Nav inputs mapping - if (nav_keyboard_active) - { - #define NAV_MAP_KEY(_KEY, _NAV_INPUT) do { if (IsKeyDown(g.IO.KeyMap[_KEY])) { g.IO.NavInputs[_NAV_INPUT] = 1.0f; g.NavInputSource = ImGuiInputSource_NavKeyboard; } } while (0) - NAV_MAP_KEY(ImGuiKey_Space, ImGuiNavInput_Activate ); - NAV_MAP_KEY(ImGuiKey_Enter, ImGuiNavInput_Input ); - NAV_MAP_KEY(ImGuiKey_Escape, ImGuiNavInput_Cancel ); - NAV_MAP_KEY(ImGuiKey_LeftArrow, ImGuiNavInput_KeyLeft_ ); - NAV_MAP_KEY(ImGuiKey_RightArrow,ImGuiNavInput_KeyRight_); - NAV_MAP_KEY(ImGuiKey_UpArrow, ImGuiNavInput_KeyUp_ ); - NAV_MAP_KEY(ImGuiKey_DownArrow, ImGuiNavInput_KeyDown_ ); - if (g.IO.KeyCtrl) - g.IO.NavInputs[ImGuiNavInput_TweakSlow] = 1.0f; - if (g.IO.KeyShift) - g.IO.NavInputs[ImGuiNavInput_TweakFast] = 1.0f; - if (g.IO.KeyAlt && !g.IO.KeyCtrl) // AltGR is Alt+Ctrl, also even on keyboards without AltGR we don't want Alt+Ctrl to open menu. - g.IO.NavInputs[ImGuiNavInput_KeyMenu_] = 1.0f; - #undef NAV_MAP_KEY - } - memcpy(g.IO.NavInputsDownDurationPrev, g.IO.NavInputsDownDuration, sizeof(g.IO.NavInputsDownDuration)); - for (int i = 0; i < IM_ARRAYSIZE(g.IO.NavInputs); i++) - g.IO.NavInputsDownDuration[i] = (g.IO.NavInputs[i] > 0.0f) ? (g.IO.NavInputsDownDuration[i] < 0.0f ? 0.0f : g.IO.NavInputsDownDuration[i] + g.IO.DeltaTime) : -1.0f; - - // Process navigation init request (select first/default focus) - // In very rare cases g.NavWindow may be null (e.g. clearing focus after requesting an init request, which does happen when releasing Alt while clicking on void) - if (g.NavInitResultId != 0 && (!g.NavDisableHighlight || g.NavInitRequestFromMove) && g.NavWindow) - { - // Apply result from previous navigation init request (will typically select the first item, unless SetItemDefaultFocus() has been called) - //IMGUI_DEBUG_LOG("[Nav] Apply NavInitRequest result: 0x%08X Layer %d in \"%s\"\n", g.NavInitResultId, g.NavLayer, g.NavWindow->Name); - if (g.NavInitRequestFromMove) - SetNavIDWithRectRel(g.NavInitResultId, g.NavLayer, 0, g.NavInitResultRectRel); - else - SetNavID(g.NavInitResultId, g.NavLayer, 0); - g.NavWindow->NavRectRel[g.NavLayer] = g.NavInitResultRectRel; - } - g.NavInitRequest = false; - g.NavInitRequestFromMove = false; - g.NavInitResultId = 0; - g.NavJustMovedToId = 0; - - // Process navigation move request - if (g.NavMoveRequest) - NavUpdateMoveResult(); - - // When a forwarded move request failed, we restore the highlight that we disabled during the forward frame - if (g.NavMoveRequestForward == ImGuiNavForward_ForwardActive) - { - IM_ASSERT(g.NavMoveRequest); - if (g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0) - g.NavDisableHighlight = false; - g.NavMoveRequestForward = ImGuiNavForward_None; - } - - // Apply application mouse position movement, after we had a chance to process move request result. - if (g.NavMousePosDirty && g.NavIdIsAlive) - { - // Set mouse position given our knowledge of the navigated item position from last frame - if ((g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) && (g.IO.BackendFlags & ImGuiBackendFlags_HasSetMousePos)) - { - if (!g.NavDisableHighlight && g.NavDisableMouseHover && g.NavWindow) - { - g.IO.MousePos = g.IO.MousePosPrev = NavCalcPreferredRefPos(); - g.IO.WantSetMousePos = true; - } - } - g.NavMousePosDirty = false; - } - g.NavIdIsAlive = false; - g.NavJustTabbedId = 0; - IM_ASSERT(g.NavLayer == 0 || g.NavLayer == 1); - - // Store our return window (for returning from Layer 1 to Layer 0) and clear it as soon as we step back in our own Layer 0 - if (g.NavWindow) - NavSaveLastChildNavWindowIntoParent(g.NavWindow); - if (g.NavWindow && g.NavWindow->NavLastChildNavWindow != NULL && g.NavLayer == ImGuiNavLayer_Main) - g.NavWindow->NavLastChildNavWindow = NULL; - - // Update CTRL+TAB and Windowing features (hold Square to move/resize/etc.) - NavUpdateWindowing(); - - // Set output flags for user application - g.IO.NavActive = (nav_keyboard_active || nav_gamepad_active) && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs); - g.IO.NavVisible = (g.IO.NavActive && g.NavId != 0 && !g.NavDisableHighlight) || (g.NavWindowingTarget != NULL); - - // Process NavCancel input (to close a popup, get back to parent, clear focus) - if (IsNavInputTest(ImGuiNavInput_Cancel, ImGuiInputReadMode_Pressed)) - { - if (g.ActiveId != 0) - { - if (!IsActiveIdUsingNavInput(ImGuiNavInput_Cancel)) - ClearActiveID(); - } - else if (g.NavWindow && (g.NavWindow->Flags & ImGuiWindowFlags_ChildWindow) && !(g.NavWindow->Flags & ImGuiWindowFlags_Popup) && g.NavWindow->ParentWindow) - { - // Exit child window - ImGuiWindow* child_window = g.NavWindow; - ImGuiWindow* parent_window = g.NavWindow->ParentWindow; - IM_ASSERT(child_window->ChildId != 0); - FocusWindow(parent_window); - SetNavID(child_window->ChildId, 0, 0); - // Reassigning with same value, we're being explicit here. - g.NavIdIsAlive = false; // -V1048 - if (g.NavDisableMouseHover) - g.NavMousePosDirty = true; - } - else if (g.OpenPopupStack.Size > 0) - { - // Close open popup/menu - if (!(g.OpenPopupStack.back().Window->Flags & ImGuiWindowFlags_Modal)) - ClosePopupToLevel(g.OpenPopupStack.Size - 1, true); - } - else if (g.NavLayer != ImGuiNavLayer_Main) - { - // Leave the "menu" layer - NavRestoreLayer(ImGuiNavLayer_Main); - } - else - { - // Clear NavLastId for popups but keep it for regular child window so we can leave one and come back where we were - if (g.NavWindow && ((g.NavWindow->Flags & ImGuiWindowFlags_Popup) || !(g.NavWindow->Flags & ImGuiWindowFlags_ChildWindow))) - g.NavWindow->NavLastIds[0] = 0; - g.NavId = g.NavFocusScopeId = 0; - } - } - - // Process manual activation request - g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavInputId = 0; - if (g.NavId != 0 && !g.NavDisableHighlight && !g.NavWindowingTarget && g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) - { - bool activate_down = IsNavInputDown(ImGuiNavInput_Activate); - bool activate_pressed = activate_down && IsNavInputTest(ImGuiNavInput_Activate, ImGuiInputReadMode_Pressed); - if (g.ActiveId == 0 && activate_pressed) - g.NavActivateId = g.NavId; - if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && activate_down) - g.NavActivateDownId = g.NavId; - if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && activate_pressed) - g.NavActivatePressedId = g.NavId; - if ((g.ActiveId == 0 || g.ActiveId == g.NavId) && IsNavInputTest(ImGuiNavInput_Input, ImGuiInputReadMode_Pressed)) - g.NavInputId = g.NavId; - } - if (g.NavWindow && (g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) - g.NavDisableHighlight = true; - if (g.NavActivateId != 0) - IM_ASSERT(g.NavActivateDownId == g.NavActivateId); - g.NavMoveRequest = false; - - // Process programmatic activation request - if (g.NavNextActivateId != 0) - g.NavActivateId = g.NavActivateDownId = g.NavActivatePressedId = g.NavInputId = g.NavNextActivateId; - g.NavNextActivateId = 0; - - // Initiate directional inputs request - if (g.NavMoveRequestForward == ImGuiNavForward_None) - { - g.NavMoveDir = ImGuiDir_None; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_None; - if (g.NavWindow && !g.NavWindowingTarget && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs)) - { - const ImGuiInputReadMode read_mode = ImGuiInputReadMode_Repeat; - if (!IsActiveIdUsingNavDir(ImGuiDir_Left) && (IsNavInputTest(ImGuiNavInput_DpadLeft, read_mode) || IsNavInputTest(ImGuiNavInput_KeyLeft_, read_mode))) { g.NavMoveDir = ImGuiDir_Left; } - if (!IsActiveIdUsingNavDir(ImGuiDir_Right) && (IsNavInputTest(ImGuiNavInput_DpadRight, read_mode) || IsNavInputTest(ImGuiNavInput_KeyRight_, read_mode))) { g.NavMoveDir = ImGuiDir_Right; } - if (!IsActiveIdUsingNavDir(ImGuiDir_Up) && (IsNavInputTest(ImGuiNavInput_DpadUp, read_mode) || IsNavInputTest(ImGuiNavInput_KeyUp_, read_mode))) { g.NavMoveDir = ImGuiDir_Up; } - if (!IsActiveIdUsingNavDir(ImGuiDir_Down) && (IsNavInputTest(ImGuiNavInput_DpadDown, read_mode) || IsNavInputTest(ImGuiNavInput_KeyDown_, read_mode))) { g.NavMoveDir = ImGuiDir_Down; } - } - g.NavMoveClipDir = g.NavMoveDir; - } - else - { - // Forwarding previous request (which has been modified, e.g. wrap around menus rewrite the requests with a starting rectangle at the other side of the window) - // (Preserve g.NavMoveRequestFlags, g.NavMoveClipDir which were set by the NavMoveRequestForward() function) - IM_ASSERT(g.NavMoveDir != ImGuiDir_None && g.NavMoveClipDir != ImGuiDir_None); - IM_ASSERT(g.NavMoveRequestForward == ImGuiNavForward_ForwardQueued); - g.NavMoveRequestForward = ImGuiNavForward_ForwardActive; - } - - // Update PageUp/PageDown/Home/End scroll - // FIXME-NAV: Consider enabling those keys even without the master ImGuiConfigFlags_NavEnableKeyboard flag? - float nav_scoring_rect_offset_y = 0.0f; - if (nav_keyboard_active) - nav_scoring_rect_offset_y = NavUpdatePageUpPageDown(); - - // If we initiate a movement request and have no current NavId, we initiate a InitDefautRequest that will be used as a fallback if the direction fails to find a match - if (g.NavMoveDir != ImGuiDir_None) - { - g.NavMoveRequest = true; - g.NavMoveRequestKeyMods = g.IO.KeyMods; - g.NavMoveDirLast = g.NavMoveDir; - } - if (g.NavMoveRequest && g.NavId == 0) - { - //IMGUI_DEBUG_LOG("[Nav] NavInitRequest from move, window \"%s\", layer=%d\n", g.NavWindow->Name, g.NavLayer); - g.NavInitRequest = g.NavInitRequestFromMove = true; - // Reassigning with same value, we're being explicit here. - g.NavInitResultId = 0; // -V1048 - g.NavDisableHighlight = false; - } - NavUpdateAnyRequestFlag(); - - // Scrolling - if (g.NavWindow && !(g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) && !g.NavWindowingTarget) - { - // *Fallback* manual-scroll with Nav directional keys when window has no navigable item - ImGuiWindow* window = g.NavWindow; - const float scroll_speed = IM_ROUND(window->CalcFontSize() * 100 * g.IO.DeltaTime); // We need round the scrolling speed because sub-pixel scroll isn't reliably supported. - if (window->DC.NavLayerActiveMask == 0x00 && window->DC.NavHasScroll && g.NavMoveRequest) - { - if (g.NavMoveDir == ImGuiDir_Left || g.NavMoveDir == ImGuiDir_Right) - SetScrollX(window, ImFloor(window->Scroll.x + ((g.NavMoveDir == ImGuiDir_Left) ? -1.0f : +1.0f) * scroll_speed)); - if (g.NavMoveDir == ImGuiDir_Up || g.NavMoveDir == ImGuiDir_Down) - SetScrollY(window, ImFloor(window->Scroll.y + ((g.NavMoveDir == ImGuiDir_Up) ? -1.0f : +1.0f) * scroll_speed)); - } - - // *Normal* Manual scroll with NavScrollXXX keys - // Next movement request will clamp the NavId reference rectangle to the visible area, so navigation will resume within those bounds. - ImVec2 scroll_dir = GetNavInputAmount2d(ImGuiNavDirSourceFlags_PadLStick, ImGuiInputReadMode_Down, 1.0f/10.0f, 10.0f); - if (scroll_dir.x != 0.0f && window->ScrollbarX) - { - SetScrollX(window, ImFloor(window->Scroll.x + scroll_dir.x * scroll_speed)); - g.NavMoveFromClampedRefRect = true; - } - if (scroll_dir.y != 0.0f) - { - SetScrollY(window, ImFloor(window->Scroll.y + scroll_dir.y * scroll_speed)); - g.NavMoveFromClampedRefRect = true; - } - } - - // Reset search results - g.NavMoveResultLocal.Clear(); - g.NavMoveResultLocalVisibleSet.Clear(); - g.NavMoveResultOther.Clear(); - - // When we have manually scrolled (without using navigation) and NavId becomes out of bounds, we project its bounding box to the visible area to restart navigation within visible items - if (g.NavMoveRequest && g.NavMoveFromClampedRefRect && g.NavLayer == ImGuiNavLayer_Main) - { - ImGuiWindow* window = g.NavWindow; - ImRect window_rect_rel(window->InnerRect.Min - window->Pos - ImVec2(1,1), window->InnerRect.Max - window->Pos + ImVec2(1,1)); - if (!window_rect_rel.Contains(window->NavRectRel[g.NavLayer])) - { - float pad = window->CalcFontSize() * 0.5f; - window_rect_rel.Expand(ImVec2(-ImMin(window_rect_rel.GetWidth(), pad), -ImMin(window_rect_rel.GetHeight(), pad))); // Terrible approximation for the intent of starting navigation from first fully visible item - window->NavRectRel[g.NavLayer].ClipWith(window_rect_rel); - g.NavId = g.NavFocusScopeId = 0; - } - g.NavMoveFromClampedRefRect = false; - } - - // For scoring we use a single segment on the left side our current item bounding box (not touching the edge to avoid box overlap with zero-spaced items) - ImRect nav_rect_rel = (g.NavWindow && !g.NavWindow->NavRectRel[g.NavLayer].IsInverted()) ? g.NavWindow->NavRectRel[g.NavLayer] : ImRect(0,0,0,0); - g.NavScoringRect = g.NavWindow ? ImRect(g.NavWindow->Pos + nav_rect_rel.Min, g.NavWindow->Pos + nav_rect_rel.Max) : GetViewportRect(); - g.NavScoringRect.TranslateY(nav_scoring_rect_offset_y); - g.NavScoringRect.Min.x = ImMin(g.NavScoringRect.Min.x + 1.0f, g.NavScoringRect.Max.x); - g.NavScoringRect.Max.x = g.NavScoringRect.Min.x; - IM_ASSERT(!g.NavScoringRect.IsInverted()); // Ensure if we have a finite, non-inverted bounding box here will allows us to remove extraneous ImFabs() calls in NavScoreItem(). - //GetForegroundDrawList()->AddRect(g.NavScoringRectScreen.Min, g.NavScoringRectScreen.Max, IM_COL32(255,200,0,255)); // [DEBUG] - g.NavScoringCount = 0; -#if IMGUI_DEBUG_NAV_RECTS - if (g.NavWindow) - { - ImDrawList* draw_list = GetForegroundDrawList(g.NavWindow); - if (1) { for (int layer = 0; layer < 2; layer++) draw_list->AddRect(g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Min, g.NavWindow->Pos + g.NavWindow->NavRectRel[layer].Max, IM_COL32(255,200,0,255)); } // [DEBUG] - if (1) { ImU32 col = (!g.NavWindow->Hidden) ? IM_COL32(255,0,255,255) : IM_COL32(255,0,0,255); ImVec2 p = NavCalcPreferredRefPos(); char buf[32]; ImFormatString(buf, 32, "%d", g.NavLayer); draw_list->AddCircleFilled(p, 3.0f, col); draw_list->AddText(NULL, 13.0f, p + ImVec2(8,-4), col, buf); } - } -#endif -} - -// Apply result from previous frame navigation directional move request -static void ImGui::NavUpdateMoveResult() -{ - ImGuiContext& g = *GImGui; - if (g.NavMoveResultLocal.ID == 0 && g.NavMoveResultOther.ID == 0) - { - // In a situation when there is no results but NavId != 0, re-enable the Navigation highlight (because g.NavId is not considered as a possible result) - if (g.NavId != 0) - { - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; - } - return; - } - - // Select which result to use - ImGuiNavMoveResult* result = (g.NavMoveResultLocal.ID != 0) ? &g.NavMoveResultLocal : &g.NavMoveResultOther; - - // PageUp/PageDown behavior first jumps to the bottom/top mostly visible item, _otherwise_ use the result from the previous/next page. - if (g.NavMoveRequestFlags & ImGuiNavMoveFlags_AlsoScoreVisibleSet) - if (g.NavMoveResultLocalVisibleSet.ID != 0 && g.NavMoveResultLocalVisibleSet.ID != g.NavId) - result = &g.NavMoveResultLocalVisibleSet; - - // Maybe entering a flattened child from the outside? In this case solve the tie using the regular scoring rules. - if (result != &g.NavMoveResultOther && g.NavMoveResultOther.ID != 0 && g.NavMoveResultOther.Window->ParentWindow == g.NavWindow) - if ((g.NavMoveResultOther.DistBox < result->DistBox) || (g.NavMoveResultOther.DistBox == result->DistBox && g.NavMoveResultOther.DistCenter < result->DistCenter)) - result = &g.NavMoveResultOther; - IM_ASSERT(g.NavWindow && result->Window); - - // Scroll to keep newly navigated item fully into view. - if (g.NavLayer == ImGuiNavLayer_Main) - { - ImVec2 delta_scroll; - if (g.NavMoveRequestFlags & ImGuiNavMoveFlags_ScrollToEdge) - { - float scroll_target = (g.NavMoveDir == ImGuiDir_Up) ? result->Window->ScrollMax.y : 0.0f; - delta_scroll.y = result->Window->Scroll.y - scroll_target; - SetScrollY(result->Window, scroll_target); - } - else - { - ImRect rect_abs = ImRect(result->RectRel.Min + result->Window->Pos, result->RectRel.Max + result->Window->Pos); - delta_scroll = ScrollToBringRectIntoView(result->Window, rect_abs); - } - - // Offset our result position so mouse position can be applied immediately after in NavUpdate() - result->RectRel.TranslateX(-delta_scroll.x); - result->RectRel.TranslateY(-delta_scroll.y); - } - - ClearActiveID(); - g.NavWindow = result->Window; - if (g.NavId != result->ID) - { - // Don't set NavJustMovedToId if just landed on the same spot (which may happen with ImGuiNavMoveFlags_AllowCurrentNavId) - g.NavJustMovedToId = result->ID; - g.NavJustMovedToFocusScopeId = result->FocusScopeId; - g.NavJustMovedToKeyMods = g.NavMoveRequestKeyMods; - } - SetNavIDWithRectRel(result->ID, g.NavLayer, result->FocusScopeId, result->RectRel); - g.NavMoveFromClampedRefRect = false; -} - -// Handle PageUp/PageDown/Home/End keys -static float ImGui::NavUpdatePageUpPageDown() -{ - ImGuiContext& g = *GImGui; - if (g.NavMoveDir != ImGuiDir_None || g.NavWindow == NULL) - return 0.0f; - if ((g.NavWindow->Flags & ImGuiWindowFlags_NoNavInputs) || g.NavWindowingTarget != NULL || g.NavLayer != ImGuiNavLayer_Main) - return 0.0f; - - ImGuiWindow* window = g.NavWindow; - const bool page_up_held = IsKeyDown(g.IO.KeyMap[ImGuiKey_PageUp]) && !IsActiveIdUsingKey(ImGuiKey_PageUp); - const bool page_down_held = IsKeyDown(g.IO.KeyMap[ImGuiKey_PageDown]) && !IsActiveIdUsingKey(ImGuiKey_PageDown); - const bool home_pressed = IsKeyPressed(g.IO.KeyMap[ImGuiKey_Home]) && !IsActiveIdUsingKey(ImGuiKey_Home); - const bool end_pressed = IsKeyPressed(g.IO.KeyMap[ImGuiKey_End]) && !IsActiveIdUsingKey(ImGuiKey_End); - if (page_up_held != page_down_held || home_pressed != end_pressed) // If either (not both) are pressed - { - if (window->DC.NavLayerActiveMask == 0x00 && window->DC.NavHasScroll) - { - // Fallback manual-scroll when window has no navigable item - if (IsKeyPressed(g.IO.KeyMap[ImGuiKey_PageUp], true)) - SetScrollY(window, window->Scroll.y - window->InnerRect.GetHeight()); - else if (IsKeyPressed(g.IO.KeyMap[ImGuiKey_PageDown], true)) - SetScrollY(window, window->Scroll.y + window->InnerRect.GetHeight()); - else if (home_pressed) - SetScrollY(window, 0.0f); - else if (end_pressed) - SetScrollY(window, window->ScrollMax.y); - } - else - { - ImRect& nav_rect_rel = window->NavRectRel[g.NavLayer]; - const float page_offset_y = ImMax(0.0f, window->InnerRect.GetHeight() - window->CalcFontSize() * 1.0f + nav_rect_rel.GetHeight()); - float nav_scoring_rect_offset_y = 0.0f; - if (IsKeyPressed(g.IO.KeyMap[ImGuiKey_PageUp], true)) - { - nav_scoring_rect_offset_y = -page_offset_y; - g.NavMoveDir = ImGuiDir_Down; // Because our scoring rect is offset up, we request the down direction (so we can always land on the last item) - g.NavMoveClipDir = ImGuiDir_Up; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; - } - else if (IsKeyPressed(g.IO.KeyMap[ImGuiKey_PageDown], true)) - { - nav_scoring_rect_offset_y = +page_offset_y; - g.NavMoveDir = ImGuiDir_Up; // Because our scoring rect is offset down, we request the up direction (so we can always land on the last item) - g.NavMoveClipDir = ImGuiDir_Down; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_AlsoScoreVisibleSet; - } - else if (home_pressed) - { - // FIXME-NAV: handling of Home/End is assuming that the top/bottom most item will be visible with Scroll.y == 0/ScrollMax.y - // Scrolling will be handled via the ImGuiNavMoveFlags_ScrollToEdge flag, we don't scroll immediately to avoid scrolling happening before nav result. - // Preserve current horizontal position if we have any. - nav_rect_rel.Min.y = nav_rect_rel.Max.y = -window->Scroll.y; - if (nav_rect_rel.IsInverted()) - nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; - g.NavMoveDir = ImGuiDir_Down; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdge; - } - else if (end_pressed) - { - nav_rect_rel.Min.y = nav_rect_rel.Max.y = window->ScrollMax.y + window->SizeFull.y - window->Scroll.y; - if (nav_rect_rel.IsInverted()) - nav_rect_rel.Min.x = nav_rect_rel.Max.x = 0.0f; - g.NavMoveDir = ImGuiDir_Up; - g.NavMoveRequestFlags = ImGuiNavMoveFlags_AllowCurrentNavId | ImGuiNavMoveFlags_ScrollToEdge; - } - return nav_scoring_rect_offset_y; - } - } - return 0.0f; -} - -static int ImGui::FindWindowFocusIndex(ImGuiWindow* window) // FIXME-OPT O(N) -{ - ImGuiContext& g = *GImGui; - for (int i = g.WindowsFocusOrder.Size-1; i >= 0; i--) - if (g.WindowsFocusOrder[i] == window) - return i; - return -1; -} - -static ImGuiWindow* FindWindowNavFocusable(int i_start, int i_stop, int dir) // FIXME-OPT O(N) -{ - ImGuiContext& g = *GImGui; - for (int i = i_start; i >= 0 && i < g.WindowsFocusOrder.Size && i != i_stop; i += dir) - if (ImGui::IsWindowNavFocusable(g.WindowsFocusOrder[i])) - return g.WindowsFocusOrder[i]; - return NULL; -} - -static void NavUpdateWindowingHighlightWindow(int focus_change_dir) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.NavWindowingTarget); - if (g.NavWindowingTarget->Flags & ImGuiWindowFlags_Modal) - return; - - const int i_current = ImGui::FindWindowFocusIndex(g.NavWindowingTarget); - ImGuiWindow* window_target = FindWindowNavFocusable(i_current + focus_change_dir, -INT_MAX, focus_change_dir); - if (!window_target) - window_target = FindWindowNavFocusable((focus_change_dir < 0) ? (g.WindowsFocusOrder.Size - 1) : 0, i_current, focus_change_dir); - if (window_target) // Don't reset windowing target if there's a single window in the list - g.NavWindowingTarget = g.NavWindowingTargetAnim = window_target; - g.NavWindowingToggleLayer = false; -} - -// Windowing management mode -// Keyboard: CTRL+Tab (change focus/move/resize), Alt (toggle menu layer) -// Gamepad: Hold Menu/Square (change focus/move/resize), Tap Menu/Square (toggle menu layer) -static void ImGui::NavUpdateWindowing() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* apply_focus_window = NULL; - bool apply_toggle_layer = false; - - ImGuiWindow* modal_window = GetTopMostPopupModal(); - if (modal_window != NULL) - { - g.NavWindowingTarget = NULL; - return; - } - - // Fade out - if (g.NavWindowingTargetAnim && g.NavWindowingTarget == NULL) - { - g.NavWindowingHighlightAlpha = ImMax(g.NavWindowingHighlightAlpha - g.IO.DeltaTime * 10.0f, 0.0f); - if (g.DimBgRatio <= 0.0f && g.NavWindowingHighlightAlpha <= 0.0f) - g.NavWindowingTargetAnim = NULL; - } - - // Start CTRL-TAB or Square+L/R window selection - bool start_windowing_with_gamepad = !g.NavWindowingTarget && IsNavInputTest(ImGuiNavInput_Menu, ImGuiInputReadMode_Pressed); - bool start_windowing_with_keyboard = !g.NavWindowingTarget && g.IO.KeyCtrl && IsKeyPressedMap(ImGuiKey_Tab) && (g.IO.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard); - if (start_windowing_with_gamepad || start_windowing_with_keyboard) - if (ImGuiWindow* window = g.NavWindow ? g.NavWindow : FindWindowNavFocusable(g.WindowsFocusOrder.Size - 1, -INT_MAX, -1)) - { - g.NavWindowingTarget = g.NavWindowingTargetAnim = window->RootWindow; // FIXME-DOCK: Will need to use RootWindowDockStop - g.NavWindowingTimer = g.NavWindowingHighlightAlpha = 0.0f; - g.NavWindowingToggleLayer = start_windowing_with_keyboard ? false : true; - g.NavInputSource = start_windowing_with_keyboard ? ImGuiInputSource_NavKeyboard : ImGuiInputSource_NavGamepad; - } - - // Gamepad update - g.NavWindowingTimer += g.IO.DeltaTime; - if (g.NavWindowingTarget && g.NavInputSource == ImGuiInputSource_NavGamepad) - { - // Highlight only appears after a brief time holding the button, so that a fast tap on PadMenu (to toggle NavLayer) doesn't add visual noise - g.NavWindowingHighlightAlpha = ImMax(g.NavWindowingHighlightAlpha, ImSaturate((g.NavWindowingTimer - NAV_WINDOWING_HIGHLIGHT_DELAY) / 0.05f)); - - // Select window to focus - const int focus_change_dir = (int)IsNavInputTest(ImGuiNavInput_FocusPrev, ImGuiInputReadMode_RepeatSlow) - (int)IsNavInputTest(ImGuiNavInput_FocusNext, ImGuiInputReadMode_RepeatSlow); - if (focus_change_dir != 0) - { - NavUpdateWindowingHighlightWindow(focus_change_dir); - g.NavWindowingHighlightAlpha = 1.0f; - } - - // Single press toggles NavLayer, long press with L/R apply actual focus on release (until then the window was merely rendered top-most) - if (!IsNavInputDown(ImGuiNavInput_Menu)) - { - g.NavWindowingToggleLayer &= (g.NavWindowingHighlightAlpha < 1.0f); // Once button was held long enough we don't consider it a tap-to-toggle-layer press anymore. - if (g.NavWindowingToggleLayer && g.NavWindow) - apply_toggle_layer = true; - else if (!g.NavWindowingToggleLayer) - apply_focus_window = g.NavWindowingTarget; - g.NavWindowingTarget = NULL; - } - } - - // Keyboard: Focus - if (g.NavWindowingTarget && g.NavInputSource == ImGuiInputSource_NavKeyboard) - { - // Visuals only appears after a brief time after pressing TAB the first time, so that a fast CTRL+TAB doesn't add visual noise - g.NavWindowingHighlightAlpha = ImMax(g.NavWindowingHighlightAlpha, ImSaturate((g.NavWindowingTimer - NAV_WINDOWING_HIGHLIGHT_DELAY) / 0.05f)); // 1.0f - if (IsKeyPressedMap(ImGuiKey_Tab, true)) - NavUpdateWindowingHighlightWindow(g.IO.KeyShift ? +1 : -1); - if (!g.IO.KeyCtrl) - apply_focus_window = g.NavWindowingTarget; - } - - // Keyboard: Press and Release ALT to toggle menu layer - // FIXME: We lack an explicit IO variable for "is the imgui window focused", so compare mouse validity to detect the common case of back-end clearing releases all keys on ALT-TAB - if (IsNavInputTest(ImGuiNavInput_KeyMenu_, ImGuiInputReadMode_Pressed)) - g.NavWindowingToggleLayer = true; - if ((g.ActiveId == 0 || g.ActiveIdAllowOverlap) && g.NavWindowingToggleLayer && IsNavInputTest(ImGuiNavInput_KeyMenu_, ImGuiInputReadMode_Released)) - if (IsMousePosValid(&g.IO.MousePos) == IsMousePosValid(&g.IO.MousePosPrev)) - apply_toggle_layer = true; - - // Move window - if (g.NavWindowingTarget && !(g.NavWindowingTarget->Flags & ImGuiWindowFlags_NoMove)) - { - ImVec2 move_delta; - if (g.NavInputSource == ImGuiInputSource_NavKeyboard && !g.IO.KeyShift) - move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard, ImGuiInputReadMode_Down); - if (g.NavInputSource == ImGuiInputSource_NavGamepad) - move_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_PadLStick, ImGuiInputReadMode_Down); - if (move_delta.x != 0.0f || move_delta.y != 0.0f) - { - const float NAV_MOVE_SPEED = 800.0f; - const float move_speed = ImFloor(NAV_MOVE_SPEED * g.IO.DeltaTime * ImMin(g.IO.DisplayFramebufferScale.x, g.IO.DisplayFramebufferScale.y)); // FIXME: Doesn't code variable framerate very well - SetWindowPos(g.NavWindowingTarget->RootWindow, g.NavWindowingTarget->RootWindow->Pos + move_delta * move_speed, ImGuiCond_Always); - g.NavDisableMouseHover = true; - MarkIniSettingsDirty(g.NavWindowingTarget); - } - } - - // Apply final focus - if (apply_focus_window && (g.NavWindow == NULL || apply_focus_window != g.NavWindow->RootWindow)) - { - ClearActiveID(); - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; - apply_focus_window = NavRestoreLastChildNavWindow(apply_focus_window); - ClosePopupsOverWindow(apply_focus_window, false); - FocusWindow(apply_focus_window); - if (apply_focus_window->NavLastIds[0] == 0) - NavInitWindow(apply_focus_window, false); - - // If the window only has a menu layer, select it directly - if (apply_focus_window->DC.NavLayerActiveMask == (1 << ImGuiNavLayer_Menu)) - g.NavLayer = ImGuiNavLayer_Menu; - } - if (apply_focus_window) - g.NavWindowingTarget = NULL; - - // Apply menu/layer toggle - if (apply_toggle_layer && g.NavWindow) - { - // Move to parent menu if necessary - ImGuiWindow* new_nav_window = g.NavWindow; - while (new_nav_window->ParentWindow - && (new_nav_window->DC.NavLayerActiveMask & (1 << ImGuiNavLayer_Menu)) == 0 - && (new_nav_window->Flags & ImGuiWindowFlags_ChildWindow) != 0 - && (new_nav_window->Flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_ChildMenu)) == 0) - new_nav_window = new_nav_window->ParentWindow; - if (new_nav_window != g.NavWindow) - { - ImGuiWindow* old_nav_window = g.NavWindow; - FocusWindow(new_nav_window); - new_nav_window->NavLastChildNavWindow = old_nav_window; - } - g.NavDisableHighlight = false; - g.NavDisableMouseHover = true; - - // When entering a regular menu bar with the Alt key, we always reinitialize the navigation ID. - const ImGuiNavLayer new_nav_layer = (g.NavWindow->DC.NavLayerActiveMask & (1 << ImGuiNavLayer_Menu)) ? (ImGuiNavLayer)((int)g.NavLayer ^ 1) : ImGuiNavLayer_Main; - NavRestoreLayer(new_nav_layer); - } -} - -// Window has already passed the IsWindowNavFocusable() -static const char* GetFallbackWindowNameForWindowingList(ImGuiWindow* window) -{ - if (window->Flags & ImGuiWindowFlags_Popup) - return "(Popup)"; - if ((window->Flags & ImGuiWindowFlags_MenuBar) && strcmp(window->Name, "##MainMenuBar") == 0) - return "(Main menu bar)"; - return "(Untitled)"; -} - -// Overlay displayed when using CTRL+TAB. Called by EndFrame(). -void ImGui::NavUpdateWindowingOverlay() -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.NavWindowingTarget != NULL); - - if (g.NavWindowingTimer < NAV_WINDOWING_LIST_APPEAR_DELAY) - return; - - if (g.NavWindowingList == NULL) - g.NavWindowingList = FindWindowByName("###NavWindowingList"); - SetNextWindowSizeConstraints(ImVec2(g.IO.DisplaySize.x * 0.20f, g.IO.DisplaySize.y * 0.20f), ImVec2(FLT_MAX, FLT_MAX)); - SetNextWindowPos(g.IO.DisplaySize * 0.5f, ImGuiCond_Always, ImVec2(0.5f, 0.5f)); - PushStyleVar(ImGuiStyleVar_WindowPadding, g.Style.WindowPadding * 2.0f); - Begin("###NavWindowingList", NULL, ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoInputs | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoSavedSettings); - for (int n = g.WindowsFocusOrder.Size - 1; n >= 0; n--) - { - ImGuiWindow* window = g.WindowsFocusOrder[n]; - if (!IsWindowNavFocusable(window)) - continue; - const char* label = window->Name; - if (label == FindRenderedTextEnd(label)) - label = GetFallbackWindowNameForWindowingList(window); - Selectable(label, g.NavWindowingTarget == window); - } - End(); - PopStyleVar(); -} - -//----------------------------------------------------------------------------- -// [SECTION] DRAG AND DROP -//----------------------------------------------------------------------------- - -void ImGui::ClearDragDrop() -{ - ImGuiContext& g = *GImGui; - g.DragDropActive = false; - g.DragDropPayload.Clear(); - g.DragDropAcceptFlags = ImGuiDragDropFlags_None; - g.DragDropAcceptIdCurr = g.DragDropAcceptIdPrev = 0; - g.DragDropAcceptIdCurrRectSurface = FLT_MAX; - g.DragDropAcceptFrameCount = -1; - - g.DragDropPayloadBufHeap.clear(); - memset(&g.DragDropPayloadBufLocal, 0, sizeof(g.DragDropPayloadBufLocal)); -} - -// Call when current ID is active. -// When this returns true you need to: a) call SetDragDropPayload() exactly once, b) you may render the payload visual/description, c) call EndDragDropSource() -bool ImGui::BeginDragDropSource(ImGuiDragDropFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - bool source_drag_active = false; - ImGuiID source_id = 0; - ImGuiID source_parent_id = 0; - ImGuiMouseButton mouse_button = ImGuiMouseButton_Left; - if (!(flags & ImGuiDragDropFlags_SourceExtern)) - { - source_id = window->DC.LastItemId; - if (source_id != 0 && g.ActiveId != source_id) // Early out for most common case - return false; - if (g.IO.MouseDown[mouse_button] == false) - return false; - - if (source_id == 0) - { - // If you want to use BeginDragDropSource() on an item with no unique identifier for interaction, such as Text() or Image(), you need to: - // A) Read the explanation below, B) Use the ImGuiDragDropFlags_SourceAllowNullID flag, C) Swallow your programmer pride. - if (!(flags & ImGuiDragDropFlags_SourceAllowNullID)) - { - IM_ASSERT(0); - return false; - } - - // Early out - if ((window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_HoveredRect) == 0 && (g.ActiveId == 0 || g.ActiveIdWindow != window)) - return false; - - // Magic fallback (=somehow reprehensible) to handle items with no assigned ID, e.g. Text(), Image() - // We build a throwaway ID based on current ID stack + relative AABB of items in window. - // THE IDENTIFIER WON'T SURVIVE ANY REPOSITIONING OF THE WIDGET, so if your widget moves your dragging operation will be canceled. - // We don't need to maintain/call ClearActiveID() as releasing the button will early out this function and trigger !ActiveIdIsAlive. - source_id = window->DC.LastItemId = window->GetIDFromRectangle(window->DC.LastItemRect); - bool is_hovered = ItemHoverable(window->DC.LastItemRect, source_id); - if (is_hovered && g.IO.MouseClicked[mouse_button]) - { - SetActiveID(source_id, window); - FocusWindow(window); - } - if (g.ActiveId == source_id) // Allow the underlying widget to display/return hovered during the mouse release frame, else we would get a flicker. - g.ActiveIdAllowOverlap = is_hovered; - } - else - { - g.ActiveIdAllowOverlap = false; - } - if (g.ActiveId != source_id) - return false; - source_parent_id = window->IDStack.back(); - source_drag_active = IsMouseDragging(mouse_button); - - // Disable navigation and key inputs while dragging - g.ActiveIdUsingNavDirMask = ~(ImU32)0; - g.ActiveIdUsingNavInputMask = ~(ImU32)0; - g.ActiveIdUsingKeyInputMask = ~(ImU64)0; - } - else - { - window = NULL; - source_id = ImHashStr("#SourceExtern"); - source_drag_active = true; - } - - if (source_drag_active) - { - if (!g.DragDropActive) - { - IM_ASSERT(source_id != 0); - ClearDragDrop(); - ImGuiPayload& payload = g.DragDropPayload; - payload.SourceId = source_id; - payload.SourceParentId = source_parent_id; - g.DragDropActive = true; - g.DragDropSourceFlags = flags; - g.DragDropMouseButton = mouse_button; - } - g.DragDropSourceFrameCount = g.FrameCount; - g.DragDropWithinSource = true; - - if (!(flags & ImGuiDragDropFlags_SourceNoPreviewTooltip)) - { - // Target can request the Source to not display its tooltip (we use a dedicated flag to make this request explicit) - // We unfortunately can't just modify the source flags and skip the call to BeginTooltip, as caller may be emitting contents. - BeginTooltip(); - if (g.DragDropAcceptIdPrev && (g.DragDropAcceptFlags & ImGuiDragDropFlags_AcceptNoPreviewTooltip)) - { - ImGuiWindow* tooltip_window = g.CurrentWindow; - tooltip_window->SkipItems = true; - tooltip_window->HiddenFramesCanSkipItems = 1; - } - } - - if (!(flags & ImGuiDragDropFlags_SourceNoDisableHover) && !(flags & ImGuiDragDropFlags_SourceExtern)) - window->DC.LastItemStatusFlags &= ~ImGuiItemStatusFlags_HoveredRect; - - return true; - } - return false; -} - -void ImGui::EndDragDropSource() -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.DragDropActive); - IM_ASSERT(g.DragDropWithinSource && "Not after a BeginDragDropSource()?"); - - if (!(g.DragDropSourceFlags & ImGuiDragDropFlags_SourceNoPreviewTooltip)) - EndTooltip(); - - // Discard the drag if have not called SetDragDropPayload() - if (g.DragDropPayload.DataFrameCount == -1) - ClearDragDrop(); - g.DragDropWithinSource = false; -} - -// Use 'cond' to choose to submit payload on drag start or every frame -bool ImGui::SetDragDropPayload(const char* type, const void* data, size_t data_size, ImGuiCond cond) -{ - ImGuiContext& g = *GImGui; - ImGuiPayload& payload = g.DragDropPayload; - if (cond == 0) - cond = ImGuiCond_Always; - - IM_ASSERT(type != NULL); - IM_ASSERT(strlen(type) < IM_ARRAYSIZE(payload.DataType) && "Payload type can be at most 32 characters long"); - IM_ASSERT((data != NULL && data_size > 0) || (data == NULL && data_size == 0)); - IM_ASSERT(cond == ImGuiCond_Always || cond == ImGuiCond_Once); - IM_ASSERT(payload.SourceId != 0); // Not called between BeginDragDropSource() and EndDragDropSource() - - if (cond == ImGuiCond_Always || payload.DataFrameCount == -1) - { - // Copy payload - ImStrncpy(payload.DataType, type, IM_ARRAYSIZE(payload.DataType)); - g.DragDropPayloadBufHeap.resize(0); - if (data_size > sizeof(g.DragDropPayloadBufLocal)) - { - // Store in heap - g.DragDropPayloadBufHeap.resize((int)data_size); - payload.Data = g.DragDropPayloadBufHeap.Data; - memcpy(payload.Data, data, data_size); - } - else if (data_size > 0) - { - // Store locally - memset(&g.DragDropPayloadBufLocal, 0, sizeof(g.DragDropPayloadBufLocal)); - payload.Data = g.DragDropPayloadBufLocal; - memcpy(payload.Data, data, data_size); - } - else - { - payload.Data = NULL; - } - payload.DataSize = (int)data_size; - } - payload.DataFrameCount = g.FrameCount; - - return (g.DragDropAcceptFrameCount == g.FrameCount) || (g.DragDropAcceptFrameCount == g.FrameCount - 1); -} - -bool ImGui::BeginDragDropTargetCustom(const ImRect& bb, ImGuiID id) -{ - ImGuiContext& g = *GImGui; - if (!g.DragDropActive) - return false; - - ImGuiWindow* window = g.CurrentWindow; - if (g.HoveredWindow == NULL || window->RootWindow != g.HoveredWindow->RootWindow) - return false; - IM_ASSERT(id != 0); - if (!IsMouseHoveringRect(bb.Min, bb.Max) || (id == g.DragDropPayload.SourceId)) - return false; - if (window->SkipItems) - return false; - - IM_ASSERT(g.DragDropWithinTarget == false); - g.DragDropTargetRect = bb; - g.DragDropTargetId = id; - g.DragDropWithinTarget = true; - return true; -} - -// We don't use BeginDragDropTargetCustom() and duplicate its code because: -// 1) we use LastItemRectHoveredRect which handles items that pushes a temporarily clip rectangle in their code. Calling BeginDragDropTargetCustom(LastItemRect) would not handle them. -// 2) and it's faster. as this code may be very frequently called, we want to early out as fast as we can. -// Also note how the HoveredWindow test is positioned differently in both functions (in both functions we optimize for the cheapest early out case) -bool ImGui::BeginDragDropTarget() -{ - ImGuiContext& g = *GImGui; - if (!g.DragDropActive) - return false; - - ImGuiWindow* window = g.CurrentWindow; - if (!(window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_HoveredRect)) - return false; - if (g.HoveredWindow == NULL || window->RootWindow != g.HoveredWindow->RootWindow) - return false; - - const ImRect& display_rect = (window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_HasDisplayRect) ? window->DC.LastItemDisplayRect : window->DC.LastItemRect; - ImGuiID id = window->DC.LastItemId; - if (id == 0) - id = window->GetIDFromRectangle(display_rect); - if (g.DragDropPayload.SourceId == id) - return false; - - IM_ASSERT(g.DragDropWithinTarget == false); - g.DragDropTargetRect = display_rect; - g.DragDropTargetId = id; - g.DragDropWithinTarget = true; - return true; -} - -bool ImGui::IsDragDropPayloadBeingAccepted() -{ - ImGuiContext& g = *GImGui; - return g.DragDropActive && g.DragDropAcceptIdPrev != 0; -} - -const ImGuiPayload* ImGui::AcceptDragDropPayload(const char* type, ImGuiDragDropFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - ImGuiPayload& payload = g.DragDropPayload; - IM_ASSERT(g.DragDropActive); // Not called between BeginDragDropTarget() and EndDragDropTarget() ? - IM_ASSERT(payload.DataFrameCount != -1); // Forgot to call EndDragDropTarget() ? - if (type != NULL && !payload.IsDataType(type)) - return NULL; - - // Accept smallest drag target bounding box, this allows us to nest drag targets conveniently without ordering constraints. - // NB: We currently accept NULL id as target. However, overlapping targets requires a unique ID to function! - const bool was_accepted_previously = (g.DragDropAcceptIdPrev == g.DragDropTargetId); - ImRect r = g.DragDropTargetRect; - float r_surface = r.GetWidth() * r.GetHeight(); - if (r_surface < g.DragDropAcceptIdCurrRectSurface) - { - g.DragDropAcceptFlags = flags; - g.DragDropAcceptIdCurr = g.DragDropTargetId; - g.DragDropAcceptIdCurrRectSurface = r_surface; - } - - // Render default drop visuals - payload.Preview = was_accepted_previously; - flags |= (g.DragDropSourceFlags & ImGuiDragDropFlags_AcceptNoDrawDefaultRect); // Source can also inhibit the preview (useful for external sources that lives for 1 frame) - if (!(flags & ImGuiDragDropFlags_AcceptNoDrawDefaultRect) && payload.Preview) - { - // FIXME-DRAG: Settle on a proper default visuals for drop target. - r.Expand(3.5f); - bool push_clip_rect = !window->ClipRect.Contains(r); - if (push_clip_rect) window->DrawList->PushClipRect(r.Min-ImVec2(1,1), r.Max+ImVec2(1,1)); - window->DrawList->AddRect(r.Min, r.Max, GetColorU32(ImGuiCol_DragDropTarget), 0.0f, ~0, 2.0f); - if (push_clip_rect) window->DrawList->PopClipRect(); - } - - g.DragDropAcceptFrameCount = g.FrameCount; - payload.Delivery = was_accepted_previously && !IsMouseDown(g.DragDropMouseButton); // For extern drag sources affecting os window focus, it's easier to just test !IsMouseDown() instead of IsMouseReleased() - if (!payload.Delivery && !(flags & ImGuiDragDropFlags_AcceptBeforeDelivery)) - return NULL; - - return &payload; -} - -const ImGuiPayload* ImGui::GetDragDropPayload() -{ - ImGuiContext& g = *GImGui; - return g.DragDropActive ? &g.DragDropPayload : NULL; -} - -// We don't really use/need this now, but added it for the sake of consistency and because we might need it later. -void ImGui::EndDragDropTarget() -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.DragDropActive); - IM_ASSERT(g.DragDropWithinTarget); - g.DragDropWithinTarget = false; -} - -//----------------------------------------------------------------------------- -// [SECTION] LOGGING/CAPTURING -//----------------------------------------------------------------------------- -// All text output from the interface can be captured into tty/file/clipboard. -// By default, tree nodes are automatically opened during logging. -//----------------------------------------------------------------------------- - -// Pass text data straight to log (without being displayed) -void ImGui::LogText(const char* fmt, ...) -{ - ImGuiContext& g = *GImGui; - if (!g.LogEnabled) - return; - - va_list args; - va_start(args, fmt); - if (g.LogFile) - { - g.LogBuffer.Buf.resize(0); - g.LogBuffer.appendfv(fmt, args); - ImFileWrite(g.LogBuffer.c_str(), sizeof(char), (ImU64)g.LogBuffer.size(), g.LogFile); - } - else - { - g.LogBuffer.appendfv(fmt, args); - } - va_end(args); -} - -// Internal version that takes a position to decide on newline placement and pad items according to their depth. -// We split text into individual lines to add current tree level padding -void ImGui::LogRenderedText(const ImVec2* ref_pos, const char* text, const char* text_end) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - if (!text_end) - text_end = FindRenderedTextEnd(text, text_end); - - const bool log_new_line = ref_pos && (ref_pos->y > g.LogLinePosY + 1); - if (ref_pos) - g.LogLinePosY = ref_pos->y; - if (log_new_line) - g.LogLineFirstItem = true; - - const char* text_remaining = text; - if (g.LogDepthRef > window->DC.TreeDepth) // Re-adjust padding if we have popped out of our starting depth - g.LogDepthRef = window->DC.TreeDepth; - const int tree_depth = (window->DC.TreeDepth - g.LogDepthRef); - for (;;) - { - // Split the string. Each new line (after a '\n') is followed by spacing corresponding to the current depth of our log entry. - // We don't add a trailing \n to allow a subsequent item on the same line to be captured. - const char* line_start = text_remaining; - const char* line_end = ImStreolRange(line_start, text_end); - const bool is_first_line = (line_start == text); - const bool is_last_line = (line_end == text_end); - if (!is_last_line || (line_start != line_end)) - { - const int char_count = (int)(line_end - line_start); - if (log_new_line || !is_first_line) - LogText(IM_NEWLINE "%*s%.*s", tree_depth * 4, "", char_count, line_start); - else if (g.LogLineFirstItem) - LogText("%*s%.*s", tree_depth * 4, "", char_count, line_start); - else - LogText(" %.*s", char_count, line_start); - g.LogLineFirstItem = false; - } - else if (log_new_line) - { - // An empty "" string at a different Y position should output a carriage return. - LogText(IM_NEWLINE); - break; - } - - if (is_last_line) - break; - text_remaining = line_end + 1; - } -} - -// Start logging/capturing text output -void ImGui::LogBegin(ImGuiLogType type, int auto_open_depth) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - IM_ASSERT(g.LogEnabled == false); - IM_ASSERT(g.LogFile == NULL); - IM_ASSERT(g.LogBuffer.empty()); - g.LogEnabled = true; - g.LogType = type; - g.LogDepthRef = window->DC.TreeDepth; - g.LogDepthToExpand = ((auto_open_depth >= 0) ? auto_open_depth : g.LogDepthToExpandDefault); - g.LogLinePosY = FLT_MAX; - g.LogLineFirstItem = true; -} - -void ImGui::LogToTTY(int auto_open_depth) -{ - ImGuiContext& g = *GImGui; - if (g.LogEnabled) - return; - IM_UNUSED(auto_open_depth); -#ifndef IMGUI_DISABLE_TTY_FUNCTIONS - LogBegin(ImGuiLogType_TTY, auto_open_depth); - g.LogFile = stdout; -#endif -} - -// Start logging/capturing text output to given file -void ImGui::LogToFile(int auto_open_depth, const char* filename) -{ - ImGuiContext& g = *GImGui; - if (g.LogEnabled) - return; - - // FIXME: We could probably open the file in text mode "at", however note that clipboard/buffer logging will still - // be subject to outputting OS-incompatible carriage return if within strings the user doesn't use IM_NEWLINE. - // By opening the file in binary mode "ab" we have consistent output everywhere. - if (!filename) - filename = g.IO.LogFilename; - if (!filename || !filename[0]) - return; - ImFileHandle f = ImFileOpen(filename, "ab"); - if (!f) - { - IM_ASSERT(0); - return; - } - - LogBegin(ImGuiLogType_File, auto_open_depth); - g.LogFile = f; -} - -// Start logging/capturing text output to clipboard -void ImGui::LogToClipboard(int auto_open_depth) -{ - ImGuiContext& g = *GImGui; - if (g.LogEnabled) - return; - LogBegin(ImGuiLogType_Clipboard, auto_open_depth); -} - -void ImGui::LogToBuffer(int auto_open_depth) -{ - ImGuiContext& g = *GImGui; - if (g.LogEnabled) - return; - LogBegin(ImGuiLogType_Buffer, auto_open_depth); -} - -void ImGui::LogFinish() -{ - ImGuiContext& g = *GImGui; - if (!g.LogEnabled) - return; - - LogText(IM_NEWLINE); - switch (g.LogType) - { - case ImGuiLogType_TTY: -#ifndef IMGUI_DISABLE_TTY_FUNCTIONS - fflush(g.LogFile); -#endif - break; - case ImGuiLogType_File: - ImFileClose(g.LogFile); - break; - case ImGuiLogType_Buffer: - break; - case ImGuiLogType_Clipboard: - if (!g.LogBuffer.empty()) - SetClipboardText(g.LogBuffer.begin()); - break; - case ImGuiLogType_None: - IM_ASSERT(0); - break; - } - - g.LogEnabled = false; - g.LogType = ImGuiLogType_None; - g.LogFile = NULL; - g.LogBuffer.clear(); -} - -// Helper to display logging buttons -// FIXME-OBSOLETE: We should probably obsolete this and let the user have their own helper (this is one of the oldest function alive!) -void ImGui::LogButtons() -{ - ImGuiContext& g = *GImGui; - - PushID("LogButtons"); -#ifndef IMGUI_DISABLE_TTY_FUNCTIONS - const bool log_to_tty = Button("Log To TTY"); SameLine(); -#else - const bool log_to_tty = false; -#endif - const bool log_to_file = Button("Log To File"); SameLine(); - const bool log_to_clipboard = Button("Log To Clipboard"); SameLine(); - PushAllowKeyboardFocus(false); - SetNextItemWidth(80.0f); - SliderInt("Default Depth", &g.LogDepthToExpandDefault, 0, 9, NULL); - PopAllowKeyboardFocus(); - PopID(); - - // Start logging at the end of the function so that the buttons don't appear in the log - if (log_to_tty) - LogToTTY(); - if (log_to_file) - LogToFile(); - if (log_to_clipboard) - LogToClipboard(); -} - -//----------------------------------------------------------------------------- -// [SECTION] SETTINGS -//----------------------------------------------------------------------------- - -// Called by NewFrame() -void ImGui::UpdateSettings() -{ - // Load settings on first frame (if not explicitly loaded manually before) - ImGuiContext& g = *GImGui; - if (!g.SettingsLoaded) - { - IM_ASSERT(g.SettingsWindows.empty()); - if (g.IO.IniFilename) - LoadIniSettingsFromDisk(g.IO.IniFilename); - g.SettingsLoaded = true; - } - - // Save settings (with a delay after the last modification, so we don't spam disk too much) - if (g.SettingsDirtyTimer > 0.0f) - { - g.SettingsDirtyTimer -= g.IO.DeltaTime; - if (g.SettingsDirtyTimer <= 0.0f) - { - if (g.IO.IniFilename != NULL) - SaveIniSettingsToDisk(g.IO.IniFilename); - else - g.IO.WantSaveIniSettings = true; // Let user know they can call SaveIniSettingsToMemory(). user will need to clear io.WantSaveIniSettings themselves. - g.SettingsDirtyTimer = 0.0f; - } - } -} - -void ImGui::MarkIniSettingsDirty() -{ - ImGuiContext& g = *GImGui; - if (g.SettingsDirtyTimer <= 0.0f) - g.SettingsDirtyTimer = g.IO.IniSavingRate; -} - -void ImGui::MarkIniSettingsDirty(ImGuiWindow* window) -{ - ImGuiContext& g = *GImGui; - if (!(window->Flags & ImGuiWindowFlags_NoSavedSettings)) - if (g.SettingsDirtyTimer <= 0.0f) - g.SettingsDirtyTimer = g.IO.IniSavingRate; -} - -ImGuiWindowSettings* ImGui::CreateNewWindowSettings(const char* name) -{ - ImGuiContext& g = *GImGui; - -#if !IMGUI_DEBUG_INI_SETTINGS - // Skip to the "###" marker if any. We don't skip past to match the behavior of GetID() - // Preserve the full string when IMGUI_DEBUG_INI_SETTINGS is set to make .ini inspection easier. - if (const char* p = strstr(name, "###")) - name = p; -#endif - const size_t name_len = strlen(name); - - // Allocate chunk - const size_t chunk_size = sizeof(ImGuiWindowSettings) + name_len + 1; - ImGuiWindowSettings* settings = g.SettingsWindows.alloc_chunk(chunk_size); - IM_PLACEMENT_NEW(settings) ImGuiWindowSettings(); - settings->ID = ImHashStr(name, name_len); - memcpy(settings->GetName(), name, name_len + 1); // Store with zero terminator - - return settings; -} - -ImGuiWindowSettings* ImGui::FindWindowSettings(ImGuiID id) -{ - ImGuiContext& g = *GImGui; - for (ImGuiWindowSettings* settings = g.SettingsWindows.begin(); settings != NULL; settings = g.SettingsWindows.next_chunk(settings)) - if (settings->ID == id) - return settings; - return NULL; -} - -ImGuiWindowSettings* ImGui::FindOrCreateWindowSettings(const char* name) -{ - if (ImGuiWindowSettings* settings = FindWindowSettings(ImHashStr(name))) - return settings; - return CreateNewWindowSettings(name); -} - -void ImGui::LoadIniSettingsFromDisk(const char* ini_filename) -{ - size_t file_data_size = 0; - char* file_data = (char*)ImFileLoadToMemory(ini_filename, "rb", &file_data_size); - if (!file_data) - return; - LoadIniSettingsFromMemory(file_data, (size_t)file_data_size); - IM_FREE(file_data); -} - -ImGuiSettingsHandler* ImGui::FindSettingsHandler(const char* type_name) -{ - ImGuiContext& g = *GImGui; - const ImGuiID type_hash = ImHashStr(type_name); - for (int handler_n = 0; handler_n < g.SettingsHandlers.Size; handler_n++) - if (g.SettingsHandlers[handler_n].TypeHash == type_hash) - return &g.SettingsHandlers[handler_n]; - return NULL; -} - -// Zero-tolerance, no error reporting, cheap .ini parsing -void ImGui::LoadIniSettingsFromMemory(const char* ini_data, size_t ini_size) -{ - ImGuiContext& g = *GImGui; - IM_ASSERT(g.Initialized); - IM_ASSERT(g.SettingsLoaded == false && g.FrameCount == 0); - - // For user convenience, we allow passing a non zero-terminated string (hence the ini_size parameter). - // For our convenience and to make the code simpler, we'll also write zero-terminators within the buffer. So let's create a writable copy.. - if (ini_size == 0) - ini_size = strlen(ini_data); - char* buf = (char*)IM_ALLOC(ini_size + 1); - char* buf_end = buf + ini_size; - memcpy(buf, ini_data, ini_size); - buf[ini_size] = 0; - - void* entry_data = NULL; - ImGuiSettingsHandler* entry_handler = NULL; - - char* line_end = NULL; - for (char* line = buf; line < buf_end; line = line_end + 1) - { - // Skip new lines markers, then find end of the line - while (*line == '\n' || *line == '\r') - line++; - line_end = line; - while (line_end < buf_end && *line_end != '\n' && *line_end != '\r') - line_end++; - line_end[0] = 0; - if (line[0] == ';') - continue; - if (line[0] == '[' && line_end > line && line_end[-1] == ']') - { - // Parse "[Type][Name]". Note that 'Name' can itself contains [] characters, which is acceptable with the current format and parsing code. - line_end[-1] = 0; - const char* name_end = line_end - 1; - const char* type_start = line + 1; - char* type_end = (char*)(void*)ImStrchrRange(type_start, name_end, ']'); - const char* name_start = type_end ? ImStrchrRange(type_end + 1, name_end, '[') : NULL; - if (!type_end || !name_start) - continue; - *type_end = 0; // Overwrite first ']' - name_start++; // Skip second '[' - entry_handler = FindSettingsHandler(type_start); - entry_data = entry_handler ? entry_handler->ReadOpenFn(&g, entry_handler, name_start) : NULL; - } - else if (entry_handler != NULL && entry_data != NULL) - { - // Let type handler parse the line - entry_handler->ReadLineFn(&g, entry_handler, entry_data, line); - } - } - IM_FREE(buf); - g.SettingsLoaded = true; -} - -void ImGui::SaveIniSettingsToDisk(const char* ini_filename) -{ - ImGuiContext& g = *GImGui; - g.SettingsDirtyTimer = 0.0f; - if (!ini_filename) - return; - - size_t ini_data_size = 0; - const char* ini_data = SaveIniSettingsToMemory(&ini_data_size); - ImFileHandle f = ImFileOpen(ini_filename, "wt"); - if (!f) - return; - ImFileWrite(ini_data, sizeof(char), ini_data_size, f); - ImFileClose(f); -} - -// Call registered handlers (e.g. SettingsHandlerWindow_WriteAll() + custom handlers) to write their stuff into a text buffer -const char* ImGui::SaveIniSettingsToMemory(size_t* out_size) -{ - ImGuiContext& g = *GImGui; - g.SettingsDirtyTimer = 0.0f; - g.SettingsIniData.Buf.resize(0); - g.SettingsIniData.Buf.push_back(0); - for (int handler_n = 0; handler_n < g.SettingsHandlers.Size; handler_n++) - { - ImGuiSettingsHandler* handler = &g.SettingsHandlers[handler_n]; - handler->WriteAllFn(&g, handler, &g.SettingsIniData); - } - if (out_size) - *out_size = (size_t)g.SettingsIniData.size(); - return g.SettingsIniData.c_str(); -} - -static void* WindowSettingsHandler_ReadOpen(ImGuiContext*, ImGuiSettingsHandler*, const char* name) -{ - ImGuiWindowSettings* settings = ImGui::FindWindowSettings(ImHashStr(name)); - if (!settings) - settings = ImGui::CreateNewWindowSettings(name); - return (void*)settings; -} - -static void WindowSettingsHandler_ReadLine(ImGuiContext*, ImGuiSettingsHandler*, void* entry, const char* line) -{ - ImGuiWindowSettings* settings = (ImGuiWindowSettings*)entry; - int x, y; - int i; - if (sscanf(line, "Pos=%i,%i", &x, &y) == 2) settings->Pos = ImVec2ih((short)x, (short)y); - else if (sscanf(line, "Size=%i,%i", &x, &y) == 2) settings->Size = ImVec2ih((short)x, (short)y); - else if (sscanf(line, "Collapsed=%d", &i) == 1) settings->Collapsed = (i != 0); -} - -static void WindowSettingsHandler_WriteAll(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* buf) -{ - // Gather data from windows that were active during this session - // (if a window wasn't opened in this session we preserve its settings) - ImGuiContext& g = *ctx; - for (int i = 0; i != g.Windows.Size; i++) - { - ImGuiWindow* window = g.Windows[i]; - if (window->Flags & ImGuiWindowFlags_NoSavedSettings) - continue; - - ImGuiWindowSettings* settings = (window->SettingsOffset != -1) ? g.SettingsWindows.ptr_from_offset(window->SettingsOffset) : ImGui::FindWindowSettings(window->ID); - if (!settings) - { - settings = ImGui::CreateNewWindowSettings(window->Name); - window->SettingsOffset = g.SettingsWindows.offset_from_ptr(settings); - } - IM_ASSERT(settings->ID == window->ID); - settings->Pos = ImVec2ih((short)window->Pos.x, (short)window->Pos.y); - settings->Size = ImVec2ih((short)window->SizeFull.x, (short)window->SizeFull.y); - settings->Collapsed = window->Collapsed; - } - - // Write to text buffer - buf->reserve(buf->size() + g.SettingsWindows.size() * 6); // ballpark reserve - for (ImGuiWindowSettings* settings = g.SettingsWindows.begin(); settings != NULL; settings = g.SettingsWindows.next_chunk(settings)) - { - const char* settings_name = settings->GetName(); - buf->appendf("[%s][%s]\n", handler->TypeName, settings_name); - buf->appendf("Pos=%d,%d\n", settings->Pos.x, settings->Pos.y); - buf->appendf("Size=%d,%d\n", settings->Size.x, settings->Size.y); - buf->appendf("Collapsed=%d\n", settings->Collapsed); - buf->append("\n"); - } -} - - -//----------------------------------------------------------------------------- -// [SECTION] VIEWPORTS, PLATFORM WINDOWS -//----------------------------------------------------------------------------- - -// (this section is filled in the 'docking' branch) - - -//----------------------------------------------------------------------------- -// [SECTION] DOCKING -//----------------------------------------------------------------------------- - -// (this section is filled in the 'docking' branch) - - -//----------------------------------------------------------------------------- -// [SECTION] PLATFORM DEPENDENT HELPERS -//----------------------------------------------------------------------------- - -#if defined(_WIN32) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS) - -#ifdef _MSC_VER -#pragma comment(lib, "user32") -#pragma comment(lib, "kernel32") -#endif - -// Win32 clipboard implementation -// We use g.ClipboardHandlerData for temporary storage to ensure it is freed on Shutdown() -static const char* GetClipboardTextFn_DefaultImpl(void*) -{ - ImGuiContext& g = *GImGui; - g.ClipboardHandlerData.clear(); - if (!::OpenClipboard(NULL)) - return NULL; - HANDLE wbuf_handle = ::GetClipboardData(CF_UNICODETEXT); - if (wbuf_handle == NULL) - { - ::CloseClipboard(); - return NULL; - } - if (const WCHAR* wbuf_global = (const WCHAR*)::GlobalLock(wbuf_handle)) - { - int buf_len = ::WideCharToMultiByte(CP_UTF8, 0, wbuf_global, -1, NULL, 0, NULL, NULL); - g.ClipboardHandlerData.resize(buf_len); - ::WideCharToMultiByte(CP_UTF8, 0, wbuf_global, -1, g.ClipboardHandlerData.Data, buf_len, NULL, NULL); - } - ::GlobalUnlock(wbuf_handle); - ::CloseClipboard(); - return g.ClipboardHandlerData.Data; -} - -static void SetClipboardTextFn_DefaultImpl(void*, const char* text) -{ - if (!::OpenClipboard(NULL)) - return; - const int wbuf_length = ::MultiByteToWideChar(CP_UTF8, 0, text, -1, NULL, 0); - HGLOBAL wbuf_handle = ::GlobalAlloc(GMEM_MOVEABLE, (SIZE_T)wbuf_length * sizeof(WCHAR)); - if (wbuf_handle == NULL) - { - ::CloseClipboard(); - return; - } - WCHAR* wbuf_global = (WCHAR*)::GlobalLock(wbuf_handle); - ::MultiByteToWideChar(CP_UTF8, 0, text, -1, wbuf_global, wbuf_length); - ::GlobalUnlock(wbuf_handle); - ::EmptyClipboard(); - if (::SetClipboardData(CF_UNICODETEXT, wbuf_handle) == NULL) - ::GlobalFree(wbuf_handle); - ::CloseClipboard(); -} - -#elif defined(__APPLE__) && TARGET_OS_OSX && defined(IMGUI_ENABLE_OSX_DEFAULT_CLIPBOARD_FUNCTIONS) - -#include // Use old API to avoid need for separate .mm file -static PasteboardRef main_clipboard = 0; - -// OSX clipboard implementation -// If you enable this you will need to add '-framework ApplicationServices' to your linker command-line! -static void SetClipboardTextFn_DefaultImpl(void*, const char* text) -{ - if (!main_clipboard) - PasteboardCreate(kPasteboardClipboard, &main_clipboard); - PasteboardClear(main_clipboard); - CFDataRef cf_data = CFDataCreate(kCFAllocatorDefault, (const UInt8*)text, strlen(text)); - if (cf_data) - { - PasteboardPutItemFlavor(main_clipboard, (PasteboardItemID)1, CFSTR("public.utf8-plain-text"), cf_data, 0); - CFRelease(cf_data); - } -} - -static const char* GetClipboardTextFn_DefaultImpl(void*) -{ - if (!main_clipboard) - PasteboardCreate(kPasteboardClipboard, &main_clipboard); - PasteboardSynchronize(main_clipboard); - - ItemCount item_count = 0; - PasteboardGetItemCount(main_clipboard, &item_count); - for (ItemCount i = 0; i < item_count; i++) - { - PasteboardItemID item_id = 0; - PasteboardGetItemIdentifier(main_clipboard, i + 1, &item_id); - CFArrayRef flavor_type_array = 0; - PasteboardCopyItemFlavors(main_clipboard, item_id, &flavor_type_array); - for (CFIndex j = 0, nj = CFArrayGetCount(flavor_type_array); j < nj; j++) - { - CFDataRef cf_data; - if (PasteboardCopyItemFlavorData(main_clipboard, item_id, CFSTR("public.utf8-plain-text"), &cf_data) == noErr) - { - ImGuiContext& g = *GImGui; - g.ClipboardHandlerData.clear(); - int length = (int)CFDataGetLength(cf_data); - g.ClipboardHandlerData.resize(length + 1); - CFDataGetBytes(cf_data, CFRangeMake(0, length), (UInt8*)g.ClipboardHandlerData.Data); - g.ClipboardHandlerData[length] = 0; - CFRelease(cf_data); - return g.ClipboardHandlerData.Data; - } - } - } - return NULL; -} - -#else - -// Local Dear ImGui-only clipboard implementation, if user hasn't defined better clipboard handlers. -static const char* GetClipboardTextFn_DefaultImpl(void*) -{ - ImGuiContext& g = *GImGui; - return g.ClipboardHandlerData.empty() ? NULL : g.ClipboardHandlerData.begin(); -} - -static void SetClipboardTextFn_DefaultImpl(void*, const char* text) -{ - ImGuiContext& g = *GImGui; - g.ClipboardHandlerData.clear(); - const char* text_end = text + strlen(text); - g.ClipboardHandlerData.resize((int)(text_end - text) + 1); - memcpy(&g.ClipboardHandlerData[0], text, (size_t)(text_end - text)); - g.ClipboardHandlerData[(int)(text_end - text)] = 0; -} - -#endif - -// Win32 API IME support (for Asian languages, etc.) -#if defined(_WIN32) && !defined(__GNUC__) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) && !defined(IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS) - -#include -#ifdef _MSC_VER -#pragma comment(lib, "imm32") -#endif - -static void ImeSetInputScreenPosFn_DefaultImpl(int x, int y) -{ - // Notify OS Input Method Editor of text input position - ImGuiIO& io = ImGui::GetIO(); - if (HWND hwnd = (HWND)io.ImeWindowHandle) - if (HIMC himc = ::ImmGetContext(hwnd)) - { - COMPOSITIONFORM cf; - cf.ptCurrentPos.x = x; - cf.ptCurrentPos.y = y; - cf.dwStyle = CFS_FORCE_POSITION; - ::ImmSetCompositionWindow(himc, &cf); - ::ImmReleaseContext(hwnd, himc); - } -} - -#else - -static void ImeSetInputScreenPosFn_DefaultImpl(int, int) {} - -#endif - -//----------------------------------------------------------------------------- -// [SECTION] METRICS/DEBUG WINDOW -//----------------------------------------------------------------------------- - -#ifndef IMGUI_DISABLE_METRICS_WINDOW -// Avoid naming collision with imgui_demo.cpp's HelpMarker() for unity builds. -static void MetricsHelpMarker(const char* desc) -{ - ImGui::TextDisabled("(?)"); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f); - ImGui::TextUnformatted(desc); - ImGui::PopTextWrapPos(); - ImGui::EndTooltip(); - } -} - -void ImGui::ShowMetricsWindow(bool* p_open) -{ - if (!ImGui::Begin("Dear ImGui Metrics", p_open)) - { - ImGui::End(); - return; - } - - // Debugging enums - enum { WRT_OuterRect, WRT_OuterRectClipped, WRT_InnerRect, WRT_InnerClipRect, WRT_WorkRect, WRT_Content, WRT_ContentRegionRect, WRT_Count }; // Windows Rect Type - const char* wrt_rects_names[WRT_Count] = { "OuterRect", "OuterRectClipped", "InnerRect", "InnerClipRect", "WorkRect", "Content", "ContentRegionRect" }; - enum { TRT_OuterRect, TRT_WorkRect, TRT_HostClipRect, TRT_InnerClipRect, TRT_BackgroundClipRect, TRT_ColumnsRect, TRT_ColumnsClipRect, TRT_ColumnsContentHeadersUsed, TRT_ColumnsContentHeadersDesired, TRT_ColumnsContentRowsFrozen, TRT_ColumnsContentRowsUnfrozen, TRT_Count }; // Tables Rect Type - const char* trt_rects_names[TRT_Count] = { "OuterRect", "WorkRect", "HostClipRect", "InnerClipRect", "BackgroundClipRect", "ColumnsRect", "ColumnsClipRect", "ColumnsContentHeadersUsed", "ColumnsContentHeadersDesired", "ColumnsContentRowsFrozen", "ColumnsContentRowsUnfrozen" }; - - // State - static bool show_windows_rects = false; - static int show_windows_rect_type = WRT_WorkRect; - static bool show_windows_begin_order = false; - static bool show_tables_rects = false; - static int show_tables_rect_type = TRT_WorkRect; - static bool show_drawcmd_mesh = true; - static bool show_drawcmd_aabb = true; - - // Basic info - ImGuiContext& g = *GImGui; - ImGuiIO& io = ImGui::GetIO(); - ImGui::Text("Dear ImGui %s", ImGui::GetVersion()); - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::Text("%d vertices, %d indices (%d triangles)", io.MetricsRenderVertices, io.MetricsRenderIndices, io.MetricsRenderIndices / 3); - ImGui::Text("%d active windows (%d visible)", io.MetricsActiveWindows, io.MetricsRenderWindows); - ImGui::Text("%d active allocations", io.MetricsActiveAllocations); - ImGui::Separator(); - - // Helper functions to display common structures: - // - NodeDrawList() - // - NodeColumns() - // - NodeWindow() - // - NodeWindows() - // - NodeTabBar() - // - NodeStorage() - struct Funcs - { - static ImRect GetWindowRect(ImGuiWindow* window, int rect_type) - { - if (rect_type == WRT_OuterRect) { return window->Rect(); } - else if (rect_type == WRT_OuterRectClipped) { return window->OuterRectClipped; } - else if (rect_type == WRT_InnerRect) { return window->InnerRect; } - else if (rect_type == WRT_InnerClipRect) { return window->InnerClipRect; } - else if (rect_type == WRT_WorkRect) { return window->WorkRect; } - else if (rect_type == WRT_Content) { ImVec2 min = window->InnerRect.Min - window->Scroll + window->WindowPadding; return ImRect(min, min + window->ContentSize); } - else if (rect_type == WRT_ContentRegionRect) { return window->ContentRegionRect; } - IM_ASSERT(0); - return ImRect(); - } - - static void NodeDrawCmdShowMeshAndBoundingBox(ImGuiWindow* window, const ImDrawList* draw_list, const ImDrawCmd* draw_cmd, int elem_offset, bool show_mesh, bool show_aabb) - { - IM_ASSERT(show_mesh || show_aabb); - ImDrawList* fg_draw_list = GetForegroundDrawList(window); // Render additional visuals into the top-most draw list - ImDrawIdx* idx_buffer = (draw_list->IdxBuffer.Size > 0) ? draw_list->IdxBuffer.Data : NULL; - - // Draw wire-frame version of all triangles - ImRect clip_rect = draw_cmd->ClipRect; - ImRect vtxs_rect(FLT_MAX, FLT_MAX, -FLT_MAX, -FLT_MAX); - ImDrawListFlags backup_flags = fg_draw_list->Flags; - fg_draw_list->Flags &= ~ImDrawListFlags_AntiAliasedLines; // Disable AA on triangle outlines is more readable for very large and thin triangles. - for (unsigned int base_idx = elem_offset; base_idx < (elem_offset + draw_cmd->ElemCount); base_idx += 3) - { - ImVec2 triangle[3]; - for (int n = 0; n < 3; n++) - { - ImVec2 p = draw_list->VtxBuffer[idx_buffer ? idx_buffer[base_idx + n] : (base_idx + n)].pos; - triangle[n] = p; - vtxs_rect.Add(p); - } - if (show_mesh) - fg_draw_list->AddPolyline(triangle, 3, IM_COL32(255, 255, 0, 255), true, 1.0f); // In yellow: mesh triangles - } - // Draw bounding boxes - if (show_aabb) - { - fg_draw_list->AddRect(ImFloor(clip_rect.Min), ImFloor(clip_rect.Max), IM_COL32(255, 0, 255, 255)); // In pink: clipping rectangle submitted to GPU - fg_draw_list->AddRect(ImFloor(vtxs_rect.Min), ImFloor(vtxs_rect.Max), IM_COL32(0, 255, 255, 255)); // In cyan: bounding box of triangles - } - fg_draw_list->Flags = backup_flags; - } - - static void NodeDrawList(ImGuiWindow* window, ImDrawList* draw_list, const char* label) - { - bool node_open = ImGui::TreeNode(draw_list, "%s: '%s' %d vtx, %d indices, %d cmds", label, draw_list->_OwnerName ? draw_list->_OwnerName : "", draw_list->VtxBuffer.Size, draw_list->IdxBuffer.Size, draw_list->CmdBuffer.Size); - if (draw_list == ImGui::GetWindowDrawList()) - { - ImGui::SameLine(); - ImGui::TextColored(ImVec4(1.0f,0.4f,0.4f,1.0f), "CURRENTLY APPENDING"); // Can't display stats for active draw list! (we don't have the data double-buffered) - if (node_open) ImGui::TreePop(); - return; - } - - ImDrawList* fg_draw_list = GetForegroundDrawList(window); // Render additional visuals into the top-most draw list - if (window && IsItemHovered()) - fg_draw_list->AddRect(window->Pos, window->Pos + window->Size, IM_COL32(255, 255, 0, 255)); - if (!node_open) - return; - - if (window && !window->WasActive) - ImGui::TextDisabled("Warning: owning Window is inactive. This DrawList is not being rendered!"); - - unsigned int elem_offset = 0; - for (const ImDrawCmd* pcmd = draw_list->CmdBuffer.begin(); pcmd < draw_list->CmdBuffer.end(); elem_offset += pcmd->ElemCount, pcmd++) - { - if (pcmd->UserCallback == NULL && pcmd->ElemCount == 0) - continue; - if (pcmd->UserCallback) - { - ImGui::BulletText("Callback %p, user_data %p", pcmd->UserCallback, pcmd->UserCallbackData); - continue; - } - - ImDrawIdx* idx_buffer = (draw_list->IdxBuffer.Size > 0) ? draw_list->IdxBuffer.Data : NULL; - char buf[300]; - ImFormatString(buf, IM_ARRAYSIZE(buf), "DrawCmd: %4d triangles, Tex 0x%p, ClipRect (%4.0f,%4.0f)-(%4.0f,%4.0f)", - pcmd->ElemCount/3, (void*)(intptr_t)pcmd->TextureId, - pcmd->ClipRect.x, pcmd->ClipRect.y, pcmd->ClipRect.z, pcmd->ClipRect.w); - bool pcmd_node_open = ImGui::TreeNode((void*)(pcmd - draw_list->CmdBuffer.begin()), "%s", buf); - if (ImGui::IsItemHovered() && (show_drawcmd_mesh || show_drawcmd_aabb) && fg_draw_list) - NodeDrawCmdShowMeshAndBoundingBox(window, draw_list, pcmd, elem_offset, show_drawcmd_mesh, show_drawcmd_aabb); - if (!pcmd_node_open) - continue; - - // Calculate approximate coverage area (touched pixel count) - // This will be in pixels squared as long there's no post-scaling happening to the renderer output. - float total_area = 0.0f; - for (unsigned int base_idx = elem_offset; base_idx < (elem_offset + pcmd->ElemCount); base_idx += 3) - { - ImVec2 triangle[3]; - for (int n = 0; n < 3; n++) - triangle[n] = draw_list->VtxBuffer[idx_buffer ? idx_buffer[base_idx + n] : (base_idx + n)].pos; - total_area += ImTriangleArea(triangle[0], triangle[1], triangle[2]); - } - - // Display vertex information summary. Hover to get all triangles drawn in wire-frame - ImFormatString(buf, IM_ARRAYSIZE(buf), "Mesh: ElemCount: %d, VtxOffset: +%d, IdxOffset: +%d, Area: ~%0.f px", pcmd->ElemCount, pcmd->VtxOffset, pcmd->IdxOffset, total_area); - ImGui::Selectable(buf); - if (ImGui::IsItemHovered() && fg_draw_list) - NodeDrawCmdShowMeshAndBoundingBox(window, draw_list, pcmd, elem_offset, true, false); - - // Display individual triangles/vertices. Hover on to get the corresponding triangle highlighted. - ImGuiListClipper clipper(pcmd->ElemCount/3); // Manually coarse clip our print out of individual vertices to save CPU, only items that may be visible. - while (clipper.Step()) - for (int prim = clipper.DisplayStart, idx_i = elem_offset + clipper.DisplayStart*3; prim < clipper.DisplayEnd; prim++) - { - char *buf_p = buf, *buf_end = buf + IM_ARRAYSIZE(buf); - ImVec2 triangle[3]; - for (int n = 0; n < 3; n++, idx_i++) - { - ImDrawVert& v = draw_list->VtxBuffer[idx_buffer ? idx_buffer[idx_i] : idx_i]; - triangle[n] = v.pos; - buf_p += ImFormatString(buf_p, buf_end - buf_p, "%s %04d: pos (%8.2f,%8.2f), uv (%.6f,%.6f), col %08X\n", - (n == 0) ? "Vert:" : " ", idx_i, v.pos.x, v.pos.y, v.uv.x, v.uv.y, v.col); - } - - ImGui::Selectable(buf, false); - if (fg_draw_list && ImGui::IsItemHovered()) - { - ImDrawListFlags backup_flags = fg_draw_list->Flags; - fg_draw_list->Flags &= ~ImDrawListFlags_AntiAliasedLines; // Disable AA on triangle outlines is more readable for very large and thin triangles. - fg_draw_list->AddPolyline(triangle, 3, IM_COL32(255,255,0,255), true, 1.0f); - fg_draw_list->Flags = backup_flags; - } - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - static void NodeColumns(const ImGuiColumns* columns) - { - if (!ImGui::TreeNode((void*)(uintptr_t)columns->ID, "Columns Id: 0x%08X, Count: %d, Flags: 0x%04X", columns->ID, columns->Count, columns->Flags)) - return; - ImGui::BulletText("Width: %.1f (MinX: %.1f, MaxX: %.1f)", columns->OffMaxX - columns->OffMinX, columns->OffMinX, columns->OffMaxX); - for (int column_n = 0; column_n < columns->Columns.Size; column_n++) - ImGui::BulletText("Column %02d: OffsetNorm %.3f (= %.1f px)", column_n, columns->Columns[column_n].OffsetNorm, GetColumnOffsetFromNorm(columns, columns->Columns[column_n].OffsetNorm)); - ImGui::TreePop(); - } - - static void NodeWindows(ImVector& windows, const char* label) - { - if (!ImGui::TreeNode(label, "%s (%d)", label, windows.Size)) - return; - for (int i = 0; i < windows.Size; i++) - { - ImGui::PushID(windows[i]); - Funcs::NodeWindow(windows[i], "Window"); - ImGui::PopID(); - } - ImGui::TreePop(); - } - - static void NodeWindow(ImGuiWindow* window, const char* label) - { - if (window == NULL) - { - ImGui::BulletText("%s: NULL", label); - return; - } - bool open = ImGui::TreeNode(label, "%s '%s', %d @ 0x%p", label, window->Name, (window->Active || window->WasActive), window); - if (ImGui::IsItemHovered() && window->WasActive) - ImGui::GetForegroundDrawList()->AddRect(window->Pos, window->Pos + window->Size, IM_COL32(255, 255, 0, 255)); - if (!open) - return; - - if (!window->WasActive) - ImGui::TextDisabled("Note: window is not currently visible."); - if (window->MemoryCompacted) - ImGui::TextDisabled("Note: some memory buffers have been compacted/freed."); - - ImGuiWindowFlags flags = window->Flags; - NodeDrawList(window, window->DrawList, "DrawList"); - ImGui::BulletText("Pos: (%.1f,%.1f), Size: (%.1f,%.1f), ContentSize (%.1f,%.1f)", window->Pos.x, window->Pos.y, window->Size.x, window->Size.y, window->ContentSize.x, window->ContentSize.y); - ImGui::BulletText("Flags: 0x%08X (%s%s%s%s%s%s%s%s%s..)", flags, - (flags & ImGuiWindowFlags_ChildWindow) ? "Child " : "", (flags & ImGuiWindowFlags_Tooltip) ? "Tooltip " : "", (flags & ImGuiWindowFlags_Popup) ? "Popup " : "", - (flags & ImGuiWindowFlags_Modal) ? "Modal " : "", (flags & ImGuiWindowFlags_ChildMenu) ? "ChildMenu " : "", (flags & ImGuiWindowFlags_NoSavedSettings) ? "NoSavedSettings " : "", - (flags & ImGuiWindowFlags_NoMouseInputs)? "NoMouseInputs":"", (flags & ImGuiWindowFlags_NoNavInputs) ? "NoNavInputs" : "", (flags & ImGuiWindowFlags_AlwaysAutoResize) ? "AlwaysAutoResize" : ""); - ImGui::BulletText("Scroll: (%.2f/%.2f,%.2f/%.2f) Scrollbar:%s%s", window->Scroll.x, window->ScrollMax.x, window->Scroll.y, window->ScrollMax.y, window->ScrollbarX ? "X" : "", window->ScrollbarY ? "Y" : ""); - ImGui::BulletText("Active: %d/%d, WriteAccessed: %d, BeginOrderWithinContext: %d", window->Active, window->WasActive, window->WriteAccessed, (window->Active || window->WasActive) ? window->BeginOrderWithinContext : -1); - ImGui::BulletText("Appearing: %d, Hidden: %d (CanSkip %d Cannot %d), SkipItems: %d", window->Appearing, window->Hidden, window->HiddenFramesCanSkipItems, window->HiddenFramesCannotSkipItems, window->SkipItems); - ImGui::BulletText("NavLastIds: 0x%08X,0x%08X, NavLayerActiveMask: %X", window->NavLastIds[0], window->NavLastIds[1], window->DC.NavLayerActiveMask); - ImGui::BulletText("NavLastChildNavWindow: %s", window->NavLastChildNavWindow ? window->NavLastChildNavWindow->Name : "NULL"); - if (!window->NavRectRel[0].IsInverted()) - ImGui::BulletText("NavRectRel[0]: (%.1f,%.1f)(%.1f,%.1f)", window->NavRectRel[0].Min.x, window->NavRectRel[0].Min.y, window->NavRectRel[0].Max.x, window->NavRectRel[0].Max.y); - else - ImGui::BulletText("NavRectRel[0]: "); - if (window->RootWindow != window) NodeWindow(window->RootWindow, "RootWindow"); - if (window->ParentWindow != NULL) NodeWindow(window->ParentWindow, "ParentWindow"); - if (window->DC.ChildWindows.Size > 0) NodeWindows(window->DC.ChildWindows, "ChildWindows"); - if (window->ColumnsStorage.Size > 0 && ImGui::TreeNode("Columns", "Columns sets (%d)", window->ColumnsStorage.Size)) - { - for (int n = 0; n < window->ColumnsStorage.Size; n++) - NodeColumns(&window->ColumnsStorage[n]); - ImGui::TreePop(); - } - NodeStorage(&window->StateStorage, "Storage"); - ImGui::TreePop(); - } - - static void NodeTabBar(ImGuiTabBar* tab_bar) - { - // Standalone tab bars (not associated to docking/windows functionality) currently hold no discernible strings. - char buf[256]; - char* p = buf; - const char* buf_end = buf + IM_ARRAYSIZE(buf); - p += ImFormatString(p, buf_end - p, "TabBar (%d tabs)%s", tab_bar->Tabs.Size, (tab_bar->PrevFrameVisible < ImGui::GetFrameCount() - 2) ? " *Inactive*" : ""); - if (ImGui::TreeNode(tab_bar, "%s", buf)) - { - for (int tab_n = 0; tab_n < tab_bar->Tabs.Size; tab_n++) - { - const ImGuiTabItem* tab = &tab_bar->Tabs[tab_n]; - ImGui::PushID(tab); - if (ImGui::SmallButton("<")) { TabBarQueueChangeTabOrder(tab_bar, tab, -1); } ImGui::SameLine(0, 2); - if (ImGui::SmallButton(">")) { TabBarQueueChangeTabOrder(tab_bar, tab, +1); } ImGui::SameLine(); - ImGui::Text("%02d%c Tab 0x%08X '%s'", tab_n, (tab->ID == tab_bar->SelectedTabId) ? '*' : ' ', tab->ID, (tab->NameOffset != -1) ? tab_bar->GetTabName(tab) : ""); - ImGui::PopID(); - } - ImGui::TreePop(); - } - } - - static void NodeStorage(ImGuiStorage* storage, const char* label) - { - if (!ImGui::TreeNode(label, "%s: %d entries, %d bytes", label, storage->Data.Size, storage->Data.size_in_bytes())) - return; - for (int n = 0; n < storage->Data.Size; n++) - { - const ImGuiStorage::ImGuiStoragePair& p = storage->Data[n]; - ImGui::BulletText("Key 0x%08X Value { i: %d }", p.key, p.val_i); // Important: we currently don't store a type, real value may not be integer. - } - ImGui::TreePop(); - } - }; - - - // Tools - if (ImGui::TreeNode("Tools")) - { - // The Item Picker tool is super useful to visually select an item and break into the call-stack of where it was submitted. - if (ImGui::Button("Item Picker..")) - ImGui::DebugStartItemPicker(); - ImGui::SameLine(); - MetricsHelpMarker("Will call the IM_DEBUG_BREAK() macro to break in debugger.\nWarning: If you don't have a debugger attached, this will probably crash."); - - ImGui::Checkbox("Show windows begin order", &show_windows_begin_order); - ImGui::Checkbox("Show windows rectangles", &show_windows_rects); - ImGui::SameLine(); - ImGui::SetNextItemWidth(ImGui::GetFontSize() * 12); - show_windows_rects |= ImGui::Combo("##show_windows_rect_type", &show_windows_rect_type, wrt_rects_names, WRT_Count, WRT_Count); - if (show_windows_rects && g.NavWindow) - { - ImGui::BulletText("'%s':", g.NavWindow->Name); - ImGui::Indent(); - for (int rect_n = 0; rect_n < WRT_Count; rect_n++) - { - ImRect r = Funcs::GetWindowRect(g.NavWindow, rect_n); - ImGui::Text("(%6.1f,%6.1f) (%6.1f,%6.1f) Size (%6.1f,%6.1f) %s", r.Min.x, r.Min.y, r.Max.x, r.Max.y, r.GetWidth(), r.GetHeight(), wrt_rects_names[rect_n]); - } - ImGui::Unindent(); - } - ImGui::Checkbox("Show mesh when hovering ImDrawCmd", &show_drawcmd_mesh); - ImGui::Checkbox("Show bounding boxes when hovering ImDrawCmd", &show_drawcmd_aabb); - ImGui::TreePop(); - } - - // Contents - Funcs::NodeWindows(g.Windows, "Windows"); - //Funcs::NodeWindows(g.WindowsFocusOrder, "WindowsFocusOrder"); - if (ImGui::TreeNode("DrawLists", "Active DrawLists (%d)", g.DrawDataBuilder.Layers[0].Size)) - { - for (int i = 0; i < g.DrawDataBuilder.Layers[0].Size; i++) - Funcs::NodeDrawList(NULL, g.DrawDataBuilder.Layers[0][i], "DrawList"); - ImGui::TreePop(); - } - - // Details for Popups - if (ImGui::TreeNode("Popups", "Popups (%d)", g.OpenPopupStack.Size)) - { - for (int i = 0; i < g.OpenPopupStack.Size; i++) - { - ImGuiWindow* window = g.OpenPopupStack[i].Window; - ImGui::BulletText("PopupID: %08x, Window: '%s'%s%s", g.OpenPopupStack[i].PopupId, window ? window->Name : "NULL", window && (window->Flags & ImGuiWindowFlags_ChildWindow) ? " ChildWindow" : "", window && (window->Flags & ImGuiWindowFlags_ChildMenu) ? " ChildMenu" : ""); - } - ImGui::TreePop(); - } - - // Details for TabBars - if (ImGui::TreeNode("TabBars", "Tab Bars (%d)", g.TabBars.GetSize())) - { - for (int n = 0; n < g.TabBars.GetSize(); n++) - Funcs::NodeTabBar(g.TabBars.GetByIndex(n)); - ImGui::TreePop(); - } - - // Details for Tables - IM_UNUSED(trt_rects_names); - IM_UNUSED(show_tables_rects); - IM_UNUSED(show_tables_rect_type); -#ifdef IMGUI_HAS_TABLE - if (ImGui::TreeNode("Tables", "Tables (%d)", g.Tables.GetSize())) - { - for (int n = 0; n < g.Tables.GetSize(); n++) - Funcs::NodeTable(g.Tables.GetByIndex(n)); - ImGui::TreePop(); - } -#endif // #define IMGUI_HAS_TABLE - - // Details for Docking -#ifdef IMGUI_HAS_DOCK - if (ImGui::TreeNode("Docking")) - { - ImGui::TreePop(); - } -#endif // #define IMGUI_HAS_DOCK - - // Misc Details - if (ImGui::TreeNode("Internal state")) - { - const char* input_source_names[] = { "None", "Mouse", "Nav", "NavKeyboard", "NavGamepad" }; IM_ASSERT(IM_ARRAYSIZE(input_source_names) == ImGuiInputSource_COUNT); - ImGui::Text("HoveredWindow: '%s'", g.HoveredWindow ? g.HoveredWindow->Name : "NULL"); - ImGui::Text("HoveredRootWindow: '%s'", g.HoveredRootWindow ? g.HoveredRootWindow->Name : "NULL"); - ImGui::Text("HoveredId: 0x%08X/0x%08X (%.2f sec), AllowOverlap: %d", g.HoveredId, g.HoveredIdPreviousFrame, g.HoveredIdTimer, g.HoveredIdAllowOverlap); // Data is "in-flight" so depending on when the Metrics window is called we may see current frame information or not - ImGui::Text("ActiveId: 0x%08X/0x%08X (%.2f sec), AllowOverlap: %d, Source: %s", g.ActiveId, g.ActiveIdPreviousFrame, g.ActiveIdTimer, g.ActiveIdAllowOverlap, input_source_names[g.ActiveIdSource]); - ImGui::Text("ActiveIdWindow: '%s'", g.ActiveIdWindow ? g.ActiveIdWindow->Name : "NULL"); - ImGui::Text("MovingWindow: '%s'", g.MovingWindow ? g.MovingWindow->Name : "NULL"); - ImGui::Text("NavWindow: '%s'", g.NavWindow ? g.NavWindow->Name : "NULL"); - ImGui::Text("NavId: 0x%08X, NavLayer: %d", g.NavId, g.NavLayer); - ImGui::Text("NavInputSource: %s", input_source_names[g.NavInputSource]); - ImGui::Text("NavActive: %d, NavVisible: %d", g.IO.NavActive, g.IO.NavVisible); - ImGui::Text("NavActivateId: 0x%08X, NavInputId: 0x%08X", g.NavActivateId, g.NavInputId); - ImGui::Text("NavDisableHighlight: %d, NavDisableMouseHover: %d", g.NavDisableHighlight, g.NavDisableMouseHover); - ImGui::Text("NavWindowingTarget: '%s'", g.NavWindowingTarget ? g.NavWindowingTarget->Name : "NULL"); - ImGui::Text("DragDrop: %d, SourceId = 0x%08X, Payload \"%s\" (%d bytes)", g.DragDropActive, g.DragDropPayload.SourceId, g.DragDropPayload.DataType, g.DragDropPayload.DataSize); - ImGui::TreePop(); - } - - // Overlay: Display windows Rectangles and Begin Order - if (show_windows_rects || show_windows_begin_order) - { - for (int n = 0; n < g.Windows.Size; n++) - { - ImGuiWindow* window = g.Windows[n]; - if (!window->WasActive) - continue; - ImDrawList* draw_list = GetForegroundDrawList(window); - if (show_windows_rects) - { - ImRect r = Funcs::GetWindowRect(window, show_windows_rect_type); - draw_list->AddRect(r.Min, r.Max, IM_COL32(255, 0, 128, 255)); - } - if (show_windows_begin_order && !(window->Flags & ImGuiWindowFlags_ChildWindow)) - { - char buf[32]; - ImFormatString(buf, IM_ARRAYSIZE(buf), "%d", window->BeginOrderWithinContext); - float font_size = ImGui::GetFontSize(); - draw_list->AddRectFilled(window->Pos, window->Pos + ImVec2(font_size, font_size), IM_COL32(200, 100, 100, 255)); - draw_list->AddText(window->Pos, IM_COL32(255, 255, 255, 255), buf); - } - } - } - -#ifdef IMGUI_HAS_TABLE - // Overlay: Display Tables Rectangles - if (show_tables_rects) - { - for (int table_n = 0; table_n < g.Tables.GetSize(); table_n++) - { - ImGuiTable* table = g.Tables.GetByIndex(table_n); - } - } -#endif // #define IMGUI_HAS_TABLE - -#ifdef IMGUI_HAS_DOCK - // Overlay: Display Docking info - if (show_docking_nodes && g.IO.KeyCtrl) - { - } -#endif // #define IMGUI_HAS_DOCK - - ImGui::End(); -} - -#else - -void ImGui::ShowMetricsWindow(bool*) { } - -#endif - -//----------------------------------------------------------------------------- - -// Include imgui_user.inl at the end of imgui.cpp to access private data/functions that aren't exposed. -// Prefer just including imgui_internal.h from your code rather than using this define. If a declaration is missing from imgui_internal.h add it or request it on the github. -#ifdef IMGUI_INCLUDE_IMGUI_USER_INL -#include "imgui_user.inl" -#endif - -//----------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui.h deleted file mode 100644 index 92c56740..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui.h +++ /dev/null @@ -1,2337 +0,0 @@ -// dear imgui, v1.76 -// (headers) - -// Help: -// - Read FAQ at http://dearimgui.org/faq -// - Newcomers, read 'Programmer guide' in imgui.cpp for notes on how to setup Dear ImGui in your codebase. -// - Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code. All applications in examples/ are doing that. -// Read imgui.cpp for details, links and comments. - -// Resources: -// - FAQ http://dearimgui.org/faq -// - Homepage & latest https://github.com/ocornut/imgui -// - Releases & changelog https://github.com/ocornut/imgui/releases -// - Gallery https://github.com/ocornut/imgui/issues/3075 (please post your screenshots/video there!) -// - Glossary https://github.com/ocornut/imgui/wiki/Glossary -// - Wiki https://github.com/ocornut/imgui/wiki -// - Issues & support https://github.com/ocornut/imgui/issues - -/* - -Index of this file: -// Header mess -// Forward declarations and basic types -// ImGui API (Dear ImGui end-user API) -// Flags & Enumerations -// Memory allocations macros -// ImVector<> -// ImGuiStyle -// ImGuiIO -// Misc data structures (ImGuiInputTextCallbackData, ImGuiSizeCallbackData, ImGuiPayload) -// Obsolete functions -// Helpers (ImGuiOnceUponAFrame, ImGuiTextFilter, ImGuiTextBuffer, ImGuiStorage, ImGuiListClipper, ImColor) -// Draw List API (ImDrawCallback, ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData) -// Font API (ImFontConfig, ImFontGlyph, ImFontGlyphRangesBuilder, ImFontAtlasFlags, ImFontAtlas, ImFont) - -*/ - -#pragma once - -// Configuration file with compile-time options (edit imconfig.h or #define IMGUI_USER_CONFIG to your own filename) -#ifdef IMGUI_USER_CONFIG -#include IMGUI_USER_CONFIG -#endif -#if !defined(IMGUI_DISABLE_INCLUDE_IMCONFIG_H) || defined(IMGUI_INCLUDE_IMCONFIG_H) -#include "imconfig.h" -#endif - -#ifndef IMGUI_DISABLE - -//----------------------------------------------------------------------------- -// Header mess -//----------------------------------------------------------------------------- - -// Includes -#include // FLT_MIN, FLT_MAX -#include // va_list, va_start, va_end -#include // ptrdiff_t, NULL -#include // memset, memmove, memcpy, strlen, strchr, strcpy, strcmp - -// Version -// (Integer encoded as XYYZZ for use in #if preprocessor conditionals. Work in progress versions typically starts at XYY99 then bounce up to XYY00, XYY01 etc. when release tagging happens) -#define IMGUI_VERSION "1.76" -#define IMGUI_VERSION_NUM 17600 -#define IMGUI_CHECKVERSION() ImGui::DebugCheckVersionAndDataLayout(IMGUI_VERSION, sizeof(ImGuiIO), sizeof(ImGuiStyle), sizeof(ImVec2), sizeof(ImVec4), sizeof(ImDrawVert), sizeof(ImDrawIdx)) - -// Define attributes of all API symbols declarations (e.g. for DLL under Windows) -// IMGUI_API is used for core imgui functions, IMGUI_IMPL_API is used for the default bindings files (imgui_impl_xxx.h) -// Using dear imgui via a shared library is not recommended, because we don't guarantee backward nor forward ABI compatibility (also function call overhead, as dear imgui is a call-heavy API) -#ifndef IMGUI_API -#define IMGUI_API -#endif -#ifndef IMGUI_IMPL_API -#define IMGUI_IMPL_API IMGUI_API -#endif - -// Helper Macros -#ifndef IM_ASSERT -#include -#define IM_ASSERT(_EXPR) assert(_EXPR) // You can override the default assert handler by editing imconfig.h -#endif -#if !defined(IMGUI_USE_STB_SPRINTF) && (defined(__clang__) || defined(__GNUC__)) -#define IM_FMTARGS(FMT) __attribute__((format(printf, FMT, FMT+1))) // To apply printf-style warnings to our functions. -#define IM_FMTLIST(FMT) __attribute__((format(printf, FMT, 0))) -#else -#define IM_FMTARGS(FMT) -#define IM_FMTLIST(FMT) -#endif -#define IM_ARRAYSIZE(_ARR) ((int)(sizeof(_ARR) / sizeof(*_ARR))) // Size of a static C-style array. Don't use on pointers! -#define IM_UNUSED(_VAR) ((void)_VAR) // Used to silence "unused variable warnings". Often useful as asserts may be stripped out from final builds. -#if (__cplusplus >= 201100) -#define IM_OFFSETOF(_TYPE,_MEMBER) offsetof(_TYPE, _MEMBER) // Offset of _MEMBER within _TYPE. Standardized as offsetof() in C++11 -#else -#define IM_OFFSETOF(_TYPE,_MEMBER) ((size_t)&(((_TYPE*)0)->_MEMBER)) // Offset of _MEMBER within _TYPE. Old style macro. -#endif - -// Warnings -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wold-style-cast" -#if __has_warning("-Wzero-as-null-pointer-constant") -#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" -#endif -#elif defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead -#endif - -//----------------------------------------------------------------------------- -// Forward declarations and basic types -//----------------------------------------------------------------------------- - -// Forward declarations -struct ImDrawChannel; // Temporary storage to output draw commands out of order, used by ImDrawListSplitter and ImDrawList::ChannelsSplit() -struct ImDrawCmd; // A single draw command within a parent ImDrawList (generally maps to 1 GPU draw call, unless it is a callback) -struct ImDrawData; // All draw command lists required to render the frame + pos/size coordinates to use for the projection matrix. -struct ImDrawList; // A single draw command list (generally one per window, conceptually you may see this as a dynamic "mesh" builder) -struct ImDrawListSharedData; // Data shared among multiple draw lists (typically owned by parent ImGui context, but you may create one yourself) -struct ImDrawListSplitter; // Helper to split a draw list into different layers which can be drawn into out of order, then flattened back. -struct ImDrawVert; // A single vertex (pos + uv + col = 20 bytes by default. Override layout with IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT) -struct ImFont; // Runtime data for a single font within a parent ImFontAtlas -struct ImFontAtlas; // Runtime data for multiple fonts, bake multiple fonts into a single texture, TTF/OTF font loader -struct ImFontConfig; // Configuration data when adding a font or merging fonts -struct ImFontGlyph; // A single font glyph (code point + coordinates within in ImFontAtlas + offset) -struct ImFontGlyphRangesBuilder; // Helper to build glyph ranges from text/string data -struct ImColor; // Helper functions to create a color that can be converted to either u32 or float4 (*OBSOLETE* please avoid using) -struct ImGuiContext; // Dear ImGui context (opaque structure, unless including imgui_internal.h) -struct ImGuiIO; // Main configuration and I/O between your application and ImGui -struct ImGuiInputTextCallbackData; // Shared state of InputText() when using custom ImGuiInputTextCallback (rare/advanced use) -struct ImGuiListClipper; // Helper to manually clip large list of items -struct ImGuiOnceUponAFrame; // Helper for running a block of code not more than once a frame, used by IMGUI_ONCE_UPON_A_FRAME macro -struct ImGuiPayload; // User data payload for drag and drop operations -struct ImGuiSizeCallbackData; // Callback data when using SetNextWindowSizeConstraints() (rare/advanced use) -struct ImGuiStorage; // Helper for key->value storage -struct ImGuiStyle; // Runtime data for styling/colors -struct ImGuiTextBuffer; // Helper to hold and append into a text buffer (~string builder) -struct ImGuiTextFilter; // Helper to parse and apply text filters (e.g. "aaaaa[,bbbbb][,ccccc]") - -// Enums/Flags (declared as int for compatibility with old C++, to allow using as flags and to not pollute the top of this file) -// - Tip: Use your programming IDE navigation facilities on the names in the _central column_ below to find the actual flags/enum lists! -// In Visual Studio IDE: CTRL+comma ("Edit.NavigateTo") can follow symbols in comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot. -// With Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols in comments. -typedef int ImGuiCol; // -> enum ImGuiCol_ // Enum: A color identifier for styling -typedef int ImGuiCond; // -> enum ImGuiCond_ // Enum: A condition for many Set*() functions -typedef int ImGuiDataType; // -> enum ImGuiDataType_ // Enum: A primary data type -typedef int ImGuiDir; // -> enum ImGuiDir_ // Enum: A cardinal direction -typedef int ImGuiKey; // -> enum ImGuiKey_ // Enum: A key identifier (ImGui-side enum) -typedef int ImGuiNavInput; // -> enum ImGuiNavInput_ // Enum: An input identifier for navigation -typedef int ImGuiMouseButton; // -> enum ImGuiMouseButton_ // Enum: A mouse button identifier (0=left, 1=right, 2=middle) -typedef int ImGuiMouseCursor; // -> enum ImGuiMouseCursor_ // Enum: A mouse cursor identifier -typedef int ImGuiStyleVar; // -> enum ImGuiStyleVar_ // Enum: A variable identifier for styling -typedef int ImDrawCornerFlags; // -> enum ImDrawCornerFlags_ // Flags: for ImDrawList::AddRect(), AddRectFilled() etc. -typedef int ImDrawListFlags; // -> enum ImDrawListFlags_ // Flags: for ImDrawList -typedef int ImFontAtlasFlags; // -> enum ImFontAtlasFlags_ // Flags: for ImFontAtlas -typedef int ImGuiBackendFlags; // -> enum ImGuiBackendFlags_ // Flags: for io.BackendFlags -typedef int ImGuiColorEditFlags; // -> enum ImGuiColorEditFlags_ // Flags: for ColorEdit4(), ColorPicker4() etc. -typedef int ImGuiConfigFlags; // -> enum ImGuiConfigFlags_ // Flags: for io.ConfigFlags -typedef int ImGuiComboFlags; // -> enum ImGuiComboFlags_ // Flags: for BeginCombo() -typedef int ImGuiDragDropFlags; // -> enum ImGuiDragDropFlags_ // Flags: for BeginDragDropSource(), AcceptDragDropPayload() -typedef int ImGuiFocusedFlags; // -> enum ImGuiFocusedFlags_ // Flags: for IsWindowFocused() -typedef int ImGuiHoveredFlags; // -> enum ImGuiHoveredFlags_ // Flags: for IsItemHovered(), IsWindowHovered() etc. -typedef int ImGuiInputTextFlags; // -> enum ImGuiInputTextFlags_ // Flags: for InputText(), InputTextMultiline() -typedef int ImGuiKeyModFlags; // -> enum ImGuiKeyModFlags_ // Flags: for io.KeyMods (Ctrl/Shift/Alt/Super) -typedef int ImGuiSelectableFlags; // -> enum ImGuiSelectableFlags_ // Flags: for Selectable() -typedef int ImGuiTabBarFlags; // -> enum ImGuiTabBarFlags_ // Flags: for BeginTabBar() -typedef int ImGuiTabItemFlags; // -> enum ImGuiTabItemFlags_ // Flags: for BeginTabItem() -typedef int ImGuiTreeNodeFlags; // -> enum ImGuiTreeNodeFlags_ // Flags: for TreeNode(), TreeNodeEx(), CollapsingHeader() -typedef int ImGuiWindowFlags; // -> enum ImGuiWindowFlags_ // Flags: for Begin(), BeginChild() - -// Other types -#ifndef ImTextureID // ImTextureID [configurable type: override in imconfig.h with '#define ImTextureID xxx'] -typedef void* ImTextureID; // User data for rendering back-end to identify a texture. This is whatever to you want it to be! read the FAQ about ImTextureID for details. -#endif -typedef unsigned int ImGuiID; // A unique ID used by widgets, typically hashed from a stack of string. -typedef int (*ImGuiInputTextCallback)(ImGuiInputTextCallbackData *data); -typedef void (*ImGuiSizeCallback)(ImGuiSizeCallbackData* data); - -// Decoded character types -// (we generally use UTF-8 encoded string in the API. This is storage specifically for a decoded character used for keyboard input and display) -typedef unsigned short ImWchar16; // A single decoded U16 character/code point. We encode them as multi bytes UTF-8 when used in strings. -typedef unsigned int ImWchar32; // A single decoded U32 character/code point. We encode them as multi bytes UTF-8 when used in strings. -#ifdef IMGUI_USE_WCHAR32 // ImWchar [configurable type: override in imconfig.h with '#define IMGUI_USE_WCHAR32' to support Unicode planes 1-16] -typedef ImWchar32 ImWchar; -#else -typedef ImWchar16 ImWchar; -#endif - -// Basic scalar data types -typedef signed char ImS8; // 8-bit signed integer -typedef unsigned char ImU8; // 8-bit unsigned integer -typedef signed short ImS16; // 16-bit signed integer -typedef unsigned short ImU16; // 16-bit unsigned integer -typedef signed int ImS32; // 32-bit signed integer == int -typedef unsigned int ImU32; // 32-bit unsigned integer (often used to store packed colors) -#if defined(_MSC_VER) && !defined(__clang__) -typedef signed __int64 ImS64; // 64-bit signed integer (pre and post C++11 with Visual Studio) -typedef unsigned __int64 ImU64; // 64-bit unsigned integer (pre and post C++11 with Visual Studio) -#elif (defined(__clang__) || defined(__GNUC__)) && (__cplusplus < 201100) -#include -typedef int64_t ImS64; // 64-bit signed integer (pre C++11) -typedef uint64_t ImU64; // 64-bit unsigned integer (pre C++11) -#else -typedef signed long long ImS64; // 64-bit signed integer (post C++11) -typedef unsigned long long ImU64; // 64-bit unsigned integer (post C++11) -#endif - -// 2D vector (often used to store positions or sizes) -struct ImVec2 -{ - float x, y; - ImVec2() { x = y = 0.0f; } - ImVec2(float _x, float _y) { x = _x; y = _y; } - float operator[] (size_t idx) const { IM_ASSERT(idx <= 1); return (&x)[idx]; } // We very rarely use this [] operator, the assert overhead is fine. - float& operator[] (size_t idx) { IM_ASSERT(idx <= 1); return (&x)[idx]; } // We very rarely use this [] operator, the assert overhead is fine. -#ifdef IM_VEC2_CLASS_EXTRA - IM_VEC2_CLASS_EXTRA // Define additional constructors and implicit cast operators in imconfig.h to convert back and forth between your math types and ImVec2. -#endif -}; - -// 4D vector (often used to store floating-point colors) -struct ImVec4 -{ - float x, y, z, w; - ImVec4() { x = y = z = w = 0.0f; } - ImVec4(float _x, float _y, float _z, float _w) { x = _x; y = _y; z = _z; w = _w; } -#ifdef IM_VEC4_CLASS_EXTRA - IM_VEC4_CLASS_EXTRA // Define additional constructors and implicit cast operators in imconfig.h to convert back and forth between your math types and ImVec4. -#endif -}; - -//----------------------------------------------------------------------------- -// ImGui: Dear ImGui end-user API -// (This is a namespace. You can add extra ImGui:: functions in your own separate file. Please don't modify imgui source files!) -//----------------------------------------------------------------------------- - -namespace ImGui -{ - // Context creation and access - // Each context create its own ImFontAtlas by default. You may instance one yourself and pass it to CreateContext() to share a font atlas between imgui contexts. - // None of those functions is reliant on the current context. - IMGUI_API ImGuiContext* CreateContext(ImFontAtlas* shared_font_atlas = NULL); - IMGUI_API void DestroyContext(ImGuiContext* ctx = NULL); // NULL = destroy current context - IMGUI_API ImGuiContext* GetCurrentContext(); - IMGUI_API void SetCurrentContext(ImGuiContext* ctx); - - // Main - IMGUI_API ImGuiIO& GetIO(); // access the IO structure (mouse/keyboard/gamepad inputs, time, various configuration options/flags) - IMGUI_API ImGuiStyle& GetStyle(); // access the Style structure (colors, sizes). Always use PushStyleCol(), PushStyleVar() to modify style mid-frame! - IMGUI_API void NewFrame(); // start a new Dear ImGui frame, you can submit any command from this point until Render()/EndFrame(). - IMGUI_API void EndFrame(); // ends the Dear ImGui frame. automatically called by Render(). If you don't need to render data (skipping rendering) you may call EndFrame() without Render()... but you'll have wasted CPU already! If you don't need to render, better to not create any windows and not call NewFrame() at all! - IMGUI_API void Render(); // ends the Dear ImGui frame, finalize the draw data. You can get call GetDrawData() to obtain it and run your rendering function (up to v1.60, this used to call io.RenderDrawListsFn(). Nowadays, we allow and prefer calling your render function yourself.) - IMGUI_API ImDrawData* GetDrawData(); // valid after Render() and until the next call to NewFrame(). this is what you have to render. - - // Demo, Debug, Information - IMGUI_API void ShowDemoWindow(bool* p_open = NULL); // create Demo window (previously called ShowTestWindow). demonstrate most ImGui features. call this to learn about the library! try to make it always available in your application! - IMGUI_API void ShowAboutWindow(bool* p_open = NULL); // create About window. display Dear ImGui version, credits and build/system information. - IMGUI_API void ShowMetricsWindow(bool* p_open = NULL); // create Debug/Metrics window. display Dear ImGui internals: draw commands (with individual draw calls and vertices), window list, basic internal state, etc. - IMGUI_API void ShowStyleEditor(ImGuiStyle* ref = NULL); // add style editor block (not a window). you can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it uses the default style) - IMGUI_API bool ShowStyleSelector(const char* label); // add style selector block (not a window), essentially a combo listing the default styles. - IMGUI_API void ShowFontSelector(const char* label); // add font selector block (not a window), essentially a combo listing the loaded fonts. - IMGUI_API void ShowUserGuide(); // add basic help/info block (not a window): how to manipulate ImGui as a end-user (mouse/keyboard controls). - IMGUI_API const char* GetVersion(); // get the compiled version string e.g. "1.23" (essentially the compiled value for IMGUI_VERSION) - - // Styles - IMGUI_API void StyleColorsDark(ImGuiStyle* dst = NULL); // new, recommended style (default) - IMGUI_API void StyleColorsClassic(ImGuiStyle* dst = NULL); // classic imgui style - IMGUI_API void StyleColorsLight(ImGuiStyle* dst = NULL); // best used with borders and a custom, thicker font - - // Windows - // - Begin() = push window to the stack and start appending to it. End() = pop window from the stack. - // - You may append multiple times to the same window during the same frame. - // - Passing 'bool* p_open != NULL' shows a window-closing widget in the upper-right corner of the window, - // which clicking will set the boolean to false when clicked. - // - Begin() return false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting - // anything to the window. Always call a matching End() for each Begin() call, regardless of its return value! - // [Important: due to legacy reason, this is inconsistent with most other functions such as BeginMenu/EndMenu, - // BeginPopup/EndPopup, etc. where the EndXXX call should only be called if the corresponding BeginXXX function - // returned true. Begin and BeginChild are the only odd ones out. Will be fixed in a future update.] - // - Note that the bottom of window stack always contains a window called "Debug". - IMGUI_API bool Begin(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0); - IMGUI_API void End(); - - // Child Windows - // - Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window. Child windows can embed their own child. - // - For each independent axis of 'size': ==0.0f: use remaining host window size / >0.0f: fixed size / <0.0f: use remaining window size minus abs(size) / Each axis can use a different mode, e.g. ImVec2(0,400). - // - BeginChild() returns false to indicate the window is collapsed or fully clipped, so you may early out and omit submitting anything to the window. - // Always call a matching EndChild() for each BeginChild() call, regardless of its return value [as with Begin: this is due to legacy reason and inconsistent with most BeginXXX functions apart from the regular Begin() which behaves like BeginChild().] - IMGUI_API bool BeginChild(const char* str_id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags flags = 0); - IMGUI_API bool BeginChild(ImGuiID id, const ImVec2& size = ImVec2(0,0), bool border = false, ImGuiWindowFlags flags = 0); - IMGUI_API void EndChild(); - - // Windows Utilities - // - 'current window' = the window we are appending into while inside a Begin()/End() block. 'next window' = next window we will Begin() into. - IMGUI_API bool IsWindowAppearing(); - IMGUI_API bool IsWindowCollapsed(); - IMGUI_API bool IsWindowFocused(ImGuiFocusedFlags flags=0); // is current window focused? or its root/child, depending on flags. see flags for options. - IMGUI_API bool IsWindowHovered(ImGuiHoveredFlags flags=0); // is current window hovered (and typically: not blocked by a popup/modal)? see flags for options. NB: If you are trying to check whether your mouse should be dispatched to imgui or to your app, you should use the 'io.WantCaptureMouse' boolean for that! Please read the FAQ! - IMGUI_API ImDrawList* GetWindowDrawList(); // get draw list associated to the current window, to append your own drawing primitives - IMGUI_API ImVec2 GetWindowPos(); // get current window position in screen space (useful if you want to do your own drawing via the DrawList API) - IMGUI_API ImVec2 GetWindowSize(); // get current window size - IMGUI_API float GetWindowWidth(); // get current window width (shortcut for GetWindowSize().x) - IMGUI_API float GetWindowHeight(); // get current window height (shortcut for GetWindowSize().y) - - // Prefer using SetNextXXX functions (before Begin) rather that SetXXX functions (after Begin). - IMGUI_API void SetNextWindowPos(const ImVec2& pos, ImGuiCond cond = 0, const ImVec2& pivot = ImVec2(0,0)); // set next window position. call before Begin(). use pivot=(0.5f,0.5f) to center on given point, etc. - IMGUI_API void SetNextWindowSize(const ImVec2& size, ImGuiCond cond = 0); // set next window size. set axis to 0.0f to force an auto-fit on this axis. call before Begin() - IMGUI_API void SetNextWindowSizeConstraints(const ImVec2& size_min, const ImVec2& size_max, ImGuiSizeCallback custom_callback = NULL, void* custom_callback_data = NULL); // set next window size limits. use -1,-1 on either X/Y axis to preserve the current size. Sizes will be rounded down. Use callback to apply non-trivial programmatic constraints. - IMGUI_API void SetNextWindowContentSize(const ImVec2& size); // set next window content size (~ scrollable client area, which enforce the range of scrollbars). Not including window decorations (title bar, menu bar, etc.) nor WindowPadding. set an axis to 0.0f to leave it automatic. call before Begin() - IMGUI_API void SetNextWindowCollapsed(bool collapsed, ImGuiCond cond = 0); // set next window collapsed state. call before Begin() - IMGUI_API void SetNextWindowFocus(); // set next window to be focused / top-most. call before Begin() - IMGUI_API void SetNextWindowBgAlpha(float alpha); // set next window background color alpha. helper to easily override the Alpha component of ImGuiCol_WindowBg/ChildBg/PopupBg. you may also use ImGuiWindowFlags_NoBackground. - IMGUI_API void SetWindowPos(const ImVec2& pos, ImGuiCond cond = 0); // (not recommended) set current window position - call within Begin()/End(). prefer using SetNextWindowPos(), as this may incur tearing and side-effects. - IMGUI_API void SetWindowSize(const ImVec2& size, ImGuiCond cond = 0); // (not recommended) set current window size - call within Begin()/End(). set to ImVec2(0,0) to force an auto-fit. prefer using SetNextWindowSize(), as this may incur tearing and minor side-effects. - IMGUI_API void SetWindowCollapsed(bool collapsed, ImGuiCond cond = 0); // (not recommended) set current window collapsed state. prefer using SetNextWindowCollapsed(). - IMGUI_API void SetWindowFocus(); // (not recommended) set current window to be focused / top-most. prefer using SetNextWindowFocus(). - IMGUI_API void SetWindowFontScale(float scale); // set font scale. Adjust IO.FontGlobalScale if you want to scale all windows. This is an old API! For correct scaling, prefer to reload font + rebuild ImFontAtlas + call style.ScaleAllSizes(). - IMGUI_API void SetWindowPos(const char* name, const ImVec2& pos, ImGuiCond cond = 0); // set named window position. - IMGUI_API void SetWindowSize(const char* name, const ImVec2& size, ImGuiCond cond = 0); // set named window size. set axis to 0.0f to force an auto-fit on this axis. - IMGUI_API void SetWindowCollapsed(const char* name, bool collapsed, ImGuiCond cond = 0); // set named window collapsed state - IMGUI_API void SetWindowFocus(const char* name); // set named window to be focused / top-most. use NULL to remove focus. - - // Content region - // - Those functions are bound to be redesigned soon (they are confusing, incomplete and return values in local window coordinates which increases confusion) - IMGUI_API ImVec2 GetContentRegionMax(); // current content boundaries (typically window boundaries including scrolling, or current column boundaries), in windows coordinates - IMGUI_API ImVec2 GetContentRegionAvail(); // == GetContentRegionMax() - GetCursorPos() - IMGUI_API ImVec2 GetWindowContentRegionMin(); // content boundaries min (roughly (0,0)-Scroll), in window coordinates - IMGUI_API ImVec2 GetWindowContentRegionMax(); // content boundaries max (roughly (0,0)+Size-Scroll) where Size can be override with SetNextWindowContentSize(), in window coordinates - IMGUI_API float GetWindowContentRegionWidth(); // - - // Windows Scrolling - IMGUI_API float GetScrollX(); // get scrolling amount [0..GetScrollMaxX()] - IMGUI_API float GetScrollY(); // get scrolling amount [0..GetScrollMaxY()] - IMGUI_API float GetScrollMaxX(); // get maximum scrolling amount ~~ ContentSize.X - WindowSize.X - IMGUI_API float GetScrollMaxY(); // get maximum scrolling amount ~~ ContentSize.Y - WindowSize.Y - IMGUI_API void SetScrollX(float scroll_x); // set scrolling amount [0..GetScrollMaxX()] - IMGUI_API void SetScrollY(float scroll_y); // set scrolling amount [0..GetScrollMaxY()] - IMGUI_API void SetScrollHereX(float center_x_ratio = 0.5f); // adjust scrolling amount to make current cursor position visible. center_x_ratio=0.0: left, 0.5: center, 1.0: right. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. - IMGUI_API void SetScrollHereY(float center_y_ratio = 0.5f); // adjust scrolling amount to make current cursor position visible. center_y_ratio=0.0: top, 0.5: center, 1.0: bottom. When using to make a "default/current item" visible, consider using SetItemDefaultFocus() instead. - IMGUI_API void SetScrollFromPosX(float local_x, float center_x_ratio = 0.5f); // adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. - IMGUI_API void SetScrollFromPosY(float local_y, float center_y_ratio = 0.5f); // adjust scrolling amount to make given position visible. Generally GetCursorStartPos() + offset to compute a valid position. - - // Parameters stacks (shared) - IMGUI_API void PushFont(ImFont* font); // use NULL as a shortcut to push default font - IMGUI_API void PopFont(); - IMGUI_API void PushStyleColor(ImGuiCol idx, ImU32 col); - IMGUI_API void PushStyleColor(ImGuiCol idx, const ImVec4& col); - IMGUI_API void PopStyleColor(int count = 1); - IMGUI_API void PushStyleVar(ImGuiStyleVar idx, float val); - IMGUI_API void PushStyleVar(ImGuiStyleVar idx, const ImVec2& val); - IMGUI_API void PopStyleVar(int count = 1); - IMGUI_API const ImVec4& GetStyleColorVec4(ImGuiCol idx); // retrieve style color as stored in ImGuiStyle structure. use to feed back into PushStyleColor(), otherwise use GetColorU32() to get style color with style alpha baked in. - IMGUI_API ImFont* GetFont(); // get current font - IMGUI_API float GetFontSize(); // get current font size (= height in pixels) of current font with current scale applied - IMGUI_API ImVec2 GetFontTexUvWhitePixel(); // get UV coordinate for a while pixel, useful to draw custom shapes via the ImDrawList API - IMGUI_API ImU32 GetColorU32(ImGuiCol idx, float alpha_mul = 1.0f); // retrieve given style color with style alpha applied and optional extra alpha multiplier - IMGUI_API ImU32 GetColorU32(const ImVec4& col); // retrieve given color with style alpha applied - IMGUI_API ImU32 GetColorU32(ImU32 col); // retrieve given color with style alpha applied - - // Parameters stacks (current window) - IMGUI_API void PushItemWidth(float item_width); // push width of items for common large "item+label" widgets. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side). 0.0f = default to ~2/3 of windows width, - IMGUI_API void PopItemWidth(); - IMGUI_API void SetNextItemWidth(float item_width); // set width of the _next_ common large "item+label" widget. >0.0f: width in pixels, <0.0f align xx pixels to the right of window (so -1.0f always align width to the right side) - IMGUI_API float CalcItemWidth(); // width of item given pushed settings and current cursor position. NOT necessarily the width of last item unlike most 'Item' functions. - IMGUI_API void PushTextWrapPos(float wrap_local_pos_x = 0.0f); // push word-wrapping position for Text*() commands. < 0.0f: no wrapping; 0.0f: wrap to end of window (or column); > 0.0f: wrap at 'wrap_pos_x' position in window local space - IMGUI_API void PopTextWrapPos(); - IMGUI_API void PushAllowKeyboardFocus(bool allow_keyboard_focus); // allow focusing using TAB/Shift-TAB, enabled by default but you can disable it for certain widgets - IMGUI_API void PopAllowKeyboardFocus(); - IMGUI_API void PushButtonRepeat(bool repeat); // in 'repeat' mode, Button*() functions return repeated true in a typematic manner (using io.KeyRepeatDelay/io.KeyRepeatRate setting). Note that you can call IsItemActive() after any Button() to tell if the button is held in the current frame. - IMGUI_API void PopButtonRepeat(); - - // Cursor / Layout - // - By "cursor" we mean the current output position. - // - The typical widget behavior is to output themselves at the current cursor position, then move the cursor one line down. - // - You can call SameLine() between widgets to undo the last carriage return and output at the right of the preceeding widget. - // - Attention! We currently have inconsistencies between window-local and absolute positions we will aim to fix with future API: - // Window-local coordinates: SameLine(), GetCursorPos(), SetCursorPos(), GetCursorStartPos(), GetContentRegionMax(), GetWindowContentRegion*(), PushTextWrapPos() - // Absolute coordinate: GetCursorScreenPos(), SetCursorScreenPos(), all ImDrawList:: functions. - IMGUI_API void Separator(); // separator, generally horizontal. inside a menu bar or in horizontal layout mode, this becomes a vertical separator. - IMGUI_API void SameLine(float offset_from_start_x=0.0f, float spacing=-1.0f); // call between widgets or groups to layout them horizontally. X position given in window coordinates. - IMGUI_API void NewLine(); // undo a SameLine() or force a new line when in an horizontal-layout context. - IMGUI_API void Spacing(); // add vertical spacing. - IMGUI_API void Dummy(const ImVec2& size); // add a dummy item of given size. unlike InvisibleButton(), Dummy() won't take the mouse click or be navigable into. - IMGUI_API void Indent(float indent_w = 0.0f); // move content position toward the right, by style.IndentSpacing or indent_w if != 0 - IMGUI_API void Unindent(float indent_w = 0.0f); // move content position back to the left, by style.IndentSpacing or indent_w if != 0 - IMGUI_API void BeginGroup(); // lock horizontal starting position - IMGUI_API void EndGroup(); // unlock horizontal starting position + capture the whole group bounding box into one "item" (so you can use IsItemHovered() or layout primitives such as SameLine() on whole group, etc.) - IMGUI_API ImVec2 GetCursorPos(); // cursor position in window coordinates (relative to window position) - IMGUI_API float GetCursorPosX(); // (some functions are using window-relative coordinates, such as: GetCursorPos, GetCursorStartPos, GetContentRegionMax, GetWindowContentRegion* etc. - IMGUI_API float GetCursorPosY(); // other functions such as GetCursorScreenPos or everything in ImDrawList:: - IMGUI_API void SetCursorPos(const ImVec2& local_pos); // are using the main, absolute coordinate system. - IMGUI_API void SetCursorPosX(float local_x); // GetWindowPos() + GetCursorPos() == GetCursorScreenPos() etc.) - IMGUI_API void SetCursorPosY(float local_y); // - IMGUI_API ImVec2 GetCursorStartPos(); // initial cursor position in window coordinates - IMGUI_API ImVec2 GetCursorScreenPos(); // cursor position in absolute screen coordinates [0..io.DisplaySize] (useful to work with ImDrawList API) - IMGUI_API void SetCursorScreenPos(const ImVec2& pos); // cursor position in absolute screen coordinates [0..io.DisplaySize] - IMGUI_API void AlignTextToFramePadding(); // vertically align upcoming text baseline to FramePadding.y so that it will align properly to regularly framed items (call if you have text on a line before a framed item) - IMGUI_API float GetTextLineHeight(); // ~ FontSize - IMGUI_API float GetTextLineHeightWithSpacing(); // ~ FontSize + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of text) - IMGUI_API float GetFrameHeight(); // ~ FontSize + style.FramePadding.y * 2 - IMGUI_API float GetFrameHeightWithSpacing(); // ~ FontSize + style.FramePadding.y * 2 + style.ItemSpacing.y (distance in pixels between 2 consecutive lines of framed widgets) - - // ID stack/scopes - // - Read the FAQ for more details about how ID are handled in dear imgui. If you are creating widgets in a loop you most - // likely want to push a unique identifier (e.g. object pointer, loop index) to uniquely differentiate them. - // - The resulting ID are hashes of the entire stack. - // - You can also use the "Label##foobar" syntax within widget label to distinguish them from each others. - // - In this header file we use the "label"/"name" terminology to denote a string that will be displayed and used as an ID, - // whereas "str_id" denote a string that is only used as an ID and not normally displayed. - IMGUI_API void PushID(const char* str_id); // push string into the ID stack (will hash string). - IMGUI_API void PushID(const char* str_id_begin, const char* str_id_end); // push string into the ID stack (will hash string). - IMGUI_API void PushID(const void* ptr_id); // push pointer into the ID stack (will hash pointer). - IMGUI_API void PushID(int int_id); // push integer into the ID stack (will hash integer). - IMGUI_API void PopID(); // pop from the ID stack. - IMGUI_API ImGuiID GetID(const char* str_id); // calculate unique ID (hash of whole ID stack + given parameter). e.g. if you want to query into ImGuiStorage yourself - IMGUI_API ImGuiID GetID(const char* str_id_begin, const char* str_id_end); - IMGUI_API ImGuiID GetID(const void* ptr_id); - - // Widgets: Text - IMGUI_API void TextUnformatted(const char* text, const char* text_end = NULL); // raw text without formatting. Roughly equivalent to Text("%s", text) but: A) doesn't require null terminated string if 'text_end' is specified, B) it's faster, no memory copy is done, no buffer size limits, recommended for long chunks of text. - IMGUI_API void Text(const char* fmt, ...) IM_FMTARGS(1); // formatted text - IMGUI_API void TextV(const char* fmt, va_list args) IM_FMTLIST(1); - IMGUI_API void TextColored(const ImVec4& col, const char* fmt, ...) IM_FMTARGS(2); // shortcut for PushStyleColor(ImGuiCol_Text, col); Text(fmt, ...); PopStyleColor(); - IMGUI_API void TextColoredV(const ImVec4& col, const char* fmt, va_list args) IM_FMTLIST(2); - IMGUI_API void TextDisabled(const char* fmt, ...) IM_FMTARGS(1); // shortcut for PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); Text(fmt, ...); PopStyleColor(); - IMGUI_API void TextDisabledV(const char* fmt, va_list args) IM_FMTLIST(1); - IMGUI_API void TextWrapped(const char* fmt, ...) IM_FMTARGS(1); // shortcut for PushTextWrapPos(0.0f); Text(fmt, ...); PopTextWrapPos();. Note that this won't work on an auto-resizing window if there's no other widgets to extend the window width, yoy may need to set a size using SetNextWindowSize(). - IMGUI_API void TextWrappedV(const char* fmt, va_list args) IM_FMTLIST(1); - IMGUI_API void LabelText(const char* label, const char* fmt, ...) IM_FMTARGS(2); // display text+label aligned the same way as value+label widgets - IMGUI_API void LabelTextV(const char* label, const char* fmt, va_list args) IM_FMTLIST(2); - IMGUI_API void BulletText(const char* fmt, ...) IM_FMTARGS(1); // shortcut for Bullet()+Text() - IMGUI_API void BulletTextV(const char* fmt, va_list args) IM_FMTLIST(1); - - // Widgets: Main - // - Most widgets return true when the value has been changed or when pressed/selected - // - You may also use one of the many IsItemXXX functions (e.g. IsItemActive, IsItemHovered, etc.) to query widget state. - IMGUI_API bool Button(const char* label, const ImVec2& size = ImVec2(0,0)); // button - IMGUI_API bool SmallButton(const char* label); // button with FramePadding=(0,0) to easily embed within text - IMGUI_API bool InvisibleButton(const char* str_id, const ImVec2& size); // button behavior without the visuals, frequently useful to build custom behaviors using the public api (along with IsItemActive, IsItemHovered, etc.) - IMGUI_API bool ArrowButton(const char* str_id, ImGuiDir dir); // square button with an arrow shape - IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), const ImVec4& tint_col = ImVec4(1,1,1,1), const ImVec4& border_col = ImVec4(0,0,0,0)); - IMGUI_API bool ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0 = ImVec2(0,0), const ImVec2& uv1 = ImVec2(1,1), int frame_padding = -1, const ImVec4& bg_col = ImVec4(0,0,0,0), const ImVec4& tint_col = ImVec4(1,1,1,1)); // <0 frame_padding uses default frame padding settings. 0 for no padding - IMGUI_API bool Checkbox(const char* label, bool* v); - IMGUI_API bool CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value); - IMGUI_API bool RadioButton(const char* label, bool active); // use with e.g. if (RadioButton("one", my_value==1)) { my_value = 1; } - IMGUI_API bool RadioButton(const char* label, int* v, int v_button); // shortcut to handle the above pattern when value is an integer - IMGUI_API void ProgressBar(float fraction, const ImVec2& size_arg = ImVec2(-1,0), const char* overlay = NULL); - IMGUI_API void Bullet(); // draw a small circle and keep the cursor on the same line. advance cursor x position by GetTreeNodeToLabelSpacing(), same distance that TreeNode() uses - - // Widgets: Combo Box - // - The BeginCombo()/EndCombo() api allows you to manage your contents and selection state however you want it, by creating e.g. Selectable() items. - // - The old Combo() api are helpers over BeginCombo()/EndCombo() which are kept available for convenience purpose. - IMGUI_API bool BeginCombo(const char* label, const char* preview_value, ImGuiComboFlags flags = 0); - IMGUI_API void EndCombo(); // only call EndCombo() if BeginCombo() returns true! - IMGUI_API bool Combo(const char* label, int* current_item, const char* const items[], int items_count, int popup_max_height_in_items = -1); - IMGUI_API bool Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int popup_max_height_in_items = -1); // Separate items with \0 within a string, end item-list with \0\0. e.g. "One\0Two\0Three\0" - IMGUI_API bool Combo(const char* label, int* current_item, bool(*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int popup_max_height_in_items = -1); - - // Widgets: Drags - // - CTRL+Click on any drag box to turn them into an input box. Manually input values aren't clamped and can go off-bounds. - // - For all the Float2/Float3/Float4/Int2/Int3/Int4 versions of every functions, note that a 'float v[X]' function argument is the same as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. You can pass address of your first element out of a contiguous set, e.g. &myvector.x - // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. - // - Speed are per-pixel of mouse movement (v_speed=0.2f: mouse needs to move by 5 pixels to increase value by 1). For gamepad/keyboard navigation, minimum speed is Max(v_speed, minimum_step_at_given_precision). - // - Use v_min < v_max to clamp edits to given limits. Note that CTRL+Click manual input can override those limits. - // - Use v_max = FLT_MAX / INT_MAX etc to avoid clamping to a maximum, same with v_min = -FLT_MAX / INT_MIN to avoid clamping to a minimum. - // - Use v_min > v_max to lock edits. - IMGUI_API bool DragFloat(const char* label, float* v, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* format = "%.3f", float power = 1.0f); // If v_min >= v_max we have no bound - IMGUI_API bool DragFloat2(const char* label, float v[2], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* format = "%.3f", float power = 1.0f); - IMGUI_API bool DragFloat3(const char* label, float v[3], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* format = "%.3f", float power = 1.0f); - IMGUI_API bool DragFloat4(const char* label, float v[4], float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* format = "%.3f", float power = 1.0f); - IMGUI_API bool DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed = 1.0f, float v_min = 0.0f, float v_max = 0.0f, const char* format = "%.3f", const char* format_max = NULL, float power = 1.0f); - IMGUI_API bool DragInt(const char* label, int* v, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* format = "%d"); // If v_min >= v_max we have no bound - IMGUI_API bool DragInt2(const char* label, int v[2], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* format = "%d"); - IMGUI_API bool DragInt3(const char* label, int v[3], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* format = "%d"); - IMGUI_API bool DragInt4(const char* label, int v[4], float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* format = "%d"); - IMGUI_API bool DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed = 1.0f, int v_min = 0, int v_max = 0, const char* format = "%d", const char* format_max = NULL); - IMGUI_API bool DragScalar(const char* label, ImGuiDataType data_type, void* p_data, float v_speed, const void* p_min = NULL, const void* p_max = NULL, const char* format = NULL, float power = 1.0f); - IMGUI_API bool DragScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, float v_speed, const void* p_min = NULL, const void* p_max = NULL, const char* format = NULL, float power = 1.0f); - - // Widgets: Sliders - // - CTRL+Click on any slider to turn them into an input box. Manually input values aren't clamped and can go off-bounds. - // - Adjust format string to decorate the value with a prefix, a suffix, or adapt the editing and display precision e.g. "%.3f" -> 1.234; "%5.2f secs" -> 01.23 secs; "Biscuit: %.0f" -> Biscuit: 1; etc. - IMGUI_API bool SliderFloat(const char* label, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f); // adjust format to decorate the value with a prefix or a suffix for in-slider labels or unit display. Use power!=1.0 for power curve sliders - IMGUI_API bool SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* format = "%.3f", float power = 1.0f); - IMGUI_API bool SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* format = "%.3f", float power = 1.0f); - IMGUI_API bool SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* format = "%.3f", float power = 1.0f); - IMGUI_API bool SliderAngle(const char* label, float* v_rad, float v_degrees_min = -360.0f, float v_degrees_max = +360.0f, const char* format = "%.0f deg"); - IMGUI_API bool SliderInt(const char* label, int* v, int v_min, int v_max, const char* format = "%d"); - IMGUI_API bool SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* format = "%d"); - IMGUI_API bool SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* format = "%d"); - IMGUI_API bool SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* format = "%d"); - IMGUI_API bool SliderScalar(const char* label, ImGuiDataType data_type, void* p_data, const void* p_min, const void* p_max, const char* format = NULL, float power = 1.0f); - IMGUI_API bool SliderScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, const void* p_min, const void* p_max, const char* format = NULL, float power = 1.0f); - IMGUI_API bool VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* format = "%.3f", float power = 1.0f); - IMGUI_API bool VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* format = "%d"); - IMGUI_API bool VSliderScalar(const char* label, const ImVec2& size, ImGuiDataType data_type, void* p_data, const void* p_min, const void* p_max, const char* format = NULL, float power = 1.0f); - - // Widgets: Input with Keyboard - // - If you want to use InputText() with std::string or any custom dynamic string type, see misc/cpp/imgui_stdlib.h and comments in imgui_demo.cpp. - // - Most of the ImGuiInputTextFlags flags are only useful for InputText() and not for InputFloatX, InputIntX, InputDouble etc. - IMGUI_API bool InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); - IMGUI_API bool InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size = ImVec2(0,0), ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); - IMGUI_API bool InputTextWithHint(const char* label, const char* hint, char* buf, size_t buf_size, ImGuiInputTextFlags flags = 0, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); - IMGUI_API bool InputFloat(const char* label, float* v, float step = 0.0f, float step_fast = 0.0f, const char* format = "%.3f", ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputFloat2(const char* label, float v[2], const char* format = "%.3f", ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputFloat3(const char* label, float v[3], const char* format = "%.3f", ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputFloat4(const char* label, float v[4], const char* format = "%.3f", ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputInt(const char* label, int* v, int step = 1, int step_fast = 100, ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputInt2(const char* label, int v[2], ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputInt3(const char* label, int v[3], ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputInt4(const char* label, int v[4], ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputDouble(const char* label, double* v, double step = 0.0, double step_fast = 0.0, const char* format = "%.6f", ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputScalar(const char* label, ImGuiDataType data_type, void* p_data, const void* p_step = NULL, const void* p_step_fast = NULL, const char* format = NULL, ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, const void* p_step = NULL, const void* p_step_fast = NULL, const char* format = NULL, ImGuiInputTextFlags flags = 0); - - // Widgets: Color Editor/Picker (tip: the ColorEdit* functions have a little colored preview square that can be left-clicked to open a picker, and right-clicked to open an option menu.) - // - Note that in C++ a 'float v[X]' function argument is the _same_ as 'float* v', the array syntax is just a way to document the number of elements that are expected to be accessible. - // - You can pass the address of a first float element out of a contiguous structure, e.g. &myvector.x - IMGUI_API bool ColorEdit3(const char* label, float col[3], ImGuiColorEditFlags flags = 0); - IMGUI_API bool ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flags = 0); - IMGUI_API bool ColorPicker3(const char* label, float col[3], ImGuiColorEditFlags flags = 0); - IMGUI_API bool ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags flags = 0, const float* ref_col = NULL); - IMGUI_API bool ColorButton(const char* desc_id, const ImVec4& col, ImGuiColorEditFlags flags = 0, ImVec2 size = ImVec2(0,0)); // display a colored square/button, hover for details, return true when pressed. - IMGUI_API void SetColorEditOptions(ImGuiColorEditFlags flags); // initialize current options (generally on application startup) if you want to select a default format, picker type, etc. User will be able to change many settings, unless you pass the _NoOptions flag to your calls. - - // Widgets: Trees - // - TreeNode functions return true when the node is open, in which case you need to also call TreePop() when you are finished displaying the tree node contents. - IMGUI_API bool TreeNode(const char* label); - IMGUI_API bool TreeNode(const char* str_id, const char* fmt, ...) IM_FMTARGS(2); // helper variation to easily decorelate the id from the displayed string. Read the FAQ about why and how to use ID. to align arbitrary text at the same level as a TreeNode() you can use Bullet(). - IMGUI_API bool TreeNode(const void* ptr_id, const char* fmt, ...) IM_FMTARGS(2); // " - IMGUI_API bool TreeNodeV(const char* str_id, const char* fmt, va_list args) IM_FMTLIST(2); - IMGUI_API bool TreeNodeV(const void* ptr_id, const char* fmt, va_list args) IM_FMTLIST(2); - IMGUI_API bool TreeNodeEx(const char* label, ImGuiTreeNodeFlags flags = 0); - IMGUI_API bool TreeNodeEx(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, ...) IM_FMTARGS(3); - IMGUI_API bool TreeNodeEx(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, ...) IM_FMTARGS(3); - IMGUI_API bool TreeNodeExV(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args) IM_FMTLIST(3); - IMGUI_API bool TreeNodeExV(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args) IM_FMTLIST(3); - IMGUI_API void TreePush(const char* str_id); // ~ Indent()+PushId(). Already called by TreeNode() when returning true, but you can call TreePush/TreePop yourself if desired. - IMGUI_API void TreePush(const void* ptr_id = NULL); // " - IMGUI_API void TreePop(); // ~ Unindent()+PopId() - IMGUI_API float GetTreeNodeToLabelSpacing(); // horizontal distance preceding label when using TreeNode*() or Bullet() == (g.FontSize + style.FramePadding.x*2) for a regular unframed TreeNode - IMGUI_API bool CollapsingHeader(const char* label, ImGuiTreeNodeFlags flags = 0); // if returning 'true' the header is open. doesn't indent nor push on ID stack. user doesn't have to call TreePop(). - IMGUI_API bool CollapsingHeader(const char* label, bool* p_open, ImGuiTreeNodeFlags flags = 0); // when 'p_open' isn't NULL, display an additional small close button on upper right of the header - IMGUI_API void SetNextItemOpen(bool is_open, ImGuiCond cond = 0); // set next TreeNode/CollapsingHeader open state. - - // Widgets: Selectables - // - A selectable highlights when hovered, and can display another color when selected. - // - Neighbors selectable extend their highlight bounds in order to leave no gap between them. This is so a series of selected Selectable appear contiguous. - IMGUI_API bool Selectable(const char* label, bool selected = false, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); // "bool selected" carry the selection state (read-only). Selectable() is clicked is returns true so you can modify your selection state. size.x==0.0: use remaining width, size.x>0.0: specify width. size.y==0.0: use label height, size.y>0.0: specify height - IMGUI_API bool Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags = 0, const ImVec2& size = ImVec2(0,0)); // "bool* p_selected" point to the selection state (read-write), as a convenient helper. - - // Widgets: List Boxes - // - FIXME: To be consistent with all the newer API, ListBoxHeader/ListBoxFooter should in reality be called BeginListBox/EndListBox. Will rename them. - IMGUI_API bool ListBox(const char* label, int* current_item, const char* const items[], int items_count, int height_in_items = -1); - IMGUI_API bool ListBox(const char* label, int* current_item, bool (*items_getter)(void* data, int idx, const char** out_text), void* data, int items_count, int height_in_items = -1); - IMGUI_API bool ListBoxHeader(const char* label, const ImVec2& size = ImVec2(0,0)); // use if you want to reimplement ListBox() will custom data or interactions. if the function return true, you can output elements then call ListBoxFooter() afterwards. - IMGUI_API bool ListBoxHeader(const char* label, int items_count, int height_in_items = -1); // " - IMGUI_API void ListBoxFooter(); // terminate the scrolling region. only call ListBoxFooter() if ListBoxHeader() returned true! - - // Widgets: Data Plotting - IMGUI_API void PlotLines(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0), int stride = sizeof(float)); - IMGUI_API void PlotLines(const char* label, float(*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0)); - IMGUI_API void PlotHistogram(const char* label, const float* values, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0), int stride = sizeof(float)); - IMGUI_API void PlotHistogram(const char* label, float(*values_getter)(void* data, int idx), void* data, int values_count, int values_offset = 0, const char* overlay_text = NULL, float scale_min = FLT_MAX, float scale_max = FLT_MAX, ImVec2 graph_size = ImVec2(0, 0)); - - // Widgets: Value() Helpers. - // - Those are merely shortcut to calling Text() with a format string. Output single value in "name: value" format (tip: freely declare more in your code to handle your types. you can add functions to the ImGui namespace) - IMGUI_API void Value(const char* prefix, bool b); - IMGUI_API void Value(const char* prefix, int v); - IMGUI_API void Value(const char* prefix, unsigned int v); - IMGUI_API void Value(const char* prefix, float v, const char* float_format = NULL); - - // Widgets: Menus - // - Use BeginMenuBar() on a window ImGuiWindowFlags_MenuBar to append to its menu bar. - // - Use BeginMainMenuBar() to create a menu bar at the top of the screen and append to it. - // - Use BeginMenu() to create a menu. You can call BeginMenu() multiple time with the same identifier to append more items to it. - IMGUI_API bool BeginMenuBar(); // append to menu-bar of current window (requires ImGuiWindowFlags_MenuBar flag set on parent window). - IMGUI_API void EndMenuBar(); // only call EndMenuBar() if BeginMenuBar() returns true! - IMGUI_API bool BeginMainMenuBar(); // create and append to a full screen menu-bar. - IMGUI_API void EndMainMenuBar(); // only call EndMainMenuBar() if BeginMainMenuBar() returns true! - IMGUI_API bool BeginMenu(const char* label, bool enabled = true); // create a sub-menu entry. only call EndMenu() if this returns true! - IMGUI_API void EndMenu(); // only call EndMenu() if BeginMenu() returns true! - IMGUI_API bool MenuItem(const char* label, const char* shortcut = NULL, bool selected = false, bool enabled = true); // return true when activated. shortcuts are displayed for convenience but not processed by ImGui at the moment - IMGUI_API bool MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled = true); // return true when activated + toggle (*p_selected) if p_selected != NULL - - // Tooltips - // - Tooltip are windows following the mouse which do not take focus away. - IMGUI_API void BeginTooltip(); // begin/append a tooltip window. to create full-featured tooltip (with any kind of items). - IMGUI_API void EndTooltip(); - IMGUI_API void SetTooltip(const char* fmt, ...) IM_FMTARGS(1); // set a text-only tooltip, typically use with ImGui::IsItemHovered(). override any previous call to SetTooltip(). - IMGUI_API void SetTooltipV(const char* fmt, va_list args) IM_FMTLIST(1); - - // Popups, Modals - // The properties of popups windows are: - // - They block normal mouse hovering detection outside them. (*) - // - Unless modal, they can be closed by clicking anywhere outside them, or by pressing ESCAPE. - // - Their visibility state (~bool) is held internally by imgui instead of being held by the programmer as we are used to with regular Begin() calls. - // User can manipulate the visibility state by calling OpenPopup(). - // - We default to use the right mouse (ImGuiMouseButton_Right=1) for the Popup Context functions. - // (*) You can use IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup) to bypass it and detect hovering even when normally blocked by a popup. - // Those three properties are connected. The library needs to hold their visibility state because it can close popups at any time. - IMGUI_API void OpenPopup(const char* str_id); // call to mark popup as open (don't call every frame!). popups are closed when user click outside, or if CloseCurrentPopup() is called within a BeginPopup()/EndPopup() block. By default, Selectable()/MenuItem() are calling CloseCurrentPopup(). Popup identifiers are relative to the current ID-stack (so OpenPopup and BeginPopup needs to be at the same level). - IMGUI_API bool BeginPopup(const char* str_id, ImGuiWindowFlags flags = 0); // return true if the popup is open, and you can start outputting to it. only call EndPopup() if BeginPopup() returns true! - IMGUI_API bool BeginPopupContextItem(const char* str_id = NULL, ImGuiMouseButton mouse_button = 1); // helper to open and begin popup when clicked on last item. if you can pass a NULL str_id only if the previous item had an id. If you want to use that on a non-interactive item such as Text() you need to pass in an explicit ID here. read comments in .cpp! - IMGUI_API bool BeginPopupContextWindow(const char* str_id = NULL, ImGuiMouseButton mouse_button = 1, bool also_over_items = true); // helper to open and begin popup when clicked on current window. - IMGUI_API bool BeginPopupContextVoid(const char* str_id = NULL, ImGuiMouseButton mouse_button = 1); // helper to open and begin popup when clicked in void (where there are no imgui windows). - IMGUI_API bool BeginPopupModal(const char* name, bool* p_open = NULL, ImGuiWindowFlags flags = 0); // modal dialog (regular window with title bar, block interactions behind the modal window, can't close the modal window by clicking outside) - IMGUI_API void EndPopup(); // only call EndPopup() if BeginPopupXXX() returns true! - IMGUI_API bool OpenPopupOnItemClick(const char* str_id = NULL, ImGuiMouseButton mouse_button = 1); // helper to open popup when clicked on last item (note: actually triggers on the mouse _released_ event to be consistent with popup behaviors). return true when just opened. - IMGUI_API bool IsPopupOpen(const char* str_id); // return true if the popup is open at the current begin-ed level of the popup stack. - IMGUI_API void CloseCurrentPopup(); // close the popup we have begin-ed into. clicking on a MenuItem or Selectable automatically close the current popup. - - // Columns - // - You can also use SameLine(pos_x) to mimic simplified columns. - // - The columns API is work-in-progress and rather lacking (columns are arguably the worst part of dear imgui at the moment!) - // - There is a maximum of 64 columns. - // - Currently working on new 'Tables' api which will replace columns around Q2 2020 (see GitHub #2957). - IMGUI_API void Columns(int count = 1, const char* id = NULL, bool border = true); - IMGUI_API void NextColumn(); // next column, defaults to current row or next row if the current row is finished - IMGUI_API int GetColumnIndex(); // get current column index - IMGUI_API float GetColumnWidth(int column_index = -1); // get column width (in pixels). pass -1 to use current column - IMGUI_API void SetColumnWidth(int column_index, float width); // set column width (in pixels). pass -1 to use current column - IMGUI_API float GetColumnOffset(int column_index = -1); // get position of column line (in pixels, from the left side of the contents region). pass -1 to use current column, otherwise 0..GetColumnsCount() inclusive. column 0 is typically 0.0f - IMGUI_API void SetColumnOffset(int column_index, float offset_x); // set position of column line (in pixels, from the left side of the contents region). pass -1 to use current column - IMGUI_API int GetColumnsCount(); - - // Tab Bars, Tabs - IMGUI_API bool BeginTabBar(const char* str_id, ImGuiTabBarFlags flags = 0); // create and append into a TabBar - IMGUI_API void EndTabBar(); // only call EndTabBar() if BeginTabBar() returns true! - IMGUI_API bool BeginTabItem(const char* label, bool* p_open = NULL, ImGuiTabItemFlags flags = 0);// create a Tab. Returns true if the Tab is selected. - IMGUI_API void EndTabItem(); // only call EndTabItem() if BeginTabItem() returns true! - IMGUI_API void SetTabItemClosed(const char* tab_or_docked_window_label); // notify TabBar or Docking system of a closed tab/window ahead (useful to reduce visual flicker on reorderable tab bars). For tab-bar: call after BeginTabBar() and before Tab submissions. Otherwise call with a window name. - - // Logging/Capture - // - All text output from the interface can be captured into tty/file/clipboard. By default, tree nodes are automatically opened during logging. - IMGUI_API void LogToTTY(int auto_open_depth = -1); // start logging to tty (stdout) - IMGUI_API void LogToFile(int auto_open_depth = -1, const char* filename = NULL); // start logging to file - IMGUI_API void LogToClipboard(int auto_open_depth = -1); // start logging to OS clipboard - IMGUI_API void LogFinish(); // stop logging (close file, etc.) - IMGUI_API void LogButtons(); // helper to display buttons for logging to tty/file/clipboard - IMGUI_API void LogText(const char* fmt, ...) IM_FMTARGS(1); // pass text data straight to log (without being displayed) - - // Drag and Drop - // - [BETA API] API may evolve! - IMGUI_API bool BeginDragDropSource(ImGuiDragDropFlags flags = 0); // call when the current item is active. If this return true, you can call SetDragDropPayload() + EndDragDropSource() - IMGUI_API bool SetDragDropPayload(const char* type, const void* data, size_t sz, ImGuiCond cond = 0); // type is a user defined string of maximum 32 characters. Strings starting with '_' are reserved for dear imgui internal types. Data is copied and held by imgui. - IMGUI_API void EndDragDropSource(); // only call EndDragDropSource() if BeginDragDropSource() returns true! - IMGUI_API bool BeginDragDropTarget(); // call after submitting an item that may receive a payload. If this returns true, you can call AcceptDragDropPayload() + EndDragDropTarget() - IMGUI_API const ImGuiPayload* AcceptDragDropPayload(const char* type, ImGuiDragDropFlags flags = 0); // accept contents of a given type. If ImGuiDragDropFlags_AcceptBeforeDelivery is set you can peek into the payload before the mouse button is released. - IMGUI_API void EndDragDropTarget(); // only call EndDragDropTarget() if BeginDragDropTarget() returns true! - IMGUI_API const ImGuiPayload* GetDragDropPayload(); // peek directly into the current payload from anywhere. may return NULL. use ImGuiPayload::IsDataType() to test for the payload type. - - // Clipping - IMGUI_API void PushClipRect(const ImVec2& clip_rect_min, const ImVec2& clip_rect_max, bool intersect_with_current_clip_rect); - IMGUI_API void PopClipRect(); - - // Focus, Activation - // - Prefer using "SetItemDefaultFocus()" over "if (IsWindowAppearing()) SetScrollHereY()" when applicable to signify "this is the default item" - IMGUI_API void SetItemDefaultFocus(); // make last item the default focused item of a window. - IMGUI_API void SetKeyboardFocusHere(int offset = 0); // focus keyboard on the next widget. Use positive 'offset' to access sub components of a multiple component widget. Use -1 to access previous widget. - - // Item/Widgets Utilities - // - Most of the functions are referring to the last/previous item we submitted. - // - See Demo Window under "Widgets->Querying Status" for an interactive visualization of most of those functions. - IMGUI_API bool IsItemHovered(ImGuiHoveredFlags flags = 0); // is the last item hovered? (and usable, aka not blocked by a popup, etc.). See ImGuiHoveredFlags for more options. - IMGUI_API bool IsItemActive(); // is the last item active? (e.g. button being held, text field being edited. This will continuously return true while holding mouse button on an item. Items that don't interact will always return false) - IMGUI_API bool IsItemFocused(); // is the last item focused for keyboard/gamepad navigation? - IMGUI_API bool IsItemClicked(ImGuiMouseButton mouse_button = 0); // is the last item clicked? (e.g. button/node just clicked on) == IsMouseClicked(mouse_button) && IsItemHovered() - IMGUI_API bool IsItemVisible(); // is the last item visible? (items may be out of sight because of clipping/scrolling) - IMGUI_API bool IsItemEdited(); // did the last item modify its underlying value this frame? or was pressed? This is generally the same as the "bool" return value of many widgets. - IMGUI_API bool IsItemActivated(); // was the last item just made active (item was previously inactive). - IMGUI_API bool IsItemDeactivated(); // was the last item just made inactive (item was previously active). Useful for Undo/Redo patterns with widgets that requires continuous editing. - IMGUI_API bool IsItemDeactivatedAfterEdit(); // was the last item just made inactive and made a value change when it was active? (e.g. Slider/Drag moved). Useful for Undo/Redo patterns with widgets that requires continuous editing. Note that you may get false positives (some widgets such as Combo()/ListBox()/Selectable() will return true even when clicking an already selected item). - IMGUI_API bool IsItemToggledOpen(); // was the last item open state toggled? set by TreeNode(). - IMGUI_API bool IsAnyItemHovered(); // is any item hovered? - IMGUI_API bool IsAnyItemActive(); // is any item active? - IMGUI_API bool IsAnyItemFocused(); // is any item focused? - IMGUI_API ImVec2 GetItemRectMin(); // get upper-left bounding rectangle of the last item (screen space) - IMGUI_API ImVec2 GetItemRectMax(); // get lower-right bounding rectangle of the last item (screen space) - IMGUI_API ImVec2 GetItemRectSize(); // get size of last item - IMGUI_API void SetItemAllowOverlap(); // allow last item to be overlapped by a subsequent item. sometimes useful with invisible buttons, selectables, etc. to catch unused area. - - // Miscellaneous Utilities - IMGUI_API bool IsRectVisible(const ImVec2& size); // test if rectangle (of given size, starting from cursor position) is visible / not clipped. - IMGUI_API bool IsRectVisible(const ImVec2& rect_min, const ImVec2& rect_max); // test if rectangle (in screen space) is visible / not clipped. to perform coarse clipping on user's side. - IMGUI_API double GetTime(); // get global imgui time. incremented by io.DeltaTime every frame. - IMGUI_API int GetFrameCount(); // get global imgui frame count. incremented by 1 every frame. - IMGUI_API ImDrawList* GetBackgroundDrawList(); // this draw list will be the first rendering one. Useful to quickly draw shapes/text behind dear imgui contents. - IMGUI_API ImDrawList* GetForegroundDrawList(); // this draw list will be the last rendered one. Useful to quickly draw shapes/text over dear imgui contents. - IMGUI_API ImDrawListSharedData* GetDrawListSharedData(); // you may use this when creating your own ImDrawList instances. - IMGUI_API const char* GetStyleColorName(ImGuiCol idx); // get a string corresponding to the enum value (for display, saving, etc.). - IMGUI_API void SetStateStorage(ImGuiStorage* storage); // replace current window storage with our own (if you want to manipulate it yourself, typically clear subsection of it) - IMGUI_API ImGuiStorage* GetStateStorage(); - IMGUI_API void CalcListClipping(int items_count, float items_height, int* out_items_display_start, int* out_items_display_end); // calculate coarse clipping for large list of evenly sized items. Prefer using the ImGuiListClipper higher-level helper if you can. - IMGUI_API bool BeginChildFrame(ImGuiID id, const ImVec2& size, ImGuiWindowFlags flags = 0); // helper to create a child window / scrolling region that looks like a normal widget frame - IMGUI_API void EndChildFrame(); // always call EndChildFrame() regardless of BeginChildFrame() return values (which indicates a collapsed/clipped window) - - // Text Utilities - IMGUI_API ImVec2 CalcTextSize(const char* text, const char* text_end = NULL, bool hide_text_after_double_hash = false, float wrap_width = -1.0f); - - // Color Utilities - IMGUI_API ImVec4 ColorConvertU32ToFloat4(ImU32 in); - IMGUI_API ImU32 ColorConvertFloat4ToU32(const ImVec4& in); - IMGUI_API void ColorConvertRGBtoHSV(float r, float g, float b, float& out_h, float& out_s, float& out_v); - IMGUI_API void ColorConvertHSVtoRGB(float h, float s, float v, float& out_r, float& out_g, float& out_b); - - // Inputs Utilities: Keyboard - // - For 'int user_key_index' you can use your own indices/enums according to how your backend/engine stored them in io.KeysDown[]. - // - We don't know the meaning of those value. You can use GetKeyIndex() to map a ImGuiKey_ value into the user index. - IMGUI_API int GetKeyIndex(ImGuiKey imgui_key); // map ImGuiKey_* values into user's key index. == io.KeyMap[key] - IMGUI_API bool IsKeyDown(int user_key_index); // is key being held. == io.KeysDown[user_key_index]. - IMGUI_API bool IsKeyPressed(int user_key_index, bool repeat = true); // was key pressed (went from !Down to Down)? if repeat=true, uses io.KeyRepeatDelay / KeyRepeatRate - IMGUI_API bool IsKeyReleased(int user_key_index); // was key released (went from Down to !Down)? - IMGUI_API int GetKeyPressedAmount(int key_index, float repeat_delay, float rate); // uses provided repeat rate/delay. return a count, most often 0 or 1 but might be >1 if RepeatRate is small enough that DeltaTime > RepeatRate - IMGUI_API void CaptureKeyboardFromApp(bool want_capture_keyboard_value = true); // attention: misleading name! manually override io.WantCaptureKeyboard flag next frame (said flag is entirely left for your application to handle). e.g. force capture keyboard when your widget is being hovered. This is equivalent to setting "io.WantCaptureKeyboard = want_capture_keyboard_value"; after the next NewFrame() call. - - // Inputs Utilities: Mouse - // - To refer to a mouse button, you may use named enums in your code e.g. ImGuiMouseButton_Left, ImGuiMouseButton_Right. - // - You can also use regular integer: it is forever guaranteed that 0=Left, 1=Right, 2=Middle. - // - Dragging operations are only reported after mouse has moved a certain distance away from the initial clicking position (see 'lock_threshold' and 'io.MouseDraggingThreshold') - IMGUI_API bool IsMouseDown(ImGuiMouseButton button); // is mouse button held? - IMGUI_API bool IsMouseClicked(ImGuiMouseButton button, bool repeat = false); // did mouse button clicked? (went from !Down to Down) - IMGUI_API bool IsMouseReleased(ImGuiMouseButton button); // did mouse button released? (went from Down to !Down) - IMGUI_API bool IsMouseDoubleClicked(ImGuiMouseButton button); // did mouse button double-clicked? a double-click returns false in IsMouseClicked(). uses io.MouseDoubleClickTime. - IMGUI_API bool IsMouseHoveringRect(const ImVec2& r_min, const ImVec2& r_max, bool clip = true);// is mouse hovering given bounding rect (in screen space). clipped by current clipping settings, but disregarding of other consideration of focus/window ordering/popup-block. - IMGUI_API bool IsMousePosValid(const ImVec2* mouse_pos = NULL); // by convention we use (-FLT_MAX,-FLT_MAX) to denote that there is no mouse available - IMGUI_API bool IsAnyMouseDown(); // is any mouse button held? - IMGUI_API ImVec2 GetMousePos(); // shortcut to ImGui::GetIO().MousePos provided by user, to be consistent with other calls - IMGUI_API ImVec2 GetMousePosOnOpeningCurrentPopup(); // retrieve mouse position at the time of opening popup we have BeginPopup() into (helper to avoid user backing that value themselves) - IMGUI_API bool IsMouseDragging(ImGuiMouseButton button, float lock_threshold = -1.0f); // is mouse dragging? (if lock_threshold < -1.0f, uses io.MouseDraggingThreshold) - IMGUI_API ImVec2 GetMouseDragDelta(ImGuiMouseButton button = 0, float lock_threshold = -1.0f); // return the delta from the initial clicking position while the mouse button is pressed or was just released. This is locked and return 0.0f until the mouse moves past a distance threshold at least once (if lock_threshold < -1.0f, uses io.MouseDraggingThreshold) - IMGUI_API void ResetMouseDragDelta(ImGuiMouseButton button = 0); // - IMGUI_API ImGuiMouseCursor GetMouseCursor(); // get desired cursor type, reset in ImGui::NewFrame(), this is updated during the frame. valid before Render(). If you use software rendering by setting io.MouseDrawCursor ImGui will render those for you - IMGUI_API void SetMouseCursor(ImGuiMouseCursor cursor_type); // set desired cursor type - IMGUI_API void CaptureMouseFromApp(bool want_capture_mouse_value = true); // attention: misleading name! manually override io.WantCaptureMouse flag next frame (said flag is entirely left for your application to handle). This is equivalent to setting "io.WantCaptureMouse = want_capture_mouse_value;" after the next NewFrame() call. - - // Clipboard Utilities - // - Also see the LogToClipboard() function to capture GUI into clipboard, or easily output text data to the clipboard. - IMGUI_API const char* GetClipboardText(); - IMGUI_API void SetClipboardText(const char* text); - - // Settings/.Ini Utilities - // - The disk functions are automatically called if io.IniFilename != NULL (default is "imgui.ini"). - // - Set io.IniFilename to NULL to load/save manually. Read io.WantSaveIniSettings description about handling .ini saving manually. - IMGUI_API void LoadIniSettingsFromDisk(const char* ini_filename); // call after CreateContext() and before the first call to NewFrame(). NewFrame() automatically calls LoadIniSettingsFromDisk(io.IniFilename). - IMGUI_API void LoadIniSettingsFromMemory(const char* ini_data, size_t ini_size=0); // call after CreateContext() and before the first call to NewFrame() to provide .ini data from your own data source. - IMGUI_API void SaveIniSettingsToDisk(const char* ini_filename); // this is automatically called (if io.IniFilename is not empty) a few seconds after any modification that should be reflected in the .ini file (and also by DestroyContext). - IMGUI_API const char* SaveIniSettingsToMemory(size_t* out_ini_size = NULL); // return a zero-terminated string with the .ini data which you can save by your own mean. call when io.WantSaveIniSettings is set, then save data by your own mean and clear io.WantSaveIniSettings. - - // Debug Utilities - IMGUI_API bool DebugCheckVersionAndDataLayout(const char* version_str, size_t sz_io, size_t sz_style, size_t sz_vec2, size_t sz_vec4, size_t sz_drawvert, size_t sz_drawidx); // This is called by IMGUI_CHECKVERSION() macro. - - // Memory Allocators - // - All those functions are not reliant on the current context. - // - If you reload the contents of imgui.cpp at runtime, you may need to call SetCurrentContext() + SetAllocatorFunctions() again because we use global storage for those. - IMGUI_API void SetAllocatorFunctions(void* (*alloc_func)(size_t sz, void* user_data), void (*free_func)(void* ptr, void* user_data), void* user_data = NULL); - IMGUI_API void* MemAlloc(size_t size); - IMGUI_API void MemFree(void* ptr); - -} // namespace ImGui - -//----------------------------------------------------------------------------- -// Flags & Enumerations -//----------------------------------------------------------------------------- - -// Flags for ImGui::Begin() -enum ImGuiWindowFlags_ -{ - ImGuiWindowFlags_None = 0, - ImGuiWindowFlags_NoTitleBar = 1 << 0, // Disable title-bar - ImGuiWindowFlags_NoResize = 1 << 1, // Disable user resizing with the lower-right grip - ImGuiWindowFlags_NoMove = 1 << 2, // Disable user moving the window - ImGuiWindowFlags_NoScrollbar = 1 << 3, // Disable scrollbars (window can still scroll with mouse or programmatically) - ImGuiWindowFlags_NoScrollWithMouse = 1 << 4, // Disable user vertically scrolling with mouse wheel. On child window, mouse wheel will be forwarded to the parent unless NoScrollbar is also set. - ImGuiWindowFlags_NoCollapse = 1 << 5, // Disable user collapsing window by double-clicking on it - ImGuiWindowFlags_AlwaysAutoResize = 1 << 6, // Resize every window to its content every frame - ImGuiWindowFlags_NoBackground = 1 << 7, // Disable drawing background color (WindowBg, etc.) and outside border. Similar as using SetNextWindowBgAlpha(0.0f). - ImGuiWindowFlags_NoSavedSettings = 1 << 8, // Never load/save settings in .ini file - ImGuiWindowFlags_NoMouseInputs = 1 << 9, // Disable catching mouse, hovering test with pass through. - ImGuiWindowFlags_MenuBar = 1 << 10, // Has a menu-bar - ImGuiWindowFlags_HorizontalScrollbar = 1 << 11, // Allow horizontal scrollbar to appear (off by default). You may use SetNextWindowContentSize(ImVec2(width,0.0f)); prior to calling Begin() to specify width. Read code in imgui_demo in the "Horizontal Scrolling" section. - ImGuiWindowFlags_NoFocusOnAppearing = 1 << 12, // Disable taking focus when transitioning from hidden to visible state - ImGuiWindowFlags_NoBringToFrontOnFocus = 1 << 13, // Disable bringing window to front when taking focus (e.g. clicking on it or programmatically giving it focus) - ImGuiWindowFlags_AlwaysVerticalScrollbar= 1 << 14, // Always show vertical scrollbar (even if ContentSize.y < Size.y) - ImGuiWindowFlags_AlwaysHorizontalScrollbar=1<< 15, // Always show horizontal scrollbar (even if ContentSize.x < Size.x) - ImGuiWindowFlags_AlwaysUseWindowPadding = 1 << 16, // Ensure child windows without border uses style.WindowPadding (ignored by default for non-bordered child windows, because more convenient) - ImGuiWindowFlags_NoNavInputs = 1 << 18, // No gamepad/keyboard navigation within the window - ImGuiWindowFlags_NoNavFocus = 1 << 19, // No focusing toward this window with gamepad/keyboard navigation (e.g. skipped by CTRL+TAB) - ImGuiWindowFlags_UnsavedDocument = 1 << 20, // Append '*' to title without affecting the ID, as a convenience to avoid using the ### operator. When used in a tab/docking context, tab is selected on closure and closure is deferred by one frame to allow code to cancel the closure (with a confirmation popup, etc.) without flicker. - ImGuiWindowFlags_NoNav = ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, - ImGuiWindowFlags_NoDecoration = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoCollapse, - ImGuiWindowFlags_NoInputs = ImGuiWindowFlags_NoMouseInputs | ImGuiWindowFlags_NoNavInputs | ImGuiWindowFlags_NoNavFocus, - - // [Internal] - ImGuiWindowFlags_NavFlattened = 1 << 23, // [BETA] Allow gamepad/keyboard navigation to cross over parent border to this child (only use on child that have no scrolling!) - ImGuiWindowFlags_ChildWindow = 1 << 24, // Don't use! For internal use by BeginChild() - ImGuiWindowFlags_Tooltip = 1 << 25, // Don't use! For internal use by BeginTooltip() - ImGuiWindowFlags_Popup = 1 << 26, // Don't use! For internal use by BeginPopup() - ImGuiWindowFlags_Modal = 1 << 27, // Don't use! For internal use by BeginPopupModal() - ImGuiWindowFlags_ChildMenu = 1 << 28 // Don't use! For internal use by BeginMenu() - - // [Obsolete] - //ImGuiWindowFlags_ShowBorders = 1 << 7, // --> Set style.FrameBorderSize=1.0f or style.WindowBorderSize=1.0f to enable borders around items or windows. - //ImGuiWindowFlags_ResizeFromAnySide = 1 << 17, // --> Set io.ConfigWindowsResizeFromEdges=true and make sure mouse cursors are supported by back-end (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) -}; - -// Flags for ImGui::InputText() -enum ImGuiInputTextFlags_ -{ - ImGuiInputTextFlags_None = 0, - ImGuiInputTextFlags_CharsDecimal = 1 << 0, // Allow 0123456789.+-*/ - ImGuiInputTextFlags_CharsHexadecimal = 1 << 1, // Allow 0123456789ABCDEFabcdef - ImGuiInputTextFlags_CharsUppercase = 1 << 2, // Turn a..z into A..Z - ImGuiInputTextFlags_CharsNoBlank = 1 << 3, // Filter out spaces, tabs - ImGuiInputTextFlags_AutoSelectAll = 1 << 4, // Select entire text when first taking mouse focus - ImGuiInputTextFlags_EnterReturnsTrue = 1 << 5, // Return 'true' when Enter is pressed (as opposed to every time the value was modified). Consider looking at the IsItemDeactivatedAfterEdit() function. - ImGuiInputTextFlags_CallbackCompletion = 1 << 6, // Callback on pressing TAB (for completion handling) - ImGuiInputTextFlags_CallbackHistory = 1 << 7, // Callback on pressing Up/Down arrows (for history handling) - ImGuiInputTextFlags_CallbackAlways = 1 << 8, // Callback on each iteration. User code may query cursor position, modify text buffer. - ImGuiInputTextFlags_CallbackCharFilter = 1 << 9, // Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard. - ImGuiInputTextFlags_AllowTabInput = 1 << 10, // Pressing TAB input a '\t' character into the text field - ImGuiInputTextFlags_CtrlEnterForNewLine = 1 << 11, // In multi-line mode, unfocus with Enter, add new line with Ctrl+Enter (default is opposite: unfocus with Ctrl+Enter, add line with Enter). - ImGuiInputTextFlags_NoHorizontalScroll = 1 << 12, // Disable following the cursor horizontally - ImGuiInputTextFlags_AlwaysInsertMode = 1 << 13, // Insert mode - ImGuiInputTextFlags_ReadOnly = 1 << 14, // Read-only mode - ImGuiInputTextFlags_Password = 1 << 15, // Password mode, display all characters as '*' - ImGuiInputTextFlags_NoUndoRedo = 1 << 16, // Disable undo/redo. Note that input text owns the text data while active, if you want to provide your own undo/redo stack you need e.g. to call ClearActiveID(). - ImGuiInputTextFlags_CharsScientific = 1 << 17, // Allow 0123456789.+-*/eE (Scientific notation input) - ImGuiInputTextFlags_CallbackResize = 1 << 18, // Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. Notify when the string wants to be resized (for string types which hold a cache of their Size). You will be provided a new BufSize in the callback and NEED to honor it. (see misc/cpp/imgui_stdlib.h for an example of using this) - // [Internal] - ImGuiInputTextFlags_Multiline = 1 << 20, // For internal use by InputTextMultiline() - ImGuiInputTextFlags_NoMarkEdited = 1 << 21 // For internal use by functions using InputText() before reformatting data -}; - -// Flags for ImGui::TreeNodeEx(), ImGui::CollapsingHeader*() -enum ImGuiTreeNodeFlags_ -{ - ImGuiTreeNodeFlags_None = 0, - ImGuiTreeNodeFlags_Selected = 1 << 0, // Draw as selected - ImGuiTreeNodeFlags_Framed = 1 << 1, // Full colored frame (e.g. for CollapsingHeader) - ImGuiTreeNodeFlags_AllowItemOverlap = 1 << 2, // Hit testing to allow subsequent widgets to overlap this one - ImGuiTreeNodeFlags_NoTreePushOnOpen = 1 << 3, // Don't do a TreePush() when open (e.g. for CollapsingHeader) = no extra indent nor pushing on ID stack - ImGuiTreeNodeFlags_NoAutoOpenOnLog = 1 << 4, // Don't automatically and temporarily open node when Logging is active (by default logging will automatically open tree nodes) - ImGuiTreeNodeFlags_DefaultOpen = 1 << 5, // Default node to be open - ImGuiTreeNodeFlags_OpenOnDoubleClick = 1 << 6, // Need double-click to open node - ImGuiTreeNodeFlags_OpenOnArrow = 1 << 7, // Only open when clicking on the arrow part. If ImGuiTreeNodeFlags_OpenOnDoubleClick is also set, single-click arrow or double-click all box to open. - ImGuiTreeNodeFlags_Leaf = 1 << 8, // No collapsing, no arrow (use as a convenience for leaf nodes). - ImGuiTreeNodeFlags_Bullet = 1 << 9, // Display a bullet instead of arrow - ImGuiTreeNodeFlags_FramePadding = 1 << 10, // Use FramePadding (even for an unframed text node) to vertically align text baseline to regular widget height. Equivalent to calling AlignTextToFramePadding(). - ImGuiTreeNodeFlags_SpanAvailWidth = 1 << 11, // Extend hit box to the right-most edge, even if not framed. This is not the default in order to allow adding other items on the same line. In the future we may refactor the hit system to be front-to-back, allowing natural overlaps and then this can become the default. - ImGuiTreeNodeFlags_SpanFullWidth = 1 << 12, // Extend hit box to the left-most and right-most edges (bypass the indented area). - ImGuiTreeNodeFlags_NavLeftJumpsBackHere = 1 << 13, // (WIP) Nav: left direction may move to this TreeNode() from any of its child (items submitted between TreeNode and TreePop) - //ImGuiTreeNodeFlags_NoScrollOnOpen = 1 << 14, // FIXME: TODO: Disable automatic scroll on TreePop() if node got just open and contents is not visible - ImGuiTreeNodeFlags_CollapsingHeader = ImGuiTreeNodeFlags_Framed | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_NoAutoOpenOnLog -}; - -// Flags for ImGui::Selectable() -enum ImGuiSelectableFlags_ -{ - ImGuiSelectableFlags_None = 0, - ImGuiSelectableFlags_DontClosePopups = 1 << 0, // Clicking this don't close parent popup window - ImGuiSelectableFlags_SpanAllColumns = 1 << 1, // Selectable frame can span all columns (text will still fit in current column) - ImGuiSelectableFlags_AllowDoubleClick = 1 << 2, // Generate press events on double clicks too - ImGuiSelectableFlags_Disabled = 1 << 3, // Cannot be selected, display grayed out text - ImGuiSelectableFlags_AllowItemOverlap = 1 << 4 // (WIP) Hit testing to allow subsequent widgets to overlap this one -}; - -// Flags for ImGui::BeginCombo() -enum ImGuiComboFlags_ -{ - ImGuiComboFlags_None = 0, - ImGuiComboFlags_PopupAlignLeft = 1 << 0, // Align the popup toward the left by default - ImGuiComboFlags_HeightSmall = 1 << 1, // Max ~4 items visible. Tip: If you want your combo popup to be a specific size you can use SetNextWindowSizeConstraints() prior to calling BeginCombo() - ImGuiComboFlags_HeightRegular = 1 << 2, // Max ~8 items visible (default) - ImGuiComboFlags_HeightLarge = 1 << 3, // Max ~20 items visible - ImGuiComboFlags_HeightLargest = 1 << 4, // As many fitting items as possible - ImGuiComboFlags_NoArrowButton = 1 << 5, // Display on the preview box without the square arrow button - ImGuiComboFlags_NoPreview = 1 << 6, // Display only a square arrow button - ImGuiComboFlags_HeightMask_ = ImGuiComboFlags_HeightSmall | ImGuiComboFlags_HeightRegular | ImGuiComboFlags_HeightLarge | ImGuiComboFlags_HeightLargest -}; - -// Flags for ImGui::BeginTabBar() -enum ImGuiTabBarFlags_ -{ - ImGuiTabBarFlags_None = 0, - ImGuiTabBarFlags_Reorderable = 1 << 0, // Allow manually dragging tabs to re-order them + New tabs are appended at the end of list - ImGuiTabBarFlags_AutoSelectNewTabs = 1 << 1, // Automatically select new tabs when they appear - ImGuiTabBarFlags_TabListPopupButton = 1 << 2, // Disable buttons to open the tab list popup - ImGuiTabBarFlags_NoCloseWithMiddleMouseButton = 1 << 3, // Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false. - ImGuiTabBarFlags_NoTabListScrollingButtons = 1 << 4, // Disable scrolling buttons (apply when fitting policy is ImGuiTabBarFlags_FittingPolicyScroll) - ImGuiTabBarFlags_NoTooltip = 1 << 5, // Disable tooltips when hovering a tab - ImGuiTabBarFlags_FittingPolicyResizeDown = 1 << 6, // Resize tabs when they don't fit - ImGuiTabBarFlags_FittingPolicyScroll = 1 << 7, // Add scroll buttons when tabs don't fit - ImGuiTabBarFlags_FittingPolicyMask_ = ImGuiTabBarFlags_FittingPolicyResizeDown | ImGuiTabBarFlags_FittingPolicyScroll, - ImGuiTabBarFlags_FittingPolicyDefault_ = ImGuiTabBarFlags_FittingPolicyResizeDown -}; - -// Flags for ImGui::BeginTabItem() -enum ImGuiTabItemFlags_ -{ - ImGuiTabItemFlags_None = 0, - ImGuiTabItemFlags_UnsavedDocument = 1 << 0, // Append '*' to title without affecting the ID, as a convenience to avoid using the ### operator. Also: tab is selected on closure and closure is deferred by one frame to allow code to undo it without flicker. - ImGuiTabItemFlags_SetSelected = 1 << 1, // Trigger flag to programmatically make the tab selected when calling BeginTabItem() - ImGuiTabItemFlags_NoCloseWithMiddleMouseButton = 1 << 2, // Disable behavior of closing tabs (that are submitted with p_open != NULL) with middle mouse button. You can still repro this behavior on user's side with if (IsItemHovered() && IsMouseClicked(2)) *p_open = false. - ImGuiTabItemFlags_NoPushId = 1 << 3 // Don't call PushID(tab->ID)/PopID() on BeginTabItem()/EndTabItem() -}; - -// Flags for ImGui::IsWindowFocused() -enum ImGuiFocusedFlags_ -{ - ImGuiFocusedFlags_None = 0, - ImGuiFocusedFlags_ChildWindows = 1 << 0, // IsWindowFocused(): Return true if any children of the window is focused - ImGuiFocusedFlags_RootWindow = 1 << 1, // IsWindowFocused(): Test from root window (top most parent of the current hierarchy) - ImGuiFocusedFlags_AnyWindow = 1 << 2, // IsWindowFocused(): Return true if any window is focused. Important: If you are trying to tell how to dispatch your low-level inputs, do NOT use this. Use 'io.WantCaptureMouse' instead! Please read the FAQ! - ImGuiFocusedFlags_RootAndChildWindows = ImGuiFocusedFlags_RootWindow | ImGuiFocusedFlags_ChildWindows -}; - -// Flags for ImGui::IsItemHovered(), ImGui::IsWindowHovered() -// Note: if you are trying to check whether your mouse should be dispatched to Dear ImGui or to your app, you should use 'io.WantCaptureMouse' instead! Please read the FAQ! -// Note: windows with the ImGuiWindowFlags_NoInputs flag are ignored by IsWindowHovered() calls. -enum ImGuiHoveredFlags_ -{ - ImGuiHoveredFlags_None = 0, // Return true if directly over the item/window, not obstructed by another window, not obstructed by an active popup or modal blocking inputs under them. - ImGuiHoveredFlags_ChildWindows = 1 << 0, // IsWindowHovered() only: Return true if any children of the window is hovered - ImGuiHoveredFlags_RootWindow = 1 << 1, // IsWindowHovered() only: Test from root window (top most parent of the current hierarchy) - ImGuiHoveredFlags_AnyWindow = 1 << 2, // IsWindowHovered() only: Return true if any window is hovered - ImGuiHoveredFlags_AllowWhenBlockedByPopup = 1 << 3, // Return true even if a popup window is normally blocking access to this item/window - //ImGuiHoveredFlags_AllowWhenBlockedByModal = 1 << 4, // Return true even if a modal popup window is normally blocking access to this item/window. FIXME-TODO: Unavailable yet. - ImGuiHoveredFlags_AllowWhenBlockedByActiveItem = 1 << 5, // Return true even if an active item is blocking access to this item/window. Useful for Drag and Drop patterns. - ImGuiHoveredFlags_AllowWhenOverlapped = 1 << 6, // Return true even if the position is obstructed or overlapped by another window - ImGuiHoveredFlags_AllowWhenDisabled = 1 << 7, // Return true even if the item is disabled - ImGuiHoveredFlags_RectOnly = ImGuiHoveredFlags_AllowWhenBlockedByPopup | ImGuiHoveredFlags_AllowWhenBlockedByActiveItem | ImGuiHoveredFlags_AllowWhenOverlapped, - ImGuiHoveredFlags_RootAndChildWindows = ImGuiHoveredFlags_RootWindow | ImGuiHoveredFlags_ChildWindows -}; - -// Flags for ImGui::BeginDragDropSource(), ImGui::AcceptDragDropPayload() -enum ImGuiDragDropFlags_ -{ - ImGuiDragDropFlags_None = 0, - // BeginDragDropSource() flags - ImGuiDragDropFlags_SourceNoPreviewTooltip = 1 << 0, // By default, a successful call to BeginDragDropSource opens a tooltip so you can display a preview or description of the source contents. This flag disable this behavior. - ImGuiDragDropFlags_SourceNoDisableHover = 1 << 1, // By default, when dragging we clear data so that IsItemHovered() will return false, to avoid subsequent user code submitting tooltips. This flag disable this behavior so you can still call IsItemHovered() on the source item. - ImGuiDragDropFlags_SourceNoHoldToOpenOthers = 1 << 2, // Disable the behavior that allows to open tree nodes and collapsing header by holding over them while dragging a source item. - ImGuiDragDropFlags_SourceAllowNullID = 1 << 3, // Allow items such as Text(), Image() that have no unique identifier to be used as drag source, by manufacturing a temporary identifier based on their window-relative position. This is extremely unusual within the dear imgui ecosystem and so we made it explicit. - ImGuiDragDropFlags_SourceExtern = 1 << 4, // External source (from outside of dear imgui), won't attempt to read current item/window info. Will always return true. Only one Extern source can be active simultaneously. - ImGuiDragDropFlags_SourceAutoExpirePayload = 1 << 5, // Automatically expire the payload if the source cease to be submitted (otherwise payloads are persisting while being dragged) - // AcceptDragDropPayload() flags - ImGuiDragDropFlags_AcceptBeforeDelivery = 1 << 10, // AcceptDragDropPayload() will returns true even before the mouse button is released. You can then call IsDelivery() to test if the payload needs to be delivered. - ImGuiDragDropFlags_AcceptNoDrawDefaultRect = 1 << 11, // Do not draw the default highlight rectangle when hovering over target. - ImGuiDragDropFlags_AcceptNoPreviewTooltip = 1 << 12, // Request hiding the BeginDragDropSource tooltip from the BeginDragDropTarget site. - ImGuiDragDropFlags_AcceptPeekOnly = ImGuiDragDropFlags_AcceptBeforeDelivery | ImGuiDragDropFlags_AcceptNoDrawDefaultRect // For peeking ahead and inspecting the payload before delivery. -}; - -// Standard Drag and Drop payload types. You can define you own payload types using short strings. Types starting with '_' are defined by Dear ImGui. -#define IMGUI_PAYLOAD_TYPE_COLOR_3F "_COL3F" // float[3]: Standard type for colors, without alpha. User code may use this type. -#define IMGUI_PAYLOAD_TYPE_COLOR_4F "_COL4F" // float[4]: Standard type for colors. User code may use this type. - -// A primary data type -enum ImGuiDataType_ -{ - ImGuiDataType_S8, // signed char / char (with sensible compilers) - ImGuiDataType_U8, // unsigned char - ImGuiDataType_S16, // short - ImGuiDataType_U16, // unsigned short - ImGuiDataType_S32, // int - ImGuiDataType_U32, // unsigned int - ImGuiDataType_S64, // long long / __int64 - ImGuiDataType_U64, // unsigned long long / unsigned __int64 - ImGuiDataType_Float, // float - ImGuiDataType_Double, // double - ImGuiDataType_COUNT -}; - -// A cardinal direction -enum ImGuiDir_ -{ - ImGuiDir_None = -1, - ImGuiDir_Left = 0, - ImGuiDir_Right = 1, - ImGuiDir_Up = 2, - ImGuiDir_Down = 3, - ImGuiDir_COUNT -}; - -// User fill ImGuiIO.KeyMap[] array with indices into the ImGuiIO.KeysDown[512] array -enum ImGuiKey_ -{ - ImGuiKey_Tab, - ImGuiKey_LeftArrow, - ImGuiKey_RightArrow, - ImGuiKey_UpArrow, - ImGuiKey_DownArrow, - ImGuiKey_PageUp, - ImGuiKey_PageDown, - ImGuiKey_Home, - ImGuiKey_End, - ImGuiKey_Insert, - ImGuiKey_Delete, - ImGuiKey_Backspace, - ImGuiKey_Space, - ImGuiKey_Enter, - ImGuiKey_Escape, - ImGuiKey_KeyPadEnter, - ImGuiKey_A, // for text edit CTRL+A: select all - ImGuiKey_C, // for text edit CTRL+C: copy - ImGuiKey_V, // for text edit CTRL+V: paste - ImGuiKey_X, // for text edit CTRL+X: cut - ImGuiKey_Y, // for text edit CTRL+Y: redo - ImGuiKey_Z, // for text edit CTRL+Z: undo - ImGuiKey_COUNT -}; - -// To test io.KeyMods (which is a combination of individual fields io.KeyCtrl, io.KeyShift, io.KeyAlt set by user/back-end) -enum ImGuiKeyModFlags_ -{ - ImGuiKeyModFlags_None = 0, - ImGuiKeyModFlags_Ctrl = 1 << 0, - ImGuiKeyModFlags_Shift = 1 << 1, - ImGuiKeyModFlags_Alt = 1 << 2, - ImGuiKeyModFlags_Super = 1 << 3 -}; - -// Gamepad/Keyboard navigation -// Keyboard: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard to enable. NewFrame() will automatically fill io.NavInputs[] based on your io.KeysDown[] + io.KeyMap[] arrays. -// Gamepad: Set io.ConfigFlags |= ImGuiConfigFlags_NavEnableGamepad to enable. Back-end: set ImGuiBackendFlags_HasGamepad and fill the io.NavInputs[] fields before calling NewFrame(). Note that io.NavInputs[] is cleared by EndFrame(). -// Read instructions in imgui.cpp for more details. Download PNG/PSD at http://goo.gl/9LgVZW. -enum ImGuiNavInput_ -{ - // Gamepad Mapping - ImGuiNavInput_Activate, // activate / open / toggle / tweak value // e.g. Cross (PS4), A (Xbox), A (Switch), Space (Keyboard) - ImGuiNavInput_Cancel, // cancel / close / exit // e.g. Circle (PS4), B (Xbox), B (Switch), Escape (Keyboard) - ImGuiNavInput_Input, // text input / on-screen keyboard // e.g. Triang.(PS4), Y (Xbox), X (Switch), Return (Keyboard) - ImGuiNavInput_Menu, // tap: toggle menu / hold: focus, move, resize // e.g. Square (PS4), X (Xbox), Y (Switch), Alt (Keyboard) - ImGuiNavInput_DpadLeft, // move / tweak / resize window (w/ PadMenu) // e.g. D-pad Left/Right/Up/Down (Gamepads), Arrow keys (Keyboard) - ImGuiNavInput_DpadRight, // - ImGuiNavInput_DpadUp, // - ImGuiNavInput_DpadDown, // - ImGuiNavInput_LStickLeft, // scroll / move window (w/ PadMenu) // e.g. Left Analog Stick Left/Right/Up/Down - ImGuiNavInput_LStickRight, // - ImGuiNavInput_LStickUp, // - ImGuiNavInput_LStickDown, // - ImGuiNavInput_FocusPrev, // next window (w/ PadMenu) // e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch) - ImGuiNavInput_FocusNext, // prev window (w/ PadMenu) // e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch) - ImGuiNavInput_TweakSlow, // slower tweaks // e.g. L1 or L2 (PS4), LB or LT (Xbox), L or ZL (Switch) - ImGuiNavInput_TweakFast, // faster tweaks // e.g. R1 or R2 (PS4), RB or RT (Xbox), R or ZL (Switch) - - // [Internal] Don't use directly! This is used internally to differentiate keyboard from gamepad inputs for behaviors that require to differentiate them. - // Keyboard behavior that have no corresponding gamepad mapping (e.g. CTRL+TAB) will be directly reading from io.KeysDown[] instead of io.NavInputs[]. - ImGuiNavInput_KeyMenu_, // toggle menu // = io.KeyAlt - ImGuiNavInput_KeyLeft_, // move left // = Arrow keys - ImGuiNavInput_KeyRight_, // move right - ImGuiNavInput_KeyUp_, // move up - ImGuiNavInput_KeyDown_, // move down - ImGuiNavInput_COUNT, - ImGuiNavInput_InternalStart_ = ImGuiNavInput_KeyMenu_ -}; - -// Configuration flags stored in io.ConfigFlags. Set by user/application. -enum ImGuiConfigFlags_ -{ - ImGuiConfigFlags_None = 0, - ImGuiConfigFlags_NavEnableKeyboard = 1 << 0, // Master keyboard navigation enable flag. NewFrame() will automatically fill io.NavInputs[] based on io.KeysDown[]. - ImGuiConfigFlags_NavEnableGamepad = 1 << 1, // Master gamepad navigation enable flag. This is mostly to instruct your imgui back-end to fill io.NavInputs[]. Back-end also needs to set ImGuiBackendFlags_HasGamepad. - ImGuiConfigFlags_NavEnableSetMousePos = 1 << 2, // Instruct navigation to move the mouse cursor. May be useful on TV/console systems where moving a virtual mouse is awkward. Will update io.MousePos and set io.WantSetMousePos=true. If enabled you MUST honor io.WantSetMousePos requests in your binding, otherwise ImGui will react as if the mouse is jumping around back and forth. - ImGuiConfigFlags_NavNoCaptureKeyboard = 1 << 3, // Instruct navigation to not set the io.WantCaptureKeyboard flag when io.NavActive is set. - ImGuiConfigFlags_NoMouse = 1 << 4, // Instruct imgui to clear mouse position/buttons in NewFrame(). This allows ignoring the mouse information set by the back-end. - ImGuiConfigFlags_NoMouseCursorChange = 1 << 5, // Instruct back-end to not alter mouse cursor shape and visibility. Use if the back-end cursor changes are interfering with yours and you don't want to use SetMouseCursor() to change mouse cursor. You may want to honor requests from imgui by reading GetMouseCursor() yourself instead. - - // User storage (to allow your back-end/engine to communicate to code that may be shared between multiple projects. Those flags are not used by core Dear ImGui) - ImGuiConfigFlags_IsSRGB = 1 << 20, // Application is SRGB-aware. - ImGuiConfigFlags_IsTouchScreen = 1 << 21 // Application is using a touch screen instead of a mouse. -}; - -// Back-end capabilities flags stored in io.BackendFlags. Set by imgui_impl_xxx or custom back-end. -enum ImGuiBackendFlags_ -{ - ImGuiBackendFlags_None = 0, - ImGuiBackendFlags_HasGamepad = 1 << 0, // Back-end Platform supports gamepad and currently has one connected. - ImGuiBackendFlags_HasMouseCursors = 1 << 1, // Back-end Platform supports honoring GetMouseCursor() value to change the OS cursor shape. - ImGuiBackendFlags_HasSetMousePos = 1 << 2, // Back-end Platform supports io.WantSetMousePos requests to reposition the OS mouse position (only used if ImGuiConfigFlags_NavEnableSetMousePos is set). - ImGuiBackendFlags_RendererHasVtxOffset = 1 << 3 // Back-end Renderer supports ImDrawCmd::VtxOffset. This enables output of large meshes (64K+ vertices) while still using 16-bit indices. -}; - -// Enumeration for PushStyleColor() / PopStyleColor() -enum ImGuiCol_ -{ - ImGuiCol_Text, - ImGuiCol_TextDisabled, - ImGuiCol_WindowBg, // Background of normal windows - ImGuiCol_ChildBg, // Background of child windows - ImGuiCol_PopupBg, // Background of popups, menus, tooltips windows - ImGuiCol_Border, - ImGuiCol_BorderShadow, - ImGuiCol_FrameBg, // Background of checkbox, radio button, plot, slider, text input - ImGuiCol_FrameBgHovered, - ImGuiCol_FrameBgActive, - ImGuiCol_TitleBg, - ImGuiCol_TitleBgActive, - ImGuiCol_TitleBgCollapsed, - ImGuiCol_MenuBarBg, - ImGuiCol_ScrollbarBg, - ImGuiCol_ScrollbarGrab, - ImGuiCol_ScrollbarGrabHovered, - ImGuiCol_ScrollbarGrabActive, - ImGuiCol_CheckMark, - ImGuiCol_SliderGrab, - ImGuiCol_SliderGrabActive, - ImGuiCol_Button, - ImGuiCol_ButtonHovered, - ImGuiCol_ButtonActive, - ImGuiCol_Header, // Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem - ImGuiCol_HeaderHovered, - ImGuiCol_HeaderActive, - ImGuiCol_Separator, - ImGuiCol_SeparatorHovered, - ImGuiCol_SeparatorActive, - ImGuiCol_ResizeGrip, - ImGuiCol_ResizeGripHovered, - ImGuiCol_ResizeGripActive, - ImGuiCol_Tab, - ImGuiCol_TabHovered, - ImGuiCol_TabActive, - ImGuiCol_TabUnfocused, - ImGuiCol_TabUnfocusedActive, - ImGuiCol_PlotLines, - ImGuiCol_PlotLinesHovered, - ImGuiCol_PlotHistogram, - ImGuiCol_PlotHistogramHovered, - ImGuiCol_TextSelectedBg, - ImGuiCol_DragDropTarget, - ImGuiCol_NavHighlight, // Gamepad/keyboard: current highlighted item - ImGuiCol_NavWindowingHighlight, // Highlight window when using CTRL+TAB - ImGuiCol_NavWindowingDimBg, // Darken/colorize entire screen behind the CTRL+TAB window list, when active - ImGuiCol_ModalWindowDimBg, // Darken/colorize entire screen behind a modal window, when one is active - ImGuiCol_COUNT - - // Obsolete names (will be removed) -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - , ImGuiCol_ModalWindowDarkening = ImGuiCol_ModalWindowDimBg // [renamed in 1.63] - //, ImGuiCol_CloseButton, ImGuiCol_CloseButtonActive, ImGuiCol_CloseButtonHovered// [unused since 1.60+] the close button now uses regular button colors. -#endif -}; - -// Enumeration for PushStyleVar() / PopStyleVar() to temporarily modify the ImGuiStyle structure. -// - The enum only refers to fields of ImGuiStyle which makes sense to be pushed/popped inside UI code. -// During initialization or between frames, feel free to just poke into ImGuiStyle directly. -// - Tip: Use your programming IDE navigation facilities on the names in the _second column_ below to find the actual members and their description. -// In Visual Studio IDE: CTRL+comma ("Edit.NavigateTo") can follow symbols in comments, whereas CTRL+F12 ("Edit.GoToImplementation") cannot. -// With Visual Assist installed: ALT+G ("VAssistX.GoToImplementation") can also follow symbols in comments. -// - When changing this enum, you need to update the associated internal table GStyleVarInfo[] accordingly. This is where we link enum values to members offset/type. -enum ImGuiStyleVar_ -{ - // Enum name --------------------- // Member in ImGuiStyle structure (see ImGuiStyle for descriptions) - ImGuiStyleVar_Alpha, // float Alpha - ImGuiStyleVar_WindowPadding, // ImVec2 WindowPadding - ImGuiStyleVar_WindowRounding, // float WindowRounding - ImGuiStyleVar_WindowBorderSize, // float WindowBorderSize - ImGuiStyleVar_WindowMinSize, // ImVec2 WindowMinSize - ImGuiStyleVar_WindowTitleAlign, // ImVec2 WindowTitleAlign - ImGuiStyleVar_ChildRounding, // float ChildRounding - ImGuiStyleVar_ChildBorderSize, // float ChildBorderSize - ImGuiStyleVar_PopupRounding, // float PopupRounding - ImGuiStyleVar_PopupBorderSize, // float PopupBorderSize - ImGuiStyleVar_FramePadding, // ImVec2 FramePadding - ImGuiStyleVar_FrameRounding, // float FrameRounding - ImGuiStyleVar_FrameBorderSize, // float FrameBorderSize - ImGuiStyleVar_ItemSpacing, // ImVec2 ItemSpacing - ImGuiStyleVar_ItemInnerSpacing, // ImVec2 ItemInnerSpacing - ImGuiStyleVar_IndentSpacing, // float IndentSpacing - ImGuiStyleVar_ScrollbarSize, // float ScrollbarSize - ImGuiStyleVar_ScrollbarRounding, // float ScrollbarRounding - ImGuiStyleVar_GrabMinSize, // float GrabMinSize - ImGuiStyleVar_GrabRounding, // float GrabRounding - ImGuiStyleVar_TabRounding, // float TabRounding - ImGuiStyleVar_ButtonTextAlign, // ImVec2 ButtonTextAlign - ImGuiStyleVar_SelectableTextAlign, // ImVec2 SelectableTextAlign - ImGuiStyleVar_COUNT - - // Obsolete names (will be removed) -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - , ImGuiStyleVar_Count_ = ImGuiStyleVar_COUNT // [renamed in 1.60] -#endif -}; - -// Flags for ColorEdit3() / ColorEdit4() / ColorPicker3() / ColorPicker4() / ColorButton() -enum ImGuiColorEditFlags_ -{ - ImGuiColorEditFlags_None = 0, - ImGuiColorEditFlags_NoAlpha = 1 << 1, // // ColorEdit, ColorPicker, ColorButton: ignore Alpha component (will only read 3 components from the input pointer). - ImGuiColorEditFlags_NoPicker = 1 << 2, // // ColorEdit: disable picker when clicking on colored square. - ImGuiColorEditFlags_NoOptions = 1 << 3, // // ColorEdit: disable toggling options menu when right-clicking on inputs/small preview. - ImGuiColorEditFlags_NoSmallPreview = 1 << 4, // // ColorEdit, ColorPicker: disable colored square preview next to the inputs. (e.g. to show only the inputs) - ImGuiColorEditFlags_NoInputs = 1 << 5, // // ColorEdit, ColorPicker: disable inputs sliders/text widgets (e.g. to show only the small preview colored square). - ImGuiColorEditFlags_NoTooltip = 1 << 6, // // ColorEdit, ColorPicker, ColorButton: disable tooltip when hovering the preview. - ImGuiColorEditFlags_NoLabel = 1 << 7, // // ColorEdit, ColorPicker: disable display of inline text label (the label is still forwarded to the tooltip and picker). - ImGuiColorEditFlags_NoSidePreview = 1 << 8, // // ColorPicker: disable bigger color preview on right side of the picker, use small colored square preview instead. - ImGuiColorEditFlags_NoDragDrop = 1 << 9, // // ColorEdit: disable drag and drop target. ColorButton: disable drag and drop source. - ImGuiColorEditFlags_NoBorder = 1 << 10, // // ColorButton: disable border (which is enforced by default) - - // User Options (right-click on widget to change some of them). - ImGuiColorEditFlags_AlphaBar = 1 << 16, // // ColorEdit, ColorPicker: show vertical alpha bar/gradient in picker. - ImGuiColorEditFlags_AlphaPreview = 1 << 17, // // ColorEdit, ColorPicker, ColorButton: display preview as a transparent color over a checkerboard, instead of opaque. - ImGuiColorEditFlags_AlphaPreviewHalf= 1 << 18, // // ColorEdit, ColorPicker, ColorButton: display half opaque / half checkerboard, instead of opaque. - ImGuiColorEditFlags_HDR = 1 << 19, // // (WIP) ColorEdit: Currently only disable 0.0f..1.0f limits in RGBA edition (note: you probably want to use ImGuiColorEditFlags_Float flag as well). - ImGuiColorEditFlags_DisplayRGB = 1 << 20, // [Display] // ColorEdit: override _display_ type among RGB/HSV/Hex. ColorPicker: select any combination using one or more of RGB/HSV/Hex. - ImGuiColorEditFlags_DisplayHSV = 1 << 21, // [Display] // " - ImGuiColorEditFlags_DisplayHex = 1 << 22, // [Display] // " - ImGuiColorEditFlags_Uint8 = 1 << 23, // [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0..255. - ImGuiColorEditFlags_Float = 1 << 24, // [DataType] // ColorEdit, ColorPicker, ColorButton: _display_ values formatted as 0.0f..1.0f floats instead of 0..255 integers. No round-trip of value via integers. - ImGuiColorEditFlags_PickerHueBar = 1 << 25, // [Picker] // ColorPicker: bar for Hue, rectangle for Sat/Value. - ImGuiColorEditFlags_PickerHueWheel = 1 << 26, // [Picker] // ColorPicker: wheel for Hue, triangle for Sat/Value. - ImGuiColorEditFlags_InputRGB = 1 << 27, // [Input] // ColorEdit, ColorPicker: input and output data in RGB format. - ImGuiColorEditFlags_InputHSV = 1 << 28, // [Input] // ColorEdit, ColorPicker: input and output data in HSV format. - - // Defaults Options. You can set application defaults using SetColorEditOptions(). The intent is that you probably don't want to - // override them in most of your calls. Let the user choose via the option menu and/or call SetColorEditOptions() once during startup. - ImGuiColorEditFlags__OptionsDefault = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_DisplayRGB|ImGuiColorEditFlags_InputRGB|ImGuiColorEditFlags_PickerHueBar, - - // [Internal] Masks - ImGuiColorEditFlags__DisplayMask = ImGuiColorEditFlags_DisplayRGB|ImGuiColorEditFlags_DisplayHSV|ImGuiColorEditFlags_DisplayHex, - ImGuiColorEditFlags__DataTypeMask = ImGuiColorEditFlags_Uint8|ImGuiColorEditFlags_Float, - ImGuiColorEditFlags__PickerMask = ImGuiColorEditFlags_PickerHueWheel|ImGuiColorEditFlags_PickerHueBar, - ImGuiColorEditFlags__InputMask = ImGuiColorEditFlags_InputRGB|ImGuiColorEditFlags_InputHSV - - // Obsolete names (will be removed) -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - , ImGuiColorEditFlags_RGB = ImGuiColorEditFlags_DisplayRGB, ImGuiColorEditFlags_HSV = ImGuiColorEditFlags_DisplayHSV, ImGuiColorEditFlags_HEX = ImGuiColorEditFlags_DisplayHex // [renamed in 1.69] -#endif -}; - -// Identify a mouse button. -// Those values are guaranteed to be stable and we frequently use 0/1 directly. Named enums provided for convenience. -enum ImGuiMouseButton_ -{ - ImGuiMouseButton_Left = 0, - ImGuiMouseButton_Right = 1, - ImGuiMouseButton_Middle = 2, - ImGuiMouseButton_COUNT = 5 -}; - -// Enumeration for GetMouseCursor() -// User code may request binding to display given cursor by calling SetMouseCursor(), which is why we have some cursors that are marked unused here -enum ImGuiMouseCursor_ -{ - ImGuiMouseCursor_None = -1, - ImGuiMouseCursor_Arrow = 0, - ImGuiMouseCursor_TextInput, // When hovering over InputText, etc. - ImGuiMouseCursor_ResizeAll, // (Unused by Dear ImGui functions) - ImGuiMouseCursor_ResizeNS, // When hovering over an horizontal border - ImGuiMouseCursor_ResizeEW, // When hovering over a vertical border or a column - ImGuiMouseCursor_ResizeNESW, // When hovering over the bottom-left corner of a window - ImGuiMouseCursor_ResizeNWSE, // When hovering over the bottom-right corner of a window - ImGuiMouseCursor_Hand, // (Unused by Dear ImGui functions. Use for e.g. hyperlinks) - ImGuiMouseCursor_NotAllowed, // When hovering something with disallowed interaction. Usually a crossed circle. - ImGuiMouseCursor_COUNT - - // Obsolete names (will be removed) -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - , ImGuiMouseCursor_Count_ = ImGuiMouseCursor_COUNT // [renamed in 1.60] -#endif -}; - -// Enumeration for ImGui::SetWindow***(), SetNextWindow***(), SetNextItem***() functions -// Represent a condition. -// Important: Treat as a regular enum! Do NOT combine multiple values using binary operators! All the functions above treat 0 as a shortcut to ImGuiCond_Always. -enum ImGuiCond_ -{ - ImGuiCond_Always = 1 << 0, // Set the variable - ImGuiCond_Once = 1 << 1, // Set the variable once per runtime session (only the first call with succeed) - ImGuiCond_FirstUseEver = 1 << 2, // Set the variable if the object/window has no persistently saved data (no entry in .ini file) - ImGuiCond_Appearing = 1 << 3 // Set the variable if the object/window is appearing after being hidden/inactive (or the first time) -}; - -//----------------------------------------------------------------------------- -// Helpers: Memory allocations macros -// IM_MALLOC(), IM_FREE(), IM_NEW(), IM_PLACEMENT_NEW(), IM_DELETE() -// We call C++ constructor on own allocated memory via the placement "new(ptr) Type()" syntax. -// Defining a custom placement new() with a dummy parameter allows us to bypass including which on some platforms complains when user has disabled exceptions. -//----------------------------------------------------------------------------- - -struct ImNewDummy {}; -inline void* operator new(size_t, ImNewDummy, void* ptr) { return ptr; } -inline void operator delete(void*, ImNewDummy, void*) {} // This is only required so we can use the symmetrical new() -#define IM_ALLOC(_SIZE) ImGui::MemAlloc(_SIZE) -#define IM_FREE(_PTR) ImGui::MemFree(_PTR) -#define IM_PLACEMENT_NEW(_PTR) new(ImNewDummy(), _PTR) -#define IM_NEW(_TYPE) new(ImNewDummy(), ImGui::MemAlloc(sizeof(_TYPE))) _TYPE -template void IM_DELETE(T* p) { if (p) { p->~T(); ImGui::MemFree(p); } } - -//----------------------------------------------------------------------------- -// Helper: ImVector<> -// Lightweight std::vector<>-like class to avoid dragging dependencies (also, some implementations of STL with debug enabled are absurdly slow, we bypass it so our code runs fast in debug). -//----------------------------------------------------------------------------- -// - You generally do NOT need to care or use this ever. But we need to make it available in imgui.h because some of our public structures are relying on it. -// - We use std-like naming convention here, which is a little unusual for this codebase. -// - Important: clear() frees memory, resize(0) keep the allocated buffer. We use resize(0) a lot to intentionally recycle allocated buffers across frames and amortize our costs. -// - Important: our implementation does NOT call C++ constructors/destructors, we treat everything as raw data! This is intentional but be extra mindful of that, -// Do NOT use this class as a std::vector replacement in your own code! Many of the structures used by dear imgui can be safely initialized by a zero-memset. -//----------------------------------------------------------------------------- - -template -struct ImVector -{ - int Size; - int Capacity; - T* Data; - - // Provide standard typedefs but we don't use them ourselves. - typedef T value_type; - typedef value_type* iterator; - typedef const value_type* const_iterator; - - // Constructors, destructor - inline ImVector() { Size = Capacity = 0; Data = NULL; } - inline ImVector(const ImVector& src) { Size = Capacity = 0; Data = NULL; operator=(src); } - inline ImVector& operator=(const ImVector& src) { clear(); resize(src.Size); memcpy(Data, src.Data, (size_t)Size * sizeof(T)); return *this; } - inline ~ImVector() { if (Data) IM_FREE(Data); } - - inline bool empty() const { return Size == 0; } - inline int size() const { return Size; } - inline int size_in_bytes() const { return Size * (int)sizeof(T); } - inline int capacity() const { return Capacity; } - inline T& operator[](int i) { IM_ASSERT(i < Size); return Data[i]; } - inline const T& operator[](int i) const { IM_ASSERT(i < Size); return Data[i]; } - - inline void clear() { if (Data) { Size = Capacity = 0; IM_FREE(Data); Data = NULL; } } - inline T* begin() { return Data; } - inline const T* begin() const { return Data; } - inline T* end() { return Data + Size; } - inline const T* end() const { return Data + Size; } - inline T& front() { IM_ASSERT(Size > 0); return Data[0]; } - inline const T& front() const { IM_ASSERT(Size > 0); return Data[0]; } - inline T& back() { IM_ASSERT(Size > 0); return Data[Size - 1]; } - inline const T& back() const { IM_ASSERT(Size > 0); return Data[Size - 1]; } - inline void swap(ImVector& rhs) { int rhs_size = rhs.Size; rhs.Size = Size; Size = rhs_size; int rhs_cap = rhs.Capacity; rhs.Capacity = Capacity; Capacity = rhs_cap; T* rhs_data = rhs.Data; rhs.Data = Data; Data = rhs_data; } - - inline int _grow_capacity(int sz) const { int new_capacity = Capacity ? (Capacity + Capacity/2) : 8; return new_capacity > sz ? new_capacity : sz; } - inline void resize(int new_size) { if (new_size > Capacity) reserve(_grow_capacity(new_size)); Size = new_size; } - inline void resize(int new_size, const T& v) { if (new_size > Capacity) reserve(_grow_capacity(new_size)); if (new_size > Size) for (int n = Size; n < new_size; n++) memcpy(&Data[n], &v, sizeof(v)); Size = new_size; } - inline void shrink(int new_size) { IM_ASSERT(new_size <= Size); Size = new_size; } // Resize a vector to a smaller size, guaranteed not to cause a reallocation - inline void reserve(int new_capacity) { if (new_capacity <= Capacity) return; T* new_data = (T*)IM_ALLOC((size_t)new_capacity * sizeof(T)); if (Data) { memcpy(new_data, Data, (size_t)Size * sizeof(T)); IM_FREE(Data); } Data = new_data; Capacity = new_capacity; } - - // NB: It is illegal to call push_back/push_front/insert with a reference pointing inside the ImVector data itself! e.g. v.push_back(v[10]) is forbidden. - inline void push_back(const T& v) { if (Size == Capacity) reserve(_grow_capacity(Size + 1)); memcpy(&Data[Size], &v, sizeof(v)); Size++; } - inline void pop_back() { IM_ASSERT(Size > 0); Size--; } - inline void push_front(const T& v) { if (Size == 0) push_back(v); else insert(Data, v); } - inline T* erase(const T* it) { IM_ASSERT(it >= Data && it < Data+Size); const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + 1, ((size_t)Size - (size_t)off - 1) * sizeof(T)); Size--; return Data + off; } - inline T* erase(const T* it, const T* it_last){ IM_ASSERT(it >= Data && it < Data+Size && it_last > it && it_last <= Data+Size); const ptrdiff_t count = it_last - it; const ptrdiff_t off = it - Data; memmove(Data + off, Data + off + count, ((size_t)Size - (size_t)off - count) * sizeof(T)); Size -= (int)count; return Data + off; } - inline T* erase_unsorted(const T* it) { IM_ASSERT(it >= Data && it < Data+Size); const ptrdiff_t off = it - Data; if (it < Data+Size-1) memcpy(Data + off, Data + Size - 1, sizeof(T)); Size--; return Data + off; } - inline T* insert(const T* it, const T& v) { IM_ASSERT(it >= Data && it <= Data+Size); const ptrdiff_t off = it - Data; if (Size == Capacity) reserve(_grow_capacity(Size + 1)); if (off < (int)Size) memmove(Data + off + 1, Data + off, ((size_t)Size - (size_t)off) * sizeof(T)); memcpy(&Data[off], &v, sizeof(v)); Size++; return Data + off; } - inline bool contains(const T& v) const { const T* data = Data; const T* data_end = Data + Size; while (data < data_end) if (*data++ == v) return true; return false; } - inline T* find(const T& v) { T* data = Data; const T* data_end = Data + Size; while (data < data_end) if (*data == v) break; else ++data; return data; } - inline const T* find(const T& v) const { const T* data = Data; const T* data_end = Data + Size; while (data < data_end) if (*data == v) break; else ++data; return data; } - inline bool find_erase(const T& v) { const T* it = find(v); if (it < Data + Size) { erase(it); return true; } return false; } - inline bool find_erase_unsorted(const T& v) { const T* it = find(v); if (it < Data + Size) { erase_unsorted(it); return true; } return false; } - inline int index_from_ptr(const T* it) const { IM_ASSERT(it >= Data && it < Data + Size); const ptrdiff_t off = it - Data; return (int)off; } -}; - -//----------------------------------------------------------------------------- -// ImGuiStyle -// You may modify the ImGui::GetStyle() main instance during initialization and before NewFrame(). -// During the frame, use ImGui::PushStyleVar(ImGuiStyleVar_XXXX)/PopStyleVar() to alter the main style values, -// and ImGui::PushStyleColor(ImGuiCol_XXX)/PopStyleColor() for colors. -//----------------------------------------------------------------------------- - -struct ImGuiStyle -{ - float Alpha; // Global alpha applies to everything in Dear ImGui. - ImVec2 WindowPadding; // Padding within a window. - float WindowRounding; // Radius of window corners rounding. Set to 0.0f to have rectangular windows. - float WindowBorderSize; // Thickness of border around windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - ImVec2 WindowMinSize; // Minimum window size. This is a global setting. If you want to constraint individual windows, use SetNextWindowSizeConstraints(). - ImVec2 WindowTitleAlign; // Alignment for title bar text. Defaults to (0.0f,0.5f) for left-aligned,vertically centered. - ImGuiDir WindowMenuButtonPosition; // Side of the collapsing/docking button in the title bar (None/Left/Right). Defaults to ImGuiDir_Left. - float ChildRounding; // Radius of child window corners rounding. Set to 0.0f to have rectangular windows. - float ChildBorderSize; // Thickness of border around child windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - float PopupRounding; // Radius of popup window corners rounding. (Note that tooltip windows use WindowRounding) - float PopupBorderSize; // Thickness of border around popup/tooltip windows. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - ImVec2 FramePadding; // Padding within a framed rectangle (used by most widgets). - float FrameRounding; // Radius of frame corners rounding. Set to 0.0f to have rectangular frame (used by most widgets). - float FrameBorderSize; // Thickness of border around frames. Generally set to 0.0f or 1.0f. (Other values are not well tested and more CPU/GPU costly). - ImVec2 ItemSpacing; // Horizontal and vertical spacing between widgets/lines. - ImVec2 ItemInnerSpacing; // Horizontal and vertical spacing between within elements of a composed widget (e.g. a slider and its label). - ImVec2 TouchExtraPadding; // Expand reactive bounding box for touch-based system where touch position is not accurate enough. Unfortunately we don't sort widgets so priority on overlap will always be given to the first widget. So don't grow this too much! - float IndentSpacing; // Horizontal indentation when e.g. entering a tree node. Generally == (FontSize + FramePadding.x*2). - float ColumnsMinSpacing; // Minimum horizontal spacing between two columns. Preferably > (FramePadding.x + 1). - float ScrollbarSize; // Width of the vertical scrollbar, Height of the horizontal scrollbar. - float ScrollbarRounding; // Radius of grab corners for scrollbar. - float GrabMinSize; // Minimum width/height of a grab box for slider/scrollbar. - float GrabRounding; // Radius of grabs corners rounding. Set to 0.0f to have rectangular slider grabs. - float TabRounding; // Radius of upper corners of a tab. Set to 0.0f to have rectangular tabs. - float TabBorderSize; // Thickness of border around tabs. - ImGuiDir ColorButtonPosition; // Side of the color button in the ColorEdit4 widget (left/right). Defaults to ImGuiDir_Right. - ImVec2 ButtonTextAlign; // Alignment of button text when button is larger than text. Defaults to (0.5f, 0.5f) (centered). - ImVec2 SelectableTextAlign; // Alignment of selectable text. Defaults to (0.0f, 0.0f) (top-left aligned). It's generally important to keep this left-aligned if you want to lay multiple items on a same line. - ImVec2 DisplayWindowPadding; // Window position are clamped to be visible within the display area by at least this amount. Only applies to regular windows. - ImVec2 DisplaySafeAreaPadding; // If you cannot see the edges of your screen (e.g. on a TV) increase the safe area padding. Apply to popups/tooltips as well regular windows. NB: Prefer configuring your TV sets correctly! - float MouseCursorScale; // Scale software rendered mouse cursor (when io.MouseDrawCursor is enabled). May be removed later. - bool AntiAliasedLines; // Enable anti-aliasing on lines/borders. Disable if you are really tight on CPU/GPU. - bool AntiAliasedFill; // Enable anti-aliasing on filled shapes (rounded rectangles, circles, etc.) - float CurveTessellationTol; // Tessellation tolerance when using PathBezierCurveTo() without a specific number of segments. Decrease for highly tessellated curves (higher quality, more polygons), increase to reduce quality. - float CircleSegmentMaxError; // Maximum error (in pixels) allowed when using AddCircle()/AddCircleFilled() or drawing rounded corner rectangles with no explicit segment count specified. Decrease for higher quality but more geometry. - ImVec4 Colors[ImGuiCol_COUNT]; - - IMGUI_API ImGuiStyle(); - IMGUI_API void ScaleAllSizes(float scale_factor); -}; - -//----------------------------------------------------------------------------- -// ImGuiIO -// Communicate most settings and inputs/outputs to Dear ImGui using this structure. -// Access via ImGui::GetIO(). Read 'Programmer guide' section in .cpp file for general usage. -//----------------------------------------------------------------------------- - -struct ImGuiIO -{ - //------------------------------------------------------------------ - // Configuration (fill once) // Default value - //------------------------------------------------------------------ - - ImGuiConfigFlags ConfigFlags; // = 0 // See ImGuiConfigFlags_ enum. Set by user/application. Gamepad/keyboard navigation options, etc. - ImGuiBackendFlags BackendFlags; // = 0 // See ImGuiBackendFlags_ enum. Set by back-end (imgui_impl_xxx files or custom back-end) to communicate features supported by the back-end. - ImVec2 DisplaySize; // // Main display size, in pixels. - float DeltaTime; // = 1.0f/60.0f // Time elapsed since last frame, in seconds. - float IniSavingRate; // = 5.0f // Minimum time between saving positions/sizes to .ini file, in seconds. - const char* IniFilename; // = "imgui.ini" // Path to .ini file. Set NULL to disable automatic .ini loading/saving, if e.g. you want to manually load/save from memory. - const char* LogFilename; // = "imgui_log.txt"// Path to .log file (default parameter to ImGui::LogToFile when no file is specified). - float MouseDoubleClickTime; // = 0.30f // Time for a double-click, in seconds. - float MouseDoubleClickMaxDist; // = 6.0f // Distance threshold to stay in to validate a double-click, in pixels. - float MouseDragThreshold; // = 6.0f // Distance threshold before considering we are dragging. - int KeyMap[ImGuiKey_COUNT]; // // Map of indices into the KeysDown[512] entries array which represent your "native" keyboard state. - float KeyRepeatDelay; // = 0.250f // When holding a key/button, time before it starts repeating, in seconds (for buttons in Repeat mode, etc.). - float KeyRepeatRate; // = 0.050f // When holding a key/button, rate at which it repeats, in seconds. - void* UserData; // = NULL // Store your own data for retrieval by callbacks. - - ImFontAtlas*Fonts; // // Font atlas: load, rasterize and pack one or more fonts into a single texture. - float FontGlobalScale; // = 1.0f // Global scale all fonts - bool FontAllowUserScaling; // = false // Allow user scaling text of individual window with CTRL+Wheel. - ImFont* FontDefault; // = NULL // Font to use on NewFrame(). Use NULL to uses Fonts->Fonts[0]. - ImVec2 DisplayFramebufferScale; // = (1, 1) // For retina display or other situations where window coordinates are different from framebuffer coordinates. This generally ends up in ImDrawData::FramebufferScale. - - // Miscellaneous options - bool MouseDrawCursor; // = false // Request ImGui to draw a mouse cursor for you (if you are on a platform without a mouse cursor). Cannot be easily renamed to 'io.ConfigXXX' because this is frequently used by back-end implementations. - bool ConfigMacOSXBehaviors; // = defined(__APPLE__) // OS X style: Text editing cursor movement using Alt instead of Ctrl, Shortcuts using Cmd/Super instead of Ctrl, Line/Text Start and End using Cmd+Arrows instead of Home/End, Double click selects by word instead of selecting whole text, Multi-selection in lists uses Cmd/Super instead of Ctrl (was called io.OptMacOSXBehaviors prior to 1.63) - bool ConfigInputTextCursorBlink; // = true // Set to false to disable blinking cursor, for users who consider it distracting. (was called: io.OptCursorBlink prior to 1.63) - bool ConfigWindowsResizeFromEdges; // = true // Enable resizing of windows from their edges and from the lower-left corner. This requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback. (This used to be a per-window ImGuiWindowFlags_ResizeFromAnySide flag) - bool ConfigWindowsMoveFromTitleBarOnly; // = false // [BETA] Set to true to only allow moving windows when clicked+dragged from the title bar. Windows without a title bar are not affected. - float ConfigWindowsMemoryCompactTimer;// = 60.0f // [BETA] Compact window memory usage when unused. Set to -1.0f to disable. - - //------------------------------------------------------------------ - // Platform Functions - // (the imgui_impl_xxxx back-end files are setting those up for you) - //------------------------------------------------------------------ - - // Optional: Platform/Renderer back-end name (informational only! will be displayed in About Window) + User data for back-end/wrappers to store their own stuff. - const char* BackendPlatformName; // = NULL - const char* BackendRendererName; // = NULL - void* BackendPlatformUserData; // = NULL // User data for platform back-end - void* BackendRendererUserData; // = NULL // User data for renderer back-end - void* BackendLanguageUserData; // = NULL // User data for non C++ programming language back-end - - // Optional: Access OS clipboard - // (default to use native Win32 clipboard on Windows, otherwise uses a private clipboard. Override to access OS clipboard on other architectures) - const char* (*GetClipboardTextFn)(void* user_data); - void (*SetClipboardTextFn)(void* user_data, const char* text); - void* ClipboardUserData; - - // Optional: Notify OS Input Method Editor of the screen position of your cursor for text input position (e.g. when using Japanese/Chinese IME on Windows) - // (default to use native imm32 api on Windows) - void (*ImeSetInputScreenPosFn)(int x, int y); - void* ImeWindowHandle; // = NULL // (Windows) Set this to your HWND to get automatic IME cursor positioning. - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - // [OBSOLETE since 1.60+] Rendering function, will be automatically called in Render(). Please call your rendering function yourself now! - // You can obtain the ImDrawData* by calling ImGui::GetDrawData() after Render(). See example applications if you are unsure of how to implement this. - void (*RenderDrawListsFn)(ImDrawData* data); -#else - // This is only here to keep ImGuiIO the same size/layout, so that IMGUI_DISABLE_OBSOLETE_FUNCTIONS can exceptionally be used outside of imconfig.h. - void* RenderDrawListsFnUnused; -#endif - - //------------------------------------------------------------------ - // Input - Fill before calling NewFrame() - //------------------------------------------------------------------ - - ImVec2 MousePos; // Mouse position, in pixels. Set to ImVec2(-FLT_MAX,-FLT_MAX) if mouse is unavailable (on another screen, etc.) - bool MouseDown[5]; // Mouse buttons: 0=left, 1=right, 2=middle + extras. ImGui itself mostly only uses left button (BeginPopupContext** are using right button). Others buttons allows us to track if the mouse is being used by your application + available to user as a convenience via IsMouse** API. - float MouseWheel; // Mouse wheel Vertical: 1 unit scrolls about 5 lines text. - float MouseWheelH; // Mouse wheel Horizontal. Most users don't have a mouse with an horizontal wheel, may not be filled by all back-ends. - bool KeyCtrl; // Keyboard modifier pressed: Control - bool KeyShift; // Keyboard modifier pressed: Shift - bool KeyAlt; // Keyboard modifier pressed: Alt - bool KeySuper; // Keyboard modifier pressed: Cmd/Super/Windows - bool KeysDown[512]; // Keyboard keys that are pressed (ideally left in the "native" order your engine has access to keyboard keys, so you can use your own defines/enums for keys). - float NavInputs[ImGuiNavInput_COUNT]; // Gamepad inputs. Cleared back to zero by EndFrame(). Keyboard keys will be auto-mapped and be written here by NewFrame(). - - // Functions - IMGUI_API void AddInputCharacter(unsigned int c); // Queue new character input - IMGUI_API void AddInputCharacterUTF16(ImWchar16 c); // Queue new character input from an UTF-16 character, it can be a surrogate - IMGUI_API void AddInputCharactersUTF8(const char* str); // Queue new characters input from an UTF-8 string - IMGUI_API void ClearInputCharacters(); // Clear the text input buffer manually - - //------------------------------------------------------------------ - // Output - Updated by NewFrame() or EndFrame()/Render() - // (when reading from the io.WantCaptureMouse, io.WantCaptureKeyboard flags to dispatch your inputs, it is - // generally easier and more correct to use their state BEFORE calling NewFrame(). See FAQ for details!) - //------------------------------------------------------------------ - - bool WantCaptureMouse; // Set when Dear ImGui will use mouse inputs, in this case do not dispatch them to your main game/application (either way, always pass on mouse inputs to imgui). (e.g. unclicked mouse is hovering over an imgui window, widget is active, mouse was clicked over an imgui window, etc.). - bool WantCaptureKeyboard; // Set when Dear ImGui will use keyboard inputs, in this case do not dispatch them to your main game/application (either way, always pass keyboard inputs to imgui). (e.g. InputText active, or an imgui window is focused and navigation is enabled, etc.). - bool WantTextInput; // Mobile/console: when set, you may display an on-screen keyboard. This is set by Dear ImGui when it wants textual keyboard input to happen (e.g. when a InputText widget is active). - bool WantSetMousePos; // MousePos has been altered, back-end should reposition mouse on next frame. Rarely used! Set only when ImGuiConfigFlags_NavEnableSetMousePos flag is enabled. - bool WantSaveIniSettings; // When manual .ini load/save is active (io.IniFilename == NULL), this will be set to notify your application that you can call SaveIniSettingsToMemory() and save yourself. Important: clear io.WantSaveIniSettings yourself after saving! - bool NavActive; // Keyboard/Gamepad navigation is currently allowed (will handle ImGuiKey_NavXXX events) = a window is focused and it doesn't use the ImGuiWindowFlags_NoNavInputs flag. - bool NavVisible; // Keyboard/Gamepad navigation is visible and allowed (will handle ImGuiKey_NavXXX events). - float Framerate; // Application framerate estimate, in frame per second. Solely for convenience. Rolling average estimation based on io.DeltaTime over 120 frames. - int MetricsRenderVertices; // Vertices output during last call to Render() - int MetricsRenderIndices; // Indices output during last call to Render() = number of triangles * 3 - int MetricsRenderWindows; // Number of visible windows - int MetricsActiveWindows; // Number of active windows - int MetricsActiveAllocations; // Number of active allocations, updated by MemAlloc/MemFree based on current context. May be off if you have multiple imgui contexts. - ImVec2 MouseDelta; // Mouse delta. Note that this is zero if either current or previous position are invalid (-FLT_MAX,-FLT_MAX), so a disappearing/reappearing mouse won't have a huge delta. - - //------------------------------------------------------------------ - // [Internal] Dear ImGui will maintain those fields. Forward compatibility not guaranteed! - //------------------------------------------------------------------ - - ImGuiKeyModFlags KeyMods; // Key mods flags (same as io.KeyCtrl/KeyShift/KeyAlt/KeySuper but merged into flags), updated by NewFrame() - ImVec2 MousePosPrev; // Previous mouse position (note that MouseDelta is not necessary == MousePos-MousePosPrev, in case either position is invalid) - ImVec2 MouseClickedPos[5]; // Position at time of clicking - double MouseClickedTime[5]; // Time of last click (used to figure out double-click) - bool MouseClicked[5]; // Mouse button went from !Down to Down - bool MouseDoubleClicked[5]; // Has mouse button been double-clicked? - bool MouseReleased[5]; // Mouse button went from Down to !Down - bool MouseDownOwned[5]; // Track if button was clicked inside a dear imgui window. We don't request mouse capture from the application if click started outside ImGui bounds. - bool MouseDownWasDoubleClick[5]; // Track if button down was a double-click - float MouseDownDuration[5]; // Duration the mouse button has been down (0.0f == just clicked) - float MouseDownDurationPrev[5]; // Previous time the mouse button has been down - ImVec2 MouseDragMaxDistanceAbs[5]; // Maximum distance, absolute, on each axis, of how much mouse has traveled from the clicking point - float MouseDragMaxDistanceSqr[5]; // Squared maximum distance of how much mouse has traveled from the clicking point - float KeysDownDuration[512]; // Duration the keyboard key has been down (0.0f == just pressed) - float KeysDownDurationPrev[512]; // Previous duration the key has been down - float NavInputsDownDuration[ImGuiNavInput_COUNT]; - float NavInputsDownDurationPrev[ImGuiNavInput_COUNT]; - ImWchar16 InputQueueSurrogate; // For AddInputCharacterUTF16 - ImVector InputQueueCharacters; // Queue of _characters_ input (obtained by platform back-end). Fill using AddInputCharacter() helper. - - IMGUI_API ImGuiIO(); -}; - -//----------------------------------------------------------------------------- -// Misc data structures -//----------------------------------------------------------------------------- - -// Shared state of InputText(), passed as an argument to your callback when a ImGuiInputTextFlags_Callback* flag is used. -// The callback function should return 0 by default. -// Callbacks (follow a flag name and see comments in ImGuiInputTextFlags_ declarations for more details) -// - ImGuiInputTextFlags_CallbackCompletion: Callback on pressing TAB -// - ImGuiInputTextFlags_CallbackHistory: Callback on pressing Up/Down arrows -// - ImGuiInputTextFlags_CallbackAlways: Callback on each iteration -// - ImGuiInputTextFlags_CallbackCharFilter: Callback on character inputs to replace or discard them. Modify 'EventChar' to replace or discard, or return 1 in callback to discard. -// - ImGuiInputTextFlags_CallbackResize: Callback on buffer capacity changes request (beyond 'buf_size' parameter value), allowing the string to grow. -struct ImGuiInputTextCallbackData -{ - ImGuiInputTextFlags EventFlag; // One ImGuiInputTextFlags_Callback* // Read-only - ImGuiInputTextFlags Flags; // What user passed to InputText() // Read-only - void* UserData; // What user passed to InputText() // Read-only - - // Arguments for the different callback events - // - To modify the text buffer in a callback, prefer using the InsertChars() / DeleteChars() function. InsertChars() will take care of calling the resize callback if necessary. - // - If you know your edits are not going to resize the underlying buffer allocation, you may modify the contents of 'Buf[]' directly. You need to update 'BufTextLen' accordingly (0 <= BufTextLen < BufSize) and set 'BufDirty'' to true so InputText can update its internal state. - ImWchar EventChar; // Character input // Read-write // [CharFilter] Replace character with another one, or set to zero to drop. return 1 is equivalent to setting EventChar=0; - ImGuiKey EventKey; // Key pressed (Up/Down/TAB) // Read-only // [Completion,History] - char* Buf; // Text buffer // Read-write // [Resize] Can replace pointer / [Completion,History,Always] Only write to pointed data, don't replace the actual pointer! - int BufTextLen; // Text length (in bytes) // Read-write // [Resize,Completion,History,Always] Exclude zero-terminator storage. In C land: == strlen(some_text), in C++ land: string.length() - int BufSize; // Buffer size (in bytes) = capacity+1 // Read-only // [Resize,Completion,History,Always] Include zero-terminator storage. In C land == ARRAYSIZE(my_char_array), in C++ land: string.capacity()+1 - bool BufDirty; // Set if you modify Buf/BufTextLen! // Write // [Completion,History,Always] - int CursorPos; // // Read-write // [Completion,History,Always] - int SelectionStart; // // Read-write // [Completion,History,Always] == to SelectionEnd when no selection) - int SelectionEnd; // // Read-write // [Completion,History,Always] - - // Helper functions for text manipulation. - // Use those function to benefit from the CallbackResize behaviors. Calling those function reset the selection. - IMGUI_API ImGuiInputTextCallbackData(); - IMGUI_API void DeleteChars(int pos, int bytes_count); - IMGUI_API void InsertChars(int pos, const char* text, const char* text_end = NULL); - bool HasSelection() const { return SelectionStart != SelectionEnd; } -}; - -// Resizing callback data to apply custom constraint. As enabled by SetNextWindowSizeConstraints(). Callback is called during the next Begin(). -// NB: For basic min/max size constraint on each axis you don't need to use the callback! The SetNextWindowSizeConstraints() parameters are enough. -struct ImGuiSizeCallbackData -{ - void* UserData; // Read-only. What user passed to SetNextWindowSizeConstraints() - ImVec2 Pos; // Read-only. Window position, for reference. - ImVec2 CurrentSize; // Read-only. Current window size. - ImVec2 DesiredSize; // Read-write. Desired size, based on user's mouse position. Write to this field to restrain resizing. -}; - -// Data payload for Drag and Drop operations: AcceptDragDropPayload(), GetDragDropPayload() -struct ImGuiPayload -{ - // Members - void* Data; // Data (copied and owned by dear imgui) - int DataSize; // Data size - - // [Internal] - ImGuiID SourceId; // Source item id - ImGuiID SourceParentId; // Source parent id (if available) - int DataFrameCount; // Data timestamp - char DataType[32+1]; // Data type tag (short user-supplied string, 32 characters max) - bool Preview; // Set when AcceptDragDropPayload() was called and mouse has been hovering the target item (nb: handle overlapping drag targets) - bool Delivery; // Set when AcceptDragDropPayload() was called and mouse button is released over the target item. - - ImGuiPayload() { Clear(); } - void Clear() { SourceId = SourceParentId = 0; Data = NULL; DataSize = 0; memset(DataType, 0, sizeof(DataType)); DataFrameCount = -1; Preview = Delivery = false; } - bool IsDataType(const char* type) const { return DataFrameCount != -1 && strcmp(type, DataType) == 0; } - bool IsPreview() const { return Preview; } - bool IsDelivery() const { return Delivery; } -}; - -//----------------------------------------------------------------------------- -// Obsolete functions (Will be removed! Read 'API BREAKING CHANGES' section in imgui.cpp for details) -// Please keep your copy of dear imgui up to date! Occasionally set '#define IMGUI_DISABLE_OBSOLETE_FUNCTIONS' in imconfig.h to stay ahead. -//----------------------------------------------------------------------------- - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS -namespace ImGui -{ - // OBSOLETED in 1.72 (from July 2019) - static inline void TreeAdvanceToLabelPos() { SetCursorPosX(GetCursorPosX() + GetTreeNodeToLabelSpacing()); } - // OBSOLETED in 1.71 (from June 2019) - static inline void SetNextTreeNodeOpen(bool open, ImGuiCond cond = 0) { SetNextItemOpen(open, cond); } - // OBSOLETED in 1.70 (from May 2019) - static inline float GetContentRegionAvailWidth() { return GetContentRegionAvail().x; } - // OBSOLETED in 1.69 (from Mar 2019) - static inline ImDrawList* GetOverlayDrawList() { return GetForegroundDrawList(); } - // OBSOLETED in 1.66 (from Sep 2018) - static inline void SetScrollHere(float center_ratio=0.5f){ SetScrollHereY(center_ratio); } - // OBSOLETED in 1.63 (between Aug 2018 and Sept 2018) - static inline bool IsItemDeactivatedAfterChange() { return IsItemDeactivatedAfterEdit(); } - // OBSOLETED in 1.61 (between Apr 2018 and Aug 2018) - IMGUI_API bool InputFloat(const char* label, float* v, float step, float step_fast, int decimal_precision, ImGuiInputTextFlags flags = 0); // Use the 'const char* format' version instead of 'decimal_precision'! - IMGUI_API bool InputFloat2(const char* label, float v[2], int decimal_precision, ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputFloat3(const char* label, float v[3], int decimal_precision, ImGuiInputTextFlags flags = 0); - IMGUI_API bool InputFloat4(const char* label, float v[4], int decimal_precision, ImGuiInputTextFlags flags = 0); - // OBSOLETED in 1.60 (between Dec 2017 and Apr 2018) - static inline bool IsAnyWindowFocused() { return IsWindowFocused(ImGuiFocusedFlags_AnyWindow); } - static inline bool IsAnyWindowHovered() { return IsWindowHovered(ImGuiHoveredFlags_AnyWindow); } - static inline ImVec2 CalcItemRectClosestPoint(const ImVec2& pos, bool on_edge = false, float outward = 0.f) { IM_UNUSED(on_edge); IM_UNUSED(outward); IM_ASSERT(0); return pos; } -} -typedef ImGuiInputTextCallback ImGuiTextEditCallback; // OBSOLETED in 1.63 (from Aug 2018): made the names consistent -typedef ImGuiInputTextCallbackData ImGuiTextEditCallbackData; -#endif - -//----------------------------------------------------------------------------- -// Helpers -//----------------------------------------------------------------------------- - -// Helper: Unicode defines -#define IM_UNICODE_CODEPOINT_INVALID 0xFFFD // Invalid Unicode code point (standard value). -#ifdef IMGUI_USE_WCHAR32 -#define IM_UNICODE_CODEPOINT_MAX 0x10FFFF // Maximum Unicode code point supported by this build. -#else -#define IM_UNICODE_CODEPOINT_MAX 0xFFFF // Maximum Unicode code point supported by this build. -#endif - -// Helper: Execute a block of code at maximum once a frame. Convenient if you want to quickly create an UI within deep-nested code that runs multiple times every frame. -// Usage: static ImGuiOnceUponAFrame oaf; if (oaf) ImGui::Text("This will be called only once per frame"); -struct ImGuiOnceUponAFrame -{ - ImGuiOnceUponAFrame() { RefFrame = -1; } - mutable int RefFrame; - operator bool() const { int current_frame = ImGui::GetFrameCount(); if (RefFrame == current_frame) return false; RefFrame = current_frame; return true; } -}; - -// Helper: Parse and apply text filters. In format "aaaaa[,bbbb][,ccccc]" -struct ImGuiTextFilter -{ - IMGUI_API ImGuiTextFilter(const char* default_filter = ""); - IMGUI_API bool Draw(const char* label = "Filter (inc,-exc)", float width = 0.0f); // Helper calling InputText+Build - IMGUI_API bool PassFilter(const char* text, const char* text_end = NULL) const; - IMGUI_API void Build(); - void Clear() { InputBuf[0] = 0; Build(); } - bool IsActive() const { return !Filters.empty(); } - - // [Internal] - struct ImGuiTextRange - { - const char* b; - const char* e; - - ImGuiTextRange() { b = e = NULL; } - ImGuiTextRange(const char* _b, const char* _e) { b = _b; e = _e; } - bool empty() const { return b == e; } - IMGUI_API void split(char separator, ImVector* out) const; - }; - char InputBuf[256]; - ImVectorFilters; - int CountGrep; -}; - -// Helper: Growable text buffer for logging/accumulating text -// (this could be called 'ImGuiTextBuilder' / 'ImGuiStringBuilder') -struct ImGuiTextBuffer -{ - ImVector Buf; - IMGUI_API static char EmptyString[1]; - - ImGuiTextBuffer() { } - inline char operator[](int i) const { IM_ASSERT(Buf.Data != NULL); return Buf.Data[i]; } - const char* begin() const { return Buf.Data ? &Buf.front() : EmptyString; } - const char* end() const { return Buf.Data ? &Buf.back() : EmptyString; } // Buf is zero-terminated, so end() will point on the zero-terminator - int size() const { return Buf.Size ? Buf.Size - 1 : 0; } - bool empty() const { return Buf.Size <= 1; } - void clear() { Buf.clear(); } - void reserve(int capacity) { Buf.reserve(capacity); } - const char* c_str() const { return Buf.Data ? Buf.Data : EmptyString; } - IMGUI_API void append(const char* str, const char* str_end = NULL); - IMGUI_API void appendf(const char* fmt, ...) IM_FMTARGS(2); - IMGUI_API void appendfv(const char* fmt, va_list args) IM_FMTLIST(2); -}; - -// Helper: Key->Value storage -// Typically you don't have to worry about this since a storage is held within each Window. -// We use it to e.g. store collapse state for a tree (Int 0/1) -// This is optimized for efficient lookup (dichotomy into a contiguous buffer) and rare insertion (typically tied to user interactions aka max once a frame) -// You can use it as custom user storage for temporary values. Declare your own storage if, for example: -// - You want to manipulate the open/close state of a particular sub-tree in your interface (tree node uses Int 0/1 to store their state). -// - You want to store custom debug data easily without adding or editing structures in your code (probably not efficient, but convenient) -// Types are NOT stored, so it is up to you to make sure your Key don't collide with different types. -struct ImGuiStorage -{ - // [Internal] - struct ImGuiStoragePair - { - ImGuiID key; - union { int val_i; float val_f; void* val_p; }; - ImGuiStoragePair(ImGuiID _key, int _val_i) { key = _key; val_i = _val_i; } - ImGuiStoragePair(ImGuiID _key, float _val_f) { key = _key; val_f = _val_f; } - ImGuiStoragePair(ImGuiID _key, void* _val_p) { key = _key; val_p = _val_p; } - }; - - ImVector Data; - - // - Get***() functions find pair, never add/allocate. Pairs are sorted so a query is O(log N) - // - Set***() functions find pair, insertion on demand if missing. - // - Sorted insertion is costly, paid once. A typical frame shouldn't need to insert any new pair. - void Clear() { Data.clear(); } - IMGUI_API int GetInt(ImGuiID key, int default_val = 0) const; - IMGUI_API void SetInt(ImGuiID key, int val); - IMGUI_API bool GetBool(ImGuiID key, bool default_val = false) const; - IMGUI_API void SetBool(ImGuiID key, bool val); - IMGUI_API float GetFloat(ImGuiID key, float default_val = 0.0f) const; - IMGUI_API void SetFloat(ImGuiID key, float val); - IMGUI_API void* GetVoidPtr(ImGuiID key) const; // default_val is NULL - IMGUI_API void SetVoidPtr(ImGuiID key, void* val); - - // - Get***Ref() functions finds pair, insert on demand if missing, return pointer. Useful if you intend to do Get+Set. - // - References are only valid until a new value is added to the storage. Calling a Set***() function or a Get***Ref() function invalidates the pointer. - // - A typical use case where this is convenient for quick hacking (e.g. add storage during a live Edit&Continue session if you can't modify existing struct) - // float* pvar = ImGui::GetFloatRef(key); ImGui::SliderFloat("var", pvar, 0, 100.0f); some_var += *pvar; - IMGUI_API int* GetIntRef(ImGuiID key, int default_val = 0); - IMGUI_API bool* GetBoolRef(ImGuiID key, bool default_val = false); - IMGUI_API float* GetFloatRef(ImGuiID key, float default_val = 0.0f); - IMGUI_API void** GetVoidPtrRef(ImGuiID key, void* default_val = NULL); - - // Use on your own storage if you know only integer are being stored (open/close all tree nodes) - IMGUI_API void SetAllInt(int val); - - // For quicker full rebuild of a storage (instead of an incremental one), you may add all your contents and then sort once. - IMGUI_API void BuildSortByKey(); -}; - -// Helper: Manually clip large list of items. -// If you are submitting lots of evenly spaced items and you have a random access to the list, you can perform coarse clipping based on visibility to save yourself from processing those items at all. -// The clipper calculates the range of visible items and advance the cursor to compensate for the non-visible items we have skipped. -// ImGui already clip items based on their bounds but it needs to measure text size to do so. Coarse clipping before submission makes this cost and your own data fetching/submission cost null. -// Usage: -// ImGuiListClipper clipper(1000); // we have 1000 elements, evenly spaced. -// while (clipper.Step()) -// for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) -// ImGui::Text("line number %d", i); -// - Step 0: the clipper let you process the first element, regardless of it being visible or not, so we can measure the element height (step skipped if we passed a known height as second arg to constructor). -// - Step 1: the clipper infer height from first element, calculate the actual range of elements to display, and position the cursor before the first element. -// - (Step 2: dummy step only required if an explicit items_height was passed to constructor or Begin() and user call Step(). Does nothing and switch to Step 3.) -// - Step 3: the clipper validate that we have reached the expected Y position (corresponding to element DisplayEnd), advance the cursor to the end of the list and then returns 'false' to end the loop. -struct ImGuiListClipper -{ - int DisplayStart, DisplayEnd; - int ItemsCount; - - // [Internal] - int StepNo; - float ItemsHeight; - float StartPosY; - - // items_count: Use -1 to ignore (you can call Begin later). Use INT_MAX if you don't know how many items you have (in which case the cursor won't be advanced in the final step). - // items_height: Use -1.0f to be calculated automatically on first step. Otherwise pass in the distance between your items, typically GetTextLineHeightWithSpacing() or GetFrameHeightWithSpacing(). - // If you don't specify an items_height, you NEED to call Step(). If you specify items_height you may call the old Begin()/End() api directly, but prefer calling Step(). - ImGuiListClipper(int items_count = -1, float items_height = -1.0f) { Begin(items_count, items_height); } // NB: Begin() initialize every fields (as we allow user to call Begin/End multiple times on a same instance if they want). - ~ImGuiListClipper() { IM_ASSERT(ItemsCount == -1); } // Assert if user forgot to call End() or Step() until false. - - IMGUI_API bool Step(); // Call until it returns false. The DisplayStart/DisplayEnd fields will be set and you can process/draw those items. - IMGUI_API void Begin(int items_count, float items_height = -1.0f); // Automatically called by constructor if you passed 'items_count' or by Step() in Step 1. - IMGUI_API void End(); // Automatically called on the last call of Step() that returns false. -}; - -// Helpers macros to generate 32-bit encoded colors -#ifdef IMGUI_USE_BGRA_PACKED_COLOR -#define IM_COL32_R_SHIFT 16 -#define IM_COL32_G_SHIFT 8 -#define IM_COL32_B_SHIFT 0 -#define IM_COL32_A_SHIFT 24 -#define IM_COL32_A_MASK 0xFF000000 -#else -#define IM_COL32_R_SHIFT 0 -#define IM_COL32_G_SHIFT 8 -#define IM_COL32_B_SHIFT 16 -#define IM_COL32_A_SHIFT 24 -#define IM_COL32_A_MASK 0xFF000000 -#endif -#define IM_COL32(R,G,B,A) (((ImU32)(A)<>IM_COL32_R_SHIFT)&0xFF) * sc; Value.y = (float)((rgba>>IM_COL32_G_SHIFT)&0xFF) * sc; Value.z = (float)((rgba>>IM_COL32_B_SHIFT)&0xFF) * sc; Value.w = (float)((rgba>>IM_COL32_A_SHIFT)&0xFF) * sc; } - ImColor(float r, float g, float b, float a = 1.0f) { Value.x = r; Value.y = g; Value.z = b; Value.w = a; } - ImColor(const ImVec4& col) { Value = col; } - inline operator ImU32() const { return ImGui::ColorConvertFloat4ToU32(Value); } - inline operator ImVec4() const { return Value; } - - // FIXME-OBSOLETE: May need to obsolete/cleanup those helpers. - inline void SetHSV(float h, float s, float v, float a = 1.0f){ ImGui::ColorConvertHSVtoRGB(h, s, v, Value.x, Value.y, Value.z); Value.w = a; } - static ImColor HSV(float h, float s, float v, float a = 1.0f) { float r,g,b; ImGui::ColorConvertHSVtoRGB(h, s, v, r, g, b); return ImColor(r,g,b,a); } -}; - -//----------------------------------------------------------------------------- -// Draw List API (ImDrawCmd, ImDrawIdx, ImDrawVert, ImDrawChannel, ImDrawListSplitter, ImDrawListFlags, ImDrawList, ImDrawData) -// Hold a series of drawing commands. The user provides a renderer for ImDrawData which essentially contains an array of ImDrawList. -//----------------------------------------------------------------------------- - -// ImDrawCallback: Draw callbacks for advanced uses [configurable type: override in imconfig.h] -// NB: You most likely do NOT need to use draw callbacks just to create your own widget or customized UI rendering, -// you can poke into the draw list for that! Draw callback may be useful for example to: -// A) Change your GPU render state, -// B) render a complex 3D scene inside a UI element without an intermediate texture/render target, etc. -// The expected behavior from your rendering function is 'if (cmd.UserCallback != NULL) { cmd.UserCallback(parent_list, cmd); } else { RenderTriangles() }' -// If you want to override the signature of ImDrawCallback, you can simply use e.g. '#define ImDrawCallback MyDrawCallback' (in imconfig.h) + update rendering back-end accordingly. -#ifndef ImDrawCallback -typedef void (*ImDrawCallback)(const ImDrawList* parent_list, const ImDrawCmd* cmd); -#endif - -// Special Draw callback value to request renderer back-end to reset the graphics/render state. -// The renderer back-end needs to handle this special value, otherwise it will crash trying to call a function at this address. -// This is useful for example if you submitted callbacks which you know have altered the render state and you want it to be restored. -// It is not done by default because they are many perfectly useful way of altering render state for imgui contents (e.g. changing shader/blending settings before an Image call). -#define ImDrawCallback_ResetRenderState (ImDrawCallback)(-1) - -// Typically, 1 command = 1 GPU draw call (unless command is a callback) -// Pre 1.71 back-ends will typically ignore the VtxOffset/IdxOffset fields. When 'io.BackendFlags & ImGuiBackendFlags_RendererHasVtxOffset' -// is enabled, those fields allow us to render meshes larger than 64K vertices while keeping 16-bit indices. -struct ImDrawCmd -{ - unsigned int ElemCount; // Number of indices (multiple of 3) to be rendered as triangles. Vertices are stored in the callee ImDrawList's vtx_buffer[] array, indices in idx_buffer[]. - ImVec4 ClipRect; // Clipping rectangle (x1, y1, x2, y2). Subtract ImDrawData->DisplayPos to get clipping rectangle in "viewport" coordinates - ImTextureID TextureId; // User-provided texture ID. Set by user in ImfontAtlas::SetTexID() for fonts or passed to Image*() functions. Ignore if never using images or multiple fonts atlas. - unsigned int VtxOffset; // Start offset in vertex buffer. Pre-1.71 or without ImGuiBackendFlags_RendererHasVtxOffset: always 0. With ImGuiBackendFlags_RendererHasVtxOffset: may be >0 to support meshes larger than 64K vertices with 16-bit indices. - unsigned int IdxOffset; // Start offset in index buffer. Always equal to sum of ElemCount drawn so far. - ImDrawCallback UserCallback; // If != NULL, call the function instead of rendering the vertices. clip_rect and texture_id will be set normally. - void* UserCallbackData; // The draw callback code can access this. - - ImDrawCmd() { ElemCount = 0; TextureId = (ImTextureID)NULL; VtxOffset = IdxOffset = 0; UserCallback = NULL; UserCallbackData = NULL; } -}; - -// Vertex index, default to 16-bit -// To allow large meshes with 16-bit indices: set 'io.BackendFlags |= ImGuiBackendFlags_RendererHasVtxOffset' and handle ImDrawCmd::VtxOffset in the renderer back-end (recommended). -// To use 32-bit indices: override with '#define ImDrawIdx unsigned int' in imconfig.h. -#ifndef ImDrawIdx -typedef unsigned short ImDrawIdx; -#endif - -// Vertex layout -#ifndef IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT -struct ImDrawVert -{ - ImVec2 pos; - ImVec2 uv; - ImU32 col; -}; -#else -// You can override the vertex format layout by defining IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT in imconfig.h -// The code expect ImVec2 pos (8 bytes), ImVec2 uv (8 bytes), ImU32 col (4 bytes), but you can re-order them or add other fields as needed to simplify integration in your engine. -// The type has to be described within the macro (you can either declare the struct or use a typedef). This is because ImVec2/ImU32 are likely not declared a the time you'd want to set your type up. -// NOTE: IMGUI DOESN'T CLEAR THE STRUCTURE AND DOESN'T CALL A CONSTRUCTOR SO ANY CUSTOM FIELD WILL BE UNINITIALIZED. IF YOU ADD EXTRA FIELDS (SUCH AS A 'Z' COORDINATES) YOU WILL NEED TO CLEAR THEM DURING RENDER OR TO IGNORE THEM. -IMGUI_OVERRIDE_DRAWVERT_STRUCT_LAYOUT; -#endif - -// For use by ImDrawListSplitter. -struct ImDrawChannel -{ - ImVector _CmdBuffer; - ImVector _IdxBuffer; -}; - -// Split/Merge functions are used to split the draw list into different layers which can be drawn into out of order. -// This is used by the Columns api, so items of each column can be batched together in a same draw call. -struct ImDrawListSplitter -{ - int _Current; // Current channel number (0) - int _Count; // Number of active channels (1+) - ImVector _Channels; // Draw channels (not resized down so _Count might be < Channels.Size) - - inline ImDrawListSplitter() { Clear(); } - inline ~ImDrawListSplitter() { ClearFreeMemory(); } - inline void Clear() { _Current = 0; _Count = 1; } // Do not clear Channels[] so our allocations are reused next frame - IMGUI_API void ClearFreeMemory(); - IMGUI_API void Split(ImDrawList* draw_list, int count); - IMGUI_API void Merge(ImDrawList* draw_list); - IMGUI_API void SetCurrentChannel(ImDrawList* draw_list, int channel_idx); -}; - -enum ImDrawCornerFlags_ -{ - ImDrawCornerFlags_None = 0, - ImDrawCornerFlags_TopLeft = 1 << 0, // 0x1 - ImDrawCornerFlags_TopRight = 1 << 1, // 0x2 - ImDrawCornerFlags_BotLeft = 1 << 2, // 0x4 - ImDrawCornerFlags_BotRight = 1 << 3, // 0x8 - ImDrawCornerFlags_Top = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_TopRight, // 0x3 - ImDrawCornerFlags_Bot = ImDrawCornerFlags_BotLeft | ImDrawCornerFlags_BotRight, // 0xC - ImDrawCornerFlags_Left = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotLeft, // 0x5 - ImDrawCornerFlags_Right = ImDrawCornerFlags_TopRight | ImDrawCornerFlags_BotRight, // 0xA - ImDrawCornerFlags_All = 0xF // In your function calls you may use ~0 (= all bits sets) instead of ImDrawCornerFlags_All, as a convenience -}; - -enum ImDrawListFlags_ -{ - ImDrawListFlags_None = 0, - ImDrawListFlags_AntiAliasedLines = 1 << 0, // Lines are anti-aliased (*2 the number of triangles for 1.0f wide line, otherwise *3 the number of triangles) - ImDrawListFlags_AntiAliasedFill = 1 << 1, // Filled shapes have anti-aliased edges (*2 the number of vertices) - ImDrawListFlags_AllowVtxOffset = 1 << 2 // Can emit 'VtxOffset > 0' to allow large meshes. Set when 'ImGuiBackendFlags_RendererHasVtxOffset' is enabled. -}; - -// Draw command list -// This is the low-level list of polygons that ImGui:: functions are filling. At the end of the frame, -// all command lists are passed to your ImGuiIO::RenderDrawListFn function for rendering. -// Each dear imgui window contains its own ImDrawList. You can use ImGui::GetWindowDrawList() to -// access the current window draw list and draw custom primitives. -// You can interleave normal ImGui:: calls and adding primitives to the current draw list. -// All positions are generally in pixel coordinates (top-left at (0,0), bottom-right at io.DisplaySize), but you are totally free to apply whatever transformation matrix to want to the data (if you apply such transformation you'll want to apply it to ClipRect as well) -// Important: Primitives are always added to the list and not culled (culling is done at higher-level by ImGui:: functions), if you use this API a lot consider coarse culling your drawn objects. -struct ImDrawList -{ - // This is what you have to render - ImVector CmdBuffer; // Draw commands. Typically 1 command = 1 GPU draw call, unless the command is a callback. - ImVector IdxBuffer; // Index buffer. Each command consume ImDrawCmd::ElemCount of those - ImVector VtxBuffer; // Vertex buffer. - ImDrawListFlags Flags; // Flags, you may poke into these to adjust anti-aliasing settings per-primitive. - - // [Internal, used while building lists] - const ImDrawListSharedData* _Data; // Pointer to shared draw data (you can use ImGui::GetDrawListSharedData() to get the one from current ImGui context) - const char* _OwnerName; // Pointer to owner window's name for debugging - unsigned int _VtxCurrentOffset; // [Internal] Always 0 unless 'Flags & ImDrawListFlags_AllowVtxOffset'. - unsigned int _VtxCurrentIdx; // [Internal] Generally == VtxBuffer.Size unless we are past 64K vertices, in which case this gets reset to 0. - ImDrawVert* _VtxWritePtr; // [Internal] point within VtxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) - ImDrawIdx* _IdxWritePtr; // [Internal] point within IdxBuffer.Data after each add command (to avoid using the ImVector<> operators too much) - ImVector _ClipRectStack; // [Internal] - ImVector _TextureIdStack; // [Internal] - ImVector _Path; // [Internal] current path building - ImDrawListSplitter _Splitter; // [Internal] for channels api - - // If you want to create ImDrawList instances, pass them ImGui::GetDrawListSharedData() or create and use your own ImDrawListSharedData (so you can use ImDrawList without ImGui) - ImDrawList(const ImDrawListSharedData* shared_data) { _Data = shared_data; _OwnerName = NULL; Clear(); } - ~ImDrawList() { ClearFreeMemory(); } - IMGUI_API void PushClipRect(ImVec2 clip_rect_min, ImVec2 clip_rect_max, bool intersect_with_current_clip_rect = false); // Render-level scissoring. This is passed down to your render function but not used for CPU-side coarse clipping. Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) - IMGUI_API void PushClipRectFullScreen(); - IMGUI_API void PopClipRect(); - IMGUI_API void PushTextureID(ImTextureID texture_id); - IMGUI_API void PopTextureID(); - inline ImVec2 GetClipRectMin() const { const ImVec4& cr = _ClipRectStack.back(); return ImVec2(cr.x, cr.y); } - inline ImVec2 GetClipRectMax() const { const ImVec4& cr = _ClipRectStack.back(); return ImVec2(cr.z, cr.w); } - - // Primitives - // - For rectangular primitives, "p_min" and "p_max" represent the upper-left and lower-right corners. - // - For circle primitives, use "num_segments == 0" to automatically calculate tessellation (preferred). - // In future versions we will use textures to provide cheaper and higher-quality circles. - // Use AddNgon() and AddNgonFilled() functions if you need to guaranteed a specific number of sides. - IMGUI_API void AddLine(const ImVec2& p1, const ImVec2& p2, ImU32 col, float thickness = 1.0f); - IMGUI_API void AddRect(const ImVec2& p_min, const ImVec2& p_max, ImU32 col, float rounding = 0.0f, ImDrawCornerFlags rounding_corners = ImDrawCornerFlags_All, float thickness = 1.0f); // a: upper-left, b: lower-right (== upper-left + size), rounding_corners_flags: 4 bits corresponding to which corner to round - IMGUI_API void AddRectFilled(const ImVec2& p_min, const ImVec2& p_max, ImU32 col, float rounding = 0.0f, ImDrawCornerFlags rounding_corners = ImDrawCornerFlags_All); // a: upper-left, b: lower-right (== upper-left + size) - IMGUI_API void AddRectFilledMultiColor(const ImVec2& p_min, const ImVec2& p_max, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left); - IMGUI_API void AddQuad(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col, float thickness = 1.0f); - IMGUI_API void AddQuadFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col); - IMGUI_API void AddTriangle(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col, float thickness = 1.0f); - IMGUI_API void AddTriangleFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col); - IMGUI_API void AddCircle(const ImVec2& center, float radius, ImU32 col, int num_segments = 12, float thickness = 1.0f); - IMGUI_API void AddCircleFilled(const ImVec2& center, float radius, ImU32 col, int num_segments = 12); - IMGUI_API void AddNgon(const ImVec2& center, float radius, ImU32 col, int num_segments, float thickness = 1.0f); - IMGUI_API void AddNgonFilled(const ImVec2& center, float radius, ImU32 col, int num_segments); - IMGUI_API void AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL); - IMGUI_API void AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end = NULL, float wrap_width = 0.0f, const ImVec4* cpu_fine_clip_rect = NULL); - IMGUI_API void AddPolyline(const ImVec2* points, int num_points, ImU32 col, bool closed, float thickness); - IMGUI_API void AddConvexPolyFilled(const ImVec2* points, int num_points, ImU32 col); // Note: Anti-aliased filling requires points to be in clockwise order. - IMGUI_API void AddBezierCurve(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col, float thickness, int num_segments = 0); - - // Image primitives - // - Read FAQ to understand what ImTextureID is. - // - "p_min" and "p_max" represent the upper-left and lower-right corners of the rectangle. - // - "uv_min" and "uv_max" represent the normalized texture coordinates to use for those corners. Using (0,0)->(1,1) texture coordinates will generally display the entire texture. - IMGUI_API void AddImage(ImTextureID user_texture_id, const ImVec2& p_min, const ImVec2& p_max, const ImVec2& uv_min = ImVec2(0, 0), const ImVec2& uv_max = ImVec2(1, 1), ImU32 col = IM_COL32_WHITE); - IMGUI_API void AddImageQuad(ImTextureID user_texture_id, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& uv1 = ImVec2(0, 0), const ImVec2& uv2 = ImVec2(1, 0), const ImVec2& uv3 = ImVec2(1, 1), const ImVec2& uv4 = ImVec2(0, 1), ImU32 col = IM_COL32_WHITE); - IMGUI_API void AddImageRounded(ImTextureID user_texture_id, const ImVec2& p_min, const ImVec2& p_max, const ImVec2& uv_min, const ImVec2& uv_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners = ImDrawCornerFlags_All); - - // Stateful path API, add points then finish with PathFillConvex() or PathStroke() - inline void PathClear() { _Path.Size = 0; } - inline void PathLineTo(const ImVec2& pos) { _Path.push_back(pos); } - inline void PathLineToMergeDuplicate(const ImVec2& pos) { if (_Path.Size == 0 || memcmp(&_Path.Data[_Path.Size-1], &pos, 8) != 0) _Path.push_back(pos); } - inline void PathFillConvex(ImU32 col) { AddConvexPolyFilled(_Path.Data, _Path.Size, col); _Path.Size = 0; } // Note: Anti-aliased filling requires points to be in clockwise order. - inline void PathStroke(ImU32 col, bool closed, float thickness = 1.0f) { AddPolyline(_Path.Data, _Path.Size, col, closed, thickness); _Path.Size = 0; } - IMGUI_API void PathArcTo(const ImVec2& center, float radius, float a_min, float a_max, int num_segments = 10); - IMGUI_API void PathArcToFast(const ImVec2& center, float radius, int a_min_of_12, int a_max_of_12); // Use precomputed angles for a 12 steps circle - IMGUI_API void PathBezierCurveTo(const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, int num_segments = 0); - IMGUI_API void PathRect(const ImVec2& rect_min, const ImVec2& rect_max, float rounding = 0.0f, ImDrawCornerFlags rounding_corners = ImDrawCornerFlags_All); - - // Advanced - IMGUI_API void AddCallback(ImDrawCallback callback, void* callback_data); // Your rendering function must check for 'UserCallback' in ImDrawCmd and call the function instead of rendering triangles. - IMGUI_API void AddDrawCmd(); // This is useful if you need to forcefully create a new draw call (to allow for dependent rendering / blending). Otherwise primitives are merged into the same draw-call as much as possible - IMGUI_API ImDrawList* CloneOutput() const; // Create a clone of the CmdBuffer/IdxBuffer/VtxBuffer. - - // Advanced: Channels - // - Use to split render into layers. By switching channels to can render out-of-order (e.g. submit FG primitives before BG primitives) - // - Use to minimize draw calls (e.g. if going back-and-forth between multiple clipping rectangles, prefer to append into separate channels then merge at the end) - // - FIXME-OBSOLETE: This API shouldn't have been in ImDrawList in the first place! - // Prefer using your own persistent copy of ImDrawListSplitter as you can stack them. - // Using the ImDrawList::ChannelsXXXX you cannot stack a split over another. - inline void ChannelsSplit(int count) { _Splitter.Split(this, count); } - inline void ChannelsMerge() { _Splitter.Merge(this); } - inline void ChannelsSetCurrent(int n) { _Splitter.SetCurrentChannel(this, n); } - - // Internal helpers - // NB: all primitives needs to be reserved via PrimReserve() beforehand! - IMGUI_API void Clear(); - IMGUI_API void ClearFreeMemory(); - IMGUI_API void PrimReserve(int idx_count, int vtx_count); - IMGUI_API void PrimUnreserve(int idx_count, int vtx_count); - IMGUI_API void PrimRect(const ImVec2& a, const ImVec2& b, ImU32 col); // Axis aligned rectangle (composed of two triangles) - IMGUI_API void PrimRectUV(const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, ImU32 col); - IMGUI_API void PrimQuadUV(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& d, const ImVec2& uv_a, const ImVec2& uv_b, const ImVec2& uv_c, const ImVec2& uv_d, ImU32 col); - inline void PrimWriteVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col){ _VtxWritePtr->pos = pos; _VtxWritePtr->uv = uv; _VtxWritePtr->col = col; _VtxWritePtr++; _VtxCurrentIdx++; } - inline void PrimWriteIdx(ImDrawIdx idx) { *_IdxWritePtr = idx; _IdxWritePtr++; } - inline void PrimVtx(const ImVec2& pos, const ImVec2& uv, ImU32 col) { PrimWriteIdx((ImDrawIdx)_VtxCurrentIdx); PrimWriteVtx(pos, uv, col); } - IMGUI_API void UpdateClipRect(); - IMGUI_API void UpdateTextureID(); -}; - -// All draw data to render a Dear ImGui frame -// (NB: the style and the naming convention here is a little inconsistent, we currently preserve them for backward compatibility purpose, -// as this is one of the oldest structure exposed by the library! Basically, ImDrawList == CmdList) -struct ImDrawData -{ - bool Valid; // Only valid after Render() is called and before the next NewFrame() is called. - ImDrawList** CmdLists; // Array of ImDrawList* to render. The ImDrawList are owned by ImGuiContext and only pointed to from here. - int CmdListsCount; // Number of ImDrawList* to render - int TotalIdxCount; // For convenience, sum of all ImDrawList's IdxBuffer.Size - int TotalVtxCount; // For convenience, sum of all ImDrawList's VtxBuffer.Size - ImVec2 DisplayPos; // Upper-left position of the viewport to render (== upper-left of the orthogonal projection matrix to use) - ImVec2 DisplaySize; // Size of the viewport to render (== io.DisplaySize for the main viewport) (DisplayPos + DisplaySize == lower-right of the orthogonal projection matrix to use) - ImVec2 FramebufferScale; // Amount of pixels for each unit of DisplaySize. Based on io.DisplayFramebufferScale. Generally (1,1) on normal display, (2,2) on OSX with Retina display. - - // Functions - ImDrawData() { Valid = false; Clear(); } - ~ImDrawData() { Clear(); } - void Clear() { Valid = false; CmdLists = NULL; CmdListsCount = TotalVtxCount = TotalIdxCount = 0; DisplayPos = DisplaySize = FramebufferScale = ImVec2(0.f, 0.f); } // The ImDrawList are owned by ImGuiContext! - IMGUI_API void DeIndexAllBuffers(); // Helper to convert all buffers from indexed to non-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! - IMGUI_API void ScaleClipRects(const ImVec2& fb_scale); // Helper to scale the ClipRect field of each ImDrawCmd. Use if your final output buffer is at a different scale than Dear ImGui expects, or if there is a difference between your window resolution and framebuffer resolution. -}; - -//----------------------------------------------------------------------------- -// Font API (ImFontConfig, ImFontGlyph, ImFontAtlasFlags, ImFontAtlas, ImFontGlyphRangesBuilder, ImFont) -//----------------------------------------------------------------------------- - -struct ImFontConfig -{ - void* FontData; // // TTF/OTF data - int FontDataSize; // // TTF/OTF data size - bool FontDataOwnedByAtlas; // true // TTF/OTF data ownership taken by the container ImFontAtlas (will delete memory itself). - int FontNo; // 0 // Index of font within TTF/OTF file - float SizePixels; // // Size in pixels for rasterizer (more or less maps to the resulting font height). - int OversampleH; // 3 // Rasterize at higher quality for sub-pixel positioning. Read https://github.com/nothings/stb/blob/master/tests/oversample/README.md for details. - int OversampleV; // 1 // Rasterize at higher quality for sub-pixel positioning. We don't use sub-pixel positions on the Y axis. - bool PixelSnapH; // false // Align every glyph to pixel boundary. Useful e.g. if you are merging a non-pixel aligned font with the default font. If enabled, you can set OversampleH/V to 1. - ImVec2 GlyphExtraSpacing; // 0, 0 // Extra spacing (in pixels) between glyphs. Only X axis is supported for now. - ImVec2 GlyphOffset; // 0, 0 // Offset all glyphs from this font input. - const ImWchar* GlyphRanges; // NULL // Pointer to a user-provided list of Unicode range (2 value per range, values are inclusive, zero-terminated list). THE ARRAY DATA NEEDS TO PERSIST AS LONG AS THE FONT IS ALIVE. - float GlyphMinAdvanceX; // 0 // Minimum AdvanceX for glyphs, set Min to align font icons, set both Min/Max to enforce mono-space font - float GlyphMaxAdvanceX; // FLT_MAX // Maximum AdvanceX for glyphs - bool MergeMode; // false // Merge into previous ImFont, so you can combine multiple inputs font into one ImFont (e.g. ASCII font + icons + Japanese glyphs). You may want to use GlyphOffset.y when merge font of different heights. - unsigned int RasterizerFlags; // 0x00 // Settings for custom font rasterizer (e.g. ImGuiFreeType). Leave as zero if you aren't using one. - float RasterizerMultiply; // 1.0f // Brighten (>1.0f) or darken (<1.0f) font output. Brightening small fonts may be a good workaround to make them more readable. - ImWchar EllipsisChar; // -1 // Explicitly specify unicode codepoint of ellipsis character. When fonts are being merged first specified ellipsis will be used. - - // [Internal] - char Name[40]; // Name (strictly to ease debugging) - ImFont* DstFont; - - IMGUI_API ImFontConfig(); -}; - -// Hold rendering data for one glyph. -// (Note: some language parsers may fail to convert the 31+1 bitfield members, in this case maybe drop store a single u32 or we can rework this) -struct ImFontGlyph -{ - unsigned int Codepoint : 31; // 0x0000..0xFFFF - unsigned int Visible : 1; // Flag to allow early out when rendering - float AdvanceX; // Distance to next character (= data from font + ImFontConfig::GlyphExtraSpacing.x baked in) - float X0, Y0, X1, Y1; // Glyph corners - float U0, V0, U1, V1; // Texture coordinates -}; - -// Helper to build glyph ranges from text/string data. Feed your application strings/characters to it then call BuildRanges(). -// This is essentially a tightly packed of vector of 64k booleans = 8KB storage. -struct ImFontGlyphRangesBuilder -{ - ImVector UsedChars; // Store 1-bit per Unicode code point (0=unused, 1=used) - - ImFontGlyphRangesBuilder() { Clear(); } - inline void Clear() { int size_in_bytes = (IM_UNICODE_CODEPOINT_MAX + 1) / 8; UsedChars.resize(size_in_bytes / (int)sizeof(ImU32)); memset(UsedChars.Data, 0, (size_t)size_in_bytes); } - inline bool GetBit(size_t n) const { int off = (int)(n >> 5); ImU32 mask = 1u << (n & 31); return (UsedChars[off] & mask) != 0; } // Get bit n in the array - inline void SetBit(size_t n) { int off = (int)(n >> 5); ImU32 mask = 1u << (n & 31); UsedChars[off] |= mask; } // Set bit n in the array - inline void AddChar(ImWchar c) { SetBit(c); } // Add character - IMGUI_API void AddText(const char* text, const char* text_end = NULL); // Add string (each character of the UTF-8 string are added) - IMGUI_API void AddRanges(const ImWchar* ranges); // Add ranges, e.g. builder.AddRanges(ImFontAtlas::GetGlyphRangesDefault()) to force add all of ASCII/Latin+Ext - IMGUI_API void BuildRanges(ImVector* out_ranges); // Output new ranges -}; - -// See ImFontAtlas::AddCustomRectXXX functions. -struct ImFontAtlasCustomRect -{ - unsigned int ID; // Input // User ID. Use < 0x110000 to map into a font glyph, >= 0x110000 for other/internal/custom texture data. - unsigned short Width, Height; // Input // Desired rectangle dimension - unsigned short X, Y; // Output // Packed position in Atlas - float GlyphAdvanceX; // Input // For custom font glyphs only (ID < 0x110000): glyph xadvance - ImVec2 GlyphOffset; // Input // For custom font glyphs only (ID < 0x110000): glyph display offset - ImFont* Font; // Input // For custom font glyphs only (ID < 0x110000): target font - ImFontAtlasCustomRect() { ID = 0xFFFFFFFF; Width = Height = 0; X = Y = 0xFFFF; GlyphAdvanceX = 0.0f; GlyphOffset = ImVec2(0,0); Font = NULL; } - bool IsPacked() const { return X != 0xFFFF; } -}; - -enum ImFontAtlasFlags_ -{ - ImFontAtlasFlags_None = 0, - ImFontAtlasFlags_NoPowerOfTwoHeight = 1 << 0, // Don't round the height to next power of two - ImFontAtlasFlags_NoMouseCursors = 1 << 1 // Don't build software mouse cursors into the atlas -}; - -// Load and rasterize multiple TTF/OTF fonts into a same texture. The font atlas will build a single texture holding: -// - One or more fonts. -// - Custom graphics data needed to render the shapes needed by Dear ImGui. -// - Mouse cursor shapes for software cursor rendering (unless setting 'Flags |= ImFontAtlasFlags_NoMouseCursors' in the font atlas). -// It is the user-code responsibility to setup/build the atlas, then upload the pixel data into a texture accessible by your graphics api. -// - Optionally, call any of the AddFont*** functions. If you don't call any, the default font embedded in the code will be loaded for you. -// - Call GetTexDataAsAlpha8() or GetTexDataAsRGBA32() to build and retrieve pixels data. -// - Upload the pixels data into a texture within your graphics system (see imgui_impl_xxxx.cpp examples) -// - Call SetTexID(my_tex_id); and pass the pointer/identifier to your texture in a format natural to your graphics API. -// This value will be passed back to you during rendering to identify the texture. Read FAQ entry about ImTextureID for more details. -// Common pitfalls: -// - If you pass a 'glyph_ranges' array to AddFont*** functions, you need to make sure that your array persist up until the -// atlas is build (when calling GetTexData*** or Build()). We only copy the pointer, not the data. -// - Important: By default, AddFontFromMemoryTTF() takes ownership of the data. Even though we are not writing to it, we will free the pointer on destruction. -// You can set font_cfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed, -// - Even though many functions are suffixed with "TTF", OTF data is supported just as well. -// - This is an old API and it is currently awkward for those and and various other reasons! We will address them in the future! -struct ImFontAtlas -{ - IMGUI_API ImFontAtlas(); - IMGUI_API ~ImFontAtlas(); - IMGUI_API ImFont* AddFont(const ImFontConfig* font_cfg); - IMGUI_API ImFont* AddFontDefault(const ImFontConfig* font_cfg = NULL); - IMGUI_API ImFont* AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); - IMGUI_API ImFont* AddFontFromMemoryTTF(void* font_data, int font_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // Note: Transfer ownership of 'ttf_data' to ImFontAtlas! Will be deleted after destruction of the atlas. Set font_cfg->FontDataOwnedByAtlas=false to keep ownership of your data and it won't be freed. - IMGUI_API ImFont* AddFontFromMemoryCompressedTTF(const void* compressed_font_data, int compressed_font_size, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_font_data' still owned by caller. Compress with binary_to_compressed_c.cpp. - IMGUI_API ImFont* AddFontFromMemoryCompressedBase85TTF(const char* compressed_font_data_base85, float size_pixels, const ImFontConfig* font_cfg = NULL, const ImWchar* glyph_ranges = NULL); // 'compressed_font_data_base85' still owned by caller. Compress with binary_to_compressed_c.cpp with -base85 parameter. - IMGUI_API void ClearInputData(); // Clear input data (all ImFontConfig structures including sizes, TTF data, glyph ranges, etc.) = all the data used to build the texture and fonts. - IMGUI_API void ClearTexData(); // Clear output texture data (CPU side). Saves RAM once the texture has been copied to graphics memory. - IMGUI_API void ClearFonts(); // Clear output font data (glyphs storage, UV coordinates). - IMGUI_API void Clear(); // Clear all input and output. - - // Build atlas, retrieve pixel data. - // User is in charge of copying the pixels into graphics memory (e.g. create a texture with your engine). Then store your texture handle with SetTexID(). - // The pitch is always = Width * BytesPerPixels (1 or 4) - // Building in RGBA32 format is provided for convenience and compatibility, but note that unless you manually manipulate or copy color data into - // the texture (e.g. when using the AddCustomRect*** api), then the RGB pixels emitted will always be white (~75% of memory/bandwidth waste. - IMGUI_API bool Build(); // Build pixels data. This is called automatically for you by the GetTexData*** functions. - IMGUI_API void GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 1 byte per-pixel - IMGUI_API void GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel = NULL); // 4 bytes-per-pixel - bool IsBuilt() const { return Fonts.Size > 0 && (TexPixelsAlpha8 != NULL || TexPixelsRGBA32 != NULL); } - void SetTexID(ImTextureID id) { TexID = id; } - - //------------------------------------------- - // Glyph Ranges - //------------------------------------------- - - // Helpers to retrieve list of common Unicode ranges (2 value per range, values are inclusive, zero-terminated list) - // NB: Make sure that your string are UTF-8 and NOT in your local code page. In C++11, you can create UTF-8 string literal using the u8"Hello world" syntax. See FAQ for details. - // NB: Consider using ImFontGlyphRangesBuilder to build glyph ranges from textual data. - IMGUI_API const ImWchar* GetGlyphRangesDefault(); // Basic Latin, Extended Latin - IMGUI_API const ImWchar* GetGlyphRangesKorean(); // Default + Korean characters - IMGUI_API const ImWchar* GetGlyphRangesJapanese(); // Default + Hiragana, Katakana, Half-Width, Selection of 1946 Ideographs - IMGUI_API const ImWchar* GetGlyphRangesChineseFull(); // Default + Half-Width + Japanese Hiragana/Katakana + full set of about 21000 CJK Unified Ideographs - IMGUI_API const ImWchar* GetGlyphRangesChineseSimplifiedCommon();// Default + Half-Width + Japanese Hiragana/Katakana + set of 2500 CJK Unified Ideographs for common simplified Chinese - IMGUI_API const ImWchar* GetGlyphRangesCyrillic(); // Default + about 400 Cyrillic characters - IMGUI_API const ImWchar* GetGlyphRangesThai(); // Default + Thai characters - IMGUI_API const ImWchar* GetGlyphRangesVietnamese(); // Default + Vietnamese characters - - //------------------------------------------- - // [BETA] Custom Rectangles/Glyphs API - //------------------------------------------- - - // You can request arbitrary rectangles to be packed into the atlas, for your own purposes. - // After calling Build(), you can query the rectangle position and render your pixels. - // You can also request your rectangles to be mapped as font glyph (given a font + Unicode point), - // so you can render e.g. custom colorful icons and use them as regular glyphs. - // Read docs/FONTS.txt for more details about using colorful icons. - IMGUI_API int AddCustomRectRegular(unsigned int id, int width, int height); // Id needs to be >= 0x110000. Id >= 0x80000000 are reserved for ImGui and ImDrawList - IMGUI_API int AddCustomRectFontGlyph(ImFont* font, ImWchar id, int width, int height, float advance_x, const ImVec2& offset = ImVec2(0,0)); // Id needs to be < 0x110000 to register a rectangle to map into a specific font. - const ImFontAtlasCustomRect*GetCustomRectByIndex(int index) const { if (index < 0) return NULL; return &CustomRects[index]; } - - // [Internal] - IMGUI_API void CalcCustomRectUV(const ImFontAtlasCustomRect* rect, ImVec2* out_uv_min, ImVec2* out_uv_max) const; - IMGUI_API bool GetMouseCursorTexData(ImGuiMouseCursor cursor, ImVec2* out_offset, ImVec2* out_size, ImVec2 out_uv_border[2], ImVec2 out_uv_fill[2]); - - //------------------------------------------- - // Members - //------------------------------------------- - - bool Locked; // Marked as Locked by ImGui::NewFrame() so attempt to modify the atlas will assert. - ImFontAtlasFlags Flags; // Build flags (see ImFontAtlasFlags_) - ImTextureID TexID; // User data to refer to the texture once it has been uploaded to user's graphic systems. It is passed back to you during rendering via the ImDrawCmd structure. - int TexDesiredWidth; // Texture width desired by user before Build(). Must be a power-of-two. If have many glyphs your graphics API have texture size restrictions you may want to increase texture width to decrease height. - int TexGlyphPadding; // Padding between glyphs within texture in pixels. Defaults to 1. If your rendering method doesn't rely on bilinear filtering you may set this to 0. - - // [Internal] - // NB: Access texture data via GetTexData*() calls! Which will setup a default font for you. - unsigned char* TexPixelsAlpha8; // 1 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight - unsigned int* TexPixelsRGBA32; // 4 component per pixel, each component is unsigned 8-bit. Total size = TexWidth * TexHeight * 4 - int TexWidth; // Texture width calculated during Build(). - int TexHeight; // Texture height calculated during Build(). - ImVec2 TexUvScale; // = (1.0f/TexWidth, 1.0f/TexHeight) - ImVec2 TexUvWhitePixel; // Texture coordinates to a white pixel - ImVector Fonts; // Hold all the fonts returned by AddFont*. Fonts[0] is the default font upon calling ImGui::NewFrame(), use ImGui::PushFont()/PopFont() to change the current font. - ImVector CustomRects; // Rectangles for packing custom texture data into the atlas. - ImVector ConfigData; // Internal data - int CustomRectIds[1]; // Identifiers of custom texture rectangle used by ImFontAtlas/ImDrawList - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - typedef ImFontAtlasCustomRect CustomRect; // OBSOLETED in 1.72+ - typedef ImFontGlyphRangesBuilder GlyphRangesBuilder; // OBSOLETED in 1.67+ -#endif -}; - -// Font runtime data and rendering -// ImFontAtlas automatically loads a default embedded font for you when you call GetTexDataAsAlpha8() or GetTexDataAsRGBA32(). -struct ImFont -{ - // Members: Hot ~20/24 bytes (for CalcTextSize) - ImVector IndexAdvanceX; // 12-16 // out // // Sparse. Glyphs->AdvanceX in a directly indexable way (cache-friendly for CalcTextSize functions which only this this info, and are often bottleneck in large UI). - float FallbackAdvanceX; // 4 // out // = FallbackGlyph->AdvanceX - float FontSize; // 4 // in // // Height of characters/line, set during loading (don't change after loading) - - // Members: Hot ~36/48 bytes (for CalcTextSize + render loop) - ImVector IndexLookup; // 12-16 // out // // Sparse. Index glyphs by Unicode code-point. - ImVector Glyphs; // 12-16 // out // // All glyphs. - const ImFontGlyph* FallbackGlyph; // 4-8 // out // = FindGlyph(FontFallbackChar) - ImVec2 DisplayOffset; // 8 // in // = (0,0) // Offset font rendering by xx pixels - - // Members: Cold ~32/40 bytes - ImFontAtlas* ContainerAtlas; // 4-8 // out // // What we has been loaded into - const ImFontConfig* ConfigData; // 4-8 // in // // Pointer within ContainerAtlas->ConfigData - short ConfigDataCount; // 2 // in // ~ 1 // Number of ImFontConfig involved in creating this font. Bigger than 1 when merging multiple font sources into one ImFont. - ImWchar FallbackChar; // 2 // in // = '?' // Replacement character if a glyph isn't found. Only set via SetFallbackChar() - ImWchar EllipsisChar; // 2 // out // = -1 // Character used for ellipsis rendering. - bool DirtyLookupTables; // 1 // out // - float Scale; // 4 // in // = 1.f // Base font scale, multiplied by the per-window font scale which you can adjust with SetWindowFontScale() - float Ascent, Descent; // 4+4 // out // // Ascent: distance from top to bottom of e.g. 'A' [0..FontSize] - int MetricsTotalSurface;// 4 // out // // Total surface in pixels to get an idea of the font rasterization/texture cost (not exact, we approximate the cost of padding between glyphs) - ImU8 Used4kPagesMap[(IM_UNICODE_CODEPOINT_MAX+1)/4096/8]; // 2 bytes if ImWchar=ImWchar16, 34 bytes if ImWchar==ImWchar32. Store 1-bit for each block of 4K codepoints that has one active glyph. This is mainly used to facilitate iterations accross all used codepoints. - - // Methods - IMGUI_API ImFont(); - IMGUI_API ~ImFont(); - IMGUI_API const ImFontGlyph*FindGlyph(ImWchar c) const; - IMGUI_API const ImFontGlyph*FindGlyphNoFallback(ImWchar c) const; - float GetCharAdvance(ImWchar c) const { return ((int)c < IndexAdvanceX.Size) ? IndexAdvanceX[(int)c] : FallbackAdvanceX; } - bool IsLoaded() const { return ContainerAtlas != NULL; } - const char* GetDebugName() const { return ConfigData ? ConfigData->Name : ""; } - - // 'max_width' stops rendering after a certain width (could be turned into a 2d size). FLT_MAX to disable. - // 'wrap_width' enable automatic word-wrapping across multiple lines to fit into given width. 0.0f to disable. - IMGUI_API ImVec2 CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end = NULL, const char** remaining = NULL) const; // utf8 - IMGUI_API const char* CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const; - IMGUI_API void RenderChar(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, ImWchar c) const; - IMGUI_API void RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, float wrap_width = 0.0f, bool cpu_fine_clip = false) const; - - // [Internal] Don't use! - IMGUI_API void BuildLookupTable(); - IMGUI_API void ClearOutputData(); - IMGUI_API void GrowIndex(int new_size); - IMGUI_API void AddGlyph(ImWchar c, float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float advance_x); - IMGUI_API void AddRemapChar(ImWchar dst, ImWchar src, bool overwrite_dst = true); // Makes 'dst' character/glyph points to 'src' character/glyph. Currently needs to be called AFTER fonts have been built. - IMGUI_API void SetGlyphVisible(ImWchar c, bool visible); - IMGUI_API void SetFallbackChar(ImWchar c); - IMGUI_API bool IsGlyphRangeUnused(unsigned int c_begin, unsigned int c_last); -}; - -#if defined(__clang__) -#pragma clang diagnostic pop -#elif defined(__GNUC__) -#pragma GCC diagnostic pop -#endif - -// Include imgui_user.h at the end of imgui.h (convenient for user to only explicitly include vanilla imgui.h) -#ifdef IMGUI_INCLUDE_IMGUI_USER_H -#include "imgui_user.h" -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_demo.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_demo.cpp deleted file mode 100644 index 1e110ded..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_demo.cpp +++ /dev/null @@ -1,4917 +0,0 @@ -// dear imgui, v1.76 -// (demo code) - -// Help: -// - Read FAQ at http://dearimgui.org/faq -// - Newcomers, read 'Programmer guide' in imgui.cpp for notes on how to setup Dear ImGui in your codebase. -// - Call and read ImGui::ShowDemoWindow() in imgui_demo.cpp for demo code. All applications in examples/ are doing that. -// Read imgui.cpp for more details, documentation and comments. -// Get latest version at https://github.com/ocornut/imgui - -// Message to the person tempted to delete this file when integrating Dear ImGui into their code base: -// Do NOT remove this file from your project! Think again! It is the most useful reference code that you and other coders -// will want to refer to and call. Have the ImGui::ShowDemoWindow() function wired in an always-available debug menu of -// your game/app! Removing this file from your project is hindering access to documentation for everyone in your team, -// likely leading you to poorer usage of the library. -// Everything in this file will be stripped out by the linker if you don't call ImGui::ShowDemoWindow(). -// If you want to link core Dear ImGui in your shipped builds but want a thorough guarantee that the demo will not be linked, -// you can setup your imconfig.h with #define IMGUI_DISABLE_DEMO_WINDOWS and those functions will be empty. -// In other situation, whenever you have Dear ImGui available you probably want this to be available for reference. -// Thank you, -// -Your beloved friend, imgui_demo.cpp (which you won't delete) - -// Message to beginner C/C++ programmers about the meaning of the 'static' keyword: -// In this demo code, we frequently we use 'static' variables inside functions. A static variable persist across calls, so it is -// essentially like a global variable but declared inside the scope of the function. We do this as a way to gather code and data -// in the same place, to make the demo source code faster to read, faster to write, and smaller in size. -// It also happens to be a convenient way of storing simple UI related information as long as your function doesn't need to be -// reentrant or used in multiple threads. This might be a pattern you will want to use in your code, but most of the real data -// you would be editing is likely going to be stored outside your functions. - -// The Demo code in this file is designed to be easy to copy-and-paste in into your application! -// Because of this: -// - We never omit the ImGui:: namespace when calling functions, even though most of our code is already in the same namespace. -// - We try to declare static variables in the local scope, as close as possible to the code using them. -// - We never use any of the helpers/facilities used internally by Dear ImGui, unless it has been exposed in the public API (imgui.h). -// - We never use maths operators on ImVec2/ImVec4. For other of our sources files, they are provided by imgui_internal.h w/ IMGUI_DEFINE_MATH_OPERATORS. -// For your own sources file they are optional and require you either enable those, either provide your own via IM_VEC2_CLASS_EXTRA in imconfig.h. -// Because we don't want to assume anything about your support of maths operators, we don't use them in imgui_demo.cpp. - -/* - -Index of this file: - -// [SECTION] Forward Declarations, Helpers -// [SECTION] Demo Window / ShowDemoWindow() -// [SECTION] About Window / ShowAboutWindow() -// [SECTION] Style Editor / ShowStyleEditor() -// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar() -// [SECTION] Example App: Debug Console / ShowExampleAppConsole() -// [SECTION] Example App: Debug Log / ShowExampleAppLog() -// [SECTION] Example App: Simple Layout / ShowExampleAppLayout() -// [SECTION] Example App: Property Editor / ShowExampleAppPropertyEditor() -// [SECTION] Example App: Long Text / ShowExampleAppLongText() -// [SECTION] Example App: Auto Resize / ShowExampleAppAutoResize() -// [SECTION] Example App: Constrained Resize / ShowExampleAppConstrainedResize() -// [SECTION] Example App: Simple Overlay / ShowExampleAppSimpleOverlay() -// [SECTION] Example App: Manipulating Window Titles / ShowExampleAppWindowTitles() -// [SECTION] Example App: Custom Rendering using ImDrawList API / ShowExampleAppCustomRendering() -// [SECTION] Example App: Documents Handling / ShowExampleAppDocuments() - -*/ - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#ifndef IMGUI_DISABLE - -#include // toupper -#include // INT_MIN, INT_MAX -#include // sqrtf, powf, cosf, sinf, floorf, ceilf -#include // vsnprintf, sscanf, printf -#include // NULL, malloc, free, atoi -#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier -#include // intptr_t -#else -#include // intptr_t -#endif - -#ifdef _MSC_VER -#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen -#endif -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wold-style-cast" // warning : use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wdeprecated-declarations" // warning : 'xx' is deprecated: The POSIX name for this item.. // for strdup used in demo code (so user can copy & paste the code) -#pragma clang diagnostic ignored "-Wint-to-void-pointer-cast" // warning : cast to 'void *' from smaller integer type 'int' -#pragma clang diagnostic ignored "-Wformat-security" // warning : warning: format string is not a string literal -#pragma clang diagnostic ignored "-Wexit-time-destructors" // warning : declaration requires an exit-time destructor // exit-time destruction order is undefined. if MemFree() leads to users code that has been disabled before exit it might cause problems. ImGui coding style welcomes static/globals. -#pragma clang diagnostic ignored "-Wunused-macros" // warning : warning: macro is not used // we define snprintf/vsnprintf on Windows so they are available, but not always used. -#if __has_warning("-Wzero-as-null-pointer-constant") -#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" // warning : zero as null pointer constant // some standard header variations use #define NULL 0 -#endif -#if __has_warning("-Wdouble-promotion") -#pragma clang diagnostic ignored "-Wdouble-promotion" // warning: implicit conversion from 'float' to 'double' when passing argument to function // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. -#endif -#if __has_warning("-Wreserved-id-macro") -#pragma clang diagnostic ignored "-Wreserved-id-macro" // warning : macro name is a reserved identifier // -#endif -#elif defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wint-to-pointer-cast" // warning: cast to pointer from integer of different size -#pragma GCC diagnostic ignored "-Wformat-security" // warning : format string is not a string literal (potentially insecure) -#pragma GCC diagnostic ignored "-Wdouble-promotion" // warning: implicit conversion from 'float' to 'double' when passing argument to function -#pragma GCC diagnostic ignored "-Wconversion" // warning: conversion to 'xxxx' from 'xxxx' may alter its value -#pragma GCC diagnostic ignored "-Wmisleading-indentation" // [__GNUC__ >= 6] warning: this 'if' clause does not guard this statement // GCC 6.0+ only. See #883 on GitHub. -#endif - -// Play it nice with Windows users (Update: since 2018-05, Notepad finally appears to support Unix-style carriage returns!) -#ifdef _WIN32 -#define IM_NEWLINE "\r\n" -#else -#define IM_NEWLINE "\n" -#endif - -#if defined(_MSC_VER) && !defined(snprintf) -#define snprintf _snprintf -#endif -#if defined(_MSC_VER) && !defined(vsnprintf) -#define vsnprintf _vsnprintf -#endif - -//----------------------------------------------------------------------------- -// [SECTION] Forward Declarations, Helpers -//----------------------------------------------------------------------------- - -#if !defined(IMGUI_DISABLE_DEMO_WINDOWS) - -// Forward Declarations -static void ShowExampleAppDocuments(bool* p_open); -static void ShowExampleAppMainMenuBar(); -static void ShowExampleAppConsole(bool* p_open); -static void ShowExampleAppLog(bool* p_open); -static void ShowExampleAppLayout(bool* p_open); -static void ShowExampleAppPropertyEditor(bool* p_open); -static void ShowExampleAppLongText(bool* p_open); -static void ShowExampleAppAutoResize(bool* p_open); -static void ShowExampleAppConstrainedResize(bool* p_open); -static void ShowExampleAppSimpleOverlay(bool* p_open); -static void ShowExampleAppWindowTitles(bool* p_open); -static void ShowExampleAppCustomRendering(bool* p_open); -static void ShowExampleMenuFile(); - -// Helper to display a little (?) mark which shows a tooltip when hovered. -// In your own code you may want to display an actual icon if you are using a merged icon fonts (see docs/FONTS.txt) -static void HelpMarker(const char* desc) -{ - ImGui::TextDisabled("(?)"); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - ImGui::PushTextWrapPos(ImGui::GetFontSize() * 35.0f); - ImGui::TextUnformatted(desc); - ImGui::PopTextWrapPos(); - ImGui::EndTooltip(); - } -} - -// Helper to display basic user controls. -void ImGui::ShowUserGuide() -{ - ImGuiIO& io = ImGui::GetIO(); - ImGui::BulletText("Double-click on title bar to collapse window."); - ImGui::BulletText("Click and drag on lower corner to resize window\n(double-click to auto fit window to its contents)."); - ImGui::BulletText("CTRL+Click on a slider or drag box to input value as text."); - ImGui::BulletText("TAB/SHIFT+TAB to cycle through keyboard editable fields."); - if (io.FontAllowUserScaling) - ImGui::BulletText("CTRL+Mouse Wheel to zoom window contents."); - ImGui::BulletText("While inputing text:\n"); - ImGui::Indent(); - ImGui::BulletText("CTRL+Left/Right to word jump."); - ImGui::BulletText("CTRL+A or double-click to select all."); - ImGui::BulletText("CTRL+X/C/V to use clipboard cut/copy/paste."); - ImGui::BulletText("CTRL+Z,CTRL+Y to undo/redo."); - ImGui::BulletText("ESCAPE to revert."); - ImGui::BulletText("You can apply arithmetic operators +,*,/ on numerical values.\nUse +- to subtract."); - ImGui::Unindent(); - ImGui::BulletText("With keyboard navigation enabled:"); - ImGui::Indent(); - ImGui::BulletText("Arrow keys to navigate."); - ImGui::BulletText("Space to activate a widget."); - ImGui::BulletText("Return to input text into a widget."); - ImGui::BulletText("Escape to deactivate a widget, close popup, exit child window."); - ImGui::BulletText("Alt to jump to the menu layer of a window."); - ImGui::BulletText("CTRL+Tab to select a window."); - ImGui::Unindent(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Demo Window / ShowDemoWindow() -//----------------------------------------------------------------------------- -// - ShowDemoWindowWidgets() -// - ShowDemoWindowLayout() -// - ShowDemoWindowPopups() -// - ShowDemoWindowColumns() -// - ShowDemoWindowMisc() -//----------------------------------------------------------------------------- - -// We split the contents of the big ShowDemoWindow() function into smaller functions (because the link time of very large functions grow non-linearly) -static void ShowDemoWindowWidgets(); -static void ShowDemoWindowLayout(); -static void ShowDemoWindowPopups(); -static void ShowDemoWindowColumns(); -static void ShowDemoWindowMisc(); - -// Demonstrate most Dear ImGui features (this is big function!) -// You may execute this function to experiment with the UI and understand what it does. You may then search for keywords in the code when you are interested by a specific feature. -void ImGui::ShowDemoWindow(bool* p_open) -{ - IM_ASSERT(ImGui::GetCurrentContext() != NULL && "Missing dear imgui context. Refer to examples app!"); // Exceptionally add an extra assert here for people confused with initial dear imgui setup - - // Examples Apps (accessible from the "Examples" menu) - static bool show_app_documents = false; - static bool show_app_main_menu_bar = false; - static bool show_app_console = false; - static bool show_app_log = false; - static bool show_app_layout = false; - static bool show_app_property_editor = false; - static bool show_app_long_text = false; - static bool show_app_auto_resize = false; - static bool show_app_constrained_resize = false; - static bool show_app_simple_overlay = false; - static bool show_app_window_titles = false; - static bool show_app_custom_rendering = false; - - if (show_app_documents) ShowExampleAppDocuments(&show_app_documents); - if (show_app_main_menu_bar) ShowExampleAppMainMenuBar(); - if (show_app_console) ShowExampleAppConsole(&show_app_console); - if (show_app_log) ShowExampleAppLog(&show_app_log); - if (show_app_layout) ShowExampleAppLayout(&show_app_layout); - if (show_app_property_editor) ShowExampleAppPropertyEditor(&show_app_property_editor); - if (show_app_long_text) ShowExampleAppLongText(&show_app_long_text); - if (show_app_auto_resize) ShowExampleAppAutoResize(&show_app_auto_resize); - if (show_app_constrained_resize) ShowExampleAppConstrainedResize(&show_app_constrained_resize); - if (show_app_simple_overlay) ShowExampleAppSimpleOverlay(&show_app_simple_overlay); - if (show_app_window_titles) ShowExampleAppWindowTitles(&show_app_window_titles); - if (show_app_custom_rendering) ShowExampleAppCustomRendering(&show_app_custom_rendering); - - // Dear ImGui Apps (accessible from the "Tools" menu) - static bool show_app_metrics = false; - static bool show_app_style_editor = false; - static bool show_app_about = false; - - if (show_app_metrics) { ImGui::ShowMetricsWindow(&show_app_metrics); } - if (show_app_style_editor) { ImGui::Begin("Style Editor", &show_app_style_editor); ImGui::ShowStyleEditor(); ImGui::End(); } - if (show_app_about) { ImGui::ShowAboutWindow(&show_app_about); } - - // Demonstrate the various window flags. Typically you would just use the default! - static bool no_titlebar = false; - static bool no_scrollbar = false; - static bool no_menu = false; - static bool no_move = false; - static bool no_resize = false; - static bool no_collapse = false; - static bool no_close = false; - static bool no_nav = false; - static bool no_background = false; - static bool no_bring_to_front = false; - - ImGuiWindowFlags window_flags = 0; - if (no_titlebar) window_flags |= ImGuiWindowFlags_NoTitleBar; - if (no_scrollbar) window_flags |= ImGuiWindowFlags_NoScrollbar; - if (!no_menu) window_flags |= ImGuiWindowFlags_MenuBar; - if (no_move) window_flags |= ImGuiWindowFlags_NoMove; - if (no_resize) window_flags |= ImGuiWindowFlags_NoResize; - if (no_collapse) window_flags |= ImGuiWindowFlags_NoCollapse; - if (no_nav) window_flags |= ImGuiWindowFlags_NoNav; - if (no_background) window_flags |= ImGuiWindowFlags_NoBackground; - if (no_bring_to_front) window_flags |= ImGuiWindowFlags_NoBringToFrontOnFocus; - if (no_close) p_open = NULL; // Don't pass our bool* to Begin - - // We specify a default position/size in case there's no data in the .ini file. Typically this isn't required! We only do it to make the Demo applications a little more welcoming. - ImGui::SetNextWindowPos(ImVec2(650, 20), ImGuiCond_FirstUseEver); - ImGui::SetNextWindowSize(ImVec2(550, 680), ImGuiCond_FirstUseEver); - - // Main body of the Demo window starts here. - if (!ImGui::Begin("Dear ImGui Demo", p_open, window_flags)) - { - // Early out if the window is collapsed, as an optimization. - ImGui::End(); - return; - } - - // Most "big" widgets share a common width settings by default. - //ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.65f); // Use 2/3 of the space for widgets and 1/3 for labels (default) - ImGui::PushItemWidth(ImGui::GetFontSize() * -12); // Use fixed width for labels (by passing a negative value), the rest goes to widgets. We choose a width proportional to our font size. - - // Menu Bar - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("Menu")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Examples")) - { - ImGui::MenuItem("Main menu bar", NULL, &show_app_main_menu_bar); - ImGui::MenuItem("Console", NULL, &show_app_console); - ImGui::MenuItem("Log", NULL, &show_app_log); - ImGui::MenuItem("Simple layout", NULL, &show_app_layout); - ImGui::MenuItem("Property editor", NULL, &show_app_property_editor); - ImGui::MenuItem("Long text display", NULL, &show_app_long_text); - ImGui::MenuItem("Auto-resizing window", NULL, &show_app_auto_resize); - ImGui::MenuItem("Constrained-resizing window", NULL, &show_app_constrained_resize); - ImGui::MenuItem("Simple overlay", NULL, &show_app_simple_overlay); - ImGui::MenuItem("Manipulating window titles", NULL, &show_app_window_titles); - ImGui::MenuItem("Custom rendering", NULL, &show_app_custom_rendering); - ImGui::MenuItem("Documents", NULL, &show_app_documents); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Tools")) - { - ImGui::MenuItem("Metrics", NULL, &show_app_metrics); - ImGui::MenuItem("Style Editor", NULL, &show_app_style_editor); - ImGui::MenuItem("About Dear ImGui", NULL, &show_app_about); - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); - } - - ImGui::Text("dear imgui says hello. (%s)", IMGUI_VERSION); - ImGui::Spacing(); - - if (ImGui::CollapsingHeader("Help")) - { - ImGui::Text("ABOUT THIS DEMO:"); - ImGui::BulletText("Sections below are demonstrating many aspects of the library."); - ImGui::BulletText("The \"Examples\" menu above leads to more demo contents."); - ImGui::BulletText("The \"Tools\" menu above gives access to: About Box, Style Editor,\n" - "and Metrics (general purpose Dear ImGui debugging tool)."); - ImGui::Separator(); - - ImGui::Text("PROGRAMMER GUIDE:"); - ImGui::BulletText("See the ShowDemoWindow() code in imgui_demo.cpp. <- you are here!"); - ImGui::BulletText("See comments in imgui.cpp."); - ImGui::BulletText("See example applications in the examples/ folder."); - ImGui::BulletText("Read the FAQ at http://www.dearimgui.org/faq/"); - ImGui::BulletText("Set 'io.ConfigFlags |= NavEnableKeyboard' for keyboard controls."); - ImGui::BulletText("Set 'io.ConfigFlags |= NavEnableGamepad' for gamepad controls."); - ImGui::Separator(); - - ImGui::Text("USER GUIDE:"); - ImGui::ShowUserGuide(); - } - - if (ImGui::CollapsingHeader("Configuration")) - { - ImGuiIO& io = ImGui::GetIO(); - - if (ImGui::TreeNode("Configuration##2")) - { - ImGui::CheckboxFlags("io.ConfigFlags: NavEnableKeyboard", (unsigned int *)&io.ConfigFlags, ImGuiConfigFlags_NavEnableKeyboard); - ImGui::CheckboxFlags("io.ConfigFlags: NavEnableGamepad", (unsigned int *)&io.ConfigFlags, ImGuiConfigFlags_NavEnableGamepad); - ImGui::SameLine(); HelpMarker("Required back-end to feed in gamepad inputs in io.NavInputs[] and set io.BackendFlags |= ImGuiBackendFlags_HasGamepad.\n\nRead instructions in imgui.cpp for details."); - ImGui::CheckboxFlags("io.ConfigFlags: NavEnableSetMousePos", (unsigned int *)&io.ConfigFlags, ImGuiConfigFlags_NavEnableSetMousePos); - ImGui::SameLine(); HelpMarker("Instruct navigation to move the mouse cursor. See comment for ImGuiConfigFlags_NavEnableSetMousePos."); - ImGui::CheckboxFlags("io.ConfigFlags: NoMouse", (unsigned int *)&io.ConfigFlags, ImGuiConfigFlags_NoMouse); - if (io.ConfigFlags & ImGuiConfigFlags_NoMouse) // Create a way to restore this flag otherwise we could be stuck completely! - { - if (fmodf((float)ImGui::GetTime(), 0.40f) < 0.20f) - { - ImGui::SameLine(); - ImGui::Text("<>"); - } - if (ImGui::IsKeyPressed(ImGui::GetKeyIndex(ImGuiKey_Space))) - io.ConfigFlags &= ~ImGuiConfigFlags_NoMouse; - } - ImGui::CheckboxFlags("io.ConfigFlags: NoMouseCursorChange", (unsigned int *)&io.ConfigFlags, ImGuiConfigFlags_NoMouseCursorChange); - ImGui::SameLine(); HelpMarker("Instruct back-end to not alter mouse cursor shape and visibility."); - ImGui::Checkbox("io.ConfigInputTextCursorBlink", &io.ConfigInputTextCursorBlink); - ImGui::SameLine(); HelpMarker("Set to false to disable blinking cursor, for users who consider it distracting"); - ImGui::Checkbox("io.ConfigWindowsResizeFromEdges", &io.ConfigWindowsResizeFromEdges); - ImGui::SameLine(); HelpMarker("Enable resizing of windows from their edges and from the lower-left corner.\nThis requires (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) because it needs mouse cursor feedback."); - ImGui::Checkbox("io.ConfigWindowsMoveFromTitleBarOnly", &io.ConfigWindowsMoveFromTitleBarOnly); - ImGui::Checkbox("io.MouseDrawCursor", &io.MouseDrawCursor); - ImGui::SameLine(); HelpMarker("Instruct Dear ImGui to render a mouse cursor for you. Note that a mouse cursor rendered via your application GPU rendering path will feel more laggy than hardware cursor, but will be more in sync with your other visuals.\n\nSome desktop applications may use both kinds of cursors (e.g. enable software cursor only when resizing/dragging something)."); - ImGui::TreePop(); - ImGui::Separator(); - } - - if (ImGui::TreeNode("Backend Flags")) - { - HelpMarker("Those flags are set by the back-ends (imgui_impl_xxx files) to specify their capabilities.\nHere we expose then as read-only fields to avoid breaking interactions with your back-end."); - ImGuiBackendFlags backend_flags = io.BackendFlags; // Make a local copy to avoid modifying actual back-end flags. - ImGui::CheckboxFlags("io.BackendFlags: HasGamepad", (unsigned int *)&backend_flags, ImGuiBackendFlags_HasGamepad); - ImGui::CheckboxFlags("io.BackendFlags: HasMouseCursors", (unsigned int *)&backend_flags, ImGuiBackendFlags_HasMouseCursors); - ImGui::CheckboxFlags("io.BackendFlags: HasSetMousePos", (unsigned int *)&backend_flags, ImGuiBackendFlags_HasSetMousePos); - ImGui::CheckboxFlags("io.BackendFlags: RendererHasVtxOffset", (unsigned int *)&backend_flags, ImGuiBackendFlags_RendererHasVtxOffset); - ImGui::TreePop(); - ImGui::Separator(); - } - - if (ImGui::TreeNode("Style")) - { - HelpMarker("The same contents can be accessed in 'Tools->Style Editor' or by calling the ShowStyleEditor() function."); - ImGui::ShowStyleEditor(); - ImGui::TreePop(); - ImGui::Separator(); - } - - if (ImGui::TreeNode("Capture/Logging")) - { - ImGui::TextWrapped("The logging API redirects all text output so you can easily capture the content of a window or a block. Tree nodes can be automatically expanded."); - HelpMarker("Try opening any of the contents below in this window and then click one of the \"Log To\" button."); - ImGui::LogButtons(); - ImGui::TextWrapped("You can also call ImGui::LogText() to output directly to the log without a visual output."); - if (ImGui::Button("Copy \"Hello, world!\" to clipboard")) - { - ImGui::LogToClipboard(); - ImGui::LogText("Hello, world!"); - ImGui::LogFinish(); - } - ImGui::TreePop(); - } - } - - if (ImGui::CollapsingHeader("Window options")) - { - ImGui::Checkbox("No titlebar", &no_titlebar); ImGui::SameLine(150); - ImGui::Checkbox("No scrollbar", &no_scrollbar); ImGui::SameLine(300); - ImGui::Checkbox("No menu", &no_menu); - ImGui::Checkbox("No move", &no_move); ImGui::SameLine(150); - ImGui::Checkbox("No resize", &no_resize); ImGui::SameLine(300); - ImGui::Checkbox("No collapse", &no_collapse); - ImGui::Checkbox("No close", &no_close); ImGui::SameLine(150); - ImGui::Checkbox("No nav", &no_nav); ImGui::SameLine(300); - ImGui::Checkbox("No background", &no_background); - ImGui::Checkbox("No bring to front", &no_bring_to_front); - } - - // All demo contents - ShowDemoWindowWidgets(); - ShowDemoWindowLayout(); - ShowDemoWindowPopups(); - ShowDemoWindowColumns(); - ShowDemoWindowMisc(); - - // End of ShowDemoWindow() - ImGui::End(); -} - -static void ShowDemoWindowWidgets() -{ - if (!ImGui::CollapsingHeader("Widgets")) - return; - - if (ImGui::TreeNode("Basic")) - { - static int clicked = 0; - if (ImGui::Button("Button")) - clicked++; - if (clicked & 1) - { - ImGui::SameLine(); - ImGui::Text("Thanks for clicking me!"); - } - - static bool check = true; - ImGui::Checkbox("checkbox", &check); - - static int e = 0; - ImGui::RadioButton("radio a", &e, 0); ImGui::SameLine(); - ImGui::RadioButton("radio b", &e, 1); ImGui::SameLine(); - ImGui::RadioButton("radio c", &e, 2); - - // Color buttons, demonstrate using PushID() to add unique identifier in the ID stack, and changing style. - for (int i = 0; i < 7; i++) - { - if (i > 0) - ImGui::SameLine(); - ImGui::PushID(i); - ImGui::PushStyleColor(ImGuiCol_Button, (ImVec4)ImColor::HSV(i/7.0f, 0.6f, 0.6f)); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, (ImVec4)ImColor::HSV(i/7.0f, 0.7f, 0.7f)); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, (ImVec4)ImColor::HSV(i/7.0f, 0.8f, 0.8f)); - ImGui::Button("Click"); - ImGui::PopStyleColor(3); - ImGui::PopID(); - } - - // Use AlignTextToFramePadding() to align text baseline to the baseline of framed elements (otherwise a Text+SameLine+Button sequence will have the text a little too high by default) - ImGui::AlignTextToFramePadding(); - ImGui::Text("Hold to repeat:"); - ImGui::SameLine(); - - // Arrow buttons with Repeater - static int counter = 0; - float spacing = ImGui::GetStyle().ItemInnerSpacing.x; - ImGui::PushButtonRepeat(true); - if (ImGui::ArrowButton("##left", ImGuiDir_Left)) { counter--; } - ImGui::SameLine(0.0f, spacing); - if (ImGui::ArrowButton("##right", ImGuiDir_Right)) { counter++; } - ImGui::PopButtonRepeat(); - ImGui::SameLine(); - ImGui::Text("%d", counter); - - ImGui::Text("Hover over me"); - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("I am a tooltip"); - - ImGui::SameLine(); - ImGui::Text("- or me"); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - ImGui::Text("I am a fancy tooltip"); - static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; - ImGui::PlotLines("Curve", arr, IM_ARRAYSIZE(arr)); - ImGui::EndTooltip(); - } - - ImGui::Separator(); - - ImGui::LabelText("label", "Value"); - - { - // Using the _simplified_ one-liner Combo() api here - // See "Combo" section for examples of how to use the more complete BeginCombo()/EndCombo() api. - const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIII", "JJJJ", "KKKK", "LLLLLLL", "MMMM", "OOOOOOO" }; - static int item_current = 0; - ImGui::Combo("combo", &item_current, items, IM_ARRAYSIZE(items)); - ImGui::SameLine(); HelpMarker("Refer to the \"Combo\" section below for an explanation of the full BeginCombo/EndCombo API, and demonstration of various flags.\n"); - } - - { - // To wire InputText() with std::string or any other custom string type, - // see the "Text Input > Resize Callback" section of this demo, and the misc/cpp/imgui_stdlib.h file. - static char str0[128] = "Hello, world!"; - ImGui::InputText("input text", str0, IM_ARRAYSIZE(str0)); - ImGui::SameLine(); HelpMarker("USER:\nHold SHIFT or use mouse to select text.\n" "CTRL+Left/Right to word jump.\n" "CTRL+A or double-click to select all.\n" "CTRL+X,CTRL+C,CTRL+V clipboard.\n" "CTRL+Z,CTRL+Y undo/redo.\n" "ESCAPE to revert.\n\nPROGRAMMER:\nYou can use the ImGuiInputTextFlags_CallbackResize facility if you need to wire InputText() to a dynamic string type. See misc/cpp/imgui_stdlib.h for an example (this is not demonstrated in imgui_demo.cpp)."); - - static char str1[128] = ""; - ImGui::InputTextWithHint("input text (w/ hint)", "enter text here", str1, IM_ARRAYSIZE(str1)); - - static int i0 = 123; - ImGui::InputInt("input int", &i0); - ImGui::SameLine(); HelpMarker("You can apply arithmetic operators +,*,/ on numerical values.\n e.g. [ 100 ], input \'*2\', result becomes [ 200 ]\nUse +- to subtract.\n"); - - static float f0 = 0.001f; - ImGui::InputFloat("input float", &f0, 0.01f, 1.0f, "%.3f"); - - static double d0 = 999999.00000001; - ImGui::InputDouble("input double", &d0, 0.01f, 1.0f, "%.8f"); - - static float f1 = 1.e10f; - ImGui::InputFloat("input scientific", &f1, 0.0f, 0.0f, "%e"); - ImGui::SameLine(); HelpMarker("You can input value using the scientific notation,\n e.g. \"1e+8\" becomes \"100000000\".\n"); - - static float vec4a[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; - ImGui::InputFloat3("input float3", vec4a); - } - - { - static int i1 = 50, i2 = 42; - ImGui::DragInt("drag int", &i1, 1); - ImGui::SameLine(); HelpMarker("Click and drag to edit value.\nHold SHIFT/ALT for faster/slower edit.\nDouble-click or CTRL+click to input value."); - - ImGui::DragInt("drag int 0..100", &i2, 1, 0, 100, "%d%%"); - - static float f1=1.00f, f2=0.0067f; - ImGui::DragFloat("drag float", &f1, 0.005f); - ImGui::DragFloat("drag small float", &f2, 0.0001f, 0.0f, 0.0f, "%.06f ns"); - } - - { - static int i1=0; - ImGui::SliderInt("slider int", &i1, -1, 3); - ImGui::SameLine(); HelpMarker("CTRL+click to input value."); - - static float f1=0.123f, f2=0.0f; - ImGui::SliderFloat("slider float", &f1, 0.0f, 1.0f, "ratio = %.3f"); - ImGui::SliderFloat("slider float (curve)", &f2, -10.0f, 10.0f, "%.4f", 2.0f); - - static float angle = 0.0f; - ImGui::SliderAngle("slider angle", &angle); - - // Using the format string to display a name instead of an integer. - // Here we completely omit '%d' from the format string, so it'll only display a name. - // This technique can also be used with DragInt(). - enum Element { Element_Fire, Element_Earth, Element_Air, Element_Water, Element_COUNT }; - const char* element_names[Element_COUNT] = { "Fire", "Earth", "Air", "Water" }; - static int current_element = Element_Fire; - const char* current_element_name = (current_element >= 0 && current_element < Element_COUNT) ? element_names[current_element] : "Unknown"; - ImGui::SliderInt("slider enum", ¤t_element, 0, Element_COUNT - 1, current_element_name); - ImGui::SameLine(); HelpMarker("Using the format string parameter to display a name instead of the underlying integer."); - } - - { - static float col1[3] = { 1.0f,0.0f,0.2f }; - static float col2[4] = { 0.4f,0.7f,0.0f,0.5f }; - ImGui::ColorEdit3("color 1", col1); - ImGui::SameLine(); HelpMarker("Click on the colored square to open a color picker.\nClick and hold to use drag and drop.\nRight-click on the colored square to show options.\nCTRL+click on individual component to input value.\n"); - - ImGui::ColorEdit4("color 2", col2); - } - - { - // List box - const char* listbox_items[] = { "Apple", "Banana", "Cherry", "Kiwi", "Mango", "Orange", "Pineapple", "Strawberry", "Watermelon" }; - static int listbox_item_current = 1; - ImGui::ListBox("listbox\n(single select)", &listbox_item_current, listbox_items, IM_ARRAYSIZE(listbox_items), 4); - - //static int listbox_item_current2 = 2; - //ImGui::SetNextItemWidth(-1); - //ImGui::ListBox("##listbox2", &listbox_item_current2, listbox_items, IM_ARRAYSIZE(listbox_items), 4); - } - - ImGui::TreePop(); - } - - // Testing ImGuiOnceUponAFrame helper. - //static ImGuiOnceUponAFrame once; - //for (int i = 0; i < 5; i++) - // if (once) - // ImGui::Text("This will be displayed only once."); - - if (ImGui::TreeNode("Trees")) - { - if (ImGui::TreeNode("Basic trees")) - { - for (int i = 0; i < 5; i++) - { - // Use SetNextItemOpen() so set the default state of a node to be open. - // We could also use TreeNodeEx() with the ImGuiTreeNodeFlags_DefaultOpen flag to achieve the same thing! - if (i == 0) - ImGui::SetNextItemOpen(true, ImGuiCond_Once); - - if (ImGui::TreeNode((void*)(intptr_t)i, "Child %d", i)) - { - ImGui::Text("blah blah"); - ImGui::SameLine(); - if (ImGui::SmallButton("button")) {} - ImGui::TreePop(); - } - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Advanced, with Selectable nodes")) - { - HelpMarker("This is a more typical looking tree with selectable nodes.\nClick to select, CTRL+Click to toggle, click on arrows or double-click to open."); - static ImGuiTreeNodeFlags base_flags = ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_SpanAvailWidth; - static bool align_label_with_current_x_position = false; - ImGui::CheckboxFlags("ImGuiTreeNodeFlags_OpenOnArrow", (unsigned int*)&base_flags, ImGuiTreeNodeFlags_OpenOnArrow); - ImGui::CheckboxFlags("ImGuiTreeNodeFlags_OpenOnDoubleClick", (unsigned int*)&base_flags, ImGuiTreeNodeFlags_OpenOnDoubleClick); - ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanAvailWidth", (unsigned int*)&base_flags, ImGuiTreeNodeFlags_SpanAvailWidth); ImGui::SameLine(); HelpMarker("Extend hit area to all available width instead of allowing more items to be layed out after the node."); - ImGui::CheckboxFlags("ImGuiTreeNodeFlags_SpanFullWidth", (unsigned int*)&base_flags, ImGuiTreeNodeFlags_SpanFullWidth); - ImGui::Checkbox("Align label with current X position", &align_label_with_current_x_position); - ImGui::Text("Hello!"); - if (align_label_with_current_x_position) - ImGui::Unindent(ImGui::GetTreeNodeToLabelSpacing()); - - static int selection_mask = (1 << 2); // Dumb representation of what may be user-side selection state. You may carry selection state inside or outside your objects in whatever format you see fit. - int node_clicked = -1; // Temporary storage of what node we have clicked to process selection at the end of the loop. May be a pointer to your own node type, etc. - for (int i = 0; i < 6; i++) - { - // Disable the default open on single-click behavior and pass in Selected flag according to our selection state. - ImGuiTreeNodeFlags node_flags = base_flags; - const bool is_selected = (selection_mask & (1 << i)) != 0; - if (is_selected) - node_flags |= ImGuiTreeNodeFlags_Selected; - if (i < 3) - { - // Items 0..2 are Tree Node - bool node_open = ImGui::TreeNodeEx((void*)(intptr_t)i, node_flags, "Selectable Node %d", i); - if (ImGui::IsItemClicked()) - node_clicked = i; - if (node_open) - { - ImGui::BulletText("Blah blah\nBlah Blah"); - ImGui::TreePop(); - } - } - else - { - // Items 3..5 are Tree Leaves - // The only reason we use TreeNode at all is to allow selection of the leaf. - // Otherwise we can use BulletText() or advance the cursor by GetTreeNodeToLabelSpacing() and call Text(). - node_flags |= ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_NoTreePushOnOpen; // ImGuiTreeNodeFlags_Bullet - ImGui::TreeNodeEx((void*)(intptr_t)i, node_flags, "Selectable Leaf %d", i); - if (ImGui::IsItemClicked()) - node_clicked = i; - } - } - if (node_clicked != -1) - { - // Update selection state. Process outside of tree loop to avoid visual inconsistencies during the clicking-frame. - if (ImGui::GetIO().KeyCtrl) - selection_mask ^= (1 << node_clicked); // CTRL+click to toggle - else //if (!(selection_mask & (1 << node_clicked))) // Depending on selection behavior you want, this commented bit preserve selection when clicking on item that is part of the selection - selection_mask = (1 << node_clicked); // Click to single-select - } - if (align_label_with_current_x_position) - ImGui::Indent(ImGui::GetTreeNodeToLabelSpacing()); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Collapsing Headers")) - { - static bool closable_group = true; - ImGui::Checkbox("Show 2nd header", &closable_group); - if (ImGui::CollapsingHeader("Header", ImGuiTreeNodeFlags_None)) - { - ImGui::Text("IsItemHovered: %d", ImGui::IsItemHovered()); - for (int i = 0; i < 5; i++) - ImGui::Text("Some content %d", i); - } - if (ImGui::CollapsingHeader("Header with a close button", &closable_group)) - { - ImGui::Text("IsItemHovered: %d", ImGui::IsItemHovered()); - for (int i = 0; i < 5; i++) - ImGui::Text("More content %d", i); - } - /* - if (ImGui::CollapsingHeader("Header with a bullet", ImGuiTreeNodeFlags_Bullet)) - ImGui::Text("IsItemHovered: %d", ImGui::IsItemHovered()); - */ - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Bullets")) - { - ImGui::BulletText("Bullet point 1"); - ImGui::BulletText("Bullet point 2\nOn multiple lines"); - if (ImGui::TreeNode("Tree node")) - { - ImGui::BulletText("Another bullet point"); - ImGui::TreePop(); - } - ImGui::Bullet(); ImGui::Text("Bullet point 3 (two calls)"); - ImGui::Bullet(); ImGui::SmallButton("Button"); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Text")) - { - if (ImGui::TreeNode("Colored Text")) - { - // Using shortcut. You can use PushStyleColor()/PopStyleColor() for more flexibility. - ImGui::TextColored(ImVec4(1.0f,0.0f,1.0f,1.0f), "Pink"); - ImGui::TextColored(ImVec4(1.0f,1.0f,0.0f,1.0f), "Yellow"); - ImGui::TextDisabled("Disabled"); - ImGui::SameLine(); HelpMarker("The TextDisabled color is stored in ImGuiStyle."); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Word Wrapping")) - { - // Using shortcut. You can use PushTextWrapPos()/PopTextWrapPos() for more flexibility. - ImGui::TextWrapped("This text should automatically wrap on the edge of the window. The current implementation for text wrapping follows simple rules suitable for English and possibly other languages."); - ImGui::Spacing(); - - static float wrap_width = 200.0f; - ImGui::SliderFloat("Wrap width", &wrap_width, -20, 600, "%.0f"); - - ImGui::Text("Test paragraph 1:"); - ImVec2 pos = ImGui::GetCursorScreenPos(); - ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), IM_COL32(255,0,255,255)); - ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); - ImGui::Text("The lazy dog is a good dog. This paragraph is made to fit within %.0f pixels. Testing a 1 character word. The quick brown fox jumps over the lazy dog.", wrap_width); - ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), IM_COL32(255,255,0,255)); - ImGui::PopTextWrapPos(); - - ImGui::Text("Test paragraph 2:"); - pos = ImGui::GetCursorScreenPos(); - ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(pos.x + wrap_width, pos.y), ImVec2(pos.x + wrap_width + 10, pos.y + ImGui::GetTextLineHeight()), IM_COL32(255,0,255,255)); - ImGui::PushTextWrapPos(ImGui::GetCursorPos().x + wrap_width); - ImGui::Text("aaaaaaaa bbbbbbbb, c cccccccc,dddddddd. d eeeeeeee ffffffff. gggggggg!hhhhhhhh"); - ImGui::GetWindowDrawList()->AddRect(ImGui::GetItemRectMin(), ImGui::GetItemRectMax(), IM_COL32(255,255,0,255)); - ImGui::PopTextWrapPos(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("UTF-8 Text")) - { - // UTF-8 test with Japanese characters - // (Needs a suitable font, try Noto, or Arial Unicode, or M+ fonts. Read docs/FONTS.txt for details.) - // - From C++11 you can use the u8"my text" syntax to encode literal strings as UTF-8 - // - For earlier compiler, you may be able to encode your sources as UTF-8 (e.g. Visual Studio save your file as 'UTF-8 without signature') - // - FOR THIS DEMO FILE ONLY, BECAUSE WE WANT TO SUPPORT OLD COMPILERS, WE ARE *NOT* INCLUDING RAW UTF-8 CHARACTERS IN THIS SOURCE FILE. - // Instead we are encoding a few strings with hexadecimal constants. Don't do this in your application! - // Please use u8"text in any language" in your application! - // Note that characters values are preserved even by InputText() if the font cannot be displayed, so you can safely copy & paste garbled characters into another application. - ImGui::TextWrapped("CJK text will only appears if the font was loaded with the appropriate CJK character ranges. Call io.Font->AddFontFromFileTTF() manually to load extra character ranges. Read docs/FONTS.txt for details."); - ImGui::Text("Hiragana: \xe3\x81\x8b\xe3\x81\x8d\xe3\x81\x8f\xe3\x81\x91\xe3\x81\x93 (kakikukeko)"); // Normally we would use u8"blah blah" with the proper characters directly in the string. - ImGui::Text("Kanjis: \xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e (nihongo)"); - static char buf[32] = "\xe6\x97\xa5\xe6\x9c\xac\xe8\xaa\x9e"; - //static char buf[32] = u8"NIHONGO"; // <- this is how you would write it with C++11, using real kanjis - ImGui::InputText("UTF-8 input", buf, IM_ARRAYSIZE(buf)); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Images")) - { - ImGuiIO& io = ImGui::GetIO(); - ImGui::TextWrapped("Below we are displaying the font texture (which is the only texture we have access to in this demo). Use the 'ImTextureID' type as storage to pass pointers or identifier to your own texture data. Hover the texture for a zoomed view!"); - - // Here we are grabbing the font texture because that's the only one we have access to inside the demo code. - // Remember that ImTextureID is just storage for whatever you want it to be, it is essentially a value that will be passed to the render function inside the ImDrawCmd structure. - // If you use one of the default imgui_impl_XXXX.cpp renderer, they all have comments at the top of their file to specify what they expect to be stored in ImTextureID. - // (for example, the imgui_impl_dx11.cpp renderer expect a 'ID3D11ShaderResourceView*' pointer. The imgui_impl_opengl3.cpp renderer expect a GLuint OpenGL texture identifier etc.) - // If you decided that ImTextureID = MyEngineTexture*, then you can pass your MyEngineTexture* pointers to ImGui::Image(), and gather width/height through your own functions, etc. - // Using ShowMetricsWindow() as a "debugger" to inspect the draw data that are being passed to your render will help you debug issues if you are confused about this. - // Consider using the lower-level ImDrawList::AddImage() API, via ImGui::GetWindowDrawList()->AddImage(). - ImTextureID my_tex_id = io.Fonts->TexID; - float my_tex_w = (float)io.Fonts->TexWidth; - float my_tex_h = (float)io.Fonts->TexHeight; - - ImGui::Text("%.0fx%.0f", my_tex_w, my_tex_h); - ImVec2 pos = ImGui::GetCursorScreenPos(); - ImGui::Image(my_tex_id, ImVec2(my_tex_w, my_tex_h), ImVec2(0,0), ImVec2(1,1), ImVec4(1.0f,1.0f,1.0f,1.0f), ImVec4(1.0f,1.0f,1.0f,0.5f)); - if (ImGui::IsItemHovered()) - { - ImGui::BeginTooltip(); - float region_sz = 32.0f; - float region_x = io.MousePos.x - pos.x - region_sz * 0.5f; if (region_x < 0.0f) region_x = 0.0f; else if (region_x > my_tex_w - region_sz) region_x = my_tex_w - region_sz; - float region_y = io.MousePos.y - pos.y - region_sz * 0.5f; if (region_y < 0.0f) region_y = 0.0f; else if (region_y > my_tex_h - region_sz) region_y = my_tex_h - region_sz; - float zoom = 4.0f; - ImGui::Text("Min: (%.2f, %.2f)", region_x, region_y); - ImGui::Text("Max: (%.2f, %.2f)", region_x + region_sz, region_y + region_sz); - ImVec2 uv0 = ImVec2((region_x) / my_tex_w, (region_y) / my_tex_h); - ImVec2 uv1 = ImVec2((region_x + region_sz) / my_tex_w, (region_y + region_sz) / my_tex_h); - ImGui::Image(my_tex_id, ImVec2(region_sz * zoom, region_sz * zoom), uv0, uv1, ImVec4(1.0f, 1.0f, 1.0f, 1.0f), ImVec4(1.0f, 1.0f, 1.0f, 0.5f)); - ImGui::EndTooltip(); - } - ImGui::TextWrapped("And now some textured buttons.."); - static int pressed_count = 0; - for (int i = 0; i < 8; i++) - { - ImGui::PushID(i); - int frame_padding = -1 + i; // -1 = uses default padding - if (ImGui::ImageButton(my_tex_id, ImVec2(32,32), ImVec2(0,0), ImVec2(32.0f/my_tex_w,32/my_tex_h), frame_padding, ImVec4(0.0f,0.0f,0.0f,1.0f))) - pressed_count += 1; - ImGui::PopID(); - ImGui::SameLine(); - } - ImGui::NewLine(); - ImGui::Text("Pressed %d times.", pressed_count); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Combo")) - { - // Expose flags as checkbox for the demo - static ImGuiComboFlags flags = 0; - ImGui::CheckboxFlags("ImGuiComboFlags_PopupAlignLeft", (unsigned int*)&flags, ImGuiComboFlags_PopupAlignLeft); - ImGui::SameLine(); HelpMarker("Only makes a difference if the popup is larger than the combo"); - if (ImGui::CheckboxFlags("ImGuiComboFlags_NoArrowButton", (unsigned int*)&flags, ImGuiComboFlags_NoArrowButton)) - flags &= ~ImGuiComboFlags_NoPreview; // Clear the other flag, as we cannot combine both - if (ImGui::CheckboxFlags("ImGuiComboFlags_NoPreview", (unsigned int*)&flags, ImGuiComboFlags_NoPreview)) - flags &= ~ImGuiComboFlags_NoArrowButton; // Clear the other flag, as we cannot combine both - - // General BeginCombo() API, you have full control over your selection data and display type. - // (your selection data could be an index, a pointer to the object, an id for the object, a flag stored in the object itself, etc.) - const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD", "EEEE", "FFFF", "GGGG", "HHHH", "IIII", "JJJJ", "KKKK", "LLLLLLL", "MMMM", "OOOOOOO" }; - static const char* item_current = items[0]; // Here our selection is a single pointer stored outside the object. - if (ImGui::BeginCombo("combo 1", item_current, flags)) // The second parameter is the label previewed before opening the combo. - { - for (int n = 0; n < IM_ARRAYSIZE(items); n++) - { - bool is_selected = (item_current == items[n]); - if (ImGui::Selectable(items[n], is_selected)) - item_current = items[n]; - if (is_selected) - ImGui::SetItemDefaultFocus(); // Set the initial focus when opening the combo (scrolling + for keyboard navigation support in the upcoming navigation branch) - } - ImGui::EndCombo(); - } - - // Simplified one-liner Combo() API, using values packed in a single constant string - static int item_current_2 = 0; - ImGui::Combo("combo 2 (one-liner)", &item_current_2, "aaaa\0bbbb\0cccc\0dddd\0eeee\0\0"); - - // Simplified one-liner Combo() using an array of const char* - static int item_current_3 = -1; // If the selection isn't within 0..count, Combo won't display a preview - ImGui::Combo("combo 3 (array)", &item_current_3, items, IM_ARRAYSIZE(items)); - - // Simplified one-liner Combo() using an accessor function - struct FuncHolder { static bool ItemGetter(void* data, int idx, const char** out_str) { *out_str = ((const char**)data)[idx]; return true; } }; - static int item_current_4 = 0; - ImGui::Combo("combo 4 (function)", &item_current_4, &FuncHolder::ItemGetter, items, IM_ARRAYSIZE(items)); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Selectables")) - { - // Selectable() has 2 overloads: - // - The one taking "bool selected" as a read-only selection information. When Selectable() has been clicked is returns true and you can alter selection state accordingly. - // - The one taking "bool* p_selected" as a read-write selection information (convenient in some cases) - // The earlier is more flexible, as in real application your selection may be stored in a different manner (in flags within objects, as an external list, etc). - if (ImGui::TreeNode("Basic")) - { - static bool selection[5] = { false, true, false, false, false }; - ImGui::Selectable("1. I am selectable", &selection[0]); - ImGui::Selectable("2. I am selectable", &selection[1]); - ImGui::Text("3. I am not selectable"); - ImGui::Selectable("4. I am selectable", &selection[3]); - if (ImGui::Selectable("5. I am double clickable", selection[4], ImGuiSelectableFlags_AllowDoubleClick)) - if (ImGui::IsMouseDoubleClicked(0)) - selection[4] = !selection[4]; - ImGui::TreePop(); - } - if (ImGui::TreeNode("Selection State: Single Selection")) - { - static int selected = -1; - for (int n = 0; n < 5; n++) - { - char buf[32]; - sprintf(buf, "Object %d", n); - if (ImGui::Selectable(buf, selected == n)) - selected = n; - } - ImGui::TreePop(); - } - if (ImGui::TreeNode("Selection State: Multiple Selection")) - { - HelpMarker("Hold CTRL and click to select multiple items."); - static bool selection[5] = { false, false, false, false, false }; - for (int n = 0; n < 5; n++) - { - char buf[32]; - sprintf(buf, "Object %d", n); - if (ImGui::Selectable(buf, selection[n])) - { - if (!ImGui::GetIO().KeyCtrl) // Clear selection when CTRL is not held - memset(selection, 0, sizeof(selection)); - selection[n] ^= 1; - } - } - ImGui::TreePop(); - } - if (ImGui::TreeNode("Rendering more text into the same line")) - { - // Using the Selectable() override that takes "bool* p_selected" parameter and toggle your booleans automatically. - static bool selected[3] = { false, false, false }; - ImGui::Selectable("main.c", &selected[0]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); - ImGui::Selectable("Hello.cpp", &selected[1]); ImGui::SameLine(300); ImGui::Text("12,345 bytes"); - ImGui::Selectable("Hello.h", &selected[2]); ImGui::SameLine(300); ImGui::Text(" 2,345 bytes"); - ImGui::TreePop(); - } - if (ImGui::TreeNode("In columns")) - { - ImGui::Columns(3, NULL, false); - static bool selected[16] = {}; - for (int i = 0; i < 16; i++) - { - char label[32]; sprintf(label, "Item %d", i); - if (ImGui::Selectable(label, &selected[i])) {} - ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::TreePop(); - } - if (ImGui::TreeNode("Grid")) - { - static bool selected[4*4] = { true, false, false, false, false, true, false, false, false, false, true, false, false, false, false, true }; - for (int i = 0; i < 4*4; i++) - { - ImGui::PushID(i); - if (ImGui::Selectable("Sailor", &selected[i], 0, ImVec2(50,50))) - { - // Note: We _unnecessarily_ test for both x/y and i here only to silence some static analyzer. The second part of each test is unnecessary. - int x = i % 4; - int y = i / 4; - if (x > 0) { selected[i - 1] ^= 1; } - if (x < 3 && i < 15) { selected[i + 1] ^= 1; } - if (y > 0 && i > 3) { selected[i - 4] ^= 1; } - if (y < 3 && i < 12) { selected[i + 4] ^= 1; } - } - if ((i % 4) < 3) ImGui::SameLine(); - ImGui::PopID(); - } - ImGui::TreePop(); - } - if (ImGui::TreeNode("Alignment")) - { - HelpMarker("By default, Selectables uses style.SelectableTextAlign but it can be overriden on a per-item basis using PushStyleVar(). You'll probably want to always keep your default situation to left-align otherwise it becomes difficult to layout multiple items on a same line"); - static bool selected[3*3] = { true, false, true, false, true, false, true, false, true }; - for (int y = 0; y < 3; y++) - { - for (int x = 0; x < 3; x++) - { - ImVec2 alignment = ImVec2((float)x / 2.0f, (float)y / 2.0f); - char name[32]; - sprintf(name, "(%.1f,%.1f)", alignment.x, alignment.y); - if (x > 0) ImGui::SameLine(); - ImGui::PushStyleVar(ImGuiStyleVar_SelectableTextAlign, alignment); - ImGui::Selectable(name, &selected[3*y+x], ImGuiSelectableFlags_None, ImVec2(80,80)); - ImGui::PopStyleVar(); - } - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - // To wire InputText() with std::string or any other custom string type, - // see the "Text Input > Resize Callback" section of this demo, and the misc/cpp/imgui_stdlib.h file. - if (ImGui::TreeNode("Text Input")) - { - if (ImGui::TreeNode("Multi-line Text Input")) - { - // Note: we are using a fixed-sized buffer for simplicity here. See ImGuiInputTextFlags_CallbackResize - // and the code in misc/cpp/imgui_stdlib.h for how to setup InputText() for dynamically resizing strings. - static char text[1024 * 16] = - "/*\n" - " The Pentium F00F bug, shorthand for F0 0F C7 C8,\n" - " the hexadecimal encoding of one offending instruction,\n" - " more formally, the invalid operand with locked CMPXCHG8B\n" - " instruction bug, is a design flaw in the majority of\n" - " Intel Pentium, Pentium MMX, and Pentium OverDrive\n" - " processors (all in the P5 microarchitecture).\n" - "*/\n\n" - "label:\n" - "\tlock cmpxchg8b eax\n"; - - static ImGuiInputTextFlags flags = ImGuiInputTextFlags_AllowTabInput; - HelpMarker("You can use the ImGuiInputTextFlags_CallbackResize facility if you need to wire InputTextMultiline() to a dynamic string type. See misc/cpp/imgui_stdlib.h for an example. (This is not demonstrated in imgui_demo.cpp because we don't want to include in here)"); - ImGui::CheckboxFlags("ImGuiInputTextFlags_ReadOnly", (unsigned int*)&flags, ImGuiInputTextFlags_ReadOnly); - ImGui::CheckboxFlags("ImGuiInputTextFlags_AllowTabInput", (unsigned int*)&flags, ImGuiInputTextFlags_AllowTabInput); - ImGui::CheckboxFlags("ImGuiInputTextFlags_CtrlEnterForNewLine", (unsigned int*)&flags, ImGuiInputTextFlags_CtrlEnterForNewLine); - ImGui::InputTextMultiline("##source", text, IM_ARRAYSIZE(text), ImVec2(-FLT_MIN, ImGui::GetTextLineHeight() * 16), flags); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Filtered Text Input")) - { - static char buf1[64] = ""; ImGui::InputText("default", buf1, 64); - static char buf2[64] = ""; ImGui::InputText("decimal", buf2, 64, ImGuiInputTextFlags_CharsDecimal); - static char buf3[64] = ""; ImGui::InputText("hexadecimal", buf3, 64, ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase); - static char buf4[64] = ""; ImGui::InputText("uppercase", buf4, 64, ImGuiInputTextFlags_CharsUppercase); - static char buf5[64] = ""; ImGui::InputText("no blank", buf5, 64, ImGuiInputTextFlags_CharsNoBlank); - struct TextFilters { static int FilterImGuiLetters(ImGuiInputTextCallbackData* data) { if (data->EventChar < 256 && strchr("imgui", (char)data->EventChar)) return 0; return 1; } }; - static char buf6[64] = ""; ImGui::InputText("\"imgui\" letters", buf6, 64, ImGuiInputTextFlags_CallbackCharFilter, TextFilters::FilterImGuiLetters); - - ImGui::Text("Password input"); - static char password[64] = "password123"; - ImGui::InputText("password", password, IM_ARRAYSIZE(password), ImGuiInputTextFlags_Password); - ImGui::SameLine(); HelpMarker("Display all characters as '*'.\nDisable clipboard cut and copy.\nDisable logging.\n"); - ImGui::InputTextWithHint("password (w/ hint)", "", password, IM_ARRAYSIZE(password), ImGuiInputTextFlags_Password); - ImGui::InputText("password (clear)", password, IM_ARRAYSIZE(password)); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Resize Callback")) - { - // To wire InputText() with std::string or any other custom string type, - // you can use the ImGuiInputTextFlags_CallbackResize flag + create a custom ImGui::InputText() wrapper using your prefered type. - // See misc/cpp/imgui_stdlib.h for an implementation of this using std::string. - HelpMarker("Demonstrate using ImGuiInputTextFlags_CallbackResize to wire your resizable string type to InputText().\n\nSee misc/cpp/imgui_stdlib.h for an implementation of this for std::string."); - struct Funcs - { - static int MyResizeCallback(ImGuiInputTextCallbackData* data) - { - if (data->EventFlag == ImGuiInputTextFlags_CallbackResize) - { - ImVector* my_str = (ImVector*)data->UserData; - IM_ASSERT(my_str->begin() == data->Buf); - my_str->resize(data->BufSize); // NB: On resizing calls, generally data->BufSize == data->BufTextLen + 1 - data->Buf = my_str->begin(); - } - return 0; - } - - // Tip: Because ImGui:: is a namespace you would typicall add your own function into the namespace in your own source files. - // For example, you may add a function called ImGui::InputText(const char* label, MyString* my_str). - static bool MyInputTextMultiline(const char* label, ImVector* my_str, const ImVec2& size = ImVec2(0, 0), ImGuiInputTextFlags flags = 0) - { - IM_ASSERT((flags & ImGuiInputTextFlags_CallbackResize) == 0); - return ImGui::InputTextMultiline(label, my_str->begin(), (size_t)my_str->size(), size, flags | ImGuiInputTextFlags_CallbackResize, Funcs::MyResizeCallback, (void*)my_str); - } - }; - - // For this demo we are using ImVector as a string container. - // Note that because we need to store a terminating zero character, our size/capacity are 1 more than usually reported by a typical string class. - static ImVector my_str; - if (my_str.empty()) - my_str.push_back(0); - Funcs::MyInputTextMultiline("##MyStr", &my_str, ImVec2(-FLT_MIN, ImGui::GetTextLineHeight() * 16)); - ImGui::Text("Data: %p\nSize: %d\nCapacity: %d", (void*)my_str.begin(), my_str.size(), my_str.capacity()); - ImGui::TreePop(); - } - - ImGui::TreePop(); - } - - // Plot/Graph widgets are currently fairly limited. - // Consider writing your own plotting widget, or using a third-party one (see "Wiki->Useful Widgets", or github.com/ocornut/imgui/issues/2747) - if (ImGui::TreeNode("Plots Widgets")) - { - static bool animate = true; - ImGui::Checkbox("Animate", &animate); - - static float arr[] = { 0.6f, 0.1f, 1.0f, 0.5f, 0.92f, 0.1f, 0.2f }; - ImGui::PlotLines("Frame Times", arr, IM_ARRAYSIZE(arr)); - - // Create a dummy array of contiguous float values to plot - // Tip: If your float aren't contiguous but part of a structure, you can pass a pointer to your first float and the sizeof() of your structure in the Stride parameter. - static float values[90] = {}; - static int values_offset = 0; - static double refresh_time = 0.0; - if (!animate || refresh_time == 0.0) - refresh_time = ImGui::GetTime(); - while (refresh_time < ImGui::GetTime()) // Create dummy data at fixed 60 hz rate for the demo - { - static float phase = 0.0f; - values[values_offset] = cosf(phase); - values_offset = (values_offset+1) % IM_ARRAYSIZE(values); - phase += 0.10f*values_offset; - refresh_time += 1.0f/60.0f; - } - - // Plots can display overlay texts - // (in this example, we will display an average value) - { - float average = 0.0f; - for (int n = 0; n < IM_ARRAYSIZE(values); n++) - average += values[n]; - average /= (float)IM_ARRAYSIZE(values); - char overlay[32]; - sprintf(overlay, "avg %f", average); - ImGui::PlotLines("Lines", values, IM_ARRAYSIZE(values), values_offset, overlay, -1.0f, 1.0f, ImVec2(0,80)); - } - ImGui::PlotHistogram("Histogram", arr, IM_ARRAYSIZE(arr), 0, NULL, 0.0f, 1.0f, ImVec2(0,80)); - - // Use functions to generate output - // FIXME: This is rather awkward because current plot API only pass in indices. We probably want an API passing floats and user provide sample rate/count. - struct Funcs - { - static float Sin(void*, int i) { return sinf(i * 0.1f); } - static float Saw(void*, int i) { return (i & 1) ? 1.0f : -1.0f; } - }; - static int func_type = 0, display_count = 70; - ImGui::Separator(); - ImGui::SetNextItemWidth(100); - ImGui::Combo("func", &func_type, "Sin\0Saw\0"); - ImGui::SameLine(); - ImGui::SliderInt("Sample count", &display_count, 1, 400); - float (*func)(void*, int) = (func_type == 0) ? Funcs::Sin : Funcs::Saw; - ImGui::PlotLines("Lines", func, NULL, display_count, 0, NULL, -1.0f, 1.0f, ImVec2(0,80)); - ImGui::PlotHistogram("Histogram", func, NULL, display_count, 0, NULL, -1.0f, 1.0f, ImVec2(0,80)); - ImGui::Separator(); - - // Animate a simple progress bar - static float progress = 0.0f, progress_dir = 1.0f; - if (animate) - { - progress += progress_dir * 0.4f * ImGui::GetIO().DeltaTime; - if (progress >= +1.1f) { progress = +1.1f; progress_dir *= -1.0f; } - if (progress <= -0.1f) { progress = -0.1f; progress_dir *= -1.0f; } - } - - // Typically we would use ImVec2(-1.0f,0.0f) or ImVec2(-FLT_MIN,0.0f) to use all available width, - // or ImVec2(width,0.0f) for a specified width. ImVec2(0.0f,0.0f) uses ItemWidth. - ImGui::ProgressBar(progress, ImVec2(0.0f,0.0f)); - ImGui::SameLine(0.0f, ImGui::GetStyle().ItemInnerSpacing.x); - ImGui::Text("Progress Bar"); - - float progress_saturated = (progress < 0.0f) ? 0.0f : (progress > 1.0f) ? 1.0f : progress; - char buf[32]; - sprintf(buf, "%d/%d", (int)(progress_saturated*1753), 1753); - ImGui::ProgressBar(progress, ImVec2(0.f,0.f), buf); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Color/Picker Widgets")) - { - static ImVec4 color = ImVec4(114.0f/255.0f, 144.0f/255.0f, 154.0f/255.0f, 200.0f/255.0f); - - static bool alpha_preview = true; - static bool alpha_half_preview = false; - static bool drag_and_drop = true; - static bool options_menu = true; - static bool hdr = false; - ImGui::Checkbox("With Alpha Preview", &alpha_preview); - ImGui::Checkbox("With Half Alpha Preview", &alpha_half_preview); - ImGui::Checkbox("With Drag and Drop", &drag_and_drop); - ImGui::Checkbox("With Options Menu", &options_menu); ImGui::SameLine(); HelpMarker("Right-click on the individual color widget to show options."); - ImGui::Checkbox("With HDR", &hdr); ImGui::SameLine(); HelpMarker("Currently all this does is to lift the 0..1 limits on dragging widgets."); - ImGuiColorEditFlags misc_flags = (hdr ? ImGuiColorEditFlags_HDR : 0) | (drag_and_drop ? 0 : ImGuiColorEditFlags_NoDragDrop) | (alpha_half_preview ? ImGuiColorEditFlags_AlphaPreviewHalf : (alpha_preview ? ImGuiColorEditFlags_AlphaPreview : 0)) | (options_menu ? 0 : ImGuiColorEditFlags_NoOptions); - - ImGui::Text("Color widget:"); - ImGui::SameLine(); HelpMarker("Click on the colored square to open a color picker.\nCTRL+click on individual component to input value.\n"); - ImGui::ColorEdit3("MyColor##1", (float*)&color, misc_flags); - - ImGui::Text("Color widget HSV with Alpha:"); - ImGui::ColorEdit4("MyColor##2", (float*)&color, ImGuiColorEditFlags_DisplayHSV | misc_flags); - - ImGui::Text("Color widget with Float Display:"); - ImGui::ColorEdit4("MyColor##2f", (float*)&color, ImGuiColorEditFlags_Float | misc_flags); - - ImGui::Text("Color button with Picker:"); - ImGui::SameLine(); HelpMarker("With the ImGuiColorEditFlags_NoInputs flag you can hide all the slider/text inputs.\nWith the ImGuiColorEditFlags_NoLabel flag you can pass a non-empty label which will only be used for the tooltip and picker popup."); - ImGui::ColorEdit4("MyColor##3", (float*)&color, ImGuiColorEditFlags_NoInputs | ImGuiColorEditFlags_NoLabel | misc_flags); - - ImGui::Text("Color button with Custom Picker Popup:"); - - // Generate a dummy default palette. The palette will persist and can be edited. - static bool saved_palette_init = true; - static ImVec4 saved_palette[32] = {}; - if (saved_palette_init) - { - for (int n = 0; n < IM_ARRAYSIZE(saved_palette); n++) - { - ImGui::ColorConvertHSVtoRGB(n / 31.0f, 0.8f, 0.8f, saved_palette[n].x, saved_palette[n].y, saved_palette[n].z); - saved_palette[n].w = 1.0f; // Alpha - } - saved_palette_init = false; - } - - static ImVec4 backup_color; - bool open_popup = ImGui::ColorButton("MyColor##3b", color, misc_flags); - ImGui::SameLine(0, ImGui::GetStyle().ItemInnerSpacing.x); - open_popup |= ImGui::Button("Palette"); - if (open_popup) - { - ImGui::OpenPopup("mypicker"); - backup_color = color; - } - if (ImGui::BeginPopup("mypicker")) - { - ImGui::Text("MY CUSTOM COLOR PICKER WITH AN AMAZING PALETTE!"); - ImGui::Separator(); - ImGui::ColorPicker4("##picker", (float*)&color, misc_flags | ImGuiColorEditFlags_NoSidePreview | ImGuiColorEditFlags_NoSmallPreview); - ImGui::SameLine(); - - ImGui::BeginGroup(); // Lock X position - ImGui::Text("Current"); - ImGui::ColorButton("##current", color, ImGuiColorEditFlags_NoPicker | ImGuiColorEditFlags_AlphaPreviewHalf, ImVec2(60,40)); - ImGui::Text("Previous"); - if (ImGui::ColorButton("##previous", backup_color, ImGuiColorEditFlags_NoPicker | ImGuiColorEditFlags_AlphaPreviewHalf, ImVec2(60,40))) - color = backup_color; - ImGui::Separator(); - ImGui::Text("Palette"); - for (int n = 0; n < IM_ARRAYSIZE(saved_palette); n++) - { - ImGui::PushID(n); - if ((n % 8) != 0) - ImGui::SameLine(0.0f, ImGui::GetStyle().ItemSpacing.y); - if (ImGui::ColorButton("##palette", saved_palette[n], ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoPicker | ImGuiColorEditFlags_NoTooltip, ImVec2(20,20))) - color = ImVec4(saved_palette[n].x, saved_palette[n].y, saved_palette[n].z, color.w); // Preserve alpha! - - // Allow user to drop colors into each palette entry - // (Note that ColorButton is already a drag source by default, unless using ImGuiColorEditFlags_NoDragDrop) - if (ImGui::BeginDragDropTarget()) - { - if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload(IMGUI_PAYLOAD_TYPE_COLOR_3F)) - memcpy((float*)&saved_palette[n], payload->Data, sizeof(float) * 3); - if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload(IMGUI_PAYLOAD_TYPE_COLOR_4F)) - memcpy((float*)&saved_palette[n], payload->Data, sizeof(float) * 4); - ImGui::EndDragDropTarget(); - } - - ImGui::PopID(); - } - ImGui::EndGroup(); - ImGui::EndPopup(); - } - - ImGui::Text("Color button only:"); - static bool no_border = false; - ImGui::Checkbox("ImGuiColorEditFlags_NoBorder", &no_border); - ImGui::ColorButton("MyColor##3c", *(ImVec4*)&color, misc_flags | (no_border ? ImGuiColorEditFlags_NoBorder : 0), ImVec2(80,80)); - - ImGui::Text("Color picker:"); - static bool alpha = true; - static bool alpha_bar = true; - static bool side_preview = true; - static bool ref_color = false; - static ImVec4 ref_color_v(1.0f,0.0f,1.0f,0.5f); - static int display_mode = 0; - static int picker_mode = 0; - ImGui::Checkbox("With Alpha", &alpha); - ImGui::Checkbox("With Alpha Bar", &alpha_bar); - ImGui::Checkbox("With Side Preview", &side_preview); - if (side_preview) - { - ImGui::SameLine(); - ImGui::Checkbox("With Ref Color", &ref_color); - if (ref_color) - { - ImGui::SameLine(); - ImGui::ColorEdit4("##RefColor", &ref_color_v.x, ImGuiColorEditFlags_NoInputs | misc_flags); - } - } - ImGui::Combo("Display Mode", &display_mode, "Auto/Current\0None\0RGB Only\0HSV Only\0Hex Only\0"); - ImGui::SameLine(); HelpMarker("ColorEdit defaults to displaying RGB inputs if you don't specify a display mode, but the user can change it with a right-click.\n\nColorPicker defaults to displaying RGB+HSV+Hex if you don't specify a display mode.\n\nYou can change the defaults using SetColorEditOptions()."); - ImGui::Combo("Picker Mode", &picker_mode, "Auto/Current\0Hue bar + SV rect\0Hue wheel + SV triangle\0"); - ImGui::SameLine(); HelpMarker("User can right-click the picker to change mode."); - ImGuiColorEditFlags flags = misc_flags; - if (!alpha) flags |= ImGuiColorEditFlags_NoAlpha; // This is by default if you call ColorPicker3() instead of ColorPicker4() - if (alpha_bar) flags |= ImGuiColorEditFlags_AlphaBar; - if (!side_preview) flags |= ImGuiColorEditFlags_NoSidePreview; - if (picker_mode == 1) flags |= ImGuiColorEditFlags_PickerHueBar; - if (picker_mode == 2) flags |= ImGuiColorEditFlags_PickerHueWheel; - if (display_mode == 1) flags |= ImGuiColorEditFlags_NoInputs; // Disable all RGB/HSV/Hex displays - if (display_mode == 2) flags |= ImGuiColorEditFlags_DisplayRGB; // Override display mode - if (display_mode == 3) flags |= ImGuiColorEditFlags_DisplayHSV; - if (display_mode == 4) flags |= ImGuiColorEditFlags_DisplayHex; - ImGui::ColorPicker4("MyColor##4", (float*)&color, flags, ref_color ? &ref_color_v.x : NULL); - - ImGui::Text("Programmatically set defaults:"); - ImGui::SameLine(); HelpMarker("SetColorEditOptions() is designed to allow you to set boot-time default.\nWe don't have Push/Pop functions because you can force options on a per-widget basis if needed, and the user can change non-forced ones with the options menu.\nWe don't have a getter to avoid encouraging you to persistently save values that aren't forward-compatible."); - if (ImGui::Button("Default: Uint8 + HSV + Hue Bar")) - ImGui::SetColorEditOptions(ImGuiColorEditFlags_Uint8 | ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_PickerHueBar); - if (ImGui::Button("Default: Float + HDR + Hue Wheel")) - ImGui::SetColorEditOptions(ImGuiColorEditFlags_Float | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_PickerHueWheel); - - // HSV encoded support (to avoid RGB<>HSV round trips and singularities when S==0 or V==0) - static ImVec4 color_stored_as_hsv(0.23f, 1.0f, 1.0f, 1.0f); - ImGui::Spacing(); - ImGui::Text("HSV encoded colors"); - ImGui::SameLine(); HelpMarker("By default, colors are given to ColorEdit and ColorPicker in RGB, but ImGuiColorEditFlags_InputHSV allows you to store colors as HSV and pass them to ColorEdit and ColorPicker as HSV. This comes with the added benefit that you can manipulate hue values with the picker even when saturation or value are zero."); - ImGui::Text("Color widget with InputHSV:"); - ImGui::ColorEdit4("HSV shown as RGB##1", (float*)&color_stored_as_hsv, ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_InputHSV | ImGuiColorEditFlags_Float); - ImGui::ColorEdit4("HSV shown as HSV##1", (float*)&color_stored_as_hsv, ImGuiColorEditFlags_DisplayHSV | ImGuiColorEditFlags_InputHSV | ImGuiColorEditFlags_Float); - ImGui::DragFloat4("Raw HSV values", (float*)&color_stored_as_hsv, 0.01f, 0.0f, 1.0f); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Range Widgets")) - { - static float begin = 10, end = 90; - static int begin_i = 100, end_i = 1000; - ImGui::DragFloatRange2("range", &begin, &end, 0.25f, 0.0f, 100.0f, "Min: %.1f %%", "Max: %.1f %%"); - ImGui::DragIntRange2("range int (no bounds)", &begin_i, &end_i, 5, 0, 0, "Min: %d units", "Max: %d units"); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Data Types")) - { - // The DragScalar/InputScalar/SliderScalar functions allow various data types: signed/unsigned int/long long and float/double - // To avoid polluting the public API with all possible combinations, we use the ImGuiDataType enum to pass the type, - // and passing all arguments by address. - // This is the reason the test code below creates local variables to hold "zero" "one" etc. for each types. - // In practice, if you frequently use a given type that is not covered by the normal API entry points, you can wrap it - // yourself inside a 1 line function which can take typed argument as value instead of void*, and then pass their address - // to the generic function. For example: - // bool MySliderU64(const char *label, u64* value, u64 min = 0, u64 max = 0, const char* format = "%lld") - // { - // return SliderScalar(label, ImGuiDataType_U64, value, &min, &max, format); - // } - - // Limits (as helper variables that we can take the address of) - // Note that the SliderScalar function has a maximum usable range of half the natural type maximum, hence the /2 below. - #ifndef LLONG_MIN - ImS64 LLONG_MIN = -9223372036854775807LL - 1; - ImS64 LLONG_MAX = 9223372036854775807LL; - ImU64 ULLONG_MAX = (2ULL * 9223372036854775807LL + 1); - #endif - const char s8_zero = 0, s8_one = 1, s8_fifty = 50, s8_min = -128, s8_max = 127; - const ImU8 u8_zero = 0, u8_one = 1, u8_fifty = 50, u8_min = 0, u8_max = 255; - const short s16_zero = 0, s16_one = 1, s16_fifty = 50, s16_min = -32768, s16_max = 32767; - const ImU16 u16_zero = 0, u16_one = 1, u16_fifty = 50, u16_min = 0, u16_max = 65535; - const ImS32 s32_zero = 0, s32_one = 1, s32_fifty = 50, s32_min = INT_MIN/2, s32_max = INT_MAX/2, s32_hi_a = INT_MAX/2 - 100, s32_hi_b = INT_MAX/2; - const ImU32 u32_zero = 0, u32_one = 1, u32_fifty = 50, u32_min = 0, u32_max = UINT_MAX/2, u32_hi_a = UINT_MAX/2 - 100, u32_hi_b = UINT_MAX/2; - const ImS64 s64_zero = 0, s64_one = 1, s64_fifty = 50, s64_min = LLONG_MIN/2, s64_max = LLONG_MAX/2, s64_hi_a = LLONG_MAX/2 - 100, s64_hi_b = LLONG_MAX/2; - const ImU64 u64_zero = 0, u64_one = 1, u64_fifty = 50, u64_min = 0, u64_max = ULLONG_MAX/2, u64_hi_a = ULLONG_MAX/2 - 100, u64_hi_b = ULLONG_MAX/2; - const float f32_zero = 0.f, f32_one = 1.f, f32_lo_a = -10000000000.0f, f32_hi_a = +10000000000.0f; - const double f64_zero = 0., f64_one = 1., f64_lo_a = -1000000000000000.0, f64_hi_a = +1000000000000000.0; - - // State - static char s8_v = 127; - static ImU8 u8_v = 255; - static short s16_v = 32767; - static ImU16 u16_v = 65535; - static ImS32 s32_v = -1; - static ImU32 u32_v = (ImU32)-1; - static ImS64 s64_v = -1; - static ImU64 u64_v = (ImU64)-1; - static float f32_v = 0.123f; - static double f64_v = 90000.01234567890123456789; - - const float drag_speed = 0.2f; - static bool drag_clamp = false; - ImGui::Text("Drags:"); - ImGui::Checkbox("Clamp integers to 0..50", &drag_clamp); ImGui::SameLine(); HelpMarker("As with every widgets in dear imgui, we never modify values unless there is a user interaction.\nYou can override the clamping limits by using CTRL+Click to input a value."); - ImGui::DragScalar("drag s8", ImGuiDataType_S8, &s8_v, drag_speed, drag_clamp ? &s8_zero : NULL, drag_clamp ? &s8_fifty : NULL); - ImGui::DragScalar("drag u8", ImGuiDataType_U8, &u8_v, drag_speed, drag_clamp ? &u8_zero : NULL, drag_clamp ? &u8_fifty : NULL, "%u ms"); - ImGui::DragScalar("drag s16", ImGuiDataType_S16, &s16_v, drag_speed, drag_clamp ? &s16_zero : NULL, drag_clamp ? &s16_fifty : NULL); - ImGui::DragScalar("drag u16", ImGuiDataType_U16, &u16_v, drag_speed, drag_clamp ? &u16_zero : NULL, drag_clamp ? &u16_fifty : NULL, "%u ms"); - ImGui::DragScalar("drag s32", ImGuiDataType_S32, &s32_v, drag_speed, drag_clamp ? &s32_zero : NULL, drag_clamp ? &s32_fifty : NULL); - ImGui::DragScalar("drag u32", ImGuiDataType_U32, &u32_v, drag_speed, drag_clamp ? &u32_zero : NULL, drag_clamp ? &u32_fifty : NULL, "%u ms"); - ImGui::DragScalar("drag s64", ImGuiDataType_S64, &s64_v, drag_speed, drag_clamp ? &s64_zero : NULL, drag_clamp ? &s64_fifty : NULL); - ImGui::DragScalar("drag u64", ImGuiDataType_U64, &u64_v, drag_speed, drag_clamp ? &u64_zero : NULL, drag_clamp ? &u64_fifty : NULL); - ImGui::DragScalar("drag float", ImGuiDataType_Float, &f32_v, 0.005f, &f32_zero, &f32_one, "%f", 1.0f); - ImGui::DragScalar("drag float ^2", ImGuiDataType_Float, &f32_v, 0.005f, &f32_zero, &f32_one, "%f", 2.0f); ImGui::SameLine(); HelpMarker("You can use the 'power' parameter to increase tweaking precision on one side of the range."); - ImGui::DragScalar("drag double", ImGuiDataType_Double, &f64_v, 0.0005f, &f64_zero, NULL, "%.10f grams", 1.0f); - ImGui::DragScalar("drag double ^2", ImGuiDataType_Double, &f64_v, 0.0005f, &f64_zero, &f64_one, "0 < %.10f < 1", 2.0f); - - ImGui::Text("Sliders"); - ImGui::SliderScalar("slider s8 full", ImGuiDataType_S8, &s8_v, &s8_min, &s8_max, "%d"); - ImGui::SliderScalar("slider u8 full", ImGuiDataType_U8, &u8_v, &u8_min, &u8_max, "%u"); - ImGui::SliderScalar("slider s16 full", ImGuiDataType_S16, &s16_v, &s16_min, &s16_max, "%d"); - ImGui::SliderScalar("slider u16 full", ImGuiDataType_U16, &u16_v, &u16_min, &u16_max, "%u"); - ImGui::SliderScalar("slider s32 low", ImGuiDataType_S32, &s32_v, &s32_zero, &s32_fifty,"%d"); - ImGui::SliderScalar("slider s32 high", ImGuiDataType_S32, &s32_v, &s32_hi_a, &s32_hi_b, "%d"); - ImGui::SliderScalar("slider s32 full", ImGuiDataType_S32, &s32_v, &s32_min, &s32_max, "%d"); - ImGui::SliderScalar("slider u32 low", ImGuiDataType_U32, &u32_v, &u32_zero, &u32_fifty,"%u"); - ImGui::SliderScalar("slider u32 high", ImGuiDataType_U32, &u32_v, &u32_hi_a, &u32_hi_b, "%u"); - ImGui::SliderScalar("slider u32 full", ImGuiDataType_U32, &u32_v, &u32_min, &u32_max, "%u"); - ImGui::SliderScalar("slider s64 low", ImGuiDataType_S64, &s64_v, &s64_zero, &s64_fifty,"%I64d"); - ImGui::SliderScalar("slider s64 high", ImGuiDataType_S64, &s64_v, &s64_hi_a, &s64_hi_b, "%I64d"); - ImGui::SliderScalar("slider s64 full", ImGuiDataType_S64, &s64_v, &s64_min, &s64_max, "%I64d"); - ImGui::SliderScalar("slider u64 low", ImGuiDataType_U64, &u64_v, &u64_zero, &u64_fifty,"%I64u ms"); - ImGui::SliderScalar("slider u64 high", ImGuiDataType_U64, &u64_v, &u64_hi_a, &u64_hi_b, "%I64u ms"); - ImGui::SliderScalar("slider u64 full", ImGuiDataType_U64, &u64_v, &u64_min, &u64_max, "%I64u ms"); - ImGui::SliderScalar("slider float low", ImGuiDataType_Float, &f32_v, &f32_zero, &f32_one); - ImGui::SliderScalar("slider float low^2", ImGuiDataType_Float, &f32_v, &f32_zero, &f32_one, "%.10f", 2.0f); - ImGui::SliderScalar("slider float high", ImGuiDataType_Float, &f32_v, &f32_lo_a, &f32_hi_a, "%e"); - ImGui::SliderScalar("slider double low", ImGuiDataType_Double, &f64_v, &f64_zero, &f64_one, "%.10f grams", 1.0f); - ImGui::SliderScalar("slider double low^2",ImGuiDataType_Double, &f64_v, &f64_zero, &f64_one, "%.10f", 2.0f); - ImGui::SliderScalar("slider double high", ImGuiDataType_Double, &f64_v, &f64_lo_a, &f64_hi_a, "%e grams", 1.0f); - - static bool inputs_step = true; - ImGui::Text("Inputs"); - ImGui::Checkbox("Show step buttons", &inputs_step); - ImGui::InputScalar("input s8", ImGuiDataType_S8, &s8_v, inputs_step ? &s8_one : NULL, NULL, "%d"); - ImGui::InputScalar("input u8", ImGuiDataType_U8, &u8_v, inputs_step ? &u8_one : NULL, NULL, "%u"); - ImGui::InputScalar("input s16", ImGuiDataType_S16, &s16_v, inputs_step ? &s16_one : NULL, NULL, "%d"); - ImGui::InputScalar("input u16", ImGuiDataType_U16, &u16_v, inputs_step ? &u16_one : NULL, NULL, "%u"); - ImGui::InputScalar("input s32", ImGuiDataType_S32, &s32_v, inputs_step ? &s32_one : NULL, NULL, "%d"); - ImGui::InputScalar("input s32 hex", ImGuiDataType_S32, &s32_v, inputs_step ? &s32_one : NULL, NULL, "%08X", ImGuiInputTextFlags_CharsHexadecimal); - ImGui::InputScalar("input u32", ImGuiDataType_U32, &u32_v, inputs_step ? &u32_one : NULL, NULL, "%u"); - ImGui::InputScalar("input u32 hex", ImGuiDataType_U32, &u32_v, inputs_step ? &u32_one : NULL, NULL, "%08X", ImGuiInputTextFlags_CharsHexadecimal); - ImGui::InputScalar("input s64", ImGuiDataType_S64, &s64_v, inputs_step ? &s64_one : NULL); - ImGui::InputScalar("input u64", ImGuiDataType_U64, &u64_v, inputs_step ? &u64_one : NULL); - ImGui::InputScalar("input float", ImGuiDataType_Float, &f32_v, inputs_step ? &f32_one : NULL); - ImGui::InputScalar("input double", ImGuiDataType_Double, &f64_v, inputs_step ? &f64_one : NULL); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Multi-component Widgets")) - { - static float vec4f[4] = { 0.10f, 0.20f, 0.30f, 0.44f }; - static int vec4i[4] = { 1, 5, 100, 255 }; - - ImGui::InputFloat2("input float2", vec4f); - ImGui::DragFloat2("drag float2", vec4f, 0.01f, 0.0f, 1.0f); - ImGui::SliderFloat2("slider float2", vec4f, 0.0f, 1.0f); - ImGui::InputInt2("input int2", vec4i); - ImGui::DragInt2("drag int2", vec4i, 1, 0, 255); - ImGui::SliderInt2("slider int2", vec4i, 0, 255); - ImGui::Spacing(); - - ImGui::InputFloat3("input float3", vec4f); - ImGui::DragFloat3("drag float3", vec4f, 0.01f, 0.0f, 1.0f); - ImGui::SliderFloat3("slider float3", vec4f, 0.0f, 1.0f); - ImGui::InputInt3("input int3", vec4i); - ImGui::DragInt3("drag int3", vec4i, 1, 0, 255); - ImGui::SliderInt3("slider int3", vec4i, 0, 255); - ImGui::Spacing(); - - ImGui::InputFloat4("input float4", vec4f); - ImGui::DragFloat4("drag float4", vec4f, 0.01f, 0.0f, 1.0f); - ImGui::SliderFloat4("slider float4", vec4f, 0.0f, 1.0f); - ImGui::InputInt4("input int4", vec4i); - ImGui::DragInt4("drag int4", vec4i, 1, 0, 255); - ImGui::SliderInt4("slider int4", vec4i, 0, 255); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Vertical Sliders")) - { - const float spacing = 4; - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(spacing, spacing)); - - static int int_value = 0; - ImGui::VSliderInt("##int", ImVec2(18,160), &int_value, 0, 5); - ImGui::SameLine(); - - static float values[7] = { 0.0f, 0.60f, 0.35f, 0.9f, 0.70f, 0.20f, 0.0f }; - ImGui::PushID("set1"); - for (int i = 0; i < 7; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::PushID(i); - ImGui::PushStyleColor(ImGuiCol_FrameBg, (ImVec4)ImColor::HSV(i/7.0f, 0.5f, 0.5f)); - ImGui::PushStyleColor(ImGuiCol_FrameBgHovered, (ImVec4)ImColor::HSV(i/7.0f, 0.6f, 0.5f)); - ImGui::PushStyleColor(ImGuiCol_FrameBgActive, (ImVec4)ImColor::HSV(i/7.0f, 0.7f, 0.5f)); - ImGui::PushStyleColor(ImGuiCol_SliderGrab, (ImVec4)ImColor::HSV(i/7.0f, 0.9f, 0.9f)); - ImGui::VSliderFloat("##v", ImVec2(18,160), &values[i], 0.0f, 1.0f, ""); - if (ImGui::IsItemActive() || ImGui::IsItemHovered()) - ImGui::SetTooltip("%.3f", values[i]); - ImGui::PopStyleColor(4); - ImGui::PopID(); - } - ImGui::PopID(); - - ImGui::SameLine(); - ImGui::PushID("set2"); - static float values2[4] = { 0.20f, 0.80f, 0.40f, 0.25f }; - const int rows = 3; - const ImVec2 small_slider_size(18, (float)(int)((160.0f - (rows - 1) * spacing) / rows)); - for (int nx = 0; nx < 4; nx++) - { - if (nx > 0) ImGui::SameLine(); - ImGui::BeginGroup(); - for (int ny = 0; ny < rows; ny++) - { - ImGui::PushID(nx*rows+ny); - ImGui::VSliderFloat("##v", small_slider_size, &values2[nx], 0.0f, 1.0f, ""); - if (ImGui::IsItemActive() || ImGui::IsItemHovered()) - ImGui::SetTooltip("%.3f", values2[nx]); - ImGui::PopID(); - } - ImGui::EndGroup(); - } - ImGui::PopID(); - - ImGui::SameLine(); - ImGui::PushID("set3"); - for (int i = 0; i < 4; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::PushID(i); - ImGui::PushStyleVar(ImGuiStyleVar_GrabMinSize, 40); - ImGui::VSliderFloat("##v", ImVec2(40,160), &values[i], 0.0f, 1.0f, "%.2f\nsec"); - ImGui::PopStyleVar(); - ImGui::PopID(); - } - ImGui::PopID(); - ImGui::PopStyleVar(); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Drag and Drop")) - { - if (ImGui::TreeNode("Drag and drop in standard widgets")) - { - // ColorEdit widgets automatically act as drag source and drag target. - // They are using standardized payload strings IMGUI_PAYLOAD_TYPE_COLOR_3F and IMGUI_PAYLOAD_TYPE_COLOR_4F to allow your own widgets - // to use colors in their drag and drop interaction. Also see the demo in Color Picker -> Palette demo. - HelpMarker("You can drag from the colored squares."); - static float col1[3] = { 1.0f, 0.0f, 0.2f }; - static float col2[4] = { 0.4f, 0.7f, 0.0f, 0.5f }; - ImGui::ColorEdit3("color 1", col1); - ImGui::ColorEdit4("color 2", col2); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Drag and drop to copy/swap items")) - { - enum Mode - { - Mode_Copy, - Mode_Move, - Mode_Swap - }; - static int mode = 0; - if (ImGui::RadioButton("Copy", mode == Mode_Copy)) { mode = Mode_Copy; } ImGui::SameLine(); - if (ImGui::RadioButton("Move", mode == Mode_Move)) { mode = Mode_Move; } ImGui::SameLine(); - if (ImGui::RadioButton("Swap", mode == Mode_Swap)) { mode = Mode_Swap; } - static const char* names[9] = { "Bobby", "Beatrice", "Betty", "Brianna", "Barry", "Bernard", "Bibi", "Blaine", "Bryn" }; - for (int n = 0; n < IM_ARRAYSIZE(names); n++) - { - ImGui::PushID(n); - if ((n % 3) != 0) - ImGui::SameLine(); - ImGui::Button(names[n], ImVec2(60,60)); - - // Our buttons are both drag sources and drag targets here! - if (ImGui::BeginDragDropSource(ImGuiDragDropFlags_None)) - { - ImGui::SetDragDropPayload("DND_DEMO_CELL", &n, sizeof(int)); // Set payload to carry the index of our item (could be anything) - if (mode == Mode_Copy) { ImGui::Text("Copy %s", names[n]); } // Display preview (could be anything, e.g. when dragging an image we could decide to display the filename and a small preview of the image, etc.) - if (mode == Mode_Move) { ImGui::Text("Move %s", names[n]); } - if (mode == Mode_Swap) { ImGui::Text("Swap %s", names[n]); } - ImGui::EndDragDropSource(); - } - if (ImGui::BeginDragDropTarget()) - { - if (const ImGuiPayload* payload = ImGui::AcceptDragDropPayload("DND_DEMO_CELL")) - { - IM_ASSERT(payload->DataSize == sizeof(int)); - int payload_n = *(const int*)payload->Data; - if (mode == Mode_Copy) - { - names[n] = names[payload_n]; - } - if (mode == Mode_Move) - { - names[n] = names[payload_n]; - names[payload_n] = ""; - } - if (mode == Mode_Swap) - { - const char* tmp = names[n]; - names[n] = names[payload_n]; - names[payload_n] = tmp; - } - } - ImGui::EndDragDropTarget(); - } - ImGui::PopID(); - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Drag to reorder items (simple)")) - { - // Simple reordering - HelpMarker("We don't use the drag and drop api at all here! Instead we query when the item is held but not hovered, and order items accordingly."); - static const char* item_names[] = { "Item One", "Item Two", "Item Three", "Item Four", "Item Five" }; - for (int n = 0; n < IM_ARRAYSIZE(item_names); n++) - { - const char* item = item_names[n]; - ImGui::Selectable(item); - - if (ImGui::IsItemActive() && !ImGui::IsItemHovered()) - { - int n_next = n + (ImGui::GetMouseDragDelta(0).y < 0.f ? -1 : 1); - if (n_next >= 0 && n_next < IM_ARRAYSIZE(item_names)) - { - item_names[n] = item_names[n_next]; - item_names[n_next] = item; - ImGui::ResetMouseDragDelta(); - } - } - } - ImGui::TreePop(); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Querying Status (Active/Focused/Hovered etc.)")) - { - // Submit an item (various types available) so we can query their status in the following block. - static int item_type = 1; - ImGui::Combo("Item Type", &item_type, "Text\0Button\0Button (w/ repeat)\0Checkbox\0SliderFloat\0InputText\0InputFloat\0InputFloat3\0ColorEdit4\0MenuItem\0TreeNode\0TreeNode (w/ double-click)\0ListBox\0", 20); - ImGui::SameLine(); - HelpMarker("Testing how various types of items are interacting with the IsItemXXX functions."); - bool ret = false; - static bool b = false; - static float col4f[4] = { 1.0f, 0.5, 0.0f, 1.0f }; - static char str[16] = {}; - if (item_type == 0) { ImGui::Text("ITEM: Text"); } // Testing text items with no identifier/interaction - if (item_type == 1) { ret = ImGui::Button("ITEM: Button"); } // Testing button - if (item_type == 2) { ImGui::PushButtonRepeat(true); ret = ImGui::Button("ITEM: Button"); ImGui::PopButtonRepeat(); } // Testing button (with repeater) - if (item_type == 3) { ret = ImGui::Checkbox("ITEM: Checkbox", &b); } // Testing checkbox - if (item_type == 4) { ret = ImGui::SliderFloat("ITEM: SliderFloat", &col4f[0], 0.0f, 1.0f); } // Testing basic item - if (item_type == 5) { ret = ImGui::InputText("ITEM: InputText", &str[0], IM_ARRAYSIZE(str)); } // Testing input text (which handles tabbing) - if (item_type == 6) { ret = ImGui::InputFloat("ITEM: InputFloat", col4f, 1.0f); } // Testing +/- buttons on scalar input - if (item_type == 7) { ret = ImGui::InputFloat3("ITEM: InputFloat3", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) - if (item_type == 8) { ret = ImGui::ColorEdit4("ITEM: ColorEdit4", col4f); } // Testing multi-component items (IsItemXXX flags are reported merged) - if (item_type == 9) { ret = ImGui::MenuItem("ITEM: MenuItem"); } // Testing menu item (they use ImGuiButtonFlags_PressedOnRelease button policy) - if (item_type == 10){ ret = ImGui::TreeNode("ITEM: TreeNode"); if (ret) ImGui::TreePop(); } // Testing tree node - if (item_type == 11){ ret = ImGui::TreeNodeEx("ITEM: TreeNode w/ ImGuiTreeNodeFlags_OpenOnDoubleClick", ImGuiTreeNodeFlags_OpenOnDoubleClick | ImGuiTreeNodeFlags_NoTreePushOnOpen); } // Testing tree node with ImGuiButtonFlags_PressedOnDoubleClick button policy. - if (item_type == 12){ const char* items[] = { "Apple", "Banana", "Cherry", "Kiwi" }; static int current = 1; ret = ImGui::ListBox("ITEM: ListBox", ¤t, items, IM_ARRAYSIZE(items), IM_ARRAYSIZE(items)); } - - // Display the value of IsItemHovered() and other common item state functions. - // Note that the ImGuiHoveredFlags_XXX flags can be combined. - // Because BulletText is an item itself and that would affect the output of IsItemXXX functions, - // we query every state in a single call to avoid storing them and to simplify the code - ImGui::BulletText( - "Return value = %d\n" - "IsItemFocused() = %d\n" - "IsItemHovered() = %d\n" - "IsItemHovered(_AllowWhenBlockedByPopup) = %d\n" - "IsItemHovered(_AllowWhenBlockedByActiveItem) = %d\n" - "IsItemHovered(_AllowWhenOverlapped) = %d\n" - "IsItemHovered(_RectOnly) = %d\n" - "IsItemActive() = %d\n" - "IsItemEdited() = %d\n" - "IsItemActivated() = %d\n" - "IsItemDeactivated() = %d\n" - "IsItemDeactivatedAfterEdit() = %d\n" - "IsItemVisible() = %d\n" - "IsItemClicked() = %d\n" - "IsItemToggledOpen() = %d\n" - "GetItemRectMin() = (%.1f, %.1f)\n" - "GetItemRectMax() = (%.1f, %.1f)\n" - "GetItemRectSize() = (%.1f, %.1f)", - ret, - ImGui::IsItemFocused(), - ImGui::IsItemHovered(), - ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup), - ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem), - ImGui::IsItemHovered(ImGuiHoveredFlags_AllowWhenOverlapped), - ImGui::IsItemHovered(ImGuiHoveredFlags_RectOnly), - ImGui::IsItemActive(), - ImGui::IsItemEdited(), - ImGui::IsItemActivated(), - ImGui::IsItemDeactivated(), - ImGui::IsItemDeactivatedAfterEdit(), - ImGui::IsItemVisible(), - ImGui::IsItemClicked(), - ImGui::IsItemToggledOpen(), - ImGui::GetItemRectMin().x, ImGui::GetItemRectMin().y, - ImGui::GetItemRectMax().x, ImGui::GetItemRectMax().y, - ImGui::GetItemRectSize().x, ImGui::GetItemRectSize().y - ); - - static bool embed_all_inside_a_child_window = false; - ImGui::Checkbox("Embed everything inside a child window (for additional testing)", &embed_all_inside_a_child_window); - if (embed_all_inside_a_child_window) - ImGui::BeginChild("outer_child", ImVec2(0, ImGui::GetFontSize() * 20), true); - - // Testing IsWindowFocused() function with its various flags. - // Note that the ImGuiFocusedFlags_XXX flags can be combined. - ImGui::BulletText( - "IsWindowFocused() = %d\n" - "IsWindowFocused(_ChildWindows) = %d\n" - "IsWindowFocused(_ChildWindows|_RootWindow) = %d\n" - "IsWindowFocused(_RootWindow) = %d\n" - "IsWindowFocused(_AnyWindow) = %d\n", - ImGui::IsWindowFocused(), - ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows), - ImGui::IsWindowFocused(ImGuiFocusedFlags_ChildWindows | ImGuiFocusedFlags_RootWindow), - ImGui::IsWindowFocused(ImGuiFocusedFlags_RootWindow), - ImGui::IsWindowFocused(ImGuiFocusedFlags_AnyWindow)); - - // Testing IsWindowHovered() function with its various flags. - // Note that the ImGuiHoveredFlags_XXX flags can be combined. - ImGui::BulletText( - "IsWindowHovered() = %d\n" - "IsWindowHovered(_AllowWhenBlockedByPopup) = %d\n" - "IsWindowHovered(_AllowWhenBlockedByActiveItem) = %d\n" - "IsWindowHovered(_ChildWindows) = %d\n" - "IsWindowHovered(_ChildWindows|_RootWindow) = %d\n" - "IsWindowHovered(_ChildWindows|_AllowWhenBlockedByPopup) = %d\n" - "IsWindowHovered(_RootWindow) = %d\n" - "IsWindowHovered(_AnyWindow) = %d\n", - ImGui::IsWindowHovered(), - ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup), - ImGui::IsWindowHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem), - ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows), - ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_RootWindow), - ImGui::IsWindowHovered(ImGuiHoveredFlags_ChildWindows | ImGuiHoveredFlags_AllowWhenBlockedByPopup), - ImGui::IsWindowHovered(ImGuiHoveredFlags_RootWindow), - ImGui::IsWindowHovered(ImGuiHoveredFlags_AnyWindow)); - - ImGui::BeginChild("child", ImVec2(0, 50), true); - ImGui::Text("This is another child window for testing the _ChildWindows flag."); - ImGui::EndChild(); - if (embed_all_inside_a_child_window) - ImGui::EndChild(); - - static char dummy_str[] = "This is a dummy field to be able to tab-out of the widgets above."; - ImGui::InputText("dummy", dummy_str, IM_ARRAYSIZE(dummy_str), ImGuiInputTextFlags_ReadOnly); - - // Calling IsItemHovered() after begin returns the hovered status of the title bar. - // This is useful in particular if you want to create a context menu (with BeginPopupContextItem) associated to the title bar of a window. - static bool test_window = false; - ImGui::Checkbox("Hovered/Active tests after Begin() for title bar testing", &test_window); - if (test_window) - { - ImGui::Begin("Title bar Hovered/Active tests", &test_window); - if (ImGui::BeginPopupContextItem()) // <-- This is using IsItemHovered() - { - if (ImGui::MenuItem("Close")) { test_window = false; } - ImGui::EndPopup(); - } - ImGui::Text( - "IsItemHovered() after begin = %d (== is title bar hovered)\n" - "IsItemActive() after begin = %d (== is window being clicked/moved)\n", - ImGui::IsItemHovered(), ImGui::IsItemActive()); - ImGui::End(); - } - - ImGui::TreePop(); - } -} - -static void ShowDemoWindowLayout() -{ - if (!ImGui::CollapsingHeader("Layout")) - return; - - if (ImGui::TreeNode("Child windows")) - { - HelpMarker("Use child windows to begin into a self-contained independent scrolling/clipping regions within a host window."); - static bool disable_mouse_wheel = false; - static bool disable_menu = false; - ImGui::Checkbox("Disable Mouse Wheel", &disable_mouse_wheel); - ImGui::Checkbox("Disable Menu", &disable_menu); - - static int line = 50; - bool goto_line = ImGui::Button("Goto"); - ImGui::SameLine(); - ImGui::SetNextItemWidth(100); - goto_line |= ImGui::InputInt("##Line", &line, 0, 0, ImGuiInputTextFlags_EnterReturnsTrue); - - // Child 1: no border, enable horizontal scrollbar - { - ImGuiWindowFlags window_flags = ImGuiWindowFlags_HorizontalScrollbar | (disable_mouse_wheel ? ImGuiWindowFlags_NoScrollWithMouse : 0); - ImGui::BeginChild("ChildL", ImVec2(ImGui::GetWindowContentRegionWidth() * 0.5f, 260), false, window_flags); - for (int i = 0; i < 100; i++) - { - ImGui::Text("%04d: scrollable region", i); - if (goto_line && line == i) - ImGui::SetScrollHereY(); - } - if (goto_line && line >= 100) - ImGui::SetScrollHereY(); - ImGui::EndChild(); - } - - ImGui::SameLine(); - - // Child 2: rounded border - { - ImGuiWindowFlags window_flags = (disable_mouse_wheel ? ImGuiWindowFlags_NoScrollWithMouse : 0) | (disable_menu ? 0 : ImGuiWindowFlags_MenuBar); - ImGui::PushStyleVar(ImGuiStyleVar_ChildRounding, 5.0f); - ImGui::BeginChild("ChildR", ImVec2(0, 260), true, window_flags); - if (!disable_menu && ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("Menu")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); - } - ImGui::Columns(2); - for (int i = 0; i < 100; i++) - { - char buf[32]; - sprintf(buf, "%03d", i); - ImGui::Button(buf, ImVec2(-FLT_MIN, 0.0f)); - ImGui::NextColumn(); - } - ImGui::EndChild(); - ImGui::PopStyleVar(); - } - - ImGui::Separator(); - - // Demonstrate a few extra things - // - Changing ImGuiCol_ChildBg (which is transparent black in default styles) - // - Using SetCursorPos() to position the child window (because the child window is an item from the POV of the parent window) - // You can also call SetNextWindowPos() to position the child window. The parent window will effectively layout from this position. - // - Using ImGui::GetItemRectMin/Max() to query the "item" state (because the child window is an item from the POV of the parent window) - // See "Widgets" -> "Querying Status (Active/Focused/Hovered etc.)" section for more details about this. - { - ImGui::SetCursorPosX(ImGui::GetCursorPosX() + 10); - ImGui::PushStyleColor(ImGuiCol_ChildBg, IM_COL32(255, 0, 0, 100)); - ImGui::BeginChild("Red", ImVec2(200, 100), true, ImGuiWindowFlags_None); - for (int n = 0; n < 50; n++) - ImGui::Text("Some test %d", n); - ImGui::EndChild(); - ImVec2 child_rect_min = ImGui::GetItemRectMin(); - ImVec2 child_rect_max = ImGui::GetItemRectMax(); - ImGui::PopStyleColor(); - ImGui::Text("Rect of child window is: (%.0f,%.0f) (%.0f,%.0f)", child_rect_min.x, child_rect_min.y, child_rect_max.x, child_rect_max.y); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Widgets Width")) - { - // Use SetNextItemWidth() to set the width of a single upcoming item. - // Use PushItemWidth()/PopItemWidth() to set the width of a group of items. - static float f = 0.0f; - ImGui::Text("SetNextItemWidth/PushItemWidth(100)"); - ImGui::SameLine(); HelpMarker("Fixed width."); - ImGui::SetNextItemWidth(100); - ImGui::DragFloat("float##1", &f); - - ImGui::Text("SetNextItemWidth/PushItemWidth(GetWindowWidth() * 0.5f)"); - ImGui::SameLine(); HelpMarker("Half of window width."); - ImGui::SetNextItemWidth(ImGui::GetWindowWidth() * 0.5f); - ImGui::DragFloat("float##2", &f); - - ImGui::Text("SetNextItemWidth/PushItemWidth(GetContentRegionAvail().x * 0.5f)"); - ImGui::SameLine(); HelpMarker("Half of available width.\n(~ right-cursor_pos)\n(works within a column set)"); - ImGui::SetNextItemWidth(ImGui::GetContentRegionAvail().x * 0.5f); - ImGui::DragFloat("float##3", &f); - - ImGui::Text("SetNextItemWidth/PushItemWidth(-100)"); - ImGui::SameLine(); HelpMarker("Align to right edge minus 100"); - ImGui::SetNextItemWidth(-100); - ImGui::DragFloat("float##4", &f); - - // Demonstrate using PushItemWidth to surround three items. Calling SetNextItemWidth() before each of them would have the same effect. - ImGui::Text("SetNextItemWidth/PushItemWidth(-1)"); - ImGui::SameLine(); HelpMarker("Align to right edge"); - ImGui::PushItemWidth(-1); - ImGui::DragFloat("##float5a", &f); - ImGui::DragFloat("##float5b", &f); - ImGui::DragFloat("##float5c", &f); - ImGui::PopItemWidth(); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Basic Horizontal Layout")) - { - ImGui::TextWrapped("(Use ImGui::SameLine() to keep adding items to the right of the preceding item)"); - - // Text - ImGui::Text("Two items: Hello"); ImGui::SameLine(); - ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); - - // Adjust spacing - ImGui::Text("More spacing: Hello"); ImGui::SameLine(0, 20); - ImGui::TextColored(ImVec4(1,1,0,1), "Sailor"); - - // Button - ImGui::AlignTextToFramePadding(); - ImGui::Text("Normal buttons"); ImGui::SameLine(); - ImGui::Button("Banana"); ImGui::SameLine(); - ImGui::Button("Apple"); ImGui::SameLine(); - ImGui::Button("Corniflower"); - - // Button - ImGui::Text("Small buttons"); ImGui::SameLine(); - ImGui::SmallButton("Like this one"); ImGui::SameLine(); - ImGui::Text("can fit within a text block."); - - // Aligned to arbitrary position. Easy/cheap column. - ImGui::Text("Aligned"); - ImGui::SameLine(150); ImGui::Text("x=150"); - ImGui::SameLine(300); ImGui::Text("x=300"); - ImGui::Text("Aligned"); - ImGui::SameLine(150); ImGui::SmallButton("x=150"); - ImGui::SameLine(300); ImGui::SmallButton("x=300"); - - // Checkbox - static bool c1 = false, c2 = false, c3 = false, c4 = false; - ImGui::Checkbox("My", &c1); ImGui::SameLine(); - ImGui::Checkbox("Tailor", &c2); ImGui::SameLine(); - ImGui::Checkbox("Is", &c3); ImGui::SameLine(); - ImGui::Checkbox("Rich", &c4); - - // Various - static float f0 = 1.0f, f1 = 2.0f, f2 = 3.0f; - ImGui::PushItemWidth(80); - const char* items[] = { "AAAA", "BBBB", "CCCC", "DDDD" }; - static int item = -1; - ImGui::Combo("Combo", &item, items, IM_ARRAYSIZE(items)); ImGui::SameLine(); - ImGui::SliderFloat("X", &f0, 0.0f, 5.0f); ImGui::SameLine(); - ImGui::SliderFloat("Y", &f1, 0.0f, 5.0f); ImGui::SameLine(); - ImGui::SliderFloat("Z", &f2, 0.0f, 5.0f); - ImGui::PopItemWidth(); - - ImGui::PushItemWidth(80); - ImGui::Text("Lists:"); - static int selection[4] = { 0, 1, 2, 3 }; - for (int i = 0; i < 4; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::PushID(i); - ImGui::ListBox("", &selection[i], items, IM_ARRAYSIZE(items)); - ImGui::PopID(); - //if (ImGui::IsItemHovered()) ImGui::SetTooltip("ListBox %d hovered", i); - } - ImGui::PopItemWidth(); - - // Dummy - ImVec2 button_sz(40, 40); - ImGui::Button("A", button_sz); ImGui::SameLine(); - ImGui::Dummy(button_sz); ImGui::SameLine(); - ImGui::Button("B", button_sz); - - // Manually wrapping (we should eventually provide this as an automatic layout feature, but for now you can do it manually) - ImGui::Text("Manually wrapping:"); - ImGuiStyle& style = ImGui::GetStyle(); - int buttons_count = 20; - float window_visible_x2 = ImGui::GetWindowPos().x + ImGui::GetWindowContentRegionMax().x; - for (int n = 0; n < buttons_count; n++) - { - ImGui::PushID(n); - ImGui::Button("Box", button_sz); - float last_button_x2 = ImGui::GetItemRectMax().x; - float next_button_x2 = last_button_x2 + style.ItemSpacing.x + button_sz.x; // Expected position if next button was on same line - if (n + 1 < buttons_count && next_button_x2 < window_visible_x2) - ImGui::SameLine(); - ImGui::PopID(); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Tabs")) - { - if (ImGui::TreeNode("Basic")) - { - ImGuiTabBarFlags tab_bar_flags = ImGuiTabBarFlags_None; - if (ImGui::BeginTabBar("MyTabBar", tab_bar_flags)) - { - if (ImGui::BeginTabItem("Avocado")) - { - ImGui::Text("This is the Avocado tab!\nblah blah blah blah blah"); - ImGui::EndTabItem(); - } - if (ImGui::BeginTabItem("Broccoli")) - { - ImGui::Text("This is the Broccoli tab!\nblah blah blah blah blah"); - ImGui::EndTabItem(); - } - if (ImGui::BeginTabItem("Cucumber")) - { - ImGui::Text("This is the Cucumber tab!\nblah blah blah blah blah"); - ImGui::EndTabItem(); - } - ImGui::EndTabBar(); - } - ImGui::Separator(); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Advanced & Close Button")) - { - // Expose a couple of the available flags. In most cases you may just call BeginTabBar() with no flags (0). - static ImGuiTabBarFlags tab_bar_flags = ImGuiTabBarFlags_Reorderable; - ImGui::CheckboxFlags("ImGuiTabBarFlags_Reorderable", (unsigned int*)&tab_bar_flags, ImGuiTabBarFlags_Reorderable); - ImGui::CheckboxFlags("ImGuiTabBarFlags_AutoSelectNewTabs", (unsigned int*)&tab_bar_flags, ImGuiTabBarFlags_AutoSelectNewTabs); - ImGui::CheckboxFlags("ImGuiTabBarFlags_TabListPopupButton", (unsigned int*)&tab_bar_flags, ImGuiTabBarFlags_TabListPopupButton); - ImGui::CheckboxFlags("ImGuiTabBarFlags_NoCloseWithMiddleMouseButton", (unsigned int*)&tab_bar_flags, ImGuiTabBarFlags_NoCloseWithMiddleMouseButton); - if ((tab_bar_flags & ImGuiTabBarFlags_FittingPolicyMask_) == 0) - tab_bar_flags |= ImGuiTabBarFlags_FittingPolicyDefault_; - if (ImGui::CheckboxFlags("ImGuiTabBarFlags_FittingPolicyResizeDown", (unsigned int*)&tab_bar_flags, ImGuiTabBarFlags_FittingPolicyResizeDown)) - tab_bar_flags &= ~(ImGuiTabBarFlags_FittingPolicyMask_ ^ ImGuiTabBarFlags_FittingPolicyResizeDown); - if (ImGui::CheckboxFlags("ImGuiTabBarFlags_FittingPolicyScroll", (unsigned int*)&tab_bar_flags, ImGuiTabBarFlags_FittingPolicyScroll)) - tab_bar_flags &= ~(ImGuiTabBarFlags_FittingPolicyMask_ ^ ImGuiTabBarFlags_FittingPolicyScroll); - - // Tab Bar - const char* names[4] = { "Artichoke", "Beetroot", "Celery", "Daikon" }; - static bool opened[4] = { true, true, true, true }; // Persistent user state - for (int n = 0; n < IM_ARRAYSIZE(opened); n++) - { - if (n > 0) { ImGui::SameLine(); } - ImGui::Checkbox(names[n], &opened[n]); - } - - // Passing a bool* to BeginTabItem() is similar to passing one to Begin(): the underlying bool will be set to false when the tab is closed. - if (ImGui::BeginTabBar("MyTabBar", tab_bar_flags)) - { - for (int n = 0; n < IM_ARRAYSIZE(opened); n++) - if (opened[n] && ImGui::BeginTabItem(names[n], &opened[n], ImGuiTabItemFlags_None)) - { - ImGui::Text("This is the %s tab!", names[n]); - if (n & 1) - ImGui::Text("I am an odd tab."); - ImGui::EndTabItem(); - } - ImGui::EndTabBar(); - } - ImGui::Separator(); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Groups")) - { - HelpMarker("BeginGroup() basically locks the horizontal position for new line. EndGroup() bundles the whole group so that you can use \"item\" functions such as IsItemHovered()/IsItemActive() or SameLine() etc. on the whole group."); - ImGui::BeginGroup(); - { - ImGui::BeginGroup(); - ImGui::Button("AAA"); - ImGui::SameLine(); - ImGui::Button("BBB"); - ImGui::SameLine(); - ImGui::BeginGroup(); - ImGui::Button("CCC"); - ImGui::Button("DDD"); - ImGui::EndGroup(); - ImGui::SameLine(); - ImGui::Button("EEE"); - ImGui::EndGroup(); - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("First group hovered"); - } - // Capture the group size and create widgets using the same size - ImVec2 size = ImGui::GetItemRectSize(); - const float values[5] = { 0.5f, 0.20f, 0.80f, 0.60f, 0.25f }; - ImGui::PlotHistogram("##values", values, IM_ARRAYSIZE(values), 0, NULL, 0.0f, 1.0f, size); - - ImGui::Button("ACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f, size.y)); - ImGui::SameLine(); - ImGui::Button("REACTION", ImVec2((size.x - ImGui::GetStyle().ItemSpacing.x)*0.5f, size.y)); - ImGui::EndGroup(); - ImGui::SameLine(); - - ImGui::Button("LEVERAGE\nBUZZWORD", size); - ImGui::SameLine(); - - if (ImGui::ListBoxHeader("List", size)) - { - ImGui::Selectable("Selected", true); - ImGui::Selectable("Not Selected", false); - ImGui::ListBoxFooter(); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Text Baseline Alignment")) - { - { - ImGui::BulletText("Text baseline:"); - ImGui::SameLine(); - HelpMarker("This is testing the vertical alignment that gets applied on text to keep it aligned with widgets. Lines only composed of text or \"small\" widgets fit in less vertical spaces than lines with normal widgets."); - ImGui::Indent(); - - ImGui::Text("KO Blahblah"); ImGui::SameLine(); - ImGui::Button("Some framed item"); ImGui::SameLine(); - HelpMarker("Baseline of button will look misaligned with text.."); - - // If your line starts with text, call AlignTextToFramePadding() to align text to upcoming widgets. - // Because we don't know what's coming after the Text() statement, we need to move the text baseline down by FramePadding.y - ImGui::AlignTextToFramePadding(); - ImGui::Text("OK Blahblah"); ImGui::SameLine(); - ImGui::Button("Some framed item"); ImGui::SameLine(); - HelpMarker("We call AlignTextToFramePadding() to vertically align the text baseline by +FramePadding.y"); - - // SmallButton() uses the same vertical padding as Text - ImGui::Button("TEST##1"); ImGui::SameLine(); - ImGui::Text("TEST"); ImGui::SameLine(); - ImGui::SmallButton("TEST##2"); - - // If your line starts with text, call AlignTextToFramePadding() to align text to upcoming widgets. - ImGui::AlignTextToFramePadding(); - ImGui::Text("Text aligned to framed item"); ImGui::SameLine(); - ImGui::Button("Item##1"); ImGui::SameLine(); - ImGui::Text("Item"); ImGui::SameLine(); - ImGui::SmallButton("Item##2"); ImGui::SameLine(); - ImGui::Button("Item##3"); - - ImGui::Unindent(); - } - - ImGui::Spacing(); - - { - ImGui::BulletText("Multi-line text:"); - ImGui::Indent(); - ImGui::Text("One\nTwo\nThree"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("Banana"); - - ImGui::Text("Banana"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("One\nTwo\nThree"); - - ImGui::Button("HOP##1"); ImGui::SameLine(); - ImGui::Text("Banana"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("Banana"); - - ImGui::Button("HOP##2"); ImGui::SameLine(); - ImGui::Text("Hello\nWorld"); ImGui::SameLine(); - ImGui::Text("Banana"); - ImGui::Unindent(); - } - - ImGui::Spacing(); - - { - ImGui::BulletText("Misc items:"); - ImGui::Indent(); - - // SmallButton() sets FramePadding to zero. Text baseline is aligned to match baseline of previous Button - ImGui::Button("80x80", ImVec2(80, 80)); - ImGui::SameLine(); - ImGui::Button("50x50", ImVec2(50, 50)); - ImGui::SameLine(); - ImGui::Button("Button()"); - ImGui::SameLine(); - ImGui::SmallButton("SmallButton()"); - - // Tree - const float spacing = ImGui::GetStyle().ItemInnerSpacing.x; - ImGui::Button("Button##1"); - ImGui::SameLine(0.0f, spacing); - if (ImGui::TreeNode("Node##1")) { for (int i = 0; i < 6; i++) ImGui::BulletText("Item %d..", i); ImGui::TreePop(); } // Dummy tree data - - ImGui::AlignTextToFramePadding(); // Vertically align text node a bit lower so it'll be vertically centered with upcoming widget. Otherwise you can use SmallButton (smaller fit). - bool node_open = ImGui::TreeNode("Node##2");// Common mistake to avoid: if we want to SameLine after TreeNode we need to do it before we add child content. - ImGui::SameLine(0.0f, spacing); ImGui::Button("Button##2"); - if (node_open) { for (int i = 0; i < 6; i++) ImGui::BulletText("Item %d..", i); ImGui::TreePop(); } // Dummy tree data - - // Bullet - ImGui::Button("Button##3"); - ImGui::SameLine(0.0f, spacing); - ImGui::BulletText("Bullet text"); - - ImGui::AlignTextToFramePadding(); - ImGui::BulletText("Node"); - ImGui::SameLine(0.0f, spacing); ImGui::Button("Button##4"); - ImGui::Unindent(); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Scrolling")) - { - // Vertical scroll functions - HelpMarker("Use SetScrollHereY() or SetScrollFromPosY() to scroll to a given vertical position."); - - static int track_item = 50; - static bool enable_track = true; - static bool enable_extra_decorations = false; - static float scroll_to_off_px = 0.0f; - static float scroll_to_pos_px = 200.0f; - - ImGui::Checkbox("Decoration", &enable_extra_decorations); - ImGui::SameLine(); - HelpMarker("We expose this for testing because scrolling sometimes had issues with window decoration such as menu-bars."); - - ImGui::Checkbox("Track", &enable_track); - ImGui::PushItemWidth(100); - ImGui::SameLine(140); enable_track |= ImGui::DragInt("##item", &track_item, 0.25f, 0, 99, "Item = %d"); - - bool scroll_to_off = ImGui::Button("Scroll Offset"); - ImGui::SameLine(140); scroll_to_off |= ImGui::DragFloat("##off", &scroll_to_off_px, 1.00f, 0, FLT_MAX, "+%.0f px"); - - bool scroll_to_pos = ImGui::Button("Scroll To Pos"); - ImGui::SameLine(140); scroll_to_pos |= ImGui::DragFloat("##pos", &scroll_to_pos_px, 1.00f, -10, FLT_MAX, "X/Y = %.0f px"); - ImGui::PopItemWidth(); - - if (scroll_to_off || scroll_to_pos) - enable_track = false; - - ImGuiStyle& style = ImGui::GetStyle(); - float child_w = (ImGui::GetContentRegionAvail().x - 4 * style.ItemSpacing.x) / 5; - if (child_w < 1.0f) - child_w = 1.0f; - ImGui::PushID("##VerticalScrolling"); - for (int i = 0; i < 5; i++) - { - if (i > 0) ImGui::SameLine(); - ImGui::BeginGroup(); - const char* names[] = { "Top", "25%", "Center", "75%", "Bottom" }; - ImGui::TextUnformatted(names[i]); - - ImGuiWindowFlags child_flags = enable_extra_decorations ? ImGuiWindowFlags_MenuBar : 0; - bool window_visible = ImGui::BeginChild(ImGui::GetID((void*)(intptr_t)i), ImVec2(child_w, 200.0f), true, child_flags); - if (ImGui::BeginMenuBar()) - { - ImGui::TextUnformatted("abc"); - ImGui::EndMenuBar(); - } - if (scroll_to_off) - ImGui::SetScrollY(scroll_to_off_px); - if (scroll_to_pos) - ImGui::SetScrollFromPosY(ImGui::GetCursorStartPos().y + scroll_to_pos_px, i * 0.25f); - if (window_visible) // Avoid calling SetScrollHereY when running with culled items - { - for (int item = 0; item < 100; item++) - { - if (enable_track && item == track_item) - { - ImGui::TextColored(ImVec4(1, 1, 0, 1), "Item %d", item); - ImGui::SetScrollHereY(i * 0.25f); // 0.0f:top, 0.5f:center, 1.0f:bottom - } - else - { - ImGui::Text("Item %d", item); - } - } - } - float scroll_y = ImGui::GetScrollY(); - float scroll_max_y = ImGui::GetScrollMaxY(); - ImGui::EndChild(); - ImGui::Text("%.0f/%.0f", scroll_y, scroll_max_y); - ImGui::EndGroup(); - } - ImGui::PopID(); - - // Horizontal scroll functions - ImGui::Spacing(); - HelpMarker("Use SetScrollHereX() or SetScrollFromPosX() to scroll to a given horizontal position.\n\nUsing the \"Scroll To Pos\" button above will make the discontinuity at edges visible: scrolling to the top/bottom/left/right-most item will add an additional WindowPadding to reflect on reaching the edge of the list.\n\nBecause the clipping rectangle of most window hides half worth of WindowPadding on the left/right, using SetScrollFromPosX(+1) will usually result in clipped text whereas the equivalent SetScrollFromPosY(+1) wouldn't."); - ImGui::PushID("##HorizontalScrolling"); - for (int i = 0; i < 5; i++) - { - float child_height = ImGui::GetTextLineHeight() + style.ScrollbarSize + style.WindowPadding.y * 2.0f; - ImGuiWindowFlags child_flags = ImGuiWindowFlags_HorizontalScrollbar | (enable_extra_decorations ? ImGuiWindowFlags_AlwaysVerticalScrollbar : 0); - bool window_visible = ImGui::BeginChild(ImGui::GetID((void*)(intptr_t)i), ImVec2(-100, child_height), true, child_flags); - if (scroll_to_off) - ImGui::SetScrollX(scroll_to_off_px); - if (scroll_to_pos) - ImGui::SetScrollFromPosX(ImGui::GetCursorStartPos().x + scroll_to_pos_px, i * 0.25f); - if (window_visible) // Avoid calling SetScrollHereY when running with culled items - { - for (int item = 0; item < 100; item++) - { - if (enable_track && item == track_item) - { - ImGui::TextColored(ImVec4(1, 1, 0, 1), "Item %d", item); - ImGui::SetScrollHereX(i * 0.25f); // 0.0f:left, 0.5f:center, 1.0f:right - } - else - { - ImGui::Text("Item %d", item); - } - ImGui::SameLine(); - } - } - float scroll_x = ImGui::GetScrollX(); - float scroll_max_x = ImGui::GetScrollMaxX(); - ImGui::EndChild(); - ImGui::SameLine(); - const char* names[] = { "Left", "25%", "Center", "75%", "Right" }; - ImGui::Text("%s\n%.0f/%.0f", names[i], scroll_x, scroll_max_x); - ImGui::Spacing(); - } - ImGui::PopID(); - - // Miscellaneous Horizontal Scrolling Demo - HelpMarker("Horizontal scrolling for a window has to be enabled explicitly via the ImGuiWindowFlags_HorizontalScrollbar flag.\n\nYou may want to explicitly specify content width by calling SetNextWindowContentWidth() before Begin()."); - static int lines = 7; - ImGui::SliderInt("Lines", &lines, 1, 15); - ImGui::PushStyleVar(ImGuiStyleVar_FrameRounding, 3.0f); - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2.0f, 1.0f)); - ImGui::BeginChild("scrolling", ImVec2(0, ImGui::GetFrameHeightWithSpacing() * 7 + 30), true, ImGuiWindowFlags_HorizontalScrollbar); - for (int line = 0; line < lines; line++) - { - // Display random stuff (for the sake of this trivial demo we are using basic Button+SameLine. If you want to create your own time line for a real application you may be better off - // manipulating the cursor position yourself, aka using SetCursorPos/SetCursorScreenPos to position the widgets yourself. You may also want to use the lower-level ImDrawList API) - int num_buttons = 10 + ((line & 1) ? line * 9 : line * 3); - for (int n = 0; n < num_buttons; n++) - { - if (n > 0) ImGui::SameLine(); - ImGui::PushID(n + line * 1000); - char num_buf[16]; - sprintf(num_buf, "%d", n); - const char* label = (!(n%15)) ? "FizzBuzz" : (!(n%3)) ? "Fizz" : (!(n%5)) ? "Buzz" : num_buf; - float hue = n*0.05f; - ImGui::PushStyleColor(ImGuiCol_Button, (ImVec4)ImColor::HSV(hue, 0.6f, 0.6f)); - ImGui::PushStyleColor(ImGuiCol_ButtonHovered, (ImVec4)ImColor::HSV(hue, 0.7f, 0.7f)); - ImGui::PushStyleColor(ImGuiCol_ButtonActive, (ImVec4)ImColor::HSV(hue, 0.8f, 0.8f)); - ImGui::Button(label, ImVec2(40.0f + sinf((float)(line + n)) * 20.0f, 0.0f)); - ImGui::PopStyleColor(3); - ImGui::PopID(); - } - } - float scroll_x = ImGui::GetScrollX(); - float scroll_max_x = ImGui::GetScrollMaxX(); - ImGui::EndChild(); - ImGui::PopStyleVar(2); - float scroll_x_delta = 0.0f; - ImGui::SmallButton("<<"); if (ImGui::IsItemActive()) { scroll_x_delta = -ImGui::GetIO().DeltaTime * 1000.0f; } ImGui::SameLine(); - ImGui::Text("Scroll from code"); ImGui::SameLine(); - ImGui::SmallButton(">>"); if (ImGui::IsItemActive()) { scroll_x_delta = +ImGui::GetIO().DeltaTime * 1000.0f; } ImGui::SameLine(); - ImGui::Text("%.0f/%.0f", scroll_x, scroll_max_x); - if (scroll_x_delta != 0.0f) - { - ImGui::BeginChild("scrolling"); // Demonstrate a trick: you can use Begin to set yourself in the context of another window (here we are already out of your child window) - ImGui::SetScrollX(ImGui::GetScrollX() + scroll_x_delta); - ImGui::EndChild(); - } - ImGui::Spacing(); - - static bool show_horizontal_contents_size_demo_window = false; - ImGui::Checkbox("Show Horizontal contents size demo window", &show_horizontal_contents_size_demo_window); - - if (show_horizontal_contents_size_demo_window) - { - static bool show_h_scrollbar = true; - static bool show_button = true; - static bool show_tree_nodes = true; - static bool show_text_wrapped = false; - static bool show_columns = true; - static bool show_tab_bar = true; - static bool show_child = false; - static bool explicit_content_size = false; - static float contents_size_x = 300.0f; - if (explicit_content_size) - ImGui::SetNextWindowContentSize(ImVec2(contents_size_x, 0.0f)); - ImGui::Begin("Horizontal contents size demo window", &show_horizontal_contents_size_demo_window, show_h_scrollbar ? ImGuiWindowFlags_HorizontalScrollbar : 0); - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(2, 0)); - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2, 0)); - HelpMarker("Test of different widgets react and impact the work rectangle growing when horizontal scrolling is enabled.\n\nUse 'Metrics->Tools->Show windows rectangles' to visualize rectangles."); - ImGui::Checkbox("H-scrollbar", &show_h_scrollbar); - ImGui::Checkbox("Button", &show_button); // Will grow contents size (unless explicitly overwritten) - ImGui::Checkbox("Tree nodes", &show_tree_nodes); // Will grow contents size and display highlight over full width - ImGui::Checkbox("Text wrapped", &show_text_wrapped);// Will grow and use contents size - ImGui::Checkbox("Columns", &show_columns); // Will use contents size - ImGui::Checkbox("Tab bar", &show_tab_bar); // Will use contents size - ImGui::Checkbox("Child", &show_child); // Will grow and use contents size - ImGui::Checkbox("Explicit content size", &explicit_content_size); - ImGui::Text("Scroll %.1f/%.1f %.1f/%.1f", ImGui::GetScrollX(), ImGui::GetScrollMaxX(), ImGui::GetScrollY(), ImGui::GetScrollMaxY()); - if (explicit_content_size) - { - ImGui::SameLine(); - ImGui::SetNextItemWidth(100); - ImGui::DragFloat("##csx", &contents_size_x); - ImVec2 p = ImGui::GetCursorScreenPos(); - ImGui::GetWindowDrawList()->AddRectFilled(p, ImVec2(p.x + 10, p.y + 10), IM_COL32_WHITE); - ImGui::GetWindowDrawList()->AddRectFilled(ImVec2(p.x + contents_size_x - 10, p.y), ImVec2(p.x + contents_size_x, p.y + 10), IM_COL32_WHITE); - ImGui::Dummy(ImVec2(0, 10)); - } - ImGui::PopStyleVar(2); - ImGui::Separator(); - if (show_button) - { - ImGui::Button("this is a 300-wide button", ImVec2(300, 0)); - } - if (show_tree_nodes) - { - bool open = true; - if (ImGui::TreeNode("this is a tree node")) - { - if (ImGui::TreeNode("another one of those tree node...")) - { - ImGui::Text("Some tree contents"); - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::CollapsingHeader("CollapsingHeader", &open); - } - if (show_text_wrapped) - { - ImGui::TextWrapped("This text should automatically wrap on the edge of the work rectangle."); - } - if (show_columns) - { - ImGui::Columns(4); - for (int n = 0; n < 4; n++) - { - ImGui::Text("Width %.2f", ImGui::GetColumnWidth()); - ImGui::NextColumn(); - } - ImGui::Columns(1); - } - if (show_tab_bar && ImGui::BeginTabBar("Hello")) - { - if (ImGui::BeginTabItem("OneOneOne")) { ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("TwoTwoTwo")) { ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("ThreeThreeThree")) { ImGui::EndTabItem(); } - if (ImGui::BeginTabItem("FourFourFour")) { ImGui::EndTabItem(); } - ImGui::EndTabBar(); - } - if (show_child) - { - ImGui::BeginChild("child", ImVec2(0,0), true); - ImGui::EndChild(); - } - ImGui::End(); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Clipping")) - { - static ImVec2 size(100, 100), offset(50, 20); - ImGui::TextWrapped("On a per-widget basis we are occasionally clipping text CPU-side if it won't fit in its frame. Otherwise we are doing coarser clipping + passing a scissor rectangle to the renderer. The system is designed to try minimizing both execution and CPU/GPU rendering cost."); - ImGui::DragFloat2("size", (float*)&size, 0.5f, 1.0f, 200.0f, "%.0f"); - ImGui::TextWrapped("(Click and drag)"); - ImVec2 pos = ImGui::GetCursorScreenPos(); - ImVec4 clip_rect(pos.x, pos.y, pos.x + size.x, pos.y + size.y); - ImGui::InvisibleButton("##dummy", size); - if (ImGui::IsItemActive() && ImGui::IsMouseDragging(0)) { offset.x += ImGui::GetIO().MouseDelta.x; offset.y += ImGui::GetIO().MouseDelta.y; } - ImGui::GetWindowDrawList()->AddRectFilled(pos, ImVec2(pos.x + size.x, pos.y + size.y), IM_COL32(90, 90, 120, 255)); - ImGui::GetWindowDrawList()->AddText(ImGui::GetFont(), ImGui::GetFontSize()*2.0f, ImVec2(pos.x + offset.x, pos.y + offset.y), IM_COL32(255, 255, 255, 255), "Line 1 hello\nLine 2 clip me!", NULL, 0.0f, &clip_rect); - ImGui::TreePop(); - } -} - -static void ShowDemoWindowPopups() -{ - if (!ImGui::CollapsingHeader("Popups & Modal windows")) - return; - - // The properties of popups windows are: - // - They block normal mouse hovering detection outside them. (*) - // - Unless modal, they can be closed by clicking anywhere outside them, or by pressing ESCAPE. - // - Their visibility state (~bool) is held internally by Dear ImGui instead of being held by the programmer as we are used to with regular Begin() calls. - // User can manipulate the visibility state by calling OpenPopup(). - // (*) One can use IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup) to bypass it and detect hovering even when normally blocked by a popup. - // Those three properties are connected. The library needs to hold their visibility state because it can close popups at any time. - - // Typical use for regular windows: - // bool my_tool_is_active = false; if (ImGui::Button("Open")) my_tool_is_active = true; [...] if (my_tool_is_active) Begin("My Tool", &my_tool_is_active) { [...] } End(); - // Typical use for popups: - // if (ImGui::Button("Open")) ImGui::OpenPopup("MyPopup"); if (ImGui::BeginPopup("MyPopup") { [...] EndPopup(); } - - // With popups we have to go through a library call (here OpenPopup) to manipulate the visibility state. - // This may be a bit confusing at first but it should quickly make sense. Follow on the examples below. - - if (ImGui::TreeNode("Popups")) - { - ImGui::TextWrapped("When a popup is active, it inhibits interacting with windows that are behind the popup. Clicking outside the popup closes it."); - - static int selected_fish = -1; - const char* names[] = { "Bream", "Haddock", "Mackerel", "Pollock", "Tilefish" }; - static bool toggles[] = { true, false, false, false, false }; - - // Simple selection popup - // (If you want to show the current selection inside the Button itself, you may want to build a string using the "###" operator to preserve a constant ID with a variable label) - if (ImGui::Button("Select..")) - ImGui::OpenPopup("my_select_popup"); - ImGui::SameLine(); - ImGui::TextUnformatted(selected_fish == -1 ? "" : names[selected_fish]); - if (ImGui::BeginPopup("my_select_popup")) - { - ImGui::Text("Aquarium"); - ImGui::Separator(); - for (int i = 0; i < IM_ARRAYSIZE(names); i++) - if (ImGui::Selectable(names[i])) - selected_fish = i; - ImGui::EndPopup(); - } - - // Showing a menu with toggles - if (ImGui::Button("Toggle..")) - ImGui::OpenPopup("my_toggle_popup"); - if (ImGui::BeginPopup("my_toggle_popup")) - { - for (int i = 0; i < IM_ARRAYSIZE(names); i++) - ImGui::MenuItem(names[i], "", &toggles[i]); - if (ImGui::BeginMenu("Sub-menu")) - { - ImGui::MenuItem("Click me"); - ImGui::EndMenu(); - } - - ImGui::Separator(); - ImGui::Text("Tooltip here"); - if (ImGui::IsItemHovered()) - ImGui::SetTooltip("I am a tooltip over a popup"); - - if (ImGui::Button("Stacked Popup")) - ImGui::OpenPopup("another popup"); - if (ImGui::BeginPopup("another popup")) - { - for (int i = 0; i < IM_ARRAYSIZE(names); i++) - ImGui::MenuItem(names[i], "", &toggles[i]); - if (ImGui::BeginMenu("Sub-menu")) - { - ImGui::MenuItem("Click me"); - if (ImGui::Button("Stacked Popup")) - ImGui::OpenPopup("another popup"); - if (ImGui::BeginPopup("another popup")) - { - ImGui::Text("I am the last one here."); - ImGui::EndPopup(); - } - ImGui::EndMenu(); - } - ImGui::EndPopup(); - } - ImGui::EndPopup(); - } - - // Call the more complete ShowExampleMenuFile which we use in various places of this demo - if (ImGui::Button("File Menu..")) - ImGui::OpenPopup("my_file_popup"); - if (ImGui::BeginPopup("my_file_popup")) - { - ShowExampleMenuFile(); - ImGui::EndPopup(); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Context menus")) - { - // BeginPopupContextItem() is a helper to provide common/simple popup behavior of essentially doing: - // if (IsItemHovered() && IsMouseReleased(0)) - // OpenPopup(id); - // return BeginPopup(id); - // For more advanced uses you may want to replicate and cuztomize this code. This the comments inside BeginPopupContextItem() implementation. - static float value = 0.5f; - ImGui::Text("Value = %.3f (<-- right-click here)", value); - if (ImGui::BeginPopupContextItem("item context menu")) - { - if (ImGui::Selectable("Set to zero")) value = 0.0f; - if (ImGui::Selectable("Set to PI")) value = 3.1415f; - ImGui::SetNextItemWidth(-1); - ImGui::DragFloat("##Value", &value, 0.1f, 0.0f, 0.0f); - ImGui::EndPopup(); - } - - // We can also use OpenPopupOnItemClick() which is the same as BeginPopupContextItem() but without the Begin call. - // So here we will make it that clicking on the text field with the right mouse button (1) will toggle the visibility of the popup above. - ImGui::Text("(You can also right-click me to open the same popup as above.)"); - ImGui::OpenPopupOnItemClick("item context menu", 1); - - // When used after an item that has an ID (here the Button), we can skip providing an ID to BeginPopupContextItem(). - // BeginPopupContextItem() will use the last item ID as the popup ID. - // In addition here, we want to include your editable label inside the button label. We use the ### operator to override the ID (read FAQ about ID for details) - static char name[32] = "Label1"; - char buf[64]; sprintf(buf, "Button: %s###Button", name); // ### operator override ID ignoring the preceding label - ImGui::Button(buf); - if (ImGui::BeginPopupContextItem()) - { - ImGui::Text("Edit name:"); - ImGui::InputText("##edit", name, IM_ARRAYSIZE(name)); - if (ImGui::Button("Close")) - ImGui::CloseCurrentPopup(); - ImGui::EndPopup(); - } - ImGui::SameLine(); ImGui::Text("(<-- right-click here)"); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Modals")) - { - ImGui::TextWrapped("Modal windows are like popups but the user cannot close them by clicking outside the window."); - - if (ImGui::Button("Delete..")) - ImGui::OpenPopup("Delete?"); - - if (ImGui::BeginPopupModal("Delete?", NULL, ImGuiWindowFlags_AlwaysAutoResize)) - { - ImGui::Text("All those beautiful files will be deleted.\nThis operation cannot be undone!\n\n"); - ImGui::Separator(); - - //static int dummy_i = 0; - //ImGui::Combo("Combo", &dummy_i, "Delete\0Delete harder\0"); - - static bool dont_ask_me_next_time = false; - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(0, 0)); - ImGui::Checkbox("Don't ask me next time", &dont_ask_me_next_time); - ImGui::PopStyleVar(); - - if (ImGui::Button("OK", ImVec2(120, 0))) { ImGui::CloseCurrentPopup(); } - ImGui::SetItemDefaultFocus(); - ImGui::SameLine(); - if (ImGui::Button("Cancel", ImVec2(120, 0))) { ImGui::CloseCurrentPopup(); } - ImGui::EndPopup(); - } - - if (ImGui::Button("Stacked modals..")) - ImGui::OpenPopup("Stacked 1"); - if (ImGui::BeginPopupModal("Stacked 1", NULL, ImGuiWindowFlags_MenuBar)) - { - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Dummy menu item")) {} - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); - } - ImGui::Text("Hello from Stacked The First\nUsing style.Colors[ImGuiCol_ModalWindowDimBg] behind it."); - - // Testing behavior of widgets stacking their own regular popups over the modal. - static int item = 1; - static float color[4] = { 0.4f,0.7f,0.0f,0.5f }; - ImGui::Combo("Combo", &item, "aaaa\0bbbb\0cccc\0dddd\0eeee\0\0"); - ImGui::ColorEdit4("color", color); - - if (ImGui::Button("Add another modal..")) - ImGui::OpenPopup("Stacked 2"); - - // Also demonstrate passing a bool* to BeginPopupModal(), this will create a regular close button which will close the popup. - // Note that the visibility state of popups is owned by imgui, so the input value of the bool actually doesn't matter here. - bool dummy_open = true; - if (ImGui::BeginPopupModal("Stacked 2", &dummy_open)) - { - ImGui::Text("Hello from Stacked The Second!"); - if (ImGui::Button("Close")) - ImGui::CloseCurrentPopup(); - ImGui::EndPopup(); - } - - if (ImGui::Button("Close")) - ImGui::CloseCurrentPopup(); - ImGui::EndPopup(); - } - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Menus inside a regular window")) - { - ImGui::TextWrapped("Below we are testing adding menu items to a regular window. It's rather unusual but should work!"); - ImGui::Separator(); - // NB: As a quirk in this very specific example, we want to differentiate the parent of this menu from the parent of the various popup menus above. - // To do so we are encloding the items in a PushID()/PopID() block to make them two different menusets. If we don't, opening any popup above and hovering our menu here - // would open it. This is because once a menu is active, we allow to switch to a sibling menu by just hovering on it, which is the desired behavior for regular menus. - ImGui::PushID("foo"); - ImGui::MenuItem("Menu item", "CTRL+M"); - if (ImGui::BeginMenu("Menu inside a regular window")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - ImGui::PopID(); - ImGui::Separator(); - ImGui::TreePop(); - } -} - -static void ShowDemoWindowColumns() -{ - if (!ImGui::CollapsingHeader("Columns")) - return; - - ImGui::PushID("Columns"); - - static bool disable_indent = false; - ImGui::Checkbox("Disable tree indentation", &disable_indent); - ImGui::SameLine(); - HelpMarker("Disable the indenting of tree nodes so demo columns can use the full window width."); - if (disable_indent) - ImGui::PushStyleVar(ImGuiStyleVar_IndentSpacing, 0.0f); - - // Basic columns - if (ImGui::TreeNode("Basic")) - { - ImGui::Text("Without border:"); - ImGui::Columns(3, "mycolumns3", false); // 3-ways, no border - ImGui::Separator(); - for (int n = 0; n < 14; n++) - { - char label[32]; - sprintf(label, "Item %d", n); - if (ImGui::Selectable(label)) {} - //if (ImGui::Button(label, ImVec2(-FLT_MIN,0.0f))) {} - ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::Separator(); - - ImGui::Text("With border:"); - ImGui::Columns(4, "mycolumns"); // 4-ways, with border - ImGui::Separator(); - ImGui::Text("ID"); ImGui::NextColumn(); - ImGui::Text("Name"); ImGui::NextColumn(); - ImGui::Text("Path"); ImGui::NextColumn(); - ImGui::Text("Hovered"); ImGui::NextColumn(); - ImGui::Separator(); - const char* names[3] = { "One", "Two", "Three" }; - const char* paths[3] = { "/path/one", "/path/two", "/path/three" }; - static int selected = -1; - for (int i = 0; i < 3; i++) - { - char label[32]; - sprintf(label, "%04d", i); - if (ImGui::Selectable(label, selected == i, ImGuiSelectableFlags_SpanAllColumns)) - selected = i; - bool hovered = ImGui::IsItemHovered(); - ImGui::NextColumn(); - ImGui::Text(names[i]); ImGui::NextColumn(); - ImGui::Text(paths[i]); ImGui::NextColumn(); - ImGui::Text("%d", hovered); ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::Separator(); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Borders")) - { - // NB: Future columns API should allow automatic horizontal borders. - static bool h_borders = true; - static bool v_borders = true; - static int columns_count = 4; - const int lines_count = 3; - ImGui::SetNextItemWidth(ImGui::GetFontSize() * 8); - ImGui::DragInt("##columns_count", &columns_count, 0.1f, 2, 10, "%d columns"); - if (columns_count < 2) - columns_count = 2; - ImGui::SameLine(); - ImGui::Checkbox("horizontal", &h_borders); - ImGui::SameLine(); - ImGui::Checkbox("vertical", &v_borders); - ImGui::Columns(columns_count, NULL, v_borders); - for (int i = 0; i < columns_count * lines_count; i++) - { - if (h_borders && ImGui::GetColumnIndex() == 0) - ImGui::Separator(); - ImGui::Text("%c%c%c", 'a' + i, 'a' + i, 'a' + i); - ImGui::Text("Width %.2f", ImGui::GetColumnWidth()); - ImGui::Text("Avail %.2f", ImGui::GetContentRegionAvail().x); - ImGui::Text("Offset %.2f", ImGui::GetColumnOffset()); - ImGui::Text("Long text that is likely to clip"); - ImGui::Button("Button", ImVec2(-FLT_MIN, 0.0f)); - ImGui::NextColumn(); - } - ImGui::Columns(1); - if (h_borders) - ImGui::Separator(); - ImGui::TreePop(); - } - - // Create multiple items in a same cell before switching to next column - if (ImGui::TreeNode("Mixed items")) - { - ImGui::Columns(3, "mixed"); - ImGui::Separator(); - - ImGui::Text("Hello"); - ImGui::Button("Banana"); - ImGui::NextColumn(); - - ImGui::Text("ImGui"); - ImGui::Button("Apple"); - static float foo = 1.0f; - ImGui::InputFloat("red", &foo, 0.05f, 0, "%.3f"); - ImGui::Text("An extra line here."); - ImGui::NextColumn(); - - ImGui::Text("Sailor"); - ImGui::Button("Corniflower"); - static float bar = 1.0f; - ImGui::InputFloat("blue", &bar, 0.05f, 0, "%.3f"); - ImGui::NextColumn(); - - if (ImGui::CollapsingHeader("Category A")) { ImGui::Text("Blah blah blah"); } ImGui::NextColumn(); - if (ImGui::CollapsingHeader("Category B")) { ImGui::Text("Blah blah blah"); } ImGui::NextColumn(); - if (ImGui::CollapsingHeader("Category C")) { ImGui::Text("Blah blah blah"); } ImGui::NextColumn(); - ImGui::Columns(1); - ImGui::Separator(); - ImGui::TreePop(); - } - - // Word wrapping - if (ImGui::TreeNode("Word-wrapping")) - { - ImGui::Columns(2, "word-wrapping"); - ImGui::Separator(); - ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); - ImGui::TextWrapped("Hello Left"); - ImGui::NextColumn(); - ImGui::TextWrapped("The quick brown fox jumps over the lazy dog."); - ImGui::TextWrapped("Hello Right"); - ImGui::Columns(1); - ImGui::Separator(); - ImGui::TreePop(); - } - - // Scrolling columns - /* - if (ImGui::TreeNode("Vertical Scrolling")) - { - ImGui::BeginChild("##header", ImVec2(0, ImGui::GetTextLineHeightWithSpacing()+ImGui::GetStyle().ItemSpacing.y)); - ImGui::Columns(3); - ImGui::Text("ID"); ImGui::NextColumn(); - ImGui::Text("Name"); ImGui::NextColumn(); - ImGui::Text("Path"); ImGui::NextColumn(); - ImGui::Columns(1); - ImGui::Separator(); - ImGui::EndChild(); - ImGui::BeginChild("##scrollingregion", ImVec2(0, 60)); - ImGui::Columns(3); - for (int i = 0; i < 10; i++) - { - ImGui::Text("%04d", i); ImGui::NextColumn(); - ImGui::Text("Foobar"); ImGui::NextColumn(); - ImGui::Text("/path/foobar/%04d/", i); ImGui::NextColumn(); - } - ImGui::Columns(1); - ImGui::EndChild(); - ImGui::TreePop(); - } - */ - - if (ImGui::TreeNode("Horizontal Scrolling")) - { - ImGui::SetNextWindowContentSize(ImVec2(1500.0f, 0.0f)); - ImGui::BeginChild("##ScrollingRegion", ImVec2(0, ImGui::GetFontSize() * 20), false, ImGuiWindowFlags_HorizontalScrollbar); - ImGui::Columns(10); - int ITEMS_COUNT = 2000; - ImGuiListClipper clipper(ITEMS_COUNT); // Also demonstrate using the clipper for large list - while (clipper.Step()) - { - for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) - for (int j = 0; j < 10; j++) - { - ImGui::Text("Line %d Column %d...", i, j); - ImGui::NextColumn(); - } - } - ImGui::Columns(1); - ImGui::EndChild(); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Tree")) - { - ImGui::Columns(2, "tree", true); - for (int x = 0; x < 3; x++) - { - bool open1 = ImGui::TreeNode((void*)(intptr_t)x, "Node%d", x); - ImGui::NextColumn(); - ImGui::Text("Node contents"); - ImGui::NextColumn(); - if (open1) - { - for (int y = 0; y < 3; y++) - { - bool open2 = ImGui::TreeNode((void*)(intptr_t)y, "Node%d.%d", x, y); - ImGui::NextColumn(); - ImGui::Text("Node contents"); - if (open2) - { - ImGui::Text("Even more contents"); - if (ImGui::TreeNode("Tree in column")) - { - ImGui::Text("The quick brown fox jumps over the lazy dog"); - ImGui::TreePop(); - } - } - ImGui::NextColumn(); - if (open2) - ImGui::TreePop(); - } - ImGui::TreePop(); - } - } - ImGui::Columns(1); - ImGui::TreePop(); - } - - if (disable_indent) - ImGui::PopStyleVar(); - ImGui::PopID(); -} - -static void ShowDemoWindowMisc() -{ - if (ImGui::CollapsingHeader("Filtering")) - { - // Helper class to easy setup a text filter. - // You may want to implement a more feature-full filtering scheme in your own application. - static ImGuiTextFilter filter; - ImGui::Text("Filter usage:\n" - " \"\" display all lines\n" - " \"xxx\" display lines containing \"xxx\"\n" - " \"xxx,yyy\" display lines containing \"xxx\" or \"yyy\"\n" - " \"-xxx\" hide lines containing \"xxx\""); - filter.Draw(); - const char* lines[] = { "aaa1.c", "bbb1.c", "ccc1.c", "aaa2.cpp", "bbb2.cpp", "ccc2.cpp", "abc.h", "hello, world" }; - for (int i = 0; i < IM_ARRAYSIZE(lines); i++) - if (filter.PassFilter(lines[i])) - ImGui::BulletText("%s", lines[i]); - } - - if (ImGui::CollapsingHeader("Inputs, Navigation & Focus")) - { - ImGuiIO& io = ImGui::GetIO(); - - // Display ImGuiIO output flags - ImGui::Text("WantCaptureMouse: %d", io.WantCaptureMouse); - ImGui::Text("WantCaptureKeyboard: %d", io.WantCaptureKeyboard); - ImGui::Text("WantTextInput: %d", io.WantTextInput); - ImGui::Text("WantSetMousePos: %d", io.WantSetMousePos); - ImGui::Text("NavActive: %d, NavVisible: %d", io.NavActive, io.NavVisible); - - // Display Keyboard/Mouse state - if (ImGui::TreeNode("Keyboard, Mouse & Navigation State")) - { - if (ImGui::IsMousePosValid()) - ImGui::Text("Mouse pos: (%g, %g)", io.MousePos.x, io.MousePos.y); - else - ImGui::Text("Mouse pos: "); - ImGui::Text("Mouse delta: (%g, %g)", io.MouseDelta.x, io.MouseDelta.y); - ImGui::Text("Mouse down:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (io.MouseDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("b%d (%.02f secs)", i, io.MouseDownDuration[i]); } - ImGui::Text("Mouse clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } - ImGui::Text("Mouse dbl-clicked:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseDoubleClicked(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } - ImGui::Text("Mouse released:"); for (int i = 0; i < IM_ARRAYSIZE(io.MouseDown); i++) if (ImGui::IsMouseReleased(i)) { ImGui::SameLine(); ImGui::Text("b%d", i); } - ImGui::Text("Mouse wheel: %.1f", io.MouseWheel); - - ImGui::Text("Keys down:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (io.KeysDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("%d (0x%X) (%.02f secs)", i, i, io.KeysDownDuration[i]); } - ImGui::Text("Keys pressed:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyPressed(i)) { ImGui::SameLine(); ImGui::Text("%d (0x%X)", i, i); } - ImGui::Text("Keys release:"); for (int i = 0; i < IM_ARRAYSIZE(io.KeysDown); i++) if (ImGui::IsKeyReleased(i)) { ImGui::SameLine(); ImGui::Text("%d (0x%X)", i, i); } - ImGui::Text("Keys mods: %s%s%s%s", io.KeyCtrl ? "CTRL " : "", io.KeyShift ? "SHIFT " : "", io.KeyAlt ? "ALT " : "", io.KeySuper ? "SUPER " : ""); - ImGui::Text("Chars queue:"); for (int i = 0; i < io.InputQueueCharacters.Size; i++) { ImWchar c = io.InputQueueCharacters[i]; ImGui::SameLine(); ImGui::Text("\'%c\' (0x%04X)", (c > ' ' && c <= 255) ? (char)c : '?', c); } // FIXME: We should convert 'c' to UTF-8 here but the functions are not public. - - ImGui::Text("NavInputs down:"); for (int i = 0; i < IM_ARRAYSIZE(io.NavInputs); i++) if (io.NavInputs[i] > 0.0f) { ImGui::SameLine(); ImGui::Text("[%d] %.2f", i, io.NavInputs[i]); } - ImGui::Text("NavInputs pressed:"); for (int i = 0; i < IM_ARRAYSIZE(io.NavInputs); i++) if (io.NavInputsDownDuration[i] == 0.0f) { ImGui::SameLine(); ImGui::Text("[%d]", i); } - ImGui::Text("NavInputs duration:"); for (int i = 0; i < IM_ARRAYSIZE(io.NavInputs); i++) if (io.NavInputsDownDuration[i] >= 0.0f) { ImGui::SameLine(); ImGui::Text("[%d] %.2f", i, io.NavInputsDownDuration[i]); } - - ImGui::Button("Hovering me sets the\nkeyboard capture flag"); - if (ImGui::IsItemHovered()) - ImGui::CaptureKeyboardFromApp(true); - ImGui::SameLine(); - ImGui::Button("Holding me clears the\nthe keyboard capture flag"); - if (ImGui::IsItemActive()) - ImGui::CaptureKeyboardFromApp(false); - - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Tabbing")) - { - ImGui::Text("Use TAB/SHIFT+TAB to cycle through keyboard editable fields."); - static char buf[32] = "dummy"; - ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); - ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); - ImGui::InputText("3", buf, IM_ARRAYSIZE(buf)); - ImGui::PushAllowKeyboardFocus(false); - ImGui::InputText("4 (tab skip)", buf, IM_ARRAYSIZE(buf)); - //ImGui::SameLine(); HelpMarker("Use ImGui::PushAllowKeyboardFocus(bool)\nto disable tabbing through certain widgets."); - ImGui::PopAllowKeyboardFocus(); - ImGui::InputText("5", buf, IM_ARRAYSIZE(buf)); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Focus from code")) - { - bool focus_1 = ImGui::Button("Focus on 1"); ImGui::SameLine(); - bool focus_2 = ImGui::Button("Focus on 2"); ImGui::SameLine(); - bool focus_3 = ImGui::Button("Focus on 3"); - int has_focus = 0; - static char buf[128] = "click on a button to set focus"; - - if (focus_1) ImGui::SetKeyboardFocusHere(); - ImGui::InputText("1", buf, IM_ARRAYSIZE(buf)); - if (ImGui::IsItemActive()) has_focus = 1; - - if (focus_2) ImGui::SetKeyboardFocusHere(); - ImGui::InputText("2", buf, IM_ARRAYSIZE(buf)); - if (ImGui::IsItemActive()) has_focus = 2; - - ImGui::PushAllowKeyboardFocus(false); - if (focus_3) ImGui::SetKeyboardFocusHere(); - ImGui::InputText("3 (tab skip)", buf, IM_ARRAYSIZE(buf)); - if (ImGui::IsItemActive()) has_focus = 3; - ImGui::PopAllowKeyboardFocus(); - - if (has_focus) - ImGui::Text("Item with focus: %d", has_focus); - else - ImGui::Text("Item with focus: "); - - // Use >= 0 parameter to SetKeyboardFocusHere() to focus an upcoming item - static float f3[3] = { 0.0f, 0.0f, 0.0f }; - int focus_ahead = -1; - if (ImGui::Button("Focus on X")) { focus_ahead = 0; } ImGui::SameLine(); - if (ImGui::Button("Focus on Y")) { focus_ahead = 1; } ImGui::SameLine(); - if (ImGui::Button("Focus on Z")) { focus_ahead = 2; } - if (focus_ahead != -1) ImGui::SetKeyboardFocusHere(focus_ahead); - ImGui::SliderFloat3("Float3", &f3[0], 0.0f, 1.0f); - - ImGui::TextWrapped("NB: Cursor & selection are preserved when refocusing last used item in code."); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Dragging")) - { - ImGui::TextWrapped("You can use ImGui::GetMouseDragDelta(0) to query for the dragged amount on any widget."); - for (int button = 0; button < 3; button++) - ImGui::Text("IsMouseDragging(%d):\n w/ default threshold: %d,\n w/ zero threshold: %d\n w/ large threshold: %d", - button, ImGui::IsMouseDragging(button), ImGui::IsMouseDragging(button, 0.0f), ImGui::IsMouseDragging(button, 20.0f)); - - ImGui::Button("Drag Me"); - if (ImGui::IsItemActive()) - ImGui::GetForegroundDrawList()->AddLine(io.MouseClickedPos[0], io.MousePos, ImGui::GetColorU32(ImGuiCol_Button), 4.0f); // Draw a line between the button and the mouse cursor - - // Drag operations gets "unlocked" when the mouse has moved past a certain threshold (the default threshold is stored in io.MouseDragThreshold) - // You can request a lower or higher threshold using the second parameter of IsMouseDragging() and GetMouseDragDelta() - ImVec2 value_raw = ImGui::GetMouseDragDelta(0, 0.0f); - ImVec2 value_with_lock_threshold = ImGui::GetMouseDragDelta(0); - ImVec2 mouse_delta = io.MouseDelta; - ImGui::Text("GetMouseDragDelta(0):\n w/ default threshold: (%.1f, %.1f),\n w/ zero threshold: (%.1f, %.1f)\nMouseDelta: (%.1f, %.1f)", value_with_lock_threshold.x, value_with_lock_threshold.y, value_raw.x, value_raw.y, mouse_delta.x, mouse_delta.y); - ImGui::TreePop(); - } - - if (ImGui::TreeNode("Mouse cursors")) - { - const char* mouse_cursors_names[] = { "Arrow", "TextInput", "ResizeAll", "ResizeNS", "ResizeEW", "ResizeNESW", "ResizeNWSE", "Hand", "NotAllowed" }; - IM_ASSERT(IM_ARRAYSIZE(mouse_cursors_names) == ImGuiMouseCursor_COUNT); - - ImGui::Text("Current mouse cursor = %d: %s", ImGui::GetMouseCursor(), mouse_cursors_names[ImGui::GetMouseCursor()]); - ImGui::Text("Hover to see mouse cursors:"); - ImGui::SameLine(); HelpMarker("Your application can render a different mouse cursor based on what ImGui::GetMouseCursor() returns. If software cursor rendering (io.MouseDrawCursor) is set ImGui will draw the right cursor for you, otherwise your backend needs to handle it."); - for (int i = 0; i < ImGuiMouseCursor_COUNT; i++) - { - char label[32]; - sprintf(label, "Mouse cursor %d: %s", i, mouse_cursors_names[i]); - ImGui::Bullet(); ImGui::Selectable(label, false); - if (ImGui::IsItemHovered() || ImGui::IsItemFocused()) - ImGui::SetMouseCursor(i); - } - ImGui::TreePop(); - } - } -} - -//----------------------------------------------------------------------------- -// [SECTION] About Window / ShowAboutWindow() -// Access from Dear ImGui Demo -> Tools -> About -//----------------------------------------------------------------------------- - -void ImGui::ShowAboutWindow(bool* p_open) -{ - if (!ImGui::Begin("About Dear ImGui", p_open, ImGuiWindowFlags_AlwaysAutoResize)) - { - ImGui::End(); - return; - } - ImGui::Text("Dear ImGui %s", ImGui::GetVersion()); - ImGui::Separator(); - ImGui::Text("By Omar Cornut and all Dear ImGui contributors."); - ImGui::Text("Dear ImGui is licensed under the MIT License, see LICENSE for more information."); - - static bool show_config_info = false; - ImGui::Checkbox("Config/Build Information", &show_config_info); - if (show_config_info) - { - ImGuiIO& io = ImGui::GetIO(); - ImGuiStyle& style = ImGui::GetStyle(); - - bool copy_to_clipboard = ImGui::Button("Copy to clipboard"); - ImGui::BeginChildFrame(ImGui::GetID("cfginfos"), ImVec2(0, ImGui::GetTextLineHeightWithSpacing() * 18), ImGuiWindowFlags_NoMove); - if (copy_to_clipboard) - { - ImGui::LogToClipboard(); - ImGui::LogText("```\n"); // Back quotes will make the text appears without formatting when pasting to GitHub - } - - ImGui::Text("Dear ImGui %s (%d)", IMGUI_VERSION, IMGUI_VERSION_NUM); - ImGui::Separator(); - ImGui::Text("sizeof(size_t): %d, sizeof(ImDrawIdx): %d, sizeof(ImDrawVert): %d", (int)sizeof(size_t), (int)sizeof(ImDrawIdx), (int)sizeof(ImDrawVert)); - ImGui::Text("define: __cplusplus=%d", (int)__cplusplus); -#ifdef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_OBSOLETE_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_WIN32_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_WIN32_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_FILE_FUNCTIONS - ImGui::Text("define: IMGUI_DISABLE_FILE_FUNCTIONS"); -#endif -#ifdef IMGUI_DISABLE_DEFAULT_ALLOCATORS - ImGui::Text("define: IMGUI_DISABLE_DEFAULT_ALLOCATORS"); -#endif -#ifdef IMGUI_USE_BGRA_PACKED_COLOR - ImGui::Text("define: IMGUI_USE_BGRA_PACKED_COLOR"); -#endif -#ifdef _WIN32 - ImGui::Text("define: _WIN32"); -#endif -#ifdef _WIN64 - ImGui::Text("define: _WIN64"); -#endif -#ifdef __linux__ - ImGui::Text("define: __linux__"); -#endif -#ifdef __APPLE__ - ImGui::Text("define: __APPLE__"); -#endif -#ifdef _MSC_VER - ImGui::Text("define: _MSC_VER=%d", _MSC_VER); -#endif -#ifdef __MINGW32__ - ImGui::Text("define: __MINGW32__"); -#endif -#ifdef __MINGW64__ - ImGui::Text("define: __MINGW64__"); -#endif -#ifdef __GNUC__ - ImGui::Text("define: __GNUC__=%d", (int)__GNUC__); -#endif -#ifdef __clang_version__ - ImGui::Text("define: __clang_version__=%s", __clang_version__); -#endif - ImGui::Separator(); - ImGui::Text("io.BackendPlatformName: %s", io.BackendPlatformName ? io.BackendPlatformName : "NULL"); - ImGui::Text("io.BackendRendererName: %s", io.BackendRendererName ? io.BackendRendererName : "NULL"); - ImGui::Text("io.ConfigFlags: 0x%08X", io.ConfigFlags); - if (io.ConfigFlags & ImGuiConfigFlags_NavEnableKeyboard) ImGui::Text(" NavEnableKeyboard"); - if (io.ConfigFlags & ImGuiConfigFlags_NavEnableGamepad) ImGui::Text(" NavEnableGamepad"); - if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) ImGui::Text(" NavEnableSetMousePos"); - if (io.ConfigFlags & ImGuiConfigFlags_NavNoCaptureKeyboard) ImGui::Text(" NavNoCaptureKeyboard"); - if (io.ConfigFlags & ImGuiConfigFlags_NoMouse) ImGui::Text(" NoMouse"); - if (io.ConfigFlags & ImGuiConfigFlags_NoMouseCursorChange) ImGui::Text(" NoMouseCursorChange"); - if (io.MouseDrawCursor) ImGui::Text("io.MouseDrawCursor"); - if (io.ConfigMacOSXBehaviors) ImGui::Text("io.ConfigMacOSXBehaviors"); - if (io.ConfigInputTextCursorBlink) ImGui::Text("io.ConfigInputTextCursorBlink"); - if (io.ConfigWindowsResizeFromEdges) ImGui::Text("io.ConfigWindowsResizeFromEdges"); - if (io.ConfigWindowsMoveFromTitleBarOnly) ImGui::Text("io.ConfigWindowsMoveFromTitleBarOnly"); - if (io.ConfigWindowsMemoryCompactTimer >= 0.0f) ImGui::Text("io.ConfigWindowsMemoryCompactTimer = %.1ff", io.ConfigWindowsMemoryCompactTimer); - ImGui::Text("io.BackendFlags: 0x%08X", io.BackendFlags); - if (io.BackendFlags & ImGuiBackendFlags_HasGamepad) ImGui::Text(" HasGamepad"); - if (io.BackendFlags & ImGuiBackendFlags_HasMouseCursors) ImGui::Text(" HasMouseCursors"); - if (io.BackendFlags & ImGuiBackendFlags_HasSetMousePos) ImGui::Text(" HasSetMousePos"); - if (io.BackendFlags & ImGuiBackendFlags_RendererHasVtxOffset) ImGui::Text(" RendererHasVtxOffset"); - ImGui::Separator(); - ImGui::Text("io.Fonts: %d fonts, Flags: 0x%08X, TexSize: %d,%d", io.Fonts->Fonts.Size, io.Fonts->Flags, io.Fonts->TexWidth, io.Fonts->TexHeight); - ImGui::Text("io.DisplaySize: %.2f,%.2f", io.DisplaySize.x, io.DisplaySize.y); - ImGui::Text("io.DisplayFramebufferScale: %.2f,%.2f", io.DisplayFramebufferScale.x, io.DisplayFramebufferScale.y); - ImGui::Separator(); - ImGui::Text("style.WindowPadding: %.2f,%.2f", style.WindowPadding.x, style.WindowPadding.y); - ImGui::Text("style.WindowBorderSize: %.2f", style.WindowBorderSize); - ImGui::Text("style.FramePadding: %.2f,%.2f", style.FramePadding.x, style.FramePadding.y); - ImGui::Text("style.FrameRounding: %.2f", style.FrameRounding); - ImGui::Text("style.FrameBorderSize: %.2f", style.FrameBorderSize); - ImGui::Text("style.ItemSpacing: %.2f,%.2f", style.ItemSpacing.x, style.ItemSpacing.y); - ImGui::Text("style.ItemInnerSpacing: %.2f,%.2f", style.ItemInnerSpacing.x, style.ItemInnerSpacing.y); - - if (copy_to_clipboard) - { - ImGui::LogText("\n```\n"); - ImGui::LogFinish(); - } - ImGui::EndChildFrame(); - } - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Style Editor / ShowStyleEditor() -//----------------------------------------------------------------------------- -// - ShowStyleSelector() -// - ShowFontSelector() -// - ShowStyleEditor() -//----------------------------------------------------------------------------- - -// Demo helper function to select among default colors. See ShowStyleEditor() for more advanced options. -// Here we use the simplified Combo() api that packs items into a single literal string. Useful for quick combo boxes where the choices are known locally. -bool ImGui::ShowStyleSelector(const char* label) -{ - static int style_idx = -1; - if (ImGui::Combo(label, &style_idx, "Classic\0Dark\0Light\0")) - { - switch (style_idx) - { - case 0: ImGui::StyleColorsClassic(); break; - case 1: ImGui::StyleColorsDark(); break; - case 2: ImGui::StyleColorsLight(); break; - } - return true; - } - return false; -} - -// Demo helper function to select among loaded fonts. -// Here we use the regular BeginCombo()/EndCombo() api which is more the more flexible one. -void ImGui::ShowFontSelector(const char* label) -{ - ImGuiIO& io = ImGui::GetIO(); - ImFont* font_current = ImGui::GetFont(); - if (ImGui::BeginCombo(label, font_current->GetDebugName())) - { - for (int n = 0; n < io.Fonts->Fonts.Size; n++) - { - ImFont* font = io.Fonts->Fonts[n]; - ImGui::PushID((void*)font); - if (ImGui::Selectable(font->GetDebugName(), font == font_current)) - io.FontDefault = font; - ImGui::PopID(); - } - ImGui::EndCombo(); - } - ImGui::SameLine(); - HelpMarker( - "- Load additional fonts with io.Fonts->AddFontFromFileTTF().\n" - "- The font atlas is built when calling io.Fonts->GetTexDataAsXXXX() or io.Fonts->Build().\n" - "- Read FAQ and docs/FONTS.txt for more details.\n" - "- If you need to add/remove fonts at runtime (e.g. for DPI change), do it before calling NewFrame()."); -} - -void ImGui::ShowStyleEditor(ImGuiStyle* ref) -{ - // You can pass in a reference ImGuiStyle structure to compare to, revert to and save to (else it compares to an internally stored reference) - ImGuiStyle& style = ImGui::GetStyle(); - static ImGuiStyle ref_saved_style; - - // Default to using internal storage as reference - static bool init = true; - if (init && ref == NULL) - ref_saved_style = style; - init = false; - if (ref == NULL) - ref = &ref_saved_style; - - ImGui::PushItemWidth(ImGui::GetWindowWidth() * 0.50f); - - if (ImGui::ShowStyleSelector("Colors##Selector")) - ref_saved_style = style; - ImGui::ShowFontSelector("Fonts##Selector"); - - // Simplified Settings - if (ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 12.0f, "%.0f")) - style.GrabRounding = style.FrameRounding; // Make GrabRounding always the same value as FrameRounding - { bool window_border = (style.WindowBorderSize > 0.0f); if (ImGui::Checkbox("WindowBorder", &window_border)) style.WindowBorderSize = window_border ? 1.0f : 0.0f; } - ImGui::SameLine(); - { bool frame_border = (style.FrameBorderSize > 0.0f); if (ImGui::Checkbox("FrameBorder", &frame_border)) style.FrameBorderSize = frame_border ? 1.0f : 0.0f; } - ImGui::SameLine(); - { bool popup_border = (style.PopupBorderSize > 0.0f); if (ImGui::Checkbox("PopupBorder", &popup_border)) style.PopupBorderSize = popup_border ? 1.0f : 0.0f; } - - // Save/Revert button - if (ImGui::Button("Save Ref")) - *ref = ref_saved_style = style; - ImGui::SameLine(); - if (ImGui::Button("Revert Ref")) - style = *ref; - ImGui::SameLine(); - HelpMarker("Save/Revert in local non-persistent storage. Default Colors definition are not affected. Use \"Export\" below to save them somewhere."); - - ImGui::Separator(); - - if (ImGui::BeginTabBar("##tabs", ImGuiTabBarFlags_None)) - { - if (ImGui::BeginTabItem("Sizes")) - { - ImGui::Text("Main"); - ImGui::SliderFloat2("WindowPadding", (float*)&style.WindowPadding, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat2("FramePadding", (float*)&style.FramePadding, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat2("ItemSpacing", (float*)&style.ItemSpacing, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat2("ItemInnerSpacing", (float*)&style.ItemInnerSpacing, 0.0f, 20.0f, "%.0f"); - ImGui::SliderFloat2("TouchExtraPadding", (float*)&style.TouchExtraPadding, 0.0f, 10.0f, "%.0f"); - ImGui::SliderFloat("IndentSpacing", &style.IndentSpacing, 0.0f, 30.0f, "%.0f"); - ImGui::SliderFloat("ScrollbarSize", &style.ScrollbarSize, 1.0f, 20.0f, "%.0f"); - ImGui::SliderFloat("GrabMinSize", &style.GrabMinSize, 1.0f, 20.0f, "%.0f"); - ImGui::Text("Borders"); - ImGui::SliderFloat("WindowBorderSize", &style.WindowBorderSize, 0.0f, 1.0f, "%.0f"); - ImGui::SliderFloat("ChildBorderSize", &style.ChildBorderSize, 0.0f, 1.0f, "%.0f"); - ImGui::SliderFloat("PopupBorderSize", &style.PopupBorderSize, 0.0f, 1.0f, "%.0f"); - ImGui::SliderFloat("FrameBorderSize", &style.FrameBorderSize, 0.0f, 1.0f, "%.0f"); - ImGui::SliderFloat("TabBorderSize", &style.TabBorderSize, 0.0f, 1.0f, "%.0f"); - ImGui::Text("Rounding"); - ImGui::SliderFloat("WindowRounding", &style.WindowRounding, 0.0f, 12.0f, "%.0f"); - ImGui::SliderFloat("ChildRounding", &style.ChildRounding, 0.0f, 12.0f, "%.0f"); - ImGui::SliderFloat("FrameRounding", &style.FrameRounding, 0.0f, 12.0f, "%.0f"); - ImGui::SliderFloat("PopupRounding", &style.PopupRounding, 0.0f, 12.0f, "%.0f"); - ImGui::SliderFloat("ScrollbarRounding", &style.ScrollbarRounding, 0.0f, 12.0f, "%.0f"); - ImGui::SliderFloat("GrabRounding", &style.GrabRounding, 0.0f, 12.0f, "%.0f"); - ImGui::SliderFloat("TabRounding", &style.TabRounding, 0.0f, 12.0f, "%.0f"); - ImGui::Text("Alignment"); - ImGui::SliderFloat2("WindowTitleAlign", (float*)&style.WindowTitleAlign, 0.0f, 1.0f, "%.2f"); - int window_menu_button_position = style.WindowMenuButtonPosition + 1; - if (ImGui::Combo("WindowMenuButtonPosition", (int*)&window_menu_button_position, "None\0Left\0Right\0")) - style.WindowMenuButtonPosition = window_menu_button_position - 1; - ImGui::Combo("ColorButtonPosition", (int*)&style.ColorButtonPosition, "Left\0Right\0"); - ImGui::SliderFloat2("ButtonTextAlign", (float*)&style.ButtonTextAlign, 0.0f, 1.0f, "%.2f"); ImGui::SameLine(); HelpMarker("Alignment applies when a button is larger than its text content."); - ImGui::SliderFloat2("SelectableTextAlign", (float*)&style.SelectableTextAlign, 0.0f, 1.0f, "%.2f"); ImGui::SameLine(); HelpMarker("Alignment applies when a selectable is larger than its text content."); - ImGui::Text("Safe Area Padding"); ImGui::SameLine(); HelpMarker("Adjust if you cannot see the edges of your screen (e.g. on a TV where scaling has not been configured)."); - ImGui::SliderFloat2("DisplaySafeAreaPadding", (float*)&style.DisplaySafeAreaPadding, 0.0f, 30.0f, "%.0f"); - ImGui::EndTabItem(); - } - - if (ImGui::BeginTabItem("Colors")) - { - static int output_dest = 0; - static bool output_only_modified = true; - if (ImGui::Button("Export")) - { - if (output_dest == 0) - ImGui::LogToClipboard(); - else - ImGui::LogToTTY(); - ImGui::LogText("ImVec4* colors = ImGui::GetStyle().Colors;" IM_NEWLINE); - for (int i = 0; i < ImGuiCol_COUNT; i++) - { - const ImVec4& col = style.Colors[i]; - const char* name = ImGui::GetStyleColorName(i); - if (!output_only_modified || memcmp(&col, &ref->Colors[i], sizeof(ImVec4)) != 0) - ImGui::LogText("colors[ImGuiCol_%s]%*s= ImVec4(%.2ff, %.2ff, %.2ff, %.2ff);" IM_NEWLINE, name, 23 - (int)strlen(name), "", col.x, col.y, col.z, col.w); - } - ImGui::LogFinish(); - } - ImGui::SameLine(); ImGui::SetNextItemWidth(120); ImGui::Combo("##output_type", &output_dest, "To Clipboard\0To TTY\0"); - ImGui::SameLine(); ImGui::Checkbox("Only Modified Colors", &output_only_modified); - - static ImGuiTextFilter filter; - filter.Draw("Filter colors", ImGui::GetFontSize() * 16); - - static ImGuiColorEditFlags alpha_flags = 0; - if (ImGui::RadioButton("Opaque", alpha_flags == 0)) { alpha_flags = 0; } ImGui::SameLine(); - if (ImGui::RadioButton("Alpha", alpha_flags == ImGuiColorEditFlags_AlphaPreview)) { alpha_flags = ImGuiColorEditFlags_AlphaPreview; } ImGui::SameLine(); - if (ImGui::RadioButton("Both", alpha_flags == ImGuiColorEditFlags_AlphaPreviewHalf)) { alpha_flags = ImGuiColorEditFlags_AlphaPreviewHalf; } ImGui::SameLine(); - HelpMarker("In the color list:\nLeft-click on colored square to open color picker,\nRight-click to open edit options menu."); - - ImGui::BeginChild("##colors", ImVec2(0, 0), true, ImGuiWindowFlags_AlwaysVerticalScrollbar | ImGuiWindowFlags_AlwaysHorizontalScrollbar | ImGuiWindowFlags_NavFlattened); - ImGui::PushItemWidth(-160); - for (int i = 0; i < ImGuiCol_COUNT; i++) - { - const char* name = ImGui::GetStyleColorName(i); - if (!filter.PassFilter(name)) - continue; - ImGui::PushID(i); - ImGui::ColorEdit4("##color", (float*)&style.Colors[i], ImGuiColorEditFlags_AlphaBar | alpha_flags); - if (memcmp(&style.Colors[i], &ref->Colors[i], sizeof(ImVec4)) != 0) - { - // Tips: in a real user application, you may want to merge and use an icon font into the main font, so instead of "Save"/"Revert" you'd use icons. - // Read the FAQ and docs/FONTS.txt about using icon fonts. It's really easy and super convenient! - ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Save")) ref->Colors[i] = style.Colors[i]; - ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); if (ImGui::Button("Revert")) style.Colors[i] = ref->Colors[i]; - } - ImGui::SameLine(0.0f, style.ItemInnerSpacing.x); - ImGui::TextUnformatted(name); - ImGui::PopID(); - } - ImGui::PopItemWidth(); - ImGui::EndChild(); - - ImGui::EndTabItem(); - } - - if (ImGui::BeginTabItem("Fonts")) - { - ImGuiIO& io = ImGui::GetIO(); - ImFontAtlas* atlas = io.Fonts; - HelpMarker("Read FAQ and docs/FONTS.txt for details on font loading."); - ImGui::PushItemWidth(120); - for (int i = 0; i < atlas->Fonts.Size; i++) - { - ImFont* font = atlas->Fonts[i]; - ImGui::PushID(font); - bool font_details_opened = ImGui::TreeNode(font, "Font %d: \"%s\"\n%.2f px, %d glyphs, %d file(s)", i, font->ConfigData ? font->ConfigData[0].Name : "", font->FontSize, font->Glyphs.Size, font->ConfigDataCount); - ImGui::SameLine(); if (ImGui::SmallButton("Set as default")) { io.FontDefault = font; } - if (font_details_opened) - { - ImGui::PushFont(font); - ImGui::Text("The quick brown fox jumps over the lazy dog"); - ImGui::PopFont(); - ImGui::DragFloat("Font scale", &font->Scale, 0.005f, 0.3f, 2.0f, "%.1f"); // Scale only this font - ImGui::SameLine(); HelpMarker("Note than the default embedded font is NOT meant to be scaled.\n\nFont are currently rendered into bitmaps at a given size at the time of building the atlas. You may oversample them to get some flexibility with scaling. You can also render at multiple sizes and select which one to use at runtime.\n\n(Glimmer of hope: the atlas system should hopefully be rewritten in the future to make scaling more natural and automatic.)"); - ImGui::InputFloat("Font offset", &font->DisplayOffset.y, 1, 1, "%.0f"); - ImGui::Text("Ascent: %f, Descent: %f, Height: %f", font->Ascent, font->Descent, font->Ascent - font->Descent); - ImGui::Text("Fallback character: '%c' (U+%04X)", font->FallbackChar, font->FallbackChar); - ImGui::Text("Ellipsis character: '%c' (U+%04X)", font->EllipsisChar, font->EllipsisChar); - const float surface_sqrt = sqrtf((float)font->MetricsTotalSurface); - ImGui::Text("Texture Area: about %d px ~%dx%d px", font->MetricsTotalSurface, (int)surface_sqrt, (int)surface_sqrt); - for (int config_i = 0; config_i < font->ConfigDataCount; config_i++) - if (font->ConfigData) - if (const ImFontConfig* cfg = &font->ConfigData[config_i]) - ImGui::BulletText("Input %d: \'%s\', Oversample: (%d,%d), PixelSnapH: %d", config_i, cfg->Name, cfg->OversampleH, cfg->OversampleV, cfg->PixelSnapH); - if (ImGui::TreeNode("Glyphs", "Glyphs (%d)", font->Glyphs.Size)) - { - // Display all glyphs of the fonts in separate pages of 256 characters - for (unsigned int base = 0; base <= IM_UNICODE_CODEPOINT_MAX; base += 256) - { - // Skip ahead if a large bunch of glyphs are not present in the font (test in chunks of 4k) - // This is only a small optimization to reduce the number of iterations when IM_UNICODE_MAX_CODEPOINT is large. - // (if ImWchar==ImWchar32 we will do at least about 272 queries here) - if (!(base & 4095) && font->IsGlyphRangeUnused(base, base + 4095)) - { - base += 4096 - 256; - continue; - } - - int count = 0; - for (unsigned int n = 0; n < 256; n++) - count += font->FindGlyphNoFallback((ImWchar)(base + n)) ? 1 : 0; - if (count > 0 && ImGui::TreeNode((void*)(intptr_t)base, "U+%04X..U+%04X (%d %s)", base, base + 255, count, count > 1 ? "glyphs" : "glyph")) - { - float cell_size = font->FontSize * 1; - float cell_spacing = style.ItemSpacing.y; - ImVec2 base_pos = ImGui::GetCursorScreenPos(); - ImDrawList* draw_list = ImGui::GetWindowDrawList(); - for (unsigned int n = 0; n < 256; n++) - { - ImVec2 cell_p1(base_pos.x + (n % 16) * (cell_size + cell_spacing), base_pos.y + (n / 16) * (cell_size + cell_spacing)); - ImVec2 cell_p2(cell_p1.x + cell_size, cell_p1.y + cell_size); - const ImFontGlyph* glyph = font->FindGlyphNoFallback((ImWchar)(base + n)); - draw_list->AddRect(cell_p1, cell_p2, glyph ? IM_COL32(255, 255, 255, 100) : IM_COL32(255, 255, 255, 50)); - if (glyph) - font->RenderChar(draw_list, cell_size, cell_p1, ImGui::GetColorU32(ImGuiCol_Text), (ImWchar)(base + n)); // We use ImFont::RenderChar as a shortcut because we don't have UTF-8 conversion functions available to generate a string. - if (glyph && ImGui::IsMouseHoveringRect(cell_p1, cell_p2)) - { - ImGui::BeginTooltip(); - ImGui::Text("Codepoint: U+%04X", base + n); - ImGui::Separator(); - ImGui::Text("Visible: %d", glyph->Visible); - ImGui::Text("AdvanceX: %.1f", glyph->AdvanceX); - ImGui::Text("Pos: (%.2f,%.2f)->(%.2f,%.2f)", glyph->X0, glyph->Y0, glyph->X1, glyph->Y1); - ImGui::Text("UV: (%.3f,%.3f)->(%.3f,%.3f)", glyph->U0, glyph->V0, glyph->U1, glyph->V1); - ImGui::EndTooltip(); - } - } - ImGui::Dummy(ImVec2((cell_size + cell_spacing) * 16, (cell_size + cell_spacing) * 16)); - ImGui::TreePop(); - } - } - ImGui::TreePop(); - } - ImGui::TreePop(); - } - ImGui::PopID(); - } - if (ImGui::TreeNode("Atlas texture", "Atlas texture (%dx%d pixels)", atlas->TexWidth, atlas->TexHeight)) - { - ImVec4 tint_col = ImVec4(1.0f, 1.0f, 1.0f, 1.0f); - ImVec4 border_col = ImVec4(1.0f, 1.0f, 1.0f, 0.5f); - ImGui::Image(atlas->TexID, ImVec2((float)atlas->TexWidth, (float)atlas->TexHeight), ImVec2(0, 0), ImVec2(1, 1), tint_col, border_col); - ImGui::TreePop(); - } - - HelpMarker("Those are old settings provided for convenience.\nHowever, the _correct_ way of scaling your UI is currently to reload your font at the designed size, rebuild the font atlas, and call style.ScaleAllSizes() on a reference ImGuiStyle structure."); - static float window_scale = 1.0f; - if (ImGui::DragFloat("window scale", &window_scale, 0.005f, 0.3f, 2.0f, "%.2f")) // scale only this window - ImGui::SetWindowFontScale(window_scale); - ImGui::DragFloat("global scale", &io.FontGlobalScale, 0.005f, 0.3f, 2.0f, "%.2f"); // scale everything - ImGui::PopItemWidth(); - - ImGui::EndTabItem(); - } - - if (ImGui::BeginTabItem("Rendering")) - { - ImGui::Checkbox("Anti-aliased lines", &style.AntiAliasedLines); ImGui::SameLine(); HelpMarker("When disabling anti-aliasing lines, you'll probably want to disable borders in your style as well."); - ImGui::Checkbox("Anti-aliased fill", &style.AntiAliasedFill); - ImGui::PushItemWidth(100); - ImGui::DragFloat("Curve Tessellation Tolerance", &style.CurveTessellationTol, 0.02f, 0.10f, 10.0f, "%.2f"); - if (style.CurveTessellationTol < 0.10f) style.CurveTessellationTol = 0.10f; - ImGui::DragFloat("Circle segment Max Error", &style.CircleSegmentMaxError, 0.01f, 0.10f, 10.0f, "%.2f"); - ImGui::DragFloat("Global Alpha", &style.Alpha, 0.005f, 0.20f, 1.0f, "%.2f"); // Not exposing zero here so user doesn't "lose" the UI (zero alpha clips all widgets). But application code could have a toggle to switch between zero and non-zero. - ImGui::PopItemWidth(); - - ImGui::EndTabItem(); - } - - ImGui::EndTabBar(); - } - - ImGui::PopItemWidth(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Main Menu Bar / ShowExampleAppMainMenuBar() -//----------------------------------------------------------------------------- -// - ShowExampleAppMainMenuBar() -// - ShowExampleMenuFile() -//----------------------------------------------------------------------------- - -// Demonstrate creating a "main" fullscreen menu bar and populating it. -// Note the difference between BeginMainMenuBar() and BeginMenuBar(): -// - BeginMenuBar() = menu-bar inside current window we Begin()-ed into (the window needs the ImGuiWindowFlags_MenuBar flag) -// - BeginMainMenuBar() = helper to create menu-bar-sized window at the top of the main viewport + call BeginMenuBar() into it. -static void ShowExampleAppMainMenuBar() -{ - if (ImGui::BeginMainMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - if (ImGui::BeginMenu("Edit")) - { - if (ImGui::MenuItem("Undo", "CTRL+Z")) {} - if (ImGui::MenuItem("Redo", "CTRL+Y", false, false)) {} // Disabled item - ImGui::Separator(); - if (ImGui::MenuItem("Cut", "CTRL+X")) {} - if (ImGui::MenuItem("Copy", "CTRL+C")) {} - if (ImGui::MenuItem("Paste", "CTRL+V")) {} - ImGui::EndMenu(); - } - ImGui::EndMainMenuBar(); - } -} - -// Note that shortcuts are currently provided for display only (future version will add flags to BeginMenu to process shortcuts) -static void ShowExampleMenuFile() -{ - ImGui::MenuItem("(dummy menu)", NULL, false, false); - if (ImGui::MenuItem("New")) {} - if (ImGui::MenuItem("Open", "Ctrl+O")) {} - if (ImGui::BeginMenu("Open Recent")) - { - ImGui::MenuItem("fish_hat.c"); - ImGui::MenuItem("fish_hat.inl"); - ImGui::MenuItem("fish_hat.h"); - if (ImGui::BeginMenu("More..")) - { - ImGui::MenuItem("Hello"); - ImGui::MenuItem("Sailor"); - if (ImGui::BeginMenu("Recurse..")) - { - ShowExampleMenuFile(); - ImGui::EndMenu(); - } - ImGui::EndMenu(); - } - ImGui::EndMenu(); - } - if (ImGui::MenuItem("Save", "Ctrl+S")) {} - if (ImGui::MenuItem("Save As..")) {} - - ImGui::Separator(); - if (ImGui::BeginMenu("Options")) - { - static bool enabled = true; - ImGui::MenuItem("Enabled", "", &enabled); - ImGui::BeginChild("child", ImVec2(0, 60), true); - for (int i = 0; i < 10; i++) - ImGui::Text("Scrolling Text %d", i); - ImGui::EndChild(); - static float f = 0.5f; - static int n = 0; - ImGui::SliderFloat("Value", &f, 0.0f, 1.0f); - ImGui::InputFloat("Input", &f, 0.1f); - ImGui::Combo("Combo", &n, "Yes\0No\0Maybe\0\0"); - ImGui::EndMenu(); - } - - if (ImGui::BeginMenu("Colors")) - { - float sz = ImGui::GetTextLineHeight(); - for (int i = 0; i < ImGuiCol_COUNT; i++) - { - const char* name = ImGui::GetStyleColorName((ImGuiCol)i); - ImVec2 p = ImGui::GetCursorScreenPos(); - ImGui::GetWindowDrawList()->AddRectFilled(p, ImVec2(p.x+sz, p.y+sz), ImGui::GetColorU32((ImGuiCol)i)); - ImGui::Dummy(ImVec2(sz, sz)); - ImGui::SameLine(); - ImGui::MenuItem(name); - } - ImGui::EndMenu(); - } - - // Here we demonstrate appending again to the "Options" menu (which we already created above) - // Of course in this demo it is a little bit silly that this function calls BeginMenu("Options") twice. - // In a real code-base using it would make senses to use this feature from very different code locations. - if (ImGui::BeginMenu("Options")) // <-- Append! - { - static bool b = true; - ImGui::Checkbox("SomeOption", &b); - ImGui::EndMenu(); - } - - if (ImGui::BeginMenu("Disabled", false)) // Disabled - { - IM_ASSERT(0); - } - if (ImGui::MenuItem("Checked", NULL, true)) {} - if (ImGui::MenuItem("Quit", "Alt+F4")) {} -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Debug Console / ShowExampleAppConsole() -//----------------------------------------------------------------------------- - -// Demonstrate creating a simple console window, with scrolling, filtering, completion and history. -// For the console example, here we are using a more C++ like approach of declaring a class to hold the data and the functions. -struct ExampleAppConsole -{ - char InputBuf[256]; - ImVector Items; - ImVector Commands; - ImVector History; - int HistoryPos; // -1: new line, 0..History.Size-1 browsing history. - ImGuiTextFilter Filter; - bool AutoScroll; - bool ScrollToBottom; - - ExampleAppConsole() - { - ClearLog(); - memset(InputBuf, 0, sizeof(InputBuf)); - HistoryPos = -1; - Commands.push_back("HELP"); - Commands.push_back("HISTORY"); - Commands.push_back("CLEAR"); - Commands.push_back("CLASSIFY"); // "classify" is only here to provide an example of "C"+[tab] completing to "CL" and displaying matches. - AutoScroll = true; - ScrollToBottom = false; - AddLog("Welcome to Dear ImGui!"); - } - ~ExampleAppConsole() - { - ClearLog(); - for (int i = 0; i < History.Size; i++) - free(History[i]); - } - - // Portable helpers - static int Stricmp(const char* str1, const char* str2) { int d; while ((d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; } return d; } - static int Strnicmp(const char* str1, const char* str2, int n) { int d = 0; while (n > 0 && (d = toupper(*str2) - toupper(*str1)) == 0 && *str1) { str1++; str2++; n--; } return d; } - static char* Strdup(const char *str) { size_t len = strlen(str) + 1; void* buf = malloc(len); IM_ASSERT(buf); return (char*)memcpy(buf, (const void*)str, len); } - static void Strtrim(char* str) { char* str_end = str + strlen(str); while (str_end > str && str_end[-1] == ' ') str_end--; *str_end = 0; } - - void ClearLog() - { - for (int i = 0; i < Items.Size; i++) - free(Items[i]); - Items.clear(); - } - - void AddLog(const char* fmt, ...) IM_FMTARGS(2) - { - // FIXME-OPT - char buf[1024]; - va_list args; - va_start(args, fmt); - vsnprintf(buf, IM_ARRAYSIZE(buf), fmt, args); - buf[IM_ARRAYSIZE(buf)-1] = 0; - va_end(args); - Items.push_back(Strdup(buf)); - } - - void Draw(const char* title, bool* p_open) - { - ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiCond_FirstUseEver); - if (!ImGui::Begin(title, p_open)) - { - ImGui::End(); - return; - } - - // As a specific feature guaranteed by the library, after calling Begin() the last Item represent the title bar. So e.g. IsItemHovered() will return true when hovering the title bar. - // Here we create a context menu only available from the title bar. - if (ImGui::BeginPopupContextItem()) - { - if (ImGui::MenuItem("Close Console")) - *p_open = false; - ImGui::EndPopup(); - } - - ImGui::TextWrapped("This example implements a console with basic coloring, completion and history. A more elaborate implementation may want to store entries along with extra data such as timestamp, emitter, etc."); - ImGui::TextWrapped("Enter 'HELP' for help, press TAB to use text completion."); - - // TODO: display items starting from the bottom - - if (ImGui::SmallButton("Add Dummy Text")) { AddLog("%d some text", Items.Size); AddLog("some more text"); AddLog("display very important message here!"); } ImGui::SameLine(); - if (ImGui::SmallButton("Add Dummy Error")) { AddLog("[error] something went wrong"); } ImGui::SameLine(); - if (ImGui::SmallButton("Clear")) { ClearLog(); } ImGui::SameLine(); - bool copy_to_clipboard = ImGui::SmallButton("Copy"); - //static float t = 0.0f; if (ImGui::GetTime() - t > 0.02f) { t = ImGui::GetTime(); AddLog("Spam %f", t); } - - ImGui::Separator(); - - // Options menu - if (ImGui::BeginPopup("Options")) - { - ImGui::Checkbox("Auto-scroll", &AutoScroll); - ImGui::EndPopup(); - } - - // Options, Filter - if (ImGui::Button("Options")) - ImGui::OpenPopup("Options"); - ImGui::SameLine(); - Filter.Draw("Filter (\"incl,-excl\") (\"error\")", 180); - ImGui::Separator(); - - const float footer_height_to_reserve = ImGui::GetStyle().ItemSpacing.y + ImGui::GetFrameHeightWithSpacing(); // 1 separator, 1 input text - ImGui::BeginChild("ScrollingRegion", ImVec2(0, -footer_height_to_reserve), false, ImGuiWindowFlags_HorizontalScrollbar); // Leave room for 1 separator + 1 InputText - if (ImGui::BeginPopupContextWindow()) - { - if (ImGui::Selectable("Clear")) ClearLog(); - ImGui::EndPopup(); - } - - // Display every line as a separate entry so we can change their color or add custom widgets. If you only want raw text you can use ImGui::TextUnformatted(log.begin(), log.end()); - // NB- if you have thousands of entries this approach may be too inefficient and may require user-side clipping to only process visible items. - // You can seek and display only the lines that are visible using the ImGuiListClipper helper, if your elements are evenly spaced and you have cheap random access to the elements. - // To use the clipper we could replace the 'for (int i = 0; i < Items.Size; i++)' loop with: - // ImGuiListClipper clipper(Items.Size); - // while (clipper.Step()) - // for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) - // However, note that you can not use this code as is if a filter is active because it breaks the 'cheap random-access' property. We would need random-access on the post-filtered list. - // A typical application wanting coarse clipping and filtering may want to pre-compute an array of indices that passed the filtering test, recomputing this array when user changes the filter, - // and appending newly elements as they are inserted. This is left as a task to the user until we can manage to improve this example code! - // If your items are of variable size you may want to implement code similar to what ImGuiListClipper does. Or split your data into fixed height items to allow random-seeking into your list. - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(4,1)); // Tighten spacing - if (copy_to_clipboard) - ImGui::LogToClipboard(); - for (int i = 0; i < Items.Size; i++) - { - const char* item = Items[i]; - if (!Filter.PassFilter(item)) - continue; - - // Normally you would store more information in your item (e.g. make Items[] an array of structure, store color/type etc.) - bool pop_color = false; - if (strstr(item, "[error]")) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.0f, 0.4f, 0.4f, 1.0f)); pop_color = true; } - else if (strncmp(item, "# ", 2) == 0) { ImGui::PushStyleColor(ImGuiCol_Text, ImVec4(1.0f, 0.8f, 0.6f, 1.0f)); pop_color = true; } - ImGui::TextUnformatted(item); - if (pop_color) - ImGui::PopStyleColor(); - } - if (copy_to_clipboard) - ImGui::LogFinish(); - - if (ScrollToBottom || (AutoScroll && ImGui::GetScrollY() >= ImGui::GetScrollMaxY())) - ImGui::SetScrollHereY(1.0f); - ScrollToBottom = false; - - ImGui::PopStyleVar(); - ImGui::EndChild(); - ImGui::Separator(); - - // Command-line - bool reclaim_focus = false; - if (ImGui::InputText("Input", InputBuf, IM_ARRAYSIZE(InputBuf), ImGuiInputTextFlags_EnterReturnsTrue|ImGuiInputTextFlags_CallbackCompletion|ImGuiInputTextFlags_CallbackHistory, &TextEditCallbackStub, (void*)this)) - { - char* s = InputBuf; - Strtrim(s); - if (s[0]) - ExecCommand(s); - strcpy(s, ""); - reclaim_focus = true; - } - - // Auto-focus on window apparition - ImGui::SetItemDefaultFocus(); - if (reclaim_focus) - ImGui::SetKeyboardFocusHere(-1); // Auto focus previous widget - - ImGui::End(); - } - - void ExecCommand(const char* command_line) - { - AddLog("# %s\n", command_line); - - // Insert into history. First find match and delete it so it can be pushed to the back. This isn't trying to be smart or optimal. - HistoryPos = -1; - for (int i = History.Size-1; i >= 0; i--) - if (Stricmp(History[i], command_line) == 0) - { - free(History[i]); - History.erase(History.begin() + i); - break; - } - History.push_back(Strdup(command_line)); - - // Process command - if (Stricmp(command_line, "CLEAR") == 0) - { - ClearLog(); - } - else if (Stricmp(command_line, "HELP") == 0) - { - AddLog("Commands:"); - for (int i = 0; i < Commands.Size; i++) - AddLog("- %s", Commands[i]); - } - else if (Stricmp(command_line, "HISTORY") == 0) - { - int first = History.Size - 10; - for (int i = first > 0 ? first : 0; i < History.Size; i++) - AddLog("%3d: %s\n", i, History[i]); - } - else - { - AddLog("Unknown command: '%s'\n", command_line); - } - - // On commad input, we scroll to bottom even if AutoScroll==false - ScrollToBottom = true; - } - - static int TextEditCallbackStub(ImGuiInputTextCallbackData* data) // In C++11 you are better off using lambdas for this sort of forwarding callbacks - { - ExampleAppConsole* console = (ExampleAppConsole*)data->UserData; - return console->TextEditCallback(data); - } - - int TextEditCallback(ImGuiInputTextCallbackData* data) - { - //AddLog("cursor: %d, selection: %d-%d", data->CursorPos, data->SelectionStart, data->SelectionEnd); - switch (data->EventFlag) - { - case ImGuiInputTextFlags_CallbackCompletion: - { - // Example of TEXT COMPLETION - - // Locate beginning of current word - const char* word_end = data->Buf + data->CursorPos; - const char* word_start = word_end; - while (word_start > data->Buf) - { - const char c = word_start[-1]; - if (c == ' ' || c == '\t' || c == ',' || c == ';') - break; - word_start--; - } - - // Build a list of candidates - ImVector candidates; - for (int i = 0; i < Commands.Size; i++) - if (Strnicmp(Commands[i], word_start, (int)(word_end-word_start)) == 0) - candidates.push_back(Commands[i]); - - if (candidates.Size == 0) - { - // No match - AddLog("No match for \"%.*s\"!\n", (int)(word_end-word_start), word_start); - } - else if (candidates.Size == 1) - { - // Single match. Delete the beginning of the word and replace it entirely so we've got nice casing - data->DeleteChars((int)(word_start-data->Buf), (int)(word_end-word_start)); - data->InsertChars(data->CursorPos, candidates[0]); - data->InsertChars(data->CursorPos, " "); - } - else - { - // Multiple matches. Complete as much as we can, so inputing "C" will complete to "CL" and display "CLEAR" and "CLASSIFY" - int match_len = (int)(word_end - word_start); - for (;;) - { - int c = 0; - bool all_candidates_matches = true; - for (int i = 0; i < candidates.Size && all_candidates_matches; i++) - if (i == 0) - c = toupper(candidates[i][match_len]); - else if (c == 0 || c != toupper(candidates[i][match_len])) - all_candidates_matches = false; - if (!all_candidates_matches) - break; - match_len++; - } - - if (match_len > 0) - { - data->DeleteChars((int)(word_start - data->Buf), (int)(word_end-word_start)); - data->InsertChars(data->CursorPos, candidates[0], candidates[0] + match_len); - } - - // List matches - AddLog("Possible matches:\n"); - for (int i = 0; i < candidates.Size; i++) - AddLog("- %s\n", candidates[i]); - } - - break; - } - case ImGuiInputTextFlags_CallbackHistory: - { - // Example of HISTORY - const int prev_history_pos = HistoryPos; - if (data->EventKey == ImGuiKey_UpArrow) - { - if (HistoryPos == -1) - HistoryPos = History.Size - 1; - else if (HistoryPos > 0) - HistoryPos--; - } - else if (data->EventKey == ImGuiKey_DownArrow) - { - if (HistoryPos != -1) - if (++HistoryPos >= History.Size) - HistoryPos = -1; - } - - // A better implementation would preserve the data on the current input line along with cursor position. - if (prev_history_pos != HistoryPos) - { - const char* history_str = (HistoryPos >= 0) ? History[HistoryPos] : ""; - data->DeleteChars(0, data->BufTextLen); - data->InsertChars(0, history_str); - } - } - } - return 0; - } -}; - -static void ShowExampleAppConsole(bool* p_open) -{ - static ExampleAppConsole console; - console.Draw("Example: Console", p_open); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Debug Log / ShowExampleAppLog() -//----------------------------------------------------------------------------- - -// Usage: -// static ExampleAppLog my_log; -// my_log.AddLog("Hello %d world\n", 123); -// my_log.Draw("title"); -struct ExampleAppLog -{ - ImGuiTextBuffer Buf; - ImGuiTextFilter Filter; - ImVector LineOffsets; // Index to lines offset. We maintain this with AddLog() calls, allowing us to have a random access on lines - bool AutoScroll; // Keep scrolling if already at the bottom - - ExampleAppLog() - { - AutoScroll = true; - Clear(); - } - - void Clear() - { - Buf.clear(); - LineOffsets.clear(); - LineOffsets.push_back(0); - } - - void AddLog(const char* fmt, ...) IM_FMTARGS(2) - { - int old_size = Buf.size(); - va_list args; - va_start(args, fmt); - Buf.appendfv(fmt, args); - va_end(args); - for (int new_size = Buf.size(); old_size < new_size; old_size++) - if (Buf[old_size] == '\n') - LineOffsets.push_back(old_size + 1); - } - - void Draw(const char* title, bool* p_open = NULL) - { - if (!ImGui::Begin(title, p_open)) - { - ImGui::End(); - return; - } - - // Options menu - if (ImGui::BeginPopup("Options")) - { - ImGui::Checkbox("Auto-scroll", &AutoScroll); - ImGui::EndPopup(); - } - - // Main window - if (ImGui::Button("Options")) - ImGui::OpenPopup("Options"); - ImGui::SameLine(); - bool clear = ImGui::Button("Clear"); - ImGui::SameLine(); - bool copy = ImGui::Button("Copy"); - ImGui::SameLine(); - Filter.Draw("Filter", -100.0f); - - ImGui::Separator(); - ImGui::BeginChild("scrolling", ImVec2(0,0), false, ImGuiWindowFlags_HorizontalScrollbar); - - if (clear) - Clear(); - if (copy) - ImGui::LogToClipboard(); - - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0, 0)); - const char* buf = Buf.begin(); - const char* buf_end = Buf.end(); - if (Filter.IsActive()) - { - // In this example we don't use the clipper when Filter is enabled. - // This is because we don't have a random access on the result on our filter. - // A real application processing logs with ten of thousands of entries may want to store the result of search/filter. - // especially if the filtering function is not trivial (e.g. reg-exp). - for (int line_no = 0; line_no < LineOffsets.Size; line_no++) - { - const char* line_start = buf + LineOffsets[line_no]; - const char* line_end = (line_no + 1 < LineOffsets.Size) ? (buf + LineOffsets[line_no + 1] - 1) : buf_end; - if (Filter.PassFilter(line_start, line_end)) - ImGui::TextUnformatted(line_start, line_end); - } - } - else - { - // The simplest and easy way to display the entire buffer: - // ImGui::TextUnformatted(buf_begin, buf_end); - // And it'll just work. TextUnformatted() has specialization for large blob of text and will fast-forward to skip non-visible lines. - // Here we instead demonstrate using the clipper to only process lines that are within the visible area. - // If you have tens of thousands of items and their processing cost is non-negligible, coarse clipping them on your side is recommended. - // Using ImGuiListClipper requires A) random access into your data, and B) items all being the same height, - // both of which we can handle since we an array pointing to the beginning of each line of text. - // When using the filter (in the block of code above) we don't have random access into the data to display anymore, which is why we don't use the clipper. - // Storing or skimming through the search result would make it possible (and would be recommended if you want to search through tens of thousands of entries) - ImGuiListClipper clipper; - clipper.Begin(LineOffsets.Size); - while (clipper.Step()) - { - for (int line_no = clipper.DisplayStart; line_no < clipper.DisplayEnd; line_no++) - { - const char* line_start = buf + LineOffsets[line_no]; - const char* line_end = (line_no + 1 < LineOffsets.Size) ? (buf + LineOffsets[line_no + 1] - 1) : buf_end; - ImGui::TextUnformatted(line_start, line_end); - } - } - clipper.End(); - } - ImGui::PopStyleVar(); - - if (AutoScroll && ImGui::GetScrollY() >= ImGui::GetScrollMaxY()) - ImGui::SetScrollHereY(1.0f); - - ImGui::EndChild(); - ImGui::End(); - } -}; - -// Demonstrate creating a simple log window with basic filtering. -static void ShowExampleAppLog(bool* p_open) -{ - static ExampleAppLog log; - - // For the demo: add a debug button _BEFORE_ the normal log window contents - // We take advantage of a rarely used feature: multiple calls to Begin()/End() are appending to the _same_ window. - // Most of the contents of the window will be added by the log.Draw() call. - ImGui::SetNextWindowSize(ImVec2(500, 400), ImGuiCond_FirstUseEver); - ImGui::Begin("Example: Log", p_open); - if (ImGui::SmallButton("[Debug] Add 5 entries")) - { - static int counter = 0; - for (int n = 0; n < 5; n++) - { - const char* categories[3] = { "info", "warn", "error" }; - const char* words[] = { "Bumfuzzled", "Cattywampus", "Snickersnee", "Abibliophobia", "Absquatulate", "Nincompoop", "Pauciloquent" }; - log.AddLog("[%05d] [%s] Hello, current time is %.1f, here's a word: '%s'\n", - ImGui::GetFrameCount(), categories[counter % IM_ARRAYSIZE(categories)], ImGui::GetTime(), words[counter % IM_ARRAYSIZE(words)]); - counter++; - } - } - ImGui::End(); - - // Actually call in the regular Log helper (which will Begin() into the same window as we just did) - log.Draw("Example: Log", p_open); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Simple Layout / ShowExampleAppLayout() -//----------------------------------------------------------------------------- - -// Demonstrate create a window with multiple child windows. -static void ShowExampleAppLayout(bool* p_open) -{ - ImGui::SetNextWindowSize(ImVec2(500, 440), ImGuiCond_FirstUseEver); - if (ImGui::Begin("Example: Simple layout", p_open, ImGuiWindowFlags_MenuBar)) - { - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - if (ImGui::MenuItem("Close")) *p_open = false; - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); - } - - // left - static int selected = 0; - ImGui::BeginChild("left pane", ImVec2(150, 0), true); - for (int i = 0; i < 100; i++) - { - char label[128]; - sprintf(label, "MyObject %d", i); - if (ImGui::Selectable(label, selected == i)) - selected = i; - } - ImGui::EndChild(); - ImGui::SameLine(); - - // right - ImGui::BeginGroup(); - ImGui::BeginChild("item view", ImVec2(0, -ImGui::GetFrameHeightWithSpacing())); // Leave room for 1 line below us - ImGui::Text("MyObject: %d", selected); - ImGui::Separator(); - if (ImGui::BeginTabBar("##Tabs", ImGuiTabBarFlags_None)) - { - if (ImGui::BeginTabItem("Description")) - { - ImGui::TextWrapped("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. "); - ImGui::EndTabItem(); - } - if (ImGui::BeginTabItem("Details")) - { - ImGui::Text("ID: 0123456789"); - ImGui::EndTabItem(); - } - ImGui::EndTabBar(); - } - ImGui::EndChild(); - if (ImGui::Button("Revert")) {} - ImGui::SameLine(); - if (ImGui::Button("Save")) {} - ImGui::EndGroup(); - } - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Property Editor / ShowExampleAppPropertyEditor() -//----------------------------------------------------------------------------- - -// Demonstrate create a simple property editor. -static void ShowExampleAppPropertyEditor(bool* p_open) -{ - ImGui::SetNextWindowSize(ImVec2(430,450), ImGuiCond_FirstUseEver); - if (!ImGui::Begin("Example: Property editor", p_open)) - { - ImGui::End(); - return; - } - - HelpMarker("This example shows how you may implement a property editor using two columns.\nAll objects/fields data are dummies here.\nRemember that in many simple cases, you can use ImGui::SameLine(xxx) to position\nyour cursor horizontally instead of using the Columns() API."); - - ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, ImVec2(2,2)); - ImGui::Columns(2); - ImGui::Separator(); - - struct funcs - { - static void ShowDummyObject(const char* prefix, int uid) - { - ImGui::PushID(uid); // Use object uid as identifier. Most commonly you could also use the object pointer as a base ID. - ImGui::AlignTextToFramePadding(); // Text and Tree nodes are less high than regular widgets, here we add vertical spacing to make the tree lines equal high. - bool node_open = ImGui::TreeNode("Object", "%s_%u", prefix, uid); - ImGui::NextColumn(); - ImGui::AlignTextToFramePadding(); - ImGui::Text("my sailor is rich"); - ImGui::NextColumn(); - if (node_open) - { - static float dummy_members[8] = { 0.0f,0.0f,1.0f,3.1416f,100.0f,999.0f }; - for (int i = 0; i < 8; i++) - { - ImGui::PushID(i); // Use field index as identifier. - if (i < 2) - { - ShowDummyObject("Child", 424242); - } - else - { - // Here we use a TreeNode to highlight on hover (we could use e.g. Selectable as well) - ImGui::AlignTextToFramePadding(); - ImGui::TreeNodeEx("Field", ImGuiTreeNodeFlags_Leaf | ImGuiTreeNodeFlags_NoTreePushOnOpen | ImGuiTreeNodeFlags_Bullet, "Field_%d", i); - ImGui::NextColumn(); - ImGui::SetNextItemWidth(-1); - if (i >= 5) - ImGui::InputFloat("##value", &dummy_members[i], 1.0f); - else - ImGui::DragFloat("##value", &dummy_members[i], 0.01f); - ImGui::NextColumn(); - } - ImGui::PopID(); - } - ImGui::TreePop(); - } - ImGui::PopID(); - } - }; - - // Iterate dummy objects with dummy members (all the same data) - for (int obj_i = 0; obj_i < 3; obj_i++) - funcs::ShowDummyObject("Object", obj_i); - - ImGui::Columns(1); - ImGui::Separator(); - ImGui::PopStyleVar(); - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Long Text / ShowExampleAppLongText() -//----------------------------------------------------------------------------- - -// Demonstrate/test rendering huge amount of text, and the incidence of clipping. -static void ShowExampleAppLongText(bool* p_open) -{ - ImGui::SetNextWindowSize(ImVec2(520,600), ImGuiCond_FirstUseEver); - if (!ImGui::Begin("Example: Long text display", p_open)) - { - ImGui::End(); - return; - } - - static int test_type = 0; - static ImGuiTextBuffer log; - static int lines = 0; - ImGui::Text("Printing unusually long amount of text."); - ImGui::Combo("Test type", &test_type, "Single call to TextUnformatted()\0Multiple calls to Text(), clipped\0Multiple calls to Text(), not clipped (slow)\0"); - ImGui::Text("Buffer contents: %d lines, %d bytes", lines, log.size()); - if (ImGui::Button("Clear")) { log.clear(); lines = 0; } - ImGui::SameLine(); - if (ImGui::Button("Add 1000 lines")) - { - for (int i = 0; i < 1000; i++) - log.appendf("%i The quick brown fox jumps over the lazy dog\n", lines+i); - lines += 1000; - } - ImGui::BeginChild("Log"); - switch (test_type) - { - case 0: - // Single call to TextUnformatted() with a big buffer - ImGui::TextUnformatted(log.begin(), log.end()); - break; - case 1: - { - // Multiple calls to Text(), manually coarsely clipped - demonstrate how to use the ImGuiListClipper helper. - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); - ImGuiListClipper clipper(lines); - while (clipper.Step()) - for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) - ImGui::Text("%i The quick brown fox jumps over the lazy dog", i); - ImGui::PopStyleVar(); - break; - } - case 2: - // Multiple calls to Text(), not clipped (slow) - ImGui::PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(0,0)); - for (int i = 0; i < lines; i++) - ImGui::Text("%i The quick brown fox jumps over the lazy dog", i); - ImGui::PopStyleVar(); - break; - } - ImGui::EndChild(); - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Auto Resize / ShowExampleAppAutoResize() -//----------------------------------------------------------------------------- - -// Demonstrate creating a window which gets auto-resized according to its content. -static void ShowExampleAppAutoResize(bool* p_open) -{ - if (!ImGui::Begin("Example: Auto-resizing window", p_open, ImGuiWindowFlags_AlwaysAutoResize)) - { - ImGui::End(); - return; - } - - static int lines = 10; - ImGui::Text("Window will resize every-frame to the size of its content.\nNote that you probably don't want to query the window size to\noutput your content because that would create a feedback loop."); - ImGui::SliderInt("Number of lines", &lines, 1, 20); - for (int i = 0; i < lines; i++) - ImGui::Text("%*sThis is line %d", i * 4, "", i); // Pad with space to extend size horizontally - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Constrained Resize / ShowExampleAppConstrainedResize() -//----------------------------------------------------------------------------- - -// Demonstrate creating a window with custom resize constraints. -static void ShowExampleAppConstrainedResize(bool* p_open) -{ - struct CustomConstraints // Helper functions to demonstrate programmatic constraints - { - static void Square(ImGuiSizeCallbackData* data) { data->DesiredSize.x = data->DesiredSize.y = (data->DesiredSize.x > data->DesiredSize.y ? data->DesiredSize.x : data->DesiredSize.y); } - static void Step(ImGuiSizeCallbackData* data) { float step = (float)(int)(intptr_t)data->UserData; data->DesiredSize = ImVec2((int)(data->DesiredSize.x / step + 0.5f) * step, (int)(data->DesiredSize.y / step + 0.5f) * step); } - }; - - static bool auto_resize = false; - static int type = 0; - static int display_lines = 10; - if (type == 0) ImGui::SetNextWindowSizeConstraints(ImVec2(-1, 0), ImVec2(-1, FLT_MAX)); // Vertical only - if (type == 1) ImGui::SetNextWindowSizeConstraints(ImVec2(0, -1), ImVec2(FLT_MAX, -1)); // Horizontal only - if (type == 2) ImGui::SetNextWindowSizeConstraints(ImVec2(100, 100), ImVec2(FLT_MAX, FLT_MAX)); // Width > 100, Height > 100 - if (type == 3) ImGui::SetNextWindowSizeConstraints(ImVec2(400, -1), ImVec2(500, -1)); // Width 400-500 - if (type == 4) ImGui::SetNextWindowSizeConstraints(ImVec2(-1, 400), ImVec2(-1, 500)); // Height 400-500 - if (type == 5) ImGui::SetNextWindowSizeConstraints(ImVec2(0, 0), ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::Square); // Always Square - if (type == 6) ImGui::SetNextWindowSizeConstraints(ImVec2(0, 0), ImVec2(FLT_MAX, FLT_MAX), CustomConstraints::Step, (void*)(intptr_t)100); // Fixed Step - - ImGuiWindowFlags flags = auto_resize ? ImGuiWindowFlags_AlwaysAutoResize : 0; - if (ImGui::Begin("Example: Constrained Resize", p_open, flags)) - { - const char* desc[] = - { - "Resize vertical only", - "Resize horizontal only", - "Width > 100, Height > 100", - "Width 400-500", - "Height 400-500", - "Custom: Always Square", - "Custom: Fixed Steps (100)", - }; - if (ImGui::Button("200x200")) { ImGui::SetWindowSize(ImVec2(200, 200)); } ImGui::SameLine(); - if (ImGui::Button("500x500")) { ImGui::SetWindowSize(ImVec2(500, 500)); } ImGui::SameLine(); - if (ImGui::Button("800x200")) { ImGui::SetWindowSize(ImVec2(800, 200)); } - ImGui::SetNextItemWidth(200); - ImGui::Combo("Constraint", &type, desc, IM_ARRAYSIZE(desc)); - ImGui::SetNextItemWidth(200); - ImGui::DragInt("Lines", &display_lines, 0.2f, 1, 100); - ImGui::Checkbox("Auto-resize", &auto_resize); - for (int i = 0; i < display_lines; i++) - ImGui::Text("%*sHello, sailor! Making this line long enough for the example.", i * 4, ""); - } - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Simple Overlay / ShowExampleAppSimpleOverlay() -//----------------------------------------------------------------------------- - -// Demonstrate creating a simple static window with no decoration + a context-menu to choose which corner of the screen to use. -static void ShowExampleAppSimpleOverlay(bool* p_open) -{ - const float DISTANCE = 10.0f; - static int corner = 0; - ImGuiIO& io = ImGui::GetIO(); - if (corner != -1) - { - ImVec2 window_pos = ImVec2((corner & 1) ? io.DisplaySize.x - DISTANCE : DISTANCE, (corner & 2) ? io.DisplaySize.y - DISTANCE : DISTANCE); - ImVec2 window_pos_pivot = ImVec2((corner & 1) ? 1.0f : 0.0f, (corner & 2) ? 1.0f : 0.0f); - ImGui::SetNextWindowPos(window_pos, ImGuiCond_Always, window_pos_pivot); - } - ImGui::SetNextWindowBgAlpha(0.35f); // Transparent background - if (ImGui::Begin("Example: Simple overlay", p_open, (corner != -1 ? ImGuiWindowFlags_NoMove : 0) | ImGuiWindowFlags_NoDecoration | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoNav)) - { - ImGui::Text("Simple overlay\n" "in the corner of the screen.\n" "(right-click to change position)"); - ImGui::Separator(); - if (ImGui::IsMousePosValid()) - ImGui::Text("Mouse Position: (%.1f,%.1f)", io.MousePos.x, io.MousePos.y); - else - ImGui::Text("Mouse Position: "); - if (ImGui::BeginPopupContextWindow()) - { - if (ImGui::MenuItem("Custom", NULL, corner == -1)) corner = -1; - if (ImGui::MenuItem("Top-left", NULL, corner == 0)) corner = 0; - if (ImGui::MenuItem("Top-right", NULL, corner == 1)) corner = 1; - if (ImGui::MenuItem("Bottom-left", NULL, corner == 2)) corner = 2; - if (ImGui::MenuItem("Bottom-right", NULL, corner == 3)) corner = 3; - if (p_open && ImGui::MenuItem("Close")) *p_open = false; - ImGui::EndPopup(); - } - } - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Manipulating Window Titles / ShowExampleAppWindowTitles() -//----------------------------------------------------------------------------- - -// Demonstrate using "##" and "###" in identifiers to manipulate ID generation. -// This apply to all regular items as well. Read FAQ section "How can I have multiple widgets with the same label? Can I have widget without a label? (Yes). A primer on the purpose of labels/IDs." for details. -static void ShowExampleAppWindowTitles(bool*) -{ - // By default, Windows are uniquely identified by their title. - // You can use the "##" and "###" markers to manipulate the display/ID. - - // Using "##" to display same title but have unique identifier. - ImGui::SetNextWindowPos(ImVec2(100, 100), ImGuiCond_FirstUseEver); - ImGui::Begin("Same title as another window##1"); - ImGui::Text("This is window 1.\nMy title is the same as window 2, but my identifier is unique."); - ImGui::End(); - - ImGui::SetNextWindowPos(ImVec2(100, 200), ImGuiCond_FirstUseEver); - ImGui::Begin("Same title as another window##2"); - ImGui::Text("This is window 2.\nMy title is the same as window 1, but my identifier is unique."); - ImGui::End(); - - // Using "###" to display a changing title but keep a static identifier "AnimatedTitle" - char buf[128]; - sprintf(buf, "Animated title %c %d###AnimatedTitle", "|/-\\"[(int)(ImGui::GetTime() / 0.25f) & 3], ImGui::GetFrameCount()); - ImGui::SetNextWindowPos(ImVec2(100, 300), ImGuiCond_FirstUseEver); - ImGui::Begin(buf); - ImGui::Text("This window has a changing title."); - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Custom Rendering using ImDrawList API / ShowExampleAppCustomRendering() -//----------------------------------------------------------------------------- - -// Demonstrate using the low-level ImDrawList to draw custom shapes. -static void ShowExampleAppCustomRendering(bool* p_open) -{ - if (!ImGui::Begin("Example: Custom rendering", p_open)) - { - ImGui::End(); - return; - } - - // Tip: If you do a lot of custom rendering, you probably want to use your own geometrical types and benefit of overloaded operators, etc. - // Define IM_VEC2_CLASS_EXTRA in imconfig.h to create implicit conversions between your types and ImVec2/ImVec4. - // ImGui defines overloaded operators but they are internal to imgui.cpp and not exposed outside (to avoid messing with your types) - // In this example we are not using the maths operators! - ImDrawList* draw_list = ImGui::GetWindowDrawList(); - - if (ImGui::BeginTabBar("##TabBar")) - { - if (ImGui::BeginTabItem("Primitives")) - { - ImGui::PushItemWidth(-ImGui::GetFontSize() * 10); - - // Draw gradients - // (note that those are currently exacerbating our sRGB/Linear issues) - ImGui::Text("Gradients"); - ImVec2 gradient_size = ImVec2(ImGui::CalcItemWidth(), ImGui::GetFrameHeight()); - { - ImVec2 p = ImGui::GetCursorScreenPos(); - ImU32 col_a = ImGui::GetColorU32(ImVec4(0.0f, 0.0f, 0.0f, 1.0f)); - ImU32 col_b = ImGui::GetColorU32(ImVec4(1.0f, 1.0f, 1.0f, 1.0f)); - draw_list->AddRectFilledMultiColor(p, ImVec2(p.x + gradient_size.x, p.y + gradient_size.y), col_a, col_b, col_b, col_a); - ImGui::InvisibleButton("##gradient1", gradient_size); - } - { - ImVec2 p = ImGui::GetCursorScreenPos(); - ImU32 col_a = ImGui::GetColorU32(ImVec4(0.0f, 1.0f, 0.0f, 1.0f)); - ImU32 col_b = ImGui::GetColorU32(ImVec4(1.0f, 0.0f, 0.0f, 1.0f)); - draw_list->AddRectFilledMultiColor(p, ImVec2(p.x + gradient_size.x, p.y + gradient_size.y), col_a, col_b, col_b, col_a); - ImGui::InvisibleButton("##gradient2", gradient_size); - } - - // Draw a bunch of primitives - ImGui::Text("All primitives"); - static float sz = 36.0f; - static float thickness = 3.0f; - static int ngon_sides = 6; - static bool circle_segments_override = false; - static int circle_segments_override_v = 12; - static ImVec4 colf = ImVec4(1.0f, 1.0f, 0.4f, 1.0f); - ImGui::DragFloat("Size", &sz, 0.2f, 2.0f, 72.0f, "%.0f"); - ImGui::DragFloat("Thickness", &thickness, 0.05f, 1.0f, 8.0f, "%.02f"); - ImGui::SliderInt("N-gon sides", &ngon_sides, 3, 12); - ImGui::Checkbox("##circlesegmentoverride", &circle_segments_override); - ImGui::SameLine(0.0f, ImGui::GetStyle().ItemInnerSpacing.x); - if (ImGui::SliderInt("Circle segments", &circle_segments_override_v, 3, 40)) - circle_segments_override = true; - ImGui::ColorEdit4("Color", &colf.x); - const ImVec2 p = ImGui::GetCursorScreenPos(); - const ImU32 col = ImColor(colf); - const float spacing = 10.0f; - const ImDrawCornerFlags corners_none = 0; - const ImDrawCornerFlags corners_all = ImDrawCornerFlags_All; - const ImDrawCornerFlags corners_tl_br = ImDrawCornerFlags_TopLeft | ImDrawCornerFlags_BotRight; - const int circle_segments = circle_segments_override ? circle_segments_override_v : 0; - float x = p.x + 4.0f, y = p.y + 4.0f; - for (int n = 0; n < 2; n++) - { - // First line uses a thickness of 1.0f, second line uses the configurable thickness - float th = (n == 0) ? 1.0f : thickness; - draw_list->AddNgon(ImVec2(x + sz*0.5f, y + sz*0.5f), sz*0.5f, col, ngon_sides, th); x += sz + spacing; // N-gon - draw_list->AddCircle(ImVec2(x + sz*0.5f, y + sz*0.5f), sz*0.5f, col, circle_segments, th); x += sz + spacing; // Circle - draw_list->AddRect(ImVec2(x, y), ImVec2(x + sz, y + sz), col, 0.0f, corners_none, th); x += sz + spacing; // Square - draw_list->AddRect(ImVec2(x, y), ImVec2(x + sz, y + sz), col, 10.0f, corners_all, th); x += sz + spacing; // Square with all rounded corners - draw_list->AddRect(ImVec2(x, y), ImVec2(x + sz, y + sz), col, 10.0f, corners_tl_br, th); x += sz + spacing; // Square with two rounded corners - draw_list->AddTriangle(ImVec2(x+sz*0.5f,y), ImVec2(x+sz, y+sz-0.5f), ImVec2(x, y+sz-0.5f), col, th); x += sz + spacing; // Triangle - draw_list->AddTriangle(ImVec2(x+sz*0.2f,y), ImVec2(x, y+sz-0.5f), ImVec2(x+sz*0.4f, y+sz-0.5f), col, th); x += sz*0.4f + spacing; // Thin triangle - draw_list->AddLine(ImVec2(x, y), ImVec2(x + sz, y), col, th); x += sz + spacing; // Horizontal line (note: drawing a filled rectangle will be faster!) - draw_list->AddLine(ImVec2(x, y), ImVec2(x, y + sz), col, th); x += spacing; // Vertical line (note: drawing a filled rectangle will be faster!) - draw_list->AddLine(ImVec2(x, y), ImVec2(x + sz, y + sz), col, th); x += sz + spacing; // Diagonal line - draw_list->AddBezierCurve(ImVec2(x, y), ImVec2(x + sz*1.3f, y + sz*0.3f), ImVec2(x + sz - sz*1.3f, y + sz - sz*0.3f), ImVec2(x + sz, y + sz), col, th); - x = p.x + 4; - y += sz + spacing; - } - draw_list->AddNgonFilled(ImVec2(x + sz * 0.5f, y + sz * 0.5f), sz*0.5f, col, ngon_sides); x += sz + spacing; // N-gon - draw_list->AddCircleFilled(ImVec2(x + sz*0.5f, y + sz*0.5f), sz*0.5f, col, circle_segments);x += sz + spacing; // Circle - draw_list->AddRectFilled(ImVec2(x, y), ImVec2(x + sz, y + sz), col); x += sz + spacing; // Square - draw_list->AddRectFilled(ImVec2(x, y), ImVec2(x + sz, y + sz), col, 10.0f); x += sz + spacing; // Square with all rounded corners - draw_list->AddRectFilled(ImVec2(x, y), ImVec2(x + sz, y + sz), col, 10.0f, corners_tl_br); x += sz + spacing; // Square with two rounded corners - draw_list->AddTriangleFilled(ImVec2(x+sz*0.5f,y), ImVec2(x+sz, y+sz-0.5f), ImVec2(x, y+sz-0.5f), col); x += sz + spacing; // Triangle - draw_list->AddTriangleFilled(ImVec2(x+sz*0.2f,y), ImVec2(x, y+sz-0.5f), ImVec2(x+sz*0.4f, y+sz-0.5f), col); x += sz*0.4f + spacing; // Thin triangle - draw_list->AddRectFilled(ImVec2(x, y), ImVec2(x + sz, y + thickness), col); x += sz + spacing; // Horizontal line (faster than AddLine, but only handle integer thickness) - draw_list->AddRectFilled(ImVec2(x, y), ImVec2(x + thickness, y + sz), col); x += spacing*2.0f; // Vertical line (faster than AddLine, but only handle integer thickness) - draw_list->AddRectFilled(ImVec2(x, y), ImVec2(x + 1, y + 1), col); x += sz; // Pixel (faster than AddLine) - draw_list->AddRectFilledMultiColor(ImVec2(x, y), ImVec2(x + sz, y + sz), IM_COL32(0, 0, 0, 255), IM_COL32(255, 0, 0, 255), IM_COL32(255, 255, 0, 255), IM_COL32(0, 255, 0, 255)); - ImGui::Dummy(ImVec2((sz + spacing) * 9.8f, (sz + spacing) * 3)); - - ImGui::PopItemWidth(); - ImGui::EndTabItem(); - } - - if (ImGui::BeginTabItem("Canvas")) - { - static ImVector points; - static bool adding_line = false; - if (ImGui::Button("Clear")) points.clear(); - if (points.Size >= 2) { ImGui::SameLine(); if (ImGui::Button("Undo")) { points.pop_back(); points.pop_back(); } } - ImGui::Text("Left-click and drag to add lines,\nRight-click to undo"); - - // Here we are using InvisibleButton() as a convenience to 1) advance the cursor and 2) allows us to use IsItemHovered() - // But you can also draw directly and poll mouse/keyboard by yourself. You can manipulate the cursor using GetCursorPos() and SetCursorPos(). - // If you only use the ImDrawList API, you can notify the owner window of its extends by using SetCursorPos(max). - ImVec2 canvas_pos = ImGui::GetCursorScreenPos(); // ImDrawList API uses screen coordinates! - ImVec2 canvas_size = ImGui::GetContentRegionAvail(); // Resize canvas to what's available - if (canvas_size.x < 50.0f) canvas_size.x = 50.0f; - if (canvas_size.y < 50.0f) canvas_size.y = 50.0f; - draw_list->AddRectFilledMultiColor(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), IM_COL32(50, 50, 50, 255), IM_COL32(50, 50, 60, 255), IM_COL32(60, 60, 70, 255), IM_COL32(50, 50, 60, 255)); - draw_list->AddRect(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), IM_COL32(255, 255, 255, 255)); - - bool adding_preview = false; - ImGui::InvisibleButton("canvas", canvas_size); - ImVec2 mouse_pos_in_canvas = ImVec2(ImGui::GetIO().MousePos.x - canvas_pos.x, ImGui::GetIO().MousePos.y - canvas_pos.y); - if (adding_line) - { - adding_preview = true; - points.push_back(mouse_pos_in_canvas); - if (!ImGui::IsMouseDown(0)) - adding_line = adding_preview = false; - } - if (ImGui::IsItemHovered()) - { - if (!adding_line && ImGui::IsMouseClicked(0)) - { - points.push_back(mouse_pos_in_canvas); - adding_line = true; - } - if (ImGui::IsMouseClicked(1) && !points.empty()) - { - adding_line = adding_preview = false; - points.pop_back(); - points.pop_back(); - } - } - draw_list->PushClipRect(canvas_pos, ImVec2(canvas_pos.x + canvas_size.x, canvas_pos.y + canvas_size.y), true); // clip lines within the canvas (if we resize it, etc.) - for (int i = 0; i < points.Size - 1; i += 2) - draw_list->AddLine(ImVec2(canvas_pos.x + points[i].x, canvas_pos.y + points[i].y), ImVec2(canvas_pos.x + points[i + 1].x, canvas_pos.y + points[i + 1].y), IM_COL32(255, 255, 0, 255), 2.0f); - draw_list->PopClipRect(); - if (adding_preview) - points.pop_back(); - ImGui::EndTabItem(); - } - - if (ImGui::BeginTabItem("BG/FG draw lists")) - { - static bool draw_bg = true; - static bool draw_fg = true; - ImGui::Checkbox("Draw in Background draw list", &draw_bg); - ImGui::SameLine(); HelpMarker("The Background draw list will be rendered below every Dear ImGui windows."); - ImGui::Checkbox("Draw in Foreground draw list", &draw_fg); - ImGui::SameLine(); HelpMarker("The Foreground draw list will be rendered over every Dear ImGui windows."); - ImVec2 window_pos = ImGui::GetWindowPos(); - ImVec2 window_size = ImGui::GetWindowSize(); - ImVec2 window_center = ImVec2(window_pos.x + window_size.x * 0.5f, window_pos.y + window_size.y * 0.5f); - if (draw_bg) - ImGui::GetBackgroundDrawList()->AddCircle(window_center, window_size.x * 0.6f, IM_COL32(255, 0, 0, 200), 0, 10+4); - if (draw_fg) - ImGui::GetForegroundDrawList()->AddCircle(window_center, window_size.y * 0.6f, IM_COL32(0, 255, 0, 200), 0, 10); - ImGui::EndTabItem(); - } - - ImGui::EndTabBar(); - } - - ImGui::End(); -} - -//----------------------------------------------------------------------------- -// [SECTION] Example App: Documents Handling / ShowExampleAppDocuments() -//----------------------------------------------------------------------------- - -// Simplified structure to mimic a Document model -struct MyDocument -{ - const char* Name; // Document title - bool Open; // Set when the document is open (in this demo, we keep an array of all available documents to simplify the demo) - bool OpenPrev; // Copy of Open from last update. - bool Dirty; // Set when the document has been modified - bool WantClose; // Set when the document - ImVec4 Color; // An arbitrary variable associated to the document - - MyDocument(const char* name, bool open = true, const ImVec4& color = ImVec4(1.0f,1.0f,1.0f,1.0f)) - { - Name = name; - Open = OpenPrev = open; - Dirty = false; - WantClose = false; - Color = color; - } - void DoOpen() { Open = true; } - void DoQueueClose() { WantClose = true; } - void DoForceClose() { Open = false; Dirty = false; } - void DoSave() { Dirty = false; } - - // Display dummy contents for the Document - static void DisplayContents(MyDocument* doc) - { - ImGui::PushID(doc); - ImGui::Text("Document \"%s\"", doc->Name); - ImGui::PushStyleColor(ImGuiCol_Text, doc->Color); - ImGui::TextWrapped("Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."); - ImGui::PopStyleColor(); - if (ImGui::Button("Modify", ImVec2(100, 0))) - doc->Dirty = true; - ImGui::SameLine(); - if (ImGui::Button("Save", ImVec2(100, 0))) - doc->DoSave(); - ImGui::ColorEdit3("color", &doc->Color.x); // Useful to test drag and drop and hold-dragged-to-open-tab behavior. - ImGui::PopID(); - } - - // Display context menu for the Document - static void DisplayContextMenu(MyDocument* doc) - { - if (!ImGui::BeginPopupContextItem()) - return; - - char buf[256]; - sprintf(buf, "Save %s", doc->Name); - if (ImGui::MenuItem(buf, "CTRL+S", false, doc->Open)) - doc->DoSave(); - if (ImGui::MenuItem("Close", "CTRL+W", false, doc->Open)) - doc->DoQueueClose(); - ImGui::EndPopup(); - } -}; - -struct ExampleAppDocuments -{ - ImVector Documents; - - ExampleAppDocuments() - { - Documents.push_back(MyDocument("Lettuce", true, ImVec4(0.4f, 0.8f, 0.4f, 1.0f))); - Documents.push_back(MyDocument("Eggplant", true, ImVec4(0.8f, 0.5f, 1.0f, 1.0f))); - Documents.push_back(MyDocument("Carrot", true, ImVec4(1.0f, 0.8f, 0.5f, 1.0f))); - Documents.push_back(MyDocument("Tomato", false, ImVec4(1.0f, 0.3f, 0.4f, 1.0f))); - Documents.push_back(MyDocument("A Rather Long Title", false)); - Documents.push_back(MyDocument("Some Document", false)); - } -}; - -// [Optional] Notify the system of Tabs/Windows closure that happened outside the regular tab interface. -// If a tab has been closed programmatically (aka closed from another source such as the Checkbox() in the demo, as opposed -// to clicking on the regular tab closing button) and stops being submitted, it will take a frame for the tab bar to notice its absence. -// During this frame there will be a gap in the tab bar, and if the tab that has disappeared was the selected one, the tab bar -// will report no selected tab during the frame. This will effectively give the impression of a flicker for one frame. -// We call SetTabItemClosed() to manually notify the Tab Bar or Docking system of removed tabs to avoid this glitch. -// Note that this completely optional, and only affect tab bars with the ImGuiTabBarFlags_Reorderable flag. -static void NotifyOfDocumentsClosedElsewhere(ExampleAppDocuments& app) -{ - for (int doc_n = 0; doc_n < app.Documents.Size; doc_n++) - { - MyDocument* doc = &app.Documents[doc_n]; - if (!doc->Open && doc->OpenPrev) - ImGui::SetTabItemClosed(doc->Name); - doc->OpenPrev = doc->Open; - } -} - -void ShowExampleAppDocuments(bool* p_open) -{ - static ExampleAppDocuments app; - - // Options - static bool opt_reorderable = true; - static ImGuiTabBarFlags opt_fitting_flags = ImGuiTabBarFlags_FittingPolicyDefault_; - - bool window_contents_visible = ImGui::Begin("Example: Documents", p_open, ImGuiWindowFlags_MenuBar); - if (!window_contents_visible) - { - ImGui::End(); - return; - } - - // Menu - if (ImGui::BeginMenuBar()) - { - if (ImGui::BeginMenu("File")) - { - int open_count = 0; - for (int doc_n = 0; doc_n < app.Documents.Size; doc_n++) - open_count += app.Documents[doc_n].Open ? 1 : 0; - - if (ImGui::BeginMenu("Open", open_count < app.Documents.Size)) - { - for (int doc_n = 0; doc_n < app.Documents.Size; doc_n++) - { - MyDocument* doc = &app.Documents[doc_n]; - if (!doc->Open) - if (ImGui::MenuItem(doc->Name)) - doc->DoOpen(); - } - ImGui::EndMenu(); - } - if (ImGui::MenuItem("Close All Documents", NULL, false, open_count > 0)) - for (int doc_n = 0; doc_n < app.Documents.Size; doc_n++) - app.Documents[doc_n].DoQueueClose(); - if (ImGui::MenuItem("Exit", "Alt+F4")) {} - ImGui::EndMenu(); - } - ImGui::EndMenuBar(); - } - - // [Debug] List documents with one checkbox for each - for (int doc_n = 0; doc_n < app.Documents.Size; doc_n++) - { - MyDocument* doc = &app.Documents[doc_n]; - if (doc_n > 0) - ImGui::SameLine(); - ImGui::PushID(doc); - if (ImGui::Checkbox(doc->Name, &doc->Open)) - if (!doc->Open) - doc->DoForceClose(); - ImGui::PopID(); - } - - ImGui::Separator(); - - // Submit Tab Bar and Tabs - { - ImGuiTabBarFlags tab_bar_flags = (opt_fitting_flags) | (opt_reorderable ? ImGuiTabBarFlags_Reorderable : 0); - if (ImGui::BeginTabBar("##tabs", tab_bar_flags)) - { - if (opt_reorderable) - NotifyOfDocumentsClosedElsewhere(app); - - // [DEBUG] Stress tests - //if ((ImGui::GetFrameCount() % 30) == 0) docs[1].Open ^= 1; // [DEBUG] Automatically show/hide a tab. Test various interactions e.g. dragging with this on. - //if (ImGui::GetIO().KeyCtrl) ImGui::SetTabItemSelected(docs[1].Name); // [DEBUG] Test SetTabItemSelected(), probably not very useful as-is anyway.. - - // Submit Tabs - for (int doc_n = 0; doc_n < app.Documents.Size; doc_n++) - { - MyDocument* doc = &app.Documents[doc_n]; - if (!doc->Open) - continue; - - ImGuiTabItemFlags tab_flags = (doc->Dirty ? ImGuiTabItemFlags_UnsavedDocument : 0); - bool visible = ImGui::BeginTabItem(doc->Name, &doc->Open, tab_flags); - - // Cancel attempt to close when unsaved add to save queue so we can display a popup. - if (!doc->Open && doc->Dirty) - { - doc->Open = true; - doc->DoQueueClose(); - } - - MyDocument::DisplayContextMenu(doc); - if (visible) - { - MyDocument::DisplayContents(doc); - ImGui::EndTabItem(); - } - } - - ImGui::EndTabBar(); - } - } - - // Update closing queue - static ImVector close_queue; - if (close_queue.empty()) - { - // Close queue is locked once we started a popup - for (int doc_n = 0; doc_n < app.Documents.Size; doc_n++) - { - MyDocument* doc = &app.Documents[doc_n]; - if (doc->WantClose) - { - doc->WantClose = false; - close_queue.push_back(doc); - } - } - } - - // Display closing confirmation UI - if (!close_queue.empty()) - { - int close_queue_unsaved_documents = 0; - for (int n = 0; n < close_queue.Size; n++) - if (close_queue[n]->Dirty) - close_queue_unsaved_documents++; - - if (close_queue_unsaved_documents == 0) - { - // Close documents when all are unsaved - for (int n = 0; n < close_queue.Size; n++) - close_queue[n]->DoForceClose(); - close_queue.clear(); - } - else - { - if (!ImGui::IsPopupOpen("Save?")) - ImGui::OpenPopup("Save?"); - if (ImGui::BeginPopupModal("Save?")) - { - ImGui::Text("Save change to the following items?"); - ImGui::SetNextItemWidth(-1.0f); - if (ImGui::ListBoxHeader("##", close_queue_unsaved_documents, 6)) - { - for (int n = 0; n < close_queue.Size; n++) - if (close_queue[n]->Dirty) - ImGui::Text("%s", close_queue[n]->Name); - ImGui::ListBoxFooter(); - } - - if (ImGui::Button("Yes", ImVec2(80, 0))) - { - for (int n = 0; n < close_queue.Size; n++) - { - if (close_queue[n]->Dirty) - close_queue[n]->DoSave(); - close_queue[n]->DoForceClose(); - } - close_queue.clear(); - ImGui::CloseCurrentPopup(); - } - ImGui::SameLine(); - if (ImGui::Button("No", ImVec2(80, 0))) - { - for (int n = 0; n < close_queue.Size; n++) - close_queue[n]->DoForceClose(); - close_queue.clear(); - ImGui::CloseCurrentPopup(); - } - ImGui::SameLine(); - if (ImGui::Button("Cancel", ImVec2(80, 0))) - { - close_queue.clear(); - ImGui::CloseCurrentPopup(); - } - ImGui::EndPopup(); - } - } - } - - ImGui::End(); -} - -// End of Demo code -#else - -void ImGui::ShowAboutWindow(bool*) {} -void ImGui::ShowDemoWindow(bool*) {} -void ImGui::ShowUserGuide() {} -void ImGui::ShowStyleEditor(ImGuiStyle*) {} - -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_draw.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_draw.cpp deleted file mode 100644 index 1e08bfd0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_draw.cpp +++ /dev/null @@ -1,3594 +0,0 @@ -// dear imgui, v1.76 -// (drawing and font code) - -/* - -Index of this file: - -// [SECTION] STB libraries implementation -// [SECTION] Style functions -// [SECTION] ImDrawList -// [SECTION] ImDrawListSplitter -// [SECTION] ImDrawData -// [SECTION] Helpers ShadeVertsXXX functions -// [SECTION] ImFontConfig -// [SECTION] ImFontAtlas -// [SECTION] ImFontAtlas glyph ranges helpers -// [SECTION] ImFontGlyphRangesBuilder -// [SECTION] ImFont -// [SECTION] ImGui Internal Render Helpers -// [SECTION] Decompression code -// [SECTION] Default font data (ProggyClean.ttf) - -*/ - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#ifndef IMGUI_DISABLE - -#ifndef IMGUI_DEFINE_MATH_OPERATORS -#define IMGUI_DEFINE_MATH_OPERATORS -#endif -#include "imgui_internal.h" - -#include // vsnprintf, sscanf, printf -#if !defined(alloca) -#if defined(__GLIBC__) || defined(__sun) || defined(__CYGWIN__) || defined(__APPLE__) || defined(__SWITCH__) -#include // alloca (glibc uses . Note that Cygwin may have _WIN32 defined, so the order matters here) -#elif defined(_WIN32) -#include // alloca -#if !defined(alloca) -#define alloca _alloca // for clang with MS Codegen -#endif -#else -#include // alloca -#endif -#endif - -// Visual Studio warnings -#ifdef _MSC_VER -#pragma warning (disable: 4127) // condition expression is constant -#pragma warning (disable: 4505) // unreferenced local function has been removed (stb stuff) -#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wold-style-cast" // warning : use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wfloat-equal" // warning : comparing floating point with == or != is unsafe // storing and comparing against same constants ok. -#pragma clang diagnostic ignored "-Wglobal-constructors" // warning : declaration requires a global destructor // similar to above, not sure what the exact difference is. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness // -#if __has_warning("-Wzero-as-null-pointer-constant") -#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" // warning : zero as null pointer constant // some standard header variations use #define NULL 0 -#endif -#if __has_warning("-Wcomma") -#pragma clang diagnostic ignored "-Wcomma" // warning : possible misuse of comma operator here // -#endif -#if __has_warning("-Wreserved-id-macro") -#pragma clang diagnostic ignored "-Wreserved-id-macro" // warning : macro name is a reserved identifier // -#endif -#if __has_warning("-Wdouble-promotion") -#pragma clang diagnostic ignored "-Wdouble-promotion" // warning: implicit conversion from 'float' to 'double' when passing argument to function // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. -#endif -#elif defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wunused-function" // warning: 'xxxx' defined but not used -#pragma GCC diagnostic ignored "-Wdouble-promotion" // warning: implicit conversion from 'float' to 'double' when passing argument to function -#pragma GCC diagnostic ignored "-Wconversion" // warning: conversion to 'xxxx' from 'xxxx' may alter its value -#pragma GCC diagnostic ignored "-Wstack-protector" // warning: stack protector not protecting local variables: variable length buffer -#pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead -#endif - -//------------------------------------------------------------------------- -// [SECTION] STB libraries implementation -//------------------------------------------------------------------------- - -// Compile time options: -//#define IMGUI_STB_NAMESPACE ImStb -//#define IMGUI_STB_TRUETYPE_FILENAME "my_folder/stb_truetype.h" -//#define IMGUI_STB_RECT_PACK_FILENAME "my_folder/stb_rect_pack.h" -//#define IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION -//#define IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION - -#ifdef IMGUI_STB_NAMESPACE -namespace IMGUI_STB_NAMESPACE -{ -#endif - -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4456) // declaration of 'xx' hides previous local declaration -#endif - -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-function" -#pragma clang diagnostic ignored "-Wmissing-prototypes" -#pragma clang diagnostic ignored "-Wimplicit-fallthrough" -#pragma clang diagnostic ignored "-Wcast-qual" // warning : cast from 'const xxxx *' to 'xxx *' drops const qualifier // -#endif - -#if defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wtype-limits" // warning: comparison is always true due to limited range of data type [-Wtype-limits] -#pragma GCC diagnostic ignored "-Wcast-qual" // warning: cast from type 'const xxxx *' to type 'xxxx *' casts away qualifiers -#endif - -#ifndef STB_RECT_PACK_IMPLEMENTATION // in case the user already have an implementation in the _same_ compilation unit (e.g. unity builds) -#ifndef IMGUI_DISABLE_STB_RECT_PACK_IMPLEMENTATION -#define STBRP_STATIC -#define STBRP_ASSERT(x) do { IM_ASSERT(x); } while (0) -#define STBRP_SORT ImQsort -#define STB_RECT_PACK_IMPLEMENTATION -#endif -#ifdef IMGUI_STB_RECT_PACK_FILENAME -#include IMGUI_STB_RECT_PACK_FILENAME -#else -#include "imstb_rectpack.h" -#endif -#endif - -#ifndef STB_TRUETYPE_IMPLEMENTATION // in case the user already have an implementation in the _same_ compilation unit (e.g. unity builds) -#ifndef IMGUI_DISABLE_STB_TRUETYPE_IMPLEMENTATION -#define STBTT_malloc(x,u) ((void)(u), IM_ALLOC(x)) -#define STBTT_free(x,u) ((void)(u), IM_FREE(x)) -#define STBTT_assert(x) do { IM_ASSERT(x); } while(0) -#define STBTT_fmod(x,y) ImFmod(x,y) -#define STBTT_sqrt(x) ImSqrt(x) -#define STBTT_pow(x,y) ImPow(x,y) -#define STBTT_fabs(x) ImFabs(x) -#define STBTT_ifloor(x) ((int)ImFloorStd(x)) -#define STBTT_iceil(x) ((int)ImCeil(x)) -#define STBTT_STATIC -#define STB_TRUETYPE_IMPLEMENTATION -#else -#define STBTT_DEF extern -#endif -#ifdef IMGUI_STB_TRUETYPE_FILENAME -#include IMGUI_STB_TRUETYPE_FILENAME -#else -#include "imstb_truetype.h" -#endif -#endif - -#if defined(__GNUC__) -#pragma GCC diagnostic pop -#endif - -#if defined(__clang__) -#pragma clang diagnostic pop -#endif - -#if defined(_MSC_VER) -#pragma warning (pop) -#endif - -#ifdef IMGUI_STB_NAMESPACE -} // namespace ImStb -using namespace IMGUI_STB_NAMESPACE; -#endif - -//----------------------------------------------------------------------------- -// [SECTION] Style functions -//----------------------------------------------------------------------------- - -void ImGui::StyleColorsDark(ImGuiStyle* dst) -{ - ImGuiStyle* style = dst ? dst : &ImGui::GetStyle(); - ImVec4* colors = style->Colors; - - colors[ImGuiCol_Text] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f); - colors[ImGuiCol_TextDisabled] = ImVec4(0.50f, 0.50f, 0.50f, 1.00f); - colors[ImGuiCol_WindowBg] = ImVec4(0.06f, 0.06f, 0.06f, 0.94f); - colors[ImGuiCol_ChildBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - colors[ImGuiCol_PopupBg] = ImVec4(0.08f, 0.08f, 0.08f, 0.94f); - colors[ImGuiCol_Border] = ImVec4(0.43f, 0.43f, 0.50f, 0.50f); - colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - colors[ImGuiCol_FrameBg] = ImVec4(0.16f, 0.29f, 0.48f, 0.54f); - colors[ImGuiCol_FrameBgHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.40f); - colors[ImGuiCol_FrameBgActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f); - colors[ImGuiCol_TitleBg] = ImVec4(0.04f, 0.04f, 0.04f, 1.00f); - colors[ImGuiCol_TitleBgActive] = ImVec4(0.16f, 0.29f, 0.48f, 1.00f); - colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.00f, 0.00f, 0.00f, 0.51f); - colors[ImGuiCol_MenuBarBg] = ImVec4(0.14f, 0.14f, 0.14f, 1.00f); - colors[ImGuiCol_ScrollbarBg] = ImVec4(0.02f, 0.02f, 0.02f, 0.53f); - colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.31f, 0.31f, 0.31f, 1.00f); - colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.41f, 0.41f, 0.41f, 1.00f); - colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.51f, 0.51f, 0.51f, 1.00f); - colors[ImGuiCol_CheckMark] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_SliderGrab] = ImVec4(0.24f, 0.52f, 0.88f, 1.00f); - colors[ImGuiCol_SliderGrabActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_Button] = ImVec4(0.26f, 0.59f, 0.98f, 0.40f); - colors[ImGuiCol_ButtonHovered] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_ButtonActive] = ImVec4(0.06f, 0.53f, 0.98f, 1.00f); - colors[ImGuiCol_Header] = ImVec4(0.26f, 0.59f, 0.98f, 0.31f); - colors[ImGuiCol_HeaderHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.80f); - colors[ImGuiCol_HeaderActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_Separator] = colors[ImGuiCol_Border]; - colors[ImGuiCol_SeparatorHovered] = ImVec4(0.10f, 0.40f, 0.75f, 0.78f); - colors[ImGuiCol_SeparatorActive] = ImVec4(0.10f, 0.40f, 0.75f, 1.00f); - colors[ImGuiCol_ResizeGrip] = ImVec4(0.26f, 0.59f, 0.98f, 0.25f); - colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f); - colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f); - colors[ImGuiCol_Tab] = ImLerp(colors[ImGuiCol_Header], colors[ImGuiCol_TitleBgActive], 0.80f); - colors[ImGuiCol_TabHovered] = colors[ImGuiCol_HeaderHovered]; - colors[ImGuiCol_TabActive] = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f); - colors[ImGuiCol_TabUnfocused] = ImLerp(colors[ImGuiCol_Tab], colors[ImGuiCol_TitleBg], 0.80f); - colors[ImGuiCol_TabUnfocusedActive] = ImLerp(colors[ImGuiCol_TabActive], colors[ImGuiCol_TitleBg], 0.40f); - colors[ImGuiCol_PlotLines] = ImVec4(0.61f, 0.61f, 0.61f, 1.00f); - colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f); - colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); - colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f); - colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f); - colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f); - colors[ImGuiCol_NavHighlight] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f); - colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f); - colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.35f); -} - -void ImGui::StyleColorsClassic(ImGuiStyle* dst) -{ - ImGuiStyle* style = dst ? dst : &ImGui::GetStyle(); - ImVec4* colors = style->Colors; - - colors[ImGuiCol_Text] = ImVec4(0.90f, 0.90f, 0.90f, 1.00f); - colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f); - colors[ImGuiCol_WindowBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.70f); - colors[ImGuiCol_ChildBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - colors[ImGuiCol_PopupBg] = ImVec4(0.11f, 0.11f, 0.14f, 0.92f); - colors[ImGuiCol_Border] = ImVec4(0.50f, 0.50f, 0.50f, 0.50f); - colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - colors[ImGuiCol_FrameBg] = ImVec4(0.43f, 0.43f, 0.43f, 0.39f); - colors[ImGuiCol_FrameBgHovered] = ImVec4(0.47f, 0.47f, 0.69f, 0.40f); - colors[ImGuiCol_FrameBgActive] = ImVec4(0.42f, 0.41f, 0.64f, 0.69f); - colors[ImGuiCol_TitleBg] = ImVec4(0.27f, 0.27f, 0.54f, 0.83f); - colors[ImGuiCol_TitleBgActive] = ImVec4(0.32f, 0.32f, 0.63f, 0.87f); - colors[ImGuiCol_TitleBgCollapsed] = ImVec4(0.40f, 0.40f, 0.80f, 0.20f); - colors[ImGuiCol_MenuBarBg] = ImVec4(0.40f, 0.40f, 0.55f, 0.80f); - colors[ImGuiCol_ScrollbarBg] = ImVec4(0.20f, 0.25f, 0.30f, 0.60f); - colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.40f, 0.40f, 0.80f, 0.30f); - colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.40f, 0.40f, 0.80f, 0.40f); - colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.41f, 0.39f, 0.80f, 0.60f); - colors[ImGuiCol_CheckMark] = ImVec4(0.90f, 0.90f, 0.90f, 0.50f); - colors[ImGuiCol_SliderGrab] = ImVec4(1.00f, 1.00f, 1.00f, 0.30f); - colors[ImGuiCol_SliderGrabActive] = ImVec4(0.41f, 0.39f, 0.80f, 0.60f); - colors[ImGuiCol_Button] = ImVec4(0.35f, 0.40f, 0.61f, 0.62f); - colors[ImGuiCol_ButtonHovered] = ImVec4(0.40f, 0.48f, 0.71f, 0.79f); - colors[ImGuiCol_ButtonActive] = ImVec4(0.46f, 0.54f, 0.80f, 1.00f); - colors[ImGuiCol_Header] = ImVec4(0.40f, 0.40f, 0.90f, 0.45f); - colors[ImGuiCol_HeaderHovered] = ImVec4(0.45f, 0.45f, 0.90f, 0.80f); - colors[ImGuiCol_HeaderActive] = ImVec4(0.53f, 0.53f, 0.87f, 0.80f); - colors[ImGuiCol_Separator] = ImVec4(0.50f, 0.50f, 0.50f, 0.60f); - colors[ImGuiCol_SeparatorHovered] = ImVec4(0.60f, 0.60f, 0.70f, 1.00f); - colors[ImGuiCol_SeparatorActive] = ImVec4(0.70f, 0.70f, 0.90f, 1.00f); - colors[ImGuiCol_ResizeGrip] = ImVec4(1.00f, 1.00f, 1.00f, 0.16f); - colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.78f, 0.82f, 1.00f, 0.60f); - colors[ImGuiCol_ResizeGripActive] = ImVec4(0.78f, 0.82f, 1.00f, 0.90f); - colors[ImGuiCol_Tab] = ImLerp(colors[ImGuiCol_Header], colors[ImGuiCol_TitleBgActive], 0.80f); - colors[ImGuiCol_TabHovered] = colors[ImGuiCol_HeaderHovered]; - colors[ImGuiCol_TabActive] = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f); - colors[ImGuiCol_TabUnfocused] = ImLerp(colors[ImGuiCol_Tab], colors[ImGuiCol_TitleBg], 0.80f); - colors[ImGuiCol_TabUnfocusedActive] = ImLerp(colors[ImGuiCol_TabActive], colors[ImGuiCol_TitleBg], 0.40f); - colors[ImGuiCol_PlotLines] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f); - colors[ImGuiCol_PlotLinesHovered] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); - colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); - colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.60f, 0.00f, 1.00f); - colors[ImGuiCol_TextSelectedBg] = ImVec4(0.00f, 0.00f, 1.00f, 0.35f); - colors[ImGuiCol_DragDropTarget] = ImVec4(1.00f, 1.00f, 0.00f, 0.90f); - colors[ImGuiCol_NavHighlight] = colors[ImGuiCol_HeaderHovered]; - colors[ImGuiCol_NavWindowingHighlight] = ImVec4(1.00f, 1.00f, 1.00f, 0.70f); - colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.80f, 0.80f, 0.80f, 0.20f); - colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f); -} - -// Those light colors are better suited with a thicker font than the default one + FrameBorder -void ImGui::StyleColorsLight(ImGuiStyle* dst) -{ - ImGuiStyle* style = dst ? dst : &ImGui::GetStyle(); - ImVec4* colors = style->Colors; - - colors[ImGuiCol_Text] = ImVec4(0.00f, 0.00f, 0.00f, 1.00f); - colors[ImGuiCol_TextDisabled] = ImVec4(0.60f, 0.60f, 0.60f, 1.00f); - colors[ImGuiCol_WindowBg] = ImVec4(0.94f, 0.94f, 0.94f, 1.00f); - colors[ImGuiCol_ChildBg] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - colors[ImGuiCol_PopupBg] = ImVec4(1.00f, 1.00f, 1.00f, 0.98f); - colors[ImGuiCol_Border] = ImVec4(0.00f, 0.00f, 0.00f, 0.30f); - colors[ImGuiCol_BorderShadow] = ImVec4(0.00f, 0.00f, 0.00f, 0.00f); - colors[ImGuiCol_FrameBg] = ImVec4(1.00f, 1.00f, 1.00f, 1.00f); - colors[ImGuiCol_FrameBgHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.40f); - colors[ImGuiCol_FrameBgActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f); - colors[ImGuiCol_TitleBg] = ImVec4(0.96f, 0.96f, 0.96f, 1.00f); - colors[ImGuiCol_TitleBgActive] = ImVec4(0.82f, 0.82f, 0.82f, 1.00f); - colors[ImGuiCol_TitleBgCollapsed] = ImVec4(1.00f, 1.00f, 1.00f, 0.51f); - colors[ImGuiCol_MenuBarBg] = ImVec4(0.86f, 0.86f, 0.86f, 1.00f); - colors[ImGuiCol_ScrollbarBg] = ImVec4(0.98f, 0.98f, 0.98f, 0.53f); - colors[ImGuiCol_ScrollbarGrab] = ImVec4(0.69f, 0.69f, 0.69f, 0.80f); - colors[ImGuiCol_ScrollbarGrabHovered] = ImVec4(0.49f, 0.49f, 0.49f, 0.80f); - colors[ImGuiCol_ScrollbarGrabActive] = ImVec4(0.49f, 0.49f, 0.49f, 1.00f); - colors[ImGuiCol_CheckMark] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_SliderGrab] = ImVec4(0.26f, 0.59f, 0.98f, 0.78f); - colors[ImGuiCol_SliderGrabActive] = ImVec4(0.46f, 0.54f, 0.80f, 0.60f); - colors[ImGuiCol_Button] = ImVec4(0.26f, 0.59f, 0.98f, 0.40f); - colors[ImGuiCol_ButtonHovered] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_ButtonActive] = ImVec4(0.06f, 0.53f, 0.98f, 1.00f); - colors[ImGuiCol_Header] = ImVec4(0.26f, 0.59f, 0.98f, 0.31f); - colors[ImGuiCol_HeaderHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.80f); - colors[ImGuiCol_HeaderActive] = ImVec4(0.26f, 0.59f, 0.98f, 1.00f); - colors[ImGuiCol_Separator] = ImVec4(0.39f, 0.39f, 0.39f, 0.62f); - colors[ImGuiCol_SeparatorHovered] = ImVec4(0.14f, 0.44f, 0.80f, 0.78f); - colors[ImGuiCol_SeparatorActive] = ImVec4(0.14f, 0.44f, 0.80f, 1.00f); - colors[ImGuiCol_ResizeGrip] = ImVec4(0.80f, 0.80f, 0.80f, 0.56f); - colors[ImGuiCol_ResizeGripHovered] = ImVec4(0.26f, 0.59f, 0.98f, 0.67f); - colors[ImGuiCol_ResizeGripActive] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f); - colors[ImGuiCol_Tab] = ImLerp(colors[ImGuiCol_Header], colors[ImGuiCol_TitleBgActive], 0.90f); - colors[ImGuiCol_TabHovered] = colors[ImGuiCol_HeaderHovered]; - colors[ImGuiCol_TabActive] = ImLerp(colors[ImGuiCol_HeaderActive], colors[ImGuiCol_TitleBgActive], 0.60f); - colors[ImGuiCol_TabUnfocused] = ImLerp(colors[ImGuiCol_Tab], colors[ImGuiCol_TitleBg], 0.80f); - colors[ImGuiCol_TabUnfocusedActive] = ImLerp(colors[ImGuiCol_TabActive], colors[ImGuiCol_TitleBg], 0.40f); - colors[ImGuiCol_PlotLines] = ImVec4(0.39f, 0.39f, 0.39f, 1.00f); - colors[ImGuiCol_PlotLinesHovered] = ImVec4(1.00f, 0.43f, 0.35f, 1.00f); - colors[ImGuiCol_PlotHistogram] = ImVec4(0.90f, 0.70f, 0.00f, 1.00f); - colors[ImGuiCol_PlotHistogramHovered] = ImVec4(1.00f, 0.45f, 0.00f, 1.00f); - colors[ImGuiCol_TextSelectedBg] = ImVec4(0.26f, 0.59f, 0.98f, 0.35f); - colors[ImGuiCol_DragDropTarget] = ImVec4(0.26f, 0.59f, 0.98f, 0.95f); - colors[ImGuiCol_NavHighlight] = colors[ImGuiCol_HeaderHovered]; - colors[ImGuiCol_NavWindowingHighlight] = ImVec4(0.70f, 0.70f, 0.70f, 0.70f); - colors[ImGuiCol_NavWindowingDimBg] = ImVec4(0.20f, 0.20f, 0.20f, 0.20f); - colors[ImGuiCol_ModalWindowDimBg] = ImVec4(0.20f, 0.20f, 0.20f, 0.35f); -} - -//----------------------------------------------------------------------------- -// ImDrawList -//----------------------------------------------------------------------------- - -ImDrawListSharedData::ImDrawListSharedData() -{ - Font = NULL; - FontSize = 0.0f; - CurveTessellationTol = 0.0f; - CircleSegmentMaxError = 0.0f; - ClipRectFullscreen = ImVec4(-8192.0f, -8192.0f, +8192.0f, +8192.0f); - InitialFlags = ImDrawListFlags_None; - - // Lookup tables - for (int i = 0; i < IM_ARRAYSIZE(ArcFastVtx); i++) - { - const float a = ((float)i * 2 * IM_PI) / (float)IM_ARRAYSIZE(ArcFastVtx); - ArcFastVtx[i] = ImVec2(ImCos(a), ImSin(a)); - } - memset(CircleSegmentCounts, 0, sizeof(CircleSegmentCounts)); // This will be set by SetCircleSegmentMaxError() -} - -void ImDrawListSharedData::SetCircleSegmentMaxError(float max_error) -{ - if (CircleSegmentMaxError == max_error) - return; - CircleSegmentMaxError = max_error; - for (int i = 0; i < IM_ARRAYSIZE(CircleSegmentCounts); i++) - { - const float radius = i + 1.0f; - const int segment_count = IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(radius, CircleSegmentMaxError); - CircleSegmentCounts[i] = (ImU8)ImMin(segment_count, 255); - } -} - -void ImDrawList::Clear() -{ - CmdBuffer.resize(0); - IdxBuffer.resize(0); - VtxBuffer.resize(0); - Flags = _Data ? _Data->InitialFlags : ImDrawListFlags_None; - _VtxCurrentOffset = 0; - _VtxCurrentIdx = 0; - _VtxWritePtr = NULL; - _IdxWritePtr = NULL; - _ClipRectStack.resize(0); - _TextureIdStack.resize(0); - _Path.resize(0); - _Splitter.Clear(); -} - -void ImDrawList::ClearFreeMemory() -{ - CmdBuffer.clear(); - IdxBuffer.clear(); - VtxBuffer.clear(); - _VtxCurrentIdx = 0; - _VtxWritePtr = NULL; - _IdxWritePtr = NULL; - _ClipRectStack.clear(); - _TextureIdStack.clear(); - _Path.clear(); - _Splitter.ClearFreeMemory(); -} - -ImDrawList* ImDrawList::CloneOutput() const -{ - ImDrawList* dst = IM_NEW(ImDrawList(_Data)); - dst->CmdBuffer = CmdBuffer; - dst->IdxBuffer = IdxBuffer; - dst->VtxBuffer = VtxBuffer; - dst->Flags = Flags; - return dst; -} - -// Using macros because C++ is a terrible language, we want guaranteed inline, no code in header, and no overhead in Debug builds -#define GetCurrentClipRect() (_ClipRectStack.Size ? _ClipRectStack.Data[_ClipRectStack.Size-1] : _Data->ClipRectFullscreen) -#define GetCurrentTextureId() (_TextureIdStack.Size ? _TextureIdStack.Data[_TextureIdStack.Size-1] : (ImTextureID)NULL) - -void ImDrawList::AddDrawCmd() -{ - ImDrawCmd draw_cmd; - draw_cmd.ClipRect = GetCurrentClipRect(); - draw_cmd.TextureId = GetCurrentTextureId(); - draw_cmd.VtxOffset = _VtxCurrentOffset; - draw_cmd.IdxOffset = IdxBuffer.Size; - - IM_ASSERT(draw_cmd.ClipRect.x <= draw_cmd.ClipRect.z && draw_cmd.ClipRect.y <= draw_cmd.ClipRect.w); - CmdBuffer.push_back(draw_cmd); -} - -void ImDrawList::AddCallback(ImDrawCallback callback, void* callback_data) -{ - ImDrawCmd* current_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; - if (!current_cmd || current_cmd->ElemCount != 0 || current_cmd->UserCallback != NULL) - { - AddDrawCmd(); - current_cmd = &CmdBuffer.back(); - } - current_cmd->UserCallback = callback; - current_cmd->UserCallbackData = callback_data; - - AddDrawCmd(); // Force a new command after us (see comment below) -} - -// Our scheme may appears a bit unusual, basically we want the most-common calls AddLine AddRect etc. to not have to perform any check so we always have a command ready in the stack. -// The cost of figuring out if a new command has to be added or if we can merge is paid in those Update** functions only. -void ImDrawList::UpdateClipRect() -{ - // If current command is used with different settings we need to add a new command - const ImVec4 curr_clip_rect = GetCurrentClipRect(); - ImDrawCmd* curr_cmd = CmdBuffer.Size > 0 ? &CmdBuffer.Data[CmdBuffer.Size-1] : NULL; - if (!curr_cmd || (curr_cmd->ElemCount != 0 && memcmp(&curr_cmd->ClipRect, &curr_clip_rect, sizeof(ImVec4)) != 0) || curr_cmd->UserCallback != NULL) - { - AddDrawCmd(); - return; - } - - // Try to merge with previous command if it matches, else use current command - ImDrawCmd* prev_cmd = CmdBuffer.Size > 1 ? curr_cmd - 1 : NULL; - if (curr_cmd->ElemCount == 0 && prev_cmd && memcmp(&prev_cmd->ClipRect, &curr_clip_rect, sizeof(ImVec4)) == 0 && prev_cmd->TextureId == GetCurrentTextureId() && prev_cmd->UserCallback == NULL) - CmdBuffer.pop_back(); - else - curr_cmd->ClipRect = curr_clip_rect; -} - -void ImDrawList::UpdateTextureID() -{ - // If current command is used with different settings we need to add a new command - const ImTextureID curr_texture_id = GetCurrentTextureId(); - ImDrawCmd* curr_cmd = CmdBuffer.Size ? &CmdBuffer.back() : NULL; - if (!curr_cmd || (curr_cmd->ElemCount != 0 && curr_cmd->TextureId != curr_texture_id) || curr_cmd->UserCallback != NULL) - { - AddDrawCmd(); - return; - } - - // Try to merge with previous command if it matches, else use current command - ImDrawCmd* prev_cmd = CmdBuffer.Size > 1 ? curr_cmd - 1 : NULL; - if (curr_cmd->ElemCount == 0 && prev_cmd && prev_cmd->TextureId == curr_texture_id && memcmp(&prev_cmd->ClipRect, &GetCurrentClipRect(), sizeof(ImVec4)) == 0 && prev_cmd->UserCallback == NULL) - CmdBuffer.pop_back(); - else - curr_cmd->TextureId = curr_texture_id; -} - -#undef GetCurrentClipRect -#undef GetCurrentTextureId - -// Render-level scissoring. This is passed down to your render function but not used for CPU-side coarse clipping. Prefer using higher-level ImGui::PushClipRect() to affect logic (hit-testing and widget culling) -void ImDrawList::PushClipRect(ImVec2 cr_min, ImVec2 cr_max, bool intersect_with_current_clip_rect) -{ - ImVec4 cr(cr_min.x, cr_min.y, cr_max.x, cr_max.y); - if (intersect_with_current_clip_rect && _ClipRectStack.Size) - { - ImVec4 current = _ClipRectStack.Data[_ClipRectStack.Size-1]; - if (cr.x < current.x) cr.x = current.x; - if (cr.y < current.y) cr.y = current.y; - if (cr.z > current.z) cr.z = current.z; - if (cr.w > current.w) cr.w = current.w; - } - cr.z = ImMax(cr.x, cr.z); - cr.w = ImMax(cr.y, cr.w); - - _ClipRectStack.push_back(cr); - UpdateClipRect(); -} - -void ImDrawList::PushClipRectFullScreen() -{ - PushClipRect(ImVec2(_Data->ClipRectFullscreen.x, _Data->ClipRectFullscreen.y), ImVec2(_Data->ClipRectFullscreen.z, _Data->ClipRectFullscreen.w)); -} - -void ImDrawList::PopClipRect() -{ - IM_ASSERT(_ClipRectStack.Size > 0); - _ClipRectStack.pop_back(); - UpdateClipRect(); -} - -void ImDrawList::PushTextureID(ImTextureID texture_id) -{ - _TextureIdStack.push_back(texture_id); - UpdateTextureID(); -} - -void ImDrawList::PopTextureID() -{ - IM_ASSERT(_TextureIdStack.Size > 0); - _TextureIdStack.pop_back(); - UpdateTextureID(); -} - -// Reserve space for a number of vertices and indices. -// You must finish filling your reserved data before calling PrimReserve() again, as it may reallocate or -// submit the intermediate results. PrimUnreserve() can be used to release unused allocations. -void ImDrawList::PrimReserve(int idx_count, int vtx_count) -{ - // Large mesh support (when enabled) - IM_ASSERT_PARANOID(idx_count >= 0 && vtx_count >= 0); - if (sizeof(ImDrawIdx) == 2 && (_VtxCurrentIdx + vtx_count >= (1 << 16)) && (Flags & ImDrawListFlags_AllowVtxOffset)) - { - _VtxCurrentOffset = VtxBuffer.Size; - _VtxCurrentIdx = 0; - AddDrawCmd(); - } - - ImDrawCmd& draw_cmd = CmdBuffer.Data[CmdBuffer.Size - 1]; - draw_cmd.ElemCount += idx_count; - - int vtx_buffer_old_size = VtxBuffer.Size; - VtxBuffer.resize(vtx_buffer_old_size + vtx_count); - _VtxWritePtr = VtxBuffer.Data + vtx_buffer_old_size; - - int idx_buffer_old_size = IdxBuffer.Size; - IdxBuffer.resize(idx_buffer_old_size + idx_count); - _IdxWritePtr = IdxBuffer.Data + idx_buffer_old_size; -} - -// Release the a number of reserved vertices/indices from the end of the last reservation made with PrimReserve(). -void ImDrawList::PrimUnreserve(int idx_count, int vtx_count) -{ - IM_ASSERT_PARANOID(idx_count >= 0 && vtx_count >= 0); - - ImDrawCmd& draw_cmd = CmdBuffer.Data[CmdBuffer.Size - 1]; - draw_cmd.ElemCount -= idx_count; - VtxBuffer.shrink(VtxBuffer.Size - vtx_count); - IdxBuffer.shrink(IdxBuffer.Size - idx_count); -} - -// Fully unrolled with inline call to keep our debug builds decently fast. -void ImDrawList::PrimRect(const ImVec2& a, const ImVec2& c, ImU32 col) -{ - ImVec2 b(c.x, a.y), d(a.x, c.y), uv(_Data->TexUvWhitePixel); - ImDrawIdx idx = (ImDrawIdx)_VtxCurrentIdx; - _IdxWritePtr[0] = idx; _IdxWritePtr[1] = (ImDrawIdx)(idx+1); _IdxWritePtr[2] = (ImDrawIdx)(idx+2); - _IdxWritePtr[3] = idx; _IdxWritePtr[4] = (ImDrawIdx)(idx+2); _IdxWritePtr[5] = (ImDrawIdx)(idx+3); - _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; - _VtxWritePtr += 4; - _VtxCurrentIdx += 4; - _IdxWritePtr += 6; -} - -void ImDrawList::PrimRectUV(const ImVec2& a, const ImVec2& c, const ImVec2& uv_a, const ImVec2& uv_c, ImU32 col) -{ - ImVec2 b(c.x, a.y), d(a.x, c.y), uv_b(uv_c.x, uv_a.y), uv_d(uv_a.x, uv_c.y); - ImDrawIdx idx = (ImDrawIdx)_VtxCurrentIdx; - _IdxWritePtr[0] = idx; _IdxWritePtr[1] = (ImDrawIdx)(idx+1); _IdxWritePtr[2] = (ImDrawIdx)(idx+2); - _IdxWritePtr[3] = idx; _IdxWritePtr[4] = (ImDrawIdx)(idx+2); _IdxWritePtr[5] = (ImDrawIdx)(idx+3); - _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv_a; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv_b; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv_c; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv_d; _VtxWritePtr[3].col = col; - _VtxWritePtr += 4; - _VtxCurrentIdx += 4; - _IdxWritePtr += 6; -} - -void ImDrawList::PrimQuadUV(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& d, const ImVec2& uv_a, const ImVec2& uv_b, const ImVec2& uv_c, const ImVec2& uv_d, ImU32 col) -{ - ImDrawIdx idx = (ImDrawIdx)_VtxCurrentIdx; - _IdxWritePtr[0] = idx; _IdxWritePtr[1] = (ImDrawIdx)(idx+1); _IdxWritePtr[2] = (ImDrawIdx)(idx+2); - _IdxWritePtr[3] = idx; _IdxWritePtr[4] = (ImDrawIdx)(idx+2); _IdxWritePtr[5] = (ImDrawIdx)(idx+3); - _VtxWritePtr[0].pos = a; _VtxWritePtr[0].uv = uv_a; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos = b; _VtxWritePtr[1].uv = uv_b; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos = c; _VtxWritePtr[2].uv = uv_c; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos = d; _VtxWritePtr[3].uv = uv_d; _VtxWritePtr[3].col = col; - _VtxWritePtr += 4; - _VtxCurrentIdx += 4; - _IdxWritePtr += 6; -} - -// On AddPolyline() and AddConvexPolyFilled() we intentionally avoid using ImVec2 and superflous function calls to optimize debug/non-inlined builds. -// Those macros expects l-values. -#define IM_NORMALIZE2F_OVER_ZERO(VX,VY) do { float d2 = VX*VX + VY*VY; if (d2 > 0.0f) { float inv_len = 1.0f / ImSqrt(d2); VX *= inv_len; VY *= inv_len; } } while (0) -#define IM_FIXNORMAL2F(VX,VY) do { float d2 = VX*VX + VY*VY; if (d2 < 0.5f) d2 = 0.5f; float inv_lensq = 1.0f / d2; VX *= inv_lensq; VY *= inv_lensq; } while (0) - -// TODO: Thickness anti-aliased lines cap are missing their AA fringe. -// We avoid using the ImVec2 math operators here to reduce cost to a minimum for debug/non-inlined builds. -void ImDrawList::AddPolyline(const ImVec2* points, const int points_count, ImU32 col, bool closed, float thickness) -{ - if (points_count < 2) - return; - - const ImVec2 uv = _Data->TexUvWhitePixel; - - int count = points_count; - if (!closed) - count = points_count-1; - - const bool thick_line = thickness > 1.0f; - if (Flags & ImDrawListFlags_AntiAliasedLines) - { - // Anti-aliased stroke - const float AA_SIZE = 1.0f; - const ImU32 col_trans = col & ~IM_COL32_A_MASK; - - const int idx_count = thick_line ? count*18 : count*12; - const int vtx_count = thick_line ? points_count*4 : points_count*3; - PrimReserve(idx_count, vtx_count); - - // Temporary buffer - ImVec2* temp_normals = (ImVec2*)alloca(points_count * (thick_line ? 5 : 3) * sizeof(ImVec2)); //-V630 - ImVec2* temp_points = temp_normals + points_count; - - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - float dx = points[i2].x - points[i1].x; - float dy = points[i2].y - points[i1].y; - IM_NORMALIZE2F_OVER_ZERO(dx, dy); - temp_normals[i1].x = dy; - temp_normals[i1].y = -dx; - } - if (!closed) - temp_normals[points_count-1] = temp_normals[points_count-2]; - - if (!thick_line) - { - if (!closed) - { - temp_points[0] = points[0] + temp_normals[0] * AA_SIZE; - temp_points[1] = points[0] - temp_normals[0] * AA_SIZE; - temp_points[(points_count-1)*2+0] = points[points_count-1] + temp_normals[points_count-1] * AA_SIZE; - temp_points[(points_count-1)*2+1] = points[points_count-1] - temp_normals[points_count-1] * AA_SIZE; - } - - // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. - unsigned int idx1 = _VtxCurrentIdx; - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+3; - - // Average normals - float dm_x = (temp_normals[i1].x + temp_normals[i2].x) * 0.5f; - float dm_y = (temp_normals[i1].y + temp_normals[i2].y) * 0.5f; - IM_FIXNORMAL2F(dm_x, dm_y); - dm_x *= AA_SIZE; - dm_y *= AA_SIZE; - - // Add temporary vertexes - ImVec2* out_vtx = &temp_points[i2*2]; - out_vtx[0].x = points[i2].x + dm_x; - out_vtx[0].y = points[i2].y + dm_y; - out_vtx[1].x = points[i2].x - dm_x; - out_vtx[1].y = points[i2].y - dm_y; - - // Add indexes - _IdxWritePtr[0] = (ImDrawIdx)(idx2+0); _IdxWritePtr[1] = (ImDrawIdx)(idx1+0); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); - _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+0); - _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); - _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10]= (ImDrawIdx)(idx2+0); _IdxWritePtr[11]= (ImDrawIdx)(idx2+1); - _IdxWritePtr += 12; - - idx1 = idx2; - } - - // Add vertexes - for (int i = 0; i < points_count; i++) - { - _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos = temp_points[i*2+0]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; - _VtxWritePtr[2].pos = temp_points[i*2+1]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col_trans; - _VtxWritePtr += 3; - } - } - else - { - const float half_inner_thickness = (thickness - AA_SIZE) * 0.5f; - if (!closed) - { - temp_points[0] = points[0] + temp_normals[0] * (half_inner_thickness + AA_SIZE); - temp_points[1] = points[0] + temp_normals[0] * (half_inner_thickness); - temp_points[2] = points[0] - temp_normals[0] * (half_inner_thickness); - temp_points[3] = points[0] - temp_normals[0] * (half_inner_thickness + AA_SIZE); - temp_points[(points_count-1)*4+0] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); - temp_points[(points_count-1)*4+1] = points[points_count-1] + temp_normals[points_count-1] * (half_inner_thickness); - temp_points[(points_count-1)*4+2] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness); - temp_points[(points_count-1)*4+3] = points[points_count-1] - temp_normals[points_count-1] * (half_inner_thickness + AA_SIZE); - } - - // FIXME-OPT: Merge the different loops, possibly remove the temporary buffer. - unsigned int idx1 = _VtxCurrentIdx; - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - unsigned int idx2 = (i1+1) == points_count ? _VtxCurrentIdx : idx1+4; - - // Average normals - float dm_x = (temp_normals[i1].x + temp_normals[i2].x) * 0.5f; - float dm_y = (temp_normals[i1].y + temp_normals[i2].y) * 0.5f; - IM_FIXNORMAL2F(dm_x, dm_y); - float dm_out_x = dm_x * (half_inner_thickness + AA_SIZE); - float dm_out_y = dm_y * (half_inner_thickness + AA_SIZE); - float dm_in_x = dm_x * half_inner_thickness; - float dm_in_y = dm_y * half_inner_thickness; - - // Add temporary vertexes - ImVec2* out_vtx = &temp_points[i2*4]; - out_vtx[0].x = points[i2].x + dm_out_x; - out_vtx[0].y = points[i2].y + dm_out_y; - out_vtx[1].x = points[i2].x + dm_in_x; - out_vtx[1].y = points[i2].y + dm_in_y; - out_vtx[2].x = points[i2].x - dm_in_x; - out_vtx[2].y = points[i2].y - dm_in_y; - out_vtx[3].x = points[i2].x - dm_out_x; - out_vtx[3].y = points[i2].y - dm_out_y; - - // Add indexes - _IdxWritePtr[0] = (ImDrawIdx)(idx2+1); _IdxWritePtr[1] = (ImDrawIdx)(idx1+1); _IdxWritePtr[2] = (ImDrawIdx)(idx1+2); - _IdxWritePtr[3] = (ImDrawIdx)(idx1+2); _IdxWritePtr[4] = (ImDrawIdx)(idx2+2); _IdxWritePtr[5] = (ImDrawIdx)(idx2+1); - _IdxWritePtr[6] = (ImDrawIdx)(idx2+1); _IdxWritePtr[7] = (ImDrawIdx)(idx1+1); _IdxWritePtr[8] = (ImDrawIdx)(idx1+0); - _IdxWritePtr[9] = (ImDrawIdx)(idx1+0); _IdxWritePtr[10] = (ImDrawIdx)(idx2+0); _IdxWritePtr[11] = (ImDrawIdx)(idx2+1); - _IdxWritePtr[12] = (ImDrawIdx)(idx2+2); _IdxWritePtr[13] = (ImDrawIdx)(idx1+2); _IdxWritePtr[14] = (ImDrawIdx)(idx1+3); - _IdxWritePtr[15] = (ImDrawIdx)(idx1+3); _IdxWritePtr[16] = (ImDrawIdx)(idx2+3); _IdxWritePtr[17] = (ImDrawIdx)(idx2+2); - _IdxWritePtr += 18; - - idx1 = idx2; - } - - // Add vertexes - for (int i = 0; i < points_count; i++) - { - _VtxWritePtr[0].pos = temp_points[i*4+0]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col_trans; - _VtxWritePtr[1].pos = temp_points[i*4+1]; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos = temp_points[i*4+2]; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos = temp_points[i*4+3]; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col_trans; - _VtxWritePtr += 4; - } - } - _VtxCurrentIdx += (ImDrawIdx)vtx_count; - } - else - { - // Non Anti-aliased Stroke - const int idx_count = count*6; - const int vtx_count = count*4; // FIXME-OPT: Not sharing edges - PrimReserve(idx_count, vtx_count); - - for (int i1 = 0; i1 < count; i1++) - { - const int i2 = (i1+1) == points_count ? 0 : i1+1; - const ImVec2& p1 = points[i1]; - const ImVec2& p2 = points[i2]; - - float dx = p2.x - p1.x; - float dy = p2.y - p1.y; - IM_NORMALIZE2F_OVER_ZERO(dx, dy); - dx *= (thickness * 0.5f); - dy *= (thickness * 0.5f); - - _VtxWritePtr[0].pos.x = p1.x + dy; _VtxWritePtr[0].pos.y = p1.y - dx; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr[1].pos.x = p2.x + dy; _VtxWritePtr[1].pos.y = p2.y - dx; _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col; - _VtxWritePtr[2].pos.x = p2.x - dy; _VtxWritePtr[2].pos.y = p2.y + dx; _VtxWritePtr[2].uv = uv; _VtxWritePtr[2].col = col; - _VtxWritePtr[3].pos.x = p1.x - dy; _VtxWritePtr[3].pos.y = p1.y + dx; _VtxWritePtr[3].uv = uv; _VtxWritePtr[3].col = col; - _VtxWritePtr += 4; - - _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+2); - _IdxWritePtr[3] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[4] = (ImDrawIdx)(_VtxCurrentIdx+2); _IdxWritePtr[5] = (ImDrawIdx)(_VtxCurrentIdx+3); - _IdxWritePtr += 6; - _VtxCurrentIdx += 4; - } - } -} - -// We intentionally avoid using ImVec2 and its math operators here to reduce cost to a minimum for debug/non-inlined builds. -void ImDrawList::AddConvexPolyFilled(const ImVec2* points, const int points_count, ImU32 col) -{ - if (points_count < 3) - return; - - const ImVec2 uv = _Data->TexUvWhitePixel; - - if (Flags & ImDrawListFlags_AntiAliasedFill) - { - // Anti-aliased Fill - const float AA_SIZE = 1.0f; - const ImU32 col_trans = col & ~IM_COL32_A_MASK; - const int idx_count = (points_count-2)*3 + points_count*6; - const int vtx_count = (points_count*2); - PrimReserve(idx_count, vtx_count); - - // Add indexes for fill - unsigned int vtx_inner_idx = _VtxCurrentIdx; - unsigned int vtx_outer_idx = _VtxCurrentIdx+1; - for (int i = 2; i < points_count; i++) - { - _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+((i-1)<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_inner_idx+(i<<1)); - _IdxWritePtr += 3; - } - - // Compute normals - ImVec2* temp_normals = (ImVec2*)alloca(points_count * sizeof(ImVec2)); //-V630 - for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) - { - const ImVec2& p0 = points[i0]; - const ImVec2& p1 = points[i1]; - float dx = p1.x - p0.x; - float dy = p1.y - p0.y; - IM_NORMALIZE2F_OVER_ZERO(dx, dy); - temp_normals[i0].x = dy; - temp_normals[i0].y = -dx; - } - - for (int i0 = points_count-1, i1 = 0; i1 < points_count; i0 = i1++) - { - // Average normals - const ImVec2& n0 = temp_normals[i0]; - const ImVec2& n1 = temp_normals[i1]; - float dm_x = (n0.x + n1.x) * 0.5f; - float dm_y = (n0.y + n1.y) * 0.5f; - IM_FIXNORMAL2F(dm_x, dm_y); - dm_x *= AA_SIZE * 0.5f; - dm_y *= AA_SIZE * 0.5f; - - // Add vertices - _VtxWritePtr[0].pos.x = (points[i1].x - dm_x); _VtxWritePtr[0].pos.y = (points[i1].y - dm_y); _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; // Inner - _VtxWritePtr[1].pos.x = (points[i1].x + dm_x); _VtxWritePtr[1].pos.y = (points[i1].y + dm_y); _VtxWritePtr[1].uv = uv; _VtxWritePtr[1].col = col_trans; // Outer - _VtxWritePtr += 2; - - // Add indexes for fringes - _IdxWritePtr[0] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); _IdxWritePtr[1] = (ImDrawIdx)(vtx_inner_idx+(i0<<1)); _IdxWritePtr[2] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); - _IdxWritePtr[3] = (ImDrawIdx)(vtx_outer_idx+(i0<<1)); _IdxWritePtr[4] = (ImDrawIdx)(vtx_outer_idx+(i1<<1)); _IdxWritePtr[5] = (ImDrawIdx)(vtx_inner_idx+(i1<<1)); - _IdxWritePtr += 6; - } - _VtxCurrentIdx += (ImDrawIdx)vtx_count; - } - else - { - // Non Anti-aliased Fill - const int idx_count = (points_count-2)*3; - const int vtx_count = points_count; - PrimReserve(idx_count, vtx_count); - for (int i = 0; i < vtx_count; i++) - { - _VtxWritePtr[0].pos = points[i]; _VtxWritePtr[0].uv = uv; _VtxWritePtr[0].col = col; - _VtxWritePtr++; - } - for (int i = 2; i < points_count; i++) - { - _IdxWritePtr[0] = (ImDrawIdx)(_VtxCurrentIdx); _IdxWritePtr[1] = (ImDrawIdx)(_VtxCurrentIdx+i-1); _IdxWritePtr[2] = (ImDrawIdx)(_VtxCurrentIdx+i); - _IdxWritePtr += 3; - } - _VtxCurrentIdx += (ImDrawIdx)vtx_count; - } -} - -void ImDrawList::PathArcToFast(const ImVec2& center, float radius, int a_min_of_12, int a_max_of_12) -{ - if (radius == 0.0f || a_min_of_12 > a_max_of_12) - { - _Path.push_back(center); - return; - } - - // For legacy reason the PathArcToFast() always takes angles where 2*PI is represented by 12, - // but it is possible to set IM_DRAWLIST_ARCFAST_TESSELATION_MULTIPLIER to a higher value. This should compile to a no-op otherwise. -#if IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER != 1 - a_min_of_12 *= IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER; - a_max_of_12 *= IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER; -#endif - - _Path.reserve(_Path.Size + (a_max_of_12 - a_min_of_12 + 1)); - for (int a = a_min_of_12; a <= a_max_of_12; a++) - { - const ImVec2& c = _Data->ArcFastVtx[a % IM_ARRAYSIZE(_Data->ArcFastVtx)]; - _Path.push_back(ImVec2(center.x + c.x * radius, center.y + c.y * radius)); - } -} - -void ImDrawList::PathArcTo(const ImVec2& center, float radius, float a_min, float a_max, int num_segments) -{ - if (radius == 0.0f) - { - _Path.push_back(center); - return; - } - - // Note that we are adding a point at both a_min and a_max. - // If you are trying to draw a full closed circle you don't want the overlapping points! - _Path.reserve(_Path.Size + (num_segments + 1)); - for (int i = 0; i <= num_segments; i++) - { - const float a = a_min + ((float)i / (float)num_segments) * (a_max - a_min); - _Path.push_back(ImVec2(center.x + ImCos(a) * radius, center.y + ImSin(a) * radius)); - } -} - -ImVec2 ImBezierCalc(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, float t) -{ - float u = 1.0f - t; - float w1 = u*u*u; - float w2 = 3*u*u*t; - float w3 = 3*u*t*t; - float w4 = t*t*t; - return ImVec2(w1*p1.x + w2*p2.x + w3*p3.x + w4*p4.x, w1*p1.y + w2*p2.y + w3*p3.y + w4*p4.y); -} - -// Closely mimics BezierClosestPointCasteljauStep() in imgui.cpp -static void PathBezierToCasteljau(ImVector* path, float x1, float y1, float x2, float y2, float x3, float y3, float x4, float y4, float tess_tol, int level) -{ - float dx = x4 - x1; - float dy = y4 - y1; - float d2 = ((x2 - x4) * dy - (y2 - y4) * dx); - float d3 = ((x3 - x4) * dy - (y3 - y4) * dx); - d2 = (d2 >= 0) ? d2 : -d2; - d3 = (d3 >= 0) ? d3 : -d3; - if ((d2+d3) * (d2+d3) < tess_tol * (dx*dx + dy*dy)) - { - path->push_back(ImVec2(x4, y4)); - } - else if (level < 10) - { - float x12 = (x1+x2)*0.5f, y12 = (y1+y2)*0.5f; - float x23 = (x2+x3)*0.5f, y23 = (y2+y3)*0.5f; - float x34 = (x3+x4)*0.5f, y34 = (y3+y4)*0.5f; - float x123 = (x12+x23)*0.5f, y123 = (y12+y23)*0.5f; - float x234 = (x23+x34)*0.5f, y234 = (y23+y34)*0.5f; - float x1234 = (x123+x234)*0.5f, y1234 = (y123+y234)*0.5f; - PathBezierToCasteljau(path, x1,y1, x12,y12, x123,y123, x1234,y1234, tess_tol, level+1); - PathBezierToCasteljau(path, x1234,y1234, x234,y234, x34,y34, x4,y4, tess_tol, level+1); - } -} - -void ImDrawList::PathBezierCurveTo(const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, int num_segments) -{ - ImVec2 p1 = _Path.back(); - if (num_segments == 0) - { - PathBezierToCasteljau(&_Path, p1.x, p1.y, p2.x, p2.y, p3.x, p3.y, p4.x, p4.y, _Data->CurveTessellationTol, 0); // Auto-tessellated - } - else - { - float t_step = 1.0f / (float)num_segments; - for (int i_step = 1; i_step <= num_segments; i_step++) - _Path.push_back(ImBezierCalc(p1, p2, p3, p4, t_step * i_step)); - } -} - -void ImDrawList::PathRect(const ImVec2& a, const ImVec2& b, float rounding, ImDrawCornerFlags rounding_corners) -{ - rounding = ImMin(rounding, ImFabs(b.x - a.x) * ( ((rounding_corners & ImDrawCornerFlags_Top) == ImDrawCornerFlags_Top) || ((rounding_corners & ImDrawCornerFlags_Bot) == ImDrawCornerFlags_Bot) ? 0.5f : 1.0f ) - 1.0f); - rounding = ImMin(rounding, ImFabs(b.y - a.y) * ( ((rounding_corners & ImDrawCornerFlags_Left) == ImDrawCornerFlags_Left) || ((rounding_corners & ImDrawCornerFlags_Right) == ImDrawCornerFlags_Right) ? 0.5f : 1.0f ) - 1.0f); - - if (rounding <= 0.0f || rounding_corners == 0) - { - PathLineTo(a); - PathLineTo(ImVec2(b.x, a.y)); - PathLineTo(b); - PathLineTo(ImVec2(a.x, b.y)); - } - else - { - const float rounding_tl = (rounding_corners & ImDrawCornerFlags_TopLeft) ? rounding : 0.0f; - const float rounding_tr = (rounding_corners & ImDrawCornerFlags_TopRight) ? rounding : 0.0f; - const float rounding_br = (rounding_corners & ImDrawCornerFlags_BotRight) ? rounding : 0.0f; - const float rounding_bl = (rounding_corners & ImDrawCornerFlags_BotLeft) ? rounding : 0.0f; - PathArcToFast(ImVec2(a.x + rounding_tl, a.y + rounding_tl), rounding_tl, 6, 9); - PathArcToFast(ImVec2(b.x - rounding_tr, a.y + rounding_tr), rounding_tr, 9, 12); - PathArcToFast(ImVec2(b.x - rounding_br, b.y - rounding_br), rounding_br, 0, 3); - PathArcToFast(ImVec2(a.x + rounding_bl, b.y - rounding_bl), rounding_bl, 3, 6); - } -} - -void ImDrawList::AddLine(const ImVec2& p1, const ImVec2& p2, ImU32 col, float thickness) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - PathLineTo(p1 + ImVec2(0.5f, 0.5f)); - PathLineTo(p2 + ImVec2(0.5f, 0.5f)); - PathStroke(col, false, thickness); -} - -// p_min = upper-left, p_max = lower-right -// Note we don't render 1 pixels sized rectangles properly. -void ImDrawList::AddRect(const ImVec2& p_min, const ImVec2& p_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners, float thickness) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - if (Flags & ImDrawListFlags_AntiAliasedLines) - PathRect(p_min + ImVec2(0.50f,0.50f), p_max - ImVec2(0.50f,0.50f), rounding, rounding_corners); - else - PathRect(p_min + ImVec2(0.50f,0.50f), p_max - ImVec2(0.49f,0.49f), rounding, rounding_corners); // Better looking lower-right corner and rounded non-AA shapes. - PathStroke(col, true, thickness); -} - -void ImDrawList::AddRectFilled(const ImVec2& p_min, const ImVec2& p_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - if (rounding > 0.0f) - { - PathRect(p_min, p_max, rounding, rounding_corners); - PathFillConvex(col); - } - else - { - PrimReserve(6, 4); - PrimRect(p_min, p_max, col); - } -} - -// p_min = upper-left, p_max = lower-right -void ImDrawList::AddRectFilledMultiColor(const ImVec2& p_min, const ImVec2& p_max, ImU32 col_upr_left, ImU32 col_upr_right, ImU32 col_bot_right, ImU32 col_bot_left) -{ - if (((col_upr_left | col_upr_right | col_bot_right | col_bot_left) & IM_COL32_A_MASK) == 0) - return; - - const ImVec2 uv = _Data->TexUvWhitePixel; - PrimReserve(6, 4); - PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+1)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); - PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+2)); PrimWriteIdx((ImDrawIdx)(_VtxCurrentIdx+3)); - PrimWriteVtx(p_min, uv, col_upr_left); - PrimWriteVtx(ImVec2(p_max.x, p_min.y), uv, col_upr_right); - PrimWriteVtx(p_max, uv, col_bot_right); - PrimWriteVtx(ImVec2(p_min.x, p_max.y), uv, col_bot_left); -} - -void ImDrawList::AddQuad(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col, float thickness) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - PathLineTo(p1); - PathLineTo(p2); - PathLineTo(p3); - PathLineTo(p4); - PathStroke(col, true, thickness); -} - -void ImDrawList::AddQuadFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - PathLineTo(p1); - PathLineTo(p2); - PathLineTo(p3); - PathLineTo(p4); - PathFillConvex(col); -} - -void ImDrawList::AddTriangle(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col, float thickness) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - PathLineTo(p1); - PathLineTo(p2); - PathLineTo(p3); - PathStroke(col, true, thickness); -} - -void ImDrawList::AddTriangleFilled(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, ImU32 col) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - PathLineTo(p1); - PathLineTo(p2); - PathLineTo(p3); - PathFillConvex(col); -} - -void ImDrawList::AddCircle(const ImVec2& center, float radius, ImU32 col, int num_segments, float thickness) -{ - if ((col & IM_COL32_A_MASK) == 0 || radius <= 0.0f) - return; - - // Obtain segment count - if (num_segments <= 0) - { - // Automatic segment count - const int radius_idx = (int)radius - 1; - if (radius_idx < IM_ARRAYSIZE(_Data->CircleSegmentCounts)) - num_segments = _Data->CircleSegmentCounts[radius_idx]; // Use cached value - else - num_segments = IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(radius, _Data->CircleSegmentMaxError); - } - else - { - // Explicit segment count (still clamp to avoid drawing insanely tessellated shapes) - num_segments = ImClamp(num_segments, 3, IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX); - } - - // Because we are filling a closed shape we remove 1 from the count of segments/points - const float a_max = (IM_PI * 2.0f) * ((float)num_segments - 1.0f) / (float)num_segments; - if (num_segments == 12) - PathArcToFast(center, radius - 0.5f, 0, 12); - else - PathArcTo(center, radius - 0.5f, 0.0f, a_max, num_segments - 1); - PathStroke(col, true, thickness); -} - -void ImDrawList::AddCircleFilled(const ImVec2& center, float radius, ImU32 col, int num_segments) -{ - if ((col & IM_COL32_A_MASK) == 0 || radius <= 0.0f) - return; - - // Obtain segment count - if (num_segments <= 0) - { - // Automatic segment count - const int radius_idx = (int)radius - 1; - if (radius_idx < IM_ARRAYSIZE(_Data->CircleSegmentCounts)) - num_segments = _Data->CircleSegmentCounts[radius_idx]; // Use cached value - else - num_segments = IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(radius, _Data->CircleSegmentMaxError); - } - else - { - // Explicit segment count (still clamp to avoid drawing insanely tessellated shapes) - num_segments = ImClamp(num_segments, 3, IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX); - } - - // Because we are filling a closed shape we remove 1 from the count of segments/points - const float a_max = (IM_PI * 2.0f) * ((float)num_segments - 1.0f) / (float)num_segments; - if (num_segments == 12) - PathArcToFast(center, radius, 0, 12); - else - PathArcTo(center, radius, 0.0f, a_max, num_segments - 1); - PathFillConvex(col); -} - -// Guaranteed to honor 'num_segments' -void ImDrawList::AddNgon(const ImVec2& center, float radius, ImU32 col, int num_segments, float thickness) -{ - if ((col & IM_COL32_A_MASK) == 0 || num_segments <= 2) - return; - - // Because we are filling a closed shape we remove 1 from the count of segments/points - const float a_max = (IM_PI * 2.0f) * ((float)num_segments - 1.0f) / (float)num_segments; - PathArcTo(center, radius - 0.5f, 0.0f, a_max, num_segments - 1); - PathStroke(col, true, thickness); -} - -// Guaranteed to honor 'num_segments' -void ImDrawList::AddNgonFilled(const ImVec2& center, float radius, ImU32 col, int num_segments) -{ - if ((col & IM_COL32_A_MASK) == 0 || num_segments <= 2) - return; - - // Because we are filling a closed shape we remove 1 from the count of segments/points - const float a_max = (IM_PI * 2.0f) * ((float)num_segments - 1.0f) / (float)num_segments; - PathArcTo(center, radius, 0.0f, a_max, num_segments - 1); - PathFillConvex(col); -} - -// Cubic Bezier takes 4 controls points -void ImDrawList::AddBezierCurve(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, ImU32 col, float thickness, int num_segments) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - PathLineTo(p1); - PathBezierCurveTo(p2, p3, p4, num_segments); - PathStroke(col, false, thickness); -} - -void ImDrawList::AddText(const ImFont* font, float font_size, const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end, float wrap_width, const ImVec4* cpu_fine_clip_rect) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - if (text_end == NULL) - text_end = text_begin + strlen(text_begin); - if (text_begin == text_end) - return; - - // Pull default font/size from the shared ImDrawListSharedData instance - if (font == NULL) - font = _Data->Font; - if (font_size == 0.0f) - font_size = _Data->FontSize; - - IM_ASSERT(font->ContainerAtlas->TexID == _TextureIdStack.back()); // Use high-level ImGui::PushFont() or low-level ImDrawList::PushTextureId() to change font. - - ImVec4 clip_rect = _ClipRectStack.back(); - if (cpu_fine_clip_rect) - { - clip_rect.x = ImMax(clip_rect.x, cpu_fine_clip_rect->x); - clip_rect.y = ImMax(clip_rect.y, cpu_fine_clip_rect->y); - clip_rect.z = ImMin(clip_rect.z, cpu_fine_clip_rect->z); - clip_rect.w = ImMin(clip_rect.w, cpu_fine_clip_rect->w); - } - font->RenderText(this, font_size, pos, col, clip_rect, text_begin, text_end, wrap_width, cpu_fine_clip_rect != NULL); -} - -void ImDrawList::AddText(const ImVec2& pos, ImU32 col, const char* text_begin, const char* text_end) -{ - AddText(NULL, 0.0f, pos, col, text_begin, text_end); -} - -void ImDrawList::AddImage(ImTextureID user_texture_id, const ImVec2& p_min, const ImVec2& p_max, const ImVec2& uv_min, const ImVec2& uv_max, ImU32 col) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - const bool push_texture_id = _TextureIdStack.empty() || user_texture_id != _TextureIdStack.back(); - if (push_texture_id) - PushTextureID(user_texture_id); - - PrimReserve(6, 4); - PrimRectUV(p_min, p_max, uv_min, uv_max, col); - - if (push_texture_id) - PopTextureID(); -} - -void ImDrawList::AddImageQuad(ImTextureID user_texture_id, const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& uv1, const ImVec2& uv2, const ImVec2& uv3, const ImVec2& uv4, ImU32 col) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - const bool push_texture_id = _TextureIdStack.empty() || user_texture_id != _TextureIdStack.back(); - if (push_texture_id) - PushTextureID(user_texture_id); - - PrimReserve(6, 4); - PrimQuadUV(p1, p2, p3, p4, uv1, uv2, uv3, uv4, col); - - if (push_texture_id) - PopTextureID(); -} - -void ImDrawList::AddImageRounded(ImTextureID user_texture_id, const ImVec2& p_min, const ImVec2& p_max, const ImVec2& uv_min, const ImVec2& uv_max, ImU32 col, float rounding, ImDrawCornerFlags rounding_corners) -{ - if ((col & IM_COL32_A_MASK) == 0) - return; - - if (rounding <= 0.0f || (rounding_corners & ImDrawCornerFlags_All) == 0) - { - AddImage(user_texture_id, p_min, p_max, uv_min, uv_max, col); - return; - } - - const bool push_texture_id = _TextureIdStack.empty() || user_texture_id != _TextureIdStack.back(); - if (push_texture_id) - PushTextureID(user_texture_id); - - int vert_start_idx = VtxBuffer.Size; - PathRect(p_min, p_max, rounding, rounding_corners); - PathFillConvex(col); - int vert_end_idx = VtxBuffer.Size; - ImGui::ShadeVertsLinearUV(this, vert_start_idx, vert_end_idx, p_min, p_max, uv_min, uv_max, true); - - if (push_texture_id) - PopTextureID(); -} - - -//----------------------------------------------------------------------------- -// ImDrawListSplitter -//----------------------------------------------------------------------------- -// FIXME: This may be a little confusing, trying to be a little too low-level/optimal instead of just doing vector swap.. -//----------------------------------------------------------------------------- - -void ImDrawListSplitter::ClearFreeMemory() -{ - for (int i = 0; i < _Channels.Size; i++) - { - if (i == _Current) - memset(&_Channels[i], 0, sizeof(_Channels[i])); // Current channel is a copy of CmdBuffer/IdxBuffer, don't destruct again - _Channels[i]._CmdBuffer.clear(); - _Channels[i]._IdxBuffer.clear(); - } - _Current = 0; - _Count = 1; - _Channels.clear(); -} - -void ImDrawListSplitter::Split(ImDrawList* draw_list, int channels_count) -{ - IM_ASSERT(_Current == 0 && _Count <= 1 && "Nested channel splitting is not supported. Please use separate instances of ImDrawListSplitter."); - int old_channels_count = _Channels.Size; - if (old_channels_count < channels_count) - _Channels.resize(channels_count); - _Count = channels_count; - - // Channels[] (24/32 bytes each) hold storage that we'll swap with draw_list->_CmdBuffer/_IdxBuffer - // The content of Channels[0] at this point doesn't matter. We clear it to make state tidy in a debugger but we don't strictly need to. - // When we switch to the next channel, we'll copy draw_list->_CmdBuffer/_IdxBuffer into Channels[0] and then Channels[1] into draw_list->CmdBuffer/_IdxBuffer - memset(&_Channels[0], 0, sizeof(ImDrawChannel)); - for (int i = 1; i < channels_count; i++) - { - if (i >= old_channels_count) - { - IM_PLACEMENT_NEW(&_Channels[i]) ImDrawChannel(); - } - else - { - _Channels[i]._CmdBuffer.resize(0); - _Channels[i]._IdxBuffer.resize(0); - } - if (_Channels[i]._CmdBuffer.Size == 0) - { - ImDrawCmd draw_cmd; - draw_cmd.ClipRect = draw_list->_ClipRectStack.back(); - draw_cmd.TextureId = draw_list->_TextureIdStack.back(); - _Channels[i]._CmdBuffer.push_back(draw_cmd); - } - } -} - -static inline bool CanMergeDrawCommands(ImDrawCmd* a, ImDrawCmd* b) -{ - return memcmp(&a->ClipRect, &b->ClipRect, sizeof(a->ClipRect)) == 0 && a->TextureId == b->TextureId && a->VtxOffset == b->VtxOffset && !a->UserCallback && !b->UserCallback; -} - -void ImDrawListSplitter::Merge(ImDrawList* draw_list) -{ - // Note that we never use or rely on channels.Size because it is merely a buffer that we never shrink back to 0 to keep all sub-buffers ready for use. - if (_Count <= 1) - return; - - SetCurrentChannel(draw_list, 0); - if (draw_list->CmdBuffer.Size != 0 && draw_list->CmdBuffer.back().ElemCount == 0) - draw_list->CmdBuffer.pop_back(); - - // Calculate our final buffer sizes. Also fix the incorrect IdxOffset values in each command. - int new_cmd_buffer_count = 0; - int new_idx_buffer_count = 0; - ImDrawCmd* last_cmd = (_Count > 0 && draw_list->CmdBuffer.Size > 0) ? &draw_list->CmdBuffer.back() : NULL; - int idx_offset = last_cmd ? last_cmd->IdxOffset + last_cmd->ElemCount : 0; - for (int i = 1; i < _Count; i++) - { - ImDrawChannel& ch = _Channels[i]; - if (ch._CmdBuffer.Size > 0 && ch._CmdBuffer.back().ElemCount == 0) - ch._CmdBuffer.pop_back(); - if (ch._CmdBuffer.Size > 0 && last_cmd != NULL && CanMergeDrawCommands(last_cmd, &ch._CmdBuffer[0])) - { - // Merge previous channel last draw command with current channel first draw command if matching. - last_cmd->ElemCount += ch._CmdBuffer[0].ElemCount; - idx_offset += ch._CmdBuffer[0].ElemCount; - ch._CmdBuffer.erase(ch._CmdBuffer.Data); // FIXME-OPT: Improve for multiple merges. - } - if (ch._CmdBuffer.Size > 0) - last_cmd = &ch._CmdBuffer.back(); - new_cmd_buffer_count += ch._CmdBuffer.Size; - new_idx_buffer_count += ch._IdxBuffer.Size; - for (int cmd_n = 0; cmd_n < ch._CmdBuffer.Size; cmd_n++) - { - ch._CmdBuffer.Data[cmd_n].IdxOffset = idx_offset; - idx_offset += ch._CmdBuffer.Data[cmd_n].ElemCount; - } - } - draw_list->CmdBuffer.resize(draw_list->CmdBuffer.Size + new_cmd_buffer_count); - draw_list->IdxBuffer.resize(draw_list->IdxBuffer.Size + new_idx_buffer_count); - - // Write commands and indices in order (they are fairly small structures, we don't copy vertices only indices) - ImDrawCmd* cmd_write = draw_list->CmdBuffer.Data + draw_list->CmdBuffer.Size - new_cmd_buffer_count; - ImDrawIdx* idx_write = draw_list->IdxBuffer.Data + draw_list->IdxBuffer.Size - new_idx_buffer_count; - for (int i = 1; i < _Count; i++) - { - ImDrawChannel& ch = _Channels[i]; - if (int sz = ch._CmdBuffer.Size) { memcpy(cmd_write, ch._CmdBuffer.Data, sz * sizeof(ImDrawCmd)); cmd_write += sz; } - if (int sz = ch._IdxBuffer.Size) { memcpy(idx_write, ch._IdxBuffer.Data, sz * sizeof(ImDrawIdx)); idx_write += sz; } - } - draw_list->_IdxWritePtr = idx_write; - draw_list->UpdateClipRect(); // We call this instead of AddDrawCmd(), so that empty channels won't produce an extra draw call. - draw_list->UpdateTextureID(); - _Count = 1; -} - -void ImDrawListSplitter::SetCurrentChannel(ImDrawList* draw_list, int idx) -{ - IM_ASSERT(idx >= 0 && idx < _Count); - if (_Current == idx) - return; - // Overwrite ImVector (12/16 bytes), four times. This is merely a silly optimization instead of doing .swap() - memcpy(&_Channels.Data[_Current]._CmdBuffer, &draw_list->CmdBuffer, sizeof(draw_list->CmdBuffer)); - memcpy(&_Channels.Data[_Current]._IdxBuffer, &draw_list->IdxBuffer, sizeof(draw_list->IdxBuffer)); - _Current = idx; - memcpy(&draw_list->CmdBuffer, &_Channels.Data[idx]._CmdBuffer, sizeof(draw_list->CmdBuffer)); - memcpy(&draw_list->IdxBuffer, &_Channels.Data[idx]._IdxBuffer, sizeof(draw_list->IdxBuffer)); - draw_list->_IdxWritePtr = draw_list->IdxBuffer.Data + draw_list->IdxBuffer.Size; -} - -//----------------------------------------------------------------------------- -// [SECTION] ImDrawData -//----------------------------------------------------------------------------- - -// For backward compatibility: convert all buffers from indexed to de-indexed, in case you cannot render indexed. Note: this is slow and most likely a waste of resources. Always prefer indexed rendering! -void ImDrawData::DeIndexAllBuffers() -{ - ImVector new_vtx_buffer; - TotalVtxCount = TotalIdxCount = 0; - for (int i = 0; i < CmdListsCount; i++) - { - ImDrawList* cmd_list = CmdLists[i]; - if (cmd_list->IdxBuffer.empty()) - continue; - new_vtx_buffer.resize(cmd_list->IdxBuffer.Size); - for (int j = 0; j < cmd_list->IdxBuffer.Size; j++) - new_vtx_buffer[j] = cmd_list->VtxBuffer[cmd_list->IdxBuffer[j]]; - cmd_list->VtxBuffer.swap(new_vtx_buffer); - cmd_list->IdxBuffer.resize(0); - TotalVtxCount += cmd_list->VtxBuffer.Size; - } -} - -// Helper to scale the ClipRect field of each ImDrawCmd. -// Use if your final output buffer is at a different scale than draw_data->DisplaySize, -// or if there is a difference between your window resolution and framebuffer resolution. -void ImDrawData::ScaleClipRects(const ImVec2& fb_scale) -{ - for (int i = 0; i < CmdListsCount; i++) - { - ImDrawList* cmd_list = CmdLists[i]; - for (int cmd_i = 0; cmd_i < cmd_list->CmdBuffer.Size; cmd_i++) - { - ImDrawCmd* cmd = &cmd_list->CmdBuffer[cmd_i]; - cmd->ClipRect = ImVec4(cmd->ClipRect.x * fb_scale.x, cmd->ClipRect.y * fb_scale.y, cmd->ClipRect.z * fb_scale.x, cmd->ClipRect.w * fb_scale.y); - } - } -} - -//----------------------------------------------------------------------------- -// [SECTION] Helpers ShadeVertsXXX functions -//----------------------------------------------------------------------------- - -// Generic linear color gradient, write to RGB fields, leave A untouched. -void ImGui::ShadeVertsLinearColorGradientKeepAlpha(ImDrawList* draw_list, int vert_start_idx, int vert_end_idx, ImVec2 gradient_p0, ImVec2 gradient_p1, ImU32 col0, ImU32 col1) -{ - ImVec2 gradient_extent = gradient_p1 - gradient_p0; - float gradient_inv_length2 = 1.0f / ImLengthSqr(gradient_extent); - ImDrawVert* vert_start = draw_list->VtxBuffer.Data + vert_start_idx; - ImDrawVert* vert_end = draw_list->VtxBuffer.Data + vert_end_idx; - for (ImDrawVert* vert = vert_start; vert < vert_end; vert++) - { - float d = ImDot(vert->pos - gradient_p0, gradient_extent); - float t = ImClamp(d * gradient_inv_length2, 0.0f, 1.0f); - int r = ImLerp((int)(col0 >> IM_COL32_R_SHIFT) & 0xFF, (int)(col1 >> IM_COL32_R_SHIFT) & 0xFF, t); - int g = ImLerp((int)(col0 >> IM_COL32_G_SHIFT) & 0xFF, (int)(col1 >> IM_COL32_G_SHIFT) & 0xFF, t); - int b = ImLerp((int)(col0 >> IM_COL32_B_SHIFT) & 0xFF, (int)(col1 >> IM_COL32_B_SHIFT) & 0xFF, t); - vert->col = (r << IM_COL32_R_SHIFT) | (g << IM_COL32_G_SHIFT) | (b << IM_COL32_B_SHIFT) | (vert->col & IM_COL32_A_MASK); - } -} - -// Distribute UV over (a, b) rectangle -void ImGui::ShadeVertsLinearUV(ImDrawList* draw_list, int vert_start_idx, int vert_end_idx, const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, bool clamp) -{ - const ImVec2 size = b - a; - const ImVec2 uv_size = uv_b - uv_a; - const ImVec2 scale = ImVec2( - size.x != 0.0f ? (uv_size.x / size.x) : 0.0f, - size.y != 0.0f ? (uv_size.y / size.y) : 0.0f); - - ImDrawVert* vert_start = draw_list->VtxBuffer.Data + vert_start_idx; - ImDrawVert* vert_end = draw_list->VtxBuffer.Data + vert_end_idx; - if (clamp) - { - const ImVec2 min = ImMin(uv_a, uv_b); - const ImVec2 max = ImMax(uv_a, uv_b); - for (ImDrawVert* vertex = vert_start; vertex < vert_end; ++vertex) - vertex->uv = ImClamp(uv_a + ImMul(ImVec2(vertex->pos.x, vertex->pos.y) - a, scale), min, max); - } - else - { - for (ImDrawVert* vertex = vert_start; vertex < vert_end; ++vertex) - vertex->uv = uv_a + ImMul(ImVec2(vertex->pos.x, vertex->pos.y) - a, scale); - } -} - -//----------------------------------------------------------------------------- -// [SECTION] ImFontConfig -//----------------------------------------------------------------------------- - -ImFontConfig::ImFontConfig() -{ - FontData = NULL; - FontDataSize = 0; - FontDataOwnedByAtlas = true; - FontNo = 0; - SizePixels = 0.0f; - OversampleH = 3; // FIXME: 2 may be a better default? - OversampleV = 1; - PixelSnapH = false; - GlyphExtraSpacing = ImVec2(0.0f, 0.0f); - GlyphOffset = ImVec2(0.0f, 0.0f); - GlyphRanges = NULL; - GlyphMinAdvanceX = 0.0f; - GlyphMaxAdvanceX = FLT_MAX; - MergeMode = false; - RasterizerFlags = 0x00; - RasterizerMultiply = 1.0f; - EllipsisChar = (ImWchar)-1; - memset(Name, 0, sizeof(Name)); - DstFont = NULL; -} - -//----------------------------------------------------------------------------- -// [SECTION] ImFontAtlas -//----------------------------------------------------------------------------- - -// A work of art lies ahead! (. = white layer, X = black layer, others are blank) -// The white texels on the top left are the ones we'll use everywhere in Dear ImGui to render filled shapes. -const int FONT_ATLAS_DEFAULT_TEX_DATA_W_HALF = 108; -const int FONT_ATLAS_DEFAULT_TEX_DATA_H = 27; -const unsigned int FONT_ATLAS_DEFAULT_TEX_DATA_ID = 0x80000000; -static const char FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS[FONT_ATLAS_DEFAULT_TEX_DATA_W_HALF * FONT_ATLAS_DEFAULT_TEX_DATA_H + 1] = -{ - "..- -XXXXXXX- X - X -XXXXXXX - XXXXXXX- XX " - "..- -X.....X- X.X - X.X -X.....X - X.....X- X..X " - "--- -XXX.XXX- X...X - X...X -X....X - X....X- X..X " - "X - X.X - X.....X - X.....X -X...X - X...X- X..X " - "XX - X.X -X.......X- X.......X -X..X.X - X.X..X- X..X " - "X.X - X.X -XXXX.XXXX- XXXX.XXXX -X.X X.X - X.X X.X- X..XXX " - "X..X - X.X - X.X - X.X -XX X.X - X.X XX- X..X..XXX " - "X...X - X.X - X.X - XX X.X XX - X.X - X.X - X..X..X..XX " - "X....X - X.X - X.X - X.X X.X X.X - X.X - X.X - X..X..X..X.X " - "X.....X - X.X - X.X - X..X X.X X..X - X.X - X.X -XXX X..X..X..X..X" - "X......X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X XX-XX X.X -X..XX........X..X" - "X.......X - X.X - X.X -X.....................X- X.X X.X-X.X X.X -X...X...........X" - "X........X - X.X - X.X - X...XXXXXX.XXXXXX...X - X.X..X-X..X.X - X..............X" - "X.........X -XXX.XXX- X.X - X..X X.X X..X - X...X-X...X - X.............X" - "X..........X-X.....X- X.X - X.X X.X X.X - X....X-X....X - X.............X" - "X......XXXXX-XXXXXXX- X.X - XX X.X XX - X.....X-X.....X - X............X" - "X...X..X --------- X.X - X.X - XXXXXXX-XXXXXXX - X...........X " - "X..X X..X - -XXXX.XXXX- XXXX.XXXX ------------------------------------- X..........X " - "X.X X..X - -X.......X- X.......X - XX XX - - X..........X " - "XX X..X - - X.....X - X.....X - X.X X.X - - X........X " - " X..X - X...X - X...X - X..X X..X - - X........X " - " XX - X.X - X.X - X...XXXXXXXXXXXXX...X - - XXXXXXXXXX " - "------------ - X - X -X.....................X- ------------------" - " ----------------------------------- X...XXXXXXXXXXXXX...X - " - " - X..X X..X - " - " - X.X X.X - " - " - XX XX - " -}; - -static const ImVec2 FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[ImGuiMouseCursor_COUNT][3] = -{ - // Pos ........ Size ......... Offset ...... - { ImVec2( 0,3), ImVec2(12,19), ImVec2( 0, 0) }, // ImGuiMouseCursor_Arrow - { ImVec2(13,0), ImVec2( 7,16), ImVec2( 1, 8) }, // ImGuiMouseCursor_TextInput - { ImVec2(31,0), ImVec2(23,23), ImVec2(11,11) }, // ImGuiMouseCursor_ResizeAll - { ImVec2(21,0), ImVec2( 9,23), ImVec2( 4,11) }, // ImGuiMouseCursor_ResizeNS - { ImVec2(55,18),ImVec2(23, 9), ImVec2(11, 4) }, // ImGuiMouseCursor_ResizeEW - { ImVec2(73,0), ImVec2(17,17), ImVec2( 8, 8) }, // ImGuiMouseCursor_ResizeNESW - { ImVec2(55,0), ImVec2(17,17), ImVec2( 8, 8) }, // ImGuiMouseCursor_ResizeNWSE - { ImVec2(91,0), ImVec2(17,22), ImVec2( 5, 0) }, // ImGuiMouseCursor_Hand -}; - -ImFontAtlas::ImFontAtlas() -{ - Locked = false; - Flags = ImFontAtlasFlags_None; - TexID = (ImTextureID)NULL; - TexDesiredWidth = 0; - TexGlyphPadding = 1; - - TexPixelsAlpha8 = NULL; - TexPixelsRGBA32 = NULL; - TexWidth = TexHeight = 0; - TexUvScale = ImVec2(0.0f, 0.0f); - TexUvWhitePixel = ImVec2(0.0f, 0.0f); - for (int n = 0; n < IM_ARRAYSIZE(CustomRectIds); n++) - CustomRectIds[n] = -1; -} - -ImFontAtlas::~ImFontAtlas() -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - Clear(); -} - -void ImFontAtlas::ClearInputData() -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - for (int i = 0; i < ConfigData.Size; i++) - if (ConfigData[i].FontData && ConfigData[i].FontDataOwnedByAtlas) - { - IM_FREE(ConfigData[i].FontData); - ConfigData[i].FontData = NULL; - } - - // When clearing this we lose access to the font name and other information used to build the font. - for (int i = 0; i < Fonts.Size; i++) - if (Fonts[i]->ConfigData >= ConfigData.Data && Fonts[i]->ConfigData < ConfigData.Data + ConfigData.Size) - { - Fonts[i]->ConfigData = NULL; - Fonts[i]->ConfigDataCount = 0; - } - ConfigData.clear(); - CustomRects.clear(); - for (int n = 0; n < IM_ARRAYSIZE(CustomRectIds); n++) - CustomRectIds[n] = -1; -} - -void ImFontAtlas::ClearTexData() -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - if (TexPixelsAlpha8) - IM_FREE(TexPixelsAlpha8); - if (TexPixelsRGBA32) - IM_FREE(TexPixelsRGBA32); - TexPixelsAlpha8 = NULL; - TexPixelsRGBA32 = NULL; -} - -void ImFontAtlas::ClearFonts() -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - for (int i = 0; i < Fonts.Size; i++) - IM_DELETE(Fonts[i]); - Fonts.clear(); -} - -void ImFontAtlas::Clear() -{ - ClearInputData(); - ClearTexData(); - ClearFonts(); -} - -void ImFontAtlas::GetTexDataAsAlpha8(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) -{ - // Build atlas on demand - if (TexPixelsAlpha8 == NULL) - { - if (ConfigData.empty()) - AddFontDefault(); - Build(); - } - - *out_pixels = TexPixelsAlpha8; - if (out_width) *out_width = TexWidth; - if (out_height) *out_height = TexHeight; - if (out_bytes_per_pixel) *out_bytes_per_pixel = 1; -} - -void ImFontAtlas::GetTexDataAsRGBA32(unsigned char** out_pixels, int* out_width, int* out_height, int* out_bytes_per_pixel) -{ - // Convert to RGBA32 format on demand - // Although it is likely to be the most commonly used format, our font rendering is 1 channel / 8 bpp - if (!TexPixelsRGBA32) - { - unsigned char* pixels = NULL; - GetTexDataAsAlpha8(&pixels, NULL, NULL); - if (pixels) - { - TexPixelsRGBA32 = (unsigned int*)IM_ALLOC((size_t)TexWidth * (size_t)TexHeight * 4); - const unsigned char* src = pixels; - unsigned int* dst = TexPixelsRGBA32; - for (int n = TexWidth * TexHeight; n > 0; n--) - *dst++ = IM_COL32(255, 255, 255, (unsigned int)(*src++)); - } - } - - *out_pixels = (unsigned char*)TexPixelsRGBA32; - if (out_width) *out_width = TexWidth; - if (out_height) *out_height = TexHeight; - if (out_bytes_per_pixel) *out_bytes_per_pixel = 4; -} - -ImFont* ImFontAtlas::AddFont(const ImFontConfig* font_cfg) -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - IM_ASSERT(font_cfg->FontData != NULL && font_cfg->FontDataSize > 0); - IM_ASSERT(font_cfg->SizePixels > 0.0f); - - // Create new font - if (!font_cfg->MergeMode) - Fonts.push_back(IM_NEW(ImFont)); - else - IM_ASSERT(!Fonts.empty() && "Cannot use MergeMode for the first font"); // When using MergeMode make sure that a font has already been added before. You can use ImGui::GetIO().Fonts->AddFontDefault() to add the default imgui font. - - ConfigData.push_back(*font_cfg); - ImFontConfig& new_font_cfg = ConfigData.back(); - if (new_font_cfg.DstFont == NULL) - new_font_cfg.DstFont = Fonts.back(); - if (!new_font_cfg.FontDataOwnedByAtlas) - { - new_font_cfg.FontData = IM_ALLOC(new_font_cfg.FontDataSize); - new_font_cfg.FontDataOwnedByAtlas = true; - memcpy(new_font_cfg.FontData, font_cfg->FontData, (size_t)new_font_cfg.FontDataSize); - } - - if (new_font_cfg.DstFont->EllipsisChar == (ImWchar)-1) - new_font_cfg.DstFont->EllipsisChar = font_cfg->EllipsisChar; - - // Invalidate texture - ClearTexData(); - return new_font_cfg.DstFont; -} - -// Default font TTF is compressed with stb_compress then base85 encoded (see misc/fonts/binary_to_compressed_c.cpp for encoder) -static unsigned int stb_decompress_length(const unsigned char *input); -static unsigned int stb_decompress(unsigned char *output, const unsigned char *input, unsigned int length); -static const char* GetDefaultCompressedFontDataTTFBase85(); -static unsigned int Decode85Byte(char c) { return c >= '\\' ? c-36 : c-35; } -static void Decode85(const unsigned char* src, unsigned char* dst) -{ - while (*src) - { - unsigned int tmp = Decode85Byte(src[0]) + 85*(Decode85Byte(src[1]) + 85*(Decode85Byte(src[2]) + 85*(Decode85Byte(src[3]) + 85*Decode85Byte(src[4])))); - dst[0] = ((tmp >> 0) & 0xFF); dst[1] = ((tmp >> 8) & 0xFF); dst[2] = ((tmp >> 16) & 0xFF); dst[3] = ((tmp >> 24) & 0xFF); // We can't assume little-endianness. - src += 5; - dst += 4; - } -} - -// Load embedded ProggyClean.ttf at size 13, disable oversampling -ImFont* ImFontAtlas::AddFontDefault(const ImFontConfig* font_cfg_template) -{ - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - if (!font_cfg_template) - { - font_cfg.OversampleH = font_cfg.OversampleV = 1; - font_cfg.PixelSnapH = true; - } - if (font_cfg.SizePixels <= 0.0f) - font_cfg.SizePixels = 13.0f * 1.0f; - if (font_cfg.Name[0] == '\0') - ImFormatString(font_cfg.Name, IM_ARRAYSIZE(font_cfg.Name), "ProggyClean.ttf, %dpx", (int)font_cfg.SizePixels); - font_cfg.EllipsisChar = (ImWchar)0x0085; - - const char* ttf_compressed_base85 = GetDefaultCompressedFontDataTTFBase85(); - const ImWchar* glyph_ranges = font_cfg.GlyphRanges != NULL ? font_cfg.GlyphRanges : GetGlyphRangesDefault(); - ImFont* font = AddFontFromMemoryCompressedBase85TTF(ttf_compressed_base85, font_cfg.SizePixels, &font_cfg, glyph_ranges); - font->DisplayOffset.y = 1.0f; - return font; -} - -ImFont* ImFontAtlas::AddFontFromFileTTF(const char* filename, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - size_t data_size = 0; - void* data = ImFileLoadToMemory(filename, "rb", &data_size, 0); - if (!data) - { - IM_ASSERT_USER_ERROR(0, "Could not load font file!"); - return NULL; - } - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - if (font_cfg.Name[0] == '\0') - { - // Store a short copy of filename into into the font name for convenience - const char* p; - for (p = filename + strlen(filename); p > filename && p[-1] != '/' && p[-1] != '\\'; p--) {} - ImFormatString(font_cfg.Name, IM_ARRAYSIZE(font_cfg.Name), "%s, %.0fpx", p, size_pixels); - } - return AddFontFromMemoryTTF(data, (int)data_size, size_pixels, &font_cfg, glyph_ranges); -} - -// NB: Transfer ownership of 'ttf_data' to ImFontAtlas, unless font_cfg_template->FontDataOwnedByAtlas == false. Owned TTF buffer will be deleted after Build(). -ImFont* ImFontAtlas::AddFontFromMemoryTTF(void* ttf_data, int ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - IM_ASSERT(font_cfg.FontData == NULL); - font_cfg.FontData = ttf_data; - font_cfg.FontDataSize = ttf_size; - font_cfg.SizePixels = size_pixels; - if (glyph_ranges) - font_cfg.GlyphRanges = glyph_ranges; - return AddFont(&font_cfg); -} - -ImFont* ImFontAtlas::AddFontFromMemoryCompressedTTF(const void* compressed_ttf_data, int compressed_ttf_size, float size_pixels, const ImFontConfig* font_cfg_template, const ImWchar* glyph_ranges) -{ - const unsigned int buf_decompressed_size = stb_decompress_length((const unsigned char*)compressed_ttf_data); - unsigned char* buf_decompressed_data = (unsigned char *)IM_ALLOC(buf_decompressed_size); - stb_decompress(buf_decompressed_data, (const unsigned char*)compressed_ttf_data, (unsigned int)compressed_ttf_size); - - ImFontConfig font_cfg = font_cfg_template ? *font_cfg_template : ImFontConfig(); - IM_ASSERT(font_cfg.FontData == NULL); - font_cfg.FontDataOwnedByAtlas = true; - return AddFontFromMemoryTTF(buf_decompressed_data, (int)buf_decompressed_size, size_pixels, &font_cfg, glyph_ranges); -} - -ImFont* ImFontAtlas::AddFontFromMemoryCompressedBase85TTF(const char* compressed_ttf_data_base85, float size_pixels, const ImFontConfig* font_cfg, const ImWchar* glyph_ranges) -{ - int compressed_ttf_size = (((int)strlen(compressed_ttf_data_base85) + 4) / 5) * 4; - void* compressed_ttf = IM_ALLOC((size_t)compressed_ttf_size); - Decode85((const unsigned char*)compressed_ttf_data_base85, (unsigned char*)compressed_ttf); - ImFont* font = AddFontFromMemoryCompressedTTF(compressed_ttf, compressed_ttf_size, size_pixels, font_cfg, glyph_ranges); - IM_FREE(compressed_ttf); - return font; -} - -int ImFontAtlas::AddCustomRectRegular(unsigned int id, int width, int height) -{ - // Breaking change on 2019/11/21 (1.74): ImFontAtlas::AddCustomRectRegular() now requires an ID >= 0x110000 (instead of >= 0x10000) - IM_ASSERT(id >= 0x110000); - IM_ASSERT(width > 0 && width <= 0xFFFF); - IM_ASSERT(height > 0 && height <= 0xFFFF); - ImFontAtlasCustomRect r; - r.ID = id; - r.Width = (unsigned short)width; - r.Height = (unsigned short)height; - CustomRects.push_back(r); - return CustomRects.Size - 1; // Return index -} - -int ImFontAtlas::AddCustomRectFontGlyph(ImFont* font, ImWchar id, int width, int height, float advance_x, const ImVec2& offset) -{ - IM_ASSERT(font != NULL); - IM_ASSERT(width > 0 && width <= 0xFFFF); - IM_ASSERT(height > 0 && height <= 0xFFFF); - ImFontAtlasCustomRect r; - r.ID = id; - r.Width = (unsigned short)width; - r.Height = (unsigned short)height; - r.GlyphAdvanceX = advance_x; - r.GlyphOffset = offset; - r.Font = font; - CustomRects.push_back(r); - return CustomRects.Size - 1; // Return index -} - -void ImFontAtlas::CalcCustomRectUV(const ImFontAtlasCustomRect* rect, ImVec2* out_uv_min, ImVec2* out_uv_max) const -{ - IM_ASSERT(TexWidth > 0 && TexHeight > 0); // Font atlas needs to be built before we can calculate UV coordinates - IM_ASSERT(rect->IsPacked()); // Make sure the rectangle has been packed - *out_uv_min = ImVec2((float)rect->X * TexUvScale.x, (float)rect->Y * TexUvScale.y); - *out_uv_max = ImVec2((float)(rect->X + rect->Width) * TexUvScale.x, (float)(rect->Y + rect->Height) * TexUvScale.y); -} - -bool ImFontAtlas::GetMouseCursorTexData(ImGuiMouseCursor cursor_type, ImVec2* out_offset, ImVec2* out_size, ImVec2 out_uv_border[2], ImVec2 out_uv_fill[2]) -{ - if (cursor_type <= ImGuiMouseCursor_None || cursor_type >= ImGuiMouseCursor_COUNT) - return false; - if (Flags & ImFontAtlasFlags_NoMouseCursors) - return false; - - IM_ASSERT(CustomRectIds[0] != -1); - ImFontAtlasCustomRect& r = CustomRects[CustomRectIds[0]]; - IM_ASSERT(r.ID == FONT_ATLAS_DEFAULT_TEX_DATA_ID); - ImVec2 pos = FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[cursor_type][0] + ImVec2((float)r.X, (float)r.Y); - ImVec2 size = FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[cursor_type][1]; - *out_size = size; - *out_offset = FONT_ATLAS_DEFAULT_TEX_CURSOR_DATA[cursor_type][2]; - out_uv_border[0] = (pos) * TexUvScale; - out_uv_border[1] = (pos + size) * TexUvScale; - pos.x += FONT_ATLAS_DEFAULT_TEX_DATA_W_HALF + 1; - out_uv_fill[0] = (pos) * TexUvScale; - out_uv_fill[1] = (pos + size) * TexUvScale; - return true; -} - -bool ImFontAtlas::Build() -{ - IM_ASSERT(!Locked && "Cannot modify a locked ImFontAtlas between NewFrame() and EndFrame/Render()!"); - return ImFontAtlasBuildWithStbTruetype(this); -} - -void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_brighten_factor) -{ - for (unsigned int i = 0; i < 256; i++) - { - unsigned int value = (unsigned int)(i * in_brighten_factor); - out_table[i] = value > 255 ? 255 : (value & 0xFF); - } -} - -void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char* pixels, int x, int y, int w, int h, int stride) -{ - unsigned char* data = pixels + x + y * stride; - for (int j = h; j > 0; j--, data += stride) - for (int i = 0; i < w; i++) - data[i] = table[data[i]]; -} - -// Temporary data for one source font (multiple source fonts can be merged into one destination ImFont) -// (C++03 doesn't allow instancing ImVector<> with function-local types so we declare the type here.) -struct ImFontBuildSrcData -{ - stbtt_fontinfo FontInfo; - stbtt_pack_range PackRange; // Hold the list of codepoints to pack (essentially points to Codepoints.Data) - stbrp_rect* Rects; // Rectangle to pack. We first fill in their size and the packer will give us their position. - stbtt_packedchar* PackedChars; // Output glyphs - const ImWchar* SrcRanges; // Ranges as requested by user (user is allowed to request too much, e.g. 0x0020..0xFFFF) - int DstIndex; // Index into atlas->Fonts[] and dst_tmp_array[] - int GlyphsHighest; // Highest requested codepoint - int GlyphsCount; // Glyph count (excluding missing glyphs and glyphs already set by an earlier source font) - ImBitVector GlyphsSet; // Glyph bit map (random access, 1-bit per codepoint. This will be a maximum of 8KB) - ImVector GlyphsList; // Glyph codepoints list (flattened version of GlyphsMap) -}; - -// Temporary data for one destination ImFont* (multiple source fonts can be merged into one destination ImFont) -struct ImFontBuildDstData -{ - int SrcCount; // Number of source fonts targeting this destination font. - int GlyphsHighest; - int GlyphsCount; - ImBitVector GlyphsSet; // This is used to resolve collision when multiple sources are merged into a same destination font. -}; - -static void UnpackBitVectorToFlatIndexList(const ImBitVector* in, ImVector* out) -{ - IM_ASSERT(sizeof(in->Storage.Data[0]) == sizeof(int)); - const ImU32* it_begin = in->Storage.begin(); - const ImU32* it_end = in->Storage.end(); - for (const ImU32* it = it_begin; it < it_end; it++) - if (ImU32 entries_32 = *it) - for (ImU32 bit_n = 0; bit_n < 32; bit_n++) - if (entries_32 & ((ImU32)1 << bit_n)) - out->push_back((int)(((it - it_begin) << 5) + bit_n)); -} - -bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas) -{ - IM_ASSERT(atlas->ConfigData.Size > 0); - - ImFontAtlasBuildInit(atlas); - - // Clear atlas - atlas->TexID = (ImTextureID)NULL; - atlas->TexWidth = atlas->TexHeight = 0; - atlas->TexUvScale = ImVec2(0.0f, 0.0f); - atlas->TexUvWhitePixel = ImVec2(0.0f, 0.0f); - atlas->ClearTexData(); - - // Temporary storage for building - ImVector src_tmp_array; - ImVector dst_tmp_array; - src_tmp_array.resize(atlas->ConfigData.Size); - dst_tmp_array.resize(atlas->Fonts.Size); - memset(src_tmp_array.Data, 0, (size_t)src_tmp_array.size_in_bytes()); - memset(dst_tmp_array.Data, 0, (size_t)dst_tmp_array.size_in_bytes()); - - // 1. Initialize font loading structure, check font data validity - for (int src_i = 0; src_i < atlas->ConfigData.Size; src_i++) - { - ImFontBuildSrcData& src_tmp = src_tmp_array[src_i]; - ImFontConfig& cfg = atlas->ConfigData[src_i]; - IM_ASSERT(cfg.DstFont && (!cfg.DstFont->IsLoaded() || cfg.DstFont->ContainerAtlas == atlas)); - - // Find index from cfg.DstFont (we allow the user to set cfg.DstFont. Also it makes casual debugging nicer than when storing indices) - src_tmp.DstIndex = -1; - for (int output_i = 0; output_i < atlas->Fonts.Size && src_tmp.DstIndex == -1; output_i++) - if (cfg.DstFont == atlas->Fonts[output_i]) - src_tmp.DstIndex = output_i; - IM_ASSERT(src_tmp.DstIndex != -1); // cfg.DstFont not pointing within atlas->Fonts[] array? - if (src_tmp.DstIndex == -1) - return false; - - // Initialize helper structure for font loading and verify that the TTF/OTF data is correct - const int font_offset = stbtt_GetFontOffsetForIndex((unsigned char*)cfg.FontData, cfg.FontNo); - IM_ASSERT(font_offset >= 0 && "FontData is incorrect, or FontNo cannot be found."); - if (!stbtt_InitFont(&src_tmp.FontInfo, (unsigned char*)cfg.FontData, font_offset)) - return false; - - // Measure highest codepoints - ImFontBuildDstData& dst_tmp = dst_tmp_array[src_tmp.DstIndex]; - src_tmp.SrcRanges = cfg.GlyphRanges ? cfg.GlyphRanges : atlas->GetGlyphRangesDefault(); - for (const ImWchar* src_range = src_tmp.SrcRanges; src_range[0] && src_range[1]; src_range += 2) - src_tmp.GlyphsHighest = ImMax(src_tmp.GlyphsHighest, (int)src_range[1]); - dst_tmp.SrcCount++; - dst_tmp.GlyphsHighest = ImMax(dst_tmp.GlyphsHighest, src_tmp.GlyphsHighest); - } - - // 2. For every requested codepoint, check for their presence in the font data, and handle redundancy or overlaps between source fonts to avoid unused glyphs. - int total_glyphs_count = 0; - for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) - { - ImFontBuildSrcData& src_tmp = src_tmp_array[src_i]; - ImFontBuildDstData& dst_tmp = dst_tmp_array[src_tmp.DstIndex]; - src_tmp.GlyphsSet.Create(src_tmp.GlyphsHighest + 1); - if (dst_tmp.GlyphsSet.Storage.empty()) - dst_tmp.GlyphsSet.Create(dst_tmp.GlyphsHighest + 1); - - for (const ImWchar* src_range = src_tmp.SrcRanges; src_range[0] && src_range[1]; src_range += 2) - for (unsigned int codepoint = src_range[0]; codepoint <= src_range[1]; codepoint++) - { - if (dst_tmp.GlyphsSet.TestBit(codepoint)) // Don't overwrite existing glyphs. We could make this an option for MergeMode (e.g. MergeOverwrite==true) - continue; - if (!stbtt_FindGlyphIndex(&src_tmp.FontInfo, codepoint)) // It is actually in the font? - continue; - - // Add to avail set/counters - src_tmp.GlyphsCount++; - dst_tmp.GlyphsCount++; - src_tmp.GlyphsSet.SetBit(codepoint); - dst_tmp.GlyphsSet.SetBit(codepoint); - total_glyphs_count++; - } - } - - // 3. Unpack our bit map into a flat list (we now have all the Unicode points that we know are requested _and_ available _and_ not overlapping another) - for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) - { - ImFontBuildSrcData& src_tmp = src_tmp_array[src_i]; - src_tmp.GlyphsList.reserve(src_tmp.GlyphsCount); - UnpackBitVectorToFlatIndexList(&src_tmp.GlyphsSet, &src_tmp.GlyphsList); - src_tmp.GlyphsSet.Clear(); - IM_ASSERT(src_tmp.GlyphsList.Size == src_tmp.GlyphsCount); - } - for (int dst_i = 0; dst_i < dst_tmp_array.Size; dst_i++) - dst_tmp_array[dst_i].GlyphsSet.Clear(); - dst_tmp_array.clear(); - - // Allocate packing character data and flag packed characters buffer as non-packed (x0=y0=x1=y1=0) - // (We technically don't need to zero-clear buf_rects, but let's do it for the sake of sanity) - ImVector buf_rects; - ImVector buf_packedchars; - buf_rects.resize(total_glyphs_count); - buf_packedchars.resize(total_glyphs_count); - memset(buf_rects.Data, 0, (size_t)buf_rects.size_in_bytes()); - memset(buf_packedchars.Data, 0, (size_t)buf_packedchars.size_in_bytes()); - - // 4. Gather glyphs sizes so we can pack them in our virtual canvas. - int total_surface = 0; - int buf_rects_out_n = 0; - int buf_packedchars_out_n = 0; - for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) - { - ImFontBuildSrcData& src_tmp = src_tmp_array[src_i]; - if (src_tmp.GlyphsCount == 0) - continue; - - src_tmp.Rects = &buf_rects[buf_rects_out_n]; - src_tmp.PackedChars = &buf_packedchars[buf_packedchars_out_n]; - buf_rects_out_n += src_tmp.GlyphsCount; - buf_packedchars_out_n += src_tmp.GlyphsCount; - - // Convert our ranges in the format stb_truetype wants - ImFontConfig& cfg = atlas->ConfigData[src_i]; - src_tmp.PackRange.font_size = cfg.SizePixels; - src_tmp.PackRange.first_unicode_codepoint_in_range = 0; - src_tmp.PackRange.array_of_unicode_codepoints = src_tmp.GlyphsList.Data; - src_tmp.PackRange.num_chars = src_tmp.GlyphsList.Size; - src_tmp.PackRange.chardata_for_range = src_tmp.PackedChars; - src_tmp.PackRange.h_oversample = (unsigned char)cfg.OversampleH; - src_tmp.PackRange.v_oversample = (unsigned char)cfg.OversampleV; - - // Gather the sizes of all rectangles we will need to pack (this loop is based on stbtt_PackFontRangesGatherRects) - const float scale = (cfg.SizePixels > 0) ? stbtt_ScaleForPixelHeight(&src_tmp.FontInfo, cfg.SizePixels) : stbtt_ScaleForMappingEmToPixels(&src_tmp.FontInfo, -cfg.SizePixels); - const int padding = atlas->TexGlyphPadding; - for (int glyph_i = 0; glyph_i < src_tmp.GlyphsList.Size; glyph_i++) - { - int x0, y0, x1, y1; - const int glyph_index_in_font = stbtt_FindGlyphIndex(&src_tmp.FontInfo, src_tmp.GlyphsList[glyph_i]); - IM_ASSERT(glyph_index_in_font != 0); - stbtt_GetGlyphBitmapBoxSubpixel(&src_tmp.FontInfo, glyph_index_in_font, scale * cfg.OversampleH, scale * cfg.OversampleV, 0, 0, &x0, &y0, &x1, &y1); - src_tmp.Rects[glyph_i].w = (stbrp_coord)(x1 - x0 + padding + cfg.OversampleH - 1); - src_tmp.Rects[glyph_i].h = (stbrp_coord)(y1 - y0 + padding + cfg.OversampleV - 1); - total_surface += src_tmp.Rects[glyph_i].w * src_tmp.Rects[glyph_i].h; - } - } - - // We need a width for the skyline algorithm, any width! - // The exact width doesn't really matter much, but some API/GPU have texture size limitations and increasing width can decrease height. - // User can override TexDesiredWidth and TexGlyphPadding if they wish, otherwise we use a simple heuristic to select the width based on expected surface. - const int surface_sqrt = (int)ImSqrt((float)total_surface) + 1; - atlas->TexHeight = 0; - if (atlas->TexDesiredWidth > 0) - atlas->TexWidth = atlas->TexDesiredWidth; - else - atlas->TexWidth = (surface_sqrt >= 4096*0.7f) ? 4096 : (surface_sqrt >= 2048*0.7f) ? 2048 : (surface_sqrt >= 1024*0.7f) ? 1024 : 512; - - // 5. Start packing - // Pack our extra data rectangles first, so it will be on the upper-left corner of our texture (UV will have small values). - const int TEX_HEIGHT_MAX = 1024 * 32; - stbtt_pack_context spc = {}; - stbtt_PackBegin(&spc, NULL, atlas->TexWidth, TEX_HEIGHT_MAX, 0, atlas->TexGlyphPadding, NULL); - ImFontAtlasBuildPackCustomRects(atlas, spc.pack_info); - - // 6. Pack each source font. No rendering yet, we are working with rectangles in an infinitely tall texture at this point. - for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) - { - ImFontBuildSrcData& src_tmp = src_tmp_array[src_i]; - if (src_tmp.GlyphsCount == 0) - continue; - - stbrp_pack_rects((stbrp_context*)spc.pack_info, src_tmp.Rects, src_tmp.GlyphsCount); - - // Extend texture height and mark missing glyphs as non-packed so we won't render them. - // FIXME: We are not handling packing failure here (would happen if we got off TEX_HEIGHT_MAX or if a single if larger than TexWidth?) - for (int glyph_i = 0; glyph_i < src_tmp.GlyphsCount; glyph_i++) - if (src_tmp.Rects[glyph_i].was_packed) - atlas->TexHeight = ImMax(atlas->TexHeight, src_tmp.Rects[glyph_i].y + src_tmp.Rects[glyph_i].h); - } - - // 7. Allocate texture - atlas->TexHeight = (atlas->Flags & ImFontAtlasFlags_NoPowerOfTwoHeight) ? (atlas->TexHeight + 1) : ImUpperPowerOfTwo(atlas->TexHeight); - atlas->TexUvScale = ImVec2(1.0f / atlas->TexWidth, 1.0f / atlas->TexHeight); - atlas->TexPixelsAlpha8 = (unsigned char*)IM_ALLOC(atlas->TexWidth * atlas->TexHeight); - memset(atlas->TexPixelsAlpha8, 0, atlas->TexWidth * atlas->TexHeight); - spc.pixels = atlas->TexPixelsAlpha8; - spc.height = atlas->TexHeight; - - // 8. Render/rasterize font characters into the texture - for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) - { - ImFontConfig& cfg = atlas->ConfigData[src_i]; - ImFontBuildSrcData& src_tmp = src_tmp_array[src_i]; - if (src_tmp.GlyphsCount == 0) - continue; - - stbtt_PackFontRangesRenderIntoRects(&spc, &src_tmp.FontInfo, &src_tmp.PackRange, 1, src_tmp.Rects); - - // Apply multiply operator - if (cfg.RasterizerMultiply != 1.0f) - { - unsigned char multiply_table[256]; - ImFontAtlasBuildMultiplyCalcLookupTable(multiply_table, cfg.RasterizerMultiply); - stbrp_rect* r = &src_tmp.Rects[0]; - for (int glyph_i = 0; glyph_i < src_tmp.GlyphsCount; glyph_i++, r++) - if (r->was_packed) - ImFontAtlasBuildMultiplyRectAlpha8(multiply_table, atlas->TexPixelsAlpha8, r->x, r->y, r->w, r->h, atlas->TexWidth * 1); - } - src_tmp.Rects = NULL; - } - - // End packing - stbtt_PackEnd(&spc); - buf_rects.clear(); - - // 9. Setup ImFont and glyphs for runtime - for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) - { - ImFontBuildSrcData& src_tmp = src_tmp_array[src_i]; - if (src_tmp.GlyphsCount == 0) - continue; - - ImFontConfig& cfg = atlas->ConfigData[src_i]; - ImFont* dst_font = cfg.DstFont; // We can have multiple input fonts writing into a same destination font (when using MergeMode=true) - - const float font_scale = stbtt_ScaleForPixelHeight(&src_tmp.FontInfo, cfg.SizePixels); - int unscaled_ascent, unscaled_descent, unscaled_line_gap; - stbtt_GetFontVMetrics(&src_tmp.FontInfo, &unscaled_ascent, &unscaled_descent, &unscaled_line_gap); - - const float ascent = ImFloor(unscaled_ascent * font_scale + ((unscaled_ascent > 0.0f) ? +1 : -1)); - const float descent = ImFloor(unscaled_descent * font_scale + ((unscaled_descent > 0.0f) ? +1 : -1)); - ImFontAtlasBuildSetupFont(atlas, dst_font, &cfg, ascent, descent); - const float font_off_x = cfg.GlyphOffset.x; - const float font_off_y = cfg.GlyphOffset.y + IM_ROUND(dst_font->Ascent); - - for (int glyph_i = 0; glyph_i < src_tmp.GlyphsCount; glyph_i++) - { - const int codepoint = src_tmp.GlyphsList[glyph_i]; - const stbtt_packedchar& pc = src_tmp.PackedChars[glyph_i]; - - const float char_advance_x_org = pc.xadvance; - const float char_advance_x_mod = ImClamp(char_advance_x_org, cfg.GlyphMinAdvanceX, cfg.GlyphMaxAdvanceX); - float char_off_x = font_off_x; - if (char_advance_x_org != char_advance_x_mod) - char_off_x += cfg.PixelSnapH ? ImFloor((char_advance_x_mod - char_advance_x_org) * 0.5f) : (char_advance_x_mod - char_advance_x_org) * 0.5f; - - // Register glyph - stbtt_aligned_quad q; - float dummy_x = 0.0f, dummy_y = 0.0f; - stbtt_GetPackedQuad(src_tmp.PackedChars, atlas->TexWidth, atlas->TexHeight, glyph_i, &dummy_x, &dummy_y, &q, 0); - dst_font->AddGlyph((ImWchar)codepoint, q.x0 + char_off_x, q.y0 + font_off_y, q.x1 + char_off_x, q.y1 + font_off_y, q.s0, q.t0, q.s1, q.t1, char_advance_x_mod); - } - } - - // Cleanup temporary (ImVector doesn't honor destructor) - for (int src_i = 0; src_i < src_tmp_array.Size; src_i++) - src_tmp_array[src_i].~ImFontBuildSrcData(); - - ImFontAtlasBuildFinish(atlas); - return true; -} - -// Register default custom rectangles (this is called/shared by both the stb_truetype and the FreeType builder) -void ImFontAtlasBuildInit(ImFontAtlas* atlas) -{ - if (atlas->CustomRectIds[0] >= 0) - return; - if (!(atlas->Flags & ImFontAtlasFlags_NoMouseCursors)) - atlas->CustomRectIds[0] = atlas->AddCustomRectRegular(FONT_ATLAS_DEFAULT_TEX_DATA_ID, FONT_ATLAS_DEFAULT_TEX_DATA_W_HALF*2+1, FONT_ATLAS_DEFAULT_TEX_DATA_H); - else - atlas->CustomRectIds[0] = atlas->AddCustomRectRegular(FONT_ATLAS_DEFAULT_TEX_DATA_ID, 2, 2); -} - -void ImFontAtlasBuildSetupFont(ImFontAtlas* atlas, ImFont* font, ImFontConfig* font_config, float ascent, float descent) -{ - if (!font_config->MergeMode) - { - font->ClearOutputData(); - font->FontSize = font_config->SizePixels; - font->ConfigData = font_config; - font->ContainerAtlas = atlas; - font->Ascent = ascent; - font->Descent = descent; - } - font->ConfigDataCount++; -} - -void ImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas, void* stbrp_context_opaque) -{ - stbrp_context* pack_context = (stbrp_context*)stbrp_context_opaque; - IM_ASSERT(pack_context != NULL); - - ImVector& user_rects = atlas->CustomRects; - IM_ASSERT(user_rects.Size >= 1); // We expect at least the default custom rects to be registered, else something went wrong. - - ImVector pack_rects; - pack_rects.resize(user_rects.Size); - memset(pack_rects.Data, 0, (size_t)pack_rects.size_in_bytes()); - for (int i = 0; i < user_rects.Size; i++) - { - pack_rects[i].w = user_rects[i].Width; - pack_rects[i].h = user_rects[i].Height; - } - stbrp_pack_rects(pack_context, &pack_rects[0], pack_rects.Size); - for (int i = 0; i < pack_rects.Size; i++) - if (pack_rects[i].was_packed) - { - user_rects[i].X = pack_rects[i].x; - user_rects[i].Y = pack_rects[i].y; - IM_ASSERT(pack_rects[i].w == user_rects[i].Width && pack_rects[i].h == user_rects[i].Height); - atlas->TexHeight = ImMax(atlas->TexHeight, pack_rects[i].y + pack_rects[i].h); - } -} - -static void ImFontAtlasBuildRenderDefaultTexData(ImFontAtlas* atlas) -{ - IM_ASSERT(atlas->CustomRectIds[0] >= 0); - IM_ASSERT(atlas->TexPixelsAlpha8 != NULL); - ImFontAtlasCustomRect& r = atlas->CustomRects[atlas->CustomRectIds[0]]; - IM_ASSERT(r.ID == FONT_ATLAS_DEFAULT_TEX_DATA_ID); - IM_ASSERT(r.IsPacked()); - - const int w = atlas->TexWidth; - if (!(atlas->Flags & ImFontAtlasFlags_NoMouseCursors)) - { - // Render/copy pixels - IM_ASSERT(r.Width == FONT_ATLAS_DEFAULT_TEX_DATA_W_HALF * 2 + 1 && r.Height == FONT_ATLAS_DEFAULT_TEX_DATA_H); - for (int y = 0, n = 0; y < FONT_ATLAS_DEFAULT_TEX_DATA_H; y++) - for (int x = 0; x < FONT_ATLAS_DEFAULT_TEX_DATA_W_HALF; x++, n++) - { - const int offset0 = (int)(r.X + x) + (int)(r.Y + y) * w; - const int offset1 = offset0 + FONT_ATLAS_DEFAULT_TEX_DATA_W_HALF + 1; - atlas->TexPixelsAlpha8[offset0] = FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS[n] == '.' ? 0xFF : 0x00; - atlas->TexPixelsAlpha8[offset1] = FONT_ATLAS_DEFAULT_TEX_DATA_PIXELS[n] == 'X' ? 0xFF : 0x00; - } - } - else - { - IM_ASSERT(r.Width == 2 && r.Height == 2); - const int offset = (int)(r.X) + (int)(r.Y) * w; - atlas->TexPixelsAlpha8[offset] = atlas->TexPixelsAlpha8[offset + 1] = atlas->TexPixelsAlpha8[offset + w] = atlas->TexPixelsAlpha8[offset + w + 1] = 0xFF; - } - atlas->TexUvWhitePixel = ImVec2((r.X + 0.5f) * atlas->TexUvScale.x, (r.Y + 0.5f) * atlas->TexUvScale.y); -} - -void ImFontAtlasBuildFinish(ImFontAtlas* atlas) -{ - // Render into our custom data block - ImFontAtlasBuildRenderDefaultTexData(atlas); - - // Register custom rectangle glyphs - for (int i = 0; i < atlas->CustomRects.Size; i++) - { - const ImFontAtlasCustomRect& r = atlas->CustomRects[i]; - if (r.Font == NULL || r.ID >= 0x110000) - continue; - - IM_ASSERT(r.Font->ContainerAtlas == atlas); - ImVec2 uv0, uv1; - atlas->CalcCustomRectUV(&r, &uv0, &uv1); - r.Font->AddGlyph((ImWchar)r.ID, r.GlyphOffset.x, r.GlyphOffset.y, r.GlyphOffset.x + r.Width, r.GlyphOffset.y + r.Height, uv0.x, uv0.y, uv1.x, uv1.y, r.GlyphAdvanceX); - } - - // Build all fonts lookup tables - for (int i = 0; i < atlas->Fonts.Size; i++) - if (atlas->Fonts[i]->DirtyLookupTables) - atlas->Fonts[i]->BuildLookupTable(); - - // Ellipsis character is required for rendering elided text. We prefer using U+2026 (horizontal ellipsis). - // However some old fonts may contain ellipsis at U+0085. Here we auto-detect most suitable ellipsis character. - // FIXME: Also note that 0x2026 is currently seldomly included in our font ranges. Because of this we are more likely to use three individual dots. - for (int i = 0; i < atlas->Fonts.size(); i++) - { - ImFont* font = atlas->Fonts[i]; - if (font->EllipsisChar != (ImWchar)-1) - continue; - const ImWchar ellipsis_variants[] = { (ImWchar)0x2026, (ImWchar)0x0085 }; - for (int j = 0; j < IM_ARRAYSIZE(ellipsis_variants); j++) - if (font->FindGlyphNoFallback(ellipsis_variants[j]) != NULL) // Verify glyph exists - { - font->EllipsisChar = ellipsis_variants[j]; - break; - } - } -} - -// Retrieve list of range (2 int per range, values are inclusive) -const ImWchar* ImFontAtlas::GetGlyphRangesDefault() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0, - }; - return &ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesKorean() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x3131, 0x3163, // Korean alphabets - 0xAC00, 0xD79D, // Korean characters - 0, - }; - return &ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesChineseFull() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x2000, 0x206F, // General Punctuation - 0x3000, 0x30FF, // CJK Symbols and Punctuations, Hiragana, Katakana - 0x31F0, 0x31FF, // Katakana Phonetic Extensions - 0xFF00, 0xFFEF, // Half-width characters - 0x4e00, 0x9FAF, // CJK Ideograms - 0, - }; - return &ranges[0]; -} - -static void UnpackAccumulativeOffsetsIntoRanges(int base_codepoint, const short* accumulative_offsets, int accumulative_offsets_count, ImWchar* out_ranges) -{ - for (int n = 0; n < accumulative_offsets_count; n++, out_ranges += 2) - { - out_ranges[0] = out_ranges[1] = (ImWchar)(base_codepoint + accumulative_offsets[n]); - base_codepoint += accumulative_offsets[n]; - } - out_ranges[0] = 0; -} - -//------------------------------------------------------------------------- -// [SECTION] ImFontAtlas glyph ranges helpers -//------------------------------------------------------------------------- - -const ImWchar* ImFontAtlas::GetGlyphRangesChineseSimplifiedCommon() -{ - // Store 2500 regularly used characters for Simplified Chinese. - // Sourced from https://zh.wiktionary.org/wiki/%E9%99%84%E5%BD%95:%E7%8E%B0%E4%BB%A3%E6%B1%89%E8%AF%AD%E5%B8%B8%E7%94%A8%E5%AD%97%E8%A1%A8 - // This table covers 97.97% of all characters used during the month in July, 1987. - // You can use ImFontGlyphRangesBuilder to create your own ranges derived from this, by merging existing ranges or adding new characters. - // (Stored as accumulative offsets from the initial unicode codepoint 0x4E00. This encoding is designed to helps us compact the source code size.) - static const short accumulative_offsets_from_0x4E00[] = - { - 0,1,2,4,1,1,1,1,2,1,3,2,1,2,2,1,1,1,1,1,5,2,1,2,3,3,3,2,2,4,1,1,1,2,1,5,2,3,1,2,1,2,1,1,2,1,1,2,2,1,4,1,1,1,1,5,10,1,2,19,2,1,2,1,2,1,2,1,2, - 1,5,1,6,3,2,1,2,2,1,1,1,4,8,5,1,1,4,1,1,3,1,2,1,5,1,2,1,1,1,10,1,1,5,2,4,6,1,4,2,2,2,12,2,1,1,6,1,1,1,4,1,1,4,6,5,1,4,2,2,4,10,7,1,1,4,2,4, - 2,1,4,3,6,10,12,5,7,2,14,2,9,1,1,6,7,10,4,7,13,1,5,4,8,4,1,1,2,28,5,6,1,1,5,2,5,20,2,2,9,8,11,2,9,17,1,8,6,8,27,4,6,9,20,11,27,6,68,2,2,1,1, - 1,2,1,2,2,7,6,11,3,3,1,1,3,1,2,1,1,1,1,1,3,1,1,8,3,4,1,5,7,2,1,4,4,8,4,2,1,2,1,1,4,5,6,3,6,2,12,3,1,3,9,2,4,3,4,1,5,3,3,1,3,7,1,5,1,1,1,1,2, - 3,4,5,2,3,2,6,1,1,2,1,7,1,7,3,4,5,15,2,2,1,5,3,22,19,2,1,1,1,1,2,5,1,1,1,6,1,1,12,8,2,9,18,22,4,1,1,5,1,16,1,2,7,10,15,1,1,6,2,4,1,2,4,1,6, - 1,1,3,2,4,1,6,4,5,1,2,1,1,2,1,10,3,1,3,2,1,9,3,2,5,7,2,19,4,3,6,1,1,1,1,1,4,3,2,1,1,1,2,5,3,1,1,1,2,2,1,1,2,1,1,2,1,3,1,1,1,3,7,1,4,1,1,2,1, - 1,2,1,2,4,4,3,8,1,1,1,2,1,3,5,1,3,1,3,4,6,2,2,14,4,6,6,11,9,1,15,3,1,28,5,2,5,5,3,1,3,4,5,4,6,14,3,2,3,5,21,2,7,20,10,1,2,19,2,4,28,28,2,3, - 2,1,14,4,1,26,28,42,12,40,3,52,79,5,14,17,3,2,2,11,3,4,6,3,1,8,2,23,4,5,8,10,4,2,7,3,5,1,1,6,3,1,2,2,2,5,28,1,1,7,7,20,5,3,29,3,17,26,1,8,4, - 27,3,6,11,23,5,3,4,6,13,24,16,6,5,10,25,35,7,3,2,3,3,14,3,6,2,6,1,4,2,3,8,2,1,1,3,3,3,4,1,1,13,2,2,4,5,2,1,14,14,1,2,2,1,4,5,2,3,1,14,3,12, - 3,17,2,16,5,1,2,1,8,9,3,19,4,2,2,4,17,25,21,20,28,75,1,10,29,103,4,1,2,1,1,4,2,4,1,2,3,24,2,2,2,1,1,2,1,3,8,1,1,1,2,1,1,3,1,1,1,6,1,5,3,1,1, - 1,3,4,1,1,5,2,1,5,6,13,9,16,1,1,1,1,3,2,3,2,4,5,2,5,2,2,3,7,13,7,2,2,1,1,1,1,2,3,3,2,1,6,4,9,2,1,14,2,14,2,1,18,3,4,14,4,11,41,15,23,15,23, - 176,1,3,4,1,1,1,1,5,3,1,2,3,7,3,1,1,2,1,2,4,4,6,2,4,1,9,7,1,10,5,8,16,29,1,1,2,2,3,1,3,5,2,4,5,4,1,1,2,2,3,3,7,1,6,10,1,17,1,44,4,6,2,1,1,6, - 5,4,2,10,1,6,9,2,8,1,24,1,2,13,7,8,8,2,1,4,1,3,1,3,3,5,2,5,10,9,4,9,12,2,1,6,1,10,1,1,7,7,4,10,8,3,1,13,4,3,1,6,1,3,5,2,1,2,17,16,5,2,16,6, - 1,4,2,1,3,3,6,8,5,11,11,1,3,3,2,4,6,10,9,5,7,4,7,4,7,1,1,4,2,1,3,6,8,7,1,6,11,5,5,3,24,9,4,2,7,13,5,1,8,82,16,61,1,1,1,4,2,2,16,10,3,8,1,1, - 6,4,2,1,3,1,1,1,4,3,8,4,2,2,1,1,1,1,1,6,3,5,1,1,4,6,9,2,1,1,1,2,1,7,2,1,6,1,5,4,4,3,1,8,1,3,3,1,3,2,2,2,2,3,1,6,1,2,1,2,1,3,7,1,8,2,1,2,1,5, - 2,5,3,5,10,1,2,1,1,3,2,5,11,3,9,3,5,1,1,5,9,1,2,1,5,7,9,9,8,1,3,3,3,6,8,2,3,2,1,1,32,6,1,2,15,9,3,7,13,1,3,10,13,2,14,1,13,10,2,1,3,10,4,15, - 2,15,15,10,1,3,9,6,9,32,25,26,47,7,3,2,3,1,6,3,4,3,2,8,5,4,1,9,4,2,2,19,10,6,2,3,8,1,2,2,4,2,1,9,4,4,4,6,4,8,9,2,3,1,1,1,1,3,5,5,1,3,8,4,6, - 2,1,4,12,1,5,3,7,13,2,5,8,1,6,1,2,5,14,6,1,5,2,4,8,15,5,1,23,6,62,2,10,1,1,8,1,2,2,10,4,2,2,9,2,1,1,3,2,3,1,5,3,3,2,1,3,8,1,1,1,11,3,1,1,4, - 3,7,1,14,1,2,3,12,5,2,5,1,6,7,5,7,14,11,1,3,1,8,9,12,2,1,11,8,4,4,2,6,10,9,13,1,1,3,1,5,1,3,2,4,4,1,18,2,3,14,11,4,29,4,2,7,1,3,13,9,2,2,5, - 3,5,20,7,16,8,5,72,34,6,4,22,12,12,28,45,36,9,7,39,9,191,1,1,1,4,11,8,4,9,2,3,22,1,1,1,1,4,17,1,7,7,1,11,31,10,2,4,8,2,3,2,1,4,2,16,4,32,2, - 3,19,13,4,9,1,5,2,14,8,1,1,3,6,19,6,5,1,16,6,2,10,8,5,1,2,3,1,5,5,1,11,6,6,1,3,3,2,6,3,8,1,1,4,10,7,5,7,7,5,8,9,2,1,3,4,1,1,3,1,3,3,2,6,16, - 1,4,6,3,1,10,6,1,3,15,2,9,2,10,25,13,9,16,6,2,2,10,11,4,3,9,1,2,6,6,5,4,30,40,1,10,7,12,14,33,6,3,6,7,3,1,3,1,11,14,4,9,5,12,11,49,18,51,31, - 140,31,2,2,1,5,1,8,1,10,1,4,4,3,24,1,10,1,3,6,6,16,3,4,5,2,1,4,2,57,10,6,22,2,22,3,7,22,6,10,11,36,18,16,33,36,2,5,5,1,1,1,4,10,1,4,13,2,7, - 5,2,9,3,4,1,7,43,3,7,3,9,14,7,9,1,11,1,1,3,7,4,18,13,1,14,1,3,6,10,73,2,2,30,6,1,11,18,19,13,22,3,46,42,37,89,7,3,16,34,2,2,3,9,1,7,1,1,1,2, - 2,4,10,7,3,10,3,9,5,28,9,2,6,13,7,3,1,3,10,2,7,2,11,3,6,21,54,85,2,1,4,2,2,1,39,3,21,2,2,5,1,1,1,4,1,1,3,4,15,1,3,2,4,4,2,3,8,2,20,1,8,7,13, - 4,1,26,6,2,9,34,4,21,52,10,4,4,1,5,12,2,11,1,7,2,30,12,44,2,30,1,1,3,6,16,9,17,39,82,2,2,24,7,1,7,3,16,9,14,44,2,1,2,1,2,3,5,2,4,1,6,7,5,3, - 2,6,1,11,5,11,2,1,18,19,8,1,3,24,29,2,1,3,5,2,2,1,13,6,5,1,46,11,3,5,1,1,5,8,2,10,6,12,6,3,7,11,2,4,16,13,2,5,1,1,2,2,5,2,28,5,2,23,10,8,4, - 4,22,39,95,38,8,14,9,5,1,13,5,4,3,13,12,11,1,9,1,27,37,2,5,4,4,63,211,95,2,2,2,1,3,5,2,1,1,2,2,1,1,1,3,2,4,1,2,1,1,5,2,2,1,1,2,3,1,3,1,1,1, - 3,1,4,2,1,3,6,1,1,3,7,15,5,3,2,5,3,9,11,4,2,22,1,6,3,8,7,1,4,28,4,16,3,3,25,4,4,27,27,1,4,1,2,2,7,1,3,5,2,28,8,2,14,1,8,6,16,25,3,3,3,14,3, - 3,1,1,2,1,4,6,3,8,4,1,1,1,2,3,6,10,6,2,3,18,3,2,5,5,4,3,1,5,2,5,4,23,7,6,12,6,4,17,11,9,5,1,1,10,5,12,1,1,11,26,33,7,3,6,1,17,7,1,5,12,1,11, - 2,4,1,8,14,17,23,1,2,1,7,8,16,11,9,6,5,2,6,4,16,2,8,14,1,11,8,9,1,1,1,9,25,4,11,19,7,2,15,2,12,8,52,7,5,19,2,16,4,36,8,1,16,8,24,26,4,6,2,9, - 5,4,36,3,28,12,25,15,37,27,17,12,59,38,5,32,127,1,2,9,17,14,4,1,2,1,1,8,11,50,4,14,2,19,16,4,17,5,4,5,26,12,45,2,23,45,104,30,12,8,3,10,2,2, - 3,3,1,4,20,7,2,9,6,15,2,20,1,3,16,4,11,15,6,134,2,5,59,1,2,2,2,1,9,17,3,26,137,10,211,59,1,2,4,1,4,1,1,1,2,6,2,3,1,1,2,3,2,3,1,3,4,4,2,3,3, - 1,4,3,1,7,2,2,3,1,2,1,3,3,3,2,2,3,2,1,3,14,6,1,3,2,9,6,15,27,9,34,145,1,1,2,1,1,1,1,2,1,1,1,1,2,2,2,3,1,2,1,1,1,2,3,5,8,3,5,2,4,1,3,2,2,2,12, - 4,1,1,1,10,4,5,1,20,4,16,1,15,9,5,12,2,9,2,5,4,2,26,19,7,1,26,4,30,12,15,42,1,6,8,172,1,1,4,2,1,1,11,2,2,4,2,1,2,1,10,8,1,2,1,4,5,1,2,5,1,8, - 4,1,3,4,2,1,6,2,1,3,4,1,2,1,1,1,1,12,5,7,2,4,3,1,1,1,3,3,6,1,2,2,3,3,3,2,1,2,12,14,11,6,6,4,12,2,8,1,7,10,1,35,7,4,13,15,4,3,23,21,28,52,5, - 26,5,6,1,7,10,2,7,53,3,2,1,1,1,2,163,532,1,10,11,1,3,3,4,8,2,8,6,2,2,23,22,4,2,2,4,2,1,3,1,3,3,5,9,8,2,1,2,8,1,10,2,12,21,20,15,105,2,3,1,1, - 3,2,3,1,1,2,5,1,4,15,11,19,1,1,1,1,5,4,5,1,1,2,5,3,5,12,1,2,5,1,11,1,1,15,9,1,4,5,3,26,8,2,1,3,1,1,15,19,2,12,1,2,5,2,7,2,19,2,20,6,26,7,5, - 2,2,7,34,21,13,70,2,128,1,1,2,1,1,2,1,1,3,2,2,2,15,1,4,1,3,4,42,10,6,1,49,85,8,1,2,1,1,4,4,2,3,6,1,5,7,4,3,211,4,1,2,1,2,5,1,2,4,2,2,6,5,6, - 10,3,4,48,100,6,2,16,296,5,27,387,2,2,3,7,16,8,5,38,15,39,21,9,10,3,7,59,13,27,21,47,5,21,6 - }; - static ImWchar base_ranges[] = // not zero-terminated - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x2000, 0x206F, // General Punctuation - 0x3000, 0x30FF, // CJK Symbols and Punctuations, Hiragana, Katakana - 0x31F0, 0x31FF, // Katakana Phonetic Extensions - 0xFF00, 0xFFEF // Half-width characters - }; - static ImWchar full_ranges[IM_ARRAYSIZE(base_ranges) + IM_ARRAYSIZE(accumulative_offsets_from_0x4E00) * 2 + 1] = { 0 }; - if (!full_ranges[0]) - { - memcpy(full_ranges, base_ranges, sizeof(base_ranges)); - UnpackAccumulativeOffsetsIntoRanges(0x4E00, accumulative_offsets_from_0x4E00, IM_ARRAYSIZE(accumulative_offsets_from_0x4E00), full_ranges + IM_ARRAYSIZE(base_ranges)); - } - return &full_ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesJapanese() -{ - // 1946 common ideograms code points for Japanese - // Sourced from http://theinstructionlimit.com/common-kanji-character-ranges-for-xna-spritefont-rendering - // FIXME: Source a list of the revised 2136 Joyo Kanji list from 2010 and rebuild this. - // You can use ImFontGlyphRangesBuilder to create your own ranges derived from this, by merging existing ranges or adding new characters. - // (Stored as accumulative offsets from the initial unicode codepoint 0x4E00. This encoding is designed to helps us compact the source code size.) - static const short accumulative_offsets_from_0x4E00[] = - { - 0,1,2,4,1,1,1,1,2,1,6,2,2,1,8,5,7,11,1,2,10,10,8,2,4,20,2,11,8,2,1,2,1,6,2,1,7,5,3,7,1,1,13,7,9,1,4,6,1,2,1,10,1,1,9,2,2,4,5,6,14,1,1,9,3,18, - 5,4,2,2,10,7,1,1,1,3,2,4,3,23,2,10,12,2,14,2,4,13,1,6,10,3,1,7,13,6,4,13,5,2,3,17,2,2,5,7,6,4,1,7,14,16,6,13,9,15,1,1,7,16,4,7,1,19,9,2,7,15, - 2,6,5,13,25,4,14,13,11,25,1,1,1,2,1,2,2,3,10,11,3,3,1,1,4,4,2,1,4,9,1,4,3,5,5,2,7,12,11,15,7,16,4,5,16,2,1,1,6,3,3,1,1,2,7,6,6,7,1,4,7,6,1,1, - 2,1,12,3,3,9,5,8,1,11,1,2,3,18,20,4,1,3,6,1,7,3,5,5,7,2,2,12,3,1,4,2,3,2,3,11,8,7,4,17,1,9,25,1,1,4,2,2,4,1,2,7,1,1,1,3,1,2,6,16,1,2,1,1,3,12, - 20,2,5,20,8,7,6,2,1,1,1,1,6,2,1,2,10,1,1,6,1,3,1,2,1,4,1,12,4,1,3,1,1,1,1,1,10,4,7,5,13,1,15,1,1,30,11,9,1,15,38,14,1,32,17,20,1,9,31,2,21,9, - 4,49,22,2,1,13,1,11,45,35,43,55,12,19,83,1,3,2,3,13,2,1,7,3,18,3,13,8,1,8,18,5,3,7,25,24,9,24,40,3,17,24,2,1,6,2,3,16,15,6,7,3,12,1,9,7,3,3, - 3,15,21,5,16,4,5,12,11,11,3,6,3,2,31,3,2,1,1,23,6,6,1,4,2,6,5,2,1,1,3,3,22,2,6,2,3,17,3,2,4,5,1,9,5,1,1,6,15,12,3,17,2,14,2,8,1,23,16,4,2,23, - 8,15,23,20,12,25,19,47,11,21,65,46,4,3,1,5,6,1,2,5,26,2,1,1,3,11,1,1,1,2,1,2,3,1,1,10,2,3,1,1,1,3,6,3,2,2,6,6,9,2,2,2,6,2,5,10,2,4,1,2,1,2,2, - 3,1,1,3,1,2,9,23,9,2,1,1,1,1,5,3,2,1,10,9,6,1,10,2,31,25,3,7,5,40,1,15,6,17,7,27,180,1,3,2,2,1,1,1,6,3,10,7,1,3,6,17,8,6,2,2,1,3,5,5,8,16,14, - 15,1,1,4,1,2,1,1,1,3,2,7,5,6,2,5,10,1,4,2,9,1,1,11,6,1,44,1,3,7,9,5,1,3,1,1,10,7,1,10,4,2,7,21,15,7,2,5,1,8,3,4,1,3,1,6,1,4,2,1,4,10,8,1,4,5, - 1,5,10,2,7,1,10,1,1,3,4,11,10,29,4,7,3,5,2,3,33,5,2,19,3,1,4,2,6,31,11,1,3,3,3,1,8,10,9,12,11,12,8,3,14,8,6,11,1,4,41,3,1,2,7,13,1,5,6,2,6,12, - 12,22,5,9,4,8,9,9,34,6,24,1,1,20,9,9,3,4,1,7,2,2,2,6,2,28,5,3,6,1,4,6,7,4,2,1,4,2,13,6,4,4,3,1,8,8,3,2,1,5,1,2,2,3,1,11,11,7,3,6,10,8,6,16,16, - 22,7,12,6,21,5,4,6,6,3,6,1,3,2,1,2,8,29,1,10,1,6,13,6,6,19,31,1,13,4,4,22,17,26,33,10,4,15,12,25,6,67,10,2,3,1,6,10,2,6,2,9,1,9,4,4,1,2,16,2, - 5,9,2,3,8,1,8,3,9,4,8,6,4,8,11,3,2,1,1,3,26,1,7,5,1,11,1,5,3,5,2,13,6,39,5,1,5,2,11,6,10,5,1,15,5,3,6,19,21,22,2,4,1,6,1,8,1,4,8,2,4,2,2,9,2, - 1,1,1,4,3,6,3,12,7,1,14,2,4,10,2,13,1,17,7,3,2,1,3,2,13,7,14,12,3,1,29,2,8,9,15,14,9,14,1,3,1,6,5,9,11,3,38,43,20,7,7,8,5,15,12,19,15,81,8,7, - 1,5,73,13,37,28,8,8,1,15,18,20,165,28,1,6,11,8,4,14,7,15,1,3,3,6,4,1,7,14,1,1,11,30,1,5,1,4,14,1,4,2,7,52,2,6,29,3,1,9,1,21,3,5,1,26,3,11,14, - 11,1,17,5,1,2,1,3,2,8,1,2,9,12,1,1,2,3,8,3,24,12,7,7,5,17,3,3,3,1,23,10,4,4,6,3,1,16,17,22,3,10,21,16,16,6,4,10,2,1,1,2,8,8,6,5,3,3,3,39,25, - 15,1,1,16,6,7,25,15,6,6,12,1,22,13,1,4,9,5,12,2,9,1,12,28,8,3,5,10,22,60,1,2,40,4,61,63,4,1,13,12,1,4,31,12,1,14,89,5,16,6,29,14,2,5,49,18,18, - 5,29,33,47,1,17,1,19,12,2,9,7,39,12,3,7,12,39,3,1,46,4,12,3,8,9,5,31,15,18,3,2,2,66,19,13,17,5,3,46,124,13,57,34,2,5,4,5,8,1,1,1,4,3,1,17,5, - 3,5,3,1,8,5,6,3,27,3,26,7,12,7,2,17,3,7,18,78,16,4,36,1,2,1,6,2,1,39,17,7,4,13,4,4,4,1,10,4,2,4,6,3,10,1,19,1,26,2,4,33,2,73,47,7,3,8,2,4,15, - 18,1,29,2,41,14,1,21,16,41,7,39,25,13,44,2,2,10,1,13,7,1,7,3,5,20,4,8,2,49,1,10,6,1,6,7,10,7,11,16,3,12,20,4,10,3,1,2,11,2,28,9,2,4,7,2,15,1, - 27,1,28,17,4,5,10,7,3,24,10,11,6,26,3,2,7,2,2,49,16,10,16,15,4,5,27,61,30,14,38,22,2,7,5,1,3,12,23,24,17,17,3,3,2,4,1,6,2,7,5,1,1,5,1,1,9,4, - 1,3,6,1,8,2,8,4,14,3,5,11,4,1,3,32,1,19,4,1,13,11,5,2,1,8,6,8,1,6,5,13,3,23,11,5,3,16,3,9,10,1,24,3,198,52,4,2,2,5,14,5,4,22,5,20,4,11,6,41, - 1,5,2,2,11,5,2,28,35,8,22,3,18,3,10,7,5,3,4,1,5,3,8,9,3,6,2,16,22,4,5,5,3,3,18,23,2,6,23,5,27,8,1,33,2,12,43,16,5,2,3,6,1,20,4,2,9,7,1,11,2, - 10,3,14,31,9,3,25,18,20,2,5,5,26,14,1,11,17,12,40,19,9,6,31,83,2,7,9,19,78,12,14,21,76,12,113,79,34,4,1,1,61,18,85,10,2,2,13,31,11,50,6,33,159, - 179,6,6,7,4,4,2,4,2,5,8,7,20,32,22,1,3,10,6,7,28,5,10,9,2,77,19,13,2,5,1,4,4,7,4,13,3,9,31,17,3,26,2,6,6,5,4,1,7,11,3,4,2,1,6,2,20,4,1,9,2,6, - 3,7,1,1,1,20,2,3,1,6,2,3,6,2,4,8,1,5,13,8,4,11,23,1,10,6,2,1,3,21,2,2,4,24,31,4,10,10,2,5,192,15,4,16,7,9,51,1,2,1,1,5,1,1,2,1,3,5,3,1,3,4,1, - 3,1,3,3,9,8,1,2,2,2,4,4,18,12,92,2,10,4,3,14,5,25,16,42,4,14,4,2,21,5,126,30,31,2,1,5,13,3,22,5,6,6,20,12,1,14,12,87,3,19,1,8,2,9,9,3,3,23,2, - 3,7,6,3,1,2,3,9,1,3,1,6,3,2,1,3,11,3,1,6,10,3,2,3,1,2,1,5,1,1,11,3,6,4,1,7,2,1,2,5,5,34,4,14,18,4,19,7,5,8,2,6,79,1,5,2,14,8,2,9,2,1,36,28,16, - 4,1,1,1,2,12,6,42,39,16,23,7,15,15,3,2,12,7,21,64,6,9,28,8,12,3,3,41,59,24,51,55,57,294,9,9,2,6,2,15,1,2,13,38,90,9,9,9,3,11,7,1,1,1,5,6,3,2, - 1,2,2,3,8,1,4,4,1,5,7,1,4,3,20,4,9,1,1,1,5,5,17,1,5,2,6,2,4,1,4,5,7,3,18,11,11,32,7,5,4,7,11,127,8,4,3,3,1,10,1,1,6,21,14,1,16,1,7,1,3,6,9,65, - 51,4,3,13,3,10,1,1,12,9,21,110,3,19,24,1,1,10,62,4,1,29,42,78,28,20,18,82,6,3,15,6,84,58,253,15,155,264,15,21,9,14,7,58,40,39, - }; - static ImWchar base_ranges[] = // not zero-terminated - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x3000, 0x30FF, // CJK Symbols and Punctuations, Hiragana, Katakana - 0x31F0, 0x31FF, // Katakana Phonetic Extensions - 0xFF00, 0xFFEF // Half-width characters - }; - static ImWchar full_ranges[IM_ARRAYSIZE(base_ranges) + IM_ARRAYSIZE(accumulative_offsets_from_0x4E00)*2 + 1] = { 0 }; - if (!full_ranges[0]) - { - memcpy(full_ranges, base_ranges, sizeof(base_ranges)); - UnpackAccumulativeOffsetsIntoRanges(0x4E00, accumulative_offsets_from_0x4E00, IM_ARRAYSIZE(accumulative_offsets_from_0x4E00), full_ranges + IM_ARRAYSIZE(base_ranges)); - } - return &full_ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesCyrillic() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin + Latin Supplement - 0x0400, 0x052F, // Cyrillic + Cyrillic Supplement - 0x2DE0, 0x2DFF, // Cyrillic Extended-A - 0xA640, 0xA69F, // Cyrillic Extended-B - 0, - }; - return &ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesThai() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin - 0x2010, 0x205E, // Punctuations - 0x0E00, 0x0E7F, // Thai - 0, - }; - return &ranges[0]; -} - -const ImWchar* ImFontAtlas::GetGlyphRangesVietnamese() -{ - static const ImWchar ranges[] = - { - 0x0020, 0x00FF, // Basic Latin - 0x0102, 0x0103, - 0x0110, 0x0111, - 0x0128, 0x0129, - 0x0168, 0x0169, - 0x01A0, 0x01A1, - 0x01AF, 0x01B0, - 0x1EA0, 0x1EF9, - 0, - }; - return &ranges[0]; -} - -//----------------------------------------------------------------------------- -// [SECTION] ImFontGlyphRangesBuilder -//----------------------------------------------------------------------------- - -void ImFontGlyphRangesBuilder::AddText(const char* text, const char* text_end) -{ - while (text_end ? (text < text_end) : *text) - { - unsigned int c = 0; - int c_len = ImTextCharFromUtf8(&c, text, text_end); - text += c_len; - if (c_len == 0) - break; - AddChar((ImWchar)c); - } -} - -void ImFontGlyphRangesBuilder::AddRanges(const ImWchar* ranges) -{ - for (; ranges[0]; ranges += 2) - for (ImWchar c = ranges[0]; c <= ranges[1]; c++) - AddChar(c); -} - -void ImFontGlyphRangesBuilder::BuildRanges(ImVector* out_ranges) -{ - const int max_codepoint = IM_UNICODE_CODEPOINT_MAX; - for (int n = 0; n <= max_codepoint; n++) - if (GetBit(n)) - { - out_ranges->push_back((ImWchar)n); - while (n < max_codepoint && GetBit(n + 1)) - n++; - out_ranges->push_back((ImWchar)n); - } - out_ranges->push_back(0); -} - -//----------------------------------------------------------------------------- -// [SECTION] ImFont -//----------------------------------------------------------------------------- - -ImFont::ImFont() -{ - FontSize = 0.0f; - FallbackAdvanceX = 0.0f; - FallbackChar = (ImWchar)'?'; - EllipsisChar = (ImWchar)-1; - DisplayOffset = ImVec2(0.0f, 0.0f); - FallbackGlyph = NULL; - ContainerAtlas = NULL; - ConfigData = NULL; - ConfigDataCount = 0; - DirtyLookupTables = false; - Scale = 1.0f; - Ascent = Descent = 0.0f; - MetricsTotalSurface = 0; - memset(Used4kPagesMap, 0, sizeof(Used4kPagesMap)); -} - -ImFont::~ImFont() -{ - ClearOutputData(); -} - -void ImFont::ClearOutputData() -{ - FontSize = 0.0f; - FallbackAdvanceX = 0.0f; - Glyphs.clear(); - IndexAdvanceX.clear(); - IndexLookup.clear(); - FallbackGlyph = NULL; - ContainerAtlas = NULL; - DirtyLookupTables = true; - Ascent = Descent = 0.0f; - MetricsTotalSurface = 0; -} - -void ImFont::BuildLookupTable() -{ - int max_codepoint = 0; - for (int i = 0; i != Glyphs.Size; i++) - max_codepoint = ImMax(max_codepoint, (int)Glyphs[i].Codepoint); - - // Build lookup table - IM_ASSERT(Glyphs.Size < 0xFFFF); // -1 is reserved - IndexAdvanceX.clear(); - IndexLookup.clear(); - DirtyLookupTables = false; - memset(Used4kPagesMap, 0, sizeof(Used4kPagesMap)); - GrowIndex(max_codepoint + 1); - for (int i = 0; i < Glyphs.Size; i++) - { - int codepoint = (int)Glyphs[i].Codepoint; - IndexAdvanceX[codepoint] = Glyphs[i].AdvanceX; - IndexLookup[codepoint] = (ImWchar)i; - - // Mark 4K page as used - const int page_n = codepoint / 4096; - Used4kPagesMap[page_n >> 3] |= 1 << (page_n & 7); - } - - // Create a glyph to handle TAB - // FIXME: Needs proper TAB handling but it needs to be contextualized (or we could arbitrary say that each string starts at "column 0" ?) - if (FindGlyph((ImWchar)' ')) - { - if (Glyphs.back().Codepoint != '\t') // So we can call this function multiple times (FIXME: Flaky) - Glyphs.resize(Glyphs.Size + 1); - ImFontGlyph& tab_glyph = Glyphs.back(); - tab_glyph = *FindGlyph((ImWchar)' '); - tab_glyph.Codepoint = '\t'; - tab_glyph.AdvanceX *= IM_TABSIZE; - IndexAdvanceX[(int)tab_glyph.Codepoint] = (float)tab_glyph.AdvanceX; - IndexLookup[(int)tab_glyph.Codepoint] = (ImWchar)(Glyphs.Size-1); - } - - // Mark special glyphs as not visible (note that AddGlyph already mark as non-visible glyphs with zero-size polygons) - SetGlyphVisible((ImWchar)' ', false); - SetGlyphVisible((ImWchar)'\t', false); - - // Setup fall-backs - FallbackGlyph = FindGlyphNoFallback(FallbackChar); - FallbackAdvanceX = FallbackGlyph ? FallbackGlyph->AdvanceX : 0.0f; - for (int i = 0; i < max_codepoint + 1; i++) - if (IndexAdvanceX[i] < 0.0f) - IndexAdvanceX[i] = FallbackAdvanceX; -} - -// API is designed this way to avoid exposing the 4K page size -// e.g. use with IsGlyphRangeUnused(0, 255) -bool ImFont::IsGlyphRangeUnused(unsigned int c_begin, unsigned int c_last) -{ - unsigned int page_begin = (c_begin / 4096); - unsigned int page_last = (c_last / 4096); - for (unsigned int page_n = page_begin; page_n <= page_last; page_n++) - if ((page_n >> 3) < sizeof(Used4kPagesMap)) - if (Used4kPagesMap[page_n >> 3] & (1 << (page_n & 7))) - return false; - return true; -} - -void ImFont::SetGlyphVisible(ImWchar c, bool visible) -{ - if (ImFontGlyph* glyph = (ImFontGlyph*)(void*)FindGlyph((ImWchar)c)) - glyph->Visible = visible ? 1 : 0; -} - -void ImFont::SetFallbackChar(ImWchar c) -{ - FallbackChar = c; - BuildLookupTable(); -} - -void ImFont::GrowIndex(int new_size) -{ - IM_ASSERT(IndexAdvanceX.Size == IndexLookup.Size); - if (new_size <= IndexLookup.Size) - return; - IndexAdvanceX.resize(new_size, -1.0f); - IndexLookup.resize(new_size, (ImWchar)-1); -} - -// x0/y0/x1/y1 are offset from the character upper-left layout position, in pixels. Therefore x0/y0 are often fairly close to zero. -// Not to be mistaken with texture coordinates, which are held by u0/v0/u1/v1 in normalized format (0.0..1.0 on each texture axis). -void ImFont::AddGlyph(ImWchar codepoint, float x0, float y0, float x1, float y1, float u0, float v0, float u1, float v1, float advance_x) -{ - Glyphs.resize(Glyphs.Size + 1); - ImFontGlyph& glyph = Glyphs.back(); - glyph.Codepoint = (unsigned int)codepoint; - glyph.Visible = (x0 != x1) && (y0 != y1); - glyph.X0 = x0; - glyph.Y0 = y0; - glyph.X1 = x1; - glyph.Y1 = y1; - glyph.U0 = u0; - glyph.V0 = v0; - glyph.U1 = u1; - glyph.V1 = v1; - glyph.AdvanceX = advance_x + ConfigData->GlyphExtraSpacing.x; // Bake spacing into AdvanceX - - if (ConfigData->PixelSnapH) - glyph.AdvanceX = IM_ROUND(glyph.AdvanceX); - - // Compute rough surface usage metrics (+1 to account for average padding, +0.99 to round) - DirtyLookupTables = true; - MetricsTotalSurface += (int)((glyph.U1 - glyph.U0) * ContainerAtlas->TexWidth + 1.99f) * (int)((glyph.V1 - glyph.V0) * ContainerAtlas->TexHeight + 1.99f); -} - -void ImFont::AddRemapChar(ImWchar dst, ImWchar src, bool overwrite_dst) -{ - IM_ASSERT(IndexLookup.Size > 0); // Currently this can only be called AFTER the font has been built, aka after calling ImFontAtlas::GetTexDataAs*() function. - unsigned int index_size = (unsigned int)IndexLookup.Size; - - if (dst < index_size && IndexLookup.Data[dst] == (ImWchar)-1 && !overwrite_dst) // 'dst' already exists - return; - if (src >= index_size && dst >= index_size) // both 'dst' and 'src' don't exist -> no-op - return; - - GrowIndex(dst + 1); - IndexLookup[dst] = (src < index_size) ? IndexLookup.Data[src] : (ImWchar)-1; - IndexAdvanceX[dst] = (src < index_size) ? IndexAdvanceX.Data[src] : 1.0f; -} - -const ImFontGlyph* ImFont::FindGlyph(ImWchar c) const -{ - if (c >= (size_t)IndexLookup.Size) - return FallbackGlyph; - const ImWchar i = IndexLookup.Data[c]; - if (i == (ImWchar)-1) - return FallbackGlyph; - return &Glyphs.Data[i]; -} - -const ImFontGlyph* ImFont::FindGlyphNoFallback(ImWchar c) const -{ - if (c >= (size_t)IndexLookup.Size) - return NULL; - const ImWchar i = IndexLookup.Data[c]; - if (i == (ImWchar)-1) - return NULL; - return &Glyphs.Data[i]; -} - -const char* ImFont::CalcWordWrapPositionA(float scale, const char* text, const char* text_end, float wrap_width) const -{ - // Simple word-wrapping for English, not full-featured. Please submit failing cases! - // FIXME: Much possible improvements (don't cut things like "word !", "word!!!" but cut within "word,,,,", more sensible support for punctuations, support for Unicode punctuations, etc.) - - // For references, possible wrap point marked with ^ - // "aaa bbb, ccc,ddd. eee fff. ggg!" - // ^ ^ ^ ^ ^__ ^ ^ - - // List of hardcoded separators: .,;!?'" - - // Skip extra blanks after a line returns (that includes not counting them in width computation) - // e.g. "Hello world" --> "Hello" "World" - - // Cut words that cannot possibly fit within one line. - // e.g.: "The tropical fish" with ~5 characters worth of width --> "The tr" "opical" "fish" - - float line_width = 0.0f; - float word_width = 0.0f; - float blank_width = 0.0f; - wrap_width /= scale; // We work with unscaled widths to avoid scaling every characters - - const char* word_end = text; - const char* prev_word_end = NULL; - bool inside_word = true; - - const char* s = text; - while (s < text_end) - { - unsigned int c = (unsigned int)*s; - const char* next_s; - if (c < 0x80) - next_s = s + 1; - else - next_s = s + ImTextCharFromUtf8(&c, s, text_end); - if (c == 0) - break; - - if (c < 32) - { - if (c == '\n') - { - line_width = word_width = blank_width = 0.0f; - inside_word = true; - s = next_s; - continue; - } - if (c == '\r') - { - s = next_s; - continue; - } - } - - const float char_width = ((int)c < IndexAdvanceX.Size ? IndexAdvanceX.Data[c] : FallbackAdvanceX); - if (ImCharIsBlankW(c)) - { - if (inside_word) - { - line_width += blank_width; - blank_width = 0.0f; - word_end = s; - } - blank_width += char_width; - inside_word = false; - } - else - { - word_width += char_width; - if (inside_word) - { - word_end = next_s; - } - else - { - prev_word_end = word_end; - line_width += word_width + blank_width; - word_width = blank_width = 0.0f; - } - - // Allow wrapping after punctuation. - inside_word = !(c == '.' || c == ',' || c == ';' || c == '!' || c == '?' || c == '\"'); - } - - // We ignore blank width at the end of the line (they can be skipped) - if (line_width + word_width > wrap_width) - { - // Words that cannot possibly fit within an entire line will be cut anywhere. - if (word_width < wrap_width) - s = prev_word_end ? prev_word_end : word_end; - break; - } - - s = next_s; - } - - return s; -} - -ImVec2 ImFont::CalcTextSizeA(float size, float max_width, float wrap_width, const char* text_begin, const char* text_end, const char** remaining) const -{ - if (!text_end) - text_end = text_begin + strlen(text_begin); // FIXME-OPT: Need to avoid this. - - const float line_height = size; - const float scale = size / FontSize; - - ImVec2 text_size = ImVec2(0,0); - float line_width = 0.0f; - - const bool word_wrap_enabled = (wrap_width > 0.0f); - const char* word_wrap_eol = NULL; - - const char* s = text_begin; - while (s < text_end) - { - if (word_wrap_enabled) - { - // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. - if (!word_wrap_eol) - { - word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - line_width); - if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. - word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below - } - - if (s >= word_wrap_eol) - { - if (text_size.x < line_width) - text_size.x = line_width; - text_size.y += line_height; - line_width = 0.0f; - word_wrap_eol = NULL; - - // Wrapping skips upcoming blanks - while (s < text_end) - { - const char c = *s; - if (ImCharIsBlankA(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } - } - continue; - } - } - - // Decode and advance source - const char* prev_s = s; - unsigned int c = (unsigned int)*s; - if (c < 0x80) - { - s += 1; - } - else - { - s += ImTextCharFromUtf8(&c, s, text_end); - if (c == 0) // Malformed UTF-8? - break; - } - - if (c < 32) - { - if (c == '\n') - { - text_size.x = ImMax(text_size.x, line_width); - text_size.y += line_height; - line_width = 0.0f; - continue; - } - if (c == '\r') - continue; - } - - const float char_width = ((int)c < IndexAdvanceX.Size ? IndexAdvanceX.Data[c] : FallbackAdvanceX) * scale; - if (line_width + char_width >= max_width) - { - s = prev_s; - break; - } - - line_width += char_width; - } - - if (text_size.x < line_width) - text_size.x = line_width; - - if (line_width > 0 || text_size.y == 0.0f) - text_size.y += line_height; - - if (remaining) - *remaining = s; - - return text_size; -} - -void ImFont::RenderChar(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, ImWchar c) const -{ - const ImFontGlyph* glyph = FindGlyph(c); - if (!glyph || !glyph->Visible) - return; - float scale = (size >= 0.0f) ? (size / FontSize) : 1.0f; - pos.x = IM_FLOOR(pos.x + DisplayOffset.x); - pos.y = IM_FLOOR(pos.y + DisplayOffset.y); - draw_list->PrimReserve(6, 4); - draw_list->PrimRectUV(ImVec2(pos.x + glyph->X0 * scale, pos.y + glyph->Y0 * scale), ImVec2(pos.x + glyph->X1 * scale, pos.y + glyph->Y1 * scale), ImVec2(glyph->U0, glyph->V0), ImVec2(glyph->U1, glyph->V1), col); -} - -void ImFont::RenderText(ImDrawList* draw_list, float size, ImVec2 pos, ImU32 col, const ImVec4& clip_rect, const char* text_begin, const char* text_end, float wrap_width, bool cpu_fine_clip) const -{ - if (!text_end) - text_end = text_begin + strlen(text_begin); // ImGui:: functions generally already provides a valid text_end, so this is merely to handle direct calls. - - // Align to be pixel perfect - pos.x = IM_FLOOR(pos.x + DisplayOffset.x); - pos.y = IM_FLOOR(pos.y + DisplayOffset.y); - float x = pos.x; - float y = pos.y; - if (y > clip_rect.w) - return; - - const float scale = size / FontSize; - const float line_height = FontSize * scale; - const bool word_wrap_enabled = (wrap_width > 0.0f); - const char* word_wrap_eol = NULL; - - // Fast-forward to first visible line - const char* s = text_begin; - if (y + line_height < clip_rect.y && !word_wrap_enabled) - while (y + line_height < clip_rect.y && s < text_end) - { - s = (const char*)memchr(s, '\n', text_end - s); - s = s ? s + 1 : text_end; - y += line_height; - } - - // For large text, scan for the last visible line in order to avoid over-reserving in the call to PrimReserve() - // Note that very large horizontal line will still be affected by the issue (e.g. a one megabyte string buffer without a newline will likely crash atm) - if (text_end - s > 10000 && !word_wrap_enabled) - { - const char* s_end = s; - float y_end = y; - while (y_end < clip_rect.w && s_end < text_end) - { - s_end = (const char*)memchr(s_end, '\n', text_end - s_end); - s_end = s_end ? s_end + 1 : text_end; - y_end += line_height; - } - text_end = s_end; - } - if (s == text_end) - return; - - // Reserve vertices for remaining worse case (over-reserving is useful and easily amortized) - const int vtx_count_max = (int)(text_end - s) * 4; - const int idx_count_max = (int)(text_end - s) * 6; - const int idx_expected_size = draw_list->IdxBuffer.Size + idx_count_max; - draw_list->PrimReserve(idx_count_max, vtx_count_max); - - ImDrawVert* vtx_write = draw_list->_VtxWritePtr; - ImDrawIdx* idx_write = draw_list->_IdxWritePtr; - unsigned int vtx_current_idx = draw_list->_VtxCurrentIdx; - - while (s < text_end) - { - if (word_wrap_enabled) - { - // Calculate how far we can render. Requires two passes on the string data but keeps the code simple and not intrusive for what's essentially an uncommon feature. - if (!word_wrap_eol) - { - word_wrap_eol = CalcWordWrapPositionA(scale, s, text_end, wrap_width - (x - pos.x)); - if (word_wrap_eol == s) // Wrap_width is too small to fit anything. Force displaying 1 character to minimize the height discontinuity. - word_wrap_eol++; // +1 may not be a character start point in UTF-8 but it's ok because we use s >= word_wrap_eol below - } - - if (s >= word_wrap_eol) - { - x = pos.x; - y += line_height; - word_wrap_eol = NULL; - - // Wrapping skips upcoming blanks - while (s < text_end) - { - const char c = *s; - if (ImCharIsBlankA(c)) { s++; } else if (c == '\n') { s++; break; } else { break; } - } - continue; - } - } - - // Decode and advance source - unsigned int c = (unsigned int)*s; - if (c < 0x80) - { - s += 1; - } - else - { - s += ImTextCharFromUtf8(&c, s, text_end); - if (c == 0) // Malformed UTF-8? - break; - } - - if (c < 32) - { - if (c == '\n') - { - x = pos.x; - y += line_height; - if (y > clip_rect.w) - break; // break out of main loop - continue; - } - if (c == '\r') - continue; - } - - const ImFontGlyph* glyph = FindGlyph((ImWchar)c); - if (glyph == NULL) - continue; - - float char_width = glyph->AdvanceX * scale; - if (glyph->Visible) - { - // We don't do a second finer clipping test on the Y axis as we've already skipped anything before clip_rect.y and exit once we pass clip_rect.w - float x1 = x + glyph->X0 * scale; - float x2 = x + glyph->X1 * scale; - float y1 = y + glyph->Y0 * scale; - float y2 = y + glyph->Y1 * scale; - if (x1 <= clip_rect.z && x2 >= clip_rect.x) - { - // Render a character - float u1 = glyph->U0; - float v1 = glyph->V0; - float u2 = glyph->U1; - float v2 = glyph->V1; - - // CPU side clipping used to fit text in their frame when the frame is too small. Only does clipping for axis aligned quads. - if (cpu_fine_clip) - { - if (x1 < clip_rect.x) - { - u1 = u1 + (1.0f - (x2 - clip_rect.x) / (x2 - x1)) * (u2 - u1); - x1 = clip_rect.x; - } - if (y1 < clip_rect.y) - { - v1 = v1 + (1.0f - (y2 - clip_rect.y) / (y2 - y1)) * (v2 - v1); - y1 = clip_rect.y; - } - if (x2 > clip_rect.z) - { - u2 = u1 + ((clip_rect.z - x1) / (x2 - x1)) * (u2 - u1); - x2 = clip_rect.z; - } - if (y2 > clip_rect.w) - { - v2 = v1 + ((clip_rect.w - y1) / (y2 - y1)) * (v2 - v1); - y2 = clip_rect.w; - } - if (y1 >= y2) - { - x += char_width; - continue; - } - } - - // We are NOT calling PrimRectUV() here because non-inlined causes too much overhead in a debug builds. Inlined here: - { - idx_write[0] = (ImDrawIdx)(vtx_current_idx); idx_write[1] = (ImDrawIdx)(vtx_current_idx+1); idx_write[2] = (ImDrawIdx)(vtx_current_idx+2); - idx_write[3] = (ImDrawIdx)(vtx_current_idx); idx_write[4] = (ImDrawIdx)(vtx_current_idx+2); idx_write[5] = (ImDrawIdx)(vtx_current_idx+3); - vtx_write[0].pos.x = x1; vtx_write[0].pos.y = y1; vtx_write[0].col = col; vtx_write[0].uv.x = u1; vtx_write[0].uv.y = v1; - vtx_write[1].pos.x = x2; vtx_write[1].pos.y = y1; vtx_write[1].col = col; vtx_write[1].uv.x = u2; vtx_write[1].uv.y = v1; - vtx_write[2].pos.x = x2; vtx_write[2].pos.y = y2; vtx_write[2].col = col; vtx_write[2].uv.x = u2; vtx_write[2].uv.y = v2; - vtx_write[3].pos.x = x1; vtx_write[3].pos.y = y2; vtx_write[3].col = col; vtx_write[3].uv.x = u1; vtx_write[3].uv.y = v2; - vtx_write += 4; - vtx_current_idx += 4; - idx_write += 6; - } - } - } - x += char_width; - } - - // Give back unused vertices (clipped ones, blanks) ~ this is essentially a PrimUnreserve() action. - draw_list->VtxBuffer.Size = (int)(vtx_write - draw_list->VtxBuffer.Data); // Same as calling shrink() - draw_list->IdxBuffer.Size = (int)(idx_write - draw_list->IdxBuffer.Data); - draw_list->CmdBuffer[draw_list->CmdBuffer.Size-1].ElemCount -= (idx_expected_size - draw_list->IdxBuffer.Size); - draw_list->_VtxWritePtr = vtx_write; - draw_list->_IdxWritePtr = idx_write; - draw_list->_VtxCurrentIdx = vtx_current_idx; -} - -//----------------------------------------------------------------------------- -// [SECTION] ImGui Internal Render Helpers -//----------------------------------------------------------------------------- -// Vaguely redesigned to stop accessing ImGui global state: -// - RenderArrow() -// - RenderBullet() -// - RenderCheckMark() -// - RenderMouseCursor() -// - RenderArrowPointingAt() -// - RenderRectFilledRangeH() -//----------------------------------------------------------------------------- -// Function in need of a redesign (legacy mess) -// - RenderColorRectWithAlphaCheckerboard() -//----------------------------------------------------------------------------- - -// Render an arrow aimed to be aligned with text (p_min is a position in the same space text would be positioned). To e.g. denote expanded/collapsed state -void ImGui::RenderArrow(ImDrawList* draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale) -{ - const float h = draw_list->_Data->FontSize * 1.00f; - float r = h * 0.40f * scale; - ImVec2 center = pos + ImVec2(h * 0.50f, h * 0.50f * scale); - - ImVec2 a, b, c; - switch (dir) - { - case ImGuiDir_Up: - case ImGuiDir_Down: - if (dir == ImGuiDir_Up) r = -r; - a = ImVec2(+0.000f, +0.750f) * r; - b = ImVec2(-0.866f, -0.750f) * r; - c = ImVec2(+0.866f, -0.750f) * r; - break; - case ImGuiDir_Left: - case ImGuiDir_Right: - if (dir == ImGuiDir_Left) r = -r; - a = ImVec2(+0.750f, +0.000f) * r; - b = ImVec2(-0.750f, +0.866f) * r; - c = ImVec2(-0.750f, -0.866f) * r; - break; - case ImGuiDir_None: - case ImGuiDir_COUNT: - IM_ASSERT(0); - break; - } - draw_list->AddTriangleFilled(center + a, center + b, center + c, col); -} - -void ImGui::RenderBullet(ImDrawList* draw_list, ImVec2 pos, ImU32 col) -{ - draw_list->AddCircleFilled(pos, draw_list->_Data->FontSize * 0.20f, col, 8); -} - -void ImGui::RenderCheckMark(ImDrawList* draw_list, ImVec2 pos, ImU32 col, float sz) -{ - float thickness = ImMax(sz / 5.0f, 1.0f); - sz -= thickness * 0.5f; - pos += ImVec2(thickness * 0.25f, thickness * 0.25f); - - float third = sz / 3.0f; - float bx = pos.x + third; - float by = pos.y + sz - third * 0.5f; - draw_list->PathLineTo(ImVec2(bx - third, by - third)); - draw_list->PathLineTo(ImVec2(bx, by)); - draw_list->PathLineTo(ImVec2(bx + third * 2.0f, by - third * 2.0f)); - draw_list->PathStroke(col, false, thickness); -} - -void ImGui::RenderMouseCursor(ImDrawList* draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow) -{ - if (mouse_cursor == ImGuiMouseCursor_None) - return; - IM_ASSERT(mouse_cursor > ImGuiMouseCursor_None && mouse_cursor < ImGuiMouseCursor_COUNT); - - ImFontAtlas* font_atlas = draw_list->_Data->Font->ContainerAtlas; - ImVec2 offset, size, uv[4]; - if (font_atlas->GetMouseCursorTexData(mouse_cursor, &offset, &size, &uv[0], &uv[2])) - { - pos -= offset; - const ImTextureID tex_id = font_atlas->TexID; - draw_list->PushTextureID(tex_id); - draw_list->AddImage(tex_id, pos + ImVec2(1,0)*scale, pos + ImVec2(1,0)*scale + size*scale, uv[2], uv[3], col_shadow); - draw_list->AddImage(tex_id, pos + ImVec2(2,0)*scale, pos + ImVec2(2,0)*scale + size*scale, uv[2], uv[3], col_shadow); - draw_list->AddImage(tex_id, pos, pos + size*scale, uv[2], uv[3], col_border); - draw_list->AddImage(tex_id, pos, pos + size*scale, uv[0], uv[1], col_fill); - draw_list->PopTextureID(); - } -} - -// Render an arrow. 'pos' is position of the arrow tip. half_sz.x is length from base to tip. half_sz.y is length on each side. -void ImGui::RenderArrowPointingAt(ImDrawList* draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col) -{ - switch (direction) - { - case ImGuiDir_Left: draw_list->AddTriangleFilled(ImVec2(pos.x + half_sz.x, pos.y - half_sz.y), ImVec2(pos.x + half_sz.x, pos.y + half_sz.y), pos, col); return; - case ImGuiDir_Right: draw_list->AddTriangleFilled(ImVec2(pos.x - half_sz.x, pos.y + half_sz.y), ImVec2(pos.x - half_sz.x, pos.y - half_sz.y), pos, col); return; - case ImGuiDir_Up: draw_list->AddTriangleFilled(ImVec2(pos.x + half_sz.x, pos.y + half_sz.y), ImVec2(pos.x - half_sz.x, pos.y + half_sz.y), pos, col); return; - case ImGuiDir_Down: draw_list->AddTriangleFilled(ImVec2(pos.x - half_sz.x, pos.y - half_sz.y), ImVec2(pos.x + half_sz.x, pos.y - half_sz.y), pos, col); return; - case ImGuiDir_None: case ImGuiDir_COUNT: break; // Fix warnings - } -} - -static inline float ImAcos01(float x) -{ - if (x <= 0.0f) return IM_PI * 0.5f; - if (x >= 1.0f) return 0.0f; - return ImAcos(x); - //return (-0.69813170079773212f * x * x - 0.87266462599716477f) * x + 1.5707963267948966f; // Cheap approximation, may be enough for what we do. -} - -// FIXME: Cleanup and move code to ImDrawList. -void ImGui::RenderRectFilledRangeH(ImDrawList* draw_list, const ImRect& rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding) -{ - if (x_end_norm == x_start_norm) - return; - if (x_start_norm > x_end_norm) - ImSwap(x_start_norm, x_end_norm); - - ImVec2 p0 = ImVec2(ImLerp(rect.Min.x, rect.Max.x, x_start_norm), rect.Min.y); - ImVec2 p1 = ImVec2(ImLerp(rect.Min.x, rect.Max.x, x_end_norm), rect.Max.y); - if (rounding == 0.0f) - { - draw_list->AddRectFilled(p0, p1, col, 0.0f); - return; - } - - rounding = ImClamp(ImMin((rect.Max.x - rect.Min.x) * 0.5f, (rect.Max.y - rect.Min.y) * 0.5f) - 1.0f, 0.0f, rounding); - const float inv_rounding = 1.0f / rounding; - const float arc0_b = ImAcos01(1.0f - (p0.x - rect.Min.x) * inv_rounding); - const float arc0_e = ImAcos01(1.0f - (p1.x - rect.Min.x) * inv_rounding); - const float half_pi = IM_PI * 0.5f; // We will == compare to this because we know this is the exact value ImAcos01 can return. - const float x0 = ImMax(p0.x, rect.Min.x + rounding); - if (arc0_b == arc0_e) - { - draw_list->PathLineTo(ImVec2(x0, p1.y)); - draw_list->PathLineTo(ImVec2(x0, p0.y)); - } - else if (arc0_b == 0.0f && arc0_e == half_pi) - { - draw_list->PathArcToFast(ImVec2(x0, p1.y - rounding), rounding, 3, 6); // BL - draw_list->PathArcToFast(ImVec2(x0, p0.y + rounding), rounding, 6, 9); // TR - } - else - { - draw_list->PathArcTo(ImVec2(x0, p1.y - rounding), rounding, IM_PI - arc0_e, IM_PI - arc0_b, 3); // BL - draw_list->PathArcTo(ImVec2(x0, p0.y + rounding), rounding, IM_PI + arc0_b, IM_PI + arc0_e, 3); // TR - } - if (p1.x > rect.Min.x + rounding) - { - const float arc1_b = ImAcos01(1.0f - (rect.Max.x - p1.x) * inv_rounding); - const float arc1_e = ImAcos01(1.0f - (rect.Max.x - p0.x) * inv_rounding); - const float x1 = ImMin(p1.x, rect.Max.x - rounding); - if (arc1_b == arc1_e) - { - draw_list->PathLineTo(ImVec2(x1, p0.y)); - draw_list->PathLineTo(ImVec2(x1, p1.y)); - } - else if (arc1_b == 0.0f && arc1_e == half_pi) - { - draw_list->PathArcToFast(ImVec2(x1, p0.y + rounding), rounding, 9, 12); // TR - draw_list->PathArcToFast(ImVec2(x1, p1.y - rounding), rounding, 0, 3); // BR - } - else - { - draw_list->PathArcTo(ImVec2(x1, p0.y + rounding), rounding, -arc1_e, -arc1_b, 3); // TR - draw_list->PathArcTo(ImVec2(x1, p1.y - rounding), rounding, +arc1_b, +arc1_e, 3); // BR - } - } - draw_list->PathFillConvex(col); -} - -// Helper for ColorPicker4() -// NB: This is rather brittle and will show artifact when rounding this enabled if rounded corners overlap multiple cells. Caller currently responsible for avoiding that. -// Spent a non reasonable amount of time trying to getting this right for ColorButton with rounding+anti-aliasing+ImGuiColorEditFlags_HalfAlphaPreview flag + various grid sizes and offsets, and eventually gave up... probably more reasonable to disable rounding alltogether. -// FIXME: uses ImGui::GetColorU32 -void ImGui::RenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list, ImVec2 p_min, ImVec2 p_max, ImU32 col, float grid_step, ImVec2 grid_off, float rounding, int rounding_corners_flags) -{ - if (((col & IM_COL32_A_MASK) >> IM_COL32_A_SHIFT) < 0xFF) - { - ImU32 col_bg1 = ImGui::GetColorU32(ImAlphaBlendColors(IM_COL32(204, 204, 204, 255), col)); - ImU32 col_bg2 = ImGui::GetColorU32(ImAlphaBlendColors(IM_COL32(128, 128, 128, 255), col)); - draw_list->AddRectFilled(p_min, p_max, col_bg1, rounding, rounding_corners_flags); - - int yi = 0; - for (float y = p_min.y + grid_off.y; y < p_max.y; y += grid_step, yi++) - { - float y1 = ImClamp(y, p_min.y, p_max.y), y2 = ImMin(y + grid_step, p_max.y); - if (y2 <= y1) - continue; - for (float x = p_min.x + grid_off.x + (yi & 1) * grid_step; x < p_max.x; x += grid_step * 2.0f) - { - float x1 = ImClamp(x, p_min.x, p_max.x), x2 = ImMin(x + grid_step, p_max.x); - if (x2 <= x1) - continue; - int rounding_corners_flags_cell = 0; - if (y1 <= p_min.y) { if (x1 <= p_min.x) rounding_corners_flags_cell |= ImDrawCornerFlags_TopLeft; if (x2 >= p_max.x) rounding_corners_flags_cell |= ImDrawCornerFlags_TopRight; } - if (y2 >= p_max.y) { if (x1 <= p_min.x) rounding_corners_flags_cell |= ImDrawCornerFlags_BotLeft; if (x2 >= p_max.x) rounding_corners_flags_cell |= ImDrawCornerFlags_BotRight; } - rounding_corners_flags_cell &= rounding_corners_flags; - draw_list->AddRectFilled(ImVec2(x1, y1), ImVec2(x2, y2), col_bg2, rounding_corners_flags_cell ? rounding : 0.0f, rounding_corners_flags_cell); - } - } - } - else - { - draw_list->AddRectFilled(p_min, p_max, col, rounding, rounding_corners_flags); - } -} - -//----------------------------------------------------------------------------- -// [SECTION] Decompression code -//----------------------------------------------------------------------------- -// Compressed with stb_compress() then converted to a C array and encoded as base85. -// Use the program in misc/fonts/binary_to_compressed_c.cpp to create the array from a TTF file. -// The purpose of encoding as base85 instead of "0x00,0x01,..." style is only save on _source code_ size. -// Decompression from stb.h (public domain) by Sean Barrett https://github.com/nothings/stb/blob/master/stb.h -//----------------------------------------------------------------------------- - -static unsigned int stb_decompress_length(const unsigned char *input) -{ - return (input[8] << 24) + (input[9] << 16) + (input[10] << 8) + input[11]; -} - -static unsigned char *stb__barrier_out_e, *stb__barrier_out_b; -static const unsigned char *stb__barrier_in_b; -static unsigned char *stb__dout; -static void stb__match(const unsigned char *data, unsigned int length) -{ - // INVERSE of memmove... write each byte before copying the next... - IM_ASSERT(stb__dout + length <= stb__barrier_out_e); - if (stb__dout + length > stb__barrier_out_e) { stb__dout += length; return; } - if (data < stb__barrier_out_b) { stb__dout = stb__barrier_out_e+1; return; } - while (length--) *stb__dout++ = *data++; -} - -static void stb__lit(const unsigned char *data, unsigned int length) -{ - IM_ASSERT(stb__dout + length <= stb__barrier_out_e); - if (stb__dout + length > stb__barrier_out_e) { stb__dout += length; return; } - if (data < stb__barrier_in_b) { stb__dout = stb__barrier_out_e+1; return; } - memcpy(stb__dout, data, length); - stb__dout += length; -} - -#define stb__in2(x) ((i[x] << 8) + i[(x)+1]) -#define stb__in3(x) ((i[x] << 16) + stb__in2((x)+1)) -#define stb__in4(x) ((i[x] << 24) + stb__in3((x)+1)) - -static const unsigned char *stb_decompress_token(const unsigned char *i) -{ - if (*i >= 0x20) { // use fewer if's for cases that expand small - if (*i >= 0x80) stb__match(stb__dout-i[1]-1, i[0] - 0x80 + 1), i += 2; - else if (*i >= 0x40) stb__match(stb__dout-(stb__in2(0) - 0x4000 + 1), i[2]+1), i += 3; - else /* *i >= 0x20 */ stb__lit(i+1, i[0] - 0x20 + 1), i += 1 + (i[0] - 0x20 + 1); - } else { // more ifs for cases that expand large, since overhead is amortized - if (*i >= 0x18) stb__match(stb__dout-(stb__in3(0) - 0x180000 + 1), i[3]+1), i += 4; - else if (*i >= 0x10) stb__match(stb__dout-(stb__in3(0) - 0x100000 + 1), stb__in2(3)+1), i += 5; - else if (*i >= 0x08) stb__lit(i+2, stb__in2(0) - 0x0800 + 1), i += 2 + (stb__in2(0) - 0x0800 + 1); - else if (*i == 0x07) stb__lit(i+3, stb__in2(1) + 1), i += 3 + (stb__in2(1) + 1); - else if (*i == 0x06) stb__match(stb__dout-(stb__in3(1)+1), i[4]+1), i += 5; - else if (*i == 0x04) stb__match(stb__dout-(stb__in3(1)+1), stb__in2(4)+1), i += 6; - } - return i; -} - -static unsigned int stb_adler32(unsigned int adler32, unsigned char *buffer, unsigned int buflen) -{ - const unsigned long ADLER_MOD = 65521; - unsigned long s1 = adler32 & 0xffff, s2 = adler32 >> 16; - unsigned long blocklen = buflen % 5552; - - unsigned long i; - while (buflen) { - for (i=0; i + 7 < blocklen; i += 8) { - s1 += buffer[0], s2 += s1; - s1 += buffer[1], s2 += s1; - s1 += buffer[2], s2 += s1; - s1 += buffer[3], s2 += s1; - s1 += buffer[4], s2 += s1; - s1 += buffer[5], s2 += s1; - s1 += buffer[6], s2 += s1; - s1 += buffer[7], s2 += s1; - - buffer += 8; - } - - for (; i < blocklen; ++i) - s1 += *buffer++, s2 += s1; - - s1 %= ADLER_MOD, s2 %= ADLER_MOD; - buflen -= blocklen; - blocklen = 5552; - } - return (unsigned int)(s2 << 16) + (unsigned int)s1; -} - -static unsigned int stb_decompress(unsigned char *output, const unsigned char *i, unsigned int /*length*/) -{ - if (stb__in4(0) != 0x57bC0000) return 0; - if (stb__in4(4) != 0) return 0; // error! stream is > 4GB - const unsigned int olen = stb_decompress_length(i); - stb__barrier_in_b = i; - stb__barrier_out_e = output + olen; - stb__barrier_out_b = output; - i += 16; - - stb__dout = output; - for (;;) { - const unsigned char *old_i = i; - i = stb_decompress_token(i); - if (i == old_i) { - if (*i == 0x05 && i[1] == 0xfa) { - IM_ASSERT(stb__dout == output + olen); - if (stb__dout != output + olen) return 0; - if (stb_adler32(1, output, olen) != (unsigned int) stb__in4(2)) - return 0; - return olen; - } else { - IM_ASSERT(0); /* NOTREACHED */ - return 0; - } - } - IM_ASSERT(stb__dout <= output + olen); - if (stb__dout > output + olen) - return 0; - } -} - -//----------------------------------------------------------------------------- -// [SECTION] Default font data (ProggyClean.ttf) -//----------------------------------------------------------------------------- -// ProggyClean.ttf -// Copyright (c) 2004, 2005 Tristan Grimmer -// MIT license (see License.txt in http://www.upperbounds.net/download/ProggyClean.ttf.zip) -// Download and more information at http://upperbounds.net -//----------------------------------------------------------------------------- -// File: 'ProggyClean.ttf' (41208 bytes) -// Exported using misc/fonts/binary_to_compressed_c.cpp (with compression + base85 string encoding). -// The purpose of encoding as base85 instead of "0x00,0x01,..." style is only save on _source code_ size. -//----------------------------------------------------------------------------- -static const char proggy_clean_ttf_compressed_data_base85[11980+1] = - "7])#######hV0qs'/###[),##/l:$#Q6>##5[n42>c-TH`->>#/e>11NNV=Bv(*:.F?uu#(gRU.o0XGH`$vhLG1hxt9?W`#,5LsCp#-i>.r$<$6pD>Lb';9Crc6tgXmKVeU2cD4Eo3R/" - "2*>]b(MC;$jPfY.;h^`IWM9Qo#t'X#(v#Y9w0#1D$CIf;W'#pWUPXOuxXuU(H9M(1=Ke$$'5F%)]0^#0X@U.a$FBjVQTSDgEKnIS7EM9>ZY9w0#L;>>#Mx&4Mvt//L[MkA#W@lK.N'[0#7RL_&#w+F%HtG9M#XL`N&.,GM4Pg;--VsM.M0rJfLH2eTM`*oJMHRC`N" - "kfimM2J,W-jXS:)r0wK#@Fge$U>`w'N7G#$#fB#$E^$#:9:hk+eOe--6x)F7*E%?76%^GMHePW-Z5l'&GiF#$956:rS?dA#fiK:)Yr+`�j@'DbG&#^$PG.Ll+DNa&VZ>1i%h1S9u5o@YaaW$e+bROPOpxTO7Stwi1::iB1q)C_=dV26J;2,]7op$]uQr@_V7$q^%lQwtuHY]=DX,n3L#0PHDO4f9>dC@O>HBuKPpP*E,N+b3L#lpR/MrTEH.IAQk.a>D[.e;mc." - "x]Ip.PH^'/aqUO/$1WxLoW0[iLAw=4h(9.`G" - "CRUxHPeR`5Mjol(dUWxZa(>STrPkrJiWx`5U7F#.g*jrohGg`cg:lSTvEY/EV_7H4Q9[Z%cnv;JQYZ5q.l7Zeas:HOIZOB?Ggv:[7MI2k).'2($5FNP&EQ(,)" - "U]W]+fh18.vsai00);D3@4ku5P?DP8aJt+;qUM]=+b'8@;mViBKx0DE[-auGl8:PJ&Dj+M6OC]O^((##]`0i)drT;-7X`=-H3[igUnPG-NZlo.#k@h#=Ork$m>a>$-?Tm$UV(?#P6YY#" - "'/###xe7q.73rI3*pP/$1>s9)W,JrM7SN]'/4C#v$U`0#V.[0>xQsH$fEmPMgY2u7Kh(G%siIfLSoS+MK2eTM$=5,M8p`A.;_R%#u[K#$x4AG8.kK/HSB==-'Ie/QTtG?-.*^N-4B/ZM" - "_3YlQC7(p7q)&](`6_c)$/*JL(L-^(]$wIM`dPtOdGA,U3:w2M-0+WomX2u7lqM2iEumMTcsF?-aT=Z-97UEnXglEn1K-bnEO`gu" - "Ft(c%=;Am_Qs@jLooI&NX;]0#j4#F14;gl8-GQpgwhrq8'=l_f-b49'UOqkLu7-##oDY2L(te+Mch&gLYtJ,MEtJfLh'x'M=$CS-ZZ%P]8bZ>#S?YY#%Q&q'3^Fw&?D)UDNrocM3A76/" - "/oL?#h7gl85[qW/NDOk%16ij;+:1a'iNIdb-ou8.P*w,v5#EI$TWS>Pot-R*H'-SEpA:g)f+O$%%`kA#G=8RMmG1&O`>to8bC]T&$,n.LoO>29sp3dt-52U%VM#q7'DHpg+#Z9%H[Ket`e;)f#Km8&+DC$I46>#Kr]]u-[=99tts1.qb#q72g1WJO81q+eN'03'eM>&1XxY-caEnO" - "j%2n8)),?ILR5^.Ibn<-X-Mq7[a82Lq:F&#ce+S9wsCK*x`569E8ew'He]h:sI[2LM$[guka3ZRd6:t%IG:;$%YiJ:Nq=?eAw;/:nnDq0(CYcMpG)qLN4$##&J-XTt,%OVU4)S1+R-#dg0/Nn?Ku1^0f$B*P:Rowwm-`0PKjYDDM'3]d39VZHEl4,.j']Pk-M.h^&:0FACm$maq-&sgw0t7/6(^xtk%" - "LuH88Fj-ekm>GA#_>568x6(OFRl-IZp`&b,_P'$MhLbxfc$mj`,O;&%W2m`Zh:/)Uetw:aJ%]K9h:TcF]u_-Sj9,VK3M.*'&0D[Ca]J9gp8,kAW]" - "%(?A%R$f<->Zts'^kn=-^@c4%-pY6qI%J%1IGxfLU9CP8cbPlXv);C=b),<2mOvP8up,UVf3839acAWAW-W?#ao/^#%KYo8fRULNd2.>%m]UK:n%r$'sw]J;5pAoO_#2mO3n,'=H5(et" - "Hg*`+RLgv>=4U8guD$I%D:W>-r5V*%j*W:Kvej.Lp$'?;++O'>()jLR-^u68PHm8ZFWe+ej8h:9r6L*0//c&iH&R8pRbA#Kjm%upV1g:" - "a_#Ur7FuA#(tRh#.Y5K+@?3<-8m0$PEn;J:rh6?I6uG<-`wMU'ircp0LaE_OtlMb&1#6T.#FDKu#1Lw%u%+GM+X'e?YLfjM[VO0MbuFp7;>Q&#WIo)0@F%q7c#4XAXN-U&VBpqB>0ie&jhZ[?iLR@@_AvA-iQC(=ksRZRVp7`.=+NpBC%rh&3]R:8XDmE5^V8O(x<-+k?'(^](H.aREZSi,#1:[IXaZFOm<-ui#qUq2$##Ri;u75OK#(RtaW-K-F`S+cF]uN`-KMQ%rP/Xri.LRcB##=YL3BgM/3M" - "D?@f&1'BW-)Ju#bmmWCMkk&#TR`C,5d>g)F;t,4:@_l8G/5h4vUd%&%950:VXD'QdWoY-F$BtUwmfe$YqL'8(PWX(" - "P?^@Po3$##`MSs?DWBZ/S>+4%>fX,VWv/w'KD`LP5IbH;rTV>n3cEK8U#bX]l-/V+^lj3;vlMb&[5YQ8#pekX9JP3XUC72L,,?+Ni&co7ApnO*5NK,((W-i:$,kp'UDAO(G0Sq7MVjJs" - "bIu)'Z,*[>br5fX^:FPAWr-m2KgLQ_nN6'8uTGT5g)uLv:873UpTLgH+#FgpH'_o1780Ph8KmxQJ8#H72L4@768@Tm&Q" - "h4CB/5OvmA&,Q&QbUoi$a_%3M01H)4x7I^&KQVgtFnV+;[Pc>[m4k//,]1?#`VY[Jr*3&&slRfLiVZJ:]?=K3Sw=[$=uRB?3xk48@aege0jT6'N#(q%.O=?2S]u*(m<-" - "V8J'(1)G][68hW$5'q[GC&5j`TE?m'esFGNRM)j,ffZ?-qx8;->g4t*:CIP/[Qap7/9'#(1sao7w-.qNUdkJ)tCF&#B^;xGvn2r9FEPFFFcL@.iFNkTve$m%#QvQS8U@)2Z+3K:AKM5i" - "sZ88+dKQ)W6>J%CL`.d*(B`-n8D9oK-XV1q['-5k'cAZ69e;D_?$ZPP&s^+7])$*$#@QYi9,5P r+$%CE=68>K8r0=dSC%%(@p7" - ".m7jilQ02'0-VWAgTlGW'b)Tq7VT9q^*^$$.:&N@@" - "$&)WHtPm*5_rO0&e%K&#-30j(E4#'Zb.o/(Tpm$>K'f@[PvFl,hfINTNU6u'0pao7%XUp9]5.>%h`8_=VYbxuel.NTSsJfLacFu3B'lQSu/m6-Oqem8T+oE--$0a/k]uj9EwsG>%veR*" - "hv^BFpQj:K'#SJ,sB-'#](j.Lg92rTw-*n%@/;39rrJF,l#qV%OrtBeC6/,;qB3ebNW[?,Hqj2L.1NP&GjUR=1D8QaS3Up&@*9wP?+lo7b?@%'k4`p0Z$22%K3+iCZj?XJN4Nm&+YF]u" - "@-W$U%VEQ/,,>>#)D#%8cY#YZ?=,`Wdxu/ae&#" - "w6)R89tI#6@s'(6Bf7a&?S=^ZI_kS&ai`&=tE72L_D,;^R)7[$so8lKN%5/$(vdfq7+ebA#" - "u1p]ovUKW&Y%q]'>$1@-[xfn$7ZTp7mM,G,Ko7a&Gu%G[RMxJs[0MM%wci.LFDK)(%:_i2B5CsR8&9Z&#=mPEnm0f`<&c)QL5uJ#%u%lJj+D-r;BoFDoS97h5g)E#o:&S4weDF,9^Hoe`h*L+_a*NrLW-1pG_&2UdB8" - "6e%B/:=>)N4xeW.*wft-;$'58-ESqr#U`'6AQ]m&6/`Z>#S?YY#Vc;r7U2&326d=w&H####?TZ`*4?&.MK?LP8Vxg>$[QXc%QJv92.(Db*B)gb*BM9dM*hJMAo*c&#" - "b0v=Pjer]$gG&JXDf->'StvU7505l9$AFvgYRI^&<^b68?j#q9QX4SM'RO#&sL1IM.rJfLUAj221]d##DW=m83u5;'bYx,*Sl0hL(W;;$doB&O/TQ:(Z^xBdLjLV#*8U_72Lh+2Q8Cj0i:6hp&$C/:p(HK>T8Y[gHQ4`4)'$Ab(Nof%V'8hL&#SfD07&6D@M.*J:;$-rv29'M]8qMv-tLp,'886iaC=Hb*YJoKJ,(j%K=H`K.v9HggqBIiZu'QvBT.#=)0ukruV&.)3=(^1`o*Pj4<-#MJ+gLq9-##@HuZPN0]u:h7.T..G:;$/Usj(T7`Q8tT72LnYl<-qx8;-HV7Q-&Xdx%1a,hC=0u+HlsV>nuIQL-5" - "_>@kXQtMacfD.m-VAb8;IReM3$wf0''hra*so568'Ip&vRs849'MRYSp%:t:h5qSgwpEr$B>Q,;s(C#$)`svQuF$##-D,##,g68@2[T;.XSdN9Qe)rpt._K-#5wF)sP'##p#C0c%-Gb%" - "hd+<-j'Ai*x&&HMkT]C'OSl##5RG[JXaHN;d'uA#x._U;.`PU@(Z3dt4r152@:v,'R.Sj'w#0<-;kPI)FfJ&#AYJ&#//)>-k=m=*XnK$>=)72L]0I%>.G690a:$##<,);?;72#?x9+d;" - "^V'9;jY@;)br#q^YQpx:X#Te$Z^'=-=bGhLf:D6&bNwZ9-ZD#n^9HhLMr5G;']d&6'wYmTFmLq9wI>P(9mI[>kC-ekLC/R&CH+s'B;K-M6$EB%is00:" - "+A4[7xks.LrNk0&E)wILYF@2L'0Nb$+pv<(2.768/FrY&h$^3i&@+G%JT'<-,v`3;_)I9M^AE]CN?Cl2AZg+%4iTpT3$U4O]GKx'm9)b@p7YsvK3w^YR-" - "CdQ*:Ir<($u&)#(&?L9Rg3H)4fiEp^iI9O8KnTj,]H?D*r7'M;PwZ9K0E^k&-cpI;.p/6_vwoFMV<->#%Xi.LxVnrU(4&8/P+:hLSKj$#U%]49t'I:rgMi'FL@a:0Y-uA[39',(vbma*" - "hU%<-SRF`Tt:542R_VV$p@[p8DV[A,?1839FWdFTi1O*H&#(AL8[_P%.M>v^-))qOT*F5Cq0`Ye%+$B6i:7@0IXSsDiWP,##P`%/L-" - "S(qw%sf/@%#B6;/U7K]uZbi^Oc^2n%t<)'mEVE''n`WnJra$^TKvX5B>;_aSEK',(hwa0:i4G?.Bci.(X[?b*($,=-n<.Q%`(X=?+@Am*Js0&=3bh8K]mL69=Lb,OcZV/);TTm8VI;?%OtJ<(b4mq7M6:u?KRdFl*:xP?Yb.5)%w_I?7uk5JC+FS(m#i'k.'a0i)9<7b'fs'59hq$*5Uhv##pi^8+hIEBF`nvo`;'l0.^S1<-wUK2/Coh58KKhLj" - "M=SO*rfO`+qC`W-On.=AJ56>>i2@2LH6A:&5q`?9I3@@'04&p2/LVa*T-4<-i3;M9UvZd+N7>b*eIwg:CC)c<>nO&#$(>.Z-I&J(Q0Hd5Q%7Co-b`-cP)hI;*_F]u`Rb[.j8_Q/<&>uu+VsH$sM9TA%?)(vmJ80),P7E>)tjD%2L=-t#fK[%`v=Q8WlA2);Sa" - ">gXm8YB`1d@K#n]76-a$U,mF%Ul:#/'xoFM9QX-$.QN'>" - "[%$Z$uF6pA6Ki2O5:8w*vP1<-1`[G,)-m#>0`P&#eb#.3i)rtB61(o'$?X3B2Qft^ae_5tKL9MUe9b*sLEQ95C&`=G?@Mj=wh*'3E>=-<)Gt*Iw)'QG:`@I" - "wOf7&]1i'S01B+Ev/Nac#9S;=;YQpg_6U`*kVY39xK,[/6Aj7:'1Bm-_1EYfa1+o&o4hp7KN_Q(OlIo@S%;jVdn0'1h19w,WQhLI)3S#f$2(eb,jr*b;3Vw]*7NH%$c4Vs,eD9>XW8?N]o+(*pgC%/72LV-uW%iewS8W6m2rtCpo'RS1R84=@paTKt)>=%&1[)*vp'u+x,VrwN;&]kuO9JDbg=pO$J*.jVe;u'm0dr9l,<*wMK*Oe=g8lV_KEBFkO'oU]^=[-792#ok,)" - "i]lR8qQ2oA8wcRCZ^7w/Njh;?.stX?Q1>S1q4Bn$)K1<-rGdO'$Wr.Lc.CG)$/*JL4tNR/,SVO3,aUw'DJN:)Ss;wGn9A32ijw%FL+Z0Fn.U9;reSq)bmI32U==5ALuG&#Vf1398/pVo" - "1*c-(aY168o<`JsSbk-,1N;$>0:OUas(3:8Z972LSfF8eb=c-;>SPw7.6hn3m`9^Xkn(r.qS[0;T%&Qc=+STRxX'q1BNk3&*eu2;&8q$&x>Q#Q7^Tf+6<(d%ZVmj2bDi%.3L2n+4W'$P" - "iDDG)g,r%+?,$@?uou5tSe2aN_AQU*'IAO" - "URQ##V^Fv-XFbGM7Fl(N<3DhLGF%q.1rC$#:T__&Pi68%0xi_&[qFJ(77j_&JWoF.V735&T,[R*:xFR*K5>>#`bW-?4Ne_&6Ne_&6Ne_&n`kr-#GJcM6X;uM6X;uM(.a..^2TkL%oR(#" - ";u.T%fAr%4tJ8&><1=GHZ_+m9/#H1F^R#SC#*N=BA9(D?v[UiFY>>^8p,KKF.W]L29uLkLlu/+4T" - "w$)F./^n3+rlo+DB;5sIYGNk+i1t-69Jg--0pao7Sm#K)pdHW&;LuDNH@H>#/X-TI(;P>#,Gc>#0Su>#4`1?#8lC?#xL$#B.`$#F:r$#JF.%#NR@%#R_R%#Vke%#Zww%#_-4^Rh%Sflr-k'MS.o?.5/sWel/wpEM0%3'/1)K^f1-d>G21&v(35>V`39V7A4=onx4" - "A1OY5EI0;6Ibgr6M$HS7Q<)58C5w,;WoA*#[%T*#`1g*#d=#+#hI5+#lUG+#pbY+#tnl+#x$),#&1;,#*=M,#.I`,#2Ur,#6b.-#;w[H#iQtA#m^0B#qjBB#uvTB##-hB#'9$C#+E6C#" - "/QHC#3^ZC#7jmC#;v)D#?,)4kMYD4lVu`4m`:&5niUA5@(A5BA1]PBB:xlBCC=2CDLXMCEUtiCf&0g2'tN?PGT4CPGT4CPGT4CPGT4CPGT4CPGT4CPGT4CP" - "GT4CPGT4CPGT4CPGT4CPGT4CPGT4CP-qekC`.9kEg^+F$kwViFJTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5KTB&5o,^<-28ZI'O?;xp" - "O?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xpO?;xp;7q-#lLYI:xvD=#"; - -static const char* GetDefaultCompressedFontDataTTFBase85() -{ - return proggy_clean_ttf_compressed_data_base85; -} - -#endif // #ifndef IMGUI_DISABLE diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_internal.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_internal.h deleted file mode 100644 index cef0f9a9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_internal.h +++ /dev/null @@ -1,1955 +0,0 @@ -// dear imgui, v1.76 -// (internal structures/api) - -// You may use this file to debug, understand or extend ImGui features but we don't provide any guarantee of forward compatibility! -// Set: -// #define IMGUI_DEFINE_MATH_OPERATORS -// To implement maths operators for ImVec2 (disabled by default to not collide with using IM_VEC2_CLASS_EXTRA along with your own math types+operators) - -/* - -Index of this file: -// Header mess -// Forward declarations -// STB libraries includes -// Context pointer -// Generic helpers -// Misc data structures -// Main imgui context -// Tab bar, tab item -// Internal API - -*/ - -#pragma once -#ifndef IMGUI_DISABLE - -//----------------------------------------------------------------------------- -// Header mess -//----------------------------------------------------------------------------- - -#ifndef IMGUI_VERSION -#error Must include imgui.h before imgui_internal.h -#endif - -#include // FILE*, sscanf -#include // NULL, malloc, free, qsort, atoi, atof -#include // sqrtf, fabsf, fmodf, powf, floorf, ceilf, cosf, sinf -#include // INT_MIN, INT_MAX - -// Visual Studio warnings -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable: 4251) // class 'xxx' needs to have dll-interface to be used by clients of struct 'xxx' // when IMGUI_API is set to__declspec(dllexport) -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wunused-function" // for stb_textedit.h -#pragma clang diagnostic ignored "-Wmissing-prototypes" // for stb_textedit.h -#pragma clang diagnostic ignored "-Wold-style-cast" -#if __has_warning("-Wzero-as-null-pointer-constant") -#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" -#endif -#if __has_warning("-Wdouble-promotion") -#pragma clang diagnostic ignored "-Wdouble-promotion" -#endif -#elif defined(__GNUC__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead -#endif - -// Legacy defines -#ifdef IMGUI_DISABLE_FORMAT_STRING_FUNCTIONS // Renamed in 1.74 -#error Use IMGUI_DISABLE_DEFAULT_FORMAT_FUNCTIONS -#endif -#ifdef IMGUI_DISABLE_MATH_FUNCTIONS // Renamed in 1.74 -#error Use IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS -#endif - -//----------------------------------------------------------------------------- -// Forward declarations -//----------------------------------------------------------------------------- - -struct ImBitVector; // Store 1-bit per value -struct ImRect; // An axis-aligned rectangle (2 points) -struct ImDrawDataBuilder; // Helper to build a ImDrawData instance -struct ImDrawListSharedData; // Data shared between all ImDrawList instances -struct ImGuiColorMod; // Stacked color modifier, backup of modified data so we can restore it -struct ImGuiColumnData; // Storage data for a single column -struct ImGuiColumns; // Storage data for a columns set -struct ImGuiContext; // Main Dear ImGui context -struct ImGuiDataTypeInfo; // Type information associated to a ImGuiDataType enum -struct ImGuiGroupData; // Stacked storage data for BeginGroup()/EndGroup() -struct ImGuiInputTextState; // Internal state of the currently focused/edited text input box -struct ImGuiItemHoveredDataBackup; // Backup and restore IsItemHovered() internal data -struct ImGuiMenuColumns; // Simple column measurement, currently used for MenuItem() only -struct ImGuiNavMoveResult; // Result of a gamepad/keyboard directional navigation move query result -struct ImGuiNextWindowData; // Storage for SetNextWindow** functions -struct ImGuiNextItemData; // Storage for SetNextItem** functions -struct ImGuiPopupData; // Storage for current popup stack -struct ImGuiSettingsHandler; // Storage for one type registered in the .ini file -struct ImGuiStyleMod; // Stacked style modifier, backup of modified data so we can restore it -struct ImGuiTabBar; // Storage for a tab bar -struct ImGuiTabItem; // Storage for a tab item (within a tab bar) -struct ImGuiWindow; // Storage for one window -struct ImGuiWindowTempData; // Temporary storage for one window (that's the data which in theory we could ditch at the end of the frame) -struct ImGuiWindowSettings; // Storage for a window .ini settings (we keep one of those even if the actual window wasn't instanced during this session) - -// Use your programming IDE "Go to definition" facility on the names of the center columns to find the actual flags/enum lists. -typedef int ImGuiLayoutType; // -> enum ImGuiLayoutType_ // Enum: Horizontal or vertical -typedef int ImGuiButtonFlags; // -> enum ImGuiButtonFlags_ // Flags: for ButtonEx(), ButtonBehavior() -typedef int ImGuiColumnsFlags; // -> enum ImGuiColumnsFlags_ // Flags: BeginColumns() -typedef int ImGuiDragFlags; // -> enum ImGuiDragFlags_ // Flags: for DragBehavior() -typedef int ImGuiItemFlags; // -> enum ImGuiItemFlags_ // Flags: for PushItemFlag() -typedef int ImGuiItemStatusFlags; // -> enum ImGuiItemStatusFlags_ // Flags: for DC.LastItemStatusFlags -typedef int ImGuiNavHighlightFlags; // -> enum ImGuiNavHighlightFlags_ // Flags: for RenderNavHighlight() -typedef int ImGuiNavDirSourceFlags; // -> enum ImGuiNavDirSourceFlags_ // Flags: for GetNavInputAmount2d() -typedef int ImGuiNavMoveFlags; // -> enum ImGuiNavMoveFlags_ // Flags: for navigation requests -typedef int ImGuiNextItemDataFlags; // -> enum ImGuiNextItemDataFlags_ // Flags: for SetNextItemXXX() functions -typedef int ImGuiNextWindowDataFlags; // -> enum ImGuiNextWindowDataFlags_// Flags: for SetNextWindowXXX() functions -typedef int ImGuiSeparatorFlags; // -> enum ImGuiSeparatorFlags_ // Flags: for SeparatorEx() -typedef int ImGuiSliderFlags; // -> enum ImGuiSliderFlags_ // Flags: for SliderBehavior() -typedef int ImGuiTextFlags; // -> enum ImGuiTextFlags_ // Flags: for TextEx() -typedef int ImGuiTooltipFlags; // -> enum ImGuiTooltipFlags_ // Flags: for BeginTooltipEx() - -//------------------------------------------------------------------------- -// STB libraries includes -//------------------------------------------------------------------------- - -namespace ImStb -{ - -#undef STB_TEXTEDIT_STRING -#undef STB_TEXTEDIT_CHARTYPE -#define STB_TEXTEDIT_STRING ImGuiInputTextState -#define STB_TEXTEDIT_CHARTYPE ImWchar -#define STB_TEXTEDIT_GETWIDTH_NEWLINE -1.0f -#define STB_TEXTEDIT_UNDOSTATECOUNT 99 -#define STB_TEXTEDIT_UNDOCHARCOUNT 999 -#include "imstb_textedit.h" - -} // namespace ImStb - -//----------------------------------------------------------------------------- -// Context pointer -//----------------------------------------------------------------------------- - -#ifndef GImGui -extern IMGUI_API ImGuiContext* GImGui; // Current implicit context pointer -#endif - -//----------------------------------------------------------------------------- -// Macros -//----------------------------------------------------------------------------- - -// Debug Logging -#ifndef IMGUI_DEBUG_LOG -#define IMGUI_DEBUG_LOG(_FMT,...) printf("[%05d] " _FMT, GImGui->FrameCount, __VA_ARGS__) -#endif - -// Static Asserts -#if (__cplusplus >= 201100) -#define IM_STATIC_ASSERT(_COND) static_assert(_COND, "") -#else -#define IM_STATIC_ASSERT(_COND) typedef char static_assertion_##__line__[(_COND)?1:-1] -#endif - -// "Paranoid" Debug Asserts are meant to only be enabled during specific debugging/work, otherwise would slow down the code too much. -// We currently don't have many of those so the effect is currently negligible, but onward intent to add more aggressive ones in the code. -//#define IMGUI_DEBUG_PARANOID -#ifdef IMGUI_DEBUG_PARANOID -#define IM_ASSERT_PARANOID(_EXPR) IM_ASSERT(_EXPR) -#else -#define IM_ASSERT_PARANOID(_EXPR) -#endif - -// Error handling -// Down the line in some frameworks/languages we would like to have a way to redirect those to the programmer and recover from more faults. -#ifndef IM_ASSERT_USER_ERROR -#define IM_ASSERT_USER_ERROR(_EXP,_MSG) IM_ASSERT((_EXP) && _MSG) // Recoverable User Error -#endif - -// Misc Macros -#define IM_PI 3.14159265358979323846f -#ifdef _WIN32 -#define IM_NEWLINE "\r\n" // Play it nice with Windows users (Update: since 2018-05, Notepad finally appears to support Unix-style carriage returns!) -#else -#define IM_NEWLINE "\n" -#endif -#define IM_TABSIZE (4) -#define IM_F32_TO_INT8_UNBOUND(_VAL) ((int)((_VAL) * 255.0f + ((_VAL)>=0 ? 0.5f : -0.5f))) // Unsaturated, for display purpose -#define IM_F32_TO_INT8_SAT(_VAL) ((int)(ImSaturate(_VAL) * 255.0f + 0.5f)) // Saturated, always output 0..255 -#define IM_FLOOR(_VAL) ((float)(int)(_VAL)) // ImFloor() is not inlined in MSVC debug builds -#define IM_ROUND(_VAL) ((float)(int)((_VAL) + 0.5f)) // - -// Enforce cdecl calling convention for functions called by the standard library, in case compilation settings changed the default to e.g. __vectorcall -#ifdef _MSC_VER -#define IMGUI_CDECL __cdecl -#else -#define IMGUI_CDECL -#endif - -//----------------------------------------------------------------------------- -// Generic helpers -// Note that the ImXXX helpers functions are lower-level than ImGui functions. -// ImGui functions or the ImGui context are never called/used from other ImXXX functions. -//----------------------------------------------------------------------------- -// - Helpers: Misc -// - Helpers: Bit manipulation -// - Helpers: String, Formatting -// - Helpers: UTF-8 <> wchar conversions -// - Helpers: ImVec2/ImVec4 operators -// - Helpers: Maths -// - Helpers: Geometry -// - Helpers: Bit arrays -// - Helper: ImBitVector -// - Helper: ImPool<> -// - Helper: ImChunkStream<> -//----------------------------------------------------------------------------- - -// Helpers: Misc -#define ImQsort qsort -IMGUI_API ImU32 ImHashData(const void* data, size_t data_size, ImU32 seed = 0); -IMGUI_API ImU32 ImHashStr(const char* data, size_t data_size = 0, ImU32 seed = 0); -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS -static inline ImU32 ImHash(const void* data, int size, ImU32 seed = 0) { return size ? ImHashData(data, (size_t)size, seed) : ImHashStr((const char*)data, 0, seed); } // [moved to ImHashStr/ImHashData in 1.68] -#endif - -// Helpers: Color Blending -IMGUI_API ImU32 ImAlphaBlendColors(ImU32 col_a, ImU32 col_b); - -// Helpers: Bit manipulation -static inline bool ImIsPowerOfTwo(int v) { return v != 0 && (v & (v - 1)) == 0; } -static inline int ImUpperPowerOfTwo(int v) { v--; v |= v >> 1; v |= v >> 2; v |= v >> 4; v |= v >> 8; v |= v >> 16; v++; return v; } - -// Helpers: String, Formatting -IMGUI_API int ImStricmp(const char* str1, const char* str2); -IMGUI_API int ImStrnicmp(const char* str1, const char* str2, size_t count); -IMGUI_API void ImStrncpy(char* dst, const char* src, size_t count); -IMGUI_API char* ImStrdup(const char* str); -IMGUI_API char* ImStrdupcpy(char* dst, size_t* p_dst_size, const char* str); -IMGUI_API const char* ImStrchrRange(const char* str_begin, const char* str_end, char c); -IMGUI_API int ImStrlenW(const ImWchar* str); -IMGUI_API const char* ImStreolRange(const char* str, const char* str_end); // End end-of-line -IMGUI_API const ImWchar*ImStrbolW(const ImWchar* buf_mid_line, const ImWchar* buf_begin); // Find beginning-of-line -IMGUI_API const char* ImStristr(const char* haystack, const char* haystack_end, const char* needle, const char* needle_end); -IMGUI_API void ImStrTrimBlanks(char* str); -IMGUI_API const char* ImStrSkipBlank(const char* str); -IMGUI_API int ImFormatString(char* buf, size_t buf_size, const char* fmt, ...) IM_FMTARGS(3); -IMGUI_API int ImFormatStringV(char* buf, size_t buf_size, const char* fmt, va_list args) IM_FMTLIST(3); -IMGUI_API const char* ImParseFormatFindStart(const char* format); -IMGUI_API const char* ImParseFormatFindEnd(const char* format); -IMGUI_API const char* ImParseFormatTrimDecorations(const char* format, char* buf, size_t buf_size); -IMGUI_API int ImParseFormatPrecision(const char* format, int default_value); -static inline bool ImCharIsBlankA(char c) { return c == ' ' || c == '\t'; } -static inline bool ImCharIsBlankW(unsigned int c) { return c == ' ' || c == '\t' || c == 0x3000; } - -// Helpers: UTF-8 <> wchar conversions -IMGUI_API int ImTextStrToUtf8(char* buf, int buf_size, const ImWchar* in_text, const ImWchar* in_text_end); // return output UTF-8 bytes count -IMGUI_API int ImTextCharFromUtf8(unsigned int* out_char, const char* in_text, const char* in_text_end); // read one character. return input UTF-8 bytes count -IMGUI_API int ImTextStrFromUtf8(ImWchar* buf, int buf_size, const char* in_text, const char* in_text_end, const char** in_remaining = NULL); // return input UTF-8 bytes count -IMGUI_API int ImTextCountCharsFromUtf8(const char* in_text, const char* in_text_end); // return number of UTF-8 code-points (NOT bytes count) -IMGUI_API int ImTextCountUtf8BytesFromChar(const char* in_text, const char* in_text_end); // return number of bytes to express one char in UTF-8 -IMGUI_API int ImTextCountUtf8BytesFromStr(const ImWchar* in_text, const ImWchar* in_text_end); // return number of bytes to express string in UTF-8 - -// Helpers: ImVec2/ImVec4 operators -// We are keeping those disabled by default so they don't leak in user space, to allow user enabling implicit cast operators between ImVec2 and their own types (using IM_VEC2_CLASS_EXTRA etc.) -// We unfortunately don't have a unary- operator for ImVec2 because this would needs to be defined inside the class itself. -#ifdef IMGUI_DEFINE_MATH_OPERATORS -static inline ImVec2 operator*(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x*rhs, lhs.y*rhs); } -static inline ImVec2 operator/(const ImVec2& lhs, const float rhs) { return ImVec2(lhs.x/rhs, lhs.y/rhs); } -static inline ImVec2 operator+(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x+rhs.x, lhs.y+rhs.y); } -static inline ImVec2 operator-(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x-rhs.x, lhs.y-rhs.y); } -static inline ImVec2 operator*(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x*rhs.x, lhs.y*rhs.y); } -static inline ImVec2 operator/(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x/rhs.x, lhs.y/rhs.y); } -static inline ImVec2& operator*=(ImVec2& lhs, const float rhs) { lhs.x *= rhs; lhs.y *= rhs; return lhs; } -static inline ImVec2& operator/=(ImVec2& lhs, const float rhs) { lhs.x /= rhs; lhs.y /= rhs; return lhs; } -static inline ImVec2& operator+=(ImVec2& lhs, const ImVec2& rhs) { lhs.x += rhs.x; lhs.y += rhs.y; return lhs; } -static inline ImVec2& operator-=(ImVec2& lhs, const ImVec2& rhs) { lhs.x -= rhs.x; lhs.y -= rhs.y; return lhs; } -static inline ImVec2& operator*=(ImVec2& lhs, const ImVec2& rhs) { lhs.x *= rhs.x; lhs.y *= rhs.y; return lhs; } -static inline ImVec2& operator/=(ImVec2& lhs, const ImVec2& rhs) { lhs.x /= rhs.x; lhs.y /= rhs.y; return lhs; } -static inline ImVec4 operator+(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x+rhs.x, lhs.y+rhs.y, lhs.z+rhs.z, lhs.w+rhs.w); } -static inline ImVec4 operator-(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x-rhs.x, lhs.y-rhs.y, lhs.z-rhs.z, lhs.w-rhs.w); } -static inline ImVec4 operator*(const ImVec4& lhs, const ImVec4& rhs) { return ImVec4(lhs.x*rhs.x, lhs.y*rhs.y, lhs.z*rhs.z, lhs.w*rhs.w); } -#endif - -// Helpers: File System -#ifdef IMGUI_DISABLE_FILE_FUNCTIONS -#define IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS -typedef void* ImFileHandle; -static inline ImFileHandle ImFileOpen(const char*, const char*) { return NULL; } -static inline bool ImFileClose(ImFileHandle) { return false; } -static inline ImU64 ImFileGetSize(ImFileHandle) { return (ImU64)-1; } -static inline ImU64 ImFileRead(void*, ImU64, ImU64, ImFileHandle) { return 0; } -static inline ImU64 ImFileWrite(const void*, ImU64, ImU64, ImFileHandle) { return 0; } -#endif - -#ifndef IMGUI_DISABLE_DEFAULT_FILE_FUNCTIONS -typedef FILE* ImFileHandle; -IMGUI_API ImFileHandle ImFileOpen(const char* filename, const char* mode); -IMGUI_API bool ImFileClose(ImFileHandle file); -IMGUI_API ImU64 ImFileGetSize(ImFileHandle file); -IMGUI_API ImU64 ImFileRead(void* data, ImU64 size, ImU64 count, ImFileHandle file); -IMGUI_API ImU64 ImFileWrite(const void* data, ImU64 size, ImU64 count, ImFileHandle file); -#else -#define IMGUI_DISABLE_TTY_FUNCTIONS // Can't use stdout, fflush if we are not using default file functions -#endif -IMGUI_API void* ImFileLoadToMemory(const char* filename, const char* mode, size_t* out_file_size = NULL, int padding_bytes = 0); - -// Helpers: Maths -// - Wrapper for standard libs functions. (Note that imgui_demo.cpp does _not_ use them to keep the code easy to copy) -#ifndef IMGUI_DISABLE_DEFAULT_MATH_FUNCTIONS -#define ImFabs(X) fabsf(X) -#define ImSqrt(X) sqrtf(X) -#define ImFmod(X, Y) fmodf((X), (Y)) -#define ImCos(X) cosf(X) -#define ImSin(X) sinf(X) -#define ImAcos(X) acosf(X) -#define ImAtan2(Y, X) atan2f((Y), (X)) -#define ImAtof(STR) atof(STR) -#define ImFloorStd(X) floorf(X) // We already uses our own ImFloor() { return (float)(int)v } internally so the standard one wrapper is named differently (it's used by e.g. stb_truetype) -#define ImCeil(X) ceilf(X) -static inline float ImPow(float x, float y) { return powf(x, y); } // DragBehaviorT/SliderBehaviorT uses ImPow with either float/double and need the precision -static inline double ImPow(double x, double y) { return pow(x, y); } -#endif -// - ImMin/ImMax/ImClamp/ImLerp/ImSwap are used by widgets which support variety of types: signed/unsigned int/long long float/double -// (Exceptionally using templates here but we could also redefine them for those types) -template static inline T ImMin(T lhs, T rhs) { return lhs < rhs ? lhs : rhs; } -template static inline T ImMax(T lhs, T rhs) { return lhs >= rhs ? lhs : rhs; } -template static inline T ImClamp(T v, T mn, T mx) { return (v < mn) ? mn : (v > mx) ? mx : v; } -template static inline T ImLerp(T a, T b, float t) { return (T)(a + (b - a) * t); } -template static inline void ImSwap(T& a, T& b) { T tmp = a; a = b; b = tmp; } -template static inline T ImAddClampOverflow(T a, T b, T mn, T mx) { if (b < 0 && (a < mn - b)) return mn; if (b > 0 && (a > mx - b)) return mx; return a + b; } -template static inline T ImSubClampOverflow(T a, T b, T mn, T mx) { if (b > 0 && (a < mn + b)) return mn; if (b < 0 && (a > mx + b)) return mx; return a - b; } -// - Misc maths helpers -static inline ImVec2 ImMin(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x < rhs.x ? lhs.x : rhs.x, lhs.y < rhs.y ? lhs.y : rhs.y); } -static inline ImVec2 ImMax(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x >= rhs.x ? lhs.x : rhs.x, lhs.y >= rhs.y ? lhs.y : rhs.y); } -static inline ImVec2 ImClamp(const ImVec2& v, const ImVec2& mn, ImVec2 mx) { return ImVec2((v.x < mn.x) ? mn.x : (v.x > mx.x) ? mx.x : v.x, (v.y < mn.y) ? mn.y : (v.y > mx.y) ? mx.y : v.y); } -static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, float t) { return ImVec2(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t); } -static inline ImVec2 ImLerp(const ImVec2& a, const ImVec2& b, const ImVec2& t) { return ImVec2(a.x + (b.x - a.x) * t.x, a.y + (b.y - a.y) * t.y); } -static inline ImVec4 ImLerp(const ImVec4& a, const ImVec4& b, float t) { return ImVec4(a.x + (b.x - a.x) * t, a.y + (b.y - a.y) * t, a.z + (b.z - a.z) * t, a.w + (b.w - a.w) * t); } -static inline float ImSaturate(float f) { return (f < 0.0f) ? 0.0f : (f > 1.0f) ? 1.0f : f; } -static inline float ImLengthSqr(const ImVec2& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y; } -static inline float ImLengthSqr(const ImVec4& lhs) { return lhs.x*lhs.x + lhs.y*lhs.y + lhs.z*lhs.z + lhs.w*lhs.w; } -static inline float ImInvLength(const ImVec2& lhs, float fail_value) { float d = lhs.x*lhs.x + lhs.y*lhs.y; if (d > 0.0f) return 1.0f / ImSqrt(d); return fail_value; } -static inline float ImFloor(float f) { return (float)(int)(f); } -static inline ImVec2 ImFloor(const ImVec2& v) { return ImVec2((float)(int)(v.x), (float)(int)(v.y)); } -static inline int ImModPositive(int a, int b) { return (a + b) % b; } -static inline float ImDot(const ImVec2& a, const ImVec2& b) { return a.x * b.x + a.y * b.y; } -static inline ImVec2 ImRotate(const ImVec2& v, float cos_a, float sin_a) { return ImVec2(v.x * cos_a - v.y * sin_a, v.x * sin_a + v.y * cos_a); } -static inline float ImLinearSweep(float current, float target, float speed) { if (current < target) return ImMin(current + speed, target); if (current > target) return ImMax(current - speed, target); return current; } -static inline ImVec2 ImMul(const ImVec2& lhs, const ImVec2& rhs) { return ImVec2(lhs.x * rhs.x, lhs.y * rhs.y); } - -// Helpers: Geometry -IMGUI_API ImVec2 ImBezierCalc(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, float t); // Cubic Bezier -IMGUI_API ImVec2 ImBezierClosestPoint(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& p, int num_segments); // For curves with explicit number of segments -IMGUI_API ImVec2 ImBezierClosestPointCasteljau(const ImVec2& p1, const ImVec2& p2, const ImVec2& p3, const ImVec2& p4, const ImVec2& p, float tess_tol);// For auto-tessellated curves you can use tess_tol = style.CurveTessellationTol -IMGUI_API ImVec2 ImLineClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& p); -IMGUI_API bool ImTriangleContainsPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p); -IMGUI_API ImVec2 ImTriangleClosestPoint(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p); -IMGUI_API void ImTriangleBarycentricCoords(const ImVec2& a, const ImVec2& b, const ImVec2& c, const ImVec2& p, float& out_u, float& out_v, float& out_w); -inline float ImTriangleArea(const ImVec2& a, const ImVec2& b, const ImVec2& c) { return ImFabs((a.x * (b.y - c.y)) + (b.x * (c.y - a.y)) + (c.x * (a.y - b.y))) * 0.5f; } -IMGUI_API ImGuiDir ImGetDirQuadrantFromDelta(float dx, float dy); - -// Helpers: Bit arrays -inline bool ImBitArrayTestBit(const ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); return (arr[n >> 5] & mask) != 0; } -inline void ImBitArrayClearBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] &= ~mask; } -inline void ImBitArraySetBit(ImU32* arr, int n) { ImU32 mask = (ImU32)1 << (n & 31); arr[n >> 5] |= mask; } -inline void ImBitArraySetBitRange(ImU32* arr, int n, int n2) -{ - while (n <= n2) - { - int a_mod = (n & 31); - int b_mod = ((n2 >= n + 31) ? 31 : (n2 & 31)) + 1; - ImU32 mask = (ImU32)(((ImU64)1 << b_mod) - 1) & ~(ImU32)(((ImU64)1 << a_mod) - 1); - arr[n >> 5] |= mask; - n = (n + 32) & ~31; - } -} - -// Helper: ImBitVector -// Store 1-bit per value. -struct IMGUI_API ImBitVector -{ - ImVector Storage; - void Create(int sz) { Storage.resize((sz + 31) >> 5); memset(Storage.Data, 0, (size_t)Storage.Size * sizeof(Storage.Data[0])); } - void Clear() { Storage.clear(); } - bool TestBit(int n) const { IM_ASSERT(n < (Storage.Size << 5)); return ImBitArrayTestBit(Storage.Data, n); } - void SetBit(int n) { IM_ASSERT(n < (Storage.Size << 5)); ImBitArraySetBit(Storage.Data, n); } - void ClearBit(int n) { IM_ASSERT(n < (Storage.Size << 5)); ImBitArrayClearBit(Storage.Data, n); } -}; - -// Helper: ImPool<> -// Basic keyed storage for contiguous instances, slow/amortized insertion, O(1) indexable, O(Log N) queries by ID over a dense/hot buffer, -// Honor constructor/destructor. Add/remove invalidate all pointers. Indexes have the same lifetime as the associated object. -typedef int ImPoolIdx; -template -struct IMGUI_API ImPool -{ - ImVector Buf; // Contiguous data - ImGuiStorage Map; // ID->Index - ImPoolIdx FreeIdx; // Next free idx to use - - ImPool() { FreeIdx = 0; } - ~ImPool() { Clear(); } - T* GetByKey(ImGuiID key) { int idx = Map.GetInt(key, -1); return (idx != -1) ? &Buf[idx] : NULL; } - T* GetByIndex(ImPoolIdx n) { return &Buf[n]; } - ImPoolIdx GetIndex(const T* p) const { IM_ASSERT(p >= Buf.Data && p < Buf.Data + Buf.Size); return (ImPoolIdx)(p - Buf.Data); } - T* GetOrAddByKey(ImGuiID key) { int* p_idx = Map.GetIntRef(key, -1); if (*p_idx != -1) return &Buf[*p_idx]; *p_idx = FreeIdx; return Add(); } - bool Contains(const T* p) const { return (p >= Buf.Data && p < Buf.Data + Buf.Size); } - void Clear() { for (int n = 0; n < Map.Data.Size; n++) { int idx = Map.Data[n].val_i; if (idx != -1) Buf[idx].~T(); } Map.Clear(); Buf.clear(); FreeIdx = 0; } - T* Add() { int idx = FreeIdx; if (idx == Buf.Size) { Buf.resize(Buf.Size + 1); FreeIdx++; } else { FreeIdx = *(int*)&Buf[idx]; } IM_PLACEMENT_NEW(&Buf[idx]) T(); return &Buf[idx]; } - void Remove(ImGuiID key, const T* p) { Remove(key, GetIndex(p)); } - void Remove(ImGuiID key, ImPoolIdx idx) { Buf[idx].~T(); *(int*)&Buf[idx] = FreeIdx; FreeIdx = idx; Map.SetInt(key, -1); } - void Reserve(int capacity) { Buf.reserve(capacity); Map.Data.reserve(capacity); } - int GetSize() const { return Buf.Size; } -}; - -// Helper: ImChunkStream<> -// Build and iterate a contiguous stream of variable-sized structures. -// This is used by Settings to store persistent data while reducing allocation count. -// We store the chunk size first, and align the final size on 4 bytes boundaries (this what the '(X + 3) & ~3' statement is for) -// The tedious/zealous amount of casting is to avoid -Wcast-align warnings. -template -struct IMGUI_API ImChunkStream -{ - ImVector Buf; - - void clear() { Buf.clear(); } - bool empty() const { return Buf.Size == 0; } - int size() const { return Buf.Size; } - T* alloc_chunk(size_t sz) { size_t HDR_SZ = 4; sz = ((HDR_SZ + sz) + 3u) & ~3u; int off = Buf.Size; Buf.resize(off + (int)sz); ((int*)(void*)(Buf.Data + off))[0] = (int)sz; return (T*)(void*)(Buf.Data + off + (int)HDR_SZ); } - T* begin() { size_t HDR_SZ = 4; if (!Buf.Data) return NULL; return (T*)(void*)(Buf.Data + HDR_SZ); } - T* next_chunk(T* p) { size_t HDR_SZ = 4; IM_ASSERT(p >= begin() && p < end()); p = (T*)(void*)((char*)(void*)p + chunk_size(p)); if (p == (T*)(void*)((char*)end() + HDR_SZ)) return (T*)0; IM_ASSERT(p < end()); return p; } - int chunk_size(const T* p) { return ((const int*)p)[-1]; } - T* end() { return (T*)(void*)(Buf.Data + Buf.Size); } - int offset_from_ptr(const T* p) { IM_ASSERT(p >= begin() && p < end()); const ptrdiff_t off = (const char*)p - Buf.Data; return (int)off; } - T* ptr_from_offset(int off) { IM_ASSERT(off >= 4 && off < Buf.Size); return (T*)(void*)(Buf.Data + off); } -}; - -//----------------------------------------------------------------------------- -// Misc data structures -//----------------------------------------------------------------------------- - -enum ImGuiButtonFlags_ -{ - ImGuiButtonFlags_None = 0, - ImGuiButtonFlags_Repeat = 1 << 0, // hold to repeat - ImGuiButtonFlags_PressedOnClick = 1 << 1, // return true on click (mouse down event) - ImGuiButtonFlags_PressedOnClickRelease = 1 << 2, // [Default] return true on click + release on same item <-- this is what the majority of Button are using - ImGuiButtonFlags_PressedOnClickReleaseAnywhere = 1 << 3, // return true on click + release even if the release event is not done while hovering the item - ImGuiButtonFlags_PressedOnRelease = 1 << 4, // return true on release (default requires click+release) - ImGuiButtonFlags_PressedOnDoubleClick = 1 << 5, // return true on double-click (default requires click+release) - ImGuiButtonFlags_PressedOnDragDropHold = 1 << 6, // return true when held into while we are drag and dropping another item (used by e.g. tree nodes, collapsing headers) - ImGuiButtonFlags_FlattenChildren = 1 << 7, // allow interactions even if a child window is overlapping - ImGuiButtonFlags_AllowItemOverlap = 1 << 8, // require previous frame HoveredId to either match id or be null before being usable, use along with SetItemAllowOverlap() - ImGuiButtonFlags_DontClosePopups = 1 << 9, // disable automatically closing parent popup on press // [UNUSED] - ImGuiButtonFlags_Disabled = 1 << 10, // disable interactions - ImGuiButtonFlags_AlignTextBaseLine = 1 << 11, // vertically align button to match text baseline - ButtonEx() only // FIXME: Should be removed and handled by SmallButton(), not possible currently because of DC.CursorPosPrevLine - ImGuiButtonFlags_NoKeyModifiers = 1 << 12, // disable mouse interaction if a key modifier is held - ImGuiButtonFlags_NoHoldingActiveId = 1 << 13, // don't set ActiveId while holding the mouse (ImGuiButtonFlags_PressedOnClick only) - ImGuiButtonFlags_NoNavFocus = 1 << 14, // don't override navigation focus when activated - ImGuiButtonFlags_NoHoveredOnFocus = 1 << 15, // don't report as hovered when nav focus is on this item - ImGuiButtonFlags_MouseButtonLeft = 1 << 16, // [Default] react on left mouse button - ImGuiButtonFlags_MouseButtonRight = 1 << 17, // react on right mouse button - ImGuiButtonFlags_MouseButtonMiddle = 1 << 18, // react on center mouse button - - ImGuiButtonFlags_MouseButtonMask_ = ImGuiButtonFlags_MouseButtonLeft | ImGuiButtonFlags_MouseButtonRight | ImGuiButtonFlags_MouseButtonMiddle, - ImGuiButtonFlags_MouseButtonShift_ = 16, - ImGuiButtonFlags_MouseButtonDefault_ = ImGuiButtonFlags_MouseButtonLeft, - ImGuiButtonFlags_PressedOnMask_ = ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere | ImGuiButtonFlags_PressedOnRelease | ImGuiButtonFlags_PressedOnDoubleClick | ImGuiButtonFlags_PressedOnDragDropHold, - ImGuiButtonFlags_PressedOnDefault_ = ImGuiButtonFlags_PressedOnClickRelease -}; - -enum ImGuiSliderFlags_ -{ - ImGuiSliderFlags_None = 0, - ImGuiSliderFlags_Vertical = 1 << 0 -}; - -enum ImGuiDragFlags_ -{ - ImGuiDragFlags_None = 0, - ImGuiDragFlags_Vertical = 1 << 0 -}; - -enum ImGuiColumnsFlags_ -{ - // Default: 0 - ImGuiColumnsFlags_None = 0, - ImGuiColumnsFlags_NoBorder = 1 << 0, // Disable column dividers - ImGuiColumnsFlags_NoResize = 1 << 1, // Disable resizing columns when clicking on the dividers - ImGuiColumnsFlags_NoPreserveWidths = 1 << 2, // Disable column width preservation when adjusting columns - ImGuiColumnsFlags_NoForceWithinWindow = 1 << 3, // Disable forcing columns to fit within window - ImGuiColumnsFlags_GrowParentContentsSize= 1 << 4 // (WIP) Restore pre-1.51 behavior of extending the parent window contents size but _without affecting the columns width at all_. Will eventually remove. -}; - -// Extend ImGuiSelectableFlags_ -enum ImGuiSelectableFlagsPrivate_ -{ - // NB: need to be in sync with last value of ImGuiSelectableFlags_ - ImGuiSelectableFlags_NoHoldingActiveID = 1 << 20, - ImGuiSelectableFlags_SelectOnClick = 1 << 21, // Override button behavior to react on Click (default is Click+Release) - ImGuiSelectableFlags_SelectOnRelease = 1 << 22, // Override button behavior to react on Release (default is Click+Release) - ImGuiSelectableFlags_SpanAvailWidth = 1 << 23, // Span all avail width even if we declared less for layout purpose. FIXME: We may be able to remove this (added in 6251d379, 2bcafc86 for menus) - ImGuiSelectableFlags_DrawHoveredWhenHeld= 1 << 24, // Always show active when held, even is not hovered. This concept could probably be renamed/formalized somehow. - ImGuiSelectableFlags_SetNavIdOnHover = 1 << 25 -}; - -// Extend ImGuiTreeNodeFlags_ -enum ImGuiTreeNodeFlagsPrivate_ -{ - ImGuiTreeNodeFlags_ClipLabelForTrailingButton = 1 << 20 -}; - -enum ImGuiSeparatorFlags_ -{ - ImGuiSeparatorFlags_None = 0, - ImGuiSeparatorFlags_Horizontal = 1 << 0, // Axis default to current layout type, so generally Horizontal unless e.g. in a menu bar - ImGuiSeparatorFlags_Vertical = 1 << 1, - ImGuiSeparatorFlags_SpanAllColumns = 1 << 2 -}; - -// Transient per-window flags, reset at the beginning of the frame. For child window, inherited from parent on first Begin(). -// This is going to be exposed in imgui.h when stabilized enough. -enum ImGuiItemFlags_ -{ - ImGuiItemFlags_None = 0, - ImGuiItemFlags_NoTabStop = 1 << 0, // false - ImGuiItemFlags_ButtonRepeat = 1 << 1, // false // Button() will return true multiple times based on io.KeyRepeatDelay and io.KeyRepeatRate settings. - ImGuiItemFlags_Disabled = 1 << 2, // false // [BETA] Disable interactions but doesn't affect visuals yet. See github.com/ocornut/imgui/issues/211 - ImGuiItemFlags_NoNav = 1 << 3, // false - ImGuiItemFlags_NoNavDefaultFocus = 1 << 4, // false - ImGuiItemFlags_SelectableDontClosePopup = 1 << 5, // false // MenuItem/Selectable() automatically closes current Popup window - ImGuiItemFlags_MixedValue = 1 << 6, // false // [BETA] Represent a mixed/indeterminate value, generally multi-selection where values differ. Currently only supported by Checkbox() (later should support all sorts of widgets) - ImGuiItemFlags_Default_ = 0 -}; - -// Storage for LastItem data -enum ImGuiItemStatusFlags_ -{ - ImGuiItemStatusFlags_None = 0, - ImGuiItemStatusFlags_HoveredRect = 1 << 0, - ImGuiItemStatusFlags_HasDisplayRect = 1 << 1, - ImGuiItemStatusFlags_Edited = 1 << 2, // Value exposed by item was edited in the current frame (should match the bool return value of most widgets) - ImGuiItemStatusFlags_ToggledSelection = 1 << 3, // Set when Selectable(), TreeNode() reports toggling a selection. We can't report "Selected" because reporting the change allows us to handle clipping with less issues. - ImGuiItemStatusFlags_ToggledOpen = 1 << 4, // Set when TreeNode() reports toggling their open state. - ImGuiItemStatusFlags_HasDeactivated = 1 << 5, // Set if the widget/group is able to provide data for the ImGuiItemStatusFlags_Deactivated flag. - ImGuiItemStatusFlags_Deactivated = 1 << 6 // Only valid if ImGuiItemStatusFlags_HasDeactivated is set. - -#ifdef IMGUI_ENABLE_TEST_ENGINE - , // [imgui_tests only] - ImGuiItemStatusFlags_Openable = 1 << 10, // - ImGuiItemStatusFlags_Opened = 1 << 11, // - ImGuiItemStatusFlags_Checkable = 1 << 12, // - ImGuiItemStatusFlags_Checked = 1 << 13 // -#endif -}; - -enum ImGuiTextFlags_ -{ - ImGuiTextFlags_None = 0, - ImGuiTextFlags_NoWidthForLargeClippedText = 1 << 0 -}; - -enum ImGuiTooltipFlags_ -{ - ImGuiTooltipFlags_None = 0, - ImGuiTooltipFlags_OverridePreviousTooltip = 1 << 0 // Override will clear/ignore previously submitted tooltip (defaults to append) -}; - -// FIXME: this is in development, not exposed/functional as a generic feature yet. -// Horizontal/Vertical enums are fixed to 0/1 so they may be used to index ImVec2 -enum ImGuiLayoutType_ -{ - ImGuiLayoutType_Horizontal = 0, - ImGuiLayoutType_Vertical = 1 -}; - -enum ImGuiLogType -{ - ImGuiLogType_None = 0, - ImGuiLogType_TTY, - ImGuiLogType_File, - ImGuiLogType_Buffer, - ImGuiLogType_Clipboard -}; - -// X/Y enums are fixed to 0/1 so they may be used to index ImVec2 -enum ImGuiAxis -{ - ImGuiAxis_None = -1, - ImGuiAxis_X = 0, - ImGuiAxis_Y = 1 -}; - -enum ImGuiPlotType -{ - ImGuiPlotType_Lines, - ImGuiPlotType_Histogram -}; - -enum ImGuiInputSource -{ - ImGuiInputSource_None = 0, - ImGuiInputSource_Mouse, - ImGuiInputSource_Nav, - ImGuiInputSource_NavKeyboard, // Only used occasionally for storage, not tested/handled by most code - ImGuiInputSource_NavGamepad, // " - ImGuiInputSource_COUNT -}; - -// FIXME-NAV: Clarify/expose various repeat delay/rate -enum ImGuiInputReadMode -{ - ImGuiInputReadMode_Down, - ImGuiInputReadMode_Pressed, - ImGuiInputReadMode_Released, - ImGuiInputReadMode_Repeat, - ImGuiInputReadMode_RepeatSlow, - ImGuiInputReadMode_RepeatFast -}; - -enum ImGuiNavHighlightFlags_ -{ - ImGuiNavHighlightFlags_None = 0, - ImGuiNavHighlightFlags_TypeDefault = 1 << 0, - ImGuiNavHighlightFlags_TypeThin = 1 << 1, - ImGuiNavHighlightFlags_AlwaysDraw = 1 << 2, // Draw rectangular highlight if (g.NavId == id) _even_ when using the mouse. - ImGuiNavHighlightFlags_NoRounding = 1 << 3 -}; - -enum ImGuiNavDirSourceFlags_ -{ - ImGuiNavDirSourceFlags_None = 0, - ImGuiNavDirSourceFlags_Keyboard = 1 << 0, - ImGuiNavDirSourceFlags_PadDPad = 1 << 1, - ImGuiNavDirSourceFlags_PadLStick = 1 << 2 -}; - -enum ImGuiNavMoveFlags_ -{ - ImGuiNavMoveFlags_None = 0, - ImGuiNavMoveFlags_LoopX = 1 << 0, // On failed request, restart from opposite side - ImGuiNavMoveFlags_LoopY = 1 << 1, - ImGuiNavMoveFlags_WrapX = 1 << 2, // On failed request, request from opposite side one line down (when NavDir==right) or one line up (when NavDir==left) - ImGuiNavMoveFlags_WrapY = 1 << 3, // This is not super useful for provided for completeness - ImGuiNavMoveFlags_AllowCurrentNavId = 1 << 4, // Allow scoring and considering the current NavId as a move target candidate. This is used when the move source is offset (e.g. pressing PageDown actually needs to send a Up move request, if we are pressing PageDown from the bottom-most item we need to stay in place) - ImGuiNavMoveFlags_AlsoScoreVisibleSet = 1 << 5, // Store alternate result in NavMoveResultLocalVisibleSet that only comprise elements that are already fully visible. - ImGuiNavMoveFlags_ScrollToEdge = 1 << 6 -}; - -enum ImGuiNavForward -{ - ImGuiNavForward_None, - ImGuiNavForward_ForwardQueued, - ImGuiNavForward_ForwardActive -}; - -enum ImGuiNavLayer -{ - ImGuiNavLayer_Main = 0, // Main scrolling layer - ImGuiNavLayer_Menu = 1, // Menu layer (access with Alt/ImGuiNavInput_Menu) - ImGuiNavLayer_COUNT -}; - -enum ImGuiPopupPositionPolicy -{ - ImGuiPopupPositionPolicy_Default, - ImGuiPopupPositionPolicy_ComboBox -}; - -// 1D vector (this odd construct is used to facilitate the transition between 1D and 2D, and the maintenance of some branches/patches) -struct ImVec1 -{ - float x; - ImVec1() { x = 0.0f; } - ImVec1(float _x) { x = _x; } -}; - -// 2D vector (half-size integer) -struct ImVec2ih -{ - short x, y; - ImVec2ih() { x = y = 0; } - ImVec2ih(short _x, short _y) { x = _x; y = _y; } - explicit ImVec2ih(const ImVec2& rhs) { x = (short)rhs.x; y = (short)rhs.y; } -}; - -// 2D axis aligned bounding-box -// NB: we can't rely on ImVec2 math operators being available here -struct IMGUI_API ImRect -{ - ImVec2 Min; // Upper-left - ImVec2 Max; // Lower-right - - ImRect() : Min(0.0f, 0.0f), Max(0.0f, 0.0f) {} - ImRect(const ImVec2& min, const ImVec2& max) : Min(min), Max(max) {} - ImRect(const ImVec4& v) : Min(v.x, v.y), Max(v.z, v.w) {} - ImRect(float x1, float y1, float x2, float y2) : Min(x1, y1), Max(x2, y2) {} - - ImVec2 GetCenter() const { return ImVec2((Min.x + Max.x) * 0.5f, (Min.y + Max.y) * 0.5f); } - ImVec2 GetSize() const { return ImVec2(Max.x - Min.x, Max.y - Min.y); } - float GetWidth() const { return Max.x - Min.x; } - float GetHeight() const { return Max.y - Min.y; } - ImVec2 GetTL() const { return Min; } // Top-left - ImVec2 GetTR() const { return ImVec2(Max.x, Min.y); } // Top-right - ImVec2 GetBL() const { return ImVec2(Min.x, Max.y); } // Bottom-left - ImVec2 GetBR() const { return Max; } // Bottom-right - bool Contains(const ImVec2& p) const { return p.x >= Min.x && p.y >= Min.y && p.x < Max.x && p.y < Max.y; } - bool Contains(const ImRect& r) const { return r.Min.x >= Min.x && r.Min.y >= Min.y && r.Max.x <= Max.x && r.Max.y <= Max.y; } - bool Overlaps(const ImRect& r) const { return r.Min.y < Max.y && r.Max.y > Min.y && r.Min.x < Max.x && r.Max.x > Min.x; } - void Add(const ImVec2& p) { if (Min.x > p.x) Min.x = p.x; if (Min.y > p.y) Min.y = p.y; if (Max.x < p.x) Max.x = p.x; if (Max.y < p.y) Max.y = p.y; } - void Add(const ImRect& r) { if (Min.x > r.Min.x) Min.x = r.Min.x; if (Min.y > r.Min.y) Min.y = r.Min.y; if (Max.x < r.Max.x) Max.x = r.Max.x; if (Max.y < r.Max.y) Max.y = r.Max.y; } - void Expand(const float amount) { Min.x -= amount; Min.y -= amount; Max.x += amount; Max.y += amount; } - void Expand(const ImVec2& amount) { Min.x -= amount.x; Min.y -= amount.y; Max.x += amount.x; Max.y += amount.y; } - void Translate(const ImVec2& d) { Min.x += d.x; Min.y += d.y; Max.x += d.x; Max.y += d.y; } - void TranslateX(float dx) { Min.x += dx; Max.x += dx; } - void TranslateY(float dy) { Min.y += dy; Max.y += dy; } - void ClipWith(const ImRect& r) { Min = ImMax(Min, r.Min); Max = ImMin(Max, r.Max); } // Simple version, may lead to an inverted rectangle, which is fine for Contains/Overlaps test but not for display. - void ClipWithFull(const ImRect& r) { Min = ImClamp(Min, r.Min, r.Max); Max = ImClamp(Max, r.Min, r.Max); } // Full version, ensure both points are fully clipped. - void Floor() { Min.x = IM_FLOOR(Min.x); Min.y = IM_FLOOR(Min.y); Max.x = IM_FLOOR(Max.x); Max.y = IM_FLOOR(Max.y); } - bool IsInverted() const { return Min.x > Max.x || Min.y > Max.y; } -}; - -// Type information associated to one ImGuiDataType. Retrieve with DataTypeGetInfo(). -struct ImGuiDataTypeInfo -{ - size_t Size; // Size in byte - const char* PrintFmt; // Default printf format for the type - const char* ScanFmt; // Default scanf format for the type -}; - -// Stacked color modifier, backup of modified data so we can restore it -struct ImGuiColorMod -{ - ImGuiCol Col; - ImVec4 BackupValue; -}; - -// Stacked style modifier, backup of modified data so we can restore it. Data type inferred from the variable. -struct ImGuiStyleMod -{ - ImGuiStyleVar VarIdx; - union { int BackupInt[2]; float BackupFloat[2]; }; - ImGuiStyleMod(ImGuiStyleVar idx, int v) { VarIdx = idx; BackupInt[0] = v; } - ImGuiStyleMod(ImGuiStyleVar idx, float v) { VarIdx = idx; BackupFloat[0] = v; } - ImGuiStyleMod(ImGuiStyleVar idx, ImVec2 v) { VarIdx = idx; BackupFloat[0] = v.x; BackupFloat[1] = v.y; } -}; - -// Stacked storage data for BeginGroup()/EndGroup() -struct ImGuiGroupData -{ - ImVec2 BackupCursorPos; - ImVec2 BackupCursorMaxPos; - ImVec1 BackupIndent; - ImVec1 BackupGroupOffset; - ImVec2 BackupCurrLineSize; - float BackupCurrLineTextBaseOffset; - ImGuiID BackupActiveIdIsAlive; - bool BackupActiveIdPreviousFrameIsAlive; - bool EmitItem; -}; - -// Simple column measurement, currently used for MenuItem() only.. This is very short-sighted/throw-away code and NOT a generic helper. -struct IMGUI_API ImGuiMenuColumns -{ - float Spacing; - float Width, NextWidth; - float Pos[3], NextWidths[3]; - - ImGuiMenuColumns(); - void Update(int count, float spacing, bool clear); - float DeclColumns(float w0, float w1, float w2); - float CalcExtraSpace(float avail_w) const; -}; - -// Internal state of the currently focused/edited text input box -// For a given item ID, access with ImGui::GetInputTextState() -struct IMGUI_API ImGuiInputTextState -{ - ImGuiID ID; // widget id owning the text state - int CurLenW, CurLenA; // we need to maintain our buffer length in both UTF-8 and wchar format. UTF-8 length is valid even if TextA is not. - ImVector TextW; // edit buffer, we need to persist but can't guarantee the persistence of the user-provided buffer. so we copy into own buffer. - ImVector TextA; // temporary UTF8 buffer for callbacks and other operations. this is not updated in every code-path! size=capacity. - ImVector InitialTextA; // backup of end-user buffer at the time of focus (in UTF-8, unaltered) - bool TextAIsValid; // temporary UTF8 buffer is not initially valid before we make the widget active (until then we pull the data from user argument) - int BufCapacityA; // end-user buffer capacity - float ScrollX; // horizontal scrolling/offset - ImStb::STB_TexteditState Stb; // state for stb_textedit.h - float CursorAnim; // timer for cursor blink, reset on every user action so the cursor reappears immediately - bool CursorFollow; // set when we want scrolling to follow the current cursor position (not always!) - bool SelectedAllMouseLock; // after a double-click to select all, we ignore further mouse drags to update selection - ImGuiInputTextFlags UserFlags; // Temporarily set while we call user's callback - ImGuiInputTextCallback UserCallback; // " - void* UserCallbackData; // " - - ImGuiInputTextState() { memset(this, 0, sizeof(*this)); } - void ClearText() { CurLenW = CurLenA = 0; TextW[0] = 0; TextA[0] = 0; CursorClamp(); } - void ClearFreeMemory() { TextW.clear(); TextA.clear(); InitialTextA.clear(); } - int GetUndoAvailCount() const { return Stb.undostate.undo_point; } - int GetRedoAvailCount() const { return STB_TEXTEDIT_UNDOSTATECOUNT - Stb.undostate.redo_point; } - void OnKeyPressed(int key); // Cannot be inline because we call in code in stb_textedit.h implementation - - // Cursor & Selection - void CursorAnimReset() { CursorAnim = -0.30f; } // After a user-input the cursor stays on for a while without blinking - void CursorClamp() { Stb.cursor = ImMin(Stb.cursor, CurLenW); Stb.select_start = ImMin(Stb.select_start, CurLenW); Stb.select_end = ImMin(Stb.select_end, CurLenW); } - bool HasSelection() const { return Stb.select_start != Stb.select_end; } - void ClearSelection() { Stb.select_start = Stb.select_end = Stb.cursor; } - void SelectAll() { Stb.select_start = 0; Stb.cursor = Stb.select_end = CurLenW; Stb.has_preferred_x = 0; } -}; - -// Windows data saved in imgui.ini file -// Because we never destroy or rename ImGuiWindowSettings, we can store the names in a separate buffer easily. -// (this is designed to be stored in a ImChunkStream buffer, with the variable-length Name following our structure) -struct ImGuiWindowSettings -{ - ImGuiID ID; - ImVec2ih Pos; - ImVec2ih Size; - bool Collapsed; - - ImGuiWindowSettings() { ID = 0; Pos = Size = ImVec2ih(0, 0); Collapsed = false; } - char* GetName() { return (char*)(this + 1); } -}; - -struct ImGuiSettingsHandler -{ - const char* TypeName; // Short description stored in .ini file. Disallowed characters: '[' ']' - ImGuiID TypeHash; // == ImHashStr(TypeName) - void* (*ReadOpenFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, const char* name); // Read: Called when entering into a new ini entry e.g. "[Window][Name]" - void (*ReadLineFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, void* entry, const char* line); // Read: Called for every line of text within an ini entry - void (*WriteAllFn)(ImGuiContext* ctx, ImGuiSettingsHandler* handler, ImGuiTextBuffer* out_buf); // Write: Output every entries into 'out_buf' - void* UserData; - - ImGuiSettingsHandler() { memset(this, 0, sizeof(*this)); } -}; - -// Storage for current popup stack -struct ImGuiPopupData -{ - ImGuiID PopupId; // Set on OpenPopup() - ImGuiWindow* Window; // Resolved on BeginPopup() - may stay unresolved if user never calls OpenPopup() - ImGuiWindow* SourceWindow; // Set on OpenPopup() copy of NavWindow at the time of opening the popup - int OpenFrameCount; // Set on OpenPopup() - ImGuiID OpenParentId; // Set on OpenPopup(), we need this to differentiate multiple menu sets from each others (e.g. inside menu bar vs loose menu items) - ImVec2 OpenPopupPos; // Set on OpenPopup(), preferred popup position (typically == OpenMousePos when using mouse) - ImVec2 OpenMousePos; // Set on OpenPopup(), copy of mouse position at the time of opening popup - - ImGuiPopupData() { PopupId = 0; Window = SourceWindow = NULL; OpenFrameCount = -1; OpenParentId = 0; } -}; - -struct ImGuiColumnData -{ - float OffsetNorm; // Column start offset, normalized 0.0 (far left) -> 1.0 (far right) - float OffsetNormBeforeResize; - ImGuiColumnsFlags Flags; // Not exposed - ImRect ClipRect; - - ImGuiColumnData() { OffsetNorm = OffsetNormBeforeResize = 0.0f; Flags = ImGuiColumnsFlags_None; } -}; - -struct ImGuiColumns -{ - ImGuiID ID; - ImGuiColumnsFlags Flags; - bool IsFirstFrame; - bool IsBeingResized; - int Current; - int Count; - float OffMinX, OffMaxX; // Offsets from HostWorkRect.Min.x - float LineMinY, LineMaxY; - float HostCursorPosY; // Backup of CursorPos at the time of BeginColumns() - float HostCursorMaxPosX; // Backup of CursorMaxPos at the time of BeginColumns() - ImRect HostClipRect; // Backup of ClipRect at the time of BeginColumns() - ImRect HostWorkRect; // Backup of WorkRect at the time of BeginColumns() - ImVector Columns; - ImDrawListSplitter Splitter; - - ImGuiColumns() { Clear(); } - void Clear() - { - ID = 0; - Flags = ImGuiColumnsFlags_None; - IsFirstFrame = false; - IsBeingResized = false; - Current = 0; - Count = 1; - OffMinX = OffMaxX = 0.0f; - LineMinY = LineMaxY = 0.0f; - HostCursorPosY = 0.0f; - HostCursorMaxPosX = 0.0f; - Columns.clear(); - } -}; - -// ImDrawList: Helper function to calculate a circle's segment count given its radius and a "maximum error" value. -#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN 12 -#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX 512 -#define IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_CALC(_RAD,_MAXERROR) ImClamp((int)((IM_PI * 2.0f) / ImAcos(((_RAD) - (_MAXERROR)) / (_RAD))), IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MIN, IM_DRAWLIST_CIRCLE_AUTO_SEGMENT_MAX) - -// ImDrawList: You may set this to higher values (e.g. 2 or 3) to increase tessellation of fast rounded corners path. -#ifndef IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER -#define IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER 1 -#endif - -// Data shared between all ImDrawList instances -// You may want to create your own instance of this if you want to use ImDrawList completely without ImGui. In that case, watch out for future changes to this structure. -struct IMGUI_API ImDrawListSharedData -{ - ImVec2 TexUvWhitePixel; // UV of white pixel in the atlas - ImFont* Font; // Current/default font (optional, for simplified AddText overload) - float FontSize; // Current/default font size (optional, for simplified AddText overload) - float CurveTessellationTol; // Tessellation tolerance when using PathBezierCurveTo() - float CircleSegmentMaxError; // Number of circle segments to use per pixel of radius for AddCircle() etc - ImVec4 ClipRectFullscreen; // Value for PushClipRectFullscreen() - ImDrawListFlags InitialFlags; // Initial flags at the beginning of the frame (it is possible to alter flags on a per-drawlist basis afterwards) - - // [Internal] Lookup tables - ImVec2 ArcFastVtx[12 * IM_DRAWLIST_ARCFAST_TESSELLATION_MULTIPLIER]; // FIXME: Bake rounded corners fill/borders in atlas - ImU8 CircleSegmentCounts[64]; // Precomputed segment count for given radius (array index + 1) before we calculate it dynamically (to avoid calculation overhead) - - ImDrawListSharedData(); - void SetCircleSegmentMaxError(float max_error); -}; - -struct ImDrawDataBuilder -{ - ImVector Layers[2]; // Global layers for: regular, tooltip - - void Clear() { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].resize(0); } - void ClearFreeMemory() { for (int n = 0; n < IM_ARRAYSIZE(Layers); n++) Layers[n].clear(); } - IMGUI_API void FlattenIntoSingleLayer(); -}; - -struct ImGuiNavMoveResult -{ - ImGuiWindow* Window; // Best candidate window - ImGuiID ID; // Best candidate ID - ImGuiID FocusScopeId; // Best candidate focus scope ID - float DistBox; // Best candidate box distance to current NavId - float DistCenter; // Best candidate center distance to current NavId - float DistAxial; - ImRect RectRel; // Best candidate bounding box in window relative space - - ImGuiNavMoveResult() { Clear(); } - void Clear() { Window = NULL; ID = FocusScopeId = 0; DistBox = DistCenter = DistAxial = FLT_MAX; RectRel = ImRect(); } -}; - -enum ImGuiNextWindowDataFlags_ -{ - ImGuiNextWindowDataFlags_None = 0, - ImGuiNextWindowDataFlags_HasPos = 1 << 0, - ImGuiNextWindowDataFlags_HasSize = 1 << 1, - ImGuiNextWindowDataFlags_HasContentSize = 1 << 2, - ImGuiNextWindowDataFlags_HasCollapsed = 1 << 3, - ImGuiNextWindowDataFlags_HasSizeConstraint = 1 << 4, - ImGuiNextWindowDataFlags_HasFocus = 1 << 5, - ImGuiNextWindowDataFlags_HasBgAlpha = 1 << 6 -}; - -// Storage for SetNexWindow** functions -struct ImGuiNextWindowData -{ - ImGuiNextWindowDataFlags Flags; - ImGuiCond PosCond; - ImGuiCond SizeCond; - ImGuiCond CollapsedCond; - ImVec2 PosVal; - ImVec2 PosPivotVal; - ImVec2 SizeVal; - ImVec2 ContentSizeVal; - bool CollapsedVal; - ImRect SizeConstraintRect; - ImGuiSizeCallback SizeCallback; - void* SizeCallbackUserData; - float BgAlphaVal; // Override background alpha - ImVec2 MenuBarOffsetMinVal; // *Always on* This is not exposed publicly, so we don't clear it. - - ImGuiNextWindowData() { memset(this, 0, sizeof(*this)); } - inline void ClearFlags() { Flags = ImGuiNextWindowDataFlags_None; } -}; - -enum ImGuiNextItemDataFlags_ -{ - ImGuiNextItemDataFlags_None = 0, - ImGuiNextItemDataFlags_HasWidth = 1 << 0, - ImGuiNextItemDataFlags_HasOpen = 1 << 1 -}; - -struct ImGuiNextItemData -{ - ImGuiNextItemDataFlags Flags; - float Width; // Set by SetNextItemWidth() - ImGuiID FocusScopeId; // Set by SetNextItemMultiSelectData() (!= 0 signify value has been set, so it's an alternate version of HasSelectionData, we don't use Flags for this because they are cleared too early. This is mostly used for debugging) - ImGuiCond OpenCond; - bool OpenVal; // Set by SetNextItemOpen() - - ImGuiNextItemData() { memset(this, 0, sizeof(*this)); } - inline void ClearFlags() { Flags = ImGuiNextItemDataFlags_None; } // Also cleared manually by ItemAdd()! -}; - -//----------------------------------------------------------------------------- -// Tabs -//----------------------------------------------------------------------------- - -struct ImGuiShrinkWidthItem -{ - int Index; - float Width; -}; - -struct ImGuiPtrOrIndex -{ - void* Ptr; // Either field can be set, not both. e.g. Dock node tab bars are loose while BeginTabBar() ones are in a pool. - int Index; // Usually index in a main pool. - - ImGuiPtrOrIndex(void* ptr) { Ptr = ptr; Index = -1; } - ImGuiPtrOrIndex(int index) { Ptr = NULL; Index = index; } -}; - -//----------------------------------------------------------------------------- -// Main Dear ImGui context -//----------------------------------------------------------------------------- - -struct ImGuiContext -{ - bool Initialized; - bool FontAtlasOwnedByContext; // IO.Fonts-> is owned by the ImGuiContext and will be destructed along with it. - ImGuiIO IO; - ImGuiStyle Style; - ImFont* Font; // (Shortcut) == FontStack.empty() ? IO.Font : FontStack.back() - float FontSize; // (Shortcut) == FontBaseSize * g.CurrentWindow->FontWindowScale == window->FontSize(). Text height for current window. - float FontBaseSize; // (Shortcut) == IO.FontGlobalScale * Font->Scale * Font->FontSize. Base text height. - ImDrawListSharedData DrawListSharedData; - double Time; - int FrameCount; - int FrameCountEnded; - int FrameCountRendered; - bool WithinFrameScope; // Set by NewFrame(), cleared by EndFrame() - bool WithinFrameScopeWithImplicitWindow; // Set by NewFrame(), cleared by EndFrame() when the implicit debug window has been pushed - bool WithinEndChild; // Set within EndChild() - - // Windows state - ImVector Windows; // Windows, sorted in display order, back to front - ImVector WindowsFocusOrder; // Windows, sorted in focus order, back to front. (FIXME: We could only store root windows here! Need to sort out the Docking equivalent which is RootWindowDockStop and is unfortunately a little more dynamic) - ImVector WindowsTempSortBuffer; // Temporary buffer used in EndFrame() to reorder windows so parents are kept before their child - ImVector CurrentWindowStack; - ImGuiStorage WindowsById; // Map window's ImGuiID to ImGuiWindow* - int WindowsActiveCount; // Number of unique windows submitted by frame - ImGuiWindow* CurrentWindow; // Window being drawn into - ImGuiWindow* HoveredWindow; // Will catch mouse inputs - ImGuiWindow* HoveredRootWindow; // Will catch mouse inputs (for focus/move only) - ImGuiWindow* MovingWindow; // Track the window we clicked on (in order to preserve focus). The actually window that is moved is generally MovingWindow->RootWindow. - ImGuiWindow* WheelingWindow; // Track the window we started mouse-wheeling on. Until a timer elapse or mouse has moved, generally keep scrolling the same window even if during the course of scrolling the mouse ends up hovering a child window. - ImVec2 WheelingWindowRefMousePos; - float WheelingWindowTimer; - - // Item/widgets state and tracking information - ImGuiID HoveredId; // Hovered widget - bool HoveredIdAllowOverlap; - ImGuiID HoveredIdPreviousFrame; - float HoveredIdTimer; // Measure contiguous hovering time - float HoveredIdNotActiveTimer; // Measure contiguous hovering time where the item has not been active - ImGuiID ActiveId; // Active widget - ImGuiID ActiveIdIsAlive; // Active widget has been seen this frame (we can't use a bool as the ActiveId may change within the frame) - float ActiveIdTimer; - bool ActiveIdIsJustActivated; // Set at the time of activation for one frame - bool ActiveIdAllowOverlap; // Active widget allows another widget to steal active id (generally for overlapping widgets, but not always) - bool ActiveIdHasBeenPressedBefore; // Track whether the active id led to a press (this is to allow changing between PressOnClick and PressOnRelease without pressing twice). Used by range_select branch. - bool ActiveIdHasBeenEditedBefore; // Was the value associated to the widget Edited over the course of the Active state. - bool ActiveIdHasBeenEditedThisFrame; - ImU32 ActiveIdUsingNavDirMask; // Active widget will want to read those nav move requests (e.g. can activate a button and move away from it) - ImU32 ActiveIdUsingNavInputMask; // Active widget will want to read those nav inputs. - ImU64 ActiveIdUsingKeyInputMask; // Active widget will want to read those key inputs. When we grow the ImGuiKey enum we'll need to either to order the enum to make useful keys come first, either redesign this into e.g. a small array. - ImVec2 ActiveIdClickOffset; // Clicked offset from upper-left corner, if applicable (currently only set by ButtonBehavior) - ImGuiWindow* ActiveIdWindow; - ImGuiInputSource ActiveIdSource; // Activating with mouse or nav (gamepad/keyboard) - int ActiveIdMouseButton; - ImGuiID ActiveIdPreviousFrame; - bool ActiveIdPreviousFrameIsAlive; - bool ActiveIdPreviousFrameHasBeenEditedBefore; - ImGuiWindow* ActiveIdPreviousFrameWindow; - ImGuiID LastActiveId; // Store the last non-zero ActiveId, useful for animation. - float LastActiveIdTimer; // Store the last non-zero ActiveId timer since the beginning of activation, useful for animation. - - // Next window/item data - ImGuiNextWindowData NextWindowData; // Storage for SetNextWindow** functions - ImGuiNextItemData NextItemData; // Storage for SetNextItem** functions - - // Shared stacks - ImVector ColorModifiers; // Stack for PushStyleColor()/PopStyleColor() - ImVector StyleModifiers; // Stack for PushStyleVar()/PopStyleVar() - ImVector FontStack; // Stack for PushFont()/PopFont() - ImVectorOpenPopupStack; // Which popups are open (persistent) - ImVectorBeginPopupStack; // Which level of BeginPopup() we are in (reset every frame) - - // Gamepad/keyboard Navigation - ImGuiWindow* NavWindow; // Focused window for navigation. Could be called 'FocusWindow' - ImGuiID NavId; // Focused item for navigation - ImGuiID NavFocusScopeId; - ImGuiID NavActivateId; // ~~ (g.ActiveId == 0) && IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0, also set when calling ActivateItem() - ImGuiID NavActivateDownId; // ~~ IsNavInputDown(ImGuiNavInput_Activate) ? NavId : 0 - ImGuiID NavActivatePressedId; // ~~ IsNavInputPressed(ImGuiNavInput_Activate) ? NavId : 0 - ImGuiID NavInputId; // ~~ IsNavInputPressed(ImGuiNavInput_Input) ? NavId : 0 - ImGuiID NavJustTabbedId; // Just tabbed to this id. - ImGuiID NavJustMovedToId; // Just navigated to this id (result of a successfully MoveRequest). - ImGuiID NavJustMovedToFocusScopeId; // Just navigated to this focus scope id (result of a successfully MoveRequest). - ImGuiKeyModFlags NavJustMovedToKeyMods; - ImGuiID NavNextActivateId; // Set by ActivateItem(), queued until next frame. - ImGuiInputSource NavInputSource; // Keyboard or Gamepad mode? THIS WILL ONLY BE None or NavGamepad or NavKeyboard. - ImRect NavScoringRect; // Rectangle used for scoring, in screen space. Based of window->DC.NavRefRectRel[], modified for directional navigation scoring. - int NavScoringCount; // Metrics for debugging - ImGuiNavLayer NavLayer; // Layer we are navigating on. For now the system is hard-coded for 0=main contents and 1=menu/title bar, may expose layers later. - int NavIdTabCounter; // == NavWindow->DC.FocusIdxTabCounter at time of NavId processing - bool NavIdIsAlive; // Nav widget has been seen this frame ~~ NavRefRectRel is valid - bool NavMousePosDirty; // When set we will update mouse position if (io.ConfigFlags & ImGuiConfigFlags_NavEnableSetMousePos) if set (NB: this not enabled by default) - bool NavDisableHighlight; // When user starts using mouse, we hide gamepad/keyboard highlight (NB: but they are still available, which is why NavDisableHighlight isn't always != NavDisableMouseHover) - bool NavDisableMouseHover; // When user starts using gamepad/keyboard, we hide mouse hovering highlight until mouse is touched again. - bool NavAnyRequest; // ~~ NavMoveRequest || NavInitRequest - bool NavInitRequest; // Init request for appearing window to select first item - bool NavInitRequestFromMove; - ImGuiID NavInitResultId; - ImRect NavInitResultRectRel; - bool NavMoveFromClampedRefRect; // Set by manual scrolling, if we scroll to a point where NavId isn't visible we reset navigation from visible items - bool NavMoveRequest; // Move request for this frame - ImGuiNavMoveFlags NavMoveRequestFlags; - ImGuiNavForward NavMoveRequestForward; // None / ForwardQueued / ForwardActive (this is used to navigate sibling parent menus from a child menu) - ImGuiKeyModFlags NavMoveRequestKeyMods; - ImGuiDir NavMoveDir, NavMoveDirLast; // Direction of the move request (left/right/up/down), direction of the previous move request - ImGuiDir NavMoveClipDir; // FIXME-NAV: Describe the purpose of this better. Might want to rename? - ImGuiNavMoveResult NavMoveResultLocal; // Best move request candidate within NavWindow - ImGuiNavMoveResult NavMoveResultLocalVisibleSet; // Best move request candidate within NavWindow that are mostly visible (when using ImGuiNavMoveFlags_AlsoScoreVisibleSet flag) - ImGuiNavMoveResult NavMoveResultOther; // Best move request candidate within NavWindow's flattened hierarchy (when using ImGuiWindowFlags_NavFlattened flag) - - // Navigation: Windowing (CTRL+TAB, holding Menu button + directional pads to move/resize) - ImGuiWindow* NavWindowingTarget; // When selecting a window (holding Menu+FocusPrev/Next, or equivalent of CTRL-TAB) this window is temporarily displayed top-most. - ImGuiWindow* NavWindowingTargetAnim; // Record of last valid NavWindowingTarget until DimBgRatio and NavWindowingHighlightAlpha becomes 0.0f - ImGuiWindow* NavWindowingList; - float NavWindowingTimer; - float NavWindowingHighlightAlpha; - bool NavWindowingToggleLayer; - - // Legacy Focus/Tabbing system (older than Nav, active even if Nav is disabled, misnamed. FIXME-NAV: This needs a redesign!) - ImGuiWindow* FocusRequestCurrWindow; // - ImGuiWindow* FocusRequestNextWindow; // - int FocusRequestCurrCounterRegular; // Any item being requested for focus, stored as an index (we on layout to be stable between the frame pressing TAB and the next frame, semi-ouch) - int FocusRequestCurrCounterTabStop; // Tab item being requested for focus, stored as an index - int FocusRequestNextCounterRegular; // Stored for next frame - int FocusRequestNextCounterTabStop; // " - bool FocusTabPressed; // - - // Render - ImDrawData DrawData; // Main ImDrawData instance to pass render information to the user - ImDrawDataBuilder DrawDataBuilder; - float DimBgRatio; // 0.0..1.0 animation when fading in a dimming background (for modal window and CTRL+TAB list) - ImDrawList BackgroundDrawList; // First draw list to be rendered. - ImDrawList ForegroundDrawList; // Last draw list to be rendered. This is where we the render software mouse cursor (if io.MouseDrawCursor is set) and most debug overlays. - ImGuiMouseCursor MouseCursor; - - // Drag and Drop - bool DragDropActive; - bool DragDropWithinSource; // Set when within a BeginDragDropXXX/EndDragDropXXX block for a drag source. - bool DragDropWithinTarget; // Set when within a BeginDragDropXXX/EndDragDropXXX block for a drag target. - ImGuiDragDropFlags DragDropSourceFlags; - int DragDropSourceFrameCount; - int DragDropMouseButton; - ImGuiPayload DragDropPayload; - ImRect DragDropTargetRect; // Store rectangle of current target candidate (we favor small targets when overlapping) - ImGuiID DragDropTargetId; - ImGuiDragDropFlags DragDropAcceptFlags; - float DragDropAcceptIdCurrRectSurface; // Target item surface (we resolve overlapping targets by prioritizing the smaller surface) - ImGuiID DragDropAcceptIdCurr; // Target item id (set at the time of accepting the payload) - ImGuiID DragDropAcceptIdPrev; // Target item id from previous frame (we need to store this to allow for overlapping drag and drop targets) - int DragDropAcceptFrameCount; // Last time a target expressed a desire to accept the source - ImVector DragDropPayloadBufHeap; // We don't expose the ImVector<> directly, ImGuiPayload only holds pointer+size - unsigned char DragDropPayloadBufLocal[16]; // Local buffer for small payloads - - // Tab bars - ImGuiTabBar* CurrentTabBar; - ImPool TabBars; - ImVector CurrentTabBarStack; - ImVector ShrinkWidthBuffer; - - // Widget state - ImVec2 LastValidMousePos; - ImGuiInputTextState InputTextState; - ImFont InputTextPasswordFont; - ImGuiID TempInputId; // Temporary text input when CTRL+clicking on a slider, etc. - ImGuiColorEditFlags ColorEditOptions; // Store user options for color edit widgets - float ColorEditLastHue; // Backup of last Hue associated to LastColor[3], so we can restore Hue in lossy RGB<>HSV round trips - float ColorEditLastSat; // Backup of last Saturation associated to LastColor[3], so we can restore Saturation in lossy RGB<>HSV round trips - float ColorEditLastColor[3]; - ImVec4 ColorPickerRef; // Initial/reference color at the time of opening the color picker. - bool DragCurrentAccumDirty; - float DragCurrentAccum; // Accumulator for dragging modification. Always high-precision, not rounded by end-user precision settings - float DragSpeedDefaultRatio; // If speed == 0.0f, uses (max-min) * DragSpeedDefaultRatio - float ScrollbarClickDeltaToGrabCenter; // Distance between mouse and center of grab box, normalized in parent space. Use storage? - int TooltipOverrideCount; - ImVector ClipboardHandlerData; // If no custom clipboard handler is defined - ImVector MenusIdSubmittedThisFrame; // A list of menu IDs that were rendered at least once - - // Platform support - ImVec2 PlatformImePos; // Cursor position request & last passed to the OS Input Method Editor - ImVec2 PlatformImeLastPos; - - // Settings - bool SettingsLoaded; - float SettingsDirtyTimer; // Save .ini Settings to memory when time reaches zero - ImGuiTextBuffer SettingsIniData; // In memory .ini settings - ImVector SettingsHandlers; // List of .ini settings handlers - ImChunkStream SettingsWindows; // ImGuiWindow .ini settings entries - - // Capture/Logging - bool LogEnabled; - ImGuiLogType LogType; - ImFileHandle LogFile; // If != NULL log to stdout/ file - ImGuiTextBuffer LogBuffer; // Accumulation buffer when log to clipboard. This is pointer so our GImGui static constructor doesn't call heap allocators. - float LogLinePosY; - bool LogLineFirstItem; - int LogDepthRef; - int LogDepthToExpand; - int LogDepthToExpandDefault; // Default/stored value for LogDepthMaxExpand if not specified in the LogXXX function call. - - // Debug Tools - bool DebugItemPickerActive; - ImGuiID DebugItemPickerBreakId; // Will call IM_DEBUG_BREAK() when encountering this id - - // Misc - float FramerateSecPerFrame[120]; // Calculate estimate of framerate for user over the last 2 seconds. - int FramerateSecPerFrameIdx; - float FramerateSecPerFrameAccum; - int WantCaptureMouseNextFrame; // Explicit capture via CaptureKeyboardFromApp()/CaptureMouseFromApp() sets those flags - int WantCaptureKeyboardNextFrame; - int WantTextInputNextFrame; - char TempBuffer[1024*3+1]; // Temporary text buffer - - ImGuiContext(ImFontAtlas* shared_font_atlas) : BackgroundDrawList(&DrawListSharedData), ForegroundDrawList(&DrawListSharedData) - { - Initialized = false; - Font = NULL; - FontSize = FontBaseSize = 0.0f; - FontAtlasOwnedByContext = shared_font_atlas ? false : true; - IO.Fonts = shared_font_atlas ? shared_font_atlas : IM_NEW(ImFontAtlas)(); - Time = 0.0f; - FrameCount = 0; - FrameCountEnded = FrameCountRendered = -1; - WithinFrameScope = WithinFrameScopeWithImplicitWindow = WithinEndChild = false; - - WindowsActiveCount = 0; - CurrentWindow = NULL; - HoveredWindow = NULL; - HoveredRootWindow = NULL; - MovingWindow = NULL; - WheelingWindow = NULL; - WheelingWindowTimer = 0.0f; - - HoveredId = 0; - HoveredIdAllowOverlap = false; - HoveredIdPreviousFrame = 0; - HoveredIdTimer = HoveredIdNotActiveTimer = 0.0f; - ActiveId = 0; - ActiveIdIsAlive = 0; - ActiveIdTimer = 0.0f; - ActiveIdIsJustActivated = false; - ActiveIdAllowOverlap = false; - ActiveIdHasBeenPressedBefore = false; - ActiveIdHasBeenEditedBefore = false; - ActiveIdHasBeenEditedThisFrame = false; - ActiveIdUsingNavDirMask = 0x00; - ActiveIdUsingNavInputMask = 0x00; - ActiveIdUsingKeyInputMask = 0x00; - ActiveIdClickOffset = ImVec2(-1,-1); - ActiveIdWindow = NULL; - ActiveIdSource = ImGuiInputSource_None; - ActiveIdMouseButton = 0; - ActiveIdPreviousFrame = 0; - ActiveIdPreviousFrameIsAlive = false; - ActiveIdPreviousFrameHasBeenEditedBefore = false; - ActiveIdPreviousFrameWindow = NULL; - LastActiveId = 0; - LastActiveIdTimer = 0.0f; - - NavWindow = NULL; - NavId = NavFocusScopeId = NavActivateId = NavActivateDownId = NavActivatePressedId = NavInputId = 0; - NavJustTabbedId = NavJustMovedToId = NavJustMovedToFocusScopeId = NavNextActivateId = 0; - NavJustMovedToKeyMods = ImGuiKeyModFlags_None; - NavInputSource = ImGuiInputSource_None; - NavScoringRect = ImRect(); - NavScoringCount = 0; - NavLayer = ImGuiNavLayer_Main; - NavIdTabCounter = INT_MAX; - NavIdIsAlive = false; - NavMousePosDirty = false; - NavDisableHighlight = true; - NavDisableMouseHover = false; - NavAnyRequest = false; - NavInitRequest = false; - NavInitRequestFromMove = false; - NavInitResultId = 0; - NavMoveFromClampedRefRect = false; - NavMoveRequest = false; - NavMoveRequestFlags = ImGuiNavMoveFlags_None; - NavMoveRequestForward = ImGuiNavForward_None; - NavMoveRequestKeyMods = ImGuiKeyModFlags_None; - NavMoveDir = NavMoveDirLast = NavMoveClipDir = ImGuiDir_None; - - NavWindowingTarget = NavWindowingTargetAnim = NavWindowingList = NULL; - NavWindowingTimer = NavWindowingHighlightAlpha = 0.0f; - NavWindowingToggleLayer = false; - - FocusRequestCurrWindow = FocusRequestNextWindow = NULL; - FocusRequestCurrCounterRegular = FocusRequestCurrCounterTabStop = INT_MAX; - FocusRequestNextCounterRegular = FocusRequestNextCounterTabStop = INT_MAX; - FocusTabPressed = false; - - DimBgRatio = 0.0f; - BackgroundDrawList._OwnerName = "##Background"; // Give it a name for debugging - ForegroundDrawList._OwnerName = "##Foreground"; // Give it a name for debugging - MouseCursor = ImGuiMouseCursor_Arrow; - - DragDropActive = DragDropWithinSource = DragDropWithinTarget = false; - DragDropSourceFlags = ImGuiDragDropFlags_None; - DragDropSourceFrameCount = -1; - DragDropMouseButton = -1; - DragDropTargetId = 0; - DragDropAcceptFlags = ImGuiDragDropFlags_None; - DragDropAcceptIdCurrRectSurface = 0.0f; - DragDropAcceptIdPrev = DragDropAcceptIdCurr = 0; - DragDropAcceptFrameCount = -1; - memset(DragDropPayloadBufLocal, 0, sizeof(DragDropPayloadBufLocal)); - - CurrentTabBar = NULL; - - LastValidMousePos = ImVec2(0.0f, 0.0f); - TempInputId = 0; - ColorEditOptions = ImGuiColorEditFlags__OptionsDefault; - ColorEditLastHue = ColorEditLastSat = 0.0f; - ColorEditLastColor[0] = ColorEditLastColor[1] = ColorEditLastColor[2] = FLT_MAX; - DragCurrentAccumDirty = false; - DragCurrentAccum = 0.0f; - DragSpeedDefaultRatio = 1.0f / 100.0f; - ScrollbarClickDeltaToGrabCenter = 0.0f; - TooltipOverrideCount = 0; - - PlatformImePos = PlatformImeLastPos = ImVec2(FLT_MAX, FLT_MAX); - - SettingsLoaded = false; - SettingsDirtyTimer = 0.0f; - - LogEnabled = false; - LogType = ImGuiLogType_None; - LogFile = NULL; - LogLinePosY = FLT_MAX; - LogLineFirstItem = false; - LogDepthRef = 0; - LogDepthToExpand = LogDepthToExpandDefault = 2; - - DebugItemPickerActive = false; - DebugItemPickerBreakId = 0; - - memset(FramerateSecPerFrame, 0, sizeof(FramerateSecPerFrame)); - FramerateSecPerFrameIdx = 0; - FramerateSecPerFrameAccum = 0.0f; - WantCaptureMouseNextFrame = WantCaptureKeyboardNextFrame = WantTextInputNextFrame = -1; - memset(TempBuffer, 0, sizeof(TempBuffer)); - } -}; - -//----------------------------------------------------------------------------- -// ImGuiWindow -//----------------------------------------------------------------------------- - -// Transient per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the DC variable name in ImGuiWindow. -// FIXME: That's theory, in practice the delimitation between ImGuiWindow and ImGuiWindowTempData is quite tenuous and could be reconsidered. -struct IMGUI_API ImGuiWindowTempData -{ - // Layout - ImVec2 CursorPos; // Current emitting position, in absolute coordinates. - ImVec2 CursorPosPrevLine; - ImVec2 CursorStartPos; // Initial position after Begin(), generally ~ window position + WindowPadding. - ImVec2 CursorMaxPos; // Used to implicitly calculate the size of our contents, always growing during the frame. Used to calculate window->ContentSize at the beginning of next frame - ImVec2 CurrLineSize; - ImVec2 PrevLineSize; - float CurrLineTextBaseOffset; // Baseline offset (0.0f by default on a new line, generally == style.FramePadding.y when a framed item has been added). - float PrevLineTextBaseOffset; - ImVec1 Indent; // Indentation / start position from left of window (increased by TreePush/TreePop, etc.) - ImVec1 ColumnsOffset; // Offset to the current column (if ColumnsCurrent > 0). FIXME: This and the above should be a stack to allow use cases like Tree->Column->Tree. Need revamp columns API. - ImVec1 GroupOffset; - - // Last item status - ImGuiID LastItemId; // ID for last item - ImGuiItemStatusFlags LastItemStatusFlags; // Status flags for last item (see ImGuiItemStatusFlags_) - ImRect LastItemRect; // Interaction rect for last item - ImRect LastItemDisplayRect; // End-user display rect for last item (only valid if LastItemStatusFlags & ImGuiItemStatusFlags_HasDisplayRect) - - // Keyboard/Gamepad navigation - ImGuiNavLayer NavLayerCurrent; // Current layer, 0..31 (we currently only use 0..1) - int NavLayerCurrentMask; // = (1 << NavLayerCurrent) used by ItemAdd prior to clipping. - int NavLayerActiveMask; // Which layer have been written to (result from previous frame) - int NavLayerActiveMaskNext; // Which layer have been written to (buffer for current frame) - ImGuiID NavFocusScopeIdCurrent; // Current focus scope ID while appending - bool NavHideHighlightOneFrame; - bool NavHasScroll; // Set when scrolling can be used (ScrollMax > 0.0f) - - // Miscellaneous - bool MenuBarAppending; // FIXME: Remove this - ImVec2 MenuBarOffset; // MenuBarOffset.x is sort of equivalent of a per-layer CursorPos.x, saved/restored as we switch to the menu bar. The only situation when MenuBarOffset.y is > 0 if when (SafeAreaPadding.y > FramePadding.y), often used on TVs. - ImGuiMenuColumns MenuColumns; // Simplified columns storage for menu items measurement - int TreeDepth; // Current tree depth. - ImU32 TreeJumpToParentOnPopMask; // Store a copy of !g.NavIdIsAlive for TreeDepth 0..31.. Could be turned into a ImU64 if necessary. - ImVector ChildWindows; - ImGuiStorage* StateStorage; // Current persistent per-window storage (store e.g. tree node open/close state) - ImGuiColumns* CurrentColumns; // Current columns set - ImGuiLayoutType LayoutType; - ImGuiLayoutType ParentLayoutType; // Layout type of parent window at the time of Begin() - int FocusCounterRegular; // (Legacy Focus/Tabbing system) Sequential counter, start at -1 and increase as assigned via FocusableItemRegister() (FIXME-NAV: Needs redesign) - int FocusCounterTabStop; // (Legacy Focus/Tabbing system) Same, but only count widgets which you can Tab through. - - // Local parameters stacks - // We store the current settings outside of the vectors to increase memory locality (reduce cache misses). The vectors are rarely modified. Also it allows us to not heap allocate for short-lived windows which are not using those settings. - ImGuiItemFlags ItemFlags; // == ItemFlagsStack.back() [empty == ImGuiItemFlags_Default] - float ItemWidth; // == ItemWidthStack.back(). 0.0: default, >0.0: width in pixels, <0.0: align xx pixels to the right of window - float TextWrapPos; // == TextWrapPosStack.back() [empty == -1.0f] - ImVectorItemFlagsStack; - ImVector ItemWidthStack; - ImVector TextWrapPosStack; - ImVectorGroupStack; - short StackSizesBackup[6]; // Store size of various stacks for asserting - - ImGuiWindowTempData() - { - CursorPos = CursorPosPrevLine = CursorStartPos = CursorMaxPos = ImVec2(0.0f, 0.0f); - CurrLineSize = PrevLineSize = ImVec2(0.0f, 0.0f); - CurrLineTextBaseOffset = PrevLineTextBaseOffset = 0.0f; - Indent = ImVec1(0.0f); - ColumnsOffset = ImVec1(0.0f); - GroupOffset = ImVec1(0.0f); - - LastItemId = 0; - LastItemStatusFlags = ImGuiItemStatusFlags_None; - LastItemRect = LastItemDisplayRect = ImRect(); - - NavLayerActiveMask = NavLayerActiveMaskNext = 0x00; - NavLayerCurrent = ImGuiNavLayer_Main; - NavLayerCurrentMask = (1 << ImGuiNavLayer_Main); - NavFocusScopeIdCurrent = 0; - NavHideHighlightOneFrame = false; - NavHasScroll = false; - - MenuBarAppending = false; - MenuBarOffset = ImVec2(0.0f, 0.0f); - TreeDepth = 0; - TreeJumpToParentOnPopMask = 0x00; - StateStorage = NULL; - CurrentColumns = NULL; - LayoutType = ParentLayoutType = ImGuiLayoutType_Vertical; - FocusCounterRegular = FocusCounterTabStop = -1; - - ItemFlags = ImGuiItemFlags_Default_; - ItemWidth = 0.0f; - TextWrapPos = -1.0f; - memset(StackSizesBackup, 0, sizeof(StackSizesBackup)); - } -}; - -// Storage for one window -struct IMGUI_API ImGuiWindow -{ - char* Name; // Window name, owned by the window. - ImGuiID ID; // == ImHashStr(Name) - ImGuiWindowFlags Flags; // See enum ImGuiWindowFlags_ - ImVec2 Pos; // Position (always rounded-up to nearest pixel) - ImVec2 Size; // Current size (==SizeFull or collapsed title bar size) - ImVec2 SizeFull; // Size when non collapsed - ImVec2 ContentSize; // Size of contents/scrollable client area (calculated from the extents reach of the cursor) from previous frame. Does not include window decoration or window padding. - ImVec2 ContentSizeExplicit; // Size of contents/scrollable client area explicitly request by the user via SetNextWindowContentSize(). - ImVec2 WindowPadding; // Window padding at the time of Begin(). - float WindowRounding; // Window rounding at the time of Begin(). - float WindowBorderSize; // Window border size at the time of Begin(). - int NameBufLen; // Size of buffer storing Name. May be larger than strlen(Name)! - ImGuiID MoveId; // == window->GetID("#MOVE") - ImGuiID ChildId; // ID of corresponding item in parent window (for navigation to return from child window to parent window) - ImVec2 Scroll; - ImVec2 ScrollMax; - ImVec2 ScrollTarget; // target scroll position. stored as cursor position with scrolling canceled out, so the highest point is always 0.0f. (FLT_MAX for no change) - ImVec2 ScrollTargetCenterRatio; // 0.0f = scroll so that target position is at top, 0.5f = scroll so that target position is centered - ImVec2 ScrollbarSizes; // Size taken by each scrollbars on their smaller axis. Pay attention! ScrollbarSizes.x == width of the vertical scrollbar, ScrollbarSizes.y = height of the horizontal scrollbar. - bool ScrollbarX, ScrollbarY; // Are scrollbars visible? - bool Active; // Set to true on Begin(), unless Collapsed - bool WasActive; - bool WriteAccessed; // Set to true when any widget access the current window - bool Collapsed; // Set when collapsing window to become only title-bar - bool WantCollapseToggle; - bool SkipItems; // Set when items can safely be all clipped (e.g. window not visible or collapsed) - bool Appearing; // Set during the frame where the window is appearing (or re-appearing) - bool Hidden; // Do not display (== (HiddenFrames*** > 0)) - bool IsFallbackWindow; // Set on the "Debug##Default" window. - bool HasCloseButton; // Set when the window has a close button (p_open != NULL) - signed char ResizeBorderHeld; // Current border being held for resize (-1: none, otherwise 0-3) - short BeginCount; // Number of Begin() during the current frame (generally 0 or 1, 1+ if appending via multiple Begin/End pairs) - short BeginOrderWithinParent; // Order within immediate parent window, if we are a child window. Otherwise 0. - short BeginOrderWithinContext; // Order within entire imgui context. This is mostly used for debugging submission order related issues. - ImGuiID PopupId; // ID in the popup stack when this window is used as a popup/menu (because we use generic Name/ID for recycling) - ImS8 AutoFitFramesX, AutoFitFramesY; - ImS8 AutoFitChildAxises; - bool AutoFitOnlyGrows; - ImGuiDir AutoPosLastDirection; - int HiddenFramesCanSkipItems; // Hide the window for N frames - int HiddenFramesCannotSkipItems; // Hide the window for N frames while allowing items to be submitted so we can measure their size - ImGuiCond SetWindowPosAllowFlags; // store acceptable condition flags for SetNextWindowPos() use. - ImGuiCond SetWindowSizeAllowFlags; // store acceptable condition flags for SetNextWindowSize() use. - ImGuiCond SetWindowCollapsedAllowFlags; // store acceptable condition flags for SetNextWindowCollapsed() use. - ImVec2 SetWindowPosVal; // store window position when using a non-zero Pivot (position set needs to be processed when we know the window size) - ImVec2 SetWindowPosPivot; // store window pivot for positioning. ImVec2(0,0) when positioning from top-left corner; ImVec2(0.5f,0.5f) for centering; ImVec2(1,1) for bottom right. - - ImVector IDStack; // ID stack. ID are hashes seeded with the value at the top of the stack. (In theory this should be in the TempData structure) - ImGuiWindowTempData DC; // Temporary per-window data, reset at the beginning of the frame. This used to be called ImGuiDrawContext, hence the "DC" variable name. - - // The best way to understand what those rectangles are is to use the 'Metrics -> Tools -> Show windows rectangles' viewer. - // The main 'OuterRect', omitted as a field, is window->Rect(). - ImRect OuterRectClipped; // == Window->Rect() just after setup in Begin(). == window->Rect() for root window. - ImRect InnerRect; // Inner rectangle (omit title bar, menu bar, scroll bar) - ImRect InnerClipRect; // == InnerRect shrunk by WindowPadding*0.5f on each side, clipped within viewport or parent clip rect. - ImRect WorkRect; // Cover the whole scrolling region, shrunk by WindowPadding*1.0f on each side. This is meant to replace ContentRegionRect over time (from 1.71+ onward). - ImRect ClipRect; // Current clipping/scissoring rectangle, evolve as we are using PushClipRect(), etc. == DrawList->clip_rect_stack.back(). - ImRect ContentRegionRect; // FIXME: This is currently confusing/misleading. It is essentially WorkRect but not handling of scrolling. We currently rely on it as right/bottom aligned sizing operation need some size to rely on. - - int LastFrameActive; // Last frame number the window was Active. - float LastTimeActive; // Last timestamp the window was Active (using float as we don't need high precision there) - float ItemWidthDefault; - ImGuiStorage StateStorage; - ImVector ColumnsStorage; - float FontWindowScale; // User scale multiplier per-window, via SetWindowFontScale() - int SettingsOffset; // Offset into SettingsWindows[] (offsets are always valid as we only grow the array from the back) - - ImDrawList* DrawList; // == &DrawListInst (for backward compatibility reason with code using imgui_internal.h we keep this a pointer) - ImDrawList DrawListInst; - ImGuiWindow* ParentWindow; // If we are a child _or_ popup window, this is pointing to our parent. Otherwise NULL. - ImGuiWindow* RootWindow; // Point to ourself or first ancestor that is not a child window. - ImGuiWindow* RootWindowForTitleBarHighlight; // Point to ourself or first ancestor which will display TitleBgActive color when this window is active. - ImGuiWindow* RootWindowForNav; // Point to ourself or first ancestor which doesn't have the NavFlattened flag. - - ImGuiWindow* NavLastChildNavWindow; // When going to the menu bar, we remember the child window we came from. (This could probably be made implicit if we kept g.Windows sorted by last focused including child window.) - ImGuiID NavLastIds[ImGuiNavLayer_COUNT]; // Last known NavId for this window, per layer (0/1) - ImRect NavRectRel[ImGuiNavLayer_COUNT]; // Reference rectangle, in window relative space - - bool MemoryCompacted; - int MemoryDrawListIdxCapacity; - int MemoryDrawListVtxCapacity; - -public: - ImGuiWindow(ImGuiContext* context, const char* name); - ~ImGuiWindow(); - - ImGuiID GetID(const char* str, const char* str_end = NULL); - ImGuiID GetID(const void* ptr); - ImGuiID GetID(int n); - ImGuiID GetIDNoKeepAlive(const char* str, const char* str_end = NULL); - ImGuiID GetIDNoKeepAlive(const void* ptr); - ImGuiID GetIDNoKeepAlive(int n); - ImGuiID GetIDFromRectangle(const ImRect& r_abs); - - // We don't use g.FontSize because the window may be != g.CurrentWidow. - ImRect Rect() const { return ImRect(Pos.x, Pos.y, Pos.x+Size.x, Pos.y+Size.y); } - float CalcFontSize() const { ImGuiContext& g = *GImGui; float scale = g.FontBaseSize * FontWindowScale; if (ParentWindow) scale *= ParentWindow->FontWindowScale; return scale; } - float TitleBarHeight() const { ImGuiContext& g = *GImGui; return (Flags & ImGuiWindowFlags_NoTitleBar) ? 0.0f : CalcFontSize() + g.Style.FramePadding.y * 2.0f; } - ImRect TitleBarRect() const { return ImRect(Pos, ImVec2(Pos.x + SizeFull.x, Pos.y + TitleBarHeight())); } - float MenuBarHeight() const { ImGuiContext& g = *GImGui; return (Flags & ImGuiWindowFlags_MenuBar) ? DC.MenuBarOffset.y + CalcFontSize() + g.Style.FramePadding.y * 2.0f : 0.0f; } - ImRect MenuBarRect() const { float y1 = Pos.y + TitleBarHeight(); return ImRect(Pos.x, y1, Pos.x + SizeFull.x, y1 + MenuBarHeight()); } -}; - -// Backup and restore just enough data to be able to use IsItemHovered() on item A after another B in the same window has overwritten the data. -struct ImGuiItemHoveredDataBackup -{ - ImGuiID LastItemId; - ImGuiItemStatusFlags LastItemStatusFlags; - ImRect LastItemRect; - ImRect LastItemDisplayRect; - - ImGuiItemHoveredDataBackup() { Backup(); } - void Backup() { ImGuiWindow* window = GImGui->CurrentWindow; LastItemId = window->DC.LastItemId; LastItemStatusFlags = window->DC.LastItemStatusFlags; LastItemRect = window->DC.LastItemRect; LastItemDisplayRect = window->DC.LastItemDisplayRect; } - void Restore() const { ImGuiWindow* window = GImGui->CurrentWindow; window->DC.LastItemId = LastItemId; window->DC.LastItemStatusFlags = LastItemStatusFlags; window->DC.LastItemRect = LastItemRect; window->DC.LastItemDisplayRect = LastItemDisplayRect; } -}; - -//----------------------------------------------------------------------------- -// Tab bar, tab item -//----------------------------------------------------------------------------- - -// Extend ImGuiTabBarFlags_ -enum ImGuiTabBarFlagsPrivate_ -{ - ImGuiTabBarFlags_DockNode = 1 << 20, // Part of a dock node [we don't use this in the master branch but it facilitate branch syncing to keep this around] - ImGuiTabBarFlags_IsFocused = 1 << 21, - ImGuiTabBarFlags_SaveSettings = 1 << 22 // FIXME: Settings are handled by the docking system, this only request the tab bar to mark settings dirty when reordering tabs -}; - -// Extend ImGuiTabItemFlags_ -enum ImGuiTabItemFlagsPrivate_ -{ - ImGuiTabItemFlags_NoCloseButton = 1 << 20 // Track whether p_open was set or not (we'll need this info on the next frame to recompute ContentWidth during layout) -}; - -// Storage for one active tab item (sizeof() 26~32 bytes) -struct ImGuiTabItem -{ - ImGuiID ID; - ImGuiTabItemFlags Flags; - int LastFrameVisible; - int LastFrameSelected; // This allows us to infer an ordered list of the last activated tabs with little maintenance - int NameOffset; // When Window==NULL, offset to name within parent ImGuiTabBar::TabsNames - float Offset; // Position relative to beginning of tab - float Width; // Width currently displayed - float ContentWidth; // Width of actual contents, stored during BeginTabItem() call - - ImGuiTabItem() { ID = 0; Flags = ImGuiTabItemFlags_None; LastFrameVisible = LastFrameSelected = -1; NameOffset = -1; Offset = Width = ContentWidth = 0.0f; } -}; - -// Storage for a tab bar (sizeof() 92~96 bytes) -struct ImGuiTabBar -{ - ImVector Tabs; - ImGuiID ID; // Zero for tab-bars used by docking - ImGuiID SelectedTabId; // Selected tab/window - ImGuiID NextSelectedTabId; - ImGuiID VisibleTabId; // Can occasionally be != SelectedTabId (e.g. when previewing contents for CTRL+TAB preview) - int CurrFrameVisible; - int PrevFrameVisible; - ImRect BarRect; - float LastTabContentHeight; // Record the height of contents submitted below the tab bar - float OffsetMax; // Distance from BarRect.Min.x, locked during layout - float OffsetMaxIdeal; // Ideal offset if all tabs were visible and not clipped - float OffsetNextTab; // Distance from BarRect.Min.x, incremented with each BeginTabItem() call, not used if ImGuiTabBarFlags_Reorderable if set. - float ScrollingAnim; - float ScrollingTarget; - float ScrollingTargetDistToVisibility; - float ScrollingSpeed; - ImGuiTabBarFlags Flags; - ImGuiID ReorderRequestTabId; - ImS8 ReorderRequestDir; - bool WantLayout; - bool VisibleTabWasSubmitted; - short LastTabItemIdx; // For BeginTabItem()/EndTabItem() - ImVec2 FramePadding; // style.FramePadding locked at the time of BeginTabBar() - ImGuiTextBuffer TabsNames; // For non-docking tab bar we re-append names in a contiguous buffer. - - ImGuiTabBar(); - int GetTabOrder(const ImGuiTabItem* tab) const { return Tabs.index_from_ptr(tab); } - const char* GetTabName(const ImGuiTabItem* tab) const - { - IM_ASSERT(tab->NameOffset != -1 && tab->NameOffset < TabsNames.Buf.Size); - return TabsNames.Buf.Data + tab->NameOffset; - } -}; - -//----------------------------------------------------------------------------- -// Internal API -// No guarantee of forward compatibility here. -//----------------------------------------------------------------------------- - -namespace ImGui -{ - // Windows - // We should always have a CurrentWindow in the stack (there is an implicit "Debug" window) - // If this ever crash because g.CurrentWindow is NULL it means that either - // - ImGui::NewFrame() has never been called, which is illegal. - // - You are calling ImGui functions after ImGui::EndFrame()/ImGui::Render() and before the next ImGui::NewFrame(), which is also illegal. - inline ImGuiWindow* GetCurrentWindowRead() { ImGuiContext& g = *GImGui; return g.CurrentWindow; } - inline ImGuiWindow* GetCurrentWindow() { ImGuiContext& g = *GImGui; g.CurrentWindow->WriteAccessed = true; return g.CurrentWindow; } - IMGUI_API ImGuiWindow* FindWindowByID(ImGuiID id); - IMGUI_API ImGuiWindow* FindWindowByName(const char* name); - IMGUI_API void UpdateWindowParentAndRootLinks(ImGuiWindow* window, ImGuiWindowFlags flags, ImGuiWindow* parent_window); - IMGUI_API ImVec2 CalcWindowExpectedSize(ImGuiWindow* window); - IMGUI_API bool IsWindowChildOf(ImGuiWindow* window, ImGuiWindow* potential_parent); - IMGUI_API bool IsWindowNavFocusable(ImGuiWindow* window); - IMGUI_API ImRect GetWindowAllowedExtentRect(ImGuiWindow* window); - IMGUI_API void SetWindowPos(ImGuiWindow* window, const ImVec2& pos, ImGuiCond cond = 0); - IMGUI_API void SetWindowSize(ImGuiWindow* window, const ImVec2& size, ImGuiCond cond = 0); - IMGUI_API void SetWindowCollapsed(ImGuiWindow* window, bool collapsed, ImGuiCond cond = 0); - - // Windows: Display Order and Focus Order - IMGUI_API void FocusWindow(ImGuiWindow* window); - IMGUI_API void FocusTopMostWindowUnderOne(ImGuiWindow* under_this_window, ImGuiWindow* ignore_window); - IMGUI_API void BringWindowToFocusFront(ImGuiWindow* window); - IMGUI_API void BringWindowToDisplayFront(ImGuiWindow* window); - IMGUI_API void BringWindowToDisplayBack(ImGuiWindow* window); - - // Fonts, drawing - IMGUI_API void SetCurrentFont(ImFont* font); - inline ImFont* GetDefaultFont() { ImGuiContext& g = *GImGui; return g.IO.FontDefault ? g.IO.FontDefault : g.IO.Fonts->Fonts[0]; } - inline ImDrawList* GetForegroundDrawList(ImGuiWindow* window) { IM_UNUSED(window); ImGuiContext& g = *GImGui; return &g.ForegroundDrawList; } // This seemingly unnecessary wrapper simplifies compatibility between the 'master' and 'docking' branches. - - // Init - IMGUI_API void Initialize(ImGuiContext* context); - IMGUI_API void Shutdown(ImGuiContext* context); // Since 1.60 this is a _private_ function. You can call DestroyContext() to destroy the context created by CreateContext(). - - // NewFrame - IMGUI_API void UpdateHoveredWindowAndCaptureFlags(); - IMGUI_API void StartMouseMovingWindow(ImGuiWindow* window); - IMGUI_API void UpdateMouseMovingWindowNewFrame(); - IMGUI_API void UpdateMouseMovingWindowEndFrame(); - - // Settings - IMGUI_API void MarkIniSettingsDirty(); - IMGUI_API void MarkIniSettingsDirty(ImGuiWindow* window); - IMGUI_API ImGuiWindowSettings* CreateNewWindowSettings(const char* name); - IMGUI_API ImGuiWindowSettings* FindWindowSettings(ImGuiID id); - IMGUI_API ImGuiWindowSettings* FindOrCreateWindowSettings(const char* name); - IMGUI_API ImGuiSettingsHandler* FindSettingsHandler(const char* type_name); - - // Scrolling - IMGUI_API void SetScrollX(ImGuiWindow* window, float new_scroll_x); - IMGUI_API void SetScrollY(ImGuiWindow* window, float new_scroll_y); - IMGUI_API void SetScrollFromPosX(ImGuiWindow* window, float local_x, float center_x_ratio = 0.5f); - IMGUI_API void SetScrollFromPosY(ImGuiWindow* window, float local_y, float center_y_ratio = 0.5f); - IMGUI_API ImVec2 ScrollToBringRectIntoView(ImGuiWindow* window, const ImRect& item_rect); - - // Basic Accessors - inline ImGuiID GetItemID() { ImGuiContext& g = *GImGui; return g.CurrentWindow->DC.LastItemId; } - inline ImGuiItemStatusFlags GetItemStatusFlags() { ImGuiContext& g = *GImGui; return g.CurrentWindow->DC.LastItemStatusFlags; } - inline ImGuiID GetActiveID() { ImGuiContext& g = *GImGui; return g.ActiveId; } - inline ImGuiID GetFocusID() { ImGuiContext& g = *GImGui; return g.NavId; } - IMGUI_API void SetActiveID(ImGuiID id, ImGuiWindow* window); - IMGUI_API void SetFocusID(ImGuiID id, ImGuiWindow* window); - IMGUI_API void ClearActiveID(); - IMGUI_API ImGuiID GetHoveredID(); - IMGUI_API void SetHoveredID(ImGuiID id); - IMGUI_API void KeepAliveID(ImGuiID id); - IMGUI_API void MarkItemEdited(ImGuiID id); // Mark data associated to given item as "edited", used by IsItemDeactivatedAfterEdit() function. - IMGUI_API void PushOverrideID(ImGuiID id); // Push given value at the top of the ID stack (whereas PushID combines old and new hashes) - - // Basic Helpers for widget code - IMGUI_API void ItemSize(const ImVec2& size, float text_baseline_y = -1.0f); - IMGUI_API void ItemSize(const ImRect& bb, float text_baseline_y = -1.0f); - IMGUI_API bool ItemAdd(const ImRect& bb, ImGuiID id, const ImRect* nav_bb = NULL); - IMGUI_API bool ItemHoverable(const ImRect& bb, ImGuiID id); - IMGUI_API bool IsClippedEx(const ImRect& bb, ImGuiID id, bool clip_even_when_logged); - IMGUI_API bool FocusableItemRegister(ImGuiWindow* window, ImGuiID id); // Return true if focus is requested - IMGUI_API void FocusableItemUnregister(ImGuiWindow* window); - IMGUI_API ImVec2 CalcItemSize(ImVec2 size, float default_w, float default_h); - IMGUI_API float CalcWrapWidthForPos(const ImVec2& pos, float wrap_pos_x); - IMGUI_API void PushMultiItemsWidths(int components, float width_full); - IMGUI_API void PushItemFlag(ImGuiItemFlags option, bool enabled); - IMGUI_API void PopItemFlag(); - IMGUI_API bool IsItemToggledSelection(); // Was the last item selection toggled? (after Selectable(), TreeNode() etc. We only returns toggle _event_ in order to handle clipping correctly) - IMGUI_API ImVec2 GetContentRegionMaxAbs(); - IMGUI_API void ShrinkWidths(ImGuiShrinkWidthItem* items, int count, float width_excess); - - // Logging/Capture - IMGUI_API void LogBegin(ImGuiLogType type, int auto_open_depth); // -> BeginCapture() when we design v2 api, for now stay under the radar by using the old name. - IMGUI_API void LogToBuffer(int auto_open_depth = -1); // Start logging/capturing to internal buffer - - // Popups, Modals, Tooltips - IMGUI_API bool BeginChildEx(const char* name, ImGuiID id, const ImVec2& size_arg, bool border, ImGuiWindowFlags flags); - IMGUI_API void OpenPopupEx(ImGuiID id); - IMGUI_API void ClosePopupToLevel(int remaining, bool restore_focus_to_window_under_popup); - IMGUI_API void ClosePopupsOverWindow(ImGuiWindow* ref_window, bool restore_focus_to_window_under_popup); - IMGUI_API bool IsPopupOpen(ImGuiID id); // Test for id within current popup stack level (currently begin-ed into); this doesn't scan the whole popup stack! - IMGUI_API bool BeginPopupEx(ImGuiID id, ImGuiWindowFlags extra_flags); - IMGUI_API void BeginTooltipEx(ImGuiWindowFlags extra_flags, ImGuiTooltipFlags tooltip_flags); - IMGUI_API ImGuiWindow* GetTopMostPopupModal(); - IMGUI_API ImVec2 FindBestWindowPosForPopup(ImGuiWindow* window); - IMGUI_API ImVec2 FindBestWindowPosForPopupEx(const ImVec2& ref_pos, const ImVec2& size, ImGuiDir* last_dir, const ImRect& r_outer, const ImRect& r_avoid, ImGuiPopupPositionPolicy policy = ImGuiPopupPositionPolicy_Default); - - // Navigation - IMGUI_API void NavInitWindow(ImGuiWindow* window, bool force_reinit); - IMGUI_API bool NavMoveRequestButNoResultYet(); - IMGUI_API void NavMoveRequestCancel(); - IMGUI_API void NavMoveRequestForward(ImGuiDir move_dir, ImGuiDir clip_dir, const ImRect& bb_rel, ImGuiNavMoveFlags move_flags); - IMGUI_API void NavMoveRequestTryWrapping(ImGuiWindow* window, ImGuiNavMoveFlags move_flags); - IMGUI_API float GetNavInputAmount(ImGuiNavInput n, ImGuiInputReadMode mode); - IMGUI_API ImVec2 GetNavInputAmount2d(ImGuiNavDirSourceFlags dir_sources, ImGuiInputReadMode mode, float slow_factor = 0.0f, float fast_factor = 0.0f); - IMGUI_API int CalcTypematicRepeatAmount(float t0, float t1, float repeat_delay, float repeat_rate); - IMGUI_API void ActivateItem(ImGuiID id); // Remotely activate a button, checkbox, tree node etc. given its unique ID. activation is queued and processed on the next frame when the item is encountered again. - IMGUI_API void SetNavID(ImGuiID id, int nav_layer, ImGuiID focus_scope_id); - IMGUI_API void SetNavIDWithRectRel(ImGuiID id, int nav_layer, ImGuiID focus_scope_id, const ImRect& rect_rel); - - // Focus scope (WIP) - IMGUI_API void PushFocusScope(ImGuiID id); // Note: this is storing in same stack as IDStack, so Push/Pop mismatch will be reported there. - IMGUI_API void PopFocusScope(); - inline ImGuiID GetFocusScopeID() { ImGuiContext& g = *GImGui; return g.NavFocusScopeId; } - - // Inputs - // FIXME: Eventually we should aim to move e.g. IsActiveIdUsingKey() into IsKeyXXX functions. - inline bool IsActiveIdUsingNavDir(ImGuiDir dir) { ImGuiContext& g = *GImGui; return (g.ActiveIdUsingNavDirMask & (1 << dir)) != 0; } - inline bool IsActiveIdUsingNavInput(ImGuiNavInput input) { ImGuiContext& g = *GImGui; return (g.ActiveIdUsingNavInputMask & (1 << input)) != 0; } - inline bool IsActiveIdUsingKey(ImGuiKey key) { ImGuiContext& g = *GImGui; IM_ASSERT(key < 64); return (g.ActiveIdUsingKeyInputMask & ((ImU64)1 << key)) != 0; } - IMGUI_API bool IsMouseDragPastThreshold(ImGuiMouseButton button, float lock_threshold = -1.0f); - inline bool IsKeyPressedMap(ImGuiKey key, bool repeat = true) { ImGuiContext& g = *GImGui; const int key_index = g.IO.KeyMap[key]; return (key_index >= 0) ? IsKeyPressed(key_index, repeat) : false; } - inline bool IsNavInputDown(ImGuiNavInput n) { ImGuiContext& g = *GImGui; return g.IO.NavInputs[n] > 0.0f; } - inline bool IsNavInputTest(ImGuiNavInput n, ImGuiInputReadMode rm) { return (GetNavInputAmount(n, rm) > 0.0f); } - IMGUI_API ImGuiKeyModFlags GetMergedKeyModFlags(); - - // Drag and Drop - IMGUI_API bool BeginDragDropTargetCustom(const ImRect& bb, ImGuiID id); - IMGUI_API void ClearDragDrop(); - IMGUI_API bool IsDragDropPayloadBeingAccepted(); - - // Internal Columns API (this is not exposed because we will encourage transitioning to the Tables api) - IMGUI_API void BeginColumns(const char* str_id, int count, ImGuiColumnsFlags flags = 0); // setup number of columns. use an identifier to distinguish multiple column sets. close with EndColumns(). - IMGUI_API void EndColumns(); // close columns - IMGUI_API void PushColumnClipRect(int column_index); - IMGUI_API void PushColumnsBackground(); - IMGUI_API void PopColumnsBackground(); - IMGUI_API ImGuiID GetColumnsID(const char* str_id, int count); - IMGUI_API ImGuiColumns* FindOrCreateColumns(ImGuiWindow* window, ImGuiID id); - IMGUI_API float GetColumnOffsetFromNorm(const ImGuiColumns* columns, float offset_norm); - IMGUI_API float GetColumnNormFromOffset(const ImGuiColumns* columns, float offset); - - // Tab Bars - IMGUI_API bool BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& bb, ImGuiTabBarFlags flags); - IMGUI_API ImGuiTabItem* TabBarFindTabByID(ImGuiTabBar* tab_bar, ImGuiID tab_id); - IMGUI_API void TabBarRemoveTab(ImGuiTabBar* tab_bar, ImGuiID tab_id); - IMGUI_API void TabBarCloseTab(ImGuiTabBar* tab_bar, ImGuiTabItem* tab); - IMGUI_API void TabBarQueueChangeTabOrder(ImGuiTabBar* tab_bar, const ImGuiTabItem* tab, int dir); - IMGUI_API bool TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, ImGuiTabItemFlags flags); - IMGUI_API ImVec2 TabItemCalcSize(const char* label, bool has_close_button); - IMGUI_API void TabItemBackground(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImU32 col); - IMGUI_API bool TabItemLabelAndCloseButton(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImVec2 frame_padding, const char* label, ImGuiID tab_id, ImGuiID close_button_id); - - // Render helpers - // AVOID USING OUTSIDE OF IMGUI.CPP! NOT FOR PUBLIC CONSUMPTION. THOSE FUNCTIONS ARE A MESS. THEIR SIGNATURE AND BEHAVIOR WILL CHANGE, THEY NEED TO BE REFACTORED INTO SOMETHING DECENT. - // NB: All position are in absolute pixels coordinates (we are never using window coordinates internally) - IMGUI_API void RenderText(ImVec2 pos, const char* text, const char* text_end = NULL, bool hide_text_after_hash = true); - IMGUI_API void RenderTextWrapped(ImVec2 pos, const char* text, const char* text_end, float wrap_width); - IMGUI_API void RenderTextClipped(const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, const ImVec2& align = ImVec2(0,0), const ImRect* clip_rect = NULL); - IMGUI_API void RenderTextClippedEx(ImDrawList* draw_list, const ImVec2& pos_min, const ImVec2& pos_max, const char* text, const char* text_end, const ImVec2* text_size_if_known, const ImVec2& align = ImVec2(0, 0), const ImRect* clip_rect = NULL); - IMGUI_API void RenderTextEllipsis(ImDrawList* draw_list, const ImVec2& pos_min, const ImVec2& pos_max, float clip_max_x, float ellipsis_max_x, const char* text, const char* text_end, const ImVec2* text_size_if_known); - IMGUI_API void RenderFrame(ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, bool border = true, float rounding = 0.0f); - IMGUI_API void RenderFrameBorder(ImVec2 p_min, ImVec2 p_max, float rounding = 0.0f); - IMGUI_API void RenderColorRectWithAlphaCheckerboard(ImDrawList* draw_list, ImVec2 p_min, ImVec2 p_max, ImU32 fill_col, float grid_step, ImVec2 grid_off, float rounding = 0.0f, int rounding_corners_flags = ~0); - IMGUI_API void RenderNavHighlight(const ImRect& bb, ImGuiID id, ImGuiNavHighlightFlags flags = ImGuiNavHighlightFlags_TypeDefault); // Navigation highlight - IMGUI_API const char* FindRenderedTextEnd(const char* text, const char* text_end = NULL); // Find the optional ## from which we stop displaying text. - IMGUI_API void LogRenderedText(const ImVec2* ref_pos, const char* text, const char* text_end = NULL); - - // Render helpers (those functions don't access any ImGui state!) - IMGUI_API void RenderArrow(ImDrawList* draw_list, ImVec2 pos, ImU32 col, ImGuiDir dir, float scale = 1.0f); - IMGUI_API void RenderBullet(ImDrawList* draw_list, ImVec2 pos, ImU32 col); - IMGUI_API void RenderCheckMark(ImDrawList* draw_list, ImVec2 pos, ImU32 col, float sz); - IMGUI_API void RenderMouseCursor(ImDrawList* draw_list, ImVec2 pos, float scale, ImGuiMouseCursor mouse_cursor, ImU32 col_fill, ImU32 col_border, ImU32 col_shadow); - IMGUI_API void RenderArrowPointingAt(ImDrawList* draw_list, ImVec2 pos, ImVec2 half_sz, ImGuiDir direction, ImU32 col); - IMGUI_API void RenderRectFilledRangeH(ImDrawList* draw_list, const ImRect& rect, ImU32 col, float x_start_norm, float x_end_norm, float rounding); - -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - // [1.71: 2019/06/07: Updating prototypes of some of the internal functions. Leaving those for reference for a short while] - inline void RenderArrow(ImVec2 pos, ImGuiDir dir, float scale=1.0f) { ImGuiWindow* window = GetCurrentWindow(); RenderArrow(window->DrawList, pos, GetColorU32(ImGuiCol_Text), dir, scale); } - inline void RenderBullet(ImVec2 pos) { ImGuiWindow* window = GetCurrentWindow(); RenderBullet(window->DrawList, pos, GetColorU32(ImGuiCol_Text)); } -#endif - - // Widgets - IMGUI_API void TextEx(const char* text, const char* text_end = NULL, ImGuiTextFlags flags = 0); - IMGUI_API bool ButtonEx(const char* label, const ImVec2& size_arg = ImVec2(0,0), ImGuiButtonFlags flags = 0); - IMGUI_API bool CloseButton(ImGuiID id, const ImVec2& pos); - IMGUI_API bool CollapseButton(ImGuiID id, const ImVec2& pos); - IMGUI_API bool ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size_arg, ImGuiButtonFlags flags = 0); - IMGUI_API void Scrollbar(ImGuiAxis axis); - IMGUI_API bool ScrollbarEx(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float avail_v, float contents_v, ImDrawCornerFlags rounding_corners); - IMGUI_API ImRect GetWindowScrollbarRect(ImGuiWindow* window, ImGuiAxis axis); - IMGUI_API ImGuiID GetWindowScrollbarID(ImGuiWindow* window, ImGuiAxis axis); - IMGUI_API ImGuiID GetWindowResizeID(ImGuiWindow* window, int n); // 0..3: corners, 4..7: borders - IMGUI_API void SeparatorEx(ImGuiSeparatorFlags flags); - - // Widgets low-level behaviors - IMGUI_API bool ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, ImGuiButtonFlags flags = 0); - IMGUI_API bool DragBehavior(ImGuiID id, ImGuiDataType data_type, void* p_v, float v_speed, const void* p_min, const void* p_max, const char* format, float power, ImGuiDragFlags flags); - IMGUI_API bool SliderBehavior(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, void* p_v, const void* p_min, const void* p_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb); - IMGUI_API bool SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend = 0.0f, float hover_visibility_delay = 0.0f); - IMGUI_API bool TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* label, const char* label_end = NULL); - IMGUI_API bool TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags = 0); // Consume previous SetNextItemOpen() data, if any. May return true when logging - IMGUI_API void TreePushOverrideID(ImGuiID id); - - // Template functions are instantiated in imgui_widgets.cpp for a finite number of types. - // To use them externally (for custom widget) you may need an "extern template" statement in your code in order to link to existing instances and silence Clang warnings (see #2036). - // e.g. " extern template IMGUI_API float RoundScalarWithFormatT(const char* format, ImGuiDataType data_type, float v); " - template IMGUI_API bool DragBehaviorT(ImGuiDataType data_type, T* v, float v_speed, T v_min, T v_max, const char* format, float power, ImGuiDragFlags flags); - template IMGUI_API bool SliderBehaviorT(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, T* v, T v_min, T v_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb); - template IMGUI_API float SliderCalcRatioFromValueT(ImGuiDataType data_type, T v, T v_min, T v_max, float power, float linear_zero_pos); - template IMGUI_API T RoundScalarWithFormatT(const char* format, ImGuiDataType data_type, T v); - - // Data type helpers - IMGUI_API const ImGuiDataTypeInfo* DataTypeGetInfo(ImGuiDataType data_type); - IMGUI_API int DataTypeFormatString(char* buf, int buf_size, ImGuiDataType data_type, const void* p_data, const char* format); - IMGUI_API void DataTypeApplyOp(ImGuiDataType data_type, int op, void* output, void* arg_1, const void* arg_2); - IMGUI_API bool DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* p_data, const char* format); - - // InputText - IMGUI_API bool InputTextEx(const char* label, const char* hint, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback = NULL, void* user_data = NULL); - IMGUI_API bool TempInputText(const ImRect& bb, ImGuiID id, const char* label, char* buf, int buf_size, ImGuiInputTextFlags flags); - IMGUI_API bool TempInputScalar(const ImRect& bb, ImGuiID id, const char* label, ImGuiDataType data_type, void* p_data, const char* format); - inline bool TempInputIsActive(ImGuiID id) { ImGuiContext& g = *GImGui; return (g.ActiveId == id && g.TempInputId == id); } - inline ImGuiInputTextState* GetInputTextState(ImGuiID id) { ImGuiContext& g = *GImGui; return (g.InputTextState.ID == id) ? &g.InputTextState : NULL; } // Get input text state if active - - // Color - IMGUI_API void ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags flags); - IMGUI_API void ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags); - IMGUI_API void ColorPickerOptionsPopup(const float* ref_col, ImGuiColorEditFlags flags); - - // Plot - IMGUI_API int PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 frame_size); - - // Shade functions (write over already created vertices) - IMGUI_API void ShadeVertsLinearColorGradientKeepAlpha(ImDrawList* draw_list, int vert_start_idx, int vert_end_idx, ImVec2 gradient_p0, ImVec2 gradient_p1, ImU32 col0, ImU32 col1); - IMGUI_API void ShadeVertsLinearUV(ImDrawList* draw_list, int vert_start_idx, int vert_end_idx, const ImVec2& a, const ImVec2& b, const ImVec2& uv_a, const ImVec2& uv_b, bool clamp); - - // Garbage collection - IMGUI_API void GcCompactTransientWindowBuffers(ImGuiWindow* window); - IMGUI_API void GcAwakeTransientWindowBuffers(ImGuiWindow* window); - - // Debug Tools - inline void DebugDrawItemRect(ImU32 col = IM_COL32(255,0,0,255)) { ImGuiContext& g = *GImGui; ImGuiWindow* window = g.CurrentWindow; GetForegroundDrawList(window)->AddRect(window->DC.LastItemRect.Min, window->DC.LastItemRect.Max, col); } - inline void DebugStartItemPicker() { ImGuiContext& g = *GImGui; g.DebugItemPickerActive = true; } - -} // namespace ImGui - -// ImFontAtlas internals -IMGUI_API bool ImFontAtlasBuildWithStbTruetype(ImFontAtlas* atlas); -IMGUI_API void ImFontAtlasBuildInit(ImFontAtlas* atlas); -IMGUI_API void ImFontAtlasBuildSetupFont(ImFontAtlas* atlas, ImFont* font, ImFontConfig* font_config, float ascent, float descent); -IMGUI_API void ImFontAtlasBuildPackCustomRects(ImFontAtlas* atlas, void* stbrp_context_opaque); -IMGUI_API void ImFontAtlasBuildFinish(ImFontAtlas* atlas); -IMGUI_API void ImFontAtlasBuildMultiplyCalcLookupTable(unsigned char out_table[256], float in_multiply_factor); -IMGUI_API void ImFontAtlasBuildMultiplyRectAlpha8(const unsigned char table[256], unsigned char* pixels, int x, int y, int w, int h, int stride); - -// Debug Tools -// Use 'Metrics->Tools->Item Picker' to break into the call-stack of a specific item. -#ifndef IM_DEBUG_BREAK -#if defined(__clang__) -#define IM_DEBUG_BREAK() __builtin_debugtrap() -#elif defined (_MSC_VER) -#define IM_DEBUG_BREAK() __debugbreak() -#else -#define IM_DEBUG_BREAK() IM_ASSERT(0) // It is expected that you define IM_DEBUG_BREAK() into something that will break nicely in a debugger! -#endif -#endif // #ifndef IM_DEBUG_BREAK - -// Test Engine Hooks (imgui_tests) -//#define IMGUI_ENABLE_TEST_ENGINE -#ifdef IMGUI_ENABLE_TEST_ENGINE -extern void ImGuiTestEngineHook_PreNewFrame(ImGuiContext* ctx); -extern void ImGuiTestEngineHook_PostNewFrame(ImGuiContext* ctx); -extern void ImGuiTestEngineHook_ItemAdd(ImGuiContext* ctx, const ImRect& bb, ImGuiID id); -extern void ImGuiTestEngineHook_ItemInfo(ImGuiContext* ctx, ImGuiID id, const char* label, ImGuiItemStatusFlags flags); -extern void ImGuiTestEngineHook_Log(ImGuiContext* ctx, const char* fmt, ...); -#define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) ImGuiTestEngineHook_ItemAdd(&g, _BB, _ID) // Register item bounding box -#define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) ImGuiTestEngineHook_ItemInfo(&g, _ID, _LABEL, _FLAGS) // Register item label and status flags (optional) -#define IMGUI_TEST_ENGINE_LOG(_FMT, ...) ImGuiTestEngineHook_Log(&g, _FMT, __VA_ARGS__) // Custom log entry from user land into test log -#else -#define IMGUI_TEST_ENGINE_ITEM_ADD(_BB, _ID) do { } while (0) -#define IMGUI_TEST_ENGINE_ITEM_INFO(_ID, _LABEL, _FLAGS) do { } while (0) -#define IMGUI_TEST_ENGINE_LOG(_FMT, ...) do { } while (0) -#endif - -#if defined(__clang__) -#pragma clang diagnostic pop -#elif defined(__GNUC__) -#pragma GCC diagnostic pop -#endif - -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -#endif // #ifndef IMGUI_DISABLE diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_widgets.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_widgets.cpp deleted file mode 100644 index 27d9e455..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imgui_widgets.cpp +++ /dev/null @@ -1,7736 +0,0 @@ -// dear imgui, v1.76 -// (widgets code) - -/* - -Index of this file: - -// [SECTION] Forward Declarations -// [SECTION] Widgets: Text, etc. -// [SECTION] Widgets: Main (Button, Image, Checkbox, RadioButton, ProgressBar, Bullet, etc.) -// [SECTION] Widgets: Low-level Layout helpers (Spacing, Dummy, NewLine, Separator, etc.) -// [SECTION] Widgets: ComboBox -// [SECTION] Data Type and Data Formatting Helpers -// [SECTION] Widgets: DragScalar, DragFloat, DragInt, etc. -// [SECTION] Widgets: SliderScalar, SliderFloat, SliderInt, etc. -// [SECTION] Widgets: InputScalar, InputFloat, InputInt, etc. -// [SECTION] Widgets: InputText, InputTextMultiline -// [SECTION] Widgets: ColorEdit, ColorPicker, ColorButton, etc. -// [SECTION] Widgets: TreeNode, CollapsingHeader, etc. -// [SECTION] Widgets: Selectable -// [SECTION] Widgets: ListBox -// [SECTION] Widgets: PlotLines, PlotHistogram -// [SECTION] Widgets: Value helpers -// [SECTION] Widgets: MenuItem, BeginMenu, EndMenu, etc. -// [SECTION] Widgets: BeginTabBar, EndTabBar, etc. -// [SECTION] Widgets: BeginTabItem, EndTabItem, etc. -// [SECTION] Widgets: Columns, BeginColumns, EndColumns, etc. - -*/ - -#if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_WARNINGS) -#define _CRT_SECURE_NO_WARNINGS -#endif - -#include "imgui.h" -#ifndef IMGUI_DISABLE - -#ifndef IMGUI_DEFINE_MATH_OPERATORS -#define IMGUI_DEFINE_MATH_OPERATORS -#endif -#include "imgui_internal.h" - -#include // toupper -#if defined(_MSC_VER) && _MSC_VER <= 1500 // MSVC 2008 or earlier -#include // intptr_t -#else -#include // intptr_t -#endif - -// Visual Studio warnings -#ifdef _MSC_VER -#pragma warning (disable: 4127) // condition expression is constant -#pragma warning (disable: 4996) // 'This function or variable may be unsafe': strcpy, strdup, sprintf, vsnprintf, sscanf, fopen -#if defined(_MSC_VER) && _MSC_VER >= 1922 // MSVC 2019 16.2 or later -#pragma warning (disable: 5054) // operator '|': deprecated between enumerations of different types -#endif -#endif - -// Clang/GCC warnings with -Weverything -#if defined(__clang__) -#pragma clang diagnostic ignored "-Wold-style-cast" // warning : use of old-style cast // yes, they are more terse. -#pragma clang diagnostic ignored "-Wfloat-equal" // warning : comparing floating point with == or != is unsafe // storing and comparing against same constants (typically 0.0f) is ok. -#pragma clang diagnostic ignored "-Wformat-nonliteral" // warning : format string is not a string literal // passing non-literal to vsnformat(). yes, user passing incorrect format strings can crash the code. -#pragma clang diagnostic ignored "-Wsign-conversion" // warning : implicit conversion changes signedness // -#if __has_warning("-Wzero-as-null-pointer-constant") -#pragma clang diagnostic ignored "-Wzero-as-null-pointer-constant" // warning : zero as null pointer constant // some standard header variations use #define NULL 0 -#endif -#if __has_warning("-Wdouble-promotion") -#pragma clang diagnostic ignored "-Wdouble-promotion" // warning: implicit conversion from 'float' to 'double' when passing argument to function // using printf() is a misery with this as C++ va_arg ellipsis changes float to double. -#endif -#if __has_warning("-Wdeprecated-enum-enum-conversion") -#pragma clang diagnostic ignored "-Wdeprecated-enum-enum-conversion" // warning: bitwise operation between different enumeration types ('XXXFlags_' and 'XXXFlagsPrivate_') is deprecated -#endif -#elif defined(__GNUC__) -#pragma GCC diagnostic ignored "-Wpragmas" // warning: unknown option after '#pragma GCC diagnostic' kind -#pragma GCC diagnostic ignored "-Wformat-nonliteral" // warning: format not a string literal, format string not checked -#pragma GCC diagnostic ignored "-Wclass-memaccess" // [__GNUC__ >= 8] warning: 'memset/memcpy' clearing/writing an object of type 'xxxx' with no trivial copy-assignment; use assignment or value-initialization instead -#endif - -//------------------------------------------------------------------------- -// Data -//------------------------------------------------------------------------- - -// Those MIN/MAX values are not define because we need to point to them -static const signed char IM_S8_MIN = -128; -static const signed char IM_S8_MAX = 127; -static const unsigned char IM_U8_MIN = 0; -static const unsigned char IM_U8_MAX = 0xFF; -static const signed short IM_S16_MIN = -32768; -static const signed short IM_S16_MAX = 32767; -static const unsigned short IM_U16_MIN = 0; -static const unsigned short IM_U16_MAX = 0xFFFF; -static const ImS32 IM_S32_MIN = INT_MIN; // (-2147483647 - 1), (0x80000000); -static const ImS32 IM_S32_MAX = INT_MAX; // (2147483647), (0x7FFFFFFF) -static const ImU32 IM_U32_MIN = 0; -static const ImU32 IM_U32_MAX = UINT_MAX; // (0xFFFFFFFF) -#ifdef LLONG_MIN -static const ImS64 IM_S64_MIN = LLONG_MIN; // (-9223372036854775807ll - 1ll); -static const ImS64 IM_S64_MAX = LLONG_MAX; // (9223372036854775807ll); -#else -static const ImS64 IM_S64_MIN = -9223372036854775807LL - 1; -static const ImS64 IM_S64_MAX = 9223372036854775807LL; -#endif -static const ImU64 IM_U64_MIN = 0; -#ifdef ULLONG_MAX -static const ImU64 IM_U64_MAX = ULLONG_MAX; // (0xFFFFFFFFFFFFFFFFull); -#else -static const ImU64 IM_U64_MAX = (2ULL * 9223372036854775807LL + 1); -#endif - -//------------------------------------------------------------------------- -// [SECTION] Forward Declarations -//------------------------------------------------------------------------- - -// For InputTextEx() -static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data); -static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end); -static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining = NULL, ImVec2* out_offset = NULL, bool stop_on_new_line = false); - -//------------------------------------------------------------------------- -// [SECTION] Widgets: Text, etc. -//------------------------------------------------------------------------- -// - TextEx() [Internal] -// - TextUnformatted() -// - Text() -// - TextV() -// - TextColored() -// - TextColoredV() -// - TextDisabled() -// - TextDisabledV() -// - TextWrapped() -// - TextWrappedV() -// - LabelText() -// - LabelTextV() -// - BulletText() -// - BulletTextV() -//------------------------------------------------------------------------- - -void ImGui::TextEx(const char* text, const char* text_end, ImGuiTextFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - IM_ASSERT(text != NULL); - const char* text_begin = text; - if (text_end == NULL) - text_end = text + strlen(text); // FIXME-OPT - - const ImVec2 text_pos(window->DC.CursorPos.x, window->DC.CursorPos.y + window->DC.CurrLineTextBaseOffset); - const float wrap_pos_x = window->DC.TextWrapPos; - const bool wrap_enabled = (wrap_pos_x >= 0.0f); - if (text_end - text > 2000 && !wrap_enabled) - { - // Long text! - // Perform manual coarse clipping to optimize for long multi-line text - // - From this point we will only compute the width of lines that are visible. Optimization only available when word-wrapping is disabled. - // - We also don't vertically center the text within the line full height, which is unlikely to matter because we are likely the biggest and only item on the line. - // - We use memchr(), pay attention that well optimized versions of those str/mem functions are much faster than a casually written loop. - const char* line = text; - const float line_height = GetTextLineHeight(); - ImVec2 text_size(0,0); - - // Lines to skip (can't skip when logging text) - ImVec2 pos = text_pos; - if (!g.LogEnabled) - { - int lines_skippable = (int)((window->ClipRect.Min.y - text_pos.y) / line_height); - if (lines_skippable > 0) - { - int lines_skipped = 0; - while (line < text_end && lines_skipped < lines_skippable) - { - const char* line_end = (const char*)memchr(line, '\n', text_end - line); - if (!line_end) - line_end = text_end; - if ((flags & ImGuiTextFlags_NoWidthForLargeClippedText) == 0) - text_size.x = ImMax(text_size.x, CalcTextSize(line, line_end).x); - line = line_end + 1; - lines_skipped++; - } - pos.y += lines_skipped * line_height; - } - } - - // Lines to render - if (line < text_end) - { - ImRect line_rect(pos, pos + ImVec2(FLT_MAX, line_height)); - while (line < text_end) - { - if (IsClippedEx(line_rect, 0, false)) - break; - - const char* line_end = (const char*)memchr(line, '\n', text_end - line); - if (!line_end) - line_end = text_end; - text_size.x = ImMax(text_size.x, CalcTextSize(line, line_end).x); - RenderText(pos, line, line_end, false); - line = line_end + 1; - line_rect.Min.y += line_height; - line_rect.Max.y += line_height; - pos.y += line_height; - } - - // Count remaining lines - int lines_skipped = 0; - while (line < text_end) - { - const char* line_end = (const char*)memchr(line, '\n', text_end - line); - if (!line_end) - line_end = text_end; - if ((flags & ImGuiTextFlags_NoWidthForLargeClippedText) == 0) - text_size.x = ImMax(text_size.x, CalcTextSize(line, line_end).x); - line = line_end + 1; - lines_skipped++; - } - pos.y += lines_skipped * line_height; - } - text_size.y = (pos - text_pos).y; - - ImRect bb(text_pos, text_pos + text_size); - ItemSize(text_size, 0.0f); - ItemAdd(bb, 0); - } - else - { - const float wrap_width = wrap_enabled ? CalcWrapWidthForPos(window->DC.CursorPos, wrap_pos_x) : 0.0f; - const ImVec2 text_size = CalcTextSize(text_begin, text_end, false, wrap_width); - - ImRect bb(text_pos, text_pos + text_size); - ItemSize(text_size, 0.0f); - if (!ItemAdd(bb, 0)) - return; - - // Render (we don't hide text after ## in this end-user function) - RenderTextWrapped(bb.Min, text_begin, text_end, wrap_width); - } -} - -void ImGui::TextUnformatted(const char* text, const char* text_end) -{ - TextEx(text, text_end, ImGuiTextFlags_NoWidthForLargeClippedText); -} - -void ImGui::Text(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextV(fmt, args); - va_end(args); -} - -void ImGui::TextV(const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - const char* text_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - TextEx(g.TempBuffer, text_end, ImGuiTextFlags_NoWidthForLargeClippedText); -} - -void ImGui::TextColored(const ImVec4& col, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextColoredV(col, fmt, args); - va_end(args); -} - -void ImGui::TextColoredV(const ImVec4& col, const char* fmt, va_list args) -{ - PushStyleColor(ImGuiCol_Text, col); - TextV(fmt, args); - PopStyleColor(); -} - -void ImGui::TextDisabled(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextDisabledV(fmt, args); - va_end(args); -} - -void ImGui::TextDisabledV(const char* fmt, va_list args) -{ - PushStyleColor(ImGuiCol_Text, GImGui->Style.Colors[ImGuiCol_TextDisabled]); - TextV(fmt, args); - PopStyleColor(); -} - -void ImGui::TextWrapped(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - TextWrappedV(fmt, args); - va_end(args); -} - -void ImGui::TextWrappedV(const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - bool need_backup = (window->DC.TextWrapPos < 0.0f); // Keep existing wrap position if one is already set - if (need_backup) - PushTextWrapPos(0.0f); - TextV(fmt, args); - if (need_backup) - PopTextWrapPos(); -} - -void ImGui::LabelText(const char* label, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - LabelTextV(label, fmt, args); - va_end(args); -} - -// Add a label+text combo aligned to other label+value widgets -void ImGui::LabelTextV(const char* label, const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const float w = CalcItemWidth(); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect value_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y + style.FramePadding.y*2)); - const ImRect total_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w + (label_size.x > 0.0f ? style.ItemInnerSpacing.x : 0.0f), style.FramePadding.y*2) + label_size); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, 0)) - return; - - // Render - const char* value_text_begin = &g.TempBuffer[0]; - const char* value_text_end = value_text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - RenderTextClipped(value_bb.Min, value_bb.Max, value_text_begin, value_text_end, NULL, ImVec2(0.0f,0.5f)); - if (label_size.x > 0.0f) - RenderText(ImVec2(value_bb.Max.x + style.ItemInnerSpacing.x, value_bb.Min.y + style.FramePadding.y), label); -} - -void ImGui::BulletText(const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - BulletTextV(fmt, args); - va_end(args); -} - -// Text with a little bullet aligned to the typical tree node. -void ImGui::BulletTextV(const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - - const char* text_begin = g.TempBuffer; - const char* text_end = text_begin + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - const ImVec2 label_size = CalcTextSize(text_begin, text_end, false); - const ImVec2 total_size = ImVec2(g.FontSize + (label_size.x > 0.0f ? (label_size.x + style.FramePadding.x * 2) : 0.0f), label_size.y); // Empty text doesn't add padding - ImVec2 pos = window->DC.CursorPos; - pos.y += window->DC.CurrLineTextBaseOffset; - ItemSize(total_size, 0.0f); - const ImRect bb(pos, pos + total_size); - if (!ItemAdd(bb, 0)) - return; - - // Render - ImU32 text_col = GetColorU32(ImGuiCol_Text); - RenderBullet(window->DrawList, bb.Min + ImVec2(style.FramePadding.x + g.FontSize*0.5f, g.FontSize*0.5f), text_col); - RenderText(bb.Min + ImVec2(g.FontSize + style.FramePadding.x * 2, 0.0f), text_begin, text_end, false); -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: Main -//------------------------------------------------------------------------- -// - ButtonBehavior() [Internal] -// - Button() -// - SmallButton() -// - InvisibleButton() -// - ArrowButton() -// - CloseButton() [Internal] -// - CollapseButton() [Internal] -// - GetWindowScrollbarID() [Internal] -// - GetWindowScrollbarRect() [Internal] -// - Scrollbar() [Internal] -// - ScrollbarEx() [Internal] -// - Image() -// - ImageButton() -// - Checkbox() -// - CheckboxFlags() -// - RadioButton() -// - ProgressBar() -// - Bullet() -//------------------------------------------------------------------------- - -// The ButtonBehavior() function is key to many interactions and used by many/most widgets. -// Because we handle so many cases (keyboard/gamepad navigation, drag and drop) and many specific behavior (via ImGuiButtonFlags_), -// this code is a little complex. -// By far the most common path is interacting with the Mouse using the default ImGuiButtonFlags_PressedOnClickRelease button behavior. -// See the series of events below and the corresponding state reported by dear imgui: -//------------------------------------------------------------------------------------------------------------------------------------------------ -// with PressedOnClickRelease: return-value IsItemHovered() IsItemActive() IsItemActivated() IsItemDeactivated() IsItemClicked() -// Frame N+0 (mouse is outside bb) - - - - - - -// Frame N+1 (mouse moves inside bb) - true - - - - -// Frame N+2 (mouse button is down) - true true true - true -// Frame N+3 (mouse button is down) - true true - - - -// Frame N+4 (mouse moves outside bb) - - true - - - -// Frame N+5 (mouse moves inside bb) - true true - - - -// Frame N+6 (mouse button is released) true true - - true - -// Frame N+7 (mouse button is released) - true - - - - -// Frame N+8 (mouse moves outside bb) - - - - - - -//------------------------------------------------------------------------------------------------------------------------------------------------ -// with PressedOnClick: return-value IsItemHovered() IsItemActive() IsItemActivated() IsItemDeactivated() IsItemClicked() -// Frame N+2 (mouse button is down) true true true true - true -// Frame N+3 (mouse button is down) - true true - - - -// Frame N+6 (mouse button is released) - true - - true - -// Frame N+7 (mouse button is released) - true - - - - -//------------------------------------------------------------------------------------------------------------------------------------------------ -// with PressedOnRelease: return-value IsItemHovered() IsItemActive() IsItemActivated() IsItemDeactivated() IsItemClicked() -// Frame N+2 (mouse button is down) - true - - - true -// Frame N+3 (mouse button is down) - true - - - - -// Frame N+6 (mouse button is released) true true - - - - -// Frame N+7 (mouse button is released) - true - - - - -//------------------------------------------------------------------------------------------------------------------------------------------------ -// with PressedOnDoubleClick: return-value IsItemHovered() IsItemActive() IsItemActivated() IsItemDeactivated() IsItemClicked() -// Frame N+0 (mouse button is down) - true - - - true -// Frame N+1 (mouse button is down) - true - - - - -// Frame N+2 (mouse button is released) - true - - - - -// Frame N+3 (mouse button is released) - true - - - - -// Frame N+4 (mouse button is down) true true true true - true -// Frame N+5 (mouse button is down) - true true - - - -// Frame N+6 (mouse button is released) - true - - true - -// Frame N+7 (mouse button is released) - true - - - - -//------------------------------------------------------------------------------------------------------------------------------------------------ -// Note that some combinations are supported, -// - PressedOnDragDropHold can generally be associated with any flag. -// - PressedOnDoubleClick can be associated by PressedOnClickRelease/PressedOnRelease, in which case the second release event won't be reported. -//------------------------------------------------------------------------------------------------------------------------------------------------ -// The behavior of the return-value changes when ImGuiButtonFlags_Repeat is set: -// Repeat+ Repeat+ Repeat+ Repeat+ -// PressedOnClickRelease PressedOnClick PressedOnRelease PressedOnDoubleClick -//------------------------------------------------------------------------------------------------------------------------------------------------- -// Frame N+0 (mouse button is down) - true - true -// ... - - - - -// Frame N + RepeatDelay true true - true -// ... - - - - -// Frame N + RepeatDelay + RepeatRate*N true true - true -//------------------------------------------------------------------------------------------------------------------------------------------------- - -bool ImGui::ButtonBehavior(const ImRect& bb, ImGuiID id, bool* out_hovered, bool* out_held, ImGuiButtonFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - if (flags & ImGuiButtonFlags_Disabled) - { - if (out_hovered) *out_hovered = false; - if (out_held) *out_held = false; - if (g.ActiveId == id) ClearActiveID(); - return false; - } - - // Default only reacts to left mouse button - if ((flags & ImGuiButtonFlags_MouseButtonMask_) == 0) - flags |= ImGuiButtonFlags_MouseButtonDefault_; - - // Default behavior requires click + release inside bounding box - if ((flags & ImGuiButtonFlags_PressedOnMask_) == 0) - flags |= ImGuiButtonFlags_PressedOnDefault_; - - ImGuiWindow* backup_hovered_window = g.HoveredWindow; - const bool flatten_hovered_children = (flags & ImGuiButtonFlags_FlattenChildren) && g.HoveredRootWindow == window; - if (flatten_hovered_children) - g.HoveredWindow = window; - -#ifdef IMGUI_ENABLE_TEST_ENGINE - if (id != 0 && window->DC.LastItemId != id) - ImGuiTestEngineHook_ItemAdd(&g, bb, id); -#endif - - bool pressed = false; - bool hovered = ItemHoverable(bb, id); - - // Drag source doesn't report as hovered - if (hovered && g.DragDropActive && g.DragDropPayload.SourceId == id && !(g.DragDropSourceFlags & ImGuiDragDropFlags_SourceNoDisableHover)) - hovered = false; - - // Special mode for Drag and Drop where holding button pressed for a long time while dragging another item triggers the button - if (g.DragDropActive && (flags & ImGuiButtonFlags_PressedOnDragDropHold) && !(g.DragDropSourceFlags & ImGuiDragDropFlags_SourceNoHoldToOpenOthers)) - if (IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByActiveItem)) - { - hovered = true; - SetHoveredID(id); - if (CalcTypematicRepeatAmount(g.HoveredIdTimer + 0.0001f - g.IO.DeltaTime, g.HoveredIdTimer + 0.0001f, 0.70f, 0.00f)) - { - pressed = true; - FocusWindow(window); - } - } - - if (flatten_hovered_children) - g.HoveredWindow = backup_hovered_window; - - // AllowOverlap mode (rarely used) requires previous frame HoveredId to be null or to match. This allows using patterns where a later submitted widget overlaps a previous one. - if (hovered && (flags & ImGuiButtonFlags_AllowItemOverlap) && (g.HoveredIdPreviousFrame != id && g.HoveredIdPreviousFrame != 0)) - hovered = false; - - // Mouse handling - if (hovered) - { - if (!(flags & ImGuiButtonFlags_NoKeyModifiers) || (!g.IO.KeyCtrl && !g.IO.KeyShift && !g.IO.KeyAlt)) - { - // Poll buttons - int mouse_button_clicked = -1; - int mouse_button_released = -1; - if ((flags & ImGuiButtonFlags_MouseButtonLeft) && g.IO.MouseClicked[0]) { mouse_button_clicked = 0; } - else if ((flags & ImGuiButtonFlags_MouseButtonRight) && g.IO.MouseClicked[1]) { mouse_button_clicked = 1; } - else if ((flags & ImGuiButtonFlags_MouseButtonMiddle) && g.IO.MouseClicked[2]) { mouse_button_clicked = 2; } - if ((flags & ImGuiButtonFlags_MouseButtonLeft) && g.IO.MouseReleased[0]) { mouse_button_released = 0; } - else if ((flags & ImGuiButtonFlags_MouseButtonRight) && g.IO.MouseReleased[1]) { mouse_button_released = 1; } - else if ((flags & ImGuiButtonFlags_MouseButtonMiddle) && g.IO.MouseReleased[2]) { mouse_button_released = 2; } - - if (mouse_button_clicked != -1 && g.ActiveId != id) - { - if (flags & (ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnClickReleaseAnywhere)) - { - SetActiveID(id, window); - g.ActiveIdMouseButton = mouse_button_clicked; - if (!(flags & ImGuiButtonFlags_NoNavFocus)) - SetFocusID(id, window); - FocusWindow(window); - } - if ((flags & ImGuiButtonFlags_PressedOnClick) || ((flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDoubleClicked[mouse_button_clicked])) - { - pressed = true; - if (flags & ImGuiButtonFlags_NoHoldingActiveId) - ClearActiveID(); - else - SetActiveID(id, window); // Hold on ID - g.ActiveIdMouseButton = mouse_button_clicked; - FocusWindow(window); - } - } - if ((flags & ImGuiButtonFlags_PressedOnRelease) && mouse_button_released != -1) - { - // Repeat mode trumps on release behavior - if (!((flags & ImGuiButtonFlags_Repeat) && g.IO.MouseDownDurationPrev[mouse_button_released] >= g.IO.KeyRepeatDelay)) - pressed = true; - ClearActiveID(); - } - - // 'Repeat' mode acts when held regardless of _PressedOn flags (see table above). - // Relies on repeat logic of IsMouseClicked() but we may as well do it ourselves if we end up exposing finer RepeatDelay/RepeatRate settings. - if (g.ActiveId == id && (flags & ImGuiButtonFlags_Repeat)) - if (g.IO.MouseDownDuration[g.ActiveIdMouseButton] > 0.0f && IsMouseClicked(g.ActiveIdMouseButton, true)) - pressed = true; - } - - if (pressed) - g.NavDisableHighlight = true; - } - - // Gamepad/Keyboard navigation - // We report navigated item as hovered but we don't set g.HoveredId to not interfere with mouse. - if (g.NavId == id && !g.NavDisableHighlight && g.NavDisableMouseHover && (g.ActiveId == 0 || g.ActiveId == id || g.ActiveId == window->MoveId)) - if (!(flags & ImGuiButtonFlags_NoHoveredOnFocus)) - hovered = true; - if (g.NavActivateDownId == id) - { - bool nav_activated_by_code = (g.NavActivateId == id); - bool nav_activated_by_inputs = IsNavInputTest(ImGuiNavInput_Activate, (flags & ImGuiButtonFlags_Repeat) ? ImGuiInputReadMode_Repeat : ImGuiInputReadMode_Pressed); - if (nav_activated_by_code || nav_activated_by_inputs) - pressed = true; - if (nav_activated_by_code || nav_activated_by_inputs || g.ActiveId == id) - { - // Set active id so it can be queried by user via IsItemActive(), equivalent of holding the mouse button. - g.NavActivateId = id; // This is so SetActiveId assign a Nav source - SetActiveID(id, window); - if ((nav_activated_by_code || nav_activated_by_inputs) && !(flags & ImGuiButtonFlags_NoNavFocus)) - SetFocusID(id, window); - } - } - - bool held = false; - if (g.ActiveId == id) - { - if (g.ActiveIdSource == ImGuiInputSource_Mouse) - { - if (g.ActiveIdIsJustActivated) - g.ActiveIdClickOffset = g.IO.MousePos - bb.Min; - - const int mouse_button = g.ActiveIdMouseButton; - IM_ASSERT(mouse_button >= 0 && mouse_button < ImGuiMouseButton_COUNT); - if (g.IO.MouseDown[mouse_button]) - { - held = true; - } - else - { - bool release_in = hovered && (flags & ImGuiButtonFlags_PressedOnClickRelease) != 0; - bool release_anywhere = (flags & ImGuiButtonFlags_PressedOnClickReleaseAnywhere) != 0; - if ((release_in || release_anywhere) && !g.DragDropActive) - { - bool is_double_click_release = (flags & ImGuiButtonFlags_PressedOnDoubleClick) && g.IO.MouseDownWasDoubleClick[mouse_button]; - bool is_repeating_already = (flags & ImGuiButtonFlags_Repeat) && g.IO.MouseDownDurationPrev[mouse_button] >= g.IO.KeyRepeatDelay; // Repeat mode trumps - if (!is_double_click_release && !is_repeating_already) - pressed = true; - } - ClearActiveID(); - } - if (!(flags & ImGuiButtonFlags_NoNavFocus)) - g.NavDisableHighlight = true; - } - else if (g.ActiveIdSource == ImGuiInputSource_Nav) - { - if (g.NavActivateDownId != id) - ClearActiveID(); - } - if (pressed) - g.ActiveIdHasBeenPressedBefore = true; - } - - if (out_hovered) *out_hovered = hovered; - if (out_held) *out_held = held; - - return pressed; -} - -bool ImGui::ButtonEx(const char* label, const ImVec2& size_arg, ImGuiButtonFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - - ImVec2 pos = window->DC.CursorPos; - if ((flags & ImGuiButtonFlags_AlignTextBaseLine) && style.FramePadding.y < window->DC.CurrLineTextBaseOffset) // Try to vertically align buttons that are smaller/have no padding so that text baseline matches (bit hacky, since it shouldn't be a flag) - pos.y += window->DC.CurrLineTextBaseOffset - style.FramePadding.y; - ImVec2 size = CalcItemSize(size_arg, label_size.x + style.FramePadding.x * 2.0f, label_size.y + style.FramePadding.y * 2.0f); - - const ImRect bb(pos, pos + size); - ItemSize(size, style.FramePadding.y); - if (!ItemAdd(bb, id)) - return false; - - if (window->DC.ItemFlags & ImGuiItemFlags_ButtonRepeat) - flags |= ImGuiButtonFlags_Repeat; - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags); - - // Render - const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); - RenderNavHighlight(bb, id); - RenderFrame(bb.Min, bb.Max, col, true, style.FrameRounding); - RenderTextClipped(bb.Min + style.FramePadding, bb.Max - style.FramePadding, label, NULL, &label_size, style.ButtonTextAlign, &bb); - - // Automatically close popups - //if (pressed && !(flags & ImGuiButtonFlags_DontClosePopups) && (window->Flags & ImGuiWindowFlags_Popup)) - // CloseCurrentPopup(); - - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.LastItemStatusFlags); - return pressed; -} - -bool ImGui::Button(const char* label, const ImVec2& size_arg) -{ - return ButtonEx(label, size_arg, 0); -} - -// Small buttons fits within text without additional vertical spacing. -bool ImGui::SmallButton(const char* label) -{ - ImGuiContext& g = *GImGui; - float backup_padding_y = g.Style.FramePadding.y; - g.Style.FramePadding.y = 0.0f; - bool pressed = ButtonEx(label, ImVec2(0, 0), ImGuiButtonFlags_AlignTextBaseLine); - g.Style.FramePadding.y = backup_padding_y; - return pressed; -} - -// Tip: use ImGui::PushID()/PopID() to push indices or pointers in the ID stack. -// Then you can keep 'str_id' empty or the same for all your buttons (instead of creating a string based on a non-string id) -bool ImGui::InvisibleButton(const char* str_id, const ImVec2& size_arg) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - // Cannot use zero-size for InvisibleButton(). Unlike Button() there is not way to fallback using the label size. - IM_ASSERT(size_arg.x != 0.0f && size_arg.y != 0.0f); - - const ImGuiID id = window->GetID(str_id); - ImVec2 size = CalcItemSize(size_arg, 0.0f, 0.0f); - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); - ItemSize(size); - if (!ItemAdd(bb, id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held); - - return pressed; -} - -bool ImGui::ArrowButtonEx(const char* str_id, ImGuiDir dir, ImVec2 size, ImGuiButtonFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiID id = window->GetID(str_id); - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); - const float default_size = GetFrameHeight(); - ItemSize(size, (size.y >= default_size) ? g.Style.FramePadding.y : -1.0f); - if (!ItemAdd(bb, id)) - return false; - - if (window->DC.ItemFlags & ImGuiItemFlags_ButtonRepeat) - flags |= ImGuiButtonFlags_Repeat; - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, flags); - - // Render - const ImU32 bg_col = GetColorU32((held && hovered) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); - const ImU32 text_col = GetColorU32(ImGuiCol_Text); - RenderNavHighlight(bb, id); - RenderFrame(bb.Min, bb.Max, bg_col, true, g.Style.FrameRounding); - RenderArrow(window->DrawList, bb.Min + ImVec2(ImMax(0.0f, (size.x - g.FontSize) * 0.5f), ImMax(0.0f, (size.y - g.FontSize) * 0.5f)), text_col, dir); - - return pressed; -} - -bool ImGui::ArrowButton(const char* str_id, ImGuiDir dir) -{ - float sz = GetFrameHeight(); - return ArrowButtonEx(str_id, dir, ImVec2(sz, sz), ImGuiButtonFlags_None); -} - -// Button to close a window -bool ImGui::CloseButton(ImGuiID id, const ImVec2& pos)//, float size) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - // We intentionally allow interaction when clipped so that a mechanical Alt,Right,Validate sequence close a window. - // (this isn't the regular behavior of buttons, but it doesn't affect the user much because navigation tends to keep items visible). - const ImRect bb(pos, pos + ImVec2(g.FontSize, g.FontSize) + g.Style.FramePadding * 2.0f); - bool is_clipped = !ItemAdd(bb, id); - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held); - if (is_clipped) - return pressed; - - // Render - ImU32 col = GetColorU32(held ? ImGuiCol_ButtonActive : ImGuiCol_ButtonHovered); - ImVec2 center = bb.GetCenter(); - if (hovered) - window->DrawList->AddCircleFilled(center, ImMax(2.0f, g.FontSize * 0.5f + 1.0f), col, 12); - - float cross_extent = g.FontSize * 0.5f * 0.7071f - 1.0f; - ImU32 cross_col = GetColorU32(ImGuiCol_Text); - center -= ImVec2(0.5f, 0.5f); - window->DrawList->AddLine(center + ImVec2(+cross_extent,+cross_extent), center + ImVec2(-cross_extent,-cross_extent), cross_col, 1.0f); - window->DrawList->AddLine(center + ImVec2(+cross_extent,-cross_extent), center + ImVec2(-cross_extent,+cross_extent), cross_col, 1.0f); - - return pressed; -} - -bool ImGui::CollapseButton(ImGuiID id, const ImVec2& pos) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - ImRect bb(pos, pos + ImVec2(g.FontSize, g.FontSize) + g.Style.FramePadding * 2.0f); - ItemAdd(bb, id); - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, ImGuiButtonFlags_None); - - // Render - ImU32 bg_col = GetColorU32((held && hovered) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); - ImU32 text_col = GetColorU32(ImGuiCol_Text); - ImVec2 center = bb.GetCenter(); - if (hovered || held) - window->DrawList->AddCircleFilled(center/*+ ImVec2(0.0f, -0.5f)*/, g.FontSize * 0.5f + 1.0f, bg_col, 12); - RenderArrow(window->DrawList, bb.Min + g.Style.FramePadding, text_col, window->Collapsed ? ImGuiDir_Right : ImGuiDir_Down, 1.0f); - - // Switch to moving the window after mouse is moved beyond the initial drag threshold - if (IsItemActive() && IsMouseDragging(0)) - StartMouseMovingWindow(window); - - return pressed; -} - -ImGuiID ImGui::GetWindowScrollbarID(ImGuiWindow* window, ImGuiAxis axis) -{ - return window->GetIDNoKeepAlive(axis == ImGuiAxis_X ? "#SCROLLX" : "#SCROLLY"); -} - -// Return scrollbar rectangle, must only be called for corresponding axis if window->ScrollbarX/Y is set. -ImRect ImGui::GetWindowScrollbarRect(ImGuiWindow* window, ImGuiAxis axis) -{ - const ImRect outer_rect = window->Rect(); - const ImRect inner_rect = window->InnerRect; - const float border_size = window->WindowBorderSize; - const float scrollbar_size = window->ScrollbarSizes[axis ^ 1]; // (ScrollbarSizes.x = width of Y scrollbar; ScrollbarSizes.y = height of X scrollbar) - IM_ASSERT(scrollbar_size > 0.0f); - if (axis == ImGuiAxis_X) - return ImRect(inner_rect.Min.x, ImMax(outer_rect.Min.y, outer_rect.Max.y - border_size - scrollbar_size), inner_rect.Max.x, outer_rect.Max.y); - else - return ImRect(ImMax(outer_rect.Min.x, outer_rect.Max.x - border_size - scrollbar_size), inner_rect.Min.y, outer_rect.Max.x, inner_rect.Max.y); -} - -void ImGui::Scrollbar(ImGuiAxis axis) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - const ImGuiID id = GetWindowScrollbarID(window, axis); - KeepAliveID(id); - - // Calculate scrollbar bounding box - ImRect bb = GetWindowScrollbarRect(window, axis); - ImDrawCornerFlags rounding_corners = 0; - if (axis == ImGuiAxis_X) - { - rounding_corners |= ImDrawCornerFlags_BotLeft; - if (!window->ScrollbarY) - rounding_corners |= ImDrawCornerFlags_BotRight; - } - else - { - if ((window->Flags & ImGuiWindowFlags_NoTitleBar) && !(window->Flags & ImGuiWindowFlags_MenuBar)) - rounding_corners |= ImDrawCornerFlags_TopRight; - if (!window->ScrollbarX) - rounding_corners |= ImDrawCornerFlags_BotRight; - } - float size_avail = window->InnerRect.Max[axis] - window->InnerRect.Min[axis]; - float size_contents = window->ContentSize[axis] + window->WindowPadding[axis] * 2.0f; - ScrollbarEx(bb, id, axis, &window->Scroll[axis], size_avail, size_contents, rounding_corners); -} - -// Vertical/Horizontal scrollbar -// The entire piece of code below is rather confusing because: -// - We handle absolute seeking (when first clicking outside the grab) and relative manipulation (afterward or when clicking inside the grab) -// - We store values as normalized ratio and in a form that allows the window content to change while we are holding on a scrollbar -// - We handle both horizontal and vertical scrollbars, which makes the terminology not ideal. -// Still, the code should probably be made simpler.. -bool ImGui::ScrollbarEx(const ImRect& bb_frame, ImGuiID id, ImGuiAxis axis, float* p_scroll_v, float size_avail_v, float size_contents_v, ImDrawCornerFlags rounding_corners) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return false; - - const float bb_frame_width = bb_frame.GetWidth(); - const float bb_frame_height = bb_frame.GetHeight(); - if (bb_frame_width <= 0.0f || bb_frame_height <= 0.0f) - return false; - - // When we are too small, start hiding and disabling the grab (this reduce visual noise on very small window and facilitate using the window resize grab) - float alpha = 1.0f; - if ((axis == ImGuiAxis_Y) && bb_frame_height < g.FontSize + g.Style.FramePadding.y * 2.0f) - alpha = ImSaturate((bb_frame_height - g.FontSize) / (g.Style.FramePadding.y * 2.0f)); - if (alpha <= 0.0f) - return false; - - const ImGuiStyle& style = g.Style; - const bool allow_interaction = (alpha >= 1.0f); - - ImRect bb = bb_frame; - bb.Expand(ImVec2(-ImClamp(IM_FLOOR((bb_frame_width - 2.0f) * 0.5f), 0.0f, 3.0f), -ImClamp(IM_FLOOR((bb_frame_height - 2.0f) * 0.5f), 0.0f, 3.0f))); - - // V denote the main, longer axis of the scrollbar (= height for a vertical scrollbar) - const float scrollbar_size_v = (axis == ImGuiAxis_X) ? bb.GetWidth() : bb.GetHeight(); - - // Calculate the height of our grabbable box. It generally represent the amount visible (vs the total scrollable amount) - // But we maintain a minimum size in pixel to allow for the user to still aim inside. - IM_ASSERT(ImMax(size_contents_v, size_avail_v) > 0.0f); // Adding this assert to check if the ImMax(XXX,1.0f) is still needed. PLEASE CONTACT ME if this triggers. - const float win_size_v = ImMax(ImMax(size_contents_v, size_avail_v), 1.0f); - const float grab_h_pixels = ImClamp(scrollbar_size_v * (size_avail_v / win_size_v), style.GrabMinSize, scrollbar_size_v); - const float grab_h_norm = grab_h_pixels / scrollbar_size_v; - - // Handle input right away. None of the code of Begin() is relying on scrolling position before calling Scrollbar(). - bool held = false; - bool hovered = false; - ButtonBehavior(bb, id, &hovered, &held, ImGuiButtonFlags_NoNavFocus); - - float scroll_max = ImMax(1.0f, size_contents_v - size_avail_v); - float scroll_ratio = ImSaturate(*p_scroll_v / scroll_max); - float grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v; // Grab position in normalized space - if (held && allow_interaction && grab_h_norm < 1.0f) - { - float scrollbar_pos_v = bb.Min[axis]; - float mouse_pos_v = g.IO.MousePos[axis]; - - // Click position in scrollbar normalized space (0.0f->1.0f) - const float clicked_v_norm = ImSaturate((mouse_pos_v - scrollbar_pos_v) / scrollbar_size_v); - SetHoveredID(id); - - bool seek_absolute = false; - if (g.ActiveIdIsJustActivated) - { - // On initial click calculate the distance between mouse and the center of the grab - seek_absolute = (clicked_v_norm < grab_v_norm || clicked_v_norm > grab_v_norm + grab_h_norm); - if (seek_absolute) - g.ScrollbarClickDeltaToGrabCenter = 0.0f; - else - g.ScrollbarClickDeltaToGrabCenter = clicked_v_norm - grab_v_norm - grab_h_norm * 0.5f; - } - - // Apply scroll (p_scroll_v will generally point on one member of window->Scroll) - // It is ok to modify Scroll here because we are being called in Begin() after the calculation of ContentSize and before setting up our starting position - const float scroll_v_norm = ImSaturate((clicked_v_norm - g.ScrollbarClickDeltaToGrabCenter - grab_h_norm * 0.5f) / (1.0f - grab_h_norm)); - *p_scroll_v = IM_ROUND(scroll_v_norm * scroll_max);//(win_size_contents_v - win_size_v)); - - // Update values for rendering - scroll_ratio = ImSaturate(*p_scroll_v / scroll_max); - grab_v_norm = scroll_ratio * (scrollbar_size_v - grab_h_pixels) / scrollbar_size_v; - - // Update distance to grab now that we have seeked and saturated - if (seek_absolute) - g.ScrollbarClickDeltaToGrabCenter = clicked_v_norm - grab_v_norm - grab_h_norm * 0.5f; - } - - // Render - const ImU32 bg_col = GetColorU32(ImGuiCol_ScrollbarBg); - const ImU32 grab_col = GetColorU32(held ? ImGuiCol_ScrollbarGrabActive : hovered ? ImGuiCol_ScrollbarGrabHovered : ImGuiCol_ScrollbarGrab, alpha); - window->DrawList->AddRectFilled(bb_frame.Min, bb_frame.Max, bg_col, window->WindowRounding, rounding_corners); - ImRect grab_rect; - if (axis == ImGuiAxis_X) - grab_rect = ImRect(ImLerp(bb.Min.x, bb.Max.x, grab_v_norm), bb.Min.y, ImLerp(bb.Min.x, bb.Max.x, grab_v_norm) + grab_h_pixels, bb.Max.y); - else - grab_rect = ImRect(bb.Min.x, ImLerp(bb.Min.y, bb.Max.y, grab_v_norm), bb.Max.x, ImLerp(bb.Min.y, bb.Max.y, grab_v_norm) + grab_h_pixels); - window->DrawList->AddRectFilled(grab_rect.Min, grab_rect.Max, grab_col, style.ScrollbarRounding); - - return held; -} - -void ImGui::Image(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, const ImVec4& tint_col, const ImVec4& border_col) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); - if (border_col.w > 0.0f) - bb.Max += ImVec2(2, 2); - ItemSize(bb); - if (!ItemAdd(bb, 0)) - return; - - if (border_col.w > 0.0f) - { - window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(border_col), 0.0f); - window->DrawList->AddImage(user_texture_id, bb.Min + ImVec2(1, 1), bb.Max - ImVec2(1, 1), uv0, uv1, GetColorU32(tint_col)); - } - else - { - window->DrawList->AddImage(user_texture_id, bb.Min, bb.Max, uv0, uv1, GetColorU32(tint_col)); - } -} - -// frame_padding < 0: uses FramePadding from style (default) -// frame_padding = 0: no framing -// frame_padding > 0: set framing size -// The color used are the button colors. -bool ImGui::ImageButton(ImTextureID user_texture_id, const ImVec2& size, const ImVec2& uv0, const ImVec2& uv1, int frame_padding, const ImVec4& bg_col, const ImVec4& tint_col) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - - // Default to using texture ID as ID. User can still push string/integer prefixes. - // We could hash the size/uv to create a unique ID but that would prevent the user from animating UV. - PushID((void*)(intptr_t)user_texture_id); - const ImGuiID id = window->GetID("#image"); - PopID(); - - const ImVec2 padding = (frame_padding >= 0) ? ImVec2((float)frame_padding, (float)frame_padding) : style.FramePadding; - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size + padding * 2); - const ImRect image_bb(window->DC.CursorPos + padding, window->DC.CursorPos + padding + size); - ItemSize(bb); - if (!ItemAdd(bb, id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held); - - // Render - const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_ButtonActive : hovered ? ImGuiCol_ButtonHovered : ImGuiCol_Button); - RenderNavHighlight(bb, id); - RenderFrame(bb.Min, bb.Max, col, true, ImClamp((float)ImMin(padding.x, padding.y), 0.0f, style.FrameRounding)); - if (bg_col.w > 0.0f) - window->DrawList->AddRectFilled(image_bb.Min, image_bb.Max, GetColorU32(bg_col)); - window->DrawList->AddImage(user_texture_id, image_bb.Min, image_bb.Max, uv0, uv1, GetColorU32(tint_col)); - - return pressed; -} - -bool ImGui::Checkbox(const char* label, bool* v) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - - const float square_sz = GetFrameHeight(); - const ImVec2 pos = window->DC.CursorPos; - const ImRect total_bb(pos, pos + ImVec2(square_sz + (label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f), label_size.y + style.FramePadding.y * 2.0f)); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(total_bb, id, &hovered, &held); - if (pressed) - { - *v = !(*v); - MarkItemEdited(id); - } - - const ImRect check_bb(pos, pos + ImVec2(square_sz, square_sz)); - RenderNavHighlight(total_bb, id); - RenderFrame(check_bb.Min, check_bb.Max, GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), true, style.FrameRounding); - ImU32 check_col = GetColorU32(ImGuiCol_CheckMark); - if (window->DC.ItemFlags & ImGuiItemFlags_MixedValue) - { - // Undocumented tristate/mixed/indeterminate checkbox (#2644) - ImVec2 pad(ImMax(1.0f, IM_FLOOR(square_sz / 3.6f)), ImMax(1.0f, IM_FLOOR(square_sz / 3.6f))); - window->DrawList->AddRectFilled(check_bb.Min + pad, check_bb.Max - pad, check_col, style.FrameRounding); - } - else if (*v) - { - const float pad = ImMax(1.0f, IM_FLOOR(square_sz / 6.0f)); - RenderCheckMark(window->DrawList, check_bb.Min + ImVec2(pad, pad), check_col, square_sz - pad*2.0f); - } - - if (g.LogEnabled) - LogRenderedText(&total_bb.Min, *v ? "[x]" : "[ ]"); - if (label_size.x > 0.0f) - RenderText(ImVec2(check_bb.Max.x + style.ItemInnerSpacing.x, check_bb.Min.y + style.FramePadding.y), label); - - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags | ImGuiItemStatusFlags_Checkable | (*v ? ImGuiItemStatusFlags_Checked : 0)); - return pressed; -} - -bool ImGui::CheckboxFlags(const char* label, unsigned int* flags, unsigned int flags_value) -{ - bool v = ((*flags & flags_value) == flags_value); - bool pressed = Checkbox(label, &v); - if (pressed) - { - if (v) - *flags |= flags_value; - else - *flags &= ~flags_value; - } - - return pressed; -} - -bool ImGui::RadioButton(const char* label, bool active) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - - const float square_sz = GetFrameHeight(); - const ImVec2 pos = window->DC.CursorPos; - const ImRect check_bb(pos, pos + ImVec2(square_sz, square_sz)); - const ImRect total_bb(pos, pos + ImVec2(square_sz + (label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f), label_size.y + style.FramePadding.y * 2.0f)); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id)) - return false; - - ImVec2 center = check_bb.GetCenter(); - center.x = IM_ROUND(center.x); - center.y = IM_ROUND(center.y); - const float radius = (square_sz - 1.0f) * 0.5f; - - bool hovered, held; - bool pressed = ButtonBehavior(total_bb, id, &hovered, &held); - if (pressed) - MarkItemEdited(id); - - RenderNavHighlight(total_bb, id); - window->DrawList->AddCircleFilled(center, radius, GetColorU32((held && hovered) ? ImGuiCol_FrameBgActive : hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg), 16); - if (active) - { - const float pad = ImMax(1.0f, IM_FLOOR(square_sz / 6.0f)); - window->DrawList->AddCircleFilled(center, radius - pad, GetColorU32(ImGuiCol_CheckMark), 16); - } - - if (style.FrameBorderSize > 0.0f) - { - window->DrawList->AddCircle(center + ImVec2(1,1), radius, GetColorU32(ImGuiCol_BorderShadow), 16, style.FrameBorderSize); - window->DrawList->AddCircle(center, radius, GetColorU32(ImGuiCol_Border), 16, style.FrameBorderSize); - } - - if (g.LogEnabled) - LogRenderedText(&total_bb.Min, active ? "(x)" : "( )"); - if (label_size.x > 0.0f) - RenderText(ImVec2(check_bb.Max.x + style.ItemInnerSpacing.x, check_bb.Min.y + style.FramePadding.y), label); - - return pressed; -} - -// FIXME: This would work nicely if it was a public template, e.g. 'template RadioButton(const char* label, T* v, T v_button)', but I'm not sure how we would expose it.. -bool ImGui::RadioButton(const char* label, int* v, int v_button) -{ - const bool pressed = RadioButton(label, *v == v_button); - if (pressed) - *v = v_button; - return pressed; -} - -// size_arg (for each axis) < 0.0f: align to end, 0.0f: auto, > 0.0f: specified size -void ImGui::ProgressBar(float fraction, const ImVec2& size_arg, const char* overlay) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - - ImVec2 pos = window->DC.CursorPos; - ImVec2 size = CalcItemSize(size_arg, CalcItemWidth(), g.FontSize + style.FramePadding.y*2.0f); - ImRect bb(pos, pos + size); - ItemSize(size, style.FramePadding.y); - if (!ItemAdd(bb, 0)) - return; - - // Render - fraction = ImSaturate(fraction); - RenderFrame(bb.Min, bb.Max, GetColorU32(ImGuiCol_FrameBg), true, style.FrameRounding); - bb.Expand(ImVec2(-style.FrameBorderSize, -style.FrameBorderSize)); - const ImVec2 fill_br = ImVec2(ImLerp(bb.Min.x, bb.Max.x, fraction), bb.Max.y); - RenderRectFilledRangeH(window->DrawList, bb, GetColorU32(ImGuiCol_PlotHistogram), 0.0f, fraction, style.FrameRounding); - - // Default displaying the fraction as percentage string, but user can override it - char overlay_buf[32]; - if (!overlay) - { - ImFormatString(overlay_buf, IM_ARRAYSIZE(overlay_buf), "%.0f%%", fraction*100+0.01f); - overlay = overlay_buf; - } - - ImVec2 overlay_size = CalcTextSize(overlay, NULL); - if (overlay_size.x > 0.0f) - RenderTextClipped(ImVec2(ImClamp(fill_br.x + style.ItemSpacing.x, bb.Min.x, bb.Max.x - overlay_size.x - style.ItemInnerSpacing.x), bb.Min.y), bb.Max, overlay, NULL, &overlay_size, ImVec2(0.0f,0.5f), &bb); -} - -void ImGui::Bullet() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const float line_height = ImMax(ImMin(window->DC.CurrLineSize.y, g.FontSize + g.Style.FramePadding.y*2), g.FontSize); - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(g.FontSize, line_height)); - ItemSize(bb); - if (!ItemAdd(bb, 0)) - { - SameLine(0, style.FramePadding.x*2); - return; - } - - // Render and stay on same line - ImU32 text_col = GetColorU32(ImGuiCol_Text); - RenderBullet(window->DrawList, bb.Min + ImVec2(style.FramePadding.x + g.FontSize*0.5f, line_height*0.5f), text_col); - SameLine(0, style.FramePadding.x * 2.0f); -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: Low-level Layout helpers -//------------------------------------------------------------------------- -// - Spacing() -// - Dummy() -// - NewLine() -// - AlignTextToFramePadding() -// - SeparatorEx() [Internal] -// - Separator() -// - SplitterBehavior() [Internal] -// - ShrinkWidths() [Internal] -//------------------------------------------------------------------------- - -void ImGui::Spacing() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - ItemSize(ImVec2(0,0)); -} - -void ImGui::Dummy(const ImVec2& size) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); - ItemSize(size); - ItemAdd(bb, 0); -} - -void ImGui::NewLine() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - const ImGuiLayoutType backup_layout_type = window->DC.LayoutType; - window->DC.LayoutType = ImGuiLayoutType_Vertical; - if (window->DC.CurrLineSize.y > 0.0f) // In the event that we are on a line with items that is smaller that FontSize high, we will preserve its height. - ItemSize(ImVec2(0,0)); - else - ItemSize(ImVec2(0.0f, g.FontSize)); - window->DC.LayoutType = backup_layout_type; -} - -void ImGui::AlignTextToFramePadding() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - window->DC.CurrLineSize.y = ImMax(window->DC.CurrLineSize.y, g.FontSize + g.Style.FramePadding.y * 2); - window->DC.CurrLineTextBaseOffset = ImMax(window->DC.CurrLineTextBaseOffset, g.Style.FramePadding.y); -} - -// Horizontal/vertical separating line -void ImGui::SeparatorEx(ImGuiSeparatorFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - - ImGuiContext& g = *GImGui; - IM_ASSERT(ImIsPowerOfTwo(flags & (ImGuiSeparatorFlags_Horizontal | ImGuiSeparatorFlags_Vertical))); // Check that only 1 option is selected - - float thickness_draw = 1.0f; - float thickness_layout = 0.0f; - if (flags & ImGuiSeparatorFlags_Vertical) - { - // Vertical separator, for menu bars (use current line height). Not exposed because it is misleading and it doesn't have an effect on regular layout. - float y1 = window->DC.CursorPos.y; - float y2 = window->DC.CursorPos.y + window->DC.CurrLineSize.y; - const ImRect bb(ImVec2(window->DC.CursorPos.x, y1), ImVec2(window->DC.CursorPos.x + thickness_draw, y2)); - ItemSize(ImVec2(thickness_layout, 0.0f)); - if (!ItemAdd(bb, 0)) - return; - - // Draw - window->DrawList->AddLine(ImVec2(bb.Min.x, bb.Min.y), ImVec2(bb.Min.x, bb.Max.y), GetColorU32(ImGuiCol_Separator)); - if (g.LogEnabled) - LogText(" |"); - } - else if (flags & ImGuiSeparatorFlags_Horizontal) - { - // Horizontal Separator - float x1 = window->Pos.x; - float x2 = window->Pos.x + window->Size.x; - if (!window->DC.GroupStack.empty()) - x1 += window->DC.Indent.x; - - ImGuiColumns* columns = (flags & ImGuiSeparatorFlags_SpanAllColumns) ? window->DC.CurrentColumns : NULL; - if (columns) - PushColumnsBackground(); - - // We don't provide our width to the layout so that it doesn't get feed back into AutoFit - const ImRect bb(ImVec2(x1, window->DC.CursorPos.y), ImVec2(x2, window->DC.CursorPos.y + thickness_draw)); - ItemSize(ImVec2(0.0f, thickness_layout)); - const bool item_visible = ItemAdd(bb, 0); - if (item_visible) - { - // Draw - window->DrawList->AddLine(bb.Min, ImVec2(bb.Max.x, bb.Min.y), GetColorU32(ImGuiCol_Separator)); - if (g.LogEnabled) - LogRenderedText(&bb.Min, "--------------------------------"); - } - if (columns) - { - PopColumnsBackground(); - columns->LineMinY = window->DC.CursorPos.y; - } - } -} - -void ImGui::Separator() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return; - - // Those flags should eventually be overridable by the user - ImGuiSeparatorFlags flags = (window->DC.LayoutType == ImGuiLayoutType_Horizontal) ? ImGuiSeparatorFlags_Vertical : ImGuiSeparatorFlags_Horizontal; - flags |= ImGuiSeparatorFlags_SpanAllColumns; - SeparatorEx(flags); -} - -// Using 'hover_visibility_delay' allows us to hide the highlight and mouse cursor for a short time, which can be convenient to reduce visual noise. -bool ImGui::SplitterBehavior(const ImRect& bb, ImGuiID id, ImGuiAxis axis, float* size1, float* size2, float min_size1, float min_size2, float hover_extend, float hover_visibility_delay) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - const ImGuiItemFlags item_flags_backup = window->DC.ItemFlags; - window->DC.ItemFlags |= ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus; - bool item_add = ItemAdd(bb, id); - window->DC.ItemFlags = item_flags_backup; - if (!item_add) - return false; - - bool hovered, held; - ImRect bb_interact = bb; - bb_interact.Expand(axis == ImGuiAxis_Y ? ImVec2(0.0f, hover_extend) : ImVec2(hover_extend, 0.0f)); - ButtonBehavior(bb_interact, id, &hovered, &held, ImGuiButtonFlags_FlattenChildren | ImGuiButtonFlags_AllowItemOverlap); - if (g.ActiveId != id) - SetItemAllowOverlap(); - - if (held || (g.HoveredId == id && g.HoveredIdPreviousFrame == id && g.HoveredIdTimer >= hover_visibility_delay)) - SetMouseCursor(axis == ImGuiAxis_Y ? ImGuiMouseCursor_ResizeNS : ImGuiMouseCursor_ResizeEW); - - ImRect bb_render = bb; - if (held) - { - ImVec2 mouse_delta_2d = g.IO.MousePos - g.ActiveIdClickOffset - bb_interact.Min; - float mouse_delta = (axis == ImGuiAxis_Y) ? mouse_delta_2d.y : mouse_delta_2d.x; - - // Minimum pane size - float size_1_maximum_delta = ImMax(0.0f, *size1 - min_size1); - float size_2_maximum_delta = ImMax(0.0f, *size2 - min_size2); - if (mouse_delta < -size_1_maximum_delta) - mouse_delta = -size_1_maximum_delta; - if (mouse_delta > size_2_maximum_delta) - mouse_delta = size_2_maximum_delta; - - // Apply resize - if (mouse_delta != 0.0f) - { - if (mouse_delta < 0.0f) - IM_ASSERT(*size1 + mouse_delta >= min_size1); - if (mouse_delta > 0.0f) - IM_ASSERT(*size2 - mouse_delta >= min_size2); - *size1 += mouse_delta; - *size2 -= mouse_delta; - bb_render.Translate((axis == ImGuiAxis_X) ? ImVec2(mouse_delta, 0.0f) : ImVec2(0.0f, mouse_delta)); - MarkItemEdited(id); - } - } - - // Render - const ImU32 col = GetColorU32(held ? ImGuiCol_SeparatorActive : (hovered && g.HoveredIdTimer >= hover_visibility_delay) ? ImGuiCol_SeparatorHovered : ImGuiCol_Separator); - window->DrawList->AddRectFilled(bb_render.Min, bb_render.Max, col, 0.0f); - - return held; -} - -static int IMGUI_CDECL ShrinkWidthItemComparer(const void* lhs, const void* rhs) -{ - const ImGuiShrinkWidthItem* a = (const ImGuiShrinkWidthItem*)lhs; - const ImGuiShrinkWidthItem* b = (const ImGuiShrinkWidthItem*)rhs; - if (int d = (int)(b->Width - a->Width)) - return d; - return (b->Index - a->Index); -} - -// Shrink excess width from a set of item, by removing width from the larger items first. -void ImGui::ShrinkWidths(ImGuiShrinkWidthItem* items, int count, float width_excess) -{ - if (count == 1) - { - items[0].Width = ImMax(items[0].Width - width_excess, 1.0f); - return; - } - ImQsort(items, (size_t)count, sizeof(ImGuiShrinkWidthItem), ShrinkWidthItemComparer); - int count_same_width = 1; - while (width_excess > 0.0f && count_same_width < count) - { - while (count_same_width < count && items[0].Width <= items[count_same_width].Width) - count_same_width++; - float max_width_to_remove_per_item = (count_same_width < count) ? (items[0].Width - items[count_same_width].Width) : (items[0].Width - 1.0f); - float width_to_remove_per_item = ImMin(width_excess / count_same_width, max_width_to_remove_per_item); - for (int item_n = 0; item_n < count_same_width; item_n++) - items[item_n].Width -= width_to_remove_per_item; - width_excess -= width_to_remove_per_item * count_same_width; - } - - // Round width and redistribute remainder left-to-right (could make it an option of the function?) - // Ensure that e.g. the right-most tab of a shrunk tab-bar always reaches exactly at the same distance from the right-most edge of the tab bar separator. - width_excess = 0.0f; - for (int n = 0; n < count; n++) - { - float width_rounded = ImFloor(items[n].Width); - width_excess += items[n].Width - width_rounded; - items[n].Width = width_rounded; - } - if (width_excess > 0.0f) - for (int n = 0; n < count; n++) - if (items[n].Index < (int)(width_excess + 0.01f)) - items[n].Width += 1.0f; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: ComboBox -//------------------------------------------------------------------------- -// - BeginCombo() -// - EndCombo() -// - Combo() -//------------------------------------------------------------------------- - -static float CalcMaxPopupHeightFromItemCount(int items_count) -{ - ImGuiContext& g = *GImGui; - if (items_count <= 0) - return FLT_MAX; - return (g.FontSize + g.Style.ItemSpacing.y) * items_count - g.Style.ItemSpacing.y + (g.Style.WindowPadding.y * 2); -} - -bool ImGui::BeginCombo(const char* label, const char* preview_value, ImGuiComboFlags flags) -{ - // Always consume the SetNextWindowSizeConstraint() call in our early return paths - ImGuiContext& g = *GImGui; - bool has_window_size_constraint = (g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSizeConstraint) != 0; - g.NextWindowData.Flags &= ~ImGuiNextWindowDataFlags_HasSizeConstraint; - - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - IM_ASSERT((flags & (ImGuiComboFlags_NoArrowButton | ImGuiComboFlags_NoPreview)) != (ImGuiComboFlags_NoArrowButton | ImGuiComboFlags_NoPreview)); // Can't use both flags together - - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - - const float arrow_size = (flags & ImGuiComboFlags_NoArrowButton) ? 0.0f : GetFrameHeight(); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const float expected_w = CalcItemWidth(); - const float w = (flags & ImGuiComboFlags_NoPreview) ? arrow_size : expected_w; - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y + style.FramePadding.y*2.0f)); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(frame_bb, id, &hovered, &held); - bool popup_open = IsPopupOpen(id); - - const ImU32 frame_col = GetColorU32(hovered ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); - const float value_x2 = ImMax(frame_bb.Min.x, frame_bb.Max.x - arrow_size); - RenderNavHighlight(frame_bb, id); - if (!(flags & ImGuiComboFlags_NoPreview)) - window->DrawList->AddRectFilled(frame_bb.Min, ImVec2(value_x2, frame_bb.Max.y), frame_col, style.FrameRounding, (flags & ImGuiComboFlags_NoArrowButton) ? ImDrawCornerFlags_All : ImDrawCornerFlags_Left); - if (!(flags & ImGuiComboFlags_NoArrowButton)) - { - ImU32 bg_col = GetColorU32((popup_open || hovered) ? ImGuiCol_ButtonHovered : ImGuiCol_Button); - ImU32 text_col = GetColorU32(ImGuiCol_Text); - window->DrawList->AddRectFilled(ImVec2(value_x2, frame_bb.Min.y), frame_bb.Max, bg_col, style.FrameRounding, (w <= arrow_size) ? ImDrawCornerFlags_All : ImDrawCornerFlags_Right); - if (value_x2 + arrow_size - style.FramePadding.x <= frame_bb.Max.x) - RenderArrow(window->DrawList, ImVec2(value_x2 + style.FramePadding.y, frame_bb.Min.y + style.FramePadding.y), text_col, ImGuiDir_Down, 1.0f); - } - RenderFrameBorder(frame_bb.Min, frame_bb.Max, style.FrameRounding); - if (preview_value != NULL && !(flags & ImGuiComboFlags_NoPreview)) - RenderTextClipped(frame_bb.Min + style.FramePadding, ImVec2(value_x2, frame_bb.Max.y), preview_value, NULL, NULL, ImVec2(0.0f,0.0f)); - if (label_size.x > 0) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - if ((pressed || g.NavActivateId == id) && !popup_open) - { - if (window->DC.NavLayerCurrent == 0) - window->NavLastIds[0] = id; - OpenPopupEx(id); - popup_open = true; - } - - if (!popup_open) - return false; - - if (has_window_size_constraint) - { - g.NextWindowData.Flags |= ImGuiNextWindowDataFlags_HasSizeConstraint; - g.NextWindowData.SizeConstraintRect.Min.x = ImMax(g.NextWindowData.SizeConstraintRect.Min.x, w); - } - else - { - if ((flags & ImGuiComboFlags_HeightMask_) == 0) - flags |= ImGuiComboFlags_HeightRegular; - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiComboFlags_HeightMask_)); // Only one - int popup_max_height_in_items = -1; - if (flags & ImGuiComboFlags_HeightRegular) popup_max_height_in_items = 8; - else if (flags & ImGuiComboFlags_HeightSmall) popup_max_height_in_items = 4; - else if (flags & ImGuiComboFlags_HeightLarge) popup_max_height_in_items = 20; - SetNextWindowSizeConstraints(ImVec2(w, 0.0f), ImVec2(FLT_MAX, CalcMaxPopupHeightFromItemCount(popup_max_height_in_items))); - } - - char name[16]; - ImFormatString(name, IM_ARRAYSIZE(name), "##Combo_%02d", g.BeginPopupStack.Size); // Recycle windows based on depth - - // Peak into expected window size so we can position it - if (ImGuiWindow* popup_window = FindWindowByName(name)) - if (popup_window->WasActive) - { - ImVec2 size_expected = CalcWindowExpectedSize(popup_window); - if (flags & ImGuiComboFlags_PopupAlignLeft) - popup_window->AutoPosLastDirection = ImGuiDir_Left; - ImRect r_outer = GetWindowAllowedExtentRect(popup_window); - ImVec2 pos = FindBestWindowPosForPopupEx(frame_bb.GetBL(), size_expected, &popup_window->AutoPosLastDirection, r_outer, frame_bb, ImGuiPopupPositionPolicy_ComboBox); - SetNextWindowPos(pos); - } - - // We don't use BeginPopupEx() solely because we have a custom name string, which we could make an argument to BeginPopupEx() - ImGuiWindowFlags window_flags = ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_Popup | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoMove; - - // Horizontally align ourselves with the framed text - PushStyleVar(ImGuiStyleVar_WindowPadding, ImVec2(style.FramePadding.x, style.WindowPadding.y)); - bool ret = Begin(name, NULL, window_flags); - PopStyleVar(); - if (!ret) - { - EndPopup(); - IM_ASSERT(0); // This should never happen as we tested for IsPopupOpen() above - return false; - } - return true; -} - -void ImGui::EndCombo() -{ - EndPopup(); -} - -// Getter for the old Combo() API: const char*[] -static bool Items_ArrayGetter(void* data, int idx, const char** out_text) -{ - const char* const* items = (const char* const*)data; - if (out_text) - *out_text = items[idx]; - return true; -} - -// Getter for the old Combo() API: "item1\0item2\0item3\0" -static bool Items_SingleStringGetter(void* data, int idx, const char** out_text) -{ - // FIXME-OPT: we could pre-compute the indices to fasten this. But only 1 active combo means the waste is limited. - const char* items_separated_by_zeros = (const char*)data; - int items_count = 0; - const char* p = items_separated_by_zeros; - while (*p) - { - if (idx == items_count) - break; - p += strlen(p) + 1; - items_count++; - } - if (!*p) - return false; - if (out_text) - *out_text = p; - return true; -} - -// Old API, prefer using BeginCombo() nowadays if you can. -bool ImGui::Combo(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int popup_max_height_in_items) -{ - ImGuiContext& g = *GImGui; - - // Call the getter to obtain the preview string which is a parameter to BeginCombo() - const char* preview_value = NULL; - if (*current_item >= 0 && *current_item < items_count) - items_getter(data, *current_item, &preview_value); - - // The old Combo() API exposed "popup_max_height_in_items". The new more general BeginCombo() API doesn't have/need it, but we emulate it here. - if (popup_max_height_in_items != -1 && !(g.NextWindowData.Flags & ImGuiNextWindowDataFlags_HasSizeConstraint)) - SetNextWindowSizeConstraints(ImVec2(0,0), ImVec2(FLT_MAX, CalcMaxPopupHeightFromItemCount(popup_max_height_in_items))); - - if (!BeginCombo(label, preview_value, ImGuiComboFlags_None)) - return false; - - // Display items - // FIXME-OPT: Use clipper (but we need to disable it on the appearing frame to make sure our call to SetItemDefaultFocus() is processed) - bool value_changed = false; - for (int i = 0; i < items_count; i++) - { - PushID((void*)(intptr_t)i); - const bool item_selected = (i == *current_item); - const char* item_text; - if (!items_getter(data, i, &item_text)) - item_text = "*Unknown item*"; - if (Selectable(item_text, item_selected)) - { - value_changed = true; - *current_item = i; - } - if (item_selected) - SetItemDefaultFocus(); - PopID(); - } - - EndCombo(); - return value_changed; -} - -// Combo box helper allowing to pass an array of strings. -bool ImGui::Combo(const char* label, int* current_item, const char* const items[], int items_count, int height_in_items) -{ - const bool value_changed = Combo(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_in_items); - return value_changed; -} - -// Combo box helper allowing to pass all items in a single string literal holding multiple zero-terminated items "item1\0item2\0" -bool ImGui::Combo(const char* label, int* current_item, const char* items_separated_by_zeros, int height_in_items) -{ - int items_count = 0; - const char* p = items_separated_by_zeros; // FIXME-OPT: Avoid computing this, or at least only when combo is open - while (*p) - { - p += strlen(p) + 1; - items_count++; - } - bool value_changed = Combo(label, current_item, Items_SingleStringGetter, (void*)items_separated_by_zeros, items_count, height_in_items); - return value_changed; -} - -//------------------------------------------------------------------------- -// [SECTION] Data Type and Data Formatting Helpers [Internal] -//------------------------------------------------------------------------- -// - PatchFormatStringFloatToInt() -// - DataTypeGetInfo() -// - DataTypeFormatString() -// - DataTypeApplyOp() -// - DataTypeApplyOpFromText() -// - GetMinimumStepAtDecimalPrecision -// - RoundScalarWithFormat<>() -//------------------------------------------------------------------------- - -static const ImGuiDataTypeInfo GDataTypeInfo[] = -{ - { sizeof(char), "%d", "%d" }, // ImGuiDataType_S8 - { sizeof(unsigned char), "%u", "%u" }, - { sizeof(short), "%d", "%d" }, // ImGuiDataType_S16 - { sizeof(unsigned short), "%u", "%u" }, - { sizeof(int), "%d", "%d" }, // ImGuiDataType_S32 - { sizeof(unsigned int), "%u", "%u" }, -#ifdef _MSC_VER - { sizeof(ImS64), "%I64d","%I64d" }, // ImGuiDataType_S64 - { sizeof(ImU64), "%I64u","%I64u" }, -#else - { sizeof(ImS64), "%lld", "%lld" }, // ImGuiDataType_S64 - { sizeof(ImU64), "%llu", "%llu" }, -#endif - { sizeof(float), "%f", "%f" }, // ImGuiDataType_Float (float are promoted to double in va_arg) - { sizeof(double), "%f", "%lf" }, // ImGuiDataType_Double -}; -IM_STATIC_ASSERT(IM_ARRAYSIZE(GDataTypeInfo) == ImGuiDataType_COUNT); - -// FIXME-LEGACY: Prior to 1.61 our DragInt() function internally used floats and because of this the compile-time default value for format was "%.0f". -// Even though we changed the compile-time default, we expect users to have carried %f around, which would break the display of DragInt() calls. -// To honor backward compatibility we are rewriting the format string, unless IMGUI_DISABLE_OBSOLETE_FUNCTIONS is enabled. What could possibly go wrong?! -static const char* PatchFormatStringFloatToInt(const char* fmt) -{ - if (fmt[0] == '%' && fmt[1] == '.' && fmt[2] == '0' && fmt[3] == 'f' && fmt[4] == 0) // Fast legacy path for "%.0f" which is expected to be the most common case. - return "%d"; - const char* fmt_start = ImParseFormatFindStart(fmt); // Find % (if any, and ignore %%) - const char* fmt_end = ImParseFormatFindEnd(fmt_start); // Find end of format specifier, which itself is an exercise of confidence/recklessness (because snprintf is dependent on libc or user). - if (fmt_end > fmt_start && fmt_end[-1] == 'f') - { -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS - if (fmt_start == fmt && fmt_end[0] == 0) - return "%d"; - ImGuiContext& g = *GImGui; - ImFormatString(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), "%.*s%%d%s", (int)(fmt_start - fmt), fmt, fmt_end); // Honor leading and trailing decorations, but lose alignment/precision. - return g.TempBuffer; -#else - IM_ASSERT(0 && "DragInt(): Invalid format string!"); // Old versions used a default parameter of "%.0f", please replace with e.g. "%d" -#endif - } - return fmt; -} - -const ImGuiDataTypeInfo* ImGui::DataTypeGetInfo(ImGuiDataType data_type) -{ - IM_ASSERT(data_type >= 0 && data_type < ImGuiDataType_COUNT); - return &GDataTypeInfo[data_type]; -} - -int ImGui::DataTypeFormatString(char* buf, int buf_size, ImGuiDataType data_type, const void* p_data, const char* format) -{ - // Signedness doesn't matter when pushing integer arguments - if (data_type == ImGuiDataType_S32 || data_type == ImGuiDataType_U32) - return ImFormatString(buf, buf_size, format, *(const ImU32*)p_data); - if (data_type == ImGuiDataType_S64 || data_type == ImGuiDataType_U64) - return ImFormatString(buf, buf_size, format, *(const ImU64*)p_data); - if (data_type == ImGuiDataType_Float) - return ImFormatString(buf, buf_size, format, *(const float*)p_data); - if (data_type == ImGuiDataType_Double) - return ImFormatString(buf, buf_size, format, *(const double*)p_data); - if (data_type == ImGuiDataType_S8) - return ImFormatString(buf, buf_size, format, *(const ImS8*)p_data); - if (data_type == ImGuiDataType_U8) - return ImFormatString(buf, buf_size, format, *(const ImU8*)p_data); - if (data_type == ImGuiDataType_S16) - return ImFormatString(buf, buf_size, format, *(const ImS16*)p_data); - if (data_type == ImGuiDataType_U16) - return ImFormatString(buf, buf_size, format, *(const ImU16*)p_data); - IM_ASSERT(0); - return 0; -} - -void ImGui::DataTypeApplyOp(ImGuiDataType data_type, int op, void* output, void* arg1, const void* arg2) -{ - IM_ASSERT(op == '+' || op == '-'); - switch (data_type) - { - case ImGuiDataType_S8: - if (op == '+') { *(ImS8*)output = ImAddClampOverflow(*(const ImS8*)arg1, *(const ImS8*)arg2, IM_S8_MIN, IM_S8_MAX); } - if (op == '-') { *(ImS8*)output = ImSubClampOverflow(*(const ImS8*)arg1, *(const ImS8*)arg2, IM_S8_MIN, IM_S8_MAX); } - return; - case ImGuiDataType_U8: - if (op == '+') { *(ImU8*)output = ImAddClampOverflow(*(const ImU8*)arg1, *(const ImU8*)arg2, IM_U8_MIN, IM_U8_MAX); } - if (op == '-') { *(ImU8*)output = ImSubClampOverflow(*(const ImU8*)arg1, *(const ImU8*)arg2, IM_U8_MIN, IM_U8_MAX); } - return; - case ImGuiDataType_S16: - if (op == '+') { *(ImS16*)output = ImAddClampOverflow(*(const ImS16*)arg1, *(const ImS16*)arg2, IM_S16_MIN, IM_S16_MAX); } - if (op == '-') { *(ImS16*)output = ImSubClampOverflow(*(const ImS16*)arg1, *(const ImS16*)arg2, IM_S16_MIN, IM_S16_MAX); } - return; - case ImGuiDataType_U16: - if (op == '+') { *(ImU16*)output = ImAddClampOverflow(*(const ImU16*)arg1, *(const ImU16*)arg2, IM_U16_MIN, IM_U16_MAX); } - if (op == '-') { *(ImU16*)output = ImSubClampOverflow(*(const ImU16*)arg1, *(const ImU16*)arg2, IM_U16_MIN, IM_U16_MAX); } - return; - case ImGuiDataType_S32: - if (op == '+') { *(ImS32*)output = ImAddClampOverflow(*(const ImS32*)arg1, *(const ImS32*)arg2, IM_S32_MIN, IM_S32_MAX); } - if (op == '-') { *(ImS32*)output = ImSubClampOverflow(*(const ImS32*)arg1, *(const ImS32*)arg2, IM_S32_MIN, IM_S32_MAX); } - return; - case ImGuiDataType_U32: - if (op == '+') { *(ImU32*)output = ImAddClampOverflow(*(const ImU32*)arg1, *(const ImU32*)arg2, IM_U32_MIN, IM_U32_MAX); } - if (op == '-') { *(ImU32*)output = ImSubClampOverflow(*(const ImU32*)arg1, *(const ImU32*)arg2, IM_U32_MIN, IM_U32_MAX); } - return; - case ImGuiDataType_S64: - if (op == '+') { *(ImS64*)output = ImAddClampOverflow(*(const ImS64*)arg1, *(const ImS64*)arg2, IM_S64_MIN, IM_S64_MAX); } - if (op == '-') { *(ImS64*)output = ImSubClampOverflow(*(const ImS64*)arg1, *(const ImS64*)arg2, IM_S64_MIN, IM_S64_MAX); } - return; - case ImGuiDataType_U64: - if (op == '+') { *(ImU64*)output = ImAddClampOverflow(*(const ImU64*)arg1, *(const ImU64*)arg2, IM_U64_MIN, IM_U64_MAX); } - if (op == '-') { *(ImU64*)output = ImSubClampOverflow(*(const ImU64*)arg1, *(const ImU64*)arg2, IM_U64_MIN, IM_U64_MAX); } - return; - case ImGuiDataType_Float: - if (op == '+') { *(float*)output = *(const float*)arg1 + *(const float*)arg2; } - if (op == '-') { *(float*)output = *(const float*)arg1 - *(const float*)arg2; } - return; - case ImGuiDataType_Double: - if (op == '+') { *(double*)output = *(const double*)arg1 + *(const double*)arg2; } - if (op == '-') { *(double*)output = *(const double*)arg1 - *(const double*)arg2; } - return; - case ImGuiDataType_COUNT: break; - } - IM_ASSERT(0); -} - -// User can input math operators (e.g. +100) to edit a numerical values. -// NB: This is _not_ a full expression evaluator. We should probably add one and replace this dumb mess.. -bool ImGui::DataTypeApplyOpFromText(const char* buf, const char* initial_value_buf, ImGuiDataType data_type, void* p_data, const char* format) -{ - while (ImCharIsBlankA(*buf)) - buf++; - - // We don't support '-' op because it would conflict with inputing negative value. - // Instead you can use +-100 to subtract from an existing value - char op = buf[0]; - if (op == '+' || op == '*' || op == '/') - { - buf++; - while (ImCharIsBlankA(*buf)) - buf++; - } - else - { - op = 0; - } - if (!buf[0]) - return false; - - // Copy the value in an opaque buffer so we can compare at the end of the function if it changed at all. - IM_ASSERT(data_type < ImGuiDataType_COUNT); - int data_backup[2]; - const ImGuiDataTypeInfo* type_info = ImGui::DataTypeGetInfo(data_type); - IM_ASSERT(type_info->Size <= sizeof(data_backup)); - memcpy(data_backup, p_data, type_info->Size); - - if (format == NULL) - format = type_info->ScanFmt; - - // FIXME-LEGACY: The aim is to remove those operators and write a proper expression evaluator at some point.. - int arg1i = 0; - if (data_type == ImGuiDataType_S32) - { - int* v = (int*)p_data; - int arg0i = *v; - float arg1f = 0.0f; - if (op && sscanf(initial_value_buf, format, &arg0i) < 1) - return false; - // Store operand in a float so we can use fractional value for multipliers (*1.1), but constant always parsed as integer so we can fit big integers (e.g. 2000000003) past float precision - if (op == '+') { if (sscanf(buf, "%d", &arg1i)) *v = (int)(arg0i + arg1i); } // Add (use "+-" to subtract) - else if (op == '*') { if (sscanf(buf, "%f", &arg1f)) *v = (int)(arg0i * arg1f); } // Multiply - else if (op == '/') { if (sscanf(buf, "%f", &arg1f) && arg1f != 0.0f) *v = (int)(arg0i / arg1f); } // Divide - else { if (sscanf(buf, format, &arg1i) == 1) *v = arg1i; } // Assign constant - } - else if (data_type == ImGuiDataType_Float) - { - // For floats we have to ignore format with precision (e.g. "%.2f") because sscanf doesn't take them in - format = "%f"; - float* v = (float*)p_data; - float arg0f = *v, arg1f = 0.0f; - if (op && sscanf(initial_value_buf, format, &arg0f) < 1) - return false; - if (sscanf(buf, format, &arg1f) < 1) - return false; - if (op == '+') { *v = arg0f + arg1f; } // Add (use "+-" to subtract) - else if (op == '*') { *v = arg0f * arg1f; } // Multiply - else if (op == '/') { if (arg1f != 0.0f) *v = arg0f / arg1f; } // Divide - else { *v = arg1f; } // Assign constant - } - else if (data_type == ImGuiDataType_Double) - { - format = "%lf"; // scanf differentiate float/double unlike printf which forces everything to double because of ellipsis - double* v = (double*)p_data; - double arg0f = *v, arg1f = 0.0; - if (op && sscanf(initial_value_buf, format, &arg0f) < 1) - return false; - if (sscanf(buf, format, &arg1f) < 1) - return false; - if (op == '+') { *v = arg0f + arg1f; } // Add (use "+-" to subtract) - else if (op == '*') { *v = arg0f * arg1f; } // Multiply - else if (op == '/') { if (arg1f != 0.0f) *v = arg0f / arg1f; } // Divide - else { *v = arg1f; } // Assign constant - } - else if (data_type == ImGuiDataType_U32 || data_type == ImGuiDataType_S64 || data_type == ImGuiDataType_U64) - { - // All other types assign constant - // We don't bother handling support for legacy operators since they are a little too crappy. Instead we will later implement a proper expression evaluator in the future. - sscanf(buf, format, p_data); - } - else - { - // Small types need a 32-bit buffer to receive the result from scanf() - int v32; - sscanf(buf, format, &v32); - if (data_type == ImGuiDataType_S8) - *(ImS8*)p_data = (ImS8)ImClamp(v32, (int)IM_S8_MIN, (int)IM_S8_MAX); - else if (data_type == ImGuiDataType_U8) - *(ImU8*)p_data = (ImU8)ImClamp(v32, (int)IM_U8_MIN, (int)IM_U8_MAX); - else if (data_type == ImGuiDataType_S16) - *(ImS16*)p_data = (ImS16)ImClamp(v32, (int)IM_S16_MIN, (int)IM_S16_MAX); - else if (data_type == ImGuiDataType_U16) - *(ImU16*)p_data = (ImU16)ImClamp(v32, (int)IM_U16_MIN, (int)IM_U16_MAX); - else - IM_ASSERT(0); - } - - return memcmp(data_backup, p_data, type_info->Size) != 0; -} - -static float GetMinimumStepAtDecimalPrecision(int decimal_precision) -{ - static const float min_steps[10] = { 1.0f, 0.1f, 0.01f, 0.001f, 0.0001f, 0.00001f, 0.000001f, 0.0000001f, 0.00000001f, 0.000000001f }; - if (decimal_precision < 0) - return FLT_MIN; - return (decimal_precision < IM_ARRAYSIZE(min_steps)) ? min_steps[decimal_precision] : ImPow(10.0f, (float)-decimal_precision); -} - -template -static const char* ImAtoi(const char* src, TYPE* output) -{ - int negative = 0; - if (*src == '-') { negative = 1; src++; } - if (*src == '+') { src++; } - TYPE v = 0; - while (*src >= '0' && *src <= '9') - v = (v * 10) + (*src++ - '0'); - *output = negative ? -v : v; - return src; -} - -template -TYPE ImGui::RoundScalarWithFormatT(const char* format, ImGuiDataType data_type, TYPE v) -{ - const char* fmt_start = ImParseFormatFindStart(format); - if (fmt_start[0] != '%' || fmt_start[1] == '%') // Don't apply if the value is not visible in the format string - return v; - char v_str[64]; - ImFormatString(v_str, IM_ARRAYSIZE(v_str), fmt_start, v); - const char* p = v_str; - while (*p == ' ') - p++; - if (data_type == ImGuiDataType_Float || data_type == ImGuiDataType_Double) - v = (TYPE)ImAtof(p); - else - ImAtoi(p, (SIGNEDTYPE*)&v); - return v; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: DragScalar, DragFloat, DragInt, etc. -//------------------------------------------------------------------------- -// - DragBehaviorT<>() [Internal] -// - DragBehavior() [Internal] -// - DragScalar() -// - DragScalarN() -// - DragFloat() -// - DragFloat2() -// - DragFloat3() -// - DragFloat4() -// - DragFloatRange2() -// - DragInt() -// - DragInt2() -// - DragInt3() -// - DragInt4() -// - DragIntRange2() -//------------------------------------------------------------------------- - -// This is called by DragBehavior() when the widget is active (held by mouse or being manipulated with Nav controls) -template -bool ImGui::DragBehaviorT(ImGuiDataType data_type, TYPE* v, float v_speed, const TYPE v_min, const TYPE v_max, const char* format, float power, ImGuiDragFlags flags) -{ - ImGuiContext& g = *GImGui; - const ImGuiAxis axis = (flags & ImGuiDragFlags_Vertical) ? ImGuiAxis_Y : ImGuiAxis_X; - const bool is_decimal = (data_type == ImGuiDataType_Float) || (data_type == ImGuiDataType_Double); - const bool is_clamped = (v_min < v_max); - const bool is_power = (power != 1.0f && is_decimal && is_clamped && (v_max - v_min < FLT_MAX)); - const bool is_locked = (v_min > v_max); - if (is_locked) - return false; - - // Default tweak speed - if (v_speed == 0.0f && is_clamped && (v_max - v_min < FLT_MAX)) - v_speed = (float)((v_max - v_min) * g.DragSpeedDefaultRatio); - - // Inputs accumulates into g.DragCurrentAccum, which is flushed into the current value as soon as it makes a difference with our precision settings - float adjust_delta = 0.0f; - if (g.ActiveIdSource == ImGuiInputSource_Mouse && IsMousePosValid() && g.IO.MouseDragMaxDistanceSqr[0] > 1.0f*1.0f) - { - adjust_delta = g.IO.MouseDelta[axis]; - if (g.IO.KeyAlt) - adjust_delta *= 1.0f / 100.0f; - if (g.IO.KeyShift) - adjust_delta *= 10.0f; - } - else if (g.ActiveIdSource == ImGuiInputSource_Nav) - { - int decimal_precision = is_decimal ? ImParseFormatPrecision(format, 3) : 0; - adjust_delta = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard | ImGuiNavDirSourceFlags_PadDPad, ImGuiInputReadMode_RepeatFast, 1.0f / 10.0f, 10.0f)[axis]; - v_speed = ImMax(v_speed, GetMinimumStepAtDecimalPrecision(decimal_precision)); - } - adjust_delta *= v_speed; - - // For vertical drag we currently assume that Up=higher value (like we do with vertical sliders). This may become a parameter. - if (axis == ImGuiAxis_Y) - adjust_delta = -adjust_delta; - - // Clear current value on activation - // Avoid altering values and clamping when we are _already_ past the limits and heading in the same direction, so e.g. if range is 0..255, current value is 300 and we are pushing to the right side, keep the 300. - bool is_just_activated = g.ActiveIdIsJustActivated; - bool is_already_past_limits_and_pushing_outward = is_clamped && ((*v >= v_max && adjust_delta > 0.0f) || (*v <= v_min && adjust_delta < 0.0f)); - bool is_drag_direction_change_with_power = is_power && ((adjust_delta < 0 && g.DragCurrentAccum > 0) || (adjust_delta > 0 && g.DragCurrentAccum < 0)); - if (is_just_activated || is_already_past_limits_and_pushing_outward || is_drag_direction_change_with_power) - { - g.DragCurrentAccum = 0.0f; - g.DragCurrentAccumDirty = false; - } - else if (adjust_delta != 0.0f) - { - g.DragCurrentAccum += adjust_delta; - g.DragCurrentAccumDirty = true; - } - - if (!g.DragCurrentAccumDirty) - return false; - - TYPE v_cur = *v; - FLOATTYPE v_old_ref_for_accum_remainder = (FLOATTYPE)0.0f; - - if (is_power) - { - // Offset + round to user desired precision, with a curve on the v_min..v_max range to get more precision on one side of the range - FLOATTYPE v_old_norm_curved = ImPow((FLOATTYPE)(v_cur - v_min) / (FLOATTYPE)(v_max - v_min), (FLOATTYPE)1.0f / power); - FLOATTYPE v_new_norm_curved = v_old_norm_curved + (g.DragCurrentAccum / (v_max - v_min)); - v_cur = v_min + (SIGNEDTYPE)ImPow(ImSaturate((float)v_new_norm_curved), power) * (v_max - v_min); - v_old_ref_for_accum_remainder = v_old_norm_curved; - } - else - { - v_cur += (SIGNEDTYPE)g.DragCurrentAccum; - } - - // Round to user desired precision based on format string - v_cur = RoundScalarWithFormatT(format, data_type, v_cur); - - // Preserve remainder after rounding has been applied. This also allow slow tweaking of values. - g.DragCurrentAccumDirty = false; - if (is_power) - { - FLOATTYPE v_cur_norm_curved = ImPow((FLOATTYPE)(v_cur - v_min) / (FLOATTYPE)(v_max - v_min), (FLOATTYPE)1.0f / power); - g.DragCurrentAccum -= (float)(v_cur_norm_curved - v_old_ref_for_accum_remainder); - } - else - { - g.DragCurrentAccum -= (float)((SIGNEDTYPE)v_cur - (SIGNEDTYPE)*v); - } - - // Lose zero sign for float/double - if (v_cur == (TYPE)-0) - v_cur = (TYPE)0; - - // Clamp values (+ handle overflow/wrap-around for integer types) - if (*v != v_cur && is_clamped) - { - if (v_cur < v_min || (v_cur > *v && adjust_delta < 0.0f && !is_decimal)) - v_cur = v_min; - if (v_cur > v_max || (v_cur < *v && adjust_delta > 0.0f && !is_decimal)) - v_cur = v_max; - } - - // Apply result - if (*v == v_cur) - return false; - *v = v_cur; - return true; -} - -bool ImGui::DragBehavior(ImGuiID id, ImGuiDataType data_type, void* p_v, float v_speed, const void* p_min, const void* p_max, const char* format, float power, ImGuiDragFlags flags) -{ - ImGuiContext& g = *GImGui; - if (g.ActiveId == id) - { - if (g.ActiveIdSource == ImGuiInputSource_Mouse && !g.IO.MouseDown[0]) - ClearActiveID(); - else if (g.ActiveIdSource == ImGuiInputSource_Nav && g.NavActivatePressedId == id && !g.ActiveIdIsJustActivated) - ClearActiveID(); - } - if (g.ActiveId != id) - return false; - - switch (data_type) - { - case ImGuiDataType_S8: { ImS32 v32 = (ImS32)*(ImS8*)p_v; bool r = DragBehaviorT(ImGuiDataType_S32, &v32, v_speed, p_min ? *(const ImS8*) p_min : IM_S8_MIN, p_max ? *(const ImS8*)p_max : IM_S8_MAX, format, power, flags); if (r) *(ImS8*)p_v = (ImS8)v32; return r; } - case ImGuiDataType_U8: { ImU32 v32 = (ImU32)*(ImU8*)p_v; bool r = DragBehaviorT(ImGuiDataType_U32, &v32, v_speed, p_min ? *(const ImU8*) p_min : IM_U8_MIN, p_max ? *(const ImU8*)p_max : IM_U8_MAX, format, power, flags); if (r) *(ImU8*)p_v = (ImU8)v32; return r; } - case ImGuiDataType_S16: { ImS32 v32 = (ImS32)*(ImS16*)p_v; bool r = DragBehaviorT(ImGuiDataType_S32, &v32, v_speed, p_min ? *(const ImS16*)p_min : IM_S16_MIN, p_max ? *(const ImS16*)p_max : IM_S16_MAX, format, power, flags); if (r) *(ImS16*)p_v = (ImS16)v32; return r; } - case ImGuiDataType_U16: { ImU32 v32 = (ImU32)*(ImU16*)p_v; bool r = DragBehaviorT(ImGuiDataType_U32, &v32, v_speed, p_min ? *(const ImU16*)p_min : IM_U16_MIN, p_max ? *(const ImU16*)p_max : IM_U16_MAX, format, power, flags); if (r) *(ImU16*)p_v = (ImU16)v32; return r; } - case ImGuiDataType_S32: return DragBehaviorT(data_type, (ImS32*)p_v, v_speed, p_min ? *(const ImS32* )p_min : IM_S32_MIN, p_max ? *(const ImS32* )p_max : IM_S32_MAX, format, power, flags); - case ImGuiDataType_U32: return DragBehaviorT(data_type, (ImU32*)p_v, v_speed, p_min ? *(const ImU32* )p_min : IM_U32_MIN, p_max ? *(const ImU32* )p_max : IM_U32_MAX, format, power, flags); - case ImGuiDataType_S64: return DragBehaviorT(data_type, (ImS64*)p_v, v_speed, p_min ? *(const ImS64* )p_min : IM_S64_MIN, p_max ? *(const ImS64* )p_max : IM_S64_MAX, format, power, flags); - case ImGuiDataType_U64: return DragBehaviorT(data_type, (ImU64*)p_v, v_speed, p_min ? *(const ImU64* )p_min : IM_U64_MIN, p_max ? *(const ImU64* )p_max : IM_U64_MAX, format, power, flags); - case ImGuiDataType_Float: return DragBehaviorT(data_type, (float*)p_v, v_speed, p_min ? *(const float* )p_min : -FLT_MAX, p_max ? *(const float* )p_max : FLT_MAX, format, power, flags); - case ImGuiDataType_Double: return DragBehaviorT(data_type, (double*)p_v, v_speed, p_min ? *(const double*)p_min : -DBL_MAX, p_max ? *(const double*)p_max : DBL_MAX, format, power, flags); - case ImGuiDataType_COUNT: break; - } - IM_ASSERT(0); - return false; -} - -// Note: p_data, p_min and p_max are _pointers_ to a memory address holding the data. For a Drag widget, p_min and p_max are optional. -// Read code of e.g. SliderFloat(), SliderInt() etc. or examples in 'Demo->Widgets->Data Types' to understand how to use this function directly. -bool ImGui::DragScalar(const char* label, ImGuiDataType data_type, void* p_data, float v_speed, const void* p_min, const void* p_max, const char* format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - if (power != 1.0f) - IM_ASSERT(p_min != NULL && p_max != NULL); // When using a power curve the drag needs to have known bounds - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const float w = CalcItemWidth(); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y + style.FramePadding.y*2.0f)); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb)) - return false; - - // Default format string when passing NULL - if (format == NULL) - format = DataTypeGetInfo(data_type)->PrintFmt; - else if (data_type == ImGuiDataType_S32 && strcmp(format, "%d") != 0) // (FIXME-LEGACY: Patch old "%.0f" format string to use "%d", read function more details.) - format = PatchFormatStringFloatToInt(format); - - // Tabbing or CTRL-clicking on Drag turns it into an input box - const bool hovered = ItemHoverable(frame_bb, id); - bool temp_input_is_active = TempInputIsActive(id); - bool temp_input_start = false; - if (!temp_input_is_active) - { - const bool focus_requested = FocusableItemRegister(window, id); - const bool clicked = (hovered && g.IO.MouseClicked[0]); - const bool double_clicked = (hovered && g.IO.MouseDoubleClicked[0]); - if (focus_requested || clicked || double_clicked || g.NavActivateId == id || g.NavInputId == id) - { - SetActiveID(id, window); - SetFocusID(id, window); - FocusWindow(window); - g.ActiveIdUsingNavDirMask = (1 << ImGuiDir_Left) | (1 << ImGuiDir_Right); - if (focus_requested || (clicked && g.IO.KeyCtrl) || double_clicked || g.NavInputId == id) - { - temp_input_start = true; - FocusableItemUnregister(window); - } - } - } - if (temp_input_is_active || temp_input_start) - return TempInputScalar(frame_bb, id, label, data_type, p_data, format); - - // Draw frame - const ImU32 frame_col = GetColorU32(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); - RenderNavHighlight(frame_bb, id); - RenderFrame(frame_bb.Min, frame_bb.Max, frame_col, true, style.FrameRounding); - - // Drag behavior - const bool value_changed = DragBehavior(id, data_type, p_data, v_speed, p_min, p_max, format, power, ImGuiDragFlags_None); - if (value_changed) - MarkItemEdited(id); - - // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. - char value_buf[64]; - const char* value_buf_end = value_buf + DataTypeFormatString(value_buf, IM_ARRAYSIZE(value_buf), data_type, p_data, format); - RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImVec2(0.5f, 0.5f)); - - if (label_size.x > 0.0f) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags); - return value_changed; -} - -bool ImGui::DragScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, float v_speed, const void* p_min, const void* p_max, const char* format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - bool value_changed = false; - BeginGroup(); - PushID(label); - PushMultiItemsWidths(components, CalcItemWidth()); - size_t type_size = GDataTypeInfo[data_type].Size; - for (int i = 0; i < components; i++) - { - PushID(i); - if (i > 0) - SameLine(0, g.Style.ItemInnerSpacing.x); - value_changed |= DragScalar("", data_type, p_data, v_speed, p_min, p_max, format, power); - PopID(); - PopItemWidth(); - p_data = (void*)((char*)p_data + type_size); - } - PopID(); - - const char* label_end = FindRenderedTextEnd(label); - if (label != label_end) - { - SameLine(0, g.Style.ItemInnerSpacing.x); - TextEx(label, label_end); - } - - EndGroup(); - return value_changed; -} - -bool ImGui::DragFloat(const char* label, float* v, float v_speed, float v_min, float v_max, const char* format, float power) -{ - return DragScalar(label, ImGuiDataType_Float, v, v_speed, &v_min, &v_max, format, power); -} - -bool ImGui::DragFloat2(const char* label, float v[2], float v_speed, float v_min, float v_max, const char* format, float power) -{ - return DragScalarN(label, ImGuiDataType_Float, v, 2, v_speed, &v_min, &v_max, format, power); -} - -bool ImGui::DragFloat3(const char* label, float v[3], float v_speed, float v_min, float v_max, const char* format, float power) -{ - return DragScalarN(label, ImGuiDataType_Float, v, 3, v_speed, &v_min, &v_max, format, power); -} - -bool ImGui::DragFloat4(const char* label, float v[4], float v_speed, float v_min, float v_max, const char* format, float power) -{ - return DragScalarN(label, ImGuiDataType_Float, v, 4, v_speed, &v_min, &v_max, format, power); -} - -bool ImGui::DragFloatRange2(const char* label, float* v_current_min, float* v_current_max, float v_speed, float v_min, float v_max, const char* format, const char* format_max, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - PushID(label); - BeginGroup(); - PushMultiItemsWidths(2, CalcItemWidth()); - - bool value_changed = DragFloat("##min", v_current_min, v_speed, (v_min >= v_max) ? -FLT_MAX : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), format, power); - PopItemWidth(); - SameLine(0, g.Style.ItemInnerSpacing.x); - value_changed |= DragFloat("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? FLT_MAX : v_max, format_max ? format_max : format, power); - PopItemWidth(); - SameLine(0, g.Style.ItemInnerSpacing.x); - - TextEx(label, FindRenderedTextEnd(label)); - EndGroup(); - PopID(); - return value_changed; -} - -// NB: v_speed is float to allow adjusting the drag speed with more precision -bool ImGui::DragInt(const char* label, int* v, float v_speed, int v_min, int v_max, const char* format) -{ - return DragScalar(label, ImGuiDataType_S32, v, v_speed, &v_min, &v_max, format); -} - -bool ImGui::DragInt2(const char* label, int v[2], float v_speed, int v_min, int v_max, const char* format) -{ - return DragScalarN(label, ImGuiDataType_S32, v, 2, v_speed, &v_min, &v_max, format); -} - -bool ImGui::DragInt3(const char* label, int v[3], float v_speed, int v_min, int v_max, const char* format) -{ - return DragScalarN(label, ImGuiDataType_S32, v, 3, v_speed, &v_min, &v_max, format); -} - -bool ImGui::DragInt4(const char* label, int v[4], float v_speed, int v_min, int v_max, const char* format) -{ - return DragScalarN(label, ImGuiDataType_S32, v, 4, v_speed, &v_min, &v_max, format); -} - -bool ImGui::DragIntRange2(const char* label, int* v_current_min, int* v_current_max, float v_speed, int v_min, int v_max, const char* format, const char* format_max) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - PushID(label); - BeginGroup(); - PushMultiItemsWidths(2, CalcItemWidth()); - - bool value_changed = DragInt("##min", v_current_min, v_speed, (v_min >= v_max) ? INT_MIN : v_min, (v_min >= v_max) ? *v_current_max : ImMin(v_max, *v_current_max), format); - PopItemWidth(); - SameLine(0, g.Style.ItemInnerSpacing.x); - value_changed |= DragInt("##max", v_current_max, v_speed, (v_min >= v_max) ? *v_current_min : ImMax(v_min, *v_current_min), (v_min >= v_max) ? INT_MAX : v_max, format_max ? format_max : format); - PopItemWidth(); - SameLine(0, g.Style.ItemInnerSpacing.x); - - TextEx(label, FindRenderedTextEnd(label)); - EndGroup(); - PopID(); - - return value_changed; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: SliderScalar, SliderFloat, SliderInt, etc. -//------------------------------------------------------------------------- -// - SliderBehaviorT<>() [Internal] -// - SliderBehavior() [Internal] -// - SliderScalar() -// - SliderScalarN() -// - SliderFloat() -// - SliderFloat2() -// - SliderFloat3() -// - SliderFloat4() -// - SliderAngle() -// - SliderInt() -// - SliderInt2() -// - SliderInt3() -// - SliderInt4() -// - VSliderScalar() -// - VSliderFloat() -// - VSliderInt() -//------------------------------------------------------------------------- - -template -float ImGui::SliderCalcRatioFromValueT(ImGuiDataType data_type, TYPE v, TYPE v_min, TYPE v_max, float power, float linear_zero_pos) -{ - if (v_min == v_max) - return 0.0f; - - const bool is_power = (power != 1.0f) && (data_type == ImGuiDataType_Float || data_type == ImGuiDataType_Double); - const TYPE v_clamped = (v_min < v_max) ? ImClamp(v, v_min, v_max) : ImClamp(v, v_max, v_min); - if (is_power) - { - if (v_clamped < 0.0f) - { - const float f = 1.0f - (float)((v_clamped - v_min) / (ImMin((TYPE)0, v_max) - v_min)); - return (1.0f - ImPow(f, 1.0f/power)) * linear_zero_pos; - } - else - { - const float f = (float)((v_clamped - ImMax((TYPE)0, v_min)) / (v_max - ImMax((TYPE)0, v_min))); - return linear_zero_pos + ImPow(f, 1.0f/power) * (1.0f - linear_zero_pos); - } - } - - // Linear slider - return (float)((FLOATTYPE)(v_clamped - v_min) / (FLOATTYPE)(v_max - v_min)); -} - -// FIXME: Move some of the code into SliderBehavior(). Current responsability is larger than what the equivalent DragBehaviorT<> does, we also do some rendering, etc. -template -bool ImGui::SliderBehaviorT(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, TYPE* v, const TYPE v_min, const TYPE v_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb) -{ - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - - const ImGuiAxis axis = (flags & ImGuiSliderFlags_Vertical) ? ImGuiAxis_Y : ImGuiAxis_X; - const bool is_decimal = (data_type == ImGuiDataType_Float) || (data_type == ImGuiDataType_Double); - const bool is_power = (power != 1.0f) && is_decimal; - - const float grab_padding = 2.0f; - const float slider_sz = (bb.Max[axis] - bb.Min[axis]) - grab_padding * 2.0f; - float grab_sz = style.GrabMinSize; - SIGNEDTYPE v_range = (v_min < v_max ? v_max - v_min : v_min - v_max); - if (!is_decimal && v_range >= 0) // v_range < 0 may happen on integer overflows - grab_sz = ImMax((float)(slider_sz / (v_range + 1)), style.GrabMinSize); // For integer sliders: if possible have the grab size represent 1 unit - grab_sz = ImMin(grab_sz, slider_sz); - const float slider_usable_sz = slider_sz - grab_sz; - const float slider_usable_pos_min = bb.Min[axis] + grab_padding + grab_sz * 0.5f; - const float slider_usable_pos_max = bb.Max[axis] - grab_padding - grab_sz * 0.5f; - - // For power curve sliders that cross over sign boundary we want the curve to be symmetric around 0.0f - float linear_zero_pos; // 0.0->1.0f - if (is_power && v_min * v_max < 0.0f) - { - // Different sign - const FLOATTYPE linear_dist_min_to_0 = ImPow(v_min >= 0 ? (FLOATTYPE)v_min : -(FLOATTYPE)v_min, (FLOATTYPE)1.0f / power); - const FLOATTYPE linear_dist_max_to_0 = ImPow(v_max >= 0 ? (FLOATTYPE)v_max : -(FLOATTYPE)v_max, (FLOATTYPE)1.0f / power); - linear_zero_pos = (float)(linear_dist_min_to_0 / (linear_dist_min_to_0 + linear_dist_max_to_0)); - } - else - { - // Same sign - linear_zero_pos = v_min < 0.0f ? 1.0f : 0.0f; - } - - // Process interacting with the slider - bool value_changed = false; - if (g.ActiveId == id) - { - bool set_new_value = false; - float clicked_t = 0.0f; - if (g.ActiveIdSource == ImGuiInputSource_Mouse) - { - if (!g.IO.MouseDown[0]) - { - ClearActiveID(); - } - else - { - const float mouse_abs_pos = g.IO.MousePos[axis]; - clicked_t = (slider_usable_sz > 0.0f) ? ImClamp((mouse_abs_pos - slider_usable_pos_min) / slider_usable_sz, 0.0f, 1.0f) : 0.0f; - if (axis == ImGuiAxis_Y) - clicked_t = 1.0f - clicked_t; - set_new_value = true; - } - } - else if (g.ActiveIdSource == ImGuiInputSource_Nav) - { - const ImVec2 delta2 = GetNavInputAmount2d(ImGuiNavDirSourceFlags_Keyboard | ImGuiNavDirSourceFlags_PadDPad, ImGuiInputReadMode_RepeatFast, 0.0f, 0.0f); - float delta = (axis == ImGuiAxis_X) ? delta2.x : -delta2.y; - if (g.NavActivatePressedId == id && !g.ActiveIdIsJustActivated) - { - ClearActiveID(); - } - else if (delta != 0.0f) - { - clicked_t = SliderCalcRatioFromValueT(data_type, *v, v_min, v_max, power, linear_zero_pos); - const int decimal_precision = is_decimal ? ImParseFormatPrecision(format, 3) : 0; - if ((decimal_precision > 0) || is_power) - { - delta /= 100.0f; // Gamepad/keyboard tweak speeds in % of slider bounds - if (IsNavInputDown(ImGuiNavInput_TweakSlow)) - delta /= 10.0f; - } - else - { - if ((v_range >= -100.0f && v_range <= 100.0f) || IsNavInputDown(ImGuiNavInput_TweakSlow)) - delta = ((delta < 0.0f) ? -1.0f : +1.0f) / (float)v_range; // Gamepad/keyboard tweak speeds in integer steps - else - delta /= 100.0f; - } - if (IsNavInputDown(ImGuiNavInput_TweakFast)) - delta *= 10.0f; - set_new_value = true; - if ((clicked_t >= 1.0f && delta > 0.0f) || (clicked_t <= 0.0f && delta < 0.0f)) // This is to avoid applying the saturation when already past the limits - set_new_value = false; - else - clicked_t = ImSaturate(clicked_t + delta); - } - } - - if (set_new_value) - { - TYPE v_new; - if (is_power) - { - // Account for power curve scale on both sides of the zero - if (clicked_t < linear_zero_pos) - { - // Negative: rescale to the negative range before powering - float a = 1.0f - (clicked_t / linear_zero_pos); - a = ImPow(a, power); - v_new = ImLerp(ImMin(v_max, (TYPE)0), v_min, a); - } - else - { - // Positive: rescale to the positive range before powering - float a; - if (ImFabs(linear_zero_pos - 1.0f) > 1.e-6f) - a = (clicked_t - linear_zero_pos) / (1.0f - linear_zero_pos); - else - a = clicked_t; - a = ImPow(a, power); - v_new = ImLerp(ImMax(v_min, (TYPE)0), v_max, a); - } - } - else - { - // Linear slider - if (is_decimal) - { - v_new = ImLerp(v_min, v_max, clicked_t); - } - else - { - // For integer values we want the clicking position to match the grab box so we round above - // This code is carefully tuned to work with large values (e.g. high ranges of U64) while preserving this property.. - FLOATTYPE v_new_off_f = (v_max - v_min) * clicked_t; - TYPE v_new_off_floor = (TYPE)(v_new_off_f); - TYPE v_new_off_round = (TYPE)(v_new_off_f + (FLOATTYPE)0.5); - if (v_new_off_floor < v_new_off_round) - v_new = v_min + v_new_off_round; - else - v_new = v_min + v_new_off_floor; - } - } - - // Round to user desired precision based on format string - v_new = RoundScalarWithFormatT(format, data_type, v_new); - - // Apply result - if (*v != v_new) - { - *v = v_new; - value_changed = true; - } - } - } - - if (slider_sz < 1.0f) - { - *out_grab_bb = ImRect(bb.Min, bb.Min); - } - else - { - // Output grab position so it can be displayed by the caller - float grab_t = SliderCalcRatioFromValueT(data_type, *v, v_min, v_max, power, linear_zero_pos); - if (axis == ImGuiAxis_Y) - grab_t = 1.0f - grab_t; - const float grab_pos = ImLerp(slider_usable_pos_min, slider_usable_pos_max, grab_t); - if (axis == ImGuiAxis_X) - *out_grab_bb = ImRect(grab_pos - grab_sz * 0.5f, bb.Min.y + grab_padding, grab_pos + grab_sz * 0.5f, bb.Max.y - grab_padding); - else - *out_grab_bb = ImRect(bb.Min.x + grab_padding, grab_pos - grab_sz * 0.5f, bb.Max.x - grab_padding, grab_pos + grab_sz * 0.5f); - } - - return value_changed; -} - -// For 32-bit and larger types, slider bounds are limited to half the natural type range. -// So e.g. an integer Slider between INT_MAX-10 and INT_MAX will fail, but an integer Slider between INT_MAX/2-10 and INT_MAX/2 will be ok. -// It would be possible to lift that limitation with some work but it doesn't seem to be worth it for sliders. -bool ImGui::SliderBehavior(const ImRect& bb, ImGuiID id, ImGuiDataType data_type, void* p_v, const void* p_min, const void* p_max, const char* format, float power, ImGuiSliderFlags flags, ImRect* out_grab_bb) -{ - switch (data_type) - { - case ImGuiDataType_S8: { ImS32 v32 = (ImS32)*(ImS8*)p_v; bool r = SliderBehaviorT(bb, id, ImGuiDataType_S32, &v32, *(const ImS8*)p_min, *(const ImS8*)p_max, format, power, flags, out_grab_bb); if (r) *(ImS8*)p_v = (ImS8)v32; return r; } - case ImGuiDataType_U8: { ImU32 v32 = (ImU32)*(ImU8*)p_v; bool r = SliderBehaviorT(bb, id, ImGuiDataType_U32, &v32, *(const ImU8*)p_min, *(const ImU8*)p_max, format, power, flags, out_grab_bb); if (r) *(ImU8*)p_v = (ImU8)v32; return r; } - case ImGuiDataType_S16: { ImS32 v32 = (ImS32)*(ImS16*)p_v; bool r = SliderBehaviorT(bb, id, ImGuiDataType_S32, &v32, *(const ImS16*)p_min, *(const ImS16*)p_max, format, power, flags, out_grab_bb); if (r) *(ImS16*)p_v = (ImS16)v32; return r; } - case ImGuiDataType_U16: { ImU32 v32 = (ImU32)*(ImU16*)p_v; bool r = SliderBehaviorT(bb, id, ImGuiDataType_U32, &v32, *(const ImU16*)p_min, *(const ImU16*)p_max, format, power, flags, out_grab_bb); if (r) *(ImU16*)p_v = (ImU16)v32; return r; } - case ImGuiDataType_S32: - IM_ASSERT(*(const ImS32*)p_min >= IM_S32_MIN/2 && *(const ImS32*)p_max <= IM_S32_MAX/2); - return SliderBehaviorT(bb, id, data_type, (ImS32*)p_v, *(const ImS32*)p_min, *(const ImS32*)p_max, format, power, flags, out_grab_bb); - case ImGuiDataType_U32: - IM_ASSERT(*(const ImU32*)p_max <= IM_U32_MAX/2); - return SliderBehaviorT(bb, id, data_type, (ImU32*)p_v, *(const ImU32*)p_min, *(const ImU32*)p_max, format, power, flags, out_grab_bb); - case ImGuiDataType_S64: - IM_ASSERT(*(const ImS64*)p_min >= IM_S64_MIN/2 && *(const ImS64*)p_max <= IM_S64_MAX/2); - return SliderBehaviorT(bb, id, data_type, (ImS64*)p_v, *(const ImS64*)p_min, *(const ImS64*)p_max, format, power, flags, out_grab_bb); - case ImGuiDataType_U64: - IM_ASSERT(*(const ImU64*)p_max <= IM_U64_MAX/2); - return SliderBehaviorT(bb, id, data_type, (ImU64*)p_v, *(const ImU64*)p_min, *(const ImU64*)p_max, format, power, flags, out_grab_bb); - case ImGuiDataType_Float: - IM_ASSERT(*(const float*)p_min >= -FLT_MAX/2.0f && *(const float*)p_max <= FLT_MAX/2.0f); - return SliderBehaviorT(bb, id, data_type, (float*)p_v, *(const float*)p_min, *(const float*)p_max, format, power, flags, out_grab_bb); - case ImGuiDataType_Double: - IM_ASSERT(*(const double*)p_min >= -DBL_MAX/2.0f && *(const double*)p_max <= DBL_MAX/2.0f); - return SliderBehaviorT(bb, id, data_type, (double*)p_v, *(const double*)p_min, *(const double*)p_max, format, power, flags, out_grab_bb); - case ImGuiDataType_COUNT: break; - } - IM_ASSERT(0); - return false; -} - -// Note: p_data, p_min and p_max are _pointers_ to a memory address holding the data. For a slider, they are all required. -// Read code of e.g. SliderFloat(), SliderInt() etc. or examples in 'Demo->Widgets->Data Types' to understand how to use this function directly. -bool ImGui::SliderScalar(const char* label, ImGuiDataType data_type, void* p_data, const void* p_min, const void* p_max, const char* format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - const float w = CalcItemWidth(); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + ImVec2(w, label_size.y + style.FramePadding.y*2.0f)); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb)) - return false; - - // Default format string when passing NULL - if (format == NULL) - format = DataTypeGetInfo(data_type)->PrintFmt; - else if (data_type == ImGuiDataType_S32 && strcmp(format, "%d") != 0) // (FIXME-LEGACY: Patch old "%.0f" format string to use "%d", read function more details.) - format = PatchFormatStringFloatToInt(format); - - // Tabbing or CTRL-clicking on Slider turns it into an input box - const bool hovered = ItemHoverable(frame_bb, id); - bool temp_input_is_active = TempInputIsActive(id); - bool temp_input_start = false; - if (!temp_input_is_active) - { - const bool focus_requested = FocusableItemRegister(window, id); - const bool clicked = (hovered && g.IO.MouseClicked[0]); - if (focus_requested || clicked || g.NavActivateId == id || g.NavInputId == id) - { - SetActiveID(id, window); - SetFocusID(id, window); - FocusWindow(window); - g.ActiveIdUsingNavDirMask |= (1 << ImGuiDir_Left) | (1 << ImGuiDir_Right); - if (focus_requested || (clicked && g.IO.KeyCtrl) || g.NavInputId == id) - { - temp_input_start = true; - FocusableItemUnregister(window); - } - } - } - if (temp_input_is_active || temp_input_start) - return TempInputScalar(frame_bb, id, label, data_type, p_data, format); - - // Draw frame - const ImU32 frame_col = GetColorU32(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); - RenderNavHighlight(frame_bb, id); - RenderFrame(frame_bb.Min, frame_bb.Max, frame_col, true, g.Style.FrameRounding); - - // Slider behavior - ImRect grab_bb; - const bool value_changed = SliderBehavior(frame_bb, id, data_type, p_data, p_min, p_max, format, power, ImGuiSliderFlags_None, &grab_bb); - if (value_changed) - MarkItemEdited(id); - - // Render grab - if (grab_bb.Max.x > grab_bb.Min.x) - window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, GetColorU32(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding); - - // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. - char value_buf[64]; - const char* value_buf_end = value_buf + DataTypeFormatString(value_buf, IM_ARRAYSIZE(value_buf), data_type, p_data, format); - RenderTextClipped(frame_bb.Min, frame_bb.Max, value_buf, value_buf_end, NULL, ImVec2(0.5f,0.5f)); - - if (label_size.x > 0.0f) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags); - return value_changed; -} - -// Add multiple sliders on 1 line for compact edition of multiple components -bool ImGui::SliderScalarN(const char* label, ImGuiDataType data_type, void* v, int components, const void* v_min, const void* v_max, const char* format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - bool value_changed = false; - BeginGroup(); - PushID(label); - PushMultiItemsWidths(components, CalcItemWidth()); - size_t type_size = GDataTypeInfo[data_type].Size; - for (int i = 0; i < components; i++) - { - PushID(i); - if (i > 0) - SameLine(0, g.Style.ItemInnerSpacing.x); - value_changed |= SliderScalar("", data_type, v, v_min, v_max, format, power); - PopID(); - PopItemWidth(); - v = (void*)((char*)v + type_size); - } - PopID(); - - const char* label_end = FindRenderedTextEnd(label); - if (label != label_end) - { - SameLine(0, g.Style.ItemInnerSpacing.x); - TextEx(label, label_end); - } - - EndGroup(); - return value_changed; -} - -bool ImGui::SliderFloat(const char* label, float* v, float v_min, float v_max, const char* format, float power) -{ - return SliderScalar(label, ImGuiDataType_Float, v, &v_min, &v_max, format, power); -} - -bool ImGui::SliderFloat2(const char* label, float v[2], float v_min, float v_max, const char* format, float power) -{ - return SliderScalarN(label, ImGuiDataType_Float, v, 2, &v_min, &v_max, format, power); -} - -bool ImGui::SliderFloat3(const char* label, float v[3], float v_min, float v_max, const char* format, float power) -{ - return SliderScalarN(label, ImGuiDataType_Float, v, 3, &v_min, &v_max, format, power); -} - -bool ImGui::SliderFloat4(const char* label, float v[4], float v_min, float v_max, const char* format, float power) -{ - return SliderScalarN(label, ImGuiDataType_Float, v, 4, &v_min, &v_max, format, power); -} - -bool ImGui::SliderAngle(const char* label, float* v_rad, float v_degrees_min, float v_degrees_max, const char* format) -{ - if (format == NULL) - format = "%.0f deg"; - float v_deg = (*v_rad) * 360.0f / (2*IM_PI); - bool value_changed = SliderFloat(label, &v_deg, v_degrees_min, v_degrees_max, format, 1.0f); - *v_rad = v_deg * (2*IM_PI) / 360.0f; - return value_changed; -} - -bool ImGui::SliderInt(const char* label, int* v, int v_min, int v_max, const char* format) -{ - return SliderScalar(label, ImGuiDataType_S32, v, &v_min, &v_max, format); -} - -bool ImGui::SliderInt2(const char* label, int v[2], int v_min, int v_max, const char* format) -{ - return SliderScalarN(label, ImGuiDataType_S32, v, 2, &v_min, &v_max, format); -} - -bool ImGui::SliderInt3(const char* label, int v[3], int v_min, int v_max, const char* format) -{ - return SliderScalarN(label, ImGuiDataType_S32, v, 3, &v_min, &v_max, format); -} - -bool ImGui::SliderInt4(const char* label, int v[4], int v_min, int v_max, const char* format) -{ - return SliderScalarN(label, ImGuiDataType_S32, v, 4, &v_min, &v_max, format); -} - -bool ImGui::VSliderScalar(const char* label, const ImVec2& size, ImGuiDataType data_type, void* p_data, const void* p_min, const void* p_max, const char* format, float power) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + size); - const ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - - ItemSize(bb, style.FramePadding.y); - if (!ItemAdd(frame_bb, id)) - return false; - - // Default format string when passing NULL - if (format == NULL) - format = DataTypeGetInfo(data_type)->PrintFmt; - else if (data_type == ImGuiDataType_S32 && strcmp(format, "%d") != 0) // (FIXME-LEGACY: Patch old "%.0f" format string to use "%d", read function more details.) - format = PatchFormatStringFloatToInt(format); - - const bool hovered = ItemHoverable(frame_bb, id); - if ((hovered && g.IO.MouseClicked[0]) || g.NavActivateId == id || g.NavInputId == id) - { - SetActiveID(id, window); - SetFocusID(id, window); - FocusWindow(window); - g.ActiveIdUsingNavDirMask |= (1 << ImGuiDir_Up) | (1 << ImGuiDir_Down); - } - - // Draw frame - const ImU32 frame_col = GetColorU32(g.ActiveId == id ? ImGuiCol_FrameBgActive : g.HoveredId == id ? ImGuiCol_FrameBgHovered : ImGuiCol_FrameBg); - RenderNavHighlight(frame_bb, id); - RenderFrame(frame_bb.Min, frame_bb.Max, frame_col, true, g.Style.FrameRounding); - - // Slider behavior - ImRect grab_bb; - const bool value_changed = SliderBehavior(frame_bb, id, data_type, p_data, p_min, p_max, format, power, ImGuiSliderFlags_Vertical, &grab_bb); - if (value_changed) - MarkItemEdited(id); - - // Render grab - if (grab_bb.Max.y > grab_bb.Min.y) - window->DrawList->AddRectFilled(grab_bb.Min, grab_bb.Max, GetColorU32(g.ActiveId == id ? ImGuiCol_SliderGrabActive : ImGuiCol_SliderGrab), style.GrabRounding); - - // Display value using user-provided display format so user can add prefix/suffix/decorations to the value. - // For the vertical slider we allow centered text to overlap the frame padding - char value_buf[64]; - const char* value_buf_end = value_buf + DataTypeFormatString(value_buf, IM_ARRAYSIZE(value_buf), data_type, p_data, format); - RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, value_buf, value_buf_end, NULL, ImVec2(0.5f,0.0f)); - if (label_size.x > 0.0f) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - return value_changed; -} - -bool ImGui::VSliderFloat(const char* label, const ImVec2& size, float* v, float v_min, float v_max, const char* format, float power) -{ - return VSliderScalar(label, size, ImGuiDataType_Float, v, &v_min, &v_max, format, power); -} - -bool ImGui::VSliderInt(const char* label, const ImVec2& size, int* v, int v_min, int v_max, const char* format) -{ - return VSliderScalar(label, size, ImGuiDataType_S32, v, &v_min, &v_max, format); -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: InputScalar, InputFloat, InputInt, etc. -//------------------------------------------------------------------------- -// - ImParseFormatFindStart() [Internal] -// - ImParseFormatFindEnd() [Internal] -// - ImParseFormatTrimDecorations() [Internal] -// - ImParseFormatPrecision() [Internal] -// - TempInputTextScalar() [Internal] -// - InputScalar() -// - InputScalarN() -// - InputFloat() -// - InputFloat2() -// - InputFloat3() -// - InputFloat4() -// - InputInt() -// - InputInt2() -// - InputInt3() -// - InputInt4() -// - InputDouble() -//------------------------------------------------------------------------- - -// We don't use strchr() because our strings are usually very short and often start with '%' -const char* ImParseFormatFindStart(const char* fmt) -{ - while (char c = fmt[0]) - { - if (c == '%' && fmt[1] != '%') - return fmt; - else if (c == '%') - fmt++; - fmt++; - } - return fmt; -} - -const char* ImParseFormatFindEnd(const char* fmt) -{ - // Printf/scanf types modifiers: I/L/h/j/l/t/w/z. Other uppercase letters qualify as types aka end of the format. - if (fmt[0] != '%') - return fmt; - const unsigned int ignored_uppercase_mask = (1 << ('I'-'A')) | (1 << ('L'-'A')); - const unsigned int ignored_lowercase_mask = (1 << ('h'-'a')) | (1 << ('j'-'a')) | (1 << ('l'-'a')) | (1 << ('t'-'a')) | (1 << ('w'-'a')) | (1 << ('z'-'a')); - for (char c; (c = *fmt) != 0; fmt++) - { - if (c >= 'A' && c <= 'Z' && ((1 << (c - 'A')) & ignored_uppercase_mask) == 0) - return fmt + 1; - if (c >= 'a' && c <= 'z' && ((1 << (c - 'a')) & ignored_lowercase_mask) == 0) - return fmt + 1; - } - return fmt; -} - -// Extract the format out of a format string with leading or trailing decorations -// fmt = "blah blah" -> return fmt -// fmt = "%.3f" -> return fmt -// fmt = "hello %.3f" -> return fmt + 6 -// fmt = "%.3f hello" -> return buf written with "%.3f" -const char* ImParseFormatTrimDecorations(const char* fmt, char* buf, size_t buf_size) -{ - const char* fmt_start = ImParseFormatFindStart(fmt); - if (fmt_start[0] != '%') - return fmt; - const char* fmt_end = ImParseFormatFindEnd(fmt_start); - if (fmt_end[0] == 0) // If we only have leading decoration, we don't need to copy the data. - return fmt_start; - ImStrncpy(buf, fmt_start, ImMin((size_t)(fmt_end - fmt_start) + 1, buf_size)); - return buf; -} - -// Parse display precision back from the display format string -// FIXME: This is still used by some navigation code path to infer a minimum tweak step, but we should aim to rework widgets so it isn't needed. -int ImParseFormatPrecision(const char* fmt, int default_precision) -{ - fmt = ImParseFormatFindStart(fmt); - if (fmt[0] != '%') - return default_precision; - fmt++; - while (*fmt >= '0' && *fmt <= '9') - fmt++; - int precision = INT_MAX; - if (*fmt == '.') - { - fmt = ImAtoi(fmt + 1, &precision); - if (precision < 0 || precision > 99) - precision = default_precision; - } - if (*fmt == 'e' || *fmt == 'E') // Maximum precision with scientific notation - precision = -1; - if ((*fmt == 'g' || *fmt == 'G') && precision == INT_MAX) - precision = -1; - return (precision == INT_MAX) ? default_precision : precision; -} - -// Create text input in place of another active widget (e.g. used when doing a CTRL+Click on drag/slider widgets) -// FIXME: Facilitate using this in variety of other situations. -bool ImGui::TempInputText(const ImRect& bb, ImGuiID id, const char* label, char* buf, int buf_size, ImGuiInputTextFlags flags) -{ - // On the first frame, g.TempInputTextId == 0, then on subsequent frames it becomes == id. - // We clear ActiveID on the first frame to allow the InputText() taking it back. - ImGuiContext& g = *GImGui; - const bool init = (g.TempInputId != id); - if (init) - ClearActiveID(); - - g.CurrentWindow->DC.CursorPos = bb.Min; - bool value_changed = InputTextEx(label, NULL, buf, buf_size, bb.GetSize(), flags); - if (init) - { - // First frame we started displaying the InputText widget, we expect it to take the active id. - IM_ASSERT(g.ActiveId == id); - g.TempInputId = g.ActiveId; - } - return value_changed; -} - -bool ImGui::TempInputScalar(const ImRect& bb, ImGuiID id, const char* label, ImGuiDataType data_type, void* p_data, const char* format) -{ - ImGuiContext& g = *GImGui; - - char fmt_buf[32]; - char data_buf[32]; - format = ImParseFormatTrimDecorations(format, fmt_buf, IM_ARRAYSIZE(fmt_buf)); - DataTypeFormatString(data_buf, IM_ARRAYSIZE(data_buf), data_type, p_data, format); - ImStrTrimBlanks(data_buf); - - ImGuiInputTextFlags flags = ImGuiInputTextFlags_AutoSelectAll | ImGuiInputTextFlags_NoMarkEdited; - flags |= ((data_type == ImGuiDataType_Float || data_type == ImGuiDataType_Double) ? ImGuiInputTextFlags_CharsScientific : ImGuiInputTextFlags_CharsDecimal); - bool value_changed = TempInputText(bb, id, label, data_buf, IM_ARRAYSIZE(data_buf), flags); - if (value_changed) - { - value_changed = DataTypeApplyOpFromText(data_buf, g.InputTextState.InitialTextA.Data, data_type, p_data, NULL); - if (value_changed) - MarkItemEdited(id); - } - return value_changed; -} - -// Note: p_data, p_step, p_step_fast are _pointers_ to a memory address holding the data. For an Input widget, p_step and p_step_fast are optional. -// Read code of e.g. InputFloat(), InputInt() etc. or examples in 'Demo->Widgets->Data Types' to understand how to use this function directly. -bool ImGui::InputScalar(const char* label, ImGuiDataType data_type, void* p_data, const void* p_step, const void* p_step_fast, const char* format, ImGuiInputTextFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - ImGuiStyle& style = g.Style; - - if (format == NULL) - format = DataTypeGetInfo(data_type)->PrintFmt; - - char buf[64]; - DataTypeFormatString(buf, IM_ARRAYSIZE(buf), data_type, p_data, format); - - bool value_changed = false; - if ((flags & (ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsScientific)) == 0) - flags |= ImGuiInputTextFlags_CharsDecimal; - flags |= ImGuiInputTextFlags_AutoSelectAll; - flags |= ImGuiInputTextFlags_NoMarkEdited; // We call MarkItemEdited() ourselve by comparing the actual data rather than the string. - - if (p_step != NULL) - { - const float button_size = GetFrameHeight(); - - BeginGroup(); // The only purpose of the group here is to allow the caller to query item data e.g. IsItemActive() - PushID(label); - SetNextItemWidth(ImMax(1.0f, CalcItemWidth() - (button_size + style.ItemInnerSpacing.x) * 2)); - if (InputText("", buf, IM_ARRAYSIZE(buf), flags)) // PushId(label) + "" gives us the expected ID from outside point of view - value_changed = DataTypeApplyOpFromText(buf, g.InputTextState.InitialTextA.Data, data_type, p_data, format); - - // Step buttons - const ImVec2 backup_frame_padding = style.FramePadding; - style.FramePadding.x = style.FramePadding.y; - ImGuiButtonFlags button_flags = ImGuiButtonFlags_Repeat | ImGuiButtonFlags_DontClosePopups; - if (flags & ImGuiInputTextFlags_ReadOnly) - button_flags |= ImGuiButtonFlags_Disabled; - SameLine(0, style.ItemInnerSpacing.x); - if (ButtonEx("-", ImVec2(button_size, button_size), button_flags)) - { - DataTypeApplyOp(data_type, '-', p_data, p_data, g.IO.KeyCtrl && p_step_fast ? p_step_fast : p_step); - value_changed = true; - } - SameLine(0, style.ItemInnerSpacing.x); - if (ButtonEx("+", ImVec2(button_size, button_size), button_flags)) - { - DataTypeApplyOp(data_type, '+', p_data, p_data, g.IO.KeyCtrl && p_step_fast ? p_step_fast : p_step); - value_changed = true; - } - - const char* label_end = FindRenderedTextEnd(label); - if (label != label_end) - { - SameLine(0, style.ItemInnerSpacing.x); - TextEx(label, label_end); - } - style.FramePadding = backup_frame_padding; - - PopID(); - EndGroup(); - } - else - { - if (InputText(label, buf, IM_ARRAYSIZE(buf), flags)) - value_changed = DataTypeApplyOpFromText(buf, g.InputTextState.InitialTextA.Data, data_type, p_data, format); - } - if (value_changed) - MarkItemEdited(window->DC.LastItemId); - - return value_changed; -} - -bool ImGui::InputScalarN(const char* label, ImGuiDataType data_type, void* p_data, int components, const void* p_step, const void* p_step_fast, const char* format, ImGuiInputTextFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - bool value_changed = false; - BeginGroup(); - PushID(label); - PushMultiItemsWidths(components, CalcItemWidth()); - size_t type_size = GDataTypeInfo[data_type].Size; - for (int i = 0; i < components; i++) - { - PushID(i); - if (i > 0) - SameLine(0, g.Style.ItemInnerSpacing.x); - value_changed |= InputScalar("", data_type, p_data, p_step, p_step_fast, format, flags); - PopID(); - PopItemWidth(); - p_data = (void*)((char*)p_data + type_size); - } - PopID(); - - const char* label_end = FindRenderedTextEnd(label); - if (label != label_end) - { - SameLine(0.0f, g.Style.ItemInnerSpacing.x); - TextEx(label, label_end); - } - - EndGroup(); - return value_changed; -} - -bool ImGui::InputFloat(const char* label, float* v, float step, float step_fast, const char* format, ImGuiInputTextFlags flags) -{ - flags |= ImGuiInputTextFlags_CharsScientific; - return InputScalar(label, ImGuiDataType_Float, (void*)v, (void*)(step>0.0f ? &step : NULL), (void*)(step_fast>0.0f ? &step_fast : NULL), format, flags); -} - -bool ImGui::InputFloat2(const char* label, float v[2], const char* format, ImGuiInputTextFlags flags) -{ - return InputScalarN(label, ImGuiDataType_Float, v, 2, NULL, NULL, format, flags); -} - -bool ImGui::InputFloat3(const char* label, float v[3], const char* format, ImGuiInputTextFlags flags) -{ - return InputScalarN(label, ImGuiDataType_Float, v, 3, NULL, NULL, format, flags); -} - -bool ImGui::InputFloat4(const char* label, float v[4], const char* format, ImGuiInputTextFlags flags) -{ - return InputScalarN(label, ImGuiDataType_Float, v, 4, NULL, NULL, format, flags); -} - -// Prefer using "const char* format" directly, which is more flexible and consistent with other API. -#ifndef IMGUI_DISABLE_OBSOLETE_FUNCTIONS -bool ImGui::InputFloat(const char* label, float* v, float step, float step_fast, int decimal_precision, ImGuiInputTextFlags flags) -{ - char format[16] = "%f"; - if (decimal_precision >= 0) - ImFormatString(format, IM_ARRAYSIZE(format), "%%.%df", decimal_precision); - return InputFloat(label, v, step, step_fast, format, flags); -} - -bool ImGui::InputFloat2(const char* label, float v[2], int decimal_precision, ImGuiInputTextFlags flags) -{ - char format[16] = "%f"; - if (decimal_precision >= 0) - ImFormatString(format, IM_ARRAYSIZE(format), "%%.%df", decimal_precision); - return InputScalarN(label, ImGuiDataType_Float, v, 2, NULL, NULL, format, flags); -} - -bool ImGui::InputFloat3(const char* label, float v[3], int decimal_precision, ImGuiInputTextFlags flags) -{ - char format[16] = "%f"; - if (decimal_precision >= 0) - ImFormatString(format, IM_ARRAYSIZE(format), "%%.%df", decimal_precision); - return InputScalarN(label, ImGuiDataType_Float, v, 3, NULL, NULL, format, flags); -} - -bool ImGui::InputFloat4(const char* label, float v[4], int decimal_precision, ImGuiInputTextFlags flags) -{ - char format[16] = "%f"; - if (decimal_precision >= 0) - ImFormatString(format, IM_ARRAYSIZE(format), "%%.%df", decimal_precision); - return InputScalarN(label, ImGuiDataType_Float, v, 4, NULL, NULL, format, flags); -} -#endif // IMGUI_DISABLE_OBSOLETE_FUNCTIONS - -bool ImGui::InputInt(const char* label, int* v, int step, int step_fast, ImGuiInputTextFlags flags) -{ - // Hexadecimal input provided as a convenience but the flag name is awkward. Typically you'd use InputText() to parse your own data, if you want to handle prefixes. - const char* format = (flags & ImGuiInputTextFlags_CharsHexadecimal) ? "%08X" : "%d"; - return InputScalar(label, ImGuiDataType_S32, (void*)v, (void*)(step>0 ? &step : NULL), (void*)(step_fast>0 ? &step_fast : NULL), format, flags); -} - -bool ImGui::InputInt2(const char* label, int v[2], ImGuiInputTextFlags flags) -{ - return InputScalarN(label, ImGuiDataType_S32, v, 2, NULL, NULL, "%d", flags); -} - -bool ImGui::InputInt3(const char* label, int v[3], ImGuiInputTextFlags flags) -{ - return InputScalarN(label, ImGuiDataType_S32, v, 3, NULL, NULL, "%d", flags); -} - -bool ImGui::InputInt4(const char* label, int v[4], ImGuiInputTextFlags flags) -{ - return InputScalarN(label, ImGuiDataType_S32, v, 4, NULL, NULL, "%d", flags); -} - -bool ImGui::InputDouble(const char* label, double* v, double step, double step_fast, const char* format, ImGuiInputTextFlags flags) -{ - flags |= ImGuiInputTextFlags_CharsScientific; - return InputScalar(label, ImGuiDataType_Double, (void*)v, (void*)(step>0.0 ? &step : NULL), (void*)(step_fast>0.0 ? &step_fast : NULL), format, flags); -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: InputText, InputTextMultiline, InputTextWithHint -//------------------------------------------------------------------------- -// - InputText() -// - InputTextWithHint() -// - InputTextMultiline() -// - InputTextEx() [Internal] -//------------------------------------------------------------------------- - -bool ImGui::InputText(const char* label, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data) -{ - IM_ASSERT(!(flags & ImGuiInputTextFlags_Multiline)); // call InputTextMultiline() - return InputTextEx(label, NULL, buf, (int)buf_size, ImVec2(0,0), flags, callback, user_data); -} - -bool ImGui::InputTextMultiline(const char* label, char* buf, size_t buf_size, const ImVec2& size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data) -{ - return InputTextEx(label, NULL, buf, (int)buf_size, size, flags | ImGuiInputTextFlags_Multiline, callback, user_data); -} - -bool ImGui::InputTextWithHint(const char* label, const char* hint, char* buf, size_t buf_size, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data) -{ - IM_ASSERT(!(flags & ImGuiInputTextFlags_Multiline)); // call InputTextMultiline() - return InputTextEx(label, hint, buf, (int)buf_size, ImVec2(0, 0), flags, callback, user_data); -} - -static int InputTextCalcTextLenAndLineCount(const char* text_begin, const char** out_text_end) -{ - int line_count = 0; - const char* s = text_begin; - while (char c = *s++) // We are only matching for \n so we can ignore UTF-8 decoding - if (c == '\n') - line_count++; - s--; - if (s[0] != '\n' && s[0] != '\r') - line_count++; - *out_text_end = s; - return line_count; -} - -static ImVec2 InputTextCalcTextSizeW(const ImWchar* text_begin, const ImWchar* text_end, const ImWchar** remaining, ImVec2* out_offset, bool stop_on_new_line) -{ - ImGuiContext& g = *GImGui; - ImFont* font = g.Font; - const float line_height = g.FontSize; - const float scale = line_height / font->FontSize; - - ImVec2 text_size = ImVec2(0,0); - float line_width = 0.0f; - - const ImWchar* s = text_begin; - while (s < text_end) - { - unsigned int c = (unsigned int)(*s++); - if (c == '\n') - { - text_size.x = ImMax(text_size.x, line_width); - text_size.y += line_height; - line_width = 0.0f; - if (stop_on_new_line) - break; - continue; - } - if (c == '\r') - continue; - - const float char_width = font->GetCharAdvance((ImWchar)c) * scale; - line_width += char_width; - } - - if (text_size.x < line_width) - text_size.x = line_width; - - if (out_offset) - *out_offset = ImVec2(line_width, text_size.y + line_height); // offset allow for the possibility of sitting after a trailing \n - - if (line_width > 0 || text_size.y == 0.0f) // whereas size.y will ignore the trailing \n - text_size.y += line_height; - - if (remaining) - *remaining = s; - - return text_size; -} - -// Wrapper for stb_textedit.h to edit text (our wrapper is for: statically sized buffer, single-line, wchar characters. InputText converts between UTF-8 and wchar) -namespace ImStb -{ - -static int STB_TEXTEDIT_STRINGLEN(const STB_TEXTEDIT_STRING* obj) { return obj->CurLenW; } -static ImWchar STB_TEXTEDIT_GETCHAR(const STB_TEXTEDIT_STRING* obj, int idx) { return obj->TextW[idx]; } -static float STB_TEXTEDIT_GETWIDTH(STB_TEXTEDIT_STRING* obj, int line_start_idx, int char_idx) { ImWchar c = obj->TextW[line_start_idx + char_idx]; if (c == '\n') return STB_TEXTEDIT_GETWIDTH_NEWLINE; ImGuiContext& g = *GImGui; return g.Font->GetCharAdvance(c) * (g.FontSize / g.Font->FontSize); } -static int STB_TEXTEDIT_KEYTOTEXT(int key) { return key >= 0x200000 ? 0 : key; } -static ImWchar STB_TEXTEDIT_NEWLINE = '\n'; -static void STB_TEXTEDIT_LAYOUTROW(StbTexteditRow* r, STB_TEXTEDIT_STRING* obj, int line_start_idx) -{ - const ImWchar* text = obj->TextW.Data; - const ImWchar* text_remaining = NULL; - const ImVec2 size = InputTextCalcTextSizeW(text + line_start_idx, text + obj->CurLenW, &text_remaining, NULL, true); - r->x0 = 0.0f; - r->x1 = size.x; - r->baseline_y_delta = size.y; - r->ymin = 0.0f; - r->ymax = size.y; - r->num_chars = (int)(text_remaining - (text + line_start_idx)); -} - -static bool is_separator(unsigned int c) { return ImCharIsBlankW(c) || c==',' || c==';' || c=='(' || c==')' || c=='{' || c=='}' || c=='[' || c==']' || c=='|'; } -static int is_word_boundary_from_right(STB_TEXTEDIT_STRING* obj, int idx) { return idx > 0 ? (is_separator( obj->TextW[idx-1] ) && !is_separator( obj->TextW[idx] ) ) : 1; } -static int STB_TEXTEDIT_MOVEWORDLEFT_IMPL(STB_TEXTEDIT_STRING* obj, int idx) { idx--; while (idx >= 0 && !is_word_boundary_from_right(obj, idx)) idx--; return idx < 0 ? 0 : idx; } -#ifdef __APPLE__ // FIXME: Move setting to IO structure -static int is_word_boundary_from_left(STB_TEXTEDIT_STRING* obj, int idx) { return idx > 0 ? (!is_separator( obj->TextW[idx-1] ) && is_separator( obj->TextW[idx] ) ) : 1; } -static int STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(STB_TEXTEDIT_STRING* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_left(obj, idx)) idx++; return idx > len ? len : idx; } -#else -static int STB_TEXTEDIT_MOVEWORDRIGHT_IMPL(STB_TEXTEDIT_STRING* obj, int idx) { idx++; int len = obj->CurLenW; while (idx < len && !is_word_boundary_from_right(obj, idx)) idx++; return idx > len ? len : idx; } -#endif -#define STB_TEXTEDIT_MOVEWORDLEFT STB_TEXTEDIT_MOVEWORDLEFT_IMPL // They need to be #define for stb_textedit.h -#define STB_TEXTEDIT_MOVEWORDRIGHT STB_TEXTEDIT_MOVEWORDRIGHT_IMPL - -static void STB_TEXTEDIT_DELETECHARS(STB_TEXTEDIT_STRING* obj, int pos, int n) -{ - ImWchar* dst = obj->TextW.Data + pos; - - // We maintain our buffer length in both UTF-8 and wchar formats - obj->CurLenA -= ImTextCountUtf8BytesFromStr(dst, dst + n); - obj->CurLenW -= n; - - // Offset remaining text (FIXME-OPT: Use memmove) - const ImWchar* src = obj->TextW.Data + pos + n; - while (ImWchar c = *src++) - *dst++ = c; - *dst = '\0'; -} - -static bool STB_TEXTEDIT_INSERTCHARS(STB_TEXTEDIT_STRING* obj, int pos, const ImWchar* new_text, int new_text_len) -{ - const bool is_resizable = (obj->UserFlags & ImGuiInputTextFlags_CallbackResize) != 0; - const int text_len = obj->CurLenW; - IM_ASSERT(pos <= text_len); - - const int new_text_len_utf8 = ImTextCountUtf8BytesFromStr(new_text, new_text + new_text_len); - if (!is_resizable && (new_text_len_utf8 + obj->CurLenA + 1 > obj->BufCapacityA)) - return false; - - // Grow internal buffer if needed - if (new_text_len + text_len + 1 > obj->TextW.Size) - { - if (!is_resizable) - return false; - IM_ASSERT(text_len < obj->TextW.Size); - obj->TextW.resize(text_len + ImClamp(new_text_len * 4, 32, ImMax(256, new_text_len)) + 1); - } - - ImWchar* text = obj->TextW.Data; - if (pos != text_len) - memmove(text + pos + new_text_len, text + pos, (size_t)(text_len - pos) * sizeof(ImWchar)); - memcpy(text + pos, new_text, (size_t)new_text_len * sizeof(ImWchar)); - - obj->CurLenW += new_text_len; - obj->CurLenA += new_text_len_utf8; - obj->TextW[obj->CurLenW] = '\0'; - - return true; -} - -// We don't use an enum so we can build even with conflicting symbols (if another user of stb_textedit.h leak their STB_TEXTEDIT_K_* symbols) -#define STB_TEXTEDIT_K_LEFT 0x200000 // keyboard input to move cursor left -#define STB_TEXTEDIT_K_RIGHT 0x200001 // keyboard input to move cursor right -#define STB_TEXTEDIT_K_UP 0x200002 // keyboard input to move cursor up -#define STB_TEXTEDIT_K_DOWN 0x200003 // keyboard input to move cursor down -#define STB_TEXTEDIT_K_LINESTART 0x200004 // keyboard input to move cursor to start of line -#define STB_TEXTEDIT_K_LINEEND 0x200005 // keyboard input to move cursor to end of line -#define STB_TEXTEDIT_K_TEXTSTART 0x200006 // keyboard input to move cursor to start of text -#define STB_TEXTEDIT_K_TEXTEND 0x200007 // keyboard input to move cursor to end of text -#define STB_TEXTEDIT_K_DELETE 0x200008 // keyboard input to delete selection or character under cursor -#define STB_TEXTEDIT_K_BACKSPACE 0x200009 // keyboard input to delete selection or character left of cursor -#define STB_TEXTEDIT_K_UNDO 0x20000A // keyboard input to perform undo -#define STB_TEXTEDIT_K_REDO 0x20000B // keyboard input to perform redo -#define STB_TEXTEDIT_K_WORDLEFT 0x20000C // keyboard input to move cursor left one word -#define STB_TEXTEDIT_K_WORDRIGHT 0x20000D // keyboard input to move cursor right one word -#define STB_TEXTEDIT_K_SHIFT 0x400000 - -#define STB_TEXTEDIT_IMPLEMENTATION -#include "imstb_textedit.h" - -// stb_textedit internally allows for a single undo record to do addition and deletion, but somehow, calling -// the stb_textedit_paste() function creates two separate records, so we perform it manually. (FIXME: Report to nothings/stb?) -static void stb_textedit_replace(STB_TEXTEDIT_STRING* str, STB_TexteditState* state, const STB_TEXTEDIT_CHARTYPE* text, int text_len) -{ - stb_text_makeundo_replace(str, state, 0, str->CurLenW, text_len); - ImStb::STB_TEXTEDIT_DELETECHARS(str, 0, str->CurLenW); - if (text_len <= 0) - return; - if (ImStb::STB_TEXTEDIT_INSERTCHARS(str, 0, text, text_len)) - { - state->cursor = text_len; - state->has_preferred_x = 0; - return; - } - IM_ASSERT(0); // Failed to insert character, normally shouldn't happen because of how we currently use stb_textedit_replace() -} - -} // namespace ImStb - -void ImGuiInputTextState::OnKeyPressed(int key) -{ - stb_textedit_key(this, &Stb, key); - CursorFollow = true; - CursorAnimReset(); -} - -ImGuiInputTextCallbackData::ImGuiInputTextCallbackData() -{ - memset(this, 0, sizeof(*this)); -} - -// Public API to manipulate UTF-8 text -// We expose UTF-8 to the user (unlike the STB_TEXTEDIT_* functions which are manipulating wchar) -// FIXME: The existence of this rarely exercised code path is a bit of a nuisance. -void ImGuiInputTextCallbackData::DeleteChars(int pos, int bytes_count) -{ - IM_ASSERT(pos + bytes_count <= BufTextLen); - char* dst = Buf + pos; - const char* src = Buf + pos + bytes_count; - while (char c = *src++) - *dst++ = c; - *dst = '\0'; - - if (CursorPos + bytes_count >= pos) - CursorPos -= bytes_count; - else if (CursorPos >= pos) - CursorPos = pos; - SelectionStart = SelectionEnd = CursorPos; - BufDirty = true; - BufTextLen -= bytes_count; -} - -void ImGuiInputTextCallbackData::InsertChars(int pos, const char* new_text, const char* new_text_end) -{ - const bool is_resizable = (Flags & ImGuiInputTextFlags_CallbackResize) != 0; - const int new_text_len = new_text_end ? (int)(new_text_end - new_text) : (int)strlen(new_text); - if (new_text_len + BufTextLen >= BufSize) - { - if (!is_resizable) - return; - - // Contrary to STB_TEXTEDIT_INSERTCHARS() this is working in the UTF8 buffer, hence the midly similar code (until we remove the U16 buffer alltogether!) - ImGuiContext& g = *GImGui; - ImGuiInputTextState* edit_state = &g.InputTextState; - IM_ASSERT(edit_state->ID != 0 && g.ActiveId == edit_state->ID); - IM_ASSERT(Buf == edit_state->TextA.Data); - int new_buf_size = BufTextLen + ImClamp(new_text_len * 4, 32, ImMax(256, new_text_len)) + 1; - edit_state->TextA.reserve(new_buf_size + 1); - Buf = edit_state->TextA.Data; - BufSize = edit_state->BufCapacityA = new_buf_size; - } - - if (BufTextLen != pos) - memmove(Buf + pos + new_text_len, Buf + pos, (size_t)(BufTextLen - pos)); - memcpy(Buf + pos, new_text, (size_t)new_text_len * sizeof(char)); - Buf[BufTextLen + new_text_len] = '\0'; - - if (CursorPos >= pos) - CursorPos += new_text_len; - SelectionStart = SelectionEnd = CursorPos; - BufDirty = true; - BufTextLen += new_text_len; -} - -// Return false to discard a character. -static bool InputTextFilterCharacter(unsigned int* p_char, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* user_data) -{ - unsigned int c = *p_char; - - // Filter non-printable (NB: isprint is unreliable! see #2467) - if (c < 0x20) - { - bool pass = false; - pass |= (c == '\n' && (flags & ImGuiInputTextFlags_Multiline)); - pass |= (c == '\t' && (flags & ImGuiInputTextFlags_AllowTabInput)); - if (!pass) - return false; - } - - // We ignore Ascii representation of delete (emitted from Backspace on OSX, see #2578, #2817) - if (c == 127) - return false; - - // Filter private Unicode range. GLFW on OSX seems to send private characters for special keys like arrow keys (FIXME) - if (c >= 0xE000 && c <= 0xF8FF) - return false; - - // Filter Unicode ranges we are not handling in this build. - if (c > IM_UNICODE_CODEPOINT_MAX) - return false; - - // Generic named filters - if (flags & (ImGuiInputTextFlags_CharsDecimal | ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase | ImGuiInputTextFlags_CharsNoBlank | ImGuiInputTextFlags_CharsScientific)) - { - if (flags & ImGuiInputTextFlags_CharsDecimal) - if (!(c >= '0' && c <= '9') && (c != '.') && (c != '-') && (c != '+') && (c != '*') && (c != '/')) - return false; - - if (flags & ImGuiInputTextFlags_CharsScientific) - if (!(c >= '0' && c <= '9') && (c != '.') && (c != '-') && (c != '+') && (c != '*') && (c != '/') && (c != 'e') && (c != 'E')) - return false; - - if (flags & ImGuiInputTextFlags_CharsHexadecimal) - if (!(c >= '0' && c <= '9') && !(c >= 'a' && c <= 'f') && !(c >= 'A' && c <= 'F')) - return false; - - if (flags & ImGuiInputTextFlags_CharsUppercase) - if (c >= 'a' && c <= 'z') - *p_char = (c += (unsigned int)('A'-'a')); - - if (flags & ImGuiInputTextFlags_CharsNoBlank) - if (ImCharIsBlankW(c)) - return false; - } - - // Custom callback filter - if (flags & ImGuiInputTextFlags_CallbackCharFilter) - { - ImGuiInputTextCallbackData callback_data; - memset(&callback_data, 0, sizeof(ImGuiInputTextCallbackData)); - callback_data.EventFlag = ImGuiInputTextFlags_CallbackCharFilter; - callback_data.EventChar = (ImWchar)c; - callback_data.Flags = flags; - callback_data.UserData = user_data; - if (callback(&callback_data) != 0) - return false; - *p_char = callback_data.EventChar; - if (!callback_data.EventChar) - return false; - } - - return true; -} - -// Edit a string of text -// - buf_size account for the zero-terminator, so a buf_size of 6 can hold "Hello" but not "Hello!". -// This is so we can easily call InputText() on static arrays using ARRAYSIZE() and to match -// Note that in std::string world, capacity() would omit 1 byte used by the zero-terminator. -// - When active, hold on a privately held copy of the text (and apply back to 'buf'). So changing 'buf' while the InputText is active has no effect. -// - If you want to use ImGui::InputText() with std::string, see misc/cpp/imgui_stdlib.h -// (FIXME: Rather confusing and messy function, among the worse part of our codebase, expecting to rewrite a V2 at some point.. Partly because we are -// doing UTF8 > U16 > UTF8 conversions on the go to easily interface with stb_textedit. Ideally should stay in UTF-8 all the time. See https://github.com/nothings/stb/issues/188) -bool ImGui::InputTextEx(const char* label, const char* hint, char* buf, int buf_size, const ImVec2& size_arg, ImGuiInputTextFlags flags, ImGuiInputTextCallback callback, void* callback_user_data) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackHistory) && (flags & ImGuiInputTextFlags_Multiline))); // Can't use both together (they both use up/down keys) - IM_ASSERT(!((flags & ImGuiInputTextFlags_CallbackCompletion) && (flags & ImGuiInputTextFlags_AllowTabInput))); // Can't use both together (they both use tab key) - - ImGuiContext& g = *GImGui; - ImGuiIO& io = g.IO; - const ImGuiStyle& style = g.Style; - - const bool RENDER_SELECTION_WHEN_INACTIVE = false; - const bool is_multiline = (flags & ImGuiInputTextFlags_Multiline) != 0; - const bool is_readonly = (flags & ImGuiInputTextFlags_ReadOnly) != 0; - const bool is_password = (flags & ImGuiInputTextFlags_Password) != 0; - const bool is_undoable = (flags & ImGuiInputTextFlags_NoUndoRedo) == 0; - const bool is_resizable = (flags & ImGuiInputTextFlags_CallbackResize) != 0; - if (is_resizable) - IM_ASSERT(callback != NULL); // Must provide a callback if you set the ImGuiInputTextFlags_CallbackResize flag! - - if (is_multiline) // Open group before calling GetID() because groups tracks id created within their scope, - BeginGroup(); - const ImGuiID id = window->GetID(label); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - const ImVec2 frame_size = CalcItemSize(size_arg, CalcItemWidth(), (is_multiline ? g.FontSize * 8.0f : label_size.y) + style.FramePadding.y*2.0f); // Arbitrary default of 8 lines high for multi-line - const ImVec2 total_size = ImVec2(frame_size.x + (label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f), frame_size.y); - - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + frame_size); - const ImRect total_bb(frame_bb.Min, frame_bb.Min + total_size); - - ImGuiWindow* draw_window = window; - ImVec2 inner_size = frame_size; - if (is_multiline) - { - if (!ItemAdd(total_bb, id, &frame_bb)) - { - ItemSize(total_bb, style.FramePadding.y); - EndGroup(); - return false; - } - - // We reproduce the contents of BeginChildFrame() in order to provide 'label' so our window internal data are easier to read/debug. - PushStyleColor(ImGuiCol_ChildBg, style.Colors[ImGuiCol_FrameBg]); - PushStyleVar(ImGuiStyleVar_ChildRounding, style.FrameRounding); - PushStyleVar(ImGuiStyleVar_ChildBorderSize, style.FrameBorderSize); - PushStyleVar(ImGuiStyleVar_WindowPadding, style.FramePadding); - bool child_visible = BeginChildEx(label, id, frame_bb.GetSize(), true, ImGuiWindowFlags_NoMove | ImGuiWindowFlags_AlwaysUseWindowPadding); - PopStyleVar(3); - PopStyleColor(); - if (!child_visible) - { - EndChild(); - EndGroup(); - return false; - } - draw_window = g.CurrentWindow; // Child window - draw_window->DC.NavLayerActiveMaskNext |= draw_window->DC.NavLayerCurrentMask; // This is to ensure that EndChild() will display a navigation highlight so we can "enter" into it. - inner_size.x -= draw_window->ScrollbarSizes.x; - } - else - { - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, id, &frame_bb)) - return false; - } - const bool hovered = ItemHoverable(frame_bb, id); - if (hovered) - g.MouseCursor = ImGuiMouseCursor_TextInput; - - // We are only allowed to access the state if we are already the active widget. - ImGuiInputTextState* state = GetInputTextState(id); - - const bool focus_requested = FocusableItemRegister(window, id); - const bool focus_requested_by_code = focus_requested && (g.FocusRequestCurrWindow == window && g.FocusRequestCurrCounterRegular == window->DC.FocusCounterRegular); - const bool focus_requested_by_tab = focus_requested && !focus_requested_by_code; - - const bool user_clicked = hovered && io.MouseClicked[0]; - const bool user_nav_input_start = (g.ActiveId != id) && ((g.NavInputId == id) || (g.NavActivateId == id && g.NavInputSource == ImGuiInputSource_NavKeyboard)); - const bool user_scroll_finish = is_multiline && state != NULL && g.ActiveId == 0 && g.ActiveIdPreviousFrame == GetWindowScrollbarID(draw_window, ImGuiAxis_Y); - const bool user_scroll_active = is_multiline && state != NULL && g.ActiveId == GetWindowScrollbarID(draw_window, ImGuiAxis_Y); - - bool clear_active_id = false; - bool select_all = (g.ActiveId != id) && ((flags & ImGuiInputTextFlags_AutoSelectAll) != 0 || user_nav_input_start) && (!is_multiline); - - const bool init_make_active = (focus_requested || user_clicked || user_scroll_finish || user_nav_input_start); - const bool init_state = (init_make_active || user_scroll_active); - if (init_state && g.ActiveId != id) - { - // Access state even if we don't own it yet. - state = &g.InputTextState; - state->CursorAnimReset(); - - // Take a copy of the initial buffer value (both in original UTF-8 format and converted to wchar) - // From the moment we focused we are ignoring the content of 'buf' (unless we are in read-only mode) - const int buf_len = (int)strlen(buf); - state->InitialTextA.resize(buf_len + 1); // UTF-8. we use +1 to make sure that .Data is always pointing to at least an empty string. - memcpy(state->InitialTextA.Data, buf, buf_len + 1); - - // Start edition - const char* buf_end = NULL; - state->TextW.resize(buf_size + 1); // wchar count <= UTF-8 count. we use +1 to make sure that .Data is always pointing to at least an empty string. - state->TextA.resize(0); - state->TextAIsValid = false; // TextA is not valid yet (we will display buf until then) - state->CurLenW = ImTextStrFromUtf8(state->TextW.Data, buf_size, buf, NULL, &buf_end); - state->CurLenA = (int)(buf_end - buf); // We can't get the result from ImStrncpy() above because it is not UTF-8 aware. Here we'll cut off malformed UTF-8. - - // Preserve cursor position and undo/redo stack if we come back to same widget - // FIXME: For non-readonly widgets we might be able to require that TextAIsValid && TextA == buf ? (untested) and discard undo stack if user buffer has changed. - const bool recycle_state = (state->ID == id); - if (recycle_state) - { - // Recycle existing cursor/selection/undo stack but clamp position - // Note a single mouse click will override the cursor/position immediately by calling stb_textedit_click handler. - state->CursorClamp(); - } - else - { - state->ID = id; - state->ScrollX = 0.0f; - stb_textedit_initialize_state(&state->Stb, !is_multiline); - if (!is_multiline && focus_requested_by_code) - select_all = true; - } - if (flags & ImGuiInputTextFlags_AlwaysInsertMode) - state->Stb.insert_mode = 1; - if (!is_multiline && (focus_requested_by_tab || (user_clicked && io.KeyCtrl))) - select_all = true; - } - - if (g.ActiveId != id && init_make_active) - { - IM_ASSERT(state && state->ID == id); - SetActiveID(id, window); - SetFocusID(id, window); - FocusWindow(window); - - // Declare our inputs - IM_ASSERT(ImGuiNavInput_COUNT < 32); - g.ActiveIdUsingNavDirMask |= (1 << ImGuiDir_Left) | (1 << ImGuiDir_Right); - if (is_multiline || (flags & ImGuiInputTextFlags_CallbackHistory)) - g.ActiveIdUsingNavDirMask |= (1 << ImGuiDir_Up) | (1 << ImGuiDir_Down); - g.ActiveIdUsingNavInputMask |= (1 << ImGuiNavInput_Cancel); - g.ActiveIdUsingKeyInputMask |= ((ImU64)1 << ImGuiKey_Home) | ((ImU64)1 << ImGuiKey_End); - if (is_multiline) - g.ActiveIdUsingKeyInputMask |= ((ImU64)1 << ImGuiKey_PageUp) | ((ImU64)1 << ImGuiKey_PageDown); // FIXME-NAV: Page up/down actually not supported yet by widget, but claim them ahead. - if (flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_AllowTabInput)) // Disable keyboard tabbing out as we will use the \t character. - g.ActiveIdUsingKeyInputMask |= ((ImU64)1 << ImGuiKey_Tab); - } - - // We have an edge case if ActiveId was set through another widget (e.g. widget being swapped), clear id immediately (don't wait until the end of the function) - if (g.ActiveId == id && state == NULL) - ClearActiveID(); - - // Release focus when we click outside - if (g.ActiveId == id && io.MouseClicked[0] && !init_state && !init_make_active) //-V560 - clear_active_id = true; - - // Lock the decision of whether we are going to take the path displaying the cursor or selection - const bool render_cursor = (g.ActiveId == id) || (state && user_scroll_active); - bool render_selection = state && state->HasSelection() && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); - bool value_changed = false; - bool enter_pressed = false; - - // When read-only we always use the live data passed to the function - // FIXME-OPT: Because our selection/cursor code currently needs the wide text we need to convert it when active, which is not ideal :( - if (is_readonly && state != NULL && (render_cursor || render_selection)) - { - const char* buf_end = NULL; - state->TextW.resize(buf_size + 1); - state->CurLenW = ImTextStrFromUtf8(state->TextW.Data, state->TextW.Size, buf, NULL, &buf_end); - state->CurLenA = (int)(buf_end - buf); - state->CursorClamp(); - render_selection &= state->HasSelection(); - } - - // Select the buffer to render. - const bool buf_display_from_state = (render_cursor || render_selection || g.ActiveId == id) && !is_readonly && state && state->TextAIsValid; - const bool is_displaying_hint = (hint != NULL && (buf_display_from_state ? state->TextA.Data : buf)[0] == 0); - - // Password pushes a temporary font with only a fallback glyph - if (is_password && !is_displaying_hint) - { - const ImFontGlyph* glyph = g.Font->FindGlyph('*'); - ImFont* password_font = &g.InputTextPasswordFont; - password_font->FontSize = g.Font->FontSize; - password_font->Scale = g.Font->Scale; - password_font->DisplayOffset = g.Font->DisplayOffset; - password_font->Ascent = g.Font->Ascent; - password_font->Descent = g.Font->Descent; - password_font->ContainerAtlas = g.Font->ContainerAtlas; - password_font->FallbackGlyph = glyph; - password_font->FallbackAdvanceX = glyph->AdvanceX; - IM_ASSERT(password_font->Glyphs.empty() && password_font->IndexAdvanceX.empty() && password_font->IndexLookup.empty()); - PushFont(password_font); - } - - // Process mouse inputs and character inputs - int backup_current_text_length = 0; - if (g.ActiveId == id) - { - IM_ASSERT(state != NULL); - backup_current_text_length = state->CurLenA; - state->BufCapacityA = buf_size; - state->UserFlags = flags; - state->UserCallback = callback; - state->UserCallbackData = callback_user_data; - - // Although we are active we don't prevent mouse from hovering other elements unless we are interacting right now with the widget. - // Down the line we should have a cleaner library-wide concept of Selected vs Active. - g.ActiveIdAllowOverlap = !io.MouseDown[0]; - g.WantTextInputNextFrame = 1; - - // Edit in progress - const float mouse_x = (io.MousePos.x - frame_bb.Min.x - style.FramePadding.x) + state->ScrollX; - const float mouse_y = (is_multiline ? (io.MousePos.y - draw_window->DC.CursorPos.y - style.FramePadding.y) : (g.FontSize*0.5f)); - - const bool is_osx = io.ConfigMacOSXBehaviors; - if (select_all || (hovered && !is_osx && io.MouseDoubleClicked[0])) - { - state->SelectAll(); - state->SelectedAllMouseLock = true; - } - else if (hovered && is_osx && io.MouseDoubleClicked[0]) - { - // Double-click select a word only, OS X style (by simulating keystrokes) - state->OnKeyPressed(STB_TEXTEDIT_K_WORDLEFT); - state->OnKeyPressed(STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT); - } - else if (io.MouseClicked[0] && !state->SelectedAllMouseLock) - { - if (hovered) - { - stb_textedit_click(state, &state->Stb, mouse_x, mouse_y); - state->CursorAnimReset(); - } - } - else if (io.MouseDown[0] && !state->SelectedAllMouseLock && (io.MouseDelta.x != 0.0f || io.MouseDelta.y != 0.0f)) - { - stb_textedit_drag(state, &state->Stb, mouse_x, mouse_y); - state->CursorAnimReset(); - state->CursorFollow = true; - } - if (state->SelectedAllMouseLock && !io.MouseDown[0]) - state->SelectedAllMouseLock = false; - - // It is ill-defined whether the back-end needs to send a \t character when pressing the TAB keys. - // Win32 and GLFW naturally do it but not SDL. - const bool ignore_char_inputs = (io.KeyCtrl && !io.KeyAlt) || (is_osx && io.KeySuper); - if ((flags & ImGuiInputTextFlags_AllowTabInput) && IsKeyPressedMap(ImGuiKey_Tab) && !ignore_char_inputs && !io.KeyShift && !is_readonly) - if (!io.InputQueueCharacters.contains('\t')) - { - unsigned int c = '\t'; // Insert TAB - if (InputTextFilterCharacter(&c, flags, callback, callback_user_data)) - state->OnKeyPressed((int)c); - } - - // Process regular text input (before we check for Return because using some IME will effectively send a Return?) - // We ignore CTRL inputs, but need to allow ALT+CTRL as some keyboards (e.g. German) use AltGR (which _is_ Alt+Ctrl) to input certain characters. - if (io.InputQueueCharacters.Size > 0) - { - if (!ignore_char_inputs && !is_readonly && !user_nav_input_start) - for (int n = 0; n < io.InputQueueCharacters.Size; n++) - { - // Insert character if they pass filtering - unsigned int c = (unsigned int)io.InputQueueCharacters[n]; - if (c == '\t' && io.KeyShift) - continue; - if (InputTextFilterCharacter(&c, flags, callback, callback_user_data)) - state->OnKeyPressed((int)c); - } - - // Consume characters - io.InputQueueCharacters.resize(0); - } - } - - // Process other shortcuts/key-presses - bool cancel_edit = false; - if (g.ActiveId == id && !g.ActiveIdIsJustActivated && !clear_active_id) - { - IM_ASSERT(state != NULL); - IM_ASSERT(io.KeyMods == GetMergedKeyModFlags() && "Mismatching io.KeyCtrl/io.KeyShift/io.KeyAlt/io.KeySuper vs io.KeyMods"); // We rarely do this check, but if anything let's do it here. - - const int k_mask = (io.KeyShift ? STB_TEXTEDIT_K_SHIFT : 0); - const bool is_osx = io.ConfigMacOSXBehaviors; - const bool is_osx_shift_shortcut = is_osx && (io.KeyMods == (ImGuiKeyModFlags_Super | ImGuiKeyModFlags_Shift)); - const bool is_wordmove_key_down = is_osx ? io.KeyAlt : io.KeyCtrl; // OS X style: Text editing cursor movement using Alt instead of Ctrl - const bool is_startend_key_down = is_osx && io.KeySuper && !io.KeyCtrl && !io.KeyAlt; // OS X style: Line/Text Start and End using Cmd+Arrows instead of Home/End - const bool is_ctrl_key_only = (io.KeyMods == ImGuiKeyModFlags_Ctrl); - const bool is_shift_key_only = (io.KeyMods == ImGuiKeyModFlags_Shift); - const bool is_shortcut_key = g.IO.ConfigMacOSXBehaviors ? (io.KeyMods == ImGuiKeyModFlags_Super) : (io.KeyMods == ImGuiKeyModFlags_Ctrl); - - const bool is_cut = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_X)) || (is_shift_key_only && IsKeyPressedMap(ImGuiKey_Delete))) && !is_readonly && !is_password && (!is_multiline || state->HasSelection()); - const bool is_copy = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_C)) || (is_ctrl_key_only && IsKeyPressedMap(ImGuiKey_Insert))) && !is_password && (!is_multiline || state->HasSelection()); - const bool is_paste = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_V)) || (is_shift_key_only && IsKeyPressedMap(ImGuiKey_Insert))) && !is_readonly; - const bool is_undo = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_Z)) && !is_readonly && is_undoable); - const bool is_redo = ((is_shortcut_key && IsKeyPressedMap(ImGuiKey_Y)) || (is_osx_shift_shortcut && IsKeyPressedMap(ImGuiKey_Z))) && !is_readonly && is_undoable; - - if (IsKeyPressedMap(ImGuiKey_LeftArrow)) { state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_LINESTART : is_wordmove_key_down ? STB_TEXTEDIT_K_WORDLEFT : STB_TEXTEDIT_K_LEFT) | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_RightArrow)) { state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_LINEEND : is_wordmove_key_down ? STB_TEXTEDIT_K_WORDRIGHT : STB_TEXTEDIT_K_RIGHT) | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_UpArrow) && is_multiline) { if (io.KeyCtrl) SetScrollY(draw_window, ImMax(draw_window->Scroll.y - g.FontSize, 0.0f)); else state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_TEXTSTART : STB_TEXTEDIT_K_UP) | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_DownArrow) && is_multiline) { if (io.KeyCtrl) SetScrollY(draw_window, ImMin(draw_window->Scroll.y + g.FontSize, GetScrollMaxY())); else state->OnKeyPressed((is_startend_key_down ? STB_TEXTEDIT_K_TEXTEND : STB_TEXTEDIT_K_DOWN) | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Home)) { state->OnKeyPressed(io.KeyCtrl ? STB_TEXTEDIT_K_TEXTSTART | k_mask : STB_TEXTEDIT_K_LINESTART | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_End)) { state->OnKeyPressed(io.KeyCtrl ? STB_TEXTEDIT_K_TEXTEND | k_mask : STB_TEXTEDIT_K_LINEEND | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Delete) && !is_readonly) { state->OnKeyPressed(STB_TEXTEDIT_K_DELETE | k_mask); } - else if (IsKeyPressedMap(ImGuiKey_Backspace) && !is_readonly) - { - if (!state->HasSelection()) - { - if (is_wordmove_key_down) - state->OnKeyPressed(STB_TEXTEDIT_K_WORDLEFT|STB_TEXTEDIT_K_SHIFT); - else if (is_osx && io.KeySuper && !io.KeyAlt && !io.KeyCtrl) - state->OnKeyPressed(STB_TEXTEDIT_K_LINESTART|STB_TEXTEDIT_K_SHIFT); - } - state->OnKeyPressed(STB_TEXTEDIT_K_BACKSPACE | k_mask); - } - else if (IsKeyPressedMap(ImGuiKey_Enter) || IsKeyPressedMap(ImGuiKey_KeyPadEnter)) - { - bool ctrl_enter_for_new_line = (flags & ImGuiInputTextFlags_CtrlEnterForNewLine) != 0; - if (!is_multiline || (ctrl_enter_for_new_line && !io.KeyCtrl) || (!ctrl_enter_for_new_line && io.KeyCtrl)) - { - enter_pressed = clear_active_id = true; - } - else if (!is_readonly) - { - unsigned int c = '\n'; // Insert new line - if (InputTextFilterCharacter(&c, flags, callback, callback_user_data)) - state->OnKeyPressed((int)c); - } - } - else if (IsKeyPressedMap(ImGuiKey_Escape)) - { - clear_active_id = cancel_edit = true; - } - else if (is_undo || is_redo) - { - state->OnKeyPressed(is_undo ? STB_TEXTEDIT_K_UNDO : STB_TEXTEDIT_K_REDO); - state->ClearSelection(); - } - else if (is_shortcut_key && IsKeyPressedMap(ImGuiKey_A)) - { - state->SelectAll(); - state->CursorFollow = true; - } - else if (is_cut || is_copy) - { - // Cut, Copy - if (io.SetClipboardTextFn) - { - const int ib = state->HasSelection() ? ImMin(state->Stb.select_start, state->Stb.select_end) : 0; - const int ie = state->HasSelection() ? ImMax(state->Stb.select_start, state->Stb.select_end) : state->CurLenW; - const int clipboard_data_len = ImTextCountUtf8BytesFromStr(state->TextW.Data + ib, state->TextW.Data + ie) + 1; - char* clipboard_data = (char*)IM_ALLOC(clipboard_data_len * sizeof(char)); - ImTextStrToUtf8(clipboard_data, clipboard_data_len, state->TextW.Data + ib, state->TextW.Data + ie); - SetClipboardText(clipboard_data); - MemFree(clipboard_data); - } - if (is_cut) - { - if (!state->HasSelection()) - state->SelectAll(); - state->CursorFollow = true; - stb_textedit_cut(state, &state->Stb); - } - } - else if (is_paste) - { - if (const char* clipboard = GetClipboardText()) - { - // Filter pasted buffer - const int clipboard_len = (int)strlen(clipboard); - ImWchar* clipboard_filtered = (ImWchar*)IM_ALLOC((clipboard_len+1) * sizeof(ImWchar)); - int clipboard_filtered_len = 0; - for (const char* s = clipboard; *s; ) - { - unsigned int c; - s += ImTextCharFromUtf8(&c, s, NULL); - if (c == 0) - break; - if (!InputTextFilterCharacter(&c, flags, callback, callback_user_data)) - continue; - clipboard_filtered[clipboard_filtered_len++] = (ImWchar)c; - } - clipboard_filtered[clipboard_filtered_len] = 0; - if (clipboard_filtered_len > 0) // If everything was filtered, ignore the pasting operation - { - stb_textedit_paste(state, &state->Stb, clipboard_filtered, clipboard_filtered_len); - state->CursorFollow = true; - } - MemFree(clipboard_filtered); - } - } - - // Update render selection flag after events have been handled, so selection highlight can be displayed during the same frame. - render_selection |= state->HasSelection() && (RENDER_SELECTION_WHEN_INACTIVE || render_cursor); - } - - // Process callbacks and apply result back to user's buffer. - if (g.ActiveId == id) - { - IM_ASSERT(state != NULL); - const char* apply_new_text = NULL; - int apply_new_text_length = 0; - if (cancel_edit) - { - // Restore initial value. Only return true if restoring to the initial value changes the current buffer contents. - if (!is_readonly && strcmp(buf, state->InitialTextA.Data) != 0) - { - // Push records into the undo stack so we can CTRL+Z the revert operation itself - apply_new_text = state->InitialTextA.Data; - apply_new_text_length = state->InitialTextA.Size - 1; - ImVector w_text; - if (apply_new_text_length > 0) - { - w_text.resize(ImTextCountCharsFromUtf8(apply_new_text, apply_new_text + apply_new_text_length) + 1); - ImTextStrFromUtf8(w_text.Data, w_text.Size, apply_new_text, apply_new_text + apply_new_text_length); - } - stb_textedit_replace(state, &state->Stb, w_text.Data, (apply_new_text_length > 0) ? (w_text.Size - 1) : 0); - } - } - - // When using 'ImGuiInputTextFlags_EnterReturnsTrue' as a special case we reapply the live buffer back to the input buffer before clearing ActiveId, even though strictly speaking it wasn't modified on this frame. - // If we didn't do that, code like InputInt() with ImGuiInputTextFlags_EnterReturnsTrue would fail. - // This also allows the user to use InputText() with ImGuiInputTextFlags_EnterReturnsTrue without maintaining any user-side storage (please note that if you use this property along ImGuiInputTextFlags_CallbackResize you can end up with your temporary string object unnecessarily allocating once a frame, either store your string data, either if you don't then don't use ImGuiInputTextFlags_CallbackResize). - bool apply_edit_back_to_user_buffer = !cancel_edit || (enter_pressed && (flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0); - if (apply_edit_back_to_user_buffer) - { - // Apply new value immediately - copy modified buffer back - // Note that as soon as the input box is active, the in-widget value gets priority over any underlying modification of the input buffer - // FIXME: We actually always render 'buf' when calling DrawList->AddText, making the comment above incorrect. - // FIXME-OPT: CPU waste to do this every time the widget is active, should mark dirty state from the stb_textedit callbacks. - if (!is_readonly) - { - state->TextAIsValid = true; - state->TextA.resize(state->TextW.Size * 4 + 1); - ImTextStrToUtf8(state->TextA.Data, state->TextA.Size, state->TextW.Data, NULL); - } - - // User callback - if ((flags & (ImGuiInputTextFlags_CallbackCompletion | ImGuiInputTextFlags_CallbackHistory | ImGuiInputTextFlags_CallbackAlways)) != 0) - { - IM_ASSERT(callback != NULL); - - // The reason we specify the usage semantic (Completion/History) is that Completion needs to disable keyboard TABBING at the moment. - ImGuiInputTextFlags event_flag = 0; - ImGuiKey event_key = ImGuiKey_COUNT; - if ((flags & ImGuiInputTextFlags_CallbackCompletion) != 0 && IsKeyPressedMap(ImGuiKey_Tab)) - { - event_flag = ImGuiInputTextFlags_CallbackCompletion; - event_key = ImGuiKey_Tab; - } - else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_UpArrow)) - { - event_flag = ImGuiInputTextFlags_CallbackHistory; - event_key = ImGuiKey_UpArrow; - } - else if ((flags & ImGuiInputTextFlags_CallbackHistory) != 0 && IsKeyPressedMap(ImGuiKey_DownArrow)) - { - event_flag = ImGuiInputTextFlags_CallbackHistory; - event_key = ImGuiKey_DownArrow; - } - else if (flags & ImGuiInputTextFlags_CallbackAlways) - event_flag = ImGuiInputTextFlags_CallbackAlways; - - if (event_flag) - { - ImGuiInputTextCallbackData callback_data; - memset(&callback_data, 0, sizeof(ImGuiInputTextCallbackData)); - callback_data.EventFlag = event_flag; - callback_data.Flags = flags; - callback_data.UserData = callback_user_data; - - callback_data.EventKey = event_key; - callback_data.Buf = state->TextA.Data; - callback_data.BufTextLen = state->CurLenA; - callback_data.BufSize = state->BufCapacityA; - callback_data.BufDirty = false; - - // We have to convert from wchar-positions to UTF-8-positions, which can be pretty slow (an incentive to ditch the ImWchar buffer, see https://github.com/nothings/stb/issues/188) - ImWchar* text = state->TextW.Data; - const int utf8_cursor_pos = callback_data.CursorPos = ImTextCountUtf8BytesFromStr(text, text + state->Stb.cursor); - const int utf8_selection_start = callback_data.SelectionStart = ImTextCountUtf8BytesFromStr(text, text + state->Stb.select_start); - const int utf8_selection_end = callback_data.SelectionEnd = ImTextCountUtf8BytesFromStr(text, text + state->Stb.select_end); - - // Call user code - callback(&callback_data); - - // Read back what user may have modified - IM_ASSERT(callback_data.Buf == state->TextA.Data); // Invalid to modify those fields - IM_ASSERT(callback_data.BufSize == state->BufCapacityA); - IM_ASSERT(callback_data.Flags == flags); - if (callback_data.CursorPos != utf8_cursor_pos) { state->Stb.cursor = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.CursorPos); state->CursorFollow = true; } - if (callback_data.SelectionStart != utf8_selection_start) { state->Stb.select_start = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionStart); } - if (callback_data.SelectionEnd != utf8_selection_end) { state->Stb.select_end = ImTextCountCharsFromUtf8(callback_data.Buf, callback_data.Buf + callback_data.SelectionEnd); } - if (callback_data.BufDirty) - { - IM_ASSERT(callback_data.BufTextLen == (int)strlen(callback_data.Buf)); // You need to maintain BufTextLen if you change the text! - if (callback_data.BufTextLen > backup_current_text_length && is_resizable) - state->TextW.resize(state->TextW.Size + (callback_data.BufTextLen - backup_current_text_length)); - state->CurLenW = ImTextStrFromUtf8(state->TextW.Data, state->TextW.Size, callback_data.Buf, NULL); - state->CurLenA = callback_data.BufTextLen; // Assume correct length and valid UTF-8 from user, saves us an extra strlen() - state->CursorAnimReset(); - } - } - } - - // Will copy result string if modified - if (!is_readonly && strcmp(state->TextA.Data, buf) != 0) - { - apply_new_text = state->TextA.Data; - apply_new_text_length = state->CurLenA; - } - } - - // Copy result to user buffer - if (apply_new_text) - { - // We cannot test for 'backup_current_text_length != apply_new_text_length' here because we have no guarantee that the size - // of our owned buffer matches the size of the string object held by the user, and by design we allow InputText() to be used - // without any storage on user's side. - IM_ASSERT(apply_new_text_length >= 0); - if (is_resizable) - { - ImGuiInputTextCallbackData callback_data; - callback_data.EventFlag = ImGuiInputTextFlags_CallbackResize; - callback_data.Flags = flags; - callback_data.Buf = buf; - callback_data.BufTextLen = apply_new_text_length; - callback_data.BufSize = ImMax(buf_size, apply_new_text_length + 1); - callback_data.UserData = callback_user_data; - callback(&callback_data); - buf = callback_data.Buf; - buf_size = callback_data.BufSize; - apply_new_text_length = ImMin(callback_data.BufTextLen, buf_size - 1); - IM_ASSERT(apply_new_text_length <= buf_size); - } - //IMGUI_DEBUG_LOG("InputText(\"%s\"): apply_new_text length %d\n", label, apply_new_text_length); - - // If the underlying buffer resize was denied or not carried to the next frame, apply_new_text_length+1 may be >= buf_size. - ImStrncpy(buf, apply_new_text, ImMin(apply_new_text_length + 1, buf_size)); - value_changed = true; - } - - // Clear temporary user storage - state->UserFlags = 0; - state->UserCallback = NULL; - state->UserCallbackData = NULL; - } - - // Release active ID at the end of the function (so e.g. pressing Return still does a final application of the value) - if (clear_active_id && g.ActiveId == id) - ClearActiveID(); - - // Render frame - if (!is_multiline) - { - RenderNavHighlight(frame_bb, id); - RenderFrame(frame_bb.Min, frame_bb.Max, GetColorU32(ImGuiCol_FrameBg), true, style.FrameRounding); - } - - const ImVec4 clip_rect(frame_bb.Min.x, frame_bb.Min.y, frame_bb.Min.x + inner_size.x, frame_bb.Min.y + inner_size.y); // Not using frame_bb.Max because we have adjusted size - ImVec2 draw_pos = is_multiline ? draw_window->DC.CursorPos : frame_bb.Min + style.FramePadding; - ImVec2 text_size(0.0f, 0.0f); - - // Set upper limit of single-line InputTextEx() at 2 million characters strings. The current pathological worst case is a long line - // without any carriage return, which would makes ImFont::RenderText() reserve too many vertices and probably crash. Avoid it altogether. - // Note that we only use this limit on single-line InputText(), so a pathologically large line on a InputTextMultiline() would still crash. - const int buf_display_max_length = 2 * 1024 * 1024; - const char* buf_display = buf_display_from_state ? state->TextA.Data : buf; //-V595 - const char* buf_display_end = NULL; // We have specialized paths below for setting the length - if (is_displaying_hint) - { - buf_display = hint; - buf_display_end = hint + strlen(hint); - } - - // Render text. We currently only render selection when the widget is active or while scrolling. - // FIXME: We could remove the '&& render_cursor' to keep rendering selection when inactive. - if (render_cursor || render_selection) - { - IM_ASSERT(state != NULL); - if (!is_displaying_hint) - buf_display_end = buf_display + state->CurLenA; - - // Render text (with cursor and selection) - // This is going to be messy. We need to: - // - Display the text (this alone can be more easily clipped) - // - Handle scrolling, highlight selection, display cursor (those all requires some form of 1d->2d cursor position calculation) - // - Measure text height (for scrollbar) - // We are attempting to do most of that in **one main pass** to minimize the computation cost (non-negligible for large amount of text) + 2nd pass for selection rendering (we could merge them by an extra refactoring effort) - // FIXME: This should occur on buf_display but we'd need to maintain cursor/select_start/select_end for UTF-8. - const ImWchar* text_begin = state->TextW.Data; - ImVec2 cursor_offset, select_start_offset; - - { - // Find lines numbers straddling 'cursor' (slot 0) and 'select_start' (slot 1) positions. - const ImWchar* searches_input_ptr[2] = { NULL, NULL }; - int searches_result_line_no[2] = { -1000, -1000 }; - int searches_remaining = 0; - if (render_cursor) - { - searches_input_ptr[0] = text_begin + state->Stb.cursor; - searches_result_line_no[0] = -1; - searches_remaining++; - } - if (render_selection) - { - searches_input_ptr[1] = text_begin + ImMin(state->Stb.select_start, state->Stb.select_end); - searches_result_line_no[1] = -1; - searches_remaining++; - } - - // Iterate all lines to find our line numbers - // In multi-line mode, we never exit the loop until all lines are counted, so add one extra to the searches_remaining counter. - searches_remaining += is_multiline ? 1 : 0; - int line_count = 0; - //for (const ImWchar* s = text_begin; (s = (const ImWchar*)wcschr((const wchar_t*)s, (wchar_t)'\n')) != NULL; s++) // FIXME-OPT: Could use this when wchar_t are 16-bit - for (const ImWchar* s = text_begin; *s != 0; s++) - if (*s == '\n') - { - line_count++; - if (searches_result_line_no[0] == -1 && s >= searches_input_ptr[0]) { searches_result_line_no[0] = line_count; if (--searches_remaining <= 0) break; } - if (searches_result_line_no[1] == -1 && s >= searches_input_ptr[1]) { searches_result_line_no[1] = line_count; if (--searches_remaining <= 0) break; } - } - line_count++; - if (searches_result_line_no[0] == -1) - searches_result_line_no[0] = line_count; - if (searches_result_line_no[1] == -1) - searches_result_line_no[1] = line_count; - - // Calculate 2d position by finding the beginning of the line and measuring distance - cursor_offset.x = InputTextCalcTextSizeW(ImStrbolW(searches_input_ptr[0], text_begin), searches_input_ptr[0]).x; - cursor_offset.y = searches_result_line_no[0] * g.FontSize; - if (searches_result_line_no[1] >= 0) - { - select_start_offset.x = InputTextCalcTextSizeW(ImStrbolW(searches_input_ptr[1], text_begin), searches_input_ptr[1]).x; - select_start_offset.y = searches_result_line_no[1] * g.FontSize; - } - - // Store text height (note that we haven't calculated text width at all, see GitHub issues #383, #1224) - if (is_multiline) - text_size = ImVec2(inner_size.x, line_count * g.FontSize); - } - - // Scroll - if (render_cursor && state->CursorFollow) - { - // Horizontal scroll in chunks of quarter width - if (!(flags & ImGuiInputTextFlags_NoHorizontalScroll)) - { - const float scroll_increment_x = inner_size.x * 0.25f; - if (cursor_offset.x < state->ScrollX) - state->ScrollX = IM_FLOOR(ImMax(0.0f, cursor_offset.x - scroll_increment_x)); - else if (cursor_offset.x - inner_size.x >= state->ScrollX) - state->ScrollX = IM_FLOOR(cursor_offset.x - inner_size.x + scroll_increment_x); - } - else - { - state->ScrollX = 0.0f; - } - - // Vertical scroll - if (is_multiline) - { - float scroll_y = draw_window->Scroll.y; - if (cursor_offset.y - g.FontSize < scroll_y) - scroll_y = ImMax(0.0f, cursor_offset.y - g.FontSize); - else if (cursor_offset.y - inner_size.y >= scroll_y) - scroll_y = cursor_offset.y - inner_size.y; - draw_pos.y += (draw_window->Scroll.y - scroll_y); // Manipulate cursor pos immediately avoid a frame of lag - draw_window->Scroll.y = scroll_y; - } - - state->CursorFollow = false; - } - - // Draw selection - const ImVec2 draw_scroll = ImVec2(state->ScrollX, 0.0f); - if (render_selection) - { - const ImWchar* text_selected_begin = text_begin + ImMin(state->Stb.select_start, state->Stb.select_end); - const ImWchar* text_selected_end = text_begin + ImMax(state->Stb.select_start, state->Stb.select_end); - - ImU32 bg_color = GetColorU32(ImGuiCol_TextSelectedBg, render_cursor ? 1.0f : 0.6f); // FIXME: current code flow mandate that render_cursor is always true here, we are leaving the transparent one for tests. - float bg_offy_up = is_multiline ? 0.0f : -1.0f; // FIXME: those offsets should be part of the style? they don't play so well with multi-line selection. - float bg_offy_dn = is_multiline ? 0.0f : 2.0f; - ImVec2 rect_pos = draw_pos + select_start_offset - draw_scroll; - for (const ImWchar* p = text_selected_begin; p < text_selected_end; ) - { - if (rect_pos.y > clip_rect.w + g.FontSize) - break; - if (rect_pos.y < clip_rect.y) - { - //p = (const ImWchar*)wmemchr((const wchar_t*)p, '\n', text_selected_end - p); // FIXME-OPT: Could use this when wchar_t are 16-bit - //p = p ? p + 1 : text_selected_end; - while (p < text_selected_end) - if (*p++ == '\n') - break; - } - else - { - ImVec2 rect_size = InputTextCalcTextSizeW(p, text_selected_end, &p, NULL, true); - if (rect_size.x <= 0.0f) rect_size.x = IM_FLOOR(g.Font->GetCharAdvance((ImWchar)' ') * 0.50f); // So we can see selected empty lines - ImRect rect(rect_pos + ImVec2(0.0f, bg_offy_up - g.FontSize), rect_pos +ImVec2(rect_size.x, bg_offy_dn)); - rect.ClipWith(clip_rect); - if (rect.Overlaps(clip_rect)) - draw_window->DrawList->AddRectFilled(rect.Min, rect.Max, bg_color); - } - rect_pos.x = draw_pos.x - draw_scroll.x; - rect_pos.y += g.FontSize; - } - } - - // We test for 'buf_display_max_length' as a way to avoid some pathological cases (e.g. single-line 1 MB string) which would make ImDrawList crash. - if (is_multiline || (buf_display_end - buf_display) < buf_display_max_length) - { - ImU32 col = GetColorU32(is_displaying_hint ? ImGuiCol_TextDisabled : ImGuiCol_Text); - draw_window->DrawList->AddText(g.Font, g.FontSize, draw_pos - draw_scroll, col, buf_display, buf_display_end, 0.0f, is_multiline ? NULL : &clip_rect); - } - - // Draw blinking cursor - if (render_cursor) - { - state->CursorAnim += io.DeltaTime; - bool cursor_is_visible = (!g.IO.ConfigInputTextCursorBlink) || (state->CursorAnim <= 0.0f) || ImFmod(state->CursorAnim, 1.20f) <= 0.80f; - ImVec2 cursor_screen_pos = draw_pos + cursor_offset - draw_scroll; - ImRect cursor_screen_rect(cursor_screen_pos.x, cursor_screen_pos.y - g.FontSize + 0.5f, cursor_screen_pos.x + 1.0f, cursor_screen_pos.y - 1.5f); - if (cursor_is_visible && cursor_screen_rect.Overlaps(clip_rect)) - draw_window->DrawList->AddLine(cursor_screen_rect.Min, cursor_screen_rect.GetBL(), GetColorU32(ImGuiCol_Text)); - - // Notify OS of text input position for advanced IME (-1 x offset so that Windows IME can cover our cursor. Bit of an extra nicety.) - if (!is_readonly) - g.PlatformImePos = ImVec2(cursor_screen_pos.x - 1.0f, cursor_screen_pos.y - g.FontSize); - } - } - else - { - // Render text only (no selection, no cursor) - if (is_multiline) - text_size = ImVec2(inner_size.x, InputTextCalcTextLenAndLineCount(buf_display, &buf_display_end) * g.FontSize); // We don't need width - else if (!is_displaying_hint && g.ActiveId == id) - buf_display_end = buf_display + state->CurLenA; - else if (!is_displaying_hint) - buf_display_end = buf_display + strlen(buf_display); - - if (is_multiline || (buf_display_end - buf_display) < buf_display_max_length) - { - ImU32 col = GetColorU32(is_displaying_hint ? ImGuiCol_TextDisabled : ImGuiCol_Text); - draw_window->DrawList->AddText(g.Font, g.FontSize, draw_pos, col, buf_display, buf_display_end, 0.0f, is_multiline ? NULL : &clip_rect); - } - } - - if (is_multiline) - { - Dummy(text_size + ImVec2(0.0f, g.FontSize)); // Always add room to scroll an extra line - EndChild(); - EndGroup(); - } - - if (is_password && !is_displaying_hint) - PopFont(); - - // Log as text - if (g.LogEnabled && !(is_password && !is_displaying_hint)) - LogRenderedText(&draw_pos, buf_display, buf_display_end); - - if (label_size.x > 0) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - if (value_changed && !(flags & ImGuiInputTextFlags_NoMarkEdited)) - MarkItemEdited(id); - - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags); - if ((flags & ImGuiInputTextFlags_EnterReturnsTrue) != 0) - return enter_pressed; - else - return value_changed; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: ColorEdit, ColorPicker, ColorButton, etc. -//------------------------------------------------------------------------- -// - ColorEdit3() -// - ColorEdit4() -// - ColorPicker3() -// - RenderColorRectWithAlphaCheckerboard() [Internal] -// - ColorPicker4() -// - ColorButton() -// - SetColorEditOptions() -// - ColorTooltip() [Internal] -// - ColorEditOptionsPopup() [Internal] -// - ColorPickerOptionsPopup() [Internal] -//------------------------------------------------------------------------- - -bool ImGui::ColorEdit3(const char* label, float col[3], ImGuiColorEditFlags flags) -{ - return ColorEdit4(label, col, flags | ImGuiColorEditFlags_NoAlpha); -} - -// Edit colors components (each component in 0.0f..1.0f range). -// See enum ImGuiColorEditFlags_ for available options. e.g. Only access 3 floats if ImGuiColorEditFlags_NoAlpha flag is set. -// With typical options: Left-click on colored square to open color picker. Right-click to open option menu. CTRL-Click over input fields to edit them and TAB to go to next item. -bool ImGui::ColorEdit4(const char* label, float col[4], ImGuiColorEditFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const float square_sz = GetFrameHeight(); - const float w_full = CalcItemWidth(); - const float w_button = (flags & ImGuiColorEditFlags_NoSmallPreview) ? 0.0f : (square_sz + style.ItemInnerSpacing.x); - const float w_inputs = w_full - w_button; - const char* label_display_end = FindRenderedTextEnd(label); - g.NextItemData.ClearFlags(); - - BeginGroup(); - PushID(label); - - // If we're not showing any slider there's no point in doing any HSV conversions - const ImGuiColorEditFlags flags_untouched = flags; - if (flags & ImGuiColorEditFlags_NoInputs) - flags = (flags & (~ImGuiColorEditFlags__DisplayMask)) | ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_NoOptions; - - // Context menu: display and modify options (before defaults are applied) - if (!(flags & ImGuiColorEditFlags_NoOptions)) - ColorEditOptionsPopup(col, flags); - - // Read stored options - if (!(flags & ImGuiColorEditFlags__DisplayMask)) - flags |= (g.ColorEditOptions & ImGuiColorEditFlags__DisplayMask); - if (!(flags & ImGuiColorEditFlags__DataTypeMask)) - flags |= (g.ColorEditOptions & ImGuiColorEditFlags__DataTypeMask); - if (!(flags & ImGuiColorEditFlags__PickerMask)) - flags |= (g.ColorEditOptions & ImGuiColorEditFlags__PickerMask); - if (!(flags & ImGuiColorEditFlags__InputMask)) - flags |= (g.ColorEditOptions & ImGuiColorEditFlags__InputMask); - flags |= (g.ColorEditOptions & ~(ImGuiColorEditFlags__DisplayMask | ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask | ImGuiColorEditFlags__InputMask)); - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__DisplayMask)); // Check that only 1 is selected - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__InputMask)); // Check that only 1 is selected - - const bool alpha = (flags & ImGuiColorEditFlags_NoAlpha) == 0; - const bool hdr = (flags & ImGuiColorEditFlags_HDR) != 0; - const int components = alpha ? 4 : 3; - - // Convert to the formats we need - float f[4] = { col[0], col[1], col[2], alpha ? col[3] : 1.0f }; - if ((flags & ImGuiColorEditFlags_InputHSV) && (flags & ImGuiColorEditFlags_DisplayRGB)) - ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]); - else if ((flags & ImGuiColorEditFlags_InputRGB) && (flags & ImGuiColorEditFlags_DisplayHSV)) - { - // Hue is lost when converting from greyscale rgb (saturation=0). Restore it. - ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) - { - if (f[1] == 0) - f[0] = g.ColorEditLastHue; - if (f[2] == 0) - f[1] = g.ColorEditLastSat; - } - } - int i[4] = { IM_F32_TO_INT8_UNBOUND(f[0]), IM_F32_TO_INT8_UNBOUND(f[1]), IM_F32_TO_INT8_UNBOUND(f[2]), IM_F32_TO_INT8_UNBOUND(f[3]) }; - - bool value_changed = false; - bool value_changed_as_float = false; - - const ImVec2 pos = window->DC.CursorPos; - const float inputs_offset_x = (style.ColorButtonPosition == ImGuiDir_Left) ? w_button : 0.0f; - window->DC.CursorPos.x = pos.x + inputs_offset_x; - - if ((flags & (ImGuiColorEditFlags_DisplayRGB | ImGuiColorEditFlags_DisplayHSV)) != 0 && (flags & ImGuiColorEditFlags_NoInputs) == 0) - { - // RGB/HSV 0..255 Sliders - const float w_item_one = ImMax(1.0f, IM_FLOOR((w_inputs - (style.ItemInnerSpacing.x) * (components-1)) / (float)components)); - const float w_item_last = ImMax(1.0f, IM_FLOOR(w_inputs - (w_item_one + style.ItemInnerSpacing.x) * (components-1))); - - const bool hide_prefix = (w_item_one <= CalcTextSize((flags & ImGuiColorEditFlags_Float) ? "M:0.000" : "M:000").x); - static const char* ids[4] = { "##X", "##Y", "##Z", "##W" }; - static const char* fmt_table_int[3][4] = - { - { "%3d", "%3d", "%3d", "%3d" }, // Short display - { "R:%3d", "G:%3d", "B:%3d", "A:%3d" }, // Long display for RGBA - { "H:%3d", "S:%3d", "V:%3d", "A:%3d" } // Long display for HSVA - }; - static const char* fmt_table_float[3][4] = - { - { "%0.3f", "%0.3f", "%0.3f", "%0.3f" }, // Short display - { "R:%0.3f", "G:%0.3f", "B:%0.3f", "A:%0.3f" }, // Long display for RGBA - { "H:%0.3f", "S:%0.3f", "V:%0.3f", "A:%0.3f" } // Long display for HSVA - }; - const int fmt_idx = hide_prefix ? 0 : (flags & ImGuiColorEditFlags_DisplayHSV) ? 2 : 1; - - for (int n = 0; n < components; n++) - { - if (n > 0) - SameLine(0, style.ItemInnerSpacing.x); - SetNextItemWidth((n + 1 < components) ? w_item_one : w_item_last); - - // FIXME: When ImGuiColorEditFlags_HDR flag is passed HS values snap in weird ways when SV values go below 0. - if (flags & ImGuiColorEditFlags_Float) - { - value_changed |= DragFloat(ids[n], &f[n], 1.0f/255.0f, 0.0f, hdr ? 0.0f : 1.0f, fmt_table_float[fmt_idx][n]); - value_changed_as_float |= value_changed; - } - else - { - value_changed |= DragInt(ids[n], &i[n], 1.0f, 0, hdr ? 0 : 255, fmt_table_int[fmt_idx][n]); - } - if (!(flags & ImGuiColorEditFlags_NoOptions)) - OpenPopupOnItemClick("context"); - } - } - else if ((flags & ImGuiColorEditFlags_DisplayHex) != 0 && (flags & ImGuiColorEditFlags_NoInputs) == 0) - { - // RGB Hexadecimal Input - char buf[64]; - if (alpha) - ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X%02X", ImClamp(i[0],0,255), ImClamp(i[1],0,255), ImClamp(i[2],0,255), ImClamp(i[3],0,255)); - else - ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X", ImClamp(i[0],0,255), ImClamp(i[1],0,255), ImClamp(i[2],0,255)); - SetNextItemWidth(w_inputs); - if (InputText("##Text", buf, IM_ARRAYSIZE(buf), ImGuiInputTextFlags_CharsHexadecimal | ImGuiInputTextFlags_CharsUppercase)) - { - value_changed = true; - char* p = buf; - while (*p == '#' || ImCharIsBlankA(*p)) - p++; - i[0] = i[1] = i[2] = i[3] = 0; - if (alpha) - sscanf(p, "%02X%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2], (unsigned int*)&i[3]); // Treat at unsigned (%X is unsigned) - else - sscanf(p, "%02X%02X%02X", (unsigned int*)&i[0], (unsigned int*)&i[1], (unsigned int*)&i[2]); - } - if (!(flags & ImGuiColorEditFlags_NoOptions)) - OpenPopupOnItemClick("context"); - } - - ImGuiWindow* picker_active_window = NULL; - if (!(flags & ImGuiColorEditFlags_NoSmallPreview)) - { - const float button_offset_x = ((flags & ImGuiColorEditFlags_NoInputs) || (style.ColorButtonPosition == ImGuiDir_Left)) ? 0.0f : w_inputs + style.ItemInnerSpacing.x; - window->DC.CursorPos = ImVec2(pos.x + button_offset_x, pos.y); - - const ImVec4 col_v4(col[0], col[1], col[2], alpha ? col[3] : 1.0f); - if (ColorButton("##ColorButton", col_v4, flags)) - { - if (!(flags & ImGuiColorEditFlags_NoPicker)) - { - // Store current color and open a picker - g.ColorPickerRef = col_v4; - OpenPopup("picker"); - SetNextWindowPos(window->DC.LastItemRect.GetBL() + ImVec2(-1,style.ItemSpacing.y)); - } - } - if (!(flags & ImGuiColorEditFlags_NoOptions)) - OpenPopupOnItemClick("context"); - - if (BeginPopup("picker")) - { - picker_active_window = g.CurrentWindow; - if (label != label_display_end) - { - TextEx(label, label_display_end); - Spacing(); - } - ImGuiColorEditFlags picker_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__PickerMask | ImGuiColorEditFlags__InputMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaBar; - ImGuiColorEditFlags picker_flags = (flags_untouched & picker_flags_to_forward) | ImGuiColorEditFlags__DisplayMask | ImGuiColorEditFlags_NoLabel | ImGuiColorEditFlags_AlphaPreviewHalf; - SetNextItemWidth(square_sz * 12.0f); // Use 256 + bar sizes? - value_changed |= ColorPicker4("##picker", col, picker_flags, &g.ColorPickerRef.x); - EndPopup(); - } - } - - if (label != label_display_end && !(flags & ImGuiColorEditFlags_NoLabel)) - { - const float text_offset_x = (flags & ImGuiColorEditFlags_NoInputs) ? w_button : w_full + style.ItemInnerSpacing.x; - window->DC.CursorPos = ImVec2(pos.x + text_offset_x, pos.y + style.FramePadding.y); - TextEx(label, label_display_end); - } - - // Convert back - if (value_changed && picker_active_window == NULL) - { - if (!value_changed_as_float) - for (int n = 0; n < 4; n++) - f[n] = i[n] / 255.0f; - if ((flags & ImGuiColorEditFlags_DisplayHSV) && (flags & ImGuiColorEditFlags_InputRGB)) - { - g.ColorEditLastHue = f[0]; - g.ColorEditLastSat = f[1]; - ColorConvertHSVtoRGB(f[0], f[1], f[2], f[0], f[1], f[2]); - memcpy(g.ColorEditLastColor, f, sizeof(float) * 3); - } - if ((flags & ImGuiColorEditFlags_DisplayRGB) && (flags & ImGuiColorEditFlags_InputHSV)) - ColorConvertRGBtoHSV(f[0], f[1], f[2], f[0], f[1], f[2]); - - col[0] = f[0]; - col[1] = f[1]; - col[2] = f[2]; - if (alpha) - col[3] = f[3]; - } - - PopID(); - EndGroup(); - - // Drag and Drop Target - // NB: The flag test is merely an optional micro-optimization, BeginDragDropTarget() does the same test. - if ((window->DC.LastItemStatusFlags & ImGuiItemStatusFlags_HoveredRect) && !(flags & ImGuiColorEditFlags_NoDragDrop) && BeginDragDropTarget()) - { - bool accepted_drag_drop = false; - if (const ImGuiPayload* payload = AcceptDragDropPayload(IMGUI_PAYLOAD_TYPE_COLOR_3F)) - { - memcpy((float*)col, payload->Data, sizeof(float) * 3); // Preserve alpha if any //-V512 - value_changed = accepted_drag_drop = true; - } - if (const ImGuiPayload* payload = AcceptDragDropPayload(IMGUI_PAYLOAD_TYPE_COLOR_4F)) - { - memcpy((float*)col, payload->Data, sizeof(float) * components); - value_changed = accepted_drag_drop = true; - } - - // Drag-drop payloads are always RGB - if (accepted_drag_drop && (flags & ImGuiColorEditFlags_InputHSV)) - ColorConvertRGBtoHSV(col[0], col[1], col[2], col[0], col[1], col[2]); - EndDragDropTarget(); - } - - // When picker is being actively used, use its active id so IsItemActive() will function on ColorEdit4(). - if (picker_active_window && g.ActiveId != 0 && g.ActiveIdWindow == picker_active_window) - window->DC.LastItemId = g.ActiveId; - - if (value_changed) - MarkItemEdited(window->DC.LastItemId); - - return value_changed; -} - -bool ImGui::ColorPicker3(const char* label, float col[3], ImGuiColorEditFlags flags) -{ - float col4[4] = { col[0], col[1], col[2], 1.0f }; - if (!ColorPicker4(label, col4, flags | ImGuiColorEditFlags_NoAlpha)) - return false; - col[0] = col4[0]; col[1] = col4[1]; col[2] = col4[2]; - return true; -} - -// Helper for ColorPicker4() -static void RenderArrowsForVerticalBar(ImDrawList* draw_list, ImVec2 pos, ImVec2 half_sz, float bar_w, float alpha) -{ - ImU32 alpha8 = IM_F32_TO_INT8_SAT(alpha); - ImGui::RenderArrowPointingAt(draw_list, ImVec2(pos.x + half_sz.x + 1, pos.y), ImVec2(half_sz.x + 2, half_sz.y + 1), ImGuiDir_Right, IM_COL32(0,0,0,alpha8)); - ImGui::RenderArrowPointingAt(draw_list, ImVec2(pos.x + half_sz.x, pos.y), half_sz, ImGuiDir_Right, IM_COL32(255,255,255,alpha8)); - ImGui::RenderArrowPointingAt(draw_list, ImVec2(pos.x + bar_w - half_sz.x - 1, pos.y), ImVec2(half_sz.x + 2, half_sz.y + 1), ImGuiDir_Left, IM_COL32(0,0,0,alpha8)); - ImGui::RenderArrowPointingAt(draw_list, ImVec2(pos.x + bar_w - half_sz.x, pos.y), half_sz, ImGuiDir_Left, IM_COL32(255,255,255,alpha8)); -} - -// Note: ColorPicker4() only accesses 3 floats if ImGuiColorEditFlags_NoAlpha flag is set. -// (In C++ the 'float col[4]' notation for a function argument is equivalent to 'float* col', we only specify a size to facilitate understanding of the code.) -// FIXME: we adjust the big color square height based on item width, which may cause a flickering feedback loop (if automatic height makes a vertical scrollbar appears, affecting automatic width..) -// FIXME: this is trying to be aware of style.Alpha but not fully correct. Also, the color wheel will have overlapping glitches with (style.Alpha < 1.0) -bool ImGui::ColorPicker4(const char* label, float col[4], ImGuiColorEditFlags flags, const float* ref_col) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImDrawList* draw_list = window->DrawList; - ImGuiStyle& style = g.Style; - ImGuiIO& io = g.IO; - - const float width = CalcItemWidth(); - g.NextItemData.ClearFlags(); - - PushID(label); - BeginGroup(); - - if (!(flags & ImGuiColorEditFlags_NoSidePreview)) - flags |= ImGuiColorEditFlags_NoSmallPreview; - - // Context menu: display and store options. - if (!(flags & ImGuiColorEditFlags_NoOptions)) - ColorPickerOptionsPopup(col, flags); - - // Read stored options - if (!(flags & ImGuiColorEditFlags__PickerMask)) - flags |= ((g.ColorEditOptions & ImGuiColorEditFlags__PickerMask) ? g.ColorEditOptions : ImGuiColorEditFlags__OptionsDefault) & ImGuiColorEditFlags__PickerMask; - if (!(flags & ImGuiColorEditFlags__InputMask)) - flags |= ((g.ColorEditOptions & ImGuiColorEditFlags__InputMask) ? g.ColorEditOptions : ImGuiColorEditFlags__OptionsDefault) & ImGuiColorEditFlags__InputMask; - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__PickerMask)); // Check that only 1 is selected - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__InputMask)); // Check that only 1 is selected - if (!(flags & ImGuiColorEditFlags_NoOptions)) - flags |= (g.ColorEditOptions & ImGuiColorEditFlags_AlphaBar); - - // Setup - int components = (flags & ImGuiColorEditFlags_NoAlpha) ? 3 : 4; - bool alpha_bar = (flags & ImGuiColorEditFlags_AlphaBar) && !(flags & ImGuiColorEditFlags_NoAlpha); - ImVec2 picker_pos = window->DC.CursorPos; - float square_sz = GetFrameHeight(); - float bars_width = square_sz; // Arbitrary smallish width of Hue/Alpha picking bars - float sv_picker_size = ImMax(bars_width * 1, width - (alpha_bar ? 2 : 1) * (bars_width + style.ItemInnerSpacing.x)); // Saturation/Value picking box - float bar0_pos_x = picker_pos.x + sv_picker_size + style.ItemInnerSpacing.x; - float bar1_pos_x = bar0_pos_x + bars_width + style.ItemInnerSpacing.x; - float bars_triangles_half_sz = IM_FLOOR(bars_width * 0.20f); - - float backup_initial_col[4]; - memcpy(backup_initial_col, col, components * sizeof(float)); - - float wheel_thickness = sv_picker_size * 0.08f; - float wheel_r_outer = sv_picker_size * 0.50f; - float wheel_r_inner = wheel_r_outer - wheel_thickness; - ImVec2 wheel_center(picker_pos.x + (sv_picker_size + bars_width)*0.5f, picker_pos.y + sv_picker_size*0.5f); - - // Note: the triangle is displayed rotated with triangle_pa pointing to Hue, but most coordinates stays unrotated for logic. - float triangle_r = wheel_r_inner - (int)(sv_picker_size * 0.027f); - ImVec2 triangle_pa = ImVec2(triangle_r, 0.0f); // Hue point. - ImVec2 triangle_pb = ImVec2(triangle_r * -0.5f, triangle_r * -0.866025f); // Black point. - ImVec2 triangle_pc = ImVec2(triangle_r * -0.5f, triangle_r * +0.866025f); // White point. - - float H = col[0], S = col[1], V = col[2]; - float R = col[0], G = col[1], B = col[2]; - if (flags & ImGuiColorEditFlags_InputRGB) - { - // Hue is lost when converting from greyscale rgb (saturation=0). Restore it. - ColorConvertRGBtoHSV(R, G, B, H, S, V); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) - { - if (S == 0) - H = g.ColorEditLastHue; - if (V == 0) - S = g.ColorEditLastSat; - } - } - else if (flags & ImGuiColorEditFlags_InputHSV) - { - ColorConvertHSVtoRGB(H, S, V, R, G, B); - } - - bool value_changed = false, value_changed_h = false, value_changed_sv = false; - - PushItemFlag(ImGuiItemFlags_NoNav, true); - if (flags & ImGuiColorEditFlags_PickerHueWheel) - { - // Hue wheel + SV triangle logic - InvisibleButton("hsv", ImVec2(sv_picker_size + style.ItemInnerSpacing.x + bars_width, sv_picker_size)); - if (IsItemActive()) - { - ImVec2 initial_off = g.IO.MouseClickedPos[0] - wheel_center; - ImVec2 current_off = g.IO.MousePos - wheel_center; - float initial_dist2 = ImLengthSqr(initial_off); - if (initial_dist2 >= (wheel_r_inner-1)*(wheel_r_inner-1) && initial_dist2 <= (wheel_r_outer+1)*(wheel_r_outer+1)) - { - // Interactive with Hue wheel - H = ImAtan2(current_off.y, current_off.x) / IM_PI*0.5f; - if (H < 0.0f) - H += 1.0f; - value_changed = value_changed_h = true; - } - float cos_hue_angle = ImCos(-H * 2.0f * IM_PI); - float sin_hue_angle = ImSin(-H * 2.0f * IM_PI); - if (ImTriangleContainsPoint(triangle_pa, triangle_pb, triangle_pc, ImRotate(initial_off, cos_hue_angle, sin_hue_angle))) - { - // Interacting with SV triangle - ImVec2 current_off_unrotated = ImRotate(current_off, cos_hue_angle, sin_hue_angle); - if (!ImTriangleContainsPoint(triangle_pa, triangle_pb, triangle_pc, current_off_unrotated)) - current_off_unrotated = ImTriangleClosestPoint(triangle_pa, triangle_pb, triangle_pc, current_off_unrotated); - float uu, vv, ww; - ImTriangleBarycentricCoords(triangle_pa, triangle_pb, triangle_pc, current_off_unrotated, uu, vv, ww); - V = ImClamp(1.0f - vv, 0.0001f, 1.0f); - S = ImClamp(uu / V, 0.0001f, 1.0f); - value_changed = value_changed_sv = true; - } - } - if (!(flags & ImGuiColorEditFlags_NoOptions)) - OpenPopupOnItemClick("context"); - } - else if (flags & ImGuiColorEditFlags_PickerHueBar) - { - // SV rectangle logic - InvisibleButton("sv", ImVec2(sv_picker_size, sv_picker_size)); - if (IsItemActive()) - { - S = ImSaturate((io.MousePos.x - picker_pos.x) / (sv_picker_size-1)); - V = 1.0f - ImSaturate((io.MousePos.y - picker_pos.y) / (sv_picker_size-1)); - value_changed = value_changed_sv = true; - } - if (!(flags & ImGuiColorEditFlags_NoOptions)) - OpenPopupOnItemClick("context"); - - // Hue bar logic - SetCursorScreenPos(ImVec2(bar0_pos_x, picker_pos.y)); - InvisibleButton("hue", ImVec2(bars_width, sv_picker_size)); - if (IsItemActive()) - { - H = ImSaturate((io.MousePos.y - picker_pos.y) / (sv_picker_size-1)); - value_changed = value_changed_h = true; - } - } - - // Alpha bar logic - if (alpha_bar) - { - SetCursorScreenPos(ImVec2(bar1_pos_x, picker_pos.y)); - InvisibleButton("alpha", ImVec2(bars_width, sv_picker_size)); - if (IsItemActive()) - { - col[3] = 1.0f - ImSaturate((io.MousePos.y - picker_pos.y) / (sv_picker_size-1)); - value_changed = true; - } - } - PopItemFlag(); // ImGuiItemFlags_NoNav - - if (!(flags & ImGuiColorEditFlags_NoSidePreview)) - { - SameLine(0, style.ItemInnerSpacing.x); - BeginGroup(); - } - - if (!(flags & ImGuiColorEditFlags_NoLabel)) - { - const char* label_display_end = FindRenderedTextEnd(label); - if (label != label_display_end) - { - if ((flags & ImGuiColorEditFlags_NoSidePreview)) - SameLine(0, style.ItemInnerSpacing.x); - TextEx(label, label_display_end); - } - } - - if (!(flags & ImGuiColorEditFlags_NoSidePreview)) - { - PushItemFlag(ImGuiItemFlags_NoNavDefaultFocus, true); - ImVec4 col_v4(col[0], col[1], col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : col[3]); - if ((flags & ImGuiColorEditFlags_NoLabel)) - Text("Current"); - - ImGuiColorEditFlags sub_flags_to_forward = ImGuiColorEditFlags__InputMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf | ImGuiColorEditFlags_NoTooltip; - ColorButton("##current", col_v4, (flags & sub_flags_to_forward), ImVec2(square_sz * 3, square_sz * 2)); - if (ref_col != NULL) - { - Text("Original"); - ImVec4 ref_col_v4(ref_col[0], ref_col[1], ref_col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : ref_col[3]); - if (ColorButton("##original", ref_col_v4, (flags & sub_flags_to_forward), ImVec2(square_sz * 3, square_sz * 2))) - { - memcpy(col, ref_col, components * sizeof(float)); - value_changed = true; - } - } - PopItemFlag(); - EndGroup(); - } - - // Convert back color to RGB - if (value_changed_h || value_changed_sv) - { - if (flags & ImGuiColorEditFlags_InputRGB) - { - ColorConvertHSVtoRGB(H >= 1.0f ? H - 10 * 1e-6f : H, S > 0.0f ? S : 10*1e-6f, V > 0.0f ? V : 1e-6f, col[0], col[1], col[2]); - g.ColorEditLastHue = H; - g.ColorEditLastSat = S; - memcpy(g.ColorEditLastColor, col, sizeof(float) * 3); - } - else if (flags & ImGuiColorEditFlags_InputHSV) - { - col[0] = H; - col[1] = S; - col[2] = V; - } - } - - // R,G,B and H,S,V slider color editor - bool value_changed_fix_hue_wrap = false; - if ((flags & ImGuiColorEditFlags_NoInputs) == 0) - { - PushItemWidth((alpha_bar ? bar1_pos_x : bar0_pos_x) + bars_width - picker_pos.x); - ImGuiColorEditFlags sub_flags_to_forward = ImGuiColorEditFlags__DataTypeMask | ImGuiColorEditFlags__InputMask | ImGuiColorEditFlags_HDR | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_NoOptions | ImGuiColorEditFlags_NoSmallPreview | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf; - ImGuiColorEditFlags sub_flags = (flags & sub_flags_to_forward) | ImGuiColorEditFlags_NoPicker; - if (flags & ImGuiColorEditFlags_DisplayRGB || (flags & ImGuiColorEditFlags__DisplayMask) == 0) - if (ColorEdit4("##rgb", col, sub_flags | ImGuiColorEditFlags_DisplayRGB)) - { - // FIXME: Hackily differenciating using the DragInt (ActiveId != 0 && !ActiveIdAllowOverlap) vs. using the InputText or DropTarget. - // For the later we don't want to run the hue-wrap canceling code. If you are well versed in HSV picker please provide your input! (See #2050) - value_changed_fix_hue_wrap = (g.ActiveId != 0 && !g.ActiveIdAllowOverlap); - value_changed = true; - } - if (flags & ImGuiColorEditFlags_DisplayHSV || (flags & ImGuiColorEditFlags__DisplayMask) == 0) - value_changed |= ColorEdit4("##hsv", col, sub_flags | ImGuiColorEditFlags_DisplayHSV); - if (flags & ImGuiColorEditFlags_DisplayHex || (flags & ImGuiColorEditFlags__DisplayMask) == 0) - value_changed |= ColorEdit4("##hex", col, sub_flags | ImGuiColorEditFlags_DisplayHex); - PopItemWidth(); - } - - // Try to cancel hue wrap (after ColorEdit4 call), if any - if (value_changed_fix_hue_wrap && (flags & ImGuiColorEditFlags_InputRGB)) - { - float new_H, new_S, new_V; - ColorConvertRGBtoHSV(col[0], col[1], col[2], new_H, new_S, new_V); - if (new_H <= 0 && H > 0) - { - if (new_V <= 0 && V != new_V) - ColorConvertHSVtoRGB(H, S, new_V <= 0 ? V * 0.5f : new_V, col[0], col[1], col[2]); - else if (new_S <= 0) - ColorConvertHSVtoRGB(H, new_S <= 0 ? S * 0.5f : new_S, new_V, col[0], col[1], col[2]); - } - } - - if (value_changed) - { - if (flags & ImGuiColorEditFlags_InputRGB) - { - R = col[0]; - G = col[1]; - B = col[2]; - ColorConvertRGBtoHSV(R, G, B, H, S, V); - if (memcmp(g.ColorEditLastColor, col, sizeof(float) * 3) == 0) // Fix local Hue as display below will use it immediately. - { - if (S == 0) - H = g.ColorEditLastHue; - if (V == 0) - S = g.ColorEditLastSat; - } - } - else if (flags & ImGuiColorEditFlags_InputHSV) - { - H = col[0]; - S = col[1]; - V = col[2]; - ColorConvertHSVtoRGB(H, S, V, R, G, B); - } - } - - const int style_alpha8 = IM_F32_TO_INT8_SAT(style.Alpha); - const ImU32 col_black = IM_COL32(0,0,0,style_alpha8); - const ImU32 col_white = IM_COL32(255,255,255,style_alpha8); - const ImU32 col_midgrey = IM_COL32(128,128,128,style_alpha8); - const ImU32 col_hues[6 + 1] = { IM_COL32(255,0,0,style_alpha8), IM_COL32(255,255,0,style_alpha8), IM_COL32(0,255,0,style_alpha8), IM_COL32(0,255,255,style_alpha8), IM_COL32(0,0,255,style_alpha8), IM_COL32(255,0,255,style_alpha8), IM_COL32(255,0,0,style_alpha8) }; - - ImVec4 hue_color_f(1, 1, 1, style.Alpha); ColorConvertHSVtoRGB(H, 1, 1, hue_color_f.x, hue_color_f.y, hue_color_f.z); - ImU32 hue_color32 = ColorConvertFloat4ToU32(hue_color_f); - ImU32 user_col32_striped_of_alpha = ColorConvertFloat4ToU32(ImVec4(R, G, B, style.Alpha)); // Important: this is still including the main rendering/style alpha!! - - ImVec2 sv_cursor_pos; - - if (flags & ImGuiColorEditFlags_PickerHueWheel) - { - // Render Hue Wheel - const float aeps = 0.5f / wheel_r_outer; // Half a pixel arc length in radians (2pi cancels out). - const int segment_per_arc = ImMax(4, (int)wheel_r_outer / 12); - for (int n = 0; n < 6; n++) - { - const float a0 = (n) /6.0f * 2.0f * IM_PI - aeps; - const float a1 = (n+1.0f)/6.0f * 2.0f * IM_PI + aeps; - const int vert_start_idx = draw_list->VtxBuffer.Size; - draw_list->PathArcTo(wheel_center, (wheel_r_inner + wheel_r_outer)*0.5f, a0, a1, segment_per_arc); - draw_list->PathStroke(col_white, false, wheel_thickness); - const int vert_end_idx = draw_list->VtxBuffer.Size; - - // Paint colors over existing vertices - ImVec2 gradient_p0(wheel_center.x + ImCos(a0) * wheel_r_inner, wheel_center.y + ImSin(a0) * wheel_r_inner); - ImVec2 gradient_p1(wheel_center.x + ImCos(a1) * wheel_r_inner, wheel_center.y + ImSin(a1) * wheel_r_inner); - ShadeVertsLinearColorGradientKeepAlpha(draw_list, vert_start_idx, vert_end_idx, gradient_p0, gradient_p1, col_hues[n], col_hues[n+1]); - } - - // Render Cursor + preview on Hue Wheel - float cos_hue_angle = ImCos(H * 2.0f * IM_PI); - float sin_hue_angle = ImSin(H * 2.0f * IM_PI); - ImVec2 hue_cursor_pos(wheel_center.x + cos_hue_angle * (wheel_r_inner+wheel_r_outer)*0.5f, wheel_center.y + sin_hue_angle * (wheel_r_inner+wheel_r_outer)*0.5f); - float hue_cursor_rad = value_changed_h ? wheel_thickness * 0.65f : wheel_thickness * 0.55f; - int hue_cursor_segments = ImClamp((int)(hue_cursor_rad / 1.4f), 9, 32); - draw_list->AddCircleFilled(hue_cursor_pos, hue_cursor_rad, hue_color32, hue_cursor_segments); - draw_list->AddCircle(hue_cursor_pos, hue_cursor_rad+1, col_midgrey, hue_cursor_segments); - draw_list->AddCircle(hue_cursor_pos, hue_cursor_rad, col_white, hue_cursor_segments); - - // Render SV triangle (rotated according to hue) - ImVec2 tra = wheel_center + ImRotate(triangle_pa, cos_hue_angle, sin_hue_angle); - ImVec2 trb = wheel_center + ImRotate(triangle_pb, cos_hue_angle, sin_hue_angle); - ImVec2 trc = wheel_center + ImRotate(triangle_pc, cos_hue_angle, sin_hue_angle); - ImVec2 uv_white = GetFontTexUvWhitePixel(); - draw_list->PrimReserve(6, 6); - draw_list->PrimVtx(tra, uv_white, hue_color32); - draw_list->PrimVtx(trb, uv_white, hue_color32); - draw_list->PrimVtx(trc, uv_white, col_white); - draw_list->PrimVtx(tra, uv_white, 0); - draw_list->PrimVtx(trb, uv_white, col_black); - draw_list->PrimVtx(trc, uv_white, 0); - draw_list->AddTriangle(tra, trb, trc, col_midgrey, 1.5f); - sv_cursor_pos = ImLerp(ImLerp(trc, tra, ImSaturate(S)), trb, ImSaturate(1 - V)); - } - else if (flags & ImGuiColorEditFlags_PickerHueBar) - { - // Render SV Square - draw_list->AddRectFilledMultiColor(picker_pos, picker_pos + ImVec2(sv_picker_size, sv_picker_size), col_white, hue_color32, hue_color32, col_white); - draw_list->AddRectFilledMultiColor(picker_pos, picker_pos + ImVec2(sv_picker_size, sv_picker_size), 0, 0, col_black, col_black); - RenderFrameBorder(picker_pos, picker_pos + ImVec2(sv_picker_size, sv_picker_size), 0.0f); - sv_cursor_pos.x = ImClamp(IM_ROUND(picker_pos.x + ImSaturate(S) * sv_picker_size), picker_pos.x + 2, picker_pos.x + sv_picker_size - 2); // Sneakily prevent the circle to stick out too much - sv_cursor_pos.y = ImClamp(IM_ROUND(picker_pos.y + ImSaturate(1 - V) * sv_picker_size), picker_pos.y + 2, picker_pos.y + sv_picker_size - 2); - - // Render Hue Bar - for (int i = 0; i < 6; ++i) - draw_list->AddRectFilledMultiColor(ImVec2(bar0_pos_x, picker_pos.y + i * (sv_picker_size / 6)), ImVec2(bar0_pos_x + bars_width, picker_pos.y + (i + 1) * (sv_picker_size / 6)), col_hues[i], col_hues[i], col_hues[i + 1], col_hues[i + 1]); - float bar0_line_y = IM_ROUND(picker_pos.y + H * sv_picker_size); - RenderFrameBorder(ImVec2(bar0_pos_x, picker_pos.y), ImVec2(bar0_pos_x + bars_width, picker_pos.y + sv_picker_size), 0.0f); - RenderArrowsForVerticalBar(draw_list, ImVec2(bar0_pos_x - 1, bar0_line_y), ImVec2(bars_triangles_half_sz + 1, bars_triangles_half_sz), bars_width + 2.0f, style.Alpha); - } - - // Render cursor/preview circle (clamp S/V within 0..1 range because floating points colors may lead HSV values to be out of range) - float sv_cursor_rad = value_changed_sv ? 10.0f : 6.0f; - draw_list->AddCircleFilled(sv_cursor_pos, sv_cursor_rad, user_col32_striped_of_alpha, 12); - draw_list->AddCircle(sv_cursor_pos, sv_cursor_rad+1, col_midgrey, 12); - draw_list->AddCircle(sv_cursor_pos, sv_cursor_rad, col_white, 12); - - // Render alpha bar - if (alpha_bar) - { - float alpha = ImSaturate(col[3]); - ImRect bar1_bb(bar1_pos_x, picker_pos.y, bar1_pos_x + bars_width, picker_pos.y + sv_picker_size); - RenderColorRectWithAlphaCheckerboard(draw_list, bar1_bb.Min, bar1_bb.Max, 0, bar1_bb.GetWidth() / 2.0f, ImVec2(0.0f, 0.0f)); - draw_list->AddRectFilledMultiColor(bar1_bb.Min, bar1_bb.Max, user_col32_striped_of_alpha, user_col32_striped_of_alpha, user_col32_striped_of_alpha & ~IM_COL32_A_MASK, user_col32_striped_of_alpha & ~IM_COL32_A_MASK); - float bar1_line_y = IM_ROUND(picker_pos.y + (1.0f - alpha) * sv_picker_size); - RenderFrameBorder(bar1_bb.Min, bar1_bb.Max, 0.0f); - RenderArrowsForVerticalBar(draw_list, ImVec2(bar1_pos_x - 1, bar1_line_y), ImVec2(bars_triangles_half_sz + 1, bars_triangles_half_sz), bars_width + 2.0f, style.Alpha); - } - - EndGroup(); - - if (value_changed && memcmp(backup_initial_col, col, components * sizeof(float)) == 0) - value_changed = false; - if (value_changed) - MarkItemEdited(window->DC.LastItemId); - - PopID(); - - return value_changed; -} - -// A little colored square. Return true when clicked. -// FIXME: May want to display/ignore the alpha component in the color display? Yet show it in the tooltip. -// 'desc_id' is not called 'label' because we don't display it next to the button, but only in the tooltip. -// Note that 'col' may be encoded in HSV if ImGuiColorEditFlags_InputHSV is set. -bool ImGui::ColorButton(const char* desc_id, const ImVec4& col, ImGuiColorEditFlags flags, ImVec2 size) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiID id = window->GetID(desc_id); - float default_size = GetFrameHeight(); - if (size.x == 0.0f) - size.x = default_size; - if (size.y == 0.0f) - size.y = default_size; - const ImRect bb(window->DC.CursorPos, window->DC.CursorPos + size); - ItemSize(bb, (size.y >= default_size) ? g.Style.FramePadding.y : 0.0f); - if (!ItemAdd(bb, id)) - return false; - - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held); - - if (flags & ImGuiColorEditFlags_NoAlpha) - flags &= ~(ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf); - - ImVec4 col_rgb = col; - if (flags & ImGuiColorEditFlags_InputHSV) - ColorConvertHSVtoRGB(col_rgb.x, col_rgb.y, col_rgb.z, col_rgb.x, col_rgb.y, col_rgb.z); - - ImVec4 col_rgb_without_alpha(col_rgb.x, col_rgb.y, col_rgb.z, 1.0f); - float grid_step = ImMin(size.x, size.y) / 2.99f; - float rounding = ImMin(g.Style.FrameRounding, grid_step * 0.5f); - ImRect bb_inner = bb; - float off = 0.0f; - if ((flags & ImGuiColorEditFlags_NoBorder) == 0) - { - off = -0.75f; // The border (using Col_FrameBg) tends to look off when color is near-opaque and rounding is enabled. This offset seemed like a good middle ground to reduce those artifacts. - bb_inner.Expand(off); - } - if ((flags & ImGuiColorEditFlags_AlphaPreviewHalf) && col_rgb.w < 1.0f) - { - float mid_x = IM_ROUND((bb_inner.Min.x + bb_inner.Max.x) * 0.5f); - RenderColorRectWithAlphaCheckerboard(window->DrawList, ImVec2(bb_inner.Min.x + grid_step, bb_inner.Min.y), bb_inner.Max, GetColorU32(col_rgb), grid_step, ImVec2(-grid_step + off, off), rounding, ImDrawCornerFlags_TopRight| ImDrawCornerFlags_BotRight); - window->DrawList->AddRectFilled(bb_inner.Min, ImVec2(mid_x, bb_inner.Max.y), GetColorU32(col_rgb_without_alpha), rounding, ImDrawCornerFlags_TopLeft|ImDrawCornerFlags_BotLeft); - } - else - { - // Because GetColorU32() multiplies by the global style Alpha and we don't want to display a checkerboard if the source code had no alpha - ImVec4 col_source = (flags & ImGuiColorEditFlags_AlphaPreview) ? col_rgb : col_rgb_without_alpha; - if (col_source.w < 1.0f) - RenderColorRectWithAlphaCheckerboard(window->DrawList, bb_inner.Min, bb_inner.Max, GetColorU32(col_source), grid_step, ImVec2(off, off), rounding); - else - window->DrawList->AddRectFilled(bb_inner.Min, bb_inner.Max, GetColorU32(col_source), rounding, ImDrawCornerFlags_All); - } - RenderNavHighlight(bb, id); - if ((flags & ImGuiColorEditFlags_NoBorder) == 0) - { - if (g.Style.FrameBorderSize > 0.0f) - RenderFrameBorder(bb.Min, bb.Max, rounding); - else - window->DrawList->AddRect(bb.Min, bb.Max, GetColorU32(ImGuiCol_FrameBg), rounding); // Color button are often in need of some sort of border - } - - // Drag and Drop Source - // NB: The ActiveId test is merely an optional micro-optimization, BeginDragDropSource() does the same test. - if (g.ActiveId == id && !(flags & ImGuiColorEditFlags_NoDragDrop) && BeginDragDropSource()) - { - if (flags & ImGuiColorEditFlags_NoAlpha) - SetDragDropPayload(IMGUI_PAYLOAD_TYPE_COLOR_3F, &col_rgb, sizeof(float) * 3, ImGuiCond_Once); - else - SetDragDropPayload(IMGUI_PAYLOAD_TYPE_COLOR_4F, &col_rgb, sizeof(float) * 4, ImGuiCond_Once); - ColorButton(desc_id, col, flags); - SameLine(); - TextEx("Color"); - EndDragDropSource(); - } - - // Tooltip - if (!(flags & ImGuiColorEditFlags_NoTooltip) && hovered) - ColorTooltip(desc_id, &col.x, flags & (ImGuiColorEditFlags__InputMask | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf)); - - return pressed; -} - -// Initialize/override default color options -void ImGui::SetColorEditOptions(ImGuiColorEditFlags flags) -{ - ImGuiContext& g = *GImGui; - if ((flags & ImGuiColorEditFlags__DisplayMask) == 0) - flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__DisplayMask; - if ((flags & ImGuiColorEditFlags__DataTypeMask) == 0) - flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__DataTypeMask; - if ((flags & ImGuiColorEditFlags__PickerMask) == 0) - flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__PickerMask; - if ((flags & ImGuiColorEditFlags__InputMask) == 0) - flags |= ImGuiColorEditFlags__OptionsDefault & ImGuiColorEditFlags__InputMask; - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__DisplayMask)); // Check only 1 option is selected - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__DataTypeMask)); // Check only 1 option is selected - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__PickerMask)); // Check only 1 option is selected - IM_ASSERT(ImIsPowerOfTwo(flags & ImGuiColorEditFlags__InputMask)); // Check only 1 option is selected - g.ColorEditOptions = flags; -} - -// Note: only access 3 floats if ImGuiColorEditFlags_NoAlpha flag is set. -void ImGui::ColorTooltip(const char* text, const float* col, ImGuiColorEditFlags flags) -{ - ImGuiContext& g = *GImGui; - - BeginTooltipEx(0, ImGuiTooltipFlags_OverridePreviousTooltip); - const char* text_end = text ? FindRenderedTextEnd(text, NULL) : text; - if (text_end > text) - { - TextEx(text, text_end); - Separator(); - } - - ImVec2 sz(g.FontSize * 3 + g.Style.FramePadding.y * 2, g.FontSize * 3 + g.Style.FramePadding.y * 2); - ImVec4 cf(col[0], col[1], col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : col[3]); - int cr = IM_F32_TO_INT8_SAT(col[0]), cg = IM_F32_TO_INT8_SAT(col[1]), cb = IM_F32_TO_INT8_SAT(col[2]), ca = (flags & ImGuiColorEditFlags_NoAlpha) ? 255 : IM_F32_TO_INT8_SAT(col[3]); - ColorButton("##preview", cf, (flags & (ImGuiColorEditFlags__InputMask | ImGuiColorEditFlags_NoAlpha | ImGuiColorEditFlags_AlphaPreview | ImGuiColorEditFlags_AlphaPreviewHalf)) | ImGuiColorEditFlags_NoTooltip, sz); - SameLine(); - if ((flags & ImGuiColorEditFlags_InputRGB) || !(flags & ImGuiColorEditFlags__InputMask)) - { - if (flags & ImGuiColorEditFlags_NoAlpha) - Text("#%02X%02X%02X\nR: %d, G: %d, B: %d\n(%.3f, %.3f, %.3f)", cr, cg, cb, cr, cg, cb, col[0], col[1], col[2]); - else - Text("#%02X%02X%02X%02X\nR:%d, G:%d, B:%d, A:%d\n(%.3f, %.3f, %.3f, %.3f)", cr, cg, cb, ca, cr, cg, cb, ca, col[0], col[1], col[2], col[3]); - } - else if (flags & ImGuiColorEditFlags_InputHSV) - { - if (flags & ImGuiColorEditFlags_NoAlpha) - Text("H: %.3f, S: %.3f, V: %.3f", col[0], col[1], col[2]); - else - Text("H: %.3f, S: %.3f, V: %.3f, A: %.3f", col[0], col[1], col[2], col[3]); - } - EndTooltip(); -} - -void ImGui::ColorEditOptionsPopup(const float* col, ImGuiColorEditFlags flags) -{ - bool allow_opt_inputs = !(flags & ImGuiColorEditFlags__DisplayMask); - bool allow_opt_datatype = !(flags & ImGuiColorEditFlags__DataTypeMask); - if ((!allow_opt_inputs && !allow_opt_datatype) || !BeginPopup("context")) - return; - ImGuiContext& g = *GImGui; - ImGuiColorEditFlags opts = g.ColorEditOptions; - if (allow_opt_inputs) - { - if (RadioButton("RGB", (opts & ImGuiColorEditFlags_DisplayRGB) != 0)) opts = (opts & ~ImGuiColorEditFlags__DisplayMask) | ImGuiColorEditFlags_DisplayRGB; - if (RadioButton("HSV", (opts & ImGuiColorEditFlags_DisplayHSV) != 0)) opts = (opts & ~ImGuiColorEditFlags__DisplayMask) | ImGuiColorEditFlags_DisplayHSV; - if (RadioButton("Hex", (opts & ImGuiColorEditFlags_DisplayHex) != 0)) opts = (opts & ~ImGuiColorEditFlags__DisplayMask) | ImGuiColorEditFlags_DisplayHex; - } - if (allow_opt_datatype) - { - if (allow_opt_inputs) Separator(); - if (RadioButton("0..255", (opts & ImGuiColorEditFlags_Uint8) != 0)) opts = (opts & ~ImGuiColorEditFlags__DataTypeMask) | ImGuiColorEditFlags_Uint8; - if (RadioButton("0.00..1.00", (opts & ImGuiColorEditFlags_Float) != 0)) opts = (opts & ~ImGuiColorEditFlags__DataTypeMask) | ImGuiColorEditFlags_Float; - } - - if (allow_opt_inputs || allow_opt_datatype) - Separator(); - if (Button("Copy as..", ImVec2(-1,0))) - OpenPopup("Copy"); - if (BeginPopup("Copy")) - { - int cr = IM_F32_TO_INT8_SAT(col[0]), cg = IM_F32_TO_INT8_SAT(col[1]), cb = IM_F32_TO_INT8_SAT(col[2]), ca = (flags & ImGuiColorEditFlags_NoAlpha) ? 255 : IM_F32_TO_INT8_SAT(col[3]); - char buf[64]; - ImFormatString(buf, IM_ARRAYSIZE(buf), "(%.3ff, %.3ff, %.3ff, %.3ff)", col[0], col[1], col[2], (flags & ImGuiColorEditFlags_NoAlpha) ? 1.0f : col[3]); - if (Selectable(buf)) - SetClipboardText(buf); - ImFormatString(buf, IM_ARRAYSIZE(buf), "(%d,%d,%d,%d)", cr, cg, cb, ca); - if (Selectable(buf)) - SetClipboardText(buf); - ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X", cr, cg, cb); - if (Selectable(buf)) - SetClipboardText(buf); - if (!(flags & ImGuiColorEditFlags_NoAlpha)) - { - ImFormatString(buf, IM_ARRAYSIZE(buf), "#%02X%02X%02X%02X", cr, cg, cb, ca); - if (Selectable(buf)) - SetClipboardText(buf); - } - EndPopup(); - } - - g.ColorEditOptions = opts; - EndPopup(); -} - -void ImGui::ColorPickerOptionsPopup(const float* ref_col, ImGuiColorEditFlags flags) -{ - bool allow_opt_picker = !(flags & ImGuiColorEditFlags__PickerMask); - bool allow_opt_alpha_bar = !(flags & ImGuiColorEditFlags_NoAlpha) && !(flags & ImGuiColorEditFlags_AlphaBar); - if ((!allow_opt_picker && !allow_opt_alpha_bar) || !BeginPopup("context")) - return; - ImGuiContext& g = *GImGui; - if (allow_opt_picker) - { - ImVec2 picker_size(g.FontSize * 8, ImMax(g.FontSize * 8 - (GetFrameHeight() + g.Style.ItemInnerSpacing.x), 1.0f)); // FIXME: Picker size copied from main picker function - PushItemWidth(picker_size.x); - for (int picker_type = 0; picker_type < 2; picker_type++) - { - // Draw small/thumbnail version of each picker type (over an invisible button for selection) - if (picker_type > 0) Separator(); - PushID(picker_type); - ImGuiColorEditFlags picker_flags = ImGuiColorEditFlags_NoInputs|ImGuiColorEditFlags_NoOptions|ImGuiColorEditFlags_NoLabel|ImGuiColorEditFlags_NoSidePreview|(flags & ImGuiColorEditFlags_NoAlpha); - if (picker_type == 0) picker_flags |= ImGuiColorEditFlags_PickerHueBar; - if (picker_type == 1) picker_flags |= ImGuiColorEditFlags_PickerHueWheel; - ImVec2 backup_pos = GetCursorScreenPos(); - if (Selectable("##selectable", false, 0, picker_size)) // By default, Selectable() is closing popup - g.ColorEditOptions = (g.ColorEditOptions & ~ImGuiColorEditFlags__PickerMask) | (picker_flags & ImGuiColorEditFlags__PickerMask); - SetCursorScreenPos(backup_pos); - ImVec4 dummy_ref_col; - memcpy(&dummy_ref_col, ref_col, sizeof(float) * ((picker_flags & ImGuiColorEditFlags_NoAlpha) ? 3 : 4)); - ColorPicker4("##dummypicker", &dummy_ref_col.x, picker_flags); - PopID(); - } - PopItemWidth(); - } - if (allow_opt_alpha_bar) - { - if (allow_opt_picker) Separator(); - CheckboxFlags("Alpha Bar", (unsigned int*)&g.ColorEditOptions, ImGuiColorEditFlags_AlphaBar); - } - EndPopup(); -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: TreeNode, CollapsingHeader, etc. -//------------------------------------------------------------------------- -// - TreeNode() -// - TreeNodeV() -// - TreeNodeEx() -// - TreeNodeExV() -// - TreeNodeBehavior() [Internal] -// - TreePush() -// - TreePop() -// - GetTreeNodeToLabelSpacing() -// - SetNextItemOpen() -// - CollapsingHeader() -//------------------------------------------------------------------------- - -bool ImGui::TreeNode(const char* str_id, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - bool is_open = TreeNodeExV(str_id, 0, fmt, args); - va_end(args); - return is_open; -} - -bool ImGui::TreeNode(const void* ptr_id, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - bool is_open = TreeNodeExV(ptr_id, 0, fmt, args); - va_end(args); - return is_open; -} - -bool ImGui::TreeNode(const char* label) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - return TreeNodeBehavior(window->GetID(label), 0, label, NULL); -} - -bool ImGui::TreeNodeV(const char* str_id, const char* fmt, va_list args) -{ - return TreeNodeExV(str_id, 0, fmt, args); -} - -bool ImGui::TreeNodeV(const void* ptr_id, const char* fmt, va_list args) -{ - return TreeNodeExV(ptr_id, 0, fmt, args); -} - -bool ImGui::TreeNodeEx(const char* label, ImGuiTreeNodeFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - return TreeNodeBehavior(window->GetID(label), flags, label, NULL); -} - -bool ImGui::TreeNodeEx(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - bool is_open = TreeNodeExV(str_id, flags, fmt, args); - va_end(args); - return is_open; -} - -bool ImGui::TreeNodeEx(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, ...) -{ - va_list args; - va_start(args, fmt); - bool is_open = TreeNodeExV(ptr_id, flags, fmt, args); - va_end(args); - return is_open; -} - -bool ImGui::TreeNodeExV(const char* str_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const char* label_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - return TreeNodeBehavior(window->GetID(str_id), flags, g.TempBuffer, label_end); -} - -bool ImGui::TreeNodeExV(const void* ptr_id, ImGuiTreeNodeFlags flags, const char* fmt, va_list args) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const char* label_end = g.TempBuffer + ImFormatStringV(g.TempBuffer, IM_ARRAYSIZE(g.TempBuffer), fmt, args); - return TreeNodeBehavior(window->GetID(ptr_id), flags, g.TempBuffer, label_end); -} - -bool ImGui::TreeNodeBehaviorIsOpen(ImGuiID id, ImGuiTreeNodeFlags flags) -{ - if (flags & ImGuiTreeNodeFlags_Leaf) - return true; - - // We only write to the tree storage if the user clicks (or explicitly use the SetNextItemOpen function) - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - ImGuiStorage* storage = window->DC.StateStorage; - - bool is_open; - if (g.NextItemData.Flags & ImGuiNextItemDataFlags_HasOpen) - { - if (g.NextItemData.OpenCond & ImGuiCond_Always) - { - is_open = g.NextItemData.OpenVal; - storage->SetInt(id, is_open); - } - else - { - // We treat ImGuiCond_Once and ImGuiCond_FirstUseEver the same because tree node state are not saved persistently. - const int stored_value = storage->GetInt(id, -1); - if (stored_value == -1) - { - is_open = g.NextItemData.OpenVal; - storage->SetInt(id, is_open); - } - else - { - is_open = stored_value != 0; - } - } - } - else - { - is_open = storage->GetInt(id, (flags & ImGuiTreeNodeFlags_DefaultOpen) ? 1 : 0) != 0; - } - - // When logging is enabled, we automatically expand tree nodes (but *NOT* collapsing headers.. seems like sensible behavior). - // NB- If we are above max depth we still allow manually opened nodes to be logged. - if (g.LogEnabled && !(flags & ImGuiTreeNodeFlags_NoAutoOpenOnLog) && (window->DC.TreeDepth - g.LogDepthRef) < g.LogDepthToExpand) - is_open = true; - - return is_open; -} - -bool ImGui::TreeNodeBehavior(ImGuiID id, ImGuiTreeNodeFlags flags, const char* label, const char* label_end) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const bool display_frame = (flags & ImGuiTreeNodeFlags_Framed) != 0; - const ImVec2 padding = (display_frame || (flags & ImGuiTreeNodeFlags_FramePadding)) ? style.FramePadding : ImVec2(style.FramePadding.x, ImMin(window->DC.CurrLineTextBaseOffset, style.FramePadding.y)); - - if (!label_end) - label_end = FindRenderedTextEnd(label); - const ImVec2 label_size = CalcTextSize(label, label_end, false); - - // We vertically grow up to current line height up the typical widget height. - const float frame_height = ImMax(ImMin(window->DC.CurrLineSize.y, g.FontSize + style.FramePadding.y*2), label_size.y + padding.y*2); - ImRect frame_bb; - frame_bb.Min.x = (flags & ImGuiTreeNodeFlags_SpanFullWidth) ? window->WorkRect.Min.x : window->DC.CursorPos.x; - frame_bb.Min.y = window->DC.CursorPos.y; - frame_bb.Max.x = window->WorkRect.Max.x; - frame_bb.Max.y = window->DC.CursorPos.y + frame_height; - if (display_frame) - { - // Framed header expand a little outside the default padding, to the edge of InnerClipRect - // (FIXME: May remove this at some point and make InnerClipRect align with WindowPadding.x instead of WindowPadding.x*0.5f) - frame_bb.Min.x -= IM_FLOOR(window->WindowPadding.x * 0.5f - 1.0f); - frame_bb.Max.x += IM_FLOOR(window->WindowPadding.x * 0.5f); - } - - const float text_offset_x = g.FontSize + (display_frame ? padding.x*3 : padding.x*2); // Collapser arrow width + Spacing - const float text_offset_y = ImMax(padding.y, window->DC.CurrLineTextBaseOffset); // Latch before ItemSize changes it - const float text_width = g.FontSize + (label_size.x > 0.0f ? label_size.x + padding.x*2 : 0.0f); // Include collapser - ImVec2 text_pos(window->DC.CursorPos.x + text_offset_x, window->DC.CursorPos.y + text_offset_y); - ItemSize(ImVec2(text_width, frame_height), padding.y); - - // For regular tree nodes, we arbitrary allow to click past 2 worth of ItemSpacing - ImRect interact_bb = frame_bb; - if (!display_frame && (flags & (ImGuiTreeNodeFlags_SpanAvailWidth | ImGuiTreeNodeFlags_SpanFullWidth)) == 0) - interact_bb.Max.x = frame_bb.Min.x + text_width + style.ItemSpacing.x * 2.0f; - - // Store a flag for the current depth to tell if we will allow closing this node when navigating one of its child. - // For this purpose we essentially compare if g.NavIdIsAlive went from 0 to 1 between TreeNode() and TreePop(). - // This is currently only support 32 level deep and we are fine with (1 << Depth) overflowing into a zero. - const bool is_leaf = (flags & ImGuiTreeNodeFlags_Leaf) != 0; - bool is_open = TreeNodeBehaviorIsOpen(id, flags); - if (is_open && !g.NavIdIsAlive && (flags & ImGuiTreeNodeFlags_NavLeftJumpsBackHere) && !(flags & ImGuiTreeNodeFlags_NoTreePushOnOpen)) - window->DC.TreeJumpToParentOnPopMask |= (1 << window->DC.TreeDepth); - - bool item_add = ItemAdd(interact_bb, id); - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_HasDisplayRect; - window->DC.LastItemDisplayRect = frame_bb; - - if (!item_add) - { - if (is_open && !(flags & ImGuiTreeNodeFlags_NoTreePushOnOpen)) - TreePushOverrideID(id); - IMGUI_TEST_ENGINE_ITEM_INFO(window->DC.LastItemId, label, window->DC.ItemFlags | (is_leaf ? 0 : ImGuiItemStatusFlags_Openable) | (is_open ? ImGuiItemStatusFlags_Opened : 0)); - return is_open; - } - - ImGuiButtonFlags button_flags = ImGuiTreeNodeFlags_None; - if (flags & ImGuiTreeNodeFlags_AllowItemOverlap) - button_flags |= ImGuiButtonFlags_AllowItemOverlap; - if (!is_leaf) - button_flags |= ImGuiButtonFlags_PressedOnDragDropHold; - - // We allow clicking on the arrow section with keyboard modifiers held, in order to easily - // allow browsing a tree while preserving selection with code implementing multi-selection patterns. - // When clicking on the rest of the tree node we always disallow keyboard modifiers. - const float arrow_hit_x1 = (text_pos.x - text_offset_x) - style.TouchExtraPadding.x; - const float arrow_hit_x2 = (text_pos.x - text_offset_x) + (g.FontSize + padding.x * 2.0f) + style.TouchExtraPadding.x; - const bool is_mouse_x_over_arrow = (g.IO.MousePos.x >= arrow_hit_x1 && g.IO.MousePos.x < arrow_hit_x2); - if (window != g.HoveredWindow || !is_mouse_x_over_arrow) - button_flags |= ImGuiButtonFlags_NoKeyModifiers; - - // Open behaviors can be altered with the _OpenOnArrow and _OnOnDoubleClick flags. - // Some alteration have subtle effects (e.g. toggle on MouseUp vs MouseDown events) due to requirements for multi-selection and drag and drop support. - // - Single-click on label = Toggle on MouseUp (default) - // - Single-click on arrow = Toggle on MouseUp (when _OpenOnArrow=0) - // - Single-click on arrow = Toggle on MouseDown (when _OpenOnArrow=1) - // - Double-click on label = Toggle on MouseDoubleClick (when _OpenOnDoubleClick=1) - // - Double-click on arrow = Toggle on MouseDoubleClick (when _OpenOnDoubleClick=1 and _OpenOnArrow=0) - // This makes _OpenOnArrow have a subtle effect on _OpenOnDoubleClick: arrow click reacts on Down rather than Up. - // It is rather standard that arrow click react on Down rather than Up and we'd be tempted to make it the default - // (by removing the _OpenOnArrow test below), however this would have a perhaps surprising effect on CollapsingHeader()? - // So right now we are making this optional. May evolve later. - if (is_mouse_x_over_arrow && (flags & ImGuiTreeNodeFlags_OpenOnArrow)) - button_flags |= ImGuiButtonFlags_PressedOnClick; - else if (flags & ImGuiTreeNodeFlags_OpenOnDoubleClick) - button_flags |= ImGuiButtonFlags_PressedOnDoubleClick; - else - button_flags |= ImGuiButtonFlags_PressedOnClickRelease; - - bool selected = (flags & ImGuiTreeNodeFlags_Selected) != 0; - const bool was_selected = selected; - - bool hovered, held; - bool pressed = ButtonBehavior(interact_bb, id, &hovered, &held, button_flags); - bool toggled = false; - if (!is_leaf) - { - if (pressed) - { - if ((flags & (ImGuiTreeNodeFlags_OpenOnArrow | ImGuiTreeNodeFlags_OpenOnDoubleClick)) == 0 || (g.NavActivateId == id)) - toggled = true; - if (flags & ImGuiTreeNodeFlags_OpenOnArrow) - toggled |= is_mouse_x_over_arrow && !g.NavDisableMouseHover; // Lightweight equivalent of IsMouseHoveringRect() since ButtonBehavior() already did the job - if ((flags & ImGuiTreeNodeFlags_OpenOnDoubleClick) && g.IO.MouseDoubleClicked[0]) - toggled = true; - if (g.DragDropActive && is_open) // When using Drag and Drop "hold to open" we keep the node highlighted after opening, but never close it again. - toggled = false; - } - - if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Left && is_open) - { - toggled = true; - NavMoveRequestCancel(); - } - if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Right && !is_open) // If there's something upcoming on the line we may want to give it the priority? - { - toggled = true; - NavMoveRequestCancel(); - } - - if (toggled) - { - is_open = !is_open; - window->DC.StateStorage->SetInt(id, is_open); - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_ToggledOpen; - } - } - if (flags & ImGuiTreeNodeFlags_AllowItemOverlap) - SetItemAllowOverlap(); - - // In this branch, TreeNodeBehavior() cannot toggle the selection so this will never trigger. - if (selected != was_selected) //-V547 - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_ToggledSelection; - - // Render - const ImU32 text_col = GetColorU32(ImGuiCol_Text); - ImGuiNavHighlightFlags nav_highlight_flags = ImGuiNavHighlightFlags_TypeThin; - if (display_frame) - { - // Framed type - const ImU32 bg_col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); - RenderFrame(frame_bb.Min, frame_bb.Max, bg_col, true, style.FrameRounding); - RenderNavHighlight(frame_bb, id, nav_highlight_flags); - if (flags & ImGuiTreeNodeFlags_Bullet) - RenderBullet(window->DrawList, ImVec2(text_pos.x - text_offset_x * 0.60f, text_pos.y + g.FontSize * 0.5f), text_col); - else if (!is_leaf) - RenderArrow(window->DrawList, ImVec2(text_pos.x - text_offset_x + padding.x, text_pos.y), text_col, is_open ? ImGuiDir_Down : ImGuiDir_Right, 1.0f); - else // Leaf without bullet, left-adjusted text - text_pos.x -= text_offset_x; - if (flags & ImGuiTreeNodeFlags_ClipLabelForTrailingButton) - frame_bb.Max.x -= g.FontSize + style.FramePadding.x; - if (g.LogEnabled) - { - // NB: '##' is normally used to hide text (as a library-wide feature), so we need to specify the text range to make sure the ## aren't stripped out here. - const char log_prefix[] = "\n##"; - const char log_suffix[] = "##"; - LogRenderedText(&text_pos, log_prefix, log_prefix+3); - RenderTextClipped(text_pos, frame_bb.Max, label, label_end, &label_size); - LogRenderedText(&text_pos, log_suffix, log_suffix+2); - } - else - { - RenderTextClipped(text_pos, frame_bb.Max, label, label_end, &label_size); - } - } - else - { - // Unframed typed for tree nodes - if (hovered || selected) - { - const ImU32 bg_col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); - RenderFrame(frame_bb.Min, frame_bb.Max, bg_col, false); - RenderNavHighlight(frame_bb, id, nav_highlight_flags); - } - if (flags & ImGuiTreeNodeFlags_Bullet) - RenderBullet(window->DrawList, ImVec2(text_pos.x - text_offset_x * 0.5f, text_pos.y + g.FontSize * 0.5f), text_col); - else if (!is_leaf) - RenderArrow(window->DrawList, ImVec2(text_pos.x - text_offset_x + padding.x, text_pos.y + g.FontSize * 0.15f), text_col, is_open ? ImGuiDir_Down : ImGuiDir_Right, 0.70f); - if (g.LogEnabled) - LogRenderedText(&text_pos, ">"); - RenderText(text_pos, label, label_end, false); - } - - if (is_open && !(flags & ImGuiTreeNodeFlags_NoTreePushOnOpen)) - TreePushOverrideID(id); - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags | (is_leaf ? 0 : ImGuiItemStatusFlags_Openable) | (is_open ? ImGuiItemStatusFlags_Opened : 0)); - return is_open; -} - -void ImGui::TreePush(const char* str_id) -{ - ImGuiWindow* window = GetCurrentWindow(); - Indent(); - window->DC.TreeDepth++; - PushID(str_id ? str_id : "#TreePush"); -} - -void ImGui::TreePush(const void* ptr_id) -{ - ImGuiWindow* window = GetCurrentWindow(); - Indent(); - window->DC.TreeDepth++; - PushID(ptr_id ? ptr_id : (const void*)"#TreePush"); -} - -void ImGui::TreePushOverrideID(ImGuiID id) -{ - ImGuiWindow* window = GetCurrentWindow(); - Indent(); - window->DC.TreeDepth++; - window->IDStack.push_back(id); -} - -void ImGui::TreePop() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - Unindent(); - - window->DC.TreeDepth--; - ImU32 tree_depth_mask = (1 << window->DC.TreeDepth); - - // Handle Left arrow to move to parent tree node (when ImGuiTreeNodeFlags_NavLeftJumpsBackHere is enabled) - if (g.NavMoveDir == ImGuiDir_Left && g.NavWindow == window && NavMoveRequestButNoResultYet()) - if (g.NavIdIsAlive && (window->DC.TreeJumpToParentOnPopMask & tree_depth_mask)) - { - SetNavID(window->IDStack.back(), g.NavLayer, 0); - NavMoveRequestCancel(); - } - window->DC.TreeJumpToParentOnPopMask &= tree_depth_mask - 1; - - IM_ASSERT(window->IDStack.Size > 1); // There should always be 1 element in the IDStack (pushed during window creation). If this triggers you called TreePop/PopID too much. - PopID(); -} - -// Horizontal distance preceding label when using TreeNode() or Bullet() -float ImGui::GetTreeNodeToLabelSpacing() -{ - ImGuiContext& g = *GImGui; - return g.FontSize + (g.Style.FramePadding.x * 2.0f); -} - -// Set next TreeNode/CollapsingHeader open state. -void ImGui::SetNextItemOpen(bool is_open, ImGuiCond cond) -{ - ImGuiContext& g = *GImGui; - if (g.CurrentWindow->SkipItems) - return; - g.NextItemData.Flags |= ImGuiNextItemDataFlags_HasOpen; - g.NextItemData.OpenVal = is_open; - g.NextItemData.OpenCond = cond ? cond : ImGuiCond_Always; -} - -// CollapsingHeader returns true when opened but do not indent nor push into the ID stack (because of the ImGuiTreeNodeFlags_NoTreePushOnOpen flag). -// This is basically the same as calling TreeNodeEx(label, ImGuiTreeNodeFlags_CollapsingHeader). You can remove the _NoTreePushOnOpen flag if you want behavior closer to normal TreeNode(). -bool ImGui::CollapsingHeader(const char* label, ImGuiTreeNodeFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - return TreeNodeBehavior(window->GetID(label), flags | ImGuiTreeNodeFlags_CollapsingHeader, label); -} - -bool ImGui::CollapsingHeader(const char* label, bool* p_open, ImGuiTreeNodeFlags flags) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - if (p_open && !*p_open) - return false; - - ImGuiID id = window->GetID(label); - flags |= ImGuiTreeNodeFlags_CollapsingHeader; - if (p_open) - flags |= ImGuiTreeNodeFlags_AllowItemOverlap | ImGuiTreeNodeFlags_ClipLabelForTrailingButton; - bool is_open = TreeNodeBehavior(id, flags, label); - if (p_open) - { - // Create a small overlapping close button - // FIXME: We can evolve this into user accessible helpers to add extra buttons on title bars, headers, etc. - // FIXME: CloseButton can overlap into text, need find a way to clip the text somehow. - ImGuiContext& g = *GImGui; - ImGuiItemHoveredDataBackup last_item_backup; - float button_size = g.FontSize; - float button_x = ImMax(window->DC.LastItemRect.Min.x, window->DC.LastItemRect.Max.x - g.Style.FramePadding.x * 2.0f - button_size); - float button_y = window->DC.LastItemRect.Min.y; - if (CloseButton(window->GetID((void*)((intptr_t)id + 1)), ImVec2(button_x, button_y))) - *p_open = false; - last_item_backup.Restore(); - } - - return is_open; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: Selectable -//------------------------------------------------------------------------- -// - Selectable() -//------------------------------------------------------------------------- - -// Tip: pass a non-visible label (e.g. "##dummy") then you can use the space to draw other text or image. -// But you need to make sure the ID is unique, e.g. enclose calls in PushID/PopID or use ##unique_id. -// With this scheme, ImGuiSelectableFlags_SpanAllColumns and ImGuiSelectableFlags_AllowItemOverlap are also frequently used flags. -// FIXME: Selectable() with (size.x == 0.0f) and (SelectableTextAlign.x > 0.0f) followed by SameLine() is currently not supported. -bool ImGui::Selectable(const char* label, bool selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - - if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.CurrentColumns) // FIXME-OPT: Avoid if vertically clipped. - PushColumnsBackground(); - - // Submit label or explicit size to ItemSize(), whereas ItemAdd() will submit a larger/spanning rectangle. - ImGuiID id = window->GetID(label); - ImVec2 label_size = CalcTextSize(label, NULL, true); - ImVec2 size(size_arg.x != 0.0f ? size_arg.x : label_size.x, size_arg.y != 0.0f ? size_arg.y : label_size.y); - ImVec2 pos = window->DC.CursorPos; - pos.y += window->DC.CurrLineTextBaseOffset; - ItemSize(size, 0.0f); - - // Fill horizontal space - const float min_x = (flags & ImGuiSelectableFlags_SpanAllColumns) ? window->ContentRegionRect.Min.x : pos.x; - const float max_x = (flags & ImGuiSelectableFlags_SpanAllColumns) ? window->ContentRegionRect.Max.x : GetContentRegionMaxAbs().x; - if (size_arg.x == 0.0f || (flags & ImGuiSelectableFlags_SpanAvailWidth)) - size.x = ImMax(label_size.x, max_x - min_x); - - // Text stays at the submission position, but bounding box may be extended on both sides - const ImVec2 text_min = pos; - const ImVec2 text_max(min_x + size.x, pos.y + size.y); - - // Selectables are meant to be tightly packed together with no click-gap, so we extend their box to cover spacing between selectable. - ImRect bb_enlarged(min_x, pos.y, text_max.x, text_max.y); - const float spacing_x = style.ItemSpacing.x; - const float spacing_y = style.ItemSpacing.y; - const float spacing_L = IM_FLOOR(spacing_x * 0.50f); - const float spacing_U = IM_FLOOR(spacing_y * 0.50f); - bb_enlarged.Min.x -= spacing_L; - bb_enlarged.Min.y -= spacing_U; - bb_enlarged.Max.x += (spacing_x - spacing_L); - bb_enlarged.Max.y += (spacing_y - spacing_U); - //if (g.IO.KeyCtrl) { GetForegroundDrawList()->AddRect(bb_align.Min, bb_align.Max, IM_COL32(255, 0, 0, 255)); } - //if (g.IO.KeyCtrl) { GetForegroundDrawList()->AddRect(bb_enlarged.Min, bb_enlarged.Max, IM_COL32(0, 255, 0, 255)); } - - bool item_add; - if (flags & ImGuiSelectableFlags_Disabled) - { - ImGuiItemFlags backup_item_flags = window->DC.ItemFlags; - window->DC.ItemFlags |= ImGuiItemFlags_Disabled | ImGuiItemFlags_NoNavDefaultFocus; - item_add = ItemAdd(bb_enlarged, id); - window->DC.ItemFlags = backup_item_flags; - } - else - { - item_add = ItemAdd(bb_enlarged, id); - } - if (!item_add) - { - if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.CurrentColumns) - PopColumnsBackground(); - return false; - } - - // We use NoHoldingActiveID on menus so user can click and _hold_ on a menu then drag to browse child entries - ImGuiButtonFlags button_flags = 0; - if (flags & ImGuiSelectableFlags_NoHoldingActiveID) { button_flags |= ImGuiButtonFlags_NoHoldingActiveId; } - if (flags & ImGuiSelectableFlags_SelectOnClick) { button_flags |= ImGuiButtonFlags_PressedOnClick; } - if (flags & ImGuiSelectableFlags_SelectOnRelease) { button_flags |= ImGuiButtonFlags_PressedOnRelease; } - if (flags & ImGuiSelectableFlags_Disabled) { button_flags |= ImGuiButtonFlags_Disabled; } - if (flags & ImGuiSelectableFlags_AllowDoubleClick) { button_flags |= ImGuiButtonFlags_PressedOnClickRelease | ImGuiButtonFlags_PressedOnDoubleClick; } - if (flags & ImGuiSelectableFlags_AllowItemOverlap) { button_flags |= ImGuiButtonFlags_AllowItemOverlap; } - - if (flags & ImGuiSelectableFlags_Disabled) - selected = false; - - const bool was_selected = selected; - bool hovered, held; - bool pressed = ButtonBehavior(bb_enlarged, id, &hovered, &held, button_flags); - - // Update NavId when clicking or when Hovering (this doesn't happen on most widgets), so navigation can be resumed with gamepad/keyboard - if (pressed || (hovered && (flags & ImGuiSelectableFlags_SetNavIdOnHover))) - { - if (!g.NavDisableMouseHover && g.NavWindow == window && g.NavLayer == window->DC.NavLayerCurrent) - { - g.NavDisableHighlight = true; - SetNavID(id, window->DC.NavLayerCurrent, window->DC.NavFocusScopeIdCurrent); - } - } - if (pressed) - MarkItemEdited(id); - - if (flags & ImGuiSelectableFlags_AllowItemOverlap) - SetItemAllowOverlap(); - - // In this branch, Selectable() cannot toggle the selection so this will never trigger. - if (selected != was_selected) //-V547 - window->DC.LastItemStatusFlags |= ImGuiItemStatusFlags_ToggledSelection; - - // Render - if (held && (flags & ImGuiSelectableFlags_DrawHoveredWhenHeld)) - hovered = true; - if (hovered || selected) - { - const ImU32 col = GetColorU32((held && hovered) ? ImGuiCol_HeaderActive : hovered ? ImGuiCol_HeaderHovered : ImGuiCol_Header); - RenderFrame(bb_enlarged.Min, bb_enlarged.Max, col, false, 0.0f); - RenderNavHighlight(bb_enlarged, id, ImGuiNavHighlightFlags_TypeThin | ImGuiNavHighlightFlags_NoRounding); - } - - if ((flags & ImGuiSelectableFlags_SpanAllColumns) && window->DC.CurrentColumns) - PopColumnsBackground(); - - if (flags & ImGuiSelectableFlags_Disabled) PushStyleColor(ImGuiCol_Text, style.Colors[ImGuiCol_TextDisabled]); - RenderTextClipped(text_min, text_max, label, NULL, &label_size, style.SelectableTextAlign, &bb_enlarged); - if (flags & ImGuiSelectableFlags_Disabled) PopStyleColor(); - - // Automatically close popups - if (pressed && (window->Flags & ImGuiWindowFlags_Popup) && !(flags & ImGuiSelectableFlags_DontClosePopups) && !(window->DC.ItemFlags & ImGuiItemFlags_SelectableDontClosePopup)) - CloseCurrentPopup(); - - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags); - return pressed; -} - -bool ImGui::Selectable(const char* label, bool* p_selected, ImGuiSelectableFlags flags, const ImVec2& size_arg) -{ - if (Selectable(label, *p_selected, flags, size_arg)) - { - *p_selected = !*p_selected; - return true; - } - return false; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: ListBox -//------------------------------------------------------------------------- -// - ListBox() -// - ListBoxHeader() -// - ListBoxFooter() -//------------------------------------------------------------------------- -// FIXME: This is an old API. We should redesign some of it, rename ListBoxHeader->BeginListBox, ListBoxFooter->EndListBox -// and promote using them over existing ListBox() functions, similarly to change with combo boxes. -//------------------------------------------------------------------------- - -// FIXME: In principle this function should be called BeginListBox(). We should rename it after re-evaluating if we want to keep the same signature. -// Helper to calculate the size of a listbox and display a label on the right. -// Tip: To have a list filling the entire window width, PushItemWidth(-1) and pass an non-visible label e.g. "##empty" -bool ImGui::ListBoxHeader(const char* label, const ImVec2& size_arg) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - const ImGuiStyle& style = g.Style; - const ImGuiID id = GetID(label); - const ImVec2 label_size = CalcTextSize(label, NULL, true); - - // Size default to hold ~7 items. Fractional number of items helps seeing that we can scroll down/up without looking at scrollbar. - ImVec2 size = CalcItemSize(size_arg, CalcItemWidth(), GetTextLineHeightWithSpacing() * 7.4f + style.ItemSpacing.y); - ImVec2 frame_size = ImVec2(size.x, ImMax(size.y, label_size.y)); - ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + frame_size); - ImRect bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0.0f)); - window->DC.LastItemRect = bb; // Forward storage for ListBoxFooter.. dodgy. - g.NextItemData.ClearFlags(); - - if (!IsRectVisible(bb.Min, bb.Max)) - { - ItemSize(bb.GetSize(), style.FramePadding.y); - ItemAdd(bb, 0, &frame_bb); - return false; - } - - BeginGroup(); - if (label_size.x > 0) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, frame_bb.Min.y + style.FramePadding.y), label); - - BeginChildFrame(id, frame_bb.GetSize()); - return true; -} - -// FIXME: In principle this function should be called EndListBox(). We should rename it after re-evaluating if we want to keep the same signature. -bool ImGui::ListBoxHeader(const char* label, int items_count, int height_in_items) -{ - // Size default to hold ~7.25 items. - // We add +25% worth of item height to allow the user to see at a glance if there are more items up/down, without looking at the scrollbar. - // We don't add this extra bit if items_count <= height_in_items. It is slightly dodgy, because it means a dynamic list of items will make the widget resize occasionally when it crosses that size. - // I am expecting that someone will come and complain about this behavior in a remote future, then we can advise on a better solution. - if (height_in_items < 0) - height_in_items = ImMin(items_count, 7); - const ImGuiStyle& style = GetStyle(); - float height_in_items_f = (height_in_items < items_count) ? (height_in_items + 0.25f) : (height_in_items + 0.00f); - - // We include ItemSpacing.y so that a list sized for the exact number of items doesn't make a scrollbar appears. We could also enforce that by passing a flag to BeginChild(). - ImVec2 size; - size.x = 0.0f; - size.y = ImFloor(GetTextLineHeightWithSpacing() * height_in_items_f + style.FramePadding.y * 2.0f); - return ListBoxHeader(label, size); -} - -// FIXME: In principle this function should be called EndListBox(). We should rename it after re-evaluating if we want to keep the same signature. -void ImGui::ListBoxFooter() -{ - ImGuiWindow* parent_window = GetCurrentWindow()->ParentWindow; - const ImRect bb = parent_window->DC.LastItemRect; - const ImGuiStyle& style = GetStyle(); - - EndChildFrame(); - - // Redeclare item size so that it includes the label (we have stored the full size in LastItemRect) - // We call SameLine() to restore DC.CurrentLine* data - SameLine(); - parent_window->DC.CursorPos = bb.Min; - ItemSize(bb, style.FramePadding.y); - EndGroup(); -} - -bool ImGui::ListBox(const char* label, int* current_item, const char* const items[], int items_count, int height_items) -{ - const bool value_changed = ListBox(label, current_item, Items_ArrayGetter, (void*)items, items_count, height_items); - return value_changed; -} - -bool ImGui::ListBox(const char* label, int* current_item, bool (*items_getter)(void*, int, const char**), void* data, int items_count, int height_in_items) -{ - if (!ListBoxHeader(label, items_count, height_in_items)) - return false; - - // Assume all items have even height (= 1 line of text). If you need items of different or variable sizes you can create a custom version of ListBox() in your code without using the clipper. - ImGuiContext& g = *GImGui; - bool value_changed = false; - ImGuiListClipper clipper(items_count, GetTextLineHeightWithSpacing()); // We know exactly our line height here so we pass it as a minor optimization, but generally you don't need to. - while (clipper.Step()) - for (int i = clipper.DisplayStart; i < clipper.DisplayEnd; i++) - { - const bool item_selected = (i == *current_item); - const char* item_text; - if (!items_getter(data, i, &item_text)) - item_text = "*Unknown item*"; - - PushID(i); - if (Selectable(item_text, item_selected)) - { - *current_item = i; - value_changed = true; - } - if (item_selected) - SetItemDefaultFocus(); - PopID(); - } - ListBoxFooter(); - if (value_changed) - MarkItemEdited(g.CurrentWindow->DC.LastItemId); - - return value_changed; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: PlotLines, PlotHistogram -//------------------------------------------------------------------------- -// - PlotEx() [Internal] -// - PlotLines() -// - PlotHistogram() -//------------------------------------------------------------------------- - -int ImGui::PlotEx(ImGuiPlotType plot_type, const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 frame_size) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return -1; - - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - - const ImVec2 label_size = CalcTextSize(label, NULL, true); - if (frame_size.x == 0.0f) - frame_size.x = CalcItemWidth(); - if (frame_size.y == 0.0f) - frame_size.y = label_size.y + (style.FramePadding.y * 2); - - const ImRect frame_bb(window->DC.CursorPos, window->DC.CursorPos + frame_size); - const ImRect inner_bb(frame_bb.Min + style.FramePadding, frame_bb.Max - style.FramePadding); - const ImRect total_bb(frame_bb.Min, frame_bb.Max + ImVec2(label_size.x > 0.0f ? style.ItemInnerSpacing.x + label_size.x : 0.0f, 0)); - ItemSize(total_bb, style.FramePadding.y); - if (!ItemAdd(total_bb, 0, &frame_bb)) - return -1; - const bool hovered = ItemHoverable(frame_bb, id); - - // Determine scale from values if not specified - if (scale_min == FLT_MAX || scale_max == FLT_MAX) - { - float v_min = FLT_MAX; - float v_max = -FLT_MAX; - for (int i = 0; i < values_count; i++) - { - const float v = values_getter(data, i); - if (v != v) // Ignore NaN values - continue; - v_min = ImMin(v_min, v); - v_max = ImMax(v_max, v); - } - if (scale_min == FLT_MAX) - scale_min = v_min; - if (scale_max == FLT_MAX) - scale_max = v_max; - } - - RenderFrame(frame_bb.Min, frame_bb.Max, GetColorU32(ImGuiCol_FrameBg), true, style.FrameRounding); - - const int values_count_min = (plot_type == ImGuiPlotType_Lines) ? 2 : 1; - int idx_hovered = -1; - if (values_count >= values_count_min) - { - int res_w = ImMin((int)frame_size.x, values_count) + ((plot_type == ImGuiPlotType_Lines) ? -1 : 0); - int item_count = values_count + ((plot_type == ImGuiPlotType_Lines) ? -1 : 0); - - // Tooltip on hover - if (hovered && inner_bb.Contains(g.IO.MousePos)) - { - const float t = ImClamp((g.IO.MousePos.x - inner_bb.Min.x) / (inner_bb.Max.x - inner_bb.Min.x), 0.0f, 0.9999f); - const int v_idx = (int)(t * item_count); - IM_ASSERT(v_idx >= 0 && v_idx < values_count); - - const float v0 = values_getter(data, (v_idx + values_offset) % values_count); - const float v1 = values_getter(data, (v_idx + 1 + values_offset) % values_count); - if (plot_type == ImGuiPlotType_Lines) - SetTooltip("%d: %8.4g\n%d: %8.4g", v_idx, v0, v_idx+1, v1); - else if (plot_type == ImGuiPlotType_Histogram) - SetTooltip("%d: %8.4g", v_idx, v0); - idx_hovered = v_idx; - } - - const float t_step = 1.0f / (float)res_w; - const float inv_scale = (scale_min == scale_max) ? 0.0f : (1.0f / (scale_max - scale_min)); - - float v0 = values_getter(data, (0 + values_offset) % values_count); - float t0 = 0.0f; - ImVec2 tp0 = ImVec2( t0, 1.0f - ImSaturate((v0 - scale_min) * inv_scale) ); // Point in the normalized space of our target rectangle - float histogram_zero_line_t = (scale_min * scale_max < 0.0f) ? (-scale_min * inv_scale) : (scale_min < 0.0f ? 0.0f : 1.0f); // Where does the zero line stands - - const ImU32 col_base = GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLines : ImGuiCol_PlotHistogram); - const ImU32 col_hovered = GetColorU32((plot_type == ImGuiPlotType_Lines) ? ImGuiCol_PlotLinesHovered : ImGuiCol_PlotHistogramHovered); - - for (int n = 0; n < res_w; n++) - { - const float t1 = t0 + t_step; - const int v1_idx = (int)(t0 * item_count + 0.5f); - IM_ASSERT(v1_idx >= 0 && v1_idx < values_count); - const float v1 = values_getter(data, (v1_idx + values_offset + 1) % values_count); - const ImVec2 tp1 = ImVec2( t1, 1.0f - ImSaturate((v1 - scale_min) * inv_scale) ); - - // NB: Draw calls are merged together by the DrawList system. Still, we should render our batch are lower level to save a bit of CPU. - ImVec2 pos0 = ImLerp(inner_bb.Min, inner_bb.Max, tp0); - ImVec2 pos1 = ImLerp(inner_bb.Min, inner_bb.Max, (plot_type == ImGuiPlotType_Lines) ? tp1 : ImVec2(tp1.x, histogram_zero_line_t)); - if (plot_type == ImGuiPlotType_Lines) - { - window->DrawList->AddLine(pos0, pos1, idx_hovered == v1_idx ? col_hovered : col_base); - } - else if (plot_type == ImGuiPlotType_Histogram) - { - if (pos1.x >= pos0.x + 2.0f) - pos1.x -= 1.0f; - window->DrawList->AddRectFilled(pos0, pos1, idx_hovered == v1_idx ? col_hovered : col_base); - } - - t0 = t1; - tp0 = tp1; - } - } - - // Text overlay - if (overlay_text) - RenderTextClipped(ImVec2(frame_bb.Min.x, frame_bb.Min.y + style.FramePadding.y), frame_bb.Max, overlay_text, NULL, NULL, ImVec2(0.5f,0.0f)); - - if (label_size.x > 0.0f) - RenderText(ImVec2(frame_bb.Max.x + style.ItemInnerSpacing.x, inner_bb.Min.y), label); - - // Return hovered index or -1 if none are hovered. - // This is currently not exposed in the public API because we need a larger redesign of the whole thing, but in the short-term we are making it available in PlotEx(). - return idx_hovered; -} - -struct ImGuiPlotArrayGetterData -{ - const float* Values; - int Stride; - - ImGuiPlotArrayGetterData(const float* values, int stride) { Values = values; Stride = stride; } -}; - -static float Plot_ArrayGetter(void* data, int idx) -{ - ImGuiPlotArrayGetterData* plot_data = (ImGuiPlotArrayGetterData*)data; - const float v = *(const float*)(const void*)((const unsigned char*)plot_data->Values + (size_t)idx * plot_data->Stride); - return v; -} - -void ImGui::PlotLines(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) -{ - ImGuiPlotArrayGetterData data(values, stride); - PlotEx(ImGuiPlotType_Lines, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -void ImGui::PlotLines(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) -{ - PlotEx(ImGuiPlotType_Lines, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -void ImGui::PlotHistogram(const char* label, const float* values, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size, int stride) -{ - ImGuiPlotArrayGetterData data(values, stride); - PlotEx(ImGuiPlotType_Histogram, label, &Plot_ArrayGetter, (void*)&data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -void ImGui::PlotHistogram(const char* label, float (*values_getter)(void* data, int idx), void* data, int values_count, int values_offset, const char* overlay_text, float scale_min, float scale_max, ImVec2 graph_size) -{ - PlotEx(ImGuiPlotType_Histogram, label, values_getter, data, values_count, values_offset, overlay_text, scale_min, scale_max, graph_size); -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: Value helpers -// Those is not very useful, legacy API. -//------------------------------------------------------------------------- -// - Value() -//------------------------------------------------------------------------- - -void ImGui::Value(const char* prefix, bool b) -{ - Text("%s: %s", prefix, (b ? "true" : "false")); -} - -void ImGui::Value(const char* prefix, int v) -{ - Text("%s: %d", prefix, v); -} - -void ImGui::Value(const char* prefix, unsigned int v) -{ - Text("%s: %d", prefix, v); -} - -void ImGui::Value(const char* prefix, float v, const char* float_format) -{ - if (float_format) - { - char fmt[64]; - ImFormatString(fmt, IM_ARRAYSIZE(fmt), "%%s: %s", float_format); - Text(fmt, prefix, v); - } - else - { - Text("%s: %.3f", prefix, v); - } -} - -//------------------------------------------------------------------------- -// [SECTION] MenuItem, BeginMenu, EndMenu, etc. -//------------------------------------------------------------------------- -// - ImGuiMenuColumns [Internal] -// - BeginMenuBar() -// - EndMenuBar() -// - BeginMainMenuBar() -// - EndMainMenuBar() -// - BeginMenu() -// - EndMenu() -// - MenuItem() -//------------------------------------------------------------------------- - -// Helpers for internal use -ImGuiMenuColumns::ImGuiMenuColumns() -{ - Spacing = Width = NextWidth = 0.0f; - memset(Pos, 0, sizeof(Pos)); - memset(NextWidths, 0, sizeof(NextWidths)); -} - -void ImGuiMenuColumns::Update(int count, float spacing, bool clear) -{ - IM_ASSERT(count == IM_ARRAYSIZE(Pos)); - IM_UNUSED(count); - Width = NextWidth = 0.0f; - Spacing = spacing; - if (clear) - memset(NextWidths, 0, sizeof(NextWidths)); - for (int i = 0; i < IM_ARRAYSIZE(Pos); i++) - { - if (i > 0 && NextWidths[i] > 0.0f) - Width += Spacing; - Pos[i] = IM_FLOOR(Width); - Width += NextWidths[i]; - NextWidths[i] = 0.0f; - } -} - -float ImGuiMenuColumns::DeclColumns(float w0, float w1, float w2) // not using va_arg because they promote float to double -{ - NextWidth = 0.0f; - NextWidths[0] = ImMax(NextWidths[0], w0); - NextWidths[1] = ImMax(NextWidths[1], w1); - NextWidths[2] = ImMax(NextWidths[2], w2); - for (int i = 0; i < IM_ARRAYSIZE(Pos); i++) - NextWidth += NextWidths[i] + ((i > 0 && NextWidths[i] > 0.0f) ? Spacing : 0.0f); - return ImMax(Width, NextWidth); -} - -float ImGuiMenuColumns::CalcExtraSpace(float avail_w) const -{ - return ImMax(0.0f, avail_w - Width); -} - -// FIXME: Provided a rectangle perhaps e.g. a BeginMenuBarEx() could be used anywhere.. -// Currently the main responsibility of this function being to setup clip-rect + horizontal layout + menu navigation layer. -// Ideally we also want this to be responsible for claiming space out of the main window scrolling rectangle, in which case ImGuiWindowFlags_MenuBar will become unnecessary. -// Then later the same system could be used for multiple menu-bars, scrollbars, side-bars. -bool ImGui::BeginMenuBar() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - if (!(window->Flags & ImGuiWindowFlags_MenuBar)) - return false; - - IM_ASSERT(!window->DC.MenuBarAppending); - BeginGroup(); // Backup position on layer 0 // FIXME: Misleading to use a group for that backup/restore - PushID("##menubar"); - - // We don't clip with current window clipping rectangle as it is already set to the area below. However we clip with window full rect. - // We remove 1 worth of rounding to Max.x to that text in long menus and small windows don't tend to display over the lower-right rounded area, which looks particularly glitchy. - ImRect bar_rect = window->MenuBarRect(); - ImRect clip_rect(IM_ROUND(bar_rect.Min.x + window->WindowBorderSize), IM_ROUND(bar_rect.Min.y + window->WindowBorderSize), IM_ROUND(ImMax(bar_rect.Min.x, bar_rect.Max.x - ImMax(window->WindowRounding, window->WindowBorderSize))), IM_ROUND(bar_rect.Max.y)); - clip_rect.ClipWith(window->OuterRectClipped); - PushClipRect(clip_rect.Min, clip_rect.Max, false); - - window->DC.CursorPos = ImVec2(bar_rect.Min.x + window->DC.MenuBarOffset.x, bar_rect.Min.y + window->DC.MenuBarOffset.y); - window->DC.LayoutType = ImGuiLayoutType_Horizontal; - window->DC.NavLayerCurrent = ImGuiNavLayer_Menu; - window->DC.NavLayerCurrentMask = (1 << ImGuiNavLayer_Menu); - window->DC.MenuBarAppending = true; - AlignTextToFramePadding(); - return true; -} - -void ImGui::EndMenuBar() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return; - ImGuiContext& g = *GImGui; - - // Nav: When a move request within one of our child menu failed, capture the request to navigate among our siblings. - if (NavMoveRequestButNoResultYet() && (g.NavMoveDir == ImGuiDir_Left || g.NavMoveDir == ImGuiDir_Right) && (g.NavWindow->Flags & ImGuiWindowFlags_ChildMenu)) - { - ImGuiWindow* nav_earliest_child = g.NavWindow; - while (nav_earliest_child->ParentWindow && (nav_earliest_child->ParentWindow->Flags & ImGuiWindowFlags_ChildMenu)) - nav_earliest_child = nav_earliest_child->ParentWindow; - if (nav_earliest_child->ParentWindow == window && nav_earliest_child->DC.ParentLayoutType == ImGuiLayoutType_Horizontal && g.NavMoveRequestForward == ImGuiNavForward_None) - { - // To do so we claim focus back, restore NavId and then process the movement request for yet another frame. - // This involve a one-frame delay which isn't very problematic in this situation. We could remove it by scoring in advance for multiple window (probably not worth the hassle/cost) - const ImGuiNavLayer layer = ImGuiNavLayer_Menu; - IM_ASSERT(window->DC.NavLayerActiveMaskNext & (1 << layer)); // Sanity check - FocusWindow(window); - SetNavIDWithRectRel(window->NavLastIds[layer], layer, 0, window->NavRectRel[layer]); - g.NavLayer = layer; - g.NavDisableHighlight = true; // Hide highlight for the current frame so we don't see the intermediary selection. - g.NavMoveRequestForward = ImGuiNavForward_ForwardQueued; - NavMoveRequestCancel(); - } - } - - IM_ASSERT(window->Flags & ImGuiWindowFlags_MenuBar); - IM_ASSERT(window->DC.MenuBarAppending); - PopClipRect(); - PopID(); - window->DC.MenuBarOffset.x = window->DC.CursorPos.x - window->MenuBarRect().Min.x; // Save horizontal position so next append can reuse it. This is kinda equivalent to a per-layer CursorPos. - window->DC.GroupStack.back().EmitItem = false; - EndGroup(); // Restore position on layer 0 - window->DC.LayoutType = ImGuiLayoutType_Vertical; - window->DC.NavLayerCurrent = ImGuiNavLayer_Main; - window->DC.NavLayerCurrentMask = (1 << ImGuiNavLayer_Main); - window->DC.MenuBarAppending = false; -} - -// For the main menu bar, which cannot be moved, we honor g.Style.DisplaySafeAreaPadding to ensure text can be visible on a TV set. -bool ImGui::BeginMainMenuBar() -{ - ImGuiContext& g = *GImGui; - g.NextWindowData.MenuBarOffsetMinVal = ImVec2(g.Style.DisplaySafeAreaPadding.x, ImMax(g.Style.DisplaySafeAreaPadding.y - g.Style.FramePadding.y, 0.0f)); - SetNextWindowPos(ImVec2(0.0f, 0.0f)); - SetNextWindowSize(ImVec2(g.IO.DisplaySize.x, g.NextWindowData.MenuBarOffsetMinVal.y + g.FontBaseSize + g.Style.FramePadding.y)); - PushStyleVar(ImGuiStyleVar_WindowRounding, 0.0f); - PushStyleVar(ImGuiStyleVar_WindowMinSize, ImVec2(0, 0)); - ImGuiWindowFlags window_flags = ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_MenuBar; - bool is_open = Begin("##MainMenuBar", NULL, window_flags) && BeginMenuBar(); - PopStyleVar(2); - g.NextWindowData.MenuBarOffsetMinVal = ImVec2(0.0f, 0.0f); - if (!is_open) - { - End(); - return false; - } - return true; //-V1020 -} - -void ImGui::EndMainMenuBar() -{ - EndMenuBar(); - - // When the user has left the menu layer (typically: closed menus through activation of an item), we restore focus to the previous window - // FIXME: With this strategy we won't be able to restore a NULL focus. - ImGuiContext& g = *GImGui; - if (g.CurrentWindow == g.NavWindow && g.NavLayer == ImGuiNavLayer_Main && !g.NavAnyRequest) - FocusTopMostWindowUnderOne(g.NavWindow, NULL); - - End(); -} - -bool ImGui::BeginMenu(const char* label, bool enabled) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - const ImGuiStyle& style = g.Style; - const ImGuiID id = window->GetID(label); - bool menu_is_open = IsPopupOpen(id); - - // Sub-menus are ChildWindow so that mouse can be hovering across them (otherwise top-most popup menu would steal focus and not allow hovering on parent menu) - ImGuiWindowFlags flags = ImGuiWindowFlags_ChildMenu | ImGuiWindowFlags_AlwaysAutoResize | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoSavedSettings | ImGuiWindowFlags_NoNavFocus; - if (window->Flags & (ImGuiWindowFlags_Popup | ImGuiWindowFlags_ChildMenu)) - flags |= ImGuiWindowFlags_ChildWindow; - - // If a menu with same the ID was already submitted, we will append to it, matching the behavior of Begin(). - // We are relying on a O(N) search - so O(N log N) over the frame - which seems like the most efficient for the expected small amount of BeginMenu() calls per frame. - // If somehow this is ever becoming a problem we can switch to use e.g. a ImGuiStorager mapping key to last frame used. - if (g.MenusIdSubmittedThisFrame.contains(id)) - { - if (menu_is_open) - menu_is_open = BeginPopupEx(id, flags); // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display) - else - g.NextWindowData.ClearFlags(); // we behave like Begin() and need to consume those values - return menu_is_open; - } - - // Tag menu as used. Next time BeginMenu() with same ID is called it will append to existing menu - g.MenusIdSubmittedThisFrame.push_back(id); - - ImVec2 label_size = CalcTextSize(label, NULL, true); - bool pressed; - bool menuset_is_open = !(window->Flags & ImGuiWindowFlags_Popup) && (g.OpenPopupStack.Size > g.BeginPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].OpenParentId == window->IDStack.back()); - ImGuiWindow* backed_nav_window = g.NavWindow; - if (menuset_is_open) - g.NavWindow = window; // Odd hack to allow hovering across menus of a same menu-set (otherwise we wouldn't be able to hover parent) - - // The reference position stored in popup_pos will be used by Begin() to find a suitable position for the child menu, - // However the final position is going to be different! It is choosen by FindBestWindowPosForPopup(). - // e.g. Menus tend to overlap each other horizontally to amplify relative Z-ordering. - ImVec2 popup_pos, pos = window->DC.CursorPos; - if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) - { - // Menu inside an horizontal menu bar - // Selectable extend their highlight by half ItemSpacing in each direction. - // For ChildMenu, the popup position will be overwritten by the call to FindBestWindowPosForPopup() in Begin() - popup_pos = ImVec2(pos.x - 1.0f - IM_FLOOR(style.ItemSpacing.x * 0.5f), pos.y - style.FramePadding.y + window->MenuBarHeight()); - window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * 0.5f); - PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(style.ItemSpacing.x * 2.0f, style.ItemSpacing.y)); - float w = label_size.x; - pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_NoHoldingActiveID | ImGuiSelectableFlags_SelectOnClick | ImGuiSelectableFlags_DontClosePopups | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(w, 0.0f)); - PopStyleVar(); - window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * (-1.0f + 0.5f)); // -1 spacing to compensate the spacing added when Selectable() did a SameLine(). It would also work to call SameLine() ourselves after the PopStyleVar(). - } - else - { - // Menu inside a menu - // (In a typical menu window where all items are BeginMenu() or MenuItem() calls, extra_w will always be 0.0f. - // Only when they are other items sticking out we're going to add spacing, yet only register minimum width into the layout system. - popup_pos = ImVec2(pos.x, pos.y - style.WindowPadding.y); - float min_w = window->DC.MenuColumns.DeclColumns(label_size.x, 0.0f, IM_FLOOR(g.FontSize * 1.20f)); // Feedback to next frame - float extra_w = ImMax(0.0f, GetContentRegionAvail().x - min_w); - pressed = Selectable(label, menu_is_open, ImGuiSelectableFlags_NoHoldingActiveID | ImGuiSelectableFlags_SelectOnClick | ImGuiSelectableFlags_DontClosePopups | ImGuiSelectableFlags_SpanAvailWidth | (!enabled ? ImGuiSelectableFlags_Disabled : 0), ImVec2(min_w, 0.0f)); - ImU32 text_col = GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled); - RenderArrow(window->DrawList, pos + ImVec2(window->DC.MenuColumns.Pos[2] + extra_w + g.FontSize * 0.30f, 0.0f), text_col, ImGuiDir_Right); - } - - const bool hovered = enabled && ItemHoverable(window->DC.LastItemRect, id); - if (menuset_is_open) - g.NavWindow = backed_nav_window; - - bool want_open = false; - bool want_close = false; - if (window->DC.LayoutType == ImGuiLayoutType_Vertical) // (window->Flags & (ImGuiWindowFlags_Popup|ImGuiWindowFlags_ChildMenu)) - { - // Close menu when not hovering it anymore unless we are moving roughly in the direction of the menu - // Implement http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown to avoid using timers, so menus feels more reactive. - bool moving_toward_other_child_menu = false; - - ImGuiWindow* child_menu_window = (g.BeginPopupStack.Size < g.OpenPopupStack.Size && g.OpenPopupStack[g.BeginPopupStack.Size].SourceWindow == window) ? g.OpenPopupStack[g.BeginPopupStack.Size].Window : NULL; - if (g.HoveredWindow == window && child_menu_window != NULL && !(window->Flags & ImGuiWindowFlags_MenuBar)) - { - // FIXME-DPI: Values should be derived from a master "scale" factor. - ImRect next_window_rect = child_menu_window->Rect(); - ImVec2 ta = g.IO.MousePos - g.IO.MouseDelta; - ImVec2 tb = (window->Pos.x < child_menu_window->Pos.x) ? next_window_rect.GetTL() : next_window_rect.GetTR(); - ImVec2 tc = (window->Pos.x < child_menu_window->Pos.x) ? next_window_rect.GetBL() : next_window_rect.GetBR(); - float extra = ImClamp(ImFabs(ta.x - tb.x) * 0.30f, 5.0f, 30.0f); // add a bit of extra slack. - ta.x += (window->Pos.x < child_menu_window->Pos.x) ? -0.5f : +0.5f; // to avoid numerical issues - tb.y = ta.y + ImMax((tb.y - extra) - ta.y, -100.0f); // triangle is maximum 200 high to limit the slope and the bias toward large sub-menus // FIXME: Multiply by fb_scale? - tc.y = ta.y + ImMin((tc.y + extra) - ta.y, +100.0f); - moving_toward_other_child_menu = ImTriangleContainsPoint(ta, tb, tc, g.IO.MousePos); - //GetForegroundDrawList()->AddTriangleFilled(ta, tb, tc, moving_within_opened_triangle ? IM_COL32(0,128,0,128) : IM_COL32(128,0,0,128)); // [DEBUG] - } - if (menu_is_open && !hovered && g.HoveredWindow == window && g.HoveredIdPreviousFrame != 0 && g.HoveredIdPreviousFrame != id && !moving_toward_other_child_menu) - want_close = true; - - if (!menu_is_open && hovered && pressed) // Click to open - want_open = true; - else if (!menu_is_open && hovered && !moving_toward_other_child_menu) // Hover to open - want_open = true; - - if (g.NavActivateId == id) - { - want_close = menu_is_open; - want_open = !menu_is_open; - } - if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Right) // Nav-Right to open - { - want_open = true; - NavMoveRequestCancel(); - } - } - else - { - // Menu bar - if (menu_is_open && pressed && menuset_is_open) // Click an open menu again to close it - { - want_close = true; - want_open = menu_is_open = false; - } - else if (pressed || (hovered && menuset_is_open && !menu_is_open)) // First click to open, then hover to open others - { - want_open = true; - } - else if (g.NavId == id && g.NavMoveRequest && g.NavMoveDir == ImGuiDir_Down) // Nav-Down to open - { - want_open = true; - NavMoveRequestCancel(); - } - } - - if (!enabled) // explicitly close if an open menu becomes disabled, facilitate users code a lot in pattern such as 'if (BeginMenu("options", has_object)) { ..use object.. }' - want_close = true; - if (want_close && IsPopupOpen(id)) - ClosePopupToLevel(g.BeginPopupStack.Size, true); - - IMGUI_TEST_ENGINE_ITEM_INFO(id, label, window->DC.ItemFlags | ImGuiItemStatusFlags_Openable | (menu_is_open ? ImGuiItemStatusFlags_Opened : 0)); - - if (!menu_is_open && want_open && g.OpenPopupStack.Size > g.BeginPopupStack.Size) - { - // Don't recycle same menu level in the same frame, first close the other menu and yield for a frame. - OpenPopup(label); - return false; - } - - menu_is_open |= want_open; - if (want_open) - OpenPopup(label); - - if (menu_is_open) - { - SetNextWindowPos(popup_pos, ImGuiCond_Always); - menu_is_open = BeginPopupEx(id, flags); // menu_is_open can be 'false' when the popup is completely clipped (e.g. zero size display) - } - else - { - g.NextWindowData.ClearFlags(); // We behave like Begin() and need to consume those values - } - - return menu_is_open; -} - -void ImGui::EndMenu() -{ - // Nav: When a left move request _within our child menu_ failed, close ourselves (the _parent_ menu). - // A menu doesn't close itself because EndMenuBar() wants the catch the last Left<>Right inputs. - // However, it means that with the current code, a BeginMenu() from outside another menu or a menu-bar won't be closable with the Left direction. - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (g.NavWindow && g.NavWindow->ParentWindow == window && g.NavMoveDir == ImGuiDir_Left && NavMoveRequestButNoResultYet() && window->DC.LayoutType == ImGuiLayoutType_Vertical) - { - ClosePopupToLevel(g.BeginPopupStack.Size, true); - NavMoveRequestCancel(); - } - - EndPopup(); -} - -bool ImGui::MenuItem(const char* label, const char* shortcut, bool selected, bool enabled) -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems) - return false; - - ImGuiContext& g = *GImGui; - ImGuiStyle& style = g.Style; - ImVec2 pos = window->DC.CursorPos; - ImVec2 label_size = CalcTextSize(label, NULL, true); - - // We've been using the equivalent of ImGuiSelectableFlags_SetNavIdOnHover on all Selectable() since early Nav system days (commit 43ee5d73), - // but I am unsure whether this should be kept at all. For now moved it to be an opt-in feature used by menus only. - ImGuiSelectableFlags flags = ImGuiSelectableFlags_SelectOnRelease | ImGuiSelectableFlags_SetNavIdOnHover | (enabled ? 0 : ImGuiSelectableFlags_Disabled); - bool pressed; - if (window->DC.LayoutType == ImGuiLayoutType_Horizontal) - { - // Mimic the exact layout spacing of BeginMenu() to allow MenuItem() inside a menu bar, which is a little misleading but may be useful - // Note that in this situation we render neither the shortcut neither the selected tick mark - float w = label_size.x; - window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * 0.5f); - PushStyleVar(ImGuiStyleVar_ItemSpacing, ImVec2(style.ItemSpacing.x * 2.0f, style.ItemSpacing.y)); - pressed = Selectable(label, false, flags, ImVec2(w, 0.0f)); - PopStyleVar(); - window->DC.CursorPos.x += IM_FLOOR(style.ItemSpacing.x * (-1.0f + 0.5f)); // -1 spacing to compensate the spacing added when Selectable() did a SameLine(). It would also work to call SameLine() ourselves after the PopStyleVar(). - } - else - { - // Menu item inside a vertical menu - // (In a typical menu window where all items are BeginMenu() or MenuItem() calls, extra_w will always be 0.0f. - // Only when they are other items sticking out we're going to add spacing, yet only register minimum width into the layout system. - float shortcut_w = shortcut ? CalcTextSize(shortcut, NULL).x : 0.0f; - float min_w = window->DC.MenuColumns.DeclColumns(label_size.x, shortcut_w, IM_FLOOR(g.FontSize * 1.20f)); // Feedback for next frame - float extra_w = ImMax(0.0f, GetContentRegionAvail().x - min_w); - pressed = Selectable(label, false, flags | ImGuiSelectableFlags_SpanAvailWidth, ImVec2(min_w, 0.0f)); - if (shortcut_w > 0.0f) - { - PushStyleColor(ImGuiCol_Text, g.Style.Colors[ImGuiCol_TextDisabled]); - RenderText(pos + ImVec2(window->DC.MenuColumns.Pos[1] + extra_w, 0.0f), shortcut, NULL, false); - PopStyleColor(); - } - if (selected) - RenderCheckMark(window->DrawList, pos + ImVec2(window->DC.MenuColumns.Pos[2] + extra_w + g.FontSize * 0.40f, g.FontSize * 0.134f * 0.5f), GetColorU32(enabled ? ImGuiCol_Text : ImGuiCol_TextDisabled), g.FontSize * 0.866f); - } - - IMGUI_TEST_ENGINE_ITEM_INFO(window->DC.LastItemId, label, window->DC.ItemFlags | ImGuiItemStatusFlags_Checkable | (selected ? ImGuiItemStatusFlags_Checked : 0)); - return pressed; -} - -bool ImGui::MenuItem(const char* label, const char* shortcut, bool* p_selected, bool enabled) -{ - if (MenuItem(label, shortcut, p_selected ? *p_selected : false, enabled)) - { - if (p_selected) - *p_selected = !*p_selected; - return true; - } - return false; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: BeginTabBar, EndTabBar, etc. -//------------------------------------------------------------------------- -// - BeginTabBar() -// - BeginTabBarEx() [Internal] -// - EndTabBar() -// - TabBarLayout() [Internal] -// - TabBarCalcTabID() [Internal] -// - TabBarCalcMaxTabWidth() [Internal] -// - TabBarFindTabById() [Internal] -// - TabBarRemoveTab() [Internal] -// - TabBarCloseTab() [Internal] -// - TabBarScrollClamp()v -// - TabBarScrollToTab() [Internal] -// - TabBarQueueChangeTabOrder() [Internal] -// - TabBarScrollingButtons() [Internal] -// - TabBarTabListPopupButton() [Internal] -//------------------------------------------------------------------------- - -namespace ImGui -{ - static void TabBarLayout(ImGuiTabBar* tab_bar); - static ImU32 TabBarCalcTabID(ImGuiTabBar* tab_bar, const char* label); - static float TabBarCalcMaxTabWidth(); - static float TabBarScrollClamp(ImGuiTabBar* tab_bar, float scrolling); - static void TabBarScrollToTab(ImGuiTabBar* tab_bar, ImGuiTabItem* tab); - static ImGuiTabItem* TabBarScrollingButtons(ImGuiTabBar* tab_bar); - static ImGuiTabItem* TabBarTabListPopupButton(ImGuiTabBar* tab_bar); -} - -ImGuiTabBar::ImGuiTabBar() -{ - ID = 0; - SelectedTabId = NextSelectedTabId = VisibleTabId = 0; - CurrFrameVisible = PrevFrameVisible = -1; - LastTabContentHeight = 0.0f; - OffsetMax = OffsetMaxIdeal = OffsetNextTab = 0.0f; - ScrollingAnim = ScrollingTarget = ScrollingTargetDistToVisibility = ScrollingSpeed = 0.0f; - Flags = ImGuiTabBarFlags_None; - ReorderRequestTabId = 0; - ReorderRequestDir = 0; - WantLayout = VisibleTabWasSubmitted = false; - LastTabItemIdx = -1; -} - -static int IMGUI_CDECL TabItemComparerByVisibleOffset(const void* lhs, const void* rhs) -{ - const ImGuiTabItem* a = (const ImGuiTabItem*)lhs; - const ImGuiTabItem* b = (const ImGuiTabItem*)rhs; - return (int)(a->Offset - b->Offset); -} - -static ImGuiTabBar* GetTabBarFromTabBarRef(const ImGuiPtrOrIndex& ref) -{ - ImGuiContext& g = *GImGui; - return ref.Ptr ? (ImGuiTabBar*)ref.Ptr : g.TabBars.GetByIndex(ref.Index); -} - -static ImGuiPtrOrIndex GetTabBarRefFromTabBar(ImGuiTabBar* tab_bar) -{ - ImGuiContext& g = *GImGui; - if (g.TabBars.Contains(tab_bar)) - return ImGuiPtrOrIndex(g.TabBars.GetIndex(tab_bar)); - return ImGuiPtrOrIndex(tab_bar); -} - -bool ImGui::BeginTabBar(const char* str_id, ImGuiTabBarFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return false; - - ImGuiID id = window->GetID(str_id); - ImGuiTabBar* tab_bar = g.TabBars.GetOrAddByKey(id); - ImRect tab_bar_bb = ImRect(window->DC.CursorPos.x, window->DC.CursorPos.y, window->WorkRect.Max.x, window->DC.CursorPos.y + g.FontSize + g.Style.FramePadding.y * 2); - tab_bar->ID = id; - return BeginTabBarEx(tab_bar, tab_bar_bb, flags | ImGuiTabBarFlags_IsFocused); -} - -bool ImGui::BeginTabBarEx(ImGuiTabBar* tab_bar, const ImRect& tab_bar_bb, ImGuiTabBarFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return false; - - if ((flags & ImGuiTabBarFlags_DockNode) == 0) - PushOverrideID(tab_bar->ID); - - // Add to stack - g.CurrentTabBarStack.push_back(GetTabBarRefFromTabBar(tab_bar)); - g.CurrentTabBar = tab_bar; - - if (tab_bar->CurrFrameVisible == g.FrameCount) - { - //IMGUI_DEBUG_LOG("BeginTabBarEx already called this frame\n", g.FrameCount); - IM_ASSERT(0); - return true; - } - - // When toggling back from ordered to manually-reorderable, shuffle tabs to enforce the last visible order. - // Otherwise, the most recently inserted tabs would move at the end of visible list which can be a little too confusing or magic for the user. - if ((flags & ImGuiTabBarFlags_Reorderable) && !(tab_bar->Flags & ImGuiTabBarFlags_Reorderable) && tab_bar->Tabs.Size > 1 && tab_bar->PrevFrameVisible != -1) - ImQsort(tab_bar->Tabs.Data, tab_bar->Tabs.Size, sizeof(ImGuiTabItem), TabItemComparerByVisibleOffset); - - // Flags - if ((flags & ImGuiTabBarFlags_FittingPolicyMask_) == 0) - flags |= ImGuiTabBarFlags_FittingPolicyDefault_; - - tab_bar->Flags = flags; - tab_bar->BarRect = tab_bar_bb; - tab_bar->WantLayout = true; // Layout will be done on the first call to ItemTab() - tab_bar->PrevFrameVisible = tab_bar->CurrFrameVisible; - tab_bar->CurrFrameVisible = g.FrameCount; - tab_bar->FramePadding = g.Style.FramePadding; - - // Layout - ItemSize(ImVec2(tab_bar->OffsetMaxIdeal, tab_bar->BarRect.GetHeight()), tab_bar->FramePadding.y); - window->DC.CursorPos.x = tab_bar->BarRect.Min.x; - - // Draw separator - const ImU32 col = GetColorU32((flags & ImGuiTabBarFlags_IsFocused) ? ImGuiCol_TabActive : ImGuiCol_TabUnfocusedActive); - const float y = tab_bar->BarRect.Max.y - 1.0f; - { - const float separator_min_x = tab_bar->BarRect.Min.x - IM_FLOOR(window->WindowPadding.x * 0.5f); - const float separator_max_x = tab_bar->BarRect.Max.x + IM_FLOOR(window->WindowPadding.x * 0.5f); - window->DrawList->AddLine(ImVec2(separator_min_x, y), ImVec2(separator_max_x, y), col, 1.0f); - } - return true; -} - -void ImGui::EndTabBar() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return; - - ImGuiTabBar* tab_bar = g.CurrentTabBar; - if (tab_bar == NULL) - { - IM_ASSERT_USER_ERROR(tab_bar != NULL, "Mismatched BeginTabBar()/EndTabBar()!"); - return; - } - if (tab_bar->WantLayout) - TabBarLayout(tab_bar); - - // Restore the last visible height if no tab is visible, this reduce vertical flicker/movement when a tabs gets removed without calling SetTabItemClosed(). - const bool tab_bar_appearing = (tab_bar->PrevFrameVisible + 1 < g.FrameCount); - if (tab_bar->VisibleTabWasSubmitted || tab_bar->VisibleTabId == 0 || tab_bar_appearing) - tab_bar->LastTabContentHeight = ImMax(window->DC.CursorPos.y - tab_bar->BarRect.Max.y, 0.0f); - else - window->DC.CursorPos.y = tab_bar->BarRect.Max.y + tab_bar->LastTabContentHeight; - - if ((tab_bar->Flags & ImGuiTabBarFlags_DockNode) == 0) - PopID(); - - g.CurrentTabBarStack.pop_back(); - g.CurrentTabBar = g.CurrentTabBarStack.empty() ? NULL : GetTabBarFromTabBarRef(g.CurrentTabBarStack.back()); -} - -// This is called only once a frame before by the first call to ItemTab() -// The reason we're not calling it in BeginTabBar() is to leave a chance to the user to call the SetTabItemClosed() functions. -static void ImGui::TabBarLayout(ImGuiTabBar* tab_bar) -{ - ImGuiContext& g = *GImGui; - tab_bar->WantLayout = false; - - // Garbage collect - int tab_dst_n = 0; - for (int tab_src_n = 0; tab_src_n < tab_bar->Tabs.Size; tab_src_n++) - { - ImGuiTabItem* tab = &tab_bar->Tabs[tab_src_n]; - if (tab->LastFrameVisible < tab_bar->PrevFrameVisible) - { - if (tab->ID == tab_bar->SelectedTabId) - tab_bar->SelectedTabId = 0; - continue; - } - if (tab_dst_n != tab_src_n) - tab_bar->Tabs[tab_dst_n] = tab_bar->Tabs[tab_src_n]; - tab_dst_n++; - } - if (tab_bar->Tabs.Size != tab_dst_n) - tab_bar->Tabs.resize(tab_dst_n); - - // Setup next selected tab - ImGuiID scroll_track_selected_tab_id = 0; - if (tab_bar->NextSelectedTabId) - { - tab_bar->SelectedTabId = tab_bar->NextSelectedTabId; - tab_bar->NextSelectedTabId = 0; - scroll_track_selected_tab_id = tab_bar->SelectedTabId; - } - - // Process order change request (we could probably process it when requested but it's just saner to do it in a single spot). - if (tab_bar->ReorderRequestTabId != 0) - { - if (ImGuiTabItem* tab1 = TabBarFindTabByID(tab_bar, tab_bar->ReorderRequestTabId)) - { - //IM_ASSERT(tab_bar->Flags & ImGuiTabBarFlags_Reorderable); // <- this may happen when using debug tools - int tab2_order = tab_bar->GetTabOrder(tab1) + tab_bar->ReorderRequestDir; - if (tab2_order >= 0 && tab2_order < tab_bar->Tabs.Size) - { - ImGuiTabItem* tab2 = &tab_bar->Tabs[tab2_order]; - ImGuiTabItem item_tmp = *tab1; - *tab1 = *tab2; - *tab2 = item_tmp; - if (tab2->ID == tab_bar->SelectedTabId) - scroll_track_selected_tab_id = tab2->ID; - tab1 = tab2 = NULL; - } - if (tab_bar->Flags & ImGuiTabBarFlags_SaveSettings) - MarkIniSettingsDirty(); - } - tab_bar->ReorderRequestTabId = 0; - } - - // Tab List Popup (will alter tab_bar->BarRect and therefore the available width!) - const bool tab_list_popup_button = (tab_bar->Flags & ImGuiTabBarFlags_TabListPopupButton) != 0; - if (tab_list_popup_button) - if (ImGuiTabItem* tab_to_select = TabBarTabListPopupButton(tab_bar)) // NB: Will alter BarRect.Max.x! - scroll_track_selected_tab_id = tab_bar->SelectedTabId = tab_to_select->ID; - - // Compute ideal widths - g.ShrinkWidthBuffer.resize(tab_bar->Tabs.Size); - float width_total_contents = 0.0f; - ImGuiTabItem* most_recently_selected_tab = NULL; - bool found_selected_tab_id = false; - for (int tab_n = 0; tab_n < tab_bar->Tabs.Size; tab_n++) - { - ImGuiTabItem* tab = &tab_bar->Tabs[tab_n]; - IM_ASSERT(tab->LastFrameVisible >= tab_bar->PrevFrameVisible); - - if (most_recently_selected_tab == NULL || most_recently_selected_tab->LastFrameSelected < tab->LastFrameSelected) - most_recently_selected_tab = tab; - if (tab->ID == tab_bar->SelectedTabId) - found_selected_tab_id = true; - - // Refresh tab width immediately, otherwise changes of style e.g. style.FramePadding.x would noticeably lag in the tab bar. - // Additionally, when using TabBarAddTab() to manipulate tab bar order we occasionally insert new tabs that don't have a width yet, - // and we cannot wait for the next BeginTabItem() call. We cannot compute this width within TabBarAddTab() because font size depends on the active window. - const char* tab_name = tab_bar->GetTabName(tab); - const bool has_close_button = (tab->Flags & ImGuiTabItemFlags_NoCloseButton) ? false : true; - tab->ContentWidth = TabItemCalcSize(tab_name, has_close_button).x; - - width_total_contents += (tab_n > 0 ? g.Style.ItemInnerSpacing.x : 0.0f) + tab->ContentWidth; - - // Store data so we can build an array sorted by width if we need to shrink tabs down - g.ShrinkWidthBuffer[tab_n].Index = tab_n; - g.ShrinkWidthBuffer[tab_n].Width = tab->ContentWidth; - } - - // Compute width - const float initial_offset_x = 0.0f; // g.Style.ItemInnerSpacing.x; - const float width_avail = ImMax(tab_bar->BarRect.GetWidth() - initial_offset_x, 0.0f); - float width_excess = (width_avail < width_total_contents) ? (width_total_contents - width_avail) : 0.0f; - if (width_excess > 0.0f && (tab_bar->Flags & ImGuiTabBarFlags_FittingPolicyResizeDown)) - { - // If we don't have enough room, resize down the largest tabs first - ShrinkWidths(g.ShrinkWidthBuffer.Data, g.ShrinkWidthBuffer.Size, width_excess); - for (int tab_n = 0; tab_n < tab_bar->Tabs.Size; tab_n++) - tab_bar->Tabs[g.ShrinkWidthBuffer[tab_n].Index].Width = IM_FLOOR(g.ShrinkWidthBuffer[tab_n].Width); - } - else - { - const float tab_max_width = TabBarCalcMaxTabWidth(); - for (int tab_n = 0; tab_n < tab_bar->Tabs.Size; tab_n++) - { - ImGuiTabItem* tab = &tab_bar->Tabs[tab_n]; - tab->Width = ImMin(tab->ContentWidth, tab_max_width); - IM_ASSERT(tab->Width > 0.0f); - } - } - - // Layout all active tabs - float offset_x = initial_offset_x; - float offset_x_ideal = offset_x; - tab_bar->OffsetNextTab = offset_x; // This is used by non-reorderable tab bar where the submission order is always honored. - for (int tab_n = 0; tab_n < tab_bar->Tabs.Size; tab_n++) - { - ImGuiTabItem* tab = &tab_bar->Tabs[tab_n]; - tab->Offset = offset_x; - if (scroll_track_selected_tab_id == 0 && g.NavJustMovedToId == tab->ID) - scroll_track_selected_tab_id = tab->ID; - offset_x += tab->Width + g.Style.ItemInnerSpacing.x; - offset_x_ideal += tab->ContentWidth + g.Style.ItemInnerSpacing.x; - } - tab_bar->OffsetMax = ImMax(offset_x - g.Style.ItemInnerSpacing.x, 0.0f); - tab_bar->OffsetMaxIdeal = ImMax(offset_x_ideal - g.Style.ItemInnerSpacing.x, 0.0f); - - // Horizontal scrolling buttons - const bool scrolling_buttons = (tab_bar->OffsetMax > tab_bar->BarRect.GetWidth() && tab_bar->Tabs.Size > 1) && !(tab_bar->Flags & ImGuiTabBarFlags_NoTabListScrollingButtons) && (tab_bar->Flags & ImGuiTabBarFlags_FittingPolicyScroll); - if (scrolling_buttons) - if (ImGuiTabItem* tab_to_select = TabBarScrollingButtons(tab_bar)) // NB: Will alter BarRect.Max.x! - scroll_track_selected_tab_id = tab_bar->SelectedTabId = tab_to_select->ID; - - // If we have lost the selected tab, select the next most recently active one - if (found_selected_tab_id == false) - tab_bar->SelectedTabId = 0; - if (tab_bar->SelectedTabId == 0 && tab_bar->NextSelectedTabId == 0 && most_recently_selected_tab != NULL) - scroll_track_selected_tab_id = tab_bar->SelectedTabId = most_recently_selected_tab->ID; - - // Lock in visible tab - tab_bar->VisibleTabId = tab_bar->SelectedTabId; - tab_bar->VisibleTabWasSubmitted = false; - - // Update scrolling - if (scroll_track_selected_tab_id) - if (ImGuiTabItem* scroll_track_selected_tab = TabBarFindTabByID(tab_bar, scroll_track_selected_tab_id)) - TabBarScrollToTab(tab_bar, scroll_track_selected_tab); - tab_bar->ScrollingAnim = TabBarScrollClamp(tab_bar, tab_bar->ScrollingAnim); - tab_bar->ScrollingTarget = TabBarScrollClamp(tab_bar, tab_bar->ScrollingTarget); - if (tab_bar->ScrollingAnim != tab_bar->ScrollingTarget) - { - // Scrolling speed adjust itself so we can always reach our target in 1/3 seconds. - // Teleport if we are aiming far off the visible line - tab_bar->ScrollingSpeed = ImMax(tab_bar->ScrollingSpeed, 70.0f * g.FontSize); - tab_bar->ScrollingSpeed = ImMax(tab_bar->ScrollingSpeed, ImFabs(tab_bar->ScrollingTarget - tab_bar->ScrollingAnim) / 0.3f); - const bool teleport = (tab_bar->PrevFrameVisible + 1 < g.FrameCount) || (tab_bar->ScrollingTargetDistToVisibility > 10.0f * g.FontSize); - tab_bar->ScrollingAnim = teleport ? tab_bar->ScrollingTarget : ImLinearSweep(tab_bar->ScrollingAnim, tab_bar->ScrollingTarget, g.IO.DeltaTime * tab_bar->ScrollingSpeed); - } - else - { - tab_bar->ScrollingSpeed = 0.0f; - } - - // Clear name buffers - if ((tab_bar->Flags & ImGuiTabBarFlags_DockNode) == 0) - tab_bar->TabsNames.Buf.resize(0); -} - -// Dockables uses Name/ID in the global namespace. Non-dockable items use the ID stack. -static ImU32 ImGui::TabBarCalcTabID(ImGuiTabBar* tab_bar, const char* label) -{ - if (tab_bar->Flags & ImGuiTabBarFlags_DockNode) - { - ImGuiID id = ImHashStr(label); - KeepAliveID(id); - return id; - } - else - { - ImGuiWindow* window = GImGui->CurrentWindow; - return window->GetID(label); - } -} - -static float ImGui::TabBarCalcMaxTabWidth() -{ - ImGuiContext& g = *GImGui; - return g.FontSize * 20.0f; -} - -ImGuiTabItem* ImGui::TabBarFindTabByID(ImGuiTabBar* tab_bar, ImGuiID tab_id) -{ - if (tab_id != 0) - for (int n = 0; n < tab_bar->Tabs.Size; n++) - if (tab_bar->Tabs[n].ID == tab_id) - return &tab_bar->Tabs[n]; - return NULL; -} - -// The *TabId fields be already set by the docking system _before_ the actual TabItem was created, so we clear them regardless. -void ImGui::TabBarRemoveTab(ImGuiTabBar* tab_bar, ImGuiID tab_id) -{ - if (ImGuiTabItem* tab = TabBarFindTabByID(tab_bar, tab_id)) - tab_bar->Tabs.erase(tab); - if (tab_bar->VisibleTabId == tab_id) { tab_bar->VisibleTabId = 0; } - if (tab_bar->SelectedTabId == tab_id) { tab_bar->SelectedTabId = 0; } - if (tab_bar->NextSelectedTabId == tab_id) { tab_bar->NextSelectedTabId = 0; } -} - -// Called on manual closure attempt -void ImGui::TabBarCloseTab(ImGuiTabBar* tab_bar, ImGuiTabItem* tab) -{ - if ((tab_bar->VisibleTabId == tab->ID) && !(tab->Flags & ImGuiTabItemFlags_UnsavedDocument)) - { - // This will remove a frame of lag for selecting another tab on closure. - // However we don't run it in the case where the 'Unsaved' flag is set, so user gets a chance to fully undo the closure - tab->LastFrameVisible = -1; - tab_bar->SelectedTabId = tab_bar->NextSelectedTabId = 0; - } - else if ((tab_bar->VisibleTabId != tab->ID) && (tab->Flags & ImGuiTabItemFlags_UnsavedDocument)) - { - // Actually select before expecting closure - tab_bar->NextSelectedTabId = tab->ID; - } -} - -static float ImGui::TabBarScrollClamp(ImGuiTabBar* tab_bar, float scrolling) -{ - scrolling = ImMin(scrolling, tab_bar->OffsetMax - tab_bar->BarRect.GetWidth()); - return ImMax(scrolling, 0.0f); -} - -static void ImGui::TabBarScrollToTab(ImGuiTabBar* tab_bar, ImGuiTabItem* tab) -{ - ImGuiContext& g = *GImGui; - float margin = g.FontSize * 1.0f; // When to scroll to make Tab N+1 visible always make a bit of N visible to suggest more scrolling area (since we don't have a scrollbar) - int order = tab_bar->GetTabOrder(tab); - float tab_x1 = tab->Offset + (order > 0 ? -margin : 0.0f); - float tab_x2 = tab->Offset + tab->Width + (order + 1 < tab_bar->Tabs.Size ? margin : 1.0f); - tab_bar->ScrollingTargetDistToVisibility = 0.0f; - if (tab_bar->ScrollingTarget > tab_x1 || (tab_x2 - tab_x1 >= tab_bar->BarRect.GetWidth())) - { - tab_bar->ScrollingTargetDistToVisibility = ImMax(tab_bar->ScrollingAnim - tab_x2, 0.0f); - tab_bar->ScrollingTarget = tab_x1; - } - else if (tab_bar->ScrollingTarget < tab_x2 - tab_bar->BarRect.GetWidth()) - { - tab_bar->ScrollingTargetDistToVisibility = ImMax((tab_x1 - tab_bar->BarRect.GetWidth()) - tab_bar->ScrollingAnim, 0.0f); - tab_bar->ScrollingTarget = tab_x2 - tab_bar->BarRect.GetWidth(); - } -} - -void ImGui::TabBarQueueChangeTabOrder(ImGuiTabBar* tab_bar, const ImGuiTabItem* tab, int dir) -{ - IM_ASSERT(dir == -1 || dir == +1); - IM_ASSERT(tab_bar->ReorderRequestTabId == 0); - tab_bar->ReorderRequestTabId = tab->ID; - tab_bar->ReorderRequestDir = (ImS8)dir; -} - -static ImGuiTabItem* ImGui::TabBarScrollingButtons(ImGuiTabBar* tab_bar) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - const ImVec2 arrow_button_size(g.FontSize - 2.0f, g.FontSize + g.Style.FramePadding.y * 2.0f); - const float scrolling_buttons_width = arrow_button_size.x * 2.0f; - - const ImVec2 backup_cursor_pos = window->DC.CursorPos; - //window->DrawList->AddRect(ImVec2(tab_bar->BarRect.Max.x - scrolling_buttons_width, tab_bar->BarRect.Min.y), ImVec2(tab_bar->BarRect.Max.x, tab_bar->BarRect.Max.y), IM_COL32(255,0,0,255)); - - const ImRect avail_bar_rect = tab_bar->BarRect; - bool want_clip_rect = !avail_bar_rect.Contains(ImRect(window->DC.CursorPos, window->DC.CursorPos + ImVec2(scrolling_buttons_width, 0.0f))); - if (want_clip_rect) - PushClipRect(tab_bar->BarRect.Min, tab_bar->BarRect.Max + ImVec2(g.Style.ItemInnerSpacing.x, 0.0f), true); - - ImGuiTabItem* tab_to_select = NULL; - - int select_dir = 0; - ImVec4 arrow_col = g.Style.Colors[ImGuiCol_Text]; - arrow_col.w *= 0.5f; - - PushStyleColor(ImGuiCol_Text, arrow_col); - PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0)); - const float backup_repeat_delay = g.IO.KeyRepeatDelay; - const float backup_repeat_rate = g.IO.KeyRepeatRate; - g.IO.KeyRepeatDelay = 0.250f; - g.IO.KeyRepeatRate = 0.200f; - window->DC.CursorPos = ImVec2(tab_bar->BarRect.Max.x - scrolling_buttons_width, tab_bar->BarRect.Min.y); - if (ArrowButtonEx("##<", ImGuiDir_Left, arrow_button_size, ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_Repeat)) - select_dir = -1; - window->DC.CursorPos = ImVec2(tab_bar->BarRect.Max.x - scrolling_buttons_width + arrow_button_size.x, tab_bar->BarRect.Min.y); - if (ArrowButtonEx("##>", ImGuiDir_Right, arrow_button_size, ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_Repeat)) - select_dir = +1; - PopStyleColor(2); - g.IO.KeyRepeatRate = backup_repeat_rate; - g.IO.KeyRepeatDelay = backup_repeat_delay; - - if (want_clip_rect) - PopClipRect(); - - if (select_dir != 0) - if (ImGuiTabItem* tab_item = TabBarFindTabByID(tab_bar, tab_bar->SelectedTabId)) - { - int selected_order = tab_bar->GetTabOrder(tab_item); - int target_order = selected_order + select_dir; - tab_to_select = &tab_bar->Tabs[(target_order >= 0 && target_order < tab_bar->Tabs.Size) ? target_order : selected_order]; // If we are at the end of the list, still scroll to make our tab visible - } - window->DC.CursorPos = backup_cursor_pos; - tab_bar->BarRect.Max.x -= scrolling_buttons_width + 1.0f; - - return tab_to_select; -} - -static ImGuiTabItem* ImGui::TabBarTabListPopupButton(ImGuiTabBar* tab_bar) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - - // We use g.Style.FramePadding.y to match the square ArrowButton size - const float tab_list_popup_button_width = g.FontSize + g.Style.FramePadding.y; - const ImVec2 backup_cursor_pos = window->DC.CursorPos; - window->DC.CursorPos = ImVec2(tab_bar->BarRect.Min.x - g.Style.FramePadding.y, tab_bar->BarRect.Min.y); - tab_bar->BarRect.Min.x += tab_list_popup_button_width; - - ImVec4 arrow_col = g.Style.Colors[ImGuiCol_Text]; - arrow_col.w *= 0.5f; - PushStyleColor(ImGuiCol_Text, arrow_col); - PushStyleColor(ImGuiCol_Button, ImVec4(0, 0, 0, 0)); - bool open = BeginCombo("##v", NULL, ImGuiComboFlags_NoPreview); - PopStyleColor(2); - - ImGuiTabItem* tab_to_select = NULL; - if (open) - { - for (int tab_n = 0; tab_n < tab_bar->Tabs.Size; tab_n++) - { - ImGuiTabItem* tab = &tab_bar->Tabs[tab_n]; - const char* tab_name = tab_bar->GetTabName(tab); - if (Selectable(tab_name, tab_bar->SelectedTabId == tab->ID)) - tab_to_select = tab; - } - EndCombo(); - } - - window->DC.CursorPos = backup_cursor_pos; - return tab_to_select; -} - -//------------------------------------------------------------------------- -// [SECTION] Widgets: BeginTabItem, EndTabItem, etc. -//------------------------------------------------------------------------- -// - BeginTabItem() -// - EndTabItem() -// - TabItemEx() [Internal] -// - SetTabItemClosed() -// - TabItemCalcSize() [Internal] -// - TabItemBackground() [Internal] -// - TabItemLabelAndCloseButton() [Internal] -//------------------------------------------------------------------------- - -bool ImGui::BeginTabItem(const char* label, bool* p_open, ImGuiTabItemFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return false; - - ImGuiTabBar* tab_bar = g.CurrentTabBar; - if (tab_bar == NULL) - { - IM_ASSERT_USER_ERROR(tab_bar, "BeginTabItem() Needs to be called between BeginTabBar() and EndTabBar()!"); - return false; - } - bool ret = TabItemEx(tab_bar, label, p_open, flags); - if (ret && !(flags & ImGuiTabItemFlags_NoPushId)) - { - ImGuiTabItem* tab = &tab_bar->Tabs[tab_bar->LastTabItemIdx]; - PushOverrideID(tab->ID); // We already hashed 'label' so push into the ID stack directly instead of doing another hash through PushID(label) - } - return ret; -} - -void ImGui::EndTabItem() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return; - - ImGuiTabBar* tab_bar = g.CurrentTabBar; - if (tab_bar == NULL) - { - IM_ASSERT(tab_bar != NULL && "Needs to be called between BeginTabBar() and EndTabBar()!"); - return; - } - IM_ASSERT(tab_bar->LastTabItemIdx >= 0); - ImGuiTabItem* tab = &tab_bar->Tabs[tab_bar->LastTabItemIdx]; - if (!(tab->Flags & ImGuiTabItemFlags_NoPushId)) - window->IDStack.pop_back(); -} - -bool ImGui::TabItemEx(ImGuiTabBar* tab_bar, const char* label, bool* p_open, ImGuiTabItemFlags flags) -{ - // Layout whole tab bar if not already done - if (tab_bar->WantLayout) - TabBarLayout(tab_bar); - - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - if (window->SkipItems) - return false; - - const ImGuiStyle& style = g.Style; - const ImGuiID id = TabBarCalcTabID(tab_bar, label); - - // If the user called us with *p_open == false, we early out and don't render. We make a dummy call to ItemAdd() so that attempts to use a contextual popup menu with an implicit ID won't use an older ID. - if (p_open && !*p_open) - { - PushItemFlag(ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus, true); - ItemAdd(ImRect(), id); - PopItemFlag(); - return false; - } - - // Store into ImGuiTabItemFlags_NoCloseButton, also honor ImGuiTabItemFlags_NoCloseButton passed by user (although not documented) - if (flags & ImGuiTabItemFlags_NoCloseButton) - p_open = NULL; - else if (p_open == NULL) - flags |= ImGuiTabItemFlags_NoCloseButton; - - // Calculate tab contents size - ImVec2 size = TabItemCalcSize(label, p_open != NULL); - - // Acquire tab data - ImGuiTabItem* tab = TabBarFindTabByID(tab_bar, id); - bool tab_is_new = false; - if (tab == NULL) - { - tab_bar->Tabs.push_back(ImGuiTabItem()); - tab = &tab_bar->Tabs.back(); - tab->ID = id; - tab->Width = size.x; - tab_is_new = true; - } - tab_bar->LastTabItemIdx = (short)tab_bar->Tabs.index_from_ptr(tab); - tab->ContentWidth = size.x; - - const bool tab_bar_appearing = (tab_bar->PrevFrameVisible + 1 < g.FrameCount); - const bool tab_bar_focused = (tab_bar->Flags & ImGuiTabBarFlags_IsFocused) != 0; - const bool tab_appearing = (tab->LastFrameVisible + 1 < g.FrameCount); - tab->LastFrameVisible = g.FrameCount; - tab->Flags = flags; - - // Append name with zero-terminator - tab->NameOffset = tab_bar->TabsNames.size(); - tab_bar->TabsNames.append(label, label + strlen(label) + 1); - - // If we are not reorderable, always reset offset based on submission order. - // (We already handled layout and sizing using the previous known order, but sizing is not affected by order!) - if (!tab_appearing && !(tab_bar->Flags & ImGuiTabBarFlags_Reorderable)) - { - tab->Offset = tab_bar->OffsetNextTab; - tab_bar->OffsetNextTab += tab->Width + g.Style.ItemInnerSpacing.x; - } - - // Update selected tab - if (tab_appearing && (tab_bar->Flags & ImGuiTabBarFlags_AutoSelectNewTabs) && tab_bar->NextSelectedTabId == 0) - if (!tab_bar_appearing || tab_bar->SelectedTabId == 0) - tab_bar->NextSelectedTabId = id; // New tabs gets activated - if ((flags & ImGuiTabItemFlags_SetSelected) && (tab_bar->SelectedTabId != id)) // SetSelected can only be passed on explicit tab bar - tab_bar->NextSelectedTabId = id; - - // Lock visibility - bool tab_contents_visible = (tab_bar->VisibleTabId == id); - if (tab_contents_visible) - tab_bar->VisibleTabWasSubmitted = true; - - // On the very first frame of a tab bar we let first tab contents be visible to minimize appearing glitches - if (!tab_contents_visible && tab_bar->SelectedTabId == 0 && tab_bar_appearing) - if (tab_bar->Tabs.Size == 1 && !(tab_bar->Flags & ImGuiTabBarFlags_AutoSelectNewTabs)) - tab_contents_visible = true; - - if (tab_appearing && !(tab_bar_appearing && !tab_is_new)) - { - PushItemFlag(ImGuiItemFlags_NoNav | ImGuiItemFlags_NoNavDefaultFocus, true); - ItemAdd(ImRect(), id); - PopItemFlag(); - return tab_contents_visible; - } - - if (tab_bar->SelectedTabId == id) - tab->LastFrameSelected = g.FrameCount; - - // Backup current layout position - const ImVec2 backup_main_cursor_pos = window->DC.CursorPos; - - // Layout - size.x = tab->Width; - window->DC.CursorPos = tab_bar->BarRect.Min + ImVec2(IM_FLOOR(tab->Offset - tab_bar->ScrollingAnim), 0.0f); - ImVec2 pos = window->DC.CursorPos; - ImRect bb(pos, pos + size); - - // We don't have CPU clipping primitives to clip the CloseButton (until it becomes a texture), so need to add an extra draw call (temporary in the case of vertical animation) - bool want_clip_rect = (bb.Min.x < tab_bar->BarRect.Min.x) || (bb.Max.x > tab_bar->BarRect.Max.x); - if (want_clip_rect) - PushClipRect(ImVec2(ImMax(bb.Min.x, tab_bar->BarRect.Min.x), bb.Min.y - 1), ImVec2(tab_bar->BarRect.Max.x, bb.Max.y), true); - - ImVec2 backup_cursor_max_pos = window->DC.CursorMaxPos; - ItemSize(bb.GetSize(), style.FramePadding.y); - window->DC.CursorMaxPos = backup_cursor_max_pos; - - if (!ItemAdd(bb, id)) - { - if (want_clip_rect) - PopClipRect(); - window->DC.CursorPos = backup_main_cursor_pos; - return tab_contents_visible; - } - - // Click to Select a tab - ImGuiButtonFlags button_flags = (ImGuiButtonFlags_PressedOnClick | ImGuiButtonFlags_AllowItemOverlap); - if (g.DragDropActive) - button_flags |= ImGuiButtonFlags_PressedOnDragDropHold; - bool hovered, held; - bool pressed = ButtonBehavior(bb, id, &hovered, &held, button_flags); - if (pressed) - tab_bar->NextSelectedTabId = id; - hovered |= (g.HoveredId == id); - - // Allow the close button to overlap unless we are dragging (in which case we don't want any overlapping tabs to be hovered) - if (!held) - SetItemAllowOverlap(); - - // Drag and drop: re-order tabs - if (held && !tab_appearing && IsMouseDragging(0)) - { - if (!g.DragDropActive && (tab_bar->Flags & ImGuiTabBarFlags_Reorderable)) - { - // While moving a tab it will jump on the other side of the mouse, so we also test for MouseDelta.x - if (g.IO.MouseDelta.x < 0.0f && g.IO.MousePos.x < bb.Min.x) - { - if (tab_bar->Flags & ImGuiTabBarFlags_Reorderable) - TabBarQueueChangeTabOrder(tab_bar, tab, -1); - } - else if (g.IO.MouseDelta.x > 0.0f && g.IO.MousePos.x > bb.Max.x) - { - if (tab_bar->Flags & ImGuiTabBarFlags_Reorderable) - TabBarQueueChangeTabOrder(tab_bar, tab, +1); - } - } - } - -#if 0 - if (hovered && g.HoveredIdNotActiveTimer > 0.50f && bb.GetWidth() < tab->ContentWidth) - { - // Enlarge tab display when hovering - bb.Max.x = bb.Min.x + IM_FLOOR(ImLerp(bb.GetWidth(), tab->ContentWidth, ImSaturate((g.HoveredIdNotActiveTimer - 0.40f) * 6.0f))); - display_draw_list = GetForegroundDrawList(window); - TabItemBackground(display_draw_list, bb, flags, GetColorU32(ImGuiCol_TitleBgActive)); - } -#endif - - // Render tab shape - ImDrawList* display_draw_list = window->DrawList; - const ImU32 tab_col = GetColorU32((held || hovered) ? ImGuiCol_TabHovered : tab_contents_visible ? (tab_bar_focused ? ImGuiCol_TabActive : ImGuiCol_TabUnfocusedActive) : (tab_bar_focused ? ImGuiCol_Tab : ImGuiCol_TabUnfocused)); - TabItemBackground(display_draw_list, bb, flags, tab_col); - RenderNavHighlight(bb, id); - - // Select with right mouse button. This is so the common idiom for context menu automatically highlight the current widget. - const bool hovered_unblocked = IsItemHovered(ImGuiHoveredFlags_AllowWhenBlockedByPopup); - if (hovered_unblocked && (IsMouseClicked(1) || IsMouseReleased(1))) - tab_bar->NextSelectedTabId = id; - - if (tab_bar->Flags & ImGuiTabBarFlags_NoCloseWithMiddleMouseButton) - flags |= ImGuiTabItemFlags_NoCloseWithMiddleMouseButton; - - // Render tab label, process close button - const ImGuiID close_button_id = p_open ? window->GetID((void*)((intptr_t)id + 1)) : 0; - bool just_closed = TabItemLabelAndCloseButton(display_draw_list, bb, flags, tab_bar->FramePadding, label, id, close_button_id); - if (just_closed && p_open != NULL) - { - *p_open = false; - TabBarCloseTab(tab_bar, tab); - } - - // Restore main window position so user can draw there - if (want_clip_rect) - PopClipRect(); - window->DC.CursorPos = backup_main_cursor_pos; - - // Tooltip (FIXME: Won't work over the close button because ItemOverlap systems messes up with HoveredIdTimer) - // We test IsItemHovered() to discard e.g. when another item is active or drag and drop over the tab bar (which g.HoveredId ignores) - if (g.HoveredId == id && !held && g.HoveredIdNotActiveTimer > 0.50f && IsItemHovered()) - if (!(tab_bar->Flags & ImGuiTabBarFlags_NoTooltip)) - SetTooltip("%.*s", (int)(FindRenderedTextEnd(label) - label), label); - - return tab_contents_visible; -} - -// [Public] This is call is 100% optional but it allows to remove some one-frame glitches when a tab has been unexpectedly removed. -// To use it to need to call the function SetTabItemClosed() after BeginTabBar() and before any call to BeginTabItem() -void ImGui::SetTabItemClosed(const char* label) -{ - ImGuiContext& g = *GImGui; - bool is_within_manual_tab_bar = g.CurrentTabBar && !(g.CurrentTabBar->Flags & ImGuiTabBarFlags_DockNode); - if (is_within_manual_tab_bar) - { - ImGuiTabBar* tab_bar = g.CurrentTabBar; - IM_ASSERT(tab_bar->WantLayout); // Needs to be called AFTER BeginTabBar() and BEFORE the first call to BeginTabItem() - ImGuiID tab_id = TabBarCalcTabID(tab_bar, label); - TabBarRemoveTab(tab_bar, tab_id); - } -} - -ImVec2 ImGui::TabItemCalcSize(const char* label, bool has_close_button) -{ - ImGuiContext& g = *GImGui; - ImVec2 label_size = CalcTextSize(label, NULL, true); - ImVec2 size = ImVec2(label_size.x + g.Style.FramePadding.x, label_size.y + g.Style.FramePadding.y * 2.0f); - if (has_close_button) - size.x += g.Style.FramePadding.x + (g.Style.ItemInnerSpacing.x + g.FontSize); // We use Y intentionally to fit the close button circle. - else - size.x += g.Style.FramePadding.x + 1.0f; - return ImVec2(ImMin(size.x, TabBarCalcMaxTabWidth()), size.y); -} - -void ImGui::TabItemBackground(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImU32 col) -{ - // While rendering tabs, we trim 1 pixel off the top of our bounding box so they can fit within a regular frame height while looking "detached" from it. - ImGuiContext& g = *GImGui; - const float width = bb.GetWidth(); - IM_UNUSED(flags); - IM_ASSERT(width > 0.0f); - const float rounding = ImMax(0.0f, ImMin(g.Style.TabRounding, width * 0.5f - 1.0f)); - const float y1 = bb.Min.y + 1.0f; - const float y2 = bb.Max.y - 1.0f; - draw_list->PathLineTo(ImVec2(bb.Min.x, y2)); - draw_list->PathArcToFast(ImVec2(bb.Min.x + rounding, y1 + rounding), rounding, 6, 9); - draw_list->PathArcToFast(ImVec2(bb.Max.x - rounding, y1 + rounding), rounding, 9, 12); - draw_list->PathLineTo(ImVec2(bb.Max.x, y2)); - draw_list->PathFillConvex(col); - if (g.Style.TabBorderSize > 0.0f) - { - draw_list->PathLineTo(ImVec2(bb.Min.x + 0.5f, y2)); - draw_list->PathArcToFast(ImVec2(bb.Min.x + rounding + 0.5f, y1 + rounding + 0.5f), rounding, 6, 9); - draw_list->PathArcToFast(ImVec2(bb.Max.x - rounding - 0.5f, y1 + rounding + 0.5f), rounding, 9, 12); - draw_list->PathLineTo(ImVec2(bb.Max.x - 0.5f, y2)); - draw_list->PathStroke(GetColorU32(ImGuiCol_Border), false, g.Style.TabBorderSize); - } -} - -// Render text label (with custom clipping) + Unsaved Document marker + Close Button logic -// We tend to lock style.FramePadding for a given tab-bar, hence the 'frame_padding' parameter. -bool ImGui::TabItemLabelAndCloseButton(ImDrawList* draw_list, const ImRect& bb, ImGuiTabItemFlags flags, ImVec2 frame_padding, const char* label, ImGuiID tab_id, ImGuiID close_button_id) -{ - ImGuiContext& g = *GImGui; - ImVec2 label_size = CalcTextSize(label, NULL, true); - if (bb.GetWidth() <= 1.0f) - return false; - - // Render text label (with clipping + alpha gradient) + unsaved marker - const char* TAB_UNSAVED_MARKER = "*"; - ImRect text_pixel_clip_bb(bb.Min.x + frame_padding.x, bb.Min.y + frame_padding.y, bb.Max.x - frame_padding.x, bb.Max.y); - if (flags & ImGuiTabItemFlags_UnsavedDocument) - { - text_pixel_clip_bb.Max.x -= CalcTextSize(TAB_UNSAVED_MARKER, NULL, false).x; - ImVec2 unsaved_marker_pos(ImMin(bb.Min.x + frame_padding.x + label_size.x + 2, text_pixel_clip_bb.Max.x), bb.Min.y + frame_padding.y + IM_FLOOR(-g.FontSize * 0.25f)); - RenderTextClippedEx(draw_list, unsaved_marker_pos, bb.Max - frame_padding, TAB_UNSAVED_MARKER, NULL, NULL); - } - ImRect text_ellipsis_clip_bb = text_pixel_clip_bb; - - // Close Button - // We are relying on a subtle and confusing distinction between 'hovered' and 'g.HoveredId' which happens because we are using ImGuiButtonFlags_AllowOverlapMode + SetItemAllowOverlap() - // 'hovered' will be true when hovering the Tab but NOT when hovering the close button - // 'g.HoveredId==id' will be true when hovering the Tab including when hovering the close button - // 'g.ActiveId==close_button_id' will be true when we are holding on the close button, in which case both hovered booleans are false - bool close_button_pressed = false; - bool close_button_visible = false; - if (close_button_id != 0) - if (g.HoveredId == tab_id || g.HoveredId == close_button_id || g.ActiveId == close_button_id) - close_button_visible = true; - if (close_button_visible) - { - ImGuiItemHoveredDataBackup last_item_backup; - const float close_button_sz = g.FontSize; - PushStyleVar(ImGuiStyleVar_FramePadding, frame_padding); - if (CloseButton(close_button_id, ImVec2(bb.Max.x - frame_padding.x * 2.0f - close_button_sz, bb.Min.y))) - close_button_pressed = true; - PopStyleVar(); - last_item_backup.Restore(); - - // Close with middle mouse button - if (!(flags & ImGuiTabItemFlags_NoCloseWithMiddleMouseButton) && IsMouseClicked(2)) - close_button_pressed = true; - - text_pixel_clip_bb.Max.x -= close_button_sz; - } - - float ellipsis_max_x = close_button_visible ? text_pixel_clip_bb.Max.x : bb.Max.x - 1.0f; - RenderTextEllipsis(draw_list, text_ellipsis_clip_bb.Min, text_ellipsis_clip_bb.Max, text_pixel_clip_bb.Max.x, ellipsis_max_x, label, NULL, &label_size); - - return close_button_pressed; -} - - -//------------------------------------------------------------------------- -// [SECTION] Widgets: Columns, BeginColumns, EndColumns, etc. -// In the current version, Columns are very weak. Needs to be replaced with a more full-featured system. -//------------------------------------------------------------------------- -// - GetColumnIndex() -// - GetColumnCount() -// - GetColumnOffset() -// - GetColumnWidth() -// - SetColumnOffset() -// - SetColumnWidth() -// - PushColumnClipRect() [Internal] -// - PushColumnsBackground() [Internal] -// - PopColumnsBackground() [Internal] -// - FindOrCreateColumns() [Internal] -// - GetColumnsID() [Internal] -// - BeginColumns() -// - NextColumn() -// - EndColumns() -// - Columns() -//------------------------------------------------------------------------- - -int ImGui::GetColumnIndex() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.CurrentColumns ? window->DC.CurrentColumns->Current : 0; -} - -int ImGui::GetColumnsCount() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - return window->DC.CurrentColumns ? window->DC.CurrentColumns->Count : 1; -} - -float ImGui::GetColumnOffsetFromNorm(const ImGuiColumns* columns, float offset_norm) -{ - return offset_norm * (columns->OffMaxX - columns->OffMinX); -} - -float ImGui::GetColumnNormFromOffset(const ImGuiColumns* columns, float offset) -{ - return offset / (columns->OffMaxX - columns->OffMinX); -} - -static const float COLUMNS_HIT_RECT_HALF_WIDTH = 4.0f; - -static float GetDraggedColumnOffset(ImGuiColumns* columns, int column_index) -{ - // Active (dragged) column always follow mouse. The reason we need this is that dragging a column to the right edge of an auto-resizing - // window creates a feedback loop because we store normalized positions. So while dragging we enforce absolute positioning. - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - IM_ASSERT(column_index > 0); // We are not supposed to drag column 0. - IM_ASSERT(g.ActiveId == columns->ID + ImGuiID(column_index)); - - float x = g.IO.MousePos.x - g.ActiveIdClickOffset.x + COLUMNS_HIT_RECT_HALF_WIDTH - window->Pos.x; - x = ImMax(x, ImGui::GetColumnOffset(column_index - 1) + g.Style.ColumnsMinSpacing); - if ((columns->Flags & ImGuiColumnsFlags_NoPreserveWidths)) - x = ImMin(x, ImGui::GetColumnOffset(column_index + 1) - g.Style.ColumnsMinSpacing); - - return x; -} - -float ImGui::GetColumnOffset(int column_index) -{ - ImGuiWindow* window = GetCurrentWindowRead(); - ImGuiColumns* columns = window->DC.CurrentColumns; - if (columns == NULL) - return 0.0f; - - if (column_index < 0) - column_index = columns->Current; - IM_ASSERT(column_index < columns->Columns.Size); - - const float t = columns->Columns[column_index].OffsetNorm; - const float x_offset = ImLerp(columns->OffMinX, columns->OffMaxX, t); - return x_offset; -} - -static float GetColumnWidthEx(ImGuiColumns* columns, int column_index, bool before_resize = false) -{ - if (column_index < 0) - column_index = columns->Current; - - float offset_norm; - if (before_resize) - offset_norm = columns->Columns[column_index + 1].OffsetNormBeforeResize - columns->Columns[column_index].OffsetNormBeforeResize; - else - offset_norm = columns->Columns[column_index + 1].OffsetNorm - columns->Columns[column_index].OffsetNorm; - return ImGui::GetColumnOffsetFromNorm(columns, offset_norm); -} - -float ImGui::GetColumnWidth(int column_index) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - ImGuiColumns* columns = window->DC.CurrentColumns; - if (columns == NULL) - return GetContentRegionAvail().x; - - if (column_index < 0) - column_index = columns->Current; - return GetColumnOffsetFromNorm(columns, columns->Columns[column_index + 1].OffsetNorm - columns->Columns[column_index].OffsetNorm); -} - -void ImGui::SetColumnOffset(int column_index, float offset) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = g.CurrentWindow; - ImGuiColumns* columns = window->DC.CurrentColumns; - IM_ASSERT(columns != NULL); - - if (column_index < 0) - column_index = columns->Current; - IM_ASSERT(column_index < columns->Columns.Size); - - const bool preserve_width = !(columns->Flags & ImGuiColumnsFlags_NoPreserveWidths) && (column_index < columns->Count-1); - const float width = preserve_width ? GetColumnWidthEx(columns, column_index, columns->IsBeingResized) : 0.0f; - - if (!(columns->Flags & ImGuiColumnsFlags_NoForceWithinWindow)) - offset = ImMin(offset, columns->OffMaxX - g.Style.ColumnsMinSpacing * (columns->Count - column_index)); - columns->Columns[column_index].OffsetNorm = GetColumnNormFromOffset(columns, offset - columns->OffMinX); - - if (preserve_width) - SetColumnOffset(column_index + 1, offset + ImMax(g.Style.ColumnsMinSpacing, width)); -} - -void ImGui::SetColumnWidth(int column_index, float width) -{ - ImGuiWindow* window = GetCurrentWindowRead(); - ImGuiColumns* columns = window->DC.CurrentColumns; - IM_ASSERT(columns != NULL); - - if (column_index < 0) - column_index = columns->Current; - SetColumnOffset(column_index + 1, GetColumnOffset(column_index) + width); -} - -void ImGui::PushColumnClipRect(int column_index) -{ - ImGuiWindow* window = GetCurrentWindowRead(); - ImGuiColumns* columns = window->DC.CurrentColumns; - if (column_index < 0) - column_index = columns->Current; - - ImGuiColumnData* column = &columns->Columns[column_index]; - PushClipRect(column->ClipRect.Min, column->ClipRect.Max, false); -} - -// Get into the columns background draw command (which is generally the same draw command as before we called BeginColumns) -void ImGui::PushColumnsBackground() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - ImGuiColumns* columns = window->DC.CurrentColumns; - if (columns->Count == 1) - return; - columns->Splitter.SetCurrentChannel(window->DrawList, 0); - int cmd_size = window->DrawList->CmdBuffer.Size; - PushClipRect(columns->HostClipRect.Min, columns->HostClipRect.Max, false); - IM_UNUSED(cmd_size); - IM_ASSERT(cmd_size == window->DrawList->CmdBuffer.Size); // Being in channel 0 this should not have created an ImDrawCmd -} - -void ImGui::PopColumnsBackground() -{ - ImGuiWindow* window = GetCurrentWindowRead(); - ImGuiColumns* columns = window->DC.CurrentColumns; - if (columns->Count == 1) - return; - columns->Splitter.SetCurrentChannel(window->DrawList, columns->Current + 1); - PopClipRect(); -} - -ImGuiColumns* ImGui::FindOrCreateColumns(ImGuiWindow* window, ImGuiID id) -{ - // We have few columns per window so for now we don't need bother much with turning this into a faster lookup. - for (int n = 0; n < window->ColumnsStorage.Size; n++) - if (window->ColumnsStorage[n].ID == id) - return &window->ColumnsStorage[n]; - - window->ColumnsStorage.push_back(ImGuiColumns()); - ImGuiColumns* columns = &window->ColumnsStorage.back(); - columns->ID = id; - return columns; -} - -ImGuiID ImGui::GetColumnsID(const char* str_id, int columns_count) -{ - ImGuiWindow* window = GetCurrentWindow(); - - // Differentiate column ID with an arbitrary prefix for cases where users name their columns set the same as another widget. - // In addition, when an identifier isn't explicitly provided we include the number of columns in the hash to make it uniquer. - PushID(0x11223347 + (str_id ? 0 : columns_count)); - ImGuiID id = window->GetID(str_id ? str_id : "columns"); - PopID(); - - return id; -} - -void ImGui::BeginColumns(const char* str_id, int columns_count, ImGuiColumnsFlags flags) -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - - IM_ASSERT(columns_count >= 1); - IM_ASSERT(window->DC.CurrentColumns == NULL); // Nested columns are currently not supported - - // Acquire storage for the columns set - ImGuiID id = GetColumnsID(str_id, columns_count); - ImGuiColumns* columns = FindOrCreateColumns(window, id); - IM_ASSERT(columns->ID == id); - columns->Current = 0; - columns->Count = columns_count; - columns->Flags = flags; - window->DC.CurrentColumns = columns; - - columns->HostCursorPosY = window->DC.CursorPos.y; - columns->HostCursorMaxPosX = window->DC.CursorMaxPos.x; - columns->HostClipRect = window->ClipRect; - columns->HostWorkRect = window->WorkRect; - - // Set state for first column - // We aim so that the right-most column will have the same clipping width as other after being clipped by parent ClipRect - const float column_padding = g.Style.ItemSpacing.x; - const float half_clip_extend_x = ImFloor(ImMax(window->WindowPadding.x * 0.5f, window->WindowBorderSize)); - const float max_1 = window->WorkRect.Max.x + column_padding - ImMax(column_padding - window->WindowPadding.x, 0.0f); - const float max_2 = window->WorkRect.Max.x + half_clip_extend_x; - columns->OffMinX = window->DC.Indent.x - column_padding + ImMax(column_padding - window->WindowPadding.x, 0.0f); - columns->OffMaxX = ImMax(ImMin(max_1, max_2) - window->Pos.x, columns->OffMinX + 1.0f); - columns->LineMinY = columns->LineMaxY = window->DC.CursorPos.y; - - // Clear data if columns count changed - if (columns->Columns.Size != 0 && columns->Columns.Size != columns_count + 1) - columns->Columns.resize(0); - - // Initialize default widths - columns->IsFirstFrame = (columns->Columns.Size == 0); - if (columns->Columns.Size == 0) - { - columns->Columns.reserve(columns_count + 1); - for (int n = 0; n < columns_count + 1; n++) - { - ImGuiColumnData column; - column.OffsetNorm = n / (float)columns_count; - columns->Columns.push_back(column); - } - } - - for (int n = 0; n < columns_count; n++) - { - // Compute clipping rectangle - ImGuiColumnData* column = &columns->Columns[n]; - float clip_x1 = IM_ROUND(window->Pos.x + GetColumnOffset(n)); - float clip_x2 = IM_ROUND(window->Pos.x + GetColumnOffset(n + 1) - 1.0f); - column->ClipRect = ImRect(clip_x1, -FLT_MAX, clip_x2, +FLT_MAX); - column->ClipRect.ClipWith(window->ClipRect); - } - - if (columns->Count > 1) - { - columns->Splitter.Split(window->DrawList, 1 + columns->Count); - columns->Splitter.SetCurrentChannel(window->DrawList, 1); - PushColumnClipRect(0); - } - - // We don't generally store Indent.x inside ColumnsOffset because it may be manipulated by the user. - float offset_0 = GetColumnOffset(columns->Current); - float offset_1 = GetColumnOffset(columns->Current + 1); - float width = offset_1 - offset_0; - PushItemWidth(width * 0.65f); - window->DC.ColumnsOffset.x = ImMax(column_padding - window->WindowPadding.x, 0.0f); - window->DC.CursorPos.x = IM_FLOOR(window->Pos.x + window->DC.Indent.x + window->DC.ColumnsOffset.x); - window->WorkRect.Max.x = window->Pos.x + offset_1 - column_padding; -} - -void ImGui::NextColumn() -{ - ImGuiWindow* window = GetCurrentWindow(); - if (window->SkipItems || window->DC.CurrentColumns == NULL) - return; - - ImGuiContext& g = *GImGui; - ImGuiColumns* columns = window->DC.CurrentColumns; - - if (columns->Count == 1) - { - window->DC.CursorPos.x = IM_FLOOR(window->Pos.x + window->DC.Indent.x + window->DC.ColumnsOffset.x); - IM_ASSERT(columns->Current == 0); - return; - } - PopItemWidth(); - PopClipRect(); - - const float column_padding = g.Style.ItemSpacing.x; - columns->LineMaxY = ImMax(columns->LineMaxY, window->DC.CursorPos.y); - if (++columns->Current < columns->Count) - { - // Columns 1+ ignore IndentX (by canceling it out) - // FIXME-COLUMNS: Unnecessary, could be locked? - window->DC.ColumnsOffset.x = GetColumnOffset(columns->Current) - window->DC.Indent.x + column_padding; - columns->Splitter.SetCurrentChannel(window->DrawList, columns->Current + 1); - } - else - { - // New row/line - // Column 0 honor IndentX - window->DC.ColumnsOffset.x = ImMax(column_padding - window->WindowPadding.x, 0.0f); - columns->Splitter.SetCurrentChannel(window->DrawList, 1); - columns->Current = 0; - columns->LineMinY = columns->LineMaxY; - } - window->DC.CursorPos.x = IM_FLOOR(window->Pos.x + window->DC.Indent.x + window->DC.ColumnsOffset.x); - window->DC.CursorPos.y = columns->LineMinY; - window->DC.CurrLineSize = ImVec2(0.0f, 0.0f); - window->DC.CurrLineTextBaseOffset = 0.0f; - - PushColumnClipRect(columns->Current); // FIXME-COLUMNS: Could it be an overwrite? - - // FIXME-COLUMNS: Share code with BeginColumns() - move code on columns setup. - float offset_0 = GetColumnOffset(columns->Current); - float offset_1 = GetColumnOffset(columns->Current + 1); - float width = offset_1 - offset_0; - PushItemWidth(width * 0.65f); - window->WorkRect.Max.x = window->Pos.x + offset_1 - column_padding; -} - -void ImGui::EndColumns() -{ - ImGuiContext& g = *GImGui; - ImGuiWindow* window = GetCurrentWindow(); - ImGuiColumns* columns = window->DC.CurrentColumns; - IM_ASSERT(columns != NULL); - - PopItemWidth(); - if (columns->Count > 1) - { - PopClipRect(); - columns->Splitter.Merge(window->DrawList); - } - - const ImGuiColumnsFlags flags = columns->Flags; - columns->LineMaxY = ImMax(columns->LineMaxY, window->DC.CursorPos.y); - window->DC.CursorPos.y = columns->LineMaxY; - if (!(flags & ImGuiColumnsFlags_GrowParentContentsSize)) - window->DC.CursorMaxPos.x = columns->HostCursorMaxPosX; // Restore cursor max pos, as columns don't grow parent - - // Draw columns borders and handle resize - // The IsBeingResized flag ensure we preserve pre-resize columns width so back-and-forth are not lossy - bool is_being_resized = false; - if (!(flags & ImGuiColumnsFlags_NoBorder) && !window->SkipItems) - { - // We clip Y boundaries CPU side because very long triangles are mishandled by some GPU drivers. - const float y1 = ImMax(columns->HostCursorPosY, window->ClipRect.Min.y); - const float y2 = ImMin(window->DC.CursorPos.y, window->ClipRect.Max.y); - int dragging_column = -1; - for (int n = 1; n < columns->Count; n++) - { - ImGuiColumnData* column = &columns->Columns[n]; - float x = window->Pos.x + GetColumnOffset(n); - const ImGuiID column_id = columns->ID + ImGuiID(n); - const float column_hit_hw = COLUMNS_HIT_RECT_HALF_WIDTH; - const ImRect column_hit_rect(ImVec2(x - column_hit_hw, y1), ImVec2(x + column_hit_hw, y2)); - KeepAliveID(column_id); - if (IsClippedEx(column_hit_rect, column_id, false)) - continue; - - bool hovered = false, held = false; - if (!(flags & ImGuiColumnsFlags_NoResize)) - { - ButtonBehavior(column_hit_rect, column_id, &hovered, &held); - if (hovered || held) - g.MouseCursor = ImGuiMouseCursor_ResizeEW; - if (held && !(column->Flags & ImGuiColumnsFlags_NoResize)) - dragging_column = n; - } - - // Draw column - const ImU32 col = GetColorU32(held ? ImGuiCol_SeparatorActive : hovered ? ImGuiCol_SeparatorHovered : ImGuiCol_Separator); - const float xi = IM_FLOOR(x); - window->DrawList->AddLine(ImVec2(xi, y1 + 1.0f), ImVec2(xi, y2), col); - } - - // Apply dragging after drawing the column lines, so our rendered lines are in sync with how items were displayed during the frame. - if (dragging_column != -1) - { - if (!columns->IsBeingResized) - for (int n = 0; n < columns->Count + 1; n++) - columns->Columns[n].OffsetNormBeforeResize = columns->Columns[n].OffsetNorm; - columns->IsBeingResized = is_being_resized = true; - float x = GetDraggedColumnOffset(columns, dragging_column); - SetColumnOffset(dragging_column, x); - } - } - columns->IsBeingResized = is_being_resized; - - window->WorkRect = columns->HostWorkRect; - window->DC.CurrentColumns = NULL; - window->DC.ColumnsOffset.x = 0.0f; - window->DC.CursorPos.x = IM_FLOOR(window->Pos.x + window->DC.Indent.x + window->DC.ColumnsOffset.x); -} - -// [2018-03: This is currently the only public API, while we are working on making BeginColumns/EndColumns user-facing] -void ImGui::Columns(int columns_count, const char* id, bool border) -{ - ImGuiWindow* window = GetCurrentWindow(); - IM_ASSERT(columns_count >= 1); - - ImGuiColumnsFlags flags = (border ? 0 : ImGuiColumnsFlags_NoBorder); - //flags |= ImGuiColumnsFlags_NoPreserveWidths; // NB: Legacy behavior - ImGuiColumns* columns = window->DC.CurrentColumns; - if (columns != NULL && columns->Count == columns_count && columns->Flags == flags) - return; - - if (columns != NULL) - EndColumns(); - - if (columns_count != 1) - BeginColumns(id, columns_count, flags); -} - -//------------------------------------------------------------------------- - -#endif // #ifndef IMGUI_DISABLE diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_rectpack.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_rectpack.h deleted file mode 100644 index ff2a85df..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_rectpack.h +++ /dev/null @@ -1,639 +0,0 @@ -// [DEAR IMGUI] -// This is a slightly modified version of stb_rect_pack.h 1.00. -// Those changes would need to be pushed into nothings/stb: -// - Added STBRP__CDECL -// Grep for [DEAR IMGUI] to find the changes. - -// stb_rect_pack.h - v1.00 - public domain - rectangle packing -// Sean Barrett 2014 -// -// Useful for e.g. packing rectangular textures into an atlas. -// Does not do rotation. -// -// Not necessarily the awesomest packing method, but better than -// the totally naive one in stb_truetype (which is primarily what -// this is meant to replace). -// -// Has only had a few tests run, may have issues. -// -// More docs to come. -// -// No memory allocations; uses qsort() and assert() from stdlib. -// Can override those by defining STBRP_SORT and STBRP_ASSERT. -// -// This library currently uses the Skyline Bottom-Left algorithm. -// -// Please note: better rectangle packers are welcome! Please -// implement them to the same API, but with a different init -// function. -// -// Credits -// -// Library -// Sean Barrett -// Minor features -// Martins Mozeiko -// github:IntellectualKitty -// -// Bugfixes / warning fixes -// Jeremy Jaussaud -// Fabian Giesen -// -// Version history: -// -// 1.00 (2019-02-25) avoid small space waste; gracefully fail too-wide rectangles -// 0.99 (2019-02-07) warning fixes -// 0.11 (2017-03-03) return packing success/fail result -// 0.10 (2016-10-25) remove cast-away-const to avoid warnings -// 0.09 (2016-08-27) fix compiler warnings -// 0.08 (2015-09-13) really fix bug with empty rects (w=0 or h=0) -// 0.07 (2015-09-13) fix bug with empty rects (w=0 or h=0) -// 0.06 (2015-04-15) added STBRP_SORT to allow replacing qsort -// 0.05: added STBRP_ASSERT to allow replacing assert -// 0.04: fixed minor bug in STBRP_LARGE_RECTS support -// 0.01: initial release -// -// LICENSE -// -// See end of file for license information. - -////////////////////////////////////////////////////////////////////////////// -// -// INCLUDE SECTION -// - -#ifndef STB_INCLUDE_STB_RECT_PACK_H -#define STB_INCLUDE_STB_RECT_PACK_H - -#define STB_RECT_PACK_VERSION 1 - -#ifdef STBRP_STATIC -#define STBRP_DEF static -#else -#define STBRP_DEF extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stbrp_context stbrp_context; -typedef struct stbrp_node stbrp_node; -typedef struct stbrp_rect stbrp_rect; - -#ifdef STBRP_LARGE_RECTS -typedef int stbrp_coord; -#else -typedef unsigned short stbrp_coord; -#endif - -STBRP_DEF int stbrp_pack_rects (stbrp_context *context, stbrp_rect *rects, int num_rects); -// Assign packed locations to rectangles. The rectangles are of type -// 'stbrp_rect' defined below, stored in the array 'rects', and there -// are 'num_rects' many of them. -// -// Rectangles which are successfully packed have the 'was_packed' flag -// set to a non-zero value and 'x' and 'y' store the minimum location -// on each axis (i.e. bottom-left in cartesian coordinates, top-left -// if you imagine y increasing downwards). Rectangles which do not fit -// have the 'was_packed' flag set to 0. -// -// You should not try to access the 'rects' array from another thread -// while this function is running, as the function temporarily reorders -// the array while it executes. -// -// To pack into another rectangle, you need to call stbrp_init_target -// again. To continue packing into the same rectangle, you can call -// this function again. Calling this multiple times with multiple rect -// arrays will probably produce worse packing results than calling it -// a single time with the full rectangle array, but the option is -// available. -// -// The function returns 1 if all of the rectangles were successfully -// packed and 0 otherwise. - -struct stbrp_rect -{ - // reserved for your use: - int id; - - // input: - stbrp_coord w, h; - - // output: - stbrp_coord x, y; - int was_packed; // non-zero if valid packing - -}; // 16 bytes, nominally - - -STBRP_DEF void stbrp_init_target (stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes); -// Initialize a rectangle packer to: -// pack a rectangle that is 'width' by 'height' in dimensions -// using temporary storage provided by the array 'nodes', which is 'num_nodes' long -// -// You must call this function every time you start packing into a new target. -// -// There is no "shutdown" function. The 'nodes' memory must stay valid for -// the following stbrp_pack_rects() call (or calls), but can be freed after -// the call (or calls) finish. -// -// Note: to guarantee best results, either: -// 1. make sure 'num_nodes' >= 'width' -// or 2. call stbrp_allow_out_of_mem() defined below with 'allow_out_of_mem = 1' -// -// If you don't do either of the above things, widths will be quantized to multiples -// of small integers to guarantee the algorithm doesn't run out of temporary storage. -// -// If you do #2, then the non-quantized algorithm will be used, but the algorithm -// may run out of temporary storage and be unable to pack some rectangles. - -STBRP_DEF void stbrp_setup_allow_out_of_mem (stbrp_context *context, int allow_out_of_mem); -// Optionally call this function after init but before doing any packing to -// change the handling of the out-of-temp-memory scenario, described above. -// If you call init again, this will be reset to the default (false). - - -STBRP_DEF void stbrp_setup_heuristic (stbrp_context *context, int heuristic); -// Optionally select which packing heuristic the library should use. Different -// heuristics will produce better/worse results for different data sets. -// If you call init again, this will be reset to the default. - -enum -{ - STBRP_HEURISTIC_Skyline_default=0, - STBRP_HEURISTIC_Skyline_BL_sortHeight = STBRP_HEURISTIC_Skyline_default, - STBRP_HEURISTIC_Skyline_BF_sortHeight -}; - - -////////////////////////////////////////////////////////////////////////////// -// -// the details of the following structures don't matter to you, but they must -// be visible so you can handle the memory allocations for them - -struct stbrp_node -{ - stbrp_coord x,y; - stbrp_node *next; -}; - -struct stbrp_context -{ - int width; - int height; - int align; - int init_mode; - int heuristic; - int num_nodes; - stbrp_node *active_head; - stbrp_node *free_head; - stbrp_node extra[2]; // we allocate two extra nodes so optimal user-node-count is 'width' not 'width+2' -}; - -#ifdef __cplusplus -} -#endif - -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// IMPLEMENTATION SECTION -// - -#ifdef STB_RECT_PACK_IMPLEMENTATION -#ifndef STBRP_SORT -#include -#define STBRP_SORT qsort -#endif - -#ifndef STBRP_ASSERT -#include -#define STBRP_ASSERT assert -#endif - -// [DEAR IMGUI] Added STBRP__CDECL -#ifdef _MSC_VER -#define STBRP__NOTUSED(v) (void)(v) -#define STBRP__CDECL __cdecl -#else -#define STBRP__NOTUSED(v) (void)sizeof(v) -#define STBRP__CDECL -#endif - -enum -{ - STBRP__INIT_skyline = 1 -}; - -STBRP_DEF void stbrp_setup_heuristic(stbrp_context *context, int heuristic) -{ - switch (context->init_mode) { - case STBRP__INIT_skyline: - STBRP_ASSERT(heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight || heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight); - context->heuristic = heuristic; - break; - default: - STBRP_ASSERT(0); - } -} - -STBRP_DEF void stbrp_setup_allow_out_of_mem(stbrp_context *context, int allow_out_of_mem) -{ - if (allow_out_of_mem) - // if it's ok to run out of memory, then don't bother aligning them; - // this gives better packing, but may fail due to OOM (even though - // the rectangles easily fit). @TODO a smarter approach would be to only - // quantize once we've hit OOM, then we could get rid of this parameter. - context->align = 1; - else { - // if it's not ok to run out of memory, then quantize the widths - // so that num_nodes is always enough nodes. - // - // I.e. num_nodes * align >= width - // align >= width / num_nodes - // align = ceil(width/num_nodes) - - context->align = (context->width + context->num_nodes-1) / context->num_nodes; - } -} - -STBRP_DEF void stbrp_init_target(stbrp_context *context, int width, int height, stbrp_node *nodes, int num_nodes) -{ - int i; -#ifndef STBRP_LARGE_RECTS - STBRP_ASSERT(width <= 0xffff && height <= 0xffff); -#endif - - for (i=0; i < num_nodes-1; ++i) - nodes[i].next = &nodes[i+1]; - nodes[i].next = NULL; - context->init_mode = STBRP__INIT_skyline; - context->heuristic = STBRP_HEURISTIC_Skyline_default; - context->free_head = &nodes[0]; - context->active_head = &context->extra[0]; - context->width = width; - context->height = height; - context->num_nodes = num_nodes; - stbrp_setup_allow_out_of_mem(context, 0); - - // node 0 is the full width, node 1 is the sentinel (lets us not store width explicitly) - context->extra[0].x = 0; - context->extra[0].y = 0; - context->extra[0].next = &context->extra[1]; - context->extra[1].x = (stbrp_coord) width; -#ifdef STBRP_LARGE_RECTS - context->extra[1].y = (1<<30); -#else - context->extra[1].y = 65535; -#endif - context->extra[1].next = NULL; -} - -// find minimum y position if it starts at x1 -static int stbrp__skyline_find_min_y(stbrp_context *c, stbrp_node *first, int x0, int width, int *pwaste) -{ - stbrp_node *node = first; - int x1 = x0 + width; - int min_y, visited_width, waste_area; - - STBRP__NOTUSED(c); - - STBRP_ASSERT(first->x <= x0); - - #if 0 - // skip in case we're past the node - while (node->next->x <= x0) - ++node; - #else - STBRP_ASSERT(node->next->x > x0); // we ended up handling this in the caller for efficiency - #endif - - STBRP_ASSERT(node->x <= x0); - - min_y = 0; - waste_area = 0; - visited_width = 0; - while (node->x < x1) { - if (node->y > min_y) { - // raise min_y higher. - // we've accounted for all waste up to min_y, - // but we'll now add more waste for everything we've visted - waste_area += visited_width * (node->y - min_y); - min_y = node->y; - // the first time through, visited_width might be reduced - if (node->x < x0) - visited_width += node->next->x - x0; - else - visited_width += node->next->x - node->x; - } else { - // add waste area - int under_width = node->next->x - node->x; - if (under_width + visited_width > width) - under_width = width - visited_width; - waste_area += under_width * (min_y - node->y); - visited_width += under_width; - } - node = node->next; - } - - *pwaste = waste_area; - return min_y; -} - -typedef struct -{ - int x,y; - stbrp_node **prev_link; -} stbrp__findresult; - -static stbrp__findresult stbrp__skyline_find_best_pos(stbrp_context *c, int width, int height) -{ - int best_waste = (1<<30), best_x, best_y = (1 << 30); - stbrp__findresult fr; - stbrp_node **prev, *node, *tail, **best = NULL; - - // align to multiple of c->align - width = (width + c->align - 1); - width -= width % c->align; - STBRP_ASSERT(width % c->align == 0); - - // if it can't possibly fit, bail immediately - if (width > c->width || height > c->height) { - fr.prev_link = NULL; - fr.x = fr.y = 0; - return fr; - } - - node = c->active_head; - prev = &c->active_head; - while (node->x + width <= c->width) { - int y,waste; - y = stbrp__skyline_find_min_y(c, node, node->x, width, &waste); - if (c->heuristic == STBRP_HEURISTIC_Skyline_BL_sortHeight) { // actually just want to test BL - // bottom left - if (y < best_y) { - best_y = y; - best = prev; - } - } else { - // best-fit - if (y + height <= c->height) { - // can only use it if it first vertically - if (y < best_y || (y == best_y && waste < best_waste)) { - best_y = y; - best_waste = waste; - best = prev; - } - } - } - prev = &node->next; - node = node->next; - } - - best_x = (best == NULL) ? 0 : (*best)->x; - - // if doing best-fit (BF), we also have to try aligning right edge to each node position - // - // e.g, if fitting - // - // ____________________ - // |____________________| - // - // into - // - // | | - // | ____________| - // |____________| - // - // then right-aligned reduces waste, but bottom-left BL is always chooses left-aligned - // - // This makes BF take about 2x the time - - if (c->heuristic == STBRP_HEURISTIC_Skyline_BF_sortHeight) { - tail = c->active_head; - node = c->active_head; - prev = &c->active_head; - // find first node that's admissible - while (tail->x < width) - tail = tail->next; - while (tail) { - int xpos = tail->x - width; - int y,waste; - STBRP_ASSERT(xpos >= 0); - // find the left position that matches this - while (node->next->x <= xpos) { - prev = &node->next; - node = node->next; - } - STBRP_ASSERT(node->next->x > xpos && node->x <= xpos); - y = stbrp__skyline_find_min_y(c, node, xpos, width, &waste); - if (y + height <= c->height) { - if (y <= best_y) { - if (y < best_y || waste < best_waste || (waste==best_waste && xpos < best_x)) { - best_x = xpos; - STBRP_ASSERT(y <= best_y); - best_y = y; - best_waste = waste; - best = prev; - } - } - } - tail = tail->next; - } - } - - fr.prev_link = best; - fr.x = best_x; - fr.y = best_y; - return fr; -} - -static stbrp__findresult stbrp__skyline_pack_rectangle(stbrp_context *context, int width, int height) -{ - // find best position according to heuristic - stbrp__findresult res = stbrp__skyline_find_best_pos(context, width, height); - stbrp_node *node, *cur; - - // bail if: - // 1. it failed - // 2. the best node doesn't fit (we don't always check this) - // 3. we're out of memory - if (res.prev_link == NULL || res.y + height > context->height || context->free_head == NULL) { - res.prev_link = NULL; - return res; - } - - // on success, create new node - node = context->free_head; - node->x = (stbrp_coord) res.x; - node->y = (stbrp_coord) (res.y + height); - - context->free_head = node->next; - - // insert the new node into the right starting point, and - // let 'cur' point to the remaining nodes needing to be - // stiched back in - - cur = *res.prev_link; - if (cur->x < res.x) { - // preserve the existing one, so start testing with the next one - stbrp_node *next = cur->next; - cur->next = node; - cur = next; - } else { - *res.prev_link = node; - } - - // from here, traverse cur and free the nodes, until we get to one - // that shouldn't be freed - while (cur->next && cur->next->x <= res.x + width) { - stbrp_node *next = cur->next; - // move the current node to the free list - cur->next = context->free_head; - context->free_head = cur; - cur = next; - } - - // stitch the list back in - node->next = cur; - - if (cur->x < res.x + width) - cur->x = (stbrp_coord) (res.x + width); - -#ifdef _DEBUG - cur = context->active_head; - while (cur->x < context->width) { - STBRP_ASSERT(cur->x < cur->next->x); - cur = cur->next; - } - STBRP_ASSERT(cur->next == NULL); - - { - int count=0; - cur = context->active_head; - while (cur) { - cur = cur->next; - ++count; - } - cur = context->free_head; - while (cur) { - cur = cur->next; - ++count; - } - STBRP_ASSERT(count == context->num_nodes+2); - } -#endif - - return res; -} - -// [DEAR IMGUI] Added STBRP__CDECL -static int STBRP__CDECL rect_height_compare(const void *a, const void *b) -{ - const stbrp_rect *p = (const stbrp_rect *) a; - const stbrp_rect *q = (const stbrp_rect *) b; - if (p->h > q->h) - return -1; - if (p->h < q->h) - return 1; - return (p->w > q->w) ? -1 : (p->w < q->w); -} - -// [DEAR IMGUI] Added STBRP__CDECL -static int STBRP__CDECL rect_original_order(const void *a, const void *b) -{ - const stbrp_rect *p = (const stbrp_rect *) a; - const stbrp_rect *q = (const stbrp_rect *) b; - return (p->was_packed < q->was_packed) ? -1 : (p->was_packed > q->was_packed); -} - -#ifdef STBRP_LARGE_RECTS -#define STBRP__MAXVAL 0xffffffff -#else -#define STBRP__MAXVAL 0xffff -#endif - -STBRP_DEF int stbrp_pack_rects(stbrp_context *context, stbrp_rect *rects, int num_rects) -{ - int i, all_rects_packed = 1; - - // we use the 'was_packed' field internally to allow sorting/unsorting - for (i=0; i < num_rects; ++i) { - rects[i].was_packed = i; - } - - // sort according to heuristic - STBRP_SORT(rects, num_rects, sizeof(rects[0]), rect_height_compare); - - for (i=0; i < num_rects; ++i) { - if (rects[i].w == 0 || rects[i].h == 0) { - rects[i].x = rects[i].y = 0; // empty rect needs no space - } else { - stbrp__findresult fr = stbrp__skyline_pack_rectangle(context, rects[i].w, rects[i].h); - if (fr.prev_link) { - rects[i].x = (stbrp_coord) fr.x; - rects[i].y = (stbrp_coord) fr.y; - } else { - rects[i].x = rects[i].y = STBRP__MAXVAL; - } - } - } - - // unsort - STBRP_SORT(rects, num_rects, sizeof(rects[0]), rect_original_order); - - // set was_packed flags and all_rects_packed status - for (i=0; i < num_rects; ++i) { - rects[i].was_packed = !(rects[i].x == STBRP__MAXVAL && rects[i].y == STBRP__MAXVAL); - if (!rects[i].was_packed) - all_rects_packed = 0; - } - - // return the all_rects_packed status - return all_rects_packed; -} -#endif - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_textedit.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_textedit.h deleted file mode 100644 index 2077d02a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_textedit.h +++ /dev/null @@ -1,1417 +0,0 @@ -// [DEAR IMGUI] -// This is a slightly modified version of stb_textedit.h 1.13. -// Those changes would need to be pushed into nothings/stb: -// - Fix in stb_textedit_discard_redo (see https://github.com/nothings/stb/issues/321) -// Grep for [DEAR IMGUI] to find the changes. - -// stb_textedit.h - v1.13 - public domain - Sean Barrett -// Development of this library was sponsored by RAD Game Tools -// -// This C header file implements the guts of a multi-line text-editing -// widget; you implement display, word-wrapping, and low-level string -// insertion/deletion, and stb_textedit will map user inputs into -// insertions & deletions, plus updates to the cursor position, -// selection state, and undo state. -// -// It is intended for use in games and other systems that need to build -// their own custom widgets and which do not have heavy text-editing -// requirements (this library is not recommended for use for editing large -// texts, as its performance does not scale and it has limited undo). -// -// Non-trivial behaviors are modelled after Windows text controls. -// -// -// LICENSE -// -// See end of file for license information. -// -// -// DEPENDENCIES -// -// Uses the C runtime function 'memmove', which you can override -// by defining STB_TEXTEDIT_memmove before the implementation. -// Uses no other functions. Performs no runtime allocations. -// -// -// VERSION HISTORY -// -// 1.13 (2019-02-07) fix bug in undo size management -// 1.12 (2018-01-29) user can change STB_TEXTEDIT_KEYTYPE, fix redo to avoid crash -// 1.11 (2017-03-03) fix HOME on last line, dragging off single-line textfield -// 1.10 (2016-10-25) supress warnings about casting away const with -Wcast-qual -// 1.9 (2016-08-27) customizable move-by-word -// 1.8 (2016-04-02) better keyboard handling when mouse button is down -// 1.7 (2015-09-13) change y range handling in case baseline is non-0 -// 1.6 (2015-04-15) allow STB_TEXTEDIT_memmove -// 1.5 (2014-09-10) add support for secondary keys for OS X -// 1.4 (2014-08-17) fix signed/unsigned warnings -// 1.3 (2014-06-19) fix mouse clicking to round to nearest char boundary -// 1.2 (2014-05-27) fix some RAD types that had crept into the new code -// 1.1 (2013-12-15) move-by-word (requires STB_TEXTEDIT_IS_SPACE ) -// 1.0 (2012-07-26) improve documentation, initial public release -// 0.3 (2012-02-24) bugfixes, single-line mode; insert mode -// 0.2 (2011-11-28) fixes to undo/redo -// 0.1 (2010-07-08) initial version -// -// ADDITIONAL CONTRIBUTORS -// -// Ulf Winklemann: move-by-word in 1.1 -// Fabian Giesen: secondary key inputs in 1.5 -// Martins Mozeiko: STB_TEXTEDIT_memmove in 1.6 -// -// Bugfixes: -// Scott Graham -// Daniel Keller -// Omar Cornut -// Dan Thompson -// -// USAGE -// -// This file behaves differently depending on what symbols you define -// before including it. -// -// -// Header-file mode: -// -// If you do not define STB_TEXTEDIT_IMPLEMENTATION before including this, -// it will operate in "header file" mode. In this mode, it declares a -// single public symbol, STB_TexteditState, which encapsulates the current -// state of a text widget (except for the string, which you will store -// separately). -// -// To compile in this mode, you must define STB_TEXTEDIT_CHARTYPE to a -// primitive type that defines a single character (e.g. char, wchar_t, etc). -// -// To save space or increase undo-ability, you can optionally define the -// following things that are used by the undo system: -// -// STB_TEXTEDIT_POSITIONTYPE small int type encoding a valid cursor position -// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow -// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer -// -// If you don't define these, they are set to permissive types and -// moderate sizes. The undo system does no memory allocations, so -// it grows STB_TexteditState by the worst-case storage which is (in bytes): -// -// [4 + 3 * sizeof(STB_TEXTEDIT_POSITIONTYPE)] * STB_TEXTEDIT_UNDOSTATE_COUNT -// + sizeof(STB_TEXTEDIT_CHARTYPE) * STB_TEXTEDIT_UNDOCHAR_COUNT -// -// -// Implementation mode: -// -// If you define STB_TEXTEDIT_IMPLEMENTATION before including this, it -// will compile the implementation of the text edit widget, depending -// on a large number of symbols which must be defined before the include. -// -// The implementation is defined only as static functions. You will then -// need to provide your own APIs in the same file which will access the -// static functions. -// -// The basic concept is that you provide a "string" object which -// behaves like an array of characters. stb_textedit uses indices to -// refer to positions in the string, implicitly representing positions -// in the displayed textedit. This is true for both plain text and -// rich text; even with rich text stb_truetype interacts with your -// code as if there was an array of all the displayed characters. -// -// Symbols that must be the same in header-file and implementation mode: -// -// STB_TEXTEDIT_CHARTYPE the character type -// STB_TEXTEDIT_POSITIONTYPE small type that is a valid cursor position -// STB_TEXTEDIT_UNDOSTATECOUNT the number of undo states to allow -// STB_TEXTEDIT_UNDOCHARCOUNT the number of characters to store in the undo buffer -// -// Symbols you must define for implementation mode: -// -// STB_TEXTEDIT_STRING the type of object representing a string being edited, -// typically this is a wrapper object with other data you need -// -// STB_TEXTEDIT_STRINGLEN(obj) the length of the string (ideally O(1)) -// STB_TEXTEDIT_LAYOUTROW(&r,obj,n) returns the results of laying out a line of characters -// starting from character #n (see discussion below) -// STB_TEXTEDIT_GETWIDTH(obj,n,i) returns the pixel delta from the xpos of the i'th character -// to the xpos of the i+1'th char for a line of characters -// starting at character #n (i.e. accounts for kerning -// with previous char) -// STB_TEXTEDIT_KEYTOTEXT(k) maps a keyboard input to an insertable character -// (return type is int, -1 means not valid to insert) -// STB_TEXTEDIT_GETCHAR(obj,i) returns the i'th character of obj, 0-based -// STB_TEXTEDIT_NEWLINE the character returned by _GETCHAR() we recognize -// as manually wordwrapping for end-of-line positioning -// -// STB_TEXTEDIT_DELETECHARS(obj,i,n) delete n characters starting at i -// STB_TEXTEDIT_INSERTCHARS(obj,i,c*,n) insert n characters at i (pointed to by STB_TEXTEDIT_CHARTYPE*) -// -// STB_TEXTEDIT_K_SHIFT a power of two that is or'd in to a keyboard input to represent the shift key -// -// STB_TEXTEDIT_K_LEFT keyboard input to move cursor left -// STB_TEXTEDIT_K_RIGHT keyboard input to move cursor right -// STB_TEXTEDIT_K_UP keyboard input to move cursor up -// STB_TEXTEDIT_K_DOWN keyboard input to move cursor down -// STB_TEXTEDIT_K_LINESTART keyboard input to move cursor to start of line // e.g. HOME -// STB_TEXTEDIT_K_LINEEND keyboard input to move cursor to end of line // e.g. END -// STB_TEXTEDIT_K_TEXTSTART keyboard input to move cursor to start of text // e.g. ctrl-HOME -// STB_TEXTEDIT_K_TEXTEND keyboard input to move cursor to end of text // e.g. ctrl-END -// STB_TEXTEDIT_K_DELETE keyboard input to delete selection or character under cursor -// STB_TEXTEDIT_K_BACKSPACE keyboard input to delete selection or character left of cursor -// STB_TEXTEDIT_K_UNDO keyboard input to perform undo -// STB_TEXTEDIT_K_REDO keyboard input to perform redo -// -// Optional: -// STB_TEXTEDIT_K_INSERT keyboard input to toggle insert mode -// STB_TEXTEDIT_IS_SPACE(ch) true if character is whitespace (e.g. 'isspace'), -// required for default WORDLEFT/WORDRIGHT handlers -// STB_TEXTEDIT_MOVEWORDLEFT(obj,i) custom handler for WORDLEFT, returns index to move cursor to -// STB_TEXTEDIT_MOVEWORDRIGHT(obj,i) custom handler for WORDRIGHT, returns index to move cursor to -// STB_TEXTEDIT_K_WORDLEFT keyboard input to move cursor left one word // e.g. ctrl-LEFT -// STB_TEXTEDIT_K_WORDRIGHT keyboard input to move cursor right one word // e.g. ctrl-RIGHT -// STB_TEXTEDIT_K_LINESTART2 secondary keyboard input to move cursor to start of line -// STB_TEXTEDIT_K_LINEEND2 secondary keyboard input to move cursor to end of line -// STB_TEXTEDIT_K_TEXTSTART2 secondary keyboard input to move cursor to start of text -// STB_TEXTEDIT_K_TEXTEND2 secondary keyboard input to move cursor to end of text -// -// Todo: -// STB_TEXTEDIT_K_PGUP keyboard input to move cursor up a page -// STB_TEXTEDIT_K_PGDOWN keyboard input to move cursor down a page -// -// Keyboard input must be encoded as a single integer value; e.g. a character code -// and some bitflags that represent shift states. to simplify the interface, SHIFT must -// be a bitflag, so we can test the shifted state of cursor movements to allow selection, -// i.e. (STB_TEXTED_K_RIGHT|STB_TEXTEDIT_K_SHIFT) should be shifted right-arrow. -// -// You can encode other things, such as CONTROL or ALT, in additional bits, and -// then test for their presence in e.g. STB_TEXTEDIT_K_WORDLEFT. For example, -// my Windows implementations add an additional CONTROL bit, and an additional KEYDOWN -// bit. Then all of the STB_TEXTEDIT_K_ values bitwise-or in the KEYDOWN bit, -// and I pass both WM_KEYDOWN and WM_CHAR events to the "key" function in the -// API below. The control keys will only match WM_KEYDOWN events because of the -// keydown bit I add, and STB_TEXTEDIT_KEYTOTEXT only tests for the KEYDOWN -// bit so it only decodes WM_CHAR events. -// -// STB_TEXTEDIT_LAYOUTROW returns information about the shape of one displayed -// row of characters assuming they start on the i'th character--the width and -// the height and the number of characters consumed. This allows this library -// to traverse the entire layout incrementally. You need to compute word-wrapping -// here. -// -// Each textfield keeps its own insert mode state, which is not how normal -// applications work. To keep an app-wide insert mode, update/copy the -// "insert_mode" field of STB_TexteditState before/after calling API functions. -// -// API -// -// void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) -// -// void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -// void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -// int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -// int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE *text, int len) -// void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXEDIT_KEYTYPE key) -// -// Each of these functions potentially updates the string and updates the -// state. -// -// initialize_state: -// set the textedit state to a known good default state when initially -// constructing the textedit. -// -// click: -// call this with the mouse x,y on a mouse down; it will update the cursor -// and reset the selection start/end to the cursor point. the x,y must -// be relative to the text widget, with (0,0) being the top left. -// -// drag: -// call this with the mouse x,y on a mouse drag/up; it will update the -// cursor and the selection end point -// -// cut: -// call this to delete the current selection; returns true if there was -// one. you should FIRST copy the current selection to the system paste buffer. -// (To copy, just copy the current selection out of the string yourself.) -// -// paste: -// call this to paste text at the current cursor point or over the current -// selection if there is one. -// -// key: -// call this for keyboard inputs sent to the textfield. you can use it -// for "key down" events or for "translated" key events. if you need to -// do both (as in Win32), or distinguish Unicode characters from control -// inputs, set a high bit to distinguish the two; then you can define the -// various definitions like STB_TEXTEDIT_K_LEFT have the is-key-event bit -// set, and make STB_TEXTEDIT_KEYTOCHAR check that the is-key-event bit is -// clear. STB_TEXTEDIT_KEYTYPE defaults to int, but you can #define it to -// anything other type you wante before including. -// -// -// When rendering, you can read the cursor position and selection state from -// the STB_TexteditState. -// -// -// Notes: -// -// This is designed to be usable in IMGUI, so it allows for the possibility of -// running in an IMGUI that has NOT cached the multi-line layout. For this -// reason, it provides an interface that is compatible with computing the -// layout incrementally--we try to make sure we make as few passes through -// as possible. (For example, to locate the mouse pointer in the text, we -// could define functions that return the X and Y positions of characters -// and binary search Y and then X, but if we're doing dynamic layout this -// will run the layout algorithm many times, so instead we manually search -// forward in one pass. Similar logic applies to e.g. up-arrow and -// down-arrow movement.) -// -// If it's run in a widget that *has* cached the layout, then this is less -// efficient, but it's not horrible on modern computers. But you wouldn't -// want to edit million-line files with it. - - -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//// -//// Header-file mode -//// -//// - -#ifndef INCLUDE_STB_TEXTEDIT_H -#define INCLUDE_STB_TEXTEDIT_H - -//////////////////////////////////////////////////////////////////////// -// -// STB_TexteditState -// -// Definition of STB_TexteditState which you should store -// per-textfield; it includes cursor position, selection state, -// and undo state. -// - -#ifndef STB_TEXTEDIT_UNDOSTATECOUNT -#define STB_TEXTEDIT_UNDOSTATECOUNT 99 -#endif -#ifndef STB_TEXTEDIT_UNDOCHARCOUNT -#define STB_TEXTEDIT_UNDOCHARCOUNT 999 -#endif -#ifndef STB_TEXTEDIT_CHARTYPE -#define STB_TEXTEDIT_CHARTYPE int -#endif -#ifndef STB_TEXTEDIT_POSITIONTYPE -#define STB_TEXTEDIT_POSITIONTYPE int -#endif - -typedef struct -{ - // private data - STB_TEXTEDIT_POSITIONTYPE where; - STB_TEXTEDIT_POSITIONTYPE insert_length; - STB_TEXTEDIT_POSITIONTYPE delete_length; - int char_storage; -} StbUndoRecord; - -typedef struct -{ - // private data - StbUndoRecord undo_rec [STB_TEXTEDIT_UNDOSTATECOUNT]; - STB_TEXTEDIT_CHARTYPE undo_char[STB_TEXTEDIT_UNDOCHARCOUNT]; - short undo_point, redo_point; - int undo_char_point, redo_char_point; -} StbUndoState; - -typedef struct -{ - ///////////////////// - // - // public data - // - - int cursor; - // position of the text cursor within the string - - int select_start; // selection start point - int select_end; - // selection start and end point in characters; if equal, no selection. - // note that start may be less than or greater than end (e.g. when - // dragging the mouse, start is where the initial click was, and you - // can drag in either direction) - - unsigned char insert_mode; - // each textfield keeps its own insert mode state. to keep an app-wide - // insert mode, copy this value in/out of the app state - - ///////////////////// - // - // private data - // - unsigned char cursor_at_end_of_line; // not implemented yet - unsigned char initialized; - unsigned char has_preferred_x; - unsigned char single_line; - unsigned char padding1, padding2, padding3; - float preferred_x; // this determines where the cursor up/down tries to seek to along x - StbUndoState undostate; -} STB_TexteditState; - - -//////////////////////////////////////////////////////////////////////// -// -// StbTexteditRow -// -// Result of layout query, used by stb_textedit to determine where -// the text in each row is. - -// result of layout query -typedef struct -{ - float x0,x1; // starting x location, end x location (allows for align=right, etc) - float baseline_y_delta; // position of baseline relative to previous row's baseline - float ymin,ymax; // height of row above and below baseline - int num_chars; -} StbTexteditRow; -#endif //INCLUDE_STB_TEXTEDIT_H - - -//////////////////////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////////// -//// -//// Implementation mode -//// -//// - - -// implementation isn't include-guarded, since it might have indirectly -// included just the "header" portion -#ifdef STB_TEXTEDIT_IMPLEMENTATION - -#ifndef STB_TEXTEDIT_memmove -#include -#define STB_TEXTEDIT_memmove memmove -#endif - - -///////////////////////////////////////////////////////////////////////////// -// -// Mouse input handling -// - -// traverse the layout to locate the nearest character to a display position -static int stb_text_locate_coord(STB_TEXTEDIT_STRING *str, float x, float y) -{ - StbTexteditRow r; - int n = STB_TEXTEDIT_STRINGLEN(str); - float base_y = 0, prev_x; - int i=0, k; - - r.x0 = r.x1 = 0; - r.ymin = r.ymax = 0; - r.num_chars = 0; - - // search rows to find one that straddles 'y' - while (i < n) { - STB_TEXTEDIT_LAYOUTROW(&r, str, i); - if (r.num_chars <= 0) - return n; - - if (i==0 && y < base_y + r.ymin) - return 0; - - if (y < base_y + r.ymax) - break; - - i += r.num_chars; - base_y += r.baseline_y_delta; - } - - // below all text, return 'after' last character - if (i >= n) - return n; - - // check if it's before the beginning of the line - if (x < r.x0) - return i; - - // check if it's before the end of the line - if (x < r.x1) { - // search characters in row for one that straddles 'x' - prev_x = r.x0; - for (k=0; k < r.num_chars; ++k) { - float w = STB_TEXTEDIT_GETWIDTH(str, i, k); - if (x < prev_x+w) { - if (x < prev_x+w/2) - return k+i; - else - return k+i+1; - } - prev_x += w; - } - // shouldn't happen, but if it does, fall through to end-of-line case - } - - // if the last character is a newline, return that. otherwise return 'after' the last character - if (STB_TEXTEDIT_GETCHAR(str, i+r.num_chars-1) == STB_TEXTEDIT_NEWLINE) - return i+r.num_chars-1; - else - return i+r.num_chars; -} - -// API click: on mouse down, move the cursor to the clicked location, and reset the selection -static void stb_textedit_click(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -{ - // In single-line mode, just always make y = 0. This lets the drag keep working if the mouse - // goes off the top or bottom of the text - if( state->single_line ) - { - StbTexteditRow r; - STB_TEXTEDIT_LAYOUTROW(&r, str, 0); - y = r.ymin; - } - - state->cursor = stb_text_locate_coord(str, x, y); - state->select_start = state->cursor; - state->select_end = state->cursor; - state->has_preferred_x = 0; -} - -// API drag: on mouse drag, move the cursor and selection endpoint to the clicked location -static void stb_textedit_drag(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, float x, float y) -{ - int p = 0; - - // In single-line mode, just always make y = 0. This lets the drag keep working if the mouse - // goes off the top or bottom of the text - if( state->single_line ) - { - StbTexteditRow r; - STB_TEXTEDIT_LAYOUTROW(&r, str, 0); - y = r.ymin; - } - - if (state->select_start == state->select_end) - state->select_start = state->cursor; - - p = stb_text_locate_coord(str, x, y); - state->cursor = state->select_end = p; -} - -///////////////////////////////////////////////////////////////////////////// -// -// Keyboard input handling -// - -// forward declarations -static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); -static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state); -static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length); -static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length); -static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length); - -typedef struct -{ - float x,y; // position of n'th character - float height; // height of line - int first_char, length; // first char of row, and length - int prev_first; // first char of previous row -} StbFindState; - -// find the x/y location of a character, and remember info about the previous row in -// case we get a move-up event (for page up, we'll have to rescan) -static void stb_textedit_find_charpos(StbFindState *find, STB_TEXTEDIT_STRING *str, int n, int single_line) -{ - StbTexteditRow r; - int prev_start = 0; - int z = STB_TEXTEDIT_STRINGLEN(str); - int i=0, first; - - if (n == z) { - // if it's at the end, then find the last line -- simpler than trying to - // explicitly handle this case in the regular code - if (single_line) { - STB_TEXTEDIT_LAYOUTROW(&r, str, 0); - find->y = 0; - find->first_char = 0; - find->length = z; - find->height = r.ymax - r.ymin; - find->x = r.x1; - } else { - find->y = 0; - find->x = 0; - find->height = 1; - while (i < z) { - STB_TEXTEDIT_LAYOUTROW(&r, str, i); - prev_start = i; - i += r.num_chars; - } - find->first_char = i; - find->length = 0; - find->prev_first = prev_start; - } - return; - } - - // search rows to find the one that straddles character n - find->y = 0; - - for(;;) { - STB_TEXTEDIT_LAYOUTROW(&r, str, i); - if (n < i + r.num_chars) - break; - prev_start = i; - i += r.num_chars; - find->y += r.baseline_y_delta; - } - - find->first_char = first = i; - find->length = r.num_chars; - find->height = r.ymax - r.ymin; - find->prev_first = prev_start; - - // now scan to find xpos - find->x = r.x0; - for (i=0; first+i < n; ++i) - find->x += STB_TEXTEDIT_GETWIDTH(str, first, i); -} - -#define STB_TEXT_HAS_SELECTION(s) ((s)->select_start != (s)->select_end) - -// make the selection/cursor state valid if client altered the string -static void stb_textedit_clamp(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - int n = STB_TEXTEDIT_STRINGLEN(str); - if (STB_TEXT_HAS_SELECTION(state)) { - if (state->select_start > n) state->select_start = n; - if (state->select_end > n) state->select_end = n; - // if clamping forced them to be equal, move the cursor to match - if (state->select_start == state->select_end) - state->cursor = state->select_start; - } - if (state->cursor > n) state->cursor = n; -} - -// delete characters while updating undo -static void stb_textedit_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int len) -{ - stb_text_makeundo_delete(str, state, where, len); - STB_TEXTEDIT_DELETECHARS(str, where, len); - state->has_preferred_x = 0; -} - -// delete the section -static void stb_textedit_delete_selection(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - stb_textedit_clamp(str, state); - if (STB_TEXT_HAS_SELECTION(state)) { - if (state->select_start < state->select_end) { - stb_textedit_delete(str, state, state->select_start, state->select_end - state->select_start); - state->select_end = state->cursor = state->select_start; - } else { - stb_textedit_delete(str, state, state->select_end, state->select_start - state->select_end); - state->select_start = state->cursor = state->select_end; - } - state->has_preferred_x = 0; - } -} - -// canoncialize the selection so start <= end -static void stb_textedit_sortselection(STB_TexteditState *state) -{ - if (state->select_end < state->select_start) { - int temp = state->select_end; - state->select_end = state->select_start; - state->select_start = temp; - } -} - -// move cursor to first character of selection -static void stb_textedit_move_to_first(STB_TexteditState *state) -{ - if (STB_TEXT_HAS_SELECTION(state)) { - stb_textedit_sortselection(state); - state->cursor = state->select_start; - state->select_end = state->select_start; - state->has_preferred_x = 0; - } -} - -// move cursor to last character of selection -static void stb_textedit_move_to_last(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - if (STB_TEXT_HAS_SELECTION(state)) { - stb_textedit_sortselection(state); - stb_textedit_clamp(str, state); - state->cursor = state->select_end; - state->select_start = state->select_end; - state->has_preferred_x = 0; - } -} - -#ifdef STB_TEXTEDIT_IS_SPACE -static int is_word_boundary( STB_TEXTEDIT_STRING *str, int idx ) -{ - return idx > 0 ? (STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(str,idx-1) ) && !STB_TEXTEDIT_IS_SPACE( STB_TEXTEDIT_GETCHAR(str, idx) ) ) : 1; -} - -#ifndef STB_TEXTEDIT_MOVEWORDLEFT -static int stb_textedit_move_to_word_previous( STB_TEXTEDIT_STRING *str, int c ) -{ - --c; // always move at least one character - while( c >= 0 && !is_word_boundary( str, c ) ) - --c; - - if( c < 0 ) - c = 0; - - return c; -} -#define STB_TEXTEDIT_MOVEWORDLEFT stb_textedit_move_to_word_previous -#endif - -#ifndef STB_TEXTEDIT_MOVEWORDRIGHT -static int stb_textedit_move_to_word_next( STB_TEXTEDIT_STRING *str, int c ) -{ - const int len = STB_TEXTEDIT_STRINGLEN(str); - ++c; // always move at least one character - while( c < len && !is_word_boundary( str, c ) ) - ++c; - - if( c > len ) - c = len; - - return c; -} -#define STB_TEXTEDIT_MOVEWORDRIGHT stb_textedit_move_to_word_next -#endif - -#endif - -// update selection and cursor to match each other -static void stb_textedit_prep_selection_at_cursor(STB_TexteditState *state) -{ - if (!STB_TEXT_HAS_SELECTION(state)) - state->select_start = state->select_end = state->cursor; - else - state->cursor = state->select_end; -} - -// API cut: delete selection -static int stb_textedit_cut(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - if (STB_TEXT_HAS_SELECTION(state)) { - stb_textedit_delete_selection(str,state); // implicitly clamps - state->has_preferred_x = 0; - return 1; - } - return 0; -} - -// API paste: replace existing selection with passed-in text -static int stb_textedit_paste_internal(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE *text, int len) -{ - // if there's a selection, the paste should delete it - stb_textedit_clamp(str, state); - stb_textedit_delete_selection(str,state); - // try to insert the characters - if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, text, len)) { - stb_text_makeundo_insert(state, state->cursor, len); - state->cursor += len; - state->has_preferred_x = 0; - return 1; - } - // remove the undo since we didn't actually insert the characters - if (state->undostate.undo_point) - --state->undostate.undo_point; - return 0; -} - -#ifndef STB_TEXTEDIT_KEYTYPE -#define STB_TEXTEDIT_KEYTYPE int -#endif - -// API key: process a keyboard input -static void stb_textedit_key(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_KEYTYPE key) -{ -retry: - switch (key) { - default: { - int c = STB_TEXTEDIT_KEYTOTEXT(key); - if (c > 0) { - STB_TEXTEDIT_CHARTYPE ch = (STB_TEXTEDIT_CHARTYPE) c; - - // can't add newline in single-line mode - if (c == '\n' && state->single_line) - break; - - if (state->insert_mode && !STB_TEXT_HAS_SELECTION(state) && state->cursor < STB_TEXTEDIT_STRINGLEN(str)) { - stb_text_makeundo_replace(str, state, state->cursor, 1, 1); - STB_TEXTEDIT_DELETECHARS(str, state->cursor, 1); - if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { - ++state->cursor; - state->has_preferred_x = 0; - } - } else { - stb_textedit_delete_selection(str,state); // implicitly clamps - if (STB_TEXTEDIT_INSERTCHARS(str, state->cursor, &ch, 1)) { - stb_text_makeundo_insert(state, state->cursor, 1); - ++state->cursor; - state->has_preferred_x = 0; - } - } - } - break; - } - -#ifdef STB_TEXTEDIT_K_INSERT - case STB_TEXTEDIT_K_INSERT: - state->insert_mode = !state->insert_mode; - break; -#endif - - case STB_TEXTEDIT_K_UNDO: - stb_text_undo(str, state); - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_REDO: - stb_text_redo(str, state); - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_LEFT: - // if currently there's a selection, move cursor to start of selection - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_first(state); - else - if (state->cursor > 0) - --state->cursor; - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_RIGHT: - // if currently there's a selection, move cursor to end of selection - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_last(str, state); - else - ++state->cursor; - stb_textedit_clamp(str, state); - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_LEFT | STB_TEXTEDIT_K_SHIFT: - stb_textedit_clamp(str, state); - stb_textedit_prep_selection_at_cursor(state); - // move selection left - if (state->select_end > 0) - --state->select_end; - state->cursor = state->select_end; - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_MOVEWORDLEFT - case STB_TEXTEDIT_K_WORDLEFT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_first(state); - else { - state->cursor = STB_TEXTEDIT_MOVEWORDLEFT(str, state->cursor); - stb_textedit_clamp( str, state ); - } - break; - - case STB_TEXTEDIT_K_WORDLEFT | STB_TEXTEDIT_K_SHIFT: - if( !STB_TEXT_HAS_SELECTION( state ) ) - stb_textedit_prep_selection_at_cursor(state); - - state->cursor = STB_TEXTEDIT_MOVEWORDLEFT(str, state->cursor); - state->select_end = state->cursor; - - stb_textedit_clamp( str, state ); - break; -#endif - -#ifdef STB_TEXTEDIT_MOVEWORDRIGHT - case STB_TEXTEDIT_K_WORDRIGHT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_last(str, state); - else { - state->cursor = STB_TEXTEDIT_MOVEWORDRIGHT(str, state->cursor); - stb_textedit_clamp( str, state ); - } - break; - - case STB_TEXTEDIT_K_WORDRIGHT | STB_TEXTEDIT_K_SHIFT: - if( !STB_TEXT_HAS_SELECTION( state ) ) - stb_textedit_prep_selection_at_cursor(state); - - state->cursor = STB_TEXTEDIT_MOVEWORDRIGHT(str, state->cursor); - state->select_end = state->cursor; - - stb_textedit_clamp( str, state ); - break; -#endif - - case STB_TEXTEDIT_K_RIGHT | STB_TEXTEDIT_K_SHIFT: - stb_textedit_prep_selection_at_cursor(state); - // move selection right - ++state->select_end; - stb_textedit_clamp(str, state); - state->cursor = state->select_end; - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_DOWN: - case STB_TEXTEDIT_K_DOWN | STB_TEXTEDIT_K_SHIFT: { - StbFindState find; - StbTexteditRow row; - int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; - - if (state->single_line) { - // on windows, up&down in single-line behave like left&right - key = STB_TEXTEDIT_K_RIGHT | (key & STB_TEXTEDIT_K_SHIFT); - goto retry; - } - - if (sel) - stb_textedit_prep_selection_at_cursor(state); - else if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_last(str,state); - - // compute current position of cursor point - stb_textedit_clamp(str, state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - - // now find character position down a row - if (find.length) { - float goal_x = state->has_preferred_x ? state->preferred_x : find.x; - float x; - int start = find.first_char + find.length; - state->cursor = start; - STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); - x = row.x0; - for (i=0; i < row.num_chars; ++i) { - float dx = STB_TEXTEDIT_GETWIDTH(str, start, i); - #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE - if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) - break; - #endif - x += dx; - if (x > goal_x) - break; - ++state->cursor; - } - stb_textedit_clamp(str, state); - - state->has_preferred_x = 1; - state->preferred_x = goal_x; - - if (sel) - state->select_end = state->cursor; - } - break; - } - - case STB_TEXTEDIT_K_UP: - case STB_TEXTEDIT_K_UP | STB_TEXTEDIT_K_SHIFT: { - StbFindState find; - StbTexteditRow row; - int i, sel = (key & STB_TEXTEDIT_K_SHIFT) != 0; - - if (state->single_line) { - // on windows, up&down become left&right - key = STB_TEXTEDIT_K_LEFT | (key & STB_TEXTEDIT_K_SHIFT); - goto retry; - } - - if (sel) - stb_textedit_prep_selection_at_cursor(state); - else if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_move_to_first(state); - - // compute current position of cursor point - stb_textedit_clamp(str, state); - stb_textedit_find_charpos(&find, str, state->cursor, state->single_line); - - // can only go up if there's a previous row - if (find.prev_first != find.first_char) { - // now find character position up a row - float goal_x = state->has_preferred_x ? state->preferred_x : find.x; - float x; - state->cursor = find.prev_first; - STB_TEXTEDIT_LAYOUTROW(&row, str, state->cursor); - x = row.x0; - for (i=0; i < row.num_chars; ++i) { - float dx = STB_TEXTEDIT_GETWIDTH(str, find.prev_first, i); - #ifdef STB_TEXTEDIT_GETWIDTH_NEWLINE - if (dx == STB_TEXTEDIT_GETWIDTH_NEWLINE) - break; - #endif - x += dx; - if (x > goal_x) - break; - ++state->cursor; - } - stb_textedit_clamp(str, state); - - state->has_preferred_x = 1; - state->preferred_x = goal_x; - - if (sel) - state->select_end = state->cursor; - } - break; - } - - case STB_TEXTEDIT_K_DELETE: - case STB_TEXTEDIT_K_DELETE | STB_TEXTEDIT_K_SHIFT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_delete_selection(str, state); - else { - int n = STB_TEXTEDIT_STRINGLEN(str); - if (state->cursor < n) - stb_textedit_delete(str, state, state->cursor, 1); - } - state->has_preferred_x = 0; - break; - - case STB_TEXTEDIT_K_BACKSPACE: - case STB_TEXTEDIT_K_BACKSPACE | STB_TEXTEDIT_K_SHIFT: - if (STB_TEXT_HAS_SELECTION(state)) - stb_textedit_delete_selection(str, state); - else { - stb_textedit_clamp(str, state); - if (state->cursor > 0) { - stb_textedit_delete(str, state, state->cursor-1, 1); - --state->cursor; - } - } - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_K_TEXTSTART2 - case STB_TEXTEDIT_K_TEXTSTART2: -#endif - case STB_TEXTEDIT_K_TEXTSTART: - state->cursor = state->select_start = state->select_end = 0; - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_K_TEXTEND2 - case STB_TEXTEDIT_K_TEXTEND2: -#endif - case STB_TEXTEDIT_K_TEXTEND: - state->cursor = STB_TEXTEDIT_STRINGLEN(str); - state->select_start = state->select_end = 0; - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_K_TEXTSTART2 - case STB_TEXTEDIT_K_TEXTSTART2 | STB_TEXTEDIT_K_SHIFT: -#endif - case STB_TEXTEDIT_K_TEXTSTART | STB_TEXTEDIT_K_SHIFT: - stb_textedit_prep_selection_at_cursor(state); - state->cursor = state->select_end = 0; - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_K_TEXTEND2 - case STB_TEXTEDIT_K_TEXTEND2 | STB_TEXTEDIT_K_SHIFT: -#endif - case STB_TEXTEDIT_K_TEXTEND | STB_TEXTEDIT_K_SHIFT: - stb_textedit_prep_selection_at_cursor(state); - state->cursor = state->select_end = STB_TEXTEDIT_STRINGLEN(str); - state->has_preferred_x = 0; - break; - - -#ifdef STB_TEXTEDIT_K_LINESTART2 - case STB_TEXTEDIT_K_LINESTART2: -#endif - case STB_TEXTEDIT_K_LINESTART: - stb_textedit_clamp(str, state); - stb_textedit_move_to_first(state); - if (state->single_line) - state->cursor = 0; - else while (state->cursor > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) != STB_TEXTEDIT_NEWLINE) - --state->cursor; - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_K_LINEEND2 - case STB_TEXTEDIT_K_LINEEND2: -#endif - case STB_TEXTEDIT_K_LINEEND: { - int n = STB_TEXTEDIT_STRINGLEN(str); - stb_textedit_clamp(str, state); - stb_textedit_move_to_first(state); - if (state->single_line) - state->cursor = n; - else while (state->cursor < n && STB_TEXTEDIT_GETCHAR(str, state->cursor) != STB_TEXTEDIT_NEWLINE) - ++state->cursor; - state->has_preferred_x = 0; - break; - } - -#ifdef STB_TEXTEDIT_K_LINESTART2 - case STB_TEXTEDIT_K_LINESTART2 | STB_TEXTEDIT_K_SHIFT: -#endif - case STB_TEXTEDIT_K_LINESTART | STB_TEXTEDIT_K_SHIFT: - stb_textedit_clamp(str, state); - stb_textedit_prep_selection_at_cursor(state); - if (state->single_line) - state->cursor = 0; - else while (state->cursor > 0 && STB_TEXTEDIT_GETCHAR(str, state->cursor-1) != STB_TEXTEDIT_NEWLINE) - --state->cursor; - state->select_end = state->cursor; - state->has_preferred_x = 0; - break; - -#ifdef STB_TEXTEDIT_K_LINEEND2 - case STB_TEXTEDIT_K_LINEEND2 | STB_TEXTEDIT_K_SHIFT: -#endif - case STB_TEXTEDIT_K_LINEEND | STB_TEXTEDIT_K_SHIFT: { - int n = STB_TEXTEDIT_STRINGLEN(str); - stb_textedit_clamp(str, state); - stb_textedit_prep_selection_at_cursor(state); - if (state->single_line) - state->cursor = n; - else while (state->cursor < n && STB_TEXTEDIT_GETCHAR(str, state->cursor) != STB_TEXTEDIT_NEWLINE) - ++state->cursor; - state->select_end = state->cursor; - state->has_preferred_x = 0; - break; - } - -// @TODO: -// STB_TEXTEDIT_K_PGUP - move cursor up a page -// STB_TEXTEDIT_K_PGDOWN - move cursor down a page - } -} - -///////////////////////////////////////////////////////////////////////////// -// -// Undo processing -// -// @OPTIMIZE: the undo/redo buffer should be circular - -static void stb_textedit_flush_redo(StbUndoState *state) -{ - state->redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; - state->redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; -} - -// discard the oldest entry in the undo list -static void stb_textedit_discard_undo(StbUndoState *state) -{ - if (state->undo_point > 0) { - // if the 0th undo state has characters, clean those up - if (state->undo_rec[0].char_storage >= 0) { - int n = state->undo_rec[0].insert_length, i; - // delete n characters from all other records - state->undo_char_point -= n; - STB_TEXTEDIT_memmove(state->undo_char, state->undo_char + n, (size_t) (state->undo_char_point*sizeof(STB_TEXTEDIT_CHARTYPE))); - for (i=0; i < state->undo_point; ++i) - if (state->undo_rec[i].char_storage >= 0) - state->undo_rec[i].char_storage -= n; // @OPTIMIZE: get rid of char_storage and infer it - } - --state->undo_point; - STB_TEXTEDIT_memmove(state->undo_rec, state->undo_rec+1, (size_t) (state->undo_point*sizeof(state->undo_rec[0]))); - } -} - -// discard the oldest entry in the redo list--it's bad if this -// ever happens, but because undo & redo have to store the actual -// characters in different cases, the redo character buffer can -// fill up even though the undo buffer didn't -static void stb_textedit_discard_redo(StbUndoState *state) -{ - int k = STB_TEXTEDIT_UNDOSTATECOUNT-1; - - if (state->redo_point <= k) { - // if the k'th undo state has characters, clean those up - if (state->undo_rec[k].char_storage >= 0) { - int n = state->undo_rec[k].insert_length, i; - // move the remaining redo character data to the end of the buffer - state->redo_char_point += n; - STB_TEXTEDIT_memmove(state->undo_char + state->redo_char_point, state->undo_char + state->redo_char_point-n, (size_t) ((STB_TEXTEDIT_UNDOCHARCOUNT - state->redo_char_point)*sizeof(STB_TEXTEDIT_CHARTYPE))); - // adjust the position of all the other records to account for above memmove - for (i=state->redo_point; i < k; ++i) - if (state->undo_rec[i].char_storage >= 0) - state->undo_rec[i].char_storage += n; - } - // now move all the redo records towards the end of the buffer; the first one is at 'redo_point' - // {DEAR IMGUI] - size_t move_size = (size_t)((STB_TEXTEDIT_UNDOSTATECOUNT - state->redo_point - 1) * sizeof(state->undo_rec[0])); - const char* buf_begin = (char*)state->undo_rec; (void)buf_begin; - const char* buf_end = (char*)state->undo_rec + sizeof(state->undo_rec); (void)buf_end; - IM_ASSERT(((char*)(state->undo_rec + state->redo_point)) >= buf_begin); - IM_ASSERT(((char*)(state->undo_rec + state->redo_point + 1) + move_size) <= buf_end); - STB_TEXTEDIT_memmove(state->undo_rec + state->redo_point+1, state->undo_rec + state->redo_point, move_size); - - // now move redo_point to point to the new one - ++state->redo_point; - } -} - -static StbUndoRecord *stb_text_create_undo_record(StbUndoState *state, int numchars) -{ - // any time we create a new undo record, we discard redo - stb_textedit_flush_redo(state); - - // if we have no free records, we have to make room, by sliding the - // existing records down - if (state->undo_point == STB_TEXTEDIT_UNDOSTATECOUNT) - stb_textedit_discard_undo(state); - - // if the characters to store won't possibly fit in the buffer, we can't undo - if (numchars > STB_TEXTEDIT_UNDOCHARCOUNT) { - state->undo_point = 0; - state->undo_char_point = 0; - return NULL; - } - - // if we don't have enough free characters in the buffer, we have to make room - while (state->undo_char_point + numchars > STB_TEXTEDIT_UNDOCHARCOUNT) - stb_textedit_discard_undo(state); - - return &state->undo_rec[state->undo_point++]; -} - -static STB_TEXTEDIT_CHARTYPE *stb_text_createundo(StbUndoState *state, int pos, int insert_len, int delete_len) -{ - StbUndoRecord *r = stb_text_create_undo_record(state, insert_len); - if (r == NULL) - return NULL; - - r->where = pos; - r->insert_length = (STB_TEXTEDIT_POSITIONTYPE) insert_len; - r->delete_length = (STB_TEXTEDIT_POSITIONTYPE) delete_len; - - if (insert_len == 0) { - r->char_storage = -1; - return NULL; - } else { - r->char_storage = state->undo_char_point; - state->undo_char_point += insert_len; - return &state->undo_char[r->char_storage]; - } -} - -static void stb_text_undo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - StbUndoState *s = &state->undostate; - StbUndoRecord u, *r; - if (s->undo_point == 0) - return; - - // we need to do two things: apply the undo record, and create a redo record - u = s->undo_rec[s->undo_point-1]; - r = &s->undo_rec[s->redo_point-1]; - r->char_storage = -1; - - r->insert_length = u.delete_length; - r->delete_length = u.insert_length; - r->where = u.where; - - if (u.delete_length) { - // if the undo record says to delete characters, then the redo record will - // need to re-insert the characters that get deleted, so we need to store - // them. - - // there are three cases: - // there's enough room to store the characters - // characters stored for *redoing* don't leave room for redo - // characters stored for *undoing* don't leave room for redo - // if the last is true, we have to bail - - if (s->undo_char_point + u.delete_length >= STB_TEXTEDIT_UNDOCHARCOUNT) { - // the undo records take up too much character space; there's no space to store the redo characters - r->insert_length = 0; - } else { - int i; - - // there's definitely room to store the characters eventually - while (s->undo_char_point + u.delete_length > s->redo_char_point) { - // should never happen: - if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) - return; - // there's currently not enough room, so discard a redo record - stb_textedit_discard_redo(s); - } - r = &s->undo_rec[s->redo_point-1]; - - r->char_storage = s->redo_char_point - u.delete_length; - s->redo_char_point = s->redo_char_point - u.delete_length; - - // now save the characters - for (i=0; i < u.delete_length; ++i) - s->undo_char[r->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u.where + i); - } - - // now we can carry out the deletion - STB_TEXTEDIT_DELETECHARS(str, u.where, u.delete_length); - } - - // check type of recorded action: - if (u.insert_length) { - // easy case: was a deletion, so we need to insert n characters - STB_TEXTEDIT_INSERTCHARS(str, u.where, &s->undo_char[u.char_storage], u.insert_length); - s->undo_char_point -= u.insert_length; - } - - state->cursor = u.where + u.insert_length; - - s->undo_point--; - s->redo_point--; -} - -static void stb_text_redo(STB_TEXTEDIT_STRING *str, STB_TexteditState *state) -{ - StbUndoState *s = &state->undostate; - StbUndoRecord *u, r; - if (s->redo_point == STB_TEXTEDIT_UNDOSTATECOUNT) - return; - - // we need to do two things: apply the redo record, and create an undo record - u = &s->undo_rec[s->undo_point]; - r = s->undo_rec[s->redo_point]; - - // we KNOW there must be room for the undo record, because the redo record - // was derived from an undo record - - u->delete_length = r.insert_length; - u->insert_length = r.delete_length; - u->where = r.where; - u->char_storage = -1; - - if (r.delete_length) { - // the redo record requires us to delete characters, so the undo record - // needs to store the characters - - if (s->undo_char_point + u->insert_length > s->redo_char_point) { - u->insert_length = 0; - u->delete_length = 0; - } else { - int i; - u->char_storage = s->undo_char_point; - s->undo_char_point = s->undo_char_point + u->insert_length; - - // now save the characters - for (i=0; i < u->insert_length; ++i) - s->undo_char[u->char_storage + i] = STB_TEXTEDIT_GETCHAR(str, u->where + i); - } - - STB_TEXTEDIT_DELETECHARS(str, r.where, r.delete_length); - } - - if (r.insert_length) { - // easy case: need to insert n characters - STB_TEXTEDIT_INSERTCHARS(str, r.where, &s->undo_char[r.char_storage], r.insert_length); - s->redo_char_point += r.insert_length; - } - - state->cursor = r.where + r.insert_length; - - s->undo_point++; - s->redo_point++; -} - -static void stb_text_makeundo_insert(STB_TexteditState *state, int where, int length) -{ - stb_text_createundo(&state->undostate, where, 0, length); -} - -static void stb_text_makeundo_delete(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int length) -{ - int i; - STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, length, 0); - if (p) { - for (i=0; i < length; ++i) - p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); - } -} - -static void stb_text_makeundo_replace(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, int where, int old_length, int new_length) -{ - int i; - STB_TEXTEDIT_CHARTYPE *p = stb_text_createundo(&state->undostate, where, old_length, new_length); - if (p) { - for (i=0; i < old_length; ++i) - p[i] = STB_TEXTEDIT_GETCHAR(str, where+i); - } -} - -// reset the state to default -static void stb_textedit_clear_state(STB_TexteditState *state, int is_single_line) -{ - state->undostate.undo_point = 0; - state->undostate.undo_char_point = 0; - state->undostate.redo_point = STB_TEXTEDIT_UNDOSTATECOUNT; - state->undostate.redo_char_point = STB_TEXTEDIT_UNDOCHARCOUNT; - state->select_end = state->select_start = 0; - state->cursor = 0; - state->has_preferred_x = 0; - state->preferred_x = 0; - state->cursor_at_end_of_line = 0; - state->initialized = 1; - state->single_line = (unsigned char) is_single_line; - state->insert_mode = 0; -} - -// API initialize -static void stb_textedit_initialize_state(STB_TexteditState *state, int is_single_line) -{ - stb_textedit_clear_state(state, is_single_line); -} - -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wcast-qual" -#endif - -static int stb_textedit_paste(STB_TEXTEDIT_STRING *str, STB_TexteditState *state, STB_TEXTEDIT_CHARTYPE const *ctext, int len) -{ - return stb_textedit_paste_internal(str, state, (STB_TEXTEDIT_CHARTYPE *) ctext, len); -} - -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic pop -#endif - -#endif//STB_TEXTEDIT_IMPLEMENTATION - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_truetype.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_truetype.h deleted file mode 100644 index b4bdbd86..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/uicommon/imstb_truetype.h +++ /dev/null @@ -1,4903 +0,0 @@ -// [DEAR IMGUI] -// This is a slightly modified version of stb_truetype.h 1.20. -// Mostly fixing for compiler and static analyzer warnings. -// Grep for [DEAR IMGUI] to find the changes. - -// stb_truetype.h - v1.20 - public domain -// authored from 2009-2016 by Sean Barrett / RAD Game Tools -// -// This library processes TrueType files: -// parse files -// extract glyph metrics -// extract glyph shapes -// render glyphs to one-channel bitmaps with antialiasing (box filter) -// render glyphs to one-channel SDF bitmaps (signed-distance field/function) -// -// Todo: -// non-MS cmaps -// crashproof on bad data -// hinting? (no longer patented) -// cleartype-style AA? -// optimize: use simple memory allocator for intermediates -// optimize: build edge-list directly from curves -// optimize: rasterize directly from curves? -// -// ADDITIONAL CONTRIBUTORS -// -// Mikko Mononen: compound shape support, more cmap formats -// Tor Andersson: kerning, subpixel rendering -// Dougall Johnson: OpenType / Type 2 font handling -// Daniel Ribeiro Maciel: basic GPOS-based kerning -// -// Misc other: -// Ryan Gordon -// Simon Glass -// github:IntellectualKitty -// Imanol Celaya -// Daniel Ribeiro Maciel -// -// Bug/warning reports/fixes: -// "Zer" on mollyrocket Fabian "ryg" Giesen -// Cass Everitt Martins Mozeiko -// stoiko (Haemimont Games) Cap Petschulat -// Brian Hook Omar Cornut -// Walter van Niftrik github:aloucks -// David Gow Peter LaValle -// David Given Sergey Popov -// Ivan-Assen Ivanov Giumo X. Clanjor -// Anthony Pesch Higor Euripedes -// Johan Duparc Thomas Fields -// Hou Qiming Derek Vinyard -// Rob Loach Cort Stratton -// Kenney Phillis Jr. github:oyvindjam -// Brian Costabile github:vassvik -// -// VERSION HISTORY -// -// 1.20 (2019-02-07) PackFontRange skips missing codepoints; GetScaleFontVMetrics() -// 1.19 (2018-02-11) GPOS kerning, STBTT_fmod -// 1.18 (2018-01-29) add missing function -// 1.17 (2017-07-23) make more arguments const; doc fix -// 1.16 (2017-07-12) SDF support -// 1.15 (2017-03-03) make more arguments const -// 1.14 (2017-01-16) num-fonts-in-TTC function -// 1.13 (2017-01-02) support OpenType fonts, certain Apple fonts -// 1.12 (2016-10-25) suppress warnings about casting away const with -Wcast-qual -// 1.11 (2016-04-02) fix unused-variable warning -// 1.10 (2016-04-02) user-defined fabs(); rare memory leak; remove duplicate typedef -// 1.09 (2016-01-16) warning fix; avoid crash on outofmem; use allocation userdata properly -// 1.08 (2015-09-13) document stbtt_Rasterize(); fixes for vertical & horizontal edges -// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; -// variant PackFontRanges to pack and render in separate phases; -// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); -// fixed an assert() bug in the new rasterizer -// replace assert() with STBTT_assert() in new rasterizer -// -// Full history can be found at the end of this file. -// -// LICENSE -// -// See end of file for license information. -// -// USAGE -// -// Include this file in whatever places need to refer to it. In ONE C/C++ -// file, write: -// #define STB_TRUETYPE_IMPLEMENTATION -// before the #include of this file. This expands out the actual -// implementation into that C/C++ file. -// -// To make the implementation private to the file that generates the implementation, -// #define STBTT_STATIC -// -// Simple 3D API (don't ship this, but it's fine for tools and quick start) -// stbtt_BakeFontBitmap() -- bake a font to a bitmap for use as texture -// stbtt_GetBakedQuad() -- compute quad to draw for a given char -// -// Improved 3D API (more shippable): -// #include "stb_rect_pack.h" -- optional, but you really want it -// stbtt_PackBegin() -// stbtt_PackSetOversampling() -- for improved quality on small fonts -// stbtt_PackFontRanges() -- pack and renders -// stbtt_PackEnd() -// stbtt_GetPackedQuad() -// -// "Load" a font file from a memory buffer (you have to keep the buffer loaded) -// stbtt_InitFont() -// stbtt_GetFontOffsetForIndex() -- indexing for TTC font collections -// stbtt_GetNumberOfFonts() -- number of fonts for TTC font collections -// -// Render a unicode codepoint to a bitmap -// stbtt_GetCodepointBitmap() -- allocates and returns a bitmap -// stbtt_MakeCodepointBitmap() -- renders into bitmap you provide -// stbtt_GetCodepointBitmapBox() -- how big the bitmap must be -// -// Character advance/positioning -// stbtt_GetCodepointHMetrics() -// stbtt_GetFontVMetrics() -// stbtt_GetFontVMetricsOS2() -// stbtt_GetCodepointKernAdvance() -// -// Starting with version 1.06, the rasterizer was replaced with a new, -// faster and generally-more-precise rasterizer. The new rasterizer more -// accurately measures pixel coverage for anti-aliasing, except in the case -// where multiple shapes overlap, in which case it overestimates the AA pixel -// coverage. Thus, anti-aliasing of intersecting shapes may look wrong. If -// this turns out to be a problem, you can re-enable the old rasterizer with -// #define STBTT_RASTERIZER_VERSION 1 -// which will incur about a 15% speed hit. -// -// ADDITIONAL DOCUMENTATION -// -// Immediately after this block comment are a series of sample programs. -// -// After the sample programs is the "header file" section. This section -// includes documentation for each API function. -// -// Some important concepts to understand to use this library: -// -// Codepoint -// Characters are defined by unicode codepoints, e.g. 65 is -// uppercase A, 231 is lowercase c with a cedilla, 0x7e30 is -// the hiragana for "ma". -// -// Glyph -// A visual character shape (every codepoint is rendered as -// some glyph) -// -// Glyph index -// A font-specific integer ID representing a glyph -// -// Baseline -// Glyph shapes are defined relative to a baseline, which is the -// bottom of uppercase characters. Characters extend both above -// and below the baseline. -// -// Current Point -// As you draw text to the screen, you keep track of a "current point" -// which is the origin of each character. The current point's vertical -// position is the baseline. Even "baked fonts" use this model. -// -// Vertical Font Metrics -// The vertical qualities of the font, used to vertically position -// and space the characters. See docs for stbtt_GetFontVMetrics. -// -// Font Size in Pixels or Points -// The preferred interface for specifying font sizes in stb_truetype -// is to specify how tall the font's vertical extent should be in pixels. -// If that sounds good enough, skip the next paragraph. -// -// Most font APIs instead use "points", which are a common typographic -// measurement for describing font size, defined as 72 points per inch. -// stb_truetype provides a point API for compatibility. However, true -// "per inch" conventions don't make much sense on computer displays -// since different monitors have different number of pixels per -// inch. For example, Windows traditionally uses a convention that -// there are 96 pixels per inch, thus making 'inch' measurements have -// nothing to do with inches, and thus effectively defining a point to -// be 1.333 pixels. Additionally, the TrueType font data provides -// an explicit scale factor to scale a given font's glyphs to points, -// but the author has observed that this scale factor is often wrong -// for non-commercial fonts, thus making fonts scaled in points -// according to the TrueType spec incoherently sized in practice. -// -// DETAILED USAGE: -// -// Scale: -// Select how high you want the font to be, in points or pixels. -// Call ScaleForPixelHeight or ScaleForMappingEmToPixels to compute -// a scale factor SF that will be used by all other functions. -// -// Baseline: -// You need to select a y-coordinate that is the baseline of where -// your text will appear. Call GetFontBoundingBox to get the baseline-relative -// bounding box for all characters. SF*-y0 will be the distance in pixels -// that the worst-case character could extend above the baseline, so if -// you want the top edge of characters to appear at the top of the -// screen where y=0, then you would set the baseline to SF*-y0. -// -// Current point: -// Set the current point where the first character will appear. The -// first character could extend left of the current point; this is font -// dependent. You can either choose a current point that is the leftmost -// point and hope, or add some padding, or check the bounding box or -// left-side-bearing of the first character to be displayed and set -// the current point based on that. -// -// Displaying a character: -// Compute the bounding box of the character. It will contain signed values -// relative to . I.e. if it returns x0,y0,x1,y1, -// then the character should be displayed in the rectangle from -// to = 32 && *text < 128) { - stbtt_aligned_quad q; - stbtt_GetBakedQuad(cdata, 512,512, *text-32, &x,&y,&q,1);//1=opengl & d3d10+,0=d3d9 - glTexCoord2f(q.s0,q.t1); glVertex2f(q.x0,q.y0); - glTexCoord2f(q.s1,q.t1); glVertex2f(q.x1,q.y0); - glTexCoord2f(q.s1,q.t0); glVertex2f(q.x1,q.y1); - glTexCoord2f(q.s0,q.t0); glVertex2f(q.x0,q.y1); - } - ++text; - } - glEnd(); -} -#endif -// -// -////////////////////////////////////////////////////////////////////////////// -// -// Complete program (this compiles): get a single bitmap, print as ASCII art -// -#if 0 -#include -#define STB_TRUETYPE_IMPLEMENTATION // force following include to generate implementation -#include "stb_truetype.h" - -char ttf_buffer[1<<25]; - -int main(int argc, char **argv) -{ - stbtt_fontinfo font; - unsigned char *bitmap; - int w,h,i,j,c = (argc > 1 ? atoi(argv[1]) : 'a'), s = (argc > 2 ? atoi(argv[2]) : 20); - - fread(ttf_buffer, 1, 1<<25, fopen(argc > 3 ? argv[3] : "c:/windows/fonts/arialbd.ttf", "rb")); - - stbtt_InitFont(&font, ttf_buffer, stbtt_GetFontOffsetForIndex(ttf_buffer,0)); - bitmap = stbtt_GetCodepointBitmap(&font, 0,stbtt_ScaleForPixelHeight(&font, s), c, &w, &h, 0,0); - - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) - putchar(" .:ioVM@"[bitmap[j*w+i]>>5]); - putchar('\n'); - } - return 0; -} -#endif -// -// Output: -// -// .ii. -// @@@@@@. -// V@Mio@@o -// :i. V@V -// :oM@@M -// :@@@MM@M -// @@o o@M -// :@@. M@M -// @@@o@@@@ -// :M@@V:@@. -// -////////////////////////////////////////////////////////////////////////////// -// -// Complete program: print "Hello World!" banner, with bugs -// -#if 0 -char buffer[24<<20]; -unsigned char screen[20][79]; - -int main(int arg, char **argv) -{ - stbtt_fontinfo font; - int i,j,ascent,baseline,ch=0; - float scale, xpos=2; // leave a little padding in case the character extends left - char *text = "Heljo World!"; // intentionally misspelled to show 'lj' brokenness - - fread(buffer, 1, 1000000, fopen("c:/windows/fonts/arialbd.ttf", "rb")); - stbtt_InitFont(&font, buffer, 0); - - scale = stbtt_ScaleForPixelHeight(&font, 15); - stbtt_GetFontVMetrics(&font, &ascent,0,0); - baseline = (int) (ascent*scale); - - while (text[ch]) { - int advance,lsb,x0,y0,x1,y1; - float x_shift = xpos - (float) floor(xpos); - stbtt_GetCodepointHMetrics(&font, text[ch], &advance, &lsb); - stbtt_GetCodepointBitmapBoxSubpixel(&font, text[ch], scale,scale,x_shift,0, &x0,&y0,&x1,&y1); - stbtt_MakeCodepointBitmapSubpixel(&font, &screen[baseline + y0][(int) xpos + x0], x1-x0,y1-y0, 79, scale,scale,x_shift,0, text[ch]); - // note that this stomps the old data, so where character boxes overlap (e.g. 'lj') it's wrong - // because this API is really for baking character bitmaps into textures. if you want to render - // a sequence of characters, you really need to render each bitmap to a temp buffer, then - // "alpha blend" that into the working buffer - xpos += (advance * scale); - if (text[ch+1]) - xpos += scale*stbtt_GetCodepointKernAdvance(&font, text[ch],text[ch+1]); - ++ch; - } - - for (j=0; j < 20; ++j) { - for (i=0; i < 78; ++i) - putchar(" .:ioVM@"[screen[j][i]>>5]); - putchar('\n'); - } - - return 0; -} -#endif - - -////////////////////////////////////////////////////////////////////////////// -////////////////////////////////////////////////////////////////////////////// -//// -//// INTEGRATION WITH YOUR CODEBASE -//// -//// The following sections allow you to supply alternate definitions -//// of C library functions used by stb_truetype, e.g. if you don't -//// link with the C runtime library. - -#ifdef STB_TRUETYPE_IMPLEMENTATION - // #define your own (u)stbtt_int8/16/32 before including to override this - #ifndef stbtt_uint8 - typedef unsigned char stbtt_uint8; - typedef signed char stbtt_int8; - typedef unsigned short stbtt_uint16; - typedef signed short stbtt_int16; - typedef unsigned int stbtt_uint32; - typedef signed int stbtt_int32; - #endif - - typedef char stbtt__check_size32[sizeof(stbtt_int32)==4 ? 1 : -1]; - typedef char stbtt__check_size16[sizeof(stbtt_int16)==2 ? 1 : -1]; - - // e.g. #define your own STBTT_ifloor/STBTT_iceil() to avoid math.h - #ifndef STBTT_ifloor - #include - #define STBTT_ifloor(x) ((int) floor(x)) - #define STBTT_iceil(x) ((int) ceil(x)) - #endif - - #ifndef STBTT_sqrt - #include - #define STBTT_sqrt(x) sqrt(x) - #define STBTT_pow(x,y) pow(x,y) - #endif - - #ifndef STBTT_fmod - #include - #define STBTT_fmod(x,y) fmod(x,y) - #endif - - #ifndef STBTT_cos - #include - #define STBTT_cos(x) cos(x) - #define STBTT_acos(x) acos(x) - #endif - - #ifndef STBTT_fabs - #include - #define STBTT_fabs(x) fabs(x) - #endif - - // #define your own functions "STBTT_malloc" / "STBTT_free" to avoid malloc.h - #ifndef STBTT_malloc - #include - #define STBTT_malloc(x,u) ((void)(u),malloc(x)) - #define STBTT_free(x,u) ((void)(u),free(x)) - #endif - - #ifndef STBTT_assert - #include - #define STBTT_assert(x) assert(x) - #endif - - #ifndef STBTT_strlen - #include - #define STBTT_strlen(x) strlen(x) - #endif - - #ifndef STBTT_memcpy - #include - #define STBTT_memcpy memcpy - #define STBTT_memset memset - #endif -#endif - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -//// -//// INTERFACE -//// -//// - -#ifndef __STB_INCLUDE_STB_TRUETYPE_H__ -#define __STB_INCLUDE_STB_TRUETYPE_H__ - -#ifdef STBTT_STATIC -#define STBTT_DEF static -#else -#define STBTT_DEF extern -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -// private structure -typedef struct -{ - unsigned char *data; - int cursor; - int size; -} stbtt__buf; - -////////////////////////////////////////////////////////////////////////////// -// -// TEXTURE BAKING API -// -// If you use this API, you only have to call two functions ever. -// - -typedef struct -{ - unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap - float xoff,yoff,xadvance; -} stbtt_bakedchar; - -STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) - float pixel_height, // height of font in pixels - unsigned char *pixels, int pw, int ph, // bitmap to be filled in - int first_char, int num_chars, // characters to bake - stbtt_bakedchar *chardata); // you allocate this, it's num_chars long -// if return is positive, the first unused row of the bitmap -// if return is negative, returns the negative of the number of characters that fit -// if return is 0, no characters fit and no rows were used -// This uses a very crappy packing. - -typedef struct -{ - float x0,y0,s0,t0; // top-left - float x1,y1,s1,t1; // bottom-right -} stbtt_aligned_quad; - -STBTT_DEF void stbtt_GetBakedQuad(const stbtt_bakedchar *chardata, int pw, int ph, // same data as above - int char_index, // character to display - float *xpos, float *ypos, // pointers to current position in screen pixel space - stbtt_aligned_quad *q, // output: quad to draw - int opengl_fillrule); // true if opengl fill rule; false if DX9 or earlier -// Call GetBakedQuad with char_index = 'character - first_char', and it -// creates the quad you need to draw and advances the current position. -// -// The coordinate system used assumes y increases downwards. -// -// Characters will extend both above and below the current position; -// see discussion of "BASELINE" above. -// -// It's inefficient; you might want to c&p it and optimize it. - -STBTT_DEF void stbtt_GetScaledFontVMetrics(const unsigned char *fontdata, int index, float size, float *ascent, float *descent, float *lineGap); -// Query the font vertical metrics without having to create a font first. - - -////////////////////////////////////////////////////////////////////////////// -// -// NEW TEXTURE BAKING API -// -// This provides options for packing multiple fonts into one atlas, not -// perfectly but better than nothing. - -typedef struct -{ - unsigned short x0,y0,x1,y1; // coordinates of bbox in bitmap - float xoff,yoff,xadvance; - float xoff2,yoff2; -} stbtt_packedchar; - -typedef struct stbtt_pack_context stbtt_pack_context; -typedef struct stbtt_fontinfo stbtt_fontinfo; -#ifndef STB_RECT_PACK_VERSION -typedef struct stbrp_rect stbrp_rect; -#endif - -STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int width, int height, int stride_in_bytes, int padding, void *alloc_context); -// Initializes a packing context stored in the passed-in stbtt_pack_context. -// Future calls using this context will pack characters into the bitmap passed -// in here: a 1-channel bitmap that is width * height. stride_in_bytes is -// the distance from one row to the next (or 0 to mean they are packed tightly -// together). "padding" is the amount of padding to leave between each -// character (normally you want '1' for bitmaps you'll use as textures with -// bilinear filtering). -// -// Returns 0 on failure, 1 on success. - -STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc); -// Cleans up the packing context and frees all memory. - -#define STBTT_POINT_SIZE(x) (-(x)) - -STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, float font_size, - int first_unicode_char_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range); -// Creates character bitmaps from the font_index'th font found in fontdata (use -// font_index=0 if you don't know what that is). It creates num_chars_in_range -// bitmaps for characters with unicode values starting at first_unicode_char_in_range -// and increasing. Data for how to render them is stored in chardata_for_range; -// pass these to stbtt_GetPackedQuad to get back renderable quads. -// -// font_size is the full height of the character from ascender to descender, -// as computed by stbtt_ScaleForPixelHeight. To use a point size as computed -// by stbtt_ScaleForMappingEmToPixels, wrap the point size in STBTT_POINT_SIZE() -// and pass that result as 'font_size': -// ..., 20 , ... // font max minus min y is 20 pixels tall -// ..., STBTT_POINT_SIZE(20), ... // 'M' is 20 pixels tall - -typedef struct -{ - float font_size; - int first_unicode_codepoint_in_range; // if non-zero, then the chars are continuous, and this is the first codepoint - int *array_of_unicode_codepoints; // if non-zero, then this is an array of unicode codepoints - int num_chars; - stbtt_packedchar *chardata_for_range; // output - unsigned char h_oversample, v_oversample; // don't set these, they're used internally -} stbtt_pack_range; - -STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges); -// Creates character bitmaps from multiple ranges of characters stored in -// ranges. This will usually create a better-packed bitmap than multiple -// calls to stbtt_PackFontRange. Note that you can call this multiple -// times within a single PackBegin/PackEnd. - -STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample); -// Oversampling a font increases the quality by allowing higher-quality subpixel -// positioning, and is especially valuable at smaller text sizes. -// -// This function sets the amount of oversampling for all following calls to -// stbtt_PackFontRange(s) or stbtt_PackFontRangesGatherRects for a given -// pack context. The default (no oversampling) is achieved by h_oversample=1 -// and v_oversample=1. The total number of pixels required is -// h_oversample*v_oversample larger than the default; for example, 2x2 -// oversampling requires 4x the storage of 1x1. For best results, render -// oversampled textures with bilinear filtering. Look at the readme in -// stb/tests/oversample for information about oversampled fonts -// -// To use with PackFontRangesGather etc., you must set it before calls -// call to PackFontRangesGatherRects. - -STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip); -// If skip != 0, this tells stb_truetype to skip any codepoints for which -// there is no corresponding glyph. If skip=0, which is the default, then -// codepoints without a glyph recived the font's "missing character" glyph, -// typically an empty box by convention. - -STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, // same data as above - int char_index, // character to display - float *xpos, float *ypos, // pointers to current position in screen pixel space - stbtt_aligned_quad *q, // output: quad to draw - int align_to_integer); - -STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); -STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects); -STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects); -// Calling these functions in sequence is roughly equivalent to calling -// stbtt_PackFontRanges(). If you more control over the packing of multiple -// fonts, or if you want to pack custom data into a font texture, take a look -// at the source to of stbtt_PackFontRanges() and create a custom version -// using these functions, e.g. call GatherRects multiple times, -// building up a single array of rects, then call PackRects once, -// then call RenderIntoRects repeatedly. This may result in a -// better packing than calling PackFontRanges multiple times -// (or it may not). - -// this is an opaque structure that you shouldn't mess with which holds -// all the context needed from PackBegin to PackEnd. -struct stbtt_pack_context { - void *user_allocator_context; - void *pack_info; - int width; - int height; - int stride_in_bytes; - int padding; - int skip_missing; - unsigned int h_oversample, v_oversample; - unsigned char *pixels; - void *nodes; -}; - -////////////////////////////////////////////////////////////////////////////// -// -// FONT LOADING -// -// - -STBTT_DEF int stbtt_GetNumberOfFonts(const unsigned char *data); -// This function will determine the number of fonts in a font file. TrueType -// collection (.ttc) files may contain multiple fonts, while TrueType font -// (.ttf) files only contain one font. The number of fonts can be used for -// indexing with the previous function where the index is between zero and one -// less than the total fonts. If an error occurs, -1 is returned. - -STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index); -// Each .ttf/.ttc file may have more than one font. Each font has a sequential -// index number starting from 0. Call this function to get the font offset for -// a given index; it returns -1 if the index is out of range. A regular .ttf -// file will only define one font and it always be at offset 0, so it will -// return '0' for index 0, and -1 for all other indices. - -// The following structure is defined publicly so you can declare one on -// the stack or as a global or etc, but you should treat it as opaque. -struct stbtt_fontinfo -{ - void * userdata; - unsigned char * data; // pointer to .ttf file - int fontstart; // offset of start of font - - int numGlyphs; // number of glyphs, needed for range checking - - int loca,head,glyf,hhea,hmtx,kern,gpos; // table locations as offset from start of .ttf - int index_map; // a cmap mapping for our chosen character encoding - int indexToLocFormat; // format needed to map from glyph index to glyph - - stbtt__buf cff; // cff font data - stbtt__buf charstrings; // the charstring index - stbtt__buf gsubrs; // global charstring subroutines index - stbtt__buf subrs; // private charstring subroutines index - stbtt__buf fontdicts; // array of font dicts - stbtt__buf fdselect; // map from glyph to fontdict -}; - -STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data, int offset); -// Given an offset into the file that defines a font, this function builds -// the necessary cached info for the rest of the system. You must allocate -// the stbtt_fontinfo yourself, and stbtt_InitFont will fill it out. You don't -// need to do anything special to free it, because the contents are pure -// value data with no additional data structures. Returns 0 on failure. - - -////////////////////////////////////////////////////////////////////////////// -// -// CHARACTER TO GLYPH-INDEX CONVERSIOn - -STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint); -// If you're going to perform multiple operations on the same character -// and you want a speed-up, call this function with the character you're -// going to process, then use glyph-based functions instead of the -// codepoint-based functions. -// Returns 0 if the character codepoint is not defined in the font. - - -////////////////////////////////////////////////////////////////////////////// -// -// CHARACTER PROPERTIES -// - -STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float pixels); -// computes a scale factor to produce a font whose "height" is 'pixels' tall. -// Height is measured as the distance from the highest ascender to the lowest -// descender; in other words, it's equivalent to calling stbtt_GetFontVMetrics -// and computing: -// scale = pixels / (ascent - descent) -// so if you prefer to measure height by the ascent only, use a similar calculation. - -STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels); -// computes a scale factor to produce a font whose EM size is mapped to -// 'pixels' tall. This is probably what traditional APIs compute, but -// I'm not positive. - -STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap); -// ascent is the coordinate above the baseline the font extends; descent -// is the coordinate below the baseline the font extends (i.e. it is typically negative) -// lineGap is the spacing between one row's descent and the next row's ascent... -// so you should advance the vertical position by "*ascent - *descent + *lineGap" -// these are expressed in unscaled coordinates, so you must multiply by -// the scale factor for a given size - -STBTT_DEF int stbtt_GetFontVMetricsOS2(const stbtt_fontinfo *info, int *typoAscent, int *typoDescent, int *typoLineGap); -// analogous to GetFontVMetrics, but returns the "typographic" values from the OS/2 -// table (specific to MS/Windows TTF files). -// -// Returns 1 on success (table present), 0 on failure. - -STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1); -// the bounding box around all possible characters - -STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing); -// leftSideBearing is the offset from the current horizontal position to the left edge of the character -// advanceWidth is the offset from the current horizontal position to the next horizontal position -// these are expressed in unscaled coordinates - -STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2); -// an additional amount to add to the 'advance' value between ch1 and ch2 - -STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1); -// Gets the bounding box of the visible part of the glyph, in unscaled coordinates - -STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing); -STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2); -STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1); -// as above, but takes one or more glyph indices for greater efficiency - - -////////////////////////////////////////////////////////////////////////////// -// -// GLYPH SHAPES (you probably don't need these, but they have to go before -// the bitmaps for C declaration-order reasons) -// - -#ifndef STBTT_vmove // you can predefine these to use different values (but why?) - enum { - STBTT_vmove=1, - STBTT_vline, - STBTT_vcurve, - STBTT_vcubic - }; -#endif - -#ifndef stbtt_vertex // you can predefine this to use different values - // (we share this with other code at RAD) - #define stbtt_vertex_type short // can't use stbtt_int16 because that's not visible in the header file - typedef struct - { - stbtt_vertex_type x,y,cx,cy,cx1,cy1; - unsigned char type,padding; - } stbtt_vertex; -#endif - -STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index); -// returns non-zero if nothing is drawn for this glyph - -STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices); -STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **vertices); -// returns # of vertices and fills *vertices with the pointer to them -// these are expressed in "unscaled" coordinates -// -// The shape is a series of contours. Each one starts with -// a STBTT_moveto, then consists of a series of mixed -// STBTT_lineto and STBTT_curveto segments. A lineto -// draws a line from previous endpoint to its x,y; a curveto -// draws a quadratic bezier from previous endpoint to -// its x,y, using cx,cy as the bezier control point. - -STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *vertices); -// frees the data allocated above - -////////////////////////////////////////////////////////////////////////////// -// -// BITMAP RENDERING -// - -STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata); -// frees the bitmap allocated below - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff); -// allocates a large-enough single-channel 8bpp bitmap and renders the -// specified character/glyph at the specified scale into it, with -// antialiasing. 0 is no coverage (transparent), 255 is fully covered (opaque). -// *width & *height are filled out with the width & height of the bitmap, -// which is stored left-to-right, top-to-bottom. -// -// xoff/yoff are the offset it pixel space from the glyph origin to the top-left of the bitmap - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff); -// the same as stbtt_GetCodepoitnBitmap, but you can specify a subpixel -// shift for the character - -STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint); -// the same as stbtt_GetCodepointBitmap, but you pass in storage for the bitmap -// in the form of 'output', with row spacing of 'out_stride' bytes. the bitmap -// is clipped to out_w/out_h bytes. Call stbtt_GetCodepointBitmapBox to get the -// width and height and positioning info for it first. - -STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint); -// same as stbtt_MakeCodepointBitmap, but you can specify a subpixel -// shift for the character - -STBTT_DEF void stbtt_MakeCodepointBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int oversample_x, int oversample_y, float *sub_x, float *sub_y, int codepoint); -// same as stbtt_MakeCodepointBitmapSubpixel, but prefiltering -// is performed (see stbtt_PackSetOversampling) - -STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); -// get the bbox of the bitmap centered around the glyph origin; so the -// bitmap width is ix1-ix0, height is iy1-iy0, and location to place -// the bitmap top left is (leftSideBearing*scale,iy0). -// (Note that the bitmap uses y-increases-down, but the shape uses -// y-increases-up, so CodepointBitmapBox and CodepointBox are inverted.) - -STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); -// same as stbtt_GetCodepointBitmapBox, but you can specify a subpixel -// shift for the character - -// the following functions are equivalent to the above functions, but operate -// on glyph indices instead of Unicode codepoints (for efficiency) -STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff); -STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff); -STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph); -STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph); -STBTT_DEF void stbtt_MakeGlyphBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int oversample_x, int oversample_y, float *sub_x, float *sub_y, int glyph); -STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1); -STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1); - - -// @TODO: don't expose this structure -typedef struct -{ - int w,h,stride; - unsigned char *pixels; -} stbtt__bitmap; - -// rasterize a shape with quadratic beziers into a bitmap -STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, // 1-channel bitmap to draw into - float flatness_in_pixels, // allowable error of curve in pixels - stbtt_vertex *vertices, // array of vertices defining shape - int num_verts, // number of vertices in above array - float scale_x, float scale_y, // scale applied to input vertices - float shift_x, float shift_y, // translation applied to input vertices - int x_off, int y_off, // another translation applied to input - int invert, // if non-zero, vertically flip shape - void *userdata); // context for to STBTT_MALLOC - -////////////////////////////////////////////////////////////////////////////// -// -// Signed Distance Function (or Field) rendering - -STBTT_DEF void stbtt_FreeSDF(unsigned char *bitmap, void *userdata); -// frees the SDF bitmap allocated below - -STBTT_DEF unsigned char * stbtt_GetGlyphSDF(const stbtt_fontinfo *info, float scale, int glyph, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff); -STBTT_DEF unsigned char * stbtt_GetCodepointSDF(const stbtt_fontinfo *info, float scale, int codepoint, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff); -// These functions compute a discretized SDF field for a single character, suitable for storing -// in a single-channel texture, sampling with bilinear filtering, and testing against -// larger than some threshold to produce scalable fonts. -// info -- the font -// scale -- controls the size of the resulting SDF bitmap, same as it would be creating a regular bitmap -// glyph/codepoint -- the character to generate the SDF for -// padding -- extra "pixels" around the character which are filled with the distance to the character (not 0), -// which allows effects like bit outlines -// onedge_value -- value 0-255 to test the SDF against to reconstruct the character (i.e. the isocontour of the character) -// pixel_dist_scale -- what value the SDF should increase by when moving one SDF "pixel" away from the edge (on the 0..255 scale) -// if positive, > onedge_value is inside; if negative, < onedge_value is inside -// width,height -- output height & width of the SDF bitmap (including padding) -// xoff,yoff -- output origin of the character -// return value -- a 2D array of bytes 0..255, width*height in size -// -// pixel_dist_scale & onedge_value are a scale & bias that allows you to make -// optimal use of the limited 0..255 for your application, trading off precision -// and special effects. SDF values outside the range 0..255 are clamped to 0..255. -// -// Example: -// scale = stbtt_ScaleForPixelHeight(22) -// padding = 5 -// onedge_value = 180 -// pixel_dist_scale = 180/5.0 = 36.0 -// -// This will create an SDF bitmap in which the character is about 22 pixels -// high but the whole bitmap is about 22+5+5=32 pixels high. To produce a filled -// shape, sample the SDF at each pixel and fill the pixel if the SDF value -// is greater than or equal to 180/255. (You'll actually want to antialias, -// which is beyond the scope of this example.) Additionally, you can compute -// offset outlines (e.g. to stroke the character border inside & outside, -// or only outside). For example, to fill outside the character up to 3 SDF -// pixels, you would compare against (180-36.0*3)/255 = 72/255. The above -// choice of variables maps a range from 5 pixels outside the shape to -// 2 pixels inside the shape to 0..255; this is intended primarily for apply -// outside effects only (the interior range is needed to allow proper -// antialiasing of the font at *smaller* sizes) -// -// The function computes the SDF analytically at each SDF pixel, not by e.g. -// building a higher-res bitmap and approximating it. In theory the quality -// should be as high as possible for an SDF of this size & representation, but -// unclear if this is true in practice (perhaps building a higher-res bitmap -// and computing from that can allow drop-out prevention). -// -// The algorithm has not been optimized at all, so expect it to be slow -// if computing lots of characters or very large sizes. - - - -////////////////////////////////////////////////////////////////////////////// -// -// Finding the right font... -// -// You should really just solve this offline, keep your own tables -// of what font is what, and don't try to get it out of the .ttf file. -// That's because getting it out of the .ttf file is really hard, because -// the names in the file can appear in many possible encodings, in many -// possible languages, and e.g. if you need a case-insensitive comparison, -// the details of that depend on the encoding & language in a complex way -// (actually underspecified in truetype, but also gigantic). -// -// But you can use the provided functions in two possible ways: -// stbtt_FindMatchingFont() will use *case-sensitive* comparisons on -// unicode-encoded names to try to find the font you want; -// you can run this before calling stbtt_InitFont() -// -// stbtt_GetFontNameString() lets you get any of the various strings -// from the file yourself and do your own comparisons on them. -// You have to have called stbtt_InitFont() first. - - -STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, const char *name, int flags); -// returns the offset (not index) of the font that matches, or -1 if none -// if you use STBTT_MACSTYLE_DONTCARE, use a font name like "Arial Bold". -// if you use any other flag, use a font name like "Arial"; this checks -// the 'macStyle' header field; i don't know if fonts set this consistently -#define STBTT_MACSTYLE_DONTCARE 0 -#define STBTT_MACSTYLE_BOLD 1 -#define STBTT_MACSTYLE_ITALIC 2 -#define STBTT_MACSTYLE_UNDERSCORE 4 -#define STBTT_MACSTYLE_NONE 8 // <= not same as 0, this makes us check the bitfield is 0 - -STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2); -// returns 1/0 whether the first string interpreted as utf8 is identical to -// the second string interpreted as big-endian utf16... useful for strings from next func - -STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID); -// returns the string (which may be big-endian double byte, e.g. for unicode) -// and puts the length in bytes in *length. -// -// some of the values for the IDs are below; for more see the truetype spec: -// http://developer.apple.com/textfonts/TTRefMan/RM06/Chap6name.html -// http://www.microsoft.com/typography/otspec/name.htm - -enum { // platformID - STBTT_PLATFORM_ID_UNICODE =0, - STBTT_PLATFORM_ID_MAC =1, - STBTT_PLATFORM_ID_ISO =2, - STBTT_PLATFORM_ID_MICROSOFT =3 -}; - -enum { // encodingID for STBTT_PLATFORM_ID_UNICODE - STBTT_UNICODE_EID_UNICODE_1_0 =0, - STBTT_UNICODE_EID_UNICODE_1_1 =1, - STBTT_UNICODE_EID_ISO_10646 =2, - STBTT_UNICODE_EID_UNICODE_2_0_BMP=3, - STBTT_UNICODE_EID_UNICODE_2_0_FULL=4 -}; - -enum { // encodingID for STBTT_PLATFORM_ID_MICROSOFT - STBTT_MS_EID_SYMBOL =0, - STBTT_MS_EID_UNICODE_BMP =1, - STBTT_MS_EID_SHIFTJIS =2, - STBTT_MS_EID_UNICODE_FULL =10 -}; - -enum { // encodingID for STBTT_PLATFORM_ID_MAC; same as Script Manager codes - STBTT_MAC_EID_ROMAN =0, STBTT_MAC_EID_ARABIC =4, - STBTT_MAC_EID_JAPANESE =1, STBTT_MAC_EID_HEBREW =5, - STBTT_MAC_EID_CHINESE_TRAD =2, STBTT_MAC_EID_GREEK =6, - STBTT_MAC_EID_KOREAN =3, STBTT_MAC_EID_RUSSIAN =7 -}; - -enum { // languageID for STBTT_PLATFORM_ID_MICROSOFT; same as LCID... - // problematic because there are e.g. 16 english LCIDs and 16 arabic LCIDs - STBTT_MS_LANG_ENGLISH =0x0409, STBTT_MS_LANG_ITALIAN =0x0410, - STBTT_MS_LANG_CHINESE =0x0804, STBTT_MS_LANG_JAPANESE =0x0411, - STBTT_MS_LANG_DUTCH =0x0413, STBTT_MS_LANG_KOREAN =0x0412, - STBTT_MS_LANG_FRENCH =0x040c, STBTT_MS_LANG_RUSSIAN =0x0419, - STBTT_MS_LANG_GERMAN =0x0407, STBTT_MS_LANG_SPANISH =0x0409, - STBTT_MS_LANG_HEBREW =0x040d, STBTT_MS_LANG_SWEDISH =0x041D -}; - -enum { // languageID for STBTT_PLATFORM_ID_MAC - STBTT_MAC_LANG_ENGLISH =0 , STBTT_MAC_LANG_JAPANESE =11, - STBTT_MAC_LANG_ARABIC =12, STBTT_MAC_LANG_KOREAN =23, - STBTT_MAC_LANG_DUTCH =4 , STBTT_MAC_LANG_RUSSIAN =32, - STBTT_MAC_LANG_FRENCH =1 , STBTT_MAC_LANG_SPANISH =6 , - STBTT_MAC_LANG_GERMAN =2 , STBTT_MAC_LANG_SWEDISH =5 , - STBTT_MAC_LANG_HEBREW =10, STBTT_MAC_LANG_CHINESE_SIMPLIFIED =33, - STBTT_MAC_LANG_ITALIAN =3 , STBTT_MAC_LANG_CHINESE_TRAD =19 -}; - -#ifdef __cplusplus -} -#endif - -#endif // __STB_INCLUDE_STB_TRUETYPE_H__ - -/////////////////////////////////////////////////////////////////////////////// -/////////////////////////////////////////////////////////////////////////////// -//// -//// IMPLEMENTATION -//// -//// - -#ifdef STB_TRUETYPE_IMPLEMENTATION - -#ifndef STBTT_MAX_OVERSAMPLE -#define STBTT_MAX_OVERSAMPLE 8 -#endif - -#if STBTT_MAX_OVERSAMPLE > 255 -#error "STBTT_MAX_OVERSAMPLE cannot be > 255" -#endif - -typedef int stbtt__test_oversample_pow2[(STBTT_MAX_OVERSAMPLE & (STBTT_MAX_OVERSAMPLE-1)) == 0 ? 1 : -1]; - -#ifndef STBTT_RASTERIZER_VERSION -#define STBTT_RASTERIZER_VERSION 2 -#endif - -#ifdef _MSC_VER -#define STBTT__NOTUSED(v) (void)(v) -#else -#define STBTT__NOTUSED(v) (void)sizeof(v) -#endif - -////////////////////////////////////////////////////////////////////////// -// -// stbtt__buf helpers to parse data from file -// - -static stbtt_uint8 stbtt__buf_get8(stbtt__buf *b) -{ - if (b->cursor >= b->size) - return 0; - return b->data[b->cursor++]; -} - -static stbtt_uint8 stbtt__buf_peek8(stbtt__buf *b) -{ - if (b->cursor >= b->size) - return 0; - return b->data[b->cursor]; -} - -static void stbtt__buf_seek(stbtt__buf *b, int o) -{ - STBTT_assert(!(o > b->size || o < 0)); - b->cursor = (o > b->size || o < 0) ? b->size : o; -} - -static void stbtt__buf_skip(stbtt__buf *b, int o) -{ - stbtt__buf_seek(b, b->cursor + o); -} - -static stbtt_uint32 stbtt__buf_get(stbtt__buf *b, int n) -{ - stbtt_uint32 v = 0; - int i; - STBTT_assert(n >= 1 && n <= 4); - for (i = 0; i < n; i++) - v = (v << 8) | stbtt__buf_get8(b); - return v; -} - -static stbtt__buf stbtt__new_buf(const void *p, size_t size) -{ - stbtt__buf r; - STBTT_assert(size < 0x40000000); - r.data = (stbtt_uint8*) p; - r.size = (int) size; - r.cursor = 0; - return r; -} - -#define stbtt__buf_get16(b) stbtt__buf_get((b), 2) -#define stbtt__buf_get32(b) stbtt__buf_get((b), 4) - -static stbtt__buf stbtt__buf_range(const stbtt__buf *b, int o, int s) -{ - stbtt__buf r = stbtt__new_buf(NULL, 0); - if (o < 0 || s < 0 || o > b->size || s > b->size - o) return r; - r.data = b->data + o; - r.size = s; - return r; -} - -static stbtt__buf stbtt__cff_get_index(stbtt__buf *b) -{ - int count, start, offsize; - start = b->cursor; - count = stbtt__buf_get16(b); - if (count) { - offsize = stbtt__buf_get8(b); - STBTT_assert(offsize >= 1 && offsize <= 4); - stbtt__buf_skip(b, offsize * count); - stbtt__buf_skip(b, stbtt__buf_get(b, offsize) - 1); - } - return stbtt__buf_range(b, start, b->cursor - start); -} - -static stbtt_uint32 stbtt__cff_int(stbtt__buf *b) -{ - int b0 = stbtt__buf_get8(b); - if (b0 >= 32 && b0 <= 246) return b0 - 139; - else if (b0 >= 247 && b0 <= 250) return (b0 - 247)*256 + stbtt__buf_get8(b) + 108; - else if (b0 >= 251 && b0 <= 254) return -(b0 - 251)*256 - stbtt__buf_get8(b) - 108; - else if (b0 == 28) return stbtt__buf_get16(b); - else if (b0 == 29) return stbtt__buf_get32(b); - STBTT_assert(0); - return 0; -} - -static void stbtt__cff_skip_operand(stbtt__buf *b) { - int v, b0 = stbtt__buf_peek8(b); - STBTT_assert(b0 >= 28); - if (b0 == 30) { - stbtt__buf_skip(b, 1); - while (b->cursor < b->size) { - v = stbtt__buf_get8(b); - if ((v & 0xF) == 0xF || (v >> 4) == 0xF) - break; - } - } else { - stbtt__cff_int(b); - } -} - -static stbtt__buf stbtt__dict_get(stbtt__buf *b, int key) -{ - stbtt__buf_seek(b, 0); - while (b->cursor < b->size) { - int start = b->cursor, end, op; - while (stbtt__buf_peek8(b) >= 28) - stbtt__cff_skip_operand(b); - end = b->cursor; - op = stbtt__buf_get8(b); - if (op == 12) op = stbtt__buf_get8(b) | 0x100; - if (op == key) return stbtt__buf_range(b, start, end-start); - } - return stbtt__buf_range(b, 0, 0); -} - -static void stbtt__dict_get_ints(stbtt__buf *b, int key, int outcount, stbtt_uint32 *out) -{ - int i; - stbtt__buf operands = stbtt__dict_get(b, key); - for (i = 0; i < outcount && operands.cursor < operands.size; i++) - out[i] = stbtt__cff_int(&operands); -} - -static int stbtt__cff_index_count(stbtt__buf *b) -{ - stbtt__buf_seek(b, 0); - return stbtt__buf_get16(b); -} - -static stbtt__buf stbtt__cff_index_get(stbtt__buf b, int i) -{ - int count, offsize, start, end; - stbtt__buf_seek(&b, 0); - count = stbtt__buf_get16(&b); - offsize = stbtt__buf_get8(&b); - STBTT_assert(i >= 0 && i < count); - STBTT_assert(offsize >= 1 && offsize <= 4); - stbtt__buf_skip(&b, i*offsize); - start = stbtt__buf_get(&b, offsize); - end = stbtt__buf_get(&b, offsize); - return stbtt__buf_range(&b, 2+(count+1)*offsize+start, end - start); -} - -////////////////////////////////////////////////////////////////////////// -// -// accessors to parse data from file -// - -// on platforms that don't allow misaligned reads, if we want to allow -// truetype fonts that aren't padded to alignment, define ALLOW_UNALIGNED_TRUETYPE - -#define ttBYTE(p) (* (stbtt_uint8 *) (p)) -#define ttCHAR(p) (* (stbtt_int8 *) (p)) -#define ttFixed(p) ttLONG(p) - -static stbtt_uint16 ttUSHORT(stbtt_uint8 *p) { return p[0]*256 + p[1]; } -static stbtt_int16 ttSHORT(stbtt_uint8 *p) { return p[0]*256 + p[1]; } -static stbtt_uint32 ttULONG(stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } -static stbtt_int32 ttLONG(stbtt_uint8 *p) { return (p[0]<<24) + (p[1]<<16) + (p[2]<<8) + p[3]; } - -#define stbtt_tag4(p,c0,c1,c2,c3) ((p)[0] == (c0) && (p)[1] == (c1) && (p)[2] == (c2) && (p)[3] == (c3)) -#define stbtt_tag(p,str) stbtt_tag4(p,str[0],str[1],str[2],str[3]) - -static int stbtt__isfont(stbtt_uint8 *font) -{ - // check the version number - if (stbtt_tag4(font, '1',0,0,0)) return 1; // TrueType 1 - if (stbtt_tag(font, "typ1")) return 1; // TrueType with type 1 font -- we don't support this! - if (stbtt_tag(font, "OTTO")) return 1; // OpenType with CFF - if (stbtt_tag4(font, 0,1,0,0)) return 1; // OpenType 1.0 - if (stbtt_tag(font, "true")) return 1; // Apple specification for TrueType fonts - return 0; -} - -// @OPTIMIZE: binary search -static stbtt_uint32 stbtt__find_table(stbtt_uint8 *data, stbtt_uint32 fontstart, const char *tag) -{ - stbtt_int32 num_tables = ttUSHORT(data+fontstart+4); - stbtt_uint32 tabledir = fontstart + 12; - stbtt_int32 i; - for (i=0; i < num_tables; ++i) { - stbtt_uint32 loc = tabledir + 16*i; - if (stbtt_tag(data+loc+0, tag)) - return ttULONG(data+loc+8); - } - return 0; -} - -static int stbtt_GetFontOffsetForIndex_internal(unsigned char *font_collection, int index) -{ - // if it's just a font, there's only one valid index - if (stbtt__isfont(font_collection)) - return index == 0 ? 0 : -1; - - // check if it's a TTC - if (stbtt_tag(font_collection, "ttcf")) { - // version 1? - if (ttULONG(font_collection+4) == 0x00010000 || ttULONG(font_collection+4) == 0x00020000) { - stbtt_int32 n = ttLONG(font_collection+8); - if (index >= n) - return -1; - return ttULONG(font_collection+12+index*4); - } - } - return -1; -} - -static int stbtt_GetNumberOfFonts_internal(unsigned char *font_collection) -{ - // if it's just a font, there's only one valid font - if (stbtt__isfont(font_collection)) - return 1; - - // check if it's a TTC - if (stbtt_tag(font_collection, "ttcf")) { - // version 1? - if (ttULONG(font_collection+4) == 0x00010000 || ttULONG(font_collection+4) == 0x00020000) { - return ttLONG(font_collection+8); - } - } - return 0; -} - -static stbtt__buf stbtt__get_subrs(stbtt__buf cff, stbtt__buf fontdict) -{ - stbtt_uint32 subrsoff = 0, private_loc[2] = { 0, 0 }; - stbtt__buf pdict; - stbtt__dict_get_ints(&fontdict, 18, 2, private_loc); - if (!private_loc[1] || !private_loc[0]) return stbtt__new_buf(NULL, 0); - pdict = stbtt__buf_range(&cff, private_loc[1], private_loc[0]); - stbtt__dict_get_ints(&pdict, 19, 1, &subrsoff); - if (!subrsoff) return stbtt__new_buf(NULL, 0); - stbtt__buf_seek(&cff, private_loc[1]+subrsoff); - return stbtt__cff_get_index(&cff); -} - -static int stbtt_InitFont_internal(stbtt_fontinfo *info, unsigned char *data, int fontstart) -{ - stbtt_uint32 cmap, t; - stbtt_int32 i,numTables; - - info->data = data; - info->fontstart = fontstart; - info->cff = stbtt__new_buf(NULL, 0); - - cmap = stbtt__find_table(data, fontstart, "cmap"); // required - info->loca = stbtt__find_table(data, fontstart, "loca"); // required - info->head = stbtt__find_table(data, fontstart, "head"); // required - info->glyf = stbtt__find_table(data, fontstart, "glyf"); // required - info->hhea = stbtt__find_table(data, fontstart, "hhea"); // required - info->hmtx = stbtt__find_table(data, fontstart, "hmtx"); // required - info->kern = stbtt__find_table(data, fontstart, "kern"); // not required - info->gpos = stbtt__find_table(data, fontstart, "GPOS"); // not required - - if (!cmap || !info->head || !info->hhea || !info->hmtx) - return 0; - if (info->glyf) { - // required for truetype - if (!info->loca) return 0; - } else { - // initialization for CFF / Type2 fonts (OTF) - stbtt__buf b, topdict, topdictidx; - stbtt_uint32 cstype = 2, charstrings = 0, fdarrayoff = 0, fdselectoff = 0; - stbtt_uint32 cff; - - cff = stbtt__find_table(data, fontstart, "CFF "); - if (!cff) return 0; - - info->fontdicts = stbtt__new_buf(NULL, 0); - info->fdselect = stbtt__new_buf(NULL, 0); - - // @TODO this should use size from table (not 512MB) - info->cff = stbtt__new_buf(data+cff, 512*1024*1024); - b = info->cff; - - // read the header - stbtt__buf_skip(&b, 2); - stbtt__buf_seek(&b, stbtt__buf_get8(&b)); // hdrsize - - // @TODO the name INDEX could list multiple fonts, - // but we just use the first one. - stbtt__cff_get_index(&b); // name INDEX - topdictidx = stbtt__cff_get_index(&b); - topdict = stbtt__cff_index_get(topdictidx, 0); - stbtt__cff_get_index(&b); // string INDEX - info->gsubrs = stbtt__cff_get_index(&b); - - stbtt__dict_get_ints(&topdict, 17, 1, &charstrings); - stbtt__dict_get_ints(&topdict, 0x100 | 6, 1, &cstype); - stbtt__dict_get_ints(&topdict, 0x100 | 36, 1, &fdarrayoff); - stbtt__dict_get_ints(&topdict, 0x100 | 37, 1, &fdselectoff); - info->subrs = stbtt__get_subrs(b, topdict); - - // we only support Type 2 charstrings - if (cstype != 2) return 0; - if (charstrings == 0) return 0; - - if (fdarrayoff) { - // looks like a CID font - if (!fdselectoff) return 0; - stbtt__buf_seek(&b, fdarrayoff); - info->fontdicts = stbtt__cff_get_index(&b); - info->fdselect = stbtt__buf_range(&b, fdselectoff, b.size-fdselectoff); - } - - stbtt__buf_seek(&b, charstrings); - info->charstrings = stbtt__cff_get_index(&b); - } - - t = stbtt__find_table(data, fontstart, "maxp"); - if (t) - info->numGlyphs = ttUSHORT(data+t+4); - else - info->numGlyphs = 0xffff; - - // find a cmap encoding table we understand *now* to avoid searching - // later. (todo: could make this installable) - // the same regardless of glyph. - numTables = ttUSHORT(data + cmap + 2); - info->index_map = 0; - for (i=0; i < numTables; ++i) { - stbtt_uint32 encoding_record = cmap + 4 + 8 * i; - // find an encoding we understand: - switch(ttUSHORT(data+encoding_record)) { - case STBTT_PLATFORM_ID_MICROSOFT: - switch (ttUSHORT(data+encoding_record+2)) { - case STBTT_MS_EID_UNICODE_BMP: - case STBTT_MS_EID_UNICODE_FULL: - // MS/Unicode - info->index_map = cmap + ttULONG(data+encoding_record+4); - break; - } - break; - case STBTT_PLATFORM_ID_UNICODE: - // Mac/iOS has these - // all the encodingIDs are unicode, so we don't bother to check it - info->index_map = cmap + ttULONG(data+encoding_record+4); - break; - } - } - if (info->index_map == 0) - return 0; - - info->indexToLocFormat = ttUSHORT(data+info->head + 50); - return 1; -} - -STBTT_DEF int stbtt_FindGlyphIndex(const stbtt_fontinfo *info, int unicode_codepoint) -{ - stbtt_uint8 *data = info->data; - stbtt_uint32 index_map = info->index_map; - - stbtt_uint16 format = ttUSHORT(data + index_map + 0); - if (format == 0) { // apple byte encoding - stbtt_int32 bytes = ttUSHORT(data + index_map + 2); - if (unicode_codepoint < bytes-6) - return ttBYTE(data + index_map + 6 + unicode_codepoint); - return 0; - } else if (format == 6) { - stbtt_uint32 first = ttUSHORT(data + index_map + 6); - stbtt_uint32 count = ttUSHORT(data + index_map + 8); - if ((stbtt_uint32) unicode_codepoint >= first && (stbtt_uint32) unicode_codepoint < first+count) - return ttUSHORT(data + index_map + 10 + (unicode_codepoint - first)*2); - return 0; - } else if (format == 2) { - STBTT_assert(0); // @TODO: high-byte mapping for japanese/chinese/korean - return 0; - } else if (format == 4) { // standard mapping for windows fonts: binary search collection of ranges - stbtt_uint16 segcount = ttUSHORT(data+index_map+6) >> 1; - stbtt_uint16 searchRange = ttUSHORT(data+index_map+8) >> 1; - stbtt_uint16 entrySelector = ttUSHORT(data+index_map+10); - stbtt_uint16 rangeShift = ttUSHORT(data+index_map+12) >> 1; - - // do a binary search of the segments - stbtt_uint32 endCount = index_map + 14; - stbtt_uint32 search = endCount; - - if (unicode_codepoint > 0xffff) - return 0; - - // they lie from endCount .. endCount + segCount - // but searchRange is the nearest power of two, so... - if (unicode_codepoint >= ttUSHORT(data + search + rangeShift*2)) - search += rangeShift*2; - - // now decrement to bias correctly to find smallest - search -= 2; - while (entrySelector) { - stbtt_uint16 end; - searchRange >>= 1; - end = ttUSHORT(data + search + searchRange*2); - if (unicode_codepoint > end) - search += searchRange*2; - --entrySelector; - } - search += 2; - - { - stbtt_uint16 offset, start; - stbtt_uint16 item = (stbtt_uint16) ((search - endCount) >> 1); - - STBTT_assert(unicode_codepoint <= ttUSHORT(data + endCount + 2*item)); - start = ttUSHORT(data + index_map + 14 + segcount*2 + 2 + 2*item); - if (unicode_codepoint < start) - return 0; - - offset = ttUSHORT(data + index_map + 14 + segcount*6 + 2 + 2*item); - if (offset == 0) - return (stbtt_uint16) (unicode_codepoint + ttSHORT(data + index_map + 14 + segcount*4 + 2 + 2*item)); - - return ttUSHORT(data + offset + (unicode_codepoint-start)*2 + index_map + 14 + segcount*6 + 2 + 2*item); - } - } else if (format == 12 || format == 13) { - stbtt_uint32 ngroups = ttULONG(data+index_map+12); - stbtt_int32 low,high; - low = 0; high = (stbtt_int32)ngroups; - // Binary search the right group. - while (low < high) { - stbtt_int32 mid = low + ((high-low) >> 1); // rounds down, so low <= mid < high - stbtt_uint32 start_char = ttULONG(data+index_map+16+mid*12); - stbtt_uint32 end_char = ttULONG(data+index_map+16+mid*12+4); - if ((stbtt_uint32) unicode_codepoint < start_char) - high = mid; - else if ((stbtt_uint32) unicode_codepoint > end_char) - low = mid+1; - else { - stbtt_uint32 start_glyph = ttULONG(data+index_map+16+mid*12+8); - if (format == 12) - return start_glyph + unicode_codepoint-start_char; - else // format == 13 - return start_glyph; - } - } - return 0; // not found - } - // @TODO - STBTT_assert(0); - return 0; -} - -STBTT_DEF int stbtt_GetCodepointShape(const stbtt_fontinfo *info, int unicode_codepoint, stbtt_vertex **vertices) -{ - return stbtt_GetGlyphShape(info, stbtt_FindGlyphIndex(info, unicode_codepoint), vertices); -} - -static void stbtt_setvertex(stbtt_vertex *v, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy) -{ - v->type = type; - v->x = (stbtt_int16) x; - v->y = (stbtt_int16) y; - v->cx = (stbtt_int16) cx; - v->cy = (stbtt_int16) cy; -} - -static int stbtt__GetGlyfOffset(const stbtt_fontinfo *info, int glyph_index) -{ - int g1,g2; - - STBTT_assert(!info->cff.size); - - if (glyph_index >= info->numGlyphs) return -1; // glyph index out of range - if (info->indexToLocFormat >= 2) return -1; // unknown index->glyph map format - - if (info->indexToLocFormat == 0) { - g1 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2) * 2; - g2 = info->glyf + ttUSHORT(info->data + info->loca + glyph_index * 2 + 2) * 2; - } else { - g1 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4); - g2 = info->glyf + ttULONG (info->data + info->loca + glyph_index * 4 + 4); - } - - return g1==g2 ? -1 : g1; // if length is 0, return -1 -} - -static int stbtt__GetGlyphInfoT2(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1); - -STBTT_DEF int stbtt_GetGlyphBox(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1) -{ - if (info->cff.size) { - stbtt__GetGlyphInfoT2(info, glyph_index, x0, y0, x1, y1); - } else { - int g = stbtt__GetGlyfOffset(info, glyph_index); - if (g < 0) return 0; - - if (x0) *x0 = ttSHORT(info->data + g + 2); - if (y0) *y0 = ttSHORT(info->data + g + 4); - if (x1) *x1 = ttSHORT(info->data + g + 6); - if (y1) *y1 = ttSHORT(info->data + g + 8); - } - return 1; -} - -STBTT_DEF int stbtt_GetCodepointBox(const stbtt_fontinfo *info, int codepoint, int *x0, int *y0, int *x1, int *y1) -{ - return stbtt_GetGlyphBox(info, stbtt_FindGlyphIndex(info,codepoint), x0,y0,x1,y1); -} - -STBTT_DEF int stbtt_IsGlyphEmpty(const stbtt_fontinfo *info, int glyph_index) -{ - stbtt_int16 numberOfContours; - int g; - if (info->cff.size) - return stbtt__GetGlyphInfoT2(info, glyph_index, NULL, NULL, NULL, NULL) == 0; - g = stbtt__GetGlyfOffset(info, glyph_index); - if (g < 0) return 1; - numberOfContours = ttSHORT(info->data + g); - return numberOfContours == 0; -} - -static int stbtt__close_shape(stbtt_vertex *vertices, int num_vertices, int was_off, int start_off, - stbtt_int32 sx, stbtt_int32 sy, stbtt_int32 scx, stbtt_int32 scy, stbtt_int32 cx, stbtt_int32 cy) -{ - if (start_off) { - if (was_off) - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+scx)>>1, (cy+scy)>>1, cx,cy); - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, sx,sy,scx,scy); - } else { - if (was_off) - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve,sx,sy,cx,cy); - else - stbtt_setvertex(&vertices[num_vertices++], STBTT_vline,sx,sy,0,0); - } - return num_vertices; -} - -static int stbtt__GetGlyphShapeTT(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) -{ - stbtt_int16 numberOfContours; - stbtt_uint8 *endPtsOfContours; - stbtt_uint8 *data = info->data; - stbtt_vertex *vertices=0; - int num_vertices=0; - int g = stbtt__GetGlyfOffset(info, glyph_index); - - *pvertices = NULL; - - if (g < 0) return 0; - - numberOfContours = ttSHORT(data + g); - - if (numberOfContours > 0) { - stbtt_uint8 flags=0,flagcount; - stbtt_int32 ins, i,j=0,m,n, next_move, was_off=0, off, start_off=0; - stbtt_int32 x,y,cx,cy,sx,sy, scx,scy; - stbtt_uint8 *points; - endPtsOfContours = (data + g + 10); - ins = ttUSHORT(data + g + 10 + numberOfContours * 2); - points = data + g + 10 + numberOfContours * 2 + 2 + ins; - - n = 1+ttUSHORT(endPtsOfContours + numberOfContours*2-2); - - m = n + 2*numberOfContours; // a loose bound on how many vertices we might need - vertices = (stbtt_vertex *) STBTT_malloc(m * sizeof(vertices[0]), info->userdata); - if (vertices == 0) - return 0; - - next_move = 0; - flagcount=0; - - // in first pass, we load uninterpreted data into the allocated array - // above, shifted to the end of the array so we won't overwrite it when - // we create our final data starting from the front - - off = m - n; // starting offset for uninterpreted data, regardless of how m ends up being calculated - - // first load flags - - for (i=0; i < n; ++i) { - if (flagcount == 0) { - flags = *points++; - if (flags & 8) - flagcount = *points++; - } else - --flagcount; - vertices[off+i].type = flags; - } - - // now load x coordinates - x=0; - for (i=0; i < n; ++i) { - flags = vertices[off+i].type; - if (flags & 2) { - stbtt_int16 dx = *points++; - x += (flags & 16) ? dx : -dx; // ??? - } else { - if (!(flags & 16)) { - x = x + (stbtt_int16) (points[0]*256 + points[1]); - points += 2; - } - } - vertices[off+i].x = (stbtt_int16) x; - } - - // now load y coordinates - y=0; - for (i=0; i < n; ++i) { - flags = vertices[off+i].type; - if (flags & 4) { - stbtt_int16 dy = *points++; - y += (flags & 32) ? dy : -dy; // ??? - } else { - if (!(flags & 32)) { - y = y + (stbtt_int16) (points[0]*256 + points[1]); - points += 2; - } - } - vertices[off+i].y = (stbtt_int16) y; - } - - // now convert them to our format - num_vertices=0; - sx = sy = cx = cy = scx = scy = 0; - for (i=0; i < n; ++i) { - flags = vertices[off+i].type; - x = (stbtt_int16) vertices[off+i].x; - y = (stbtt_int16) vertices[off+i].y; - - if (next_move == i) { - if (i != 0) - num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); - - // now start the new one - start_off = !(flags & 1); - if (start_off) { - // if we start off with an off-curve point, then when we need to find a point on the curve - // where we can start, and we need to save some state for when we wraparound. - scx = x; - scy = y; - if (!(vertices[off+i+1].type & 1)) { - // next point is also a curve point, so interpolate an on-point curve - sx = (x + (stbtt_int32) vertices[off+i+1].x) >> 1; - sy = (y + (stbtt_int32) vertices[off+i+1].y) >> 1; - } else { - // otherwise just use the next point as our start point - sx = (stbtt_int32) vertices[off+i+1].x; - sy = (stbtt_int32) vertices[off+i+1].y; - ++i; // we're using point i+1 as the starting point, so skip it - } - } else { - sx = x; - sy = y; - } - stbtt_setvertex(&vertices[num_vertices++], STBTT_vmove,sx,sy,0,0); - was_off = 0; - next_move = 1 + ttUSHORT(endPtsOfContours+j*2); - ++j; - } else { - if (!(flags & 1)) { // if it's a curve - if (was_off) // two off-curve control points in a row means interpolate an on-curve midpoint - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, (cx+x)>>1, (cy+y)>>1, cx, cy); - cx = x; - cy = y; - was_off = 1; - } else { - if (was_off) - stbtt_setvertex(&vertices[num_vertices++], STBTT_vcurve, x,y, cx, cy); - else - stbtt_setvertex(&vertices[num_vertices++], STBTT_vline, x,y,0,0); - was_off = 0; - } - } - } - num_vertices = stbtt__close_shape(vertices, num_vertices, was_off, start_off, sx,sy,scx,scy,cx,cy); - } else if (numberOfContours == -1) { - // Compound shapes. - int more = 1; - stbtt_uint8 *comp = data + g + 10; - num_vertices = 0; - vertices = 0; - while (more) { - stbtt_uint16 flags, gidx; - int comp_num_verts = 0, i; - stbtt_vertex *comp_verts = 0, *tmp = 0; - float mtx[6] = {1,0,0,1,0,0}, m, n; - - flags = ttSHORT(comp); comp+=2; - gidx = ttSHORT(comp); comp+=2; - - if (flags & 2) { // XY values - if (flags & 1) { // shorts - mtx[4] = ttSHORT(comp); comp+=2; - mtx[5] = ttSHORT(comp); comp+=2; - } else { - mtx[4] = ttCHAR(comp); comp+=1; - mtx[5] = ttCHAR(comp); comp+=1; - } - } - else { - // @TODO handle matching point - STBTT_assert(0); - } - if (flags & (1<<3)) { // WE_HAVE_A_SCALE - mtx[0] = mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[1] = mtx[2] = 0; - } else if (flags & (1<<6)) { // WE_HAVE_AN_X_AND_YSCALE - mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[1] = mtx[2] = 0; - mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; - } else if (flags & (1<<7)) { // WE_HAVE_A_TWO_BY_TWO - mtx[0] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[1] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[2] = ttSHORT(comp)/16384.0f; comp+=2; - mtx[3] = ttSHORT(comp)/16384.0f; comp+=2; - } - - // Find transformation scales. - m = (float) STBTT_sqrt(mtx[0]*mtx[0] + mtx[1]*mtx[1]); - n = (float) STBTT_sqrt(mtx[2]*mtx[2] + mtx[3]*mtx[3]); - - // Get indexed glyph. - comp_num_verts = stbtt_GetGlyphShape(info, gidx, &comp_verts); - if (comp_num_verts > 0) { - // Transform vertices. - for (i = 0; i < comp_num_verts; ++i) { - stbtt_vertex* v = &comp_verts[i]; - stbtt_vertex_type x,y; - x=v->x; y=v->y; - v->x = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); - v->y = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); - x=v->cx; y=v->cy; - v->cx = (stbtt_vertex_type)(m * (mtx[0]*x + mtx[2]*y + mtx[4])); - v->cy = (stbtt_vertex_type)(n * (mtx[1]*x + mtx[3]*y + mtx[5])); - } - // Append vertices. - tmp = (stbtt_vertex*)STBTT_malloc((num_vertices+comp_num_verts)*sizeof(stbtt_vertex), info->userdata); - if (!tmp) { - if (vertices) STBTT_free(vertices, info->userdata); - if (comp_verts) STBTT_free(comp_verts, info->userdata); - return 0; - } - if (num_vertices > 0) STBTT_memcpy(tmp, vertices, num_vertices*sizeof(stbtt_vertex)); //-V595 - STBTT_memcpy(tmp+num_vertices, comp_verts, comp_num_verts*sizeof(stbtt_vertex)); - if (vertices) STBTT_free(vertices, info->userdata); - vertices = tmp; - STBTT_free(comp_verts, info->userdata); - num_vertices += comp_num_verts; - } - // More components ? - more = flags & (1<<5); - } - } else if (numberOfContours < 0) { - // @TODO other compound variations? - STBTT_assert(0); - } else { - // numberOfCounters == 0, do nothing - } - - *pvertices = vertices; - return num_vertices; -} - -typedef struct -{ - int bounds; - int started; - float first_x, first_y; - float x, y; - stbtt_int32 min_x, max_x, min_y, max_y; - - stbtt_vertex *pvertices; - int num_vertices; -} stbtt__csctx; - -#define STBTT__CSCTX_INIT(bounds) {bounds,0, 0,0, 0,0, 0,0,0,0, NULL, 0} - -static void stbtt__track_vertex(stbtt__csctx *c, stbtt_int32 x, stbtt_int32 y) -{ - if (x > c->max_x || !c->started) c->max_x = x; - if (y > c->max_y || !c->started) c->max_y = y; - if (x < c->min_x || !c->started) c->min_x = x; - if (y < c->min_y || !c->started) c->min_y = y; - c->started = 1; -} - -static void stbtt__csctx_v(stbtt__csctx *c, stbtt_uint8 type, stbtt_int32 x, stbtt_int32 y, stbtt_int32 cx, stbtt_int32 cy, stbtt_int32 cx1, stbtt_int32 cy1) -{ - if (c->bounds) { - stbtt__track_vertex(c, x, y); - if (type == STBTT_vcubic) { - stbtt__track_vertex(c, cx, cy); - stbtt__track_vertex(c, cx1, cy1); - } - } else { - stbtt_setvertex(&c->pvertices[c->num_vertices], type, x, y, cx, cy); - c->pvertices[c->num_vertices].cx1 = (stbtt_int16) cx1; - c->pvertices[c->num_vertices].cy1 = (stbtt_int16) cy1; - } - c->num_vertices++; -} - -static void stbtt__csctx_close_shape(stbtt__csctx *ctx) -{ - if (ctx->first_x != ctx->x || ctx->first_y != ctx->y) - stbtt__csctx_v(ctx, STBTT_vline, (int)ctx->first_x, (int)ctx->first_y, 0, 0, 0, 0); -} - -static void stbtt__csctx_rmove_to(stbtt__csctx *ctx, float dx, float dy) -{ - stbtt__csctx_close_shape(ctx); - ctx->first_x = ctx->x = ctx->x + dx; - ctx->first_y = ctx->y = ctx->y + dy; - stbtt__csctx_v(ctx, STBTT_vmove, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0); -} - -static void stbtt__csctx_rline_to(stbtt__csctx *ctx, float dx, float dy) -{ - ctx->x += dx; - ctx->y += dy; - stbtt__csctx_v(ctx, STBTT_vline, (int)ctx->x, (int)ctx->y, 0, 0, 0, 0); -} - -static void stbtt__csctx_rccurve_to(stbtt__csctx *ctx, float dx1, float dy1, float dx2, float dy2, float dx3, float dy3) -{ - float cx1 = ctx->x + dx1; - float cy1 = ctx->y + dy1; - float cx2 = cx1 + dx2; - float cy2 = cy1 + dy2; - ctx->x = cx2 + dx3; - ctx->y = cy2 + dy3; - stbtt__csctx_v(ctx, STBTT_vcubic, (int)ctx->x, (int)ctx->y, (int)cx1, (int)cy1, (int)cx2, (int)cy2); -} - -static stbtt__buf stbtt__get_subr(stbtt__buf idx, int n) -{ - int count = stbtt__cff_index_count(&idx); - int bias = 107; - if (count >= 33900) - bias = 32768; - else if (count >= 1240) - bias = 1131; - n += bias; - if (n < 0 || n >= count) - return stbtt__new_buf(NULL, 0); - return stbtt__cff_index_get(idx, n); -} - -static stbtt__buf stbtt__cid_get_glyph_subrs(const stbtt_fontinfo *info, int glyph_index) -{ - stbtt__buf fdselect = info->fdselect; - int nranges, start, end, v, fmt, fdselector = -1, i; - - stbtt__buf_seek(&fdselect, 0); - fmt = stbtt__buf_get8(&fdselect); - if (fmt == 0) { - // untested - stbtt__buf_skip(&fdselect, glyph_index); - fdselector = stbtt__buf_get8(&fdselect); - } else if (fmt == 3) { - nranges = stbtt__buf_get16(&fdselect); - start = stbtt__buf_get16(&fdselect); - for (i = 0; i < nranges; i++) { - v = stbtt__buf_get8(&fdselect); - end = stbtt__buf_get16(&fdselect); - if (glyph_index >= start && glyph_index < end) { - fdselector = v; - break; - } - start = end; - } - } - if (fdselector == -1) stbtt__new_buf(NULL, 0); - return stbtt__get_subrs(info->cff, stbtt__cff_index_get(info->fontdicts, fdselector)); -} - -static int stbtt__run_charstring(const stbtt_fontinfo *info, int glyph_index, stbtt__csctx *c) -{ - int in_header = 1, maskbits = 0, subr_stack_height = 0, sp = 0, v, i, b0; - int has_subrs = 0, clear_stack; - float s[48]; - stbtt__buf subr_stack[10], subrs = info->subrs, b; - float f; - -#define STBTT__CSERR(s) (0) - - // this currently ignores the initial width value, which isn't needed if we have hmtx - b = stbtt__cff_index_get(info->charstrings, glyph_index); - while (b.cursor < b.size) { - i = 0; - clear_stack = 1; - b0 = stbtt__buf_get8(&b); - switch (b0) { - // @TODO implement hinting - case 0x13: // hintmask - case 0x14: // cntrmask - if (in_header) - maskbits += (sp / 2); // implicit "vstem" - in_header = 0; - stbtt__buf_skip(&b, (maskbits + 7) / 8); - break; - - case 0x01: // hstem - case 0x03: // vstem - case 0x12: // hstemhm - case 0x17: // vstemhm - maskbits += (sp / 2); - break; - - case 0x15: // rmoveto - in_header = 0; - if (sp < 2) return STBTT__CSERR("rmoveto stack"); - stbtt__csctx_rmove_to(c, s[sp-2], s[sp-1]); - break; - case 0x04: // vmoveto - in_header = 0; - if (sp < 1) return STBTT__CSERR("vmoveto stack"); - stbtt__csctx_rmove_to(c, 0, s[sp-1]); - break; - case 0x16: // hmoveto - in_header = 0; - if (sp < 1) return STBTT__CSERR("hmoveto stack"); - stbtt__csctx_rmove_to(c, s[sp-1], 0); - break; - - case 0x05: // rlineto - if (sp < 2) return STBTT__CSERR("rlineto stack"); - for (; i + 1 < sp; i += 2) - stbtt__csctx_rline_to(c, s[i], s[i+1]); - break; - - // hlineto/vlineto and vhcurveto/hvcurveto alternate horizontal and vertical - // starting from a different place. - - case 0x07: // vlineto - if (sp < 1) return STBTT__CSERR("vlineto stack"); - goto vlineto; - case 0x06: // hlineto - if (sp < 1) return STBTT__CSERR("hlineto stack"); - for (;;) { - if (i >= sp) break; - stbtt__csctx_rline_to(c, s[i], 0); - i++; - vlineto: - if (i >= sp) break; - stbtt__csctx_rline_to(c, 0, s[i]); - i++; - } - break; - - case 0x1F: // hvcurveto - if (sp < 4) return STBTT__CSERR("hvcurveto stack"); - goto hvcurveto; - case 0x1E: // vhcurveto - if (sp < 4) return STBTT__CSERR("vhcurveto stack"); - for (;;) { - if (i + 3 >= sp) break; - stbtt__csctx_rccurve_to(c, 0, s[i], s[i+1], s[i+2], s[i+3], (sp - i == 5) ? s[i + 4] : 0.0f); - i += 4; - hvcurveto: - if (i + 3 >= sp) break; - stbtt__csctx_rccurve_to(c, s[i], 0, s[i+1], s[i+2], (sp - i == 5) ? s[i+4] : 0.0f, s[i+3]); - i += 4; - } - break; - - case 0x08: // rrcurveto - if (sp < 6) return STBTT__CSERR("rcurveline stack"); - for (; i + 5 < sp; i += 6) - stbtt__csctx_rccurve_to(c, s[i], s[i+1], s[i+2], s[i+3], s[i+4], s[i+5]); - break; - - case 0x18: // rcurveline - if (sp < 8) return STBTT__CSERR("rcurveline stack"); - for (; i + 5 < sp - 2; i += 6) - stbtt__csctx_rccurve_to(c, s[i], s[i+1], s[i+2], s[i+3], s[i+4], s[i+5]); - if (i + 1 >= sp) return STBTT__CSERR("rcurveline stack"); - stbtt__csctx_rline_to(c, s[i], s[i+1]); - break; - - case 0x19: // rlinecurve - if (sp < 8) return STBTT__CSERR("rlinecurve stack"); - for (; i + 1 < sp - 6; i += 2) - stbtt__csctx_rline_to(c, s[i], s[i+1]); - if (i + 5 >= sp) return STBTT__CSERR("rlinecurve stack"); - stbtt__csctx_rccurve_to(c, s[i], s[i+1], s[i+2], s[i+3], s[i+4], s[i+5]); - break; - - case 0x1A: // vvcurveto - case 0x1B: // hhcurveto - if (sp < 4) return STBTT__CSERR("(vv|hh)curveto stack"); - f = 0.0; - if (sp & 1) { f = s[i]; i++; } - for (; i + 3 < sp; i += 4) { - if (b0 == 0x1B) - stbtt__csctx_rccurve_to(c, s[i], f, s[i+1], s[i+2], s[i+3], 0.0); - else - stbtt__csctx_rccurve_to(c, f, s[i], s[i+1], s[i+2], 0.0, s[i+3]); - f = 0.0; - } - break; - - case 0x0A: // callsubr - if (!has_subrs) { - if (info->fdselect.size) - subrs = stbtt__cid_get_glyph_subrs(info, glyph_index); - has_subrs = 1; - } - // fallthrough - case 0x1D: // callgsubr - if (sp < 1) return STBTT__CSERR("call(g|)subr stack"); - v = (int) s[--sp]; - if (subr_stack_height >= 10) return STBTT__CSERR("recursion limit"); - subr_stack[subr_stack_height++] = b; - b = stbtt__get_subr(b0 == 0x0A ? subrs : info->gsubrs, v); - if (b.size == 0) return STBTT__CSERR("subr not found"); - b.cursor = 0; - clear_stack = 0; - break; - - case 0x0B: // return - if (subr_stack_height <= 0) return STBTT__CSERR("return outside subr"); - b = subr_stack[--subr_stack_height]; - clear_stack = 0; - break; - - case 0x0E: // endchar - stbtt__csctx_close_shape(c); - return 1; - - case 0x0C: { // two-byte escape - float dx1, dx2, dx3, dx4, dx5, dx6, dy1, dy2, dy3, dy4, dy5, dy6; - float dx, dy; - int b1 = stbtt__buf_get8(&b); - switch (b1) { - // @TODO These "flex" implementations ignore the flex-depth and resolution, - // and always draw beziers. - case 0x22: // hflex - if (sp < 7) return STBTT__CSERR("hflex stack"); - dx1 = s[0]; - dx2 = s[1]; - dy2 = s[2]; - dx3 = s[3]; - dx4 = s[4]; - dx5 = s[5]; - dx6 = s[6]; - stbtt__csctx_rccurve_to(c, dx1, 0, dx2, dy2, dx3, 0); - stbtt__csctx_rccurve_to(c, dx4, 0, dx5, -dy2, dx6, 0); - break; - - case 0x23: // flex - if (sp < 13) return STBTT__CSERR("flex stack"); - dx1 = s[0]; - dy1 = s[1]; - dx2 = s[2]; - dy2 = s[3]; - dx3 = s[4]; - dy3 = s[5]; - dx4 = s[6]; - dy4 = s[7]; - dx5 = s[8]; - dy5 = s[9]; - dx6 = s[10]; - dy6 = s[11]; - //fd is s[12] - stbtt__csctx_rccurve_to(c, dx1, dy1, dx2, dy2, dx3, dy3); - stbtt__csctx_rccurve_to(c, dx4, dy4, dx5, dy5, dx6, dy6); - break; - - case 0x24: // hflex1 - if (sp < 9) return STBTT__CSERR("hflex1 stack"); - dx1 = s[0]; - dy1 = s[1]; - dx2 = s[2]; - dy2 = s[3]; - dx3 = s[4]; - dx4 = s[5]; - dx5 = s[6]; - dy5 = s[7]; - dx6 = s[8]; - stbtt__csctx_rccurve_to(c, dx1, dy1, dx2, dy2, dx3, 0); - stbtt__csctx_rccurve_to(c, dx4, 0, dx5, dy5, dx6, -(dy1+dy2+dy5)); - break; - - case 0x25: // flex1 - if (sp < 11) return STBTT__CSERR("flex1 stack"); - dx1 = s[0]; - dy1 = s[1]; - dx2 = s[2]; - dy2 = s[3]; - dx3 = s[4]; - dy3 = s[5]; - dx4 = s[6]; - dy4 = s[7]; - dx5 = s[8]; - dy5 = s[9]; - dx6 = dy6 = s[10]; - dx = dx1+dx2+dx3+dx4+dx5; - dy = dy1+dy2+dy3+dy4+dy5; - if (STBTT_fabs(dx) > STBTT_fabs(dy)) - dy6 = -dy; - else - dx6 = -dx; - stbtt__csctx_rccurve_to(c, dx1, dy1, dx2, dy2, dx3, dy3); - stbtt__csctx_rccurve_to(c, dx4, dy4, dx5, dy5, dx6, dy6); - break; - - default: - return STBTT__CSERR("unimplemented"); - } - } break; - - default: - if (b0 != 255 && b0 != 28 && (b0 < 32 || b0 > 254)) //-V560 - return STBTT__CSERR("reserved operator"); - - // push immediate - if (b0 == 255) { - f = (float)(stbtt_int32)stbtt__buf_get32(&b) / 0x10000; - } else { - stbtt__buf_skip(&b, -1); - f = (float)(stbtt_int16)stbtt__cff_int(&b); - } - if (sp >= 48) return STBTT__CSERR("push stack overflow"); - s[sp++] = f; - clear_stack = 0; - break; - } - if (clear_stack) sp = 0; - } - return STBTT__CSERR("no endchar"); - -#undef STBTT__CSERR -} - -static int stbtt__GetGlyphShapeT2(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) -{ - // runs the charstring twice, once to count and once to output (to avoid realloc) - stbtt__csctx count_ctx = STBTT__CSCTX_INIT(1); - stbtt__csctx output_ctx = STBTT__CSCTX_INIT(0); - if (stbtt__run_charstring(info, glyph_index, &count_ctx)) { - *pvertices = (stbtt_vertex*)STBTT_malloc(count_ctx.num_vertices*sizeof(stbtt_vertex), info->userdata); - output_ctx.pvertices = *pvertices; - if (stbtt__run_charstring(info, glyph_index, &output_ctx)) { - STBTT_assert(output_ctx.num_vertices == count_ctx.num_vertices); - return output_ctx.num_vertices; - } - } - *pvertices = NULL; - return 0; -} - -static int stbtt__GetGlyphInfoT2(const stbtt_fontinfo *info, int glyph_index, int *x0, int *y0, int *x1, int *y1) -{ - stbtt__csctx c = STBTT__CSCTX_INIT(1); - int r = stbtt__run_charstring(info, glyph_index, &c); - if (x0) *x0 = r ? c.min_x : 0; - if (y0) *y0 = r ? c.min_y : 0; - if (x1) *x1 = r ? c.max_x : 0; - if (y1) *y1 = r ? c.max_y : 0; - return r ? c.num_vertices : 0; -} - -STBTT_DEF int stbtt_GetGlyphShape(const stbtt_fontinfo *info, int glyph_index, stbtt_vertex **pvertices) -{ - if (!info->cff.size) - return stbtt__GetGlyphShapeTT(info, glyph_index, pvertices); - else - return stbtt__GetGlyphShapeT2(info, glyph_index, pvertices); -} - -STBTT_DEF void stbtt_GetGlyphHMetrics(const stbtt_fontinfo *info, int glyph_index, int *advanceWidth, int *leftSideBearing) -{ - stbtt_uint16 numOfLongHorMetrics = ttUSHORT(info->data+info->hhea + 34); - if (glyph_index < numOfLongHorMetrics) { - if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*glyph_index); - if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*glyph_index + 2); - } else { - if (advanceWidth) *advanceWidth = ttSHORT(info->data + info->hmtx + 4*(numOfLongHorMetrics-1)); - if (leftSideBearing) *leftSideBearing = ttSHORT(info->data + info->hmtx + 4*numOfLongHorMetrics + 2*(glyph_index - numOfLongHorMetrics)); - } -} - -static int stbtt__GetGlyphKernInfoAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2) -{ - stbtt_uint8 *data = info->data + info->kern; - stbtt_uint32 needle, straw; - int l, r, m; - - // we only look at the first table. it must be 'horizontal' and format 0. - if (!info->kern) - return 0; - if (ttUSHORT(data+2) < 1) // number of tables, need at least 1 - return 0; - if (ttUSHORT(data+8) != 1) // horizontal flag must be set in format - return 0; - - l = 0; - r = ttUSHORT(data+10) - 1; - needle = glyph1 << 16 | glyph2; - while (l <= r) { - m = (l + r) >> 1; - straw = ttULONG(data+18+(m*6)); // note: unaligned read - if (needle < straw) - r = m - 1; - else if (needle > straw) - l = m + 1; - else - return ttSHORT(data+22+(m*6)); - } - return 0; -} - -static stbtt_int32 stbtt__GetCoverageIndex(stbtt_uint8 *coverageTable, int glyph) -{ - stbtt_uint16 coverageFormat = ttUSHORT(coverageTable); - switch(coverageFormat) { - case 1: { - stbtt_uint16 glyphCount = ttUSHORT(coverageTable + 2); - - // Binary search. - stbtt_int32 l=0, r=glyphCount-1, m; - int straw, needle=glyph; - while (l <= r) { - stbtt_uint8 *glyphArray = coverageTable + 4; - stbtt_uint16 glyphID; - m = (l + r) >> 1; - glyphID = ttUSHORT(glyphArray + 2 * m); - straw = glyphID; - if (needle < straw) - r = m - 1; - else if (needle > straw) - l = m + 1; - else { - return m; - } - } - } break; - - case 2: { - stbtt_uint16 rangeCount = ttUSHORT(coverageTable + 2); - stbtt_uint8 *rangeArray = coverageTable + 4; - - // Binary search. - stbtt_int32 l=0, r=rangeCount-1, m; - int strawStart, strawEnd, needle=glyph; - while (l <= r) { - stbtt_uint8 *rangeRecord; - m = (l + r) >> 1; - rangeRecord = rangeArray + 6 * m; - strawStart = ttUSHORT(rangeRecord); - strawEnd = ttUSHORT(rangeRecord + 2); - if (needle < strawStart) - r = m - 1; - else if (needle > strawEnd) - l = m + 1; - else { - stbtt_uint16 startCoverageIndex = ttUSHORT(rangeRecord + 4); - return startCoverageIndex + glyph - strawStart; - } - } - } break; - - default: { - // There are no other cases. - STBTT_assert(0); - } break; - } - - return -1; -} - -static stbtt_int32 stbtt__GetGlyphClass(stbtt_uint8 *classDefTable, int glyph) -{ - stbtt_uint16 classDefFormat = ttUSHORT(classDefTable); - switch(classDefFormat) - { - case 1: { - stbtt_uint16 startGlyphID = ttUSHORT(classDefTable + 2); - stbtt_uint16 glyphCount = ttUSHORT(classDefTable + 4); - stbtt_uint8 *classDef1ValueArray = classDefTable + 6; - - if (glyph >= startGlyphID && glyph < startGlyphID + glyphCount) - return (stbtt_int32)ttUSHORT(classDef1ValueArray + 2 * (glyph - startGlyphID)); - - // [DEAR IMGUI] Commented to fix static analyzer warning - //classDefTable = classDef1ValueArray + 2 * glyphCount; - } break; - - case 2: { - stbtt_uint16 classRangeCount = ttUSHORT(classDefTable + 2); - stbtt_uint8 *classRangeRecords = classDefTable + 4; - - // Binary search. - stbtt_int32 l=0, r=classRangeCount-1, m; - int strawStart, strawEnd, needle=glyph; - while (l <= r) { - stbtt_uint8 *classRangeRecord; - m = (l + r) >> 1; - classRangeRecord = classRangeRecords + 6 * m; - strawStart = ttUSHORT(classRangeRecord); - strawEnd = ttUSHORT(classRangeRecord + 2); - if (needle < strawStart) - r = m - 1; - else if (needle > strawEnd) - l = m + 1; - else - return (stbtt_int32)ttUSHORT(classRangeRecord + 4); - } - - // [DEAR IMGUI] Commented to fix static analyzer warning - //classDefTable = classRangeRecords + 6 * classRangeCount; - } break; - - default: { - // There are no other cases. - STBTT_assert(0); - } break; - } - - return -1; -} - -// Define to STBTT_assert(x) if you want to break on unimplemented formats. -#define STBTT_GPOS_TODO_assert(x) - -static stbtt_int32 stbtt__GetGlyphGPOSInfoAdvance(const stbtt_fontinfo *info, int glyph1, int glyph2) -{ - stbtt_uint16 lookupListOffset; - stbtt_uint8 *lookupList; - stbtt_uint16 lookupCount; - stbtt_uint8 *data; - stbtt_int32 i; - - if (!info->gpos) return 0; - - data = info->data + info->gpos; - - if (ttUSHORT(data+0) != 1) return 0; // Major version 1 - if (ttUSHORT(data+2) != 0) return 0; // Minor version 0 - - lookupListOffset = ttUSHORT(data+8); - lookupList = data + lookupListOffset; - lookupCount = ttUSHORT(lookupList); - - for (i=0; i> 1; - pairValue = pairValueArray + (2 + valueRecordPairSizeInBytes) * m; - secondGlyph = ttUSHORT(pairValue); - straw = secondGlyph; - if (needle < straw) - r = m - 1; - else if (needle > straw) - l = m + 1; - else { - stbtt_int16 xAdvance = ttSHORT(pairValue + 2); - return xAdvance; - } - } - } break; - - case 2: { - stbtt_uint16 valueFormat1 = ttUSHORT(table + 4); - stbtt_uint16 valueFormat2 = ttUSHORT(table + 6); - - stbtt_uint16 classDef1Offset = ttUSHORT(table + 8); - stbtt_uint16 classDef2Offset = ttUSHORT(table + 10); - int glyph1class = stbtt__GetGlyphClass(table + classDef1Offset, glyph1); - int glyph2class = stbtt__GetGlyphClass(table + classDef2Offset, glyph2); - - stbtt_uint16 class1Count = ttUSHORT(table + 12); - stbtt_uint16 class2Count = ttUSHORT(table + 14); - STBTT_assert(glyph1class < class1Count); - STBTT_assert(glyph2class < class2Count); - - // TODO: Support more formats. - STBTT_GPOS_TODO_assert(valueFormat1 == 4); - if (valueFormat1 != 4) return 0; - STBTT_GPOS_TODO_assert(valueFormat2 == 0); - if (valueFormat2 != 0) return 0; - - if (glyph1class >= 0 && glyph1class < class1Count && glyph2class >= 0 && glyph2class < class2Count) { - stbtt_uint8 *class1Records = table + 16; - stbtt_uint8 *class2Records = class1Records + 2 * (glyph1class * class2Count); - stbtt_int16 xAdvance = ttSHORT(class2Records + 2 * glyph2class); - return xAdvance; - } - } break; - - default: { - // There are no other cases. - STBTT_assert(0); - break; - } // [DEAR IMGUI] removed ; - } - } - break; - } // [DEAR IMGUI] removed ; - - default: - // TODO: Implement other stuff. - break; - } - } - - return 0; -} - -STBTT_DEF int stbtt_GetGlyphKernAdvance(const stbtt_fontinfo *info, int g1, int g2) -{ - int xAdvance = 0; - - if (info->gpos) - xAdvance += stbtt__GetGlyphGPOSInfoAdvance(info, g1, g2); - - if (info->kern) - xAdvance += stbtt__GetGlyphKernInfoAdvance(info, g1, g2); - - return xAdvance; -} - -STBTT_DEF int stbtt_GetCodepointKernAdvance(const stbtt_fontinfo *info, int ch1, int ch2) -{ - if (!info->kern && !info->gpos) // if no kerning table, don't waste time looking up both codepoint->glyphs - return 0; - return stbtt_GetGlyphKernAdvance(info, stbtt_FindGlyphIndex(info,ch1), stbtt_FindGlyphIndex(info,ch2)); -} - -STBTT_DEF void stbtt_GetCodepointHMetrics(const stbtt_fontinfo *info, int codepoint, int *advanceWidth, int *leftSideBearing) -{ - stbtt_GetGlyphHMetrics(info, stbtt_FindGlyphIndex(info,codepoint), advanceWidth, leftSideBearing); -} - -STBTT_DEF void stbtt_GetFontVMetrics(const stbtt_fontinfo *info, int *ascent, int *descent, int *lineGap) -{ - if (ascent ) *ascent = ttSHORT(info->data+info->hhea + 4); - if (descent) *descent = ttSHORT(info->data+info->hhea + 6); - if (lineGap) *lineGap = ttSHORT(info->data+info->hhea + 8); -} - -STBTT_DEF int stbtt_GetFontVMetricsOS2(const stbtt_fontinfo *info, int *typoAscent, int *typoDescent, int *typoLineGap) -{ - int tab = stbtt__find_table(info->data, info->fontstart, "OS/2"); - if (!tab) - return 0; - if (typoAscent ) *typoAscent = ttSHORT(info->data+tab + 68); - if (typoDescent) *typoDescent = ttSHORT(info->data+tab + 70); - if (typoLineGap) *typoLineGap = ttSHORT(info->data+tab + 72); - return 1; -} - -STBTT_DEF void stbtt_GetFontBoundingBox(const stbtt_fontinfo *info, int *x0, int *y0, int *x1, int *y1) -{ - *x0 = ttSHORT(info->data + info->head + 36); - *y0 = ttSHORT(info->data + info->head + 38); - *x1 = ttSHORT(info->data + info->head + 40); - *y1 = ttSHORT(info->data + info->head + 42); -} - -STBTT_DEF float stbtt_ScaleForPixelHeight(const stbtt_fontinfo *info, float height) -{ - int fheight = ttSHORT(info->data + info->hhea + 4) - ttSHORT(info->data + info->hhea + 6); - return (float) height / fheight; -} - -STBTT_DEF float stbtt_ScaleForMappingEmToPixels(const stbtt_fontinfo *info, float pixels) -{ - int unitsPerEm = ttUSHORT(info->data + info->head + 18); - return pixels / unitsPerEm; -} - -STBTT_DEF void stbtt_FreeShape(const stbtt_fontinfo *info, stbtt_vertex *v) -{ - STBTT_free(v, info->userdata); -} - -////////////////////////////////////////////////////////////////////////////// -// -// antialiasing software rasterizer -// - -STBTT_DEF void stbtt_GetGlyphBitmapBoxSubpixel(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y,float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - int x0=0,y0=0,x1,y1; // =0 suppresses compiler warning - if (!stbtt_GetGlyphBox(font, glyph, &x0,&y0,&x1,&y1)) { - // e.g. space character - if (ix0) *ix0 = 0; - if (iy0) *iy0 = 0; - if (ix1) *ix1 = 0; - if (iy1) *iy1 = 0; - } else { - // move to integral bboxes (treating pixels as little squares, what pixels get touched)? - if (ix0) *ix0 = STBTT_ifloor( x0 * scale_x + shift_x); - if (iy0) *iy0 = STBTT_ifloor(-y1 * scale_y + shift_y); - if (ix1) *ix1 = STBTT_iceil ( x1 * scale_x + shift_x); - if (iy1) *iy1 = STBTT_iceil (-y0 * scale_y + shift_y); - } -} - -STBTT_DEF void stbtt_GetGlyphBitmapBox(const stbtt_fontinfo *font, int glyph, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - stbtt_GetGlyphBitmapBoxSubpixel(font, glyph, scale_x, scale_y,0.0f,0.0f, ix0, iy0, ix1, iy1); -} - -STBTT_DEF void stbtt_GetCodepointBitmapBoxSubpixel(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, float shift_x, float shift_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - stbtt_GetGlyphBitmapBoxSubpixel(font, stbtt_FindGlyphIndex(font,codepoint), scale_x, scale_y,shift_x,shift_y, ix0,iy0,ix1,iy1); -} - -STBTT_DEF void stbtt_GetCodepointBitmapBox(const stbtt_fontinfo *font, int codepoint, float scale_x, float scale_y, int *ix0, int *iy0, int *ix1, int *iy1) -{ - stbtt_GetCodepointBitmapBoxSubpixel(font, codepoint, scale_x, scale_y,0.0f,0.0f, ix0,iy0,ix1,iy1); -} - -////////////////////////////////////////////////////////////////////////////// -// -// Rasterizer - -typedef struct stbtt__hheap_chunk -{ - struct stbtt__hheap_chunk *next; -} stbtt__hheap_chunk; - -typedef struct stbtt__hheap -{ - struct stbtt__hheap_chunk *head; - void *first_free; - int num_remaining_in_head_chunk; -} stbtt__hheap; - -static void *stbtt__hheap_alloc(stbtt__hheap *hh, size_t size, void *userdata) -{ - if (hh->first_free) { - void *p = hh->first_free; - hh->first_free = * (void **) p; - return p; - } else { - if (hh->num_remaining_in_head_chunk == 0) { - int count = (size < 32 ? 2000 : size < 128 ? 800 : 100); - stbtt__hheap_chunk *c = (stbtt__hheap_chunk *) STBTT_malloc(sizeof(stbtt__hheap_chunk) + size * count, userdata); - if (c == NULL) - return NULL; - c->next = hh->head; - hh->head = c; - hh->num_remaining_in_head_chunk = count; - } - --hh->num_remaining_in_head_chunk; - return (char *) (hh->head) + sizeof(stbtt__hheap_chunk) + size * hh->num_remaining_in_head_chunk; - } -} - -static void stbtt__hheap_free(stbtt__hheap *hh, void *p) -{ - *(void **) p = hh->first_free; - hh->first_free = p; -} - -static void stbtt__hheap_cleanup(stbtt__hheap *hh, void *userdata) -{ - stbtt__hheap_chunk *c = hh->head; - while (c) { - stbtt__hheap_chunk *n = c->next; - STBTT_free(c, userdata); - c = n; - } -} - -typedef struct stbtt__edge { - float x0,y0, x1,y1; - int invert; -} stbtt__edge; - - -typedef struct stbtt__active_edge -{ - struct stbtt__active_edge *next; - #if STBTT_RASTERIZER_VERSION==1 - int x,dx; - float ey; - int direction; - #elif STBTT_RASTERIZER_VERSION==2 - float fx,fdx,fdy; - float direction; - float sy; - float ey; - #else - #error "Unrecognized value of STBTT_RASTERIZER_VERSION" - #endif -} stbtt__active_edge; - -#if STBTT_RASTERIZER_VERSION == 1 -#define STBTT_FIXSHIFT 10 -#define STBTT_FIX (1 << STBTT_FIXSHIFT) -#define STBTT_FIXMASK (STBTT_FIX-1) - -static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) -{ - stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); - float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); - STBTT_assert(z != NULL); - if (!z) return z; - - // round dx down to avoid overshooting - if (dxdy < 0) - z->dx = -STBTT_ifloor(STBTT_FIX * -dxdy); - else - z->dx = STBTT_ifloor(STBTT_FIX * dxdy); - - z->x = STBTT_ifloor(STBTT_FIX * e->x0 + z->dx * (start_point - e->y0)); // use z->dx so when we offset later it's by the same amount - z->x -= off_x * STBTT_FIX; - - z->ey = e->y1; - z->next = 0; - z->direction = e->invert ? 1 : -1; - return z; -} -#elif STBTT_RASTERIZER_VERSION == 2 -static stbtt__active_edge *stbtt__new_active(stbtt__hheap *hh, stbtt__edge *e, int off_x, float start_point, void *userdata) -{ - stbtt__active_edge *z = (stbtt__active_edge *) stbtt__hheap_alloc(hh, sizeof(*z), userdata); - float dxdy = (e->x1 - e->x0) / (e->y1 - e->y0); - STBTT_assert(z != NULL); - //STBTT_assert(e->y0 <= start_point); - if (!z) return z; - z->fdx = dxdy; - z->fdy = dxdy != 0.0f ? (1.0f/dxdy) : 0.0f; - z->fx = e->x0 + dxdy * (start_point - e->y0); - z->fx -= off_x; - z->direction = e->invert ? 1.0f : -1.0f; - z->sy = e->y0; - z->ey = e->y1; - z->next = 0; - return z; -} -#else -#error "Unrecognized value of STBTT_RASTERIZER_VERSION" -#endif - -#if STBTT_RASTERIZER_VERSION == 1 -// note: this routine clips fills that extend off the edges... ideally this -// wouldn't happen, but it could happen if the truetype glyph bounding boxes -// are wrong, or if the user supplies a too-small bitmap -static void stbtt__fill_active_edges(unsigned char *scanline, int len, stbtt__active_edge *e, int max_weight) -{ - // non-zero winding fill - int x0=0, w=0; - - while (e) { - if (w == 0) { - // if we're currently at zero, we need to record the edge start point - x0 = e->x; w += e->direction; - } else { - int x1 = e->x; w += e->direction; - // if we went to zero, we need to draw - if (w == 0) { - int i = x0 >> STBTT_FIXSHIFT; - int j = x1 >> STBTT_FIXSHIFT; - - if (i < len && j >= 0) { - if (i == j) { - // x0,x1 are the same pixel, so compute combined coverage - scanline[i] = scanline[i] + (stbtt_uint8) ((x1 - x0) * max_weight >> STBTT_FIXSHIFT); - } else { - if (i >= 0) // add antialiasing for x0 - scanline[i] = scanline[i] + (stbtt_uint8) (((STBTT_FIX - (x0 & STBTT_FIXMASK)) * max_weight) >> STBTT_FIXSHIFT); - else - i = -1; // clip - - if (j < len) // add antialiasing for x1 - scanline[j] = scanline[j] + (stbtt_uint8) (((x1 & STBTT_FIXMASK) * max_weight) >> STBTT_FIXSHIFT); - else - j = len; // clip - - for (++i; i < j; ++i) // fill pixels between x0 and x1 - scanline[i] = scanline[i] + (stbtt_uint8) max_weight; - } - } - } - } - - e = e->next; - } -} - -static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) -{ - stbtt__hheap hh = { 0, 0, 0 }; - stbtt__active_edge *active = NULL; - int y,j=0; - int max_weight = (255 / vsubsample); // weight per vertical scanline - int s; // vertical subsample index - unsigned char scanline_data[512], *scanline; - - if (result->w > 512) - scanline = (unsigned char *) STBTT_malloc(result->w, userdata); - else - scanline = scanline_data; - - y = off_y * vsubsample; - e[n].y0 = (off_y + result->h) * (float) vsubsample + 1; - - while (j < result->h) { - STBTT_memset(scanline, 0, result->w); - for (s=0; s < vsubsample; ++s) { - // find center of pixel for this scanline - float scan_y = y + 0.5f; - stbtt__active_edge **step = &active; - - // update all active edges; - // remove all active edges that terminate before the center of this scanline - while (*step) { - stbtt__active_edge * z = *step; - if (z->ey <= scan_y) { - *step = z->next; // delete from list - STBTT_assert(z->direction); - z->direction = 0; - stbtt__hheap_free(&hh, z); - } else { - z->x += z->dx; // advance to position for current scanline - step = &((*step)->next); // advance through list - } - } - - // resort the list if needed - for(;;) { - int changed=0; - step = &active; - while (*step && (*step)->next) { - if ((*step)->x > (*step)->next->x) { - stbtt__active_edge *t = *step; - stbtt__active_edge *q = t->next; - - t->next = q->next; - q->next = t; - *step = q; - changed = 1; - } - step = &(*step)->next; - } - if (!changed) break; - } - - // insert all edges that start before the center of this scanline -- omit ones that also end on this scanline - while (e->y0 <= scan_y) { - if (e->y1 > scan_y) { - stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y, userdata); - if (z != NULL) { - // find insertion point - if (active == NULL) - active = z; - else if (z->x < active->x) { - // insert at front - z->next = active; - active = z; - } else { - // find thing to insert AFTER - stbtt__active_edge *p = active; - while (p->next && p->next->x < z->x) - p = p->next; - // at this point, p->next->x is NOT < z->x - z->next = p->next; - p->next = z; - } - } - } - ++e; - } - - // now process all active edges in XOR fashion - if (active) - stbtt__fill_active_edges(scanline, result->w, active, max_weight); - - ++y; - } - STBTT_memcpy(result->pixels + j * result->stride, scanline, result->w); - ++j; - } - - stbtt__hheap_cleanup(&hh, userdata); - - if (scanline != scanline_data) - STBTT_free(scanline, userdata); -} - -#elif STBTT_RASTERIZER_VERSION == 2 - -// the edge passed in here does not cross the vertical line at x or the vertical line at x+1 -// (i.e. it has already been clipped to those) -static void stbtt__handle_clipped_edge(float *scanline, int x, stbtt__active_edge *e, float x0, float y0, float x1, float y1) -{ - if (y0 == y1) return; - STBTT_assert(y0 < y1); - STBTT_assert(e->sy <= e->ey); - if (y0 > e->ey) return; - if (y1 < e->sy) return; - if (y0 < e->sy) { - x0 += (x1-x0) * (e->sy - y0) / (y1-y0); - y0 = e->sy; - } - if (y1 > e->ey) { - x1 += (x1-x0) * (e->ey - y1) / (y1-y0); - y1 = e->ey; - } - - if (x0 == x) - STBTT_assert(x1 <= x+1); - else if (x0 == x+1) - STBTT_assert(x1 >= x); - else if (x0 <= x) - STBTT_assert(x1 <= x); - else if (x0 >= x+1) - STBTT_assert(x1 >= x+1); - else - STBTT_assert(x1 >= x && x1 <= x+1); - - if (x0 <= x && x1 <= x) - scanline[x] += e->direction * (y1-y0); - else if (x0 >= x+1 && x1 >= x+1) - ; - else { - STBTT_assert(x0 >= x && x0 <= x+1 && x1 >= x && x1 <= x+1); - scanline[x] += e->direction * (y1-y0) * (1-((x0-x)+(x1-x))/2); // coverage = 1 - average x position - } -} - -static void stbtt__fill_active_edges_new(float *scanline, float *scanline_fill, int len, stbtt__active_edge *e, float y_top) -{ - float y_bottom = y_top+1; - - while (e) { - // brute force every pixel - - // compute intersection points with top & bottom - STBTT_assert(e->ey >= y_top); - - if (e->fdx == 0) { - float x0 = e->fx; - if (x0 < len) { - if (x0 >= 0) { - stbtt__handle_clipped_edge(scanline,(int) x0,e, x0,y_top, x0,y_bottom); - stbtt__handle_clipped_edge(scanline_fill-1,(int) x0+1,e, x0,y_top, x0,y_bottom); - } else { - stbtt__handle_clipped_edge(scanline_fill-1,0,e, x0,y_top, x0,y_bottom); - } - } - } else { - float x0 = e->fx; - float dx = e->fdx; - float xb = x0 + dx; - float x_top, x_bottom; - float sy0,sy1; - float dy = e->fdy; - STBTT_assert(e->sy <= y_bottom && e->ey >= y_top); - - // compute endpoints of line segment clipped to this scanline (if the - // line segment starts on this scanline. x0 is the intersection of the - // line with y_top, but that may be off the line segment. - if (e->sy > y_top) { - x_top = x0 + dx * (e->sy - y_top); - sy0 = e->sy; - } else { - x_top = x0; - sy0 = y_top; - } - if (e->ey < y_bottom) { - x_bottom = x0 + dx * (e->ey - y_top); - sy1 = e->ey; - } else { - x_bottom = xb; - sy1 = y_bottom; - } - - if (x_top >= 0 && x_bottom >= 0 && x_top < len && x_bottom < len) { - // from here on, we don't have to range check x values - - if ((int) x_top == (int) x_bottom) { - float height; - // simple case, only spans one pixel - int x = (int) x_top; - height = sy1 - sy0; - STBTT_assert(x >= 0 && x < len); - scanline[x] += e->direction * (1-((x_top - x) + (x_bottom-x))/2) * height; - scanline_fill[x] += e->direction * height; // everything right of this pixel is filled - } else { - int x,x1,x2; - float y_crossing, step, sign, area; - // covers 2+ pixels - if (x_top > x_bottom) { - // flip scanline vertically; signed area is the same - float t; - sy0 = y_bottom - (sy0 - y_top); - sy1 = y_bottom - (sy1 - y_top); - t = sy0, sy0 = sy1, sy1 = t; - t = x_bottom, x_bottom = x_top, x_top = t; - dx = -dx; - dy = -dy; - t = x0, x0 = xb, xb = t; - // [DEAR IMGUI] Fix static analyzer warning - (void)dx; // [ImGui: fix static analyzer warning] - } - - x1 = (int) x_top; - x2 = (int) x_bottom; - // compute intersection with y axis at x1+1 - y_crossing = (x1+1 - x0) * dy + y_top; - - sign = e->direction; - // area of the rectangle covered from y0..y_crossing - area = sign * (y_crossing-sy0); - // area of the triangle (x_top,y0), (x+1,y0), (x+1,y_crossing) - scanline[x1] += area * (1-((x_top - x1)+(x1+1-x1))/2); - - step = sign * dy; - for (x = x1+1; x < x2; ++x) { - scanline[x] += area + step/2; - area += step; - } - y_crossing += dy * (x2 - (x1+1)); - - STBTT_assert(STBTT_fabs(area) <= 1.01f); - - scanline[x2] += area + sign * (1-((x2-x2)+(x_bottom-x2))/2) * (sy1-y_crossing); - - scanline_fill[x2] += sign * (sy1-sy0); - } - } else { - // if edge goes outside of box we're drawing, we require - // clipping logic. since this does not match the intended use - // of this library, we use a different, very slow brute - // force implementation - int x; - for (x=0; x < len; ++x) { - // cases: - // - // there can be up to two intersections with the pixel. any intersection - // with left or right edges can be handled by splitting into two (or three) - // regions. intersections with top & bottom do not necessitate case-wise logic. - // - // the old way of doing this found the intersections with the left & right edges, - // then used some simple logic to produce up to three segments in sorted order - // from top-to-bottom. however, this had a problem: if an x edge was epsilon - // across the x border, then the corresponding y position might not be distinct - // from the other y segment, and it might ignored as an empty segment. to avoid - // that, we need to explicitly produce segments based on x positions. - - // rename variables to clearly-defined pairs - float y0 = y_top; - float x1 = (float) (x); - float x2 = (float) (x+1); - float x3 = xb; - float y3 = y_bottom; - - // x = e->x + e->dx * (y-y_top) - // (y-y_top) = (x - e->x) / e->dx - // y = (x - e->x) / e->dx + y_top - float y1 = (x - x0) / dx + y_top; - float y2 = (x+1 - x0) / dx + y_top; - - if (x0 < x1 && x3 > x2) { // three segments descending down-right - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); - } else if (x3 < x1 && x0 > x2) { // three segments descending down-left - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); - } else if (x0 < x1 && x3 > x1) { // two segments across x, down-right - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); - } else if (x3 < x1 && x0 > x1) { // two segments across x, down-left - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x1,y1); - stbtt__handle_clipped_edge(scanline,x,e, x1,y1, x3,y3); - } else if (x0 < x2 && x3 > x2) { // two segments across x+1, down-right - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); - } else if (x3 < x2 && x0 > x2) { // two segments across x+1, down-left - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x2,y2); - stbtt__handle_clipped_edge(scanline,x,e, x2,y2, x3,y3); - } else { // one segment - stbtt__handle_clipped_edge(scanline,x,e, x0,y0, x3,y3); - } - } - } - } - e = e->next; - } -} - -// directly AA rasterize edges w/o supersampling -static void stbtt__rasterize_sorted_edges(stbtt__bitmap *result, stbtt__edge *e, int n, int vsubsample, int off_x, int off_y, void *userdata) -{ - stbtt__hheap hh = { 0, 0, 0 }; - stbtt__active_edge *active = NULL; - int y,j=0, i; - float scanline_data[129], *scanline, *scanline2; - - STBTT__NOTUSED(vsubsample); - - if (result->w > 64) - scanline = (float *) STBTT_malloc((result->w*2+1) * sizeof(float), userdata); - else - scanline = scanline_data; - - scanline2 = scanline + result->w; - - y = off_y; - e[n].y0 = (float) (off_y + result->h) + 1; - - while (j < result->h) { - // find center of pixel for this scanline - float scan_y_top = y + 0.0f; - float scan_y_bottom = y + 1.0f; - stbtt__active_edge **step = &active; - - STBTT_memset(scanline , 0, result->w*sizeof(scanline[0])); - STBTT_memset(scanline2, 0, (result->w+1)*sizeof(scanline[0])); - - // update all active edges; - // remove all active edges that terminate before the top of this scanline - while (*step) { - stbtt__active_edge * z = *step; - if (z->ey <= scan_y_top) { - *step = z->next; // delete from list - STBTT_assert(z->direction); - z->direction = 0; - stbtt__hheap_free(&hh, z); - } else { - step = &((*step)->next); // advance through list - } - } - - // insert all edges that start before the bottom of this scanline - while (e->y0 <= scan_y_bottom) { - if (e->y0 != e->y1) { - stbtt__active_edge *z = stbtt__new_active(&hh, e, off_x, scan_y_top, userdata); - if (z != NULL) { - if (j == 0 && off_y != 0) { - if (z->ey < scan_y_top) { - // this can happen due to subpixel positioning and some kind of fp rounding error i think - z->ey = scan_y_top; - } - } - STBTT_assert(z->ey >= scan_y_top); // if we get really unlucky a tiny bit of an edge can be out of bounds - // insert at front - z->next = active; - active = z; - } - } - ++e; - } - - // now process all active edges - if (active) - stbtt__fill_active_edges_new(scanline, scanline2+1, result->w, active, scan_y_top); - - { - float sum = 0; - for (i=0; i < result->w; ++i) { - float k; - int m; - sum += scanline2[i]; - k = scanline[i] + sum; - k = (float) STBTT_fabs(k)*255 + 0.5f; - m = (int) k; - if (m > 255) m = 255; - result->pixels[j*result->stride + i] = (unsigned char) m; - } - } - // advance all the edges - step = &active; - while (*step) { - stbtt__active_edge *z = *step; - z->fx += z->fdx; // advance to position for current scanline - step = &((*step)->next); // advance through list - } - - ++y; - ++j; - } - - stbtt__hheap_cleanup(&hh, userdata); - - if (scanline != scanline_data) - STBTT_free(scanline, userdata); -} -#else -#error "Unrecognized value of STBTT_RASTERIZER_VERSION" -#endif - -#define STBTT__COMPARE(a,b) ((a)->y0 < (b)->y0) - -static void stbtt__sort_edges_ins_sort(stbtt__edge *p, int n) -{ - int i,j; - for (i=1; i < n; ++i) { - stbtt__edge t = p[i], *a = &t; - j = i; - while (j > 0) { - stbtt__edge *b = &p[j-1]; - int c = STBTT__COMPARE(a,b); - if (!c) break; - p[j] = p[j-1]; - --j; - } - if (i != j) - p[j] = t; - } -} - -static void stbtt__sort_edges_quicksort(stbtt__edge *p, int n) -{ - /* threshold for transitioning to insertion sort */ - while (n > 12) { - stbtt__edge t; - int c01,c12,c,m,i,j; - - /* compute median of three */ - m = n >> 1; - c01 = STBTT__COMPARE(&p[0],&p[m]); - c12 = STBTT__COMPARE(&p[m],&p[n-1]); - /* if 0 >= mid >= end, or 0 < mid < end, then use mid */ - if (c01 != c12) { - /* otherwise, we'll need to swap something else to middle */ - int z; - c = STBTT__COMPARE(&p[0],&p[n-1]); - /* 0>mid && midn => n; 0 0 */ - /* 0n: 0>n => 0; 0 n */ - z = (c == c12) ? 0 : n-1; - t = p[z]; - p[z] = p[m]; - p[m] = t; - } - /* now p[m] is the median-of-three */ - /* swap it to the beginning so it won't move around */ - t = p[0]; - p[0] = p[m]; - p[m] = t; - - /* partition loop */ - i=1; - j=n-1; - for(;;) { - /* handling of equality is crucial here */ - /* for sentinels & efficiency with duplicates */ - for (;;++i) { - if (!STBTT__COMPARE(&p[i], &p[0])) break; - } - for (;;--j) { - if (!STBTT__COMPARE(&p[0], &p[j])) break; - } - /* make sure we haven't crossed */ - if (i >= j) break; - t = p[i]; - p[i] = p[j]; - p[j] = t; - - ++i; - --j; - } - /* recurse on smaller side, iterate on larger */ - if (j < (n-i)) { - stbtt__sort_edges_quicksort(p,j); - p = p+i; - n = n-i; - } else { - stbtt__sort_edges_quicksort(p+i, n-i); - n = j; - } - } -} - -static void stbtt__sort_edges(stbtt__edge *p, int n) -{ - stbtt__sort_edges_quicksort(p, n); - stbtt__sort_edges_ins_sort(p, n); -} - -typedef struct -{ - float x,y; -} stbtt__point; - -static void stbtt__rasterize(stbtt__bitmap *result, stbtt__point *pts, int *wcount, int windings, float scale_x, float scale_y, float shift_x, float shift_y, int off_x, int off_y, int invert, void *userdata) -{ - float y_scale_inv = invert ? -scale_y : scale_y; - stbtt__edge *e; - int n,i,j,k,m; -#if STBTT_RASTERIZER_VERSION == 1 - int vsubsample = result->h < 8 ? 15 : 5; -#elif STBTT_RASTERIZER_VERSION == 2 - int vsubsample = 1; -#else - #error "Unrecognized value of STBTT_RASTERIZER_VERSION" -#endif - // vsubsample should divide 255 evenly; otherwise we won't reach full opacity - - // now we have to blow out the windings into explicit edge lists - n = 0; - for (i=0; i < windings; ++i) - n += wcount[i]; - - e = (stbtt__edge *) STBTT_malloc(sizeof(*e) * (n+1), userdata); // add an extra one as a sentinel - if (e == 0) return; - n = 0; - - m=0; - for (i=0; i < windings; ++i) { - stbtt__point *p = pts + m; - m += wcount[i]; - j = wcount[i]-1; - for (k=0; k < wcount[i]; j=k++) { - int a=k,b=j; - // skip the edge if horizontal - if (p[j].y == p[k].y) - continue; - // add edge from j to k to the list - e[n].invert = 0; - if (invert ? p[j].y > p[k].y : p[j].y < p[k].y) { - e[n].invert = 1; - a=j,b=k; - } - e[n].x0 = p[a].x * scale_x + shift_x; - e[n].y0 = (p[a].y * y_scale_inv + shift_y) * vsubsample; - e[n].x1 = p[b].x * scale_x + shift_x; - e[n].y1 = (p[b].y * y_scale_inv + shift_y) * vsubsample; - ++n; - } - } - - // now sort the edges by their highest point (should snap to integer, and then by x) - //STBTT_sort(e, n, sizeof(e[0]), stbtt__edge_compare); - stbtt__sort_edges(e, n); - - // now, traverse the scanlines and find the intersections on each scanline, use xor winding rule - stbtt__rasterize_sorted_edges(result, e, n, vsubsample, off_x, off_y, userdata); - - STBTT_free(e, userdata); -} - -static void stbtt__add_point(stbtt__point *points, int n, float x, float y) -{ - if (!points) return; // during first pass, it's unallocated - points[n].x = x; - points[n].y = y; -} - -// tessellate until threshold p is happy... @TODO warped to compensate for non-linear stretching -static int stbtt__tesselate_curve(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float objspace_flatness_squared, int n) -{ - // midpoint - float mx = (x0 + 2*x1 + x2)/4; - float my = (y0 + 2*y1 + y2)/4; - // versus directly drawn line - float dx = (x0+x2)/2 - mx; - float dy = (y0+y2)/2 - my; - if (n > 16) // 65536 segments on one curve better be enough! - return 1; - if (dx*dx+dy*dy > objspace_flatness_squared) { // half-pixel error allowed... need to be smaller if AA - stbtt__tesselate_curve(points, num_points, x0,y0, (x0+x1)/2.0f,(y0+y1)/2.0f, mx,my, objspace_flatness_squared,n+1); - stbtt__tesselate_curve(points, num_points, mx,my, (x1+x2)/2.0f,(y1+y2)/2.0f, x2,y2, objspace_flatness_squared,n+1); - } else { - stbtt__add_point(points, *num_points,x2,y2); - *num_points = *num_points+1; - } - return 1; -} - -static void stbtt__tesselate_cubic(stbtt__point *points, int *num_points, float x0, float y0, float x1, float y1, float x2, float y2, float x3, float y3, float objspace_flatness_squared, int n) -{ - // @TODO this "flatness" calculation is just made-up nonsense that seems to work well enough - float dx0 = x1-x0; - float dy0 = y1-y0; - float dx1 = x2-x1; - float dy1 = y2-y1; - float dx2 = x3-x2; - float dy2 = y3-y2; - float dx = x3-x0; - float dy = y3-y0; - float longlen = (float) (STBTT_sqrt(dx0*dx0+dy0*dy0)+STBTT_sqrt(dx1*dx1+dy1*dy1)+STBTT_sqrt(dx2*dx2+dy2*dy2)); - float shortlen = (float) STBTT_sqrt(dx*dx+dy*dy); - float flatness_squared = longlen*longlen-shortlen*shortlen; - - if (n > 16) // 65536 segments on one curve better be enough! - return; - - if (flatness_squared > objspace_flatness_squared) { - float x01 = (x0+x1)/2; - float y01 = (y0+y1)/2; - float x12 = (x1+x2)/2; - float y12 = (y1+y2)/2; - float x23 = (x2+x3)/2; - float y23 = (y2+y3)/2; - - float xa = (x01+x12)/2; - float ya = (y01+y12)/2; - float xb = (x12+x23)/2; - float yb = (y12+y23)/2; - - float mx = (xa+xb)/2; - float my = (ya+yb)/2; - - stbtt__tesselate_cubic(points, num_points, x0,y0, x01,y01, xa,ya, mx,my, objspace_flatness_squared,n+1); - stbtt__tesselate_cubic(points, num_points, mx,my, xb,yb, x23,y23, x3,y3, objspace_flatness_squared,n+1); - } else { - stbtt__add_point(points, *num_points,x3,y3); - *num_points = *num_points+1; - } -} - -// returns number of contours -static stbtt__point *stbtt_FlattenCurves(stbtt_vertex *vertices, int num_verts, float objspace_flatness, int **contour_lengths, int *num_contours, void *userdata) -{ - stbtt__point *points=0; - int num_points=0; - - float objspace_flatness_squared = objspace_flatness * objspace_flatness; - int i,n=0,start=0, pass; - - // count how many "moves" there are to get the contour count - for (i=0; i < num_verts; ++i) - if (vertices[i].type == STBTT_vmove) - ++n; - - *num_contours = n; - if (n == 0) return 0; - - *contour_lengths = (int *) STBTT_malloc(sizeof(**contour_lengths) * n, userdata); - - if (*contour_lengths == 0) { - *num_contours = 0; - return 0; - } - - // make two passes through the points so we don't need to realloc - for (pass=0; pass < 2; ++pass) { - float x=0,y=0; - if (pass == 1) { - points = (stbtt__point *) STBTT_malloc(num_points * sizeof(points[0]), userdata); - if (points == NULL) goto error; - } - num_points = 0; - n= -1; - for (i=0; i < num_verts; ++i) { - switch (vertices[i].type) { - case STBTT_vmove: - // start the next contour - if (n >= 0) - (*contour_lengths)[n] = num_points - start; - ++n; - start = num_points; - - x = vertices[i].x, y = vertices[i].y; - stbtt__add_point(points, num_points++, x,y); - break; - case STBTT_vline: - x = vertices[i].x, y = vertices[i].y; - stbtt__add_point(points, num_points++, x, y); - break; - case STBTT_vcurve: - stbtt__tesselate_curve(points, &num_points, x,y, - vertices[i].cx, vertices[i].cy, - vertices[i].x, vertices[i].y, - objspace_flatness_squared, 0); - x = vertices[i].x, y = vertices[i].y; - break; - case STBTT_vcubic: - stbtt__tesselate_cubic(points, &num_points, x,y, - vertices[i].cx, vertices[i].cy, - vertices[i].cx1, vertices[i].cy1, - vertices[i].x, vertices[i].y, - objspace_flatness_squared, 0); - x = vertices[i].x, y = vertices[i].y; - break; - } - } - (*contour_lengths)[n] = num_points - start; - } - - return points; -error: - STBTT_free(points, userdata); - STBTT_free(*contour_lengths, userdata); - *contour_lengths = 0; - *num_contours = 0; - return NULL; -} - -STBTT_DEF void stbtt_Rasterize(stbtt__bitmap *result, float flatness_in_pixels, stbtt_vertex *vertices, int num_verts, float scale_x, float scale_y, float shift_x, float shift_y, int x_off, int y_off, int invert, void *userdata) -{ - float scale = scale_x > scale_y ? scale_y : scale_x; - int winding_count = 0; - int *winding_lengths = NULL; - stbtt__point *windings = stbtt_FlattenCurves(vertices, num_verts, flatness_in_pixels / scale, &winding_lengths, &winding_count, userdata); - if (windings) { - stbtt__rasterize(result, windings, winding_lengths, winding_count, scale_x, scale_y, shift_x, shift_y, x_off, y_off, invert, userdata); - STBTT_free(winding_lengths, userdata); - STBTT_free(windings, userdata); - } -} - -STBTT_DEF void stbtt_FreeBitmap(unsigned char *bitmap, void *userdata) -{ - STBTT_free(bitmap, userdata); -} - -STBTT_DEF unsigned char *stbtt_GetGlyphBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int glyph, int *width, int *height, int *xoff, int *yoff) -{ - int ix0,iy0,ix1,iy1; - stbtt__bitmap gbm; - stbtt_vertex *vertices; - int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); - - if (scale_x == 0) scale_x = scale_y; - if (scale_y == 0) { - if (scale_x == 0) { - STBTT_free(vertices, info->userdata); - return NULL; - } - scale_y = scale_x; - } - - stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,&ix1,&iy1); - - // now we get the size - gbm.w = (ix1 - ix0); - gbm.h = (iy1 - iy0); - gbm.pixels = NULL; // in case we error - - if (width ) *width = gbm.w; - if (height) *height = gbm.h; - if (xoff ) *xoff = ix0; - if (yoff ) *yoff = iy0; - - if (gbm.w && gbm.h) { - gbm.pixels = (unsigned char *) STBTT_malloc(gbm.w * gbm.h, info->userdata); - if (gbm.pixels) { - gbm.stride = gbm.w; - - stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0, iy0, 1, info->userdata); - } - } - STBTT_free(vertices, info->userdata); - return gbm.pixels; -} - -STBTT_DEF unsigned char *stbtt_GetGlyphBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int glyph, int *width, int *height, int *xoff, int *yoff) -{ - return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y, 0.0f, 0.0f, glyph, width, height, xoff, yoff); -} - -STBTT_DEF void stbtt_MakeGlyphBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int glyph) -{ - int ix0,iy0; - stbtt_vertex *vertices; - int num_verts = stbtt_GetGlyphShape(info, glyph, &vertices); - stbtt__bitmap gbm; - - stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale_x, scale_y, shift_x, shift_y, &ix0,&iy0,0,0); - gbm.pixels = output; - gbm.w = out_w; - gbm.h = out_h; - gbm.stride = out_stride; - - if (gbm.w && gbm.h) - stbtt_Rasterize(&gbm, 0.35f, vertices, num_verts, scale_x, scale_y, shift_x, shift_y, ix0,iy0, 1, info->userdata); - - STBTT_free(vertices, info->userdata); -} - -STBTT_DEF void stbtt_MakeGlyphBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int glyph) -{ - stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, glyph); -} - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmapSubpixel(const stbtt_fontinfo *info, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint, int *width, int *height, int *xoff, int *yoff) -{ - return stbtt_GetGlyphBitmapSubpixel(info, scale_x, scale_y,shift_x,shift_y, stbtt_FindGlyphIndex(info,codepoint), width,height,xoff,yoff); -} - -STBTT_DEF void stbtt_MakeCodepointBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int oversample_x, int oversample_y, float *sub_x, float *sub_y, int codepoint) -{ - stbtt_MakeGlyphBitmapSubpixelPrefilter(info, output, out_w, out_h, out_stride, scale_x, scale_y, shift_x, shift_y, oversample_x, oversample_y, sub_x, sub_y, stbtt_FindGlyphIndex(info,codepoint)); -} - -STBTT_DEF void stbtt_MakeCodepointBitmapSubpixel(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int codepoint) -{ - stbtt_MakeGlyphBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, shift_x, shift_y, stbtt_FindGlyphIndex(info,codepoint)); -} - -STBTT_DEF unsigned char *stbtt_GetCodepointBitmap(const stbtt_fontinfo *info, float scale_x, float scale_y, int codepoint, int *width, int *height, int *xoff, int *yoff) -{ - return stbtt_GetCodepointBitmapSubpixel(info, scale_x, scale_y, 0.0f,0.0f, codepoint, width,height,xoff,yoff); -} - -STBTT_DEF void stbtt_MakeCodepointBitmap(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, int codepoint) -{ - stbtt_MakeCodepointBitmapSubpixel(info, output, out_w, out_h, out_stride, scale_x, scale_y, 0.0f,0.0f, codepoint); -} - -////////////////////////////////////////////////////////////////////////////// -// -// bitmap baking -// -// This is SUPER-CRAPPY packing to keep source code small - -static int stbtt_BakeFontBitmap_internal(unsigned char *data, int offset, // font location (use offset=0 for plain .ttf) - float pixel_height, // height of font in pixels - unsigned char *pixels, int pw, int ph, // bitmap to be filled in - int first_char, int num_chars, // characters to bake - stbtt_bakedchar *chardata) -{ - float scale; - int x,y,bottom_y, i; - stbtt_fontinfo f; - f.userdata = NULL; - if (!stbtt_InitFont(&f, data, offset)) - return -1; - STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels - x=y=1; - bottom_y = 1; - - scale = stbtt_ScaleForPixelHeight(&f, pixel_height); - - for (i=0; i < num_chars; ++i) { - int advance, lsb, x0,y0,x1,y1,gw,gh; - int g = stbtt_FindGlyphIndex(&f, first_char + i); - stbtt_GetGlyphHMetrics(&f, g, &advance, &lsb); - stbtt_GetGlyphBitmapBox(&f, g, scale,scale, &x0,&y0,&x1,&y1); - gw = x1-x0; - gh = y1-y0; - if (x + gw + 1 >= pw) - y = bottom_y, x = 1; // advance to next row - if (y + gh + 1 >= ph) // check if it fits vertically AFTER potentially moving to next row - return -i; - STBTT_assert(x+gw < pw); - STBTT_assert(y+gh < ph); - stbtt_MakeGlyphBitmap(&f, pixels+x+y*pw, gw,gh,pw, scale,scale, g); - chardata[i].x0 = (stbtt_int16) x; - chardata[i].y0 = (stbtt_int16) y; - chardata[i].x1 = (stbtt_int16) (x + gw); - chardata[i].y1 = (stbtt_int16) (y + gh); - chardata[i].xadvance = scale * advance; - chardata[i].xoff = (float) x0; - chardata[i].yoff = (float) y0; - x = x + gw + 1; - if (y+gh+1 > bottom_y) - bottom_y = y+gh+1; - } - return bottom_y; -} - -STBTT_DEF void stbtt_GetBakedQuad(const stbtt_bakedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int opengl_fillrule) -{ - float d3d_bias = opengl_fillrule ? 0 : -0.5f; - float ipw = 1.0f / pw, iph = 1.0f / ph; - const stbtt_bakedchar *b = chardata + char_index; - int round_x = STBTT_ifloor((*xpos + b->xoff) + 0.5f); - int round_y = STBTT_ifloor((*ypos + b->yoff) + 0.5f); - - q->x0 = round_x + d3d_bias; - q->y0 = round_y + d3d_bias; - q->x1 = round_x + b->x1 - b->x0 + d3d_bias; - q->y1 = round_y + b->y1 - b->y0 + d3d_bias; - - q->s0 = b->x0 * ipw; - q->t0 = b->y0 * iph; - q->s1 = b->x1 * ipw; - q->t1 = b->y1 * iph; - - *xpos += b->xadvance; -} - -////////////////////////////////////////////////////////////////////////////// -// -// rectangle packing replacement routines if you don't have stb_rect_pack.h -// - -#ifndef STB_RECT_PACK_VERSION - -typedef int stbrp_coord; - -//////////////////////////////////////////////////////////////////////////////////// -// // -// // -// COMPILER WARNING ?!?!? // -// // -// // -// if you get a compile warning due to these symbols being defined more than // -// once, move #include "stb_rect_pack.h" before #include "stb_truetype.h" // -// // -//////////////////////////////////////////////////////////////////////////////////// - -typedef struct -{ - int width,height; - int x,y,bottom_y; -} stbrp_context; - -typedef struct -{ - unsigned char x; -} stbrp_node; - -struct stbrp_rect -{ - stbrp_coord x,y; - int id,w,h,was_packed; -}; - -static void stbrp_init_target(stbrp_context *con, int pw, int ph, stbrp_node *nodes, int num_nodes) -{ - con->width = pw; - con->height = ph; - con->x = 0; - con->y = 0; - con->bottom_y = 0; - STBTT__NOTUSED(nodes); - STBTT__NOTUSED(num_nodes); -} - -static void stbrp_pack_rects(stbrp_context *con, stbrp_rect *rects, int num_rects) -{ - int i; - for (i=0; i < num_rects; ++i) { - if (con->x + rects[i].w > con->width) { - con->x = 0; - con->y = con->bottom_y; - } - if (con->y + rects[i].h > con->height) - break; - rects[i].x = con->x; - rects[i].y = con->y; - rects[i].was_packed = 1; - con->x += rects[i].w; - if (con->y + rects[i].h > con->bottom_y) - con->bottom_y = con->y + rects[i].h; - } - for ( ; i < num_rects; ++i) - rects[i].was_packed = 0; -} -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// bitmap baking -// -// This is SUPER-AWESOME (tm Ryan Gordon) packing using stb_rect_pack.h. If -// stb_rect_pack.h isn't available, it uses the BakeFontBitmap strategy. - -STBTT_DEF int stbtt_PackBegin(stbtt_pack_context *spc, unsigned char *pixels, int pw, int ph, int stride_in_bytes, int padding, void *alloc_context) -{ - stbrp_context *context = (stbrp_context *) STBTT_malloc(sizeof(*context) ,alloc_context); - int num_nodes = pw - padding; - stbrp_node *nodes = (stbrp_node *) STBTT_malloc(sizeof(*nodes ) * num_nodes,alloc_context); - - if (context == NULL || nodes == NULL) { - if (context != NULL) STBTT_free(context, alloc_context); - if (nodes != NULL) STBTT_free(nodes , alloc_context); - return 0; - } - - spc->user_allocator_context = alloc_context; - spc->width = pw; - spc->height = ph; - spc->pixels = pixels; - spc->pack_info = context; - spc->nodes = nodes; - spc->padding = padding; - spc->stride_in_bytes = stride_in_bytes != 0 ? stride_in_bytes : pw; - spc->h_oversample = 1; - spc->v_oversample = 1; - spc->skip_missing = 0; - - stbrp_init_target(context, pw-padding, ph-padding, nodes, num_nodes); - - if (pixels) - STBTT_memset(pixels, 0, pw*ph); // background of 0 around pixels - - return 1; -} - -STBTT_DEF void stbtt_PackEnd (stbtt_pack_context *spc) -{ - STBTT_free(spc->nodes , spc->user_allocator_context); - STBTT_free(spc->pack_info, spc->user_allocator_context); -} - -STBTT_DEF void stbtt_PackSetOversampling(stbtt_pack_context *spc, unsigned int h_oversample, unsigned int v_oversample) -{ - STBTT_assert(h_oversample <= STBTT_MAX_OVERSAMPLE); - STBTT_assert(v_oversample <= STBTT_MAX_OVERSAMPLE); - if (h_oversample <= STBTT_MAX_OVERSAMPLE) - spc->h_oversample = h_oversample; - if (v_oversample <= STBTT_MAX_OVERSAMPLE) - spc->v_oversample = v_oversample; -} - -STBTT_DEF void stbtt_PackSetSkipMissingCodepoints(stbtt_pack_context *spc, int skip) -{ - spc->skip_missing = skip; -} - -#define STBTT__OVER_MASK (STBTT_MAX_OVERSAMPLE-1) - -static void stbtt__h_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) -{ - unsigned char buffer[STBTT_MAX_OVERSAMPLE]; - int safe_w = w - kernel_width; - int j; - STBTT_memset(buffer, 0, STBTT_MAX_OVERSAMPLE); // suppress bogus warning from VS2013 -analyze - for (j=0; j < h; ++j) { - int i; - unsigned int total; - STBTT_memset(buffer, 0, kernel_width); - - total = 0; - - // make kernel_width a constant in common cases so compiler can optimize out the divide - switch (kernel_width) { - case 2: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 2); - } - break; - case 3: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 3); - } - break; - case 4: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 4); - } - break; - case 5: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / 5); - } - break; - default: - for (i=0; i <= safe_w; ++i) { - total += pixels[i] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i]; - pixels[i] = (unsigned char) (total / kernel_width); - } - break; - } - - for (; i < w; ++i) { - STBTT_assert(pixels[i] == 0); - total -= buffer[i & STBTT__OVER_MASK]; - pixels[i] = (unsigned char) (total / kernel_width); - } - - pixels += stride_in_bytes; - } -} - -static void stbtt__v_prefilter(unsigned char *pixels, int w, int h, int stride_in_bytes, unsigned int kernel_width) -{ - unsigned char buffer[STBTT_MAX_OVERSAMPLE]; - int safe_h = h - kernel_width; - int j; - STBTT_memset(buffer, 0, STBTT_MAX_OVERSAMPLE); // suppress bogus warning from VS2013 -analyze - for (j=0; j < w; ++j) { - int i; - unsigned int total; - STBTT_memset(buffer, 0, kernel_width); - - total = 0; - - // make kernel_width a constant in common cases so compiler can optimize out the divide - switch (kernel_width) { - case 2: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 2); - } - break; - case 3: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 3); - } - break; - case 4: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 4); - } - break; - case 5: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / 5); - } - break; - default: - for (i=0; i <= safe_h; ++i) { - total += pixels[i*stride_in_bytes] - buffer[i & STBTT__OVER_MASK]; - buffer[(i+kernel_width) & STBTT__OVER_MASK] = pixels[i*stride_in_bytes]; - pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); - } - break; - } - - for (; i < h; ++i) { - STBTT_assert(pixels[i*stride_in_bytes] == 0); - total -= buffer[i & STBTT__OVER_MASK]; - pixels[i*stride_in_bytes] = (unsigned char) (total / kernel_width); - } - - pixels += 1; - } -} - -static float stbtt__oversample_shift(int oversample) -{ - if (!oversample) - return 0.0f; - - // The prefilter is a box filter of width "oversample", - // which shifts phase by (oversample - 1)/2 pixels in - // oversampled space. We want to shift in the opposite - // direction to counter this. - return (float)-(oversample - 1) / (2.0f * (float)oversample); -} - -// rects array must be big enough to accommodate all characters in the given ranges -STBTT_DEF int stbtt_PackFontRangesGatherRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) -{ - int i,j,k; - - k=0; - for (i=0; i < num_ranges; ++i) { - float fh = ranges[i].font_size; - float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); - ranges[i].h_oversample = (unsigned char) spc->h_oversample; - ranges[i].v_oversample = (unsigned char) spc->v_oversample; - for (j=0; j < ranges[i].num_chars; ++j) { - int x0,y0,x1,y1; - int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; - int glyph = stbtt_FindGlyphIndex(info, codepoint); - if (glyph == 0 && spc->skip_missing) { - rects[k].w = rects[k].h = 0; - } else { - stbtt_GetGlyphBitmapBoxSubpixel(info,glyph, - scale * spc->h_oversample, - scale * spc->v_oversample, - 0,0, - &x0,&y0,&x1,&y1); - rects[k].w = (stbrp_coord) (x1-x0 + spc->padding + spc->h_oversample-1); - rects[k].h = (stbrp_coord) (y1-y0 + spc->padding + spc->v_oversample-1); - } - ++k; - } - } - - return k; -} - -STBTT_DEF void stbtt_MakeGlyphBitmapSubpixelPrefilter(const stbtt_fontinfo *info, unsigned char *output, int out_w, int out_h, int out_stride, float scale_x, float scale_y, float shift_x, float shift_y, int prefilter_x, int prefilter_y, float *sub_x, float *sub_y, int glyph) -{ - stbtt_MakeGlyphBitmapSubpixel(info, - output, - out_w - (prefilter_x - 1), - out_h - (prefilter_y - 1), - out_stride, - scale_x, - scale_y, - shift_x, - shift_y, - glyph); - - if (prefilter_x > 1) - stbtt__h_prefilter(output, out_w, out_h, out_stride, prefilter_x); - - if (prefilter_y > 1) - stbtt__v_prefilter(output, out_w, out_h, out_stride, prefilter_y); - - *sub_x = stbtt__oversample_shift(prefilter_x); - *sub_y = stbtt__oversample_shift(prefilter_y); -} - -// rects array must be big enough to accommodate all characters in the given ranges -STBTT_DEF int stbtt_PackFontRangesRenderIntoRects(stbtt_pack_context *spc, const stbtt_fontinfo *info, stbtt_pack_range *ranges, int num_ranges, stbrp_rect *rects) -{ - int i,j,k, return_value = 1; - - // save current values - int old_h_over = spc->h_oversample; - int old_v_over = spc->v_oversample; - - k = 0; - for (i=0; i < num_ranges; ++i) { - float fh = ranges[i].font_size; - float scale = fh > 0 ? stbtt_ScaleForPixelHeight(info, fh) : stbtt_ScaleForMappingEmToPixels(info, -fh); - float recip_h,recip_v,sub_x,sub_y; - spc->h_oversample = ranges[i].h_oversample; - spc->v_oversample = ranges[i].v_oversample; - recip_h = 1.0f / spc->h_oversample; - recip_v = 1.0f / spc->v_oversample; - sub_x = stbtt__oversample_shift(spc->h_oversample); - sub_y = stbtt__oversample_shift(spc->v_oversample); - for (j=0; j < ranges[i].num_chars; ++j) { - stbrp_rect *r = &rects[k]; - if (r->was_packed && r->w != 0 && r->h != 0) { - stbtt_packedchar *bc = &ranges[i].chardata_for_range[j]; - int advance, lsb, x0,y0,x1,y1; - int codepoint = ranges[i].array_of_unicode_codepoints == NULL ? ranges[i].first_unicode_codepoint_in_range + j : ranges[i].array_of_unicode_codepoints[j]; - int glyph = stbtt_FindGlyphIndex(info, codepoint); - stbrp_coord pad = (stbrp_coord) spc->padding; - - // pad on left and top - r->x += pad; - r->y += pad; - r->w -= pad; - r->h -= pad; - stbtt_GetGlyphHMetrics(info, glyph, &advance, &lsb); - stbtt_GetGlyphBitmapBox(info, glyph, - scale * spc->h_oversample, - scale * spc->v_oversample, - &x0,&y0,&x1,&y1); - stbtt_MakeGlyphBitmapSubpixel(info, - spc->pixels + r->x + r->y*spc->stride_in_bytes, - r->w - spc->h_oversample+1, - r->h - spc->v_oversample+1, - spc->stride_in_bytes, - scale * spc->h_oversample, - scale * spc->v_oversample, - 0,0, - glyph); - - if (spc->h_oversample > 1) - stbtt__h_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, - r->w, r->h, spc->stride_in_bytes, - spc->h_oversample); - - if (spc->v_oversample > 1) - stbtt__v_prefilter(spc->pixels + r->x + r->y*spc->stride_in_bytes, - r->w, r->h, spc->stride_in_bytes, - spc->v_oversample); - - bc->x0 = (stbtt_int16) r->x; - bc->y0 = (stbtt_int16) r->y; - bc->x1 = (stbtt_int16) (r->x + r->w); - bc->y1 = (stbtt_int16) (r->y + r->h); - bc->xadvance = scale * advance; - bc->xoff = (float) x0 * recip_h + sub_x; - bc->yoff = (float) y0 * recip_v + sub_y; - bc->xoff2 = (x0 + r->w) * recip_h + sub_x; - bc->yoff2 = (y0 + r->h) * recip_v + sub_y; - } else { - return_value = 0; // if any fail, report failure - } - - ++k; - } - } - - // restore original values - spc->h_oversample = old_h_over; - spc->v_oversample = old_v_over; - - return return_value; -} - -STBTT_DEF void stbtt_PackFontRangesPackRects(stbtt_pack_context *spc, stbrp_rect *rects, int num_rects) -{ - stbrp_pack_rects((stbrp_context *) spc->pack_info, rects, num_rects); -} - -STBTT_DEF int stbtt_PackFontRanges(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, stbtt_pack_range *ranges, int num_ranges) -{ - stbtt_fontinfo info; - int i,j,n, return_value; // [DEAR IMGUI] removed = 1 - //stbrp_context *context = (stbrp_context *) spc->pack_info; - stbrp_rect *rects; - - // flag all characters as NOT packed - for (i=0; i < num_ranges; ++i) - for (j=0; j < ranges[i].num_chars; ++j) - ranges[i].chardata_for_range[j].x0 = - ranges[i].chardata_for_range[j].y0 = - ranges[i].chardata_for_range[j].x1 = - ranges[i].chardata_for_range[j].y1 = 0; - - n = 0; - for (i=0; i < num_ranges; ++i) - n += ranges[i].num_chars; - - rects = (stbrp_rect *) STBTT_malloc(sizeof(*rects) * n, spc->user_allocator_context); - if (rects == NULL) - return 0; - - info.userdata = spc->user_allocator_context; - stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata,font_index)); - - n = stbtt_PackFontRangesGatherRects(spc, &info, ranges, num_ranges, rects); - - stbtt_PackFontRangesPackRects(spc, rects, n); - - return_value = stbtt_PackFontRangesRenderIntoRects(spc, &info, ranges, num_ranges, rects); - - STBTT_free(rects, spc->user_allocator_context); - return return_value; -} - -STBTT_DEF int stbtt_PackFontRange(stbtt_pack_context *spc, const unsigned char *fontdata, int font_index, float font_size, - int first_unicode_codepoint_in_range, int num_chars_in_range, stbtt_packedchar *chardata_for_range) -{ - stbtt_pack_range range; - range.first_unicode_codepoint_in_range = first_unicode_codepoint_in_range; - range.array_of_unicode_codepoints = NULL; - range.num_chars = num_chars_in_range; - range.chardata_for_range = chardata_for_range; - range.font_size = font_size; - return stbtt_PackFontRanges(spc, fontdata, font_index, &range, 1); -} - -STBTT_DEF void stbtt_GetScaledFontVMetrics(const unsigned char *fontdata, int index, float size, float *ascent, float *descent, float *lineGap) -{ - int i_ascent, i_descent, i_lineGap; - float scale; - stbtt_fontinfo info; - stbtt_InitFont(&info, fontdata, stbtt_GetFontOffsetForIndex(fontdata, index)); - scale = size > 0 ? stbtt_ScaleForPixelHeight(&info, size) : stbtt_ScaleForMappingEmToPixels(&info, -size); - stbtt_GetFontVMetrics(&info, &i_ascent, &i_descent, &i_lineGap); - *ascent = (float) i_ascent * scale; - *descent = (float) i_descent * scale; - *lineGap = (float) i_lineGap * scale; -} - -STBTT_DEF void stbtt_GetPackedQuad(const stbtt_packedchar *chardata, int pw, int ph, int char_index, float *xpos, float *ypos, stbtt_aligned_quad *q, int align_to_integer) -{ - float ipw = 1.0f / pw, iph = 1.0f / ph; - const stbtt_packedchar *b = chardata + char_index; - - if (align_to_integer) { - float x = (float) STBTT_ifloor((*xpos + b->xoff) + 0.5f); - float y = (float) STBTT_ifloor((*ypos + b->yoff) + 0.5f); - q->x0 = x; - q->y0 = y; - q->x1 = x + b->xoff2 - b->xoff; - q->y1 = y + b->yoff2 - b->yoff; - } else { - q->x0 = *xpos + b->xoff; - q->y0 = *ypos + b->yoff; - q->x1 = *xpos + b->xoff2; - q->y1 = *ypos + b->yoff2; - } - - q->s0 = b->x0 * ipw; - q->t0 = b->y0 * iph; - q->s1 = b->x1 * ipw; - q->t1 = b->y1 * iph; - - *xpos += b->xadvance; -} - -////////////////////////////////////////////////////////////////////////////// -// -// sdf computation -// - -#define STBTT_min(a,b) ((a) < (b) ? (a) : (b)) -#define STBTT_max(a,b) ((a) < (b) ? (b) : (a)) - -static int stbtt__ray_intersect_bezier(float orig[2], float ray[2], float q0[2], float q1[2], float q2[2], float hits[2][2]) -{ - float q0perp = q0[1]*ray[0] - q0[0]*ray[1]; - float q1perp = q1[1]*ray[0] - q1[0]*ray[1]; - float q2perp = q2[1]*ray[0] - q2[0]*ray[1]; - float roperp = orig[1]*ray[0] - orig[0]*ray[1]; - - float a = q0perp - 2*q1perp + q2perp; - float b = q1perp - q0perp; - float c = q0perp - roperp; - - float s0 = 0., s1 = 0.; - int num_s = 0; - - if (a != 0.0) { - float discr = b*b - a*c; - if (discr > 0.0) { - float rcpna = -1 / a; - float d = (float) STBTT_sqrt(discr); - s0 = (b+d) * rcpna; - s1 = (b-d) * rcpna; - if (s0 >= 0.0 && s0 <= 1.0) - num_s = 1; - if (d > 0.0 && s1 >= 0.0 && s1 <= 1.0) { - if (num_s == 0) s0 = s1; - ++num_s; - } - } - } else { - // 2*b*s + c = 0 - // s = -c / (2*b) - s0 = c / (-2 * b); - if (s0 >= 0.0 && s0 <= 1.0) - num_s = 1; - } - - if (num_s == 0) - return 0; - else { - float rcp_len2 = 1 / (ray[0]*ray[0] + ray[1]*ray[1]); - float rayn_x = ray[0] * rcp_len2, rayn_y = ray[1] * rcp_len2; - - float q0d = q0[0]*rayn_x + q0[1]*rayn_y; - float q1d = q1[0]*rayn_x + q1[1]*rayn_y; - float q2d = q2[0]*rayn_x + q2[1]*rayn_y; - float rod = orig[0]*rayn_x + orig[1]*rayn_y; - - float q10d = q1d - q0d; - float q20d = q2d - q0d; - float q0rd = q0d - rod; - - hits[0][0] = q0rd + s0*(2.0f - 2.0f*s0)*q10d + s0*s0*q20d; - hits[0][1] = a*s0+b; - - if (num_s > 1) { - hits[1][0] = q0rd + s1*(2.0f - 2.0f*s1)*q10d + s1*s1*q20d; - hits[1][1] = a*s1+b; - return 2; - } else { - return 1; - } - } -} - -static int equal(float *a, float *b) -{ - return (a[0] == b[0] && a[1] == b[1]); -} - -static int stbtt__compute_crossings_x(float x, float y, int nverts, stbtt_vertex *verts) -{ - int i; - float orig[2], ray[2] = { 1, 0 }; - float y_frac; - int winding = 0; - - orig[0] = x; - //orig[1] = y; // [DEAR IMGUI] commmented double assignment - - // make sure y never passes through a vertex of the shape - y_frac = (float) STBTT_fmod(y, 1.0f); - if (y_frac < 0.01f) - y += 0.01f; - else if (y_frac > 0.99f) - y -= 0.01f; - orig[1] = y; - - // test a ray from (-infinity,y) to (x,y) - for (i=0; i < nverts; ++i) { - if (verts[i].type == STBTT_vline) { - int x0 = (int) verts[i-1].x, y0 = (int) verts[i-1].y; - int x1 = (int) verts[i ].x, y1 = (int) verts[i ].y; - if (y > STBTT_min(y0,y1) && y < STBTT_max(y0,y1) && x > STBTT_min(x0,x1)) { - float x_inter = (y - y0) / (y1 - y0) * (x1-x0) + x0; - if (x_inter < x) - winding += (y0 < y1) ? 1 : -1; - } - } - if (verts[i].type == STBTT_vcurve) { - int x0 = (int) verts[i-1].x , y0 = (int) verts[i-1].y ; - int x1 = (int) verts[i ].cx, y1 = (int) verts[i ].cy; - int x2 = (int) verts[i ].x , y2 = (int) verts[i ].y ; - int ax = STBTT_min(x0,STBTT_min(x1,x2)), ay = STBTT_min(y0,STBTT_min(y1,y2)); - int by = STBTT_max(y0,STBTT_max(y1,y2)); - if (y > ay && y < by && x > ax) { - float q0[2],q1[2],q2[2]; - float hits[2][2]; - q0[0] = (float)x0; - q0[1] = (float)y0; - q1[0] = (float)x1; - q1[1] = (float)y1; - q2[0] = (float)x2; - q2[1] = (float)y2; - if (equal(q0,q1) || equal(q1,q2)) { - x0 = (int)verts[i-1].x; - y0 = (int)verts[i-1].y; - x1 = (int)verts[i ].x; - y1 = (int)verts[i ].y; - if (y > STBTT_min(y0,y1) && y < STBTT_max(y0,y1) && x > STBTT_min(x0,x1)) { - float x_inter = (y - y0) / (y1 - y0) * (x1-x0) + x0; - if (x_inter < x) - winding += (y0 < y1) ? 1 : -1; - } - } else { - int num_hits = stbtt__ray_intersect_bezier(orig, ray, q0, q1, q2, hits); - if (num_hits >= 1) - if (hits[0][0] < 0) - winding += (hits[0][1] < 0 ? -1 : 1); - if (num_hits >= 2) - if (hits[1][0] < 0) - winding += (hits[1][1] < 0 ? -1 : 1); - } - } - } - } - return winding; -} - -static float stbtt__cuberoot( float x ) -{ - if (x<0) - return -(float) STBTT_pow(-x,1.0f/3.0f); - else - return (float) STBTT_pow( x,1.0f/3.0f); -} - -// x^3 + c*x^2 + b*x + a = 0 -static int stbtt__solve_cubic(float a, float b, float c, float* r) -{ - float s = -a / 3; - float p = b - a*a / 3; - float q = a * (2*a*a - 9*b) / 27 + c; - float p3 = p*p*p; - float d = q*q + 4*p3 / 27; - if (d >= 0) { - float z = (float) STBTT_sqrt(d); - float u = (-q + z) / 2; - float v = (-q - z) / 2; - u = stbtt__cuberoot(u); - v = stbtt__cuberoot(v); - r[0] = s + u + v; - return 1; - } else { - float u = (float) STBTT_sqrt(-p/3); - float v = (float) STBTT_acos(-STBTT_sqrt(-27/p3) * q / 2) / 3; // p3 must be negative, since d is negative - float m = (float) STBTT_cos(v); - float n = (float) STBTT_cos(v-3.141592/2)*1.732050808f; - r[0] = s + u * 2 * m; - r[1] = s - u * (m + n); - r[2] = s - u * (m - n); - - //STBTT_assert( STBTT_fabs(((r[0]+a)*r[0]+b)*r[0]+c) < 0.05f); // these asserts may not be safe at all scales, though they're in bezier t parameter units so maybe? - //STBTT_assert( STBTT_fabs(((r[1]+a)*r[1]+b)*r[1]+c) < 0.05f); - //STBTT_assert( STBTT_fabs(((r[2]+a)*r[2]+b)*r[2]+c) < 0.05f); - return 3; - } -} - -STBTT_DEF unsigned char * stbtt_GetGlyphSDF(const stbtt_fontinfo *info, float scale, int glyph, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff) -{ - float scale_x = scale, scale_y = scale; - int ix0,iy0,ix1,iy1; - int w,h; - unsigned char *data; - - // if one scale is 0, use same scale for both - if (scale_x == 0) scale_x = scale_y; - if (scale_y == 0) { - if (scale_x == 0) return NULL; // if both scales are 0, return NULL - scale_y = scale_x; - } - - stbtt_GetGlyphBitmapBoxSubpixel(info, glyph, scale, scale, 0.0f,0.0f, &ix0,&iy0,&ix1,&iy1); - - // if empty, return NULL - if (ix0 == ix1 || iy0 == iy1) - return NULL; - - ix0 -= padding; - iy0 -= padding; - ix1 += padding; - iy1 += padding; - - w = (ix1 - ix0); - h = (iy1 - iy0); - - if (width ) *width = w; - if (height) *height = h; - if (xoff ) *xoff = ix0; - if (yoff ) *yoff = iy0; - - // invert for y-downwards bitmaps - scale_y = -scale_y; - - { - int x,y,i,j; - float *precompute; - stbtt_vertex *verts; - int num_verts = stbtt_GetGlyphShape(info, glyph, &verts); - data = (unsigned char *) STBTT_malloc(w * h, info->userdata); - precompute = (float *) STBTT_malloc(num_verts * sizeof(float), info->userdata); - - for (i=0,j=num_verts-1; i < num_verts; j=i++) { - if (verts[i].type == STBTT_vline) { - float x0 = verts[i].x*scale_x, y0 = verts[i].y*scale_y; - float x1 = verts[j].x*scale_x, y1 = verts[j].y*scale_y; - float dist = (float) STBTT_sqrt((x1-x0)*(x1-x0) + (y1-y0)*(y1-y0)); - precompute[i] = (dist == 0) ? 0.0f : 1.0f / dist; - } else if (verts[i].type == STBTT_vcurve) { - float x2 = verts[j].x *scale_x, y2 = verts[j].y *scale_y; - float x1 = verts[i].cx*scale_x, y1 = verts[i].cy*scale_y; - float x0 = verts[i].x *scale_x, y0 = verts[i].y *scale_y; - float bx = x0 - 2*x1 + x2, by = y0 - 2*y1 + y2; - float len2 = bx*bx + by*by; - if (len2 != 0.0f) - precompute[i] = 1.0f / (bx*bx + by*by); - else - precompute[i] = 0.0f; - } else - precompute[i] = 0.0f; - } - - for (y=iy0; y < iy1; ++y) { - for (x=ix0; x < ix1; ++x) { - float val; - float min_dist = 999999.0f; - float sx = (float) x + 0.5f; - float sy = (float) y + 0.5f; - float x_gspace = (sx / scale_x); - float y_gspace = (sy / scale_y); - - int winding = stbtt__compute_crossings_x(x_gspace, y_gspace, num_verts, verts); // @OPTIMIZE: this could just be a rasterization, but needs to be line vs. non-tesselated curves so a new path - - for (i=0; i < num_verts; ++i) { - float x0 = verts[i].x*scale_x, y0 = verts[i].y*scale_y; - - // check against every point here rather than inside line/curve primitives -- @TODO: wrong if multiple 'moves' in a row produce a garbage point, and given culling, probably more efficient to do within line/curve - float dist2 = (x0-sx)*(x0-sx) + (y0-sy)*(y0-sy); - if (dist2 < min_dist*min_dist) - min_dist = (float) STBTT_sqrt(dist2); - - if (verts[i].type == STBTT_vline) { - float x1 = verts[i-1].x*scale_x, y1 = verts[i-1].y*scale_y; - - // coarse culling against bbox - //if (sx > STBTT_min(x0,x1)-min_dist && sx < STBTT_max(x0,x1)+min_dist && - // sy > STBTT_min(y0,y1)-min_dist && sy < STBTT_max(y0,y1)+min_dist) - float dist = (float) STBTT_fabs((x1-x0)*(y0-sy) - (y1-y0)*(x0-sx)) * precompute[i]; - STBTT_assert(i != 0); - if (dist < min_dist) { - // check position along line - // x' = x0 + t*(x1-x0), y' = y0 + t*(y1-y0) - // minimize (x'-sx)*(x'-sx)+(y'-sy)*(y'-sy) - float dx = x1-x0, dy = y1-y0; - float px = x0-sx, py = y0-sy; - // minimize (px+t*dx)^2 + (py+t*dy)^2 = px*px + 2*px*dx*t + t^2*dx*dx + py*py + 2*py*dy*t + t^2*dy*dy - // derivative: 2*px*dx + 2*py*dy + (2*dx*dx+2*dy*dy)*t, set to 0 and solve - float t = -(px*dx + py*dy) / (dx*dx + dy*dy); - if (t >= 0.0f && t <= 1.0f) - min_dist = dist; - } - } else if (verts[i].type == STBTT_vcurve) { - float x2 = verts[i-1].x *scale_x, y2 = verts[i-1].y *scale_y; - float x1 = verts[i ].cx*scale_x, y1 = verts[i ].cy*scale_y; - float box_x0 = STBTT_min(STBTT_min(x0,x1),x2); - float box_y0 = STBTT_min(STBTT_min(y0,y1),y2); - float box_x1 = STBTT_max(STBTT_max(x0,x1),x2); - float box_y1 = STBTT_max(STBTT_max(y0,y1),y2); - // coarse culling against bbox to avoid computing cubic unnecessarily - if (sx > box_x0-min_dist && sx < box_x1+min_dist && sy > box_y0-min_dist && sy < box_y1+min_dist) { - int num=0; - float ax = x1-x0, ay = y1-y0; - float bx = x0 - 2*x1 + x2, by = y0 - 2*y1 + y2; - float mx = x0 - sx, my = y0 - sy; - float res[3],px,py,t,it; - float a_inv = precompute[i]; - if (a_inv == 0.0) { // if a_inv is 0, it's 2nd degree so use quadratic formula - float a = 3*(ax*bx + ay*by); - float b = 2*(ax*ax + ay*ay) + (mx*bx+my*by); - float c = mx*ax+my*ay; - if (a == 0.0) { // if a is 0, it's linear - if (b != 0.0) { - res[num++] = -c/b; - } - } else { - float discriminant = b*b - 4*a*c; - if (discriminant < 0) - num = 0; - else { - float root = (float) STBTT_sqrt(discriminant); - res[0] = (-b - root)/(2*a); - res[1] = (-b + root)/(2*a); - num = 2; // don't bother distinguishing 1-solution case, as code below will still work - } - } - } else { - float b = 3*(ax*bx + ay*by) * a_inv; // could precompute this as it doesn't depend on sample point - float c = (2*(ax*ax + ay*ay) + (mx*bx+my*by)) * a_inv; - float d = (mx*ax+my*ay) * a_inv; - num = stbtt__solve_cubic(b, c, d, res); - } - if (num >= 1 && res[0] >= 0.0f && res[0] <= 1.0f) { - t = res[0], it = 1.0f - t; - px = it*it*x0 + 2*t*it*x1 + t*t*x2; - py = it*it*y0 + 2*t*it*y1 + t*t*y2; - dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy); - if (dist2 < min_dist * min_dist) - min_dist = (float) STBTT_sqrt(dist2); - } - if (num >= 2 && res[1] >= 0.0f && res[1] <= 1.0f) { - t = res[1], it = 1.0f - t; - px = it*it*x0 + 2*t*it*x1 + t*t*x2; - py = it*it*y0 + 2*t*it*y1 + t*t*y2; - dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy); - if (dist2 < min_dist * min_dist) - min_dist = (float) STBTT_sqrt(dist2); - } - if (num >= 3 && res[2] >= 0.0f && res[2] <= 1.0f) { - t = res[2], it = 1.0f - t; - px = it*it*x0 + 2*t*it*x1 + t*t*x2; - py = it*it*y0 + 2*t*it*y1 + t*t*y2; - dist2 = (px-sx)*(px-sx) + (py-sy)*(py-sy); - if (dist2 < min_dist * min_dist) - min_dist = (float) STBTT_sqrt(dist2); - } - } - } - } - if (winding == 0) - min_dist = -min_dist; // if outside the shape, value is negative - val = onedge_value + pixel_dist_scale * min_dist; - if (val < 0) - val = 0; - else if (val > 255) - val = 255; - data[(y-iy0)*w+(x-ix0)] = (unsigned char) val; - } - } - STBTT_free(precompute, info->userdata); - STBTT_free(verts, info->userdata); - } - return data; -} - -STBTT_DEF unsigned char * stbtt_GetCodepointSDF(const stbtt_fontinfo *info, float scale, int codepoint, int padding, unsigned char onedge_value, float pixel_dist_scale, int *width, int *height, int *xoff, int *yoff) -{ - return stbtt_GetGlyphSDF(info, scale, stbtt_FindGlyphIndex(info, codepoint), padding, onedge_value, pixel_dist_scale, width, height, xoff, yoff); -} - -STBTT_DEF void stbtt_FreeSDF(unsigned char *bitmap, void *userdata) -{ - STBTT_free(bitmap, userdata); -} - -////////////////////////////////////////////////////////////////////////////// -// -// font name matching -- recommended not to use this -// - -// check if a utf8 string contains a prefix which is the utf16 string; if so return length of matching utf8 string -static stbtt_int32 stbtt__CompareUTF8toUTF16_bigendian_prefix(stbtt_uint8 *s1, stbtt_int32 len1, stbtt_uint8 *s2, stbtt_int32 len2) -{ - stbtt_int32 i=0; - - // convert utf16 to utf8 and compare the results while converting - while (len2) { - stbtt_uint16 ch = s2[0]*256 + s2[1]; - if (ch < 0x80) { - if (i >= len1) return -1; - if (s1[i++] != ch) return -1; - } else if (ch < 0x800) { - if (i+1 >= len1) return -1; - if (s1[i++] != 0xc0 + (ch >> 6)) return -1; - if (s1[i++] != 0x80 + (ch & 0x3f)) return -1; - } else if (ch >= 0xd800 && ch < 0xdc00) { - stbtt_uint32 c; - stbtt_uint16 ch2 = s2[2]*256 + s2[3]; - if (i+3 >= len1) return -1; - c = ((ch - 0xd800) << 10) + (ch2 - 0xdc00) + 0x10000; - if (s1[i++] != 0xf0 + (c >> 18)) return -1; - if (s1[i++] != 0x80 + ((c >> 12) & 0x3f)) return -1; - if (s1[i++] != 0x80 + ((c >> 6) & 0x3f)) return -1; - if (s1[i++] != 0x80 + ((c ) & 0x3f)) return -1; - s2 += 2; // plus another 2 below - len2 -= 2; - } else if (ch >= 0xdc00 && ch < 0xe000) { - return -1; - } else { - if (i+2 >= len1) return -1; - if (s1[i++] != 0xe0 + (ch >> 12)) return -1; - if (s1[i++] != 0x80 + ((ch >> 6) & 0x3f)) return -1; - if (s1[i++] != 0x80 + ((ch ) & 0x3f)) return -1; - } - s2 += 2; - len2 -= 2; - } - return i; -} - -static int stbtt_CompareUTF8toUTF16_bigendian_internal(char *s1, int len1, char *s2, int len2) -{ - return len1 == stbtt__CompareUTF8toUTF16_bigendian_prefix((stbtt_uint8*) s1, len1, (stbtt_uint8*) s2, len2); -} - -// returns results in whatever encoding you request... but note that 2-byte encodings -// will be BIG-ENDIAN... use stbtt_CompareUTF8toUTF16_bigendian() to compare -STBTT_DEF const char *stbtt_GetFontNameString(const stbtt_fontinfo *font, int *length, int platformID, int encodingID, int languageID, int nameID) -{ - stbtt_int32 i,count,stringOffset; - stbtt_uint8 *fc = font->data; - stbtt_uint32 offset = font->fontstart; - stbtt_uint32 nm = stbtt__find_table(fc, offset, "name"); - if (!nm) return NULL; - - count = ttUSHORT(fc+nm+2); - stringOffset = nm + ttUSHORT(fc+nm+4); - for (i=0; i < count; ++i) { - stbtt_uint32 loc = nm + 6 + 12 * i; - if (platformID == ttUSHORT(fc+loc+0) && encodingID == ttUSHORT(fc+loc+2) - && languageID == ttUSHORT(fc+loc+4) && nameID == ttUSHORT(fc+loc+6)) { - *length = ttUSHORT(fc+loc+8); - return (const char *) (fc+stringOffset+ttUSHORT(fc+loc+10)); - } - } - return NULL; -} - -static int stbtt__matchpair(stbtt_uint8 *fc, stbtt_uint32 nm, stbtt_uint8 *name, stbtt_int32 nlen, stbtt_int32 target_id, stbtt_int32 next_id) -{ - stbtt_int32 i; - stbtt_int32 count = ttUSHORT(fc+nm+2); - stbtt_int32 stringOffset = nm + ttUSHORT(fc+nm+4); - - for (i=0; i < count; ++i) { - stbtt_uint32 loc = nm + 6 + 12 * i; - stbtt_int32 id = ttUSHORT(fc+loc+6); - if (id == target_id) { - // find the encoding - stbtt_int32 platform = ttUSHORT(fc+loc+0), encoding = ttUSHORT(fc+loc+2), language = ttUSHORT(fc+loc+4); - - // is this a Unicode encoding? - if (platform == 0 || (platform == 3 && encoding == 1) || (platform == 3 && encoding == 10)) { - stbtt_int32 slen = ttUSHORT(fc+loc+8); - stbtt_int32 off = ttUSHORT(fc+loc+10); - - // check if there's a prefix match - stbtt_int32 matchlen = stbtt__CompareUTF8toUTF16_bigendian_prefix(name, nlen, fc+stringOffset+off,slen); - if (matchlen >= 0) { - // check for target_id+1 immediately following, with same encoding & language - if (i+1 < count && ttUSHORT(fc+loc+12+6) == next_id && ttUSHORT(fc+loc+12) == platform && ttUSHORT(fc+loc+12+2) == encoding && ttUSHORT(fc+loc+12+4) == language) { - slen = ttUSHORT(fc+loc+12+8); - off = ttUSHORT(fc+loc+12+10); - if (slen == 0) { - if (matchlen == nlen) - return 1; - } else if (matchlen < nlen && name[matchlen] == ' ') { - ++matchlen; - if (stbtt_CompareUTF8toUTF16_bigendian_internal((char*) (name+matchlen), nlen-matchlen, (char*)(fc+stringOffset+off),slen)) - return 1; - } - } else { - // if nothing immediately following - if (matchlen == nlen) - return 1; - } - } - } - - // @TODO handle other encodings - } - } - return 0; -} - -static int stbtt__matches(stbtt_uint8 *fc, stbtt_uint32 offset, stbtt_uint8 *name, stbtt_int32 flags) -{ - stbtt_int32 nlen = (stbtt_int32) STBTT_strlen((char *) name); - stbtt_uint32 nm,hd; - if (!stbtt__isfont(fc+offset)) return 0; - - // check italics/bold/underline flags in macStyle... - if (flags) { - hd = stbtt__find_table(fc, offset, "head"); - if ((ttUSHORT(fc+hd+44) & 7) != (flags & 7)) return 0; - } - - nm = stbtt__find_table(fc, offset, "name"); - if (!nm) return 0; - - if (flags) { - // if we checked the macStyle flags, then just check the family and ignore the subfamily - if (stbtt__matchpair(fc, nm, name, nlen, 16, -1)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 1, -1)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; - } else { - if (stbtt__matchpair(fc, nm, name, nlen, 16, 17)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 1, 2)) return 1; - if (stbtt__matchpair(fc, nm, name, nlen, 3, -1)) return 1; - } - - return 0; -} - -static int stbtt_FindMatchingFont_internal(unsigned char *font_collection, char *name_utf8, stbtt_int32 flags) -{ - stbtt_int32 i; - for (i=0;;++i) { - stbtt_int32 off = stbtt_GetFontOffsetForIndex(font_collection, i); - if (off < 0) return off; - if (stbtt__matches((stbtt_uint8 *) font_collection, off, (stbtt_uint8*) name_utf8, flags)) - return off; - } -} - -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wcast-qual" -#endif - -STBTT_DEF int stbtt_BakeFontBitmap(const unsigned char *data, int offset, - float pixel_height, unsigned char *pixels, int pw, int ph, - int first_char, int num_chars, stbtt_bakedchar *chardata) -{ - return stbtt_BakeFontBitmap_internal((unsigned char *) data, offset, pixel_height, pixels, pw, ph, first_char, num_chars, chardata); -} - -STBTT_DEF int stbtt_GetFontOffsetForIndex(const unsigned char *data, int index) -{ - return stbtt_GetFontOffsetForIndex_internal((unsigned char *) data, index); -} - -STBTT_DEF int stbtt_GetNumberOfFonts(const unsigned char *data) -{ - return stbtt_GetNumberOfFonts_internal((unsigned char *) data); -} - -STBTT_DEF int stbtt_InitFont(stbtt_fontinfo *info, const unsigned char *data, int offset) -{ - return stbtt_InitFont_internal(info, (unsigned char *) data, offset); -} - -STBTT_DEF int stbtt_FindMatchingFont(const unsigned char *fontdata, const char *name, int flags) -{ - return stbtt_FindMatchingFont_internal((unsigned char *) fontdata, (char *) name, flags); -} - -STBTT_DEF int stbtt_CompareUTF8toUTF16_bigendian(const char *s1, int len1, const char *s2, int len2) -{ - return stbtt_CompareUTF8toUTF16_bigendian_internal((char *) s1, len1, (char *) s2, len2); -} - -#if defined(__GNUC__) || defined(__clang__) -#pragma GCC diagnostic pop -#endif - -#endif // STB_TRUETYPE_IMPLEMENTATION - - -// FULL VERSION HISTORY -// -// 1.19 (2018-02-11) OpenType GPOS kerning (horizontal only), STBTT_fmod -// 1.18 (2018-01-29) add missing function -// 1.17 (2017-07-23) make more arguments const; doc fix -// 1.16 (2017-07-12) SDF support -// 1.15 (2017-03-03) make more arguments const -// 1.14 (2017-01-16) num-fonts-in-TTC function -// 1.13 (2017-01-02) support OpenType fonts, certain Apple fonts -// 1.12 (2016-10-25) suppress warnings about casting away const with -Wcast-qual -// 1.11 (2016-04-02) fix unused-variable warning -// 1.10 (2016-04-02) allow user-defined fabs() replacement -// fix memory leak if fontsize=0.0 -// fix warning from duplicate typedef -// 1.09 (2016-01-16) warning fix; avoid crash on outofmem; use alloc userdata for PackFontRanges -// 1.08 (2015-09-13) document stbtt_Rasterize(); fixes for vertical & horizontal edges -// 1.07 (2015-08-01) allow PackFontRanges to accept arrays of sparse codepoints; -// allow PackFontRanges to pack and render in separate phases; -// fix stbtt_GetFontOFfsetForIndex (never worked for non-0 input?); -// fixed an assert() bug in the new rasterizer -// replace assert() with STBTT_assert() in new rasterizer -// 1.06 (2015-07-14) performance improvements (~35% faster on x86 and x64 on test machine) -// also more precise AA rasterizer, except if shapes overlap -// remove need for STBTT_sort -// 1.05 (2015-04-15) fix misplaced definitions for STBTT_STATIC -// 1.04 (2015-04-15) typo in example -// 1.03 (2015-04-12) STBTT_STATIC, fix memory leak in new packing, various fixes -// 1.02 (2014-12-10) fix various warnings & compile issues w/ stb_rect_pack, C++ -// 1.01 (2014-12-08) fix subpixel position when oversampling to exactly match -// non-oversampled; STBTT_POINT_SIZE for packed case only -// 1.00 (2014-12-06) add new PackBegin etc. API, w/ support for oversampling -// 0.99 (2014-09-18) fix multiple bugs with subpixel rendering (ryg) -// 0.9 (2014-08-07) support certain mac/iOS fonts without an MS platformID -// 0.8b (2014-07-07) fix a warning -// 0.8 (2014-05-25) fix a few more warnings -// 0.7 (2013-09-25) bugfix: subpixel glyph bug fixed in 0.5 had come back -// 0.6c (2012-07-24) improve documentation -// 0.6b (2012-07-20) fix a few more warnings -// 0.6 (2012-07-17) fix warnings; added stbtt_ScaleForMappingEmToPixels, -// stbtt_GetFontBoundingBox, stbtt_IsGlyphEmpty -// 0.5 (2011-12-09) bugfixes: -// subpixel glyph renderer computed wrong bounding box -// first vertex of shape can be off-curve (FreeSans) -// 0.4b (2011-12-03) fixed an error in the font baking example -// 0.4 (2011-12-01) kerning, subpixel rendering (tor) -// bugfixes for: -// codepoint-to-glyph conversion using table fmt=12 -// codepoint-to-glyph conversion using table fmt=4 -// stbtt_GetBakedQuad with non-square texture (Zer) -// updated Hello World! sample to use kerning and subpixel -// fixed some warnings -// 0.3 (2009-06-24) cmap fmt=12, compound shapes (MM) -// userdata, malloc-from-userdata, non-zero fill (stb) -// 0.2 (2009-03-11) Fix unsigned/signed char warnings -// 0.1 (2009-03-09) First public release -// - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/dr_wav.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/dr_wav.h deleted file mode 100644 index 1ea63da6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/dr_wav.h +++ /dev/null @@ -1,6080 +0,0 @@ -/* -WAV audio loader and writer. Choice of public domain or MIT-0. See license statements at the end of this file. -dr_wav - v0.12.2 - 2020-04-21 - -David Reid - mackron@gmail.com - -GitHub: https://github.com/mackron/dr_libs -*/ - -/* -RELEASE NOTES - VERSION 0.12 -============================ -Version 0.12 includes breaking changes to custom chunk handling. - - -Changes to Chunk Callback -------------------------- -dr_wav supports the ability to fire a callback when a chunk is encounted (except for WAVE and FMT chunks). The callback has been update to include both the -container (RIFF or Wave64) and the FMT chunk which contains information about the format of the data in the wave file. - -Previously, there was no direct way to determine the container, and therefore no way discriminate against the different IDs in the chunk header (RIFF and -Wave64 containers encode chunk ID's differently). The `container` parameter can be used to know which ID to use. - -Sometimes it can be useful to know the data format at the time the chunk callback is fired. A pointer to a `drwav_fmt` object is now passed into the chunk -callback which will give you information about the data format. To determine the sample format, use `drwav_fmt_get_format()`. This will return one of the -`DR_WAVE_FORMAT_*` tokens. -*/ - -/* -Introduction -============ -This is a single file library. To use it, do something like the following in one .c file. - - ```c - #define DR_WAV_IMPLEMENTATION - #include "dr_wav.h" - ``` - -You can then #include this file in other parts of the program as you would with any other header file. Do something like the following to read audio data: - - ```c - drwav wav; - if (!drwav_init_file(&wav, "my_song.wav", NULL)) { - // Error opening WAV file. - } - - drwav_int32* pDecodedInterleavedPCMFrames = malloc(wav.totalPCMFrameCount * wav.channels * sizeof(drwav_int32)); - size_t numberOfSamplesActuallyDecoded = drwav_read_pcm_frames_s32(&wav, wav.totalPCMFrameCount, pDecodedInterleavedPCMFrames); - - ... - - drwav_uninit(&wav); - ``` - -If you just want to quickly open and read the audio data in a single operation you can do something like this: - - ```c - unsigned int channels; - unsigned int sampleRate; - drwav_uint64 totalPCMFrameCount; - float* pSampleData = drwav_open_file_and_read_pcm_frames_f32("my_song.wav", &channels, &sampleRate, &totalPCMFrameCount, NULL); - if (pSampleData == NULL) { - // Error opening and reading WAV file. - } - - ... - - drwav_free(pSampleData); - ``` - -The examples above use versions of the API that convert the audio data to a consistent format (32-bit signed PCM, in this case), but you can still output the -audio data in its internal format (see notes below for supported formats): - - ```c - size_t framesRead = drwav_read_pcm_frames(&wav, wav.totalPCMFrameCount, pDecodedInterleavedPCMFrames); - ``` - -You can also read the raw bytes of audio data, which could be useful if dr_wav does not have native support for a particular data format: - - ```c - size_t bytesRead = drwav_read_raw(&wav, bytesToRead, pRawDataBuffer); - ``` - -dr_wav can also be used to output WAV files. This does not currently support compressed formats. To use this, look at `drwav_init_write()`, -`drwav_init_file_write()`, etc. Use `drwav_write_pcm_frames()` to write samples, or `drwav_write_raw()` to write raw data in the "data" chunk. - - ```c - drwav_data_format format; - format.container = drwav_container_riff; // <-- drwav_container_riff = normal WAV files, drwav_container_w64 = Sony Wave64. - format.format = DR_WAVE_FORMAT_PCM; // <-- Any of the DR_WAVE_FORMAT_* codes. - format.channels = 2; - format.sampleRate = 44100; - format.bitsPerSample = 16; - drwav_init_file_write(&wav, "data/recording.wav", &format, NULL); - - ... - - drwav_uint64 framesWritten = drwav_write_pcm_frames(pWav, frameCount, pSamples); - ``` - -dr_wav has seamless support the Sony Wave64 format. The decoder will automatically detect it and it should Just Work without any manual intervention. - - -Build Options -============= -#define these options before including this file. - -#define DR_WAV_NO_CONVERSION_API - Disables conversion APIs such as `drwav_read_pcm_frames_f32()` and `drwav_s16_to_f32()`. - -#define DR_WAV_NO_STDIO - Disables APIs that initialize a decoder from a file such as `drwav_init_file()`, `drwav_init_file_write()`, etc. - - - -Notes -===== -- Samples are always interleaved. -- The default read function does not do any data conversion. Use `drwav_read_pcm_frames_f32()`, `drwav_read_pcm_frames_s32()` and `drwav_read_pcm_frames_s16()` - to read and convert audio data to 32-bit floating point, signed 32-bit integer and signed 16-bit integer samples respectively. Tested and supported internal - formats include the following: - - Unsigned 8-bit PCM - - Signed 12-bit PCM - - Signed 16-bit PCM - - Signed 24-bit PCM - - Signed 32-bit PCM - - IEEE 32-bit floating point - - IEEE 64-bit floating point - - A-law and u-law - - Microsoft ADPCM - - IMA ADPCM (DVI, format code 0x11) -- dr_wav will try to read the WAV file as best it can, even if it's not strictly conformant to the WAV format. -*/ - -#ifndef dr_wav_h -#define dr_wav_h - -#ifdef __cplusplus -extern "C" { -#endif - -#include /* For size_t. */ - -/* Sized types. Prefer built-in types. Fall back to stdint. */ -#ifdef _MSC_VER - #if defined(__clang__) - #pragma GCC diagnostic push - #pragma GCC diagnostic ignored "-Wlanguage-extension-token" - #pragma GCC diagnostic ignored "-Wlong-long" - #pragma GCC diagnostic ignored "-Wc++11-long-long" - #endif - typedef signed __int8 drwav_int8; - typedef unsigned __int8 drwav_uint8; - typedef signed __int16 drwav_int16; - typedef unsigned __int16 drwav_uint16; - typedef signed __int32 drwav_int32; - typedef unsigned __int32 drwav_uint32; - typedef signed __int64 drwav_int64; - typedef unsigned __int64 drwav_uint64; - #if defined(__clang__) - #pragma GCC diagnostic pop - #endif -#else - #include - typedef int8_t drwav_int8; - typedef uint8_t drwav_uint8; - typedef int16_t drwav_int16; - typedef uint16_t drwav_uint16; - typedef int32_t drwav_int32; - typedef uint32_t drwav_uint32; - typedef int64_t drwav_int64; - typedef uint64_t drwav_uint64; -#endif -typedef drwav_uint8 drwav_bool8; -typedef drwav_uint32 drwav_bool32; -#define DRWAV_TRUE 1 -#define DRWAV_FALSE 0 - -#if !defined(DRWAV_API) - #if defined(DRWAV_DLL) - #if defined(_WIN32) - #define DRWAV_DLL_IMPORT __declspec(dllimport) - #define DRWAV_DLL_EXPORT __declspec(dllexport) - #define DRWAV_DLL_PRIVATE static - #else - #if defined(__GNUC__) && __GNUC__ >= 4 - #define DRWAV_DLL_IMPORT __attribute__((visibility("default"))) - #define DRWAV_DLL_EXPORT __attribute__((visibility("default"))) - #define DRWAV_DLL_PRIVATE __attribute__((visibility("hidden"))) - #else - #define DRWAV_DLL_IMPORT - #define DRWAV_DLL_EXPORT - #define DRWAV_DLL_PRIVATE static - #endif - #endif - - #if defined(DR_WAV_IMPLEMENTATION) || defined(DRWAV_IMPLEMENTATION) - #define DRWAV_API DRWAV_DLL_EXPORT - #else - #define DRWAV_API DRWAV_DLL_IMPORT - #endif - #define DRWAV_PRIVATE DRWAV_DLL_PRIVATE - #else - #define DRWAV_API extern - #define DRWAV_PRIVATE static - #endif -#endif - -typedef drwav_int32 drwav_result; -#define DRWAV_SUCCESS 0 -#define DRWAV_ERROR -1 /* A generic error. */ -#define DRWAV_INVALID_ARGS -2 -#define DRWAV_INVALID_OPERATION -3 -#define DRWAV_OUT_OF_MEMORY -4 -#define DRWAV_OUT_OF_RANGE -5 -#define DRWAV_ACCESS_DENIED -6 -#define DRWAV_DOES_NOT_EXIST -7 -#define DRWAV_ALREADY_EXISTS -8 -#define DRWAV_TOO_MANY_OPEN_FILES -9 -#define DRWAV_INVALID_FILE -10 -#define DRWAV_TOO_BIG -11 -#define DRWAV_PATH_TOO_LONG -12 -#define DRWAV_NAME_TOO_LONG -13 -#define DRWAV_NOT_DIRECTORY -14 -#define DRWAV_IS_DIRECTORY -15 -#define DRWAV_DIRECTORY_NOT_EMPTY -16 -#define DRWAV_END_OF_FILE -17 -#define DRWAV_NO_SPACE -18 -#define DRWAV_BUSY -19 -#define DRWAV_IO_ERROR -20 -#define DRWAV_INTERRUPT -21 -#define DRWAV_UNAVAILABLE -22 -#define DRWAV_ALREADY_IN_USE -23 -#define DRWAV_BAD_ADDRESS -24 -#define DRWAV_BAD_SEEK -25 -#define DRWAV_BAD_PIPE -26 -#define DRWAV_DEADLOCK -27 -#define DRWAV_TOO_MANY_LINKS -28 -#define DRWAV_NOT_IMPLEMENTED -29 -#define DRWAV_NO_MESSAGE -30 -#define DRWAV_BAD_MESSAGE -31 -#define DRWAV_NO_DATA_AVAILABLE -32 -#define DRWAV_INVALID_DATA -33 -#define DRWAV_TIMEOUT -34 -#define DRWAV_NO_NETWORK -35 -#define DRWAV_NOT_UNIQUE -36 -#define DRWAV_NOT_SOCKET -37 -#define DRWAV_NO_ADDRESS -38 -#define DRWAV_BAD_PROTOCOL -39 -#define DRWAV_PROTOCOL_UNAVAILABLE -40 -#define DRWAV_PROTOCOL_NOT_SUPPORTED -41 -#define DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED -42 -#define DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED -43 -#define DRWAV_SOCKET_NOT_SUPPORTED -44 -#define DRWAV_CONNECTION_RESET -45 -#define DRWAV_ALREADY_CONNECTED -46 -#define DRWAV_NOT_CONNECTED -47 -#define DRWAV_CONNECTION_REFUSED -48 -#define DRWAV_NO_HOST -49 -#define DRWAV_IN_PROGRESS -50 -#define DRWAV_CANCELLED -51 -#define DRWAV_MEMORY_ALREADY_MAPPED -52 -#define DRWAV_AT_END -53 - -/* Common data formats. */ -#define DR_WAVE_FORMAT_PCM 0x1 -#define DR_WAVE_FORMAT_ADPCM 0x2 -#define DR_WAVE_FORMAT_IEEE_FLOAT 0x3 -#define DR_WAVE_FORMAT_ALAW 0x6 -#define DR_WAVE_FORMAT_MULAW 0x7 -#define DR_WAVE_FORMAT_DVI_ADPCM 0x11 -#define DR_WAVE_FORMAT_EXTENSIBLE 0xFFFE - -/* Constants. */ -#ifndef DRWAV_MAX_SMPL_LOOPS -#define DRWAV_MAX_SMPL_LOOPS 1 -#endif - -/* Flags to pass into drwav_init_ex(), etc. */ -#define DRWAV_SEQUENTIAL 0x00000001 - -typedef enum -{ - drwav_seek_origin_start, - drwav_seek_origin_current -} drwav_seek_origin; - -typedef enum -{ - drwav_container_riff, - drwav_container_w64 -} drwav_container; - -typedef struct -{ - union - { - drwav_uint8 fourcc[4]; - drwav_uint8 guid[16]; - } id; - - /* The size in bytes of the chunk. */ - drwav_uint64 sizeInBytes; - - /* - RIFF = 2 byte alignment. - W64 = 8 byte alignment. - */ - unsigned int paddingSize; -} drwav_chunk_header; - -typedef struct -{ - /* - The format tag exactly as specified in the wave file's "fmt" chunk. This can be used by applications - that require support for data formats not natively supported by dr_wav. - */ - drwav_uint16 formatTag; - - /* The number of channels making up the audio data. When this is set to 1 it is mono, 2 is stereo, etc. */ - drwav_uint16 channels; - - /* The sample rate. Usually set to something like 44100. */ - drwav_uint32 sampleRate; - - /* Average bytes per second. You probably don't need this, but it's left here for informational purposes. */ - drwav_uint32 avgBytesPerSec; - - /* Block align. This is equal to the number of channels * bytes per sample. */ - drwav_uint16 blockAlign; - - /* Bits per sample. */ - drwav_uint16 bitsPerSample; - - /* The size of the extended data. Only used internally for validation, but left here for informational purposes. */ - drwav_uint16 extendedSize; - - /* - The number of valid bits per sample. When is equal to WAVE_FORMAT_EXTENSIBLE, - is always rounded up to the nearest multiple of 8. This variable contains information about exactly how - many bits are valid per sample. Mainly used for informational purposes. - */ - drwav_uint16 validBitsPerSample; - - /* The channel mask. Not used at the moment. */ - drwav_uint32 channelMask; - - /* The sub-format, exactly as specified by the wave file. */ - drwav_uint8 subFormat[16]; -} drwav_fmt; - -DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT); - - -/* -Callback for when data is read. Return value is the number of bytes actually read. - -pUserData [in] The user data that was passed to drwav_init() and family. -pBufferOut [out] The output buffer. -bytesToRead [in] The number of bytes to read. - -Returns the number of bytes actually read. - -A return value of less than bytesToRead indicates the end of the stream. Do _not_ return from this callback until -either the entire bytesToRead is filled or you have reached the end of the stream. -*/ -typedef size_t (* drwav_read_proc)(void* pUserData, void* pBufferOut, size_t bytesToRead); - -/* -Callback for when data is written. Returns value is the number of bytes actually written. - -pUserData [in] The user data that was passed to drwav_init_write() and family. -pData [out] A pointer to the data to write. -bytesToWrite [in] The number of bytes to write. - -Returns the number of bytes actually written. - -If the return value differs from bytesToWrite, it indicates an error. -*/ -typedef size_t (* drwav_write_proc)(void* pUserData, const void* pData, size_t bytesToWrite); - -/* -Callback for when data needs to be seeked. - -pUserData [in] The user data that was passed to drwav_init() and family. -offset [in] The number of bytes to move, relative to the origin. Will never be negative. -origin [in] The origin of the seek - the current position or the start of the stream. - -Returns whether or not the seek was successful. - -Whether or not it is relative to the beginning or current position is determined by the "origin" parameter which will be either drwav_seek_origin_start or -drwav_seek_origin_current. -*/ -typedef drwav_bool32 (* drwav_seek_proc)(void* pUserData, int offset, drwav_seek_origin origin); - -/* -Callback for when drwav_init_ex() finds a chunk. - -pChunkUserData [in] The user data that was passed to the pChunkUserData parameter of drwav_init_ex() and family. -onRead [in] A pointer to the function to call when reading. -onSeek [in] A pointer to the function to call when seeking. -pReadSeekUserData [in] The user data that was passed to the pReadSeekUserData parameter of drwav_init_ex() and family. -pChunkHeader [in] A pointer to an object containing basic header information about the chunk. Use this to identify the chunk. -container [in] Whether or not the WAV file is a RIFF or Wave64 container. If you're unsure of the difference, assume RIFF. -pFMT [in] A pointer to the object containing the contents of the "fmt" chunk. - -Returns the number of bytes read + seeked. - -To read data from the chunk, call onRead(), passing in pReadSeekUserData as the first parameter. Do the same for seeking with onSeek(). The return value must -be the total number of bytes you have read _plus_ seeked. - -Use the `container` argument to discriminate the fields in `pChunkHeader->id`. If the container is `drwav_container_riff` you should use `id.fourcc`, -otherwise you should use `id.guid`. - -The `pFMT` parameter can be used to determine the data format of the wave file. Use `drwav_fmt_get_format()` to get the sample format, which will be one of the -`DR_WAVE_FORMAT_*` identifiers. - -The read pointer will be sitting on the first byte after the chunk's header. You must not attempt to read beyond the boundary of the chunk. -*/ -typedef drwav_uint64 (* drwav_chunk_proc)(void* pChunkUserData, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pReadSeekUserData, const drwav_chunk_header* pChunkHeader, drwav_container container, const drwav_fmt* pFMT); - -typedef struct -{ - void* pUserData; - void* (* onMalloc)(size_t sz, void* pUserData); - void* (* onRealloc)(void* p, size_t sz, void* pUserData); - void (* onFree)(void* p, void* pUserData); -} drwav_allocation_callbacks; - -/* Structure for internal use. Only used for loaders opened with drwav_init_memory(). */ -typedef struct -{ - const drwav_uint8* data; - size_t dataSize; - size_t currentReadPos; -} drwav__memory_stream; - -/* Structure for internal use. Only used for writers opened with drwav_init_memory_write(). */ -typedef struct -{ - void** ppData; - size_t* pDataSize; - size_t dataSize; - size_t dataCapacity; - size_t currentWritePos; -} drwav__memory_stream_write; - -typedef struct -{ - drwav_container container; /* RIFF, W64. */ - drwav_uint32 format; /* DR_WAVE_FORMAT_* */ - drwav_uint32 channels; - drwav_uint32 sampleRate; - drwav_uint32 bitsPerSample; -} drwav_data_format; - - -/* See the following for details on the 'smpl' chunk: https://sites.google.com/site/musicgapi/technical-documents/wav-file-format#smpl */ -typedef struct -{ - drwav_uint32 cuePointId; - drwav_uint32 type; - drwav_uint32 start; - drwav_uint32 end; - drwav_uint32 fraction; - drwav_uint32 playCount; -} drwav_smpl_loop; - - typedef struct -{ - drwav_uint32 manufacturer; - drwav_uint32 product; - drwav_uint32 samplePeriod; - drwav_uint32 midiUnityNotes; - drwav_uint32 midiPitchFraction; - drwav_uint32 smpteFormat; - drwav_uint32 smpteOffset; - drwav_uint32 numSampleLoops; - drwav_uint32 samplerData; - drwav_smpl_loop loops[DRWAV_MAX_SMPL_LOOPS]; -} drwav_smpl; - -typedef struct -{ - /* A pointer to the function to call when more data is needed. */ - drwav_read_proc onRead; - - /* A pointer to the function to call when data needs to be written. Only used when the drwav object is opened in write mode. */ - drwav_write_proc onWrite; - - /* A pointer to the function to call when the wav file needs to be seeked. */ - drwav_seek_proc onSeek; - - /* The user data to pass to callbacks. */ - void* pUserData; - - /* Allocation callbacks. */ - drwav_allocation_callbacks allocationCallbacks; - - - /* Whether or not the WAV file is formatted as a standard RIFF file or W64. */ - drwav_container container; - - - /* Structure containing format information exactly as specified by the wav file. */ - drwav_fmt fmt; - - /* The sample rate. Will be set to something like 44100. */ - drwav_uint32 sampleRate; - - /* The number of channels. This will be set to 1 for monaural streams, 2 for stereo, etc. */ - drwav_uint16 channels; - - /* The bits per sample. Will be set to something like 16, 24, etc. */ - drwav_uint16 bitsPerSample; - - /* Equal to fmt.formatTag, or the value specified by fmt.subFormat if fmt.formatTag is equal to 65534 (WAVE_FORMAT_EXTENSIBLE). */ - drwav_uint16 translatedFormatTag; - - /* The total number of PCM frames making up the audio data. */ - drwav_uint64 totalPCMFrameCount; - - - /* The size in bytes of the data chunk. */ - drwav_uint64 dataChunkDataSize; - - /* The position in the stream of the first byte of the data chunk. This is used for seeking. */ - drwav_uint64 dataChunkDataPos; - - /* The number of bytes remaining in the data chunk. */ - drwav_uint64 bytesRemaining; - - - /* - Only used in sequential write mode. Keeps track of the desired size of the "data" chunk at the point of initialization time. Always - set to 0 for non-sequential writes and when the drwav object is opened in read mode. Used for validation. - */ - drwav_uint64 dataChunkDataSizeTargetWrite; - - /* Keeps track of whether or not the wav writer was initialized in sequential mode. */ - drwav_bool32 isSequentialWrite; - - - /* smpl chunk. */ - drwav_smpl smpl; - - - /* A hack to avoid a DRWAV_MALLOC() when opening a decoder with drwav_init_memory(). */ - drwav__memory_stream memoryStream; - drwav__memory_stream_write memoryStreamWrite; - - /* Generic data for compressed formats. This data is shared across all block-compressed formats. */ - struct - { - drwav_uint64 iCurrentPCMFrame; /* The index of the next PCM frame that will be read by drwav_read_*(). This is used with "totalPCMFrameCount" to ensure we don't read excess samples at the end of the last block. */ - } compressed; - - /* Microsoft ADPCM specific data. */ - struct - { - drwav_uint32 bytesRemainingInBlock; - drwav_uint16 predictor[2]; - drwav_int32 delta[2]; - drwav_int32 cachedFrames[4]; /* Samples are stored in this cache during decoding. */ - drwav_uint32 cachedFrameCount; - drwav_int32 prevFrames[2][2]; /* The previous 2 samples for each channel (2 channels at most). */ - } msadpcm; - - /* IMA ADPCM specific data. */ - struct - { - drwav_uint32 bytesRemainingInBlock; - drwav_int32 predictor[2]; - drwav_int32 stepIndex[2]; - drwav_int32 cachedFrames[16]; /* Samples are stored in this cache during decoding. */ - drwav_uint32 cachedFrameCount; - } ima; -} drwav; - - -/* -Initializes a pre-allocated drwav object for reading. - -pWav [out] A pointer to the drwav object being initialized. -onRead [in] The function to call when data needs to be read from the client. -onSeek [in] The function to call when the read position of the client data needs to move. -onChunk [in, optional] The function to call when a chunk is enumerated at initialized time. -pUserData, pReadSeekUserData [in, optional] A pointer to application defined data that will be passed to onRead and onSeek. -pChunkUserData [in, optional] A pointer to application defined data that will be passed to onChunk. -flags [in, optional] A set of flags for controlling how things are loaded. - -Returns true if successful; false otherwise. - -Close the loader with drwav_uninit(). - -This is the lowest level function for initializing a WAV file. You can also use drwav_init_file() and drwav_init_memory() -to open the stream from a file or from a block of memory respectively. - -Possible values for flags: - DRWAV_SEQUENTIAL: Never perform a backwards seek while loading. This disables the chunk callback and will cause this function - to return as soon as the data chunk is found. Any chunks after the data chunk will be ignored. - -drwav_init() is equivalent to "drwav_init_ex(pWav, onRead, onSeek, NULL, pUserData, NULL, 0);". - -The onChunk callback is not called for the WAVE or FMT chunks. The contents of the FMT chunk can be read from pWav->fmt -after the function returns. - -See also: drwav_init_file(), drwav_init_memory(), drwav_uninit() -*/ -DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); - -/* -Initializes a pre-allocated drwav object for writing. - -onWrite [in] The function to call when data needs to be written. -onSeek [in] The function to call when the write position needs to move. -pUserData [in, optional] A pointer to application defined data that will be passed to onWrite and onSeek. - -Returns true if successful; false otherwise. - -Close the writer with drwav_uninit(). - -This is the lowest level function for initializing a WAV file. You can also use drwav_init_file_write() and drwav_init_memory_write() -to open the stream from a file or from a block of memory respectively. - -If the total sample count is known, you can use drwav_init_write_sequential(). This avoids the need for dr_wav to perform -a post-processing step for storing the total sample count and the size of the data chunk which requires a backwards seek. - -See also: drwav_init_file_write(), drwav_init_memory_write(), drwav_uninit() -*/ -DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks); - -/* -Utility function to determine the target size of the entire data to be written (including all headers and chunks). - -Returns the target size in bytes. - -Useful if the application needs to know the size to allocate. - -Only writing to the RIFF chunk and one data chunk is currently supported. - -See also: drwav_init_write(), drwav_init_file_write(), drwav_init_memory_write() -*/ -DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalSampleCount); - -/* -Uninitializes the given drwav object. - -Use this only for objects initialized with drwav_init*() functions (drwav_init(), drwav_init_ex(), drwav_init_write(), drwav_init_write_sequential()). -*/ -DRWAV_API drwav_result drwav_uninit(drwav* pWav); - - -/* -Reads raw audio data. - -This is the lowest level function for reading audio data. It simply reads the given number of -bytes of the raw internal sample data. - -Consider using drwav_read_pcm_frames_s16(), drwav_read_pcm_frames_s32() or drwav_read_pcm_frames_f32() for -reading sample data in a consistent format. - -Returns the number of bytes actually read. -*/ -DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut); - -/* -Reads up to the specified number of PCM frames from the WAV file. - -The output data will be in the file's internal format, converted to native-endian byte order. Use -drwav_read_pcm_frames_s16/f32/s32() to read data in a specific format. - -If the return value is less than it means the end of the file has been reached or -you have requested more PCM frames than can possibly fit in the output buffer. - -This function will only work when sample data is of a fixed size and uncompressed. If you are -using a compressed format consider using drwav_read_raw() or drwav_read_pcm_frames_s16/s32/f32(). -*/ -DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut); - -/* -Seeks to the given PCM frame. - -Returns true if successful; false otherwise. -*/ -DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex); - - -/* -Writes raw audio data. - -Returns the number of bytes actually written. If this differs from bytesToWrite, it indicates an error. -*/ -DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData); - -/* -Writes PCM frames. - -Returns the number of PCM frames written. - -Input samples need to be in native-endian byte order. On big-endian architectures the input data will be converted to -little-endian. Use drwav_write_raw() to write raw audio data without performing any conversion. -*/ -DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); -DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); -DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData); - - -/* Conversion Utilities */ -#ifndef DR_WAV_NO_CONVERSION_API - -/* -Reads a chunk of audio data and converts it to signed 16-bit PCM samples. - -Returns the number of PCM frames actually read. - -If the return value is less than it means the end of the file has been reached. -*/ -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut); - -/* Low-level function for converting unsigned 8-bit PCM samples to signed 16-bit PCM samples. */ -DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting signed 24-bit PCM samples to signed 16-bit PCM samples. */ -DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting signed 32-bit PCM samples to signed 16-bit PCM samples. */ -DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount); - -/* Low-level function for converting IEEE 32-bit floating point samples to signed 16-bit PCM samples. */ -DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount); - -/* Low-level function for converting IEEE 64-bit floating point samples to signed 16-bit PCM samples. */ -DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount); - -/* Low-level function for converting A-law samples to signed 16-bit PCM samples. */ -DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting u-law samples to signed 16-bit PCM samples. */ -DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount); - - -/* -Reads a chunk of audio data and converts it to IEEE 32-bit floating point samples. - -Returns the number of PCM frames actually read. - -If the return value is less than it means the end of the file has been reached. -*/ -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut); - -/* Low-level function for converting unsigned 8-bit PCM samples to IEEE 32-bit floating point samples. */ -DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting signed 16-bit PCM samples to IEEE 32-bit floating point samples. */ -DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount); - -/* Low-level function for converting signed 24-bit PCM samples to IEEE 32-bit floating point samples. */ -DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting signed 32-bit PCM samples to IEEE 32-bit floating point samples. */ -DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount); - -/* Low-level function for converting IEEE 64-bit floating point samples to IEEE 32-bit floating point samples. */ -DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount); - -/* Low-level function for converting A-law samples to IEEE 32-bit floating point samples. */ -DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting u-law samples to IEEE 32-bit floating point samples. */ -DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount); - - -/* -Reads a chunk of audio data and converts it to signed 32-bit PCM samples. - -Returns the number of PCM frames actually read. - -If the return value is less than it means the end of the file has been reached. -*/ -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut); - -/* Low-level function for converting unsigned 8-bit PCM samples to signed 32-bit PCM samples. */ -DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting signed 16-bit PCM samples to signed 32-bit PCM samples. */ -DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount); - -/* Low-level function for converting signed 24-bit PCM samples to signed 32-bit PCM samples. */ -DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting IEEE 32-bit floating point samples to signed 32-bit PCM samples. */ -DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount); - -/* Low-level function for converting IEEE 64-bit floating point samples to signed 32-bit PCM samples. */ -DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount); - -/* Low-level function for converting A-law samples to signed 32-bit PCM samples. */ -DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); - -/* Low-level function for converting u-law samples to signed 32-bit PCM samples. */ -DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount); - -#endif /* DR_WAV_NO_CONVERSION_API */ - - -/* High-Level Convenience Helpers */ - -#ifndef DR_WAV_NO_STDIO -/* -Helper for initializing a wave file for reading using stdio. - -This holds the internal FILE object until drwav_uninit() is called. Keep this in mind if you're caching drwav -objects because the operating system may restrict the number of file handles an application can have open at -any given time. -*/ -DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); - -/* -Helper for initializing a wave file for writing using stdio. - -This holds the internal FILE object until drwav_uninit() is called. Keep this in mind if you're caching drwav -objects because the operating system may restrict the number of file handles an application can have open at -any given time. -*/ -DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); -#endif /* DR_WAV_NO_STDIO */ - -/* -Helper for initializing a loader from a pre-allocated memory buffer. - -This does not create a copy of the data. It is up to the application to ensure the buffer remains valid for -the lifetime of the drwav object. - -The buffer should contain the contents of the entire wave file, not just the sample data. -*/ -DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks); - -/* -Helper for initializing a writer which outputs data to a memory buffer. - -dr_wav will manage the memory allocations, however it is up to the caller to free the data with drwav_free(). - -The buffer will remain allocated even after drwav_uninit() is called. Indeed, the buffer should not be -considered valid until after drwav_uninit() has been called anyway. -*/ -DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks); - - -#ifndef DR_WAV_NO_CONVERSION_API -/* -Opens and reads an entire wav file in a single operation. - -The return value is a heap-allocated buffer containing the audio data. Use drwav_free() to free the buffer. -*/ -DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -#ifndef DR_WAV_NO_STDIO -/* -Opens and decodes an entire wav file in a single operation. - -The return value is a heap-allocated buffer containing the audio data. Use drwav_free() to free the buffer. -*/ -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -#endif -/* -Opens and decodes an entire wav file from a block of memory in a single operation. - -The return value is a heap-allocated buffer containing the audio data. Use drwav_free() to free the buffer. -*/ -DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks); -#endif - -/* Frees data that was allocated internally by dr_wav. */ -DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks); - -/* Converts bytes from a wav stream to a sized type of native endian. */ -DRWAV_API drwav_uint16 drwav_bytes_to_u16(const unsigned char* data); -DRWAV_API drwav_int16 drwav_bytes_to_s16(const unsigned char* data); -DRWAV_API drwav_uint32 drwav_bytes_to_u32(const unsigned char* data); -DRWAV_API drwav_int32 drwav_bytes_to_s32(const unsigned char* data); -DRWAV_API drwav_uint64 drwav_bytes_to_u64(const unsigned char* data); -DRWAV_API drwav_int64 drwav_bytes_to_s64(const unsigned char* data); - -/* Compares a GUID for the purpose of checking the type of a Wave64 chunk. */ -DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]); - -/* Compares a four-character-code for the purpose of checking the type of a RIFF chunk. */ -DRWAV_API drwav_bool32 drwav_fourcc_equal(const unsigned char* a, const char* b); - -#ifdef __cplusplus -} -#endif -#endif /* dr_wav_h */ - - -/************************************************************************************************************************************************************ - ************************************************************************************************************************************************************ - - IMPLEMENTATION - - ************************************************************************************************************************************************************ - ************************************************************************************************************************************************************/ -#if defined(DR_WAV_IMPLEMENTATION) || defined(DRWAV_IMPLEMENTATION) -#include -#include /* For memcpy(), memset() */ -#include /* For INT_MAX */ - -#ifndef DR_WAV_NO_STDIO -#include -#include -#endif - -/* Standard library stuff. */ -#ifndef DRWAV_ASSERT -#include -#define DRWAV_ASSERT(expression) assert(expression) -#endif -#ifndef DRWAV_MALLOC -#define DRWAV_MALLOC(sz) malloc((sz)) -#endif -#ifndef DRWAV_REALLOC -#define DRWAV_REALLOC(p, sz) realloc((p), (sz)) -#endif -#ifndef DRWAV_FREE -#define DRWAV_FREE(p) free((p)) -#endif -#ifndef DRWAV_COPY_MEMORY -#define DRWAV_COPY_MEMORY(dst, src, sz) memcpy((dst), (src), (sz)) -#endif -#ifndef DRWAV_ZERO_MEMORY -#define DRWAV_ZERO_MEMORY(p, sz) memset((p), 0, (sz)) -#endif -#ifndef DRWAV_ZERO_OBJECT -#define DRWAV_ZERO_OBJECT(p) DRWAV_ZERO_MEMORY((p), sizeof(*p)) -#endif - -#define drwav_countof(x) (sizeof(x) / sizeof(x[0])) -#define drwav_align(x, a) ((((x) + (a) - 1) / (a)) * (a)) -#define drwav_min(a, b) (((a) < (b)) ? (a) : (b)) -#define drwav_max(a, b) (((a) > (b)) ? (a) : (b)) -#define drwav_clamp(x, lo, hi) (drwav_max((lo), drwav_min((hi), (x)))) - -#define DRWAV_MAX_SIMD_VECTOR_SIZE 64 /* 64 for AVX-512 in the future. */ - -/* CPU architecture. */ -#if defined(__x86_64__) || defined(_M_X64) - #define DRWAV_X64 -#elif defined(__i386) || defined(_M_IX86) - #define DRWAV_X86 -#elif defined(__arm__) || defined(_M_ARM) - #define DRWAV_ARM -#endif - -#ifdef _MSC_VER - #define DRWAV_INLINE __forceinline -#elif defined(__GNUC__) - /* - I've had a bug report where GCC is emitting warnings about functions possibly not being inlineable. This warning happens when - the __attribute__((always_inline)) attribute is defined without an "inline" statement. I think therefore there must be some - case where "__inline__" is not always defined, thus the compiler emitting these warnings. When using -std=c89 or -ansi on the - command line, we cannot use the "inline" keyword and instead need to use "__inline__". In an attempt to work around this issue - I am using "__inline__" only when we're compiling in strict ANSI mode. - */ - #if defined(__STRICT_ANSI__) - #define DRWAV_INLINE __inline__ __attribute__((always_inline)) - #else - #define DRWAV_INLINE inline __attribute__((always_inline)) - #endif -#else - #define DRWAV_INLINE -#endif - -#if defined(SIZE_MAX) - #define DRWAV_SIZE_MAX SIZE_MAX -#else - #if defined(_WIN64) || defined(_LP64) || defined(__LP64__) - #define DRWAV_SIZE_MAX ((drwav_uint64)0xFFFFFFFFFFFFFFFF) - #else - #define DRWAV_SIZE_MAX 0xFFFFFFFF - #endif -#endif - -#if defined(_MSC_VER) && _MSC_VER >= 1400 - #define DRWAV_HAS_BYTESWAP16_INTRINSIC - #define DRWAV_HAS_BYTESWAP32_INTRINSIC - #define DRWAV_HAS_BYTESWAP64_INTRINSIC -#elif defined(__clang__) - #if defined(__has_builtin) - #if __has_builtin(__builtin_bswap16) - #define DRWAV_HAS_BYTESWAP16_INTRINSIC - #endif - #if __has_builtin(__builtin_bswap32) - #define DRWAV_HAS_BYTESWAP32_INTRINSIC - #endif - #if __has_builtin(__builtin_bswap64) - #define DRWAV_HAS_BYTESWAP64_INTRINSIC - #endif - #endif -#elif defined(__GNUC__) - #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define DRWAV_HAS_BYTESWAP32_INTRINSIC - #define DRWAV_HAS_BYTESWAP64_INTRINSIC - #endif - #if ((__GNUC__ > 4) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 8)) - #define DRWAV_HAS_BYTESWAP16_INTRINSIC - #endif -#endif - -/* -These limits are used for basic validation when initializing the decoder. If you exceed these limits, first of all: what on Earth are -you doing?! (Let me know, I'd be curious!) Second, you can adjust these by #define-ing them before the dr_wav implementation. -*/ -#ifndef DRWAV_MAX_SAMPLE_RATE -#define DRWAV_MAX_SAMPLE_RATE 384000 -#endif -#ifndef DRWAV_MAX_CHANNELS -#define DRWAV_MAX_CHANNELS 256 -#endif -#ifndef DRWAV_MAX_BITS_PER_SAMPLE -#define DRWAV_MAX_BITS_PER_SAMPLE 64 -#endif - -static const drwav_uint8 drwavGUID_W64_RIFF[16] = {0x72,0x69,0x66,0x66, 0x2E,0x91, 0xCF,0x11, 0xA5,0xD6, 0x28,0xDB,0x04,0xC1,0x00,0x00}; /* 66666972-912E-11CF-A5D6-28DB04C10000 */ -static const drwav_uint8 drwavGUID_W64_WAVE[16] = {0x77,0x61,0x76,0x65, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 65766177-ACF3-11D3-8CD1-00C04F8EDB8A */ -static const drwav_uint8 drwavGUID_W64_JUNK[16] = {0x6A,0x75,0x6E,0x6B, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 6B6E756A-ACF3-11D3-8CD1-00C04F8EDB8A */ -static const drwav_uint8 drwavGUID_W64_FMT [16] = {0x66,0x6D,0x74,0x20, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 20746D66-ACF3-11D3-8CD1-00C04F8EDB8A */ -static const drwav_uint8 drwavGUID_W64_FACT[16] = {0x66,0x61,0x63,0x74, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 74636166-ACF3-11D3-8CD1-00C04F8EDB8A */ -static const drwav_uint8 drwavGUID_W64_DATA[16] = {0x64,0x61,0x74,0x61, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 61746164-ACF3-11D3-8CD1-00C04F8EDB8A */ -static const drwav_uint8 drwavGUID_W64_SMPL[16] = {0x73,0x6D,0x70,0x6C, 0xF3,0xAC, 0xD3,0x11, 0x8C,0xD1, 0x00,0xC0,0x4F,0x8E,0xDB,0x8A}; /* 6C706D73-ACF3-11D3-8CD1-00C04F8EDB8A */ - -static DRWAV_INLINE drwav_bool32 drwav__guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]) -{ - int i; - for (i = 0; i < 16; i += 1) { - if (a[i] != b[i]) { - return DRWAV_FALSE; - } - } - - return DRWAV_TRUE; -} - -static DRWAV_INLINE drwav_bool32 drwav__fourcc_equal(const unsigned char* a, const char* b) -{ - return - a[0] == b[0] && - a[1] == b[1] && - a[2] == b[2] && - a[3] == b[3]; -} - - - -static DRWAV_INLINE int drwav__is_little_endian(void) -{ -#if defined(DRWAV_X86) || defined(DRWAV_X64) - return DRWAV_TRUE; -#elif defined(__BYTE_ORDER) && defined(__LITTLE_ENDIAN) && __BYTE_ORDER == __LITTLE_ENDIAN - return DRWAV_TRUE; -#else - int n = 1; - return (*(char*)&n) == 1; -#endif -} - -static DRWAV_INLINE drwav_uint16 drwav__bytes_to_u16(const unsigned char* data) -{ - return (data[0] << 0) | (data[1] << 8); -} - -static DRWAV_INLINE drwav_int16 drwav__bytes_to_s16(const unsigned char* data) -{ - return (short)drwav__bytes_to_u16(data); -} - -static DRWAV_INLINE drwav_uint32 drwav__bytes_to_u32(const unsigned char* data) -{ - return (data[0] << 0) | (data[1] << 8) | (data[2] << 16) | (data[3] << 24); -} - -static DRWAV_INLINE drwav_int32 drwav__bytes_to_s32(const unsigned char* data) -{ - return (drwav_int32)drwav__bytes_to_u32(data); -} - -static DRWAV_INLINE drwav_uint64 drwav__bytes_to_u64(const unsigned char* data) -{ - return - ((drwav_uint64)data[0] << 0) | ((drwav_uint64)data[1] << 8) | ((drwav_uint64)data[2] << 16) | ((drwav_uint64)data[3] << 24) | - ((drwav_uint64)data[4] << 32) | ((drwav_uint64)data[5] << 40) | ((drwav_uint64)data[6] << 48) | ((drwav_uint64)data[7] << 56); -} - -static DRWAV_INLINE drwav_int64 drwav__bytes_to_s64(const unsigned char* data) -{ - return (drwav_int64)drwav__bytes_to_u64(data); -} - -static DRWAV_INLINE void drwav__bytes_to_guid(const unsigned char* data, drwav_uint8* guid) -{ - int i; - for (i = 0; i < 16; ++i) { - guid[i] = data[i]; - } -} - - -static DRWAV_INLINE drwav_uint16 drwav__bswap16(drwav_uint16 n) -{ -#ifdef DRWAV_HAS_BYTESWAP16_INTRINSIC - #if defined(_MSC_VER) - return _byteswap_ushort(n); - #elif defined(__GNUC__) || defined(__clang__) - return __builtin_bswap16(n); - #else - #error "This compiler does not support the byte swap intrinsic." - #endif -#else - return ((n & 0xFF00) >> 8) | - ((n & 0x00FF) << 8); -#endif -} - -static DRWAV_INLINE drwav_uint32 drwav__bswap32(drwav_uint32 n) -{ -#ifdef DRWAV_HAS_BYTESWAP32_INTRINSIC - #if defined(_MSC_VER) - return _byteswap_ulong(n); - #elif defined(__GNUC__) || defined(__clang__) - #if defined(DRWAV_ARM) && (defined(__ARM_ARCH) && __ARM_ARCH >= 6) && !defined(DRWAV_64BIT) /* <-- 64-bit inline assembly has not been tested, so disabling for now. */ - /* Inline assembly optimized implementation for ARM. In my testing, GCC does not generate optimized code with __builtin_bswap32(). */ - drwav_uint32 r; - __asm__ __volatile__ ( - #if defined(DRWAV_64BIT) - "rev %w[out], %w[in]" : [out]"=r"(r) : [in]"r"(n) /* <-- This is untested. If someone in the community could test this, that would be appreciated! */ - #else - "rev %[out], %[in]" : [out]"=r"(r) : [in]"r"(n) - #endif - ); - return r; - #else - return __builtin_bswap32(n); - #endif - #else - #error "This compiler does not support the byte swap intrinsic." - #endif -#else - return ((n & 0xFF000000) >> 24) | - ((n & 0x00FF0000) >> 8) | - ((n & 0x0000FF00) << 8) | - ((n & 0x000000FF) << 24); -#endif -} - -static DRWAV_INLINE drwav_uint64 drwav__bswap64(drwav_uint64 n) -{ -#ifdef DRWAV_HAS_BYTESWAP64_INTRINSIC - #if defined(_MSC_VER) - return _byteswap_uint64(n); - #elif defined(__GNUC__) || defined(__clang__) - return __builtin_bswap64(n); - #else - #error "This compiler does not support the byte swap intrinsic." - #endif -#else - return ((n & (drwav_uint64)0xFF00000000000000) >> 56) | - ((n & (drwav_uint64)0x00FF000000000000) >> 40) | - ((n & (drwav_uint64)0x0000FF0000000000) >> 24) | - ((n & (drwav_uint64)0x000000FF00000000) >> 8) | - ((n & (drwav_uint64)0x00000000FF000000) << 8) | - ((n & (drwav_uint64)0x0000000000FF0000) << 24) | - ((n & (drwav_uint64)0x000000000000FF00) << 40) | - ((n & (drwav_uint64)0x00000000000000FF) << 56); -#endif -} - - -static DRWAV_INLINE drwav_int16 drwav__bswap_s16(drwav_int16 n) -{ - return (drwav_int16)drwav__bswap16((drwav_uint16)n); -} - -static DRWAV_INLINE void drwav__bswap_samples_s16(drwav_int16* pSamples, drwav_uint64 sampleCount) -{ - drwav_uint64 iSample; - for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_s16(pSamples[iSample]); - } -} - - -static DRWAV_INLINE void drwav__bswap_s24(drwav_uint8* p) -{ - drwav_uint8 t; - t = p[0]; - p[0] = p[2]; - p[2] = t; -} - -static DRWAV_INLINE void drwav__bswap_samples_s24(drwav_uint8* pSamples, drwav_uint64 sampleCount) -{ - drwav_uint64 iSample; - for (iSample = 0; iSample < sampleCount; iSample += 1) { - drwav_uint8* pSample = pSamples + (iSample*3); - drwav__bswap_s24(pSample); - } -} - - -static DRWAV_INLINE drwav_int32 drwav__bswap_s32(drwav_int32 n) -{ - return (drwav_int32)drwav__bswap32((drwav_uint32)n); -} - -static DRWAV_INLINE void drwav__bswap_samples_s32(drwav_int32* pSamples, drwav_uint64 sampleCount) -{ - drwav_uint64 iSample; - for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_s32(pSamples[iSample]); - } -} - - -static DRWAV_INLINE float drwav__bswap_f32(float n) -{ - union { - drwav_uint32 i; - float f; - } x; - x.f = n; - x.i = drwav__bswap32(x.i); - - return x.f; -} - -static DRWAV_INLINE void drwav__bswap_samples_f32(float* pSamples, drwav_uint64 sampleCount) -{ - drwav_uint64 iSample; - for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_f32(pSamples[iSample]); - } -} - - -static DRWAV_INLINE double drwav__bswap_f64(double n) -{ - union { - drwav_uint64 i; - double f; - } x; - x.f = n; - x.i = drwav__bswap64(x.i); - - return x.f; -} - -static DRWAV_INLINE void drwav__bswap_samples_f64(double* pSamples, drwav_uint64 sampleCount) -{ - drwav_uint64 iSample; - for (iSample = 0; iSample < sampleCount; iSample += 1) { - pSamples[iSample] = drwav__bswap_f64(pSamples[iSample]); - } -} - - -static DRWAV_INLINE void drwav__bswap_samples_pcm(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample) -{ - /* Assumes integer PCM. Floating point PCM is done in drwav__bswap_samples_ieee(). */ - switch (bytesPerSample) - { - case 2: /* s16, s12 (loosely packed) */ - { - drwav__bswap_samples_s16((drwav_int16*)pSamples, sampleCount); - } break; - case 3: /* s24 */ - { - drwav__bswap_samples_s24((drwav_uint8*)pSamples, sampleCount); - } break; - case 4: /* s32 */ - { - drwav__bswap_samples_s32((drwav_int32*)pSamples, sampleCount); - } break; - default: - { - /* Unsupported format. */ - DRWAV_ASSERT(DRWAV_FALSE); - } break; - } -} - -static DRWAV_INLINE void drwav__bswap_samples_ieee(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample) -{ - switch (bytesPerSample) - { - #if 0 /* Contributions welcome for f16 support. */ - case 2: /* f16 */ - { - drwav__bswap_samples_f16((drwav_float16*)pSamples, sampleCount); - } break; - #endif - case 4: /* f32 */ - { - drwav__bswap_samples_f32((float*)pSamples, sampleCount); - } break; - case 8: /* f64 */ - { - drwav__bswap_samples_f64((double*)pSamples, sampleCount); - } break; - default: - { - /* Unsupported format. */ - DRWAV_ASSERT(DRWAV_FALSE); - } break; - } -} - -static DRWAV_INLINE void drwav__bswap_samples(void* pSamples, drwav_uint64 sampleCount, drwav_uint32 bytesPerSample, drwav_uint16 format) -{ - switch (format) - { - case DR_WAVE_FORMAT_PCM: - { - drwav__bswap_samples_pcm(pSamples, sampleCount, bytesPerSample); - } break; - - case DR_WAVE_FORMAT_IEEE_FLOAT: - { - drwav__bswap_samples_ieee(pSamples, sampleCount, bytesPerSample); - } break; - - case DR_WAVE_FORMAT_ALAW: - case DR_WAVE_FORMAT_MULAW: - { - drwav__bswap_samples_s16((drwav_int16*)pSamples, sampleCount); - } break; - - case DR_WAVE_FORMAT_ADPCM: - case DR_WAVE_FORMAT_DVI_ADPCM: - default: - { - /* Unsupported format. */ - DRWAV_ASSERT(DRWAV_FALSE); - } break; - } -} - - -static void* drwav__malloc_default(size_t sz, void* pUserData) -{ - (void)pUserData; - return DRWAV_MALLOC(sz); -} - -static void* drwav__realloc_default(void* p, size_t sz, void* pUserData) -{ - (void)pUserData; - return DRWAV_REALLOC(p, sz); -} - -static void drwav__free_default(void* p, void* pUserData) -{ - (void)pUserData; - DRWAV_FREE(p); -} - - -static void* drwav__malloc_from_callbacks(size_t sz, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pAllocationCallbacks == NULL) { - return NULL; - } - - if (pAllocationCallbacks->onMalloc != NULL) { - return pAllocationCallbacks->onMalloc(sz, pAllocationCallbacks->pUserData); - } - - /* Try using realloc(). */ - if (pAllocationCallbacks->onRealloc != NULL) { - return pAllocationCallbacks->onRealloc(NULL, sz, pAllocationCallbacks->pUserData); - } - - return NULL; -} - -static void* drwav__realloc_from_callbacks(void* p, size_t szNew, size_t szOld, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pAllocationCallbacks == NULL) { - return NULL; - } - - if (pAllocationCallbacks->onRealloc != NULL) { - return pAllocationCallbacks->onRealloc(p, szNew, pAllocationCallbacks->pUserData); - } - - /* Try emulating realloc() in terms of malloc()/free(). */ - if (pAllocationCallbacks->onMalloc != NULL && pAllocationCallbacks->onFree != NULL) { - void* p2; - - p2 = pAllocationCallbacks->onMalloc(szNew, pAllocationCallbacks->pUserData); - if (p2 == NULL) { - return NULL; - } - - if (p != NULL) { - DRWAV_COPY_MEMORY(p2, p, szOld); - pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); - } - - return p2; - } - - return NULL; -} - -static void drwav__free_from_callbacks(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (p == NULL || pAllocationCallbacks == NULL) { - return; - } - - if (pAllocationCallbacks->onFree != NULL) { - pAllocationCallbacks->onFree(p, pAllocationCallbacks->pUserData); - } -} - - -static drwav_allocation_callbacks drwav_copy_allocation_callbacks_or_defaults(const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pAllocationCallbacks != NULL) { - /* Copy. */ - return *pAllocationCallbacks; - } else { - /* Defaults. */ - drwav_allocation_callbacks allocationCallbacks; - allocationCallbacks.pUserData = NULL; - allocationCallbacks.onMalloc = drwav__malloc_default; - allocationCallbacks.onRealloc = drwav__realloc_default; - allocationCallbacks.onFree = drwav__free_default; - return allocationCallbacks; - } -} - - -static DRWAV_INLINE drwav_bool32 drwav__is_compressed_format_tag(drwav_uint16 formatTag) -{ - return - formatTag == DR_WAVE_FORMAT_ADPCM || - formatTag == DR_WAVE_FORMAT_DVI_ADPCM; -} - -static unsigned int drwav__chunk_padding_size_riff(drwav_uint64 chunkSize) -{ - return (unsigned int)(chunkSize % 2); -} - -static unsigned int drwav__chunk_padding_size_w64(drwav_uint64 chunkSize) -{ - return (unsigned int)(chunkSize % 8); -} - -static drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); -static drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 samplesToRead, drwav_int16* pBufferOut); -static drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount); - -static drwav_result drwav__read_chunk_header(drwav_read_proc onRead, void* pUserData, drwav_container container, drwav_uint64* pRunningBytesReadOut, drwav_chunk_header* pHeaderOut) -{ - if (container == drwav_container_riff) { - unsigned char sizeInBytes[4]; - - if (onRead(pUserData, pHeaderOut->id.fourcc, 4) != 4) { - return DRWAV_AT_END; - } - - if (onRead(pUserData, sizeInBytes, 4) != 4) { - return DRWAV_INVALID_FILE; - } - - pHeaderOut->sizeInBytes = drwav__bytes_to_u32(sizeInBytes); - pHeaderOut->paddingSize = drwav__chunk_padding_size_riff(pHeaderOut->sizeInBytes); - *pRunningBytesReadOut += 8; - } else { - unsigned char sizeInBytes[8]; - - if (onRead(pUserData, pHeaderOut->id.guid, 16) != 16) { - return DRWAV_AT_END; - } - - if (onRead(pUserData, sizeInBytes, 8) != 8) { - return DRWAV_INVALID_FILE; - } - - pHeaderOut->sizeInBytes = drwav__bytes_to_u64(sizeInBytes) - 24; /* <-- Subtract 24 because w64 includes the size of the header. */ - pHeaderOut->paddingSize = drwav__chunk_padding_size_w64(pHeaderOut->sizeInBytes); - *pRunningBytesReadOut += 24; - } - - return DRWAV_SUCCESS; -} - -static drwav_bool32 drwav__seek_forward(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) -{ - drwav_uint64 bytesRemainingToSeek = offset; - while (bytesRemainingToSeek > 0) { - if (bytesRemainingToSeek > 0x7FFFFFFF) { - if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - bytesRemainingToSeek -= 0x7FFFFFFF; - } else { - if (!onSeek(pUserData, (int)bytesRemainingToSeek, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - bytesRemainingToSeek = 0; - } - } - - return DRWAV_TRUE; -} - -static drwav_bool32 drwav__seek_from_start(drwav_seek_proc onSeek, drwav_uint64 offset, void* pUserData) -{ - if (offset <= 0x7FFFFFFF) { - return onSeek(pUserData, (int)offset, drwav_seek_origin_start); - } - - /* Larger than 32-bit seek. */ - if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_start)) { - return DRWAV_FALSE; - } - offset -= 0x7FFFFFFF; - - for (;;) { - if (offset <= 0x7FFFFFFF) { - return onSeek(pUserData, (int)offset, drwav_seek_origin_current); - } - - if (!onSeek(pUserData, 0x7FFFFFFF, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - offset -= 0x7FFFFFFF; - } - - /* Should never get here. */ - /*return DRWAV_TRUE; */ -} - - -static drwav_bool32 drwav__read_fmt(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, drwav_container container, drwav_uint64* pRunningBytesReadOut, drwav_fmt* fmtOut) -{ - drwav_chunk_header header; - unsigned char fmt[16]; - - if (drwav__read_chunk_header(onRead, pUserData, container, pRunningBytesReadOut, &header) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - - - /* Skip non-fmt chunks. */ - while ((container == drwav_container_riff && !drwav__fourcc_equal(header.id.fourcc, "fmt ")) || (container == drwav_container_w64 && !drwav__guid_equal(header.id.guid, drwavGUID_W64_FMT))) { - if (!drwav__seek_forward(onSeek, header.sizeInBytes + header.paddingSize, pUserData)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += header.sizeInBytes + header.paddingSize; - - /* Try the next header. */ - if (drwav__read_chunk_header(onRead, pUserData, container, pRunningBytesReadOut, &header) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - } - - - /* Validation. */ - if (container == drwav_container_riff) { - if (!drwav__fourcc_equal(header.id.fourcc, "fmt ")) { - return DRWAV_FALSE; - } - } else { - if (!drwav__guid_equal(header.id.guid, drwavGUID_W64_FMT)) { - return DRWAV_FALSE; - } - } - - - if (onRead(pUserData, fmt, sizeof(fmt)) != sizeof(fmt)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += sizeof(fmt); - - fmtOut->formatTag = drwav__bytes_to_u16(fmt + 0); - fmtOut->channels = drwav__bytes_to_u16(fmt + 2); - fmtOut->sampleRate = drwav__bytes_to_u32(fmt + 4); - fmtOut->avgBytesPerSec = drwav__bytes_to_u32(fmt + 8); - fmtOut->blockAlign = drwav__bytes_to_u16(fmt + 12); - fmtOut->bitsPerSample = drwav__bytes_to_u16(fmt + 14); - - fmtOut->extendedSize = 0; - fmtOut->validBitsPerSample = 0; - fmtOut->channelMask = 0; - memset(fmtOut->subFormat, 0, sizeof(fmtOut->subFormat)); - - if (header.sizeInBytes > 16) { - unsigned char fmt_cbSize[2]; - int bytesReadSoFar = 0; - - if (onRead(pUserData, fmt_cbSize, sizeof(fmt_cbSize)) != sizeof(fmt_cbSize)) { - return DRWAV_FALSE; /* Expecting more data. */ - } - *pRunningBytesReadOut += sizeof(fmt_cbSize); - - bytesReadSoFar = 18; - - fmtOut->extendedSize = drwav__bytes_to_u16(fmt_cbSize); - if (fmtOut->extendedSize > 0) { - /* Simple validation. */ - if (fmtOut->formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { - if (fmtOut->extendedSize != 22) { - return DRWAV_FALSE; - } - } - - if (fmtOut->formatTag == DR_WAVE_FORMAT_EXTENSIBLE) { - unsigned char fmtext[22]; - if (onRead(pUserData, fmtext, fmtOut->extendedSize) != fmtOut->extendedSize) { - return DRWAV_FALSE; /* Expecting more data. */ - } - - fmtOut->validBitsPerSample = drwav__bytes_to_u16(fmtext + 0); - fmtOut->channelMask = drwav__bytes_to_u32(fmtext + 2); - drwav__bytes_to_guid(fmtext + 6, fmtOut->subFormat); - } else { - if (!onSeek(pUserData, fmtOut->extendedSize, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - } - *pRunningBytesReadOut += fmtOut->extendedSize; - - bytesReadSoFar += fmtOut->extendedSize; - } - - /* Seek past any leftover bytes. For w64 the leftover will be defined based on the chunk size. */ - if (!onSeek(pUserData, (int)(header.sizeInBytes - bytesReadSoFar), drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += (header.sizeInBytes - bytesReadSoFar); - } - - if (header.paddingSize > 0) { - if (!onSeek(pUserData, header.paddingSize, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - *pRunningBytesReadOut += header.paddingSize; - } - - return DRWAV_TRUE; -} - - -static size_t drwav__on_read(drwav_read_proc onRead, void* pUserData, void* pBufferOut, size_t bytesToRead, drwav_uint64* pCursor) -{ - size_t bytesRead; - - DRWAV_ASSERT(onRead != NULL); - DRWAV_ASSERT(pCursor != NULL); - - bytesRead = onRead(pUserData, pBufferOut, bytesToRead); - *pCursor += bytesRead; - return bytesRead; -} - -#if 0 -static drwav_bool32 drwav__on_seek(drwav_seek_proc onSeek, void* pUserData, int offset, drwav_seek_origin origin, drwav_uint64* pCursor) -{ - DRWAV_ASSERT(onSeek != NULL); - DRWAV_ASSERT(pCursor != NULL); - - if (!onSeek(pUserData, offset, origin)) { - return DRWAV_FALSE; - } - - if (origin == drwav_seek_origin_start) { - *pCursor = offset; - } else { - *pCursor += offset; - } - - return DRWAV_TRUE; -} -#endif - - - -static drwav_uint32 drwav_get_bytes_per_pcm_frame(drwav* pWav) -{ - /* - The bytes per frame is a bit ambiguous. It can be either be based on the bits per sample, or the block align. The way I'm doing it here - is that if the bits per sample is a multiple of 8, use floor(bitsPerSample*channels/8), otherwise fall back to the block align. - */ - if ((pWav->bitsPerSample & 0x7) == 0) { - /* Bits per sample is a multiple of 8. */ - return (pWav->bitsPerSample * pWav->fmt.channels) >> 3; - } else { - return pWav->fmt.blockAlign; - } -} - -DRWAV_API drwav_uint16 drwav_fmt_get_format(const drwav_fmt* pFMT) -{ - if (pFMT == NULL) { - return 0; - } - - if (pFMT->formatTag != DR_WAVE_FORMAT_EXTENSIBLE) { - return pFMT->formatTag; - } else { - return drwav__bytes_to_u16(pFMT->subFormat); /* Only the first two bytes are required. */ - } -} - -static drwav_bool32 drwav_preinit(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pReadSeekUserData, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pWav == NULL || onRead == NULL || onSeek == NULL) { - return DRWAV_FALSE; - } - - DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); - pWav->onRead = onRead; - pWav->onSeek = onSeek; - pWav->pUserData = pReadSeekUserData; - pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); - - if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { - return DRWAV_FALSE; /* Invalid allocation callbacks. */ - } - - return DRWAV_TRUE; -} - -static drwav_bool32 drwav_init__internal(drwav* pWav, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags) -{ - /* This function assumes drwav_preinit() has been called beforehand. */ - - drwav_uint64 cursor; /* <-- Keeps track of the byte position so we can seek to specific locations. */ - drwav_bool32 sequential; - unsigned char riff[4]; - drwav_fmt fmt; - unsigned short translatedFormatTag; - drwav_uint64 sampleCountFromFactChunk; - drwav_bool32 foundDataChunk; - drwav_uint64 dataChunkSize; - drwav_uint64 chunkSize; - - cursor = 0; - sequential = (flags & DRWAV_SEQUENTIAL) != 0; - - /* The first 4 bytes should be the RIFF identifier. */ - if (drwav__on_read(pWav->onRead, pWav->pUserData, riff, sizeof(riff), &cursor) != sizeof(riff)) { - return DRWAV_FALSE; - } - - /* - The first 4 bytes can be used to identify the container. For RIFF files it will start with "RIFF" and for - w64 it will start with "riff". - */ - if (drwav__fourcc_equal(riff, "RIFF")) { - pWav->container = drwav_container_riff; - } else if (drwav__fourcc_equal(riff, "riff")) { - int i; - drwav_uint8 riff2[12]; - - pWav->container = drwav_container_w64; - - /* Check the rest of the GUID for validity. */ - if (drwav__on_read(pWav->onRead, pWav->pUserData, riff2, sizeof(riff2), &cursor) != sizeof(riff2)) { - return DRWAV_FALSE; - } - - for (i = 0; i < 12; ++i) { - if (riff2[i] != drwavGUID_W64_RIFF[i+4]) { - return DRWAV_FALSE; - } - } - } else { - return DRWAV_FALSE; /* Unknown or unsupported container. */ - } - - - if (pWav->container == drwav_container_riff) { - unsigned char chunkSizeBytes[4]; - unsigned char wave[4]; - - /* RIFF/WAVE */ - if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { - return DRWAV_FALSE; - } - - if (drwav__bytes_to_u32(chunkSizeBytes) < 36) { - return DRWAV_FALSE; /* Chunk size should always be at least 36 bytes. */ - } - - if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { - return DRWAV_FALSE; - } - - if (!drwav__fourcc_equal(wave, "WAVE")) { - return DRWAV_FALSE; /* Expecting "WAVE". */ - } - } else { - unsigned char chunkSizeBytes[8]; - drwav_uint8 wave[16]; - - /* W64 */ - if (drwav__on_read(pWav->onRead, pWav->pUserData, chunkSizeBytes, sizeof(chunkSizeBytes), &cursor) != sizeof(chunkSizeBytes)) { - return DRWAV_FALSE; - } - - if (drwav__bytes_to_u64(chunkSizeBytes) < 80) { - return DRWAV_FALSE; - } - - if (drwav__on_read(pWav->onRead, pWav->pUserData, wave, sizeof(wave), &cursor) != sizeof(wave)) { - return DRWAV_FALSE; - } - - if (!drwav__guid_equal(wave, drwavGUID_W64_WAVE)) { - return DRWAV_FALSE; - } - } - - - /* The next bytes should be the "fmt " chunk. */ - if (!drwav__read_fmt(pWav->onRead, pWav->onSeek, pWav->pUserData, pWav->container, &cursor, &fmt)) { - return DRWAV_FALSE; /* Failed to read the "fmt " chunk. */ - } - - /* Basic validation. */ - if ((fmt.sampleRate == 0 || fmt.sampleRate > DRWAV_MAX_SAMPLE_RATE) || - (fmt.channels == 0 || fmt.channels > DRWAV_MAX_CHANNELS) || - (fmt.bitsPerSample == 0 || fmt.bitsPerSample > DRWAV_MAX_BITS_PER_SAMPLE) || - fmt.blockAlign == 0) { - return DRWAV_FALSE; /* Probably an invalid WAV file. */ - } - - - /* Translate the internal format. */ - translatedFormatTag = fmt.formatTag; - if (translatedFormatTag == DR_WAVE_FORMAT_EXTENSIBLE) { - translatedFormatTag = drwav__bytes_to_u16(fmt.subFormat + 0); - } - - - - sampleCountFromFactChunk = 0; - - /* - We need to enumerate over each chunk for two reasons: - 1) The "data" chunk may not be the next one - 2) We may want to report each chunk back to the client - - In order to correctly report each chunk back to the client we will need to keep looping until the end of the file. - */ - foundDataChunk = DRWAV_FALSE; - dataChunkSize = 0; - - /* The next chunk we care about is the "data" chunk. This is not necessarily the next chunk so we'll need to loop. */ - for (;;) - { - drwav_chunk_header header; - drwav_result result = drwav__read_chunk_header(pWav->onRead, pWav->pUserData, pWav->container, &cursor, &header); - if (result != DRWAV_SUCCESS) { - if (!foundDataChunk) { - return DRWAV_FALSE; - } else { - break; /* Probably at the end of the file. Get out of the loop. */ - } - } - - /* Tell the client about this chunk. */ - if (!sequential && onChunk != NULL) { - drwav_uint64 callbackBytesRead = onChunk(pChunkUserData, pWav->onRead, pWav->onSeek, pWav->pUserData, &header, pWav->container, &fmt); - - /* - dr_wav may need to read the contents of the chunk, so we now need to seek back to the position before - we called the callback. - */ - if (callbackBytesRead > 0) { - if (!drwav__seek_from_start(pWav->onSeek, cursor, pWav->pUserData)) { - return DRWAV_FALSE; - } - } - } - - - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; - } - - chunkSize = header.sizeInBytes; - if (pWav->container == drwav_container_riff) { - if (drwav__fourcc_equal(header.id.fourcc, "data")) { - foundDataChunk = DRWAV_TRUE; - dataChunkSize = chunkSize; - } - } else { - if (drwav__guid_equal(header.id.guid, drwavGUID_W64_DATA)) { - foundDataChunk = DRWAV_TRUE; - dataChunkSize = chunkSize; - } - } - - /* - If at this point we have found the data chunk and we're running in sequential mode, we need to break out of this loop. The reason for - this is that we would otherwise require a backwards seek which sequential mode forbids. - */ - if (foundDataChunk && sequential) { - break; - } - - /* Optional. Get the total sample count from the FACT chunk. This is useful for compressed formats. */ - if (pWav->container == drwav_container_riff) { - if (drwav__fourcc_equal(header.id.fourcc, "fact")) { - drwav_uint32 sampleCount; - if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCount, 4, &cursor) != 4) { - return DRWAV_FALSE; - } - chunkSize -= 4; - - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; - } - - /* - The sample count in the "fact" chunk is either unreliable, or I'm not understanding it properly. For now I am only enabling this - for Microsoft ADPCM formats. - */ - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - sampleCountFromFactChunk = sampleCount; - } else { - sampleCountFromFactChunk = 0; - } - } - } else { - if (drwav__guid_equal(header.id.guid, drwavGUID_W64_FACT)) { - if (drwav__on_read(pWav->onRead, pWav->pUserData, &sampleCountFromFactChunk, 8, &cursor) != 8) { - return DRWAV_FALSE; - } - chunkSize -= 8; - - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; - } - } - } - - /* "smpl" chunk. */ - if (pWav->container == drwav_container_riff) { - if (drwav__fourcc_equal(header.id.fourcc, "smpl")) { - unsigned char smplHeaderData[36]; /* 36 = size of the smpl header section, not including the loop data. */ - if (chunkSize >= sizeof(smplHeaderData)) { - drwav_uint64 bytesJustRead = drwav__on_read(pWav->onRead, pWav->pUserData, smplHeaderData, sizeof(smplHeaderData), &cursor); - chunkSize -= bytesJustRead; - - if (bytesJustRead == sizeof(smplHeaderData)) { - drwav_uint32 iLoop; - - pWav->smpl.manufacturer = drwav__bytes_to_u32(smplHeaderData+0); - pWav->smpl.product = drwav__bytes_to_u32(smplHeaderData+4); - pWav->smpl.samplePeriod = drwav__bytes_to_u32(smplHeaderData+8); - pWav->smpl.midiUnityNotes = drwav__bytes_to_u32(smplHeaderData+12); - pWav->smpl.midiPitchFraction = drwav__bytes_to_u32(smplHeaderData+16); - pWav->smpl.smpteFormat = drwav__bytes_to_u32(smplHeaderData+20); - pWav->smpl.smpteOffset = drwav__bytes_to_u32(smplHeaderData+24); - pWav->smpl.numSampleLoops = drwav__bytes_to_u32(smplHeaderData+28); - pWav->smpl.samplerData = drwav__bytes_to_u32(smplHeaderData+32); - - for (iLoop = 0; iLoop < pWav->smpl.numSampleLoops && iLoop < drwav_countof(pWav->smpl.loops); ++iLoop) { - unsigned char smplLoopData[24]; /* 24 = size of a loop section in the smpl chunk. */ - bytesJustRead = drwav__on_read(pWav->onRead, pWav->pUserData, smplLoopData, sizeof(smplLoopData), &cursor); - chunkSize -= bytesJustRead; - - if (bytesJustRead == sizeof(smplLoopData)) { - pWav->smpl.loops[iLoop].cuePointId = drwav__bytes_to_u32(smplLoopData+0); - pWav->smpl.loops[iLoop].type = drwav__bytes_to_u32(smplLoopData+4); - pWav->smpl.loops[iLoop].start = drwav__bytes_to_u32(smplLoopData+8); - pWav->smpl.loops[iLoop].end = drwav__bytes_to_u32(smplLoopData+12); - pWav->smpl.loops[iLoop].fraction = drwav__bytes_to_u32(smplLoopData+16); - pWav->smpl.loops[iLoop].playCount = drwav__bytes_to_u32(smplLoopData+20); - } else { - break; /* Break from the smpl loop for loop. */ - } - } - } - } else { - /* Looks like invalid data. Ignore the chunk. */ - } - } - } else { - if (drwav__guid_equal(header.id.guid, drwavGUID_W64_SMPL)) { - /* - This path will be hit when a W64 WAV file contains a smpl chunk. I don't have a sample file to test this path, so a contribution - is welcome to add support for this. - */ - } - } - - /* Make sure we seek past the padding. */ - chunkSize += header.paddingSize; - if (!drwav__seek_forward(pWav->onSeek, chunkSize, pWav->pUserData)) { - break; - } - cursor += chunkSize; - - if (!foundDataChunk) { - pWav->dataChunkDataPos = cursor; - } - } - - /* If we haven't found a data chunk, return an error. */ - if (!foundDataChunk) { - return DRWAV_FALSE; - } - - /* We may have moved passed the data chunk. If so we need to move back. If running in sequential mode we can assume we are already sitting on the data chunk. */ - if (!sequential) { - if (!drwav__seek_from_start(pWav->onSeek, pWav->dataChunkDataPos, pWav->pUserData)) { - return DRWAV_FALSE; - } - cursor = pWav->dataChunkDataPos; - } - - - /* At this point we should be sitting on the first byte of the raw audio data. */ - - pWav->fmt = fmt; - pWav->sampleRate = fmt.sampleRate; - pWav->channels = fmt.channels; - pWav->bitsPerSample = fmt.bitsPerSample; - pWav->bytesRemaining = dataChunkSize; - pWav->translatedFormatTag = translatedFormatTag; - pWav->dataChunkDataSize = dataChunkSize; - - if (sampleCountFromFactChunk != 0) { - pWav->totalPCMFrameCount = sampleCountFromFactChunk; - } else { - pWav->totalPCMFrameCount = dataChunkSize / drwav_get_bytes_per_pcm_frame(pWav); - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - drwav_uint64 totalBlockHeaderSizeInBytes; - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; - - /* Make sure any trailing partial block is accounted for. */ - if ((blockCount * fmt.blockAlign) < dataChunkSize) { - blockCount += 1; - } - - /* We decode two samples per byte. There will be blockCount headers in the data chunk. This is enough to know how to calculate the total PCM frame count. */ - totalBlockHeaderSizeInBytes = blockCount * (6*fmt.channels); - pWav->totalPCMFrameCount = ((dataChunkSize - totalBlockHeaderSizeInBytes) * 2) / fmt.channels; - } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - drwav_uint64 totalBlockHeaderSizeInBytes; - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; - - /* Make sure any trailing partial block is accounted for. */ - if ((blockCount * fmt.blockAlign) < dataChunkSize) { - blockCount += 1; - } - - /* We decode two samples per byte. There will be blockCount headers in the data chunk. This is enough to know how to calculate the total PCM frame count. */ - totalBlockHeaderSizeInBytes = blockCount * (4*fmt.channels); - pWav->totalPCMFrameCount = ((dataChunkSize - totalBlockHeaderSizeInBytes) * 2) / fmt.channels; - - /* The header includes a decoded sample for each channel which acts as the initial predictor sample. */ - pWav->totalPCMFrameCount += blockCount; - } - } - - /* Some formats only support a certain number of channels. */ - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM || pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - if (pWav->channels > 2) { - return DRWAV_FALSE; - } - } - -#ifdef DR_WAV_LIBSNDFILE_COMPAT - /* - I use libsndfile as a benchmark for testing, however in the version I'm using (from the Windows installer on the libsndfile website), - it appears the total sample count libsndfile uses for MS-ADPCM is incorrect. It would seem they are computing the total sample count - from the number of blocks, however this results in the inclusion of extra silent samples at the end of the last block. The correct - way to know the total sample count is to inspect the "fact" chunk, which should always be present for compressed formats, and should - always include the sample count. This little block of code below is only used to emulate the libsndfile logic so I can properly run my - correctness tests against libsndfile, and is disabled by default. - */ - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; - pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (6*pWav->channels))) * 2)) / fmt.channels; /* x2 because two samples per byte. */ - } - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - drwav_uint64 blockCount = dataChunkSize / fmt.blockAlign; - pWav->totalPCMFrameCount = (((blockCount * (fmt.blockAlign - (4*pWav->channels))) * 2) + (blockCount * pWav->channels)) / fmt.channels; - } -#endif - - return DRWAV_TRUE; -} - -DRWAV_API drwav_bool32 drwav_init(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_ex(pWav, onRead, onSeek, NULL, pUserData, NULL, 0, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_ex(drwav* pWav, drwav_read_proc onRead, drwav_seek_proc onSeek, drwav_chunk_proc onChunk, void* pReadSeekUserData, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (!drwav_preinit(pWav, onRead, onSeek, pReadSeekUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; - } - - return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); -} - - -static drwav_uint32 drwav__riff_chunk_size_riff(drwav_uint64 dataChunkSize) -{ - drwav_uint32 dataSubchunkPaddingSize = drwav__chunk_padding_size_riff(dataChunkSize); - - if (dataChunkSize <= (0xFFFFFFFFUL - 36 - dataSubchunkPaddingSize)) { - return 36 + (drwav_uint32)(dataChunkSize + dataSubchunkPaddingSize); - } else { - return 0xFFFFFFFF; - } -} - -static drwav_uint32 drwav__data_chunk_size_riff(drwav_uint64 dataChunkSize) -{ - if (dataChunkSize <= 0xFFFFFFFFUL) { - return (drwav_uint32)dataChunkSize; - } else { - return 0xFFFFFFFFUL; - } -} - -static drwav_uint64 drwav__riff_chunk_size_w64(drwav_uint64 dataChunkSize) -{ - drwav_uint64 dataSubchunkPaddingSize = drwav__chunk_padding_size_w64(dataChunkSize); - - return 80 + 24 + dataChunkSize + dataSubchunkPaddingSize; /* +24 because W64 includes the size of the GUID and size fields. */ -} - -static drwav_uint64 drwav__data_chunk_size_w64(drwav_uint64 dataChunkSize) -{ - return 24 + dataChunkSize; /* +24 because W64 includes the size of the GUID and size fields. */ -} - - -static drwav_bool32 drwav_preinit_write(drwav* pWav, const drwav_data_format* pFormat, drwav_bool32 isSequential, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pWav == NULL || onWrite == NULL) { - return DRWAV_FALSE; - } - - if (!isSequential && onSeek == NULL) { - return DRWAV_FALSE; /* <-- onSeek is required when in non-sequential mode. */ - } - - /* Not currently supporting compressed formats. Will need to add support for the "fact" chunk before we enable this. */ - if (pFormat->format == DR_WAVE_FORMAT_EXTENSIBLE) { - return DRWAV_FALSE; - } - if (pFormat->format == DR_WAVE_FORMAT_ADPCM || pFormat->format == DR_WAVE_FORMAT_DVI_ADPCM) { - return DRWAV_FALSE; - } - - DRWAV_ZERO_MEMORY(pWav, sizeof(*pWav)); - pWav->onWrite = onWrite; - pWav->onSeek = onSeek; - pWav->pUserData = pUserData; - pWav->allocationCallbacks = drwav_copy_allocation_callbacks_or_defaults(pAllocationCallbacks); - - if (pWav->allocationCallbacks.onFree == NULL || (pWav->allocationCallbacks.onMalloc == NULL && pWav->allocationCallbacks.onRealloc == NULL)) { - return DRWAV_FALSE; /* Invalid allocation callbacks. */ - } - - pWav->fmt.formatTag = (drwav_uint16)pFormat->format; - pWav->fmt.channels = (drwav_uint16)pFormat->channels; - pWav->fmt.sampleRate = pFormat->sampleRate; - pWav->fmt.avgBytesPerSec = (drwav_uint32)((pFormat->bitsPerSample * pFormat->sampleRate * pFormat->channels) / 8); - pWav->fmt.blockAlign = (drwav_uint16)((pFormat->channels * pFormat->bitsPerSample) / 8); - pWav->fmt.bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; - pWav->fmt.extendedSize = 0; - pWav->isSequentialWrite = isSequential; - - return DRWAV_TRUE; -} - -static drwav_bool32 drwav_init_write__internal(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount) -{ - /* The function assumes drwav_preinit_write() was called beforehand. */ - - size_t runningPos = 0; - drwav_uint64 initialDataChunkSize = 0; - drwav_uint64 chunkSizeFMT; - - /* - The initial values for the "RIFF" and "data" chunks depends on whether or not we are initializing in sequential mode or not. In - sequential mode we set this to its final values straight away since they can be calculated from the total sample count. In non- - sequential mode we initialize it all to zero and fill it out in drwav_uninit() using a backwards seek. - */ - if (pWav->isSequentialWrite) { - initialDataChunkSize = (totalSampleCount * pWav->fmt.bitsPerSample) / 8; - - /* - The RIFF container has a limit on the number of samples. drwav is not allowing this. There's no practical limits for Wave64 - so for the sake of simplicity I'm not doing any validation for that. - */ - if (pFormat->container == drwav_container_riff) { - if (initialDataChunkSize > (0xFFFFFFFFUL - 36)) { - return DRWAV_FALSE; /* Not enough room to store every sample. */ - } - } - } - - pWav->dataChunkDataSizeTargetWrite = initialDataChunkSize; - - - /* "RIFF" chunk. */ - if (pFormat->container == drwav_container_riff) { - drwav_uint32 chunkSizeRIFF = 36 + (drwav_uint32)initialDataChunkSize; /* +36 = "RIFF"+[RIFF Chunk Size]+"WAVE" + [sizeof "fmt " chunk] */ - runningPos += pWav->onWrite(pWav->pUserData, "RIFF", 4); - runningPos += pWav->onWrite(pWav->pUserData, &chunkSizeRIFF, 4); - runningPos += pWav->onWrite(pWav->pUserData, "WAVE", 4); - } else { - drwav_uint64 chunkSizeRIFF = 80 + 24 + initialDataChunkSize; /* +24 because W64 includes the size of the GUID and size fields. */ - runningPos += pWav->onWrite(pWav->pUserData, drwavGUID_W64_RIFF, 16); - runningPos += pWav->onWrite(pWav->pUserData, &chunkSizeRIFF, 8); - runningPos += pWav->onWrite(pWav->pUserData, drwavGUID_W64_WAVE, 16); - } - - /* "fmt " chunk. */ - if (pFormat->container == drwav_container_riff) { - chunkSizeFMT = 16; - runningPos += pWav->onWrite(pWav->pUserData, "fmt ", 4); - runningPos += pWav->onWrite(pWav->pUserData, &chunkSizeFMT, 4); - } else { - chunkSizeFMT = 40; - runningPos += pWav->onWrite(pWav->pUserData, drwavGUID_W64_FMT, 16); - runningPos += pWav->onWrite(pWav->pUserData, &chunkSizeFMT, 8); - } - - runningPos += pWav->onWrite(pWav->pUserData, &pWav->fmt.formatTag, 2); - runningPos += pWav->onWrite(pWav->pUserData, &pWav->fmt.channels, 2); - runningPos += pWav->onWrite(pWav->pUserData, &pWav->fmt.sampleRate, 4); - runningPos += pWav->onWrite(pWav->pUserData, &pWav->fmt.avgBytesPerSec, 4); - runningPos += pWav->onWrite(pWav->pUserData, &pWav->fmt.blockAlign, 2); - runningPos += pWav->onWrite(pWav->pUserData, &pWav->fmt.bitsPerSample, 2); - - pWav->dataChunkDataPos = runningPos; - - /* "data" chunk. */ - if (pFormat->container == drwav_container_riff) { - drwav_uint32 chunkSizeDATA = (drwav_uint32)initialDataChunkSize; - runningPos += pWav->onWrite(pWav->pUserData, "data", 4); - runningPos += pWav->onWrite(pWav->pUserData, &chunkSizeDATA, 4); - } else { - drwav_uint64 chunkSizeDATA = 24 + initialDataChunkSize; /* +24 because W64 includes the size of the GUID and size fields. */ - runningPos += pWav->onWrite(pWav->pUserData, drwavGUID_W64_DATA, 16); - runningPos += pWav->onWrite(pWav->pUserData, &chunkSizeDATA, 8); - } - - - /* Simple validation. */ - if (pFormat->container == drwav_container_riff) { - if (runningPos != 20 + chunkSizeFMT + 8) { - return DRWAV_FALSE; - } - } else { - if (runningPos != 40 + chunkSizeFMT + 24) { - return DRWAV_FALSE; - } - } - - - /* Set some properties for the client's convenience. */ - pWav->container = pFormat->container; - pWav->channels = (drwav_uint16)pFormat->channels; - pWav->sampleRate = pFormat->sampleRate; - pWav->bitsPerSample = (drwav_uint16)pFormat->bitsPerSample; - pWav->translatedFormatTag = (drwav_uint16)pFormat->format; - - return DRWAV_TRUE; -} - - -DRWAV_API drwav_bool32 drwav_init_write(drwav* pWav, const drwav_data_format* pFormat, drwav_write_proc onWrite, drwav_seek_proc onSeek, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (!drwav_preinit_write(pWav, pFormat, DRWAV_FALSE, onWrite, onSeek, pUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; - } - - return drwav_init_write__internal(pWav, pFormat, 0); /* DRWAV_FALSE = Not Sequential */ -} - -DRWAV_API drwav_bool32 drwav_init_write_sequential(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (!drwav_preinit_write(pWav, pFormat, DRWAV_TRUE, onWrite, NULL, pUserData, pAllocationCallbacks)) { - return DRWAV_FALSE; - } - - return drwav_init_write__internal(pWav, pFormat, totalSampleCount); /* DRWAV_TRUE = Sequential */ -} - -DRWAV_API drwav_bool32 drwav_init_write_sequential_pcm_frames(drwav* pWav, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, drwav_write_proc onWrite, void* pUserData, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pFormat == NULL) { - return DRWAV_FALSE; - } - - return drwav_init_write_sequential(pWav, pFormat, totalPCMFrameCount*pFormat->channels, onWrite, pUserData, pAllocationCallbacks); -} - -DRWAV_API drwav_uint64 drwav_target_write_size_bytes(const drwav_data_format* pFormat, drwav_uint64 totalSampleCount) -{ - drwav_uint64 targetDataSizeBytes = (drwav_uint64)(totalSampleCount * pFormat->channels * pFormat->bitsPerSample/8.0); - drwav_uint64 riffChunkSizeBytes; - drwav_uint64 fileSizeBytes; - - if (pFormat->container == drwav_container_riff) { - riffChunkSizeBytes = drwav__riff_chunk_size_riff(targetDataSizeBytes); - fileSizeBytes = (8 + riffChunkSizeBytes); /* +8 because WAV doesn't include the size of the ChunkID and ChunkSize fields. */ - } else { - riffChunkSizeBytes = drwav__riff_chunk_size_w64(targetDataSizeBytes); - fileSizeBytes = riffChunkSizeBytes; - } - - return fileSizeBytes; -} - - -#ifndef DR_WAV_NO_STDIO - -/* drwav_result_from_errno() is only used for fopen() and wfopen() so putting it inside DR_WAV_NO_STDIO for now. If something else needs this later we can move it out. */ -#include -static drwav_result drwav_result_from_errno(int e) -{ - switch (e) - { - case 0: return DRWAV_SUCCESS; - #ifdef EPERM - case EPERM: return DRWAV_INVALID_OPERATION; - #endif - #ifdef ENOENT - case ENOENT: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef ESRCH - case ESRCH: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef EINTR - case EINTR: return DRWAV_INTERRUPT; - #endif - #ifdef EIO - case EIO: return DRWAV_IO_ERROR; - #endif - #ifdef ENXIO - case ENXIO: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef E2BIG - case E2BIG: return DRWAV_INVALID_ARGS; - #endif - #ifdef ENOEXEC - case ENOEXEC: return DRWAV_INVALID_FILE; - #endif - #ifdef EBADF - case EBADF: return DRWAV_INVALID_FILE; - #endif - #ifdef ECHILD - case ECHILD: return DRWAV_ERROR; - #endif - #ifdef EAGAIN - case EAGAIN: return DRWAV_UNAVAILABLE; - #endif - #ifdef ENOMEM - case ENOMEM: return DRWAV_OUT_OF_MEMORY; - #endif - #ifdef EACCES - case EACCES: return DRWAV_ACCESS_DENIED; - #endif - #ifdef EFAULT - case EFAULT: return DRWAV_BAD_ADDRESS; - #endif - #ifdef ENOTBLK - case ENOTBLK: return DRWAV_ERROR; - #endif - #ifdef EBUSY - case EBUSY: return DRWAV_BUSY; - #endif - #ifdef EEXIST - case EEXIST: return DRWAV_ALREADY_EXISTS; - #endif - #ifdef EXDEV - case EXDEV: return DRWAV_ERROR; - #endif - #ifdef ENODEV - case ENODEV: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef ENOTDIR - case ENOTDIR: return DRWAV_NOT_DIRECTORY; - #endif - #ifdef EISDIR - case EISDIR: return DRWAV_IS_DIRECTORY; - #endif - #ifdef EINVAL - case EINVAL: return DRWAV_INVALID_ARGS; - #endif - #ifdef ENFILE - case ENFILE: return DRWAV_TOO_MANY_OPEN_FILES; - #endif - #ifdef EMFILE - case EMFILE: return DRWAV_TOO_MANY_OPEN_FILES; - #endif - #ifdef ENOTTY - case ENOTTY: return DRWAV_INVALID_OPERATION; - #endif - #ifdef ETXTBSY - case ETXTBSY: return DRWAV_BUSY; - #endif - #ifdef EFBIG - case EFBIG: return DRWAV_TOO_BIG; - #endif - #ifdef ENOSPC - case ENOSPC: return DRWAV_NO_SPACE; - #endif - #ifdef ESPIPE - case ESPIPE: return DRWAV_BAD_SEEK; - #endif - #ifdef EROFS - case EROFS: return DRWAV_ACCESS_DENIED; - #endif - #ifdef EMLINK - case EMLINK: return DRWAV_TOO_MANY_LINKS; - #endif - #ifdef EPIPE - case EPIPE: return DRWAV_BAD_PIPE; - #endif - #ifdef EDOM - case EDOM: return DRWAV_OUT_OF_RANGE; - #endif - #ifdef ERANGE - case ERANGE: return DRWAV_OUT_OF_RANGE; - #endif - #ifdef EDEADLK - case EDEADLK: return DRWAV_DEADLOCK; - #endif - #ifdef ENAMETOOLONG - case ENAMETOOLONG: return DRWAV_PATH_TOO_LONG; - #endif - #ifdef ENOLCK - case ENOLCK: return DRWAV_ERROR; - #endif - #ifdef ENOSYS - case ENOSYS: return DRWAV_NOT_IMPLEMENTED; - #endif - #ifdef ENOTEMPTY - case ENOTEMPTY: return DRWAV_DIRECTORY_NOT_EMPTY; - #endif - #ifdef ELOOP - case ELOOP: return DRWAV_TOO_MANY_LINKS; - #endif - #ifdef ENOMSG - case ENOMSG: return DRWAV_NO_MESSAGE; - #endif - #ifdef EIDRM - case EIDRM: return DRWAV_ERROR; - #endif - #ifdef ECHRNG - case ECHRNG: return DRWAV_ERROR; - #endif - #ifdef EL2NSYNC - case EL2NSYNC: return DRWAV_ERROR; - #endif - #ifdef EL3HLT - case EL3HLT: return DRWAV_ERROR; - #endif - #ifdef EL3RST - case EL3RST: return DRWAV_ERROR; - #endif - #ifdef ELNRNG - case ELNRNG: return DRWAV_OUT_OF_RANGE; - #endif - #ifdef EUNATCH - case EUNATCH: return DRWAV_ERROR; - #endif - #ifdef ENOCSI - case ENOCSI: return DRWAV_ERROR; - #endif - #ifdef EL2HLT - case EL2HLT: return DRWAV_ERROR; - #endif - #ifdef EBADE - case EBADE: return DRWAV_ERROR; - #endif - #ifdef EBADR - case EBADR: return DRWAV_ERROR; - #endif - #ifdef EXFULL - case EXFULL: return DRWAV_ERROR; - #endif - #ifdef ENOANO - case ENOANO: return DRWAV_ERROR; - #endif - #ifdef EBADRQC - case EBADRQC: return DRWAV_ERROR; - #endif - #ifdef EBADSLT - case EBADSLT: return DRWAV_ERROR; - #endif - #ifdef EBFONT - case EBFONT: return DRWAV_INVALID_FILE; - #endif - #ifdef ENOSTR - case ENOSTR: return DRWAV_ERROR; - #endif - #ifdef ENODATA - case ENODATA: return DRWAV_NO_DATA_AVAILABLE; - #endif - #ifdef ETIME - case ETIME: return DRWAV_TIMEOUT; - #endif - #ifdef ENOSR - case ENOSR: return DRWAV_NO_DATA_AVAILABLE; - #endif - #ifdef ENONET - case ENONET: return DRWAV_NO_NETWORK; - #endif - #ifdef ENOPKG - case ENOPKG: return DRWAV_ERROR; - #endif - #ifdef EREMOTE - case EREMOTE: return DRWAV_ERROR; - #endif - #ifdef ENOLINK - case ENOLINK: return DRWAV_ERROR; - #endif - #ifdef EADV - case EADV: return DRWAV_ERROR; - #endif - #ifdef ESRMNT - case ESRMNT: return DRWAV_ERROR; - #endif - #ifdef ECOMM - case ECOMM: return DRWAV_ERROR; - #endif - #ifdef EPROTO - case EPROTO: return DRWAV_ERROR; - #endif - #ifdef EMULTIHOP - case EMULTIHOP: return DRWAV_ERROR; - #endif - #ifdef EDOTDOT - case EDOTDOT: return DRWAV_ERROR; - #endif - #ifdef EBADMSG - case EBADMSG: return DRWAV_BAD_MESSAGE; - #endif - #ifdef EOVERFLOW - case EOVERFLOW: return DRWAV_TOO_BIG; - #endif - #ifdef ENOTUNIQ - case ENOTUNIQ: return DRWAV_NOT_UNIQUE; - #endif - #ifdef EBADFD - case EBADFD: return DRWAV_ERROR; - #endif - #ifdef EREMCHG - case EREMCHG: return DRWAV_ERROR; - #endif - #ifdef ELIBACC - case ELIBACC: return DRWAV_ACCESS_DENIED; - #endif - #ifdef ELIBBAD - case ELIBBAD: return DRWAV_INVALID_FILE; - #endif - #ifdef ELIBSCN - case ELIBSCN: return DRWAV_INVALID_FILE; - #endif - #ifdef ELIBMAX - case ELIBMAX: return DRWAV_ERROR; - #endif - #ifdef ELIBEXEC - case ELIBEXEC: return DRWAV_ERROR; - #endif - #ifdef EILSEQ - case EILSEQ: return DRWAV_INVALID_DATA; - #endif - #ifdef ERESTART - case ERESTART: return DRWAV_ERROR; - #endif - #ifdef ESTRPIPE - case ESTRPIPE: return DRWAV_ERROR; - #endif - #ifdef EUSERS - case EUSERS: return DRWAV_ERROR; - #endif - #ifdef ENOTSOCK - case ENOTSOCK: return DRWAV_NOT_SOCKET; - #endif - #ifdef EDESTADDRREQ - case EDESTADDRREQ: return DRWAV_NO_ADDRESS; - #endif - #ifdef EMSGSIZE - case EMSGSIZE: return DRWAV_TOO_BIG; - #endif - #ifdef EPROTOTYPE - case EPROTOTYPE: return DRWAV_BAD_PROTOCOL; - #endif - #ifdef ENOPROTOOPT - case ENOPROTOOPT: return DRWAV_PROTOCOL_UNAVAILABLE; - #endif - #ifdef EPROTONOSUPPORT - case EPROTONOSUPPORT: return DRWAV_PROTOCOL_NOT_SUPPORTED; - #endif - #ifdef ESOCKTNOSUPPORT - case ESOCKTNOSUPPORT: return DRWAV_SOCKET_NOT_SUPPORTED; - #endif - #ifdef EOPNOTSUPP - case EOPNOTSUPP: return DRWAV_INVALID_OPERATION; - #endif - #ifdef EPFNOSUPPORT - case EPFNOSUPPORT: return DRWAV_PROTOCOL_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EAFNOSUPPORT - case EAFNOSUPPORT: return DRWAV_ADDRESS_FAMILY_NOT_SUPPORTED; - #endif - #ifdef EADDRINUSE - case EADDRINUSE: return DRWAV_ALREADY_IN_USE; - #endif - #ifdef EADDRNOTAVAIL - case EADDRNOTAVAIL: return DRWAV_ERROR; - #endif - #ifdef ENETDOWN - case ENETDOWN: return DRWAV_NO_NETWORK; - #endif - #ifdef ENETUNREACH - case ENETUNREACH: return DRWAV_NO_NETWORK; - #endif - #ifdef ENETRESET - case ENETRESET: return DRWAV_NO_NETWORK; - #endif - #ifdef ECONNABORTED - case ECONNABORTED: return DRWAV_NO_NETWORK; - #endif - #ifdef ECONNRESET - case ECONNRESET: return DRWAV_CONNECTION_RESET; - #endif - #ifdef ENOBUFS - case ENOBUFS: return DRWAV_NO_SPACE; - #endif - #ifdef EISCONN - case EISCONN: return DRWAV_ALREADY_CONNECTED; - #endif - #ifdef ENOTCONN - case ENOTCONN: return DRWAV_NOT_CONNECTED; - #endif - #ifdef ESHUTDOWN - case ESHUTDOWN: return DRWAV_ERROR; - #endif - #ifdef ETOOMANYREFS - case ETOOMANYREFS: return DRWAV_ERROR; - #endif - #ifdef ETIMEDOUT - case ETIMEDOUT: return DRWAV_TIMEOUT; - #endif - #ifdef ECONNREFUSED - case ECONNREFUSED: return DRWAV_CONNECTION_REFUSED; - #endif - #ifdef EHOSTDOWN - case EHOSTDOWN: return DRWAV_NO_HOST; - #endif - #ifdef EHOSTUNREACH - case EHOSTUNREACH: return DRWAV_NO_HOST; - #endif - #ifdef EALREADY - case EALREADY: return DRWAV_IN_PROGRESS; - #endif - #ifdef EINPROGRESS - case EINPROGRESS: return DRWAV_IN_PROGRESS; - #endif - #ifdef ESTALE - case ESTALE: return DRWAV_INVALID_FILE; - #endif - #ifdef EUCLEAN - case EUCLEAN: return DRWAV_ERROR; - #endif - #ifdef ENOTNAM - case ENOTNAM: return DRWAV_ERROR; - #endif - #ifdef ENAVAIL - case ENAVAIL: return DRWAV_ERROR; - #endif - #ifdef EISNAM - case EISNAM: return DRWAV_ERROR; - #endif - #ifdef EREMOTEIO - case EREMOTEIO: return DRWAV_IO_ERROR; - #endif - #ifdef EDQUOT - case EDQUOT: return DRWAV_NO_SPACE; - #endif - #ifdef ENOMEDIUM - case ENOMEDIUM: return DRWAV_DOES_NOT_EXIST; - #endif - #ifdef EMEDIUMTYPE - case EMEDIUMTYPE: return DRWAV_ERROR; - #endif - #ifdef ECANCELED - case ECANCELED: return DRWAV_CANCELLED; - #endif - #ifdef ENOKEY - case ENOKEY: return DRWAV_ERROR; - #endif - #ifdef EKEYEXPIRED - case EKEYEXPIRED: return DRWAV_ERROR; - #endif - #ifdef EKEYREVOKED - case EKEYREVOKED: return DRWAV_ERROR; - #endif - #ifdef EKEYREJECTED - case EKEYREJECTED: return DRWAV_ERROR; - #endif - #ifdef EOWNERDEAD - case EOWNERDEAD: return DRWAV_ERROR; - #endif - #ifdef ENOTRECOVERABLE - case ENOTRECOVERABLE: return DRWAV_ERROR; - #endif - #ifdef ERFKILL - case ERFKILL: return DRWAV_ERROR; - #endif - #ifdef EHWPOISON - case EHWPOISON: return DRWAV_ERROR; - #endif - default: return DRWAV_ERROR; - } -} - -static drwav_result drwav_fopen(FILE** ppFile, const char* pFilePath, const char* pOpenMode) -{ -#if _MSC_VER && _MSC_VER >= 1400 - errno_t err; -#endif - - if (ppFile != NULL) { - *ppFile = NULL; /* Safety. */ - } - - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRWAV_INVALID_ARGS; - } - -#if _MSC_VER && _MSC_VER >= 1400 - err = fopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drwav_result_from_errno(err); - } -#else -#if defined(_WIN32) || defined(__APPLE__) - *ppFile = fopen(pFilePath, pOpenMode); -#else - #if defined(_FILE_OFFSET_BITS) && _FILE_OFFSET_BITS == 64 && defined(_LARGEFILE64_SOURCE) - *ppFile = fopen64(pFilePath, pOpenMode); - #else - *ppFile = fopen(pFilePath, pOpenMode); - #endif -#endif - if (*ppFile == NULL) { - drwav_result result = drwav_result_from_errno(errno); - if (result == DRWAV_SUCCESS) { - result = DRWAV_ERROR; /* Just a safety check to make sure we never ever return success when pFile == NULL. */ - } - - return result; - } -#endif - - return DRWAV_SUCCESS; -} - -/* -_wfopen() isn't always available in all compilation environments. - - * Windows only. - * MSVC seems to support it universally as far back as VC6 from what I can tell (haven't checked further back). - * MinGW-64 (both 32- and 64-bit) seems to support it. - * MinGW wraps it in !defined(__STRICT_ANSI__). - -This can be reviewed as compatibility issues arise. The preference is to use _wfopen_s() and _wfopen() as opposed to the wcsrtombs() -fallback, so if you notice your compiler not detecting this properly I'm happy to look at adding support. -*/ -#if defined(_WIN32) - #if defined(_MSC_VER) || defined(__MINGW64__) || !defined(__STRICT_ANSI__) - #define DRWAV_HAS_WFOPEN - #endif -#endif - -static drwav_result drwav_wfopen(FILE** ppFile, const wchar_t* pFilePath, const wchar_t* pOpenMode, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (ppFile != NULL) { - *ppFile = NULL; /* Safety. */ - } - - if (pFilePath == NULL || pOpenMode == NULL || ppFile == NULL) { - return DRWAV_INVALID_ARGS; - } - -#if defined(DRWAV_HAS_WFOPEN) - { - /* Use _wfopen() on Windows. */ - #if defined(_MSC_VER) && _MSC_VER >= 1400 - errno_t err = _wfopen_s(ppFile, pFilePath, pOpenMode); - if (err != 0) { - return drwav_result_from_errno(err); - } - #else - *ppFile = _wfopen(pFilePath, pOpenMode); - if (*ppFile == NULL) { - return drwav_result_from_errno(errno); - } - #endif - (void)pAllocationCallbacks; - } -#else - /* - Use fopen() on anything other than Windows. Requires a conversion. This is annoying because fopen() is locale specific. The only real way I can - think of to do this is with wcsrtombs(). Note that wcstombs() is apparently not thread-safe because it uses a static global mbstate_t object for - maintaining state. I've checked this with -std=c89 and it works, but if somebody get's a compiler error I'll look into improving compatibility. - */ - { - mbstate_t mbs; - size_t lenMB; - const wchar_t* pFilePathTemp = pFilePath; - char* pFilePathMB = NULL; - char pOpenModeMB[32] = {0}; - - /* Get the length first. */ - DRWAV_ZERO_OBJECT(&mbs); - lenMB = wcsrtombs(NULL, &pFilePathTemp, 0, &mbs); - if (lenMB == (size_t)-1) { - return drwav_result_from_errno(errno); - } - - pFilePathMB = (char*)drwav__malloc_from_callbacks(lenMB + 1, pAllocationCallbacks); - if (pFilePathMB == NULL) { - return DRWAV_OUT_OF_MEMORY; - } - - pFilePathTemp = pFilePath; - DRWAV_ZERO_OBJECT(&mbs); - wcsrtombs(pFilePathMB, &pFilePathTemp, lenMB + 1, &mbs); - - /* The open mode should always consist of ASCII characters so we should be able to do a trivial conversion. */ - { - size_t i = 0; - for (;;) { - if (pOpenMode[i] == 0) { - pOpenModeMB[i] = '\0'; - break; - } - - pOpenModeMB[i] = (char)pOpenMode[i]; - i += 1; - } - } - - *ppFile = fopen(pFilePathMB, pOpenModeMB); - - drwav__free_from_callbacks(pFilePathMB, pAllocationCallbacks); - } - - if (*ppFile == NULL) { - return DRWAV_ERROR; - } -#endif - - return DRWAV_SUCCESS; -} - - -static size_t drwav__on_read_stdio(void* pUserData, void* pBufferOut, size_t bytesToRead) -{ - return fread(pBufferOut, 1, bytesToRead, (FILE*)pUserData); -} - -static size_t drwav__on_write_stdio(void* pUserData, const void* pData, size_t bytesToWrite) -{ - return fwrite(pData, 1, bytesToWrite, (FILE*)pUserData); -} - -static drwav_bool32 drwav__on_seek_stdio(void* pUserData, int offset, drwav_seek_origin origin) -{ - return fseek((FILE*)pUserData, offset, (origin == drwav_seek_origin_current) ? SEEK_CUR : SEEK_SET) == 0; -} - -DRWAV_API drwav_bool32 drwav_init_file(drwav* pWav, const char* filename, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_ex(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); -} - - -static drwav_bool32 drwav_init_file__internal_FILE(drwav* pWav, FILE* pFile, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav_bool32 result; - - result = drwav_preinit(pWav, drwav__on_read_stdio, drwav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); - if (result != DRWAV_TRUE) { - fclose(pFile); - return result; - } - - result = drwav_init__internal(pWav, onChunk, pChunkUserData, flags); - if (result != DRWAV_TRUE) { - fclose(pFile); - return result; - } - - return DRWAV_TRUE; -} - -DRWAV_API drwav_bool32 drwav_init_file_ex(drwav* pWav, const char* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_fopen(&pFile, filename, "rb") != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - - /* This takes ownership of the FILE* object. */ - return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_w(drwav* pWav, const wchar_t* filename, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_ex_w(pWav, filename, NULL, NULL, 0, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_ex_w(drwav* pWav, const wchar_t* filename, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_wfopen(&pFile, filename, L"rb", pAllocationCallbacks) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - - /* This takes ownership of the FILE* object. */ - return drwav_init_file__internal_FILE(pWav, pFile, onChunk, pChunkUserData, flags, pAllocationCallbacks); -} - - -static drwav_bool32 drwav_init_file_write__internal_FILE(drwav* pWav, FILE* pFile, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav_bool32 result; - - result = drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_stdio, drwav__on_seek_stdio, (void*)pFile, pAllocationCallbacks); - if (result != DRWAV_TRUE) { - fclose(pFile); - return result; - } - - result = drwav_init_write__internal(pWav, pFormat, totalSampleCount); - if (result != DRWAV_TRUE) { - fclose(pFile); - return result; - } - - return DRWAV_TRUE; -} - -static drwav_bool32 drwav_init_file_write__internal(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_fopen(&pFile, filename, "wb") != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - - /* This takes ownership of the FILE* object. */ - return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); -} - -static drwav_bool32 drwav_init_file_write_w__internal(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - FILE* pFile; - if (drwav_wfopen(&pFile, filename, L"wb", pAllocationCallbacks) != DRWAV_SUCCESS) { - return DRWAV_FALSE; - } - - /* This takes ownership of the FILE* object. */ - return drwav_init_file_write__internal_FILE(pWav, pFile, pFormat, totalSampleCount, isSequential, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_write(drwav* pWav, const char* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_write_sequential(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames(drwav* pWav, const char* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pFormat == NULL) { - return DRWAV_FALSE; - } - - return drwav_init_file_write_sequential(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_write_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write_w__internal(pWav, filename, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_file_write_w__internal(pWav, filename, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_file_write_sequential_pcm_frames_w(drwav* pWav, const wchar_t* filename, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pFormat == NULL) { - return DRWAV_FALSE; - } - - return drwav_init_file_write_sequential_w(pWav, filename, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); -} -#endif /* DR_WAV_NO_STDIO */ - - -static size_t drwav__on_read_memory(void* pUserData, void* pBufferOut, size_t bytesToRead) -{ - drwav* pWav = (drwav*)pUserData; - size_t bytesRemaining; - - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->memoryStream.dataSize >= pWav->memoryStream.currentReadPos); - - bytesRemaining = pWav->memoryStream.dataSize - pWav->memoryStream.currentReadPos; - if (bytesToRead > bytesRemaining) { - bytesToRead = bytesRemaining; - } - - if (bytesToRead > 0) { - DRWAV_COPY_MEMORY(pBufferOut, pWav->memoryStream.data + pWav->memoryStream.currentReadPos, bytesToRead); - pWav->memoryStream.currentReadPos += bytesToRead; - } - - return bytesToRead; -} - -static drwav_bool32 drwav__on_seek_memory(void* pUserData, int offset, drwav_seek_origin origin) -{ - drwav* pWav = (drwav*)pUserData; - DRWAV_ASSERT(pWav != NULL); - - if (origin == drwav_seek_origin_current) { - if (offset > 0) { - if (pWav->memoryStream.currentReadPos + offset > pWav->memoryStream.dataSize) { - return DRWAV_FALSE; /* Trying to seek too far forward. */ - } - } else { - if (pWav->memoryStream.currentReadPos < (size_t)-offset) { - return DRWAV_FALSE; /* Trying to seek too far backwards. */ - } - } - - /* This will never underflow thanks to the clamps above. */ - pWav->memoryStream.currentReadPos += offset; - } else { - if ((drwav_uint32)offset <= pWav->memoryStream.dataSize) { - pWav->memoryStream.currentReadPos = offset; - } else { - return DRWAV_FALSE; /* Trying to seek too far forward. */ - } - } - - return DRWAV_TRUE; -} - -static size_t drwav__on_write_memory(void* pUserData, const void* pDataIn, size_t bytesToWrite) -{ - drwav* pWav = (drwav*)pUserData; - size_t bytesRemaining; - - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(pWav->memoryStreamWrite.dataCapacity >= pWav->memoryStreamWrite.currentWritePos); - - bytesRemaining = pWav->memoryStreamWrite.dataCapacity - pWav->memoryStreamWrite.currentWritePos; - if (bytesRemaining < bytesToWrite) { - /* Need to reallocate. */ - void* pNewData; - size_t newDataCapacity = (pWav->memoryStreamWrite.dataCapacity == 0) ? 256 : pWav->memoryStreamWrite.dataCapacity * 2; - - /* If doubling wasn't enough, just make it the minimum required size to write the data. */ - if ((newDataCapacity - pWav->memoryStreamWrite.currentWritePos) < bytesToWrite) { - newDataCapacity = pWav->memoryStreamWrite.currentWritePos + bytesToWrite; - } - - pNewData = drwav__realloc_from_callbacks(*pWav->memoryStreamWrite.ppData, newDataCapacity, pWav->memoryStreamWrite.dataCapacity, &pWav->allocationCallbacks); - if (pNewData == NULL) { - return 0; - } - - *pWav->memoryStreamWrite.ppData = pNewData; - pWav->memoryStreamWrite.dataCapacity = newDataCapacity; - } - - DRWAV_COPY_MEMORY(((drwav_uint8*)(*pWav->memoryStreamWrite.ppData)) + pWav->memoryStreamWrite.currentWritePos, pDataIn, bytesToWrite); - - pWav->memoryStreamWrite.currentWritePos += bytesToWrite; - if (pWav->memoryStreamWrite.dataSize < pWav->memoryStreamWrite.currentWritePos) { - pWav->memoryStreamWrite.dataSize = pWav->memoryStreamWrite.currentWritePos; - } - - *pWav->memoryStreamWrite.pDataSize = pWav->memoryStreamWrite.dataSize; - - return bytesToWrite; -} - -static drwav_bool32 drwav__on_seek_memory_write(void* pUserData, int offset, drwav_seek_origin origin) -{ - drwav* pWav = (drwav*)pUserData; - DRWAV_ASSERT(pWav != NULL); - - if (origin == drwav_seek_origin_current) { - if (offset > 0) { - if (pWav->memoryStreamWrite.currentWritePos + offset > pWav->memoryStreamWrite.dataSize) { - offset = (int)(pWav->memoryStreamWrite.dataSize - pWav->memoryStreamWrite.currentWritePos); /* Trying to seek too far forward. */ - } - } else { - if (pWav->memoryStreamWrite.currentWritePos < (size_t)-offset) { - offset = -(int)pWav->memoryStreamWrite.currentWritePos; /* Trying to seek too far backwards. */ - } - } - - /* This will never underflow thanks to the clamps above. */ - pWav->memoryStreamWrite.currentWritePos += offset; - } else { - if ((drwav_uint32)offset <= pWav->memoryStreamWrite.dataSize) { - pWav->memoryStreamWrite.currentWritePos = offset; - } else { - pWav->memoryStreamWrite.currentWritePos = pWav->memoryStreamWrite.dataSize; /* Trying to seek too far forward. */ - } - } - - return DRWAV_TRUE; -} - -DRWAV_API drwav_bool32 drwav_init_memory(drwav* pWav, const void* data, size_t dataSize, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_memory_ex(pWav, data, dataSize, NULL, NULL, 0, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_memory_ex(drwav* pWav, const void* data, size_t dataSize, drwav_chunk_proc onChunk, void* pChunkUserData, drwav_uint32 flags, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (data == NULL || dataSize == 0) { - return DRWAV_FALSE; - } - - if (!drwav_preinit(pWav, drwav__on_read_memory, drwav__on_seek_memory, pWav, pAllocationCallbacks)) { - return DRWAV_FALSE; - } - - pWav->memoryStream.data = (const unsigned char*)data; - pWav->memoryStream.dataSize = dataSize; - pWav->memoryStream.currentReadPos = 0; - - return drwav_init__internal(pWav, onChunk, pChunkUserData, flags); -} - - -static drwav_bool32 drwav_init_memory_write__internal(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, drwav_bool32 isSequential, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (ppData == NULL || pDataSize == NULL) { - return DRWAV_FALSE; - } - - *ppData = NULL; /* Important because we're using realloc()! */ - *pDataSize = 0; - - if (!drwav_preinit_write(pWav, pFormat, isSequential, drwav__on_write_memory, drwav__on_seek_memory_write, pWav, pAllocationCallbacks)) { - return DRWAV_FALSE; - } - - pWav->memoryStreamWrite.ppData = ppData; - pWav->memoryStreamWrite.pDataSize = pDataSize; - pWav->memoryStreamWrite.dataSize = 0; - pWav->memoryStreamWrite.dataCapacity = 0; - pWav->memoryStreamWrite.currentWritePos = 0; - - return drwav_init_write__internal(pWav, pFormat, totalSampleCount); -} - -DRWAV_API drwav_bool32 drwav_init_memory_write(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, 0, DRWAV_FALSE, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalSampleCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - return drwav_init_memory_write__internal(pWav, ppData, pDataSize, pFormat, totalSampleCount, DRWAV_TRUE, pAllocationCallbacks); -} - -DRWAV_API drwav_bool32 drwav_init_memory_write_sequential_pcm_frames(drwav* pWav, void** ppData, size_t* pDataSize, const drwav_data_format* pFormat, drwav_uint64 totalPCMFrameCount, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pFormat == NULL) { - return DRWAV_FALSE; - } - - return drwav_init_memory_write_sequential(pWav, ppData, pDataSize, pFormat, totalPCMFrameCount*pFormat->channels, pAllocationCallbacks); -} - - - -DRWAV_API drwav_result drwav_uninit(drwav* pWav) -{ - drwav_result result = DRWAV_SUCCESS; - - if (pWav == NULL) { - return DRWAV_INVALID_ARGS; - } - - /* - If the drwav object was opened in write mode we'll need to finalize a few things: - - Make sure the "data" chunk is aligned to 16-bits for RIFF containers, or 64 bits for W64 containers. - - Set the size of the "data" chunk. - */ - if (pWav->onWrite != NULL) { - drwav_uint32 paddingSize = 0; - - /* Padding. Do not adjust pWav->dataChunkDataSize - this should not include the padding. */ - if (pWav->container == drwav_container_riff) { - paddingSize = drwav__chunk_padding_size_riff(pWav->dataChunkDataSize); - } else { - paddingSize = drwav__chunk_padding_size_w64(pWav->dataChunkDataSize); - } - - if (paddingSize > 0) { - drwav_uint64 paddingData = 0; - pWav->onWrite(pWav->pUserData, &paddingData, paddingSize); - } - - /* - Chunk sizes. When using sequential mode, these will have been filled in at initialization time. We only need - to do this when using non-sequential mode. - */ - if (pWav->onSeek && !pWav->isSequentialWrite) { - if (pWav->container == drwav_container_riff) { - /* The "RIFF" chunk size. */ - if (pWav->onSeek(pWav->pUserData, 4, drwav_seek_origin_start)) { - drwav_uint32 riffChunkSize = drwav__riff_chunk_size_riff(pWav->dataChunkDataSize); - pWav->onWrite(pWav->pUserData, &riffChunkSize, 4); - } - - /* the "data" chunk size. */ - if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos + 4, drwav_seek_origin_start)) { - drwav_uint32 dataChunkSize = drwav__data_chunk_size_riff(pWav->dataChunkDataSize); - pWav->onWrite(pWav->pUserData, &dataChunkSize, 4); - } - } else { - /* The "RIFF" chunk size. */ - if (pWav->onSeek(pWav->pUserData, 16, drwav_seek_origin_start)) { - drwav_uint64 riffChunkSize = drwav__riff_chunk_size_w64(pWav->dataChunkDataSize); - pWav->onWrite(pWav->pUserData, &riffChunkSize, 8); - } - - /* The "data" chunk size. */ - if (pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos + 16, drwav_seek_origin_start)) { - drwav_uint64 dataChunkSize = drwav__data_chunk_size_w64(pWav->dataChunkDataSize); - pWav->onWrite(pWav->pUserData, &dataChunkSize, 8); - } - } - } - - /* Validation for sequential mode. */ - if (pWav->isSequentialWrite) { - if (pWav->dataChunkDataSize != pWav->dataChunkDataSizeTargetWrite) { - result = DRWAV_INVALID_FILE; - } - } - } - -#ifndef DR_WAV_NO_STDIO - /* - If we opened the file with drwav_open_file() we will want to close the file handle. We can know whether or not drwav_open_file() - was used by looking at the onRead and onSeek callbacks. - */ - if (pWav->onRead == drwav__on_read_stdio || pWav->onWrite == drwav__on_write_stdio) { - fclose((FILE*)pWav->pUserData); - } -#endif - - return result; -} - - - -DRWAV_API size_t drwav_read_raw(drwav* pWav, size_t bytesToRead, void* pBufferOut) -{ - size_t bytesRead; - - if (pWav == NULL || bytesToRead == 0 || pBufferOut == NULL) { - return 0; - } - - if (bytesToRead > pWav->bytesRemaining) { - bytesToRead = (size_t)pWav->bytesRemaining; - } - - bytesRead = pWav->onRead(pWav->pUserData, pBufferOut, bytesToRead); - - pWav->bytesRemaining -= bytesRead; - return bytesRead; -} - - - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_le(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) -{ - drwav_uint32 bytesPerFrame; - - if (pWav == NULL || framesToRead == 0 || pBufferOut == NULL) { - return 0; - } - - /* Cannot use this function for compressed formats. */ - if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { - return 0; - } - - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - /* Don't try to read more samples than can potentially fit in the output buffer. */ - if (framesToRead * bytesPerFrame > DRWAV_SIZE_MAX) { - framesToRead = DRWAV_SIZE_MAX / bytesPerFrame; - } - - return drwav_read_raw(pWav, (size_t)(framesToRead * bytesPerFrame), pBufferOut) / bytesPerFrame; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_be(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) -{ - drwav_uint64 framesRead = drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); - drwav__bswap_samples(pBufferOut, framesRead*pWav->channels, drwav_get_bytes_per_pcm_frame(pWav)/pWav->channels, pWav->translatedFormatTag); - - return framesRead; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames(drwav* pWav, drwav_uint64 framesToRead, void* pBufferOut) -{ - if (drwav__is_little_endian()) { - return drwav_read_pcm_frames_le(pWav, framesToRead, pBufferOut); - } else { - return drwav_read_pcm_frames_be(pWav, framesToRead, pBufferOut); - } -} - - - -DRWAV_API drwav_bool32 drwav_seek_to_first_pcm_frame(drwav* pWav) -{ - if (pWav->onWrite != NULL) { - return DRWAV_FALSE; /* No seeking in write mode. */ - } - - if (!pWav->onSeek(pWav->pUserData, (int)pWav->dataChunkDataPos, drwav_seek_origin_start)) { - return DRWAV_FALSE; - } - - if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { - pWav->compressed.iCurrentPCMFrame = 0; - } - - pWav->bytesRemaining = pWav->dataChunkDataSize; - return DRWAV_TRUE; -} - -DRWAV_API drwav_bool32 drwav_seek_to_pcm_frame(drwav* pWav, drwav_uint64 targetFrameIndex) -{ - /* Seeking should be compatible with wave files > 2GB. */ - - if (pWav == NULL || pWav->onSeek == NULL) { - return DRWAV_FALSE; - } - - /* No seeking in write mode. */ - if (pWav->onWrite != NULL) { - return DRWAV_FALSE; - } - - /* If there are no samples, just return DRWAV_TRUE without doing anything. */ - if (pWav->totalPCMFrameCount == 0) { - return DRWAV_TRUE; - } - - /* Make sure the sample is clamped. */ - if (targetFrameIndex >= pWav->totalPCMFrameCount) { - targetFrameIndex = pWav->totalPCMFrameCount - 1; - } - - /* - For compressed formats we just use a slow generic seek. If we are seeking forward we just seek forward. If we are going backwards we need - to seek back to the start. - */ - if (drwav__is_compressed_format_tag(pWav->translatedFormatTag)) { - /* TODO: This can be optimized. */ - - /* - If we're seeking forward it's simple - just keep reading samples until we hit the sample we're requesting. If we're seeking backwards, - we first need to seek back to the start and then just do the same thing as a forward seek. - */ - if (targetFrameIndex < pWav->compressed.iCurrentPCMFrame) { - if (!drwav_seek_to_first_pcm_frame(pWav)) { - return DRWAV_FALSE; - } - } - - if (targetFrameIndex > pWav->compressed.iCurrentPCMFrame) { - drwav_uint64 offsetInFrames = targetFrameIndex - pWav->compressed.iCurrentPCMFrame; - - drwav_int16 devnull[2048]; - while (offsetInFrames > 0) { - drwav_uint64 framesRead = 0; - drwav_uint64 framesToRead = offsetInFrames; - if (framesToRead > drwav_countof(devnull)/pWav->channels) { - framesToRead = drwav_countof(devnull)/pWav->channels; - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - framesRead = drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, devnull); - } else if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - framesRead = drwav_read_pcm_frames_s16__ima(pWav, framesToRead, devnull); - } else { - assert(DRWAV_FALSE); /* If this assertion is triggered it means I've implemented a new compressed format but forgot to add a branch for it here. */ - } - - if (framesRead != framesToRead) { - return DRWAV_FALSE; - } - - offsetInFrames -= framesRead; - } - } - } else { - drwav_uint64 totalSizeInBytes; - drwav_uint64 currentBytePos; - drwav_uint64 targetBytePos; - drwav_uint64 offset; - - totalSizeInBytes = pWav->totalPCMFrameCount * drwav_get_bytes_per_pcm_frame(pWav); - DRWAV_ASSERT(totalSizeInBytes >= pWav->bytesRemaining); - - currentBytePos = totalSizeInBytes - pWav->bytesRemaining; - targetBytePos = targetFrameIndex * drwav_get_bytes_per_pcm_frame(pWav); - - if (currentBytePos < targetBytePos) { - /* Offset forwards. */ - offset = (targetBytePos - currentBytePos); - } else { - /* Offset backwards. */ - if (!drwav_seek_to_first_pcm_frame(pWav)) { - return DRWAV_FALSE; - } - offset = targetBytePos; - } - - while (offset > 0) { - int offset32 = ((offset > INT_MAX) ? INT_MAX : (int)offset); - if (!pWav->onSeek(pWav->pUserData, offset32, drwav_seek_origin_current)) { - return DRWAV_FALSE; - } - - pWav->bytesRemaining -= offset32; - offset -= offset32; - } - } - - return DRWAV_TRUE; -} - - -DRWAV_API size_t drwav_write_raw(drwav* pWav, size_t bytesToWrite, const void* pData) -{ - size_t bytesWritten; - - if (pWav == NULL || bytesToWrite == 0 || pData == NULL) { - return 0; - } - - bytesWritten = pWav->onWrite(pWav->pUserData, pData, bytesToWrite); - pWav->dataChunkDataSize += bytesWritten; - - return bytesWritten; -} - - -DRWAV_API drwav_uint64 drwav_write_pcm_frames_le(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) -{ - drwav_uint64 bytesToWrite; - drwav_uint64 bytesWritten; - const drwav_uint8* pRunningData; - - if (pWav == NULL || framesToWrite == 0 || pData == NULL) { - return 0; - } - - bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); - if (bytesToWrite > DRWAV_SIZE_MAX) { - return 0; - } - - bytesWritten = 0; - pRunningData = (const drwav_uint8*)pData; - - while (bytesToWrite > 0) { - size_t bytesJustWritten; - drwav_uint64 bytesToWriteThisIteration; - - bytesToWriteThisIteration = bytesToWrite; - DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); /* <-- This is checked above. */ - - bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, pRunningData); - if (bytesJustWritten == 0) { - break; - } - - bytesToWrite -= bytesJustWritten; - bytesWritten += bytesJustWritten; - pRunningData += bytesJustWritten; - } - - return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; -} - -DRWAV_API drwav_uint64 drwav_write_pcm_frames_be(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) -{ - drwav_uint64 bytesToWrite; - drwav_uint64 bytesWritten; - drwav_uint32 bytesPerSample; - const drwav_uint8* pRunningData; - - if (pWav == NULL || framesToWrite == 0 || pData == NULL) { - return 0; - } - - bytesToWrite = ((framesToWrite * pWav->channels * pWav->bitsPerSample) / 8); - if (bytesToWrite > DRWAV_SIZE_MAX) { - return 0; - } - - bytesWritten = 0; - pRunningData = (const drwav_uint8*)pData; - - bytesPerSample = drwav_get_bytes_per_pcm_frame(pWav) / pWav->channels; - - while (bytesToWrite > 0) { - drwav_uint8 temp[4096]; - drwav_uint32 sampleCount; - size_t bytesJustWritten; - drwav_uint64 bytesToWriteThisIteration; - - bytesToWriteThisIteration = bytesToWrite; - DRWAV_ASSERT(bytesToWriteThisIteration <= DRWAV_SIZE_MAX); /* <-- This is checked above. */ - - /* - WAV files are always little-endian. We need to byte swap on big-endian architectures. Since our input buffer is read-only we need - to use an intermediary buffer for the conversion. - */ - sampleCount = sizeof(temp)/bytesPerSample; - - if (bytesToWriteThisIteration > ((drwav_uint64)sampleCount)*bytesPerSample) { - bytesToWriteThisIteration = ((drwav_uint64)sampleCount)*bytesPerSample; - } - - DRWAV_COPY_MEMORY(temp, pRunningData, (size_t)bytesToWriteThisIteration); - drwav__bswap_samples(temp, sampleCount, bytesPerSample, pWav->translatedFormatTag); - - bytesJustWritten = drwav_write_raw(pWav, (size_t)bytesToWriteThisIteration, temp); - if (bytesJustWritten == 0) { - break; - } - - bytesToWrite -= bytesJustWritten; - bytesWritten += bytesJustWritten; - pRunningData += bytesJustWritten; - } - - return (bytesWritten * 8) / pWav->bitsPerSample / pWav->channels; -} - -DRWAV_API drwav_uint64 drwav_write_pcm_frames(drwav* pWav, drwav_uint64 framesToWrite, const void* pData) -{ - if (drwav__is_little_endian()) { - return drwav_write_pcm_frames_le(pWav, framesToWrite, pData); - } else { - return drwav_write_pcm_frames_be(pWav, framesToWrite, pData); - } -} - - -static drwav_uint64 drwav_read_pcm_frames_s16__msadpcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint64 totalFramesRead = 0; - - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(framesToRead > 0); - DRWAV_ASSERT(pBufferOut != NULL); - - /* TODO: Lots of room for optimization here. */ - - while (framesToRead > 0 && pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { - /* If there are no cached frames we need to load a new block. */ - if (pWav->msadpcm.cachedFrameCount == 0 && pWav->msadpcm.bytesRemainingInBlock == 0) { - if (pWav->channels == 1) { - /* Mono. */ - drwav_uint8 header[7]; - if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { - return totalFramesRead; - } - pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); - - pWav->msadpcm.predictor[0] = header[0]; - pWav->msadpcm.delta[0] = drwav__bytes_to_s16(header + 1); - pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav__bytes_to_s16(header + 3); - pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav__bytes_to_s16(header + 5); - pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][0]; - pWav->msadpcm.cachedFrames[3] = pWav->msadpcm.prevFrames[0][1]; - pWav->msadpcm.cachedFrameCount = 2; - } else { - /* Stereo. */ - drwav_uint8 header[14]; - if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { - return totalFramesRead; - } - pWav->msadpcm.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); - - pWav->msadpcm.predictor[0] = header[0]; - pWav->msadpcm.predictor[1] = header[1]; - pWav->msadpcm.delta[0] = drwav__bytes_to_s16(header + 2); - pWav->msadpcm.delta[1] = drwav__bytes_to_s16(header + 4); - pWav->msadpcm.prevFrames[0][1] = (drwav_int32)drwav__bytes_to_s16(header + 6); - pWav->msadpcm.prevFrames[1][1] = (drwav_int32)drwav__bytes_to_s16(header + 8); - pWav->msadpcm.prevFrames[0][0] = (drwav_int32)drwav__bytes_to_s16(header + 10); - pWav->msadpcm.prevFrames[1][0] = (drwav_int32)drwav__bytes_to_s16(header + 12); - - pWav->msadpcm.cachedFrames[0] = pWav->msadpcm.prevFrames[0][0]; - pWav->msadpcm.cachedFrames[1] = pWav->msadpcm.prevFrames[1][0]; - pWav->msadpcm.cachedFrames[2] = pWav->msadpcm.prevFrames[0][1]; - pWav->msadpcm.cachedFrames[3] = pWav->msadpcm.prevFrames[1][1]; - pWav->msadpcm.cachedFrameCount = 2; - } - } - - /* Output anything that's cached. */ - while (framesToRead > 0 && pWav->msadpcm.cachedFrameCount > 0 && pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { - drwav_uint32 iSample = 0; - for (iSample = 0; iSample < pWav->channels; iSample += 1) { - pBufferOut[iSample] = (drwav_int16)pWav->msadpcm.cachedFrames[(drwav_countof(pWav->msadpcm.cachedFrames) - (pWav->msadpcm.cachedFrameCount*pWav->channels)) + iSample]; - } - - pBufferOut += pWav->channels; - framesToRead -= 1; - totalFramesRead += 1; - pWav->compressed.iCurrentPCMFrame += 1; - pWav->msadpcm.cachedFrameCount -= 1; - } - - if (framesToRead == 0) { - return totalFramesRead; - } - - - /* - If there's nothing left in the cache, just go ahead and load more. If there's nothing left to load in the current block we just continue to the next - loop iteration which will trigger the loading of a new block. - */ - if (pWav->msadpcm.cachedFrameCount == 0) { - if (pWav->msadpcm.bytesRemainingInBlock == 0) { - continue; - } else { - static drwav_int32 adaptationTable[] = { - 230, 230, 230, 230, 307, 409, 512, 614, - 768, 614, 512, 409, 307, 230, 230, 230 - }; - static drwav_int32 coeff1Table[] = { 256, 512, 0, 192, 240, 460, 392 }; - static drwav_int32 coeff2Table[] = { 0, -256, 0, 64, 0, -208, -232 }; - - drwav_uint8 nibbles; - drwav_int32 nibble0; - drwav_int32 nibble1; - - if (pWav->onRead(pWav->pUserData, &nibbles, 1) != 1) { - return totalFramesRead; - } - pWav->msadpcm.bytesRemainingInBlock -= 1; - - /* TODO: Optimize away these if statements. */ - nibble0 = ((nibbles & 0xF0) >> 4); if ((nibbles & 0x80)) { nibble0 |= 0xFFFFFFF0UL; } - nibble1 = ((nibbles & 0x0F) >> 0); if ((nibbles & 0x08)) { nibble1 |= 0xFFFFFFF0UL; } - - if (pWav->channels == 1) { - /* Mono. */ - drwav_int32 newSample0; - drwav_int32 newSample1; - - newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; - newSample0 += nibble0 * pWav->msadpcm.delta[0]; - newSample0 = drwav_clamp(newSample0, -32768, 32767); - - pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8; - if (pWav->msadpcm.delta[0] < 16) { - pWav->msadpcm.delta[0] = 16; - } - - pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; - pWav->msadpcm.prevFrames[0][1] = newSample0; - - - newSample1 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; - newSample1 += nibble1 * pWav->msadpcm.delta[0]; - newSample1 = drwav_clamp(newSample1, -32768, 32767); - - pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[0]) >> 8; - if (pWav->msadpcm.delta[0] < 16) { - pWav->msadpcm.delta[0] = 16; - } - - pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; - pWav->msadpcm.prevFrames[0][1] = newSample1; - - - pWav->msadpcm.cachedFrames[2] = newSample0; - pWav->msadpcm.cachedFrames[3] = newSample1; - pWav->msadpcm.cachedFrameCount = 2; - } else { - /* Stereo. */ - drwav_int32 newSample0; - drwav_int32 newSample1; - - /* Left. */ - newSample0 = ((pWav->msadpcm.prevFrames[0][1] * coeff1Table[pWav->msadpcm.predictor[0]]) + (pWav->msadpcm.prevFrames[0][0] * coeff2Table[pWav->msadpcm.predictor[0]])) >> 8; - newSample0 += nibble0 * pWav->msadpcm.delta[0]; - newSample0 = drwav_clamp(newSample0, -32768, 32767); - - pWav->msadpcm.delta[0] = (adaptationTable[((nibbles & 0xF0) >> 4)] * pWav->msadpcm.delta[0]) >> 8; - if (pWav->msadpcm.delta[0] < 16) { - pWav->msadpcm.delta[0] = 16; - } - - pWav->msadpcm.prevFrames[0][0] = pWav->msadpcm.prevFrames[0][1]; - pWav->msadpcm.prevFrames[0][1] = newSample0; - - - /* Right. */ - newSample1 = ((pWav->msadpcm.prevFrames[1][1] * coeff1Table[pWav->msadpcm.predictor[1]]) + (pWav->msadpcm.prevFrames[1][0] * coeff2Table[pWav->msadpcm.predictor[1]])) >> 8; - newSample1 += nibble1 * pWav->msadpcm.delta[1]; - newSample1 = drwav_clamp(newSample1, -32768, 32767); - - pWav->msadpcm.delta[1] = (adaptationTable[((nibbles & 0x0F) >> 0)] * pWav->msadpcm.delta[1]) >> 8; - if (pWav->msadpcm.delta[1] < 16) { - pWav->msadpcm.delta[1] = 16; - } - - pWav->msadpcm.prevFrames[1][0] = pWav->msadpcm.prevFrames[1][1]; - pWav->msadpcm.prevFrames[1][1] = newSample1; - - pWav->msadpcm.cachedFrames[2] = newSample0; - pWav->msadpcm.cachedFrames[3] = newSample1; - pWav->msadpcm.cachedFrameCount = 1; - } - } - } - } - - return totalFramesRead; -} - - -static drwav_uint64 drwav_read_pcm_frames_s16__ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint64 totalFramesRead = 0; - - DRWAV_ASSERT(pWav != NULL); - DRWAV_ASSERT(framesToRead > 0); - DRWAV_ASSERT(pBufferOut != NULL); - - /* TODO: Lots of room for optimization here. */ - - while (framesToRead > 0 && pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { - /* If there are no cached samples we need to load a new block. */ - if (pWav->ima.cachedFrameCount == 0 && pWav->ima.bytesRemainingInBlock == 0) { - if (pWav->channels == 1) { - /* Mono. */ - drwav_uint8 header[4]; - if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { - return totalFramesRead; - } - pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); - - pWav->ima.predictor[0] = drwav__bytes_to_s16(header + 0); - pWav->ima.stepIndex[0] = header[2]; - pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[0]; - pWav->ima.cachedFrameCount = 1; - } else { - /* Stereo. */ - drwav_uint8 header[8]; - if (pWav->onRead(pWav->pUserData, header, sizeof(header)) != sizeof(header)) { - return totalFramesRead; - } - pWav->ima.bytesRemainingInBlock = pWav->fmt.blockAlign - sizeof(header); - - pWav->ima.predictor[0] = drwav__bytes_to_s16(header + 0); - pWav->ima.stepIndex[0] = header[2]; - pWav->ima.predictor[1] = drwav__bytes_to_s16(header + 4); - pWav->ima.stepIndex[1] = header[6]; - - pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 2] = pWav->ima.predictor[0]; - pWav->ima.cachedFrames[drwav_countof(pWav->ima.cachedFrames) - 1] = pWav->ima.predictor[1]; - pWav->ima.cachedFrameCount = 1; - } - } - - /* Output anything that's cached. */ - while (framesToRead > 0 && pWav->ima.cachedFrameCount > 0 && pWav->compressed.iCurrentPCMFrame < pWav->totalPCMFrameCount) { - drwav_uint32 iSample; - for (iSample = 0; iSample < pWav->channels; iSample += 1) { - pBufferOut[iSample] = (drwav_int16)pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + iSample]; - } - - pBufferOut += pWav->channels; - framesToRead -= 1; - totalFramesRead += 1; - pWav->compressed.iCurrentPCMFrame += 1; - pWav->ima.cachedFrameCount -= 1; - } - - if (framesToRead == 0) { - return totalFramesRead; - } - - /* - If there's nothing left in the cache, just go ahead and load more. If there's nothing left to load in the current block we just continue to the next - loop iteration which will trigger the loading of a new block. - */ - if (pWav->ima.cachedFrameCount == 0) { - if (pWav->ima.bytesRemainingInBlock == 0) { - continue; - } else { - static drwav_int32 indexTable[16] = { - -1, -1, -1, -1, 2, 4, 6, 8, - -1, -1, -1, -1, 2, 4, 6, 8 - }; - - static drwav_int32 stepTable[89] = { - 7, 8, 9, 10, 11, 12, 13, 14, 16, 17, - 19, 21, 23, 25, 28, 31, 34, 37, 41, 45, - 50, 55, 60, 66, 73, 80, 88, 97, 107, 118, - 130, 143, 157, 173, 190, 209, 230, 253, 279, 307, - 337, 371, 408, 449, 494, 544, 598, 658, 724, 796, - 876, 963, 1060, 1166, 1282, 1411, 1552, 1707, 1878, 2066, - 2272, 2499, 2749, 3024, 3327, 3660, 4026, 4428, 4871, 5358, - 5894, 6484, 7132, 7845, 8630, 9493, 10442, 11487, 12635, 13899, - 15289, 16818, 18500, 20350, 22385, 24623, 27086, 29794, 32767 - }; - - drwav_uint32 iChannel; - - /* - From what I can tell with stereo streams, it looks like every 4 bytes (8 samples) is for one channel. So it goes 4 bytes for the - left channel, 4 bytes for the right channel. - */ - pWav->ima.cachedFrameCount = 8; - for (iChannel = 0; iChannel < pWav->channels; ++iChannel) { - drwav_uint32 iByte; - drwav_uint8 nibbles[4]; - if (pWav->onRead(pWav->pUserData, &nibbles, 4) != 4) { - pWav->ima.cachedFrameCount = 0; - return totalFramesRead; - } - pWav->ima.bytesRemainingInBlock -= 4; - - for (iByte = 0; iByte < 4; ++iByte) { - drwav_uint8 nibble0 = ((nibbles[iByte] & 0x0F) >> 0); - drwav_uint8 nibble1 = ((nibbles[iByte] & 0xF0) >> 4); - - drwav_int32 step = stepTable[pWav->ima.stepIndex[iChannel]]; - drwav_int32 predictor = pWav->ima.predictor[iChannel]; - - drwav_int32 diff = step >> 3; - if (nibble0 & 1) diff += step >> 2; - if (nibble0 & 2) diff += step >> 1; - if (nibble0 & 4) diff += step; - if (nibble0 & 8) diff = -diff; - - predictor = drwav_clamp(predictor + diff, -32768, 32767); - pWav->ima.predictor[iChannel] = predictor; - pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble0], 0, (drwav_int32)drwav_countof(stepTable)-1); - pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+0)*pWav->channels + iChannel] = predictor; - - - step = stepTable[pWav->ima.stepIndex[iChannel]]; - predictor = pWav->ima.predictor[iChannel]; - - diff = step >> 3; - if (nibble1 & 1) diff += step >> 2; - if (nibble1 & 2) diff += step >> 1; - if (nibble1 & 4) diff += step; - if (nibble1 & 8) diff = -diff; - - predictor = drwav_clamp(predictor + diff, -32768, 32767); - pWav->ima.predictor[iChannel] = predictor; - pWav->ima.stepIndex[iChannel] = drwav_clamp(pWav->ima.stepIndex[iChannel] + indexTable[nibble1], 0, (drwav_int32)drwav_countof(stepTable)-1); - pWav->ima.cachedFrames[(drwav_countof(pWav->ima.cachedFrames) - (pWav->ima.cachedFrameCount*pWav->channels)) + (iByte*2+1)*pWav->channels + iChannel] = predictor; - } - } - } - } - } - - return totalFramesRead; -} - - -#ifndef DR_WAV_NO_CONVERSION_API -static unsigned short g_drwavAlawTable[256] = { - 0xEA80, 0xEB80, 0xE880, 0xE980, 0xEE80, 0xEF80, 0xEC80, 0xED80, 0xE280, 0xE380, 0xE080, 0xE180, 0xE680, 0xE780, 0xE480, 0xE580, - 0xF540, 0xF5C0, 0xF440, 0xF4C0, 0xF740, 0xF7C0, 0xF640, 0xF6C0, 0xF140, 0xF1C0, 0xF040, 0xF0C0, 0xF340, 0xF3C0, 0xF240, 0xF2C0, - 0xAA00, 0xAE00, 0xA200, 0xA600, 0xBA00, 0xBE00, 0xB200, 0xB600, 0x8A00, 0x8E00, 0x8200, 0x8600, 0x9A00, 0x9E00, 0x9200, 0x9600, - 0xD500, 0xD700, 0xD100, 0xD300, 0xDD00, 0xDF00, 0xD900, 0xDB00, 0xC500, 0xC700, 0xC100, 0xC300, 0xCD00, 0xCF00, 0xC900, 0xCB00, - 0xFEA8, 0xFEB8, 0xFE88, 0xFE98, 0xFEE8, 0xFEF8, 0xFEC8, 0xFED8, 0xFE28, 0xFE38, 0xFE08, 0xFE18, 0xFE68, 0xFE78, 0xFE48, 0xFE58, - 0xFFA8, 0xFFB8, 0xFF88, 0xFF98, 0xFFE8, 0xFFF8, 0xFFC8, 0xFFD8, 0xFF28, 0xFF38, 0xFF08, 0xFF18, 0xFF68, 0xFF78, 0xFF48, 0xFF58, - 0xFAA0, 0xFAE0, 0xFA20, 0xFA60, 0xFBA0, 0xFBE0, 0xFB20, 0xFB60, 0xF8A0, 0xF8E0, 0xF820, 0xF860, 0xF9A0, 0xF9E0, 0xF920, 0xF960, - 0xFD50, 0xFD70, 0xFD10, 0xFD30, 0xFDD0, 0xFDF0, 0xFD90, 0xFDB0, 0xFC50, 0xFC70, 0xFC10, 0xFC30, 0xFCD0, 0xFCF0, 0xFC90, 0xFCB0, - 0x1580, 0x1480, 0x1780, 0x1680, 0x1180, 0x1080, 0x1380, 0x1280, 0x1D80, 0x1C80, 0x1F80, 0x1E80, 0x1980, 0x1880, 0x1B80, 0x1A80, - 0x0AC0, 0x0A40, 0x0BC0, 0x0B40, 0x08C0, 0x0840, 0x09C0, 0x0940, 0x0EC0, 0x0E40, 0x0FC0, 0x0F40, 0x0CC0, 0x0C40, 0x0DC0, 0x0D40, - 0x5600, 0x5200, 0x5E00, 0x5A00, 0x4600, 0x4200, 0x4E00, 0x4A00, 0x7600, 0x7200, 0x7E00, 0x7A00, 0x6600, 0x6200, 0x6E00, 0x6A00, - 0x2B00, 0x2900, 0x2F00, 0x2D00, 0x2300, 0x2100, 0x2700, 0x2500, 0x3B00, 0x3900, 0x3F00, 0x3D00, 0x3300, 0x3100, 0x3700, 0x3500, - 0x0158, 0x0148, 0x0178, 0x0168, 0x0118, 0x0108, 0x0138, 0x0128, 0x01D8, 0x01C8, 0x01F8, 0x01E8, 0x0198, 0x0188, 0x01B8, 0x01A8, - 0x0058, 0x0048, 0x0078, 0x0068, 0x0018, 0x0008, 0x0038, 0x0028, 0x00D8, 0x00C8, 0x00F8, 0x00E8, 0x0098, 0x0088, 0x00B8, 0x00A8, - 0x0560, 0x0520, 0x05E0, 0x05A0, 0x0460, 0x0420, 0x04E0, 0x04A0, 0x0760, 0x0720, 0x07E0, 0x07A0, 0x0660, 0x0620, 0x06E0, 0x06A0, - 0x02B0, 0x0290, 0x02F0, 0x02D0, 0x0230, 0x0210, 0x0270, 0x0250, 0x03B0, 0x0390, 0x03F0, 0x03D0, 0x0330, 0x0310, 0x0370, 0x0350 -}; - -static unsigned short g_drwavMulawTable[256] = { - 0x8284, 0x8684, 0x8A84, 0x8E84, 0x9284, 0x9684, 0x9A84, 0x9E84, 0xA284, 0xA684, 0xAA84, 0xAE84, 0xB284, 0xB684, 0xBA84, 0xBE84, - 0xC184, 0xC384, 0xC584, 0xC784, 0xC984, 0xCB84, 0xCD84, 0xCF84, 0xD184, 0xD384, 0xD584, 0xD784, 0xD984, 0xDB84, 0xDD84, 0xDF84, - 0xE104, 0xE204, 0xE304, 0xE404, 0xE504, 0xE604, 0xE704, 0xE804, 0xE904, 0xEA04, 0xEB04, 0xEC04, 0xED04, 0xEE04, 0xEF04, 0xF004, - 0xF0C4, 0xF144, 0xF1C4, 0xF244, 0xF2C4, 0xF344, 0xF3C4, 0xF444, 0xF4C4, 0xF544, 0xF5C4, 0xF644, 0xF6C4, 0xF744, 0xF7C4, 0xF844, - 0xF8A4, 0xF8E4, 0xF924, 0xF964, 0xF9A4, 0xF9E4, 0xFA24, 0xFA64, 0xFAA4, 0xFAE4, 0xFB24, 0xFB64, 0xFBA4, 0xFBE4, 0xFC24, 0xFC64, - 0xFC94, 0xFCB4, 0xFCD4, 0xFCF4, 0xFD14, 0xFD34, 0xFD54, 0xFD74, 0xFD94, 0xFDB4, 0xFDD4, 0xFDF4, 0xFE14, 0xFE34, 0xFE54, 0xFE74, - 0xFE8C, 0xFE9C, 0xFEAC, 0xFEBC, 0xFECC, 0xFEDC, 0xFEEC, 0xFEFC, 0xFF0C, 0xFF1C, 0xFF2C, 0xFF3C, 0xFF4C, 0xFF5C, 0xFF6C, 0xFF7C, - 0xFF88, 0xFF90, 0xFF98, 0xFFA0, 0xFFA8, 0xFFB0, 0xFFB8, 0xFFC0, 0xFFC8, 0xFFD0, 0xFFD8, 0xFFE0, 0xFFE8, 0xFFF0, 0xFFF8, 0x0000, - 0x7D7C, 0x797C, 0x757C, 0x717C, 0x6D7C, 0x697C, 0x657C, 0x617C, 0x5D7C, 0x597C, 0x557C, 0x517C, 0x4D7C, 0x497C, 0x457C, 0x417C, - 0x3E7C, 0x3C7C, 0x3A7C, 0x387C, 0x367C, 0x347C, 0x327C, 0x307C, 0x2E7C, 0x2C7C, 0x2A7C, 0x287C, 0x267C, 0x247C, 0x227C, 0x207C, - 0x1EFC, 0x1DFC, 0x1CFC, 0x1BFC, 0x1AFC, 0x19FC, 0x18FC, 0x17FC, 0x16FC, 0x15FC, 0x14FC, 0x13FC, 0x12FC, 0x11FC, 0x10FC, 0x0FFC, - 0x0F3C, 0x0EBC, 0x0E3C, 0x0DBC, 0x0D3C, 0x0CBC, 0x0C3C, 0x0BBC, 0x0B3C, 0x0ABC, 0x0A3C, 0x09BC, 0x093C, 0x08BC, 0x083C, 0x07BC, - 0x075C, 0x071C, 0x06DC, 0x069C, 0x065C, 0x061C, 0x05DC, 0x059C, 0x055C, 0x051C, 0x04DC, 0x049C, 0x045C, 0x041C, 0x03DC, 0x039C, - 0x036C, 0x034C, 0x032C, 0x030C, 0x02EC, 0x02CC, 0x02AC, 0x028C, 0x026C, 0x024C, 0x022C, 0x020C, 0x01EC, 0x01CC, 0x01AC, 0x018C, - 0x0174, 0x0164, 0x0154, 0x0144, 0x0134, 0x0124, 0x0114, 0x0104, 0x00F4, 0x00E4, 0x00D4, 0x00C4, 0x00B4, 0x00A4, 0x0094, 0x0084, - 0x0078, 0x0070, 0x0068, 0x0060, 0x0058, 0x0050, 0x0048, 0x0040, 0x0038, 0x0030, 0x0028, 0x0020, 0x0018, 0x0010, 0x0008, 0x0000 -}; - -static DRWAV_INLINE drwav_int16 drwav__alaw_to_s16(drwav_uint8 sampleIn) -{ - return (short)g_drwavAlawTable[sampleIn]; -} - -static DRWAV_INLINE drwav_int16 drwav__mulaw_to_s16(drwav_uint8 sampleIn) -{ - return (short)g_drwavMulawTable[sampleIn]; -} - - - -static void drwav__pcm_to_s16(drwav_int16* pOut, const unsigned char* pIn, size_t totalSampleCount, unsigned int bytesPerSample) -{ - unsigned int i; - - /* Special case for 8-bit sample data because it's treated as unsigned. */ - if (bytesPerSample == 1) { - drwav_u8_to_s16(pOut, pIn, totalSampleCount); - return; - } - - - /* Slightly more optimal implementation for common formats. */ - if (bytesPerSample == 2) { - for (i = 0; i < totalSampleCount; ++i) { - *pOut++ = ((const drwav_int16*)pIn)[i]; - } - return; - } - if (bytesPerSample == 3) { - drwav_s24_to_s16(pOut, pIn, totalSampleCount); - return; - } - if (bytesPerSample == 4) { - drwav_s32_to_s16(pOut, (const drwav_int32*)pIn, totalSampleCount); - return; - } - - - /* Anything more than 64 bits per sample is not supported. */ - if (bytesPerSample > 8) { - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); - return; - } - - - /* Generic, slow converter. */ - for (i = 0; i < totalSampleCount; ++i) { - drwav_uint64 sample = 0; - unsigned int shift = (8 - bytesPerSample) * 8; - - unsigned int j; - for (j = 0; j < bytesPerSample; j += 1) { - DRWAV_ASSERT(j < 8); - sample |= (drwav_uint64)(pIn[j]) << shift; - shift += 8; - } - - pIn += j; - *pOut++ = (drwav_int16)((drwav_int64)sample >> 48); - } -} - -static void drwav__ieee_to_s16(drwav_int16* pOut, const unsigned char* pIn, size_t totalSampleCount, unsigned int bytesPerSample) -{ - if (bytesPerSample == 4) { - drwav_f32_to_s16(pOut, (const float*)pIn, totalSampleCount); - return; - } else if (bytesPerSample == 8) { - drwav_f64_to_s16(pOut, (const double*)pIn, totalSampleCount); - return; - } else { - /* Only supporting 32- and 64-bit float. Output silence in all other cases. Contributions welcome for 16-bit float. */ - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); - return; - } -} - -static drwav_uint64 drwav_read_pcm_frames_s16__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint32 bytesPerFrame; - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - /* Fast path. */ - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 16) { - return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); - } - - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav__pcm_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s16__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav__ieee_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s16__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav_alaw_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s16__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav_mulaw_to_s16(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - if (pWav == NULL || framesToRead == 0 || pBufferOut == NULL) { - return 0; - } - - /* Don't try to read more samples than can potentially fit in the output buffer. */ - if (framesToRead * pWav->channels * sizeof(drwav_int16) > DRWAV_SIZE_MAX) { - framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int16) / pWav->channels; - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { - return drwav_read_pcm_frames_s16__pcm(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { - return drwav_read_pcm_frames_s16__ieee(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { - return drwav_read_pcm_frames_s16__alaw(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { - return drwav_read_pcm_frames_s16__mulaw(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - return drwav_read_pcm_frames_s16__msadpcm(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - return drwav_read_pcm_frames_s16__ima(pWav, framesToRead, pBufferOut); - } - - return 0; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16le(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); - if (!drwav__is_little_endian()) { - drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); - } - - return framesRead; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s16be(drwav* pWav, drwav_uint64 framesToRead, drwav_int16* pBufferOut) -{ - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, framesToRead, pBufferOut); - if (drwav__is_little_endian()) { - drwav__bswap_samples_s16(pBufferOut, framesRead*pWav->channels); - } - - return framesRead; -} - - -DRWAV_API void drwav_u8_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - int r; - size_t i; - for (i = 0; i < sampleCount; ++i) { - int x = pIn[i]; - r = x << 8; - r = r - 32768; - pOut[i] = (short)r; - } -} - -DRWAV_API void drwav_s24_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - int r; - size_t i; - for (i = 0; i < sampleCount; ++i) { - int x = ((int)(((unsigned int)(((const unsigned char*)pIn)[i*3+0]) << 8) | ((unsigned int)(((const unsigned char*)pIn)[i*3+1]) << 16) | ((unsigned int)(((const unsigned char*)pIn)[i*3+2])) << 24)) >> 8; - r = x >> 8; - pOut[i] = (short)r; - } -} - -DRWAV_API void drwav_s32_to_s16(drwav_int16* pOut, const drwav_int32* pIn, size_t sampleCount) -{ - int r; - size_t i; - for (i = 0; i < sampleCount; ++i) { - int x = pIn[i]; - r = x >> 16; - pOut[i] = (short)r; - } -} - -DRWAV_API void drwav_f32_to_s16(drwav_int16* pOut, const float* pIn, size_t sampleCount) -{ - int r; - size_t i; - for (i = 0; i < sampleCount; ++i) { - float x = pIn[i]; - float c; - c = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); - c = c + 1; - r = (int)(c * 32767.5f); - r = r - 32768; - pOut[i] = (short)r; - } -} - -DRWAV_API void drwav_f64_to_s16(drwav_int16* pOut, const double* pIn, size_t sampleCount) -{ - int r; - size_t i; - for (i = 0; i < sampleCount; ++i) { - double x = pIn[i]; - double c; - c = ((x < -1) ? -1 : ((x > 1) ? 1 : x)); - c = c + 1; - r = (int)(c * 32767.5); - r = r - 32768; - pOut[i] = (short)r; - } -} - -DRWAV_API void drwav_alaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - for (i = 0; i < sampleCount; ++i) { - pOut[i] = drwav__alaw_to_s16(pIn[i]); - } -} - -DRWAV_API void drwav_mulaw_to_s16(drwav_int16* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - for (i = 0; i < sampleCount; ++i) { - pOut[i] = drwav__mulaw_to_s16(pIn[i]); - } -} - - - -static void drwav__pcm_to_f32(float* pOut, const unsigned char* pIn, size_t sampleCount, unsigned int bytesPerSample) -{ - unsigned int i; - - /* Special case for 8-bit sample data because it's treated as unsigned. */ - if (bytesPerSample == 1) { - drwav_u8_to_f32(pOut, pIn, sampleCount); - return; - } - - /* Slightly more optimal implementation for common formats. */ - if (bytesPerSample == 2) { - drwav_s16_to_f32(pOut, (const drwav_int16*)pIn, sampleCount); - return; - } - if (bytesPerSample == 3) { - drwav_s24_to_f32(pOut, pIn, sampleCount); - return; - } - if (bytesPerSample == 4) { - drwav_s32_to_f32(pOut, (const drwav_int32*)pIn, sampleCount); - return; - } - - - /* Anything more than 64 bits per sample is not supported. */ - if (bytesPerSample > 8) { - DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); - return; - } - - - /* Generic, slow converter. */ - for (i = 0; i < sampleCount; ++i) { - drwav_uint64 sample = 0; - unsigned int shift = (8 - bytesPerSample) * 8; - - unsigned int j; - for (j = 0; j < bytesPerSample; j += 1) { - DRWAV_ASSERT(j < 8); - sample |= (drwav_uint64)(pIn[j]) << shift; - shift += 8; - } - - pIn += j; - *pOut++ = (float)((drwav_int64)sample / 9223372036854775807.0); - } -} - -static void drwav__ieee_to_f32(float* pOut, const unsigned char* pIn, size_t sampleCount, unsigned int bytesPerSample) -{ - if (bytesPerSample == 4) { - unsigned int i; - for (i = 0; i < sampleCount; ++i) { - *pOut++ = ((const float*)pIn)[i]; - } - return; - } else if (bytesPerSample == 8) { - drwav_f64_to_f32(pOut, (const double*)pIn, sampleCount); - return; - } else { - /* Only supporting 32- and 64-bit float. Output silence in all other cases. Contributions welcome for 16-bit float. */ - DRWAV_ZERO_MEMORY(pOut, sampleCount * sizeof(*pOut)); - return; - } -} - - -static drwav_uint64 drwav_read_pcm_frames_f32__pcm(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav__pcm_to_f32(pBufferOut, sampleData, (size_t)framesRead*pWav->channels, bytesPerFrame/pWav->channels); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_f32__msadpcm(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - /* - We're just going to borrow the implementation from the drwav_read_s16() since ADPCM is a little bit more complicated than other formats and I don't - want to duplicate that code. - */ - drwav_uint64 totalFramesRead = 0; - drwav_int16 samples16[2048]; - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); - if (framesRead == 0) { - break; - } - - drwav_s16_to_f32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); /* <-- Safe cast because we're clamping to 2048. */ - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_f32__ima(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - /* - We're just going to borrow the implementation from the drwav_read_s16() since IMA-ADPCM is a little bit more complicated than other formats and I don't - want to duplicate that code. - */ - drwav_uint64 totalFramesRead = 0; - drwav_int16 samples16[2048]; - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); - if (framesRead == 0) { - break; - } - - drwav_s16_to_f32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); /* <-- Safe cast because we're clamping to 2048. */ - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_f32__ieee(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - drwav_uint32 bytesPerFrame; - - /* Fast path. */ - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT && pWav->bitsPerSample == 32) { - return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); - } - - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav__ieee_to_f32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_f32__alaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav_alaw_to_f32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_f32__mulaw(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav_mulaw_to_f32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - if (pWav == NULL || framesToRead == 0 || pBufferOut == NULL) { - return 0; - } - - /* Don't try to read more samples than can potentially fit in the output buffer. */ - if (framesToRead * pWav->channels * sizeof(float) > DRWAV_SIZE_MAX) { - framesToRead = DRWAV_SIZE_MAX / sizeof(float) / pWav->channels; - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { - return drwav_read_pcm_frames_f32__pcm(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - return drwav_read_pcm_frames_f32__msadpcm(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { - return drwav_read_pcm_frames_f32__ieee(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { - return drwav_read_pcm_frames_f32__alaw(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { - return drwav_read_pcm_frames_f32__mulaw(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - return drwav_read_pcm_frames_f32__ima(pWav, framesToRead, pBufferOut); - } - - return 0; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32le(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); - if (!drwav__is_little_endian()) { - drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); - } - - return framesRead; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_f32be(drwav* pWav, drwav_uint64 framesToRead, float* pBufferOut) -{ - drwav_uint64 framesRead = drwav_read_pcm_frames_f32(pWav, framesToRead, pBufferOut); - if (drwav__is_little_endian()) { - drwav__bswap_samples_f32(pBufferOut, framesRead*pWav->channels); - } - - return framesRead; -} - - -DRWAV_API void drwav_u8_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - -#ifdef DR_WAV_LIBSNDFILE_COMPAT - /* - It appears libsndfile uses slightly different logic for the u8 -> f32 conversion to dr_wav, which in my opinion is incorrect. It appears - libsndfile performs the conversion something like "f32 = (u8 / 256) * 2 - 1", however I think it should be "f32 = (u8 / 255) * 2 - 1" (note - the divisor of 256 vs 255). I use libsndfile as a benchmark for testing, so I'm therefore leaving this block here just for my automated - correctness testing. This is disabled by default. - */ - for (i = 0; i < sampleCount; ++i) { - *pOut++ = (pIn[i] / 256.0f) * 2 - 1; - } -#else - for (i = 0; i < sampleCount; ++i) { - float x = pIn[i]; - x = x * 0.00784313725490196078f; /* 0..255 to 0..2 */ - x = x - 1; /* 0..2 to -1..1 */ - - *pOut++ = x; - } -#endif -} - -DRWAV_API void drwav_s16_to_f32(float* pOut, const drwav_int16* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = pIn[i] * 0.000030517578125f; - } -} - -DRWAV_API void drwav_s24_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - double x = (double)(((drwav_int32)(((drwav_uint32)(pIn[i*3+0]) << 8) | ((drwav_uint32)(pIn[i*3+1]) << 16) | ((drwav_uint32)(pIn[i*3+2])) << 24)) >> 8); - *pOut++ = (float)(x * 0.00000011920928955078125); - } -} - -DRWAV_API void drwav_s32_to_f32(float* pOut, const drwav_int32* pIn, size_t sampleCount) -{ - size_t i; - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = (float)(pIn[i] / 2147483648.0); - } -} - -DRWAV_API void drwav_f64_to_f32(float* pOut, const double* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = (float)pIn[i]; - } -} - -DRWAV_API void drwav_alaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = drwav__alaw_to_s16(pIn[i]) / 32768.0f; - } -} - -DRWAV_API void drwav_mulaw_to_f32(float* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = drwav__mulaw_to_s16(pIn[i]) / 32768.0f; - } -} - - - -static void drwav__pcm_to_s32(drwav_int32* pOut, const unsigned char* pIn, size_t totalSampleCount, unsigned int bytesPerSample) -{ - unsigned int i; - - /* Special case for 8-bit sample data because it's treated as unsigned. */ - if (bytesPerSample == 1) { - drwav_u8_to_s32(pOut, pIn, totalSampleCount); - return; - } - - /* Slightly more optimal implementation for common formats. */ - if (bytesPerSample == 2) { - drwav_s16_to_s32(pOut, (const drwav_int16*)pIn, totalSampleCount); - return; - } - if (bytesPerSample == 3) { - drwav_s24_to_s32(pOut, pIn, totalSampleCount); - return; - } - if (bytesPerSample == 4) { - for (i = 0; i < totalSampleCount; ++i) { - *pOut++ = ((const drwav_int32*)pIn)[i]; - } - return; - } - - - /* Anything more than 64 bits per sample is not supported. */ - if (bytesPerSample > 8) { - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); - return; - } - - - /* Generic, slow converter. */ - for (i = 0; i < totalSampleCount; ++i) { - drwav_uint64 sample = 0; - unsigned int shift = (8 - bytesPerSample) * 8; - - unsigned int j; - for (j = 0; j < bytesPerSample; j += 1) { - DRWAV_ASSERT(j < 8); - sample |= (drwav_uint64)(pIn[j]) << shift; - shift += 8; - } - - pIn += j; - *pOut++ = (drwav_int32)((drwav_int64)sample >> 32); - } -} - -static void drwav__ieee_to_s32(drwav_int32* pOut, const unsigned char* pIn, size_t totalSampleCount, unsigned int bytesPerSample) -{ - if (bytesPerSample == 4) { - drwav_f32_to_s32(pOut, (const float*)pIn, totalSampleCount); - return; - } else if (bytesPerSample == 8) { - drwav_f64_to_s32(pOut, (const double*)pIn, totalSampleCount); - return; - } else { - /* Only supporting 32- and 64-bit float. Output silence in all other cases. Contributions welcome for 16-bit float. */ - DRWAV_ZERO_MEMORY(pOut, totalSampleCount * sizeof(*pOut)); - return; - } -} - - -static drwav_uint64 drwav_read_pcm_frames_s32__pcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - drwav_uint32 bytesPerFrame; - - /* Fast path. */ - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM && pWav->bitsPerSample == 32) { - return drwav_read_pcm_frames(pWav, framesToRead, pBufferOut); - } - - bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav__pcm_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s32__msadpcm(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - /* - We're just going to borrow the implementation from the drwav_read_s16() since ADPCM is a little bit more complicated than other formats and I don't - want to duplicate that code. - */ - drwav_uint64 totalFramesRead = 0; - drwav_int16 samples16[2048]; - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); - if (framesRead == 0) { - break; - } - - drwav_s16_to_s32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); /* <-- Safe cast because we're clamping to 2048. */ - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s32__ima(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - /* - We're just going to borrow the implementation from the drwav_read_s16() since IMA-ADPCM is a little bit more complicated than other formats and I don't - want to duplicate that code. - */ - drwav_uint64 totalFramesRead = 0; - drwav_int16 samples16[2048]; - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames_s16(pWav, drwav_min(framesToRead, drwav_countof(samples16)/pWav->channels), samples16); - if (framesRead == 0) { - break; - } - - drwav_s16_to_s32(pBufferOut, samples16, (size_t)(framesRead*pWav->channels)); /* <-- Safe cast because we're clamping to 2048. */ - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s32__ieee(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav__ieee_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels), bytesPerFrame/pWav->channels); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s32__alaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav_alaw_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -static drwav_uint64 drwav_read_pcm_frames_s32__mulaw(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - drwav_uint64 totalFramesRead; - unsigned char sampleData[4096]; - - drwav_uint32 bytesPerFrame = drwav_get_bytes_per_pcm_frame(pWav); - if (bytesPerFrame == 0) { - return 0; - } - - totalFramesRead = 0; - - while (framesToRead > 0) { - drwav_uint64 framesRead = drwav_read_pcm_frames(pWav, drwav_min(framesToRead, sizeof(sampleData)/bytesPerFrame), sampleData); - if (framesRead == 0) { - break; - } - - drwav_mulaw_to_s32(pBufferOut, sampleData, (size_t)(framesRead*pWav->channels)); - - pBufferOut += framesRead*pWav->channels; - framesToRead -= framesRead; - totalFramesRead += framesRead; - } - - return totalFramesRead; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - if (pWav == NULL || framesToRead == 0 || pBufferOut == NULL) { - return 0; - } - - /* Don't try to read more samples than can potentially fit in the output buffer. */ - if (framesToRead * pWav->channels * sizeof(drwav_int32) > DRWAV_SIZE_MAX) { - framesToRead = DRWAV_SIZE_MAX / sizeof(drwav_int32) / pWav->channels; - } - - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_PCM) { - return drwav_read_pcm_frames_s32__pcm(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ADPCM) { - return drwav_read_pcm_frames_s32__msadpcm(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_IEEE_FLOAT) { - return drwav_read_pcm_frames_s32__ieee(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_ALAW) { - return drwav_read_pcm_frames_s32__alaw(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_MULAW) { - return drwav_read_pcm_frames_s32__mulaw(pWav, framesToRead, pBufferOut); - } - - if (pWav->translatedFormatTag == DR_WAVE_FORMAT_DVI_ADPCM) { - return drwav_read_pcm_frames_s32__ima(pWav, framesToRead, pBufferOut); - } - - return 0; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32le(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); - if (!drwav__is_little_endian()) { - drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); - } - - return framesRead; -} - -DRWAV_API drwav_uint64 drwav_read_pcm_frames_s32be(drwav* pWav, drwav_uint64 framesToRead, drwav_int32* pBufferOut) -{ - drwav_uint64 framesRead = drwav_read_pcm_frames_s32(pWav, framesToRead, pBufferOut); - if (drwav__is_little_endian()) { - drwav__bswap_samples_s32(pBufferOut, framesRead*pWav->channels); - } - - return framesRead; -} - - -DRWAV_API void drwav_u8_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = ((int)pIn[i] - 128) << 24; - } -} - -DRWAV_API void drwav_s16_to_s32(drwav_int32* pOut, const drwav_int16* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = pIn[i] << 16; - } -} - -DRWAV_API void drwav_s24_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - unsigned int s0 = pIn[i*3 + 0]; - unsigned int s1 = pIn[i*3 + 1]; - unsigned int s2 = pIn[i*3 + 2]; - - drwav_int32 sample32 = (drwav_int32)((s0 << 8) | (s1 << 16) | (s2 << 24)); - *pOut++ = sample32; - } -} - -DRWAV_API void drwav_f32_to_s32(drwav_int32* pOut, const float* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = (drwav_int32)(2147483648.0 * pIn[i]); - } -} - -DRWAV_API void drwav_f64_to_s32(drwav_int32* pOut, const double* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = (drwav_int32)(2147483648.0 * pIn[i]); - } -} - -DRWAV_API void drwav_alaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i = 0; i < sampleCount; ++i) { - *pOut++ = ((drwav_int32)drwav__alaw_to_s16(pIn[i])) << 16; - } -} - -DRWAV_API void drwav_mulaw_to_s32(drwav_int32* pOut, const drwav_uint8* pIn, size_t sampleCount) -{ - size_t i; - - if (pOut == NULL || pIn == NULL) { - return; - } - - for (i= 0; i < sampleCount; ++i) { - *pOut++ = ((drwav_int32)drwav__mulaw_to_s16(pIn[i])) << 16; - } -} - - - -static drwav_int16* drwav__read_pcm_frames_and_close_s16(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) -{ - drwav_uint64 sampleDataSize; - drwav_int16* pSampleData; - drwav_uint64 framesRead; - - DRWAV_ASSERT(pWav != NULL); - - sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int16); - if (sampleDataSize > DRWAV_SIZE_MAX) { - drwav_uninit(pWav); - return NULL; /* File's too big. */ - } - - pSampleData = (drwav_int16*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); /* <-- Safe cast due to the check above. */ - if (pSampleData == NULL) { - drwav_uninit(pWav); - return NULL; /* Failed to allocate memory. */ - } - - framesRead = drwav_read_pcm_frames_s16(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); - if (framesRead != pWav->totalPCMFrameCount) { - drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); - drwav_uninit(pWav); - return NULL; /* There was an error reading the samples. */ - } - - drwav_uninit(pWav); - - if (sampleRate) { - *sampleRate = pWav->sampleRate; - } - if (channels) { - *channels = pWav->channels; - } - if (totalFrameCount) { - *totalFrameCount = pWav->totalPCMFrameCount; - } - - return pSampleData; -} - -static float* drwav__read_pcm_frames_and_close_f32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) -{ - drwav_uint64 sampleDataSize; - float* pSampleData; - drwav_uint64 framesRead; - - DRWAV_ASSERT(pWav != NULL); - - sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(float); - if (sampleDataSize > DRWAV_SIZE_MAX) { - drwav_uninit(pWav); - return NULL; /* File's too big. */ - } - - pSampleData = (float*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); /* <-- Safe cast due to the check above. */ - if (pSampleData == NULL) { - drwav_uninit(pWav); - return NULL; /* Failed to allocate memory. */ - } - - framesRead = drwav_read_pcm_frames_f32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); - if (framesRead != pWav->totalPCMFrameCount) { - drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); - drwav_uninit(pWav); - return NULL; /* There was an error reading the samples. */ - } - - drwav_uninit(pWav); - - if (sampleRate) { - *sampleRate = pWav->sampleRate; - } - if (channels) { - *channels = pWav->channels; - } - if (totalFrameCount) { - *totalFrameCount = pWav->totalPCMFrameCount; - } - - return pSampleData; -} - -static drwav_int32* drwav__read_pcm_frames_and_close_s32(drwav* pWav, unsigned int* channels, unsigned int* sampleRate, drwav_uint64* totalFrameCount) -{ - drwav_uint64 sampleDataSize; - drwav_int32* pSampleData; - drwav_uint64 framesRead; - - DRWAV_ASSERT(pWav != NULL); - - sampleDataSize = pWav->totalPCMFrameCount * pWav->channels * sizeof(drwav_int32); - if (sampleDataSize > DRWAV_SIZE_MAX) { - drwav_uninit(pWav); - return NULL; /* File's too big. */ - } - - pSampleData = (drwav_int32*)drwav__malloc_from_callbacks((size_t)sampleDataSize, &pWav->allocationCallbacks); /* <-- Safe cast due to the check above. */ - if (pSampleData == NULL) { - drwav_uninit(pWav); - return NULL; /* Failed to allocate memory. */ - } - - framesRead = drwav_read_pcm_frames_s32(pWav, (size_t)pWav->totalPCMFrameCount, pSampleData); - if (framesRead != pWav->totalPCMFrameCount) { - drwav__free_from_callbacks(pSampleData, &pWav->allocationCallbacks); - drwav_uninit(pWav); - return NULL; /* There was an error reading the samples. */ - } - - drwav_uninit(pWav); - - if (sampleRate) { - *sampleRate = pWav->sampleRate; - } - if (channels) { - *channels = pWav->channels; - } - if (totalFrameCount) { - *totalFrameCount = pWav->totalPCMFrameCount; - } - - return pSampleData; -} - - - -DRWAV_API drwav_int16* drwav_open_and_read_pcm_frames_s16(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API float* drwav_open_and_read_pcm_frames_f32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API drwav_int32* drwav_open_and_read_pcm_frames_s32(drwav_read_proc onRead, drwav_seek_proc onSeek, void* pUserData, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init(&wav, onRead, onSeek, pUserData, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -#ifndef DR_WAV_NO_STDIO -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32(const char* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_file(&wav, filename, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - - -DRWAV_API drwav_int16* drwav_open_file_and_read_pcm_frames_s16_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (channelsOut) { - *channelsOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API float* drwav_open_file_and_read_pcm_frames_f32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (channelsOut) { - *channelsOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API drwav_int32* drwav_open_file_and_read_pcm_frames_s32_w(const wchar_t* filename, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (channelsOut) { - *channelsOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_file_w(&wav, filename, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} -#endif - -DRWAV_API drwav_int16* drwav_open_memory_and_read_pcm_frames_s16(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s16(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API float* drwav_open_memory_and_read_pcm_frames_f32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_f32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} - -DRWAV_API drwav_int32* drwav_open_memory_and_read_pcm_frames_s32(const void* data, size_t dataSize, unsigned int* channelsOut, unsigned int* sampleRateOut, drwav_uint64* totalFrameCountOut, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - drwav wav; - - if (channelsOut) { - *channelsOut = 0; - } - if (sampleRateOut) { - *sampleRateOut = 0; - } - if (totalFrameCountOut) { - *totalFrameCountOut = 0; - } - - if (!drwav_init_memory(&wav, data, dataSize, pAllocationCallbacks)) { - return NULL; - } - - return drwav__read_pcm_frames_and_close_s32(&wav, channelsOut, sampleRateOut, totalFrameCountOut); -} -#endif /* DR_WAV_NO_CONVERSION_API */ - - -DRWAV_API void drwav_free(void* p, const drwav_allocation_callbacks* pAllocationCallbacks) -{ - if (pAllocationCallbacks != NULL) { - drwav__free_from_callbacks(p, pAllocationCallbacks); - } else { - drwav__free_default(p, NULL); - } -} - -DRWAV_API drwav_uint16 drwav_bytes_to_u16(const unsigned char* data) -{ - return drwav__bytes_to_u16(data); -} - -DRWAV_API drwav_int16 drwav_bytes_to_s16(const unsigned char* data) -{ - return drwav__bytes_to_s16(data); -} - -DRWAV_API drwav_uint32 drwav_bytes_to_u32(const unsigned char* data) -{ - return drwav__bytes_to_u32(data); -} - -DRWAV_API drwav_int32 drwav_bytes_to_s32(const unsigned char* data) -{ - return drwav__bytes_to_s32(data); -} - -DRWAV_API drwav_uint64 drwav_bytes_to_u64(const unsigned char* data) -{ - return drwav__bytes_to_u64(data); -} - -DRWAV_API drwav_int64 drwav_bytes_to_s64(const unsigned char* data) -{ - return drwav__bytes_to_s64(data); -} - - -DRWAV_API drwav_bool32 drwav_guid_equal(const drwav_uint8 a[16], const drwav_uint8 b[16]) -{ - return drwav__guid_equal(a, b); -} - -DRWAV_API drwav_bool32 drwav_fourcc_equal(const unsigned char* a, const char* b) -{ - return drwav__fourcc_equal(a, b); -} - -#endif /* DR_WAV_IMPLEMENTATION */ - -/* -RELEASE NOTES - v0.11.0 -======================= -Version 0.11.0 has breaking API changes. - -Improved Client-Defined Memory Allocation ------------------------------------------ -The main change with this release is the addition of a more flexible way of implementing custom memory allocation routines. The -existing system of DRWAV_MALLOC, DRWAV_REALLOC and DRWAV_FREE are still in place and will be used by default when no custom -allocation callbacks are specified. - -To use the new system, you pass in a pointer to a drwav_allocation_callbacks object to drwav_init() and family, like this: - - void* my_malloc(size_t sz, void* pUserData) - { - return malloc(sz); - } - void* my_realloc(void* p, size_t sz, void* pUserData) - { - return realloc(p, sz); - } - void my_free(void* p, void* pUserData) - { - free(p); - } - - ... - - drwav_allocation_callbacks allocationCallbacks; - allocationCallbacks.pUserData = &myData; - allocationCallbacks.onMalloc = my_malloc; - allocationCallbacks.onRealloc = my_realloc; - allocationCallbacks.onFree = my_free; - drwav_init_file(&wav, "my_file.wav", &allocationCallbacks); - -The advantage of this new system is that it allows you to specify user data which will be passed in to the allocation routines. - -Passing in null for the allocation callbacks object will cause dr_wav to use defaults which is the same as DRWAV_MALLOC, -DRWAV_REALLOC and DRWAV_FREE and the equivalent of how it worked in previous versions. - -Every API that opens a drwav object now takes this extra parameter. These include the following: - - drwav_init() - drwav_init_ex() - drwav_init_file() - drwav_init_file_ex() - drwav_init_file_w() - drwav_init_file_w_ex() - drwav_init_memory() - drwav_init_memory_ex() - drwav_init_write() - drwav_init_write_sequential() - drwav_init_write_sequential_pcm_frames() - drwav_init_file_write() - drwav_init_file_write_sequential() - drwav_init_file_write_sequential_pcm_frames() - drwav_init_file_write_w() - drwav_init_file_write_sequential_w() - drwav_init_file_write_sequential_pcm_frames_w() - drwav_init_memory_write() - drwav_init_memory_write_sequential() - drwav_init_memory_write_sequential_pcm_frames() - drwav_open_and_read_pcm_frames_s16() - drwav_open_and_read_pcm_frames_f32() - drwav_open_and_read_pcm_frames_s32() - drwav_open_file_and_read_pcm_frames_s16() - drwav_open_file_and_read_pcm_frames_f32() - drwav_open_file_and_read_pcm_frames_s32() - drwav_open_file_and_read_pcm_frames_s16_w() - drwav_open_file_and_read_pcm_frames_f32_w() - drwav_open_file_and_read_pcm_frames_s32_w() - drwav_open_memory_and_read_pcm_frames_s16() - drwav_open_memory_and_read_pcm_frames_f32() - drwav_open_memory_and_read_pcm_frames_s32() - -Endian Improvements -------------------- -Previously, the following APIs returned little-endian audio data. These now return native-endian data. This improves compatibility -on big-endian architectures. - - drwav_read_pcm_frames() - drwav_read_pcm_frames_s16() - drwav_read_pcm_frames_s32() - drwav_read_pcm_frames_f32() - drwav_open_and_read_pcm_frames_s16() - drwav_open_and_read_pcm_frames_s32() - drwav_open_and_read_pcm_frames_f32() - drwav_open_file_and_read_pcm_frames_s16() - drwav_open_file_and_read_pcm_frames_s32() - drwav_open_file_and_read_pcm_frames_f32() - drwav_open_file_and_read_pcm_frames_s16_w() - drwav_open_file_and_read_pcm_frames_s32_w() - drwav_open_file_and_read_pcm_frames_f32_w() - drwav_open_memory_and_read_pcm_frames_s16() - drwav_open_memory_and_read_pcm_frames_s32() - drwav_open_memory_and_read_pcm_frames_f32() - -APIs have been added to give you explicit control over whether or not audio data is read or written in big- or little-endian byte -order: - - drwav_read_pcm_frames_le() - drwav_read_pcm_frames_be() - drwav_read_pcm_frames_s16le() - drwav_read_pcm_frames_s16be() - drwav_read_pcm_frames_f32le() - drwav_read_pcm_frames_f32be() - drwav_read_pcm_frames_s32le() - drwav_read_pcm_frames_s32be() - drwav_write_pcm_frames_le() - drwav_write_pcm_frames_be() - -Removed APIs ------------- -The following APIs were deprecated in version 0.10.0 and have now been removed: - - drwav_open() - drwav_open_ex() - drwav_open_write() - drwav_open_write_sequential() - drwav_open_file() - drwav_open_file_ex() - drwav_open_file_write() - drwav_open_file_write_sequential() - drwav_open_memory() - drwav_open_memory_ex() - drwav_open_memory_write() - drwav_open_memory_write_sequential() - drwav_close() - - - -RELEASE NOTES - v0.10.0 -======================= -Version 0.10.0 has breaking API changes. There are no significant bug fixes in this release, so if you are affected you do -not need to upgrade. - -Removed APIs ------------- -The following APIs were deprecated in version 0.9.0 and have been completely removed in version 0.10.0: - - drwav_read() - drwav_read_s16() - drwav_read_f32() - drwav_read_s32() - drwav_seek_to_sample() - drwav_write() - drwav_open_and_read_s16() - drwav_open_and_read_f32() - drwav_open_and_read_s32() - drwav_open_file_and_read_s16() - drwav_open_file_and_read_f32() - drwav_open_file_and_read_s32() - drwav_open_memory_and_read_s16() - drwav_open_memory_and_read_f32() - drwav_open_memory_and_read_s32() - drwav::totalSampleCount - -See release notes for version 0.9.0 at the bottom of this file for replacement APIs. - -Deprecated APIs ---------------- -The following APIs have been deprecated. There is a confusing and completely arbitrary difference between drwav_init*() and -drwav_open*(), where drwav_init*() initializes a pre-allocated drwav object, whereas drwav_open*() will first allocated a -drwav object on the heap and then initialize it. drwav_open*() has been deprecated which means you must now use a pre- -allocated drwav object with drwav_init*(). If you need the previous functionality, you can just do a malloc() followed by -a called to one of the drwav_init*() APIs. - - drwav_open() - drwav_open_ex() - drwav_open_write() - drwav_open_write_sequential() - drwav_open_file() - drwav_open_file_ex() - drwav_open_file_write() - drwav_open_file_write_sequential() - drwav_open_memory() - drwav_open_memory_ex() - drwav_open_memory_write() - drwav_open_memory_write_sequential() - drwav_close() - -These APIs will be removed completely in a future version. The rationale for this change is to remove confusion between the -two different ways to initialize a drwav object. -*/ - -/* -REVISION HISTORY -================ -v0.12.2 - 2020-04-21 - - Fix a bug where drwav_init_file() does not close the file handle after attempting to load an erroneous file. - -v0.12.1 - 2020-04-13 - - Fix some pedantic warnings. - -v0.12.0 - 2020-04-04 - - API CHANGE: Add container and format parameters to the chunk callback. - - Minor documentation updates. - -v0.11.5 - 2020-03-07 - - Fix compilation error with Visual Studio .NET 2003. - -v0.11.4 - 2020-01-29 - - Fix some static analysis warnings. - - Fix a bug when reading f32 samples from an A-law encoded stream. - -v0.11.3 - 2020-01-12 - - Minor changes to some f32 format conversion routines. - - Minor bug fix for ADPCM conversion when end of file is reached. - -v0.11.2 - 2019-12-02 - - Fix a possible crash when using custom memory allocators without a custom realloc() implementation. - - Fix an integer overflow bug. - - Fix a null pointer dereference bug. - - Add limits to sample rate, channels and bits per sample to tighten up some validation. - -v0.11.1 - 2019-10-07 - - Internal code clean up. - -v0.11.0 - 2019-10-06 - - API CHANGE: Add support for user defined memory allocation routines. This system allows the program to specify their own memory allocation - routines with a user data pointer for client-specific contextual data. This adds an extra parameter to the end of the following APIs: - - drwav_init() - - drwav_init_ex() - - drwav_init_file() - - drwav_init_file_ex() - - drwav_init_file_w() - - drwav_init_file_w_ex() - - drwav_init_memory() - - drwav_init_memory_ex() - - drwav_init_write() - - drwav_init_write_sequential() - - drwav_init_write_sequential_pcm_frames() - - drwav_init_file_write() - - drwav_init_file_write_sequential() - - drwav_init_file_write_sequential_pcm_frames() - - drwav_init_file_write_w() - - drwav_init_file_write_sequential_w() - - drwav_init_file_write_sequential_pcm_frames_w() - - drwav_init_memory_write() - - drwav_init_memory_write_sequential() - - drwav_init_memory_write_sequential_pcm_frames() - - drwav_open_and_read_pcm_frames_s16() - - drwav_open_and_read_pcm_frames_f32() - - drwav_open_and_read_pcm_frames_s32() - - drwav_open_file_and_read_pcm_frames_s16() - - drwav_open_file_and_read_pcm_frames_f32() - - drwav_open_file_and_read_pcm_frames_s32() - - drwav_open_file_and_read_pcm_frames_s16_w() - - drwav_open_file_and_read_pcm_frames_f32_w() - - drwav_open_file_and_read_pcm_frames_s32_w() - - drwav_open_memory_and_read_pcm_frames_s16() - - drwav_open_memory_and_read_pcm_frames_f32() - - drwav_open_memory_and_read_pcm_frames_s32() - Set this extra parameter to NULL to use defaults which is the same as the previous behaviour. Setting this NULL will use - DRWAV_MALLOC, DRWAV_REALLOC and DRWAV_FREE. - - Add support for reading and writing PCM frames in an explicit endianness. New APIs: - - drwav_read_pcm_frames_le() - - drwav_read_pcm_frames_be() - - drwav_read_pcm_frames_s16le() - - drwav_read_pcm_frames_s16be() - - drwav_read_pcm_frames_f32le() - - drwav_read_pcm_frames_f32be() - - drwav_read_pcm_frames_s32le() - - drwav_read_pcm_frames_s32be() - - drwav_write_pcm_frames_le() - - drwav_write_pcm_frames_be() - - Remove deprecated APIs. - - API CHANGE: The following APIs now return native-endian data. Previously they returned little-endian data. - - drwav_read_pcm_frames() - - drwav_read_pcm_frames_s16() - - drwav_read_pcm_frames_s32() - - drwav_read_pcm_frames_f32() - - drwav_open_and_read_pcm_frames_s16() - - drwav_open_and_read_pcm_frames_s32() - - drwav_open_and_read_pcm_frames_f32() - - drwav_open_file_and_read_pcm_frames_s16() - - drwav_open_file_and_read_pcm_frames_s32() - - drwav_open_file_and_read_pcm_frames_f32() - - drwav_open_file_and_read_pcm_frames_s16_w() - - drwav_open_file_and_read_pcm_frames_s32_w() - - drwav_open_file_and_read_pcm_frames_f32_w() - - drwav_open_memory_and_read_pcm_frames_s16() - - drwav_open_memory_and_read_pcm_frames_s32() - - drwav_open_memory_and_read_pcm_frames_f32() - -v0.10.1 - 2019-08-31 - - Correctly handle partial trailing ADPCM blocks. - -v0.10.0 - 2019-08-04 - - Remove deprecated APIs. - - Add wchar_t variants for file loading APIs: - drwav_init_file_w() - drwav_init_file_ex_w() - drwav_init_file_write_w() - drwav_init_file_write_sequential_w() - - Add drwav_target_write_size_bytes() which calculates the total size in bytes of a WAV file given a format and sample count. - - Add APIs for specifying the PCM frame count instead of the sample count when opening in sequential write mode: - drwav_init_write_sequential_pcm_frames() - drwav_init_file_write_sequential_pcm_frames() - drwav_init_file_write_sequential_pcm_frames_w() - drwav_init_memory_write_sequential_pcm_frames() - - Deprecate drwav_open*() and drwav_close(): - drwav_open() - drwav_open_ex() - drwav_open_write() - drwav_open_write_sequential() - drwav_open_file() - drwav_open_file_ex() - drwav_open_file_write() - drwav_open_file_write_sequential() - drwav_open_memory() - drwav_open_memory_ex() - drwav_open_memory_write() - drwav_open_memory_write_sequential() - drwav_close() - - Minor documentation updates. - -v0.9.2 - 2019-05-21 - - Fix warnings. - -v0.9.1 - 2019-05-05 - - Add support for C89. - - Change license to choice of public domain or MIT-0. - -v0.9.0 - 2018-12-16 - - API CHANGE: Add new reading APIs for reading by PCM frames instead of samples. Old APIs have been deprecated and - will be removed in v0.10.0. Deprecated APIs and their replacements: - drwav_read() -> drwav_read_pcm_frames() - drwav_read_s16() -> drwav_read_pcm_frames_s16() - drwav_read_f32() -> drwav_read_pcm_frames_f32() - drwav_read_s32() -> drwav_read_pcm_frames_s32() - drwav_seek_to_sample() -> drwav_seek_to_pcm_frame() - drwav_write() -> drwav_write_pcm_frames() - drwav_open_and_read_s16() -> drwav_open_and_read_pcm_frames_s16() - drwav_open_and_read_f32() -> drwav_open_and_read_pcm_frames_f32() - drwav_open_and_read_s32() -> drwav_open_and_read_pcm_frames_s32() - drwav_open_file_and_read_s16() -> drwav_open_file_and_read_pcm_frames_s16() - drwav_open_file_and_read_f32() -> drwav_open_file_and_read_pcm_frames_f32() - drwav_open_file_and_read_s32() -> drwav_open_file_and_read_pcm_frames_s32() - drwav_open_memory_and_read_s16() -> drwav_open_memory_and_read_pcm_frames_s16() - drwav_open_memory_and_read_f32() -> drwav_open_memory_and_read_pcm_frames_f32() - drwav_open_memory_and_read_s32() -> drwav_open_memory_and_read_pcm_frames_s32() - drwav::totalSampleCount -> drwav::totalPCMFrameCount - - API CHANGE: Rename drwav_open_and_read_file_*() to drwav_open_file_and_read_*(). - - API CHANGE: Rename drwav_open_and_read_memory_*() to drwav_open_memory_and_read_*(). - - Add built-in support for smpl chunks. - - Add support for firing a callback for each chunk in the file at initialization time. - - This is enabled through the drwav_init_ex(), etc. family of APIs. - - Handle invalid FMT chunks more robustly. - -v0.8.5 - 2018-09-11 - - Const correctness. - - Fix a potential stack overflow. - -v0.8.4 - 2018-08-07 - - Improve 64-bit detection. - -v0.8.3 - 2018-08-05 - - Fix C++ build on older versions of GCC. - -v0.8.2 - 2018-08-02 - - Fix some big-endian bugs. - -v0.8.1 - 2018-06-29 - - Add support for sequential writing APIs. - - Disable seeking in write mode. - - Fix bugs with Wave64. - - Fix typos. - -v0.8 - 2018-04-27 - - Bug fix. - - Start using major.minor.revision versioning. - -v0.7f - 2018-02-05 - - Restrict ADPCM formats to a maximum of 2 channels. - -v0.7e - 2018-02-02 - - Fix a crash. - -v0.7d - 2018-02-01 - - Fix a crash. - -v0.7c - 2018-02-01 - - Set drwav.bytesPerSample to 0 for all compressed formats. - - Fix a crash when reading 16-bit floating point WAV files. In this case dr_wav will output silence for - all format conversion reading APIs (*_s16, *_s32, *_f32 APIs). - - Fix some divide-by-zero errors. - -v0.7b - 2018-01-22 - - Fix errors with seeking of compressed formats. - - Fix compilation error when DR_WAV_NO_CONVERSION_API - -v0.7a - 2017-11-17 - - Fix some GCC warnings. - -v0.7 - 2017-11-04 - - Add writing APIs. - -v0.6 - 2017-08-16 - - API CHANGE: Rename dr_* types to drwav_*. - - Add support for custom implementations of malloc(), realloc(), etc. - - Add support for Microsoft ADPCM. - - Add support for IMA ADPCM (DVI, format code 0x11). - - Optimizations to drwav_read_s16(). - - Bug fixes. - -v0.5g - 2017-07-16 - - Change underlying type for booleans to unsigned. - -v0.5f - 2017-04-04 - - Fix a minor bug with drwav_open_and_read_s16() and family. - -v0.5e - 2016-12-29 - - Added support for reading samples as signed 16-bit integers. Use the _s16() family of APIs for this. - - Minor fixes to documentation. - -v0.5d - 2016-12-28 - - Use drwav_int* and drwav_uint* sized types to improve compiler support. - -v0.5c - 2016-11-11 - - Properly handle JUNK chunks that come before the FMT chunk. - -v0.5b - 2016-10-23 - - A minor change to drwav_bool8 and drwav_bool32 types. - -v0.5a - 2016-10-11 - - Fixed a bug with drwav_open_and_read() and family due to incorrect argument ordering. - - Improve A-law and mu-law efficiency. - -v0.5 - 2016-09-29 - - API CHANGE. Swap the order of "channels" and "sampleRate" parameters in drwav_open_and_read*(). Rationale for this is to - keep it consistent with dr_audio and dr_flac. - -v0.4b - 2016-09-18 - - Fixed a typo in documentation. - -v0.4a - 2016-09-18 - - Fixed a typo. - - Change date format to ISO 8601 (YYYY-MM-DD) - -v0.4 - 2016-07-13 - - API CHANGE. Make onSeek consistent with dr_flac. - - API CHANGE. Rename drwav_seek() to drwav_seek_to_sample() for clarity and consistency with dr_flac. - - Added support for Sony Wave64. - -v0.3a - 2016-05-28 - - API CHANGE. Return drwav_bool32 instead of int in onSeek callback. - - Fixed a memory leak. - -v0.3 - 2016-05-22 - - Lots of API changes for consistency. - -v0.2a - 2016-05-16 - - Fixed Linux/GCC build. - -v0.2 - 2016-05-11 - - Added support for reading data as signed 32-bit PCM for consistency with dr_flac. - -v0.1a - 2016-05-07 - - Fixed a bug in drwav_open_file() where the file handle would not be closed if the loader failed to initialize. - -v0.1 - 2016-05-04 - - Initial versioned release. -*/ - -/* -This software is available as a choice of the following licenses. Choose -whichever you prefer. - -=============================================================================== -ALTERNATIVE 1 - Public Domain (www.unlicense.org) -=============================================================================== -This is free and unencumbered software released into the public domain. - -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. - -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -For more information, please refer to - -=============================================================================== -ALTERNATIVE 2 - MIT No Attribution -=============================================================================== -Copyright 2020 David Reid - -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/origin.txt b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/origin.txt deleted file mode 100644 index b986d102..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/origin.txt +++ /dev/null @@ -1 +0,0 @@ -All music instrument samples were downloaded from http://www.philharmonia.co.uk/explore/sound_samples diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_forte.wav b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_forte.wav deleted file mode 100644 index 0e99fbd4..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_forte.wav and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_forte_stereo.wav b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_forte_stereo.wav deleted file mode 100644 index 159e79a8..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_forte_stereo.wav and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_fortissimo.wav b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_fortissimo.wav deleted file mode 100644 index 411fc830..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_fortissimo.wav and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_fortissimo_stereo.wav b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_fortissimo_stereo.wav deleted file mode 100644 index d86cd580..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_fortissimo_stereo.wav and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_mezzoforte.wav b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_mezzoforte.wav deleted file mode 100644 index c8b09dad..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_mezzoforte.wav and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_mezzoforte_stereo.wav b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_mezzoforte_stereo.wav deleted file mode 100644 index 5ebe9061..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/resources/snaredrum_mezzoforte_stereo.wav and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/wavs.cpp b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/wavs.cpp deleted file mode 100644 index af2e4132..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/wavs.cpp +++ /dev/null @@ -1,42 +0,0 @@ -#define DR_WAV_IMPLEMENTATION -#include "wavs.h" - -#ifndef RESOURCE_PATH -#ifdef _MSC_VER -#define RESOURCE_PATH "../../utils/wavcommon/resources" -#else -#define RESOURCE_PATH "utils/wavcommon/resources" -#endif -#endif - -const char *audio_sample_filenames[] = -{ - RESOURCE_PATH"/snaredrum_forte.wav", - RESOURCE_PATH"/snaredrum_fortissimo.wav", - RESOURCE_PATH"/snaredrum_mezzoforte.wav", -}; - -const char *audio_stereo_filenames[] = -{ - RESOURCE_PATH"/snaredrum_forte_stereo.wav", - RESOURCE_PATH"/snaredrum_fortissimo_stereo.wav", - RESOURCE_PATH"/snaredrum_mezzoforte_stereo.wav", -}; - -float* WAVS_Open( - AudioSampleWave sample, - bool stereo, - unsigned int *wav_channels, - unsigned int *wav_samplerate, - drwav_uint64 *wav_sample_count -) { - return drwav_open_file_and_read_pcm_frames_f32( - (!stereo) ? - audio_sample_filenames[sample] : - audio_stereo_filenames[sample], - wav_channels, - wav_samplerate, - wav_sample_count, - NULL - ); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/wavs.h b/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/wavs.h deleted file mode 100644 index 61b5ce43..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/utils/wavcommon/wavs.h +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef WAVS_H -#define WAVS_H - -#include -#include "dr_wav.h" - -typedef enum -{ - AudioWave_SnareDrum01 = 0, - AudioWave_SnareDrum02, - AudioWave_SnareDrum03, -} AudioSampleWave; - -float* WAVS_Open( - AudioSampleWave sample, - bool stereo, - unsigned int *wav_channels, - unsigned int *wav_samplerate, - drwav_uint64 *wav_sample_count -); - -#endif /* WAVS_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/FAudio.sln b/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/FAudio.sln deleted file mode 100644 index 32c3553a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/FAudio.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27004.2008 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FAudio", "FAudio.vcxproj", "{208F0A10-10FE-4C43-990F-3569169B1083}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {208F0A10-10FE-4C43-990F-3569169B1083}.Debug|x64.ActiveCfg = Debug|x64 - {208F0A10-10FE-4C43-990F-3569169B1083}.Debug|x64.Build.0 = Debug|x64 - {208F0A10-10FE-4C43-990F-3569169B1083}.Release|x64.ActiveCfg = Release|x64 - {208F0A10-10FE-4C43-990F-3569169B1083}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {6B531C65-9FF2-4E6A-95D7-EEB3D9D46633} - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/FAudio.vcxproj b/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/FAudio.vcxproj deleted file mode 100644 index b3cb769c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/FAudio.vcxproj +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {208f0a10-10fe-4c43-990f-3569169b1083} - DynamicLibrary - FAudio - en-US - 14.0 - true - Windows Store - 10.0.10240.0 - 10.0.10240.0 - 10.0 - - - - DynamicLibrary - true - v141 - - - DynamicLibrary - false - true - v141 - - - - - - - - - - - - - - - - false - false - ..\..\SDL2\include;..\include;$(IncludePath) - ..\..\SDL2\VisualC-WinRT\$(Platform)\$(Configuration)\SDL-UWP;$(LibraryPath) - - - false - false - ..\..\SDL2\include;..\include;$(IncludePath) - ..\..\SDL2\VisualC-WinRT\$(Platform)\$(Configuration)\SDL-UWP;$(LibraryPath) - - - - NotUsing - false - _WINDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - false - false - WindowsApp.lib;SDL2.lib;%(AdditionalDependencies) - - - - - NotUsing - false - _WINDLL;_CRT_SECURE_NO_WARNINGS;FAUDIO_DISABLE_DEBUGCONFIGURATION;%(PreprocessorDefinitions) - - - Console - false - false - WindowsApp.lib;SDL2.lib;%(AdditionalDependencies) - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/README b/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/README deleted file mode 100644 index 870e63d7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc-winrt/README +++ /dev/null @@ -1,19 +0,0 @@ -Building FAudio for UWP ------------------------ -FAudio uses Visual Studio 2017 to build on Xbox One. - -Dependencies ------------- -Before building, download SDL2's source code from SDL's website: - -http://libsdl.org/download-2.0.php - -Extract the ZIP file's SDL2 directory (called something like 'SDL2-2.0.8') as -a sibling to your FAudio checkout and rename it to 'SDL2', so that you have -directories named 'FAudio' and 'SDL2' next to each other. - -Compiling ---------- -1. Build SDL2/VisualC-WinRT/UWP_VS2015/SDL-UWP.sln -2. Build FAudio.sln -3. Grab FAudio.dll and SDL2.dll, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/FAudio.sln b/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/FAudio.sln deleted file mode 100644 index ecd6cc65..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/FAudio.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FAudio", "FAudio.vcxproj", "{90A103EF-E403-47D4-BBBB-0F206B9FA7F2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|Win32.ActiveCfg = Debug|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|Win32.Build.0 = Debug|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|Win32.ActiveCfg = Release|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|Win32.Build.0 = Release|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|x64.ActiveCfg = Debug|x64 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|x64.Build.0 = Debug|x64 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|x64.ActiveCfg = Release|x64 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/FAudio.vcxproj b/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/FAudio.vcxproj deleted file mode 100644 index 573dcdf2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/FAudio.vcxproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2} - FAudio - - - - DynamicLibrary - true - MultiByte - - - DynamicLibrary - false - true - MultiByte - - - - - - - - - - ..\..\SDL2\include;..\include;$(IncludePath) - ..\..\SDL2\lib\$(PlatformShortName);$(LibraryPath) - - - - Level3 - Disabled - - - true - SDL2.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - FAUDIO_DISABLE_DEBUGCONFIGURATION;%(PreprocessorDefinitions) - true - true - - - true - true - true - SDL2.lib;%(AdditionalDependencies) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/README b/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/README deleted file mode 100644 index 51c7a685..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FAudio/visualc/README +++ /dev/null @@ -1,20 +0,0 @@ -Building FAudio for Windows ---------------------------- -FAudio uses Visual Studio 2010 to build on Windows. - -TODO: REMOVE C RUNTIME DEPENDENCY! - -Dependencies ------------- -Before building, download SDL2's VC development libraries from SDL's website: - -http://libsdl.org/download-2.0.php - -Extract the ZIP file's SDL2 directory (called something like 'SDL2-2.0.8') as -a sibling to your FAudio checkout and rename it to 'SDL2', so that you have -directories named 'FAudio' and 'SDL2' next to each other. - -Compiling ---------- -1. Build FAudio.sln -2. Grab the output DLL along with SDL2.dll, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/.github/FUNDING.yml b/RE/Commit2/ThirdParty/fna/lib/FNA3D/.github/FUNDING.yml deleted file mode 100644 index aef30d32..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [flibitijibibo] diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/.gitignore b/RE/Commit2/ThirdParty/fna/lib/FNA3D/.gitignore deleted file mode 100644 index eea6f784..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/.gitignore +++ /dev/null @@ -1,13 +0,0 @@ -*.o -*.so -*.dll -*.dylib -.vs/ -obj/ -Debug/ -Release/ -*.vcxproj.user -*.suo -.DS_Store -xcuserdata/ -*.xcworkspace/ \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/.gitmodules b/RE/Commit2/ThirdParty/fna/lib/FNA3D/.gitmodules deleted file mode 100644 index 4240ffc5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/.gitmodules +++ /dev/null @@ -1,7 +0,0 @@ -[submodule "MojoShader"] - path = MojoShader - url = https://github.com/icculus/mojoshader - branch = upstream -[submodule "Vulkan-Headers"] - path = Vulkan-Headers - url = https://github.com/KhronosGroup/Vulkan-Headers diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/CMakeLists.txt b/RE/Commit2/ThirdParty/fna/lib/FNA3D/CMakeLists.txt deleted file mode 100644 index ea35f82a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/CMakeLists.txt +++ /dev/null @@ -1,192 +0,0 @@ -# CMake Project for FNA3D -# Written by @NeroBurner -cmake_minimum_required(VERSION 2.8.12) -project(FNA3D C) - -# Options -option(BUILD_SHARED_LIBS "Build shared library" ON) -option(TRACING_SUPPORT "Build with tracing enabled" OFF) -option(BUILD_DXVK_NATIVE "Enable support for dxvk-native" OFF) - -# Version -SET(LIB_MAJOR_VERSION "0") -SET(LIB_MINOR_VERSION "22") -SET(LIB_REVISION "08") -SET(LIB_VERSION "${LIB_MAJOR_VERSION}.${LIB_MINOR_VERSION}.${LIB_REVISION}") - -# Build Type -if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES) - # By default, we use Release - message(STATUS "Setting build type to 'Release' as none was specified.") - set(CMAKE_BUILD_TYPE "Release" CACHE - STRING "Choose the type of build." FORCE - ) - - # Set the possible values of build type for cmake-gui - set_property(CACHE CMAKE_BUILD_TYPE PROPERTY - STRINGS "Debug" "Release" "RelWithDebInfo" - ) -endif() - -# Platform Flags -if(APPLE) - set(CMAKE_MACOSX_RPATH ON) - set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9) - set(LOBJC "objc") -elseif(WIN32) - # "FNA3D.dll", not "libFNA3D.dll" - set(CMAKE_SHARED_LIBRARY_PREFIX "") -endif() - -# Defines -add_definitions( - -DFNA3D_DRIVER_VULKAN - -DFNA3D_DRIVER_OPENGL -) -add_definitions( - -DMOJOSHADER_NO_VERSION_INCLUDE - -DMOJOSHADER_USE_SDL_STDLIB - -DMOJOSHADER_EFFECT_SUPPORT - -DMOJOSHADER_DEPTH_CLIPPING - -DMOJOSHADER_FLIP_RENDERTARGET - -DMOJOSHADER_XNA4_VERTEX_TEXTURES - -DSUPPORT_PROFILE_ARB1=0 - -DSUPPORT_PROFILE_ARB1_NV=0 - -DSUPPORT_PROFILE_BYTECODE=0 - -DSUPPORT_PROFILE_D3D=0 - -DSUPPORT_PROFILE_METAL=0 -) -if(TRACING_SUPPORT) - add_definitions(-DFNA3D_TRACING) -endif() - -if(WIN32 OR BUILD_DXVK_NATIVE) - add_definitions( - -DFNA3D_DRIVER_D3D11 - ) -else() - add_definitions( - -DSUPPORT_PROFILE_HLSL=0 - ) -endif() - -if(EMSCRIPTEN) - remove_definitions( - -DFNA3D_DRIVER_VULKAN - ) - add_definitions( - -DSUPPORT_PROFILE_GLSPIRV=0 - -DSUPPORT_PROFILE_SPIRV=0 - ) -endif() - -# Source lists -add_library(FNA3D - # Public Headers - include/FNA3D.h - include/FNA3D_Image.h - # Internal Headers - src/FNA3D_Driver.h - src/FNA3D_Driver_OpenGL.h - src/FNA3D_Driver_OpenGL_glfuncs.h - src/FNA3D_Driver_Vulkan_vkfuncs.h - src/FNA3D_PipelineCache.h - # Source Files - src/FNA3D.c - src/FNA3D_Driver_D3D11.c - src/FNA3D_Driver_OpenGL.c - src/FNA3D_Driver_Vulkan.c - src/FNA3D_Image.c - src/FNA3D_PipelineCache.c - src/FNA3D_Tracing.c -) -add_library(mojoshader STATIC - MojoShader/mojoshader.c - MojoShader/mojoshader_effects.c - MojoShader/mojoshader_common.c - MojoShader/mojoshader_d3d11.c - MojoShader/mojoshader_opengl.c - MojoShader/mojoshader_vulkan.c - MojoShader/profiles/mojoshader_profile_common.c - MojoShader/profiles/mojoshader_profile_glsl.c - MojoShader/profiles/mojoshader_profile_hlsl.c - MojoShader/profiles/mojoshader_profile_spirv.c -) -if(TRACING_SUPPORT) - add_executable(fna3d_replay replay/replay.c) - target_link_libraries(fna3d_replay FNA3D) - target_include_directories(fna3d_replay PUBLIC - $ - ) -endif() - -# Build flags -if(NOT MSVC) - set_property(TARGET FNA3D PROPERTY COMPILE_FLAGS "-std=gnu99 -Wall -Wno-strict-aliasing -pedantic") -endif() -if(BUILD_SHARED_LIBS) - set_property(TARGET mojoshader PROPERTY POSITION_INDEPENDENT_CODE ON) -endif() - -# FNA3D folders as includes, for other targets to consume -target_include_directories(FNA3D PUBLIC - $ - $ - $ -) -if(BUILD_DXVK_NATIVE) - add_definitions(-DFNA3D_DXVK_NATIVE) - target_include_directories(FNA3D PUBLIC - $ - $ - $ - ) - target_include_directories(mojoshader PUBLIC - $ - $ - $ - ) -endif() -target_include_directories(mojoshader PUBLIC - $ - $ -) - -# MinGW builds should statically link libgcc -if(MINGW) - target_link_libraries(FNA3D PRIVATE -static-libgcc) -endif() - -# Soname -set_target_properties(FNA3D PROPERTIES OUTPUT_NAME "FNA3D" - VERSION ${LIB_VERSION} - SOVERSION ${LIB_MAJOR_VERSION} -) - -# Internal Dependencies -target_link_libraries(FNA3D PRIVATE mojoshader ${LOBJC}) - -# SDL2 Dependency -if (DEFINED SDL2_INCLUDE_DIRS AND DEFINED SDL2_LIBRARIES) - message(STATUS "using pre-defined SDL2 variables SDL2_INCLUDE_DIRS and SDL2_LIBRARIES") - target_include_directories(FNA3D PUBLIC "$") - target_include_directories(mojoshader PUBLIC "$") - target_link_libraries(FNA3D PUBLIC ${SDL2_LIBRARIES}) -else() - # Only try to autodetect if both SDL2 variables aren't explicitly set - find_package(SDL2 CONFIG) - if (TARGET SDL2::SDL2) - message(STATUS "using TARGET SDL2::SDL2") - target_link_libraries(FNA3D PUBLIC SDL2::SDL2) - target_link_libraries(mojoshader PUBLIC SDL2::SDL2) - elseif (TARGET SDL2) - message(STATUS "using TARGET SDL2") - target_link_libraries(FNA3D PUBLIC SDL2) - target_link_libraries(mojoshader PUBLIC SDL2) - else() - message(STATUS "no TARGET SDL2::SDL2, or SDL2, using variables") - target_include_directories(FNA3D PUBLIC "$") - target_include_directories(mojoshader PUBLIC "$") - target_link_libraries(FNA3D PUBLIC ${SDL2_LIBRARIES}) - endif() -endif() diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/LICENSE b/RE/Commit2/ThirdParty/fna/lib/FNA3D/LICENSE deleted file mode 100644 index 6d532dc6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.github/FUNDING.yml b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.github/FUNDING.yml deleted file mode 100644 index 65c10572..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.github/FUNDING.yml +++ /dev/null @@ -1,2 +0,0 @@ -github: [flibitijibibo, icculus] -patreon: icculus diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.github/workflows/main.yml b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.github/workflows/main.yml deleted file mode 100644 index cbf2666c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.github/workflows/main.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: Build - -on: [push, pull_request] - -jobs: - Build: - name: ${{ matrix.platform.name }} - runs-on: ${{ matrix.platform.os }} - strategy: - matrix: - platform: # !!! FIXME: figure out an efficient way to get SDL2 on the Windows/Mac bots. - - { name: Linux, os: ubuntu-20.04, flags: -GNinja } - - { name: Windows, os: windows-latest } - - { name: MacOS, os: macos-latest } - steps: - - name: Setup Linux dependencies - if: runner.os == 'Linux' - run: | - sudo apt-get update - sudo apt-get install cmake ninja-build libsdl2-dev lemon re2c libvulkan-dev - - name: Get MojoShader sources - uses: actions/checkout@v2 - - name: Configure CMake - run: cmake -B build ${{ matrix.platform.flags }} - - name: Build - run: cmake --build build/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.hgignore b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.hgignore deleted file mode 100644 index 1fb46b38..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/.hgignore +++ /dev/null @@ -1,21 +0,0 @@ -syntax:glob -mojoshader_version.h -mojoshader_parser_hlsl.h -cmake-build -CMakeCache.txt -CMakeFiles -Makefile -cmake_install.cmake -testparse -testoutput -bestprofile -availableprofiles -finderrors -assemble -preprocess -glcaps -*.exe -*.lib -*.a -ps_?_? -vs_?_? diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/CMakeLists.txt b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/CMakeLists.txt deleted file mode 100644 index b85e1bfe..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/CMakeLists.txt +++ /dev/null @@ -1,282 +0,0 @@ -CMAKE_MINIMUM_REQUIRED(VERSION 2.6) -PROJECT(MojoShader) - -INCLUDE(CheckIncludeFile) -CHECK_INCLUDE_FILE(d3d11.h HAS_D3D11_H) -CHECK_INCLUDE_FILE(vulkan/vulkan.h HAS_VULKAN_H) - -OPTION(BUILD_SHARED_LIBS "Build MojoShader as a shared library" OFF) -OPTION(PROFILE_D3D "Build MojoShader with support for the D3D profile" ON) -OPTION(PROFILE_BYTECODE "Build MojoShader with support for the BYTECODE profile" ON) -OPTION(PROFILE_HLSL "Build MojoShader with support for the HLSL profile" HAS_D3D11_H) -OPTION(PROFILE_GLSL120 "Build MojoShader with support for the GLSL120 profile" ON) -OPTION(PROFILE_GLSLES "Build MojoShader with support for the GLSLES profile" ON) -OPTION(PROFILE_GLSL "Build MojoShader with support for the GLSL profile" ON) -OPTION(PROFILE_ARB1 "Build MojoShader with support for the ARB1 profile" ON) -OPTION(PROFILE_ARB1_NV "Build MojoShader with support for the ARB1_NV profile" ON) -OPTION(PROFILE_METAL "Build MojoShader with support for the Metal profile" APPLE) -OPTION(PROFILE_SPIRV "Build MojoShader with support for the SPIR-V profile" HAS_VULKAN_H) -OPTION(PROFILE_GLSPIRV "Build MojoShader with support for the ARB_gl_spirv profile" HAS_VULKAN_H) -OPTION(EFFECT_SUPPORT "Build MojoShader with support for Effect framework files" ON) -OPTION(COMPILER_SUPPORT "Build MojoShader with support for HLSL source files" !WIN32) # TODO: Fix lemon on Windows -OPTION(FLIP_VIEWPORT "Build MojoShader with the ability to flip the GL viewport" OFF) -OPTION(DEPTH_CLIPPING "Build MojoShader with the ability to simulate [0, 1] depth clipping" OFF) -OPTION(XNA4_VERTEXTEXTURE "Build MojoShader with XNA4 vertex texturing behavior" OFF) - -INCLUDE_DIRECTORIES(.) - -# If Mercurial is installed and we are in a mercurial repository, include the rev# and changeset as version information. -FIND_PROGRAM(HG hg DOC "Path to hg command line app: http://www.selenic.com/mercurial/") -IF(NOT HG) - MESSAGE(STATUS "Mercurial (hg) not found. You can go on, but version info will be wrong.") - SET(MOJOSHADER_VERSION -1) - SET(MOJOSHADER_CHANGESET "???") -ELSE(NOT HG) - MARK_AS_ADVANCED(HG) - - # See if we are in an hg repository. - EXECUTE_PROCESS( - COMMAND hg root - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE HGVERSION_RC - ERROR_QUIET - ) - IF(NOT HGVERSION_RC EQUAL 0) - MESSAGE(STATUS "Mercurial (hg) repository not found. You can go on, but version info will be wrong.") - SET(MOJOSHADER_VERSION -1) - SET(MOJOSHADER_CHANGESET "???") - ELSE(NOT HGVERSION_RC EQUAL 0) - # Query the rev and changeset. - EXECUTE_PROCESS( - COMMAND hg tip --template {rev} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE HGVERSION_RC - OUTPUT_VARIABLE MOJOSHADER_VERSION - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - EXECUTE_PROCESS( - COMMAND hg tip --template hg-{rev}:{node|short} - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" - RESULT_VARIABLE HGVERSION_RC - OUTPUT_VARIABLE MOJOSHADER_CHANGESET - ERROR_QUIET - OUTPUT_STRIP_TRAILING_WHITESPACE - ) - ENDIF(NOT HGVERSION_RC EQUAL 0) -ENDIF(NOT HG) - -WRITE_FILE( - "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_version.h" - "/* This file was autogenerated. Do not edit! */\n" - "#ifndef _INCL_MOJOSHADER_VERSION_H_\n" - "#define _INCL_MOJOSHADER_VERSION_H_\n" - "#define MOJOSHADER_VERSION ${MOJOSHADER_VERSION}\n" - "#define MOJOSHADER_CHANGESET \"${MOJOSHADER_CHANGESET}\"\n" - "#endif\n" -) - -IF(CMAKE_COMPILER_IS_GNUCC) - ADD_DEFINITIONS(-Wall -ggdb3) -ENDIF(CMAKE_COMPILER_IS_GNUCC) - -# testparse uses this when I'm looking at memory usage patterns. -#ADD_DEFINITIONS(-DMOJOSHADER_DEBUG_MALLOC=1) - -IF(MSVC) - ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS=1) - ADD_DEFINITIONS(-TP) # force .c files to compile as C++. -ENDIF(MSVC) - -# We build lemon, then use it to generate parser C code. -IF(COMPILER_SUPPORT) - ADD_EXECUTABLE(lemon "misc/lemon.c") - ADD_CUSTOM_COMMAND( - OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.h" - MAIN_DEPENDENCY "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.lemon" - DEPENDS lemon "${CMAKE_CURRENT_SOURCE_DIR}/misc/lempar.c" - COMMAND lemon - ARGS -q "-T${CMAKE_CURRENT_SOURCE_DIR}/misc/lempar.c" "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.lemon" - ) -ENDIF(COMPILER_SUPPORT) - -IF(APPLE) - IF(NOT IOS) - find_library(CARBON_FRAMEWORK Carbon) # Stupid Gestalt. - ENDIF(NOT IOS) -ENDIF(APPLE) - -IF(NOT PROFILE_D3D) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_D3D=0) -ENDIF(NOT PROFILE_D3D) -IF(NOT PROFILE_BYTECODE) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_BYTECODE=0) -ENDIF(NOT PROFILE_BYTECODE) -IF(NOT PROFILE_HLSL) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_HLSL=0) -ENDIF(NOT PROFILE_HLSL) -IF(NOT PROFILE_GLSL120) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_GLSL120=0) -ENDIF(NOT PROFILE_GLSL120) -IF(NOT PROFILE_GLSLES) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_GLSLES=0) -ENDIF(NOT PROFILE_GLSLES) -IF(NOT PROFILE_GLSL) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_GLSL=0) -ENDIF(NOT PROFILE_GLSL) -IF(NOT PROFILE_ARB1) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_ARB1=0) -ENDIF(NOT PROFILE_ARB1) -IF(NOT PROFILE_ARB1_NV) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_ARB1_NV=0) -ENDIF(NOT PROFILE_ARB1_NV) -IF(NOT PROFILE_METAL) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_METAL=0) -ELSE(NOT PROFILE_METAL) - SET(LOBJC -lobjc) -ENDIF(NOT PROFILE_METAL) -IF(NOT PROFILE_SPIRV) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_SPIRV=0) -ENDIF(NOT PROFILE_SPIRV) -IF(NOT PROFILE_GLSPIRV) - ADD_DEFINITIONS(-DSUPPORT_PROFILE_GLSPIRV=0) -ENDIF(NOT PROFILE_GLSPIRV) - -IF(EFFECT_SUPPORT) - IF(UNIX) - SET(LIBM -lm) - ENDIF(UNIX) - ADD_DEFINITIONS(-DMOJOSHADER_EFFECT_SUPPORT) -ENDIF(EFFECT_SUPPORT) - -IF(FLIP_VIEWPORT) - ADD_DEFINITIONS(-DMOJOSHADER_FLIP_RENDERTARGET) -ENDIF(FLIP_VIEWPORT) - -IF(DEPTH_CLIPPING) - ADD_DEFINITIONS(-DMOJOSHADER_DEPTH_CLIPPING) -ENDIF(DEPTH_CLIPPING) - -IF(XNA4_VERTEXTEXTURE) - ADD_DEFINITIONS(-DMOJOSHADER_XNA4_VERTEX_TEXTURES) -ENDIF(XNA4_VERTEXTEXTURE) - -ADD_LIBRARY(mojoshader - mojoshader.c - mojoshader_common.c - mojoshader_opengl.c - mojoshader_metal.c - mojoshader_d3d11.c - mojoshader_vulkan.c - profiles/mojoshader_profile_arb1.c - profiles/mojoshader_profile_bytecode.c - profiles/mojoshader_profile_d3d.c - profiles/mojoshader_profile_hlsl.c - profiles/mojoshader_profile_glsl.c - profiles/mojoshader_profile_metal.c - profiles/mojoshader_profile_spirv.c - profiles/mojoshader_profile_common.c -) -IF(EFFECT_SUPPORT) - TARGET_SOURCES(mojoshader PRIVATE - mojoshader_effects.c - ) -ENDIF(EFFECT_SUPPORT) -IF(COMPILER_SUPPORT) - TARGET_SOURCES(mojoshader PRIVATE - mojoshader_compiler.c - mojoshader_preprocessor.c - mojoshader_lexer.c - mojoshader_assembler.c - ) -ENDIF(COMPILER_SUPPORT) -IF(BUILD_SHARED_LIBS) - TARGET_LINK_LIBRARIES(mojoshader ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) -ENDIF(BUILD_SHARED_LIBS) - -# These are fallback paths for Vulkan/D3D11, try to have this on the system instead! -TARGET_INCLUDE_DIRECTORIES(mojoshader PUBLIC - $ - $ - $ - $ -) - -SET_SOURCE_FILES_PROPERTIES( - mojoshader_compiler.c - PROPERTIES OBJECT_DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_parser_hlsl.h" -) - -FIND_PROGRAM(RE2C re2c DOC "Path to re2c command line app: http://re2c.org/") -IF(NOT RE2C) - MESSAGE(STATUS "re2c missing. You can go on, but can't rebuild the lexer.") -ELSE(NOT RE2C) - MARK_AS_ADVANCED(RE2C) - ADD_CUSTOM_COMMAND( - OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_lexer.c" - DEPENDS mojoshader_lexer.re - COMMAND "${RE2C}" - ARGS -is --no-generation-date -o "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_lexer.c" "${CMAKE_CURRENT_SOURCE_DIR}/mojoshader_lexer.re" - ) -ENDIF(NOT RE2C) - -find_path(SDL2_INCLUDE_DIR SDL.h PATH_SUFFIXES include/SDL2) -find_library(SDL2 NAMES SDL2 PATH_SUFFIXES lib) -IF(SDL2) - INCLUDE_DIRECTORIES(${SDL2_INCLUDE_DIR}) - ADD_EXECUTABLE(glcaps utils/glcaps.c) - TARGET_LINK_LIBRARIES(glcaps ${SDL2} ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) - ADD_EXECUTABLE(bestprofile utils/bestprofile.c) - TARGET_LINK_LIBRARIES(bestprofile mojoshader ${SDL2} ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) - ADD_EXECUTABLE(availableprofiles utils/availableprofiles.c) - TARGET_LINK_LIBRARIES(availableprofiles mojoshader ${SDL2} ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) - ADD_EXECUTABLE(testglcompile utils/testglcompile.c) - TARGET_LINK_LIBRARIES(testglcompile mojoshader ${SDL2} ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) -ENDIF(SDL2) - -IF(COMPILER_SUPPORT) - ADD_EXECUTABLE(finderrors utils/finderrors.c) - IF(SDL2) - TARGET_LINK_LIBRARIES(finderrors mojoshader ${SDL2} ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) - SET_SOURCE_FILES_PROPERTIES( - utils/finderrors.c - PROPERTIES COMPILE_FLAGS "-DFINDERRORS_COMPILE_SHADERS=1" - ) - ELSE(SDL2) - TARGET_LINK_LIBRARIES(finderrors mojoshader ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) - ENDIF(SDL2) -ENDIF(COMPILER_SUPPORT) - -FIND_PATH(SPIRV_TOOLS_INCLUDE_DIR "spirv-tools/libspirv.h" PATH_SUFFIXES "include") -FIND_LIBRARY(SPIRV_TOOLS_LIBRARY NAMES SPIRV-Tools-shared) -IF(SPIRV_TOOLS_INCLUDE_DIR AND SPIRV_TOOLS_LIBRARY) - INCLUDE_DIRECTORIES(${SPIRV_TOOLS_INCLUDE_DIR}) - ADD_DEFINITIONS(-DMOJOSHADER_HAS_SPIRV_TOOLS) -ENDIF(SPIRV_TOOLS_INCLUDE_DIR AND SPIRV_TOOLS_LIBRARY) - -ADD_EXECUTABLE(testparse utils/testparse.c) -TARGET_LINK_LIBRARIES(testparse mojoshader ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) -IF(SPIRV_TOOLS_INCLUDE_DIR AND SPIRV_TOOLS_LIBRARY) - TARGET_LINK_LIBRARIES(testparse ${SPIRV_TOOLS_LIBRARY}) -ENDIF(SPIRV_TOOLS_INCLUDE_DIR AND SPIRV_TOOLS_LIBRARY) -ADD_EXECUTABLE(testoutput utils/testoutput.c) -TARGET_LINK_LIBRARIES(testoutput mojoshader ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) -IF(COMPILER_SUPPORT) - ADD_EXECUTABLE(mojoshader-compiler utils/mojoshader-compiler.c) - TARGET_LINK_LIBRARIES(mojoshader-compiler mojoshader ${LIBM} ${LOBJC} ${CARBON_FRAMEWORK}) -ENDIF(COMPILER_SUPPORT) - -# Unit tests... -IF(COMPILER_SUPPORT) - ADD_CUSTOM_TARGET( - test - COMMAND "${CMAKE_CURRENT_SOURCE_DIR}/unit_tests/run_tests.pl" - WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" - DEPENDS mojoshader-compiler - COMMENT "Running unit tests..." - VERBATIM - ) -ENDIF(COMPILER_SUPPORT) - -# End of CMakeLists.txt ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/GL/gl.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/GL/gl.h deleted file mode 100644 index 914e645b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/GL/gl.h +++ /dev/null @@ -1,1637 +0,0 @@ -#ifndef __gl_h_ -#define __gl_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright 1998-2002, NVIDIA Corporation. -** All Rights Reserved. -** -** THE INFORMATION CONTAINED HEREIN IS PROPRIETARY AND CONFIDENTIAL TO -** NVIDIA, CORPORATION. USE, REPRODUCTION OR DISCLOSURE TO ANY THIRD PARTY -** IS SUBJECT TO WRITTEN PRE-APPROVAL BY NVIDIA, CORPORATION. -** -** -** Copyright 1992-1999, Silicon Graphics, Inc. -** All Rights Reserved. -** -** Portions of this file are UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon -** Graphics, Inc.; the contents of this file may not be disclosed to third -** parties, copied or duplicated in any form, in whole or in part, without -** the prior written permission of Silicon Graphics, Inc. -** -** RESTRICTED RIGHTS LEGEND: -** Use, duplication or disclosure by the Government is subject to -** restrictions as set forth in subdivision (c)(1)(ii) of the Rights in -** Technical Data and Computer Software clause at DFARS 252.227-7013, -** and/or in similar or successor clauses in the FAR, DOD or NASA FAR -** Supplement. Unpublished - rights reserved under the Copyright Laws of -** the United States. -*/ - -#ifndef APIENTRY -#define APIENTRY -#endif - -#ifndef WIN32 -#define WINGDIAPI -#endif - -#ifndef GLAPI -# ifdef _WIN32 -# define GLAPI __stdcall -# else -# define GLAPI -# endif -# define __DEFINED_GLAPI -#endif - -/*************************************************************/ - -typedef unsigned int GLenum; -typedef unsigned char GLboolean; -typedef unsigned int GLbitfield; -typedef signed char GLbyte; -typedef short GLshort; -typedef int GLint; -typedef int GLsizei; -typedef unsigned char GLubyte; -typedef unsigned short GLushort; -typedef unsigned int GLuint; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef double GLclampd; -typedef void GLvoid; - - -/*************************************************************/ - -/* Version */ -#define GL_VERSION_1_1 1 - -/* AttribMask */ -#define GL_CURRENT_BIT 0x00000001 -#define GL_POINT_BIT 0x00000002 -#define GL_LINE_BIT 0x00000004 -#define GL_POLYGON_BIT 0x00000008 -#define GL_POLYGON_STIPPLE_BIT 0x00000010 -#define GL_PIXEL_MODE_BIT 0x00000020 -#define GL_LIGHTING_BIT 0x00000040 -#define GL_FOG_BIT 0x00000080 -#define GL_DEPTH_BUFFER_BIT 0x00000100 -#define GL_ACCUM_BUFFER_BIT 0x00000200 -#define GL_STENCIL_BUFFER_BIT 0x00000400 -#define GL_VIEWPORT_BIT 0x00000800 -#define GL_TRANSFORM_BIT 0x00001000 -#define GL_ENABLE_BIT 0x00002000 -#define GL_COLOR_BUFFER_BIT 0x00004000 -#define GL_HINT_BIT 0x00008000 -#define GL_EVAL_BIT 0x00010000 -#define GL_LIST_BIT 0x00020000 -#define GL_TEXTURE_BIT 0x00040000 -#define GL_SCISSOR_BIT 0x00080000 -#define GL_ALL_ATTRIB_BITS 0xFFFFFFFF - -/* ClearBufferMask */ -/* GL_COLOR_BUFFER_BIT */ -/* GL_ACCUM_BUFFER_BIT */ -/* GL_STENCIL_BUFFER_BIT */ -/* GL_DEPTH_BUFFER_BIT */ - -/* ClientAttribMask */ -#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 -#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 -#define GL_CLIENT_ALL_ATTRIB_BITS 0xFFFFFFFF - -/* Boolean */ -#define GL_FALSE 0 -#define GL_TRUE 1 - -/* BeginMode */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_LOOP 0x0002 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 -#define GL_TRIANGLE_FAN 0x0006 -#define GL_QUADS 0x0007 -#define GL_QUAD_STRIP 0x0008 -#define GL_POLYGON 0x0009 - -/* AccumOp */ -#define GL_ACCUM 0x0100 -#define GL_LOAD 0x0101 -#define GL_RETURN 0x0102 -#define GL_MULT 0x0103 -#define GL_ADD 0x0104 - -/* AlphaFunction */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 - -/* BlendingFactorDest */ -#define GL_ZERO 0 -#define GL_ONE 1 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 - -/* BlendingFactorSrc */ -/* GL_ZERO */ -/* GL_ONE */ -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -/* GL_SRC_ALPHA */ -/* GL_ONE_MINUS_SRC_ALPHA */ -/* GL_DST_ALPHA */ -/* GL_ONE_MINUS_DST_ALPHA */ - -/* ColorMaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* ColorMaterialParameter */ -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ -/* GL_EMISSION */ -/* GL_AMBIENT_AND_DIFFUSE */ - -/* ColorPointerType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* CullFaceMode */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* DepthFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* DrawBufferMode */ -#define GL_NONE 0 -#define GL_FRONT_LEFT 0x0400 -#define GL_FRONT_RIGHT 0x0401 -#define GL_BACK_LEFT 0x0402 -#define GL_BACK_RIGHT 0x0403 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_LEFT 0x0406 -#define GL_RIGHT 0x0407 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_AUX0 0x0409 -#define GL_AUX1 0x040A -#define GL_AUX2 0x040B -#define GL_AUX3 0x040C - -/* EnableCap */ -/* GL_FOG */ -/* GL_LIGHTING */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -/* GL_LINE_STIPPLE */ -/* GL_POLYGON_STIPPLE */ -/* GL_CULL_FACE */ -/* GL_ALPHA_TEST */ -/* GL_BLEND */ -/* GL_INDEX_LOGIC_OP */ -/* GL_COLOR_LOGIC_OP */ -/* GL_DITHER */ -/* GL_STENCIL_TEST */ -/* GL_DEPTH_TEST */ -/* GL_CLIP_PLANE0 */ -/* GL_CLIP_PLANE1 */ -/* GL_CLIP_PLANE2 */ -/* GL_CLIP_PLANE3 */ -/* GL_CLIP_PLANE4 */ -/* GL_CLIP_PLANE5 */ -/* GL_LIGHT0 */ -/* GL_LIGHT1 */ -/* GL_LIGHT2 */ -/* GL_LIGHT3 */ -/* GL_LIGHT4 */ -/* GL_LIGHT5 */ -/* GL_LIGHT6 */ -/* GL_LIGHT7 */ -/* GL_TEXTURE_GEN_S */ -/* GL_TEXTURE_GEN_T */ -/* GL_TEXTURE_GEN_R */ -/* GL_TEXTURE_GEN_Q */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_POINT_SMOOTH */ -/* GL_LINE_SMOOTH */ -/* GL_POLYGON_SMOOTH */ -/* GL_SCISSOR_TEST */ -/* GL_COLOR_MATERIAL */ -/* GL_NORMALIZE */ -/* GL_AUTO_NORMAL */ -/* GL_POLYGON_OFFSET_POINT */ -/* GL_POLYGON_OFFSET_LINE */ -/* GL_POLYGON_OFFSET_FILL */ -/* GL_VERTEX_ARRAY */ -/* GL_NORMAL_ARRAY */ -/* GL_COLOR_ARRAY */ -/* GL_INDEX_ARRAY */ -/* GL_TEXTURE_COORD_ARRAY */ -/* GL_EDGE_FLAG_ARRAY */ - -/* ErrorCode */ -#define GL_NO_ERROR 0 -#define GL_INVALID_ENUM 0x0500 -#define GL_INVALID_VALUE 0x0501 -#define GL_INVALID_OPERATION 0x0502 -#define GL_STACK_OVERFLOW 0x0503 -#define GL_STACK_UNDERFLOW 0x0504 -#define GL_OUT_OF_MEMORY 0x0505 -#define GL_TABLE_TOO_LARGE 0x8031 - -/* FeedbackType */ -#define GL_2D 0x0600 -#define GL_3D 0x0601 -#define GL_3D_COLOR 0x0602 -#define GL_3D_COLOR_TEXTURE 0x0603 -#define GL_4D_COLOR_TEXTURE 0x0604 - -/* FeedBackToken */ -#define GL_PASS_THROUGH_TOKEN 0x0700 -#define GL_POINT_TOKEN 0x0701 -#define GL_LINE_TOKEN 0x0702 -#define GL_POLYGON_TOKEN 0x0703 -#define GL_BITMAP_TOKEN 0x0704 -#define GL_DRAW_PIXEL_TOKEN 0x0705 -#define GL_COPY_PIXEL_TOKEN 0x0706 -#define GL_LINE_RESET_TOKEN 0x0707 - -/* FogMode */ -/* GL_LINEAR */ -#define GL_EXP 0x0800 -#define GL_EXP2 0x0801 - -/* FogParameter */ -/* GL_FOG_COLOR */ -/* GL_FOG_DENSITY */ -/* GL_FOG_END */ -/* GL_FOG_INDEX */ -/* GL_FOG_MODE */ -/* GL_FOG_START */ - -/* FrontFaceDirection */ -#define GL_CW 0x0900 -#define GL_CCW 0x0901 - -/* GetMapQuery */ -#define GL_COEFF 0x0A00 -#define GL_ORDER 0x0A01 -#define GL_DOMAIN 0x0A02 - -/* GetPixelMap */ -#define GL_PIXEL_MAP_I_TO_I 0x0C70 -#define GL_PIXEL_MAP_S_TO_S 0x0C71 -#define GL_PIXEL_MAP_I_TO_R 0x0C72 -#define GL_PIXEL_MAP_I_TO_G 0x0C73 -#define GL_PIXEL_MAP_I_TO_B 0x0C74 -#define GL_PIXEL_MAP_I_TO_A 0x0C75 -#define GL_PIXEL_MAP_R_TO_R 0x0C76 -#define GL_PIXEL_MAP_G_TO_G 0x0C77 -#define GL_PIXEL_MAP_B_TO_B 0x0C78 -#define GL_PIXEL_MAP_A_TO_A 0x0C79 - -/* GetPointervPName */ -#define GL_VERTEX_ARRAY_POINTER 0x808E -#define GL_NORMAL_ARRAY_POINTER 0x808F -#define GL_COLOR_ARRAY_POINTER 0x8090 -#define GL_INDEX_ARRAY_POINTER 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 - -/* GetPName */ -#define GL_CURRENT_COLOR 0x0B00 -#define GL_CURRENT_INDEX 0x0B01 -#define GL_CURRENT_NORMAL 0x0B02 -#define GL_CURRENT_TEXTURE_COORDS 0x0B03 -#define GL_CURRENT_RASTER_COLOR 0x0B04 -#define GL_CURRENT_RASTER_INDEX 0x0B05 -#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 -#define GL_CURRENT_RASTER_POSITION 0x0B07 -#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 -#define GL_CURRENT_RASTER_DISTANCE 0x0B09 -#define GL_POINT_SMOOTH 0x0B10 -#define GL_POINT_SIZE 0x0B11 -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_POINT_SIZE_RANGE GL_SMOOTH_POINT_SIZE_RANGE -#define GL_POINT_SIZE_GRANULARITY GL_SMOOTH_POINT_SIZE_GRANULARITY -#define GL_LINE_SMOOTH 0x0B20 -#define GL_LINE_WIDTH 0x0B21 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_LINE_WIDTH_RANGE GL_SMOOTH_LINE_WIDTH_RANGE -#define GL_LINE_WIDTH_GRANULARITY GL_SMOOTH_LINE_WIDTH_GRANULARITY -#define GL_LINE_STIPPLE 0x0B24 -#define GL_LINE_STIPPLE_PATTERN 0x0B25 -#define GL_LINE_STIPPLE_REPEAT 0x0B26 -#define GL_LIST_MODE 0x0B30 -#define GL_MAX_LIST_NESTING 0x0B31 -#define GL_LIST_BASE 0x0B32 -#define GL_LIST_INDEX 0x0B33 -#define GL_POLYGON_MODE 0x0B40 -#define GL_POLYGON_SMOOTH 0x0B41 -#define GL_POLYGON_STIPPLE 0x0B42 -#define GL_EDGE_FLAG 0x0B43 -#define GL_CULL_FACE 0x0B44 -#define GL_CULL_FACE_MODE 0x0B45 -#define GL_FRONT_FACE 0x0B46 -#define GL_LIGHTING 0x0B50 -#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 -#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 -#define GL_LIGHT_MODEL_AMBIENT 0x0B53 -#define GL_SHADE_MODEL 0x0B54 -#define GL_COLOR_MATERIAL_FACE 0x0B55 -#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 -#define GL_COLOR_MATERIAL 0x0B57 -#define GL_FOG 0x0B60 -#define GL_FOG_INDEX 0x0B61 -#define GL_FOG_DENSITY 0x0B62 -#define GL_FOG_START 0x0B63 -#define GL_FOG_END 0x0B64 -#define GL_FOG_MODE 0x0B65 -#define GL_FOG_COLOR 0x0B66 -#define GL_DEPTH_RANGE 0x0B70 -#define GL_DEPTH_TEST 0x0B71 -#define GL_DEPTH_WRITEMASK 0x0B72 -#define GL_DEPTH_CLEAR_VALUE 0x0B73 -#define GL_DEPTH_FUNC 0x0B74 -#define GL_ACCUM_CLEAR_VALUE 0x0B80 -#define GL_STENCIL_TEST 0x0B90 -#define GL_STENCIL_CLEAR_VALUE 0x0B91 -#define GL_STENCIL_FUNC 0x0B92 -#define GL_STENCIL_VALUE_MASK 0x0B93 -#define GL_STENCIL_FAIL 0x0B94 -#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 -#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 -#define GL_STENCIL_REF 0x0B97 -#define GL_STENCIL_WRITEMASK 0x0B98 -#define GL_MATRIX_MODE 0x0BA0 -#define GL_NORMALIZE 0x0BA1 -#define GL_VIEWPORT 0x0BA2 -#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 -#define GL_PROJECTION_STACK_DEPTH 0x0BA4 -#define GL_TEXTURE_STACK_DEPTH 0x0BA5 -#define GL_MODELVIEW_MATRIX 0x0BA6 -#define GL_PROJECTION_MATRIX 0x0BA7 -#define GL_TEXTURE_MATRIX 0x0BA8 -#define GL_ATTRIB_STACK_DEPTH 0x0BB0 -#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 -#define GL_ALPHA_TEST 0x0BC0 -#define GL_ALPHA_TEST_FUNC 0x0BC1 -#define GL_ALPHA_TEST_REF 0x0BC2 -#define GL_DITHER 0x0BD0 -#define GL_BLEND_DST 0x0BE0 -#define GL_BLEND_SRC 0x0BE1 -#define GL_BLEND 0x0BE2 -#define GL_LOGIC_OP_MODE 0x0BF0 -#define GL_INDEX_LOGIC_OP 0x0BF1 -#define GL_LOGIC_OP GL_INDEX_LOGIC_OP -#define GL_COLOR_LOGIC_OP 0x0BF2 -#define GL_AUX_BUFFERS 0x0C00 -#define GL_DRAW_BUFFER 0x0C01 -#define GL_READ_BUFFER 0x0C02 -#define GL_SCISSOR_BOX 0x0C10 -#define GL_SCISSOR_TEST 0x0C11 -#define GL_INDEX_CLEAR_VALUE 0x0C20 -#define GL_INDEX_WRITEMASK 0x0C21 -#define GL_COLOR_CLEAR_VALUE 0x0C22 -#define GL_COLOR_WRITEMASK 0x0C23 -#define GL_INDEX_MODE 0x0C30 -#define GL_RGBA_MODE 0x0C31 -#define GL_DOUBLEBUFFER 0x0C32 -#define GL_STEREO 0x0C33 -#define GL_RENDER_MODE 0x0C40 -#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 -#define GL_POINT_SMOOTH_HINT 0x0C51 -#define GL_LINE_SMOOTH_HINT 0x0C52 -#define GL_POLYGON_SMOOTH_HINT 0x0C53 -#define GL_FOG_HINT 0x0C54 -#define GL_TEXTURE_GEN_S 0x0C60 -#define GL_TEXTURE_GEN_T 0x0C61 -#define GL_TEXTURE_GEN_R 0x0C62 -#define GL_TEXTURE_GEN_Q 0x0C63 -#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 -#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 -#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 -#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 -#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 -#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 -#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 -#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 -#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 -#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 -#define GL_UNPACK_SWAP_BYTES 0x0CF0 -#define GL_UNPACK_LSB_FIRST 0x0CF1 -#define GL_UNPACK_ROW_LENGTH 0x0CF2 -#define GL_UNPACK_SKIP_ROWS 0x0CF3 -#define GL_UNPACK_SKIP_PIXELS 0x0CF4 -#define GL_UNPACK_ALIGNMENT 0x0CF5 -#define GL_PACK_SWAP_BYTES 0x0D00 -#define GL_PACK_LSB_FIRST 0x0D01 -#define GL_PACK_ROW_LENGTH 0x0D02 -#define GL_PACK_SKIP_ROWS 0x0D03 -#define GL_PACK_SKIP_PIXELS 0x0D04 -#define GL_PACK_ALIGNMENT 0x0D05 -#define GL_MAP_COLOR 0x0D10 -#define GL_MAP_STENCIL 0x0D11 -#define GL_INDEX_SHIFT 0x0D12 -#define GL_INDEX_OFFSET 0x0D13 -#define GL_RED_SCALE 0x0D14 -#define GL_RED_BIAS 0x0D15 -#define GL_ZOOM_X 0x0D16 -#define GL_ZOOM_Y 0x0D17 -#define GL_GREEN_SCALE 0x0D18 -#define GL_GREEN_BIAS 0x0D19 -#define GL_BLUE_SCALE 0x0D1A -#define GL_BLUE_BIAS 0x0D1B -#define GL_ALPHA_SCALE 0x0D1C -#define GL_ALPHA_BIAS 0x0D1D -#define GL_DEPTH_SCALE 0x0D1E -#define GL_DEPTH_BIAS 0x0D1F -#define GL_MAX_EVAL_ORDER 0x0D30 -#define GL_MAX_LIGHTS 0x0D31 -#define GL_MAX_CLIP_PLANES 0x0D32 -#define GL_MAX_TEXTURE_SIZE 0x0D33 -#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 -#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 -#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 -#define GL_MAX_NAME_STACK_DEPTH 0x0D37 -#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 -#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 -#define GL_MAX_VIEWPORT_DIMS 0x0D3A -#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B -#define GL_SUBPIXEL_BITS 0x0D50 -#define GL_INDEX_BITS 0x0D51 -#define GL_RED_BITS 0x0D52 -#define GL_GREEN_BITS 0x0D53 -#define GL_BLUE_BITS 0x0D54 -#define GL_ALPHA_BITS 0x0D55 -#define GL_DEPTH_BITS 0x0D56 -#define GL_STENCIL_BITS 0x0D57 -#define GL_ACCUM_RED_BITS 0x0D58 -#define GL_ACCUM_GREEN_BITS 0x0D59 -#define GL_ACCUM_BLUE_BITS 0x0D5A -#define GL_ACCUM_ALPHA_BITS 0x0D5B -#define GL_NAME_STACK_DEPTH 0x0D70 -#define GL_AUTO_NORMAL 0x0D80 -#define GL_MAP1_COLOR_4 0x0D90 -#define GL_MAP1_INDEX 0x0D91 -#define GL_MAP1_NORMAL 0x0D92 -#define GL_MAP1_TEXTURE_COORD_1 0x0D93 -#define GL_MAP1_TEXTURE_COORD_2 0x0D94 -#define GL_MAP1_TEXTURE_COORD_3 0x0D95 -#define GL_MAP1_TEXTURE_COORD_4 0x0D96 -#define GL_MAP1_VERTEX_3 0x0D97 -#define GL_MAP1_VERTEX_4 0x0D98 -#define GL_MAP2_COLOR_4 0x0DB0 -#define GL_MAP2_INDEX 0x0DB1 -#define GL_MAP2_NORMAL 0x0DB2 -#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 -#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 -#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 -#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 -#define GL_MAP2_VERTEX_3 0x0DB7 -#define GL_MAP2_VERTEX_4 0x0DB8 -#define GL_MAP1_GRID_DOMAIN 0x0DD0 -#define GL_MAP1_GRID_SEGMENTS 0x0DD1 -#define GL_MAP2_GRID_DOMAIN 0x0DD2 -#define GL_MAP2_GRID_SEGMENTS 0x0DD3 -#define GL_TEXTURE_1D 0x0DE0 -#define GL_TEXTURE_2D 0x0DE1 -#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 -#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 -#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 -#define GL_SELECTION_BUFFER_POINTER 0x0DF3 -#define GL_SELECTION_BUFFER_SIZE 0x0DF4 -#define GL_POLYGON_OFFSET_UNITS 0x2A00 -#define GL_POLYGON_OFFSET_POINT 0x2A01 -#define GL_POLYGON_OFFSET_LINE 0x2A02 -#define GL_POLYGON_OFFSET_FILL 0x8037 -#define GL_POLYGON_OFFSET_FACTOR 0x8038 -#define GL_TEXTURE_BINDING_1D 0x8068 -#define GL_TEXTURE_BINDING_2D 0x8069 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_VERTEX_ARRAY 0x8074 -#define GL_NORMAL_ARRAY 0x8075 -#define GL_COLOR_ARRAY 0x8076 -#define GL_INDEX_ARRAY 0x8077 -#define GL_TEXTURE_COORD_ARRAY 0x8078 -#define GL_EDGE_FLAG_ARRAY 0x8079 -#define GL_VERTEX_ARRAY_SIZE 0x807A -#define GL_VERTEX_ARRAY_TYPE 0x807B -#define GL_VERTEX_ARRAY_STRIDE 0x807C -#define GL_NORMAL_ARRAY_TYPE 0x807E -#define GL_NORMAL_ARRAY_STRIDE 0x807F -#define GL_COLOR_ARRAY_SIZE 0x8081 -#define GL_COLOR_ARRAY_TYPE 0x8082 -#define GL_COLOR_ARRAY_STRIDE 0x8083 -#define GL_INDEX_ARRAY_TYPE 0x8085 -#define GL_INDEX_ARRAY_STRIDE 0x8086 -#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A -#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C -/* GL_VERTEX_ARRAY_COUNT_EXT */ -/* GL_NORMAL_ARRAY_COUNT_EXT */ -/* GL_COLOR_ARRAY_COUNT_EXT */ -/* GL_INDEX_ARRAY_COUNT_EXT */ -/* GL_TEXTURE_COORD_ARRAY_COUNT_EXT */ -/* GL_EDGE_FLAG_ARRAY_COUNT_EXT */ - -/* GetTextureParameter */ -/* GL_TEXTURE_MAG_FILTER */ -/* GL_TEXTURE_MIN_FILTER */ -/* GL_TEXTURE_WRAP_S */ -/* GL_TEXTURE_WRAP_T */ -#define GL_TEXTURE_WIDTH 0x1000 -#define GL_TEXTURE_HEIGHT 0x1001 -#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 -#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT -#define GL_TEXTURE_BORDER_COLOR 0x1004 -#define GL_TEXTURE_BORDER 0x1005 -#define GL_TEXTURE_RED_SIZE 0x805C -#define GL_TEXTURE_GREEN_SIZE 0x805D -#define GL_TEXTURE_BLUE_SIZE 0x805E -#define GL_TEXTURE_ALPHA_SIZE 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE 0x8061 -#define GL_TEXTURE_PRIORITY 0x8066 -#define GL_TEXTURE_RESIDENT 0x8067 - -/* HintMode */ -#define GL_DONT_CARE 0x1100 -#define GL_FASTEST 0x1101 -#define GL_NICEST 0x1102 - -/* HintTarget */ -/* GL_PERSPECTIVE_CORRECTION_HINT */ -/* GL_POINT_SMOOTH_HINT */ -/* GL_LINE_SMOOTH_HINT */ -/* GL_POLYGON_SMOOTH_HINT */ -/* GL_FOG_HINT */ - -/* IndexMaterialParameterSGI */ -/* GL_INDEX_OFFSET */ - -/* IndexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* IndexFunctionSGI */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* LightModelParameter */ -/* GL_LIGHT_MODEL_AMBIENT */ -/* GL_LIGHT_MODEL_LOCAL_VIEWER */ -/* GL_LIGHT_MODEL_TWO_SIDE */ - -/* LightParameter */ -#define GL_AMBIENT 0x1200 -#define GL_DIFFUSE 0x1201 -#define GL_SPECULAR 0x1202 -#define GL_POSITION 0x1203 -#define GL_SPOT_DIRECTION 0x1204 -#define GL_SPOT_EXPONENT 0x1205 -#define GL_SPOT_CUTOFF 0x1206 -#define GL_CONSTANT_ATTENUATION 0x1207 -#define GL_LINEAR_ATTENUATION 0x1208 -#define GL_QUADRATIC_ATTENUATION 0x1209 - -/* ListMode */ -#define GL_COMPILE 0x1300 -#define GL_COMPILE_AND_EXECUTE 0x1301 - -/* DataType */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_INT 0x1404 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_2_BYTES 0x1407 -#define GL_3_BYTES 0x1408 -#define GL_4_BYTES 0x1409 -#define GL_DOUBLE 0x140A -#define GL_DOUBLE_EXT 0x140A - -/* ListNameType */ -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_2_BYTES */ -/* GL_3_BYTES */ -/* GL_4_BYTES */ - -/* LogicOp */ -#define GL_CLEAR 0x1500 -#define GL_AND 0x1501 -#define GL_AND_REVERSE 0x1502 -#define GL_COPY 0x1503 -#define GL_AND_INVERTED 0x1504 -#define GL_NOOP 0x1505 -#define GL_XOR 0x1506 -#define GL_OR 0x1507 -#define GL_NOR 0x1508 -#define GL_EQUIV 0x1509 -#define GL_INVERT 0x150A -#define GL_OR_REVERSE 0x150B -#define GL_COPY_INVERTED 0x150C -#define GL_OR_INVERTED 0x150D -#define GL_NAND 0x150E -#define GL_SET 0x150F - -/* MapTarget */ -/* GL_MAP1_COLOR_4 */ -/* GL_MAP1_INDEX */ -/* GL_MAP1_NORMAL */ -/* GL_MAP1_TEXTURE_COORD_1 */ -/* GL_MAP1_TEXTURE_COORD_2 */ -/* GL_MAP1_TEXTURE_COORD_3 */ -/* GL_MAP1_TEXTURE_COORD_4 */ -/* GL_MAP1_VERTEX_3 */ -/* GL_MAP1_VERTEX_4 */ -/* GL_MAP2_COLOR_4 */ -/* GL_MAP2_INDEX */ -/* GL_MAP2_NORMAL */ -/* GL_MAP2_TEXTURE_COORD_1 */ -/* GL_MAP2_TEXTURE_COORD_2 */ -/* GL_MAP2_TEXTURE_COORD_3 */ -/* GL_MAP2_TEXTURE_COORD_4 */ -/* GL_MAP2_VERTEX_3 */ -/* GL_MAP2_VERTEX_4 */ - -/* MaterialFace */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_FRONT_AND_BACK */ - -/* MaterialParameter */ -#define GL_EMISSION 0x1600 -#define GL_SHININESS 0x1601 -#define GL_AMBIENT_AND_DIFFUSE 0x1602 -#define GL_COLOR_INDEXES 0x1603 -/* GL_AMBIENT */ -/* GL_DIFFUSE */ -/* GL_SPECULAR */ - -/* MatrixMode */ -#define GL_MODELVIEW 0x1700 -#define GL_PROJECTION 0x1701 -#define GL_TEXTURE 0x1702 - -/* MeshMode1 */ -/* GL_POINT */ -/* GL_LINE */ - -/* MeshMode2 */ -/* GL_POINT */ -/* GL_LINE */ -/* GL_FILL */ - -/* NormalPointerType */ -/* GL_BYTE */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* PixelCopyType */ -#define GL_COLOR 0x1800 -#define GL_DEPTH 0x1801 -#define GL_STENCIL 0x1802 - -/* PixelFormat */ -#define GL_COLOR_INDEX 0x1900 -#define GL_STENCIL_INDEX 0x1901 -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_RED 0x1903 -#define GL_GREEN 0x1904 -#define GL_BLUE 0x1905 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_LUMINANCE 0x1909 -#define GL_LUMINANCE_ALPHA 0x190A -/* GL_ABGR_EXT */ - -/* PixelMap */ -/* GL_PIXEL_MAP_I_TO_I */ -/* GL_PIXEL_MAP_S_TO_S */ -/* GL_PIXEL_MAP_I_TO_R */ -/* GL_PIXEL_MAP_I_TO_G */ -/* GL_PIXEL_MAP_I_TO_B */ -/* GL_PIXEL_MAP_I_TO_A */ -/* GL_PIXEL_MAP_R_TO_R */ -/* GL_PIXEL_MAP_G_TO_G */ -/* GL_PIXEL_MAP_B_TO_B */ -/* GL_PIXEL_MAP_A_TO_A */ - -/* PixelStoreParameter */ -/* GL_UNPACK_SWAP_BYTES */ -/* GL_UNPACK_LSB_FIRST */ -/* GL_UNPACK_ROW_LENGTH */ -/* GL_UNPACK_SKIP_ROWS */ -/* GL_UNPACK_SKIP_PIXELS */ -/* GL_UNPACK_ALIGNMENT */ -/* GL_PACK_SWAP_BYTES */ -/* GL_PACK_LSB_FIRST */ -/* GL_PACK_ROW_LENGTH */ -/* GL_PACK_SKIP_ROWS */ -/* GL_PACK_SKIP_PIXELS */ -/* GL_PACK_ALIGNMENT */ - -/* PixelTransferParameter */ -/* GL_MAP_COLOR */ -/* GL_MAP_STENCIL */ -/* GL_INDEX_SHIFT */ -/* GL_INDEX_OFFSET */ -/* GL_RED_SCALE */ -/* GL_RED_BIAS */ -/* GL_GREEN_SCALE */ -/* GL_GREEN_BIAS */ -/* GL_BLUE_SCALE */ -/* GL_BLUE_BIAS */ -/* GL_ALPHA_SCALE */ -/* GL_ALPHA_BIAS */ -/* GL_DEPTH_SCALE */ -/* GL_DEPTH_BIAS */ - -/* PixelType */ -#define GL_BITMAP 0x1A00 -/* GL_BYTE */ -/* GL_UNSIGNED_BYTE */ -/* GL_SHORT */ -/* GL_UNSIGNED_SHORT */ -/* GL_INT */ -/* GL_UNSIGNED_INT */ -/* GL_FLOAT */ -/* GL_UNSIGNED_BYTE_3_3_2_EXT */ -/* GL_UNSIGNED_SHORT_4_4_4_4_EXT */ -/* GL_UNSIGNED_SHORT_5_5_5_1_EXT */ -/* GL_UNSIGNED_INT_8_8_8_8_EXT */ -/* GL_UNSIGNED_INT_10_10_10_2_EXT */ - -/* PolygonMode */ -#define GL_POINT 0x1B00 -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 - -/* ReadBufferMode */ -/* GL_FRONT_LEFT */ -/* GL_FRONT_RIGHT */ -/* GL_BACK_LEFT */ -/* GL_BACK_RIGHT */ -/* GL_FRONT */ -/* GL_BACK */ -/* GL_LEFT */ -/* GL_RIGHT */ -/* GL_AUX0 */ -/* GL_AUX1 */ -/* GL_AUX2 */ -/* GL_AUX3 */ - -/* RenderingMode */ -#define GL_RENDER 0x1C00 -#define GL_FEEDBACK 0x1C01 -#define GL_SELECT 0x1C02 - -/* ShadingModel */ -#define GL_FLAT 0x1D00 -#define GL_SMOOTH 0x1D01 - -/* StencilFunction */ -/* GL_NEVER */ -/* GL_LESS */ -/* GL_EQUAL */ -/* GL_LEQUAL */ -/* GL_GREATER */ -/* GL_NOTEQUAL */ -/* GL_GEQUAL */ -/* GL_ALWAYS */ - -/* StencilOp */ -/* GL_ZERO */ -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -/* GL_INVERT */ - -/* StringName */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* TexCoordPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* TextureCoordName */ -#define GL_S 0x2000 -#define GL_T 0x2001 -#define GL_R 0x2002 -#define GL_Q 0x2003 - -/* TextureEnvMode */ -#define GL_MODULATE 0x2100 -#define GL_DECAL 0x2101 -/* GL_BLEND */ -/* GL_REPLACE */ -/* GL_ADD */ - -/* TextureEnvParameter */ -#define GL_TEXTURE_ENV_MODE 0x2200 -#define GL_TEXTURE_ENV_COLOR 0x2201 - -/* TextureEnvTarget */ -#define GL_TEXTURE_ENV 0x2300 - -/* TextureGenMode */ -#define GL_EYE_LINEAR 0x2400 -#define GL_OBJECT_LINEAR 0x2401 -#define GL_SPHERE_MAP 0x2402 - -/* TextureGenParameter */ -#define GL_TEXTURE_GEN_MODE 0x2500 -#define GL_OBJECT_PLANE 0x2501 -#define GL_EYE_PLANE 0x2502 - -/* TextureMagFilter */ -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 - -/* TextureMinFilter */ -/* GL_NEAREST */ -/* GL_LINEAR */ -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 - -/* TextureParameterName */ -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -/* GL_TEXTURE_BORDER_COLOR */ -/* GL_TEXTURE_PRIORITY */ - -/* TextureTarget */ -/* GL_TEXTURE_1D */ -/* GL_TEXTURE_2D */ -#define GL_PROXY_TEXTURE_1D 0x8063 -#define GL_PROXY_TEXTURE_2D 0x8064 - -/* TextureWrapMode */ -#define GL_CLAMP 0x2900 -#define GL_REPEAT 0x2901 - -/* PixelInternalFormat */ -#define GL_R3_G3_B2 0x2A10 -#define GL_ALPHA4 0x803B -#define GL_ALPHA8 0x803C -#define GL_ALPHA12 0x803D -#define GL_ALPHA16 0x803E -#define GL_LUMINANCE4 0x803F -#define GL_LUMINANCE8 0x8040 -#define GL_LUMINANCE12 0x8041 -#define GL_LUMINANCE16 0x8042 -#define GL_LUMINANCE4_ALPHA4 0x8043 -#define GL_LUMINANCE6_ALPHA2 0x8044 -#define GL_LUMINANCE8_ALPHA8 0x8045 -#define GL_LUMINANCE12_ALPHA4 0x8046 -#define GL_LUMINANCE12_ALPHA12 0x8047 -#define GL_LUMINANCE16_ALPHA16 0x8048 -#define GL_INTENSITY 0x8049 -#define GL_INTENSITY4 0x804A -#define GL_INTENSITY8 0x804B -#define GL_INTENSITY12 0x804C -#define GL_INTENSITY16 0x804D -#define GL_RGB4 0x804F -#define GL_RGB5 0x8050 -#define GL_RGB8 0x8051 -#define GL_RGB10 0x8052 -#define GL_RGB12 0x8053 -#define GL_RGB16 0x8054 -#define GL_RGBA2 0x8055 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGBA8 0x8058 -#define GL_RGB10_A2 0x8059 -#define GL_RGBA12 0x805A -#define GL_RGBA16 0x805B - -/* InterleavedArrayFormat */ -#define GL_V2F 0x2A20 -#define GL_V3F 0x2A21 -#define GL_C4UB_V2F 0x2A22 -#define GL_C4UB_V3F 0x2A23 -#define GL_C3F_V3F 0x2A24 -#define GL_N3F_V3F 0x2A25 -#define GL_C4F_N3F_V3F 0x2A26 -#define GL_T2F_V3F 0x2A27 -#define GL_T4F_V4F 0x2A28 -#define GL_T2F_C4UB_V3F 0x2A29 -#define GL_T2F_C3F_V3F 0x2A2A -#define GL_T2F_N3F_V3F 0x2A2B -#define GL_T2F_C4F_N3F_V3F 0x2A2C -#define GL_T4F_C4F_N3F_V4F 0x2A2D - -/* VertexPointerType */ -/* GL_SHORT */ -/* GL_INT */ -/* GL_FLOAT */ -/* GL_DOUBLE */ - -/* ClipPlaneName */ -#define GL_CLIP_PLANE0 0x3000 -#define GL_CLIP_PLANE1 0x3001 -#define GL_CLIP_PLANE2 0x3002 -#define GL_CLIP_PLANE3 0x3003 -#define GL_CLIP_PLANE4 0x3004 -#define GL_CLIP_PLANE5 0x3005 - -/* LightName */ -#define GL_LIGHT0 0x4000 -#define GL_LIGHT1 0x4001 -#define GL_LIGHT2 0x4002 -#define GL_LIGHT3 0x4003 -#define GL_LIGHT4 0x4004 -#define GL_LIGHT5 0x4005 -#define GL_LIGHT6 0x4006 -#define GL_LIGHT7 0x4007 - -/* EXT_abgr */ -#define GL_ABGR_EXT 0x8000 - -/* EXT_blend_subtract */ -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B - -/* EXT_packed_pixels */ -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 - -/* OpenGL12 */ -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_RESCALE_NORMAL 0x803A -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E - -/* OpenGL13 */ -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_SUBTRACT 0x84E7 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#define GL_CLAMP_TO_BORDER 0x812D -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_MULTISAMPLE_BIT 0x20000000 - -/* EXT_vertex_array */ -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 - -/* SGIS_texture_lod */ -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D - -/* EXT_shared_texture_palette */ -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB - -/* EXT_rescale_normal */ -#define GL_RESCALE_NORMAL_EXT 0x803A - -/* SGIX_shadow */ -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D - -/* SGIX_depth_texture */ -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 - -/* SGIS_generate_mipmap */ -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 - -/* OpenGL14 */ -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#define GL_COMPARE_R_TO_TEXTURE 0x884E - -/*************************************************************/ - -WINGDIAPI void APIENTRY glAccum (GLenum op, GLfloat value); -WINGDIAPI void APIENTRY glAlphaFunc (GLenum func, GLclampf ref); -WINGDIAPI GLboolean APIENTRY glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); -WINGDIAPI void APIENTRY glArrayElement (GLint i); -WINGDIAPI void APIENTRY glBegin (GLenum mode); -WINGDIAPI void APIENTRY glBindTexture (GLenum target, GLuint texture); -WINGDIAPI void APIENTRY glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); -WINGDIAPI void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); -WINGDIAPI void APIENTRY glCallList (GLuint list); -WINGDIAPI void APIENTRY glCallLists (GLsizei n, GLenum type, const GLvoid *lists); -WINGDIAPI void APIENTRY glClear (GLbitfield mask); -WINGDIAPI void APIENTRY glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -WINGDIAPI void APIENTRY glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -WINGDIAPI void APIENTRY glClearDepth (GLclampd depth); -WINGDIAPI void APIENTRY glClearIndex (GLfloat c); -WINGDIAPI void APIENTRY glClearStencil (GLint s); -WINGDIAPI void APIENTRY glClipPlane (GLenum plane, const GLdouble *equation); -WINGDIAPI void APIENTRY glColor3b (GLbyte red, GLbyte green, GLbyte blue); -WINGDIAPI void APIENTRY glColor3bv (const GLbyte *v); -WINGDIAPI void APIENTRY glColor3d (GLdouble red, GLdouble green, GLdouble blue); -WINGDIAPI void APIENTRY glColor3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glColor3f (GLfloat red, GLfloat green, GLfloat blue); -WINGDIAPI void APIENTRY glColor3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glColor3i (GLint red, GLint green, GLint blue); -WINGDIAPI void APIENTRY glColor3iv (const GLint *v); -WINGDIAPI void APIENTRY glColor3s (GLshort red, GLshort green, GLshort blue); -WINGDIAPI void APIENTRY glColor3sv (const GLshort *v); -WINGDIAPI void APIENTRY glColor3ub (GLubyte red, GLubyte green, GLubyte blue); -WINGDIAPI void APIENTRY glColor3ubv (const GLubyte *v); -WINGDIAPI void APIENTRY glColor3ui (GLuint red, GLuint green, GLuint blue); -WINGDIAPI void APIENTRY glColor3uiv (const GLuint *v); -WINGDIAPI void APIENTRY glColor3us (GLushort red, GLushort green, GLushort blue); -WINGDIAPI void APIENTRY glColor3usv (const GLushort *v); -WINGDIAPI void APIENTRY glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); -WINGDIAPI void APIENTRY glColor4bv (const GLbyte *v); -WINGDIAPI void APIENTRY glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); -WINGDIAPI void APIENTRY glColor4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); -WINGDIAPI void APIENTRY glColor4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glColor4i (GLint red, GLint green, GLint blue, GLint alpha); -WINGDIAPI void APIENTRY glColor4iv (const GLint *v); -WINGDIAPI void APIENTRY glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); -WINGDIAPI void APIENTRY glColor4sv (const GLshort *v); -WINGDIAPI void APIENTRY glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); -WINGDIAPI void APIENTRY glColor4ubv (const GLubyte *v); -WINGDIAPI void APIENTRY glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); -WINGDIAPI void APIENTRY glColor4uiv (const GLuint *v); -WINGDIAPI void APIENTRY glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); -WINGDIAPI void APIENTRY glColor4usv (const GLushort *v); -WINGDIAPI void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -WINGDIAPI void APIENTRY glColorMaterial (GLenum face, GLenum mode); -WINGDIAPI void APIENTRY glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); -WINGDIAPI void APIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); -WINGDIAPI void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -WINGDIAPI void APIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -WINGDIAPI void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -WINGDIAPI void APIENTRY glCullFace (GLenum mode); -WINGDIAPI void APIENTRY glDeleteLists (GLuint list, GLsizei range); -WINGDIAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); -WINGDIAPI void APIENTRY glDepthFunc (GLenum func); -WINGDIAPI void APIENTRY glDepthMask (GLboolean flag); -WINGDIAPI void APIENTRY glDepthRange (GLclampd zNear, GLclampd zFar); -WINGDIAPI void APIENTRY glDisable (GLenum cap); -WINGDIAPI void APIENTRY glDisableClientState (GLenum array); -WINGDIAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); -WINGDIAPI void APIENTRY glDrawBuffer (GLenum mode); -WINGDIAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); -WINGDIAPI void APIENTRY glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glEdgeFlag (GLboolean flag); -WINGDIAPI void APIENTRY glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glEdgeFlagv (const GLboolean *flag); -WINGDIAPI void APIENTRY glEnable (GLenum cap); -WINGDIAPI void APIENTRY glEnableClientState (GLenum array); -WINGDIAPI void APIENTRY glEnd (void); -WINGDIAPI void APIENTRY glEndList (void); -WINGDIAPI void APIENTRY glEvalCoord1d (GLdouble u); -WINGDIAPI void APIENTRY glEvalCoord1dv (const GLdouble *u); -WINGDIAPI void APIENTRY glEvalCoord1f (GLfloat u); -WINGDIAPI void APIENTRY glEvalCoord1fv (const GLfloat *u); -WINGDIAPI void APIENTRY glEvalCoord2d (GLdouble u, GLdouble v); -WINGDIAPI void APIENTRY glEvalCoord2dv (const GLdouble *u); -WINGDIAPI void APIENTRY glEvalCoord2f (GLfloat u, GLfloat v); -WINGDIAPI void APIENTRY glEvalCoord2fv (const GLfloat *u); -WINGDIAPI void APIENTRY glEvalMesh1 (GLenum mode, GLint i1, GLint i2); -WINGDIAPI void APIENTRY glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); -WINGDIAPI void APIENTRY glEvalPoint1 (GLint i); -WINGDIAPI void APIENTRY glEvalPoint2 (GLint i, GLint j); -WINGDIAPI void APIENTRY glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); -WINGDIAPI void APIENTRY glFinish (void); -WINGDIAPI void APIENTRY glFlush (void); -WINGDIAPI void APIENTRY glFogf (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glFogfv (GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glFogi (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glFogiv (GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glFrontFace (GLenum mode); -WINGDIAPI void APIENTRY glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -WINGDIAPI GLuint APIENTRY glGenLists (GLsizei range); -WINGDIAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); -WINGDIAPI void APIENTRY glGetBooleanv (GLenum pname, GLboolean *params); -WINGDIAPI void APIENTRY glGetClipPlane (GLenum plane, GLdouble *equation); -WINGDIAPI void APIENTRY glGetDoublev (GLenum pname, GLdouble *params); -WINGDIAPI GLenum APIENTRY glGetError (void); -WINGDIAPI void APIENTRY glGetFloatv (GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetLightfv (GLenum light, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetLightiv (GLenum light, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetMapdv (GLenum target, GLenum query, GLdouble *v); -WINGDIAPI void APIENTRY glGetMapfv (GLenum target, GLenum query, GLfloat *v); -WINGDIAPI void APIENTRY glGetMapiv (GLenum target, GLenum query, GLint *v); -WINGDIAPI void APIENTRY glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetMaterialiv (GLenum face, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetPixelMapfv (GLenum map, GLfloat *values); -WINGDIAPI void APIENTRY glGetPixelMapuiv (GLenum map, GLuint *values); -WINGDIAPI void APIENTRY glGetPixelMapusv (GLenum map, GLushort *values); -WINGDIAPI void APIENTRY glGetPointerv (GLenum pname, GLvoid* *params); -WINGDIAPI void APIENTRY glGetPolygonStipple (GLubyte *mask); -WINGDIAPI const GLubyte * APIENTRY glGetString (GLenum name); -WINGDIAPI void APIENTRY glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexEnviv (GLenum target, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); -WINGDIAPI void APIENTRY glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -WINGDIAPI void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); -WINGDIAPI void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); -WINGDIAPI void APIENTRY glHint (GLenum target, GLenum mode); -WINGDIAPI void APIENTRY glIndexMask (GLuint mask); -WINGDIAPI void APIENTRY glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glIndexd (GLdouble c); -WINGDIAPI void APIENTRY glIndexdv (const GLdouble *c); -WINGDIAPI void APIENTRY glIndexf (GLfloat c); -WINGDIAPI void APIENTRY glIndexfv (const GLfloat *c); -WINGDIAPI void APIENTRY glIndexi (GLint c); -WINGDIAPI void APIENTRY glIndexiv (const GLint *c); -WINGDIAPI void APIENTRY glIndexs (GLshort c); -WINGDIAPI void APIENTRY glIndexsv (const GLshort *c); -WINGDIAPI void APIENTRY glIndexub (GLubyte c); -WINGDIAPI void APIENTRY glIndexubv (const GLubyte *c); -WINGDIAPI void APIENTRY glInitNames (void); -WINGDIAPI void APIENTRY glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); -WINGDIAPI GLboolean APIENTRY glIsEnabled (GLenum cap); -WINGDIAPI GLboolean APIENTRY glIsList (GLuint list); -WINGDIAPI GLboolean APIENTRY glIsTexture (GLuint texture); -WINGDIAPI void APIENTRY glLightModelf (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glLightModelfv (GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glLightModeli (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glLightModeliv (GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glLightf (GLenum light, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glLightfv (GLenum light, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glLighti (GLenum light, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glLightiv (GLenum light, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glLineStipple (GLint factor, GLushort pattern); -WINGDIAPI void APIENTRY glLineWidth (GLfloat width); -WINGDIAPI void APIENTRY glListBase (GLuint base); -WINGDIAPI void APIENTRY glLoadIdentity (void); -WINGDIAPI void APIENTRY glLoadMatrixd (const GLdouble *m); -WINGDIAPI void APIENTRY glLoadMatrixf (const GLfloat *m); -WINGDIAPI void APIENTRY glLoadName (GLuint name); -WINGDIAPI void APIENTRY glLogicOp (GLenum opcode); -WINGDIAPI void APIENTRY glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -WINGDIAPI void APIENTRY glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -WINGDIAPI void APIENTRY glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -WINGDIAPI void APIENTRY glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -WINGDIAPI void APIENTRY glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); -WINGDIAPI void APIENTRY glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); -WINGDIAPI void APIENTRY glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); -WINGDIAPI void APIENTRY glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); -WINGDIAPI void APIENTRY glMaterialf (GLenum face, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glMateriali (GLenum face, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glMaterialiv (GLenum face, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glMatrixMode (GLenum mode); -WINGDIAPI void APIENTRY glMultMatrixd (const GLdouble *m); -WINGDIAPI void APIENTRY glMultMatrixf (const GLfloat *m); -WINGDIAPI void APIENTRY glNewList (GLuint list, GLenum mode); -WINGDIAPI void APIENTRY glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); -WINGDIAPI void APIENTRY glNormal3bv (const GLbyte *v); -WINGDIAPI void APIENTRY glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); -WINGDIAPI void APIENTRY glNormal3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); -WINGDIAPI void APIENTRY glNormal3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glNormal3i (GLint nx, GLint ny, GLint nz); -WINGDIAPI void APIENTRY glNormal3iv (const GLint *v); -WINGDIAPI void APIENTRY glNormal3s (GLshort nx, GLshort ny, GLshort nz); -WINGDIAPI void APIENTRY glNormal3sv (const GLshort *v); -WINGDIAPI void APIENTRY glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -WINGDIAPI void APIENTRY glPassThrough (GLfloat token); -WINGDIAPI void APIENTRY glPixelMapfv (GLenum map, GLsizei mapsize, const GLfloat *values); -WINGDIAPI void APIENTRY glPixelMapuiv (GLenum map, GLsizei mapsize, const GLuint *values); -WINGDIAPI void APIENTRY glPixelMapusv (GLenum map, GLsizei mapsize, const GLushort *values); -WINGDIAPI void APIENTRY glPixelStoref (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glPixelStorei (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glPixelTransferf (GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glPixelTransferi (GLenum pname, GLint param); -WINGDIAPI void APIENTRY glPixelZoom (GLfloat xfactor, GLfloat yfactor); -WINGDIAPI void APIENTRY glPointSize (GLfloat size); -WINGDIAPI void APIENTRY glPolygonMode (GLenum face, GLenum mode); -WINGDIAPI void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); -WINGDIAPI void APIENTRY glPolygonStipple (const GLubyte *mask); -WINGDIAPI void APIENTRY glPopAttrib (void); -WINGDIAPI void APIENTRY glPopClientAttrib (void); -WINGDIAPI void APIENTRY glPopMatrix (void); -WINGDIAPI void APIENTRY glPopName (void); -WINGDIAPI void APIENTRY glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); -WINGDIAPI void APIENTRY glPushAttrib (GLbitfield mask); -WINGDIAPI void APIENTRY glPushClientAttrib (GLbitfield mask); -WINGDIAPI void APIENTRY glPushMatrix (void); -WINGDIAPI void APIENTRY glPushName (GLuint name); -WINGDIAPI void APIENTRY glRasterPos2d (GLdouble x, GLdouble y); -WINGDIAPI void APIENTRY glRasterPos2dv (const GLdouble *v); -WINGDIAPI void APIENTRY glRasterPos2f (GLfloat x, GLfloat y); -WINGDIAPI void APIENTRY glRasterPos2fv (const GLfloat *v); -WINGDIAPI void APIENTRY glRasterPos2i (GLint x, GLint y); -WINGDIAPI void APIENTRY glRasterPos2iv (const GLint *v); -WINGDIAPI void APIENTRY glRasterPos2s (GLshort x, GLshort y); -WINGDIAPI void APIENTRY glRasterPos2sv (const GLshort *v); -WINGDIAPI void APIENTRY glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glRasterPos3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glRasterPos3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glRasterPos3i (GLint x, GLint y, GLint z); -WINGDIAPI void APIENTRY glRasterPos3iv (const GLint *v); -WINGDIAPI void APIENTRY glRasterPos3s (GLshort x, GLshort y, GLshort z); -WINGDIAPI void APIENTRY glRasterPos3sv (const GLshort *v); -WINGDIAPI void APIENTRY glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -WINGDIAPI void APIENTRY glRasterPos4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -WINGDIAPI void APIENTRY glRasterPos4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glRasterPos4i (GLint x, GLint y, GLint z, GLint w); -WINGDIAPI void APIENTRY glRasterPos4iv (const GLint *v); -WINGDIAPI void APIENTRY glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); -WINGDIAPI void APIENTRY glRasterPos4sv (const GLshort *v); -WINGDIAPI void APIENTRY glReadBuffer (GLenum mode); -WINGDIAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); -WINGDIAPI void APIENTRY glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); -WINGDIAPI void APIENTRY glRectdv (const GLdouble *v1, const GLdouble *v2); -WINGDIAPI void APIENTRY glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); -WINGDIAPI void APIENTRY glRectfv (const GLfloat *v1, const GLfloat *v2); -WINGDIAPI void APIENTRY glRecti (GLint x1, GLint y1, GLint x2, GLint y2); -WINGDIAPI void APIENTRY glRectiv (const GLint *v1, const GLint *v2); -WINGDIAPI void APIENTRY glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); -WINGDIAPI void APIENTRY glRectsv (const GLshort *v1, const GLshort *v2); -WINGDIAPI GLint APIENTRY glRenderMode (GLenum mode); -WINGDIAPI void APIENTRY glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glScaled (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glScalef (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); -WINGDIAPI void APIENTRY glSelectBuffer (GLsizei size, GLuint *buffer); -WINGDIAPI void APIENTRY glShadeModel (GLenum mode); -WINGDIAPI void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); -WINGDIAPI void APIENTRY glStencilMask (GLuint mask); -WINGDIAPI void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); -WINGDIAPI void APIENTRY glTexCoord1d (GLdouble s); -WINGDIAPI void APIENTRY glTexCoord1dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord1f (GLfloat s); -WINGDIAPI void APIENTRY glTexCoord1fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord1i (GLint s); -WINGDIAPI void APIENTRY glTexCoord1iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord1s (GLshort s); -WINGDIAPI void APIENTRY glTexCoord1sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoord2d (GLdouble s, GLdouble t); -WINGDIAPI void APIENTRY glTexCoord2dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord2f (GLfloat s, GLfloat t); -WINGDIAPI void APIENTRY glTexCoord2fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord2i (GLint s, GLint t); -WINGDIAPI void APIENTRY glTexCoord2iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord2s (GLshort s, GLshort t); -WINGDIAPI void APIENTRY glTexCoord2sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); -WINGDIAPI void APIENTRY glTexCoord3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); -WINGDIAPI void APIENTRY glTexCoord3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord3i (GLint s, GLint t, GLint r); -WINGDIAPI void APIENTRY glTexCoord3iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord3s (GLshort s, GLshort t, GLshort r); -WINGDIAPI void APIENTRY glTexCoord3sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); -WINGDIAPI void APIENTRY glTexCoord4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); -WINGDIAPI void APIENTRY glTexCoord4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glTexCoord4i (GLint s, GLint t, GLint r, GLint q); -WINGDIAPI void APIENTRY glTexCoord4iv (const GLint *v); -WINGDIAPI void APIENTRY glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); -WINGDIAPI void APIENTRY glTexCoord4sv (const GLshort *v); -WINGDIAPI void APIENTRY glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glTexEnvf (GLenum target, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glTexEnvi (GLenum target, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glTexEnviv (GLenum target, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glTexGend (GLenum coord, GLenum pname, GLdouble param); -WINGDIAPI void APIENTRY glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); -WINGDIAPI void APIENTRY glTexGenf (GLenum coord, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glTexGeni (GLenum coord, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glTexGeniv (GLenum coord, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); -WINGDIAPI void APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); -WINGDIAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); -WINGDIAPI void APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); -WINGDIAPI void APIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -WINGDIAPI void APIENTRY glTranslated (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glTranslatef (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glVertex2d (GLdouble x, GLdouble y); -WINGDIAPI void APIENTRY glVertex2dv (const GLdouble *v); -WINGDIAPI void APIENTRY glVertex2f (GLfloat x, GLfloat y); -WINGDIAPI void APIENTRY glVertex2fv (const GLfloat *v); -WINGDIAPI void APIENTRY glVertex2i (GLint x, GLint y); -WINGDIAPI void APIENTRY glVertex2iv (const GLint *v); -WINGDIAPI void APIENTRY glVertex2s (GLshort x, GLshort y); -WINGDIAPI void APIENTRY glVertex2sv (const GLshort *v); -WINGDIAPI void APIENTRY glVertex3d (GLdouble x, GLdouble y, GLdouble z); -WINGDIAPI void APIENTRY glVertex3dv (const GLdouble *v); -WINGDIAPI void APIENTRY glVertex3f (GLfloat x, GLfloat y, GLfloat z); -WINGDIAPI void APIENTRY glVertex3fv (const GLfloat *v); -WINGDIAPI void APIENTRY glVertex3i (GLint x, GLint y, GLint z); -WINGDIAPI void APIENTRY glVertex3iv (const GLint *v); -WINGDIAPI void APIENTRY glVertex3s (GLshort x, GLshort y, GLshort z); -WINGDIAPI void APIENTRY glVertex3sv (const GLshort *v); -WINGDIAPI void APIENTRY glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -WINGDIAPI void APIENTRY glVertex4dv (const GLdouble *v); -WINGDIAPI void APIENTRY glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -WINGDIAPI void APIENTRY glVertex4fv (const GLfloat *v); -WINGDIAPI void APIENTRY glVertex4i (GLint x, GLint y, GLint z, GLint w); -WINGDIAPI void APIENTRY glVertex4iv (const GLint *v); -WINGDIAPI void APIENTRY glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); -WINGDIAPI void APIENTRY glVertex4sv (const GLshort *v); -WINGDIAPI void APIENTRY glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -WINGDIAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); - -#ifdef __DEFINED_GLAPI -# undef GLAPI -# undef __DEFINED_GLAPI -#endif - -#ifndef GL_GLEXT_LEGACY -#include -#endif - -#ifdef __cplusplus -} -#endif - -#endif /* __gl_h_ */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/GL/glext.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/GL/glext.h deleted file mode 100644 index e607161a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/GL/glext.h +++ /dev/null @@ -1,11494 +0,0 @@ -#ifndef __glext_h_ -#define __glext_h_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* -** Copyright (c) 2007-2011 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a -** copy of this software and/or associated documentation files (the -** "Materials"), to deal in the Materials without restriction, including -** without limitation the rights to use, copy, modify, merge, publish, -** distribute, sublicense, and/or sell copies of the Materials, and to -** permit persons to whom the Materials are furnished to do so, subject to -** the following conditions: -** -** The above copyright notice and this permission notice shall be included -** in all copies or substantial portions of the Materials. -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, -** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. -*/ - -/* Header file version number, required by OpenGL ABI for Linux */ -/* glext.h last updated $Date: 2011-12-19 02:48:53 -0800 (Mon, 19 Dec 2011) $ */ -/* Current version at http://www.opengl.org/registry/ */ -#define GL_GLEXT_VERSION 74 -/* Function declaration macros - to move into glplatform.h */ - -#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#ifndef APIENTRY -#define APIENTRY -#endif -#ifndef APIENTRYP -#define APIENTRYP APIENTRY * -#endif -#ifndef GLAPI -#define GLAPI extern -#endif - -/*************************************************************/ - -#ifndef GL_VERSION_1_2 -#define GL_UNSIGNED_BYTE_3_3_2 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2 0x8036 -#define GL_TEXTURE_BINDING_3D 0x806A -#define GL_PACK_SKIP_IMAGES 0x806B -#define GL_PACK_IMAGE_HEIGHT 0x806C -#define GL_UNPACK_SKIP_IMAGES 0x806D -#define GL_UNPACK_IMAGE_HEIGHT 0x806E -#define GL_TEXTURE_3D 0x806F -#define GL_PROXY_TEXTURE_3D 0x8070 -#define GL_TEXTURE_DEPTH 0x8071 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE 0x8073 -#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 -#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_BGR 0x80E0 -#define GL_BGRA 0x80E1 -#define GL_MAX_ELEMENTS_VERTICES 0x80E8 -#define GL_MAX_ELEMENTS_INDICES 0x80E9 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_TEXTURE_MIN_LOD 0x813A -#define GL_TEXTURE_MAX_LOD 0x813B -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 -#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 -#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 -#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 -#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E -#endif - -#ifndef GL_VERSION_1_2_DEPRECATED -#define GL_RESCALE_NORMAL 0x803A -#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 -#define GL_SINGLE_COLOR 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR 0x81FA -#define GL_ALIASED_POINT_SIZE_RANGE 0x846D -#endif - -#ifndef GL_ARB_imaging -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 -#define GL_CONSTANT_ALPHA 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 -#define GL_BLEND_COLOR 0x8005 -#define GL_FUNC_ADD 0x8006 -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_BLEND_EQUATION 0x8009 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B -#endif - -#ifndef GL_ARB_imaging_DEPRECATED -#define GL_CONVOLUTION_1D 0x8010 -#define GL_CONVOLUTION_2D 0x8011 -#define GL_SEPARABLE_2D 0x8012 -#define GL_CONVOLUTION_BORDER_MODE 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS 0x8015 -#define GL_REDUCE 0x8016 -#define GL_CONVOLUTION_FORMAT 0x8017 -#define GL_CONVOLUTION_WIDTH 0x8018 -#define GL_CONVOLUTION_HEIGHT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 -#define GL_HISTOGRAM 0x8024 -#define GL_PROXY_HISTOGRAM 0x8025 -#define GL_HISTOGRAM_WIDTH 0x8026 -#define GL_HISTOGRAM_FORMAT 0x8027 -#define GL_HISTOGRAM_RED_SIZE 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C -#define GL_HISTOGRAM_SINK 0x802D -#define GL_MINMAX 0x802E -#define GL_MINMAX_FORMAT 0x802F -#define GL_MINMAX_SINK 0x8030 -#define GL_TABLE_TOO_LARGE 0x8031 -#define GL_COLOR_MATRIX 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB -#define GL_COLOR_TABLE 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 -#define GL_PROXY_COLOR_TABLE 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 -#define GL_COLOR_TABLE_SCALE 0x80D6 -#define GL_COLOR_TABLE_BIAS 0x80D7 -#define GL_COLOR_TABLE_FORMAT 0x80D8 -#define GL_COLOR_TABLE_WIDTH 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF -#define GL_CONSTANT_BORDER 0x8151 -#define GL_REPLICATE_BORDER 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR 0x8154 -#endif - -#ifndef GL_VERSION_1_3 -#define GL_TEXTURE0 0x84C0 -#define GL_TEXTURE1 0x84C1 -#define GL_TEXTURE2 0x84C2 -#define GL_TEXTURE3 0x84C3 -#define GL_TEXTURE4 0x84C4 -#define GL_TEXTURE5 0x84C5 -#define GL_TEXTURE6 0x84C6 -#define GL_TEXTURE7 0x84C7 -#define GL_TEXTURE8 0x84C8 -#define GL_TEXTURE9 0x84C9 -#define GL_TEXTURE10 0x84CA -#define GL_TEXTURE11 0x84CB -#define GL_TEXTURE12 0x84CC -#define GL_TEXTURE13 0x84CD -#define GL_TEXTURE14 0x84CE -#define GL_TEXTURE15 0x84CF -#define GL_TEXTURE16 0x84D0 -#define GL_TEXTURE17 0x84D1 -#define GL_TEXTURE18 0x84D2 -#define GL_TEXTURE19 0x84D3 -#define GL_TEXTURE20 0x84D4 -#define GL_TEXTURE21 0x84D5 -#define GL_TEXTURE22 0x84D6 -#define GL_TEXTURE23 0x84D7 -#define GL_TEXTURE24 0x84D8 -#define GL_TEXTURE25 0x84D9 -#define GL_TEXTURE26 0x84DA -#define GL_TEXTURE27 0x84DB -#define GL_TEXTURE28 0x84DC -#define GL_TEXTURE29 0x84DD -#define GL_TEXTURE30 0x84DE -#define GL_TEXTURE31 0x84DF -#define GL_ACTIVE_TEXTURE 0x84E0 -#define GL_MULTISAMPLE 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE 0x809F -#define GL_SAMPLE_COVERAGE 0x80A0 -#define GL_SAMPLE_BUFFERS 0x80A8 -#define GL_SAMPLES 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT 0x80AB -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C -#define GL_COMPRESSED_RGB 0x84ED -#define GL_COMPRESSED_RGBA 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 -#define GL_TEXTURE_COMPRESSED 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_CLAMP_TO_BORDER 0x812D -#endif - -#ifndef GL_VERSION_1_3_DEPRECATED -#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 -#define GL_MAX_TEXTURE_UNITS 0x84E2 -#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 -#define GL_MULTISAMPLE_BIT 0x20000000 -#define GL_NORMAL_MAP 0x8511 -#define GL_REFLECTION_MAP 0x8512 -#define GL_COMPRESSED_ALPHA 0x84E9 -#define GL_COMPRESSED_LUMINANCE 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB -#define GL_COMPRESSED_INTENSITY 0x84EC -#define GL_COMBINE 0x8570 -#define GL_COMBINE_RGB 0x8571 -#define GL_COMBINE_ALPHA 0x8572 -#define GL_SOURCE0_RGB 0x8580 -#define GL_SOURCE1_RGB 0x8581 -#define GL_SOURCE2_RGB 0x8582 -#define GL_SOURCE0_ALPHA 0x8588 -#define GL_SOURCE1_ALPHA 0x8589 -#define GL_SOURCE2_ALPHA 0x858A -#define GL_OPERAND0_RGB 0x8590 -#define GL_OPERAND1_RGB 0x8591 -#define GL_OPERAND2_RGB 0x8592 -#define GL_OPERAND0_ALPHA 0x8598 -#define GL_OPERAND1_ALPHA 0x8599 -#define GL_OPERAND2_ALPHA 0x859A -#define GL_RGB_SCALE 0x8573 -#define GL_ADD_SIGNED 0x8574 -#define GL_INTERPOLATE 0x8575 -#define GL_SUBTRACT 0x84E7 -#define GL_CONSTANT 0x8576 -#define GL_PRIMARY_COLOR 0x8577 -#define GL_PREVIOUS 0x8578 -#define GL_DOT3_RGB 0x86AE -#define GL_DOT3_RGBA 0x86AF -#endif - -#ifndef GL_VERSION_1_4 -#define GL_BLEND_DST_RGB 0x80C8 -#define GL_BLEND_SRC_RGB 0x80C9 -#define GL_BLEND_DST_ALPHA 0x80CA -#define GL_BLEND_SRC_ALPHA 0x80CB -#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_DEPTH_COMPONENT32 0x81A7 -#define GL_MIRRORED_REPEAT 0x8370 -#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 -#define GL_TEXTURE_DEPTH_SIZE 0x884A -#define GL_TEXTURE_COMPARE_MODE 0x884C -#define GL_TEXTURE_COMPARE_FUNC 0x884D -#endif - -#ifndef GL_VERSION_1_4_DEPRECATED -#define GL_POINT_SIZE_MIN 0x8126 -#define GL_POINT_SIZE_MAX 0x8127 -#define GL_POINT_DISTANCE_ATTENUATION 0x8129 -#define GL_GENERATE_MIPMAP 0x8191 -#define GL_GENERATE_MIPMAP_HINT 0x8192 -#define GL_FOG_COORDINATE_SOURCE 0x8450 -#define GL_FOG_COORDINATE 0x8451 -#define GL_FRAGMENT_DEPTH 0x8452 -#define GL_CURRENT_FOG_COORDINATE 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 -#define GL_FOG_COORDINATE_ARRAY 0x8457 -#define GL_COLOR_SUM 0x8458 -#define GL_CURRENT_SECONDARY_COLOR 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D -#define GL_SECONDARY_COLOR_ARRAY 0x845E -#define GL_TEXTURE_FILTER_CONTROL 0x8500 -#define GL_DEPTH_TEXTURE_MODE 0x884B -#define GL_COMPARE_R_TO_TEXTURE 0x884E -#endif - -#ifndef GL_VERSION_1_5 -#define GL_BUFFER_SIZE 0x8764 -#define GL_BUFFER_USAGE 0x8765 -#define GL_QUERY_COUNTER_BITS 0x8864 -#define GL_CURRENT_QUERY 0x8865 -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_ARRAY_BUFFER_BINDING 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F -#define GL_READ_ONLY 0x88B8 -#define GL_WRITE_ONLY 0x88B9 -#define GL_READ_WRITE 0x88BA -#define GL_BUFFER_ACCESS 0x88BB -#define GL_BUFFER_MAPPED 0x88BC -#define GL_BUFFER_MAP_POINTER 0x88BD -#define GL_STREAM_DRAW 0x88E0 -#define GL_STREAM_READ 0x88E1 -#define GL_STREAM_COPY 0x88E2 -#define GL_STATIC_DRAW 0x88E4 -#define GL_STATIC_READ 0x88E5 -#define GL_STATIC_COPY 0x88E6 -#define GL_DYNAMIC_DRAW 0x88E8 -#define GL_DYNAMIC_READ 0x88E9 -#define GL_DYNAMIC_COPY 0x88EA -#define GL_SAMPLES_PASSED 0x8914 -#endif - -#ifndef GL_VERSION_1_5_DEPRECATED -#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E -#define GL_FOG_COORD_SRC 0x8450 -#define GL_FOG_COORD 0x8451 -#define GL_CURRENT_FOG_COORD 0x8453 -#define GL_FOG_COORD_ARRAY_TYPE 0x8454 -#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 -#define GL_FOG_COORD_ARRAY_POINTER 0x8456 -#define GL_FOG_COORD_ARRAY 0x8457 -#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D -#define GL_SRC0_RGB 0x8580 -#define GL_SRC1_RGB 0x8581 -#define GL_SRC2_RGB 0x8582 -#define GL_SRC0_ALPHA 0x8588 -#define GL_SRC1_ALPHA 0x8589 -#define GL_SRC2_ALPHA 0x858A -#endif - -#ifndef GL_VERSION_2_0 -#define GL_BLEND_EQUATION_RGB 0x8009 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB 0x8626 -#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 -#define GL_STENCIL_BACK_FUNC 0x8800 -#define GL_STENCIL_BACK_FAIL 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 -#define GL_MAX_DRAW_BUFFERS 0x8824 -#define GL_DRAW_BUFFER0 0x8825 -#define GL_DRAW_BUFFER1 0x8826 -#define GL_DRAW_BUFFER2 0x8827 -#define GL_DRAW_BUFFER3 0x8828 -#define GL_DRAW_BUFFER4 0x8829 -#define GL_DRAW_BUFFER5 0x882A -#define GL_DRAW_BUFFER6 0x882B -#define GL_DRAW_BUFFER7 0x882C -#define GL_DRAW_BUFFER8 0x882D -#define GL_DRAW_BUFFER9 0x882E -#define GL_DRAW_BUFFER10 0x882F -#define GL_DRAW_BUFFER11 0x8830 -#define GL_DRAW_BUFFER12 0x8831 -#define GL_DRAW_BUFFER13 0x8832 -#define GL_DRAW_BUFFER14 0x8833 -#define GL_DRAW_BUFFER15 0x8834 -#define GL_BLEND_EQUATION_ALPHA 0x883D -#define GL_MAX_VERTEX_ATTRIBS 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_FRAGMENT_SHADER 0x8B30 -#define GL_VERTEX_SHADER 0x8B31 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A -#define GL_MAX_VARYING_FLOATS 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D -#define GL_SHADER_TYPE 0x8B4F -#define GL_FLOAT_VEC2 0x8B50 -#define GL_FLOAT_VEC3 0x8B51 -#define GL_FLOAT_VEC4 0x8B52 -#define GL_INT_VEC2 0x8B53 -#define GL_INT_VEC3 0x8B54 -#define GL_INT_VEC4 0x8B55 -#define GL_BOOL 0x8B56 -#define GL_BOOL_VEC2 0x8B57 -#define GL_BOOL_VEC3 0x8B58 -#define GL_BOOL_VEC4 0x8B59 -#define GL_FLOAT_MAT2 0x8B5A -#define GL_FLOAT_MAT3 0x8B5B -#define GL_FLOAT_MAT4 0x8B5C -#define GL_SAMPLER_1D 0x8B5D -#define GL_SAMPLER_2D 0x8B5E -#define GL_SAMPLER_3D 0x8B5F -#define GL_SAMPLER_CUBE 0x8B60 -#define GL_SAMPLER_1D_SHADOW 0x8B61 -#define GL_SAMPLER_2D_SHADOW 0x8B62 -#define GL_DELETE_STATUS 0x8B80 -#define GL_COMPILE_STATUS 0x8B81 -#define GL_LINK_STATUS 0x8B82 -#define GL_VALIDATE_STATUS 0x8B83 -#define GL_INFO_LOG_LENGTH 0x8B84 -#define GL_ATTACHED_SHADERS 0x8B85 -#define GL_ACTIVE_UNIFORMS 0x8B86 -#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 -#define GL_SHADER_SOURCE_LENGTH 0x8B88 -#define GL_ACTIVE_ATTRIBUTES 0x8B89 -#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B -#define GL_SHADING_LANGUAGE_VERSION 0x8B8C -#define GL_CURRENT_PROGRAM 0x8B8D -#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 -#define GL_LOWER_LEFT 0x8CA1 -#define GL_UPPER_LEFT 0x8CA2 -#define GL_STENCIL_BACK_REF 0x8CA3 -#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 -#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 -#endif - -#ifndef GL_VERSION_2_0_DEPRECATED -#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 -#define GL_MAX_TEXTURE_COORDS 0x8871 -#endif - -#ifndef GL_VERSION_2_1 -#define GL_PIXEL_PACK_BUFFER 0x88EB -#define GL_PIXEL_UNPACK_BUFFER 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF -#define GL_FLOAT_MAT2x3 0x8B65 -#define GL_FLOAT_MAT2x4 0x8B66 -#define GL_FLOAT_MAT3x2 0x8B67 -#define GL_FLOAT_MAT3x4 0x8B68 -#define GL_FLOAT_MAT4x2 0x8B69 -#define GL_FLOAT_MAT4x3 0x8B6A -#define GL_SRGB 0x8C40 -#define GL_SRGB8 0x8C41 -#define GL_SRGB_ALPHA 0x8C42 -#define GL_SRGB8_ALPHA8 0x8C43 -#define GL_COMPRESSED_SRGB 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 -#endif - -#ifndef GL_VERSION_2_1_DEPRECATED -#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F -#define GL_SLUMINANCE_ALPHA 0x8C44 -#define GL_SLUMINANCE8_ALPHA8 0x8C45 -#define GL_SLUMINANCE 0x8C46 -#define GL_SLUMINANCE8 0x8C47 -#define GL_COMPRESSED_SLUMINANCE 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B -#endif - -#ifndef GL_VERSION_3_0 -#define GL_COMPARE_REF_TO_TEXTURE 0x884E -#define GL_CLIP_DISTANCE0 0x3000 -#define GL_CLIP_DISTANCE1 0x3001 -#define GL_CLIP_DISTANCE2 0x3002 -#define GL_CLIP_DISTANCE3 0x3003 -#define GL_CLIP_DISTANCE4 0x3004 -#define GL_CLIP_DISTANCE5 0x3005 -#define GL_CLIP_DISTANCE6 0x3006 -#define GL_CLIP_DISTANCE7 0x3007 -#define GL_MAX_CLIP_DISTANCES 0x0D32 -#define GL_MAJOR_VERSION 0x821B -#define GL_MINOR_VERSION 0x821C -#define GL_NUM_EXTENSIONS 0x821D -#define GL_CONTEXT_FLAGS 0x821E -#define GL_COMPRESSED_RED 0x8225 -#define GL_COMPRESSED_RG 0x8226 -#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 -#define GL_RGBA32F 0x8814 -#define GL_RGB32F 0x8815 -#define GL_RGBA16F 0x881A -#define GL_RGB16F 0x881B -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD -#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF -#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 -#define GL_CLAMP_READ_COLOR 0x891C -#define GL_FIXED_ONLY 0x891D -#define GL_MAX_VARYING_COMPONENTS 0x8B4B -#define GL_TEXTURE_1D_ARRAY 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 -#define GL_TEXTURE_2D_ARRAY 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D -#define GL_R11F_G11F_B10F 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B -#define GL_RGB9_E5 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E -#define GL_TEXTURE_SHARED_SIZE 0x8C3F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 -#define GL_PRIMITIVES_GENERATED 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 -#define GL_RASTERIZER_DISCARD 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B -#define GL_INTERLEAVED_ATTRIBS 0x8C8C -#define GL_SEPARATE_ATTRIBS 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F -#define GL_RGBA32UI 0x8D70 -#define GL_RGB32UI 0x8D71 -#define GL_RGBA16UI 0x8D76 -#define GL_RGB16UI 0x8D77 -#define GL_RGBA8UI 0x8D7C -#define GL_RGB8UI 0x8D7D -#define GL_RGBA32I 0x8D82 -#define GL_RGB32I 0x8D83 -#define GL_RGBA16I 0x8D88 -#define GL_RGB16I 0x8D89 -#define GL_RGBA8I 0x8D8E -#define GL_RGB8I 0x8D8F -#define GL_RED_INTEGER 0x8D94 -#define GL_GREEN_INTEGER 0x8D95 -#define GL_BLUE_INTEGER 0x8D96 -#define GL_RGB_INTEGER 0x8D98 -#define GL_RGBA_INTEGER 0x8D99 -#define GL_BGR_INTEGER 0x8D9A -#define GL_BGRA_INTEGER 0x8D9B -#define GL_SAMPLER_1D_ARRAY 0x8DC0 -#define GL_SAMPLER_2D_ARRAY 0x8DC1 -#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 -#define GL_UNSIGNED_INT_VEC2 0x8DC6 -#define GL_UNSIGNED_INT_VEC3 0x8DC7 -#define GL_UNSIGNED_INT_VEC4 0x8DC8 -#define GL_INT_SAMPLER_1D 0x8DC9 -#define GL_INT_SAMPLER_2D 0x8DCA -#define GL_INT_SAMPLER_3D 0x8DCB -#define GL_INT_SAMPLER_CUBE 0x8DCC -#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF -#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 -#define GL_QUERY_WAIT 0x8E13 -#define GL_QUERY_NO_WAIT 0x8E14 -#define GL_QUERY_BY_REGION_WAIT 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 -#define GL_BUFFER_ACCESS_FLAGS 0x911F -#define GL_BUFFER_MAP_LENGTH 0x9120 -#define GL_BUFFER_MAP_OFFSET 0x9121 -/* Reuse tokens from ARB_depth_buffer_float */ -/* reuse GL_DEPTH_COMPONENT32F */ -/* reuse GL_DEPTH32F_STENCIL8 */ -/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ -/* Reuse tokens from ARB_framebuffer_object */ -/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_DEFAULT */ -/* reuse GL_FRAMEBUFFER_UNDEFINED */ -/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ -/* reuse GL_INDEX */ -/* reuse GL_MAX_RENDERBUFFER_SIZE */ -/* reuse GL_DEPTH_STENCIL */ -/* reuse GL_UNSIGNED_INT_24_8 */ -/* reuse GL_DEPTH24_STENCIL8 */ -/* reuse GL_TEXTURE_STENCIL_SIZE */ -/* reuse GL_TEXTURE_RED_TYPE */ -/* reuse GL_TEXTURE_GREEN_TYPE */ -/* reuse GL_TEXTURE_BLUE_TYPE */ -/* reuse GL_TEXTURE_ALPHA_TYPE */ -/* reuse GL_TEXTURE_DEPTH_TYPE */ -/* reuse GL_UNSIGNED_NORMALIZED */ -/* reuse GL_FRAMEBUFFER_BINDING */ -/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_BINDING */ -/* reuse GL_READ_FRAMEBUFFER */ -/* reuse GL_DRAW_FRAMEBUFFER */ -/* reuse GL_READ_FRAMEBUFFER_BINDING */ -/* reuse GL_RENDERBUFFER_SAMPLES */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -/* reuse GL_FRAMEBUFFER_COMPLETE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ -/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ -/* reuse GL_MAX_COLOR_ATTACHMENTS */ -/* reuse GL_COLOR_ATTACHMENT0 */ -/* reuse GL_COLOR_ATTACHMENT1 */ -/* reuse GL_COLOR_ATTACHMENT2 */ -/* reuse GL_COLOR_ATTACHMENT3 */ -/* reuse GL_COLOR_ATTACHMENT4 */ -/* reuse GL_COLOR_ATTACHMENT5 */ -/* reuse GL_COLOR_ATTACHMENT6 */ -/* reuse GL_COLOR_ATTACHMENT7 */ -/* reuse GL_COLOR_ATTACHMENT8 */ -/* reuse GL_COLOR_ATTACHMENT9 */ -/* reuse GL_COLOR_ATTACHMENT10 */ -/* reuse GL_COLOR_ATTACHMENT11 */ -/* reuse GL_COLOR_ATTACHMENT12 */ -/* reuse GL_COLOR_ATTACHMENT13 */ -/* reuse GL_COLOR_ATTACHMENT14 */ -/* reuse GL_COLOR_ATTACHMENT15 */ -/* reuse GL_DEPTH_ATTACHMENT */ -/* reuse GL_STENCIL_ATTACHMENT */ -/* reuse GL_FRAMEBUFFER */ -/* reuse GL_RENDERBUFFER */ -/* reuse GL_RENDERBUFFER_WIDTH */ -/* reuse GL_RENDERBUFFER_HEIGHT */ -/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ -/* reuse GL_STENCIL_INDEX1 */ -/* reuse GL_STENCIL_INDEX4 */ -/* reuse GL_STENCIL_INDEX8 */ -/* reuse GL_STENCIL_INDEX16 */ -/* reuse GL_RENDERBUFFER_RED_SIZE */ -/* reuse GL_RENDERBUFFER_GREEN_SIZE */ -/* reuse GL_RENDERBUFFER_BLUE_SIZE */ -/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ -/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ -/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ -/* reuse GL_MAX_SAMPLES */ -/* Reuse tokens from ARB_framebuffer_sRGB */ -/* reuse GL_FRAMEBUFFER_SRGB */ -/* Reuse tokens from ARB_half_float_vertex */ -/* reuse GL_HALF_FLOAT */ -/* Reuse tokens from ARB_map_buffer_range */ -/* reuse GL_MAP_READ_BIT */ -/* reuse GL_MAP_WRITE_BIT */ -/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ -/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ -/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ -/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ -/* Reuse tokens from ARB_texture_compression_rgtc */ -/* reuse GL_COMPRESSED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ -/* reuse GL_COMPRESSED_RG_RGTC2 */ -/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ -/* Reuse tokens from ARB_texture_rg */ -/* reuse GL_RG */ -/* reuse GL_RG_INTEGER */ -/* reuse GL_R8 */ -/* reuse GL_R16 */ -/* reuse GL_RG8 */ -/* reuse GL_RG16 */ -/* reuse GL_R16F */ -/* reuse GL_R32F */ -/* reuse GL_RG16F */ -/* reuse GL_RG32F */ -/* reuse GL_R8I */ -/* reuse GL_R8UI */ -/* reuse GL_R16I */ -/* reuse GL_R16UI */ -/* reuse GL_R32I */ -/* reuse GL_R32UI */ -/* reuse GL_RG8I */ -/* reuse GL_RG8UI */ -/* reuse GL_RG16I */ -/* reuse GL_RG16UI */ -/* reuse GL_RG32I */ -/* reuse GL_RG32UI */ -/* Reuse tokens from ARB_vertex_array_object */ -/* reuse GL_VERTEX_ARRAY_BINDING */ -#endif - -#ifndef GL_VERSION_3_0_DEPRECATED -#define GL_CLAMP_VERTEX_COLOR 0x891A -#define GL_CLAMP_FRAGMENT_COLOR 0x891B -#define GL_ALPHA_INTEGER 0x8D97 -/* Reuse tokens from ARB_framebuffer_object */ -/* reuse GL_TEXTURE_LUMINANCE_TYPE */ -/* reuse GL_TEXTURE_INTENSITY_TYPE */ -#endif - -#ifndef GL_VERSION_3_1 -#define GL_SAMPLER_2D_RECT 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 -#define GL_SAMPLER_BUFFER 0x8DC2 -#define GL_INT_SAMPLER_2D_RECT 0x8DCD -#define GL_INT_SAMPLER_BUFFER 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 -#define GL_TEXTURE_BUFFER 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT 0x8C2E -#define GL_TEXTURE_RECTANGLE 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 -#define GL_RED_SNORM 0x8F90 -#define GL_RG_SNORM 0x8F91 -#define GL_RGB_SNORM 0x8F92 -#define GL_RGBA_SNORM 0x8F93 -#define GL_R8_SNORM 0x8F94 -#define GL_RG8_SNORM 0x8F95 -#define GL_RGB8_SNORM 0x8F96 -#define GL_RGBA8_SNORM 0x8F97 -#define GL_R16_SNORM 0x8F98 -#define GL_RG16_SNORM 0x8F99 -#define GL_RGB16_SNORM 0x8F9A -#define GL_RGBA16_SNORM 0x8F9B -#define GL_SIGNED_NORMALIZED 0x8F9C -#define GL_PRIMITIVE_RESTART 0x8F9D -#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E -/* Reuse tokens from ARB_copy_buffer */ -/* reuse GL_COPY_READ_BUFFER */ -/* reuse GL_COPY_WRITE_BUFFER */ -/* Reuse tokens from ARB_draw_instanced (none) */ -/* Reuse tokens from ARB_uniform_buffer_object */ -/* reuse GL_UNIFORM_BUFFER */ -/* reuse GL_UNIFORM_BUFFER_BINDING */ -/* reuse GL_UNIFORM_BUFFER_START */ -/* reuse GL_UNIFORM_BUFFER_SIZE */ -/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */ -/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ -/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */ -/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */ -/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */ -/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ -/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ -/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ -/* reuse GL_ACTIVE_UNIFORM_BLOCKS */ -/* reuse GL_UNIFORM_TYPE */ -/* reuse GL_UNIFORM_SIZE */ -/* reuse GL_UNIFORM_NAME_LENGTH */ -/* reuse GL_UNIFORM_BLOCK_INDEX */ -/* reuse GL_UNIFORM_OFFSET */ -/* reuse GL_UNIFORM_ARRAY_STRIDE */ -/* reuse GL_UNIFORM_MATRIX_STRIDE */ -/* reuse GL_UNIFORM_IS_ROW_MAJOR */ -/* reuse GL_UNIFORM_BLOCK_BINDING */ -/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */ -/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */ -/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ -/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ -/* reuse GL_INVALID_INDEX */ -#endif - -#ifndef GL_VERSION_3_2 -#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 -#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 -#define GL_LINES_ADJACENCY 0x000A -#define GL_LINE_STRIP_ADJACENCY 0x000B -#define GL_TRIANGLES_ADJACENCY 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D -#define GL_PROGRAM_POINT_SIZE 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 -#define GL_GEOMETRY_SHADER 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT 0x8916 -#define GL_GEOMETRY_INPUT_TYPE 0x8917 -#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 -#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 -#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 -#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 -#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 -#define GL_CONTEXT_PROFILE_MASK 0x9126 -/* reuse GL_MAX_VARYING_COMPONENTS */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -/* Reuse tokens from ARB_depth_clamp */ -/* reuse GL_DEPTH_CLAMP */ -/* Reuse tokens from ARB_draw_elements_base_vertex (none) */ -/* Reuse tokens from ARB_fragment_coord_conventions (none) */ -/* Reuse tokens from ARB_provoking_vertex */ -/* reuse GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION */ -/* reuse GL_FIRST_VERTEX_CONVENTION */ -/* reuse GL_LAST_VERTEX_CONVENTION */ -/* reuse GL_PROVOKING_VERTEX */ -/* Reuse tokens from ARB_seamless_cube_map */ -/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ -/* Reuse tokens from ARB_sync */ -/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */ -/* reuse GL_OBJECT_TYPE */ -/* reuse GL_SYNC_CONDITION */ -/* reuse GL_SYNC_STATUS */ -/* reuse GL_SYNC_FLAGS */ -/* reuse GL_SYNC_FENCE */ -/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */ -/* reuse GL_UNSIGNALED */ -/* reuse GL_SIGNALED */ -/* reuse GL_ALREADY_SIGNALED */ -/* reuse GL_TIMEOUT_EXPIRED */ -/* reuse GL_CONDITION_SATISFIED */ -/* reuse GL_WAIT_FAILED */ -/* reuse GL_TIMEOUT_IGNORED */ -/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */ -/* reuse GL_TIMEOUT_IGNORED */ -/* Reuse tokens from ARB_texture_multisample */ -/* reuse GL_SAMPLE_POSITION */ -/* reuse GL_SAMPLE_MASK */ -/* reuse GL_SAMPLE_MASK_VALUE */ -/* reuse GL_MAX_SAMPLE_MASK_WORDS */ -/* reuse GL_TEXTURE_2D_MULTISAMPLE */ -/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */ -/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */ -/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_TEXTURE_SAMPLES */ -/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ -/* reuse GL_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ -/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */ -/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */ -/* reuse GL_MAX_INTEGER_SAMPLES */ -/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ -#endif - -#ifndef GL_VERSION_3_3 -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE -/* Reuse tokens from ARB_blend_func_extended */ -/* reuse GL_SRC1_COLOR */ -/* reuse GL_ONE_MINUS_SRC1_COLOR */ -/* reuse GL_ONE_MINUS_SRC1_ALPHA */ -/* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ -/* Reuse tokens from ARB_explicit_attrib_location (none) */ -/* Reuse tokens from ARB_occlusion_query2 */ -/* reuse GL_ANY_SAMPLES_PASSED */ -/* Reuse tokens from ARB_sampler_objects */ -/* reuse GL_SAMPLER_BINDING */ -/* Reuse tokens from ARB_shader_bit_encoding (none) */ -/* Reuse tokens from ARB_texture_rgb10_a2ui */ -/* reuse GL_RGB10_A2UI */ -/* Reuse tokens from ARB_texture_swizzle */ -/* reuse GL_TEXTURE_SWIZZLE_R */ -/* reuse GL_TEXTURE_SWIZZLE_G */ -/* reuse GL_TEXTURE_SWIZZLE_B */ -/* reuse GL_TEXTURE_SWIZZLE_A */ -/* reuse GL_TEXTURE_SWIZZLE_RGBA */ -/* Reuse tokens from ARB_timer_query */ -/* reuse GL_TIME_ELAPSED */ -/* reuse GL_TIMESTAMP */ -/* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */ -/* reuse GL_INT_2_10_10_10_REV */ -#endif - -#ifndef GL_VERSION_4_0 -#define GL_SAMPLE_SHADING 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F -#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F -/* Reuse tokens from ARB_texture_query_lod (none) */ -/* Reuse tokens from ARB_draw_buffers_blend (none) */ -/* Reuse tokens from ARB_draw_indirect */ -/* reuse GL_DRAW_INDIRECT_BUFFER */ -/* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */ -/* Reuse tokens from ARB_gpu_shader5 */ -/* reuse GL_GEOMETRY_SHADER_INVOCATIONS */ -/* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ -/* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ -/* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ -/* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ -/* reuse GL_MAX_VERTEX_STREAMS */ -/* Reuse tokens from ARB_gpu_shader_fp64 */ -/* reuse GL_DOUBLE_VEC2 */ -/* reuse GL_DOUBLE_VEC3 */ -/* reuse GL_DOUBLE_VEC4 */ -/* reuse GL_DOUBLE_MAT2 */ -/* reuse GL_DOUBLE_MAT3 */ -/* reuse GL_DOUBLE_MAT4 */ -/* reuse GL_DOUBLE_MAT2x3 */ -/* reuse GL_DOUBLE_MAT2x4 */ -/* reuse GL_DOUBLE_MAT3x2 */ -/* reuse GL_DOUBLE_MAT3x4 */ -/* reuse GL_DOUBLE_MAT4x2 */ -/* reuse GL_DOUBLE_MAT4x3 */ -/* Reuse tokens from ARB_shader_subroutine */ -/* reuse GL_ACTIVE_SUBROUTINES */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ -/* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ -/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ -/* reuse GL_MAX_SUBROUTINES */ -/* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ -/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */ -/* reuse GL_COMPATIBLE_SUBROUTINES */ -/* Reuse tokens from ARB_tessellation_shader */ -/* reuse GL_PATCHES */ -/* reuse GL_PATCH_VERTICES */ -/* reuse GL_PATCH_DEFAULT_INNER_LEVEL */ -/* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */ -/* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */ -/* reuse GL_TESS_GEN_MODE */ -/* reuse GL_TESS_GEN_SPACING */ -/* reuse GL_TESS_GEN_VERTEX_ORDER */ -/* reuse GL_TESS_GEN_POINT_MODE */ -/* reuse GL_ISOLINES */ -/* reuse GL_FRACTIONAL_ODD */ -/* reuse GL_FRACTIONAL_EVEN */ -/* reuse GL_MAX_PATCH_VERTICES */ -/* reuse GL_MAX_TESS_GEN_LEVEL */ -/* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ -/* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ -/* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_PATCH_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ -/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ -/* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ -/* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ -/* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ -/* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ -/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ -/* reuse GL_TESS_EVALUATION_SHADER */ -/* reuse GL_TESS_CONTROL_SHADER */ -/* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */ -/* Reuse tokens from ARB_transform_feedback2 */ -/* reuse GL_TRANSFORM_FEEDBACK */ -/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ -/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ -/* reuse GL_TRANSFORM_FEEDBACK_BINDING */ -/* Reuse tokens from ARB_transform_feedback3 */ -/* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ -/* reuse GL_MAX_VERTEX_STREAMS */ -#endif - -#ifndef GL_VERSION_4_1 -/* Reuse tokens from ARB_ES2_compatibility */ -/* reuse GL_FIXED */ -/* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */ -/* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */ -/* reuse GL_LOW_FLOAT */ -/* reuse GL_MEDIUM_FLOAT */ -/* reuse GL_HIGH_FLOAT */ -/* reuse GL_LOW_INT */ -/* reuse GL_MEDIUM_INT */ -/* reuse GL_HIGH_INT */ -/* reuse GL_SHADER_COMPILER */ -/* reuse GL_NUM_SHADER_BINARY_FORMATS */ -/* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */ -/* reuse GL_MAX_VARYING_VECTORS */ -/* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */ -/* Reuse tokens from ARB_get_program_binary */ -/* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ -/* reuse GL_PROGRAM_BINARY_LENGTH */ -/* reuse GL_NUM_PROGRAM_BINARY_FORMATS */ -/* reuse GL_PROGRAM_BINARY_FORMATS */ -/* Reuse tokens from ARB_separate_shader_objects */ -/* reuse GL_VERTEX_SHADER_BIT */ -/* reuse GL_FRAGMENT_SHADER_BIT */ -/* reuse GL_GEOMETRY_SHADER_BIT */ -/* reuse GL_TESS_CONTROL_SHADER_BIT */ -/* reuse GL_TESS_EVALUATION_SHADER_BIT */ -/* reuse GL_ALL_SHADER_BITS */ -/* reuse GL_PROGRAM_SEPARABLE */ -/* reuse GL_ACTIVE_PROGRAM */ -/* reuse GL_PROGRAM_PIPELINE_BINDING */ -/* Reuse tokens from ARB_shader_precision (none) */ -/* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */ -/* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */ -/* reuse GL_MAX_VIEWPORTS */ -/* reuse GL_VIEWPORT_SUBPIXEL_BITS */ -/* reuse GL_VIEWPORT_BOUNDS_RANGE */ -/* reuse GL_LAYER_PROVOKING_VERTEX */ -/* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ -/* reuse GL_UNDEFINED_VERTEX */ -#endif - -#ifndef GL_VERSION_4_2 -/* Reuse tokens from ARB_base_instance (none) */ -/* Reuse tokens from ARB_shading_language_420pack (none) */ -/* Reuse tokens from ARB_transform_feedback_instanced (none) */ -/* Reuse tokens from ARB_compressed_texture_pixel_storage */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_WIDTH */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_HEIGHT */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_DEPTH */ -/* reuse GL_UNPACK_COMPRESSED_BLOCK_SIZE */ -/* reuse GL_PACK_COMPRESSED_BLOCK_WIDTH */ -/* reuse GL_PACK_COMPRESSED_BLOCK_HEIGHT */ -/* reuse GL_PACK_COMPRESSED_BLOCK_DEPTH */ -/* reuse GL_PACK_COMPRESSED_BLOCK_SIZE */ -/* Reuse tokens from ARB_conservative_depth (none) */ -/* Reuse tokens from ARB_internalformat_query */ -/* reuse GL_NUM_SAMPLE_COUNTS */ -/* Reuse tokens from ARB_map_buffer_alignment */ -/* reuse GL_MIN_MAP_BUFFER_ALIGNMENT */ -/* Reuse tokens from ARB_shader_atomic_counters */ -/* reuse GL_ATOMIC_COUNTER_BUFFER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_BINDING */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_START */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_SIZE */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER */ -/* reuse GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER */ -/* reuse GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_MAX_VERTEX_ATOMIC_COUNTERS */ -/* reuse GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS */ -/* reuse GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS */ -/* reuse GL_MAX_GEOMETRY_ATOMIC_COUNTERS */ -/* reuse GL_MAX_FRAGMENT_ATOMIC_COUNTERS */ -/* reuse GL_MAX_COMBINED_ATOMIC_COUNTERS */ -/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE */ -/* reuse GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS */ -/* reuse GL_ACTIVE_ATOMIC_COUNTER_BUFFERS */ -/* reuse GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX */ -/* reuse GL_UNSIGNED_INT_ATOMIC_COUNTER */ -/* Reuse tokens from ARB_shader_image_load_store */ -/* reuse GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT */ -/* reuse GL_ELEMENT_ARRAY_BARRIER_BIT */ -/* reuse GL_UNIFORM_BARRIER_BIT */ -/* reuse GL_TEXTURE_FETCH_BARRIER_BIT */ -/* reuse GL_SHADER_IMAGE_ACCESS_BARRIER_BIT */ -/* reuse GL_COMMAND_BARRIER_BIT */ -/* reuse GL_PIXEL_BUFFER_BARRIER_BIT */ -/* reuse GL_TEXTURE_UPDATE_BARRIER_BIT */ -/* reuse GL_BUFFER_UPDATE_BARRIER_BIT */ -/* reuse GL_FRAMEBUFFER_BARRIER_BIT */ -/* reuse GL_TRANSFORM_FEEDBACK_BARRIER_BIT */ -/* reuse GL_ATOMIC_COUNTER_BARRIER_BIT */ -/* reuse GL_ALL_BARRIER_BITS */ -/* reuse GL_MAX_IMAGE_UNITS */ -/* reuse GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS */ -/* reuse GL_IMAGE_BINDING_NAME */ -/* reuse GL_IMAGE_BINDING_LEVEL */ -/* reuse GL_IMAGE_BINDING_LAYERED */ -/* reuse GL_IMAGE_BINDING_LAYER */ -/* reuse GL_IMAGE_BINDING_ACCESS */ -/* reuse GL_IMAGE_1D */ -/* reuse GL_IMAGE_2D */ -/* reuse GL_IMAGE_3D */ -/* reuse GL_IMAGE_2D_RECT */ -/* reuse GL_IMAGE_CUBE */ -/* reuse GL_IMAGE_BUFFER */ -/* reuse GL_IMAGE_1D_ARRAY */ -/* reuse GL_IMAGE_2D_ARRAY */ -/* reuse GL_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_INT_IMAGE_1D */ -/* reuse GL_INT_IMAGE_2D */ -/* reuse GL_INT_IMAGE_3D */ -/* reuse GL_INT_IMAGE_2D_RECT */ -/* reuse GL_INT_IMAGE_CUBE */ -/* reuse GL_INT_IMAGE_BUFFER */ -/* reuse GL_INT_IMAGE_1D_ARRAY */ -/* reuse GL_INT_IMAGE_2D_ARRAY */ -/* reuse GL_INT_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_INT_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_1D */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D */ -/* reuse GL_UNSIGNED_INT_IMAGE_3D */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_RECT */ -/* reuse GL_UNSIGNED_INT_IMAGE_CUBE */ -/* reuse GL_UNSIGNED_INT_IMAGE_BUFFER */ -/* reuse GL_UNSIGNED_INT_IMAGE_1D_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE */ -/* reuse GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY */ -/* reuse GL_MAX_IMAGE_SAMPLES */ -/* reuse GL_IMAGE_BINDING_FORMAT */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_TYPE */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE */ -/* reuse GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS */ -/* reuse GL_MAX_VERTEX_IMAGE_UNIFORMS */ -/* reuse GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS */ -/* reuse GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS */ -/* reuse GL_MAX_GEOMETRY_IMAGE_UNIFORMS */ -/* reuse GL_MAX_FRAGMENT_IMAGE_UNIFORMS */ -/* reuse GL_MAX_COMBINED_IMAGE_UNIFORMS */ -/* Reuse tokens from ARB_shading_language_packing (none) */ -/* Reuse tokens from ARB_texture_storage */ -/* reuse GL_TEXTURE_IMMUTABLE_FORMAT */ -#endif - -#ifndef GL_ARB_multitexture -#define GL_TEXTURE0_ARB 0x84C0 -#define GL_TEXTURE1_ARB 0x84C1 -#define GL_TEXTURE2_ARB 0x84C2 -#define GL_TEXTURE3_ARB 0x84C3 -#define GL_TEXTURE4_ARB 0x84C4 -#define GL_TEXTURE5_ARB 0x84C5 -#define GL_TEXTURE6_ARB 0x84C6 -#define GL_TEXTURE7_ARB 0x84C7 -#define GL_TEXTURE8_ARB 0x84C8 -#define GL_TEXTURE9_ARB 0x84C9 -#define GL_TEXTURE10_ARB 0x84CA -#define GL_TEXTURE11_ARB 0x84CB -#define GL_TEXTURE12_ARB 0x84CC -#define GL_TEXTURE13_ARB 0x84CD -#define GL_TEXTURE14_ARB 0x84CE -#define GL_TEXTURE15_ARB 0x84CF -#define GL_TEXTURE16_ARB 0x84D0 -#define GL_TEXTURE17_ARB 0x84D1 -#define GL_TEXTURE18_ARB 0x84D2 -#define GL_TEXTURE19_ARB 0x84D3 -#define GL_TEXTURE20_ARB 0x84D4 -#define GL_TEXTURE21_ARB 0x84D5 -#define GL_TEXTURE22_ARB 0x84D6 -#define GL_TEXTURE23_ARB 0x84D7 -#define GL_TEXTURE24_ARB 0x84D8 -#define GL_TEXTURE25_ARB 0x84D9 -#define GL_TEXTURE26_ARB 0x84DA -#define GL_TEXTURE27_ARB 0x84DB -#define GL_TEXTURE28_ARB 0x84DC -#define GL_TEXTURE29_ARB 0x84DD -#define GL_TEXTURE30_ARB 0x84DE -#define GL_TEXTURE31_ARB 0x84DF -#define GL_ACTIVE_TEXTURE_ARB 0x84E0 -#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 -#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 -#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 -#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 -#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 -#endif - -#ifndef GL_ARB_multisample -#define GL_MULTISAMPLE_ARB 0x809D -#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F -#define GL_SAMPLE_COVERAGE_ARB 0x80A0 -#define GL_SAMPLE_BUFFERS_ARB 0x80A8 -#define GL_SAMPLES_ARB 0x80A9 -#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA -#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB -#define GL_MULTISAMPLE_BIT_ARB 0x20000000 -#endif - -#ifndef GL_ARB_texture_env_add -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_NORMAL_MAP_ARB 0x8511 -#define GL_REFLECTION_MAP_ARB 0x8512 -#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C -#endif - -#ifndef GL_ARB_texture_compression -#define GL_COMPRESSED_ALPHA_ARB 0x84E9 -#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA -#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB -#define GL_COMPRESSED_INTENSITY_ARB 0x84EC -#define GL_COMPRESSED_RGB_ARB 0x84ED -#define GL_COMPRESSED_RGBA_ARB 0x84EE -#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF -#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 -#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 -#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 -#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_CLAMP_TO_BORDER_ARB 0x812D -#endif - -#ifndef GL_ARB_point_parameters -#define GL_POINT_SIZE_MIN_ARB 0x8126 -#define GL_POINT_SIZE_MAX_ARB 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 -#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 -#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 -#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 -#define GL_VERTEX_BLEND_ARB 0x86A7 -#define GL_CURRENT_WEIGHT_ARB 0x86A8 -#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 -#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA -#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB -#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC -#define GL_WEIGHT_ARRAY_ARB 0x86AD -#define GL_MODELVIEW0_ARB 0x1700 -#define GL_MODELVIEW1_ARB 0x850A -#define GL_MODELVIEW2_ARB 0x8722 -#define GL_MODELVIEW3_ARB 0x8723 -#define GL_MODELVIEW4_ARB 0x8724 -#define GL_MODELVIEW5_ARB 0x8725 -#define GL_MODELVIEW6_ARB 0x8726 -#define GL_MODELVIEW7_ARB 0x8727 -#define GL_MODELVIEW8_ARB 0x8728 -#define GL_MODELVIEW9_ARB 0x8729 -#define GL_MODELVIEW10_ARB 0x872A -#define GL_MODELVIEW11_ARB 0x872B -#define GL_MODELVIEW12_ARB 0x872C -#define GL_MODELVIEW13_ARB 0x872D -#define GL_MODELVIEW14_ARB 0x872E -#define GL_MODELVIEW15_ARB 0x872F -#define GL_MODELVIEW16_ARB 0x8730 -#define GL_MODELVIEW17_ARB 0x8731 -#define GL_MODELVIEW18_ARB 0x8732 -#define GL_MODELVIEW19_ARB 0x8733 -#define GL_MODELVIEW20_ARB 0x8734 -#define GL_MODELVIEW21_ARB 0x8735 -#define GL_MODELVIEW22_ARB 0x8736 -#define GL_MODELVIEW23_ARB 0x8737 -#define GL_MODELVIEW24_ARB 0x8738 -#define GL_MODELVIEW25_ARB 0x8739 -#define GL_MODELVIEW26_ARB 0x873A -#define GL_MODELVIEW27_ARB 0x873B -#define GL_MODELVIEW28_ARB 0x873C -#define GL_MODELVIEW29_ARB 0x873D -#define GL_MODELVIEW30_ARB 0x873E -#define GL_MODELVIEW31_ARB 0x873F -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_MATRIX_PALETTE_ARB 0x8840 -#define GL_MAX_MATRIX_PALETTE_STACK_DEPTH_ARB 0x8841 -#define GL_MAX_PALETTE_MATRICES_ARB 0x8842 -#define GL_CURRENT_PALETTE_MATRIX_ARB 0x8843 -#define GL_MATRIX_INDEX_ARRAY_ARB 0x8844 -#define GL_CURRENT_MATRIX_INDEX_ARB 0x8845 -#define GL_MATRIX_INDEX_ARRAY_SIZE_ARB 0x8846 -#define GL_MATRIX_INDEX_ARRAY_TYPE_ARB 0x8847 -#define GL_MATRIX_INDEX_ARRAY_STRIDE_ARB 0x8848 -#define GL_MATRIX_INDEX_ARRAY_POINTER_ARB 0x8849 -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_COMBINE_ARB 0x8570 -#define GL_COMBINE_RGB_ARB 0x8571 -#define GL_COMBINE_ALPHA_ARB 0x8572 -#define GL_SOURCE0_RGB_ARB 0x8580 -#define GL_SOURCE1_RGB_ARB 0x8581 -#define GL_SOURCE2_RGB_ARB 0x8582 -#define GL_SOURCE0_ALPHA_ARB 0x8588 -#define GL_SOURCE1_ALPHA_ARB 0x8589 -#define GL_SOURCE2_ALPHA_ARB 0x858A -#define GL_OPERAND0_RGB_ARB 0x8590 -#define GL_OPERAND1_RGB_ARB 0x8591 -#define GL_OPERAND2_RGB_ARB 0x8592 -#define GL_OPERAND0_ALPHA_ARB 0x8598 -#define GL_OPERAND1_ALPHA_ARB 0x8599 -#define GL_OPERAND2_ALPHA_ARB 0x859A -#define GL_RGB_SCALE_ARB 0x8573 -#define GL_ADD_SIGNED_ARB 0x8574 -#define GL_INTERPOLATE_ARB 0x8575 -#define GL_SUBTRACT_ARB 0x84E7 -#define GL_CONSTANT_ARB 0x8576 -#define GL_PRIMARY_COLOR_ARB 0x8577 -#define GL_PREVIOUS_ARB 0x8578 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_DOT3_RGB_ARB 0x86AE -#define GL_DOT3_RGBA_ARB 0x86AF -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_ARB 0x8370 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_DEPTH_COMPONENT16_ARB 0x81A5 -#define GL_DEPTH_COMPONENT24_ARB 0x81A6 -#define GL_DEPTH_COMPONENT32_ARB 0x81A7 -#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A -#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B -#endif - -#ifndef GL_ARB_shadow -#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C -#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D -#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF -#endif - -#ifndef GL_ARB_window_pos -#endif - -#ifndef GL_ARB_vertex_program -#define GL_COLOR_SUM_ARB 0x8458 -#define GL_VERTEX_PROGRAM_ARB 0x8620 -#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 -#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 -#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 -#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 -#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 -#define GL_PROGRAM_LENGTH_ARB 0x8627 -#define GL_PROGRAM_STRING_ARB 0x8628 -#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E -#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F -#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 -#define GL_CURRENT_MATRIX_ARB 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 -#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 -#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B -#define GL_PROGRAM_BINDING_ARB 0x8677 -#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 -#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A -#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 -#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 -#define GL_PROGRAM_FORMAT_ARB 0x8876 -#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 -#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 -#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 -#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 -#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 -#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 -#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 -#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 -#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 -#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 -#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA -#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB -#define GL_PROGRAM_ATTRIBS_ARB 0x88AC -#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD -#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE -#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF -#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 -#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 -#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 -#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 -#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 -#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 -#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 -#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 -#define GL_MATRIX0_ARB 0x88C0 -#define GL_MATRIX1_ARB 0x88C1 -#define GL_MATRIX2_ARB 0x88C2 -#define GL_MATRIX3_ARB 0x88C3 -#define GL_MATRIX4_ARB 0x88C4 -#define GL_MATRIX5_ARB 0x88C5 -#define GL_MATRIX6_ARB 0x88C6 -#define GL_MATRIX7_ARB 0x88C7 -#define GL_MATRIX8_ARB 0x88C8 -#define GL_MATRIX9_ARB 0x88C9 -#define GL_MATRIX10_ARB 0x88CA -#define GL_MATRIX11_ARB 0x88CB -#define GL_MATRIX12_ARB 0x88CC -#define GL_MATRIX13_ARB 0x88CD -#define GL_MATRIX14_ARB 0x88CE -#define GL_MATRIX15_ARB 0x88CF -#define GL_MATRIX16_ARB 0x88D0 -#define GL_MATRIX17_ARB 0x88D1 -#define GL_MATRIX18_ARB 0x88D2 -#define GL_MATRIX19_ARB 0x88D3 -#define GL_MATRIX20_ARB 0x88D4 -#define GL_MATRIX21_ARB 0x88D5 -#define GL_MATRIX22_ARB 0x88D6 -#define GL_MATRIX23_ARB 0x88D7 -#define GL_MATRIX24_ARB 0x88D8 -#define GL_MATRIX25_ARB 0x88D9 -#define GL_MATRIX26_ARB 0x88DA -#define GL_MATRIX27_ARB 0x88DB -#define GL_MATRIX28_ARB 0x88DC -#define GL_MATRIX29_ARB 0x88DD -#define GL_MATRIX30_ARB 0x88DE -#define GL_MATRIX31_ARB 0x88DF -#endif - -#ifndef GL_ARB_fragment_program -#define GL_FRAGMENT_PROGRAM_ARB 0x8804 -#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 -#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 -#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 -#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 -#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 -#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A -#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B -#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C -#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D -#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E -#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F -#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 -#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_BUFFER_SIZE_ARB 0x8764 -#define GL_BUFFER_USAGE_ARB 0x8765 -#define GL_ARRAY_BUFFER_ARB 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 -#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 -#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 -#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 -#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 -#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 -#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 -#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A -#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B -#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C -#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D -#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E -#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F -#define GL_READ_ONLY_ARB 0x88B8 -#define GL_WRITE_ONLY_ARB 0x88B9 -#define GL_READ_WRITE_ARB 0x88BA -#define GL_BUFFER_ACCESS_ARB 0x88BB -#define GL_BUFFER_MAPPED_ARB 0x88BC -#define GL_BUFFER_MAP_POINTER_ARB 0x88BD -#define GL_STREAM_DRAW_ARB 0x88E0 -#define GL_STREAM_READ_ARB 0x88E1 -#define GL_STREAM_COPY_ARB 0x88E2 -#define GL_STATIC_DRAW_ARB 0x88E4 -#define GL_STATIC_READ_ARB 0x88E5 -#define GL_STATIC_COPY_ARB 0x88E6 -#define GL_DYNAMIC_DRAW_ARB 0x88E8 -#define GL_DYNAMIC_READ_ARB 0x88E9 -#define GL_DYNAMIC_COPY_ARB 0x88EA -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_QUERY_COUNTER_BITS_ARB 0x8864 -#define GL_CURRENT_QUERY_ARB 0x8865 -#define GL_QUERY_RESULT_ARB 0x8866 -#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 -#define GL_SAMPLES_PASSED_ARB 0x8914 -#endif - -#ifndef GL_ARB_shader_objects -#define GL_PROGRAM_OBJECT_ARB 0x8B40 -#define GL_SHADER_OBJECT_ARB 0x8B48 -#define GL_OBJECT_TYPE_ARB 0x8B4E -#define GL_OBJECT_SUBTYPE_ARB 0x8B4F -#define GL_FLOAT_VEC2_ARB 0x8B50 -#define GL_FLOAT_VEC3_ARB 0x8B51 -#define GL_FLOAT_VEC4_ARB 0x8B52 -#define GL_INT_VEC2_ARB 0x8B53 -#define GL_INT_VEC3_ARB 0x8B54 -#define GL_INT_VEC4_ARB 0x8B55 -#define GL_BOOL_ARB 0x8B56 -#define GL_BOOL_VEC2_ARB 0x8B57 -#define GL_BOOL_VEC3_ARB 0x8B58 -#define GL_BOOL_VEC4_ARB 0x8B59 -#define GL_FLOAT_MAT2_ARB 0x8B5A -#define GL_FLOAT_MAT3_ARB 0x8B5B -#define GL_FLOAT_MAT4_ARB 0x8B5C -#define GL_SAMPLER_1D_ARB 0x8B5D -#define GL_SAMPLER_2D_ARB 0x8B5E -#define GL_SAMPLER_3D_ARB 0x8B5F -#define GL_SAMPLER_CUBE_ARB 0x8B60 -#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 -#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 -#define GL_SAMPLER_2D_RECT_ARB 0x8B63 -#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 -#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 -#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 -#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 -#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 -#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 -#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 -#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 -#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 -#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_VERTEX_SHADER_ARB 0x8B31 -#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A -#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C -#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D -#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 -#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_FRAGMENT_SHADER_ARB 0x8B30 -#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 -#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#endif - -#ifndef GL_ARB_point_sprite -#define GL_POINT_SPRITE_ARB 0x8861 -#define GL_COORD_REPLACE_ARB 0x8862 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 -#define GL_DRAW_BUFFER0_ARB 0x8825 -#define GL_DRAW_BUFFER1_ARB 0x8826 -#define GL_DRAW_BUFFER2_ARB 0x8827 -#define GL_DRAW_BUFFER3_ARB 0x8828 -#define GL_DRAW_BUFFER4_ARB 0x8829 -#define GL_DRAW_BUFFER5_ARB 0x882A -#define GL_DRAW_BUFFER6_ARB 0x882B -#define GL_DRAW_BUFFER7_ARB 0x882C -#define GL_DRAW_BUFFER8_ARB 0x882D -#define GL_DRAW_BUFFER9_ARB 0x882E -#define GL_DRAW_BUFFER10_ARB 0x882F -#define GL_DRAW_BUFFER11_ARB 0x8830 -#define GL_DRAW_BUFFER12_ARB 0x8831 -#define GL_DRAW_BUFFER13_ARB 0x8832 -#define GL_DRAW_BUFFER14_ARB 0x8833 -#define GL_DRAW_BUFFER15_ARB 0x8834 -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_RGBA_FLOAT_MODE_ARB 0x8820 -#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A -#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B -#define GL_CLAMP_READ_COLOR_ARB 0x891C -#define GL_FIXED_ONLY_ARB 0x891D -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_HALF_FLOAT_ARB 0x140B -#endif - -#ifndef GL_ARB_texture_float -#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 -#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 -#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 -#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 -#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 -#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 -#define GL_RGBA32F_ARB 0x8814 -#define GL_RGB32F_ARB 0x8815 -#define GL_ALPHA32F_ARB 0x8816 -#define GL_INTENSITY32F_ARB 0x8817 -#define GL_LUMINANCE32F_ARB 0x8818 -#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 -#define GL_RGBA16F_ARB 0x881A -#define GL_RGB16F_ARB 0x881B -#define GL_ALPHA16F_ARB 0x881C -#define GL_INTENSITY16F_ARB 0x881D -#define GL_LUMINANCE16F_ARB 0x881E -#define GL_LUMINANCE_ALPHA16F_ARB 0x881F -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_DEPTH_COMPONENT32F 0x8CAC -#define GL_DEPTH32F_STENCIL8 0x8CAD -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD -#endif - -#ifndef GL_ARB_draw_instanced -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 -#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 -#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 -#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 -#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 -#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 -#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 -#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 -#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 -#define GL_FRAMEBUFFER_DEFAULT 0x8218 -#define GL_FRAMEBUFFER_UNDEFINED 0x8219 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A -#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 -#define GL_DEPTH_STENCIL 0x84F9 -#define GL_UNSIGNED_INT_24_8 0x84FA -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE 0x88F1 -#define GL_TEXTURE_RED_TYPE 0x8C10 -#define GL_TEXTURE_GREEN_TYPE 0x8C11 -#define GL_TEXTURE_BLUE_TYPE 0x8C12 -#define GL_TEXTURE_ALPHA_TYPE 0x8C13 -#define GL_TEXTURE_DEPTH_TYPE 0x8C16 -#define GL_UNSIGNED_NORMALIZED 0x8C17 -#define GL_FRAMEBUFFER_BINDING 0x8CA6 -#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING -#define GL_RENDERBUFFER_BINDING 0x8CA7 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA -#define GL_RENDERBUFFER_SAMPLES 0x8CAB -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_COLOR_ATTACHMENT1 0x8CE1 -#define GL_COLOR_ATTACHMENT2 0x8CE2 -#define GL_COLOR_ATTACHMENT3 0x8CE3 -#define GL_COLOR_ATTACHMENT4 0x8CE4 -#define GL_COLOR_ATTACHMENT5 0x8CE5 -#define GL_COLOR_ATTACHMENT6 0x8CE6 -#define GL_COLOR_ATTACHMENT7 0x8CE7 -#define GL_COLOR_ATTACHMENT8 0x8CE8 -#define GL_COLOR_ATTACHMENT9 0x8CE9 -#define GL_COLOR_ATTACHMENT10 0x8CEA -#define GL_COLOR_ATTACHMENT11 0x8CEB -#define GL_COLOR_ATTACHMENT12 0x8CEC -#define GL_COLOR_ATTACHMENT13 0x8CED -#define GL_COLOR_ATTACHMENT14 0x8CEE -#define GL_COLOR_ATTACHMENT15 0x8CEF -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_FRAMEBUFFER 0x8D40 -#define GL_RENDERBUFFER 0x8D41 -#define GL_RENDERBUFFER_WIDTH 0x8D42 -#define GL_RENDERBUFFER_HEIGHT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 -#define GL_STENCIL_INDEX1 0x8D46 -#define GL_STENCIL_INDEX4 0x8D47 -#define GL_STENCIL_INDEX8 0x8D48 -#define GL_STENCIL_INDEX16 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 -#define GL_MAX_SAMPLES 0x8D57 -#endif - -#ifndef GL_ARB_framebuffer_object_DEPRECATED -#define GL_INDEX 0x8222 -#define GL_TEXTURE_LUMINANCE_TYPE 0x8C14 -#define GL_TEXTURE_INTENSITY_TYPE 0x8C15 -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB 0x8DB9 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_LINES_ADJACENCY_ARB 0x000A -#define GL_LINE_STRIP_ADJACENCY_ARB 0x000B -#define GL_TRIANGLES_ADJACENCY_ARB 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_ARB 0x000D -#define GL_PROGRAM_POINT_SIZE_ARB 0x8642 -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_ARB 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_ARB 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_ARB 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_ARB 0x8DA9 -#define GL_GEOMETRY_SHADER_ARB 0x8DD9 -#define GL_GEOMETRY_VERTICES_OUT_ARB 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_ARB 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_ARB 0x8DDC -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_ARB 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_ARB 0x8DDE -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_ARB 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_ARB 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_ARB 0x8DE1 -/* reuse GL_MAX_VARYING_COMPONENTS */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_HALF_FLOAT 0x140B -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_MAP_READ_BIT 0x0001 -#define GL_MAP_WRITE_BIT 0x0002 -#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 -#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 -#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 -#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_TEXTURE_BUFFER_ARB 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_ARB 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_ARB 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_ARB 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_ARB 0x8C2E -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC -#define GL_COMPRESSED_RG_RGTC2 0x8DBD -#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE -#endif - -#ifndef GL_ARB_texture_rg -#define GL_RG 0x8227 -#define GL_RG_INTEGER 0x8228 -#define GL_R8 0x8229 -#define GL_R16 0x822A -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_R8I 0x8231 -#define GL_R8UI 0x8232 -#define GL_R16I 0x8233 -#define GL_R16UI 0x8234 -#define GL_R32I 0x8235 -#define GL_R32UI 0x8236 -#define GL_RG8I 0x8237 -#define GL_RG8UI 0x8238 -#define GL_RG16I 0x8239 -#define GL_RG16UI 0x823A -#define GL_RG32I 0x823B -#define GL_RG32UI 0x823C -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING 0x85B5 -#endif - -#ifndef GL_ARB_uniform_buffer_object -#define GL_UNIFORM_BUFFER 0x8A11 -#define GL_UNIFORM_BUFFER_BINDING 0x8A28 -#define GL_UNIFORM_BUFFER_START 0x8A29 -#define GL_UNIFORM_BUFFER_SIZE 0x8A2A -#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B -#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C -#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D -#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E -#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F -#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 -#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 -#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 -#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 -#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 -#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 -#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 -#define GL_UNIFORM_TYPE 0x8A37 -#define GL_UNIFORM_SIZE 0x8A38 -#define GL_UNIFORM_NAME_LENGTH 0x8A39 -#define GL_UNIFORM_BLOCK_INDEX 0x8A3A -#define GL_UNIFORM_OFFSET 0x8A3B -#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C -#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D -#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E -#define GL_UNIFORM_BLOCK_BINDING 0x8A3F -#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 -#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 -#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 -#define GL_INVALID_INDEX 0xFFFFFFFFu -#endif - -#ifndef GL_ARB_compatibility -/* ARB_compatibility just defines tokens from core 3.0 */ -#endif - -#ifndef GL_ARB_copy_buffer -#define GL_COPY_READ_BUFFER 0x8F36 -#define GL_COPY_WRITE_BUFFER 0x8F37 -#endif - -#ifndef GL_ARB_shader_texture_lod -#endif - -#ifndef GL_ARB_depth_clamp -#define GL_DEPTH_CLAMP 0x864F -#endif - -#ifndef GL_ARB_draw_elements_base_vertex -#endif - -#ifndef GL_ARB_fragment_coord_conventions -#endif - -#ifndef GL_ARB_provoking_vertex -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION 0x8E4D -#define GL_LAST_VERTEX_CONVENTION 0x8E4E -#define GL_PROVOKING_VERTEX 0x8E4F -#endif - -#ifndef GL_ARB_seamless_cube_map -#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F -#endif - -#ifndef GL_ARB_sync -#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 -#define GL_OBJECT_TYPE 0x9112 -#define GL_SYNC_CONDITION 0x9113 -#define GL_SYNC_STATUS 0x9114 -#define GL_SYNC_FLAGS 0x9115 -#define GL_SYNC_FENCE 0x9116 -#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 -#define GL_UNSIGNALED 0x9118 -#define GL_SIGNALED 0x9119 -#define GL_ALREADY_SIGNALED 0x911A -#define GL_TIMEOUT_EXPIRED 0x911B -#define GL_CONDITION_SATISFIED 0x911C -#define GL_WAIT_FAILED 0x911D -#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 -#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull -#endif - -#ifndef GL_ARB_texture_multisample -#define GL_SAMPLE_POSITION 0x8E50 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLE_MASK_VALUE 0x8E52 -#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 -#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 -#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 -#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 -#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 -#define GL_TEXTURE_SAMPLES 0x9106 -#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 -#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 -#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A -#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B -#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C -#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D -#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E -#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F -#define GL_MAX_INTEGER_SAMPLES 0x9110 -#endif - -#ifndef GL_ARB_vertex_array_bgra -/* reuse GL_BGRA */ -#endif - -#ifndef GL_ARB_draw_buffers_blend -#endif - -#ifndef GL_ARB_sample_shading -#define GL_SAMPLE_SHADING_ARB 0x8C36 -#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 -#endif - -#ifndef GL_ARB_texture_cube_map_array -#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 -#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A -#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B -#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C -#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D -#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E -#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F -#endif - -#ifndef GL_ARB_texture_gather -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F -#endif - -#ifndef GL_ARB_texture_query_lod -#endif - -#ifndef GL_ARB_shading_language_include -#define GL_SHADER_INCLUDE_ARB 0x8DAE -#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 -#define GL_NAMED_STRING_TYPE_ARB 0x8DEA -#endif - -#ifndef GL_ARB_texture_compression_bptc -#define GL_COMPRESSED_RGBA_BPTC_UNORM_ARB 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB 0x8E8D -#define GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_ARB 0x8E8E -#define GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_ARB 0x8E8F -#endif - -#ifndef GL_ARB_blend_func_extended -#define GL_SRC1_COLOR 0x88F9 -/* reuse GL_SRC1_ALPHA */ -#define GL_ONE_MINUS_SRC1_COLOR 0x88FA -#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB -#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC -#endif - -#ifndef GL_ARB_explicit_attrib_location -#endif - -#ifndef GL_ARB_occlusion_query2 -#define GL_ANY_SAMPLES_PASSED 0x8C2F -#endif - -#ifndef GL_ARB_sampler_objects -#define GL_SAMPLER_BINDING 0x8919 -#endif - -#ifndef GL_ARB_shader_bit_encoding -#endif - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_RGB10_A2UI 0x906F -#endif - -#ifndef GL_ARB_texture_swizzle -#define GL_TEXTURE_SWIZZLE_R 0x8E42 -#define GL_TEXTURE_SWIZZLE_G 0x8E43 -#define GL_TEXTURE_SWIZZLE_B 0x8E44 -#define GL_TEXTURE_SWIZZLE_A 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 -#endif - -#ifndef GL_ARB_timer_query -#define GL_TIME_ELAPSED 0x88BF -#define GL_TIMESTAMP 0x8E28 -#endif - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -/* reuse GL_UNSIGNED_INT_2_10_10_10_REV */ -#define GL_INT_2_10_10_10_REV 0x8D9F -#endif - -#ifndef GL_ARB_draw_indirect -#define GL_DRAW_INDIRECT_BUFFER 0x8F3F -#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 -#endif - -#ifndef GL_ARB_gpu_shader5 -#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F -#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C -#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D -/* reuse GL_MAX_VERTEX_STREAMS */ -#endif - -#ifndef GL_ARB_gpu_shader_fp64 -/* reuse GL_DOUBLE */ -#define GL_DOUBLE_VEC2 0x8FFC -#define GL_DOUBLE_VEC3 0x8FFD -#define GL_DOUBLE_VEC4 0x8FFE -#define GL_DOUBLE_MAT2 0x8F46 -#define GL_DOUBLE_MAT3 0x8F47 -#define GL_DOUBLE_MAT4 0x8F48 -#define GL_DOUBLE_MAT2x3 0x8F49 -#define GL_DOUBLE_MAT2x4 0x8F4A -#define GL_DOUBLE_MAT3x2 0x8F4B -#define GL_DOUBLE_MAT3x4 0x8F4C -#define GL_DOUBLE_MAT4x2 0x8F4D -#define GL_DOUBLE_MAT4x3 0x8F4E -#endif - -#ifndef GL_ARB_shader_subroutine -#define GL_ACTIVE_SUBROUTINES 0x8DE5 -#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 -#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 -#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 -#define GL_MAX_SUBROUTINES 0x8DE7 -#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 -#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A -#define GL_COMPATIBLE_SUBROUTINES 0x8E4B -/* reuse GL_UNIFORM_SIZE */ -/* reuse GL_UNIFORM_NAME_LENGTH */ -#endif - -#ifndef GL_ARB_tessellation_shader -#define GL_PATCHES 0x000E -#define GL_PATCH_VERTICES 0x8E72 -#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 -#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 -#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 -#define GL_TESS_GEN_MODE 0x8E76 -#define GL_TESS_GEN_SPACING 0x8E77 -#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 -#define GL_TESS_GEN_POINT_MODE 0x8E79 -/* reuse GL_TRIANGLES */ -/* reuse GL_QUADS */ -#define GL_ISOLINES 0x8E7A -/* reuse GL_EQUAL */ -#define GL_FRACTIONAL_ODD 0x8E7B -#define GL_FRACTIONAL_EVEN 0x8E7C -/* reuse GL_CCW */ -/* reuse GL_CW */ -#define GL_MAX_PATCH_VERTICES 0x8E7D -#define GL_MAX_TESS_GEN_LEVEL 0x8E7E -#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F -#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 -#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 -#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 -#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 -#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 -#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 -#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 -#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 -#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A -#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C -#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D -#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E -#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 -#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 -#define GL_TESS_EVALUATION_SHADER 0x8E87 -#define GL_TESS_CONTROL_SHADER 0x8E88 -#endif - -#ifndef GL_ARB_texture_buffer_object_rgb32 -/* reuse GL_RGB32F */ -/* reuse GL_RGB32UI */ -/* reuse GL_RGB32I */ -#endif - -#ifndef GL_ARB_transform_feedback2 -#define GL_TRANSFORM_FEEDBACK 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 -#endif - -#ifndef GL_ARB_transform_feedback3 -#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 -#define GL_MAX_VERTEX_STREAMS 0x8E71 -#endif - -#ifndef GL_ARB_ES2_compatibility -#define GL_FIXED 0x140C -#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B -#define GL_LOW_FLOAT 0x8DF0 -#define GL_MEDIUM_FLOAT 0x8DF1 -#define GL_HIGH_FLOAT 0x8DF2 -#define GL_LOW_INT 0x8DF3 -#define GL_MEDIUM_INT 0x8DF4 -#define GL_HIGH_INT 0x8DF5 -#define GL_SHADER_COMPILER 0x8DFA -#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 -#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB -#define GL_MAX_VARYING_VECTORS 0x8DFC -#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD -#endif - -#ifndef GL_ARB_get_program_binary -#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 -#define GL_PROGRAM_BINARY_LENGTH 0x8741 -#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE -#define GL_PROGRAM_BINARY_FORMATS 0x87FF -#endif - -#ifndef GL_ARB_separate_shader_objects -#define GL_VERTEX_SHADER_BIT 0x00000001 -#define GL_FRAGMENT_SHADER_BIT 0x00000002 -#define GL_GEOMETRY_SHADER_BIT 0x00000004 -#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 -#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 -#define GL_ALL_SHADER_BITS 0xFFFFFFFF -#define GL_PROGRAM_SEPARABLE 0x8258 -#define GL_ACTIVE_PROGRAM 0x8259 -#define GL_PROGRAM_PIPELINE_BINDING 0x825A -#endif - -#ifndef GL_ARB_shader_precision -#endif - -#ifndef GL_ARB_vertex_attrib_64bit -/* reuse GL_RGB32I */ -/* reuse GL_DOUBLE_VEC2 */ -/* reuse GL_DOUBLE_VEC3 */ -/* reuse GL_DOUBLE_VEC4 */ -/* reuse GL_DOUBLE_MAT2 */ -/* reuse GL_DOUBLE_MAT3 */ -/* reuse GL_DOUBLE_MAT4 */ -/* reuse GL_DOUBLE_MAT2x3 */ -/* reuse GL_DOUBLE_MAT2x4 */ -/* reuse GL_DOUBLE_MAT3x2 */ -/* reuse GL_DOUBLE_MAT3x4 */ -/* reuse GL_DOUBLE_MAT4x2 */ -/* reuse GL_DOUBLE_MAT4x3 */ -#endif - -#ifndef GL_ARB_viewport_array -/* reuse GL_SCISSOR_BOX */ -/* reuse GL_VIEWPORT */ -/* reuse GL_DEPTH_RANGE */ -/* reuse GL_SCISSOR_TEST */ -#define GL_MAX_VIEWPORTS 0x825B -#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C -#define GL_VIEWPORT_BOUNDS_RANGE 0x825D -#define GL_LAYER_PROVOKING_VERTEX 0x825E -#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F -#define GL_UNDEFINED_VERTEX 0x8260 -/* reuse GL_FIRST_VERTEX_CONVENTION */ -/* reuse GL_LAST_VERTEX_CONVENTION */ -/* reuse GL_PROVOKING_VERTEX */ -#endif - -#ifndef GL_ARB_cl_event -#define GL_SYNC_CL_EVENT_ARB 0x8240 -#define GL_SYNC_CL_EVENT_COMPLETE_ARB 0x8241 -#endif - -#ifndef GL_ARB_debug_output -#define GL_DEBUG_OUTPUT_SYNCHRONOUS_ARB 0x8242 -#define GL_DEBUG_NEXT_LOGGED_MESSAGE_LENGTH_ARB 0x8243 -#define GL_DEBUG_CALLBACK_FUNCTION_ARB 0x8244 -#define GL_DEBUG_CALLBACK_USER_PARAM_ARB 0x8245 -#define GL_DEBUG_SOURCE_API_ARB 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM_ARB 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER_ARB 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY_ARB 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION_ARB 0x824A -#define GL_DEBUG_SOURCE_OTHER_ARB 0x824B -#define GL_DEBUG_TYPE_ERROR_ARB 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR_ARB 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR_ARB 0x824E -#define GL_DEBUG_TYPE_PORTABILITY_ARB 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE_ARB 0x8250 -#define GL_DEBUG_TYPE_OTHER_ARB 0x8251 -#define GL_MAX_DEBUG_MESSAGE_LENGTH_ARB 0x9143 -#define GL_MAX_DEBUG_LOGGED_MESSAGES_ARB 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_ARB 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_ARB 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_ARB 0x9147 -#define GL_DEBUG_SEVERITY_LOW_ARB 0x9148 -#endif - -#ifndef GL_ARB_robustness -/* reuse GL_NO_ERROR */ -#define GL_CONTEXT_FLAG_ROBUST_ACCESS_BIT_ARB 0x00000004 -#define GL_LOSE_CONTEXT_ON_RESET_ARB 0x8252 -#define GL_GUILTY_CONTEXT_RESET_ARB 0x8253 -#define GL_INNOCENT_CONTEXT_RESET_ARB 0x8254 -#define GL_UNKNOWN_CONTEXT_RESET_ARB 0x8255 -#define GL_RESET_NOTIFICATION_STRATEGY_ARB 0x8256 -#define GL_NO_RESET_NOTIFICATION_ARB 0x8261 -#endif - -#ifndef GL_ARB_shader_stencil_export -#endif - -#ifndef GL_ARB_base_instance -#endif - -#ifndef GL_ARB_shading_language_420pack -#endif - -#ifndef GL_ARB_transform_feedback_instanced -#endif - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_UNPACK_COMPRESSED_BLOCK_WIDTH 0x9127 -#define GL_UNPACK_COMPRESSED_BLOCK_HEIGHT 0x9128 -#define GL_UNPACK_COMPRESSED_BLOCK_DEPTH 0x9129 -#define GL_UNPACK_COMPRESSED_BLOCK_SIZE 0x912A -#define GL_PACK_COMPRESSED_BLOCK_WIDTH 0x912B -#define GL_PACK_COMPRESSED_BLOCK_HEIGHT 0x912C -#define GL_PACK_COMPRESSED_BLOCK_DEPTH 0x912D -#define GL_PACK_COMPRESSED_BLOCK_SIZE 0x912E -#endif - -#ifndef GL_ARB_conservative_depth -#endif - -#ifndef GL_ARB_internalformat_query -#define GL_NUM_SAMPLE_COUNTS 0x9380 -#endif - -#ifndef GL_ARB_map_buffer_alignment -#define GL_MIN_MAP_BUFFER_ALIGNMENT 0x90BC -#endif - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ATOMIC_COUNTER_BUFFER 0x92C0 -#define GL_ATOMIC_COUNTER_BUFFER_BINDING 0x92C1 -#define GL_ATOMIC_COUNTER_BUFFER_START 0x92C2 -#define GL_ATOMIC_COUNTER_BUFFER_SIZE 0x92C3 -#define GL_ATOMIC_COUNTER_BUFFER_DATA_SIZE 0x92C4 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTERS 0x92C5 -#define GL_ATOMIC_COUNTER_BUFFER_ACTIVE_ATOMIC_COUNTER_INDICES 0x92C6 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_VERTEX_SHADER 0x92C7 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_CONTROL_SHADER 0x92C8 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_TESS_EVALUATION_SHADER 0x92C9 -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_GEOMETRY_SHADER 0x92CA -#define GL_ATOMIC_COUNTER_BUFFER_REFERENCED_BY_FRAGMENT_SHADER 0x92CB -#define GL_MAX_VERTEX_ATOMIC_COUNTER_BUFFERS 0x92CC -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTER_BUFFERS 0x92CD -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTER_BUFFERS 0x92CE -#define GL_MAX_GEOMETRY_ATOMIC_COUNTER_BUFFERS 0x92CF -#define GL_MAX_FRAGMENT_ATOMIC_COUNTER_BUFFERS 0x92D0 -#define GL_MAX_COMBINED_ATOMIC_COUNTER_BUFFERS 0x92D1 -#define GL_MAX_VERTEX_ATOMIC_COUNTERS 0x92D2 -#define GL_MAX_TESS_CONTROL_ATOMIC_COUNTERS 0x92D3 -#define GL_MAX_TESS_EVALUATION_ATOMIC_COUNTERS 0x92D4 -#define GL_MAX_GEOMETRY_ATOMIC_COUNTERS 0x92D5 -#define GL_MAX_FRAGMENT_ATOMIC_COUNTERS 0x92D6 -#define GL_MAX_COMBINED_ATOMIC_COUNTERS 0x92D7 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_SIZE 0x92D8 -#define GL_MAX_ATOMIC_COUNTER_BUFFER_BINDINGS 0x92DC -#define GL_ACTIVE_ATOMIC_COUNTER_BUFFERS 0x92D9 -#define GL_UNIFORM_ATOMIC_COUNTER_BUFFER_INDEX 0x92DA -#define GL_UNSIGNED_INT_ATOMIC_COUNTER 0x92DB -#endif - -#ifndef GL_ARB_shader_image_load_store -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT 0x00000020 -#define GL_COMMAND_BARRIER_BIT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT 0x00001000 -#define GL_ALL_BARRIER_BITS 0xFFFFFFFF -#define GL_MAX_IMAGE_UNITS 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS 0x8F39 -#define GL_IMAGE_BINDING_NAME 0x8F3A -#define GL_IMAGE_BINDING_LEVEL 0x8F3B -#define GL_IMAGE_BINDING_LAYERED 0x8F3C -#define GL_IMAGE_BINDING_LAYER 0x8F3D -#define GL_IMAGE_BINDING_ACCESS 0x8F3E -#define GL_IMAGE_1D 0x904C -#define GL_IMAGE_2D 0x904D -#define GL_IMAGE_3D 0x904E -#define GL_IMAGE_2D_RECT 0x904F -#define GL_IMAGE_CUBE 0x9050 -#define GL_IMAGE_BUFFER 0x9051 -#define GL_IMAGE_1D_ARRAY 0x9052 -#define GL_IMAGE_2D_ARRAY 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY 0x9056 -#define GL_INT_IMAGE_1D 0x9057 -#define GL_INT_IMAGE_2D 0x9058 -#define GL_INT_IMAGE_3D 0x9059 -#define GL_INT_IMAGE_2D_RECT 0x905A -#define GL_INT_IMAGE_CUBE 0x905B -#define GL_INT_IMAGE_BUFFER 0x905C -#define GL_INT_IMAGE_1D_ARRAY 0x905D -#define GL_INT_IMAGE_2D_ARRAY 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY 0x906C -#define GL_MAX_IMAGE_SAMPLES 0x906D -#define GL_IMAGE_BINDING_FORMAT 0x906E -#define GL_IMAGE_FORMAT_COMPATIBILITY_TYPE 0x90C7 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_SIZE 0x90C8 -#define GL_IMAGE_FORMAT_COMPATIBILITY_BY_CLASS 0x90C9 -#define GL_MAX_VERTEX_IMAGE_UNIFORMS 0x90CA -#define GL_MAX_TESS_CONTROL_IMAGE_UNIFORMS 0x90CB -#define GL_MAX_TESS_EVALUATION_IMAGE_UNIFORMS 0x90CC -#define GL_MAX_GEOMETRY_IMAGE_UNIFORMS 0x90CD -#define GL_MAX_FRAGMENT_IMAGE_UNIFORMS 0x90CE -#define GL_MAX_COMBINED_IMAGE_UNIFORMS 0x90CF -#endif - -#ifndef GL_ARB_shading_language_packing -#endif - -#ifndef GL_ARB_texture_storage -#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F -#endif - -#ifndef GL_EXT_abgr -#define GL_ABGR_EXT 0x8000 -#endif - -#ifndef GL_EXT_blend_color -#define GL_CONSTANT_COLOR_EXT 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 -#define GL_CONSTANT_ALPHA_EXT 0x8003 -#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 -#define GL_BLEND_COLOR_EXT 0x8005 -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_POLYGON_OFFSET_EXT 0x8037 -#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 -#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 -#endif - -#ifndef GL_EXT_texture -#define GL_ALPHA4_EXT 0x803B -#define GL_ALPHA8_EXT 0x803C -#define GL_ALPHA12_EXT 0x803D -#define GL_ALPHA16_EXT 0x803E -#define GL_LUMINANCE4_EXT 0x803F -#define GL_LUMINANCE8_EXT 0x8040 -#define GL_LUMINANCE12_EXT 0x8041 -#define GL_LUMINANCE16_EXT 0x8042 -#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 -#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 -#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 -#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 -#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 -#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 -#define GL_INTENSITY_EXT 0x8049 -#define GL_INTENSITY4_EXT 0x804A -#define GL_INTENSITY8_EXT 0x804B -#define GL_INTENSITY12_EXT 0x804C -#define GL_INTENSITY16_EXT 0x804D -#define GL_RGB2_EXT 0x804E -#define GL_RGB4_EXT 0x804F -#define GL_RGB5_EXT 0x8050 -#define GL_RGB8_EXT 0x8051 -#define GL_RGB10_EXT 0x8052 -#define GL_RGB12_EXT 0x8053 -#define GL_RGB16_EXT 0x8054 -#define GL_RGBA2_EXT 0x8055 -#define GL_RGBA4_EXT 0x8056 -#define GL_RGB5_A1_EXT 0x8057 -#define GL_RGBA8_EXT 0x8058 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA12_EXT 0x805A -#define GL_RGBA16_EXT 0x805B -#define GL_TEXTURE_RED_SIZE_EXT 0x805C -#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D -#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E -#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F -#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 -#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 -#define GL_REPLACE_EXT 0x8062 -#define GL_PROXY_TEXTURE_1D_EXT 0x8063 -#define GL_PROXY_TEXTURE_2D_EXT 0x8064 -#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 -#endif - -#ifndef GL_EXT_texture3D -#define GL_PACK_SKIP_IMAGES_EXT 0x806B -#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C -#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D -#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E -#define GL_TEXTURE_3D_EXT 0x806F -#define GL_PROXY_TEXTURE_3D_EXT 0x8070 -#define GL_TEXTURE_DEPTH_EXT 0x8071 -#define GL_TEXTURE_WRAP_R_EXT 0x8072 -#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_FILTER4_SGIS 0x8146 -#define GL_TEXTURE_FILTER4_SIZE_SGIS 0x8147 -#endif - -#ifndef GL_EXT_subtexture -#endif - -#ifndef GL_EXT_copy_texture -#endif - -#ifndef GL_EXT_histogram -#define GL_HISTOGRAM_EXT 0x8024 -#define GL_PROXY_HISTOGRAM_EXT 0x8025 -#define GL_HISTOGRAM_WIDTH_EXT 0x8026 -#define GL_HISTOGRAM_FORMAT_EXT 0x8027 -#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 -#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 -#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A -#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B -#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C -#define GL_HISTOGRAM_SINK_EXT 0x802D -#define GL_MINMAX_EXT 0x802E -#define GL_MINMAX_FORMAT_EXT 0x802F -#define GL_MINMAX_SINK_EXT 0x8030 -#define GL_TABLE_TOO_LARGE_EXT 0x8031 -#endif - -#ifndef GL_EXT_convolution -#define GL_CONVOLUTION_1D_EXT 0x8010 -#define GL_CONVOLUTION_2D_EXT 0x8011 -#define GL_SEPARABLE_2D_EXT 0x8012 -#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 -#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 -#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 -#define GL_REDUCE_EXT 0x8016 -#define GL_CONVOLUTION_FORMAT_EXT 0x8017 -#define GL_CONVOLUTION_WIDTH_EXT 0x8018 -#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 -#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A -#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B -#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C -#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D -#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E -#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F -#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 -#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 -#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 -#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 -#endif - -#ifndef GL_SGI_color_matrix -#define GL_COLOR_MATRIX_SGI 0x80B1 -#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 -#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 -#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 -#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 -#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 -#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 -#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 -#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 -#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA -#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB -#endif - -#ifndef GL_SGI_color_table -#define GL_COLOR_TABLE_SGI 0x80D0 -#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 -#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 -#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 -#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 -#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 -#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 -#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 -#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 -#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 -#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA -#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB -#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC -#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD -#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE -#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_PIXEL_TEXTURE_SGIS 0x8353 -#define GL_PIXEL_FRAGMENT_RGB_SOURCE_SGIS 0x8354 -#define GL_PIXEL_FRAGMENT_ALPHA_SOURCE_SGIS 0x8355 -#define GL_PIXEL_GROUP_COLOR_SGIS 0x8356 -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_PIXEL_TEX_GEN_SGIX 0x8139 -#define GL_PIXEL_TEX_GEN_MODE_SGIX 0x832B -#endif - -#ifndef GL_SGIS_texture4D -#define GL_PACK_SKIP_VOLUMES_SGIS 0x8130 -#define GL_PACK_IMAGE_DEPTH_SGIS 0x8131 -#define GL_UNPACK_SKIP_VOLUMES_SGIS 0x8132 -#define GL_UNPACK_IMAGE_DEPTH_SGIS 0x8133 -#define GL_TEXTURE_4D_SGIS 0x8134 -#define GL_PROXY_TEXTURE_4D_SGIS 0x8135 -#define GL_TEXTURE_4DSIZE_SGIS 0x8136 -#define GL_TEXTURE_WRAP_Q_SGIS 0x8137 -#define GL_MAX_4D_TEXTURE_SIZE_SGIS 0x8138 -#define GL_TEXTURE_4D_BINDING_SGIS 0x814F -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_TEXTURE_COLOR_TABLE_SGI 0x80BC -#define GL_PROXY_TEXTURE_COLOR_TABLE_SGI 0x80BD -#endif - -#ifndef GL_EXT_cmyka -#define GL_CMYK_EXT 0x800C -#define GL_CMYKA_EXT 0x800D -#define GL_PACK_CMYK_HINT_EXT 0x800E -#define GL_UNPACK_CMYK_HINT_EXT 0x800F -#endif - -#ifndef GL_EXT_texture_object -#define GL_TEXTURE_PRIORITY_EXT 0x8066 -#define GL_TEXTURE_RESIDENT_EXT 0x8067 -#define GL_TEXTURE_1D_BINDING_EXT 0x8068 -#define GL_TEXTURE_2D_BINDING_EXT 0x8069 -#define GL_TEXTURE_3D_BINDING_EXT 0x806A -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_DETAIL_TEXTURE_2D_SGIS 0x8095 -#define GL_DETAIL_TEXTURE_2D_BINDING_SGIS 0x8096 -#define GL_LINEAR_DETAIL_SGIS 0x8097 -#define GL_LINEAR_DETAIL_ALPHA_SGIS 0x8098 -#define GL_LINEAR_DETAIL_COLOR_SGIS 0x8099 -#define GL_DETAIL_TEXTURE_LEVEL_SGIS 0x809A -#define GL_DETAIL_TEXTURE_MODE_SGIS 0x809B -#define GL_DETAIL_TEXTURE_FUNC_POINTS_SGIS 0x809C -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_LINEAR_SHARPEN_SGIS 0x80AD -#define GL_LINEAR_SHARPEN_ALPHA_SGIS 0x80AE -#define GL_LINEAR_SHARPEN_COLOR_SGIS 0x80AF -#define GL_SHARPEN_TEXTURE_FUNC_POINTS_SGIS 0x80B0 -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 -#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 -#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 -#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 -#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_TEXTURE_MIN_LOD_SGIS 0x813A -#define GL_TEXTURE_MAX_LOD_SGIS 0x813B -#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C -#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D -#endif - -#ifndef GL_SGIS_multisample -#define GL_MULTISAMPLE_SGIS 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_SGIS 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_SGIS 0x809F -#define GL_SAMPLE_MASK_SGIS 0x80A0 -#define GL_1PASS_SGIS 0x80A1 -#define GL_2PASS_0_SGIS 0x80A2 -#define GL_2PASS_1_SGIS 0x80A3 -#define GL_4PASS_0_SGIS 0x80A4 -#define GL_4PASS_1_SGIS 0x80A5 -#define GL_4PASS_2_SGIS 0x80A6 -#define GL_4PASS_3_SGIS 0x80A7 -#define GL_SAMPLE_BUFFERS_SGIS 0x80A8 -#define GL_SAMPLES_SGIS 0x80A9 -#define GL_SAMPLE_MASK_VALUE_SGIS 0x80AA -#define GL_SAMPLE_MASK_INVERT_SGIS 0x80AB -#define GL_SAMPLE_PATTERN_SGIS 0x80AC -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_RESCALE_NORMAL_EXT 0x803A -#endif - -#ifndef GL_EXT_vertex_array -#define GL_VERTEX_ARRAY_EXT 0x8074 -#define GL_NORMAL_ARRAY_EXT 0x8075 -#define GL_COLOR_ARRAY_EXT 0x8076 -#define GL_INDEX_ARRAY_EXT 0x8077 -#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 -#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 -#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A -#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B -#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C -#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D -#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E -#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F -#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 -#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 -#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 -#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 -#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 -#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 -#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 -#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 -#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 -#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 -#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A -#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B -#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C -#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D -#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E -#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F -#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 -#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 -#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 -#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 -#endif - -#ifndef GL_EXT_misc_attribute -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_GENERATE_MIPMAP_SGIS 0x8191 -#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_LINEAR_CLIPMAP_LINEAR_SGIX 0x8170 -#define GL_TEXTURE_CLIPMAP_CENTER_SGIX 0x8171 -#define GL_TEXTURE_CLIPMAP_FRAME_SGIX 0x8172 -#define GL_TEXTURE_CLIPMAP_OFFSET_SGIX 0x8173 -#define GL_TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8174 -#define GL_TEXTURE_CLIPMAP_LOD_OFFSET_SGIX 0x8175 -#define GL_TEXTURE_CLIPMAP_DEPTH_SGIX 0x8176 -#define GL_MAX_CLIPMAP_DEPTH_SGIX 0x8177 -#define GL_MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 0x8178 -#define GL_NEAREST_CLIPMAP_NEAREST_SGIX 0x844D -#define GL_NEAREST_CLIPMAP_LINEAR_SGIX 0x844E -#define GL_LINEAR_CLIPMAP_NEAREST_SGIX 0x844F -#endif - -#ifndef GL_SGIX_shadow -#define GL_TEXTURE_COMPARE_SGIX 0x819A -#define GL_TEXTURE_COMPARE_OPERATOR_SGIX 0x819B -#define GL_TEXTURE_LEQUAL_R_SGIX 0x819C -#define GL_TEXTURE_GEQUAL_R_SGIX 0x819D -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_CLAMP_TO_EDGE_SGIS 0x812F -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_CLAMP_TO_BORDER_SGIS 0x812D -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_FUNC_ADD_EXT 0x8006 -#define GL_MIN_EXT 0x8007 -#define GL_MAX_EXT 0x8008 -#define GL_BLEND_EQUATION_EXT 0x8009 -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_FUNC_SUBTRACT_EXT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B -#endif - -#ifndef GL_EXT_blend_logic_op -#endif - -#ifndef GL_SGIX_interlace -#define GL_INTERLACE_SGIX 0x8094 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_PIXEL_TILE_BEST_ALIGNMENT_SGIX 0x813E -#define GL_PIXEL_TILE_CACHE_INCREMENT_SGIX 0x813F -#define GL_PIXEL_TILE_WIDTH_SGIX 0x8140 -#define GL_PIXEL_TILE_HEIGHT_SGIX 0x8141 -#define GL_PIXEL_TILE_GRID_WIDTH_SGIX 0x8142 -#define GL_PIXEL_TILE_GRID_HEIGHT_SGIX 0x8143 -#define GL_PIXEL_TILE_GRID_DEPTH_SGIX 0x8144 -#define GL_PIXEL_TILE_CACHE_SIZE_SGIX 0x8145 -#endif - -#ifndef GL_SGIS_texture_select -#define GL_DUAL_ALPHA4_SGIS 0x8110 -#define GL_DUAL_ALPHA8_SGIS 0x8111 -#define GL_DUAL_ALPHA12_SGIS 0x8112 -#define GL_DUAL_ALPHA16_SGIS 0x8113 -#define GL_DUAL_LUMINANCE4_SGIS 0x8114 -#define GL_DUAL_LUMINANCE8_SGIS 0x8115 -#define GL_DUAL_LUMINANCE12_SGIS 0x8116 -#define GL_DUAL_LUMINANCE16_SGIS 0x8117 -#define GL_DUAL_INTENSITY4_SGIS 0x8118 -#define GL_DUAL_INTENSITY8_SGIS 0x8119 -#define GL_DUAL_INTENSITY12_SGIS 0x811A -#define GL_DUAL_INTENSITY16_SGIS 0x811B -#define GL_DUAL_LUMINANCE_ALPHA4_SGIS 0x811C -#define GL_DUAL_LUMINANCE_ALPHA8_SGIS 0x811D -#define GL_QUAD_ALPHA4_SGIS 0x811E -#define GL_QUAD_ALPHA8_SGIS 0x811F -#define GL_QUAD_LUMINANCE4_SGIS 0x8120 -#define GL_QUAD_LUMINANCE8_SGIS 0x8121 -#define GL_QUAD_INTENSITY4_SGIS 0x8122 -#define GL_QUAD_INTENSITY8_SGIS 0x8123 -#define GL_DUAL_TEXTURE_SELECT_SGIS 0x8124 -#define GL_QUAD_TEXTURE_SELECT_SGIS 0x8125 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SPRITE_SGIX 0x8148 -#define GL_SPRITE_MODE_SGIX 0x8149 -#define GL_SPRITE_AXIS_SGIX 0x814A -#define GL_SPRITE_TRANSLATION_SGIX 0x814B -#define GL_SPRITE_AXIAL_SGIX 0x814C -#define GL_SPRITE_OBJECT_ALIGNED_SGIX 0x814D -#define GL_SPRITE_EYE_ALIGNED_SGIX 0x814E -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_TEXTURE_MULTI_BUFFER_HINT_SGIX 0x812E -#endif - -#ifndef GL_EXT_point_parameters -#define GL_POINT_SIZE_MIN_EXT 0x8126 -#define GL_POINT_SIZE_MAX_EXT 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_EXT 0x8128 -#define GL_DISTANCE_ATTENUATION_EXT 0x8129 -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_POINT_SIZE_MIN_SGIS 0x8126 -#define GL_POINT_SIZE_MAX_SGIS 0x8127 -#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 -#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 -#endif - -#ifndef GL_SGIX_instruments -#define GL_INSTRUMENT_BUFFER_POINTER_SGIX 0x8180 -#define GL_INSTRUMENT_MEASUREMENTS_SGIX 0x8181 -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_POST_TEXTURE_FILTER_BIAS_SGIX 0x8179 -#define GL_POST_TEXTURE_FILTER_SCALE_SGIX 0x817A -#define GL_POST_TEXTURE_FILTER_BIAS_RANGE_SGIX 0x817B -#define GL_POST_TEXTURE_FILTER_SCALE_RANGE_SGIX 0x817C -#endif - -#ifndef GL_SGIX_framezoom -#define GL_FRAMEZOOM_SGIX 0x818B -#define GL_FRAMEZOOM_FACTOR_SGIX 0x818C -#define GL_MAX_FRAMEZOOM_FACTOR_SGIX 0x818D -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#endif - -#ifndef GL_FfdMaskSGIX -#define GL_TEXTURE_DEFORMATION_BIT_SGIX 0x00000001 -#define GL_GEOMETRY_DEFORMATION_BIT_SGIX 0x00000002 -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_GEOMETRY_DEFORMATION_SGIX 0x8194 -#define GL_TEXTURE_DEFORMATION_SGIX 0x8195 -#define GL_DEFORMATIONS_MASK_SGIX 0x8196 -#define GL_MAX_DEFORMATION_ORDER_SGIX 0x8197 -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_REFERENCE_PLANE_SGIX 0x817D -#define GL_REFERENCE_PLANE_EQUATION_SGIX 0x817E -#endif - -#ifndef GL_SGIX_flush_raster -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 -#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 -#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_FOG_FUNC_SGIS 0x812A -#define GL_FOG_FUNC_POINTS_SGIS 0x812B -#define GL_MAX_FOG_FUNC_POINTS_SGIS 0x812C -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_FOG_OFFSET_SGIX 0x8198 -#define GL_FOG_OFFSET_VALUE_SGIX 0x8199 -#endif - -#ifndef GL_HP_image_transform -#define GL_IMAGE_SCALE_X_HP 0x8155 -#define GL_IMAGE_SCALE_Y_HP 0x8156 -#define GL_IMAGE_TRANSLATE_X_HP 0x8157 -#define GL_IMAGE_TRANSLATE_Y_HP 0x8158 -#define GL_IMAGE_ROTATE_ANGLE_HP 0x8159 -#define GL_IMAGE_ROTATE_ORIGIN_X_HP 0x815A -#define GL_IMAGE_ROTATE_ORIGIN_Y_HP 0x815B -#define GL_IMAGE_MAG_FILTER_HP 0x815C -#define GL_IMAGE_MIN_FILTER_HP 0x815D -#define GL_IMAGE_CUBIC_WEIGHT_HP 0x815E -#define GL_CUBIC_HP 0x815F -#define GL_AVERAGE_HP 0x8160 -#define GL_IMAGE_TRANSFORM_2D_HP 0x8161 -#define GL_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8162 -#define GL_PROXY_POST_IMAGE_TRANSFORM_COLOR_TABLE_HP 0x8163 -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_IGNORE_BORDER_HP 0x8150 -#define GL_CONSTANT_BORDER_HP 0x8151 -#define GL_REPLICATE_BORDER_HP 0x8153 -#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 -#endif - -#ifndef GL_INGR_palette_buffer -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_TEXTURE_ENV_BIAS_SGIX 0x80BE -#endif - -#ifndef GL_EXT_color_subtable -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_VERTEX_DATA_HINT_PGI 0x1A22A -#define GL_VERTEX_CONSISTENT_HINT_PGI 0x1A22B -#define GL_MATERIAL_SIDE_HINT_PGI 0x1A22C -#define GL_MAX_VERTEX_HINT_PGI 0x1A22D -#define GL_COLOR3_BIT_PGI 0x00010000 -#define GL_COLOR4_BIT_PGI 0x00020000 -#define GL_EDGEFLAG_BIT_PGI 0x00040000 -#define GL_INDEX_BIT_PGI 0x00080000 -#define GL_MAT_AMBIENT_BIT_PGI 0x00100000 -#define GL_MAT_AMBIENT_AND_DIFFUSE_BIT_PGI 0x00200000 -#define GL_MAT_DIFFUSE_BIT_PGI 0x00400000 -#define GL_MAT_EMISSION_BIT_PGI 0x00800000 -#define GL_MAT_COLOR_INDEXES_BIT_PGI 0x01000000 -#define GL_MAT_SHININESS_BIT_PGI 0x02000000 -#define GL_MAT_SPECULAR_BIT_PGI 0x04000000 -#define GL_NORMAL_BIT_PGI 0x08000000 -#define GL_TEXCOORD1_BIT_PGI 0x10000000 -#define GL_TEXCOORD2_BIT_PGI 0x20000000 -#define GL_TEXCOORD3_BIT_PGI 0x40000000 -#define GL_TEXCOORD4_BIT_PGI 0x80000000 -#define GL_VERTEX23_BIT_PGI 0x00000004 -#define GL_VERTEX4_BIT_PGI 0x00000008 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PREFER_DOUBLEBUFFER_HINT_PGI 0x1A1F8 -#define GL_CONSERVE_MEMORY_HINT_PGI 0x1A1FD -#define GL_RECLAIM_MEMORY_HINT_PGI 0x1A1FE -#define GL_NATIVE_GRAPHICS_HANDLE_PGI 0x1A202 -#define GL_NATIVE_GRAPHICS_BEGIN_HINT_PGI 0x1A203 -#define GL_NATIVE_GRAPHICS_END_HINT_PGI 0x1A204 -#define GL_ALWAYS_FAST_HINT_PGI 0x1A20C -#define GL_ALWAYS_SOFT_HINT_PGI 0x1A20D -#define GL_ALLOW_DRAW_OBJ_HINT_PGI 0x1A20E -#define GL_ALLOW_DRAW_WIN_HINT_PGI 0x1A20F -#define GL_ALLOW_DRAW_FRG_HINT_PGI 0x1A210 -#define GL_ALLOW_DRAW_MEM_HINT_PGI 0x1A211 -#define GL_STRICT_DEPTHFUNC_HINT_PGI 0x1A216 -#define GL_STRICT_LIGHTING_HINT_PGI 0x1A217 -#define GL_STRICT_SCISSOR_HINT_PGI 0x1A218 -#define GL_FULL_STIPPLE_HINT_PGI 0x1A219 -#define GL_CLIP_NEAR_HINT_PGI 0x1A220 -#define GL_CLIP_FAR_HINT_PGI 0x1A221 -#define GL_WIDE_LINE_HINT_PGI 0x1A222 -#define GL_BACK_NORMALS_HINT_PGI 0x1A223 -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_COLOR_INDEX1_EXT 0x80E2 -#define GL_COLOR_INDEX2_EXT 0x80E3 -#define GL_COLOR_INDEX4_EXT 0x80E4 -#define GL_COLOR_INDEX8_EXT 0x80E5 -#define GL_COLOR_INDEX12_EXT 0x80E6 -#define GL_COLOR_INDEX16_EXT 0x80E7 -#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_LIST_PRIORITY_SGIX 0x8182 -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_IR_INSTRUMENT1_SGIX 0x817F -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_CALLIGRAPHIC_FRAGMENT_SGIX 0x8183 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_TEXTURE_LOD_BIAS_S_SGIX 0x818E -#define GL_TEXTURE_LOD_BIAS_T_SGIX 0x818F -#define GL_TEXTURE_LOD_BIAS_R_SGIX 0x8190 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SHADOW_AMBIENT_SGIX 0x80BF -#endif - -#ifndef GL_EXT_index_texture -#endif - -#ifndef GL_EXT_index_material -#define GL_INDEX_MATERIAL_EXT 0x81B8 -#define GL_INDEX_MATERIAL_PARAMETER_EXT 0x81B9 -#define GL_INDEX_MATERIAL_FACE_EXT 0x81BA -#endif - -#ifndef GL_EXT_index_func -#define GL_INDEX_TEST_EXT 0x81B5 -#define GL_INDEX_TEST_FUNC_EXT 0x81B6 -#define GL_INDEX_TEST_REF_EXT 0x81B7 -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_IUI_V2F_EXT 0x81AD -#define GL_IUI_V3F_EXT 0x81AE -#define GL_IUI_N3F_V2F_EXT 0x81AF -#define GL_IUI_N3F_V3F_EXT 0x81B0 -#define GL_T2F_IUI_V2F_EXT 0x81B1 -#define GL_T2F_IUI_V3F_EXT 0x81B2 -#define GL_T2F_IUI_N3F_V2F_EXT 0x81B3 -#define GL_T2F_IUI_N3F_V3F_EXT 0x81B4 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 -#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_CULL_VERTEX_EXT 0x81AA -#define GL_CULL_VERTEX_EYE_POSITION_EXT 0x81AB -#define GL_CULL_VERTEX_OBJECT_POSITION_EXT 0x81AC -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_YCRCB_422_SGIX 0x81BB -#define GL_YCRCB_444_SGIX 0x81BC -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_FRAGMENT_LIGHTING_SGIX 0x8400 -#define GL_FRAGMENT_COLOR_MATERIAL_SGIX 0x8401 -#define GL_FRAGMENT_COLOR_MATERIAL_FACE_SGIX 0x8402 -#define GL_FRAGMENT_COLOR_MATERIAL_PARAMETER_SGIX 0x8403 -#define GL_MAX_FRAGMENT_LIGHTS_SGIX 0x8404 -#define GL_MAX_ACTIVE_LIGHTS_SGIX 0x8405 -#define GL_CURRENT_RASTER_NORMAL_SGIX 0x8406 -#define GL_LIGHT_ENV_MODE_SGIX 0x8407 -#define GL_FRAGMENT_LIGHT_MODEL_LOCAL_VIEWER_SGIX 0x8408 -#define GL_FRAGMENT_LIGHT_MODEL_TWO_SIDE_SGIX 0x8409 -#define GL_FRAGMENT_LIGHT_MODEL_AMBIENT_SGIX 0x840A -#define GL_FRAGMENT_LIGHT_MODEL_NORMAL_INTERPOLATION_SGIX 0x840B -#define GL_FRAGMENT_LIGHT0_SGIX 0x840C -#define GL_FRAGMENT_LIGHT1_SGIX 0x840D -#define GL_FRAGMENT_LIGHT2_SGIX 0x840E -#define GL_FRAGMENT_LIGHT3_SGIX 0x840F -#define GL_FRAGMENT_LIGHT4_SGIX 0x8410 -#define GL_FRAGMENT_LIGHT5_SGIX 0x8411 -#define GL_FRAGMENT_LIGHT6_SGIX 0x8412 -#define GL_FRAGMENT_LIGHT7_SGIX 0x8413 -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_TEXTURE_LIGHTING_MODE_HP 0x8167 -#define GL_TEXTURE_POST_SPECULAR_HP 0x8168 -#define GL_TEXTURE_PRE_SPECULAR_HP 0x8169 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 -#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 -#endif - -#ifndef GL_WIN_phong_shading -#define GL_PHONG_WIN 0x80EA -#define GL_PHONG_HINT_WIN 0x80EB -#endif - -#ifndef GL_WIN_specular_fog -#define GL_FOG_SPECULAR_TEXTURE_WIN 0x80EC -#endif - -#ifndef GL_EXT_light_texture -#define GL_FRAGMENT_MATERIAL_EXT 0x8349 -#define GL_FRAGMENT_NORMAL_EXT 0x834A -#define GL_FRAGMENT_COLOR_EXT 0x834C -#define GL_ATTENUATION_EXT 0x834D -#define GL_SHADOW_ATTENUATION_EXT 0x834E -#define GL_TEXTURE_APPLICATION_MODE_EXT 0x834F -#define GL_TEXTURE_LIGHT_EXT 0x8350 -#define GL_TEXTURE_MATERIAL_FACE_EXT 0x8351 -#define GL_TEXTURE_MATERIAL_PARAMETER_EXT 0x8352 -/* reuse GL_FRAGMENT_DEPTH_EXT */ -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_ALPHA_MIN_SGIX 0x8320 -#define GL_ALPHA_MAX_SGIX 0x8321 -#endif - -#ifndef GL_SGIX_impact_pixel_texture -#define GL_PIXEL_TEX_GEN_Q_CEILING_SGIX 0x8184 -#define GL_PIXEL_TEX_GEN_Q_ROUND_SGIX 0x8185 -#define GL_PIXEL_TEX_GEN_Q_FLOOR_SGIX 0x8186 -#define GL_PIXEL_TEX_GEN_ALPHA_REPLACE_SGIX 0x8187 -#define GL_PIXEL_TEX_GEN_ALPHA_NO_REPLACE_SGIX 0x8188 -#define GL_PIXEL_TEX_GEN_ALPHA_LS_SGIX 0x8189 -#define GL_PIXEL_TEX_GEN_ALPHA_MS_SGIX 0x818A -#endif - -#ifndef GL_EXT_bgra -#define GL_BGR_EXT 0x80E0 -#define GL_BGRA_EXT 0x80E1 -#endif - -#ifndef GL_SGIX_async -#define GL_ASYNC_MARKER_SGIX 0x8329 -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_ASYNC_TEX_IMAGE_SGIX 0x835C -#define GL_ASYNC_DRAW_PIXELS_SGIX 0x835D -#define GL_ASYNC_READ_PIXELS_SGIX 0x835E -#define GL_MAX_ASYNC_TEX_IMAGE_SGIX 0x835F -#define GL_MAX_ASYNC_DRAW_PIXELS_SGIX 0x8360 -#define GL_MAX_ASYNC_READ_PIXELS_SGIX 0x8361 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_ASYNC_HISTOGRAM_SGIX 0x832C -#define GL_MAX_ASYNC_HISTOGRAM_SGIX 0x832D -#endif - -#ifndef GL_INTEL_texture_scissor -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_PARALLEL_ARRAYS_INTEL 0x83F4 -#define GL_VERTEX_ARRAY_PARALLEL_POINTERS_INTEL 0x83F5 -#define GL_NORMAL_ARRAY_PARALLEL_POINTERS_INTEL 0x83F6 -#define GL_COLOR_ARRAY_PARALLEL_POINTERS_INTEL 0x83F7 -#define GL_TEXTURE_COORD_ARRAY_PARALLEL_POINTERS_INTEL 0x83F8 -#endif - -#ifndef GL_HP_occlusion_test -#define GL_OCCLUSION_TEST_HP 0x8165 -#define GL_OCCLUSION_TEST_RESULT_HP 0x8166 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_PIXEL_TRANSFORM_2D_EXT 0x8330 -#define GL_PIXEL_MAG_FILTER_EXT 0x8331 -#define GL_PIXEL_MIN_FILTER_EXT 0x8332 -#define GL_PIXEL_CUBIC_WEIGHT_EXT 0x8333 -#define GL_CUBIC_EXT 0x8334 -#define GL_AVERAGE_EXT 0x8335 -#define GL_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8336 -#define GL_MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT 0x8337 -#define GL_PIXEL_TRANSFORM_2D_MATRIX_EXT 0x8338 -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 -#define GL_SINGLE_COLOR_EXT 0x81F9 -#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA -#endif - -#ifndef GL_EXT_secondary_color -#define GL_COLOR_SUM_EXT 0x8458 -#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 -#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A -#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B -#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C -#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D -#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_PERTURB_EXT 0x85AE -#define GL_TEXTURE_NORMAL_EXT 0x85AF -#endif - -#ifndef GL_EXT_multi_draw_arrays -#endif - -#ifndef GL_EXT_fog_coord -#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 -#define GL_FOG_COORDINATE_EXT 0x8451 -#define GL_FRAGMENT_DEPTH_EXT 0x8452 -#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 -#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 -#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 -#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 -#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_SCREEN_COORDINATES_REND 0x8490 -#define GL_INVERTED_SCREEN_W_REND 0x8491 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_TANGENT_ARRAY_EXT 0x8439 -#define GL_BINORMAL_ARRAY_EXT 0x843A -#define GL_CURRENT_TANGENT_EXT 0x843B -#define GL_CURRENT_BINORMAL_EXT 0x843C -#define GL_TANGENT_ARRAY_TYPE_EXT 0x843E -#define GL_TANGENT_ARRAY_STRIDE_EXT 0x843F -#define GL_BINORMAL_ARRAY_TYPE_EXT 0x8440 -#define GL_BINORMAL_ARRAY_STRIDE_EXT 0x8441 -#define GL_TANGENT_ARRAY_POINTER_EXT 0x8442 -#define GL_BINORMAL_ARRAY_POINTER_EXT 0x8443 -#define GL_MAP1_TANGENT_EXT 0x8444 -#define GL_MAP2_TANGENT_EXT 0x8445 -#define GL_MAP1_BINORMAL_EXT 0x8446 -#define GL_MAP2_BINORMAL_EXT 0x8447 -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_COMBINE_EXT 0x8570 -#define GL_COMBINE_RGB_EXT 0x8571 -#define GL_COMBINE_ALPHA_EXT 0x8572 -#define GL_RGB_SCALE_EXT 0x8573 -#define GL_ADD_SIGNED_EXT 0x8574 -#define GL_INTERPOLATE_EXT 0x8575 -#define GL_CONSTANT_EXT 0x8576 -#define GL_PRIMARY_COLOR_EXT 0x8577 -#define GL_PREVIOUS_EXT 0x8578 -#define GL_SOURCE0_RGB_EXT 0x8580 -#define GL_SOURCE1_RGB_EXT 0x8581 -#define GL_SOURCE2_RGB_EXT 0x8582 -#define GL_SOURCE0_ALPHA_EXT 0x8588 -#define GL_SOURCE1_ALPHA_EXT 0x8589 -#define GL_SOURCE2_ALPHA_EXT 0x858A -#define GL_OPERAND0_RGB_EXT 0x8590 -#define GL_OPERAND1_RGB_EXT 0x8591 -#define GL_OPERAND2_RGB_EXT 0x8592 -#define GL_OPERAND0_ALPHA_EXT 0x8598 -#define GL_OPERAND1_ALPHA_EXT 0x8599 -#define GL_OPERAND2_ALPHA_EXT 0x859A -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_TRANSFORM_HINT_APPLE 0x85B1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_FOG_SCALE_SGIX 0x81FC -#define GL_FOG_SCALE_VALUE_SGIX 0x81FD -#endif - -#ifndef GL_SUNX_constant_data -#define GL_UNPACK_CONSTANT_DATA_SUNX 0x81D5 -#define GL_TEXTURE_CONSTANT_DATA_SUNX 0x81D6 -#endif - -#ifndef GL_SUN_global_alpha -#define GL_GLOBAL_ALPHA_SUN 0x81D9 -#define GL_GLOBAL_ALPHA_FACTOR_SUN 0x81DA -#endif - -#ifndef GL_SUN_triangle_list -#define GL_RESTART_SUN 0x0001 -#define GL_REPLACE_MIDDLE_SUN 0x0002 -#define GL_REPLACE_OLDEST_SUN 0x0003 -#define GL_TRIANGLE_LIST_SUN 0x81D7 -#define GL_REPLACEMENT_CODE_SUN 0x81D8 -#define GL_REPLACEMENT_CODE_ARRAY_SUN 0x85C0 -#define GL_REPLACEMENT_CODE_ARRAY_TYPE_SUN 0x85C1 -#define GL_REPLACEMENT_CODE_ARRAY_STRIDE_SUN 0x85C2 -#define GL_REPLACEMENT_CODE_ARRAY_POINTER_SUN 0x85C3 -#define GL_R1UI_V3F_SUN 0x85C4 -#define GL_R1UI_C4UB_V3F_SUN 0x85C5 -#define GL_R1UI_C3F_V3F_SUN 0x85C6 -#define GL_R1UI_N3F_V3F_SUN 0x85C7 -#define GL_R1UI_C4F_N3F_V3F_SUN 0x85C8 -#define GL_R1UI_T2F_V3F_SUN 0x85C9 -#define GL_R1UI_T2F_N3F_V3F_SUN 0x85CA -#define GL_R1UI_T2F_C4F_N3F_V3F_SUN 0x85CB -#endif - -#ifndef GL_SUN_vertex -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_BLEND_DST_RGB_EXT 0x80C8 -#define GL_BLEND_SRC_RGB_EXT 0x80C9 -#define GL_BLEND_DST_ALPHA_EXT 0x80CA -#define GL_BLEND_SRC_ALPHA_EXT 0x80CB -#endif - -#ifndef GL_INGR_color_clamp -#define GL_RED_MIN_CLAMP_INGR 0x8560 -#define GL_GREEN_MIN_CLAMP_INGR 0x8561 -#define GL_BLUE_MIN_CLAMP_INGR 0x8562 -#define GL_ALPHA_MIN_CLAMP_INGR 0x8563 -#define GL_RED_MAX_CLAMP_INGR 0x8564 -#define GL_GREEN_MAX_CLAMP_INGR 0x8565 -#define GL_BLUE_MAX_CLAMP_INGR 0x8566 -#define GL_ALPHA_MAX_CLAMP_INGR 0x8567 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INTERLACE_READ_INGR 0x8568 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_INCR_WRAP_EXT 0x8507 -#define GL_DECR_WRAP_EXT 0x8508 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_422_EXT 0x80CC -#define GL_422_REV_EXT 0x80CD -#define GL_422_AVERAGE_EXT 0x80CE -#define GL_422_REV_AVERAGE_EXT 0x80CF -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NORMAL_MAP_NV 0x8511 -#define GL_REFLECTION_MAP_NV 0x8512 -#endif - -#ifndef GL_EXT_texture_cube_map -#define GL_NORMAL_MAP_EXT 0x8511 -#define GL_REFLECTION_MAP_EXT 0x8512 -#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 -#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 -#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A -#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B -#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_WRAP_BORDER_SUN 0x81D4 -#endif - -#ifndef GL_EXT_texture_env_add -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD -#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 -#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_MODELVIEW0_STACK_DEPTH_EXT GL_MODELVIEW_STACK_DEPTH -#define GL_MODELVIEW1_STACK_DEPTH_EXT 0x8502 -#define GL_MODELVIEW0_MATRIX_EXT GL_MODELVIEW_MATRIX -#define GL_MODELVIEW1_MATRIX_EXT 0x8506 -#define GL_VERTEX_WEIGHTING_EXT 0x8509 -#define GL_MODELVIEW0_EXT GL_MODELVIEW -#define GL_MODELVIEW1_EXT 0x850A -#define GL_CURRENT_VERTEX_WEIGHT_EXT 0x850B -#define GL_VERTEX_WEIGHT_ARRAY_EXT 0x850C -#define GL_VERTEX_WEIGHT_ARRAY_SIZE_EXT 0x850D -#define GL_VERTEX_WEIGHT_ARRAY_TYPE_EXT 0x850E -#define GL_VERTEX_WEIGHT_ARRAY_STRIDE_EXT 0x850F -#define GL_VERTEX_WEIGHT_ARRAY_POINTER_EXT 0x8510 -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_MAX_SHININESS_NV 0x8504 -#define GL_MAX_SPOT_EXPONENT_NV 0x8505 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_NV 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E -#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F -#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 -#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 -#endif - -#ifndef GL_NV_register_combiners -#define GL_REGISTER_COMBINERS_NV 0x8522 -#define GL_VARIABLE_A_NV 0x8523 -#define GL_VARIABLE_B_NV 0x8524 -#define GL_VARIABLE_C_NV 0x8525 -#define GL_VARIABLE_D_NV 0x8526 -#define GL_VARIABLE_E_NV 0x8527 -#define GL_VARIABLE_F_NV 0x8528 -#define GL_VARIABLE_G_NV 0x8529 -#define GL_CONSTANT_COLOR0_NV 0x852A -#define GL_CONSTANT_COLOR1_NV 0x852B -#define GL_PRIMARY_COLOR_NV 0x852C -#define GL_SECONDARY_COLOR_NV 0x852D -#define GL_SPARE0_NV 0x852E -#define GL_SPARE1_NV 0x852F -#define GL_DISCARD_NV 0x8530 -#define GL_E_TIMES_F_NV 0x8531 -#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 -#define GL_UNSIGNED_IDENTITY_NV 0x8536 -#define GL_UNSIGNED_INVERT_NV 0x8537 -#define GL_EXPAND_NORMAL_NV 0x8538 -#define GL_EXPAND_NEGATE_NV 0x8539 -#define GL_HALF_BIAS_NORMAL_NV 0x853A -#define GL_HALF_BIAS_NEGATE_NV 0x853B -#define GL_SIGNED_IDENTITY_NV 0x853C -#define GL_SIGNED_NEGATE_NV 0x853D -#define GL_SCALE_BY_TWO_NV 0x853E -#define GL_SCALE_BY_FOUR_NV 0x853F -#define GL_SCALE_BY_ONE_HALF_NV 0x8540 -#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 -#define GL_COMBINER_INPUT_NV 0x8542 -#define GL_COMBINER_MAPPING_NV 0x8543 -#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 -#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 -#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 -#define GL_COMBINER_MUX_SUM_NV 0x8547 -#define GL_COMBINER_SCALE_NV 0x8548 -#define GL_COMBINER_BIAS_NV 0x8549 -#define GL_COMBINER_AB_OUTPUT_NV 0x854A -#define GL_COMBINER_CD_OUTPUT_NV 0x854B -#define GL_COMBINER_SUM_OUTPUT_NV 0x854C -#define GL_MAX_GENERAL_COMBINERS_NV 0x854D -#define GL_NUM_GENERAL_COMBINERS_NV 0x854E -#define GL_COLOR_SUM_CLAMP_NV 0x854F -#define GL_COMBINER0_NV 0x8550 -#define GL_COMBINER1_NV 0x8551 -#define GL_COMBINER2_NV 0x8552 -#define GL_COMBINER3_NV 0x8553 -#define GL_COMBINER4_NV 0x8554 -#define GL_COMBINER5_NV 0x8555 -#define GL_COMBINER6_NV 0x8556 -#define GL_COMBINER7_NV 0x8557 -/* reuse GL_TEXTURE0_ARB */ -/* reuse GL_TEXTURE1_ARB */ -/* reuse GL_ZERO */ -/* reuse GL_NONE */ -/* reuse GL_FOG */ -#endif - -#ifndef GL_NV_fog_distance -#define GL_FOG_DISTANCE_MODE_NV 0x855A -#define GL_EYE_RADIAL_NV 0x855B -#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C -/* reuse GL_EYE_PLANE */ -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_EMBOSS_LIGHT_NV 0x855D -#define GL_EMBOSS_CONSTANT_NV 0x855E -#define GL_EMBOSS_MAP_NV 0x855F -#endif - -#ifndef GL_NV_blend_square -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_COMBINE4_NV 0x8503 -#define GL_SOURCE3_RGB_NV 0x8583 -#define GL_SOURCE3_ALPHA_NV 0x858B -#define GL_OPERAND3_RGB_NV 0x8593 -#define GL_OPERAND3_ALPHA_NV 0x859B -#endif - -#ifndef GL_MESA_resize_buffers -#endif - -#ifndef GL_MESA_window_pos -#endif - -#ifndef GL_EXT_texture_compression_s3tc -#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_CULL_VERTEX_IBM 103050 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_VERTEX_ARRAY_LIST_IBM 103070 -#define GL_NORMAL_ARRAY_LIST_IBM 103071 -#define GL_COLOR_ARRAY_LIST_IBM 103072 -#define GL_INDEX_ARRAY_LIST_IBM 103073 -#define GL_TEXTURE_COORD_ARRAY_LIST_IBM 103074 -#define GL_EDGE_FLAG_ARRAY_LIST_IBM 103075 -#define GL_FOG_COORDINATE_ARRAY_LIST_IBM 103076 -#define GL_SECONDARY_COLOR_ARRAY_LIST_IBM 103077 -#define GL_VERTEX_ARRAY_LIST_STRIDE_IBM 103080 -#define GL_NORMAL_ARRAY_LIST_STRIDE_IBM 103081 -#define GL_COLOR_ARRAY_LIST_STRIDE_IBM 103082 -#define GL_INDEX_ARRAY_LIST_STRIDE_IBM 103083 -#define GL_TEXTURE_COORD_ARRAY_LIST_STRIDE_IBM 103084 -#define GL_EDGE_FLAG_ARRAY_LIST_STRIDE_IBM 103085 -#define GL_FOG_COORDINATE_ARRAY_LIST_STRIDE_IBM 103086 -#define GL_SECONDARY_COLOR_ARRAY_LIST_STRIDE_IBM 103087 -#endif - -#ifndef GL_SGIX_subsample -#define GL_PACK_SUBSAMPLE_RATE_SGIX 0x85A0 -#define GL_UNPACK_SUBSAMPLE_RATE_SGIX 0x85A1 -#define GL_PIXEL_SUBSAMPLE_4444_SGIX 0x85A2 -#define GL_PIXEL_SUBSAMPLE_2424_SGIX 0x85A3 -#define GL_PIXEL_SUBSAMPLE_4242_SGIX 0x85A4 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_YCRCB_SGIX 0x8318 -#define GL_YCRCBA_SGIX 0x8319 -#endif - -#ifndef GL_SGI_depth_pass_instrument -#define GL_DEPTH_PASS_INSTRUMENT_SGIX 0x8310 -#define GL_DEPTH_PASS_INSTRUMENT_COUNTERS_SGIX 0x8311 -#define GL_DEPTH_PASS_INSTRUMENT_MAX_SGIX 0x8312 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_COMPRESSED_RGB_FXT1_3DFX 0x86B0 -#define GL_COMPRESSED_RGBA_FXT1_3DFX 0x86B1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_MULTISAMPLE_3DFX 0x86B2 -#define GL_SAMPLE_BUFFERS_3DFX 0x86B3 -#define GL_SAMPLES_3DFX 0x86B4 -#define GL_MULTISAMPLE_BIT_3DFX 0x20000000 -#endif - -#ifndef GL_3DFX_tbuffer -#endif - -#ifndef GL_EXT_multisample -#define GL_MULTISAMPLE_EXT 0x809D -#define GL_SAMPLE_ALPHA_TO_MASK_EXT 0x809E -#define GL_SAMPLE_ALPHA_TO_ONE_EXT 0x809F -#define GL_SAMPLE_MASK_EXT 0x80A0 -#define GL_1PASS_EXT 0x80A1 -#define GL_2PASS_0_EXT 0x80A2 -#define GL_2PASS_1_EXT 0x80A3 -#define GL_4PASS_0_EXT 0x80A4 -#define GL_4PASS_1_EXT 0x80A5 -#define GL_4PASS_2_EXT 0x80A6 -#define GL_4PASS_3_EXT 0x80A7 -#define GL_SAMPLE_BUFFERS_EXT 0x80A8 -#define GL_SAMPLES_EXT 0x80A9 -#define GL_SAMPLE_MASK_VALUE_EXT 0x80AA -#define GL_SAMPLE_MASK_INVERT_EXT 0x80AB -#define GL_SAMPLE_PATTERN_EXT 0x80AC -#define GL_MULTISAMPLE_BIT_EXT 0x20000000 -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_VERTEX_PRECLIP_SGIX 0x83EE -#define GL_VERTEX_PRECLIP_HINT_SGIX 0x83EF -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_CONVOLUTION_HINT_SGIX 0x8316 -#endif - -#ifndef GL_SGIX_resample -#define GL_PACK_RESAMPLE_SGIX 0x842C -#define GL_UNPACK_RESAMPLE_SGIX 0x842D -#define GL_RESAMPLE_REPLICATE_SGIX 0x842E -#define GL_RESAMPLE_ZERO_FILL_SGIX 0x842F -#define GL_RESAMPLE_DECIMATE_SGIX 0x8430 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_EYE_DISTANCE_TO_POINT_SGIS 0x81F0 -#define GL_OBJECT_DISTANCE_TO_POINT_SGIS 0x81F1 -#define GL_EYE_DISTANCE_TO_LINE_SGIS 0x81F2 -#define GL_OBJECT_DISTANCE_TO_LINE_SGIS 0x81F3 -#define GL_EYE_POINT_SGIS 0x81F4 -#define GL_OBJECT_POINT_SGIS 0x81F5 -#define GL_EYE_LINE_SGIS 0x81F6 -#define GL_OBJECT_LINE_SGIS 0x81F7 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_TEXTURE_COLOR_WRITEMASK_SGIS 0x81EF -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_DOT3_RGB_EXT 0x8740 -#define GL_DOT3_RGBA_EXT 0x8741 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_MIRROR_CLAMP_ATI 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 -#endif - -#ifndef GL_NV_fence -#define GL_ALL_COMPLETED_NV 0x84F2 -#define GL_FENCE_STATUS_NV 0x84F3 -#define GL_FENCE_CONDITION_NV 0x84F4 -#endif - -#ifndef GL_IBM_texture_mirrored_repeat -#define GL_MIRRORED_REPEAT_IBM 0x8370 -#endif - -#ifndef GL_NV_evaluators -#define GL_EVAL_2D_NV 0x86C0 -#define GL_EVAL_TRIANGULAR_2D_NV 0x86C1 -#define GL_MAP_TESSELLATION_NV 0x86C2 -#define GL_MAP_ATTRIB_U_ORDER_NV 0x86C3 -#define GL_MAP_ATTRIB_V_ORDER_NV 0x86C4 -#define GL_EVAL_FRACTIONAL_TESSELLATION_NV 0x86C5 -#define GL_EVAL_VERTEX_ATTRIB0_NV 0x86C6 -#define GL_EVAL_VERTEX_ATTRIB1_NV 0x86C7 -#define GL_EVAL_VERTEX_ATTRIB2_NV 0x86C8 -#define GL_EVAL_VERTEX_ATTRIB3_NV 0x86C9 -#define GL_EVAL_VERTEX_ATTRIB4_NV 0x86CA -#define GL_EVAL_VERTEX_ATTRIB5_NV 0x86CB -#define GL_EVAL_VERTEX_ATTRIB6_NV 0x86CC -#define GL_EVAL_VERTEX_ATTRIB7_NV 0x86CD -#define GL_EVAL_VERTEX_ATTRIB8_NV 0x86CE -#define GL_EVAL_VERTEX_ATTRIB9_NV 0x86CF -#define GL_EVAL_VERTEX_ATTRIB10_NV 0x86D0 -#define GL_EVAL_VERTEX_ATTRIB11_NV 0x86D1 -#define GL_EVAL_VERTEX_ATTRIB12_NV 0x86D2 -#define GL_EVAL_VERTEX_ATTRIB13_NV 0x86D3 -#define GL_EVAL_VERTEX_ATTRIB14_NV 0x86D4 -#define GL_EVAL_VERTEX_ATTRIB15_NV 0x86D5 -#define GL_MAX_MAP_TESSELLATION_NV 0x86D6 -#define GL_MAX_RATIONAL_EVAL_ORDER_NV 0x86D7 -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_DEPTH_STENCIL_NV 0x84F9 -#define GL_UNSIGNED_INT_24_8_NV 0x84FA -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_PER_STAGE_CONSTANTS_NV 0x8535 -#endif - -#ifndef GL_NV_texture_compression_vtc -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_TEXTURE_RECTANGLE_NV 0x84F5 -#define GL_TEXTURE_BINDING_RECTANGLE_NV 0x84F6 -#define GL_PROXY_TEXTURE_RECTANGLE_NV 0x84F7 -#define GL_MAX_RECTANGLE_TEXTURE_SIZE_NV 0x84F8 -#endif - -#ifndef GL_NV_texture_shader -#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C -#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D -#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E -#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 -#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA -#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB -#define GL_DSDT_MAG_INTENSITY_NV 0x86DC -#define GL_SHADER_CONSISTENT_NV 0x86DD -#define GL_TEXTURE_SHADER_NV 0x86DE -#define GL_SHADER_OPERATION_NV 0x86DF -#define GL_CULL_MODES_NV 0x86E0 -#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 -#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 -#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 -#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV -#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV -#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV -#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 -#define GL_CONST_EYE_NV 0x86E5 -#define GL_PASS_THROUGH_NV 0x86E6 -#define GL_CULL_FRAGMENT_NV 0x86E7 -#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 -#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 -#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA -#define GL_DOT_PRODUCT_NV 0x86EC -#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED -#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE -#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 -#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 -#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 -#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 -#define GL_HILO_NV 0x86F4 -#define GL_DSDT_NV 0x86F5 -#define GL_DSDT_MAG_NV 0x86F6 -#define GL_DSDT_MAG_VIB_NV 0x86F7 -#define GL_HILO16_NV 0x86F8 -#define GL_SIGNED_HILO_NV 0x86F9 -#define GL_SIGNED_HILO16_NV 0x86FA -#define GL_SIGNED_RGBA_NV 0x86FB -#define GL_SIGNED_RGBA8_NV 0x86FC -#define GL_SIGNED_RGB_NV 0x86FE -#define GL_SIGNED_RGB8_NV 0x86FF -#define GL_SIGNED_LUMINANCE_NV 0x8701 -#define GL_SIGNED_LUMINANCE8_NV 0x8702 -#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 -#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 -#define GL_SIGNED_ALPHA_NV 0x8705 -#define GL_SIGNED_ALPHA8_NV 0x8706 -#define GL_SIGNED_INTENSITY_NV 0x8707 -#define GL_SIGNED_INTENSITY8_NV 0x8708 -#define GL_DSDT8_NV 0x8709 -#define GL_DSDT8_MAG8_NV 0x870A -#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B -#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C -#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D -#define GL_HI_SCALE_NV 0x870E -#define GL_LO_SCALE_NV 0x870F -#define GL_DS_SCALE_NV 0x8710 -#define GL_DT_SCALE_NV 0x8711 -#define GL_MAGNITUDE_SCALE_NV 0x8712 -#define GL_VIBRANCE_SCALE_NV 0x8713 -#define GL_HI_BIAS_NV 0x8714 -#define GL_LO_BIAS_NV 0x8715 -#define GL_DS_BIAS_NV 0x8716 -#define GL_DT_BIAS_NV 0x8717 -#define GL_MAGNITUDE_BIAS_NV 0x8718 -#define GL_VIBRANCE_BIAS_NV 0x8719 -#define GL_TEXTURE_BORDER_VALUES_NV 0x871A -#define GL_TEXTURE_HI_SIZE_NV 0x871B -#define GL_TEXTURE_LO_SIZE_NV 0x871C -#define GL_TEXTURE_DS_SIZE_NV 0x871D -#define GL_TEXTURE_DT_SIZE_NV 0x871E -#define GL_TEXTURE_MAG_SIZE_NV 0x871F -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 -#endif - -#ifndef GL_NV_vertex_program -#define GL_VERTEX_PROGRAM_NV 0x8620 -#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 -#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 -#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 -#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 -#define GL_CURRENT_ATTRIB_NV 0x8626 -#define GL_PROGRAM_LENGTH_NV 0x8627 -#define GL_PROGRAM_STRING_NV 0x8628 -#define GL_MODELVIEW_PROJECTION_NV 0x8629 -#define GL_IDENTITY_NV 0x862A -#define GL_INVERSE_NV 0x862B -#define GL_TRANSPOSE_NV 0x862C -#define GL_INVERSE_TRANSPOSE_NV 0x862D -#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E -#define GL_MAX_TRACK_MATRICES_NV 0x862F -#define GL_MATRIX0_NV 0x8630 -#define GL_MATRIX1_NV 0x8631 -#define GL_MATRIX2_NV 0x8632 -#define GL_MATRIX3_NV 0x8633 -#define GL_MATRIX4_NV 0x8634 -#define GL_MATRIX5_NV 0x8635 -#define GL_MATRIX6_NV 0x8636 -#define GL_MATRIX7_NV 0x8637 -#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 -#define GL_CURRENT_MATRIX_NV 0x8641 -#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 -#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 -#define GL_PROGRAM_PARAMETER_NV 0x8644 -#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 -#define GL_PROGRAM_TARGET_NV 0x8646 -#define GL_PROGRAM_RESIDENT_NV 0x8647 -#define GL_TRACK_MATRIX_NV 0x8648 -#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 -#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A -#define GL_PROGRAM_ERROR_POSITION_NV 0x864B -#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 -#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 -#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 -#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 -#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 -#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 -#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 -#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 -#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 -#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 -#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A -#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B -#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C -#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D -#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E -#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F -#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 -#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 -#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 -#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 -#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 -#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 -#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 -#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 -#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 -#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 -#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A -#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B -#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C -#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D -#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E -#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F -#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 -#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 -#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 -#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 -#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 -#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 -#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 -#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 -#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 -#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 -#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A -#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B -#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C -#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D -#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E -#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_TEXTURE_MAX_CLAMP_S_SGIX 0x8369 -#define GL_TEXTURE_MAX_CLAMP_T_SGIX 0x836A -#define GL_TEXTURE_MAX_CLAMP_R_SGIX 0x836B -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SCALEBIAS_HINT_SGIX 0x8322 -#endif - -#ifndef GL_OML_interlace -#define GL_INTERLACE_OML 0x8980 -#define GL_INTERLACE_READ_OML 0x8981 -#endif - -#ifndef GL_OML_subsample -#define GL_FORMAT_SUBSAMPLE_24_24_OML 0x8982 -#define GL_FORMAT_SUBSAMPLE_244_244_OML 0x8983 -#endif - -#ifndef GL_OML_resample -#define GL_PACK_RESAMPLE_OML 0x8984 -#define GL_UNPACK_RESAMPLE_OML 0x8985 -#define GL_RESAMPLE_REPLICATE_OML 0x8986 -#define GL_RESAMPLE_ZERO_FILL_OML 0x8987 -#define GL_RESAMPLE_AVERAGE_OML 0x8988 -#define GL_RESAMPLE_DECIMATE_OML 0x8989 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_DEPTH_STENCIL_TO_RGBA_NV 0x886E -#define GL_DEPTH_STENCIL_TO_BGRA_NV 0x886F -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_BUMP_ROT_MATRIX_ATI 0x8775 -#define GL_BUMP_ROT_MATRIX_SIZE_ATI 0x8776 -#define GL_BUMP_NUM_TEX_UNITS_ATI 0x8777 -#define GL_BUMP_TEX_UNITS_ATI 0x8778 -#define GL_DUDV_ATI 0x8779 -#define GL_DU8DV8_ATI 0x877A -#define GL_BUMP_ENVMAP_ATI 0x877B -#define GL_BUMP_TARGET_ATI 0x877C -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_FRAGMENT_SHADER_ATI 0x8920 -#define GL_REG_0_ATI 0x8921 -#define GL_REG_1_ATI 0x8922 -#define GL_REG_2_ATI 0x8923 -#define GL_REG_3_ATI 0x8924 -#define GL_REG_4_ATI 0x8925 -#define GL_REG_5_ATI 0x8926 -#define GL_REG_6_ATI 0x8927 -#define GL_REG_7_ATI 0x8928 -#define GL_REG_8_ATI 0x8929 -#define GL_REG_9_ATI 0x892A -#define GL_REG_10_ATI 0x892B -#define GL_REG_11_ATI 0x892C -#define GL_REG_12_ATI 0x892D -#define GL_REG_13_ATI 0x892E -#define GL_REG_14_ATI 0x892F -#define GL_REG_15_ATI 0x8930 -#define GL_REG_16_ATI 0x8931 -#define GL_REG_17_ATI 0x8932 -#define GL_REG_18_ATI 0x8933 -#define GL_REG_19_ATI 0x8934 -#define GL_REG_20_ATI 0x8935 -#define GL_REG_21_ATI 0x8936 -#define GL_REG_22_ATI 0x8937 -#define GL_REG_23_ATI 0x8938 -#define GL_REG_24_ATI 0x8939 -#define GL_REG_25_ATI 0x893A -#define GL_REG_26_ATI 0x893B -#define GL_REG_27_ATI 0x893C -#define GL_REG_28_ATI 0x893D -#define GL_REG_29_ATI 0x893E -#define GL_REG_30_ATI 0x893F -#define GL_REG_31_ATI 0x8940 -#define GL_CON_0_ATI 0x8941 -#define GL_CON_1_ATI 0x8942 -#define GL_CON_2_ATI 0x8943 -#define GL_CON_3_ATI 0x8944 -#define GL_CON_4_ATI 0x8945 -#define GL_CON_5_ATI 0x8946 -#define GL_CON_6_ATI 0x8947 -#define GL_CON_7_ATI 0x8948 -#define GL_CON_8_ATI 0x8949 -#define GL_CON_9_ATI 0x894A -#define GL_CON_10_ATI 0x894B -#define GL_CON_11_ATI 0x894C -#define GL_CON_12_ATI 0x894D -#define GL_CON_13_ATI 0x894E -#define GL_CON_14_ATI 0x894F -#define GL_CON_15_ATI 0x8950 -#define GL_CON_16_ATI 0x8951 -#define GL_CON_17_ATI 0x8952 -#define GL_CON_18_ATI 0x8953 -#define GL_CON_19_ATI 0x8954 -#define GL_CON_20_ATI 0x8955 -#define GL_CON_21_ATI 0x8956 -#define GL_CON_22_ATI 0x8957 -#define GL_CON_23_ATI 0x8958 -#define GL_CON_24_ATI 0x8959 -#define GL_CON_25_ATI 0x895A -#define GL_CON_26_ATI 0x895B -#define GL_CON_27_ATI 0x895C -#define GL_CON_28_ATI 0x895D -#define GL_CON_29_ATI 0x895E -#define GL_CON_30_ATI 0x895F -#define GL_CON_31_ATI 0x8960 -#define GL_MOV_ATI 0x8961 -#define GL_ADD_ATI 0x8963 -#define GL_MUL_ATI 0x8964 -#define GL_SUB_ATI 0x8965 -#define GL_DOT3_ATI 0x8966 -#define GL_DOT4_ATI 0x8967 -#define GL_MAD_ATI 0x8968 -#define GL_LERP_ATI 0x8969 -#define GL_CND_ATI 0x896A -#define GL_CND0_ATI 0x896B -#define GL_DOT2_ADD_ATI 0x896C -#define GL_SECONDARY_INTERPOLATOR_ATI 0x896D -#define GL_NUM_FRAGMENT_REGISTERS_ATI 0x896E -#define GL_NUM_FRAGMENT_CONSTANTS_ATI 0x896F -#define GL_NUM_PASSES_ATI 0x8970 -#define GL_NUM_INSTRUCTIONS_PER_PASS_ATI 0x8971 -#define GL_NUM_INSTRUCTIONS_TOTAL_ATI 0x8972 -#define GL_NUM_INPUT_INTERPOLATOR_COMPONENTS_ATI 0x8973 -#define GL_NUM_LOOPBACK_COMPONENTS_ATI 0x8974 -#define GL_COLOR_ALPHA_PAIRING_ATI 0x8975 -#define GL_SWIZZLE_STR_ATI 0x8976 -#define GL_SWIZZLE_STQ_ATI 0x8977 -#define GL_SWIZZLE_STR_DR_ATI 0x8978 -#define GL_SWIZZLE_STQ_DQ_ATI 0x8979 -#define GL_SWIZZLE_STRQ_ATI 0x897A -#define GL_SWIZZLE_STRQ_DQ_ATI 0x897B -#define GL_RED_BIT_ATI 0x00000001 -#define GL_GREEN_BIT_ATI 0x00000002 -#define GL_BLUE_BIT_ATI 0x00000004 -#define GL_2X_BIT_ATI 0x00000001 -#define GL_4X_BIT_ATI 0x00000002 -#define GL_8X_BIT_ATI 0x00000004 -#define GL_HALF_BIT_ATI 0x00000008 -#define GL_QUARTER_BIT_ATI 0x00000010 -#define GL_EIGHTH_BIT_ATI 0x00000020 -#define GL_SATURATE_BIT_ATI 0x00000040 -#define GL_COMP_BIT_ATI 0x00000002 -#define GL_NEGATE_BIT_ATI 0x00000004 -#define GL_BIAS_BIT_ATI 0x00000008 -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_PN_TRIANGLES_ATI 0x87F0 -#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F1 -#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x87F2 -#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x87F3 -#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x87F4 -#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x87F5 -#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x87F6 -#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x87F7 -#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x87F8 -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_STATIC_ATI 0x8760 -#define GL_DYNAMIC_ATI 0x8761 -#define GL_PRESERVE_ATI 0x8762 -#define GL_DISCARD_ATI 0x8763 -#define GL_OBJECT_BUFFER_SIZE_ATI 0x8764 -#define GL_OBJECT_BUFFER_USAGE_ATI 0x8765 -#define GL_ARRAY_OBJECT_BUFFER_ATI 0x8766 -#define GL_ARRAY_OBJECT_OFFSET_ATI 0x8767 -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_VERTEX_SHADER_EXT 0x8780 -#define GL_VERTEX_SHADER_BINDING_EXT 0x8781 -#define GL_OP_INDEX_EXT 0x8782 -#define GL_OP_NEGATE_EXT 0x8783 -#define GL_OP_DOT3_EXT 0x8784 -#define GL_OP_DOT4_EXT 0x8785 -#define GL_OP_MUL_EXT 0x8786 -#define GL_OP_ADD_EXT 0x8787 -#define GL_OP_MADD_EXT 0x8788 -#define GL_OP_FRAC_EXT 0x8789 -#define GL_OP_MAX_EXT 0x878A -#define GL_OP_MIN_EXT 0x878B -#define GL_OP_SET_GE_EXT 0x878C -#define GL_OP_SET_LT_EXT 0x878D -#define GL_OP_CLAMP_EXT 0x878E -#define GL_OP_FLOOR_EXT 0x878F -#define GL_OP_ROUND_EXT 0x8790 -#define GL_OP_EXP_BASE_2_EXT 0x8791 -#define GL_OP_LOG_BASE_2_EXT 0x8792 -#define GL_OP_POWER_EXT 0x8793 -#define GL_OP_RECIP_EXT 0x8794 -#define GL_OP_RECIP_SQRT_EXT 0x8795 -#define GL_OP_SUB_EXT 0x8796 -#define GL_OP_CROSS_PRODUCT_EXT 0x8797 -#define GL_OP_MULTIPLY_MATRIX_EXT 0x8798 -#define GL_OP_MOV_EXT 0x8799 -#define GL_OUTPUT_VERTEX_EXT 0x879A -#define GL_OUTPUT_COLOR0_EXT 0x879B -#define GL_OUTPUT_COLOR1_EXT 0x879C -#define GL_OUTPUT_TEXTURE_COORD0_EXT 0x879D -#define GL_OUTPUT_TEXTURE_COORD1_EXT 0x879E -#define GL_OUTPUT_TEXTURE_COORD2_EXT 0x879F -#define GL_OUTPUT_TEXTURE_COORD3_EXT 0x87A0 -#define GL_OUTPUT_TEXTURE_COORD4_EXT 0x87A1 -#define GL_OUTPUT_TEXTURE_COORD5_EXT 0x87A2 -#define GL_OUTPUT_TEXTURE_COORD6_EXT 0x87A3 -#define GL_OUTPUT_TEXTURE_COORD7_EXT 0x87A4 -#define GL_OUTPUT_TEXTURE_COORD8_EXT 0x87A5 -#define GL_OUTPUT_TEXTURE_COORD9_EXT 0x87A6 -#define GL_OUTPUT_TEXTURE_COORD10_EXT 0x87A7 -#define GL_OUTPUT_TEXTURE_COORD11_EXT 0x87A8 -#define GL_OUTPUT_TEXTURE_COORD12_EXT 0x87A9 -#define GL_OUTPUT_TEXTURE_COORD13_EXT 0x87AA -#define GL_OUTPUT_TEXTURE_COORD14_EXT 0x87AB -#define GL_OUTPUT_TEXTURE_COORD15_EXT 0x87AC -#define GL_OUTPUT_TEXTURE_COORD16_EXT 0x87AD -#define GL_OUTPUT_TEXTURE_COORD17_EXT 0x87AE -#define GL_OUTPUT_TEXTURE_COORD18_EXT 0x87AF -#define GL_OUTPUT_TEXTURE_COORD19_EXT 0x87B0 -#define GL_OUTPUT_TEXTURE_COORD20_EXT 0x87B1 -#define GL_OUTPUT_TEXTURE_COORD21_EXT 0x87B2 -#define GL_OUTPUT_TEXTURE_COORD22_EXT 0x87B3 -#define GL_OUTPUT_TEXTURE_COORD23_EXT 0x87B4 -#define GL_OUTPUT_TEXTURE_COORD24_EXT 0x87B5 -#define GL_OUTPUT_TEXTURE_COORD25_EXT 0x87B6 -#define GL_OUTPUT_TEXTURE_COORD26_EXT 0x87B7 -#define GL_OUTPUT_TEXTURE_COORD27_EXT 0x87B8 -#define GL_OUTPUT_TEXTURE_COORD28_EXT 0x87B9 -#define GL_OUTPUT_TEXTURE_COORD29_EXT 0x87BA -#define GL_OUTPUT_TEXTURE_COORD30_EXT 0x87BB -#define GL_OUTPUT_TEXTURE_COORD31_EXT 0x87BC -#define GL_OUTPUT_FOG_EXT 0x87BD -#define GL_SCALAR_EXT 0x87BE -#define GL_VECTOR_EXT 0x87BF -#define GL_MATRIX_EXT 0x87C0 -#define GL_VARIANT_EXT 0x87C1 -#define GL_INVARIANT_EXT 0x87C2 -#define GL_LOCAL_CONSTANT_EXT 0x87C3 -#define GL_LOCAL_EXT 0x87C4 -#define GL_MAX_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87C5 -#define GL_MAX_VERTEX_SHADER_VARIANTS_EXT 0x87C6 -#define GL_MAX_VERTEX_SHADER_INVARIANTS_EXT 0x87C7 -#define GL_MAX_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87C8 -#define GL_MAX_VERTEX_SHADER_LOCALS_EXT 0x87C9 -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CA -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_VARIANTS_EXT 0x87CB -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87CC -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_INVARIANTS_EXT 0x87CD -#define GL_MAX_OPTIMIZED_VERTEX_SHADER_LOCALS_EXT 0x87CE -#define GL_VERTEX_SHADER_INSTRUCTIONS_EXT 0x87CF -#define GL_VERTEX_SHADER_VARIANTS_EXT 0x87D0 -#define GL_VERTEX_SHADER_INVARIANTS_EXT 0x87D1 -#define GL_VERTEX_SHADER_LOCAL_CONSTANTS_EXT 0x87D2 -#define GL_VERTEX_SHADER_LOCALS_EXT 0x87D3 -#define GL_VERTEX_SHADER_OPTIMIZED_EXT 0x87D4 -#define GL_X_EXT 0x87D5 -#define GL_Y_EXT 0x87D6 -#define GL_Z_EXT 0x87D7 -#define GL_W_EXT 0x87D8 -#define GL_NEGATIVE_X_EXT 0x87D9 -#define GL_NEGATIVE_Y_EXT 0x87DA -#define GL_NEGATIVE_Z_EXT 0x87DB -#define GL_NEGATIVE_W_EXT 0x87DC -#define GL_ZERO_EXT 0x87DD -#define GL_ONE_EXT 0x87DE -#define GL_NEGATIVE_ONE_EXT 0x87DF -#define GL_NORMALIZED_RANGE_EXT 0x87E0 -#define GL_FULL_RANGE_EXT 0x87E1 -#define GL_CURRENT_VERTEX_EXT 0x87E2 -#define GL_MVP_MATRIX_EXT 0x87E3 -#define GL_VARIANT_VALUE_EXT 0x87E4 -#define GL_VARIANT_DATATYPE_EXT 0x87E5 -#define GL_VARIANT_ARRAY_STRIDE_EXT 0x87E6 -#define GL_VARIANT_ARRAY_TYPE_EXT 0x87E7 -#define GL_VARIANT_ARRAY_EXT 0x87E8 -#define GL_VARIANT_ARRAY_POINTER_EXT 0x87E9 -#define GL_INVARIANT_VALUE_EXT 0x87EA -#define GL_INVARIANT_DATATYPE_EXT 0x87EB -#define GL_LOCAL_CONSTANT_VALUE_EXT 0x87EC -#define GL_LOCAL_CONSTANT_DATATYPE_EXT 0x87ED -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_MAX_VERTEX_STREAMS_ATI 0x876B -#define GL_VERTEX_STREAM0_ATI 0x876C -#define GL_VERTEX_STREAM1_ATI 0x876D -#define GL_VERTEX_STREAM2_ATI 0x876E -#define GL_VERTEX_STREAM3_ATI 0x876F -#define GL_VERTEX_STREAM4_ATI 0x8770 -#define GL_VERTEX_STREAM5_ATI 0x8771 -#define GL_VERTEX_STREAM6_ATI 0x8772 -#define GL_VERTEX_STREAM7_ATI 0x8773 -#define GL_VERTEX_SOURCE_ATI 0x8774 -#endif - -#ifndef GL_ATI_element_array -#define GL_ELEMENT_ARRAY_ATI 0x8768 -#define GL_ELEMENT_ARRAY_TYPE_ATI 0x8769 -#define GL_ELEMENT_ARRAY_POINTER_ATI 0x876A -#endif - -#ifndef GL_SUN_mesh_array -#define GL_QUAD_MESH_SUN 0x8614 -#define GL_TRIANGLE_MESH_SUN 0x8615 -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SLICE_ACCUM_SUN 0x85CC -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_DEPTH_CLAMP_NV 0x864F -#endif - -#ifndef GL_NV_occlusion_query -#define GL_PIXEL_COUNTER_BITS_NV 0x8864 -#define GL_CURRENT_OCCLUSION_QUERY_ID_NV 0x8865 -#define GL_PIXEL_COUNT_NV 0x8866 -#define GL_PIXEL_COUNT_AVAILABLE_NV 0x8867 -#endif - -#ifndef GL_NV_point_sprite -#define GL_POINT_SPRITE_NV 0x8861 -#define GL_COORD_REPLACE_NV 0x8862 -#define GL_POINT_SPRITE_R_MODE_NV 0x8863 -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 -#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 -#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 -#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 -#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 -#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 -#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 -#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 -#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A -#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B -#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C -#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D -#define GL_HILO8_NV 0x885E -#define GL_SIGNED_HILO8_NV 0x885F -#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 -#endif - -#ifndef GL_NV_vertex_program1_1 -#endif - -#ifndef GL_EXT_shadow_funcs -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 -#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 -#endif - -#ifndef GL_APPLE_element_array -#define GL_ELEMENT_ARRAY_APPLE 0x8A0C -#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D -#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E -#endif - -#ifndef GL_APPLE_fence -#define GL_DRAW_PIXELS_APPLE 0x8A0A -#define GL_FENCE_APPLE 0x8A0B -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D -#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E -#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F -#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 -#define GL_STORAGE_CLIENT_APPLE 0x85B4 -#define GL_STORAGE_CACHED_APPLE 0x85BE -#define GL_STORAGE_SHARED_APPLE 0x85BF -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_YCBCR_422_APPLE 0x85B9 -#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB -#endif - -#ifndef GL_S3_s3tc -#define GL_RGB_S3TC 0x83A0 -#define GL_RGB4_S3TC 0x83A1 -#define GL_RGBA_S3TC 0x83A2 -#define GL_RGBA4_S3TC 0x83A3 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_MAX_DRAW_BUFFERS_ATI 0x8824 -#define GL_DRAW_BUFFER0_ATI 0x8825 -#define GL_DRAW_BUFFER1_ATI 0x8826 -#define GL_DRAW_BUFFER2_ATI 0x8827 -#define GL_DRAW_BUFFER3_ATI 0x8828 -#define GL_DRAW_BUFFER4_ATI 0x8829 -#define GL_DRAW_BUFFER5_ATI 0x882A -#define GL_DRAW_BUFFER6_ATI 0x882B -#define GL_DRAW_BUFFER7_ATI 0x882C -#define GL_DRAW_BUFFER8_ATI 0x882D -#define GL_DRAW_BUFFER9_ATI 0x882E -#define GL_DRAW_BUFFER10_ATI 0x882F -#define GL_DRAW_BUFFER11_ATI 0x8830 -#define GL_DRAW_BUFFER12_ATI 0x8831 -#define GL_DRAW_BUFFER13_ATI 0x8832 -#define GL_DRAW_BUFFER14_ATI 0x8833 -#define GL_DRAW_BUFFER15_ATI 0x8834 -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_TYPE_RGBA_FLOAT_ATI 0x8820 -#define GL_COLOR_CLEAR_UNCLAMPED_VALUE_ATI 0x8835 -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_MODULATE_ADD_ATI 0x8744 -#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 -#define GL_MODULATE_SUBTRACT_ATI 0x8746 -#endif - -#ifndef GL_ATI_texture_float -#define GL_RGBA_FLOAT32_ATI 0x8814 -#define GL_RGB_FLOAT32_ATI 0x8815 -#define GL_ALPHA_FLOAT32_ATI 0x8816 -#define GL_INTENSITY_FLOAT32_ATI 0x8817 -#define GL_LUMINANCE_FLOAT32_ATI 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 -#define GL_RGBA_FLOAT16_ATI 0x881A -#define GL_RGB_FLOAT16_ATI 0x881B -#define GL_ALPHA_FLOAT16_ATI 0x881C -#define GL_INTENSITY_FLOAT16_ATI 0x881D -#define GL_LUMINANCE_FLOAT16_ATI 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F -#endif - -#ifndef GL_NV_float_buffer -#define GL_FLOAT_R_NV 0x8880 -#define GL_FLOAT_RG_NV 0x8881 -#define GL_FLOAT_RGB_NV 0x8882 -#define GL_FLOAT_RGBA_NV 0x8883 -#define GL_FLOAT_R16_NV 0x8884 -#define GL_FLOAT_R32_NV 0x8885 -#define GL_FLOAT_RG16_NV 0x8886 -#define GL_FLOAT_RG32_NV 0x8887 -#define GL_FLOAT_RGB16_NV 0x8888 -#define GL_FLOAT_RGB32_NV 0x8889 -#define GL_FLOAT_RGBA16_NV 0x888A -#define GL_FLOAT_RGBA32_NV 0x888B -#define GL_TEXTURE_FLOAT_COMPONENTS_NV 0x888C -#define GL_FLOAT_CLEAR_COLOR_VALUE_NV 0x888D -#define GL_FLOAT_RGBA_MODE_NV 0x888E -#endif - -#ifndef GL_NV_fragment_program -#define GL_MAX_FRAGMENT_PROGRAM_LOCAL_PARAMETERS_NV 0x8868 -#define GL_FRAGMENT_PROGRAM_NV 0x8870 -#define GL_MAX_TEXTURE_COORDS_NV 0x8871 -#define GL_MAX_TEXTURE_IMAGE_UNITS_NV 0x8872 -#define GL_FRAGMENT_PROGRAM_BINDING_NV 0x8873 -#define GL_PROGRAM_ERROR_STRING_NV 0x8874 -#endif - -#ifndef GL_NV_half_float -#define GL_HALF_FLOAT_NV 0x140B -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_WRITE_PIXEL_DATA_RANGE_NV 0x8878 -#define GL_READ_PIXEL_DATA_RANGE_NV 0x8879 -#define GL_WRITE_PIXEL_DATA_RANGE_LENGTH_NV 0x887A -#define GL_READ_PIXEL_DATA_RANGE_LENGTH_NV 0x887B -#define GL_WRITE_PIXEL_DATA_RANGE_POINTER_NV 0x887C -#define GL_READ_PIXEL_DATA_RANGE_POINTER_NV 0x887D -#endif - -#ifndef GL_NV_primitive_restart -#define GL_PRIMITIVE_RESTART_NV 0x8558 -#define GL_PRIMITIVE_RESTART_INDEX_NV 0x8559 -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_TEXTURE_UNSIGNED_REMAP_MODE_NV 0x888F -#endif - -#ifndef GL_NV_vertex_program2 -#endif - -#ifndef GL_ATI_map_object_buffer -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_STENCIL_BACK_FUNC_ATI 0x8800 -#define GL_STENCIL_BACK_FAIL_ATI 0x8801 -#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 -#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#endif - -#ifndef GL_OES_read_format -#define GL_IMPLEMENTATION_COLOR_READ_TYPE_OES 0x8B9A -#define GL_IMPLEMENTATION_COLOR_READ_FORMAT_OES 0x8B9B -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 -#define GL_DEPTH_BOUNDS_EXT 0x8891 -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_MIRROR_CLAMP_EXT 0x8742 -#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 -#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_BLEND_EQUATION_RGB_EXT 0x8009 -#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D -#endif - -#ifndef GL_MESA_pack_invert -#define GL_PACK_INVERT_MESA 0x8758 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_UNSIGNED_SHORT_8_8_MESA 0x85BA -#define GL_UNSIGNED_SHORT_8_8_REV_MESA 0x85BB -#define GL_YCBCR_MESA 0x8757 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_PIXEL_PACK_BUFFER_EXT 0x88EB -#define GL_PIXEL_UNPACK_BUFFER_EXT 0x88EC -#define GL_PIXEL_PACK_BUFFER_BINDING_EXT 0x88ED -#define GL_PIXEL_UNPACK_BUFFER_BINDING_EXT 0x88EF -#endif - -#ifndef GL_NV_fragment_program_option -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 -#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 -#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 -#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 -#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 -#endif - -#ifndef GL_NV_vertex_program2_option -/* reuse GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV */ -/* reuse GL_MAX_PROGRAM_CALL_DEPTH_NV */ -#endif - -#ifndef GL_NV_vertex_program3 -/* reuse GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB */ -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 -#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 -#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 -#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 -#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 -#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 -#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 -#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 -#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 -#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA -#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB -#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC -#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD -#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF -#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 -#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 -#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 -#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 -#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 -#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 -#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 -#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 -#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 -#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 -#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA -#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB -#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC -#define GL_COLOR_ATTACHMENT13_EXT 0x8CED -#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE -#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF -#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 -#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 -#define GL_FRAMEBUFFER_EXT 0x8D40 -#define GL_RENDERBUFFER_EXT 0x8D41 -#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 -#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 -#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 -#define GL_STENCIL_INDEX1_EXT 0x8D46 -#define GL_STENCIL_INDEX4_EXT 0x8D47 -#define GL_STENCIL_INDEX8_EXT 0x8D48 -#define GL_STENCIL_INDEX16_EXT 0x8D49 -#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 -#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 -#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 -#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 -#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 -#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 -#endif - -#ifndef GL_GREMEDY_string_marker -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_DEPTH_STENCIL_EXT 0x84F9 -#define GL_UNSIGNED_INT_24_8_EXT 0x84FA -#define GL_DEPTH24_STENCIL8_EXT 0x88F0 -#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_STENCIL_TAG_BITS_EXT 0x88F2 -#define GL_STENCIL_CLEAR_TAG_VALUE_EXT 0x88F3 -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 -#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 -#define GL_SLUMINANCE_EXT 0x8C46 -#define GL_SLUMINANCE8_EXT 0x8C47 -#define GL_COMPRESSED_SRGB_EXT 0x8C48 -#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 -#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A -#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B -#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 -#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 -#define GL_DRAW_FRAMEBUFFER_BINDING_EXT GL_FRAMEBUFFER_BINDING_EXT -#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB -#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 -#define GL_MAX_SAMPLES_EXT 0x8D57 -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_TEXTURE_1D_STACK_MESAX 0x8759 -#define GL_TEXTURE_2D_STACK_MESAX 0x875A -#define GL_PROXY_TEXTURE_1D_STACK_MESAX 0x875B -#define GL_PROXY_TEXTURE_2D_STACK_MESAX 0x875C -#define GL_TEXTURE_1D_STACK_BINDING_MESAX 0x875D -#define GL_TEXTURE_2D_STACK_BINDING_MESAX 0x875E -#endif - -#ifndef GL_EXT_timer_query -#define GL_TIME_ELAPSED_EXT 0x88BF -#endif - -#ifndef GL_EXT_gpu_program_parameters -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 -#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_MIN_PROGRAM_TEXEL_OFFSET_NV 0x8904 -#define GL_MAX_PROGRAM_TEXEL_OFFSET_NV 0x8905 -#define GL_PROGRAM_ATTRIB_COMPONENTS_NV 0x8906 -#define GL_PROGRAM_RESULT_COMPONENTS_NV 0x8907 -#define GL_MAX_PROGRAM_ATTRIB_COMPONENTS_NV 0x8908 -#define GL_MAX_PROGRAM_RESULT_COMPONENTS_NV 0x8909 -#define GL_MAX_PROGRAM_GENERIC_ATTRIBS_NV 0x8DA5 -#define GL_MAX_PROGRAM_GENERIC_RESULTS_NV 0x8DA6 -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_LINES_ADJACENCY_EXT 0x000A -#define GL_LINE_STRIP_ADJACENCY_EXT 0x000B -#define GL_TRIANGLES_ADJACENCY_EXT 0x000C -#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0x000D -#define GL_GEOMETRY_PROGRAM_NV 0x8C26 -#define GL_MAX_PROGRAM_OUTPUT_VERTICES_NV 0x8C27 -#define GL_MAX_PROGRAM_TOTAL_OUTPUT_COMPONENTS_NV 0x8C28 -#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA -#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB -#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC -#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 -#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 -#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 -#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 -#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_GEOMETRY_SHADER_EXT 0x8DD9 -/* reuse GL_GEOMETRY_VERTICES_OUT_EXT */ -/* reuse GL_GEOMETRY_INPUT_TYPE_EXT */ -/* reuse GL_GEOMETRY_OUTPUT_TYPE_EXT */ -/* reuse GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT */ -#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD -#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE -#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B -#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF -#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 -#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 -/* reuse GL_LINES_ADJACENCY_EXT */ -/* reuse GL_LINE_STRIP_ADJACENCY_EXT */ -/* reuse GL_TRIANGLES_ADJACENCY_EXT */ -/* reuse GL_TRIANGLE_STRIP_ADJACENCY_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT */ -/* reuse GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT */ -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -/* reuse GL_PROGRAM_POINT_SIZE_EXT */ -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_NV 0x88FD -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 -#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 -#define GL_SAMPLER_BUFFER_EXT 0x8DC2 -#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 -#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 -#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 -#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 -#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 -#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 -#define GL_INT_SAMPLER_1D_EXT 0x8DC9 -#define GL_INT_SAMPLER_2D_EXT 0x8DCA -#define GL_INT_SAMPLER_3D_EXT 0x8DCB -#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC -#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD -#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE -#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF -#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 -#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 -#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 -#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 -#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 -#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 -#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 -#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 -#endif - -#ifndef GL_EXT_draw_instanced -#endif - -#ifndef GL_EXT_packed_float -#define GL_R11F_G11F_B10F_EXT 0x8C3A -#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B -#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C -#endif - -#ifndef GL_EXT_texture_array -#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 -#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 -#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A -#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B -#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C -#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D -#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF -#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E -/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_TEXTURE_BUFFER_EXT 0x8C2A -#define GL_MAX_TEXTURE_BUFFER_SIZE_EXT 0x8C2B -#define GL_TEXTURE_BINDING_BUFFER_EXT 0x8C2C -#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING_EXT 0x8C2D -#define GL_TEXTURE_BUFFER_FORMAT_EXT 0x8C2E -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_COMPRESSED_LUMINANCE_LATC1_EXT 0x8C70 -#define GL_COMPRESSED_SIGNED_LUMINANCE_LATC1_EXT 0x8C71 -#define GL_COMPRESSED_LUMINANCE_ALPHA_LATC2_EXT 0x8C72 -#define GL_COMPRESSED_SIGNED_LUMINANCE_ALPHA_LATC2_EXT 0x8C73 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_COMPRESSED_RED_RGTC1_EXT 0x8DBB -#define GL_COMPRESSED_SIGNED_RED_RGTC1_EXT 0x8DBC -#define GL_COMPRESSED_RED_GREEN_RGTC2_EXT 0x8DBD -#define GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT 0x8DBE -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_RGB9_E5_EXT 0x8C3D -#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E -#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_DEPTH_COMPONENT32F_NV 0x8DAB -#define GL_DEPTH32F_STENCIL8_NV 0x8DAC -#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV_NV 0x8DAD -#define GL_DEPTH_BUFFER_FLOAT_MODE_NV 0x8DAF -#endif - -#ifndef GL_NV_fragment_program4 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_RENDERBUFFER_COVERAGE_SAMPLES_NV 0x8CAB -#define GL_RENDERBUFFER_COLOR_SAMPLES_NV 0x8E10 -#define GL_MAX_MULTISAMPLE_COVERAGE_MODES_NV 0x8E11 -#define GL_MULTISAMPLE_COVERAGE_MODES_NV 0x8E12 -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA -#endif - -#ifndef GL_NV_geometry_shader4 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_BINDINGS_NV 0x8DA0 -#define GL_MAX_PROGRAM_PARAMETER_BUFFER_SIZE_NV 0x8DA1 -#define GL_VERTEX_PROGRAM_PARAMETER_BUFFER_NV 0x8DA2 -#define GL_GEOMETRY_PROGRAM_PARAMETER_BUFFER_NV 0x8DA3 -#define GL_FRAGMENT_PROGRAM_PARAMETER_BUFFER_NV 0x8DA4 -#endif - -#ifndef GL_EXT_draw_buffers2 -#endif - -#ifndef GL_NV_transform_feedback -#define GL_BACK_PRIMARY_COLOR_NV 0x8C77 -#define GL_BACK_SECONDARY_COLOR_NV 0x8C78 -#define GL_TEXTURE_COORD_NV 0x8C79 -#define GL_CLIP_DISTANCE_NV 0x8C7A -#define GL_VERTEX_ID_NV 0x8C7B -#define GL_PRIMITIVE_ID_NV 0x8C7C -#define GL_GENERIC_ATTRIB_NV 0x8C7D -#define GL_TRANSFORM_FEEDBACK_ATTRIBS_NV 0x8C7E -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_NV 0x8C7F -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_NV 0x8C80 -#define GL_ACTIVE_VARYINGS_NV 0x8C81 -#define GL_ACTIVE_VARYING_MAX_LENGTH_NV 0x8C82 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_NV 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_NV 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_NV 0x8C85 -#define GL_TRANSFORM_FEEDBACK_RECORD_NV 0x8C86 -#define GL_PRIMITIVES_GENERATED_NV 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_NV 0x8C88 -#define GL_RASTERIZER_DISCARD_NV 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_ATTRIBS_NV 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_NV 0x8C8B -#define GL_INTERLEAVED_ATTRIBS_NV 0x8C8C -#define GL_SEPARATE_ATTRIBS_NV 0x8C8D -#define GL_TRANSFORM_FEEDBACK_BUFFER_NV 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_NV 0x8C8F -#define GL_LAYER_NV 0x8DAA -#define GL_NEXT_BUFFER_NV -2 -#define GL_SKIP_COMPONENTS4_NV -3 -#define GL_SKIP_COMPONENTS3_NV -4 -#define GL_SKIP_COMPONENTS2_NV -5 -#define GL_SKIP_COMPONENTS1_NV -6 -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#define GL_UNIFORM_BUFFER_EXT 0x8DEE -#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF -#endif - -#ifndef GL_EXT_texture_integer -#define GL_RGBA32UI_EXT 0x8D70 -#define GL_RGB32UI_EXT 0x8D71 -#define GL_ALPHA32UI_EXT 0x8D72 -#define GL_INTENSITY32UI_EXT 0x8D73 -#define GL_LUMINANCE32UI_EXT 0x8D74 -#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 -#define GL_RGBA16UI_EXT 0x8D76 -#define GL_RGB16UI_EXT 0x8D77 -#define GL_ALPHA16UI_EXT 0x8D78 -#define GL_INTENSITY16UI_EXT 0x8D79 -#define GL_LUMINANCE16UI_EXT 0x8D7A -#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B -#define GL_RGBA8UI_EXT 0x8D7C -#define GL_RGB8UI_EXT 0x8D7D -#define GL_ALPHA8UI_EXT 0x8D7E -#define GL_INTENSITY8UI_EXT 0x8D7F -#define GL_LUMINANCE8UI_EXT 0x8D80 -#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 -#define GL_RGBA32I_EXT 0x8D82 -#define GL_RGB32I_EXT 0x8D83 -#define GL_ALPHA32I_EXT 0x8D84 -#define GL_INTENSITY32I_EXT 0x8D85 -#define GL_LUMINANCE32I_EXT 0x8D86 -#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 -#define GL_RGBA16I_EXT 0x8D88 -#define GL_RGB16I_EXT 0x8D89 -#define GL_ALPHA16I_EXT 0x8D8A -#define GL_INTENSITY16I_EXT 0x8D8B -#define GL_LUMINANCE16I_EXT 0x8D8C -#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D -#define GL_RGBA8I_EXT 0x8D8E -#define GL_RGB8I_EXT 0x8D8F -#define GL_ALPHA8I_EXT 0x8D90 -#define GL_INTENSITY8I_EXT 0x8D91 -#define GL_LUMINANCE8I_EXT 0x8D92 -#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 -#define GL_RED_INTEGER_EXT 0x8D94 -#define GL_GREEN_INTEGER_EXT 0x8D95 -#define GL_BLUE_INTEGER_EXT 0x8D96 -#define GL_ALPHA_INTEGER_EXT 0x8D97 -#define GL_RGB_INTEGER_EXT 0x8D98 -#define GL_RGBA_INTEGER_EXT 0x8D99 -#define GL_BGR_INTEGER_EXT 0x8D9A -#define GL_BGRA_INTEGER_EXT 0x8D9B -#define GL_LUMINANCE_INTEGER_EXT 0x8D9C -#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D -#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E -#endif - -#ifndef GL_GREMEDY_frame_terminator -#endif - -#ifndef GL_NV_conditional_render -#define GL_QUERY_WAIT_NV 0x8E13 -#define GL_QUERY_NO_WAIT_NV 0x8E14 -#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 -#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 -#endif - -#ifndef GL_NV_present_video -#define GL_FRAME_NV 0x8E26 -#define GL_FIELDS_NV 0x8E27 -#define GL_CURRENT_TIME_NV 0x8E28 -#define GL_NUM_FILL_STREAMS_NV 0x8E29 -#define GL_PRESENT_TIME_NV 0x8E2A -#define GL_PRESENT_DURATION_NV 0x8E2B -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E -#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 -#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 -#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F -#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C -#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D -#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 -#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 -#define GL_RASTERIZER_DISCARD_EXT 0x8C89 -#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B -#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 -#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 -#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F -#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_PROGRAM_MATRIX_EXT 0x8E2D -#define GL_TRANSPOSE_PROGRAM_MATRIX_EXT 0x8E2E -#define GL_PROGRAM_MATRIX_STACK_DEPTH_EXT 0x8E2F -#endif - -#ifndef GL_EXT_vertex_array_bgra -/* reuse GL_BGRA */ -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_TEXTURE_SWIZZLE_R_EXT 0x8E42 -#define GL_TEXTURE_SWIZZLE_G_EXT 0x8E43 -#define GL_TEXTURE_SWIZZLE_B_EXT 0x8E44 -#define GL_TEXTURE_SWIZZLE_A_EXT 0x8E45 -#define GL_TEXTURE_SWIZZLE_RGBA_EXT 0x8E46 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_SAMPLE_POSITION_NV 0x8E50 -#define GL_SAMPLE_MASK_NV 0x8E51 -#define GL_SAMPLE_MASK_VALUE_NV 0x8E52 -#define GL_TEXTURE_BINDING_RENDERBUFFER_NV 0x8E53 -#define GL_TEXTURE_RENDERBUFFER_DATA_STORE_BINDING_NV 0x8E54 -#define GL_TEXTURE_RENDERBUFFER_NV 0x8E55 -#define GL_SAMPLER_RENDERBUFFER_NV 0x8E56 -#define GL_INT_SAMPLER_RENDERBUFFER_NV 0x8E57 -#define GL_UNSIGNED_INT_SAMPLER_RENDERBUFFER_NV 0x8E58 -#define GL_MAX_SAMPLE_MASK_WORDS_NV 0x8E59 -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_TRANSFORM_FEEDBACK_NV 0x8E22 -#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED_NV 0x8E23 -#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE_NV 0x8E24 -#define GL_TRANSFORM_FEEDBACK_BINDING_NV 0x8E25 -#endif - -#ifndef GL_ATI_meminfo -#define GL_VBO_FREE_MEMORY_ATI 0x87FB -#define GL_TEXTURE_FREE_MEMORY_ATI 0x87FC -#define GL_RENDERBUFFER_FREE_MEMORY_ATI 0x87FD -#endif - -#ifndef GL_AMD_performance_monitor -#define GL_COUNTER_TYPE_AMD 0x8BC0 -#define GL_COUNTER_RANGE_AMD 0x8BC1 -#define GL_UNSIGNED_INT64_AMD 0x8BC2 -#define GL_PERCENTAGE_AMD 0x8BC3 -#define GL_PERFMON_RESULT_AVAILABLE_AMD 0x8BC4 -#define GL_PERFMON_RESULT_SIZE_AMD 0x8BC5 -#define GL_PERFMON_RESULT_AMD 0x8BC6 -#endif - -#ifndef GL_AMD_texture_texture4 -#endif - -#ifndef GL_AMD_vertex_shader_tesselator -#define GL_SAMPLER_BUFFER_AMD 0x9001 -#define GL_INT_SAMPLER_BUFFER_AMD 0x9002 -#define GL_UNSIGNED_INT_SAMPLER_BUFFER_AMD 0x9003 -#define GL_TESSELLATION_MODE_AMD 0x9004 -#define GL_TESSELLATION_FACTOR_AMD 0x9005 -#define GL_DISCRETE_AMD 0x9006 -#define GL_CONTINUOUS_AMD 0x9007 -#endif - -#ifndef GL_EXT_provoking_vertex -#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C -#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D -#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E -#define GL_PROVOKING_VERTEX_EXT 0x8E4F -#endif - -#ifndef GL_EXT_texture_snorm -#define GL_ALPHA_SNORM 0x9010 -#define GL_LUMINANCE_SNORM 0x9011 -#define GL_LUMINANCE_ALPHA_SNORM 0x9012 -#define GL_INTENSITY_SNORM 0x9013 -#define GL_ALPHA8_SNORM 0x9014 -#define GL_LUMINANCE8_SNORM 0x9015 -#define GL_LUMINANCE8_ALPHA8_SNORM 0x9016 -#define GL_INTENSITY8_SNORM 0x9017 -#define GL_ALPHA16_SNORM 0x9018 -#define GL_LUMINANCE16_SNORM 0x9019 -#define GL_LUMINANCE16_ALPHA16_SNORM 0x901A -#define GL_INTENSITY16_SNORM 0x901B -/* reuse GL_RED_SNORM */ -/* reuse GL_RG_SNORM */ -/* reuse GL_RGB_SNORM */ -/* reuse GL_RGBA_SNORM */ -/* reuse GL_R8_SNORM */ -/* reuse GL_RG8_SNORM */ -/* reuse GL_RGB8_SNORM */ -/* reuse GL_RGBA8_SNORM */ -/* reuse GL_R16_SNORM */ -/* reuse GL_RG16_SNORM */ -/* reuse GL_RGB16_SNORM */ -/* reuse GL_RGBA16_SNORM */ -/* reuse GL_SIGNED_NORMALIZED */ -#endif - -#ifndef GL_AMD_draw_buffers_blend -#endif - -#ifndef GL_APPLE_texture_range -#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 -#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 -#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC -#define GL_STORAGE_PRIVATE_APPLE 0x85BD -/* reuse GL_STORAGE_CACHED_APPLE */ -/* reuse GL_STORAGE_SHARED_APPLE */ -#endif - -#ifndef GL_APPLE_float_pixels -#define GL_HALF_APPLE 0x140B -#define GL_RGBA_FLOAT32_APPLE 0x8814 -#define GL_RGB_FLOAT32_APPLE 0x8815 -#define GL_ALPHA_FLOAT32_APPLE 0x8816 -#define GL_INTENSITY_FLOAT32_APPLE 0x8817 -#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 -#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 -#define GL_RGBA_FLOAT16_APPLE 0x881A -#define GL_RGB_FLOAT16_APPLE 0x881B -#define GL_ALPHA_FLOAT16_APPLE 0x881C -#define GL_INTENSITY_FLOAT16_APPLE 0x881D -#define GL_LUMINANCE_FLOAT16_APPLE 0x881E -#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F -#define GL_COLOR_FLOAT_APPLE 0x8A0F -#endif - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 -#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 -#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 -#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 -#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 -#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 -#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 -#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 -#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 -#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 -#endif - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 -#endif - -#ifndef GL_APPLE_object_purgeable -#define GL_BUFFER_OBJECT_APPLE 0x85B3 -#define GL_RELEASED_APPLE 0x8A19 -#define GL_VOLATILE_APPLE 0x8A1A -#define GL_RETAINED_APPLE 0x8A1B -#define GL_UNDEFINED_APPLE 0x8A1C -#define GL_PURGEABLE_APPLE 0x8A1D -#endif - -#ifndef GL_APPLE_row_bytes -#define GL_PACK_ROW_BYTES_APPLE 0x8A15 -#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 -#endif - -#ifndef GL_APPLE_rgb_422 -#define GL_RGB_422_APPLE 0x8A1F -/* reuse GL_UNSIGNED_SHORT_8_8_APPLE */ -/* reuse GL_UNSIGNED_SHORT_8_8_REV_APPLE */ -#endif - -#ifndef GL_NV_video_capture -#define GL_VIDEO_BUFFER_NV 0x9020 -#define GL_VIDEO_BUFFER_BINDING_NV 0x9021 -#define GL_FIELD_UPPER_NV 0x9022 -#define GL_FIELD_LOWER_NV 0x9023 -#define GL_NUM_VIDEO_CAPTURE_STREAMS_NV 0x9024 -#define GL_NEXT_VIDEO_CAPTURE_BUFFER_STATUS_NV 0x9025 -#define GL_VIDEO_CAPTURE_TO_422_SUPPORTED_NV 0x9026 -#define GL_LAST_VIDEO_CAPTURE_STATUS_NV 0x9027 -#define GL_VIDEO_BUFFER_PITCH_NV 0x9028 -#define GL_VIDEO_COLOR_CONVERSION_MATRIX_NV 0x9029 -#define GL_VIDEO_COLOR_CONVERSION_MAX_NV 0x902A -#define GL_VIDEO_COLOR_CONVERSION_MIN_NV 0x902B -#define GL_VIDEO_COLOR_CONVERSION_OFFSET_NV 0x902C -#define GL_VIDEO_BUFFER_INTERNAL_FORMAT_NV 0x902D -#define GL_PARTIAL_SUCCESS_NV 0x902E -#define GL_SUCCESS_NV 0x902F -#define GL_FAILURE_NV 0x9030 -#define GL_YCBYCR8_422_NV 0x9031 -#define GL_YCBAYCR8A_4224_NV 0x9032 -#define GL_Z6Y10Z6CB10Z6Y10Z6CR10_422_NV 0x9033 -#define GL_Z6Y10Z6CB10Z6A10Z6Y10Z6CR10Z6A10_4224_NV 0x9034 -#define GL_Z4Y12Z4CB12Z4Y12Z4CR12_422_NV 0x9035 -#define GL_Z4Y12Z4CB12Z4A12Z4Y12Z4CR12Z4A12_4224_NV 0x9036 -#define GL_Z4Y12Z4CB12Z4CR12_444_NV 0x9037 -#define GL_VIDEO_CAPTURE_FRAME_WIDTH_NV 0x9038 -#define GL_VIDEO_CAPTURE_FRAME_HEIGHT_NV 0x9039 -#define GL_VIDEO_CAPTURE_FIELD_UPPER_HEIGHT_NV 0x903A -#define GL_VIDEO_CAPTURE_FIELD_LOWER_HEIGHT_NV 0x903B -#define GL_VIDEO_CAPTURE_SURFACE_ORIGIN_NV 0x903C -#endif - -#ifndef GL_NV_copy_image -#endif - -#ifndef GL_EXT_separate_shader_objects -#define GL_ACTIVE_PROGRAM_EXT 0x8B8D -#endif - -#ifndef GL_NV_parameter_buffer_object2 -#endif - -#ifndef GL_NV_shader_buffer_load -#define GL_BUFFER_GPU_ADDRESS_NV 0x8F1D -#define GL_GPU_ADDRESS_NV 0x8F34 -#define GL_MAX_SHADER_BUFFER_ADDRESS_NV 0x8F35 -#endif - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_VERTEX_ATTRIB_ARRAY_UNIFIED_NV 0x8F1E -#define GL_ELEMENT_ARRAY_UNIFIED_NV 0x8F1F -#define GL_VERTEX_ATTRIB_ARRAY_ADDRESS_NV 0x8F20 -#define GL_VERTEX_ARRAY_ADDRESS_NV 0x8F21 -#define GL_NORMAL_ARRAY_ADDRESS_NV 0x8F22 -#define GL_COLOR_ARRAY_ADDRESS_NV 0x8F23 -#define GL_INDEX_ARRAY_ADDRESS_NV 0x8F24 -#define GL_TEXTURE_COORD_ARRAY_ADDRESS_NV 0x8F25 -#define GL_EDGE_FLAG_ARRAY_ADDRESS_NV 0x8F26 -#define GL_SECONDARY_COLOR_ARRAY_ADDRESS_NV 0x8F27 -#define GL_FOG_COORD_ARRAY_ADDRESS_NV 0x8F28 -#define GL_ELEMENT_ARRAY_ADDRESS_NV 0x8F29 -#define GL_VERTEX_ATTRIB_ARRAY_LENGTH_NV 0x8F2A -#define GL_VERTEX_ARRAY_LENGTH_NV 0x8F2B -#define GL_NORMAL_ARRAY_LENGTH_NV 0x8F2C -#define GL_COLOR_ARRAY_LENGTH_NV 0x8F2D -#define GL_INDEX_ARRAY_LENGTH_NV 0x8F2E -#define GL_TEXTURE_COORD_ARRAY_LENGTH_NV 0x8F2F -#define GL_EDGE_FLAG_ARRAY_LENGTH_NV 0x8F30 -#define GL_SECONDARY_COLOR_ARRAY_LENGTH_NV 0x8F31 -#define GL_FOG_COORD_ARRAY_LENGTH_NV 0x8F32 -#define GL_ELEMENT_ARRAY_LENGTH_NV 0x8F33 -#define GL_DRAW_INDIRECT_UNIFIED_NV 0x8F40 -#define GL_DRAW_INDIRECT_ADDRESS_NV 0x8F41 -#define GL_DRAW_INDIRECT_LENGTH_NV 0x8F42 -#endif - -#ifndef GL_NV_texture_barrier -#endif - -#ifndef GL_AMD_shader_stencil_export -#endif - -#ifndef GL_AMD_seamless_cubemap_per_texture -/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ -#endif - -#ifndef GL_AMD_conservative_depth -#endif - -#ifndef GL_EXT_shader_image_load_store -#define GL_MAX_IMAGE_UNITS_EXT 0x8F38 -#define GL_MAX_COMBINED_IMAGE_UNITS_AND_FRAGMENT_OUTPUTS_EXT 0x8F39 -#define GL_IMAGE_BINDING_NAME_EXT 0x8F3A -#define GL_IMAGE_BINDING_LEVEL_EXT 0x8F3B -#define GL_IMAGE_BINDING_LAYERED_EXT 0x8F3C -#define GL_IMAGE_BINDING_LAYER_EXT 0x8F3D -#define GL_IMAGE_BINDING_ACCESS_EXT 0x8F3E -#define GL_IMAGE_1D_EXT 0x904C -#define GL_IMAGE_2D_EXT 0x904D -#define GL_IMAGE_3D_EXT 0x904E -#define GL_IMAGE_2D_RECT_EXT 0x904F -#define GL_IMAGE_CUBE_EXT 0x9050 -#define GL_IMAGE_BUFFER_EXT 0x9051 -#define GL_IMAGE_1D_ARRAY_EXT 0x9052 -#define GL_IMAGE_2D_ARRAY_EXT 0x9053 -#define GL_IMAGE_CUBE_MAP_ARRAY_EXT 0x9054 -#define GL_IMAGE_2D_MULTISAMPLE_EXT 0x9055 -#define GL_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9056 -#define GL_INT_IMAGE_1D_EXT 0x9057 -#define GL_INT_IMAGE_2D_EXT 0x9058 -#define GL_INT_IMAGE_3D_EXT 0x9059 -#define GL_INT_IMAGE_2D_RECT_EXT 0x905A -#define GL_INT_IMAGE_CUBE_EXT 0x905B -#define GL_INT_IMAGE_BUFFER_EXT 0x905C -#define GL_INT_IMAGE_1D_ARRAY_EXT 0x905D -#define GL_INT_IMAGE_2D_ARRAY_EXT 0x905E -#define GL_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x905F -#define GL_INT_IMAGE_2D_MULTISAMPLE_EXT 0x9060 -#define GL_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x9061 -#define GL_UNSIGNED_INT_IMAGE_1D_EXT 0x9062 -#define GL_UNSIGNED_INT_IMAGE_2D_EXT 0x9063 -#define GL_UNSIGNED_INT_IMAGE_3D_EXT 0x9064 -#define GL_UNSIGNED_INT_IMAGE_2D_RECT_EXT 0x9065 -#define GL_UNSIGNED_INT_IMAGE_CUBE_EXT 0x9066 -#define GL_UNSIGNED_INT_IMAGE_BUFFER_EXT 0x9067 -#define GL_UNSIGNED_INT_IMAGE_1D_ARRAY_EXT 0x9068 -#define GL_UNSIGNED_INT_IMAGE_2D_ARRAY_EXT 0x9069 -#define GL_UNSIGNED_INT_IMAGE_CUBE_MAP_ARRAY_EXT 0x906A -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_EXT 0x906B -#define GL_UNSIGNED_INT_IMAGE_2D_MULTISAMPLE_ARRAY_EXT 0x906C -#define GL_MAX_IMAGE_SAMPLES_EXT 0x906D -#define GL_IMAGE_BINDING_FORMAT_EXT 0x906E -#define GL_VERTEX_ATTRIB_ARRAY_BARRIER_BIT_EXT 0x00000001 -#define GL_ELEMENT_ARRAY_BARRIER_BIT_EXT 0x00000002 -#define GL_UNIFORM_BARRIER_BIT_EXT 0x00000004 -#define GL_TEXTURE_FETCH_BARRIER_BIT_EXT 0x00000008 -#define GL_SHADER_IMAGE_ACCESS_BARRIER_BIT_EXT 0x00000020 -#define GL_COMMAND_BARRIER_BIT_EXT 0x00000040 -#define GL_PIXEL_BUFFER_BARRIER_BIT_EXT 0x00000080 -#define GL_TEXTURE_UPDATE_BARRIER_BIT_EXT 0x00000100 -#define GL_BUFFER_UPDATE_BARRIER_BIT_EXT 0x00000200 -#define GL_FRAMEBUFFER_BARRIER_BIT_EXT 0x00000400 -#define GL_TRANSFORM_FEEDBACK_BARRIER_BIT_EXT 0x00000800 -#define GL_ATOMIC_COUNTER_BARRIER_BIT_EXT 0x00001000 -#define GL_ALL_BARRIER_BITS_EXT 0xFFFFFFFF -#endif - -#ifndef GL_EXT_vertex_attrib_64bit -/* reuse GL_DOUBLE */ -#define GL_DOUBLE_VEC2_EXT 0x8FFC -#define GL_DOUBLE_VEC3_EXT 0x8FFD -#define GL_DOUBLE_VEC4_EXT 0x8FFE -#define GL_DOUBLE_MAT2_EXT 0x8F46 -#define GL_DOUBLE_MAT3_EXT 0x8F47 -#define GL_DOUBLE_MAT4_EXT 0x8F48 -#define GL_DOUBLE_MAT2x3_EXT 0x8F49 -#define GL_DOUBLE_MAT2x4_EXT 0x8F4A -#define GL_DOUBLE_MAT3x2_EXT 0x8F4B -#define GL_DOUBLE_MAT3x4_EXT 0x8F4C -#define GL_DOUBLE_MAT4x2_EXT 0x8F4D -#define GL_DOUBLE_MAT4x3_EXT 0x8F4E -#endif - -#ifndef GL_NV_gpu_program5 -#define GL_MAX_GEOMETRY_PROGRAM_INVOCATIONS_NV 0x8E5A -#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5B -#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET_NV 0x8E5C -#define GL_FRAGMENT_PROGRAM_INTERPOLATION_OFFSET_BITS_NV 0x8E5D -#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5E -#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_NV 0x8E5F -#define GL_MAX_PROGRAM_SUBROUTINE_PARAMETERS_NV 0x8F44 -#define GL_MAX_PROGRAM_SUBROUTINE_NUM_NV 0x8F45 -#endif - -#ifndef GL_NV_gpu_shader5 -#define GL_INT64_NV 0x140E -#define GL_UNSIGNED_INT64_NV 0x140F -#define GL_INT8_NV 0x8FE0 -#define GL_INT8_VEC2_NV 0x8FE1 -#define GL_INT8_VEC3_NV 0x8FE2 -#define GL_INT8_VEC4_NV 0x8FE3 -#define GL_INT16_NV 0x8FE4 -#define GL_INT16_VEC2_NV 0x8FE5 -#define GL_INT16_VEC3_NV 0x8FE6 -#define GL_INT16_VEC4_NV 0x8FE7 -#define GL_INT64_VEC2_NV 0x8FE9 -#define GL_INT64_VEC3_NV 0x8FEA -#define GL_INT64_VEC4_NV 0x8FEB -#define GL_UNSIGNED_INT8_NV 0x8FEC -#define GL_UNSIGNED_INT8_VEC2_NV 0x8FED -#define GL_UNSIGNED_INT8_VEC3_NV 0x8FEE -#define GL_UNSIGNED_INT8_VEC4_NV 0x8FEF -#define GL_UNSIGNED_INT16_NV 0x8FF0 -#define GL_UNSIGNED_INT16_VEC2_NV 0x8FF1 -#define GL_UNSIGNED_INT16_VEC3_NV 0x8FF2 -#define GL_UNSIGNED_INT16_VEC4_NV 0x8FF3 -#define GL_UNSIGNED_INT64_VEC2_NV 0x8FF5 -#define GL_UNSIGNED_INT64_VEC3_NV 0x8FF6 -#define GL_UNSIGNED_INT64_VEC4_NV 0x8FF7 -#define GL_FLOAT16_NV 0x8FF8 -#define GL_FLOAT16_VEC2_NV 0x8FF9 -#define GL_FLOAT16_VEC3_NV 0x8FFA -#define GL_FLOAT16_VEC4_NV 0x8FFB -/* reuse GL_PATCHES */ -#endif - -#ifndef GL_NV_shader_buffer_store -#define GL_SHADER_GLOBAL_ACCESS_BARRIER_BIT_NV 0x00000010 -/* reuse GL_READ_WRITE */ -/* reuse GL_WRITE_ONLY */ -#endif - -#ifndef GL_NV_tessellation_program5 -#define GL_MAX_PROGRAM_PATCH_ATTRIBS_NV 0x86D8 -#define GL_TESS_CONTROL_PROGRAM_NV 0x891E -#define GL_TESS_EVALUATION_PROGRAM_NV 0x891F -#define GL_TESS_CONTROL_PROGRAM_PARAMETER_BUFFER_NV 0x8C74 -#define GL_TESS_EVALUATION_PROGRAM_PARAMETER_BUFFER_NV 0x8C75 -#endif - -#ifndef GL_NV_vertex_attrib_integer_64bit -/* reuse GL_INT64_NV */ -/* reuse GL_UNSIGNED_INT64_NV */ -#endif - -#ifndef GL_NV_multisample_coverage -#define GL_COVERAGE_SAMPLES_NV 0x80A9 -#define GL_COLOR_SAMPLES_NV 0x8E20 -#endif - -#ifndef GL_AMD_name_gen_delete -#define GL_DATA_BUFFER_AMD 0x9151 -#define GL_PERFORMANCE_MONITOR_AMD 0x9152 -#define GL_QUERY_OBJECT_AMD 0x9153 -#define GL_VERTEX_ARRAY_OBJECT_AMD 0x9154 -#define GL_SAMPLER_OBJECT_AMD 0x9155 -#endif - -#ifndef GL_AMD_debug_output -#define GL_MAX_DEBUG_LOGGED_MESSAGES_AMD 0x9144 -#define GL_DEBUG_LOGGED_MESSAGES_AMD 0x9145 -#define GL_DEBUG_SEVERITY_HIGH_AMD 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM_AMD 0x9147 -#define GL_DEBUG_SEVERITY_LOW_AMD 0x9148 -#define GL_DEBUG_CATEGORY_API_ERROR_AMD 0x9149 -#define GL_DEBUG_CATEGORY_WINDOW_SYSTEM_AMD 0x914A -#define GL_DEBUG_CATEGORY_DEPRECATION_AMD 0x914B -#define GL_DEBUG_CATEGORY_UNDEFINED_BEHAVIOR_AMD 0x914C -#define GL_DEBUG_CATEGORY_PERFORMANCE_AMD 0x914D -#define GL_DEBUG_CATEGORY_SHADER_COMPILER_AMD 0x914E -#define GL_DEBUG_CATEGORY_APPLICATION_AMD 0x914F -#define GL_DEBUG_CATEGORY_OTHER_AMD 0x9150 -#endif - -#ifndef GL_NV_vdpau_interop -#define GL_SURFACE_STATE_NV 0x86EB -#define GL_SURFACE_REGISTERED_NV 0x86FD -#define GL_SURFACE_MAPPED_NV 0x8700 -#define GL_WRITE_DISCARD_NV 0x88BE -#endif - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#endif - -#ifndef GL_AMD_depth_clamp_separate -#define GL_DEPTH_CLAMP_NEAR_AMD 0x901E -#define GL_DEPTH_CLAMP_FAR_AMD 0x901F -#endif - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 -#define GL_DECODE_EXT 0x8A49 -#define GL_SKIP_DECODE_EXT 0x8A4A -#endif - -#ifndef GL_NV_texture_multisample -#define GL_TEXTURE_COVERAGE_SAMPLES_NV 0x9045 -#define GL_TEXTURE_COLOR_SAMPLES_NV 0x9046 -#endif - -#ifndef GL_AMD_blend_minmax_factor -#define GL_FACTOR_MIN_AMD 0x901C -#define GL_FACTOR_MAX_AMD 0x901D -#endif - -#ifndef GL_AMD_sample_positions -#define GL_SUBSAMPLE_DISTANCE_AMD 0x883F -#endif - -#ifndef GL_EXT_x11_sync_object -#define GL_SYNC_X11_FENCE_EXT 0x90E1 -#endif - -#ifndef GL_AMD_multi_draw_indirect -#endif - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA -#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB -#endif - -#ifndef GL_AMD_pinned_memory -#define GL_EXTERNAL_VIRTUAL_MEMORY_BUFFER_AMD 0x9160 -#endif - - -/*************************************************************/ - -#include -#ifndef GL_VERSION_2_0 -/* GL type for program/shader text */ -typedef char GLchar; -#endif - -#ifndef GL_VERSION_1_5 -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptr; -typedef ptrdiff_t GLsizeiptr; -#endif - -#ifndef GL_ARB_vertex_buffer_object -/* GL types for handling large vertex buffer objects */ -typedef ptrdiff_t GLintptrARB; -typedef ptrdiff_t GLsizeiptrARB; -#endif - -#ifndef GL_ARB_shader_objects -/* GL types for program/shader text and shader object handles */ -typedef char GLcharARB; -typedef unsigned int GLhandleARB; -#endif - -/* GL type for "half" precision (s10e5) float data in host memory */ -#ifndef GL_ARB_half_float_pixel -typedef unsigned short GLhalfARB; -#endif - -#ifndef GL_NV_half_float -typedef unsigned short GLhalfNV; -#endif - -#ifndef GLEXT_64_TYPES_DEFINED -/* This code block is duplicated in glxext.h, so must be protected */ -#define GLEXT_64_TYPES_DEFINED -/* Define int32_t, int64_t, and uint64_t types for UST/MSC */ -/* (as used in the GL_EXT_timer_query extension). */ -#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L -#include -#elif defined(__sun__) || defined(__digital__) -#include -#if defined(__STDC__) -#if defined(__arch64__) || defined(_LP64) -typedef long int int64_t; -typedef unsigned long int uint64_t; -#else -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#endif /* __arch64__ */ -#endif /* __STDC__ */ -#elif defined( __VMS ) || defined(__sgi) -#include -#elif defined(__SCO__) || defined(__USLC__) -#include -#elif defined(__UNIXOS2__) || defined(__SOL64__) -typedef long int int32_t; -typedef long long int int64_t; -typedef unsigned long long int uint64_t; -#elif defined(_WIN32) && defined(__GNUC__) -#include -#elif defined(_WIN32) -typedef __int32 int32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -#else -/* Fallback if nothing above works */ -#include -#endif -#endif - -#ifndef GL_EXT_timer_query -typedef int64_t GLint64EXT; -typedef uint64_t GLuint64EXT; -#endif - -#ifndef GL_ARB_sync -typedef int64_t GLint64; -typedef uint64_t GLuint64; -typedef struct __GLsync *GLsync; -#endif - -#ifndef GL_ARB_cl_event -/* These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event */ -struct _cl_context; -struct _cl_event; -#endif - -#ifndef GL_ARB_debug_output -typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); -#endif - -#ifndef GL_AMD_debug_output -typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam); -#endif - -#ifndef GL_NV_vdpau_interop -typedef GLintptr GLvdpauSurfaceNV; -#endif - -#ifndef GL_VERSION_1_2 -#define GL_VERSION_1_2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -GLAPI void APIENTRY glBlendEquation (GLenum mode); -GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_VERSION_1_2_DEPRECATED -#define GL_VERSION_1_2_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table); -GLAPI void APIENTRY glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -GLAPI void APIENTRY glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteri (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image); -GLAPI void APIENTRY glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -GLAPI void APIENTRY glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmax (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogram (GLenum target); -GLAPI void APIENTRY glResetMinmax (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLEPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTERPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXPROC) (GLenum target); -#endif - -#ifndef GL_VERSION_1_3 -#define GL_VERSION_1_3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTexture (GLenum texture); -GLAPI void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_VERSION_1_3_DEPRECATED -#define GL_VERSION_1_3_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClientActiveTexture (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1d (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1f (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1i (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1s (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2i (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dv (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fv (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4iv (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4sv (GLenum target, const GLshort *v); -GLAPI void APIENTRY glLoadTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixd (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixf (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixd (const GLdouble *m); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDPROC) (const GLdouble *m); -#endif - -#ifndef GL_VERSION_1_4 -#define GL_VERSION_1_4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_VERSION_1_4_DEPRECATED -#define GL_VERSION_1_4_DEPRECATED 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordf (GLfloat coord); -GLAPI void APIENTRY glFogCoordfv (const GLfloat *coord); -GLAPI void APIENTRY glFogCoordd (GLdouble coord); -GLAPI void APIENTRY glFogCoorddv (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bv (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dv (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fv (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3i (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3iv (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3sv (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubv (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uiv (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usv (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glWindowPos2d (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2f (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2i (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2iv (const GLint *v); -GLAPI void APIENTRY glWindowPos2s (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2sv (const GLshort *v); -GLAPI void APIENTRY glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dv (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fv (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3i (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3iv (const GLint *v); -GLAPI void APIENTRY glWindowPos3s (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3sv (const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGCOORDFPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLWINDOWPOS2DPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVPROC) (const GLshort *v); -#endif - -#ifndef GL_VERSION_1_5 -#define GL_VERSION_1_5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQuery (GLuint id); -GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQuery (GLenum target); -GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); -GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); -GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -GLAPI GLvoid* APIENTRY glMapBuffer (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); -GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_VERSION_2_0 -#define GL_VERSION_2_0 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); -GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); -GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); -GLAPI void APIENTRY glCompileShader (GLuint shader); -GLAPI GLuint APIENTRY glCreateProgram (void); -GLAPI GLuint APIENTRY glCreateShader (GLenum type); -GLAPI void APIENTRY glDeleteProgram (GLuint program); -GLAPI void APIENTRY glDeleteShader (GLuint shader); -GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); -GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); -GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid* *pointer); -GLAPI GLboolean APIENTRY glIsProgram (GLuint program); -GLAPI GLboolean APIENTRY glIsShader (GLuint shader); -GLAPI void APIENTRY glLinkProgram (GLuint program); -GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); -GLAPI void APIENTRY glUseProgram (GLuint program); -GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glValidateProgram (GLuint program); -GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); -typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); -typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); -typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *obj); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); -typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); -typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* *string, const GLint *length); -typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_VERSION_2_1 -#define GL_VERSION_2_1 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -#endif - -#ifndef GL_VERSION_3_0 -#define GL_VERSION_3_0 1 -/* OpenGL 3.0 also reuses entry points from these extensions: */ -/* ARB_framebuffer_object */ -/* ARB_map_buffer_range */ -/* ARB_vertex_array_object */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); -GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); -GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedback (void); -GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); -GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRender (void); -GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); -GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); -GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); -GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); -GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); -GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -GLAPI const GLubyte * APIENTRY glGetStringi (GLenum name, GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); -typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); -typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); -#endif - -#ifndef GL_VERSION_3_1 -#define GL_VERSION_3_1 1 -/* OpenGL 3.1 also reuses entry points from these extensions: */ -/* ARB_copy_buffer */ -/* ARB_uniform_buffer_object */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); -#endif - -#ifndef GL_VERSION_3_2 -#define GL_VERSION_3_2 1 -/* OpenGL 3.2 also reuses entry points from these extensions: */ -/* ARB_draw_elements_base_vertex */ -/* ARB_provoking_vertex */ -/* ARB_sync */ -/* ARB_texture_multisample */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); -GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -#endif - -#ifndef GL_VERSION_3_3 -#define GL_VERSION_3_3 1 -/* OpenGL 3.3 also reuses entry points from these extensions: */ -/* ARB_blend_func_extended */ -/* ARB_sampler_objects */ -/* ARB_explicit_attrib_location, but it has none */ -/* ARB_occlusion_query2 (no entry points) */ -/* ARB_shader_bit_encoding (no entry points) */ -/* ARB_texture_rgb10_a2ui (no entry points) */ -/* ARB_texture_swizzle (no entry points) */ -/* ARB_timer_query */ -/* ARB_vertex_type_2_10_10_10_rev */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); -#endif - -#ifndef GL_VERSION_4_0 -#define GL_VERSION_4_0 1 -/* OpenGL 4.0 also reuses entry points from these extensions: */ -/* ARB_texture_query_lod (no entry points) */ -/* ARB_draw_indirect */ -/* ARB_gpu_shader5 (no entry points) */ -/* ARB_gpu_shader_fp64 */ -/* ARB_shader_subroutine */ -/* ARB_tessellation_shader */ -/* ARB_texture_buffer_object_rgb32 (no entry points) */ -/* ARB_texture_cube_map_array (no entry points) */ -/* ARB_texture_gather (no entry points) */ -/* ARB_transform_feedback2 */ -/* ARB_transform_feedback3 */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShading (GLclampf value); -GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLclampf value); -typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif - -#ifndef GL_VERSION_4_1 -#define GL_VERSION_4_1 1 -/* OpenGL 4.1 reuses entry points from these extensions: */ -/* ARB_ES2_compatibility */ -/* ARB_get_program_binary */ -/* ARB_separate_shader_objects */ -/* ARB_shader_precision (no entry points) */ -/* ARB_vertex_attrib_64bit */ -/* ARB_viewport_array */ -#endif - -#ifndef GL_VERSION_4_2 -#define GL_VERSION_4_2 1 -/* OpenGL 4.2 reuses entry points from these extensions: */ -/* ARB_base_instance */ -/* ARB_shading_language_420pack (no entry points) */ -/* ARB_transform_feedback_instanced */ -/* ARB_compressed_texture_pixel_storage (no entry points) */ -/* ARB_conservative_depth (no entry points) */ -/* ARB_internalformat_query */ -/* ARB_map_buffer_alignment (no entry points) */ -/* ARB_shader_atomic_counters */ -/* ARB_shader_image_load_store */ -/* ARB_shading_language_packing (no entry points) */ -/* ARB_texture_storage */ -#endif - -#ifndef GL_ARB_multitexture -#define GL_ARB_multitexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glClientActiveTextureARB (GLenum texture); -GLAPI void APIENTRY glMultiTexCoord1dARB (GLenum target, GLdouble s); -GLAPI void APIENTRY glMultiTexCoord1dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord1fARB (GLenum target, GLfloat s); -GLAPI void APIENTRY glMultiTexCoord1fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord1iARB (GLenum target, GLint s); -GLAPI void APIENTRY glMultiTexCoord1ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord1sARB (GLenum target, GLshort s); -GLAPI void APIENTRY glMultiTexCoord1svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord2dARB (GLenum target, GLdouble s, GLdouble t); -GLAPI void APIENTRY glMultiTexCoord2dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord2fARB (GLenum target, GLfloat s, GLfloat t); -GLAPI void APIENTRY glMultiTexCoord2fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord2iARB (GLenum target, GLint s, GLint t); -GLAPI void APIENTRY glMultiTexCoord2ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord2sARB (GLenum target, GLshort s, GLshort t); -GLAPI void APIENTRY glMultiTexCoord2svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord3dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r); -GLAPI void APIENTRY glMultiTexCoord3dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord3fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r); -GLAPI void APIENTRY glMultiTexCoord3fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord3iARB (GLenum target, GLint s, GLint t, GLint r); -GLAPI void APIENTRY glMultiTexCoord3ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord3sARB (GLenum target, GLshort s, GLshort t, GLshort r); -GLAPI void APIENTRY glMultiTexCoord3svARB (GLenum target, const GLshort *v); -GLAPI void APIENTRY glMultiTexCoord4dARB (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -GLAPI void APIENTRY glMultiTexCoord4dvARB (GLenum target, const GLdouble *v); -GLAPI void APIENTRY glMultiTexCoord4fARB (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -GLAPI void APIENTRY glMultiTexCoord4fvARB (GLenum target, const GLfloat *v); -GLAPI void APIENTRY glMultiTexCoord4iARB (GLenum target, GLint s, GLint t, GLint r, GLint q); -GLAPI void APIENTRY glMultiTexCoord4ivARB (GLenum target, const GLint *v); -GLAPI void APIENTRY glMultiTexCoord4sARB (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -GLAPI void APIENTRY glMultiTexCoord4svARB (GLenum target, const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLCLIENTACTIVETEXTUREARBPROC) (GLenum texture); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DARBPROC) (GLenum target, GLdouble s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FARBPROC) (GLenum target, GLfloat s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IARBPROC) (GLenum target, GLint s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SARBPROC) (GLenum target, GLshort s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DARBPROC) (GLenum target, GLdouble s, GLdouble t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FARBPROC) (GLenum target, GLfloat s, GLfloat t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IARBPROC) (GLenum target, GLint s, GLint t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SARBPROC) (GLenum target, GLshort s, GLshort t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IARBPROC) (GLenum target, GLint s, GLint t, GLint r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3SVARBPROC) (GLenum target, const GLshort *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DARBPROC) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4DVARBPROC) (GLenum target, const GLdouble *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FARBPROC) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4FVARBPROC) (GLenum target, const GLfloat *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IARBPROC) (GLenum target, GLint s, GLint t, GLint r, GLint q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4IVARBPROC) (GLenum target, const GLint *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SARBPROC) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4SVARBPROC) (GLenum target, const GLshort *v); -#endif - -#ifndef GL_ARB_transpose_matrix -#define GL_ARB_transpose_matrix 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLoadTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glLoadTransposeMatrixdARB (const GLdouble *m); -GLAPI void APIENTRY glMultTransposeMatrixfARB (const GLfloat *m); -GLAPI void APIENTRY glMultTransposeMatrixdARB (const GLdouble *m); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLLOADTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXFARBPROC) (const GLfloat *m); -typedef void (APIENTRYP PFNGLMULTTRANSPOSEMATRIXDARBPROC) (const GLdouble *m); -#endif - -#ifndef GL_ARB_multisample -#define GL_ARB_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleCoverageARB (GLclampf value, GLboolean invert); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLECOVERAGEARBPROC) (GLclampf value, GLboolean invert); -#endif - -#ifndef GL_ARB_texture_env_add -#define GL_ARB_texture_env_add 1 -#endif - -#ifndef GL_ARB_texture_cube_map -#define GL_ARB_texture_cube_map 1 -#endif - -#ifndef GL_ARB_texture_compression -#define GL_ARB_texture_compression 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCompressedTexImage3DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage2DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexImage1DARB (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage3DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage2DARB (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glCompressedTexSubImage1DARB (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -GLAPI void APIENTRY glGetCompressedTexImageARB (GLenum target, GLint level, GLvoid *img); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DARBPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DARBPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DARBPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint level, GLvoid *img); -#endif - -#ifndef GL_ARB_texture_border_clamp -#define GL_ARB_texture_border_clamp 1 -#endif - -#ifndef GL_ARB_point_parameters -#define GL_ARB_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfARB (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvARB (GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFARBPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVARBPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_ARB_vertex_blend -#define GL_ARB_vertex_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWeightbvARB (GLint size, const GLbyte *weights); -GLAPI void APIENTRY glWeightsvARB (GLint size, const GLshort *weights); -GLAPI void APIENTRY glWeightivARB (GLint size, const GLint *weights); -GLAPI void APIENTRY glWeightfvARB (GLint size, const GLfloat *weights); -GLAPI void APIENTRY glWeightdvARB (GLint size, const GLdouble *weights); -GLAPI void APIENTRY glWeightubvARB (GLint size, const GLubyte *weights); -GLAPI void APIENTRY glWeightusvARB (GLint size, const GLushort *weights); -GLAPI void APIENTRY glWeightuivARB (GLint size, const GLuint *weights); -GLAPI void APIENTRY glWeightPointerARB (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glVertexBlendARB (GLint count); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWEIGHTBVARBPROC) (GLint size, const GLbyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTSVARBPROC) (GLint size, const GLshort *weights); -typedef void (APIENTRYP PFNGLWEIGHTIVARBPROC) (GLint size, const GLint *weights); -typedef void (APIENTRYP PFNGLWEIGHTFVARBPROC) (GLint size, const GLfloat *weights); -typedef void (APIENTRYP PFNGLWEIGHTDVARBPROC) (GLint size, const GLdouble *weights); -typedef void (APIENTRYP PFNGLWEIGHTUBVARBPROC) (GLint size, const GLubyte *weights); -typedef void (APIENTRYP PFNGLWEIGHTUSVARBPROC) (GLint size, const GLushort *weights); -typedef void (APIENTRYP PFNGLWEIGHTUIVARBPROC) (GLint size, const GLuint *weights); -typedef void (APIENTRYP PFNGLWEIGHTPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXBLENDARBPROC) (GLint count); -#endif - -#ifndef GL_ARB_matrix_palette -#define GL_ARB_matrix_palette 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCurrentPaletteMatrixARB (GLint index); -GLAPI void APIENTRY glMatrixIndexubvARB (GLint size, const GLubyte *indices); -GLAPI void APIENTRY glMatrixIndexusvARB (GLint size, const GLushort *indices); -GLAPI void APIENTRY glMatrixIndexuivARB (GLint size, const GLuint *indices); -GLAPI void APIENTRY glMatrixIndexPointerARB (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCURRENTPALETTEMATRIXARBPROC) (GLint index); -typedef void (APIENTRYP PFNGLMATRIXINDEXUBVARBPROC) (GLint size, const GLubyte *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUSVARBPROC) (GLint size, const GLushort *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXUIVARBPROC) (GLint size, const GLuint *indices); -typedef void (APIENTRYP PFNGLMATRIXINDEXPOINTERARBPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_ARB_texture_env_combine -#define GL_ARB_texture_env_combine 1 -#endif - -#ifndef GL_ARB_texture_env_crossbar -#define GL_ARB_texture_env_crossbar 1 -#endif - -#ifndef GL_ARB_texture_env_dot3 -#define GL_ARB_texture_env_dot3 1 -#endif - -#ifndef GL_ARB_texture_mirrored_repeat -#define GL_ARB_texture_mirrored_repeat 1 -#endif - -#ifndef GL_ARB_depth_texture -#define GL_ARB_depth_texture 1 -#endif - -#ifndef GL_ARB_shadow -#define GL_ARB_shadow 1 -#endif - -#ifndef GL_ARB_shadow_ambient -#define GL_ARB_shadow_ambient 1 -#endif - -#ifndef GL_ARB_window_pos -#define GL_ARB_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dARB (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fARB (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iARB (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos2sARB (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svARB (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dARB (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvARB (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fARB (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvARB (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iARB (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivARB (const GLint *v); -GLAPI void APIENTRY glWindowPos3sARB (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svARB (const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DARBPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FARBPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IARBPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SARBPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVARBPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DARBPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVARBPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FARBPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVARBPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IARBPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVARBPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SARBPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVARBPROC) (const GLshort *v); -#endif - -#ifndef GL_ARB_vertex_program -#define GL_ARB_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttrib1dARB (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fARB (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sARB (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dARB (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fARB (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sARB (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sARB (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NbvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4NivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4NsvARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4NubARB (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4NubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4NuivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4NusvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttrib4bvARB (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttrib4dARB (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvARB (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fARB (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvARB (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4ivARB (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttrib4sARB (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svARB (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubvARB (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttrib4uivARB (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttrib4usvARB (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribPointerARB (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glEnableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glDisableVertexAttribArrayARB (GLuint index); -GLAPI void APIENTRY glProgramStringARB (GLenum target, GLenum format, GLsizei len, const GLvoid *string); -GLAPI void APIENTRY glBindProgramARB (GLenum target, GLuint program); -GLAPI void APIENTRY glDeleteProgramsARB (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glGenProgramsARB (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glProgramEnvParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramEnvParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramEnvParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramEnvParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameter4dARB (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramLocalParameter4dvARB (GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glProgramLocalParameter4fARB (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramLocalParameter4fvARB (GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetProgramEnvParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramEnvParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramLocalParameterdvARB (GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetProgramLocalParameterfvARB (GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetProgramivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringARB (GLenum target, GLenum pname, GLvoid *string); -GLAPI void APIENTRY glGetVertexAttribdvARB (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvARB (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivARB (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervARB (GLuint index, GLenum pname, GLvoid* *pointer); -GLAPI GLboolean APIENTRY glIsProgramARB (GLuint program); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DARBPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FARBPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SARBPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DARBPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FARBPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SARBPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBARBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVARBPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DARBPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVARBPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FARBPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVARBPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVARBPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SARBPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVARBPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVARBPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVARBPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVARBPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERARBPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYARBPROC) (GLuint index); -typedef void (APIENTRYP PFNGLPROGRAMSTRINGARBPROC) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLBINDPROGRAMARBPROC) (GLenum target, GLuint program); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSARBPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLGENPROGRAMSARBPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DARBPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4DVARBPROC) (GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FARBPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETER4FVARBPROC) (GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERDVARBPROC) (GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERFVARBPROC) (GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGARBPROC) (GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVARBPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVARBPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVARBPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVARBPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMARBPROC) (GLuint program); -#endif - -#ifndef GL_ARB_fragment_program -#define GL_ARB_fragment_program 1 -/* All ARB_fragment_program entry points are shared with ARB_vertex_program. */ -#endif - -#ifndef GL_ARB_vertex_buffer_object -#define GL_ARB_vertex_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindBufferARB (GLenum target, GLuint buffer); -GLAPI void APIENTRY glDeleteBuffersARB (GLsizei n, const GLuint *buffers); -GLAPI void APIENTRY glGenBuffersARB (GLsizei n, GLuint *buffers); -GLAPI GLboolean APIENTRY glIsBufferARB (GLuint buffer); -GLAPI void APIENTRY glBufferDataARB (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -GLAPI void APIENTRY glGetBufferSubDataARB (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -GLAPI GLvoid* APIENTRY glMapBufferARB (GLenum target, GLenum access); -GLAPI GLboolean APIENTRY glUnmapBufferARB (GLenum target); -GLAPI void APIENTRY glGetBufferParameterivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetBufferPointervARB (GLenum target, GLenum pname, GLvoid* *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDBUFFERARBPROC) (GLenum target, GLuint buffer); -typedef void (APIENTRYP PFNGLDELETEBUFFERSARBPROC) (GLsizei n, const GLuint *buffers); -typedef void (APIENTRYP PFNGLGENBUFFERSARBPROC) (GLsizei n, GLuint *buffers); -typedef GLboolean (APIENTRYP PFNGLISBUFFERARBPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLBUFFERDATAARBPROC) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); -typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAARBPROC) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERARBPROC) (GLenum target, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVARBPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_ARB_occlusion_query -#define GL_ARB_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenQueriesARB (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteQueriesARB (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsQueryARB (GLuint id); -GLAPI void APIENTRY glBeginQueryARB (GLenum target, GLuint id); -GLAPI void APIENTRY glEndQueryARB (GLenum target); -GLAPI void APIENTRY glGetQueryivARB (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectivARB (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetQueryObjectuivARB (GLuint id, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENQUERIESARBPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEQUERIESARBPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISQUERYARBPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINQUERYARBPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYARBPROC) (GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYIVARBPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVARBPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVARBPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_objects -#define GL_ARB_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteObjectARB (GLhandleARB obj); -GLAPI GLhandleARB APIENTRY glGetHandleARB (GLenum pname); -GLAPI void APIENTRY glDetachObjectARB (GLhandleARB containerObj, GLhandleARB attachedObj); -GLAPI GLhandleARB APIENTRY glCreateShaderObjectARB (GLenum shaderType); -GLAPI void APIENTRY glShaderSourceARB (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); -GLAPI void APIENTRY glCompileShaderARB (GLhandleARB shaderObj); -GLAPI GLhandleARB APIENTRY glCreateProgramObjectARB (void); -GLAPI void APIENTRY glAttachObjectARB (GLhandleARB containerObj, GLhandleARB obj); -GLAPI void APIENTRY glLinkProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUseProgramObjectARB (GLhandleARB programObj); -GLAPI void APIENTRY glValidateProgramARB (GLhandleARB programObj); -GLAPI void APIENTRY glUniform1fARB (GLint location, GLfloat v0); -GLAPI void APIENTRY glUniform2fARB (GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glUniform3fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glUniform4fARB (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glUniform1iARB (GLint location, GLint v0); -GLAPI void APIENTRY glUniform2iARB (GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glUniform3iARB (GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glUniform4iARB (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glUniform1fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform2fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform3fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform4fvARB (GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glUniform1ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform2ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform3ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniform4ivARB (GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glUniformMatrix2fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix3fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glUniformMatrix4fvARB (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glGetObjectParameterfvARB (GLhandleARB obj, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectParameterivARB (GLhandleARB obj, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetInfoLogARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -GLAPI void APIENTRY glGetAttachedObjectsARB (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -GLAPI GLint APIENTRY glGetUniformLocationARB (GLhandleARB programObj, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveUniformARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI void APIENTRY glGetUniformfvARB (GLhandleARB programObj, GLint location, GLfloat *params); -GLAPI void APIENTRY glGetUniformivARB (GLhandleARB programObj, GLint location, GLint *params); -GLAPI void APIENTRY glGetShaderSourceARB (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEOBJECTARBPROC) (GLhandleARB obj); -typedef GLhandleARB (APIENTRYP PFNGLGETHANDLEARBPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLDETACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB attachedObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATESHADEROBJECTARBPROC) (GLenum shaderType); -typedef void (APIENTRYP PFNGLSHADERSOURCEARBPROC) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* *string, const GLint *length); -typedef void (APIENTRYP PFNGLCOMPILESHADERARBPROC) (GLhandleARB shaderObj); -typedef GLhandleARB (APIENTRYP PFNGLCREATEPROGRAMOBJECTARBPROC) (void); -typedef void (APIENTRYP PFNGLATTACHOBJECTARBPROC) (GLhandleARB containerObj, GLhandleARB obj); -typedef void (APIENTRYP PFNGLLINKPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUSEPROGRAMOBJECTARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMARBPROC) (GLhandleARB programObj); -typedef void (APIENTRYP PFNGLUNIFORM1FARBPROC) (GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLUNIFORM2FARBPROC) (GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLUNIFORM3FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLUNIFORM4FARBPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLUNIFORM1IARBPROC) (GLint location, GLint v0); -typedef void (APIENTRYP PFNGLUNIFORM2IARBPROC) (GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLUNIFORM3IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLUNIFORM4IARBPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLUNIFORM1FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM2FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM3FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM4FVARBPROC) (GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORM1IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM2IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM3IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORM4IVARBPROC) (GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVARBPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERFVARBPROC) (GLhandleARB obj, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVARBPROC) (GLhandleARB obj, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETINFOLOGARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); -typedef void (APIENTRYP PFNGLGETATTACHEDOBJECTSARBPROC) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); -typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef void (APIENTRYP PFNGLGETUNIFORMFVARBPROC) (GLhandleARB programObj, GLint location, GLfloat *params); -typedef void (APIENTRYP PFNGLGETUNIFORMIVARBPROC) (GLhandleARB programObj, GLint location, GLint *params); -typedef void (APIENTRYP PFNGLGETSHADERSOURCEARBPROC) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); -#endif - -#ifndef GL_ARB_vertex_shader -#define GL_ARB_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindAttribLocationARB (GLhandleARB programObj, GLuint index, const GLcharARB *name); -GLAPI void APIENTRY glGetActiveAttribARB (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -GLAPI GLint APIENTRY glGetAttribLocationARB (GLhandleARB programObj, const GLcharARB *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONARBPROC) (GLhandleARB programObj, GLuint index, const GLcharARB *name); -typedef void (APIENTRYP PFNGLGETACTIVEATTRIBARBPROC) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); -typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONARBPROC) (GLhandleARB programObj, const GLcharARB *name); -#endif - -#ifndef GL_ARB_fragment_shader -#define GL_ARB_fragment_shader 1 -#endif - -#ifndef GL_ARB_shading_language_100 -#define GL_ARB_shading_language_100 1 -#endif - -#ifndef GL_ARB_texture_non_power_of_two -#define GL_ARB_texture_non_power_of_two 1 -#endif - -#ifndef GL_ARB_point_sprite -#define GL_ARB_point_sprite 1 -#endif - -#ifndef GL_ARB_fragment_program_shadow -#define GL_ARB_fragment_program_shadow 1 -#endif - -#ifndef GL_ARB_draw_buffers -#define GL_ARB_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersARB (GLsizei n, const GLenum *bufs); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSARBPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ARB_texture_rectangle -#define GL_ARB_texture_rectangle 1 -#endif - -#ifndef GL_ARB_color_buffer_float -#define GL_ARB_color_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClampColorARB (GLenum target, GLenum clamp); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLAMPCOLORARBPROC) (GLenum target, GLenum clamp); -#endif - -#ifndef GL_ARB_half_float_pixel -#define GL_ARB_half_float_pixel 1 -#endif - -#ifndef GL_ARB_texture_float -#define GL_ARB_texture_float 1 -#endif - -#ifndef GL_ARB_pixel_buffer_object -#define GL_ARB_pixel_buffer_object 1 -#endif - -#ifndef GL_ARB_depth_buffer_float -#define GL_ARB_depth_buffer_float 1 -#endif - -#ifndef GL_ARB_draw_instanced -#define GL_ARB_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedARB (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedARB (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDARBPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDARBPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_ARB_framebuffer_object -#define GL_ARB_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmap (GLenum target); -GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -#endif - -#ifndef GL_ARB_framebuffer_sRGB -#define GL_ARB_framebuffer_sRGB 1 -#endif - -#ifndef GL_ARB_geometry_shader4 -#define GL_ARB_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriARB (GLuint program, GLenum pname, GLint value); -GLAPI void APIENTRY glFramebufferTextureARB (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceARB (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIARBPROC) (GLuint program, GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEARBPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_ARB_half_float_vertex -#define GL_ARB_half_float_vertex 1 -#endif - -#ifndef GL_ARB_instanced_arrays -#define GL_ARB_instanced_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); -#endif - -#ifndef GL_ARB_map_buffer_range -#define GL_ARB_map_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); -#endif - -#ifndef GL_ARB_texture_buffer_object -#define GL_ARB_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferARB (GLenum target, GLenum internalformat, GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUFFERARBPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_ARB_texture_compression_rgtc -#define GL_ARB_texture_compression_rgtc 1 -#endif - -#ifndef GL_ARB_texture_rg -#define GL_ARB_texture_rg 1 -#endif - -#ifndef GL_ARB_vertex_array_object -#define GL_ARB_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArray (GLuint array); -GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); -#endif - -#ifndef GL_ARB_uniform_buffer_object -#define GL_ARB_uniform_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices); -GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); -GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* *uniformNames, GLuint *uniformIndices); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); -typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); -typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); -#endif - -#ifndef GL_ARB_compatibility -#define GL_ARB_compatibility 1 -#endif - -#ifndef GL_ARB_copy_buffer -#define GL_ARB_copy_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -#endif - -#ifndef GL_ARB_shader_texture_lod -#define GL_ARB_shader_texture_lod 1 -#endif - -#ifndef GL_ARB_depth_clamp -#define GL_ARB_depth_clamp 1 -#endif - -#ifndef GL_ARB_draw_elements_base_vertex -#define GL_ARB_draw_elements_base_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); -GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint basevertex); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount, const GLint *basevertex); -#endif - -#ifndef GL_ARB_fragment_coord_conventions -#define GL_ARB_fragment_coord_conventions 1 -#endif - -#ifndef GL_ARB_provoking_vertex -#define GL_ARB_provoking_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertex (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); -#endif - -#ifndef GL_ARB_seamless_cube_map -#define GL_ARB_seamless_cube_map 1 -#endif - -#ifndef GL_ARB_sync -#define GL_ARB_sync 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); -GLAPI GLboolean APIENTRY glIsSync (GLsync sync); -GLAPI void APIENTRY glDeleteSync (GLsync sync); -GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); -GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); -typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); -typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); -typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); -typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -#endif - -#ifndef GL_ARB_texture_multisample -#define GL_ARB_texture_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); -#endif - -#ifndef GL_ARB_vertex_array_bgra -#define GL_ARB_vertex_array_bgra 1 -#endif - -#ifndef GL_ARB_draw_buffers_blend -#define GL_ARB_draw_buffers_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -#endif - -#ifndef GL_ARB_sample_shading -#define GL_ARB_sample_shading 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMinSampleShadingARB (GLclampf value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); -#endif - -#ifndef GL_ARB_texture_cube_map_array -#define GL_ARB_texture_cube_map_array 1 -#endif - -#ifndef GL_ARB_texture_gather -#define GL_ARB_texture_gather 1 -#endif - -#ifndef GL_ARB_texture_query_lod -#define GL_ARB_texture_query_lod 1 -#endif - -#ifndef GL_ARB_shading_language_include -#define GL_ARB_shading_language_include 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length); -GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); -GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); -typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* *path, const GLint *length); -typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); -typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_texture_compression_bptc -#define GL_ARB_texture_compression_bptc 1 -#endif - -#ifndef GL_ARB_blend_func_extended -#define GL_ARB_blend_func_extended 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); -#endif - -#ifndef GL_ARB_explicit_attrib_location -#define GL_ARB_explicit_attrib_location 1 -#endif - -#ifndef GL_ARB_occlusion_query2 -#define GL_ARB_occlusion_query2 1 -#endif - -#ifndef GL_ARB_sampler_objects -#define GL_ARB_sampler_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); -GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); -GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); -GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); -GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); -GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); -GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); -GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); -GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); -typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); -typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); -typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); -#endif - -#ifndef GL_ARB_shader_bit_encoding -#define GL_ARB_shader_bit_encoding 1 -#endif - -#ifndef GL_ARB_texture_rgb10_a2ui -#define GL_ARB_texture_rgb10_a2ui 1 -#endif - -#ifndef GL_ARB_texture_swizzle -#define GL_ARB_texture_swizzle 1 -#endif - -#ifndef GL_ARB_timer_query -#define GL_ARB_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); -GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); -GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); -#endif - -#ifndef GL_ARB_vertex_type_2_10_10_10_rev -#define GL_ARB_vertex_type_2_10_10_10_rev 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexP2ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP2uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP3ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP3uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glVertexP4ui (GLenum type, GLuint value); -GLAPI void APIENTRY glVertexP4uiv (GLenum type, const GLuint *value); -GLAPI void APIENTRY glTexCoordP1ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP1uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP2ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP2uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glTexCoordP4ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glTexCoordP4uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP1ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP1uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP2ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP2uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP3ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP3uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glMultiTexCoordP4ui (GLenum texture, GLenum type, GLuint coords); -GLAPI void APIENTRY glMultiTexCoordP4uiv (GLenum texture, GLenum type, const GLuint *coords); -GLAPI void APIENTRY glNormalP3ui (GLenum type, GLuint coords); -GLAPI void APIENTRY glNormalP3uiv (GLenum type, const GLuint *coords); -GLAPI void APIENTRY glColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP3uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glColorP4ui (GLenum type, GLuint color); -GLAPI void APIENTRY glColorP4uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glSecondaryColorP3ui (GLenum type, GLuint color); -GLAPI void APIENTRY glSecondaryColorP3uiv (GLenum type, const GLuint *color); -GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); -GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXP2UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP2UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP3UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP3UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXP4UIPROC) (GLenum type, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXP4UIVPROC) (GLenum type, const GLuint *value); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP1UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP2UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLTEXCOORDP4UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP1UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP2UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP3UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIPROC) (GLenum texture, GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLMULTITEXCOORDP4UIVPROC) (GLenum texture, GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLNORMALP3UIPROC) (GLenum type, GLuint coords); -typedef void (APIENTRYP PFNGLNORMALP3UIVPROC) (GLenum type, const GLuint *coords); -typedef void (APIENTRYP PFNGLCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP3UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLCOLORP4UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLCOLORP4UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIPROC) (GLenum type, GLuint color); -typedef void (APIENTRYP PFNGLSECONDARYCOLORP3UIVPROC) (GLenum type, const GLuint *color); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); -typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); -#endif - -#ifndef GL_ARB_draw_indirect -#define GL_ARB_draw_indirect 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const GLvoid *indirect); -GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const GLvoid *indirect); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect); -#endif - -#ifndef GL_ARB_gpu_shader5 -#define GL_ARB_gpu_shader5 1 -#endif - -#ifndef GL_ARB_gpu_shader_fp64 -#define GL_ARB_gpu_shader_fp64 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); -GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); -#endif - -#ifndef GL_ARB_shader_subroutine -#define GL_ARB_shader_subroutine 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); -GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); -GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); -typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); -#endif - -#ifndef GL_ARB_tessellation_shader -#define GL_ARB_tessellation_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); -GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); -typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); -#endif - -#ifndef GL_ARB_texture_buffer_object_rgb32 -#define GL_ARB_texture_buffer_object_rgb32 1 -#endif - -#ifndef GL_ARB_transform_feedback2 -#define GL_ARB_transform_feedback2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedback (void); -GLAPI void APIENTRY glResumeTransformFeedback (void); -GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); -#endif - -#ifndef GL_ARB_transform_feedback3 -#define GL_ARB_transform_feedback3 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); -GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); -GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); -GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); -typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); -typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_ES2_compatibility -#define GL_ARB_ES2_compatibility 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReleaseShaderCompiler (void); -GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); -GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -GLAPI void APIENTRY glDepthRangef (GLclampf n, GLclampf f); -GLAPI void APIENTRY glClearDepthf (GLclampf d); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); -typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); -typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); -typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); -typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLclampf d); -#endif - -#ifndef GL_ARB_get_program_binary -#define GL_ARB_get_program_binary 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); -GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); -typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_ARB_separate_shader_objects -#define GL_ARB_separate_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); -GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar* *strings); -GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); -GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); -GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); -GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); -GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); -GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); -GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); -typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* *strings); -typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); -typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); -typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); -#endif - -#ifndef GL_ARB_vertex_attrib_64bit -#define GL_ARB_vertex_attrib_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); -#endif - -#ifndef GL_ARB_viewport_array -#define GL_ARB_viewport_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); -GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); -GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd *v); -GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f); -GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); -typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v); -typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); -typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); -#endif - -#ifndef GL_ARB_cl_event -#define GL_ARB_cl_event 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glCreateSyncFromCLeventARB (struct _cl_context * context, struct _cl_event * event, GLbitfield flags); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync (APIENTRYP PFNGLCREATESYNCFROMCLEVENTARBPROC) (struct _cl_context * context, struct _cl_event * event, GLbitfield flags); -#endif - -#ifndef GL_ARB_debug_output -#define GL_ARB_debug_output 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageControlARB (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertARB (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackARB (GLDEBUGPROCARB callback, const GLvoid *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogARB (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEBUGMESSAGECONTROLARBPROC) (GLenum source, GLenum type, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTARBPROC) (GLenum source, GLenum type, GLuint id, GLenum severity, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKARBPROC) (GLDEBUGPROCARB callback, const GLvoid *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGARBPROC) (GLuint count, GLsizei bufsize, GLenum *sources, GLenum *types, GLuint *ids, GLenum *severities, GLsizei *lengths, GLchar *messageLog); -#endif - -#ifndef GL_ARB_robustness -#define GL_ARB_robustness 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glGetGraphicsResetStatusARB (void); -GLAPI void APIENTRY glGetnMapdvARB (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -GLAPI void APIENTRY glGetnMapfvARB (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -GLAPI void APIENTRY glGetnMapivARB (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -GLAPI void APIENTRY glGetnPixelMapfvARB (GLenum map, GLsizei bufSize, GLfloat *values); -GLAPI void APIENTRY glGetnPixelMapuivARB (GLenum map, GLsizei bufSize, GLuint *values); -GLAPI void APIENTRY glGetnPixelMapusvARB (GLenum map, GLsizei bufSize, GLushort *values); -GLAPI void APIENTRY glGetnPolygonStippleARB (GLsizei bufSize, GLubyte *pattern); -GLAPI void APIENTRY glGetnColorTableARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table); -GLAPI void APIENTRY glGetnConvolutionFilterARB (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image); -GLAPI void APIENTRY glGetnSeparableFilterARB (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glGetnHistogramARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -GLAPI void APIENTRY glGetnMinmaxARB (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -GLAPI void APIENTRY glGetnTexImageARB (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img); -GLAPI void APIENTRY glReadnPixelsARB (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -GLAPI void APIENTRY glGetnCompressedTexImageARB (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img); -GLAPI void APIENTRY glGetnUniformfvARB (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -GLAPI void APIENTRY glGetnUniformivARB (GLuint program, GLint location, GLsizei bufSize, GLint *params); -GLAPI void APIENTRY glGetnUniformuivARB (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -GLAPI void APIENTRY glGetnUniformdvARB (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLenum (APIENTRYP PFNGLGETGRAPHICSRESETSTATUSARBPROC) (void); -typedef void (APIENTRYP PFNGLGETNMAPDVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLdouble *v); -typedef void (APIENTRYP PFNGLGETNMAPFVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLfloat *v); -typedef void (APIENTRYP PFNGLGETNMAPIVARBPROC) (GLenum target, GLenum query, GLsizei bufSize, GLint *v); -typedef void (APIENTRYP PFNGLGETNPIXELMAPFVARBPROC) (GLenum map, GLsizei bufSize, GLfloat *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUIVARBPROC) (GLenum map, GLsizei bufSize, GLuint *values); -typedef void (APIENTRYP PFNGLGETNPIXELMAPUSVARBPROC) (GLenum map, GLsizei bufSize, GLushort *values); -typedef void (APIENTRYP PFNGLGETNPOLYGONSTIPPLEARBPROC) (GLsizei bufSize, GLubyte *pattern); -typedef void (APIENTRYP PFNGLGETNCOLORTABLEARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *table); -typedef void (APIENTRYP PFNGLGETNCONVOLUTIONFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei bufSize, GLvoid *image); -typedef void (APIENTRYP PFNGLGETNSEPARABLEFILTERARBPROC) (GLenum target, GLenum format, GLenum type, GLsizei rowBufSize, GLvoid *row, GLsizei columnBufSize, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLGETNHISTOGRAMARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -typedef void (APIENTRYP PFNGLGETNMINMAXARBPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLsizei bufSize, GLvoid *values); -typedef void (APIENTRYP PFNGLGETNTEXIMAGEARBPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLsizei bufSize, GLvoid *img); -typedef void (APIENTRYP PFNGLREADNPIXELSARBPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLsizei bufSize, GLvoid *data); -typedef void (APIENTRYP PFNGLGETNCOMPRESSEDTEXIMAGEARBPROC) (GLenum target, GLint lod, GLsizei bufSize, GLvoid *img); -typedef void (APIENTRYP PFNGLGETNUNIFORMFVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMUIVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLuint *params); -typedef void (APIENTRYP PFNGLGETNUNIFORMDVARBPROC) (GLuint program, GLint location, GLsizei bufSize, GLdouble *params); -#endif - -#ifndef GL_ARB_shader_stencil_export -#define GL_ARB_shader_stencil_export 1 -#endif - -#ifndef GL_ARB_base_instance -#define GL_ARB_base_instance 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedBaseInstance (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); -GLAPI void APIENTRY glDrawElementsInstancedBaseVertexBaseInstance (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLint first, GLsizei count, GLsizei primcount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLuint baseinstance); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXBASEINSTANCEPROC) (GLenum mode, GLsizei count, GLenum type, const void *indices, GLsizei primcount, GLint basevertex, GLuint baseinstance); -#endif - -#ifndef GL_ARB_shading_language_420pack -#define GL_ARB_shading_language_420pack 1 -#endif - -#ifndef GL_ARB_transform_feedback_instanced -#define GL_ARB_transform_feedback_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawTransformFeedbackInstanced (GLenum mode, GLuint id, GLsizei primcount); -GLAPI void APIENTRY glDrawTransformFeedbackStreamInstanced (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKINSTANCEDPROC) (GLenum mode, GLuint id, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMINSTANCEDPROC) (GLenum mode, GLuint id, GLuint stream, GLsizei primcount); -#endif - -#ifndef GL_ARB_compressed_texture_pixel_storage -#define GL_ARB_compressed_texture_pixel_storage 1 -#endif - -#ifndef GL_ARB_conservative_depth -#define GL_ARB_conservative_depth 1 -#endif - -#ifndef GL_ARB_internalformat_query -#define GL_ARB_internalformat_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); -#endif - -#ifndef GL_ARB_map_buffer_alignment -#define GL_ARB_map_buffer_alignment 1 -#endif - -#ifndef GL_ARB_shader_atomic_counters -#define GL_ARB_shader_atomic_counters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetActiveAtomicCounterBufferiv (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETACTIVEATOMICCOUNTERBUFFERIVPROC) (GLuint program, GLuint bufferIndex, GLenum pname, GLint *params); -#endif - -#ifndef GL_ARB_shader_image_load_store -#define GL_ARB_shader_image_load_store 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTexture (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -GLAPI void APIENTRY glMemoryBarrier (GLbitfield barriers); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREPROC) (GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format); -typedef void (APIENTRYP PFNGLMEMORYBARRIERPROC) (GLbitfield barriers); -#endif - -#ifndef GL_ARB_shading_language_packing -#define GL_ARB_shading_language_packing 1 -#endif - -#ifndef GL_ARB_texture_storage -#define GL_ARB_texture_storage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -GLAPI void APIENTRY glTextureStorage1DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -GLAPI void APIENTRY glTextureStorage2DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glTextureStorage3DEXT (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE1DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE2DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLTEXTURESTORAGE3DEXTPROC) (GLuint texture, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef GL_EXT_abgr -#define GL_EXT_abgr 1 -#endif - -#ifndef GL_EXT_blend_color -#define GL_EXT_blend_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendColorEXT (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDCOLOREXTPROC) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); -#endif - -#ifndef GL_EXT_polygon_offset -#define GL_EXT_polygon_offset 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPolygonOffsetEXT (GLfloat factor, GLfloat bias); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOLYGONOFFSETEXTPROC) (GLfloat factor, GLfloat bias); -#endif - -#ifndef GL_EXT_texture -#define GL_EXT_texture 1 -#endif - -#ifndef GL_EXT_texture3D -#define GL_EXT_texture3D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage3DEXT (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE3DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGIS_texture_filter4 -#define GL_SGIS_texture_filter4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetTexFilterFuncSGIS (GLenum target, GLenum filter, GLfloat *weights); -GLAPI void APIENTRY glTexFilterFuncSGIS (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLfloat *weights); -typedef void (APIENTRYP PFNGLTEXFILTERFUNCSGISPROC) (GLenum target, GLenum filter, GLsizei n, const GLfloat *weights); -#endif - -#ifndef GL_EXT_subtexture -#define GL_EXT_subtexture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_EXT_copy_texture -#define GL_EXT_copy_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyTexImage1DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTexImage2DEXT (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTexSubImage1DEXT (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTexSubImage2DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glCopyTexSubImage3DEXT (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DEXTPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DEXTPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_histogram -#define GL_EXT_histogram 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetHistogramEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetHistogramParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetHistogramParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMinmaxEXT (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -GLAPI void APIENTRY glGetMinmaxParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMinmaxParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glHistogramEXT (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glMinmaxEXT (GLenum target, GLenum internalformat, GLboolean sink); -GLAPI void APIENTRY glResetHistogramEXT (GLenum target); -GLAPI void APIENTRY glResetMinmaxEXT (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETHISTOGRAMEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETHISTOGRAMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMINMAXEXTPROC) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMINMAXPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLHISTOGRAMEXTPROC) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLMINMAXEXTPROC) (GLenum target, GLenum internalformat, GLboolean sink); -typedef void (APIENTRYP PFNGLRESETHISTOGRAMEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLRESETMINMAXEXTPROC) (GLenum target); -#endif - -#ifndef GL_EXT_convolution -#define GL_EXT_convolution 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -GLAPI void APIENTRY glConvolutionParameterfEXT (GLenum target, GLenum pname, GLfloat params); -GLAPI void APIENTRY glConvolutionParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glConvolutionParameteriEXT (GLenum target, GLenum pname, GLint params); -GLAPI void APIENTRY glConvolutionParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyConvolutionFilter1DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyConvolutionFilter2DEXT (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetConvolutionFilterEXT (GLenum target, GLenum format, GLenum type, GLvoid *image); -GLAPI void APIENTRY glGetConvolutionParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetConvolutionParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetSeparableFilterEXT (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -GLAPI void APIENTRY glSeparableFilter2DEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint params); -typedef void (APIENTRYP PFNGLCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER1DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYCONVOLUTIONFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *image); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCONVOLUTIONPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETSEPARABLEFILTEREXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); -typedef void (APIENTRYP PFNGLSEPARABLEFILTER2DEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); -#endif - -#ifndef GL_SGI_color_matrix -#define GL_SGI_color_matrix 1 -#endif - -#ifndef GL_SGI_color_table -#define GL_SGI_color_table 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableSGI (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glColorTableParameterfvSGI (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glColorTableParameterivSGI (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glCopyColorTableSGI (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glGetColorTableSGI (GLenum target, GLenum format, GLenum type, GLvoid *table); -GLAPI void APIENTRY glGetColorTableParameterfvSGI (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetColorTableParameterivSGI (GLenum target, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOPYCOLORTABLESGIPROC) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLGETCOLORTABLESGIPROC) (GLenum target, GLenum format, GLenum type, GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVSGIPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVSGIPROC) (GLenum target, GLenum pname, GLint *params); -#endif - -#ifndef GL_SGIX_pixel_texture -#define GL_SGIX_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenSGIX (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENSGIXPROC) (GLenum mode); -#endif - -#ifndef GL_SGIS_pixel_texture -#define GL_SGIS_pixel_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTexGenParameteriSGIS (GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTexGenParameterivSGIS (GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTexGenParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTexGenParameterfvSGIS (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetPixelTexGenParameterivSGIS (GLenum pname, GLint *params); -GLAPI void APIENTRY glGetPixelTexGenParameterfvSGIS (GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERISGISPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERIVSGISPROC) (GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPIXELTEXGENPARAMETERFVSGISPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIS_texture4D -#define GL_SGIS_texture4D 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage4DSGIS (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTexSubImage4DSGIS (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE4DSGISPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXSUBIMAGE4DSGISPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint woffset, GLsizei width, GLsizei height, GLsizei depth, GLsizei size4d, GLenum format, GLenum type, const GLvoid *pixels); -#endif - -#ifndef GL_SGI_texture_color_table -#define GL_SGI_texture_color_table 1 -#endif - -#ifndef GL_EXT_cmyka -#define GL_EXT_cmyka 1 -#endif - -#ifndef GL_EXT_texture_object -#define GL_EXT_texture_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreTexturesResidentEXT (GLsizei n, const GLuint *textures, GLboolean *residences); -GLAPI void APIENTRY glBindTextureEXT (GLenum target, GLuint texture); -GLAPI void APIENTRY glDeleteTexturesEXT (GLsizei n, const GLuint *textures); -GLAPI void APIENTRY glGenTexturesEXT (GLsizei n, GLuint *textures); -GLAPI GLboolean APIENTRY glIsTextureEXT (GLuint texture); -GLAPI void APIENTRY glPrioritizeTexturesEXT (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLARETEXTURESRESIDENTEXTPROC) (GLsizei n, const GLuint *textures, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDTEXTUREEXTPROC) (GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLDELETETEXTURESEXTPROC) (GLsizei n, const GLuint *textures); -typedef void (APIENTRYP PFNGLGENTEXTURESEXTPROC) (GLsizei n, GLuint *textures); -typedef GLboolean (APIENTRYP PFNGLISTEXTUREEXTPROC) (GLuint texture); -typedef void (APIENTRYP PFNGLPRIORITIZETEXTURESEXTPROC) (GLsizei n, const GLuint *textures, const GLclampf *priorities); -#endif - -#ifndef GL_SGIS_detail_texture -#define GL_SGIS_detail_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDetailTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetDetailTexFuncSGIS (GLenum target, GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDETAILTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETDETAILTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_SGIS_sharpen_texture -#define GL_SGIS_sharpen_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSharpenTexFuncSGIS (GLenum target, GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetSharpenTexFuncSGIS (GLenum target, GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSHARPENTEXFUNCSGISPROC) (GLenum target, GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETSHARPENTEXFUNCSGISPROC) (GLenum target, GLfloat *points); -#endif - -#ifndef GL_EXT_packed_pixels -#define GL_EXT_packed_pixels 1 -#endif - -#ifndef GL_SGIS_texture_lod -#define GL_SGIS_texture_lod 1 -#endif - -#ifndef GL_SGIS_multisample -#define GL_SGIS_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskSGIS (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternSGIS (GLenum pattern); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKSGISPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNSGISPROC) (GLenum pattern); -#endif - -#ifndef GL_EXT_rescale_normal -#define GL_EXT_rescale_normal 1 -#endif - -#ifndef GL_EXT_vertex_array -#define GL_EXT_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glArrayElementEXT (GLint i); -GLAPI void APIENTRY glColorPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glDrawArraysEXT (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glEdgeFlagPointerEXT (GLsizei stride, GLsizei count, const GLboolean *pointer); -GLAPI void APIENTRY glGetPointervEXT (GLenum pname, GLvoid* *params); -GLAPI void APIENTRY glIndexPointerEXT (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glNormalPointerEXT (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glTexCoordPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -GLAPI void APIENTRY glVertexPointerEXT (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLARRAYELEMENTEXTPROC) (GLint i); -typedef void (APIENTRYP PFNGLCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWARRAYSEXTPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTEREXTPROC) (GLsizei stride, GLsizei count, const GLboolean *pointer); -typedef void (APIENTRYP PFNGLGETPOINTERVEXTPROC) (GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLINDEXPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, GLsizei count, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_misc_attribute -#define GL_EXT_misc_attribute 1 -#endif - -#ifndef GL_SGIS_generate_mipmap -#define GL_SGIS_generate_mipmap 1 -#endif - -#ifndef GL_SGIX_clipmap -#define GL_SGIX_clipmap 1 -#endif - -#ifndef GL_SGIX_shadow -#define GL_SGIX_shadow 1 -#endif - -#ifndef GL_SGIS_texture_edge_clamp -#define GL_SGIS_texture_edge_clamp 1 -#endif - -#ifndef GL_SGIS_texture_border_clamp -#define GL_SGIS_texture_border_clamp 1 -#endif - -#ifndef GL_EXT_blend_minmax -#define GL_EXT_blend_minmax 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationEXT (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_blend_subtract -#define GL_EXT_blend_subtract 1 -#endif - -#ifndef GL_EXT_blend_logic_op -#define GL_EXT_blend_logic_op 1 -#endif - -#ifndef GL_SGIX_interlace -#define GL_SGIX_interlace 1 -#endif - -#ifndef GL_SGIX_pixel_tiles -#define GL_SGIX_pixel_tiles 1 -#endif - -#ifndef GL_SGIX_texture_select -#define GL_SGIX_texture_select 1 -#endif - -#ifndef GL_SGIX_sprite -#define GL_SGIX_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSpriteParameterfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glSpriteParameterfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glSpriteParameteriSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glSpriteParameterivSGIX (GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLSPRITEPARAMETERIVSGIXPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_texture_multi_buffer -#define GL_SGIX_texture_multi_buffer 1 -#endif - -#ifndef GL_EXT_point_parameters -#define GL_EXT_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfEXT (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvEXT (GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFEXTPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVEXTPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIS_point_parameters -#define GL_SGIS_point_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameterfSGIS (GLenum pname, GLfloat param); -GLAPI void APIENTRY glPointParameterfvSGIS (GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERFSGISPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERFVSGISPROC) (GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_SGIX_instruments -#define GL_SGIX_instruments 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLint APIENTRY glGetInstrumentsSGIX (void); -GLAPI void APIENTRY glInstrumentsBufferSGIX (GLsizei size, GLint *buffer); -GLAPI GLint APIENTRY glPollInstrumentsSGIX (GLint *marker_p); -GLAPI void APIENTRY glReadInstrumentsSGIX (GLint marker); -GLAPI void APIENTRY glStartInstrumentsSGIX (void); -GLAPI void APIENTRY glStopInstrumentsSGIX (GLint marker); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLint (APIENTRYP PFNGLGETINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLINSTRUMENTSBUFFERSGIXPROC) (GLsizei size, GLint *buffer); -typedef GLint (APIENTRYP PFNGLPOLLINSTRUMENTSSGIXPROC) (GLint *marker_p); -typedef void (APIENTRYP PFNGLREADINSTRUMENTSSGIXPROC) (GLint marker); -typedef void (APIENTRYP PFNGLSTARTINSTRUMENTSSGIXPROC) (void); -typedef void (APIENTRYP PFNGLSTOPINSTRUMENTSSGIXPROC) (GLint marker); -#endif - -#ifndef GL_SGIX_texture_scale_bias -#define GL_SGIX_texture_scale_bias 1 -#endif - -#ifndef GL_SGIX_framezoom -#define GL_SGIX_framezoom 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameZoomSGIX (GLint factor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMEZOOMSGIXPROC) (GLint factor); -#endif - -#ifndef GL_SGIX_tag_sample_buffer -#define GL_SGIX_tag_sample_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTagSampleBufferSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTAGSAMPLEBUFFERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_polynomial_ffd -#define GL_SGIX_polynomial_ffd 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeformationMap3dSGIX (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -GLAPI void APIENTRY glDeformationMap3fSGIX (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -GLAPI void APIENTRY glDeformSGIX (GLbitfield mask); -GLAPI void APIENTRY glLoadIdentityDeformationMapSGIX (GLbitfield mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3DSGIXPROC) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, GLdouble w1, GLdouble w2, GLint wstride, GLint worder, const GLdouble *points); -typedef void (APIENTRYP PFNGLDEFORMATIONMAP3FSGIXPROC) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, GLfloat w1, GLfloat w2, GLint wstride, GLint worder, const GLfloat *points); -typedef void (APIENTRYP PFNGLDEFORMSGIXPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLLOADIDENTITYDEFORMATIONMAPSGIXPROC) (GLbitfield mask); -#endif - -#ifndef GL_SGIX_reference_plane -#define GL_SGIX_reference_plane 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReferencePlaneSGIX (const GLdouble *equation); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREFERENCEPLANESGIXPROC) (const GLdouble *equation); -#endif - -#ifndef GL_SGIX_flush_raster -#define GL_SGIX_flush_raster 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushRasterSGIX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHRASTERSGIXPROC) (void); -#endif - -#ifndef GL_SGIX_depth_texture -#define GL_SGIX_depth_texture 1 -#endif - -#ifndef GL_SGIS_fog_function -#define GL_SGIS_fog_function 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogFuncSGIS (GLsizei n, const GLfloat *points); -GLAPI void APIENTRY glGetFogFuncSGIS (GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGFUNCSGISPROC) (GLsizei n, const GLfloat *points); -typedef void (APIENTRYP PFNGLGETFOGFUNCSGISPROC) (GLfloat *points); -#endif - -#ifndef GL_SGIX_fog_offset -#define GL_SGIX_fog_offset 1 -#endif - -#ifndef GL_HP_image_transform -#define GL_HP_image_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glImageTransformParameteriHP (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glImageTransformParameterfHP (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glImageTransformParameterivHP (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glImageTransformParameterfvHP (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetImageTransformParameterivHP (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetImageTransformParameterfvHP (GLenum target, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIHPPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFHPPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERIVHPPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETIMAGETRANSFORMPARAMETERFVHPPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_HP_convolution_border_modes -#define GL_HP_convolution_border_modes 1 -#endif - -#ifndef GL_SGIX_texture_add_env -#define GL_SGIX_texture_add_env 1 -#endif - -#ifndef GL_EXT_color_subtable -#define GL_EXT_color_subtable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorSubTableEXT (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -GLAPI void APIENTRY glCopyColorSubTableEXT (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); -typedef void (APIENTRYP PFNGLCOPYCOLORSUBTABLEEXTPROC) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); -#endif - -#ifndef GL_PGI_vertex_hints -#define GL_PGI_vertex_hints 1 -#endif - -#ifndef GL_PGI_misc_hints -#define GL_PGI_misc_hints 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glHintPGI (GLenum target, GLint mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLHINTPGIPROC) (GLenum target, GLint mode); -#endif - -#ifndef GL_EXT_paletted_texture -#define GL_EXT_paletted_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorTableEXT (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -GLAPI void APIENTRY glGetColorTableEXT (GLenum target, GLenum format, GLenum type, GLvoid *data); -GLAPI void APIENTRY glGetColorTableParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetColorTableParameterfvEXT (GLenum target, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORTABLEEXTPROC) (GLenum target, GLenum internalFormat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); -typedef void (APIENTRYP PFNGLGETCOLORTABLEEXTPROC) (GLenum target, GLenum format, GLenum type, GLvoid *data); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOLORTABLEPARAMETERFVEXTPROC) (GLenum target, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_EXT_clip_volume_hint -#define GL_EXT_clip_volume_hint 1 -#endif - -#ifndef GL_SGIX_list_priority -#define GL_SGIX_list_priority 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetListParameterfvSGIX (GLuint list, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetListParameterivSGIX (GLuint list, GLenum pname, GLint *params); -GLAPI void APIENTRY glListParameterfSGIX (GLuint list, GLenum pname, GLfloat param); -GLAPI void APIENTRY glListParameterfvSGIX (GLuint list, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glListParameteriSGIX (GLuint list, GLenum pname, GLint param); -GLAPI void APIENTRY glListParameterivSGIX (GLuint list, GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERFSGIXPROC) (GLuint list, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLLISTPARAMETERFVSGIXPROC) (GLuint list, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLLISTPARAMETERISGIXPROC) (GLuint list, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLLISTPARAMETERIVSGIXPROC) (GLuint list, GLenum pname, const GLint *params); -#endif - -#ifndef GL_SGIX_ir_instrument1 -#define GL_SGIX_ir_instrument1 1 -#endif - -#ifndef GL_SGIX_calligraphic_fragment -#define GL_SGIX_calligraphic_fragment 1 -#endif - -#ifndef GL_SGIX_texture_lod_bias -#define GL_SGIX_texture_lod_bias 1 -#endif - -#ifndef GL_SGIX_shadow_ambient -#define GL_SGIX_shadow_ambient 1 -#endif - -#ifndef GL_EXT_index_texture -#define GL_EXT_index_texture 1 -#endif - -#ifndef GL_EXT_index_material -#define GL_EXT_index_material 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexMaterialEXT (GLenum face, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_EXT_index_func -#define GL_EXT_index_func 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIndexFuncEXT (GLenum func, GLclampf ref); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLINDEXFUNCEXTPROC) (GLenum func, GLclampf ref); -#endif - -#ifndef GL_EXT_index_array_formats -#define GL_EXT_index_array_formats 1 -#endif - -#ifndef GL_EXT_compiled_vertex_array -#define GL_EXT_compiled_vertex_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glLockArraysEXT (GLint first, GLsizei count); -GLAPI void APIENTRY glUnlockArraysEXT (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLLOCKARRAYSEXTPROC) (GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLUNLOCKARRAYSEXTPROC) (void); -#endif - -#ifndef GL_EXT_cull_vertex -#define GL_EXT_cull_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCullParameterdvEXT (GLenum pname, GLdouble *params); -GLAPI void APIENTRY glCullParameterfvEXT (GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCULLPARAMETERDVEXTPROC) (GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLCULLPARAMETERFVEXTPROC) (GLenum pname, GLfloat *params); -#endif - -#ifndef GL_SGIX_ycrcb -#define GL_SGIX_ycrcb 1 -#endif - -#ifndef GL_SGIX_fragment_lighting -#define GL_SGIX_fragment_lighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFragmentColorMaterialSGIX (GLenum face, GLenum mode); -GLAPI void APIENTRY glFragmentLightfSGIX (GLenum light, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightfvSGIX (GLenum light, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightiSGIX (GLenum light, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightivSGIX (GLenum light, GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentLightModelfSGIX (GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentLightModelfvSGIX (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentLightModeliSGIX (GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentLightModelivSGIX (GLenum pname, const GLint *params); -GLAPI void APIENTRY glFragmentMaterialfSGIX (GLenum face, GLenum pname, GLfloat param); -GLAPI void APIENTRY glFragmentMaterialfvSGIX (GLenum face, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glFragmentMaterialiSGIX (GLenum face, GLenum pname, GLint param); -GLAPI void APIENTRY glFragmentMaterialivSGIX (GLenum face, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetFragmentLightfvSGIX (GLenum light, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentLightivSGIX (GLenum light, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFragmentMaterialfvSGIX (GLenum face, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFragmentMaterialivSGIX (GLenum face, GLenum pname, GLint *params); -GLAPI void APIENTRY glLightEnviSGIX (GLenum pname, GLint param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAGMENTCOLORMATERIALSGIXPROC) (GLenum face, GLenum mode); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFSGIXPROC) (GLenum light, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTISGIXPROC) (GLenum light, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFSGIXPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELFVSGIXPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELISGIXPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTLIGHTMODELIVSGIXPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFSGIXPROC) (GLenum face, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALISGIXPROC) (GLenum face, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTFVSGIXPROC) (GLenum light, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTLIGHTIVSGIXPROC) (GLenum light, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALFVSGIXPROC) (GLenum face, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFRAGMENTMATERIALIVSGIXPROC) (GLenum face, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLLIGHTENVISGIXPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_IBM_rasterpos_clip -#define GL_IBM_rasterpos_clip 1 -#endif - -#ifndef GL_HP_texture_lighting -#define GL_HP_texture_lighting 1 -#endif - -#ifndef GL_EXT_draw_range_elements -#define GL_EXT_draw_range_elements 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawRangeElementsEXT (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSEXTPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); -#endif - -#ifndef GL_WIN_phong_shading -#define GL_WIN_phong_shading 1 -#endif - -#ifndef GL_WIN_specular_fog -#define GL_WIN_specular_fog 1 -#endif - -#ifndef GL_EXT_light_texture -#define GL_EXT_light_texture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glApplyTextureEXT (GLenum mode); -GLAPI void APIENTRY glTextureLightEXT (GLenum pname); -GLAPI void APIENTRY glTextureMaterialEXT (GLenum face, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLAPPLYTEXTUREEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLTEXTURELIGHTEXTPROC) (GLenum pname); -typedef void (APIENTRYP PFNGLTEXTUREMATERIALEXTPROC) (GLenum face, GLenum mode); -#endif - -#ifndef GL_SGIX_blend_alpha_minmax -#define GL_SGIX_blend_alpha_minmax 1 -#endif - -#ifndef GL_EXT_bgra -#define GL_EXT_bgra 1 -#endif - -#ifndef GL_SGIX_async -#define GL_SGIX_async 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glAsyncMarkerSGIX (GLuint marker); -GLAPI GLint APIENTRY glFinishAsyncSGIX (GLuint *markerp); -GLAPI GLint APIENTRY glPollAsyncSGIX (GLuint *markerp); -GLAPI GLuint APIENTRY glGenAsyncMarkersSGIX (GLsizei range); -GLAPI void APIENTRY glDeleteAsyncMarkersSGIX (GLuint marker, GLsizei range); -GLAPI GLboolean APIENTRY glIsAsyncMarkerSGIX (GLuint marker); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLASYNCMARKERSGIXPROC) (GLuint marker); -typedef GLint (APIENTRYP PFNGLFINISHASYNCSGIXPROC) (GLuint *markerp); -typedef GLint (APIENTRYP PFNGLPOLLASYNCSGIXPROC) (GLuint *markerp); -typedef GLuint (APIENTRYP PFNGLGENASYNCMARKERSSGIXPROC) (GLsizei range); -typedef void (APIENTRYP PFNGLDELETEASYNCMARKERSSGIXPROC) (GLuint marker, GLsizei range); -typedef GLboolean (APIENTRYP PFNGLISASYNCMARKERSGIXPROC) (GLuint marker); -#endif - -#ifndef GL_SGIX_async_pixel -#define GL_SGIX_async_pixel 1 -#endif - -#ifndef GL_SGIX_async_histogram -#define GL_SGIX_async_histogram 1 -#endif - -#ifndef GL_INTEL_parallel_arrays -#define GL_INTEL_parallel_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer); -GLAPI void APIENTRY glNormalPointervINTEL (GLenum type, const GLvoid* *pointer); -GLAPI void APIENTRY glColorPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer); -GLAPI void APIENTRY glTexCoordPointervINTEL (GLint size, GLenum type, const GLvoid* *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLNORMALPOINTERVINTELPROC) (GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLCOLORPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERVINTELPROC) (GLint size, GLenum type, const GLvoid* *pointer); -#endif - -#ifndef GL_HP_occlusion_test -#define GL_HP_occlusion_test 1 -#endif - -#ifndef GL_EXT_pixel_transform -#define GL_EXT_pixel_transform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelTransformParameteriEXT (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glPixelTransformParameterfEXT (GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glPixelTransformParameterivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glPixelTransformParameterfvEXT (GLenum target, GLenum pname, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIEXTPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFEXTPROC) (GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLPIXELTRANSFORMPARAMETERFVEXTPROC) (GLenum target, GLenum pname, const GLfloat *params); -#endif - -#ifndef GL_EXT_pixel_transform_color_table -#define GL_EXT_pixel_transform_color_table 1 -#endif - -#ifndef GL_EXT_shared_texture_palette -#define GL_EXT_shared_texture_palette 1 -#endif - -#ifndef GL_EXT_separate_specular_color -#define GL_EXT_separate_specular_color 1 -#endif - -#ifndef GL_EXT_secondary_color -#define GL_EXT_secondary_color 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSecondaryColor3bEXT (GLbyte red, GLbyte green, GLbyte blue); -GLAPI void APIENTRY glSecondaryColor3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glSecondaryColor3dEXT (GLdouble red, GLdouble green, GLdouble blue); -GLAPI void APIENTRY glSecondaryColor3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glSecondaryColor3fEXT (GLfloat red, GLfloat green, GLfloat blue); -GLAPI void APIENTRY glSecondaryColor3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glSecondaryColor3iEXT (GLint red, GLint green, GLint blue); -GLAPI void APIENTRY glSecondaryColor3ivEXT (const GLint *v); -GLAPI void APIENTRY glSecondaryColor3sEXT (GLshort red, GLshort green, GLshort blue); -GLAPI void APIENTRY glSecondaryColor3svEXT (const GLshort *v); -GLAPI void APIENTRY glSecondaryColor3ubEXT (GLubyte red, GLubyte green, GLubyte blue); -GLAPI void APIENTRY glSecondaryColor3ubvEXT (const GLubyte *v); -GLAPI void APIENTRY glSecondaryColor3uiEXT (GLuint red, GLuint green, GLuint blue); -GLAPI void APIENTRY glSecondaryColor3uivEXT (const GLuint *v); -GLAPI void APIENTRY glSecondaryColor3usEXT (GLushort red, GLushort green, GLushort blue); -GLAPI void APIENTRY glSecondaryColor3usvEXT (const GLushort *v); -GLAPI void APIENTRY glSecondaryColorPointerEXT (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BEXTPROC) (GLbyte red, GLbyte green, GLbyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DEXTPROC) (GLdouble red, GLdouble green, GLdouble blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FEXTPROC) (GLfloat red, GLfloat green, GLfloat blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IEXTPROC) (GLint red, GLint green, GLint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SEXTPROC) (GLshort red, GLshort green, GLshort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBEXTPROC) (GLubyte red, GLubyte green, GLubyte blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UBVEXTPROC) (const GLubyte *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIEXTPROC) (GLuint red, GLuint green, GLuint blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3UIVEXTPROC) (const GLuint *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USEXTPROC) (GLushort red, GLushort green, GLushort blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3USVEXTPROC) (const GLushort *v); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTEREXTPROC) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_perturb_normal -#define GL_EXT_texture_perturb_normal 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureNormalEXT (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURENORMALEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_multi_draw_arrays -#define GL_EXT_multi_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysEXT (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawElementsEXT (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSEXTPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSEXTPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_fog_coord -#define GL_EXT_fog_coord 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFogCoordfEXT (GLfloat coord); -GLAPI void APIENTRY glFogCoordfvEXT (const GLfloat *coord); -GLAPI void APIENTRY glFogCoorddEXT (GLdouble coord); -GLAPI void APIENTRY glFogCoorddvEXT (const GLdouble *coord); -GLAPI void APIENTRY glFogCoordPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFOGCOORDFEXTPROC) (GLfloat coord); -typedef void (APIENTRYP PFNGLFOGCOORDFVEXTPROC) (const GLfloat *coord); -typedef void (APIENTRYP PFNGLFOGCOORDDEXTPROC) (GLdouble coord); -typedef void (APIENTRYP PFNGLFOGCOORDDVEXTPROC) (const GLdouble *coord); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_REND_screen_coordinates -#define GL_REND_screen_coordinates 1 -#endif - -#ifndef GL_EXT_coordinate_frame -#define GL_EXT_coordinate_frame 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTangent3bEXT (GLbyte tx, GLbyte ty, GLbyte tz); -GLAPI void APIENTRY glTangent3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glTangent3dEXT (GLdouble tx, GLdouble ty, GLdouble tz); -GLAPI void APIENTRY glTangent3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glTangent3fEXT (GLfloat tx, GLfloat ty, GLfloat tz); -GLAPI void APIENTRY glTangent3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glTangent3iEXT (GLint tx, GLint ty, GLint tz); -GLAPI void APIENTRY glTangent3ivEXT (const GLint *v); -GLAPI void APIENTRY glTangent3sEXT (GLshort tx, GLshort ty, GLshort tz); -GLAPI void APIENTRY glTangent3svEXT (const GLshort *v); -GLAPI void APIENTRY glBinormal3bEXT (GLbyte bx, GLbyte by, GLbyte bz); -GLAPI void APIENTRY glBinormal3bvEXT (const GLbyte *v); -GLAPI void APIENTRY glBinormal3dEXT (GLdouble bx, GLdouble by, GLdouble bz); -GLAPI void APIENTRY glBinormal3dvEXT (const GLdouble *v); -GLAPI void APIENTRY glBinormal3fEXT (GLfloat bx, GLfloat by, GLfloat bz); -GLAPI void APIENTRY glBinormal3fvEXT (const GLfloat *v); -GLAPI void APIENTRY glBinormal3iEXT (GLint bx, GLint by, GLint bz); -GLAPI void APIENTRY glBinormal3ivEXT (const GLint *v); -GLAPI void APIENTRY glBinormal3sEXT (GLshort bx, GLshort by, GLshort bz); -GLAPI void APIENTRY glBinormal3svEXT (const GLshort *v); -GLAPI void APIENTRY glTangentPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glBinormalPointerEXT (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTANGENT3BEXTPROC) (GLbyte tx, GLbyte ty, GLbyte tz); -typedef void (APIENTRYP PFNGLTANGENT3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLTANGENT3DEXTPROC) (GLdouble tx, GLdouble ty, GLdouble tz); -typedef void (APIENTRYP PFNGLTANGENT3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLTANGENT3FEXTPROC) (GLfloat tx, GLfloat ty, GLfloat tz); -typedef void (APIENTRYP PFNGLTANGENT3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLTANGENT3IEXTPROC) (GLint tx, GLint ty, GLint tz); -typedef void (APIENTRYP PFNGLTANGENT3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLTANGENT3SEXTPROC) (GLshort tx, GLshort ty, GLshort tz); -typedef void (APIENTRYP PFNGLTANGENT3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLBINORMAL3BEXTPROC) (GLbyte bx, GLbyte by, GLbyte bz); -typedef void (APIENTRYP PFNGLBINORMAL3BVEXTPROC) (const GLbyte *v); -typedef void (APIENTRYP PFNGLBINORMAL3DEXTPROC) (GLdouble bx, GLdouble by, GLdouble bz); -typedef void (APIENTRYP PFNGLBINORMAL3DVEXTPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLBINORMAL3FEXTPROC) (GLfloat bx, GLfloat by, GLfloat bz); -typedef void (APIENTRYP PFNGLBINORMAL3FVEXTPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLBINORMAL3IEXTPROC) (GLint bx, GLint by, GLint bz); -typedef void (APIENTRYP PFNGLBINORMAL3IVEXTPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLBINORMAL3SEXTPROC) (GLshort bx, GLshort by, GLshort bz); -typedef void (APIENTRYP PFNGLBINORMAL3SVEXTPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLTANGENTPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLBINORMALPOINTEREXTPROC) (GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_EXT_texture_env_combine -#define GL_EXT_texture_env_combine 1 -#endif - -#ifndef GL_APPLE_specular_vector -#define GL_APPLE_specular_vector 1 -#endif - -#ifndef GL_APPLE_transform_hint -#define GL_APPLE_transform_hint 1 -#endif - -#ifndef GL_SGIX_fog_scale -#define GL_SGIX_fog_scale 1 -#endif - -#ifndef GL_SUNX_constant_data -#define GL_SUNX_constant_data 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFinishTextureSUNX (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFINISHTEXTURESUNXPROC) (void); -#endif - -#ifndef GL_SUN_global_alpha -#define GL_SUN_global_alpha 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGlobalAlphaFactorbSUN (GLbyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorsSUN (GLshort factor); -GLAPI void APIENTRY glGlobalAlphaFactoriSUN (GLint factor); -GLAPI void APIENTRY glGlobalAlphaFactorfSUN (GLfloat factor); -GLAPI void APIENTRY glGlobalAlphaFactordSUN (GLdouble factor); -GLAPI void APIENTRY glGlobalAlphaFactorubSUN (GLubyte factor); -GLAPI void APIENTRY glGlobalAlphaFactorusSUN (GLushort factor); -GLAPI void APIENTRY glGlobalAlphaFactoruiSUN (GLuint factor); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORBSUNPROC) (GLbyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORSSUNPROC) (GLshort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORISUNPROC) (GLint factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORFSUNPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORDSUNPROC) (GLdouble factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUBSUNPROC) (GLubyte factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUSSUNPROC) (GLushort factor); -typedef void (APIENTRYP PFNGLGLOBALALPHAFACTORUISUNPROC) (GLuint factor); -#endif - -#ifndef GL_SUN_triangle_list -#define GL_SUN_triangle_list 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glReplacementCodeuiSUN (GLuint code); -GLAPI void APIENTRY glReplacementCodeusSUN (GLushort code); -GLAPI void APIENTRY glReplacementCodeubSUN (GLubyte code); -GLAPI void APIENTRY glReplacementCodeuivSUN (const GLuint *code); -GLAPI void APIENTRY glReplacementCodeusvSUN (const GLushort *code); -GLAPI void APIENTRY glReplacementCodeubvSUN (const GLubyte *code); -GLAPI void APIENTRY glReplacementCodePointerSUN (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUISUNPROC) (GLuint code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSSUNPROC) (GLushort code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBSUNPROC) (GLubyte code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVSUNPROC) (const GLuint *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUSVSUNPROC) (const GLushort *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUBVSUNPROC) (const GLubyte *code); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEPOINTERSUNPROC) (GLenum type, GLsizei stride, const GLvoid* *pointer); -#endif - -#ifndef GL_SUN_vertex -#define GL_SUN_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColor4ubVertex2fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -GLAPI void APIENTRY glColor4ubVertex2fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor4ubVertex3fSUN (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4ubVertex3fvSUN (const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glColor3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor3fVertex3fvSUN (const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glNormal3fVertex3fSUN (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glNormal3fVertex3fvSUN (const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glColor4fNormal3fVertex3fSUN (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glColor4fNormal3fVertex3fvSUN (const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fVertex3fSUN (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fVertex3fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fVertex4fvSUN (const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fSUN (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4ubVertex3fvSUN (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fSUN (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glTexCoord2fColor4fNormal3fVertex3fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fSUN (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glTexCoord4fColor4fNormal3fVertex4fvSUN (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiVertex3fSUN (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiVertex3fvSUN (const GLuint *rc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fSUN (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4ubVertex3fvSUN (const GLuint *rc, const GLubyte *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fSUN (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fSUN (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glReplacementCodeuiTexCoord2fColor4fNormal3fVertex3fvSUN (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX2FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FSUNPROC) (GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4UBVERTEX3FVSUNPROC) (const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FSUNPROC) (GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4UBVERTEX3FVSUNPROC) (const GLfloat *tc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLTEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FSUNPROC) (GLfloat s, GLfloat t, GLfloat p, GLfloat q, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLTEXCOORD4FCOLOR4FNORMAL3FVERTEX4FVSUNPROC) (const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FSUNPROC) (GLuint rc, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUIVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FSUNPROC) (GLuint rc, GLubyte r, GLubyte g, GLubyte b, GLubyte a, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4UBVERTEX3FVSUNPROC) (const GLuint *rc, const GLubyte *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUINORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUICOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *n, const GLfloat *v); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FSUNPROC) (GLuint rc, GLfloat s, GLfloat t, GLfloat r, GLfloat g, GLfloat b, GLfloat a, GLfloat nx, GLfloat ny, GLfloat nz, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLREPLACEMENTCODEUITEXCOORD2FCOLOR4FNORMAL3FVERTEX3FVSUNPROC) (const GLuint *rc, const GLfloat *tc, const GLfloat *c, const GLfloat *n, const GLfloat *v); -#endif - -#ifndef GL_EXT_blend_func_separate -#define GL_EXT_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateEXT (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEEXTPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_blend_func_separate -#define GL_INGR_blend_func_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncSeparateINGR (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINGRPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); -#endif - -#ifndef GL_INGR_color_clamp -#define GL_INGR_color_clamp 1 -#endif - -#ifndef GL_INGR_interlace_read -#define GL_INGR_interlace_read 1 -#endif - -#ifndef GL_EXT_stencil_wrap -#define GL_EXT_stencil_wrap 1 -#endif - -#ifndef GL_EXT_422_pixels -#define GL_EXT_422_pixels 1 -#endif - -#ifndef GL_NV_texgen_reflection -#define GL_NV_texgen_reflection 1 -#endif - -#ifndef GL_SUN_convolution_border_modes -#define GL_SUN_convolution_border_modes 1 -#endif - -#ifndef GL_EXT_texture_env_add -#define GL_EXT_texture_env_add 1 -#endif - -#ifndef GL_EXT_texture_lod_bias -#define GL_EXT_texture_lod_bias 1 -#endif - -#ifndef GL_EXT_texture_filter_anisotropic -#define GL_EXT_texture_filter_anisotropic 1 -#endif - -#ifndef GL_EXT_vertex_weighting -#define GL_EXT_vertex_weighting 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexWeightfEXT (GLfloat weight); -GLAPI void APIENTRY glVertexWeightfvEXT (const GLfloat *weight); -GLAPI void APIENTRY glVertexWeightPointerEXT (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFEXTPROC) (GLfloat weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTFVEXTPROC) (const GLfloat *weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTPOINTEREXTPROC) (GLsizei size, GLenum type, GLsizei stride, const GLvoid *pointer); -#endif - -#ifndef GL_NV_light_max_exponent -#define GL_NV_light_max_exponent 1 -#endif - -#ifndef GL_NV_vertex_array_range -#define GL_NV_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFlushVertexArrayRangeNV (void); -GLAPI void APIENTRY glVertexArrayRangeNV (GLsizei length, const GLvoid *pointer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGENVPROC) (void); -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGENVPROC) (GLsizei length, const GLvoid *pointer); -#endif - -#ifndef GL_NV_register_combiners -#define GL_NV_register_combiners 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerParameterfvNV (GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glCombinerParameterfNV (GLenum pname, GLfloat param); -GLAPI void APIENTRY glCombinerParameterivNV (GLenum pname, const GLint *params); -GLAPI void APIENTRY glCombinerParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glCombinerInputNV (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glCombinerOutputNV (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -GLAPI void APIENTRY glFinalCombinerInputNV (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -GLAPI void APIENTRY glGetCombinerInputParameterfvNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerInputParameterivNV (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetCombinerOutputParameterfvNV (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetCombinerOutputParameterivNV (GLenum stage, GLenum portion, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterfvNV (GLenum variable, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetFinalCombinerInputParameterivNV (GLenum variable, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFVNVPROC) (GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERFNVPROC) (GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLCOMBINERPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLCOMBINERINPUTNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLCOMBINEROUTPUTNVPROC) (GLenum stage, GLenum portion, GLenum abOutput, GLenum cdOutput, GLenum sumOutput, GLenum scale, GLenum bias, GLboolean abDotProduct, GLboolean cdDotProduct, GLboolean muxSum); -typedef void (APIENTRYP PFNGLFINALCOMBINERINPUTNVPROC) (GLenum variable, GLenum input, GLenum mapping, GLenum componentUsage); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERINPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERFVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINEROUTPUTPARAMETERIVNVPROC) (GLenum stage, GLenum portion, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERFVNVPROC) (GLenum variable, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETFINALCOMBINERINPUTPARAMETERIVNVPROC) (GLenum variable, GLenum pname, GLint *params); -#endif - -#ifndef GL_NV_fog_distance -#define GL_NV_fog_distance 1 -#endif - -#ifndef GL_NV_texgen_emboss -#define GL_NV_texgen_emboss 1 -#endif - -#ifndef GL_NV_blend_square -#define GL_NV_blend_square 1 -#endif - -#ifndef GL_NV_texture_env_combine4 -#define GL_NV_texture_env_combine4 1 -#endif - -#ifndef GL_MESA_resize_buffers -#define GL_MESA_resize_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glResizeBuffersMESA (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRESIZEBUFFERSMESAPROC) (void); -#endif - -#ifndef GL_MESA_window_pos -#define GL_MESA_window_pos 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glWindowPos2dMESA (GLdouble x, GLdouble y); -GLAPI void APIENTRY glWindowPos2dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos2fMESA (GLfloat x, GLfloat y); -GLAPI void APIENTRY glWindowPos2fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos2iMESA (GLint x, GLint y); -GLAPI void APIENTRY glWindowPos2ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos2sMESA (GLshort x, GLshort y); -GLAPI void APIENTRY glWindowPos2svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos3dMESA (GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glWindowPos3dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos3fMESA (GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glWindowPos3fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos3iMESA (GLint x, GLint y, GLint z); -GLAPI void APIENTRY glWindowPos3ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos3sMESA (GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glWindowPos3svMESA (const GLshort *v); -GLAPI void APIENTRY glWindowPos4dMESA (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glWindowPos4dvMESA (const GLdouble *v); -GLAPI void APIENTRY glWindowPos4fMESA (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glWindowPos4fvMESA (const GLfloat *v); -GLAPI void APIENTRY glWindowPos4iMESA (GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glWindowPos4ivMESA (const GLint *v); -GLAPI void APIENTRY glWindowPos4sMESA (GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glWindowPos4svMESA (const GLshort *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLWINDOWPOS2DMESAPROC) (GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLWINDOWPOS2DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2FMESAPROC) (GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLWINDOWPOS2FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2IMESAPROC) (GLint x, GLint y); -typedef void (APIENTRYP PFNGLWINDOWPOS2IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS2SMESAPROC) (GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLWINDOWPOS2SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3DMESAPROC) (GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLWINDOWPOS3DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3FMESAPROC) (GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLWINDOWPOS3FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3IMESAPROC) (GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLWINDOWPOS3IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS3SMESAPROC) (GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLWINDOWPOS3SVMESAPROC) (const GLshort *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4DMESAPROC) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLWINDOWPOS4DVMESAPROC) (const GLdouble *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4FMESAPROC) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLWINDOWPOS4FVMESAPROC) (const GLfloat *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4IMESAPROC) (GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLWINDOWPOS4IVMESAPROC) (const GLint *v); -typedef void (APIENTRYP PFNGLWINDOWPOS4SMESAPROC) (GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLWINDOWPOS4SVMESAPROC) (const GLshort *v); -#endif - -#ifndef GL_IBM_cull_vertex -#define GL_IBM_cull_vertex 1 -#endif - -#ifndef GL_IBM_multimode_draw_arrays -#define GL_IBM_multimode_draw_arrays 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiModeDrawArraysIBM (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -GLAPI void APIENTRY glMultiModeDrawElementsIBM (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIMODEDRAWARRAYSIBMPROC) (const GLenum *mode, const GLint *first, const GLsizei *count, GLsizei primcount, GLint modestride); -typedef void (APIENTRYP PFNGLMULTIMODEDRAWELEMENTSIBMPROC) (const GLenum *mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, GLint modestride); -#endif - -#ifndef GL_IBM_vertex_array_lists -#define GL_IBM_vertex_array_lists 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glSecondaryColorPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glEdgeFlagPointerListIBM (GLint stride, const GLboolean* *pointer, GLint ptrstride); -GLAPI void APIENTRY glFogCoordPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glIndexPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glNormalPointerListIBM (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glTexCoordPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -GLAPI void APIENTRY glVertexPointerListIBM (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLEDGEFLAGPOINTERLISTIBMPROC) (GLint stride, const GLboolean* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLFOGCOORDPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLINDEXPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLNORMALPOINTERLISTIBMPROC) (GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLTEXCOORDPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -typedef void (APIENTRYP PFNGLVERTEXPOINTERLISTIBMPROC) (GLint size, GLenum type, GLint stride, const GLvoid* *pointer, GLint ptrstride); -#endif - -#ifndef GL_SGIX_subsample -#define GL_SGIX_subsample 1 -#endif - -#ifndef GL_SGIX_ycrcba -#define GL_SGIX_ycrcba 1 -#endif - -#ifndef GL_SGIX_ycrcb_subsample -#define GL_SGIX_ycrcb_subsample 1 -#endif - -#ifndef GL_SGIX_depth_pass_instrument -#define GL_SGIX_depth_pass_instrument 1 -#endif - -#ifndef GL_3DFX_texture_compression_FXT1 -#define GL_3DFX_texture_compression_FXT1 1 -#endif - -#ifndef GL_3DFX_multisample -#define GL_3DFX_multisample 1 -#endif - -#ifndef GL_3DFX_tbuffer -#define GL_3DFX_tbuffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTbufferMask3DFX (GLuint mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTBUFFERMASK3DFXPROC) (GLuint mask); -#endif - -#ifndef GL_EXT_multisample -#define GL_EXT_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSampleMaskEXT (GLclampf value, GLboolean invert); -GLAPI void APIENTRY glSamplePatternEXT (GLenum pattern); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSAMPLEMASKEXTPROC) (GLclampf value, GLboolean invert); -typedef void (APIENTRYP PFNGLSAMPLEPATTERNEXTPROC) (GLenum pattern); -#endif - -#ifndef GL_SGIX_vertex_preclip -#define GL_SGIX_vertex_preclip 1 -#endif - -#ifndef GL_SGIX_convolution_accuracy -#define GL_SGIX_convolution_accuracy 1 -#endif - -#ifndef GL_SGIX_resample -#define GL_SGIX_resample 1 -#endif - -#ifndef GL_SGIS_point_line_texgen -#define GL_SGIS_point_line_texgen 1 -#endif - -#ifndef GL_SGIS_texture_color_mask -#define GL_SGIS_texture_color_mask 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureColorMaskSGIS (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURECOLORMASKSGISPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); -#endif - -#ifndef GL_SGIX_igloo_interface -#define GL_SGIX_igloo_interface 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glIglooInterfaceSGIX (GLenum pname, const GLvoid *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLIGLOOINTERFACESGIXPROC) (GLenum pname, const GLvoid *params); -#endif - -#ifndef GL_EXT_texture_env_dot3 -#define GL_EXT_texture_env_dot3 1 -#endif - -#ifndef GL_ATI_texture_mirror_once -#define GL_ATI_texture_mirror_once 1 -#endif - -#ifndef GL_NV_fence -#define GL_NV_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDeleteFencesNV (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glGenFencesNV (GLsizei n, GLuint *fences); -GLAPI GLboolean APIENTRY glIsFenceNV (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceNV (GLuint fence); -GLAPI void APIENTRY glGetFenceivNV (GLuint fence, GLenum pname, GLint *params); -GLAPI void APIENTRY glFinishFenceNV (GLuint fence); -GLAPI void APIENTRY glSetFenceNV (GLuint fence, GLenum condition); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDELETEFENCESNVPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLGENFENCESNVPROC) (GLsizei n, GLuint *fences); -typedef GLboolean (APIENTRYP PFNGLISFENCENVPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLGETFENCEIVNVPROC) (GLuint fence, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFINISHFENCENVPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLSETFENCENVPROC) (GLuint fence, GLenum condition); -#endif - -#ifndef GL_NV_evaluators -#define GL_NV_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -GLAPI void APIENTRY glMapParameterivNV (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMapParameterfvNV (GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetMapControlPointsNV (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -GLAPI void APIENTRY glGetMapParameterivNV (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapParameterfvNV (GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMapAttribParameterivNV (GLenum target, GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMapAttribParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glEvalMapsNV (GLenum target, GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLint uorder, GLint vorder, GLboolean packed, const GLvoid *points); -typedef void (APIENTRYP PFNGLMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPCONTROLPOINTSNVPROC) (GLenum target, GLuint index, GLenum type, GLsizei ustride, GLsizei vstride, GLboolean packed, GLvoid *points); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERIVNVPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPPARAMETERFVNVPROC) (GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERIVNVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMAPATTRIBPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLEVALMAPSNVPROC) (GLenum target, GLenum mode); -#endif - -#ifndef GL_NV_packed_depth_stencil -#define GL_NV_packed_depth_stencil 1 -#endif - -#ifndef GL_NV_register_combiners2 -#define GL_NV_register_combiners2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCombinerStageParameterfvNV (GLenum stage, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glGetCombinerStageParameterfvNV (GLenum stage, GLenum pname, GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETCOMBINERSTAGEPARAMETERFVNVPROC) (GLenum stage, GLenum pname, GLfloat *params); -#endif - -#ifndef GL_NV_texture_compression_vtc -#define GL_NV_texture_compression_vtc 1 -#endif - -#ifndef GL_NV_texture_rectangle -#define GL_NV_texture_rectangle 1 -#endif - -#ifndef GL_NV_texture_shader -#define GL_NV_texture_shader 1 -#endif - -#ifndef GL_NV_texture_shader2 -#define GL_NV_texture_shader2 1 -#endif - -#ifndef GL_NV_vertex_array_range2 -#define GL_NV_vertex_array_range2 1 -#endif - -#ifndef GL_NV_vertex_program -#define GL_NV_vertex_program 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glAreProgramsResidentNV (GLsizei n, const GLuint *programs, GLboolean *residences); -GLAPI void APIENTRY glBindProgramNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glExecuteProgramNV (GLenum target, GLuint id, const GLfloat *params); -GLAPI void APIENTRY glGenProgramsNV (GLsizei n, GLuint *programs); -GLAPI void APIENTRY glGetProgramParameterdvNV (GLenum target, GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetProgramParameterfvNV (GLenum target, GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetProgramivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetProgramStringNV (GLuint id, GLenum pname, GLubyte *program); -GLAPI void APIENTRY glGetTrackMatrixivNV (GLenum target, GLuint address, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribdvNV (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetVertexAttribfvNV (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribivNV (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribPointervNV (GLuint index, GLenum pname, GLvoid* *pointer); -GLAPI GLboolean APIENTRY glIsProgramNV (GLuint id); -GLAPI void APIENTRY glLoadProgramNV (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -GLAPI void APIENTRY glProgramParameter4dNV (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramParameter4dvNV (GLenum target, GLuint index, const GLdouble *v); -GLAPI void APIENTRY glProgramParameter4fNV (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramParameter4fvNV (GLenum target, GLuint index, const GLfloat *v); -GLAPI void APIENTRY glProgramParameters4dvNV (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glProgramParameters4fvNV (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glRequestResidentProgramsNV (GLsizei n, const GLuint *programs); -GLAPI void APIENTRY glTrackMatrixNV (GLenum target, GLuint address, GLenum matrix, GLenum transform); -GLAPI void APIENTRY glVertexAttribPointerNV (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glVertexAttrib1dNV (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttrib1dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib1fNV (GLuint index, GLfloat x); -GLAPI void APIENTRY glVertexAttrib1fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib1sNV (GLuint index, GLshort x); -GLAPI void APIENTRY glVertexAttrib1svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib2dNV (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttrib2dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib2fNV (GLuint index, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexAttrib2fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib2sNV (GLuint index, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexAttrib2svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib3dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttrib3dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib3fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexAttrib3fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib3sNV (GLuint index, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexAttrib3svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4dNV (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttrib4dvNV (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttrib4fNV (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexAttrib4fvNV (GLuint index, const GLfloat *v); -GLAPI void APIENTRY glVertexAttrib4sNV (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexAttrib4svNV (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttrib4ubNV (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -GLAPI void APIENTRY glVertexAttrib4ubvNV (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribs1dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs1fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs1svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs2dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs2fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs2svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs3dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs3fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs3svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4dvNV (GLuint index, GLsizei count, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribs4fvNV (GLuint index, GLsizei count, const GLfloat *v); -GLAPI void APIENTRY glVertexAttribs4svNV (GLuint index, GLsizei count, const GLshort *v); -GLAPI void APIENTRY glVertexAttribs4ubvNV (GLuint index, GLsizei count, const GLubyte *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLAREPROGRAMSRESIDENTNVPROC) (GLsizei n, const GLuint *programs, GLboolean *residences); -typedef void (APIENTRYP PFNGLBINDPROGRAMNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETEPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLEXECUTEPROGRAMNVPROC) (GLenum target, GLuint id, const GLfloat *params); -typedef void (APIENTRYP PFNGLGENPROGRAMSNVPROC) (GLsizei n, GLuint *programs); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERDVNVPROC) (GLenum target, GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETPROGRAMPARAMETERFVNVPROC) (GLenum target, GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSTRINGNVPROC) (GLuint id, GLenum pname, GLubyte *program); -typedef void (APIENTRYP PFNGLGETTRACKMATRIXIVNVPROC) (GLenum target, GLuint address, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVNVPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVNVPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVNVPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVNVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); -typedef GLboolean (APIENTRYP PFNGLISPROGRAMNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLLOADPROGRAMNVPROC) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DNVPROC) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4DVNVPROC) (GLenum target, GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FNVPROC) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETER4FVNVPROC) (GLenum target, GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4DVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERS4FVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLREQUESTRESIDENTPROGRAMSNVPROC) (GLsizei n, const GLuint *programs); -typedef void (APIENTRYP PFNGLTRACKMATRIXNVPROC) (GLenum target, GLuint address, GLenum matrix, GLenum transform); -typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERNVPROC) (GLuint index, GLint fsize, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DNVPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FNVPROC) (GLuint index, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SNVPROC) (GLuint index, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DNVPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FNVPROC) (GLuint index, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SNVPROC) (GLuint index, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DNVPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVNVPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FNVPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVNVPROC) (GLuint index, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SNVPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVNVPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBNVPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVNVPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4DVNVPROC) (GLuint index, GLsizei count, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4FVNVPROC) (GLuint index, GLsizei count, const GLfloat *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4SVNVPROC) (GLuint index, GLsizei count, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4UBVNVPROC) (GLuint index, GLsizei count, const GLubyte *v); -#endif - -#ifndef GL_SGIX_texture_coordinate_clamp -#define GL_SGIX_texture_coordinate_clamp 1 -#endif - -#ifndef GL_SGIX_scalebias_hint -#define GL_SGIX_scalebias_hint 1 -#endif - -#ifndef GL_OML_interlace -#define GL_OML_interlace 1 -#endif - -#ifndef GL_OML_subsample -#define GL_OML_subsample 1 -#endif - -#ifndef GL_OML_resample -#define GL_OML_resample 1 -#endif - -#ifndef GL_NV_copy_depth_to_color -#define GL_NV_copy_depth_to_color 1 -#endif - -#ifndef GL_ATI_envmap_bumpmap -#define GL_ATI_envmap_bumpmap 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBumpParameterivATI (GLenum pname, const GLint *param); -GLAPI void APIENTRY glTexBumpParameterfvATI (GLenum pname, const GLfloat *param); -GLAPI void APIENTRY glGetTexBumpParameterivATI (GLenum pname, GLint *param); -GLAPI void APIENTRY glGetTexBumpParameterfvATI (GLenum pname, GLfloat *param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERIVATIPROC) (GLenum pname, const GLint *param); -typedef void (APIENTRYP PFNGLTEXBUMPPARAMETERFVATIPROC) (GLenum pname, const GLfloat *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERIVATIPROC) (GLenum pname, GLint *param); -typedef void (APIENTRYP PFNGLGETTEXBUMPPARAMETERFVATIPROC) (GLenum pname, GLfloat *param); -#endif - -#ifndef GL_ATI_fragment_shader -#define GL_ATI_fragment_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glGenFragmentShadersATI (GLuint range); -GLAPI void APIENTRY glBindFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glDeleteFragmentShaderATI (GLuint id); -GLAPI void APIENTRY glBeginFragmentShaderATI (void); -GLAPI void APIENTRY glEndFragmentShaderATI (void); -GLAPI void APIENTRY glPassTexCoordATI (GLuint dst, GLuint coord, GLenum swizzle); -GLAPI void APIENTRY glSampleMapATI (GLuint dst, GLuint interp, GLenum swizzle); -GLAPI void APIENTRY glColorFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glColorFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glColorFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glAlphaFragmentOp1ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -GLAPI void APIENTRY glAlphaFragmentOp2ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -GLAPI void APIENTRY glAlphaFragmentOp3ATI (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -GLAPI void APIENTRY glSetFragmentShaderConstantATI (GLuint dst, const GLfloat *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLGENFRAGMENTSHADERSATIPROC) (GLuint range); -typedef void (APIENTRYP PFNGLBINDFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDELETEFRAGMENTSHADERATIPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLENDFRAGMENTSHADERATIPROC) (void); -typedef void (APIENTRYP PFNGLPASSTEXCOORDATIPROC) (GLuint dst, GLuint coord, GLenum swizzle); -typedef void (APIENTRYP PFNGLSAMPLEMAPATIPROC) (GLuint dst, GLuint interp, GLenum swizzle); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLCOLORFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMask, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP1ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP2ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod); -typedef void (APIENTRYP PFNGLALPHAFRAGMENTOP3ATIPROC) (GLenum op, GLuint dst, GLuint dstMod, GLuint arg1, GLuint arg1Rep, GLuint arg1Mod, GLuint arg2, GLuint arg2Rep, GLuint arg2Mod, GLuint arg3, GLuint arg3Rep, GLuint arg3Mod); -typedef void (APIENTRYP PFNGLSETFRAGMENTSHADERCONSTANTATIPROC) (GLuint dst, const GLfloat *value); -#endif - -#ifndef GL_ATI_pn_triangles -#define GL_ATI_pn_triangles 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPNTrianglesiATI (GLenum pname, GLint param); -GLAPI void APIENTRY glPNTrianglesfATI (GLenum pname, GLfloat param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPNTRIANGLESIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPNTRIANGLESFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_vertex_array_object -#define GL_ATI_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLuint APIENTRY glNewObjectBufferATI (GLsizei size, const GLvoid *pointer, GLenum usage); -GLAPI GLboolean APIENTRY glIsObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUpdateObjectBufferATI (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -GLAPI void APIENTRY glGetObjectBufferfvATI (GLuint buffer, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetObjectBufferivATI (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glFreeObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glArrayObjectATI (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetArrayObjectfvATI (GLenum array, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetArrayObjectivATI (GLenum array, GLenum pname, GLint *params); -GLAPI void APIENTRY glVariantArrayObjectATI (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVariantArrayObjectfvATI (GLuint id, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVariantArrayObjectivATI (GLuint id, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLuint (APIENTRYP PFNGLNEWOBJECTBUFFERATIPROC) (GLsizei size, const GLvoid *pointer, GLenum usage); -typedef GLboolean (APIENTRYP PFNGLISOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUPDATEOBJECTBUFFERATIPROC) (GLuint buffer, GLuint offset, GLsizei size, const GLvoid *pointer, GLenum preserve); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERFVATIPROC) (GLuint buffer, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETOBJECTBUFFERIVATIPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLFREEOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLARRAYOBJECTATIPROC) (GLenum array, GLint size, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTFVATIPROC) (GLenum array, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETARRAYOBJECTIVATIPROC) (GLenum array, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLVARIANTARRAYOBJECTATIPROC) (GLuint id, GLenum type, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTFVATIPROC) (GLuint id, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVARIANTARRAYOBJECTIVATIPROC) (GLuint id, GLenum pname, GLint *params); -#endif - -#ifndef GL_EXT_vertex_shader -#define GL_EXT_vertex_shader 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVertexShaderEXT (void); -GLAPI void APIENTRY glEndVertexShaderEXT (void); -GLAPI void APIENTRY glBindVertexShaderEXT (GLuint id); -GLAPI GLuint APIENTRY glGenVertexShadersEXT (GLuint range); -GLAPI void APIENTRY glDeleteVertexShaderEXT (GLuint id); -GLAPI void APIENTRY glShaderOp1EXT (GLenum op, GLuint res, GLuint arg1); -GLAPI void APIENTRY glShaderOp2EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -GLAPI void APIENTRY glShaderOp3EXT (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -GLAPI void APIENTRY glSwizzleEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glWriteMaskEXT (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -GLAPI void APIENTRY glInsertComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI void APIENTRY glExtractComponentEXT (GLuint res, GLuint src, GLuint num); -GLAPI GLuint APIENTRY glGenSymbolsEXT (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -GLAPI void APIENTRY glSetInvariantEXT (GLuint id, GLenum type, const GLvoid *addr); -GLAPI void APIENTRY glSetLocalConstantEXT (GLuint id, GLenum type, const GLvoid *addr); -GLAPI void APIENTRY glVariantbvEXT (GLuint id, const GLbyte *addr); -GLAPI void APIENTRY glVariantsvEXT (GLuint id, const GLshort *addr); -GLAPI void APIENTRY glVariantivEXT (GLuint id, const GLint *addr); -GLAPI void APIENTRY glVariantfvEXT (GLuint id, const GLfloat *addr); -GLAPI void APIENTRY glVariantdvEXT (GLuint id, const GLdouble *addr); -GLAPI void APIENTRY glVariantubvEXT (GLuint id, const GLubyte *addr); -GLAPI void APIENTRY glVariantusvEXT (GLuint id, const GLushort *addr); -GLAPI void APIENTRY glVariantuivEXT (GLuint id, const GLuint *addr); -GLAPI void APIENTRY glVariantPointerEXT (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -GLAPI void APIENTRY glEnableVariantClientStateEXT (GLuint id); -GLAPI void APIENTRY glDisableVariantClientStateEXT (GLuint id); -GLAPI GLuint APIENTRY glBindLightParameterEXT (GLenum light, GLenum value); -GLAPI GLuint APIENTRY glBindMaterialParameterEXT (GLenum face, GLenum value); -GLAPI GLuint APIENTRY glBindTexGenParameterEXT (GLenum unit, GLenum coord, GLenum value); -GLAPI GLuint APIENTRY glBindTextureUnitParameterEXT (GLenum unit, GLenum value); -GLAPI GLuint APIENTRY glBindParameterEXT (GLenum value); -GLAPI GLboolean APIENTRY glIsVariantEnabledEXT (GLuint id, GLenum cap); -GLAPI void APIENTRY glGetVariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetVariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetVariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetVariantPointervEXT (GLuint id, GLenum value, GLvoid* *data); -GLAPI void APIENTRY glGetInvariantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetInvariantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetInvariantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -GLAPI void APIENTRY glGetLocalConstantBooleanvEXT (GLuint id, GLenum value, GLboolean *data); -GLAPI void APIENTRY glGetLocalConstantIntegervEXT (GLuint id, GLenum value, GLint *data); -GLAPI void APIENTRY glGetLocalConstantFloatvEXT (GLuint id, GLenum value, GLfloat *data); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLENDVERTEXSHADEREXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDVERTEXSHADEREXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLGENVERTEXSHADERSEXTPROC) (GLuint range); -typedef void (APIENTRYP PFNGLDELETEVERTEXSHADEREXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLSHADEROP1EXTPROC) (GLenum op, GLuint res, GLuint arg1); -typedef void (APIENTRYP PFNGLSHADEROP2EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2); -typedef void (APIENTRYP PFNGLSHADEROP3EXTPROC) (GLenum op, GLuint res, GLuint arg1, GLuint arg2, GLuint arg3); -typedef void (APIENTRYP PFNGLSWIZZLEEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLWRITEMASKEXTPROC) (GLuint res, GLuint in, GLenum outX, GLenum outY, GLenum outZ, GLenum outW); -typedef void (APIENTRYP PFNGLINSERTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef void (APIENTRYP PFNGLEXTRACTCOMPONENTEXTPROC) (GLuint res, GLuint src, GLuint num); -typedef GLuint (APIENTRYP PFNGLGENSYMBOLSEXTPROC) (GLenum datatype, GLenum storagetype, GLenum range, GLuint components); -typedef void (APIENTRYP PFNGLSETINVARIANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLSETLOCALCONSTANTEXTPROC) (GLuint id, GLenum type, const GLvoid *addr); -typedef void (APIENTRYP PFNGLVARIANTBVEXTPROC) (GLuint id, const GLbyte *addr); -typedef void (APIENTRYP PFNGLVARIANTSVEXTPROC) (GLuint id, const GLshort *addr); -typedef void (APIENTRYP PFNGLVARIANTIVEXTPROC) (GLuint id, const GLint *addr); -typedef void (APIENTRYP PFNGLVARIANTFVEXTPROC) (GLuint id, const GLfloat *addr); -typedef void (APIENTRYP PFNGLVARIANTDVEXTPROC) (GLuint id, const GLdouble *addr); -typedef void (APIENTRYP PFNGLVARIANTUBVEXTPROC) (GLuint id, const GLubyte *addr); -typedef void (APIENTRYP PFNGLVARIANTUSVEXTPROC) (GLuint id, const GLushort *addr); -typedef void (APIENTRYP PFNGLVARIANTUIVEXTPROC) (GLuint id, const GLuint *addr); -typedef void (APIENTRYP PFNGLVARIANTPOINTEREXTPROC) (GLuint id, GLenum type, GLuint stride, const GLvoid *addr); -typedef void (APIENTRYP PFNGLENABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef void (APIENTRYP PFNGLDISABLEVARIANTCLIENTSTATEEXTPROC) (GLuint id); -typedef GLuint (APIENTRYP PFNGLBINDLIGHTPARAMETEREXTPROC) (GLenum light, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDMATERIALPARAMETEREXTPROC) (GLenum face, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXGENPARAMETEREXTPROC) (GLenum unit, GLenum coord, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDTEXTUREUNITPARAMETEREXTPROC) (GLenum unit, GLenum value); -typedef GLuint (APIENTRYP PFNGLBINDPARAMETEREXTPROC) (GLenum value); -typedef GLboolean (APIENTRYP PFNGLISVARIANTENABLEDEXTPROC) (GLuint id, GLenum cap); -typedef void (APIENTRYP PFNGLGETVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETVARIANTPOINTERVEXTPROC) (GLuint id, GLenum value, GLvoid* *data); -typedef void (APIENTRYP PFNGLGETINVARIANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINVARIANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETINVARIANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTBOOLEANVEXTPROC) (GLuint id, GLenum value, GLboolean *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTINTEGERVEXTPROC) (GLuint id, GLenum value, GLint *data); -typedef void (APIENTRYP PFNGLGETLOCALCONSTANTFLOATVEXTPROC) (GLuint id, GLenum value, GLfloat *data); -#endif - -#ifndef GL_ATI_vertex_streams -#define GL_ATI_vertex_streams 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexStream1sATI (GLenum stream, GLshort x); -GLAPI void APIENTRY glVertexStream1svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream1iATI (GLenum stream, GLint x); -GLAPI void APIENTRY glVertexStream1ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream1fATI (GLenum stream, GLfloat x); -GLAPI void APIENTRY glVertexStream1fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream1dATI (GLenum stream, GLdouble x); -GLAPI void APIENTRY glVertexStream1dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream2sATI (GLenum stream, GLshort x, GLshort y); -GLAPI void APIENTRY glVertexStream2svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream2iATI (GLenum stream, GLint x, GLint y); -GLAPI void APIENTRY glVertexStream2ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream2fATI (GLenum stream, GLfloat x, GLfloat y); -GLAPI void APIENTRY glVertexStream2fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream2dATI (GLenum stream, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexStream2dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream3sATI (GLenum stream, GLshort x, GLshort y, GLshort z); -GLAPI void APIENTRY glVertexStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream3iATI (GLenum stream, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream3fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glVertexStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream3dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glVertexStream4sATI (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -GLAPI void APIENTRY glVertexStream4svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glVertexStream4iATI (GLenum stream, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexStream4ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glVertexStream4fATI (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glVertexStream4fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glVertexStream4dATI (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexStream4dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glNormalStream3bATI (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -GLAPI void APIENTRY glNormalStream3bvATI (GLenum stream, const GLbyte *coords); -GLAPI void APIENTRY glNormalStream3sATI (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -GLAPI void APIENTRY glNormalStream3svATI (GLenum stream, const GLshort *coords); -GLAPI void APIENTRY glNormalStream3iATI (GLenum stream, GLint nx, GLint ny, GLint nz); -GLAPI void APIENTRY glNormalStream3ivATI (GLenum stream, const GLint *coords); -GLAPI void APIENTRY glNormalStream3fATI (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -GLAPI void APIENTRY glNormalStream3fvATI (GLenum stream, const GLfloat *coords); -GLAPI void APIENTRY glNormalStream3dATI (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -GLAPI void APIENTRY glNormalStream3dvATI (GLenum stream, const GLdouble *coords); -GLAPI void APIENTRY glClientActiveVertexStreamATI (GLenum stream); -GLAPI void APIENTRY glVertexBlendEnviATI (GLenum pname, GLint param); -GLAPI void APIENTRY glVertexBlendEnvfATI (GLenum pname, GLfloat param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SATIPROC) (GLenum stream, GLshort x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IATIPROC) (GLenum stream, GLint x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FATIPROC) (GLenum stream, GLfloat x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DATIPROC) (GLenum stream, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXSTREAM1DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SATIPROC) (GLenum stream, GLshort x, GLshort y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IATIPROC) (GLenum stream, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FATIPROC) (GLenum stream, GLfloat x, GLfloat y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DATIPROC) (GLenum stream, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXSTREAM2DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IATIPROC) (GLenum stream, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SATIPROC) (GLenum stream, GLshort x, GLshort y, GLshort z, GLshort w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IATIPROC) (GLenum stream, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FATIPROC) (GLenum stream, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DATIPROC) (GLenum stream, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXSTREAM4DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BATIPROC) (GLenum stream, GLbyte nx, GLbyte ny, GLbyte nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3BVATIPROC) (GLenum stream, const GLbyte *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SATIPROC) (GLenum stream, GLshort nx, GLshort ny, GLshort nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3SVATIPROC) (GLenum stream, const GLshort *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IATIPROC) (GLenum stream, GLint nx, GLint ny, GLint nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3IVATIPROC) (GLenum stream, const GLint *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FATIPROC) (GLenum stream, GLfloat nx, GLfloat ny, GLfloat nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3FVATIPROC) (GLenum stream, const GLfloat *coords); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DATIPROC) (GLenum stream, GLdouble nx, GLdouble ny, GLdouble nz); -typedef void (APIENTRYP PFNGLNORMALSTREAM3DVATIPROC) (GLenum stream, const GLdouble *coords); -typedef void (APIENTRYP PFNGLCLIENTACTIVEVERTEXSTREAMATIPROC) (GLenum stream); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVIATIPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLVERTEXBLENDENVFATIPROC) (GLenum pname, GLfloat param); -#endif - -#ifndef GL_ATI_element_array -#define GL_ATI_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerATI (GLenum type, const GLvoid *pointer); -GLAPI void APIENTRY glDrawElementArrayATI (GLenum mode, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayATI (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERATIPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYATIPROC) (GLenum mode, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYATIPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count); -#endif - -#ifndef GL_SUN_mesh_array -#define GL_SUN_mesh_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawMeshArraysSUN (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWMESHARRAYSSUNPROC) (GLenum mode, GLint first, GLsizei count, GLsizei width); -#endif - -#ifndef GL_SUN_slice_accum -#define GL_SUN_slice_accum 1 -#endif - -#ifndef GL_NV_multisample_filter_hint -#define GL_NV_multisample_filter_hint 1 -#endif - -#ifndef GL_NV_depth_clamp -#define GL_NV_depth_clamp 1 -#endif - -#ifndef GL_NV_occlusion_query -#define GL_NV_occlusion_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenOcclusionQueriesNV (GLsizei n, GLuint *ids); -GLAPI void APIENTRY glDeleteOcclusionQueriesNV (GLsizei n, const GLuint *ids); -GLAPI GLboolean APIENTRY glIsOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glBeginOcclusionQueryNV (GLuint id); -GLAPI void APIENTRY glEndOcclusionQueryNV (void); -GLAPI void APIENTRY glGetOcclusionQueryivNV (GLuint id, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetOcclusionQueryuivNV (GLuint id, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENOCCLUSIONQUERIESNVPROC) (GLsizei n, GLuint *ids); -typedef void (APIENTRYP PFNGLDELETEOCCLUSIONQUERIESNVPROC) (GLsizei n, const GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLBEGINOCCLUSIONQUERYNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLENDOCCLUSIONQUERYNVPROC) (void); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYIVNVPROC) (GLuint id, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETOCCLUSIONQUERYUIVNVPROC) (GLuint id, GLenum pname, GLuint *params); -#endif - -#ifndef GL_NV_point_sprite -#define GL_NV_point_sprite 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPointParameteriNV (GLenum pname, GLint param); -GLAPI void APIENTRY glPointParameterivNV (GLenum pname, const GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPOINTPARAMETERINVPROC) (GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLPOINTPARAMETERIVNVPROC) (GLenum pname, const GLint *params); -#endif - -#ifndef GL_NV_texture_shader3 -#define GL_NV_texture_shader3 1 -#endif - -#ifndef GL_NV_vertex_program1_1 -#define GL_NV_vertex_program1_1 1 -#endif - -#ifndef GL_EXT_shadow_funcs -#define GL_EXT_shadow_funcs 1 -#endif - -#ifndef GL_EXT_stencil_two_side -#define GL_EXT_stencil_two_side 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glActiveStencilFaceEXT (GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLACTIVESTENCILFACEEXTPROC) (GLenum face); -#endif - -#ifndef GL_ATI_text_fragment_shader -#define GL_ATI_text_fragment_shader 1 -#endif - -#ifndef GL_APPLE_client_storage -#define GL_APPLE_client_storage 1 -#endif - -#ifndef GL_APPLE_element_array -#define GL_APPLE_element_array 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glElementPointerAPPLE (GLenum type, const GLvoid *pointer); -GLAPI void APIENTRY glDrawElementArrayAPPLE (GLenum mode, GLint first, GLsizei count); -GLAPI void APIENTRY glDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -GLAPI void APIENTRY glMultiDrawElementArrayAPPLE (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -GLAPI void APIENTRY glMultiDrawRangeElementArrayAPPLE (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLELEMENTPOINTERAPPLEPROC) (GLenum type, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTARRAYAPPLEPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); -typedef void (APIENTRYP PFNGLMULTIDRAWRANGEELEMENTARRAYAPPLEPROC) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); -#endif - -#ifndef GL_APPLE_fence -#define GL_APPLE_fence 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenFencesAPPLE (GLsizei n, GLuint *fences); -GLAPI void APIENTRY glDeleteFencesAPPLE (GLsizei n, const GLuint *fences); -GLAPI void APIENTRY glSetFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glIsFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestFenceAPPLE (GLuint fence); -GLAPI void APIENTRY glFinishFenceAPPLE (GLuint fence); -GLAPI GLboolean APIENTRY glTestObjectAPPLE (GLenum object, GLuint name); -GLAPI void APIENTRY glFinishObjectAPPLE (GLenum object, GLint name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENFENCESAPPLEPROC) (GLsizei n, GLuint *fences); -typedef void (APIENTRYP PFNGLDELETEFENCESAPPLEPROC) (GLsizei n, const GLuint *fences); -typedef void (APIENTRYP PFNGLSETFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLISFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTFENCEAPPLEPROC) (GLuint fence); -typedef void (APIENTRYP PFNGLFINISHFENCEAPPLEPROC) (GLuint fence); -typedef GLboolean (APIENTRYP PFNGLTESTOBJECTAPPLEPROC) (GLenum object, GLuint name); -typedef void (APIENTRYP PFNGLFINISHOBJECTAPPLEPROC) (GLenum object, GLint name); -#endif - -#ifndef GL_APPLE_vertex_array_object -#define GL_APPLE_vertex_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindVertexArrayAPPLE (GLuint array); -GLAPI void APIENTRY glDeleteVertexArraysAPPLE (GLsizei n, const GLuint *arrays); -GLAPI void APIENTRY glGenVertexArraysAPPLE (GLsizei n, GLuint *arrays); -GLAPI GLboolean APIENTRY glIsVertexArrayAPPLE (GLuint array); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDVERTEXARRAYAPPLEPROC) (GLuint array); -typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSAPPLEPROC) (GLsizei n, const GLuint *arrays); -typedef void (APIENTRYP PFNGLGENVERTEXARRAYSAPPLEPROC) (GLsizei n, GLuint *arrays); -typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYAPPLEPROC) (GLuint array); -#endif - -#ifndef GL_APPLE_vertex_array_range -#define GL_APPLE_vertex_array_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexArrayRangeAPPLE (GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glFlushVertexArrayRangeAPPLE (GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glVertexArrayParameteriAPPLE (GLenum pname, GLint param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHVERTEXARRAYRANGEAPPLEPROC) (GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLVERTEXARRAYPARAMETERIAPPLEPROC) (GLenum pname, GLint param); -#endif - -#ifndef GL_APPLE_ycbcr_422 -#define GL_APPLE_ycbcr_422 1 -#endif - -#ifndef GL_S3_s3tc -#define GL_S3_s3tc 1 -#endif - -#ifndef GL_ATI_draw_buffers -#define GL_ATI_draw_buffers 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawBuffersATI (GLsizei n, const GLenum *bufs); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWBUFFERSATIPROC) (GLsizei n, const GLenum *bufs); -#endif - -#ifndef GL_ATI_pixel_format_float -#define GL_ATI_pixel_format_float 1 -/* This is really a WGL extension, but defines some associated GL enums. - * ATI does not export "GL_ATI_pixel_format_float" in the GL_EXTENSIONS string. - */ -#endif - -#ifndef GL_ATI_texture_env_combine3 -#define GL_ATI_texture_env_combine3 1 -#endif - -#ifndef GL_ATI_texture_float -#define GL_ATI_texture_float 1 -#endif - -#ifndef GL_NV_float_buffer -#define GL_NV_float_buffer 1 -#endif - -#ifndef GL_NV_fragment_program -#define GL_NV_fragment_program 1 -/* Some NV_fragment_program entry points are shared with ARB_vertex_program. */ -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramNamedParameter4fNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glProgramNamedParameter4dNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramNamedParameter4fvNV (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -GLAPI void APIENTRY glProgramNamedParameter4dvNV (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -GLAPI void APIENTRY glGetProgramNamedParameterfvNV (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -GLAPI void APIENTRY glGetProgramNamedParameterdvNV (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4FVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLfloat *v); -typedef void (APIENTRYP PFNGLPROGRAMNAMEDPARAMETER4DVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, const GLdouble *v); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERFVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLfloat *params); -typedef void (APIENTRYP PFNGLGETPROGRAMNAMEDPARAMETERDVNVPROC) (GLuint id, GLsizei len, const GLubyte *name, GLdouble *params); -#endif - -#ifndef GL_NV_half_float -#define GL_NV_half_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertex2hNV (GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertex2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex3hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertex3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertex4hNV (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertex4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glNormal3hNV (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -GLAPI void APIENTRY glNormal3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glColor4hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -GLAPI void APIENTRY glColor4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord1hNV (GLhalfNV s); -GLAPI void APIENTRY glTexCoord1hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord2hNV (GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glTexCoord2hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord3hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glTexCoord3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glTexCoord4hNV (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glTexCoord4hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord1hNV (GLenum target, GLhalfNV s); -GLAPI void APIENTRY glMultiTexCoord1hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord2hNV (GLenum target, GLhalfNV s, GLhalfNV t); -GLAPI void APIENTRY glMultiTexCoord2hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord3hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -GLAPI void APIENTRY glMultiTexCoord3hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glMultiTexCoord4hNV (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -GLAPI void APIENTRY glMultiTexCoord4hvNV (GLenum target, const GLhalfNV *v); -GLAPI void APIENTRY glFogCoordhNV (GLhalfNV fog); -GLAPI void APIENTRY glFogCoordhvNV (const GLhalfNV *fog); -GLAPI void APIENTRY glSecondaryColor3hNV (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -GLAPI void APIENTRY glSecondaryColor3hvNV (const GLhalfNV *v); -GLAPI void APIENTRY glVertexWeighthNV (GLhalfNV weight); -GLAPI void APIENTRY glVertexWeighthvNV (const GLhalfNV *weight); -GLAPI void APIENTRY glVertexAttrib1hNV (GLuint index, GLhalfNV x); -GLAPI void APIENTRY glVertexAttrib1hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib2hNV (GLuint index, GLhalfNV x, GLhalfNV y); -GLAPI void APIENTRY glVertexAttrib2hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib3hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -GLAPI void APIENTRY glVertexAttrib3hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttrib4hNV (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -GLAPI void APIENTRY glVertexAttrib4hvNV (GLuint index, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs1hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs2hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs3hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -GLAPI void APIENTRY glVertexAttribs4hvNV (GLuint index, GLsizei n, const GLhalfNV *v); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEX2HNVPROC) (GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEX2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX3HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEX3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEX4HNVPROC) (GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEX4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLNORMAL3HNVPROC) (GLhalfNV nx, GLhalfNV ny, GLhalfNV nz); -typedef void (APIENTRYP PFNGLNORMAL3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLCOLOR4HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue, GLhalfNV alpha); -typedef void (APIENTRYP PFNGLCOLOR4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD1HNVPROC) (GLhalfNV s); -typedef void (APIENTRYP PFNGLTEXCOORD1HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD2HNVPROC) (GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLTEXCOORD2HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD3HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLTEXCOORD3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLTEXCOORD4HNVPROC) (GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLTEXCOORD4HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HNVPROC) (GLenum target, GLhalfNV s); -typedef void (APIENTRYP PFNGLMULTITEXCOORD1HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t); -typedef void (APIENTRYP PFNGLMULTITEXCOORD2HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r); -typedef void (APIENTRYP PFNGLMULTITEXCOORD3HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HNVPROC) (GLenum target, GLhalfNV s, GLhalfNV t, GLhalfNV r, GLhalfNV q); -typedef void (APIENTRYP PFNGLMULTITEXCOORD4HVNVPROC) (GLenum target, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLFOGCOORDHNVPROC) (GLhalfNV fog); -typedef void (APIENTRYP PFNGLFOGCOORDHVNVPROC) (const GLhalfNV *fog); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HNVPROC) (GLhalfNV red, GLhalfNV green, GLhalfNV blue); -typedef void (APIENTRYP PFNGLSECONDARYCOLOR3HVNVPROC) (const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHNVPROC) (GLhalfNV weight); -typedef void (APIENTRYP PFNGLVERTEXWEIGHTHVNVPROC) (const GLhalfNV *weight); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HNVPROC) (GLuint index, GLhalfNV x); -typedef void (APIENTRYP PFNGLVERTEXATTRIB1HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y); -typedef void (APIENTRYP PFNGLVERTEXATTRIB2HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z); -typedef void (APIENTRYP PFNGLVERTEXATTRIB3HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HNVPROC) (GLuint index, GLhalfNV x, GLhalfNV y, GLhalfNV z, GLhalfNV w); -typedef void (APIENTRYP PFNGLVERTEXATTRIB4HVNVPROC) (GLuint index, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS1HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS2HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS3HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBS4HVNVPROC) (GLuint index, GLsizei n, const GLhalfNV *v); -#endif - -#ifndef GL_NV_pixel_data_range -#define GL_NV_pixel_data_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPixelDataRangeNV (GLenum target, GLsizei length, GLvoid *pointer); -GLAPI void APIENTRY glFlushPixelDataRangeNV (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPIXELDATARANGENVPROC) (GLenum target, GLsizei length, GLvoid *pointer); -typedef void (APIENTRYP PFNGLFLUSHPIXELDATARANGENVPROC) (GLenum target); -#endif - -#ifndef GL_NV_primitive_restart -#define GL_NV_primitive_restart 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPrimitiveRestartNV (void); -GLAPI void APIENTRY glPrimitiveRestartIndexNV (GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTNVPROC) (void); -typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXNVPROC) (GLuint index); -#endif - -#ifndef GL_NV_texture_expand_normal -#define GL_NV_texture_expand_normal 1 -#endif - -#ifndef GL_NV_vertex_program2 -#define GL_NV_vertex_program2 1 -#endif - -#ifndef GL_ATI_map_object_buffer -#define GL_ATI_map_object_buffer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLvoid* APIENTRY glMapObjectBufferATI (GLuint buffer); -GLAPI void APIENTRY glUnmapObjectBufferATI (GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLvoid* (APIENTRYP PFNGLMAPOBJECTBUFFERATIPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLUNMAPOBJECTBUFFERATIPROC) (GLuint buffer); -#endif - -#ifndef GL_ATI_separate_stencil -#define GL_ATI_separate_stencil 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilOpSeparateATI (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -GLAPI void APIENTRY glStencilFuncSeparateATI (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEATIPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); -typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEATIPROC) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); -#endif - -#ifndef GL_ATI_vertex_attrib_array_object -#define GL_ATI_vertex_attrib_array_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribArrayObjectATI (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -GLAPI void APIENTRY glGetVertexAttribArrayObjectfvATI (GLuint index, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVertexAttribArrayObjectivATI (GLuint index, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBARRAYOBJECTATIPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, GLuint buffer, GLuint offset); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTFVATIPROC) (GLuint index, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBARRAYOBJECTIVATIPROC) (GLuint index, GLenum pname, GLint *params); -#endif - -#ifndef GL_OES_read_format -#define GL_OES_read_format 1 -#endif - -#ifndef GL_EXT_depth_bounds_test -#define GL_EXT_depth_bounds_test 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); -#endif - -#ifndef GL_EXT_texture_mirror_clamp -#define GL_EXT_texture_mirror_clamp 1 -#endif - -#ifndef GL_EXT_blend_equation_separate -#define GL_EXT_blend_equation_separate 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendEquationSeparateEXT (GLenum modeRGB, GLenum modeAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEEXTPROC) (GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_MESA_pack_invert -#define GL_MESA_pack_invert 1 -#endif - -#ifndef GL_MESA_ycbcr_texture -#define GL_MESA_ycbcr_texture 1 -#endif - -#ifndef GL_EXT_pixel_buffer_object -#define GL_EXT_pixel_buffer_object 1 -#endif - -#ifndef GL_NV_fragment_program_option -#define GL_NV_fragment_program_option 1 -#endif - -#ifndef GL_NV_fragment_program2 -#define GL_NV_fragment_program2 1 -#endif - -#ifndef GL_NV_vertex_program2_option -#define GL_NV_vertex_program2_option 1 -#endif - -#ifndef GL_NV_vertex_program3 -#define GL_NV_vertex_program3 1 -#endif - -#ifndef GL_EXT_framebuffer_object -#define GL_EXT_framebuffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLboolean APIENTRY glIsRenderbufferEXT (GLuint renderbuffer); -GLAPI void APIENTRY glBindRenderbufferEXT (GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glDeleteRenderbuffersEXT (GLsizei n, const GLuint *renderbuffers); -GLAPI void APIENTRY glGenRenderbuffersEXT (GLsizei n, GLuint *renderbuffers); -GLAPI void APIENTRY glRenderbufferStorageEXT (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetRenderbufferParameterivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI GLboolean APIENTRY glIsFramebufferEXT (GLuint framebuffer); -GLAPI void APIENTRY glBindFramebufferEXT (GLenum target, GLuint framebuffer); -GLAPI void APIENTRY glDeleteFramebuffersEXT (GLsizei n, const GLuint *framebuffers); -GLAPI void APIENTRY glGenFramebuffersEXT (GLsizei n, GLuint *framebuffers); -GLAPI GLenum APIENTRY glCheckFramebufferStatusEXT (GLenum target); -GLAPI void APIENTRY glFramebufferTexture1DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture2DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTexture3DEXT (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glFramebufferRenderbufferEXT (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetFramebufferAttachmentParameterivEXT (GLenum target, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateMipmapEXT (GLenum target); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFEREXTPROC) (GLuint renderbuffer); -typedef void (APIENTRYP PFNGLBINDRENDERBUFFEREXTPROC) (GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSEXTPROC) (GLsizei n, const GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLGENRENDERBUFFERSEXTPROC) (GLsizei n, GLuint *renderbuffers); -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEEXTPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFEREXTPROC) (GLuint framebuffer); -typedef void (APIENTRYP PFNGLBINDFRAMEBUFFEREXTPROC) (GLenum target, GLuint framebuffer); -typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSEXTPROC) (GLsizei n, const GLuint *framebuffers); -typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSEXTPROC) (GLsizei n, GLuint *framebuffers); -typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSEXTPROC) (GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DEXTPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFEREXTPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATEMIPMAPEXTPROC) (GLenum target); -#endif - -#ifndef GL_GREMEDY_string_marker -#define GL_GREMEDY_string_marker 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStringMarkerGREMEDY (GLsizei len, const GLvoid *string); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTRINGMARKERGREMEDYPROC) (GLsizei len, const GLvoid *string); -#endif - -#ifndef GL_EXT_packed_depth_stencil -#define GL_EXT_packed_depth_stencil 1 -#endif - -#ifndef GL_EXT_stencil_clear_tag -#define GL_EXT_stencil_clear_tag 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glStencilClearTagEXT (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSTENCILCLEARTAGEXTPROC) (GLsizei stencilTagBits, GLuint stencilClearTag); -#endif - -#ifndef GL_EXT_texture_sRGB -#define GL_EXT_texture_sRGB 1 -#endif - -#ifndef GL_EXT_framebuffer_blit -#define GL_EXT_framebuffer_blit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlitFramebufferEXT (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLITFRAMEBUFFEREXTPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); -#endif - -#ifndef GL_EXT_framebuffer_multisample -#define GL_EXT_framebuffer_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleEXT (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_MESAX_texture_stack -#define GL_MESAX_texture_stack 1 -#endif - -#ifndef GL_EXT_timer_query -#define GL_EXT_timer_query 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetQueryObjecti64vEXT (GLuint id, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetQueryObjectui64vEXT (GLuint id, GLenum pname, GLuint64EXT *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VEXTPROC) (GLuint id, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VEXTPROC) (GLuint id, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_gpu_program_parameters -#define GL_EXT_gpu_program_parameters 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramEnvParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramLocalParameters4fvEXT (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); -#endif - -#ifndef GL_APPLE_flush_buffer_range -#define GL_APPLE_flush_buffer_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferParameteriAPPLE (GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glFlushMappedBufferRangeAPPLE (GLenum target, GLintptr offset, GLsizeiptr size); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBUFFERPARAMETERIAPPLEPROC) (GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEAPPLEPROC) (GLenum target, GLintptr offset, GLsizeiptr size); -#endif - -#ifndef GL_NV_gpu_program4 -#define GL_NV_gpu_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramLocalParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramLocalParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramLocalParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramLocalParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramLocalParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramLocalParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParameterI4iNV (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glProgramEnvParameterI4ivNV (GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glProgramEnvParametersI4ivNV (GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramEnvParameterI4uiNV (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glProgramEnvParameterI4uivNV (GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glProgramEnvParametersI4uivNV (GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramLocalParameterIuivNV (GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIivNV (GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetProgramEnvParameterIuivNV (GLenum target, GLuint index, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMLOCALPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4INVPROC) (GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4IVNVPROC) (GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4IVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UINVPROC) (GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERI4UIVNVPROC) (GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMENVPARAMETERSI4UIVNVPROC) (GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMLOCALPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIIVNVPROC) (GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMENVPARAMETERIUIVNVPROC) (GLenum target, GLuint index, GLuint *params); -#endif - -#ifndef GL_NV_geometry_program4 -#define GL_NV_geometry_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramVertexLimitNV (GLenum target, GLint limit); -GLAPI void APIENTRY glFramebufferTextureEXT (GLenum target, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glFramebufferTextureLayerEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glFramebufferTextureFaceEXT (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMVERTEXLIMITNVPROC) (GLenum target, GLint limit); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYEREXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREFACEEXTPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); -#endif - -#ifndef GL_EXT_geometry_shader4 -#define GL_EXT_geometry_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramParameteriEXT (GLuint program, GLenum pname, GLint value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIEXTPROC) (GLuint program, GLenum pname, GLint value); -#endif - -#ifndef GL_NV_vertex_program4 -#define GL_NV_vertex_program4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribI1iEXT (GLuint index, GLint x); -GLAPI void APIENTRY glVertexAttribI2iEXT (GLuint index, GLint x, GLint y); -GLAPI void APIENTRY glVertexAttribI3iEXT (GLuint index, GLint x, GLint y, GLint z); -GLAPI void APIENTRY glVertexAttribI4iEXT (GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glVertexAttribI1uiEXT (GLuint index, GLuint x); -GLAPI void APIENTRY glVertexAttribI2uiEXT (GLuint index, GLuint x, GLuint y); -GLAPI void APIENTRY glVertexAttribI3uiEXT (GLuint index, GLuint x, GLuint y, GLuint z); -GLAPI void APIENTRY glVertexAttribI4uiEXT (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glVertexAttribI1ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI2ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI3ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI4ivEXT (GLuint index, const GLint *v); -GLAPI void APIENTRY glVertexAttribI1uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI2uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI3uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4uivEXT (GLuint index, const GLuint *v); -GLAPI void APIENTRY glVertexAttribI4bvEXT (GLuint index, const GLbyte *v); -GLAPI void APIENTRY glVertexAttribI4svEXT (GLuint index, const GLshort *v); -GLAPI void APIENTRY glVertexAttribI4ubvEXT (GLuint index, const GLubyte *v); -GLAPI void APIENTRY glVertexAttribI4usvEXT (GLuint index, const GLushort *v); -GLAPI void APIENTRY glVertexAttribIPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribIivEXT (GLuint index, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVertexAttribIuivEXT (GLuint index, GLenum pname, GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IEXTPROC) (GLuint index, GLint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IEXTPROC) (GLuint index, GLint x, GLint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IEXTPROC) (GLuint index, GLint x, GLint y, GLint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IEXTPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIEXTPROC) (GLuint index, GLuint x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIEXTPROC) (GLuint index, GLuint x, GLuint y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIEXTPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVEXTPROC) (GLuint index, const GLint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVEXTPROC) (GLuint index, const GLuint *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVEXTPROC) (GLuint index, const GLbyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVEXTPROC) (GLuint index, const GLshort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVEXTPROC) (GLuint index, const GLubyte *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVEXTPROC) (GLuint index, const GLushort *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVEXTPROC) (GLuint index, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVEXTPROC) (GLuint index, GLenum pname, GLuint *params); -#endif - -#ifndef GL_EXT_gpu_shader4 -#define GL_EXT_gpu_shader4 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetUniformuivEXT (GLuint program, GLint location, GLuint *params); -GLAPI void APIENTRY glBindFragDataLocationEXT (GLuint program, GLuint color, const GLchar *name); -GLAPI GLint APIENTRY glGetFragDataLocationEXT (GLuint program, const GLchar *name); -GLAPI void APIENTRY glUniform1uiEXT (GLint location, GLuint v0); -GLAPI void APIENTRY glUniform2uiEXT (GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glUniform3uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glUniform4uiEXT (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glUniform1uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform2uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform3uivEXT (GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glUniform4uivEXT (GLint location, GLsizei count, const GLuint *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETUNIFORMUIVEXTPROC) (GLuint program, GLint location, GLuint *params); -typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONEXTPROC) (GLuint program, GLuint color, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONEXTPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLUNIFORM1UIEXTPROC) (GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLUNIFORM2UIEXTPROC) (GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLUNIFORM3UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLUNIFORM4UIEXTPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLUNIFORM1UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM2UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM3UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLUNIFORM4UIVEXTPROC) (GLint location, GLsizei count, const GLuint *value); -#endif - -#ifndef GL_EXT_draw_instanced -#define GL_EXT_draw_instanced 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDrawArraysInstancedEXT (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -GLAPI void APIENTRY glDrawElementsInstancedEXT (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDEXTPROC) (GLenum mode, GLint start, GLsizei count, GLsizei primcount); -typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDEXTPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); -#endif - -#ifndef GL_EXT_packed_float -#define GL_EXT_packed_float 1 -#endif - -#ifndef GL_EXT_texture_array -#define GL_EXT_texture_array 1 -#endif - -#ifndef GL_EXT_texture_buffer_object -#define GL_EXT_texture_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexBufferEXT (GLenum target, GLenum internalformat, GLuint buffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXBUFFEREXTPROC) (GLenum target, GLenum internalformat, GLuint buffer); -#endif - -#ifndef GL_EXT_texture_compression_latc -#define GL_EXT_texture_compression_latc 1 -#endif - -#ifndef GL_EXT_texture_compression_rgtc -#define GL_EXT_texture_compression_rgtc 1 -#endif - -#ifndef GL_EXT_texture_shared_exponent -#define GL_EXT_texture_shared_exponent 1 -#endif - -#ifndef GL_NV_depth_buffer_float -#define GL_NV_depth_buffer_float 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDepthRangedNV (GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glClearDepthdNV (GLdouble depth); -GLAPI void APIENTRY glDepthBoundsdNV (GLdouble zmin, GLdouble zmax); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEPTHRANGEDNVPROC) (GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLCLEARDEPTHDNVPROC) (GLdouble depth); -typedef void (APIENTRYP PFNGLDEPTHBOUNDSDNVPROC) (GLdouble zmin, GLdouble zmax); -#endif - -#ifndef GL_NV_fragment_program4 -#define GL_NV_fragment_program4 1 -#endif - -#ifndef GL_NV_framebuffer_multisample_coverage -#define GL_NV_framebuffer_multisample_coverage 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glRenderbufferStorageMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -#endif - -#ifndef GL_EXT_framebuffer_sRGB -#define GL_EXT_framebuffer_sRGB 1 -#endif - -#ifndef GL_NV_geometry_shader4 -#define GL_NV_geometry_shader4 1 -#endif - -#ifndef GL_NV_parameter_buffer_object -#define GL_NV_parameter_buffer_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramBufferParametersfvNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glProgramBufferParametersIivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glProgramBufferParametersIuivNV (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSFVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLPROGRAMBUFFERPARAMETERSIUIVNVPROC) (GLenum target, GLuint buffer, GLuint index, GLsizei count, const GLuint *params); -#endif - -#ifndef GL_EXT_draw_buffers2 -#define GL_EXT_draw_buffers2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glColorMaskIndexedEXT (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -GLAPI void APIENTRY glGetBooleanIndexedvEXT (GLenum target, GLuint index, GLboolean *data); -GLAPI void APIENTRY glGetIntegerIndexedvEXT (GLenum target, GLuint index, GLint *data); -GLAPI void APIENTRY glEnableIndexedEXT (GLenum target, GLuint index); -GLAPI void APIENTRY glDisableIndexedEXT (GLenum target, GLuint index); -GLAPI GLboolean APIENTRY glIsEnabledIndexedEXT (GLenum target, GLuint index); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOLORMASKINDEXEDEXTPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); -typedef void (APIENTRYP PFNGLGETBOOLEANINDEXEDVEXTPROC) (GLenum target, GLuint index, GLboolean *data); -typedef void (APIENTRYP PFNGLGETINTEGERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLint *data); -typedef void (APIENTRYP PFNGLENABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef void (APIENTRYP PFNGLDISABLEINDEXEDEXTPROC) (GLenum target, GLuint index); -typedef GLboolean (APIENTRYP PFNGLISENABLEDINDEXEDEXTPROC) (GLenum target, GLuint index); -#endif - -#ifndef GL_NV_transform_feedback -#define GL_NV_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackNV (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackNV (void); -GLAPI void APIENTRY glTransformFeedbackAttribsNV (GLuint count, const GLint *attribs, GLenum bufferMode); -GLAPI void APIENTRY glBindBufferRangeNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetNV (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseNV (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsNV (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -GLAPI void APIENTRY glActiveVaryingNV (GLuint program, const GLchar *name); -GLAPI GLint APIENTRY glGetVaryingLocationNV (GLuint program, const GLchar *name); -GLAPI void APIENTRY glGetActiveVaryingNV (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -GLAPI void APIENTRY glGetTransformFeedbackVaryingNV (GLuint program, GLuint index, GLint *location); -GLAPI void APIENTRY glTransformFeedbackStreamAttribsNV (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKNVPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKATTRIBSNVPROC) (GLuint count, const GLint *attribs, GLenum bufferMode); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGENVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETNVPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASENVPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSNVPROC) (GLuint program, GLsizei count, const GLint *locations, GLenum bufferMode); -typedef void (APIENTRYP PFNGLACTIVEVARYINGNVPROC) (GLuint program, const GLchar *name); -typedef GLint (APIENTRYP PFNGLGETVARYINGLOCATIONNVPROC) (GLuint program, const GLchar *name); -typedef void (APIENTRYP PFNGLGETACTIVEVARYINGNVPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGNVPROC) (GLuint program, GLuint index, GLint *location); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKSTREAMATTRIBSNVPROC) (GLsizei count, const GLint *attribs, GLsizei nbuffers, const GLint *bufstreams, GLenum bufferMode); -#endif - -#ifndef GL_EXT_bindable_uniform -#define GL_EXT_bindable_uniform 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniformBufferEXT (GLuint program, GLint location, GLuint buffer); -GLAPI GLint APIENTRY glGetUniformBufferSizeEXT (GLuint program, GLint location); -GLAPI GLintptr APIENTRY glGetUniformOffsetEXT (GLuint program, GLint location); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORMBUFFEREXTPROC) (GLuint program, GLint location, GLuint buffer); -typedef GLint (APIENTRYP PFNGLGETUNIFORMBUFFERSIZEEXTPROC) (GLuint program, GLint location); -typedef GLintptr (APIENTRYP PFNGLGETUNIFORMOFFSETEXTPROC) (GLuint program, GLint location); -#endif - -#ifndef GL_EXT_texture_integer -#define GL_EXT_texture_integer 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexParameterIivEXT (GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTexParameterIuivEXT (GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTexParameterIivEXT (GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTexParameterIuivEXT (GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glClearColorIiEXT (GLint red, GLint green, GLint blue, GLint alpha); -GLAPI void APIENTRY glClearColorIuiEXT (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVEXTPROC) (GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVEXTPROC) (GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLCLEARCOLORIIEXTPROC) (GLint red, GLint green, GLint blue, GLint alpha); -typedef void (APIENTRYP PFNGLCLEARCOLORIUIEXTPROC) (GLuint red, GLuint green, GLuint blue, GLuint alpha); -#endif - -#ifndef GL_GREMEDY_frame_terminator -#define GL_GREMEDY_frame_terminator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glFrameTerminatorGREMEDY (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLFRAMETERMINATORGREMEDYPROC) (void); -#endif - -#ifndef GL_NV_conditional_render -#define GL_NV_conditional_render 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginConditionalRenderNV (GLuint id, GLenum mode); -GLAPI void APIENTRY glEndConditionalRenderNV (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERNVPROC) (GLuint id, GLenum mode); -typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERNVPROC) (void); -#endif - -#ifndef GL_NV_present_video -#define GL_NV_present_video 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glPresentFrameKeyedNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -GLAPI void APIENTRY glPresentFrameDualFillNV (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -GLAPI void APIENTRY glGetVideoivNV (GLuint video_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideouivNV (GLuint video_slot, GLenum pname, GLuint *params); -GLAPI void APIENTRY glGetVideoi64vNV (GLuint video_slot, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVideoui64vNV (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPRESENTFRAMEKEYEDNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLuint key0, GLenum target1, GLuint fill1, GLuint key1); -typedef void (APIENTRYP PFNGLPRESENTFRAMEDUALFILLNVPROC) (GLuint video_slot, GLuint64EXT minPresentTime, GLuint beginPresentTimeId, GLuint presentDurationId, GLenum type, GLenum target0, GLuint fill0, GLenum target1, GLuint fill1, GLenum target2, GLuint fill2, GLenum target3, GLuint fill3); -typedef void (APIENTRYP PFNGLGETVIDEOIVNVPROC) (GLuint video_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOUIVNVPROC) (GLuint video_slot, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLGETVIDEOI64VNVPROC) (GLuint video_slot, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVIDEOUI64VNVPROC) (GLuint video_slot, GLenum pname, GLuint64EXT *params); -#endif - -#ifndef GL_EXT_transform_feedback -#define GL_EXT_transform_feedback 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginTransformFeedbackEXT (GLenum primitiveMode); -GLAPI void APIENTRY glEndTransformFeedbackEXT (void); -GLAPI void APIENTRY glBindBufferRangeEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -GLAPI void APIENTRY glBindBufferOffsetEXT (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -GLAPI void APIENTRY glBindBufferBaseEXT (GLenum target, GLuint index, GLuint buffer); -GLAPI void APIENTRY glTransformFeedbackVaryingsEXT (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -GLAPI void APIENTRY glGetTransformFeedbackVaryingEXT (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKEXTPROC) (GLenum primitiveMode); -typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKEXTPROC) (void); -typedef void (APIENTRYP PFNGLBINDBUFFERRANGEEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLBINDBUFFEROFFSETEXTPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); -typedef void (APIENTRYP PFNGLBINDBUFFERBASEEXTPROC) (GLenum target, GLuint index, GLuint buffer); -typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSEXTPROC) (GLuint program, GLsizei count, const GLchar* *varyings, GLenum bufferMode); -typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGEXTPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); -#endif - -#ifndef GL_EXT_direct_state_access -#define GL_EXT_direct_state_access 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glPushClientAttribDefaultEXT (GLbitfield mask); -GLAPI void APIENTRY glMatrixLoadfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoaddEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultfEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultdEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixLoadIdentityEXT (GLenum mode); -GLAPI void APIENTRY glMatrixRotatefEXT (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixRotatedEXT (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixScalefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixScaledEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixTranslatefEXT (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -GLAPI void APIENTRY glMatrixTranslatedEXT (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glMatrixFrustumEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixOrthoEXT (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -GLAPI void APIENTRY glMatrixPopEXT (GLenum mode); -GLAPI void APIENTRY glMatrixPushEXT (GLenum mode); -GLAPI void APIENTRY glMatrixLoadTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixLoadTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glMatrixMultTransposefEXT (GLenum mode, const GLfloat *m); -GLAPI void APIENTRY glMatrixMultTransposedEXT (GLenum mode, const GLdouble *m); -GLAPI void APIENTRY glTextureParameterfEXT (GLuint texture, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glTextureParameteriEXT (GLuint texture, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetTextureImageEXT (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void APIENTRY glGetTextureParameterfvEXT (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureParameterivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureLevelParameterfvEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetTextureLevelParameterivEXT (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glMultiTexParameterfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexParameteriEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -GLAPI void APIENTRY glCopyMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -GLAPI void APIENTRY glCopyMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -GLAPI void APIENTRY glCopyMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetMultiTexImageEXT (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -GLAPI void APIENTRY glGetMultiTexParameterfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexParameterivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterfvEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexLevelParameterivEXT (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -GLAPI void APIENTRY glMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -GLAPI void APIENTRY glCopyMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -GLAPI void APIENTRY glBindMultiTextureEXT (GLenum texunit, GLenum target, GLuint texture); -GLAPI void APIENTRY glEnableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glDisableClientStateIndexedEXT (GLenum array, GLuint index); -GLAPI void APIENTRY glMultiTexCoordPointerEXT (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glMultiTexEnvfEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexEnviEXT (GLenum texunit, GLenum target, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexGendEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -GLAPI void APIENTRY glMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -GLAPI void APIENTRY glMultiTexGenfEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -GLAPI void APIENTRY glMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glMultiTexGeniEXT (GLenum texunit, GLenum coord, GLenum pname, GLint param); -GLAPI void APIENTRY glMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -GLAPI void APIENTRY glGetMultiTexEnvfvEXT (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexEnvivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexGendvEXT (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glGetMultiTexGenfvEXT (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetMultiTexGenivEXT (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetFloatIndexedvEXT (GLenum target, GLuint index, GLfloat *data); -GLAPI void APIENTRY glGetDoubleIndexedvEXT (GLenum target, GLuint index, GLdouble *data); -GLAPI void APIENTRY glGetPointerIndexedvEXT (GLenum target, GLuint index, GLvoid* *data); -GLAPI void APIENTRY glCompressedTextureImage3DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureImage2DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureImage1DEXT (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage3DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage2DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedTextureSubImage1DEXT (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glGetCompressedTextureImageEXT (GLuint texture, GLenum target, GLint lod, GLvoid *img); -GLAPI void APIENTRY glCompressedMultiTexImage3DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexImage2DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexImage1DEXT (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage3DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage2DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glCompressedMultiTexSubImage1DEXT (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -GLAPI void APIENTRY glGetCompressedMultiTexImageEXT (GLenum texunit, GLenum target, GLint lod, GLvoid *img); -GLAPI void APIENTRY glNamedProgramStringEXT (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); -GLAPI void APIENTRY glNamedProgramLocalParameter4dEXT (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glNamedProgramLocalParameter4dvEXT (GLuint program, GLenum target, GLuint index, const GLdouble *params); -GLAPI void APIENTRY glNamedProgramLocalParameter4fEXT (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -GLAPI void APIENTRY glNamedProgramLocalParameter4fvEXT (GLuint program, GLenum target, GLuint index, const GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterdvEXT (GLuint program, GLenum target, GLuint index, GLdouble *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterfvEXT (GLuint program, GLenum target, GLuint index, GLfloat *params); -GLAPI void APIENTRY glGetNamedProgramivEXT (GLuint program, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedProgramStringEXT (GLuint program, GLenum target, GLenum pname, GLvoid *string); -GLAPI void APIENTRY glNamedProgramLocalParameters4fvEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4iEXT (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4ivEXT (GLuint program, GLenum target, GLuint index, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4ivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uiEXT (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -GLAPI void APIENTRY glNamedProgramLocalParameterI4uivEXT (GLuint program, GLenum target, GLuint index, const GLuint *params); -GLAPI void APIENTRY glNamedProgramLocalParametersI4uivEXT (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIivEXT (GLuint program, GLenum target, GLuint index, GLint *params); -GLAPI void APIENTRY glGetNamedProgramLocalParameterIuivEXT (GLuint program, GLenum target, GLuint index, GLuint *params); -GLAPI void APIENTRY glTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetTextureParameterIivEXT (GLuint texture, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetTextureParameterIuivEXT (GLuint texture, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -GLAPI void APIENTRY glMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -GLAPI void APIENTRY glGetMultiTexParameterIivEXT (GLenum texunit, GLenum target, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetMultiTexParameterIuivEXT (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -GLAPI void APIENTRY glProgramUniform1fEXT (GLuint program, GLint location, GLfloat v0); -GLAPI void APIENTRY glProgramUniform2fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1); -GLAPI void APIENTRY glProgramUniform3fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -GLAPI void APIENTRY glProgramUniform4fEXT (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -GLAPI void APIENTRY glProgramUniform1iEXT (GLuint program, GLint location, GLint v0); -GLAPI void APIENTRY glProgramUniform2iEXT (GLuint program, GLint location, GLint v0, GLint v1); -GLAPI void APIENTRY glProgramUniform3iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -GLAPI void APIENTRY glProgramUniform4iEXT (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -GLAPI void APIENTRY glProgramUniform1fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform2fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform3fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform4fvEXT (GLuint program, GLint location, GLsizei count, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform2ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform3ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniform4ivEXT (GLuint program, GLint location, GLsizei count, const GLint *value); -GLAPI void APIENTRY glProgramUniformMatrix2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3fvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -GLAPI void APIENTRY glProgramUniform1uiEXT (GLuint program, GLint location, GLuint v0); -GLAPI void APIENTRY glProgramUniform2uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1); -GLAPI void APIENTRY glProgramUniform3uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -GLAPI void APIENTRY glProgramUniform4uiEXT (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -GLAPI void APIENTRY glProgramUniform1uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform2uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform3uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glProgramUniform4uivEXT (GLuint program, GLint location, GLsizei count, const GLuint *value); -GLAPI void APIENTRY glNamedBufferDataEXT (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); -GLAPI void APIENTRY glNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); -GLAPI GLvoid* APIENTRY glMapNamedBufferEXT (GLuint buffer, GLenum access); -GLAPI GLboolean APIENTRY glUnmapNamedBufferEXT (GLuint buffer); -GLAPI GLvoid* APIENTRY glMapNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -GLAPI void APIENTRY glFlushMappedNamedBufferRangeEXT (GLuint buffer, GLintptr offset, GLsizeiptr length); -GLAPI void APIENTRY glNamedCopyBufferSubDataEXT (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -GLAPI void APIENTRY glGetNamedBufferParameterivEXT (GLuint buffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetNamedBufferPointervEXT (GLuint buffer, GLenum pname, GLvoid* *params); -GLAPI void APIENTRY glGetNamedBufferSubDataEXT (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); -GLAPI void APIENTRY glTextureBufferEXT (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glMultiTexBufferEXT (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -GLAPI void APIENTRY glNamedRenderbufferStorageEXT (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glGetNamedRenderbufferParameterivEXT (GLuint renderbuffer, GLenum pname, GLint *params); -GLAPI GLenum APIENTRY glCheckNamedFramebufferStatusEXT (GLuint framebuffer, GLenum target); -GLAPI void APIENTRY glNamedFramebufferTexture1DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture2DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTexture3DEXT (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -GLAPI void APIENTRY glNamedFramebufferRenderbufferEXT (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -GLAPI void APIENTRY glGetNamedFramebufferAttachmentParameterivEXT (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -GLAPI void APIENTRY glGenerateTextureMipmapEXT (GLuint texture, GLenum target); -GLAPI void APIENTRY glGenerateMultiTexMipmapEXT (GLenum texunit, GLenum target); -GLAPI void APIENTRY glFramebufferDrawBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glFramebufferDrawBuffersEXT (GLuint framebuffer, GLsizei n, const GLenum *bufs); -GLAPI void APIENTRY glFramebufferReadBufferEXT (GLuint framebuffer, GLenum mode); -GLAPI void APIENTRY glGetFramebufferParameterivEXT (GLuint framebuffer, GLenum pname, GLint *params); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleEXT (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedRenderbufferStorageMultisampleCoverageEXT (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -GLAPI void APIENTRY glNamedFramebufferTextureEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -GLAPI void APIENTRY glNamedFramebufferTextureLayerEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -GLAPI void APIENTRY glNamedFramebufferTextureFaceEXT (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -GLAPI void APIENTRY glTextureRenderbufferEXT (GLuint texture, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glMultiTexRenderbufferEXT (GLenum texunit, GLenum target, GLuint renderbuffer); -GLAPI void APIENTRY glProgramUniform1dEXT (GLuint program, GLint location, GLdouble x); -GLAPI void APIENTRY glProgramUniform2dEXT (GLuint program, GLint location, GLdouble x, GLdouble y); -GLAPI void APIENTRY glProgramUniform3dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glProgramUniform4dEXT (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glProgramUniform1dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform2dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform3dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniform4dvEXT (GLuint program, GLint location, GLsizei count, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix2x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix3x4dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x2dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -GLAPI void APIENTRY glProgramUniformMatrix4x3dvEXT (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLPUSHCLIENTATTRIBDEFAULTEXTPROC) (GLbitfield mask); -typedef void (APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXROTATEFEXTPROC) (GLenum mode, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXROTATEDEXTPROC) (GLenum mode, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXSCALEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXSCALEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEFEXTPROC) (GLenum mode, GLfloat x, GLfloat y, GLfloat z); -typedef void (APIENTRYP PFNGLMATRIXTRANSLATEDEXTPROC) (GLenum mode, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLMATRIXFRUSTUMEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXORTHOEXTPROC) (GLenum mode, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); -typedef void (APIENTRYP PFNGLMATRIXPOPEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXPUSHEXTPROC) (GLenum mode); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXLOADTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEFEXTPROC) (GLenum mode, const GLfloat *m); -typedef void (APIENTRYP PFNGLMATRIXMULTTRANSPOSEDEXTPROC) (GLenum mode, const GLdouble *m); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERFVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETTEXTURELEVELPARAMETERIVEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERFVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXLEVELPARAMETERIVEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); -typedef void (APIENTRYP PFNGLCOPYMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLBINDMULTITEXTUREEXTPROC) (GLenum texunit, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLENABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLDISABLECLIENTSTATEINDEXEDEXTPROC) (GLenum array, GLuint index); -typedef void (APIENTRYP PFNGLMULTITEXCOORDPOINTEREXTPROC) (GLenum texunit, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLMULTITEXENVFEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXENVIEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXGENDEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble param); -typedef void (APIENTRYP PFNGLMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLdouble *params); -typedef void (APIENTRYP PFNGLMULTITEXGENFEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat param); -typedef void (APIENTRYP PFNGLMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLMULTITEXGENIEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint param); -typedef void (APIENTRYP PFNGLMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVFVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXENVIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENDVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENFVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETMULTITEXGENIVEXTPROC) (GLenum texunit, GLenum coord, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETFLOATINDEXEDVEXTPROC) (GLenum target, GLuint index, GLfloat *data); -typedef void (APIENTRYP PFNGLGETDOUBLEINDEXEDVEXTPROC) (GLenum target, GLuint index, GLdouble *data); -typedef void (APIENTRYP PFNGLGETPOINTERINDEXEDVEXTPROC) (GLenum target, GLuint index, GLvoid* *data); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTUREIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE3DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE2DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDTEXTURESUBIMAGE1DEXTPROC) (GLuint texture, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXTUREIMAGEEXTPROC) (GLuint texture, GLenum target, GLint lod, GLvoid *img); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE3DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE2DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLCOMPRESSEDMULTITEXSUBIMAGE1DEXTPROC) (GLenum texunit, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *bits); -typedef void (APIENTRYP PFNGLGETCOMPRESSEDMULTITEXIMAGEEXTPROC) (GLenum texunit, GLenum target, GLint lod, GLvoid *img); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum format, GLsizei len, const GLvoid *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4DVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLdouble *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETER4FVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERDVEXTPROC) (GLuint program, GLenum target, GLuint index, GLdouble *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERFVEXTPROC) (GLuint program, GLenum target, GLuint index, GLfloat *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMIVEXTPROC) (GLuint program, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMSTRINGEXTPROC) (GLuint program, GLenum target, GLenum pname, GLvoid *string); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERS4FVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLfloat *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IEXTPROC) (GLuint program, GLenum target, GLuint index, GLint x, GLint y, GLint z, GLint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4IVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, const GLuint *params); -typedef void (APIENTRYP PFNGLNAMEDPROGRAMLOCALPARAMETERSI4UIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDPROGRAMLOCALPARAMETERIUIVEXTPROC) (GLuint program, GLenum target, GLuint index, GLuint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETTEXTUREPARAMETERIUIVEXTPROC) (GLuint texture, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, const GLuint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETMULTITEXPARAMETERIUIVEXTPROC) (GLenum texunit, GLenum target, GLenum pname, GLuint *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FEXTPROC) (GLuint program, GLint location, GLfloat v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FEXTPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IEXTPROC) (GLuint program, GLint location, GLint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IEXTPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIEXTPROC) (GLuint program, GLint location, GLuint v0); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIEXTPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); -typedef void (APIENTRYP PFNGLNAMEDBUFFERDATAEXTPROC) (GLuint buffer, GLsizeiptr size, const GLvoid *data, GLenum usage); -typedef void (APIENTRYP PFNGLNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, const GLvoid *data); -typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFEREXTPROC) (GLuint buffer, GLenum access); -typedef GLboolean (APIENTRYP PFNGLUNMAPNAMEDBUFFEREXTPROC) (GLuint buffer); -typedef GLvoid* (APIENTRYP PFNGLMAPNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length, GLbitfield access); -typedef void (APIENTRYP PFNGLFLUSHMAPPEDNAMEDBUFFERRANGEEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr length); -typedef void (APIENTRYP PFNGLNAMEDCOPYBUFFERSUBDATAEXTPROC) (GLuint readBuffer, GLuint writeBuffer, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERIVEXTPROC) (GLuint buffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPOINTERVEXTPROC) (GLuint buffer, GLenum pname, GLvoid* *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERSUBDATAEXTPROC) (GLuint buffer, GLintptr offset, GLsizeiptr size, GLvoid *data); -typedef void (APIENTRYP PFNGLTEXTUREBUFFEREXTPROC) (GLuint texture, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLMULTITEXBUFFEREXTPROC) (GLenum texunit, GLenum target, GLenum internalformat, GLuint buffer); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEEXTPROC) (GLuint renderbuffer, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLGETNAMEDRENDERBUFFERPARAMETERIVEXTPROC) (GLuint renderbuffer, GLenum pname, GLint *params); -typedef GLenum (APIENTRYP PFNGLCHECKNAMEDFRAMEBUFFERSTATUSEXTPROC) (GLuint framebuffer, GLenum target); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE1DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE2DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURE3DEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERRENDERBUFFEREXTPROC) (GLuint framebuffer, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLGETNAMEDFRAMEBUFFERATTACHMENTPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum attachment, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGENERATETEXTUREMIPMAPEXTPROC) (GLuint texture, GLenum target); -typedef void (APIENTRYP PFNGLGENERATEMULTITEXMIPMAPEXTPROC) (GLenum texunit, GLenum target); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLFRAMEBUFFERDRAWBUFFERSEXTPROC) (GLuint framebuffer, GLsizei n, const GLenum *bufs); -typedef void (APIENTRYP PFNGLFRAMEBUFFERREADBUFFEREXTPROC) (GLuint framebuffer, GLenum mode); -typedef void (APIENTRYP PFNGLGETFRAMEBUFFERPARAMETERIVEXTPROC) (GLuint framebuffer, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLEEXTPROC) (GLuint renderbuffer, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDRENDERBUFFERSTORAGEMULTISAMPLECOVERAGEEXTPROC) (GLuint renderbuffer, GLsizei coverageSamples, GLsizei colorSamples, GLenum internalformat, GLsizei width, GLsizei height); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTURELAYEREXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLint layer); -typedef void (APIENTRYP PFNGLNAMEDFRAMEBUFFERTEXTUREFACEEXTPROC) (GLuint framebuffer, GLenum attachment, GLuint texture, GLint level, GLenum face); -typedef void (APIENTRYP PFNGLTEXTURERENDERBUFFEREXTPROC) (GLuint texture, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLMULTITEXRENDERBUFFEREXTPROC) (GLenum texunit, GLenum target, GLuint renderbuffer); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DEXTPROC) (GLuint program, GLint location, GLdouble x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DEXTPROC) (GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVEXTPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVEXTPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); -#endif - -#ifndef GL_EXT_vertex_array_bgra -#define GL_EXT_vertex_array_bgra 1 -#endif - -#ifndef GL_EXT_texture_swizzle -#define GL_EXT_texture_swizzle 1 -#endif - -#ifndef GL_NV_explicit_multisample -#define GL_NV_explicit_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetMultisamplefvNV (GLenum pname, GLuint index, GLfloat *val); -GLAPI void APIENTRY glSampleMaskIndexedNV (GLuint index, GLbitfield mask); -GLAPI void APIENTRY glTexRenderbufferNV (GLenum target, GLuint renderbuffer); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVNVPROC) (GLenum pname, GLuint index, GLfloat *val); -typedef void (APIENTRYP PFNGLSAMPLEMASKINDEXEDNVPROC) (GLuint index, GLbitfield mask); -typedef void (APIENTRYP PFNGLTEXRENDERBUFFERNVPROC) (GLenum target, GLuint renderbuffer); -#endif - -#ifndef GL_NV_transform_feedback2 -#define GL_NV_transform_feedback2 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindTransformFeedbackNV (GLenum target, GLuint id); -GLAPI void APIENTRY glDeleteTransformFeedbacksNV (GLsizei n, const GLuint *ids); -GLAPI void APIENTRY glGenTransformFeedbacksNV (GLsizei n, GLuint *ids); -GLAPI GLboolean APIENTRY glIsTransformFeedbackNV (GLuint id); -GLAPI void APIENTRY glPauseTransformFeedbackNV (void); -GLAPI void APIENTRY glResumeTransformFeedbackNV (void); -GLAPI void APIENTRY glDrawTransformFeedbackNV (GLenum mode, GLuint id); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKNVPROC) (GLenum target, GLuint id); -typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSNVPROC) (GLsizei n, const GLuint *ids); -typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSNVPROC) (GLsizei n, GLuint *ids); -typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKNVPROC) (GLuint id); -typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKNVPROC) (void); -typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKNVPROC) (GLenum mode, GLuint id); -#endif - -#ifndef GL_ATI_meminfo -#define GL_ATI_meminfo 1 -#endif - -#ifndef GL_AMD_performance_monitor -#define GL_AMD_performance_monitor 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGetPerfMonitorGroupsAMD (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -GLAPI void APIENTRY glGetPerfMonitorCountersAMD (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -GLAPI void APIENTRY glGetPerfMonitorGroupStringAMD (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -GLAPI void APIENTRY glGetPerfMonitorCounterStringAMD (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -GLAPI void APIENTRY glGetPerfMonitorCounterInfoAMD (GLuint group, GLuint counter, GLenum pname, GLvoid *data); -GLAPI void APIENTRY glGenPerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glDeletePerfMonitorsAMD (GLsizei n, GLuint *monitors); -GLAPI void APIENTRY glSelectPerfMonitorCountersAMD (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -GLAPI void APIENTRY glBeginPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glEndPerfMonitorAMD (GLuint monitor); -GLAPI void APIENTRY glGetPerfMonitorCounterDataAMD (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSAMDPROC) (GLint *numGroups, GLsizei groupsSize, GLuint *groups); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSAMDPROC) (GLuint group, GLint *numCounters, GLint *maxActiveCounters, GLsizei counterSize, GLuint *counters); -typedef void (APIENTRYP PFNGLGETPERFMONITORGROUPSTRINGAMDPROC) (GLuint group, GLsizei bufSize, GLsizei *length, GLchar *groupString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERSTRINGAMDPROC) (GLuint group, GLuint counter, GLsizei bufSize, GLsizei *length, GLchar *counterString); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERINFOAMDPROC) (GLuint group, GLuint counter, GLenum pname, GLvoid *data); -typedef void (APIENTRYP PFNGLGENPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLDELETEPERFMONITORSAMDPROC) (GLsizei n, GLuint *monitors); -typedef void (APIENTRYP PFNGLSELECTPERFMONITORCOUNTERSAMDPROC) (GLuint monitor, GLboolean enable, GLuint group, GLint numCounters, GLuint *counterList); -typedef void (APIENTRYP PFNGLBEGINPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLENDPERFMONITORAMDPROC) (GLuint monitor); -typedef void (APIENTRYP PFNGLGETPERFMONITORCOUNTERDATAAMDPROC) (GLuint monitor, GLenum pname, GLsizei dataSize, GLuint *data, GLint *bytesWritten); -#endif - -#ifndef GL_AMD_texture_texture4 -#define GL_AMD_texture_texture4 1 -#endif - -#ifndef GL_AMD_vertex_shader_tesselator -#define GL_AMD_vertex_shader_tesselator 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTessellationFactorAMD (GLfloat factor); -GLAPI void APIENTRY glTessellationModeAMD (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTESSELLATIONFACTORAMDPROC) (GLfloat factor); -typedef void (APIENTRYP PFNGLTESSELLATIONMODEAMDPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_provoking_vertex -#define GL_EXT_provoking_vertex 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProvokingVertexEXT (GLenum mode); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROVOKINGVERTEXEXTPROC) (GLenum mode); -#endif - -#ifndef GL_EXT_texture_snorm -#define GL_EXT_texture_snorm 1 -#endif - -#ifndef GL_AMD_draw_buffers_blend -#define GL_AMD_draw_buffers_blend 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBlendFuncIndexedAMD (GLuint buf, GLenum src, GLenum dst); -GLAPI void APIENTRY glBlendFuncSeparateIndexedAMD (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -GLAPI void APIENTRY glBlendEquationIndexedAMD (GLuint buf, GLenum mode); -GLAPI void APIENTRY glBlendEquationSeparateIndexedAMD (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBLENDFUNCINDEXEDAMDPROC) (GLuint buf, GLenum src, GLenum dst); -typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); -typedef void (APIENTRYP PFNGLBLENDEQUATIONINDEXEDAMDPROC) (GLuint buf, GLenum mode); -typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEINDEXEDAMDPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); -#endif - -#ifndef GL_APPLE_texture_range -#define GL_APPLE_texture_range 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const GLvoid *pointer); -GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid* *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid* *params); -#endif - -#ifndef GL_APPLE_float_pixels -#define GL_APPLE_float_pixels 1 -#endif - -#ifndef GL_APPLE_vertex_program_evaluators -#define GL_APPLE_vertex_program_evaluators 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glEnableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glDisableVertexAttribAPPLE (GLuint index, GLenum pname); -GLAPI GLboolean APIENTRY glIsVertexAttribEnabledAPPLE (GLuint index, GLenum pname); -GLAPI void APIENTRY glMapVertexAttrib1dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib1fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -GLAPI void APIENTRY glMapVertexAttrib2dAPPLE (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -GLAPI void APIENTRY glMapVertexAttrib2fAPPLE (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBAPPLEPROC) (GLuint index, GLenum pname); -typedef GLboolean (APIENTRYP PFNGLISVERTEXATTRIBENABLEDAPPLEPROC) (GLuint index, GLenum pname); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB1FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2DAPPLEPROC) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); -typedef void (APIENTRYP PFNGLMAPVERTEXATTRIB2FAPPLEPROC) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); -#endif - -#ifndef GL_APPLE_aux_depth_stencil -#define GL_APPLE_aux_depth_stencil 1 -#endif - -#ifndef GL_APPLE_object_purgeable -#define GL_APPLE_object_purgeable 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); -GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); -typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); -#endif - -#ifndef GL_APPLE_row_bytes -#define GL_APPLE_row_bytes 1 -#endif - -#ifndef GL_APPLE_rgb_422 -#define GL_APPLE_rgb_422 1 -#endif - -#ifndef GL_NV_video_capture -#define GL_NV_video_capture 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBeginVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glBindVideoCaptureStreamBufferNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -GLAPI void APIENTRY glBindVideoCaptureStreamTextureNV (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -GLAPI void APIENTRY glEndVideoCaptureNV (GLuint video_capture_slot); -GLAPI void APIENTRY glGetVideoCaptureivNV (GLuint video_capture_slot, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -GLAPI void APIENTRY glGetVideoCaptureStreamfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -GLAPI void APIENTRY glGetVideoCaptureStreamdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -GLAPI GLenum APIENTRY glVideoCaptureNV (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -GLAPI void APIENTRY glVideoCaptureStreamParameterivNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterfvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -GLAPI void APIENTRY glVideoCaptureStreamParameterdvNV (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBEGINVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMBUFFERNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLintptrARB offset); -typedef void (APIENTRYP PFNGLBINDVIDEOCAPTURESTREAMTEXTURENVPROC) (GLuint video_capture_slot, GLuint stream, GLenum frame_region, GLenum target, GLuint texture); -typedef void (APIENTRYP PFNGLENDVIDEOCAPTURENVPROC) (GLuint video_capture_slot); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTUREIVNVPROC) (GLuint video_capture_slot, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLint *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLfloat *params); -typedef void (APIENTRYP PFNGLGETVIDEOCAPTURESTREAMDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, GLdouble *params); -typedef GLenum (APIENTRYP PFNGLVIDEOCAPTURENVPROC) (GLuint video_capture_slot, GLuint *sequence_num, GLuint64EXT *capture_time); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERIVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLint *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERFVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLfloat *params); -typedef void (APIENTRYP PFNGLVIDEOCAPTURESTREAMPARAMETERDVNVPROC) (GLuint video_capture_slot, GLuint stream, GLenum pname, const GLdouble *params); -#endif - -#ifndef GL_NV_copy_image -#define GL_NV_copy_image 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glCopyImageSubDataNV (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName, GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei width, GLsizei height, GLsizei depth); -#endif - -#ifndef GL_EXT_separate_shader_objects -#define GL_EXT_separate_shader_objects 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUseShaderProgramEXT (GLenum type, GLuint program); -GLAPI void APIENTRY glActiveProgramEXT (GLuint program); -GLAPI GLuint APIENTRY glCreateShaderProgramEXT (GLenum type, const GLchar *string); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUSESHADERPROGRAMEXTPROC) (GLenum type, GLuint program); -typedef void (APIENTRYP PFNGLACTIVEPROGRAMEXTPROC) (GLuint program); -typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMEXTPROC) (GLenum type, const GLchar *string); -#endif - -#ifndef GL_NV_parameter_buffer_object2 -#define GL_NV_parameter_buffer_object2 1 -#endif - -#ifndef GL_NV_shader_buffer_load -#define GL_NV_shader_buffer_load 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMakeBufferResidentNV (GLenum target, GLenum access); -GLAPI void APIENTRY glMakeBufferNonResidentNV (GLenum target); -GLAPI GLboolean APIENTRY glIsBufferResidentNV (GLenum target); -GLAPI void APIENTRY glMakeNamedBufferResidentNV (GLuint buffer, GLenum access); -GLAPI void APIENTRY glMakeNamedBufferNonResidentNV (GLuint buffer); -GLAPI GLboolean APIENTRY glIsNamedBufferResidentNV (GLuint buffer); -GLAPI void APIENTRY glGetBufferParameterui64vNV (GLenum target, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetNamedBufferParameterui64vNV (GLuint buffer, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glGetIntegerui64vNV (GLenum value, GLuint64EXT *result); -GLAPI void APIENTRY glUniformui64NV (GLint location, GLuint64EXT value); -GLAPI void APIENTRY glUniformui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformui64vNV (GLuint program, GLint location, GLuint64EXT *params); -GLAPI void APIENTRY glProgramUniformui64NV (GLuint program, GLint location, GLuint64EXT value); -GLAPI void APIENTRY glProgramUniformui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMAKEBUFFERRESIDENTNVPROC) (GLenum target, GLenum access); -typedef void (APIENTRYP PFNGLMAKEBUFFERNONRESIDENTNVPROC) (GLenum target); -typedef GLboolean (APIENTRYP PFNGLISBUFFERRESIDENTNVPROC) (GLenum target); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERRESIDENTNVPROC) (GLuint buffer, GLenum access); -typedef void (APIENTRYP PFNGLMAKENAMEDBUFFERNONRESIDENTNVPROC) (GLuint buffer); -typedef GLboolean (APIENTRYP PFNGLISNAMEDBUFFERRESIDENTNVPROC) (GLuint buffer); -typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERUI64VNVPROC) (GLenum target, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETNAMEDBUFFERPARAMETERUI64VNVPROC) (GLuint buffer, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLGETINTEGERUI64VNVPROC) (GLenum value, GLuint64EXT *result); -typedef void (APIENTRYP PFNGLUNIFORMUI64NVPROC) (GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLUNIFORMUI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLGETUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64NVPROC) (GLuint program, GLint location, GLuint64EXT value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORMUI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif - -#ifndef GL_NV_vertex_buffer_unified_memory -#define GL_NV_vertex_buffer_unified_memory 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBufferAddressRangeNV (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -GLAPI void APIENTRY glVertexFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glNormalFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glIndexFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glTexCoordFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glEdgeFlagFormatNV (GLsizei stride); -GLAPI void APIENTRY glSecondaryColorFormatNV (GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glFogCoordFormatNV (GLenum type, GLsizei stride); -GLAPI void APIENTRY glVertexAttribFormatNV (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -GLAPI void APIENTRY glVertexAttribIFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -GLAPI void APIENTRY glGetIntegerui64i_vNV (GLenum value, GLuint index, GLuint64EXT *result); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBUFFERADDRESSRANGENVPROC) (GLenum pname, GLuint index, GLuint64EXT address, GLsizeiptr length); -typedef void (APIENTRYP PFNGLVERTEXFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLNORMALFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLINDEXFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLTEXCOORDFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLEDGEFLAGFORMATNVPROC) (GLsizei stride); -typedef void (APIENTRYP PFNGLSECONDARYCOLORFORMATNVPROC) (GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLFOGCOORDFORMATNVPROC) (GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride); -typedef void (APIENTRYP PFNGLVERTEXATTRIBIFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -typedef void (APIENTRYP PFNGLGETINTEGERUI64I_VNVPROC) (GLenum value, GLuint index, GLuint64EXT *result); -#endif - -#ifndef GL_NV_texture_barrier -#define GL_NV_texture_barrier 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTextureBarrierNV (void); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); -#endif - -#ifndef GL_AMD_shader_stencil_export -#define GL_AMD_shader_stencil_export 1 -#endif - -#ifndef GL_AMD_seamless_cubemap_per_texture -#define GL_AMD_seamless_cubemap_per_texture 1 -#endif - -#ifndef GL_AMD_conservative_depth -#define GL_AMD_conservative_depth 1 -#endif - -#ifndef GL_EXT_shader_image_load_store -#define GL_EXT_shader_image_load_store 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glBindImageTextureEXT (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -GLAPI void APIENTRY glMemoryBarrierEXT (GLbitfield barriers); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLBINDIMAGETEXTUREEXTPROC) (GLuint index, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLint format); -typedef void (APIENTRYP PFNGLMEMORYBARRIEREXTPROC) (GLbitfield barriers); -#endif - -#ifndef GL_EXT_vertex_attrib_64bit -#define GL_EXT_vertex_attrib_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1dEXT (GLuint index, GLdouble x); -GLAPI void APIENTRY glVertexAttribL2dEXT (GLuint index, GLdouble x, GLdouble y); -GLAPI void APIENTRY glVertexAttribL3dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z); -GLAPI void APIENTRY glVertexAttribL4dEXT (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -GLAPI void APIENTRY glVertexAttribL1dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL2dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL3dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribL4dvEXT (GLuint index, const GLdouble *v); -GLAPI void APIENTRY glVertexAttribLPointerEXT (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -GLAPI void APIENTRY glGetVertexAttribLdvEXT (GLuint index, GLenum pname, GLdouble *params); -GLAPI void APIENTRY glVertexArrayVertexAttribLOffsetEXT (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DEXTPROC) (GLuint index, GLdouble x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DEXTPROC) (GLuint index, GLdouble x, GLdouble y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DEXTPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVEXTPROC) (GLuint index, const GLdouble *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTEREXTPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVEXTPROC) (GLuint index, GLenum pname, GLdouble *params); -typedef void (APIENTRYP PFNGLVERTEXARRAYVERTEXATTRIBLOFFSETEXTPROC) (GLuint vaobj, GLuint buffer, GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset); -#endif - -#ifndef GL_NV_gpu_program5 -#define GL_NV_gpu_program5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glProgramSubroutineParametersuivNV (GLenum target, GLsizei count, const GLuint *params); -GLAPI void APIENTRY glGetProgramSubroutineParameteruivNV (GLenum target, GLuint index, GLuint *param); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLPROGRAMSUBROUTINEPARAMETERSUIVNVPROC) (GLenum target, GLsizei count, const GLuint *params); -typedef void (APIENTRYP PFNGLGETPROGRAMSUBROUTINEPARAMETERUIVNVPROC) (GLenum target, GLuint index, GLuint *param); -#endif - -#ifndef GL_NV_gpu_shader5 -#define GL_NV_gpu_shader5 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glUniform1i64NV (GLint location, GLint64EXT x); -GLAPI void APIENTRY glUniform2i64NV (GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glUniform3i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glUniform4i64NV (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glUniform1i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform2i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform3i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform4i64vNV (GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glUniform1ui64NV (GLint location, GLuint64EXT x); -GLAPI void APIENTRY glUniform2ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glUniform3ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glUniform4ui64NV (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glUniform1ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform2ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform3ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glUniform4ui64vNV (GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glGetUniformi64vNV (GLuint program, GLint location, GLint64EXT *params); -GLAPI void APIENTRY glProgramUniform1i64NV (GLuint program, GLint location, GLint64EXT x); -GLAPI void APIENTRY glProgramUniform2i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glProgramUniform3i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glProgramUniform4i64NV (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glProgramUniform1i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform2i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform3i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform4i64vNV (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -GLAPI void APIENTRY glProgramUniform1ui64NV (GLuint program, GLint location, GLuint64EXT x); -GLAPI void APIENTRY glProgramUniform2ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glProgramUniform3ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glProgramUniform4ui64NV (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glProgramUniform1ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform2ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform3ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -GLAPI void APIENTRY glProgramUniform4ui64vNV (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLUNIFORM1I64NVPROC) (GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4I64NVPROC) (GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4I64VNVPROC) (GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM1UI64NVPROC) (GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLUNIFORM2UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLUNIFORM3UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLUNIFORM4UI64NVPROC) (GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLUNIFORM1UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM2UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM3UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLUNIFORM4UI64VNVPROC) (GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLGETUNIFORMI64VNVPROC) (GLuint program, GLint location, GLint64EXT *params); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64NVPROC) (GLuint program, GLint location, GLint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64NVPROC) (GLuint program, GLint location, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4I64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64NVPROC) (GLuint program, GLint location, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UI64VNVPROC) (GLuint program, GLint location, GLsizei count, const GLuint64EXT *value); -#endif - -#ifndef GL_NV_shader_buffer_store -#define GL_NV_shader_buffer_store 1 -#endif - -#ifndef GL_NV_tessellation_program5 -#define GL_NV_tessellation_program5 1 -#endif - -#ifndef GL_NV_vertex_attrib_integer_64bit -#define GL_NV_vertex_attrib_integer_64bit 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVertexAttribL1i64NV (GLuint index, GLint64EXT x); -GLAPI void APIENTRY glVertexAttribL2i64NV (GLuint index, GLint64EXT x, GLint64EXT y); -GLAPI void APIENTRY glVertexAttribL3i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -GLAPI void APIENTRY glVertexAttribL4i64NV (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -GLAPI void APIENTRY glVertexAttribL1i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4i64vNV (GLuint index, const GLint64EXT *v); -GLAPI void APIENTRY glVertexAttribL1ui64NV (GLuint index, GLuint64EXT x); -GLAPI void APIENTRY glVertexAttribL2ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y); -GLAPI void APIENTRY glVertexAttribL3ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -GLAPI void APIENTRY glVertexAttribL4ui64NV (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -GLAPI void APIENTRY glVertexAttribL1ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL2ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL3ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glVertexAttribL4ui64vNV (GLuint index, const GLuint64EXT *v); -GLAPI void APIENTRY glGetVertexAttribLi64vNV (GLuint index, GLenum pname, GLint64EXT *params); -GLAPI void APIENTRY glGetVertexAttribLui64vNV (GLuint index, GLenum pname, GLuint64EXT *params); -GLAPI void APIENTRY glVertexAttribLFormatNV (GLuint index, GLint size, GLenum type, GLsizei stride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64NVPROC) (GLuint index, GLint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64NVPROC) (GLuint index, GLint64EXT x, GLint64EXT y, GLint64EXT z, GLint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4I64VNVPROC) (GLuint index, const GLint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64NVPROC) (GLuint index, GLuint64EXT x); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64NVPROC) (GLuint index, GLuint64EXT x, GLuint64EXT y, GLuint64EXT z, GLuint64EXT w); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL1UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL2UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL3UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLVERTEXATTRIBL4UI64VNVPROC) (GLuint index, const GLuint64EXT *v); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLI64VNVPROC) (GLuint index, GLenum pname, GLint64EXT *params); -typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLUI64VNVPROC) (GLuint index, GLenum pname, GLuint64EXT *params); -typedef void (APIENTRYP PFNGLVERTEXATTRIBLFORMATNVPROC) (GLuint index, GLint size, GLenum type, GLsizei stride); -#endif - -#ifndef GL_NV_multisample_coverage -#define GL_NV_multisample_coverage 1 -#endif - -#ifndef GL_AMD_name_gen_delete -#define GL_AMD_name_gen_delete 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glGenNamesAMD (GLenum identifier, GLuint num, GLuint *names); -GLAPI void APIENTRY glDeleteNamesAMD (GLenum identifier, GLuint num, const GLuint *names); -GLAPI GLboolean APIENTRY glIsNameAMD (GLenum identifier, GLuint name); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLGENNAMESAMDPROC) (GLenum identifier, GLuint num, GLuint *names); -typedef void (APIENTRYP PFNGLDELETENAMESAMDPROC) (GLenum identifier, GLuint num, const GLuint *names); -typedef GLboolean (APIENTRYP PFNGLISNAMEAMDPROC) (GLenum identifier, GLuint name); -#endif - -#ifndef GL_AMD_debug_output -#define GL_AMD_debug_output 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glDebugMessageEnableAMD (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -GLAPI void APIENTRY glDebugMessageInsertAMD (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -GLAPI void APIENTRY glDebugMessageCallbackAMD (GLDEBUGPROCAMD callback, GLvoid *userParam); -GLAPI GLuint APIENTRY glGetDebugMessageLogAMD (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLDEBUGMESSAGEENABLEAMDPROC) (GLenum category, GLenum severity, GLsizei count, const GLuint *ids, GLboolean enabled); -typedef void (APIENTRYP PFNGLDEBUGMESSAGEINSERTAMDPROC) (GLenum category, GLenum severity, GLuint id, GLsizei length, const GLchar *buf); -typedef void (APIENTRYP PFNGLDEBUGMESSAGECALLBACKAMDPROC) (GLDEBUGPROCAMD callback, GLvoid *userParam); -typedef GLuint (APIENTRYP PFNGLGETDEBUGMESSAGELOGAMDPROC) (GLuint count, GLsizei bufsize, GLenum *categories, GLuint *severities, GLuint *ids, GLsizei *lengths, GLchar *message); -#endif - -#ifndef GL_NV_vdpau_interop -#define GL_NV_vdpau_interop 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glVDPAUInitNV (const GLvoid *vdpDevice, const GLvoid *getProcAddress); -GLAPI void APIENTRY glVDPAUFiniNV (void); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterVideoSurfaceNV (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI GLvdpauSurfaceNV APIENTRY glVDPAURegisterOutputSurfaceNV (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -GLAPI void APIENTRY glVDPAUIsSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUUnregisterSurfaceNV (GLvdpauSurfaceNV surface); -GLAPI void APIENTRY glVDPAUGetSurfaceivNV (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -GLAPI void APIENTRY glVDPAUSurfaceAccessNV (GLvdpauSurfaceNV surface, GLenum access); -GLAPI void APIENTRY glVDPAUMapSurfacesNV (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -GLAPI void APIENTRY glVDPAUUnmapSurfacesNV (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLVDPAUINITNVPROC) (const GLvoid *vdpDevice, const GLvoid *getProcAddress); -typedef void (APIENTRYP PFNGLVDPAUFININVPROC) (void); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTERVIDEOSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef GLvdpauSurfaceNV (APIENTRYP PFNGLVDPAUREGISTEROUTPUTSURFACENVPROC) (GLvoid *vdpSurface, GLenum target, GLsizei numTextureNames, const GLuint *textureNames); -typedef void (APIENTRYP PFNGLVDPAUISSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUUNREGISTERSURFACENVPROC) (GLvdpauSurfaceNV surface); -typedef void (APIENTRYP PFNGLVDPAUGETSURFACEIVNVPROC) (GLvdpauSurfaceNV surface, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); -typedef void (APIENTRYP PFNGLVDPAUSURFACEACCESSNVPROC) (GLvdpauSurfaceNV surface, GLenum access); -typedef void (APIENTRYP PFNGLVDPAUMAPSURFACESNVPROC) (GLsizei numSurfaces, const GLvdpauSurfaceNV *surfaces); -typedef void (APIENTRYP PFNGLVDPAUUNMAPSURFACESNVPROC) (GLsizei numSurface, const GLvdpauSurfaceNV *surfaces); -#endif - -#ifndef GL_AMD_transform_feedback3_lines_triangles -#define GL_AMD_transform_feedback3_lines_triangles 1 -#endif - -#ifndef GL_AMD_depth_clamp_separate -#define GL_AMD_depth_clamp_separate 1 -#endif - -#ifndef GL_EXT_texture_sRGB_decode -#define GL_EXT_texture_sRGB_decode 1 -#endif - -#ifndef GL_NV_texture_multisample -#define GL_NV_texture_multisample 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glTexImage2DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTexImage3DMultisampleCoverageNV (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleNV (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage2DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -GLAPI void APIENTRY glTextureImage3DMultisampleCoverageNV (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLENVPROC) (GLuint texture, GLenum target, GLsizei samples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE2DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLboolean fixedSampleLocations); -typedef void (APIENTRYP PFNGLTEXTUREIMAGE3DMULTISAMPLECOVERAGENVPROC) (GLuint texture, GLenum target, GLsizei coverageSamples, GLsizei colorSamples, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedSampleLocations); -#endif - -#ifndef GL_AMD_blend_minmax_factor -#define GL_AMD_blend_minmax_factor 1 -#endif - -#ifndef GL_AMD_sample_positions -#define GL_AMD_sample_positions 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glSetMultisamplefvAMD (GLenum pname, GLuint index, const GLfloat *val); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLSETMULTISAMPLEFVAMDPROC) (GLenum pname, GLuint index, const GLfloat *val); -#endif - -#ifndef GL_EXT_x11_sync_object -#define GL_EXT_x11_sync_object 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI GLsync APIENTRY glImportSyncEXT (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef GLsync (APIENTRYP PFNGLIMPORTSYNCEXTPROC) (GLenum external_sync_type, GLintptr external_sync, GLbitfield flags); -#endif - -#ifndef GL_AMD_multi_draw_indirect -#define GL_AMD_multi_draw_indirect 1 -#ifdef GL_GLEXT_PROTOTYPES -GLAPI void APIENTRY glMultiDrawArraysIndirectAMD (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -GLAPI void APIENTRY glMultiDrawElementsIndirectAMD (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -#endif /* GL_GLEXT_PROTOTYPES */ -typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSINDIRECTAMDPROC) (GLenum mode, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSINDIRECTAMDPROC) (GLenum mode, GLenum type, const GLvoid *indirect, GLsizei primcount, GLsizei stride); -#endif - -#ifndef GL_EXT_framebuffer_multisample_blit_scaled -#define GL_EXT_framebuffer_multisample_blit_scaled 1 -#endif - -#ifndef GL_AMD_pinned_memory -#define GL_AMD_pinned_memory 1 -#endif - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/LICENSE.txt b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/LICENSE.txt deleted file mode 100644 index 754412a7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/LICENSE.txt +++ /dev/null @@ -1,17 +0,0 @@ -Copyright (c) 2008-2021 Ryan C. Gordon - -This software is provided 'as-is', without any express or implied -warranty. In no event will the authors be held liable for any damages -arising from the use of this software. - -Permission is granted to anyone to use this software for any purpose, -including commercial applications, and to alter it and redistribute it -freely, subject to the following restrictions: - -1. The origin of this software must not be misrepresented; you must not - claim that you wrote the original software. If you use this software - in a product, an acknowledgment in the product documentation would be - appreciated but is not required. -2. Altered source versions must be plainly marked as such, and must not be - misrepresented as being the original software. -3. This notice may not be removed or altered from any source distribution. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/README.md b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/README.md deleted file mode 100644 index f297f757..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# MojoShader - -https://icculus.org/mojoshader/ - -MojoShader is a zlib-licensed library to work with Direct3D shaders on -alternate 3D APIs and non-Windows platforms. The primary motivation is -moving shaders to OpenGL languages on the fly. The developer deals with -"profiles" that represent various target languages, such as GLSL or -ARB_*_program. - -This allows a developer to manage one set of shaders, presumably written -in Direct3D HLSL, and use them across multiple rendering backends. This -also means that the developer only has to worry about one (offline) -compiler to manage program complexity, while MojoShader itself deals with -the reduced complexity of the bytecode at runtime. - -MojoShader provides both a simple API to convert bytecode to various -profiles, and (optionally) basic glue to rendering APIs to abstract the -management of the shaders at runtime. - -Work is in progress to allow MojoShader to work as a replacement stack for -the D3DX shader tools. The library already provides a preprocessor and an -assembler to generate bytecode from low-level source, and construction of -a full HLSL compiler is in progress. - -The library is meant to be statically linked to an application (just add a -few .c files and headers to your build), allows the app to optionally -specify an allocator, and is thread safe (although OpenGL itself is not). -It is meant to be embedded in games with a minimum of fuss. - -To use this in your project: - -- Add mojoshader*.c and mojoshader*.h to your project. -- Compile mojoshader*.c -- If you don't have a C99-compliant compiler, like Microsoft Visual Studio, - you'll need to compile the .c files as C++ to get them to build. -- If you don't have cmake to generate mojoshader_version.h, you can either - add a blank file with that name, or add MOJOSHADER_NO_VERSION_INCLUDE to - your preprocessor definitions. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/counts.sh b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/counts.sh deleted file mode 100644 index 771fada6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/counts.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh - -# !!! FIXME: use this to correct our estimates some day. - -for feh in shaders/??_?_?/*.bytecode ; do - DISASM=`echo $feh |perl -w -p -e 's/bytecode\Z/disasm/;'` - MINE=`./cmake-build/testparse d3d $feh |grep "INSTRUCTION COUNT: " |perl -w -p -e 's/\AINSTRUCTION COUNT: //;'` - THEIRS=`grep "instruction slots used" $DISASM |perl -w -p -e 's#\A// approximately (\d+) instruction slots used .*?\Z#$1#;'` - if [ "x$MINE" != "x$THEIRS" ]; then - echo "$feh $MINE vs. $THEIRS" - fi -done - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/misc/lemon.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/misc/lemon.c deleted file mode 100644 index c0054bd3..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/misc/lemon.c +++ /dev/null @@ -1,4980 +0,0 @@ -/* - * My changes over the original lemon.c from SQLite are encased in - * #if __MOJOSHADER__ blocks. --ryan. - */ -#define __MOJOSHADER__ 1 - -/* -** This file contains all sources (including headers) to the LEMON -** LALR(1) parser generator. The sources have been combined into a -** single file to make it easy to include LEMON in the source tree -** and Makefile of another program. -** -** The author of this program disclaims copyright. -*/ -#include -#include -#include -#include -#include -#include - -#ifndef __WIN32__ -# if defined(_WIN32) || defined(WIN32) -# define __WIN32__ -# endif -#endif - -#ifdef __WIN32__ -#ifdef __cplusplus -extern "C" { -#endif -extern int access(const char *path, int mode); -#ifdef __cplusplus -} -#endif -#else -#include -#endif - -/* #define PRIVATE static */ -#define PRIVATE - -#ifdef TEST -#define MAXRHS 5 /* Set low to exercise exception code */ -#else -#define MAXRHS 1000 -#endif - -static const char **made_files = NULL; -static int made_files_count = 0; -static int successful_exit = 0; -static void LemonAtExit(void) -{ - /* if we failed, delete (most) files we made, to unconfuse build tools. */ - int i; - for (i = 0; i < made_files_count; i++) { - if (!successful_exit) { - remove(made_files[i]); - } - } - free(made_files); - made_files_count = 0; - made_files = NULL; -} - -static char *msort(char*,char**,int(*)(const char*,const char*)); - -/* -** Compilers are getting increasingly pedantic about type conversions -** as C evolves ever closer to Ada.... To work around the latest problems -** we have to define the following variant of strlen(). -*/ -#define lemonStrlen(X) ((int)strlen(X)) - -/* a few forward declarations... */ -struct rule; -struct lemon; -struct action; - -static struct action *Action_new(void); -static struct action *Action_sort(struct action *); - -/********** From the file "build.h" ************************************/ -void FindRulePrecedences(); -void FindFirstSets(); -void FindStates(); -void FindLinks(); -void FindFollowSets(); -void FindActions(); - -/********* From the file "configlist.h" *********************************/ -void Configlist_init(void); -struct config *Configlist_add(struct rule *, int); -struct config *Configlist_addbasis(struct rule *, int); -void Configlist_closure(struct lemon *); -void Configlist_sort(void); -void Configlist_sortbasis(void); -struct config *Configlist_return(void); -struct config *Configlist_basis(void); -void Configlist_eat(struct config *); -void Configlist_reset(void); - -/********* From the file "error.h" ***************************************/ -void ErrorMsg(const char *, int,const char *, ...); - -/****** From the file "option.h" ******************************************/ -enum option_type { OPT_FLAG=1, OPT_INT, OPT_DBL, OPT_STR, - OPT_FFLAG, OPT_FINT, OPT_FDBL, OPT_FSTR}; -struct s_options { - enum option_type type; - const char *label; - char *arg; - const char *message; -}; -int OptInit(char**,struct s_options*,FILE*); -int OptNArgs(void); -char *OptArg(int); -void OptErr(int); -void OptPrint(void); - -/******** From the file "parse.h" *****************************************/ -void Parse(struct lemon *lemp); - -/********* From the file "plink.h" ***************************************/ -struct plink *Plink_new(void); -void Plink_add(struct plink **, struct config *); -void Plink_copy(struct plink **, struct plink *); -void Plink_delete(struct plink *); - -/********** From the file "report.h" *************************************/ -void Reprint(struct lemon *); -void ReportOutput(struct lemon *); -void ReportTable(struct lemon *, int); -void ReportHeader(struct lemon *); -void CompressTables(struct lemon *); -void ResortStates(struct lemon *); - -/********** From the file "set.h" ****************************************/ -void SetSize(int); /* All sets will be of size N */ -char *SetNew(void); /* A new set for element 0..N */ -void SetFree(char*); /* Deallocate a set */ - -char *SetNew(void); /* A new set for element 0..N */ -int SetAdd(char*,int); /* Add element to a set */ -int SetUnion(char *,char *); /* A <- A U B, thru element N */ -#define SetFind(X,Y) (X[Y]) /* True if Y is in set X */ - -/********** From the file "struct.h" *************************************/ -/* -** Principal data structures for the LEMON parser generator. -*/ - -typedef enum {LEMON_FALSE=0, LEMON_TRUE} Boolean; - -/* Symbols (terminals and nonterminals) of the grammar are stored -** in the following: */ -enum symbol_type { - TERMINAL, - NONTERMINAL, - MULTITERMINAL -}; -enum e_assoc { - LEFT, - RIGHT, - NONE, - UNK -}; -struct symbol { - const char *name; /* Name of the symbol */ - int index; /* Index number for this symbol */ - enum symbol_type type; /* Symbols are all either TERMINALS or NTs */ - struct rule *rule; /* Linked list of rules of this (if an NT) */ - struct symbol *fallback; /* fallback token in case this token doesn't parse */ - int prec; /* Precedence if defined (-1 otherwise) */ - enum e_assoc assoc; /* Associativity if precedence is defined */ - char *firstset; /* First-set for all rules of this symbol */ - Boolean lambda; /* True if NT and can generate an empty string */ - int useCnt; /* Number of times used */ - char *destructor; /* Code which executes whenever this symbol is - ** popped from the stack during error processing */ - int destLineno; /* Line number for start of destructor */ - char *datatype; /* The data type of information held by this - ** object. Only used if type==NONTERMINAL */ - int dtnum; /* The data type number. In the parser, the value - ** stack is a union. The .yy%d element of this - ** union is the correct data type for this object */ - /* The following fields are used by MULTITERMINALs only */ - int nsubsym; /* Number of constituent symbols in the MULTI */ - struct symbol **subsym; /* Array of constituent symbols */ -}; - -/* Each production rule in the grammar is stored in the following -** structure. */ -struct rule { - struct symbol *lhs; /* Left-hand side of the rule */ - const char *lhsalias; /* Alias for the LHS (NULL if none) */ - int lhsStart; /* True if left-hand side is the start symbol */ - int ruleline; /* Line number for the rule */ - int nrhs; /* Number of RHS symbols */ - struct symbol **rhs; /* The RHS symbols */ - const char **rhsalias; /* An alias for each RHS symbol (NULL if none) */ - int line; /* Line number at which code begins */ - const char *code; /* The code executed when this rule is reduced */ - struct symbol *precsym; /* Precedence symbol for this rule */ - int index; /* An index number for this rule */ - Boolean canReduce; /* True if this rule is ever reduced */ - struct rule *nextlhs; /* Next rule with the same LHS */ - struct rule *next; /* Next rule in the global list */ -}; - -/* A configuration is a production rule of the grammar together with -** a mark (dot) showing how much of that rule has been processed so far. -** Configurations also contain a follow-set which is a list of terminal -** symbols which are allowed to immediately follow the end of the rule. -** Every configuration is recorded as an instance of the following: */ -enum cfgstatus { - COMPLETE, - INCOMPLETE -}; -struct config { - struct rule *rp; /* The rule upon which the configuration is based */ - int dot; /* The parse point */ - char *fws; /* Follow-set for this configuration only */ - struct plink *fplp; /* Follow-set forward propagation links */ - struct plink *bplp; /* Follow-set backwards propagation links */ - struct state *stp; /* Pointer to state which contains this */ - enum cfgstatus status; /* used during followset and shift computations */ - struct config *next; /* Next configuration in the state */ - struct config *bp; /* The next basis configuration */ -}; - -enum e_action { - SHIFT, - ACCEPT, - REDUCE, - ERROR, - SSCONFLICT, /* A shift/shift conflict */ - SRCONFLICT, /* Was a reduce, but part of a conflict */ - RRCONFLICT, /* Was a reduce, but part of a conflict */ - SH_RESOLVED, /* Was a shift. Precedence resolved conflict */ - RD_RESOLVED, /* Was reduce. Precedence resolved conflict */ - NOT_USED /* Deleted by compression */ -}; - -/* Every shift or reduce operation is stored as one of the following */ -struct action { - struct symbol *sp; /* The look-ahead symbol */ - enum e_action type; - union { - struct state *stp; /* The new state, if a shift */ - struct rule *rp; /* The rule, if a reduce */ - } x; - struct action *next; /* Next action for this state */ - struct action *collide; /* Next action with the same hash */ -}; - -/* Each state of the generated parser's finite state machine -** is encoded as an instance of the following structure. */ -struct state { - struct config *bp; /* The basis configurations for this state */ - struct config *cfp; /* All configurations in this set */ - int statenum; /* Sequential number for this state */ - struct action *ap; /* Array of actions for this state */ - int nTknAct, nNtAct; /* Number of actions on terminals and nonterminals */ - int iTknOfst, iNtOfst; /* yy_action[] offset for terminals and nonterms */ - int iDflt; /* Default action */ -}; -#define NO_OFFSET (-2147483647) - -/* A followset propagation link indicates that the contents of one -** configuration followset should be propagated to another whenever -** the first changes. */ -struct plink { - struct config *cfp; /* The configuration to which linked */ - struct plink *next; /* The next propagate link */ -}; - -/* The state vector for the entire parser generator is recorded as -** follows. (LEMON uses no global variables and makes little use of -** static variables. Fields in the following structure can be thought -** of as begin global variables in the program.) */ -struct lemon { - struct state **sorted; /* Table of states sorted by state number */ - struct rule *rule; /* List of all rules */ - int nstate; /* Number of states */ - int nrule; /* Number of rules */ - int nsymbol; /* Number of terminal and nonterminal symbols */ - int nterminal; /* Number of terminal symbols */ - struct symbol **symbols; /* Sorted array of pointers to symbols */ - int errorcnt; /* Number of errors */ - struct symbol *errsym; /* The error symbol */ - struct symbol *wildcard; /* Token that matches anything */ - char *name; /* Name of the generated parser */ - char *arg; /* Declaration of the 3th argument to parser */ - char *tokentype; /* Type of terminal symbols in the parser stack */ - char *vartype; /* The default type of non-terminal symbols */ - char *start; /* Name of the start symbol for the grammar */ - char *stacksize; /* Size of the parser stack */ - char *include; /* Code to put at the start of the C file */ - char *error; /* Code to execute when an error is seen */ - char *overflow; /* Code to execute on a stack overflow */ - char *failure; /* Code to execute on parser failure */ - char *accept; /* Code to execute when the parser excepts */ - char *extracode; /* Code appended to the generated file */ - char *tokendest; /* Code to execute to destroy token data */ - char *vardest; /* Code for the default non-terminal destructor */ - char *filename; /* Name of the input file */ - char *outname; /* Name of the current output file */ - char *tokenprefix; /* A prefix added to token names in the .h file */ - int nconflict; /* Number of parsing conflicts */ -#if __MOJOSHADER__ - int nexpected; /* Number of expected parsing conflicts */ -#endif - int tablesize; /* Size of the parse tables */ - int basisflag; /* Print only basis configurations */ - int has_fallback; /* True if any %fallback is seen in the grammar */ - int nolinenosflag; /* True if #line statements should not be printed */ - char *argv0; /* Name of the program */ -}; - -#define MemoryCheck(X) if((X)==0){ \ - extern void memory_error(); \ - memory_error(); \ -} - -/**************** From the file "table.h" *********************************/ -/* -** All code in this file has been automatically generated -** from a specification in the file -** "table.q" -** by the associative array code building program "aagen". -** Do not edit this file! Instead, edit the specification -** file, then rerun aagen. -*/ -/* -** Code for processing tables in the LEMON parser generator. -*/ -/* Routines for handling a strings */ - -const char *Strsafe(const char *); - -void Strsafe_init(void); -int Strsafe_insert(const char *); -const char *Strsafe_find(const char *); - -/* Routines for handling symbols of the grammar */ - -struct symbol *Symbol_new(const char *); -int Symbolcmpp(const void *, const void *); -void Symbol_init(void); -int Symbol_insert(struct symbol *, const char *); -struct symbol *Symbol_find(const char *); -struct symbol *Symbol_Nth(int); -int Symbol_count(void); -struct symbol **Symbol_arrayof(void); - -/* Routines to manage the state table */ - -int Configcmp(const char *, const char *); -struct state *State_new(void); -void State_init(void); -int State_insert(struct state *, struct config *); -struct state *State_find(struct config *); -struct state **State_arrayof(/* */); - -/* Routines used for efficiency in Configlist_add */ - -void Configtable_init(void); -int Configtable_insert(struct config *); -struct config *Configtable_find(struct config *); -void Configtable_clear(int(*)(struct config *)); - -/****************** From the file "action.c" *******************************/ -/* -** Routines processing parser actions in the LEMON parser generator. -*/ - -/* Allocate a new parser action */ -static struct action *Action_new(void){ - static struct action *freelist = 0; - struct action *newaction; - - if( freelist==0 ){ - int i; - int amt = 100; - freelist = (struct action *)calloc(amt, sizeof(struct action)); - if( freelist==0 ){ - fprintf(stderr,"Unable to allocate memory for a new parser action."); - exit(1); - } - for(i=0; inext; - return newaction; -} - -/* Compare two actions for sorting purposes. Return negative, zero, or -** positive if the first action is less than, equal to, or greater than -** the first -*/ -static int actioncmp( - struct action *ap1, - struct action *ap2 -){ - int rc; - rc = ap1->sp->index - ap2->sp->index; - if( rc==0 ){ - rc = (int)ap1->type - (int)ap2->type; - } - if( rc==0 && ap1->type==REDUCE ){ - rc = ap1->x.rp->index - ap2->x.rp->index; - } - if( rc==0 ){ - rc = (int) (ap2 - ap1); - } - return rc; -} - -/* Sort parser actions */ -static struct action *Action_sort( - struct action *ap -){ - ap = (struct action *)msort((char *)ap,(char **)&ap->next, - (int(*)(const char*,const char*))actioncmp); - return ap; -} - -void Action_add( - struct action **app, - enum e_action type, - struct symbol *sp, - char *arg -){ - struct action *newaction; - newaction = Action_new(); - newaction->next = *app; - *app = newaction; - newaction->type = type; - newaction->sp = sp; - if( type==SHIFT ){ - newaction->x.stp = (struct state *)arg; - }else{ - newaction->x.rp = (struct rule *)arg; - } -} -/********************** New code to implement the "acttab" module ***********/ -/* -** This module implements routines use to construct the yy_action[] table. -*/ - -/* -** The state of the yy_action table under construction is an instance of -** the following structure. -** -** The yy_action table maps the pair (state_number, lookahead) into an -** action_number. The table is an array of integers pairs. The state_number -** determines an initial offset into the yy_action array. The lookahead -** value is then added to this initial offset to get an index X into the -** yy_action array. If the aAction[X].lookahead equals the value of the -** of the lookahead input, then the value of the action_number output is -** aAction[X].action. If the lookaheads do not match then the -** default action for the state_number is returned. -** -** All actions associated with a single state_number are first entered -** into aLookahead[] using multiple calls to acttab_action(). Then the -** actions for that single state_number are placed into the aAction[] -** array with a single call to acttab_insert(). The acttab_insert() call -** also resets the aLookahead[] array in preparation for the next -** state number. -*/ -struct lookahead_action { - int lookahead; /* Value of the lookahead token */ - int action; /* Action to take on the given lookahead */ -}; -typedef struct acttab acttab; -struct acttab { - int nAction; /* Number of used slots in aAction[] */ - int nActionAlloc; /* Slots allocated for aAction[] */ - struct lookahead_action - *aAction, /* The yy_action[] table under construction */ - *aLookahead; /* A single new transaction set */ - int mnLookahead; /* Minimum aLookahead[].lookahead */ - int mnAction; /* Action associated with mnLookahead */ - int mxLookahead; /* Maximum aLookahead[].lookahead */ - int nLookahead; /* Used slots in aLookahead[] */ - int nLookaheadAlloc; /* Slots allocated in aLookahead[] */ -}; - -/* Return the number of entries in the yy_action table */ -#define acttab_size(X) ((X)->nAction) - -/* The value for the N-th entry in yy_action */ -#define acttab_yyaction(X,N) ((X)->aAction[N].action) - -/* The value for the N-th entry in yy_lookahead */ -#define acttab_yylookahead(X,N) ((X)->aAction[N].lookahead) - -/* Free all memory associated with the given acttab */ -void acttab_free(acttab *p){ - free( p->aAction ); - free( p->aLookahead ); - free( p ); -} - -/* Allocate a new acttab structure */ -acttab *acttab_alloc(void){ - acttab *p = (acttab *) calloc( 1, sizeof(*p) ); - if( p==0 ){ - fprintf(stderr,"Unable to allocate memory for a new acttab."); - exit(1); - } - memset(p, 0, sizeof(*p)); - return p; -} - -/* Add a new action to the current transaction set. -** -** This routine is called once for each lookahead for a particular -** state. -*/ -void acttab_action(acttab *p, int lookahead, int action){ - if( p->nLookahead>=p->nLookaheadAlloc ){ - p->nLookaheadAlloc += 25; - p->aLookahead = (struct lookahead_action *) realloc( p->aLookahead, - sizeof(p->aLookahead[0])*p->nLookaheadAlloc ); - if( p->aLookahead==0 ){ - fprintf(stderr,"malloc failed\n"); - exit(1); - } - } - if( p->nLookahead==0 ){ - p->mxLookahead = lookahead; - p->mnLookahead = lookahead; - p->mnAction = action; - }else{ - if( p->mxLookaheadmxLookahead = lookahead; - if( p->mnLookahead>lookahead ){ - p->mnLookahead = lookahead; - p->mnAction = action; - } - } - p->aLookahead[p->nLookahead].lookahead = lookahead; - p->aLookahead[p->nLookahead].action = action; - p->nLookahead++; -} - -/* -** Add the transaction set built up with prior calls to acttab_action() -** into the current action table. Then reset the transaction set back -** to an empty set in preparation for a new round of acttab_action() calls. -** -** Return the offset into the action table of the new transaction. -*/ -int acttab_insert(acttab *p){ - int i, j, k, n; - assert( p->nLookahead>0 ); - - /* Make sure we have enough space to hold the expanded action table - ** in the worst case. The worst case occurs if the transaction set - ** must be appended to the current action table - */ - n = p->mxLookahead + 1; - if( p->nAction + n >= p->nActionAlloc ){ - int oldAlloc = p->nActionAlloc; - p->nActionAlloc = p->nAction + n + p->nActionAlloc + 20; - p->aAction = (struct lookahead_action *) realloc( p->aAction, - sizeof(p->aAction[0])*p->nActionAlloc); - if( p->aAction==0 ){ - fprintf(stderr,"malloc failed\n"); - exit(1); - } - for(i=oldAlloc; inActionAlloc; i++){ - p->aAction[i].lookahead = -1; - p->aAction[i].action = -1; - } - } - - /* Scan the existing action table looking for an offset that is a - ** duplicate of the current transaction set. Fall out of the loop - ** if and when the duplicate is found. - ** - ** i is the index in p->aAction[] where p->mnLookahead is inserted. - */ - for(i=p->nAction-1; i>=0; i--){ - if( p->aAction[i].lookahead==p->mnLookahead ){ - /* All lookaheads and actions in the aLookahead[] transaction - ** must match against the candidate aAction[i] entry. */ - if( p->aAction[i].action!=p->mnAction ) continue; - for(j=0; jnLookahead; j++){ - k = p->aLookahead[j].lookahead - p->mnLookahead + i; - if( k<0 || k>=p->nAction ) break; - if( p->aLookahead[j].lookahead!=p->aAction[k].lookahead ) break; - if( p->aLookahead[j].action!=p->aAction[k].action ) break; - } - if( jnLookahead ) continue; - - /* No possible lookahead value that is not in the aLookahead[] - ** transaction is allowed to match aAction[i] */ - n = 0; - for(j=0; jnAction; j++){ - if( p->aAction[j].lookahead<0 ) continue; - if( p->aAction[j].lookahead==j+p->mnLookahead-i ) n++; - } - if( n==p->nLookahead ){ - break; /* An exact match is found at offset i */ - } - } - } - - /* If no existing offsets exactly match the current transaction, find an - ** an empty offset in the aAction[] table in which we can add the - ** aLookahead[] transaction. - */ - if( i<0 ){ - /* Look for holes in the aAction[] table that fit the current - ** aLookahead[] transaction. Leave i set to the offset of the hole. - ** If no holes are found, i is left at p->nAction, which means the - ** transaction will be appended. */ - for(i=0; inActionAlloc - p->mxLookahead; i++){ - if( p->aAction[i].lookahead<0 ){ - for(j=0; jnLookahead; j++){ - k = p->aLookahead[j].lookahead - p->mnLookahead + i; - if( k<0 ) break; - if( p->aAction[k].lookahead>=0 ) break; - } - if( jnLookahead ) continue; - for(j=0; jnAction; j++){ - if( p->aAction[j].lookahead==j+p->mnLookahead-i ) break; - } - if( j==p->nAction ){ - break; /* Fits in empty slots */ - } - } - } - } - /* Insert transaction set at index i. */ - for(j=0; jnLookahead; j++){ - k = p->aLookahead[j].lookahead - p->mnLookahead + i; - p->aAction[k] = p->aLookahead[j]; - if( k>=p->nAction ) p->nAction = k+1; - } - p->nLookahead = 0; - - /* Return the offset that is added to the lookahead in order to get the - ** index into yy_action of the action */ - return i - p->mnLookahead; -} - -/********************** From the file "build.c" *****************************/ -/* -** Routines to construction the finite state machine for the LEMON -** parser generator. -*/ - -/* Find a precedence symbol of every rule in the grammar. -** -** Those rules which have a precedence symbol coded in the input -** grammar using the "[symbol]" construct will already have the -** rp->precsym field filled. Other rules take as their precedence -** symbol the first RHS symbol with a defined precedence. If there -** are not RHS symbols with a defined precedence, the precedence -** symbol field is left blank. -*/ -void FindRulePrecedences(struct lemon *xp) -{ - struct rule *rp; - for(rp=xp->rule; rp; rp=rp->next){ - if( rp->precsym==0 ){ - int i, j; - for(i=0; inrhs && rp->precsym==0; i++){ - struct symbol *sp = rp->rhs[i]; - if( sp->type==MULTITERMINAL ){ - for(j=0; jnsubsym; j++){ - if( sp->subsym[j]->prec>=0 ){ - rp->precsym = sp->subsym[j]; - break; - } - } - }else if( sp->prec>=0 ){ - rp->precsym = rp->rhs[i]; - } - } - } - } - return; -} - -/* Find all nonterminals which will generate the empty string. -** Then go back and compute the first sets of every nonterminal. -** The first set is the set of all terminal symbols which can begin -** a string generated by that nonterminal. -*/ -void FindFirstSets(struct lemon *lemp) -{ - int i, j; - struct rule *rp; - int progress; - - for(i=0; insymbol; i++){ - lemp->symbols[i]->lambda = LEMON_FALSE; - } - for(i=lemp->nterminal; insymbol; i++){ - lemp->symbols[i]->firstset = SetNew(); - } - - /* First compute all lambdas */ - do{ - progress = 0; - for(rp=lemp->rule; rp; rp=rp->next){ - if( rp->lhs->lambda ) continue; - for(i=0; inrhs; i++){ - struct symbol *sp = rp->rhs[i]; - if( sp->type!=TERMINAL || sp->lambda==LEMON_FALSE ) break; - } - if( i==rp->nrhs ){ - rp->lhs->lambda = LEMON_TRUE; - progress = 1; - } - } - }while( progress ); - - /* Now compute all first sets */ - do{ - struct symbol *s1, *s2; - progress = 0; - for(rp=lemp->rule; rp; rp=rp->next){ - s1 = rp->lhs; - for(i=0; inrhs; i++){ - s2 = rp->rhs[i]; - if( s2->type==TERMINAL ){ - progress += SetAdd(s1->firstset,s2->index); - break; - }else if( s2->type==MULTITERMINAL ){ - for(j=0; jnsubsym; j++){ - progress += SetAdd(s1->firstset,s2->subsym[j]->index); - } - break; - }else if( s1==s2 ){ - if( s1->lambda==LEMON_FALSE ) break; - }else{ - progress += SetUnion(s1->firstset,s2->firstset); - if( s2->lambda==LEMON_FALSE ) break; - } - } - } - }while( progress ); - return; -} - -/* Compute all LR(0) states for the grammar. Links -** are added to between some states so that the LR(1) follow sets -** can be computed later. -*/ -PRIVATE struct state *getstate(struct lemon *); /* forward reference */ -void FindStates(struct lemon *lemp) -{ - struct symbol *sp; - struct rule *rp; - - Configlist_init(); - - /* Find the start symbol */ - if( lemp->start ){ - sp = Symbol_find(lemp->start); - if( sp==0 ){ - ErrorMsg(lemp->filename,0, -"The specified start symbol \"%s\" is not \ -in a nonterminal of the grammar. \"%s\" will be used as the start \ -symbol instead.",lemp->start,lemp->rule->lhs->name); - lemp->errorcnt++; - sp = lemp->rule->lhs; - } - }else{ - sp = lemp->rule->lhs; - } - - /* Make sure the start symbol doesn't occur on the right-hand side of - ** any rule. Report an error if it does. (YACC would generate a new - ** start symbol in this case.) */ - for(rp=lemp->rule; rp; rp=rp->next){ - int i; - for(i=0; inrhs; i++){ - if( rp->rhs[i]==sp ){ /* FIX ME: Deal with multiterminals */ - ErrorMsg(lemp->filename,0, -"The start symbol \"%s\" occurs on the \ -right-hand side of a rule. This will result in a parser which \ -does not work properly.",sp->name); - lemp->errorcnt++; - } - } - } - - /* The basis configuration set for the first state - ** is all rules which have the start symbol as their - ** left-hand side */ - for(rp=sp->rule; rp; rp=rp->nextlhs){ - struct config *newcfp; - rp->lhsStart = 1; - newcfp = Configlist_addbasis(rp,0); - SetAdd(newcfp->fws,0); - } - - /* Compute the first state. All other states will be - ** computed automatically during the computation of the first one. - ** The returned pointer to the first state is not used. */ - (void)getstate(lemp); - return; -} - -/* Return a pointer to a state which is described by the configuration -** list which has been built from calls to Configlist_add. -*/ -PRIVATE void buildshifts(struct lemon *, struct state *); /* Forwd ref */ -PRIVATE struct state *getstate(struct lemon *lemp) -{ - struct config *cfp, *bp; - struct state *stp; - - /* Extract the sorted basis of the new state. The basis was constructed - ** by prior calls to "Configlist_addbasis()". */ - Configlist_sortbasis(); - bp = Configlist_basis(); - - /* Get a state with the same basis */ - stp = State_find(bp); - if( stp ){ - /* A state with the same basis already exists! Copy all the follow-set - ** propagation links from the state under construction into the - ** preexisting state, then return a pointer to the preexisting state */ - struct config *x, *y; - for(x=bp, y=stp->bp; x && y; x=x->bp, y=y->bp){ - Plink_copy(&y->bplp,x->bplp); - Plink_delete(x->fplp); - x->fplp = x->bplp = 0; - } - cfp = Configlist_return(); - Configlist_eat(cfp); - }else{ - /* This really is a new state. Construct all the details */ - Configlist_closure(lemp); /* Compute the configuration closure */ - Configlist_sort(); /* Sort the configuration closure */ - cfp = Configlist_return(); /* Get a pointer to the config list */ - stp = State_new(); /* A new state structure */ - MemoryCheck(stp); - stp->bp = bp; /* Remember the configuration basis */ - stp->cfp = cfp; /* Remember the configuration closure */ - stp->statenum = lemp->nstate++; /* Every state gets a sequence number */ - stp->ap = 0; /* No actions, yet. */ - State_insert(stp,stp->bp); /* Add to the state table */ - buildshifts(lemp,stp); /* Recursively compute successor states */ - } - return stp; -} - -/* -** Return true if two symbols are the same. -*/ -int same_symbol(struct symbol *a, struct symbol *b) -{ - int i; - if( a==b ) return 1; - if( a->type!=MULTITERMINAL ) return 0; - if( b->type!=MULTITERMINAL ) return 0; - if( a->nsubsym!=b->nsubsym ) return 0; - for(i=0; insubsym; i++){ - if( a->subsym[i]!=b->subsym[i] ) return 0; - } - return 1; -} - -/* Construct all successor states to the given state. A "successor" -** state is any state which can be reached by a shift action. -*/ -PRIVATE void buildshifts(struct lemon *lemp, struct state *stp) -{ - struct config *cfp; /* For looping thru the config closure of "stp" */ - struct config *bcfp; /* For the inner loop on config closure of "stp" */ - struct config *newcfg; /* */ - struct symbol *sp; /* Symbol following the dot in configuration "cfp" */ - struct symbol *bsp; /* Symbol following the dot in configuration "bcfp" */ - struct state *newstp; /* A pointer to a successor state */ - - /* Each configuration becomes complete after it contibutes to a successor - ** state. Initially, all configurations are incomplete */ - for(cfp=stp->cfp; cfp; cfp=cfp->next) cfp->status = INCOMPLETE; - - /* Loop through all configurations of the state "stp" */ - for(cfp=stp->cfp; cfp; cfp=cfp->next){ - if( cfp->status==COMPLETE ) continue; /* Already used by inner loop */ - if( cfp->dot>=cfp->rp->nrhs ) continue; /* Can't shift this config */ - Configlist_reset(); /* Reset the new config set */ - sp = cfp->rp->rhs[cfp->dot]; /* Symbol after the dot */ - - /* For every configuration in the state "stp" which has the symbol "sp" - ** following its dot, add the same configuration to the basis set under - ** construction but with the dot shifted one symbol to the right. */ - for(bcfp=cfp; bcfp; bcfp=bcfp->next){ - if( bcfp->status==COMPLETE ) continue; /* Already used */ - if( bcfp->dot>=bcfp->rp->nrhs ) continue; /* Can't shift this one */ - bsp = bcfp->rp->rhs[bcfp->dot]; /* Get symbol after dot */ - if( !same_symbol(bsp,sp) ) continue; /* Must be same as for "cfp" */ - bcfp->status = COMPLETE; /* Mark this config as used */ - newcfg = Configlist_addbasis(bcfp->rp,bcfp->dot+1); - Plink_add(&newcfg->bplp,bcfp); - } - - /* Get a pointer to the state described by the basis configuration set - ** constructed in the preceding loop */ - newstp = getstate(lemp); - - /* The state "newstp" is reached from the state "stp" by a shift action - ** on the symbol "sp" */ - if( sp->type==MULTITERMINAL ){ - int i; - for(i=0; insubsym; i++){ - Action_add(&stp->ap,SHIFT,sp->subsym[i],(char*)newstp); - } - }else{ - Action_add(&stp->ap,SHIFT,sp,(char *)newstp); - } - } -} - -/* -** Construct the propagation links -*/ -void FindLinks(struct lemon *lemp) -{ - int i; - struct config *cfp, *other; - struct state *stp; - struct plink *plp; - - /* Housekeeping detail: - ** Add to every propagate link a pointer back to the state to - ** which the link is attached. */ - for(i=0; instate; i++){ - stp = lemp->sorted[i]; - for(cfp=stp->cfp; cfp; cfp=cfp->next){ - cfp->stp = stp; - } - } - - /* Convert all backlinks into forward links. Only the forward - ** links are used in the follow-set computation. */ - for(i=0; instate; i++){ - stp = lemp->sorted[i]; - for(cfp=stp->cfp; cfp; cfp=cfp->next){ - for(plp=cfp->bplp; plp; plp=plp->next){ - other = plp->cfp; - Plink_add(&other->fplp,cfp); - } - } - } -} - -/* Compute all followsets. -** -** A followset is the set of all symbols which can come immediately -** after a configuration. -*/ -void FindFollowSets(struct lemon *lemp) -{ - int i; - struct config *cfp; - struct plink *plp; - int progress; - int change; - - for(i=0; instate; i++){ - for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ - cfp->status = INCOMPLETE; - } - } - - do{ - progress = 0; - for(i=0; instate; i++){ - for(cfp=lemp->sorted[i]->cfp; cfp; cfp=cfp->next){ - if( cfp->status==COMPLETE ) continue; - for(plp=cfp->fplp; plp; plp=plp->next){ - change = SetUnion(plp->cfp->fws,cfp->fws); - if( change ){ - plp->cfp->status = INCOMPLETE; - progress = 1; - } - } - cfp->status = COMPLETE; - } - } - }while( progress ); -} - -static int resolve_conflict(struct action *,struct action *, struct symbol *); - -/* Compute the reduce actions, and resolve conflicts. -*/ -void FindActions(struct lemon *lemp) -{ - int i,j; - struct config *cfp; - struct state *stp; - struct symbol *sp; - struct rule *rp; - - /* Add all of the reduce actions - ** A reduce action is added for each element of the followset of - ** a configuration which has its dot at the extreme right. - */ - for(i=0; instate; i++){ /* Loop over all states */ - stp = lemp->sorted[i]; - for(cfp=stp->cfp; cfp; cfp=cfp->next){ /* Loop over all configurations */ - if( cfp->rp->nrhs==cfp->dot ){ /* Is dot at extreme right? */ - for(j=0; jnterminal; j++){ - if( SetFind(cfp->fws,j) ){ - /* Add a reduce action to the state "stp" which will reduce by the - ** rule "cfp->rp" if the lookahead symbol is "lemp->symbols[j]" */ - Action_add(&stp->ap,REDUCE,lemp->symbols[j],(char *)cfp->rp); - } - } - } - } - } - - /* Add the accepting token */ - if( lemp->start ){ - sp = Symbol_find(lemp->start); - if( sp==0 ) sp = lemp->rule->lhs; - }else{ - sp = lemp->rule->lhs; - } - /* Add to the first state (which is always the starting state of the - ** finite state machine) an action to ACCEPT if the lookahead is the - ** start nonterminal. */ - Action_add(&lemp->sorted[0]->ap,ACCEPT,sp,0); - - /* Resolve conflicts */ - for(i=0; instate; i++){ - struct action *ap, *nap; - struct state *stp; - stp = lemp->sorted[i]; - /* assert( stp->ap ); */ - stp->ap = Action_sort(stp->ap); - for(ap=stp->ap; ap && ap->next; ap=ap->next){ - for(nap=ap->next; nap && nap->sp==ap->sp; nap=nap->next){ - /* The two actions "ap" and "nap" have the same lookahead. - ** Figure out which one should be used */ - lemp->nconflict += resolve_conflict(ap,nap,lemp->errsym); - } - } - } - - /* Report an error for each rule that can never be reduced. */ - for(rp=lemp->rule; rp; rp=rp->next) rp->canReduce = LEMON_FALSE; - for(i=0; instate; i++){ - struct action *ap; - for(ap=lemp->sorted[i]->ap; ap; ap=ap->next){ - if( ap->type==REDUCE ) ap->x.rp->canReduce = LEMON_TRUE; - } - } - for(rp=lemp->rule; rp; rp=rp->next){ - if( rp->canReduce ) continue; - ErrorMsg(lemp->filename,rp->ruleline,"This rule can not be reduced.\n"); - lemp->errorcnt++; - } -} - -/* Resolve a conflict between the two given actions. If the -** conflict can't be resolved, return non-zero. -** -** NO LONGER TRUE: -** To resolve a conflict, first look to see if either action -** is on an error rule. In that case, take the action which -** is not associated with the error rule. If neither or both -** actions are associated with an error rule, then try to -** use precedence to resolve the conflict. -** -** If either action is a SHIFT, then it must be apx. This -** function won't work if apx->type==REDUCE and apy->type==SHIFT. -*/ -static int resolve_conflict( - struct action *apx, - struct action *apy, - struct symbol *errsym /* The error symbol (if defined. NULL otherwise) */ -){ - struct symbol *spx, *spy; - int errcnt = 0; - assert( apx->sp==apy->sp ); /* Otherwise there would be no conflict */ - if( apx->type==SHIFT && apy->type==SHIFT ){ - apy->type = SSCONFLICT; - errcnt++; - } - if( apx->type==SHIFT && apy->type==REDUCE ){ - spx = apx->sp; - spy = apy->x.rp->precsym; - if( spy==0 || spx->prec<0 || spy->prec<0 ){ - /* Not enough precedence information. */ - apy->type = SRCONFLICT; - errcnt++; - }else if( spx->prec>spy->prec ){ /* Lower precedence wins */ - apy->type = RD_RESOLVED; - }else if( spx->precprec ){ - apx->type = SH_RESOLVED; - }else if( spx->prec==spy->prec && spx->assoc==RIGHT ){ /* Use operator */ - apy->type = RD_RESOLVED; /* associativity */ - }else if( spx->prec==spy->prec && spx->assoc==LEFT ){ /* to break tie */ - apx->type = SH_RESOLVED; - }else{ - assert( spx->prec==spy->prec && spx->assoc==NONE ); - apy->type = SRCONFLICT; - errcnt++; - } - }else if( apx->type==REDUCE && apy->type==REDUCE ){ - spx = apx->x.rp->precsym; - spy = apy->x.rp->precsym; - if( spx==0 || spy==0 || spx->prec<0 || - spy->prec<0 || spx->prec==spy->prec ){ - apy->type = RRCONFLICT; - errcnt++; - }else if( spx->prec>spy->prec ){ - apy->type = RD_RESOLVED; - }else if( spx->precprec ){ - apx->type = RD_RESOLVED; - } - }else{ - assert( - apx->type==SH_RESOLVED || - apx->type==RD_RESOLVED || - apx->type==SSCONFLICT || - apx->type==SRCONFLICT || - apx->type==RRCONFLICT || - apy->type==SH_RESOLVED || - apy->type==RD_RESOLVED || - apy->type==SSCONFLICT || - apy->type==SRCONFLICT || - apy->type==RRCONFLICT - ); - /* The REDUCE/SHIFT case cannot happen because SHIFTs come before - ** REDUCEs on the list. If we reach this point it must be because - ** the parser conflict had already been resolved. */ - } - return errcnt; -} -/********************* From the file "configlist.c" *************************/ -/* -** Routines to processing a configuration list and building a state -** in the LEMON parser generator. -*/ - -static struct config *freelist = 0; /* List of free configurations */ -static struct config *current = 0; /* Top of list of configurations */ -static struct config **currentend = 0; /* Last on list of configs */ -static struct config *basis = 0; /* Top of list of basis configs */ -static struct config **basisend = 0; /* End of list of basis configs */ - -/* Return a pointer to a new configuration */ -PRIVATE struct config *newconfig(){ - struct config *newcfg; - if( freelist==0 ){ - int i; - int amt = 3; - freelist = (struct config *)calloc( amt, sizeof(struct config) ); - if( freelist==0 ){ - fprintf(stderr,"Unable to allocate memory for a new configuration."); - exit(1); - } - for(i=0; inext; - return newcfg; -} - -/* The configuration "old" is no longer used */ -PRIVATE void deleteconfig(struct config *old) -{ - old->next = freelist; - freelist = old; -} - -/* Initialized the configuration list builder */ -void Configlist_init(){ - current = 0; - currentend = ¤t; - basis = 0; - basisend = &basis; - Configtable_init(); - return; -} - -/* Initialized the configuration list builder */ -void Configlist_reset(){ - current = 0; - currentend = ¤t; - basis = 0; - basisend = &basis; - Configtable_clear(0); - return; -} - -/* Add another configuration to the configuration list */ -struct config *Configlist_add( - struct rule *rp, /* The rule */ - int dot /* Index into the RHS of the rule where the dot goes */ -){ - struct config *cfp, model; - - assert( currentend!=0 ); - model.rp = rp; - model.dot = dot; - cfp = Configtable_find(&model); - if( cfp==0 ){ - cfp = newconfig(); - cfp->rp = rp; - cfp->dot = dot; - cfp->fws = SetNew(); - cfp->stp = 0; - cfp->fplp = cfp->bplp = 0; - cfp->next = 0; - cfp->bp = 0; - *currentend = cfp; - currentend = &cfp->next; - Configtable_insert(cfp); - } - return cfp; -} - -/* Add a basis configuration to the configuration list */ -struct config *Configlist_addbasis(struct rule *rp, int dot) -{ - struct config *cfp, model; - - assert( basisend!=0 ); - assert( currentend!=0 ); - model.rp = rp; - model.dot = dot; - cfp = Configtable_find(&model); - if( cfp==0 ){ - cfp = newconfig(); - cfp->rp = rp; - cfp->dot = dot; - cfp->fws = SetNew(); - cfp->stp = 0; - cfp->fplp = cfp->bplp = 0; - cfp->next = 0; - cfp->bp = 0; - *currentend = cfp; - currentend = &cfp->next; - *basisend = cfp; - basisend = &cfp->bp; - Configtable_insert(cfp); - } - return cfp; -} - -/* Compute the closure of the configuration list */ -void Configlist_closure(struct lemon *lemp) -{ - struct config *cfp, *newcfp; - struct rule *rp, *newrp; - struct symbol *sp, *xsp; - int i, dot; - - assert( currentend!=0 ); - for(cfp=current; cfp; cfp=cfp->next){ - rp = cfp->rp; - dot = cfp->dot; - if( dot>=rp->nrhs ) continue; - sp = rp->rhs[dot]; - if( sp->type==NONTERMINAL ){ - if( sp->rule==0 && sp!=lemp->errsym ){ - ErrorMsg(lemp->filename,rp->line,"Nonterminal \"%s\" has no rules.", - sp->name); - lemp->errorcnt++; - } - for(newrp=sp->rule; newrp; newrp=newrp->nextlhs){ - newcfp = Configlist_add(newrp,0); - for(i=dot+1; inrhs; i++){ - xsp = rp->rhs[i]; - if( xsp->type==TERMINAL ){ - SetAdd(newcfp->fws,xsp->index); - break; - }else if( xsp->type==MULTITERMINAL ){ - int k; - for(k=0; knsubsym; k++){ - SetAdd(newcfp->fws, xsp->subsym[k]->index); - } - break; - }else{ - SetUnion(newcfp->fws,xsp->firstset); - if( xsp->lambda==LEMON_FALSE ) break; - } - } - if( i==rp->nrhs ) Plink_add(&cfp->fplp,newcfp); - } - } - } - return; -} - -/* Sort the configuration list */ -void Configlist_sort(){ - current = (struct config *)msort((char *)current,(char **)&(current->next),Configcmp); - currentend = 0; - return; -} - -/* Sort the basis configuration list */ -void Configlist_sortbasis(){ - basis = (struct config *)msort((char *)current,(char **)&(current->bp),Configcmp); - basisend = 0; - return; -} - -/* Return a pointer to the head of the configuration list and -** reset the list */ -struct config *Configlist_return(){ - struct config *old; - old = current; - current = 0; - currentend = 0; - return old; -} - -/* Return a pointer to the head of the configuration list and -** reset the list */ -struct config *Configlist_basis(){ - struct config *old; - old = basis; - basis = 0; - basisend = 0; - return old; -} - -/* Free all elements of the given configuration list */ -void Configlist_eat(struct config *cfp) -{ - struct config *nextcfp; - for(; cfp; cfp=nextcfp){ - nextcfp = cfp->next; - assert( cfp->fplp==0 ); - assert( cfp->bplp==0 ); - if( cfp->fws ) SetFree(cfp->fws); - deleteconfig(cfp); - } - return; -} -/***************** From the file "error.c" *********************************/ -/* -** Code for printing error message. -*/ - -void ErrorMsg(const char *filename, int lineno, const char *format, ...){ - va_list ap; - fprintf(stderr, "%s:%d: ", filename, lineno); - va_start(ap, format); - vfprintf(stderr,format,ap); - va_end(ap); - fprintf(stderr, "\n"); -} -/**************** From the file "main.c" ************************************/ -/* -** Main program file for the LEMON parser generator. -*/ - -/* Report an out-of-memory condition and abort. This function -** is used mostly by the "MemoryCheck" macro in struct.h -*/ -void memory_error(){ - fprintf(stderr,"Out of memory. Aborting...\n"); - exit(1); -} - -static int nDefine = 0; /* Number of -D options on the command line */ -static char **azDefine = 0; /* Name of the -D macros */ - -/* This routine is called with the argument to each -D command-line option. -** Add the macro defined to the azDefine array. -*/ -static void handle_D_option(char *z){ - char **paz; - nDefine++; - azDefine = (char **) realloc(azDefine, sizeof(azDefine[0])*nDefine); - if( azDefine==0 ){ - fprintf(stderr,"out of memory\n"); - exit(1); - } - paz = &azDefine[nDefine-1]; - *paz = (char *) malloc( lemonStrlen(z)+1 ); - if( *paz==0 ){ - fprintf(stderr,"out of memory\n"); - exit(1); - } - strcpy(*paz, z); - for(z=*paz; *z && *z!='='; z++){} - *z = 0; -} - -static char *user_templatename = NULL; -static void handle_T_option(char *z){ - user_templatename = (char *) malloc( lemonStrlen(z)+1 ); - if( user_templatename==0 ){ - memory_error(); - } - strcpy(user_templatename, z); -} - -/* The main program. Parse the command line and do it... */ -int main(int argc, char **argv) -{ - static int version = 0; - static int rpflag = 0; - static int basisflag = 0; - static int compress = 0; - static int quiet = 0; - static int statistics = 0; - static int mhflag = 0; - static int nolinenosflag = 0; - static struct s_options options[] = { - {OPT_FLAG, "b", (char*)&basisflag, "Print only the basis in report."}, - {OPT_FLAG, "c", (char*)&compress, "Don't compress the action table."}, - {OPT_FSTR, "D", (char*)handle_D_option, "Define an %ifdef macro."}, - {OPT_FSTR, "T", (char*)handle_T_option, "Specify a template file."}, - {OPT_FLAG, "g", (char*)&rpflag, "Print grammar without actions."}, - {OPT_FLAG, "m", (char*)&mhflag, "Output a makeheaders compatible file."}, - {OPT_FLAG, "l", (char*)&nolinenosflag, "Do not print #line statements."}, - {OPT_FLAG, "q", (char*)&quiet, "(Quiet) Don't print the report file."}, - {OPT_FLAG, "s", (char*)&statistics, - "Print parser stats to standard output."}, - {OPT_FLAG, "x", (char*)&version, "Print the version number."}, - {OPT_FLAG,0,0,0} - }; - int i; - int exitcode; - struct lemon lem; - - atexit(LemonAtExit); - - OptInit(argv,options,stderr); - if( version ){ - printf("Lemon version 1.0\n"); -#if __MOJOSHADER__ - printf(" (...with MojoShader hacks.)\n"); -#endif - exit(0); - } - if( OptNArgs()!=1 ){ - fprintf(stderr,"Exactly one filename argument is required.\n"); - exit(1); - } - memset(&lem, 0, sizeof(lem)); - lem.errorcnt = 0; -#if __MOJOSHADER__ - lem.nexpected = -1; -#endif - - /* Initialize the machine */ - Strsafe_init(); - Symbol_init(); - State_init(); - lem.argv0 = argv[0]; - lem.filename = OptArg(0); - lem.basisflag = basisflag; - lem.nolinenosflag = nolinenosflag; - Symbol_new("$"); - lem.errsym = Symbol_new("error"); - lem.errsym->useCnt = 0; - - /* Parse the input file */ - Parse(&lem); - if( lem.errorcnt ) exit(lem.errorcnt); - if( lem.nrule==0 ){ - fprintf(stderr,"Empty grammar.\n"); - exit(1); - } - - /* Count and index the symbols of the grammar */ - lem.nsymbol = Symbol_count(); - Symbol_new("{default}"); - lem.symbols = Symbol_arrayof(); - for(i=0; i<=lem.nsymbol; i++) lem.symbols[i]->index = i; - qsort(lem.symbols,lem.nsymbol+1,sizeof(struct symbol*), Symbolcmpp); - for(i=0; i<=lem.nsymbol; i++) lem.symbols[i]->index = i; - for(i=1; isupper(lem.symbols[i]->name[0]); i++); - lem.nterminal = i; - - /* Generate a reprint of the grammar, if requested on the command line */ - if( rpflag ){ - Reprint(&lem); - }else{ - /* Initialize the size for all follow and first sets */ - SetSize(lem.nterminal+1); - - /* Find the precedence for every production rule (that has one) */ - FindRulePrecedences(&lem); - - /* Compute the lambda-nonterminals and the first-sets for every - ** nonterminal */ - FindFirstSets(&lem); - - /* Compute all LR(0) states. Also record follow-set propagation - ** links so that the follow-set can be computed later */ - lem.nstate = 0; - FindStates(&lem); - lem.sorted = State_arrayof(); - - /* Tie up loose ends on the propagation links */ - FindLinks(&lem); - - /* Compute the follow set of every reducible configuration */ - FindFollowSets(&lem); - - /* Compute the action tables */ - FindActions(&lem); - - /* Compress the action tables */ - if( compress==0 ) CompressTables(&lem); - - /* Reorder and renumber the states so that states with fewer choices - ** occur at the end. */ - ResortStates(&lem); - - /* Generate a report of the parser generated. (the "y.output" file) */ - if( !quiet ) ReportOutput(&lem); - - /* Generate the source code for the parser */ - ReportTable(&lem, mhflag); - - /* Produce a header file for use by the scanner. (This step is - ** omitted if the "-m" option is used because makeheaders will - ** generate the file for us.) */ -#if !__MOJOSHADER__ - if( !mhflag ) ReportHeader(&lem); -#endif - } - if( statistics ){ - printf("Parser statistics: %d terminals, %d nonterminals, %d rules\n", - lem.nterminal, lem.nsymbol - lem.nterminal, lem.nrule); - printf(" %d states, %d parser table entries, %d conflicts\n", - lem.nstate, lem.tablesize, lem.nconflict); - } - -#if __MOJOSHADER__ - if( lem.nexpected < 0 ) { - lem.nexpected = 0; /* grammar didn't have an %expect declaration. */ - } - if( lem.nconflict != lem.nexpected ){ - fprintf(stderr,"%d parsing conflicts (%d expected).\n",lem.nconflict,lem.nexpected); - } - /* return 0 on success, 1 on failure. */ - exitcode = ((lem.errorcnt > 0) || (lem.nconflict != lem.nexpected)) ? 1 : 0; -#else - if( lem.nconflict > 0 ){ - fprintf(stderr,"%d parsing conflicts.\n",lem.nconflict); - } - - /* return 0 on success, 1 on failure. */ - exitcode = ((lem.errorcnt > 0) || (lem.nconflict > 0)) ? 1 : 0; -#endif - successful_exit = (exitcode == 0); - exit(exitcode); - return (exitcode); -} -/******************** From the file "msort.c" *******************************/ -/* -** A generic merge-sort program. -** -** USAGE: -** Let "ptr" be a pointer to some structure which is at the head of -** a null-terminated list. Then to sort the list call: -** -** ptr = msort(ptr,&(ptr->next),cmpfnc); -** -** In the above, "cmpfnc" is a pointer to a function which compares -** two instances of the structure and returns an integer, as in -** strcmp. The second argument is a pointer to the pointer to the -** second element of the linked list. This address is used to compute -** the offset to the "next" field within the structure. The offset to -** the "next" field must be constant for all structures in the list. -** -** The function returns a new pointer which is the head of the list -** after sorting. -** -** ALGORITHM: -** Merge-sort. -*/ - -/* -** Return a pointer to the next structure in the linked list. -*/ -#define NEXT(A) (*(char**)(((unsigned long)A)+offset)) - -/* -** Inputs: -** a: A sorted, null-terminated linked list. (May be null). -** b: A sorted, null-terminated linked list. (May be null). -** cmp: A pointer to the comparison function. -** offset: Offset in the structure to the "next" field. -** -** Return Value: -** A pointer to the head of a sorted list containing the elements -** of both a and b. -** -** Side effects: -** The "next" pointers for elements in the lists a and b are -** changed. -*/ -static char *merge( - char *a, - char *b, - int (*cmp)(const char*,const char*), - int offset -){ - char *ptr, *head; - - if( a==0 ){ - head = b; - }else if( b==0 ){ - head = a; - }else{ - if( (*cmp)(a,b)<=0 ){ - ptr = a; - a = NEXT(a); - }else{ - ptr = b; - b = NEXT(b); - } - head = ptr; - while( a && b ){ - if( (*cmp)(a,b)<=0 ){ - NEXT(ptr) = a; - ptr = a; - a = NEXT(a); - }else{ - NEXT(ptr) = b; - ptr = b; - b = NEXT(b); - } - } - if( a ) NEXT(ptr) = a; - else NEXT(ptr) = b; - } - return head; -} - -/* -** Inputs: -** list: Pointer to a singly-linked list of structures. -** next: Pointer to pointer to the second element of the list. -** cmp: A comparison function. -** -** Return Value: -** A pointer to the head of a sorted list containing the elements -** orginally in list. -** -** Side effects: -** The "next" pointers for elements in list are changed. -*/ -#define LISTSIZE 30 -static char *msort( - char *list, - char **next, - int (*cmp)(const char*,const char*) -){ - unsigned long offset; - char *ep; - char *set[LISTSIZE]; - int i; - offset = (unsigned long)next - (unsigned long)list; - for(i=0; istate = WAITING_FOR_DECL_KEYWORD; - }else if( islower(x[0]) ){ - psp->lhs = Symbol_new(x); - psp->nrhs = 0; - psp->lhsalias = 0; - psp->state = WAITING_FOR_ARROW; - }else if( x[0]=='{' ){ - if( psp->prevrule==0 ){ - ErrorMsg(psp->filename,psp->tokenlineno, -"There is no prior rule opon which to attach the code \ -fragment which begins on this line."); - psp->errorcnt++; - }else if( psp->prevrule->code!=0 ){ - ErrorMsg(psp->filename,psp->tokenlineno, -"Code fragment beginning on this line is not the first \ -to follow the previous rule."); - psp->errorcnt++; - }else{ - psp->prevrule->line = psp->tokenlineno; - psp->prevrule->code = &x[1]; - } - }else if( x[0]=='[' ){ - psp->state = PRECEDENCE_MARK_1; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Token \"%s\" should be either \"%%\" or a nonterminal name.", - x); - psp->errorcnt++; - } - break; - case PRECEDENCE_MARK_1: - if( !isupper(x[0]) ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "The precedence symbol must be a terminal."); - psp->errorcnt++; - }else if( psp->prevrule==0 ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "There is no prior rule to assign precedence \"[%s]\".",x); - psp->errorcnt++; - }else if( psp->prevrule->precsym!=0 ){ - ErrorMsg(psp->filename,psp->tokenlineno, -"Precedence mark on this line is not the first \ -to follow the previous rule."); - psp->errorcnt++; - }else{ - psp->prevrule->precsym = Symbol_new(x); - } - psp->state = PRECEDENCE_MARK_2; - break; - case PRECEDENCE_MARK_2: - if( x[0]!=']' ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Missing \"]\" on precedence mark."); - psp->errorcnt++; - } - psp->state = WAITING_FOR_DECL_OR_RULE; - break; - case WAITING_FOR_ARROW: - if( x[0]==':' && x[1]==':' && x[2]=='=' ){ - psp->state = IN_RHS; - }else if( x[0]=='(' ){ - psp->state = LHS_ALIAS_1; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Expected to see a \":\" following the LHS symbol \"%s\".", - psp->lhs->name); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - } - break; - case LHS_ALIAS_1: - if( isalpha(x[0]) ){ - psp->lhsalias = x; - psp->state = LHS_ALIAS_2; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "\"%s\" is not a valid alias for the LHS \"%s\"\n", - x,psp->lhs->name); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - } - break; - case LHS_ALIAS_2: - if( x[0]==')' ){ - psp->state = LHS_ALIAS_3; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - } - break; - case LHS_ALIAS_3: - if( x[0]==':' && x[1]==':' && x[2]=='=' ){ - psp->state = IN_RHS; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Missing \"->\" following: \"%s(%s)\".", - psp->lhs->name,psp->lhsalias); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - } - break; - case IN_RHS: - if( x[0]=='.' ){ - struct rule *rp; - rp = (struct rule *)calloc( sizeof(struct rule) + - sizeof(struct symbol*)*psp->nrhs + sizeof(char*)*psp->nrhs, 1); - if( rp==0 ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Can't allocate enough memory for this rule."); - psp->errorcnt++; - psp->prevrule = 0; - }else{ - int i; - rp->ruleline = psp->tokenlineno; - rp->rhs = (struct symbol**)&rp[1]; - rp->rhsalias = (const char**)&(rp->rhs[psp->nrhs]); - for(i=0; inrhs; i++){ - rp->rhs[i] = psp->rhs[i]; - rp->rhsalias[i] = psp->alias[i]; - } - rp->lhs = psp->lhs; - rp->lhsalias = psp->lhsalias; - rp->nrhs = psp->nrhs; - rp->code = 0; - rp->precsym = 0; - rp->index = psp->gp->nrule++; - rp->nextlhs = rp->lhs->rule; - rp->lhs->rule = rp; - rp->next = 0; - if( psp->firstrule==0 ){ - psp->firstrule = psp->lastrule = rp; - }else{ - psp->lastrule->next = rp; - psp->lastrule = rp; - } - psp->prevrule = rp; - } - psp->state = WAITING_FOR_DECL_OR_RULE; - }else if( isalpha(x[0]) ){ - if( psp->nrhs>=MAXRHS ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Too many symbols on RHS of rule beginning at \"%s\".", - x); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - }else{ - psp->rhs[psp->nrhs] = Symbol_new(x); - psp->alias[psp->nrhs] = 0; - psp->nrhs++; - } - }else if( (x[0]=='|' || x[0]=='/') && psp->nrhs>0 ){ - struct symbol *msp = psp->rhs[psp->nrhs-1]; - if( msp->type!=MULTITERMINAL ){ - struct symbol *origsp = msp; - msp = (struct symbol *) calloc(1,sizeof(*msp)); - memset(msp, 0, sizeof(*msp)); - msp->type = MULTITERMINAL; - msp->nsubsym = 1; - msp->subsym = (struct symbol **) calloc(1,sizeof(struct symbol*)); - msp->subsym[0] = origsp; - msp->name = origsp->name; - psp->rhs[psp->nrhs-1] = msp; - } - msp->nsubsym++; - msp->subsym = (struct symbol **) realloc(msp->subsym, - sizeof(struct symbol*)*msp->nsubsym); - msp->subsym[msp->nsubsym-1] = Symbol_new(&x[1]); - if( islower(x[1]) || islower(msp->subsym[0]->name[0]) ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Cannot form a compound containing a non-terminal"); - psp->errorcnt++; - } - }else if( x[0]=='(' && psp->nrhs>0 ){ - psp->state = RHS_ALIAS_1; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Illegal character on RHS of rule: \"%s\".",x); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - } - break; - case RHS_ALIAS_1: - if( isalpha(x[0]) ){ - psp->alias[psp->nrhs-1] = x; - psp->state = RHS_ALIAS_2; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "\"%s\" is not a valid alias for the RHS symbol \"%s\"\n", - x,psp->rhs[psp->nrhs-1]->name); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - } - break; - case RHS_ALIAS_2: - if( x[0]==')' ){ - psp->state = IN_RHS; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Missing \")\" following LHS alias name \"%s\".",psp->lhsalias); - psp->errorcnt++; - psp->state = RESYNC_AFTER_RULE_ERROR; - } - break; - case WAITING_FOR_DECL_KEYWORD: - if( isalpha(x[0]) ){ - psp->declkeyword = x; - psp->declargslot = 0; - psp->decllinenoslot = 0; - psp->insertLineMacro = 1; - psp->state = WAITING_FOR_DECL_ARG; - if( strcmp(x,"name")==0 ){ - psp->declargslot = &(psp->gp->name); - psp->insertLineMacro = 0; - }else if( strcmp(x,"include")==0 ){ - psp->declargslot = &(psp->gp->include); - }else if( strcmp(x,"code")==0 ){ - psp->declargslot = &(psp->gp->extracode); - }else if( strcmp(x,"token_destructor")==0 ){ - psp->declargslot = &psp->gp->tokendest; - }else if( strcmp(x,"default_destructor")==0 ){ - psp->declargslot = &psp->gp->vardest; - }else if( strcmp(x,"token_prefix")==0 ){ - psp->declargslot = &psp->gp->tokenprefix; - psp->insertLineMacro = 0; - }else if( strcmp(x,"syntax_error")==0 ){ - psp->declargslot = &(psp->gp->error); - }else if( strcmp(x,"parse_accept")==0 ){ - psp->declargslot = &(psp->gp->accept); - }else if( strcmp(x,"parse_failure")==0 ){ - psp->declargslot = &(psp->gp->failure); - }else if( strcmp(x,"stack_overflow")==0 ){ - psp->declargslot = &(psp->gp->overflow); - }else if( strcmp(x,"extra_argument")==0 ){ - psp->declargslot = &(psp->gp->arg); - psp->insertLineMacro = 0; - }else if( strcmp(x,"token_type")==0 ){ - psp->declargslot = &(psp->gp->tokentype); - psp->insertLineMacro = 0; - }else if( strcmp(x,"default_type")==0 ){ - psp->declargslot = &(psp->gp->vartype); - psp->insertLineMacro = 0; - }else if( strcmp(x,"stack_size")==0 ){ - psp->declargslot = &(psp->gp->stacksize); - psp->insertLineMacro = 0; - }else if( strcmp(x,"start_symbol")==0 ){ - psp->declargslot = &(psp->gp->start); - psp->insertLineMacro = 0; - }else if( strcmp(x,"left")==0 ){ - psp->preccounter++; - psp->declassoc = LEFT; - psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; - }else if( strcmp(x,"right")==0 ){ - psp->preccounter++; - psp->declassoc = RIGHT; - psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; - }else if( strcmp(x,"nonassoc")==0 ){ - psp->preccounter++; - psp->declassoc = NONE; - psp->state = WAITING_FOR_PRECEDENCE_SYMBOL; - }else if( strcmp(x,"destructor")==0 ){ - psp->state = WAITING_FOR_DESTRUCTOR_SYMBOL; - }else if( strcmp(x,"type")==0 ){ - psp->state = WAITING_FOR_DATATYPE_SYMBOL; - }else if( strcmp(x,"fallback")==0 ){ - psp->fallback = 0; - psp->state = WAITING_FOR_FALLBACK_ID; - }else if( strcmp(x,"wildcard")==0 ){ - psp->state = WAITING_FOR_WILDCARD_ID; -#if __MOJOSHADER__ - }else if( strcmp(x,"expect")==0 ){ - if (psp->gp->nexpected >= 0) { - ErrorMsg(psp->filename,psp->tokenlineno, "Multiple %expect declarations."); - psp->errorcnt++; - psp->state = RESYNC_AFTER_DECL_ERROR; - } else { - psp->state = WAITING_FOR_EXPECT_VALUE; - } -#endif - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Unknown declaration keyword: \"%%%s\".",x); - psp->errorcnt++; - psp->state = RESYNC_AFTER_DECL_ERROR; - } - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Illegal declaration keyword: \"%s\".",x); - psp->errorcnt++; - psp->state = RESYNC_AFTER_DECL_ERROR; - } - break; - case WAITING_FOR_DESTRUCTOR_SYMBOL: - if( !isalpha(x[0]) ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Symbol name missing after %%destructor keyword"); - psp->errorcnt++; - psp->state = RESYNC_AFTER_DECL_ERROR; - }else{ - struct symbol *sp = Symbol_new(x); - psp->declargslot = &sp->destructor; - psp->decllinenoslot = &sp->destLineno; - psp->insertLineMacro = 1; - psp->state = WAITING_FOR_DECL_ARG; - } - break; -#if __MOJOSHADER__ - case WAITING_FOR_EXPECT_VALUE: - psp->gp->nexpected = (int) strtol(x, &endptr, 10); - if( (*endptr != '\0') || (endptr == x) ) { - ErrorMsg(psp->filename,psp->tokenlineno, - "Integer expected after %%expect keyword"); - psp->errorcnt++; - } else if (psp->gp->nexpected < 0) { - ErrorMsg(psp->filename,psp->tokenlineno, - "Integer can't be negative after %%expect keyword"); - psp->errorcnt++; - } - psp->state = WAITING_FOR_DECL_OR_RULE; - break; -#endif - case WAITING_FOR_DATATYPE_SYMBOL: - if( !isalpha(x[0]) ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Symbol name missing after %%type keyword"); - psp->errorcnt++; - psp->state = RESYNC_AFTER_DECL_ERROR; - }else{ - struct symbol *sp = Symbol_find(x); - if((sp) && (sp->datatype)){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Symbol %%type \"%s\" already defined", x); - psp->errorcnt++; - psp->state = RESYNC_AFTER_DECL_ERROR; - }else{ - if (!sp){ - sp = Symbol_new(x); - } - psp->declargslot = &sp->datatype; - psp->insertLineMacro = 0; - psp->state = WAITING_FOR_DECL_ARG; - } - } - break; - case WAITING_FOR_PRECEDENCE_SYMBOL: - if( x[0]=='.' ){ - psp->state = WAITING_FOR_DECL_OR_RULE; - }else if( isupper(x[0]) ){ - struct symbol *sp; - sp = Symbol_new(x); - if( sp->prec>=0 ){ - ErrorMsg(psp->filename,psp->tokenlineno, - "Symbol \"%s\" has already be given a precedence.",x); - psp->errorcnt++; - }else{ - sp->prec = psp->preccounter; - sp->assoc = psp->declassoc; - } - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Can't assign a precedence to \"%s\".",x); - psp->errorcnt++; - } - break; - case WAITING_FOR_DECL_ARG: - if( x[0]=='{' || x[0]=='\"' || isalnum(x[0]) ){ - const char *zOld, *zNew; - char *zBuf, *z; - int nOld, n, nLine, nNew, nBack; - int addLineMacro; - char zLine[50]; - zNew = x; - if( zNew[0]=='"' || zNew[0]=='{' ) zNew++; - nNew = lemonStrlen(zNew); - if( *psp->declargslot ){ - zOld = *psp->declargslot; - }else{ - zOld = ""; - } - nOld = lemonStrlen(zOld); - n = nOld + nNew + 20; - addLineMacro = !psp->gp->nolinenosflag && psp->insertLineMacro && - (psp->decllinenoslot==0 || psp->decllinenoslot[0]!=0); - if( addLineMacro ){ - for(z=psp->filename, nBack=0; *z; z++){ - if( *z=='\\' ) nBack++; - } - sprintf(zLine, "#line %d ", psp->tokenlineno); - nLine = lemonStrlen(zLine); - n += nLine + lemonStrlen(psp->filename) + nBack; - } - *psp->declargslot = (char *) realloc(*psp->declargslot, n); - zBuf = *psp->declargslot + nOld; - if( addLineMacro ){ - if( nOld && zBuf[-1]!='\n' ){ - *(zBuf++) = '\n'; - } - memcpy(zBuf, zLine, nLine); - zBuf += nLine; - *(zBuf++) = '"'; - for(z=psp->filename; *z; z++){ - if( *z=='\\' ){ - *(zBuf++) = '\\'; - } - *(zBuf++) = *z; - } - *(zBuf++) = '"'; - *(zBuf++) = '\n'; - } - if( psp->decllinenoslot && psp->decllinenoslot[0]==0 ){ - psp->decllinenoslot[0] = psp->tokenlineno; - } - memcpy(zBuf, zNew, nNew); - zBuf += nNew; - *zBuf = 0; - psp->state = WAITING_FOR_DECL_OR_RULE; - }else{ - ErrorMsg(psp->filename,psp->tokenlineno, - "Illegal argument to %%%s: %s",psp->declkeyword,x); - psp->errorcnt++; - psp->state = RESYNC_AFTER_DECL_ERROR; - } - break; - case WAITING_FOR_FALLBACK_ID: - if( x[0]=='.' ){ - psp->state = WAITING_FOR_DECL_OR_RULE; - }else if( !isupper(x[0]) ){ - ErrorMsg(psp->filename, psp->tokenlineno, - "%%fallback argument \"%s\" should be a token", x); - psp->errorcnt++; - }else{ - struct symbol *sp = Symbol_new(x); - if( psp->fallback==0 ){ - psp->fallback = sp; - }else if( sp->fallback ){ - ErrorMsg(psp->filename, psp->tokenlineno, - "More than one fallback assigned to token %s", x); - psp->errorcnt++; - }else{ - sp->fallback = psp->fallback; - psp->gp->has_fallback = 1; - } - } - break; - case WAITING_FOR_WILDCARD_ID: - if( x[0]=='.' ){ - psp->state = WAITING_FOR_DECL_OR_RULE; - }else if( !isupper(x[0]) ){ - ErrorMsg(psp->filename, psp->tokenlineno, - "%%wildcard argument \"%s\" should be a token", x); - psp->errorcnt++; - }else{ - struct symbol *sp = Symbol_new(x); - if( psp->gp->wildcard==0 ){ - psp->gp->wildcard = sp; - }else{ - ErrorMsg(psp->filename, psp->tokenlineno, - "Extra wildcard to token: %s", x); - psp->errorcnt++; - } - } - break; - case RESYNC_AFTER_RULE_ERROR: -/* if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; -** break; */ - case RESYNC_AFTER_DECL_ERROR: - if( x[0]=='.' ) psp->state = WAITING_FOR_DECL_OR_RULE; - if( x[0]=='%' ) psp->state = WAITING_FOR_DECL_KEYWORD; - break; - } -} - -/* Run the preprocessor over the input file text. The global variables -** azDefine[0] through azDefine[nDefine-1] contains the names of all defined -** macros. This routine looks for "%ifdef" and "%ifndef" and "%endif" and -** comments them out. Text in between is also commented out as appropriate. -*/ -static void preprocess_input(char *z){ - int i, j, k, n; - int exclude = 0; - int start = 0; - int lineno = 1; - int start_lineno = 1; - for(i=0; z[i]; i++){ - if( z[i]=='\n' ) lineno++; - if( z[i]!='%' || (i>0 && z[i-1]!='\n') ) continue; - if( strncmp(&z[i],"%endif",6)==0 && isspace(z[i+6]) ){ - if( exclude ){ - exclude--; - if( exclude==0 ){ - for(j=start; jfilename; - ps.errorcnt = 0; - ps.state = INITIALIZE; - - /* Begin by reading the input file */ - fp = fopen(ps.filename,"rb"); - if( fp==0 ){ - ErrorMsg(ps.filename,0,"Can't open this file for reading."); - gp->errorcnt++; - return; - } - fseek(fp,0,2); - filesize = ftell(fp); - rewind(fp); - filebuf = (char *)malloc( filesize+1 ); - if( filebuf==0 ){ - ErrorMsg(ps.filename,0,"Can't allocate %d of memory to hold this file.", - filesize+1); - gp->errorcnt++; - return; - } - if( fread(filebuf,1,filesize,fp)!=filesize ){ - ErrorMsg(ps.filename,0,"Can't read in all %d bytes of this file.", - filesize); - free(filebuf); - gp->errorcnt++; - return; - } - fclose(fp); - filebuf[filesize] = 0; - - /* Make an initial pass through the file to handle %ifdef and %ifndef */ - preprocess_input(filebuf); - - /* Now scan the text of the input file */ - lineno = 1; - for(cp=filebuf; (c= *cp)!=0; ){ - if( c=='\n' ) lineno++; /* Keep track of the line number */ - if( isspace(c) ){ cp++; continue; } /* Skip all white space */ - if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments */ - cp+=2; - while( (c= *cp)!=0 && c!='\n' ) cp++; - continue; - } - if( c=='/' && cp[1]=='*' ){ /* Skip C style comments */ - cp+=2; - while( (c= *cp)!=0 && (c!='/' || cp[-1]!='*') ){ - if( c=='\n' ) lineno++; - cp++; - } - if( c ) cp++; - continue; - } - ps.tokenstart = cp; /* Mark the beginning of the token */ - ps.tokenlineno = lineno; /* Linenumber on which token begins */ - if( c=='\"' ){ /* String literals */ - cp++; - while( (c= *cp)!=0 && c!='\"' ){ - if( c=='\n' ) lineno++; - cp++; - } - if( c==0 ){ - ErrorMsg(ps.filename,startline, -"String starting on this line is not terminated before the end of the file."); - ps.errorcnt++; - nextcp = cp; - }else{ - nextcp = cp+1; - } - }else if( c=='{' ){ /* A block of C code */ - int level; - cp++; - for(level=1; (c= *cp)!=0 && (level>1 || c!='}'); cp++){ - if( c=='\n' ) lineno++; - else if( c=='{' ) level++; - else if( c=='}' ) level--; - else if( c=='/' && cp[1]=='*' ){ /* Skip comments */ - int prevc; - cp = &cp[2]; - prevc = 0; - while( (c= *cp)!=0 && (c!='/' || prevc!='*') ){ - if( c=='\n' ) lineno++; - prevc = c; - cp++; - } - }else if( c=='/' && cp[1]=='/' ){ /* Skip C++ style comments too */ - cp = &cp[2]; - while( (c= *cp)!=0 && c!='\n' ) cp++; - if( c ) lineno++; - }else if( c=='\'' || c=='\"' ){ /* String a character literals */ - int startchar, prevc; - startchar = c; - prevc = 0; - for(cp++; (c= *cp)!=0 && (c!=startchar || prevc=='\\'); cp++){ - if( c=='\n' ) lineno++; - if( prevc=='\\' ) prevc = 0; - else prevc = c; - } - } - } - if( c==0 ){ - ErrorMsg(ps.filename,ps.tokenlineno, -"C code starting on this line is not terminated before the end of the file."); - ps.errorcnt++; - nextcp = cp; - }else{ - nextcp = cp+1; - } - }else if( isalnum(c) ){ /* Identifiers */ - while( (c= *cp)!=0 && (isalnum(c) || c=='_') ) cp++; - nextcp = cp; - }else if( c==':' && cp[1]==':' && cp[2]=='=' ){ /* The operator "::=" */ - cp += 3; - nextcp = cp; - }else if( (c=='/' || c=='|') && isalpha(cp[1]) ){ - cp += 2; - while( (c = *cp)!=0 && (isalnum(c) || c=='_') ) cp++; - nextcp = cp; - }else{ /* All other (one character) operators */ - cp++; - nextcp = cp; - } - c = *cp; - *cp = 0; /* Null terminate the token */ - parseonetoken(&ps); /* Parse the token */ - *cp = c; /* Restore the buffer */ - cp = nextcp; - } - free(filebuf); /* Release the buffer after parsing */ - gp->rule = ps.firstrule; - gp->errorcnt = ps.errorcnt; -} -/*************************** From the file "plink.c" *********************/ -/* -** Routines processing configuration follow-set propagation links -** in the LEMON parser generator. -*/ -static struct plink *plink_freelist = 0; - -/* Allocate a new plink */ -struct plink *Plink_new(){ - struct plink *newlink; - - if( plink_freelist==0 ){ - int i; - int amt = 100; - plink_freelist = (struct plink *)calloc( amt, sizeof(struct plink) ); - if( plink_freelist==0 ){ - fprintf(stderr, - "Unable to allocate memory for a new follow-set propagation link.\n"); - exit(1); - } - for(i=0; inext; - return newlink; -} - -/* Add a plink to a plink list */ -void Plink_add(struct plink **plpp, struct config *cfp) -{ - struct plink *newlink; - newlink = Plink_new(); - newlink->next = *plpp; - *plpp = newlink; - newlink->cfp = cfp; -} - -/* Transfer every plink on the list "from" to the list "to" */ -void Plink_copy(struct plink **to, struct plink *from) -{ - struct plink *nextpl; - while( from ){ - nextpl = from->next; - from->next = *to; - *to = from; - from = nextpl; - } -} - -/* Delete every plink on the list */ -void Plink_delete(struct plink *plp) -{ - struct plink *nextpl; - - while( plp ){ - nextpl = plp->next; - plp->next = plink_freelist; - plink_freelist = plp; - plp = nextpl; - } -} -/*********************** From the file "report.c" **************************/ -/* -** Procedures for generating reports and tables in the LEMON parser generator. -*/ - -/* Generate a filename with the given suffix. Space to hold the -** name comes from malloc() and must be freed by the calling -** function. -*/ -PRIVATE char *file_makename(struct lemon *lemp, const char *suffix) -{ - char *name; - char *cp; - - name = (char*)malloc( lemonStrlen(lemp->filename) + lemonStrlen(suffix) + 5 ); - if( name==0 ){ - fprintf(stderr,"Can't allocate space for a filename.\n"); - exit(1); - } - strcpy(name,lemp->filename); - cp = strrchr(name,'.'); - if( cp ) *cp = 0; - strcat(name,suffix); - return name; -} - -/* Open a file with a name based on the name of the input file, -** but with a different (specified) suffix, and return a pointer -** to the stream */ -PRIVATE FILE *file_open( - struct lemon *lemp, - const char *suffix, - const char *mode -){ - FILE *fp; - - if( lemp->outname ) free(lemp->outname); - lemp->outname = file_makename(lemp, suffix); - fp = fopen(lemp->outname,mode); - if( fp==0 && *mode=='w' ){ - fprintf(stderr,"Can't open file \"%s\".\n",lemp->outname); - lemp->errorcnt++; - return 0; - } - - /* Add files we create to a list, so we can delete them if we fail. This - ** is to keep makefiles from getting confused. We don't include .out files, - ** though: this is debug information, and you don't want it deleted if there - ** was an error you need to track down. - */ - if(( *mode=='w' ) && (strcmp(suffix, ".out") != 0)){ - const char **ptr = (const char **) - realloc(made_files, sizeof (const char *) * (made_files_count + 1)); - const char *fname = Strsafe(lemp->outname); - if ((ptr == NULL) || (fname == NULL)) { - free(ptr); - memory_error(); - } - made_files = ptr; - made_files[made_files_count++] = fname; - } - return fp; -} - -/* Duplicate the input file without comments and without actions -** on rules */ -void Reprint(struct lemon *lemp) -{ - struct rule *rp; - struct symbol *sp; - int i, j, maxlen, len, ncolumns, skip; - printf("// Reprint of input file \"%s\".\n// Symbols:\n",lemp->filename); - maxlen = 10; - for(i=0; insymbol; i++){ - sp = lemp->symbols[i]; - len = lemonStrlen(sp->name); - if( len>maxlen ) maxlen = len; - } - ncolumns = 76/(maxlen+5); - if( ncolumns<1 ) ncolumns = 1; - skip = (lemp->nsymbol + ncolumns - 1)/ncolumns; - for(i=0; insymbol; j+=skip){ - sp = lemp->symbols[j]; - assert( sp->index==j ); - printf(" %3d %-*.*s",j,maxlen,maxlen,sp->name); - } - printf("\n"); - } - for(rp=lemp->rule; rp; rp=rp->next){ - printf("%s",rp->lhs->name); - /* if( rp->lhsalias ) printf("(%s)",rp->lhsalias); */ - printf(" ::="); - for(i=0; inrhs; i++){ - sp = rp->rhs[i]; - printf(" %s", sp->name); - if( sp->type==MULTITERMINAL ){ - for(j=1; jnsubsym; j++){ - printf("|%s", sp->subsym[j]->name); - } - } - /* if( rp->rhsalias[i] ) printf("(%s)",rp->rhsalias[i]); */ - } - printf("."); - if( rp->precsym ) printf(" [%s]",rp->precsym->name); - /* if( rp->code ) printf("\n %s",rp->code); */ - printf("\n"); - } -} - -void ConfigPrint(FILE *fp, struct config *cfp) -{ - struct rule *rp; - struct symbol *sp; - int i, j; - rp = cfp->rp; - fprintf(fp,"%s ::=",rp->lhs->name); - for(i=0; i<=rp->nrhs; i++){ - if( i==cfp->dot ) fprintf(fp," *"); - if( i==rp->nrhs ) break; - sp = rp->rhs[i]; - fprintf(fp," %s", sp->name); - if( sp->type==MULTITERMINAL ){ - for(j=1; jnsubsym; j++){ - fprintf(fp,"|%s",sp->subsym[j]->name); - } - } - } -} - -/* #define TEST */ -#if 0 -/* Print a set */ -PRIVATE void SetPrint(out,set,lemp) -FILE *out; -char *set; -struct lemon *lemp; -{ - int i; - char *spacer; - spacer = ""; - fprintf(out,"%12s[",""); - for(i=0; interminal; i++){ - if( SetFind(set,i) ){ - fprintf(out,"%s%s",spacer,lemp->symbols[i]->name); - spacer = " "; - } - } - fprintf(out,"]\n"); -} - -/* Print a plink chain */ -PRIVATE void PlinkPrint(out,plp,tag) -FILE *out; -struct plink *plp; -char *tag; -{ - while( plp ){ - fprintf(out,"%12s%s (state %2d) ","",tag,plp->cfp->stp->statenum); - ConfigPrint(out,plp->cfp); - fprintf(out,"\n"); - plp = plp->next; - } -} -#endif - -/* Print an action to the given file descriptor. Return FALSE if -** nothing was actually printed. -*/ -int PrintAction(struct action *ap, FILE *fp, int indent){ - int result = 1; - switch( ap->type ){ - case SHIFT: - fprintf(fp,"%*s shift %d",indent,ap->sp->name,ap->x.stp->statenum); - break; - case REDUCE: - fprintf(fp,"%*s reduce %d",indent,ap->sp->name,ap->x.rp->index); - break; - case ACCEPT: - fprintf(fp,"%*s accept",indent,ap->sp->name); - break; - case ERROR: - fprintf(fp,"%*s error",indent,ap->sp->name); - break; - case SRCONFLICT: - case RRCONFLICT: - fprintf(fp,"%*s reduce %-3d ** Parsing conflict **", - indent,ap->sp->name,ap->x.rp->index); - break; - case SSCONFLICT: - fprintf(fp,"%*s shift %d ** Parsing conflict **", - indent,ap->sp->name,ap->x.stp->statenum); - break; - case SH_RESOLVED: - case RD_RESOLVED: - case NOT_USED: - result = 0; - break; - } - return result; -} - -/* Generate the "y.output" log file */ -void ReportOutput(struct lemon *lemp) -{ - int i; - struct state *stp; - struct config *cfp; - struct action *ap; - FILE *fp; - - fp = file_open(lemp,".out","wb"); - if( fp==0 ) return; - for(i=0; instate; i++){ - stp = lemp->sorted[i]; - fprintf(fp,"State %d:\n",stp->statenum); - if( lemp->basisflag ) cfp=stp->bp; - else cfp=stp->cfp; - while( cfp ){ - char buf[20]; - if( cfp->dot==cfp->rp->nrhs ){ - sprintf(buf,"(%d)",cfp->rp->index); - fprintf(fp," %5s ",buf); - }else{ - fprintf(fp," "); - } - ConfigPrint(fp,cfp); - fprintf(fp,"\n"); -#if 0 - SetPrint(fp,cfp->fws,lemp); - PlinkPrint(fp,cfp->fplp,"To "); - PlinkPrint(fp,cfp->bplp,"From"); -#endif - if( lemp->basisflag ) cfp=cfp->bp; - else cfp=cfp->next; - } - fprintf(fp,"\n"); - for(ap=stp->ap; ap; ap=ap->next){ - if( PrintAction(ap,fp,30) ) fprintf(fp,"\n"); - } - fprintf(fp,"\n"); - } - fprintf(fp, "----------------------------------------------------\n"); - fprintf(fp, "Symbols:\n"); - for(i=0; insymbol; i++){ - int j; - struct symbol *sp; - - sp = lemp->symbols[i]; - fprintf(fp, " %3d: %s", i, sp->name); - if( sp->type==NONTERMINAL ){ - fprintf(fp, ":"); - if( sp->lambda ){ - fprintf(fp, " "); - } - for(j=0; jnterminal; j++){ - if( sp->firstset && SetFind(sp->firstset, j) ){ - fprintf(fp, " %s", lemp->symbols[j]->name); - } - } - } - fprintf(fp, "\n"); - } - fclose(fp); - return; -} - -/* Search for the file "name" which is in the same directory as -** the exacutable */ -PRIVATE char *pathsearch(char *argv0, char *name, int modemask) -{ - const char *pathlist; - char *pathbufptr; - char *pathbuf; - char *path,*cp; - char c; - -#ifdef __WIN32__ - cp = strrchr(argv0,'\\'); -#else - cp = strrchr(argv0,'/'); -#endif - if( cp ){ - c = *cp; - *cp = 0; - path = (char *)malloc( lemonStrlen(argv0) + lemonStrlen(name) + 2 ); - if( path ) sprintf(path,"%s/%s",argv0,name); - *cp = c; - }else{ - pathlist = getenv("PATH"); - if( pathlist==0 ) pathlist = ".:/bin:/usr/bin"; - pathbuf = (char *) malloc( lemonStrlen(pathlist) + 1 ); - path = (char *)malloc( lemonStrlen(pathlist)+lemonStrlen(name)+2 ); - if( (pathbuf != 0) && (path!=0) ){ - pathbufptr = pathbuf; - strcpy(pathbuf, pathlist); - while( *pathbuf ){ - cp = strchr(pathbuf,':'); - if( cp==0 ) cp = &pathbuf[lemonStrlen(pathbuf)]; - c = *cp; - *cp = 0; - sprintf(path,"%s/%s",pathbuf,name); - *cp = c; - if( c==0 ) pathbuf[0] = 0; - else pathbuf = &cp[1]; - if( access(path,modemask)==0 ) break; - } - free(pathbufptr); - } - } - return path; -} - -/* Given an action, compute the integer value for that action -** which is to be put in the action table of the generated machine. -** Return negative if no action should be generated. -*/ -PRIVATE int compute_action(struct lemon *lemp, struct action *ap) -{ - int act; - switch( ap->type ){ - case SHIFT: act = ap->x.stp->statenum; break; - case REDUCE: act = ap->x.rp->index + lemp->nstate; break; - case ERROR: act = lemp->nstate + lemp->nrule; break; - case ACCEPT: act = lemp->nstate + lemp->nrule + 1; break; - default: act = -1; break; - } - return act; -} - -#define LINESIZE 1000 -/* The next cluster of routines are for reading the template file -** and writing the results to the generated parser */ -/* The first function transfers data from "in" to "out" until -** a line is seen which begins with "%%". The line number is -** tracked. -** -** if name!=0, then any word that begin with "Parse" is changed to -** begin with *name instead. -*/ -PRIVATE void tplt_xfer(char *name, FILE *in, FILE *out, int *lineno) -{ - int i, iStart; - char line[LINESIZE]; - while( fgets(line,LINESIZE,in) && (line[0]!='%' || line[1]!='%') ){ - (*lineno)++; - iStart = 0; - if( name ){ - for(i=0; line[i]; i++){ - if( line[i]=='P' && strncmp(&line[i],"Parse",5)==0 - && (i==0 || !isalpha(line[i-1])) - ){ - if( i>iStart ) fprintf(out,"%.*s",i-iStart,&line[iStart]); - fprintf(out,"%s",name); - i += 4; - iStart = i+1; - } - } - } - fprintf(out,"%s",&line[iStart]); - } -} - -/* The next function finds the template file and opens it, returning -** a pointer to the opened file. */ -PRIVATE FILE *tplt_open(struct lemon *lemp) -{ - static char templatename[] = "lempar.c"; - char buf[1000]; - FILE *in; - char *tpltname; - char *cp; - - /* first, see if user specified a template filename on the command line. */ - if (user_templatename != 0) { - if( access(user_templatename,004)==-1 ){ - fprintf(stderr,"Can't find the parser driver template file \"%s\".\n", - user_templatename); - lemp->errorcnt++; - return 0; - } - in = fopen(user_templatename,"rb"); - if( in==0 ){ - fprintf(stderr,"Can't open the template file \"%s\".\n",user_templatename); - lemp->errorcnt++; - return 0; - } - return in; - } - - cp = strrchr(lemp->filename,'.'); - if( cp ){ - sprintf(buf,"%.*s.lt",(int)(cp-lemp->filename),lemp->filename); - }else{ - sprintf(buf,"%s.lt",lemp->filename); - } - if( access(buf,004)==0 ){ - tpltname = buf; - }else if( access(templatename,004)==0 ){ - tpltname = templatename; - }else{ - tpltname = pathsearch(lemp->argv0,templatename,0); - } - if( tpltname==0 ){ - fprintf(stderr,"Can't find the parser driver template file \"%s\".\n", - templatename); - lemp->errorcnt++; - return 0; - } - in = fopen(tpltname,"rb"); - if( in==0 ){ - fprintf(stderr,"Can't open the template file \"%s\".\n",templatename); - lemp->errorcnt++; - return 0; - } - return in; -} - -/* Print a #line directive line to the output file. */ -PRIVATE void tplt_linedir(FILE *out, int lineno, char *filename) -{ - fprintf(out,"#line %d \"",lineno); - while( *filename ){ - if( *filename == '\\' ) putc('\\',out); - putc(*filename,out); - filename++; - } - fprintf(out,"\"\n"); -} - -/* Print a string to the file and keep the linenumber up to date */ -PRIVATE void tplt_print(FILE *out, struct lemon *lemp, char *str, int *lineno) -{ - if( str==0 ) return; - while( *str ){ - putc(*str,out); - if( *str=='\n' ) (*lineno)++; - str++; - } - if( str[-1]!='\n' ){ - putc('\n',out); - (*lineno)++; - } - if (!lemp->nolinenosflag) { - (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); - } - return; -} - -/* -** The following routine emits code for the destructor for the -** symbol sp -*/ -void emit_destructor_code( - FILE *out, - struct symbol *sp, - struct lemon *lemp, - int *lineno -){ - char *cp = 0; - - if( sp->type==TERMINAL ){ - cp = lemp->tokendest; - if( cp==0 ) return; - fprintf(out,"{\n"); (*lineno)++; - }else if( sp->destructor ){ - cp = sp->destructor; - fprintf(out,"{\n"); (*lineno)++; - if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,sp->destLineno,lemp->filename); } - }else if( lemp->vardest ){ - cp = lemp->vardest; - if( cp==0 ) return; - fprintf(out,"{\n"); (*lineno)++; - }else{ - assert( 0 ); /* Cannot happen */ - } - for(; *cp; cp++){ - if( *cp=='$' && cp[1]=='$' ){ - fprintf(out,"(yypminor->yy%d)",sp->dtnum); - cp++; - continue; - } - if( *cp=='\n' ) (*lineno)++; - fputc(*cp,out); - } - fprintf(out,"\n"); (*lineno)++; - if (!lemp->nolinenosflag) { - (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); - } - fprintf(out,"}\n"); (*lineno)++; - return; -} - -/* -** Return TRUE (non-zero) if the given symbol has a destructor. -*/ -int has_destructor(struct symbol *sp, struct lemon *lemp) -{ - int ret; - if( sp->type==TERMINAL ){ - ret = lemp->tokendest!=0; - }else{ - ret = lemp->vardest!=0 || sp->destructor!=0; - } - return ret; -} - -/* -** Append text to a dynamically allocated string. If zText is 0 then -** reset the string to be empty again. Always return the complete text -** of the string (which is overwritten with each call). -** -** n bytes of zText are stored. If n==0 then all of zText up to the first -** \000 terminator is stored. zText can contain up to two instances of -** %d. The values of p1 and p2 are written into the first and second -** %d. -** -** If n==-1, then the previous character is overwritten. -*/ -PRIVATE char *append_str(const char *zText, int n, int p1, int p2){ - static char empty[1] = { 0 }; - static char *z = 0; - static int alloced = 0; - static int used = 0; - int c; - char zInt[40]; - if( zText==0 ){ - used = 0; - return z; - } - if( n<=0 ){ - if( n<0 ){ - used += n; - assert( used>=0 ); - } - n = lemonStrlen(zText); - } - if( (int) (n+sizeof(zInt)*2+used) >= alloced ){ - alloced = n + sizeof(zInt)*2 + used + 200; - z = (char *) realloc(z, alloced); - } - if( z==0 ) return empty; - while( n-- > 0 ){ - c = *(zText++); - if( c=='%' && n>0 && zText[0]=='d' ){ - sprintf(zInt, "%d", p1); - p1 = p2; - strcpy(&z[used], zInt); - used += lemonStrlen(&z[used]); - zText++; - n--; - }else{ - z[used++] = c; - } - } - z[used] = 0; - return z; -} - -/* -** zCode is a string that is the action associated with a rule. Expand -** the symbols in this string so that the refer to elements of the parser -** stack. -*/ -PRIVATE void translate_code(struct lemon *lemp, struct rule *rp){ - char *cp, *xp; - int i; - char lhsused = 0; /* True if the LHS element has been used */ - char used[MAXRHS]; /* True for each RHS element which is used */ - - for(i=0; inrhs; i++) used[i] = 0; - lhsused = 0; - - if( rp->code==0 ){ - static char newlinestr[2] = { '\n', '\0' }; - rp->code = newlinestr; - rp->line = rp->ruleline; - } - - append_str(0,0,0,0); - - /* This const cast is wrong but harmless, if we're careful. */ - for(cp=(char *)rp->code; *cp; cp++){ - if( isalpha(*cp) && (cp==rp->code || (!isalnum(cp[-1]) && cp[-1]!='_')) ){ - char saved; - for(xp= &cp[1]; isalnum(*xp) || *xp=='_'; xp++); - saved = *xp; - *xp = 0; - if( rp->lhsalias && strcmp(cp,rp->lhsalias)==0 ){ - append_str("yygotominor.yy%d",0,rp->lhs->dtnum,0); - cp = xp; - lhsused = 1; - }else{ - for(i=0; inrhs; i++){ - if( rp->rhsalias[i] && strcmp(cp,rp->rhsalias[i])==0 ){ - if( cp!=rp->code && cp[-1]=='@' ){ - /* If the argument is of the form @X then substituted - ** the token number of X, not the value of X */ - append_str("yymsp[%d].major",-1,i-rp->nrhs+1,0); - }else{ - struct symbol *sp = rp->rhs[i]; - int dtnum; - if( sp->type==MULTITERMINAL ){ - dtnum = sp->subsym[0]->dtnum; - }else{ - dtnum = sp->dtnum; - } - append_str("yymsp[%d].minor.yy%d",0,i-rp->nrhs+1, dtnum); - } - cp = xp; - used[i] = 1; - break; - } - } - } - *xp = saved; - } - append_str(cp, 1, 0, 0); - } /* End loop */ - - /* Check to make sure the LHS has been used */ - if( rp->lhsalias && !lhsused ){ - ErrorMsg(lemp->filename,rp->ruleline, - "Label \"%s\" for \"%s(%s)\" is never used.", - rp->lhsalias,rp->lhs->name,rp->lhsalias); - lemp->errorcnt++; - } - - /* Generate destructor code for RHS symbols which are not used in the - ** reduce code */ - for(i=0; inrhs; i++){ - if( rp->rhsalias[i] && !used[i] ){ - ErrorMsg(lemp->filename,rp->ruleline, - "Label %s for \"%s(%s)\" is never used.", - rp->rhsalias[i],rp->rhs[i]->name,rp->rhsalias[i]); - lemp->errorcnt++; - }else if( rp->rhsalias[i]==0 ){ - if( has_destructor(rp->rhs[i],lemp) ){ - append_str(" yy_destructor(yypParser,%d,&yymsp[%d].minor);\n", 0, - rp->rhs[i]->index,i-rp->nrhs+1); - }else{ - /* No destructor defined for this term */ - } - } - } - if( rp->code ){ - cp = append_str(0,0,0,0); - rp->code = Strsafe(cp?cp:""); - } -} - -/* -** Generate code which executes when the rule "rp" is reduced. Write -** the code to "out". Make sure lineno stays up-to-date. -*/ -PRIVATE void emit_code( - FILE *out, - struct rule *rp, - struct lemon *lemp, - int *lineno -){ - const char *cp; - - /* Generate code to do the reduce action */ - if( rp->code ){ - if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,rp->line,lemp->filename); } - fprintf(out,"{%s",rp->code); - for(cp=rp->code; *cp; cp++){ - if( *cp=='\n' ) (*lineno)++; - } /* End loop */ - fprintf(out,"}\n"); (*lineno)++; - if (!lemp->nolinenosflag) { (*lineno)++; tplt_linedir(out,*lineno,lemp->outname); } - } /* End if( rp->code ) */ - - return; -} - -/* -** Print the definition of the union used for the parser's data stack. -** This union contains fields for every possible data type for tokens -** and nonterminals. In the process of computing and printing this -** union, also set the ".dtnum" field of every terminal and nonterminal -** symbol. -*/ -void print_stack_union( - FILE *out, /* The output stream */ - struct lemon *lemp, /* The main info structure for this parser */ - int *plineno, /* Pointer to the line number */ - int mhflag /* True if generating makeheaders output */ -){ - int lineno = 0; /* The line number of the output */ - char **types; /* A hash table of datatypes */ - int arraysize; /* Size of the "types" array */ - int maxdtlength; /* Maximum length of any ".datatype" field. */ - char *stddt; /* Standardized name for a datatype */ - int i,j; /* Loop counters */ - int hash; /* For hashing the name of a type */ - const char *name; /* Name of the parser */ - - /* Allocate and initialize types[] and allocate stddt[] */ - arraysize = lemp->nsymbol * 2; - types = (char**)calloc( arraysize, sizeof(char*) ); - for(i=0; ivartype ){ - maxdtlength = lemonStrlen(lemp->vartype); - } - for(i=0; insymbol; i++){ - int len; - struct symbol *sp = lemp->symbols[i]; - if( sp->datatype==0 ) continue; - len = lemonStrlen(sp->datatype); - if( len>maxdtlength ) maxdtlength = len; - } - stddt = (char*)malloc( maxdtlength*2 + 1 ); - if( types==0 || stddt==0 ){ - fprintf(stderr,"Out of memory.\n"); - exit(1); - } - - /* Build a hash table of datatypes. The ".dtnum" field of each symbol - ** is filled in with the hash index plus 1. A ".dtnum" value of 0 is - ** used for terminal symbols. If there is no %default_type defined then - ** 0 is also used as the .dtnum value for nonterminals which do not specify - ** a datatype using the %type directive. - */ - for(i=0; insymbol; i++){ - struct symbol *sp = lemp->symbols[i]; - char *cp; - if( sp==lemp->errsym ){ - sp->dtnum = arraysize+1; - continue; - } - if( sp->type!=NONTERMINAL || (sp->datatype==0 && lemp->vartype==0) ){ - sp->dtnum = 0; - continue; - } - cp = sp->datatype; - if( cp==0 ) cp = lemp->vartype; - j = 0; - while( isspace(*cp) ) cp++; - while( *cp ) stddt[j++] = *cp++; - while( j>0 && isspace(stddt[j-1]) ) j--; - stddt[j] = 0; - if( lemp->tokentype && strcmp(stddt, lemp->tokentype)==0 ){ - sp->dtnum = 0; - continue; - } - hash = 0; - for(j=0; stddt[j]; j++){ - hash = hash*53 + stddt[j]; - } - hash = (hash & 0x7fffffff)%arraysize; - while( types[hash] ){ - if( strcmp(types[hash],stddt)==0 ){ - sp->dtnum = hash + 1; - break; - } - hash++; - if( hash>=arraysize ) hash = 0; - } - if( types[hash]==0 ){ - sp->dtnum = hash + 1; - types[hash] = (char*)malloc( lemonStrlen(stddt)+1 ); - if( types[hash]==0 ){ - fprintf(stderr,"Out of memory.\n"); - exit(1); - } - strcpy(types[hash],stddt); - } - } - - /* Print out the definition of YYTOKENTYPE and YYMINORTYPE */ - name = lemp->name ? lemp->name : "Parse"; - lineno = *plineno; - if( mhflag ){ fprintf(out,"#if INTERFACE\n"); lineno++; } - fprintf(out,"#define %sTOKENTYPE %s\n",name, - lemp->tokentype?lemp->tokentype:"void*"); lineno++; - if( mhflag ){ fprintf(out,"#endif\n"); lineno++; } - fprintf(out,"typedef union {\n"); lineno++; - fprintf(out," int yyinit;\n"); lineno++; - fprintf(out," %sTOKENTYPE yy0;\n",name); lineno++; - for(i=0; ierrsym->useCnt ){ - fprintf(out," int yy%d;\n",lemp->errsym->dtnum); lineno++; - } - free(stddt); - free(types); - fprintf(out,"} YYMINORTYPE;\n"); lineno++; - *plineno = lineno; -} - -/* -** Return the name of a C datatype able to represent values between -** lwr and upr, inclusive. -*/ -static const char *minimum_size_type(int lwr, int upr){ - if( lwr>=0 ){ - if( upr<=255 ){ - return "unsigned char"; - }else if( upr<65535 ){ - return "unsigned short int"; - }else{ - return "unsigned int"; - } - }else if( lwr>=-127 && upr<=127 ){ - return "signed char"; - }else if( lwr>=-32767 && upr<32767 ){ - return "short"; - }else{ - return "int"; - } -} - -/* -** Each state contains a set of token transaction and a set of -** nonterminal transactions. Each of these sets makes an instance -** of the following structure. An array of these structures is used -** to order the creation of entries in the yy_action[] table. -*/ -struct axset { - struct state *stp; /* A pointer to a state */ - int isTkn; /* True to use tokens. False for non-terminals */ - int nAction; /* Number of actions */ - int iOrder; /* Original order of action sets */ -}; - -/* -** Compare to axset structures for sorting purposes -*/ -static int axset_compare(const void *a, const void *b){ - struct axset *p1 = (struct axset*)a; - struct axset *p2 = (struct axset*)b; - int c; - c = p2->nAction - p1->nAction; - if( c==0 ){ - c = p2->iOrder - p1->iOrder; - } - assert( c!=0 || p1==p2 ); - return c; -} - -/* -** Write text on "out" that describes the rule "rp". -*/ -static void writeRuleText(FILE *out, struct rule *rp){ - int j; - fprintf(out,"%s ::=", rp->lhs->name); - for(j=0; jnrhs; j++){ - struct symbol *sp = rp->rhs[j]; - fprintf(out," %s", sp->name); - if( sp->type==MULTITERMINAL ){ - int k; - for(k=1; knsubsym; k++){ - fprintf(out,"|%s",sp->subsym[k]->name); - } - } - } -} - - -/* Generate C source code for the parser */ -void ReportTable( - struct lemon *lemp, - int mhflag /* Output in makeheaders format if true */ -){ - FILE *out, *in; - char line[LINESIZE]; - int lineno; - struct state *stp; - struct action *ap; - struct rule *rp; - struct acttab *pActtab; - int i, j, n; - const char *name; - int mnTknOfst, mxTknOfst; - int mnNtOfst, mxNtOfst; - struct axset *ax; - - in = tplt_open(lemp); - if( in==0 ) return; -#if __MOJOSHADER__ - out = file_open(lemp,".h","wb"); -#else - out = file_open(lemp,".c","wb"); -#endif - if( out==0 ){ - fclose(in); - return; - } - lineno = 1; - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate the include code, if any */ - tplt_print(out,lemp,lemp->include,&lineno); -#if !__MOJOSHADER__ - if( mhflag ){ - char *name = file_makename(lemp, ".h"); - fprintf(out,"#include \"%s\"\n", name); lineno++; - free(name); - } -#endif - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate #defines for all tokens */ -#if __MOJOSHADER__ - if( 1 ){ -#else - if( mhflag ){ -#endif - char *prefix; -#if !__MOJOSHADER__ - fprintf(out,"#if INTERFACE\n"); lineno++; -#endif - if( lemp->tokenprefix ) prefix = lemp->tokenprefix; - else prefix = ""; - for(i=1; interminal; i++){ - fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); - lineno++; - } -#if !__MOJOSHADER__ - fprintf(out,"#endif\n"); lineno++; -#endif - } - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate the defines */ - fprintf(out,"#define YYCODETYPE %s\n", - minimum_size_type(0, lemp->nsymbol+1)); lineno++; - fprintf(out,"#define YYNOCODE %d\n",lemp->nsymbol+1); lineno++; - fprintf(out,"#define YYACTIONTYPE %s\n", - minimum_size_type(0, lemp->nstate+lemp->nrule+5)); lineno++; - if( lemp->wildcard ){ - fprintf(out,"#define YYWILDCARD %d\n", - lemp->wildcard->index); lineno++; - } - print_stack_union(out,lemp,&lineno,mhflag); - fprintf(out, "#ifndef YYSTACKDEPTH\n"); lineno++; - if( lemp->stacksize ){ - fprintf(out,"#define YYSTACKDEPTH %s\n",lemp->stacksize); lineno++; - }else{ - fprintf(out,"#define YYSTACKDEPTH 100\n"); lineno++; - } - fprintf(out, "#endif\n"); lineno++; - if( mhflag ){ - fprintf(out,"#if INTERFACE\n"); lineno++; - } - name = lemp->name ? lemp->name : "Parse"; - if( lemp->arg && lemp->arg[0] ){ - int i; - i = lemonStrlen(lemp->arg); - while( i>=1 && isspace(lemp->arg[i-1]) ) i--; - while( i>=1 && (isalnum(lemp->arg[i-1]) || lemp->arg[i-1]=='_') ) i--; - fprintf(out,"#define %sARG_SDECL %s;\n",name,lemp->arg); lineno++; - fprintf(out,"#define %sARG_PDECL ,%s\n",name,lemp->arg); lineno++; - fprintf(out,"#define %sARG_FETCH %s = yypParser->%s\n", - name,lemp->arg,&lemp->arg[i]); lineno++; - fprintf(out,"#define %sARG_STORE yypParser->%s = %s\n", - name,&lemp->arg[i],&lemp->arg[i]); lineno++; - }else{ - fprintf(out,"#define %sARG_SDECL\n",name); lineno++; - fprintf(out,"#define %sARG_PDECL\n",name); lineno++; - fprintf(out,"#define %sARG_FETCH\n",name); lineno++; - fprintf(out,"#define %sARG_STORE\n",name); lineno++; - } - if( mhflag ){ - fprintf(out,"#endif\n"); lineno++; - } - fprintf(out,"#define YYNSTATE %d\n",lemp->nstate); lineno++; - fprintf(out,"#define YYNRULE %d\n",lemp->nrule); lineno++; - if( lemp->errsym->useCnt ){ - fprintf(out,"#define YYERRORSYMBOL %d\n",lemp->errsym->index); lineno++; - fprintf(out,"#define YYERRSYMDT yy%d\n",lemp->errsym->dtnum); lineno++; - } - if( lemp->has_fallback ){ - fprintf(out,"#define YYFALLBACK 1\n"); lineno++; - } - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate the action table and its associates: - ** - ** yy_action[] A single table containing all actions. - ** yy_lookahead[] A table containing the lookahead for each entry in - ** yy_action. Used to detect hash collisions. - ** yy_shift_ofst[] For each state, the offset into yy_action for - ** shifting terminals. - ** yy_reduce_ofst[] For each state, the offset into yy_action for - ** shifting non-terminals after a reduce. - ** yy_default[] Default action for each state. - */ - - /* Compute the actions on all states and count them up */ - ax = (struct axset *) calloc(lemp->nstate*2, sizeof(ax[0])); - if( ax==0 ){ - fprintf(stderr,"malloc failed\n"); - exit(1); - } - for(i=0; instate; i++){ - stp = lemp->sorted[i]; - ax[i*2].stp = stp; - ax[i*2].isTkn = 1; - ax[i*2].nAction = stp->nTknAct; - ax[i*2+1].stp = stp; - ax[i*2+1].isTkn = 0; - ax[i*2+1].nAction = stp->nNtAct; - } - mxTknOfst = mnTknOfst = 0; - mxNtOfst = mnNtOfst = 0; - - /* Compute the action table. In order to try to keep the size of the - ** action table to a minimum, the heuristic of placing the largest action - ** sets first is used. - */ - for(i=0; instate*2; i++) ax[i].iOrder = i; - qsort(ax, lemp->nstate*2, sizeof(ax[0]), axset_compare); - pActtab = acttab_alloc(); - for(i=0; instate*2 && ax[i].nAction>0; i++){ - stp = ax[i].stp; - if( ax[i].isTkn ){ - for(ap=stp->ap; ap; ap=ap->next){ - int action; - if( ap->sp->index>=lemp->nterminal ) continue; - action = compute_action(lemp, ap); - if( action<0 ) continue; - acttab_action(pActtab, ap->sp->index, action); - } - stp->iTknOfst = acttab_insert(pActtab); - if( stp->iTknOfstiTknOfst; - if( stp->iTknOfst>mxTknOfst ) mxTknOfst = stp->iTknOfst; - }else{ - for(ap=stp->ap; ap; ap=ap->next){ - int action; - if( ap->sp->indexnterminal ) continue; - if( ap->sp->index==lemp->nsymbol ) continue; - action = compute_action(lemp, ap); - if( action<0 ) continue; - acttab_action(pActtab, ap->sp->index, action); - } - stp->iNtOfst = acttab_insert(pActtab); - if( stp->iNtOfstiNtOfst; - if( stp->iNtOfst>mxNtOfst ) mxNtOfst = stp->iNtOfst; - } - } - free(ax); - - /* Output the yy_action table */ - n = acttab_size(pActtab); - fprintf(out,"#define YY_ACTTAB_COUNT (%d)\n", n); lineno++; - fprintf(out,"static const YYACTIONTYPE yy_action[] = {\n"); lineno++; - for(i=j=0; instate + lemp->nrule + 2; - if( j==0 ) fprintf(out," /* %5d */ ", i); - fprintf(out, " %4d,", action); - if( j==9 || i==n-1 ){ - fprintf(out, "\n"); lineno++; - j = 0; - }else{ - j++; - } - } - fprintf(out, "};\n"); lineno++; - - /* Output the yy_lookahead table */ - fprintf(out,"static const YYCODETYPE yy_lookahead[] = {\n"); lineno++; - for(i=j=0; insymbol; - if( j==0 ) fprintf(out," /* %5d */ ", i); - fprintf(out, " %4d,", la); - if( j==9 || i==n-1 ){ - fprintf(out, "\n"); lineno++; - j = 0; - }else{ - j++; - } - } - fprintf(out, "};\n"); lineno++; - - /* Output the yy_shift_ofst[] table */ - fprintf(out, "#define YY_SHIFT_USE_DFLT (%d)\n", mnTknOfst-1); lineno++; - n = lemp->nstate; - while( n>0 && lemp->sorted[n-1]->iTknOfst==NO_OFFSET ) n--; - fprintf(out, "#define YY_SHIFT_COUNT (%d)\n", n-1); lineno++; - fprintf(out, "#define YY_SHIFT_MIN (%d)\n", mnTknOfst); lineno++; - fprintf(out, "#define YY_SHIFT_MAX (%d)\n", mxTknOfst); lineno++; - fprintf(out, "static const %s yy_shift_ofst[] = {\n", - minimum_size_type(mnTknOfst-1, mxTknOfst)); lineno++; - for(i=j=0; isorted[i]; - ofst = stp->iTknOfst; - if( ofst==NO_OFFSET ) ofst = mnTknOfst - 1; - if( j==0 ) fprintf(out," /* %5d */ ", i); - fprintf(out, " %4d,", ofst); - if( j==9 || i==n-1 ){ - fprintf(out, "\n"); lineno++; - j = 0; - }else{ - j++; - } - } - fprintf(out, "};\n"); lineno++; - - /* Output the yy_reduce_ofst[] table */ - fprintf(out, "#define YY_REDUCE_USE_DFLT (%d)\n", mnNtOfst-1); lineno++; - n = lemp->nstate; - while( n>0 && lemp->sorted[n-1]->iNtOfst==NO_OFFSET ) n--; - fprintf(out, "#define YY_REDUCE_COUNT (%d)\n", n-1); lineno++; - fprintf(out, "#define YY_REDUCE_MIN (%d)\n", mnNtOfst); lineno++; - fprintf(out, "#define YY_REDUCE_MAX (%d)\n", mxNtOfst); lineno++; - fprintf(out, "static const %s yy_reduce_ofst[] = {\n", - minimum_size_type(mnNtOfst-1, mxNtOfst)); lineno++; - for(i=j=0; isorted[i]; - ofst = stp->iNtOfst; - if( ofst==NO_OFFSET ) ofst = mnNtOfst - 1; - if( j==0 ) fprintf(out," /* %5d */ ", i); - fprintf(out, " %4d,", ofst); - if( j==9 || i==n-1 ){ - fprintf(out, "\n"); lineno++; - j = 0; - }else{ - j++; - } - } - fprintf(out, "};\n"); lineno++; - - /* Output the default action table */ - fprintf(out, "static const YYACTIONTYPE yy_default[] = {\n"); lineno++; - n = lemp->nstate; - for(i=j=0; isorted[i]; - if( j==0 ) fprintf(out," /* %5d */ ", i); - fprintf(out, " %4d,", stp->iDflt); - if( j==9 || i==n-1 ){ - fprintf(out, "\n"); lineno++; - j = 0; - }else{ - j++; - } - } - fprintf(out, "};\n"); lineno++; - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate the table of fallback tokens. - */ - if( lemp->has_fallback ){ - int mx = lemp->nterminal - 1; - while( mx>0 && lemp->symbols[mx]->fallback==0 ){ mx--; } - for(i=0; i<=mx; i++){ - struct symbol *p = lemp->symbols[i]; - if( p->fallback==0 ){ - fprintf(out, " 0, /* %10s => nothing */\n", p->name); - }else{ - fprintf(out, " %3d, /* %10s => %s */\n", p->fallback->index, - p->name, p->fallback->name); - } - lineno++; - } - } - tplt_xfer(lemp->name, in, out, &lineno); - - /* Generate a table containing the symbolic name of every symbol - */ - for(i=0; insymbol; i++){ - sprintf(line,"\"%s\",",lemp->symbols[i]->name); - fprintf(out," %-15s",line); - if( (i&3)==3 ){ fprintf(out,"\n"); lineno++; } - } - if( (i&3)!=0 ){ fprintf(out,"\n"); lineno++; } - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate a table containing a text string that describes every - ** rule in the rule set of the grammar. This information is used - ** when tracing REDUCE actions. - */ - for(i=0, rp=lemp->rule; rp; rp=rp->next, i++){ - assert( rp->index==i ); - fprintf(out," /* %3d */ \"", i); - writeRuleText(out, rp); - fprintf(out,"\",\n"); lineno++; - } - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate code which executes every time a symbol is popped from - ** the stack while processing errors or while destroying the parser. - ** (In other words, generate the %destructor actions) - */ - if( lemp->tokendest ){ - int once = 1; - for(i=0; insymbol; i++){ - struct symbol *sp = lemp->symbols[i]; - if( sp==0 || sp->type!=TERMINAL ) continue; - if( once ){ - fprintf(out, " /* TERMINAL Destructor */\n"); lineno++; - once = 0; - } - fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; - } - for(i=0; insymbol && lemp->symbols[i]->type!=TERMINAL; i++); - if( insymbol ){ - emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); - fprintf(out," break;\n"); lineno++; - } - } - if( lemp->vardest ){ - struct symbol *dflt_sp = 0; - int once = 1; - for(i=0; insymbol; i++){ - struct symbol *sp = lemp->symbols[i]; - if( sp==0 || sp->type==TERMINAL || - sp->index<=0 || sp->destructor!=0 ) continue; - if( once ){ - fprintf(out, " /* Default NON-TERMINAL Destructor */\n"); lineno++; - once = 0; - } - fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; - dflt_sp = sp; - } - if( dflt_sp!=0 ){ - emit_destructor_code(out,dflt_sp,lemp,&lineno); - } - fprintf(out," break;\n"); lineno++; - } - for(i=0; insymbol; i++){ - struct symbol *sp = lemp->symbols[i]; - if( sp==0 || sp->type==TERMINAL || sp->destructor==0 ) continue; - fprintf(out," case %d: /* %s */\n", sp->index, sp->name); lineno++; - - /* Combine duplicate destructors into a single case */ - for(j=i+1; jnsymbol; j++){ - struct symbol *sp2 = lemp->symbols[j]; - if( sp2 && sp2->type!=TERMINAL && sp2->destructor - && sp2->dtnum==sp->dtnum - && strcmp(sp->destructor,sp2->destructor)==0 ){ - fprintf(out," case %d: /* %s */\n", - sp2->index, sp2->name); lineno++; - sp2->destructor = 0; - } - } - - emit_destructor_code(out,lemp->symbols[i],lemp,&lineno); - fprintf(out," break;\n"); lineno++; - } - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate code which executes whenever the parser stack overflows */ - tplt_print(out,lemp,lemp->overflow,&lineno); - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate the table of rule information - ** - ** Note: This code depends on the fact that rules are number - ** sequentually beginning with 0. - */ - for(rp=lemp->rule; rp; rp=rp->next){ - fprintf(out," { %d, %d },\n",rp->lhs->index,rp->nrhs); lineno++; - } - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate code which execution during each REDUCE action */ - for(rp=lemp->rule; rp; rp=rp->next){ - translate_code(lemp, rp); - } - /* First output rules other than the default: rule */ - for(rp=lemp->rule; rp; rp=rp->next){ - struct rule *rp2; /* Other rules with the same action */ - if( rp->code==0 ) continue; - if( rp->code[0]=='\n' && rp->code[1]==0 ) continue; /* Will be default: */ - fprintf(out," case %d: /* ", rp->index); - writeRuleText(out, rp); - fprintf(out, " */\n"); lineno++; - for(rp2=rp->next; rp2; rp2=rp2->next){ - if( rp2->code==rp->code ){ - fprintf(out," case %d: /* ", rp2->index); - writeRuleText(out, rp2); - fprintf(out," */ yytestcase(yyruleno==%d);\n", rp2->index); lineno++; - rp2->code = 0; - } - } - emit_code(out,rp,lemp,&lineno); - fprintf(out," break;\n"); lineno++; - rp->code = 0; - } - /* Finally, output the default: rule. We choose as the default: all - ** empty actions. */ - fprintf(out," default:\n"); lineno++; - for(rp=lemp->rule; rp; rp=rp->next){ - if( rp->code==0 ) continue; - assert( rp->code[0]=='\n' && rp->code[1]==0 ); - fprintf(out," /* (%d) ", rp->index); - writeRuleText(out, rp); - fprintf(out, " */ yytestcase(yyruleno==%d);\n", rp->index); lineno++; - } - fprintf(out," break;\n"); lineno++; - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate code which executes if a parse fails */ - tplt_print(out,lemp,lemp->failure,&lineno); - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate code which executes when a syntax error occurs */ - tplt_print(out,lemp,lemp->error,&lineno); - tplt_xfer(lemp->name,in,out,&lineno); - - /* Generate code which executes when the parser accepts its input */ - tplt_print(out,lemp,lemp->accept,&lineno); - tplt_xfer(lemp->name,in,out,&lineno); - - /* Append any addition code the user desires */ - tplt_print(out,lemp,lemp->extracode,&lineno); - - fclose(in); - fclose(out); - return; -} - -/* Generate a header file for the parser */ -void ReportHeader(struct lemon *lemp) -{ - FILE *out, *in; - const char *prefix; - char line[LINESIZE]; - char pattern[LINESIZE]; - int i; - - if( lemp->tokenprefix ) prefix = lemp->tokenprefix; - else prefix = ""; - in = file_open(lemp,".h","rb"); - if( in ){ - for(i=1; interminal && fgets(line,LINESIZE,in); i++){ - sprintf(pattern,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); - if( strcmp(line,pattern) ) break; - } - fclose(in); - if( i==lemp->nterminal ){ - /* No change in the file. Don't rewrite it. */ - return; - } - } - out = file_open(lemp,".h","wb"); - if( out ){ - for(i=1; interminal; i++){ - fprintf(out,"#define %s%-30s %2d\n",prefix,lemp->symbols[i]->name,i); - } - fclose(out); - } - return; -} - -/* Reduce the size of the action tables, if possible, by making use -** of defaults. -** -** In this version, we take the most frequent REDUCE action and make -** it the default. Except, there is no default if the wildcard token -** is a possible look-ahead. -*/ -void CompressTables(struct lemon *lemp) -{ - struct state *stp; - struct action *ap, *ap2; - struct rule *rp, *rp2, *rbest; - int nbest, n; - int i; - int usesWildcard; - - for(i=0; instate; i++){ - stp = lemp->sorted[i]; - nbest = 0; - rbest = 0; - usesWildcard = 0; - - for(ap=stp->ap; ap; ap=ap->next){ - if( ap->type==SHIFT && ap->sp==lemp->wildcard ){ - usesWildcard = 1; - } - if( ap->type!=REDUCE ) continue; - rp = ap->x.rp; - if( rp->lhsStart ) continue; - if( rp==rbest ) continue; - n = 1; - for(ap2=ap->next; ap2; ap2=ap2->next){ - if( ap2->type!=REDUCE ) continue; - rp2 = ap2->x.rp; - if( rp2==rbest ) continue; - if( rp2==rp ) n++; - } - if( n>nbest ){ - nbest = n; - rbest = rp; - } - } - - /* Do not make a default if the number of rules to default - ** is not at least 1 or if the wildcard token is a possible - ** lookahead. - */ - if( nbest<1 || usesWildcard ) continue; - - - /* Combine matching REDUCE actions into a single default */ - for(ap=stp->ap; ap; ap=ap->next){ - if( ap->type==REDUCE && ap->x.rp==rbest ) break; - } - assert( ap ); - ap->sp = Symbol_new("{default}"); - for(ap=ap->next; ap; ap=ap->next){ - if( ap->type==REDUCE && ap->x.rp==rbest ) ap->type = NOT_USED; - } - stp->ap = Action_sort(stp->ap); - } -} - - -/* -** Compare two states for sorting purposes. The smaller state is the -** one with the most non-terminal actions. If they have the same number -** of non-terminal actions, then the smaller is the one with the most -** token actions. -*/ -static int stateResortCompare(const void *a, const void *b){ - const struct state *pA = *(const struct state**)a; - const struct state *pB = *(const struct state**)b; - int n; - - n = pB->nNtAct - pA->nNtAct; - if( n==0 ){ - n = pB->nTknAct - pA->nTknAct; - if( n==0 ){ - n = pB->statenum - pA->statenum; - } - } - assert( n!=0 ); - return n; -} - - -/* -** Renumber and resort states so that states with fewer choices -** occur at the end. Except, keep state 0 as the first state. -*/ -void ResortStates(struct lemon *lemp) -{ - int i; - struct state *stp; - struct action *ap; - - for(i=0; instate; i++){ - stp = lemp->sorted[i]; - stp->nTknAct = stp->nNtAct = 0; - stp->iDflt = lemp->nstate + lemp->nrule; - stp->iTknOfst = NO_OFFSET; - stp->iNtOfst = NO_OFFSET; - for(ap=stp->ap; ap; ap=ap->next){ - if( compute_action(lemp,ap)>=0 ){ - if( ap->sp->indexnterminal ){ - stp->nTknAct++; - }else if( ap->sp->indexnsymbol ){ - stp->nNtAct++; - }else{ - stp->iDflt = compute_action(lemp, ap); - } - } - } - } - qsort(&lemp->sorted[1], lemp->nstate-1, sizeof(lemp->sorted[0]), - stateResortCompare); - for(i=0; instate; i++){ - lemp->sorted[i]->statenum = i; - } -} - - -/***************** From the file "set.c" ************************************/ -/* -** Set manipulation routines for the LEMON parser generator. -*/ - -static int size = 0; - -/* Set the set size */ -void SetSize(int n) -{ - size = n+1; -} - -/* Allocate a new set */ -char *SetNew(){ - char *s; - s = (char*)calloc( size, 1); - if( s==0 ){ - extern void memory_error(); - memory_error(); - } - return s; -} - -/* Deallocate a set */ -void SetFree(char *s) -{ - free(s); -} - -/* Add a new element to the set. Return TRUE if the element was added -** and FALSE if it was already there. */ -int SetAdd(char *s, int e) -{ - int rv; - assert( e>=0 && esize = 1024; - x1a->count = 0; - x1a->tbl = (x1node*)malloc( - (sizeof(x1node) + sizeof(x1node*))*1024 ); - if( x1a->tbl==0 ){ - free(x1a); - x1a = 0; - }else{ - int i; - x1a->ht = (x1node**)&(x1a->tbl[1024]); - for(i=0; i<1024; i++) x1a->ht[i] = 0; - } - } -} -/* Insert a new record into the array. Return TRUE if successful. -** Prior data with the same key is NOT overwritten */ -int Strsafe_insert(const char *data) -{ - x1node *np; - int h; - int ph; - - if( x1a==0 ) return 0; - ph = strhash(data); - h = ph & (x1a->size-1); - np = x1a->ht[h]; - while( np ){ - if( strcmp(np->data,data)==0 ){ - /* An existing entry with the same key is found. */ - /* Fail because overwrite is not allows. */ - return 0; - } - np = np->next; - } - if( x1a->count>=x1a->size ){ - /* Need to make the hash table bigger */ - int i,size; - struct s_x1 array; - array.size = size = x1a->size*2; - array.count = x1a->count; - array.tbl = (x1node*)malloc( - (sizeof(x1node) + sizeof(x1node*))*size ); - if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ - array.ht = (x1node**)&(array.tbl[size]); - for(i=0; icount; i++){ - x1node *oldnp, *newnp; - oldnp = &(x1a->tbl[i]); - h = strhash(oldnp->data) & (size-1); - newnp = &(array.tbl[i]); - if( array.ht[h] ) array.ht[h]->from = &(newnp->next); - newnp->next = array.ht[h]; - newnp->data = oldnp->data; - newnp->from = &(array.ht[h]); - array.ht[h] = newnp; - } - free(x1a->tbl); - *x1a = array; - } - /* Insert the new data */ - h = ph & (x1a->size-1); - np = &(x1a->tbl[x1a->count++]); - np->data = data; - if( x1a->ht[h] ) x1a->ht[h]->from = &(np->next); - np->next = x1a->ht[h]; - x1a->ht[h] = np; - np->from = &(x1a->ht[h]); - return 1; -} - -/* Return a pointer to data assigned to the given key. Return NULL -** if no such key. */ -const char *Strsafe_find(const char *key) -{ - int h; - x1node *np; - - if( x1a==0 ) return 0; - h = strhash(key) & (x1a->size-1); - np = x1a->ht[h]; - while( np ){ - if( strcmp(np->data,key)==0 ) break; - np = np->next; - } - return np ? np->data : 0; -} - -/* Return a pointer to the (terminal or nonterminal) symbol "x". -** Create a new symbol if this is the first time "x" has been seen. -*/ -struct symbol *Symbol_new(const char *x) -{ - struct symbol *sp; - - sp = Symbol_find(x); - if( sp==0 ){ - sp = (struct symbol *)calloc(1, sizeof(struct symbol) ); - MemoryCheck(sp); - sp->name = Strsafe(x); - sp->type = isupper(*x) ? TERMINAL : NONTERMINAL; - sp->rule = 0; - sp->fallback = 0; - sp->prec = -1; - sp->assoc = UNK; - sp->firstset = 0; - sp->lambda = LEMON_FALSE; - sp->destructor = 0; - sp->destLineno = 0; - sp->datatype = 0; - sp->useCnt = 0; - Symbol_insert(sp,sp->name); - } - sp->useCnt++; - return sp; -} - -/* Compare two symbols for working purposes -** -** Symbols that begin with upper case letters (terminals or tokens) -** must sort before symbols that begin with lower case letters -** (non-terminals). Other than that, the order does not matter. -** -** We find experimentally that leaving the symbols in their original -** order (the order they appeared in the grammar file) gives the -** smallest parser tables in SQLite. -*/ -int Symbolcmpp(const void *_a, const void *_b) -{ - const struct symbol **a = (const struct symbol **) _a; - const struct symbol **b = (const struct symbol **) _b; - int i1 = (**a).index + 10000000*((**a).name[0]>'Z'); - int i2 = (**b).index + 10000000*((**b).name[0]>'Z'); - assert( i1!=i2 || strcmp((**a).name,(**b).name)==0 ); - return i1-i2; -} - -/* There is one instance of the following structure for each -** associative array of type "x2". -*/ -struct s_x2 { - int size; /* The number of available slots. */ - /* Must be a power of 2 greater than or */ - /* equal to 1 */ - int count; /* Number of currently slots filled */ - struct s_x2node *tbl; /* The data stored here */ - struct s_x2node **ht; /* Hash table for lookups */ -}; - -/* There is one instance of this structure for every data element -** in an associative array of type "x2". -*/ -typedef struct s_x2node { - struct symbol *data; /* The data */ - const char *key; /* The key */ - struct s_x2node *next; /* Next entry with the same hash */ - struct s_x2node **from; /* Previous link */ -} x2node; - -/* There is only one instance of the array, which is the following */ -static struct s_x2 *x2a; - -/* Allocate a new associative array */ -void Symbol_init(){ - if( x2a ) return; - x2a = (struct s_x2*)malloc( sizeof(struct s_x2) ); - if( x2a ){ - x2a->size = 128; - x2a->count = 0; - x2a->tbl = (x2node*)malloc( - (sizeof(x2node) + sizeof(x2node*))*128 ); - if( x2a->tbl==0 ){ - free(x2a); - x2a = 0; - }else{ - int i; - x2a->ht = (x2node**)&(x2a->tbl[128]); - for(i=0; i<128; i++) x2a->ht[i] = 0; - } - } -} -/* Insert a new record into the array. Return TRUE if successful. -** Prior data with the same key is NOT overwritten */ -int Symbol_insert(struct symbol *data, const char *key) -{ - x2node *np; - int h; - int ph; - - if( x2a==0 ) return 0; - ph = strhash(key); - h = ph & (x2a->size-1); - np = x2a->ht[h]; - while( np ){ - if( strcmp(np->key,key)==0 ){ - /* An existing entry with the same key is found. */ - /* Fail because overwrite is not allows. */ - return 0; - } - np = np->next; - } - if( x2a->count>=x2a->size ){ - /* Need to make the hash table bigger */ - int i,size; - struct s_x2 array; - array.size = size = x2a->size*2; - array.count = x2a->count; - array.tbl = (x2node*)malloc( - (sizeof(x2node) + sizeof(x2node*))*size ); - if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ - array.ht = (x2node**)&(array.tbl[size]); - for(i=0; icount; i++){ - x2node *oldnp, *newnp; - oldnp = &(x2a->tbl[i]); - h = strhash(oldnp->key) & (size-1); - newnp = &(array.tbl[i]); - if( array.ht[h] ) array.ht[h]->from = &(newnp->next); - newnp->next = array.ht[h]; - newnp->key = oldnp->key; - newnp->data = oldnp->data; - newnp->from = &(array.ht[h]); - array.ht[h] = newnp; - } - free(x2a->tbl); - *x2a = array; - } - /* Insert the new data */ - h = ph & (x2a->size-1); - np = &(x2a->tbl[x2a->count++]); - np->key = key; - np->data = data; - if( x2a->ht[h] ) x2a->ht[h]->from = &(np->next); - np->next = x2a->ht[h]; - x2a->ht[h] = np; - np->from = &(x2a->ht[h]); - return 1; -} - -/* Return a pointer to data assigned to the given key. Return NULL -** if no such key. */ -struct symbol *Symbol_find(const char *key) -{ - int h; - x2node *np; - - if( x2a==0 ) return 0; - h = strhash(key) & (x2a->size-1); - np = x2a->ht[h]; - while( np ){ - if( strcmp(np->key,key)==0 ) break; - np = np->next; - } - return np ? np->data : 0; -} - -/* Return the n-th data. Return NULL if n is out of range. */ -struct symbol *Symbol_Nth(int n) -{ - struct symbol *data; - if( x2a && n>0 && n<=x2a->count ){ - data = x2a->tbl[n-1].data; - }else{ - data = 0; - } - return data; -} - -/* Return the size of the array */ -int Symbol_count() -{ - return x2a ? x2a->count : 0; -} - -/* Return an array of pointers to all data in the table. -** The array is obtained from malloc. Return NULL if memory allocation -** problems, or if the array is empty. */ -struct symbol **Symbol_arrayof() -{ - struct symbol **array; - int i,size; - if( x2a==0 ) return 0; - size = x2a->count; - array = (struct symbol **)calloc(size, sizeof(struct symbol *)); - if( array ){ - for(i=0; itbl[i].data; - } - return array; -} - -/* Compare two configurations */ -int Configcmp(const char *_a,const char *_b) -{ - const struct config *a = (struct config *) _a; - const struct config *b = (struct config *) _b; - int x; - x = a->rp->index - b->rp->index; - if( x==0 ) x = a->dot - b->dot; - return x; -} - -/* Compare two states */ -PRIVATE int statecmp(struct config *a, struct config *b) -{ - int rc; - for(rc=0; rc==0 && a && b; a=a->bp, b=b->bp){ - rc = a->rp->index - b->rp->index; - if( rc==0 ) rc = a->dot - b->dot; - } - if( rc==0 ){ - if( a ) rc = 1; - if( b ) rc = -1; - } - return rc; -} - -/* Hash a state */ -PRIVATE int statehash(struct config *a) -{ - int h=0; - while( a ){ - h = h*571 + a->rp->index*37 + a->dot; - a = a->bp; - } - return h; -} - -/* Allocate a new state structure */ -struct state *State_new() -{ - struct state *newstate; - newstate = (struct state *)calloc(1, sizeof(struct state) ); - MemoryCheck(newstate); - return newstate; -} - -/* There is one instance of the following structure for each -** associative array of type "x3". -*/ -struct s_x3 { - int size; /* The number of available slots. */ - /* Must be a power of 2 greater than or */ - /* equal to 1 */ - int count; /* Number of currently slots filled */ - struct s_x3node *tbl; /* The data stored here */ - struct s_x3node **ht; /* Hash table for lookups */ -}; - -/* There is one instance of this structure for every data element -** in an associative array of type "x3". -*/ -typedef struct s_x3node { - struct state *data; /* The data */ - struct config *key; /* The key */ - struct s_x3node *next; /* Next entry with the same hash */ - struct s_x3node **from; /* Previous link */ -} x3node; - -/* There is only one instance of the array, which is the following */ -static struct s_x3 *x3a; - -/* Allocate a new associative array */ -void State_init(){ - if( x3a ) return; - x3a = (struct s_x3*)malloc( sizeof(struct s_x3) ); - if( x3a ){ - x3a->size = 128; - x3a->count = 0; - x3a->tbl = (x3node*)malloc( - (sizeof(x3node) + sizeof(x3node*))*128 ); - if( x3a->tbl==0 ){ - free(x3a); - x3a = 0; - }else{ - int i; - x3a->ht = (x3node**)&(x3a->tbl[128]); - for(i=0; i<128; i++) x3a->ht[i] = 0; - } - } -} -/* Insert a new record into the array. Return TRUE if successful. -** Prior data with the same key is NOT overwritten */ -int State_insert(struct state *data, struct config *key) -{ - x3node *np; - int h; - int ph; - - if( x3a==0 ) return 0; - ph = statehash(key); - h = ph & (x3a->size-1); - np = x3a->ht[h]; - while( np ){ - if( statecmp(np->key,key)==0 ){ - /* An existing entry with the same key is found. */ - /* Fail because overwrite is not allows. */ - return 0; - } - np = np->next; - } - if( x3a->count>=x3a->size ){ - /* Need to make the hash table bigger */ - int i,size; - struct s_x3 array; - array.size = size = x3a->size*2; - array.count = x3a->count; - array.tbl = (x3node*)malloc( - (sizeof(x3node) + sizeof(x3node*))*size ); - if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ - array.ht = (x3node**)&(array.tbl[size]); - for(i=0; icount; i++){ - x3node *oldnp, *newnp; - oldnp = &(x3a->tbl[i]); - h = statehash(oldnp->key) & (size-1); - newnp = &(array.tbl[i]); - if( array.ht[h] ) array.ht[h]->from = &(newnp->next); - newnp->next = array.ht[h]; - newnp->key = oldnp->key; - newnp->data = oldnp->data; - newnp->from = &(array.ht[h]); - array.ht[h] = newnp; - } - free(x3a->tbl); - *x3a = array; - } - /* Insert the new data */ - h = ph & (x3a->size-1); - np = &(x3a->tbl[x3a->count++]); - np->key = key; - np->data = data; - if( x3a->ht[h] ) x3a->ht[h]->from = &(np->next); - np->next = x3a->ht[h]; - x3a->ht[h] = np; - np->from = &(x3a->ht[h]); - return 1; -} - -/* Return a pointer to data assigned to the given key. Return NULL -** if no such key. */ -struct state *State_find(struct config *key) -{ - int h; - x3node *np; - - if( x3a==0 ) return 0; - h = statehash(key) & (x3a->size-1); - np = x3a->ht[h]; - while( np ){ - if( statecmp(np->key,key)==0 ) break; - np = np->next; - } - return np ? np->data : 0; -} - -/* Return an array of pointers to all data in the table. -** The array is obtained from malloc. Return NULL if memory allocation -** problems, or if the array is empty. */ -struct state **State_arrayof() -{ - struct state **array; - int i,size; - if( x3a==0 ) return 0; - size = x3a->count; - array = (struct state **)malloc( sizeof(struct state *)*size ); - if( array ){ - for(i=0; itbl[i].data; - } - return array; -} - -/* Hash a configuration */ -PRIVATE int confighash(struct config *a) -{ - int h=0; - h = h*571 + a->rp->index*37 + a->dot; - return h; -} - -/* There is one instance of the following structure for each -** associative array of type "x4". -*/ -struct s_x4 { - int size; /* The number of available slots. */ - /* Must be a power of 2 greater than or */ - /* equal to 1 */ - int count; /* Number of currently slots filled */ - struct s_x4node *tbl; /* The data stored here */ - struct s_x4node **ht; /* Hash table for lookups */ -}; - -/* There is one instance of this structure for every data element -** in an associative array of type "x4". -*/ -typedef struct s_x4node { - struct config *data; /* The data */ - struct s_x4node *next; /* Next entry with the same hash */ - struct s_x4node **from; /* Previous link */ -} x4node; - -/* There is only one instance of the array, which is the following */ -static struct s_x4 *x4a; - -/* Allocate a new associative array */ -void Configtable_init(){ - if( x4a ) return; - x4a = (struct s_x4*)malloc( sizeof(struct s_x4) ); - if( x4a ){ - x4a->size = 64; - x4a->count = 0; - x4a->tbl = (x4node*)malloc( - (sizeof(x4node) + sizeof(x4node*))*64 ); - if( x4a->tbl==0 ){ - free(x4a); - x4a = 0; - }else{ - int i; - x4a->ht = (x4node**)&(x4a->tbl[64]); - for(i=0; i<64; i++) x4a->ht[i] = 0; - } - } -} -/* Insert a new record into the array. Return TRUE if successful. -** Prior data with the same key is NOT overwritten */ -int Configtable_insert(struct config *data) -{ - x4node *np; - int h; - int ph; - - if( x4a==0 ) return 0; - ph = confighash(data); - h = ph & (x4a->size-1); - np = x4a->ht[h]; - while( np ){ - if( Configcmp((const char *) np->data,(const char *) data)==0 ){ - /* An existing entry with the same key is found. */ - /* Fail because overwrite is not allows. */ - return 0; - } - np = np->next; - } - if( x4a->count>=x4a->size ){ - /* Need to make the hash table bigger */ - int i,size; - struct s_x4 array; - array.size = size = x4a->size*2; - array.count = x4a->count; - array.tbl = (x4node*)malloc( - (sizeof(x4node) + sizeof(x4node*))*size ); - if( array.tbl==0 ) return 0; /* Fail due to malloc failure */ - array.ht = (x4node**)&(array.tbl[size]); - for(i=0; icount; i++){ - x4node *oldnp, *newnp; - oldnp = &(x4a->tbl[i]); - h = confighash(oldnp->data) & (size-1); - newnp = &(array.tbl[i]); - if( array.ht[h] ) array.ht[h]->from = &(newnp->next); - newnp->next = array.ht[h]; - newnp->data = oldnp->data; - newnp->from = &(array.ht[h]); - array.ht[h] = newnp; - } - free(x4a->tbl); - *x4a = array; - } - /* Insert the new data */ - h = ph & (x4a->size-1); - np = &(x4a->tbl[x4a->count++]); - np->data = data; - if( x4a->ht[h] ) x4a->ht[h]->from = &(np->next); - np->next = x4a->ht[h]; - x4a->ht[h] = np; - np->from = &(x4a->ht[h]); - return 1; -} - -/* Return a pointer to data assigned to the given key. Return NULL -** if no such key. */ -struct config *Configtable_find(struct config *key) -{ - int h; - x4node *np; - - if( x4a==0 ) return 0; - h = confighash(key) & (x4a->size-1); - np = x4a->ht[h]; - while( np ){ - if( Configcmp((const char *) np->data,(const char *) key)==0 ) break; - np = np->next; - } - return np ? np->data : 0; -} - -/* Remove all data from the table. Pass each data to the function "f" -** as it is removed. ("f" may be null to avoid this step.) */ -void Configtable_clear(int(*f)(struct config *)) -{ - int i; - if( x4a==0 || x4a->count==0 ) return; - if( f ) for(i=0; icount; i++) (*f)(x4a->tbl[i].data); - for(i=0; isize; i++) x4a->ht[i] = 0; - x4a->count = 0; - return; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/misc/lempar.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/misc/lempar.c deleted file mode 100644 index e684681f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/misc/lempar.c +++ /dev/null @@ -1,889 +0,0 @@ -/* - * My changes over the original lempar.c from SQLite are encased in - * #if __MOJOSHADER__ blocks. --ryan. - */ -#ifndef __MOJOSHADER__ -#define __MOJOSHADER__ 1 -#endif - -#if !__MOJOSHADER__ -#define LEMON_SUPPORT_TRACING (!defined(NDEBUG)) -#endif - -/* Driver template for the LEMON parser generator. -** The original author(s) of lempar.c disclaim copyright to this source code. -** However, changes made for MojoShader fall under the same license as the -** rest of MojoShader. Please see the file LICENSE.txt in the source's root -** directory. -*/ -/* First off, code is included that follows the "include" declaration -** in the input grammar file. */ -#include -%% -/* Next is all token values, in a form suitable for use by makeheaders. -** This section will be null unless lemon is run with the -m switch. -*/ -/* -** These constants (all generated automatically by the parser generator) -** specify the various kinds of tokens (terminals) that the parser -** understands. -** -** Each symbol here is a terminal symbol in the grammar. -*/ -%% -/* Make sure the INTERFACE macro is defined. -*/ -#ifndef INTERFACE -# define INTERFACE 1 -#endif -/* The next thing included is series of defines which control -** various aspects of the generated parser. -** YYCODETYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 terminals -** and nonterminals. "int" is used otherwise. -** YYNOCODE is a number of type YYCODETYPE which corresponds -** to no legal terminal or nonterminal number. This -** number is used to fill in empty slots of the hash -** table. -** YYFALLBACK If defined, this indicates that one or more tokens -** have fall-back values which should be used if the -** original value of the token will not parse. -** YYACTIONTYPE is the data type used for storing terminal -** and nonterminal numbers. "unsigned char" is -** used if there are fewer than 250 rules and -** states combined. "int" is used otherwise. -** ParseTOKENTYPE is the data type used for minor tokens given -** directly to the parser from the tokenizer. -** YYMINORTYPE is the data type used for all minor tokens. -** This is typically a union of many types, one of -** which is ParseTOKENTYPE. The entry in the union -** for base tokens is called "yy0". -** YYSTACKDEPTH is the maximum depth of the parser's stack. If -** zero the stack is dynamically sized using realloc() -** ParseARG_SDECL A static variable declaration for the %extra_argument -** ParseARG_PDECL A parameter declaration for the %extra_argument -** ParseARG_STORE Code to store %extra_argument into yypParser -** ParseARG_FETCH Code to extract %extra_argument from yypParser -** YYNSTATE the combined number of states. -** YYNRULE the number of rules in the grammar -** YYERRORSYMBOL is the code number of the error symbol. If not -** defined, then do no error processing. -*/ -%% -#define YY_NO_ACTION (YYNSTATE+YYNRULE+2) -#define YY_ACCEPT_ACTION (YYNSTATE+YYNRULE+1) -#define YY_ERROR_ACTION (YYNSTATE+YYNRULE) - -/* The yyzerominor constant is used to initialize instances of -** YYMINORTYPE objects to zero. */ -static const YYMINORTYPE yyzerominor = { 0 }; - -/* Define the yytestcase() macro to be a no-op if is not already defined -** otherwise. -** -** Applications can choose to define yytestcase() in the %include section -** to a macro that can assist in verifying code coverage. For production -** code the yytestcase() macro should be turned off. But it is useful -** for testing. -*/ -#ifndef yytestcase -# define yytestcase(X) -#endif - - -/* Next are the tables used to determine what action to take based on the -** current state and lookahead token. These tables are used to implement -** functions that take a state number and lookahead value and return an -** action integer. -** -** Suppose the action integer is N. Then the action is determined as -** follows -** -** 0 <= N < YYNSTATE Shift N. That is, push the lookahead -** token onto the stack and goto state N. -** -** YYNSTATE <= N < YYNSTATE+YYNRULE Reduce by rule N-YYNSTATE. -** -** N == YYNSTATE+YYNRULE A syntax error has occurred. -** -** N == YYNSTATE+YYNRULE+1 The parser accepts its input. -** -** N == YYNSTATE+YYNRULE+2 No such action. Denotes unused -** slots in the yy_action[] table. -** -** The action table is constructed as a single large table named yy_action[]. -** Given state S and lookahead X, the action is computed as -** -** yy_action[ yy_shift_ofst[S] + X ] -** -** If the index value yy_shift_ofst[S]+X is out of range or if the value -** yy_lookahead[yy_shift_ofst[S]+X] is not equal to X or if yy_shift_ofst[S] -** is equal to YY_SHIFT_USE_DFLT, it means that the action is not in the table -** and that yy_default[S] should be used instead. -** -** The formula above is for computing the action when the lookahead is -** a terminal symbol. If the lookahead is a non-terminal (as occurs after -** a reduce action) then the yy_reduce_ofst[] array is used in place of -** the yy_shift_ofst[] array and YY_REDUCE_USE_DFLT is used in place of -** YY_SHIFT_USE_DFLT. -** -** The following are the tables generated in this section: -** -** yy_action[] A single table containing all actions. -** yy_lookahead[] A table containing the lookahead for each entry in -** yy_action. Used to detect hash collisions. -** yy_shift_ofst[] For each state, the offset into yy_action for -** shifting terminals. -** yy_reduce_ofst[] For each state, the offset into yy_action for -** shifting non-terminals after a reduce. -** yy_default[] Default action for each state. -*/ -%% - -/* The next table maps tokens into fallback tokens. If a construct -** like the following: -** -** %fallback ID X Y Z. -** -** appears in the grammar, then ID becomes a fallback token for X, Y, -** and Z. Whenever one of the tokens X, Y, or Z is input to the parser -** but it does not parse, the type of the token is changed to ID and -** the parse is retried before an error is thrown. -*/ -#ifdef YYFALLBACK -static const YYCODETYPE yyFallback[] = { -%% -}; -#endif /* YYFALLBACK */ - -/* The following structure represents a single element of the -** parser's stack. Information stored includes: -** -** + The state number for the parser at this level of the stack. -** -** + The value of the token stored at this level of the stack. -** (In other words, the "major" token.) -** -** + The semantic value stored at this level of the stack. This is -** the information used by the action routines in the grammar. -** It is sometimes called the "minor" token. -*/ -struct yyStackEntry { - YYACTIONTYPE stateno; /* The state-number */ - YYCODETYPE major; /* The major token value. This is the code - ** number for the token at this stack level */ - YYMINORTYPE minor; /* The user-supplied minor token value. This - ** is the value of the token */ -}; -typedef struct yyStackEntry yyStackEntry; - -/* The state of the parser is completely contained in an instance of -** the following structure */ -struct yyParser { - int yyidx; /* Index of top element in stack */ -#ifdef YYTRACKMAXSTACKDEPTH - int yyidxMax; /* Maximum value of yyidx */ -#endif - int yyerrcnt; /* Shifts left before out of the error */ - ParseARG_SDECL /* A place to hold %extra_argument */ -#if YYSTACKDEPTH<=0 - int yystksz; /* Current side of the stack */ - yyStackEntry *yystack; /* The parser's stack */ -#else - yyStackEntry yystack[YYSTACKDEPTH]; /* The parser's stack */ -#endif -}; -typedef struct yyParser yyParser; - -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ -#include -static FILE *yyTraceFILE = 0; -static char *yyTracePrompt = 0; -#endif /* NDEBUG */ - -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ -/* -** Turn parser tracing on by giving a stream to which to write the trace -** and a prompt to preface each trace message. Tracing is turned off -** by making either argument NULL -** -** Inputs: -**
    -**
  • A FILE* to which trace output should be written. -** If NULL, then tracing is turned off. -**
  • A prefix string written at the beginning of every -** line of trace output. If NULL, then tracing is -** turned off. -**
-** -** Outputs: -** None. -*/ -#if __MOJOSHADER__ -static -#endif -void ParseTrace(FILE *TraceFILE, char *zTracePrompt){ - yyTraceFILE = TraceFILE; - yyTracePrompt = zTracePrompt; - if( yyTraceFILE==0 ) yyTracePrompt = 0; - else if( yyTracePrompt==0 ) yyTraceFILE = 0; -} -#endif /* NDEBUG */ - -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ -/* For tracing shifts, the names of all terminals and nonterminals -** are required. The following table supplies these names */ -static const char *const yyTokenName[] = { -%% -}; -#endif /* NDEBUG */ - -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ -/* For tracing reduce actions, the names of all rules are required. -*/ -static const char *const yyRuleName[] = { -%% -}; -#endif /* NDEBUG */ - - -#if YYSTACKDEPTH<=0 -/* -** Try to increase the size of the parser stack. -*/ -static void yyGrowStack(yyParser *p){ - int newSize; - yyStackEntry *pNew; - - newSize = p->yystksz*2 + 100; - pNew = realloc(p->yystack, newSize*sizeof(pNew[0])); - if( pNew ){ - p->yystack = pNew; - p->yystksz = newSize; -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack grows to %d entries!\n", - yyTracePrompt, p->yystksz); - } -#endif - } -} -#endif - -/* -** This function allocates a new parser. -** The only argument is a pointer to a function which works like -** malloc. -** -** Inputs: -** A pointer to the function used to allocate memory. -** -** Outputs: -** A pointer to a parser. This pointer is used in subsequent calls -** to Parse and ParseFree. -*/ -#if __MOJOSHADER__ -static void *ParseAlloc(void *(*mallocProc)(int,void *), void *malloc_data){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (int)sizeof(yyParser), malloc_data ); -#else -void *ParseAlloc(void *(*mallocProc)(size_t)){ - yyParser *pParser; - pParser = (yyParser*)(*mallocProc)( (size_t)sizeof(yyParser) ); -#endif - if( pParser ){ - pParser->yyidx = -1; -#ifdef YYTRACKMAXSTACKDEPTH - pParser->yyidxMax = 0; -#endif -#if YYSTACKDEPTH<=0 - pParser->yystack = NULL; - pParser->yystksz = 0; - yyGrowStack(pParser); -#endif - } - return pParser; -} - -/* The following function deletes the value associated with a -** symbol. The symbol can be either a terminal or nonterminal. -** "yymajor" is the symbol code, and "yypminor" is a pointer to -** the value. -*/ -static void yy_destructor( - yyParser *yypParser, /* The parser */ - YYCODETYPE yymajor, /* Type code for object to destroy */ - YYMINORTYPE *yypminor /* The object to be destroyed */ -){ - ParseARG_FETCH; - switch( yymajor ){ - /* Here is inserted the actions which take place when a - ** terminal or non-terminal is destroyed. This can happen - ** when the symbol is popped from the stack during a - ** reduce or during error processing or when a parser is - ** being destroyed before it is finished parsing. - ** - ** Note: during a reduce, the only symbols destroyed are those - ** which appear on the RHS of the rule, but which are not used - ** inside the C code. - */ -%% - default: break; /* If no destructor action specified: do nothing */ - } -} - -/* -** Pop the parser's stack once. -** -** If there is a destructor routine associated with the token which -** is popped from the stack, then call it. -** -** Return the major token number for the symbol popped. -*/ -static int yy_pop_parser_stack(yyParser *pParser){ - YYCODETYPE yymajor; - yyStackEntry *yytos = &pParser->yystack[pParser->yyidx]; - - if( pParser->yyidx<0 ) return 0; -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE && pParser->yyidx>=0 ){ - fprintf(yyTraceFILE,"%sPopping %s\n", - yyTracePrompt, - yyTokenName[yytos->major]); - } -#endif - yymajor = yytos->major; - yy_destructor(pParser, yymajor, &yytos->minor); - pParser->yyidx--; - return yymajor; -} - -/* -** Deallocate and destroy a parser. Destructors are all called for -** all stack elements before shutting the parser down. -** -** Inputs: -**
    -**
  • A pointer to the parser. This should be a pointer -** obtained from ParseAlloc. -**
  • A pointer to a function used to reclaim memory obtained -** from malloc. -**
-*/ -#if __MOJOSHADER__ -static -#endif -void ParseFree( - void *p, /* The parser to be deleted */ -#if __MOJOSHADER__ - void (*freeProc)(void*,void*), /* Function used to reclaim memory */ - void *malloc_data -#else - void (*freeProc)(void*) /* Function used to reclaim memory */ -#endif -){ - yyParser *pParser = (yyParser*)p; - if( pParser==0 ) return; - while( pParser->yyidx>=0 ) yy_pop_parser_stack(pParser); -#if YYSTACKDEPTH<=0 - free(pParser->yystack); -#endif -#if __MOJOSHADER__ - (*freeProc)((void*)pParser, malloc_data); -#else - (*freeProc)((void*)pParser); -#endif -} - -/* -** Return the peak depth of the stack for a parser. -*/ -#ifdef YYTRACKMAXSTACKDEPTH -static int ParseStackPeak(void *p){ - yyParser *pParser = (yyParser*)p; - return pParser->yyidxMax; -} -#endif - -/* -** Find the appropriate action for a parser given the terminal -** look-ahead token iLookAhead. -** -** If the look-ahead token is YYNOCODE, then check to see if the action is -** independent of the look-ahead. If it is, return the action, otherwise -** return YY_NO_ACTION. -*/ -static int yy_find_shift_action( - yyParser *pParser, /* The parser */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; - int stateno = pParser->yystack[pParser->yyidx].stateno; - - if( stateno>YY_SHIFT_COUNT - || (i = yy_shift_ofst[stateno])==YY_SHIFT_USE_DFLT ){ - return yy_default[stateno]; - } - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; - if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ - if( iLookAhead>0 ){ -#ifdef YYFALLBACK - YYCODETYPE iFallback; /* Fallback token */ - if( iLookAhead %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[iFallback]); - } -#endif - return yy_find_shift_action(pParser, iFallback); - } -#endif -#ifdef YYWILDCARD - { - int j = i - iLookAhead + YYWILDCARD; - if( -#if YY_SHIFT_MIN+YYWILDCARD<0 - j>=0 && -#endif -#if YY_SHIFT_MAX+YYWILDCARD>=YY_ACTTAB_COUNT - j %s\n", - yyTracePrompt, yyTokenName[iLookAhead], yyTokenName[YYWILDCARD]); - } -#endif /* NDEBUG */ - return yy_action[j]; - } - } -#endif /* YYWILDCARD */ - } - return yy_default[stateno]; - }else{ - return yy_action[i]; - } -} - -/* -** Find the appropriate action for a parser given the non-terminal -** look-ahead token iLookAhead. -** -** If the look-ahead token is YYNOCODE, then check to see if the action is -** independent of the look-ahead. If it is, return the action, otherwise -** return YY_NO_ACTION. -*/ -static int yy_find_reduce_action( - int stateno, /* Current state number */ - YYCODETYPE iLookAhead /* The look-ahead token */ -){ - int i; -#ifdef YYERRORSYMBOL - if( stateno>YY_REDUCE_COUNT ){ - return yy_default[stateno]; - } -#else - assert( stateno<=YY_REDUCE_COUNT ); -#endif - i = yy_reduce_ofst[stateno]; - assert( i!=YY_REDUCE_USE_DFLT ); - assert( iLookAhead!=YYNOCODE ); - i += iLookAhead; -#ifdef YYERRORSYMBOL - if( i<0 || i>=YY_ACTTAB_COUNT || yy_lookahead[i]!=iLookAhead ){ - return yy_default[stateno]; - } -#else - assert( i>=0 && iyyidx--; -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sStack Overflow!\n",yyTracePrompt); - } -#endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will execute if the parser - ** stack every overflows */ -%% - ParseARG_STORE; /* Suppress warning about unused %extra_argument var */ -} - -/* -** Perform a shift action. -*/ -static void yy_shift( - yyParser *yypParser, /* The parser to be shifted */ - int yyNewState, /* The new state to shift in */ - int yyMajor, /* The major token to shift in */ - YYMINORTYPE *yypMinor /* Pointer to the minor token to shift in */ -){ - yyStackEntry *yytos; - yypParser->yyidx++; -#ifdef YYTRACKMAXSTACKDEPTH - if( yypParser->yyidx>yypParser->yyidxMax ){ - yypParser->yyidxMax = yypParser->yyidx; - } -#endif -#if YYSTACKDEPTH>0 - if( yypParser->yyidx>=YYSTACKDEPTH ){ - yyStackOverflow(yypParser, yypMinor); - return; - } -#else - if( yypParser->yyidx>=yypParser->yystksz ){ - yyGrowStack(yypParser); - if( yypParser->yyidx>=yypParser->yystksz ){ - yyStackOverflow(yypParser, yypMinor); - return; - } - } -#endif - yytos = &yypParser->yystack[yypParser->yyidx]; - yytos->stateno = (YYACTIONTYPE)yyNewState; - yytos->major = (YYCODETYPE)yyMajor; - yytos->minor = *yypMinor; -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE && yypParser->yyidx>0 ){ - int i; - fprintf(yyTraceFILE,"%sShift %d\n",yyTracePrompt,yyNewState); - fprintf(yyTraceFILE,"%sStack:",yyTracePrompt); - for(i=1; i<=yypParser->yyidx; i++) - fprintf(yyTraceFILE," %s",yyTokenName[yypParser->yystack[i].major]); - fprintf(yyTraceFILE,"\n"); - } -#endif -} - -/* The following table contains information about every rule that -** is used during the reduce. -*/ -static const struct { - YYCODETYPE lhs; /* Symbol on the left-hand side of the rule */ - unsigned char nrhs; /* Number of right-hand side symbols in the rule */ -} yyRuleInfo[] = { -%% -}; - -static void yy_accept(yyParser*); /* Forward Declaration */ - -/* -** Perform a reduce action and the shift that must immediately -** follow the reduce. -*/ -static void yy_reduce( - yyParser *yypParser, /* The parser */ - int yyruleno /* Number of the rule by which to reduce */ -){ - int yygoto; /* The next state */ - int yyact; /* The next action */ - YYMINORTYPE yygotominor; /* The LHS of the rule reduced */ - yyStackEntry *yymsp; /* The top of the parser's stack */ - int yysize; /* Amount to pop the stack */ - ParseARG_FETCH; - yymsp = &yypParser->yystack[yypParser->yyidx]; -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE && yyruleno>=0 - && yyruleno<(int)(sizeof(yyRuleName)/sizeof(yyRuleName[0])) ){ - fprintf(yyTraceFILE, "%sReduce [%s].\n", yyTracePrompt, - yyRuleName[yyruleno]); - } -#endif /* NDEBUG */ - - /* Silence complaints from purify about yygotominor being uninitialized - ** in some cases when it is copied into the stack after the following - ** switch. yygotominor is uninitialized when a rule reduces that does - ** not set the value of its left-hand side nonterminal. Leaving the - ** value of the nonterminal uninitialized is utterly harmless as long - ** as the value is never used. So really the only thing this code - ** accomplishes is to quieten purify. - ** - ** 2007-01-16: The wireshark project (www.wireshark.org) reports that - ** without this code, their parser segfaults. I'm not sure what there - ** parser is doing to make this happen. This is the second bug report - ** from wireshark this week. Clearly they are stressing Lemon in ways - ** that it has not been previously stressed... (SQLite ticket #2172) - */ - /*memset(&yygotominor, 0, sizeof(yygotominor));*/ - yygotominor = yyzerominor; - - - switch( yyruleno ){ - /* Beginning here are the reduction cases. A typical example - ** follows: - ** case 0: - ** #line - ** { ... } // User supplied code - ** #line - ** break; - */ -%% - }; - yygoto = yyRuleInfo[yyruleno].lhs; - yysize = yyRuleInfo[yyruleno].nrhs; - yypParser->yyidx -= yysize; - yyact = yy_find_reduce_action(yymsp[-yysize].stateno,(YYCODETYPE)yygoto); - if( yyact < YYNSTATE ){ -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - /* If we are not debugging and the reduce action popped at least - ** one element off the stack, then we can push the new element back - ** onto the stack here, and skip the stack overflow test in yy_shift(). - ** That gives a significant speed improvement. */ - if( yysize ){ - yypParser->yyidx++; - yymsp -= yysize-1; - yymsp->stateno = (YYACTIONTYPE)yyact; - yymsp->major = (YYCODETYPE)yygoto; - yymsp->minor = yygotominor; - }else -#endif - { - yy_shift(yypParser,yyact,yygoto,&yygotominor); - } - }else{ - assert( yyact == YYNSTATE + YYNRULE + 1 ); - yy_accept(yypParser); - } -} - -/* -** The following code executes when the parse fails -*/ -#ifndef YYNOERRORRECOVERY -static void yy_parse_failed( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sFail!\n",yyTracePrompt); - } -#endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser fails */ -%% - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ -} -#endif /* YYNOERRORRECOVERY */ - -/* -** The following code executes when a syntax error first occurs. -*/ -static void yy_syntax_error( - yyParser *yypParser, /* The parser */ - int yymajor, /* The major type of the error token */ - YYMINORTYPE yyminor /* The minor type of the error token */ -){ - ParseARG_FETCH; -#define TOKEN (yyminor.yy0) -%% - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ -} - -/* -** The following is executed when the parser accepts -*/ -static void yy_accept( - yyParser *yypParser /* The parser */ -){ - ParseARG_FETCH; -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sAccept!\n",yyTracePrompt); - } -#endif - while( yypParser->yyidx>=0 ) yy_pop_parser_stack(yypParser); - /* Here code is inserted which will be executed whenever the - ** parser accepts */ -%% - ParseARG_STORE; /* Suppress warning about unused %extra_argument variable */ -} - -/* The main parser program. -** The first argument is a pointer to a structure obtained from -** "ParseAlloc" which describes the current state of the parser. -** The second argument is the major token number. The third is -** the minor token. The fourth optional argument is whatever the -** user wants (and specified in the grammar) and is available for -** use by the action routines. -** -** Inputs: -**
    -**
  • A pointer to the parser (an opaque structure.) -**
  • The major token number. -**
  • The minor token number. -**
  • An option argument of a grammar-specified type. -**
-** -** Outputs: -** None. -*/ -#if __MOJOSHADER__ -static -#endif -void Parse( - void *yyp, /* The parser */ - int yymajor, /* The major token code number */ - ParseTOKENTYPE yyminor /* The value for the token */ - ParseARG_PDECL /* Optional %extra_argument parameter */ -){ - YYMINORTYPE yyminorunion; - int yyact; /* The parser action. */ - int yyendofinput; /* True if we are at the end of input */ -#ifdef YYERRORSYMBOL - int yyerrorhit = 0; /* True if yymajor has invoked an error */ -#endif - yyParser *yypParser; /* The parser */ - - /* (re)initialize the parser, if necessary */ - yypParser = (yyParser*)yyp; - if( yypParser->yyidx<0 ){ -#if YYSTACKDEPTH<=0 - if( yypParser->yystksz <=0 ){ - /*memset(&yyminorunion, 0, sizeof(yyminorunion));*/ - yyminorunion = yyzerominor; - yyStackOverflow(yypParser, &yyminorunion); - return; - } -#endif - yypParser->yyidx = 0; - yypParser->yyerrcnt = -1; - yypParser->yystack[0].stateno = 0; - yypParser->yystack[0].major = 0; - } - yyminorunion.yy0 = yyminor; - yyendofinput = (yymajor==0); - ParseARG_STORE; - -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sInput %s\n",yyTracePrompt,yyTokenName[yymajor]); - } -#endif - - do{ - yyact = yy_find_shift_action(yypParser,(YYCODETYPE)yymajor); - if( yyactyyerrcnt--; - yymajor = YYNOCODE; - }else if( yyact < YYNSTATE + YYNRULE ){ - yy_reduce(yypParser,yyact-YYNSTATE); - }else{ - assert( yyact == YY_ERROR_ACTION ); -#ifdef YYERRORSYMBOL - int yymx; -#endif -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sSyntax Error!\n",yyTracePrompt); - } -#endif -#ifdef YYERRORSYMBOL - /* A syntax error has occurred. - ** The response to an error depends upon whether or not the - ** grammar defines an error token "ERROR". - ** - ** This is what we do if the grammar does define ERROR: - ** - ** * Call the %syntax_error function. - ** - ** * Begin popping the stack until we enter a state where - ** it is legal to shift the error symbol, then shift - ** the error symbol. - ** - ** * Set the error count to three. - ** - ** * Begin accepting and shifting new tokens. No new error - ** processing will occur until three tokens have been - ** shifted successfully. - ** - */ - if( yypParser->yyerrcnt<0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yymx = yypParser->yystack[yypParser->yyidx].major; - if( yymx==YYERRORSYMBOL || yyerrorhit ){ -#if LEMON_SUPPORT_TRACING /* __MOJOSHADER__ */ - if( yyTraceFILE ){ - fprintf(yyTraceFILE,"%sDiscard input token %s\n", - yyTracePrompt,yyTokenName[yymajor]); - } -#endif - yy_destructor(yypParser, (YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - }else{ - while( - yypParser->yyidx >= 0 && - yymx != YYERRORSYMBOL && - (yyact = yy_find_reduce_action( - yypParser->yystack[yypParser->yyidx].stateno, - YYERRORSYMBOL)) >= YYNSTATE - ){ - yy_pop_parser_stack(yypParser); - } - if( yypParser->yyidx < 0 || yymajor==0 ){ - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yy_parse_failed(yypParser); - yymajor = YYNOCODE; - }else if( yymx!=YYERRORSYMBOL ){ - YYMINORTYPE u2; - u2.YYERRSYMDT = 0; - yy_shift(yypParser,yyact,YYERRORSYMBOL,&u2); - } - } - yypParser->yyerrcnt = 3; - yyerrorhit = 1; -#elif defined(YYNOERRORRECOVERY) - /* If the YYNOERRORRECOVERY macro is defined, then do not attempt to - ** do any kind of error recovery. Instead, simply invoke the syntax - ** error routine and continue going as if nothing had happened. - ** - ** Applications can set this macro (for example inside %include) if - ** they intend to abandon the parse upon the first syntax error seen. - */ - yy_syntax_error(yypParser,yymajor,yyminorunion); - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - yymajor = YYNOCODE; - -#else /* YYERRORSYMBOL is not defined */ - /* This is what we do if the grammar does not define ERROR: - ** - ** * Report an error message, and throw away the input token. - ** - ** * If the input token is $, then fail the parse. - ** - ** As before, subsequent error messages are suppressed until - ** three input tokens have been successfully shifted. - */ - if( yypParser->yyerrcnt<=0 ){ - yy_syntax_error(yypParser,yymajor,yyminorunion); - } - yypParser->yyerrcnt = 3; - yy_destructor(yypParser,(YYCODETYPE)yymajor,&yyminorunion); - if( yyendofinput ){ - yy_parse_failed(yypParser); - } - yymajor = YYNOCODE; -#endif - } - }while( yymajor!=YYNOCODE && yypParser->yyidx>=0 ); - return; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader.c deleted file mode 100644 index f50053da..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader.c +++ /dev/null @@ -1,4001 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -// !!! FIXME: this file really needs to be split up. -// !!! FIXME: I keep changing coding styles for symbols and typedefs. - -// !!! FIXME: rules from MSDN about temp registers we probably don't check. -// - There are limited temporaries: vs_1_1 has 12 (ps_1_1 has _2_!). -// - SM2 apparently was variable, between 12 and 32. Shader Model 3 has 32. -// - A maximum of three temp registers can be used in a single instruction. - -#define __MOJOSHADER_INTERNAL__ 1 -#include "profiles/mojoshader_profile.h" - -// Deal with register lists... !!! FIXME: I sort of hate this. - -static void free_reglist(MOJOSHADER_free f, void *d, RegisterList *item) -{ - while (item != NULL) - { - RegisterList *next = item->next; - f(item, d); - item = next; - } // while -} // free_reglist - -static inline const RegisterList *reglist_exists(RegisterList *prev, - const RegisterType regtype, - const int regnum) -{ - return (reglist_find(prev, regtype, regnum)); -} // reglist_exists - -static inline int register_was_written(Context *ctx, const RegisterType rtype, - const int regnum) -{ - RegisterList *reg = reglist_find(&ctx->used_registers, rtype, regnum); - return (reg && reg->written); -} // register_was_written - -static inline int get_defined_register(Context *ctx, const RegisterType rtype, - const int regnum) -{ - return (reglist_exists(&ctx->defined_registers, rtype, regnum) != NULL); -} // get_defined_register - -static void add_attribute_register(Context *ctx, const RegisterType rtype, - const int regnum, const MOJOSHADER_usage usage, - const int index, const int writemask, int flags) -{ - RegisterList *item = reglist_insert(ctx, &ctx->attributes, rtype, regnum); - item->usage = usage; - item->index = index; - item->writemask = writemask; - item->misc = flags; - - if ((rtype == REG_TYPE_OUTPUT) && (usage == MOJOSHADER_USAGE_POINTSIZE)) - ctx->uses_pointsize = 1; // note that we have to check this later. - else if ((rtype == REG_TYPE_OUTPUT) && (usage == MOJOSHADER_USAGE_FOG)) - ctx->uses_fog = 1; // note that we have to check this later. -} // add_attribute_register - -static inline TextureType cvtMojoToD3DSamplerType(const MOJOSHADER_samplerType type) -{ - return (TextureType) (((int) type) + 2); -} // cvtMojoToD3DSamplerType - -static inline MOJOSHADER_samplerType cvtD3DToMojoSamplerType(const TextureType type) -{ - return (MOJOSHADER_samplerType) (((int) type) - 2); -} // cvtD3DToMojoSamplerType - -static inline void add_sampler(Context *ctx, const int regnum, - TextureType ttype, const int texbem) -{ - const RegisterType rtype = REG_TYPE_SAMPLER; - - // !!! FIXME: make sure it doesn't exist? - // !!! FIXME: (ps_1_1 assume we can add it multiple times...) - RegisterList *item = reglist_insert(ctx, &ctx->samplers, rtype, regnum); - - if (ctx->samplermap != NULL) - { - unsigned int i; - for (i = 0; i < ctx->samplermap_count; i++) - { - if (ctx->samplermap[i].index == regnum) - { - ttype = cvtMojoToD3DSamplerType(ctx->samplermap[i].type); - break; - } // if - } // for - } // if - - item->index = (int) ttype; - item->misc |= texbem; -} // add_sampler - -static inline void adjust_token_position(Context *ctx, const int incr) -{ - ctx->tokens += incr; - ctx->tokencount -= incr; - ctx->current_position += incr * sizeof (uint32); -} // adjust_token_position - -// Generate emitter declarations for each profile with this macro... - -#define PREDECLARE_PROFILE(prof) \ - void emit_##prof##_start(Context *ctx, const char *profilestr); \ - void emit_##prof##_end(Context *ctx); \ - void emit_##prof##_phase(Context *ctx); \ - void emit_##prof##_finalize(Context *ctx); \ - void emit_##prof##_global(Context *ctx, RegisterType regtype, int regnum);\ - void emit_##prof##_array(Context *ctx, VariableList *var); \ - void emit_##prof##_const_array(Context *ctx, const ConstantsList *clist, \ - int base, int size); \ - void emit_##prof##_uniform(Context *ctx, RegisterType regtype, int regnum,\ - const VariableList *var); \ - void emit_##prof##_sampler(Context *ctx, int stage, TextureType ttype, \ - int tb); \ - void emit_##prof##_attribute(Context *ctx, RegisterType regtype, \ - int regnum, MOJOSHADER_usage usage, \ - int index, int wmask, int flags); \ - void emit_##prof##_NOP(Context *ctx); \ - void emit_##prof##_MOV(Context *ctx); \ - void emit_##prof##_ADD(Context *ctx); \ - void emit_##prof##_SUB(Context *ctx); \ - void emit_##prof##_MAD(Context *ctx); \ - void emit_##prof##_MUL(Context *ctx); \ - void emit_##prof##_RCP(Context *ctx); \ - void emit_##prof##_RSQ(Context *ctx); \ - void emit_##prof##_DP3(Context *ctx); \ - void emit_##prof##_DP4(Context *ctx); \ - void emit_##prof##_MIN(Context *ctx); \ - void emit_##prof##_MAX(Context *ctx); \ - void emit_##prof##_SLT(Context *ctx); \ - void emit_##prof##_SGE(Context *ctx); \ - void emit_##prof##_EXP(Context *ctx); \ - void emit_##prof##_LOG(Context *ctx); \ - void emit_##prof##_LIT(Context *ctx); \ - void emit_##prof##_DST(Context *ctx); \ - void emit_##prof##_LRP(Context *ctx); \ - void emit_##prof##_FRC(Context *ctx); \ - void emit_##prof##_M4X4(Context *ctx); \ - void emit_##prof##_M4X3(Context *ctx); \ - void emit_##prof##_M3X4(Context *ctx); \ - void emit_##prof##_M3X3(Context *ctx); \ - void emit_##prof##_M3X2(Context *ctx); \ - void emit_##prof##_CALL(Context *ctx); \ - void emit_##prof##_CALLNZ(Context *ctx); \ - void emit_##prof##_LOOP(Context *ctx); \ - void emit_##prof##_ENDLOOP(Context *ctx); \ - void emit_##prof##_LABEL(Context *ctx); \ - void emit_##prof##_DCL(Context *ctx); \ - void emit_##prof##_POW(Context *ctx); \ - void emit_##prof##_CRS(Context *ctx); \ - void emit_##prof##_SGN(Context *ctx); \ - void emit_##prof##_ABS(Context *ctx); \ - void emit_##prof##_NRM(Context *ctx); \ - void emit_##prof##_SINCOS(Context *ctx); \ - void emit_##prof##_REP(Context *ctx); \ - void emit_##prof##_ENDREP(Context *ctx); \ - void emit_##prof##_IF(Context *ctx); \ - void emit_##prof##_IFC(Context *ctx); \ - void emit_##prof##_ELSE(Context *ctx); \ - void emit_##prof##_ENDIF(Context *ctx); \ - void emit_##prof##_BREAK(Context *ctx); \ - void emit_##prof##_BREAKC(Context *ctx); \ - void emit_##prof##_MOVA(Context *ctx); \ - void emit_##prof##_DEFB(Context *ctx); \ - void emit_##prof##_DEFI(Context *ctx); \ - void emit_##prof##_TEXCRD(Context *ctx); \ - void emit_##prof##_TEXKILL(Context *ctx); \ - void emit_##prof##_TEXLD(Context *ctx); \ - void emit_##prof##_TEXBEM(Context *ctx); \ - void emit_##prof##_TEXBEML(Context *ctx); \ - void emit_##prof##_TEXREG2AR(Context *ctx); \ - void emit_##prof##_TEXREG2GB(Context *ctx); \ - void emit_##prof##_TEXM3X2PAD(Context *ctx); \ - void emit_##prof##_TEXM3X2TEX(Context *ctx); \ - void emit_##prof##_TEXM3X3PAD(Context *ctx); \ - void emit_##prof##_TEXM3X3TEX(Context *ctx); \ - void emit_##prof##_TEXM3X3SPEC(Context *ctx); \ - void emit_##prof##_TEXM3X3VSPEC(Context *ctx); \ - void emit_##prof##_EXPP(Context *ctx); \ - void emit_##prof##_LOGP(Context *ctx); \ - void emit_##prof##_CND(Context *ctx); \ - void emit_##prof##_DEF(Context *ctx); \ - void emit_##prof##_TEXREG2RGB(Context *ctx); \ - void emit_##prof##_TEXDP3TEX(Context *ctx); \ - void emit_##prof##_TEXM3X2DEPTH(Context *ctx); \ - void emit_##prof##_TEXDP3(Context *ctx); \ - void emit_##prof##_TEXM3X3(Context *ctx); \ - void emit_##prof##_TEXDEPTH(Context *ctx); \ - void emit_##prof##_CMP(Context *ctx); \ - void emit_##prof##_BEM(Context *ctx); \ - void emit_##prof##_DP2ADD(Context *ctx); \ - void emit_##prof##_DSX(Context *ctx); \ - void emit_##prof##_DSY(Context *ctx); \ - void emit_##prof##_TEXLDD(Context *ctx); \ - void emit_##prof##_SETP(Context *ctx); \ - void emit_##prof##_TEXLDL(Context *ctx); \ - void emit_##prof##_BREAKP(Context *ctx); \ - void emit_##prof##_RESERVED(Context *ctx); \ - void emit_##prof##_RET(Context *ctx); \ - const char *get_##prof##_varname(Context *ctx, RegisterType rt, \ - int regnum); \ - const char *get_##prof##_const_array_varname(Context *ctx, \ - int base, int size); - -// Check for profile support... - -#define AT_LEAST_ONE_PROFILE 0 - -#if !SUPPORT_PROFILE_BYTECODE -#define PROFILE_EMITTER_BYTECODE(op) -#else -#undef AT_LEAST_ONE_PROFILE -#define AT_LEAST_ONE_PROFILE 1 -#define PROFILE_EMITTER_BYTECODE(op) emit_BYTECODE_##op, -PREDECLARE_PROFILE(BYTECODE) -#endif - -#if !SUPPORT_PROFILE_D3D -#define PROFILE_EMITTER_D3D(op) -#else -#undef AT_LEAST_ONE_PROFILE -#define AT_LEAST_ONE_PROFILE 1 -#define PROFILE_EMITTER_D3D(op) emit_D3D_##op, -PREDECLARE_PROFILE(D3D) -#endif - -#if !SUPPORT_PROFILE_HLSL -#define PROFILE_EMITTER_HLSL(op) -#else -#undef AT_LEAST_ONE_PROFILE -#define AT_LEAST_ONE_PROFILE 1 -#define PROFILE_EMITTER_HLSL(op) emit_HLSL_##op, -PREDECLARE_PROFILE(HLSL) -#endif - -#if !SUPPORT_PROFILE_GLSL -#define PROFILE_EMITTER_GLSL(op) -#else -#undef AT_LEAST_ONE_PROFILE -#define AT_LEAST_ONE_PROFILE 1 -#define PROFILE_EMITTER_GLSL(op) emit_GLSL_##op, -PREDECLARE_PROFILE(GLSL) -#endif - -#if !SUPPORT_PROFILE_METAL -#define PROFILE_EMITTER_METAL(op) -#else -#undef AT_LEAST_ONE_PROFILE -#define AT_LEAST_ONE_PROFILE 1 -#define PROFILE_EMITTER_METAL(op) emit_METAL_##op, -PREDECLARE_PROFILE(METAL) -#endif - -#if !SUPPORT_PROFILE_ARB1 -#define PROFILE_EMITTER_ARB1(op) -#else -#undef AT_LEAST_ONE_PROFILE -#define AT_LEAST_ONE_PROFILE 1 -#define PROFILE_EMITTER_ARB1(op) emit_ARB1_##op, -PREDECLARE_PROFILE(ARB1) -#endif - -#if !SUPPORT_PROFILE_SPIRV -#define PROFILE_EMITTER_SPIRV(op) -#else -#undef AT_LEAST_ONE_PROFILE -#define AT_LEAST_ONE_PROFILE 1 -#define PROFILE_EMITTER_SPIRV(op) emit_SPIRV_##op, -PREDECLARE_PROFILE(SPIRV) -#endif - -#if !AT_LEAST_ONE_PROFILE -#error No profiles are supported. Fix your build. -#endif - -#define DEFINE_PROFILE(prof) { \ - MOJOSHADER_PROFILE_##prof, \ - emit_##prof##_start, \ - emit_##prof##_end, \ - emit_##prof##_phase, \ - emit_##prof##_global, \ - emit_##prof##_array, \ - emit_##prof##_const_array, \ - emit_##prof##_uniform, \ - emit_##prof##_sampler, \ - emit_##prof##_attribute, \ - emit_##prof##_finalize, \ - get_##prof##_varname, \ - get_##prof##_const_array_varname, \ -}, - -static const Profile profiles[] = -{ -#if SUPPORT_PROFILE_D3D - DEFINE_PROFILE(D3D) -#endif -#if SUPPORT_PROFILE_BYTECODE - DEFINE_PROFILE(BYTECODE) -#endif -#if SUPPORT_PROFILE_HLSL - DEFINE_PROFILE(HLSL) -#endif -#if SUPPORT_PROFILE_GLSL - DEFINE_PROFILE(GLSL) -#endif -#if SUPPORT_PROFILE_ARB1 - DEFINE_PROFILE(ARB1) -#endif -#if SUPPORT_PROFILE_METAL - DEFINE_PROFILE(METAL) -#endif -#if SUPPORT_PROFILE_SPIRV - DEFINE_PROFILE(SPIRV) -#endif -}; - -#undef DEFINE_PROFILE - -// This is for profiles that extend other profiles... -static const struct { const char *from; const char *to; } profileMap[] = -{ - { MOJOSHADER_PROFILE_GLSPIRV, MOJOSHADER_PROFILE_SPIRV }, - { MOJOSHADER_PROFILE_GLSLES, MOJOSHADER_PROFILE_GLSL }, - { MOJOSHADER_PROFILE_GLSL120, MOJOSHADER_PROFILE_GLSL }, - { MOJOSHADER_PROFILE_NV2, MOJOSHADER_PROFILE_ARB1 }, - { MOJOSHADER_PROFILE_NV3, MOJOSHADER_PROFILE_ARB1 }, - { MOJOSHADER_PROFILE_NV4, MOJOSHADER_PROFILE_ARB1 }, -}; - -// The PROFILE_EMITTER_* items MUST be in the same order as profiles[]! -#define PROFILE_EMITTERS(op) { \ - PROFILE_EMITTER_D3D(op) \ - PROFILE_EMITTER_BYTECODE(op) \ - PROFILE_EMITTER_HLSL(op) \ - PROFILE_EMITTER_GLSL(op) \ - PROFILE_EMITTER_ARB1(op) \ - PROFILE_EMITTER_METAL(op) \ - PROFILE_EMITTER_SPIRV(op) \ -} - -static int parse_destination_token(Context *ctx, DestArgInfo *info) -{ - // !!! FIXME: recheck against the spec for ranges (like RASTOUT values, etc). - if (ctx->tokencount == 0) - { - fail(ctx, "Out of tokens in destination parameter"); - return 0; - } // if - - const uint32 token = SWAP32(*(ctx->tokens)); - const int reserved1 = (int) ((token >> 14) & 0x3); // bits 14 through 15 - const int reserved2 = (int) ((token >> 31) & 0x1); // bit 31 - - info->token = ctx->tokens; - info->regnum = (int) (token & 0x7ff); // bits 0 through 10 - info->relative = (int) ((token >> 13) & 0x1); // bit 13 - info->orig_writemask = (int) ((token >> 16) & 0xF); // bits 16 through 19 - info->result_mod = (int) ((token >> 20) & 0xF); // bits 20 through 23 - info->result_shift = (int) ((token >> 24) & 0xF); // bits 24 through 27 abc - info->regtype = (RegisterType) (((token >> 28) & 0x7) | ((token >> 8) & 0x18)); // bits 28-30, 11-12 - - int writemask; - if (isscalar(ctx, ctx->shader_type, info->regtype, info->regnum)) - writemask = 0x1; // just x. - else - writemask = info->orig_writemask; - - set_dstarg_writemask(info, writemask); // bits 16 through 19. - - // all the REG_TYPE_CONSTx types are the same register type, it's just - // split up so its regnum can be > 2047 in the bytecode. Clean it up. - if (info->regtype == REG_TYPE_CONST2) - { - info->regtype = REG_TYPE_CONST; - info->regnum += 2048; - } // else if - else if (info->regtype == REG_TYPE_CONST3) - { - info->regtype = REG_TYPE_CONST; - info->regnum += 4096; - } // else if - else if (info->regtype == REG_TYPE_CONST4) - { - info->regtype = REG_TYPE_CONST; - info->regnum += 6144; - } // else if - - // swallow token for now, for multiple calls in a row. - adjust_token_position(ctx, 1); - - if (reserved1 != 0x0) - fail(ctx, "Reserved bit #1 in destination token must be zero"); - - if (reserved2 != 0x1) - fail(ctx, "Reserved bit #2 in destination token must be one"); - - if (info->relative) - { - if (!shader_is_vertex(ctx)) - fail(ctx, "Relative addressing in non-vertex shader"); - if (!shader_version_atleast(ctx, 3, 0)) - fail(ctx, "Relative addressing in vertex shader version < 3.0"); - if ((!ctx->ctab.have_ctab) && (!ctx->ignores_ctab)) - { - // it's hard to do this efficiently without! - fail(ctx, "relative addressing unsupported without a CTAB"); - } // if - - // !!! FIXME: I don't have a shader that has a relative dest currently. - fail(ctx, "Relative addressing of dest tokens is unsupported"); - return 2; - } // if - - const int s = info->result_shift; - if (s != 0) - { - if (!shader_is_pixel(ctx)) - fail(ctx, "Result shift scale in non-pixel shader"); - if (shader_version_atleast(ctx, 2, 0)) - fail(ctx, "Result shift scale in pixel shader version >= 2.0"); - if ( ! (((s >= 1) && (s <= 3)) || ((s >= 0xD) && (s <= 0xF))) ) - fail(ctx, "Result shift scale isn't 1 to 3, or 13 to 15."); - } // if - - if (info->result_mod & MOD_PP) // Partial precision (pixel shaders only) - { - if (!shader_is_pixel(ctx)) - fail(ctx, "Partial precision result mod in non-pixel shader"); - } // if - - if (info->result_mod & MOD_CENTROID) // Centroid (pixel shaders only) - { - if (!shader_is_pixel(ctx)) - fail(ctx, "Centroid result mod in non-pixel shader"); - else if (!ctx->centroid_allowed) // only on DCL opcodes! - fail(ctx, "Centroid modifier not allowed here"); - } // if - - if (/*(info->regtype < 0) ||*/ (info->regtype > REG_TYPE_MAX)) - fail(ctx, "Register type is out of range"); - - if (!isfail(ctx)) - set_used_register(ctx, info->regtype, info->regnum, 1); - - return 1; -} // parse_destination_token - - -static void determine_constants_arrays(Context *ctx) -{ - // Only process this stuff once. This is called after all DEF* opcodes - // could have been parsed. - if (ctx->determined_constants_arrays) - return; - - ctx->determined_constants_arrays = 1; - - if (ctx->constant_count <= 1) - return; // nothing to sort or group. - - // Sort the linked list into an array for easier tapdancing... - ConstantsList **array = (ConstantsList **) alloca(sizeof (ConstantsList *) * (ctx->constant_count + 1)); - ConstantsList *item = ctx->constants; - int i; - - for (i = 0; i < ctx->constant_count; i++) - { - if (item == NULL) - { - fail(ctx, "BUG: mismatched constant list and count"); - return; - } // if - - array[i] = item; - item = item->next; - } // for - - array[ctx->constant_count] = NULL; - - // bubble sort ftw. - int sorted; - do - { - sorted = 1; - for (i = 0; i < ctx->constant_count-1; i++) - { - if (array[i]->constant.index > array[i+1]->constant.index) - { - ConstantsList *tmp = array[i]; - array[i] = array[i+1]; - array[i+1] = tmp; - sorted = 0; - } // if - } // for - } while (!sorted); - - // okay, sorted. While we're here, let's redo the linked list in order... - for (i = 0; i < ctx->constant_count; i++) - array[i]->next = array[i+1]; - ctx->constants = array[0]; - - // now figure out the groupings of constants and add to ctx->variables... - int start = -1; - int prev = -1; - int count = 0; - const int hi = ctx->constant_count; - for (i = 0; i <= hi; i++) - { - if (array[i] && (array[i]->constant.type != MOJOSHADER_UNIFORM_FLOAT)) - continue; // we only care about REG_TYPE_CONST for array groups. - - if (start == -1) - { - prev = start = i; // first REG_TYPE_CONST we've seen. Mark it! - continue; - } // if - - // not a match (or last item in the array)...see if we had a - // contiguous set before this point... - if ( (array[i]) && (array[i]->constant.index == (array[prev]->constant.index + 1)) ) - count++; - else - { - if (count > 0) // multiple constants in the set? - { - VariableList *var; - var = (VariableList *) Malloc(ctx, sizeof (VariableList)); - if (var == NULL) - break; - - var->type = MOJOSHADER_UNIFORM_FLOAT; - var->index = array[start]->constant.index; - var->count = (array[prev]->constant.index - var->index) + 1; - var->constant = array[start]; - var->used = 0; - var->emit_position = -1; - var->next = ctx->variables; - ctx->variables = var; - } // if - - start = i; // set this as new start of sequence. - } // if - - prev = i; - } // for -} // determine_constants_arrays - -static void shader_model_1_input_usage(const int regnum, MOJOSHADER_usage *usage, int *index) -{ - *index = 0; - switch (regnum) // these are hardcoded for Shader Model 1: v0 is POSITION, v1 is BLENDWEIGHT, etc. - { - case 0: *usage = MOJOSHADER_USAGE_POSITION; break; - case 1: *usage = MOJOSHADER_USAGE_BLENDWEIGHT; break; - case 2: *usage = MOJOSHADER_USAGE_BLENDINDICES; break; - case 3: *usage = MOJOSHADER_USAGE_NORMAL; break; - case 4: *usage = MOJOSHADER_USAGE_POINTSIZE; break; - case 5: *usage = MOJOSHADER_USAGE_COLOR; break; // diffuse - case 6: *usage = MOJOSHADER_USAGE_COLOR; *index = 1; break; // specular - case 7: *usage = MOJOSHADER_USAGE_TEXCOORD; break; - case 8: *usage = MOJOSHADER_USAGE_TEXCOORD; *index = 1; break; - case 9: *usage = MOJOSHADER_USAGE_TEXCOORD; *index = 2; break; - case 10: *usage = MOJOSHADER_USAGE_TEXCOORD; *index = 3; break; - case 11: *usage = MOJOSHADER_USAGE_TEXCOORD; *index = 4; break; - case 12: *usage = MOJOSHADER_USAGE_TEXCOORD; *index = 5; break; - case 13: *usage = MOJOSHADER_USAGE_TEXCOORD; *index = 6; break; - case 14: *usage = MOJOSHADER_USAGE_TEXCOORD; *index = 7; break; - case 15: *usage = MOJOSHADER_USAGE_POSITION; *index = 1; break; - case 16: *usage = MOJOSHADER_USAGE_NORMAL; *index = 1; break; - default: *usage = MOJOSHADER_USAGE_UNKNOWN; break; - } // switch -} // shader_model_1_input_usage - -static int adjust_swizzle(const Context *ctx, const RegisterType regtype, - const int regnum, const int swizzle) -{ - if (regtype != REG_TYPE_INPUT) // !!! FIXME: maybe lift this later? - return swizzle; - else if (ctx->swizzles_count == 0) - return swizzle; - - MOJOSHADER_usage usage = MOJOSHADER_USAGE_UNKNOWN; - int index = 0; - - // Shader Model 1 didn't have to predeclare attribute variables, so - // reglist_find won't be able to look them up at this point, but - // their usages don't change. - if (!shader_version_atleast(ctx, 2, 0)) - shader_model_1_input_usage(regnum, &usage, &index); - else - { - const RegisterList *reg = reglist_find(&ctx->attributes, regtype, regnum); - if (reg == NULL) - return swizzle; - usage = reg->usage; - index = reg->index; - } // else - - if (usage == MOJOSHADER_USAGE_UNKNOWN) - return swizzle; - - size_t i; - for (i = 0; i < ctx->swizzles_count; i++) - { - const MOJOSHADER_swizzle *swiz = &ctx->swizzles[i]; - if ((swiz->usage == usage) && (swiz->index == index)) - { - return ( (((int)(swiz->swizzles[((swizzle >> 0) & 0x3)])) << 0) | - (((int)(swiz->swizzles[((swizzle >> 2) & 0x3)])) << 2) | - (((int)(swiz->swizzles[((swizzle >> 4) & 0x3)])) << 4) | - (((int)(swiz->swizzles[((swizzle >> 6) & 0x3)])) << 6) ); - } // if - } // for - - return swizzle; -} // adjust_swizzle - - -static int parse_source_token(Context *ctx, SourceArgInfo *info) -{ - int retval = 1; - - if (ctx->tokencount == 0) - { - fail(ctx, "Out of tokens in source parameter"); - return 0; - } // if - - const uint32 token = SWAP32(*(ctx->tokens)); - const int reserved1 = (int) ((token >> 14) & 0x3); // bits 14 through 15 - const int reserved2 = (int) ((token >> 31) & 0x1); // bit 31 - - info->token = ctx->tokens; - info->regnum = (int) (token & 0x7ff); // bits 0 through 10 - info->relative = (int) ((token >> 13) & 0x1); // bit 13 - const int swizzle = (int) ((token >> 16) & 0xFF); // bits 16 through 23 - info->src_mod = (SourceMod) ((token >> 24) & 0xF); // bits 24 through 27 - info->regtype = (RegisterType) (((token >> 28) & 0x7) | ((token >> 8) & 0x18)); // bits 28-30, 11-12 - - // all the REG_TYPE_CONSTx types are the same register type, it's just - // split up so its regnum can be > 2047 in the bytecode. Clean it up. - if (info->regtype == REG_TYPE_CONST2) - { - info->regtype = REG_TYPE_CONST; - info->regnum += 2048; - } // else if - else if (info->regtype == REG_TYPE_CONST3) - { - info->regtype = REG_TYPE_CONST; - info->regnum += 4096; - } // else if - else if (info->regtype == REG_TYPE_CONST4) - { - info->regtype = REG_TYPE_CONST; - info->regnum += 6144; - } // else if - - info->swizzle = adjust_swizzle(ctx, info->regtype, info->regnum, swizzle); - info->swizzle_x = ((info->swizzle >> 0) & 0x3); - info->swizzle_y = ((info->swizzle >> 2) & 0x3); - info->swizzle_z = ((info->swizzle >> 4) & 0x3); - info->swizzle_w = ((info->swizzle >> 6) & 0x3); - - // swallow token for now, for multiple calls in a row. - adjust_token_position(ctx, 1); - - if (reserved1 != 0x0) - fail(ctx, "Reserved bits #1 in source token must be zero"); - - if (reserved2 != 0x1) - fail(ctx, "Reserved bit #2 in source token must be one"); - - if ((info->relative) && (ctx->tokencount == 0)) - { - fail(ctx, "Out of tokens in relative source parameter"); - info->relative = 0; // don't try to process it. - } // if - - if (info->relative) - { - if ( (shader_is_pixel(ctx)) && (!shader_version_atleast(ctx, 3, 0)) ) - fail(ctx, "Relative addressing in pixel shader version < 3.0"); - - // Shader Model 1 doesn't have an extra token to specify the - // relative register: it's always a0.x. - if (!shader_version_atleast(ctx, 2, 0)) - { - info->relative_regnum = 0; - info->relative_regtype = REG_TYPE_ADDRESS; - info->relative_component = 0; - } // if - - else // Shader Model 2 and later... - { - const uint32 reltoken = SWAP32(*(ctx->tokens)); - // swallow token for now, for multiple calls in a row. - adjust_token_position(ctx, 1); - - const int relswiz = (int) ((reltoken >> 16) & 0xFF); - info->relative_regnum = (int) (reltoken & 0x7ff); - info->relative_regtype = (RegisterType) - (((reltoken >> 28) & 0x7) | - ((reltoken >> 8) & 0x18)); - - if (((reltoken >> 31) & 0x1) == 0) - fail(ctx, "bit #31 in relative address must be set"); - - if ((reltoken & 0xF00E000) != 0) // usused bits. - fail(ctx, "relative address reserved bit must be zero"); - - switch (info->relative_regtype) - { - case REG_TYPE_LOOP: - case REG_TYPE_ADDRESS: - break; - default: - fail(ctx, "invalid register for relative address"); - break; - } // switch - - if (info->relative_regnum != 0) // true for now. - fail(ctx, "invalid register for relative address"); - - if ( (info->relative_regtype != REG_TYPE_LOOP) && !replicate_swizzle(relswiz) ) - fail(ctx, "relative address needs replicate swizzle"); - - info->relative_component = (relswiz & 0x3); - - retval++; - } // else - - if (info->regtype == REG_TYPE_INPUT) - { - if ( (shader_is_pixel(ctx)) || (!shader_version_atleast(ctx, 3, 0)) ) - fail(ctx, "relative addressing of input registers not supported in this shader model"); - ctx->have_relative_input_registers = 1; - } // if - else if (info->regtype == REG_TYPE_CONST) - { - // figure out what array we're in... - if (!ctx->ignores_ctab) - { - if (!ctx->ctab.have_ctab) // hard to do efficiently without! - fail(ctx, "relative addressing unsupported without a CTAB"); - else - { - determine_constants_arrays(ctx); - - VariableList *var; - const int reltarget = info->regnum; - for (var = ctx->variables; var != NULL; var = var->next) - { - const int lo = var->index; - if ( (reltarget >= lo) && (reltarget < (lo + var->count)) ) - break; // match! - } // for - - if (var == NULL) - fail(ctx, "relative addressing of indeterminate array"); - else - { - var->used = 1; - info->relative_array = var; - set_used_register(ctx, info->relative_regtype, info->relative_regnum, 0); - } // else - } // else - } // if - } // else if - else - { - fail(ctx, "relative addressing of invalid register"); - } // else - } // if - - switch (info->src_mod) - { - case SRCMOD_NONE: - case SRCMOD_ABSNEGATE: - case SRCMOD_ABS: - case SRCMOD_NEGATE: - break; // okay in any shader model. - - // apparently these are only legal in Shader Model 1.x ... - case SRCMOD_BIASNEGATE: - case SRCMOD_BIAS: - case SRCMOD_SIGNNEGATE: - case SRCMOD_SIGN: - case SRCMOD_COMPLEMENT: - case SRCMOD_X2NEGATE: - case SRCMOD_X2: - case SRCMOD_DZ: - case SRCMOD_DW: - if (shader_version_atleast(ctx, 2, 0)) - fail(ctx, "illegal source mod for this Shader Model."); - break; - - case SRCMOD_NOT: // !!! FIXME: I _think_ this is right... - if (shader_version_atleast(ctx, 2, 0)) - { - if (info->regtype != REG_TYPE_PREDICATE - && info->regtype != REG_TYPE_CONSTBOOL) - fail(ctx, "NOT only allowed on bool registers."); - } // if - break; - - default: - fail(ctx, "Unknown source modifier"); - } // switch - - // !!! FIXME: docs say this for sm3 ... check these! - // "The negate modifier cannot be used on second source register of these - // instructions: m3x2 - ps, m3x3 - ps, m3x4 - ps, m4x3 - ps, and - // m4x4 - ps." - // "If any version 3 shader reads from one or more constant float - // registers (c#), one of the following must be true. - // All of the constant floating-point registers must use the abs modifier. - // None of the constant floating-point registers can use the abs modifier. - - if (!isfail(ctx)) - { - RegisterList *reg; - reg = set_used_register(ctx, info->regtype, info->regnum, 0); - // !!! FIXME: this test passes if you write to the register - // !!! FIXME: in this same instruction, because we parse the - // !!! FIXME: destination token first. - // !!! FIXME: Microsoft's shader validation explicitly checks temp - // !!! FIXME: registers for this...do they check other writable ones? - if ((info->regtype == REG_TYPE_TEMP) && (reg) && (!reg->written)) - failf(ctx, "Temp register r%d used uninitialized", info->regnum); - } // if - - return retval; -} // parse_source_token - - -static int parse_predicated_token(Context *ctx) -{ - SourceArgInfo *arg = &ctx->predicate_arg; - parse_source_token(ctx, arg); - if (arg->regtype != REG_TYPE_PREDICATE) - fail(ctx, "Predicated instruction but not predicate register!"); - if ((arg->src_mod != SRCMOD_NONE) && (arg->src_mod != SRCMOD_NOT)) - fail(ctx, "Predicated instruction register is not NONE or NOT"); - if ( !no_swizzle(arg->swizzle) && !replicate_swizzle(arg->swizzle) ) - fail(ctx, "Predicated instruction register has wrong swizzle"); - if (arg->relative) // I'm pretty sure this is illegal...? - fail(ctx, "relative addressing in predicated token"); - - return 1; -} // parse_predicated_token - - -static int parse_args_NULL(Context *ctx) -{ - return 1; -} // parse_args_NULL - - -static int parse_args_DEF(Context *ctx) -{ - parse_destination_token(ctx, &ctx->dest_arg); - if (ctx->dest_arg.regtype != REG_TYPE_CONST) - fail(ctx, "DEF using non-CONST register"); - if (ctx->dest_arg.relative) // I'm pretty sure this is illegal...? - fail(ctx, "relative addressing in DEF"); - - ctx->dwords[0] = SWAP32(ctx->tokens[0]); - ctx->dwords[1] = SWAP32(ctx->tokens[1]); - ctx->dwords[2] = SWAP32(ctx->tokens[2]); - ctx->dwords[3] = SWAP32(ctx->tokens[3]); - - return 6; -} // parse_args_DEF - - -static int parse_args_DEFI(Context *ctx) -{ - parse_destination_token(ctx, &ctx->dest_arg); - if (ctx->dest_arg.regtype != REG_TYPE_CONSTINT) - fail(ctx, "DEFI using non-CONSTING register"); - if (ctx->dest_arg.relative) // I'm pretty sure this is illegal...? - fail(ctx, "relative addressing in DEFI"); - - ctx->dwords[0] = SWAP32(ctx->tokens[0]); - ctx->dwords[1] = SWAP32(ctx->tokens[1]); - ctx->dwords[2] = SWAP32(ctx->tokens[2]); - ctx->dwords[3] = SWAP32(ctx->tokens[3]); - - return 6; -} // parse_args_DEFI - - -static int parse_args_DEFB(Context *ctx) -{ - parse_destination_token(ctx, &ctx->dest_arg); - if (ctx->dest_arg.regtype != REG_TYPE_CONSTBOOL) - fail(ctx, "DEFB using non-CONSTBOOL register"); - if (ctx->dest_arg.relative) // I'm pretty sure this is illegal...? - fail(ctx, "relative addressing in DEFB"); - - ctx->dwords[0] = *(ctx->tokens) ? 1 : 0; - - return 3; -} // parse_args_DEFB - - -static int valid_texture_type(const uint32 ttype) -{ - switch ((const TextureType) ttype) - { - case TEXTURE_TYPE_2D: - case TEXTURE_TYPE_CUBE: - case TEXTURE_TYPE_VOLUME: - return 1; // it's okay. - } // switch - - return 0; -} // valid_texture_type - - -// !!! FIXME: this function is kind of a mess. -static int parse_args_DCL(Context *ctx) -{ - int unsupported = 0; - const uint32 token = SWAP32(*(ctx->tokens)); - const int reserved1 = (int) ((token >> 31) & 0x1); // bit 31 - uint32 reserved_mask = 0x00000000; - - if (reserved1 != 0x1) - fail(ctx, "Bit #31 in DCL token must be one"); - - ctx->centroid_allowed = 1; - adjust_token_position(ctx, 1); - parse_destination_token(ctx, &ctx->dest_arg); - ctx->centroid_allowed = 0; - - if (ctx->dest_arg.result_shift != 0) // I'm pretty sure this is illegal...? - fail(ctx, "shift scale in DCL"); - if (ctx->dest_arg.relative) // I'm pretty sure this is illegal...? - fail(ctx, "relative addressing in DCL"); - - const RegisterType regtype = ctx->dest_arg.regtype; - const int regnum = ctx->dest_arg.regnum; - if ( (shader_is_pixel(ctx)) && (shader_version_atleast(ctx, 3, 0)) ) - { - if (regtype == REG_TYPE_INPUT) - { - const uint32 usage = (token & 0xF); - const uint32 index = ((token >> 16) & 0xF); - reserved_mask = 0x7FF0FFE0; - ctx->dwords[0] = usage; - ctx->dwords[1] = index; - } // if - - else if (regtype == REG_TYPE_MISCTYPE) - { - const MiscTypeType mt = (MiscTypeType) regnum; - if (mt == MISCTYPE_TYPE_POSITION) - reserved_mask = 0x7FFFFFFF; - else if (mt == MISCTYPE_TYPE_FACE) - { - reserved_mask = 0x7FFFFFFF; - if (!writemask_xyzw(ctx->dest_arg.orig_writemask)) - fail(ctx, "DCL face writemask must be full"); - if (ctx->dest_arg.result_mod != 0) - fail(ctx, "DCL face result modifier must be zero"); - if (ctx->dest_arg.result_shift != 0) - fail(ctx, "DCL face shift scale must be zero"); - } // else if - else - { - unsupported = 1; - } // else - - ctx->dwords[0] = (uint32) MOJOSHADER_USAGE_UNKNOWN; - ctx->dwords[1] = 0; - } // else if - - else if (regtype == REG_TYPE_TEXTURE) - { - const uint32 usage = (token & 0xF); - const uint32 index = ((token >> 16) & 0xF); - if (usage == MOJOSHADER_USAGE_TEXCOORD) - { - if (index > 7) - fail(ctx, "DCL texcoord usage must have 0-7 index"); - } // if - else if (usage == MOJOSHADER_USAGE_COLOR) - { - if (index != 0) - fail(ctx, "DCL color usage must have 0 index"); - } // else if - else - { - fail(ctx, "Invalid DCL texture usage"); - } // else - - reserved_mask = 0x7FF0FFE0; - ctx->dwords[0] = usage; - ctx->dwords[1] = index; - } // else if - - else if (regtype == REG_TYPE_SAMPLER) - { - const uint32 ttype = ((token >> 27) & 0xF); - if (!valid_texture_type(ttype)) - fail(ctx, "unknown sampler texture type"); - reserved_mask = 0x7FFFFFF; - ctx->dwords[0] = ttype; - } // else if - - else - { - unsupported = 1; - } // else - } // if - - else if ( (shader_is_pixel(ctx)) && (shader_version_atleast(ctx, 2, 0)) ) - { - if (regtype == REG_TYPE_INPUT) - { - ctx->dwords[0] = (uint32) MOJOSHADER_USAGE_COLOR; - ctx->dwords[1] = regnum; - reserved_mask = 0x7FFFFFFF; - } // if - else if (regtype == REG_TYPE_TEXTURE) - { - ctx->dwords[0] = (uint32) MOJOSHADER_USAGE_TEXCOORD; - ctx->dwords[1] = regnum; - reserved_mask = 0x7FFFFFFF; - } // else if - else if (regtype == REG_TYPE_SAMPLER) - { - const uint32 ttype = ((token >> 27) & 0xF); - if (!valid_texture_type(ttype)) - fail(ctx, "unknown sampler texture type"); - reserved_mask = 0x7FFFFFF; - ctx->dwords[0] = ttype; - } // else if - else - { - unsupported = 1; - } // else - } // if - - else if ( (shader_is_vertex(ctx)) && (shader_version_atleast(ctx, 3, 0)) ) - { - if ((regtype == REG_TYPE_INPUT) || (regtype == REG_TYPE_OUTPUT)) - { - const uint32 usage = (token & 0xF); - const uint32 index = ((token >> 16) & 0xF); - reserved_mask = 0x7FF0FFE0; - ctx->dwords[0] = usage; - ctx->dwords[1] = index; - } // if - else if (regtype == REG_TYPE_TEXTURE) - { - const uint32 usage = (token & 0xF); - const uint32 index = ((token >> 16) & 0xF); - if (usage == MOJOSHADER_USAGE_TEXCOORD) - { - if (index > 7) - fail(ctx, "DCL texcoord usage must have 0-7 index"); - } // if - else if (usage == MOJOSHADER_USAGE_COLOR) - { - if (index != 0) - fail(ctx, "DCL texcoord usage must have 0 index"); - } // else if - else - fail(ctx, "Invalid DCL texture usage"); - - reserved_mask = 0x7FF0FFE0; - ctx->dwords[0] = usage; - ctx->dwords[1] = index; - } // else if - else if (regtype == REG_TYPE_SAMPLER) - { - const uint32 ttype = ((token >> 27) & 0xF); - if (!valid_texture_type(ttype)) - fail(ctx, "Unknown sampler texture type"); - reserved_mask = 0x0FFFFFFF; - ctx->dwords[0] = ttype; - } // else if - else - { - unsupported = 1; - } // else - } // else if - - else if ( (shader_is_vertex(ctx)) && (shader_version_atleast(ctx, 1, 1)) ) - { - if (regtype == REG_TYPE_INPUT) - { - const uint32 usage = (token & 0xF); - const uint32 index = ((token >> 16) & 0xF); - reserved_mask = 0x7FF0FFE0; - ctx->dwords[0] = usage; - ctx->dwords[1] = index; - } // if - else - { - unsupported = 1; - } // else - } // else if - - else - { - unsupported = 1; - } // else - - if (unsupported) - fail(ctx, "invalid DCL register type for this shader model"); - - if ((token & reserved_mask) != 0) - fail(ctx, "reserved bits in DCL dword aren't zero"); - - return 3; -} // parse_args_DCL - - -static int parse_args_D(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx, &ctx->dest_arg); - return retval; -} // parse_args_D - - -static int parse_args_S(Context *ctx) -{ - int retval = 1; - retval += parse_source_token(ctx, &ctx->source_args[0]); - return retval; -} // parse_args_S - - -static int parse_args_SS(Context *ctx) -{ - int retval = 1; - retval += parse_source_token(ctx, &ctx->source_args[0]); - retval += parse_source_token(ctx, &ctx->source_args[1]); - return retval; -} // parse_args_SS - - -static int parse_args_DS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx, &ctx->dest_arg); - retval += parse_source_token(ctx, &ctx->source_args[0]); - return retval; -} // parse_args_DS - - -static int parse_args_DSS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx, &ctx->dest_arg); - retval += parse_source_token(ctx, &ctx->source_args[0]); - retval += parse_source_token(ctx, &ctx->source_args[1]); - return retval; -} // parse_args_DSS - - -static int parse_args_DSSS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx, &ctx->dest_arg); - retval += parse_source_token(ctx, &ctx->source_args[0]); - retval += parse_source_token(ctx, &ctx->source_args[1]); - retval += parse_source_token(ctx, &ctx->source_args[2]); - return retval; -} // parse_args_DSSS - - -static int parse_args_DSSSS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx, &ctx->dest_arg); - retval += parse_source_token(ctx, &ctx->source_args[0]); - retval += parse_source_token(ctx, &ctx->source_args[1]); - retval += parse_source_token(ctx, &ctx->source_args[2]); - retval += parse_source_token(ctx, &ctx->source_args[3]); - return retval; -} // parse_args_DSSSS - - -static int parse_args_SINCOS(Context *ctx) -{ - // this opcode needs extra registers for sm2 and lower. - if (!shader_version_atleast(ctx, 3, 0)) - return parse_args_DSSS(ctx); - return parse_args_DS(ctx); -} // parse_args_SINCOS - - -static int parse_args_TEXCRD(Context *ctx) -{ - // added extra register in ps_1_4. - if (shader_version_atleast(ctx, 1, 4)) - return parse_args_DS(ctx); - return parse_args_D(ctx); -} // parse_args_TEXCRD - - -static int parse_args_TEXLD(Context *ctx) -{ - // different registers in px_1_3, ps_1_4, and ps_2_0! - if (shader_version_atleast(ctx, 2, 0)) - return parse_args_DSS(ctx); - else if (shader_version_atleast(ctx, 1, 4)) - return parse_args_DS(ctx); - return parse_args_D(ctx); -} // parse_args_TEXLD - - -// State machine functions... - -static ConstantsList *alloc_constant_listitem(Context *ctx) -{ - ConstantsList *item = (ConstantsList *) Malloc(ctx, sizeof (ConstantsList)); - if (item == NULL) - return NULL; - - memset(&item->constant, '\0', sizeof (MOJOSHADER_constant)); - item->next = ctx->constants; - ctx->constants = item; - ctx->constant_count++; - - return item; -} // alloc_constant_listitem - - -static void state_DEF(Context *ctx) -{ - const RegisterType regtype = ctx->dest_arg.regtype; - const int regnum = ctx->dest_arg.regnum; - - // !!! FIXME: fail if same register is defined twice. - - if (ctx->instruction_count != 0) - fail(ctx, "DEF token must come before any instructions"); - else if (regtype != REG_TYPE_CONST) - fail(ctx, "DEF token using invalid register"); - else - { - ConstantsList *item = alloc_constant_listitem(ctx); - if (item != NULL) - { - item->constant.index = regnum; - item->constant.type = MOJOSHADER_UNIFORM_FLOAT; - memcpy(item->constant.value.f, ctx->dwords, - sizeof (item->constant.value.f)); - set_defined_register(ctx, regtype, regnum); - } // if - } // else -} // state_DEF - -static void state_DEFI(Context *ctx) -{ - const RegisterType regtype = ctx->dest_arg.regtype; - const int regnum = ctx->dest_arg.regnum; - - // !!! FIXME: fail if same register is defined twice. - - if (ctx->instruction_count != 0) - fail(ctx, "DEFI token must come before any instructions"); - else if (regtype != REG_TYPE_CONSTINT) - fail(ctx, "DEFI token using invalid register"); - else - { - ConstantsList *item = alloc_constant_listitem(ctx); - if (item != NULL) - { - item->constant.index = regnum; - item->constant.type = MOJOSHADER_UNIFORM_INT; - memcpy(item->constant.value.i, ctx->dwords, - sizeof (item->constant.value.i)); - - set_defined_register(ctx, regtype, regnum); - } // if - } // else -} // state_DEFI - -static void state_DEFB(Context *ctx) -{ - const RegisterType regtype = ctx->dest_arg.regtype; - const int regnum = ctx->dest_arg.regnum; - - // !!! FIXME: fail if same register is defined twice. - - if (ctx->instruction_count != 0) - fail(ctx, "DEFB token must come before any instructions"); - else if (regtype != REG_TYPE_CONSTBOOL) - fail(ctx, "DEFB token using invalid register"); - else - { - ConstantsList *item = alloc_constant_listitem(ctx); - if (item != NULL) - { - item->constant.index = regnum; - item->constant.type = MOJOSHADER_UNIFORM_BOOL; - item->constant.value.b = ctx->dwords[0] ? 1 : 0; - set_defined_register(ctx, regtype, regnum); - } // if - } // else -} // state_DEFB - -static void state_DCL(Context *ctx) -{ - const DestArgInfo *arg = &ctx->dest_arg; - const RegisterType regtype = arg->regtype; - const int regnum = arg->regnum; - const int wmask = arg->writemask; - const int mods = arg->result_mod; - - // parse_args_DCL() does a lot of state checking before we get here. - - // !!! FIXME: apparently vs_3_0 can use sampler registers now. - // !!! FIXME: (but only s0 through s3, not all 16 of them.) - - if (ctx->instruction_count != 0) - fail(ctx, "DCL token must come before any instructions"); - - else if (shader_is_vertex(ctx) || shader_is_pixel(ctx)) - { - if (regtype == REG_TYPE_SAMPLER) - add_sampler(ctx, regnum, (TextureType) ctx->dwords[0], 0); - else - { - const MOJOSHADER_usage usage = (const MOJOSHADER_usage) ctx->dwords[0]; - const int index = ctx->dwords[1]; - if (usage >= MOJOSHADER_USAGE_TOTAL) - { - fail(ctx, "unknown DCL usage"); - return; - } // if - add_attribute_register(ctx, regtype, regnum, usage, index, wmask, mods); - } // else - } // if - - else - { - fail(ctx, "unsupported shader type."); // should be caught elsewhere. - return; - } // else - - set_defined_register(ctx, regtype, regnum); -} // state_DCL - -static void state_TEXCRD(Context *ctx) -{ - if (shader_version_atleast(ctx, 2, 0)) - fail(ctx, "TEXCRD in Shader Model >= 2.0"); // apparently removed. -} // state_TEXCRD - -static void state_FRC(Context *ctx) -{ - const DestArgInfo *dst = &ctx->dest_arg; - - if (dst->result_mod & MOD_SATURATE) // according to msdn... - fail(ctx, "FRC destination can't use saturate modifier"); - - else if (!shader_version_atleast(ctx, 2, 0)) - { - if (!writemask_y(dst->writemask) && !writemask_xy(dst->writemask)) - fail(ctx, "FRC writemask must be .y or .xy for shader model 1.x"); - } // else if -} // state_FRC - - -// replicate the matrix registers to source args. The D3D profile will -// only use the one legitimate argument, but this saves other profiles -// from having to build this. -static void srcarg_matrix_replicate(Context *ctx, const int idx, - const int rows) -{ - int i; - SourceArgInfo *src = &ctx->source_args[idx]; - SourceArgInfo *dst = &ctx->source_args[idx+1]; - for (i = 0; i < (rows-1); i++, dst++) - { - memcpy(dst, src, sizeof (SourceArgInfo)); - dst->regnum += (i + 1); - set_used_register(ctx, dst->regtype, dst->regnum, 0); - } // for -} // srcarg_matrix_replicate - -static void state_M4X4(Context *ctx) -{ - const DestArgInfo *info = &ctx->dest_arg; - if (!writemask_xyzw(info->writemask)) - fail(ctx, "M4X4 writemask must be full"); - -// !!! FIXME: MSDN: -//The xyzw (default) mask is required for the destination register. Negate and swizzle modifiers are allowed for src0, but not for src1. -//Swizzle and negate modifiers are invalid for the src0 register. The dest and src0 registers cannot be the same. - - srcarg_matrix_replicate(ctx, 1, 4); -} // state_M4X4 - -static void state_M4X3(Context *ctx) -{ - const DestArgInfo *info = &ctx->dest_arg; - if (!writemask_xyz(info->writemask)) - fail(ctx, "M4X3 writemask must be .xyz"); - -// !!! FIXME: MSDN stuff - - srcarg_matrix_replicate(ctx, 1, 3); -} // state_M4X3 - -static void state_M3X4(Context *ctx) -{ - const DestArgInfo *info = &ctx->dest_arg; - if (!writemask_xyzw(info->writemask)) - fail(ctx, "M3X4 writemask must be .xyzw"); - -// !!! FIXME: MSDN stuff - - srcarg_matrix_replicate(ctx, 1, 4); -} // state_M3X4 - -static void state_M3X3(Context *ctx) -{ - const DestArgInfo *info = &ctx->dest_arg; - if (!writemask_xyz(info->writemask)) - fail(ctx, "M3X3 writemask must be .xyz"); - -// !!! FIXME: MSDN stuff - - srcarg_matrix_replicate(ctx, 1, 3); -} // state_M3X3 - -static void state_M3X2(Context *ctx) -{ - const DestArgInfo *info = &ctx->dest_arg; - if (!writemask_xy(info->writemask)) - fail(ctx, "M3X2 writemask must be .xy"); - -// !!! FIXME: MSDN stuff - - srcarg_matrix_replicate(ctx, 1, 2); -} // state_M3X2 - -static void state_RET(Context *ctx) -{ - // MSDN all but says that assembly shaders are more or less serialized - // HLSL functions, and a RET means you're at the end of one, unlike how - // most CPUs would behave. This is actually really helpful, - // since we can use high-level constructs and not a mess of GOTOs, - // which is a godsend for GLSL...this also means we can consider things - // like a LOOP without a matching ENDLOOP within a label's section as - // an error. - if (ctx->loops > 0) - fail(ctx, "LOOP without ENDLOOP"); - if (ctx->reps > 0) - fail(ctx, "REP without ENDREP"); -} // state_RET - -static void check_label_register(Context *ctx, int arg, const char *opcode) -{ - const SourceArgInfo *info = &ctx->source_args[arg]; - const RegisterType regtype = info->regtype; - const int regnum = info->regnum; - - if (regtype != REG_TYPE_LABEL) - failf(ctx, "%s with a non-label register specified", opcode); - if (!shader_version_atleast(ctx, 2, 0)) - failf(ctx, "%s not supported in Shader Model 1", opcode); - if ((shader_version_atleast(ctx, 2, 255)) && (regnum > 2047)) - fail(ctx, "label register number must be <= 2047"); - if (regnum > 15) - fail(ctx, "label register number must be <= 15"); -} // check_label_register - -static void state_LABEL(Context *ctx) -{ - if (ctx->previous_opcode != OPCODE_RET) - fail(ctx, "LABEL not followed by a RET"); - check_label_register(ctx, 0, "LABEL"); - set_defined_register(ctx, REG_TYPE_LABEL, ctx->source_args[0].regnum); -} // state_LABEL - -static void check_call_loop_wrappage(Context *ctx, const int regnum) -{ - // msdn says subroutines inherit aL register if you're in a loop when - // you call, and further more _if you ever call this function in a loop, - // it must always be called in a loop_. So we'll just pass our loop - // variable as a function parameter in those cases. - - const int current_usage = (ctx->loops > 0) ? 1 : -1; - RegisterList *reg = reglist_find(&ctx->used_registers, REG_TYPE_LABEL, regnum); - - if (reg == NULL) - fail(ctx, "Invalid label for CALL"); - else if (reg->misc == 0) - reg->misc = current_usage; - else if (reg->misc != current_usage) - { - if (current_usage == 1) - fail(ctx, "CALL to this label must be wrapped in LOOP/ENDLOOP"); - else - fail(ctx, "CALL to this label must not be wrapped in LOOP/ENDLOOP"); - } // else if -} // check_call_loop_wrappage - -static void state_CALL(Context *ctx) -{ - check_label_register(ctx, 0, "CALL"); - check_call_loop_wrappage(ctx, ctx->source_args[0].regnum); -} // state_CALL - -static void state_CALLNZ(Context *ctx) -{ - const RegisterType regtype = ctx->source_args[1].regtype; - if ((regtype != REG_TYPE_CONSTBOOL) && (regtype != REG_TYPE_PREDICATE)) - fail(ctx, "CALLNZ argument isn't constbool or predicate register"); - check_label_register(ctx, 0, "CALLNZ"); - check_call_loop_wrappage(ctx, ctx->source_args[0].regnum); -} // state_CALLNZ - -static void state_MOVA(Context *ctx) -{ - if (ctx->dest_arg.regtype != REG_TYPE_ADDRESS) - fail(ctx, "MOVA argument isn't address register"); -} // state_MOVA - -static void state_RCP(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "RCP without replicate swizzle"); -} // state_RCP - -static void state_RSQ(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "RSQ without replicate swizzle"); -} // state_RSQ - -static void state_LOOP(Context *ctx) -{ - if (ctx->source_args[0].regtype != REG_TYPE_LOOP) - fail(ctx, "LOOP argument isn't loop register"); - else if (ctx->source_args[1].regtype != REG_TYPE_CONSTINT) - fail(ctx, "LOOP argument isn't constint register"); - else - ctx->loops++; -} // state_LOOP - -static void state_ENDLOOP(Context *ctx) -{ - // !!! FIXME: check that we aren't straddling an IF block. - if (ctx->loops <= 0) - fail(ctx, "ENDLOOP without LOOP"); - ctx->loops--; -} // state_ENDLOOP - -static void state_BREAKP(Context *ctx) -{ - const RegisterType regtype = ctx->source_args[0].regtype; - if (regtype != REG_TYPE_PREDICATE) - fail(ctx, "BREAKP argument isn't predicate register"); - else if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "BREAKP without replicate swizzle"); - else if ((ctx->loops == 0) && (ctx->reps == 0)) - fail(ctx, "BREAKP outside LOOP/ENDLOOP or REP/ENDREP"); -} // state_BREAKP - -static void state_BREAK(Context *ctx) -{ - if ((ctx->loops == 0) && (ctx->reps == 0)) - fail(ctx, "BREAK outside LOOP/ENDLOOP or REP/ENDREP"); -} // state_BREAK - -static void state_SETP(Context *ctx) -{ - const RegisterType regtype = ctx->dest_arg.regtype; - if (regtype != REG_TYPE_PREDICATE) - fail(ctx, "SETP argument isn't predicate register"); -} // state_SETP - -static void state_REP(Context *ctx) -{ - const RegisterType regtype = ctx->source_args[0].regtype; - if (regtype != REG_TYPE_CONSTINT) - fail(ctx, "REP argument isn't constint register"); - - ctx->reps++; - if (ctx->reps > ctx->max_reps) - ctx->max_reps = ctx->reps; -} // state_REP - -static void state_ENDREP(Context *ctx) -{ - // !!! FIXME: check that we aren't straddling an IF block. - if (ctx->reps <= 0) - fail(ctx, "ENDREP without REP"); - ctx->reps--; -} // state_ENDREP - -static void state_CMP(Context *ctx) -{ - ctx->cmps++; - - // extra limitations for ps <= 1.4 ... - if (!shader_version_atleast(ctx, 1, 4)) - { - int i; - const DestArgInfo *dst = &ctx->dest_arg; - const RegisterType dregtype = dst->regtype; - const int dregnum = dst->regnum; - - if (ctx->cmps > 3) - fail(ctx, "only 3 CMP instructions allowed in this shader model"); - - for (i = 0; i < 3; i++) - { - const SourceArgInfo *src = &ctx->source_args[i]; - const RegisterType sregtype = src->regtype; - const int sregnum = src->regnum; - if ((dregtype == sregtype) && (dregnum == sregnum)) - fail(ctx, "CMP dest can't match sources in this shader model"); - } // for - - ctx->instruction_count++; // takes an extra slot in ps_1_2 and _3. - } // if -} // state_CMP - -static void state_DP4(Context *ctx) -{ - // extra limitations for ps <= 1.4 ... - if (!shader_version_atleast(ctx, 1, 4)) - ctx->instruction_count++; // takes an extra slot in ps_1_2 and _3. -} // state_DP4 - -static void state_CND(Context *ctx) -{ - // apparently it was removed...it's not in the docs past ps_1_4 ... - if (shader_version_atleast(ctx, 2, 0)) - fail(ctx, "CND not allowed in this shader model"); - - // extra limitations for ps <= 1.4 ... - else if (!shader_version_atleast(ctx, 1, 4)) - { - const SourceArgInfo *src = &ctx->source_args[0]; - if ((src->regtype != REG_TYPE_TEMP) || (src->regnum != 0) || - (src->swizzle != 0xFF)) - { - fail(ctx, "CND src must be r0.a in this shader model"); - } // if - } // if -} // state_CND - -static void state_POW(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "POW src0 must have replicate swizzle"); - else if (!replicate_swizzle(ctx->source_args[1].swizzle)) - fail(ctx, "POW src1 must have replicate swizzle"); -} // state_POW - -static void state_LOG(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "LOG src0 must have replicate swizzle"); -} // state_LOG - -static void state_LOGP(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "LOGP src0 must have replicate swizzle"); -} // state_LOGP - -static void state_SINCOS(Context *ctx) -{ - const DestArgInfo *dst = &ctx->dest_arg; - const int mask = dst->writemask; - if (!writemask_x(mask) && !writemask_y(mask) && !writemask_xy(mask)) - fail(ctx, "SINCOS write mask must be .x or .y or .xy"); - - else if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "SINCOS src0 must have replicate swizzle"); - - else if (dst->result_mod & MOD_SATURATE) // according to msdn... - fail(ctx, "SINCOS destination can't use saturate modifier"); - - // this opcode needs extra registers, with extra limitations, for <= sm2. - else if (!shader_version_atleast(ctx, 3, 0)) - { - int i; - for (i = 1; i < 3; i++) - { - if (ctx->source_args[i].regtype != REG_TYPE_CONST) - { - failf(ctx, "SINCOS src%d must be constfloat", i); - return; - } // if - } // for - - if (ctx->source_args[1].regnum == ctx->source_args[2].regnum) - fail(ctx, "SINCOS src1 and src2 must be different registers"); - } // if -} // state_SINCOS - -static void state_IF(Context *ctx) -{ - const RegisterType regtype = ctx->source_args[0].regtype; - if ((regtype != REG_TYPE_PREDICATE) && (regtype != REG_TYPE_CONSTBOOL)) - fail(ctx, "IF src0 must be CONSTBOOL or PREDICATE"); - // !!! FIXME: track if nesting depth. -} // state_IF - -static void state_IFC(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "IFC src0 must have replicate swizzle"); - else if (!replicate_swizzle(ctx->source_args[1].swizzle)) - fail(ctx, "IFC src1 must have replicate swizzle"); - // !!! FIXME: track if nesting depth. -} // state_IFC - -static void state_BREAKC(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[0].swizzle)) - fail(ctx, "BREAKC src1 must have replicate swizzle"); - else if (!replicate_swizzle(ctx->source_args[1].swizzle)) - fail(ctx, "BREAKC src2 must have replicate swizzle"); - else if ((ctx->loops == 0) && (ctx->reps == 0)) - fail(ctx, "BREAKC outside LOOP/ENDLOOP or REP/ENDREP"); -} // state_BREAKC - -static void state_TEXKILL(Context *ctx) -{ - // The MSDN docs say this should be a source arg, but the driver docs - // say it's a dest arg. That's annoying. - const DestArgInfo *info = &ctx->dest_arg; - const RegisterType regtype = info->regtype; - if (!writemask_xyzw(info->writemask)) - fail(ctx, "TEXKILL writemask must be .xyzw"); - else if ((regtype != REG_TYPE_TEMP) && (regtype != REG_TYPE_TEXTURE)) - fail(ctx, "TEXKILL must use a temp or texture register"); - - // !!! FIXME: "If a temporary register is used, all components must have been previously written." - // !!! FIXME: "If a texture register is used, all components that are read must have been declared." - // !!! FIXME: there are further limitations in ps_1_3 and earlier. -} // state_TEXKILL - -// Some rules that apply to some of the fruity ps_1_1 texture opcodes... -static void state_texops(Context *ctx, const char *opcode, - const int dims, const int texbem) -{ - const DestArgInfo *dst = &ctx->dest_arg; - const SourceArgInfo *src = &ctx->source_args[0]; - if (dst->regtype != REG_TYPE_TEXTURE) - failf(ctx, "%s destination must be a texture register", opcode); - if (src->regtype != REG_TYPE_TEXTURE) - failf(ctx, "%s source must be a texture register", opcode); - if (src->regnum >= dst->regnum) // so says MSDN. - failf(ctx, "%s dest must be a higher register than source", opcode); - - if (dims) - { - TextureType ttyp = (dims == 2) ? TEXTURE_TYPE_2D : TEXTURE_TYPE_CUBE; - add_sampler(ctx, dst->regnum, ttyp, texbem); - } // if - - add_attribute_register(ctx, REG_TYPE_TEXTURE, dst->regnum, - MOJOSHADER_USAGE_TEXCOORD, dst->regnum, 0xF, 0); - - // Strictly speaking, there should be a TEX opcode prior to this call that - // should fill in this metadata, but I'm not sure that's required for the - // shader to assemble in D3D, so we'll do this so we don't fail with a - // cryptic error message even if the developer didn't do the TEX. - add_attribute_register(ctx, REG_TYPE_TEXTURE, src->regnum, - MOJOSHADER_USAGE_TEXCOORD, src->regnum, 0xF, 0); -} // state_texops - -static void state_texbem(Context *ctx, const char *opcode) -{ - // The TEXBEM equasion, according to MSDN: - //u' = TextureCoordinates(stage m)u + D3DTSS_BUMPENVMAT00(stage m)*t(n)R - // + D3DTSS_BUMPENVMAT10(stage m)*t(n)G - //v' = TextureCoordinates(stage m)v + D3DTSS_BUMPENVMAT01(stage m)*t(n)R - // + D3DTSS_BUMPENVMAT11(stage m)*t(n)G - //t(m)RGBA = TextureSample(stage m) - // - // ...TEXBEML adds this at the end: - //t(m)RGBA = t(m)RGBA * [(t(n)B * D3DTSS_BUMPENVLSCALE(stage m)) + - // D3DTSS_BUMPENVLOFFSET(stage m)] - - if (shader_version_atleast(ctx, 1, 4)) - failf(ctx, "%s opcode not available after Shader Model 1.3", opcode); - - if (!shader_version_atleast(ctx, 1, 2)) - { - if (ctx->source_args[0].src_mod == SRCMOD_SIGN) - failf(ctx, "%s forbids _bx2 on source reg before ps_1_2", opcode); - } // if - - // !!! FIXME: MSDN: - // !!! FIXME: Register data that has been read by a texbem - // !!! FIXME: or texbeml instruction cannot be read later, - // !!! FIXME: except by another texbem or texbeml. - - state_texops(ctx, opcode, 2, 1); -} // state_texbem - -static void state_TEXBEM(Context *ctx) -{ - state_texbem(ctx, "TEXBEM"); -} // state_TEXBEM - -static void state_TEXBEML(Context *ctx) -{ - state_texbem(ctx, "TEXBEML"); -} // state_TEXBEML - -static void state_TEXM3X2PAD(Context *ctx) -{ - if (shader_version_atleast(ctx, 1, 4)) - fail(ctx, "TEXM3X2PAD opcode not available after Shader Model 1.3"); - state_texops(ctx, "TEXM3X2PAD", 0, 0); - // !!! FIXME: check for correct opcode existance and order more rigorously? - ctx->texm3x2pad_src0 = ctx->source_args[0].regnum; - ctx->texm3x2pad_dst0 = ctx->dest_arg.regnum; -} // state_TEXM3X2PAD - -static void state_TEXM3X2TEX(Context *ctx) -{ - if (shader_version_atleast(ctx, 1, 4)) - fail(ctx, "TEXM3X2TEX opcode not available after Shader Model 1.3"); - if (ctx->texm3x2pad_dst0 == -1) - fail(ctx, "TEXM3X2TEX opcode without matching TEXM3X2PAD"); - // !!! FIXME: check for correct opcode existance and order more rigorously? - state_texops(ctx, "TEXM3X2TEX", 2, 0); - ctx->reset_texmpad = 1; - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - ctx->dest_arg.regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - - // A samplermap might change this to something nonsensical. - if (ttype != TEXTURE_TYPE_2D) - fail(ctx, "TEXM3X2TEX needs a 2D sampler"); -} // state_TEXM3X2TEX - -static void state_TEXM3X3PAD(Context *ctx) -{ - if (shader_version_atleast(ctx, 1, 4)) - fail(ctx, "TEXM3X2TEX opcode not available after Shader Model 1.3"); - state_texops(ctx, "TEXM3X3PAD", 0, 0); - - // !!! FIXME: check for correct opcode existance and order more rigorously? - if (ctx->texm3x3pad_dst0 == -1) - { - ctx->texm3x3pad_src0 = ctx->source_args[0].regnum; - ctx->texm3x3pad_dst0 = ctx->dest_arg.regnum; - } // if - else if (ctx->texm3x3pad_dst1 == -1) - { - ctx->texm3x3pad_src1 = ctx->source_args[0].regnum; - ctx->texm3x3pad_dst1 = ctx->dest_arg.regnum; - } // else -} // state_TEXM3X3PAD - -static void state_texm3x3(Context *ctx, const char *opcode, const int dims) -{ - // !!! FIXME: check for correct opcode existance and order more rigorously? - if (shader_version_atleast(ctx, 1, 4)) - failf(ctx, "%s opcode not available after Shader Model 1.3", opcode); - if (ctx->texm3x3pad_dst1 == -1) - failf(ctx, "%s opcode without matching TEXM3X3PADs", opcode); - state_texops(ctx, opcode, dims, 0); - ctx->reset_texmpad = 1; - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - ctx->dest_arg.regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - - // A samplermap might change this to something nonsensical. - if ((ttype != TEXTURE_TYPE_VOLUME) && (ttype != TEXTURE_TYPE_CUBE)) - failf(ctx, "%s needs a 3D or Cubemap sampler", opcode); -} // state_texm3x3 - -static void state_TEXM3X3(Context *ctx) -{ - if (!shader_version_atleast(ctx, 1, 2)) - fail(ctx, "TEXM3X3 opcode not available in Shader Model 1.1"); - state_texm3x3(ctx, "TEXM3X3", 0); -} // state_TEXM3X3 - -static void state_TEXM3X3TEX(Context *ctx) -{ - state_texm3x3(ctx, "TEXM3X3TEX", 3); -} // state_TEXM3X3TEX - -static void state_TEXM3X3SPEC(Context *ctx) -{ - state_texm3x3(ctx, "TEXM3X3SPEC", 3); - if (ctx->source_args[1].regtype != REG_TYPE_CONST) - fail(ctx, "TEXM3X3SPEC final arg must be a constant register"); -} // state_TEXM3X3SPEC - -static void state_TEXM3X3VSPEC(Context *ctx) -{ - state_texm3x3(ctx, "TEXM3X3VSPEC", 3); -} // state_TEXM3X3VSPEC - - -static void state_TEXLD(Context *ctx) -{ - if (shader_version_atleast(ctx, 2, 0)) - { - const SourceArgInfo *src0 = &ctx->source_args[0]; - const SourceArgInfo *src1 = &ctx->source_args[1]; - - // !!! FIXME: verify texldp restrictions: - //http://msdn.microsoft.com/en-us/library/bb206221(VS.85).aspx - // !!! FIXME: ...and texldb, too. - //http://msdn.microsoft.com/en-us/library/bb206217(VS.85).aspx - - //const RegisterType rt0 = src0->regtype; - - // !!! FIXME: msdn says it has to be temp, but Microsoft's HLSL - // !!! FIXME: compiler is generating code that uses oC0 for a dest. - //if (ctx->dest_arg.regtype != REG_TYPE_TEMP) - // fail(ctx, "TEXLD dest must be a temp register"); - - // !!! FIXME: this can be an REG_TYPE_INPUT, DCL'd to TEXCOORD. - //else if ((rt0 != REG_TYPE_TEXTURE) && (rt0 != REG_TYPE_TEMP)) - // fail(ctx, "TEXLD src0 must be texture or temp register"); - //else - - if (src0->src_mod != SRCMOD_NONE) - fail(ctx, "TEXLD src0 must have no modifiers"); - else if (src1->regtype != REG_TYPE_SAMPLER) - fail(ctx, "TEXLD src1 must be sampler register"); - else if (src1->src_mod != SRCMOD_NONE) - fail(ctx, "TEXLD src1 must have no modifiers"); - else if ( (ctx->instruction_controls != CONTROL_TEXLD) && - (ctx->instruction_controls != CONTROL_TEXLDP) && - (ctx->instruction_controls != CONTROL_TEXLDB) ) - { - fail(ctx, "TEXLD has unknown control bits"); - } // else if - - // Shader Model 3 added swizzle support to this opcode. - if (!shader_version_atleast(ctx, 3, 0)) - { - if (!no_swizzle(src0->swizzle)) - fail(ctx, "TEXLD src0 must not swizzle"); - else if (!no_swizzle(src1->swizzle)) - fail(ctx, "TEXLD src1 must not swizzle"); - } // if - - if ( ((TextureType) ctx->source_args[1].regnum) == TEXTURE_TYPE_CUBE ) - ctx->instruction_count += 3; - } // if - - else if (shader_version_atleast(ctx, 1, 4)) - { - // !!! FIXME: checks for ps_1_4 version here... - } // else if - - else - { - // !!! FIXME: add (other?) checks for ps_1_1 version here... - const DestArgInfo *info = &ctx->dest_arg; - const int sampler = info->regnum; - if (info->regtype != REG_TYPE_TEXTURE) - fail(ctx, "TEX param must be a texture register"); - add_sampler(ctx, sampler, TEXTURE_TYPE_2D, 0); - } // else -} // state_TEXLD - -static void state_TEXLDL(Context *ctx) -{ - if (!shader_version_atleast(ctx, 3, 0)) - fail(ctx, "TEXLDL in version < Shader Model 3.0"); - else if (ctx->source_args[1].regtype != REG_TYPE_SAMPLER) - fail(ctx, "TEXLDL src1 must be sampler register"); - else - { - if ( ((TextureType) ctx->source_args[1].regnum) == TEXTURE_TYPE_CUBE ) - ctx->instruction_count += 3; - } // else -} // state_TEXLDL - -static void state_DP2ADD(Context *ctx) -{ - if (!replicate_swizzle(ctx->source_args[2].swizzle)) - fail(ctx, "DP2ADD src2 must have replicate swizzle"); -} // state_DP2ADD - - -// Lookup table for instruction opcodes... -typedef struct -{ - const char *opcode_string; - int slots; // number of instruction slots this opcode eats. - MOJOSHADER_shaderType shader_types; // mask of types that can use opcode. - args_function parse_args; - state_function state; - emit_function emitter[STATICARRAYLEN(profiles)]; -} Instruction; - -// These have to be in the right order! This array is indexed by the value -// of the instruction token. -static const Instruction instructions[] = -{ - #define INSTRUCTION_STATE(op, opstr, slots, a, t, w) { \ - opstr, slots, t, parse_args_##a, state_##op, PROFILE_EMITTERS(op) \ - }, - - #define INSTRUCTION(op, opstr, slots, a, t, w) { \ - opstr, slots, t, parse_args_##a, NULL, PROFILE_EMITTERS(op) \ - }, - - #define MOJOSHADER_DO_INSTRUCTION_TABLE 1 - #include "mojoshader_internal.h" -}; - - -// parse various token types... - -static int parse_instruction_token(Context *ctx) -{ - int retval = 0; - const int start_position = ctx->current_position; - const uint32 *start_tokens = ctx->tokens; - const uint32 start_tokencount = ctx->tokencount; - const uint32 token = SWAP32(*(ctx->tokens)); - const uint32 opcode = (token & 0xFFFF); - const uint32 controls = ((token >> 16) & 0xFF); - const uint32 insttoks = ((token >> 24) & 0x0F); - const int coissue = (token & 0x40000000) ? 1 : 0; - const int predicated = (token & 0x10000000) ? 1 : 0; - - if ( opcode >= (sizeof (instructions) / sizeof (instructions[0])) ) - return 0; // not an instruction token, or just not handled here. - - const Instruction *instruction = &instructions[opcode]; - const emit_function emitter = instruction->emitter[ctx->profileid]; - - if ((token & 0x80000000) != 0) - fail(ctx, "instruction token high bit must be zero."); // so says msdn. - - if (instruction->opcode_string == NULL) - { - fail(ctx, "Unknown opcode."); - return insttoks + 1; // pray that you resync later. - } // if - - ctx->coissue = coissue; - if (coissue) - { - if (!shader_is_pixel(ctx)) - fail(ctx, "coissue instruction on non-pixel shader"); - if (shader_version_atleast(ctx, 2, 0)) - fail(ctx, "coissue instruction in Shader Model >= 2.0"); - } // if - - if ((ctx->shader_type & instruction->shader_types) == 0) - { - failf(ctx, "opcode '%s' not available in this shader type.", - instruction->opcode_string); - } // if - - memset(ctx->dwords, '\0', sizeof (ctx->dwords)); - ctx->instruction_controls = controls; - ctx->predicated = predicated; - - // Update the context with instruction's arguments. - adjust_token_position(ctx, 1); - retval = instruction->parse_args(ctx); - - if (predicated) - retval += parse_predicated_token(ctx); - - // parse_args() moves these forward for convenience...reset them. - ctx->tokens = start_tokens; - ctx->tokencount = start_tokencount; - ctx->current_position = start_position; - - if (instruction->state != NULL) - instruction->state(ctx); - - ctx->instruction_count += instruction->slots; - - if (!isfail(ctx)) - emitter(ctx); // call the profile's emitter. - - if (ctx->reset_texmpad) - { - ctx->texm3x2pad_dst0 = -1; - ctx->texm3x2pad_src0 = -1; - ctx->texm3x3pad_dst0 = -1; - ctx->texm3x3pad_src0 = -1; - ctx->texm3x3pad_dst1 = -1; - ctx->texm3x3pad_src1 = -1; - ctx->reset_texmpad = 0; - } // if - - ctx->previous_opcode = opcode; - ctx->scratch_registers = 0; // reset after every instruction. - - if (!shader_version_atleast(ctx, 2, 0)) - { - if (insttoks != 0) // reserved field in shaders < 2.0 ... - fail(ctx, "instruction token count must be zero"); - } // if - else - { - if (((uint32)retval) != (insttoks+1)) - { - failf(ctx, "wrong token count (%u, not %u) for opcode '%s'.", - (uint) retval, (uint) (insttoks+1), - instruction->opcode_string); - retval = insttoks + 1; // try to keep sync. - } // if - } // else - - return retval; -} // parse_instruction_token - - -static int parse_version_token(Context *ctx, const char *profilestr) -{ - if (ctx->tokencount == 0) - { - fail(ctx, "Expected version token, got none at all."); - return 0; - } // if - - const uint32 token = SWAP32(*(ctx->tokens)); - const uint32 shadertype = ((token >> 16) & 0xFFFF); - const uint8 major = (uint8) ((token >> 8) & 0xFF); - const uint8 minor = (uint8) (token & 0xFF); - - ctx->version_token = token; - - // 0xFFFF == pixel shader, 0xFFFE == vertex shader - if (shadertype == 0xFFFF) - { - ctx->shader_type = MOJOSHADER_TYPE_PIXEL; - ctx->shader_type_str = "ps"; - } // if - else if (shadertype == 0xFFFE) - { - ctx->shader_type = MOJOSHADER_TYPE_VERTEX; - ctx->shader_type_str = "vs"; - } // else if - else // geometry shader? Bogus data? - { - fail(ctx, "Unsupported shader type or not a shader at all"); - return -1; - } // else - - ctx->major_ver = major; - ctx->minor_ver = minor; - - if (!shader_version_supported(major, minor)) - { - failf(ctx, "Shader Model %u.%u is currently unsupported.", - (uint) major, (uint) minor); - } // if - - if (!isfail(ctx)) - ctx->profile->start_emitter(ctx, profilestr); - - return 1; // ate one token. -} // parse_version_token - - -static int parse_ctab_string(const uint8 *start, const uint32 bytes, - const uint32 name) -{ - // Make sure strings don't overflow the CTAB buffer... - if (name < bytes) - { - int i; - const int slenmax = bytes - name; - const char *namestr = (const char *) (start + name); - for (i = 0; i < slenmax; i++) - { - if (namestr[i] == '\0') - return 1; // it's okay. - } // for - } // if - - return 0; // overflowed. -} // parse_ctab_string - - -static int parse_ctab_typeinfo(Context *ctx, const uint8 *start, - const uint32 bytes, const uint32 pos, - MOJOSHADER_symbolTypeInfo *info, - const int depth) -{ - if ((bytes <= pos) || ((bytes - pos) < 16)) - return 0; // corrupt CTAB. - - const uint16 *typeptr = (const uint16 *) (start + pos); - - info->parameter_class = (MOJOSHADER_symbolClass) SWAP16(typeptr[0]); - info->parameter_type = (MOJOSHADER_symbolType) SWAP16(typeptr[1]); - info->rows = (unsigned int) SWAP16(typeptr[2]); - info->columns = (unsigned int) SWAP16(typeptr[3]); - info->elements = (unsigned int) SWAP16(typeptr[4]); - - if (info->parameter_class >= MOJOSHADER_SYMCLASS_TOTAL) - { - failf(ctx, "Unknown parameter class (0x%X)", info->parameter_class); - info->parameter_class = MOJOSHADER_SYMCLASS_SCALAR; - } // if - - if (info->parameter_type >= MOJOSHADER_SYMTYPE_TOTAL) - { - failf(ctx, "Unknown parameter type (0x%X)", info->parameter_type); - info->parameter_type = MOJOSHADER_SYMTYPE_INT; - } // if - - const unsigned int member_count = (unsigned int) SWAP16(typeptr[5]); - info->member_count = 0; - info->members = NULL; - - if ((pos + 16 + (member_count * 8)) >= bytes) - return 0; // corrupt CTAB. - - if (member_count > 0) - { - if (depth > 300) // make sure we aren't in an infinite loop here. - { - fail(ctx, "Possible infinite loop in CTAB structure."); - return 0; - } // if - - const size_t len = sizeof (MOJOSHADER_symbolStructMember) * member_count; - info->members = (MOJOSHADER_symbolStructMember *) Malloc(ctx, len); - if (info->members == NULL) - return 1; // we'll check ctx->out_of_memory later. - memset(info->members, '\0', len); - info->member_count = member_count; - } // else - - unsigned int i; - const uint32 *member = (const uint32 *) (start + typeptr[6]); - for (i = 0; i < member_count; i++) - { - MOJOSHADER_symbolStructMember *mbr = &info->members[i]; - const uint32 name = SWAP32(member[0]); - const uint32 memberinfopos = SWAP32(member[1]); - member += 2; - - if (!parse_ctab_string(start, bytes, name)) - return 0; // info->members will be free()'d elsewhere. - - mbr->name = StrDup(ctx, (const char *) (start + name)); - if (mbr->name == NULL) - return 1; // we'll check ctx->out_of_memory later. - if (!parse_ctab_typeinfo(ctx, start, bytes, memberinfopos, &mbr->info, depth + 1)) - return 0; - if (ctx->out_of_memory) - return 1; // drop out now. - } // for - - return 1; -} // parse_ctab_typeinfo - - -// Microsoft's tools add a CTAB comment to all shaders. This is the -// "constant table," or specifically: D3DXSHADER_CONSTANTTABLE: -// http://msdn.microsoft.com/en-us/library/bb205440(VS.85).aspx -// This may tell us high-level truths about an otherwise generic low-level -// registers, for instance, how large an array actually is, etc. -static void parse_constant_table(Context *ctx, const uint32 *tokens, - const uint32 bytes, const uint32 okay_version, - const int setvariables, CtabData *ctab) -{ - const uint32 id = SWAP32(tokens[1]); - if (id != CTAB_ID) - return; // not the constant table. - - if (ctab->have_ctab) // !!! FIXME: can you have more than one? - { - fail(ctx, "Shader has multiple CTAB sections"); - return; - } // if - - ctab->have_ctab = 1; - - const uint8 *start = (uint8 *) &tokens[2]; - - if (bytes < 32) - { - fail(ctx, "Truncated CTAB data"); - return; - } // if - - const uint32 size = SWAP32(tokens[2]); - const uint32 creator = SWAP32(tokens[3]); - const uint32 version = SWAP32(tokens[4]); - const uint32 constants = SWAP32(tokens[5]); - const uint32 constantinfo = SWAP32(tokens[6]); - const uint32 target = SWAP32(tokens[8]); - - if (size != CTAB_SIZE) - goto corrupt_ctab; - else if (constants > 1000000) // sanity check. - goto corrupt_ctab; - - if (version != okay_version) goto corrupt_ctab; - if (creator >= bytes) goto corrupt_ctab; - if (constantinfo >= bytes) goto corrupt_ctab; - if ((bytes - constantinfo) < (constants * CINFO_SIZE)) goto corrupt_ctab; - if (target >= bytes) goto corrupt_ctab; - if (!parse_ctab_string(start, bytes, target)) goto corrupt_ctab; - // !!! FIXME: check that (start+target) points to "ps_3_0", etc. - - ctab->symbols = NULL; - if (constants > 0) - { - ctab->symbols = (MOJOSHADER_symbol *) Malloc(ctx, sizeof (MOJOSHADER_symbol) * constants); - if (ctab->symbols == NULL) - return; - memset(ctab->symbols, '\0', sizeof (MOJOSHADER_symbol) * constants); - } // if - ctab->symbol_count = constants; - - uint32 i = 0; - for (i = 0; i < constants; i++) - { - const uint8 *ptr = start + constantinfo + (i * CINFO_SIZE); - const uint32 name = SWAP32(*((uint32 *) (ptr + 0))); - const uint16 regset = SWAP16(*((uint16 *) (ptr + 4))); - const uint16 regidx = SWAP16(*((uint16 *) (ptr + 6))); - const uint16 regcnt = SWAP16(*((uint16 *) (ptr + 8))); - const uint32 typeinf = SWAP32(*((uint32 *) (ptr + 12))); - const uint32 defval = SWAP32(*((uint32 *) (ptr + 16))); - MOJOSHADER_uniformType mojotype = MOJOSHADER_UNIFORM_UNKNOWN; - - if (!parse_ctab_string(start, bytes, name)) goto corrupt_ctab; - if (defval >= bytes) goto corrupt_ctab; - - switch (regset) - { - case 0: mojotype = MOJOSHADER_UNIFORM_BOOL; break; - case 1: mojotype = MOJOSHADER_UNIFORM_INT; break; - case 2: mojotype = MOJOSHADER_UNIFORM_FLOAT; break; - case 3: /* SAMPLER */ break; - default: goto corrupt_ctab; - } // switch - - if ((setvariables) && (mojotype != MOJOSHADER_UNIFORM_UNKNOWN)) - { - VariableList *item; - item = (VariableList *) Malloc(ctx, sizeof (VariableList)); - if (item != NULL) - { - item->type = mojotype; - item->index = regidx; - item->count = regcnt; - item->constant = NULL; - item->used = 0; - item->emit_position = -1; - item->next = ctx->variables; - ctx->variables = item; - } // if - } // if - - // Add the symbol. - const char *namecpy = StrDup(ctx, (const char *) (start + name)); - if (namecpy == NULL) - return; - - MOJOSHADER_symbol *sym = &ctab->symbols[i]; - sym->name = namecpy; - sym->register_set = (MOJOSHADER_symbolRegisterSet) regset; - sym->register_index = (unsigned int) regidx; - sym->register_count = (unsigned int) regcnt; - if (!parse_ctab_typeinfo(ctx, start, bytes, typeinf, &sym->info, 0)) - goto corrupt_ctab; // sym->name will get free()'d later. - else if (ctx->out_of_memory) - return; // just bail now. - } // for - - return; - -corrupt_ctab: - fail(ctx, "Shader has corrupt CTAB data"); -} // parse_constant_table - - -static void free_symbols(MOJOSHADER_free f, void *d, MOJOSHADER_symbol *syms, - const int symcount); - - -static int is_comment_token(Context *ctx, const uint32 tok, uint32 *tokcount) -{ - const uint32 token = SWAP32(tok); - if ((token & 0xFFFF) == 0xFFFE) // actually a comment token? - { - if ((token & 0x80000000) != 0) - fail(ctx, "comment token high bit must be zero."); // so says msdn. - *tokcount = ((token >> 16) & 0xFFFF); - return 1; - } // if - - return 0; -} // is_comment_token - - -typedef struct PreshaderBlockInfo -{ - const uint32 *tokens; - uint32 tokcount; - int seen; -} PreshaderBlockInfo; - -// Preshaders only show up in compiled Effect files. The format is -// undocumented, and even the instructions aren't the same opcodes as you -// would find in a regular shader. These things show up because the HLSL -// compiler can detect work that sets up constant registers that could -// be moved out of the shader itself. Preshaders run once, then the shader -// itself runs many times, using the constant registers the preshader has set -// up. There are cases where the preshaders are 3+ times as many instructions -// as the shader itself, so this can be a big performance win. -// My presumption is that Microsoft's Effects framework runs the preshaders on -// the CPU, then loads the constant register file appropriately before handing -// off to the GPU. As such, we do the same. -static void parse_preshader(Context *ctx, const uint32 *tokens, uint32 tokcount) -{ -#ifndef MOJOSHADER_EFFECT_SUPPORT - fail(ctx, "Preshader found, but effect support is disabled!"); -#else - uint32 i; - - assert(ctx->have_preshader == 0); // !!! FIXME: can you have more than one? - ctx->have_preshader = 1; - - // !!! FIXME: I don't know what specific versions signify, but we need to - // !!! FIXME: save this to test against the CTAB version field, if - // !!! FIXME: nothing else. - // !!! FIXME: 0x02 0x0? is probably the version (fx_2_?), - // !!! FIXME: and 0x4658 is the magic, like a real shader's version token. - const uint32 version_magic = 0x46580000; - const uint32 min_version = 0x00000200 | version_magic; - const uint32 max_version = 0x00000201 | version_magic; - const uint32 version = SWAP32(tokens[0]); - if (version < min_version || version > max_version) - { - fail(ctx, "Unsupported preshader version."); - return; // fail because the shader will malfunction w/o this. - } // if - - tokens++; - tokcount--; - - // All sections of a preshader are packed into separate comment tokens, - // inside the containing comment token block. Find them all before - // we start, so we don't care about the order they appear in the file. - PreshaderBlockInfo ctab = { 0, 0, 0 }; - PreshaderBlockInfo prsi = { 0, 0, 0 }; - PreshaderBlockInfo fxlc = { 0, 0, 0 }; - PreshaderBlockInfo clit = { 0, 0, 0 }; - - while (tokcount > 0) - { - uint32 subtokcount = 0; - if ( (!is_comment_token(ctx, *tokens, &subtokcount)) || - (subtokcount > tokcount) ) - { - // !!! FIXME: Standalone preshaders have this EOS-looking token, - // !!! FIXME: sometimes followed by tokens that don't appear to - // !!! FIXME: have anything to do with the rest of the blob. - // !!! FIXME: So for now, treat this as a special "EOS" comment. - if (SWAP32(*tokens) == 0xFFFF) - break; - - fail(ctx, "Bogus preshader data."); - return; - } // if - - tokens++; - tokcount--; - - const uint32 *nexttokens = tokens + subtokcount; - const uint32 nexttokcount = tokcount - subtokcount; - - if (subtokcount > 0) - { - switch (SWAP32(*tokens)) - { - #define PRESHADER_BLOCK_CASE(id, var) \ - case id##_ID: { \ - if (var.seen) { \ - fail(ctx, "Multiple " #id " preshader blocks."); \ - return; \ - } \ - var.tokens = tokens; \ - var.tokcount = subtokcount; \ - var.seen = 1; \ - break; \ - } - PRESHADER_BLOCK_CASE(CTAB, ctab); - PRESHADER_BLOCK_CASE(PRSI, prsi); - PRESHADER_BLOCK_CASE(FXLC, fxlc); - PRESHADER_BLOCK_CASE(CLIT, clit); - default: fail(ctx, "Bogus preshader section."); return; - #undef PRESHADER_BLOCK_CASE - } // switch - } // if - - tokens = nexttokens; - tokcount = nexttokcount; - } // while - - if (!ctab.seen) { fail(ctx, "No CTAB block in preshader."); return; } - if (!fxlc.seen) { fail(ctx, "No FXLC block in preshader."); return; } - if (!clit.seen) { fail(ctx, "No CLIT block in preshader."); return; } - // prsi.seen is optional, apparently. - - MOJOSHADER_preshader *preshader = (MOJOSHADER_preshader *) - Malloc(ctx, sizeof (MOJOSHADER_preshader)); - if (preshader == NULL) - return; - - memset(preshader, '\0', sizeof (MOJOSHADER_preshader)); - preshader->malloc = ctx->malloc; - preshader->free = ctx->free; - preshader->malloc_data = ctx->malloc_data; - - ctx->preshader = preshader; - - // Let's set up the constant literals first... - if (clit.tokcount == 0) - fail(ctx, "Bogus CLIT block in preshader."); - else - { - const uint32 lit_count = SWAP32(clit.tokens[1]); - if (lit_count > ((clit.tokcount - 2) / 2)) - { - fail(ctx, "Bogus CLIT block in preshader."); - return; - } // if - else if (lit_count > 0) - { - preshader->literal_count = (unsigned int) lit_count; - assert(sizeof (double) == 8); // just in case. - const size_t len = sizeof (double) * lit_count; - preshader->literals = (double *) Malloc(ctx, len); - if (preshader->literals == NULL) - return; // oh well. - const double *litptr = (const double *) (clit.tokens + 2); - // !!! FIXME: This should be a SWAPDBL loop, but in addition to - // !!! FIXME: never having an implementation, it turns out some - // !!! FIXME: MinGW versions do not optimize this correctly, which - // !!! FIXME: can cause random crashes on Win64. -flibit - //for (i = 0; i < lit_count; i++) - // preshader->literals[i] = SWAPDBL(litptr[i]); - memcpy(preshader->literals, litptr, len); - } // else if - } // else - - // Parse out the PRSI block. This is used to map the output registers. - uint32 output_map_count = 0; - const uint32 *output_map = NULL; - if (prsi.seen) - { - if (prsi.tokcount < 8) - { - fail(ctx, "Bogus preshader PRSI data"); - return; - } // if - - //const uint32 first_output_reg = SWAP32(prsi.tokens[1]); - // !!! FIXME: there are a lot of fields here I don't know about. - // !!! FIXME: maybe [2] and [3] are for int4 and bool registers? - //const uint32 output_reg_count = SWAP32(prsi.tokens[4]); - // !!! FIXME: maybe [5] and [6] are for int4 and bool registers? - output_map_count = SWAP32(prsi.tokens[7]); - - prsi.tokcount -= 8; - prsi.tokens += 8; - - if (prsi.tokcount < ((output_map_count + 1) * 2)) - { - fail(ctx, "Bogus preshader PRSI data"); - return; - } // if - - output_map = prsi.tokens; - } // if - - // Now we'll figure out the CTAB... - CtabData ctabdata = { 0, 0, 0 }; - parse_constant_table(ctx, ctab.tokens - 1, ctab.tokcount * 4, - version, 0, &ctabdata); - - // preshader owns this now. Don't free it in this function. - preshader->symbol_count = ctabdata.symbol_count; - preshader->symbols = ctabdata.symbols; - - if (!ctabdata.have_ctab) - { - fail(ctx, "Bogus preshader CTAB data"); - return; - } // if - - // The FXLC block has the actual instructions... - uint32 opcode_count = SWAP32(fxlc.tokens[1]); - - const size_t len = sizeof (MOJOSHADER_preshaderInstruction) * opcode_count; - preshader->instruction_count = (unsigned int) opcode_count; - preshader->instructions = (MOJOSHADER_preshaderInstruction *) Malloc(ctx, len); - if (preshader->instructions == NULL) - return; - memset(preshader->instructions, '\0', len); - - fxlc.tokens += 2; - fxlc.tokcount -= 2; - if (opcode_count > (fxlc.tokcount / 2)) - { - fail(ctx, "Bogus preshader FXLC block."); - return; - } // if - - MOJOSHADER_preshaderInstruction *inst = preshader->instructions; - while (opcode_count--) - { - const uint32 opcodetok = SWAP32(fxlc.tokens[0]); - MOJOSHADER_preshaderOpcode opcode = MOJOSHADER_PRESHADEROP_NOP; - switch ((opcodetok >> 16) & 0xFFFF) - { - case 0x1000: opcode = MOJOSHADER_PRESHADEROP_MOV; break; - case 0x1010: opcode = MOJOSHADER_PRESHADEROP_NEG; break; - case 0x1030: opcode = MOJOSHADER_PRESHADEROP_RCP; break; - case 0x1040: opcode = MOJOSHADER_PRESHADEROP_FRC; break; - case 0x1050: opcode = MOJOSHADER_PRESHADEROP_EXP; break; - case 0x1060: opcode = MOJOSHADER_PRESHADEROP_LOG; break; - case 0x1070: opcode = MOJOSHADER_PRESHADEROP_RSQ; break; - case 0x1080: opcode = MOJOSHADER_PRESHADEROP_SIN; break; - case 0x1090: opcode = MOJOSHADER_PRESHADEROP_COS; break; - case 0x10A0: opcode = MOJOSHADER_PRESHADEROP_ASIN; break; - case 0x10B0: opcode = MOJOSHADER_PRESHADEROP_ACOS; break; - case 0x10C0: opcode = MOJOSHADER_PRESHADEROP_ATAN; break; - case 0x2000: opcode = MOJOSHADER_PRESHADEROP_MIN; break; - case 0x2010: opcode = MOJOSHADER_PRESHADEROP_MAX; break; - case 0x2020: opcode = MOJOSHADER_PRESHADEROP_LT; break; - case 0x2030: opcode = MOJOSHADER_PRESHADEROP_GE; break; - case 0x2040: opcode = MOJOSHADER_PRESHADEROP_ADD; break; - case 0x2050: opcode = MOJOSHADER_PRESHADEROP_MUL; break; - case 0x2060: opcode = MOJOSHADER_PRESHADEROP_ATAN2; break; - case 0x2080: opcode = MOJOSHADER_PRESHADEROP_DIV; break; - case 0x3000: opcode = MOJOSHADER_PRESHADEROP_CMP; break; - case 0x3010: opcode = MOJOSHADER_PRESHADEROP_MOVC; break; - case 0x5000: opcode = MOJOSHADER_PRESHADEROP_DOT; break; - case 0x5020: opcode = MOJOSHADER_PRESHADEROP_NOISE; break; - case 0xA000: opcode = MOJOSHADER_PRESHADEROP_MIN_SCALAR; break; - case 0xA010: opcode = MOJOSHADER_PRESHADEROP_MAX_SCALAR; break; - case 0xA020: opcode = MOJOSHADER_PRESHADEROP_LT_SCALAR; break; - case 0xA030: opcode = MOJOSHADER_PRESHADEROP_GE_SCALAR; break; - case 0xA040: opcode = MOJOSHADER_PRESHADEROP_ADD_SCALAR; break; - case 0xA050: opcode = MOJOSHADER_PRESHADEROP_MUL_SCALAR; break; - case 0xA060: opcode = MOJOSHADER_PRESHADEROP_ATAN2_SCALAR; break; - case 0xA080: opcode = MOJOSHADER_PRESHADEROP_DIV_SCALAR; break; - case 0xD000: opcode = MOJOSHADER_PRESHADEROP_DOT_SCALAR; break; - case 0xD020: opcode = MOJOSHADER_PRESHADEROP_NOISE_SCALAR; break; - default: fail(ctx, "Unknown preshader opcode."); break; - } // switch - - uint32 operand_count = SWAP32(fxlc.tokens[1]) + 1; // +1 for dest. - - inst->opcode = opcode; - inst->element_count = (unsigned int) (opcodetok & 0xFF); - inst->operand_count = (unsigned int) operand_count; - - fxlc.tokens += 2; - fxlc.tokcount -= 2; - if ((operand_count * 3) > fxlc.tokcount) - { - fail(ctx, "Bogus preshader FXLC block."); - return; - } // if - - MOJOSHADER_preshaderOperand *operand = inst->operands; - while (operand_count--) - { - const unsigned int item = (unsigned int) SWAP32(fxlc.tokens[2]); - - // !!! FIXME: Is this used anywhere other than INPUT? -flibit - const uint32 numarrays = SWAP32(fxlc.tokens[0]); - switch (SWAP32(fxlc.tokens[1])) - { - case 1: // literal from CLIT block. - { - if (item > preshader->literal_count) - { - fail(ctx, "Bogus preshader literal index."); - break; - } // if - operand->type = MOJOSHADER_PRESHADEROPERAND_LITERAL; - break; - } // case - - case 2: // item from ctabdata. - { - MOJOSHADER_symbol *sym = ctabdata.symbols; - const uint32 symcount = (uint32) ctabdata.symbol_count; - for (i = 0; i < symcount; i++, sym++) - { - const uint32 base = sym->register_index * 4; - const uint32 count = sym->register_count * 4; - assert(sym->register_set==MOJOSHADER_SYMREGSET_FLOAT4); - if ( (base <= item) && ((base + count) > item) ) - break; - } // for - if (i == ctabdata.symbol_count) - { - fail(ctx, "Bogus preshader input index."); - break; - } // if - operand->type = MOJOSHADER_PRESHADEROPERAND_INPUT; - if (numarrays > 0) - { - // malloc the array symbol name array - const uint32 siz = numarrays * sizeof (uint32); - operand->array_register_count = numarrays; - operand->array_registers = (uint32 *) Malloc(ctx, siz); - memset(operand->array_registers, '\0', siz); - // Get each register base, indicating the arrays used. - // !!! FIXME: fail if fxlc.tokcount*2 > numarrays ? - for (i = 0; i < numarrays; i++) - { - const uint32 jmp = SWAP32(fxlc.tokens[4]); - const uint32 bigjmp = (jmp >> 4) * 4; - const uint32 ltljmp = (jmp >> 2) & 3; - operand->array_registers[i] = bigjmp + ltljmp; - fxlc.tokens += 2; - fxlc.tokcount -= 2; - } // for - } // if - break; - } // case - - case 4: - { - operand->type = MOJOSHADER_PRESHADEROPERAND_OUTPUT; - - for (i = 0; i < output_map_count; i++) - { - const uint32 base = output_map[(i*2)] * 4; - const uint32 count = output_map[(i*2)+1] * 4; - if ( (base <= item) && ((base + count) > item) ) - break; - } // for - - if (i == output_map_count) - { - if (prsi.seen) // No PRSI tokens, no output map. - fail(ctx, "Bogus preshader output index."); - } // if - - break; - } // case - - case 7: - { - operand->type = MOJOSHADER_PRESHADEROPERAND_TEMP; - if (item >= preshader->temp_count) - preshader->temp_count = item + 1; - break; - } // case - - default: - assert(0 && "Unhandled fxlc.tokens[1] in parse_preshader!"); - break; - } // switch - - operand->index = item; - - fxlc.tokens += 3; - fxlc.tokcount -= 3; - operand++; - } // while - - inst++; - } // while - - // Registers need to be vec4, round up to nearest 4 - preshader->temp_count = (preshader->temp_count + 3) & ~3; - - unsigned int largest = 0; - const MOJOSHADER_symbol *sym = preshader->symbols; - const uint32 symcount = (uint32) preshader->symbol_count; - for (i = 0; i < symcount; i++, sym++) - { - const unsigned int val = sym->register_index + sym->register_count; - if (val > largest) - largest = val; - } // for - - if (largest > 0) - { - const size_t len = largest * sizeof (float) * 4; - preshader->registers = (float *) Malloc(ctx, len); - memset(preshader->registers, '\0', len); - preshader->register_count = largest; - } // if -#endif -} // parse_preshader - -static int parse_comment_token(Context *ctx) -{ - uint32 commenttoks = 0; - if (is_comment_token(ctx, *ctx->tokens, &commenttoks)) - { - if ((commenttoks >= 2) && (commenttoks < ctx->tokencount)) - { - const uint32 id = SWAP32(ctx->tokens[1]); - if (id == PRES_ID) - parse_preshader(ctx, ctx->tokens + 2, commenttoks - 2); - else if (id == CTAB_ID) - { - parse_constant_table(ctx, ctx->tokens, commenttoks * 4, - ctx->version_token, 1, &ctx->ctab); - } // else if - } // if - return commenttoks + 1; // comment data plus the initial token. - } // if - - return 0; // not a comment token. -} // parse_comment_token - - -static int parse_end_token(Context *ctx) -{ - if (SWAP32(*(ctx->tokens)) != 0x0000FFFF) // end token always 0x0000FFFF. - return 0; // not us, eat no tokens. - - if (!ctx->know_shader_size) // this is the end of stream! - ctx->tokencount = 1; - else if (ctx->tokencount != 1) // we _must_ be last. If not: fail. - fail(ctx, "end token before end of stream"); - - if (!isfail(ctx)) - ctx->profile->end_emitter(ctx); - - return 1; -} // parse_end_token - - -static int parse_phase_token(Context *ctx) -{ - // !!! FIXME: needs state; allow only one phase token per shader, I think? - if (SWAP32(*(ctx->tokens)) != 0x0000FFFD) // phase token always 0x0000FFFD. - return 0; // not us, eat no tokens. - - if ( (!shader_is_pixel(ctx)) || (!shader_version_exactly(ctx, 1, 4)) ) - fail(ctx, "phase token only available in 1.4 pixel shaders"); - - if (!isfail(ctx)) - ctx->profile->phase_emitter(ctx); - - return 1; -} // parse_phase_token - - -static int parse_token(Context *ctx) -{ - int rc = 0; - - assert(ctx->output_stack_len == 0); - - if (ctx->tokencount == 0) - fail(ctx, "unexpected end of shader."); - - else if ((rc = parse_comment_token(ctx)) != 0) - return rc; - - else if ((rc = parse_end_token(ctx)) != 0) - return rc; - - else if ((rc = parse_phase_token(ctx)) != 0) - return rc; - - else if ((rc = parse_instruction_token(ctx)) != 0) - return rc; - - failf(ctx, "unknown token (0x%x)", (uint) *ctx->tokens); - return 1; // good luck! -} // parse_token - - -static int find_profile_id(const char *profile) -{ - size_t i; - for (i = 0; i < STATICARRAYLEN(profileMap); i++) - { - const char *name = profileMap[i].from; - if (strcmp(name, profile) == 0) - { - profile = profileMap[i].to; - break; - } // if - } // for - - for (i = 0; i < STATICARRAYLEN(profiles); i++) - { - const char *name = profiles[i].name; - if (strcmp(name, profile) == 0) - return i; - } // for - - return -1; // no match. -} // find_profile_id - - -static Context *build_context(const char *profile, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - if (m == NULL) m = MOJOSHADER_internal_malloc; - if (f == NULL) f = MOJOSHADER_internal_free; - - Context *ctx = (Context *) m(sizeof (Context), d); - if (ctx == NULL) - return NULL; - - memset(ctx, '\0', sizeof (Context)); - ctx->malloc = m; - ctx->free = f; - ctx->malloc_data = d; - ctx->tokens = (const uint32 *) tokenbuf; - ctx->orig_tokens = (const uint32 *) tokenbuf; - ctx->know_shader_size = (bufsize != 0); - ctx->tokencount = ctx->know_shader_size ? (bufsize / sizeof (uint32)) : 0xFFFFFFFF; - ctx->swizzles = swiz; - ctx->swizzles_count = swizcount; - ctx->samplermap = smap; - ctx->samplermap_count = smapcount; - ctx->endline = ENDLINE_STR; - ctx->endline_len = strlen(ctx->endline); - ctx->last_address_reg_component = -1; - ctx->current_position = MOJOSHADER_POSITION_BEFORE; - ctx->texm3x2pad_dst0 = -1; - ctx->texm3x2pad_src0 = -1; - ctx->texm3x3pad_dst0 = -1; - ctx->texm3x3pad_src0 = -1; - ctx->texm3x3pad_dst1 = -1; - ctx->texm3x3pad_src1 = -1; - - ctx->errors = errorlist_create(MallocBridge, FreeBridge, ctx); - if (ctx->errors == NULL) - { - f(ctx, d); - return NULL; - } // if - - if (!set_output(ctx, &ctx->mainline)) - { - errorlist_destroy(ctx->errors); - f(ctx, d); - return NULL; - } // if - - if (mainfn != NULL) - { - if (strlen(mainfn) > 55) // !!! FIXME: just to keep things sane. Lots of hardcoded stack arrays... - failf(ctx, "Main function name '%s' is too big", mainfn); - else - ctx->mainfn = StrDup(ctx, mainfn); - } // if - - if (profile != NULL) - { - const int profileid = find_profile_id(profile); - ctx->profileid = profileid; - if (profileid >= 0) - ctx->profile = &profiles[profileid]; - else - failf(ctx, "Profile '%s' is unknown or unsupported", profile); - } // if - - return ctx; -} // build_context - - -static void free_constants_list(MOJOSHADER_free f, void *d, ConstantsList *item) -{ - while (item != NULL) - { - ConstantsList *next = item->next; - f(item, d); - item = next; - } // while -} // free_constants_list - - -static void free_variable_list(MOJOSHADER_free f, void *d, VariableList *item) -{ - while (item != NULL) - { - VariableList *next = item->next; - f(item, d); - item = next; - } // while -} // free_variable_list - - -static void free_sym_typeinfo(MOJOSHADER_free f, void *d, - MOJOSHADER_symbolTypeInfo *typeinfo) -{ - unsigned int i; - for (i = 0; i < typeinfo->member_count; i++) - { - f((void *) typeinfo->members[i].name, d); - free_sym_typeinfo(f, d, &typeinfo->members[i].info); - } // for - f((void *) typeinfo->members, d); -} // free_sym_members - - -static void free_symbols(MOJOSHADER_free f, void *d, MOJOSHADER_symbol *syms, - const int symcount) -{ - int i; - for (i = 0; i < symcount; i++) - { - f((void *) syms[i].name, d); - free_sym_typeinfo(f, d, &syms[i].info); - } // for - f((void *) syms, d); -} // free_symbols - - -static void destroy_context(Context *ctx) -{ - if (ctx != NULL) - { - MOJOSHADER_free f = ((ctx->free != NULL) ? ctx->free : MOJOSHADER_internal_free); - void *d = ctx->malloc_data; - buffer_destroy(ctx->preflight); - buffer_destroy(ctx->globals); - buffer_destroy(ctx->inputs); - buffer_destroy(ctx->outputs); - buffer_destroy(ctx->helpers); - buffer_destroy(ctx->subroutines); - buffer_destroy(ctx->mainline_intro); - buffer_destroy(ctx->mainline_arguments); - buffer_destroy(ctx->mainline_top); - buffer_destroy(ctx->mainline); - buffer_destroy(ctx->postflight); - buffer_destroy(ctx->ignore); - free_constants_list(f, d, ctx->constants); - free_reglist(f, d, ctx->used_registers.next); - free_reglist(f, d, ctx->defined_registers.next); - free_reglist(f, d, ctx->uniforms.next); - free_reglist(f, d, ctx->attributes.next); - free_reglist(f, d, ctx->samplers.next); - free_variable_list(f, d, ctx->variables); - errorlist_destroy(ctx->errors); - free_symbols(f, d, ctx->ctab.symbols, ctx->ctab.symbol_count); - MOJOSHADER_freePreshader(ctx->preshader); - f((void *) ctx->mainfn, d); - f(ctx, d); - } // if -} // destroy_context - - -static char *build_output(Context *ctx, size_t *len) -{ - // add a byte for a null terminator. - Buffer *buffers[] = { - ctx->preflight, ctx->globals, ctx->inputs, ctx->outputs, ctx->helpers, - ctx->subroutines, ctx->mainline_intro, ctx->mainline_arguments, - ctx->mainline_top, ctx->mainline, ctx->postflight - // don't append ctx->ignore ... that's why it's called "ignore" - }; - char *retval = buffer_merge(buffers, STATICARRAYLEN(buffers), len); - return retval; -} // build_output - - -static inline const char *alloc_varname(Context *ctx, const RegisterList *reg) -{ - return ctx->profile->get_varname(ctx, reg->regtype, reg->regnum); -} // alloc_varname - - -// !!! FIXME: this code is sort of hard to follow: -// !!! FIXME: "var->used" only applies to arrays (at the moment, at least, -// !!! FIXME: but this might be buggy at a later time?), and this code -// !!! FIXME: relies on that. -// !!! FIXME: "variables" means "things we found in a CTAB" but it's not -// !!! FIXME: all registers, etc. -// !!! FIXME: "const_array" means an array for d3d "const" registers (c0, c1, -// !!! FIXME: etc), but not a constant array, although they _can_ be. -// !!! FIXME: It's just a mess. :/ -static MOJOSHADER_uniform *build_uniforms(Context *ctx) -{ - const size_t len = sizeof (MOJOSHADER_uniform) * ctx->uniform_count; - MOJOSHADER_uniform *retval = (MOJOSHADER_uniform *) Malloc(ctx, len); - - if (retval != NULL) - { - MOJOSHADER_uniform *wptr = retval; - memset(wptr, '\0', len); - - VariableList *var; - int written = 0; - for (var = ctx->variables; var != NULL; var = var->next) - { - if (var->used) - { - const char *name = ctx->profile->get_const_array_varname(ctx, - var->index, var->count); - if (name != NULL) - { - wptr->type = MOJOSHADER_UNIFORM_FLOAT; - wptr->index = var->index; - wptr->array_count = var->count; - wptr->constant = (var->constant != NULL) ? 1 : 0; - wptr->name = name; - wptr++; - written++; - } // if - } // if - } // for - - RegisterList *item = ctx->uniforms.next; - MOJOSHADER_uniformType type = MOJOSHADER_UNIFORM_FLOAT; - while (written < ctx->uniform_count) - { - int skip = 0; - - // !!! FIXME: does this fail if written > ctx->uniform_count? - if (item == NULL) - { - fail(ctx, "BUG: mismatched uniform list and count"); - break; - } // if - - int index = item->regnum; - switch (item->regtype) - { - case REG_TYPE_CONST: - skip = (item->array != NULL); - type = MOJOSHADER_UNIFORM_FLOAT; - break; - - case REG_TYPE_CONSTINT: - type = MOJOSHADER_UNIFORM_INT; - break; - - case REG_TYPE_CONSTBOOL: - type = MOJOSHADER_UNIFORM_BOOL; - break; - - default: - fail(ctx, "unknown uniform datatype"); - break; - } // switch - - if (!skip) - { - wptr->type = type; - wptr->index = index; - wptr->array_count = 0; - wptr->name = alloc_varname(ctx, item); - wptr++; - written++; - } // if - - item = item->next; - } // for - } // if - - return retval; -} // build_uniforms - - -static MOJOSHADER_constant *build_constants(Context *ctx) -{ - const size_t len = sizeof (MOJOSHADER_constant) * ctx->constant_count; - MOJOSHADER_constant *retval = (MOJOSHADER_constant *) Malloc(ctx, len); - - if (retval != NULL) - { - ConstantsList *item = ctx->constants; - int i; - - for (i = 0; i < ctx->constant_count; i++) - { - if (item == NULL) - { - fail(ctx, "BUG: mismatched constant list and count"); - break; - } // if - - memcpy(&retval[i], &item->constant, sizeof (MOJOSHADER_constant)); - item = item->next; - } // for - } // if - - return retval; -} // build_constants - - -static MOJOSHADER_sampler *build_samplers(Context *ctx) -{ - const size_t len = sizeof (MOJOSHADER_sampler) * ctx->sampler_count; - MOJOSHADER_sampler *retval = (MOJOSHADER_sampler *) Malloc(ctx, len); - - if (retval != NULL) - { - RegisterList *item = ctx->samplers.next; - int i; - - memset(retval, '\0', len); - - for (i = 0; i < ctx->sampler_count; i++) - { - if (item == NULL) - { - fail(ctx, "BUG: mismatched sampler list and count"); - break; - } // if - - assert(item->regtype == REG_TYPE_SAMPLER); - retval[i].type = cvtD3DToMojoSamplerType((TextureType) item->index); - retval[i].index = item->regnum; - retval[i].name = alloc_varname(ctx, item); - retval[i].texbem = (item->misc != 0) ? 1 : 0; - item = item->next; - } // for - } // if - - return retval; -} // build_samplers - - -static MOJOSHADER_attribute *build_attributes(Context *ctx, int *_count) -{ - int count = 0; - - if (ctx->attribute_count == 0) - { - *_count = 0; - return NULL; // nothing to do. - } // if - - const size_t len = sizeof (MOJOSHADER_attribute) * ctx->attribute_count; - MOJOSHADER_attribute *retval = (MOJOSHADER_attribute *) Malloc(ctx, len); - - if (retval != NULL) - { - RegisterList *item = ctx->attributes.next; - MOJOSHADER_attribute *wptr = retval; - int ignore = 0; - int i; - - memset(retval, '\0', len); - - for (i = 0; i < ctx->attribute_count; i++) - { - if (item == NULL) - { - fail(ctx, "BUG: mismatched attribute list and count"); - break; - } // if - - switch (item->regtype) - { - case REG_TYPE_RASTOUT: - case REG_TYPE_ATTROUT: - case REG_TYPE_TEXCRDOUT: - case REG_TYPE_COLOROUT: - case REG_TYPE_DEPTHOUT: - ignore = 1; - break; - default: - ignore = 0; - break; - } // switch - - if (!ignore) - { - wptr->usage = item->usage; - wptr->index = item->index; - wptr->name = alloc_varname(ctx, item); - wptr++; - count++; - } // if - - item = item->next; - } // for - } // if - - *_count = count; - return retval; -} // build_attributes - -static MOJOSHADER_attribute *build_outputs(Context *ctx, int *_count) -{ - int count = 0; - - if (ctx->attribute_count == 0) - { - *_count = 0; - return NULL; // nothing to do. - } // if - - const size_t len = sizeof (MOJOSHADER_attribute) * ctx->attribute_count; - MOJOSHADER_attribute *retval = (MOJOSHADER_attribute *) Malloc(ctx, len); - - if (retval != NULL) - { - RegisterList *item = ctx->attributes.next; - MOJOSHADER_attribute *wptr = retval; - int i; - - memset(retval, '\0', len); - - for (i = 0; i < ctx->attribute_count; i++) - { - if (item == NULL) - { - fail(ctx, "BUG: mismatched attribute list and count"); - break; - } // if - - switch (item->regtype) - { - case REG_TYPE_RASTOUT: - case REG_TYPE_ATTROUT: - case REG_TYPE_TEXCRDOUT: - case REG_TYPE_COLOROUT: - case REG_TYPE_DEPTHOUT: - wptr->usage = item->usage; - wptr->index = item->index; - wptr->name = alloc_varname(ctx, item); - wptr++; - count++; - break; - default: - break; - } // switch - - - item = item->next; - } // for - } // if - - *_count = count; - return retval; -} // build_outputs - - -static MOJOSHADER_parseData *build_parsedata(Context *ctx) -{ - char *output = NULL; - MOJOSHADER_constant *constants = NULL; - MOJOSHADER_uniform *uniforms = NULL; - MOJOSHADER_attribute *attributes = NULL; - MOJOSHADER_attribute *outputs = NULL; - MOJOSHADER_sampler *samplers = NULL; - MOJOSHADER_swizzle *swizzles = NULL; - MOJOSHADER_error *errors = NULL; - MOJOSHADER_parseData *retval = NULL; - size_t output_len = 0; - int attribute_count = 0; - int output_count = 0; - - if (ctx->out_of_memory) - return &MOJOSHADER_out_of_mem_data; - - retval = (MOJOSHADER_parseData*) Malloc(ctx, sizeof(MOJOSHADER_parseData)); - if (retval == NULL) - return &MOJOSHADER_out_of_mem_data; - - memset(retval, '\0', sizeof (MOJOSHADER_parseData)); - - if (!isfail(ctx)) - output = build_output(ctx, &output_len); - - if (!isfail(ctx)) - constants = build_constants(ctx); - - if (!isfail(ctx)) - uniforms = build_uniforms(ctx); - - if (!isfail(ctx)) - attributes = build_attributes(ctx, &attribute_count); - - if (!isfail(ctx)) - outputs = build_outputs(ctx, &output_count); - - if (!isfail(ctx)) - samplers = build_samplers(ctx); - - const int error_count = errorlist_count(ctx->errors); - errors = errorlist_flatten(ctx->errors); - - if (!isfail(ctx)) - { - if (ctx->swizzles_count > 0) - { - const int len = ctx->swizzles_count * sizeof (MOJOSHADER_swizzle); - swizzles = (MOJOSHADER_swizzle *) Malloc(ctx, len); - if (swizzles != NULL) - memcpy(swizzles, ctx->swizzles, len); - } // if - } // if - - // check again, in case build_output, etc, ran out of memory. - if (isfail(ctx)) - { - int i; - - Free(ctx, output); - Free(ctx, constants); - Free(ctx, swizzles); - - if (uniforms != NULL) - { - for (i = 0; i < ctx->uniform_count; i++) - Free(ctx, (void *) uniforms[i].name); - Free(ctx, uniforms); - } // if - - if (attributes != NULL) - { - for (i = 0; i < attribute_count; i++) - Free(ctx, (void *) attributes[i].name); - Free(ctx, attributes); - } // if - - if (outputs != NULL) - { - for (i = 0; i < output_count; i++) - Free(ctx, (void *) outputs[i].name); - Free(ctx, outputs); - } // if - - if (samplers != NULL) - { - for (i = 0; i < ctx->sampler_count; i++) - Free(ctx, (void *) samplers[i].name); - Free(ctx, samplers); - } // if - - if (ctx->out_of_memory) - { - for (i = 0; i < error_count; i++) - { - Free(ctx, (void *) errors[i].filename); - Free(ctx, (void *) errors[i].error); - } // for - Free(ctx, errors); - Free(ctx, retval); - return &MOJOSHADER_out_of_mem_data; - } // if - } // if - else - { - retval->profile = ctx->profile->name; - retval->output = output; - retval->output_len = (int) output_len; - retval->instruction_count = ctx->instruction_count; - retval->shader_type = ctx->shader_type; - retval->major_ver = (int) ctx->major_ver; - retval->minor_ver = (int) ctx->minor_ver; - retval->uniform_count = ctx->uniform_count; - retval->uniforms = uniforms; - retval->constant_count = ctx->constant_count; - retval->constants = constants; - retval->sampler_count = ctx->sampler_count; - retval->samplers = samplers; - retval->attribute_count = attribute_count; - retval->attributes = attributes; - retval->output_count = output_count; - retval->outputs = outputs; - retval->swizzle_count = ctx->swizzles_count; - retval->swizzles = swizzles; - retval->symbol_count = ctx->ctab.symbol_count; - retval->symbols = ctx->ctab.symbols; - retval->preshader = ctx->preshader; - retval->mainfn = ctx->mainfn; - -#if SUPPORT_PROFILE_SPIRV - if (strcmp(retval->profile, MOJOSHADER_PROFILE_SPIRV) == 0 - || strcmp(retval->profile, MOJOSHADER_PROFILE_GLSPIRV) == 0) - { - size_t i, max; - int binary_size = retval->output_len - sizeof(SpirvPatchTable); - uint32 *binary = (uint32 *) retval->output; - SpirvPatchTable *table = (SpirvPatchTable *) &retval->output[binary_size]; - - if (table->vpflip.offset) binary[table->vpflip.offset] = table->vpflip.location; - if (table->array_vec4.offset) binary[table->array_vec4.offset] = table->array_vec4.location; - if (table->array_ivec4.offset) binary[table->array_ivec4.offset] = table->array_ivec4.location; - if (table->array_bool.offset) binary[table->array_bool.offset] = table->array_bool.location; - - for (i = 0, max = STATICARRAYLEN(table->samplers); i < max; i++) - { - SpirvPatchEntry entry = table->samplers[i]; - if (entry.offset) - binary[entry.offset] = entry.location; - } // for - } // if -#endif // SUPPORT_PROFILE_SPIRV - - // we don't own these now, retval does. - ctx->ctab.symbols = NULL; - ctx->preshader = NULL; - ctx->ctab.symbol_count = 0; - ctx->mainfn = NULL; - } // else - - retval->error_count = error_count; - retval->errors = errors; - retval->malloc = (ctx->malloc == MOJOSHADER_internal_malloc) ? NULL : ctx->malloc; - retval->free = (ctx->free == MOJOSHADER_internal_free) ? NULL : ctx->free; - retval->malloc_data = ctx->malloc_data; - - return retval; -} // build_parsedata - -static void process_definitions(Context *ctx) -{ - // !!! FIXME: apparently, pre ps_3_0, sampler registers don't need to be - // !!! FIXME: DCL'd before use (default to 2d?). We aren't checking - // !!! FIXME: this at the moment, though. - - determine_constants_arrays(ctx); // in case this hasn't been called yet. - - RegisterList *uitem = &ctx->uniforms; - RegisterList *prev = &ctx->used_registers; - RegisterList *item = prev->next; - - while (item != NULL) - { - RegisterList *next = item->next; - const RegisterType regtype = item->regtype; - const int regnum = item->regnum; - MOJOSHADER_usage usage; - - if (!get_defined_register(ctx, regtype, regnum)) - { - // haven't already dealt with this one. - switch (regtype) - { - // !!! FIXME: I'm not entirely sure this is right... - case REG_TYPE_RASTOUT: - case REG_TYPE_ATTROUT: - case REG_TYPE_TEXCRDOUT: - case REG_TYPE_COLOROUT: - case REG_TYPE_DEPTHOUT: - if (shader_is_vertex(ctx)&&shader_version_atleast(ctx,3,0)) - { - fail(ctx, "vs_3 can't use output registers" - " without declaring them first."); - return; - } // if - - // Apparently this is an attribute that wasn't DCL'd. - // Add it to the attribute list; deal with it later. - if (regtype == REG_TYPE_RASTOUT) - { - if ((RastOutType) regnum == RASTOUT_TYPE_POSITION) - usage = MOJOSHADER_USAGE_POSITION; - else if ((RastOutType) regnum == RASTOUT_TYPE_FOG) - usage = MOJOSHADER_USAGE_FOG; - else if ((RastOutType) regnum==RASTOUT_TYPE_POINT_SIZE) - usage = MOJOSHADER_USAGE_POINTSIZE; - } // if - else if (regtype == REG_TYPE_ATTROUT || - regtype == REG_TYPE_COLOROUT) - { - usage = MOJOSHADER_USAGE_COLOR; - } // else if - else if (regtype == REG_TYPE_TEXCRDOUT) - usage = MOJOSHADER_USAGE_TEXCOORD; - else if (regtype == REG_TYPE_DEPTHOUT) - usage = MOJOSHADER_USAGE_DEPTH; - - add_attribute_register(ctx, regtype, regnum, usage, - regnum, 0xF, 0); - break; - - case REG_TYPE_ADDRESS: - case REG_TYPE_PREDICATE: - case REG_TYPE_TEMP: - case REG_TYPE_LOOP: - case REG_TYPE_LABEL: - ctx->profile->global_emitter(ctx, regtype, regnum); - break; - - case REG_TYPE_CONST: - case REG_TYPE_CONSTINT: - case REG_TYPE_CONSTBOOL: - // separate uniforms into a different list for now. - prev->next = next; - item->next = NULL; - uitem->next = item; - uitem = item; - item = prev; - break; - - case REG_TYPE_INPUT: - // You don't have to dcl_ your inputs in Shader Model 1. - if (!shader_version_atleast(ctx,2,0)) - { - if (shader_is_pixel(ctx)) - { - add_attribute_register(ctx, regtype, regnum, - MOJOSHADER_USAGE_COLOR, regnum, - 0xF, 0); - break; - } // if - else if (shader_is_vertex(ctx)) - { - int index = 0; - shader_model_1_input_usage(regnum, &usage, &index); - if (usage != MOJOSHADER_USAGE_UNKNOWN) - { - add_attribute_register(ctx, regtype, regnum, usage, index, 0xF, 0); - break; - } // if - } // else if - } // if - - // fall through... - - default: - fail(ctx, "BUG: we used a register we don't know how to define."); - } // switch - } // if - - prev = item; - item = next; - } // while - - // okay, now deal with uniform/constant arrays... - for (VariableList *var = ctx->variables; var != NULL; var = var->next) - { - if (var->used) - { - if (var->constant) - { - ctx->profile->const_array_emitter(ctx, var->constant, - var->index, var->count); - } // if - else - { - ctx->profile->array_emitter(ctx, var); - ctx->uniform_float4_count += var->count; - } // else - ctx->uniform_count++; - } // if - } // for - - // ...and uniforms... - for (item = ctx->uniforms.next; item != NULL; item = item->next) - { - int arraysize = -1; - VariableList *var = NULL; - - // check if this is a register contained in an array... - if (item->regtype == REG_TYPE_CONST) - { - for (var = ctx->variables; var != NULL; var = var->next) - { - if (!var->used) - continue; - - const int regnum = item->regnum; - const int lo = var->index; - if ( (regnum >= lo) && (regnum < (lo + var->count)) ) - { - assert(!var->constant); - item->array = var; // used when building parseData. - arraysize = var->count; - break; - } // if - } // for - } // if - - ctx->profile->uniform_emitter(ctx, item->regtype, item->regnum, var); - - if (arraysize < 0) // not part of an array? - { - ctx->uniform_count++; - switch (item->regtype) - { - case REG_TYPE_CONST: ctx->uniform_float4_count++; break; - case REG_TYPE_CONSTINT: ctx->uniform_int4_count++; break; - case REG_TYPE_CONSTBOOL: ctx->uniform_bool_count++; break; - default: break; - } // switch - } // if - } // for - - // ...and samplers... - for (item = ctx->samplers.next; item != NULL; item = item->next) - { - ctx->sampler_count++; - ctx->profile->sampler_emitter(ctx, item->regnum, - (TextureType) item->index, - item->misc != 0); - } // for - - // ...and attributes... - for (item = ctx->attributes.next; item != NULL; item = item->next) - { - ctx->attribute_count++; - ctx->profile->attribute_emitter(ctx, item->regtype, item->regnum, - item->usage, item->index, - item->writemask, item->misc); - } // for -} // process_definitions - - -static void verify_swizzles(Context *ctx) -{ - size_t i; - const char *failmsg = "invalid swizzle"; - for (i = 0; i < ctx->swizzles_count; i++) - { - const MOJOSHADER_swizzle *swiz = &ctx->swizzles[i]; - if (swiz->swizzles[0] > 3) { fail(ctx, failmsg); return; } - if (swiz->swizzles[1] > 3) { fail(ctx, failmsg); return; } - if (swiz->swizzles[2] > 3) { fail(ctx, failmsg); return; } - if (swiz->swizzles[3] > 3) { fail(ctx, failmsg); return; } - } // for -} // verify_swizzles - - -// API entry point... - -// !!! FIXME: -// MSDN: "Shader validation will fail CreatePixelShader on any shader that -// attempts to read from a temporary register that has not been written by a -// previous instruction." (true for ps_1_*, maybe others). Check this. - -const MOJOSHADER_parseData *MOJOSHADER_parse(const char *profile, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount, - MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d) -{ - MOJOSHADER_parseData *retval = NULL; - Context *ctx = NULL; - int rc = 0; - int failed = 0; - - if ( ((m == NULL) && (f != NULL)) || ((m != NULL) && (f == NULL)) ) - return &MOJOSHADER_out_of_mem_data; // supply both or neither. - - ctx = build_context(profile, mainfn, tokenbuf, bufsize, swiz, swizcount, - smap, smapcount, m, f, d); - if (ctx == NULL) - return &MOJOSHADER_out_of_mem_data; - - if (profile == NULL) // build_context allows NULL; check this ourselves. - fail(ctx, "Profile name is NULL"); - - if (isfail(ctx)) - { - retval = build_parsedata(ctx); - destroy_context(ctx); - return retval; - } // if - - verify_swizzles(ctx); - - if (!ctx->mainfn) - ctx->mainfn = StrDup(ctx, "main"); - - // Version token always comes first. - ctx->current_position = 0; - rc = parse_version_token(ctx, profile); - - // drop out now if this definitely isn't bytecode. Saves lots of - // meaningless errors flooding through. - if (rc < 0) - { - retval = build_parsedata(ctx); - destroy_context(ctx); - return retval; - } // if - - if ( ((uint32) rc) > ctx->tokencount ) - { - fail(ctx, "Corrupted or truncated shader"); - ctx->tokencount = rc; - } // if - - adjust_token_position(ctx, rc); - - // parse out the rest of the tokens after the version token... - while (ctx->tokencount > 0) - { - if (!ctx->know_shader_size) - ctx->tokencount = 0xFFFFFFFF; // keep this value obscenely large. - - // reset for each token. - if (isfail(ctx)) - { - failed = 1; - ctx->isfail = 0; - } // if - - rc = parse_token(ctx); - if ( ((uint32) rc) > ctx->tokencount ) - { - fail(ctx, "Corrupted or truncated shader"); - break; - } // if - - adjust_token_position(ctx, rc); - } // while - - ctx->current_position = MOJOSHADER_POSITION_AFTER; - - // for ps_1_*, the output color is written to r0...throw an - // error if this register was never written. This isn't - // important for vertex shaders, or shader model 2+. - if (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 2, 0)) - { - if (!register_was_written(ctx, REG_TYPE_TEMP, 0)) - fail(ctx, "r0 (pixel shader 1.x color output) never written to"); - } // if - - if (!failed) - { - process_definitions(ctx); - failed = isfail(ctx); - } // if - - if (!failed) - ctx->profile->finalize_emitter(ctx); - - ctx->isfail = failed; - retval = build_parsedata(ctx); - destroy_context(ctx); - return retval; -} // MOJOSHADER_parse - - -void MOJOSHADER_freeParseData(const MOJOSHADER_parseData *_data) -{ - MOJOSHADER_parseData *data = (MOJOSHADER_parseData *) _data; - if ((data == NULL) || (data == &MOJOSHADER_out_of_mem_data)) - return; // no-op. - - MOJOSHADER_free f = (data->free == NULL) ? MOJOSHADER_internal_free : data->free; - void *d = data->malloc_data; - int i; - - // we don't f(data->profile), because that's internal static data. - - f((void *) data->mainfn, d); - f((void *) data->output, d); - f((void *) data->constants, d); - f((void *) data->swizzles, d); - - for (i = 0; i < data->error_count; i++) - { - f((void *) data->errors[i].error, d); - f((void *) data->errors[i].filename, d); - } // for - f((void *) data->errors, d); - - for (i = 0; i < data->uniform_count; i++) - f((void *) data->uniforms[i].name, d); - f((void *) data->uniforms, d); - - for (i = 0; i < data->attribute_count; i++) - f((void *) data->attributes[i].name, d); - f((void *) data->attributes, d); - - for (i = 0; i < data->output_count; i++) - f((void *) data->outputs[i].name, d); - f((void *) data->outputs, d); - - for (i = 0; i < data->sampler_count; i++) - f((void *) data->samplers[i].name, d); - f((void *) data->samplers, d); - - free_symbols(f, d, data->symbols, data->symbol_count); - MOJOSHADER_freePreshader(data->preshader); - - f(data, d); -} // MOJOSHADER_freeParseData - - -int MOJOSHADER_version(void) -{ - return MOJOSHADER_VERSION; -} // MOJOSHADER_version - - -const char *MOJOSHADER_changeset(void) -{ - return MOJOSHADER_CHANGESET; -} // MOJOSHADER_changeset - - -int MOJOSHADER_maxShaderModel(const char *profile) -{ - #define PROFILE_SHADER_MODEL(p,v) if (strcmp(profile, p) == 0) return v; - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_D3D, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_BYTECODE, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_HLSL, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_GLSL, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_GLSL120, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_GLSLES, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_ARB1, 2); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_NV2, 2); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_NV3, 2); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_NV4, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_METAL, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_SPIRV, 3); - PROFILE_SHADER_MODEL(MOJOSHADER_PROFILE_GLSPIRV, 3); - #undef PROFILE_SHADER_MODEL - return -1; // unknown profile? -} // MOJOSHADER_maxShaderModel - - -const MOJOSHADER_preshader *MOJOSHADER_parsePreshader(const unsigned char *buf, - const unsigned int buflen, - MOJOSHADER_malloc m, - MOJOSHADER_free f, - void *d) -{ - MOJOSHADER_preshader *retval = NULL; - - // We need just enough Context for allocators and error state. - Context *ctx = build_context(NULL, NULL, buf, buflen, NULL, 0, NULL, 0, m, f, d); - parse_preshader(ctx, ctx->tokens, ctx->tokencount); - if (!isfail(ctx)) - { - retval = ctx->preshader; - ctx->preshader = NULL; // don't let destroy_context() eat the retval. - } // if - - destroy_context(ctx); - return retval; -} // MOJOSHADER_parsePreshader - -void MOJOSHADER_freePreshader(const MOJOSHADER_preshader *preshader) -{ - if (preshader != NULL) - { - unsigned int i, j; - void *d = preshader->malloc_data; - MOJOSHADER_free f = preshader->free; - if (f == NULL) f = MOJOSHADER_internal_free; - - f((void *) preshader->literals, d); - for (i = 0; i < preshader->instruction_count; i++) - { - for (j = 0; j < preshader->instructions[i].operand_count; j++) - f((void *) preshader->instructions[i].operands[j].array_registers, d); - } // for - f((void *) preshader->instructions, d); - f((void *) preshader->registers, d); - free_symbols(f, d, preshader->symbols, preshader->symbol_count); - f((void *) preshader, d); - } // if -} // MOJOSHADER_freePreshader - -// end of mojoshader.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader.h deleted file mode 100644 index 494e60f9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader.h +++ /dev/null @@ -1,4089 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#ifndef _INCL_MOJOSHADER_H_ -#define _INCL_MOJOSHADER_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -/* You can define this if you aren't generating mojoshader_version.h */ -#ifndef MOJOSHADER_NO_VERSION_INCLUDE -#include "mojoshader_version.h" -#endif - -#ifndef MOJOSHADER_VERSION -#define MOJOSHADER_VERSION -1 -#endif - -#ifndef MOJOSHADER_CHANGESET -#define MOJOSHADER_CHANGESET "???" -#endif - -#ifndef DECLSPEC -#ifdef _WIN32 -#define DECLSPEC __declspec(dllexport) -#else -#define DECLSPEC -#endif -#endif - -#ifndef MOJOSHADERCALL -#ifdef _WIN32 -#define MOJOSHADERCALL __cdecl -#else -#define MOJOSHADERCALL -#endif -#endif - -/* -Wpedantic nameless union/struct silencing */ -#ifndef MOJOSHADERNAMELESS -#ifdef __GNUC__ -#define MOJOSHADERNAMELESS __extension__ -#else -#define MOJOSHADERNAMELESS -#endif /* __GNUC__ */ -#endif /* MOJOSHADERNAMELESS */ - -/* - * For determining the version of MojoShader you are using: - * const int compiled_against = MOJOSHADER_VERSION; - * const int linked_against = MOJOSHADER_version(); - * - * The version is a single integer that increments, not a major/minor value. - */ -DECLSPEC int MOJOSHADER_version(void); - -/* - * For determining the revision control changeset of MojoShader you are using: - * const char *compiled_against = MOJOSHADER_CHANGESET; - * const char *linked_against = MOJOSHADER_changeset(); - * - * The version is an arbitrary, null-terminated ASCII string. It is probably - * a hash that represents a revision control changeset, and can't be - * compared to any other string to determine chronology. - * - * Do not attempt to free this string; it's statically allocated. - */ -DECLSPEC const char *MOJOSHADER_changeset(void); - -/* - * These allocators work just like the C runtime's malloc() and free() - * (in fact, they probably use malloc() and free() internally if you don't - * specify your own allocator, but don't rely on that behaviour). - * (data) is the pointer you supplied when specifying these allocator - * callbacks, in case you need instance-specific data...it is passed through - * to your allocator unmolested, and can be NULL if you like. - */ -typedef void *(MOJOSHADERCALL *MOJOSHADER_malloc)(int bytes, void *data); -typedef void (MOJOSHADERCALL *MOJOSHADER_free)(void *ptr, void *data); - - -/* - * These are enum values, but they also can be used in bitmasks, so we can - * test if an opcode is acceptable: if (op->shader_types & ourtype) {} ... - */ -typedef enum -{ - MOJOSHADER_TYPE_UNKNOWN = 0, - MOJOSHADER_TYPE_PIXEL = (1 << 0), - MOJOSHADER_TYPE_VERTEX = (1 << 1), - MOJOSHADER_TYPE_GEOMETRY = (1 << 2), /* (not supported yet.) */ - MOJOSHADER_TYPE_ANY = 0x7FFFFFFF /* used for bitmasks */ -} MOJOSHADER_shaderType; - -/* - * Data types for vertex attribute streams. - */ -typedef enum -{ - MOJOSHADER_ATTRIBUTE_UNKNOWN = -1, /* housekeeping; not returned. */ - MOJOSHADER_ATTRIBUTE_BYTE, - MOJOSHADER_ATTRIBUTE_UBYTE, - MOJOSHADER_ATTRIBUTE_SHORT, - MOJOSHADER_ATTRIBUTE_USHORT, - MOJOSHADER_ATTRIBUTE_INT, - MOJOSHADER_ATTRIBUTE_UINT, - MOJOSHADER_ATTRIBUTE_FLOAT, - MOJOSHADER_ATTRIBUTE_DOUBLE, - MOJOSHADER_ATTRIBUTE_HALF_FLOAT /* MAYBE available in your OpenGL! */ -} MOJOSHADER_attributeType; - -/* - * Data types for uniforms. See MOJOSHADER_uniform for more information. - */ -typedef enum -{ - MOJOSHADER_UNIFORM_UNKNOWN = -1, /* housekeeping value; never returned. */ - MOJOSHADER_UNIFORM_FLOAT, - MOJOSHADER_UNIFORM_INT, - MOJOSHADER_UNIFORM_BOOL -} MOJOSHADER_uniformType; - -/* - * These are the uniforms to be set for a shader. "Uniforms" are what Direct3D - * calls "Constants" ... IDirect3DDevice::SetVertexShaderConstantF() would - * need this data, for example. These integers are register indexes. So if - * index==6 and type==MOJOSHADER_UNIFORM_FLOAT, that means we'd expect a - * 4-float vector to be specified for what would be register "c6" in D3D - * assembly language, before drawing with the shader. - * (array_count) means this is an array of uniforms...this happens in some - * profiles when we see a relative address ("c0[a0.x]", not the usual "c0"). - * In those cases, the shader was built to set some range of constant - * registers as an array. You should set this array with (array_count) - * elements from the constant register file, starting at (index) instead of - * just a single uniform. To be extra difficult, you'll need to fill in the - * correct values from the MOJOSHADER_constant data into the appropriate - * parts of the array, overriding the constant register file. Fun! - * (constant) says whether this is a constant array; these need to be loaded - * once at creation time, from the constant list and not ever updated from - * the constant register file. This is a workaround for limitations in some - * profiles. - * (name) is a profile-specific variable name; it may be NULL if it isn't - * applicable to the requested profile. - */ -typedef struct MOJOSHADER_uniform -{ - MOJOSHADER_uniformType type; - int index; - int array_count; - int constant; - const char *name; -} MOJOSHADER_uniform; - -/* - * These are the constants defined in a shader. These are data values - * hardcoded in a shader (with the DEF, DEFI, DEFB instructions), which - * override your Uniforms. This data is largely for informational purposes, - * since they are compiled in and can't be changed, like Uniforms can be. - * These integers are register indexes. So if index==6 and - * type==MOJOSHADER_UNIFORM_FLOAT, that means we'd expect a 4-float vector - * to be specified for what would be register "c6" in D3D assembly language, - * before drawing with the shader. - * (value) is the value of the constant, unioned by type. - */ -typedef struct MOJOSHADER_constant -{ - MOJOSHADER_uniformType type; - int index; - union - { - float f[4]; /* if type==MOJOSHADER_UNIFORM_FLOAT */ - int i[4]; /* if type==MOJOSHADER_UNIFORM_INT */ - int b; /* if type==MOJOSHADER_UNIFORM_BOOL */ - } value; -} MOJOSHADER_constant; - -/* - * Data types for samplers. See MOJOSHADER_sampler for more information. - */ -typedef enum -{ - MOJOSHADER_SAMPLER_UNKNOWN = -1, /* housekeeping value; never returned. */ - MOJOSHADER_SAMPLER_2D, - MOJOSHADER_SAMPLER_CUBE, - MOJOSHADER_SAMPLER_VOLUME -} MOJOSHADER_samplerType; - -/* - * These are the samplers to be set for a shader. ... - * IDirect3DDevice::SetTexture() would need this data, for example. - * These integers are the sampler "stage". So if index==6 and - * type==MOJOSHADER_SAMPLER_2D, that means we'd expect a regular 2D texture - * to be specified for what would be register "s6" in D3D assembly language, - * before drawing with the shader. - * (name) is a profile-specific variable name; it may be NULL if it isn't - * applicable to the requested profile. - * (texbem) will be non-zero if a TEXBEM opcode references this sampler. This - * is only used in legacy shaders (ps_1_1 through ps_1_3), but it needs some - * special support to work, as we have to load a magic uniform behind the - * scenes to support it. Most code can ignore this field in general, and no - * one has to touch it unless they really know what they're doing. - */ -typedef struct MOJOSHADER_sampler -{ - MOJOSHADER_samplerType type; - int index; - const char *name; - int texbem; -} MOJOSHADER_sampler; - - -/* - * This struct is used if you have to force a sampler to a specific type. - * Generally, you can ignore this, but if you have, say, a ps_1_1 - * shader, you might need to specify what the samplers are meant to be - * to get correct results, as Shader Model 1 samples textures according - * to what is bound to a sampler at the moment instead of what the shader - * is hardcoded to expect. - */ -typedef struct MOJOSHADER_samplerMap -{ - int index; - MOJOSHADER_samplerType type; -} MOJOSHADER_samplerMap; - -/* - * Data types for attributes. See MOJOSHADER_attribute for more information. - */ -typedef enum -{ - MOJOSHADER_USAGE_UNKNOWN = -1, /* housekeeping value; never returned. */ - MOJOSHADER_USAGE_POSITION, /* 0-15 for Vertex, 1-15 for Pixel */ - MOJOSHADER_USAGE_BLENDWEIGHT, /* 0-15 */ - MOJOSHADER_USAGE_BLENDINDICES, /* 0-15 */ - MOJOSHADER_USAGE_NORMAL, /* 0-15 */ - MOJOSHADER_USAGE_POINTSIZE, /* 0-15 */ - MOJOSHADER_USAGE_TEXCOORD, /* 0-15 */ - MOJOSHADER_USAGE_TANGENT, /* 0-15 */ - MOJOSHADER_USAGE_BINORMAL, /* 0-15 */ - MOJOSHADER_USAGE_TESSFACTOR, /* 0 only */ - MOJOSHADER_USAGE_POSITIONT, /* 0-15 for Vertex, 1-15 for Pixel */ - MOJOSHADER_USAGE_COLOR, /* 0-15 but depends on MRT support */ - MOJOSHADER_USAGE_FOG, /* 0-15 */ - MOJOSHADER_USAGE_DEPTH, /* 0-15 */ - MOJOSHADER_USAGE_SAMPLE, - MOJOSHADER_USAGE_TOTAL /* housekeeping value; never returned. */ -} MOJOSHADER_usage; - -/* - * These are the attributes to be set for a shader. "Attributes" are what - * Direct3D calls "Vertex Declarations Usages" ... - * IDirect3DDevice::CreateVertexDeclaration() would need this data, for - * example. Each attribute is associated with an array of data that uses one - * element per-vertex. So if usage==MOJOSHADER_USAGE_COLOR and index==1, that - * means we'd expect a secondary color array to be bound to this shader - * before drawing. - * (name) is a profile-specific variable name; it may be NULL if it isn't - * applicable to the requested profile. - */ -typedef struct MOJOSHADER_attribute -{ - MOJOSHADER_usage usage; - int index; - const char *name; -} MOJOSHADER_attribute; - -/* - * Use this if you want to specify newly-parsed code to swizzle incoming - * data. This can be useful if you know, at parse time, that a shader - * will be processing data on COLOR0 that should be RGBA, but you'll - * be passing it a vertex array full of ARGB instead. - */ -typedef struct MOJOSHADER_swizzle -{ - MOJOSHADER_usage usage; - unsigned int index; - unsigned char swizzles[4]; /* {0,1,2,3} == .xyzw, {2,2,2,2} == .zzzz */ -} MOJOSHADER_swizzle; - - -/* - * MOJOSHADER_symbol data. - * - * These are used to expose high-level information in shader bytecode. - * They associate HLSL variables with registers. This data is used for both - * debugging and optimization. - */ - -typedef enum -{ - MOJOSHADER_SYMREGSET_BOOL=0, - MOJOSHADER_SYMREGSET_INT4, - MOJOSHADER_SYMREGSET_FLOAT4, - MOJOSHADER_SYMREGSET_SAMPLER, - MOJOSHADER_SYMREGSET_TOTAL /* housekeeping value; never returned. */ -} MOJOSHADER_symbolRegisterSet; - -typedef enum -{ - MOJOSHADER_SYMCLASS_SCALAR=0, - MOJOSHADER_SYMCLASS_VECTOR, - MOJOSHADER_SYMCLASS_MATRIX_ROWS, - MOJOSHADER_SYMCLASS_MATRIX_COLUMNS, - MOJOSHADER_SYMCLASS_OBJECT, - MOJOSHADER_SYMCLASS_STRUCT, - MOJOSHADER_SYMCLASS_TOTAL /* housekeeping value; never returned. */ -} MOJOSHADER_symbolClass; - -typedef enum -{ - MOJOSHADER_SYMTYPE_VOID=0, - MOJOSHADER_SYMTYPE_BOOL, - MOJOSHADER_SYMTYPE_INT, - MOJOSHADER_SYMTYPE_FLOAT, - MOJOSHADER_SYMTYPE_STRING, - MOJOSHADER_SYMTYPE_TEXTURE, - MOJOSHADER_SYMTYPE_TEXTURE1D, - MOJOSHADER_SYMTYPE_TEXTURE2D, - MOJOSHADER_SYMTYPE_TEXTURE3D, - MOJOSHADER_SYMTYPE_TEXTURECUBE, - MOJOSHADER_SYMTYPE_SAMPLER, - MOJOSHADER_SYMTYPE_SAMPLER1D, - MOJOSHADER_SYMTYPE_SAMPLER2D, - MOJOSHADER_SYMTYPE_SAMPLER3D, - MOJOSHADER_SYMTYPE_SAMPLERCUBE, - MOJOSHADER_SYMTYPE_PIXELSHADER, - MOJOSHADER_SYMTYPE_VERTEXSHADER, - MOJOSHADER_SYMTYPE_PIXELFRAGMENT, - MOJOSHADER_SYMTYPE_VERTEXFRAGMENT, - MOJOSHADER_SYMTYPE_UNSUPPORTED, - MOJOSHADER_SYMTYPE_TOTAL /* housekeeping value; never returned. */ -} MOJOSHADER_symbolType; - -typedef struct MOJOSHADER_symbolStructMember MOJOSHADER_symbolStructMember; - -typedef struct MOJOSHADER_symbolTypeInfo -{ - MOJOSHADER_symbolClass parameter_class; - MOJOSHADER_symbolType parameter_type; - unsigned int rows; - unsigned int columns; - unsigned int elements; - unsigned int member_count; - MOJOSHADER_symbolStructMember *members; -} MOJOSHADER_symbolTypeInfo; - -struct MOJOSHADER_symbolStructMember -{ - const char *name; - MOJOSHADER_symbolTypeInfo info; -}; - -typedef struct MOJOSHADER_symbol -{ - const char *name; - MOJOSHADER_symbolRegisterSet register_set; - unsigned int register_index; - unsigned int register_count; - MOJOSHADER_symbolTypeInfo info; -} MOJOSHADER_symbol; - - -/* - * These are used with MOJOSHADER_error as special case positions. - */ -#define MOJOSHADER_POSITION_NONE (-3) -#define MOJOSHADER_POSITION_BEFORE (-2) -#define MOJOSHADER_POSITION_AFTER (-1) - -typedef struct MOJOSHADER_error -{ - /* - * Human-readable error, if there is one. Will be NULL if there was no - * error. The string will be UTF-8 encoded, and English only. Most of - * these shouldn't be shown to the end-user anyhow. - */ - const char *error; - - /* - * Filename where error happened. This can be NULL if the information - * isn't available. - */ - const char *filename; - - /* - * Position of error, if there is one. Will be MOJOSHADER_POSITION_NONE if - * there was no error, MOJOSHADER_POSITION_BEFORE if there was an error - * before processing started, and MOJOSHADER_POSITION_AFTER if there was - * an error during final processing. If >= 0, MOJOSHADER_parse() sets - * this to the byte offset (starting at zero) into the bytecode you - * supplied, and MOJOSHADER_assemble(), MOJOSHADER_parseAst(), and - * MOJOSHADER_compile() sets this to a a line number in the source code - * you supplied (starting at one). - */ - int error_position; -} MOJOSHADER_error; - - -/* !!! FIXME: document me. */ -typedef enum MOJOSHADER_preshaderOpcode -{ - MOJOSHADER_PRESHADEROP_NOP, - MOJOSHADER_PRESHADEROP_MOV, - MOJOSHADER_PRESHADEROP_NEG, - MOJOSHADER_PRESHADEROP_RCP, - MOJOSHADER_PRESHADEROP_FRC, - MOJOSHADER_PRESHADEROP_EXP, - MOJOSHADER_PRESHADEROP_LOG, - MOJOSHADER_PRESHADEROP_RSQ, - MOJOSHADER_PRESHADEROP_SIN, - MOJOSHADER_PRESHADEROP_COS, - MOJOSHADER_PRESHADEROP_ASIN, - MOJOSHADER_PRESHADEROP_ACOS, - MOJOSHADER_PRESHADEROP_ATAN, - MOJOSHADER_PRESHADEROP_MIN, - MOJOSHADER_PRESHADEROP_MAX, - MOJOSHADER_PRESHADEROP_LT, - MOJOSHADER_PRESHADEROP_GE, - MOJOSHADER_PRESHADEROP_ADD, - MOJOSHADER_PRESHADEROP_MUL, - MOJOSHADER_PRESHADEROP_ATAN2, - MOJOSHADER_PRESHADEROP_DIV, - MOJOSHADER_PRESHADEROP_CMP, - MOJOSHADER_PRESHADEROP_MOVC, - MOJOSHADER_PRESHADEROP_DOT, - MOJOSHADER_PRESHADEROP_NOISE, - MOJOSHADER_PRESHADEROP_SCALAR_OPS, - MOJOSHADER_PRESHADEROP_MIN_SCALAR = MOJOSHADER_PRESHADEROP_SCALAR_OPS, - MOJOSHADER_PRESHADEROP_MAX_SCALAR, - MOJOSHADER_PRESHADEROP_LT_SCALAR, - MOJOSHADER_PRESHADEROP_GE_SCALAR, - MOJOSHADER_PRESHADEROP_ADD_SCALAR, - MOJOSHADER_PRESHADEROP_MUL_SCALAR, - MOJOSHADER_PRESHADEROP_ATAN2_SCALAR, - MOJOSHADER_PRESHADEROP_DIV_SCALAR, - MOJOSHADER_PRESHADEROP_DOT_SCALAR, - MOJOSHADER_PRESHADEROP_NOISE_SCALAR -} MOJOSHADER_preshaderOpcode; - -typedef enum MOJOSHADER_preshaderOperandType -{ - MOJOSHADER_PRESHADEROPERAND_INPUT, - MOJOSHADER_PRESHADEROPERAND_OUTPUT, - MOJOSHADER_PRESHADEROPERAND_LITERAL, - MOJOSHADER_PRESHADEROPERAND_TEMP -} MOJOSHADER_preshaderOperandType; - -typedef struct MOJOSHADER_preshaderOperand -{ - MOJOSHADER_preshaderOperandType type; - unsigned int index; - unsigned int array_register_count; - unsigned int *array_registers; -} MOJOSHADER_preshaderOperand; - -typedef struct MOJOSHADER_preshaderInstruction -{ - MOJOSHADER_preshaderOpcode opcode; - unsigned int element_count; - unsigned int operand_count; - MOJOSHADER_preshaderOperand operands[4]; -} MOJOSHADER_preshaderInstruction; - -typedef struct MOJOSHADER_preshader -{ - unsigned int literal_count; - double *literals; - unsigned int temp_count; /* scalar, not vector! */ - unsigned int symbol_count; - MOJOSHADER_symbol *symbols; - unsigned int instruction_count; - MOJOSHADER_preshaderInstruction *instructions; - unsigned int register_count; - float *registers; - MOJOSHADER_malloc malloc; - MOJOSHADER_free free; - void *malloc_data; -} MOJOSHADER_preshader; - -/* - * Structure used to return data from parsing of a shader... - */ -/* !!! FIXME: most of these ints should be unsigned. */ -typedef struct MOJOSHADER_parseData -{ - /* - * The number of elements pointed to by (errors). - */ - int error_count; - - /* - * (error_count) elements of data that specify errors that were generated - * by parsing this shader. - * This can be NULL if there were no errors or if (error_count) is zero. - */ - MOJOSHADER_error *errors; - - /* - * The name of the profile used to parse the shader. Will be NULL on error. - */ - const char *profile; - - /* - * Bytes of output from parsing. Most profiles produce a string of source - * code, but profiles that do binary output may not be text at all. - * Will be NULL on error. - */ - const char *output; - - /* - * Byte count for output, not counting any null terminator. Most profiles - * produce an ASCII string of source code (which will be null-terminated - * even though that null char isn't included in output_len), but profiles - * that do binary output may not be text at all. Will be 0 on error. - */ - int output_len; - - /* - * Count of Direct3D instruction slots used. This is meaningless in terms - * of the actual output, as the profile will probably grow or reduce - * the count (or for high-level languages, not have that information at - * all). Also, as with Microsoft's own assembler, this value is just a - * rough estimate, as unpredicable real-world factors make the actual - * value vary at least a little from this count. Still, it can give you - * a rough idea of the size of your shader. Will be zero on error. - */ - int instruction_count; - - /* - * The type of shader we parsed. Will be MOJOSHADER_TYPE_UNKNOWN on error. - */ - MOJOSHADER_shaderType shader_type; - - /* - * The shader's major version. If this was a "vs_3_0", this would be 3. - */ - int major_ver; - - /* - * The shader's minor version. If this was a "ps_1_4", this would be 4. - * Two notes: for "vs_2_x", this is 1, and for "vs_3_sw", this is 255. - */ - int minor_ver; - - /* - * This is the main function name of the shader. This will be the - * caller-supplied string even if a given profile ignores it (GLSL, - * for example, always uses "main" in the shader output out of necessity, - * and Direct3D assembly has no concept of a "main function", etc). - * Otherwise, it'll be a default name chosen by the profile ("main") or - * whatnot. - */ - const char *mainfn; - - /* - * The number of elements pointed to by (uniforms). - */ - int uniform_count; - - /* - * (uniform_count) elements of data that specify Uniforms to be set for - * this shader. See discussion on MOJOSHADER_uniform for details. - * This can be NULL on error or if (uniform_count) is zero. - */ - MOJOSHADER_uniform *uniforms; - - /* - * The number of elements pointed to by (constants). - */ - int constant_count; - - /* - * (constant_count) elements of data that specify constants used in - * this shader. See discussion on MOJOSHADER_constant for details. - * This can be NULL on error or if (constant_count) is zero. - * This is largely informational: constants are hardcoded into a shader. - * The constants that you can set like parameters are in the "uniforms" - * list. - */ - MOJOSHADER_constant *constants; - - /* - * The number of elements pointed to by (samplers). - */ - int sampler_count; - - /* - * (sampler_count) elements of data that specify Samplers to be set for - * this shader. See discussion on MOJOSHADER_sampler for details. - * This can be NULL on error or if (sampler_count) is zero. - */ - MOJOSHADER_sampler *samplers; - - /* !!! FIXME: this should probably be "input" and not "attribute" */ - /* - * The number of elements pointed to by (attributes). - */ - int attribute_count; - - /* !!! FIXME: this should probably be "input" and not "attribute" */ - /* - * (attribute_count) elements of data that specify Attributes to be set - * for this shader. See discussion on MOJOSHADER_attribute for details. - * This can be NULL on error or if (attribute_count) is zero. - */ - MOJOSHADER_attribute *attributes; - - /* - * The number of elements pointed to by (outputs). - */ - int output_count; - - /* - * (output_count) elements of data that specify outputs this shader - * writes to. See discussion on MOJOSHADER_attribute for details. - * This can be NULL on error or if (output_count) is zero. - */ - MOJOSHADER_attribute *outputs; - - /* - * The number of elements pointed to by (swizzles). - */ - int swizzle_count; - - /* !!! FIXME: this should probably be "input" and not "attribute" */ - /* - * (swizzle_count) elements of data that specify swizzles the shader will - * apply to incoming attributes. This is a copy of what was passed to - * MOJOSHADER_parseData(). - * This can be NULL on error or if (swizzle_count) is zero. - */ - MOJOSHADER_swizzle *swizzles; - - /* - * The number of elements pointed to by (symbols). - */ - int symbol_count; - - /* - * (symbol_count) elements of data that specify high-level symbol data - * for the shader. This will be parsed from the CTAB section - * in bytecode, and will be a copy of what you provide to - * MOJOSHADER_assemble(). This data is optional. - * This can be NULL on error or if (symbol_count) is zero. - */ - MOJOSHADER_symbol *symbols; - - /* - * !!! FIXME: document me. - * This can be NULL on error or if no preshader was available. - */ - MOJOSHADER_preshader *preshader; - - /* - * This is the malloc implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_malloc malloc; - - /* - * This is the free implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_free free; - - /* - * This is the pointer you passed as opaque data for your allocator. - */ - void *malloc_data; -} MOJOSHADER_parseData; - - -/* - * Profile string for Direct3D assembly language output. - */ -#define MOJOSHADER_PROFILE_D3D "d3d" - -/* - * Profile string for passthrough of the original bytecode, unchanged. - */ -#define MOJOSHADER_PROFILE_BYTECODE "bytecode" - -/* - * Profile string for HLSL Shader Model 4 output. - */ -#define MOJOSHADER_PROFILE_HLSL "hlsl" - -/* - * Profile string for GLSL: OpenGL high-level shader language output. - */ -#define MOJOSHADER_PROFILE_GLSL "glsl" - -/* - * Profile string for GLSL 1.20: minor improvements to base GLSL spec. - */ -#define MOJOSHADER_PROFILE_GLSL120 "glsl120" - -/* - * Profile string for GLSL ES: minor changes to GLSL output for ES compliance. - */ -#define MOJOSHADER_PROFILE_GLSLES "glsles" - -/* - * Profile string for OpenGL ARB 1.0 shaders: GL_ARB_(vertex|fragment)_program. - */ -#define MOJOSHADER_PROFILE_ARB1 "arb1" - -/* - * Profile string for OpenGL ARB 1.0 shaders with Nvidia 2.0 extensions: - * GL_NV_vertex_program2_option and GL_NV_fragment_program2 - */ -#define MOJOSHADER_PROFILE_NV2 "nv2" - -/* - * Profile string for OpenGL ARB 1.0 shaders with Nvidia 3.0 extensions: - * GL_NV_vertex_program3 and GL_NV_fragment_program2 - */ -#define MOJOSHADER_PROFILE_NV3 "nv3" - -/* - * Profile string for OpenGL ARB 1.0 shaders with Nvidia 4.0 extensions: - * GL_NV_gpu_program4 - */ -#define MOJOSHADER_PROFILE_NV4 "nv4" - -/* - * Profile string for Metal: Apple's lowlevel API's high-level shader language. - */ -#define MOJOSHADER_PROFILE_METAL "metal" - -/* - * Profile string for SPIR-V binary output - */ -#define MOJOSHADER_PROFILE_SPIRV "spirv" - -/* - * Profile string for ARB_gl_spirv-friendly SPIR-V binary output - */ -#define MOJOSHADER_PROFILE_GLSPIRV "glspirv" - -/* - * Determine the highest supported Shader Model for a profile. - */ -DECLSPEC int MOJOSHADER_maxShaderModel(const char *profile); - - -/* - * Parse a compiled Direct3D shader's bytecode. - * - * This is your primary entry point into MojoShader. You need to pass it - * a compiled D3D shader and tell it which "profile" you want to use to - * convert it into useful data. - * - * The available profiles are the set of MOJOSHADER_PROFILE_* defines. - * Note that MojoShader may be built without support for all listed - * profiles (in which case using one here will return with an error). - * - * As parsing requires some memory to be allocated, you may provide a custom - * allocator to this function, which will be used to allocate/free memory. - * They function just like malloc() and free(). We do not use realloc(). - * If you don't care, pass NULL in for the allocator functions. If your - * allocator needs instance-specific data, you may supply it with the - * (d) parameter. This pointer is passed as-is to your (m) and (f) functions. - * - * This function returns a MOJOSHADER_parseData. - * - * This function will never return NULL, even if the system is completely - * out of memory upon entry (in which case, this function returns a static - * MOJOSHADER_parseData object, which is still safe to pass to - * MOJOSHADER_freeParseData()). - * - * You can tell the generated program to swizzle certain inputs. If you know - * that COLOR0 should be RGBA but you're passing in ARGB, you can specify - * a swizzle of { MOJOSHADER_USAGE_COLOR, 0, {1,2,3,0} } to (swiz). If the - * input register in the code would produce reg.ywzx, that swizzle would - * change it to reg.wzxy ... (swiz) can be NULL. - * - * You can force the shader to expect samplers of certain types. Generally - * you don't need this, as Shader Model 2 and later always specify what they - * expect samplers to be (2D, cubemap, etc). Shader Model 1, however, just - * uses whatever is bound to a given sampler at draw time, but this doesn't - * work in OpenGL, etc. In these cases, MojoShader will default to - * 2D texture sampling (or cubemap sampling, in cases where it makes sense, - * like the TEXM3X3TEX opcode), which works 75% of the time, but if you - * really needed something else, you'll need to specify it here. This can - * also be used, at your own risk, to override DCL opcodes in shaders: if - * the shader explicit says 2D, but you want Cubemap, for example, you can - * use this to override. If you aren't sure about any of this stuff, you can - * (and should) almost certainly ignore it: (smap) can be NULL. - * - * (bufsize) is the size in bytes of (tokenbuf). If (bufsize) is zero, - * MojoShader will attempt to figure out the size of the buffer, but you - * risk a buffer overflow if you have corrupt data, etc. Supply the value - * if you can. - * - * You should pass a name for your shader's main function in here, via the - * (mainfn) param. Some profiles need this name to be unique. Passing a NULL - * here will pick a reasonable default, and most profiles will ignore it - * anyhow. As the name of the shader's main function, etc, so make it a - * simple name that would match C's identifier rules. Keep it simple! - * - * This function is thread safe, so long as (m) and (f) are too, and that - * (tokenbuf) remains intact for the duration of the call. This allows you - * to parse several shaders on separate CPU cores at the same time. - */ -DECLSPEC const MOJOSHADER_parseData *MOJOSHADER_parse(const char *profile, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount, - MOJOSHADER_malloc m, - MOJOSHADER_free f, - void *d); - - -/* - * Call this to dispose of parsing results when you are done with them. - * This will call the MOJOSHADER_free function you provided to - * MOJOSHADER_parse multiple times, if you provided one. - * Passing a NULL here is a safe no-op. - * - * This function is thread safe, so long as any allocator you passed into - * MOJOSHADER_parse() is, too. - */ -DECLSPEC void MOJOSHADER_freeParseData(const MOJOSHADER_parseData *data); - - -/* - * You almost certainly don't need this function, unless you absolutely know - * why you need it without hesitation. This is useful if you're doing - * extremely low-level shader work or building specialized tools. - * - * Parse a preshader structure. This expects a buffer of bytes that represents - * the preshader data starting with its magic number token and ending at - * the end of the comment tokens that contain this preshader. Note that it - * does _not_ start at the beginning of the comment tokens. - * - * On success, this will return a MOJOSHADER_preshader. This can be - * deallocated later by calling MOJOSHADER_freePreshader(). On failure, - * this will return NULL. Unlike other MojoShader APIs, this assumes you - * either have a complete and valid buffer of preshader tokens or you have - * incomplete/corrupted data, so there is no explicit error reporting. Please - * note that if the system runs out of memory, this function will also return - * NULL without distinction. - * - * This function is thread safe, so long as any allocator you passed into - * MOJOSHADER_parsePreshader() is, too. - */ -DECLSPEC const MOJOSHADER_preshader *MOJOSHADER_parsePreshader(const unsigned char *buf, - const unsigned int len, - MOJOSHADER_malloc m, - MOJOSHADER_free f, - void *d); - - -/* - * You almost certainly don't need this function, unless you absolutely know - * why you need it without hesitation. This is useful if you're doing - * extremely low-level shader work or building specialized tools. - * - * Call this to dispose of preshader parsing results when you are done with - * them. This will call the MOJOSHADER_free function you provided to - * MOJOSHADER_parsePreshader() multiple times, if you provided one. - * Passing a NULL here is a safe no-op. - * - * You only need to call this function for results from a call to - * MOJOSHADER_parsePreshader(). Other MojoShader structures with a preshader - * field, such as MOJOSHADER_parseData(), should not use this function, as - * the preshader will be deallocated with everything else in - * MOJOSHADER_freeParseData(), etc. - * - * This function is thread safe, so long as any allocator you passed into - * MOJOSHADER_parsePreshader() is, too. - */ -DECLSPEC void MOJOSHADER_freePreshader(const MOJOSHADER_preshader *preshader); - - -/* Preprocessor interface... */ - -/* - * Structure used to pass predefined macros. Maps to D3DXMACRO. - * You can have macro arguments: set identifier to "a(b, c)" or whatever. - */ -typedef struct MOJOSHADER_preprocessorDefine -{ - const char *identifier; - const char *definition; -} MOJOSHADER_preprocessorDefine; - -/* - * Used with the MOJOSHADER_includeOpen callback. Maps to D3DXINCLUDE_TYPE. - */ -typedef enum -{ - MOJOSHADER_INCLUDETYPE_LOCAL, /* local header: #include "blah.h" */ - MOJOSHADER_INCLUDETYPE_SYSTEM /* system header: #include */ -} MOJOSHADER_includeType; - - -/* - * Structure used to return data from preprocessing of a shader... - */ -/* !!! FIXME: most of these ints should be unsigned. */ -typedef struct MOJOSHADER_preprocessData -{ - /* - * The number of elements pointed to by (errors). - */ - int error_count; - - /* - * (error_count) elements of data that specify errors that were generated - * by parsing this shader. - * This can be NULL if there were no errors or if (error_count) is zero. - */ - MOJOSHADER_error *errors; - - /* - * Bytes of output from preprocessing. This is a UTF-8 string. We - * guarantee it to be NULL-terminated. Will be NULL on error. - */ - const char *output; - - /* - * Byte count for output, not counting any null terminator. - * Will be 0 on error. - */ - int output_len; - - /* - * This is the malloc implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_malloc malloc; - - /* - * This is the free implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_free free; - - /* - * This is the pointer you passed as opaque data for your allocator. - */ - void *malloc_data; -} MOJOSHADER_preprocessData; - - -/* - * This callback allows an app to handle #include statements for the - * preprocessor. When the preprocessor sees an #include, it will call this - * function to obtain the contents of the requested file. This is optional; - * the preprocessor will open files directly if no callback is supplied, but - * this allows an app to retrieve data from something other than the - * traditional filesystem (for example, headers packed in a .zip file or - * headers generated on-the-fly). - * - * This function maps to ID3DXInclude::Open() - * - * (inctype) specifies the type of header we wish to include. - * (fname) specifies the name of the file specified on the #include line. - * (parent) is a string of the entire source file containing the include, in - * its original, not-yet-preprocessed state. Note that this is just the - * contents of the specific file, not all source code that the preprocessor - * has seen through other includes, etc. - * (outdata) will be set by the callback to a pointer to the included file's - * contents. The callback is responsible for allocating this however they - * see fit (we provide allocator functions, but you may ignore them). This - * pointer must remain valid until the includeClose callback runs. This - * string does not need to be NULL-terminated. - * (outbytes) will be set by the callback to the number of bytes pointed to - * by (outdata). - * (m),(f), and (d) are the allocator details that the application passed to - * MojoShader. If these were NULL, MojoShader may have replaced them with its - * own internal allocators. - * - * The callback returns zero on error, non-zero on success. - * - * If you supply an includeOpen callback, you must supply includeClose, too. - */ -typedef int (MOJOSHADERCALL *MOJOSHADER_includeOpen)(MOJOSHADER_includeType inctype, - const char *fname, const char *parent, - const char **outdata, unsigned int *outbytes, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d); - -/* - * This callback allows an app to clean up the results of a previous - * includeOpen callback. - * - * This function maps to ID3DXInclude::Close() - * - * (data) is the data that was returned from a previous call to includeOpen. - * It is now safe to deallocate this data. - * (m),(f), and (d) are the same allocator details that were passed to your - * includeOpen callback. - * - * If you supply an includeClose callback, you must supply includeOpen, too. - */ -typedef void (MOJOSHADERCALL *MOJOSHADER_includeClose)(const char *data, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d); - - -/* - * This function is optional. Even if you are dealing with shader source - * code, you don't need to explicitly use the preprocessor, as the compiler - * and assembler will use it behind the scenes. In fact, you probably never - * need this function unless you are debugging a custom tool (or debugging - * MojoShader itself). - * - * Preprocessing roughly follows the syntax of an ANSI C preprocessor, as - * Microsoft's Direct3D assembler and HLSL compiler use this syntax. Please - * note that we try to match the output you'd get from Direct3D's - * preprocessor, which has some quirks if you're expecting output that matches - * a generic C preprocessor. - * - * This function maps to D3DXPreprocessShader(). - * - * (filename) is a NULL-terminated UTF-8 filename. It can be NULL. We do not - * actually access this file, as we obtain our data from (source). This - * string is copied when we need to report errors while processing (source), - * as opposed to errors in a file referenced via the #include directive in - * (source). If this is NULL, then errors will report the filename as NULL, - * too. - * - * (source) is an string of UTF-8 text to preprocess. It does not need to be - * NULL-terminated. - * - * (sourcelen) is the length of the string pointed to by (source), in bytes. - * - * (defines) points to (define_count) preprocessor definitions, and can be - * NULL. These are treated by the preprocessor as if the source code started - * with one #define for each entry you pass in here. - * - * (include_open) and (include_close) let the app control the preprocessor's - * behaviour for #include statements. Both are optional and can be NULL, but - * both must be specified if either is specified. - * - * This will return a MOJOSHADER_preprocessorData. You should pass this - * return value to MOJOSHADER_freePreprocessData() when you are done with - * it. - * - * This function will never return NULL, even if the system is completely - * out of memory upon entry (in which case, this function returns a static - * MOJOSHADER_preprocessData object, which is still safe to pass to - * MOJOSHADER_freePreprocessData()). - * - * As preprocessing requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (d) parameter. This pointer is passed as-is to your (m) and (f) functions. - * - * This function is thread safe, so long as the various callback functions - * are, too, and that the parameters remains intact for the duration of the - * call. This allows you to preprocess several shaders on separate CPU cores - * at the same time. - */ -DECLSPEC const MOJOSHADER_preprocessData *MOJOSHADER_preprocess(const char *filename, - const char *source, unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d); - - -/* - * Call this to dispose of preprocessing results when you are done with them. - * This will call the MOJOSHADER_free function you provided to - * MOJOSHADER_preprocess() multiple times, if you provided one. - * Passing a NULL here is a safe no-op. - * - * This function is thread safe, so long as any allocator you passed into - * MOJOSHADER_preprocess() is, too. - */ -DECLSPEC void MOJOSHADER_freePreprocessData(const MOJOSHADER_preprocessData *data); - - -/* Assembler interface... */ - -/* - * This function is optional. Use this to convert Direct3D shader assembly - * language into bytecode, which can be handled by MOJOSHADER_parse(). - * - * (filename) is a NULL-terminated UTF-8 filename. It can be NULL. We do not - * actually access this file, as we obtain our data from (source). This - * string is copied when we need to report errors while processing (source), - * as opposed to errors in a file referenced via the #include directive in - * (source). If this is NULL, then errors will report the filename as NULL, - * too. - * - * (source) is an UTF-8 string of valid Direct3D shader assembly source code. - * It does not need to be NULL-terminated. - * - * (sourcelen) is the length of the string pointed to by (source), in bytes. - * - * (comments) points to (comment_count) NULL-terminated UTF-8 strings, and - * can be NULL. These strings are inserted as comments in the bytecode. - * - * (symbols) points to (symbol_count) symbol structs, and can be NULL. These - * become a CTAB field in the bytecode. This is optional, but - * MOJOSHADER_parse() needs CTAB data for all arrays used in a program, or - * relative addressing will not be permitted, so you'll want to at least - * provide symbol information for those. The symbol data is 100% trusted - * at this time; it will not be checked to see if it matches what was - * assembled in any way whatsoever. - * - * (defines) points to (define_count) preprocessor definitions, and can be - * NULL. These are treated by the preprocessor as if the source code started - * with one #define for each entry you pass in here. - * - * (include_open) and (include_close) let the app control the preprocessor's - * behaviour for #include statements. Both are optional and can be NULL, but - * both must be specified if either is specified. - * - * This will return a MOJOSHADER_parseData, like MOJOSHADER_parse() would, - * except the profile will be MOJOSHADER_PROFILE_BYTECODE and the output - * will be the assembled bytecode instead of some other language. This output - * can be pushed back through MOJOSHADER_parseData() with a different profile. - * - * This function will never return NULL, even if the system is completely - * out of memory upon entry (in which case, this function returns a static - * MOJOSHADER_parseData object, which is still safe to pass to - * MOJOSHADER_freeParseData()). - * - * As assembling requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (d) parameter. This pointer is passed as-is to your (m) and (f) functions. - * - * This function is thread safe, so long as the various callback functions - * are, too, and that the parameters remains intact for the duration of the - * call. This allows you to assemble several shaders on separate CPU cores - * at the same time. - */ -DECLSPEC const MOJOSHADER_parseData *MOJOSHADER_assemble(const char *filename, - const char *source, unsigned int sourcelen, - const char **comments, unsigned int comment_count, - const MOJOSHADER_symbol *symbols, - unsigned int symbol_count, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d); - - -/* High level shading language support... */ - -/* - * Source profile strings for HLSL: Direct3D High Level Shading Language. - */ -#define MOJOSHADER_SRC_PROFILE_HLSL_VS_1_1 "hlsl_vs_1_1" -#define MOJOSHADER_SRC_PROFILE_HLSL_VS_2_0 "hlsl_vs_2_0" -#define MOJOSHADER_SRC_PROFILE_HLSL_VS_3_0 "hlsl_vs_3_0" -#define MOJOSHADER_SRC_PROFILE_HLSL_PS_1_1 "hlsl_ps_1_1" -#define MOJOSHADER_SRC_PROFILE_HLSL_PS_1_2 "hlsl_ps_1_2" -#define MOJOSHADER_SRC_PROFILE_HLSL_PS_1_3 "hlsl_ps_1_3" -#define MOJOSHADER_SRC_PROFILE_HLSL_PS_1_4 "hlsl_ps_1_4" -#define MOJOSHADER_SRC_PROFILE_HLSL_PS_2_0 "hlsl_ps_2_0" -#define MOJOSHADER_SRC_PROFILE_HLSL_PS_3_0 "hlsl_ps_3_0" - - -/* Abstract Syntax Tree interface... */ - -/* - * ATTENTION: This adds a lot of stuff to the API, but almost everyone can - * ignore this section. Seriously, go ahead and skip over anything that has - * "AST" in it, unless you know why you'd want to use it. - * - * ALSO: This API is still evolving! We make no promises at this time to keep - * source or binary compatibility for the AST pieces. - * - * Important notes: - * - ASTs are the result of parsing the source code: a program that fails to - * compile will often parse successfully. Undeclared variables, - * type incompatibilities, etc, aren't detected at this point. - * - Vector swizzles (the ".xyzw" part of "MyVec4.xyzw") will look like - * structure dereferences. We don't realize these are actually swizzles - * until semantic analysis. - * - MOJOSHADER_astDataType info is not reliable when returned from - * MOJOSHADER_parseAst()! Most of the datatype info will be missing or have - * inaccurate data types. We sort these out during semantic analysis, which - * happens after the AST parsing is complete. A few are filled in, or can - * be deduced fairly trivially by processing several pieces into one. - * It's enough that you can reproduce the original source code, more or - * less, from the AST. - */ - -/* High-level datatypes for AST nodes. */ -typedef enum MOJOSHADER_astDataTypeType -{ - MOJOSHADER_AST_DATATYPE_NONE, - MOJOSHADER_AST_DATATYPE_BOOL, - MOJOSHADER_AST_DATATYPE_INT, - MOJOSHADER_AST_DATATYPE_UINT, - MOJOSHADER_AST_DATATYPE_FLOAT, - MOJOSHADER_AST_DATATYPE_FLOAT_SNORM, - MOJOSHADER_AST_DATATYPE_FLOAT_UNORM, - MOJOSHADER_AST_DATATYPE_HALF, - MOJOSHADER_AST_DATATYPE_DOUBLE, - MOJOSHADER_AST_DATATYPE_STRING, - MOJOSHADER_AST_DATATYPE_SAMPLER_1D, - MOJOSHADER_AST_DATATYPE_SAMPLER_2D, - MOJOSHADER_AST_DATATYPE_SAMPLER_3D, - MOJOSHADER_AST_DATATYPE_SAMPLER_CUBE, - MOJOSHADER_AST_DATATYPE_SAMPLER_STATE, - MOJOSHADER_AST_DATATYPE_SAMPLER_COMPARISON_STATE, - MOJOSHADER_AST_DATATYPE_STRUCT, - MOJOSHADER_AST_DATATYPE_ARRAY, - MOJOSHADER_AST_DATATYPE_VECTOR, - MOJOSHADER_AST_DATATYPE_MATRIX, - MOJOSHADER_AST_DATATYPE_BUFFER, - MOJOSHADER_AST_DATATYPE_FUNCTION, - MOJOSHADER_AST_DATATYPE_USER -} MOJOSHADER_astDataTypeType; -#define MOJOSHADER_AST_DATATYPE_CONST (1 << 31) - -typedef union MOJOSHADER_astDataType MOJOSHADER_astDataType; - -/* This is just part of DataTypeStruct, never appears outside of it. */ -typedef struct MOJOSHADER_astDataTypeStructMember -{ - const MOJOSHADER_astDataType *datatype; - const char *identifier; -} MOJOSHADER_astDataTypeStructMember; - -typedef struct MOJOSHADER_astDataTypeStruct -{ - MOJOSHADER_astDataTypeType type; - const MOJOSHADER_astDataTypeStructMember *members; - int member_count; -} MOJOSHADER_astDataTypeStruct; - -typedef struct MOJOSHADER_astDataTypeArray -{ - MOJOSHADER_astDataTypeType type; - const MOJOSHADER_astDataType *base; - int elements; -} MOJOSHADER_astDataTypeArray; - -typedef MOJOSHADER_astDataTypeArray MOJOSHADER_astDataTypeVector; - -typedef struct MOJOSHADER_astDataTypeMatrix -{ - MOJOSHADER_astDataTypeType type; - const MOJOSHADER_astDataType *base; - int rows; - int columns; -} MOJOSHADER_astDataTypeMatrix; - -typedef struct MOJOSHADER_astDataTypeBuffer -{ - MOJOSHADER_astDataTypeType type; - const MOJOSHADER_astDataType *base; -} MOJOSHADER_astDataTypeBuffer; - -typedef struct MOJOSHADER_astDataTypeFunction -{ - MOJOSHADER_astDataTypeType type; - const MOJOSHADER_astDataType *retval; - const MOJOSHADER_astDataType **params; - int num_params; - int intrinsic; /* non-zero for built-in functions */ -} MOJOSHADER_astDataTypeFunction; - -typedef struct MOJOSHADER_astDataTypeUser -{ - MOJOSHADER_astDataTypeType type; - const MOJOSHADER_astDataType *details; - const char *name; -} MOJOSHADER_astDataTypeUser; - -union MOJOSHADER_astDataType -{ - MOJOSHADER_astDataTypeType type; - MOJOSHADER_astDataTypeArray array; - MOJOSHADER_astDataTypeStruct structure; - MOJOSHADER_astDataTypeVector vector; - MOJOSHADER_astDataTypeMatrix matrix; - MOJOSHADER_astDataTypeBuffer buffer; - MOJOSHADER_astDataTypeUser user; - MOJOSHADER_astDataTypeFunction function; -}; - -/* Structures that make up the parse tree... */ - -typedef enum MOJOSHADER_astNodeType -{ - MOJOSHADER_AST_OP_START_RANGE, /* expression operators. */ - - MOJOSHADER_AST_OP_START_RANGE_UNARY, /* unary operators. */ - MOJOSHADER_AST_OP_PREINCREMENT, - MOJOSHADER_AST_OP_PREDECREMENT, - MOJOSHADER_AST_OP_NEGATE, - MOJOSHADER_AST_OP_COMPLEMENT, - MOJOSHADER_AST_OP_NOT, - MOJOSHADER_AST_OP_POSTINCREMENT, - MOJOSHADER_AST_OP_POSTDECREMENT, - MOJOSHADER_AST_OP_CAST, - MOJOSHADER_AST_OP_END_RANGE_UNARY, - - MOJOSHADER_AST_OP_START_RANGE_BINARY, /* binary operators. */ - MOJOSHADER_AST_OP_COMMA, - MOJOSHADER_AST_OP_MULTIPLY, - MOJOSHADER_AST_OP_DIVIDE, - MOJOSHADER_AST_OP_MODULO, - MOJOSHADER_AST_OP_ADD, - MOJOSHADER_AST_OP_SUBTRACT, - MOJOSHADER_AST_OP_LSHIFT, - MOJOSHADER_AST_OP_RSHIFT, - MOJOSHADER_AST_OP_LESSTHAN, - MOJOSHADER_AST_OP_GREATERTHAN, - MOJOSHADER_AST_OP_LESSTHANOREQUAL, - MOJOSHADER_AST_OP_GREATERTHANOREQUAL, - MOJOSHADER_AST_OP_EQUAL, - MOJOSHADER_AST_OP_NOTEQUAL, - MOJOSHADER_AST_OP_BINARYAND, - MOJOSHADER_AST_OP_BINARYXOR, - MOJOSHADER_AST_OP_BINARYOR, - MOJOSHADER_AST_OP_LOGICALAND, - MOJOSHADER_AST_OP_LOGICALOR, - MOJOSHADER_AST_OP_ASSIGN, - MOJOSHADER_AST_OP_MULASSIGN, - MOJOSHADER_AST_OP_DIVASSIGN, - MOJOSHADER_AST_OP_MODASSIGN, - MOJOSHADER_AST_OP_ADDASSIGN, - MOJOSHADER_AST_OP_SUBASSIGN, - MOJOSHADER_AST_OP_LSHIFTASSIGN, - MOJOSHADER_AST_OP_RSHIFTASSIGN, - MOJOSHADER_AST_OP_ANDASSIGN, - MOJOSHADER_AST_OP_XORASSIGN, - MOJOSHADER_AST_OP_ORASSIGN, - MOJOSHADER_AST_OP_DEREF_ARRAY, - MOJOSHADER_AST_OP_END_RANGE_BINARY, - - MOJOSHADER_AST_OP_START_RANGE_TERNARY, /* ternary operators. */ - MOJOSHADER_AST_OP_CONDITIONAL, - MOJOSHADER_AST_OP_END_RANGE_TERNARY, - - MOJOSHADER_AST_OP_START_RANGE_DATA, /* expression operands. */ - MOJOSHADER_AST_OP_IDENTIFIER, - MOJOSHADER_AST_OP_INT_LITERAL, - MOJOSHADER_AST_OP_FLOAT_LITERAL, - MOJOSHADER_AST_OP_STRING_LITERAL, - MOJOSHADER_AST_OP_BOOLEAN_LITERAL, - MOJOSHADER_AST_OP_END_RANGE_DATA, - - MOJOSHADER_AST_OP_START_RANGE_MISC, /* other expression things. */ - MOJOSHADER_AST_OP_DEREF_STRUCT, - MOJOSHADER_AST_OP_CALLFUNC, - MOJOSHADER_AST_OP_CONSTRUCTOR, - MOJOSHADER_AST_OP_END_RANGE_MISC, - MOJOSHADER_AST_OP_END_RANGE, - - MOJOSHADER_AST_COMPUNIT_START_RANGE, /* things in global scope. */ - MOJOSHADER_AST_COMPUNIT_FUNCTION, - MOJOSHADER_AST_COMPUNIT_TYPEDEF, - MOJOSHADER_AST_COMPUNIT_STRUCT, - MOJOSHADER_AST_COMPUNIT_VARIABLE, - MOJOSHADER_AST_COMPUNIT_END_RANGE, - - MOJOSHADER_AST_STATEMENT_START_RANGE, /* statements in function scope. */ - MOJOSHADER_AST_STATEMENT_EMPTY, - MOJOSHADER_AST_STATEMENT_BREAK, - MOJOSHADER_AST_STATEMENT_CONTINUE, - MOJOSHADER_AST_STATEMENT_DISCARD, - MOJOSHADER_AST_STATEMENT_BLOCK, - MOJOSHADER_AST_STATEMENT_EXPRESSION, - MOJOSHADER_AST_STATEMENT_IF, - MOJOSHADER_AST_STATEMENT_SWITCH, - MOJOSHADER_AST_STATEMENT_FOR, - MOJOSHADER_AST_STATEMENT_DO, - MOJOSHADER_AST_STATEMENT_WHILE, - MOJOSHADER_AST_STATEMENT_RETURN, - MOJOSHADER_AST_STATEMENT_TYPEDEF, - MOJOSHADER_AST_STATEMENT_STRUCT, - MOJOSHADER_AST_STATEMENT_VARDECL, - MOJOSHADER_AST_STATEMENT_END_RANGE, - - MOJOSHADER_AST_MISC_START_RANGE, /* misc. syntactic glue. */ - MOJOSHADER_AST_FUNCTION_PARAMS, - MOJOSHADER_AST_FUNCTION_SIGNATURE, - MOJOSHADER_AST_SCALAR_OR_ARRAY, - MOJOSHADER_AST_TYPEDEF, - MOJOSHADER_AST_PACK_OFFSET, - MOJOSHADER_AST_VARIABLE_LOWLEVEL, - MOJOSHADER_AST_ANNOTATION, - MOJOSHADER_AST_VARIABLE_DECLARATION, - MOJOSHADER_AST_STRUCT_DECLARATION, - MOJOSHADER_AST_STRUCT_MEMBER, - MOJOSHADER_AST_SWITCH_CASE, - MOJOSHADER_AST_ARGUMENTS, - MOJOSHADER_AST_MISC_END_RANGE, - - MOJOSHADER_AST_END_RANGE -} MOJOSHADER_astNodeType; - -typedef struct MOJOSHADER_astNodeInfo -{ - MOJOSHADER_astNodeType type; - const char *filename; - unsigned int line; -} MOJOSHADER_astNodeInfo; - -typedef enum MOJOSHADER_astVariableAttributes -{ - MOJOSHADER_AST_VARATTR_EXTERN = (1 << 0), - MOJOSHADER_AST_VARATTR_NOINTERPOLATION = (1 << 1), - MOJOSHADER_AST_VARATTR_SHARED = (1 << 2), - MOJOSHADER_AST_VARATTR_STATIC = (1 << 3), - MOJOSHADER_AST_VARATTR_UNIFORM = (1 << 4), - MOJOSHADER_AST_VARATTR_VOLATILE = (1 << 5), - MOJOSHADER_AST_VARATTR_CONST = (1 << 6), - MOJOSHADER_AST_VARATTR_ROWMAJOR = (1 << 7), - MOJOSHADER_AST_VARATTR_COLUMNMAJOR = (1 << 8) -} MOJOSHADER_astVariableAttributes; - -typedef enum MOJOSHADER_astIfAttributes -{ - MOJOSHADER_AST_IFATTR_NONE, - MOJOSHADER_AST_IFATTR_BRANCH, - MOJOSHADER_AST_IFATTR_FLATTEN, - MOJOSHADER_AST_IFATTR_IFALL, - MOJOSHADER_AST_IFATTR_IFANY, - MOJOSHADER_AST_IFATTR_PREDICATE, - MOJOSHADER_AST_IFATTR_PREDICATEBLOCK -} MOJOSHADER_astIfAttributes; - -typedef enum MOJOSHADER_astSwitchAttributes -{ - MOJOSHADER_AST_SWITCHATTR_NONE, - MOJOSHADER_AST_SWITCHATTR_FLATTEN, - MOJOSHADER_AST_SWITCHATTR_BRANCH, - MOJOSHADER_AST_SWITCHATTR_FORCECASE, - MOJOSHADER_AST_SWITCHATTR_CALL -} MOJOSHADER_astSwitchAttributes; - -/* You can cast any AST node pointer to this. */ -typedef struct MOJOSHADER_astGeneric -{ - MOJOSHADER_astNodeInfo ast; -} MOJOSHADER_astGeneric; - -typedef struct MOJOSHADER_astExpression -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; -} MOJOSHADER_astExpression; - -typedef struct MOJOSHADER_astArguments -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_ARGUMENTS */ - MOJOSHADER_astExpression *argument; - struct MOJOSHADER_astArguments *next; -} MOJOSHADER_astArguments; - -typedef struct MOJOSHADER_astExpressionUnary -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astExpression *operand; -} MOJOSHADER_astExpressionUnary; - -typedef struct MOJOSHADER_astExpressionBinary -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astExpression *left; - MOJOSHADER_astExpression *right; -} MOJOSHADER_astExpressionBinary; - -typedef struct MOJOSHADER_astExpressionTernary -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astExpression *left; - MOJOSHADER_astExpression *center; - MOJOSHADER_astExpression *right; -} MOJOSHADER_astExpressionTernary; - -/* Identifier indexes aren't available until semantic analysis phase completes. - * It provides a unique id for this identifier's variable. - * It will be negative for global scope, positive for function scope - * (global values are globally unique, function values are only - * unique within the scope of the given function). There's a different - * set of indices if this identifier is a function (positive for - * user-defined functions, negative for intrinsics). - * May be zero for various reasons (unknown identifier, etc). - */ -typedef struct MOJOSHADER_astExpressionIdentifier -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_IDENTIFIER */ - const MOJOSHADER_astDataType *datatype; - const char *identifier; - int index; -} MOJOSHADER_astExpressionIdentifier; - -typedef struct MOJOSHADER_astExpressionIntLiteral -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_INT_LITERAL */ - const MOJOSHADER_astDataType *datatype; /* always AST_DATATYPE_INT */ - int value; -} MOJOSHADER_astExpressionIntLiteral; - -typedef struct MOJOSHADER_astExpressionFloatLiteral -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_FLOAT_LITERAL */ - const MOJOSHADER_astDataType *datatype; /* always AST_DATATYPE_FLOAT */ - double value; -} MOJOSHADER_astExpressionFloatLiteral; - -typedef struct MOJOSHADER_astExpressionStringLiteral -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_STRING_LITERAL */ - const MOJOSHADER_astDataType *datatype; /* always AST_DATATYPE_STRING */ - const char *string; -} MOJOSHADER_astExpressionStringLiteral; - -typedef struct MOJOSHADER_astExpressionBooleanLiteral -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_BOOLEAN_LITERAL */ - const MOJOSHADER_astDataType *datatype; /* always AST_DATATYPE_BOOL */ - int value; /* Always 1 or 0. */ -} MOJOSHADER_astExpressionBooleanLiteral; - -typedef struct MOJOSHADER_astExpressionConstructor -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_CONSTRUCTOR */ - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astArguments *args; -} MOJOSHADER_astExpressionConstructor; - -typedef struct MOJOSHADER_astExpressionDerefStruct -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_DEREF_STRUCT */ - const MOJOSHADER_astDataType *datatype; - /* !!! FIXME: - * "identifier" is misnamed; this might not be an identifier at all: - * x = FunctionThatReturnsAStruct().SomeMember; - */ - MOJOSHADER_astExpression *identifier; - const char *member; - int isswizzle; /* Always 1 or 0. Never set by parseAst()! */ - int member_index; /* Never set by parseAst()! */ -} MOJOSHADER_astExpressionDerefStruct; - -typedef struct MOJOSHADER_astExpressionCallFunction -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_CALLFUNC */ - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astExpressionIdentifier *identifier; - MOJOSHADER_astArguments *args; -} MOJOSHADER_astExpressionCallFunction; - -typedef struct MOJOSHADER_astExpressionCast -{ - MOJOSHADER_astNodeInfo ast; /* Always MOJOSHADER_AST_OP_CAST */ - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astExpression *operand; -} MOJOSHADER_astExpressionCast; - -typedef struct MOJOSHADER_astCompilationUnit -{ - MOJOSHADER_astNodeInfo ast; - struct MOJOSHADER_astCompilationUnit *next; -} MOJOSHADER_astCompilationUnit; - -typedef enum MOJOSHADER_astFunctionStorageClass -{ - MOJOSHADER_AST_FNSTORECLS_NONE, - MOJOSHADER_AST_FNSTORECLS_INLINE -} MOJOSHADER_astFunctionStorageClass; - -typedef enum MOJOSHADER_astInputModifier -{ - MOJOSHADER_AST_INPUTMOD_NONE, - MOJOSHADER_AST_INPUTMOD_IN, - MOJOSHADER_AST_INPUTMOD_OUT, - MOJOSHADER_AST_INPUTMOD_INOUT, - MOJOSHADER_AST_INPUTMOD_UNIFORM -} MOJOSHADER_astInputModifier; - -typedef enum MOJOSHADER_astInterpolationModifier -{ - MOJOSHADER_AST_INTERPMOD_NONE, - MOJOSHADER_AST_INTERPMOD_LINEAR, - MOJOSHADER_AST_INTERPMOD_CENTROID, - MOJOSHADER_AST_INTERPMOD_NOINTERPOLATION, - MOJOSHADER_AST_INTERPMOD_NOPERSPECTIVE, - MOJOSHADER_AST_INTERPMOD_SAMPLE -} MOJOSHADER_astInterpolationModifier; - -typedef struct MOJOSHADER_astFunctionParameters -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astInputModifier input_modifier; - const char *identifier; - const char *semantic; - MOJOSHADER_astInterpolationModifier interpolation_modifier; - MOJOSHADER_astExpression *initializer; - struct MOJOSHADER_astFunctionParameters *next; -} MOJOSHADER_astFunctionParameters; - -typedef struct MOJOSHADER_astFunctionSignature -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - const char *identifier; - MOJOSHADER_astFunctionParameters *params; - MOJOSHADER_astFunctionStorageClass storage_class; - const char *semantic; -} MOJOSHADER_astFunctionSignature; - -typedef struct MOJOSHADER_astScalarOrArray -{ - MOJOSHADER_astNodeInfo ast; - const char *identifier; - int isarray; /* boolean: 1 or 0 */ - MOJOSHADER_astExpression *dimension; -} MOJOSHADER_astScalarOrArray; - -typedef struct MOJOSHADER_astAnnotations -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astExpression *initializer; - struct MOJOSHADER_astAnnotations *next; -} MOJOSHADER_astAnnotations; - -typedef struct MOJOSHADER_astPackOffset -{ - MOJOSHADER_astNodeInfo ast; - const char *ident1; /* !!! FIXME: rename this. */ - const char *ident2; -} MOJOSHADER_astPackOffset; - -typedef struct MOJOSHADER_astVariableLowLevel -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astPackOffset *packoffset; - const char *register_name; -} MOJOSHADER_astVariableLowLevel; - -typedef struct MOJOSHADER_astStructMembers -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - const char *semantic; - MOJOSHADER_astScalarOrArray *details; - MOJOSHADER_astInterpolationModifier interpolation_mod; - struct MOJOSHADER_astStructMembers *next; -} MOJOSHADER_astStructMembers; - -typedef struct MOJOSHADER_astStructDeclaration -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - const char *name; - MOJOSHADER_astStructMembers *members; -} MOJOSHADER_astStructDeclaration; - -typedef struct MOJOSHADER_astVariableDeclaration -{ - MOJOSHADER_astNodeInfo ast; - int attributes; - const MOJOSHADER_astDataType *datatype; - MOJOSHADER_astStructDeclaration *anonymous_datatype; - MOJOSHADER_astScalarOrArray *details; - const char *semantic; - MOJOSHADER_astAnnotations *annotations; - MOJOSHADER_astExpression *initializer; - MOJOSHADER_astVariableLowLevel *lowlevel; - struct MOJOSHADER_astVariableDeclaration *next; -} MOJOSHADER_astVariableDeclaration; - -typedef struct MOJOSHADER_astStatement -{ - MOJOSHADER_astNodeInfo ast; - struct MOJOSHADER_astStatement *next; -} MOJOSHADER_astStatement; - -typedef MOJOSHADER_astStatement MOJOSHADER_astEmptyStatement; -typedef MOJOSHADER_astStatement MOJOSHADER_astBreakStatement; -typedef MOJOSHADER_astStatement MOJOSHADER_astContinueStatement; -typedef MOJOSHADER_astStatement MOJOSHADER_astDiscardStatement; - -/* something enclosed in "{}" braces. */ -typedef struct MOJOSHADER_astBlockStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - MOJOSHADER_astStatement *statements; /* list of child statements. */ -} MOJOSHADER_astBlockStatement; - -typedef struct MOJOSHADER_astReturnStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - MOJOSHADER_astExpression *expr; -} MOJOSHADER_astReturnStatement; - -typedef struct MOJOSHADER_astExpressionStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - MOJOSHADER_astExpression *expr; -} MOJOSHADER_astExpressionStatement; - -typedef struct MOJOSHADER_astIfStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - int attributes; - MOJOSHADER_astExpression *expr; - MOJOSHADER_astStatement *statement; - MOJOSHADER_astStatement *else_statement; -} MOJOSHADER_astIfStatement; - -typedef struct MOJOSHADER_astSwitchCases -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astExpression *expr; - MOJOSHADER_astStatement *statement; - struct MOJOSHADER_astSwitchCases *next; -} MOJOSHADER_astSwitchCases; - -typedef struct MOJOSHADER_astSwitchStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - int attributes; - MOJOSHADER_astExpression *expr; - MOJOSHADER_astSwitchCases *cases; -} MOJOSHADER_astSwitchStatement; - -typedef struct MOJOSHADER_astWhileStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - int unroll; /* # times to unroll, 0 to loop, < 0 == compiler's choice. */ - MOJOSHADER_astExpression *expr; - MOJOSHADER_astStatement *statement; -} MOJOSHADER_astWhileStatement; - -typedef MOJOSHADER_astWhileStatement MOJOSHADER_astDoStatement; - -typedef struct MOJOSHADER_astForStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - int unroll; /* # times to unroll, 0 to loop, < 0 == compiler's choice. */ - MOJOSHADER_astVariableDeclaration *var_decl; /* either this ... */ - MOJOSHADER_astExpression *initializer; /* ... or this will used. */ - MOJOSHADER_astExpression *looptest; - MOJOSHADER_astExpression *counter; - MOJOSHADER_astStatement *statement; -} MOJOSHADER_astForStatement; - -typedef struct MOJOSHADER_astTypedef -{ - MOJOSHADER_astNodeInfo ast; - const MOJOSHADER_astDataType *datatype; - int isconst; /* boolean: 1 or 0 */ - MOJOSHADER_astScalarOrArray *details; -} MOJOSHADER_astTypedef; - -typedef struct MOJOSHADER_astTypedefStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - MOJOSHADER_astTypedef *type_info; -} MOJOSHADER_astTypedefStatement; - -typedef struct MOJOSHADER_astVarDeclStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - MOJOSHADER_astVariableDeclaration *declaration; -} MOJOSHADER_astVarDeclStatement; - -typedef struct MOJOSHADER_astStructStatement -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astStatement *next; - MOJOSHADER_astStructDeclaration *struct_info; -} MOJOSHADER_astStructStatement; - -typedef struct MOJOSHADER_astCompilationUnitFunction -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astCompilationUnit *next; - MOJOSHADER_astFunctionSignature *declaration; - MOJOSHADER_astStatement *definition; - int index; /* unique id. Will be 0 until semantic analysis runs. */ -} MOJOSHADER_astCompilationUnitFunction; - -typedef struct MOJOSHADER_astCompilationUnitTypedef -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astCompilationUnit *next; - MOJOSHADER_astTypedef *type_info; -} MOJOSHADER_astCompilationUnitTypedef; - -typedef struct MOJOSHADER_astCompilationUnitStruct -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astCompilationUnit *next; - MOJOSHADER_astStructDeclaration *struct_info; -} MOJOSHADER_astCompilationUnitStruct; - -typedef struct MOJOSHADER_astCompilationUnitVariable -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astCompilationUnit *next; - MOJOSHADER_astVariableDeclaration *declaration; -} MOJOSHADER_astCompilationUnitVariable; - - -/* this is way cleaner than all the nasty typecasting. */ -typedef union MOJOSHADER_astNode -{ - MOJOSHADER_astNodeInfo ast; - MOJOSHADER_astGeneric generic; - MOJOSHADER_astExpression expression; - MOJOSHADER_astArguments arguments; - MOJOSHADER_astExpressionUnary unary; - MOJOSHADER_astExpressionBinary binary; - MOJOSHADER_astExpressionTernary ternary; - MOJOSHADER_astExpressionIdentifier identifier; - MOJOSHADER_astExpressionIntLiteral intliteral; - MOJOSHADER_astExpressionFloatLiteral floatliteral; - MOJOSHADER_astExpressionStringLiteral stringliteral; - MOJOSHADER_astExpressionBooleanLiteral boolliteral; - MOJOSHADER_astExpressionConstructor constructor; - MOJOSHADER_astExpressionDerefStruct derefstruct; - MOJOSHADER_astExpressionCallFunction callfunc; - MOJOSHADER_astExpressionCast cast; - MOJOSHADER_astCompilationUnit compunit; - MOJOSHADER_astFunctionParameters params; - MOJOSHADER_astFunctionSignature funcsig; - MOJOSHADER_astScalarOrArray soa; - MOJOSHADER_astAnnotations annotations; - MOJOSHADER_astPackOffset packoffset; - MOJOSHADER_astVariableLowLevel varlowlevel; - MOJOSHADER_astStructMembers structmembers; - MOJOSHADER_astStructDeclaration structdecl; - MOJOSHADER_astVariableDeclaration vardecl; - MOJOSHADER_astStatement stmt; - MOJOSHADER_astEmptyStatement emptystmt; - MOJOSHADER_astBreakStatement breakstmt; - MOJOSHADER_astContinueStatement contstmt; - MOJOSHADER_astDiscardStatement discardstmt; - MOJOSHADER_astBlockStatement blockstmt; - MOJOSHADER_astReturnStatement returnstmt; - MOJOSHADER_astExpressionStatement exprstmt; - MOJOSHADER_astIfStatement ifstmt; - MOJOSHADER_astSwitchCases cases; - MOJOSHADER_astSwitchStatement switchstmt; - MOJOSHADER_astWhileStatement whilestmt; - MOJOSHADER_astDoStatement dostmt; - MOJOSHADER_astForStatement forstmt; - MOJOSHADER_astTypedef typdef; - MOJOSHADER_astTypedefStatement typedefstmt; - MOJOSHADER_astVarDeclStatement vardeclstmt; - MOJOSHADER_astStructStatement structstmt; - MOJOSHADER_astCompilationUnitFunction funcunit; - MOJOSHADER_astCompilationUnitTypedef typedefunit; - MOJOSHADER_astCompilationUnitStruct structunit; - MOJOSHADER_astCompilationUnitVariable varunit; -} MOJOSHADER_astNode; - - -/* - * Structure used to return data from parsing of a shader into an AST... - */ -/* !!! FIXME: most of these ints should be unsigned. */ -typedef struct MOJOSHADER_astData -{ - /* - * The number of elements pointed to by (errors). - */ - int error_count; - - /* - * (error_count) elements of data that specify errors that were generated - * by parsing this shader. - * This can be NULL if there were no errors or if (error_count) is zero. - * Note that this will only produce errors for syntax problems. Most of - * the things we expect a compiler to produce errors for--incompatible - * types, unknown identifiers, etc--are not checked at all during - * initial generation of the syntax tree...bogus programs that would - * fail to compile will pass here without error, if they are syntactically - * correct! - */ - MOJOSHADER_error *errors; - - /* - * The name of the source profile used to parse the shader. Will be NULL - * on error. - */ - const char *source_profile; - - /* - * The actual syntax tree. You are responsible for walking it yourself. - * CompilationUnits are always the top of the tree (functions, typedefs, - * global variables, etc). Will be NULL on error. - */ - const MOJOSHADER_astNode *ast; - - /* - * This is the malloc implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_malloc malloc; - - /* - * This is the free implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_free free; - - /* - * This is the pointer you passed as opaque data for your allocator. - */ - void *malloc_data; - - /* - * This is internal data, and not for the application to touch. - */ - void *opaque; -} MOJOSHADER_astData; - - -/* - * You almost certainly don't need this function, unless you absolutely know - * why you need it without hesitation. This is almost certainly only good for - * building code analysis tools on top of. - * - * This is intended to parse HLSL source code, turning it into an abstract - * syntax tree. - * - * (srcprofile) specifies the source language of the shader. You can specify - * a shader model with this, too. See MOJOSHADER_SRC_PROFILE_* constants. - * - * (filename) is a NULL-terminated UTF-8 filename. It can be NULL. We do not - * actually access this file, as we obtain our data from (source). This - * string is copied when we need to report errors while processing (source), - * as opposed to errors in a file referenced via the #include directive in - * (source). If this is NULL, then errors will report the filename as NULL, - * too. - * - * (source) is an UTF-8 string of valid high-level shader source code. - * It does not need to be NULL-terminated. - * - * (sourcelen) is the length of the string pointed to by (source), in bytes. - * - * (defines) points to (define_count) preprocessor definitions, and can be - * NULL. These are treated by the preprocessor as if the source code started - * with one #define for each entry you pass in here. - * - * (include_open) and (include_close) let the app control the preprocessor's - * behaviour for #include statements. Both are optional and can be NULL, but - * both must be specified if either is specified. - * - * This will return a MOJOSHADER_astData. The data supplied here gives the - * application a tree-like structure they can walk to see the layout of - * a given program. When you are done with this data, pass it to - * MOJOSHADER_freeCompileData() to deallocate resources. - * - * This function will never return NULL, even if the system is completely - * out of memory upon entry (in which case, this function returns a static - * MOJOSHADER_astData object, which is still safe to pass to - * MOJOSHADER_freeAstData()). - * - * As parsing requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (d) parameter. This pointer is passed as-is to your (m) and (f) functions. - * - * This function is thread safe, so long as the various callback functions - * are, too, and that the parameters remains intact for the duration of the - * call. This allows you to parse several shaders on separate CPU cores - * at the same time. - */ -DECLSPEC const MOJOSHADER_astData *MOJOSHADER_parseAst(const char *srcprofile, - const char *filename, const char *source, - unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defs, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *d); - - -/* !!! FIXME: expose semantic analysis to the public API? */ - - -/* - * Call this to dispose of AST parsing results when you are done with them. - * This will call the MOJOSHADER_free function you provided to - * MOJOSHADER_parseAst() multiple times, if you provided one. - * Passing a NULL here is a safe no-op. - * - * This function is thread safe, so long as any allocator you passed into - * MOJOSHADER_parseAst() is, too. - */ -DECLSPEC void MOJOSHADER_freeAstData(const MOJOSHADER_astData *data); - - -/* Intermediate Representation interface... */ -/* !!! FIXME: there is currently no way to access the IR via the public API. */ -typedef enum MOJOSHADER_irNodeType -{ - MOJOSHADER_IR_START_RANGE_EXPR, - MOJOSHADER_IR_CONSTANT, - MOJOSHADER_IR_TEMP, - MOJOSHADER_IR_BINOP, - MOJOSHADER_IR_MEMORY, - MOJOSHADER_IR_CALL, - MOJOSHADER_IR_ESEQ, - MOJOSHADER_IR_ARRAY, - MOJOSHADER_IR_CONVERT, - MOJOSHADER_IR_SWIZZLE, - MOJOSHADER_IR_CONSTRUCT, - MOJOSHADER_IR_END_RANGE_EXPR, - - MOJOSHADER_IR_START_RANGE_STMT, - MOJOSHADER_IR_MOVE, - MOJOSHADER_IR_EXPR_STMT, - MOJOSHADER_IR_JUMP, - MOJOSHADER_IR_CJUMP, - MOJOSHADER_IR_SEQ, - MOJOSHADER_IR_LABEL, - MOJOSHADER_IR_DISCARD, - MOJOSHADER_IR_END_RANGE_STMT, - - MOJOSHADER_IR_START_RANGE_MISC, - MOJOSHADER_IR_EXPRLIST, - MOJOSHADER_IR_END_RANGE_MISC, - - MOJOSHADER_IR_END_RANGE -} MOJOSHADER_irNodeType; - -typedef struct MOJOSHADER_irNodeInfo -{ - MOJOSHADER_irNodeType type; - const char *filename; - unsigned int line; -} MOJOSHADER_irNodeInfo; - -typedef struct MOJOSHADER_irExprList MOJOSHADER_irExprList; - -/* - * IR nodes are categorized into Expressions, Statements, and Everything Else. - * You can cast any of them to MOJOSHADER_irGeneric, but this split is - * useful for slightly better type-checking (you can't cleanly assign - * something that doesn't return a value to something that wants one, etc). - * These broader categories are just unions of the simpler types, so the - * real definitions are below all the things they contain (but these - * predeclarations are because the simpler types refer to the broader - * categories). - */ -typedef union MOJOSHADER_irExpression MOJOSHADER_irExpression; /* returns a value. */ -typedef union MOJOSHADER_irStatement MOJOSHADER_irStatement; /* no returned value. */ -typedef union MOJOSHADER_irMisc MOJOSHADER_irMisc; /* Everything Else. */ -typedef union MOJOSHADER_irNode MOJOSHADER_irNode; /* Generic uber-wrapper. */ - -/* You can cast any IR node pointer to this. */ -typedef struct MOJOSHADER_irGeneric -{ - MOJOSHADER_irNodeInfo ir; -} MOJOSHADER_irGeneric; - - -/* These are used for MOJOSHADER_irBinOp */ -typedef enum MOJOSHADER_irBinOpType -{ - MOJOSHADER_IR_BINOP_ADD, - MOJOSHADER_IR_BINOP_SUBTRACT, - MOJOSHADER_IR_BINOP_MULTIPLY, - MOJOSHADER_IR_BINOP_DIVIDE, - MOJOSHADER_IR_BINOP_MODULO, - MOJOSHADER_IR_BINOP_AND, - MOJOSHADER_IR_BINOP_OR, - MOJOSHADER_IR_BINOP_XOR, - MOJOSHADER_IR_BINOP_LSHIFT, - MOJOSHADER_IR_BINOP_RSHIFT, - MOJOSHADER_IR_BINOP_UNKNOWN -} MOJOSHADER_irBinOpType; - -typedef enum MOJOSHADER_irConditionType -{ - MOJOSHADER_IR_COND_EQL, - MOJOSHADER_IR_COND_NEQ, - MOJOSHADER_IR_COND_LT, - MOJOSHADER_IR_COND_GT, - MOJOSHADER_IR_COND_LEQ, - MOJOSHADER_IR_COND_GEQ, - MOJOSHADER_IR_COND_UNKNOWN -} MOJOSHADER_irConditionType; - - -/* MOJOSHADER_irExpression types... */ - -typedef struct MOJOSHADER_irExprInfo -{ - MOJOSHADER_irNodeInfo ir; - MOJOSHADER_astDataTypeType type; - int elements; -} MOJOSHADER_irExprInfo; - -typedef struct MOJOSHADER_irConstant /* Constant value */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_CONSTANT */ - union - { - int ival[16]; - float fval[16]; - } value; -} MOJOSHADER_irConstant; - -typedef struct MOJOSHADER_irTemp /* temp value (not necessarily a register). */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_TEMP */ - int index; -} MOJOSHADER_irTemp; - -typedef struct MOJOSHADER_irBinOp /* binary operator (+, -, etc) */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_BINOP */ - MOJOSHADER_irBinOpType op; - MOJOSHADER_irExpression *left; - MOJOSHADER_irExpression *right; -} MOJOSHADER_irBinOp; - -typedef struct MOJOSHADER_irMemory -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_MEMORY */ - int index; /* not final addresses, just a unique identifier. */ -} MOJOSHADER_irMemory; - -typedef struct MOJOSHADER_irCall -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_CALL */ - int index; - MOJOSHADER_irExprList *args; -} MOJOSHADER_irCall; - -typedef struct MOJOSHADER_irESeq /* statement with result */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_ESEQ */ - MOJOSHADER_irStatement *stmt; /* execute this for side-effects, then... */ - MOJOSHADER_irExpression *expr; /* ...use this for the result. */ -} MOJOSHADER_irESeq; - -typedef struct MOJOSHADER_irArray /* Array dereference. */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_ARRAY */ - MOJOSHADER_irExpression *array; - MOJOSHADER_irExpression *element; -} MOJOSHADER_irArray; - -typedef struct MOJOSHADER_irConvert /* casting between datatypes */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_CONVERT */ - MOJOSHADER_irExpression *expr; -} MOJOSHADER_irConvert; - -typedef struct MOJOSHADER_irSwizzle /* vector swizzle */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_SWIZZLE */ - MOJOSHADER_irExpression *expr; - char channels[4]; -} MOJOSHADER_irSwizzle; - -typedef struct MOJOSHADER_irConstruct /* vector construct from discrete items */ -{ - MOJOSHADER_irExprInfo info; /* Always MOJOSHADER_IR_CONTSTRUCT */ - MOJOSHADER_irExprList *args; -} MOJOSHADER_irConstruct; - -/* Wrap the whole category in a union for type "safety." */ -union MOJOSHADER_irExpression -{ - MOJOSHADER_irNodeInfo ir; - MOJOSHADER_irExprInfo info; - MOJOSHADER_irConstant constant; - MOJOSHADER_irTemp temp; - MOJOSHADER_irBinOp binop; - MOJOSHADER_irMemory memory; - MOJOSHADER_irCall call; - MOJOSHADER_irESeq eseq; - MOJOSHADER_irArray array; - MOJOSHADER_irConvert convert; - MOJOSHADER_irSwizzle swizzle; - MOJOSHADER_irConstruct construct; -}; - -/* MOJOSHADER_irStatement types. */ - -typedef struct MOJOSHADER_irMove /* load/store. */ -{ - MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_MOVE */ - MOJOSHADER_irExpression *dst; /* must result in a temp or mem! */ - MOJOSHADER_irExpression *src; - int writemask; /* for write-masking vector channels. */ -} MOJOSHADER_irMove; - -typedef struct MOJOSHADER_irExprStmt /* evaluate expression, throw it away. */ -{ - MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_EXPR_STMT */ - MOJOSHADER_irExpression *expr; -} MOJOSHADER_irExprStmt; - -typedef struct MOJOSHADER_irJump /* unconditional jump */ -{ - MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_JUMP */ - int label; - /* !!! FIXME: possible label list, for further optimization passes. */ -} MOJOSHADER_irJump; - -typedef struct MOJOSHADER_irCJump /* conditional jump */ -{ - MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_CJUMP */ - MOJOSHADER_irConditionType cond; - MOJOSHADER_irExpression *left; /* if (left cond right) */ - MOJOSHADER_irExpression *right; - int iftrue; /* label id for true case. */ - int iffalse; /* label id for false case. */ -} MOJOSHADER_irCJump; - -typedef struct MOJOSHADER_irSeq /* statement without side effects */ -{ - MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_SEQ */ - MOJOSHADER_irStatement *first; - MOJOSHADER_irStatement *next; -} MOJOSHADER_irSeq; - -typedef struct MOJOSHADER_irLabel /* like a label in assembly language. */ -{ - MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_LABEL */ - int index; -} MOJOSHADER_irLabel; - -typedef MOJOSHADER_irGeneric MOJOSHADER_irDiscard; /* discard statement. */ - - -/* Wrap the whole category in a union for type "safety." */ -union MOJOSHADER_irStatement -{ - MOJOSHADER_irNodeInfo ir; - MOJOSHADER_irGeneric generic; - MOJOSHADER_irMove move; - MOJOSHADER_irExprStmt expr; - MOJOSHADER_irJump jump; - MOJOSHADER_irCJump cjump; - MOJOSHADER_irSeq seq; - MOJOSHADER_irLabel label; - MOJOSHADER_irDiscard discard; -}; - -/* MOJOSHADER_irMisc types. */ - -struct MOJOSHADER_irExprList -{ - MOJOSHADER_irNodeInfo ir; /* Always MOJOSHADER_IR_EXPRLIST */ - MOJOSHADER_irExpression *expr; - MOJOSHADER_irExprList *next; -}; - -/* Wrap the whole category in a union for type "safety." */ -union MOJOSHADER_irMisc -{ - MOJOSHADER_irNodeInfo ir; - MOJOSHADER_irGeneric generic; - MOJOSHADER_irExprList exprlist; -}; - -/* This is a catchall for all your needs. :) */ -union MOJOSHADER_irNode -{ - MOJOSHADER_irNodeInfo ir; - MOJOSHADER_irGeneric generic; - MOJOSHADER_irExpression expr; - MOJOSHADER_irStatement stmt; - MOJOSHADER_irMisc misc; -}; - - -/* Compiler interface... */ - -/* - * Structure used to return data from parsing of a shader... - */ -/* !!! FIXME: most of these ints should be unsigned. */ -typedef struct MOJOSHADER_compileData -{ - /* - * The number of elements pointed to by (errors). - */ - int error_count; - - /* - * (error_count) elements of data that specify errors that were generated - * by compiling this shader. - * This can be NULL if there were no errors or if (error_count) is zero. - */ - MOJOSHADER_error *errors; - - /* - * The number of elements pointed to by (warnings). - */ - int warning_count; - - /* - * (warning_count) elements of data that specify errors that were - * generated by compiling this shader. - * This can be NULL if there were no errors or if (warning_count) is zero. - */ - MOJOSHADER_error *warnings; - - /* - * The name of the source profile used to compile the shader. Will be NULL - * on error. - */ - const char *source_profile; - - /* - * Bytes of output from compiling. This will be a null-terminated ASCII - * string of D3D assembly source code. - */ - const char *output; - - /* - * Byte count for output, not counting any null terminator. - * Will be 0 on error. - */ - int output_len; - - /* - * The number of elements pointed to by (symbols). - */ - int symbol_count; - - /* - * (symbol_count) elements of data that specify high-level symbol data - * for the shader. This can be used by MOJOSHADER_assemble() to - * generate a CTAB section in bytecode, which is needed by - * MOJOSHADER_parseData() to handle some shaders. This can be NULL on - * error or if (symbol_count) is zero. - */ - MOJOSHADER_symbol *symbols; - - /* - * This is the malloc implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_malloc malloc; - - /* - * This is the free implementation you passed to MOJOSHADER_parse(). - */ - MOJOSHADER_free free; - - /* - * This is the pointer you passed as opaque data for your allocator. - */ - void *malloc_data; -} MOJOSHADER_compileData; - - -/* - * This function is optional. Use this to compile high-level shader programs. - * - * This is intended to turn HLSL source code into D3D assembly code, which - * can then be passed to MOJOSHADER_assemble() to convert it to D3D bytecode - * (which can then be used with MOJOSHADER_parseData() to support other - * shading targets). - * - * (srcprofile) specifies the source language of the shader. You can specify - * a shader model with this, too. See MOJOSHADER_SRC_PROFILE_* constants. - * - * (filename) is a NULL-terminated UTF-8 filename. It can be NULL. We do not - * actually access this file, as we obtain our data from (source). This - * string is copied when we need to report errors while processing (source), - * as opposed to errors in a file referenced via the #include directive in - * (source). If this is NULL, then errors will report the filename as NULL, - * too. - * - * (source) is an UTF-8 string of valid high-level shader source code. - * It does not need to be NULL-terminated. - * - * (sourcelen) is the length of the string pointed to by (source), in bytes. - * - * (defines) points to (define_count) preprocessor definitions, and can be - * NULL. These are treated by the preprocessor as if the source code started - * with one #define for each entry you pass in here. - * - * (include_open) and (include_close) let the app control the preprocessor's - * behaviour for #include statements. Both are optional and can be NULL, but - * both must be specified if either is specified. - * - * This will return a MOJOSHADER_compileData. The data supplied here is - * sufficient to supply to MOJOSHADER_assemble() for further processing. - * When you are done with this data, pass it to MOJOSHADER_freeCompileData() - * to deallocate resources. - * - * This function will never return NULL, even if the system is completely - * out of memory upon entry (in which case, this function returns a static - * MOJOSHADER_compileData object, which is still safe to pass to - * MOJOSHADER_freeCompileData()). - * - * As compiling requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (d) parameter. This pointer is passed as-is to your (m) and (f) functions. - * - * This function is thread safe, so long as the various callback functions - * are, too, and that the parameters remains intact for the duration of the - * call. This allows you to compile several shaders on separate CPU cores - * at the same time. - */ -DECLSPEC const MOJOSHADER_compileData *MOJOSHADER_compile(const char *srcprofile, - const char *filename, const char *source, - unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defs, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *d); - - -/* - * Call this to dispose of compile results when you are done with them. - * This will call the MOJOSHADER_free function you provided to - * MOJOSHADER_compile() multiple times, if you provided one. - * Passing a NULL here is a safe no-op. - * - * This function is thread safe, so long as any allocator you passed into - * MOJOSHADER_compile() is, too. - */ -DECLSPEC void MOJOSHADER_freeCompileData(const MOJOSHADER_compileData *data); - - -/* OpenGL interface... */ - -/* - * Signature for function lookup callbacks. MojoShader will call a function - * you provide to get OpenGL entry points (both standard functions and - * extensions). Through this, MojoShader never links directly to OpenGL, - * but relies on you to provide the implementation. This means you can - * swap in different drivers, or hook functions (log every GL call MojoShader - * makes, etc). - * - * (fnname) is the function name we want the address for ("glBegin" or - * whatever. (data) is a void pointer you provide, if this callback needs - * extra information. If you don't need it, you may specify NULL. - * - * Return the entry point on success, NULL if it couldn't be found. - * Note that this could ask for standard entry points like glEnable(), or - * extensions like glProgramLocalParameterI4ivNV(), so you might need - * to check two places to find the desired entry point, depending on your - * platform (Windows might need to look in OpenGL32.dll and use WGL, etc). - */ -typedef void *(MOJOSHADERCALL *MOJOSHADER_glGetProcAddress)(const char *fnname, void *data); - - -/* - * "Contexts" map to OpenGL contexts...you need one per window, or whatever, - * and need to inform MojoShader when you make a new one current. - * - * "Shaders" refer to individual vertex or pixel programs, and are created - * by "compiling" Direct3D shader bytecode. A vertex and pixel shader are - * "linked" into a "Program" before you can use them to render. - * - * To the calling application, these are all opaque handles. - */ -typedef struct MOJOSHADER_glContext MOJOSHADER_glContext; -typedef struct MOJOSHADER_glShader MOJOSHADER_glShader; -typedef struct MOJOSHADER_glProgram MOJOSHADER_glProgram; - - -/* - * Get a list of available profiles. This will fill in the array (profs) - * with up to (size) pointers of profiles that the current system can handle; - * that is, the profiles are built into MojoShader and the OpenGL extensions - * required for them exist at runtime. This function returns the number of - * available profiles, which may be more, less, or equal to (size). - * - * If there are more than (size) profiles, the (profs) buffer will not - * overflow. You can check the return value for the total number of - * available profiles, allocate more space, and try again if necessary. - * Calling this function with (size) == 0 is legal. - * - * You can only call this AFTER you have successfully built your GL context - * and made it current. This function will lookup the GL functions it needs - * through the callback you supply, via (lookup) and (lookup_d). The lookup - * function is neither stored nor used by MojoShader after this function - * returns, nor are the functions it might look up. - * - * As MojoShader requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (malloc_d) parameter. This pointer is passed as-is to your (m) and (f) - * functions. - * - * You should not free any strings returned from this function; they are - * pointers to internal, probably static, memory. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - */ -DECLSPEC int MOJOSHADER_glAvailableProfiles(MOJOSHADER_glGetProcAddress lookup, - void *lookup_d, - const char **profs, const int size, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d); - - -/* - * Determine the best profile to use for the current system. - * - * You can only call this AFTER you have successfully built your GL context - * and made it current. This function will lookup the GL functions it needs - * through the callback you supply via (lookup) and (lookup_d). The lookup - * function is neither stored nor used by MojoShader after this function - * returns, nor are the functions it might look up. - * - * Returns the name of the "best" profile on success, NULL if none of the - * available profiles will work on this system. "Best" is a relative term, - * but it generally means the best trade off between feature set and - * performance. The selection algorithm may be arbitrary and complex. - * - * As MojoShader requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (malloc_d) parameter. This pointer is passed as-is to your (m) and (f) - * functions. - * - * The returned value is an internal static string, and should not be free()'d - * by the caller. If you get a NULL, calling MOJOSHADER_glGetError() might - * shed some light on why. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - */ -DECLSPEC const char *MOJOSHADER_glBestProfile(MOJOSHADER_glGetProcAddress lookup, - void *lookup_d, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d); - -/* - * Prepare MojoShader to manage OpenGL shaders. - * - * You do not need to call this if all you want is MOJOSHADER_parse(). - * - * You must call this once AFTER you have successfully built your GL context - * and made it current. This function will lookup the GL functions it needs - * through the callback you supply via (lookup) and (lookup_d), after which - * it may call them at any time up until you call - * MOJOSHADER_glDestroyContext(). The lookup function is neither stored nor - * used by MojoShader after this function returns. - * - * (profile) is an OpenGL-specific MojoShader profile, which decides how - * Direct3D bytecode shaders get turned into OpenGL programs, and how they - * are fed to the GL. - * - * (lookup) is a callback that is used to load GL entry points. This callback - * has to look up base GL functions and extension entry points. The pointer - * you supply in (lookup_d) is passed as-is to the callback. - * - * As MojoShader requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (malloc_d) parameter. This pointer is passed as-is to your (m) and (f) - * functions. - * - * Returns a new context on success, NULL on error. If you get a new context, - * you need to make it current before using it with - * MOJOSHADER_glMakeContextCurrent(). - * - * This call is NOT thread safe! It must return success before you may call - * any other MOJOSHADER_gl* function. Also, as most OpenGL implementations - * are not thread safe, you should probably only call this from the same - * thread that created the GL context. - */ -DECLSPEC MOJOSHADER_glContext *MOJOSHADER_glCreateContext(const char *profile, - MOJOSHADER_glGetProcAddress lookup, - void *lookup_d, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d); - -/* - * You must call this before using the context that you got from - * MOJOSHADER_glCreateContext(), and must use it when you switch to a new GL - * context. - * - * You can only have one MOJOSHADER_glContext per actual GL context, or - * undefined behaviour will result. - * - * It is legal to call this with a NULL pointer to make no context current, - * but you need a valid context to be current to use most of MojoShader. - * - * In current times, this allows one context to be current _per thread_, - * as the internal state inside MojoShader is marked thread local. Each - * new thread should call this function before using the context, even if - * other threads have previously set it current. You _also_ have to set - * the OpenGL context itself current for each thread (and have an OpenGL - * implementation that allows that in the first place). - */ -DECLSPEC void MOJOSHADER_glMakeContextCurrent(MOJOSHADER_glContext *ctx); - -/* - * Get any error state we might have picked up. MojoShader will NOT call - * glGetError() internally, but there are other errors we can pick up, - * such as failed shader compilation, etc. - * - * Returns a human-readable string. This string is for debugging purposes, and - * not guaranteed to be localized, coherent, or user-friendly in any way. - * It's for programmers! - * - * The latest error may remain between calls. New errors replace any existing - * error. Don't check this string for a sign that an error happened, check - * return codes instead and use this for explanation when debugging. - * - * Do not free the returned string: it's a pointer to a static internal - * buffer. Do not keep the pointer around, either, as it's likely to become - * invalid as soon as you call into MojoShader again. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call does NOT require a valid MOJOSHADER_glContext to have been made - * current. The error buffer is shared between contexts, so you can get - * error results from a failed MOJOSHADER_glCreateContext(). - */ -DECLSPEC const char *MOJOSHADER_glGetError(void); - -/* - * Get the maximum uniforms a shader can support for the current GL context, - * MojoShader profile, and shader type. You can use this to make decisions - * about what shaders you want to use (for example, a less complicated - * shader may be swapped in for lower-end systems). - * - * Returns the number, or -1 on error. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC int MOJOSHADER_glMaxUniforms(MOJOSHADER_shaderType shader_type); - -/* - * Compile a buffer of Direct3D shader bytecode into an OpenGL shader. - * You still need to link the shader before you may render with it. - * - * (tokenbuf) is a buffer of Direct3D shader bytecode. - * (bufsize) is the size, in bytes, of the bytecode buffer. - * (swiz), (swizcount), (smap), and (smapcount) are passed to - * MOJOSHADER_parse() unmolested. - * - * Returns NULL on error, or a shader handle on success. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Compiled shaders from this function may not be shared between contexts. - */ -DECLSPEC MOJOSHADER_glShader *MOJOSHADER_glCompileShader(const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount); - -/* - * Increments a shader's internal refcount. To decrement the refcount, call - * MOJOSHADER_glDeleteShader(). - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glShaderAddRef(MOJOSHADER_glShader *shader); - -/* - * Get the MOJOSHADER_parseData structure that was produced from the - * call to MOJOSHADER_glCompileShader(). - * - * This data is read-only, and you should NOT attempt to free it. This - * pointer remains valid until the shader is deleted. - */ -DECLSPEC const MOJOSHADER_parseData *MOJOSHADER_glGetShaderParseData( - MOJOSHADER_glShader *shader); -/* - * Link a vertex and pixel shader into an OpenGL program. - * (vshader) or (pshader) can be NULL, to specify that the GL should use the - * fixed-function pipeline instead of the programmable pipeline for that - * portion of the work. You can reuse shaders in various combinations across - * multiple programs, by relinking different pairs. - * - * It is illegal to give a vertex shader for (pshader) or a pixel shader - * for (vshader). - * - * Once you have successfully linked a program, you may render with it. - * - * Returns NULL on error, or a program handle on success. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Linked programs from this function may not be shared between contexts. - */ -DECLSPEC MOJOSHADER_glProgram *MOJOSHADER_glLinkProgram(MOJOSHADER_glShader *vshader, - MOJOSHADER_glShader *pshader); - -/* - * This binds the program (using, for example, glUseProgramObjectARB()), and - * disables all the client-side arrays so we can reset them with new values - * if appropriate. - * - * Call with NULL to disable the programmable pipeline and all enabled - * client-side arrays. - * - * After binding a program, you should update any uniforms you care about - * with MOJOSHADER_glSetVertexShaderUniformF() (etc), set any vertex arrays - * you want to use with MOJOSHADER_glSetVertexAttribute(), and finally call - * MOJOSHADER_glProgramReady() to commit everything to the GL. Then you may - * begin drawing through standard GL entry points. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glBindProgram(MOJOSHADER_glProgram *program); - -/* - * This binds individual shaders as if you had linked them with - * MOJOSHADER_glLinkProgram(), and used MOJOSHADER_glBindProgram() on the - * linked result. - * - * MojoShader will handle linking behind the scenes, and keep a cache of - * programs linked here. Programs are removed from this cache when one of the - * invidual shaders in it is deleted, otherwise they remain cached so future - * calls to this function don't need to relink a previously-used shader - * grouping. - * - * This function is for convenience, as the API is closer to how Direct3D - * works, and retrofitting linking into your app can be difficult; - * frequently, you just end up building your own cache, anyhow. - * - * Calling with all shaders set to NULL is equivalent to calling - * MOJOSHADER_glBindProgram(NULL). - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glBindShaders(MOJOSHADER_glShader *vshader, - MOJOSHADER_glShader *pshader); - -/* - * This queries for the shaders currently bound to the active context. - * - * This function is only for convenience, specifically for compatibility with - * the effects API. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glGetBoundShaders(MOJOSHADER_glShader **vshader, - MOJOSHADER_glShader **pshader); - -/* - * Set a floating-point uniform value (what Direct3D calls a "constant"). - * - * There is a single array of 4-float "registers" shared by all vertex shaders. - * This is the "c" register file in Direct3D (c0, c1, c2, etc...) - * MojoShader will take care of synchronizing this internal array with the - * appropriate variables in the GL shaders. - * - * (idx) is the index into the internal array: 0 is the first four floats, - * 1 is the next four, etc. - * (data) is a pointer to (vec4count*4) floats. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetVertexShaderUniformF(unsigned int idx, const float *data, - unsigned int vec4count); - -/* - * Retrieve a floating-point uniform value (what Direct3D calls a "constant"). - * - * There is a single array of 4-float "registers" shared by all vertex shaders. - * This is the "c" register file in Direct3D (c0, c1, c2, etc...) - * MojoShader will take care of synchronizing this internal array with the - * appropriate variables in the GL shaders. - * - * (idx) is the index into the internal array: 0 is the first four floats, - * 1 is the next four, etc. - * (data) is a pointer to space for (vec4count*4) floats. - * (data) will be filled will current values in the register file. Results - * are undefined if you request data past the end of the register file or - * previously uninitialized registers. - * - * This is a "fast" call; we're just reading from internal memory. We do not - * query the GPU or the GL for this information. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glGetVertexShaderUniformF(unsigned int idx, float *data, - unsigned int vec4count); - - -/* - * Set an integer uniform value (what Direct3D calls a "constant"). - * - * There is a single array of 4-int "registers" shared by all vertex shaders. - * This is the "i" register file in Direct3D (i0, i1, i2, etc...) - * MojoShader will take care of synchronizing this internal array with the - * appropriate variables in the GL shaders. - * - * (idx) is the index into the internal array: 0 is the first four ints, - * 1 is the next four, etc. - * (data) is a pointer to (ivec4count*4) ints. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetVertexShaderUniformI(unsigned int idx, const int *data, - unsigned int ivec4count); - -/* - * Retrieve an integer uniform value (what Direct3D calls a "constant"). - * - * There is a single array of 4-int "registers" shared by all vertex shaders. - * This is the "i" register file in Direct3D (i0, i1, i2, etc...) - * MojoShader will take care of synchronizing this internal array with the - * appropriate variables in the GL shaders. - * - * (idx) is the index into the internal array: 0 is the first four ints, - * 1 is the next four, etc. - * (data) is a pointer to space for (ivec4count*4) ints. - * (data) will be filled will current values in the register file. Results - * are undefined if you request data past the end of the register file or - * previously uninitialized registers. - * - * This is a "fast" call; we're just reading from internal memory. We do not - * query the GPU or the GL for this information. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glGetVertexShaderUniformI(unsigned int idx, int *data, - unsigned int ivec4count); - -/* - * Set a boolean uniform value (what Direct3D calls a "constant"). - * - * There is a single array of "registers" shared by all vertex shaders. - * This is the "b" register file in Direct3D (b0, b1, b2, etc...) - * MojoShader will take care of synchronizing this internal array with the - * appropriate variables in the GL shaders. - * - * Unlike the float and int counterparts, booleans are single values, not - * four-element vectors...so idx==1 is the second boolean in the internal - * array, not the fifth. - * - * Non-zero values are considered "true" and zero is considered "false". - * - * (idx) is the index into the internal array. - * (data) is a pointer to (bcount) ints. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetVertexShaderUniformB(unsigned int idx, const int *data, - unsigned int bcount); - -/* - * Retrieve a boolean uniform value (what Direct3D calls a "constant"). - * - * There is a single array of "registers" shared by all vertex shaders. - * This is the "b" register file in Direct3D (b0, b1, b2, etc...) - * MojoShader will take care of synchronizing this internal array with the - * appropriate variables in the GL shaders. - * - * Unlike the float and int counterparts, booleans are single values, not - * four-element vectors...so idx==1 is the second boolean in the internal - * array, not the fifth. - * - * Non-zero values are considered "true" and zero is considered "false". - * This function will always return true values as 1, regardless of what - * non-zero integer you originally used to set the registers. - * - * (idx) is the index into the internal array. - * (data) is a pointer to space for (bcount) ints. - * (data) will be filled will current values in the register file. Results - * are undefined if you request data past the end of the register file or - * previously uninitialized registers. - * - * This is a "fast" call; we're just reading from internal memory. We do not - * query the GPU or the GL for this information. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glGetVertexShaderUniformB(unsigned int idx, int *data, - unsigned int bcount); - -/* - * The equivalent of MOJOSHADER_glSetVertexShaderUniformF() for pixel - * shaders. Other than using a different internal array that is specific - * to pixel shaders, this functions just like its vertex array equivalent. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetPixelShaderUniformF(unsigned int idx, const float *data, - unsigned int vec4count); - - -/* - * The equivalent of MOJOSHADER_glGetVertexShaderUniformF() for pixel - * shaders. Other than using a different internal array that is specific - * to pixel shaders, this functions just like its vertex array equivalent. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glGetPixelShaderUniformF(unsigned int idx, float *data, - unsigned int vec4count); - - -/* - * The equivalent of MOJOSHADER_glSetVertexShaderUniformI() for pixel - * shaders. Other than using a different internal array that is specific - * to pixel shaders, this functions just like its vertex array equivalent. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetPixelShaderUniformI(unsigned int idx, const int *data, - unsigned int ivec4count); - - -/* - * The equivalent of MOJOSHADER_glGetVertexShaderUniformI() for pixel - * shaders. Other than using a different internal array that is specific - * to pixel shaders, this functions just like its vertex array equivalent. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glGetPixelShaderUniformI(unsigned int idx, int *data, - unsigned int ivec4count); - -/* - * The equivalent of MOJOSHADER_glSetVertexShaderUniformB() for pixel - * shaders. Other than using a different internal array that is specific - * to pixel shaders, this functions just like its vertex array equivalent. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetPixelShaderUniformB(unsigned int idx, const int *data, - unsigned int bcount); - -/* - * The equivalent of MOJOSHADER_glGetVertexShaderUniformB() for pixel - * shaders. Other than using a different internal array that is specific - * to pixel shaders, this functions just like its vertex array equivalent. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Uniforms are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glGetPixelShaderUniformB(unsigned int idx, int *data, - unsigned int bcount); - -/* - * Fills register pointers with pointers that are directly used to push uniform - * data to the GL shader context. - * - * This function is really just for the effects API, you should NOT be using - * this unless you know every single line of MojoShader from memory. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glMapUniformBufferMemory(float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb); - -/* - * Tells the context that you are done with the memory mapped by - * MOJOSHADER_glMapUniformBufferMemory(). - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glUnmapUniformBufferMemory(); - -/* - * Set up the vector for the TEXBEM opcode. Most apps can ignore this API. - * - * Shader Model 1.1 through 1.3 had an instruction for "fake bump mapping" - * called TEXBEM. To use it, you had to set some sampler states, - * D3DTSS_BUMPENVMATxx, which would be referenced by the opcode. - * - * This functionality was removed from Shader Model 1.4 and later, because - * it was special-purpose and limited. The functionality could be built on - * more general opcodes, and the sampler state could be supplied in a more - * general uniform. - * - * However, to support this opcode, we supply a way to specify that sampler - * state, and the OpenGL glue code does the right thing to pass that - * information to the shader. - * - * This call maps to IDirect3DDevice::SetTextureStageState() with the - * D3DTSS_BUMPENVMAT00, D3DTSS_BUMPENVMAT01, D3DTSS_BUMPENVMAT10, - * D3DTSS_BUMPENVMAT11, D3DTSS_BUMPENVLSCALE, and D3DTSS_BUMPENVLOFFSET - * targets. This is only useful for Shader Model < 1.4 pixel shaders, if - * they use the TEXBEM or TEXBEML opcode. If you aren't sure, you don't need - * this function. - * - * Like the rest of your uniforms, you must call MOJOSHADER_glProgramReady() - * between setting new values and drawing with them. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * These values are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetLegacyBumpMapEnv(unsigned int sampler, float mat00, - float mat01, float mat10, float mat11, - float lscale, float loffset); - -/* - * Return the location of a vertex attribute for the currently-bound program. - * - * (usage) and (index) map to Direct3D vertex declaration values: COLOR1 would - * be MOJOSHADER_USAGE_COLOR and 1. - * - * The return value is the index of the attribute to be sent to - * glVertexAttribPointer, or -1 if the stream is not used. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC int MOJOSHADER_glGetVertexAttribLocation(MOJOSHADER_usage usage, int index); - -/* - * Connect a client-side array to the currently-bound program. - * - * (usage) and (index) map to Direct3D vertex declaration values: COLOR1 would - * be MOJOSHADER_USAGE_COLOR and 1. - * - * The caller should bind VBOs before this call and treat (ptr) as an offset, - * if appropriate. - * - * MojoShader will figure out where to plug this stream into the - * currently-bound program, and enable the appropriate client-side array. - * - * (size), (type), (normalized), (stride), and (ptr) correspond to - * glVertexAttribPointer()'s parameters (in most cases, these get passed - * unmolested to that very entry point during this function). - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Vertex attributes are not shared between contexts. - */ - /* !!! FIXME: this should probably be "input" and not "attribute" */ - /* !!! FIXME: or maybe "vertex array" or something. */ -DECLSPEC void MOJOSHADER_glSetVertexAttribute(MOJOSHADER_usage usage, - int index, unsigned int size, - MOJOSHADER_attributeType type, - int normalized, unsigned int stride, - const void *ptr); - -/* - * Modify the rate at which this vertex attribute advances during instanced - * rendering. - * - * This should be called alongside glSetVertexAttribute, as this does not flag - * the vertex array as being in use. This just calls glVertexAttribDivisorARB. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - * - * Vertex attributes are not shared between contexts. - */ -DECLSPEC void MOJOSHADER_glSetVertexAttribDivisor(MOJOSHADER_usage usage, - int index, unsigned int divisor); - -/* - * Inform MojoShader that it should commit any pending state to the GL. This - * must be called after you bind a program and update any inputs, right - * before you start drawing, so any outstanding changes made to the shared - * constants array (etc) can propagate to the shader during this call. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glProgramReady(void); - -/* - * Provide information about the current viewport to the prepared shader - * program. - * - * There are numerous components of OpenGL and Direct3D where the coordinate - * systems do not match, and so the vertex/pixel shaders have to be modified to - * compensate for these mismatches (for example, gl_FragCoord requires some - * additional math on the Y coordinate to match vPos when rendering to the - * backbuffer). Call this after MOJOSHADER_glProgramReady to apply all of the - * relevant coordinate fixups at once. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glProgramViewportInfo(int viewportW, int viewportH, - int backbufferW, int backbufferH, - int renderTargetBound); - -/* - * Free the resources of a linked program. This will delete the GL object - * and free memory. - * - * If the program is currently bound by MOJOSHADER_glBindProgram(), it will - * be deleted as soon as it becomes unbound. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glDeleteProgram(MOJOSHADER_glProgram *program); - -/* - * Free the resources of a compiled shader. This will delete the GL object - * and free memory. - * - * If the shader is currently referenced by a linked program (or is currently - * bound with MOJOSHADER_glBindShaders()), it will be deleted as soon as all - * referencing programs are deleted and it is no longer bound, too. - * - * This call is NOT thread safe! As most OpenGL implementations are not thread - * safe, you should probably only call this from the same thread that created - * the GL context. - * - * This call requires a valid MOJOSHADER_glContext to have been made current, - * or it will crash your program. See MOJOSHADER_glMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_glDeleteShader(MOJOSHADER_glShader *shader); - -/* - * Deinitialize MojoShader's OpenGL shader management. - * - * You must call this once, while your GL context (not MojoShader context) is - * still current, if you previously had a successful call to - * MOJOSHADER_glCreateContext(). This should be the last MOJOSHADER_gl* - * function you call until you've prepared a context again. - * - * This will clean up resources previously allocated, and may call into the GL. - * - * This will not clean up shaders and programs you created! Please call - * MOJOSHADER_glDeleteShader() and MOJOSHADER_glDeleteProgram() to clean - * those up before calling this function! - * - * This function destroys the MOJOSHADER_glContext you pass it. If it's the - * current context, then no context will be current upon return. - * - * This call is NOT thread safe! There must not be any other MOJOSHADER_gl* - * functions running when this is called. Also, as most OpenGL implementations - * are not thread safe, you should probably only call this from the same - * thread that created the GL context. - */ -DECLSPEC void MOJOSHADER_glDestroyContext(MOJOSHADER_glContext *ctx); - - -/* Metal interface... */ - -typedef struct MOJOSHADER_mtlContext MOJOSHADER_mtlContext; -typedef struct MOJOSHADER_mtlShader MOJOSHADER_mtlShader; - -/* - * Prepare MojoShader to manage Metal shaders. - * - * This is really just for the effects framework. Don't call this unless - * you know for sure that you need it. - * - * You must call this only once, AFTER you have created your MTLDevice. - * This function will lookup the Objective-C selectors it needs, after which - * it may call them at any time until you call MOJOSHADER_mtlDestroyContext(). - * - * (device) refers to the active MTLDevice, cast from id to void*. - * - * As MojoShader requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (malloc_d) parameter. This pointer is passed as-is to your (m) and (f) - * functions. - * - * Returns a new context on success, NULL on error. If you get a new context, - * you need to make it current before using it with - * MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC MOJOSHADER_mtlContext *MOJOSHADER_mtlCreateContext(void *mtlDevice, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d); - -/* - * You must call this before using the context that you got from - * MOJOSHADER_mtlCreateContext(), and must use it when you switch to a new - * context. - * - * It is legal to call this with a NULL pointer to make no context current, - * but you need a valid context to be current to use most of MojoShader. - */ -DECLSPEC void MOJOSHADER_mtlMakeContextCurrent(MOJOSHADER_mtlContext *ctx); - -/* - * Transform a buffer of Direct3D shader bytecode into a struct containing - * Metal shader metadata. - * - * This function is only for convenience, specifically for compatibility with - * the effects API. - * - * Despite the name, this does NOT compile a shader! The actual compilation - * happens inside MOJOSHADER_mtlCompileLibrary, which batch-compiles an effect - * into a single MTLLibrary. - * - * (mainfn) is the name of the shader's main function. - * (tokenbuf) is a buffer of Direct3D shader bytecode. - * (bufsize) is the size, in bytes, of the bytecode buffer. - * (swiz), (swizcount), (smap), and (smapcount) are passed to - * MOJOSHADER_parse() unmolested. - * - * Returns NULL on error, or a shader handle on success. - * - * This call requires a valid MOJOSHADER_mtlContext to have been made current, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC MOJOSHADER_mtlShader *MOJOSHADER_mtlCompileShader(const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount); - -/* - * Increments a shader's internal refcount. To decrement the refcount, call - * MOJOSHADER_mtlDeleteShader(). - */ -DECLSPEC void MOJOSHADER_mtlShaderAddRef(MOJOSHADER_mtlShader *shader); - -/* - * Get the MOJOSHADER_parseData structure that was produced from the - * call to MOJOSHADER_mtlCompileShader(). - * - * This data is read-only, and you should NOT attempt to free it. This - * pointer remains valid until the shader is deleted. - */ -DECLSPEC const MOJOSHADER_parseData *MOJOSHADER_mtlGetShaderParseData( - MOJOSHADER_mtlShader *shader); - -/* - * This "binds" individual shaders, which effectively means the context - * will store these shaders for later retrieval. No actual binding or - * pipeline creation is performed. - * - * This function is only for convenience, specifically for compatibility with - * the effects API. - * - * This call requires a valid MOJOSHADER_mtlContext to have been made current, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_mtlBindShaders(MOJOSHADER_mtlShader *vshader, - MOJOSHADER_mtlShader *pshader); - -/* - * This queries for the shaders currently bound to the active context. - * - * This function is only for convenience, specifically for compatibility with - * the effects API. - * - * This call requires a valid MOJOSHADER_mtlContext to have been created, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_mtlGetBoundShaders(MOJOSHADER_mtlShader **vshader, - MOJOSHADER_mtlShader **pshader); - -/* - * Fills register pointers with pointers that are directly used to push uniform - * data to the Metal shader context. - * - * This function is really just for the effects API, you should NOT be using - * this unless you know every single line of MojoShader from memory. - * - * This call requires a valid MOJOSHADER_mtlContext to have been made current, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_mtlMapUniformBufferMemory(float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb); - -/* - * Tells the context that you are done with the memory mapped by - * MOJOSHADER_mtlMapUniformBufferMemory(). - * - * This call requires a valid MOJOSHADER_mtlContext to have been made current, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_mtlUnmapUniformBufferMemory(); - -/* - * This queries for the uniform buffer and byte offsets for each of the - * currently bound shaders. - * - * This function is only for convenience, specifically for compatibility with - * the effects API. - * - * This call requires a valid MOJOSHADER_mtlContext to have been made current, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_mtlGetUniformData(void **buf, int *voff, int *poff); - -/* - * Get the MTLFunction* from the given MOJOSHADER_mtlShader. - */ -DECLSPEC void *MOJOSHADER_mtlGetFunctionHandle(MOJOSHADER_mtlShader *shader); - -/* - * Resets buffer offsets to prepare for the next frame. - * - * Always call this after submitting the final command buffer for a frame! - */ -DECLSPEC void MOJOSHADER_mtlEndFrame(void); - -/* - * Return the location of a vertex attribute for the given shader. - * - * (usage) and (index) map to Direct3D vertex declaration values: COLOR1 would - * be MOJOSHADER_USAGE_COLOR and 1. - * - * The return value is the index of the attribute to be used to create - * a MTLVertexAttributeDescriptor, or -1 if the stream is not used. - */ -DECLSPEC int MOJOSHADER_mtlGetVertexAttribLocation(MOJOSHADER_mtlShader *vert, - MOJOSHADER_usage usage, int index); - -/* - * Get any error state we might have picked up, such as failed shader - * compilation. - * - * Returns a human-readable string. This string is for debugging purposes, and - * not guaranteed to be localized, coherent, or user-friendly in any way. - * It's for programmers! - * - * The latest error may remain between calls. New errors replace any existing - * error. Don't check this string for a sign that an error happened, check - * return codes instead and use this for explanation when debugging. - * - * This call does NOT require a valid MOJOSHADER_mtlContext to have been made - * current. The error buffer is shared between contexts, so you can get - * error results from a failed MOJOSHADER_mtlCreateContext(). - * - * Do not free the returned string: it's a pointer to a static internal - * buffer. Do not keep the pointer around, either, as it's likely to become - * invalid as soon as you call into MojoShader again. - */ -DECLSPEC const char *MOJOSHADER_mtlGetError(void); - -/* - * Release the given MTLLibrary and all MTLFunctions it contains. - * - * This does NOT free MOJOSHADER_mtlShaders! Call MOJOSHADER_mtlDeleteShader() - * on all the shaders of the library before you call this. - * - * This call requires a valid MOJOSHADER_mtlContext to have been made current, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_mtlDeleteLibrary(void *library); - -/* - * Free the resources of a compiled shader. This will delete the MojoShader - * shader struct and free memory. - * - * This does NOT release the actual shader! The shader data belongs to an - * MTLLibrary that must be deleted with MOJOSHADER_mtlDeleteLibrary(). - * - * This call requires a valid MOJOSHADER_mtlContext to have been made current, - * or it will crash your program. See MOJOSHADER_mtlMakeContextCurrent(). - */ -DECLSPEC void MOJOSHADER_mtlDeleteShader(MOJOSHADER_mtlShader *shader); - -/* - * Deinitialize MojoShader's Metal shader management. - * - * This should be the last MOJOSHADER_mtl* function you call until you've - * prepared a context again. - * - * This will clean up resources previously allocated, and may call into Metal. - * - * This will not clean up shaders and libraries you created! Please call - * MOJOSHADER_mtlDeleteShader() and MOJOSHADER_mtlDeleteLibrary() to clean - * those up before calling this function! - * - * This function destroys the MOJOSHADER_mtlContext you pass it. If it's the - * current context, then no context will be current upon return. - */ -DECLSPEC void MOJOSHADER_mtlDestroyContext(MOJOSHADER_mtlContext *_ctx); - -/* Vulkan interface */ - -/* Avoid including vulkan.h, don't define handles if it's already included */ -#ifdef VULKAN_H_ -#define NO_MOJOSHADER_VULKAN_TYPEDEFS -#endif -#ifndef NO_MOJOSHADER_VULKAN_TYPEDEFS -#ifdef _WIN32 -#define VKAPI_CALL __stdcall -#define VKAPI_PTR VKAPI_CALL -#else -#define VKAPI_CALL -#define VKAPI_PTR -#endif -#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - -#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) -#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else -#define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef unsigned long long object; -#endif - -VK_DEFINE_HANDLE(VkInstance) -VK_DEFINE_HANDLE(VkDevice) -VK_DEFINE_HANDLE(VkPhysicalDevice) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) - -#endif /* !NO_MOJOSHADER_VULKAN_TYPEDEFS */ - -typedef void (VKAPI_PTR *PFN_MOJOSHADER_vkVoidFunction)(void); -typedef PFN_MOJOSHADER_vkVoidFunction (VKAPI_PTR *PFN_MOJOSHADER_vkGetDeviceProcAddr)( - VkDevice device, - const char* pName -); -typedef PFN_MOJOSHADER_vkVoidFunction (VKAPI_PTR *PFN_MOJOSHADER_vkGetInstanceProcAddr)( - VkInstance instance, - const char* pName -); - -typedef struct MOJOSHADER_vkContext MOJOSHADER_vkContext; -typedef struct MOJOSHADER_vkShader MOJOSHADER_vkShader; -typedef struct MOJOSHADER_vkProgram MOJOSHADER_vkProgram; - -/* - * Prepares a context to manage Vulkan shaders. - * - * Don't call this unless you know for sure that you need it. - * - * You must call this after creating VkDevice and VkInstance. - * - * (instance) refers to VkInstance, cast to void*. - * - * (device) refers to VkDevice, cast to void*. - * - * (frames_in_flight) refers to the maximum number of frames that can be - * processed simultaneously. - * - * (lookup) refers to PFN_vkGetDeviceProcAddr, a function pointer that - * is used to dynamically link required Vulkan functions. - * - * You must pass in the graphics queue family index and the memory type index - * you will be using with your Vulkan instance. - * - * You can only have one MOJOSHADER_vkContext per actual Vulkan context, or - * undefined behaviour will result. - * - * As MojoShader requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (malloc_d) parameter. This pointer is passed as-is to your (m) and (f) - * functions. - * - * The context created by this function will automatically become the current - * context. No further action is needed by the caller. - * - * Returns 0 on success or -1 on failure. - */ - -DECLSPEC MOJOSHADER_vkContext *MOJOSHADER_vkCreateContext(VkInstance *instance, - VkPhysicalDevice *physical_device, - VkDevice *logical_device, - PFN_MOJOSHADER_vkGetInstanceProcAddr instance_lookup, - PFN_MOJOSHADER_vkGetDeviceProcAddr lookup, - unsigned int graphics_queue_family_index, - unsigned int max_uniform_buffer_range, - unsigned int min_uniform_buffer_offset_alignment, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d); - -/* - * Get any error state we might have picked up. - * - * Returns a human-readable string. This string is for debugging purposes, and - * not guaranteed to be localized, coherent, or user-friendly in any way. - * It's for programmers! - * - * The latest error may remain between calls. New errors replace any existing - * error. Don't check this string for a sign that an error happened, check - * return codes instead and use this for explanation when debugging. - * - * Do not free the returned string: it's a pointer to a static internal - * buffer. Do not keep the pointer around, either, as it's likely to become - * invalid as soon as you call into MojoShader again. - * - * This call does NOT require a valid MOJOSHADER_vkContext to have been made - * current. The error buffer is shared between contexts, so you can get - * error results from a failed MOJOSHADER_vkCreateContext(). - */ -DECLSPEC const char *MOJOSHADER_vkGetError(MOJOSHADER_vkContext *context); - -/* - * Deinitialize MojoShader's Vulkan shader management. - * - * You must call this once, while your Vulkan context (not MojoShader context) is - * still current, if you previously had a successful call to - * MOJOSHADER_vkCreateContext(). This should be the last MOJOSHADER_vk* - * function you call until you've prepared a context again. - * - * This will clean up resources previously allocated, and may call into Vulkan. - * - * This will not clean up shaders and programs you created! Please call - * MOJOSHADER_vkDeleteShader() and MOJOSHADER_vkDeleteProgram() to clean - * those up before calling this function! - * - * This function destroys the MOJOSHADER_vkContext you pass it. If it's the - * current context, then no context will be current upon return. - */ -DECLSPEC void MOJOSHADER_vkDestroyContext(MOJOSHADER_vkContext *ctx); - -/* - * Compile a buffer of Direct3D shader bytecode into a Vulkan shader module. - * - * (tokenbuf) is a buffer of Direct3D shader bytecode. - * (bufsize) is the size, in bytes, of the bytecode buffer. - * (swiz), (swizcount), (smap), and (smapcount) are passed to - * MOJOSHADER_parse() unmolested. - * - * Returns NULL on error, or a shader handle on success. - * - * Compiled shaders from this function may not be shared between contexts. - */ -DECLSPEC MOJOSHADER_vkShader *MOJOSHADER_vkCompileShader(MOJOSHADER_vkContext *context, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount); - -/* - * Increments a shader's internal refcount. - * - * To decrement the refcount, call MOJOSHADER_vkDeleteShader(). - */ -DECLSPEC void MOJOSHADER_vkShaderAddRef(MOJOSHADER_vkShader *shader); - -/* - * Decrements a shader's internal refcount, and deletes if the refcount is zero. - * - * To increment the refcount, call MOJOSHADER_vkShaderAddRef(). - */ -DECLSPEC void MOJOSHADER_vkDeleteShader(MOJOSHADER_vkContext *context, - MOJOSHADER_vkShader *shader); - -/* - * Get the MOJOSHADER_parseData structure that was produced from the - * call to MOJOSHADER_vkCompileShader(). - * - * This data is read-only, and you should NOT attempt to free it. This - * pointer remains valid until the shader is deleted. - */ -DECLSPEC const MOJOSHADER_parseData *MOJOSHADER_vkGetShaderParseData(MOJOSHADER_vkShader *shader); - -/* - * Link a vertex and pixel shader into a working Vulkan shader program. - * (vshader) or (pshader) can NOT be NULL, unlike OpenGL. - * - * You can reuse shaders in various combinations across - * multiple programs, by relinking different pairs. - * - * It is illegal to give a vertex shader for (pshader) or a pixel shader - * for (vshader). - * - * Once you have successfully linked a program, you may render with it. - * - * Returns NULL on error, or a program handle on success. - */ -DECLSPEC MOJOSHADER_vkProgram *MOJOSHADER_vkLinkProgram(MOJOSHADER_vkContext *context, - MOJOSHADER_vkShader *vshader, - MOJOSHADER_vkShader *pshader); - -/* - * This binds the program to the active context, and does nothing particularly - * special until you start working with uniform buffers or shader modules. - * - * After binding a program, you should update any uniforms you care about - * with MOJOSHADER_vkMapUniformBufferMemory() (etc), set any vertex arrays - * using MOJOSHADER_vkGetVertexAttribLocation(), and finally call - * MOJOSHADER_vkGetShaderModules() to get the final modules. Then you may - * begin building your pipeline state objects. - */ -DECLSPEC void MOJOSHADER_vkBindProgram(MOJOSHADER_vkContext *context, - MOJOSHADER_vkProgram *program); - -/* - * Free the resources of a linked program. This will delete the shader modules - * and free memory. - * - * If the program is currently bound by MOJOSHADER_vkBindProgram(), it will - * be deleted as soon as it becomes unbound. - */ -DECLSPEC void MOJOSHADER_vkDeleteProgram(MOJOSHADER_vkContext *context, - MOJOSHADER_vkProgram *program); - -/* - * This "binds" individual shaders, which effectively means the context - * will store these shaders for later retrieval. No actual binding or - * pipeline creation is performed. - * - * This function is only for convenience, specifically for compatibility - * with the effects API. - */ -DECLSPEC void MOJOSHADER_vkBindShaders(MOJOSHADER_vkContext *context, - MOJOSHADER_vkShader *vshader, - MOJOSHADER_vkShader *pshader); - -/* - * This queries for the shaders currently bound to the active context. - * - * This function is only for convenience, specifically for compatibility - * with the effects API. - */ -DECLSPEC void MOJOSHADER_vkGetBoundShaders(MOJOSHADER_vkContext *context, - MOJOSHADER_vkShader **vshader, - MOJOSHADER_vkShader **pshader); - -/* - * Fills register pointers with pointers that are directly used to push uniform - * data to the Vulkan shader context. - * - * This function is really just for the effects API, you should NOT be using - * this unless you know every single line of MojoShader from memory. - */ -DECLSPEC void MOJOSHADER_vkMapUniformBufferMemory(MOJOSHADER_vkContext *context, - float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb); - -/* - * Tells the context that you are done with the memory mapped by - * MOJOSHADER_vkMapUniformBufferMemory(). - */ -DECLSPEC void MOJOSHADER_vkUnmapUniformBufferMemory(MOJOSHADER_vkContext *context); - -/* - * This queries for the uniform buffer, byte offset and byte size for each of the - * currently bound shaders. - * - * This function is only for convenience, specifically for compatibility with - * the effects API. - */ -DECLSPEC void MOJOSHADER_vkGetUniformBuffers(MOJOSHADER_vkContext *context, - VkBuffer *vbuf, - unsigned long long *voff, - unsigned long long *vsize, - VkBuffer *pbuf, - unsigned long long *poff, - unsigned long long *psize); - -/* - * Prepares uniform buffers for reuse. - * - * Always call this after submitting the final command buffer for a frame! - */ -DECLSPEC void MOJOSHADER_vkEndFrame(MOJOSHADER_vkContext *context); - -/* - * Return the location of a vertex attribute for the given shader. - * - * (usage) and (index) map to Direct3D vertex declaration values: COLOR1 would - * be MOJOSHADER_USAGE_COLOR and 1. - * - * The return value is the index of the attribute to be used to create - * a VkVertexInputAttributeDescription, or -1 if the stream is not used. - */ -DECLSPEC int MOJOSHADER_vkGetVertexAttribLocation(MOJOSHADER_vkShader *vert, - MOJOSHADER_usage usage, - int index); - -/* - * Get the VkShaderModules from the currently bound shader program. - */ -DECLSPEC void MOJOSHADER_vkGetShaderModules(MOJOSHADER_vkContext *context, - VkShaderModule *vmodule, - VkShaderModule *pmodule); - -/* D3D11 interface... */ - -typedef struct MOJOSHADER_d3d11Context MOJOSHADER_d3d11Context; -typedef struct MOJOSHADER_d3d11Shader MOJOSHADER_d3d11Shader; - -/* - * Prepare MojoShader to manage Direct3D 11 shaders. - * - * You do not need to call this if all you want is MOJOSHADER_parse(). - * - * You must call this once AFTER you have successfully built your D3D11 context. - * - * As MojoShader requires some memory to be allocated, you may provide a - * custom allocator to this function, which will be used to allocate/free - * memory. They function just like malloc() and free(). We do not use - * realloc(). If you don't care, pass NULL in for the allocator functions. - * If your allocator needs instance-specific data, you may supply it with the - * (malloc_d) parameter. This pointer is passed as-is to your (m) and (f) - * functions. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC MOJOSHADER_d3d11Context *MOJOSHADER_d3d11CreateContext(void *device, - void *deviceContext, - MOJOSHADER_malloc m, - MOJOSHADER_free f, - void *malloc_d); - -/* - * Get any error state we might have picked up, such as failed shader - * compilation. - * - * Returns a human-readable string. This string is for debugging purposes, and - * not guaranteed to be localized, coherent, or user-friendly in any way. - * It's for programmers! - * - * The latest error may remain between calls. New errors replace any existing - * error. Don't check this string for a sign that an error happened, check - * return codes instead and use this for explanation when debugging. - * - * Do not free the returned string: it's a pointer to a static internal - * buffer. Do not keep the pointer around, either, as it's likely to become - * invalid as soon as you call into MojoShader again. - */ -DECLSPEC const char *MOJOSHADER_d3d11GetError(MOJOSHADER_d3d11Context *context); - -/* - * Compile a buffer of Direct3D 9 shader bytecode into a Direct3D 11 shader. - * You still need to link the shader before you may render with it. - * - * (mainfn) is the name of the shader's main function. - * (tokenbuf) is a buffer of Direct3D shader bytecode. - * (bufsize) is the size, in bytes, of the bytecode buffer. - * (swiz), (swizcount), (smap), and (smapcount) are passed to - * MOJOSHADER_parse() unmolested. - * - * Returns NULL on error, or a shader handle on success. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC MOJOSHADER_d3d11Shader *MOJOSHADER_d3d11CompileShader(MOJOSHADER_d3d11Context *context, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount); - -/* - * Increments a shader's internal refcount. To decrement the refcount, call - * MOJOSHADER_glDeleteShader(). - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11ShaderAddRef(MOJOSHADER_d3d11Shader *shader); - -/* - * Get the MOJOSHADER_parseData structure that was produced from the - * call to MOJOSHADER_d3d11CompileShader(). - * - * This data is read-only, and you should NOT attempt to free it. This - * pointer remains valid until the shader is deleted. - */ -DECLSPEC const MOJOSHADER_parseData *MOJOSHADER_d3d11GetShaderParseData( - MOJOSHADER_d3d11Shader *shader); - -/* - * This binds individual shaders together, to be linked into a single working - * program once MOJOSHADER_d3d11ProgramReady is called. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11BindShaders(MOJOSHADER_d3d11Context *context, - MOJOSHADER_d3d11Shader *vshader, - MOJOSHADER_d3d11Shader *pshader); - -/* - * This queries for the shaders currently bound to the active context. - * - * This function is only for convenience, specifically for compatibility with - * the effects API. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11GetBoundShaders(MOJOSHADER_d3d11Context *context, - MOJOSHADER_d3d11Shader **vshader, - MOJOSHADER_d3d11Shader **pshader); - -/* - * Fills register pointers with pointers that are directly used to push uniform - * data to the D3D11 shader context. - * - * This function is really just for the effects API, you should NOT be using - * this unless you know every single line of MojoShader from memory. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11MapUniformBufferMemory(MOJOSHADER_d3d11Context *context, - float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb); - -/* - * Tells the context that you are done with the memory mapped by - * MOJOSHADER_d3d11MapUniformBufferMemory(). - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11UnmapUniformBufferMemory(MOJOSHADER_d3d11Context *context); - -/* - * Return the location of a vertex attribute for the given vertex shader. - * - * (usage) and (index) map to Direct3D vertex declaration values: COLOR1 would - * be MOJOSHADER_USAGE_COLOR and 1. - * - * The return value is the index of the attribute to be used when building the - * input layout object. - */ -DECLSPEC int MOJOSHADER_d3d11GetVertexAttribLocation(MOJOSHADER_d3d11Shader *vert, - MOJOSHADER_usage usage, - int index); - -/* - * Using the given input layout, compiles the vertex shader with input - * parameters that will be compatible with the incoming vertex data. - * - * (inputLayoutHash) is an application-defined value to differentiate unique - * vertex declarations that will be passed to the vertex shader. - * (elements) is an array of D3D11_INPUT_ELEMENT_DESCs, with (elementCount) - * entries. (bytecode) and (bytecodeLength) will be filled with the final - * compiled D3D11 vertex shader. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11CompileVertexShader(MOJOSHADER_d3d11Context *ctx, - unsigned long long inputLayoutHash, - void *elements, int elementCount, - void **bytecode, int *bytecodeLength); - -/* - * Inform MojoShader that it should commit any pending state and prepare the - * final shader program object, linking the input/output parameter data to - * be compatible with the more-strict Shader Model 4 rule set. This must be - * called after you bind shaders and update any inputs, right before you start - * drawing, so any outstanding changes made to the shared constants array (etc) - * can propagate to the shader during this call. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11ProgramReady(MOJOSHADER_d3d11Context *context, - unsigned long long inputLayoutHash); - -/* - * Free the resources of a compiled shader. This will delete the shader object - * and free memory. - * - * This call is only as thread safe as your D3D11 context! If you call your - * context from multiple threads, you must protect this call with whatever - * thread synchronization technique you have for your other D3D calls. - */ -DECLSPEC void MOJOSHADER_d3d11DeleteShader(MOJOSHADER_d3d11Context *context, - MOJOSHADER_d3d11Shader *shader); - -/* - * Deinitialize MojoShader's D3D11 shader management. - * - * This will clean up resources previously allocated for the active context. - * - * This will NOT clean up shaders you created! Please destroy all shaders - * before calling this function. - */ -DECLSPEC void MOJOSHADER_d3d11DestroyContext(MOJOSHADER_d3d11Context *context); - - -/* Effects interface... */ -#include "mojoshader_effects.h" - - -#ifdef __cplusplus -} -#endif - -#endif /* include-once blocker. */ - -/* end of mojoshader.h ... */ - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_assembler.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_assembler.c deleted file mode 100644 index 62a754e2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_assembler.c +++ /dev/null @@ -1,1914 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -// !!! FIXME: this should probably use a formal grammar and not a hand-written -// !!! FIXME: pile of C code. - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#if !SUPPORT_PROFILE_BYTECODE -#error Shader assembler needs bytecode profile. Fix your build. -#endif - -#if DEBUG_ASSEMBLER_PARSER - #define print_debug_token(token, len, val) \ - MOJOSHADER_print_debug_token("ASSEMBLER", token, len, val) -#else - #define print_debug_token(token, len, val) -#endif - - -typedef struct SourcePos -{ - const char *filename; - uint32 line; -} SourcePos; - - -// Context...this is state that changes as we assemble a shader... -typedef struct Context -{ - int isfail; - int out_of_memory; - MOJOSHADER_malloc malloc; - MOJOSHADER_free free; - void *malloc_data; - const char *current_file; - int current_position; - ErrorList *errors; - Preprocessor *preprocessor; - MOJOSHADER_shaderType shader_type; - uint8 major_ver; - uint8 minor_ver; - int pushedback; - const char *token; // assembler token! - unsigned int tokenlen; // assembler token! - Token tokenval; // assembler token! - uint32 version_token; // bytecode token! - uint32 tokenbuf[16]; // bytecode tokens! - int tokenbufpos; // bytecode tokens! - DestArgInfo dest_arg; - uint8 default_writemask; - uint8 default_swizzle; - Buffer *output; - Buffer *token_to_source; - Buffer *ctab; -} Context; - - -// !!! FIXME: cut and paste between every damned source file follows... -// !!! FIXME: We need to make some sort of ContextBase that applies to all -// !!! FIXME: files and move this stuff to mojoshader_common.c ... - -// Convenience functions for allocators... - -static inline void out_of_memory(Context *ctx) -{ - ctx->isfail = ctx->out_of_memory = 1; -} // out_of_memory - -static inline void *Malloc(Context *ctx, const size_t len) -{ - void *retval = ctx->malloc((int) len, ctx->malloc_data); - if (retval == NULL) - out_of_memory(ctx); - return retval; -} // Malloc - -static inline char *StrDup(Context *ctx, const char *str) -{ - char *retval = (char *) Malloc(ctx, strlen(str) + 1); - if (retval != NULL) - strcpy(retval, str); - return retval; -} // StrDup - -static inline void Free(Context *ctx, void *ptr) -{ - ctx->free(ptr, ctx->malloc_data); -} // Free - -static void *MallocBridge(int bytes, void *data) -{ - return Malloc((Context *) data, (size_t) bytes); -} // MallocBridge - -static void FreeBridge(void *ptr, void *data) -{ - Free((Context *) data, ptr); -} // FreeBridge - - -static void failf(Context *ctx, const char *fmt, ...) ISPRINTF(2,3); -static void failf(Context *ctx, const char *fmt, ...) -{ - ctx->isfail = 1; - if (ctx->out_of_memory) - return; - - va_list ap; - va_start(ap, fmt); - errorlist_add_va(ctx->errors, ctx->current_file, ctx->current_position, fmt, ap); - va_end(ap); -} // failf - -static inline void fail(Context *ctx, const char *reason) -{ - failf(ctx, "%s", reason); -} // fail - -static inline int isfail(const Context *ctx) -{ - return ctx->isfail; -} // isfail - -static int vecsize_from_writemask(const uint8 m) -{ - return (m & 1) + ((m >> 1) & 1) + ((m >> 2) & 1) + ((m >> 3) & 1); -} // vecsize_from_writemask - -static void set_dstarg_writemask(DestArgInfo *dst, const uint8 mask) -{ - dst->writemask = mask; - dst->writemask0 = ((mask >> 0) & 1); - dst->writemask1 = ((mask >> 1) & 1); - dst->writemask2 = ((mask >> 2) & 1); - dst->writemask3 = ((mask >> 3) & 1); -} // set_dstarg_writemask - -// Shader model version magic... - -static inline uint32 ver_ui32(const uint8 major, const uint8 minor) -{ - return ( (((uint32) major) << 16) | (((minor) == 0xFF) ? 0 : (minor)) ); -} // version_ui32 - -static inline int shader_version_atleast(const Context *ctx, const uint8 maj, - const uint8 min) -{ - return (ver_ui32(ctx->major_ver, ctx->minor_ver) >= ver_ui32(maj, min)); -} // shader_version_atleast - -static inline int shader_is_pixel(const Context *ctx) -{ - return (ctx->shader_type == MOJOSHADER_TYPE_PIXEL); -} // shader_is_pixel - -static inline int shader_is_vertex(const Context *ctx) -{ - return (ctx->shader_type == MOJOSHADER_TYPE_VERTEX); -} // shader_is_vertex - -static inline void pushback(Context *ctx) -{ - #if DEBUG_ASSEMBLER_PARSER - printf("ASSEMBLER PUSHBACK\n"); - #endif - assert(!ctx->pushedback); - ctx->pushedback = 1; -} // pushback - - -static Token nexttoken(Context *ctx) -{ - if (ctx->pushedback) - ctx->pushedback = 0; - else - { - while (1) - { - ctx->token = preprocessor_nexttoken(ctx->preprocessor, - &ctx->tokenlen, - &ctx->tokenval); - - if (preprocessor_outofmemory(ctx->preprocessor)) - { - ctx->tokenval = TOKEN_EOI; - ctx->token = NULL; - ctx->tokenlen = 0; - break; - } // if - - unsigned int line; - ctx->current_file = preprocessor_sourcepos(ctx->preprocessor,&line); - ctx->current_position = (int) line; - - if (ctx->tokenval == TOKEN_BAD_CHARS) - { - fail(ctx, "Bad characters in source file"); - continue; - } // else if - - else if (ctx->tokenval == TOKEN_PREPROCESSING_ERROR) - { - fail(ctx, ctx->token); - continue; - } // else if - - break; - } // while - } // else - - print_debug_token(ctx->token, ctx->tokenlen, ctx->tokenval); - return ctx->tokenval; -} // nexttoken - - -static void output_token_noswap(Context *ctx, const uint32 token) -{ - if (!isfail(ctx)) - { - buffer_append(ctx->output, &token, sizeof (token)); - - // We only need a list of these that grows throughout processing, and - // is flattened for reference at the end of the run, so we use a - // Buffer. It's sneaky! - unsigned int pos = 0; - const char *fname = preprocessor_sourcepos(ctx->preprocessor, &pos); - SourcePos srcpos; - memset(&srcpos, '\0', sizeof (SourcePos)); - srcpos.line = pos; - srcpos.filename = fname; // cached in preprocessor! - buffer_append(ctx->token_to_source, &srcpos, sizeof (SourcePos)); - } // if -} // output_token_noswap - - -static inline void output_token(Context *ctx, const uint32 token) -{ - output_token_noswap(ctx, SWAP32(token)); -} // output_token - - -static void output_comment_bytes(Context *ctx, const uint8 *buf, size_t len) -{ - if (len > (0xFFFF * 4)) // length is stored as token count, in 16 bits. - fail(ctx, "Comment field is too big"); - else if (!isfail(ctx)) - { - const uint32 tokencount = (len / 4) + ((len % 4) ? 1 : 0); - output_token(ctx, 0xFFFE | (tokencount << 16)); - while (len >= 4) - { - output_token_noswap(ctx, *((const uint32 *) buf)); - len -= 4; - buf += 4; - } // while - - if (len > 0) // handle spillover... - { - union { uint8 ui8[4]; uint32 ui32; } overflow; - overflow.ui32 = 0; - memcpy(overflow.ui8, buf, len); - output_token_noswap(ctx, overflow.ui32); - } // if - } // else if -} // output_comment_bytes - - -static inline void output_comment_string(Context *ctx, const char *str) -{ - output_comment_bytes(ctx, (const uint8 *) str, strlen(str)); -} // output_comment_string - - -static int require_comma(Context *ctx) -{ - const Token token = nexttoken(ctx); - if (token != ((Token) ',')) - { - fail(ctx, "Comma expected"); - return 0; - } // if - return 1; -} // require_comma - - -static int check_token_segment(Context *ctx, const char *str) -{ - // !!! FIXME: these are case-insensitive, right? - const size_t len = strlen(str); - if ( (ctx->tokenlen < len) || (strncasecmp(ctx->token, str, len) != 0) ) - return 0; - ctx->token += len; - ctx->tokenlen -= len; - return 1; -} // check_token_segment - - -static int check_token(Context *ctx, const char *str) -{ - const size_t len = strlen(str); - if ( (ctx->tokenlen != len) || (strncasecmp(ctx->token, str, len) != 0) ) - return 0; - ctx->token += len; - ctx->tokenlen = 0; - return 1; -} // check_token - - -static int ui32fromtoken(Context *ctx, uint32 *_val) -{ - unsigned int i; - for (i = 0; i < ctx->tokenlen; i++) - { - if ((ctx->token[i] < '0') || (ctx->token[i] > '9')) - break; - } // for - - if (i == 0) - { - *_val = 0; - return 0; - } // if - - const unsigned int len = i; - uint32 val = 0; - uint32 mult = 1; - while (i--) - { - val += ((uint32) (ctx->token[i] - '0')) * mult; - mult *= 10; - } // while - - ctx->token += len; - ctx->tokenlen -= len; - - *_val = val; - return 1; -} // ui32fromtoken - - -static int parse_register_name(Context *ctx, RegisterType *rtype, int *rnum) -{ - if (nexttoken(ctx) != TOKEN_IDENTIFIER) - { - fail(ctx, "Expected register"); - return 0; - } // if - - int neednum = 1; - int regnum = 0; - RegisterType regtype = REG_TYPE_TEMP; - - // Watch out for substrings! oDepth must be checked before oD, since - // the latter will match either case. - if (check_token_segment(ctx, "oDepth")) - { - regtype = REG_TYPE_DEPTHOUT; - neednum = 0; - } // else if - else if (check_token_segment(ctx, "vFace")) - { - regtype = REG_TYPE_MISCTYPE; - regnum = (int) MISCTYPE_TYPE_FACE; - neednum = 0; - } // else if - else if (check_token_segment(ctx, "vPos")) - { - regtype = REG_TYPE_MISCTYPE; - regnum = (int) MISCTYPE_TYPE_POSITION; - neednum = 0; - } // else if - else if (check_token_segment(ctx, "oPos")) - { - regtype = REG_TYPE_RASTOUT; - regnum = (int) RASTOUT_TYPE_POSITION; - neednum = 0; - } // else if - else if (check_token_segment(ctx, "oFog")) - { - regtype = REG_TYPE_RASTOUT; - regnum = (int) RASTOUT_TYPE_FOG; - neednum = 0; - } // else if - else if (check_token_segment(ctx, "oPts")) - { - regtype = REG_TYPE_RASTOUT; - regnum = (int) RASTOUT_TYPE_POINT_SIZE; - neednum = 0; - } // else if - else if (check_token_segment(ctx, "aL")) - { - regtype = REG_TYPE_LOOP; - neednum = 0; - } // else if - else if (check_token_segment(ctx, "oC")) - regtype = REG_TYPE_COLOROUT; - else if (check_token_segment(ctx, "oT")) - regtype = REG_TYPE_OUTPUT; - else if (check_token_segment(ctx, "oD")) - regtype = REG_TYPE_ATTROUT; - else if (check_token_segment(ctx, "r")) - regtype = REG_TYPE_TEMP; - else if (check_token_segment(ctx, "v")) - regtype = REG_TYPE_INPUT; - else if (check_token_segment(ctx, "c")) - regtype = REG_TYPE_CONST; - else if (check_token_segment(ctx, "i")) - regtype = REG_TYPE_CONSTINT; - else if (check_token_segment(ctx, "b")) - regtype = REG_TYPE_CONSTBOOL; - else if (check_token_segment(ctx, "s")) - regtype = REG_TYPE_SAMPLER; - else if (check_token_segment(ctx, "l")) - regtype = REG_TYPE_LABEL; - else if (check_token_segment(ctx, "p")) - regtype = REG_TYPE_PREDICATE; - else if (check_token_segment(ctx, "o")) - regtype = REG_TYPE_OUTPUT; - else if (check_token_segment(ctx, "a")) - regtype = REG_TYPE_ADDRESS; - else if (check_token_segment(ctx, "t")) - regtype = REG_TYPE_ADDRESS; - - //case REG_TYPE_TEMPFLOAT16: // !!! FIXME: don't know this asm string - - else - { - fail(ctx, "expected register type"); - regtype = REG_TYPE_CONST; - regnum = 0; - neednum = 0; - } // else - - // "c[5]" is the same as "c5", so if the token is done, see if next is '['. - if ((neednum) && (ctx->tokenlen == 0)) - { - const int tlen = ctx->tokenlen; // we need to protect this for later. - if (nexttoken(ctx) == ((Token) '[')) - neednum = 0; // don't need a number on register name itself. - pushback(ctx); - ctx->tokenlen = tlen; - } // if - - if (neednum) - { - uint32 ui32 = 0; - if (!ui32fromtoken(ctx, &ui32)) - fail(ctx, "Invalid register index"); - regnum = (int) ui32; - } // if - - // split up REG_TYPE_CONST - if (regtype == REG_TYPE_CONST) - { - if (regnum < 2048) - { - regtype = REG_TYPE_CONST; - regnum -= 0; - } // if - else if (regnum < 4096) - { - regtype = REG_TYPE_CONST2; - regnum -= 2048; - } // if - else if (regnum < 6144) - { - regtype = REG_TYPE_CONST3; - regnum -= 4096; - } // if - else if (regnum < 8192) - { - regtype = REG_TYPE_CONST4; - regnum -= 6144; - } // if - else - { - fail(ctx, "Invalid const register index"); - } // else - } // if - - *rtype = regtype; - *rnum = regnum; - - return 1; -} // parse_register_name - - -static void set_result_shift(Context *ctx, DestArgInfo *info, const int val) -{ - if (info->result_shift != 0) - fail(ctx, "Multiple result shift modifiers"); - info->result_shift = val; -} // set_result_shift - - -static inline int tokenbuf_overflow(Context *ctx) -{ - if ( ctx->tokenbufpos >= ((int) (STATICARRAYLEN(ctx->tokenbuf))) ) - { - fail(ctx, "Too many tokens"); - return 1; - } // if - - return 0; -} // tokenbuf_overflow - - -static int parse_destination_token(Context *ctx) -{ - DestArgInfo *info = &ctx->dest_arg; - memset(info, '\0', sizeof (DestArgInfo)); - - // parse_instruction_token() sets ctx->token to the end of the instruction - // so we can see if there are destination modifiers on the instruction - // itself... - - int invalid_modifier = 0; - - while ((ctx->tokenlen > 0) && (!invalid_modifier)) - { - if (check_token_segment(ctx, "_x2")) - set_result_shift(ctx, info, 0x1); - else if (check_token_segment(ctx, "_x4")) - set_result_shift(ctx, info, 0x2); - else if (check_token_segment(ctx, "_x8")) - set_result_shift(ctx, info, 0x3); - else if (check_token_segment(ctx, "_d8")) - set_result_shift(ctx, info, 0xD); - else if (check_token_segment(ctx, "_d4")) - set_result_shift(ctx, info, 0xE); - else if (check_token_segment(ctx, "_d2")) - set_result_shift(ctx, info, 0xF); - else if (check_token_segment(ctx, "_sat")) - info->result_mod |= MOD_SATURATE; - else if (check_token_segment(ctx, "_pp")) - info->result_mod |= MOD_PP; - else if (check_token_segment(ctx, "_centroid")) - info->result_mod |= MOD_CENTROID; - else - invalid_modifier = 1; - } // while - - if (invalid_modifier) - fail(ctx, "Invalid destination modifier"); - - // !!! FIXME: predicates. - if (nexttoken(ctx) == ((Token) '(')) - fail(ctx, "Predicates unsupported at this time"); // !!! FIXME: ... - - pushback(ctx); // parse_register_name calls nexttoken(). - - parse_register_name(ctx, &info->regtype, &info->regnum); - // parse_register_name() can't check this: dest regs might have modifiers. - if (ctx->tokenlen > 0) - fail(ctx, "invalid register name"); - - // !!! FIXME: can dest registers do relative addressing? - - int invalid_writemask = 0; - if (nexttoken(ctx) != ((Token) '.')) - { - set_dstarg_writemask(info, ctx->default_writemask); - pushback(ctx); // no explicit writemask; do default mask. - } // if - else if (nexttoken(ctx) != TOKEN_IDENTIFIER) - { - invalid_writemask = 1; - } // else if - else - { - char tokenbytes[5] = { '\0', '\0', '\0', '\0', '\0' }; - const unsigned int tokenlen = ctx->tokenlen; - memcpy(tokenbytes, ctx->token, ((tokenlen < 4) ? tokenlen : 4)); - char *ptr = tokenbytes; - uint8 writemask = 0; - if ((*ptr == 'r') || (*ptr == 'x')) { writemask |= (1<<0); ptr++; } - if ((*ptr == 'g') || (*ptr == 'y')) { writemask |= (1<<1); ptr++; } - if ((*ptr == 'b') || (*ptr == 'z')) { writemask |= (1<<2); ptr++; } - if ((*ptr == 'a') || (*ptr == 'w')) { writemask |= (1<<3); ptr++; } - - if (*ptr != '\0') - invalid_writemask = 1; - - // Cg generates code with oDepth.z, and Microsoft's tools accept - // oFog.x and probably others. For safety's sake, we'll allow - // any single channel to be specified and will just wipe out the - // writemask as if it wasn't specified at all. More than one - // channel will be a fail, though. - if (!invalid_writemask && scalar_register(ctx->shader_type, info->regtype, info->regnum)) - { - const int numchans = vecsize_from_writemask(writemask); - if (numchans != 1) - fail(ctx, "Non-scalar writemask specified for scalar register"); - writemask = 0xF; - } // if - - set_dstarg_writemask(info, writemask); - } // else - - if (invalid_writemask) - fail(ctx, "Invalid writemask"); - - info->orig_writemask = info->writemask; - - if (tokenbuf_overflow(ctx)) - return 1; - - ctx->tokenbuf[ctx->tokenbufpos++] = - ( ((((uint32) 1)) << 31) | - ((((uint32) info->regnum) & 0x7ff) << 0) | - ((((uint32) info->relative) & 0x1) << 13) | - ((((uint32) info->result_mod) & 0xF) << 20) | - ((((uint32) info->result_shift) & 0xF) << 24) | - ((((uint32) info->writemask) & 0xF) << 16) | - ((((uint32) info->regtype) & 0x7) << 28) | - ((((uint32) info->regtype) & 0x18) << 8) ); - - return 1; -} // parse_destination_token - - -static void set_source_mod(Context *ctx, const int negate, - const SourceMod norm, const SourceMod negated, - SourceMod *srcmod) -{ - if ( (*srcmod != SRCMOD_NONE) || (negate && (negated == SRCMOD_NONE)) ) - fail(ctx, "Incompatible source modifiers"); - else - *srcmod = ((negate) ? negated : norm); -} // set_source_mod - - -static int parse_source_token_maybe_relative(Context *ctx, const int relok) -{ - int retval = 1; - - // If we've set a weird default swizzle, save it off and then go back to - // the default, so it won't reuse the setting for relative addressing - // processing. We only need a weird default for a handful of instructions. - const uint8 default_swizzle = ctx->default_swizzle; - ctx->default_swizzle = 0xE4; // 0xE4 == 11100100 ... 0 1 2 3. No swizzle. - - if (tokenbuf_overflow(ctx)) - return 0; - - // mark this now, so optional relative addressing token is placed second. - uint32 *outtoken = &ctx->tokenbuf[ctx->tokenbufpos++]; - *outtoken = 0; - - SourceMod srcmod = SRCMOD_NONE; - int negate = 0; - Token token = nexttoken(ctx); - - if (token == ((Token) '!')) - srcmod = SRCMOD_NOT; - else if (token == ((Token) '-')) - negate = 1; - else if ( (token == TOKEN_INT_LITERAL) && (check_token(ctx, "1")) ) - { - if (nexttoken(ctx) != ((Token) '-')) - fail(ctx, "Unexpected token"); - else - srcmod = SRCMOD_COMPLEMENT; - } // else - else - { - pushback(ctx); - } // else - - RegisterType regtype; - int regnum; - parse_register_name(ctx, ®type, ®num); - - if (ctx->tokenlen == 0) - { - if (negate) - set_source_mod(ctx, negate, SRCMOD_NONE, SRCMOD_NEGATE, &srcmod); - } // if - else - { - assert(ctx->tokenlen > 0); - if (check_token_segment(ctx, "_bias")) - set_source_mod(ctx, negate, SRCMOD_BIAS, SRCMOD_BIASNEGATE, &srcmod); - else if (check_token_segment(ctx, "_bx2")) - set_source_mod(ctx, negate, SRCMOD_SIGN, SRCMOD_SIGNNEGATE, &srcmod); - else if (check_token_segment(ctx, "_x2")) - set_source_mod(ctx, negate, SRCMOD_X2, SRCMOD_X2NEGATE, &srcmod); - else if (check_token_segment(ctx, "_dz")) - set_source_mod(ctx, negate, SRCMOD_DZ, SRCMOD_NONE, &srcmod); - else if (check_token_segment(ctx, "_db")) - set_source_mod(ctx, negate, SRCMOD_DZ, SRCMOD_NONE, &srcmod); - else if (check_token_segment(ctx, "_dw")) - set_source_mod(ctx, negate, SRCMOD_DW, SRCMOD_NONE, &srcmod); - else if (check_token_segment(ctx, "_da")) - set_source_mod(ctx, negate, SRCMOD_DW, SRCMOD_NONE, &srcmod); - else if (check_token_segment(ctx, "_abs")) - set_source_mod(ctx, negate, SRCMOD_ABS, SRCMOD_ABSNEGATE, &srcmod); - else - fail(ctx, "Invalid source modifier"); - } // else - - uint32 relative = 0; - if (nexttoken(ctx) != ((Token) '[')) - pushback(ctx); // not relative addressing? - else - { - // quick hack here to make "c[5]" convert to "c5". This will also - // work with "c0[5]" but that's possibly illegal...? - int skip_relative_parsing = 0; - if ((regtype == REG_TYPE_CONST) && (regnum == 0)) - { - uint32 ui32 = 0; - if (nexttoken(ctx) != TOKEN_INT_LITERAL) - pushback(ctx); - else if (!ui32fromtoken(ctx, &ui32)) - pushback(ctx); - else - { - regnum = ui32; - skip_relative_parsing = 1; - } // else - } // if - - if (!skip_relative_parsing) - { - if (!relok) - fail(ctx, "Relative addressing not permitted here."); - else - retval++; - - parse_source_token_maybe_relative(ctx, 0); - relative = 1; - - if (nexttoken(ctx) != ((Token) '+')) - pushback(ctx); - else - { - // !!! FIXME: maybe c3[a0.x + 5] is legal and becomes c[a0.x + 8] ? - if (regnum != 0) - fail(ctx, "Relative addressing with explicit register number."); - - uint32 ui32 = 0; - if ( (nexttoken(ctx) != TOKEN_INT_LITERAL) || - (!ui32fromtoken(ctx, &ui32)) || - (ctx->tokenlen != 0) ) - { - fail(ctx, "Invalid relative addressing offset"); - } // if - regnum += (int) ui32; - } // else - } // if - - if (nexttoken(ctx) != ((Token) ']')) - fail(ctx, "Expected ']'"); - } // else - - int invalid_swizzle = 0; - uint32 swizzle = 0; - if (nexttoken(ctx) != ((Token) '.')) - { - swizzle = default_swizzle; - pushback(ctx); // no explicit swizzle; use the default. - } // if - else if (scalar_register(ctx->shader_type, regtype, regnum)) - fail(ctx, "Swizzle specified for scalar register"); - else if (nexttoken(ctx) != TOKEN_IDENTIFIER) - invalid_swizzle = 1; - else - { - char tokenbytes[5] = { '\0', '\0', '\0', '\0', '\0' }; - const unsigned int tokenlen = ctx->tokenlen; - memcpy(tokenbytes, ctx->token, ((tokenlen < 4) ? tokenlen : 4)); - - // deal with shortened form (.x = .xxxx, etc). - if (tokenlen == 1) - tokenbytes[1] = tokenbytes[2] = tokenbytes[3] = tokenbytes[0]; - else if (tokenlen == 2) - tokenbytes[2] = tokenbytes[3] = tokenbytes[1]; - else if (tokenlen == 3) - tokenbytes[3] = tokenbytes[2]; - else if (tokenlen != 4) - invalid_swizzle = 1; - tokenbytes[4] = '\0'; - - uint32 val = 0; - int i; - for (i = 0; i < 4; i++) - { - const int component = (int) tokenbytes[i]; - switch (component) - { - case 'r': case 'x': val = 0; break; - case 'g': case 'y': val = 1; break; - case 'b': case 'z': val = 2; break; - case 'a': case 'w': val = 3; break; - default: invalid_swizzle = 1; break; - } // switch - swizzle |= (val << (i * 2)); - } // for - } // else - - if (invalid_swizzle) - fail(ctx, "Invalid swizzle"); - - *outtoken = ( ((((uint32) 1)) << 31) | - ((((uint32) regnum) & 0x7ff) << 0) | - ((((uint32) relative) & 0x1) << 13) | - ((((uint32) swizzle) & 0xFF) << 16) | - ((((uint32) srcmod) & 0xF) << 24) | - ((((uint32) regtype) & 0x7) << 28) | - ((((uint32) regtype) & 0x18) << 8) ); - - return retval; -} // parse_source_token_maybe_relative - - -static inline int parse_source_token(Context *ctx) -{ - return parse_source_token_maybe_relative(ctx, 1); -} // parse_source_token - - -static int parse_args_NULL(Context *ctx) -{ - return 1; -} // parse_args_NULL - - -static int parse_num(Context *ctx, const int floatok, uint32 *value) -{ - union { float f; int32 si32; uint32 ui32; } cvt; - int negative = 0; - Token token = nexttoken(ctx); - - if (token == ((Token) '-')) - { - negative = 1; - token = nexttoken(ctx); - } // if - - if (token == TOKEN_INT_LITERAL) - { - int d = 0; - sscanf(ctx->token, "%d", &d); - if (floatok) - cvt.f = (float) ((negative) ? -d : d); - else - cvt.si32 = (int32) ((negative) ? -d : d); - } // if - else if (token == TOKEN_FLOAT_LITERAL) - { - if (!floatok) - { - fail(ctx, "Expected whole number"); - *value = 0; - return 0; - } // if - sscanf(ctx->token, "%f", &cvt.f); - if (negative) - cvt.f = -cvt.f; - } // if - else - { - fail(ctx, "Expected number"); - *value = 0; - return 0; - } // else - - *value = cvt.ui32; - return 1; -} // parse_num - - -static int parse_args_DEFx(Context *ctx, const int isflt) -{ - parse_destination_token(ctx); - require_comma(ctx); - parse_num(ctx, isflt, &ctx->tokenbuf[ctx->tokenbufpos++]); - require_comma(ctx); - parse_num(ctx, isflt, &ctx->tokenbuf[ctx->tokenbufpos++]); - require_comma(ctx); - parse_num(ctx, isflt, &ctx->tokenbuf[ctx->tokenbufpos++]); - require_comma(ctx); - parse_num(ctx, isflt, &ctx->tokenbuf[ctx->tokenbufpos++]); - return 6; -} // parse_args_DEFx - - -static int parse_args_DEF(Context *ctx) -{ - return parse_args_DEFx(ctx, 1); -} // parse_args_DEF - - -static int parse_args_DEFI(Context *ctx) -{ - return parse_args_DEFx(ctx, 0); -} // parse_args_DEFI - - -static int parse_args_DEFB(Context *ctx) -{ - parse_destination_token(ctx); - require_comma(ctx); - - // !!! FIXME: do a TOKEN_TRUE and TOKEN_FALSE? Is this case-sensitive? - const Token token = nexttoken(ctx); - - int bad = 0; - if (token != TOKEN_IDENTIFIER) - bad = 1; - else if (check_token_segment(ctx, "true")) - ctx->tokenbuf[ctx->tokenbufpos++] = 1; - else if (check_token_segment(ctx, "false")) - ctx->tokenbuf[ctx->tokenbufpos++] = 0; - else - bad = 1; - - if (ctx->tokenlen != 0) - bad = 1; - - if (bad) - fail(ctx, "Expected 'true' or 'false'"); - - return 3; -} // parse_args_DEFB - - -static int parse_dcl_usage(Context *ctx, uint32 *val, int *issampler) -{ - size_t i; - static const char *samplerusagestrs[] = { "_2d", "_cube", "_volume" }; - static const char *usagestrs[] = { - "_position", "_blendweight", "_blendindices", "_normal", "_psize", - "_texcoord", "_tangent", "_binormal", "_tessfactor", "_positiont", - "_color", "_fog", "_depth", "_sample" - }; - - for (i = 0; i < STATICARRAYLEN(usagestrs); i++) - { - if (check_token_segment(ctx, usagestrs[i])) - { - *issampler = 0; - *val = i; - return 1; - } // if - } // for - - for (i = 0; i < STATICARRAYLEN(samplerusagestrs); i++) - { - if (check_token_segment(ctx, samplerusagestrs[i])) - { - *issampler = 1; - *val = i + 2; - return 1; - } // if - } // for - - *issampler = 0; - *val = 0; - return 0; -} // parse_dcl_usage - - -static int parse_args_DCL(Context *ctx) -{ - int issampler = 0; - uint32 usage = 0; - uint32 index = 0; - - ctx->tokenbufpos++; // save a spot for the usage/index token. - ctx->tokenbuf[0] = 0; - - // parse_instruction_token() sets ctx->token to the end of the instruction - // so we can see if there are destination modifiers on the instruction - // itself... - - if (parse_dcl_usage(ctx, &usage, &issampler)) - { - if ((ctx->tokenlen > 0) && (*ctx->token != '_')) - { - if (!ui32fromtoken(ctx, &index)) - fail(ctx, "Expected usage index"); - } // if - } // if - - parse_destination_token(ctx); - - const int samplerreg = (ctx->dest_arg.regtype == REG_TYPE_SAMPLER); - if (issampler != samplerreg) - fail(ctx, "Invalid usage"); - else if (samplerreg) - ctx->tokenbuf[0] = (usage << 27) | 0x80000000; - else if (shader_is_pixel(ctx)) // all other pixel shader types are zero'd. - ctx->tokenbuf[0] = 0x80000000; - else - ctx->tokenbuf[0] = usage | (index << 16) | 0x80000000; - - return 3; -} // parse_args_DCL - - -static int parse_args_D(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx); - return retval; -} // parse_args_D - - -static int parse_args_S(Context *ctx) -{ - int retval = 1; - retval += parse_source_token(ctx); - return retval; -} // parse_args_S - - -static int parse_args_SS(Context *ctx) -{ - int retval = 1; - retval += parse_source_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - return retval; -} // parse_args_SS - - -static int parse_args_DS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - return retval; -} // parse_args_DS - - -static int parse_args_DSS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - return retval; -} // parse_args_DSS - - -static int parse_args_DSSS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - return retval; -} // parse_args_DSSS - - -static int parse_args_DSSSS(Context *ctx) -{ - int retval = 1; - retval += parse_destination_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - require_comma(ctx); - retval += parse_source_token(ctx); - return retval; -} // parse_args_DSSSS - - -static int parse_args_SINCOS(Context *ctx) -{ - // this opcode needs extra registers for sm2 and lower. - if (!shader_version_atleast(ctx, 3, 0)) - return parse_args_DSSS(ctx); - return parse_args_DS(ctx); -} // parse_args_SINCOS - - -static int parse_args_TEXCRD(Context *ctx) -{ - // added extra register in ps_1_4. - if (shader_version_atleast(ctx, 1, 4)) - return parse_args_DS(ctx); - return parse_args_D(ctx); -} // parse_args_TEXCRD - - -static int parse_args_TEXLD(Context *ctx) -{ - // different registers in px_1_3, ps_1_4, and ps_2_0! - if (shader_version_atleast(ctx, 2, 0)) - return parse_args_DSS(ctx); - else if (shader_version_atleast(ctx, 1, 4)) - return parse_args_DS(ctx); - return parse_args_D(ctx); -} // parse_args_TEXLD - - - -// one args function for each possible sequence of opcode arguments. -typedef int (*args_function)(Context *ctx); - -// Lookup table for instruction opcodes... -typedef struct -{ - const char *opcode_string; - const uint8 default_writemask; - args_function parse_args; -} Instruction; - - -static const Instruction instructions[] = -{ - #define INSTRUCTION_STATE(op, opstr, s, a, t, w) { opstr, w, parse_args_##a }, - #define INSTRUCTION(op, opstr, slots, a, t, w) { opstr, w, parse_args_##a }, - #define MOJOSHADER_DO_INSTRUCTION_TABLE 1 - #include "mojoshader_internal.h" -}; - - -static int parse_condition(Context *ctx, uint32 *controls) -{ - static const char *comps[] = { "_gt", "_eq", "_ge", "_lt", "_ne", "_le" }; - size_t i; - - if (ctx->tokenlen >= 3) - { - for (i = 0; i < STATICARRAYLEN(comps); i++) - { - if (check_token_segment(ctx, comps[i])) - { - *controls = (uint32) (i + 1); - return 1; - } // if - } // for - } // if - - return 0; -} // parse_condition - - -static int parse_instruction_token(Context *ctx, Token token) -{ - int coissue = 0; - int predicated = 0; - - if (token == ((Token) '+')) - { - coissue = 1; - token = nexttoken(ctx); - } // if - - if (token != TOKEN_IDENTIFIER) - { - fail(ctx, "Expected instruction"); - return 0; - } // if - - uint32 controls = 0; - uint32 opcode = OPCODE_TEXLD; - const char *origtoken = ctx->token; - const unsigned int origtokenlen = ctx->tokenlen; - - // "TEX" is only meaningful in ps_1_1. - if ((!shader_version_atleast(ctx, 1, 4)) && (ctx->tokenlen == 3) && (check_token_segment(ctx, "TEX"))) - controls = 0; - - // This might need to be TEXLD instead of TEXLDP. - else if (check_token_segment(ctx, "TEXLDP")) - controls = CONTROL_TEXLDP; - - // This might need to be TEXLD instead of TEXLDB. - else if (check_token_segment(ctx, "TEXLDB")) - controls = CONTROL_TEXLDB; - - else // find the instruction. - { - size_t i; - for (i = 0; i < STATICARRAYLEN(instructions); i++) - { - const char *opcode_string = instructions[i].opcode_string; - if (opcode_string == NULL) - continue; // skip this. - else if (!check_token_segment(ctx, opcode_string)) - continue; // not us. - else if ((ctx->tokenlen > 0) && (*ctx->token != '_')) - { - ctx->token = origtoken; - ctx->tokenlen = origtokenlen; - continue; // not the match: TEXLD when we wanted TEXLDL, etc. - } // if - - break; // found it! - } // for - - opcode = (uint32) i; - - // This might need to be IFC instead of IF. - if (opcode == OPCODE_IF) - { - if (parse_condition(ctx, &controls)) - opcode = OPCODE_IFC; - } // if - - // This might need to be BREAKC instead of BREAK. - else if (opcode == OPCODE_BREAK) - { - if (parse_condition(ctx, &controls)) - opcode = OPCODE_BREAKC; - } // else if - - // SETP has a conditional code, always. - else if (opcode == OPCODE_SETP) - { - if (!parse_condition(ctx, &controls)) - fail(ctx, "SETP requires a condition"); - } // else if - } // else - - if ( (opcode == STATICARRAYLEN(instructions)) || - ((ctx->tokenlen > 0) && (ctx->token[0] != '_')) ) - { - char opstr[32]; - const int len = Min(sizeof (opstr) - 1, origtokenlen); - memcpy(opstr, origtoken, len); - opstr[len] = '\0'; - failf(ctx, "Unknown instruction '%s'", opstr); - return 0; - } // if - - const Instruction *instruction = &instructions[opcode]; - - // !!! FIXME: predicated instructions - - ctx->tokenbufpos = 0; - ctx->default_writemask = instruction->default_writemask; - - // RCP and RSQ have an implicit swizzle of .xxxx if not specified. - if ((opcode == OPCODE_RCP) || (opcode == OPCODE_RSQ)) - ctx->default_swizzle = 0; // .xxxx replicate swizzle. - - const int tokcount = instruction->parse_args(ctx); - - // insttoks bits are reserved and should be zero if < SM2. - const uint32 insttoks = shader_version_atleast(ctx, 2, 0) ? tokcount-1 : 0; - - // write out the instruction token. - output_token(ctx, ((opcode & 0xFFFF) << 0) | - ((controls & 0xFF) << 16) | - ((insttoks & 0xF) << 24) | - ((coissue) ? 0x40000000 : 0x00000000) | - ((predicated) ? 0x10000000 : 0x00000000) ); - - // write out the argument tokens. - int i; - for (i = 0; i < (tokcount-1); i++) - output_token(ctx, ctx->tokenbuf[i]); - - return 1; -} // parse_instruction_token - - -static void parse_version_token(Context *ctx) -{ - int bad = 0; - int dot_form = 0; - uint32 shader_type = 0; - - if (nexttoken(ctx) != TOKEN_IDENTIFIER) - bad = 1; - else if (check_token_segment(ctx, "vs")) - { - ctx->shader_type = MOJOSHADER_TYPE_VERTEX; - shader_type = 0xFFFE; - } // if - else if (check_token_segment(ctx, "ps")) - { - ctx->shader_type = MOJOSHADER_TYPE_PIXEL; - shader_type = 0xFFFF; - } // if - else - { - // !!! FIXME: geometry shaders? - bad = 1; - } // else - - dot_form = ((!bad) && (ctx->tokenlen == 0)); // it's in xs.x.x form? - - uint32 major = 0; - uint32 minor = 0; - - if (dot_form) - { - Token t = TOKEN_UNKNOWN; - - if (!bad) - { - t = nexttoken(ctx); - // stupid lexer sees "vs.2.0" and makes the ".2" into a float. - if (t == ((Token) '.')) - t = nexttoken(ctx); - else - { - if ((t != TOKEN_FLOAT_LITERAL) || (ctx->token[0] != '.')) - bad = 1; - else - { - ctx->tokenval = t = TOKEN_INT_LITERAL; - ctx->token++; - ctx->tokenlen--; - } // else - } // else - } // if - - if (!bad) - { - if (t != TOKEN_INT_LITERAL) - bad = 1; - else if (!ui32fromtoken(ctx, &major)) - bad = 1; - } // if - - if (!bad) - { - t = nexttoken(ctx); - // stupid lexer sees "vs.2.0" and makes the ".2" into a float. - if (t == ((Token) '.')) - t = nexttoken(ctx); - else - { - if ((t != TOKEN_FLOAT_LITERAL) || (ctx->token[0] != '.')) - bad = 1; - else - { - ctx->tokenval = t = TOKEN_INT_LITERAL; - ctx->token++; - ctx->tokenlen--; - } // else - } // else - } // if - - if (!bad) - { - if ((t == TOKEN_INT_LITERAL) && (ui32fromtoken(ctx, &minor))) - ; // good to go. - else if ((t == TOKEN_IDENTIFIER) && (check_token_segment(ctx, "x"))) - minor = 1; - else if ((t == TOKEN_IDENTIFIER) && (check_token_segment(ctx, "sw"))) - minor = 255; - else - bad = 1; - } // if - } // if - else - { - if (!check_token_segment(ctx, "_")) - bad = 1; - else if (!ui32fromtoken(ctx, &major)) - bad = 1; - else if (!check_token_segment(ctx, "_")) - bad = 1; - else if (check_token_segment(ctx, "x")) - minor = 1; - else if (check_token_segment(ctx, "sw")) - minor = 255; - else if (!ui32fromtoken(ctx, &minor)) - bad = 1; - } // else - - if ((!bad) && (ctx->tokenlen != 0)) - bad = 1; - - if (bad) - fail(ctx, "Expected valid version string"); - - ctx->major_ver = major; - ctx->minor_ver = minor; - - ctx->version_token = (shader_type << 16) | (major << 8) | (minor << 0); - output_token(ctx, ctx->version_token); -} // parse_version_token - - -static void parse_phase_token(Context *ctx) -{ - output_token(ctx, 0x0000FFFD); // phase token always 0x0000FFFD. -} // parse_phase_token - - -static void parse_end_token(Context *ctx) -{ - // We don't emit the end token bits here, since it's valid for a shader - // to not specify an "end" string at all; it's implicit, in that case. - // Instead, we make sure if we see "end" that it's the last thing we see. - if (nexttoken(ctx) != TOKEN_EOI) - fail(ctx, "Content after END"); -} // parse_end_token - - -static void parse_token(Context *ctx, const Token token) -{ - if (token != TOKEN_IDENTIFIER) - parse_instruction_token(ctx, token); // might be a coissue '+', etc. - else - { - if (check_token(ctx, "end")) - parse_end_token(ctx); - else if (check_token(ctx, "phase")) - parse_phase_token(ctx); - else - parse_instruction_token(ctx, token); - } // if -} // parse_token - - -static void destroy_context(Context *ctx) -{ - if (ctx != NULL) - { - MOJOSHADER_free f = ((ctx->free != NULL) ? ctx->free : MOJOSHADER_internal_free); - void *d = ctx->malloc_data; - preprocessor_end(ctx->preprocessor); - errorlist_destroy(ctx->errors); - buffer_destroy(ctx->ctab); - buffer_destroy(ctx->token_to_source); - buffer_destroy(ctx->output); - f(ctx, d); - } // if -} // destroy_context - - -static Context *build_context(const char *filename, - const char *source, unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - if (!m) m = MOJOSHADER_internal_malloc; - if (!f) f = MOJOSHADER_internal_free; - if (!include_open) include_open = MOJOSHADER_internal_include_open; - if (!include_close) include_close = MOJOSHADER_internal_include_close; - - Context *ctx = (Context *) m(sizeof (Context), d); - if (ctx == NULL) - return NULL; - - memset(ctx, '\0', sizeof (Context)); - ctx->malloc = m; - ctx->free = f; - ctx->malloc_data = d; - ctx->current_position = MOJOSHADER_POSITION_BEFORE; - ctx->default_writemask = 0xF; - ctx->default_swizzle = 0xE4; // 0xE4 == 11100100 ... 0 1 2 3. No swizzle. - - const size_t outblk = sizeof (uint32) * 4 * 64; // 64 4-token instrs. - ctx->output = buffer_create(outblk, MallocBridge, FreeBridge, ctx); - if (ctx->output == NULL) - goto build_context_failed; - - const size_t mapblk = sizeof (SourcePos) * 4 * 64; // 64 * 4-tokens. - ctx->token_to_source = buffer_create(mapblk, MallocBridge, FreeBridge, ctx); - if (ctx->token_to_source == NULL) - goto build_context_failed; - - ctx->errors = errorlist_create(MallocBridge, FreeBridge, ctx); - if (ctx->errors == NULL) - goto build_context_failed; - - ctx->preprocessor = preprocessor_start(filename, source, sourcelen, - include_open, include_close, - defines, define_count, 1, - MallocBridge, FreeBridge, ctx); - - if (ctx->preprocessor == NULL) - goto build_context_failed; - - return ctx; - -build_context_failed: // ctx is allocated and zeroed before this is called. - destroy_context(ctx); - return NULL; -} // build_context - - -static const MOJOSHADER_parseData *build_failed_assembly(Context *ctx) -{ - assert(isfail(ctx)); - - if (ctx->out_of_memory) - return &MOJOSHADER_out_of_mem_data; - - MOJOSHADER_parseData *retval = NULL; - retval = (MOJOSHADER_parseData*) Malloc(ctx, sizeof(MOJOSHADER_parseData)); - if (retval == NULL) - return &MOJOSHADER_out_of_mem_data; - - memset(retval, '\0', sizeof (MOJOSHADER_parseData)); - retval->malloc = (ctx->malloc == MOJOSHADER_internal_malloc) ? NULL : ctx->malloc; - retval->free = (ctx->free == MOJOSHADER_internal_free) ? NULL : ctx->free; - retval->malloc_data = ctx->malloc_data; - - retval->error_count = errorlist_count(ctx->errors); - retval->errors = errorlist_flatten(ctx->errors); - - if (ctx->out_of_memory) - { - Free(ctx, retval->errors); - Free(ctx, retval); - return &MOJOSHADER_out_of_mem_data; - } // if - - return retval; -} // build_failed_assembly - - -static int blockscmp(BufferBlock *item, const uint8 *data, size_t len) -{ - if (len == 0) - return 1; // "match" - - while (item != NULL) - { - const size_t itemremain = item->bytes; - const size_t avail = len < itemremain ? len : itemremain; - if (memcmp(item->data, data, avail) != 0) - return 0; // not a match. - - if (len == avail) - return 1; // complete match! - - len -= avail; - data += avail; - item = item->next; - } // while - - return 0; // not a complete match. -} // blockscmp - - -ssize_t buffer_find(Buffer *buffer, const size_t start, - const void *_data, const size_t len) -{ - if (len == 0) - return 0; // I guess that's right. - - if (start >= buffer->total_bytes) - return -1; // definitely can't match. - - if (len > (buffer->total_bytes - start)) - return -1; // definitely can't match. - - // Find the start point somewhere in the center of a buffer. - BufferBlock *item = buffer->head; - const uint8 *ptr = item->data; - size_t pos = 0; - if (start > 0) - { - while (1) - { - assert(item != NULL); - if ((pos + item->bytes) > start) // start is in this block. - { - ptr = item->data + (start - pos); - break; - } // if - - pos += item->bytes; - item = item->next; - } // while - } // if - - // okay, we're at the origin of the search. - assert(item != NULL); - assert(ptr != NULL); - - const uint8 *data = (const uint8 *) _data; - const uint8 first = *data; - while (item != NULL) - { - const size_t itemremain = item->bytes - ((size_t)(ptr-item->data)); - ptr = (uint8 *) memchr(ptr, first, itemremain); - while (ptr != NULL) - { - const size_t retval = pos + ((size_t) (ptr - item->data)); - if (len == 1) - return retval; // we're done, here it is! - - const size_t itemremain = item->bytes - ((size_t)(ptr-item->data)); - const size_t avail = len < itemremain ? len : itemremain; - if ((avail == 0) || (memcmp(ptr, data, avail) == 0)) - { - // okay, we've got a (sub)string match! Move to the next block. - // check all blocks until we get a complete match or a failure. - if (blockscmp(item->next, data+avail, len-avail)) - return (ssize_t) retval; - } // if - - // try again, further in this block. - ptr = (uint8 *) memchr(ptr + 1, first, itemremain - 1); - } // while - - pos += item->bytes; - item = item->next; - if (item != NULL) - ptr = item->data; - } // while - - return -1; // no match found. -} // buffer_find - - -static uint32 add_ctab_bytes(Context *ctx, const uint8 *bytes, const size_t len) -{ - if (isfail(ctx)) - return 0; - - const size_t extra = CTAB_SIZE + sizeof (uint32); - const ssize_t pos = buffer_find(ctx->ctab, extra, bytes, len); - if (pos >= 0) // blob is already in here. - return ((uint32) pos) - sizeof (uint32); - - // add it to the byte pile... - const uint32 retval = ((uint32) buffer_size(ctx->ctab)) - sizeof (uint32); - buffer_append(ctx->ctab, bytes, len); - return retval; -} // add_ctab_bytes - - -static inline uint32 add_ctab_string(Context *ctx, const char *str) -{ - return add_ctab_bytes(ctx, (const uint8 *) str, strlen(str) + 1); -} // add_ctab_string - - -static uint32 add_ctab_typeinfo(Context *ctx, const MOJOSHADER_symbolTypeInfo *info); - -static uint32 add_ctab_members(Context *ctx, const MOJOSHADER_symbolTypeInfo *info) -{ - unsigned int i; - const size_t len = info->member_count * CMEMBERINFO_SIZE; - uint8 *bytes = (uint8 *) Malloc(ctx, len); - if (bytes == NULL) - return 0; - - union { uint8 *ui8; uint16 *ui16; uint32 *ui32; } ptr; - ptr.ui8 = bytes; - for (i = 0; i < info->member_count; i++) - { - const MOJOSHADER_symbolStructMember *member = &info->members[i]; - *(ptr.ui32++) = SWAP32(add_ctab_string(ctx, member->name)); - *(ptr.ui32++) = SWAP32(add_ctab_typeinfo(ctx, &member->info)); - } // for - - const uint32 retval = add_ctab_bytes(ctx, bytes, len); - Free(ctx, bytes); - return retval; -} // add_ctab_members - - -static uint32 add_ctab_typeinfo(Context *ctx, const MOJOSHADER_symbolTypeInfo *info) -{ - uint8 bytes[CTYPEINFO_SIZE]; - union { uint8 *ui8; uint16 *ui16; uint32 *ui32; } ptr; - ptr.ui8 = bytes; - - *(ptr.ui16++) = SWAP16((uint16) info->parameter_class); - *(ptr.ui16++) = SWAP16((uint16) info->parameter_type); - *(ptr.ui16++) = SWAP16((uint16) info->rows); - *(ptr.ui16++) = SWAP16((uint16) info->columns); - *(ptr.ui16++) = SWAP16((uint16) info->elements); - *(ptr.ui16++) = SWAP16((uint16) info->member_count); - *(ptr.ui32++) = SWAP32(add_ctab_members(ctx, info)); - - return add_ctab_bytes(ctx, bytes, sizeof (bytes)); -} // add_ctab_typeinfo - - -static uint32 add_ctab_info(Context *ctx, const MOJOSHADER_symbol *symbols, - const unsigned int symbol_count) -{ - unsigned int i; - const size_t len = symbol_count * CINFO_SIZE; - uint8 *bytes = (uint8 *) Malloc(ctx, len); - if (bytes == NULL) - return 0; - - union { uint8 *ui8; uint16 *ui16; uint32 *ui32; } ptr; - ptr.ui8 = bytes; - for (i = 0; i < symbol_count; i++) - { - const MOJOSHADER_symbol *sym = &symbols[i]; - *(ptr.ui32++) = SWAP32(add_ctab_string(ctx, sym->name)); - *(ptr.ui16++) = SWAP16((uint16) sym->register_set); - *(ptr.ui16++) = SWAP16((uint16) sym->register_index); - *(ptr.ui16++) = SWAP16((uint16) sym->register_count); - *(ptr.ui16++) = SWAP16(0); // reserved - *(ptr.ui32++) = SWAP32(add_ctab_typeinfo(ctx, &sym->info)); - *(ptr.ui32++) = SWAP32(0); // !!! FIXME: default value. - } // for - - const uint32 retval = add_ctab_bytes(ctx, bytes, len); - Free(ctx, bytes); - return retval; -} // add_ctab_info - - -static void output_ctab(Context *ctx, const MOJOSHADER_symbol *symbols, - unsigned int symbol_count, const char *creator) -{ - const size_t tablelen = CTAB_SIZE + sizeof (uint32); - - ctx->ctab = buffer_create(256, MallocBridge, FreeBridge, ctx); - if (ctx->ctab == NULL) - return; // out of memory. - - uint32 *table = (uint32 *) buffer_reserve(ctx->ctab, tablelen); - if (table == NULL) - { - buffer_destroy(ctx->ctab); - ctx->ctab = NULL; - return; // out of memory. - } // if - - *(table++) = SWAP32(CTAB_ID); - *(table++) = SWAP32(CTAB_SIZE); - *(table++) = SWAP32(add_ctab_string(ctx, creator)); - *(table++) = SWAP32(ctx->version_token); - *(table++) = SWAP32(((uint32) symbol_count)); - *(table++) = SWAP32(add_ctab_info(ctx, symbols, symbol_count)); - *(table++) = SWAP32(0); // build flags. - *(table++) = SWAP32(add_ctab_string(ctx, "")); // !!! FIXME: target? - - const size_t ctablen = buffer_size(ctx->ctab); - uint8 *buf = (uint8 *) buffer_flatten(ctx->ctab); - if (buf != NULL) - { - output_comment_bytes(ctx, buf, ctablen); - Free(ctx, buf); - } // if - - buffer_destroy(ctx->ctab); - ctx->ctab = NULL; -} // output_ctab - - -static void output_comments(Context *ctx, const char **comments, - unsigned int comment_count, - const MOJOSHADER_symbol *symbols, - unsigned int symbol_count) -{ - if (isfail(ctx)) - return; - - // make error messages sane if CTAB fails, etc. - const char *prev_fname = ctx->current_file; - const int prev_position = ctx->current_position; - ctx->current_file = NULL; - ctx->current_position = MOJOSHADER_POSITION_BEFORE; - - const char *creator = "MojoShader revision " MOJOSHADER_CHANGESET; - if (symbol_count > 0) - output_ctab(ctx, symbols, symbol_count, creator); - else - output_comment_string(ctx, creator); - - unsigned int i; - for (i = 0; i < comment_count; i++) - output_comment_string(ctx, comments[i]); - - ctx->current_file = prev_fname; - ctx->current_position = prev_position; -} // output_comments - - -static const MOJOSHADER_parseData *build_final_assembly(Context *ctx) -{ - if (isfail(ctx)) - return build_failed_assembly(ctx); - - // get the final bytecode! - const unsigned int output_len = (unsigned int) buffer_size(ctx->output); - unsigned char *bytecode = (unsigned char *) buffer_flatten(ctx->output); - buffer_destroy(ctx->output); - ctx->output = NULL; - - if (bytecode == NULL) - return build_failed_assembly(ctx); - - // This validates the shader; there are lots of things that are - // invalid, but will successfully parse in the assembler, - // generating bad bytecode; this will catch them without us - // having to duplicate most of the validation here. - // It also saves us the trouble of duplicating all the other work, - // like setting up the uniforms list, etc. - MOJOSHADER_parseData *retval = (MOJOSHADER_parseData *) - MOJOSHADER_parse(MOJOSHADER_PROFILE_BYTECODE, NULL, - bytecode, output_len, NULL, 0, NULL, 0, - ctx->malloc, ctx->free, ctx->malloc_data); - Free(ctx, bytecode); - - SourcePos *token_to_src = NULL; - if (retval->error_count > 0) - token_to_src = (SourcePos *) buffer_flatten(ctx->token_to_source); - buffer_destroy(ctx->token_to_source); - ctx->token_to_source = NULL; - - if (retval->error_count > 0) - { - if (token_to_src == NULL) - { - assert(ctx->out_of_memory); - MOJOSHADER_freeParseData(retval); - return build_failed_assembly(ctx); - } // if - - // on error, map the bytecode back to a line number. - int i; - for (i = 0; i < retval->error_count; i++) - { - MOJOSHADER_error *error = &retval->errors[i]; - if (error->error_position >= 0) - { - assert(retval != &MOJOSHADER_out_of_mem_data); - assert((error->error_position % sizeof (uint32)) == 0); - - const size_t pos = error->error_position / sizeof(uint32); - if (pos >= output_len) - error->error_position = -1; // oh well. - else - { - const SourcePos *srcpos = &token_to_src[pos]; - Free(ctx, (void *) error->filename); - char *fname = NULL; - if (srcpos->filename != NULL) - fname = StrDup(ctx, srcpos->filename); - error->error_position = srcpos->line; - error->filename = fname; // may be NULL, that's okay. - } // else - } // if - } // for - - Free(ctx, token_to_src); - } // if - - return retval; -} // build_final_assembly - - -// API entry point... - -const MOJOSHADER_parseData *MOJOSHADER_assemble(const char *filename, - const char *source, unsigned int sourcelen, - const char **comments, unsigned int comment_count, - const MOJOSHADER_symbol *symbols, - unsigned int symbol_count, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - const MOJOSHADER_parseData *retval = NULL; - Context *ctx = NULL; - - if ( ((m == NULL) && (f != NULL)) || ((m != NULL) && (f == NULL)) ) - return &MOJOSHADER_out_of_mem_data; // supply both or neither. - - ctx = build_context(filename, source, sourcelen, defines, define_count, - include_open, include_close, m, f, d); - if (ctx == NULL) - return &MOJOSHADER_out_of_mem_data; - - // Version token always comes first. - parse_version_token(ctx); - output_comments(ctx, comments, comment_count, symbols, symbol_count); - - // parse out the rest of the tokens after the version token... - Token token; - while ((token = nexttoken(ctx)) != TOKEN_EOI) - parse_token(ctx, token); - - ctx->current_file = NULL; - ctx->current_position = MOJOSHADER_POSITION_AFTER; - - output_token(ctx, 0x0000FFFF); // end token always 0x0000FFFF. - - retval = build_final_assembly(ctx); - destroy_context(ctx); - return retval; -} // MOJOSHADER_assemble - -// end of mojoshader_assembler.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_common.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_common.c deleted file mode 100644 index 99e6702c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_common.c +++ /dev/null @@ -1,1162 +0,0 @@ -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" -#ifndef MOJOSHADER_USE_SDL_STDLIB -#include -#endif /* MOJOSHADER_USE_SDL_STDLIB */ - -// Convenience functions for allocators... -#if !MOJOSHADER_FORCE_ALLOCATOR -static char zeromalloc = 0; -void * MOJOSHADERCALL MOJOSHADER_internal_malloc(int bytes, void *d) -{ - return (bytes == 0) ? &zeromalloc : malloc(bytes); -} // MOJOSHADER_internal_malloc -void MOJOSHADERCALL MOJOSHADER_internal_free(void *ptr, void *d) -{ - if ((ptr != &zeromalloc) && (ptr != NULL)) - free(ptr); -} // MOJOSHADER_internal_free -#endif - -MOJOSHADER_error MOJOSHADER_out_of_mem_error = { - "Out of memory", NULL, MOJOSHADER_POSITION_NONE -}; - -MOJOSHADER_parseData MOJOSHADER_out_of_mem_data = { - 1, &MOJOSHADER_out_of_mem_error, 0, 0, 0, 0, - MOJOSHADER_TYPE_UNKNOWN, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - - -typedef struct HashItem -{ - const void *key; - const void *value; - struct HashItem *next; -} HashItem; - -struct HashTable -{ - HashItem **table; - uint32 table_len; - int stackable; - void *data; - HashTable_HashFn hash; - HashTable_KeyMatchFn keymatch; - HashTable_NukeFn nuke; - MOJOSHADER_malloc m; - MOJOSHADER_free f; - void *d; -}; - -static inline uint32 calc_hash(const HashTable *table, const void *key) -{ - return table->hash(key, table->data) & (table->table_len-1); -} // calc_hash - -int hash_find(const HashTable *table, const void *key, const void **_value) -{ - HashItem *i; - void *data = table->data; - const uint32 hash = calc_hash(table, key); - HashItem *prev = NULL; - for (i = table->table[hash]; i != NULL; i = i->next) - { - if (table->keymatch(key, i->key, data)) - { - if (_value != NULL) - *_value = i->value; - - // Matched! Move to the front of list for faster lookup next time. - // (stackable tables have to remain in the same order, though!) - if ((!table->stackable) && (prev != NULL)) - { - assert(prev->next == i); - prev->next = i->next; - i->next = table->table[hash]; - table->table[hash] = i; - } // if - - return 1; - } // if - - prev = i; - } // for - - return 0; -} // hash_find - -int hash_iter(const HashTable *table, const void *key, - const void **_value, void **iter) -{ - HashItem *item = (HashItem *) *iter; - if (item == NULL) - item = table->table[calc_hash(table, key)]; - else - item = item->next; - - while (item != NULL) - { - if (table->keymatch(key, item->key, table->data)) - { - *_value = item->value; - *iter = item; - return 1; - } // if - item = item->next; - } // while - - // no more matches. - *_value = NULL; - *iter = NULL; - return 0; -} // hash_iter - -int hash_iter_keys(const HashTable *table, const void **_key, void **iter) -{ - HashItem *item = (HashItem *) *iter; - uint32 idx = 0; - - if (item != NULL) - { - const HashItem *orig = item; - item = item->next; - if (item == NULL) - idx = calc_hash(table, orig->key) + 1; - } // if - - while (!item && (idx < table->table_len)) - item = table->table[idx++]; // skip empty buckets... - - if (item == NULL) // no more matches? - { - *_key = NULL; - *iter = NULL; - return 0; - } // if - - *_key = item->key; - *iter = item; - return 1; -} // hash_iter_keys - -int hash_insert(HashTable *table, const void *key, const void *value) -{ - HashItem *item = NULL; - const uint32 hash = calc_hash(table, key); - if ( (!table->stackable) && (hash_find(table, key, NULL)) ) - return 0; - - // !!! FIXME: grow and rehash table if it gets too saturated. - item = (HashItem *) table->m(sizeof (HashItem), table->d); - if (item == NULL) - return -1; - - item->key = key; - item->value = value; - item->next = table->table[hash]; - table->table[hash] = item; - - return 1; -} // hash_insert - -HashTable *hash_create(void *data, const HashTable_HashFn hashfn, - const HashTable_KeyMatchFn keymatchfn, - const HashTable_NukeFn nukefn, - const int stackable, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - const uint32 initial_table_size = 256; - const uint32 alloc_len = sizeof (HashItem *) * initial_table_size; - HashTable *table = (HashTable *) m(sizeof (HashTable), d); - if (table == NULL) - return NULL; - memset(table, '\0', sizeof (HashTable)); - - table->table = (HashItem **) m(alloc_len, d); - if (table->table == NULL) - { - f(table, d); - return NULL; - } // if - - memset(table->table, '\0', alloc_len); - table->table_len = initial_table_size; - table->stackable = stackable; - table->data = data; - table->hash = hashfn; - table->keymatch = keymatchfn; - table->nuke = nukefn; - table->m = m; - table->f = f; - table->d = d; - return table; -} // hash_create - -void hash_destroy(HashTable *table, const void *ctx) -{ - uint32 i; - void *data = table->data; - MOJOSHADER_free f = table->f; - void *d = table->d; - for (i = 0; i < table->table_len; i++) - { - HashItem *item = table->table[i]; - while (item != NULL) - { - HashItem *next = item->next; - table->nuke(ctx, item->key, item->value, data); - f(item, d); - item = next; - } // while - } // for - - f(table->table, d); - f(table, d); -} // hash_destroy - -int hash_remove(HashTable *table, const void *key, const void *ctx) -{ - HashItem *item = NULL; - HashItem *prev = NULL; - void *data = table->data; - const uint32 hash = calc_hash(table, key); - for (item = table->table[hash]; item != NULL; item = item->next) - { - if (table->keymatch(key, item->key, data)) - { - if (prev != NULL) - prev->next = item->next; - else - table->table[hash] = item->next; - - table->nuke(ctx, item->key, item->value, data); - table->f(item, table->d); - return 1; - } // if - - prev = item; - } // for - - return 0; -} // hash_remove - - -// this is djb's xor hashing function. -static inline uint32 hash_string_djbxor(const char *str, size_t len) -{ - register uint32 hash = 5381; - while (len--) - hash = ((hash << 5) + hash) ^ *(str++); - return hash; -} // hash_string_djbxor - -static inline uint32 hash_string(const char *str, size_t len) -{ - return hash_string_djbxor(str, len); -} // hash_string - -uint32 hash_hash_string(const void *sym, void *data) -{ - (void) data; - return hash_string((const char*) sym, strlen((const char *) sym)); -} // hash_hash_string - -int hash_keymatch_string(const void *a, const void *b, void *data) -{ - (void) data; - return (strcmp((const char *) a, (const char *) b) == 0); -} // hash_keymatch_string - - -// string -> string map... - -static void stringmap_nuke_noop(const void *ctx, const void *key, const void *val, void *d) {} - -static void stringmap_nuke(const void *ctx, const void *key, const void *val, void *d) -{ - StringMap *smap = (StringMap *) d; - smap->f((void *) key, smap->d); - smap->f((void *) val, smap->d); -} // stringmap_nuke - -StringMap *stringmap_create(const int copy, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d) -{ - HashTable_NukeFn nuke = copy ? stringmap_nuke : stringmap_nuke_noop; - StringMap *smap; - smap = hash_create(0,hash_hash_string,hash_keymatch_string,nuke,0,m,f,d); - if (smap != NULL) - smap->data = smap; - return smap; -} // stringmap_create - -void stringmap_destroy(StringMap *smap) -{ - hash_destroy(smap, NULL); -} // stringmap_destroy - -int stringmap_insert(StringMap *smap, const char *key, const char *value) -{ - assert(key != NULL); - if (smap->nuke == stringmap_nuke_noop) // no copy? - return hash_insert(smap, key, value); - - int rc = -1; - char *k = (char *) smap->m(strlen(key) + 1, smap->d); - char *v = (char *) (value ? smap->m(strlen(value) + 1, smap->d) : NULL); - int failed = ( (!k) || ((!v) && (value)) ); - - if (!failed) - { - strcpy(k, key); - if (value != NULL) - strcpy(v, value); - failed = ((rc = hash_insert(smap, k, v)) <= 0); - } // if - - if (failed) - { - smap->f(k, smap->d); - smap->f(v, smap->d); - } // if - - return rc; -} // stringmap_insert - -int stringmap_remove(StringMap *smap, const char *key) -{ - return hash_remove(smap, key, NULL); -} // stringmap_remove - -int stringmap_find(const StringMap *smap, const char *key, const char **_value) -{ - const void *value = NULL; - const int retval = hash_find(smap, key, &value); - *_value = (const char *) value; - return retval; -} // stringmap_find - - -// The string cache... !!! FIXME: use StringMap internally for this. - -typedef struct StringBucket -{ - char *string; - struct StringBucket *next; -} StringBucket; - -struct StringCache -{ - StringBucket **hashtable; - uint32 table_size; - MOJOSHADER_malloc m; - MOJOSHADER_free f; - void *d; -}; - - -const char *stringcache(StringCache *cache, const char *str) -{ - return stringcache_len(cache, str, strlen(str)); -} // stringcache - -static const char *stringcache_len_internal(StringCache *cache, - const char *str, - const unsigned int len, - const int addmissing) -{ - const uint8 hash = hash_string(str, len) & (cache->table_size-1); - StringBucket *bucket = cache->hashtable[hash]; - StringBucket *prev = NULL; - while (bucket) - { - const char *bstr = bucket->string; - if ((strncmp(bstr, str, len) == 0) && (bstr[len] == 0)) - { - // Matched! Move this to the front of the list. - if (prev != NULL) - { - assert(prev->next == bucket); - prev->next = bucket->next; - bucket->next = cache->hashtable[hash]; - cache->hashtable[hash] = bucket; - } // if - return bstr; // already cached - } // if - prev = bucket; - bucket = bucket->next; - } // while - - // no match! - if (!addmissing) - return NULL; - - // add to the table. - bucket = (StringBucket *) cache->m(sizeof (StringBucket) + len + 1, cache->d); - if (bucket == NULL) - return NULL; - bucket->string = (char *)(bucket + 1); - memcpy(bucket->string, str, len); - bucket->string[len] = '\0'; - bucket->next = cache->hashtable[hash]; - cache->hashtable[hash] = bucket; - return bucket->string; -} // stringcache_len_internal - -const char *stringcache_len(StringCache *cache, const char *str, - const unsigned int len) -{ - return stringcache_len_internal(cache, str, len, 1); -} // stringcache_len - -int stringcache_iscached(StringCache *cache, const char *str) -{ - return (stringcache_len_internal(cache, str, strlen(str), 0) != NULL); -} // stringcache_iscached - -const char *stringcache_fmt(StringCache *cache, const char *fmt, ...) -{ - char buf[128]; // use the stack if reasonable. - char *ptr = NULL; - int len = 0; // number of chars, NOT counting null-terminator! - va_list ap; - - va_start(ap, fmt); - len = vsnprintf(buf, sizeof (buf), fmt, ap); - va_end(ap); - - if (len > sizeof (buf)) - { - ptr = (char *) cache->m(len, cache->d); - if (ptr == NULL) - return NULL; - - va_start(ap, fmt); - vsnprintf(ptr, len, fmt, ap); - va_end(ap); - } // if - - const char *retval = stringcache_len(cache, ptr ? ptr : buf, len); - if (ptr != NULL) - cache->f(ptr, cache->d); - - return retval; -} // stringcache_fmt - -StringCache *stringcache_create(MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - const uint32 initial_table_size = 256; - const size_t tablelen = sizeof (StringBucket *) * initial_table_size; - StringCache *cache = (StringCache *) m(sizeof (StringCache), d); - if (!cache) - return NULL; - memset(cache, '\0', sizeof (StringCache)); - - cache->hashtable = (StringBucket **) m(tablelen, d); - if (!cache->hashtable) - { - f(cache, d); - return NULL; - } // if - memset(cache->hashtable, '\0', tablelen); - - cache->table_size = initial_table_size; - cache->m = m; - cache->f = f; - cache->d = d; - return cache; -} // stringcache_create - -void stringcache_destroy(StringCache *cache) -{ - if (cache == NULL) - return; - - MOJOSHADER_free f = cache->f; - void *d = cache->d; - size_t i; - - for (i = 0; i < cache->table_size; i++) - { - StringBucket *bucket = cache->hashtable[i]; - cache->hashtable[i] = NULL; - while (bucket) - { - StringBucket *next = bucket->next; - f(bucket, d); - bucket = next; - } // while - } // for - - f(cache->hashtable, d); - f(cache, d); -} // stringcache_destroy - - -// We chain errors as a linked list with a head/tail for easy appending. -// These get flattened before passing to the application. -typedef struct ErrorItem -{ - MOJOSHADER_error error; - struct ErrorItem *next; -} ErrorItem; - -struct ErrorList -{ - ErrorItem head; - ErrorItem *tail; - int count; - MOJOSHADER_malloc m; - MOJOSHADER_free f; - void *d; -}; - -ErrorList *errorlist_create(MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - ErrorList *retval = (ErrorList *) m(sizeof (ErrorList), d); - if (retval != NULL) - { - memset(retval, '\0', sizeof (ErrorList)); - retval->tail = &retval->head; - retval->m = m; - retval->f = f; - retval->d = d; - } // if - - return retval; -} // errorlist_create - - -int errorlist_add(ErrorList *list, const char *fname, - const int errpos, const char *str) -{ - return errorlist_add_fmt(list, fname, errpos, "%s", str); -} // errorlist_add - - -int errorlist_add_fmt(ErrorList *list, const char *fname, - const int errpos, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - const int retval = errorlist_add_va(list, fname, errpos, fmt, ap); - va_end(ap); - return retval; -} // errorlist_add_fmt - - -int errorlist_add_va(ErrorList *list, const char *_fname, - const int errpos, const char *fmt, va_list va) -{ - ErrorItem *error = (ErrorItem *) list->m(sizeof (ErrorItem), list->d); - if (error == NULL) - return 0; - - char *fname = NULL; - if (_fname != NULL) - { - fname = (char *) list->m(strlen(_fname) + 1, list->d); - if (fname == NULL) - { - list->f(error, list->d); - return 0; - } // if - strcpy(fname, _fname); - } // if - - char scratch[128]; - va_list ap; - va_copy(ap, va); - int len = vsnprintf(scratch, sizeof (scratch), fmt, ap); - va_end(ap); - - // on some versions of the windows C runtime, vsnprintf() returns -1 - // if the buffer overflows instead of the length the string would have - // been as expected. - // In this case we make another copy of va and fetch the length only - // with another call to _vscprintf - -#if defined(_WIN32) && !defined(MOJOSHADER_USE_SDL_STDLIB) - if (len == -1) - { - va_copy(ap, va); - len = _vscprintf(fmt, ap); - va_end(ap); - } -#endif - - char *failstr = (char *) list->m(len + 1, list->d); - if (failstr == NULL) - { - list->f(error, list->d); - list->f(fname, list->d); - return 0; - } // if - - // If we overflowed our scratch buffer, that's okay. We were going to - // allocate anyhow...the scratch buffer just lets us avoid a second - // run of vsnprintf(). - if (len < sizeof (scratch)) - strcpy(failstr, scratch); // copy it over. - else - { - va_copy(ap, va); - vsnprintf(failstr, len + 1, fmt, ap); // rebuild it. - va_end(ap); - } // else - - error->error.error = failstr; - error->error.filename = fname; - error->error.error_position = errpos; - error->next = NULL; - - list->tail->next = error; - list->tail = error; - - list->count++; - return 1; -} // errorlist_add_va - - -int errorlist_count(ErrorList *list) -{ - return list->count; -} // errorlist_count - - -MOJOSHADER_error *errorlist_flatten(ErrorList *list) -{ - if (list->count == 0) - return NULL; - - int total = 0; - MOJOSHADER_error *retval = (MOJOSHADER_error *) - list->m(sizeof (MOJOSHADER_error) * list->count, list->d); - if (retval == NULL) - return NULL; - - ErrorItem *item = list->head.next; - while (item != NULL) - { - ErrorItem *next = item->next; - // reuse the string allocations - memcpy(&retval[total], &item->error, sizeof (MOJOSHADER_error)); - list->f(item, list->d); - item = next; - total++; - } // while - - assert(total == list->count); - list->count = 0; - list->head.next = NULL; - list->tail = &list->head; - return retval; -} // errorlist_flatten - - -void errorlist_destroy(ErrorList *list) -{ - if (list == NULL) - return; - - MOJOSHADER_free f = list->f; - void *d = list->d; - ErrorItem *item = list->head.next; - while (item != NULL) - { - ErrorItem *next = item->next; - f((void *) item->error.error, d); - f((void *) item->error.filename, d); - f(item, d); - item = next; - } // while - f(list, d); -} // errorlist_destroy - - -Buffer *buffer_create(size_t blksz, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d) -{ - Buffer *buffer = (Buffer *) m(sizeof (Buffer), d); - if (buffer != NULL) - { - memset(buffer, '\0', sizeof (Buffer)); - buffer->block_size = blksz; - buffer->m = m; - buffer->f = f; - buffer->d = d; - } // if - return buffer; -} // buffer_create - -char *buffer_reserve(Buffer *buffer, const size_t len) -{ - // note that we make the blocks bigger than blocksize when we have enough - // data to overfill a fresh block, to reduce allocations. - const size_t blocksize = buffer->block_size; - - if (len == 0) - return NULL; - - if (buffer->tail != NULL) - { - const size_t tailbytes = buffer->tail->bytes; - const size_t avail = (tailbytes >= blocksize) ? 0 : blocksize - tailbytes; - if (len <= avail) - { - buffer->tail->bytes += len; - buffer->total_bytes += len; - assert(buffer->tail->bytes <= blocksize); - return (char *) buffer->tail->data + tailbytes; - } // if - } // if - - // need to allocate a new block (even if a previous block wasn't filled, - // so this buffer is contiguous). - const size_t bytecount = len > blocksize ? len : blocksize; - const size_t malloc_len = sizeof (BufferBlock) + bytecount; - BufferBlock *item = (BufferBlock *) buffer->m(malloc_len, buffer->d); - if (item == NULL) - return NULL; - - item->data = ((uint8 *) item) + sizeof (BufferBlock); - item->bytes = len; - item->next = NULL; - if (buffer->tail != NULL) - buffer->tail->next = item; - else - buffer->head = item; - buffer->tail = item; - - buffer->total_bytes += len; - - return (char *) item->data; -} // buffer_reserve - -int buffer_append(Buffer *buffer, const void *_data, size_t len) -{ - const uint8 *data = (const uint8 *) _data; - - // note that we make the blocks bigger than blocksize when we have enough - // data to overfill a fresh block, to reduce allocations. - const size_t blocksize = buffer->block_size; - - if (len == 0) - return 1; - - if (buffer->tail != NULL) - { - const size_t tailbytes = buffer->tail->bytes; - const size_t avail = (tailbytes >= blocksize) ? 0 : blocksize - tailbytes; - const size_t cpy = (avail > len) ? len : avail; - if (cpy > 0) - { - memcpy(buffer->tail->data + tailbytes, data, cpy); - len -= cpy; - data += cpy; - buffer->tail->bytes += cpy; - buffer->total_bytes += cpy; - assert(buffer->tail->bytes <= blocksize); - } // if - } // if - - if (len > 0) - { - assert((!buffer->tail) || (buffer->tail->bytes >= blocksize)); - const size_t bytecount = len > blocksize ? len : blocksize; - const size_t malloc_len = sizeof (BufferBlock) + bytecount; - BufferBlock *item = (BufferBlock *) buffer->m(malloc_len, buffer->d); - if (item == NULL) - return 0; - - item->data = ((uint8 *) item) + sizeof (BufferBlock); - item->bytes = len; - item->next = NULL; - if (buffer->tail != NULL) - buffer->tail->next = item; - else - buffer->head = item; - buffer->tail = item; - - memcpy(item->data, data, len); - buffer->total_bytes += len; - } // if - - return 1; -} // buffer_append - -int buffer_append_fmt(Buffer *buffer, const char *fmt, ...) -{ - va_list ap; - va_start(ap, fmt); - const int retval = buffer_append_va(buffer, fmt, ap); - va_end(ap); - return retval; -} // buffer_append_fmt - -int buffer_append_va(Buffer *buffer, const char *fmt, va_list va) -{ - char scratch[256]; - - va_list ap; - va_copy(ap, va); - const int len = vsnprintf(scratch, sizeof (scratch), fmt, ap); - va_end(ap); - - // If we overflowed our scratch buffer, heap allocate and try again. - - if (len == 0) - return 1; // nothing to do. - else if (len < sizeof (scratch)) - return buffer_append(buffer, scratch, len); - - char *buf = (char *) buffer->m(len + 1, buffer->d); - if (buf == NULL) - return 0; - va_copy(ap, va); - vsnprintf(buf, len + 1, fmt, ap); // rebuild it. - va_end(ap); - const int retval = buffer_append(buffer, buf, len); - buffer->f(buf, buffer->d); - return retval; -} // buffer_append_va - -size_t buffer_size(Buffer *buffer) -{ - return buffer->total_bytes; -} // buffer_size - -void buffer_empty(Buffer *buffer) -{ - BufferBlock *item = buffer->head; - while (item != NULL) - { - BufferBlock *next = item->next; - buffer->f(item, buffer->d); - item = next; - } // while - buffer->head = buffer->tail = NULL; - buffer->total_bytes = 0; -} // buffer_empty - -char *buffer_flatten(Buffer *buffer) -{ - char *retval = (char *) buffer->m(buffer->total_bytes + 1, buffer->d); - if (retval == NULL) - return NULL; - BufferBlock *item = buffer->head; - char *ptr = retval; - while (item != NULL) - { - BufferBlock *next = item->next; - memcpy(ptr, item->data, item->bytes); - ptr += item->bytes; - buffer->f(item, buffer->d); - item = next; - } // while - *ptr = '\0'; - - assert(ptr == (retval + buffer->total_bytes)); - - buffer->head = buffer->tail = NULL; - buffer->total_bytes = 0; - - return retval; -} // buffer_flatten - -char *buffer_merge(Buffer **buffers, const size_t n, size_t *_len) -{ - Buffer *first = NULL; - size_t len = 0; - size_t i; - for (i = 0; i < n; i++) - { - Buffer *buffer = buffers[i]; - if (buffer == NULL) - continue; - if (first == NULL) - first = buffer; - len += buffer->total_bytes; - } // for - - char *retval = (char *) (first ? first->m(len + 1, first->d) : NULL); - if (retval == NULL) - { - *_len = 0; - return NULL; - } // if - - *_len = len; - char *ptr = retval; - for (i = 0; i < n; i++) - { - Buffer *buffer = buffers[i]; - if (buffer == NULL) - continue; - BufferBlock *item = buffer->head; - while (item != NULL) - { - BufferBlock *next = item->next; - memcpy(ptr, item->data, item->bytes); - ptr += item->bytes; - buffer->f(item, buffer->d); - item = next; - } // while - - buffer->head = buffer->tail = NULL; - buffer->total_bytes = 0; - } // for - *ptr = '\0'; - - assert(ptr == (retval + len)); - - return retval; -} // buffer_merge - -void buffer_destroy(Buffer *buffer) -{ - if (buffer != NULL) - { - MOJOSHADER_free f = buffer->f; - void *d = buffer->d; - buffer_empty(buffer); - f(buffer, d); - } // if -} // buffer_destroy - -void buffer_patch(Buffer *buffer, const size_t start, - const void *_data, const size_t len) -{ - if (len == 0) - return; // Nothing to do. - - if ((start + len) > buffer->total_bytes) - return; // definitely can't patch. - - // Find the start point somewhere in the center of a buffer. - BufferBlock *item = buffer->head; - size_t pos = 0; - if (start > 0) - { - while (1) - { - assert(item != NULL); - if ((pos + item->bytes) > start) // start is in this block. - break; - - pos += item->bytes; - item = item->next; - } // while - } // if - - const uint8 *data = (const uint8 *) _data; - size_t write_pos = start - pos; - size_t write_remain = len; - size_t written = 0; - while (write_remain) - { - size_t write_end = write_pos + write_remain; - if (write_end > item->bytes) - write_end = item->bytes; - - size_t to_write = write_end - write_pos; - memcpy(item->data + write_pos, data + written, to_write); - write_remain -= to_write; - written += to_write; - write_pos = 0; - item = item->next; - } // while -} // buffer_patch - -// Based on SDL_string.c's SDL_PrintFloat function -size_t MOJOSHADER_printFloat(char *text, size_t maxlen, float arg) -{ - size_t len; - size_t left = maxlen; - char *textstart = text; - - int precision = 9; - - if (isnan(arg)) - { - if (left > 3) - { - snprintf(text, left, "NaN"); - left -= 3; - } // if - text += 3; - } // if - else if (isinf(arg)) - { - if (left > 3) - { - snprintf(text, left, "inf"); - left -= 3; - } // if - text += 3; - } // else if - else if (arg) - { - /* This isn't especially accurate, but hey, it's easy. :) */ - unsigned long value; - - if (arg < 0) - { - if (left > 1) - { - *text = '-'; - --left; - } // if - ++text; - arg = -arg; - } // if - value = (unsigned long) arg; - len = snprintf(text, left, "%lu", value); - text += len; - if (len >= left) - left = (left < 1) ? left : 1; - else - left -= len; - arg -= value; - - int mult = 10; - if (left > 1) - { - *text = '.'; - --left; - } // if - ++text; - while (precision-- > 0) - { - value = (unsigned long) (arg * mult); - len = snprintf(text, left, "%lu", value); - text += len; - if (len >= left) - left = (left < 1) ? left : 1; - else - left -= len; - arg -= (double) value / mult; - if (arg < 0) arg = -arg; // Sometimes that bit gets flipped... - mult *= 10; - } // while - } // if - else - { - if (left > 3) - { - snprintf(text, left, "0.0"); - left -= 3; - } // if - text += 3; - } // else - - return (text - textstart); -} // MOJOSHADER_printFloat - -#if SUPPORT_PROFILE_SPIRV -#include "spirv/spirv.h" -#include "spirv/GLSL.std.450.h" -void MOJOSHADER_spirv_link_attributes(const MOJOSHADER_parseData *vertex, - const MOJOSHADER_parseData *pixel) -{ - int i; - uint32 attr_loc = 0; - uint32 vOffset, pOffset; - int vDataLen = vertex->output_len - sizeof(SpirvPatchTable); - int pDataLen = pixel->output_len - sizeof(SpirvPatchTable); - SpirvPatchTable *vTable = (SpirvPatchTable *) &vertex->output[vDataLen]; - SpirvPatchTable *pTable = (SpirvPatchTable *) &pixel->output[pDataLen]; - const uint32 texcoord0Loc = pTable->attrib_offsets[MOJOSHADER_USAGE_TEXCOORD][0]; - - // We need locations for color outputs first! - for (i = 0; i < pixel->output_count; i++) - { - const MOJOSHADER_attribute *pAttr = &pixel->outputs[i]; - if (pAttr->usage != MOJOSHADER_USAGE_COLOR) - { - // This should be FragDepth, which is builtin - assert(pAttr->usage == MOJOSHADER_USAGE_DEPTH); - continue; - } // if - - // Set the loc for the output declaration... - pOffset = pTable->output_offsets[pAttr->index]; - assert(pOffset > 0); - ((uint32 *) pixel->output)[pOffset] = attr_loc; - - // Set the same value for the vertex output/pixel input... - pOffset = pTable->attrib_offsets[pAttr->usage][pAttr->index]; - if (pOffset) - ((uint32 *) pixel->output)[pOffset] = attr_loc; - vOffset = vTable->attrib_offsets[pAttr->usage][pAttr->index]; - if (vOffset) - ((uint32 *) vertex->output)[vOffset] = attr_loc; - - // ... increment location index, finally. - attr_loc++; - } // for - - // Okay, now we can start linking pixel/vertex attributes - for (i = 0; i < pixel->attribute_count; i++) - { - const MOJOSHADER_attribute *pAttr = &pixel->attributes[i]; - if (pAttr->usage == MOJOSHADER_USAGE_UNKNOWN) - continue; // Probably something like VPOS, ignore! - if (pAttr->usage == MOJOSHADER_USAGE_DEPTH) - continue; // This should be FragDepth, which is builtin - if (pAttr->usage == MOJOSHADER_USAGE_COLOR && pTable->output_offsets[pAttr->index]) - continue; - - // The input may not exist in the output list! - pOffset = pTable->attrib_offsets[pAttr->usage][pAttr->index]; - vOffset = vTable->attrib_offsets[pAttr->usage][pAttr->index]; - ((uint32 *) pixel->output)[pOffset] = attr_loc; - if (vOffset) - ((uint32 *) vertex->output)[vOffset] = attr_loc; - attr_loc++; - } // for - - // There may be outputs not present in the input list! - for (i = 0; i < vertex->output_count; i++) - { - const MOJOSHADER_attribute *vAttr = &vertex->outputs[i]; - assert(vAttr->usage != MOJOSHADER_USAGE_UNKNOWN); - if (vAttr->usage == MOJOSHADER_USAGE_POSITION && vAttr->index == 0) - continue; - if (vAttr->usage == MOJOSHADER_USAGE_POINTSIZE && vAttr->index == 0) - continue; - if (vAttr->usage == MOJOSHADER_USAGE_COLOR && pTable->output_offsets[vAttr->index]) - continue; - - if (!pTable->attrib_offsets[vAttr->usage][vAttr->index]) - { - vOffset = vTable->attrib_offsets[vAttr->usage][vAttr->index]; - ((uint32 *) vertex->output)[vOffset] = attr_loc++; - } // if - } // for - - // gl_PointCoord support - if (texcoord0Loc) - { - if (vTable->attrib_offsets[MOJOSHADER_USAGE_POINTSIZE][0] > 0) - { - ((uint32 *) pixel->output)[pTable->pointcoord_var_offset + 1] = pTable->tid_pvec2i; - ((uint32 *) pixel->output)[pTable->pointcoord_load_offset + 1] = pTable->tid_vec2; - ((uint32 *) pixel->output)[texcoord0Loc - 1] = SpvDecorationBuiltIn; - ((uint32 *) pixel->output)[texcoord0Loc] = SpvBuiltInPointCoord; - } // if - else - { - ((uint32 *) pixel->output)[pTable->pointcoord_var_offset + 1] = pTable->tid_pvec4i; - ((uint32 *) pixel->output)[pTable->pointcoord_load_offset + 1] = pTable->tid_vec4; - ((uint32 *) pixel->output)[texcoord0Loc - 1] = SpvDecorationLocation; - // texcoord0Loc should already have attr_loc from the above work! - } // else - } // if -} // MOJOSHADER_spirv_link_attributes -#endif - -// end of mojoshader_common.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_compiler.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_compiler.c deleted file mode 100644 index 9ec0bb48..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_compiler.c +++ /dev/null @@ -1,6297 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -// !!! FIXME: this needs to be split into separate source files: -// !!! FIXME: parse, AST, IR, etc. The problem is we need to deal with the -// !!! FIXME: "Context" struct being passed around everywhere. - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#if DEBUG_COMPILER_PARSER -#define LEMON_SUPPORT_TRACING 1 -#endif - -// !!! FIXME: I'd like to lose this. It's really inefficient. Just keep a -// !!! FIXME: (tail) on these list structures instead? -#define REVERSE_LINKED_LIST(typ, head) { \ - if ((head) && (head->next)) { \ - typ *tmp = NULL; \ - typ *tmp1 = NULL; \ - while (head != NULL) { \ - tmp = head; \ - head = head->next; \ - tmp->next = tmp1; \ - tmp1 = tmp; \ - } \ - head = tmp; \ - } \ -} - -static inline int operator_is_unary(const MOJOSHADER_astNodeType op) -{ - return ( (op > MOJOSHADER_AST_OP_START_RANGE_UNARY) && - (op < MOJOSHADER_AST_OP_END_RANGE_UNARY) ); -} // operator_is_unary - -static inline int operator_is_binary(const MOJOSHADER_astNodeType op) -{ - return ( (op > MOJOSHADER_AST_OP_START_RANGE_BINARY) && - (op < MOJOSHADER_AST_OP_END_RANGE_BINARY) ); -} // operator_is_binary - -static inline int operator_is_ternary(const MOJOSHADER_astNodeType op) -{ - return ( (op > MOJOSHADER_AST_OP_START_RANGE_TERNARY) && - (op < MOJOSHADER_AST_OP_END_RANGE_TERNARY) ); -} // operator_is_ternary - - -typedef union TokenData -{ - int64 i64; - double dbl; - const char *string; - const MOJOSHADER_astDataType *datatype; -} TokenData; - - -// This tracks data types and variables, and notes when they enter/leave scope. - -typedef struct SymbolScope -{ - const char *symbol; - const MOJOSHADER_astDataType *datatype; - int index; // unique positive value within a function, negative if global. - int referenced; // non-zero if something looked for this symbol (so we know it's used). - struct SymbolScope *next; -} SymbolScope; - -typedef struct SymbolMap -{ - HashTable *hash; - SymbolScope *scope; -} SymbolMap; - -typedef struct LoopLabels -{ - int start; // loop's start label during IR build. - int end; // loop's end label during IR build. - struct LoopLabels *prev; -} LoopLabels; - -// Compile state, passed around all over the place. - -typedef struct Context -{ - int isfail; - int out_of_memory; - MOJOSHADER_malloc malloc; - MOJOSHADER_free free; - void *malloc_data; - ErrorList *errors; - ErrorList *warnings; - StringCache *strcache; - const char *sourcefile; // current source file that we're parsing. - unsigned int sourceline; // current line in sourcefile that we're parsing. - SymbolMap usertypes; - SymbolMap variables; - MOJOSHADER_astNode *ast; // Abstract Syntax Tree - const char *source_profile; - int is_func_scope; // non-zero if semantic analysis is in function scope. - int loop_count; - int switch_count; - int var_index; // next variable index for current function. - int global_var_index; // next variable index for global scope. - int user_func_index; // next function index for user-defined functions. - int intrinsic_func_index; // next function index for intrinsic functions. - - MOJOSHADER_irStatement **ir; // intermediate representation. - int ir_label_count; // next unused IR label index. - int ir_temp_count; // next unused IR temporary value index. - int ir_end; // current function's end label during IR build. - int ir_ret; // temp that holds current function's retval during IR build. - LoopLabels *ir_loop; // nested loop boundary labels during IR build. - - // Cache intrinsic types for fast lookup and consistent pointer values. - MOJOSHADER_astDataType dt_none; - MOJOSHADER_astDataType dt_bool; - MOJOSHADER_astDataType dt_int; - MOJOSHADER_astDataType dt_uint; - MOJOSHADER_astDataType dt_float; - MOJOSHADER_astDataType dt_float_snorm; - MOJOSHADER_astDataType dt_float_unorm; - MOJOSHADER_astDataType dt_half; - MOJOSHADER_astDataType dt_double; - MOJOSHADER_astDataType dt_string; - MOJOSHADER_astDataType dt_sampler1d; - MOJOSHADER_astDataType dt_sampler2d; - MOJOSHADER_astDataType dt_sampler3d; - MOJOSHADER_astDataType dt_samplercube; - MOJOSHADER_astDataType dt_samplerstate; - MOJOSHADER_astDataType dt_samplercompstate; - MOJOSHADER_astDataType dt_buf_bool; - MOJOSHADER_astDataType dt_buf_int; - MOJOSHADER_astDataType dt_buf_uint; - MOJOSHADER_astDataType dt_buf_half; - MOJOSHADER_astDataType dt_buf_float; - MOJOSHADER_astDataType dt_buf_double; - MOJOSHADER_astDataType dt_buf_float_snorm; - MOJOSHADER_astDataType dt_buf_float_unorm; - - Buffer *garbage; // this is sort of hacky. -} Context; - - -// !!! FIXME: cut and paste between every damned source file follows... -// !!! FIXME: We need to make some sort of ContextBase that applies to all -// !!! FIXME: files and move this stuff to mojoshader_common.c ... - -// Convenience functions for allocators... - -static inline void out_of_memory(Context *ctx) -{ - ctx->isfail = ctx->out_of_memory = 1; -} // out_of_memory - -static inline void *Malloc(Context *ctx, const size_t len) -{ - void *retval = ctx->malloc((int) len, ctx->malloc_data); - if (retval == NULL) - out_of_memory(ctx); - return retval; -} // Malloc - -static inline char *StrDup(Context *ctx, const char *str) -{ - char *retval = (char *) Malloc(ctx, strlen(str) + 1); - if (retval != NULL) - strcpy(retval, str); - return retval; -} // StrDup - -static inline void Free(Context *ctx, void *ptr) -{ - ctx->free(ptr, ctx->malloc_data); -} // Free - -static void *MallocBridge(int bytes, void *data) -{ - return Malloc((Context *) data, (size_t) bytes); -} // MallocBridge - -static void FreeBridge(void *ptr, void *data) -{ - Free((Context *) data, ptr); -} // FreeBridge - -static void failf(Context *ctx, const char *fmt, ...) ISPRINTF(2,3); -static void failf(Context *ctx, const char *fmt, ...) -{ - ctx->isfail = 1; - if (ctx->out_of_memory) - return; - - va_list ap; - va_start(ap, fmt); - errorlist_add_va(ctx->errors, ctx->sourcefile, ctx->sourceline, fmt, ap); - va_end(ap); -} // failf - -static inline void fail(Context *ctx, const char *reason) -{ - failf(ctx, "%s", reason); -} // fail - -static void warnf(Context *ctx, const char *fmt, ...) ISPRINTF(2,3); -static void warnf(Context *ctx, const char *fmt, ...) -{ - if (ctx->out_of_memory) - return; - - va_list ap; - va_start(ap, fmt); - errorlist_add_va(ctx->warnings, ctx->sourcefile, ctx->sourceline, fmt, ap); - va_end(ap); -} // warnf - -static inline void warn(Context *ctx, const char *reason) -{ - warnf(ctx, "%s", reason); -} // warn - -static inline int isfail(const Context *ctx) -{ - return ctx->isfail; -} // isfail - - -static void symbolmap_nuke(const void *k, const void *v, void *d) {/*no-op*/} - -static int create_symbolmap(Context *ctx, SymbolMap *map) -{ - // !!! FIXME: should compare string pointer, with string in cache. - map->scope = NULL; - map->hash = hash_create(ctx, hash_hash_string, hash_keymatch_string, - symbolmap_nuke, 1, MallocBridge, FreeBridge, ctx); - return (map->hash != NULL); -} // create_symbolmap - -static int datatypes_match(const MOJOSHADER_astDataType *a, - const MOJOSHADER_astDataType *b) -{ - int i; - - if (a == b) - return 1; - else if (a->type != b->type) - return 0; - - switch (a->type) - { - case MOJOSHADER_AST_DATATYPE_STRUCT: - if (a->structure.member_count != b->structure.member_count) - return 0; - for (i = 0; i < a->structure.member_count; i++) - { - if (!datatypes_match(a->structure.members[i].datatype, - b->structure.members[i].datatype)) - return 0; - // stringcache'd, pointer compare is safe. - else if (a->structure.members[i].identifier != - b->structure.members[i].identifier) - return 0; - } // for - return 1; - - case MOJOSHADER_AST_DATATYPE_ARRAY: - if (a->array.elements != b->array.elements) - return 0; - else if (!datatypes_match(a->array.base, b->array.base)) - return 0; - return 1; - - case MOJOSHADER_AST_DATATYPE_VECTOR: - if (a->vector.elements != b->vector.elements) - return 0; - else if (!datatypes_match(a->vector.base, b->vector.base)) - return 0; - return 1; - - case MOJOSHADER_AST_DATATYPE_MATRIX: - if (a->matrix.rows != b->matrix.rows) - return 0; - else if (a->matrix.columns != b->matrix.columns) - return 0; - else if (!datatypes_match(a->matrix.base, b->matrix.base)) - return 0; - return 1; - - case MOJOSHADER_AST_DATATYPE_BUFFER: - return datatypes_match(a->buffer.base, b->buffer.base); - - case MOJOSHADER_AST_DATATYPE_FUNCTION: - if (a->function.num_params != b->function.num_params) - return 0; - else if (a->function.intrinsic != b->function.intrinsic) - return 0; - else if (!datatypes_match(a->function.retval, b->function.retval)) - return 0; - for (i = 0; i < a->function.num_params; i++) - { - if (!datatypes_match(a->function.params[i], b->function.params[i])) - return 0; - } // for - return 1; - - case MOJOSHADER_AST_DATATYPE_USER: - return 0; // pointers must match, this clearly didn't. - - default: - assert(0 && "unexpected case"); - return 0; - } // switch - - return 0; -} // datatypes_match - -static void push_symbol(Context *ctx, SymbolMap *map, const char *sym, - const MOJOSHADER_astDataType *dt, const int index, - const int check_dupes) -{ - if (ctx->out_of_memory) - return; - - // Decide if this symbol is defined, and if it's in the current scope. - SymbolScope *item = NULL; - const void *value = NULL; - if ((check_dupes) && (sym != NULL) && (hash_find(map->hash, sym, &value))) - { - // check the current scope for a dupe. - // !!! FIXME: note current scope's starting index, see if found - // !!! FIXME: item is < index (and thus, a previous scope). - item = map->scope; - while ((item) && (item->symbol)) - { - if ( ((const void *) item) == value ) - { - failf(ctx, "Symbol '%s' already defined", sym); - return; - } // if - item = item->next; - } // while - } // if - - // Add the symbol to our map and scope stack. - item = (SymbolScope *) Malloc(ctx, sizeof (SymbolScope)); - if (item == NULL) - return; - - if (sym != NULL) // sym can be NULL if we're pushing a new scope. - { - if (hash_insert(map->hash, sym, item) == -1) - { - Free(ctx, item); - return; - } // if - } // if - - item->symbol = sym; // cached strings, don't copy. - item->index = index; - item->datatype = dt; - item->referenced = 0; - item->next = map->scope; - map->scope = item; -} // push_symbol - -static void push_usertype(Context *ctx, const char *sym, const MOJOSHADER_astDataType *dt) -{ - if (sym != NULL) - { - MOJOSHADER_astDataType *userdt; - userdt = (MOJOSHADER_astDataType *) Malloc(ctx, sizeof (*userdt)); - if (userdt != NULL) - { - // !!! FIXME: this is hacky. - if (!buffer_append(ctx->garbage, &userdt, sizeof (userdt))) - { - Free(ctx, userdt); - return; - } // if - - userdt->type = MOJOSHADER_AST_DATATYPE_USER; - userdt->user.details = dt; - userdt->user.name = sym; - - dt = userdt; - } // if - } // if - - push_symbol(ctx, &ctx->usertypes, sym, dt, 0, 1); -} // push_usertype - -static inline void push_variable(Context *ctx, const char *sym, const MOJOSHADER_astDataType *dt) -{ - int idx = 0; - if (sym != NULL) - { - // leave space for individual member indexes. The IR will need this. - int additional = 0; - if (dt->type == MOJOSHADER_AST_DATATYPE_STRUCT) - additional = dt->structure.member_count; - if (ctx->is_func_scope) - { - idx = ++ctx->var_index; // these are positive. - ctx->var_index += additional; - } // if - else - { - idx = --ctx->global_var_index; // these are negative. - ctx->global_var_index -= additional; - } // else - } // if - - push_symbol(ctx, &ctx->variables, sym, dt, idx, 1); -} // push_variable - -static int push_function(Context *ctx, const char *sym, - const MOJOSHADER_astDataType *dt, - const int just_declare) -{ - // we don't have any reason to support nested functions at the moment, - // so this would be a bug. - assert(!ctx->is_func_scope); - assert(dt->type == MOJOSHADER_AST_DATATYPE_FUNCTION); - - // Functions are always global, so no need to search scopes. - // Functions overload, though, so we have to continue iterating to - // see if it matches anything. - const void *value = NULL; - void *iter = NULL; - while (hash_iter(ctx->variables.hash, sym, &value, &iter)) - { - // !!! FIXME: this breaks if you predeclare a function. - // !!! FIXME: (a declare AFTER defining works, though.) - // there's already something called this. - SymbolScope *item = (SymbolScope *) value; - if (datatypes_match(dt, item->datatype)) - { - if (!just_declare) - failf(ctx, "Function '%s' already defined.", sym); - return item->index; - } // if - } // while - - int idx = 0; - if ((sym != NULL) && (dt != NULL)) - { - if (!dt->function.intrinsic) - idx = ++ctx->user_func_index; // these are positive. - else - idx = --ctx->intrinsic_func_index; // these are negative. - } // if - - // push_symbol() doesn't check dupes, because we just did. - push_symbol(ctx, &ctx->variables, sym, dt, idx, 0); - - return idx; -} // push_function - -static inline void push_scope(Context *ctx) -{ - push_usertype(ctx, NULL, NULL); - push_variable(ctx, NULL, NULL); -} // push_scope - -static void pop_symbol(Context *ctx, SymbolMap *map) -{ - SymbolScope *item = map->scope; - if (!item) - return; - if (item->symbol) - hash_remove(map->hash, item->symbol, ctx); - map->scope = item->next; - Free(ctx, item); -} // pop_symbol - -static void pop_symbol_scope(Context *ctx, SymbolMap *map) -{ - while ((map->scope) && (map->scope->symbol)) - pop_symbol(ctx, map); - - assert(map->scope != NULL); - assert(map->scope->symbol == NULL); - pop_symbol(ctx, map); -} // pop_symbol_scope - -static inline void pop_scope(Context *ctx) -{ - pop_symbol_scope(ctx, &ctx->usertypes); - pop_symbol_scope(ctx, &ctx->variables); -} // push_scope - -static const MOJOSHADER_astDataType *find_symbol(Context *ctx, SymbolMap *map, const char *sym, int *_index) -{ - const void *_item = NULL; - hash_find(map->hash, sym, &_item); - SymbolScope *item = (SymbolScope *) _item; - if (item != NULL) - { - item->referenced++; - if (_index != NULL) - *_index = item->index; - } // if - return item ? item->datatype : NULL; -} // find_symbol - -static inline const MOJOSHADER_astDataType *find_usertype(Context *ctx, const char *sym) -{ - return find_symbol(ctx, &ctx->usertypes, sym, NULL); -} // find_usertype - -static inline const MOJOSHADER_astDataType *find_variable(Context *ctx, const char *sym, int *_index) -{ - return find_symbol(ctx, &ctx->variables, sym, _index); -} // find_variable - -static void destroy_symbolmap(Context *ctx, SymbolMap *map) -{ - while (map->scope) - pop_symbol(ctx, map); - hash_destroy(map->hash, ctx); -} // destroy_symbolmap - - -static const MOJOSHADER_astDataType *new_datatype_vector(Context *ctx, - const MOJOSHADER_astDataType *dt, - const int columns) -{ - MOJOSHADER_astDataType *retval; - retval = (MOJOSHADER_astDataType *) Malloc(ctx, sizeof (*retval)); - if (retval == NULL) - return NULL; - - // !!! FIXME: this is hacky. - // !!! FIXME: I'd like to cache these anyhow and reuse types. - if (!buffer_append(ctx->garbage, &retval, sizeof (retval))) - { - Free(ctx, retval); - return NULL; - } // if - - if ((columns < 1) || (columns > 4)) - fail(ctx, "Vector must have between 1 and 4 elements"); - - retval->type = MOJOSHADER_AST_DATATYPE_VECTOR; - retval->vector.base = dt; - retval->vector.elements = columns; - return retval; -} // new_datatype_vector - -static const MOJOSHADER_astDataType *new_datatype_matrix(Context *ctx, - const MOJOSHADER_astDataType *dt, - const int rows, const int columns) -{ - MOJOSHADER_astDataType *retval; - // !!! FIXME: allocate enough for a matrix, but we need to cleanup things that copy without checking for subsize. - retval = (MOJOSHADER_astDataType *) Malloc(ctx, sizeof (*retval)); - if (retval == NULL) - return NULL; - - // !!! FIXME: this is hacky. - // !!! FIXME: I'd like to cache these anyhow and reuse types. - if (!buffer_append(ctx->garbage, &retval, sizeof (retval))) - { - Free(ctx, retval); - return NULL; - } // if - - if ((rows < 1) || (rows > 4)) - fail(ctx, "Matrix must have between 1 and 4 rows"); - if ((columns < 1) || (columns > 4)) - fail(ctx, "Matrix must have between 1 and 4 columns"); - - retval->type = MOJOSHADER_AST_DATATYPE_MATRIX; - retval->matrix.base = dt; - retval->matrix.rows = rows; - retval->matrix.columns = columns; - return retval; -} // new_datatype_matrix - - -// !!! FIXME: move this to mojoshader_ast.c -// !!! FIXME: new_* and delete_* should take an allocator, not a context. - -// These functions are mostly for construction and cleanup of nodes in the -// parse tree. Mostly this is simple allocation and initialization, so we -// can do as little in the lemon code as possible, and then sort it all out -// afterwards. - -#define NEW_AST_NODE(retval, cls, typ) \ - cls *retval = (cls *) Malloc(ctx, sizeof (cls)); \ - do { \ - if (retval == NULL) { return NULL; } \ - retval->ast.type = typ; \ - retval->ast.filename = ctx->sourcefile; \ - retval->ast.line = ctx->sourceline; \ - } while (0) - -#define DELETE_AST_NODE(cls) do { \ - if (!cls) return; \ -} while (0) - - -static void delete_compilation_unit(Context*, MOJOSHADER_astCompilationUnit*); -static void delete_statement(Context *ctx, MOJOSHADER_astStatement *stmt); - -static MOJOSHADER_astExpression *new_identifier_expr(Context *ctx, - const char *string) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionIdentifier, - MOJOSHADER_AST_OP_IDENTIFIER); - retval->datatype = NULL; - retval->identifier = string; // cached; don't copy string. - retval->index = 0; - return (MOJOSHADER_astExpression *) retval; -} // new_identifier_expr - -static MOJOSHADER_astExpression *new_callfunc_expr(Context *ctx, - const char *identifier, - MOJOSHADER_astArguments *args) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionCallFunction, - MOJOSHADER_AST_OP_CALLFUNC); - MOJOSHADER_astExpression *expr = new_identifier_expr(ctx, identifier); - retval->datatype = NULL; - retval->identifier = (MOJOSHADER_astExpressionIdentifier *) expr; - retval->args = args; - return (MOJOSHADER_astExpression *) retval; -} // new_callfunc_expr - -static MOJOSHADER_astExpression *new_constructor_expr(Context *ctx, - const MOJOSHADER_astDataType *dt, - MOJOSHADER_astArguments *args) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionConstructor, - MOJOSHADER_AST_OP_CONSTRUCTOR); - retval->datatype = dt; - retval->args = args; - return (MOJOSHADER_astExpression *) retval; -} // new_constructor_expr - -static MOJOSHADER_astExpression *new_cast_expr(Context *ctx, - const MOJOSHADER_astDataType *dt, - MOJOSHADER_astExpression *operand) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionCast, MOJOSHADER_AST_OP_CAST); - retval->datatype = dt; - retval->operand = operand; - return (MOJOSHADER_astExpression *) retval; -} // new_cast_expr - -static MOJOSHADER_astExpression *new_unary_expr(Context *ctx, - const MOJOSHADER_astNodeType op, - MOJOSHADER_astExpression *operand) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionUnary, op); - assert(operator_is_unary(op)); - retval->datatype = NULL; - retval->operand = operand; - return (MOJOSHADER_astExpression *) retval; -} // new_unary_expr - -static MOJOSHADER_astExpression *new_binary_expr(Context *ctx, - const MOJOSHADER_astNodeType op, - MOJOSHADER_astExpression *left, - MOJOSHADER_astExpression *right) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionBinary, op); - assert(operator_is_binary(op)); - retval->datatype = NULL; - retval->left = left; - retval->right = right; - return (MOJOSHADER_astExpression *) retval; -} // new_binary_expr - -static MOJOSHADER_astExpression *new_ternary_expr(Context *ctx, - const MOJOSHADER_astNodeType op, - MOJOSHADER_astExpression *left, - MOJOSHADER_astExpression *center, - MOJOSHADER_astExpression *right) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionTernary, op); - assert(operator_is_ternary(op)); - assert(op == MOJOSHADER_AST_OP_CONDITIONAL); - retval->datatype = &ctx->dt_bool; - retval->left = left; - retval->center = center; - retval->right = right; - return (MOJOSHADER_astExpression *) retval; -} // new_ternary_expr - -static MOJOSHADER_astExpression *new_deref_struct_expr(Context *ctx, - MOJOSHADER_astExpression *identifier, - const char *member) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionDerefStruct, - MOJOSHADER_AST_OP_DEREF_STRUCT); - retval->datatype = NULL; - retval->identifier = identifier; - retval->member = member; // cached; don't copy string. - retval->isswizzle = 0; // may change during semantic analysis. - retval->member_index = 0; // set during semantic analysis. - return (MOJOSHADER_astExpression *) retval; -} // new_deref_struct_expr - -static MOJOSHADER_astExpression *new_literal_int_expr(Context *ctx, - const int value) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionIntLiteral, - MOJOSHADER_AST_OP_INT_LITERAL); - retval->datatype = &ctx->dt_int; - retval->value = value; - return (MOJOSHADER_astExpression *) retval; -} // new_literal_int_expr - -static MOJOSHADER_astExpression *new_literal_float_expr(Context *ctx, - const double dbl) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionFloatLiteral, - MOJOSHADER_AST_OP_FLOAT_LITERAL); - retval->datatype = &ctx->dt_float; - retval->value = dbl; - return (MOJOSHADER_astExpression *) retval; -} // new_literal_float_expr - -static MOJOSHADER_astExpression *new_literal_string_expr(Context *ctx, - const char *string) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionStringLiteral, - MOJOSHADER_AST_OP_STRING_LITERAL); - retval->datatype = &ctx->dt_string; - retval->string = string; // cached; don't copy string. - return (MOJOSHADER_astExpression *) retval; -} // new_literal_string_expr - -static MOJOSHADER_astExpression *new_literal_boolean_expr(Context *ctx, - const int value) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionBooleanLiteral, - MOJOSHADER_AST_OP_BOOLEAN_LITERAL); - retval->datatype = &ctx->dt_bool; - retval->value = value; - return (MOJOSHADER_astExpression *) retval; -} // new_literal_boolean_expr - -static void delete_arguments(Context *ctx, MOJOSHADER_astArguments *args); - -static void delete_expr(Context *ctx, MOJOSHADER_astExpression *_expr) -{ - MOJOSHADER_astNode *expr = (MOJOSHADER_astNode *) _expr; - - DELETE_AST_NODE(expr); - - if (expr->ast.type == MOJOSHADER_AST_OP_CAST) - delete_expr(ctx, expr->cast.operand); - - else if (expr->ast.type == MOJOSHADER_AST_OP_CONSTRUCTOR) - delete_arguments(ctx, expr->constructor.args); - - else if (expr->ast.type == MOJOSHADER_AST_OP_DEREF_STRUCT) - delete_expr(ctx, expr->derefstruct.identifier); - - else if (operator_is_unary(expr->ast.type)) - delete_expr(ctx, expr->unary.operand); - - else if (operator_is_binary(expr->ast.type)) - { - delete_expr(ctx, expr->binary.left); - delete_expr(ctx, expr->binary.right); - } // else if - - else if (operator_is_ternary(expr->ast.type)) - { - delete_expr(ctx, expr->ternary.left); - delete_expr(ctx, expr->ternary.center); - delete_expr(ctx, expr->ternary.right); - } // else if - - else if (expr->ast.type == MOJOSHADER_AST_OP_CALLFUNC) - { - delete_expr(ctx, (MOJOSHADER_astExpression*)expr->callfunc.identifier); - delete_arguments(ctx, expr->callfunc.args); - } // else if - - // rest of operators don't have extra data to free. - - Free(ctx, expr); -} // delete_expr - -static MOJOSHADER_astArguments *new_argument(Context *ctx, - MOJOSHADER_astExpression *arg) -{ - NEW_AST_NODE(retval, MOJOSHADER_astArguments, MOJOSHADER_AST_ARGUMENTS); - retval->argument = arg; - retval->next = NULL; - return retval; -} // new_argument - -static void delete_arguments(Context *ctx, MOJOSHADER_astArguments *args) -{ - DELETE_AST_NODE(args); - delete_arguments(ctx, args->next); - delete_expr(ctx, args->argument); - Free(ctx, args); -} // delete_arguments - -static MOJOSHADER_astFunctionParameters *new_function_param(Context *ctx, - const MOJOSHADER_astInputModifier inputmod, - const MOJOSHADER_astDataType *dt, - const char *identifier, const char *semantic, - const MOJOSHADER_astInterpolationModifier interpmod, - MOJOSHADER_astExpression *initializer) -{ - NEW_AST_NODE(retval, MOJOSHADER_astFunctionParameters, - MOJOSHADER_AST_FUNCTION_PARAMS); - retval->datatype = dt; - retval->input_modifier = inputmod; - retval->identifier = identifier; - retval->semantic = semantic; - retval->interpolation_modifier = interpmod; - retval->initializer = initializer; - retval->next = NULL; - return retval; -} // new_function_param - -static void delete_function_params(Context *ctx, - MOJOSHADER_astFunctionParameters *params) -{ - DELETE_AST_NODE(params); - delete_function_params(ctx, params->next); - delete_expr(ctx, params->initializer); - Free(ctx, params); -} // delete_function_params - -static MOJOSHADER_astFunctionSignature *new_function_signature(Context *ctx, - const MOJOSHADER_astDataType *dt, - const char *identifier, - MOJOSHADER_astFunctionParameters *params) -{ - NEW_AST_NODE(retval, MOJOSHADER_astFunctionSignature, - MOJOSHADER_AST_FUNCTION_SIGNATURE); - retval->datatype = dt; - retval->identifier = identifier; - retval->params = params; - retval->storage_class = MOJOSHADER_AST_FNSTORECLS_NONE; - retval->semantic = NULL; - return retval; -} // new_function_signature - -static void delete_function_signature(Context *ctx, - MOJOSHADER_astFunctionSignature *sig) -{ - DELETE_AST_NODE(sig); - delete_function_params(ctx, sig->params); - Free(ctx, sig); -} // delete_function_signature - -static MOJOSHADER_astCompilationUnit *new_function(Context *ctx, - MOJOSHADER_astFunctionSignature *declaration, - MOJOSHADER_astStatement *definition) -{ - NEW_AST_NODE(retval, MOJOSHADER_astCompilationUnitFunction, - MOJOSHADER_AST_COMPUNIT_FUNCTION); - retval->next = NULL; - retval->declaration = declaration; - retval->definition = definition; - retval->index = 0; - return (MOJOSHADER_astCompilationUnit *) retval; -} // new_function - -static void delete_function(Context *ctx, - MOJOSHADER_astCompilationUnitFunction *unitfn) -{ - DELETE_AST_NODE(unitfn); - delete_compilation_unit(ctx, unitfn->next); - delete_function_signature(ctx, unitfn->declaration); - delete_statement(ctx, unitfn->definition); - Free(ctx, unitfn); -} // delete_function - -static MOJOSHADER_astScalarOrArray *new_scalar_or_array(Context *ctx, - const char *ident, const int isvec, - MOJOSHADER_astExpression *dim) -{ - NEW_AST_NODE(retval, MOJOSHADER_astScalarOrArray, - MOJOSHADER_AST_SCALAR_OR_ARRAY); - retval->identifier = ident; - retval->isarray = isvec; - retval->dimension = dim; - return retval; -} // new_scalar_or_array - -static void delete_scalar_or_array(Context *ctx,MOJOSHADER_astScalarOrArray *s) -{ - DELETE_AST_NODE(s); - delete_expr(ctx, s->dimension); - Free(ctx, s); -} // delete_scalar_or_array - -static MOJOSHADER_astTypedef *new_typedef(Context *ctx, const int isconst, - const MOJOSHADER_astDataType *dt, - MOJOSHADER_astScalarOrArray *soa) -{ - // we correct this datatype to the final version during semantic analysis. - NEW_AST_NODE(retval, MOJOSHADER_astTypedef, MOJOSHADER_AST_TYPEDEF); - retval->datatype = dt; - retval->isconst = isconst; - retval->details = soa; - return retval; -} // new_typedef - -static void delete_typedef(Context *ctx, MOJOSHADER_astTypedef *td) -{ - DELETE_AST_NODE(td); - delete_scalar_or_array(ctx, td->details); - Free(ctx, td); -} // delete_typedef - -static MOJOSHADER_astPackOffset *new_pack_offset(Context *ctx, - const char *a, const char *b) -{ - NEW_AST_NODE(retval, MOJOSHADER_astPackOffset, MOJOSHADER_AST_PACK_OFFSET); - retval->ident1 = a; - retval->ident2 = b; - return retval; -} // new_pack_offset - -static void delete_pack_offset(Context *ctx, MOJOSHADER_astPackOffset *o) -{ - DELETE_AST_NODE(o); - Free(ctx, o); -} // delete_pack_offset - -static MOJOSHADER_astVariableLowLevel *new_variable_lowlevel(Context *ctx, - MOJOSHADER_astPackOffset *po, - const char *reg) -{ - NEW_AST_NODE(retval, MOJOSHADER_astVariableLowLevel, - MOJOSHADER_AST_VARIABLE_LOWLEVEL); - retval->packoffset = po; - retval->register_name = reg; - return retval; -} // new_variable_lowlevel - -static void delete_variable_lowlevel(Context *ctx, - MOJOSHADER_astVariableLowLevel *vll) -{ - DELETE_AST_NODE(vll); - delete_pack_offset(ctx, vll->packoffset); - Free(ctx, vll); -} // delete_variable_lowlevel - -static MOJOSHADER_astAnnotations *new_annotation(Context *ctx, - const MOJOSHADER_astDataType *dt, - MOJOSHADER_astExpression *initializer) -{ - NEW_AST_NODE(retval, MOJOSHADER_astAnnotations, MOJOSHADER_AST_ANNOTATION); - retval->datatype = dt; - retval->initializer = initializer; - retval->next = NULL; - return retval; -} // new_annotation - -static void delete_annotation(Context *ctx, MOJOSHADER_astAnnotations *annos) -{ - DELETE_AST_NODE(annos); - delete_annotation(ctx, annos->next); - delete_expr(ctx, annos->initializer); - Free(ctx, annos); -} // delete_annotation - -static MOJOSHADER_astVariableDeclaration *new_variable_declaration( - Context *ctx, MOJOSHADER_astScalarOrArray *soa, - const char *semantic, - MOJOSHADER_astAnnotations *annotations, - MOJOSHADER_astExpression *init, - MOJOSHADER_astVariableLowLevel *vll) -{ - NEW_AST_NODE(retval, MOJOSHADER_astVariableDeclaration, - MOJOSHADER_AST_VARIABLE_DECLARATION); - retval->datatype = NULL; - retval->attributes = 0; - retval->anonymous_datatype = NULL; - retval->details = soa; - retval->semantic = semantic; - retval->annotations = annotations; - retval->initializer = init; - retval->lowlevel = vll; - retval->next = NULL; - return retval; -} // new_variable_declaration - -static void delete_variable_declaration(Context *ctx, - MOJOSHADER_astVariableDeclaration *dcl) -{ - DELETE_AST_NODE(dcl); - delete_variable_declaration(ctx, dcl->next); - delete_scalar_or_array(ctx, dcl->details); - delete_annotation(ctx, dcl->annotations); - delete_expr(ctx, dcl->initializer); - delete_variable_lowlevel(ctx, dcl->lowlevel); - Free(ctx, dcl); -} // delete_variable_declaration - -static MOJOSHADER_astCompilationUnit *new_global_variable(Context *ctx, - MOJOSHADER_astVariableDeclaration *decl) -{ - NEW_AST_NODE(retval, MOJOSHADER_astCompilationUnitVariable, - MOJOSHADER_AST_COMPUNIT_VARIABLE); - retval->next = NULL; - retval->declaration = decl; - return (MOJOSHADER_astCompilationUnit *) retval; -} // new_global_variable - -static void delete_global_variable(Context *ctx, - MOJOSHADER_astCompilationUnitVariable *var) -{ - DELETE_AST_NODE(var); - delete_compilation_unit(ctx, var->next); - delete_variable_declaration(ctx, var->declaration); - Free(ctx, var); -} // delete_global_variable - -static MOJOSHADER_astCompilationUnit *new_global_typedef(Context *ctx, - MOJOSHADER_astTypedef *td) -{ - NEW_AST_NODE(retval, MOJOSHADER_astCompilationUnitTypedef, - MOJOSHADER_AST_COMPUNIT_TYPEDEF); - retval->next = NULL; - retval->type_info = td; - return (MOJOSHADER_astCompilationUnit *) retval; -} // new_global_typedef - -static void delete_global_typedef(Context *ctx, - MOJOSHADER_astCompilationUnitTypedef *unit) -{ - DELETE_AST_NODE(unit); - delete_compilation_unit(ctx, unit->next); - delete_typedef(ctx, unit->type_info); - Free(ctx, unit); -} // delete_global_typedef - -static MOJOSHADER_astStructMembers *new_struct_member(Context *ctx, - MOJOSHADER_astScalarOrArray *soa, - const char *semantic) -{ - NEW_AST_NODE(retval, MOJOSHADER_astStructMembers, - MOJOSHADER_AST_STRUCT_MEMBER); - retval->datatype = NULL; - retval->semantic = semantic; - retval->details = soa; - retval->interpolation_mod = MOJOSHADER_AST_INTERPMOD_NONE; - retval->next = NULL; - return retval; -} // new_struct_member - -static void delete_struct_member(Context *ctx, - MOJOSHADER_astStructMembers *member) -{ - DELETE_AST_NODE(member); - delete_struct_member(ctx, member->next); - delete_scalar_or_array(ctx, member->details); - Free(ctx, member); -} // delete_struct_member - -static MOJOSHADER_astStructDeclaration *new_struct_declaration(Context *ctx, - const char *name, - MOJOSHADER_astStructMembers *members) -{ - NEW_AST_NODE(retval, MOJOSHADER_astStructDeclaration, - MOJOSHADER_AST_STRUCT_DECLARATION); - retval->datatype = NULL; - retval->name = name; - retval->members = members; - return retval; -} // new_struct_declaration - -static void delete_struct_declaration(Context *ctx, - MOJOSHADER_astStructDeclaration *decl) -{ - DELETE_AST_NODE(decl); - delete_struct_member(ctx, decl->members); - Free(ctx, decl); -} // delete_struct_declaration - -static MOJOSHADER_astCompilationUnit *new_global_struct(Context *ctx, - MOJOSHADER_astStructDeclaration *sd) -{ - NEW_AST_NODE(retval, MOJOSHADER_astCompilationUnitStruct, - MOJOSHADER_AST_COMPUNIT_STRUCT); - retval->next = NULL; - retval->struct_info = sd; - return (MOJOSHADER_astCompilationUnit *) retval; -} // new_global_struct - -static void delete_global_struct(Context *ctx, - MOJOSHADER_astCompilationUnitStruct *unit) -{ - DELETE_AST_NODE(unit); - delete_compilation_unit(ctx, unit->next); - delete_struct_declaration(ctx, unit->struct_info); - Free(ctx, unit); -} // delete_global_struct - -static void delete_compilation_unit(Context *ctx, - MOJOSHADER_astCompilationUnit *unit) -{ - if (!unit) return; - - // it's important to not recurse too deeply here, since you may have - // thousands of items in this linked list (each line of a massive - // function, for example). To avoid this, we iterate the list here, - // deleting all children and making them think they have no reason - // to recurse in their own delete methods. - // Please note that everyone should _try_ to delete their "next" member, - // just in case, but hopefully this cleaned it out. - - MOJOSHADER_astCompilationUnit *i = unit->next; - unit->next = NULL; - while (i) - { - MOJOSHADER_astCompilationUnit *next = i->next; - i->next = NULL; - delete_compilation_unit(ctx, i); - i = next; - } // while - - switch (unit->ast.type) - { - #define DELETE_UNIT(typ, cls, fn) \ - case MOJOSHADER_AST_COMPUNIT_##typ: delete_##fn(ctx, (cls *) unit); break; - DELETE_UNIT(FUNCTION, MOJOSHADER_astCompilationUnitFunction, function); - DELETE_UNIT(TYPEDEF, MOJOSHADER_astCompilationUnitTypedef, global_typedef); - DELETE_UNIT(VARIABLE, MOJOSHADER_astCompilationUnitVariable, global_variable); - DELETE_UNIT(STRUCT, MOJOSHADER_astCompilationUnitStruct, global_struct); - #undef DELETE_UNIT - default: assert(0 && "missing cleanup code"); break; - } // switch - - // don't free (unit) here, the class-specific functions do it. -} // delete_compilation_unit - -static MOJOSHADER_astStatement *new_typedef_statement(Context *ctx, - MOJOSHADER_astTypedef *td) -{ - NEW_AST_NODE(retval, MOJOSHADER_astTypedefStatement, - MOJOSHADER_AST_STATEMENT_TYPEDEF); - retval->next = NULL; - retval->type_info = td; - return (MOJOSHADER_astStatement *) retval; -} // new_typedef_statement - -static void delete_typedef_statement(Context *ctx, - MOJOSHADER_astTypedefStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_typedef(ctx, stmt->type_info); - Free(ctx, stmt); -} // delete_typedef_statement - -static MOJOSHADER_astStatement *new_return_statement(Context *ctx, - MOJOSHADER_astExpression *expr) -{ - NEW_AST_NODE(retval, MOJOSHADER_astReturnStatement, - MOJOSHADER_AST_STATEMENT_RETURN); - retval->next = NULL; - retval->expr = expr; - return (MOJOSHADER_astStatement *) retval; -} // new_return_statement - -static void delete_return_statement(Context *ctx, - MOJOSHADER_astReturnStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_expr(ctx, stmt->expr); - Free(ctx, stmt); -} // delete_return_statement - -static MOJOSHADER_astStatement *new_block_statement(Context *ctx, - MOJOSHADER_astStatement *stmts) -{ - NEW_AST_NODE(retval, MOJOSHADER_astBlockStatement, - MOJOSHADER_AST_STATEMENT_BLOCK); - retval->next = NULL; - retval->statements = stmts; - return (MOJOSHADER_astStatement *) retval; -} // new_block_statement - -static void delete_block_statement(Context *ctx, - MOJOSHADER_astBlockStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->statements); - delete_statement(ctx, stmt->next); - Free(ctx, stmt); -} // delete_statement_block - -static MOJOSHADER_astStatement *new_for_statement(Context *ctx, - MOJOSHADER_astVariableDeclaration *decl, - MOJOSHADER_astExpression *initializer, - MOJOSHADER_astExpression *looptest, - MOJOSHADER_astExpression *counter, - MOJOSHADER_astStatement *statement) -{ - NEW_AST_NODE(retval, MOJOSHADER_astForStatement, - MOJOSHADER_AST_STATEMENT_FOR); - retval->next = NULL; - retval->unroll = -1; - retval->var_decl = decl; - retval->initializer = initializer; - retval->looptest = looptest; - retval->counter = counter; - retval->statement = statement; - return (MOJOSHADER_astStatement *) retval; -} // new_for_statement - -static void delete_for_statement(Context *ctx,MOJOSHADER_astForStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_variable_declaration(ctx, stmt->var_decl); - delete_expr(ctx, stmt->initializer); - delete_expr(ctx, stmt->looptest); - delete_expr(ctx, stmt->counter); - delete_statement(ctx, stmt->statement); - Free(ctx, stmt); -} // delete_for_statement - -static MOJOSHADER_astStatement *new_do_statement(Context *ctx, - const int unroll, - MOJOSHADER_astStatement *stmt, - MOJOSHADER_astExpression *expr) -{ - NEW_AST_NODE(retval,MOJOSHADER_astDoStatement,MOJOSHADER_AST_STATEMENT_DO); - retval->next = NULL; - retval->unroll = unroll; - retval->expr = expr; - retval->statement = stmt; - return (MOJOSHADER_astStatement *) retval; -} // new_do_statement - -static void delete_do_statement(Context *ctx, MOJOSHADER_astDoStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_statement(ctx, stmt->statement); - delete_expr(ctx, stmt->expr); - Free(ctx, stmt); -} // delete_do_statement - -static MOJOSHADER_astStatement *new_while_statement(Context *ctx, - const int unroll, - MOJOSHADER_astExpression *expr, - MOJOSHADER_astStatement *stmt) -{ - NEW_AST_NODE(retval, MOJOSHADER_astWhileStatement, - MOJOSHADER_AST_STATEMENT_WHILE); - retval->next = NULL; - retval->unroll = unroll; - retval->expr = expr; - retval->statement = stmt; - return (MOJOSHADER_astStatement *) retval; -} // new_while_statement - -static void delete_while_statement(Context *ctx, - MOJOSHADER_astWhileStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_statement(ctx, stmt->statement); - delete_expr(ctx, stmt->expr); - Free(ctx, stmt); -} // delete_while_statement - -static MOJOSHADER_astStatement *new_if_statement(Context *ctx, - const int attr, - MOJOSHADER_astExpression *expr, - MOJOSHADER_astStatement *stmt, - MOJOSHADER_astStatement *elsestmt) -{ - NEW_AST_NODE(retval,MOJOSHADER_astIfStatement,MOJOSHADER_AST_STATEMENT_IF); - retval->next = NULL; - retval->attributes = attr; - retval->expr = expr; - retval->statement = stmt; - retval->else_statement = elsestmt; - return (MOJOSHADER_astStatement *) retval; -} // new_if_statement - -static void delete_if_statement(Context *ctx, MOJOSHADER_astIfStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_expr(ctx, stmt->expr); - delete_statement(ctx, stmt->statement); - delete_statement(ctx, stmt->else_statement); - Free(ctx, stmt); -} // delete_if_statement - -static MOJOSHADER_astSwitchCases *new_switch_case(Context *ctx, - MOJOSHADER_astExpression *expr, - MOJOSHADER_astStatement *stmt) -{ - NEW_AST_NODE(retval, MOJOSHADER_astSwitchCases, MOJOSHADER_AST_SWITCH_CASE); - retval->expr = expr; - retval->statement = stmt; - retval->next = NULL; - return retval; -} // new_switch_case - -static void delete_switch_case(Context *ctx, MOJOSHADER_astSwitchCases *sc) -{ - DELETE_AST_NODE(sc); - delete_switch_case(ctx, sc->next); - delete_expr(ctx, sc->expr); - delete_statement(ctx, sc->statement); - Free(ctx, sc); -} // delete_switch_case - -static MOJOSHADER_astStatement *new_empty_statement(Context *ctx) -{ - NEW_AST_NODE(retval, MOJOSHADER_astEmptyStatement, - MOJOSHADER_AST_STATEMENT_EMPTY); - retval->next = NULL; - return (MOJOSHADER_astStatement *) retval; -} // new_empty_statement - -static void delete_empty_statement(Context *ctx, - MOJOSHADER_astEmptyStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - Free(ctx, stmt); -} // delete_empty_statement - -static MOJOSHADER_astStatement *new_break_statement(Context *ctx) -{ - NEW_AST_NODE(retval, MOJOSHADER_astBreakStatement, - MOJOSHADER_AST_STATEMENT_BREAK); - retval->next = NULL; - return (MOJOSHADER_astStatement *) retval; -} // new_break_statement - -static void delete_break_statement(Context *ctx, - MOJOSHADER_astBreakStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - Free(ctx, stmt); -} // delete_break_statement - -static MOJOSHADER_astStatement *new_continue_statement(Context *ctx) -{ - NEW_AST_NODE(retval, MOJOSHADER_astContinueStatement, - MOJOSHADER_AST_STATEMENT_CONTINUE); - retval->next = NULL; - return (MOJOSHADER_astStatement *) retval; -} // new_continue_statement - -static void delete_continue_statement(Context *ctx, - MOJOSHADER_astContinueStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - Free(ctx, stmt); -} // delete_continue_statement - -static MOJOSHADER_astStatement *new_discard_statement(Context *ctx) -{ - NEW_AST_NODE(retval, MOJOSHADER_astDiscardStatement, - MOJOSHADER_AST_STATEMENT_DISCARD); - retval->next = NULL; - return (MOJOSHADER_astStatement *) retval; -} // new_discard_statement - -static void delete_discard_statement(Context *ctx, - MOJOSHADER_astDiscardStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - Free(ctx, stmt); -} // delete_discard_statement - -static MOJOSHADER_astStatement *new_expr_statement(Context *ctx, - MOJOSHADER_astExpression *expr) -{ - NEW_AST_NODE(retval, MOJOSHADER_astExpressionStatement, - MOJOSHADER_AST_STATEMENT_EXPRESSION); - retval->next = NULL; - retval->expr = expr; - return (MOJOSHADER_astStatement *) retval; -} // new_expr_statement - -static void delete_expr_statement(Context *ctx, - MOJOSHADER_astExpressionStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_expr(ctx, stmt->expr); - Free(ctx, stmt); -} // delete_expr_statement - -static MOJOSHADER_astStatement *new_switch_statement(Context *ctx, - const int attr, - MOJOSHADER_astExpression *expr, - MOJOSHADER_astSwitchCases *cases) -{ - NEW_AST_NODE(retval, MOJOSHADER_astSwitchStatement, - MOJOSHADER_AST_STATEMENT_SWITCH); - retval->next = NULL; - retval->attributes = attr; - retval->expr = expr; - retval->cases = cases; - return (MOJOSHADER_astStatement *) retval; -} // new_switch_statement - -static void delete_switch_statement(Context *ctx, - MOJOSHADER_astSwitchStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_expr(ctx, stmt->expr); - delete_switch_case(ctx, stmt->cases); - Free(ctx, stmt); -} // delete_switch_statement - -static MOJOSHADER_astStatement *new_struct_statement(Context *ctx, - MOJOSHADER_astStructDeclaration *sd) -{ - NEW_AST_NODE(retval, MOJOSHADER_astStructStatement, - MOJOSHADER_AST_STATEMENT_STRUCT); - retval->next = NULL; - retval->struct_info = sd; - return (MOJOSHADER_astStatement *) retval; -} // new_struct_statement - -static void delete_struct_statement(Context *ctx, - MOJOSHADER_astStructStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_struct_declaration(ctx, stmt->struct_info); - Free(ctx, stmt); -} // delete_struct_statement - -static MOJOSHADER_astStatement *new_vardecl_statement(Context *ctx, - MOJOSHADER_astVariableDeclaration *vd) -{ - NEW_AST_NODE(retval, MOJOSHADER_astVarDeclStatement, - MOJOSHADER_AST_STATEMENT_VARDECL); - retval->next = NULL; - retval->declaration = vd; - return (MOJOSHADER_astStatement *) retval; -} // new_vardecl_statement - -static void delete_vardecl_statement(Context *ctx, - MOJOSHADER_astVarDeclStatement *stmt) -{ - DELETE_AST_NODE(stmt); - delete_statement(ctx, stmt->next); - delete_variable_declaration(ctx, stmt->declaration); - Free(ctx, stmt); -} // delete_vardecl_statement - -static void delete_statement(Context *ctx, MOJOSHADER_astStatement *stmt) -{ - if (!stmt) return; - - // it's important to not recurse too deeply here, since you may have - // thousands of items in this linked list (each line of a massive - // function, for example). To avoid this, we iterate the list here, - // deleting all children and making them think they have no reason - // to recurse in their own delete methods. - // Please note that everyone should _try_ to delete their "next" member, - // just in case, but hopefully this cleaned it out. - - MOJOSHADER_astStatement *i = stmt->next; - stmt->next = NULL; - while (i) - { - MOJOSHADER_astStatement *next = i->next; - i->next = NULL; - delete_statement(ctx, i); - i = next; - } // while - - switch (stmt->ast.type) - { - #define DELETE_STATEMENT(typ, cls, fn) \ - case MOJOSHADER_AST_STATEMENT_##typ: \ - delete_##fn##_statement(ctx, (cls *) stmt); break; - DELETE_STATEMENT(BLOCK, MOJOSHADER_astBlockStatement, block); - DELETE_STATEMENT(EMPTY, MOJOSHADER_astEmptyStatement, empty); - DELETE_STATEMENT(IF, MOJOSHADER_astIfStatement, if); - DELETE_STATEMENT(SWITCH, MOJOSHADER_astSwitchStatement, switch); - DELETE_STATEMENT(EXPRESSION, MOJOSHADER_astExpressionStatement, expr); - DELETE_STATEMENT(FOR, MOJOSHADER_astForStatement, for); - DELETE_STATEMENT(DO, MOJOSHADER_astDoStatement, do); - DELETE_STATEMENT(WHILE, MOJOSHADER_astWhileStatement, while); - DELETE_STATEMENT(RETURN, MOJOSHADER_astReturnStatement, return); - DELETE_STATEMENT(BREAK, MOJOSHADER_astBreakStatement, break); - DELETE_STATEMENT(CONTINUE, MOJOSHADER_astContinueStatement, continue); - DELETE_STATEMENT(DISCARD, MOJOSHADER_astDiscardStatement, discard); - DELETE_STATEMENT(TYPEDEF, MOJOSHADER_astTypedefStatement, typedef); - DELETE_STATEMENT(STRUCT, MOJOSHADER_astStructStatement, struct); - DELETE_STATEMENT(VARDECL, MOJOSHADER_astVarDeclStatement, vardecl); - #undef DELETE_STATEMENT - default: assert(0 && "missing cleanup code"); break; - } // switch - // don't free (stmt) here, the class-specific functions do it. -} // delete_statement - - -static const MOJOSHADER_astDataType *get_usertype(const Context *ctx, - const char *token) -{ - const void *value; // search all scopes. - if (!hash_find(ctx->usertypes.hash, token, &value)) - return NULL; - return value ? ((SymbolScope *) value)->datatype : NULL; -} // get_usertype - - -// This is where the actual parsing happens. It's Lemon-generated! -#define __MOJOSHADER_HLSL_COMPILER__ 1 -#include "mojoshader_parser_hlsl.h" - - -#if 0 -static int expr_is_constant(MOJOSHADER_astExpression *expr) -{ - const MOJOSHADER_astNodeType op = expr->ast.type; - if (operator_is_unary(op)) - return expr_is_constant(expr->unary.operand); - else if (operator_is_binary(op)) - { - return ( expr_is_constant(expr->binary.left) && - expr_is_constant(expr->binary.right) ); - } // else if - else if (operator_is_ternary(op)) - { - return ( expr_is_constant(expr->ternary.left) && - expr_is_constant(expr->ternary.center) && - expr_is_constant(expr->ternary.right) ); - } // else if - - return ( (op == MOJOSHADER_AST_OP_INT_LITERAL) || - (op == MOJOSHADER_AST_OP_FLOAT_LITERAL) || - (op == MOJOSHADER_AST_OP_STRING_LITERAL) || - (op == MOJOSHADER_AST_OP_BOOLEAN_LITERAL) ); -} // expr_is_constant -#endif - -typedef struct AstCalcData -{ - int isflt; - union - { - double f; - int64 i; - } value; -} AstCalcData; - -// returns 0 if this expression is non-constant, 1 if it is. -// calculation results land in (data). -static int calc_ast_const_expr(Context *ctx, void *_expr, AstCalcData *data) -{ - const MOJOSHADER_astNode *expr = (MOJOSHADER_astNode *) _expr; - const MOJOSHADER_astNodeType op = expr->ast.type; - - ctx->sourcefile = expr->ast.filename; - ctx->sourceline = expr->ast.line; - - if (operator_is_unary(op)) - { - if (!calc_ast_const_expr(ctx, expr->unary.operand, data)) - return 0; - - if (data->isflt) - { - switch (op) - { - case MOJOSHADER_AST_OP_NEGATE: - data->value.f = -data->value.f; - return 1; - case MOJOSHADER_AST_OP_NOT: - data->value.f = !data->value.f; - return 1; - case MOJOSHADER_AST_OP_COMPLEMENT: - fail(ctx, "integer operation on floating point value"); - return 0; - case MOJOSHADER_AST_OP_CAST: - // !!! FIXME: this should work, but it's complicated. - assert(0 && "write me"); - return 0; - default: break; - } // switch - } // if - - else // integer version - { - switch (op) - { - case MOJOSHADER_AST_OP_NEGATE: - data->value.i = -data->value.i; - return 1; - case MOJOSHADER_AST_OP_NOT: - data->value.i = !data->value.i; - return 1; - case MOJOSHADER_AST_OP_COMPLEMENT: - data->value.i = ~data->value.i; - return 1; - case MOJOSHADER_AST_OP_CAST: - // !!! FIXME: this should work, but it's complicated. - assert(0 && "write me"); - return 0; - default: break; - } // switch - } // else - assert(0 && "unhandled operation?"); - return 0; - } // if - - else if (operator_is_binary(op)) - { - AstCalcData subdata2; - if ( (!calc_ast_const_expr(ctx, expr->binary.left, data)) || - (!calc_ast_const_expr(ctx, expr->binary.right, &subdata2)) ) - return 0; - - // upgrade to float if either operand is float. - if ((data->isflt) || (subdata2.isflt)) - { - if (!data->isflt) data->value.f = (double) data->value.i; - if (!subdata2.isflt) subdata2.value.f = (double) subdata2.value.i; - data->isflt = subdata2.isflt = 1; - } // if - - switch (op) - { - // gcc doesn't handle commas here, either (fails to parse!). - case MOJOSHADER_AST_OP_COMMA: - case MOJOSHADER_AST_OP_ASSIGN: - case MOJOSHADER_AST_OP_MULASSIGN: - case MOJOSHADER_AST_OP_DIVASSIGN: - case MOJOSHADER_AST_OP_MODASSIGN: - case MOJOSHADER_AST_OP_ADDASSIGN: - case MOJOSHADER_AST_OP_SUBASSIGN: - case MOJOSHADER_AST_OP_LSHIFTASSIGN: - case MOJOSHADER_AST_OP_RSHIFTASSIGN: - case MOJOSHADER_AST_OP_ANDASSIGN: - case MOJOSHADER_AST_OP_XORASSIGN: - case MOJOSHADER_AST_OP_ORASSIGN: - return 0; // assignment is non-constant. - default: break; - } // switch - - if (data->isflt) - { - switch (op) - { - case MOJOSHADER_AST_OP_MULTIPLY: - data->value.f *= subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_DIVIDE: - data->value.f /= subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_ADD: - data->value.f += subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_SUBTRACT: - data->value.f -= subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_LESSTHAN: - data->isflt = 0; - data->value.i = data->value.f < subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_GREATERTHAN: - data->isflt = 0; - data->value.i = data->value.f > subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_LESSTHANOREQUAL: - data->isflt = 0; - data->value.i = data->value.f <= subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_GREATERTHANOREQUAL: - data->isflt = 0; - data->value.i = data->value.f >= subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_EQUAL: - data->isflt = 0; - data->value.i = data->value.f == subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_NOTEQUAL: - data->isflt = 0; - data->value.i = data->value.f != subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_LOGICALAND: - data->isflt = 0; - data->value.i = data->value.f && subdata2.value.f; - return 1; - case MOJOSHADER_AST_OP_LOGICALOR: - data->isflt = 0; - data->value.i = data->value.f || subdata2.value.f; - return 1; - - case MOJOSHADER_AST_OP_LSHIFT: - case MOJOSHADER_AST_OP_RSHIFT: - case MOJOSHADER_AST_OP_MODULO: - case MOJOSHADER_AST_OP_BINARYAND: - case MOJOSHADER_AST_OP_BINARYXOR: - case MOJOSHADER_AST_OP_BINARYOR: - fail(ctx, "integer operation on floating point value"); - return 0; - default: break; - } // switch - } // if - - else // integer version. - { - switch (op) - { - case MOJOSHADER_AST_OP_MULTIPLY: - data->value.i *= subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_DIVIDE: - data->value.i /= subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_ADD: - data->value.i += subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_SUBTRACT: - data->value.i -= subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_LESSTHAN: - data->value.i = data->value.i < subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_GREATERTHAN: - data->value.i = data->value.i > subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_LESSTHANOREQUAL: - data->value.i = data->value.i <= subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_GREATERTHANOREQUAL: - data->value.i = data->value.i >= subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_EQUAL: - data->value.i = data->value.i == subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_NOTEQUAL: - data->value.i = data->value.i != subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_LOGICALAND: - data->value.i = data->value.i && subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_LOGICALOR: - data->value.i = data->value.i || subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_LSHIFT: - data->value.i = data->value.i << subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_RSHIFT: - data->value.i = data->value.i >> subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_MODULO: - data->value.i = data->value.i % subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_BINARYAND: - data->value.i = data->value.i & subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_BINARYXOR: - data->value.i = data->value.i ^ subdata2.value.i; - return 1; - case MOJOSHADER_AST_OP_BINARYOR: - data->value.i = data->value.i | subdata2.value.i; - return 1; - default: break; - } // switch - } // else - - assert(0 && "unhandled operation?"); - return 0; - } // else if - - else if (operator_is_ternary(op)) - { - AstCalcData subdata2; - AstCalcData subdata3; - - assert(op == MOJOSHADER_AST_OP_CONDITIONAL); // only one we have. - - if ( (!calc_ast_const_expr(ctx, expr->ternary.left, data)) || - (!calc_ast_const_expr(ctx, expr->ternary.center, &subdata2)) || - (!calc_ast_const_expr(ctx, expr->ternary.right, &subdata3)) ) - return 0; - - // first operand should be bool (for the one ternary operator we have). - if (data->isflt) - { - data->isflt = 0; - data->value.i = (int64) subdata3.value.f; - } // if - - // upgrade to float if either operand is float. - if ((subdata2.isflt) || (subdata3.isflt)) - { - if (!subdata2.isflt) subdata2.value.f = (double) subdata2.value.i; - if (!subdata3.isflt) subdata3.value.f = (double) subdata3.value.i; - subdata2.isflt = subdata3.isflt = 1; - } // if - - data->isflt = subdata2.isflt; - if (data->isflt) - data->value.f = data->value.i ? subdata2.value.f : subdata3.value.f; - else - data->value.i = data->value.i ? subdata2.value.i : subdata3.value.i; - return 1; - } // else if - - else // not an operator? See if this is a literal value. - { - switch (op) - { - case MOJOSHADER_AST_OP_INT_LITERAL: - data->isflt = 0; - data->value.i = expr->intliteral.value; - return 1; - - case MOJOSHADER_AST_OP_FLOAT_LITERAL: - data->isflt = 1; - data->value.f = expr->floatliteral.value; - return 1; - - case MOJOSHADER_AST_OP_BOOLEAN_LITERAL: - data->isflt = 0; - data->value.i = expr->boolliteral.value ? 1 : 0; - return 1; - - default: break; - } // switch - } // switch - - return 0; // not constant, or unhandled. -} // calc_ast_const_expr - - -static const MOJOSHADER_astDataType *reduce_datatype(Context *ctx, const MOJOSHADER_astDataType *dt) -{ - const MOJOSHADER_astDataType *retval = dt; - while (retval && retval->type == MOJOSHADER_AST_DATATYPE_USER) - { - // !!! FIXME: Ugh, const removal. - MOJOSHADER_astDataTypeUser *user = (MOJOSHADER_astDataTypeUser *) &retval->user; - if (user->details->type == MOJOSHADER_AST_DATATYPE_NONE) - { - // Take this opportunity to fix up some usertype stubs that were - // left over from the parse phase. You HAVE to catch these in the - // right scope, so be aggressive about calling reduce_datatype() - // as soon as things come into view! - user->details = get_usertype(ctx, user->name); - assert(user->details != NULL); - } // if - - retval = user->details; - } // while - - return retval; -} // reduce_datatype - - -static inline const MOJOSHADER_astDataType *sanitize_datatype(Context *ctx, const MOJOSHADER_astDataType *dt) -{ - reduce_datatype(ctx, dt); - return dt; -} // sanitize_datatype - - -static const MOJOSHADER_astDataType *build_function_datatype(Context *ctx, - const MOJOSHADER_astDataType *rettype, - const int paramcount, - const MOJOSHADER_astDataType **params, - const int intrinsic) -{ - const MOJOSHADER_astDataType **dtparams = NULL; - void *ptr; - - if (paramcount > 0) - { - // !!! FIXME: this is hacky. - ptr = Malloc(ctx, sizeof (*params) * paramcount); - if (ptr == NULL) - return NULL; - if (!buffer_append(ctx->garbage, &ptr, sizeof (ptr))) - { - Free(ctx, ptr); - return NULL; - } // if - dtparams = (const MOJOSHADER_astDataType **) ptr; - memcpy(dtparams, params, sizeof (*params) * paramcount); - } - - ptr = Malloc(ctx, sizeof (MOJOSHADER_astDataType)); - if (ptr == NULL) - return NULL; - if (!buffer_append(ctx->garbage, &ptr, sizeof (ptr))) - { - Free(ctx, ptr); - return NULL; - } // if - - MOJOSHADER_astDataType *dt = (MOJOSHADER_astDataType *) ptr; - dt->type = MOJOSHADER_AST_DATATYPE_FUNCTION; - dt->function.retval = rettype; - dt->function.params = dtparams; - dt->function.num_params = paramcount; - dt->function.intrinsic = intrinsic; - return dt; -} // build_function_datatype - - -static const MOJOSHADER_astDataType *build_datatype(Context *ctx, - const int isconst, - const MOJOSHADER_astDataType *dt, - MOJOSHADER_astScalarOrArray *soa) -{ - MOJOSHADER_astDataType *retval = NULL; - - assert( (soa->isarray && soa->dimension) || - (!soa->isarray && !soa->dimension) ); - - sanitize_datatype(ctx, dt); - - // see if we can just reuse the exist datatype. - if (!soa->isarray) - { - const int c1 = (dt->type & MOJOSHADER_AST_DATATYPE_CONST) != 0; - const int c2 = (isconst != 0); - if (c1 == c2) - return dt; // reuse existing datatype! - } // if - - retval = (MOJOSHADER_astDataType *) Malloc(ctx, sizeof (*retval)); - if (retval == NULL) - return NULL; - - // !!! FIXME: this is hacky. - if (!buffer_append(ctx->garbage, &retval, sizeof (retval))) - { - Free(ctx, retval); - return NULL; - } // if - - if (!soa->isarray) - { - assert(soa->dimension == NULL); - memcpy(retval, dt, sizeof (MOJOSHADER_astDataType)); - if (isconst) - retval->type |= MOJOSHADER_AST_DATATYPE_CONST; - else - retval->type &= ~MOJOSHADER_AST_DATATYPE_CONST; - return retval; - } // if - - retval->type = MOJOSHADER_AST_DATATYPE_ARRAY; - retval->array.base = dt; - if (soa->dimension == NULL) - { - retval->array.elements = -1; - return retval; - } // if - - // Run the expression to verify it's constant and produces a positive int. - AstCalcData data; - data.isflt = 0; - data.value.i = 0; - retval->array.elements = 16; // sane default for failure. - const int ok = calc_ast_const_expr(ctx, soa->dimension, &data); - - // reset error position. - ctx->sourcefile = soa->ast.filename; - ctx->sourceline = soa->ast.line; - - if (!ok) - fail(ctx, "array dimensions not constant"); - else if (data.isflt) - fail(ctx, "array dimensions not integer"); - else if (data.value.i < 0) - fail(ctx, "array dimensions negative"); - else - retval->array.elements = data.value.i; - - return retval; -} // build_datatype - - -static void require_numeric_datatype(Context *ctx, - const MOJOSHADER_astDataType *datatype) -{ - datatype = reduce_datatype(ctx, datatype); - if (datatype->type == MOJOSHADER_AST_DATATYPE_VECTOR) - datatype = reduce_datatype(ctx, datatype->vector.base); - else if (datatype->type == MOJOSHADER_AST_DATATYPE_MATRIX) - datatype = reduce_datatype(ctx, datatype->matrix.base); - - switch (datatype->type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: - case MOJOSHADER_AST_DATATYPE_INT: - case MOJOSHADER_AST_DATATYPE_UINT: - case MOJOSHADER_AST_DATATYPE_HALF: - case MOJOSHADER_AST_DATATYPE_FLOAT: - case MOJOSHADER_AST_DATATYPE_DOUBLE: - return; - default: break; - } // switch - - fail(ctx, "Expected numeric type"); // !!! FIXME: fmt. - // !!! FIXME: replace AST node with an AST_OP_INT_LITERAL zero, keep going. -} // require_numeric_datatype - -static void require_integer_datatype(Context *ctx, - const MOJOSHADER_astDataType *datatype) -{ - datatype = reduce_datatype(ctx, datatype); - switch (datatype->type) - { - case MOJOSHADER_AST_DATATYPE_INT: - case MOJOSHADER_AST_DATATYPE_UINT: - return; - default: break; - } // switch - - fail(ctx, "Expected integer type"); // !!! FIXME: fmt. - // !!! FIXME: replace AST node with an AST_OP_INT_LITERAL zero, keep going. -} // require_integer_datatype - -static void require_boolean_datatype(Context *ctx, - const MOJOSHADER_astDataType *datatype) -{ - datatype = reduce_datatype(ctx, datatype); - switch (datatype->type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: - case MOJOSHADER_AST_DATATYPE_INT: - case MOJOSHADER_AST_DATATYPE_UINT: - return; - default: break; - } // switch - - fail(ctx, "Expected boolean type"); // !!! FIXME: fmt. - // !!! FIXME: replace AST node with an AST_OP_BOOLEAN_LITERAL false, keep going. -} // require_numeric_datatype - - -static void require_array_datatype(Context *ctx, - const MOJOSHADER_astDataType *datatype) -{ - datatype = reduce_datatype(ctx, datatype); - if (datatype->type == MOJOSHADER_AST_DATATYPE_ARRAY) - return; - - fail(ctx, "expected array"); - // !!! FIXME: delete array dereference for further processing. -} // require_array_datatype - - -static void require_struct_datatype(Context *ctx, - const MOJOSHADER_astDataType *datatype) -{ - datatype = reduce_datatype(ctx, datatype); - if (datatype->type == MOJOSHADER_AST_DATATYPE_STRUCT) - return; - - fail(ctx, "expected struct"); - // !!! FIXME: delete struct dereference for further processing. -} // require_struct_datatype - - -static int require_function_datatype(Context *ctx, - const MOJOSHADER_astDataType *datatype) -{ - datatype = reduce_datatype(ctx, datatype); - if ((!datatype) || (datatype->type != MOJOSHADER_AST_DATATYPE_FUNCTION)) - { - fail(ctx, "expected function"); - return 0; - } // if - - return 1; -} // require_function_datatype - - -// Extract the individual element type from an array datatype. -static const MOJOSHADER_astDataType *array_element_datatype(Context *ctx, - const MOJOSHADER_astDataType *datatype) -{ - datatype = reduce_datatype(ctx, datatype); - assert(datatype->type == MOJOSHADER_AST_DATATYPE_ARRAY); - return datatype->array.base; -} // array_element_datatype - - -// This tests two datatypes to see if they are compatible, and adds cast -// operator nodes to the AST if the program was relying on implicit -// casts between then. Will fail() if the datatypes can't be coerced -// with a cast at all. (left) can be NULL to say that its datatype is -// set in stone (an lvalue, for example). No other NULLs are allowed. -// Returns final datatype used once implicit casting is complete. -// The datatypes must be pointers from the string cache. -static const MOJOSHADER_astDataType *add_type_coercion(Context *ctx, - MOJOSHADER_astExpression **left, - const MOJOSHADER_astDataType *_ldatatype, - MOJOSHADER_astExpression **right, - const MOJOSHADER_astDataType *_rdatatype) -{ - // !!! FIXME: this whole function is probably naive at best. - const MOJOSHADER_astDataType *ldatatype = reduce_datatype(ctx, _ldatatype); - const MOJOSHADER_astDataType *rdatatype = reduce_datatype(ctx, _rdatatype); - - if (ldatatype == rdatatype) - return ldatatype; // they already match, so we're done. - - struct { - const MOJOSHADER_astDataTypeType type; - const int bits; - const int is_unsigned; - const int floating; - } typeinf[] = { - { MOJOSHADER_AST_DATATYPE_BOOL, 1, 1, 0 }, - { MOJOSHADER_AST_DATATYPE_HALF, 16, 0, 1 }, - { MOJOSHADER_AST_DATATYPE_INT, 32, 0, 0 }, - { MOJOSHADER_AST_DATATYPE_UINT, 32, 1, 0 }, - { MOJOSHADER_AST_DATATYPE_FLOAT, 32, 0, 1 }, - { MOJOSHADER_AST_DATATYPE_DOUBLE, 64, 0, 1 }, - }; - - int lvector = 0; - int lmatrix = 0; - int l = STATICARRAYLEN(typeinf); - if (ldatatype != NULL) - { - MOJOSHADER_astDataTypeType type = ldatatype->type; - if (type == MOJOSHADER_AST_DATATYPE_VECTOR) - { - lvector = 1; - type = ldatatype->vector.base->type; - } // if - else if (type == MOJOSHADER_AST_DATATYPE_MATRIX) - { - lmatrix = 1; - type = ldatatype->matrix.base->type; - } // if - - for (l = 0; l < STATICARRAYLEN(typeinf); l++) - { - if (typeinf[l].type == type) - break; - } // for - } // if - - int rvector = 0; - int rmatrix = 0; - int r = STATICARRAYLEN(typeinf); - if (rdatatype != NULL) - { - MOJOSHADER_astDataTypeType type = rdatatype->type; - if (type == MOJOSHADER_AST_DATATYPE_VECTOR) - { - rvector = 1; - type = rdatatype->vector.base->type; - } // if - else if (type == MOJOSHADER_AST_DATATYPE_MATRIX) - { - rmatrix = 1; - type = rdatatype->matrix.base->type; - } // if - - for (r = 0; r < STATICARRAYLEN(typeinf); r++) - { - if (typeinf[r].type == type) - break; - } // for - } // if - - enum { CHOOSE_NEITHER, CHOOSE_LEFT, CHOOSE_RIGHT } choice = CHOOSE_NEITHER; - if ((l < STATICARRAYLEN(typeinf)) && (r < STATICARRAYLEN(typeinf))) - { - if (left == NULL) - choice = CHOOSE_LEFT; // we need to force to the lvalue. - else if (lmatrix && !rmatrix) - choice = CHOOSE_LEFT; - else if (!lmatrix && rmatrix) - choice = CHOOSE_RIGHT; - else if (lvector && !rvector) - choice = CHOOSE_LEFT; - else if (!lvector && rvector) - choice = CHOOSE_RIGHT; - else if (typeinf[l].bits > typeinf[r].bits) - choice = CHOOSE_LEFT; - else if (typeinf[l].bits < typeinf[r].bits) - choice = CHOOSE_RIGHT; - else if (typeinf[l].floating && !typeinf[r].floating) - choice = CHOOSE_LEFT; - else if (!typeinf[l].floating && typeinf[r].floating) - choice = CHOOSE_RIGHT; - else if (typeinf[l].is_unsigned && !typeinf[r].is_unsigned) - choice = CHOOSE_LEFT; - else if (!typeinf[l].is_unsigned && typeinf[r].is_unsigned) - choice = CHOOSE_RIGHT; - } // if - - if (choice == CHOOSE_LEFT) - { - *right = new_cast_expr(ctx, _ldatatype, *right); - return _ldatatype; - } // if - else if (choice == CHOOSE_RIGHT) - { - *left = new_cast_expr(ctx, _rdatatype, *left); - return _rdatatype; - } // else if - - assert(choice == CHOOSE_NEITHER); - fail(ctx, "incompatible data types"); - // Ditch original (*right), force a literal value that matches - // ldatatype, so further processing is normalized. - // !!! FIXME: force (right) to match (left). - delete_expr(ctx, *right); - *right = new_cast_expr(ctx, _ldatatype, new_literal_int_expr(ctx, 0)); - return ldatatype; -} // add_type_coercion - -static int is_swizzle_str(const char *str, const int veclen) -{ - int i; - int is_xyzw = 0; - int is_rgba = 0; - - assert(*str != '\0'); // can this actually happen? - - for (i = 0; i < veclen; i++, str++) - { - const char ch = *str; - if (ch == '\0') - break; - else if ((ch == 'x') || (ch == 'y') || (ch == 'z') || (ch == 'w')) - is_xyzw = 1; - else if ((ch == 'r') || (ch == 'g') || (ch == 'b') || (ch == 'a')) - is_rgba = 1; - } // for - - if (*str != '\0') // must be end of string here. - return 0; // not a swizzle. - return ((is_rgba + is_xyzw) == 1); // can only be one or the other. -} // is_swizzle_str - -static int datatype_size(const MOJOSHADER_astDataType *dt) -{ - switch (dt->type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: return 1; - case MOJOSHADER_AST_DATATYPE_INT: return 4; - case MOJOSHADER_AST_DATATYPE_UINT: return 4; - case MOJOSHADER_AST_DATATYPE_FLOAT: return 4; - case MOJOSHADER_AST_DATATYPE_FLOAT_SNORM: return 4; - case MOJOSHADER_AST_DATATYPE_FLOAT_UNORM: return 4; - case MOJOSHADER_AST_DATATYPE_HALF: return 2; - case MOJOSHADER_AST_DATATYPE_DOUBLE: return 8; - return 1; - default: - assert(0 && "Maybe should have used reduce_datatype()?"); - return 0; - } // switch -} // datatype_size - -static inline int is_scalar_datatype(const MOJOSHADER_astDataType *dt) -{ - switch (dt->type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: - case MOJOSHADER_AST_DATATYPE_INT: - case MOJOSHADER_AST_DATATYPE_UINT: - case MOJOSHADER_AST_DATATYPE_FLOAT: - case MOJOSHADER_AST_DATATYPE_FLOAT_SNORM: - case MOJOSHADER_AST_DATATYPE_FLOAT_UNORM: - case MOJOSHADER_AST_DATATYPE_HALF: - case MOJOSHADER_AST_DATATYPE_DOUBLE: - return 1; - default: - return 0; - } // switch -} // is_scalar_datatype - -static inline int is_float_datatype(const MOJOSHADER_astDataType *dt) -{ - switch (dt->type) - { - case MOJOSHADER_AST_DATATYPE_FLOAT: return 1; - case MOJOSHADER_AST_DATATYPE_FLOAT_SNORM: return 1; - case MOJOSHADER_AST_DATATYPE_FLOAT_UNORM: return 1; - default: return 0; - } // switch -} // is_float_datatype - -static int datatype_elems(Context *ctx, const MOJOSHADER_astDataType *dt) -{ - dt = reduce_datatype(ctx, dt); - switch (dt->type) - { - case MOJOSHADER_AST_DATATYPE_VECTOR: - return dt->vector.elements; - case MOJOSHADER_AST_DATATYPE_MATRIX: - return dt->matrix.rows * dt->matrix.columns; - default: - return 1; - } // switch -} // datatype_elems - -static const MOJOSHADER_astDataType *datatype_base(Context *ctx, const MOJOSHADER_astDataType *dt) -{ - dt = reduce_datatype(ctx, dt); - if (dt == NULL) - return dt; - - switch (dt->type) - { - case MOJOSHADER_AST_DATATYPE_VECTOR: - dt = dt->vector.base; - break; - case MOJOSHADER_AST_DATATYPE_MATRIX: - dt = dt->matrix.base; - break; - case MOJOSHADER_AST_DATATYPE_BUFFER: - dt = dt->buffer.base; - break; - case MOJOSHADER_AST_DATATYPE_ARRAY: - dt = dt->array.base; - break; - default: break; - } // switch - - return dt; -} // datatype_base - -typedef enum -{ - DT_MATCH_INCOMPATIBLE, // flatly incompatible - DT_MATCH_COMPATIBLE_DOWNCAST, // would have to lose precision - DT_MATCH_COMPATIBLE_UPCAST, // would have to gain precision - DT_MATCH_COMPATIBLE, // can cast to without serious change. - DT_MATCH_PERFECT // identical datatype. -} DatatypeMatch; - -static DatatypeMatch compatible_arg_datatype(Context *ctx, - const MOJOSHADER_astDataType *arg, - const MOJOSHADER_astDataType *param) -{ - // The matching rules for HLSL function overloading, as far as I can - // tell from experimenting with Microsoft's compiler, seem to be this: - // - // - All parameters of a function must match what the caller specified - // after possible type promotion via the following rules. - // - If the number of arguments and the number of parameters don't match, - // that overload is immediately rejected. - // - Each overloaded function is given a score that is the sum of the - // "worth" of each parameter vs the caller's arguments - // (see DatatypeMatch). The higher the score, the more favorable this - // function overload would be. - // - If there is a tie for highest score between two or more function - // overloads, we declare that function call to be ambiguous and fail(). - // - Scalars can be promoted to vectors to make a parameter match. - // - Scalars can promote to other scalars (short to int, etc). - // - Datatypes can downcast, but should generate a warning. - // (calling void fn(float x); as fn((double)1.0) should warn). - // - Vectors may NOT be extend (a float2 can't implicity extend to a - // float4). - // - Vectors with the same elements can promote (a half2 can become - // a float2). Downcasting between vectors with the same number of - // elements is allowed. - // - A perfect match of all params will be favored over any functions - // that only match if type promotion is applied (given a perfect match - // of all parameters, we'll stop looking for other matches). - - if (datatypes_match(arg, param)) - return DT_MATCH_PERFECT; // that was easy. - - arg = reduce_datatype(ctx, arg); - param = reduce_datatype(ctx, param); - - int do_base_test = 0; - - if (is_scalar_datatype(arg)) - do_base_test = 1; // we let these all go through for now. - - else if (arg->type == param->type) - { - if (arg->type == MOJOSHADER_AST_DATATYPE_VECTOR) - do_base_test = (arg->vector.elements == param->vector.elements); - else if (arg->type == MOJOSHADER_AST_DATATYPE_MATRIX) - { - do_base_test = - ((arg->matrix.rows == param->matrix.rows) && - (arg->matrix.columns == param->matrix.columns)); - } // if - } // if - - if (do_base_test) - { - arg = datatype_base(ctx, arg); - param = datatype_base(ctx, param); - - const int argsize = datatype_size(arg); - const int paramsize = datatype_size(param); - const int argfloat = is_float_datatype(arg); - const int paramfloat = is_float_datatype(param); - - if (argfloat && !paramfloat) - return DT_MATCH_COMPATIBLE_DOWNCAST; // always loss of precision. - else if (argfloat && !paramfloat) - { - if (argsize < paramsize) - return DT_MATCH_COMPATIBLE_UPCAST; - else - return DT_MATCH_COMPATIBLE_DOWNCAST; // loss of precision. - } // else if - else if (argsize == paramsize) - return DT_MATCH_COMPATIBLE; - else if (argsize < paramsize) - return DT_MATCH_COMPATIBLE_UPCAST; - else /* if (argsize > paramsize) */ - return DT_MATCH_COMPATIBLE_DOWNCAST; - } // if - - return DT_MATCH_INCOMPATIBLE; -} // compatible_arg_datatype - - -static const MOJOSHADER_astDataType *type_check_ast(Context *ctx, void *_ast); - -// !!! FIXME: this function sucks. -static const MOJOSHADER_astDataType *match_func_to_call(Context *ctx, - MOJOSHADER_astExpressionCallFunction *ast) -{ - SymbolScope *best = NULL; // best choice we find. - int best_score = 0; - MOJOSHADER_astExpressionIdentifier *ident = ast->identifier; - const char *sym = ident->identifier; - const void *value = NULL; - void *iter = NULL; - - int argcount = 0; - MOJOSHADER_astArguments *args = ast->args; - while (args != NULL) - { - argcount++; - type_check_ast(ctx, args->argument); - args = args->next; - } // while; - - // we do some tapdancing to handle function overloading here. - int match = 0; - while (hash_iter(ctx->variables.hash, sym, &value, &iter)) - { - SymbolScope *item = (SymbolScope *) value; - const MOJOSHADER_astDataType *dt = item->datatype; - dt = reduce_datatype(ctx, dt); - // there's a locally-scoped symbol with this name? It takes precedence. - if (dt->type != MOJOSHADER_AST_DATATYPE_FUNCTION) - return dt; - - const MOJOSHADER_astDataTypeFunction *dtfn = (MOJOSHADER_astDataTypeFunction *) dt; - const int perfect = argcount * ((int) DT_MATCH_PERFECT); - int score = 0; - - if (argcount == dtfn->num_params) // !!! FIXME: default args. - { - args = ast->args; - int i; - for (i = 0; i < argcount; i++) - { - assert(args != NULL); - dt = args->argument->datatype; - args = args->next; - const DatatypeMatch compatible = compatible_arg_datatype(ctx, dt, dtfn->params[i]); - if (compatible == DT_MATCH_INCOMPATIBLE) - { - args = NULL; - score = 0; - break; - } // if - - score += (int) compatible; - } // for - - if (args != NULL) - score = 0; // too many arguments supplied. No match. - } // else - - if (score == 0) // incompatible. - continue; - - else if (score == perfect) // perfection! stop looking! - { - match = 1; // ignore all other compatible matches. - best = item; - break; - } // if - - else if (score >= best_score) // compatible, but not perfect, match. - { - if (score == best_score) - { - match++; - // !!! FIXME: list each possible function in a fail(), - // !!! FIXME: but you can't actually fail() here, since - // !!! FIXME: this may cease to be ambiguous if we get - // !!! FIXME: a better match on a later overload. - } // if - - else if (score > best_score) - { - match = 1; // reset the ambiguousness count. - best = item; - best_score = score; - } // if - } // else if - } // while - - if (match > 1) - { - assert(best != NULL); - failf(ctx, "Ambiguous function call to '%s'", sym); - } // if - - if (best == NULL) - { - assert(match == 0); - assert(best_score == 0); - // !!! FIXME: ident->datatype = ? - failf(ctx, "No matching function named '%s'", sym); - } // if - else - { - ident->datatype = reduce_datatype(ctx, best->datatype); - ident->index = best->index; - } // else - - return ident->datatype; -} // match_func_to_call - - -static const MOJOSHADER_astDataType *vectype_from_base(Context *ctx, - const MOJOSHADER_astDataType *base, - const int len) -{ - assert(len > 0); - assert(len <= 4); - - if (len == 1) // return "float" and not "float1" - return base; - - const char *typestr = NULL; - switch (base->type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: typestr = "bool"; break; - case MOJOSHADER_AST_DATATYPE_INT: typestr = "int"; break; - case MOJOSHADER_AST_DATATYPE_UINT: typestr = "uint"; break; - case MOJOSHADER_AST_DATATYPE_HALF: typestr = "half"; break; - case MOJOSHADER_AST_DATATYPE_FLOAT: typestr = "float"; break; - case MOJOSHADER_AST_DATATYPE_DOUBLE: typestr = "double"; break; - default: assert(0 && "This shouldn't happen"); break; - } // switch - - char buf[32]; - snprintf(buf, sizeof (buf), "%s%d", typestr, len); - const MOJOSHADER_astDataType *datatype = get_usertype(ctx, buf); - assert(datatype != NULL); - return datatype; -} // vectype_from_base - - -// Go through the AST and make sure all datatypes check out okay. For datatypes -// that are compatible but are relying on an implicit cast, we add explicit -// casts to the AST here, so further processing doesn't have to worry about -// type coercion. -// For things that are incompatible, we generate errors and -// then replace them with reasonable defaults so further processing can -// continue (but code generation will be skipped due to errors). -// This means further processing can assume the AST is sane and not have to -// spend effort verifying it again. -// This stage will also set every AST node's datatype field, if it is -// meaningful to do so. This will allow conversion to IR to know what -// type/size a given node is. -static const MOJOSHADER_astDataType *type_check_ast(Context *ctx, void *_ast) -{ - MOJOSHADER_astNode *ast = (MOJOSHADER_astNode *) _ast; - const MOJOSHADER_astDataType *datatype = NULL; - const MOJOSHADER_astDataType *datatype2 = NULL; - const MOJOSHADER_astDataType *datatype3 = NULL; - - if ((!ast) || (ctx->out_of_memory)) - return NULL; - - // upkeep so we report correct error locations... - ctx->sourcefile = ast->ast.filename; - ctx->sourceline = ast->ast.line; - - switch (ast->ast.type) - { - case MOJOSHADER_AST_OP_POSTINCREMENT: - case MOJOSHADER_AST_OP_POSTDECREMENT: - case MOJOSHADER_AST_OP_PREINCREMENT: - case MOJOSHADER_AST_OP_PREDECREMENT: - case MOJOSHADER_AST_OP_COMPLEMENT: - case MOJOSHADER_AST_OP_NEGATE: - // !!! FIXME: must be lvalue. - // !!! FIXME: bools must type-promote to ...int? - // !!! FIXME: complement must not be float (...right?) - datatype = type_check_ast(ctx, ast->unary.operand); - require_numeric_datatype(ctx, datatype); - ast->unary.datatype = datatype; - return datatype; - - case MOJOSHADER_AST_OP_NOT: - datatype = type_check_ast(ctx, ast->unary.operand); - require_boolean_datatype(ctx, datatype); - // !!! FIXME: coerce to bool here. - ast->unary.datatype = &ctx->dt_bool; - return datatype; - - case MOJOSHADER_AST_OP_DEREF_ARRAY: - datatype = type_check_ast(ctx, ast->binary.left); - datatype2 = type_check_ast(ctx, ast->binary.right); - require_integer_datatype(ctx, datatype2); - add_type_coercion(ctx, NULL, &ctx->dt_int, &ast->binary.right, datatype2); - - datatype = reduce_datatype(ctx, datatype); - if (datatype->type == MOJOSHADER_AST_DATATYPE_VECTOR) - { - // !!! FIXME: if constant int, fail if not 0 >= value <= vecsize. - ast->binary.datatype = datatype->vector.base; - } // if - else if (datatype->type == MOJOSHADER_AST_DATATYPE_MATRIX) - { - // !!! FIXME: if constant int, fail if not 0 >= value <= rowsize (colsize?). - ast->binary.datatype = vectype_from_base(ctx, datatype->matrix.base, datatype->matrix.columns); // !!! FIXME: rows? - } - else - { - require_array_datatype(ctx, datatype); - ast->binary.datatype = array_element_datatype(ctx, datatype); - } // else - - return ast->binary.datatype; - - case MOJOSHADER_AST_OP_DEREF_STRUCT: - { - const char *member = ast->derefstruct.member; - datatype = type_check_ast(ctx, ast->derefstruct.identifier); - const MOJOSHADER_astDataType *reduced = reduce_datatype(ctx, datatype); - - // Is this a swizzle and not a struct deref? - if (reduced->type == MOJOSHADER_AST_DATATYPE_VECTOR) - { - const int veclen = reduced->vector.elements; - ast->derefstruct.isswizzle = 1; - if (!is_swizzle_str(member, veclen)) - { - fail(ctx, "invalid swizzle on vector"); - // force this to be sane for further processing. - const char *sane_swiz = stringcache(ctx->strcache, "xyzw"); - member = ast->derefstruct.member = sane_swiz; - } // if - - const int swizlen = (int) strlen(member); - if (swizlen != veclen) - datatype = vectype_from_base(ctx, reduced->vector.base, swizlen); - - ast->derefstruct.datatype = datatype; - return ast->derefstruct.datatype; - } // if - - // maybe this is an actual struct? - // !!! FIXME: replace with an int or something if not. - require_struct_datatype(ctx, reduced); - - // map member to datatype - assert(ast->derefstruct.datatype == NULL); - const MOJOSHADER_astDataTypeStructMember *mbrs = reduced->structure.members; - int i; - for (i = 0; i < reduced->structure.member_count; i++) - { - if (strcmp(mbrs[i].identifier, member) == 0) - { - ast->derefstruct.datatype = mbrs[i].datatype; - ast->derefstruct.member_index = i; - break; - } // if - } // for - - if (ast->derefstruct.datatype == NULL) - { - // !!! FIXME: replace with an int or something. - failf(ctx, "Struct has no member named '%s'", member); - } // if - - return ast->derefstruct.datatype; - } // case - - case MOJOSHADER_AST_OP_COMMA: - // evaluate and throw away left, return right. - type_check_ast(ctx, ast->binary.left); - ast->binary.datatype = type_check_ast(ctx, ast->binary.right); - return ast->binary.datatype; - - case MOJOSHADER_AST_OP_MULTIPLY: - case MOJOSHADER_AST_OP_DIVIDE: - case MOJOSHADER_AST_OP_ADD: - case MOJOSHADER_AST_OP_SUBTRACT: - datatype = type_check_ast(ctx, ast->binary.left); - datatype2 = type_check_ast(ctx, ast->binary.right); - require_numeric_datatype(ctx, datatype); - require_numeric_datatype(ctx, datatype2); - ast->binary.datatype = add_type_coercion(ctx, &ast->binary.left, - datatype, &ast->binary.right, datatype2); - return ast->binary.datatype; - - case MOJOSHADER_AST_OP_LSHIFT: - case MOJOSHADER_AST_OP_RSHIFT: - case MOJOSHADER_AST_OP_MODULO: - datatype = type_check_ast(ctx, ast->binary.left); - datatype2 = type_check_ast(ctx, ast->binary.right); - require_integer_datatype(ctx, datatype); - require_integer_datatype(ctx, datatype2); - ast->binary.datatype = add_type_coercion(ctx, &ast->binary.left, - datatype, &ast->binary.right, datatype2); - return ast->binary.datatype; - - case MOJOSHADER_AST_OP_LESSTHAN: - case MOJOSHADER_AST_OP_GREATERTHAN: - case MOJOSHADER_AST_OP_LESSTHANOREQUAL: - case MOJOSHADER_AST_OP_GREATERTHANOREQUAL: - case MOJOSHADER_AST_OP_NOTEQUAL: - case MOJOSHADER_AST_OP_EQUAL: - datatype = type_check_ast(ctx, ast->binary.left); - datatype2 = type_check_ast(ctx, ast->binary.right); - add_type_coercion(ctx, &ast->binary.left, datatype, - &ast->binary.right, datatype2); - ast->binary.datatype = &ctx->dt_bool; - return ast->binary.datatype; - - case MOJOSHADER_AST_OP_BINARYAND: - case MOJOSHADER_AST_OP_BINARYXOR: - case MOJOSHADER_AST_OP_BINARYOR: - datatype = type_check_ast(ctx, ast->binary.left); - datatype2 = type_check_ast(ctx, ast->binary.right); - require_integer_datatype(ctx, datatype); - require_integer_datatype(ctx, datatype2); - ast->binary.datatype = add_type_coercion(ctx, &ast->binary.left, - datatype, &ast->binary.right, datatype2); - return ast->binary.datatype; - - case MOJOSHADER_AST_OP_LOGICALAND: - case MOJOSHADER_AST_OP_LOGICALOR: - datatype = type_check_ast(ctx, ast->binary.left); - datatype2 = type_check_ast(ctx, ast->binary.right); - require_boolean_datatype(ctx, datatype); - require_boolean_datatype(ctx, datatype2); - // !!! FIXME: coerce each to bool here, separately. - add_type_coercion(ctx, &ast->binary.left, datatype, - &ast->binary.right, datatype2); - ast->binary.datatype = &ctx->dt_bool; - - case MOJOSHADER_AST_OP_ASSIGN: - case MOJOSHADER_AST_OP_MULASSIGN: - case MOJOSHADER_AST_OP_DIVASSIGN: - case MOJOSHADER_AST_OP_MODASSIGN: - case MOJOSHADER_AST_OP_ADDASSIGN: - case MOJOSHADER_AST_OP_SUBASSIGN: - case MOJOSHADER_AST_OP_LSHIFTASSIGN: - case MOJOSHADER_AST_OP_RSHIFTASSIGN: - case MOJOSHADER_AST_OP_ANDASSIGN: - case MOJOSHADER_AST_OP_XORASSIGN: - case MOJOSHADER_AST_OP_ORASSIGN: - // !!! FIXME: verify binary.left is an lvalue, or fail()! - datatype = type_check_ast(ctx, ast->binary.left); - datatype2 = type_check_ast(ctx, ast->binary.right); - ast->binary.datatype = add_type_coercion(ctx, NULL, datatype, - &ast->binary.right, datatype2); - return ast->binary.datatype; - - case MOJOSHADER_AST_OP_CONDITIONAL: - datatype = type_check_ast(ctx, ast->ternary.left); - datatype2 = type_check_ast(ctx, ast->ternary.center); - datatype3 = type_check_ast(ctx, ast->ternary.right); - require_numeric_datatype(ctx, datatype); - ast->ternary.datatype = add_type_coercion(ctx, &ast->ternary.center, - datatype2, &ast->ternary.right, datatype3); - return ast->ternary.datatype; - - case MOJOSHADER_AST_OP_IDENTIFIER: - datatype = find_variable(ctx, ast->identifier.identifier, &ast->identifier.index); - if (datatype == NULL) - { - fail(ctx, "Unknown identifier"); - // !!! FIXME: replace with a sane default, move on. - datatype = &ctx->dt_int; - } // if - ast->identifier.datatype = datatype; - return ast->identifier.datatype; - - case MOJOSHADER_AST_OP_INT_LITERAL: - case MOJOSHADER_AST_OP_FLOAT_LITERAL: - case MOJOSHADER_AST_OP_STRING_LITERAL: - case MOJOSHADER_AST_OP_BOOLEAN_LITERAL: - assert(ast->expression.datatype != NULL); - return ast->expression.datatype; // already set up during parsing. - - case MOJOSHADER_AST_ARGUMENTS: - assert(0 && "Should be done by MOJOSHADER_AST_OP_CALLFUNC/CONSTRUCTOR"); - return NULL; - - case MOJOSHADER_AST_OP_CALLFUNC: - { - datatype = match_func_to_call(ctx, &ast->callfunc); - const MOJOSHADER_astDataType *reduced = reduce_datatype(ctx, datatype); - // !!! FIXME: replace AST node with an int if this isn't a func. - if (!require_function_datatype(ctx, reduced)) - { - ast->callfunc.datatype = &ctx->dt_int; - return ast->callfunc.datatype; - } // if - - MOJOSHADER_astArguments *arg = ast->callfunc.args; - int i; - for (i = 0; i < reduced->function.num_params; i++) - { - if (arg == NULL) // !!! FIXME: check for default parameters, fill them in. - { - fail(ctx, "Too few arguments"); - // !!! FIXME: replace AST here. - break; - } // if - datatype2 = arg->argument->datatype; // already type-checked. - add_type_coercion(ctx, NULL, reduced->function.params[i], - &arg->argument, datatype2); - arg = arg->next; - } // for - - assert(arg == NULL); // shouldn't have chosen func if too many args. - - ast->callfunc.datatype = reduced->function.retval; - return ast->callfunc.datatype; - } // case - - case MOJOSHADER_AST_OP_CONSTRUCTOR: - { - const MOJOSHADER_astDataType *reduced = reduce_datatype(ctx, ast->constructor.datatype); - const MOJOSHADER_astDataType *base_dt = reduced; - int num_params = 1; - - assert(reduced != NULL); - switch (reduced->type) - { - case MOJOSHADER_AST_DATATYPE_VECTOR: - num_params = reduced->vector.elements; - base_dt = reduced->vector.base; - break; - case MOJOSHADER_AST_DATATYPE_MATRIX: - num_params = reduced->matrix.rows * reduced->matrix.columns; - base_dt = reduced->matrix.base; - break; - - case MOJOSHADER_AST_DATATYPE_BOOL: - case MOJOSHADER_AST_DATATYPE_INT: - case MOJOSHADER_AST_DATATYPE_UINT: - case MOJOSHADER_AST_DATATYPE_FLOAT: - case MOJOSHADER_AST_DATATYPE_FLOAT_SNORM: - case MOJOSHADER_AST_DATATYPE_FLOAT_UNORM: - case MOJOSHADER_AST_DATATYPE_HALF: - case MOJOSHADER_AST_DATATYPE_DOUBLE: - case MOJOSHADER_AST_DATATYPE_STRING: - num_params = 1; - break; - - // !!! FIXME: can you construct a MOJOSHADER_AST_DATATYPE_STRUCT? - // !!! FIXME: can you construct a MOJOSHADER_AST_DATATYPE_ARRAY? - // !!! FIXME: can you construct a MOJOSHADER_AST_DATATYPE_BUFFER? - - default: - fail(ctx, "Invalid type for constructor"); - delete_arguments(ctx, ast->constructor.args); - ast->constructor.args = new_argument(ctx, new_literal_int_expr(ctx, 0)); - ast->constructor.datatype = &ctx->dt_int; - return ast->constructor.datatype; - } // switch - - assert(num_params > 0); - - MOJOSHADER_astArguments *arg = ast->constructor.args; - MOJOSHADER_astArguments *prev = NULL; - int i; - for (i = 0; i < num_params; i++) - { - if (arg == NULL) // !!! FIXME: check for default parameters. - { - fail(ctx, "Too few arguments"); - // !!! FIXME: replace AST here. - break; - } // if - datatype2 = type_check_ast(ctx, arg->argument); - - // "float4(float3(1,2,3),4)" is legal, so we need to see if - // we're a vector, and jump that number of parameters instead - // of doing type coercion. - reduced = reduce_datatype(ctx, datatype2); - if (reduced->type == MOJOSHADER_AST_DATATYPE_VECTOR) - { - // make sure things like float4(half3(1,2,3),1) convert that half3 to float3. - const int count = reduced->vector.elements; - datatype3 = vectype_from_base(ctx, base_dt, count); - add_type_coercion(ctx, NULL, datatype3, &arg->argument, datatype2); - i += count - 1; - } // else - else - { - add_type_coercion(ctx, NULL, base_dt, &arg->argument, datatype2); - } // else - prev = arg; - arg = arg->next; - } // for - - if (arg != NULL) - { - fail(ctx, "Too many arguments"); - // Process extra arguments then chop them out. - MOJOSHADER_astArguments *argi; - for (argi = arg; argi != NULL; argi = argi->next) - type_check_ast(ctx, argi->argument); - if (prev != NULL) - prev->next = NULL; - delete_arguments(ctx, arg); - } // if - - return ast->constructor.datatype; - } // case - - case MOJOSHADER_AST_OP_CAST: - datatype = sanitize_datatype(ctx, ast->cast.datatype); - datatype2 = type_check_ast(ctx, ast->cast.operand); - // you still need type coercion, since you could do a wrong cast, - // like "int x = (short) mychar;" - add_type_coercion(ctx, NULL, datatype, &ast->cast.operand, datatype2); - return datatype; - - case MOJOSHADER_AST_STATEMENT_BREAK: - if ((ctx->loop_count == 0) && (ctx->switch_count == 0)) - fail(ctx, "Break outside loop or switch"); - // !!! FIXME: warn if unreachable statements follow? - type_check_ast(ctx, ast->stmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_CONTINUE: - if (ctx->loop_count == 0) - fail(ctx, "Continue outside loop"); - // !!! FIXME: warn if unreachable statements follow? - type_check_ast(ctx, ast->stmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_DISCARD: - // !!! FIXME: warn if unreachable statements follow? - type_check_ast(ctx, ast->stmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_EMPTY: - type_check_ast(ctx, ast->stmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_EXPRESSION: - // !!! FIXME: warn about expressions without a side-effect here? - type_check_ast(ctx, ast->exprstmt.expr); // !!! FIXME: This is named badly... - type_check_ast(ctx, ast->exprstmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_IF: - push_scope(ctx); // new scope for "if ((int x = blah()) != 0)" - type_check_ast(ctx, ast->ifstmt.expr); - type_check_ast(ctx, ast->ifstmt.statement); - pop_scope(ctx); - type_check_ast(ctx, ast->ifstmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_TYPEDEF: - type_check_ast(ctx, ast->typedefstmt.type_info); - type_check_ast(ctx, ast->typedefstmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_SWITCH: - { - ctx->switch_count++; - MOJOSHADER_astSwitchCases *cases = ast->switchstmt.cases; - // !!! FIXME: expr must be POD (no structs, arrays, etc!). - datatype = type_check_ast(ctx, ast->switchstmt.expr); - while (cases) - { - // !!! FIXME: case must be POD (no structs, arrays, etc!). - datatype2 = type_check_ast(ctx, cases->expr); - add_type_coercion(ctx, NULL, datatype, - &cases->expr, datatype2); - type_check_ast(ctx, cases->statement); - cases = cases->next; - } // while - ctx->switch_count--; - type_check_ast(ctx, ast->switchstmt.next); - return NULL; - } // case - - case MOJOSHADER_AST_SWITCH_CASE: - assert(0 && "Should be done by MOJOSHADER_AST_STATEMENT_SWITCH."); - return NULL; - - case MOJOSHADER_AST_STATEMENT_STRUCT: - type_check_ast(ctx, ast->structstmt.struct_info); - type_check_ast(ctx, ast->structstmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_VARDECL: - type_check_ast(ctx, ast->vardeclstmt.declaration); - type_check_ast(ctx, ast->vardeclstmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_BLOCK: - push_scope(ctx); // new vars declared here live until '}'. - type_check_ast(ctx, ast->blockstmt.statements); - pop_scope(ctx); - type_check_ast(ctx, ast->blockstmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_FOR: - ctx->loop_count++; - push_scope(ctx); // new scope for "for (int x = 0; ...)" - type_check_ast(ctx, ast->forstmt.var_decl); - type_check_ast(ctx, ast->forstmt.initializer); - type_check_ast(ctx, ast->forstmt.looptest); - type_check_ast(ctx, ast->forstmt.counter); - type_check_ast(ctx, ast->forstmt.statement); - pop_scope(ctx); - ctx->loop_count--; - type_check_ast(ctx, ast->forstmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_DO: - ctx->loop_count++; - // !!! FIXME: should there be a push_scope() here? - type_check_ast(ctx, ast->dostmt.statement); - push_scope(ctx); // new scope for "while ((int x = blah()) != 0)" - type_check_ast(ctx, ast->dostmt.expr); - pop_scope(ctx); - ctx->loop_count--; - type_check_ast(ctx, ast->dostmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_WHILE: - ctx->loop_count++; - push_scope(ctx); // new scope for "while ((int x = blah()) != 0)" - type_check_ast(ctx, ast->whilestmt.expr); - type_check_ast(ctx, ast->whilestmt.statement); - pop_scope(ctx); - ctx->loop_count--; - type_check_ast(ctx, ast->whilestmt.next); - return NULL; - - case MOJOSHADER_AST_STATEMENT_RETURN: - // !!! FIXME: type coercion to outer function's return type. - // !!! FIXME: warn if unreachable statements follow? - type_check_ast(ctx, ast->returnstmt.expr); - type_check_ast(ctx, ast->returnstmt.next); - return NULL; - - case MOJOSHADER_AST_COMPUNIT_FUNCTION: - assert(!ctx->is_func_scope); - - // We have to tapdance here to make sure the function is in - // the global scope, but it's parameters are pushed as variables - // in the function's scope. - datatype = type_check_ast(ctx, ast->funcunit.declaration); - ast->funcunit.index = push_function(ctx, - ast->funcunit.declaration->identifier, - datatype, ast->funcunit.definition == NULL); - - // not just a declaration, but a full function definition? - if (ast->funcunit.definition != NULL) - { - assert(ctx->loop_count == 0); - assert(ctx->switch_count == 0); - ctx->is_func_scope = 1; - ctx->var_index = 0; // reset this every function. - push_scope(ctx); // so function params are in function scope. - // repush the parameters before checking the actual function. - MOJOSHADER_astFunctionParameters *param; - for (param = ast->funcunit.declaration->params; param; param = param->next) - push_variable(ctx, param->identifier, param->datatype); - type_check_ast(ctx, ast->funcunit.definition); - pop_scope(ctx); - ctx->is_func_scope = 0; - assert(ctx->loop_count == 0); - assert(ctx->switch_count == 0); - } // else - - type_check_ast(ctx, ast->funcunit.next); - return NULL; - - case MOJOSHADER_AST_COMPUNIT_TYPEDEF: - type_check_ast(ctx, ast->typedefunit.type_info); - type_check_ast(ctx, ast->typedefunit.next); - return NULL; - - case MOJOSHADER_AST_COMPUNIT_STRUCT: - type_check_ast(ctx, ast->structunit.struct_info); - type_check_ast(ctx, ast->structunit.next); - return NULL; - - case MOJOSHADER_AST_COMPUNIT_VARIABLE: - type_check_ast(ctx, ast->varunit.declaration); - type_check_ast(ctx, ast->varunit.next); - return NULL; - - case MOJOSHADER_AST_SCALAR_OR_ARRAY: - assert(0 && "Should be done by other AST nodes."); - return NULL; - - case MOJOSHADER_AST_TYPEDEF: - { - MOJOSHADER_astScalarOrArray *soa = ast->typdef.details; - datatype = get_usertype(ctx, soa->identifier); - if (datatype != NULL) - { - fail(ctx, "typedef already defined"); - ast->typdef.datatype = datatype; - return datatype; - } // if - - datatype = build_datatype(ctx, ast->typdef.isconst, - ast->typdef.datatype, soa); - if (datatype == NULL) - return NULL; // out of memory? - - push_usertype(ctx, soa->identifier, datatype); - ast->typdef.datatype = datatype; - return ast->typdef.datatype; - } // case - - case MOJOSHADER_AST_FUNCTION_PARAMS: - assert(0 && "Should be done by MOJOSHADER_AST_FUNCTION_SIGNATURE"); - - case MOJOSHADER_AST_FUNCTION_SIGNATURE: - { - MOJOSHADER_astFunctionParameters *param; - const MOJOSHADER_astDataType *dtparams[64]; - - int i = 0; - for (param = ast->funcsig.params; param; param = param->next) - { - assert(i <= STATICARRAYLEN(dtparams)); // laziness. - sanitize_datatype(ctx, param->datatype); - if (param->initializer != NULL) - { - datatype2 = type_check_ast(ctx, param->initializer); - add_type_coercion(ctx, NULL, param->datatype, - ¶m->initializer, datatype2); - } // if - dtparams[i] = param->datatype; - i++; - } // for - - ast->funcsig.datatype = build_function_datatype(ctx, - ast->funcsig.datatype, - i, dtparams, 0); - return ast->funcsig.datatype; - } // case - - case MOJOSHADER_AST_STRUCT_DECLARATION: - { - // !!! FIXME: We don't handle struct predeclaration at all right now - // !!! FIXME: (neither does the grammar)...not only does that mean - // !!! FIXME: you need to know the struct definition up front, but - // !!! FIXME: you can't do "struct XXX *next;" for a self-referencing - // !!! FIXME: linked list struct thing. This probably isn't a big - // !!! FIXME: deal, as there aren't (CURRENTLY!) pointers in HLSL, - // !!! FIXME: but you never know. - - const MOJOSHADER_astStructMembers *mbrs; - - // !!! FIXME: count this during parsing? - int count = 0; - mbrs = ast->structdecl.members; - while (mbrs != NULL) - { - count++; - mbrs = mbrs->next; - } // while - - // !!! FIXME: this is hacky. - MOJOSHADER_astDataTypeStructMember *dtmbrs; - void *ptr = Malloc(ctx, sizeof (*dtmbrs) * count); - if (ptr == NULL) - return NULL; - if (!buffer_append(ctx->garbage, &ptr, sizeof (ptr))) - { - Free(ctx, ptr); - return NULL; - } // if - dtmbrs = (MOJOSHADER_astDataTypeStructMember *) ptr; - - ptr = Malloc(ctx, sizeof (MOJOSHADER_astDataType)); - if (ptr == NULL) - return NULL; - if (!buffer_append(ctx->garbage, &ptr, sizeof (ptr))) - { - Free(ctx, ptr); - return NULL; - } // if - MOJOSHADER_astDataType *dt = (MOJOSHADER_astDataType *) ptr; - - mbrs = ast->structdecl.members; - int i; - for (i = 0; i < count; i++) - { - // !!! FIXME: current grammar forbids const keyword on struct members! - dtmbrs[i].datatype = build_datatype(ctx, 0, mbrs->datatype, mbrs->details); - dtmbrs[i].identifier = mbrs->details->identifier; // cached! - mbrs = mbrs->next; - } // for - - dt->structure.type = MOJOSHADER_AST_DATATYPE_STRUCT; - dt->structure.members = dtmbrs; - dt->structure.member_count = count; - ast->structdecl.datatype = dt; - - // !!! FIXME: this shouldn't push for anonymous structs: "struct { int x; } myvar;" - // !!! FIXME: but right now, the grammar is wrong and requires a name for the struct. - push_usertype(ctx, ast->structdecl.name, ast->structdecl.datatype); - return ast->structdecl.datatype; - } // case - - case MOJOSHADER_AST_STRUCT_MEMBER: - assert(0 && "Should be done by MOJOSHADER_AST_STRUCT_DECLARATION."); - return NULL; - - case MOJOSHADER_AST_VARIABLE_DECLARATION: - { - MOJOSHADER_astVariableDeclaration *decl = &ast->vardecl; - - // this is true now, but we'll fill in ->datatype no matter what. - assert((decl->datatype && !decl->anonymous_datatype) || - (!decl->datatype && decl->anonymous_datatype)); - - // An anonymous struct? That AST node does the heavy lifting. - if (decl->anonymous_datatype != NULL) - datatype = type_check_ast(ctx, decl->anonymous_datatype); - else - { - datatype = build_datatype(ctx, (decl->attributes & MOJOSHADER_AST_VARATTR_CONST) != 0, - decl->datatype, decl->details); - } // else - - while (decl != NULL) - { - decl->datatype = datatype; - push_variable(ctx, decl->details->identifier, datatype); - if (decl->initializer != NULL) - { - datatype2 = type_check_ast(ctx, decl->initializer); - add_type_coercion(ctx, NULL, datatype, &decl->initializer, datatype2); - } // if - - type_check_ast(ctx, decl->annotations); - type_check_ast(ctx, decl->lowlevel); - decl = decl->next; - } // while - - return datatype; - } // case - - case MOJOSHADER_AST_ANNOTATION: - { - MOJOSHADER_astAnnotations *anno = &ast->annotations; - while (anno) - { - type_check_ast(ctx, anno->initializer); - anno = anno->next; - } // while - return NULL; - } // case - - case MOJOSHADER_AST_PACK_OFFSET: - case MOJOSHADER_AST_VARIABLE_LOWLEVEL: - return NULL; // no-op (for now, at least). - - default: - assert(0 && "unexpected type"); - } // switch - - return NULL; -} // type_check_ast - - -static inline void semantic_analysis(Context *ctx) -{ - type_check_ast(ctx, ctx->ast); -} // semantic_analysis - -// !!! FIXME: isn't this a cut-and-paste of somewhere else? -static inline int64 strtoi64(const char *str, unsigned int len) -{ - int64 retval = 0; - int64 mult = 1; - int i = 0; - - while ((len) && (*str == ' ')) - { - str++; - len--; - } // while - - if ((len) && (*str == '-')) - { - mult = -1; - str++; - len--; - } // if - - while (i < len) - { - const char ch = str[i]; - if ((ch < '0') || (ch > '9')) - break; - i++; - } // while - - while (--i >= 0) - { - const char ch = str[i]; - retval += ((int64) (ch - '0')) * mult; - mult *= 10; - } // while - - return retval; -} // strtoi64 - -// !!! FIXME: isn't this a cut-and-paste of somewhere else? -static inline double strtodouble(const char *_str, unsigned int len) -{ - // !!! FIXME: laziness prevails. - char *str = (char *) alloca(len+1); - memcpy(str, _str, len); - str[len] = '\0'; - return strtod(str, NULL); -} // strtodouble - -#if 0 -// This does not check correctness (POSITIONT993842 passes, etc). -static int is_semantic(const Context *ctx, const char *token, - const unsigned int tokenlen) -{ - static const char *names[] = { - "BINORMAL", "BLENDINDICES", "BLENDWEIGHT", - "COLOR", "NORMAL", "POSITION", "POSITIONT", "PSIZE", "TANGENT", - "TEXCOORD", "FOG", "TESSFACTOR", "TEXCOORD", "VFACE", "VPOS", - "DEPTH", NULL - }; - - // !!! FIXME: DX10 has SV_* ("System Value Semantics"). - const char **i; - for (i = names; *i; i++) - { - const char *name = *i; - const size_t namelen = strlen(name); - if (tokenlen < namelen) - continue; - else if (memcmp(token, name, namelen) != 0) - continue; - - for (name += namelen; *name; name++) - { - if ((*name < '0') || (*name > '9')) - break; - } // for - - if (*name == '\0') - return 1; - } // for - - return 0; -} // is_semantic -#endif - -static int convert_to_lemon_token(Context *ctx, const char *token, - unsigned int tokenlen, const Token tokenval) -{ - switch (tokenval) - { - case ((Token) ','): return TOKEN_HLSL_COMMA; - case ((Token) '='): return TOKEN_HLSL_ASSIGN; - case ((Token) TOKEN_ADDASSIGN): return TOKEN_HLSL_ADDASSIGN; - case ((Token) TOKEN_SUBASSIGN): return TOKEN_HLSL_SUBASSIGN; - case ((Token) TOKEN_MULTASSIGN): return TOKEN_HLSL_MULASSIGN; - case ((Token) TOKEN_DIVASSIGN): return TOKEN_HLSL_DIVASSIGN; - case ((Token) TOKEN_MODASSIGN): return TOKEN_HLSL_MODASSIGN; - case ((Token) TOKEN_LSHIFTASSIGN): return TOKEN_HLSL_LSHIFTASSIGN; - case ((Token) TOKEN_RSHIFTASSIGN): return TOKEN_HLSL_RSHIFTASSIGN; - case ((Token) TOKEN_ANDASSIGN): return TOKEN_HLSL_ANDASSIGN; - case ((Token) TOKEN_ORASSIGN): return TOKEN_HLSL_ORASSIGN; - case ((Token) TOKEN_XORASSIGN): return TOKEN_HLSL_XORASSIGN; - case ((Token) '?'): return TOKEN_HLSL_QUESTION; - case ((Token) TOKEN_OROR): return TOKEN_HLSL_OROR; - case ((Token) TOKEN_ANDAND): return TOKEN_HLSL_ANDAND; - case ((Token) '|'): return TOKEN_HLSL_OR; - case ((Token) '^'): return TOKEN_HLSL_XOR; - case ((Token) '&'): return TOKEN_HLSL_AND; - case ((Token) TOKEN_EQL): return TOKEN_HLSL_EQL; - case ((Token) TOKEN_NEQ): return TOKEN_HLSL_NEQ; - case ((Token) '<'): return TOKEN_HLSL_LT; - case ((Token) TOKEN_LEQ): return TOKEN_HLSL_LEQ; - case ((Token) '>'): return TOKEN_HLSL_GT; - case ((Token) TOKEN_GEQ): return TOKEN_HLSL_GEQ; - case ((Token) TOKEN_LSHIFT): return TOKEN_HLSL_LSHIFT; - case ((Token) TOKEN_RSHIFT): return TOKEN_HLSL_RSHIFT; - case ((Token) '+'): return TOKEN_HLSL_PLUS; - case ((Token) '-'): return TOKEN_HLSL_MINUS; - case ((Token) '*'): return TOKEN_HLSL_STAR; - case ((Token) '/'): return TOKEN_HLSL_SLASH; - case ((Token) '%'): return TOKEN_HLSL_PERCENT; - case ((Token) '!'): return TOKEN_HLSL_EXCLAMATION; - case ((Token) '~'): return TOKEN_HLSL_COMPLEMENT; - case ((Token) TOKEN_DECREMENT): return TOKEN_HLSL_MINUSMINUS; - case ((Token) TOKEN_INCREMENT): return TOKEN_HLSL_PLUSPLUS; - case ((Token) '.'): return TOKEN_HLSL_DOT; - case ((Token) '['): return TOKEN_HLSL_LBRACKET; - case ((Token) ']'): return TOKEN_HLSL_RBRACKET; - case ((Token) '('): return TOKEN_HLSL_LPAREN; - case ((Token) ')'): return TOKEN_HLSL_RPAREN; - case ((Token) TOKEN_INT_LITERAL): return TOKEN_HLSL_INT_CONSTANT; - case ((Token) TOKEN_FLOAT_LITERAL): return TOKEN_HLSL_FLOAT_CONSTANT; - case ((Token) TOKEN_STRING_LITERAL): return TOKEN_HLSL_STRING_LITERAL; - case ((Token) ':'): return TOKEN_HLSL_COLON; - case ((Token) ';'): return TOKEN_HLSL_SEMICOLON; - case ((Token) '{'): return TOKEN_HLSL_LBRACE; - case ((Token) '}'): return TOKEN_HLSL_RBRACE; - //case ((Token) TOKEN_PP_PRAGMA): return TOKEN_HLSL_PRAGMA; - //case ((Token) '\n'): return TOKEN_HLSL_NEWLINE; - - case ((Token) TOKEN_IDENTIFIER): - #define tokencmp(t) ((tokenlen == strlen(t)) && (memcmp(token, t, tokenlen) == 0)) - //case ((Token) ''): return TOKEN_HLSL_TYPECAST - //if (tokencmp("")) return TOKEN_HLSL_TYPE_NAME - //if (tokencmp("...")) return TOKEN_HLSL_ELIPSIS - if (tokencmp("else")) return TOKEN_HLSL_ELSE; - if (tokencmp("inline")) return TOKEN_HLSL_INLINE; - if (tokencmp("void")) return TOKEN_HLSL_VOID; - if (tokencmp("in")) return TOKEN_HLSL_IN; - if (tokencmp("inout")) return TOKEN_HLSL_INOUT; - if (tokencmp("out")) return TOKEN_HLSL_OUT; - if (tokencmp("uniform")) return TOKEN_HLSL_UNIFORM; - if (tokencmp("linear")) return TOKEN_HLSL_LINEAR; - if (tokencmp("centroid")) return TOKEN_HLSL_CENTROID; - if (tokencmp("nointerpolation")) return TOKEN_HLSL_NOINTERPOLATION; - if (tokencmp("noperspective")) return TOKEN_HLSL_NOPERSPECTIVE; - if (tokencmp("sample")) return TOKEN_HLSL_SAMPLE; - if (tokencmp("struct")) return TOKEN_HLSL_STRUCT; - if (tokencmp("typedef")) return TOKEN_HLSL_TYPEDEF; - if (tokencmp("const")) return TOKEN_HLSL_CONST; - if (tokencmp("packoffset")) return TOKEN_HLSL_PACKOFFSET; - if (tokencmp("register")) return TOKEN_HLSL_REGISTER; - if (tokencmp("extern")) return TOKEN_HLSL_EXTERN; - if (tokencmp("shared")) return TOKEN_HLSL_SHARED; - if (tokencmp("static")) return TOKEN_HLSL_STATIC; - if (tokencmp("volatile")) return TOKEN_HLSL_VOLATILE; - if (tokencmp("row_major")) return TOKEN_HLSL_ROWMAJOR; - if (tokencmp("column_major")) return TOKEN_HLSL_COLUMNMAJOR; - if (tokencmp("bool")) return TOKEN_HLSL_BOOL; - if (tokencmp("int")) return TOKEN_HLSL_INT; - if (tokencmp("uint")) return TOKEN_HLSL_UINT; - if (tokencmp("half")) return TOKEN_HLSL_HALF; - if (tokencmp("float")) return TOKEN_HLSL_FLOAT; - if (tokencmp("double")) return TOKEN_HLSL_DOUBLE; - if (tokencmp("string")) return TOKEN_HLSL_STRING; - if (tokencmp("snorm")) return TOKEN_HLSL_SNORM; - if (tokencmp("unorm")) return TOKEN_HLSL_UNORM; - if (tokencmp("buffer")) return TOKEN_HLSL_BUFFER; - if (tokencmp("vector")) return TOKEN_HLSL_VECTOR; - if (tokencmp("matrix")) return TOKEN_HLSL_MATRIX; - if (tokencmp("break")) return TOKEN_HLSL_BREAK; - if (tokencmp("continue")) return TOKEN_HLSL_CONTINUE; - if (tokencmp("discard")) return TOKEN_HLSL_DISCARD; - if (tokencmp("return")) return TOKEN_HLSL_RETURN; - if (tokencmp("while")) return TOKEN_HLSL_WHILE; - if (tokencmp("for")) return TOKEN_HLSL_FOR; - if (tokencmp("unroll")) return TOKEN_HLSL_UNROLL; - if (tokencmp("loop")) return TOKEN_HLSL_LOOP; - if (tokencmp("do")) return TOKEN_HLSL_DO; - if (tokencmp("if")) return TOKEN_HLSL_IF; - if (tokencmp("branch")) return TOKEN_HLSL_BRANCH; - if (tokencmp("flatten")) return TOKEN_HLSL_FLATTEN; - if (tokencmp("switch")) return TOKEN_HLSL_SWITCH; - if (tokencmp("forcecase")) return TOKEN_HLSL_FORCECASE; - if (tokencmp("call")) return TOKEN_HLSL_CALL; - if (tokencmp("case")) return TOKEN_HLSL_CASE; - if (tokencmp("default")) return TOKEN_HLSL_DEFAULT; - if (tokencmp("sampler")) return TOKEN_HLSL_SAMPLER; - if (tokencmp("sampler1D")) return TOKEN_HLSL_SAMPLER1D; - if (tokencmp("sampler2D")) return TOKEN_HLSL_SAMPLER2D; - if (tokencmp("sampler3D")) return TOKEN_HLSL_SAMPLER3D; - if (tokencmp("samplerCUBE")) return TOKEN_HLSL_SAMPLERCUBE; - if (tokencmp("sampler_state")) return TOKEN_HLSL_SAMPLER_STATE; - if (tokencmp("SamplerState")) return TOKEN_HLSL_SAMPLERSTATE; - if (tokencmp("true")) return TOKEN_HLSL_TRUE; - if (tokencmp("false")) return TOKEN_HLSL_FALSE; - if (tokencmp("SamplerComparisonState")) return TOKEN_HLSL_SAMPLERCOMPARISONSTATE; - if (tokencmp("isolate")) return TOKEN_HLSL_ISOLATE; - if (tokencmp("maxInstructionCount")) return TOKEN_HLSL_MAXINSTRUCTIONCOUNT; - if (tokencmp("noExpressionOptimizations")) return TOKEN_HLSL_NOEXPRESSIONOPTIMIZATIONS; - if (tokencmp("unused")) return TOKEN_HLSL_UNUSED; - if (tokencmp("xps")) return TOKEN_HLSL_XPS; - #undef tokencmp - - // get a canonical copy of the string now, as we'll need it. - token = stringcache_len(ctx->strcache, token, tokenlen); - if (get_usertype(ctx, token) != NULL) - return TOKEN_HLSL_USERTYPE; - return TOKEN_HLSL_IDENTIFIER; - - case TOKEN_EOI: return 0; - default: assert(0 && "unexpected token from lexer\n"); return 0; - } // switch - - return 0; -} // convert_to_lemon_token - - -static void delete_ir(Context *ctx, void *_ir); // !!! FIXME: move this code around. - -static void destroy_context(Context *ctx) -{ - if (ctx != NULL) - { - MOJOSHADER_free f = ((ctx->free != NULL) ? ctx->free : MOJOSHADER_internal_free); - void *d = ctx->malloc_data; - size_t i = 0; - - // !!! FIXME: this is kinda hacky. - const size_t count = buffer_size(ctx->garbage) / sizeof (void *); - if (count > 0) - { - void **garbage = (void **) buffer_flatten(ctx->garbage); - if (garbage != NULL) - { - for (i = 0; i < count; i++) - f(garbage[i], d); - f(garbage, d); - } // if - } // if - buffer_destroy(ctx->garbage); - - delete_compilation_unit(ctx, (MOJOSHADER_astCompilationUnit*)ctx->ast); - destroy_symbolmap(ctx, &ctx->usertypes); - destroy_symbolmap(ctx, &ctx->variables); - stringcache_destroy(ctx->strcache); - errorlist_destroy(ctx->errors); - errorlist_destroy(ctx->warnings); - - if (ctx->ir != NULL) - { - for (i = 0; i <= ctx->user_func_index; i++) - delete_ir(ctx, ctx->ir[i]); - f(ctx->ir, d); - } // if - - // !!! FIXME: more to clean up here, now. - - f(ctx, d); - } // if -} // destroy_context - -static Context *build_context(MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - if (!m) m = MOJOSHADER_internal_malloc; - if (!f) f = MOJOSHADER_internal_free; - - Context *ctx = (Context *) m(sizeof (Context), d); - if (ctx == NULL) - return NULL; - - memset(ctx, '\0', sizeof (Context)); - ctx->malloc = m; - ctx->free = f; - ctx->malloc_data = d; - //ctx->parse_phase = MOJOSHADER_PARSEPHASE_NOTSTARTED; - create_symbolmap(ctx, &ctx->usertypes); // !!! FIXME: check for failure. - create_symbolmap(ctx, &ctx->variables); // !!! FIXME: check for failure. - ctx->strcache = stringcache_create(MallocBridge, FreeBridge, ctx); // !!! FIXME: check for failure. - ctx->errors = errorlist_create(MallocBridge, FreeBridge, ctx); // !!! FIXME: check for failure. - ctx->warnings = errorlist_create(MallocBridge, FreeBridge, ctx); // !!! FIXME: check for failure. - - // !!! FIXME: this feels hacky. - ctx->garbage = buffer_create(256*sizeof(void*),MallocBridge,FreeBridge,ctx); // !!! FIXME: check for failure. - - ctx->dt_none.type = MOJOSHADER_AST_DATATYPE_NONE; - ctx->dt_bool.type = MOJOSHADER_AST_DATATYPE_BOOL; - ctx->dt_int.type = MOJOSHADER_AST_DATATYPE_INT; - ctx->dt_uint.type = MOJOSHADER_AST_DATATYPE_UINT; - ctx->dt_float.type = MOJOSHADER_AST_DATATYPE_FLOAT; - ctx->dt_float_snorm.type = MOJOSHADER_AST_DATATYPE_FLOAT_SNORM; - ctx->dt_float_unorm.type = MOJOSHADER_AST_DATATYPE_FLOAT_UNORM; - ctx->dt_half.type = MOJOSHADER_AST_DATATYPE_HALF; - ctx->dt_double.type = MOJOSHADER_AST_DATATYPE_DOUBLE; - ctx->dt_string.type = MOJOSHADER_AST_DATATYPE_STRING; - ctx->dt_sampler1d.type = MOJOSHADER_AST_DATATYPE_SAMPLER_1D; - ctx->dt_sampler2d.type = MOJOSHADER_AST_DATATYPE_SAMPLER_2D; - ctx->dt_sampler3d.type = MOJOSHADER_AST_DATATYPE_SAMPLER_3D; - ctx->dt_samplercube.type = MOJOSHADER_AST_DATATYPE_SAMPLER_CUBE; - ctx->dt_samplerstate.type = MOJOSHADER_AST_DATATYPE_SAMPLER_STATE; - ctx->dt_samplercompstate.type = MOJOSHADER_AST_DATATYPE_SAMPLER_COMPARISON_STATE; - - #define INIT_DT_BUFFER(t) \ - ctx->dt_buf_##t.type = MOJOSHADER_AST_DATATYPE_BUFFER; \ - ctx->dt_buf_##t.buffer.base = &ctx->dt_##t; - INIT_DT_BUFFER(bool); - INIT_DT_BUFFER(int); - INIT_DT_BUFFER(uint); - INIT_DT_BUFFER(half); - INIT_DT_BUFFER(float); - INIT_DT_BUFFER(double); - INIT_DT_BUFFER(float_snorm); - INIT_DT_BUFFER(float_unorm); - #undef INIT_DT_BUFFER - - return ctx; -} // build_context - - -// This macro salsa is kinda nasty, but it's the smallest, least error-prone -// way I can find to do this well in C. :/ - -#define ADD_INTRINSIC(fn, ret, params) do { \ - push_function(ctx, fn, \ - build_function_datatype(ctx, ret, STATICARRAYLEN(params), params, 1), \ - 0); \ -} while (0) - -#define ADD_INTRINSIC_VECTOR(typestr, code) do { \ - const MOJOSHADER_astDataType *dt; \ - dt = get_usertype(ctx, typestr "1"); code; \ - dt = get_usertype(ctx, typestr "2"); code; \ - dt = get_usertype(ctx, typestr "3"); code; \ - dt = get_usertype(ctx, typestr "4"); code; \ -} while (0) - -#define ADD_INTRINSIC_VECTOR_FLOAT(code) { \ - ADD_INTRINSIC_VECTOR("float", code); \ - ADD_INTRINSIC_VECTOR("half", code); \ - ADD_INTRINSIC_VECTOR("double", code); \ -} -#define ADD_INTRINSIC_VECTOR_INT(code) { \ - ADD_INTRINSIC_VECTOR("int", code); \ - ADD_INTRINSIC_VECTOR("uint", code); \ -} -#define ADD_INTRINSIC_VECTOR_BOOL(code) { \ - ADD_INTRINSIC_VECTOR("bool", code); \ -} - -#define ADD_INTRINSIC_MATRIX(typestr, code) do { \ - const MOJOSHADER_astDataType *dt; \ - dt = get_usertype(ctx, typestr "1x1"); code; \ - dt = get_usertype(ctx, typestr "1x2"); code; \ - dt = get_usertype(ctx, typestr "1x3"); code; \ - dt = get_usertype(ctx, typestr "1x4"); code; \ - dt = get_usertype(ctx, typestr "2x1"); code; \ - dt = get_usertype(ctx, typestr "2x2"); code; \ - dt = get_usertype(ctx, typestr "2x3"); code; \ - dt = get_usertype(ctx, typestr "2x4"); code; \ - dt = get_usertype(ctx, typestr "3x1"); code; \ - dt = get_usertype(ctx, typestr "3x2"); code; \ - dt = get_usertype(ctx, typestr "3x3"); code; \ - dt = get_usertype(ctx, typestr "3x4"); code; \ - dt = get_usertype(ctx, typestr "4x1"); code; \ - dt = get_usertype(ctx, typestr "4x2"); code; \ - dt = get_usertype(ctx, typestr "4x3"); code; \ - dt = get_usertype(ctx, typestr "4x4"); code; \ -} while (0) - -#define ADD_INTRINSIC_MATRIX_FLOAT(code) { \ - ADD_INTRINSIC_MATRIX("float", code); \ - ADD_INTRINSIC_MATRIX("half", code); \ - ADD_INTRINSIC_MATRIX("double", code); \ -} -#define ADD_INTRINSIC_MATRIX_INT(code) { \ - ADD_INTRINSIC_MATRIX("int", code); \ - ADD_INTRINSIC_MATRIX("uint", code); \ -} -#define ADD_INTRINSIC_MATRIX_BOOL(code) { \ - ADD_INTRINSIC_MATRIX("bool", code); \ -} - -#define ADD_INTRINSIC_ANY(scalar, typestr, code) do { \ - { const MOJOSHADER_astDataType *dt = scalar; code; } \ - ADD_INTRINSIC_VECTOR(typestr, code); \ - ADD_INTRINSIC_MATRIX(typestr, code); \ -} while (0) - -#define ADD_INTRINSIC_ANY_FLOAT(code) do { \ - ADD_INTRINSIC_ANY(&ctx->dt_double, "double", code); \ - ADD_INTRINSIC_ANY(&ctx->dt_half, "half", code); \ - ADD_INTRINSIC_ANY(&ctx->dt_float, "float", code); \ -} while (0) -#define ADD_INTRINSIC_ANY_INT(code) do { \ - ADD_INTRINSIC_ANY(&ctx->dt_uint, "uint", code); \ - ADD_INTRINSIC_ANY(&ctx->dt_int, "int", code); \ -} while (0) - -#define ADD_INTRINSIC_ANY_BOOL(code) ADD_INTRINSIC_ANY(&ctx->dt_bool, "bool", code) - -static void add_intrinsic1(Context *ctx, const char *fn, - const MOJOSHADER_astDataType *ret, - const MOJOSHADER_astDataType *dt1) -{ - const MOJOSHADER_astDataType *params[] = { dt1 }; - ADD_INTRINSIC(fn, ret, params); -} // add_intrinsic1 - -static void add_intrinsic2(Context *ctx, const char *fn, - const MOJOSHADER_astDataType *ret, - const MOJOSHADER_astDataType *dt1, - const MOJOSHADER_astDataType *dt2) -{ - const MOJOSHADER_astDataType *params[] = { dt1, dt2 }; - ADD_INTRINSIC(fn, ret, params); -} // add_intrinsic2 - -static void add_intrinsic3(Context *ctx, const char *fn, - const MOJOSHADER_astDataType *ret, - const MOJOSHADER_astDataType *dt1, - const MOJOSHADER_astDataType *dt2, - const MOJOSHADER_astDataType *dt3) -{ - const MOJOSHADER_astDataType *params[] = { dt1, dt2, dt3 }; - ADD_INTRINSIC(fn, ret, params); -} // add_intrinsic3 - -static void add_intrinsic4(Context *ctx, const char *fn, - const MOJOSHADER_astDataType *ret, - const MOJOSHADER_astDataType *dt1, - const MOJOSHADER_astDataType *dt2, - const MOJOSHADER_astDataType *dt3, - const MOJOSHADER_astDataType *dt4) -{ - const MOJOSHADER_astDataType *params[] = { dt1, dt2, dt3, dt4 }; - ADD_INTRINSIC(fn, ret, params); -} // add_intrinsic4 - -// PLEASE NOTE that add_intrinsic*() is called AFTER the various -// ADD_INTRINSIC_* macros, even though these look like functions that -// should be called first. They might be called multiple times by the macro. -// The variable "dt" is defined by the macro for use by your code. -static void add_intrinsic_SAME1_ANYf(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_FLOAT(add_intrinsic1(ctx, fn, dt, dt)); -} // add_intrinsic_SAME1_ANYf - -static void add_intrinsic_SAME1_ANYfi(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_INT(add_intrinsic1(ctx, fn, dt, dt)); - add_intrinsic_SAME1_ANYf(ctx, fn); -} // add_intrinsic_SAME1_ANYfi - -static void add_intrinsic_BOOL_ANYf(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_FLOAT(add_intrinsic1(ctx, fn, &ctx->dt_bool, dt)); -} // add_intrinsic_BOOL_ANYf - -static void add_intrinsic_BOOL_ANYfib(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_BOOL(add_intrinsic1(ctx, fn, &ctx->dt_bool, dt)); - ADD_INTRINSIC_ANY_INT(add_intrinsic1(ctx, fn, &ctx->dt_bool, dt)); - add_intrinsic_BOOL_ANYf(ctx, fn); -} // add_intrinsic_BOOL_ANYfib - -static void add_intrinsic_SAME1_ANYf_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_FLOAT(add_intrinsic2(ctx, fn, dt, dt, dt)); -} // add_intrinsic_SAME1_ANYf_SAME1 - -static void add_intrinsic_SAME1_ANYfi_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_INT(add_intrinsic2(ctx, fn, dt, dt, dt)); - add_intrinsic_SAME1_ANYf_SAME1(ctx, fn); -} // add_intrinsic_SAME1_ANYfi_SAME1 - -static void add_intrinsic_SAME1_ANYf_SAME1_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_FLOAT(add_intrinsic3(ctx, fn, dt, dt, dt, dt)); -} // add_intrinsic_SAME1_ANYf_SAME1_SAME1 - -static void add_intrinsic_SAME1_ANYfi_SAME1_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_INT(add_intrinsic3(ctx, fn, dt, dt, dt, dt)); - add_intrinsic_SAME1_ANYf_SAME1_SAME1(ctx, fn); -} // add_intrinsic_SAME1_ANYfi_SAME1_SAME1 - -static void add_intrinsic_SAME1_Mfib(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_MATRIX_BOOL(add_intrinsic1(ctx, fn, dt, dt)); - ADD_INTRINSIC_MATRIX_INT(add_intrinsic1(ctx, fn, dt, dt)); - ADD_INTRINSIC_MATRIX_FLOAT(add_intrinsic1(ctx, fn, dt, dt)); -} // add_intrinsic_SAME1_Mfib - -static void add_intrinsic_SAME1_Vf(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic1(ctx, fn, dt, dt)); -} // add_intrinsic_SAME1_Vf - -static void add_intrinsic_SAME1_Vf_SAME1_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic3(ctx, fn, dt, dt, dt, dt)); -} // add_intrinsic_SAME1_Vf_SAME1_SAME1 - -static void add_intrinsic_SAME1_Vf_SAME1_f(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic3(ctx, fn, dt, dt, dt, dt->user.details->vector.base)); -} // add_intrinsic_SAME1_Vf_SAME1_f - -static void add_intrinsic_VOID_ANYf(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_FLOAT(add_intrinsic1(ctx, fn, NULL, dt)); -} // add_intrinsic_VOID_ANYf - -static void add_intrinsic_VOID_ANYf_SAME1_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_ANY_FLOAT(add_intrinsic3(ctx, fn, NULL, dt, dt, dt)); -} // add_intrinsic_VOID_ANYf_SAME1_SAME1 - -static void add_intrinsic_f_SQUAREMATRIXf(Context *ctx, const char *fn) -{ - add_intrinsic1(ctx, fn, &ctx->dt_float, get_usertype(ctx, "float1x1")); - add_intrinsic1(ctx, fn, &ctx->dt_float, get_usertype(ctx, "float2x2")); - add_intrinsic1(ctx, fn, &ctx->dt_float, get_usertype(ctx, "float3x3")); - add_intrinsic1(ctx, fn, &ctx->dt_float, get_usertype(ctx, "float4x4")); -} // add_intrinsic_f_SQUAREMATRIXf - -static void add_intrinsic_f_Vf(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic1(ctx, fn, dt->user.details->vector.base, dt)); -} // add_intrinsic_f_Vf - -static void add_intrinsic_fi_Vfi_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_VECTOR_INT(add_intrinsic2(ctx, fn, dt->user.details->vector.base, dt, dt)); - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic2(ctx, fn, dt->user.details->vector.base, dt, dt)); -} // add_intrinsic_fi_Vfi_SAME1 - -static void add_intrinsic_f_Vf_SAME1(Context *ctx, const char *fn) -{ - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic2(ctx, fn, dt->user.details->vector.base, dt, dt)); -} // add_intrinsic_f_Vf_SAME1 - -static void add_intrinsic_3f_3f_3f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *dt = get_usertype(ctx, "float3"); - add_intrinsic2(ctx, fn, dt, dt, dt); -} // add_intrinsic_3f_3f_3f - -static void add_intrinsic_4f_f_f_f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f = &ctx->dt_float; - add_intrinsic3(ctx, fn, f4, f, f, f); -} // add_intrinsic_4f_f_f_f - -static void add_intrinsic_4f_s1_4f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *dt = get_usertype(ctx, "float4"); - add_intrinsic2(ctx, fn, dt, &ctx->dt_sampler1d, dt); -} // add_intrinsic_4f_s1_4f - -static void add_intrinsic_4f_s1_f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *dt = get_usertype(ctx, "float4"); - add_intrinsic2(ctx, fn, dt, &ctx->dt_sampler1d, &ctx->dt_float); -} // add_intrinsic_4f_s1_f - -static void add_intrinsic_4f_s1_f_f_f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *dt = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f = &ctx->dt_float; - add_intrinsic4(ctx, fn, dt, &ctx->dt_sampler1d, f, f, f); -} // add_intrinsic_4f_s1_f_f_f - -static void add_intrinsic_4f_s2_2f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f2 = get_usertype(ctx, "float2"); - add_intrinsic2(ctx, fn, f4, &ctx->dt_sampler2d, f2); -} // add_intrinsic_4f_s2_2f - -static void add_intrinsic_4f_s2_2f_2f_2f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f2 = get_usertype(ctx, "float2"); - add_intrinsic4(ctx, fn, f4, &ctx->dt_sampler2d, f2, f2, f2); -} // add_intrinsic_4f_s2_2f_2f_2f - -static void add_intrinsic_4f_s2_4f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - add_intrinsic2(ctx, fn, f4, &ctx->dt_sampler2d, f4); -} // add_intrinsic_4f_s2_4f - -static void add_intrinsic_4f_s3_3f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f3 = get_usertype(ctx, "float3"); - add_intrinsic2(ctx, fn, f4, &ctx->dt_sampler3d, f3); -} // add_intrinsic_4f_s3_3f - -static void add_intrinsic_4f_s3_3f_3f_3f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f3 = get_usertype(ctx, "float3"); - add_intrinsic4(ctx, fn, f4, &ctx->dt_sampler3d, f3, f3, f3); -} // add_intrinsic_4f_s3_3f_3f_3f - -static void add_intrinsic_4f_s3_4f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - add_intrinsic2(ctx, fn, f4, &ctx->dt_sampler3d, f4); -} // add_intrinsic_4f_s3_4f - -static void add_intrinsic_4f_sc_3f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f3 = get_usertype(ctx, "float3"); - add_intrinsic2(ctx, fn, f4, &ctx->dt_samplercube, f3); -} // add_intrinsic_4f_sc_3f - -static void add_intrinsic_4f_sc_3f_3f_3f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *f3 = get_usertype(ctx, "float3"); - add_intrinsic4(ctx, fn, f4, &ctx->dt_samplercube, f3, f3, f3); -} // add_intrinsic_4f_sc_3f_3f_3f - -static void add_intrinsic_4f_sc_4f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - add_intrinsic2(ctx, fn, f4, &ctx->dt_samplercube, f4); -} // add_intrinsic_4f_sc_4f - -static void add_intrinsic_4i_4f(Context *ctx, const char *fn) -{ - const MOJOSHADER_astDataType *i4 = get_usertype(ctx, "int4"); - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - add_intrinsic1(ctx, fn, i4, f4); -} // add_intrinsic_4i_4f - -static void add_intrinsic_mul(Context *ctx, const char *fn) -{ - // mul() is nasty, since there's a bunch of overloads that aren't just - // related to vector size. - // !!! FIXME: needs half, double, uint... - const MOJOSHADER_astDataType *dtf = &ctx->dt_float; - const MOJOSHADER_astDataType *dti = &ctx->dt_int; - const MOJOSHADER_astDataType *f1 = get_usertype(ctx, "float1"); - const MOJOSHADER_astDataType *f2 = get_usertype(ctx, "float2"); - const MOJOSHADER_astDataType *f3 = get_usertype(ctx, "float3"); - const MOJOSHADER_astDataType *f4 = get_usertype(ctx, "float4"); - const MOJOSHADER_astDataType *i1 = get_usertype(ctx, "int1"); - const MOJOSHADER_astDataType *i2 = get_usertype(ctx, "int2"); - const MOJOSHADER_astDataType *i3 = get_usertype(ctx, "int3"); - const MOJOSHADER_astDataType *i4 = get_usertype(ctx, "int4"); - const MOJOSHADER_astDataType *f1x1 = get_usertype(ctx, "float1x1"); - const MOJOSHADER_astDataType *f1x2 = get_usertype(ctx, "float1x2"); - const MOJOSHADER_astDataType *f1x3 = get_usertype(ctx, "float1x3"); - const MOJOSHADER_astDataType *f1x4 = get_usertype(ctx, "float1x4"); - const MOJOSHADER_astDataType *f2x1 = get_usertype(ctx, "float2x1"); - const MOJOSHADER_astDataType *f2x2 = get_usertype(ctx, "float2x2"); - const MOJOSHADER_astDataType *f2x3 = get_usertype(ctx, "float2x3"); - const MOJOSHADER_astDataType *f2x4 = get_usertype(ctx, "float2x4"); - const MOJOSHADER_astDataType *f3x1 = get_usertype(ctx, "float3x1"); - const MOJOSHADER_astDataType *f3x2 = get_usertype(ctx, "float3x2"); - const MOJOSHADER_astDataType *f3x3 = get_usertype(ctx, "float3x3"); - const MOJOSHADER_astDataType *f3x4 = get_usertype(ctx, "float3x4"); - const MOJOSHADER_astDataType *f4x1 = get_usertype(ctx, "float4x1"); - const MOJOSHADER_astDataType *f4x2 = get_usertype(ctx, "float4x2"); - const MOJOSHADER_astDataType *f4x3 = get_usertype(ctx, "float4x3"); - const MOJOSHADER_astDataType *f4x4 = get_usertype(ctx, "float4x4"); - const MOJOSHADER_astDataType *i1x1 = get_usertype(ctx, "int1x1"); - const MOJOSHADER_astDataType *i1x2 = get_usertype(ctx, "int1x2"); - const MOJOSHADER_astDataType *i1x3 = get_usertype(ctx, "int1x3"); - const MOJOSHADER_astDataType *i1x4 = get_usertype(ctx, "int1x4"); - const MOJOSHADER_astDataType *i2x1 = get_usertype(ctx, "int2x1"); - const MOJOSHADER_astDataType *i2x2 = get_usertype(ctx, "int2x2"); - const MOJOSHADER_astDataType *i2x3 = get_usertype(ctx, "int2x3"); - const MOJOSHADER_astDataType *i2x4 = get_usertype(ctx, "int2x4"); - const MOJOSHADER_astDataType *i3x1 = get_usertype(ctx, "int3x1"); - const MOJOSHADER_astDataType *i3x2 = get_usertype(ctx, "int3x2"); - const MOJOSHADER_astDataType *i3x3 = get_usertype(ctx, "int3x3"); - const MOJOSHADER_astDataType *i3x4 = get_usertype(ctx, "int3x4"); - const MOJOSHADER_astDataType *i4x1 = get_usertype(ctx, "int4x1"); - const MOJOSHADER_astDataType *i4x2 = get_usertype(ctx, "int4x2"); - const MOJOSHADER_astDataType *i4x3 = get_usertype(ctx, "int4x3"); - const MOJOSHADER_astDataType *i4x4 = get_usertype(ctx, "int4x4"); - - // scalar * scalar - add_intrinsic2(ctx, fn, dti, dti, dti); - add_intrinsic2(ctx, fn, dtf, dtf, dtf); - - // scalar * vector - ADD_INTRINSIC_VECTOR_INT(add_intrinsic2(ctx, fn, dt, dti, dt)); - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic2(ctx, fn, dt, dtf, dt)); - - // scalar * matrix - ADD_INTRINSIC_MATRIX_INT(add_intrinsic2(ctx, fn, dt, dti, dt)); - ADD_INTRINSIC_MATRIX_FLOAT(add_intrinsic2(ctx, fn, dt, dtf, dt)); - - // vector * scalar - ADD_INTRINSIC_VECTOR_INT(add_intrinsic2(ctx, fn, dt, dt, dti)); - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic2(ctx, fn, dt, dt, dtf)); - - // vector * vector - ADD_INTRINSIC_VECTOR_INT(add_intrinsic2(ctx, fn, dti, dt, dt)); - ADD_INTRINSIC_VECTOR_FLOAT(add_intrinsic2(ctx, fn, dtf, dt, dt)); - - // vector * matrix - add_intrinsic2(ctx, fn, i1, i1, i1x1); - add_intrinsic2(ctx, fn, i2, i1, i1x2); - add_intrinsic2(ctx, fn, i3, i1, i1x3); - add_intrinsic2(ctx, fn, i4, i1, i1x4); - add_intrinsic2(ctx, fn, i1, i2, i2x1); - add_intrinsic2(ctx, fn, i2, i2, i2x2); - add_intrinsic2(ctx, fn, i3, i2, i2x3); - add_intrinsic2(ctx, fn, i4, i2, i2x4); - add_intrinsic2(ctx, fn, i1, i3, i3x1); - add_intrinsic2(ctx, fn, i2, i3, i3x2); - add_intrinsic2(ctx, fn, i3, i3, i3x3); - add_intrinsic2(ctx, fn, i4, i3, i3x4); - add_intrinsic2(ctx, fn, i1, i4, i4x1); - add_intrinsic2(ctx, fn, i2, i4, i4x2); - add_intrinsic2(ctx, fn, i3, i4, i4x3); - add_intrinsic2(ctx, fn, i4, i4, i4x4); - add_intrinsic2(ctx, fn, f1, f1, f1x1); - add_intrinsic2(ctx, fn, f2, f1, f1x2); - add_intrinsic2(ctx, fn, f3, f1, f1x3); - add_intrinsic2(ctx, fn, f4, f1, f1x4); - add_intrinsic2(ctx, fn, f1, f2, f2x1); - add_intrinsic2(ctx, fn, f2, f2, f2x2); - add_intrinsic2(ctx, fn, f3, f2, f2x3); - add_intrinsic2(ctx, fn, f4, f2, f2x4); - add_intrinsic2(ctx, fn, f1, f3, f3x1); - add_intrinsic2(ctx, fn, f2, f3, f3x2); - add_intrinsic2(ctx, fn, f3, f3, f3x3); - add_intrinsic2(ctx, fn, f4, f3, f3x4); - add_intrinsic2(ctx, fn, f1, f4, f4x1); - add_intrinsic2(ctx, fn, f2, f4, f4x2); - add_intrinsic2(ctx, fn, f3, f4, f4x3); - add_intrinsic2(ctx, fn, f4, f4, f4x4); - - // matrix * scalar - ADD_INTRINSIC_MATRIX_INT(add_intrinsic2(ctx, fn, dt, dt, dti)); - ADD_INTRINSIC_MATRIX_FLOAT(add_intrinsic2(ctx, fn, dt, dt, dtf)); - - // matrix * vector - add_intrinsic2(ctx, fn, i1, i1x1, i1); - add_intrinsic2(ctx, fn, i1, i1x2, i2); - add_intrinsic2(ctx, fn, i1, i1x3, i3); - add_intrinsic2(ctx, fn, i1, i1x4, i4); - add_intrinsic2(ctx, fn, i2, i2x1, i1); - add_intrinsic2(ctx, fn, i2, i2x2, i2); - add_intrinsic2(ctx, fn, i2, i2x3, i3); - add_intrinsic2(ctx, fn, i2, i2x4, i4); - add_intrinsic2(ctx, fn, i3, i3x1, i1); - add_intrinsic2(ctx, fn, i3, i3x2, i2); - add_intrinsic2(ctx, fn, i3, i3x3, i3); - add_intrinsic2(ctx, fn, i3, i3x4, i4); - add_intrinsic2(ctx, fn, i4, i4x1, i1); - add_intrinsic2(ctx, fn, i4, i4x2, i2); - add_intrinsic2(ctx, fn, i4, i4x3, i3); - add_intrinsic2(ctx, fn, i4, i4x4, i4); - add_intrinsic2(ctx, fn, f1, f1x1, f1); - add_intrinsic2(ctx, fn, f1, f1x2, f2); - add_intrinsic2(ctx, fn, f1, f1x3, f3); - add_intrinsic2(ctx, fn, f1, f1x4, f4); - add_intrinsic2(ctx, fn, f2, f2x1, f1); - add_intrinsic2(ctx, fn, f2, f2x2, f2); - add_intrinsic2(ctx, fn, f2, f2x3, f3); - add_intrinsic2(ctx, fn, f2, f2x4, f4); - add_intrinsic2(ctx, fn, f3, f3x1, f1); - add_intrinsic2(ctx, fn, f3, f3x2, f2); - add_intrinsic2(ctx, fn, f3, f3x3, f3); - add_intrinsic2(ctx, fn, f3, f3x4, f4); - add_intrinsic2(ctx, fn, f4, f4x1, f1); - add_intrinsic2(ctx, fn, f4, f4x2, f2); - add_intrinsic2(ctx, fn, f4, f4x3, f3); - add_intrinsic2(ctx, fn, f4, f4x4, f4); - - // matrix * matrix - add_intrinsic2(ctx, fn, i1x1, i1x1, i1x1); - add_intrinsic2(ctx, fn, i1x2, i1x1, i1x2); - add_intrinsic2(ctx, fn, i1x3, i1x1, i1x3); - add_intrinsic2(ctx, fn, i1x4, i1x1, i1x4); - add_intrinsic2(ctx, fn, i1x1, i1x2, i2x1); - add_intrinsic2(ctx, fn, i1x2, i1x2, i2x2); - add_intrinsic2(ctx, fn, i1x3, i1x2, i2x3); - add_intrinsic2(ctx, fn, i1x4, i1x2, i2x4); - add_intrinsic2(ctx, fn, i1x1, i1x3, i3x1); - add_intrinsic2(ctx, fn, i1x2, i1x3, i3x2); - add_intrinsic2(ctx, fn, i1x3, i1x3, i3x3); - add_intrinsic2(ctx, fn, i1x4, i1x3, i3x4); - add_intrinsic2(ctx, fn, i1x1, i1x4, i4x1); - add_intrinsic2(ctx, fn, i1x2, i1x4, i4x2); - add_intrinsic2(ctx, fn, i1x3, i1x4, i4x3); - add_intrinsic2(ctx, fn, i1x4, i1x4, i4x4); - add_intrinsic2(ctx, fn, i2x1, i2x1, i1x1); - add_intrinsic2(ctx, fn, i2x2, i2x1, i1x2); - add_intrinsic2(ctx, fn, i2x3, i2x1, i1x3); - add_intrinsic2(ctx, fn, i2x4, i2x1, i1x4); - add_intrinsic2(ctx, fn, i2x1, i2x2, i2x1); - add_intrinsic2(ctx, fn, i2x2, i2x2, i2x2); - add_intrinsic2(ctx, fn, i2x3, i2x2, i2x3); - add_intrinsic2(ctx, fn, i2x4, i2x2, i2x4); - add_intrinsic2(ctx, fn, i2x1, i2x3, i3x1); - add_intrinsic2(ctx, fn, i2x2, i2x3, i3x2); - add_intrinsic2(ctx, fn, i2x3, i2x3, i3x3); - add_intrinsic2(ctx, fn, i2x4, i2x3, i3x4); - add_intrinsic2(ctx, fn, i2x1, i2x4, i4x1); - add_intrinsic2(ctx, fn, i2x2, i2x4, i4x2); - add_intrinsic2(ctx, fn, i2x3, i2x4, i4x3); - add_intrinsic2(ctx, fn, i2x4, i2x4, i4x4); - add_intrinsic2(ctx, fn, i3x1, i3x1, i1x1); - add_intrinsic2(ctx, fn, i3x2, i3x1, i1x2); - add_intrinsic2(ctx, fn, i3x3, i3x1, i1x3); - add_intrinsic2(ctx, fn, i3x4, i3x1, i1x4); - add_intrinsic2(ctx, fn, i3x1, i3x2, i2x1); - add_intrinsic2(ctx, fn, i3x2, i3x2, i2x2); - add_intrinsic2(ctx, fn, i3x3, i3x2, i2x3); - add_intrinsic2(ctx, fn, i3x4, i3x2, i2x4); - add_intrinsic2(ctx, fn, i3x1, i3x3, i3x1); - add_intrinsic2(ctx, fn, i3x2, i3x3, i3x2); - add_intrinsic2(ctx, fn, i3x3, i3x3, i3x3); - add_intrinsic2(ctx, fn, i3x4, i3x3, i3x4); - add_intrinsic2(ctx, fn, i3x1, i3x4, i4x1); - add_intrinsic2(ctx, fn, i3x2, i3x4, i4x2); - add_intrinsic2(ctx, fn, i3x3, i3x4, i4x3); - add_intrinsic2(ctx, fn, i3x4, i3x4, i4x4); - add_intrinsic2(ctx, fn, i4x1, i4x1, i1x1); - add_intrinsic2(ctx, fn, i4x2, i4x1, i1x2); - add_intrinsic2(ctx, fn, i4x3, i4x1, i1x3); - add_intrinsic2(ctx, fn, i4x4, i4x1, i1x4); - add_intrinsic2(ctx, fn, i4x1, i4x2, i2x1); - add_intrinsic2(ctx, fn, i4x2, i4x2, i2x2); - add_intrinsic2(ctx, fn, i4x3, i4x2, i2x3); - add_intrinsic2(ctx, fn, i4x4, i4x2, i2x4); - add_intrinsic2(ctx, fn, i4x1, i4x3, i3x1); - add_intrinsic2(ctx, fn, i4x2, i4x3, i3x2); - add_intrinsic2(ctx, fn, i4x3, i4x3, i3x3); - add_intrinsic2(ctx, fn, i4x4, i4x3, i3x4); - add_intrinsic2(ctx, fn, i4x1, i4x4, i4x1); - add_intrinsic2(ctx, fn, i4x2, i4x4, i4x2); - add_intrinsic2(ctx, fn, i4x3, i4x4, i4x3); - add_intrinsic2(ctx, fn, i4x4, i4x4, i4x4); - add_intrinsic2(ctx, fn, f1x1, f1x1, f1x1); - add_intrinsic2(ctx, fn, f1x2, f1x1, f1x2); - add_intrinsic2(ctx, fn, f1x3, f1x1, f1x3); - add_intrinsic2(ctx, fn, f1x4, f1x1, f1x4); - add_intrinsic2(ctx, fn, f1x1, f1x2, f2x1); - add_intrinsic2(ctx, fn, f1x2, f1x2, f2x2); - add_intrinsic2(ctx, fn, f1x3, f1x2, f2x3); - add_intrinsic2(ctx, fn, f1x4, f1x2, f2x4); - add_intrinsic2(ctx, fn, f1x1, f1x3, f3x1); - add_intrinsic2(ctx, fn, f1x2, f1x3, f3x2); - add_intrinsic2(ctx, fn, f1x3, f1x3, f3x3); - add_intrinsic2(ctx, fn, f1x4, f1x3, f3x4); - add_intrinsic2(ctx, fn, f1x1, f1x4, f4x1); - add_intrinsic2(ctx, fn, f1x2, f1x4, f4x2); - add_intrinsic2(ctx, fn, f1x3, f1x4, f4x3); - add_intrinsic2(ctx, fn, f1x4, f1x4, f4x4); - add_intrinsic2(ctx, fn, f2x1, f2x1, f1x1); - add_intrinsic2(ctx, fn, f2x2, f2x1, f1x2); - add_intrinsic2(ctx, fn, f2x3, f2x1, f1x3); - add_intrinsic2(ctx, fn, f2x4, f2x1, f1x4); - add_intrinsic2(ctx, fn, f2x1, f2x2, f2x1); - add_intrinsic2(ctx, fn, f2x2, f2x2, f2x2); - add_intrinsic2(ctx, fn, f2x3, f2x2, f2x3); - add_intrinsic2(ctx, fn, f2x4, f2x2, f2x4); - add_intrinsic2(ctx, fn, f2x1, f2x3, f3x1); - add_intrinsic2(ctx, fn, f2x2, f2x3, f3x2); - add_intrinsic2(ctx, fn, f2x3, f2x3, f3x3); - add_intrinsic2(ctx, fn, f2x4, f2x3, f3x4); - add_intrinsic2(ctx, fn, f2x1, f2x4, f4x1); - add_intrinsic2(ctx, fn, f2x2, f2x4, f4x2); - add_intrinsic2(ctx, fn, f2x3, f2x4, f4x3); - add_intrinsic2(ctx, fn, f2x4, f2x4, f4x4); - add_intrinsic2(ctx, fn, f3x1, f3x1, f1x1); - add_intrinsic2(ctx, fn, f3x2, f3x1, f1x2); - add_intrinsic2(ctx, fn, f3x3, f3x1, f1x3); - add_intrinsic2(ctx, fn, f3x4, f3x1, f1x4); - add_intrinsic2(ctx, fn, f3x1, f3x2, f2x1); - add_intrinsic2(ctx, fn, f3x2, f3x2, f2x2); - add_intrinsic2(ctx, fn, f3x3, f3x2, f2x3); - add_intrinsic2(ctx, fn, f3x4, f3x2, f2x4); - add_intrinsic2(ctx, fn, f3x1, f3x3, f3x1); - add_intrinsic2(ctx, fn, f3x2, f3x3, f3x2); - add_intrinsic2(ctx, fn, f3x3, f3x3, f3x3); - add_intrinsic2(ctx, fn, f3x4, f3x3, f3x4); - add_intrinsic2(ctx, fn, f3x1, f3x4, f4x1); - add_intrinsic2(ctx, fn, f3x2, f3x4, f4x2); - add_intrinsic2(ctx, fn, f3x3, f3x4, f4x3); - add_intrinsic2(ctx, fn, f3x4, f3x4, f4x4); - add_intrinsic2(ctx, fn, f4x1, f4x1, f1x1); - add_intrinsic2(ctx, fn, f4x2, f4x1, f1x2); - add_intrinsic2(ctx, fn, f4x3, f4x1, f1x3); - add_intrinsic2(ctx, fn, f4x4, f4x1, f1x4); - add_intrinsic2(ctx, fn, f4x1, f4x2, f2x1); - add_intrinsic2(ctx, fn, f4x2, f4x2, f2x2); - add_intrinsic2(ctx, fn, f4x3, f4x2, f2x3); - add_intrinsic2(ctx, fn, f4x4, f4x2, f2x4); - add_intrinsic2(ctx, fn, f4x1, f4x3, f3x1); - add_intrinsic2(ctx, fn, f4x2, f4x3, f3x2); - add_intrinsic2(ctx, fn, f4x3, f4x3, f3x3); - add_intrinsic2(ctx, fn, f4x4, f4x3, f3x4); - add_intrinsic2(ctx, fn, f4x1, f4x4, f4x1); - add_intrinsic2(ctx, fn, f4x2, f4x4, f4x2); - add_intrinsic2(ctx, fn, f4x3, f4x4, f4x3); - add_intrinsic2(ctx, fn, f4x4, f4x4, f4x4); -} // add_intrinsic_mul - -static void init_builtins(Context *ctx) -{ - // add in standard typedefs... - const struct - { - const char *str; - const MOJOSHADER_astDataType *datatype; - } types[] = { - { "bool", &ctx->dt_bool }, - { "int", &ctx->dt_int }, - { "uint", &ctx->dt_uint }, - { "half", &ctx->dt_half }, - { "float", &ctx->dt_float }, - { "double", &ctx->dt_double }, - }; - - int i, j, k; - for (i = 0; i < STATICARRAYLEN(types); i++) - { - char buf[32]; - int len; - const MOJOSHADER_astDataType *dt; - - for (j = 1; j <= 4; j++) - { - // "float2" - dt = new_datatype_vector(ctx, types[i].datatype, j); - len = snprintf(buf, sizeof (buf), "%s%d", types[i].str, j); - push_usertype(ctx, stringcache_len(ctx->strcache, buf, len), dt); - for (k = 1; k <= 4; k++) - { - // "float2x2" - dt = new_datatype_matrix(ctx, types[i].datatype, j, k); - len = snprintf(buf, sizeof (buf), "%s%dx%d", types[i].str,j,k); - push_usertype(ctx, stringcache_len(ctx->strcache,buf,len), dt); - } // for - } // for - } // for - - // !!! FIXME: block these out by pixel/vertex/etc shader. - // !!! FIXME: calculate actual shader model (or maybe just let bytecode verifier throw up?). - const int shader_model = 3; - if (shader_model >= 1) - { - add_intrinsic_SAME1_ANYfi(ctx, stringcache(ctx->strcache, "abs")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "acos")); - add_intrinsic_BOOL_ANYfib(ctx, stringcache(ctx->strcache, "all")); - add_intrinsic_BOOL_ANYfib(ctx, stringcache(ctx->strcache, "any")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "asin")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "atan")); - add_intrinsic_SAME1_ANYf_SAME1(ctx, stringcache(ctx->strcache, "atan2")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "ceil")); - add_intrinsic_SAME1_ANYfi_SAME1_SAME1(ctx, stringcache(ctx->strcache, "clamp")); - add_intrinsic_VOID_ANYf(ctx, stringcache(ctx->strcache, "clip")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "cos")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "cosh")); - add_intrinsic_3f_3f_3f(ctx, stringcache(ctx->strcache, "cross")); - add_intrinsic_4i_4f(ctx, stringcache(ctx->strcache, "D3DCOLORtoUBYTE4")); - add_intrinsic_f_Vf_SAME1(ctx, stringcache(ctx->strcache, "distance")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "degrees")); - add_intrinsic_f_SQUAREMATRIXf(ctx, stringcache(ctx->strcache, "determinant")); - add_intrinsic_fi_Vfi_SAME1(ctx, stringcache(ctx->strcache, "dot")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "exp")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "exp2")); - add_intrinsic_SAME1_Vf_SAME1_SAME1(ctx, stringcache(ctx->strcache, "faceforward")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "floor")); - add_intrinsic_SAME1_ANYf_SAME1(ctx, stringcache(ctx->strcache, "fmod")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "frac")); - add_intrinsic_BOOL_ANYf(ctx, stringcache(ctx->strcache, "isfinite")); - add_intrinsic_BOOL_ANYf(ctx, stringcache(ctx->strcache, "isinf")); - add_intrinsic_BOOL_ANYf(ctx, stringcache(ctx->strcache, "isnan")); - add_intrinsic_SAME1_ANYf_SAME1(ctx, stringcache(ctx->strcache, "ldexp")); - add_intrinsic_f_Vf(ctx, stringcache(ctx->strcache, "length")); - add_intrinsic_SAME1_ANYf_SAME1_SAME1(ctx, stringcache(ctx->strcache, "lerp")); - add_intrinsic_4f_f_f_f(ctx, stringcache(ctx->strcache, "lit")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "log")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "log10")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "log2")); - add_intrinsic_SAME1_ANYfi_SAME1(ctx, stringcache(ctx->strcache, "max")); - add_intrinsic_SAME1_ANYfi_SAME1(ctx, stringcache(ctx->strcache, "min")); - add_intrinsic_SAME1_ANYfi_SAME1(ctx, stringcache(ctx->strcache, "modf")); // !!! FIXME: out var? - add_intrinsic_mul(ctx, stringcache(ctx->strcache, "mul")); - add_intrinsic_f_Vf(ctx, stringcache(ctx->strcache, "noise")); - add_intrinsic_SAME1_Vf(ctx, stringcache(ctx->strcache, "normalize")); - add_intrinsic_SAME1_ANYf_SAME1(ctx, stringcache(ctx->strcache, "pow")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "radians")); - add_intrinsic_SAME1_ANYfi_SAME1(ctx, stringcache(ctx->strcache, "reflect")); - add_intrinsic_SAME1_Vf_SAME1_f(ctx, stringcache(ctx->strcache, "refract")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "round")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "rsqrt")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "saturate")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "sign")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "sin")); - add_intrinsic_VOID_ANYf_SAME1_SAME1(ctx, stringcache(ctx->strcache, "sincos")); // !!! FIXME: out var? - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "sinh")); - add_intrinsic_SAME1_ANYf_SAME1_SAME1(ctx, stringcache(ctx->strcache, "smoothstep")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "sqrt")); - add_intrinsic_SAME1_ANYf_SAME1(ctx, stringcache(ctx->strcache, "step")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "tan")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "tanh")); - add_intrinsic_4f_s1_f(ctx, stringcache(ctx->strcache, "tex1D")); - add_intrinsic_4f_s2_2f(ctx, stringcache(ctx->strcache, "tex2D")); - add_intrinsic_4f_s3_3f(ctx, stringcache(ctx->strcache, "tex3D")); - add_intrinsic_4f_sc_3f(ctx, stringcache(ctx->strcache, "texCUBE")); - add_intrinsic_SAME1_Mfib(ctx, stringcache(ctx->strcache, "transpose")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "trunc")); - } // if - - if (shader_model >= 2) - { - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "ddx")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "ddy")); - add_intrinsic_SAME1_ANYf_SAME1(ctx, stringcache(ctx->strcache, "frexp")); - add_intrinsic_SAME1_ANYf(ctx, stringcache(ctx->strcache, "fwidth")); - add_intrinsic_4f_s1_f_f_f(ctx, stringcache(ctx->strcache, "tex1D")); - add_intrinsic_4f_s1_4f(ctx, stringcache(ctx->strcache, "tex1Dbias")); - add_intrinsic_4f_s1_f_f_f(ctx, stringcache(ctx->strcache, "tex1Dgrad")); - add_intrinsic_4f_s1_4f(ctx, stringcache(ctx->strcache, "tex1Dproj")); - add_intrinsic_4f_s2_2f_2f_2f(ctx, stringcache(ctx->strcache, "tex2D")); - add_intrinsic_4f_s2_4f(ctx, stringcache(ctx->strcache, "tex2Dbias")); - add_intrinsic_4f_s2_2f_2f_2f(ctx, stringcache(ctx->strcache, "tex2Dgrad")); - add_intrinsic_4f_s2_4f(ctx, stringcache(ctx->strcache, "tex2Dproj")); - add_intrinsic_4f_s3_3f_3f_3f(ctx, stringcache(ctx->strcache, "tex3D")); - add_intrinsic_4f_s3_4f(ctx, stringcache(ctx->strcache, "tex3Dbias")); - add_intrinsic_4f_s3_3f_3f_3f(ctx, stringcache(ctx->strcache, "tex3Dgrad")); - add_intrinsic_4f_s3_4f(ctx, stringcache(ctx->strcache, "tex3Dproj")); - add_intrinsic_4f_sc_3f_3f_3f(ctx, stringcache(ctx->strcache, "texCUBE")); - add_intrinsic_4f_sc_4f(ctx, stringcache(ctx->strcache, "texCUBEbias")); - add_intrinsic_4f_sc_3f_3f_3f(ctx, stringcache(ctx->strcache, "texCUBEgrad")); - add_intrinsic_4f_sc_4f(ctx, stringcache(ctx->strcache, "texCUBEproj")); - } // if - - if (shader_model >= 3) - { - add_intrinsic_4f_s1_4f(ctx, stringcache(ctx->strcache, "tex1Dlod")); - add_intrinsic_4f_s2_4f(ctx, stringcache(ctx->strcache, "tex2Dlod")); - add_intrinsic_4f_s3_4f(ctx, stringcache(ctx->strcache, "tex3Dlod")); - add_intrinsic_4f_sc_4f(ctx, stringcache(ctx->strcache, "texCUBElod")); - } // if -} // init_builtins - - -// parse the source code into an AST. -static void parse_source(Context *ctx, const char *filename, - const char *source, unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close) -{ - TokenData data; - unsigned int tokenlen; - Token tokenval; - const char *token; - int lemon_token; - const char *fname; - Preprocessor *pp; - void *parser; - - if (!include_open) include_open = MOJOSHADER_internal_include_open; - if (!include_close) include_close = MOJOSHADER_internal_include_close; - - pp = preprocessor_start(filename, source, sourcelen, include_open, - include_close, defines, define_count, 0, - MallocBridge, FreeBridge, ctx); - if (pp == NULL) - { - assert(ctx->out_of_memory); // shouldn't fail for any other reason. - return; - } // if - - parser = ParseHLSLAlloc(ctx->malloc, ctx->malloc_data); - if (parser == NULL) - { - assert(ctx->out_of_memory); // shouldn't fail for any other reason. - preprocessor_end(pp); - return; - } // if - - // !!! FIXME: check if (parser == NULL)... - - init_builtins(ctx); - - SymbolScope *start_scope = ctx->usertypes.scope; - - #if DEBUG_COMPILER_PARSER - ParseHLSLTrace(stdout, "COMPILER: "); - #endif - - // Run the preprocessor/lexer/parser... - int is_pragma = 0; // !!! FIXME: remove this later when we can parse #pragma. - int skipping = 0; // !!! FIXME: remove this later when we can parse #pragma. - do { - token = preprocessor_nexttoken(pp, &tokenlen, &tokenval); - - if (ctx->out_of_memory) - break; - - fname = preprocessor_sourcepos(pp, &ctx->sourceline); - ctx->sourcefile = fname ? stringcache(ctx->strcache, fname) : 0; - - if ((tokenval == TOKEN_HASH) || (tokenval == TOKEN_HASHHASH)) - tokenval = TOKEN_BAD_CHARS; - - if (tokenval == TOKEN_BAD_CHARS) - { - fail(ctx, "Bad characters in source file"); - continue; - } // else if - - else if (tokenval == TOKEN_PREPROCESSING_ERROR) - { - fail(ctx, token); // this happens to be null-terminated. - continue; - } // else if - - else if (tokenval == TOKEN_PP_PRAGMA) - { - assert(!is_pragma); - is_pragma = 1; - skipping = 1; - continue; - } - - else if (tokenval == ((Token) '\n')) - { - assert(is_pragma); - is_pragma = 0; - skipping = 0; - continue; - } - - else if (skipping) - { - continue; - } - - // !!! FIXME: this is a mess, decide who should be doing this stuff, and only do it once. - lemon_token = convert_to_lemon_token(ctx, token, tokenlen, tokenval); - switch (lemon_token) - { - case TOKEN_HLSL_INT_CONSTANT: - data.i64 = strtoi64(token, tokenlen); - break; - - case TOKEN_HLSL_FLOAT_CONSTANT: - data.dbl = strtodouble(token, tokenlen); - break; - - case TOKEN_HLSL_USERTYPE: - data.string = stringcache_len(ctx->strcache, token, tokenlen); - data.datatype = get_usertype(ctx, data.string); // !!! FIXME: do we need this? It's kind of useless during parsing. - assert(data.datatype != NULL); - break; - - case TOKEN_HLSL_STRING_LITERAL: - case TOKEN_HLSL_IDENTIFIER: - data.string = stringcache_len(ctx->strcache, token, tokenlen); - break; - - default: - data.i64 = 0; - break; - } // switch - - ParseHLSL(parser, lemon_token, data, ctx); - - // this probably isn't perfect, but it's good enough for surviving - // the parse. We'll sort out correctness once we have a tree. - if (lemon_token == TOKEN_HLSL_LBRACE) - push_scope(ctx); - else if (lemon_token == TOKEN_HLSL_RBRACE) - pop_scope(ctx); - } while (tokenval != TOKEN_EOI); - - // Clean out extra usertypes; they are dummies until semantic analysis. - while (ctx->usertypes.scope != start_scope) - pop_symbol(ctx, &ctx->usertypes); - - ParseHLSLFree(parser, ctx->free, ctx->malloc_data); - preprocessor_end(pp); -} // parse_source - - -/* Intermediate representation... */ - -static inline int generate_ir_label(Context *ctx) -{ - return ctx->ir_label_count++; -} // generate_ir_label - -static inline int generate_ir_temp(Context *ctx) -{ - return ctx->ir_temp_count++; -} // generate_ir_temp - -static const LoopLabels *push_ir_loop(Context *ctx, const int isswitch) -{ - // !!! FIXME: cache these allocations? - LoopLabels *retval = Malloc(ctx, sizeof (LoopLabels)); - if (retval) - { - retval->start = (isswitch) ? -1 : generate_ir_label(ctx); - retval->end = generate_ir_label(ctx); - retval->prev = ctx->ir_loop; - ctx->ir_loop = retval; - } // if - - return retval; -} // push_ir_loop - -static void pop_ir_loop(Context *ctx) -{ - assert(ctx->ir_loop != NULL); - LoopLabels *labels = ctx->ir_loop; - ctx->ir_loop = ctx->ir_loop->prev; - Free(ctx, labels); -} // pop_ir_loop - - -#define NEW_IR_NODE(retval, cls, typ) \ - cls *retval = (cls *) Malloc(ctx, sizeof (cls)); \ - do { \ - if (retval == NULL) { return NULL; } \ - retval->ir.type = typ; \ - retval->ir.filename = ctx->sourcefile; \ - retval->ir.line = ctx->sourceline; \ - } while (0) - -#define NEW_IR_EXPR(retval, cls, typ, dt, numelems) \ - cls *retval = (cls *) Malloc(ctx, sizeof (cls)); \ - do { \ - if (retval == NULL) { return NULL; } \ - retval->info.ir.type = typ; \ - retval->info.ir.filename = ctx->sourcefile; \ - retval->info.ir.line = ctx->sourceline; \ - retval->info.type = dt; \ - retval->info.elements = numelems; \ - } while (0) - -// syntactic sugar. -static inline MOJOSHADER_irNode *build_ir(Context *ctx, void *_ast); -static inline MOJOSHADER_irExpression *build_ir_expr(Context *ctx, void *_ast) -{ - MOJOSHADER_irNode *retval = build_ir(ctx, _ast); - assert(!retval || (retval->ir.type > MOJOSHADER_IR_START_RANGE_EXPR)); - assert(!retval || (retval->ir.type < MOJOSHADER_IR_END_RANGE_EXPR)); - return (MOJOSHADER_irExpression *) retval; -} // build_ir_expr - -static inline MOJOSHADER_irStatement *build_ir_stmt(Context *ctx, void *_ast) -{ - MOJOSHADER_irNode *retval = build_ir(ctx, _ast); - assert(!retval || (retval->ir.type > MOJOSHADER_IR_START_RANGE_STMT)); - assert(!retval || (retval->ir.type < MOJOSHADER_IR_END_RANGE_STMT)); - return (MOJOSHADER_irStatement *) retval; -} // build_ir_stmt - - -static MOJOSHADER_irExpression *new_ir_binop(Context *ctx, - const MOJOSHADER_irBinOpType op, - MOJOSHADER_irExpression *left, - MOJOSHADER_irExpression *right) -{ - if ((!left) || (!right)) return NULL; - NEW_IR_EXPR(retval, MOJOSHADER_irBinOp, MOJOSHADER_IR_BINOP, left->info.type, left->info.elements); - assert(left->info.type == right->info.type); - assert(left->info.elements == right->info.elements); - retval->op = op; - retval->left = left; - retval->right = right; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_binop - -static MOJOSHADER_irExpression *new_ir_eseq(Context *ctx, - MOJOSHADER_irStatement *stmt, - MOJOSHADER_irExpression *expr) -{ - if (!expr) return NULL; - NEW_IR_EXPR(retval, MOJOSHADER_irESeq, MOJOSHADER_IR_ESEQ, expr->info.type, expr->info.elements); - retval->stmt = stmt; - retval->expr = expr; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_eseq - -static MOJOSHADER_irExpression *new_ir_temp(Context *ctx, const int index, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irTemp, MOJOSHADER_IR_TEMP, type, elements); - retval->index = index; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_temp - - - -#define NEW_IR_BINOP(op,l,r) new_ir_binop(ctx, MOJOSHADER_IR_BINOP_##op, l, r) -#define EASY_IR_BINOP(op) \ - NEW_IR_BINOP(op, build_ir_expr(ctx, ast->binary.left), \ - build_ir_expr(ctx, ast->binary.right)) - -// You have to fill in ->value yourself! -static MOJOSHADER_irExpression *new_ir_constant(Context *ctx, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irConstant, MOJOSHADER_IR_CONSTANT, type, elements); - return (MOJOSHADER_irExpression *) retval; -} // new_ir_constant - -static MOJOSHADER_irExpression *new_ir_constint(Context *ctx, const int val) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irConstant, MOJOSHADER_IR_CONSTANT, MOJOSHADER_AST_DATATYPE_INT, 1); - retval->value.ival[0] = val; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_constint - -static MOJOSHADER_irExpression *new_ir_constfloat(Context *ctx, const float val) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irConstant, MOJOSHADER_IR_CONSTANT, MOJOSHADER_AST_DATATYPE_FLOAT, 1); - retval->value.fval[0] = val; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_constfloat - -static MOJOSHADER_irExpression *new_ir_constbool(Context *ctx, const int val) -{ - // !!! FIXME: cache true and false in (ctx), ignore in delete_ir(). - NEW_IR_EXPR(retval, MOJOSHADER_irConstant, MOJOSHADER_IR_CONSTANT, MOJOSHADER_AST_DATATYPE_BOOL, 1); - retval->value.ival[0] = val; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_constbool - -static MOJOSHADER_irExpression *new_ir_convert(Context *ctx, MOJOSHADER_irExpression *expr, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irConvert, MOJOSHADER_IR_CONVERT, type, elements); - retval->expr = expr; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_convert - -static MOJOSHADER_irExpression *new_ir_construct(Context *ctx, MOJOSHADER_irExprList *args, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irConstruct, MOJOSHADER_IR_CONSTRUCT, type, elements); - retval->args = args; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_construct - -static MOJOSHADER_irExpression *new_ir_call(Context *ctx, const int index, - MOJOSHADER_irExprList *args, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irCall, MOJOSHADER_IR_CALL, type, elements); - retval->args = args; - retval->index = index; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_call - -static MOJOSHADER_irExpression *new_ir_swizzle(Context *ctx, - MOJOSHADER_irExpression *expr, - const char *channels, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irSwizzle, MOJOSHADER_IR_SWIZZLE, type, elements); - retval->expr = expr; - memcpy(retval->channels, channels, sizeof (retval->channels)); - return (MOJOSHADER_irExpression *) retval; -} // new_ir_swizzle - -static MOJOSHADER_irExpression *new_ir_memory(Context *ctx, const int index, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irMemory, MOJOSHADER_IR_MEMORY, type, elements); - retval->index = index; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_memory - -static MOJOSHADER_irExpression *new_ir_array(Context *ctx, - MOJOSHADER_irExpression *array, - MOJOSHADER_irExpression *element, - const MOJOSHADER_astDataTypeType type, - const int elements) -{ - NEW_IR_EXPR(retval, MOJOSHADER_irArray, MOJOSHADER_IR_ARRAY, type, elements); - retval->array = array; - retval->element = element; - return (MOJOSHADER_irExpression *) retval; -} // new_ir_array - -static MOJOSHADER_irStatement *new_ir_seq(Context *ctx, - MOJOSHADER_irStatement *first, - MOJOSHADER_irStatement *next) -{ - assert((first != NULL) || (next != NULL)); - if (first == NULL) // don't generate a SEQ if unnecessary. - return next; - else if (next == NULL) - return first; - - NEW_IR_NODE(retval, MOJOSHADER_irSeq, MOJOSHADER_IR_SEQ); - retval->first = first; - retval->next = next; - return (MOJOSHADER_irStatement *) retval; -} // new_ir_seq - -static MOJOSHADER_irStatement *new_ir_jump(Context *ctx, const int label) -{ - NEW_IR_NODE(retval, MOJOSHADER_irJump, MOJOSHADER_IR_JUMP); - retval->label = label; - return (MOJOSHADER_irStatement *) retval; -} // new_ir_jump - -static MOJOSHADER_irStatement *new_ir_cjump(Context *ctx, - const MOJOSHADER_irConditionType cond, - MOJOSHADER_irExpression *left, - MOJOSHADER_irExpression *right, - const int iftrue, const int iffalse) -{ - NEW_IR_NODE(retval, MOJOSHADER_irCJump, MOJOSHADER_IR_CJUMP); - retval->cond = cond; - retval->left = left; - retval->right = right; - retval->iftrue = iftrue; - retval->iffalse = iffalse; - return (MOJOSHADER_irStatement *) retval; -} // new_ir_cjump - -static MOJOSHADER_irStatement *new_ir_label(Context *ctx, const int index) -{ - NEW_IR_NODE(retval, MOJOSHADER_irLabel, MOJOSHADER_IR_LABEL); - retval->index = index; - return (MOJOSHADER_irStatement *) retval; -} // new_ir_label - -static MOJOSHADER_irStatement *new_ir_move(Context *ctx, - MOJOSHADER_irExpression *dst, - MOJOSHADER_irExpression *src, - const int writemask) -{ - NEW_IR_NODE(retval, MOJOSHADER_irMove, MOJOSHADER_IR_MOVE); - assert(dst && src && (dst->info.type == src->info.type)); - assert(dst && src && (dst->info.elements == src->info.elements)); - retval->dst = dst; - retval->src = src; - retval->writemask = writemask; - return (MOJOSHADER_irStatement *) retval; -} // new_ir_move - -static MOJOSHADER_irStatement *new_ir_expr_stmt(Context *ctx, MOJOSHADER_irExpression *expr) -{ - NEW_IR_NODE(retval, MOJOSHADER_irExprStmt, MOJOSHADER_IR_EXPR_STMT); - retval->expr = expr; - return (MOJOSHADER_irStatement *) retval; -} // new_ir_expr_stmt - -static MOJOSHADER_irStatement *new_ir_discard(Context *ctx) -{ - NEW_IR_NODE(retval, MOJOSHADER_irDiscard, MOJOSHADER_IR_DISCARD); - return (MOJOSHADER_irStatement *) retval; -} // new_ir_discard - -static MOJOSHADER_irExprList *new_ir_exprlist(Context *ctx, MOJOSHADER_irExpression *expr) -{ - NEW_IR_NODE(retval, MOJOSHADER_irExprList, MOJOSHADER_IR_EXPRLIST); - retval->expr = expr; - retval->next = NULL; - return (MOJOSHADER_irExprList *) retval; -} // new_ir_exprlist - - -// This handles most comparison operators (less-than, equals, etc...) -static MOJOSHADER_irExpression *build_ir_compare(Context *ctx, - const MOJOSHADER_irConditionType operation, - MOJOSHADER_irExpression *left, - MOJOSHADER_irExpression *right, - MOJOSHADER_irExpression *tval, - MOJOSHADER_irExpression *fval) -{ - /* The gist... - cjump x < y, t, f // '<' is whatever operation - t: - move tmp, tval - jump join - f: - move tmp, fval - join: - */ - - const int t = generate_ir_label(ctx); - const int f = generate_ir_label(ctx); - const int join = generate_ir_label(ctx); - const int tmp = generate_ir_temp(ctx); - - assert(tval && fval && (tval->info.type == fval->info.type)); - assert(tval && fval && (tval->info.elements == fval->info.elements)); - - const MOJOSHADER_astDataTypeType dt = tval->info.type; - const int elements = tval->info.elements; - - return new_ir_eseq(ctx, - new_ir_seq(ctx, new_ir_cjump(ctx, operation, left, right, t, f), - new_ir_seq(ctx, new_ir_label(ctx, t), - new_ir_seq(ctx, new_ir_move(ctx, new_ir_temp(ctx, tmp, dt, elements), tval, -1), - new_ir_seq(ctx, new_ir_jump(ctx, join), - new_ir_seq(ctx, new_ir_label(ctx, f), - new_ir_seq(ctx, new_ir_move(ctx, new_ir_temp(ctx, tmp, dt, elements), fval, -1), - new_ir_label(ctx, join))))))), - new_ir_temp(ctx, tmp, dt, elements)); -} // build_ir_compare - -#define EASY_IR_COMPARE(op) \ - build_ir_compare(ctx, MOJOSHADER_IR_COND_##op, \ - build_ir_expr(ctx, ast->binary.left), \ - build_ir_expr(ctx, ast->binary.right), \ - new_ir_constbool(ctx, 1), \ - new_ir_constbool(ctx, 0)) - - -// This handles && and || operators. -static MOJOSHADER_irExpression *build_ir_logical_and_or(Context *ctx, - const MOJOSHADER_astExpressionBinary *ast, - const int left_testval) -{ - /* The gist... - cjump left == left_testval, maybe, f - maybe: - cjump right == true, t, f - t: - move tmp, 1 - jump join - f: - move tmp, 0 - join: - */ - - assert(ast->left->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - assert(ast->right->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - - const int t = generate_ir_label(ctx); - const int f = generate_ir_label(ctx); - const int maybe = generate_ir_label(ctx); - const int join = generate_ir_label(ctx); - const int tmp = generate_ir_temp(ctx); - - return new_ir_eseq(ctx, - new_ir_seq(ctx, new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, ast->left), new_ir_constbool(ctx, left_testval), maybe, f), - new_ir_seq(ctx, new_ir_label(ctx, maybe), - new_ir_seq(ctx, new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, ast->right), new_ir_constbool(ctx, 1), t, f), - new_ir_seq(ctx, new_ir_label(ctx, t), - new_ir_seq(ctx, new_ir_move(ctx, new_ir_temp(ctx, tmp, MOJOSHADER_AST_DATATYPE_BOOL, 1), new_ir_constbool(ctx, 1), -1), - new_ir_seq(ctx, new_ir_jump(ctx, join), - new_ir_seq(ctx, new_ir_label(ctx, f), - new_ir_seq(ctx, new_ir_move(ctx, new_ir_temp(ctx, tmp, MOJOSHADER_AST_DATATYPE_BOOL, 1), new_ir_constbool(ctx, 0), -1), - new_ir_label(ctx, join))))))))), - new_ir_temp(ctx, tmp, MOJOSHADER_AST_DATATYPE_BOOL, 1)); -} // build_ir_logical_and_or - -static inline MOJOSHADER_irExpression *build_ir_logical_and(Context *ctx, - const MOJOSHADER_astExpressionBinary *ast) -{ - // this needs to not evaluate (right) if (left) is false! - return build_ir_logical_and_or(ctx, ast, 1); -} // build_ir_logical_and - -static inline MOJOSHADER_irExpression *build_ir_logical_or(Context *ctx, - const MOJOSHADER_astExpressionBinary *ast) -{ - // this needs to not evaluate (right) if (left) is true! - return build_ir_logical_and_or(ctx, ast, 0); -} // build_ir_logical_or - -static inline MOJOSHADER_irStatement *build_ir_no_op(Context *ctx) -{ - return new_ir_label(ctx, generate_ir_label(ctx)); -} // build_ir_no_op - -static MOJOSHADER_irStatement *build_ir_ifstmt(Context *ctx, - const MOJOSHADER_astIfStatement *ast) -{ - assert(ast->expr->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - - // !!! FIXME: ast->attributes? - - // IF statement without an ELSE. - if (ast->else_statement == NULL) - { - /* The gist... - cjump expr, t, join - t: - statement - join: - */ - - const int t = generate_ir_label(ctx); - const int join = generate_ir_label(ctx); - - return new_ir_seq(ctx, new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, ast->expr), new_ir_constbool(ctx, 1), t, join), - new_ir_seq(ctx, new_ir_label(ctx, t), - new_ir_seq(ctx, build_ir_stmt(ctx, ast->statement), - new_ir_seq(ctx, new_ir_label(ctx, join), - build_ir_stmt(ctx, ast->next))))); - } // if - - // IF statement _with_ an ELSE. - /* The gist... - cjump expr, t, f - t: - statement - jump join - f: - elsestatement - join: - */ - - const int t = generate_ir_label(ctx); - const int f = generate_ir_label(ctx); - const int join = generate_ir_label(ctx); - - return new_ir_seq(ctx, new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, ast->expr), new_ir_constbool(ctx, 1), t, f), - new_ir_seq(ctx, new_ir_label(ctx, t), - new_ir_seq(ctx, build_ir_stmt(ctx, ast->statement), - new_ir_seq(ctx, new_ir_jump(ctx, join), - new_ir_seq(ctx, new_ir_label(ctx, f), - new_ir_seq(ctx, build_ir_stmt(ctx, ast->else_statement), - new_ir_seq(ctx, new_ir_label(ctx, join), - build_ir_stmt(ctx, ast->next)))))))); -} // build_ir_ifstmt - - -static MOJOSHADER_irStatement *build_ir_forstmt(Context *ctx, - const MOJOSHADER_astForStatement *ast) -{ - // !!! FIXME: ast->unroll - - assert(ast->looptest->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - - /* The gist... - initializer // (or var_decl->initializer!) - test: - cjump looptest == true, loop, join - loop: - statement - increment: // needs to be here; this is where "continue" jumps! - counter - jump test - join: - */ - - const int test = generate_ir_label(ctx); - const int loop = generate_ir_label(ctx); - - const LoopLabels *labels = push_ir_loop(ctx, 0); - if (labels == NULL) - return NULL; // out of memory... - - const int increment = labels->start; - const int join = labels->end; - - assert( (ast->var_decl && !ast->initializer) || - (!ast->var_decl && ast->initializer) ); - - MOJOSHADER_irStatement *init = NULL; - if (ast->var_decl != NULL) - { -//sdfsdf - // !!! FIXME: map the initializer to the variable? Need fix to var_decl parsing. -// new_ir_move(ctx, FIXME MAP TO REGISTER ast->var_decl->index, build_ir_expr(ctx, ast->fsdf)); -// FIXME -// init = build_ir_vardecl(ctx, ast->var_decl); - } // if - else - { -// init = build_ir_expr(ctx, ast->initializer); - } // else - - MOJOSHADER_irStatement *retval = - new_ir_seq(ctx, init, - new_ir_seq(ctx, new_ir_label(ctx, test), - new_ir_seq(ctx, new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, ast->looptest), new_ir_constbool(ctx, 1), loop, join), - new_ir_seq(ctx, new_ir_label(ctx, loop), - new_ir_seq(ctx, build_ir_stmt(ctx, ast->statement), - new_ir_seq(ctx, new_ir_label(ctx, increment), - new_ir_seq(ctx, new_ir_expr_stmt(ctx, build_ir_expr(ctx, ast->counter)), - new_ir_seq(ctx, new_ir_jump(ctx, test), - new_ir_label(ctx, join))))))))); - - pop_ir_loop(ctx); - - return new_ir_seq(ctx, retval, build_ir_stmt(ctx, ast->next)); -} // build_ir_forstmt - -static MOJOSHADER_irStatement *build_ir_whilestmt(Context *ctx, - const MOJOSHADER_astWhileStatement *ast) -{ - // !!! FIXME: ast->unroll - - assert(ast->expr->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - - /* The gist... - loop: - cjump expr == true, t, join - t: - statement - jump loop - join: - */ - - const LoopLabels *labels = push_ir_loop(ctx, 0); - if (labels == NULL) - return NULL; // out of memory... - - const int loop = labels->start; - const int t = generate_ir_label(ctx); - const int join = labels->end; - - MOJOSHADER_irStatement *retval = - new_ir_seq(ctx, new_ir_label(ctx, loop), - new_ir_seq(ctx, new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, ast->expr), new_ir_constbool(ctx, 1), t, join), - new_ir_seq(ctx, new_ir_label(ctx, t), - new_ir_seq(ctx, build_ir_stmt(ctx, ast->statement), - new_ir_seq(ctx, new_ir_jump(ctx, loop), - new_ir_label(ctx, join)))))); - - pop_ir_loop(ctx); - - return new_ir_seq(ctx, retval, build_ir_stmt(ctx, ast->next)); -} // build_ir_whilestmt - -static MOJOSHADER_irStatement *build_ir_dostmt(Context *ctx, - const MOJOSHADER_astDoStatement *ast) -{ - // !!! FIXME: ast->unroll - - assert(ast->expr->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - - /* The gist... - loop: - statement - cjump expr == true, loop, join - join: - */ - - const LoopLabels *labels = push_ir_loop(ctx, 0); - if (labels == NULL) - return NULL; // out of memory... - - const int loop = labels->start; - const int join = labels->end; - - MOJOSHADER_irStatement *retval = - new_ir_seq(ctx, new_ir_label(ctx, loop), - new_ir_seq(ctx, build_ir_stmt(ctx, ast->statement), - new_ir_seq(ctx, new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, ast->expr), new_ir_constbool(ctx, 1), loop, join), - new_ir_label(ctx, join)))); - - pop_ir_loop(ctx); - - return new_ir_seq(ctx, retval, build_ir_stmt(ctx, ast->next)); -} // build_ir_dostmt - -static MOJOSHADER_irStatement *build_ir_switch(Context *ctx, const MOJOSHADER_astSwitchStatement *ast) -{ - // Dithering down to a list of if-statements in all cases - // isn't ideal, but we can't do jumptables in D3D bytecode. - - // !!! FIXME: attributes? - - /* The gist... - move tmp, expr - cjump tmp == case1expr, case1, testcase2 - testcase2: // etc - cjump tmp == case2expr, case2, join - case1: - case1stmt // might have a break in it somewhere. - case2: - case2stmt - join: - */ - - const LoopLabels *labels = push_ir_loop(ctx, 1); - if (labels == NULL) - return NULL; // out of memory... - - const int join = labels->end; - const int elems = datatype_elems(ctx, ast->expr->datatype); - const MOJOSHADER_astDataTypeType dt = datatype_base(ctx, ast->expr->datatype)->type; - - const MOJOSHADER_astSwitchCases *cases = ast->cases; - const int tmp = generate_ir_temp(ctx); - MOJOSHADER_irStatement *startseqs = new_ir_move(ctx, new_ir_temp(ctx, tmp, dt, elems), build_ir_expr(ctx, ast->expr), -1); - MOJOSHADER_irStatement *testseqs = startseqs; - MOJOSHADER_irStatement *startcaseseqs = NULL; - MOJOSHADER_irStatement *caseseqs = NULL; - while (cases) - { - const int t = generate_ir_label(ctx); - const int f = (cases->next == NULL) ? join : generate_ir_label(ctx); - MOJOSHADER_irStatement *cjump = new_ir_cjump(ctx, MOJOSHADER_IR_COND_EQL, build_ir_expr(ctx, cases->expr), new_ir_temp(ctx, tmp, dt, elems), t, f); - - if (cases->next == NULL) // last one, do the join label. - { - testseqs = new_ir_seq(ctx, testseqs, cjump); - caseseqs = new_ir_seq(ctx, caseseqs, new_ir_seq(ctx, new_ir_label(ctx, t), build_ir_stmt(ctx, cases->statement))); - caseseqs = new_ir_seq(ctx, caseseqs, new_ir_label(ctx, f)); - } // if - else - { - testseqs = new_ir_seq(ctx, testseqs, new_ir_seq(ctx, cjump, new_ir_label(ctx, f))); - caseseqs = new_ir_seq(ctx, caseseqs, new_ir_seq(ctx, new_ir_label(ctx, t), build_ir_stmt(ctx, cases->statement))); - } // else - - if (startcaseseqs == NULL) - startcaseseqs = caseseqs; - - cases = cases->next; - } // while - - pop_ir_loop(ctx); - - return new_ir_seq(ctx, startseqs, new_ir_seq(ctx, startcaseseqs, build_ir_stmt(ctx, ast->next))); -} // build_ir_switch - -static MOJOSHADER_irExpression *build_ir_increxpr(Context *ctx, const MOJOSHADER_astDataType *_dt, - const int val) -{ - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, _dt); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - MOJOSHADER_irConstant *retval = (MOJOSHADER_irConstant *) new_ir_constant(ctx, type, elems); - int i; - - switch (type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: - case MOJOSHADER_AST_DATATYPE_INT: - case MOJOSHADER_AST_DATATYPE_UINT: - for (i = 0; i < elems; i++) - retval->value.ival[i] = (int) val; - break; - - case MOJOSHADER_AST_DATATYPE_FLOAT: - case MOJOSHADER_AST_DATATYPE_FLOAT_SNORM: - case MOJOSHADER_AST_DATATYPE_FLOAT_UNORM: - case MOJOSHADER_AST_DATATYPE_HALF: - case MOJOSHADER_AST_DATATYPE_DOUBLE: - for (i = 0; i < elems; i++) - retval->value.fval[i] = (float) val; - break; - - default: - assert(0 && "Semantic analysis should have caught this!"); - } // switch - - return (MOJOSHADER_irExpression *) retval; -} // build_ir_increxpr - -static MOJOSHADER_irExpression *build_ir_preincdec(Context *ctx, MOJOSHADER_astExpressionUnary *ast, const MOJOSHADER_irBinOpType binop) -{ - /* The gist... - move expr, expr + 1 - return expr - */ - // !!! FIXME: can you writemask an increment operator? - MOJOSHADER_irExpression *constant = build_ir_increxpr(ctx, ast->datatype, 1); - return new_ir_eseq(ctx, - new_ir_move(ctx, - build_ir_expr(ctx, ast->operand), - new_ir_binop(ctx, binop, build_ir_expr(ctx, ast->operand), constant), -1), - build_ir_expr(ctx, ast->operand)); -} // build_ir_preincdec - -static MOJOSHADER_irExpression *build_ir_postincdec(Context *ctx, MOJOSHADER_astExpressionUnary *ast, const MOJOSHADER_irBinOpType binop) -{ - /* The gist... - move tmp, expr - move expr, expr + 1 - return tmp - */ - - // !!! FIXME: can you writemask an increment operator? - MOJOSHADER_irExpression *constant = build_ir_increxpr(ctx, ast->datatype, 1); - const int tmp = generate_ir_temp(ctx); - return new_ir_eseq(ctx, - new_ir_seq(ctx, - new_ir_move(ctx, new_ir_temp(ctx, tmp, constant->info.type, constant->info.elements), build_ir_expr(ctx, ast->operand), -1), - new_ir_move(ctx, build_ir_expr(ctx, ast->operand), - new_ir_binop(ctx, binop, build_ir_expr(ctx, ast->operand), constant), -1)), - new_ir_temp(ctx, tmp, constant->info.type, constant->info.elements)); -} // build_ir_postincdec - -static MOJOSHADER_irExpression *build_ir_convert(Context *ctx, const MOJOSHADER_astExpressionCast *ast) -{ - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - return new_ir_convert(ctx, build_ir_expr(ctx, ast->operand), type, elems); -} // build_ir_convert - -static MOJOSHADER_irExprList *build_ir_exprlist(Context *ctx, MOJOSHADER_astArguments *args) -{ - MOJOSHADER_irExprList *retval = NULL; - MOJOSHADER_irExprList *prev = NULL; - - while (args != NULL) - { - assert((retval && prev) || ((!retval) && (!prev))); - - MOJOSHADER_irExprList *item = new_ir_exprlist(ctx, build_ir_expr(ctx, args->argument)); - if (prev == NULL) - prev = retval = item; - else - prev->next = item; - - args = args->next; - } // while - - return retval; -} // build_ir_exprlist - -static MOJOSHADER_irExpression *build_ir_constructor(Context *ctx, const MOJOSHADER_astExpressionConstructor *ast) -{ - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - assert(elems <= 16); // just in case (matrix4x4 constructor is largest). - return new_ir_construct(ctx, build_ir_exprlist(ctx, ast->args), type, elems); -} // build_ir_constructor - -static MOJOSHADER_irExpression *build_ir_call(Context *ctx, const MOJOSHADER_astExpressionCallFunction *ast) -{ - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - return new_ir_call(ctx, ast->identifier->index, build_ir_exprlist(ctx, ast->args), type, elems); -} // build_ir_call - -static char swiz_to_channel(const char swiz) -{ - if ((swiz == 'r') || (swiz == 'x')) return 0; - if ((swiz == 'g') || (swiz == 'y')) return 1; - if ((swiz == 'b') || (swiz == 'z')) return 2; - if ((swiz == 'a') || (swiz == 'w')) return 3; - assert(0 && "Should have been caught by semantic analysis."); - return 0; -} // swiz_to_channel - -static MOJOSHADER_irExpression *build_ir_swizzle(Context *ctx, const MOJOSHADER_astExpressionDerefStruct *ast) -{ - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - char chans[4] = { 0, 0, 0, 0 }; - const char *swizstr = ast->member; - int i; - - for (i = 0; swizstr[i]; i++) - chans[i] = swiz_to_channel(swizstr[i]); - - return new_ir_swizzle(ctx, build_ir_expr(ctx, ast->identifier), chans, type, elems); -} // build_ir_swizzle - -static MOJOSHADER_irExpression *build_ir_identifier(Context *ctx, const MOJOSHADER_astExpressionIdentifier *ast) -{ - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - return new_ir_memory(ctx, ast->index, type, elems); -} // build_ir_identifier - -static MOJOSHADER_irExpression *build_ir_derefstruct(Context *ctx, const MOJOSHADER_astExpressionDerefStruct *ast) -{ - // There are only three possible IR nodes that contain a struct: - // an irTemp, an irMemory, or an irESeq that results in a temp or memory. - // As such, we figure out which it is, and offset appropriately for the - // member. - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - MOJOSHADER_irExpression *expr = build_ir_expr(ctx, ast->identifier); - MOJOSHADER_irExpression *finalexpr = expr; - - if (expr == NULL) - return NULL; - - assert(!ast->isswizzle); - - while (finalexpr->ir.type == MOJOSHADER_IR_ESEQ) - finalexpr = finalexpr->eseq.expr; - - if (finalexpr->ir.type == MOJOSHADER_IR_TEMP) - finalexpr->temp.index += ast->member_index; - else if (finalexpr->ir.type == MOJOSHADER_IR_MEMORY) - finalexpr->memory.index += ast->member_index; - else - assert(0 && "Unexpected condition"); - - // Replace the struct type with the type of the member. - expr->info.type = type; - expr->info.elements = elems; - - return expr; -} // build_ir_derefstruct - -static MOJOSHADER_irExpression *build_ir_derefarray(Context *ctx, const MOJOSHADER_astExpressionBinary *ast) -{ - // In most compilers, arrays dither down to offsets into memory, but - // they're somewhat special in D3D, since they might have to deal with - // vectors, etc...so we keep them as first-class citizens of the IR, - // and let the optimizer/codegen sort it out. - // !!! FIXME: this might be the wrong move. Maybe remove this IR node type? - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - - // !!! FIXME: Array dereference of a vector can become a simple swizzle operation, if we have a constant index. - // !!! FIXME: Matrix dereference of a vector can become a simple reference to a temp/memory, if we have a constant index. - return new_ir_array(ctx, build_ir_expr(ctx, ast->left), build_ir_expr(ctx, ast->right), type, elems); -} // build_ir_derefarray - -static MOJOSHADER_irExpression *build_ir_assign_binop(Context *ctx, - const MOJOSHADER_irBinOpType op, - const MOJOSHADER_astExpressionBinary *ast) -{ - MOJOSHADER_irExpression *lvalue = build_ir_expr(ctx, ast->left); - MOJOSHADER_irExpression *rvalue = build_ir_expr(ctx, ast->right); - const MOJOSHADER_astDataTypeType type = lvalue->info.type; - const int elems = lvalue->info.elements; - const int tmp = generate_ir_temp(ctx); - - // Semantic analysis should have inserted casts if necessary. - assert(type == rvalue->info.type); - assert(elems == rvalue->info.elements); - - // The destination must eventually be lvalue, which means memory or temp. - MOJOSHADER_irExpression *dst = lvalue; - while (dst->ir.type == MOJOSHADER_IR_ESEQ) - dst = dst->eseq.expr; - - if (dst->ir.type == MOJOSHADER_IR_TEMP) - dst = new_ir_temp(ctx, dst->temp.index, dst->info.type, dst->info.elements); - else if (dst->ir.type == MOJOSHADER_IR_MEMORY) - dst = new_ir_memory(ctx, dst->memory.index, dst->info.type, dst->info.elements); - else - assert(0 && "Unexpected condition"); - - // !!! FIXME: write masking! - return new_ir_eseq(ctx, - new_ir_seq(ctx, - new_ir_move(ctx, new_ir_temp(ctx, tmp, type, elems), new_ir_binop(ctx, op, lvalue, rvalue), -1), - new_ir_move(ctx, dst, new_ir_temp(ctx, tmp, type, elems), -1)), - new_ir_temp(ctx, tmp, type, elems)); -} // build_ir_assign_binop - -static MOJOSHADER_irExpression *build_ir_assign(Context *ctx, - const MOJOSHADER_astExpressionBinary *ast) -{ - MOJOSHADER_irExpression *lvalue = build_ir_expr(ctx, ast->left); - MOJOSHADER_irExpression *rvalue = build_ir_expr(ctx, ast->right); - const MOJOSHADER_astDataTypeType type = lvalue->info.type; - const int elems = lvalue->info.elements; - const int tmp = generate_ir_temp(ctx); - - // Semantic analysis should have inserted casts if necessary. - assert(type == rvalue->info.type); - assert(elems == rvalue->info.elements); - - // !!! FIXME: write masking! - // !!! FIXME: whole array/struct assignments need to become a sequence of moves. - return new_ir_eseq(ctx, - new_ir_seq(ctx, - new_ir_move(ctx, new_ir_temp(ctx, tmp, type, elems), rvalue, -1), - new_ir_move(ctx, lvalue, new_ir_temp(ctx, tmp, type, elems), -1)), - new_ir_temp(ctx, tmp, type, elems)); -} // build_ir_assign - - -// The AST must be perfect and normalized and sane here. If there are any -// strange corner cases, you should strive to handle them in semantic -// analysis, so conversion to IR can proceed with a minimum of drama. -static void *build_ir_internal(Context *ctx, void *_ast); -static inline MOJOSHADER_irNode *build_ir(Context *ctx, void *_ast) -{ - return (MOJOSHADER_irNode *) build_ir_internal(ctx, _ast); -} // build_ir - -static void *build_ir_internal(Context *ctx, void *_ast) -{ - if ((_ast == NULL) || (ctx->out_of_memory)) - return NULL; - - MOJOSHADER_astNode *ast = (MOJOSHADER_astNode *) _ast; - - // upkeep so we report correct error locations... - ctx->sourcefile = ast->ast.filename; - ctx->sourceline = ast->ast.line; - - switch (ast->ast.type) - { - case MOJOSHADER_AST_OP_PREINCREMENT: // !!! FIXME: sequence points? - return build_ir_preincdec(ctx, &ast->unary, MOJOSHADER_IR_BINOP_ADD); - - case MOJOSHADER_AST_OP_POSTINCREMENT: // !!! FIXME: sequence points? - return build_ir_postincdec(ctx, &ast->unary, MOJOSHADER_IR_BINOP_ADD); - - case MOJOSHADER_AST_OP_PREDECREMENT: // !!! FIXME: sequence points? - return build_ir_preincdec(ctx, &ast->unary, MOJOSHADER_IR_BINOP_SUBTRACT); - - case MOJOSHADER_AST_OP_POSTDECREMENT: // !!! FIXME: sequence points? - return build_ir_postincdec(ctx, &ast->unary, MOJOSHADER_IR_BINOP_SUBTRACT); - - case MOJOSHADER_AST_OP_COMPLEMENT: - return NEW_IR_BINOP(XOR, build_ir_expr(ctx, ast->unary.operand), - new_ir_constint(ctx, 0xFFFFFFFF)); - - case MOJOSHADER_AST_OP_NEGATE: // !!! FIXME: -0.0f != +0.0f - return NEW_IR_BINOP(SUBTRACT, build_ir_increxpr(ctx, ast->unary.datatype, -1), - build_ir_expr(ctx, ast->unary.operand)); - - case MOJOSHADER_AST_OP_NOT: // operand must be bool here! - assert(ast->unary.operand->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - return NEW_IR_BINOP(XOR, build_ir_expr(ctx, ast->unary.operand), - new_ir_constint(ctx, 1)); - - case MOJOSHADER_AST_OP_DEREF_ARRAY: - return build_ir_derefarray(ctx, &ast->binary); - - case MOJOSHADER_AST_OP_DEREF_STRUCT: - if (ast->derefstruct.isswizzle) - return build_ir_swizzle(ctx, &ast->derefstruct); - return build_ir_derefstruct(ctx, &ast->derefstruct); - - case MOJOSHADER_AST_OP_COMMA: - // evaluate and throw away left, return right. - return new_ir_eseq(ctx, new_ir_expr_stmt(ctx, build_ir_expr(ctx, ast->binary.left)), - build_ir_expr(ctx, ast->binary.right)); - - case MOJOSHADER_AST_OP_LESSTHAN: return EASY_IR_COMPARE(LT); - case MOJOSHADER_AST_OP_GREATERTHAN: return EASY_IR_COMPARE(GT); - case MOJOSHADER_AST_OP_LESSTHANOREQUAL: return EASY_IR_COMPARE(LEQ); - case MOJOSHADER_AST_OP_GREATERTHANOREQUAL: return EASY_IR_COMPARE(GEQ); - case MOJOSHADER_AST_OP_NOTEQUAL: return EASY_IR_COMPARE(NEQ); - case MOJOSHADER_AST_OP_EQUAL: return EASY_IR_COMPARE(EQL); - - case MOJOSHADER_AST_OP_MULTIPLY: return EASY_IR_BINOP(MULTIPLY); - case MOJOSHADER_AST_OP_DIVIDE: return EASY_IR_BINOP(DIVIDE); - case MOJOSHADER_AST_OP_MODULO: return EASY_IR_BINOP(MODULO); - case MOJOSHADER_AST_OP_ADD: return EASY_IR_BINOP(ADD); - case MOJOSHADER_AST_OP_SUBTRACT: return EASY_IR_BINOP(SUBTRACT); - case MOJOSHADER_AST_OP_LSHIFT: return EASY_IR_BINOP(LSHIFT); - case MOJOSHADER_AST_OP_RSHIFT: return EASY_IR_BINOP(RSHIFT); - case MOJOSHADER_AST_OP_BINARYAND: return EASY_IR_BINOP(AND); - case MOJOSHADER_AST_OP_BINARYXOR: return EASY_IR_BINOP(XOR); - case MOJOSHADER_AST_OP_BINARYOR: return EASY_IR_BINOP(OR); - - case MOJOSHADER_AST_OP_LOGICALAND: - return build_ir_logical_and(ctx, &ast->binary); - - case MOJOSHADER_AST_OP_LOGICALOR: - return build_ir_logical_or(ctx, &ast->binary); - - case MOJOSHADER_AST_OP_ASSIGN: - return build_ir_assign(ctx, &ast->binary); - - case MOJOSHADER_AST_OP_MULASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_MULTIPLY, &ast->binary); - case MOJOSHADER_AST_OP_DIVASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_DIVIDE, &ast->binary); - case MOJOSHADER_AST_OP_MODASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_MODULO, &ast->binary); - case MOJOSHADER_AST_OP_ADDASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_ADD, &ast->binary); - case MOJOSHADER_AST_OP_SUBASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_SUBTRACT, &ast->binary); - case MOJOSHADER_AST_OP_LSHIFTASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_LSHIFT, &ast->binary); - case MOJOSHADER_AST_OP_RSHIFTASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_RSHIFT, &ast->binary); - case MOJOSHADER_AST_OP_ANDASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_AND, &ast->binary); - case MOJOSHADER_AST_OP_XORASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_XOR, &ast->binary); - case MOJOSHADER_AST_OP_ORASSIGN: return build_ir_assign_binop(ctx, MOJOSHADER_IR_BINOP_OR, &ast->binary); - - case MOJOSHADER_AST_OP_CONDITIONAL: - assert(ast->binary.left->datatype->type == MOJOSHADER_AST_DATATYPE_BOOL); - return build_ir_compare(ctx, MOJOSHADER_IR_COND_EQL, - build_ir_expr(ctx, ast->ternary.left), - new_ir_constbool(ctx, 1), - build_ir_expr(ctx, ast->ternary.center), - build_ir_expr(ctx, ast->ternary.right)); - - case MOJOSHADER_AST_OP_IDENTIFIER: - return build_ir_identifier(ctx, &ast->identifier); - - case MOJOSHADER_AST_OP_INT_LITERAL: - return new_ir_constint(ctx, ast->intliteral.value); - - case MOJOSHADER_AST_OP_FLOAT_LITERAL: - return new_ir_constfloat(ctx, ast->floatliteral.value); - - case MOJOSHADER_AST_OP_BOOLEAN_LITERAL: - return new_ir_constbool(ctx, ast->boolliteral.value); - - case MOJOSHADER_AST_OP_CALLFUNC: - return build_ir_call(ctx, &ast->callfunc); - - case MOJOSHADER_AST_OP_CONSTRUCTOR: - return build_ir_constructor(ctx, &ast->constructor); - - case MOJOSHADER_AST_OP_CAST: - return build_ir_convert(ctx, &ast->cast); - - case MOJOSHADER_AST_STATEMENT_BREAK: - { - const LoopLabels *labels = ctx->ir_loop; - assert(labels != NULL); // semantic analysis should catch this. - return new_ir_jump(ctx, labels->end); - } // case - - case MOJOSHADER_AST_STATEMENT_CONTINUE: - { - const LoopLabels *labels = ctx->ir_loop; - assert(labels != NULL); // semantic analysis should catch this. - return new_ir_jump(ctx, labels->start); - } // case - - case MOJOSHADER_AST_STATEMENT_DISCARD: - return new_ir_seq(ctx, new_ir_discard(ctx), build_ir_stmt(ctx, ast->discardstmt.next)); - - case MOJOSHADER_AST_STATEMENT_EMPTY: - return build_ir(ctx, ast->stmt.next); // skip it, do next thing. - - case MOJOSHADER_AST_STATEMENT_EXPRESSION: - return new_ir_seq(ctx, new_ir_expr_stmt(ctx, build_ir_expr(ctx, ast->exprstmt.expr)), build_ir_stmt(ctx, ast->exprstmt.next)); - - case MOJOSHADER_AST_STATEMENT_IF: - return build_ir_ifstmt(ctx, &ast->ifstmt); - - case MOJOSHADER_AST_STATEMENT_TYPEDEF: // ignore this, move on. - return build_ir(ctx, ast->typedefstmt.next); - - case MOJOSHADER_AST_STATEMENT_SWITCH: - return build_ir_switch(ctx, &ast->switchstmt); - - case MOJOSHADER_AST_STATEMENT_STRUCT: // ignore this, move on. - return build_ir(ctx, ast->structstmt.next); - - case MOJOSHADER_AST_STATEMENT_VARDECL: // ignore this, move on. - return build_ir(ctx, ast->vardeclstmt.next); - - case MOJOSHADER_AST_STATEMENT_BLOCK: - return new_ir_seq(ctx, build_ir_stmt(ctx, ast->blockstmt.statements), build_ir_stmt(ctx, ast->blockstmt.next)); - - case MOJOSHADER_AST_STATEMENT_FOR: - return build_ir_forstmt(ctx, &ast->forstmt); - - case MOJOSHADER_AST_STATEMENT_DO: - return build_ir_dostmt(ctx, &ast->dostmt); - - case MOJOSHADER_AST_STATEMENT_WHILE: - return build_ir_whilestmt(ctx, &ast->whilestmt); - - case MOJOSHADER_AST_STATEMENT_RETURN: - { - const int label = ctx->ir_end; - assert(label >= 0); // parser should have caught this! - MOJOSHADER_irStatement *retval = NULL; - if (ast->returnstmt.expr != NULL) - { - // !!! FIXME: whole array/struct returns need to move more into the temp. - const MOJOSHADER_astDataType *dt = reduce_datatype(ctx, ast->returnstmt.expr->datatype); - const MOJOSHADER_astDataTypeType type = datatype_base(ctx, dt)->type; - const int elems = datatype_elems(ctx, dt); - assert(ctx->ir_ret >= 0); - retval = new_ir_move(ctx, new_ir_temp(ctx, ctx->ir_ret, type, elems), build_ir_expr(ctx, ast->returnstmt.expr), -1); - } // if - return new_ir_seq(ctx, retval, new_ir_jump(ctx, label)); - } // case - - case MOJOSHADER_AST_COMPUNIT_TYPEDEF: - case MOJOSHADER_AST_COMPUNIT_STRUCT: - case MOJOSHADER_AST_COMPUNIT_VARIABLE: - case MOJOSHADER_AST_COMPUNIT_FUNCTION: - case MOJOSHADER_AST_ARGUMENTS: - case MOJOSHADER_AST_OP_STRING_LITERAL: - case MOJOSHADER_AST_SWITCH_CASE: - case MOJOSHADER_AST_SCALAR_OR_ARRAY: - case MOJOSHADER_AST_TYPEDEF: - case MOJOSHADER_AST_FUNCTION_PARAMS: - case MOJOSHADER_AST_FUNCTION_SIGNATURE: - case MOJOSHADER_AST_STRUCT_DECLARATION: - case MOJOSHADER_AST_STRUCT_MEMBER: - case MOJOSHADER_AST_VARIABLE_DECLARATION: - case MOJOSHADER_AST_ANNOTATION: - case MOJOSHADER_AST_PACK_OFFSET: - case MOJOSHADER_AST_VARIABLE_LOWLEVEL: - assert(0 && "Shouldn't hit this in build_ir."); - return NULL; - - default: - assert(0 && "unexpected type"); - return NULL; - } // switch -} // build_ir - -static void print_ir(FILE *io, unsigned int depth, void *_ir) -{ - MOJOSHADER_irNode *ir = (MOJOSHADER_irNode *) _ir; - if (ir == NULL) - return; - - const char *fname = strrchr(ir->ir.filename, '/'); - if (fname != NULL) - fname++; - else - { - fname = strrchr(ir->ir.filename, '\\'); - if (fname != NULL) - fname++; - else - fname = ir->ir.filename; - } // else - - int i; - for (i = 0; i < depth; i++) - fprintf(io, " "); - depth++; - - fprintf(io, "[ %s:%d ", fname, ir->ir.line); - - switch (ir->ir.type) - { - case MOJOSHADER_IR_LABEL: - fprintf(io, "LABEL %d ]\n", ir->stmt.label.index); - break; - - case MOJOSHADER_IR_CONSTANT: - fprintf(io, "CONSTANT "); - switch (ir->expr.constant.info.type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: - case MOJOSHADER_AST_DATATYPE_INT: - case MOJOSHADER_AST_DATATYPE_UINT: - for (i = 0; i < ir->expr.constant.info.elements-1; i++) - fprintf(io, "%d, ", ir->expr.constant.value.ival[i]); - if (ir->expr.constant.info.elements > 0) - fprintf(io, "%d", ir->expr.constant.value.ival[i]); - break; - - case MOJOSHADER_AST_DATATYPE_FLOAT: - case MOJOSHADER_AST_DATATYPE_FLOAT_SNORM: - case MOJOSHADER_AST_DATATYPE_FLOAT_UNORM: - case MOJOSHADER_AST_DATATYPE_HALF: - case MOJOSHADER_AST_DATATYPE_DOUBLE: - for (i = 0; i < ir->expr.constant.info.elements-1; i++) - fprintf(io, "%ff, ", ir->expr.constant.value.fval[i]); - if (ir->expr.constant.info.elements > 0) - fprintf(io, "%ff", ir->expr.constant.value.fval[i]); - break; - - default: assert(0 && "shouldn't happen"); - } // switch - fprintf(io, " ]\n"); - break; - - case MOJOSHADER_IR_TEMP: - fprintf(io, "TEMP %d ]\n", ir->expr.temp.index); - break; - - case MOJOSHADER_IR_DISCARD: - fprintf(io, "DISCARD ]\n"); - break; - - case MOJOSHADER_IR_SWIZZLE: - fprintf(io, "SWIZZLE"); - for (i = 0; i < ir->expr.swizzle.info.elements-1; i++) - fprintf(io, " %d", (int) ir->expr.swizzle.channels[i]); - fprintf(io, " ]\n"); - print_ir(io, depth, ir->expr.swizzle.expr); - break; - - case MOJOSHADER_IR_CONSTRUCT: - fprintf(io, "CONSTRUCT ]\n"); - print_ir(io, depth, ir->expr.construct.args); - break; - - case MOJOSHADER_IR_CONVERT: - fprintf(io, "CONVERT ]\n"); - print_ir(io, depth, ir->expr.convert.expr); - break; - - case MOJOSHADER_IR_BINOP: - fprintf(io, "BINOP "); - switch (ir->expr.binop.op) - { - #define PRINT_IR_BINOP(x) \ - case MOJOSHADER_IR_BINOP_##x: fprintf(io, #x); break; - PRINT_IR_BINOP(ADD) - PRINT_IR_BINOP(SUBTRACT) - PRINT_IR_BINOP(MULTIPLY) - PRINT_IR_BINOP(DIVIDE) - PRINT_IR_BINOP(MODULO) - PRINT_IR_BINOP(AND) - PRINT_IR_BINOP(OR) - PRINT_IR_BINOP(XOR) - PRINT_IR_BINOP(LSHIFT) - PRINT_IR_BINOP(RSHIFT) - PRINT_IR_BINOP(UNKNOWN) - #undef PRINT_IR_BINOP - default: assert(0 && "unexpected case"); break; - } // switch - fprintf(io, " ]\n"); - print_ir(io, depth, ir->expr.binop.left); - print_ir(io, depth, ir->expr.binop.right); - break; - - case MOJOSHADER_IR_MEMORY: - fprintf(io, "MEMORY %d ]\n", ir->expr.memory.index); - break; - - case MOJOSHADER_IR_CALL: - fprintf(io, "CALL %d ]\n", ir->expr.call.index); - print_ir(io, depth, ir->expr.call.args); - break; - - case MOJOSHADER_IR_ESEQ: - fprintf(io, "ESEQ ]\n"); - print_ir(io, depth, ir->expr.eseq.stmt); - break; - - case MOJOSHADER_IR_ARRAY: - fprintf(io, "ARRAY ]\n"); - print_ir(io, depth, ir->expr.array.array); - print_ir(io, depth, ir->expr.array.element); - break; - - case MOJOSHADER_IR_MOVE: - fprintf(io, "MOVE ]\n"); - print_ir(io, depth, ir->stmt.move.dst); - print_ir(io, depth, ir->stmt.move.src); - break; - - case MOJOSHADER_IR_EXPR_STMT: - fprintf(io, "EXPRSTMT ]\n"); - print_ir(io, depth, ir->stmt.expr.expr); - break; - - case MOJOSHADER_IR_JUMP: - fprintf(io, "JUMP %d ]\n", ir->stmt.jump.label); - break; - - case MOJOSHADER_IR_CJUMP: - fprintf(io, "CJUMP "); - switch (ir->stmt.cjump.cond) - { - #define PRINT_IR_COND(x) \ - case MOJOSHADER_IR_COND_##x: fprintf(io, #x); break; - PRINT_IR_COND(EQL) - PRINT_IR_COND(NEQ) - PRINT_IR_COND(LT) - PRINT_IR_COND(GT) - PRINT_IR_COND(LEQ) - PRINT_IR_COND(GEQ) - PRINT_IR_COND(UNKNOWN) - #undef PRINT_IR_COND - default: assert(0 && "unexpected case"); break; - } // switch - fprintf(io, " %d %d ]\n", ir->stmt.cjump.iftrue, ir->stmt.cjump.iffalse); - print_ir(io, depth, ir->stmt.cjump.left); - print_ir(io, depth, ir->stmt.cjump.right); - break; - - case MOJOSHADER_IR_SEQ: - fprintf(io, "SEQ ]\n"); - print_ir(io, depth, ir->stmt.seq.first); - print_ir(io, depth, ir->stmt.seq.next); // !!! FIXME: don't recurse? - break; - - case MOJOSHADER_IR_EXPRLIST: - fprintf(io, "EXPRLIST ]\n"); - print_ir(io, depth, ir->misc.exprlist.expr); - print_ir(io, depth, ir->misc.exprlist.next); // !!! FIXME: don't recurse? - break; - - default: assert(0 && "unexpected IR node"); break; - } // switch -} // print_ir - -static void print_whole_ir(Context *ctx, FILE *io) -{ - if (ctx->ir != NULL) - { - int i; - for (i = 0; i <= ctx->user_func_index; i++) - { - printf("[FUNCTION %d ]\n", i); - print_ir(io, 1, ctx->ir[i]); - } // for - } // if -} // print_whole_ir - -static void delete_ir(Context *ctx, void *_ir) -{ - MOJOSHADER_irNode *ir = (MOJOSHADER_irNode *) _ir; - if (ir == NULL) - return; - - switch (ir->ir.type) - { - case MOJOSHADER_IR_JUMP: - case MOJOSHADER_IR_LABEL: - case MOJOSHADER_IR_CONSTANT: - case MOJOSHADER_IR_TEMP: - case MOJOSHADER_IR_DISCARD: - case MOJOSHADER_IR_MEMORY: - break; // nothing extra to free here. - - case MOJOSHADER_IR_BINOP: - delete_ir(ctx, ir->expr.binop.left); - delete_ir(ctx, ir->expr.binop.right); - break; - - case MOJOSHADER_IR_CALL: - delete_ir(ctx, ir->expr.call.args); - break; - - case MOJOSHADER_IR_ESEQ: - delete_ir(ctx, ir->expr.eseq.stmt); - delete_ir(ctx, ir->expr.eseq.expr); - break; - - case MOJOSHADER_IR_ARRAY: - delete_ir(ctx, ir->expr.array.array); - delete_ir(ctx, ir->expr.array.element); - break; - - case MOJOSHADER_IR_MOVE: - delete_ir(ctx, ir->stmt.move.dst); - delete_ir(ctx, ir->stmt.move.src); - break; - - case MOJOSHADER_IR_EXPR_STMT: - delete_ir(ctx, ir->stmt.expr.expr); - break; - - case MOJOSHADER_IR_CJUMP: - delete_ir(ctx, ir->stmt.cjump.left); - delete_ir(ctx, ir->stmt.cjump.right); - break; - - case MOJOSHADER_IR_SEQ: - delete_ir(ctx, ir->stmt.seq.first); - delete_ir(ctx, ir->stmt.seq.next); // !!! FIXME: don't recurse? - break; - - case MOJOSHADER_IR_EXPRLIST: - delete_ir(ctx, ir->misc.exprlist.expr); - delete_ir(ctx, ir->misc.exprlist.next); // !!! FIXME: don't recurse? - break; - - case MOJOSHADER_IR_SWIZZLE: - delete_ir(ctx, ir->expr.swizzle.expr); - break; - - case MOJOSHADER_IR_CONSTRUCT: - delete_ir(ctx, ir->expr.construct.args); - break; - - case MOJOSHADER_IR_CONVERT: - delete_ir(ctx, ir->expr.convert.expr); - break; - - default: assert(0 && "unexpected IR node"); break; - } // switch - - Free(ctx, ir); -} // delete_ir - -static void intermediate_representation(Context *ctx) -{ - const MOJOSHADER_astCompilationUnit *ast = NULL; - const MOJOSHADER_astCompilationUnitFunction *astfn = NULL; - const size_t arraylen = (ctx->user_func_index+1) * sizeof (MOJOSHADER_irStatement *); - - ctx->ir = Malloc(ctx, arraylen); - if (ctx->ir == NULL) - return; - memset(ctx->ir, '\0', arraylen); - - ctx->ir_end = -1; - ctx->ir_ret = -1; - - for (ast = &ctx->ast->compunit; ast != NULL; ast = ast->next) - { - assert(ast->ast.type > MOJOSHADER_AST_COMPUNIT_START_RANGE); - assert(ast->ast.type < MOJOSHADER_AST_COMPUNIT_END_RANGE); - if (ast->ast.type != MOJOSHADER_AST_COMPUNIT_FUNCTION) - continue; // only care about functions right now. - - astfn = (MOJOSHADER_astCompilationUnitFunction *) ast; - if (astfn->definition == NULL) // just a predeclare; skip. - continue; - - assert(ctx->ir_loop == NULL); // parser should have caught this! - assert(ctx->ir_end < 0); // parser should have caught this! - assert(ctx->ir_ret < 0); // parser should have caught this! - const int start = generate_ir_label(ctx); // !!! FIXME: store somewhere. - const int end = generate_ir_label(ctx); - ctx->ir_end = end; - - if (astfn->declaration->datatype != NULL) - ctx->ir_ret = generate_ir_temp(ctx); - - MOJOSHADER_irStatement *funcseq = new_ir_seq(ctx, new_ir_label(ctx, start), build_ir_stmt(ctx, astfn->definition)); - funcseq = new_ir_seq(ctx, funcseq, new_ir_label(ctx, end)); - assert(ctx->ir_loop == NULL); // parser should have caught this! - ctx->ir_end = -1; - ctx->ir_ret = -1; - - assert(astfn->index <= ctx->user_func_index); - assert(ctx->ir[astfn->index] == NULL); - ctx->ir[astfn->index] = funcseq; - } // for - - print_whole_ir(ctx, stdout); - - // done with the AST, nuke it. - // !!! FIXME: we're going to need CTAB data from this at some point. - delete_compilation_unit(ctx, (MOJOSHADER_astCompilationUnit *) ctx->ast); - ctx->ast = NULL; -} // intermediate_representation - - - -static MOJOSHADER_astData MOJOSHADER_out_of_mem_ast_data = { - 1, &MOJOSHADER_out_of_mem_error, 0, 0, 0, 0, 0, 0 -}; - - -// !!! FIXME: cut and paste from assembler. -static const MOJOSHADER_astData *build_failed_ast(Context *ctx) -{ - assert(isfail(ctx)); - - if (ctx->out_of_memory) - return &MOJOSHADER_out_of_mem_ast_data; - - MOJOSHADER_astData *retval = NULL; - retval = (MOJOSHADER_astData *) Malloc(ctx, sizeof (MOJOSHADER_astData)); - if (retval == NULL) - return &MOJOSHADER_out_of_mem_ast_data; - - memset(retval, '\0', sizeof (MOJOSHADER_astData)); - retval->source_profile = ctx->source_profile; - retval->malloc = (ctx->malloc == MOJOSHADER_internal_malloc) ? NULL : ctx->malloc; - retval->free = (ctx->free == MOJOSHADER_internal_free) ? NULL : ctx->free; - retval->malloc_data = ctx->malloc_data; - retval->error_count = errorlist_count(ctx->errors); - retval->errors = errorlist_flatten(ctx->errors); - - if (ctx->out_of_memory) - { - Free(ctx, retval); - return &MOJOSHADER_out_of_mem_ast_data; - } // if - - return retval; -} // build_failed_ast - - -static const MOJOSHADER_astData *build_astdata(Context *ctx) -{ - MOJOSHADER_astData *retval = NULL; - - if (ctx->out_of_memory) - return &MOJOSHADER_out_of_mem_ast_data; - - retval = (MOJOSHADER_astData *) Malloc(ctx, sizeof (MOJOSHADER_astData)); - if (retval == NULL) - return &MOJOSHADER_out_of_mem_ast_data; - - memset(retval, '\0', sizeof (MOJOSHADER_astData)); - retval->malloc = (ctx->malloc == MOJOSHADER_internal_malloc) ? NULL : ctx->malloc; - retval->free = (ctx->free == MOJOSHADER_internal_free) ? NULL : ctx->free; - retval->malloc_data = ctx->malloc_data; - - if (!isfail(ctx)) - { - retval->source_profile = ctx->source_profile; - retval->ast = ctx->ast; - } // if - - retval->error_count = errorlist_count(ctx->errors); - retval->errors = errorlist_flatten(ctx->errors); - if (ctx->out_of_memory) - { - Free(ctx, retval); - return &MOJOSHADER_out_of_mem_ast_data; - } // if - - retval->opaque = ctx; - - return retval; -} // build_astdata - - -static void choose_src_profile(Context *ctx, const char *srcprofile) -{ - ctx->source_profile = srcprofile; - - #define TEST_PROFILE(x) if (strcmp(srcprofile, x) == 0) { return; } - - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_VS_1_1); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_VS_2_0); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_VS_3_0); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_PS_1_1); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_PS_1_2); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_PS_1_3); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_PS_1_4); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_PS_2_0); - TEST_PROFILE(MOJOSHADER_SRC_PROFILE_HLSL_PS_3_0); - - #undef TEST_PROFILE - - fail(ctx, "Unknown profile"); -} // choose_src_profile - - -static MOJOSHADER_compileData MOJOSHADER_out_of_mem_compile_data = { - 1, &MOJOSHADER_out_of_mem_error, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - - -// !!! FIXME: cut and paste from assembler. -static const MOJOSHADER_compileData *build_failed_compile(Context *ctx) -{ - assert(isfail(ctx)); - - MOJOSHADER_compileData *retval = NULL; - retval = (MOJOSHADER_compileData *) Malloc(ctx, sizeof (MOJOSHADER_compileData)); - if (retval == NULL) - return &MOJOSHADER_out_of_mem_compile_data; - - memset(retval, '\0', sizeof (MOJOSHADER_compileData)); - retval->malloc = (ctx->malloc == MOJOSHADER_internal_malloc) ? NULL : ctx->malloc; - retval->free = (ctx->free == MOJOSHADER_internal_free) ? NULL : ctx->free; - retval->malloc_data = ctx->malloc_data; - retval->source_profile = ctx->source_profile; - retval->error_count = errorlist_count(ctx->errors); - retval->errors = errorlist_flatten(ctx->errors); - retval->warning_count = errorlist_count(ctx->warnings); - retval->warnings = errorlist_flatten(ctx->warnings); - - if (ctx->out_of_memory) // in case something failed up there. - { - MOJOSHADER_freeCompileData(retval); - return &MOJOSHADER_out_of_mem_compile_data; - } // if - - return retval; -} // build_failed_compile - - -static const MOJOSHADER_compileData *build_compiledata(Context *ctx) -{ - assert(!isfail(ctx)); - - MOJOSHADER_compileData *retval = NULL; - - retval = (MOJOSHADER_compileData *) Malloc(ctx, sizeof (MOJOSHADER_compileData)); - if (retval == NULL) - return &MOJOSHADER_out_of_mem_compile_data; - - memset(retval, '\0', sizeof (MOJOSHADER_compileData)); - retval->malloc = (ctx->malloc == MOJOSHADER_internal_malloc) ? NULL : ctx->malloc; - retval->free = (ctx->free == MOJOSHADER_internal_free) ? NULL : ctx->free; - retval->malloc_data = ctx->malloc_data; - retval->source_profile = ctx->source_profile; - - if (!isfail(ctx)) - { - // !!! FIXME: build output and output_len here. - } // if - - if (!isfail(ctx)) - { - // !!! FIXME: build symbols and symbol_count here. - } // if - - retval->error_count = errorlist_count(ctx->errors); - retval->errors = errorlist_flatten(ctx->errors); - retval->warning_count = errorlist_count(ctx->warnings); - retval->warnings = errorlist_flatten(ctx->warnings); - - if (ctx->out_of_memory) // in case something failed up there. - { - MOJOSHADER_freeCompileData(retval); - return &MOJOSHADER_out_of_mem_compile_data; - } // if - - return retval; -} // build_compiledata - - -// API entry point... - -// !!! FIXME: move this (and a lot of other things) to mojoshader_ast.c. -const MOJOSHADER_astData *MOJOSHADER_parseAst(const char *srcprofile, - const char *filename, const char *source, - unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defs, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *d) -{ - const MOJOSHADER_astData *retval = NULL; - Context *ctx = NULL; - - if ( ((m == NULL) && (f != NULL)) || ((m != NULL) && (f == NULL)) ) - return &MOJOSHADER_out_of_mem_ast_data; // supply both or neither. - - ctx = build_context(m, f, d); - if (ctx == NULL) - return &MOJOSHADER_out_of_mem_ast_data; - - choose_src_profile(ctx, srcprofile); - - if (!isfail(ctx)) - { - parse_source(ctx, filename, source, sourcelen, defs, define_count, - include_open, include_close); - } // if - - if (!isfail(ctx)) - retval = build_astdata(ctx); // ctx isn't destroyed yet! - else - { - retval = (MOJOSHADER_astData *) build_failed_ast(ctx); - destroy_context(ctx); - } // else - - return retval; -} // MOJOSHADER_parseAst - - -void MOJOSHADER_freeAstData(const MOJOSHADER_astData *_data) -{ - MOJOSHADER_astData *data = (MOJOSHADER_astData *) _data; - if ((data == NULL) || (data == &MOJOSHADER_out_of_mem_ast_data)) - return; // no-op. - - // !!! FIXME: this needs to live for deleting the stringcache and the ast. - Context *ctx = (Context *) data->opaque; - MOJOSHADER_free f = (data->free == NULL) ? MOJOSHADER_internal_free : data->free; - void *d = data->malloc_data; - int i; - - // we don't f(data->source_profile), because that's internal static data. - - for (i = 0; i < data->error_count; i++) - { - f((void *) data->errors[i].error, d); - f((void *) data->errors[i].filename, d); - } // for - f((void *) data->errors, d); - - // don't delete data->ast (it'll delete with the context). - f(data, d); - - destroy_context(ctx); // finally safe to destroy this. -} // MOJOSHADER_freeAstData - - -const MOJOSHADER_compileData *MOJOSHADER_compile(const char *srcprofile, - const char *filename, const char *source, - unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defs, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *d) -{ - // !!! FIXME: cut and paste from MOJOSHADER_parseAst(). - MOJOSHADER_compileData *retval = NULL; - Context *ctx = NULL; - - if ( ((m == NULL) && (f != NULL)) || ((m != NULL) && (f == NULL)) ) - return &MOJOSHADER_out_of_mem_compile_data; // supply both or neither. - - ctx = build_context(m, f, d); - if (ctx == NULL) - return &MOJOSHADER_out_of_mem_compile_data; - - choose_src_profile(ctx, srcprofile); - - if (!isfail(ctx)) - { - parse_source(ctx, filename, source, sourcelen, defs, define_count, - include_open, include_close); - } // if - - if (!isfail(ctx)) - semantic_analysis(ctx); - - if (!isfail(ctx)) - intermediate_representation(ctx); - - if (isfail(ctx)) - retval = (MOJOSHADER_compileData *) build_failed_compile(ctx); - else - retval = (MOJOSHADER_compileData *) build_compiledata(ctx); - - destroy_context(ctx); - return retval; -} // MOJOSHADER_compile - - -void MOJOSHADER_freeCompileData(const MOJOSHADER_compileData *_data) -{ - MOJOSHADER_compileData *data = (MOJOSHADER_compileData *) _data; - if ((data == NULL) || (data == &MOJOSHADER_out_of_mem_compile_data)) - return; // no-op. - - MOJOSHADER_free f = (data->free == NULL) ? MOJOSHADER_internal_free : data->free; - void *d = data->malloc_data; - int i; - - // we don't f(data->source_profile), because that's internal static data. - - for (i = 0; i < data->error_count; i++) - { - f((void *) data->errors[i].error, d); - f((void *) data->errors[i].filename, d); - } // for - f((void *) data->errors, d); - - for (i = 0; i < data->warning_count; i++) - { - f((void *) data->warnings[i].error, d); - f((void *) data->warnings[i].filename, d); - } // for - f((void *) data->warnings, d); - - for (i = 0; i < data->symbol_count; i++) - { - f((void *) data->symbols[i].name, d); - // !!! FIXME: this is missing stuff (including freeing substructs). - } // for - f((void *) data->symbols, d); - - f((void *) data->output, d); - f(data, d); -} // MOJOSHADER_freeCompileData - -// end of mojoshader_compiler.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_d3d11.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_d3d11.c deleted file mode 100644 index aaddd8a2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_d3d11.c +++ /dev/null @@ -1,999 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#ifdef _WIN32 -#define WIN32_LEAN_AND_MEAN 1 -#include // Include this early to avoid SDL conflicts -#endif - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#if SUPPORT_PROFILE_HLSL - -#define D3D11_NO_HELPERS -#define CINTERFACE -#define COBJMACROS -#include - -#ifndef WINAPI_FAMILY_WINRT -#define WINAPI_FAMILY_WINRT 0 -#endif -#if WINAPI_FAMILY_WINRT -#include -#elif defined(_WIN32) -#define LOAD_D3DCOMPILER LoadLibrary("d3dcompiler_47.dll") -#define UNLOAD_D3DCOMPILER(d) FreeLibrary(d) -#define LOAD_D3DCOMPILE(d) GetProcAddress(d, "D3DCompile") -#else -#if defined(__APPLE__) -#define LOAD_D3DCOMPILER dlopen("libd3dcompiler.dylib", RTLD_NOW|RTLD_LOCAL) -#else -#define LOAD_D3DCOMPILER dlopen("libd3dcompiler.so", RTLD_NOW|RTLD_LOCAL) -#endif -#define UNLOAD_D3DCOMPILER(d) dlclose(d) -#define LOAD_D3DCOMPILE(d) dlsym(d, "D3DCompile") -#endif - -// D3DCompile optimization can be overzealous and cause very visible bugs, -// so we disable it when compiling shaders to preserve correctness. -#define D3D_SKIP_OPT (1 << 2) - -/* Error state */ - -static char error_buffer[1024] = { '\0' }; - -static void set_error(const char *str) -{ - snprintf(error_buffer, sizeof (error_buffer), "%s", str); -} // set_error - -static inline void out_of_memory(void) -{ - set_error("out of memory"); -} // out_of_memory - -/* D3DCompile signature */ - -typedef HRESULT(WINAPI *PFN_D3DCOMPILE)( - LPCVOID pSrcData, - SIZE_T SrcDataSize, - LPCSTR pSourceName, - const D3D_SHADER_MACRO *pDefines, - ID3DInclude *pInclude, - LPCSTR pEntrypoint, - LPCSTR pTarget, - UINT Flags1, - UINT Flags2, - ID3DBlob **ppCode, - ID3DBlob **ppErrorMsgs -); - -/* Structs */ - -typedef struct d3d11ShaderMap -{ - void *val; - union - { - struct - { - uint64 layoutHash; - ID3D10Blob *blob; - } vertex; - struct - { - MOJOSHADER_d3d11Shader *vshader; - } pixel; - }; -} d3d11ShaderMap; - -typedef struct MOJOSHADER_d3d11Shader -{ - const MOJOSHADER_parseData *parseData; - uint32 refcount; - ID3D11Buffer *ubo; - size_t buflen; - unsigned char *constantData; - unsigned int mapCapacity; - unsigned int numMaps; - d3d11ShaderMap *shaderMaps; -} MOJOSHADER_d3d11Shader; - -// Max entries for each register file type... -#define MAX_REG_FILE_F 8192 -#define MAX_REG_FILE_I 2047 -#define MAX_REG_FILE_B 2047 - -typedef struct MOJOSHADER_d3d11Context -{ - // Allocators... - MOJOSHADER_malloc malloc_fn; - MOJOSHADER_free free_fn; - void *malloc_data; - - // The constant register files... - // !!! FIXME: Man, it kills me how much memory this takes... - // !!! FIXME: ... make this dynamically allocated on demand. - float vs_reg_file_f[MAX_REG_FILE_F * 4]; - int vs_reg_file_i[MAX_REG_FILE_I * 4]; - uint8 vs_reg_file_b[MAX_REG_FILE_B]; - float ps_reg_file_f[MAX_REG_FILE_F * 4]; - int ps_reg_file_i[MAX_REG_FILE_I * 4]; - uint8 ps_reg_file_b[MAX_REG_FILE_B]; - - // Pointer to the active ID3D11Device. - ID3D11Device *device; - - // Pointer to the ID3D11DeviceContext. - ID3D11DeviceContext *deviceContext; - - // Currently bound vertex and pixel shaders. - MOJOSHADER_d3d11Shader *vertexShader; - MOJOSHADER_d3d11Shader *pixelShader; - int vertexNeedsBound; - int pixelNeedsBound; - - // D3DCompile function pointer. - PFN_D3DCOMPILE D3DCompileFunc; -#if !WINAPI_FAMILY_WINRT - HMODULE d3dcompilerDLL; -#endif -} MOJOSHADER_d3d11Context; - -/* Uniform buffer utilities */ - -static inline int next_highest_alignment(int n) -{ - const int align = 16; - return align * ((n + align - 1) / align); -} // next_highest_alignment - -static inline void *get_uniform_buffer(MOJOSHADER_d3d11Shader *shader) -{ - return (shader == NULL || shader->ubo == NULL) ? NULL : shader->ubo; -} // get_uniform_buffer - -static void update_uniform_buffer( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader *shader -) { - int i, j; - float *regF; int *regI; uint8 *regB; - int needsUpdate; - size_t offset; - int idx; - int arrayCount; - void *src, *dst; - size_t size; - int *vecDst; - - if (shader == NULL || shader->ubo == NULL) - return; - - if (shader->parseData->shader_type == MOJOSHADER_TYPE_VERTEX) - { - regF = ctx->vs_reg_file_f; - regI = ctx->vs_reg_file_i; - regB = ctx->vs_reg_file_b; - } // if - else - { - regF = ctx->ps_reg_file_f; - regI = ctx->ps_reg_file_i; - regB = ctx->ps_reg_file_b; - } // else - - // Update the buffer contents - needsUpdate = 0; - offset = 0; - for (i = 0; i < shader->parseData->uniform_count; i++) - { - if (shader->parseData->uniforms[i].constant) - continue; - - idx = shader->parseData->uniforms[i].index; - arrayCount = shader->parseData->uniforms[i].array_count; - - src = NULL; - dst = NULL; - size = arrayCount ? (arrayCount * 16) : 16; - - switch (shader->parseData->uniforms[i].type) - { - case MOJOSHADER_UNIFORM_FLOAT: - src = ®F[4 * idx]; - dst = shader->constantData + offset; - break; - - case MOJOSHADER_UNIFORM_INT: - src = ®I[4 * idx]; - dst = shader->constantData + offset; - break; - - case MOJOSHADER_UNIFORM_BOOL: - // bool registers are a whole other mess, thanks to alignment. - // The bool field is an int4 in HLSL 4+, so we have to cast the - // bool to an int, then skip 3 ints. Super efficient, right? - vecDst = (int*) (shader->constantData + offset); - j = 0; - do - { - if (vecDst[j * 4] != regB[idx + j]) - { - needsUpdate = 1; - vecDst[j * 4] = regB[idx + j]; - } // if - } while (++j < arrayCount); - - offset += size; - continue; // Skip the rest, do NOT break! - - default: - assert(0); // This should never happen. - break; - } // switch - - if (memcmp(dst, src, size) != 0) - { - memcpy(dst, src, size); - needsUpdate = 1; - } // if - - offset += size; - } // for - - if (needsUpdate) - { - // Map the buffer - D3D11_MAPPED_SUBRESOURCE res; - ID3D11DeviceContext_Map((ID3D11DeviceContext*) ctx->deviceContext, - (ID3D11Resource*) shader->ubo, 0, - D3D11_MAP_WRITE_DISCARD, 0, &res); - - // Copy the contents - memcpy(res.pData, shader->constantData, shader->buflen); - - // Unmap the buffer - ID3D11DeviceContext_Unmap( - (ID3D11DeviceContext*) ctx->deviceContext, - (ID3D11Resource*) shader->ubo, - 0 - ); - } // if -} // update_uniform_buffer - -static inline void expand_map( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader *shader -) { - if (shader->numMaps == shader->mapCapacity) - { - d3d11ShaderMap *newMap = (d3d11ShaderMap *) ctx->malloc_fn( - sizeof(d3d11ShaderMap) * shader->mapCapacity * 2, - ctx->malloc_data - ); - memcpy(newMap, shader->shaderMaps, - sizeof(d3d11ShaderMap) * shader->mapCapacity); - shader->mapCapacity *= 2; - ctx->free_fn(shader->shaderMaps, ctx->malloc_data); - shader->shaderMaps = newMap; - newMap = NULL; - } // if -} // expand_map - -static inline int element_is_uint(DXGI_FORMAT format) -{ - return format == DXGI_FORMAT_R32G32B32A32_UINT || - format == DXGI_FORMAT_R32G32B32_UINT || - format == DXGI_FORMAT_R16G16B16A16_UINT || - format == DXGI_FORMAT_R32G32_UINT || - format == DXGI_FORMAT_R10G10B10A2_UINT || - format == DXGI_FORMAT_R8G8B8A8_UINT || - format == DXGI_FORMAT_R16G16_UINT || - format == DXGI_FORMAT_R32_UINT || - format == DXGI_FORMAT_R8G8_UINT || - format == DXGI_FORMAT_R16_UINT || - format == DXGI_FORMAT_R8_UINT; -} // element_is_uint - -static inline int element_is_int(DXGI_FORMAT format) -{ - return format == DXGI_FORMAT_R32G32B32A32_SINT || - format == DXGI_FORMAT_R32G32B32_SINT || - format == DXGI_FORMAT_R16G16B16A16_SINT || - format == DXGI_FORMAT_R32G32_SINT || - format == DXGI_FORMAT_R8G8B8A8_SINT || - format == DXGI_FORMAT_R16G16_SINT || - format == DXGI_FORMAT_R32_SINT || - format == DXGI_FORMAT_R8G8_SINT || - format == DXGI_FORMAT_R16_SINT || - format == DXGI_FORMAT_R8_SINT; -} // element_is_int - -/* Shader Compilation Utilities */ - -static ID3D11VertexShader *compileVertexShader( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader *shader, - const char *src, - int src_len, - ID3D10Blob **blob -) { - const MOJOSHADER_parseData *pd = shader->parseData; - HRESULT result = ctx->D3DCompileFunc(src, src_len, pd->mainfn, - NULL, NULL, pd->mainfn, "vs_4_0", - D3D_SKIP_OPT, 0, blob, blob); - - if (result < 0) - { - set_error((const char *) ID3D10Blob_GetBufferPointer(*blob)); - ID3D10Blob_Release(*blob); - return NULL; - } // if - - void *bytecode = ID3D10Blob_GetBufferPointer(*blob); - int bytecodeLength = ID3D10Blob_GetBufferSize(*blob); - ID3D11VertexShader *ret = NULL; - ID3D11Device_CreateVertexShader(ctx->device, bytecode, bytecodeLength, - NULL, &ret); - return ret; -} // compileVertexShader - -static void replaceVarname( - MOJOSHADER_d3d11Context *ctx, - const char *find, - const char *replace, - const char **source -) { - const char *srcbuf = *source; - size_t find_len = strlen(find); - size_t replace_len = strlen(replace); - - #define IS_PARTIAL_TOKEN(token) \ - (isalnum(*(token + find_len)) || isalnum(*(token-1))) - - // How many times does `find` occur in the source buffer? - int count = 0; - char *ptr = (char *) strstr(srcbuf, find); - while (ptr != NULL) - { - if (!IS_PARTIAL_TOKEN(ptr)) - count++; - ptr = strstr(ptr + find_len, find); - } // while - - // How big should we make the new text buffer? - size_t oldlen = strlen(srcbuf) + 1; - size_t newlen = oldlen + (count * (replace_len - find_len)); - - // Easy case; just find/replace in the original buffer - if (newlen == oldlen) - { - ptr = (char *) strstr(srcbuf, find); - while (ptr != NULL) - { - if (!IS_PARTIAL_TOKEN(ptr)) - memcpy(ptr, replace, replace_len); - ptr = strstr(ptr + find_len, find); - } // while - return; - } // if - - // Allocate a new buffer - char *newbuf = (char *) ctx->malloc_fn(newlen, ctx->malloc_data); - memset(newbuf, '\0', newlen); - - // Find + replace - char *prev_ptr = (char *) srcbuf; - char *curr_ptr = (char *) newbuf; - ptr = (char*) strstr(srcbuf, find); - while (ptr != NULL) - { - memcpy(curr_ptr, prev_ptr, ptr - prev_ptr); - curr_ptr += ptr - prev_ptr; - - if (!IS_PARTIAL_TOKEN(ptr)) - { - memcpy(curr_ptr, replace, replace_len); - curr_ptr += replace_len; - } // if - else - { - // Don't accidentally eat partial tokens... - memcpy(curr_ptr, find, find_len); - curr_ptr += find_len; - } // else - - prev_ptr = ptr + find_len; - ptr = strstr(prev_ptr, find); - } // while - - #undef IS_PARTIAL_TOKEN - - // Copy the remaining part of the source buffer - memcpy(curr_ptr, prev_ptr, (srcbuf + oldlen) - prev_ptr); - - // Free the source buffer - ctx->free_fn((void *) srcbuf, ctx->malloc_data); - - // Point the source parameter to the new buffer - *source = newbuf; -} // replaceVarname - -static char *rewritePixelShader( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader *vshader, - MOJOSHADER_d3d11Shader *pshader -) { - const MOJOSHADER_parseData *vpd = vshader->parseData; - const MOJOSHADER_parseData *ppd = pshader->parseData; - const char *_Output = "_Output" ENDLINE_STR "{" ENDLINE_STR; - const char *_Input = "_Input" ENDLINE_STR "{" ENDLINE_STR; - const char *vsrc = vpd->output; - const char *psrc = ppd->output; - const char *a, *b, *vout, *pstart, *vface, *pend; - size_t substr_len; - char *pfinal; - - #define MAKE_STRBUF(buf) \ - substr_len = b - a; \ - buf = (const char *) ctx->malloc_fn(substr_len + 1, ctx->malloc_data); \ - memset((void *) buf, '\0', substr_len + 1); \ - memcpy((void *) buf, a, substr_len); - - // Copy the vertex function's output struct into a buffer - a = strstr(vsrc, _Output) + strlen(_Output); - b = a; - while (*(b++) != '}'); - b--; - MAKE_STRBUF(vout) - - // Split up the pixel shader text... - - // ...everything up to the input contents... - a = psrc; - b = strstr(psrc, _Input) + strlen(_Input); - MAKE_STRBUF(pstart) - - // ...everything after the input contents. - a = b; - while (*(a++) != '}'); - a--; - while (*(b++) != '\0'); - MAKE_STRBUF(pend) - - // Find matching semantics - int i, j; - int vfaceidx = -1; - const char *pvarname, *vvarname; - for (i = 0; i < ppd->attribute_count; i++) - { - int found_matching_vs_output_for_ps_input = 0; - for (j = 0; j < vpd->output_count; j++) - { - if (ppd->attributes[i].usage == vpd->outputs[j].usage && - ppd->attributes[i].index == vpd->outputs[j].index) - { - found_matching_vs_output_for_ps_input = 1; - pvarname = ppd->attributes[i].name; - vvarname = vpd->outputs[j].name; - if (strcmp(pvarname, vvarname) != 0) - replaceVarname(ctx, pvarname, vvarname, &pend); - } // if - else if (strcmp(ppd->attributes[i].name, "vPos") == 0 && - vpd->outputs[j].usage == MOJOSHADER_USAGE_POSITION && - vpd->outputs[j].index == 0) - { - found_matching_vs_output_for_ps_input = 1; - pvarname = ppd->attributes[i].name; - vvarname = vpd->outputs[j].name; - if (strcmp(pvarname, vvarname) != 0) - replaceVarname(ctx, pvarname, vvarname, &pend); - } // else if - } // for - - if (strcmp(ppd->attributes[i].name, "vFace") == 0) - vfaceidx = i; - - // A vertex shader that doesn't properly initialize all its outputs - // can produce a situation where vpd->outputs is missing a matching - // entry for the PS's inputs, even though fxc will happily compile - // both shaders together as a technique in FX mode - // I don't know how to fix this yet, but a workaround is to - // correct your shader to zero-initialize all its outputs -kg - assert(found_matching_vs_output_for_ps_input); - } // for - - // Special handling for VFACE - vface = (vfaceidx != -1) ? "\tbool m_vFace : SV_IsFrontFace;\n" : ""; - - // Concatenate the shader pieces together - substr_len = strlen(pstart) + strlen(vout) + strlen(vface) + strlen(pend); - pfinal = (char *) ctx->malloc_fn(substr_len + 1, ctx->malloc_data); - memset((void *) pfinal, '\0', substr_len + 1); - memcpy(pfinal, pstart, strlen(pstart)); - memcpy(pfinal + strlen(pstart), vout, strlen(vout)); - memcpy(pfinal + strlen(pstart) + strlen(vout), vface, strlen(vface)); - memcpy(pfinal + strlen(pstart) + strlen(vout) + strlen(vface), pend, strlen(pend)); - - // Free the temporary buffers - ctx->free_fn((void *) vout, ctx->malloc_data); - ctx->free_fn((void *) pstart, ctx->malloc_data); - ctx->free_fn((void *) pend, ctx->malloc_data); - - #undef MAKE_STRBUF - - return pfinal; -} // spliceVertexShaderInput - -static ID3D11PixelShader *compilePixelShader( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader *vshader, - MOJOSHADER_d3d11Shader *pshader -) { - ID3D11PixelShader *retval = NULL; - const char *source; - ID3DBlob *blob; - HRESULT result; - int needs_free; - - if (pshader->parseData->attribute_count > 0) - { - source = rewritePixelShader(ctx, vshader, pshader); - needs_free = 1; - } // if - else - { - source = pshader->parseData->output; - needs_free = 0; - } // else - - result = ctx->D3DCompileFunc(source, strlen(source), - pshader->parseData->mainfn, NULL, NULL, - pshader->parseData->mainfn, "ps_4_0", - D3D_SKIP_OPT, 0, &blob, &blob); - - if (needs_free) - ctx->free_fn((void *) source, ctx->malloc_data); - - if (result < 0) - { - set_error((const char *) ID3D10Blob_GetBufferPointer(blob)); - return NULL; - } // if - - ID3D11Device_CreatePixelShader(ctx->device, - ID3D10Blob_GetBufferPointer(blob), - ID3D10Blob_GetBufferSize(blob), - NULL, &retval); - - ID3D10Blob_Release(blob); - return retval; -} // compilePixelShader - -/* Public API */ - -MOJOSHADER_d3d11Context* MOJOSHADER_d3d11CreateContext( - void *device, - void *deviceContext, - MOJOSHADER_malloc m, - MOJOSHADER_free f, - void *malloc_d -) { - MOJOSHADER_d3d11Context *ctx; - PFN_D3DCOMPILE compileFunc; - -#if WINAPI_FAMILY_WINRT - compileFunc = D3DCompile; -#else - HMODULE compileDLL; - compileDLL = LOAD_D3DCOMPILER; - if (compileDLL == NULL) - return NULL; - compileFunc = (PFN_D3DCOMPILE) LOAD_D3DCOMPILE(compileDLL); - if (compileFunc == NULL) - { - UNLOAD_D3DCOMPILER(compileDLL); - return NULL; - } // if -#endif - - if (m == NULL) m = MOJOSHADER_internal_malloc; - if (f == NULL) f = MOJOSHADER_internal_free; - - ctx = (MOJOSHADER_d3d11Context *) m(sizeof(MOJOSHADER_d3d11Context), malloc_d); - if (ctx == NULL) - { - out_of_memory(); - goto init_fail; - } // if - - memset(ctx, '\0', sizeof (MOJOSHADER_d3d11Context)); - ctx->malloc_fn = m; - ctx->free_fn = f; - ctx->malloc_data = malloc_d; - - // Store references to the D3D device and immediate context - ctx->device = (ID3D11Device*) device; - ctx->deviceContext = (ID3D11DeviceContext*) deviceContext; - - // Store the d3dcompiler info - ctx->D3DCompileFunc = compileFunc; -#if !WINAPI_FAMILY_WINRT - ctx->d3dcompilerDLL = compileDLL; -#endif - - return ctx; - -init_fail: - if (ctx != NULL) - f(ctx, malloc_d); - return NULL; -} // MOJOSHADER_d3d11CreateContext - -void MOJOSHADER_d3d11DestroyContext(MOJOSHADER_d3d11Context *ctx) -{ -#if !WINAPI_FAMILY_WINRT - UNLOAD_D3DCOMPILER(ctx->d3dcompilerDLL); -#endif - ctx->free_fn(ctx, ctx->malloc_data); -} // MOJOSHADER_d3d11DestroyContext - -MOJOSHADER_d3d11Shader *MOJOSHADER_d3d11CompileShader(MOJOSHADER_d3d11Context *ctx, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount) -{ - MOJOSHADER_malloc m = ctx->malloc_fn; - MOJOSHADER_free f = ctx->free_fn; - void *d = ctx->malloc_data; - int i; - - const MOJOSHADER_parseData *pd = MOJOSHADER_parse("hlsl", mainfn, tokenbuf, - bufsize, swiz, swizcount, - smap, smapcount, m, f, d); - - if (pd->error_count > 0) - { - // !!! FIXME: put multiple errors in the buffer? Don't use - // !!! FIXME: MOJOSHADER_d3d11GetError() for this? - set_error(pd->errors[0].error); - goto compile_shader_fail; - } // if - - MOJOSHADER_d3d11Shader *retval = (MOJOSHADER_d3d11Shader *) m(sizeof(MOJOSHADER_d3d11Shader), d); - if (retval == NULL) - goto compile_shader_fail; - - retval->parseData = pd; - retval->refcount = 1; - retval->ubo = NULL; - retval->constantData = NULL; - retval->buflen = 0; - retval->numMaps = 0; - - // Allocate shader maps - retval->mapCapacity = 4; // arbitrary! - retval->shaderMaps = (d3d11ShaderMap *) m(retval->mapCapacity * sizeof(d3d11ShaderMap), d); - if (retval->shaderMaps == NULL) - goto compile_shader_fail; - - memset(retval->shaderMaps, '\0', retval->mapCapacity * sizeof(d3d11ShaderMap)); - - // Create the uniform buffer, if needed - if (pd->uniform_count > 0) - { - // Calculate how big we need to make the buffer - for (i = 0; i < pd->uniform_count; i++) - { - const int arrayCount = pd->uniforms[i].array_count; - retval->buflen += (arrayCount ? arrayCount : 1) * 16; - } // for - - D3D11_BUFFER_DESC bdesc; - bdesc.ByteWidth = next_highest_alignment(retval->buflen); - bdesc.Usage = D3D11_USAGE_DYNAMIC; - bdesc.BindFlags = D3D11_BIND_CONSTANT_BUFFER; - bdesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; - bdesc.MiscFlags = 0; - bdesc.StructureByteStride = 0; - ID3D11Device_CreateBuffer((ID3D11Device*) ctx->device, &bdesc, NULL, - (ID3D11Buffer**) &retval->ubo); - - // Additionally allocate a CPU-side staging buffer - retval->constantData = (unsigned char *) m(retval->buflen, d); - memset(retval->constantData, '\0', retval->buflen); - } // if - - return retval; - -compile_shader_fail: - MOJOSHADER_freeParseData(pd); - return NULL; -} // MOJOSHADER_d3d11CompileShader - -void MOJOSHADER_d3d11ShaderAddRef(MOJOSHADER_d3d11Shader *shader) -{ - if (shader != NULL) - shader->refcount++; -} // MOJOSHADER_d3d11ShaderAddRef - -void MOJOSHADER_d3d11DeleteShader( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader *shader -) { - if (shader != NULL) - { - if (shader->refcount > 1) - shader->refcount--; - else - { - if (shader->ubo != NULL) - { - ID3D11Buffer_Release((ID3D11Buffer*) shader->ubo); - ctx->free_fn(shader->constantData, ctx->malloc_data); - } // if - - if (shader->parseData->shader_type == MOJOSHADER_TYPE_VERTEX) - { - for (int i = 0; i < shader->numMaps; i++) - { - ID3D11VertexShader_Release((ID3D11VertexShader *) shader->shaderMaps[i].val); - ID3D10Blob_Release(shader->shaderMaps[i].vertex.blob); - } // for - } // if - else if (shader->parseData->shader_type == MOJOSHADER_TYPE_PIXEL) - { - for (int i = 0; i < shader->numMaps; i++) - ID3D11PixelShader_Release((ID3D11PixelShader *) shader->shaderMaps[i].val); - } // else if - - ctx->free_fn(shader->shaderMaps, ctx->malloc_data); - shader->shaderMaps = NULL; - MOJOSHADER_freeParseData(shader->parseData); - ctx->free_fn(shader, ctx->malloc_data); - } // else - } // if -} // MOJOSHADER_d3d11DeleteShader - -const MOJOSHADER_parseData *MOJOSHADER_d3d11GetShaderParseData( - MOJOSHADER_d3d11Shader *shader) -{ - return (shader != NULL) ? shader->parseData : NULL; -} // MOJOSHADER_d3d11GetParseData - -void MOJOSHADER_d3d11BindShaders( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader *vshader, - MOJOSHADER_d3d11Shader *pshader -) { - // Use the last bound shaders in case of NULL - if (vshader != NULL) - { - ctx->vertexShader = vshader; - ctx->vertexNeedsBound = 1; - } // if - - if (pshader != NULL) - { - ctx->pixelShader = pshader; - ctx->pixelNeedsBound = 1; - } // if -} // MOJOSHADER_d3d11BindShaders - -void MOJOSHADER_d3d11GetBoundShaders( - MOJOSHADER_d3d11Context *ctx, - MOJOSHADER_d3d11Shader **vshader, - MOJOSHADER_d3d11Shader **pshader -) { - *vshader = ctx->vertexShader; - *pshader = ctx->pixelShader; -} // MOJOSHADER_d3d11GetBoundShaders - -void MOJOSHADER_d3d11MapUniformBufferMemory( - MOJOSHADER_d3d11Context *ctx, - float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb -) { - *vsf = ctx->vs_reg_file_f; - *vsi = ctx->vs_reg_file_i; - *vsb = ctx->vs_reg_file_b; - *psf = ctx->ps_reg_file_f; - *psi = ctx->ps_reg_file_i; - *psb = ctx->ps_reg_file_b; -} // MOJOSHADER_d3d11MapUniformBufferMemory - -void MOJOSHADER_d3d11UnmapUniformBufferMemory(MOJOSHADER_d3d11Context *ctx) -{ - /* This has nothing to do with unmapping memory - * and everything to do with updating uniform - * buffers with the latest parameter contents. - */ - MOJOSHADER_d3d11Shader *vs, *ps; - MOJOSHADER_d3d11GetBoundShaders(ctx, &vs, &ps); - update_uniform_buffer(ctx, vs); - update_uniform_buffer(ctx, ps); -} // MOJOSHADER_d3d11UnmapUniformBufferMemory - -int MOJOSHADER_d3d11GetVertexAttribLocation(MOJOSHADER_d3d11Shader *vert, - MOJOSHADER_usage usage, int index) -{ - if (vert == NULL) - return -1; - - for (int i = 0; i < vert->parseData->attribute_count; i++) - { - if (vert->parseData->attributes[i].usage == usage && - vert->parseData->attributes[i].index == index) - { - return i; - } // if - } // for - - // failure, couldn't find requested attribute - return -1; -} // MOJOSHADER_d3d11GetVertexAttribLocation - -void MOJOSHADER_d3d11CompileVertexShader( - MOJOSHADER_d3d11Context *ctx, - unsigned long long inputLayoutHash, - void* elements, - int elementCount, - void **bytecode, - int *bytecodeLength -) { - MOJOSHADER_d3d11Shader *vshader = ctx->vertexShader; - ID3D10Blob *blob; - - // Don't compile if there's already a mapping for this layout. - for (int i = 0; i < vshader->numMaps; i++) - { - if (inputLayoutHash == vshader->shaderMaps[i].vertex.layoutHash) - { - blob = vshader->shaderMaps[i].vertex.blob; - *bytecode = ID3D10Blob_GetBufferPointer(blob); - *bytecodeLength = ID3D10Blob_GetBufferSize(blob); - return; - } // if - } // for - - // Check for and replace non-float types - D3D11_INPUT_ELEMENT_DESC *d3dElements = (D3D11_INPUT_ELEMENT_DESC*) elements; - const char *origSource = vshader->parseData->output; - int srcLength = vshader->parseData->output_len; - char *newSource = (char*) origSource; - for (int i = 0; i < elementCount; i += 1) - { - D3D11_INPUT_ELEMENT_DESC e = d3dElements[i]; - - const char *replace; - if (element_is_uint(e.Format)) - replace = " uint4"; - else if (element_is_int(e.Format)) - replace = " int4"; - else - replace = NULL; - - if (replace != NULL) - { - char sem[16]; - memset(sem, '\0', sizeof(sem)); - snprintf(sem, sizeof(sem), "%s%d", e.SemanticName, e.SemanticIndex); - // !!! FIXME: POSITIONT has no index. What to do? -caleb - - if (newSource == origSource) - { - newSource = (char *) ctx->malloc_fn(srcLength + 1, - ctx->malloc_data); - strcpy(newSource, origSource); - } // if - - char *ptr = strstr(newSource, sem); - assert(ptr != NULL && "Could not find semantic in shader source!"); - - int spaces = 0; - while (spaces < 3) - if (*(--ptr) == ' ') spaces++; - memcpy(ptr - strlen("float4"), replace, strlen(replace)); - } // if - } // for - - // Expand the map array, if needed - expand_map(ctx, vshader); - - // Add the new mapping - vshader->shaderMaps[vshader->numMaps].vertex.layoutHash = inputLayoutHash; - ID3D11VertexShader *vs = compileVertexShader(ctx, vshader, newSource, - srcLength, &blob); - if (newSource != origSource) - ctx->free_fn((void *) newSource, ctx->malloc_data); - vshader->shaderMaps[ctx->vertexShader->numMaps].val = vs; - vshader->shaderMaps[ctx->vertexShader->numMaps].vertex.blob = blob; - ctx->vertexShader->numMaps++; - assert(vs != NULL); - - // Return the bytecode info - *bytecode = ID3D10Blob_GetBufferPointer(blob); - *bytecodeLength = ID3D10Blob_GetBufferSize(blob); -} // MOJOSHADER_d3d11CompileVertexShader - -void MOJOSHADER_d3d11ProgramReady( - MOJOSHADER_d3d11Context *ctx, - unsigned long long inputLayoutHash -) { - MOJOSHADER_d3d11Shader *vshader = ctx->vertexShader; - MOJOSHADER_d3d11Shader *pshader = ctx->pixelShader; - - // Vertex shader... - if (ctx->vertexNeedsBound) - { - ID3D11VertexShader *realVS = NULL; - for (int i = 0; i < vshader->numMaps; i++) - { - if (inputLayoutHash == vshader->shaderMaps[i].vertex.layoutHash) - { - realVS = (ID3D11VertexShader *) vshader->shaderMaps[i].val; - break; - } // if - } // for - assert(realVS != NULL); - ID3D11DeviceContext_VSSetShader(ctx->deviceContext, realVS, NULL, 0); - ID3D11DeviceContext_VSSetConstantBuffers(ctx->deviceContext, 0, 1, - &vshader->ubo); - ctx->vertexNeedsBound = 0; - } // if - - // Pixel shader... - if (ctx->pixelNeedsBound) - { - // Is there already a mapping for the current vertex shader? - ID3D11PixelShader *realPS = NULL; - for (int i = 0; i < pshader->numMaps; i++) - { - if (pshader->shaderMaps[i].pixel.vshader == vshader) - { - realPS = (ID3D11PixelShader *) pshader->shaderMaps[i].val; - break; - } // if - } // for - - // We have to create a new vertex/pixel shader mapping... - if (realPS == NULL) - { - // Expand the map array, if needed - expand_map(ctx, pshader); - - // Add the new mapping - pshader->shaderMaps[pshader->numMaps].pixel.vshader = vshader; - realPS = compilePixelShader(ctx, vshader, pshader); - pshader->shaderMaps[pshader->numMaps].val = realPS; - pshader->numMaps++; - assert(realPS != NULL); - } // if - - ID3D11DeviceContext_PSSetShader(ctx->deviceContext, realPS, NULL, 0); - ID3D11DeviceContext_PSSetConstantBuffers(ctx->deviceContext, 0, 1, - &pshader->ubo); - ctx->pixelNeedsBound = 0; - } // if -} // MOJOSHADER_d3d11ProgramReady - -const char *MOJOSHADER_d3d11GetError(MOJOSHADER_d3d11Context *ctx) -{ - return error_buffer; -} // MOJOSHADER_d3d11GetError - -#endif /* SUPPORT_PROFILE_HLSL */ - -// end of mojoshader_d3d11.c ... diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_effects.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_effects.c deleted file mode 100644 index 85941fc7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_effects.c +++ /dev/null @@ -1,1943 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#ifdef MOJOSHADER_EFFECT_SUPPORT - -#ifndef MOJOSHADER_USE_SDL_STDLIB -#include -#endif /* MOJOSHADER_USE_SDL_STDLIB */ - -void MOJOSHADER_runPreshader(const MOJOSHADER_preshader *preshader, - float *outregs) -{ - const float *inregs = preshader->registers; - - // this is fairly straightforward, as there aren't any branching - // opcodes in the preshader instruction set (at the moment, at least). - const int scalarstart = (int) MOJOSHADER_PRESHADEROP_SCALAR_OPS; - - double *temps = NULL; - if (preshader->temp_count > 0) - { - temps = (double *) alloca(sizeof (double) * preshader->temp_count); - memset(temps, '\0', sizeof (double) * preshader->temp_count); - } // if - - double dst[4] = { 0, 0, 0, 0 }; - double src[3][4] = { { 0, 0, 0, 0 }, { 0, 0, 0, 0 }, { 0, 0, 0, 0 } }; - const double *src0 = &src[0][0]; - const double *src1 = &src[1][0]; - const double *src2 = &src[2][0]; - - MOJOSHADER_preshaderInstruction *inst = preshader->instructions; - int instit; - -#if 0 // FIXME: Do we need to do this or is the compiler smart enough? - // Clear preshader output registers first! - for (instit = 0; instit < preshader->instruction_count; instit++, inst++) - { - const MOJOSHADER_preshaderOperand *operand = &inst->operands[inst->operand_count - 1]; - if (operand->type == MOJOSHADER_PRESHADEROPERAND_OUTPUT) - memset(&outregs[operand->index], '\0', sizeof(float) * 4); - } // for - inst = preshader->instructions; -#endif - - for (instit = 0; instit < preshader->instruction_count; instit++, inst++) - { - const MOJOSHADER_preshaderOperand *operand = inst->operands; - const int elems = inst->element_count; - const int elemsbytes = sizeof (double) * elems; - const int isscalarop = (inst->opcode >= scalarstart); - - assert(elems >= 0); - assert(elems <= 4); - - // load up our operands... - int opiter, elemiter; - for (opiter = 0; opiter < inst->operand_count-1; opiter++, operand++) - { - const int isscalar = ((isscalarop) && (opiter == 0)); - const unsigned int index = operand->index; - switch (operand->type) - { - case MOJOSHADER_PRESHADEROPERAND_LITERAL: - { - if (!isscalar) - { - assert((index + elems) <= preshader->literal_count); - memcpy(&src[opiter][0], &preshader->literals[index], elemsbytes); - } // if - else - { - for (elemiter = 0; elemiter < elems; elemiter++) - src[opiter][elemiter] = preshader->literals[index]; - } // else - break; - } // case - - case MOJOSHADER_PRESHADEROPERAND_INPUT: - if (operand->array_register_count > 0) - { - int i; - const int *regsi = (const int *) inregs; - int arrIndex = regsi[((index >> 4) * 4) + ((index >> 2) & 3)]; - for (i = 0; i < operand->array_register_count; i++) - { - arrIndex = regsi[operand->array_registers[i] + arrIndex]; - } - src[opiter][0] = arrIndex; - } // if - else if (isscalar) - src[opiter][0] = inregs[index]; - else - { - int cpy; - for (cpy = 0; cpy < elems; cpy++) - src[opiter][cpy] = inregs[index+cpy]; - } // else - break; - - case MOJOSHADER_PRESHADEROPERAND_OUTPUT: - if (isscalar) - src[opiter][0] = outregs[index]; - else - { - int cpy; - for (cpy = 0; cpy < elems; cpy++) - src[opiter][cpy] = outregs[index+cpy]; - } // else - break; - - case MOJOSHADER_PRESHADEROPERAND_TEMP: - if (temps != NULL) - { - if (isscalar) - src[opiter][0] = temps[index]; - else - memcpy(src[opiter], temps + index, elemsbytes); - } // if - break; - - default: - assert(0 && "unexpected preshader operand type."); - return; - } // switch - } // for - - // run the actual instruction, store result to dst. - int i; - switch (inst->opcode) - { - #define OPCODE_CASE(op, val) \ - case MOJOSHADER_PRESHADEROP_##op: \ - for (i = 0; i < elems; i++) { dst[i] = val; } \ - break; - - //OPCODE_CASE(NOP, 0.0) // not a real instruction. - OPCODE_CASE(MOV, src0[i]) - OPCODE_CASE(NEG, -src0[i]) - OPCODE_CASE(RCP, 1.0 / src0[i]) - OPCODE_CASE(FRC, src0[i] - floor(src0[i])) - OPCODE_CASE(EXP, exp(src0[i])) - OPCODE_CASE(LOG, log(src0[i])) - OPCODE_CASE(RSQ, 1.0 / sqrt(src0[i])) - OPCODE_CASE(SIN, sin(src0[i])) - OPCODE_CASE(COS, cos(src0[i])) - OPCODE_CASE(ASIN, asin(src0[i])) - OPCODE_CASE(ACOS, acos(src0[i])) - OPCODE_CASE(ATAN, atan(src0[i])) - OPCODE_CASE(MIN, (src0[i] < src1[i]) ? src0[i] : src1[i]) - OPCODE_CASE(MAX, (src0[i] > src1[i]) ? src0[i] : src1[i]) - OPCODE_CASE(LT, (src0[i] < src1[i]) ? 1.0 : 0.0) - OPCODE_CASE(GE, (src0[i] >= src1[i]) ? 1.0 : 0.0) - OPCODE_CASE(ADD, src0[i] + src1[i]) - OPCODE_CASE(MUL, src0[i] * src1[i]) - OPCODE_CASE(ATAN2, atan2(src0[i], src1[i])) - OPCODE_CASE(DIV, src0[i] / src1[i]) - OPCODE_CASE(CMP, (src0[i] >= 0.0) ? src1[i] : src2[i]) - //OPCODE_CASE(NOISE, ???) // !!! FIXME: don't know what this does - //OPCODE_CASE(MOVC, ???) // !!! FIXME: don't know what this does - OPCODE_CASE(MIN_SCALAR, (src0[0] < src1[i]) ? src0[0] : src1[i]) - OPCODE_CASE(MAX_SCALAR, (src0[0] > src1[i]) ? src0[0] : src1[i]) - OPCODE_CASE(LT_SCALAR, (src0[0] < src1[i]) ? 1.0 : 0.0) - OPCODE_CASE(GE_SCALAR, (src0[0] >= src1[i]) ? 1.0 : 0.0) - OPCODE_CASE(ADD_SCALAR, src0[0] + src1[i]) - OPCODE_CASE(MUL_SCALAR, src0[0] * src1[i]) - OPCODE_CASE(ATAN2_SCALAR, atan2(src0[0], src1[i])) - OPCODE_CASE(DIV_SCALAR, src0[0] / src1[i]) - //OPCODE_CASE(DOT_SCALAR) // !!! FIXME: isn't this just a MUL? - //OPCODE_CASE(NOISE_SCALAR, ???) // !!! FIXME: ? - #undef OPCODE_CASE - - case MOJOSHADER_PRESHADEROP_DOT: - { - double final = 0.0; - for (i = 0; i < elems; i++) - final += src0[i] * src1[i]; - for (i = 0; i < elems; i++) - dst[i] = final; // !!! FIXME: is this right? - break; - } // case - - default: - assert(0 && "Unhandled preshader opcode!"); - break; - } // switch - - // Figure out where dst wants to be stored. - if (operand->type == MOJOSHADER_PRESHADEROPERAND_TEMP) - { - assert(preshader->temp_count >= - operand->index + (elemsbytes / sizeof (double))); - memcpy(temps + operand->index, dst, elemsbytes); - } // if - else - { - assert(operand->type == MOJOSHADER_PRESHADEROPERAND_OUTPUT); - for (i = 0; i < elems; i++) - outregs[operand->index + i] = (float) dst[i]; - } // else - } // for -} // MOJOSHADER_runPreshader - -static MOJOSHADER_effect MOJOSHADER_out_of_mem_effect = { - 1, &MOJOSHADER_out_of_mem_error, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; -static MOJOSHADER_error MOJOSHADER_need_a_backend_error = { - "Need a MOJOSHADER_effectShaderContext", NULL, MOJOSHADER_POSITION_NONE -}; -static MOJOSHADER_effect MOJOSHADER_need_a_backend_effect = { - 1, &MOJOSHADER_need_a_backend_error, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; -static MOJOSHADER_error MOJOSHADER_unexpected_eof_error = { - "Unexpected EOF", NULL, MOJOSHADER_POSITION_NONE -}; -static MOJOSHADER_effect MOJOSHADER_unexpected_eof_effect = { - 1, &MOJOSHADER_unexpected_eof_error, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; -static MOJOSHADER_error MOJOSHADER_not_an_effect_error = { - "Not an Effects Framework binary", NULL, MOJOSHADER_POSITION_NONE -}; -static MOJOSHADER_effect MOJOSHADER_not_an_effect_effect = { - 1, &MOJOSHADER_not_an_effect_error, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 -}; - -static void push_errors(ErrorList *list, MOJOSHADER_error *errors, int len) -{ - int i; - for (i = 0; i < len; i += 1) - errorlist_add(list, errors[i].filename, errors[i].error_position, errors[i].error); -} // push_errors - -static uint32 readui32(const uint8 **_ptr, uint32 *_len) -{ - uint32 retval = 0; - if (*_len < sizeof (retval)) - *_len = 0; - else - { - const uint32 *ptr = (const uint32 *) *_ptr; - retval = SWAP32(*ptr); - *_ptr += sizeof (retval); - *_len -= sizeof (retval); - } // else - return retval; -} // readui32 - -static char *readstring(const uint8 *base, - const uint32 offset, - MOJOSHADER_malloc m, - void *d) -{ - // !!! FIXME: sanity checks! - // !!! FIXME: verify this doesn't go past EOF looking for a null. - const char *str = ((const char *) base) + offset; - const uint32 len = *((const uint32 *) str); - char *strptr = NULL; - if (len == 0) return NULL; /* No length? No string. */ - strptr = (char *) m(len, d); - memcpy(strptr, str + 4, len); - return strptr; -} // readstring - -static int findparameter(const MOJOSHADER_effectParam *params, - const uint32 param_count, - const char *name) -{ - int i; - for (i = 0; i < param_count; i++) - if (strcmp(name, params[i].value.name) == 0) - return i; - assert(0 && "Parameter not found!"); - return -1; -} - -static void readvalue(const uint8 *base, - const uint32 typeoffset, - const uint32 valoffset, - MOJOSHADER_effectValue *value, - MOJOSHADER_effectObject *objects, - MOJOSHADER_malloc m, - void *d) -{ - int i, j, k; - const uint8 *typeptr = base + typeoffset; - const uint8 *valptr = base + valoffset; - unsigned int typelen = 9999999; // !!! FIXME - const uint32 type = readui32(&typeptr, &typelen); - const uint32 valclass = readui32(&typeptr, &typelen); - const uint32 name = readui32(&typeptr, &typelen); - const uint32 semantic = readui32(&typeptr, &typelen); - const uint32 numelements = readui32(&typeptr, &typelen); - - value->type.parameter_type = (MOJOSHADER_symbolType) type; - value->type.parameter_class = (MOJOSHADER_symbolClass) valclass; - value->name = readstring(base, name, m, d); - value->semantic = readstring(base, semantic, m, d); - value->type.elements = numelements; - - /* Class sanity check */ - assert(valclass >= MOJOSHADER_SYMCLASS_SCALAR && valclass <= MOJOSHADER_SYMCLASS_STRUCT); - - if (valclass == MOJOSHADER_SYMCLASS_SCALAR - || valclass == MOJOSHADER_SYMCLASS_VECTOR - || valclass == MOJOSHADER_SYMCLASS_MATRIX_ROWS - || valclass == MOJOSHADER_SYMCLASS_MATRIX_COLUMNS) - { - /* These classes only ever contain scalar values */ - assert(type >= MOJOSHADER_SYMTYPE_BOOL && type <= MOJOSHADER_SYMTYPE_FLOAT); - - const uint32 columncount = readui32(&typeptr, &typelen); - const uint32 rowcount = readui32(&typeptr, &typelen); - - value->type.columns = columncount; - value->type.rows = rowcount; - - uint32 siz = 4 * rowcount; - if (numelements > 0) - siz *= numelements; - value->value_count = siz; - siz *= 4; - value->values = m(siz, d); - memset(value->values, '\0', siz); - siz /= 16; - for (i = 0; i < siz; i++) - memcpy(value->valuesF + (i << 2), valptr + ((columncount << 2) * i), columncount << 2); - } // if - else if (valclass == MOJOSHADER_SYMCLASS_OBJECT) - { - /* This class contains either samplers or "objects" */ - assert(type >= MOJOSHADER_SYMTYPE_STRING && type <= MOJOSHADER_SYMTYPE_VERTEXSHADER); - - if (type == MOJOSHADER_SYMTYPE_SAMPLER - || type == MOJOSHADER_SYMTYPE_SAMPLER1D - || type == MOJOSHADER_SYMTYPE_SAMPLER2D - || type == MOJOSHADER_SYMTYPE_SAMPLER3D - || type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - { - unsigned int vallen = 9999999; // !!! FIXME - const uint32 numstates = readui32(&valptr, &vallen); - - value->value_count = numstates; - - const uint32 siz = sizeof(MOJOSHADER_effectSamplerState) * numstates; - value->values = m(siz, d); - memset(value->values, '\0', siz); - - for (i = 0; i < numstates; i++) - { - MOJOSHADER_effectSamplerState *state = &value->valuesSS[i]; - const uint32 stype = readui32(&valptr, &vallen) & ~0xA0; - /*const uint32 FIXME =*/ readui32(&valptr, &vallen); - const uint32 statetypeoffset = readui32(&valptr, &vallen); - const uint32 statevaloffset = readui32(&valptr, &vallen); - - state->type = (MOJOSHADER_samplerStateType) stype; - readvalue(base, statetypeoffset, statevaloffset, - &state->value, objects, - m, d); - if (stype == MOJOSHADER_SAMP_TEXTURE) - objects[state->value.valuesI[0]].type = (MOJOSHADER_symbolType) type; - } // for - } // if - else - { - uint32 numobjects = 1; - if (numelements > 0) - numobjects = numelements; - - value->value_count = numobjects; - - const uint32 siz = 4 * numobjects; - value->values = m(siz, d); - memcpy(value->values, valptr, siz); - - for (i = 0; i < value->value_count; i++) - objects[value->valuesI[i]].type = (MOJOSHADER_symbolType) type; - } // else - } // else if - else if (valclass == MOJOSHADER_SYMCLASS_STRUCT) - { - uint32 siz; - - value->type.member_count = readui32(&typeptr, &typelen); - siz = value->type.member_count * sizeof (MOJOSHADER_symbolStructMember); - value->type.members = (MOJOSHADER_symbolStructMember *) m(siz, d); - - uint32 structsize = 0; - for (i = 0; i < value->type.member_count; i++) - { - MOJOSHADER_symbolStructMember *mem = &value->type.members[i]; - - mem->info.parameter_type = (MOJOSHADER_symbolType) readui32(&typeptr, &typelen); - mem->info.parameter_class = (MOJOSHADER_symbolClass) readui32(&typeptr, &typelen); - - const uint32 memname = readui32(&typeptr, &typelen); - /*const uint32 memsemantic =*/ readui32(&typeptr, &typelen); - mem->name = readstring(base, memname, m, d); - - mem->info.elements = readui32(&typeptr, &typelen); - mem->info.columns = readui32(&typeptr, &typelen); - mem->info.rows = readui32(&typeptr, &typelen); - - // !!! FIXME: Nested structs! -flibit - assert(mem->info.parameter_class >= MOJOSHADER_SYMCLASS_SCALAR - && mem->info.parameter_class <= MOJOSHADER_SYMCLASS_MATRIX_COLUMNS); - assert(mem->info.parameter_type >= MOJOSHADER_SYMTYPE_BOOL - && mem->info.parameter_type <= MOJOSHADER_SYMTYPE_FLOAT); - mem->info.member_count = 0; - mem->info.members = NULL; - - uint32 memsize = 4 * mem->info.rows; - if (mem->info.elements > 0) - memsize *= mem->info.elements; - structsize += memsize; - } // for - - value->type.columns = structsize; - value->type.rows = 1; - value->value_count = structsize; - if (numelements > 0) - value->value_count *= numelements; - - siz = value->value_count * 4; - value->values = m(siz, d); - memset(value->values, '\0', siz); - int dst_offset = 0, src_offset = 0; - i = 0; - do - { - for (j = 0; j < value->type.member_count; j++) - { - siz = value->type.members[j].info.rows * value->type.members[j].info.elements; - for (k = 0; k < siz; k++) - { - memcpy(value->valuesF + dst_offset, - typeptr + src_offset, /* Yes, typeptr. -flibit */ - value->type.members[j].info.columns << 2); - dst_offset += 4; - src_offset += value->type.members[j].info.columns << 2; - } // for - } - } while (++i < numelements); - } // else if -} // readvalue - -static void readannotations(const uint32 numannos, - const uint8 *base, - const uint8 **ptr, - uint32 *len, - MOJOSHADER_effectAnnotation **annotations, - MOJOSHADER_effectObject *objects, - MOJOSHADER_malloc m, - void *d) -{ - int i; - if (numannos == 0) return; - - const uint32 siz = sizeof(MOJOSHADER_effectAnnotation) * numannos; - *annotations = (MOJOSHADER_effectAnnotation *) m(siz, d); - memset(*annotations, '\0', siz); - - for (i = 0; i < numannos; i++) - { - MOJOSHADER_effectAnnotation *anno = &(*annotations)[i]; - - const uint32 typeoffset = readui32(ptr, len); - const uint32 valoffset = readui32(ptr, len); - - readvalue(base, typeoffset, valoffset, - anno, objects, - m, d); - } // for -} // readannotation - -static void readparameters(const uint32 numparams, - const uint8 *base, - const uint8 **ptr, - uint32 *len, - MOJOSHADER_effectParam **params, - MOJOSHADER_effectObject *objects, - MOJOSHADER_malloc m, - void *d) -{ - int i; - if (numparams == 0) return; - - uint32 siz = sizeof(MOJOSHADER_effectParam) * numparams; - *params = (MOJOSHADER_effectParam *) m(siz, d); - memset(*params, '\0', siz); - - for (i = 0; i < numparams; i++) - { - MOJOSHADER_effectParam *param = &(*params)[i]; - - const uint32 typeoffset = readui32(ptr, len); - const uint32 valoffset = readui32(ptr, len); - /*const uint32 flags =*/ readui32(ptr, len); - const uint32 numannos = readui32(ptr, len); - - param->annotation_count = numannos; - readannotations(numannos, base, ptr, len, - ¶m->annotations, objects, - m, d); - - readvalue(base, typeoffset, valoffset, - ¶m->value, objects, - m, d); - } // for -} // readparameters - -static void readstates(const uint32 numstates, - const uint8 *base, - const uint8 **ptr, - uint32 *len, - MOJOSHADER_effectState **states, - MOJOSHADER_effectObject *objects, - MOJOSHADER_malloc m, - void *d) -{ - int i; - if (numstates == 0) return; - - const uint32 siz = sizeof (MOJOSHADER_effectState) * numstates; - *states = (MOJOSHADER_effectState *) m(siz, d); - memset(*states, '\0', siz); - - for (i = 0; i < numstates; i++) - { - MOJOSHADER_effectState *state = &(*states)[i]; - - const uint32 type = readui32(ptr, len); - /*const uint32 FIXME =*/ readui32(ptr, len); - const uint32 typeoffset = readui32(ptr, len); - const uint32 valoffset = readui32(ptr, len); - - state->type = (MOJOSHADER_renderStateType) type; - readvalue(base, typeoffset, valoffset, - &state->value, objects, - m, d); - } // for -} // readstates - -static void readpasses(const uint32 numpasses, - const uint8 *base, - const uint8 **ptr, - uint32 *len, - MOJOSHADER_effectPass **passes, - MOJOSHADER_effectObject *objects, - MOJOSHADER_malloc m, - void *d) -{ - int i; - if (numpasses == 0) return; - - const uint32 siz = sizeof (MOJOSHADER_effectPass) * numpasses; - *passes = (MOJOSHADER_effectPass *) m(siz, d); - memset(*passes, '\0', siz); - - for (i = 0; i < numpasses; i++) - { - MOJOSHADER_effectPass *pass = &(*passes)[i]; - - const uint32 passnameoffset = readui32(ptr, len); - const uint32 numannos = readui32(ptr, len); - const uint32 numstates = readui32(ptr, len); - - pass->name = readstring(base, passnameoffset, m, d); - - pass->annotation_count = numannos; - readannotations(numannos, base, ptr, len, - &pass->annotations, objects, - m, d); - - pass->state_count = numstates; - readstates(numstates, base, ptr, len, - &pass->states, objects, - m, d); - } // for -} // readpasses - -static void readtechniques(const uint32 numtechniques, - const uint8 *base, - const uint8 **ptr, - uint32 *len, - MOJOSHADER_effectTechnique **techniques, - MOJOSHADER_effectObject *objects, - MOJOSHADER_malloc m, - void *d) -{ - int i; - if (numtechniques == 0) return; - - const uint32 siz = sizeof (MOJOSHADER_effectTechnique) * numtechniques; - *techniques = (MOJOSHADER_effectTechnique *) m(siz, d); - memset(*techniques, '\0', siz); - - for (i = 0; i < numtechniques; i++) - { - MOJOSHADER_effectTechnique *technique = &(*techniques)[i]; - - const uint32 nameoffset = readui32(ptr, len); - const uint32 numannos = readui32(ptr, len); - const uint32 numpasses = readui32(ptr, len); - - technique->name = readstring(base, nameoffset, m, d); - - technique->annotation_count = numannos; - readannotations(numannos, base, ptr, len, - &technique->annotations, objects, - m, d); - - technique->pass_count = numpasses; - readpasses(numpasses, base, ptr, len, - &technique->passes, objects, - m, d); - } // for -} // readtechniques - -static void readsmallobjects(const uint32 numsmallobjects, - const uint8 **ptr, - uint32 *len, - MOJOSHADER_effect *effect, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount, - ErrorList *errors) -{ - int i, j; - MOJOSHADER_parseData *pd; - MOJOSHADER_malloc m = effect->ctx.m; - void *d = effect->ctx.malloc_data; - - if (numsmallobjects == 0) return; - - for (i = 1; i < numsmallobjects + 1; i++) - { - const uint32 index = readui32(ptr, len); - const uint32 length = readui32(ptr, len); - - MOJOSHADER_effectObject *object = &effect->objects[index]; - if (object->type == MOJOSHADER_SYMTYPE_STRING) - { - if (length > 0) - { - char *str = (char *) m(length, d); - memcpy(str, *ptr, length); - object->string.string = str; - } // if - } // if - else if (object->type == MOJOSHADER_SYMTYPE_TEXTURE - || object->type == MOJOSHADER_SYMTYPE_TEXTURE1D - || object->type == MOJOSHADER_SYMTYPE_TEXTURE2D - || object->type == MOJOSHADER_SYMTYPE_TEXTURE3D - || object->type == MOJOSHADER_SYMTYPE_TEXTURECUBE - || object->type == MOJOSHADER_SYMTYPE_SAMPLER - || object->type == MOJOSHADER_SYMTYPE_SAMPLER1D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER2D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER3D - || object->type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - { - if (length > 0) - { - char *str = (char *) m(length, d); - memcpy(str, *ptr, length); - object->mapping.name = str; - } // if - } // else if - else if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER - || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - char mainfn[32]; - snprintf(mainfn, sizeof(mainfn), "ShaderFunction%u", (unsigned int) index); - object->shader.technique = -1; - object->shader.pass = -1; - object->shader.shader = effect->ctx.compileShader(effect->ctx.shaderContext, - mainfn, *ptr, length, - swiz, swizcount, - smap, smapcount); - if (object->shader.shader == NULL) - { - // Bail ASAP, so we can get the error to the application - errorlist_add(errors, NULL, 0, effect->ctx.getError(effect->ctx.shaderContext)); - return; - } // if - pd = effect->ctx.getParseData(object->shader.shader); - if (pd->error_count > 0) - { - // Bail ASAP, so we can get the error to the application - push_errors(errors, pd->errors, pd->error_count); - return; - } // if - - for (j = 0; j < pd->symbol_count; j++) - if (pd->symbols[j].register_set == MOJOSHADER_SYMREGSET_SAMPLER) - object->shader.sampler_count++; - object->shader.param_count = pd->symbol_count; - object->shader.params = (uint32 *) m(object->shader.param_count * sizeof (uint32), d); - object->shader.samplers = (MOJOSHADER_samplerStateRegister *) m(object->shader.sampler_count * sizeof (MOJOSHADER_samplerStateRegister), d); - uint32 curSampler = 0; - for (j = 0; j < pd->symbol_count; j++) - { - int par = findparameter(effect->params, - effect->param_count, - pd->symbols[j].name); - object->shader.params[j] = par; - if (pd->symbols[j].register_set == MOJOSHADER_SYMREGSET_SAMPLER) - { - object->shader.samplers[curSampler].sampler_name = effect->params[par].value.name; - object->shader.samplers[curSampler].sampler_register = pd->symbols[j].register_index; - object->shader.samplers[curSampler].sampler_state_count = effect->params[par].value.value_count; - object->shader.samplers[curSampler].sampler_states = effect->params[par].value.valuesSS; - curSampler++; - } // if - } // for - if (pd->preshader) - { - object->shader.preshader_param_count = pd->preshader->symbol_count; - object->shader.preshader_params = (uint32 *) m(object->shader.preshader_param_count * sizeof (uint32), d); - for (j = 0; j < pd->preshader->symbol_count; j++) - { - object->shader.preshader_params[j] = findparameter(effect->params, - effect->param_count, - pd->preshader->symbols[j].name); - } // for - } // if - } // else if - else - { - assert(0 && "Small object type unknown!"); - } // else - - /* Object block is always a multiple of four */ - const uint32 blocklen = (length + 3) - ((length - 1) % 4); - *ptr += blocklen; - *len -= blocklen; - } // for -} // readstrings - -static void readlargeobjects(const uint32 numlargeobjects, - const uint32 numsmallobjects, - const uint8 **ptr, - uint32 *len, - MOJOSHADER_effect *effect, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount, - ErrorList *errors) -{ - int i, j; - MOJOSHADER_parseData *pd; - MOJOSHADER_malloc m = effect->ctx.m; - MOJOSHADER_free f = effect->ctx.f; - void *d = effect->ctx.malloc_data; - - if (numlargeobjects == 0) return; - - int numobjects = numsmallobjects + numlargeobjects + 1; - for (i = numsmallobjects + 1; i < numobjects; i++) - { - const uint32 technique = readui32(ptr, len); - const uint32 index = readui32(ptr, len); - /*const uint32 FIXME =*/ readui32(ptr, len); - const uint32 state = readui32(ptr, len); - const uint32 type = readui32(ptr, len); - const uint32 length = readui32(ptr, len); - - uint32 objectIndex; - if (technique == -1) - objectIndex = effect->params[index].value.valuesSS[state].value.valuesI[0]; - else - objectIndex = effect->techniques[technique].passes[index].states[state].value.valuesI[0]; - - MOJOSHADER_effectObject *object = &effect->objects[objectIndex]; - if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER - || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - object->shader.technique = technique; - object->shader.pass = index; - - if (type == 2) - { - /* This is a standalone preshader! - * It exists solely for effect passes that do not use a single - * vertex/fragment shader. - */ - object->shader.is_preshader = 1; - const uint32 start = *((uint32 *) *ptr) + 4; - const char *array = readstring(*ptr, 0, m, d); - object->shader.param_count = 1; - object->shader.params = (uint32 *) m(sizeof (uint32), d); - object->shader.params[0] = findparameter(effect->params, - effect->param_count, - array); - f((void *) array, d); - object->shader.preshader = MOJOSHADER_parsePreshader(*ptr + start, length, - m, f, d); - // !!! FIXME: check for errors. - object->shader.preshader_param_count = object->shader.preshader->symbol_count; - object->shader.preshader_params = (uint32 *) m(object->shader.preshader_param_count * sizeof (uint32), d); - for (j = 0; j < object->shader.preshader->symbol_count; j++) - { - object->shader.preshader_params[j] = findparameter(effect->params, - effect->param_count, - object->shader.preshader->symbols[j].name); - } // for - } // if - else - { - char mainfn[32]; - snprintf(mainfn, sizeof (mainfn), "ShaderFunction%u", (unsigned int) objectIndex); - object->shader.shader = effect->ctx.compileShader(effect->ctx.shaderContext, - mainfn, *ptr, length, - swiz, swizcount, - smap, smapcount); - if (object->shader.shader == NULL) - { - // Bail ASAP, so we can get the error to the application - errorlist_add(errors, NULL, 0, effect->ctx.getError(effect->ctx.shaderContext)); - return; - } // if - pd = effect->ctx.getParseData(object->shader.shader); - if (pd->error_count > 0) - { - // Bail ASAP, so we can get the error to the application - push_errors(errors, pd->errors, pd->error_count); - return; - } // if - - for (j = 0; j < pd->symbol_count; j++) - if (pd->symbols[j].register_set == MOJOSHADER_SYMREGSET_SAMPLER) - object->shader.sampler_count++; - object->shader.param_count = pd->symbol_count; - object->shader.params = (uint32 *) m(object->shader.param_count * sizeof (uint32), d); - object->shader.samplers = (MOJOSHADER_samplerStateRegister *) m(object->shader.sampler_count * sizeof (MOJOSHADER_samplerStateRegister), d); - uint32 curSampler = 0; - for (j = 0; j < pd->symbol_count; j++) - { - int par = findparameter(effect->params, - effect->param_count, - pd->symbols[j].name); - object->shader.params[j] = par; - if (pd->symbols[j].register_set == MOJOSHADER_SYMREGSET_SAMPLER) - { - object->shader.samplers[curSampler].sampler_name = effect->params[par].value.name; - object->shader.samplers[curSampler].sampler_register = pd->symbols[j].register_index; - object->shader.samplers[curSampler].sampler_state_count = effect->params[par].value.value_count; - object->shader.samplers[curSampler].sampler_states = effect->params[par].value.valuesSS; - curSampler++; - } // if - } // for - if (pd->preshader) - { - object->shader.preshader_param_count = pd->preshader->symbol_count; - object->shader.preshader_params = (uint32 *) m(object->shader.preshader_param_count * sizeof (uint32), d); - for (j = 0; j < pd->preshader->symbol_count; j++) - { - object->shader.preshader_params[j] = findparameter(effect->params, - effect->param_count, - pd->preshader->symbols[j].name); - } // for - } // if - } - } // if - else if (object->type == MOJOSHADER_SYMTYPE_TEXTURE - || object->type == MOJOSHADER_SYMTYPE_TEXTURE1D - || object->type == MOJOSHADER_SYMTYPE_TEXTURE2D - || object->type == MOJOSHADER_SYMTYPE_TEXTURE3D - || object->type == MOJOSHADER_SYMTYPE_TEXTURECUBE - || object->type == MOJOSHADER_SYMTYPE_SAMPLER - || object->type == MOJOSHADER_SYMTYPE_SAMPLER1D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER2D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER3D - || object->type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - { - if (length > 0) - { - char *str = (char *) m(length, d); - memcpy(str, *ptr, length); - object->mapping.name = str; - } // if - } // else if - else if (object->type != MOJOSHADER_SYMTYPE_VOID) // FIXME: Why? -flibit - { - assert(0 && "Large object type unknown!"); - } // else - - /* Object block is always a multiple of four */ - const uint32 blocklen = (length + 3) - ((length - 1) % 4); - *ptr += blocklen; - *len -= blocklen; - } // for -} // readobjects - -MOJOSHADER_effect *MOJOSHADER_compileEffect(const unsigned char *buf, - const unsigned int _len, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount, - const MOJOSHADER_effectShaderContext *ctx) -{ - const uint8 *ptr = (const uint8 *) buf; - uint32 len = (uint32) _len; - ErrorList *errors; - MOJOSHADER_malloc m; - MOJOSHADER_free f; - void *d; - - /* Need a backend! */ - if (ctx == NULL) - return &MOJOSHADER_need_a_backend_effect; - - /* Supply both m and f, or neither */ - if ( ((ctx->m == NULL) && (ctx->f != NULL)) - || ((ctx->m != NULL) && (ctx->f == NULL)) ) - return &MOJOSHADER_out_of_mem_effect; - - /* Use default malloc/free if m/f were not passed */ - if (ctx->m == NULL) - m = MOJOSHADER_internal_malloc; - else - m = ctx->m; - if (ctx->f == NULL) - f = MOJOSHADER_internal_free; - else - f = ctx->f; - d = ctx->malloc_data; - - /* malloc base effect structure */ - MOJOSHADER_effect *retval = (MOJOSHADER_effect *) m(sizeof (MOJOSHADER_effect), - ctx->malloc_data); - if (retval == NULL) - return &MOJOSHADER_out_of_mem_effect; - memset(retval, '\0', sizeof (*retval)); - - /* Store ctx in effect structure */ - memcpy(&retval->ctx, ctx, sizeof(MOJOSHADER_effectShaderContext)); - retval->ctx.m = m; - retval->ctx.f = f; - - if (len < 8) - goto parseEffect_unexpectedEOF; - - /* Read in header magic, seek to initial offset */ - const uint8 *base = NULL; - uint32 header = readui32(&ptr, &len); - if (header == 0xBCF00BCF) - { - /* The Effect compiler provided with XNA4 adds some extra mess at the - * beginning of the file. It's useless though, so just skip it. - * -flibit - */ - const uint32 skip = readui32(&ptr, &len) - 8; - ptr += skip; - len += skip; - header = readui32(&ptr, &len); - } // if - if (header != 0xFEFF0901) - { - MOJOSHADER_deleteEffect(retval); - return &MOJOSHADER_not_an_effect_effect; - } // if - else - { - const uint32 offset = readui32(&ptr, &len); - base = ptr; - if (offset > len) - goto parseEffect_unexpectedEOF; - ptr += offset; - len -= offset; - } // else - - if (len < 16) - goto parseEffect_unexpectedEOF; - - /* Parse structure counts */ - const uint32 numparams = readui32(&ptr, &len); - const uint32 numtechniques = readui32(&ptr, &len); - /*const uint32 FIXME =*/ readui32(&ptr, &len); - const uint32 numobjects = readui32(&ptr, &len); - - /* Alloc structures now, so object types can be stored */ - retval->object_count = numobjects; - const uint32 siz = sizeof (MOJOSHADER_effectObject) * numobjects; - retval->objects = (MOJOSHADER_effectObject *) m(siz, d); - if (retval->objects == NULL) - goto parseEffect_outOfMemory; - memset(retval->objects, '\0', siz); - - /* Parse effect parameters */ - retval->param_count = numparams; - readparameters(numparams, base, &ptr, &len, - &retval->params, retval->objects, - m, d); - - /* Parse effect techniques */ - retval->technique_count = numtechniques; - readtechniques(numtechniques, base, &ptr, &len, - &retval->techniques, retval->objects, - m, d); - - /* Initial effect technique/pass */ - retval->current_technique = &retval->techniques[0]; - retval->current_pass = -1; - - if (len < 8) - goto parseEffect_unexpectedEOF; - - /* Parse object counts */ - const int numsmallobjects = readui32(&ptr, &len); - const int numlargeobjects = readui32(&ptr, &len); - - errors = errorlist_create(m, f, d); - if (errors == NULL) - goto parseEffect_outOfMemory; - - /* Parse "small" object table */ - readsmallobjects(numsmallobjects, &ptr, &len, retval, - swiz, swizcount, smap, smapcount, errors); - if (errorlist_count(errors) == 0) - { - /* Parse "large" object table. */ - readlargeobjects(numlargeobjects, numsmallobjects, &ptr, &len, retval, - swiz, swizcount, smap, smapcount, errors); - } // if - - retval->error_count = errorlist_count(errors); - retval->errors = errorlist_flatten(errors); - errorlist_destroy(errors); - - return retval; - -parseEffect_unexpectedEOF: - MOJOSHADER_deleteEffect(retval); - return &MOJOSHADER_unexpected_eof_effect; -parseEffect_outOfMemory: - MOJOSHADER_deleteEffect(retval); - return &MOJOSHADER_out_of_mem_effect; -} // MOJOSHADER_parseEffect - - -void freetypeinfo(MOJOSHADER_symbolTypeInfo *typeinfo, - MOJOSHADER_free f, void *d) -{ - int i; - for (i = 0; i < typeinfo->member_count; i++) - { - f((void *) typeinfo->members[i].name, d); - freetypeinfo(&typeinfo->members[i].info, f, d); - } // for - f((void *) typeinfo->members, d); -} // freetypeinfo - - -void freevalue(MOJOSHADER_effectValue *value, MOJOSHADER_free f, void *d) -{ - int i; - f((void *) value->name, d); - f((void *) value->semantic, d); - freetypeinfo(&value->type, f, d); - if (value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER1D - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER2D - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER3D - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - for (i = 0; i < value->value_count; i++) - freevalue(&value->valuesSS[i].value, f, d); - f(value->values, d); -} // freevalue - - -void MOJOSHADER_deleteEffect(const MOJOSHADER_effect *_effect) -{ - MOJOSHADER_effect *effect = (MOJOSHADER_effect *) _effect; - if ((effect == NULL) || (effect == &MOJOSHADER_out_of_mem_effect)) - return; // no-op. - - MOJOSHADER_free f = effect->ctx.f; - void *d = effect->ctx.malloc_data; - int i, j, k; - - /* Free errors */ - for (i = 0; i < effect->error_count; i++) - { - f((void *) effect->errors[i].error, d); - f((void *) effect->errors[i].filename, d); - } // for - f((void *) effect->errors, d); - - /* Free parameters, including annotations */ - for (i = 0; i < effect->param_count; i++) - { - MOJOSHADER_effectParam *param = &effect->params[i]; - freevalue(¶m->value, f, d); - for (j = 0; j < param->annotation_count; j++) - { - freevalue(¶m->annotations[j], f, d); - } // for - f((void *) param->annotations, d); - } // for - f((void *) effect->params, d); - - /* Free techniques, including passes and all annotations */ - for (i = 0; i < effect->technique_count; i++) - { - MOJOSHADER_effectTechnique *technique = &effect->techniques[i]; - f((void *) technique->name, d); - for (j = 0; j < technique->pass_count; j++) - { - MOJOSHADER_effectPass *pass = &technique->passes[j]; - f((void *) pass->name, d); - for (k = 0; k < pass->state_count; k++) - { - freevalue(&pass->states[k].value, f, d); - } // for - f((void *) pass->states, d); - for (k = 0; k < pass->annotation_count; k++) - { - freevalue(&pass->annotations[k], f, d); - } // for - f((void *) pass->annotations, d); - } // for - f((void *) technique->passes, d); - for (j = 0; j < technique->annotation_count; j++) - { - freevalue(&technique->annotations[j], f, d); - } // for - f((void *) technique->annotations, d); - } // for - f((void *) effect->techniques, d); - - /* Free object table */ - for (i = 0; i < effect->object_count; i++) - { - MOJOSHADER_effectObject *object = &effect->objects[i]; - if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER - || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - if (object->shader.is_preshader) - MOJOSHADER_freePreshader(object->shader.preshader); - else - effect->ctx.deleteShader(effect->ctx.shaderContext, object->shader.shader); - f((void *) object->shader.params, d); - f((void *) object->shader.samplers, d); - f((void *) object->shader.preshader_params, d); - } // if - else if (object->type == MOJOSHADER_SYMTYPE_SAMPLER - || object->type == MOJOSHADER_SYMTYPE_SAMPLER1D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER2D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER3D - || object->type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - f((void *) object->mapping.name, d); - else if (object->type == MOJOSHADER_SYMTYPE_STRING) - f((void *) object->string.string, d); - } // for - f((void *) effect->objects, d); - - /* Free base effect structure */ - f((void *) effect, d); -} // MOJOSHADER_freeEffect - - -// !!! FIXME: Out of memory check! -#define COPY_STRING(location) \ - if (src->location != NULL) \ - { \ - siz = strlen(src->location) + 1; \ - stringcopy = (char *) m(siz, d); \ - strcpy(stringcopy, src->location); \ - dst->location = stringcopy; \ - } // if - - -void copysymboltypeinfo(MOJOSHADER_symbolTypeInfo *dst, - MOJOSHADER_symbolTypeInfo *src, - MOJOSHADER_malloc m, - void *d) -{ - int i; - uint32 siz = 0; - char *stringcopy = NULL; - memcpy(dst, src, sizeof (MOJOSHADER_symbolTypeInfo)); - if (dst->member_count > 0) - { - siz = dst->member_count * sizeof (MOJOSHADER_symbolStructMember); - dst->members = (MOJOSHADER_symbolStructMember *) m(siz, d); - for (i = 0; i < dst->member_count; i++) - { - COPY_STRING(members[i].name) - copysymboltypeinfo(&dst->members[i].info, &src->members[i].info, m, d); - } // for - } // if -} // copysymboltypeinfo - - -void copyvalue(MOJOSHADER_effectValue *dst, - MOJOSHADER_effectValue *src, - MOJOSHADER_malloc m, - void *d) -{ - int i; - uint32 siz = 0; - char *stringcopy = NULL; - - COPY_STRING(name) - COPY_STRING(semantic) - copysymboltypeinfo(&dst->type, &src->type, m, d); - dst->value_count = src->value_count; - - if (dst->type.parameter_class == MOJOSHADER_SYMCLASS_SCALAR - || dst->type.parameter_class == MOJOSHADER_SYMCLASS_VECTOR - || dst->type.parameter_class == MOJOSHADER_SYMCLASS_MATRIX_ROWS - || dst->type.parameter_class == MOJOSHADER_SYMCLASS_MATRIX_COLUMNS - || dst->type.parameter_class == MOJOSHADER_SYMCLASS_STRUCT) - { - siz = dst->value_count * 4; - dst->values = m(siz, d); - // !!! FIXME: Out of memory check! - memcpy(dst->values, src->values, siz); - } // if - else if (dst->type.parameter_class == MOJOSHADER_SYMCLASS_OBJECT) - { - if (dst->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER - || dst->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER1D - || dst->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER2D - || dst->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER3D - || dst->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - { - siz = dst->value_count * sizeof (MOJOSHADER_effectSamplerState); - dst->values = m(siz, d); - // !!! FIXME: Out of memory check! - memset(dst->values, '\0', siz); - for (i = 0; i < dst->value_count; i++) - { - dst->valuesSS[i].type = src->valuesSS[i].type; - copyvalue(&dst->valuesSS[i].value, - &src->valuesSS[i].value, - m, d); - } // for - } // if - else - { - siz = dst->value_count * 4; - dst->values = m(siz, d); - // !!! FIXME: Out of memory check! - memcpy(dst->values, src->values, siz); - } // else - } // else if - -} // copyvalue - - -#undef COPY_STRING - - -void copysymbolinfo(MOJOSHADER_symbolTypeInfo *dst, - MOJOSHADER_symbolTypeInfo *src, - MOJOSHADER_malloc m, - void *d) -{ - int i; - uint32 siz; - char *stringcopy; - - dst->parameter_class = src->parameter_class; - dst->parameter_type = src->parameter_type; - dst->rows = src->rows; - dst->columns = src->columns; - dst->elements = src->elements; - dst->member_count = src->member_count; - - if (dst->member_count > 0) - { - siz = sizeof (MOJOSHADER_symbolStructMember) * dst->member_count; - dst->members = (MOJOSHADER_symbolStructMember *) m(siz, d); - // !!! FIXME: Out of memory check! - for (i = 0; i < dst->member_count; i++) - { - if (src->members[i].name != NULL) - { - siz = strlen(src->members[i].name) + 1; - stringcopy = (char *) m(siz, d); - strcpy(stringcopy, src->members[i].name); - dst->members[i].name = stringcopy; - } // if - copysymbolinfo(&dst->members[i].info, &src->members[i].info, m, d); - } // for - } // if -} // copysymbolinfo - - -void copysymbol(MOJOSHADER_symbol *dst, - MOJOSHADER_symbol *src, - MOJOSHADER_malloc m, - void *d) -{ - uint32 siz = strlen(src->name) + 1; - char *stringcopy = (char *) m(siz, d); - // !!! FIXME: Out of memory check! - strcpy(stringcopy, src->name); - dst->name = stringcopy; - dst->register_set = src->register_set; - dst->register_index = src->register_index; - dst->register_count = src->register_count; - copysymbolinfo(&dst->info, &src->info, m, d); -} // copysymbol - - -MOJOSHADER_preshader *copypreshader(const MOJOSHADER_preshader *src, - MOJOSHADER_malloc m, - void *d) -{ - int i, j; - uint32 siz; - MOJOSHADER_preshader *retval; - - retval = (MOJOSHADER_preshader *) m(sizeof (MOJOSHADER_preshader), d); - // !!! FIXME: Out of memory check! - memset(retval, '\0', sizeof (MOJOSHADER_preshader)); - - siz = sizeof (double) * src->literal_count; - retval->literal_count = src->literal_count; - retval->literals = (double *) m(siz, d); - // !!! FIXME: Out of memory check! - memcpy(retval->literals, src->literals, siz); - - retval->temp_count = src->temp_count; - - siz = sizeof (MOJOSHADER_symbol) * src->symbol_count; - retval->symbol_count = src->symbol_count; - retval->symbols = (MOJOSHADER_symbol *) m(siz, d); - // !!! FIXME: Out of memory check! - memset(retval->symbols, '\0', siz); - - for (i = 0; i < retval->symbol_count; i++) - copysymbol(&retval->symbols[i], &src->symbols[i], m, d); - - siz = sizeof (MOJOSHADER_preshaderInstruction) * src->instruction_count; - retval->instruction_count = src->instruction_count; - retval->instructions = (MOJOSHADER_preshaderInstruction *) m(siz, d); - // !!! FIXME: Out of memory check! - memcpy(retval->instructions, src->instructions, siz); - for (i = 0; i < retval->instruction_count; i++) - for (j = 0; j < retval->instructions[i].operand_count; j++) - { - siz = sizeof (unsigned int) * retval->instructions[i].operands[j].array_register_count; - retval->instructions[i].operands[j].array_registers = (unsigned int *) m(siz, d); - // !!! FIXME: Out of memory check! - memcpy(retval->instructions[i].operands[j].array_registers, - src->instructions[i].operands[j].array_registers, - siz); - } // for - - siz = sizeof (float) * 4 * src->register_count; - retval->register_count = src->register_count; - retval->registers = (float *) m(siz, d); - // !!! FIXME: Out of memory check! - memcpy(retval->registers, src->registers, siz); - - return retval; -} // copypreshader - - -MOJOSHADER_effect *MOJOSHADER_cloneEffect(const MOJOSHADER_effect *effect) -{ - int i, j, k; - MOJOSHADER_parseData *pd; - MOJOSHADER_effect *clone; - MOJOSHADER_malloc m = effect->ctx.m; - void *d = effect->ctx.malloc_data; - uint32 siz = 0; - char *stringcopy = NULL; - uint32 curSampler; - - if ((effect == NULL) || (effect == &MOJOSHADER_out_of_mem_effect)) - return NULL; // no-op. - - clone = (MOJOSHADER_effect *) m(sizeof (MOJOSHADER_effect), d); - if (clone == NULL) - return NULL; // Maybe out_of_mem_effect instead? - memset(clone, '\0', sizeof (MOJOSHADER_effect)); - - /* Copy ctx */ - memcpy(&clone->ctx, &effect->ctx, sizeof(MOJOSHADER_effectShaderContext)); - - #define COPY_STRING(location) \ - siz = strlen(effect->location) + 1; \ - stringcopy = (char *) m(siz, d); \ - if (stringcopy == NULL) \ - goto cloneEffect_outOfMemory; \ - strcpy(stringcopy, effect->location); \ - clone->location = stringcopy; \ - - /* Copy errors */ - siz = sizeof (MOJOSHADER_error) * effect->error_count; - clone->error_count = effect->error_count; - clone->errors = (MOJOSHADER_error *) m(siz, d); - if (clone->errors == NULL) - goto cloneEffect_outOfMemory; - memset(clone->errors, '\0', siz); - for (i = 0; i < clone->error_count; i++) - { - COPY_STRING(errors[i].error) - COPY_STRING(errors[i].filename) - clone->errors[i].error_position = effect->errors[i].error_position; - } // for - - /* Copy parameters */ - siz = sizeof (MOJOSHADER_effectParam) * effect->param_count; - clone->param_count = effect->param_count; - clone->params = (MOJOSHADER_effectParam *) m(siz, d); - if (clone->params == NULL) - goto cloneEffect_outOfMemory; - memset(clone->params, '\0', siz); - for (i = 0; i < clone->param_count; i++) - { - copyvalue(&clone->params[i].value, &effect->params[i].value, m, d); - - /* Copy parameter annotations */ - siz = sizeof (MOJOSHADER_effectAnnotation) * effect->params[i].annotation_count; - clone->params[i].annotation_count = effect->params[i].annotation_count; - clone->params[i].annotations = (MOJOSHADER_effectAnnotation *) m(siz, d); - if (clone->params[i].annotations == NULL) - goto cloneEffect_outOfMemory; - memset(clone->params[i].annotations, '\0', siz); - for (j = 0; j < clone->params[i].annotation_count; j++) - copyvalue(&clone->params[i].annotations[j], - &effect->params[i].annotations[j], - m, d); - } // for - - /* Copy techniques */ - siz = sizeof (MOJOSHADER_effectTechnique) * effect->technique_count; - clone->technique_count = effect->technique_count; - clone->techniques = (MOJOSHADER_effectTechnique *) m(siz, d); - if (clone->techniques == NULL) - goto cloneEffect_outOfMemory; - memset(clone->techniques, '\0', siz); - for (i = 0; i < clone->technique_count; i++) - { - COPY_STRING(techniques[i].name) - - /* Copy passes */ - siz = sizeof (MOJOSHADER_effectPass) * effect->techniques[i].pass_count; - clone->techniques[i].pass_count = effect->techniques[i].pass_count; - clone->techniques[i].passes = (MOJOSHADER_effectPass *) m(siz, d); - if (clone->techniques[i].passes == NULL) - goto cloneEffect_outOfMemory; - memset(clone->techniques[i].passes, '\0', siz); - for (j = 0; j < clone->techniques[i].pass_count; j++) - { - COPY_STRING(techniques[i].passes[j].name) - - /* Copy pass states */ - siz = sizeof (MOJOSHADER_effectState) * effect->techniques[i].passes[j].state_count; - clone->techniques[i].passes[j].state_count = effect->techniques[i].passes[j].state_count; - clone->techniques[i].passes[j].states = (MOJOSHADER_effectState *) m(siz, d); - if (clone->techniques[i].passes[j].states == NULL) - goto cloneEffect_outOfMemory; - memset(clone->techniques[i].passes[j].states, '\0', siz); - for (k = 0; k < clone->techniques[i].passes[j].state_count; k++) - { - clone->techniques[i].passes[j].states[k].type = effect->techniques[i].passes[j].states[k].type; - copyvalue(&clone->techniques[i].passes[j].states[k].value, - &effect->techniques[i].passes[j].states[k].value, - m, d); - } // for - - /* Copy pass annotations */ - siz = sizeof (MOJOSHADER_effectAnnotation) * effect->techniques[i].passes[j].annotation_count; - clone->techniques[i].passes[j].annotation_count = effect->techniques[i].passes[j].annotation_count; - clone->techniques[i].passes[j].annotations = (MOJOSHADER_effectAnnotation *) m(siz, d); - if (clone->techniques[i].passes[j].annotations == NULL) - goto cloneEffect_outOfMemory; - memset(clone->techniques[i].passes[j].annotations, '\0', siz); - for (k = 0; k < clone->techniques[i].passes[j].annotation_count; k++) - copyvalue(&clone->techniques[i].passes[j].annotations[k], - &effect->techniques[i].passes[j].annotations[k], - m, d); - } // for - - /* Copy technique annotations */ - siz = sizeof (MOJOSHADER_effectAnnotation) * effect->techniques[i].annotation_count; - clone->techniques[i].annotation_count = effect->techniques[i].annotation_count; - clone->techniques[i].annotations = (MOJOSHADER_effectAnnotation *) m(siz, d); - if (clone->techniques[i].annotations == NULL) - goto cloneEffect_outOfMemory; - memset(clone->techniques[i].annotations, '\0', siz); - for (j = 0; j < clone->techniques[i].annotation_count; j++) - copyvalue(&clone->techniques[i].annotations[j], - &effect->techniques[i].annotations[j], - m, d); - } // for - - /* Copy the current technique/pass */ - for (i = 0; i < effect->technique_count; i++) - if (&effect->techniques[i] == effect->current_technique) - { - clone->current_technique = &clone->techniques[i]; - break; - } // if - assert(clone->current_technique != NULL); - clone->current_pass = effect->current_pass; - assert(clone->current_pass == -1); - - /* Copy object table */ - siz = sizeof (MOJOSHADER_effectObject) * effect->object_count; - clone->object_count = effect->object_count; - clone->objects = (MOJOSHADER_effectObject *) m(siz, d); - if (clone->objects == NULL) - goto cloneEffect_outOfMemory; - memset(clone->objects, '\0', siz); - for (i = 0; i < clone->object_count; i++) - { - clone->objects[i].type = effect->objects[i].type; - if (clone->objects[i].type == MOJOSHADER_SYMTYPE_PIXELSHADER - || clone->objects[i].type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - clone->objects[i].shader.technique = effect->objects[i].shader.technique; - clone->objects[i].shader.pass = effect->objects[i].shader.pass; - clone->objects[i].shader.is_preshader = effect->objects[i].shader.is_preshader; - siz = sizeof (uint32) * effect->objects[i].shader.preshader_param_count; - clone->objects[i].shader.preshader_param_count = effect->objects[i].shader.preshader_param_count; - clone->objects[i].shader.preshader_params = (uint32 *) m(siz, d); - memcpy(clone->objects[i].shader.preshader_params, - effect->objects[i].shader.preshader_params, - siz); - siz = sizeof (uint32) * effect->objects[i].shader.param_count; - clone->objects[i].shader.param_count = effect->objects[i].shader.param_count; - clone->objects[i].shader.params = (uint32 *) m(siz, d); - memcpy(clone->objects[i].shader.params, - effect->objects[i].shader.params, - siz); - - if (clone->objects[i].shader.is_preshader) - { - clone->objects[i].shader.preshader = copypreshader(effect->objects[i].shader.preshader, - m, d); - continue; - } // if - - effect->ctx.shaderAddRef(effect->objects[i].shader.shader); - clone->objects[i].shader.shader = effect->objects[i].shader.shader; - pd = clone->ctx.getParseData(clone->objects[i].shader.shader); - - siz = sizeof (MOJOSHADER_samplerStateRegister) * effect->objects[i].shader.sampler_count; - clone->objects[i].shader.sampler_count = effect->objects[i].shader.sampler_count; - clone->objects[i].shader.samplers = (MOJOSHADER_samplerStateRegister *) m(siz, d); - if (clone->objects[i].shader.samplers == NULL) - goto cloneEffect_outOfMemory; - curSampler = 0; - for (j = 0; j < pd->symbol_count; j++) - if (pd->symbols[j].register_set == MOJOSHADER_SYMREGSET_SAMPLER) - { - clone->objects[i].shader.samplers[curSampler].sampler_name = clone->params[clone->objects[i].shader.params[j]].value.name; - clone->objects[i].shader.samplers[curSampler].sampler_register = pd->symbols[j].register_index; - clone->objects[i].shader.samplers[curSampler].sampler_state_count = clone->params[clone->objects[i].shader.params[j]].value.value_count; - clone->objects[i].shader.samplers[curSampler].sampler_states = clone->params[clone->objects[i].shader.params[j]].value.valuesSS; - curSampler++; - } // if - } // if - else if (clone->objects[i].type == MOJOSHADER_SYMTYPE_SAMPLER - || clone->objects[i].type == MOJOSHADER_SYMTYPE_SAMPLER1D - || clone->objects[i].type == MOJOSHADER_SYMTYPE_SAMPLER2D - || clone->objects[i].type == MOJOSHADER_SYMTYPE_SAMPLER3D - || clone->objects[i].type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - { - COPY_STRING(objects[i].mapping.name) - } // else if - else if (clone->objects[i].type == MOJOSHADER_SYMTYPE_STRING) - { - COPY_STRING(objects[i].string.string) - } // else if - } // for - - #undef COPY_STRING - - return clone; - -cloneEffect_outOfMemory: - MOJOSHADER_deleteEffect(clone); - return NULL; -} // MOJOSHADER_cloneEffect - - -void MOJOSHADER_effectSetRawValueHandle(const MOJOSHADER_effectParam *parameter, - const void *data, - const unsigned int offset, - const unsigned int len) -{ - // !!! FIXME: char* case is arbitary, for Win32 -flibit - memcpy((char *) parameter->value.values + offset, data, len); -} // MOJOSHADER_effectSetRawValueHandle - - -void MOJOSHADER_effectSetRawValueName(const MOJOSHADER_effect *effect, - const char *name, - const void *data, - const unsigned int offset, - const unsigned int len) -{ - int i; - for (i = 0; i < effect->param_count; i++) - { - if (strcmp(name, effect->params[i].value.name) == 0) - { - // !!! FIXME: char* case is arbitary, for Win32 -flibit - memcpy((char *) effect->params[i].value.values + offset, data, len); - return; - } // if - } // for - assert(0 && "Effect parameter not found!"); -} // MOJOSHADER_effectSetRawValueName - - -const MOJOSHADER_effectTechnique *MOJOSHADER_effectGetCurrentTechnique(const MOJOSHADER_effect *effect) -{ - return effect->current_technique; -} // MOJOSHADER_effectGetCurrentTechnique - - -void MOJOSHADER_effectSetTechnique(MOJOSHADER_effect *effect, - const MOJOSHADER_effectTechnique *technique) -{ - int i; - for (i = 0; i < effect->technique_count; i++) - { - if (technique == &effect->techniques[i]) - { - effect->current_technique = technique; - return; - } // if - } // for - assert(0 && "Technique is not part of this effect!"); -} // MOJOSHADER_effectSetTechnique - - -const MOJOSHADER_effectTechnique *MOJOSHADER_effectFindNextValidTechnique(const MOJOSHADER_effect *effect, - const MOJOSHADER_effectTechnique *technique -) -{ - int i; - if (technique == NULL) - return &effect->techniques[0]; - for (i = 0; i < effect->technique_count; i++) - { - if (technique == &effect->techniques[i]) - { - if (i == effect->technique_count - 1) - return NULL; /* We were passed the last technique! */ - return &effect->techniques[i + 1]; - } // if - } // for - assert(0 && "Technique is not part of this effect!"); - return NULL; -} // MOJOSHADER_effectFindNextValidTechnique - - -void MOJOSHADER_effectBegin(MOJOSHADER_effect *effect, - unsigned int *numPasses, - int saveShaderState, - MOJOSHADER_effectStateChanges *stateChanges) -{ - *numPasses = effect->current_technique->pass_count; - effect->restore_shader_state = saveShaderState; - effect->state_changes = stateChanges; - - if (effect->restore_shader_state) - { - effect->ctx.getBoundShaders(effect->ctx.shaderContext, - &effect->prev_vertex_shader, - &effect->prev_pixel_shader); - } // if -} // MOJOSHADER_effectBegin - - -void MOJOSHADER_effectBeginPass(MOJOSHADER_effect *effect, - unsigned int pass) -{ - int i; - MOJOSHADER_effectPass *curPass; - MOJOSHADER_effectState *state; - MOJOSHADER_effectShader *rawVert = effect->current_vert_raw; - MOJOSHADER_effectShader *rawPixl = effect->current_pixl_raw; - int has_preshader = 0; - - effect->ctx.getBoundShaders(effect->ctx.shaderContext, - &effect->current_vert, - &effect->current_pixl); - - assert(effect->current_pass == -1); - effect->current_pass = pass; - curPass = &effect->current_technique->passes[pass]; - - // !!! FIXME: I bet this could be stored at parse/compile time. -flibit - for (i = 0; i < curPass->state_count; i++) - { - state = &curPass->states[i]; - if (state->type == MOJOSHADER_RS_VERTEXSHADER) - { - rawVert = &effect->objects[*state->value.valuesI].shader; - if (rawVert->is_preshader) - has_preshader = 1; - else - effect->current_vert = rawVert->shader; - } // if - else if (state->type == MOJOSHADER_RS_PIXELSHADER) - { - rawPixl = &effect->objects[*state->value.valuesI].shader; - if (rawPixl->is_preshader) - has_preshader = 1; - else - effect->current_pixl = rawPixl->shader; - } - } // for - - effect->state_changes->render_state_changes = curPass->states; - effect->state_changes->render_state_change_count = curPass->state_count; - - effect->current_vert_raw = rawVert; - effect->current_pixl_raw = rawPixl; - - /* If this effect pass has an array of shaders, we get to wait until - * CommitChanges to actually bind the final shaders. - * -flibit - */ - if (!has_preshader) - { - effect->ctx.bindShaders(effect->ctx.shaderContext, - effect->current_vert, - effect->current_pixl); - if (effect->current_vert_raw != NULL) - { - effect->state_changes->vertex_sampler_state_changes = rawVert->samplers; - effect->state_changes->vertex_sampler_state_change_count = rawVert->sampler_count; - } // if - if (effect->current_pixl_raw != NULL) - { - effect->state_changes->sampler_state_changes = rawPixl->samplers; - effect->state_changes->sampler_state_change_count = rawPixl->sampler_count; - } // if - } // if - - MOJOSHADER_effectCommitChanges(effect); -} // MOJOSHADER_effectBeginPass - - -static inline void copy_parameter_data(MOJOSHADER_effectParam *params, - unsigned int *param_loc, - MOJOSHADER_symbol *symbols, - unsigned int symbol_count, - float *regf, int *regi, uint8 *regb) -{ - int i, j, r, c; - - i = 0; - for (i = 0; i < symbol_count; i++) - { - const MOJOSHADER_symbol *sym = &symbols[i]; - const MOJOSHADER_effectValue *param = ¶ms[param_loc[i]].value; - - // float/int registers are vec4, so they have 4 elements each - const uint32 start = sym->register_index << 2; - - if (param->type.parameter_type == MOJOSHADER_SYMTYPE_FLOAT) - memcpy(regf + start, param->valuesF, sym->register_count << 4); - else if (sym->register_set == MOJOSHADER_SYMREGSET_FLOAT4) - { - // Structs are a whole different world... - if (param->type.parameter_class == MOJOSHADER_SYMCLASS_STRUCT) - memcpy(regf + start, param->valuesF, sym->register_count << 4); - else - { - // Sometimes int/bool parameters get thrown into float registers... - j = 0; - do - { - c = 0; - do - { - regf[start + (j << 2) + c] = (float) param->valuesI[(j << 2) + c]; - } while (++c < param->type.columns); - } while (++j < sym->register_count); - } // else - } // else if - else if (sym->register_set == MOJOSHADER_SYMREGSET_INT4) - memcpy(regi + start, param->valuesI, sym->register_count << 4); - else if (sym->register_set == MOJOSHADER_SYMREGSET_BOOL) - { - j = 0; - r = 0; - do - { - c = 0; - do - { - // regb is not a vec4, enjoy that 'start' bitshift! -flibit - regb[(start >> 2) + r + c] = param->valuesI[(j << 2) + c]; - c++; - } while (c < param->type.columns && ((r + c) < sym->register_count)); - r += c; - j++; - } while (r < sym->register_count); - } // else if - } // for -} // copy_parameter_data - - -void MOJOSHADER_effectCommitChanges(MOJOSHADER_effect *effect) -{ - MOJOSHADER_effectShader *rawVert = effect->current_vert_raw; - MOJOSHADER_effectShader *rawPixl = effect->current_pixl_raw; - - /* Used for shader selection from preshaders */ - int i, j; - MOJOSHADER_effectValue *param; - MOJOSHADER_parseData *pd; - float selector; - int shader_object; - int selector_ran = 0; - - float *vs_reg_file_f, *ps_reg_file_f; - int *vs_reg_file_i, *ps_reg_file_i; - uint8 *vs_reg_file_b, *ps_reg_file_b; - - /* For effect passes with arrays of shaders, we have to run a preshader - * that determines which shader to use, based on a parameter's value. - * -flibit - */ - // !!! FIXME: We're just running the preshaders every time. Blech. -flibit - #define SELECT_SHADER_FROM_PRESHADER(raw, gls) \ - if (raw != NULL && raw->is_preshader) \ - { \ - i = 0; \ - do \ - { \ - param = &effect->params[raw->preshader_params[i]].value; \ - for (j = 0; j < (param->value_count >> 2); j++) \ - memcpy(raw->preshader->registers + raw->preshader->symbols[i].register_index + j, \ - param->valuesI + (j << 2), \ - param->type.columns << 2); \ - } while (++i < raw->preshader->symbol_count); \ - MOJOSHADER_runPreshader(raw->preshader, &selector); \ - shader_object = effect->params[raw->params[0]].value.valuesI[(int) selector]; \ - raw = &effect->objects[shader_object].shader; \ - gls = raw->shader; \ - selector_ran = 1; \ - } - SELECT_SHADER_FROM_PRESHADER(rawVert, effect->current_vert) - SELECT_SHADER_FROM_PRESHADER(rawPixl, effect->current_pixl) - #undef SELECT_SHADER_FROM_PRESHADER - if (selector_ran) - { - effect->ctx.bindShaders(effect->ctx.shaderContext, - effect->current_vert, - effect->current_pixl); - if (effect->current_vert_raw != NULL) - { - effect->state_changes->vertex_sampler_state_changes = rawVert->samplers; - effect->state_changes->vertex_sampler_state_change_count = rawVert->sampler_count; - } // if - if (effect->current_pixl_raw != NULL) - { - effect->state_changes->sampler_state_changes = rawPixl->samplers; - effect->state_changes->sampler_state_change_count = rawPixl->sampler_count; - } // if - } // if - - /* This is where parameters are copied into the constant buffers. - * If you're looking for where things slow down immensely, look at - * the copy_parameter_data() and MOJOSHADER_runPreshader() functions. - * -flibit - */ - // !!! FIXME: We're just copying everything every time. Blech. -flibit - // !!! FIXME: We're just running the preshaders every time. Blech. -flibit - // !!! FIXME: Will the preshader ever want int/bool registers? -flibit - #define COPY_PARAMETER_DATA(raw, stage) \ - if (raw != NULL) \ - { \ - pd = effect->ctx.getParseData(raw->shader); \ - copy_parameter_data(effect->params, raw->params, \ - pd->symbols, \ - pd->symbol_count, \ - stage##_reg_file_f, \ - stage##_reg_file_i, \ - stage##_reg_file_b); \ - if (pd->preshader) \ - { \ - copy_parameter_data(effect->params, raw->preshader_params, \ - pd->preshader->symbols, \ - pd->preshader->symbol_count, \ - pd->preshader->registers, \ - NULL, \ - NULL); \ - MOJOSHADER_runPreshader(pd->preshader, stage##_reg_file_f); \ - } \ - } - effect->ctx.mapUniformBufferMemory(effect->ctx.shaderContext, - &vs_reg_file_f, &vs_reg_file_i, &vs_reg_file_b, - &ps_reg_file_f, &ps_reg_file_i, &ps_reg_file_b); - COPY_PARAMETER_DATA(rawVert, vs) - COPY_PARAMETER_DATA(rawPixl, ps) - effect->ctx.unmapUniformBufferMemory(effect->ctx.shaderContext); - #undef COPY_PARAMETER_DATA -} // MOJOSHADER_effectCommitChanges - - -void MOJOSHADER_effectEndPass(MOJOSHADER_effect *effect) -{ - assert(effect->current_pass != -1); - effect->current_pass = -1; -} // MOJOSHADER_effectEndPass - - -void MOJOSHADER_effectEnd(MOJOSHADER_effect *effect) -{ - if (effect->restore_shader_state) - { - effect->restore_shader_state = 0; - effect->ctx.bindShaders(effect->ctx.shaderContext, - effect->prev_vertex_shader, - effect->prev_pixel_shader); - } // if - - effect->state_changes = NULL; -} // MOJOSHADER_effectEnd - -#endif // MOJOSHADER_EFFECT_SUPPORT - -// end of mojoshader_effects.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_effects.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_effects.h deleted file mode 100644 index 48d9a4e9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_effects.h +++ /dev/null @@ -1,877 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#ifndef MOJOSHADER_EFFECTS_H -#define MOJOSHADER_EFFECTS_H - -#ifdef MOJOSHADER_EFFECT_SUPPORT - -/* MOJOSHADER_effectState types... */ - -typedef enum MOJOSHADER_renderStateType -{ - /* Note that we are NOT using the actual RS values from D3D here. - * For some reason, in the binary data, it's 0-based. - * Even worse, it doesn't even seem to be in order. - * Here is the list of changes compared to the real D3DRS enum: - * - All of the RS_WRAP values are in a row, not separate! - * - * -flibit - */ - MOJOSHADER_RS_ZENABLE, - MOJOSHADER_RS_FILLMODE, - MOJOSHADER_RS_SHADEMODE, - MOJOSHADER_RS_ZWRITEENABLE, - MOJOSHADER_RS_ALPHATESTENABLE, - MOJOSHADER_RS_LASTPIXEL, - MOJOSHADER_RS_SRCBLEND, - MOJOSHADER_RS_DESTBLEND, - MOJOSHADER_RS_CULLMODE, - MOJOSHADER_RS_ZFUNC, - MOJOSHADER_RS_ALPHAREF, - MOJOSHADER_RS_ALPHAFUNC, - MOJOSHADER_RS_DITHERENABLE, - MOJOSHADER_RS_ALPHABLENDENABLE, - MOJOSHADER_RS_FOGENABLE, - MOJOSHADER_RS_SPECULARENABLE, - MOJOSHADER_RS_FOGCOLOR, - MOJOSHADER_RS_FOGTABLEMODE, - MOJOSHADER_RS_FOGSTART, - MOJOSHADER_RS_FOGEND, - MOJOSHADER_RS_FOGDENSITY, - MOJOSHADER_RS_RANGEFOGENABLE, - MOJOSHADER_RS_STENCILENABLE, - MOJOSHADER_RS_STENCILFAIL, - MOJOSHADER_RS_STENCILZFAIL, - MOJOSHADER_RS_STENCILPASS, - MOJOSHADER_RS_STENCILFUNC, - MOJOSHADER_RS_STENCILREF, - MOJOSHADER_RS_STENCILMASK, - MOJOSHADER_RS_STENCILWRITEMASK, - MOJOSHADER_RS_TEXTUREFACTOR, - MOJOSHADER_RS_WRAP0, - MOJOSHADER_RS_WRAP1, - MOJOSHADER_RS_WRAP2, - MOJOSHADER_RS_WRAP3, - MOJOSHADER_RS_WRAP4, - MOJOSHADER_RS_WRAP5, - MOJOSHADER_RS_WRAP6, - MOJOSHADER_RS_WRAP7, - MOJOSHADER_RS_WRAP8, - MOJOSHADER_RS_WRAP9, - MOJOSHADER_RS_WRAP10, - MOJOSHADER_RS_WRAP11, - MOJOSHADER_RS_WRAP12, - MOJOSHADER_RS_WRAP13, - MOJOSHADER_RS_WRAP14, - MOJOSHADER_RS_WRAP15, - MOJOSHADER_RS_CLIPPING, - MOJOSHADER_RS_LIGHTING, - MOJOSHADER_RS_AMBIENT, - MOJOSHADER_RS_FOGVERTEXMODE, - MOJOSHADER_RS_COLORVERTEX, - MOJOSHADER_RS_LOCALVIEWER, - MOJOSHADER_RS_NORMALIZENORMALS, - MOJOSHADER_RS_DIFFUSEMATERIALSOURCE, - MOJOSHADER_RS_SPECULARMATERIALSOURCE, - MOJOSHADER_RS_AMBIENTMATERIALSOURCE, - MOJOSHADER_RS_EMISSIVEMATERIALSOURCE, - MOJOSHADER_RS_VERTEXBLEND, - MOJOSHADER_RS_CLIPPLANEENABLE, - MOJOSHADER_RS_POINTSIZE, - MOJOSHADER_RS_POINTSIZE_MIN, - MOJOSHADER_RS_POINTSPRITEENABLE, - MOJOSHADER_RS_POINTSCALEENABLE, - MOJOSHADER_RS_POINTSCALE_A, - MOJOSHADER_RS_POINTSCALE_B, - MOJOSHADER_RS_POINTSCALE_C, - MOJOSHADER_RS_MULTISAMPLEANTIALIAS, - MOJOSHADER_RS_MULTISAMPLEMASK, - MOJOSHADER_RS_PATCHEDGESTYLE, - MOJOSHADER_RS_DEBUGMONITORTOKEN, - MOJOSHADER_RS_POINTSIZE_MAX, - MOJOSHADER_RS_INDEXEDVERTEXBLENDENABLE, - MOJOSHADER_RS_COLORWRITEENABLE, - MOJOSHADER_RS_TWEENFACTOR, - MOJOSHADER_RS_BLENDOP, - MOJOSHADER_RS_POSITIONDEGREE, - MOJOSHADER_RS_NORMALDEGREE, - MOJOSHADER_RS_SCISSORTESTENABLE, - MOJOSHADER_RS_SLOPESCALEDEPTHBIAS, - MOJOSHADER_RS_ANTIALIASEDLINEENABLE, - MOJOSHADER_RS_MINTESSELLATIONLEVEL, - MOJOSHADER_RS_MAXTESSELLATIONLEVEL, - MOJOSHADER_RS_ADAPTIVETESS_X, - MOJOSHADER_RS_ADAPTIVETESS_Y, - MOJOSHADER_RS_ADAPTIVETESS_Z, - MOJOSHADER_RS_ADAPTIVETESS_W, - MOJOSHADER_RS_ENABLEADAPTIVETESSELLATION, - MOJOSHADER_RS_TWOSIDEDSTENCILMODE, - MOJOSHADER_RS_CCW_STENCILFAIL, - MOJOSHADER_RS_CCW_STENCILZFAIL, - MOJOSHADER_RS_CCW_STENCILPASS, - MOJOSHADER_RS_CCW_STENCILFUNC, - MOJOSHADER_RS_COLORWRITEENABLE1, - MOJOSHADER_RS_COLORWRITEENABLE2, - MOJOSHADER_RS_COLORWRITEENABLE3, - MOJOSHADER_RS_BLENDFACTOR, - MOJOSHADER_RS_SRGBWRITEENABLE, - MOJOSHADER_RS_DEPTHBIAS, - MOJOSHADER_RS_SEPARATEALPHABLENDENABLE, - MOJOSHADER_RS_SRCBLENDALPHA, - MOJOSHADER_RS_DESTBLENDALPHA, - MOJOSHADER_RS_BLENDOPALPHA, - - /* These aren't really "states", but these numbers are - * referred to by MOJOSHADER_effectStateType as such. - */ - MOJOSHADER_RS_VERTEXSHADER = 146, - MOJOSHADER_RS_PIXELSHADER = 147 -} MOJOSHADER_renderStateType; - -typedef enum MOJOSHADER_zBufferType -{ - MOJOSHADER_ZB_FALSE, - MOJOSHADER_ZB_TRUE, - MOJOSHADER_ZB_USEW -} MOJOSHADER_zBufferType; - -typedef enum MOJOSHADER_fillMode -{ - MOJOSHADER_FILL_POINT = 1, - MOJOSHADER_FILL_WIREFRAME = 2, - MOJOSHADER_FILL_SOLID = 3 -} MOJOSHADER_fillMode; - -typedef enum MOJOSHADER_shadeMode -{ - MOJOSHADER_SHADE_FLAT = 1, - MOJOSHADER_SHADE_GOURAUD = 2, - MOJOSHADER_SHADE_PHONG = 3 -} MOJOSHADER_shadeMode; - -typedef enum MOJOSHADER_blendMode -{ - MOJOSHADER_BLEND_ZERO = 1, - MOJOSHADER_BLEND_ONE = 2, - MOJOSHADER_BLEND_SRCCOLOR = 3, - MOJOSHADER_BLEND_INVSRCCOLOR = 4, - MOJOSHADER_BLEND_SRCALPHA = 5, - MOJOSHADER_BLEND_INVSRCALPHA = 6, - MOJOSHADER_BLEND_DESTALPHA = 7, - MOJOSHADER_BLEND_INVDESTALPHA = 8, - MOJOSHADER_BLEND_DESTCOLOR = 9, - MOJOSHADER_BLEND_INVDESTCOLOR = 10, - MOJOSHADER_BLEND_SRCALPHASAT = 11, - MOJOSHADER_BLEND_BOTHSRCALPHA = 12, - MOJOSHADER_BLEND_BOTHINVSRCALPHA = 13, - MOJOSHADER_BLEND_BLENDFACTOR = 14, - MOJOSHADER_BLEND_INVBLENDFACTOR = 15, - MOJOSHADER_BLEND_SRCCOLOR2 = 16, - MOJOSHADER_BLEND_INVSRCCOLOR2 = 17 -} MOJOSHADER_blendMode; - -typedef enum MOJOSHADER_cullMode -{ - MOJOSHADER_CULL_NONE = 1, - MOJOSHADER_CULL_CW = 2, - MOJOSHADER_CULL_CCW = 3 -} MOJOSHADER_cullMode; - -typedef enum MOJOSHADER_compareFunc -{ - MOJOSHADER_CMP_NEVER = 1, - MOJOSHADER_CMP_LESS = 2, - MOJOSHADER_CMP_EQUAL = 3, - MOJOSHADER_CMP_LESSEQUAL = 4, - MOJOSHADER_CMP_GREATER = 5, - MOJOSHADER_CMP_NOTEQUAL = 6, - MOJOSHADER_CMP_GREATEREQUAL = 7, - MOJOSHADER_CMP_ALWAYS = 8 -} MOJOSHADER_compareFunc; - -typedef enum MOJOSHADER_fogMode -{ - MOJOSHADER_FOG_NONE, - MOJOSHADER_FOG_EXP, - MOJOSHADER_FOG_EXP2, - MOJOSHADER_FOG_LINEAR -} MOJOSHADER_fogMode; - -typedef enum MOJOSHADER_stencilOp -{ - MOJOSHADER_STENCILOP_KEEP = 1, - MOJOSHADER_STENCILOP_ZERO = 2, - MOJOSHADER_STENCILOP_REPLACE = 3, - MOJOSHADER_STENCILOP_INCRSAT = 4, - MOJOSHADER_STENCILOP_DECRSAT = 5, - MOJOSHADER_STENCILOP_INVERT = 6, - MOJOSHADER_STENCILOP_INCR = 7, - MOJOSHADER_STENCILOP_DECR = 8 -} MOJOSHADER_stencilOp; - -typedef enum MOJOSHADER_materialColorSource -{ - MOJOSHADER_MCS_MATERIAL, - MOJOSHADER_MCS_COLOR1, - MOJOSHADER_MCS_COLOR2 -} MOJOSHADER_materialColorSource; - -typedef enum MOJOSHADER_vertexBlendFlags -{ - MOJOSHADER_VBF_DISABLE = 0, - MOJOSHADER_VBF_1WEIGHTS = 1, - MOJOSHADER_VBF_2WEIGHTS = 2, - MOJOSHADER_VBF_3WEIGHTS = 3, - MOJOSHADER_VBF_TWEENING = 255, - MOJOSHADER_VBF_0WEIGHTS = 256 -} MOJOSHADER_vertexBlendFlags; - -typedef enum MOJOSHADER_patchedEdgeStyle -{ - MOJOSHADER_PATCHEDGE_DISCRETE, - MOJOSHADER_PATCHEDGE_CONTINUOUS -} MOJOSHADER_patchedEdgeStyle; - -typedef enum MOJOSHADER_debugMonitorTokens -{ - MOJOSHADER_DMT_ENABLE, - MOJOSHADER_DMT_DISABLE -} MOJOSHADER_debugMonitorTokens; - -typedef enum MOJOSHADER_blendOp -{ - MOJOSHADER_BLENDOP_ADD = 1, - MOJOSHADER_BLENDOP_SUBTRACT = 2, - MOJOSHADER_BLENDOP_REVSUBTRACT = 3, - MOJOSHADER_BLENDOP_MIN = 4, - MOJOSHADER_BLENDOP_MAX = 5 -} MOJOSHADER_blendOp; - -typedef enum MOJOSHADER_degreeType -{ - MOJOSHADER_DEGREE_LINEAR = 1, - MOJOSHADER_DEGREE_QUADRATIC = 2, - MOJOSHADER_DEGREE_CUBIC = 3, - MOJOSHADER_DEGREE_QUINTIC = 5 -} MOJOSHADER_degreeType; - - -/* MOJOSHADER_effectSamplerState types... */ - -typedef enum MOJOSHADER_samplerStateType -{ - MOJOSHADER_SAMP_UNKNOWN0 = 0, - MOJOSHADER_SAMP_UNKNOWN1 = 1, - MOJOSHADER_SAMP_UNKNOWN2 = 2, - MOJOSHADER_SAMP_UNKNOWN3 = 3, - MOJOSHADER_SAMP_TEXTURE = 4, - MOJOSHADER_SAMP_ADDRESSU = 5, - MOJOSHADER_SAMP_ADDRESSV = 6, - MOJOSHADER_SAMP_ADDRESSW = 7, - MOJOSHADER_SAMP_BORDERCOLOR = 8, - MOJOSHADER_SAMP_MAGFILTER = 9, - MOJOSHADER_SAMP_MINFILTER = 10, - MOJOSHADER_SAMP_MIPFILTER = 11, - MOJOSHADER_SAMP_MIPMAPLODBIAS = 12, - MOJOSHADER_SAMP_MAXMIPLEVEL = 13, - MOJOSHADER_SAMP_MAXANISOTROPY = 14, - MOJOSHADER_SAMP_SRGBTEXTURE = 15, - MOJOSHADER_SAMP_ELEMENTINDEX = 16, - MOJOSHADER_SAMP_DMAPOFFSET = 17 -} MOJOSHADER_samplerStateType; - -typedef enum MOJOSHADER_textureAddress -{ - MOJOSHADER_TADDRESS_WRAP = 1, - MOJOSHADER_TADDRESS_MIRROR = 2, - MOJOSHADER_TADDRESS_CLAMP = 3, - MOJOSHADER_TADDRESS_BORDER = 4, - MOJOSHADER_TADDRESS_MIRRORONCE = 5 -} MOJOSHADER_textureAddress; - -typedef enum MOJOSHADER_textureFilterType -{ - MOJOSHADER_TEXTUREFILTER_NONE, - MOJOSHADER_TEXTUREFILTER_POINT, - MOJOSHADER_TEXTUREFILTER_LINEAR, - MOJOSHADER_TEXTUREFILTER_ANISOTROPIC, - MOJOSHADER_TEXTUREFILTER_PYRAMIDALQUAD, - MOJOSHADER_TEXTUREFILTER_GAUSSIANQUAD, - MOJOSHADER_TEXTUREFILTER_CONVOLUTIONMONO -} MOJOSHADER_textureFilterType; - - -/* Effect value types... */ - -typedef struct MOJOSHADER_effectSamplerState MOJOSHADER_effectSamplerState; - -typedef struct MOJOSHADER_effectValue -{ - const char *name; - const char *semantic; - MOJOSHADER_symbolTypeInfo type; - unsigned int value_count; - MOJOSHADERNAMELESS union - { - /* Raw value types */ - void *values; - int *valuesI; - float *valuesF; - /* As used by MOJOSHADER_effectState */ - MOJOSHADER_zBufferType *valuesZBT; - MOJOSHADER_fillMode *valuesFiM; - MOJOSHADER_shadeMode *valuesSM; - MOJOSHADER_blendMode *valuesBM; - MOJOSHADER_cullMode *valuesCM; - MOJOSHADER_compareFunc *valuesCF; - MOJOSHADER_fogMode *valuesFoM; - MOJOSHADER_stencilOp *valuesSO; - MOJOSHADER_materialColorSource *valuesMCS; - MOJOSHADER_vertexBlendFlags *valuesVBF; - MOJOSHADER_patchedEdgeStyle *valuesPES; - MOJOSHADER_debugMonitorTokens *valuesDMT; - MOJOSHADER_blendOp *valuesBO; - MOJOSHADER_degreeType *valuesDT; - /* As used by MOJOSHADER_effectSamplerState */ - MOJOSHADER_textureAddress *valuesTA; - MOJOSHADER_textureFilterType *valuesTFT; - /* As used by MOJOSHADER_effectParameter */ - MOJOSHADER_effectSamplerState *valuesSS; - }; -} MOJOSHADER_effectValue; - -typedef struct MOJOSHADER_effectState -{ - MOJOSHADER_renderStateType type; - MOJOSHADER_effectValue value; -} MOJOSHADER_effectState; - -struct MOJOSHADER_effectSamplerState -{ - MOJOSHADER_samplerStateType type; - MOJOSHADER_effectValue value; -}; - -typedef MOJOSHADER_effectValue MOJOSHADER_effectAnnotation; - - -/* Effect interface structures... */ - -typedef struct MOJOSHADER_effectParam -{ - MOJOSHADER_effectValue value; - unsigned int annotation_count; - MOJOSHADER_effectAnnotation *annotations; -} MOJOSHADER_effectParam; - -typedef struct MOJOSHADER_effectPass -{ - const char *name; - unsigned int state_count; - MOJOSHADER_effectState *states; - unsigned int annotation_count; - MOJOSHADER_effectAnnotation* annotations; -} MOJOSHADER_effectPass; - -typedef struct MOJOSHADER_effectTechnique -{ - const char *name; - unsigned int pass_count; - MOJOSHADER_effectPass *passes; - unsigned int annotation_count; - MOJOSHADER_effectAnnotation* annotations; -} MOJOSHADER_effectTechnique; - - -/* Effect "objects"... */ - -/* Defined later in the state change types... */ -typedef struct MOJOSHADER_samplerStateRegister MOJOSHADER_samplerStateRegister; - -typedef struct MOJOSHADER_effectShader -{ - MOJOSHADER_symbolType type; - unsigned int technique; - unsigned int pass; - unsigned int is_preshader; - unsigned int preshader_param_count; - unsigned int *preshader_params; - unsigned int param_count; - unsigned int *params; - unsigned int sampler_count; - MOJOSHADER_samplerStateRegister *samplers; - MOJOSHADERNAMELESS union - { - void *shader; /* glShader, mtlShader, etc. */ - const MOJOSHADER_preshader *preshader; - }; -} MOJOSHADER_effectShader; - -typedef struct MOJOSHADER_effectSamplerMap -{ - MOJOSHADER_symbolType type; - const char *name; -} MOJOSHADER_effectSamplerMap; - -typedef struct MOJOSHADER_effectString -{ - MOJOSHADER_symbolType type; - const char *string; -} MOJOSHADER_effectString; - -typedef struct MOJOSHADER_effectTexture -{ - MOJOSHADER_symbolType type; - /* FIXME: Does this even do anything? */ -} MOJOSHADER_effectTexture; - -typedef union MOJOSHADER_effectObject -{ - MOJOSHADER_symbolType type; - MOJOSHADERNAMELESS union - { - MOJOSHADER_effectShader shader; - MOJOSHADER_effectSamplerMap mapping; - MOJOSHADER_effectString string; - MOJOSHADER_effectTexture texture; - }; -} MOJOSHADER_effectObject; - - -/* Effect state change types... */ - -/* Used to store sampler states with accompanying sampler registers */ -struct MOJOSHADER_samplerStateRegister -{ - const char *sampler_name; - unsigned int sampler_register; - unsigned int sampler_state_count; - const MOJOSHADER_effectSamplerState *sampler_states; -}; - -/* - * Used to acquire the desired render state by the effect pass. - */ -typedef struct MOJOSHADER_effectStateChanges -{ - /* Render state changes caused by effect technique */ - unsigned int render_state_change_count; - const MOJOSHADER_effectState *render_state_changes; - - /* Sampler state changes caused by effect technique */ - unsigned int sampler_state_change_count; - const MOJOSHADER_samplerStateRegister *sampler_state_changes; - - /* Vertex sampler state changes caused by effect technique */ - unsigned int vertex_sampler_state_change_count; - const MOJOSHADER_samplerStateRegister *vertex_sampler_state_changes; -} MOJOSHADER_effectStateChanges; - - -/* - * VTable system for building/running effect shaders... - */ - -typedef void* (MOJOSHADERCALL * MOJOSHADER_compileShaderFunc)( - const void *ctx, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount -); -typedef void (MOJOSHADERCALL * MOJOSHADER_shaderAddRefFunc)(void* shader); -typedef void (MOJOSHADERCALL * MOJOSHADER_deleteShaderFunc)( - const void *ctx, - void* shader -); -typedef MOJOSHADER_parseData* (MOJOSHADERCALL * MOJOSHADER_getParseDataFunc)( - void *shader -); -typedef void (MOJOSHADERCALL * MOJOSHADER_bindShadersFunc)( - const void *ctx, - void *vshader, - void *pshader -); -typedef void (MOJOSHADERCALL * MOJOSHADER_getBoundShadersFunc)( - const void *ctx, - void **vshader, - void **pshader -); -typedef void (MOJOSHADERCALL * MOJOSHADER_mapUniformBufferMemoryFunc)( - const void *ctx, - float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb -); -typedef void (MOJOSHADERCALL * MOJOSHADER_unmapUniformBufferMemoryFunc)( - const void *ctx -); -typedef const char* (MOJOSHADERCALL * MOJOSHADER_getErrorFunc)( - const void *ctx -); - -typedef struct MOJOSHADER_effectShaderContext -{ - /* Shader Backend */ - MOJOSHADER_compileShaderFunc compileShader; - MOJOSHADER_shaderAddRefFunc shaderAddRef; - MOJOSHADER_deleteShaderFunc deleteShader; - MOJOSHADER_getParseDataFunc getParseData; - MOJOSHADER_bindShadersFunc bindShaders; - MOJOSHADER_getBoundShadersFunc getBoundShaders; - MOJOSHADER_mapUniformBufferMemoryFunc mapUniformBufferMemory; - MOJOSHADER_unmapUniformBufferMemoryFunc unmapUniformBufferMemory; - MOJOSHADER_getErrorFunc getError; - - /* Shader context */ - const void *shaderContext; - - /* Allocator */ - MOJOSHADER_malloc m; - MOJOSHADER_free f; - void *malloc_data; -} MOJOSHADER_effectShaderContext; - - -/* - * Structure used to return data from parsing of an effect file... - */ -/* !!! FIXME: most of these ints should be unsigned. */ -typedef struct MOJOSHADER_effect -{ - /* - * Public members. These are the fields your application cares about! - */ - - /* - * The number of elements pointed to by (errors). - */ - int error_count; - - /* - * (error_count) elements of data that specify errors that were generated - * by parsing this shader. - * This can be NULL if there were no errors or if (error_count) is zero. - */ - MOJOSHADER_error *errors; - - /* - * The number of params pointed to by (params). - */ - int param_count; - - /* - * (param_count) elements of data that specify parameter bind points for - * this effect. - * This can be NULL on error or if (param_count) is zero. - */ - MOJOSHADER_effectParam *params; - - /* - * The number of elements pointed to by (techniques). - */ - int technique_count; - - /* - * (technique_count) elements of data that specify techniques used in - * this effect. Each technique contains a series of passes, and each pass - * specifies state and shaders that affect rendering. - * This can be NULL on error or if (technique_count) is zero. - */ - MOJOSHADER_effectTechnique *techniques; - - /* - * The number of elements pointed to by (objects). - */ - int object_count; - - /* - * (object_count) elements of data that specify objects used in - * this effect. - * This can be NULL on error or if (object_count) is zero. - */ - MOJOSHADER_effectObject *objects; - - /* - * Semi-public members. These might be useful, but are better to access from - * a function, not directly. - */ - - /* - * The technique currently being rendered by this effect. - */ - const MOJOSHADER_effectTechnique *current_technique; - - /* - * The index of the current pass being rendered by this effect. - */ - int current_pass; - - /* - * Private Members. Do not touch anything below this line! - */ - - /* - * Value used to determine whether or not to restore the previous shader - * state after rendering an effect, as requested by application. - */ - int restore_shader_state; - - /* - * The structure provided by the appliation to store the state changes. - */ - MOJOSHADER_effectStateChanges *state_changes; - - /* - * Values used to store the current shader state during execution. - */ - MOJOSHADER_effectShader *current_vert_raw; - MOJOSHADER_effectShader *current_pixl_raw; - void *current_vert; - void *current_pixl; - - /* - * Values used to restore shader state after the effect has ended. - */ - void *prev_vertex_shader; - void *prev_pixel_shader; - - /* - * This is the shader implementation you passed to MOJOSHADER_compileEffect(). - */ - MOJOSHADER_effectShaderContext ctx; -} MOJOSHADER_effect; - - -/* Effect compiling interface... */ - -/* Fully compile/link the shaders found within the effect. - * - * (tokenbuf) is a buffer of Direct3D shader bytecode. - * (bufsize) is the size, in bytes, of the bytecode buffer. - * (swiz), (swizcount), (smap), and (smapcount) are passed to - * MOJOSHADER_parse() unmolested. - * (ctx) contains all the function pointers needed to create and bind shaders - * for a specific backend (OpenGL, Metal, etc). - * - * This function returns a MOJOSHADER_effect*, containing effect data which - * includes shaders usable with the provided backend. - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC MOJOSHADER_effect *MOJOSHADER_compileEffect(const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount, - const MOJOSHADER_effectShaderContext *ctx); - -/* Delete the shaders that were allocated for an effect. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC void MOJOSHADER_deleteEffect(const MOJOSHADER_effect *effect); - -/* Copies an effect, including current parameter/technique data. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * - * This function returns a MOJOSHADER_effect*, containing effect data which - * includes shaders usable with the provided backend. - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC MOJOSHADER_effect *MOJOSHADER_cloneEffect(const MOJOSHADER_effect *effect); - - -/* Effect parameter interface... */ - -/* Set the constant value for the specified effect parameter. - * - * This function maps to ID3DXEffect::SetRawValue. - * - * (parameter) is a parameter obtained from a MOJOSHADER_effect*. - * (data) is the constant values to be applied to the parameter. - * (offset) is the offset, in bytes, of the parameter data being modified. - * (len) is the size, in bytes, of the data buffer being applied. - * - * This function is thread safe. - */ -DECLSPEC void MOJOSHADER_effectSetRawValueHandle(const MOJOSHADER_effectParam *parameter, - const void *data, - const unsigned int offset, - const unsigned int len); - -/* Set the constant value for the effect parameter, specified by name. - * Note: this function is slower than MOJOSHADER_effectSetRawValueHandle(), - * but we still provide it to fully map to ID3DXEffect. - * - * This function maps to ID3DXEffect::SetRawValue. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * (name) is the human-readable name of the parameter being modified. - * (data) is the constant values to be applied to the parameter. - * (offset) is the offset, in bytes, of the parameter data being modified. - * (len) is the size, in bytes, of the data buffer being applied. - * - * This function is thread safe. - */ -DECLSPEC void MOJOSHADER_effectSetRawValueName(const MOJOSHADER_effect *effect, - const char *name, - const void *data, - const unsigned int offset, - const unsigned int len); - - -/* Effect technique interface... */ - -/* Get the current technique in use by an effect. - * - * This function maps to ID3DXEffect::GetCurrentTechnique. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * - * This function returns the technique currently used by the given effect. - * - * This function is thread safe. - */ -DECLSPEC const MOJOSHADER_effectTechnique *MOJOSHADER_effectGetCurrentTechnique(const MOJOSHADER_effect *effect); - -/* Set the current technique to be used an effect. - * - * This function maps to ID3DXEffect::SetTechnique. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * (technique) is the technique to be used by the effect when rendered. - * - * This function is thread safe. - */ -DECLSPEC void MOJOSHADER_effectSetTechnique(MOJOSHADER_effect *effect, - const MOJOSHADER_effectTechnique *technique); - -/* Get the next technique in an effect's list. - * - * This function maps to ID3DXEffect::FindNextValidTechnique. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * (technique) can either be a technique found in the given effect, or NULL to - * find the first technique in the given effect. - * - * This function returns either the next technique after the passed technique, - * or the first technique if the passed technique is NULL. - * - * This function is thread safe. - */ -DECLSPEC const MOJOSHADER_effectTechnique *MOJOSHADER_effectFindNextValidTechnique(const MOJOSHADER_effect *effect, - const MOJOSHADER_effectTechnique *technique); - - -/* Effect rendering interface... */ - -/* Prepare the effect for rendering with the currently applied technique. - * - * This function maps to ID3DXEffect::Begin. - * - * In addition to the expected Begin parameters, we also include a parameter - * to pass in a MOJOSHADER_effectRenderState. Rather than change the render - * state within MojoShader itself we will simply provide what the effect wants - * and allow you to use this information with your own renderer. - * MOJOSHADER_effectBeginPass will update with the render state desired by - * the current effect pass. - * - * Note that we only provide the ability to preserve the shader state, but NOT - * the ability to preserve the render/sampler states. You are expected to - * track your own GL state and restore these states as needed for your - * application. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * (numPasses) will be filled with the number of passes that this technique - * will need to fully render. - * (saveShaderState) is a boolean value informing the effect whether or not to - * restore the shader bindings after calling MOJOSHADER_effectEnd. - * (renderState) will be filled by the effect to inform you of the render state - * changes introduced by the technique and its passes. - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC void MOJOSHADER_effectBegin(MOJOSHADER_effect *effect, - unsigned int *numPasses, - int saveShaderState, - MOJOSHADER_effectStateChanges *stateChanges); - -/* Begin an effect pass from the currently applied technique. - * - * This function maps to ID3DXEffect::BeginPass. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * (pass) is the index of the effect pass as found in the current technique. - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC void MOJOSHADER_effectBeginPass(MOJOSHADER_effect *effect, - unsigned int pass); - -/* Push render state changes that occurred within an actively rendering pass. - * - * This function maps to ID3DXEffect::CommitChanges. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC void MOJOSHADER_effectCommitChanges(MOJOSHADER_effect *effect); - -/* End an effect pass from the currently applied technique. - * - * This function maps to ID3DXEffect::EndPass. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC void MOJOSHADER_effectEndPass(MOJOSHADER_effect *effect); - -/* Complete rendering the effect technique, and restore the render state. - * - * This function maps to ID3DXEffect::End. - * - * (effect) is a MOJOSHADER_effect* obtained from MOJOSHADER_compileEffect(). - * - * This call is only as thread safe as the backend functions! - */ -DECLSPEC void MOJOSHADER_effectEnd(MOJOSHADER_effect *effect); - - -/* Profile-specific functions... */ - -/* - * Compile a MTLLibrary that contains all shaders of the given effect. - * - * This call requires a valid MOJOSHADER_mtlContext to have been created, - * or it will crash your program. See MOJOSHADER_mtlCreateContext(). - * - * Returns NULL on error, the generated MTLLibrary on success. - */ -DECLSPEC void *MOJOSHADER_mtlCompileLibrary(MOJOSHADER_effect *effect); - -/* - * Free the MTLLibrary given by (library). - */ -DECLSPEC void MOJOSHADER_mtlDeleteLibrary(void *library); - - -#endif /* MOJOSHADER_EFFECT_SUPPORT */ - -#endif /* MOJOSHADER_EFFECTS_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_internal.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_internal.h deleted file mode 100644 index 0ea43fde..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_internal.h +++ /dev/null @@ -1,900 +0,0 @@ -#ifndef _INCLUDE_MOJOSHADER_INTERNAL_H_ -#define _INCLUDE_MOJOSHADER_INTERNAL_H_ - -#ifndef __MOJOSHADER_INTERNAL__ -#error Do not include this header from your applications. -#endif - -// Shader bytecode format is described at MSDN: -// http://msdn.microsoft.com/en-us/library/ff569705.aspx - -#ifdef MOJOSHADER_USE_SDL_STDLIB -#include -#include -#include -#include /* Needed for isinf/isnan :( */ - -/* FIXME: These includes are needed for alloca :( */ -#include -#ifndef __APPLE__ -#include -#endif - -/* stdint.h */ -typedef Uint8 uint8; -typedef Uint16 uint16; -typedef Uint32 uint32; -typedef Sint32 int32; -typedef Sint64 int64; -typedef Uint64 uint64; - -/* assert.h */ -#define assert SDL_assert - -/* stdlib.h */ -#define malloc SDL_malloc -#define free SDL_free - -/* stdio.h */ -#define sscanf SDL_sscanf -#ifdef snprintf -#undef snprintf -#endif -#define snprintf SDL_snprintf -#ifdef vsnprintf -#undef vsnprintf -#endif -#define vsnprintf SDL_vsnprintf - -/* math.h */ -#define acos SDL_acos -#define asin SDL_asin -#define atan SDL_atan -#define atan2 SDL_atan2 -#define cos SDL_acos -#define exp SDL_exp -#define floor SDL_floor -#define log SDL_log -#define sin SDL_sin -#define sqrt SDL_sqrt - -/* string.h */ -#ifdef memcmp -#undef memcmp -#endif -#define memcmp SDL_memcmp -#ifdef memcpy -#undef memcpy -#endif -#define memcpy SDL_memcpy -#ifdef memset -#undef memset -#endif -#define memset SDL_memset -#ifdef strchr -#undef strchr -#endif -#define strchr SDL_strchr -#ifdef strcmp -#undef strcmp -#endif -#define strcmp SDL_strcmp -#ifdef strlen -#undef strlen -#endif -#define strlen SDL_strlen -#ifdef strncmp -#undef strncmp -#endif -#define strncmp SDL_strncmp -#ifdef strstr -#undef strstr -#endif -#define strstr SDL_strstr -#ifdef strcat -#undef strcat -#endif -/* TODO: Move MojoShader away from strcat! This len is awful! */ -#define strcat(dst, src) SDL_strlcat(dst, src, SDL_strlen(src) + 1) -#ifdef strcpy -#undef strcpy -#endif -/* TODO: Move MojoShader away from strcpy! This len is awful! */ -#define strcpy(dst, src) SDL_strlcpy(dst, src, SDL_strlen(src) + 1) - -/* dlfcn.h */ -#define dlopen(a, b) SDL_LoadObject(a) -#define dlclose SDL_UnloadObject -#define dlsym SDL_LoadFunction -#else /* MOJOSHADER_USE_SDL_STDLIB */ -#include -#include -#include -#include -#include -#endif /* MOJOSHADER_USE_SDL_STDLIB */ - -#include "mojoshader.h" - -#define DEBUG_LEXER 0 -#define DEBUG_PREPROCESSOR 0 -#define DEBUG_ASSEMBLER_PARSER 0 -#define DEBUG_COMPILER_PARSER 0 -#define DEBUG_TOKENIZER \ - (DEBUG_PREPROCESSOR || DEBUG_ASSEMBLER_PARSER || DEBUG_LEXER) - -// This is the highest shader version we currently support. - -#define MAX_SHADER_MAJOR 3 -#define MAX_SHADER_MINOR 255 // vs_3_sw - - -// If SUPPORT_PROFILE_* isn't defined, we assume an implicit desire to support. -// You get all the profiles unless you go out of your way to disable them. - -#ifndef SUPPORT_PROFILE_D3D -#define SUPPORT_PROFILE_D3D 1 -#endif - -#ifndef SUPPORT_PROFILE_BYTECODE -#define SUPPORT_PROFILE_BYTECODE 1 -#endif - -#ifndef SUPPORT_PROFILE_HLSL -#define SUPPORT_PROFILE_HLSL 1 -#endif - -#ifndef SUPPORT_PROFILE_GLSL -#define SUPPORT_PROFILE_GLSL 1 -#endif - -#ifndef SUPPORT_PROFILE_GLSL120 -#define SUPPORT_PROFILE_GLSL120 1 -#endif - -#ifndef SUPPORT_PROFILE_GLSLES -#define SUPPORT_PROFILE_GLSLES 1 -#endif - -#ifndef SUPPORT_PROFILE_ARB1 -#define SUPPORT_PROFILE_ARB1 1 -#endif - -#ifndef SUPPORT_PROFILE_ARB1_NV -#define SUPPORT_PROFILE_ARB1_NV 1 -#endif - -#ifndef SUPPORT_PROFILE_METAL -#define SUPPORT_PROFILE_METAL 1 -#endif - -#ifndef SUPPORT_PROFILE_SPIRV -#define SUPPORT_PROFILE_SPIRV 1 -#endif - -#ifndef SUPPORT_PROFILE_GLSPIRV -#define SUPPORT_PROFILE_GLSPIRV 1 -#endif - -#if SUPPORT_PROFILE_ARB1_NV && !SUPPORT_PROFILE_ARB1 -#error nv profiles require arb1 profile. Fix your build. -#endif - -#if SUPPORT_PROFILE_GLSL120 && !SUPPORT_PROFILE_GLSL -#error glsl120 profile requires glsl profile. Fix your build. -#endif - -#if SUPPORT_PROFILE_GLSLES && !SUPPORT_PROFILE_GLSL -#error glsles profile requires glsl profile. Fix your build. -#endif - -#if SUPPORT_PROFILE_GLSPIRV && !SUPPORT_PROFILE_SPIRV -#error glspirv profile requires spirv profile. Fix your build. -#endif - -// Microsoft's preprocessor has some quirks. In some ways, it doesn't work -// like you'd expect a C preprocessor to function. -#ifndef MATCH_MICROSOFT_PREPROCESSOR -#define MATCH_MICROSOFT_PREPROCESSOR 1 -#endif - -// Other stuff you can disable... - -#ifdef MOJOSHADER_EFFECT_SUPPORT -void MOJOSHADER_runPreshader(const MOJOSHADER_preshader*, float*); -#endif - - -// Get basic wankery out of the way here... - -#ifdef _WINDOWS -#define ENDLINE_STR "\r\n" -#else -#define ENDLINE_STR "\n" -#endif - -typedef unsigned int uint; // this is a printf() helper. don't use for code. - -// Locale-independent float printing replacement for snprintf -size_t MOJOSHADER_printFloat(char *text, size_t maxlen, float arg); - -#ifdef _MSC_VER -#include -#define isnan _isnan // !!! FIXME: not a safe replacement! -#if _MSC_VER < 1900 // pre MSVC 2015 -#define isinf(x) (!_finite(x)) // FIXME: not a safe replacement! -#endif -#define va_copy(a, b) a = b -#endif - -#ifndef MOJOSHADER_USE_SDL_STDLIB -#ifdef _MSC_VER -#include -#define snprintf _snprintf // !!! FIXME: not a safe replacement! -#define vsnprintf _vsnprintf // !!! FIXME: not a safe replacement! -#define strcasecmp stricmp -#define strncasecmp strnicmp -typedef unsigned __int8 uint8; -typedef unsigned __int16 uint16; -typedef unsigned __int32 uint32; -typedef unsigned __int64 uint64; -typedef __int32 int32; -typedef __int64 int64; -#ifdef _WIN64 -typedef __int64 ssize_t; -#elif defined _WIN32 -typedef __int32 ssize_t; -#else -#error Please define your platform. -#endif -// Warning Level 4 considered harmful. :) -#pragma warning(disable: 4100) // "unreferenced formal parameter" -#pragma warning(disable: 4389) // "signed/unsigned mismatch" -#else -#include -typedef uint8_t uint8; -typedef uint16_t uint16; -typedef uint32_t uint32; -typedef int32_t int32; -typedef int64_t int64; -typedef uint64_t uint64; -#endif - -#ifdef sun -#include -#endif -#endif /* MOJOSHADER_USE_SDL_STDLIB */ - -#ifdef __GNUC__ -#define ISPRINTF(x,y) __attribute__((format (printf, x, y))) -#else -#define ISPRINTF(x,y) -#endif - -#define STATICARRAYLEN(x) ( (sizeof ((x))) / (sizeof ((x)[0])) ) - - -// Byteswap magic... - -#if ((defined __GNUC__) && (defined __POWERPC__)) - static inline uint32 SWAP32(uint32 x) - { - __asm__ __volatile__("lwbrx %0,0,%1" : "=r" (x) : "r" (&x)); - return x; - } // SWAP32 - static inline uint16 SWAP16(uint16 x) - { - __asm__ __volatile__("lhbrx %0,0,%1" : "=r" (x) : "r" (&x)); - return x; - } // SWAP16 -#elif defined(__POWERPC__) - static inline uint32 SWAP32(uint32 x) - { - return ( (((x) >> 24) & 0x000000FF) | (((x) >> 8) & 0x0000FF00) | - (((x) << 8) & 0x00FF0000) | (((x) << 24) & 0xFF000000) ); - } // SWAP32 - static inline uint16 SWAP16(uint16 x) - { - return ( (((x) >> 8) & 0x00FF) | (((x) << 8) & 0xFF00) ); - } // SWAP16 -#else -# define SWAP16(x) (x) -# define SWAP32(x) (x) -#endif - -#define SWAPDBL(x) (x) // !!! FIXME - -static inline int Min(const int a, const int b) -{ - return ((a < b) ? a : b); -} // Min - - -// Hashtables... - -typedef struct HashTable HashTable; -typedef uint32 (*HashTable_HashFn)(const void *key, void *data); -typedef int (*HashTable_KeyMatchFn)(const void *a, const void *b, void *data); -typedef void (*HashTable_NukeFn)(const void *ctx, const void *key, const void *value, void *data); - -HashTable *hash_create(void *data, const HashTable_HashFn hashfn, - const HashTable_KeyMatchFn keymatchfn, - const HashTable_NukeFn nukefn, - const int stackable, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d); -void hash_destroy(HashTable *table, const void *ctx); -int hash_insert(HashTable *table, const void *key, const void *value); -int hash_remove(HashTable *table, const void *key, const void *ctx); -int hash_find(const HashTable *table, const void *key, const void **_value); -int hash_iter(const HashTable *table, const void *key, const void **_value, void **iter); -int hash_iter_keys(const HashTable *table, const void **_key, void **iter); - -uint32 hash_hash_string(const void *sym, void *unused); -int hash_keymatch_string(const void *a, const void *b, void *unused); - - -// String -> String map ... -typedef HashTable StringMap; -StringMap *stringmap_create(const int copy, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d); -void stringmap_destroy(StringMap *smap); -int stringmap_insert(StringMap *smap, const char *key, const char *value); -int stringmap_remove(StringMap *smap, const char *key); -int stringmap_find(const StringMap *smap, const char *key, const char **_val); - - -// String caching... - -typedef struct StringCache StringCache; -StringCache *stringcache_create(MOJOSHADER_malloc m,MOJOSHADER_free f,void *d); -const char *stringcache(StringCache *cache, const char *str); -const char *stringcache_len(StringCache *cache, const char *str, - const unsigned int len); -const char *stringcache_fmt(StringCache *cache, const char *fmt, ...); -int stringcache_iscached(StringCache *cache, const char *str); -void stringcache_destroy(StringCache *cache); - - -// Error lists... - -typedef struct ErrorList ErrorList; -ErrorList *errorlist_create(MOJOSHADER_malloc m, MOJOSHADER_free f, void *d); -int errorlist_add(ErrorList *list, const char *fname, - const int errpos, const char *str); -int errorlist_add_fmt(ErrorList *list, const char *fname, - const int errpos, const char *fmt, ...) ISPRINTF(4,5); -int errorlist_add_va(ErrorList *list, const char *_fname, - const int errpos, const char *fmt, va_list va); -int errorlist_count(ErrorList *list); -MOJOSHADER_error *errorlist_flatten(ErrorList *list); // resets the list! -void errorlist_destroy(ErrorList *list); - - - -// Dynamic buffers... - -typedef struct BufferBlock -{ - uint8 *data; - size_t bytes; - struct BufferBlock *next; -} BufferBlock; -typedef struct Buffer -{ - size_t total_bytes; - BufferBlock *head; - BufferBlock *tail; - size_t block_size; - MOJOSHADER_malloc m; - MOJOSHADER_free f; - void *d; -} Buffer; -Buffer *buffer_create(size_t blksz,MOJOSHADER_malloc m,MOJOSHADER_free f,void *d); -char *buffer_reserve(Buffer *buffer, const size_t len); -int buffer_append(Buffer *buffer, const void *_data, size_t len); -int buffer_append_fmt(Buffer *buffer, const char *fmt, ...) ISPRINTF(2,3); -int buffer_append_va(Buffer *buffer, const char *fmt, va_list va); -size_t buffer_size(Buffer *buffer); -void buffer_empty(Buffer *buffer); -char *buffer_flatten(Buffer *buffer); -char *buffer_merge(Buffer **buffers, const size_t n, size_t *_len); -void buffer_destroy(Buffer *buffer); -void buffer_patch(Buffer *buffer, const size_t start, - const void *data, const size_t len); - - - -// This is the ID for a D3DXSHADER_CONSTANTTABLE in the bytecode comments. -#define CTAB_ID 0x42415443 // 0x42415443 == 'CTAB' -#define CTAB_SIZE 28 // sizeof (D3DXSHADER_CONSTANTTABLE). -#define CINFO_SIZE 20 // sizeof (D3DXSHADER_CONSTANTINFO). -#define CTYPEINFO_SIZE 16 // sizeof (D3DXSHADER_TYPEINFO). -#define CMEMBERINFO_SIZE 8 // sizeof (D3DXSHADER_STRUCTMEMBERINFO) - -// Preshader magic values... -#define PRES_ID 0x53455250 // 0x53455250 == 'PRES' -#define PRSI_ID 0x49535250 // 0x49535250 == 'PRSI' -#define CLIT_ID 0x54494C43 // 0x54494C43 == 'CLIT' -#define FXLC_ID 0x434C5846 // 0x434C5846 == 'FXLC' - -// we need to reference these by explicit value occasionally... -#define OPCODE_RCP 6 -#define OPCODE_RSQ 7 -#define OPCODE_RET 28 -#define OPCODE_IF 40 -#define OPCODE_IFC 41 -#define OPCODE_BREAK 44 -#define OPCODE_BREAKC 45 -#define OPCODE_TEXLD 66 -#define OPCODE_SETP 94 - -// TEXLD becomes a different instruction with these instruction controls. -#define CONTROL_TEXLD 0 -#define CONTROL_TEXLDP 1 -#define CONTROL_TEXLDB 2 - -// #define this to force app to supply an allocator, so there's no reference -// to the C runtime's malloc() and free()... -#if MOJOSHADER_FORCE_ALLOCATOR -#define MOJOSHADER_internal_malloc NULL -#define MOJOSHADER_internal_free NULL -#else -void * MOJOSHADERCALL MOJOSHADER_internal_malloc(int bytes, void *d); -void MOJOSHADERCALL MOJOSHADER_internal_free(void *ptr, void *d); -#endif - -#if MOJOSHADER_FORCE_INCLUDE_CALLBACKS -#define MOJOSHADER_internal_include_open NULL -#define MOJOSHADER_internal_include_close NULL -#else -int MOJOSHADER_internal_include_open(MOJOSHADER_includeType inctype, - const char *fname, const char *parent, - const char **outdata, - unsigned int *outbytes, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *d); - -void MOJOSHADER_internal_include_close(const char *data, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d); -#endif - - -// result modifiers. -// !!! FIXME: why isn't this an enum? -#define MOD_SATURATE 0x01 -#define MOD_PP 0x02 -#define MOD_CENTROID 0x04 - -typedef enum -{ - REG_TYPE_TEMP = 0, - REG_TYPE_INPUT = 1, - REG_TYPE_CONST = 2, - REG_TYPE_ADDRESS = 3, - REG_TYPE_TEXTURE = 3, // ALSO 3! - REG_TYPE_RASTOUT = 4, - REG_TYPE_ATTROUT = 5, - REG_TYPE_TEXCRDOUT = 6, - REG_TYPE_OUTPUT = 6, // ALSO 6! - REG_TYPE_CONSTINT = 7, - REG_TYPE_COLOROUT = 8, - REG_TYPE_DEPTHOUT = 9, - REG_TYPE_SAMPLER = 10, - REG_TYPE_CONST2 = 11, - REG_TYPE_CONST3 = 12, - REG_TYPE_CONST4 = 13, - REG_TYPE_CONSTBOOL = 14, - REG_TYPE_LOOP = 15, - REG_TYPE_TEMPFLOAT16 = 16, - REG_TYPE_MISCTYPE = 17, - REG_TYPE_LABEL = 18, - REG_TYPE_PREDICATE = 19, - REG_TYPE_MAX = 19 -} RegisterType; - -typedef enum -{ - TEXTURE_TYPE_2D = 2, - TEXTURE_TYPE_CUBE = 3, - TEXTURE_TYPE_VOLUME = 4, -} TextureType; - -typedef enum -{ - RASTOUT_TYPE_POSITION = 0, - RASTOUT_TYPE_FOG = 1, - RASTOUT_TYPE_POINT_SIZE = 2, - RASTOUT_TYPE_MAX = 2 -} RastOutType; - -typedef enum -{ - MISCTYPE_TYPE_POSITION = 0, - MISCTYPE_TYPE_FACE = 1, - MISCTYPE_TYPE_MAX = 1 -} MiscTypeType; - -// source modifiers. -typedef enum -{ - SRCMOD_NONE, - SRCMOD_NEGATE, - SRCMOD_BIAS, - SRCMOD_BIASNEGATE, - SRCMOD_SIGN, - SRCMOD_SIGNNEGATE, - SRCMOD_COMPLEMENT, - SRCMOD_X2, - SRCMOD_X2NEGATE, - SRCMOD_DZ, - SRCMOD_DW, - SRCMOD_ABS, - SRCMOD_ABSNEGATE, - SRCMOD_NOT, - SRCMOD_TOTAL -} SourceMod; - - -typedef struct -{ - const uint32 *token; // this is the unmolested token in the stream. - int regnum; - int relative; - int writemask; // xyzw or rgba (all four, not split out). - int writemask0; // x or red - int writemask1; // y or green - int writemask2; // z or blue - int writemask3; // w or alpha - int orig_writemask; // writemask before mojoshader tweaks it. - int result_mod; - int result_shift; - RegisterType regtype; -} DestArgInfo; - -// NOTE: This will NOT know a dcl_psize or dcl_fog output register should be -// scalar! This function doesn't have access to that information. -static inline int scalar_register(const MOJOSHADER_shaderType shader_type, - const RegisterType regtype, const int regnum) -{ - switch (regtype) - { - case REG_TYPE_RASTOUT: - if (((const RastOutType) regnum) == RASTOUT_TYPE_FOG) - return 1; - else if (((const RastOutType) regnum) == RASTOUT_TYPE_POINT_SIZE) - return 1; - return 0; - - case REG_TYPE_DEPTHOUT: - case REG_TYPE_CONSTBOOL: - case REG_TYPE_LOOP: - return 1; - - case REG_TYPE_MISCTYPE: - if ( ((const MiscTypeType) regnum) == MISCTYPE_TYPE_FACE ) - return 1; - return 0; - - case REG_TYPE_PREDICATE: - return (shader_type == MOJOSHADER_TYPE_PIXEL) ? 1 : 0; - - default: break; - } // switch - - return 0; -} // scalar_register - - -extern MOJOSHADER_error MOJOSHADER_out_of_mem_error; -extern MOJOSHADER_parseData MOJOSHADER_out_of_mem_data; - - -// preprocessor stuff. - -typedef enum -{ - TOKEN_UNKNOWN = 256, // start past ASCII character values. - - // These are all C-like constructs. Tokens < 256 may be single - // chars (like '+' or whatever). These are just multi-char sequences - // (like "+=" or whatever). - TOKEN_IDENTIFIER, - TOKEN_INT_LITERAL, - TOKEN_FLOAT_LITERAL, - TOKEN_STRING_LITERAL, - TOKEN_RSHIFTASSIGN, - TOKEN_LSHIFTASSIGN, - TOKEN_ADDASSIGN, - TOKEN_SUBASSIGN, - TOKEN_MULTASSIGN, - TOKEN_DIVASSIGN, - TOKEN_MODASSIGN, - TOKEN_XORASSIGN, - TOKEN_ANDASSIGN, - TOKEN_ORASSIGN, - TOKEN_INCREMENT, - TOKEN_DECREMENT, - TOKEN_RSHIFT, - TOKEN_LSHIFT, - TOKEN_ANDAND, - TOKEN_OROR, - TOKEN_LEQ, - TOKEN_GEQ, - TOKEN_EQL, - TOKEN_NEQ, - TOKEN_HASH, - TOKEN_HASHHASH, - - // This is returned if the preprocessor isn't stripping comments. Note - // that in asm files, the ';' counts as a single-line comment, same as - // "//". Note that both eat newline tokens: all of the ones inside a - // multiline comment, and the ending newline on a single-line comment. - TOKEN_MULTI_COMMENT, - TOKEN_SINGLE_COMMENT, - - // This is returned at the end of input...no more to process. - TOKEN_EOI, - - // This is returned for char sequences we think are bogus. You'll have - // to judge for yourself. In most cases, you'll probably just fail with - // bogus syntax without explicitly checking for this token. - TOKEN_BAD_CHARS, - - // This is returned if there's an error condition (the error is returned - // as a NULL-terminated string from preprocessor_nexttoken(), instead - // of actual token data). You can continue getting tokens after this - // is reported. It happens for things like missing #includes, etc. - TOKEN_PREPROCESSING_ERROR, - - // These are all caught by the preprocessor. Caller won't ever see them, - // except TOKEN_PP_PRAGMA. - // They control the preprocessor (#includes new files, etc). - TOKEN_PP_INCLUDE, - TOKEN_PP_LINE, - TOKEN_PP_DEFINE, - TOKEN_PP_UNDEF, - TOKEN_PP_IF, - TOKEN_PP_IFDEF, - TOKEN_PP_IFNDEF, - TOKEN_PP_ELSE, - TOKEN_PP_ELIF, - TOKEN_PP_ENDIF, - TOKEN_PP_ERROR, // caught, becomes TOKEN_PREPROCESSING_ERROR - TOKEN_PP_PRAGMA, - TOKEN_INCOMPLETE_COMMENT, // caught, becomes TOKEN_PREPROCESSING_ERROR - TOKEN_PP_UNARY_MINUS, // used internally, never returned. - TOKEN_PP_UNARY_PLUS, // used internally, never returned. -} Token; - - -// This is opaque. -struct Preprocessor; -typedef struct Preprocessor Preprocessor; - -typedef struct Conditional -{ - Token type; - int linenum; - int skipping; - int chosen; - struct Conditional *next; -} Conditional; - -typedef struct Define -{ - const char *identifier; - const char *definition; - const char *original; - const char **parameters; - int paramcount; - struct Define *next; -} Define; - -typedef struct IncludeState -{ - const char *filename; - const char *source_base; - const char *source; - const char *token; - unsigned int tokenlen; - Token tokenval; - int pushedback; - const unsigned char *lexer_marker; - int report_whitespace; - int report_comments; - int asm_comments; - unsigned int orig_length; - unsigned int bytes_left; - unsigned int line; - Conditional *conditional_stack; - MOJOSHADER_includeClose close_callback; - struct IncludeState *next; -} IncludeState; - -Token preprocessor_lexer(IncludeState *s); - -// This will only fail if the allocator fails, so it doesn't return any -// error code...NULL on failure. -Preprocessor *preprocessor_start(const char *fname, const char *source, - unsigned int sourcelen, - MOJOSHADER_includeOpen open_callback, - MOJOSHADER_includeClose close_callback, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, int asm_comments, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d); - -void preprocessor_end(Preprocessor *pp); -int preprocessor_outofmemory(Preprocessor *pp); -const char *preprocessor_nexttoken(Preprocessor *_ctx, - unsigned int *_len, Token *_token); -const char *preprocessor_sourcepos(Preprocessor *pp, unsigned int *pos); - - -void MOJOSHADER_print_debug_token(const char *subsystem, const char *token, - const unsigned int tokenlen, - const Token tokenval); - - -#if SUPPORT_PROFILE_SPIRV -// Patching SPIR-V binaries before linking is needed to ensure locations do not -// overlap between shader stages. Unfortunately, OpDecorate takes Literal, so we -// can't use Result from OpSpecConstant and leave this up to specialization -// mechanism. -// Patch table must be propagated from parsing to program linking, but since -// MOJOSHADER_parseData is public and I'd like to avoid changing ABI and exposing -// this, it is appended to MOJOSHADER_parseData::output using postflight buffer. -typedef struct SpirvPatchEntry -{ - uint32 offset; - int32 location; -} SpirvPatchEntry; - -typedef struct SpirvPatchTable -{ - // Patches for uniforms - SpirvPatchEntry vpflip; - SpirvPatchEntry array_vec4; - SpirvPatchEntry array_ivec4; - SpirvPatchEntry array_bool; - SpirvPatchEntry samplers[16]; - int32 location_count; - - // TEXCOORD0 is patched to PointCoord if VS outputs PointSize. - // In `helpers`: [OpDecorate|id|Location|0xDEADBEEF] -> [OpDecorate|id|BuiltIn|PointCoord] - // Offset derived from attrib_offsets[TEXCOORD][0]. - uint32 pointcoord_var_offset; // in `mainline_intro`, [OpVariable|tid|id|StorageClass], patch tid to pvec2i - uint32 pointcoord_load_offset; // in `mainline_top`, [OpLoad|tid|id|src_id], patch tid to vec2 - uint32 tid_pvec2i; - uint32 tid_vec2; - uint32 tid_pvec4i; - uint32 tid_vec4; - - // Patches for linking vertex output/pixel input - uint32 attrib_offsets[MOJOSHADER_USAGE_TOTAL][16]; - uint32 output_offsets[16]; -} SpirvPatchTable; - -void MOJOSHADER_spirv_link_attributes(const MOJOSHADER_parseData *vertex, - const MOJOSHADER_parseData *pixel); -#endif - -#endif // _INCLUDE_MOJOSHADER_INTERNAL_H_ - - -#if MOJOSHADER_DO_INSTRUCTION_TABLE -// These have to be in the right order! Arrays are indexed by the value -// of the instruction token. - -// INSTRUCTION_STATE means this opcode has to update the state machine -// (we're entering an ELSE block, etc). INSTRUCTION means there's no -// state, just go straight to the emitters. - -// !!! FIXME: Some of these MOJOSHADER_TYPE_ANYs need to have their scope -// !!! FIXME: reduced to just PIXEL or VERTEX. - -INSTRUCTION(NOP, "NOP", 1, NULL, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(MOV, "MOV", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(ADD, "ADD", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(SUB, "SUB", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(MAD, "MAD", 1, DSSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(MUL, "MUL", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(RCP, "RCP", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(RSQ, "RSQ", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(DP3, "DP3", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(DP4, "DP4", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(MIN, "MIN", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(MAX, "MAX", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(SLT, "SLT", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(SGE, "SGE", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(EXP, "EXP", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(LOG, "LOG", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(LIT, "LIT", 3, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(DST, "DST", 1, DSS, MOJOSHADER_TYPE_VERTEX, 0xF) -INSTRUCTION(LRP, "LRP", 2, DSSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(FRC, "FRC", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(M4X4, "M4X4", 4, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(M4X3, "M4X3", 3, DSS, MOJOSHADER_TYPE_ANY, 0x7) -INSTRUCTION_STATE(M3X4, "M3X4", 4, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(M3X3, "M3X3", 3, DSS, MOJOSHADER_TYPE_ANY, 0x7) -INSTRUCTION_STATE(M3X2, "M3X2", 2, DSS, MOJOSHADER_TYPE_ANY, 0x3) -INSTRUCTION_STATE(CALL, "CALL", 2, S, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(CALLNZ, "CALLNZ", 3, SS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(LOOP, "LOOP", 3, SS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(RET, "RET", 1, NULL, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(ENDLOOP, "ENDLOOP", 2, NULL, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(LABEL, "LABEL", 0, S, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(DCL, "DCL", 0, DCL, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(POW, "POW", 3, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(CRS, "CRS", 2, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(SGN, "SGN", 3, DSSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(ABS, "ABS", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(NRM, "NRM", 3, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(SINCOS, "SINCOS", 8, SINCOS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(REP, "REP", 3, S, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(ENDREP, "ENDREP", 2, NULL, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(IF, "IF", 3, S, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(IFC, "IF", 3, SS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(ELSE, "ELSE", 1, NULL, MOJOSHADER_TYPE_ANY, 0xF) // !!! FIXME: state! -INSTRUCTION(ENDIF, "ENDIF", 1, NULL, MOJOSHADER_TYPE_ANY, 0xF) // !!! FIXME: state! -INSTRUCTION_STATE(BREAK, "BREAK", 1, NULL, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(BREAKC, "BREAK", 3, SS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(MOVA, "MOVA", 1, DS, MOJOSHADER_TYPE_VERTEX, 0xF) -INSTRUCTION_STATE(DEFB, "DEFB", 0, DEFB, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(DEFI, "DEFI", 0, DEFI, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION_STATE(TEXCRD, "TEXCRD", 1, TEXCRD, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXKILL, "TEXKILL", 2, D, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXLD, "TEXLD", 1, TEXLD, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXBEM, "TEXBEM", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXBEML, "TEXBEML", 2, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(TEXREG2AR, "TEXREG2AR", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(TEXREG2GB, "TEXREG2GB", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXM3X2PAD, "TEXM3X2PAD", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXM3X2TEX, "TEXM3X2TEX", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXM3X3PAD, "TEXM3X3PAD", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXM3X3TEX, "TEXM3X3TEX", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(RESERVED, 0, 0, NULL, MOJOSHADER_TYPE_UNKNOWN, 0xF) -INSTRUCTION_STATE(TEXM3X3SPEC, "TEXM3X3SPEC", 1, DSS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXM3X3VSPEC, "TEXM3X3VSPEC", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(EXPP, "EXPP", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(LOGP, "LOGP", 1, DS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(CND, "CND", 1, DSSS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(DEF, "DEF", 0, DEF, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION(TEXREG2RGB, "TEXREG2RGB", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(TEXDP3TEX, "TEXDP3TEX", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(TEXM3X2DEPTH, "TEXM3X2DEPTH", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(TEXDP3, "TEXDP3", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(TEXM3X3, "TEXM3X3", 1, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(TEXDEPTH, "TEXDEPTH", 1, D, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(CMP, "CMP", 1, DSSS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(BEM, "BEM", 2, DSS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(DP2ADD, "DP2ADD", 2, DSSS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(DSX, "DSX", 2, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(DSY, "DSY", 2, DS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION(TEXLDD, "TEXLDD", 3, DSSSS, MOJOSHADER_TYPE_PIXEL, 0xF) -INSTRUCTION_STATE(SETP, "SETP", 1, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(TEXLDL, "TEXLDL", 2, DSS, MOJOSHADER_TYPE_ANY, 0xF) -INSTRUCTION_STATE(BREAKP, "BREAKP", 3, S, MOJOSHADER_TYPE_ANY, 0xF) - -#undef MOJOSHADER_DO_INSTRUCTION_TABLE -#undef INSTRUCTION -#undef INSTRUCTION_STATE - -#endif - -// end of mojoshader_internal.h ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_lexer.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_lexer.c deleted file mode 100644 index c46644d1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_lexer.c +++ /dev/null @@ -1,1242 +0,0 @@ -/* Generated by re2c 1.2.1 */ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -// This was originally based on examples/pp-c.re from re2c: http://re2c.org/ -// re2c is public domain code. -// -// You build mojoshader_lexer.c from the .re file with re2c... -// re2c -is -o mojoshader_lexer.c mojoshader_lexer.re -// -// Changes to the lexer are done to the .re file, not the C code! -// -// Please note that this isn't a perfect C lexer, since it is used for both -// HLSL and shader assembly language, and follows the quirks of Microsoft's -// tools. - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -typedef unsigned char uchar; - -#define YYMAXFILL 8 - -#define RET(t) return update_state(s, eoi, cursor, token, (Token) t) -#define YYCTYPE uchar -#define YYCURSOR cursor -#define YYLIMIT limit -#define YYMARKER s->lexer_marker -#define YYFILL(n) { if ((n) == 1) { cursor = sentinel; limit = cursor + YYMAXFILL; eoi = 1; } } - -static uchar sentinel[YYMAXFILL]; - -static Token update_state(IncludeState *s, int eoi, const uchar *cur, - const uchar *tok, const Token val) -{ - if (eoi) - { - s->bytes_left = 0; - s->source = (const char *) s->source_base + s->orig_length; - if ( (tok >= sentinel) && (tok < (sentinel+YYMAXFILL)) ) - s->token = s->source; - else - s->token = (const char *) tok; - } // if - else - { - s->bytes_left -= (unsigned int) (cur - ((const uchar *) s->source)); - s->source = (const char *) cur; - s->token = (const char *) tok; - } // else - s->tokenlen = (unsigned int) (s->source - s->token); - s->tokenval = val; - return val; -} // update_state - -Token preprocessor_lexer(IncludeState *s) -{ - const uchar *cursor = (const uchar *) s->source; - const uchar *token = cursor; - const uchar *matchptr; - const uchar *limit = cursor + s->bytes_left; - int eoi = 0; - - - - // preprocessor directives are only valid at start of line. - if (s->tokenval == ((Token) '\n')) - goto ppdirective; // may jump back to scanner_loop. - -scanner_loop: - if (YYLIMIT == YYCURSOR) YYFILL(1); - token = cursor; - - -{ - YYCTYPE yych; - unsigned int yyaccept = 0; - if ((YYLIMIT - YYCURSOR) < 4) YYFILL(4); - yych = *YYCURSOR; - switch (yych) { - case 0x00: goto yy2; - case '\t': - case '\v': - case '\f': - case ' ': goto yy6; - case '\n': goto yy9; - case '\r': goto yy11; - case '!': goto yy12; - case '"': goto yy14; - case '#': goto yy15; - case '%': goto yy17; - case '&': goto yy19; - case '\'': goto yy21; - case '(': goto yy22; - case ')': goto yy24; - case '*': goto yy26; - case '+': goto yy28; - case ',': goto yy30; - case '-': goto yy32; - case '.': goto yy34; - case '/': goto yy36; - case '0': goto yy38; - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': goto yy40; - case ':': goto yy42; - case ';': goto yy44; - case '<': goto yy46; - case '=': goto yy48; - case '>': goto yy50; - case '?': goto yy52; - case 'A': - case 'B': - case 'C': - case 'D': - case 'E': - case 'F': - case 'G': - case 'H': - case 'I': - case 'J': - case 'K': - case 'L': - case 'M': - case 'N': - case 'O': - case 'P': - case 'Q': - case 'R': - case 'S': - case 'T': - case 'U': - case 'V': - case 'W': - case 'X': - case 'Y': - case 'Z': - case '_': - case 'a': - case 'b': - case 'c': - case 'd': - case 'e': - case 'f': - case 'g': - case 'h': - case 'i': - case 'j': - case 'k': - case 'l': - case 'm': - case 'n': - case 'o': - case 'p': - case 'q': - case 'r': - case 's': - case 't': - case 'u': - case 'v': - case 'w': - case 'x': - case 'y': - case 'z': goto yy54; - case '[': goto yy57; - case '\\': goto yy59; - case ']': goto yy60; - case '^': goto yy62; - case '{': goto yy64; - case '|': goto yy66; - case '}': goto yy68; - case '~': goto yy70; - default: goto yy4; - } -yy2: - ++YYCURSOR; - { if (eoi) { RET(TOKEN_EOI); } goto bad_chars; } -yy4: - ++YYCURSOR; -yy5: - { goto bad_chars; } -yy6: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '\n') { - if (yych == '\t') goto yy6; - } else { - if (yych <= '\f') goto yy6; - if (yych == ' ') goto yy6; - } - { if (s->report_whitespace) RET(' '); goto scanner_loop; } -yy9: - ++YYCURSOR; -yy10: - { s->line++; RET('\n'); } -yy11: - yych = *++YYCURSOR; - if (yych == '\n') goto yy9; - goto yy10; -yy12: - yych = *++YYCURSOR; - if (yych == '=') goto yy72; - { RET('!'); } -yy14: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy5; - if (yych == '\r') goto yy5; - goto yy75; -yy15: - yych = *++YYCURSOR; - if (yych == '#') goto yy80; - { RET(TOKEN_HASH); } -yy17: - yych = *++YYCURSOR; - if (yych == '=') goto yy82; - { RET('%'); } -yy19: - yych = *++YYCURSOR; - if (yych == '&') goto yy84; - if (yych == '=') goto yy86; - { RET('&'); } -yy21: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == '\n') goto yy5; - if (yych == '\r') goto yy5; - goto yy89; -yy22: - ++YYCURSOR; - { RET('('); } -yy24: - ++YYCURSOR; - { RET(')'); } -yy26: - yych = *++YYCURSOR; - if (yych == '=') goto yy92; - { RET('*'); } -yy28: - yych = *++YYCURSOR; - if (yych == '+') goto yy94; - if (yych == '=') goto yy96; - { RET('+'); } -yy30: - ++YYCURSOR; - { RET(','); } -yy32: - yych = *++YYCURSOR; - if (yych == '-') goto yy98; - if (yych == '=') goto yy100; - { RET('-'); } -yy34: - yych = *++YYCURSOR; - if (yych <= '/') goto yy35; - if (yych <= '9') goto yy102; -yy35: - { RET('.'); } -yy36: - yych = *++YYCURSOR; - if (yych <= '.') { - if (yych == '*') goto yy105; - } else { - if (yych <= '/') goto yy107; - if (yych == '=') goto yy109; - } - { RET('/'); } -yy38: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'X') goto yy114; - if (yych == 'x') goto yy114; - goto yy41; -yy39: - { RET(TOKEN_INT_LITERAL); } -yy40: - yyaccept = 1; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; -yy41: - if (yych <= 'L') { - if (yych <= '9') { - if (yych == '.') goto yy102; - if (yych <= '/') goto yy39; - goto yy40; - } else { - if (yych == 'E') goto yy111; - if (yych <= 'K') goto yy39; - goto yy112; - } - } else { - if (yych <= 'e') { - if (yych == 'U') goto yy112; - if (yych <= 'd') goto yy39; - goto yy111; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy39; - goto yy112; - } else { - if (yych == 'u') goto yy112; - goto yy39; - } - } - } -yy42: - ++YYCURSOR; - { RET(':'); } -yy44: - ++YYCURSOR; - { if (s->asm_comments) goto singlelinecomment; RET(';'); } -yy46: - yych = *++YYCURSOR; - if (yych <= ';') goto yy47; - if (yych <= '<') goto yy115; - if (yych <= '=') goto yy117; -yy47: - { RET('<'); } -yy48: - yych = *++YYCURSOR; - if (yych == '=') goto yy119; - { RET('='); } -yy50: - yych = *++YYCURSOR; - if (yych <= '<') goto yy51; - if (yych <= '=') goto yy121; - if (yych <= '>') goto yy123; -yy51: - { RET('>'); } -yy52: - ++YYCURSOR; - { RET('?'); } -yy54: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'Z') { - if (yych <= '/') goto yy56; - if (yych <= '9') goto yy54; - if (yych >= 'A') goto yy54; - } else { - if (yych <= '_') { - if (yych >= '_') goto yy54; - } else { - if (yych <= '`') goto yy56; - if (yych <= 'z') goto yy54; - } - } -yy56: - { RET(TOKEN_IDENTIFIER); } -yy57: - ++YYCURSOR; - { RET('['); } -yy59: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 0x08) goto yy5; - if (yych <= '\r') goto yy126; - if (yych == ' ') goto yy126; - goto yy5; -yy60: - ++YYCURSOR; - { RET(']'); } -yy62: - yych = *++YYCURSOR; - if (yych == '=') goto yy130; - { RET('^'); } -yy64: - ++YYCURSOR; - { RET('{'); } -yy66: - yych = *++YYCURSOR; - if (yych == '=') goto yy132; - if (yych == '|') goto yy134; - { RET('|'); } -yy68: - ++YYCURSOR; - { RET('}'); } -yy70: - ++YYCURSOR; - { RET('~'); } -yy72: - ++YYCURSOR; - { RET(TOKEN_NEQ); } -yy74: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy75: - if (yych <= '\r') { - if (yych == '\n') goto yy76; - if (yych <= '\f') goto yy74; - } else { - if (yych <= '"') { - if (yych <= '!') goto yy74; - goto yy77; - } else { - if (yych == '\\') goto yy79; - goto yy74; - } - } -yy76: - YYCURSOR = YYMARKER; - if (yyaccept <= 1) { - if (yyaccept == 0) { - goto yy5; - } else { - goto yy39; - } - } else { - goto yy104; - } -yy77: - ++YYCURSOR; - { RET(TOKEN_STRING_LITERAL); } -yy79: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'b') { - if (yych <= '7') { - if (yych <= '&') { - if (yych == '"') goto yy74; - goto yy76; - } else { - if (yych <= '\'') goto yy74; - if (yych <= '/') goto yy76; - goto yy74; - } - } else { - if (yych <= '[') { - if (yych == '?') goto yy74; - goto yy76; - } else { - if (yych <= '\\') goto yy74; - if (yych <= '`') goto yy76; - goto yy74; - } - } - } else { - if (yych <= 'r') { - if (yych <= 'm') { - if (yych == 'f') goto yy74; - goto yy76; - } else { - if (yych <= 'n') goto yy74; - if (yych <= 'q') goto yy76; - goto yy74; - } - } else { - if (yych <= 'u') { - if (yych == 't') goto yy74; - goto yy76; - } else { - if (yych <= 'v') goto yy74; - if (yych == 'x') goto yy136; - goto yy76; - } - } - } -yy80: - ++YYCURSOR; - { RET(TOKEN_HASHHASH); } -yy82: - ++YYCURSOR; - { RET(TOKEN_MODASSIGN); } -yy84: - ++YYCURSOR; - { RET(TOKEN_ANDAND); } -yy86: - ++YYCURSOR; - { RET(TOKEN_ANDASSIGN); } -yy88: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; -yy89: - if (yych <= '\r') { - if (yych == '\n') goto yy76; - if (yych <= '\f') goto yy88; - goto yy76; - } else { - if (yych <= '\'') { - if (yych <= '&') goto yy88; - } else { - if (yych == '\\') goto yy91; - goto yy88; - } - } - ++YYCURSOR; - goto yy39; -yy91: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'b') { - if (yych <= '7') { - if (yych <= '&') { - if (yych == '"') goto yy88; - goto yy76; - } else { - if (yych <= '\'') goto yy88; - if (yych <= '/') goto yy76; - goto yy88; - } - } else { - if (yych <= '[') { - if (yych == '?') goto yy88; - goto yy76; - } else { - if (yych <= '\\') goto yy88; - if (yych <= '`') goto yy76; - goto yy88; - } - } - } else { - if (yych <= 'r') { - if (yych <= 'm') { - if (yych == 'f') goto yy88; - goto yy76; - } else { - if (yych <= 'n') goto yy88; - if (yych <= 'q') goto yy76; - goto yy88; - } - } else { - if (yych <= 'u') { - if (yych == 't') goto yy88; - goto yy76; - } else { - if (yych <= 'v') goto yy88; - if (yych == 'x') goto yy137; - goto yy76; - } - } - } -yy92: - ++YYCURSOR; - { RET(TOKEN_MULTASSIGN); } -yy94: - ++YYCURSOR; - { RET(TOKEN_INCREMENT); } -yy96: - ++YYCURSOR; - { RET(TOKEN_ADDASSIGN); } -yy98: - ++YYCURSOR; - { RET(TOKEN_DECREMENT); } -yy100: - ++YYCURSOR; - { RET(TOKEN_SUBASSIGN); } -yy102: - yyaccept = 2; - YYMARKER = ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 3) YYFILL(3); - yych = *YYCURSOR; - if (yych <= 'G') { - if (yych <= 'D') { - if (yych <= '/') goto yy104; - if (yych <= '9') goto yy102; - } else { - if (yych <= 'E') goto yy111; - if (yych <= 'F') goto yy138; - } - } else { - if (yych <= 'e') { - if (yych <= 'H') goto yy138; - if (yych >= 'e') goto yy111; - } else { - if (yych == 'g') goto yy104; - if (yych <= 'h') goto yy138; - } - } -yy104: - { RET(TOKEN_FLOAT_LITERAL); } -yy105: - ++YYCURSOR; - { goto multilinecomment; } -yy107: - ++YYCURSOR; - { goto singlelinecomment; } -yy109: - ++YYCURSOR; - { RET(TOKEN_DIVASSIGN); } -yy111: - yych = *++YYCURSOR; - if (yych <= ',') { - if (yych == '+') goto yy139; - goto yy76; - } else { - if (yych <= '-') goto yy139; - if (yych <= '/') goto yy76; - if (yych <= '9') goto yy140; - goto yy76; - } -yy112: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'U') { - if (yych == 'L') goto yy112; - if (yych <= 'T') goto yy39; - goto yy112; - } else { - if (yych <= 'l') { - if (yych <= 'k') goto yy39; - goto yy112; - } else { - if (yych == 'u') goto yy112; - goto yy39; - } - } -yy114: - yych = *++YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy76; - if (yych <= '9') goto yy142; - goto yy76; - } else { - if (yych <= 'F') goto yy142; - if (yych <= '`') goto yy76; - if (yych <= 'f') goto yy142; - goto yy76; - } -yy115: - yych = *++YYCURSOR; - if (yych == '=') goto yy144; - { RET(TOKEN_LSHIFT); } -yy117: - ++YYCURSOR; - { RET(TOKEN_LEQ); } -yy119: - ++YYCURSOR; - { RET(TOKEN_EQL); } -yy121: - ++YYCURSOR; - { RET(TOKEN_GEQ); } -yy123: - yych = *++YYCURSOR; - if (yych == '=') goto yy146; - { RET(TOKEN_RSHIFT); } -yy125: - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; -yy126: - if (yych <= '\f') { - if (yych <= 0x08) goto yy76; - if (yych != '\n') goto yy125; - } else { - if (yych <= '\r') goto yy129; - if (yych == ' ') goto yy125; - goto yy76; - } -yy127: - ++YYCURSOR; -yy128: - { s->line++; goto scanner_loop; } -yy129: - yych = *++YYCURSOR; - if (yych == '\n') goto yy127; - goto yy128; -yy130: - ++YYCURSOR; - { RET(TOKEN_XORASSIGN); } -yy132: - ++YYCURSOR; - { RET(TOKEN_ORASSIGN); } -yy134: - ++YYCURSOR; - { RET(TOKEN_OROR); } -yy136: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy76; - if (yych <= '9') goto yy74; - goto yy76; - } else { - if (yych <= 'F') goto yy74; - if (yych <= '`') goto yy76; - if (yych <= 'f') goto yy74; - goto yy76; - } -yy137: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '@') { - if (yych <= '/') goto yy76; - if (yych <= '9') goto yy88; - goto yy76; - } else { - if (yych <= 'F') goto yy88; - if (yych <= '`') goto yy76; - if (yych <= 'f') goto yy88; - goto yy76; - } -yy138: - ++YYCURSOR; - goto yy104; -yy139: - yych = *++YYCURSOR; - if (yych <= '/') goto yy76; - if (yych >= ':') goto yy76; -yy140: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'G') { - if (yych <= '9') { - if (yych <= '/') goto yy104; - goto yy140; - } else { - if (yych == 'F') goto yy138; - goto yy104; - } - } else { - if (yych <= 'f') { - if (yych <= 'H') goto yy138; - if (yych <= 'e') goto yy104; - goto yy138; - } else { - if (yych == 'h') goto yy138; - goto yy104; - } - } -yy142: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= 'T') { - if (yych <= '@') { - if (yych <= '/') goto yy39; - if (yych <= '9') goto yy142; - goto yy39; - } else { - if (yych <= 'F') goto yy142; - if (yych == 'L') goto yy112; - goto yy39; - } - } else { - if (yych <= 'k') { - if (yych <= 'U') goto yy112; - if (yych <= '`') goto yy39; - if (yych <= 'f') goto yy142; - goto yy39; - } else { - if (yych <= 'l') goto yy112; - if (yych == 'u') goto yy112; - goto yy39; - } - } -yy144: - ++YYCURSOR; - { RET(TOKEN_LSHIFTASSIGN); } -yy146: - ++YYCURSOR; - { RET(TOKEN_RSHIFTASSIGN); } -} - - -multilinecomment: - if (YYLIMIT == YYCURSOR) YYFILL(1); - matchptr = cursor; -// The "*\/" is just to avoid screwing up text editor syntax highlighting. - -{ - YYCTYPE yych; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if (yych <= '\f') { - if (yych <= 0x00) goto yy150; - if (yych == '\n') goto yy154; - goto yy152; - } else { - if (yych <= '\r') goto yy156; - if (yych == '*') goto yy157; - goto yy152; - } -yy150: - ++YYCURSOR; - { - if (eoi) - RET(TOKEN_INCOMPLETE_COMMENT); - goto multilinecomment; - } -yy152: - ++YYCURSOR; -yy153: - { goto multilinecomment; } -yy154: - ++YYCURSOR; -yy155: - { - s->line++; - goto multilinecomment; - } -yy156: - yych = *++YYCURSOR; - if (yych == '\n') goto yy154; - goto yy155; -yy157: - yych = *++YYCURSOR; - if (yych != '/') goto yy153; - ++YYCURSOR; - { - if (s->report_comments) - RET(TOKEN_MULTI_COMMENT); - else if (s->report_whitespace) - RET(' '); - - // Microsoft's preprocessor allows multiline comments - // before a preprocessor directive, even though C/C++ - // doesn't. See if we've hit this case. - #if MATCH_MICROSOFT_PREPROCESSOR - if (s->tokenval == ((Token) '\n')) // was start of line? - { - update_state(s, eoi, cursor, token, (Token) '\n'); - goto ppdirective; // may jump back to scanner_loop. - } - #endif - - goto scanner_loop; - } -} - - -singlelinecomment: - if (YYLIMIT == YYCURSOR) YYFILL(1); - matchptr = cursor; - -{ - YYCTYPE yych; - if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2); - yych = *YYCURSOR; - if (yych <= '\n') { - if (yych <= 0x00) goto yy162; - if (yych <= '\t') goto yy164; - goto yy166; - } else { - if (yych == '\r') goto yy168; - goto yy164; - } -yy162: - ++YYCURSOR; - { - if (eoi) - { - if (s->report_comments) - RET(TOKEN_SINGLE_COMMENT); - else - RET(TOKEN_EOI); - } - goto singlelinecomment; - } -yy164: - ++YYCURSOR; - { goto singlelinecomment; } -yy166: - ++YYCURSOR; -yy167: - { - s->line++; - if (s->report_comments) - { - cursor = matchptr; // so we RET('\n') next. - RET(TOKEN_SINGLE_COMMENT); - } - token = matchptr; - RET('\n'); - } -yy168: - yych = *++YYCURSOR; - if (yych == '\n') goto yy166; - goto yy167; -} - - -ppdirective: - if (YYLIMIT == YYCURSOR) YYFILL(1); - -{ - YYCTYPE yych; - unsigned int yyaccept = 0; - if ((YYLIMIT - YYCURSOR) < 8) YYFILL(8); - yych = *YYCURSOR; - if (yych <= '\f') { - if (yych == '\t') goto yy173; - if (yych >= '\v') goto yy173; - } else { - if (yych <= ' ') { - if (yych >= ' ') goto yy173; - } else { - if (yych == '#') goto yy176; - } - } - ++YYCURSOR; -yy172: - { - token = cursor = (const uchar *) s->source; - limit = cursor + s->bytes_left; - goto scanner_loop; - } -yy173: - ++YYCURSOR; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '\n') { - if (yych == '\t') goto yy173; - } else { - if (yych <= '\f') goto yy173; - if (yych == ' ') goto yy173; - } - { goto ppdirective; } -yy176: - yyaccept = 0; - yych = *(YYMARKER = ++YYCURSOR); - if (yych <= 'h') { - if (yych <= 0x1F) { - if (yych == '\t') goto yy178; - goto yy172; - } else { - if (yych <= ' ') goto yy178; - if (yych <= 'c') goto yy172; - if (yych <= 'e') goto yy178; - goto yy172; - } - } else { - if (yych <= 'o') { - if (yych <= 'i') goto yy178; - if (yych == 'l') goto yy178; - goto yy172; - } else { - if (yych <= 'p') goto yy178; - if (yych == 'u') goto yy178; - goto yy172; - } - } -yy177: - ++YYCURSOR; - if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7); - yych = *YYCURSOR; -yy178: - if (yych <= 'h') { - if (yych <= ' ') { - if (yych == '\t') goto yy177; - if (yych >= ' ') goto yy177; - } else { - if (yych <= 'c') goto yy179; - if (yych <= 'd') goto yy180; - if (yych <= 'e') goto yy181; - } - } else { - if (yych <= 'o') { - if (yych <= 'i') goto yy182; - if (yych == 'l') goto yy183; - } else { - if (yych <= 'p') goto yy184; - if (yych == 'u') goto yy185; - } - } -yy179: - YYCURSOR = YYMARKER; - if (yyaccept == 0) { - goto yy172; - } else { - goto yy191; - } -yy180: - yych = *++YYCURSOR; - if (yych == 'e') goto yy186; - goto yy179; -yy181: - yych = *++YYCURSOR; - if (yych <= 'm') { - if (yych == 'l') goto yy187; - goto yy179; - } else { - if (yych <= 'n') goto yy188; - if (yych == 'r') goto yy189; - goto yy179; - } -yy182: - yych = *++YYCURSOR; - if (yych == 'f') goto yy190; - if (yych == 'n') goto yy192; - goto yy179; -yy183: - yych = *++YYCURSOR; - if (yych == 'i') goto yy193; - goto yy179; -yy184: - yych = *++YYCURSOR; - if (yych == 'r') goto yy194; - goto yy179; -yy185: - yych = *++YYCURSOR; - if (yych == 'n') goto yy195; - goto yy179; -yy186: - yych = *++YYCURSOR; - if (yych == 'f') goto yy196; - goto yy179; -yy187: - yych = *++YYCURSOR; - if (yych == 'i') goto yy197; - if (yych == 's') goto yy198; - goto yy179; -yy188: - yych = *++YYCURSOR; - if (yych == 'd') goto yy199; - goto yy179; -yy189: - yych = *++YYCURSOR; - if (yych == 'r') goto yy200; - goto yy179; -yy190: - yyaccept = 1; - yych = *(YYMARKER = ++YYCURSOR); - if (yych == 'd') goto yy201; - if (yych == 'n') goto yy202; -yy191: - { RET(TOKEN_PP_IF); } -yy192: - yych = *++YYCURSOR; - if (yych == 'c') goto yy203; - goto yy179; -yy193: - yych = *++YYCURSOR; - if (yych == 'n') goto yy204; - goto yy179; -yy194: - yych = *++YYCURSOR; - if (yych == 'a') goto yy205; - goto yy179; -yy195: - yych = *++YYCURSOR; - if (yych == 'd') goto yy206; - goto yy179; -yy196: - yych = *++YYCURSOR; - if (yych == 'i') goto yy207; - goto yy179; -yy197: - yych = *++YYCURSOR; - if (yych == 'f') goto yy208; - goto yy179; -yy198: - yych = *++YYCURSOR; - if (yych == 'e') goto yy210; - goto yy179; -yy199: - yych = *++YYCURSOR; - if (yych == 'i') goto yy212; - goto yy179; -yy200: - yych = *++YYCURSOR; - if (yych == 'o') goto yy213; - goto yy179; -yy201: - yych = *++YYCURSOR; - if (yych == 'e') goto yy214; - goto yy179; -yy202: - yych = *++YYCURSOR; - if (yych == 'd') goto yy215; - goto yy179; -yy203: - yych = *++YYCURSOR; - if (yych == 'l') goto yy216; - goto yy179; -yy204: - yych = *++YYCURSOR; - if (yych == 'e') goto yy217; - goto yy179; -yy205: - yych = *++YYCURSOR; - if (yych == 'g') goto yy219; - goto yy179; -yy206: - yych = *++YYCURSOR; - if (yych == 'e') goto yy220; - goto yy179; -yy207: - yych = *++YYCURSOR; - if (yych == 'n') goto yy221; - goto yy179; -yy208: - ++YYCURSOR; - { RET(TOKEN_PP_ELIF); } -yy210: - ++YYCURSOR; - { RET(TOKEN_PP_ELSE); } -yy212: - yych = *++YYCURSOR; - if (yych == 'f') goto yy222; - goto yy179; -yy213: - yych = *++YYCURSOR; - if (yych == 'r') goto yy224; - goto yy179; -yy214: - yych = *++YYCURSOR; - if (yych == 'f') goto yy226; - goto yy179; -yy215: - yych = *++YYCURSOR; - if (yych == 'e') goto yy228; - goto yy179; -yy216: - yych = *++YYCURSOR; - if (yych == 'u') goto yy229; - goto yy179; -yy217: - ++YYCURSOR; - { RET(TOKEN_PP_LINE); } -yy219: - yych = *++YYCURSOR; - if (yych == 'm') goto yy230; - goto yy179; -yy220: - yych = *++YYCURSOR; - if (yych == 'f') goto yy231; - goto yy179; -yy221: - yych = *++YYCURSOR; - if (yych == 'e') goto yy233; - goto yy179; -yy222: - ++YYCURSOR; - { RET(TOKEN_PP_ENDIF); } -yy224: - ++YYCURSOR; - { RET(TOKEN_PP_ERROR); } -yy226: - ++YYCURSOR; - { RET(TOKEN_PP_IFDEF); } -yy228: - yych = *++YYCURSOR; - if (yych == 'f') goto yy235; - goto yy179; -yy229: - yych = *++YYCURSOR; - if (yych == 'd') goto yy237; - goto yy179; -yy230: - yych = *++YYCURSOR; - if (yych == 'a') goto yy238; - goto yy179; -yy231: - ++YYCURSOR; - { RET(TOKEN_PP_UNDEF); } -yy233: - ++YYCURSOR; - { RET(TOKEN_PP_DEFINE); } -yy235: - ++YYCURSOR; - { RET(TOKEN_PP_IFNDEF); } -yy237: - yych = *++YYCURSOR; - if (yych == 'e') goto yy240; - goto yy179; -yy238: - ++YYCURSOR; - { RET(TOKEN_PP_PRAGMA); } -yy240: - ++YYCURSOR; - { RET(TOKEN_PP_INCLUDE); } -} - - -bad_chars: - if (YYLIMIT == YYCURSOR) YYFILL(1); - -{ - YYCTYPE yych; - if (YYLIMIT <= YYCURSOR) YYFILL(1); - yych = *YYCURSOR; - if (yych <= '#') { - if (yych <= '\r') { - if (yych <= 0x00) goto yy244; - if (yych <= 0x08) goto yy246; - goto yy248; - } else { - if (yych <= 0x1F) goto yy246; - if (yych == '"') goto yy246; - goto yy248; - } - } else { - if (yych <= '@') { - if (yych <= '$') goto yy246; - if (yych <= '?') goto yy248; - goto yy246; - } else { - if (yych == '`') goto yy246; - if (yych <= '~') goto yy248; - goto yy246; - } - } -yy244: - ++YYCURSOR; - { - if (eoi) - { - assert( !((token >= sentinel) && - (token < sentinel+YYMAXFILL)) ); - eoi = 0; - cursor = (uchar *) s->source_base + s->orig_length; - RET(TOKEN_BAD_CHARS); // next call will be EOI. - } - goto bad_chars; - } -yy246: - ++YYCURSOR; - { goto bad_chars; } -yy248: - ++YYCURSOR; - { cursor--; RET(TOKEN_BAD_CHARS); } -} - - - assert(0 && "Shouldn't hit this code"); - RET(TOKEN_UNKNOWN); -} // preprocessor_lexer - -// end of mojoshader_lexer.re (or .c) ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_lexer.re b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_lexer.re deleted file mode 100644 index 0d91b69b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_lexer.re +++ /dev/null @@ -1,276 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -// This was originally based on examples/pp-c.re from re2c: http://re2c.org/ -// re2c is public domain code. -// -// You build mojoshader_lexer.c from the .re file with re2c... -// re2c -is -o mojoshader_lexer.c mojoshader_lexer.re -// -// Changes to the lexer are done to the .re file, not the C code! -// -// Please note that this isn't a perfect C lexer, since it is used for both -// HLSL and shader assembly language, and follows the quirks of Microsoft's -// tools. - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -typedef unsigned char uchar; - -/*!max:re2c */ -#define RET(t) return update_state(s, eoi, cursor, token, (Token) t) -#define YYCTYPE uchar -#define YYCURSOR cursor -#define YYLIMIT limit -#define YYMARKER s->lexer_marker -#define YYFILL(n) { if ((n) == 1) { cursor = sentinel; limit = cursor + YYMAXFILL; eoi = 1; } } - -static uchar sentinel[YYMAXFILL]; - -static Token update_state(IncludeState *s, int eoi, const uchar *cur, - const uchar *tok, const Token val) -{ - if (eoi) - { - s->bytes_left = 0; - s->source = (const char *) s->source_base + s->orig_length; - if ( (tok >= sentinel) && (tok < (sentinel+YYMAXFILL)) ) - s->token = s->source; - else - s->token = (const char *) tok; - } // if - else - { - s->bytes_left -= (unsigned int) (cur - ((const uchar *) s->source)); - s->source = (const char *) cur; - s->token = (const char *) tok; - } // else - s->tokenlen = (unsigned int) (s->source - s->token); - s->tokenval = val; - return val; -} // update_state - -Token preprocessor_lexer(IncludeState *s) -{ - const uchar *cursor = (const uchar *) s->source; - const uchar *token = cursor; - const uchar *matchptr; - const uchar *limit = cursor + s->bytes_left; - int eoi = 0; - -/*!re2c - ANY = [\000-\377]; - ANYLEGAL = [a-zA-Z0-9_/'*=+%^&|!#<>()[{}.,~^:;? \t\v\f\r\n\-\]\\]; - O = [0-7]; - D = [0-9]; - L = [a-zA-Z_]; - H = [a-fA-F0-9]; - E = [Ee] [+-]? D+; - FS = [fFhH]; - IS = [uUlL]*; - ESC = [\\] ([abfnrtv?'"\\] | "x" H+ | O+); - PP = "#" [ \t]*; - NEWLINE = ("\r\n" | "\r" | "\n"); - WHITESPACE = [ \t\v\f]+; -*/ - - // preprocessor directives are only valid at start of line. - if (s->tokenval == ((Token) '\n')) - goto ppdirective; // may jump back to scanner_loop. - -scanner_loop: - if (YYLIMIT == YYCURSOR) YYFILL(1); - token = cursor; - -/*!re2c - "\\" [ \t\v\f]* NEWLINE { s->line++; goto scanner_loop; } - - "/*" { goto multilinecomment; } - "//" { goto singlelinecomment; } - - L (L|D)* { RET(TOKEN_IDENTIFIER); } - - ("0" [xX] H+ IS?) | ("0" D+ IS?) | (D+ IS?) | - (['] (ESC|ANY\[\r\n\\'])* [']) - { RET(TOKEN_INT_LITERAL); } - - (D+ E FS?) | (D* "." D+ E? FS?) | (D+ "." D* E? FS?) - { RET(TOKEN_FLOAT_LITERAL); } - - (["] (ESC|ANY\[\r\n\\"])* ["]) - { RET(TOKEN_STRING_LITERAL); } - - ">>=" { RET(TOKEN_RSHIFTASSIGN); } - "<<=" { RET(TOKEN_LSHIFTASSIGN); } - "+=" { RET(TOKEN_ADDASSIGN); } - "-=" { RET(TOKEN_SUBASSIGN); } - "*=" { RET(TOKEN_MULTASSIGN); } - "/=" { RET(TOKEN_DIVASSIGN); } - "%=" { RET(TOKEN_MODASSIGN); } - "^=" { RET(TOKEN_XORASSIGN); } - "&=" { RET(TOKEN_ANDASSIGN); } - "|=" { RET(TOKEN_ORASSIGN); } - "++" { RET(TOKEN_INCREMENT); } - "--" { RET(TOKEN_DECREMENT); } - ">>" { RET(TOKEN_RSHIFT); } - "<<" { RET(TOKEN_LSHIFT); } - "&&" { RET(TOKEN_ANDAND); } - "||" { RET(TOKEN_OROR); } - "<=" { RET(TOKEN_LEQ); } - ">=" { RET(TOKEN_GEQ); } - "==" { RET(TOKEN_EQL); } - "!=" { RET(TOKEN_NEQ); } - "#" { RET(TOKEN_HASH); } - "##" { RET(TOKEN_HASHHASH); } - "(" { RET('('); } - ")" { RET(')'); } - "[" { RET('['); } - "]" { RET(']'); } - "." { RET('.'); } - "," { RET(','); } - "&" { RET('&'); } - "!" { RET('!'); } - "~" { RET('~'); } - "-" { RET('-'); } - "+" { RET('+'); } - "*" { RET('*'); } - "/" { RET('/'); } - "%" { RET('%'); } - "<" { RET('<'); } - ">" { RET('>'); } - "^" { RET('^'); } - "|" { RET('|'); } - ":" { RET(':'); } - "{" { RET('{'); } - "}" { RET('}'); } - "=" { RET('='); } - "?" { RET('?'); } - - ";" { if (s->asm_comments) goto singlelinecomment; RET(';'); } - - "\000" { if (eoi) { RET(TOKEN_EOI); } goto bad_chars; } - - WHITESPACE { if (s->report_whitespace) RET(' '); goto scanner_loop; } - NEWLINE { s->line++; RET('\n'); } - ANY { goto bad_chars; } -*/ - -multilinecomment: - if (YYLIMIT == YYCURSOR) YYFILL(1); - matchptr = cursor; -// The "*\/" is just to avoid screwing up text editor syntax highlighting. -/*!re2c - "*\/" { - if (s->report_comments) - RET(TOKEN_MULTI_COMMENT); - else if (s->report_whitespace) - RET(' '); - - // Microsoft's preprocessor allows multiline comments - // before a preprocessor directive, even though C/C++ - // doesn't. See if we've hit this case. - #if MATCH_MICROSOFT_PREPROCESSOR - if (s->tokenval == ((Token) '\n')) // was start of line? - { - update_state(s, eoi, cursor, token, (Token) '\n'); - goto ppdirective; // may jump back to scanner_loop. - } - #endif - - goto scanner_loop; - } - NEWLINE { - s->line++; - goto multilinecomment; - } - "\000" { - if (eoi) - RET(TOKEN_INCOMPLETE_COMMENT); - goto multilinecomment; - } - ANY { goto multilinecomment; } -*/ - -singlelinecomment: - if (YYLIMIT == YYCURSOR) YYFILL(1); - matchptr = cursor; -/*!re2c - NEWLINE { - s->line++; - if (s->report_comments) - { - cursor = matchptr; // so we RET('\n') next. - RET(TOKEN_SINGLE_COMMENT); - } - token = matchptr; - RET('\n'); - } - "\000" { - if (eoi) - { - if (s->report_comments) - RET(TOKEN_SINGLE_COMMENT); - else - RET(TOKEN_EOI); - } - goto singlelinecomment; - } - ANY { goto singlelinecomment; } -*/ - -ppdirective: - if (YYLIMIT == YYCURSOR) YYFILL(1); -/*!re2c - PP "include" { RET(TOKEN_PP_INCLUDE); } - PP "line" { RET(TOKEN_PP_LINE); } - PP "define" { RET(TOKEN_PP_DEFINE); } - PP "undef" { RET(TOKEN_PP_UNDEF); } - PP "if" { RET(TOKEN_PP_IF); } - PP "ifdef" { RET(TOKEN_PP_IFDEF); } - PP "ifndef" { RET(TOKEN_PP_IFNDEF); } - PP "else" { RET(TOKEN_PP_ELSE); } - PP "elif" { RET(TOKEN_PP_ELIF); } - PP "endif" { RET(TOKEN_PP_ENDIF); } - PP "error" { RET(TOKEN_PP_ERROR); } - PP "pragma" { RET(TOKEN_PP_PRAGMA); } - WHITESPACE { goto ppdirective; } - - ANY { - token = cursor = (const uchar *) s->source; - limit = cursor + s->bytes_left; - goto scanner_loop; - } -*/ - -bad_chars: - if (YYLIMIT == YYCURSOR) YYFILL(1); -/*!re2c - ANYLEGAL { cursor--; RET(TOKEN_BAD_CHARS); } - "\000" { - if (eoi) - { - assert( !((token >= sentinel) && - (token < sentinel+YYMAXFILL)) ); - eoi = 0; - cursor = (uchar *) s->source_base + s->orig_length; - RET(TOKEN_BAD_CHARS); // next call will be EOI. - } - goto bad_chars; - } - - ANY { goto bad_chars; } -*/ - - assert(0 && "Shouldn't hit this code"); - RET(TOKEN_UNKNOWN); -} // preprocessor_lexer - -// end of mojoshader_lexer.re (or .c) ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_metal.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_metal.c deleted file mode 100644 index ab31fef1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_metal.c +++ /dev/null @@ -1,553 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#if (defined(__APPLE__) && defined(__MACH__)) -#define PLATFORM_APPLE 1 -#endif /* (defined(__APPLE__) && defined(__MACH__)) */ - -typedef struct MOJOSHADER_mtlShader -{ - const MOJOSHADER_parseData *parseData; - uint32 refcount; - void *handle; // MTLFunction* -} MOJOSHADER_mtlShader; - -// profile-specific implementations... - -#if SUPPORT_PROFILE_METAL && PLATFORM_APPLE -#ifdef MOJOSHADER_EFFECT_SUPPORT - -#include "TargetConditionals.h" -#include -#define msg ((void* (*)(void*, void*))objc_msgSend) -#define msg_s ((void* (*)(void*, void*, const char*))objc_msgSend) -#define msg_p ((void* (*)(void*, void*, void*))objc_msgSend) -#define msg_uu ((void* (*)(void*, void*, uint64, uint64))objc_msgSend) -#define msg_ppp ((void* (*)(void*, void*, void*, void*, void*))objc_msgSend) - -// Error state... -static char error_buffer[1024] = { '\0' }; - -static void set_error(const char *str) -{ - snprintf(error_buffer, sizeof (error_buffer), "%s", str); -} // set_error - -static inline void out_of_memory(void) -{ - set_error("out of memory"); -} // out_of_memory - -// Max entries for each register file type... -#define MAX_REG_FILE_F 8192 -#define MAX_REG_FILE_I 2047 -#define MAX_REG_FILE_B 2047 - -typedef struct MOJOSHADER_mtlContext -{ - // Allocators... - MOJOSHADER_malloc malloc_fn; - MOJOSHADER_free free_fn; - void *malloc_data; - - // The constant register files... - // !!! FIXME: Man, it kills me how much memory this takes... - // !!! FIXME: ... make this dynamically allocated on demand. - float vs_reg_file_f[MAX_REG_FILE_F * 4]; - int vs_reg_file_i[MAX_REG_FILE_I * 4]; - uint8 vs_reg_file_b[MAX_REG_FILE_B]; - float ps_reg_file_f[MAX_REG_FILE_F * 4]; - int ps_reg_file_i[MAX_REG_FILE_I * 4]; - uint8 ps_reg_file_b[MAX_REG_FILE_B]; - - // Pointer to the active MTLDevice. - void* device; - - // The uniform MTLBuffer shared between all shaders in the context. - void *ubo; - - // The current offsets into the UBO, per shader. - int vertexUniformOffset; - int pixelUniformOffset; - int totalUniformOffset; - - // The currently bound shaders. - MOJOSHADER_mtlShader *vertexShader; - MOJOSHADER_mtlShader *pixelShader; - - // Objective-C Selectors - void* classNSString; - void* selAlloc; - void* selContents; - void* selInitWithUTF8String; - void* selLength; - void* selLocalizedDescription; - void* selNewBufferWithLength; - void* selNewFunctionWithName; - void* selNewLibraryWithSource; - void* selRelease; - void* selUTF8String; -} MOJOSHADER_mtlContext; - -static MOJOSHADER_mtlContext *ctx = NULL; - -/* Uniform buffer utilities */ - -static inline int next_highest_alignment(int n) -{ - #if TARGET_OS_IOS || TARGET_OS_TV || TARGET_OS_SIMULATOR - int align = 16; - #else - // !!! FIXME: Will Apple Silicon Macs have a different minimum alignment? - int align = 256; - #endif - - return align * ((n + align - 1) / align); -} // next_highest_alignment - -static void update_uniform_buffer(MOJOSHADER_mtlShader *shader) -{ - if (shader == NULL || shader->parseData->uniform_count == 0) - return; - - float *regF; int *regI; uint8 *regB; - if (shader->parseData->shader_type == MOJOSHADER_TYPE_VERTEX) - { - ctx->vertexUniformOffset = ctx->totalUniformOffset; - regF = ctx->vs_reg_file_f; - regI = ctx->vs_reg_file_i; - regB = ctx->vs_reg_file_b; - } // if - else - { - ctx->pixelUniformOffset = ctx->totalUniformOffset; - regF = ctx->ps_reg_file_f; - regI = ctx->ps_reg_file_i; - regB = ctx->ps_reg_file_b; - } // else - - void *contents = msg(ctx->ubo, ctx->selContents) + ctx->totalUniformOffset; - int offset = 0; - for (int i = 0; i < shader->parseData->uniform_count; i++) - { - if (shader->parseData->uniforms[i].constant) - continue; - - int idx = shader->parseData->uniforms[i].index; - int arrayCount = shader->parseData->uniforms[i].array_count; - - void *src = NULL; - int size = arrayCount ? arrayCount : 1; - - switch (shader->parseData->uniforms[i].type) - { - case MOJOSHADER_UNIFORM_FLOAT: - src = ®F[4 * idx]; - size *= 16; - break; - - case MOJOSHADER_UNIFORM_INT: - src = ®I[4 * idx]; - size *= 16; - break; - - case MOJOSHADER_UNIFORM_BOOL: - src = ®B[idx]; - break; - - default: - assert(0); // This should never happen. - break; - } // switch - - memcpy(contents + offset, src, size); - offset += size; - } // for - - ctx->totalUniformOffset = next_highest_alignment(ctx->totalUniformOffset + offset); - if (ctx->totalUniformOffset >= (int) msg(ctx->ubo, ctx->selLength)) - { - // !!! FIXME: Is there a better way to handle this? - assert(0 && "Uniform data exceeded the size of the buffer!"); - } // if -} // update_uniform_buffer - -/* Public API */ - -MOJOSHADER_mtlContext *MOJOSHADER_mtlCreateContext(void* mtlDevice, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d) -{ - MOJOSHADER_mtlContext *retval = NULL; - MOJOSHADER_mtlContext *current_ctx = ctx; - int i; - - ctx = NULL; - - if (m == NULL) m = MOJOSHADER_internal_malloc; - if (f == NULL) f = MOJOSHADER_internal_free; - - ctx = (MOJOSHADER_mtlContext *) m(sizeof (MOJOSHADER_mtlContext), malloc_d); - if (ctx == NULL) - { - out_of_memory(); - goto init_fail; - } // if - - memset(ctx, '\0', sizeof (MOJOSHADER_mtlContext)); - ctx->malloc_fn = m; - ctx->free_fn = f; - ctx->malloc_data = malloc_d; - - // Initialize the Metal state - ctx->device = mtlDevice; - - // Grab references to Objective-C selectors - ctx->classNSString = objc_getClass("NSString"); - ctx->selAlloc = sel_registerName("alloc"); - ctx->selContents = sel_registerName("contents"); - ctx->selInitWithUTF8String = sel_registerName("initWithUTF8String:"); - ctx->selLength = sel_registerName("length"); - ctx->selLocalizedDescription = sel_registerName("localizedDescription"); - ctx->selNewBufferWithLength = sel_registerName("newBufferWithLength:options:"); - ctx->selNewFunctionWithName = sel_registerName("newFunctionWithName:"); - ctx->selNewLibraryWithSource = sel_registerName("newLibraryWithSource:options:error:"); - ctx->selRelease = sel_registerName("release"); - ctx->selUTF8String = sel_registerName("UTF8String"); - - // Create the uniform buffer - ctx->ubo = msg_uu(mtlDevice, ctx->selNewBufferWithLength, - next_highest_alignment(1000000), 0); - - retval = ctx; - ctx = current_ctx; - return retval; - -init_fail: - if (ctx != NULL) - f(ctx, malloc_d); - ctx = current_ctx; - return NULL; -} // MOJOSHADER_mtlCreateContext - - -void MOJOSHADER_mtlMakeContextCurrent(MOJOSHADER_mtlContext *_ctx) -{ - ctx = _ctx; -} // MOJOSHADER_mtlMakeContextCurrent - - -void *MOJOSHADER_mtlCompileLibrary(MOJOSHADER_effect *effect) -{ - MOJOSHADER_malloc m = ctx->malloc_fn; - MOJOSHADER_free f = ctx->free_fn; - void *d = ctx->malloc_data; - - int i, src_len, src_pos, output_len; - char *shader_source, *ptr; - const char *repl; - MOJOSHADER_effectObject *object; - MOJOSHADER_mtlShader *shader; - void *retval, *compileError, *shader_source_ns, *fnname; - - // Count the number of shaders before allocating - src_len = 0; - for (i = 0; i < effect->object_count; i++) - { - object = &effect->objects[i]; - if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER - || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - if (!object->shader.is_preshader) - { - shader = (MOJOSHADER_mtlShader*) object->shader.shader; - src_len += shader->parseData->output_len; - } // if - } // if - } // for - - // Allocate shader source buffer - shader_source = (char *) m(src_len + 1, d); - memset(shader_source, '\0', src_len + 1); - src_pos = 0; - - // Copy all the source text into the buffer - for (i = 0; i < effect->object_count; i++) - { - object = &effect->objects[i]; - if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER - || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - if (!object->shader.is_preshader) - { - shader = (MOJOSHADER_mtlShader*) object->shader.shader; - memcpy(&shader_source[src_pos], shader->parseData->output, - shader->parseData->output_len); - src_pos += shader->parseData->output_len; - } // if - } // if - } // for - - // Handle texcoord0 -> point_coord conversion - if (strstr(shader_source, "[[point_size]]")) - { - // !!! FIXME: This assumes all texcoord0 attributes in the effect are - // !!! FIXME: actually point coords! It ain't necessarily so! -caleb - repl = "[[ point_coord ]]"; - while ((ptr = strstr(shader_source, "[[user(texcoord0)]]"))) - { - memcpy(ptr, repl, strlen(repl)); - - // "float4" -> "float2" - int spaces = 0; - while (spaces < 2) - if (*(ptr--) == ' ') - spaces++; - memcpy(ptr, "2", sizeof(char)); - } // while - } // if - - // Compile the source into a library - compileError = NULL; - shader_source_ns = msg_s( - msg(ctx->classNSString, ctx->selAlloc), - ctx->selInitWithUTF8String, - shader_source - ); - retval = msg_ppp(ctx->device, ctx->selNewLibraryWithSource, - shader_source_ns, NULL, &compileError); - f(shader_source, d); - msg(shader_source_ns, ctx->selRelease); - - if (retval == NULL) - { - compileError = msg(compileError, ctx->selLocalizedDescription); - set_error((char*) msg(compileError, ctx->selUTF8String)); - return NULL; - } // if - - // Run through the shaders again, getting the function handles - for (i = 0; i < effect->object_count; i++) - { - object = &effect->objects[i]; - if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER - || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - if (object->shader.is_preshader) - continue; - - shader = (MOJOSHADER_mtlShader*) object->shader.shader; - fnname = msg_s( - msg(ctx->classNSString, ctx->selAlloc), - ctx->selInitWithUTF8String, - shader->parseData->mainfn - ); - shader->handle = msg_p( - retval, - ctx->selNewFunctionWithName, - fnname - ); - msg(fnname, ctx->selRelease); - } // if - } // for - - return retval; -} // MOJOSHADER_mtlCompileLibrary - - -MOJOSHADER_mtlShader *MOJOSHADER_mtlCompileShader(const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount) -{ - MOJOSHADER_malloc m = ctx->malloc_fn; - MOJOSHADER_free f = ctx->free_fn; - void *d = ctx->malloc_data; - - const MOJOSHADER_parseData *pd = MOJOSHADER_parse("metal", mainfn, tokenbuf, - bufsize, swiz, swizcount, - smap, smapcount, m, f, d); - if (pd->error_count > 0) - { - // !!! FIXME: put multiple errors in the buffer? Don't use - // !!! FIXME: MOJOSHADER_mtlGetError() for this? - set_error(pd->errors[0].error); - goto compile_shader_fail; - } // if - - MOJOSHADER_mtlShader *retval = (MOJOSHADER_mtlShader *) m(sizeof(MOJOSHADER_mtlShader), d); - if (retval == NULL) - goto compile_shader_fail; - - retval->parseData = pd; - retval->refcount = 1; - retval->handle = NULL; // populated by MOJOSHADER_mtlCompileLibrary - - return retval; - -compile_shader_fail: - MOJOSHADER_freeParseData(retval->parseData); - f(retval, d); - return NULL; -} // MOJOSHADER_mtlCompileShader - - -void MOJOSHADER_mtlShaderAddRef(MOJOSHADER_mtlShader *shader) -{ - if (shader != NULL) - shader->refcount++; -} // MOJOSHADER_mtlShaderAddRef - - -const MOJOSHADER_parseData *MOJOSHADER_mtlGetShaderParseData( - MOJOSHADER_mtlShader *shader) -{ - return (shader != NULL) ? shader->parseData : NULL; -} // MOJOSHADER_mtlGetParseData - - -void MOJOSHADER_mtlBindShaders(MOJOSHADER_mtlShader *vshader, - MOJOSHADER_mtlShader *pshader) -{ - // Use the last bound shaders in case of NULL - if (vshader != NULL) - ctx->vertexShader = vshader; - - if (pshader != NULL) - ctx->pixelShader = pshader; -} // MOJOSHADER_mtlBindShaders - - -void MOJOSHADER_mtlGetBoundShaders(MOJOSHADER_mtlShader **vshader, - MOJOSHADER_mtlShader **pshader) -{ - *vshader = ctx->vertexShader; - *pshader = ctx->pixelShader; -} // MOJOSHADER_mtlGetBoundShaders - - -void MOJOSHADER_mtlMapUniformBufferMemory(float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb) -{ - *vsf = ctx->vs_reg_file_f; - *vsi = ctx->vs_reg_file_i; - *vsb = ctx->vs_reg_file_b; - *psf = ctx->ps_reg_file_f; - *psi = ctx->ps_reg_file_i; - *psb = ctx->ps_reg_file_b; -} // MOJOSHADER_mtlMapUniformBufferMemory - - -void MOJOSHADER_mtlUnmapUniformBufferMemory() -{ - /* This has nothing to do with unmapping memory - * and everything to do with updating uniform - * buffers with the latest parameter contents. - */ - update_uniform_buffer(ctx->vertexShader); - update_uniform_buffer(ctx->pixelShader); -} // MOJOSHADER_mtlUnmapUniformBufferMemory - - -void MOJOSHADER_mtlGetUniformData(void **buf, int *voff, int *poff) -{ - *buf = ctx->ubo; - *voff = ctx->vertexUniformOffset; - *poff = ctx->pixelUniformOffset; -} // MOJOSHADER_mtlGetUniformBuffers - - -void *MOJOSHADER_mtlGetFunctionHandle(MOJOSHADER_mtlShader *shader) -{ - if (shader == NULL) - return NULL; - - return shader->handle; -} // MOJOSHADER_mtlGetFunctionHandle - - -void MOJOSHADER_mtlEndFrame() -{ - ctx->totalUniformOffset = 0; - ctx->vertexUniformOffset = 0; - ctx->pixelUniformOffset = 0; -} // MOJOSHADER_mtlEndFrame - - -int MOJOSHADER_mtlGetVertexAttribLocation(MOJOSHADER_mtlShader *vert, - MOJOSHADER_usage usage, int index) -{ - if (vert == NULL) - return -1; - - for (int i = 0; i < vert->parseData->attribute_count; i++) - { - if (vert->parseData->attributes[i].usage == usage && - vert->parseData->attributes[i].index == index) - { - return i; - } // if - } // for - - // failure, couldn't find requested attribute - return -1; -} // MOJOSHADER_mtlGetVertexAttribLocation - - -const char *MOJOSHADER_mtlGetError(void) -{ - return error_buffer; -} // MOJOSHADER_mtlGetError - - -void MOJOSHADER_mtlDeleteLibrary(void *library) -{ - msg(library, ctx->selRelease); -} // MOJOSHADER_mtlDeleteLibrary - - -void MOJOSHADER_mtlDeleteShader(MOJOSHADER_mtlShader *shader) -{ - if (shader != NULL) - { - if (shader->refcount > 1) - shader->refcount--; - else - { - msg(shader->handle, ctx->selRelease); - MOJOSHADER_freeParseData(shader->parseData); - ctx->free_fn(shader, ctx->malloc_data); - } // else - } // if -} // MOJOSHADER_mtlDeleteShader - - -void MOJOSHADER_mtlDestroyContext(MOJOSHADER_mtlContext *_ctx) -{ - MOJOSHADER_mtlContext *current_ctx = ctx; - ctx = _ctx; - - if (ctx->ubo != NULL) - msg(ctx->ubo, ctx->selRelease); - - if (ctx != NULL) - ctx->free_fn(ctx, ctx->malloc_data); - ctx = ((current_ctx == _ctx) ? NULL : current_ctx); -} // MOJOSHADER_mtlDestroyContext - -#endif /* MOJOSHADER_EFFECT_SUPPORT */ -#endif /* SUPPORT_PROFILE_METAL && PLATFORM_APPLE */ - -// end of mojoshader_metal.c ... diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_opengl.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_opengl.c deleted file mode 100644 index 2552a06a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_opengl.c +++ /dev/null @@ -1,3002 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#ifdef _WIN32 -#define WIN32_LEAN_AND_MEAN 1 -#include // GL headers need this for WINGDIAPI definition. -#endif - -#if (defined(__APPLE__) && defined(__MACH__)) -#include "TargetConditionals.h" -#if !TARGET_OS_IPHONE && !TARGET_OS_TV -#define PLATFORM_MACOSX 1 -#endif /* !TARGET_OS_IPHONE && !TARGET_OS_TV */ -#endif /* (defined(__APPLE__) && defined(__MACH__)) */ - -#if PLATFORM_MACOSX -#include -#endif - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#define GL_GLEXT_LEGACY 1 -#include "GL/gl.h" -#include "GL/glext.h" - -#if SUPPORT_PROFILE_GLSPIRV -#include "spirv/spirv.h" -#endif - -#ifndef GL_HALF_FLOAT_NV -#define GL_HALF_FLOAT_NV 0x140B -#endif - -#ifndef GL_HALF_FLOAT_ARB -#define GL_HALF_FLOAT_ARB 0x140B -#endif - -#ifndef GL_HALF_FLOAT_OES -#define GL_HALF_FLOAT_OES 0x8D61 -#endif - -// this happens to be the same value for ARB1 and GLSL. -#ifndef GL_PROGRAM_POINT_SIZE -#define GL_PROGRAM_POINT_SIZE 0x8642 -#endif - -// FIXME: ARB_gl_spirv in glext.h? -flibit -#ifndef GL_ARB_gl_spirv -#define GL_ARB_gl_spirv 1 -#define GL_SHADER_BINARY_FORMAT_SPIR_V_ARB 0x9551 -typedef void (APIENTRYP PFNGLSPECIALIZESHADERARBPROC) ( - GLuint shader, - const GLchar* pEntryPoint, - GLuint numSpecializationConstants, - const GLuint* pConstantIndex, - const GLuint* pConstantValue -); -#endif - -struct MOJOSHADER_glShader -{ - const MOJOSHADER_parseData *parseData; - GLuint handle; - uint32 refcount; -}; - -typedef struct -{ - MOJOSHADER_shaderType shader_type; - const MOJOSHADER_uniform *uniform; - GLint location; -} UniformMap; - -typedef struct -{ - const MOJOSHADER_attribute *attribute; - GLint location; -} AttributeMap; - -struct MOJOSHADER_glProgram -{ - MOJOSHADER_glShader *vertex; - MOJOSHADER_glShader *fragment; - GLuint handle; - uint32 generation; - uint32 uniform_count; - uint32 texbem_count; - UniformMap *uniforms; - uint32 attribute_count; - AttributeMap *attributes; - size_t vs_uniforms_float4_count; - GLfloat *vs_uniforms_float4; - size_t vs_uniforms_int4_count; - GLint *vs_uniforms_int4; - size_t vs_uniforms_bool_count; - GLint *vs_uniforms_bool; - size_t ps_uniforms_float4_count; - GLfloat *ps_uniforms_float4; - size_t ps_uniforms_int4_count; - GLint *ps_uniforms_int4; - size_t ps_uniforms_bool_count; - GLint *ps_uniforms_bool; - - uint32 refcount; - - int uses_pointsize; - - // According to MSDN... - // - // n is an optional integer between 0 and the number of resources supported. - // For example, POSITION0, TEXCOOR1, etc. - // - // The input registers consist of 16 four-component floating-point vectors, - // designated as v0 through v15. - GLint vertex_attrib_loc[MOJOSHADER_USAGE_TOTAL][16]; - - // GLSL uses these...location of uniform arrays. - GLint vs_float4_loc; - GLint vs_int4_loc; - GLint vs_bool_loc; - GLint ps_float4_loc; - GLint ps_int4_loc; - GLint ps_bool_loc; - - // Numerous fixes for coordinate system mismatches - GLint ps_vpos_flip_loc; - int current_vpos_flip[2]; -#ifdef MOJOSHADER_FLIP_RENDERTARGET - GLint vs_flip_loc; - int current_flip; -#endif -}; - -#ifndef WINGDIAPI -#define WINGDIAPI -#endif - -// Entry points in base OpenGL that lack function pointer prototypes... -typedef WINGDIAPI void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); -typedef WINGDIAPI const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); -typedef WINGDIAPI GLenum (APIENTRYP PFNGLGETERRORPROC) (void); -typedef WINGDIAPI void (APIENTRYP PFNGLENABLEPROC) (GLenum cap); -typedef WINGDIAPI void (APIENTRYP PFNGLDISABLEPROC) (GLenum cap); - -// Max entries for each register file type... -#define MAX_REG_FILE_F 8192 -#define MAX_REG_FILE_I 2047 -#define MAX_REG_FILE_B 2047 -#define MAX_TEXBEMS 3 // ps_1_1 allows 4 texture stages, texbem can't use t0. - -struct MOJOSHADER_glContext -{ - // Allocators... - MOJOSHADER_malloc malloc_fn; - MOJOSHADER_free free_fn; - void *malloc_data; - - // The constant register files... - // !!! FIXME: Man, it kills me how much memory this takes... - // !!! FIXME: ... make this dynamically allocated on demand. - GLfloat vs_reg_file_f[MAX_REG_FILE_F * 4]; - GLint vs_reg_file_i[MAX_REG_FILE_I * 4]; - uint8 vs_reg_file_b[MAX_REG_FILE_B]; - GLfloat ps_reg_file_f[MAX_REG_FILE_F * 4]; - GLint ps_reg_file_i[MAX_REG_FILE_I * 4]; - uint8 ps_reg_file_b[MAX_REG_FILE_B]; - GLuint sampler_reg_file[16]; - GLfloat texbem_state[MAX_TEXBEMS * 6]; - - // This increments every time we change the register files. - uint32 generation; - - // This keeps track of implicitly linked programs. - HashTable *linker_cache; - - // This tells us which vertex attribute arrays we have enabled. - GLint max_attrs; - uint8 want_attr[32]; - uint8 have_attr[32]; - - // This shadows vertex attribute and divisor states. - GLuint attr_divisor[32]; - - // rarely used, so we don't touch when we don't have to. - int pointsize_enabled; - - // GL stuff... - int opengl_major; - int opengl_minor; - int glsl_major; - int glsl_minor; - MOJOSHADER_glProgram *bound_program; - char profile[16]; - -#ifdef MOJOSHADER_XNA4_VERTEX_TEXTURES - // Vertex texture sampler offset... - int vertex_sampler_offset; -#endif - - // Extensions... - int have_core_opengl; - int have_opengl_2; // different entry points than ARB extensions. - int have_opengl_3; // different extension query. - int have_opengl_es; // different extension requirements - int have_GL_ARB_vertex_program; - int have_GL_ARB_fragment_program; - int have_GL_NV_vertex_program2_option; - int have_GL_NV_fragment_program2; - int have_GL_NV_vertex_program3; - int have_GL_NV_gpu_program4; - int have_GL_ARB_shader_objects; - int have_GL_ARB_vertex_shader; - int have_GL_ARB_fragment_shader; - int have_GL_ARB_shading_language_100; - int have_GL_NV_half_float; - int have_GL_ARB_half_float_vertex; - int have_GL_OES_vertex_half_float; - int have_GL_ARB_instanced_arrays; - int have_GL_ARB_ES2_compatibility; - int have_GL_ARB_gl_spirv; - - // Entry points... - PFNGLGETSTRINGPROC glGetString; - PFNGLGETSTRINGIPROC glGetStringi; - PFNGLGETERRORPROC glGetError; - PFNGLGETINTEGERVPROC glGetIntegerv; - PFNGLENABLEPROC glEnable; - PFNGLDISABLEPROC glDisable; - PFNGLDELETESHADERPROC glDeleteShader; - PFNGLDELETEPROGRAMPROC glDeleteProgram; - PFNGLATTACHSHADERPROC glAttachShader; - PFNGLCOMPILESHADERPROC glCompileShader; - PFNGLCREATESHADERPROC glCreateShader; - PFNGLCREATEPROGRAMPROC glCreateProgram; - PFNGLDISABLEVERTEXATTRIBARRAYPROC glDisableVertexAttribArray; - PFNGLENABLEVERTEXATTRIBARRAYPROC glEnableVertexAttribArray; - PFNGLGETATTRIBLOCATIONPROC glGetAttribLocation; - PFNGLGETPROGRAMINFOLOGPROC glGetProgramInfoLog; - PFNGLGETSHADERINFOLOGPROC glGetShaderInfoLog; - PFNGLGETSHADERIVPROC glGetShaderiv; - PFNGLGETPROGRAMIVPROC glGetProgramiv; - PFNGLGETUNIFORMLOCATIONPROC glGetUniformLocation; - PFNGLLINKPROGRAMPROC glLinkProgram; - PFNGLSHADERSOURCEPROC glShaderSource; - PFNGLUNIFORM1IPROC glUniform1i; - PFNGLUNIFORM1IVPROC glUniform1iv; - PFNGLUNIFORM2FPROC glUniform2f; -#ifdef MOJOSHADER_FLIP_RENDERTARGET - PFNGLUNIFORM1FPROC glUniform1f; -#endif - PFNGLUNIFORM4FVPROC glUniform4fv; - PFNGLUNIFORM4IVPROC glUniform4iv; - PFNGLUSEPROGRAMPROC glUseProgram; - PFNGLVERTEXATTRIBPOINTERPROC glVertexAttribPointer; - PFNGLDELETEOBJECTARBPROC glDeleteObjectARB; - PFNGLATTACHOBJECTARBPROC glAttachObjectARB; - PFNGLCOMPILESHADERARBPROC glCompileShaderARB; - PFNGLCREATEPROGRAMOBJECTARBPROC glCreateProgramObjectARB; - PFNGLCREATESHADEROBJECTARBPROC glCreateShaderObjectARB; - PFNGLDISABLEVERTEXATTRIBARRAYARBPROC glDisableVertexAttribArrayARB; - PFNGLENABLEVERTEXATTRIBARRAYARBPROC glEnableVertexAttribArrayARB; - PFNGLGETATTRIBLOCATIONARBPROC glGetAttribLocationARB; - PFNGLGETINFOLOGARBPROC glGetInfoLogARB; - PFNGLGETOBJECTPARAMETERIVARBPROC glGetObjectParameterivARB; - PFNGLGETUNIFORMLOCATIONARBPROC glGetUniformLocationARB; - PFNGLLINKPROGRAMARBPROC glLinkProgramARB; - PFNGLSHADERSOURCEARBPROC glShaderSourceARB; - PFNGLUNIFORM1IARBPROC glUniform1iARB; - PFNGLUNIFORM1IVARBPROC glUniform1ivARB; - PFNGLUNIFORM4FVARBPROC glUniform4fvARB; - PFNGLUNIFORM4IVARBPROC glUniform4ivARB; - PFNGLUSEPROGRAMOBJECTARBPROC glUseProgramObjectARB; - PFNGLVERTEXATTRIBPOINTERARBPROC glVertexAttribPointerARB; - PFNGLGETPROGRAMIVARBPROC glGetProgramivARB; - PFNGLPROGRAMLOCALPARAMETER4FVARBPROC glProgramLocalParameter4fvARB; - PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC glProgramLocalParameterI4ivNV; - PFNGLDELETEPROGRAMSARBPROC glDeleteProgramsARB; - PFNGLGENPROGRAMSARBPROC glGenProgramsARB; - PFNGLBINDPROGRAMARBPROC glBindProgramARB; - PFNGLPROGRAMSTRINGARBPROC glProgramStringARB; - PFNGLVERTEXATTRIBDIVISORARBPROC glVertexAttribDivisorARB; - PFNGLSHADERBINARYPROC glShaderBinary; - PFNGLSPECIALIZESHADERARBPROC glSpecializeShaderARB; - - // interface for profile-specific things. - int (*profileMaxUniforms)(MOJOSHADER_shaderType shader_type); - int (*profileCompileShader)(const MOJOSHADER_parseData *pd, GLuint *s); - void (*profileDeleteShader)(const GLuint shader); - void (*profileDeleteProgram)(const GLuint program); - GLint (*profileGetAttribLocation)(MOJOSHADER_glProgram *program, int idx); - GLint (*profileGetUniformLocation)(MOJOSHADER_glProgram *program, MOJOSHADER_glShader *shader, int idx); - GLint (*profileGetSamplerLocation)(MOJOSHADER_glProgram *, MOJOSHADER_glShader *, int); - GLuint (*profileLinkProgram)(MOJOSHADER_glShader *, MOJOSHADER_glShader *); - void (*profileFinalInitProgram)(MOJOSHADER_glProgram *program); - void (*profileUseProgram)(MOJOSHADER_glProgram *program); - void (*profilePushConstantArray)(MOJOSHADER_glProgram *, const MOJOSHADER_uniform *, const GLfloat *); - void (*profilePushUniforms)(void); - void (*profilePushSampler)(GLint loc, GLuint sampler); - int (*profileMustPushConstantArrays)(void); - int (*profileMustPushSamplers)(void); - void (*profileToggleProgramPointSize)(int enable); -}; - -#ifdef MOJOSHADER_NO_THREAD_LOCAL -#define MOJOSHADER_THREADLOCAL -#elif defined(_MSC_VER) -#define MOJOSHADER_THREADLOCAL __declspec(thread) -#elif defined(__GNUC__) || defined(__clang__) -#define MOJOSHADER_THREADLOCAL __thread -#else -#error Please define your platform. -#endif - -static MOJOSHADER_THREADLOCAL MOJOSHADER_glContext *ctx = NULL; - -// Error state... -static char error_buffer[1024] = { '\0' }; - -static void set_error(const char *str) -{ - snprintf(error_buffer, sizeof (error_buffer), "%s", str); -} // set_error - -#if PLATFORM_MACOSX -static inline int macosx_version_atleast(int x, int y, int z) -{ -#if __MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 - return 1; -#else - static int checked = 0; - static int combined = 0; - - if (!checked) - { - SInt32 ver = 0; - SInt32 major = 0; - SInt32 minor = 0; - SInt32 patch = 0; - int convert = 0; - - if (Gestalt(gestaltSystemVersion, &ver) != noErr) - { - ver = 0x1000; // oh well. - convert = 1; // split (ver) into (major),(minor),(patch). - } - else if (ver < 0x1030) - { - convert = 1; // split (ver) into (major),(minor),(patch). - } - else - { - // presumably this won't fail. But if it does, we'll just use the - // original version value. This might cut the value--10.12.11 will - // come out to 10.9.9, for example--but it's better than nothing. - if (Gestalt(gestaltSystemVersionMajor, &major) != noErr) - convert = 1; - else if (Gestalt(gestaltSystemVersionMinor, &minor) != noErr) - convert = 1; - else if (Gestalt(gestaltSystemVersionBugFix, &patch) != noErr) - convert = 1; - } // else - - if (convert) - { - major = ((ver & 0xFF00) >> 8); - major = (((major / 16) * 10) + (major % 16)); - minor = ((ver & 0xF0) >> 4); - patch = (ver & 0xF); - } // if - - combined = (major << 16) | (minor << 8) | patch; - checked = 1; - } // if - - return (combined >= ((x << 16) | (y << 8) | z)); -#endif -} // macosx_version_atleast -#endif - -static inline void out_of_memory(void) -{ - set_error("out of memory"); -} // out_of_memory - -static inline void *Malloc(const size_t len) -{ - void *retval = ctx->malloc_fn((int) len, ctx->malloc_data); - if (retval == NULL) - out_of_memory(); - return retval; -} // Malloc - -static inline void Free(void *ptr) -{ - if (ptr != NULL) - ctx->free_fn(ptr, ctx->malloc_data); -} // Free - - -static inline void toggle_gl_state(GLenum state, int val) -{ - if (val) - ctx->glEnable(state); - else - ctx->glDisable(state); -} // toggle_gl_state - - -// profile-specific implementations... - -#if SUPPORT_PROFILE_GLSL || SUPPORT_PROFILE_GLSPIRV -static inline GLenum glsl_shader_type(const MOJOSHADER_shaderType t) -{ - // these enums match between core 2.0 and the ARB extensions. - if (t == MOJOSHADER_TYPE_VERTEX) - return GL_VERTEX_SHADER; - else if (t == MOJOSHADER_TYPE_PIXEL) - return GL_FRAGMENT_SHADER; - - // !!! FIXME: geometry shaders? - assert(0 && "Unknown GLSL shader type!"); - return GL_NONE; -} // glsl_shader_type - - -static int impl_GLSL_MustPushConstantArrays(void) { return 1; } -static int impl_GLSL_MustPushSamplers(void) { return 1; } - -static int impl_GLSL_MaxUniforms(MOJOSHADER_shaderType shader_type) -{ - // these enums match between core 2.0 and the ARB extensions. - GLenum pname = GL_NONE; - GLint val = 0; - if (shader_type == MOJOSHADER_TYPE_VERTEX) - pname = GL_MAX_VERTEX_UNIFORM_COMPONENTS; - else if (shader_type == MOJOSHADER_TYPE_PIXEL) - pname = GL_MAX_FRAGMENT_UNIFORM_COMPONENTS; - else - return -1; - - ctx->glGetIntegerv(pname, &val); - return (int) val; -} // impl_GLSL_MaxUniforms - -#if SUPPORT_PROFILE_GLSPIRV -static const SpirvPatchTable* spv_getPatchTable(MOJOSHADER_glShader *shader) -{ - const MOJOSHADER_parseData *pd = shader->parseData; - size_t table_offset = pd->output_len - sizeof(SpirvPatchTable); - return (const SpirvPatchTable *) (pd->output + table_offset); -} // spv_getPatchTable - -static int spv_CompileShader(const MOJOSHADER_parseData *pd, int32 base_location, GLuint *s) -{ - GLint ok = 0; - - GLsizei data_len = pd->output_len - sizeof(SpirvPatchTable); - const GLvoid* data = pd->output; - uint32 *patched_data = NULL; - if (base_location) - { - size_t i, max; - - patched_data = (uint32 *) Malloc(data_len); - memcpy(patched_data, data, data_len); - const SpirvPatchTable *table = (const SpirvPatchTable *) &pd->output[data_len]; - if (table->vpflip.offset) patched_data[table->vpflip.offset] += base_location; - if (table->array_vec4.offset) patched_data[table->array_vec4.offset] += base_location; - if (table->array_ivec4.offset) patched_data[table->array_ivec4.offset] += base_location; - if (table->array_bool.offset) patched_data[table->array_bool.offset] += base_location; - - for (i = 0, max = STATICARRAYLEN(table->samplers); i < max; i++) - { - SpirvPatchEntry entry = table->samplers[i]; - if (entry.offset) - patched_data[entry.offset] += base_location; - } // for - - data = patched_data; - } // if - - const GLuint shader = ctx->glCreateShader(glsl_shader_type(pd->shader_type)); - ctx->glShaderBinary(1, &shader, GL_SHADER_BINARY_FORMAT_SPIR_V_ARB, data, data_len); - ctx->glSpecializeShaderARB(shader, pd->mainfn, 0, NULL, NULL); // FIXME: Spec Constants? -flibit - ctx->glGetShaderiv(shader, GL_COMPILE_STATUS, &ok); - - if (patched_data) - Free(patched_data); - - if (!ok) - { - GLsizei len = 0; - ctx->glGetShaderInfoLog(shader, sizeof(error_buffer), &len, - (GLchar *) error_buffer); - ctx->glDeleteShader(shader); - *s = 0; - return 0; - } // if - - *s = shader; - - return 1; -} // spv_CompileShader - -static int impl_SPIRV_CompileShader(const MOJOSHADER_parseData *pd, GLuint *s) -{ - // Compilation postponed until linking, but generate dummy shader id so hash table lookups work. - *s = ctx->glCreateShader(glsl_shader_type(pd->shader_type)); - return 1; -} // impl_SPIRV_CompileShader - -static GLuint impl_SPIRV_LinkProgram(MOJOSHADER_glShader *vshader, - MOJOSHADER_glShader *pshader) -{ - GLint ok = 0; - GLuint vs_handle = 0; - int32 base_location = 0; - - // Shader compilation postponed until linking due to locations being global - // in program. To avoid overlap between VS and PS, we need to know about - // other shader stages to assign final uniform/attrib locations before - // compilation. - - MOJOSHADER_spirv_link_attributes(vshader->parseData, pshader->parseData); - - if (vshader) - { - if (!spv_CompileShader(vshader->parseData, base_location, &vs_handle)) - return 0; - - const SpirvPatchTable* patch_table = spv_getPatchTable(vshader); - base_location += patch_table->location_count; - } // if - - GLuint ps_handle = 0; - if (pshader) - { - if (!spv_CompileShader(pshader->parseData, base_location, &ps_handle)) - return 0; - } // if - - if (ctx->have_opengl_2) - { - const GLuint program = ctx->glCreateProgram(); - if (vs_handle) - { - ctx->glAttachShader(program, vs_handle); - ctx->glDeleteShader(vs_handle); - } // if - if (ps_handle) - { - ctx->glAttachShader(program, ps_handle); - ctx->glDeleteShader(ps_handle); - } // if - ctx->glLinkProgram(program); - ctx->glGetProgramiv(program, GL_LINK_STATUS, &ok); - if (!ok) - { - GLsizei len = 0; - ctx->glGetProgramInfoLog(program, sizeof (error_buffer), - &len, (GLchar *) error_buffer); - ctx->glDeleteProgram(program); - return 0; - } // if - - return program; - } // if - else - { - const GLhandleARB program = ctx->glCreateProgramObjectARB(); - assert(sizeof(program) == sizeof(GLuint)); // not always true on OS X! - if (vs_handle) - { - ctx->glAttachObjectARB(program, (GLhandleARB) vs_handle); - ctx->glDeleteObjectARB((GLhandleARB) vs_handle); - } // if - if (ps_handle) - { - ctx->glAttachObjectARB(program, (GLhandleARB) ps_handle); - ctx->glDeleteObjectARB((GLhandleARB) ps_handle); - } // if - ctx->glLinkProgramARB(program); - ctx->glGetObjectParameterivARB(program, GL_OBJECT_LINK_STATUS_ARB, &ok); - if (!ok) - { - GLsizei len = 0; - ctx->glGetInfoLogARB(program, sizeof (error_buffer), - &len, (GLcharARB *) error_buffer); - ctx->glDeleteObjectARB(program); - return 0; - } // if - - return (GLuint) program; - } // else -} // impl_SPIRV_LinkProgram - -static void impl_SPIRV_DeleteShader(const GLuint shader) -{ - ctx->glDeleteShader(shader); -} // impl_SPIRV_DeleteShader - -static void impl_SPIRV_DeleteProgram(const GLuint program) -{ - if (ctx->have_opengl_2) - ctx->glDeleteProgram(program); - else - ctx->glDeleteObjectARB((GLhandleARB) program); -} // impl_SPIRV_DeleteProgram - -static GLint impl_SPIRV_GetAttribLocation(MOJOSHADER_glProgram *program, int idx) -{ - return idx; -} // impl_SPIRV_GetAttribLocation - -static GLint impl_SPIRV_GetUniformLocation(MOJOSHADER_glProgram *program, MOJOSHADER_glShader *shader, int idx) -{ - return 0; // no-op, we push this as one big-ass array now. -} // impl_SPIRV_GetUniformLocation - -static GLint impl_SPIRV_GetSamplerLocation(MOJOSHADER_glProgram *program, MOJOSHADER_glShader *shader, int idx) -{ - const SpirvPatchTable *table = spv_getPatchTable(shader); - GLint location = table->samplers[idx].location; - if (location == -1) - return location; - - assert(location >= 0); - if (shader->parseData->shader_type == MOJOSHADER_TYPE_PIXEL) - location += spv_getPatchTable(program->vertex)->location_count; - - return location; -} // impl_SPIRV_GetSamplerLocation - -static void impl_SPIRV_FinalInitProgram(MOJOSHADER_glProgram *program) -{ - const SpirvPatchTable *vs_table = spv_getPatchTable(program->vertex); - const SpirvPatchTable *ps_table = spv_getPatchTable(program->fragment); - program->vs_float4_loc = vs_table->array_vec4.location; - program->vs_int4_loc = vs_table->array_ivec4.location; - program->vs_bool_loc = vs_table->array_bool.location; - program->ps_float4_loc = ps_table->array_vec4.location; - program->ps_int4_loc = ps_table->array_ivec4.location; - program->ps_bool_loc = ps_table->array_bool.location; - program->ps_vpos_flip_loc = ps_table->vpflip.location; -#ifdef MOJOSHADER_FLIP_RENDERTARGET - program->vs_flip_loc = vs_table->vpflip.location; -#endif - - int32 ps_base_location = vs_table->location_count; - if (ps_base_location) - { - if (program->ps_float4_loc != -1) program->ps_float4_loc += ps_base_location; - if (program->ps_int4_loc != -1) program->ps_int4_loc += ps_base_location; - if (program->ps_bool_loc != -1) program->ps_bool_loc += ps_base_location; - if (program->ps_vpos_flip_loc != -1) program->ps_vpos_flip_loc += ps_base_location; - } // if -} // impl_SPIRV_FinalInitProgram -#endif // SUPPORT_PROFILE_GLSPIRV - -#if SUPPORT_PROFILE_GLSL -static int impl_GLSL_CompileShader(const MOJOSHADER_parseData *pd, GLuint *s) -{ - GLint ok = 0; - const GLint codelen = (GLint) pd->output_len; - const GLenum shader_type = glsl_shader_type(pd->shader_type); - - if (ctx->have_opengl_2) - { - const GLuint shader = ctx->glCreateShader(shader_type); - ctx->glShaderSource(shader, 1, (const GLchar**) &pd->output, &codelen); - ctx->glCompileShader(shader); - ctx->glGetShaderiv(shader, GL_COMPILE_STATUS, &ok); - if (!ok) - { - GLsizei len = 0; - ctx->glGetShaderInfoLog(shader, sizeof (error_buffer), &len, - (GLchar *) error_buffer); - ctx->glDeleteShader(shader); - *s = 0; - return 0; - } // if - - *s = shader; - } // if - else - { - const GLhandleARB shader = ctx->glCreateShaderObjectARB(shader_type); - assert(sizeof (shader) == sizeof (*s)); // not always true on OS X! - ctx->glShaderSourceARB(shader, 1, - (const GLcharARB **) &pd->output, &codelen); - ctx->glCompileShaderARB(shader); - ctx->glGetObjectParameterivARB(shader,GL_OBJECT_COMPILE_STATUS_ARB,&ok); - if (!ok) - { - GLsizei len = 0; - ctx->glGetInfoLogARB(shader, sizeof (error_buffer), &len, - (GLcharARB *) error_buffer); - ctx->glDeleteObjectARB(shader); - *s = 0; - return 0; - } // if - - *s = (GLuint) shader; - } // else - - return 1; -} // impl_GLSL_CompileShader -#endif // SUPPORT_PROFILE_GLSL - - -static void impl_GLSL_DeleteShader(const GLuint shader) -{ - if (ctx->have_opengl_2) - ctx->glDeleteShader(shader); - else - ctx->glDeleteObjectARB((GLhandleARB) shader); -} // impl_GLSL_DeleteShader - - -static void impl_GLSL_DeleteProgram(const GLuint program) -{ - if (ctx->have_opengl_2) - ctx->glDeleteProgram(program); - else - ctx->glDeleteObjectARB((GLhandleARB) program); -} // impl_GLSL_DeleteProgram - - -static GLint impl_GLSL_GetUniformLocation(MOJOSHADER_glProgram *program, - MOJOSHADER_glShader *shader, int idx) -{ - return 0; // no-op, we push this as one big-ass array now. -} // impl_GLSL_GetUniformLocation - - -static inline GLint glsl_uniform_loc(MOJOSHADER_glProgram *program, - const char *name) -{ - return ctx->have_opengl_2 ? - ctx->glGetUniformLocation(program->handle, name) : - ctx->glGetUniformLocationARB((GLhandleARB) program->handle, name); -} // glsl_uniform_loc - - -static GLint impl_GLSL_GetSamplerLocation(MOJOSHADER_glProgram *program, - MOJOSHADER_glShader *shader, int idx) -{ - return glsl_uniform_loc(program, shader->parseData->samplers[idx].name); -} // impl_GLSL_GetSamplerLocation - - -static GLint impl_GLSL_GetAttribLocation(MOJOSHADER_glProgram *program, int idx) -{ - const MOJOSHADER_parseData *pd = program->vertex->parseData; - const MOJOSHADER_attribute *a = pd->attributes; - - if (ctx->have_opengl_2) - { - return ctx->glGetAttribLocation(program->handle, - (const GLchar *) a[idx].name); - } // if - - return ctx->glGetAttribLocationARB((GLhandleARB) program->handle, - (const GLcharARB *) a[idx].name); -} // impl_GLSL_GetAttribLocation - - -static GLuint impl_GLSL_LinkProgram(MOJOSHADER_glShader *vshader, - MOJOSHADER_glShader *pshader) -{ - GLint ok = 0; - - if (ctx->have_opengl_2) - { - const GLuint program = ctx->glCreateProgram(); - - if (vshader != NULL) ctx->glAttachShader(program, vshader->handle); - if (pshader != NULL) ctx->glAttachShader(program, pshader->handle); - - ctx->glLinkProgram(program); - - ctx->glGetProgramiv(program, GL_LINK_STATUS, &ok); - if (!ok) - { - GLsizei len = 0; - ctx->glGetProgramInfoLog(program, sizeof (error_buffer), - &len, (GLchar *) error_buffer); - ctx->glDeleteProgram(program); - return 0; - } // if - - return program; - } // if - else - { - const GLhandleARB program = ctx->glCreateProgramObjectARB(); - assert(sizeof(program) == sizeof(GLuint)); // not always true on OS X! - - if (vshader != NULL) - ctx->glAttachObjectARB(program, (GLhandleARB) vshader->handle); - - if (pshader != NULL) - ctx->glAttachObjectARB(program, (GLhandleARB) pshader->handle); - - ctx->glLinkProgramARB(program); - - ctx->glGetObjectParameterivARB(program, GL_OBJECT_LINK_STATUS_ARB, &ok); - if (!ok) - { - GLsizei len = 0; - ctx->glGetInfoLogARB(program, sizeof (error_buffer), - &len, (GLcharARB *) error_buffer); - ctx->glDeleteObjectARB(program); - return 0; - } // if - - return (GLuint) program; - } // else -} // impl_GLSL_LinkProgram - -static void impl_GLSL_FinalInitProgram(MOJOSHADER_glProgram *program) -{ - program->vs_float4_loc = glsl_uniform_loc(program, "vs_uniforms_vec4"); - program->vs_int4_loc = glsl_uniform_loc(program, "vs_uniforms_ivec4"); - program->vs_bool_loc = glsl_uniform_loc(program, "vs_uniforms_bool"); - program->ps_float4_loc = glsl_uniform_loc(program, "ps_uniforms_vec4"); - program->ps_int4_loc = glsl_uniform_loc(program, "ps_uniforms_ivec4"); - program->ps_bool_loc = glsl_uniform_loc(program, "ps_uniforms_bool"); - program->ps_vpos_flip_loc = glsl_uniform_loc(program, "vposFlip"); -#ifdef MOJOSHADER_FLIP_RENDERTARGET - program->vs_flip_loc = glsl_uniform_loc(program, "vpFlip"); -#endif -} // impl_GLSL_FinalInitProgram - - -static void impl_GLSL_UseProgram(MOJOSHADER_glProgram *program) -{ - if (ctx->have_opengl_2) - ctx->glUseProgram(program ? program->handle : 0); - else - ctx->glUseProgramObjectARB((GLhandleARB) (program ? program->handle : 0)); -} // impl_GLSL_UseProgram - - -static void impl_GLSL_PushConstantArray(MOJOSHADER_glProgram *program, - const MOJOSHADER_uniform *u, - const GLfloat *f) -{ - const GLint loc = glsl_uniform_loc(program, u->name); - if (loc >= 0) // not optimized out? - ctx->glUniform4fv(loc, u->array_count, f); -} // impl_GLSL_PushConstantArray - - -static void impl_GLSL_PushUniforms(void) -{ - const MOJOSHADER_glProgram *program = ctx->bound_program; - - assert(program->uniform_count > 0); // don't call with nothing to do! - - if (program->vs_float4_loc != -1) - { - ctx->glUniform4fv(program->vs_float4_loc, - program->vs_uniforms_float4_count, - program->vs_uniforms_float4); - } // if - - if (program->vs_int4_loc != -1) - { - ctx->glUniform4iv(program->vs_int4_loc, - program->vs_uniforms_int4_count, - program->vs_uniforms_int4); - } // if - - if (program->vs_bool_loc != -1) - { - ctx->glUniform1iv(program->vs_bool_loc, - program->vs_uniforms_bool_count, - program->vs_uniforms_bool); - } // if - - if (program->ps_float4_loc != -1) - { - ctx->glUniform4fv(program->ps_float4_loc, - program->ps_uniforms_float4_count, - program->ps_uniforms_float4); - } // if - - if (program->ps_int4_loc != -1) - { - ctx->glUniform4iv(program->ps_int4_loc, - program->ps_uniforms_int4_count, - program->ps_uniforms_int4); - } // if - - if (program->ps_bool_loc != -1) - { - ctx->glUniform1iv(program->ps_bool_loc, - program->ps_uniforms_bool_count, - program->ps_uniforms_bool); - } // if -} // impl_GLSL_PushUniforms - - -static void impl_GLSL_PushSampler(GLint loc, GLuint sampler) -{ - ctx->glUniform1i(loc, sampler); -} // impl_GLSL_PushSampler - -#endif // SUPPORT_PROFILE_GLSL || SUPPORT_PROFILE_GLSPIRV - - -#if SUPPORT_PROFILE_ARB1 -static inline GLenum arb1_shader_type(const MOJOSHADER_shaderType t) -{ - if (t == MOJOSHADER_TYPE_VERTEX) - return GL_VERTEX_PROGRAM_ARB; - else if (t == MOJOSHADER_TYPE_PIXEL) - return GL_FRAGMENT_PROGRAM_ARB; - - // !!! FIXME: geometry shaders? - return GL_NONE; -} // arb1_shader_type - -static int impl_ARB1_MustPushConstantArrays(void) { return 0; } -static int impl_ARB1_MustPushSamplers(void) { return 0; } - -static int impl_ARB1_MaxUniforms(MOJOSHADER_shaderType shader_type) -{ - GLint retval = 0; - const GLenum program_type = arb1_shader_type(shader_type); - if (program_type == GL_NONE) - return -1; - - ctx->glGetProgramivARB(program_type, GL_MAX_PROGRAM_PARAMETERS_ARB, &retval); - return (int) retval; // !!! FIXME: times four? -} // impl_ARB1_MaxUniforms - - -static int impl_ARB1_CompileShader(const MOJOSHADER_parseData *pd, GLuint *s) -{ - GLint shaderlen = (GLint) pd->output_len; - const GLenum shader_type = arb1_shader_type(pd->shader_type); - GLuint shader = 0; - ctx->glGenProgramsARB(1, &shader); - - ctx->glGetError(); // flush any existing error state. - ctx->glBindProgramARB(shader_type, shader); - ctx->glProgramStringARB(shader_type, GL_PROGRAM_FORMAT_ASCII_ARB, - shaderlen, pd->output); - - if (ctx->glGetError() == GL_INVALID_OPERATION) - { - GLint pos = 0; - ctx->glGetIntegerv(GL_PROGRAM_ERROR_POSITION_ARB, &pos); - const GLubyte *errstr = ctx->glGetString(GL_PROGRAM_ERROR_STRING_ARB); - snprintf(error_buffer, sizeof (error_buffer), - "ARB1 compile error at position %d: %s", - (int) pos, (const char *) errstr); - ctx->glBindProgramARB(shader_type, 0); - ctx->glDeleteProgramsARB(1, &shader); - *s = 0; - return 0; - } // if - - *s = shader; - return 1; -} // impl_ARB1_CompileShader - - -static void impl_ARB1_DeleteShader(const GLuint _shader) -{ - GLuint shader = _shader; // const removal. - ctx->glDeleteProgramsARB(1, &shader); -} // impl_ARB1_DeleteShader - - -static void impl_ARB1_DeleteProgram(const GLuint program) -{ - // no-op. ARB1 doesn't have real linked programs. -} // impl_ARB1_DeleteProgram - -static GLint impl_ARB1_GetUniformLocation(MOJOSHADER_glProgram *program, - MOJOSHADER_glShader *shader, int idx) -{ - return 0; // no-op, we push this as one big-ass array now. -} // impl_ARB1_GetUniformLocation - -static GLint impl_ARB1_GetSamplerLocation(MOJOSHADER_glProgram *program, - MOJOSHADER_glShader *shader, int idx) -{ - return shader->parseData->samplers[idx].index; -} // impl_ARB1_GetSamplerLocation - - -static GLint impl_ARB1_GetAttribLocation(MOJOSHADER_glProgram *program, int idx) -{ - return idx; // map to vertex arrays in the same order as the parseData. -} // impl_ARB1_GetAttribLocation - - -static GLuint impl_ARB1_LinkProgram(MOJOSHADER_glShader *vshader, - MOJOSHADER_glShader *pshader) -{ - // there is no formal linking in ARB1...just return a unique value. - static GLuint retval = 1; - return retval++; -} // impl_ARB1_LinkProgram - - -static void impl_ARB1_FinalInitProgram(MOJOSHADER_glProgram *program) -{ - // no-op. -} // impl_ARB1_FinalInitProgram - - -static void impl_ARB1_UseProgram(MOJOSHADER_glProgram *program) -{ - GLuint vhandle = 0; - GLuint phandle = 0; - if (program != NULL) - { - if (program->vertex != NULL) - vhandle = program->vertex->handle; - if (program->fragment != NULL) - phandle = program->fragment->handle; - } // if - - toggle_gl_state(GL_VERTEX_PROGRAM_ARB, vhandle != 0); - toggle_gl_state(GL_FRAGMENT_PROGRAM_ARB, phandle != 0); - - ctx->glBindProgramARB(GL_VERTEX_PROGRAM_ARB, vhandle); - ctx->glBindProgramARB(GL_FRAGMENT_PROGRAM_ARB, phandle); -} // impl_ARB1_UseProgram - - -static void impl_ARB1_PushConstantArray(MOJOSHADER_glProgram *program, - const MOJOSHADER_uniform *u, - const GLfloat *f) -{ - // no-op. Constant arrays are defined in source code for arb1. -} // impl_ARB1_PushConstantArray - - -static void impl_ARB1_PushUniforms(void) -{ - // vertex shader uniforms come first in program->uniforms array. - MOJOSHADER_shaderType shader_type = MOJOSHADER_TYPE_VERTEX; - GLenum arb_shader_type = arb1_shader_type(shader_type); - const MOJOSHADER_glProgram *program = ctx->bound_program; - const uint32 count = program->uniform_count; - const GLfloat *srcf = program->vs_uniforms_float4; - const GLint *srci = program->vs_uniforms_int4; - const GLint *srcb = program->vs_uniforms_bool; - GLint loc = 0; - GLint texbem_loc = 0; - uint32 i; - - assert(count > 0); // shouldn't call this with nothing to do! - - for (i = 0; i < count; i++) - { - UniformMap *map = &program->uniforms[i]; - const MOJOSHADER_shaderType uniform_shader_type = map->shader_type; - const MOJOSHADER_uniform *u = map->uniform; - const MOJOSHADER_uniformType type = u->type; - const int size = u->array_count ? u->array_count : 1; - - assert(!u->constant); - - // Did we switch from vertex to pixel (to geometry, etc)? - if (shader_type != uniform_shader_type) - { - if (shader_type == MOJOSHADER_TYPE_PIXEL) - texbem_loc = loc; - - // we start with vertex, move to pixel, then to geometry, etc. - // The array should always be sorted as such. - if (uniform_shader_type == MOJOSHADER_TYPE_PIXEL) - { - assert(shader_type == MOJOSHADER_TYPE_VERTEX); - srcf = program->ps_uniforms_float4; - srci = program->ps_uniforms_int4; - srcb = program->ps_uniforms_bool; - loc = 0; - } // if - else - { - // These should be ordered vertex, then pixel, then geometry. - assert(0 && "Unexpected shader type"); - } // else - - shader_type = uniform_shader_type; - arb_shader_type = arb1_shader_type(uniform_shader_type); - } // if - - if (type == MOJOSHADER_UNIFORM_FLOAT) - { - int i; - for (i = 0; i < size; i++, srcf += 4, loc++) - ctx->glProgramLocalParameter4fvARB(arb_shader_type, loc, srcf); - } // if - else if (type == MOJOSHADER_UNIFORM_INT) - { - int i; - if (ctx->have_GL_NV_gpu_program4) - { - // GL_NV_gpu_program4 has integer uniform loading support. - for (i = 0; i < size; i++, srci += 4, loc++) - ctx->glProgramLocalParameterI4ivNV(arb_shader_type, loc, srci); - } // if - else - { - for (i = 0; i < size; i++, srci += 4, loc++) - { - const GLfloat fv[4] = { - (GLfloat) srci[0], (GLfloat) srci[1], - (GLfloat) srci[2], (GLfloat) srci[3] - }; - ctx->glProgramLocalParameter4fvARB(arb_shader_type, loc, fv); - } // for - } // else - } // else if - else if (type == MOJOSHADER_UNIFORM_BOOL) - { - int i; - if (ctx->have_GL_NV_gpu_program4) - { - // GL_NV_gpu_program4 has integer uniform loading support. - for (i = 0; i < size; i++, srcb++, loc++) - { - const GLint ib = (GLint) ((*srcb) ? 1 : 0); - const GLint iv[4] = { ib, ib, ib, ib }; - ctx->glProgramLocalParameterI4ivNV(arb_shader_type, loc, iv); - } // for - } // if - else - { - for (i = 0; i < size; i++, srcb++, loc++) - { - const GLfloat fb = (GLfloat) ((*srcb) ? 1.0f : 0.0f); - const GLfloat fv[4] = { fb, fb, fb, fb }; - ctx->glProgramLocalParameter4fvARB(arb_shader_type, loc, fv); - } // for - } // else - } // else if - } // for - - if (program->texbem_count) - { - const GLenum target = GL_FRAGMENT_PROGRAM_ARB; - GLfloat *srcf = program->ps_uniforms_float4; - srcf += (program->ps_uniforms_float4_count * 4) - - (program->texbem_count * 8); - loc = texbem_loc; - for (i = 0; i < program->texbem_count; i++, srcf += 8) - { - ctx->glProgramLocalParameter4fvARB(target, loc++, srcf); - ctx->glProgramLocalParameter4fvARB(target, loc++, srcf + 4); - } // for - } // if -} // impl_ARB1_PushUniforms - -static void impl_ARB1_PushSampler(GLint loc, GLuint sampler) -{ - // no-op in this profile...arb1 uses the texture units as-is. - assert(loc == (GLint) sampler); -} // impl_ARB1_PushSampler - -#endif // SUPPORT_PROFILE_ARB1 - -#if SUPPORT_PROFILE_GLSL || SUPPORT_PROFILE_ARB1 - -static void impl_REAL_ToggleProgramPointSize(int enable) -{ - toggle_gl_state(GL_PROGRAM_POINT_SIZE, enable); -} // impl_REAL_ToggleProgramPointSize - -static void impl_NOOP_ToggleProgramPointSize(int enable) -{ - // No-op, this profile's GL context forces this to always be on -} // impl_NOOP_ToggleProgramPointSize - -#endif // SUPPORT_PROFILE_GLSL || SUPPORT_PROFILE_ARB1 - - -const char *MOJOSHADER_glGetError(void) -{ - return error_buffer; -} // MOJOSHADER_glGetError - - -static void *loadsym(MOJOSHADER_glGetProcAddress lookup, void *d, - const char *fn, int *ext) -{ - void *retval = NULL; - if (lookup != NULL) - retval = lookup(fn, d); - - if (retval == NULL) - *ext = 0; - - return retval; -} // loadsym - -static void lookup_entry_points(MOJOSHADER_glGetProcAddress lookup, void *d) -{ - #define DO_LOOKUP(ext, typ, fn) { \ - ctx->fn = (typ) loadsym(lookup, d, #fn, &ctx->have_##ext); \ - } - - DO_LOOKUP(core_opengl, PFNGLGETSTRINGPROC, glGetString); - DO_LOOKUP(core_opengl, PFNGLGETERRORPROC, glGetError); - DO_LOOKUP(core_opengl, PFNGLGETINTEGERVPROC, glGetIntegerv); - DO_LOOKUP(core_opengl, PFNGLENABLEPROC, glEnable); - DO_LOOKUP(core_opengl, PFNGLDISABLEPROC, glDisable); - DO_LOOKUP(opengl_3, PFNGLGETSTRINGIPROC, glGetStringi); - DO_LOOKUP(opengl_2, PFNGLDELETESHADERPROC, glDeleteShader); - DO_LOOKUP(opengl_2, PFNGLDELETEPROGRAMPROC, glDeleteProgram); - DO_LOOKUP(opengl_2, PFNGLATTACHSHADERPROC, glAttachShader); - DO_LOOKUP(opengl_2, PFNGLCOMPILESHADERPROC, glCompileShader); - DO_LOOKUP(opengl_2, PFNGLCREATESHADERPROC, glCreateShader); - DO_LOOKUP(opengl_2, PFNGLCREATEPROGRAMPROC, glCreateProgram); - DO_LOOKUP(opengl_2, PFNGLDISABLEVERTEXATTRIBARRAYPROC, glDisableVertexAttribArray); - DO_LOOKUP(opengl_2, PFNGLENABLEVERTEXATTRIBARRAYPROC, glEnableVertexAttribArray); - DO_LOOKUP(opengl_2, PFNGLGETATTRIBLOCATIONPROC, glGetAttribLocation); - DO_LOOKUP(opengl_2, PFNGLGETPROGRAMINFOLOGPROC, glGetProgramInfoLog); - DO_LOOKUP(opengl_2, PFNGLGETSHADERINFOLOGPROC, glGetShaderInfoLog); - DO_LOOKUP(opengl_2, PFNGLGETSHADERIVPROC, glGetShaderiv); - DO_LOOKUP(opengl_2, PFNGLGETPROGRAMIVPROC, glGetProgramiv); - DO_LOOKUP(opengl_2, PFNGLGETUNIFORMLOCATIONPROC, glGetUniformLocation); - DO_LOOKUP(opengl_2, PFNGLLINKPROGRAMPROC, glLinkProgram); - DO_LOOKUP(opengl_2, PFNGLSHADERSOURCEPROC, glShaderSource); - DO_LOOKUP(opengl_2, PFNGLUNIFORM1IPROC, glUniform1i); - DO_LOOKUP(opengl_2, PFNGLUNIFORM1IVPROC, glUniform1iv); - DO_LOOKUP(opengl_2, PFNGLUNIFORM2FPROC, glUniform2f); -#ifdef MOJOSHADER_FLIP_RENDERTARGET - DO_LOOKUP(opengl_2, PFNGLUNIFORM1FPROC, glUniform1f); -#endif - DO_LOOKUP(opengl_2, PFNGLUNIFORM4FVPROC, glUniform4fv); - DO_LOOKUP(opengl_2, PFNGLUNIFORM4IVPROC, glUniform4iv); - DO_LOOKUP(opengl_2, PFNGLUSEPROGRAMPROC, glUseProgram); - DO_LOOKUP(opengl_2, PFNGLVERTEXATTRIBPOINTERPROC, glVertexAttribPointer); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLDELETEOBJECTARBPROC, glDeleteObjectARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLATTACHOBJECTARBPROC, glAttachObjectARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLCOMPILESHADERARBPROC, glCompileShaderARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLCREATEPROGRAMOBJECTARBPROC, glCreateProgramObjectARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLCREATESHADEROBJECTARBPROC, glCreateShaderObjectARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLGETINFOLOGARBPROC, glGetInfoLogARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLGETOBJECTPARAMETERIVARBPROC, glGetObjectParameterivARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLGETUNIFORMLOCATIONARBPROC, glGetUniformLocationARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLLINKPROGRAMARBPROC, glLinkProgramARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLSHADERSOURCEARBPROC, glShaderSourceARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLUNIFORM1IARBPROC, glUniform1iARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLUNIFORM1IVARBPROC, glUniform1ivARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLUNIFORM4FVARBPROC, glUniform4fvARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLUNIFORM4IVARBPROC, glUniform4ivARB); - DO_LOOKUP(GL_ARB_shader_objects, PFNGLUSEPROGRAMOBJECTARBPROC, glUseProgramObjectARB); - DO_LOOKUP(GL_ARB_vertex_shader, PFNGLDISABLEVERTEXATTRIBARRAYARBPROC, glDisableVertexAttribArrayARB); - DO_LOOKUP(GL_ARB_vertex_shader, PFNGLENABLEVERTEXATTRIBARRAYARBPROC, glEnableVertexAttribArrayARB); - DO_LOOKUP(GL_ARB_vertex_shader, PFNGLGETATTRIBLOCATIONARBPROC, glGetAttribLocationARB); - DO_LOOKUP(GL_ARB_vertex_shader, PFNGLVERTEXATTRIBPOINTERARBPROC, glVertexAttribPointerARB); - DO_LOOKUP(GL_ARB_vertex_program, PFNGLVERTEXATTRIBPOINTERARBPROC, glVertexAttribPointerARB); - DO_LOOKUP(GL_ARB_vertex_program, PFNGLGETPROGRAMIVARBPROC, glGetProgramivARB); - DO_LOOKUP(GL_ARB_vertex_program, PFNGLPROGRAMLOCALPARAMETER4FVARBPROC, glProgramLocalParameter4fvARB); - DO_LOOKUP(GL_ARB_vertex_program, PFNGLDELETEPROGRAMSARBPROC, glDeleteProgramsARB); - DO_LOOKUP(GL_ARB_vertex_program, PFNGLGENPROGRAMSARBPROC, glGenProgramsARB); - DO_LOOKUP(GL_ARB_vertex_program, PFNGLBINDPROGRAMARBPROC, glBindProgramARB); - DO_LOOKUP(GL_ARB_vertex_program, PFNGLPROGRAMSTRINGARBPROC, glProgramStringARB); - DO_LOOKUP(GL_NV_gpu_program4, PFNGLPROGRAMLOCALPARAMETERI4IVNVPROC, glProgramLocalParameterI4ivNV); - DO_LOOKUP(GL_ARB_instanced_arrays, PFNGLVERTEXATTRIBDIVISORARBPROC, glVertexAttribDivisorARB); - DO_LOOKUP(GL_ARB_ES2_compatibility, PFNGLSHADERBINARYPROC, glShaderBinary); - DO_LOOKUP(GL_ARB_gl_spirv, PFNGLSPECIALIZESHADERARBPROC, glSpecializeShaderARB); - - #undef DO_LOOKUP -} // lookup_entry_points - -static inline int opengl_version_atleast(const int major, const int minor) -{ - return ( ((ctx->opengl_major << 16) | (ctx->opengl_minor & 0xFFFF)) >= - ((major << 16) | (minor & 0xFFFF)) ); -} // opengl_version_atleast - -static int verify_extension(const char *ext, int have, StringCache *exts, - int major, int minor) -{ - if (have == 0) - return 0; // don't bother checking, we're missing an entry point. - - else if (!ctx->have_core_opengl) - return 0; // don't bother checking, we're missing basic functionality. - - // See if it's in the spec for this GL implementation's version. - if ((major > 0) && (opengl_version_atleast(major, minor))) - return 1; - - // Not available in the GL version, check the extension list. - return stringcache_iscached(exts, ext); -} // verify_extension - - -static void parse_opengl_version_str(const char *verstr, int *maj, int *min) -{ - if (verstr == NULL) - *maj = *min = 0; - else - sscanf(verstr, "%d.%d", maj, min); -} // parse_opengl_version_str - - -#if SUPPORT_PROFILE_GLSL -static inline int glsl_version_atleast(const int major, const int minor) -{ - return ( ((ctx->glsl_major << 16) | (ctx->glsl_minor & 0xFFFF)) >= - ((major << 16) | (minor & 0xFFFF)) ); -} // glsl_version_atleast -#endif - -static void detect_glsl_version(void) -{ - ctx->glsl_major = ctx->glsl_minor = 0; - -#if SUPPORT_PROFILE_GLSL - if (!ctx->have_core_opengl) - return; // everything's busted, give up. - - #if PLATFORM_MACOSX - // If running on Mac OS X <= 10.4, don't ever use GLSL, even if - // the system claims it is available. - if (!macosx_version_atleast(10, 5, 0)) - return; - #endif - - if ( ctx->have_opengl_2 || - ( ctx->have_GL_ARB_shader_objects && - ctx->have_GL_ARB_vertex_shader && - ctx->have_GL_ARB_fragment_shader && - ctx->have_GL_ARB_shading_language_100 ) ) - { - // the GL2.0 and ARB enum is the same value. - const GLenum enumval = GL_SHADING_LANGUAGE_VERSION; - ctx->glGetError(); // flush any existing error state. - const char *str = (const char *) ctx->glGetString(enumval); - if (ctx->glGetError() == GL_INVALID_ENUM) - str = NULL; - if (strstr(str, "OpenGL ES GLSL ")) - str += 15; - if (strstr(str, "ES ")) - str += 3; - parse_opengl_version_str(str, &ctx->glsl_major, &ctx->glsl_minor); - } // if -#endif -} // detect_glsl_version - - -static int iswhitespace(const char ch) -{ - switch (ch) - { - case ' ': case '\t': case '\r': case '\n': return 1; - default: return 0; - } // switch -} // iswhitespace - - -static void load_extensions(MOJOSHADER_glGetProcAddress lookup, void *d) -{ - StringCache *exts = stringcache_create(ctx->malloc_fn, ctx->free_fn, ctx->malloc_data); - if (!exts) - { - out_of_memory(); - return; - } // if - - ctx->have_core_opengl = 1; - ctx->have_opengl_2 = 1; - ctx->have_opengl_3 = 1; - ctx->have_GL_ARB_vertex_program = 1; - ctx->have_GL_ARB_fragment_program = 1; - ctx->have_GL_NV_vertex_program2_option = 1; - ctx->have_GL_NV_fragment_program2 = 1; - ctx->have_GL_NV_vertex_program3 = 1; - ctx->have_GL_NV_gpu_program4 = 1; - ctx->have_GL_ARB_shader_objects = 1; - ctx->have_GL_ARB_vertex_shader = 1; - ctx->have_GL_ARB_fragment_shader = 1; - ctx->have_GL_ARB_shading_language_100 = 1; - ctx->have_GL_NV_half_float = 1; - ctx->have_GL_ARB_half_float_vertex = 1; - ctx->have_GL_OES_vertex_half_float = 1; - ctx->have_GL_ARB_instanced_arrays = 1; - ctx->have_GL_ARB_ES2_compatibility = 1; - ctx->have_GL_ARB_gl_spirv = 1; - - lookup_entry_points(lookup, d); - - if (!ctx->have_core_opengl) - set_error("missing basic OpenGL entry points"); - else - { - const char *str = (const char *) ctx->glGetString(GL_VERSION); - if (strstr(str, "OpenGL ES ")) - { - ctx->have_opengl_es = 1; - str += 10; - } - parse_opengl_version_str(str, &ctx->opengl_major, &ctx->opengl_minor); - - if ((ctx->have_opengl_3) && (opengl_version_atleast(3, 0))) - { - GLint i; - GLint num_exts = 0; - ctx->glGetIntegerv(GL_NUM_EXTENSIONS, &num_exts); - for (i = 0; i < num_exts; i++) - { - if (!stringcache(exts, (const char *) ctx->glGetStringi(GL_EXTENSIONS, i))) - out_of_memory(); - } // for - } // if - else - { - const char *str = (const char *) ctx->glGetString(GL_EXTENSIONS); - const char *ext; - ctx->have_opengl_3 = 0; - - while (*str && iswhitespace(*str)) - str++; - ext = str; - - while (1) - { - const char ch = *str; - if (ch && (!iswhitespace(ch))) - { - str++; - continue; - } // else if - - if (str != ext) - { - if (!stringcache_len(exts, ext, (unsigned int) (str - ext))) - { - out_of_memory(); - break; - } // if - } // if - - if (ch == '\0') - break; - - str++; - while (*str && iswhitespace(*str)) - str++; - ext = str; - } // while - } // else - } // else - - if ((ctx->have_opengl_2) && (!opengl_version_atleast(2, 0))) - { - ctx->have_opengl_2 = 0; // Not GL2! must have the ARB extensions! - - // Force compatible ARB function pointers in...this keeps the code - // cleaner when they are identical, so we don't have to if/else - // every function call, but we definitely have the right entry - // point. Be careful what you add here. - // These may be NULL, btw. - ctx->glUniform1i = ctx->glUniform1iARB; - ctx->glUniform4fv = ctx->glUniform4fvARB; - ctx->glUniform4iv = ctx->glUniform4ivARB; - ctx->glDisableVertexAttribArray = ctx->glDisableVertexAttribArrayARB; - ctx->glEnableVertexAttribArray = ctx->glEnableVertexAttribArrayARB; - ctx->glVertexAttribPointer = ctx->glVertexAttribPointerARB; - } // if - - #define VERIFY_EXT(ext, major, minor) \ - ctx->have_##ext = verify_extension(#ext, ctx->have_##ext, exts, major, minor) - - VERIFY_EXT(GL_ARB_vertex_program, -1, -1); - VERIFY_EXT(GL_ARB_fragment_program, -1, -1); - VERIFY_EXT(GL_ARB_shader_objects, -1, -1); - VERIFY_EXT(GL_ARB_vertex_shader, -1, -1); - VERIFY_EXT(GL_ARB_fragment_shader, -1, -1); - VERIFY_EXT(GL_ARB_shading_language_100, -1, -1); - VERIFY_EXT(GL_NV_vertex_program2_option, -1, -1); - VERIFY_EXT(GL_NV_fragment_program2, -1, -1); - VERIFY_EXT(GL_NV_vertex_program3, -1, -1); - VERIFY_EXT(GL_NV_half_float, -1, -1); - VERIFY_EXT(GL_ARB_half_float_vertex, 3, 0); - VERIFY_EXT(GL_OES_vertex_half_float, -1, -1); - VERIFY_EXT(GL_ARB_instanced_arrays, 3, 3); - VERIFY_EXT(GL_ARB_ES2_compatibility, 4, 1); - VERIFY_EXT(GL_ARB_gl_spirv, -1, -1); - - #undef VERIFY_EXT - - stringcache_destroy(exts); - - detect_glsl_version(); -} // load_extensions - - -static int valid_profile(const char *profile) -{ - if (!ctx->have_core_opengl) - return 0; - - #define MUST_HAVE(p, x) \ - if (!ctx->have_##x) { set_error(#p " profile needs " #x); return 0; } - - // we might actually _have_ maj.min, but forcibly disabled GLSL elsewhere. - #define MUST_HAVE_GLSL(p, maj, min) \ - if (!glsl_version_atleast(maj, min)) { \ - set_error(#p " profile needs missing GLSL support"); return 0; \ - } - - if (profile == NULL) - { - set_error("NULL profile"); - return 0; - } // if - - #if SUPPORT_PROFILE_ARB1 - else if (strcmp(profile, MOJOSHADER_PROFILE_ARB1) == 0) - { - MUST_HAVE(MOJOSHADER_PROFILE_ARB1, GL_ARB_vertex_program); - MUST_HAVE(MOJOSHADER_PROFILE_ARB1, GL_ARB_fragment_program); - } // else if - #endif - - #if SUPPORT_PROFILE_ARB1_NV - else if (strcmp(profile, MOJOSHADER_PROFILE_NV2) == 0) - { - MUST_HAVE(MOJOSHADER_PROFILE_NV2, GL_ARB_vertex_program); - MUST_HAVE(MOJOSHADER_PROFILE_NV2, GL_ARB_fragment_program); - MUST_HAVE(MOJOSHADER_PROFILE_NV2, GL_NV_vertex_program2_option); - MUST_HAVE(MOJOSHADER_PROFILE_NV2, GL_NV_fragment_program2); - } // else if - - else if (strcmp(profile, MOJOSHADER_PROFILE_NV3) == 0) - { - MUST_HAVE(MOJOSHADER_PROFILE_NV3, GL_ARB_vertex_program); - MUST_HAVE(MOJOSHADER_PROFILE_NV3, GL_ARB_fragment_program); - MUST_HAVE(MOJOSHADER_PROFILE_NV3, GL_NV_vertex_program3); - MUST_HAVE(MOJOSHADER_PROFILE_NV3, GL_NV_fragment_program2); - } // else if - - else if (strcmp(profile, MOJOSHADER_PROFILE_NV4) == 0) - { - MUST_HAVE(MOJOSHADER_PROFILE_NV4, GL_NV_gpu_program4); - } // else if - #endif - - #if SUPPORT_PROFILE_GLSPIRV - else if (strcmp(profile, MOJOSHADER_PROFILE_GLSPIRV) == 0) - { - MUST_HAVE(MOJOSHADER_PROFILE_GLSPIRV, GL_ARB_ES2_compatibility); - MUST_HAVE(MOJOSHADER_PROFILE_GLSPIRV, GL_ARB_gl_spirv); - } // else if - #endif - - #if SUPPORT_PROFILE_GLSLES - else if (strcmp(profile, MOJOSHADER_PROFILE_GLSLES) == 0) - { - MUST_HAVE_GLSL(MOJOSHADER_PROFILE_GLSLES, 1, 00); - } // else if - #endif - - #if SUPPORT_PROFILE_GLSL120 - else if (strcmp(profile, MOJOSHADER_PROFILE_GLSL120) == 0) - { - MUST_HAVE_GLSL(MOJOSHADER_PROFILE_GLSL120, 1, 20); - } // else if - #endif - - #if SUPPORT_PROFILE_GLSL - else if (strcmp(profile, MOJOSHADER_PROFILE_GLSL) == 0) - { - MUST_HAVE_GLSL(MOJOSHADER_PROFILE_GLSL, 1, 10); - } // else if - #endif - - else - { - set_error("unknown or unsupported profile"); - return 0; - } // else - - #undef MUST_HAVE - - return 1; -} // valid_profile - - -static const char *profile_priorities[] = { -#if SUPPORT_PROFILE_GLSPIRV - MOJOSHADER_PROFILE_GLSPIRV, -#endif -#if SUPPORT_PROFILE_GLSL120 - MOJOSHADER_PROFILE_GLSL120, -#endif -#if SUPPORT_PROFILE_GLSL - MOJOSHADER_PROFILE_GLSL, -#endif -#if SUPPORT_PROFILE_ARB1_NV - MOJOSHADER_PROFILE_NV4, - MOJOSHADER_PROFILE_NV3, - MOJOSHADER_PROFILE_NV2, -#endif -#if SUPPORT_PROFILE_ARB1 - MOJOSHADER_PROFILE_ARB1, -#endif -}; - -int MOJOSHADER_glAvailableProfiles(MOJOSHADER_glGetProcAddress lookup, - void *lookup_d, - const char **profs, const int size, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d) -{ - int retval = 0; - MOJOSHADER_glContext _ctx; - MOJOSHADER_glContext *current_ctx = ctx; - - if (m == NULL) m = MOJOSHADER_internal_malloc; - if (f == NULL) f = MOJOSHADER_internal_free; - - ctx = &_ctx; - memset(ctx, '\0', sizeof (MOJOSHADER_glContext)); - ctx->malloc_fn = m; - ctx->free_fn = f; - ctx->malloc_data = malloc_d; - - load_extensions(lookup, lookup_d); - -#if SUPPORT_PROFILE_GLSLES - if (ctx->have_opengl_es) - { - profs[0] = MOJOSHADER_PROFILE_GLSLES; - return 1; - } // if -#endif - - if (ctx->have_core_opengl) - { - size_t i; - for (i = 0; i < STATICARRAYLEN(profile_priorities); i++) - { - const char *profile = profile_priorities[i]; - if (valid_profile(profile)) - { - if (retval < size) - profs[retval] = profile; - retval++; - } // if - } // for - } // if - - ctx = current_ctx; - return retval; -} // MOJOSHADER_glAvailableProfiles - - -const char *MOJOSHADER_glBestProfile(MOJOSHADER_glGetProcAddress gpa, - void *lookup_d, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d) -{ - const char *prof[STATICARRAYLEN(profile_priorities)]; - const int avail = MOJOSHADER_glAvailableProfiles(gpa, lookup_d, prof, - STATICARRAYLEN(prof), - m, f, malloc_d); - if (avail <= 0) - { - set_error("no profiles available"); - return NULL; - } // if - - return prof[0]; // profiles are sorted "best" to "worst." -} // MOJOSHADER_glBestProfile - - -MOJOSHADER_glContext *MOJOSHADER_glCreateContext(const char *profile, - MOJOSHADER_glGetProcAddress lookup, - void *lookup_d, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d) -{ - MOJOSHADER_glContext *retval = NULL; - MOJOSHADER_glContext *current_ctx = ctx; - - ctx = NULL; - - if (m == NULL) m = MOJOSHADER_internal_malloc; - if (f == NULL) f = MOJOSHADER_internal_free; - - ctx = (MOJOSHADER_glContext *) m(sizeof (MOJOSHADER_glContext), malloc_d); - if (ctx == NULL) - { - out_of_memory(); - goto init_fail; - } // if - - memset(ctx, '\0', sizeof (MOJOSHADER_glContext)); - ctx->malloc_fn = m; - ctx->free_fn = f; - ctx->malloc_data = malloc_d; - snprintf(ctx->profile, sizeof (ctx->profile), "%s", profile); - - load_extensions(lookup, lookup_d); - if (!valid_profile(profile)) - goto init_fail; - -#ifdef MOJOSHADER_XNA4_VERTEX_TEXTURES - GLint maxTextures; - GLint maxVertexTextures; - ctx->glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &maxTextures); - if (maxTextures > 20) - maxTextures = 20; - if (maxTextures > 16) - maxVertexTextures = maxTextures - 16; - else - maxVertexTextures = 0; - ctx->vertex_sampler_offset = maxTextures - maxVertexTextures; -#endif - - MOJOSHADER_glBindProgram(NULL); - - // !!! FIXME: generalize this part. - if (profile == NULL) {} - - // We don't check SUPPORT_PROFILE_GLSPIRV here, since valid_profile() does. -#if SUPPORT_PROFILE_GLSPIRV - else if (strcmp(profile, MOJOSHADER_PROFILE_GLSPIRV) == 0) - { - ctx->profileMaxUniforms = impl_GLSL_MaxUniforms; - ctx->profileCompileShader = impl_SPIRV_CompileShader; - ctx->profileDeleteShader = impl_SPIRV_DeleteShader; - ctx->profileDeleteProgram = impl_SPIRV_DeleteProgram; - ctx->profileGetAttribLocation = impl_SPIRV_GetAttribLocation; - ctx->profileGetUniformLocation = impl_SPIRV_GetUniformLocation; - ctx->profileGetSamplerLocation = impl_SPIRV_GetSamplerLocation; - ctx->profileLinkProgram = impl_SPIRV_LinkProgram; - ctx->profileFinalInitProgram = impl_SPIRV_FinalInitProgram; - ctx->profileUseProgram = impl_GLSL_UseProgram; - ctx->profilePushConstantArray = impl_GLSL_PushConstantArray; - ctx->profilePushUniforms = impl_GLSL_PushUniforms; - ctx->profilePushSampler = impl_GLSL_PushSampler; - ctx->profileMustPushConstantArrays = impl_GLSL_MustPushConstantArrays; - ctx->profileMustPushSamplers = impl_GLSL_MustPushSamplers; - ctx->profileToggleProgramPointSize = impl_REAL_ToggleProgramPointSize; - } // if -#endif - - // We don't check SUPPORT_PROFILE_GLSL120/ES here, since valid_profile() does. -#if SUPPORT_PROFILE_GLSL - else if ( (strcmp(profile, MOJOSHADER_PROFILE_GLSL) == 0) || - (strcmp(profile, MOJOSHADER_PROFILE_GLSL120) == 0) || - (strcmp(profile, MOJOSHADER_PROFILE_GLSLES) == 0) ) - { - ctx->profileMaxUniforms = impl_GLSL_MaxUniforms; - ctx->profileCompileShader = impl_GLSL_CompileShader; - ctx->profileDeleteShader = impl_GLSL_DeleteShader; - ctx->profileDeleteProgram = impl_GLSL_DeleteProgram; - ctx->profileGetAttribLocation = impl_GLSL_GetAttribLocation; - ctx->profileGetUniformLocation = impl_GLSL_GetUniformLocation; - ctx->profileGetSamplerLocation = impl_GLSL_GetSamplerLocation; - ctx->profileLinkProgram = impl_GLSL_LinkProgram; - ctx->profileFinalInitProgram = impl_GLSL_FinalInitProgram; - ctx->profileUseProgram = impl_GLSL_UseProgram; - ctx->profilePushConstantArray = impl_GLSL_PushConstantArray; - ctx->profilePushUniforms = impl_GLSL_PushUniforms; - ctx->profilePushSampler = impl_GLSL_PushSampler; - ctx->profileMustPushConstantArrays = impl_GLSL_MustPushConstantArrays; - ctx->profileMustPushSamplers = impl_GLSL_MustPushSamplers; - if (strcmp(profile, MOJOSHADER_PROFILE_GLSLES) == 0) - ctx->profileToggleProgramPointSize = impl_NOOP_ToggleProgramPointSize; - else - ctx->profileToggleProgramPointSize = impl_REAL_ToggleProgramPointSize; - } // if -#endif - - // We don't check SUPPORT_PROFILE_ARB1_NV here, since valid_profile() does. -#if SUPPORT_PROFILE_ARB1 - else if ( (strcmp(profile, MOJOSHADER_PROFILE_ARB1) == 0) || - (strcmp(profile, MOJOSHADER_PROFILE_NV2) == 0) || - (strcmp(profile, MOJOSHADER_PROFILE_NV3) == 0) || - (strcmp(profile, MOJOSHADER_PROFILE_NV4) == 0) ) - { - ctx->profileMaxUniforms = impl_ARB1_MaxUniforms; - ctx->profileCompileShader = impl_ARB1_CompileShader; - ctx->profileDeleteShader = impl_ARB1_DeleteShader; - ctx->profileDeleteProgram = impl_ARB1_DeleteProgram; - ctx->profileGetAttribLocation = impl_ARB1_GetAttribLocation; - ctx->profileGetUniformLocation = impl_ARB1_GetUniformLocation; - ctx->profileGetSamplerLocation = impl_ARB1_GetSamplerLocation; - ctx->profileLinkProgram = impl_ARB1_LinkProgram; - ctx->profileFinalInitProgram = impl_ARB1_FinalInitProgram; - ctx->profileUseProgram = impl_ARB1_UseProgram; - ctx->profilePushConstantArray = impl_ARB1_PushConstantArray; - ctx->profilePushUniforms = impl_ARB1_PushUniforms; - ctx->profilePushSampler = impl_ARB1_PushSampler; - ctx->profileMustPushConstantArrays = impl_ARB1_MustPushConstantArrays; - ctx->profileMustPushSamplers = impl_ARB1_MustPushSamplers; - ctx->profileToggleProgramPointSize = impl_REAL_ToggleProgramPointSize; - } // if -#endif - - assert(ctx->profileMaxUniforms != NULL); - assert(ctx->profileCompileShader != NULL); - assert(ctx->profileDeleteShader != NULL); - assert(ctx->profileDeleteProgram != NULL); - assert(ctx->profileMaxUniforms != NULL); - assert(ctx->profileGetAttribLocation != NULL); - assert(ctx->profileGetUniformLocation != NULL); - assert(ctx->profileGetSamplerLocation != NULL); - assert(ctx->profileLinkProgram != NULL); - assert(ctx->profileFinalInitProgram != NULL); - assert(ctx->profileUseProgram != NULL); - assert(ctx->profilePushConstantArray != NULL); - assert(ctx->profilePushUniforms != NULL); - assert(ctx->profilePushSampler != NULL); - assert(ctx->profileMustPushConstantArrays != NULL); - assert(ctx->profileMustPushSamplers != NULL); - assert(ctx->profileToggleProgramPointSize != NULL); - - retval = ctx; - ctx = current_ctx; - return retval; - -init_fail: - if (ctx != NULL) - f(ctx, malloc_d); - ctx = current_ctx; - return NULL; -} // MOJOSHADER_glCreateContext - - -void MOJOSHADER_glMakeContextCurrent(MOJOSHADER_glContext *_ctx) -{ - ctx = _ctx; -} // MOJOSHADER_glMakeContextCurrent - - -int MOJOSHADER_glMaxUniforms(MOJOSHADER_shaderType shader_type) -{ - return ctx->profileMaxUniforms(shader_type); -} // MOJOSHADER_glMaxUniforms - - -MOJOSHADER_glShader *MOJOSHADER_glCompileShader(const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount) -{ - MOJOSHADER_glShader *retval = NULL; - GLuint shader = 0; - - // This doesn't need a mainfn, since there's no GL lang that does. - const MOJOSHADER_parseData *pd = MOJOSHADER_parse(ctx->profile, NULL, - tokenbuf, bufsize, - swiz, swizcount, - smap, smapcount, - ctx->malloc_fn, - ctx->free_fn, - ctx->malloc_data); - if (pd->error_count > 0) - { - // !!! FIXME: put multiple errors in the buffer? Don't use - // !!! FIXME: MOJOSHADER_glGetError() for this? - set_error(pd->errors[0].error); - goto compile_shader_fail; - } // if - - retval = (MOJOSHADER_glShader *) Malloc(sizeof (MOJOSHADER_glShader)); - if (retval == NULL) - goto compile_shader_fail; - - if (!ctx->profileCompileShader(pd, &shader)) - goto compile_shader_fail; - - retval->parseData = pd; - retval->handle = shader; - retval->refcount = 1; - return retval; - -compile_shader_fail: - MOJOSHADER_freeParseData(pd); - Free(retval); - if (shader != 0) - ctx->profileDeleteShader(shader); - return NULL; -} // MOJOSHADER_glCompileShader - - -void MOJOSHADER_glShaderAddRef(MOJOSHADER_glShader *shader) -{ - if (shader != NULL) - shader->refcount++; -} // MOJOSHADER_glShaderAddRef - - -const MOJOSHADER_parseData *MOJOSHADER_glGetShaderParseData( - MOJOSHADER_glShader *shader) -{ - return (shader != NULL) ? shader->parseData : NULL; -} // MOJOSHADER_glGetShaderParseData - - -static void shader_unref(MOJOSHADER_glShader *shader) -{ - if (shader != NULL) - { - const uint32 refcount = shader->refcount; - if (refcount > 1) - shader->refcount--; - else - { - ctx->profileDeleteShader(shader->handle); - MOJOSHADER_freeParseData(shader->parseData); - Free(shader); - } // else - } // if -} // shader_unref - - -static void program_unref(MOJOSHADER_glProgram *program) -{ - if (program != NULL) - { - const uint32 refcount = program->refcount; - if (refcount > 1) - program->refcount--; - else - { - ctx->profileDeleteProgram(program->handle); - shader_unref(program->vertex); - shader_unref(program->fragment); - Free(program->vs_uniforms_float4); - Free(program->vs_uniforms_int4); - Free(program->vs_uniforms_bool); - Free(program->ps_uniforms_float4); - Free(program->ps_uniforms_int4); - Free(program->ps_uniforms_bool); - Free(program->uniforms); - Free(program->attributes); - Free(program); - } // else - } // if -} // program_unref - - -static void fill_constant_array(GLfloat *f, const int base, const int size, - const MOJOSHADER_parseData *pd) -{ - int i; - int filled = 0; - for (i = 0; i < pd->constant_count; i++) - { - const MOJOSHADER_constant *c = &pd->constants[i]; - if (c->type != MOJOSHADER_UNIFORM_FLOAT) - continue; - else if (c->index < base) - continue; - else if (c->index >= (base+size)) - continue; - memcpy(&f[(c->index-base) * 4], &c->value.f, sizeof (c->value.f)); - filled++; - } // for - - assert(filled == size); -} // fill_constant_array - - -static int lookup_uniforms(MOJOSHADER_glProgram *program, - MOJOSHADER_glShader *shader, int *bound) -{ - const MOJOSHADER_parseData *pd = shader->parseData; - const MOJOSHADER_shaderType shader_type = pd->shader_type; - uint32 float4_count = 0; - uint32 int4_count = 0; - uint32 bool_count = 0; - int i; - - for (i = 0; i < pd->uniform_count; i++) - { - const MOJOSHADER_uniform *u = &pd->uniforms[i]; - - if (u->constant) - { - // only do constants once, at link time. These aren't changed ever. - if (ctx->profileMustPushConstantArrays()) - { - const int base = u->index; - const int size = u->array_count; - GLfloat *f = (GLfloat *) alloca(sizeof (GLfloat) * (size * 4)); - fill_constant_array(f, base, size, pd); - if (!(*bound)) - { - ctx->profileUseProgram(program); - *bound = 1; - } // if - ctx->profilePushConstantArray(program, u, f); - } // if - } // if - - else - { - const GLint loc = ctx->profileGetUniformLocation(program, shader, i); - if (loc != -1) // -1 means it was optimized out, or failure. - { - const int regcount = u->array_count; - UniformMap *map = &program->uniforms[program->uniform_count]; - map->shader_type = shader_type; - map->uniform = u; - map->location = (GLuint) loc; - program->uniform_count++; - - if (u->type == MOJOSHADER_UNIFORM_FLOAT) - float4_count += regcount ? regcount : 1; - else if (u->type == MOJOSHADER_UNIFORM_INT) - int4_count += regcount ? regcount : 1; - else if (u->type == MOJOSHADER_UNIFORM_BOOL) - bool_count += regcount ? regcount : 1; - else - assert(0 && "Unexpected register type"); - } // if - } // else - } // for - - if (shader_type == MOJOSHADER_TYPE_PIXEL) - { - for (i = 0; i < pd->sampler_count; i++) - { - if (pd->samplers[i].texbem) - { - float4_count += 2; - program->texbem_count++; - } // if - } // for - } // if - - #define MAKE_ARRAY(typ, gltyp, siz, count) \ - if (count) { \ - const size_t buflen = sizeof (gltyp) * siz * count; \ - gltyp *ptr = (gltyp *) Malloc(buflen); \ - if (ptr == NULL) { \ - return 0; \ - } else if (shader_type == MOJOSHADER_TYPE_VERTEX) { \ - program->vs_uniforms_##typ = ptr; \ - program->vs_uniforms_##typ##_count = count; \ - } else if (shader_type == MOJOSHADER_TYPE_PIXEL) { \ - program->ps_uniforms_##typ = ptr; \ - program->ps_uniforms_##typ##_count = count; \ - } else { \ - assert(0 && "unsupported shader type"); \ - } \ - memset(ptr, '\0', buflen); \ - } - - MAKE_ARRAY(float4, GLfloat, 4, float4_count); - MAKE_ARRAY(int4, GLint, 4, int4_count); - MAKE_ARRAY(bool, GLint, 1, bool_count); - - #undef MAKE_ARRAY - - return 1; -} // lookup_uniforms - - -static void lookup_samplers(MOJOSHADER_glProgram *program, - MOJOSHADER_glShader *shader, int *bound) -{ - const MOJOSHADER_parseData *pd = shader->parseData; - const MOJOSHADER_sampler *s = pd->samplers; - int i; - - if ((pd->sampler_count == 0) || (!ctx->profileMustPushSamplers())) - return; // nothing to do here, so don't bother binding, etc. - - // Link up the Samplers. These never change after link time, since they - // are meant to be constant texture unit ids and not textures. - - if (!(*bound)) - { - ctx->profileUseProgram(program); - *bound = 1; - } // if - - for (i = 0; i < pd->sampler_count; i++) - { - const GLint loc = ctx->profileGetSamplerLocation(program, shader, i); - if (loc >= 0) // maybe the Sampler was optimized out? - { -#ifdef MOJOSHADER_XNA4_VERTEX_TEXTURES - if (pd->shader_type == MOJOSHADER_TYPE_VERTEX) - ctx->profilePushSampler(loc, s[i].index + ctx->vertex_sampler_offset); - else -#endif - ctx->profilePushSampler(loc, s[i].index); - } // if - } // for -} // lookup_samplers - - -// Right now, this just decides if we have to toggle pointsize support later. -static void lookup_outputs(MOJOSHADER_glProgram *program, - MOJOSHADER_glShader *shader) -{ - if (shader == NULL) - return; - - const MOJOSHADER_parseData *pd = shader->parseData; - int i; - - for (i = 0; i < pd->output_count; i++) - { - if (pd->outputs[i].usage == MOJOSHADER_USAGE_POINTSIZE) - { - program->uses_pointsize = 1; - break; - } // if - } // for -} // lookup_outputs - - -static int lookup_attributes(MOJOSHADER_glProgram *program) -{ - int i; - const MOJOSHADER_parseData *pd = program->vertex->parseData; - const MOJOSHADER_attribute *a = pd->attributes; - - for (i = 0; i < pd->attribute_count; i++) - { - const GLint loc = ctx->profileGetAttribLocation(program, i); - if (loc >= 0) // maybe the Attribute was optimized out? - { - AttributeMap *map = &program->attributes[program->attribute_count]; - map->attribute = &a[i]; - map->location = loc; - program->vertex_attrib_loc[map->attribute->usage][map->attribute->index] = loc; - program->attribute_count++; - - if (((size_t)loc) > STATICARRAYLEN(ctx->want_attr)) - { - assert(0 && "Static array is too small."); // laziness fail. - return 0; - } // if - } // if - } // for - - return 1; -} // lookup_attributes - - -// !!! FIXME: misnamed -// build a list of indexes that need to be overwritten with constant values -// when pushing a uniform array to the GL. -static int build_constants_lists(MOJOSHADER_glProgram *program) -{ - int i; - const int count = program->uniform_count; - for (i = 0; i < count; i++) - { - UniformMap *map = &program->uniforms[i]; - const MOJOSHADER_uniform *u = map->uniform; - const int size = u->array_count; - - assert(!u->constant); - - if (size == 0) - continue; // nothing to see here. - - // only use arrays for 'c' registers. - assert(u->type == MOJOSHADER_UNIFORM_FLOAT); - - // !!! FIXME: deal with this. - } // for - - return 1; -} // build_constants_lists - - -MOJOSHADER_glProgram *MOJOSHADER_glLinkProgram(MOJOSHADER_glShader *vshader, - MOJOSHADER_glShader *pshader) -{ - int bound = 0; - - if ((vshader == NULL) && (pshader == NULL)) - return NULL; - - int numregs = 0; - MOJOSHADER_glProgram *retval = NULL; - const GLuint program = ctx->profileLinkProgram(vshader, pshader); - if (program == 0) - goto link_program_fail; - - retval = (MOJOSHADER_glProgram *) Malloc(sizeof (MOJOSHADER_glProgram)); - if (retval == NULL) - goto link_program_fail; - memset(retval, '\0', sizeof (MOJOSHADER_glProgram)); - memset(retval->vertex_attrib_loc, 0xFF, sizeof(retval->vertex_attrib_loc)); - - numregs = 0; - if (vshader != NULL) numregs += vshader->parseData->uniform_count; - if (pshader != NULL) numregs += pshader->parseData->uniform_count; - if (numregs > 0) - { - const size_t len = sizeof (UniformMap) * numregs; - retval->uniforms = (UniformMap *) Malloc(len); - if (retval->uniforms == NULL) - goto link_program_fail; - memset(retval->uniforms, '\0', len); - } // if - - retval->handle = program; - retval->vertex = vshader; - retval->fragment = pshader; - retval->generation = ctx->generation - 1; - retval->refcount = 1; - - if (vshader != NULL) - { - if (vshader->parseData->attribute_count > 0) - { - const int count = vshader->parseData->attribute_count; - const size_t len = sizeof (AttributeMap) * count; - retval->attributes = (AttributeMap *) Malloc(len); - if (retval->attributes == NULL) - goto link_program_fail; - - memset(retval->attributes, '\0', len); - if (!lookup_attributes(retval)) - goto link_program_fail; - } // if - - if (!lookup_uniforms(retval, vshader, &bound)) - goto link_program_fail; - lookup_samplers(retval, vshader, &bound); - lookup_outputs(retval, vshader); - vshader->refcount++; - } // if - - if (pshader != NULL) - { - if (!lookup_uniforms(retval, pshader, &bound)) - goto link_program_fail; - lookup_samplers(retval, pshader, &bound); - lookup_outputs(retval, pshader); - pshader->refcount++; - } // if - - if (!build_constants_lists(retval)) - goto link_program_fail; - - if (bound) // reset the old binding. - ctx->profileUseProgram(ctx->bound_program); - - ctx->profileFinalInitProgram(retval); - - return retval; - -link_program_fail: - if (retval != NULL) - { - Free(retval->vs_uniforms_float4); - Free(retval->vs_uniforms_int4); - Free(retval->vs_uniforms_bool); - Free(retval->ps_uniforms_float4); - Free(retval->ps_uniforms_int4); - Free(retval->ps_uniforms_bool); - Free(retval->uniforms); - Free(retval->attributes); - Free(retval); - } // if - - if (program != 0) - ctx->profileDeleteProgram(program); - - if (bound) - ctx->profileUseProgram(ctx->bound_program); - - return NULL; -} // MOJOSHADER_glLinkProgram - - -static void update_enabled_arrays(void) -{ - int highest_enabled = 0; - int i; - - // Enable/disable vertex arrays to match our needs. - // this happens to work in both ARB1 and GLSL, but if something alien - // shows up, we'll have to split these into profile*() functions. - for (i = 0; i < ctx->max_attrs; i++) - { - const int want = (const int) ctx->want_attr[i]; - const int have = (const int) ctx->have_attr[i]; - if (want != have) - { - if (want) - ctx->glEnableVertexAttribArray(i); - else - ctx->glDisableVertexAttribArray(i); - ctx->have_attr[i] = want; - } // if - - if (want) - highest_enabled = i + 1; - } // for - - ctx->max_attrs = highest_enabled; // trim unneeded iterations next time. -} // update_enabled_arrays - - -void MOJOSHADER_glBindProgram(MOJOSHADER_glProgram *program) -{ - if (program == ctx->bound_program) - return; // nothing to do. - - if (program != NULL) - program->refcount++; - - memset(ctx->want_attr, '\0', sizeof (ctx->want_attr[0]) * ctx->max_attrs); - - // If no program bound, disable all arrays, in case we're switching to - // fixed function pipeline. Otherwise, we try to minimize state changes - // by toggling just the changed set of needed arrays in ProgramReady(). - if (program == NULL) - update_enabled_arrays(); - - ctx->profileUseProgram(program); - program_unref(ctx->bound_program); - ctx->bound_program = program; -} // MOJOSHADER_glBindProgram - - -typedef struct -{ - MOJOSHADER_glShader *vertex; - MOJOSHADER_glShader *fragment; -} BoundShaders; - -static uint32 hash_shaders(const void *sym, void *data) -{ - (void) data; - const BoundShaders *s = (const BoundShaders *) sym; - const uint32 v = (s->vertex) ? (uint32) s->vertex->handle : 0; - const uint32 f = (s->fragment) ? (uint32) s->fragment->handle : 0; - return ((v & 0xFFFF) << 16) | (f & 0xFFFF); -} // hash_shaders - -static int match_shaders(const void *_a, const void *_b, void *data) -{ - (void) data; - const BoundShaders *a = (const BoundShaders *) _a; - const BoundShaders *b = (const BoundShaders *) _b; - - const GLuint av = (a->vertex) ? a->vertex->handle : 0; - const GLuint bv = (b->vertex) ? b->vertex->handle : 0; - if (av != bv) - return 0; - - const GLuint af = (a->fragment) ? a->fragment->handle : 0; - const GLuint bf = (b->fragment) ? b->fragment->handle : 0; - if (af != bf) - return 0; - - return 1; -} // match_shaders - -static void nuke_shaders(const void *_ctx, const void *key, const void *value, void *data) -{ - (void) _ctx; - (void) data; - Free((void *) key); // this was a BoundShaders struct. - MOJOSHADER_glDeleteProgram((MOJOSHADER_glProgram *) value); -} // nuke_shaders - -void MOJOSHADER_glBindShaders(MOJOSHADER_glShader *v, MOJOSHADER_glShader *p) -{ - if ((v == NULL) && (p == NULL)) - { - MOJOSHADER_glBindProgram(NULL); - return; - } // if - - // !!! FIXME: eventually support GL_EXT_separate_shader_objects. - if (ctx->linker_cache == NULL) - { - ctx->linker_cache = hash_create(NULL, hash_shaders, match_shaders, - nuke_shaders, 0, ctx->malloc_fn, - ctx->free_fn, ctx->malloc_data); - - if (ctx->linker_cache == NULL) - { - out_of_memory(); - return; - } // if - } // if - - MOJOSHADER_glProgram *program = NULL; - BoundShaders shaders; - shaders.vertex = v; - shaders.fragment = p; - - const void *val = NULL; - if (hash_find(ctx->linker_cache, &shaders, &val)) - program = (MOJOSHADER_glProgram *) val; - else - { - program = MOJOSHADER_glLinkProgram(v, p); - if (program == NULL) - return; - - BoundShaders *item = (BoundShaders *) Malloc(sizeof (BoundShaders)); - if (item == NULL) - { - MOJOSHADER_glDeleteProgram(program); - return; - } // if - - memcpy(item, &shaders, sizeof (BoundShaders)); - if (hash_insert(ctx->linker_cache, item, program) != 1) - { - Free(item); - MOJOSHADER_glDeleteProgram(program); - out_of_memory(); - return; - } // if - } // else - - assert(program != NULL); - MOJOSHADER_glBindProgram(program); -} // MOJOSHADER_glBindShaders - - -void MOJOSHADER_glGetBoundShaders(MOJOSHADER_glShader **v, - MOJOSHADER_glShader **p) -{ - if (v != NULL) - { - if (ctx->bound_program != NULL) - *v = ctx->bound_program->vertex; - else - *v = NULL; - } // if - if (p != NULL) - { - if (ctx->bound_program != NULL) - *p = ctx->bound_program->fragment; - else - *p = NULL; - } // if -} // MOJOSHADER_glGetBoundShaders - - -static inline uint minuint(const uint a, const uint b) -{ - return ((a < b) ? a : b); -} // minuint - - -void MOJOSHADER_glSetVertexShaderUniformF(unsigned int idx, const float *data, - unsigned int vec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->vs_reg_file_f) / 4; - if (idx < maxregs) - { - assert(sizeof (GLfloat) == sizeof (float)); - const uint cpy = (minuint(maxregs - idx, vec4n) * sizeof (*data)) * 4; - memcpy(ctx->vs_reg_file_f + (idx * 4), data, cpy); - ctx->generation++; - } // if -} // MOJOSHADER_glSetVertexShaderUniformF - - -void MOJOSHADER_glGetVertexShaderUniformF(unsigned int idx, float *data, - unsigned int vec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->vs_reg_file_f) / 4; - if (idx < maxregs) - { - assert(sizeof (GLfloat) == sizeof (float)); - const uint cpy = (minuint(maxregs - idx, vec4n) * sizeof (*data)) * 4; - memcpy(data, ctx->vs_reg_file_f + (idx * 4), cpy); - } // if -} // MOJOSHADER_glGetVertexShaderUniformF - - -void MOJOSHADER_glSetVertexShaderUniformI(unsigned int idx, const int *data, - unsigned int ivec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->vs_reg_file_i) / 4; - if (idx < maxregs) - { - assert(sizeof (GLint) == sizeof (int)); - const uint cpy = (minuint(maxregs - idx, ivec4n) * sizeof (*data)) * 4; - memcpy(ctx->vs_reg_file_i + (idx * 4), data, cpy); - ctx->generation++; - } // if -} // MOJOSHADER_glSetVertexShaderUniformI - - -void MOJOSHADER_glGetVertexShaderUniformI(unsigned int idx, int *data, - unsigned int ivec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->vs_reg_file_i) / 4; - if (idx < maxregs) - { - assert(sizeof (GLint) == sizeof (int)); - const uint cpy = (minuint(maxregs - idx, ivec4n) * sizeof (*data)) * 4; - memcpy(data, ctx->vs_reg_file_i + (idx * 4), cpy); - } // if -} // MOJOSHADER_glGetVertexShaderUniformI - - -void MOJOSHADER_glSetVertexShaderUniformB(unsigned int idx, const int *data, - unsigned int bcount) -{ - const uint maxregs = STATICARRAYLEN(ctx->vs_reg_file_b) / 4; - if (idx < maxregs) - { - uint8 *wptr = ctx->vs_reg_file_b + idx; - uint8 *endptr = wptr + minuint(maxregs - idx, bcount); - while (wptr != endptr) - *(wptr++) = *(data++) ? 1 : 0; - ctx->generation++; - } // if -} // MOJOSHADER_glSetVertexShaderUniformB - - -void MOJOSHADER_glGetVertexShaderUniformB(unsigned int idx, int *data, - unsigned int bcount) -{ - const uint maxregs = STATICARRAYLEN(ctx->vs_reg_file_b) / 4; - if (idx < maxregs) - { - uint8 *rptr = ctx->vs_reg_file_b + idx; - uint8 *endptr = rptr + minuint(maxregs - idx, bcount); - while (rptr != endptr) - *(data++) = (int) *(rptr++); - } // if -} // MOJOSHADER_glGetVertexShaderUniformB - - -void MOJOSHADER_glSetPixelShaderUniformF(unsigned int idx, const float *data, - unsigned int vec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->ps_reg_file_f) / 4; - if (idx < maxregs) - { - assert(sizeof (GLfloat) == sizeof (float)); - const uint cpy = (minuint(maxregs - idx, vec4n) * sizeof (*data)) * 4; - memcpy(ctx->ps_reg_file_f + (idx * 4), data, cpy); - ctx->generation++; - } // if -} // MOJOSHADER_glSetPixelShaderUniformF - - -void MOJOSHADER_glGetPixelShaderUniformF(unsigned int idx, float *data, - unsigned int vec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->ps_reg_file_f) / 4; - if (idx < maxregs) - { - assert(sizeof (GLfloat) == sizeof (float)); - const uint cpy = (minuint(maxregs - idx, vec4n) * sizeof (*data)) * 4; - memcpy(data, ctx->ps_reg_file_f + (idx * 4), cpy); - } // if -} // MOJOSHADER_glGetPixelShaderUniformF - - -void MOJOSHADER_glSetPixelShaderUniformI(unsigned int idx, const int *data, - unsigned int ivec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->ps_reg_file_i) / 4; - if (idx < maxregs) - { - assert(sizeof (GLint) == sizeof (int)); - const uint cpy = (minuint(maxregs - idx, ivec4n) * sizeof (*data)) * 4; - memcpy(ctx->ps_reg_file_i + (idx * 4), data, cpy); - ctx->generation++; - } // if -} // MOJOSHADER_glSetPixelShaderUniformI - - -void MOJOSHADER_glGetPixelShaderUniformI(unsigned int idx, int *data, - unsigned int ivec4n) -{ - const uint maxregs = STATICARRAYLEN(ctx->ps_reg_file_i) / 4; - if (idx < maxregs) - { - assert(sizeof (GLint) == sizeof (int)); - const uint cpy = (minuint(maxregs - idx, ivec4n) * sizeof (*data)) * 4; - memcpy(data, ctx->ps_reg_file_i + (idx * 4), cpy); - } // if -} // MOJOSHADER_glGetPixelShaderUniformI - - -void MOJOSHADER_glSetPixelShaderUniformB(unsigned int idx, const int *data, - unsigned int bcount) -{ - const uint maxregs = STATICARRAYLEN(ctx->ps_reg_file_b) / 4; - if (idx < maxregs) - { - uint8 *wptr = ctx->ps_reg_file_b + idx; - uint8 *endptr = wptr + minuint(maxregs - idx, bcount); - while (wptr != endptr) - *(wptr++) = *(data++) ? 1 : 0; - ctx->generation++; - } // if -} // MOJOSHADER_glSetPixelShaderUniformB - - -void MOJOSHADER_glGetPixelShaderUniformB(unsigned int idx, int *data, - unsigned int bcount) -{ - const uint maxregs = STATICARRAYLEN(ctx->ps_reg_file_b) / 4; - if (idx < maxregs) - { - uint8 *rptr = ctx->ps_reg_file_b + idx; - uint8 *endptr = rptr + minuint(maxregs - idx, bcount); - while (rptr != endptr) - *(data++) = (int) *(rptr++); - } // if -} // MOJOSHADER_glGetPixelShaderUniformB - - -void MOJOSHADER_glMapUniformBufferMemory(float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb) -{ - *vsf = ctx->vs_reg_file_f; - *vsi = ctx->vs_reg_file_i; - *vsb = ctx->vs_reg_file_b; - *psf = ctx->ps_reg_file_f; - *psi = ctx->ps_reg_file_i; - *psb = ctx->ps_reg_file_b; -} // MOJOSHADER_glMapUniformBufferMemory - - -void MOJOSHADER_glUnmapUniformBufferMemory() -{ - ctx->generation++; -} // MOJOSHADER_glUnmapUniformBufferMemory - - -static inline GLenum opengl_attr_type(const MOJOSHADER_attributeType type) -{ - switch (type) - { - case MOJOSHADER_ATTRIBUTE_UNKNOWN: return GL_NONE; // oh well. - case MOJOSHADER_ATTRIBUTE_BYTE: return GL_BYTE; - case MOJOSHADER_ATTRIBUTE_UBYTE: return GL_UNSIGNED_BYTE; - case MOJOSHADER_ATTRIBUTE_SHORT: return GL_SHORT; - case MOJOSHADER_ATTRIBUTE_USHORT: return GL_UNSIGNED_SHORT; - case MOJOSHADER_ATTRIBUTE_INT: return GL_INT; - case MOJOSHADER_ATTRIBUTE_UINT: return GL_UNSIGNED_INT; - case MOJOSHADER_ATTRIBUTE_FLOAT: return GL_FLOAT; - case MOJOSHADER_ATTRIBUTE_DOUBLE: return GL_DOUBLE; - - case MOJOSHADER_ATTRIBUTE_HALF_FLOAT: - if (ctx->have_GL_NV_half_float) - return GL_HALF_FLOAT_NV; - else if (ctx->have_GL_ARB_half_float_vertex) - return GL_HALF_FLOAT_ARB; - else if (ctx->have_GL_OES_vertex_half_float) - return GL_HALF_FLOAT_OES; - break; - } // switch - - return GL_NONE; // oh well. Raises a GL error later. -} // opengl_attr_type - - -int MOJOSHADER_glGetVertexAttribLocation(MOJOSHADER_usage usage, int index) -{ - if ((ctx->bound_program == NULL) || (ctx->bound_program->vertex == NULL)) - return -1; - - return ctx->bound_program->vertex_attrib_loc[usage][index]; -} // MOJOSHADER_glGetVertexAttribLocation - - -// !!! FIXME: shouldn't (index) be unsigned? -void MOJOSHADER_glSetVertexAttribute(MOJOSHADER_usage usage, - int index, unsigned int size, - MOJOSHADER_attributeType type, - int normalized, unsigned int stride, - const void *ptr) -{ - if ((ctx->bound_program == NULL) || (ctx->bound_program->vertex == NULL)) - return; - - const GLenum gl_type = opengl_attr_type(type); - const GLboolean norm = (normalized) ? GL_TRUE : GL_FALSE; - const GLint gl_index = ctx->bound_program->vertex_attrib_loc[usage][index]; - - if (gl_index == -1) - return; // Nothing to do, this shader doesn't use this stream. - - // this happens to work in both ARB1 and GLSL, but if something alien - // shows up, we'll have to split these into profile*() functions. - ctx->glVertexAttribPointer(gl_index, size, gl_type, norm, stride, ptr); - - // flag this array as in use, so we can enable it later. - ctx->want_attr[gl_index] = 1; - if (ctx->max_attrs < (gl_index + 1)) - ctx->max_attrs = gl_index + 1; -} // MOJOSHADER_glSetVertexAttribute - - -// !!! FIXME: shouldn't (index) be unsigned? -void MOJOSHADER_glSetVertexAttribDivisor(MOJOSHADER_usage usage, - int index, unsigned int divisor) -{ - assert(ctx->have_GL_ARB_instanced_arrays); - - if ((ctx->bound_program == NULL) || (ctx->bound_program->vertex == NULL)) - return; - - const GLint gl_index = ctx->bound_program->vertex_attrib_loc[usage][index]; - - if (gl_index == -1) - return; // Nothing to do, this shader doesn't use this stream. - - if (divisor != ctx->attr_divisor[gl_index]) - { - ctx->glVertexAttribDivisorARB(gl_index, divisor); - ctx->attr_divisor[gl_index] = divisor; - } // if -} // MOJOSHADER_glSetVertexAttribDivisor - - -void MOJOSHADER_glSetLegacyBumpMapEnv(unsigned int sampler, float mat00, - float mat01, float mat10, float mat11, - float lscale, float loffset) -{ - if ((sampler == 0) || (sampler > (MAX_TEXBEMS+1))) - return; - - GLfloat *dstf = ctx->texbem_state + (6 * (sampler-1)); - *(dstf++) = (GLfloat) mat00; - *(dstf++) = (GLfloat) mat01; - *(dstf++) = (GLfloat) mat10; - *(dstf++) = (GLfloat) mat11; - *(dstf++) = (GLfloat) lscale; - *(dstf++) = (GLfloat) loffset; - ctx->generation++; -} // MOJOSHADER_glSetLegacyBumpMapEnv - - -void MOJOSHADER_glProgramReady(void) -{ - MOJOSHADER_glProgram *program = ctx->bound_program; - - if (program == NULL) - return; // nothing to do. - - // Toggle vertex attribute arrays on/off, based on our needs. - update_enabled_arrays(); - - if (program->uses_pointsize != ctx->pointsize_enabled) - { - ctx->profileToggleProgramPointSize(program->uses_pointsize); - ctx->pointsize_enabled = program->uses_pointsize; - } // if - - // push Uniforms to the program from our register files... - if ( ((program->uniform_count) || (program->texbem_count)) && - (program->generation != ctx->generation)) - { - // vertex shader uniforms come first in program->uniforms array. - const uint32 count = program->uniform_count; - const GLfloat *srcf = ctx->vs_reg_file_f; - const GLint *srci = ctx->vs_reg_file_i; - const uint8 *srcb = ctx->vs_reg_file_b; - MOJOSHADER_shaderType shader_type = MOJOSHADER_TYPE_VERTEX; - GLfloat *dstf = program->vs_uniforms_float4; - GLint *dsti = program->vs_uniforms_int4; - GLint *dstb = program->vs_uniforms_bool; - uint8 uniforms_changed = 0; - uint32 i; - - for (i = 0; i < count; i++) - { - UniformMap *map = &program->uniforms[i]; - const MOJOSHADER_shaderType uniform_shader_type = map->shader_type; - const MOJOSHADER_uniform *u = map->uniform; - const MOJOSHADER_uniformType type = u->type; - const int index = u->index; - const int size = u->array_count ? u->array_count : 1; - - assert(!u->constant); - - // Did we switch from vertex to pixel (to geometry, etc)? - if (shader_type != uniform_shader_type) - { - // we start with vertex, move to pixel, then to geometry, etc. - // The array should always be sorted as such. - if (uniform_shader_type == MOJOSHADER_TYPE_PIXEL) - { - assert(shader_type == MOJOSHADER_TYPE_VERTEX); - srcf = ctx->ps_reg_file_f; - srci = ctx->ps_reg_file_i; - srcb = ctx->ps_reg_file_b; - dstf = program->ps_uniforms_float4; - dsti = program->ps_uniforms_int4; - dstb = program->ps_uniforms_bool; - } // if - else - { - // Should be ordered vertex, then pixel, then geometry. - assert(0 && "Unexpected shader type"); - } // else - - shader_type = uniform_shader_type; - } // if - - if (type == MOJOSHADER_UNIFORM_FLOAT) - { - const size_t count = 4 * size; - const GLfloat *f = &srcf[index * 4]; - if (memcmp(dstf, f, sizeof (GLfloat) * count) != 0) - { - memcpy(dstf, f, sizeof (GLfloat) * count); - uniforms_changed = 1; - } - dstf += count; - } // if - else if (type == MOJOSHADER_UNIFORM_INT) - { - const size_t count = 4 * size; - const GLint *i = &srci[index * 4]; - if (memcmp(dsti, i, sizeof (GLint) * count) != 0) - { - memcpy(dsti, i, sizeof (GLint) * count); - uniforms_changed = 1; - } // if - dsti += count; - } // else if - else if (type == MOJOSHADER_UNIFORM_BOOL) - { - const size_t count = size; - const uint8 *b = &srcb[index]; - size_t i; - for (i = 0; i < count; i++) - if (dstb[i] != b[i]) - { - dstb[i] = (GLint) b[i]; - uniforms_changed = 1; - } // if - dstb += count; - } // else if - - // !!! FIXME: set constants that overlap the array. - } // for - - assert((!program->texbem_count) || (program->fragment)); - if ((program->texbem_count) && (program->fragment)) - { - const MOJOSHADER_parseData *pd = program->fragment->parseData; - const int samp_count = pd->sampler_count; - const MOJOSHADER_sampler *samps = pd->samplers; - GLfloat *dstf = program->ps_uniforms_float4; - int texbem_count = 0; - - dstf += (program->ps_uniforms_float4_count * 4) - - (program->texbem_count * 8); - - assert(program->texbem_count <= MAX_TEXBEMS); - for (i = 0; i < samp_count; i++) - { - if (samps[i].texbem) - { - assert(samps[i].index > 0); - assert(samps[i].index <= MAX_TEXBEMS); - memcpy(dstf, &ctx->texbem_state[6 * (samps[i].index-1)], - sizeof (GLfloat) * 6); - dstf[6] = 0.0f; - dstf[7] = 0.0f; - dstf += 8; - texbem_count++; - } // if - } // for - - assert(texbem_count == program->texbem_count); - } // if - - program->generation = ctx->generation; - - if (uniforms_changed) - ctx->profilePushUniforms(); - } // if -} // MOJOSHADER_glProgramReady - - -void MOJOSHADER_glProgramViewportInfo(int viewportW, int viewportH, - int backbufferW, int backbufferH, - int renderTargetBound) -{ - int vposFlip[2]; - - /* The uniform is only going to exist if VPOS is used! */ - if (ctx->bound_program->ps_vpos_flip_loc != -1) - { - if (renderTargetBound) - { - vposFlip[0] = 1; - vposFlip[1] = 0; - } // if - else - { - vposFlip[0] = -1; - vposFlip[1] = backbufferH; - } // else - if ( (ctx->bound_program->current_vpos_flip[0] != vposFlip[0]) || - (ctx->bound_program->current_vpos_flip[1] != vposFlip[1]) ) - { - ctx->glUniform2f( - ctx->bound_program->ps_vpos_flip_loc, - (float) vposFlip[0], - (float) vposFlip[1] - ); - ctx->bound_program->current_vpos_flip[0] = vposFlip[0]; - ctx->bound_program->current_vpos_flip[1] = vposFlip[1]; - } // if - } // if - -#ifdef MOJOSHADER_FLIP_RENDERTARGET - if (ctx->bound_program->vs_flip_loc != -1) - { - /* Some compilers require that vpFlip be a float value, rather than int. - * However, there's no real reason for it to be a float in the API, so we - * do a cast in here. That's not so bad, right...? - * -flibit - */ - const int flip = renderTargetBound ? -1 : 1; - if (flip != ctx->bound_program->current_flip) - { - ctx->glUniform1f(ctx->bound_program->vs_flip_loc, (float) flip); - ctx->bound_program->current_flip = flip; - } // if - } // if -#endif -} // MOJOSHADER_glViewportInfo - - -void MOJOSHADER_glDeleteProgram(MOJOSHADER_glProgram *program) -{ - program_unref(program); -} // MOJOSHADER_glDeleteProgram - - -void MOJOSHADER_glDeleteShader(MOJOSHADER_glShader *shader) -{ - // See if this was bound as an unlinked program anywhere... - if (ctx->linker_cache) - { - const void *key = NULL; - void *iter = NULL; - int morekeys = hash_iter_keys(ctx->linker_cache, &key, &iter); - while (morekeys) - { - const BoundShaders *shaders = (const BoundShaders *) key; - // Do this here so we don't confuse the iteration by removing... - morekeys = hash_iter_keys(ctx->linker_cache, &key, &iter); - if ((shaders->vertex == shader) || (shaders->fragment == shader)) - { - // Deletes the linked program, which will unref the shader. - hash_remove(ctx->linker_cache, shaders, ctx); - } // if - } // while - } // if - - shader_unref(shader); -} // MOJOSHADER_glDeleteShader - - -void MOJOSHADER_glDestroyContext(MOJOSHADER_glContext *_ctx) -{ - MOJOSHADER_glContext *current_ctx = ctx; - ctx = _ctx; - MOJOSHADER_glBindProgram(NULL); - if (ctx->linker_cache) - hash_destroy(ctx->linker_cache, ctx); - lookup_entry_points(NULL, NULL); // !!! FIXME: is there a value to this? - Free(ctx); - ctx = ((current_ctx == _ctx) ? NULL : current_ctx); -} // MOJOSHADER_glDestroyContext - -// end of mojoshader_opengl.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_parser_hlsl.lemon b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_parser_hlsl.lemon deleted file mode 100644 index 5870c6fa..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_parser_hlsl.lemon +++ /dev/null @@ -1,593 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -// This is a Lemon Parser grammar for HLSL. It is based on an ANSI C YACC -// grammar by Jeff Lee: http://www.lysator.liu.se/c/ANSI-C-grammar-y.html - -// Lemon is here: http://www.hwaci.com/sw/lemon/ ... the source is included -// with MojoShader, and built with the library, so you don't have to track -// down the dependency. - -// HLSL syntax is described, informally, here: -// http://msdn.microsoft.com/en-us/library/bb509615(VS.85).aspx - -%name ParseHLSL - -// Some shift-reduce conflicts are basically unavoidable, but if the final -// conflict count matches this value, we consider it known and acceptable. -%expect 2 - -%start_symbol shader -%token_prefix TOKEN_HLSL_ -%token_type { TokenData } -%extra_argument { Context *ctx } - -%include { -#ifndef __MOJOSHADER_HLSL_COMPILER__ -#error Do not compile this file directly. -#endif -} - -%syntax_error { - // !!! FIXME: make this a proper fail() function. - fail(ctx, "Syntax error"); -} - -%parse_failure { - // !!! FIXME: make this a proper fail() function. - fail(ctx, "Giving up. Parser is hopelessly lost..."); -} - -%stack_overflow { - // !!! FIXME: make this a proper fail() function. - fail(ctx, "Giving up. Parser stack overflow"); -} - -// operator precedence (matches C spec)... - -%left COMMA. -%right ASSIGN ADDASSIGN SUBASSIGN MULASSIGN DIVASSIGN MODASSIGN LSHIFTASSIGN - RSHIFTASSIGN ANDASSIGN ORASSIGN XORASSIGN. -%right QUESTION. -%left OROR. -%left ANDAND. -%left OR. -%left XOR. -%left AND. -%left EQL NEQ. -%left LT LEQ GT GEQ. -%left LSHIFT RSHIFT. -%left PLUS MINUS. -%left STAR SLASH PERCENT. -%right TYPECAST EXCLAMATION COMPLEMENT MINUSMINUS PLUSPLUS. -%left DOT LBRACKET RBRACKET LPAREN RPAREN. - -// bump up the precedence of ELSE, to avoid shift/reduce conflict on the -// usual "dangling else ambiguity" ... -%right ELSE. - - -// The rules... - -shader ::= compilation_units(B). { assert(ctx->ast == NULL); REVERSE_LINKED_LIST(MOJOSHADER_astCompilationUnit, B); ctx->ast = (MOJOSHADER_astNode *) B; } - -%type compilation_units { MOJOSHADER_astCompilationUnit * } -%destructor compilation_units { delete_compilation_unit(ctx, $$); } -compilation_units(A) ::= compilation_unit(B). { A = B; } -compilation_units(A) ::= compilation_units(B) compilation_unit(C). { if (C) { C->next = B; A = C; } } - -%type compilation_unit { MOJOSHADER_astCompilationUnit * } -%destructor compilation_unit { delete_compilation_unit(ctx, $$); } -//compilation_unit(A) ::= PRAGMA . { A = NULL; } // !!! FIXME: deal with pragmas. -compilation_unit(A) ::= variable_declaration(B). { A = new_global_variable(ctx, B); } -compilation_unit(A) ::= function_signature(B) SEMICOLON. { A = new_function(ctx, B, NULL); } -compilation_unit(A) ::= function_signature(B) statement_block(C). { A = new_function(ctx, B, C); } -compilation_unit(A) ::= typedef(B). { A = new_global_typedef(ctx, B); } -compilation_unit(A) ::= struct_declaration(B) SEMICOLON. { A = new_global_struct(ctx, B); } -//compilation_unit(A) ::= error SEMICOLON. { A = NULL; } // !!! FIXME: research using the error nonterminal - -%type typedef { MOJOSHADER_astTypedef * } -%destructor typedef { delete_typedef(ctx, $$); } -// !!! FIXME: should CONST be here, or in datatype? -typedef(A) ::= TYPEDEF CONST datatype(B) scalar_or_array(C). { A = new_typedef(ctx, 1, B, C); push_usertype(ctx, C->identifier, A->datatype); } -typedef(A) ::= TYPEDEF datatype(B) scalar_or_array(C). { A = new_typedef(ctx, 0, B, C); push_usertype(ctx, C->identifier, A->datatype); } - -%type function_signature { MOJOSHADER_astFunctionSignature * } -%destructor function_signature { delete_function_signature(ctx, $$); } -function_signature(A) ::= function_storageclass(B) function_details(C) semantic(D). { A = C; A->storage_class = B; A->semantic = D; } -function_signature(A) ::= function_storageclass(B) function_details(C). { A = C; A->storage_class = B; } -function_signature(A) ::= function_details(B) semantic(C). { A = B; A->semantic = C; } -function_signature(A) ::= function_details(B). { A = B; } - -%type function_details { MOJOSHADER_astFunctionSignature * } -%destructor function_details { delete_function_signature(ctx, $$); } -function_details(A) ::= datatype(B) IDENTIFIER(C) LPAREN function_parameters(D) RPAREN. { A = new_function_signature(ctx, B, C.string, D); } -function_details(A) ::= VOID IDENTIFIER(B) LPAREN function_parameters(C) RPAREN. { A = new_function_signature(ctx, NULL, B.string, C); } - -// !!! FIXME: there is a "target" storage class that is the name of the -// !!! FIXME: platform that this function is meant for...but I don't know -// !!! FIXME: what tokens are valid here. - -// !!! FIXME: Also, the docs say "one of" inline or target, but I bet you can -// !!! FIXME: specify both. -%type function_storageclass { MOJOSHADER_astFunctionStorageClass } -//function_storageclass(A) ::= target(B). { A = B; } -function_storageclass(A) ::= INLINE. { A = MOJOSHADER_AST_FNSTORECLS_INLINE; } - -%type function_parameters { MOJOSHADER_astFunctionParameters * } -%destructor function_parameters { delete_function_params(ctx, $$); } -function_parameters(A) ::= VOID. { A = NULL; } -function_parameters(A) ::= function_parameter_list(B). { REVERSE_LINKED_LIST(MOJOSHADER_astFunctionParameters, B); A = B; } -function_parameters(A) ::= . { A = NULL; } - -%type function_parameter_list { MOJOSHADER_astFunctionParameters * } -%destructor function_parameter_list { delete_function_params(ctx, $$); } -function_parameter_list(A) ::= function_parameter(B). { A = B; } -function_parameter_list(A) ::= function_parameter_list(B) COMMA function_parameter(C). { C->next = B; A = C; } - -// !!! FIXME: this is pretty unreadable. -// !!! FIXME: CONST? -%type function_parameter { MOJOSHADER_astFunctionParameters * } -%destructor function_parameter { delete_function_params(ctx, $$); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D) semantic(E) interpolation_mod(F) initializer(G). { A = new_function_param(ctx, B, C, D.string, E, F, G); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D) semantic(E) interpolation_mod(F). { A = new_function_param(ctx, B, C, D.string, E, F, NULL); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D) semantic(E) initializer(F). { A = new_function_param(ctx, B, C, D.string, E, MOJOSHADER_AST_INTERPMOD_NONE, F); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D) semantic(E). { A = new_function_param(ctx, B, C, D.string, E, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D) interpolation_mod(E) initializer(F). { A = new_function_param(ctx, B, C, D.string, NULL, E, F); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D) interpolation_mod(E). { A = new_function_param(ctx, B, C, D.string, NULL, E, NULL); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D) initializer(E). { A = new_function_param(ctx, B, C, D.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, E); } -function_parameter(A) ::= input_modifier(B) datatype(C) IDENTIFIER(D). { A = new_function_param(ctx, B, C, D.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C) semantic(D) interpolation_mod(E) initializer(F). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, D, E, F); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C) semantic(D) interpolation_mod(E). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, D, E, NULL); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C) semantic(D) initializer(E). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, D, MOJOSHADER_AST_INTERPMOD_NONE, E); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C) semantic(D). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, D, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C) interpolation_mod(D) initializer(E). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, NULL, D, E); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C) interpolation_mod(D). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, NULL, D, NULL); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C) initializer(D). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, D); } -function_parameter(A) ::= datatype(B) IDENTIFIER(C). { A = new_function_param(ctx, MOJOSHADER_AST_INPUTMOD_NONE, B, C.string, NULL, MOJOSHADER_AST_INTERPMOD_NONE, NULL); } - -%type input_modifier { MOJOSHADER_astInputModifier } -input_modifier(A) ::= IN. { A = MOJOSHADER_AST_INPUTMOD_IN; } -input_modifier(A) ::= INOUT. { A = MOJOSHADER_AST_INPUTMOD_INOUT; } -input_modifier(A) ::= OUT. { A = MOJOSHADER_AST_INPUTMOD_OUT; } -input_modifier(A) ::= IN OUT. { A = MOJOSHADER_AST_INPUTMOD_INOUT; } -input_modifier(A) ::= OUT IN. { A = MOJOSHADER_AST_INPUTMOD_INOUT; } -input_modifier(A) ::= UNIFORM. { A = MOJOSHADER_AST_INPUTMOD_UNIFORM; } - -%type semantic { const char * } -semantic(A) ::= COLON IDENTIFIER(B). { A = B.string; } - -// DX10 only? -%type interpolation_mod { MOJOSHADER_astInterpolationModifier } -interpolation_mod(A) ::= LINEAR. { A = MOJOSHADER_AST_INTERPMOD_LINEAR; } -interpolation_mod(A) ::= CENTROID. { A = MOJOSHADER_AST_INTERPMOD_CENTROID; } -interpolation_mod(A) ::= NOINTERPOLATION. { A = MOJOSHADER_AST_INTERPMOD_NOINTERPOLATION; } -interpolation_mod(A) ::= NOPERSPECTIVE. { A = MOJOSHADER_AST_INTERPMOD_NOPERSPECTIVE; } -interpolation_mod(A) ::= SAMPLE. { A = MOJOSHADER_AST_INTERPMOD_SAMPLE; } - -%type variable_declaration { MOJOSHADER_astVariableDeclaration * } -%destructor variable_declaration { delete_variable_declaration(ctx, $$); } -variable_declaration(A) ::= variable_attribute_list(B) datatype(C) variable_declaration_details_list(D) SEMICOLON. { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, D); A = D; A->attributes = B; A->datatype = C; } -variable_declaration(A) ::= datatype(B) variable_declaration_details_list(C) SEMICOLON. { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, C); A = C; A->datatype = B; } -// !!! FIXME: this expects "struct Identifier {} varname" ... that "Identifier" is wrong. -variable_declaration(A) ::= struct_declaration(B) variable_declaration_details_list(C) SEMICOLON. { REVERSE_LINKED_LIST(MOJOSHADER_astVariableDeclaration, C); A = C; A->anonymous_datatype = B; } - -%type variable_attribute_list { int } -variable_attribute_list(A) ::= variable_attribute(B). { A = B; } -variable_attribute_list(A) ::= variable_attribute_list(B) variable_attribute(C). { A = B | C; } - -%type variable_attribute { int } -variable_attribute(A) ::= EXTERN. { A = MOJOSHADER_AST_VARATTR_EXTERN; } -variable_attribute(A) ::= NOINTERPOLATION. { A = MOJOSHADER_AST_VARATTR_NOINTERPOLATION; } -variable_attribute(A) ::= SHARED. { A = MOJOSHADER_AST_VARATTR_SHARED; } -variable_attribute(A) ::= STATIC. { A = MOJOSHADER_AST_VARATTR_STATIC; } -variable_attribute(A) ::= UNIFORM. { A = MOJOSHADER_AST_VARATTR_UNIFORM; } -variable_attribute(A) ::= VOLATILE. { A = MOJOSHADER_AST_VARATTR_VOLATILE; } -variable_attribute(A) ::= CONST. { A = MOJOSHADER_AST_VARATTR_CONST; } -variable_attribute(A) ::= ROWMAJOR. { A = MOJOSHADER_AST_VARATTR_ROWMAJOR; } -variable_attribute(A) ::= COLUMNMAJOR. { A = MOJOSHADER_AST_VARATTR_COLUMNMAJOR; } - -%type variable_declaration_details_list { MOJOSHADER_astVariableDeclaration * } -%destructor variable_declaration_details_list { delete_variable_declaration(ctx, $$); } -variable_declaration_details_list(A) ::= variable_declaration_details(B). { A = B; } -variable_declaration_details_list(A) ::= variable_declaration_details_list(B) COMMA variable_declaration_details(C). { A = C; A->next = B; } - -%type variable_declaration_details { MOJOSHADER_astVariableDeclaration * } -%destructor variable_declaration_details { delete_variable_declaration(ctx, $$); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C) annotations(D) initializer(E) variable_lowlevel(F). { A = new_variable_declaration(ctx, B, C, D, E, F); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C) annotations(D) initializer(E). { A = new_variable_declaration(ctx, B, C, D, E, NULL); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C) annotations(D) variable_lowlevel(E). { A = new_variable_declaration(ctx, B, C, D, NULL, E); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C) annotations(D). { A = new_variable_declaration(ctx, B, C, D, NULL, NULL); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C) initializer(D) variable_lowlevel(E). { A = new_variable_declaration(ctx, B, C, NULL, D, E); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C) initializer(D). { A = new_variable_declaration(ctx, B, C, NULL, D, NULL); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C) variable_lowlevel(D). { A = new_variable_declaration(ctx, B, C, NULL, NULL, D); } -variable_declaration_details(A) ::= scalar_or_array(B) semantic(C). { A = new_variable_declaration(ctx, B, C, NULL, NULL, NULL); } -variable_declaration_details(A) ::= scalar_or_array(B) annotations(C) initializer(D) variable_lowlevel(E). { A = new_variable_declaration(ctx, B, NULL, C, D, E); } -variable_declaration_details(A) ::= scalar_or_array(B) annotations(C) initializer(D). { A = new_variable_declaration(ctx, B, NULL, C, D, NULL); } -variable_declaration_details(A) ::= scalar_or_array(B) annotations(C) variable_lowlevel(D). { A = new_variable_declaration(ctx, B, NULL, C, NULL, D); } -variable_declaration_details(A) ::= scalar_or_array(B) annotations(C). { A = new_variable_declaration(ctx, B, NULL, C, NULL, NULL); } -variable_declaration_details(A) ::= scalar_or_array(B) initializer(C) variable_lowlevel(D). { A = new_variable_declaration(ctx, B, NULL, NULL, C, D); } -variable_declaration_details(A) ::= scalar_or_array(B) initializer(C). { A = new_variable_declaration(ctx, B, NULL, NULL, C, NULL); } -variable_declaration_details(A) ::= scalar_or_array(B) variable_lowlevel(C). { A = new_variable_declaration(ctx, B, NULL, NULL, NULL, C); } -variable_declaration_details(A) ::= scalar_or_array(B). { A = new_variable_declaration(ctx, B, NULL, NULL, NULL, NULL); } - -// !!! FIXME: we don't handle full sampler declarations at the moment. - - -%type struct_declaration { MOJOSHADER_astStructDeclaration * } -%destructor struct_declaration { delete_struct_declaration(ctx, $$); } -struct_declaration(A) ::= struct_intro(B) LBRACE struct_member_list(C) RBRACE. { REVERSE_LINKED_LIST(MOJOSHADER_astStructMembers, C); A = new_struct_declaration(ctx, B, C); } - -// This has to be separate from struct_declaration so that the struct is in the usertypemap when parsing its members. -%type struct_intro { const char * } -struct_intro(A) ::= STRUCT IDENTIFIER(B). { A = B.string; push_usertype(ctx, A, &ctx->dt_none); } // datatype is bogus until semantic analysis. - -%type struct_member_list { MOJOSHADER_astStructMembers * } -%destructor struct_member_list { delete_struct_member(ctx, $$); } -struct_member_list(A) ::= struct_member(B). { A = B; } -struct_member_list(A) ::= struct_member_list(B) struct_member(C). { A = C; MOJOSHADER_astStructMembers *i = A; while (i->next) { i = i->next; } i->next = B; } - -%type struct_member { MOJOSHADER_astStructMembers * } -%destructor struct_member { delete_struct_member(ctx, $$); } -struct_member(A) ::= interpolation_mod(B) struct_member_details(C). { MOJOSHADER_astStructMembers *i = C; A = C; while (i) { i->interpolation_mod = B; i = i->next; } } -struct_member(A) ::= struct_member_details(B). { A = B; } - -%type struct_member_details { MOJOSHADER_astStructMembers * } -%destructor struct_member_details { delete_struct_member(ctx, $$); } -struct_member_details(A) ::= datatype(B) struct_member_item_list(C) SEMICOLON. { MOJOSHADER_astStructMembers *i = C; A = C; while (i) { i->datatype = B; i = i->next; } } - -%type struct_member_item_list { MOJOSHADER_astStructMembers * } -%destructor struct_member_item_list { delete_struct_member(ctx, $$); } -struct_member_item_list(A) ::= scalar_or_array(B). { A = new_struct_member(ctx, B, NULL); } -struct_member_item_list(A) ::= scalar_or_array(B) semantic(C). { A = new_struct_member(ctx, B, C); } -struct_member_item_list(A) ::= struct_member_item_list(B) COMMA IDENTIFIER(C). { A = new_struct_member(ctx, new_scalar_or_array(ctx, C.string, 0, NULL), NULL); A->next = B; A->semantic = B->semantic; } - -%type variable_lowlevel { MOJOSHADER_astVariableLowLevel * } -%destructor variable_lowlevel { delete_variable_lowlevel(ctx, $$); } -variable_lowlevel(A) ::= packoffset(B) register(C). { A = new_variable_lowlevel(ctx, B, C); } -variable_lowlevel(A) ::= register(B) packoffset(C). { A = new_variable_lowlevel(ctx, C, B); } -variable_lowlevel(A) ::= packoffset(B). { A = new_variable_lowlevel(ctx, B, NULL); } -variable_lowlevel(A) ::= register(B). { A = new_variable_lowlevel(ctx, NULL, B); } - -// !!! FIXME: I sort of hate this type name. -%type scalar_or_array { MOJOSHADER_astScalarOrArray * } -%destructor scalar_or_array { delete_scalar_or_array(ctx, $$); } -scalar_or_array(A) ::= IDENTIFIER(B) LBRACKET RBRACKET. { A = new_scalar_or_array(ctx, B.string, 1, NULL); } -scalar_or_array(A) ::= IDENTIFIER(B) LBRACKET expression(C) RBRACKET. { A = new_scalar_or_array(ctx, B.string, 1, C); } -scalar_or_array(A) ::= IDENTIFIER(B). { A = new_scalar_or_array(ctx, B.string, 0, NULL); } - -%type packoffset { MOJOSHADER_astPackOffset * } -%destructor packoffset { delete_pack_offset(ctx, $$); } -packoffset(A) ::= COLON PACKOFFSET LPAREN IDENTIFIER(B) DOT IDENTIFIER(C) RPAREN. { A = new_pack_offset(ctx, B.string, C.string); } -packoffset(A) ::= COLON PACKOFFSET LPAREN IDENTIFIER(B) RPAREN. { A = new_pack_offset(ctx, B.string, NULL); } - -// !!! FIXME: can take a profile, like ": register(ps_5_0, s)" -// !!! FIXME: IDENTIFIER is wrong: "s[2]" works, apparently. Use scalar_or_array instead? -// !!! FIXME: (these might be SM4 features) -%type register { const char * } -register(A) ::= COLON REGISTER LPAREN IDENTIFIER(B) RPAREN. { A = B.string; } - -%type annotations { MOJOSHADER_astAnnotations * } -%destructor annotations { delete_annotation(ctx, $$); } -annotations(A) ::= LT annotation_list(B) GT. { REVERSE_LINKED_LIST(MOJOSHADER_astAnnotations, B); A = B; } - -%type annotation_list { MOJOSHADER_astAnnotations * } -%destructor annotation_list { delete_annotation(ctx, $$); } -annotation_list(A) ::= annotation(B). { A = B; } -annotation_list(A) ::= annotation_list(B) annotation(C). { A = C; A->next = B; } - -// !!! FIXME: can this take a USERTYPE if we typedef'd a scalar type? -%type annotation { MOJOSHADER_astAnnotations * } -%destructor annotation { delete_annotation(ctx, $$); } -annotation(A) ::= datatype_scalar(B) initializer(C) SEMICOLON. { A = new_annotation(ctx, B, C); } - -%type initializer_block_list { MOJOSHADER_astExpression * } -%destructor initializer_block_list { delete_expr(ctx, $$); } -initializer_block_list(A) ::= expression(B). { A = B; } -initializer_block_list(A) ::= LBRACE initializer_block_list(B) RBRACE. { A = B; } -initializer_block_list(A) ::= initializer_block_list(B) COMMA initializer_block_list(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_COMMA, B, C); } - -%type initializer_block { MOJOSHADER_astExpression * } -%destructor initializer_block { delete_expr(ctx, $$); } -initializer_block(A) ::= LBRACE initializer_block_list(B) RBRACE. { A = B; } - -%type initializer { MOJOSHADER_astExpression * } -%destructor initializer { delete_expr(ctx, $$); } -initializer(A) ::= ASSIGN initializer_block(B). { A = B; } -initializer(A) ::= ASSIGN expression(B). { A = B; } - -%type intrinsic_datatype { const MOJOSHADER_astDataType * } -intrinsic_datatype(A) ::= datatype_vector(B). { A = B; } -intrinsic_datatype(A) ::= datatype_matrix(B). { A = B; } -intrinsic_datatype(A) ::= datatype_scalar(B). { A = B; } -intrinsic_datatype(A) ::= datatype_sampler(B). { A = B; } -intrinsic_datatype(A) ::= datatype_buffer(B). { A = B; } - -%type datatype { const MOJOSHADER_astDataType * } -datatype(A) ::= intrinsic_datatype(B). { A = B; } -datatype(A) ::= USERTYPE(B). { A = B.datatype; } - -%type datatype_sampler { const MOJOSHADER_astDataType * } -datatype_sampler(A) ::= SAMPLER. { A = &ctx->dt_sampler2d; } -datatype_sampler(A) ::= SAMPLER1D. { A = &ctx->dt_sampler1d; } -datatype_sampler(A) ::= SAMPLER2D. { A = &ctx->dt_sampler2d; } -datatype_sampler(A) ::= SAMPLER3D. { A = &ctx->dt_sampler3d; } -datatype_sampler(A) ::= SAMPLERCUBE. { A = &ctx->dt_samplercube; } -datatype_sampler(A) ::= SAMPLER_STATE. { A = &ctx->dt_samplerstate; } -datatype_sampler(A) ::= SAMPLERSTATE. { A = &ctx->dt_samplerstate; } -datatype_sampler(A) ::= SAMPLERCOMPARISONSTATE. { A = &ctx->dt_samplercompstate; } - -%type datatype_scalar { const MOJOSHADER_astDataType * } -datatype_scalar(A) ::= BOOL. { A = &ctx->dt_bool; } -datatype_scalar(A) ::= INT. { A = &ctx->dt_int; } -datatype_scalar(A) ::= UINT. { A = &ctx->dt_uint; } -datatype_scalar(A) ::= HALF. { A = &ctx->dt_half; } -datatype_scalar(A) ::= FLOAT. { A = &ctx->dt_float; } -datatype_scalar(A) ::= DOUBLE. { A = &ctx->dt_double; } -datatype_scalar(A) ::= STRING. { A = &ctx->dt_string; } // this is for the effects framework, not HLSL. -datatype_scalar(A) ::= SNORM FLOAT. { A = &ctx->dt_float_snorm; } -datatype_scalar(A) ::= UNORM FLOAT. { A = &ctx->dt_float_unorm; } - -%type datatype_buffer { const MOJOSHADER_astDataType * } -datatype_buffer(A) ::= BUFFER LT BOOL GT. { A = &ctx->dt_buf_bool; } -datatype_buffer(A) ::= BUFFER LT INT GT. { A = &ctx->dt_buf_int; } -datatype_buffer(A) ::= BUFFER LT UINT GT. { A = &ctx->dt_buf_uint; } -datatype_buffer(A) ::= BUFFER LT HALF GT. { A = &ctx->dt_buf_half; } -datatype_buffer(A) ::= BUFFER LT FLOAT GT. { A = &ctx->dt_buf_float; } -datatype_buffer(A) ::= BUFFER LT DOUBLE GT. { A = &ctx->dt_buf_double; } -datatype_buffer(A) ::= BUFFER LT SNORM FLOAT GT. { A = &ctx->dt_buf_float_snorm; } -datatype_buffer(A) ::= BUFFER LT UNORM FLOAT GT. { A = &ctx->dt_buf_float_unorm; } - -%type datatype_vector { const MOJOSHADER_astDataType * } -datatype_vector(A) ::= VECTOR LT datatype_scalar(B) COMMA INT_CONSTANT(C) GT. { A = new_datatype_vector(ctx, B, (int) C.i64); } - -%type datatype_matrix { const MOJOSHADER_astDataType * } -datatype_matrix(A) ::= MATRIX LT datatype_scalar(B) COMMA INT_CONSTANT(C) COMMA INT_CONSTANT(D) GT. { A = new_datatype_matrix(ctx, B, (int) C.i64, (int) D.i64); } - -%type statement_block { MOJOSHADER_astStatement * } -%destructor statement_block { delete_statement(ctx, $$); } -statement_block(A) ::= LBRACE RBRACE. { A = new_block_statement(ctx, NULL); } -statement_block(A) ::= LBRACE statement_list(B) RBRACE. { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, B); A = new_block_statement(ctx, B); } - -%type statement_list { MOJOSHADER_astStatement * } -%destructor statement_list { delete_statement(ctx, $$); } -statement_list(A) ::= statement(B). { A = B; } -statement_list(A) ::= statement_list(B) statement(C). { A = C; A->next = B; } - -// These are for Shader Model 4 and Xbox 360 only, apparently. -// !!! FIXME: ...so we ignore them for now. -// !!! FIXME: can these stack? "[isolate][unused]{}" or something? -%type statement_attribute { int } -statement_attribute(A) ::= ISOLATE. { A = 0; } // !!! FIXME -statement_attribute(A) ::= MAXINSTRUCTIONCOUNT LPAREN INT_CONSTANT RPAREN. { A = 0; } // !!! FIXME -statement_attribute(A) ::= NOEXPRESSIONOPTIMIZATIONS. { A = 0; } // !!! FIXME -statement_attribute(A) ::= REMOVEUNUSEDINPUTS. { A = 0; } // !!! FIXME -statement_attribute(A) ::= UNUSED. { A = 0; } // !!! FIXME -statement_attribute(A) ::= XPS. { A = 0; } // !!! FIXME - -%type statement { MOJOSHADER_astStatement * } -%destructor statement { delete_statement(ctx, $$); } -statement(A) ::= BREAK SEMICOLON. { A = new_break_statement(ctx); } -statement(A) ::= CONTINUE SEMICOLON. { A = new_continue_statement(ctx); } -statement(A) ::= DISCARD SEMICOLON. { A = new_discard_statement(ctx); } -statement(A) ::= LBRACKET statement_attribute(B) RBRACKET statement_block(C). { A = C; /* !!! FIXME: A->attributes = B;*/ B = 0; } -statement(A) ::= variable_declaration(B). { A = new_vardecl_statement(ctx, B); } -statement(A) ::= struct_declaration(B) SEMICOLON. { A = new_struct_statement(ctx, B); } -statement(A) ::= do_intro(B) DO statement(C) WHILE LPAREN expression(D) RPAREN SEMICOLON. { A = new_do_statement(ctx, B, C, D); } -statement(A) ::= while_intro(B) LPAREN expression(C) RPAREN statement(D). { A = new_while_statement(ctx, B, C, D); } -statement(A) ::= if_intro(B) LPAREN expression(C) RPAREN statement(D). { A = new_if_statement(ctx, B, C, D, NULL); } -statement(A) ::= if_intro(B) LPAREN expression(C) RPAREN statement(D) ELSE statement(E). { A = new_if_statement(ctx, B, C, D, E); } -statement(A) ::= switch_intro(B) LPAREN expression(C) RPAREN LBRACE switch_case_list(D) RBRACE. { REVERSE_LINKED_LIST(MOJOSHADER_astSwitchCases, D); A = new_switch_statement(ctx, B, C, D); } -statement(A) ::= typedef(B). { A = new_typedef_statement(ctx, B); } -statement(A) ::= SEMICOLON. { A = new_empty_statement(ctx); } -statement(A) ::= expression(B) SEMICOLON. { A = new_expr_statement(ctx, B); } -statement(A) ::= RETURN SEMICOLON. { A = new_return_statement(ctx, NULL); } -statement(A) ::= RETURN expression(B) SEMICOLON. { A = new_return_statement(ctx, B); } -statement(A) ::= statement_block(B). { A = B; } -statement(A) ::= for_statement(B). { A = B; } -//statement(A) ::= error SEMICOLON. { A = NULL; } // !!! FIXME: research using the error nonterminal - -%type while_intro { int } -while_intro(A) ::= LBRACKET UNROLL LPAREN INT_CONSTANT(B) RPAREN RBRACKET WHILE. { A = (B.i64 < 0) ? 0 : B.i64; } -while_intro(A) ::= LBRACKET UNROLL RBRACKET WHILE. { A = -1; } -while_intro(A) ::= LBRACKET LOOP RBRACKET WHILE. { A = 0; } -while_intro(A) ::= WHILE. { A = -2; } - -%type for_statement { MOJOSHADER_astStatement * } -%destructor for_statement { delete_statement(ctx, $$); } -for_statement(A) ::= for_intro(B) for_details(C). { A = C; ((MOJOSHADER_astForStatement *) A)->unroll = B; } - -%type for_intro { int } -for_intro(A) ::= LBRACKET UNROLL LPAREN INT_CONSTANT(B) RPAREN RBRACKET FOR. { A = (B.i64 < 0) ? 0 : B.i64; } -for_intro(A) ::= LBRACKET UNROLL RBRACKET FOR. { A = -1; } -for_intro(A) ::= LBRACKET LOOP RBRACKET FOR. { A = 0; } -for_intro(A) ::= FOR. { A = -2; } - -%type for_details { MOJOSHADER_astStatement * } -%destructor for_details { delete_statement(ctx, $$); } -for_details(A) ::= LPAREN expression(B) SEMICOLON expression(C) SEMICOLON expression(D) RPAREN statement(E). { A = new_for_statement(ctx, NULL, B, C, D, E); } -for_details(A) ::= LPAREN SEMICOLON SEMICOLON RPAREN statement(B). { A = new_for_statement(ctx, NULL, NULL, NULL, NULL, B); } -for_details(A) ::= LPAREN SEMICOLON SEMICOLON expression(B) RPAREN statement(C). { A = new_for_statement(ctx, NULL, NULL, NULL, B, C); } -for_details(A) ::= LPAREN SEMICOLON expression(B) SEMICOLON RPAREN statement(C). { A = new_for_statement(ctx, NULL, NULL, B, NULL, C); } -for_details(A) ::= LPAREN SEMICOLON expression(B) SEMICOLON expression(C) RPAREN statement(D). { A = new_for_statement(ctx, NULL, NULL, B, C, D); } -for_details(A) ::= LPAREN expression(B) SEMICOLON SEMICOLON RPAREN statement(C). { A = new_for_statement(ctx, NULL, B, NULL, NULL, C); } -for_details(A) ::= LPAREN expression(B) SEMICOLON SEMICOLON expression(C) RPAREN statement(D). { A = new_for_statement(ctx, NULL, B, NULL, C, D); } -for_details(A) ::= LPAREN expression(B) SEMICOLON expression(C) SEMICOLON RPAREN statement(D). { A = new_for_statement(ctx, NULL, B, C, NULL, D); } -for_details(A) ::= LPAREN variable_declaration(B) expression(C) SEMICOLON expression(D) RPAREN statement(E). { A = new_for_statement(ctx, B, NULL, C, D, E); } -for_details(A) ::= LPAREN variable_declaration(B) SEMICOLON RPAREN statement(C). { A = new_for_statement(ctx, B, NULL, NULL, NULL, C); } -for_details(A) ::= LPAREN variable_declaration(B) SEMICOLON expression(C) RPAREN statement(D). { A = new_for_statement(ctx, B, NULL, C, NULL, D); } -for_details(A) ::= LPAREN variable_declaration(B) expression(C) SEMICOLON RPAREN statement(D). { A = new_for_statement(ctx, B, NULL, C, NULL, D); } - -%type do_intro { int } -do_intro(A) ::= LBRACKET UNROLL LPAREN INT_CONSTANT(B) RPAREN RBRACKET DO. { A = (B.i64 < 0) ? 0 : (int) B.i64; } -do_intro(A) ::= LBRACKET UNROLL RBRACKET DO. { A = -1; } -do_intro(A) ::= LBRACKET LOOP RBRACKET DO. { A = 0; } -do_intro(A) ::= DO. { A = -2; } - -%type if_intro { int } -if_intro(A) ::= LBRACKET BRANCH RBRACKET IF. { A = MOJOSHADER_AST_IFATTR_BRANCH; } -if_intro(A) ::= LBRACKET FLATTEN RBRACKET IF. { A = MOJOSHADER_AST_IFATTR_FLATTEN; } -if_intro(A) ::= LBRACKET IFALL RBRACKET IF. { A = MOJOSHADER_AST_IFATTR_IFALL; } -if_intro(A) ::= LBRACKET IFANY RBRACKET IF. { A = MOJOSHADER_AST_IFATTR_IFANY; } -if_intro(A) ::= LBRACKET PREDICATE RBRACKET IF. { A = MOJOSHADER_AST_IFATTR_PREDICATE; } -if_intro(A) ::= LBRACKET PREDICATEBLOCK RBRACKET IF. { A = MOJOSHADER_AST_IFATTR_PREDICATEBLOCK; } -if_intro(A) ::= IF. { A = MOJOSHADER_AST_IFATTR_NONE; } - -%type switch_intro { int } -switch_intro(A) ::= LBRACKET FLATTEN RBRACKET SWITCH. { A = MOJOSHADER_AST_SWITCHATTR_FLATTEN; } -switch_intro(A) ::= LBRACKET BRANCH RBRACKET SWITCH. { A = MOJOSHADER_AST_SWITCHATTR_BRANCH; } -switch_intro(A) ::= LBRACKET FORCECASE RBRACKET SWITCH. { A = MOJOSHADER_AST_SWITCHATTR_FORCECASE; } -switch_intro(A) ::= LBRACKET CALL RBRACKET SWITCH. { A = MOJOSHADER_AST_SWITCHATTR_CALL; } -switch_intro(A) ::= SWITCH. { A = MOJOSHADER_AST_SWITCHATTR_NONE; } - -%type switch_case_list { MOJOSHADER_astSwitchCases * } -%destructor switch_case_list { delete_switch_case(ctx, $$); } -switch_case_list(A) ::= switch_case(B). { A = B; } -switch_case_list(A) ::= switch_case_list(B) switch_case(C). { A = C; A->next = B; } - -// You can do math here, apparently, as long as it produces an int constant. -// ...so "case 3+2:" works. -%type switch_case { MOJOSHADER_astSwitchCases * } -%destructor switch_case { delete_switch_case(ctx, $$); } -switch_case(A) ::= CASE expression(B) COLON statement_list(C). { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, C); A = new_switch_case(ctx, B, C); } -switch_case(A) ::= CASE expression(B) COLON. { A = new_switch_case(ctx, B, NULL); } -switch_case(A) ::= DEFAULT COLON statement_list(B). { REVERSE_LINKED_LIST(MOJOSHADER_astStatement, B); A = new_switch_case(ctx, NULL, B); } -switch_case(A) ::= DEFAULT COLON. { A = new_switch_case(ctx, NULL, NULL); } - -// the expression stuff is based on Jeff Lee's ANSI C grammar. -%type primary_expr { MOJOSHADER_astExpression * } -%destructor primary_expr { delete_expr(ctx, $$); } -primary_expr(A) ::= IDENTIFIER(B). { A = new_identifier_expr(ctx, B.string); } -primary_expr(A) ::= INT_CONSTANT(B). { A = new_literal_int_expr(ctx, B.i64); } -primary_expr(A) ::= FLOAT_CONSTANT(B). { A = new_literal_float_expr(ctx, B.dbl); } -primary_expr(A) ::= STRING_LITERAL(B). { A = new_literal_string_expr(ctx, B.string); } -primary_expr(A) ::= TRUE. { A = new_literal_boolean_expr(ctx, 1); } -primary_expr(A) ::= FALSE. { A = new_literal_boolean_expr(ctx, 0); } -primary_expr(A) ::= LPAREN expression(B) RPAREN. { A = B; } - -%type postfix_expr { MOJOSHADER_astExpression * } -%destructor postfix_expr { delete_expr(ctx, $$); } -postfix_expr(A) ::= primary_expr(B). { A = B; } -postfix_expr(A) ::= postfix_expr(B) LBRACKET expression(C) RBRACKET. { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_DEREF_ARRAY, B, C); } -postfix_expr(A) ::= IDENTIFIER(B) arguments(C). { A = new_callfunc_expr(ctx, B.string, C); } -postfix_expr(A) ::= datatype(B) arguments(C). { A = new_constructor_expr(ctx, B, C); } // HLSL constructor -postfix_expr(A) ::= postfix_expr(B) DOT IDENTIFIER(C). { A = new_deref_struct_expr(ctx, B, C.string); } -postfix_expr(A) ::= postfix_expr(B) PLUSPLUS. { A = new_unary_expr(ctx, MOJOSHADER_AST_OP_POSTINCREMENT, B); } -postfix_expr(A) ::= postfix_expr(B) MINUSMINUS. { A = new_unary_expr(ctx, MOJOSHADER_AST_OP_POSTDECREMENT, B); } - -%type arguments { MOJOSHADER_astArguments * } -%destructor arguments { delete_arguments(ctx, $$); } -arguments(A) ::= LPAREN RPAREN. { A = NULL; } -arguments(A) ::= LPAREN argument_list(B) RPAREN. { REVERSE_LINKED_LIST(MOJOSHADER_astArguments, B); A = B; } - -%type argument_list { MOJOSHADER_astArguments * } -%destructor argument_list { delete_arguments(ctx, $$); } -argument_list(A) ::= assignment_expr(B). { A = new_argument(ctx, B); } -argument_list(A) ::= argument_list(B) COMMA assignment_expr(C). { A = new_argument(ctx, C); A->next = B; } - -%type unary_expr { MOJOSHADER_astExpression * } -%destructor unary_expr { delete_expr(ctx, $$); } -unary_expr(A) ::= postfix_expr(B). { A = B; } -unary_expr(A) ::= PLUSPLUS unary_expr(B). { A = new_unary_expr(ctx, MOJOSHADER_AST_OP_PREINCREMENT, B); } -unary_expr(A) ::= MINUSMINUS unary_expr(B). { A = new_unary_expr(ctx, MOJOSHADER_AST_OP_PREDECREMENT, B); } -unary_expr(A) ::= PLUS cast_expr(B). { A = B; } // unary "+x" is always a no-op, so throw it away here. -unary_expr(A) ::= MINUS cast_expr(B). { A = new_unary_expr(ctx, MOJOSHADER_AST_OP_NEGATE, B); } -unary_expr(A) ::= COMPLEMENT cast_expr(B). { A = new_unary_expr(ctx, MOJOSHADER_AST_OP_COMPLEMENT, B); } -unary_expr(A) ::= EXCLAMATION cast_expr(B). { A = new_unary_expr(ctx, MOJOSHADER_AST_OP_NOT, B); } - -%type cast_expr { MOJOSHADER_astExpression * } -%destructor cast_expr { delete_expr(ctx, $$); } -cast_expr(A) ::= unary_expr(B). { A = B; } -cast_expr(A) ::= LPAREN datatype(B) RPAREN cast_expr(C). { A = new_cast_expr(ctx, B, C); } - -%type multiplicative_expr { MOJOSHADER_astExpression * } -%destructor multiplicative_expr { delete_expr(ctx, $$); } -multiplicative_expr(A) ::= cast_expr(B). { A = B; } -multiplicative_expr(A) ::= multiplicative_expr(B) STAR cast_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_MULTIPLY, B, C); } -multiplicative_expr(A) ::= multiplicative_expr(B) SLASH cast_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_DIVIDE, B, C); } -multiplicative_expr(A) ::= multiplicative_expr(B) PERCENT cast_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_MODULO, B, C); } - -%type additive_expr { MOJOSHADER_astExpression * } -%destructor additive_expr { delete_expr(ctx, $$); } -additive_expr(A) ::= multiplicative_expr(B). { A = B; } -additive_expr(A) ::= additive_expr(B) PLUS multiplicative_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_ADD, B, C); } -additive_expr(A) ::= additive_expr(B) MINUS multiplicative_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_SUBTRACT, B, C); } - -%type shift_expr { MOJOSHADER_astExpression * } -%destructor shift_expr { delete_expr(ctx, $$); } -shift_expr(A) ::= additive_expr(B). { A = B; } -shift_expr(A) ::= shift_expr(B) LSHIFT additive_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_LSHIFT, B, C); } -shift_expr(A) ::= shift_expr(B) RSHIFT additive_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_RSHIFT, B, C); } - -%type relational_expr { MOJOSHADER_astExpression * } -%destructor relational_expr { delete_expr(ctx, $$); } -relational_expr(A) ::= shift_expr(B). { A = B; } -relational_expr(A) ::= relational_expr(B) LT shift_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_LESSTHAN, B, C); } -relational_expr(A) ::= relational_expr(B) GT shift_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_GREATERTHAN, B, C); } -relational_expr(A) ::= relational_expr(B) LEQ shift_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_LESSTHANOREQUAL, B, C); } -relational_expr(A) ::= relational_expr(B) GEQ shift_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_GREATERTHANOREQUAL, B, C); } - -%type equality_expr { MOJOSHADER_astExpression * } -%destructor equality_expr { delete_expr(ctx, $$); } -equality_expr(A) ::= relational_expr(B). { A = B; } -equality_expr(A) ::= equality_expr(B) EQL relational_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_EQUAL, B, C); } -equality_expr(A) ::= equality_expr(B) NEQ relational_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_NOTEQUAL, B, C); } - -%type and_expr { MOJOSHADER_astExpression * } -%destructor and_expr { delete_expr(ctx, $$); } -and_expr(A) ::= equality_expr(B). { A = B; } -and_expr(A) ::= and_expr(B) AND equality_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYAND, B, C); } - -%type exclusive_or_expr { MOJOSHADER_astExpression * } -%destructor exclusive_or_expr { delete_expr(ctx, $$); } -exclusive_or_expr(A) ::= and_expr(B). { A = B; } -exclusive_or_expr(A) ::= exclusive_or_expr(B) XOR and_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYXOR, B, C); } - -%type inclusive_or_expr { MOJOSHADER_astExpression * } -%destructor inclusive_or_expr { delete_expr(ctx, $$); } -inclusive_or_expr(A) ::= exclusive_or_expr(B). { A = B; } -inclusive_or_expr(A) ::= inclusive_or_expr(B) OR exclusive_or_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_BINARYOR, B, C); } - -%type logical_and_expr { MOJOSHADER_astExpression * } -%destructor logical_and_expr { delete_expr(ctx, $$); } -logical_and_expr(A) ::= inclusive_or_expr(B). { A = B; } -logical_and_expr(A) ::= logical_and_expr(B) ANDAND inclusive_or_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_LOGICALAND, B, C); } - -%type logical_or_expr { MOJOSHADER_astExpression * } -%destructor logical_or_expr { delete_expr(ctx, $$); } -logical_or_expr(A) ::= logical_and_expr(B). { A = B; } -logical_or_expr(A) ::= logical_or_expr(B) OROR logical_and_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_LOGICALOR, B, C); } - -%type conditional_expr { MOJOSHADER_astExpression * } -%destructor conditional_expr { delete_expr(ctx, $$); } -conditional_expr(A) ::= logical_or_expr(B). { A = B; } -conditional_expr(A) ::= logical_or_expr(B) QUESTION logical_or_expr(C) COLON conditional_expr(D). { A = new_ternary_expr(ctx, MOJOSHADER_AST_OP_CONDITIONAL, B, C, D); } - -%type assignment_expr { MOJOSHADER_astExpression * } -%destructor assignment_expr { delete_expr(ctx, $$); } -assignment_expr(A) ::= conditional_expr(B). { A = B; } -assignment_expr(A) ::= unary_expr(B) ASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_ASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) MULASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_MULASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) DIVASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_DIVASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) MODASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_MODASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) ADDASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_ADDASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) SUBASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_SUBASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) LSHIFTASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_LSHIFTASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) RSHIFTASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_RSHIFTASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) ANDASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_ANDASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) XORASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_XORASSIGN, B, C); } -assignment_expr(A) ::= unary_expr(B) ORASSIGN assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_ORASSIGN, B, C); } - -%type expression { MOJOSHADER_astExpression * } -%destructor expression { delete_expr(ctx, $$); } -expression(A) ::= assignment_expr(B). { A = B; } -expression(A) ::= expression(B) COMMA assignment_expr(C). { A = new_binary_expr(ctx, MOJOSHADER_AST_OP_COMMA, B, C); } - -// end of mojoshader_parser_hlsl.lemon ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_preprocessor.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_preprocessor.c deleted file mode 100644 index 7a36b465..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_preprocessor.c +++ /dev/null @@ -1,2396 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#if DEBUG_PREPROCESSOR - #define print_debug_token(token, len, val) \ - MOJOSHADER_print_debug_token("PREPROCESSOR", token, len, val) -#else - #define print_debug_token(token, len, val) -#endif - -#if DEBUG_LEXER -static Token debug_preprocessor_lexer(IncludeState *s) -{ - const Token retval = preprocessor_lexer(s); - MOJOSHADER_print_debug_token("LEXER", s->token, s->tokenlen, retval); - return retval; -} // debug_preprocessor_lexer -#define preprocessor_lexer(s) debug_preprocessor_lexer(s) -#endif - -#if DEBUG_TOKENIZER -static void print_debug_lexing_position(IncludeState *s) -{ - if (s != NULL) - printf("NOW LEXING %s:%d ...\n", s->filename, s->line); -} // print_debug_lexing_position -#else -#define print_debug_lexing_position(s) -#endif - -typedef struct Context -{ - int isfail; - int out_of_memory; - char failstr[256]; - int recursion_count; - int asm_comments; - int parsing_pragma; - Conditional *conditional_pool; - IncludeState *include_stack; - IncludeState *include_pool; - Define *define_hashtable[256]; - Define *define_pool; - Define *file_macro; - Define *line_macro; - StringCache *filename_cache; - MOJOSHADER_includeOpen open_callback; - MOJOSHADER_includeClose close_callback; - MOJOSHADER_malloc malloc; - MOJOSHADER_free free; - void *malloc_data; -} Context; - - -// Convenience functions for allocators... - -static inline void out_of_memory(Context *ctx) -{ - ctx->out_of_memory = 1; -} // out_of_memory - -static inline void *Malloc(Context *ctx, const size_t len) -{ - void *retval = ctx->malloc((int) len, ctx->malloc_data); - if (retval == NULL) - out_of_memory(ctx); - return retval; -} // Malloc - -static inline void Free(Context *ctx, void *ptr) -{ - ctx->free(ptr, ctx->malloc_data); -} // Free - -static void *MallocBridge(int bytes, void *data) -{ - return Malloc((Context *) data, (size_t) bytes); -} // MallocBridge - -static void FreeBridge(void *ptr, void *data) -{ - Free((Context *) data, ptr); -} // FreeBridge - -static inline char *StrDup(Context *ctx, const char *str) -{ - char *retval = (char *) Malloc(ctx, strlen(str) + 1); - if (retval != NULL) - strcpy(retval, str); - return retval; -} // StrDup - -static void failf(Context *ctx, const char *fmt, ...) ISPRINTF(2,3); -static void failf(Context *ctx, const char *fmt, ...) -{ - ctx->isfail = 1; - va_list ap; - va_start(ap, fmt); - vsnprintf(ctx->failstr, sizeof (ctx->failstr), fmt, ap); - va_end(ap); -} // failf - -static inline void fail(Context *ctx, const char *reason) -{ - failf(ctx, "%s", reason); -} // fail - - -#if DEBUG_TOKENIZER -void MOJOSHADER_print_debug_token(const char *subsystem, const char *token, - const unsigned int tokenlen, - const Token tokenval) -{ - printf("%s TOKEN: \"", subsystem); - unsigned int i; - for (i = 0; i < tokenlen; i++) - { - if (token[i] == '\n') - printf("\\n"); - else if (token[i] == '\\') - printf("\\\\"); - else - printf("%c", token[i]); - } // for - printf("\" ("); - switch (tokenval) - { - #define TOKENCASE(x) case x: printf("%s", #x); break - TOKENCASE(TOKEN_UNKNOWN); - TOKENCASE(TOKEN_IDENTIFIER); - TOKENCASE(TOKEN_INT_LITERAL); - TOKENCASE(TOKEN_FLOAT_LITERAL); - TOKENCASE(TOKEN_STRING_LITERAL); - TOKENCASE(TOKEN_ADDASSIGN); - TOKENCASE(TOKEN_SUBASSIGN); - TOKENCASE(TOKEN_MULTASSIGN); - TOKENCASE(TOKEN_DIVASSIGN); - TOKENCASE(TOKEN_MODASSIGN); - TOKENCASE(TOKEN_XORASSIGN); - TOKENCASE(TOKEN_ANDASSIGN); - TOKENCASE(TOKEN_ORASSIGN); - TOKENCASE(TOKEN_INCREMENT); - TOKENCASE(TOKEN_DECREMENT); - TOKENCASE(TOKEN_RSHIFT); - TOKENCASE(TOKEN_LSHIFT); - TOKENCASE(TOKEN_ANDAND); - TOKENCASE(TOKEN_OROR); - TOKENCASE(TOKEN_LEQ); - TOKENCASE(TOKEN_GEQ); - TOKENCASE(TOKEN_EQL); - TOKENCASE(TOKEN_NEQ); - TOKENCASE(TOKEN_HASH); - TOKENCASE(TOKEN_HASHHASH); - TOKENCASE(TOKEN_PP_INCLUDE); - TOKENCASE(TOKEN_PP_LINE); - TOKENCASE(TOKEN_PP_DEFINE); - TOKENCASE(TOKEN_PP_UNDEF); - TOKENCASE(TOKEN_PP_IF); - TOKENCASE(TOKEN_PP_IFDEF); - TOKENCASE(TOKEN_PP_IFNDEF); - TOKENCASE(TOKEN_PP_ELSE); - TOKENCASE(TOKEN_PP_ELIF); - TOKENCASE(TOKEN_PP_ENDIF); - TOKENCASE(TOKEN_PP_ERROR); - TOKENCASE(TOKEN_PP_PRAGMA); - TOKENCASE(TOKEN_INCOMPLETE_COMMENT); - TOKENCASE(TOKEN_BAD_CHARS); - TOKENCASE(TOKEN_SINGLE_COMMENT); - TOKENCASE(TOKEN_MULTI_COMMENT); - TOKENCASE(TOKEN_EOI); - TOKENCASE(TOKEN_PREPROCESSING_ERROR); - #undef TOKENCASE - - case ((Token) '\n'): - printf("'\\n'"); - break; - - case ((Token) '\\'): - printf("'\\\\'"); - break; - - default: - assert(((int)tokenval) < 256); - printf("'%c'", (char) tokenval); - break; - } // switch - printf(")\n"); -} // MOJOSHADER_print_debug_token -#endif - - - -#if !MOJOSHADER_FORCE_INCLUDE_CALLBACKS - -#ifdef _WIN32 -#define WIN32_LEAN_AND_MEAN 1 -#include // GL headers need this for WINGDIAPI definition. -#else -#include -#include -#include -#endif - -int MOJOSHADER_internal_include_open(MOJOSHADER_includeType inctype, - const char *fname, const char *parent, - const char **outdata, - unsigned int *outbytes, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *d) -{ -#ifdef _WIN32 - WCHAR wpath[MAX_PATH]; - if (!MultiByteToWideChar(CP_UTF8, 0, fname, -1, wpath, MAX_PATH)) - return 0; - - const DWORD share = FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE; - const HANDLE handle = CreateFileW(wpath, FILE_GENERIC_READ, share, - NULL, OPEN_EXISTING, NULL, NULL); - if (handle == INVALID_HANDLE_VALUE) - return 0; - - const DWORD fileSize = GetFileSize(handle, NULL); - if (fileSize == INVALID_FILE_SIZE) - { - CloseHandle(handle); - return 0; - } // if - - char *data = (char *) m(fileSize, d); - if (data == NULL) - { - CloseHandle(handle); - return 0; - } // if - - DWORD readLength = 0; - if (!ReadFile(handle, data, fileSize, &readLength, NULL)) - { - CloseHandle(handle); - f(data, d); - return 0; - } // if - - CloseHandle(handle); - - if (readLength != fileSize) - { - f(data, d); - return 0; - } // if - *outdata = data; - *outbytes = fileSize; - return 1; -#else - struct stat statbuf; - if (stat(fname, &statbuf) == -1) - return 0; - char *data = (char *) m(statbuf.st_size, d); - if (data == NULL) - return 0; - const int fd = open(fname, O_RDONLY); - if (fd == -1) - { - f(data, d); - return 0; - } // if - if (read(fd, data, statbuf.st_size) != statbuf.st_size) - { - f(data, d); - close(fd); - return 0; - } // if - close(fd); - *outdata = data; - *outbytes = (unsigned int) statbuf.st_size; - return 1; -#endif -} // MOJOSHADER_internal_include_open - - -void MOJOSHADER_internal_include_close(const char *data, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d) -{ - f((void *) data, d); -} // MOJOSHADER_internal_include_close -#endif // !MOJOSHADER_FORCE_INCLUDE_CALLBACKS - - -// !!! FIXME: maybe use these pool magic elsewhere? -// !!! FIXME: maybe just get rid of this? (maybe the fragmentation isn't a big deal?) - -// Pool stuff... -// ugh, I hate this macro salsa. -#define FREE_POOL(type, poolname) \ - static void free_##poolname##_pool(Context *ctx) { \ - type *item = ctx->poolname##_pool; \ - while (item != NULL) { \ - type *next = item->next; \ - Free(ctx, item); \ - item = next; \ - } \ - } - -#define GET_POOL(type, poolname) \ - static type *get_##poolname(Context *ctx) { \ - type *retval = ctx->poolname##_pool; \ - if (retval != NULL) \ - ctx->poolname##_pool = retval->next; \ - else \ - retval = (type *) Malloc(ctx, sizeof (type)); \ - if (retval != NULL) \ - memset(retval, '\0', sizeof (type)); \ - return retval; \ - } - -#define PUT_POOL(type, poolname) \ - static void put_##poolname(Context *ctx, type *item) { \ - item->next = ctx->poolname##_pool; \ - ctx->poolname##_pool = item; \ - } - -#define IMPLEMENT_POOL(type, poolname) \ - FREE_POOL(type, poolname) \ - GET_POOL(type, poolname) \ - PUT_POOL(type, poolname) - -IMPLEMENT_POOL(Conditional, conditional) -IMPLEMENT_POOL(IncludeState, include) -IMPLEMENT_POOL(Define, define) - - -// Preprocessor define hashtable stuff... - -// !!! FIXME: why isn't this using mojoshader_common.c's code? - -// this is djb's xor hashing function. -static inline uint32 hash_string_djbxor(const char *sym) -{ - register uint32 hash = 5381; - while (*sym) - hash = ((hash << 5) + hash) ^ *(sym++); - return hash; -} // hash_string_djbxor - -static inline uint8 hash_define(const char *sym) -{ - return (uint8) hash_string_djbxor(sym); -} // hash_define - - -static int add_define(Context *ctx, const char *sym, const char *val, - char **parameters, int paramcount) -{ - const uint8 hash = hash_define(sym); - Define *bucket = ctx->define_hashtable[hash]; - while (bucket) - { - if (strcmp(bucket->identifier, sym) == 0) - { - failf(ctx, "'%s' already defined", sym); // !!! FIXME: warning? - // !!! FIXME: gcc reports the location of previous #define here. - return 0; - } // if - bucket = bucket->next; - } // while - - bucket = get_define(ctx); - if (bucket == NULL) - return 0; - - bucket->definition = val; - bucket->original = NULL; - bucket->identifier = sym; - bucket->parameters = (const char **) parameters; - bucket->paramcount = paramcount; - bucket->next = ctx->define_hashtable[hash]; - ctx->define_hashtable[hash] = bucket; - return 1; -} // add_define - - -static void free_define(Context *ctx, Define *def) -{ - if (def != NULL) - { - int i; - for (i = 0; i < def->paramcount; i++) - Free(ctx, (void *) def->parameters[i]); - Free(ctx, (void *) def->parameters); - Free(ctx, (void *) def->identifier); - Free(ctx, (void *) def->definition); - Free(ctx, (void *) def->original); - put_define(ctx, def); - } // if -} // free_define - - -static int remove_define(Context *ctx, const char *sym) -{ - const uint8 hash = hash_define(sym); - Define *bucket = ctx->define_hashtable[hash]; - Define *prev = NULL; - while (bucket) - { - if (strcmp(bucket->identifier, sym) == 0) - { - if (prev == NULL) - ctx->define_hashtable[hash] = bucket->next; - else - prev->next = bucket->next; - free_define(ctx, bucket); - return 1; - } // if - prev = bucket; - bucket = bucket->next; - } // while - - return 0; -} // remove_define - - -static const Define *find_define(Context *ctx, const char *sym) -{ - const uint8 hash = hash_define(sym); - Define *bucket = ctx->define_hashtable[hash]; - while (bucket) - { - if (strcmp(bucket->identifier, sym) == 0) - return bucket; - bucket = bucket->next; - } // while - - const uint8 filestrhash = 67; - assert(hash_define("__FILE__") == filestrhash); - - const uint8 linestrhash = 75; - assert(hash_define("__LINE__") == linestrhash); - - if ( (hash == filestrhash) && (ctx->file_macro) && (strcmp(sym, "__FILE__") == 0) ) - { - Free(ctx, (char *) ctx->file_macro->definition); - const IncludeState *state = ctx->include_stack; - const char *fname = state ? state->filename : ""; - const size_t len = strlen(fname) + 2; - char *str = (char *) Malloc(ctx, len); - if (!str) - return NULL; - str[0] = '\"'; - memcpy(str + 1, fname, len - 2); - str[len - 1] = '\"'; - ctx->file_macro->definition = str; - return ctx->file_macro; - } // if - - else if ( (hash == linestrhash) && (ctx->line_macro) && (strcmp(sym, "__LINE__") == 0) ) - { - Free(ctx, (char *) ctx->line_macro->definition); - const IncludeState *state = ctx->include_stack; - const size_t bufsize = 32; - char *str = (char *) Malloc(ctx, bufsize); - if (!str) - return 0; - - const size_t len = snprintf(str, bufsize, "%u", state->line); - assert(len < bufsize); (void) len; - ctx->line_macro->definition = str; - return ctx->line_macro; - } // else - - return NULL; -} // find_define - - -static const Define *find_define_by_token(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - assert(state->tokenval == TOKEN_IDENTIFIER); - char *sym = (char *) alloca(state->tokenlen+1); - memcpy(sym, state->token, state->tokenlen); - sym[state->tokenlen] = '\0'; - return find_define(ctx, sym); -} // find_define_by_token - - -static const Define *find_macro_arg(const IncludeState *state, - const Define *defines) -{ - const Define *def = NULL; - char *sym = (char *) alloca(state->tokenlen + 1); - memcpy(sym, state->token, state->tokenlen); - sym[state->tokenlen] = '\0'; - - for (def = defines; def != NULL; def = def->next) - { - assert(def->parameters == NULL); // args can't have args! - assert(def->paramcount == 0); // args can't have args! - if (strcmp(def->identifier, sym) == 0) - break; - } // while - - return def; -} // find_macro_arg - - -static void put_all_defines(Context *ctx) -{ - size_t i; - for (i = 0; i < STATICARRAYLEN(ctx->define_hashtable); i++) - { - Define *bucket = ctx->define_hashtable[i]; - ctx->define_hashtable[i] = NULL; - while (bucket) - { - Define *next = bucket->next; - free_define(ctx, bucket); - bucket = next; - } // while - } // for -} // put_all_defines - - -static int push_source(Context *ctx, const char *fname, const char *source, - unsigned int srclen, unsigned int linenum, - MOJOSHADER_includeClose close_callback) -{ - IncludeState *state = get_include(ctx); - if (state == NULL) - return 0; - - if (fname != NULL) - { - state->filename = stringcache(ctx->filename_cache, fname); - if (state->filename == NULL) - { - put_include(ctx, state); - return 0; - } // if - } // if - - state->close_callback = close_callback; - state->source_base = source; - state->source = source; - state->token = source; - state->tokenval = ((Token) '\n'); - state->orig_length = srclen; - state->bytes_left = srclen; - state->line = linenum; - state->next = ctx->include_stack; - state->asm_comments = ctx->asm_comments; - - print_debug_lexing_position(state); - - ctx->include_stack = state; - - return 1; -} // push_source - - -static void pop_source(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - assert(state != NULL); // more pops than pushes! - if (state == NULL) - return; - - if (state->close_callback) - { - state->close_callback(state->source_base, ctx->malloc, - ctx->free, ctx->malloc_data); - } // if - - // state->filename is a pointer to the filename cache; don't free it here! - - Conditional *cond = state->conditional_stack; - while (cond) - { - Conditional *next = cond->next; - put_conditional(ctx, cond); - cond = next; - } // while - - ctx->include_stack = state->next; - - print_debug_lexing_position(ctx->include_stack); - - put_include(ctx, state); -} // pop_source - - -static void close_define_include(const char *data, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d) -{ - f((void *) data, d); -} // close_define_include - - -Preprocessor *preprocessor_start(const char *fname, const char *source, - unsigned int sourcelen, - MOJOSHADER_includeOpen open_callback, - MOJOSHADER_includeClose close_callback, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, int asm_comments, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - int okay = 1; - unsigned int i = 0; - - // the preprocessor is internal-only, so we verify all these are != NULL. - assert(m != NULL); - assert(f != NULL); - - Context *ctx = (Context *) m(sizeof (Context), d); - if (ctx == NULL) - return NULL; - - memset(ctx, '\0', sizeof (Context)); - ctx->malloc = m; - ctx->free = f; - ctx->malloc_data = d; - ctx->open_callback = open_callback; - ctx->close_callback = close_callback; - ctx->asm_comments = asm_comments; - - ctx->filename_cache = stringcache_create(MallocBridge, FreeBridge, ctx); - okay = ((okay) && (ctx->filename_cache != NULL)); - - ctx->file_macro = get_define(ctx); - okay = ((okay) && (ctx->file_macro != NULL)); - if ((okay) && (ctx->file_macro)) - okay = ((ctx->file_macro->identifier = StrDup(ctx, "__FILE__")) != 0); - - ctx->line_macro = get_define(ctx); - okay = ((okay) && (ctx->line_macro != NULL)); - if ((okay) && (ctx->line_macro)) - okay = ((ctx->line_macro->identifier = StrDup(ctx, "__LINE__")) != 0); - - // let the usual preprocessor parser sort these out. - char *define_include = NULL; - unsigned int define_include_len = 0; - if ((okay) && (define_count > 0)) - { - Buffer *predefbuf = buffer_create(256, MallocBridge, FreeBridge, ctx); - okay = okay && (predefbuf != NULL); - for (i = 0; okay && (i < define_count); i++) - { - okay = okay && buffer_append_fmt(predefbuf, "#define %s %s\n", - defines[i].identifier, defines[i].definition); - } // for - - define_include_len = buffer_size(predefbuf); - if (define_include_len > 0) - { - define_include = buffer_flatten(predefbuf); - okay = okay && (define_include != NULL); - } // if - buffer_destroy(predefbuf); - } // if - - if ((okay) && (!push_source(ctx,fname,source,sourcelen,1,NULL))) - okay = 0; - - if ((okay) && (define_include_len > 0)) - { - assert(define_include != NULL); - okay = push_source(ctx, "", define_include, - define_include_len, 1, close_define_include); - } // if - - if (!okay) - { - preprocessor_end((Preprocessor *) ctx); - return NULL; - } // if - - return (Preprocessor *) ctx; -} // preprocessor_start - - -void preprocessor_end(Preprocessor *_ctx) -{ - Context *ctx = (Context *) _ctx; - if (ctx == NULL) - return; - - while (ctx->include_stack != NULL) - pop_source(ctx); - - put_all_defines(ctx); - - if (ctx->filename_cache != NULL) - stringcache_destroy(ctx->filename_cache); - - free_define(ctx, ctx->file_macro); - free_define(ctx, ctx->line_macro); - free_define_pool(ctx); - free_conditional_pool(ctx); - free_include_pool(ctx); - - Free(ctx, ctx); -} // preprocessor_end - - -int preprocessor_outofmemory(Preprocessor *_ctx) -{ - Context *ctx = (Context *) _ctx; - return ctx->out_of_memory; -} // preprocessor_outofmemory - - -static inline void pushback(IncludeState *state) -{ - #if DEBUG_PREPROCESSOR - printf("PREPROCESSOR PUSHBACK\n"); - #endif - assert(!state->pushedback); - state->pushedback = 1; -} // pushback - - -static Token lexer(IncludeState *state) -{ - if (!state->pushedback) - return preprocessor_lexer(state); - state->pushedback = 0; - return state->tokenval; -} // lexer - - -// !!! FIXME: parsing fails on preprocessor directives should skip rest of line. -static int require_newline(IncludeState *state) -{ - const Token token = lexer(state); - pushback(state); // rewind no matter what. - return ( (token == TOKEN_INCOMPLETE_COMMENT) || // call it an eol. - (token == ((Token) '\n')) || (token == TOKEN_EOI) ); -} // require_newline - -// !!! FIXME: didn't we implement this by hand elsewhere? -static int token_to_int(IncludeState *state) -{ - assert(state->tokenval == TOKEN_INT_LITERAL); - char *buf = (char *) alloca(state->tokenlen+1); - memcpy(buf, state->token, state->tokenlen); - buf[state->tokenlen] = '\0'; - return atoi(buf); -} // token_to_int - - -static void handle_pp_include(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - Token token = lexer(state); - MOJOSHADER_includeType incltype; - char *filename = NULL; - int bogus = 0; - - if (token == TOKEN_STRING_LITERAL) - incltype = MOJOSHADER_INCLUDETYPE_LOCAL; - else if (token == ((Token) '<')) - { - incltype = MOJOSHADER_INCLUDETYPE_SYSTEM; - // can't use lexer, since every byte between the < > pair is - // considered part of the filename. :/ - while (!bogus) - { - if ( !(bogus = (state->bytes_left == 0)) ) - { - const char ch = *state->source; - if ( !(bogus = ((ch == '\r') || (ch == '\n'))) ) - { - state->source++; - state->bytes_left--; - - if (ch == '>') - break; - } // if - } // if - } // while - } // else if - else - { - bogus = 1; - } // else - - if (!bogus) - { - state->token++; // skip '<' or '\"'... - const unsigned int len = ((unsigned int) (state->source-state->token)); - filename = (char *) alloca(len); - memcpy(filename, state->token, len-1); - filename[len-1] = '\0'; - bogus = !require_newline(state); - } // if - - if (bogus) - { - fail(ctx, "Invalid #include directive"); - return; - } // else - - const char *newdata = NULL; - unsigned int newbytes = 0; - if ((ctx->open_callback == NULL) || (ctx->close_callback == NULL)) - { - fail(ctx, "Saw #include, but no include callbacks defined"); - return; - } // if - - if (!ctx->open_callback(incltype, filename, state->source_base, - &newdata, &newbytes, ctx->malloc, - ctx->free, ctx->malloc_data)) - { - fail(ctx, "Include callback failed"); // !!! FIXME: better error - return; - } // if - - MOJOSHADER_includeClose callback = ctx->close_callback; - if (!push_source(ctx, filename, newdata, newbytes, 1, callback)) - { - assert(ctx->out_of_memory); - ctx->close_callback(newdata, ctx->malloc, ctx->free, ctx->malloc_data); - } // if -} // handle_pp_include - - -static void handle_pp_line(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - char *filename = NULL; - int linenum = 0; - int bogus = 0; - - if (lexer(state) != TOKEN_INT_LITERAL) - bogus = 1; - else - linenum = token_to_int(state); - - if (!bogus) - { - Token t = lexer(state); - if (t == ((Token) '\n')) - { - state->line = linenum; - return; - } - bogus = (t != TOKEN_STRING_LITERAL); - } - - if (!bogus) - { - state->token++; // skip '\"'... - filename = (char *) alloca(state->tokenlen); - memcpy(filename, state->token, state->tokenlen-1); - filename[state->tokenlen-1] = '\0'; - bogus = !require_newline(state); - } // if - - if (bogus) - { - fail(ctx, "Invalid #line directive"); - return; - } // if - - const char *cached = stringcache(ctx->filename_cache, filename); - state->filename = cached; // may be NULL if stringcache() failed. - state->line = linenum; -} // handle_pp_line - - -static void handle_pp_error(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - char *ptr = ctx->failstr; - int avail = sizeof (ctx->failstr) - 1; - int cpy = 0; - int done = 0; - - const char *prefix = "#error"; - const size_t prefixlen = strlen(prefix); - strcpy(ctx->failstr, prefix); - avail -= prefixlen; - ptr += prefixlen; - - state->report_whitespace = 1; - while (!done) - { - const Token token = lexer(state); - switch (token) - { - case ((Token) '\n'): - state->line--; // make sure error is on the right line. - // fall through! - case TOKEN_INCOMPLETE_COMMENT: - case TOKEN_EOI: - pushback(state); // move back so we catch this later. - done = 1; - break; - - case ((Token) ' '): - if (!avail) - break; - *(ptr++) = ' '; - avail--; - break; - - default: - cpy = Min(avail, (int) state->tokenlen); - if (cpy) - memcpy(ptr, state->token, cpy); - ptr += cpy; - avail -= cpy; - break; - } // switch - } // while - - *ptr = '\0'; - state->report_whitespace = 0; - ctx->isfail = 1; -} // handle_pp_error - - -static void handle_pp_define(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - int done = 0; - - if (lexer(state) != TOKEN_IDENTIFIER) - { - fail(ctx, "Macro names must be identifiers"); - return; - } // if - - char *definition = NULL; - char *sym = (char *) Malloc(ctx, state->tokenlen+1); - if (sym == NULL) - return; - memcpy(sym, state->token, state->tokenlen); - sym[state->tokenlen] = '\0'; - - if (strcmp(sym, "defined") == 0) - { - Free(ctx, sym); - fail(ctx, "'defined' cannot be used as a macro name"); - return; - } // if - - // Don't treat these symbols as special anymore if they get (re)#defined. - if (strcmp(sym, "__FILE__") == 0) - { - if (ctx->file_macro) - { - failf(ctx, "'%s' already defined", sym); // !!! FIXME: warning? - free_define(ctx, ctx->file_macro); - ctx->file_macro = NULL; - } // if - } // if - else if (strcmp(sym, "__LINE__") == 0) - { - if (ctx->line_macro) - { - failf(ctx, "'%s' already defined", sym); // !!! FIXME: warning? - free_define(ctx, ctx->line_macro); - ctx->line_macro = NULL; - } // if - } // else if - - // #define a(b) is different than #define a (b) :( - state->report_whitespace = 1; - lexer(state); - state->report_whitespace = 0; - - int params = 0; - char **idents = NULL; - static const char space = ' '; - - if (state->tokenval == ((Token) ' ')) - lexer(state); // skip it. - else if (state->tokenval == ((Token) '(')) - { - IncludeState saved; - memcpy(&saved, state, sizeof (IncludeState)); - while (1) - { - if (lexer(state) != TOKEN_IDENTIFIER) - break; - params++; - if (lexer(state) != ((Token) ',')) - break; - } // while - - if (state->tokenval != ((Token) ')')) - { - fail(ctx, "syntax error in macro parameter list"); - goto handle_pp_define_failed; - } // if - - if (params == 0) // special case for void args: "#define a() b" - params = -1; - else - { - idents = (char **) Malloc(ctx, sizeof (char *) * params); - if (idents == NULL) - goto handle_pp_define_failed; - - // roll all the way back, do it again. - memcpy(state, &saved, sizeof (IncludeState)); - memset(idents, '\0', sizeof (char *) * params); - - int i; - for (i = 0; i < params; i++) - { - lexer(state); - assert(state->tokenval == TOKEN_IDENTIFIER); - - char *dst = (char *) Malloc(ctx, state->tokenlen+1); - if (dst == NULL) - break; - - memcpy(dst, state->token, state->tokenlen); - dst[state->tokenlen] = '\0'; - idents[i] = dst; - - if (i < (params-1)) - { - lexer(state); - assert(state->tokenval == ((Token) ',')); - } // if - } // for - - if (i != params) - { - assert(ctx->out_of_memory); - goto handle_pp_define_failed; - } // if - - lexer(state); - assert(state->tokenval == ((Token) ')')); - } // else - - lexer(state); - } // else if - - pushback(state); - - Buffer *buffer = buffer_create(128, MallocBridge, FreeBridge, ctx); - - state->report_whitespace = 1; - while ((!done) && (!ctx->out_of_memory)) - { - const Token token = lexer(state); - switch (token) - { - case TOKEN_INCOMPLETE_COMMENT: - case TOKEN_EOI: - pushback(state); // move back so we catch this later. - done = 1; - break; - - case ((Token) '\n'): - done = 1; - break; - - case ((Token) ' '): // may not actually point to ' '. - assert(buffer_size(buffer) > 0); - buffer_append(buffer, &space, 1); - break; - - default: - buffer_append(buffer, state->token, state->tokenlen); - break; - } // switch - } // while - state->report_whitespace = 0; - - size_t buflen = buffer_size(buffer) + 1; - if (!ctx->out_of_memory) - definition = buffer_flatten(buffer); - - buffer_destroy(buffer); - - if (ctx->out_of_memory) - goto handle_pp_define_failed; - - int hashhash_error = 0; - if ((buflen > 2) && (definition[0] == '#') && (definition[1] == '#')) - { - hashhash_error = 1; - buflen -= 2; - memmove(definition, definition + 2, buflen); - } // if - - if (buflen > 2) - { - char *ptr = (definition + buflen) - 2; - if (*ptr == ' ') - { - ptr--; - buflen--; - } // if - if ((buflen > 2) && (ptr[0] == '#') && (ptr[-1] == '#')) - { - hashhash_error = 1; - buflen -= 2; - ptr[-1] = '\0'; - } // if - } // if - - if (hashhash_error) - fail(ctx, "'##' cannot appear at either end of a macro expansion"); - - assert(done); - - if (!add_define(ctx, sym, definition, idents, params)) - goto handle_pp_define_failed; - - return; - -handle_pp_define_failed: - Free(ctx, sym); - Free(ctx, definition); - if (idents != NULL) - { - while (params--) - Free(ctx, idents[params]); - } // if - Free(ctx, idents); -} // handle_pp_define - - -static void handle_pp_undef(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - - if (lexer(state) != TOKEN_IDENTIFIER) - { - fail(ctx, "Macro names must be indentifiers"); - return; - } // if - - char *sym = (char *) alloca(state->tokenlen+1); - memcpy(sym, state->token, state->tokenlen); - sym[state->tokenlen] = '\0'; - - if (!require_newline(state)) - { - fail(ctx, "Invalid #undef directive"); - return; - } // if - - if (strcmp(sym, "__FILE__") == 0) - { - if (ctx->file_macro) - { - failf(ctx, "undefining \"%s\"", sym); // !!! FIXME: should be warning. - free_define(ctx, ctx->file_macro); - ctx->file_macro = NULL; - } // if - } // if - else if (strcmp(sym, "__LINE__") == 0) - { - if (ctx->line_macro) - { - failf(ctx, "undefining \"%s\"", sym); // !!! FIXME: should be warning. - free_define(ctx, ctx->line_macro); - ctx->line_macro = NULL; - } // if - } // if - - remove_define(ctx, sym); -} // handle_pp_undef - - -static Conditional *_handle_pp_ifdef(Context *ctx, const Token type) -{ - IncludeState *state = ctx->include_stack; - - assert((type == TOKEN_PP_IFDEF) || (type == TOKEN_PP_IFNDEF)); - - if (lexer(state) != TOKEN_IDENTIFIER) - { - fail(ctx, "Macro names must be indentifiers"); - return NULL; - } // if - - char *sym = (char *) alloca(state->tokenlen+1); - memcpy(sym, state->token, state->tokenlen); - sym[state->tokenlen] = '\0'; - - if (!require_newline(state)) - { - if (type == TOKEN_PP_IFDEF) - fail(ctx, "Invalid #ifdef directive"); - else - fail(ctx, "Invalid #ifndef directive"); - return NULL; - } // if - - Conditional *conditional = get_conditional(ctx); - assert((conditional != NULL) || (ctx->out_of_memory)); - if (conditional == NULL) - return NULL; - - Conditional *parent = state->conditional_stack; - const int found = (find_define(ctx, sym) != NULL); - const int chosen = (type == TOKEN_PP_IFDEF) ? found : !found; - const int skipping = ( (((parent) && (parent->skipping))) || (!chosen) ); - - conditional->type = type; - conditional->linenum = state->line - 1; - conditional->skipping = skipping; - conditional->chosen = chosen; - conditional->next = parent; - state->conditional_stack = conditional; - return conditional; -} // _handle_pp_ifdef - - -static inline void handle_pp_ifdef(Context *ctx) -{ - _handle_pp_ifdef(ctx, TOKEN_PP_IFDEF); -} // handle_pp_ifdef - - -static inline void handle_pp_ifndef(Context *ctx) -{ - _handle_pp_ifdef(ctx, TOKEN_PP_IFNDEF); -} // handle_pp_ifndef - - -static int replace_and_push_macro(Context *ctx, const Define *def, - const Define *params) -{ - char *final = NULL; - - // We push the #define and lex it, building a buffer with argument - // replacement, stringification, and concatenation. - Buffer *buffer = buffer_create(128, MallocBridge, FreeBridge, ctx); - if (buffer == NULL) - return 0; - - IncludeState *state = ctx->include_stack; - if (!push_source(ctx, state->filename, def->definition, - strlen(def->definition), state->line, NULL)) - { - buffer_destroy(buffer); - return 0; - } // if - - state = ctx->include_stack; - while (lexer(state) != TOKEN_EOI) - { - int wantorig = 0; - const Define *arg = NULL; - - // put a space between tokens if we're not concatenating. - if (state->tokenval == TOKEN_HASHHASH) // concatenate? - { - wantorig = 1; - lexer(state); - assert(state->tokenval != TOKEN_EOI); - } // if - else - { - if (buffer_size(buffer) > 0) - { - if (!buffer_append(buffer, " ", 1)) - goto replace_and_push_macro_failed; - } // if - } // else - - const char *data = state->token; - unsigned int len = state->tokenlen; - - if (state->tokenval == TOKEN_HASH) // stringify? - { - lexer(state); - assert(state->tokenval != TOKEN_EOI); // we checked for this. - - if (!buffer_append(buffer, "\"", 1)) - goto replace_and_push_macro_failed; - - if (state->tokenval == TOKEN_IDENTIFIER) - { - arg = find_macro_arg(state, params); - if (arg != NULL) - { - data = arg->original; - len = strlen(data); - } // if - } // if - - if (!buffer_append(buffer, data, len)) - goto replace_and_push_macro_failed; - - if (!buffer_append(buffer, "\"", 1)) - goto replace_and_push_macro_failed; - - continue; - } // if - - if (state->tokenval == TOKEN_IDENTIFIER) - { - arg = find_macro_arg(state, params); - if (arg != NULL) - { - if (!wantorig) - { - wantorig = (lexer(state) == TOKEN_HASHHASH); - pushback(state); - } // if - data = wantorig ? arg->original : arg->definition; - len = strlen(data); - } // if - } // if - - if (!buffer_append(buffer, data, len)) - goto replace_and_push_macro_failed; - } // while - - final = buffer_flatten(buffer); - if (!final) - goto replace_and_push_macro_failed; - - buffer_destroy(buffer); - pop_source(ctx); // ditch the macro. - state = ctx->include_stack; - if (!push_source(ctx, state->filename, final, strlen(final), state->line, - close_define_include)) - { - Free(ctx, final); - return 0; - } // if - - return 1; - -replace_and_push_macro_failed: - pop_source(ctx); - buffer_destroy(buffer); - return 0; -} // replace_and_push_macro - - -static int handle_macro_args(Context *ctx, const char *sym, const Define *def) -{ - int retval = 0; - IncludeState *state = ctx->include_stack; - Define *params = NULL; - const int expected = (def->paramcount < 0) ? 0 : def->paramcount; - int saw_params = 0; - IncludeState saved; // can't pushback, we need the original token. - memcpy(&saved, state, sizeof (IncludeState)); - if (lexer(state) != ((Token) '(')) - { - memcpy(state, &saved, sizeof (IncludeState)); - goto handle_macro_args_failed; // gcc abandons replacement, too. - } // if - - state->report_whitespace = 1; - - int void_call = 0; - int paren = 1; - while (paren > 0) - { - Buffer *buffer = buffer_create(128, MallocBridge, FreeBridge, ctx); - Buffer *origbuffer = buffer_create(128, MallocBridge, FreeBridge, ctx); - - Token t = lexer(state); - - assert(!void_call); - - while (1) - { - const char *origexpr = state->token; - unsigned int origexprlen = state->tokenlen; - const char *expr = state->token; - unsigned int exprlen = state->tokenlen; - - if (t == ((Token) '(')) - paren++; - - else if (t == ((Token) ')')) - { - paren--; - if (paren < 1) // end of macro? - break; - } // else if - - else if (t == ((Token) ',')) - { - if (paren == 1) // new macro arg? - break; - } // else if - - else if (t == ((Token) ' ')) - { - // don't add whitespace to the start, so we recognize - // void calls correctly. - origexpr = expr = " "; - origexprlen = (buffer_size(origbuffer) == 0) ? 0 : 1; - exprlen = (buffer_size(buffer) == 0) ? 0 : 1; - } // else if - - else if (t == TOKEN_IDENTIFIER) - { - const Define *def = find_define_by_token(ctx); - // don't replace macros with arguments so they replace correctly, later. - if ((def) && (def->paramcount == 0)) - { - expr = def->definition; - exprlen = strlen(def->definition); - } // if - } // else if - - else if ((t == TOKEN_INCOMPLETE_COMMENT) || (t == TOKEN_EOI)) - { - pushback(state); - fail(ctx, "Unterminated macro list"); - goto handle_macro_args_failed; - } // else if - - assert(expr != NULL); - - if (!buffer_append(buffer, expr, exprlen)) - goto handle_macro_args_failed; - - if (!buffer_append(origbuffer, origexpr, origexprlen)) - goto handle_macro_args_failed; - - t = lexer(state); - } // while - - if (buffer_size(buffer) == 0) - void_call = ((saw_params == 0) && (paren == 0)); - - if (saw_params < expected) - { - const int origdeflen = (int) buffer_size(origbuffer); - char *origdefinition = buffer_flatten(origbuffer); - const int deflen = (int) buffer_size(buffer); - char *definition = buffer_flatten(buffer); - Define *p = get_define(ctx); - if ((!origdefinition) || (!definition) || (!p)) - { - Free(ctx, origdefinition); - Free(ctx, definition); - buffer_destroy(origbuffer); - buffer_destroy(buffer); - free_define(ctx, p); - goto handle_macro_args_failed; - } // if - - // trim any whitespace from the end of the string... - int i; - for (i = deflen - 1; i >= 0; i--) - { - if (definition[i] == ' ') - definition[i] = '\0'; - else - break; - } // for - - for (i = origdeflen - 1; i >= 0; i--) - { - if (origdefinition[i] == ' ') - origdefinition[i] = '\0'; - else - break; - } // for - - p->identifier = def->parameters[saw_params]; - p->definition = definition; - p->original = origdefinition; - p->next = params; - params = p; - } // if - - buffer_destroy(buffer); - buffer_destroy(origbuffer); - saw_params++; - } // while - - assert(paren == 0); - - // "a()" should match "#define a()" ... - if ((expected == 0) && (saw_params == 1) && (void_call)) - { - assert(params == NULL); - saw_params = 0; - } // if - - if (saw_params != expected) - { - failf(ctx, "macro '%s' passed %d arguments, but requires %d", - sym, saw_params, expected); - goto handle_macro_args_failed; - } // if - - // this handles arg replacement and the '##' and '#' operators. - retval = replace_and_push_macro(ctx, def, params); - -handle_macro_args_failed: - while (params) - { - Define *next = params->next; - params->identifier = NULL; - free_define(ctx, params); - params = next; - } // while - - state->report_whitespace = 0; - return retval; -} // handle_macro_args - - -static int handle_pp_identifier(Context *ctx) -{ - if (ctx->recursion_count++ >= 256) // !!! FIXME: gcc can figure this out. - { - fail(ctx, "Recursing macros"); - return 0; - } // if - - IncludeState *state = ctx->include_stack; - const char *fname = state->filename; - const unsigned int line = state->line; - char *sym = (char *) alloca(state->tokenlen+1); - memcpy(sym, state->token, state->tokenlen); - sym[state->tokenlen] = '\0'; - - // Is this identifier #defined? - const Define *def = find_define(ctx, sym); - if (def == NULL) - return 0; // just send the token through unchanged. - else if (def->paramcount != 0) - return handle_macro_args(ctx, sym, def); - - const size_t deflen = strlen(def->definition); - return push_source(ctx, fname, def->definition, deflen, line, NULL); -} // handle_pp_identifier - - -static int find_precedence(const Token token) -{ - // operator precedence, left and right associative... - typedef struct { int precedence; Token token; } Precedence; - static const Precedence ops[] = { - { 0, TOKEN_OROR }, { 1, TOKEN_ANDAND }, { 2, ((Token) '|') }, - { 3, ((Token) '^') }, { 4, ((Token) '&') }, { 5, TOKEN_NEQ }, - { 6, TOKEN_EQL }, { 7, ((Token) '<') }, { 7, ((Token) '>') }, - { 7, TOKEN_LEQ }, { 7, TOKEN_GEQ }, { 8, TOKEN_LSHIFT }, - { 8, TOKEN_RSHIFT }, { 9, ((Token) '-') }, { 9, ((Token) '+') }, - { 10, ((Token) '%') }, { 10, ((Token) '/') }, { 10, ((Token) '*') }, - { 11, TOKEN_PP_UNARY_PLUS }, { 11, TOKEN_PP_UNARY_MINUS }, - { 11, ((Token) '!') }, { 11, ((Token) '~') }, - }; - - size_t i; - for (i = 0; i < STATICARRAYLEN(ops); i++) - { - if (ops[i].token == token) - return ops[i].precedence; - } // for - - return -1; -} // find_precedence - -// !!! FIXME: we're using way too much stack space here... -typedef struct RpnTokens -{ - int isoperator; - int value; -} RpnTokens; - -static long interpret_rpn(const RpnTokens *tokens, int tokencount, int *error) -{ - long stack[128]; - size_t stacksize = 0; - - *error = 1; - - #define NEED_X_TOKENS(x) do { if (stacksize < x) return 0; } while (0) - - #define BINARY_OPERATION(op) do { \ - NEED_X_TOKENS(2); \ - stack[stacksize-2] = stack[stacksize-2] op stack[stacksize-1]; \ - stacksize--; \ - } while (0) - - #define UNARY_OPERATION(op) do { \ - NEED_X_TOKENS(1); \ - stack[stacksize-1] = op stack[stacksize-1]; \ - } while (0) - - while (tokencount-- > 0) - { - if (!tokens->isoperator) - { - assert(stacksize < STATICARRAYLEN(stack)); - stack[stacksize++] = (long) tokens->value; - tokens++; - continue; - } // if - - // operators. - switch (tokens->value) - { - case '!': UNARY_OPERATION(!); break; - case '~': UNARY_OPERATION(~); break; - case TOKEN_PP_UNARY_MINUS: UNARY_OPERATION(-); break; - case TOKEN_PP_UNARY_PLUS: UNARY_OPERATION(+); break; - case TOKEN_OROR: BINARY_OPERATION(||); break; - case TOKEN_ANDAND: BINARY_OPERATION(&&); break; - case '|': BINARY_OPERATION(|); break; - case '^': BINARY_OPERATION(^); break; - case '&': BINARY_OPERATION(&); break; - case TOKEN_NEQ: BINARY_OPERATION(!=); break; - case TOKEN_EQL: BINARY_OPERATION(==); break; - case '<': BINARY_OPERATION(<); break; - case '>': BINARY_OPERATION(>); break; - case TOKEN_LEQ: BINARY_OPERATION(<=); break; - case TOKEN_GEQ: BINARY_OPERATION(>=); break; - case TOKEN_LSHIFT: BINARY_OPERATION(<<); break; - case TOKEN_RSHIFT: BINARY_OPERATION(>>); break; - case '-': BINARY_OPERATION(-); break; - case '+': BINARY_OPERATION(+); break; - case '%': BINARY_OPERATION(%); break; - case '/': BINARY_OPERATION(/); break; - case '*': BINARY_OPERATION(*); break; - default: return 0; - } // switch - - tokens++; - } // while - - #undef NEED_X_TOKENS - #undef BINARY_OPERATION - #undef UNARY_OPERATION - - if (stacksize != 1) - return 0; - - *error = 0; - return stack[0]; -} // interpret_rpn - -// http://en.wikipedia.org/wiki/Shunting_yard_algorithm -// Convert from infix to postfix, then use this for constant folding. -// Everything that parses should fold down to a constant value: any -// identifiers that aren't resolved as macros become zero. Anything we -// don't explicitly expect becomes a parsing error. -// returns 1 (true), 0 (false), or -1 (error) -static int reduce_pp_expression(Context *ctx) -{ - IncludeState *orig_state = ctx->include_stack; - RpnTokens output[128]; - Token stack[64]; - Token previous_token = TOKEN_UNKNOWN; - size_t outputsize = 0; - size_t stacksize = 0; - int matched = 0; - int done = 0; - - #define ADD_TO_OUTPUT(op, val) \ - assert(outputsize < STATICARRAYLEN(output)); \ - output[outputsize].isoperator = op; \ - output[outputsize].value = val; \ - outputsize++; - - #define PUSH_TO_STACK(t) \ - assert(stacksize < STATICARRAYLEN(stack)); \ - stack[stacksize] = t; \ - stacksize++; - - while (!done) - { - IncludeState *state = ctx->include_stack; - Token token = lexer(state); - int isleft = 1; - int precedence = -1; - - if ( (token == ((Token) '!')) || (token == ((Token) '~')) ) - isleft = 0; - else if (token == ((Token) '-')) - { - isleft = ((previous_token == TOKEN_INT_LITERAL) || - (previous_token == ((Token) ')'))); - if (!isleft) - token = TOKEN_PP_UNARY_MINUS; - } // else if - else if (token == ((Token) '+')) - { - isleft = ((previous_token == TOKEN_INT_LITERAL) || - (previous_token == ((Token) ')'))); - if (!isleft) - token = TOKEN_PP_UNARY_PLUS; - } // else if - - if (token != TOKEN_IDENTIFIER) - ctx->recursion_count = 0; - - switch (token) - { - case TOKEN_EOI: - if (state != orig_state) // end of a substate, or the expr? - { - pop_source(ctx); - continue; // substate, go again with the parent state. - } // if - done = 1; // the expression itself is done. - break; - - case ((Token) '\n'): - done = 1; - break; // we're done! - - case TOKEN_IDENTIFIER: - if (handle_pp_identifier(ctx)) - continue; // go again with new IncludeState. - - if ( (state->tokenlen == 7) && - (memcmp(state->token, "defined", 7) == 0) ) - { - token = lexer(state); - const int paren = (token == ((Token) '(')); - if (paren) // gcc doesn't let us nest parens here, either. - token = lexer(state); - if (token != TOKEN_IDENTIFIER) - { - fail(ctx, "operator 'defined' requires an identifier"); - return -1; - } // if - const int found = (find_define_by_token(ctx) != NULL); - - if (paren) - { - if (lexer(state) != ((Token) ')')) - { - fail(ctx, "Unmatched ')'"); - return -1; - } // if - } // if - - ADD_TO_OUTPUT(0, found); - continue; - } // if - - // can't replace identifier with a number? It becomes zero. - token = TOKEN_INT_LITERAL; - ADD_TO_OUTPUT(0, 0); - break; - - case TOKEN_INT_LITERAL: - ADD_TO_OUTPUT(0, token_to_int(state)); - break; - - case ((Token) '('): - PUSH_TO_STACK((Token) '('); - break; - - case ((Token) ')'): - matched = 0; - while (stacksize > 0) - { - const Token t = stack[--stacksize]; - if (t == ((Token) '(')) - { - matched = 1; - break; - } // if - ADD_TO_OUTPUT(1, t); - } // while - - if (!matched) - { - fail(ctx, "Unmatched ')'"); - return -1; - } // if - break; - - default: - precedence = find_precedence(token); - // bogus token, or two operators together. - if (precedence < 0) - { - pushback(state); - fail(ctx, "Invalid expression"); - return -1; - } // if - - else // it's an operator. - { - while (stacksize > 0) - { - const Token t = stack[stacksize-1]; - const int p = find_precedence(t); - if ( (p >= 0) && - ( ((isleft) && (precedence <= p)) || - ((!isleft) && (precedence < p)) ) ) - { - stacksize--; - ADD_TO_OUTPUT(1, t); - } // if - else - { - break; - } // else - } // while - PUSH_TO_STACK(token); - } // else - break; - } // switch - previous_token = token; - } // while - - while (stacksize > 0) - { - const Token t = stack[--stacksize]; - if (t == ((Token) '(')) - { - fail(ctx, "Unmatched ')'"); - return -1; - } // if - ADD_TO_OUTPUT(1, t); - } // while - - #undef ADD_TO_OUTPUT - #undef PUSH_TO_STACK - - // okay, you now have some validated data in reverse polish notation. - #if DEBUG_PREPROCESSOR - printf("PREPROCESSOR EXPRESSION RPN:"); - int i = 0; - for (i = 0; i < outputsize; i++) - { - if (!output[i].isoperator) - printf(" %d", output[i].value); - else - { - switch (output[i].value) - { - case TOKEN_OROR: printf(" ||"); break; - case TOKEN_ANDAND: printf(" &&"); break; - case TOKEN_NEQ: printf(" !="); break; - case TOKEN_EQL: printf(" =="); break; - case TOKEN_LEQ: printf(" <="); break; - case TOKEN_GEQ: printf(" >="); break; - case TOKEN_LSHIFT: printf(" <<"); break; - case TOKEN_RSHIFT: printf(" >>"); break; - case TOKEN_PP_UNARY_PLUS: printf(" +"); break; - case TOKEN_PP_UNARY_MINUS: printf(" -"); break; - default: printf(" %c", output[i].value); break; - } // switch - } // else - } // for - printf("\n"); - #endif - - int error = 0; - const long val = interpret_rpn(output, outputsize, &error); - - #if DEBUG_PREPROCESSOR - printf("PREPROCESSOR RPN RESULT: %ld%s\n", val, error ? " (ERROR)" : ""); - #endif - - if (error) - { - fail(ctx, "Invalid expression"); - return -1; - } // if - - return ((val) ? 1 : 0); -} // reduce_pp_expression - - -static Conditional *handle_pp_if(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - const int result = reduce_pp_expression(ctx); - if (result == -1) - return NULL; - - Conditional *conditional = get_conditional(ctx); - assert((conditional != NULL) || (ctx->out_of_memory)); - if (conditional == NULL) - return NULL; - - Conditional *parent = state->conditional_stack; - const int chosen = result; - const int skipping = ( (((parent) && (parent->skipping))) || (!chosen) ); - - conditional->type = TOKEN_PP_IF; - conditional->linenum = state->line - 1; - conditional->skipping = skipping; - conditional->chosen = chosen; - conditional->next = parent; - state->conditional_stack = conditional; - return conditional; -} // handle_pp_if - - -static void handle_pp_elif(Context *ctx) -{ - const int rc = reduce_pp_expression(ctx); - if (rc == -1) - return; - - IncludeState *state = ctx->include_stack; - Conditional *cond = state->conditional_stack; - if (cond == NULL) - fail(ctx, "#elif without #if"); - else if (cond->type == TOKEN_PP_ELSE) - fail(ctx, "#elif after #else"); - else - { - const Conditional *parent = cond->next; - cond->type = TOKEN_PP_ELIF; - cond->skipping = (parent && parent->skipping) || cond->chosen || !rc; - if (!cond->chosen) - cond->chosen = rc; - } // else -} // handle_pp_elif - - -static void handle_pp_else(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - Conditional *cond = state->conditional_stack; - - if (!require_newline(state)) - fail(ctx, "Invalid #else directive"); - else if (cond == NULL) - fail(ctx, "#else without #if"); - else if (cond->type == TOKEN_PP_ELSE) - fail(ctx, "#else after #else"); - else - { - const Conditional *parent = cond->next; - cond->type = TOKEN_PP_ELSE; - cond->skipping = (parent && parent->skipping) || cond->chosen; - if (!cond->chosen) - cond->chosen = 1; - } // else -} // handle_pp_else - - -static void handle_pp_endif(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - Conditional *cond = state->conditional_stack; - - if (!require_newline(state)) - fail(ctx, "Invalid #endif directive"); - else if (cond == NULL) - fail(ctx, "Unmatched #endif"); - else - { - state->conditional_stack = cond->next; // pop it. - put_conditional(ctx, cond); - } // else -} // handle_pp_endif - - -static void unterminated_pp_condition(Context *ctx) -{ - IncludeState *state = ctx->include_stack; - Conditional *cond = state->conditional_stack; - - // !!! FIXME: report the line number where the #if is, not the EOI. - switch (cond->type) - { - case TOKEN_PP_IF: fail(ctx, "Unterminated #if"); break; - case TOKEN_PP_IFDEF: fail(ctx, "Unterminated #ifdef"); break; - case TOKEN_PP_IFNDEF: fail(ctx, "Unterminated #ifndef"); break; - case TOKEN_PP_ELSE: fail(ctx, "Unterminated #else"); break; - case TOKEN_PP_ELIF: fail(ctx, "Unterminated #elif"); break; - default: assert(0 && "Shouldn't hit this case"); break; - } // switch - - // pop this conditional, we'll report the next error next time... - - state->conditional_stack = cond->next; // pop it. - put_conditional(ctx, cond); -} // unterminated_pp_condition - - -static inline const char *_preprocessor_nexttoken(Preprocessor *_ctx, - unsigned int *_len, Token *_token) -{ - Context *ctx = (Context *) _ctx; - - while (1) - { - if (ctx->isfail) - { - ctx->isfail = 0; - *_token = TOKEN_PREPROCESSING_ERROR; - *_len = strlen(ctx->failstr); - return ctx->failstr; - } // if - - IncludeState *state = ctx->include_stack; - if (state == NULL) - { - *_token = TOKEN_EOI; - *_len = 0; - return NULL; // we're done! - } // if - - const Conditional *cond = state->conditional_stack; - const int skipping = ((cond != NULL) && (cond->skipping)); - - #if !MATCH_MICROSOFT_PREPROCESSOR - state->report_whitespace = 1; - state->report_comments = 1; - #endif - - const Token token = lexer(state); - - #if !MATCH_MICROSOFT_PREPROCESSOR - state->report_whitespace = 0; - state->report_comments = 0; - #endif - - if (token != TOKEN_IDENTIFIER) - ctx->recursion_count = 0; - - if (token == TOKEN_EOI) - { - assert(state->bytes_left == 0); - if (state->conditional_stack != NULL) - { - unterminated_pp_condition(ctx); - continue; // returns an error. - } // if - - pop_source(ctx); - continue; // pick up again after parent's #include line. - } // if - - else if (token == TOKEN_INCOMPLETE_COMMENT) - { - fail(ctx, "Incomplete multiline comment"); - continue; // will return at top of loop. - } // else if - - else if (token == TOKEN_PP_IFDEF) - { - handle_pp_ifdef(ctx); - continue; // get the next thing. - } // else if - - else if (token == TOKEN_PP_IFNDEF) - { - handle_pp_ifndef(ctx); - continue; // get the next thing. - } // else if - - else if (token == TOKEN_PP_IF) - { - handle_pp_if(ctx); - continue; // get the next thing. - } // else if - - else if (token == TOKEN_PP_ELIF) - { - handle_pp_elif(ctx); - continue; // get the next thing. - } // else if - - else if (token == TOKEN_PP_ENDIF) - { - handle_pp_endif(ctx); - continue; // get the next thing. - } // else if - - else if (token == TOKEN_PP_ELSE) - { - handle_pp_else(ctx); - continue; // get the next thing. - } // else if - - // NOTE: Conditionals must be above (skipping) test. - else if (skipping) - continue; // just keep dumping tokens until we get end of block. - - else if (token == TOKEN_PP_INCLUDE) - { - handle_pp_include(ctx); - continue; // will return error or use new top of include_stack. - } // else if - - else if (token == TOKEN_PP_LINE) - { - handle_pp_line(ctx); - continue; // get the next thing. - } // else if - - else if (token == TOKEN_PP_ERROR) - { - handle_pp_error(ctx); - continue; // will return at top of loop. - } // else if - - else if (token == TOKEN_PP_DEFINE) - { - handle_pp_define(ctx); - continue; // will return at top of loop. - } // else if - - else if (token == TOKEN_PP_UNDEF) - { - handle_pp_undef(ctx); - continue; // will return at top of loop. - } // else if - - else if (token == TOKEN_PP_PRAGMA) - { - ctx->parsing_pragma = 1; - } // else if - - if (token == TOKEN_IDENTIFIER) - { - if (handle_pp_identifier(ctx)) - continue; // pushed the include_stack. - } // else if - - // you don't ever see these unless you enable state->report_comments. - else if ((token == TOKEN_SINGLE_COMMENT) || (token == TOKEN_MULTI_COMMENT)) - { - print_debug_lexing_position(state); - } // else if - - else if (token == ((Token) '\n')) - { - print_debug_lexing_position(state); - if (ctx->parsing_pragma) // let this one through. - ctx->parsing_pragma = 0; - else - { - #if MATCH_MICROSOFT_PREPROCESSOR - // preprocessor is line-oriented, nothing else gets newlines. - continue; // get the next thing. - #endif - } // else - } // else if - - assert(!skipping); - *_token = token; - *_len = state->tokenlen; - return state->token; - } // while - - assert(0 && "shouldn't hit this code"); - *_token = TOKEN_UNKNOWN; - *_len = 0; - return NULL; -} // _preprocessor_nexttoken - - -const char *preprocessor_nexttoken(Preprocessor *ctx, unsigned int *len, - Token *token) -{ - const char *retval = _preprocessor_nexttoken(ctx, len, token); - print_debug_token(retval, *len, *token); - return retval; -} // preprocessor_nexttoken - - -const char *preprocessor_sourcepos(Preprocessor *_ctx, unsigned int *pos) -{ - Context *ctx = (Context *) _ctx; - if (ctx->include_stack == NULL) - { - *pos = 0; - return NULL; - } // if - - *pos = ctx->include_stack->line; - return ctx->include_stack->filename; -} // preprocessor_sourcepos - - -static void indent_buffer(Buffer *buffer, int n, const int newline) -{ -#if MATCH_MICROSOFT_PREPROCESSOR - static char spaces[4] = { ' ', ' ', ' ', ' ' }; - if (newline) - { - while (n--) - { - if (!buffer_append(buffer, spaces, sizeof (spaces))) - return; - } // while - } // if - else - { - if (!buffer_append(buffer, spaces, 1)) - return; - } // else -#endif -} // indent_buffer - - -static const MOJOSHADER_preprocessData out_of_mem_data_preprocessor = { - 1, &MOJOSHADER_out_of_mem_error, 0, 0, 0, 0, 0 -}; - - -// public API... - -const MOJOSHADER_preprocessData *MOJOSHADER_preprocess(const char *filename, - const char *source, unsigned int sourcelen, - const MOJOSHADER_preprocessorDefine *defines, - unsigned int define_count, - MOJOSHADER_includeOpen include_open, - MOJOSHADER_includeClose include_close, - MOJOSHADER_malloc m, MOJOSHADER_free f, void *d) -{ - MOJOSHADER_preprocessData *retval = NULL; - Preprocessor *pp = NULL; - ErrorList *errors = NULL; - Buffer *buffer = NULL; - Token token = TOKEN_UNKNOWN; - const char *tokstr = NULL; - int nl = 1; - int indent = 0; - unsigned int len = 0; - char *output = NULL; - int errcount = 0; - size_t total_bytes = 0; - - // !!! FIXME: what's wrong with ENDLINE_STR? - #ifdef _WINDOWS - static const char endline[] = { '\r', '\n' }; - #else - static const char endline[] = { '\n' }; - #endif - - if (!m) m = MOJOSHADER_internal_malloc; - if (!f) f = MOJOSHADER_internal_free; - if (!include_open) include_open = MOJOSHADER_internal_include_open; - if (!include_close) include_close = MOJOSHADER_internal_include_close; - - pp = preprocessor_start(filename, source, sourcelen, - include_open, include_close, - defines, define_count, 0, m, f, d); - if (pp == NULL) - goto preprocess_out_of_mem; - - errors = errorlist_create(MallocBridge, FreeBridge, pp); - if (errors == NULL) - goto preprocess_out_of_mem; - - buffer = buffer_create(4096, MallocBridge, FreeBridge, pp); - if (buffer == NULL) - goto preprocess_out_of_mem; - - while ((tokstr = preprocessor_nexttoken(pp, &len, &token)) != NULL) - { - int isnewline = 0; - - assert(token != TOKEN_EOI); - - if (preprocessor_outofmemory(pp)) - goto preprocess_out_of_mem; - - if (token == ((Token) '\n')) - { - buffer_append(buffer, endline, sizeof (endline)); - isnewline = 1; - } // else if - - #if MATCH_MICROSOFT_PREPROCESSOR - // Microsoft's preprocessor is weird. - // It ignores newlines, and then inserts its own around certain - // tokens. For example, after a semicolon. This allows HLSL code to - // be mostly readable, instead of a stream of tokens. - else if ( (token == ((Token) '}')) || (token == ((Token) ';')) ) - { - if ( (token == ((Token) '}')) && (indent > 0) ) - indent--; - - indent_buffer(buffer, indent, nl); - buffer_append(buffer, tokstr, len); - buffer_append(buffer, endline, sizeof (endline)); - - isnewline = 1; - } // if - - else if (token == ((Token) '{')) - { - buffer_append(buffer, endline, sizeof (endline)); - indent_buffer(buffer, indent, 1); - buffer_append(buffer, "{", 1); - buffer_append(buffer, endline, sizeof (endline)); - indent++; - isnewline = 1; - } // else if - #endif - - else if (token == TOKEN_PREPROCESSING_ERROR) - { - unsigned int pos = 0; - const char *fname = preprocessor_sourcepos(pp, &pos); - errorlist_add(errors, fname, (int) pos, tokstr); - } // else if - - else - { - indent_buffer(buffer, indent, nl); - buffer_append(buffer, tokstr, len); - } // else - - nl = isnewline; - } // while - - assert(token == TOKEN_EOI); - - total_bytes = buffer_size(buffer); - output = buffer_flatten(buffer); - buffer_destroy(buffer); - buffer = NULL; // don't free this pointer again. - - if (output == NULL) - goto preprocess_out_of_mem; - - retval = (MOJOSHADER_preprocessData *) m(sizeof (*retval), d); - if (retval == NULL) - goto preprocess_out_of_mem; - - memset(retval, '\0', sizeof (*retval)); - errcount = errorlist_count(errors); - if (errcount > 0) - { - retval->error_count = errcount; - retval->errors = errorlist_flatten(errors); - if (retval->errors == NULL) - goto preprocess_out_of_mem; - } // if - - retval->output = output; - retval->output_len = total_bytes; - retval->malloc = m; - retval->free = f; - retval->malloc_data = d; - - errorlist_destroy(errors); - preprocessor_end(pp); - return retval; - -preprocess_out_of_mem: - if (retval != NULL) - f(retval->errors, d); - f(retval, d); - f(output, d); - buffer_destroy(buffer); - errorlist_destroy(errors); - preprocessor_end(pp); - return &out_of_mem_data_preprocessor; -} // MOJOSHADER_preprocess - - -void MOJOSHADER_freePreprocessData(const MOJOSHADER_preprocessData *_data) -{ - MOJOSHADER_preprocessData *data = (MOJOSHADER_preprocessData *) _data; - if ((data == NULL) || (data == &out_of_mem_data_preprocessor)) - return; - - MOJOSHADER_free f = (data->free == NULL) ? MOJOSHADER_internal_free : data->free; - void *d = data->malloc_data; - int i; - - f((void *) data->output, d); - - for (i = 0; i < data->error_count; i++) - { - f((void *) data->errors[i].error, d); - f((void *) data->errors[i].filename, d); - } // for - f(data->errors, d); - - f(data, d); -} // MOJOSHADER_freePreprocessData - - -// end of mojoshader_preprocessor.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_vulkan.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_vulkan.c deleted file mode 100644 index d3bc28a1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_vulkan.c +++ /dev/null @@ -1,851 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_internal.h" - -#if SUPPORT_PROFILE_SPIRV - -#define VK_NO_PROTOTYPES -#include "vulkan/vulkan.h" - -#define UBO_BUFFER_SIZE 8000000 // 8MB -#define UBO_ACTUAL_SIZE (UBO_BUFFER_SIZE * 2) // Double so we can "rotate" the buffer and unblock main thread - -// Internal struct defs... - -typedef struct MOJOSHADER_vkShader -{ - const MOJOSHADER_parseData *parseData; - uint16_t tag; - uint32_t refcount; -} MOJOSHADER_vkShader; - -typedef struct MOJOSHADER_vkProgram -{ - VkShaderModule vertexModule; - VkShaderModule pixelModule; - MOJOSHADER_vkShader *vertexShader; - MOJOSHADER_vkShader *pixelShader; -} MOJOSHADER_vkProgram; - -typedef struct MOJOSHADER_vkUniformBuffer -{ - VkBuffer buffer; - VkDeviceMemory deviceMemory; - VkDeviceSize bufferSize; - VkDeviceSize dynamicOffset; - VkDeviceSize currentBlockSize; - VkDeviceSize currentBlockIncrement; - uint8_t *mapPointer; -} MOJOSHADER_vkUniformBuffer; - -// Error state... -static char error_buffer[1024] = { '\0' }; - -static void set_error(const char *str) -{ - snprintf(error_buffer, sizeof (error_buffer), "%s", str); -} // set_error - -static inline void out_of_memory(void) -{ - set_error("out of memory"); -} // out_of_memory - -// Max entries for each register file type -#define MAX_REG_FILE_F 8192 -#define MAX_REG_FILE_I 2047 -#define MAX_REG_FILE_B 2047 - -typedef struct MOJOSHADER_vkContext -{ - VkInstance *instance; - VkPhysicalDevice *physical_device; - VkDevice *logical_device; - PFN_vkGetInstanceProcAddr instance_proc_lookup; - PFN_vkGetDeviceProcAddr device_proc_lookup; - uint32_t graphics_queue_family_index; - uint32_t maxUniformBufferRange; - uint32_t minUniformBufferOffsetAlignment; - - uint32_t frameIndex; - - MOJOSHADER_malloc malloc_fn; - MOJOSHADER_free free_fn; - void *malloc_data; - - // The constant register files... - // !!! FIXME: Man, it kills me how much memory this takes... - // !!! FIXME: ... make this dynamically allocated on demand. - float vs_reg_file_f[MAX_REG_FILE_F * 4]; - int32_t vs_reg_file_i[MAX_REG_FILE_I * 4]; - uint8_t vs_reg_file_b[MAX_REG_FILE_B * 4]; - float ps_reg_file_f[MAX_REG_FILE_F * 4]; - int32_t ps_reg_file_i[MAX_REG_FILE_I * 4]; - uint8_t ps_reg_file_b[MAX_REG_FILE_B * 4]; - - MOJOSHADER_vkUniformBuffer *vertUboBuffer; - MOJOSHADER_vkUniformBuffer *fragUboBuffer; - - MOJOSHADER_vkProgram *bound_program; - HashTable *linker_cache; - - // Note that these may not necessarily align with bound_program! - // We need to store these so effects can have overlapping shaders. - MOJOSHADER_vkShader *bound_vshader; - MOJOSHADER_vkShader *bound_pshader; - - #define VULKAN_INSTANCE_FUNCTION(name) \ - PFN_##name name; - #define VULKAN_DEVICE_FUNCTION(name) \ - PFN_##name name; - #include "mojoshader_vulkan_vkfuncs.h" -} MOJOSHADER_vkContext; - -static uint16_t tagCounter = 1; - -static uint8_t find_memory_type( - MOJOSHADER_vkContext *ctx, - uint32_t typeFilter, - VkMemoryPropertyFlags properties, - uint32_t *result -) { - uint32_t i; - VkPhysicalDeviceMemoryProperties memoryProperties; - ctx->vkGetPhysicalDeviceMemoryProperties(*ctx->physical_device, &memoryProperties); - - for (i = 0; i < memoryProperties.memoryTypeCount; i++) - { - if ((typeFilter & (1 << i)) - && (memoryProperties.memoryTypes[i].propertyFlags & properties) == properties) - { - *result = i; - return 1; - } // if - } // for - - return 0; -} // find_memory_type - -static uint32_t next_highest_offset_alignment( - MOJOSHADER_vkContext *ctx, - uint32_t offset -) { - return ( - (offset + ctx->minUniformBufferOffsetAlignment - 1) / - ctx->minUniformBufferOffsetAlignment * - ctx->minUniformBufferOffsetAlignment - ); -} // next_highest_offset_alignment - -static MOJOSHADER_vkUniformBuffer *create_ubo(MOJOSHADER_vkContext *ctx) -{ - MOJOSHADER_vkUniformBuffer *result = (MOJOSHADER_vkUniformBuffer *) ctx->malloc_fn( - sizeof(MOJOSHADER_vkUniformBuffer), - ctx->malloc_data - ); - VkBufferCreateInfo bufferCreateInfo = - { - VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO - }; - VkMemoryRequirements memoryRequirements; - VkMemoryAllocateInfo allocateInfo = - { - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO - }; - - bufferCreateInfo.flags = 0; - bufferCreateInfo.size = UBO_ACTUAL_SIZE; - bufferCreateInfo.usage = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT; - bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - bufferCreateInfo.queueFamilyIndexCount = 1; - bufferCreateInfo.pQueueFamilyIndices = &ctx->graphics_queue_family_index; - - ctx->vkCreateBuffer( - *ctx->logical_device, - &bufferCreateInfo, - NULL, - &result->buffer - ); - - ctx->vkGetBufferMemoryRequirements( - *ctx->logical_device, - result->buffer, - &memoryRequirements - ); - - allocateInfo.allocationSize = UBO_ACTUAL_SIZE; - - if (!find_memory_type(ctx, - memoryRequirements.memoryTypeBits, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - &allocateInfo.memoryTypeIndex)) - { - set_error("failed to find suitable memory type for UBO memory"); - return NULL; - } // if - - ctx->vkAllocateMemory(*ctx->logical_device, - &allocateInfo, - NULL, - &result->deviceMemory - ); - - ctx->vkBindBufferMemory(*ctx->logical_device, - result->buffer, - result->deviceMemory, - 0 - ); - - ctx->vkMapMemory(*ctx->logical_device, - result->deviceMemory, - 0, - UBO_ACTUAL_SIZE, - 0, - (void**) &result->mapPointer - ); - - result->bufferSize = UBO_ACTUAL_SIZE; - result->currentBlockSize = 0; - result->currentBlockIncrement = 0; - result->dynamicOffset = 0; - - return result; -} // create_ubo - -static uint32_t uniform_data_size(MOJOSHADER_vkShader *shader) -{ - int32_t i; - int32_t buflen = 0; - const int32_t uniformSize = 16; // Yes, even the bool registers - for (i = 0; i < shader->parseData->uniform_count; i++) - { - const int32_t arrayCount = shader->parseData->uniforms[i].array_count; - buflen += (arrayCount ? arrayCount : 1) * uniformSize; - } // for - - return buflen; -} // uniform_data_size - -static VkBuffer get_uniform_buffer( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *shader -) { - if (shader == NULL || shader->parseData->uniform_count == 0) - return VK_NULL_HANDLE; - - if (shader->parseData->shader_type == MOJOSHADER_TYPE_VERTEX) - return ctx->vertUboBuffer->buffer; - else - return ctx->fragUboBuffer->buffer; -} // get_uniform_buffer - -static VkDeviceSize get_uniform_offset( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *shader -) { - if (shader == NULL || shader->parseData->uniform_count == 0) - return 0; - - if (shader->parseData->shader_type == MOJOSHADER_TYPE_VERTEX) - return ctx->vertUboBuffer->dynamicOffset; - else - return ctx->fragUboBuffer->dynamicOffset; -} // get_uniform_offset - -static VkDeviceSize get_uniform_size( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *shader -) { - if (shader == NULL || shader->parseData->uniform_count == 0) - return 0; - - if (shader->parseData->shader_type == MOJOSHADER_TYPE_VERTEX) - return ctx->vertUboBuffer->currentBlockSize; - else - return ctx->fragUboBuffer->currentBlockSize; -} // get_uniform_size - -static void update_uniform_buffer( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *shader -) { - int32_t i, j; - int32_t offset; - uint8_t *contents; - uint32_t *contentsI; - float *regF; int *regI; uint8_t *regB; - MOJOSHADER_vkUniformBuffer *ubo; - - if (shader == NULL || shader->parseData->uniform_count == 0) - return; - - if (shader->parseData->shader_type == MOJOSHADER_TYPE_VERTEX) - { - regF = ctx->vs_reg_file_f; - regI = ctx->vs_reg_file_i; - regB = ctx->vs_reg_file_b; - - ubo = ctx->vertUboBuffer; - } // if - else - { - regF = ctx->ps_reg_file_f; - regI = ctx->ps_reg_file_i; - regB = ctx->ps_reg_file_b; - - ubo = ctx->fragUboBuffer; - } // else - - ubo->dynamicOffset += ubo->currentBlockIncrement; - - ubo->currentBlockSize = next_highest_offset_alignment(ctx, uniform_data_size(shader)); - ubo->currentBlockIncrement = ubo->currentBlockSize; - - if (ubo->dynamicOffset + ubo->currentBlockSize >= ubo->bufferSize * ctx->frameIndex) - { - set_error("UBO overflow!!"); - } // if - - contents = ubo->mapPointer + ubo->dynamicOffset; - - offset = 0; - for (i = 0; i < shader->parseData->uniform_count; i++) - { - const int32_t index = shader->parseData->uniforms[i].index; - const int32_t arrayCount = shader->parseData->uniforms[i].array_count; - const int32_t size = arrayCount ? arrayCount : 1; - - switch (shader->parseData->uniforms[i].type) - { - case MOJOSHADER_UNIFORM_FLOAT: - memcpy( - contents + offset, - ®F[4 * index], - size * 16 - ); - break; - - case MOJOSHADER_UNIFORM_INT: - memcpy( - contents + offset, - ®I[4 * index], - size * 16 - ); - break; - - case MOJOSHADER_UNIFORM_BOOL: - contentsI = (uint32_t *) (contents + offset); - for (j = 0; j < size; j++) - contentsI[j * 4] = regB[index + j]; - break; - - default: - set_error( - "SOMETHING VERY WRONG HAPPENED WHEN UPDATING UNIFORMS" - ); - assert(0); - break; - } // switch - - offset += size * 16; - } // for - -} // update_uniform_buffer - -static void lookup_entry_points(MOJOSHADER_vkContext *ctx) -{ - #define VULKAN_INSTANCE_FUNCTION(name) \ - ctx->name = (PFN_##name) ctx->instance_proc_lookup(*ctx->instance, #name); - #define VULKAN_DEVICE_FUNCTION(name) \ - ctx->name = (PFN_##name) ctx->device_proc_lookup(*ctx->logical_device, #name); - #include "mojoshader_vulkan_vkfuncs.h" -} // lookup_entry_points - -static int shader_bytecode_len(MOJOSHADER_vkShader *shader) -{ - return shader->parseData->output_len - sizeof(SpirvPatchTable); -} // shader_bytecode_len - -static VkShaderModule compile_shader( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *shader -) { - VkResult result; - VkShaderModule module; - VkShaderModuleCreateInfo shaderModuleCreateInfo = - { - VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO - }; - - shaderModuleCreateInfo.flags = 0; - shaderModuleCreateInfo.codeSize = shader_bytecode_len(shader); - shaderModuleCreateInfo.pCode = (uint32_t*) shader->parseData->output; - - result = ctx->vkCreateShaderModule( - *ctx->logical_device, - &shaderModuleCreateInfo, - NULL, - &module - ); - - if (result != VK_SUCCESS) - { - // FIXME: should display VK error code - set_error("Error when creating VkShaderModule"); - ctx->vkDestroyShaderModule( - *ctx->logical_device, - module, - NULL - ); - return VK_NULL_HANDLE; - } // if - - return module; -} // compile_shader - -typedef struct -{ - MOJOSHADER_vkShader *vertex; - MOJOSHADER_vkShader *fragment; -} BoundShaders; - -static uint32_t hash_shaders(const void *sym, void *data) -{ - (void) data; - const BoundShaders *s = (const BoundShaders *) sym; - const uint16_t v = (s->vertex) ? s->vertex->tag : 0; - const uint16_t f = (s->fragment) ? s->fragment->tag : 0; - return ((uint32_t) v << 16) | (uint32_t) f; -} // hash_shaders - -static int match_shaders(const void *_a, const void *_b, void *data) -{ - (void) data; - const BoundShaders *a = (const BoundShaders *) _a; - const BoundShaders *b = (const BoundShaders *) _b; - - const uint16_t av = (a->vertex) ? a->vertex->tag : 0; - const uint16_t bv = (b->vertex) ? b->vertex->tag : 0; - if (av != bv) - return 0; - - const uint16_t af = (a->fragment) ? a->fragment->tag : 0; - const uint16_t bf = (b->fragment) ? b->fragment->tag : 0; - if (af != bf) - return 0; - - return 1; -} // match_shaders - -static void nuke_shaders( - const void *_ctx, - const void *key, - const void *value, - void *data -) { - MOJOSHADER_vkContext *ctx = (MOJOSHADER_vkContext *) _ctx; - (void) data; - ctx->free_fn((void *) key, ctx->malloc_data); // this was a BoundShaders struct. - MOJOSHADER_vkDeleteProgram(ctx, (MOJOSHADER_vkProgram *) value); -} // nuke_shaders - -// Public API - -MOJOSHADER_vkContext *MOJOSHADER_vkCreateContext( - VkInstance *instance, - VkPhysicalDevice *physical_device, - VkDevice *logical_device, - PFN_MOJOSHADER_vkGetInstanceProcAddr instance_lookup, - PFN_MOJOSHADER_vkGetDeviceProcAddr device_lookup, - unsigned int graphics_queue_family_index, - unsigned int max_uniform_buffer_range, - unsigned int min_uniform_buffer_offset_alignment, - MOJOSHADER_malloc m, MOJOSHADER_free f, - void *malloc_d -) { - MOJOSHADER_vkContext* resultCtx; - - if (m == NULL) m = MOJOSHADER_internal_malloc; - if (f == NULL) f = MOJOSHADER_internal_free; - - resultCtx = (MOJOSHADER_vkContext *) m(sizeof(MOJOSHADER_vkContext), malloc_d); - if (resultCtx == NULL) - { - out_of_memory(); - goto init_fail; - } // if - - memset(resultCtx, '\0', sizeof(MOJOSHADER_vkContext)); - resultCtx->malloc_fn = m; - resultCtx->free_fn = f; - resultCtx->malloc_data = malloc_d; - - resultCtx->instance = (VkInstance*) instance; - resultCtx->physical_device = (VkPhysicalDevice*) physical_device; - resultCtx->logical_device = (VkDevice*) logical_device; - resultCtx->instance_proc_lookup = (PFN_vkGetInstanceProcAddr) instance_lookup; - resultCtx->device_proc_lookup = (PFN_vkGetDeviceProcAddr) device_lookup; - resultCtx->frameIndex = 0; - resultCtx->graphics_queue_family_index = graphics_queue_family_index; - resultCtx->maxUniformBufferRange = max_uniform_buffer_range; - resultCtx->minUniformBufferOffsetAlignment = min_uniform_buffer_offset_alignment; - - lookup_entry_points(resultCtx); - - resultCtx->vertUboBuffer = create_ubo(resultCtx); - resultCtx->fragUboBuffer = create_ubo(resultCtx); - - return resultCtx; - -init_fail: - if (resultCtx != NULL) - f(resultCtx, malloc_d); - return NULL; -} // MOJOSHADER_vkCreateContext - -void MOJOSHADER_vkDestroyContext(MOJOSHADER_vkContext *ctx) -{ - MOJOSHADER_vkBindProgram(ctx, NULL); - if (ctx->linker_cache) - hash_destroy(ctx->linker_cache, ctx); - - ctx->vkDestroyBuffer(*ctx->logical_device, - ctx->vertUboBuffer->buffer, - NULL); - - ctx->vkDestroyBuffer(*ctx->logical_device, - ctx->fragUboBuffer->buffer, - NULL); - - ctx->vkFreeMemory(*ctx->logical_device, - ctx->vertUboBuffer->deviceMemory, - NULL); - - ctx->vkFreeMemory(*ctx->logical_device, - ctx->fragUboBuffer->deviceMemory, - NULL); - - ctx->free_fn(ctx->vertUboBuffer, ctx->malloc_data); - ctx->free_fn(ctx->fragUboBuffer, ctx->malloc_data); - - ctx->free_fn(ctx, ctx->malloc_data); -} // MOJOSHADER_vkDestroyContext - -MOJOSHADER_vkShader *MOJOSHADER_vkCompileShader( - MOJOSHADER_vkContext *ctx, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount -) { - MOJOSHADER_vkShader *shader; - - const MOJOSHADER_parseData *pd = MOJOSHADER_parse( - "spirv", mainfn, - tokenbuf, bufsize, - swiz, swizcount, - smap, smapcount, - ctx->malloc_fn, - ctx->free_fn, - ctx->malloc_data - ); - - if (pd->error_count > 0) - { - set_error(pd->errors[0].error); - goto parse_shader_fail; - } // if - - shader = (MOJOSHADER_vkShader *) ctx->malloc_fn(sizeof(MOJOSHADER_vkShader), ctx->malloc_data); - if (shader == NULL) - { - out_of_memory(); - goto parse_shader_fail; - } // if - - shader->parseData = pd; - shader->refcount = 1; - shader->tag = tagCounter++; - return shader; - -parse_shader_fail: - MOJOSHADER_freeParseData(pd); - if (shader != NULL) - ctx->free_fn(shader, ctx->malloc_data); - return NULL; -} // MOJOSHADER_vkCompileShader - -void MOJOSHADER_vkShaderAddRef(MOJOSHADER_vkShader *shader) -{ - if (shader != NULL) - shader->refcount++; -} // MOJOShader_vkShaderAddRef - -void MOJOSHADER_vkDeleteShader( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *shader -) { - if (shader != NULL) - { - if (shader->refcount > 1) - shader->refcount--; - else - { - // See if this was bound as an unlinked program anywhere... - if (ctx->linker_cache) - { - const void *key = NULL; - void *iter = NULL; - int morekeys = hash_iter_keys(ctx->linker_cache, &key, &iter); - while (morekeys) - { - const BoundShaders *shaders = (const BoundShaders *) key; - // Do this here so we don't confuse the iteration by removing... - morekeys = hash_iter_keys(ctx->linker_cache, &key, &iter); - if ((shaders->vertex == shader) || (shaders->fragment == shader)) - { - // Deletes the linked program - hash_remove(ctx->linker_cache, shaders, ctx); - } // if - } // while - } // if - - MOJOSHADER_freeParseData(shader->parseData); - ctx->free_fn(shader, ctx->malloc_data); - } // else - } // if -} // MOJOSHADER_vkDeleteShader - -const MOJOSHADER_parseData *MOJOSHADER_vkGetShaderParseData( - MOJOSHADER_vkShader *shader -) { - return (shader != NULL) ? shader->parseData : NULL; -} // MOJOSHADER_vkGetShaderParseData - -void MOJOSHADER_vkDeleteProgram( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkProgram *p -) { - if (p->vertexModule != VK_NULL_HANDLE) - ctx->vkDestroyShaderModule(*ctx->logical_device, p->vertexModule, NULL); - if (p->pixelModule != VK_NULL_HANDLE) - ctx->vkDestroyShaderModule(*ctx->logical_device, p->pixelModule, NULL); - ctx->free_fn(p, ctx->malloc_data); -} // MOJOSHADER_vkDeleteProgram - -MOJOSHADER_vkProgram *MOJOSHADER_vkLinkProgram(MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *vshader, - MOJOSHADER_vkShader *pshader) -{ - MOJOSHADER_vkProgram *result; - - if ((vshader == NULL) || (pshader == NULL)) // Both shaders MUST exist! - return NULL; - - result = (MOJOSHADER_vkProgram *) ctx->malloc_fn(sizeof (MOJOSHADER_vkProgram), - ctx->malloc_data); - if (result == NULL) - { - out_of_memory(); - return NULL; - } // if - - MOJOSHADER_spirv_link_attributes(vshader->parseData, pshader->parseData); - result->vertexModule = compile_shader(ctx, vshader); - result->pixelModule = compile_shader(ctx, pshader); - result->vertexShader = vshader; - result->pixelShader = pshader; - - if (result->vertexModule == VK_NULL_HANDLE - || result->pixelModule == VK_NULL_HANDLE) - { - MOJOSHADER_vkDeleteProgram(ctx, result); - return NULL; - } - return result; -} // MOJOSHADER_vkLinkProgram - -void MOJOSHADER_vkBindProgram( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkProgram *p -) { - ctx->bound_program = p; -} // MOJOSHADER_vkBindProgram - -void MOJOSHADER_vkBindShaders( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader *vshader, - MOJOSHADER_vkShader *pshader -) { - if (ctx->linker_cache == NULL) - { - ctx->linker_cache = hash_create(NULL, hash_shaders, match_shaders, - nuke_shaders, 0, ctx->malloc_fn, - ctx->free_fn, ctx->malloc_data); - - if (ctx->linker_cache == NULL) - { - out_of_memory(); - return; - } // if - } // if - - MOJOSHADER_vkProgram *program = NULL; - BoundShaders shaders; - shaders.vertex = vshader; - shaders.fragment = pshader; - - ctx->bound_vshader = vshader; - ctx->bound_pshader = pshader; - - const void *val = NULL; - if (hash_find(ctx->linker_cache, &shaders, &val)) - program = (MOJOSHADER_vkProgram *) val; - else - { - program = MOJOSHADER_vkLinkProgram(ctx, vshader, pshader); - if (program == NULL) - return; - - BoundShaders *item = (BoundShaders *) ctx->malloc_fn(sizeof (BoundShaders), - ctx->malloc_data); - if (item == NULL) - { - MOJOSHADER_vkDeleteProgram(ctx, program); - return; - } // if - - memcpy(item, &shaders, sizeof (BoundShaders)); - if (hash_insert(ctx->linker_cache, item, program) != 1) - { - ctx->free_fn(item, ctx->malloc_data); - MOJOSHADER_vkDeleteProgram(ctx, program); - out_of_memory(); - return; - } // if - } // else - - assert(program != NULL); - ctx->bound_program = program; -} // MOJOSHADER_vkBindShaders - -void MOJOSHADER_vkGetBoundShaders( - MOJOSHADER_vkContext *ctx, - MOJOSHADER_vkShader **vshader, - MOJOSHADER_vkShader **pshader -) { - if (vshader != NULL) - { - if (ctx->bound_program != NULL) - *vshader = ctx->bound_program->vertexShader; - else - *vshader = ctx->bound_vshader; // In case a pshader isn't set yet - } // if - if (pshader != NULL) - { - if (ctx->bound_program != NULL) - *pshader = ctx->bound_program->pixelShader; - else - *pshader = ctx->bound_pshader; // In case a vshader isn't set yet - } // if -} // MOJOSHADER_vkGetBoundShaders - -void MOJOSHADER_vkMapUniformBufferMemory( - MOJOSHADER_vkContext *ctx, - float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb -) { - *vsf = ctx->vs_reg_file_f; - *vsi = ctx->vs_reg_file_i; - *vsb = ctx->vs_reg_file_b; - *psf = ctx->ps_reg_file_f; - *psi = ctx->ps_reg_file_i; - *psb = ctx->ps_reg_file_b; -} // MOJOSHADER_vkMapUniformBufferMemory - -void MOJOSHADER_vkUnmapUniformBufferMemory(MOJOSHADER_vkContext *ctx) -{ - if (ctx->bound_program == NULL) - return; // Ignore buffer updates until we have a real program linked - update_uniform_buffer(ctx, ctx->bound_program->vertexShader); - update_uniform_buffer(ctx, ctx->bound_program->pixelShader); -} // MOJOSHADER_vkUnmapUniformBufferMemory - -void MOJOSHADER_vkGetUniformBuffers( - MOJOSHADER_vkContext *ctx, - VkBuffer *vbuf, unsigned long long *voff, unsigned long long *vsize, - VkBuffer *pbuf, unsigned long long *poff, unsigned long long *psize -) { - assert(ctx->bound_program != NULL); - *vbuf = get_uniform_buffer(ctx, ctx->bound_program->vertexShader); - *voff = get_uniform_offset(ctx, ctx->bound_program->vertexShader); - *vsize = get_uniform_size(ctx, ctx->bound_program->vertexShader); - *pbuf = get_uniform_buffer(ctx, ctx->bound_program->pixelShader); - *poff = get_uniform_offset(ctx, ctx->bound_program->pixelShader); - *psize = get_uniform_size(ctx, ctx->bound_program->pixelShader); -} // MOJOSHADER_vkGetUniformBuffers - -void MOJOSHADER_vkEndFrame(MOJOSHADER_vkContext *ctx) -{ - ctx->frameIndex = (ctx->frameIndex + 1) % 2; - - // Reset counters - // Offset by size of buffer to simulate "rotating" the buffers - ctx->vertUboBuffer->dynamicOffset = UBO_BUFFER_SIZE * ctx->frameIndex; - ctx->vertUboBuffer->currentBlockIncrement = 0; - ctx->fragUboBuffer->dynamicOffset = UBO_BUFFER_SIZE * ctx->frameIndex; - ctx->fragUboBuffer->currentBlockIncrement = 0; -} // MOJOSHADER_VkEndFrame - -int MOJOSHADER_vkGetVertexAttribLocation( - MOJOSHADER_vkShader *vert, - MOJOSHADER_usage usage, int index -) { - int32_t i; - if (vert == NULL) - return -1; - - for (i = 0; i < vert->parseData->attribute_count; i++) - { - if (vert->parseData->attributes[i].usage == usage && - vert->parseData->attributes[i].index == index) - { - return i; - } // if - } // for - - // failure - return -1; -} //MOJOSHADER_vkGetVertexAttribLocation - -void MOJOSHADER_vkGetShaderModules( - MOJOSHADER_vkContext *ctx, - VkShaderModule *vmodule, - VkShaderModule *pmodule -) { - assert(ctx->bound_program != NULL); - if (vmodule != NULL) - *vmodule = ctx->bound_program->vertexModule; - if (pmodule != NULL) - *pmodule = ctx->bound_program->pixelModule; -} //MOJOSHADER_vkGetShaderModules - -const char *MOJOSHADER_vkGetError(MOJOSHADER_vkContext *ctx) -{ - return error_buffer; -} // MOJOSHADER_vkGetError - -#endif /* SUPPORT_PROFILE_SPIRV */ - -// end of mojoshader_vulkan.c ... diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_vulkan_vkfuncs.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_vulkan_vkfuncs.h deleted file mode 100644 index 1123270c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/mojoshader_vulkan_vkfuncs.h +++ /dev/null @@ -1,41 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -/* - * vkInstance, created by global vkCreateInstance function - */ - -#ifndef VULKAN_INSTANCE_FUNCTION -#error VULKAN_INSTANCE_FUNCTION macro was undefined! -#endif -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceMemoryProperties) - -/* - * vkDevice, created by a vkInstance - */ - -#ifndef VULKAN_DEVICE_FUNCTION -#error VULKAN_DEVICE_FUNCTION macro was undefined! -#endif -VULKAN_DEVICE_FUNCTION(vkAllocateMemory) -VULKAN_DEVICE_FUNCTION(vkBindBufferMemory) -VULKAN_DEVICE_FUNCTION(vkCreateBuffer) -VULKAN_DEVICE_FUNCTION(vkCreateShaderModule) -VULKAN_DEVICE_FUNCTION(vkDestroyBuffer) -VULKAN_DEVICE_FUNCTION(vkDestroyShaderModule) -VULKAN_DEVICE_FUNCTION(vkFreeMemory) -VULKAN_DEVICE_FUNCTION(vkGetBufferMemoryRequirements) -VULKAN_DEVICE_FUNCTION(vkMapMemory) -VULKAN_DEVICE_FUNCTION(vkUnmapMemory) - -/* - * Redefine these every time you include this header! - */ -#undef VULKAN_INSTANCE_FUNCTION -#undef VULKAN_DEVICE_FUNCTION diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile.h deleted file mode 100644 index 1b2c6ad6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile.h +++ /dev/null @@ -1,388 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#ifndef MOJOSHADER_PROFILE_H -#define MOJOSHADER_PROFILE_H - -#include "../mojoshader_internal.h" - -#if SUPPORT_PROFILE_SPIRV -#include "mojoshader_profile_spirv.h" -#endif - -typedef struct ConstantsList -{ - MOJOSHADER_constant constant; - struct ConstantsList *next; -} ConstantsList; - -typedef struct VariableList -{ - MOJOSHADER_uniformType type; - int index; - int count; - ConstantsList *constant; - int used; - int emit_position; // used in some profiles. - struct VariableList *next; -} VariableList; - -typedef struct RegisterList -{ - RegisterType regtype; - int regnum; - MOJOSHADER_usage usage; - unsigned int index; - int writemask; - int misc; - int written; -#if SUPPORT_PROFILE_SPIRV - struct { - uint32 iddecl; - int is_ssa; // FIXME(krolli): Is there an existing way to tell constants and uniforms apart? - } spirv; -#endif - const VariableList *array; - struct RegisterList *next; -} RegisterList; - -typedef struct -{ - const uint32 *token; // this is the unmolested token in the stream. - int regnum; - int swizzle; // xyzw (all four, not split out). - int swizzle_x; - int swizzle_y; - int swizzle_z; - int swizzle_w; - SourceMod src_mod; - RegisterType regtype; - int relative; - RegisterType relative_regtype; - int relative_regnum; - int relative_component; - const VariableList *relative_array; -} SourceArgInfo; - -struct Profile; // predeclare. - -typedef struct CtabData -{ - int have_ctab; - int symbol_count; - MOJOSHADER_symbol *symbols; -} CtabData; - -// Context...this is state that changes as we parse through a shader... -typedef struct Context -{ - int isfail; - int out_of_memory; - MOJOSHADER_malloc malloc; - MOJOSHADER_free free; - void *malloc_data; - int current_position; - const uint32 *orig_tokens; - const uint32 *tokens; - uint32 tokencount; - int know_shader_size; - const MOJOSHADER_swizzle *swizzles; - unsigned int swizzles_count; - const MOJOSHADER_samplerMap *samplermap; - unsigned int samplermap_count; - Buffer *output; - Buffer *preflight; - Buffer *globals; - Buffer *inputs; - Buffer *outputs; - Buffer *helpers; - Buffer *subroutines; - Buffer *mainline_intro; - Buffer *mainline_arguments; - Buffer *mainline_top; - Buffer *mainline; - Buffer *postflight; - Buffer *ignore; - Buffer *output_stack[3]; - int indent_stack[3]; - int output_stack_len; - int indent; - const char *shader_type_str; - const char *endline; - const char *mainfn; - int endline_len; - int profileid; - const struct Profile *profile; - MOJOSHADER_shaderType shader_type; - uint8 major_ver; - uint8 minor_ver; - DestArgInfo dest_arg; - SourceArgInfo source_args[5]; - SourceArgInfo predicate_arg; // for predicated instructions. - uint32 dwords[4]; - uint32 version_token; - int instruction_count; - uint32 instruction_controls; - uint32 previous_opcode; - int coissue; - int loops; - int reps; - int max_reps; - int cmps; - int scratch_registers; - int max_scratch_registers; - int branch_labels_stack_index; - int branch_labels_stack[32]; - int assigned_branch_labels; - int assigned_vertex_attributes; - int last_address_reg_component; - RegisterList used_registers; - RegisterList defined_registers; - ErrorList *errors; - int constant_count; - ConstantsList *constants; - int uniform_count; - int uniform_float4_count; - int uniform_int4_count; - int uniform_bool_count; - RegisterList uniforms; - int attribute_count; - RegisterList attributes; - int sampler_count; - RegisterList samplers; - VariableList *variables; // variables to register mapping. - int centroid_allowed; - CtabData ctab; - int have_relative_input_registers; - int have_multi_color_outputs; - int determined_constants_arrays; - int predicated; - int uses_pointsize; - int uses_fog; - int need_max_float; - - // !!! FIXME: move these into SUPPORT_PROFILE sections. - int glsl_generated_lit_helper; - int glsl_generated_texlod_setup; - int glsl_generated_texm3x3spec_helper; - int arb1_wrote_position; - // !!! FIXME: move these into SUPPORT_PROFILE sections. - - int have_preshader; - int ignores_ctab; - int reset_texmpad; - int texm3x2pad_dst0; - int texm3x2pad_src0; - int texm3x3pad_dst0; - int texm3x3pad_src0; - int texm3x3pad_dst1; - int texm3x3pad_src1; - MOJOSHADER_preshader *preshader; - -#if SUPPORT_PROFILE_ARB1_NV - int profile_supports_nv2; - int profile_supports_nv3; - int profile_supports_nv4; -#endif -#if SUPPORT_PROFILE_GLSL120 - int profile_supports_glsl120; -#endif -#if SUPPORT_PROFILE_GLSLES - int profile_supports_glsles; -#endif - -#if SUPPORT_PROFILE_METAL - int metal_need_header_common; - int metal_need_header_math; - int metal_need_header_relational; - int metal_need_header_geometric; - int metal_need_header_graphics; - int metal_need_header_texture; -#endif - -#if SUPPORT_PROFILE_SPIRV - int branch_labels_patch_stack[32]; - SpirvContext spirv; -#endif -#if SUPPORT_PROFILE_GLSPIRV - int profile_supports_glspirv; -#endif - -#if SUPPORT_PROFILE_HLSL - char hlsl_outpos_name[16]; -#endif -} Context; - -// Use these macros so we can remove all bits of these profiles from the build. -#if SUPPORT_PROFILE_ARB1_NV -#define support_nv2(ctx) ((ctx)->profile_supports_nv2) -#define support_nv3(ctx) ((ctx)->profile_supports_nv3) -#define support_nv4(ctx) ((ctx)->profile_supports_nv4) -#else -#define support_nv2(ctx) (0) -#define support_nv3(ctx) (0) -#define support_nv4(ctx) (0) -#endif - -#if SUPPORT_PROFILE_GLSL120 -#define support_glsl120(ctx) ((ctx)->profile_supports_glsl120) -#else -#define support_glsl120(ctx) (0) -#endif - -#if SUPPORT_PROFILE_GLSLES -#define support_glsles(ctx) ((ctx)->profile_supports_glsles) -#else -#define support_glsles(ctx) (0) -#endif - -// Profile entry points... - -// one emit function for each opcode in each profile. -typedef void (*emit_function)(Context *ctx); - -// one emit function for starting output in each profile. -typedef void (*emit_start)(Context *ctx, const char *profilestr); - -// one emit function for ending output in each profile. -typedef void (*emit_end)(Context *ctx); - -// one emit function for phase opcode output in each profile. -typedef void (*emit_phase)(Context *ctx); - -// one emit function for finalizing output in each profile. -typedef void (*emit_finalize)(Context *ctx); - -// one emit function for global definitions in each profile. -typedef void (*emit_global)(Context *ctx, RegisterType regtype, int regnum); - -// one emit function for relative uniform arrays in each profile. -typedef void (*emit_array)(Context *ctx, VariableList *var); - -// one emit function for relative constants arrays in each profile. -typedef void (*emit_const_array)(Context *ctx, - const struct ConstantsList *constslist, - int base, int size); - -// one emit function for uniforms in each profile. -typedef void (*emit_uniform)(Context *ctx, RegisterType regtype, int regnum, - const VariableList *var); - -// one emit function for samplers in each profile. -typedef void (*emit_sampler)(Context *ctx, int stage, TextureType ttype, - int texbem); - -// one emit function for attributes in each profile. -typedef void (*emit_attribute)(Context *ctx, RegisterType regtype, int regnum, - MOJOSHADER_usage usage, int index, int wmask, - int flags); - -// one args function for each possible sequence of opcode arguments. -typedef int (*args_function)(Context *ctx); - -// one state function for each opcode where we have state machine updates. -typedef void (*state_function)(Context *ctx); - -// one function for varnames in each profile. -typedef const char *(*varname_function)(Context *c, RegisterType t, int num); - -// one function for const var array in each profile. -typedef const char *(*const_array_varname_function)(Context *c, int base, int size); - -typedef struct Profile -{ - const char *name; - emit_start start_emitter; - emit_end end_emitter; - emit_phase phase_emitter; - emit_global global_emitter; - emit_array array_emitter; - emit_const_array const_array_emitter; - emit_uniform uniform_emitter; - emit_sampler sampler_emitter; - emit_attribute attribute_emitter; - emit_finalize finalize_emitter; - varname_function get_varname; - const_array_varname_function get_const_array_varname; -} Profile; - -// Common utilities... - -void out_of_memory(Context *ctx); -void *Malloc(Context *ctx, const size_t len); -char *StrDup(Context *ctx, const char *str); -void Free(Context *ctx, void *ptr); -void * MOJOSHADERCALL MallocBridge(int bytes, void *data); -void MOJOSHADERCALL FreeBridge(void *ptr, void *data); - -int set_output(Context *ctx, Buffer **section); -void push_output(Context *ctx, Buffer **section); -void pop_output(Context *ctx); - -uint32 ver_ui32(const uint8 major, const uint8 minor); -int shader_version_supported(const uint8 maj, const uint8 min); -int shader_version_atleast(const Context *ctx, const uint8 maj, - const uint8 min); -int shader_version_exactly(const Context *ctx, const uint8 maj, - const uint8 min); -int shader_is_pixel(const Context *ctx); -int shader_is_vertex(const Context *ctx); - -int isfail(const Context *ctx); -void failf(Context *ctx, const char *fmt, ...); -void fail(Context *ctx, const char *reason); - -void output_line(Context *ctx, const char *fmt, ...); -void output_blank_line(Context *ctx); - -void floatstr(Context *ctx, char *buf, size_t bufsize, float f, - int leavedecimal); - -RegisterList *reglist_insert(Context *ctx, RegisterList *prev, - const RegisterType regtype, - const int regnum); -RegisterList *reglist_find(const RegisterList *prev, - const RegisterType rtype, - const int regnum); -RegisterList *set_used_register(Context *ctx, - const RegisterType regtype, - const int regnum, - const int written); -void set_defined_register(Context *ctx, const RegisterType rtype, - const int regnum); - -int writemask_xyzw(const int writemask); -int writemask_xyz(const int writemask); -int writemask_xy(const int writemask); -int writemask_x(const int writemask); -int writemask_y(const int writemask); -int replicate_swizzle(const int swizzle); -int no_swizzle(const int swizzle); -int vecsize_from_writemask(const int m); -void set_dstarg_writemask(DestArgInfo *dst, const int mask); - -int isscalar(Context *ctx, const MOJOSHADER_shaderType shader_type, - const RegisterType rtype, const int rnum); - -static const char swizzle_channels[] = { 'x', 'y', 'z', 'w' }; - -const char *get_D3D_register_string(Context *ctx, - RegisterType regtype, - int regnum, char *regnum_str, - size_t regnum_size); - -// !!! FIXME: These should stay in the mojoshader_profile_d3d file -// !!! FIXME: but ARB1 relies on them, so we have to move them here. -// !!! FIXME: If/when we kill off ARB1, we can move these back. -const char *get_D3D_varname_in_buf(Context *ctx, RegisterType rt, - int regnum, char *buf, - const size_t len); -const char *get_D3D_varname(Context *ctx, RegisterType rt, int regnum); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_arb1.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_arb1.c deleted file mode 100644 index 2f374e58..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_arb1.c +++ /dev/null @@ -1,2252 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -#if SUPPORT_PROFILE_ARB1 - -static inline const char *get_ARB1_register_string(Context *ctx, - const RegisterType regtype, const int regnum, - char *regnum_str, const size_t regnum_size) -{ - // turns out these are identical at the moment. - return get_D3D_register_string(ctx,regtype,regnum,regnum_str,regnum_size); -} // get_ARB1_register_string - -int allocate_scratch_register(Context *ctx) -{ - const int retval = ctx->scratch_registers++; - if (retval >= ctx->max_scratch_registers) - ctx->max_scratch_registers = retval + 1; - return retval; -} // allocate_scratch_register - -int allocate_branch_label(Context *ctx) -{ - return ctx->assigned_branch_labels++; -} // allocate_branch_label - -const char *allocate_ARB1_scratch_reg_name(Context *ctx, char *buf, - const size_t buflen) -{ - const int scratch = allocate_scratch_register(ctx); - snprintf(buf, buflen, "scratch%d", scratch); - return buf; -} // allocate_ARB1_scratch_reg_name - -static inline const char *get_ARB1_branch_label_name(Context *ctx, const int id, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "branch_label%d", id); - return buf; -} // get_ARB1_branch_label_name - -const char *get_ARB1_varname_in_buf(Context *ctx, const RegisterType rt, - const int regnum, char *buf, - const size_t buflen) -{ - // turns out these are identical at the moment. - return get_D3D_varname_in_buf(ctx, rt, regnum, buf, buflen); -} // get_ARB1_varname_in_buf - -const char *get_ARB1_varname(Context *ctx, const RegisterType rt, - const int regnum) -{ - // turns out these are identical at the moment. - return get_D3D_varname(ctx, rt, regnum); -} // get_ARB1_varname - - -static inline const char *get_ARB1_const_array_varname_in_buf(Context *ctx, - const int base, const int size, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "c_array_%d_%d", base, size); - return buf; -} // get_ARB1_const_array_varname_in_buf - - -const char *get_ARB1_const_array_varname(Context *ctx, int base, int size) -{ - char buf[64]; - get_ARB1_const_array_varname_in_buf(ctx, base, size, buf, sizeof (buf)); - return StrDup(ctx, buf); -} // get_ARB1_const_array_varname - - -const char *make_ARB1_srcarg_string_in_buf(Context *ctx, - const SourceArgInfo *arg, - char *buf, size_t buflen) -{ - // !!! FIXME: this can hit pathological cases where we look like this... - // - // dp3 r1.xyz, t0_bx2, t0_bx2 - // mad r1.xyz, t0_bias, 1-r1, t0_bx2 - // - // ...which do a lot of duplicate work in arb1... - // - // SUB scratch0, t0, { 0.5, 0.5, 0.5, 0.5 }; - // MUL scratch0, scratch0, { 2.0, 2.0, 2.0, 2.0 }; - // SUB scratch1, t0, { 0.5, 0.5, 0.5, 0.5 }; - // MUL scratch1, scratch1, { 2.0, 2.0, 2.0, 2.0 }; - // DP3 r1.xyz, scratch0, scratch1; - // SUB scratch0, t0, { 0.5, 0.5, 0.5, 0.5 }; - // SUB scratch1, { 1.0, 1.0, 1.0, 1.0 }, r1; - // SUB scratch2, t0, { 0.5, 0.5, 0.5, 0.5 }; - // MUL scratch2, scratch2, { 2.0, 2.0, 2.0, 2.0 }; - // MAD r1.xyz, scratch0, scratch1, scratch2; - // - // ...notice that the dp3 calculates the same value into two scratch - // registers. This case is easier to handle; just see if multiple - // source args are identical, build it up once, and use the same - // scratch register for multiple arguments in that opcode. - // Even better still, only calculate things once across instructions, - // and be smart about letting it linger in a scratch register until we - // definitely don't need the calculation anymore. That's harder to - // write, though. - - char regnum_str[16] = { '\0' }; - - // !!! FIXME: use get_ARB1_varname_in_buf() instead? - const char *regtype_str = NULL; - if (!arg->relative) - { - regtype_str = get_ARB1_register_string(ctx, arg->regtype, - arg->regnum, regnum_str, - sizeof (regnum_str)); - } // if - - const char *rel_lbracket = ""; - char rel_offset[32] = { '\0' }; - const char *rel_rbracket = ""; - char rel_swizzle[4] = { '\0' }; - const char *rel_regtype_str = ""; - if (arg->relative) - { - rel_regtype_str = get_ARB1_varname_in_buf(ctx, arg->relative_regtype, - arg->relative_regnum, - (char *) alloca(64), 64); - - rel_swizzle[0] = '.'; - rel_swizzle[1] = swizzle_channels[arg->relative_component]; - rel_swizzle[2] = '\0'; - - if (!support_nv2(ctx)) - { - // The address register in ARB1 only allows the '.x' component, so - // we need to load the component we need from a temp vector - // register into .x as needed. - assert(arg->relative_regtype == REG_TYPE_ADDRESS); - assert(arg->relative_regnum == 0); - if (ctx->last_address_reg_component != arg->relative_component) - { - output_line(ctx, "ARL %s.x, addr%d.%c;", rel_regtype_str, - arg->relative_regnum, - swizzle_channels[arg->relative_component]); - ctx->last_address_reg_component = arg->relative_component; - } // if - - rel_swizzle[1] = 'x'; - } // if - - if (arg->regtype == REG_TYPE_INPUT) - regtype_str = "vertex.attrib"; - else - { - assert(arg->regtype == REG_TYPE_CONST); - const int arrayidx = arg->relative_array->index; - const int arraysize = arg->relative_array->count; - const int offset = arg->regnum - arrayidx; - assert(offset >= 0); - regtype_str = get_ARB1_const_array_varname_in_buf(ctx, arrayidx, - arraysize, (char *) alloca(64), 64); - if (offset != 0) - snprintf(rel_offset, sizeof (rel_offset), " + %d", offset); - } // else - - rel_lbracket = "["; - rel_rbracket = "]"; - } // if - - // This is the source register with everything but swizzle and source mods. - snprintf(buf, buflen, "%s%s%s%s%s%s%s", regtype_str, regnum_str, - rel_lbracket, rel_regtype_str, rel_swizzle, rel_offset, - rel_rbracket); - - // Some of the source mods need to generate instructions to a temp - // register, in which case we'll replace the register name. - const SourceMod mod = arg->src_mod; - const int inplace = ( (mod == SRCMOD_NONE) || (mod == SRCMOD_NEGATE) || - ((mod == SRCMOD_ABS) && support_nv2(ctx)) ); - - if (!inplace) - { - const size_t len = 64; - char *stackbuf = (char *) alloca(len); - regtype_str = allocate_ARB1_scratch_reg_name(ctx, stackbuf, len); - regnum_str[0] = '\0'; // move value to scratch register. - rel_lbracket = ""; // scratch register won't use array. - rel_rbracket = ""; - rel_offset[0] = '\0'; - rel_swizzle[0] = '\0'; - rel_regtype_str = ""; - } // if - - const char *premod_str = ""; - const char *postmod_str = ""; - switch (mod) - { - case SRCMOD_NEGATE: - premod_str = "-"; - break; - - case SRCMOD_BIASNEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_BIAS: - output_line(ctx, "SUB %s, %s, { 0.5, 0.5, 0.5, 0.5 };", - regtype_str, buf); - break; - - case SRCMOD_SIGNNEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_SIGN: - output_line(ctx, - "MAD %s, %s, { 2.0, 2.0, 2.0, 2.0 }, { -1.0, -1.0, -1.0, -1.0 };", - regtype_str, buf); - break; - - case SRCMOD_COMPLEMENT: - output_line(ctx, "SUB %s, { 1.0, 1.0, 1.0, 1.0 }, %s;", - regtype_str, buf); - break; - - case SRCMOD_X2NEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_X2: - output_line(ctx, "MUL %s, %s, { 2.0, 2.0, 2.0, 2.0 };", - regtype_str, buf); - break; - - case SRCMOD_DZ: - fail(ctx, "SRCMOD_DZ currently unsupported in arb1"); - postmod_str = "_dz"; - break; - - case SRCMOD_DW: - fail(ctx, "SRCMOD_DW currently unsupported in arb1"); - postmod_str = "_dw"; - break; - - case SRCMOD_ABSNEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_ABS: - if (!support_nv2(ctx)) // GL_NV_vertex_program2_option adds this. - output_line(ctx, "ABS %s, %s;", regtype_str, buf); - else - { - premod_str = (mod == SRCMOD_ABSNEGATE) ? "-|" : "|"; - postmod_str = "|"; - } // else - break; - - case SRCMOD_NOT: - fail(ctx, "SRCMOD_NOT currently unsupported in arb1"); - premod_str = "!"; - break; - - case SRCMOD_NONE: - case SRCMOD_TOTAL: - break; // stop compiler whining. - } // switch - - char swizzle_str[6]; - size_t i = 0; - - if (support_nv4(ctx)) // vFace must be output as "vFace.x" in nv4. - { - if (arg->regtype == REG_TYPE_MISCTYPE) - { - if ( ((const MiscTypeType) arg->regnum) == MISCTYPE_TYPE_FACE ) - { - swizzle_str[i++] = '.'; - swizzle_str[i++] = 'x'; - } // if - } // if - } // if - - const int scalar = isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum); - if (!scalar && !no_swizzle(arg->swizzle)) - { - swizzle_str[i++] = '.'; - - // .xxxx is the same as .x, but .xx is illegal...scalar or full! - if (replicate_swizzle(arg->swizzle)) - swizzle_str[i++] = swizzle_channels[arg->swizzle_x]; - else - { - swizzle_str[i++] = swizzle_channels[arg->swizzle_x]; - swizzle_str[i++] = swizzle_channels[arg->swizzle_y]; - swizzle_str[i++] = swizzle_channels[arg->swizzle_z]; - swizzle_str[i++] = swizzle_channels[arg->swizzle_w]; - } // else - } // if - swizzle_str[i] = '\0'; - assert(i < sizeof (swizzle_str)); - - snprintf(buf, buflen, "%s%s%s%s%s%s%s%s%s%s", premod_str, - regtype_str, regnum_str, rel_lbracket, - rel_regtype_str, rel_swizzle, rel_offset, rel_rbracket, - swizzle_str, postmod_str); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_ARB1_srcarg_string_in_buf - -const char *get_ARB1_destarg_varname(Context *ctx, char *buf, - const size_t buflen) -{ - const DestArgInfo *arg = &ctx->dest_arg; - return get_ARB1_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, buflen); -} // get_ARB1_destarg_varname - -const char *get_ARB1_srcarg_varname(Context *ctx, const size_t idx, - char *buf, const size_t buflen) -{ - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - *buf = '\0'; - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - return get_ARB1_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, buflen); -} // get_ARB1_srcarg_varname - - -const char *make_ARB1_destarg_string(Context *ctx, char *buf, - const size_t buflen) -{ - const DestArgInfo *arg = &ctx->dest_arg; - - *buf = '\0'; - - const char *sat_str = ""; - if (arg->result_mod & MOD_SATURATE) - { - // nv4 can use ".SAT" in all program types. - // For less than nv4, the "_SAT" modifier is only available in - // fragment shaders. Every thing else will fake it later in - // emit_ARB1_dest_modifiers() ... - if (support_nv4(ctx)) - sat_str = ".SAT"; - else if (shader_is_pixel(ctx)) - sat_str = "_SAT"; - } // if - - const char *pp_str = ""; - if (arg->result_mod & MOD_PP) - { - // Most ARB1 profiles can't do partial precision (MOD_PP), but that's - // okay. The spec says lots of Direct3D implementations ignore the - // flag anyhow. - if (support_nv4(ctx)) - pp_str = "H"; - } // if - - // CENTROID only allowed in DCL opcodes, which shouldn't come through here. - assert((arg->result_mod & MOD_CENTROID) == 0); - - char regnum_str[16]; - const char *regtype_str = get_ARB1_register_string(ctx, arg->regtype, - arg->regnum, regnum_str, - sizeof (regnum_str)); - if (regtype_str == NULL) - { - fail(ctx, "Unknown destination register type."); - return buf; - } // if - - char writemask_str[6]; - size_t i = 0; - const int scalar = isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum); - if (!scalar && !writemask_xyzw(arg->writemask)) - { - writemask_str[i++] = '.'; - if (arg->writemask0) writemask_str[i++] = 'x'; - if (arg->writemask1) writemask_str[i++] = 'y'; - if (arg->writemask2) writemask_str[i++] = 'z'; - if (arg->writemask3) writemask_str[i++] = 'w'; - } // if - writemask_str[i] = '\0'; - assert(i < sizeof (writemask_str)); - - //const char *pred_left = ""; - //const char *pred_right = ""; - char pred[32] = { '\0' }; - if (ctx->predicated) - { - fail(ctx, "dest register predication currently unsupported in arb1"); - return buf; - //pred_left = "("; - //pred_right = ") "; - make_ARB1_srcarg_string_in_buf(ctx, &ctx->predicate_arg, - pred, sizeof (pred)); - } // if - - snprintf(buf, buflen, "%s%s %s%s%s", pp_str, sat_str, - regtype_str, regnum_str, writemask_str); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_ARB1_destarg_string - - -void emit_ARB1_dest_modifiers(Context *ctx) -{ - const DestArgInfo *arg = &ctx->dest_arg; - - if (arg->result_shift != 0x0) - { - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - const char *multiplier = NULL; - - switch (arg->result_shift) - { - case 0x1: multiplier = "2.0"; break; - case 0x2: multiplier = "4.0"; break; - case 0x3: multiplier = "8.0"; break; - case 0xD: multiplier = "0.125"; break; - case 0xE: multiplier = "0.25"; break; - case 0xF: multiplier = "0.5"; break; - } // switch - - if (multiplier != NULL) - { - char var[64]; get_ARB1_destarg_varname(ctx, var, sizeof (var)); - output_line(ctx, "MUL%s, %s, %s;", dst, var, multiplier); - } // if - } // if - - if (arg->result_mod & MOD_SATURATE) - { - // nv4 and/or pixel shaders just used the "SAT" modifier, instead. - if ( (!support_nv4(ctx)) && (!shader_is_pixel(ctx)) ) - { - char var[64]; get_ARB1_destarg_varname(ctx, var, sizeof (var)); - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - output_line(ctx, "MIN%s, %s, 1.0;", dst, var); - output_line(ctx, "MAX%s, %s, 0.0;", dst, var); - } // if - } // if -} // emit_ARB1_dest_modifiers - - -const char *make_ARB1_srcarg_string(Context *ctx, const size_t idx, - char *buf, const size_t buflen) -{ - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - *buf = '\0'; - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - return make_ARB1_srcarg_string_in_buf(ctx, arg, buf, buflen); -} // make_ARB1_srcarg_string - -void emit_ARB1_opcode_ds(Context *ctx, const char *opcode) -{ - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "%s%s, %s;", opcode, dst, src0); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_opcode_ds - -void emit_ARB1_opcode_dss(Context *ctx, const char *opcode) -{ - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_ARB1_srcarg_string(ctx, 1, src1, sizeof (src1)); - output_line(ctx, "%s%s, %s, %s;", opcode, dst, src0, src1); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_opcode_dss - -void emit_ARB1_opcode_dsss(Context *ctx, const char *opcode) -{ - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_ARB1_srcarg_string(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_ARB1_srcarg_string(ctx, 2, src2, sizeof (src2)); - output_line(ctx, "%s%s, %s, %s, %s;", opcode, dst, src0, src1, src2); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_opcode_dsss - - -#define EMIT_ARB1_OPCODE_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_D_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode_d(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_S_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode_s(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_SS_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode_ss(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_DS_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode_ds(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_DSS_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode_dss(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_DSSS_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode_dsss(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_DSSSS_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - emit_ARB1_opcode_dssss(ctx, #op); \ - } -#define EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(op) \ - void emit_ARB1_##op(Context *ctx) { \ - failf(ctx, #op " unimplemented in %s profile", ctx->profile->name); \ - } - - -void emit_ARB1_start(Context *ctx, const char *profilestr) -{ - const char *shader_str = NULL; - const char *shader_full_str = NULL; - if (shader_is_vertex(ctx)) - { - shader_str = "vp"; - shader_full_str = "vertex"; - } // if - else if (shader_is_pixel(ctx)) - { - shader_str = "fp"; - shader_full_str = "fragment"; - } // else if - else - { - failf(ctx, "Shader type %u unsupported in this profile.", - (uint) ctx->shader_type); - return; - } // if - - set_output(ctx, &ctx->preflight); - - if (strcmp(profilestr, MOJOSHADER_PROFILE_ARB1) == 0) - output_line(ctx, "!!ARB%s1.0", shader_str); - - #if SUPPORT_PROFILE_ARB1_NV - else if (strcmp(profilestr, MOJOSHADER_PROFILE_NV2) == 0) - { - ctx->profile_supports_nv2 = 1; - output_line(ctx, "!!ARB%s1.0", shader_str); - output_line(ctx, "OPTION NV_%s_program2;", shader_full_str); - } // else if - - else if (strcmp(profilestr, MOJOSHADER_PROFILE_NV3) == 0) - { - // there's no NV_fragment_program3, so just use 2. - const int ver = shader_is_pixel(ctx) ? 2 : 3; - ctx->profile_supports_nv2 = 1; - ctx->profile_supports_nv3 = 1; - output_line(ctx, "!!ARB%s1.0", shader_str); - output_line(ctx, "OPTION NV_%s_program%d;", shader_full_str, ver); - } // else if - - else if (strcmp(profilestr, MOJOSHADER_PROFILE_NV4) == 0) - { - ctx->profile_supports_nv2 = 1; - ctx->profile_supports_nv3 = 1; - ctx->profile_supports_nv4 = 1; - output_line(ctx, "!!NV%s4.0", shader_str); - } // else if - #endif - - else - { - failf(ctx, "Profile '%s' unsupported or unknown.", profilestr); - } // else - - set_output(ctx, &ctx->mainline); -} // emit_ARB1_start - -void emit_ARB1_end(Context *ctx) -{ - // ps_1_* writes color to r0 instead oC0. We move it to the right place. - // We don't have to worry about a RET opcode messing this up, since - // RET isn't available before ps_2_0. - if (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 2, 0)) - { - set_used_register(ctx, REG_TYPE_COLOROUT, 0, 1); - output_line(ctx, "MOV oC0, r0;"); - } // if - - output_line(ctx, "END"); -} // emit_ARB1_end - -void emit_ARB1_phase(Context *ctx) -{ - // no-op in arb1. -} // emit_ARB1_phase - -static inline const char *arb1_float_temp(const Context *ctx) -{ - // nv4 lets you specify data type. - return (support_nv4(ctx)) ? "FLOAT TEMP" : "TEMP"; -} // arb1_float_temp - -void emit_ARB1_finalize(Context *ctx) -{ - push_output(ctx, &ctx->preflight); - - if (shader_is_vertex(ctx) && !ctx->arb1_wrote_position) - output_line(ctx, "OPTION ARB_position_invariant;"); - - if (shader_is_pixel(ctx) && ctx->have_multi_color_outputs) - output_line(ctx, "OPTION ARB_draw_buffers;"); - - pop_output(ctx); - - const char *tmpstr = arb1_float_temp(ctx); - int i; - push_output(ctx, &ctx->globals); - for (i = 0; i < ctx->max_scratch_registers; i++) - { - char buf[64]; - allocate_ARB1_scratch_reg_name(ctx, buf, sizeof (buf)); - output_line(ctx, "%s %s;", tmpstr, buf); - } // for - - // nv2 fragment programs (and anything nv4) have a real REP/ENDREP. - if ( (support_nv2(ctx)) && (!shader_is_pixel(ctx)) && (!support_nv4(ctx)) ) - { - // set up temps for nv2 REP/ENDREP emulation through branching. - for (i = 0; i < ctx->max_reps; i++) - output_line(ctx, "TEMP rep%d;", i); - } // if - - pop_output(ctx); - assert(ctx->scratch_registers == ctx->max_scratch_registers); -} // emit_ARB1_finalize - -void emit_ARB1_global(Context *ctx, RegisterType regtype, int regnum) -{ - // !!! FIXME: dependency on ARB1 profile. // !!! FIXME about FIXME: huh? - char varname[64]; - get_ARB1_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - push_output(ctx, &ctx->globals); - switch (regtype) - { - case REG_TYPE_ADDRESS: - if (shader_is_pixel(ctx)) // actually REG_TYPE_TEXTURE. - { - // We have to map texture registers to temps for ps_1_1, since - // they work like temps, initialize with tex coords, and the - // ps_1_1 TEX opcode expects to overwrite it. - if (!shader_version_atleast(ctx, 1, 4)) - { - output_line(ctx, "%s %s;", arb1_float_temp(ctx), varname); - push_output(ctx, &ctx->mainline_top); - output_line(ctx, "MOV %s, fragment.texcoord[%d];", - varname, regnum); - pop_output(ctx); - } // if - break; - } // if - - // nv4 replaced address registers with generic int registers. - if (support_nv4(ctx)) - output_line(ctx, "INT TEMP %s;", varname); - else - { - // nv2 has four-component address already, but stock arb1 has - // to emulate it in a temporary, and move components to the - // scalar ADDRESS register on demand. - output_line(ctx, "ADDRESS %s;", varname); - if (!support_nv2(ctx)) - output_line(ctx, "TEMP addr%d;", regnum); - } // else - break; - - //case REG_TYPE_PREDICATE: - // output_line(ctx, "bvec4 %s;", varname); - // break; - case REG_TYPE_TEMP: - output_line(ctx, "%s %s;", arb1_float_temp(ctx), varname); - break; - //case REG_TYPE_LOOP: - // break; // no-op. We declare these in for loops at the moment. - //case REG_TYPE_LABEL: - // break; // no-op. If we see it here, it means we optimized it out. - default: - fail(ctx, "BUG: we used a register we don't know how to define."); - break; - } // switch - pop_output(ctx); -} // emit_ARB1_global - -void emit_ARB1_array(Context *ctx, VariableList *var) -{ - // All uniforms are now packed tightly into the program.local array, - // instead of trying to map them to the d3d registers. So this needs to - // map to the next piece of the array we haven't used yet. Thankfully, - // arb1 lets you make a PARAM array that maps to a subset of another - // array; we don't need to do offsets, since myarray[0] can map to - // program.local[5] without any extra math from us. - const int base = var->index; - const int size = var->count; - const int arb1base = ctx->uniform_float4_count + - ctx->uniform_int4_count + - ctx->uniform_bool_count; - char varname[64]; - get_ARB1_const_array_varname_in_buf(ctx, base, size, varname, sizeof (varname)); - push_output(ctx, &ctx->globals); - output_line(ctx, "PARAM %s[%d] = { program.local[%d..%d] };", varname, - size, arb1base, (arb1base + size) - 1); - pop_output(ctx); - var->emit_position = arb1base; -} // emit_ARB1_array - -void emit_ARB1_const_array(Context *ctx, const ConstantsList *clist, - int base, int size) -{ - char varname[64]; - get_ARB1_const_array_varname_in_buf(ctx, base, size, varname, sizeof (varname)); - int i; - - push_output(ctx, &ctx->globals); - output_line(ctx, "PARAM %s[%d] = {", varname, size); - ctx->indent++; - - for (i = 0; i < size; i++) - { - while (clist->constant.type != MOJOSHADER_UNIFORM_FLOAT) - clist = clist->next; - assert(clist->constant.index == (base + i)); - - char val0[32]; - char val1[32]; - char val2[32]; - char val3[32]; - floatstr(ctx, val0, sizeof (val0), clist->constant.value.f[0], 1); - floatstr(ctx, val1, sizeof (val1), clist->constant.value.f[1], 1); - floatstr(ctx, val2, sizeof (val2), clist->constant.value.f[2], 1); - floatstr(ctx, val3, sizeof (val3), clist->constant.value.f[3], 1); - - output_line(ctx, "{ %s, %s, %s, %s }%s", val0, val1, val2, val3, - (i < (size-1)) ? "," : ""); - - clist = clist->next; - } // for - - ctx->indent--; - output_line(ctx, "};"); - pop_output(ctx); -} // emit_ARB1_const_array - -void emit_ARB1_uniform(Context *ctx, RegisterType regtype, int regnum, - const VariableList *var) -{ - // We pack these down into the program.local array, so if we only use - // register c439, it'll actually map to program.local[0]. This will - // prevent overflows when we actually have enough resources to run. - - const char *arrayname = "program.local"; - int index = 0; - - char varname[64]; - get_ARB1_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - push_output(ctx, &ctx->globals); - - if (var == NULL) - { - // all types share one array (rather, all types convert to float4). - index = ctx->uniform_float4_count + ctx->uniform_int4_count + - ctx->uniform_bool_count; - } // if - - else - { - const int arraybase = var->index; - if (var->constant) - { - const int arraysize = var->count; - arrayname = get_ARB1_const_array_varname_in_buf(ctx, arraybase, - arraysize, (char *) alloca(64), 64); - index = (regnum - arraybase); - } // if - else - { - assert(var->emit_position != -1); - index = (regnum - arraybase) + var->emit_position; - } // else - } // else - - output_line(ctx, "PARAM %s = %s[%d];", varname, arrayname, index); - pop_output(ctx); -} // emit_ARB1_uniform - -void emit_ARB1_sampler(Context *ctx,int stage,TextureType ttype,int tb) -{ - // this is mostly a no-op...you don't predeclare samplers in arb1. - - if (tb) // This sampler used a ps_1_1 TEXBEM opcode? - { - const int index = ctx->uniform_float4_count + ctx->uniform_int4_count + - ctx->uniform_bool_count; - char var[64]; - get_ARB1_varname_in_buf(ctx, REG_TYPE_SAMPLER, stage, var, sizeof(var)); - push_output(ctx, &ctx->globals); - output_line(ctx, "PARAM %s_texbem = program.local[%d];", var, index); - output_line(ctx, "PARAM %s_texbeml = program.local[%d];", var, index+1); - pop_output(ctx); - ctx->uniform_float4_count += 2; - } // if -} // emit_ARB1_sampler - -// !!! FIXME: a lot of cut-and-paste here from emit_GLSL_attribute(). -void emit_ARB1_attribute(Context *ctx, RegisterType regtype, int regnum, - MOJOSHADER_usage usage, int index, int wmask, - int flags) -{ - // !!! FIXME: this function doesn't deal with write masks at all yet! - const char *usage_str = NULL; - const char *arrayleft = ""; - const char *arrayright = ""; - char index_str[16] = { '\0' }; - - char varname[64]; - get_ARB1_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - //assert((flags & MOD_PP) == 0); // !!! FIXME: is PP allowed? - - if (index != 0) // !!! FIXME: a lot of these MUST be zero. - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - - if (shader_is_vertex(ctx)) - { - // pre-vs3 output registers. - // these don't ever happen in DCL opcodes, I think. Map to vs_3_* - // output registers. - if (!shader_version_atleast(ctx, 3, 0)) - { - if (regtype == REG_TYPE_RASTOUT) - { - regtype = REG_TYPE_OUTPUT; - index = regnum; - switch ((const RastOutType) regnum) - { - case RASTOUT_TYPE_POSITION: - usage = MOJOSHADER_USAGE_POSITION; - break; - case RASTOUT_TYPE_FOG: - usage = MOJOSHADER_USAGE_FOG; - break; - case RASTOUT_TYPE_POINT_SIZE: - usage = MOJOSHADER_USAGE_POINTSIZE; - break; - } // switch - } // if - - else if (regtype == REG_TYPE_ATTROUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_COLOR; - index = regnum; - } // else if - - else if (regtype == REG_TYPE_TEXCRDOUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_TEXCOORD; - index = regnum; - } // else if - } // if - - // to avoid limitations of various GL entry points for input - // attributes (glSecondaryColorPointer() can only take 3 component - // items, glVertexPointer() can't do GL_UNSIGNED_BYTE, many other - // issues), we set up all inputs as generic vertex attributes, so we - // can pass data in just about any form, and ignore the built-in GLSL - // attributes like gl_SecondaryColor. Output needs to use the the - // built-ins, though, but we don't have to worry about the GL entry - // point limitations there. - - if (regtype == REG_TYPE_INPUT) - { - const int attr = ctx->assigned_vertex_attributes++; - push_output(ctx, &ctx->globals); - output_line(ctx, "ATTRIB %s = vertex.attrib[%d];", varname, attr); - pop_output(ctx); - } // if - - else if (regtype == REG_TYPE_OUTPUT) - { - switch (usage) - { - case MOJOSHADER_USAGE_POSITION: - ctx->arb1_wrote_position = 1; - usage_str = "result.position"; - break; - case MOJOSHADER_USAGE_POINTSIZE: - usage_str = "result.pointsize"; - break; - case MOJOSHADER_USAGE_COLOR: - index_str[0] = '\0'; // no explicit number. - if (index == 0) - usage_str = "result.color.primary"; - else if (index == 1) - usage_str = "result.color.secondary"; - break; - case MOJOSHADER_USAGE_FOG: - usage_str = "result.fogcoord"; - break; - case MOJOSHADER_USAGE_TEXCOORD: - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - usage_str = "result.texcoord"; - arrayleft = "["; - arrayright = "]"; - break; - default: - // !!! FIXME: we need to deal with some more built-in varyings here. - break; - } // switch - - // !!! FIXME: the #define is a little hacky, but it means we don't - // !!! FIXME: have to track these separately if this works. - push_output(ctx, &ctx->globals); - // no mapping to built-in var? Just make it a regular global, pray. - if (usage_str == NULL) - output_line(ctx, "%s %s;", arb1_float_temp(ctx), varname); - else - { - output_line(ctx, "OUTPUT %s = %s%s%s%s;", varname, usage_str, - arrayleft, index_str, arrayright); - } // else - pop_output(ctx); - } // else if - - else - { - fail(ctx, "unknown vertex shader attribute register"); - } // else - } // if - - else if (shader_is_pixel(ctx)) - { - const char *paramtype_str = "ATTRIB"; - - // samplers DCLs get handled in emit_ARB1_sampler(). - - if (flags & MOD_CENTROID) - { - if (!support_nv4(ctx)) // GL_NV_fragment_program4 adds centroid. - { - // !!! FIXME: should we just wing it without centroid here? - failf(ctx, "centroid unsupported in %s profile", - ctx->profile->name); - return; - } // if - - paramtype_str = "CENTROID ATTRIB"; - } // if - - if (regtype == REG_TYPE_COLOROUT) - { - paramtype_str = "OUTPUT"; - usage_str = "result.color"; - if (ctx->have_multi_color_outputs) - { - // We have to gamble that you have GL_ARB_draw_buffers. - // You probably do at this point if you have a sane setup. - snprintf(index_str, sizeof (index_str), "%u", (uint) regnum); - arrayleft = "["; - arrayright = "]"; - } // if - } // if - - else if (regtype == REG_TYPE_DEPTHOUT) - { - paramtype_str = "OUTPUT"; - usage_str = "result.depth"; - } // else if - - // !!! FIXME: can you actualy have a texture register with COLOR usage? - else if ((regtype == REG_TYPE_TEXTURE) || (regtype == REG_TYPE_INPUT)) - { - if (usage == MOJOSHADER_USAGE_TEXCOORD) - { - // ps_1_1 does a different hack for this attribute. - // Refer to emit_ARB1_global()'s REG_TYPE_TEXTURE code. - if (shader_version_atleast(ctx, 1, 4)) - { - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - usage_str = "fragment.texcoord"; - arrayleft = "["; - arrayright = "]"; - } // if - } // if - - else if (usage == MOJOSHADER_USAGE_COLOR) - { - index_str[0] = '\0'; // no explicit number. - if (index == 0) - usage_str = "fragment.color.primary"; - else if (index == 1) - usage_str = "fragment.color.secondary"; - else - fail(ctx, "unsupported color index"); - } // else if - } // else if - - else if (regtype == REG_TYPE_MISCTYPE) - { - const MiscTypeType mt = (MiscTypeType) regnum; - if (mt == MISCTYPE_TYPE_FACE) - { - if (support_nv4(ctx)) // FINALLY, a vFace equivalent in nv4! - { - index_str[0] = '\0'; // no explicit number. - usage_str = "fragment.facing"; - } // if - else - { - failf(ctx, "vFace unsupported in %s profile", - ctx->profile->name); - } // else - } // if - else if (mt == MISCTYPE_TYPE_POSITION) - { - index_str[0] = '\0'; // no explicit number. - usage_str = "fragment.position"; // !!! FIXME: is this the same coord space as D3D? - } // else if - else - { - fail(ctx, "BUG: unhandled misc register"); - } // else - } // else if - - else - { - fail(ctx, "unknown pixel shader attribute register"); - } // else - - if (usage_str != NULL) - { - push_output(ctx, &ctx->globals); - output_line(ctx, "%s %s = %s%s%s%s;", paramtype_str, varname, - usage_str, arrayleft, index_str, arrayright); - pop_output(ctx); - } // if - } // else if - - else - { - fail(ctx, "Unknown shader type"); // state machine should catch this. - } // else -} // emit_ARB1_attribute - -void emit_ARB1_RESERVED(Context *ctx) { /* no-op. */ } - -void emit_ARB1_NOP(Context *ctx) -{ - // There is no NOP in arb1. Just don't output anything here. -} // emit_ARB1_NOP - -EMIT_ARB1_OPCODE_DS_FUNC(MOV) -EMIT_ARB1_OPCODE_DSS_FUNC(ADD) -EMIT_ARB1_OPCODE_DSS_FUNC(SUB) -EMIT_ARB1_OPCODE_DSSS_FUNC(MAD) -EMIT_ARB1_OPCODE_DSS_FUNC(MUL) -EMIT_ARB1_OPCODE_DS_FUNC(RCP) - -void emit_ARB1_RSQ(Context *ctx) -{ - // nv4 doesn't force abs() on this, so negative values will generate NaN. - // The spec says you should force the abs() yourself. - if (!support_nv4(ctx)) - { - emit_ARB1_opcode_ds(ctx, "RSQ"); // pre-nv4 implies ABS. - return; - } // if - - // we can optimize this to use nv2's |abs| construct in some cases. - if ( (ctx->source_args[0].src_mod == SRCMOD_NONE) || - (ctx->source_args[0].src_mod == SRCMOD_NEGATE) || - (ctx->source_args[0].src_mod == SRCMOD_ABSNEGATE) ) - ctx->source_args[0].src_mod = SRCMOD_ABS; - - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - - if (ctx->source_args[0].src_mod == SRCMOD_ABS) - output_line(ctx, "RSQ%s, %s;", dst, src0); - else - { - char buf[64]; allocate_ARB1_scratch_reg_name(ctx, buf, sizeof (buf)); - output_line(ctx, "ABS %s, %s;", buf, src0); - output_line(ctx, "RSQ%s, %s.x;", dst, buf); - } // else - - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_RSQ - -EMIT_ARB1_OPCODE_DSS_FUNC(DP3) -EMIT_ARB1_OPCODE_DSS_FUNC(DP4) -EMIT_ARB1_OPCODE_DSS_FUNC(MIN) -EMIT_ARB1_OPCODE_DSS_FUNC(MAX) -EMIT_ARB1_OPCODE_DSS_FUNC(SLT) -EMIT_ARB1_OPCODE_DSS_FUNC(SGE) - -void emit_ARB1_EXP(Context *ctx) { emit_ARB1_opcode_ds(ctx, "EX2"); } - -static void arb1_log(Context *ctx, const char *opcode) -{ - // !!! FIXME: SRCMOD_NEGATE can be made into SRCMOD_ABS here, too - // we can optimize this to use nv2's |abs| construct in some cases. - if ( (ctx->source_args[0].src_mod == SRCMOD_NONE) || - (ctx->source_args[0].src_mod == SRCMOD_ABSNEGATE) ) - ctx->source_args[0].src_mod = SRCMOD_ABS; - - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - - if (ctx->source_args[0].src_mod == SRCMOD_ABS) - output_line(ctx, "%s%s, %s;", opcode, dst, src0); - else - { - char buf[64]; allocate_ARB1_scratch_reg_name(ctx, buf, sizeof (buf)); - output_line(ctx, "ABS %s, %s;", buf, src0); - output_line(ctx, "%s%s, %s.x;", opcode, dst, buf); - } // else - - emit_ARB1_dest_modifiers(ctx); -} // arb1_log - - -void emit_ARB1_LOG(Context *ctx) -{ - arb1_log(ctx, "LG2"); -} // emit_ARB1_LOG - - -EMIT_ARB1_OPCODE_DS_FUNC(LIT) -EMIT_ARB1_OPCODE_DSS_FUNC(DST) - -void emit_ARB1_LRP(Context *ctx) -{ - if (shader_is_pixel(ctx)) // fragment shaders have a matching LRP opcode. - emit_ARB1_opcode_dsss(ctx, "LRP"); - else - { - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_ARB1_srcarg_string(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_ARB1_srcarg_string(ctx, 2, src2, sizeof (src2)); - char buf[64]; allocate_ARB1_scratch_reg_name(ctx, buf, sizeof (buf)); - - // LRP is: dest = src2 + src0 * (src1 - src2) - output_line(ctx, "SUB %s, %s, %s;", buf, src1, src2); - output_line(ctx, "MAD%s, %s, %s, %s;", dst, buf, src0, src2); - emit_ARB1_dest_modifiers(ctx); - } // else -} // emit_ARB1_LRP - -EMIT_ARB1_OPCODE_DS_FUNC(FRC) - -static void arb1_MxXy(Context *ctx, const int x, const int y) -{ - DestArgInfo *dstarg = &ctx->dest_arg; - const int origmask = dstarg->writemask; - char src0[64]; - int i; - - make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - - for (i = 0; i < y; i++) - { - char dst[64]; - char row[64]; - make_ARB1_srcarg_string(ctx, i + 1, row, sizeof (row)); - set_dstarg_writemask(dstarg, 1 << i); - make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - output_line(ctx, "DP%d%s, %s, %s;", x, dst, src0, row); - } // for - - set_dstarg_writemask(dstarg, origmask); - emit_ARB1_dest_modifiers(ctx); -} // arb1_MxXy - -void emit_ARB1_M4X4(Context *ctx) { arb1_MxXy(ctx, 4, 4); } -void emit_ARB1_M4X3(Context *ctx) { arb1_MxXy(ctx, 4, 3); } -void emit_ARB1_M3X4(Context *ctx) { arb1_MxXy(ctx, 3, 4); } -void emit_ARB1_M3X3(Context *ctx) { arb1_MxXy(ctx, 3, 3); } -void emit_ARB1_M3X2(Context *ctx) { arb1_MxXy(ctx, 3, 2); } - -void emit_ARB1_CALL(Context *ctx) -{ - if (!support_nv2(ctx)) // no branching in stock ARB1. - { - failf(ctx, "branching unsupported in %s profile", ctx->profile->name); - return; - } // if - - char labelstr[64]; - get_ARB1_srcarg_varname(ctx, 0, labelstr, sizeof (labelstr)); - output_line(ctx, "CAL %s;", labelstr); -} // emit_ARB1_CALL - -void emit_ARB1_CALLNZ(Context *ctx) -{ - // !!! FIXME: if src1 is a constbool that's true, we can remove the - // !!! FIXME: if. If it's false, we can make this a no-op. - - if (!support_nv2(ctx)) // no branching in stock ARB1. - failf(ctx, "branching unsupported in %s profile", ctx->profile->name); - else - { - // !!! FIXME: double-check this. - char labelstr[64]; - char scratch[64]; - char src1[64]; - get_ARB1_srcarg_varname(ctx, 0, labelstr, sizeof (labelstr)); - get_ARB1_srcarg_varname(ctx, 1, src1, sizeof (src1)); - allocate_ARB1_scratch_reg_name(ctx, scratch, sizeof (scratch)); - output_line(ctx, "MOVC %s, %s;", scratch, src1); - output_line(ctx, "CAL %s (NE.x);", labelstr); - } // else -} // emit_ARB1_CALLNZ - -// !!! FIXME: needs BRA in nv2, LOOP in nv2 fragment progs, and REP in nv4. -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(LOOP) - -void emit_ARB1_RET(Context *ctx) -{ - // don't fail() if no nv2...maybe we're just ending the mainline? - // if we're ending a LABEL that had no CALL, this would all be written - // to ctx->ignore anyhow, so this should be "safe" ... arb1 profile will - // just end up throwing all this code out. - if (support_nv2(ctx)) // no branching in stock ARB1. - output_line(ctx, "RET;"); - set_output(ctx, &ctx->mainline); // in case we were ignoring this function. -} // emit_ARB1_RET - - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(ENDLOOP) - -void emit_ARB1_LABEL(Context *ctx) -{ - if (!support_nv2(ctx)) // no branching in stock ARB1. - return; // don't fail()...maybe we never use it, but do fail in CALL. - - const int label = ctx->source_args[0].regnum; - RegisterList *reg = reglist_find(&ctx->used_registers, REG_TYPE_LABEL, label); - - // MSDN specs say CALL* has to come before the LABEL, so we know if we - // can ditch the entire function here as unused. - if (reg == NULL) - set_output(ctx, &ctx->ignore); // Func not used. Parse, but don't output. - - // !!! FIXME: it would be nice if we could determine if a function is - // !!! FIXME: only called once and, if so, forcibly inline it. - - //const char *uses_loopreg = ((reg) && (reg->misc == 1)) ? "int aL" : ""; - char labelstr[64]; - get_ARB1_srcarg_varname(ctx, 0, labelstr, sizeof (labelstr)); - output_line(ctx, "%s:", labelstr); -} // emit_ARB1_LABEL - - -void emit_ARB1_POW(Context *ctx) -{ - // we can optimize this to use nv2's |abs| construct in some cases. - if ( (ctx->source_args[0].src_mod == SRCMOD_NONE) || - (ctx->source_args[0].src_mod == SRCMOD_ABSNEGATE) ) - ctx->source_args[0].src_mod = SRCMOD_ABS; - - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_ARB1_srcarg_string(ctx, 1, src1, sizeof (src1)); - - if (ctx->source_args[0].src_mod == SRCMOD_ABS) - output_line(ctx, "POW%s, %s, %s;", dst, src0, src1); - else - { - char buf[64]; allocate_ARB1_scratch_reg_name(ctx, buf, sizeof (buf)); - output_line(ctx, "ABS %s, %s;", buf, src0); - output_line(ctx, "POW%s, %s.x, %s;", dst, buf, src1); - } // else - - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_POW - -void emit_ARB1_CRS(Context *ctx) { emit_ARB1_opcode_dss(ctx, "XPD"); } - -void emit_ARB1_SGN(Context *ctx) -{ - if (support_nv2(ctx)) - emit_ARB1_opcode_ds(ctx, "SSG"); - else - { - char dst[64]; - char src0[64]; - char scratch1[64]; - char scratch2[64]; - make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - allocate_ARB1_scratch_reg_name(ctx, scratch1, sizeof (scratch1)); - allocate_ARB1_scratch_reg_name(ctx, scratch2, sizeof (scratch2)); - output_line(ctx, "SLT %s, %s, 0.0;", scratch1, src0); - output_line(ctx, "SLT %s, -%s, 0.0;", scratch2, src0); - output_line(ctx, "ADD%s -%s, %s;", dst, scratch1, scratch2); - emit_ARB1_dest_modifiers(ctx); - } // else -} // emit_ARB1_SGN - -EMIT_ARB1_OPCODE_DS_FUNC(ABS) - -void emit_ARB1_NRM(Context *ctx) -{ - // nv2 fragment programs (and anything nv4) have a real NRM. - if ( (support_nv4(ctx)) || ((support_nv2(ctx)) && (shader_is_pixel(ctx))) ) - emit_ARB1_opcode_ds(ctx, "NRM"); - else - { - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char buf[64]; allocate_ARB1_scratch_reg_name(ctx, buf, sizeof (buf)); - output_line(ctx, "DP3 %s.w, %s, %s;", buf, src0, src0); - output_line(ctx, "RSQ %s.w, %s.w;", buf, buf); - output_line(ctx, "MUL%s, %s.w, %s;", dst, buf, src0); - emit_ARB1_dest_modifiers(ctx); - } // else -} // emit_ARB1_NRM - - -void emit_ARB1_SINCOS(Context *ctx) -{ - // we don't care about the temp registers that <= sm2 demands; ignore them. - const int mask = ctx->dest_arg.writemask; - - // arb1 fragment programs and everything nv4 have sin/cos/sincos opcodes. - if ((shader_is_pixel(ctx)) || (support_nv4(ctx))) - { - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - if (writemask_x(mask)) - output_line(ctx, "COS%s, %s;", dst, src0); - else if (writemask_y(mask)) - output_line(ctx, "SIN%s, %s;", dst, src0); - else if (writemask_xy(mask)) - output_line(ctx, "SCS%s, %s;", dst, src0); - } // if - - // nv2+ profiles have sin and cos opcodes. - else if (support_nv2(ctx)) - { - char dst[64]; get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - if (writemask_x(mask)) - output_line(ctx, "COS %s.x, %s;", dst, src0); - else if (writemask_y(mask)) - output_line(ctx, "SIN %s.y, %s;", dst, src0); - else if (writemask_xy(mask)) - { - output_line(ctx, "SIN %s.x, %s;", dst, src0); - output_line(ctx, "COS %s.y, %s;", dst, src0); - } // else if - } // if - - else // big nasty. - { - char dst[64]; get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - char src0[64]; get_ARB1_srcarg_varname(ctx, 0, src0, sizeof (src0)); - const int need_sin = (writemask_x(mask) || writemask_xy(mask)); - const int need_cos = (writemask_y(mask) || writemask_xy(mask)); - char scratch[64]; - - if (need_sin || need_cos) - allocate_ARB1_scratch_reg_name(ctx, scratch, sizeof (scratch)); - - // These sin() and cos() approximations originally found here: - // http://www.devmaster.net/forums/showthread.php?t=5784 - // - // const float B = 4.0f / M_PI; - // const float C = -4.0f / (M_PI * M_PI); - // float y = B * x + C * x * fabs(x); - // - // // optional better precision... - // const float P = 0.225f; - // y = P * (y * fabs(y) - y) + y; - // - // - // That first thing can be reduced to: - // const float y = ((1.2732395447351626861510701069801f * x) + - // ((-0.40528473456935108577551785283891f * x) * fabs(x))); - - if (need_sin) - { - // !!! FIXME: use SRCMOD_ABS here? - output_line(ctx, "ABS %s.x, %s.x;", dst, src0); - output_line(ctx, "MUL %s.x, %s.x, -0.40528473456935108577551785283891;", dst, dst); - output_line(ctx, "MUL %s.x, %s.x, 1.2732395447351626861510701069801;", scratch, src0); - output_line(ctx, "MAD %s.x, %s.x, %s.x, %s.x;", dst, dst, src0, scratch); - } // if - - // cosine is sin(x + M_PI/2), but you have to wrap x to pi: - // if (x+(M_PI/2) > M_PI) - // x -= 2 * M_PI; - // - // which is... - // if (x+(1.57079637050628662109375) > 3.1415927410125732421875) - // x += -6.283185482025146484375; - - if (need_cos) - { - output_line(ctx, "ADD %s.x, %s.x, 1.57079637050628662109375;", scratch, src0); - output_line(ctx, "SGE %s.y, %s.x, 3.1415927410125732421875;", scratch, scratch); - output_line(ctx, "MAD %s.x, %s.y, -6.283185482025146484375, %s.x;", scratch, scratch, scratch); - output_line(ctx, "ABS %s.x, %s.x;", dst, src0); - output_line(ctx, "MUL %s.x, %s.x, -0.40528473456935108577551785283891;", dst, dst); - output_line(ctx, "MUL %s.x, %s.x, 1.2732395447351626861510701069801;", scratch, src0); - output_line(ctx, "MAD %s.y, %s.x, %s.x, %s.x;", dst, dst, src0, scratch); - } // if - } // else - - // !!! FIXME: might not have done anything. Don't emit if we didn't. - if (!(ctx->isfail)) - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_SINCOS - - -void emit_ARB1_REP(Context *ctx) -{ - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - - // nv2 fragment programs (and everything nv4) have a real REP. - if ( (support_nv4(ctx)) || ((support_nv2(ctx)) && (shader_is_pixel(ctx))) ) - output_line(ctx, "REP %s;", src0); - - else if (support_nv2(ctx)) - { - // no REP, but we can use branches. - char failbranch[32]; - char topbranch[32]; - const int toplabel = allocate_branch_label(ctx); - const int faillabel = allocate_branch_label(ctx); - get_ARB1_branch_label_name(ctx,faillabel,failbranch,sizeof(failbranch)); - get_ARB1_branch_label_name(ctx,toplabel,topbranch,sizeof(topbranch)); - - assert(((size_t) ctx->branch_labels_stack_index) < - STATICARRAYLEN(ctx->branch_labels_stack)-1); - - ctx->branch_labels_stack[ctx->branch_labels_stack_index++] = toplabel; - ctx->branch_labels_stack[ctx->branch_labels_stack_index++] = faillabel; - - char scratch[32]; - snprintf(scratch, sizeof (scratch), "rep%d", ctx->reps); - output_line(ctx, "MOVC %s.x, %s;", scratch, src0); - output_line(ctx, "BRA %s (LE.x);", failbranch); - output_line(ctx, "%s:", topbranch); - } // else if - - else // stock ARB1 has no branching. - { - fail(ctx, "branching unsupported in this profile"); - } // else -} // emit_ARB1_REP - - -void emit_ARB1_ENDREP(Context *ctx) -{ - // nv2 fragment programs (and everything nv4) have a real ENDREP. - if ( (support_nv4(ctx)) || ((support_nv2(ctx)) && (shader_is_pixel(ctx))) ) - output_line(ctx, "ENDREP;"); - - else if (support_nv2(ctx)) - { - // no ENDREP, but we can use branches. - assert(ctx->branch_labels_stack_index >= 2); - - char failbranch[32]; - char topbranch[32]; - const int faillabel = ctx->branch_labels_stack[--ctx->branch_labels_stack_index]; - const int toplabel = ctx->branch_labels_stack[--ctx->branch_labels_stack_index]; - get_ARB1_branch_label_name(ctx,faillabel,failbranch,sizeof(failbranch)); - get_ARB1_branch_label_name(ctx,toplabel,topbranch,sizeof(topbranch)); - - char scratch[32]; - snprintf(scratch, sizeof (scratch), "rep%d", ctx->reps); - output_line(ctx, "SUBC %s.x, %s.x, 1.0;", scratch, scratch); - output_line(ctx, "BRA %s (GT.x);", topbranch); - output_line(ctx, "%s:", failbranch); - } // else if - - else // stock ARB1 has no branching. - { - fail(ctx, "branching unsupported in this profile"); - } // else -} // emit_ARB1_ENDREP - - -void nv2_if(Context *ctx) -{ - // The condition code register MUST be set up before this! - // nv2 fragment programs (and everything nv4) have a real IF. - if ( (support_nv4(ctx)) || (shader_is_pixel(ctx)) ) - output_line(ctx, "IF EQ.x;"); - else - { - // there's no IF construct, but we can use a branch to a label. - char failbranch[32]; - const int label = allocate_branch_label(ctx); - get_ARB1_branch_label_name(ctx, label, failbranch, sizeof (failbranch)); - - assert(((size_t) ctx->branch_labels_stack_index) - < STATICARRAYLEN(ctx->branch_labels_stack)); - - ctx->branch_labels_stack[ctx->branch_labels_stack_index++] = label; - - // !!! FIXME: should this be NE? (EQ would jump to the ELSE for the IF condition, right?). - output_line(ctx, "BRA %s (EQ.x);", failbranch); - } // else -} // nv2_if - - -void emit_ARB1_IF(Context *ctx) -{ - if (support_nv2(ctx)) - { - char buf[64]; allocate_ARB1_scratch_reg_name(ctx, buf, sizeof (buf)); - char src0[64]; get_ARB1_srcarg_varname(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "MOVC %s.x, %s;", buf, src0); - nv2_if(ctx); - } // if - - else // stock ARB1 has no branching. - { - failf(ctx, "branching unsupported in %s profile", ctx->profile->name); - } // else -} // emit_ARB1_IF - - -void emit_ARB1_ELSE(Context *ctx) -{ - // nv2 fragment programs (and everything nv4) have a real ELSE. - if ( (support_nv4(ctx)) || ((support_nv2(ctx)) && (shader_is_pixel(ctx))) ) - output_line(ctx, "ELSE;"); - - else if (support_nv2(ctx)) - { - // there's no ELSE construct, but we can use a branch to a label. - assert(ctx->branch_labels_stack_index > 0); - - // At the end of the IF block, unconditionally jump to the ENDIF. - const int endlabel = allocate_branch_label(ctx); - char endbranch[32]; - get_ARB1_branch_label_name(ctx,endlabel,endbranch,sizeof (endbranch)); - output_line(ctx, "BRA %s;", endbranch); - - // Now mark the ELSE section with a lable. - const int elselabel = ctx->branch_labels_stack[ctx->branch_labels_stack_index-1]; - char elsebranch[32]; - get_ARB1_branch_label_name(ctx,elselabel,elsebranch,sizeof(elsebranch)); - output_line(ctx, "%s:", elsebranch); - - // Replace the ELSE label with the ENDIF on the label stack. - ctx->branch_labels_stack[ctx->branch_labels_stack_index-1] = endlabel; - } // else if - - else // stock ARB1 has no branching. - { - failf(ctx, "branching unsupported in %s profile", ctx->profile->name); - } // else -} // emit_ARB1_ELSE - - -void emit_ARB1_ENDIF(Context *ctx) -{ - // nv2 fragment programs (and everything nv4) have a real ENDIF. - if ( (support_nv4(ctx)) || ((support_nv2(ctx)) && (shader_is_pixel(ctx))) ) - output_line(ctx, "ENDIF;"); - - else if (support_nv2(ctx)) - { - // there's no ENDIF construct, but we can use a branch to a label. - assert(ctx->branch_labels_stack_index > 0); - const int endlabel = ctx->branch_labels_stack[--ctx->branch_labels_stack_index]; - char endbranch[32]; - get_ARB1_branch_label_name(ctx,endlabel,endbranch,sizeof (endbranch)); - output_line(ctx, "%s:", endbranch); - } // if - - else // stock ARB1 has no branching. - { - failf(ctx, "branching unsupported in %s profile", ctx->profile->name); - } // else -} // emit_ARB1_ENDIF - - -void emit_ARB1_BREAK(Context *ctx) -{ - // nv2 fragment programs (and everything nv4) have a real BREAK. - if ( (support_nv4(ctx)) || ((support_nv2(ctx)) && (shader_is_pixel(ctx))) ) - output_line(ctx, "BRK;"); - - else if (support_nv2(ctx)) - { - // no BREAK, but we can use branches. - assert(ctx->branch_labels_stack_index >= 2); - const int faillabel = ctx->branch_labels_stack[ctx->branch_labels_stack_index]; - char failbranch[32]; - get_ARB1_branch_label_name(ctx,faillabel,failbranch,sizeof(failbranch)); - output_line(ctx, "BRA %s;", failbranch); - } // else if - - else // stock ARB1 has no branching. - { - failf(ctx, "branching unsupported in %s profile", ctx->profile->name); - } // else -} // emit_ARB1_BREAK - - -void emit_ARB1_MOVA(Context *ctx) -{ - // nv2 and nv3 can use the ARR opcode. - // But nv4 removed ARR (and ADDRESS registers!). Just ROUND to an INT. - if (support_nv4(ctx)) - emit_ARB1_opcode_ds(ctx, "ROUND.S"); // !!! FIXME: don't use a modifier here. - else if ((support_nv2(ctx)) || (support_nv3(ctx))) - emit_ARB1_opcode_ds(ctx, "ARR"); - else - { - char src0[64]; - char scratch[64]; - char addr[32]; - - make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - allocate_ARB1_scratch_reg_name(ctx, scratch, sizeof (scratch)); - snprintf(addr, sizeof (addr), "addr%d", ctx->dest_arg.regnum); - - // !!! FIXME: we can optimize this if src_mod is ABS or ABSNEGATE. - - // ARL uses floor(), but D3D expects round-to-nearest. - // There is probably a more efficient way to do this. - if (shader_is_pixel(ctx)) // CMP only exists in fragment programs. :/ - output_line(ctx, "CMP %s, %s, -1.0, 1.0;", scratch, src0); - else - { - output_line(ctx, "SLT %s, %s, 0.0;", scratch, src0); - output_line(ctx, "MAD %s, %s, -2.0, 1.0;", scratch, scratch); - } // else - - output_line(ctx, "ABS %s, %s;", addr, src0); - output_line(ctx, "ADD %s, %s, 0.5;", addr, addr); - output_line(ctx, "FLR %s, %s;", addr, addr); - output_line(ctx, "MUL %s, %s, %s;", addr, addr, scratch); - - // we don't handle these right now, since emit_ARB1_dest_modifiers(ctx) - // wants to look at dest_arg, not our temp register. - assert(ctx->dest_arg.result_mod == 0); - assert(ctx->dest_arg.result_shift == 0); - - // we assign to the actual address register as needed. - ctx->last_address_reg_component = -1; - } // else -} // emit_ARB1_MOVA - - -void emit_ARB1_TEXKILL(Context *ctx) -{ - // d3d kills on xyz, arb1 kills on xyzw. Fix the swizzle. - // We just map the x component to w. If it's negative, the fragment - // would discard anyhow, otherwise, it'll pass through okay. This saves - // us a temp register. - char dst[64]; - get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - output_line(ctx, "KIL %s.xyzx;", dst); -} // emit_ARB1_TEXKILL - -static void arb1_texbem(Context *ctx, const int luminance) -{ - // !!! FIXME: this code counts on the register not having swizzles, etc. - const int stage = ctx->dest_arg.regnum; - char dst[64]; get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - char src[64]; get_ARB1_srcarg_varname(ctx, 0, src, sizeof (src)); - char tmp[64]; allocate_ARB1_scratch_reg_name(ctx, tmp, sizeof (tmp)); - char sampler[64]; - get_ARB1_varname_in_buf(ctx, REG_TYPE_SAMPLER, stage, - sampler, sizeof (sampler)); - - output_line(ctx, "MUL %s, %s_texbem.xzyw, %s.xyxy;", tmp, sampler, src); - output_line(ctx, "ADD %s.xy, %s.xzxx, %s.ywxx;", tmp, tmp, tmp); - output_line(ctx, "ADD %s.xy, %s, %s;", tmp, tmp, dst); - output_line(ctx, "TEX %s, %s, texture[%d], 2D;", dst, tmp, stage); - - if (luminance) // TEXBEML, not just TEXBEM? - { - output_line(ctx, "MAD %s, %s.zzzz, %s_texbeml.xxxx, %s_texbeml.yyyy;", - tmp, src, sampler, sampler); - output_line(ctx, "MUL %s, %s, %s;", dst, dst, tmp); - } // if - - emit_ARB1_dest_modifiers(ctx); -} // arb1_texbem - -void emit_ARB1_TEXBEM(Context *ctx) -{ - arb1_texbem(ctx, 0); -} // emit_ARB1_TEXBEM - -void emit_ARB1_TEXBEML(Context *ctx) -{ - arb1_texbem(ctx, 1); -} // emit_ARB1_TEXBEML - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2AR) -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2GB) - - -void emit_ARB1_TEXM3X2PAD(Context *ctx) -{ - // no-op ... work happens in emit_ARB1_TEXM3X2TEX(). -} // emit_ARB1_TEXM3X2PAD - -void emit_ARB1_TEXM3X2TEX(Context *ctx) -{ - if (ctx->texm3x2pad_src0 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - const int stage = ctx->dest_arg.regnum; - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_src0, - src0, sizeof (src0)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_dst0, - src1, sizeof (src1)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src2, sizeof (src2)); - get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - - output_line(ctx, "DP3 %s.y, %s, %s;", dst, src2, dst); - output_line(ctx, "DP3 %s.x, %s, %s;", dst, src0, src1); - output_line(ctx, "TEX %s, %s, texture[%d], 2D;", dst, dst, stage); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_TEXM3X2TEX - - -void emit_ARB1_TEXM3X3PAD(Context *ctx) -{ - // no-op ... work happens in emit_ARB1_TEXM3X3*(). -} // emit_ARB1_TEXM3X3PAD - - -void emit_ARB1_TEXM3X3TEX(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - const int stage = ctx->dest_arg.regnum; - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, stage); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "CUBE" : "3D"; - - output_line(ctx, "DP3 %s.z, %s, %s;", dst, dst, src4); - output_line(ctx, "DP3 %s.x, %s, %s;", dst, src0, src1); - output_line(ctx, "DP3 %s.y, %s, %s;", dst, src2, src3); - output_line(ctx, "TEX %s, %s, texture[%d], %s;", dst, dst, stage, ttypestr); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_TEXM3X3TEX - -void emit_ARB1_TEXM3X3SPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char src5[64]; - char tmp[64]; - char tmp2[64]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - const int stage = ctx->dest_arg.regnum; - allocate_ARB1_scratch_reg_name(ctx, tmp, sizeof (tmp)); - allocate_ARB1_scratch_reg_name(ctx, tmp2, sizeof (tmp2)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[1].regnum, - src5, sizeof (src5)); - get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, stage); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "CUBE" : "3D"; - - output_line(ctx, "DP3 %s.z, %s, %s;", dst, dst, src4); - output_line(ctx, "DP3 %s.x, %s, %s;", dst, src0, src1); - output_line(ctx, "DP3 %s.y, %s, %s;", dst, src2, src3); - output_line(ctx, "MUL %s, %s, %s;", tmp, dst, dst); // normal * normal - output_line(ctx, "MUL %s, %s, %s;", tmp2, dst, src5); // normal * eyeray - - // !!! FIXME: This is goofy. There's got to be a way to do vector-wide - // !!! FIXME: divides or reciprocals...right? - output_line(ctx, "RCP %s.x, %s.x;", tmp2, tmp2); - output_line(ctx, "RCP %s.y, %s.y;", tmp2, tmp2); - output_line(ctx, "RCP %s.z, %s.z;", tmp2, tmp2); - output_line(ctx, "RCP %s.w, %s.w;", tmp2, tmp2); - output_line(ctx, "MUL %s, %s, %s;", tmp, tmp, tmp2); - - output_line(ctx, "MUL %s, %s, { 2.0, 2.0, 2.0, 2.0 };", tmp, tmp); - output_line(ctx, "MAD %s, %s, %s, -%s;", tmp, tmp, dst, src5); - output_line(ctx, "TEX %s, %s, texture[%d], %s;", dst, tmp, stage, ttypestr); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_TEXM3X3SPEC - -void emit_ARB1_TEXM3X3VSPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char tmp[64]; - char tmp2[64]; - char tmp3[64]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - const int stage = ctx->dest_arg.regnum; - allocate_ARB1_scratch_reg_name(ctx, tmp, sizeof (tmp)); - allocate_ARB1_scratch_reg_name(ctx, tmp2, sizeof (tmp2)); - allocate_ARB1_scratch_reg_name(ctx, tmp3, sizeof (tmp3)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, stage); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "CUBE" : "3D"; - - output_line(ctx, "MOV %s.x, %s.w;", tmp3, src0); - output_line(ctx, "MOV %s.y, %s.w;", tmp3, src2); - output_line(ctx, "MOV %s.z, %s.w;", tmp3, dst); - output_line(ctx, "DP3 %s.z, %s, %s;", dst, dst, src4); - output_line(ctx, "DP3 %s.x, %s, %s;", dst, src0, src1); - output_line(ctx, "DP3 %s.y, %s, %s;", dst, src2, src3); - output_line(ctx, "MUL %s, %s, %s;", tmp, dst, dst); // normal * normal - output_line(ctx, "MUL %s, %s, %s;", tmp2, dst, tmp3); // normal * eyeray - - // !!! FIXME: This is goofy. There's got to be a way to do vector-wide - // !!! FIXME: divides or reciprocals...right? - output_line(ctx, "RCP %s.x, %s.x;", tmp2, tmp2); - output_line(ctx, "RCP %s.y, %s.y;", tmp2, tmp2); - output_line(ctx, "RCP %s.z, %s.z;", tmp2, tmp2); - output_line(ctx, "RCP %s.w, %s.w;", tmp2, tmp2); - output_line(ctx, "MUL %s, %s, %s;", tmp, tmp, tmp2); - - output_line(ctx, "MUL %s, %s, { 2.0, 2.0, 2.0, 2.0 };", tmp, tmp); - output_line(ctx, "MAD %s, %s, %s, -%s;", tmp, tmp, dst, tmp3); - output_line(ctx, "TEX %s, %s, texture[%d], %s;", dst, tmp, stage, ttypestr); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_TEXM3X3VSPEC - -void emit_ARB1_EXPP(Context *ctx) { emit_ARB1_opcode_ds(ctx, "EX2"); } -void emit_ARB1_LOGP(Context *ctx) { arb1_log(ctx, "LG2"); } - -void emit_ARB1_CND(Context *ctx) -{ - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_ARB1_srcarg_string(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_ARB1_srcarg_string(ctx, 2, src2, sizeof (src2)); - char tmp[64]; allocate_ARB1_scratch_reg_name(ctx, tmp, sizeof (tmp)); - - // CND compares against 0.5, but we need to compare against 0.0... - // ...subtract to make up the difference. - output_line(ctx, "SUB %s, %s, { 0.5, 0.5, 0.5, 0.5 };", tmp, src0); - // D3D tests (src0 >= 0.0), but ARB1 tests (src0 < 0.0) ... so just - // switch src1 and src2 to get the same results. - output_line(ctx, "CMP%s, %s, %s, %s;", dst, tmp, src2, src1); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_CND - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2RGB) -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3TEX) -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXM3X2DEPTH) -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3) - -void emit_ARB1_TEXM3X3(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_ARB1_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - - output_line(ctx, "DP3 %s.z, %s, %s;", dst, dst, src4); - output_line(ctx, "DP3 %s.x, %s, %s;", dst, src0, src1); - output_line(ctx, "DP3 %s.y, %s, %s;", dst, src2, src3); - output_line(ctx, "MOV %s.w, { 1.0, 1.0, 1.0, 1.0 };", dst); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_TEXM3X3 - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXDEPTH) - -void emit_ARB1_CMP(Context *ctx) -{ - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_ARB1_srcarg_string(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_ARB1_srcarg_string(ctx, 2, src2, sizeof (src2)); - // D3D tests (src0 >= 0.0), but ARB1 tests (src0 < 0.0) ... so just - // switch src1 and src2 to get the same results. - output_line(ctx, "CMP%s, %s, %s, %s;", dst, src0, src2, src1); - emit_ARB1_dest_modifiers(ctx); -} // emit_ARB1_CMP - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(BEM) - - -void emit_ARB1_DP2ADD(Context *ctx) -{ - if (support_nv4(ctx)) // nv4 has a built-in equivalent to DP2ADD. - emit_ARB1_opcode_dsss(ctx, "DP2A"); - else - { - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_ARB1_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_ARB1_srcarg_string(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_ARB1_srcarg_string(ctx, 2, src2, sizeof (src2)); - char scratch[64]; - - // DP2ADD is: - // dst = (src0.r * src1.r) + (src0.g * src1.g) + src2.replicate_swiz - allocate_ARB1_scratch_reg_name(ctx, scratch, sizeof (scratch)); - output_line(ctx, "MUL %s, %s, %s;", scratch, src0, src1); - output_line(ctx, "ADD %s, %s.x, %s.y;", scratch, scratch, scratch); - output_line(ctx, "ADD%s, %s.x, %s;", dst, scratch, src2); - emit_ARB1_dest_modifiers(ctx); - } // else -} // emit_ARB1_DP2ADD - - -void emit_ARB1_DSX(Context *ctx) -{ - if (support_nv2(ctx)) // nv2 has a built-in equivalent to DSX. - emit_ARB1_opcode_ds(ctx, "DDX"); - else - failf(ctx, "DSX unsupported in %s profile", ctx->profile->name); -} // emit_ARB1_DSX - - -void emit_ARB1_DSY(Context *ctx) -{ - if (support_nv2(ctx)) // nv2 has a built-in equivalent to DSY. - emit_ARB1_opcode_ds(ctx, "DDY"); - else - failf(ctx, "DSY unsupported in %s profile", ctx->profile->name); -} // emit_ARB1_DSY - -static void arb1_texld(Context *ctx, const char *opcode, const int texldd) -{ - // !!! FIXME: Hack: "TEXH" is invalid in nv4. Fix this more cleanly. - if ((ctx->dest_arg.result_mod & MOD_PP) && (support_nv4(ctx))) - ctx->dest_arg.result_mod &= ~MOD_PP; - - char dst[64]; make_ARB1_destarg_string(ctx, dst, sizeof (dst)); - - const int sm1 = !shader_version_atleast(ctx, 1, 4); - const int regnum = sm1 ? ctx->dest_arg.regnum : ctx->source_args[1].regnum; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, regnum); - - const char *ttype = NULL; - char src0[64]; - if (sm1) - get_ARB1_destarg_varname(ctx, src0, sizeof (src0)); - else - get_ARB1_srcarg_varname(ctx, 0, src0, sizeof (src0)); - //char src1[64]; get_ARB1_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - - char src2[64] = { 0 }; - char src3[64] = { 0 }; - - if (texldd) - { - make_ARB1_srcarg_string(ctx, 2, src2, sizeof (src2)); - make_ARB1_srcarg_string(ctx, 3, src3, sizeof (src3)); - } // if - - // !!! FIXME: this should be in state_TEXLD, not in the arb1/glsl emitters. - if (sreg == NULL) - { - fail(ctx, "TEXLD using undeclared sampler"); - return; - } // if - - // SM1 only specifies dst, so don't check swizzle there. - if ( !sm1 && (!no_swizzle(ctx->source_args[1].swizzle)) ) - { - // !!! FIXME: does this ever actually happen? - fail(ctx, "BUG: can't handle TEXLD with sampler swizzle at the moment"); - } // if - - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: ttype = "2D"; break; // !!! FIXME: "RECT"? - case TEXTURE_TYPE_CUBE: ttype = "CUBE"; break; - case TEXTURE_TYPE_VOLUME: ttype = "3D"; break; - default: fail(ctx, "unknown texture type"); return; - } // switch - - if (texldd) - { - output_line(ctx, "%s%s, %s, %s, %s, texture[%d], %s;", opcode, dst, - src0, src2, src3, regnum, ttype); - } // if - else - { - output_line(ctx, "%s%s, %s, texture[%d], %s;", opcode, dst, src0, - regnum, ttype); - } // else -} // arb1_texld - - -void emit_ARB1_TEXLDD(Context *ctx) -{ - // With GL_NV_fragment_program2, we can use the TXD opcode. - // In stock arb1, we can settle for a standard texld, which isn't - // perfect, but oh well. - if (support_nv2(ctx)) - arb1_texld(ctx, "TXD", 1); - else - arb1_texld(ctx, "TEX", 0); -} // emit_ARB1_TEXLDD - - -void emit_ARB1_TEXLDL(Context *ctx) -{ - if ((shader_is_vertex(ctx)) && (!support_nv3(ctx))) - { - failf(ctx, "Vertex shader TEXLDL unsupported in %s profile", - ctx->profile->name); - return; - } // if - - else if ((shader_is_pixel(ctx)) && (!support_nv2(ctx))) - { - failf(ctx, "Pixel shader TEXLDL unsupported in %s profile", - ctx->profile->name); - return; - } // if - - // !!! FIXME: this doesn't map exactly to TEXLDL. Review this. - arb1_texld(ctx, "TXL", 0); -} // emit_ARB1_TEXLDL - - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(BREAKP) -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(BREAKC) - -void emit_ARB1_IFC(Context *ctx) -{ - if (support_nv2(ctx)) - { - const char *comps[] = { - "", "SGTC", "SEQC", "SGEC", "SGTC", "SNEC", "SLEC" - }; - - if (ctx->instruction_controls >= STATICARRAYLEN(comps)) - { - fail(ctx, "unknown comparison control"); - return; - } // if - - char src0[64]; - char src1[64]; - char scratch[64]; - - const char *comp = comps[ctx->instruction_controls]; - get_ARB1_srcarg_varname(ctx, 0, src0, sizeof (src0)); - get_ARB1_srcarg_varname(ctx, 1, src1, sizeof (src1)); - allocate_ARB1_scratch_reg_name(ctx, scratch, sizeof (scratch)); - output_line(ctx, "%s %s.x, %s, %s;", comp, scratch, src0, src1); - nv2_if(ctx); - } // if - - else // stock ARB1 has no branching. - { - failf(ctx, "branching unsupported in %s profile", ctx->profile->name); - } // else -} // emit_ARB1_IFC - - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(SETP) - -void emit_ARB1_DEF(Context *ctx) -{ - const float *val = (const float *) ctx->dwords; // !!! FIXME: could be int? - char dst[64]; get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - char val0[32]; floatstr(ctx, val0, sizeof (val0), val[0], 1); - char val1[32]; floatstr(ctx, val1, sizeof (val1), val[1], 1); - char val2[32]; floatstr(ctx, val2, sizeof (val2), val[2], 1); - char val3[32]; floatstr(ctx, val3, sizeof (val3), val[3], 1); - - push_output(ctx, &ctx->globals); - output_line(ctx, "PARAM %s = { %s, %s, %s, %s };", - dst, val0, val1, val2, val3); - pop_output(ctx); -} // emit_ARB1_DEF - -void emit_ARB1_DEFI(Context *ctx) -{ - char dst[64]; get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - const int32 *x = (const int32 *) ctx->dwords; - push_output(ctx, &ctx->globals); - output_line(ctx, "PARAM %s = { %d, %d, %d, %d };", - dst, (int) x[0], (int) x[1], (int) x[2], (int) x[3]); - pop_output(ctx); -} // emit_ARB1_DEFI - -void emit_ARB1_DEFB(Context *ctx) -{ - char dst[64]; get_ARB1_destarg_varname(ctx, dst, sizeof (dst)); - push_output(ctx, &ctx->globals); - output_line(ctx, "PARAM %s = %d;", dst, ctx->dwords[0] ? 1 : 0); - pop_output(ctx); -} // emit_ARB1_DEFB - -void emit_ARB1_DCL(Context *ctx) -{ - // no-op. We do this in our emit_attribute() and emit_uniform(). -} // emit_ARB1_DCL - -EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC(TEXCRD) - -void emit_ARB1_TEXLD(Context *ctx) -{ - if (!shader_version_atleast(ctx, 1, 4)) - { - arb1_texld(ctx, "TEX", 0); - return; - } // if - - else if (!shader_version_atleast(ctx, 2, 0)) - { - // ps_1_4 is different, too! - fail(ctx, "TEXLD == Shader Model 1.4 unimplemented."); // !!! FIXME - return; - } // if - - // !!! FIXME: do texldb and texldp map between OpenGL and D3D correctly? - if (ctx->instruction_controls == CONTROL_TEXLD) - arb1_texld(ctx, "TEX", 0); - else if (ctx->instruction_controls == CONTROL_TEXLDP) - arb1_texld(ctx, "TXP", 0); - else if (ctx->instruction_controls == CONTROL_TEXLDB) - arb1_texld(ctx, "TXB", 0); -} // emit_ARB1_TEXLD - -#undef EMIT_ARB1_OPCODE_FUNC -#undef EMIT_ARB1_OPCODE_D_FUNC -#undef EMIT_ARB1_OPCODE_S_FUNC -#undef EMIT_ARB1_OPCODE_SS_FUNC -#undef EMIT_ARB1_OPCODE_DS_FUNC -#undef EMIT_ARB1_OPCODE_DSS_FUNC -#undef EMIT_ARB1_OPCODE_DSSS_FUNC -#undef EMIT_ARB1_OPCODE_DSSSS_FUNC -#undef EMIT_ARB1_OPCODE_UNIMPLEMENTED_FUNC - -#endif // SUPPORT_PROFILE_ARB1 - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_bytecode.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_bytecode.c deleted file mode 100644 index 5b867e5c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_bytecode.c +++ /dev/null @@ -1,152 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -#if SUPPORT_PROFILE_BYTECODE - -void emit_BYTECODE_start(Context *ctx, const char *profilestr) -{ - ctx->ignores_ctab = 1; -} // emit_BYTECODE_start - -void emit_BYTECODE_finalize(Context *ctx) -{ - // just copy the whole token stream and make all other emitters no-ops. - if (set_output(ctx, &ctx->mainline)) - { - const size_t len = ((size_t) (ctx->tokens - ctx->orig_tokens)) * sizeof (uint32); - buffer_append(ctx->mainline, (const char *) ctx->orig_tokens, len); - } // if -} // emit_BYTECODE_finalize - -void emit_BYTECODE_end(Context *ctx) {} -void emit_BYTECODE_phase(Context *ctx) {} -void emit_BYTECODE_global(Context *ctx, RegisterType t, int n) {} -void emit_BYTECODE_array(Context *ctx, VariableList *var) {} -void emit_BYTECODE_sampler(Context *c, int s, TextureType t, int tb) {} -void emit_BYTECODE_const_array(Context *ctx, const ConstantsList *c, - int base, int size) {} -void emit_BYTECODE_uniform(Context *ctx, RegisterType t, int n, - const VariableList *var) {} -void emit_BYTECODE_attribute(Context *ctx, RegisterType t, int n, - MOJOSHADER_usage u, int i, int w, - int f) {} - -const char *get_BYTECODE_varname(Context *ctx, RegisterType rt, int regnum) -{ - char regnum_str[16]; - const char *regtype_str = get_D3D_register_string(ctx, rt, regnum, - regnum_str, sizeof (regnum_str)); - char buf[64]; - snprintf(buf, sizeof (buf), "%s%s", regtype_str, regnum_str); - return StrDup(ctx, buf); -} // get_BYTECODE_varname - -const char *get_BYTECODE_const_array_varname(Context *ctx, int base, int size) -{ - char buf[64]; - snprintf(buf, sizeof (buf), "c_array_%d_%d", base, size); - return StrDup(ctx, buf); -} // get_BYTECODE_const_array_varname - -#define EMIT_BYTECODE_OPCODE_FUNC(op) \ - void emit_BYTECODE_##op(Context *ctx) {} - -EMIT_BYTECODE_OPCODE_FUNC(RESERVED) -EMIT_BYTECODE_OPCODE_FUNC(NOP) -EMIT_BYTECODE_OPCODE_FUNC(MOV) -EMIT_BYTECODE_OPCODE_FUNC(ADD) -EMIT_BYTECODE_OPCODE_FUNC(SUB) -EMIT_BYTECODE_OPCODE_FUNC(MAD) -EMIT_BYTECODE_OPCODE_FUNC(MUL) -EMIT_BYTECODE_OPCODE_FUNC(RCP) -EMIT_BYTECODE_OPCODE_FUNC(RSQ) -EMIT_BYTECODE_OPCODE_FUNC(DP3) -EMIT_BYTECODE_OPCODE_FUNC(DP4) -EMIT_BYTECODE_OPCODE_FUNC(MIN) -EMIT_BYTECODE_OPCODE_FUNC(MAX) -EMIT_BYTECODE_OPCODE_FUNC(SLT) -EMIT_BYTECODE_OPCODE_FUNC(SGE) -EMIT_BYTECODE_OPCODE_FUNC(EXP) -EMIT_BYTECODE_OPCODE_FUNC(LOG) -EMIT_BYTECODE_OPCODE_FUNC(LIT) -EMIT_BYTECODE_OPCODE_FUNC(DST) -EMIT_BYTECODE_OPCODE_FUNC(LRP) -EMIT_BYTECODE_OPCODE_FUNC(FRC) -EMIT_BYTECODE_OPCODE_FUNC(M4X4) -EMIT_BYTECODE_OPCODE_FUNC(M4X3) -EMIT_BYTECODE_OPCODE_FUNC(M3X4) -EMIT_BYTECODE_OPCODE_FUNC(M3X3) -EMIT_BYTECODE_OPCODE_FUNC(M3X2) -EMIT_BYTECODE_OPCODE_FUNC(CALL) -EMIT_BYTECODE_OPCODE_FUNC(CALLNZ) -EMIT_BYTECODE_OPCODE_FUNC(LOOP) -EMIT_BYTECODE_OPCODE_FUNC(RET) -EMIT_BYTECODE_OPCODE_FUNC(ENDLOOP) -EMIT_BYTECODE_OPCODE_FUNC(LABEL) -EMIT_BYTECODE_OPCODE_FUNC(POW) -EMIT_BYTECODE_OPCODE_FUNC(CRS) -EMIT_BYTECODE_OPCODE_FUNC(SGN) -EMIT_BYTECODE_OPCODE_FUNC(ABS) -EMIT_BYTECODE_OPCODE_FUNC(NRM) -EMIT_BYTECODE_OPCODE_FUNC(SINCOS) -EMIT_BYTECODE_OPCODE_FUNC(REP) -EMIT_BYTECODE_OPCODE_FUNC(ENDREP) -EMIT_BYTECODE_OPCODE_FUNC(IF) -EMIT_BYTECODE_OPCODE_FUNC(ELSE) -EMIT_BYTECODE_OPCODE_FUNC(ENDIF) -EMIT_BYTECODE_OPCODE_FUNC(BREAK) -EMIT_BYTECODE_OPCODE_FUNC(MOVA) -EMIT_BYTECODE_OPCODE_FUNC(TEXKILL) -EMIT_BYTECODE_OPCODE_FUNC(TEXBEM) -EMIT_BYTECODE_OPCODE_FUNC(TEXBEML) -EMIT_BYTECODE_OPCODE_FUNC(TEXREG2AR) -EMIT_BYTECODE_OPCODE_FUNC(TEXREG2GB) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X2PAD) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X2TEX) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X3PAD) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X3TEX) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X3SPEC) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X3VSPEC) -EMIT_BYTECODE_OPCODE_FUNC(EXPP) -EMIT_BYTECODE_OPCODE_FUNC(LOGP) -EMIT_BYTECODE_OPCODE_FUNC(CND) -EMIT_BYTECODE_OPCODE_FUNC(TEXREG2RGB) -EMIT_BYTECODE_OPCODE_FUNC(TEXDP3TEX) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X2DEPTH) -EMIT_BYTECODE_OPCODE_FUNC(TEXDP3) -EMIT_BYTECODE_OPCODE_FUNC(TEXM3X3) -EMIT_BYTECODE_OPCODE_FUNC(TEXDEPTH) -EMIT_BYTECODE_OPCODE_FUNC(CMP) -EMIT_BYTECODE_OPCODE_FUNC(BEM) -EMIT_BYTECODE_OPCODE_FUNC(DP2ADD) -EMIT_BYTECODE_OPCODE_FUNC(DSX) -EMIT_BYTECODE_OPCODE_FUNC(DSY) -EMIT_BYTECODE_OPCODE_FUNC(TEXLDD) -EMIT_BYTECODE_OPCODE_FUNC(TEXLDL) -EMIT_BYTECODE_OPCODE_FUNC(BREAKP) -EMIT_BYTECODE_OPCODE_FUNC(BREAKC) -EMIT_BYTECODE_OPCODE_FUNC(IFC) -EMIT_BYTECODE_OPCODE_FUNC(SETP) -EMIT_BYTECODE_OPCODE_FUNC(DEF) -EMIT_BYTECODE_OPCODE_FUNC(DEFI) -EMIT_BYTECODE_OPCODE_FUNC(DEFB) -EMIT_BYTECODE_OPCODE_FUNC(DCL) -EMIT_BYTECODE_OPCODE_FUNC(TEXCRD) -EMIT_BYTECODE_OPCODE_FUNC(TEXLD) - -#undef EMIT_BYTECODE_OPCODE_FUNC - -#endif // SUPPORT_PROFILE_BYTECODE - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_common.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_common.c deleted file mode 100644 index e456c074..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_common.c +++ /dev/null @@ -1,508 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -// Common Utilities - -void out_of_memory(Context *ctx) -{ - ctx->isfail = ctx->out_of_memory = 1; -} // out_of_memory - -void *Malloc(Context *ctx, const size_t len) -{ - void *retval = ctx->malloc((int) len, ctx->malloc_data); - if (retval == NULL) - out_of_memory(ctx); - return retval; -} // Malloc - -char *StrDup(Context *ctx, const char *str) -{ - char *retval = (char *) Malloc(ctx, strlen(str) + 1); - if (retval != NULL) - strcpy(retval, str); - return retval; -} // StrDup - -void Free(Context *ctx, void *ptr) -{ - ctx->free(ptr, ctx->malloc_data); -} // Free - -void * MOJOSHADERCALL MallocBridge(int bytes, void *data) -{ - return Malloc((Context *) data, (size_t) bytes); -} // MallocBridge - -void MOJOSHADERCALL FreeBridge(void *ptr, void *data) -{ - Free((Context *) data, ptr); -} // FreeBridge - -// Jump between output sections in the context... - -int set_output(Context *ctx, Buffer **section) -{ - // only create output sections on first use. - if (*section == NULL) - { - *section = buffer_create(256, MallocBridge, FreeBridge, ctx); - if (*section == NULL) - return 0; - } // if - - ctx->output = *section; - return 1; -} // set_output - -void push_output(Context *ctx, Buffer **section) -{ - assert(ctx->output_stack_len < (int) (STATICARRAYLEN(ctx->output_stack))); - ctx->output_stack[ctx->output_stack_len] = ctx->output; - ctx->indent_stack[ctx->output_stack_len] = ctx->indent; - ctx->output_stack_len++; - if (!set_output(ctx, section)) - return; - ctx->indent = 0; -} // push_output - -void pop_output(Context *ctx) -{ - assert(ctx->output_stack_len > 0); - ctx->output_stack_len--; - ctx->output = ctx->output_stack[ctx->output_stack_len]; - ctx->indent = ctx->indent_stack[ctx->output_stack_len]; -} // pop_output - -// Shader model version magic... - -uint32 ver_ui32(const uint8 major, const uint8 minor) -{ - return ( (((uint32) major) << 16) | (((minor) == 0xFF) ? 1 : (minor)) ); -} // version_ui32 - -int shader_version_supported(const uint8 maj, const uint8 min) -{ - return (ver_ui32(maj,min) <= ver_ui32(MAX_SHADER_MAJOR, MAX_SHADER_MINOR)); -} // shader_version_supported - -int shader_version_atleast(const Context *ctx, const uint8 maj, - const uint8 min) -{ - return (ver_ui32(ctx->major_ver, ctx->minor_ver) >= ver_ui32(maj, min)); -} // shader_version_atleast - -int shader_version_exactly(const Context *ctx, const uint8 maj, - const uint8 min) -{ - return ((ctx->major_ver == maj) && (ctx->minor_ver == min)); -} // shader_version_exactly - -int shader_is_pixel(const Context *ctx) -{ - return (ctx->shader_type == MOJOSHADER_TYPE_PIXEL); -} // shader_is_pixel - -int shader_is_vertex(const Context *ctx) -{ - return (ctx->shader_type == MOJOSHADER_TYPE_VERTEX); -} // shader_is_vertex - -// Fail... - -int isfail(const Context *ctx) -{ - return ctx->isfail; -} // isfail - -void failf(Context *ctx, const char *fmt, ...) ISPRINTF(2,3); -void failf(Context *ctx, const char *fmt, ...) -{ - ctx->isfail = 1; - if (ctx->out_of_memory) - return; - - // no filename at this level (we pass a NULL to errorlist_add_va()...) - va_list ap; - va_start(ap, fmt); - errorlist_add_va(ctx->errors, NULL, ctx->current_position, fmt, ap); - va_end(ap); -} // failf - -void fail(Context *ctx, const char *reason) -{ - failf(ctx, "%s", reason); -} // fail - -// Output Lines... - -void output_line(Context *ctx, const char *fmt, ...) ISPRINTF(2,3); -void output_line(Context *ctx, const char *fmt, ...) -{ - assert(ctx->output != NULL); - if (isfail(ctx)) - return; // we failed previously, don't go on... - - const int indent = ctx->indent; - if (indent > 0) - { - char *indentbuf = (char *) alloca(indent); - memset(indentbuf, '\t', indent); - buffer_append(ctx->output, indentbuf, indent); - } // if - - va_list ap; - va_start(ap, fmt); - buffer_append_va(ctx->output, fmt, ap); - va_end(ap); - - buffer_append(ctx->output, ctx->endline, ctx->endline_len); -} // output_line - -void output_blank_line(Context *ctx) -{ - assert(ctx->output != NULL); - if (!isfail(ctx)) - buffer_append(ctx->output, ctx->endline, ctx->endline_len); -} // output_blank_line - -// !!! FIXME: this is sort of nasty. -void floatstr(Context *ctx, char *buf, size_t bufsize, float f, - int leavedecimal) -{ - const size_t len = MOJOSHADER_printFloat(buf, bufsize, f); - if ((len+2) >= bufsize) - fail(ctx, "BUG: internal buffer is too small"); - else - { - char *end = buf + len; - char *ptr = strchr(buf, '.'); - if (ptr == NULL) - { - if (leavedecimal) - strcat(buf, ".0"); - return; // done. - } // if - - while (--end != ptr) - { - if (*end != '0') - { - end++; - break; - } // if - } // while - if ((leavedecimal) && (end == ptr)) - end += 2; - *end = '\0'; // chop extra '0' or all decimal places off. - } // else -} // floatstr - -// Deal with register lists... - -static inline uint32 reg_to_ui32(const RegisterType regtype, const int regnum) -{ - return ( ((uint32) regnum) | (((uint32) regtype) << 16) ); -} // reg_to_uint32 - -// !!! FIXME: ditch this for a hash table. -RegisterList *reglist_insert(Context *ctx, RegisterList *prev, - const RegisterType regtype, - const int regnum) -{ - const uint32 newval = reg_to_ui32(regtype, regnum); - RegisterList *item = prev->next; - while (item != NULL) - { - const uint32 val = reg_to_ui32(item->regtype, item->regnum); - if (newval == val) - return item; // already set, so we're done. - else if (newval < val) // insert it here. - break; - else // if (newval > val) - { - // keep going, we're not to the insertion point yet. - prev = item; - item = item->next; - } // else - } // while - - // we need to insert an entry after (prev). - item = (RegisterList *) Malloc(ctx, sizeof (RegisterList)); - if (item != NULL) - { - item->regtype = regtype; - item->regnum = regnum; - item->usage = MOJOSHADER_USAGE_UNKNOWN; - item->index = 0; - item->writemask = 0; - item->misc = 0; - item->written = 0; -#if SUPPORT_PROFILE_SPIRV - item->spirv.iddecl = 0; - item->spirv.is_ssa = 0; -#endif - item->array = NULL; - item->next = prev->next; - prev->next = item; - } // if - - return item; -} // reglist_insert - -RegisterList *reglist_find(const RegisterList *prev, - const RegisterType rtype, - const int regnum) -{ - const uint32 newval = reg_to_ui32(rtype, regnum); - RegisterList *item = prev->next; - while (item != NULL) - { - const uint32 val = reg_to_ui32(item->regtype, item->regnum); - if (newval == val) - return item; // here it is. - else if (newval < val) // should have been here if it existed. - return NULL; - else // if (newval > val) - item = item->next; - } // while - - return NULL; // wasn't in the list. -} // reglist_find - -RegisterList *set_used_register(Context *ctx, - const RegisterType regtype, - const int regnum, - const int written) -{ - RegisterList *reg = NULL; - if ((regtype == REG_TYPE_COLOROUT) && (regnum > 0)) - ctx->have_multi_color_outputs = 1; - - reg = reglist_insert(ctx, &ctx->used_registers, regtype, regnum); - if (reg && written) - reg->written = 1; - return reg; -} // set_used_register - -void set_defined_register(Context *ctx, const RegisterType rtype, - const int regnum) -{ - reglist_insert(ctx, &ctx->defined_registers, rtype, regnum); -} // set_defined_register - -// Writemasks - -int writemask_xyzw(const int writemask) -{ - return (writemask == 0xF); // 0xF == 1111. No explicit mask (full!). -} // writemask_xyzw - -int writemask_xyz(const int writemask) -{ - return (writemask == 0x7); // 0x7 == 0111. (that is: xyz) -} // writemask_xyz - -int writemask_xy(const int writemask) -{ - return (writemask == 0x3); // 0x3 == 0011. (that is: xy) -} // writemask_xy - -int writemask_x(const int writemask) -{ - return (writemask == 0x1); // 0x1 == 0001. (that is: x) -} // writemask_x - -int writemask_y(const int writemask) -{ - return (writemask == 0x2); // 0x2 == 0010. (that is: y) -} // writemask_y - -int replicate_swizzle(const int swizzle) -{ - // elements 1|2 match 3|4 and element 1 matches element 2. - return ( (((swizzle >> 4) & 0xF) == ((swizzle >> 0) & 0xF)) && - (((swizzle >> 0) & 0x3) == ((swizzle >> 2) & 0x3)) ); -} // replicate_swizzle - -int no_swizzle(const int swizzle) -{ - return (swizzle == 0xE4); // 0xE4 == 11100100 ... 0 1 2 3. No swizzle. -} // no_swizzle - -int vecsize_from_writemask(const int m) -{ - return (m & 1) + ((m >> 1) & 1) + ((m >> 2) & 1) + ((m >> 3) & 1); -} // vecsize_from_writemask - -void set_dstarg_writemask(DestArgInfo *dst, const int mask) -{ - dst->writemask = mask; - dst->writemask0 = ((mask >> 0) & 1); - dst->writemask1 = ((mask >> 1) & 1); - dst->writemask2 = ((mask >> 2) & 1); - dst->writemask3 = ((mask >> 3) & 1); -} // set_dstarg_writemask - -// D3D stuff that's used in more than just the d3d profile... - -int isscalar(Context *ctx, const MOJOSHADER_shaderType shader_type, - const RegisterType rtype, const int rnum) -{ - const int uses_psize = ctx->uses_pointsize; - const int uses_fog = ctx->uses_fog; - if ( (rtype == REG_TYPE_OUTPUT) && ((uses_psize) || (uses_fog)) ) - { - const RegisterList *reg = reglist_find(&ctx->attributes, rtype, rnum); - if (reg != NULL) - { - const MOJOSHADER_usage usage = reg->usage; - return ( (uses_psize && (usage == MOJOSHADER_USAGE_POINTSIZE)) || - (uses_fog && (usage == MOJOSHADER_USAGE_FOG)) ); - } // if - } // if - - return scalar_register(shader_type, rtype, rnum); -} // isscalar - -const char *get_D3D_register_string(Context *ctx, - RegisterType regtype, - int regnum, char *regnum_str, - size_t regnum_size) -{ - const char *retval = NULL; - int has_number = 1; - - switch (regtype) - { - case REG_TYPE_TEMP: - retval = "r"; - break; - - case REG_TYPE_INPUT: - retval = "v"; - break; - - case REG_TYPE_CONST: - retval = "c"; - break; - - case REG_TYPE_ADDRESS: // (or REG_TYPE_TEXTURE, same value.) - retval = shader_is_vertex(ctx) ? "a" : "t"; - break; - - case REG_TYPE_RASTOUT: - switch ((RastOutType) regnum) - { - case RASTOUT_TYPE_POSITION: retval = "oPos"; break; - case RASTOUT_TYPE_FOG: retval = "oFog"; break; - case RASTOUT_TYPE_POINT_SIZE: retval = "oPts"; break; - } // switch - has_number = 0; - break; - - case REG_TYPE_ATTROUT: - retval = "oD"; - break; - - case REG_TYPE_OUTPUT: // (or REG_TYPE_TEXCRDOUT, same value.) - if (shader_is_vertex(ctx) && shader_version_atleast(ctx, 3, 0)) - retval = "o"; - else - retval = "oT"; - break; - - case REG_TYPE_CONSTINT: - retval = "i"; - break; - - case REG_TYPE_COLOROUT: - retval = "oC"; - break; - - case REG_TYPE_DEPTHOUT: - retval = "oDepth"; - has_number = 0; - break; - - case REG_TYPE_SAMPLER: - retval = "s"; - break; - - case REG_TYPE_CONSTBOOL: - retval = "b"; - break; - - case REG_TYPE_LOOP: - retval = "aL"; - has_number = 0; - break; - - case REG_TYPE_MISCTYPE: - switch ((const MiscTypeType) regnum) - { - case MISCTYPE_TYPE_POSITION: retval = "vPos"; break; - case MISCTYPE_TYPE_FACE: retval = "vFace"; break; - } // switch - has_number = 0; - break; - - case REG_TYPE_LABEL: - retval = "l"; - break; - - case REG_TYPE_PREDICATE: - retval = "p"; - break; - - //case REG_TYPE_TEMPFLOAT16: // !!! FIXME: don't know this asm string - default: - fail(ctx, "unknown register type"); - retval = "???"; - has_number = 0; - break; - } // switch - - if (has_number) - snprintf(regnum_str, regnum_size, "%u", (uint) regnum); - else - regnum_str[0] = '\0'; - - return retval; -} // get_D3D_register_string - -// !!! FIXME: These should stay in the mojoshader_profile_d3d file -// !!! FIXME: but ARB1 relies on them, so we have to move them here. -// !!! FIXME: If/when we kill off ARB1, we can move these back. - -const char *get_D3D_varname_in_buf(Context *ctx, RegisterType rt, - int regnum, char *buf, - const size_t len) -{ - char regnum_str[16]; - const char *regtype_str = get_D3D_register_string(ctx, rt, regnum, - regnum_str, sizeof (regnum_str)); - snprintf(buf,len,"%s%s", regtype_str, regnum_str); - return buf; -} // get_D3D_varname_in_buf - - -const char *get_D3D_varname(Context *ctx, RegisterType rt, int regnum) -{ - char buf[64]; - get_D3D_varname_in_buf(ctx, rt, regnum, buf, sizeof (buf)); - return StrDup(ctx, buf); -} // get_D3D_varname - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_d3d.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_d3d.c deleted file mode 100644 index a2d1842e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_d3d.c +++ /dev/null @@ -1,686 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -#if SUPPORT_PROFILE_D3D - -const char *make_D3D_srcarg_string_in_buf(Context *ctx, - const SourceArgInfo *arg, - char *buf, size_t buflen) -{ - const char *premod_str = ""; - const char *postmod_str = ""; - switch (arg->src_mod) - { - case SRCMOD_NEGATE: - premod_str = "-"; - break; - - case SRCMOD_BIASNEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_BIAS: - postmod_str = "_bias"; - break; - - case SRCMOD_SIGNNEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_SIGN: - postmod_str = "_bx2"; - break; - - case SRCMOD_COMPLEMENT: - premod_str = "1-"; - break; - - case SRCMOD_X2NEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_X2: - postmod_str = "_x2"; - break; - - case SRCMOD_DZ: - postmod_str = "_dz"; - break; - - case SRCMOD_DW: - postmod_str = "_dw"; - break; - - case SRCMOD_ABSNEGATE: - premod_str = "-"; - // fall through. - case SRCMOD_ABS: - postmod_str = "_abs"; - break; - - case SRCMOD_NOT: - premod_str = "!"; - break; - - case SRCMOD_NONE: - case SRCMOD_TOTAL: - break; // stop compiler whining. - } // switch - - - char regnum_str[16]; - const char *regtype_str = get_D3D_register_string(ctx, arg->regtype, - arg->regnum, regnum_str, - sizeof (regnum_str)); - - if (regtype_str == NULL) - { - fail(ctx, "Unknown source register type."); - *buf = '\0'; - return buf; - } // if - - const char *rel_lbracket = ""; - const char *rel_rbracket = ""; - char rel_swizzle[4] = { '\0' }; - char rel_regnum_str[16] = { '\0' }; - const char *rel_regtype_str = ""; - if (arg->relative) - { - if (arg->relative_regtype == REG_TYPE_LOOP) - { - rel_swizzle[0] = '\0'; - rel_swizzle[1] = '\0'; - rel_swizzle[2] = '\0'; - } // if - else - { - rel_swizzle[0] = '.'; - rel_swizzle[1] = swizzle_channels[arg->relative_component]; - rel_swizzle[2] = '\0'; - } // else - - rel_lbracket = "["; - rel_rbracket = "]"; - rel_regtype_str = get_D3D_register_string(ctx, arg->relative_regtype, - arg->relative_regnum, - rel_regnum_str, - sizeof (rel_regnum_str)); - - if (regtype_str == NULL) - { - fail(ctx, "Unknown relative source register type."); - *buf = '\0'; - return buf; - } // if - } // if - - char swizzle_str[6]; - size_t i = 0; - const int scalar = isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum); - if (!scalar && !no_swizzle(arg->swizzle)) - { - swizzle_str[i++] = '.'; - swizzle_str[i++] = swizzle_channels[arg->swizzle_x]; - swizzle_str[i++] = swizzle_channels[arg->swizzle_y]; - swizzle_str[i++] = swizzle_channels[arg->swizzle_z]; - swizzle_str[i++] = swizzle_channels[arg->swizzle_w]; - - // .xyzz is the same as .xyz, .z is the same as .zzzz, etc. - while (swizzle_str[i-1] == swizzle_str[i-2]) - i--; - } // if - swizzle_str[i] = '\0'; - assert(i < sizeof (swizzle_str)); - - // !!! FIXME: c12[a0.x] actually needs to be c[a0.x + 12] - snprintf(buf, buflen, "%s%s%s%s%s%s%s%s%s%s", - premod_str, regtype_str, regnum_str, postmod_str, - rel_lbracket, rel_regtype_str, rel_regnum_str, rel_swizzle, - rel_rbracket, swizzle_str); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_D3D_srcarg_string_in_buf - - -const char *make_D3D_destarg_string(Context *ctx, char *buf, - const size_t buflen) -{ - const DestArgInfo *arg = &ctx->dest_arg; - - const char *result_shift_str = ""; - switch (arg->result_shift) - { - case 0x1: result_shift_str = "_x2"; break; - case 0x2: result_shift_str = "_x4"; break; - case 0x3: result_shift_str = "_x8"; break; - case 0xD: result_shift_str = "_d8"; break; - case 0xE: result_shift_str = "_d4"; break; - case 0xF: result_shift_str = "_d2"; break; - } // switch - - const char *sat_str = (arg->result_mod & MOD_SATURATE) ? "_sat" : ""; - const char *pp_str = (arg->result_mod & MOD_PP) ? "_pp" : ""; - const char *cent_str = (arg->result_mod & MOD_CENTROID) ? "_centroid" : ""; - - char regnum_str[16]; - const char *regtype_str = get_D3D_register_string(ctx, arg->regtype, - arg->regnum, regnum_str, - sizeof (regnum_str)); - if (regtype_str == NULL) - { - fail(ctx, "Unknown destination register type."); - *buf = '\0'; - return buf; - } // if - - char writemask_str[6]; - size_t i = 0; - const int scalar = isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum); - if (!scalar && !writemask_xyzw(arg->writemask)) - { - writemask_str[i++] = '.'; - if (arg->writemask0) writemask_str[i++] = 'x'; - if (arg->writemask1) writemask_str[i++] = 'y'; - if (arg->writemask2) writemask_str[i++] = 'z'; - if (arg->writemask3) writemask_str[i++] = 'w'; - } // if - writemask_str[i] = '\0'; - assert(i < sizeof (writemask_str)); - - const char *pred_left = ""; - const char *pred_right = ""; - char pred[32] = { '\0' }; - if (ctx->predicated) - { - pred_left = "("; - pred_right = ") "; - make_D3D_srcarg_string_in_buf(ctx, &ctx->predicate_arg, - pred, sizeof (pred)); - } // if - - // may turn out something like "_x2_sat_pp_centroid (!p0.x) r0.xyzw" ... - snprintf(buf, buflen, "%s%s%s%s %s%s%s%s%s%s", - result_shift_str, sat_str, pp_str, cent_str, - pred_left, pred, pred_right, - regtype_str, regnum_str, writemask_str); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_D3D_destarg_string - - -const char *make_D3D_srcarg_string(Context *ctx, const size_t idx, - char *buf, size_t buflen) -{ - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - *buf = '\0'; - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - return make_D3D_srcarg_string_in_buf(ctx, arg, buf, buflen); -} // make_D3D_srcarg_string - -const char *get_D3D_const_array_varname(Context *ctx, int base, int size) -{ - char buf[64]; - snprintf(buf, sizeof (buf), "c_array_%d_%d", base, size); - return StrDup(ctx, buf); -} // get_D3D_const_array_varname - - -void emit_D3D_start(Context *ctx, const char *profilestr) -{ - const uint major = (uint) ctx->major_ver; - const uint minor = (uint) ctx->minor_ver; - char minor_str[16]; - - ctx->ignores_ctab = 1; - - if (minor == 0xFF) - strcpy(minor_str, "sw"); - else if ((major > 1) && (minor == 1)) - strcpy(minor_str, "x"); // for >= SM2, apparently this is "x". Weird. - else - snprintf(minor_str, sizeof (minor_str), "%u", (uint) minor); - - output_line(ctx, "%s_%u_%s", ctx->shader_type_str, major, minor_str); -} // emit_D3D_start - - -void emit_D3D_end(Context *ctx) -{ - output_line(ctx, "end"); -} // emit_D3D_end - - -void emit_D3D_phase(Context *ctx) -{ - output_line(ctx, "phase"); -} // emit_D3D_phase - - -void emit_D3D_finalize(Context *ctx) -{ - // no-op. -} // emit_D3D_finalize - - -void emit_D3D_global(Context *ctx, RegisterType regtype, int regnum) -{ - // no-op. -} // emit_D3D_global - - -void emit_D3D_array(Context *ctx, VariableList *var) -{ - // no-op. -} // emit_D3D_array - - -void emit_D3D_const_array(Context *ctx, const ConstantsList *clist, - int base, int size) -{ - // no-op. -} // emit_D3D_const_array - - -void emit_D3D_uniform(Context *ctx, RegisterType regtype, int regnum, - const VariableList *var) -{ - // no-op. -} // emit_D3D_uniform - - -void emit_D3D_sampler(Context *ctx, int s, TextureType ttype, int tb) -{ - // no-op. -} // emit_D3D_sampler - - -void emit_D3D_attribute(Context *ctx, RegisterType regtype, int regnum, - MOJOSHADER_usage usage, int index, int wmask, - int flags) -{ - // no-op. -} // emit_D3D_attribute - - -void emit_D3D_RESERVED(Context *ctx) -{ - // do nothing; fails in the state machine. -} // emit_D3D_RESERVED - - -// Generic D3D opcode emitters. A list of macros generate all the entry points -// that call into these... - -char *lowercase(char *dst, const char *src) -{ - int i = 0; - do - { - const char ch = src[i]; - dst[i] = (((ch >= 'A') && (ch <= 'Z')) ? (ch - ('A' - 'a')) : ch); - } while (src[i++]); - return dst; -} // lowercase - - -void emit_D3D_opcode_d(Context *ctx, const char *opcode) -{ - char dst[64]; make_D3D_destarg_string(ctx, dst, sizeof (dst)); - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx, "%s%s%s", ctx->coissue ? "+" : "", opcode, dst); -} // emit_D3D_opcode_d - - -void emit_D3D_opcode_s(Context *ctx, const char *opcode) -{ - char src0[64]; make_D3D_srcarg_string(ctx, 0, src0, sizeof (src0)); - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx, "%s%s %s", ctx->coissue ? "+" : "", opcode, src0); -} // emit_D3D_opcode_s - - -void emit_D3D_opcode_ss(Context *ctx, const char *opcode) -{ - char src0[64]; make_D3D_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_D3D_srcarg_string(ctx, 1, src1, sizeof (src1)); - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx, "%s%s %s, %s", ctx->coissue ? "+" : "", opcode, src0, src1); -} // emit_D3D_opcode_ss - - -void emit_D3D_opcode_ds(Context *ctx, const char *opcode) -{ - char dst[64]; make_D3D_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_D3D_srcarg_string(ctx, 0, src0, sizeof (src0)); - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx, "%s%s%s, %s", ctx->coissue ? "+" : "", opcode, dst, src0); -} // emit_D3D_opcode_ds - - -void emit_D3D_opcode_dss(Context *ctx, const char *opcode) -{ - char dst[64]; make_D3D_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_D3D_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_D3D_srcarg_string(ctx, 1, src1, sizeof (src1)); - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx, "%s%s%s, %s, %s", ctx->coissue ? "+" : "", - opcode, dst, src0, src1); -} // emit_D3D_opcode_dss - - -void emit_D3D_opcode_dsss(Context *ctx, const char *opcode) -{ - char dst[64]; make_D3D_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_D3D_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_D3D_srcarg_string(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_D3D_srcarg_string(ctx, 2, src2, sizeof (src2)); - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx, "%s%s%s, %s, %s, %s", ctx->coissue ? "+" : "", - opcode, dst, src0, src1, src2); -} // emit_D3D_opcode_dsss - - -void emit_D3D_opcode_dssss(Context *ctx, const char *opcode) -{ - char dst[64]; make_D3D_destarg_string(ctx, dst, sizeof (dst)); - char src0[64]; make_D3D_srcarg_string(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_D3D_srcarg_string(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_D3D_srcarg_string(ctx, 2, src2, sizeof (src2)); - char src3[64]; make_D3D_srcarg_string(ctx, 3, src3, sizeof (src3)); - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx,"%s%s%s, %s, %s, %s, %s", ctx->coissue ? "+" : "", - opcode, dst, src0, src1, src2, src3); -} // emit_D3D_opcode_dssss - - -void emit_D3D_opcode(Context *ctx, const char *opcode) -{ - opcode = lowercase((char *) alloca(strlen(opcode) + 1), opcode); - output_line(ctx, "%s%s", ctx->coissue ? "+" : "", opcode); -} // emit_D3D_opcode - - -#define EMIT_D3D_OPCODE_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode(ctx, #op); \ - } -#define EMIT_D3D_OPCODE_D_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode_d(ctx, #op); \ - } -#define EMIT_D3D_OPCODE_S_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode_s(ctx, #op); \ - } -#define EMIT_D3D_OPCODE_SS_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode_ss(ctx, #op); \ - } -#define EMIT_D3D_OPCODE_DS_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode_ds(ctx, #op); \ - } -#define EMIT_D3D_OPCODE_DSS_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode_dss(ctx, #op); \ - } -#define EMIT_D3D_OPCODE_DSSS_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode_dsss(ctx, #op); \ - } -#define EMIT_D3D_OPCODE_DSSSS_FUNC(op) \ - void emit_D3D_##op(Context *ctx) { \ - emit_D3D_opcode_dssss(ctx, #op); \ - } - -EMIT_D3D_OPCODE_FUNC(NOP) -EMIT_D3D_OPCODE_DS_FUNC(MOV) -EMIT_D3D_OPCODE_DSS_FUNC(ADD) -EMIT_D3D_OPCODE_DSS_FUNC(SUB) -EMIT_D3D_OPCODE_DSSS_FUNC(MAD) -EMIT_D3D_OPCODE_DSS_FUNC(MUL) -EMIT_D3D_OPCODE_DS_FUNC(RCP) -EMIT_D3D_OPCODE_DS_FUNC(RSQ) -EMIT_D3D_OPCODE_DSS_FUNC(DP3) -EMIT_D3D_OPCODE_DSS_FUNC(DP4) -EMIT_D3D_OPCODE_DSS_FUNC(MIN) -EMIT_D3D_OPCODE_DSS_FUNC(MAX) -EMIT_D3D_OPCODE_DSS_FUNC(SLT) -EMIT_D3D_OPCODE_DSS_FUNC(SGE) -EMIT_D3D_OPCODE_DS_FUNC(EXP) -EMIT_D3D_OPCODE_DS_FUNC(LOG) -EMIT_D3D_OPCODE_DS_FUNC(LIT) -EMIT_D3D_OPCODE_DSS_FUNC(DST) -EMIT_D3D_OPCODE_DSSS_FUNC(LRP) -EMIT_D3D_OPCODE_DS_FUNC(FRC) -EMIT_D3D_OPCODE_DSS_FUNC(M4X4) -EMIT_D3D_OPCODE_DSS_FUNC(M4X3) -EMIT_D3D_OPCODE_DSS_FUNC(M3X4) -EMIT_D3D_OPCODE_DSS_FUNC(M3X3) -EMIT_D3D_OPCODE_DSS_FUNC(M3X2) -EMIT_D3D_OPCODE_S_FUNC(CALL) -EMIT_D3D_OPCODE_SS_FUNC(CALLNZ) -EMIT_D3D_OPCODE_SS_FUNC(LOOP) -EMIT_D3D_OPCODE_FUNC(RET) -EMIT_D3D_OPCODE_FUNC(ENDLOOP) -EMIT_D3D_OPCODE_S_FUNC(LABEL) -EMIT_D3D_OPCODE_DSS_FUNC(POW) -EMIT_D3D_OPCODE_DSS_FUNC(CRS) -EMIT_D3D_OPCODE_DSSS_FUNC(SGN) -EMIT_D3D_OPCODE_DS_FUNC(ABS) -EMIT_D3D_OPCODE_DS_FUNC(NRM) -EMIT_D3D_OPCODE_S_FUNC(REP) -EMIT_D3D_OPCODE_FUNC(ENDREP) -EMIT_D3D_OPCODE_S_FUNC(IF) -EMIT_D3D_OPCODE_FUNC(ELSE) -EMIT_D3D_OPCODE_FUNC(ENDIF) -EMIT_D3D_OPCODE_FUNC(BREAK) -EMIT_D3D_OPCODE_DS_FUNC(MOVA) -EMIT_D3D_OPCODE_D_FUNC(TEXKILL) -EMIT_D3D_OPCODE_DS_FUNC(TEXBEM) -EMIT_D3D_OPCODE_DS_FUNC(TEXBEML) -EMIT_D3D_OPCODE_DS_FUNC(TEXREG2AR) -EMIT_D3D_OPCODE_DS_FUNC(TEXREG2GB) -EMIT_D3D_OPCODE_DS_FUNC(TEXM3X2PAD) -EMIT_D3D_OPCODE_DS_FUNC(TEXM3X2TEX) -EMIT_D3D_OPCODE_DS_FUNC(TEXM3X3PAD) -EMIT_D3D_OPCODE_DS_FUNC(TEXM3X3TEX) -EMIT_D3D_OPCODE_DSS_FUNC(TEXM3X3SPEC) -EMIT_D3D_OPCODE_DS_FUNC(TEXM3X3VSPEC) -EMIT_D3D_OPCODE_DS_FUNC(EXPP) -EMIT_D3D_OPCODE_DS_FUNC(LOGP) -EMIT_D3D_OPCODE_DSSS_FUNC(CND) -EMIT_D3D_OPCODE_DS_FUNC(TEXREG2RGB) -EMIT_D3D_OPCODE_DS_FUNC(TEXDP3TEX) -EMIT_D3D_OPCODE_DS_FUNC(TEXM3X2DEPTH) -EMIT_D3D_OPCODE_DS_FUNC(TEXDP3) -EMIT_D3D_OPCODE_DS_FUNC(TEXM3X3) -EMIT_D3D_OPCODE_D_FUNC(TEXDEPTH) -EMIT_D3D_OPCODE_DSSS_FUNC(CMP) -EMIT_D3D_OPCODE_DSS_FUNC(BEM) -EMIT_D3D_OPCODE_DSSS_FUNC(DP2ADD) -EMIT_D3D_OPCODE_DS_FUNC(DSX) -EMIT_D3D_OPCODE_DS_FUNC(DSY) -EMIT_D3D_OPCODE_DSSSS_FUNC(TEXLDD) -EMIT_D3D_OPCODE_DSS_FUNC(TEXLDL) -EMIT_D3D_OPCODE_S_FUNC(BREAKP) - -// special cases for comparison opcodes... -const char *get_D3D_comparison_string(Context *ctx) -{ - const char *comps[] = { - "", "_gt", "_eq", "_ge", "_lt", "_ne", "_le" - }; - - if (ctx->instruction_controls >= STATICARRAYLEN(comps)) - { - fail(ctx, "unknown comparison control"); - return ""; - } // if - - return comps[ctx->instruction_controls]; -} // get_D3D_comparison_string - -void emit_D3D_BREAKC(Context *ctx) -{ - char op[16]; - snprintf(op, sizeof (op), "break%s", get_D3D_comparison_string(ctx)); - emit_D3D_opcode_ss(ctx, op); -} // emit_D3D_BREAKC - -void emit_D3D_IFC(Context *ctx) -{ - char op[16]; - snprintf(op, sizeof (op), "if%s", get_D3D_comparison_string(ctx)); - emit_D3D_opcode_ss(ctx, op); -} // emit_D3D_IFC - -void emit_D3D_SETP(Context *ctx) -{ - char op[16]; - snprintf(op, sizeof (op), "setp%s", get_D3D_comparison_string(ctx)); - emit_D3D_opcode_dss(ctx, op); -} // emit_D3D_SETP - -void emit_D3D_DEF(Context *ctx) -{ - char dst[64]; - make_D3D_destarg_string(ctx, dst, sizeof (dst)); - const float *val = (const float *) ctx->dwords; // !!! FIXME: could be int? - char val0[32]; - char val1[32]; - char val2[32]; - char val3[32]; - floatstr(ctx, val0, sizeof (val0), val[0], 0); - floatstr(ctx, val1, sizeof (val1), val[1], 0); - floatstr(ctx, val2, sizeof (val2), val[2], 0); - floatstr(ctx, val3, sizeof (val3), val[3], 0); - output_line(ctx, "def%s, %s, %s, %s, %s", dst, val0, val1, val2, val3); -} // emit_D3D_DEF - -void emit_D3D_DEFI(Context *ctx) -{ - char dst[64]; - make_D3D_destarg_string(ctx, dst, sizeof (dst)); - const int32 *x = (const int32 *) ctx->dwords; - output_line(ctx, "defi%s, %d, %d, %d, %d", dst, - (int) x[0], (int) x[1], (int) x[2], (int) x[3]); -} // emit_D3D_DEFI - -void emit_D3D_DEFB(Context *ctx) -{ - char dst[64]; - make_D3D_destarg_string(ctx, dst, sizeof (dst)); - output_line(ctx, "defb%s, %s", dst, ctx->dwords[0] ? "true" : "false"); -} // emit_D3D_DEFB - - -static const char *usagestrs[] = { - "_position", "_blendweight", "_blendindices", "_normal", "_psize", - "_texcoord", "_tangent", "_binormal", "_tessfactor", "_positiont", - "_color", "_fog", "_depth", "_sample" -}; - -void emit_D3D_DCL(Context *ctx) -{ - char dst[64]; - make_D3D_destarg_string(ctx, dst, sizeof (dst)); - const DestArgInfo *arg = &ctx->dest_arg; - const char *usage_str = ""; - char index_str[16] = { '\0' }; - - if (arg->regtype == REG_TYPE_SAMPLER) - { - switch ((const TextureType) ctx->dwords[0]) - { - case TEXTURE_TYPE_2D: usage_str = "_2d"; break; - case TEXTURE_TYPE_CUBE: usage_str = "_cube"; break; - case TEXTURE_TYPE_VOLUME: usage_str = "_volume"; break; - default: fail(ctx, "unknown sampler texture type"); return; - } // switch - } // if - - else if (arg->regtype == REG_TYPE_MISCTYPE) - { - switch ((const MiscTypeType) arg->regnum) - { - case MISCTYPE_TYPE_POSITION: - case MISCTYPE_TYPE_FACE: - usage_str = ""; // just become "dcl vFace" or whatever. - break; - default: fail(ctx, "unknown misc register type"); return; - } // switch - } // else if - - else - { - const uint32 usage = ctx->dwords[0]; - const uint32 index = ctx->dwords[1]; - usage_str = usagestrs[usage]; - if (index != 0) - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - } // else - - output_line(ctx, "dcl%s%s%s", usage_str, index_str, dst); -} // emit_D3D_DCL - - -void emit_D3D_TEXCRD(Context *ctx) -{ - // this opcode looks and acts differently depending on the shader model. - if (shader_version_atleast(ctx, 1, 4)) - emit_D3D_opcode_ds(ctx, "texcrd"); - else - emit_D3D_opcode_d(ctx, "texcoord"); -} // emit_D3D_TEXCOORD - -void emit_D3D_TEXLD(Context *ctx) -{ - // this opcode looks and acts differently depending on the shader model. - if (shader_version_atleast(ctx, 2, 0)) - { - if (ctx->instruction_controls == CONTROL_TEXLD) - emit_D3D_opcode_dss(ctx, "texld"); - else if (ctx->instruction_controls == CONTROL_TEXLDP) - emit_D3D_opcode_dss(ctx, "texldp"); - else if (ctx->instruction_controls == CONTROL_TEXLDB) - emit_D3D_opcode_dss(ctx, "texldb"); - } // if - - else if (shader_version_atleast(ctx, 1, 4)) - { - emit_D3D_opcode_ds(ctx, "texld"); - } // else if - - else - { - emit_D3D_opcode_d(ctx, "tex"); - } // else -} // emit_D3D_TEXLD - -void emit_D3D_SINCOS(Context *ctx) -{ - // this opcode needs extra registers for sm2 and lower. - if (!shader_version_atleast(ctx, 3, 0)) - emit_D3D_opcode_dsss(ctx, "sincos"); - else - emit_D3D_opcode_ds(ctx, "sincos"); -} // emit_D3D_SINCOS - -#endif // SUPPORT_PROFILE_D3D - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_glsl.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_glsl.c deleted file mode 100644 index d46ec79f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_glsl.c +++ /dev/null @@ -1,2444 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -#if SUPPORT_PROFILE_GLSL - -#define EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(op) \ - void emit_GLSL_##op(Context *ctx) { \ - fail(ctx, #op " unimplemented in glsl profile"); \ - } - -static inline const char *get_GLSL_register_string(Context *ctx, - const RegisterType regtype, const int regnum, - char *regnum_str, const size_t regnum_size) -{ - // turns out these are identical at the moment. - return get_D3D_register_string(ctx,regtype,regnum,regnum_str,regnum_size); -} // get_GLSL_register_string - -const char *get_GLSL_uniform_type(Context *ctx, const RegisterType rtype) -{ - switch (rtype) - { - case REG_TYPE_CONST: return "vec4"; - case REG_TYPE_CONSTINT: return "ivec4"; - case REG_TYPE_CONSTBOOL: return "bool"; - default: fail(ctx, "BUG: used a uniform we don't know how to define."); - } // switch - - return NULL; -} // get_GLSL_uniform_type - -const char *get_GLSL_varname_in_buf(Context *ctx, RegisterType rt, - int regnum, char *buf, - const size_t len) -{ - char regnum_str[16]; - const char *regtype_str = get_GLSL_register_string(ctx, rt, regnum, - regnum_str, sizeof (regnum_str)); - snprintf(buf,len,"%s_%s%s", ctx->shader_type_str, regtype_str, regnum_str); - return buf; -} // get_GLSL_varname_in_buf - - -const char *get_GLSL_varname(Context *ctx, RegisterType rt, int regnum) -{ - char buf[64]; - get_GLSL_varname_in_buf(ctx, rt, regnum, buf, sizeof (buf)); - return StrDup(ctx, buf); -} // get_GLSL_varname - - -static inline const char *get_GLSL_const_array_varname_in_buf(Context *ctx, - const int base, const int size, - char *buf, const size_t buflen) -{ - const char *type = ctx->shader_type_str; - snprintf(buf, buflen, "%s_const_array_%d_%d", type, base, size); - return buf; -} // get_GLSL_const_array_varname_in_buf - -const char *get_GLSL_const_array_varname(Context *ctx, int base, int size) -{ - char buf[64]; - get_GLSL_const_array_varname_in_buf(ctx, base, size, buf, sizeof (buf)); - return StrDup(ctx, buf); -} // get_GLSL_const_array_varname - - -static inline const char *get_GLSL_input_array_varname(Context *ctx, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "%s", "vertex_input_array"); - return buf; -} // get_GLSL_input_array_varname - - -const char *get_GLSL_uniform_array_varname(Context *ctx, - const RegisterType regtype, - char *buf, const size_t len) -{ - const char *shadertype = ctx->shader_type_str; - const char *type = get_GLSL_uniform_type(ctx, regtype); - snprintf(buf, len, "%s_uniforms_%s", shadertype, type); - return buf; -} // get_GLSL_uniform_array_varname - -const char *get_GLSL_destarg_varname(Context *ctx, char *buf, size_t len) -{ - const DestArgInfo *arg = &ctx->dest_arg; - return get_GLSL_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, len); -} // get_GLSL_destarg_varname - -const char *get_GLSL_srcarg_varname(Context *ctx, const size_t idx, - char *buf, size_t len) -{ - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - *buf = '\0'; - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - return get_GLSL_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, len); -} // get_GLSL_srcarg_varname - - -const char *make_GLSL_destarg_assign(Context *, char *, const size_t, - const char *, ...) ISPRINTF(4,5); - -const char *make_GLSL_destarg_assign(Context *ctx, char *buf, - const size_t buflen, - const char *fmt, ...) -{ - int need_parens = 0; - const DestArgInfo *arg = &ctx->dest_arg; - - if (arg->writemask == 0) - { - *buf = '\0'; - return buf; // no writemask? It's a no-op. - } // if - - char clampbuf[32] = { '\0' }; - const char *clampleft = ""; - const char *clampright = ""; - if (arg->result_mod & MOD_SATURATE) - { - const int vecsize = vecsize_from_writemask(arg->writemask); - clampleft = "clamp("; - if (vecsize == 1) - clampright = ", 0.0, 1.0)"; - else - { - snprintf(clampbuf, sizeof (clampbuf), - ", vec%d(0.0), vec%d(1.0))", vecsize, vecsize); - clampright = clampbuf; - } // else - } // if - - // MSDN says MOD_PP is a hint and many implementations ignore it. So do we. - - // CENTROID only allowed in DCL opcodes, which shouldn't come through here. - assert((arg->result_mod & MOD_CENTROID) == 0); - - if (ctx->predicated) - { - fail(ctx, "predicated destinations unsupported"); // !!! FIXME - *buf = '\0'; - return buf; - } // if - - char operation[256]; - va_list ap; - va_start(ap, fmt); - const int len = vsnprintf(operation, sizeof (operation), fmt, ap); - va_end(ap); - if (len >= sizeof (operation)) - { - fail(ctx, "operation string too large"); // I'm lazy. :P - *buf = '\0'; - return buf; - } // if - - const char *result_shift_str = ""; - switch (arg->result_shift) - { - case 0x1: result_shift_str = " * 2.0"; break; - case 0x2: result_shift_str = " * 4.0"; break; - case 0x3: result_shift_str = " * 8.0"; break; - case 0xD: result_shift_str = " / 8.0"; break; - case 0xE: result_shift_str = " / 4.0"; break; - case 0xF: result_shift_str = " / 2.0"; break; - } // switch - need_parens |= (result_shift_str[0] != '\0'); - - char regnum_str[16]; - const char *regtype_str = get_GLSL_register_string(ctx, arg->regtype, - arg->regnum, regnum_str, - sizeof (regnum_str)); - char writemask_str[6]; - size_t i = 0; - const int scalar = isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum); - if (!scalar && !writemask_xyzw(arg->writemask)) - { - writemask_str[i++] = '.'; - if (arg->writemask0) writemask_str[i++] = 'x'; - if (arg->writemask1) writemask_str[i++] = 'y'; - if (arg->writemask2) writemask_str[i++] = 'z'; - if (arg->writemask3) writemask_str[i++] = 'w'; - } // if - writemask_str[i] = '\0'; - assert(i < sizeof (writemask_str)); - - const char *leftparen = (need_parens) ? "(" : ""; - const char *rightparen = (need_parens) ? ")" : ""; - - snprintf(buf, buflen, "%s_%s%s%s = %s%s%s%s%s%s;", - ctx->shader_type_str, regtype_str, regnum_str, writemask_str, - clampleft, leftparen, operation, rightparen, result_shift_str, - clampright); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_GLSL_destarg_assign - - -char *make_GLSL_swizzle_string(char *swiz_str, const size_t strsize, - const int swizzle, const int writemask) -{ - size_t i = 0; - if ( (!no_swizzle(swizzle)) || (!writemask_xyzw(writemask)) ) - { - const int writemask0 = (writemask >> 0) & 0x1; - const int writemask1 = (writemask >> 1) & 0x1; - const int writemask2 = (writemask >> 2) & 0x1; - const int writemask3 = (writemask >> 3) & 0x1; - - const int swizzle_x = (swizzle >> 0) & 0x3; - const int swizzle_y = (swizzle >> 2) & 0x3; - const int swizzle_z = (swizzle >> 4) & 0x3; - const int swizzle_w = (swizzle >> 6) & 0x3; - - swiz_str[i++] = '.'; - if (writemask0) swiz_str[i++] = swizzle_channels[swizzle_x]; - if (writemask1) swiz_str[i++] = swizzle_channels[swizzle_y]; - if (writemask2) swiz_str[i++] = swizzle_channels[swizzle_z]; - if (writemask3) swiz_str[i++] = swizzle_channels[swizzle_w]; - } // if - assert(i < strsize); - swiz_str[i] = '\0'; - return swiz_str; -} // make_GLSL_swizzle_string - - -const char *make_GLSL_srcarg_string(Context *ctx, const size_t idx, - const int writemask, char *buf, - const size_t buflen) -{ - *buf = '\0'; - - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - - const char *premod_str = ""; - const char *postmod_str = ""; - switch (arg->src_mod) - { - case SRCMOD_NEGATE: - premod_str = "-"; - break; - - case SRCMOD_BIASNEGATE: - premod_str = "-("; - postmod_str = " - 0.5)"; - break; - - case SRCMOD_BIAS: - premod_str = "("; - postmod_str = " - 0.5)"; - break; - - case SRCMOD_SIGNNEGATE: - premod_str = "-(("; - postmod_str = " - 0.5) * 2.0)"; - break; - - case SRCMOD_SIGN: - premod_str = "(("; - postmod_str = " - 0.5) * 2.0)"; - break; - - case SRCMOD_COMPLEMENT: - premod_str = "(1.0 - "; - postmod_str = ")"; - break; - - case SRCMOD_X2NEGATE: - premod_str = "-("; - postmod_str = " * 2.0)"; - break; - - case SRCMOD_X2: - premod_str = "("; - postmod_str = " * 2.0)"; - break; - - case SRCMOD_DZ: - fail(ctx, "SRCMOD_DZ unsupported"); return buf; // !!! FIXME - postmod_str = "_dz"; - break; - - case SRCMOD_DW: - fail(ctx, "SRCMOD_DW unsupported"); return buf; // !!! FIXME - postmod_str = "_dw"; - break; - - case SRCMOD_ABSNEGATE: - premod_str = "-abs("; - postmod_str = ")"; - break; - - case SRCMOD_ABS: - premod_str = "abs("; - postmod_str = ")"; - break; - - case SRCMOD_NOT: - premod_str = "!"; - break; - - case SRCMOD_NONE: - case SRCMOD_TOTAL: - break; // stop compiler whining. - } // switch - - const char *regtype_str = NULL; - - if (!arg->relative) - { - regtype_str = get_GLSL_varname_in_buf(ctx, arg->regtype, arg->regnum, - (char *) alloca(64), 64); - } // if - - const char *rel_lbracket = ""; - char rel_offset[32] = { '\0' }; - const char *rel_rbracket = ""; - char rel_swizzle[4] = { '\0' }; - const char *rel_regtype_str = ""; - if (arg->relative) - { - if (arg->regtype == REG_TYPE_INPUT) - regtype_str=get_GLSL_input_array_varname(ctx,(char*)alloca(64),64); - else - { - assert(arg->regtype == REG_TYPE_CONST); - const int arrayidx = arg->relative_array->index; - const int offset = arg->regnum - arrayidx; - assert(offset >= 0); - if (arg->relative_array->constant) - { - const int arraysize = arg->relative_array->count; - regtype_str = get_GLSL_const_array_varname_in_buf(ctx, - arrayidx, arraysize, (char *) alloca(64), 64); - if (offset != 0) - snprintf(rel_offset, sizeof (rel_offset), "%d + ", offset); - } // if - else - { - regtype_str = get_GLSL_uniform_array_varname(ctx, arg->regtype, - (char *) alloca(64), 64); - if (offset == 0) - { - snprintf(rel_offset, sizeof (rel_offset), - "ARRAYBASE_%d + ", arrayidx); - } // if - else - { - snprintf(rel_offset, sizeof (rel_offset), - "(ARRAYBASE_%d + %d) + ", arrayidx, offset); - } // else - } // else - } // else - - rel_lbracket = "["; - - if (arg->relative_regtype == REG_TYPE_LOOP) - { - rel_regtype_str = "aL"; - rel_swizzle[0] = '\0'; - rel_swizzle[1] = '\0'; - rel_swizzle[2] = '\0'; - } // if - else - { - rel_regtype_str = get_GLSL_varname_in_buf(ctx, arg->relative_regtype, - arg->relative_regnum, - (char *) alloca(64), 64); - rel_swizzle[0] = '.'; - rel_swizzle[1] = swizzle_channels[arg->relative_component]; - rel_swizzle[2] = '\0'; - } // else - rel_rbracket = "]"; - } // if - - char swiz_str[6] = { '\0' }; - if (!isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum)) - { - make_GLSL_swizzle_string(swiz_str, sizeof (swiz_str), - arg->swizzle, writemask); - } // if - - if (regtype_str == NULL) - { - fail(ctx, "Unknown source register type."); - return buf; - } // if - - snprintf(buf, buflen, "%s%s%s%s%s%s%s%s%s", - premod_str, regtype_str, rel_lbracket, rel_offset, - rel_regtype_str, rel_swizzle, rel_rbracket, swiz_str, - postmod_str); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_GLSL_srcarg_string - -// generate some convenience functions. -#define MAKE_GLSL_SRCARG_STRING_(mask, bitmask) \ - static inline const char *make_GLSL_srcarg_string_##mask(Context *ctx, \ - const size_t idx, char *buf, \ - const size_t buflen) { \ - return make_GLSL_srcarg_string(ctx, idx, bitmask, buf, buflen); \ - } -MAKE_GLSL_SRCARG_STRING_(x, (1 << 0)) -MAKE_GLSL_SRCARG_STRING_(y, (1 << 1)) -MAKE_GLSL_SRCARG_STRING_(z, (1 << 2)) -MAKE_GLSL_SRCARG_STRING_(w, (1 << 3)) -MAKE_GLSL_SRCARG_STRING_(scalar, (1 << 0)) -MAKE_GLSL_SRCARG_STRING_(full, 0xF) -MAKE_GLSL_SRCARG_STRING_(masked, ctx->dest_arg.writemask) -MAKE_GLSL_SRCARG_STRING_(vec3, 0x7) -MAKE_GLSL_SRCARG_STRING_(vec2, 0x3) -#undef MAKE_GLSL_SRCARG_STRING_ - -// special cases for comparison opcodes... - -const char *get_GLSL_comparison_string_scalar(Context *ctx) -{ - const char *comps[] = { "", ">", "==", ">=", "<", "!=", "<=" }; - if (ctx->instruction_controls >= STATICARRAYLEN(comps)) - { - fail(ctx, "unknown comparison control"); - return ""; - } // if - - return comps[ctx->instruction_controls]; -} // get_GLSL_comparison_string_scalar - -const char *get_GLSL_comparison_string_vector(Context *ctx) -{ - const char *comps[] = { - "", "greaterThan", "equal", "greaterThanEqual", "lessThan", - "notEqual", "lessThanEqual" - }; - - if (ctx->instruction_controls >= STATICARRAYLEN(comps)) - { - fail(ctx, "unknown comparison control"); - return ""; - } // if - - return comps[ctx->instruction_controls]; -} // get_GLSL_comparison_string_vector - -// special extensions needed for texldd/texldl... - -static void prepend_glsl_texlod_extensions(Context *ctx) -{ - // !!! FIXME: - // GLSL 1.30 introduced textureGrad() for this, but it looks like the - // functions are overloaded instead of texture2DGrad() (etc). - - // !!! FIXME: - // The spec says we can't use GLSL's texture*Lod() built-ins from fragment - // shaders for some inexplicable reason. - // For now, you'll just have to suffer with the potentially wrong mipmap - // until I can figure something out. - - // ARB_shader_texture_lod and EXT_gpu_shader4 added texture2DLod/Grad*(), - // so we'll use them if available. Failing that, we'll just fallback - // to a regular texture2D call and hope the mipmap it chooses is close - // enough. - if (!ctx->glsl_generated_texlod_setup) - { - ctx->glsl_generated_texlod_setup = 1; - push_output(ctx, &ctx->preflight); - output_line(ctx, "#if GL_ARB_shader_texture_lod"); - output_line(ctx, "#extension GL_ARB_shader_texture_lod : enable"); - output_line(ctx, "#define texture2DGrad texture2DGradARB"); - output_line(ctx, "#define texture2DProjGrad texture2DProjARB"); - output_line(ctx, "#elif GL_EXT_gpu_shader4"); - output_line(ctx, "#extension GL_EXT_gpu_shader4 : enable"); - output_line(ctx, "#else"); - output_line(ctx, "#define texture2DGrad(a,b,c,d) texture2D(a,b)"); - output_line(ctx, "#define texture2DProjGrad(a,b,c,d) texture2DProj(a,b)"); - if (shader_is_pixel(ctx)) - output_line(ctx, "#define texture2DLod(a,b,c) texture2D(a,b)"); - output_line(ctx, "#endif"); - output_blank_line(ctx); - pop_output(ctx); - } // if -} // prepend_glsl_texlod_extensions - - -void emit_GLSL_start(Context *ctx, const char *profilestr) -{ - if (!shader_is_vertex(ctx) && !shader_is_pixel(ctx)) - { - failf(ctx, "Shader type %u unsupported in this profile.", - (uint) ctx->shader_type); - return; - } // if - - else if (strcmp(profilestr, MOJOSHADER_PROFILE_GLSL) == 0) - { - // No gl_FragData[] before GLSL 1.10, so we have to force the version. - push_output(ctx, &ctx->preflight); - output_line(ctx, "#version 110"); - pop_output(ctx); - } // else if - - #if SUPPORT_PROFILE_GLSL120 - else if (strcmp(profilestr, MOJOSHADER_PROFILE_GLSL120) == 0) - { - ctx->profile_supports_glsl120 = 1; - push_output(ctx, &ctx->preflight); - output_line(ctx, "#version 120"); - pop_output(ctx); - } // else if - #endif - - #if SUPPORT_PROFILE_GLSLES - else if (strcmp(profilestr, MOJOSHADER_PROFILE_GLSLES) == 0) - { - ctx->profile_supports_glsles = 1; - push_output(ctx, &ctx->preflight); - output_line(ctx, "#version 100"); - if (shader_is_vertex(ctx)) - output_line(ctx, "precision highp float;"); - else - output_line(ctx, "precision mediump float;"); - output_line(ctx, "precision mediump int;"); - pop_output(ctx); - } // else if - #endif - - else - { - failf(ctx, "Profile '%s' unsupported or unknown.", profilestr); - return; - } // else - - push_output(ctx, &ctx->mainline_intro); - output_line(ctx, "void main()"); - output_line(ctx, "{"); - pop_output(ctx); - - set_output(ctx, &ctx->mainline); - ctx->indent++; -} // emit_GLSL_start - -void emit_GLSL_RET(Context *ctx); -void emit_GLSL_end(Context *ctx) -{ - // ps_1_* writes color to r0 instead oC0. We move it to the right place. - // We don't have to worry about a RET opcode messing this up, since - // RET isn't available before ps_2_0. - if (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 2, 0)) - { - const char *shstr = ctx->shader_type_str; - set_used_register(ctx, REG_TYPE_COLOROUT, 0, 1); - output_line(ctx, "%s_oC0 = %s_r0;", shstr, shstr); - } // if - else if (shader_is_vertex(ctx)) - { -#ifdef MOJOSHADER_FLIP_RENDERTARGET - output_line(ctx, "gl_Position.y = gl_Position.y * vpFlip;"); -#endif -#ifdef MOJOSHADER_DEPTH_CLIPPING - output_line(ctx, "gl_Position.z = gl_Position.z * 2.0 - gl_Position.w;"); -#endif - } // else if - - // force a RET opcode if we're at the end of the stream without one. - if (ctx->previous_opcode != OPCODE_RET) - emit_GLSL_RET(ctx); -} // emit_GLSL_end - -void emit_GLSL_phase(Context *ctx) -{ - // no-op in GLSL. -} // emit_GLSL_phase - -void output_GLSL_uniform_array(Context *ctx, const RegisterType regtype, - const int size) -{ - if (size > 0) - { - char buf[64]; - get_GLSL_uniform_array_varname(ctx, regtype, buf, sizeof (buf)); - const char *typ; - switch (regtype) - { - case REG_TYPE_CONST: typ = "vec4"; break; - case REG_TYPE_CONSTINT: typ ="ivec4"; break; - case REG_TYPE_CONSTBOOL: typ = "bool"; break; - default: - { - fail(ctx, "BUG: used a uniform we don't know how to define."); - return; - } // default - } // switch - output_line(ctx, "uniform %s %s[%d];", typ, buf, size); - } // if -} // output_GLSL_uniform_array - -void emit_GLSL_finalize(Context *ctx) -{ - // throw some blank lines around to make source more readable. - push_output(ctx, &ctx->globals); - output_blank_line(ctx); - pop_output(ctx); - - // If we had a relative addressing of REG_TYPE_INPUT, we need to build - // an array for it at the start of main(). GLSL doesn't let you specify - // arrays of attributes. - //vec4 blah_array[BIGGEST_ARRAY]; - if (ctx->have_relative_input_registers) // !!! FIXME - fail(ctx, "Relative addressing of input registers not supported."); - - push_output(ctx, &ctx->preflight); - output_GLSL_uniform_array(ctx, REG_TYPE_CONST, ctx->uniform_float4_count); - output_GLSL_uniform_array(ctx, REG_TYPE_CONSTINT, ctx->uniform_int4_count); - output_GLSL_uniform_array(ctx, REG_TYPE_CONSTBOOL, ctx->uniform_bool_count); -#ifdef MOJOSHADER_FLIP_RENDERTARGET - if (shader_is_vertex(ctx)) - output_line(ctx, "uniform float vpFlip;"); -#endif - if (ctx->need_max_float) - output_line(ctx, "const float FLT_MAX = 1e38;"); - pop_output(ctx); -} // emit_GLSL_finalize - -void emit_GLSL_global(Context *ctx, RegisterType regtype, int regnum) -{ - char varname[64]; - get_GLSL_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - push_output(ctx, &ctx->globals); - switch (regtype) - { - case REG_TYPE_ADDRESS: - if (shader_is_vertex(ctx)) - output_line(ctx, "ivec4 %s;", varname); - else if (shader_is_pixel(ctx)) // actually REG_TYPE_TEXTURE. - { - // We have to map texture registers to temps for ps_1_1, since - // they work like temps, initialize with tex coords, and the - // ps_1_1 TEX opcode expects to overwrite it. - if (!shader_version_atleast(ctx, 1, 4)) - { - // GLSL ES does not have gl_TexCoord! - // Also, gl_TexCoord[4+] is unreliable! -#if SUPPORT_PROFILE_GLSLES - const int skipGLTexCoord = support_glsles(ctx) || (regnum >= 4); -#else - const int skipGLTexCoord = (regnum >= 4); -#endif - if (skipGLTexCoord) - output_line(ctx, "vec4 %s = io_%i_%i;", - varname, MOJOSHADER_USAGE_TEXCOORD, regnum); - else - output_line(ctx, "vec4 %s = gl_TexCoord[%d];", - varname, regnum); - } // if - } // else if - break; - case REG_TYPE_PREDICATE: - output_line(ctx, "bvec4 %s;", varname); - break; - case REG_TYPE_TEMP: - output_line(ctx, "vec4 %s;", varname); - break; - case REG_TYPE_LOOP: - break; // no-op. We declare these in for loops at the moment. - case REG_TYPE_LABEL: - break; // no-op. If we see it here, it means we optimized it out. - default: - fail(ctx, "BUG: we used a register we don't know how to define."); - break; - } // switch - pop_output(ctx); -} // emit_GLSL_global - -void emit_GLSL_array(Context *ctx, VariableList *var) -{ - // All uniforms (except constant arrays, which only get pushed once at - // compile time) are now packed into a single array, so we can batch - // the uniform transfers. So this doesn't actually define an array - // here; the one, big array is emitted during finalization instead. - // However, we need to #define the offset into the one, big array here, - // and let dereferences use that #define. - const int base = var->index; - const int glslbase = ctx->uniform_float4_count; - push_output(ctx, &ctx->globals); - output_line(ctx, "#define ARRAYBASE_%d %d", base, glslbase); - pop_output(ctx); - var->emit_position = glslbase; -} // emit_GLSL_array - -void emit_GLSL_const_array(Context *ctx, const ConstantsList *clist, - int base, int size) -{ - char varname[64]; - get_GLSL_const_array_varname_in_buf(ctx,base,size,varname,sizeof(varname)); - -#if 0 - // !!! FIXME: fails on Nvidia's and Apple's GL, even with #version 120. - // !!! FIXME: (the 1.20 spec says it should work, though, I think...) - if (support_glsl120(ctx)) - { - // GLSL 1.20 can do constant arrays. - const char *cstr = NULL; - push_output(ctx, &ctx->globals); - output_line(ctx, "const vec4 %s[%d] = vec4[%d](", varname, size, size); - ctx->indent++; - - int i; - for (i = 0; i < size; i++) - { - while (clist->constant.type != MOJOSHADER_UNIFORM_FLOAT) - clist = clist->next; - assert(clist->constant.index == (base + i)); - - char val0[32]; - char val1[32]; - char val2[32]; - char val3[32]; - floatstr(ctx, val0, sizeof (val0), clist->constant.value.f[0], 1); - floatstr(ctx, val1, sizeof (val1), clist->constant.value.f[1], 1); - floatstr(ctx, val2, sizeof (val2), clist->constant.value.f[2], 1); - floatstr(ctx, val3, sizeof (val3), clist->constant.value.f[3], 1); - - output_line(ctx, "vec4(%s, %s, %s, %s)%s", val0, val1, val2, val3, - (i < (size-1)) ? "," : ""); - - clist = clist->next; - } // for - - ctx->indent--; - output_line(ctx, ");"); - pop_output(ctx); - } // if - - else -#endif - { - // stock GLSL 1.0 can't do constant arrays, so make a uniform array - // and have the OpenGL glue assign it at link time. Lame! - push_output(ctx, &ctx->globals); - output_line(ctx, "uniform vec4 %s[%d];", varname, size); - pop_output(ctx); - } // else -} // emit_GLSL_const_array - -void emit_GLSL_uniform(Context *ctx, RegisterType regtype, int regnum, - const VariableList *var) -{ - // Now that we're pushing all the uniforms as one big array, pack these - // down, so if we only use register c439, it'll actually map to - // glsl_uniforms_vec4[0]. As we push one big array, this will prevent - // uploading unused data. - - char varname[64]; - char name[64]; - int index = 0; - - get_GLSL_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - push_output(ctx, &ctx->globals); - - if (var == NULL) - { - get_GLSL_uniform_array_varname(ctx, regtype, name, sizeof (name)); - - if (regtype == REG_TYPE_CONST) - index = ctx->uniform_float4_count; - else if (regtype == REG_TYPE_CONSTINT) - index = ctx->uniform_int4_count; - else if (regtype == REG_TYPE_CONSTBOOL) - index = ctx->uniform_bool_count; - else // get_GLSL_uniform_array_varname() would have called fail(). - assert(!(ctx->isfail)); - - output_line(ctx, "#define %s %s[%d]", varname, name, index); - } // if - - else - { - const int arraybase = var->index; - if (var->constant) - { - get_GLSL_const_array_varname_in_buf(ctx, arraybase, var->count, - name, sizeof (name)); - index = (regnum - arraybase); - } // if - else - { - assert(var->emit_position != -1); - get_GLSL_uniform_array_varname(ctx, regtype, name, sizeof (name)); - index = (regnum - arraybase) + var->emit_position; - } // else - - output_line(ctx, "#define %s %s[%d]", varname, name, index); - } // else - - pop_output(ctx); -} // emit_GLSL_uniform - -void emit_GLSL_sampler(Context *ctx,int stage,TextureType ttype,int tb) -{ - const char *type = ""; - switch (ttype) - { - case TEXTURE_TYPE_2D: type = "sampler2D"; break; - case TEXTURE_TYPE_CUBE: type = "samplerCube"; break; - case TEXTURE_TYPE_VOLUME: type = "sampler3D"; break; - default: fail(ctx, "BUG: used a sampler we don't know how to define."); - } // switch - - char var[64]; - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, stage, var, sizeof (var)); - - push_output(ctx, &ctx->globals); - output_line(ctx, "uniform %s %s;", type, var); - if (tb) // This sampler used a ps_1_1 TEXBEM opcode? - { - char name[64]; - const int index = ctx->uniform_float4_count; - ctx->uniform_float4_count += 2; - get_GLSL_uniform_array_varname(ctx, REG_TYPE_CONST, name, sizeof (name)); - output_line(ctx, "#define %s_texbem %s[%d]", var, name, index); - output_line(ctx, "#define %s_texbeml %s[%d]", var, name, index+1); - } // if - pop_output(ctx); -} // emit_GLSL_sampler - -void emit_GLSL_attribute(Context *ctx, RegisterType regtype, int regnum, - MOJOSHADER_usage usage, int index, int wmask, - int flags) -{ - // !!! FIXME: this function doesn't deal with write masks at all yet! - const char *usage_str = NULL; - const char *arrayleft = ""; - const char *arrayright = ""; - char index_str[16] = { '\0' }; - char var[64]; - - get_GLSL_varname_in_buf(ctx, regtype, regnum, var, sizeof (var)); - - //assert((flags & MOD_PP) == 0); // !!! FIXME: is PP allowed? - - if (index != 0) // !!! FIXME: a lot of these MUST be zero. - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - - if (shader_is_vertex(ctx)) - { - // pre-vs3 output registers. - // these don't ever happen in DCL opcodes, I think. Map to vs_3_* - // output registers. - if (!shader_version_atleast(ctx, 3, 0)) - { - if (regtype == REG_TYPE_RASTOUT) - { - regtype = REG_TYPE_OUTPUT; - index = regnum; - switch ((const RastOutType) regnum) - { - case RASTOUT_TYPE_POSITION: - usage = MOJOSHADER_USAGE_POSITION; - break; - case RASTOUT_TYPE_FOG: - usage = MOJOSHADER_USAGE_FOG; - break; - case RASTOUT_TYPE_POINT_SIZE: - usage = MOJOSHADER_USAGE_POINTSIZE; - break; - } // switch - } // if - - else if (regtype == REG_TYPE_ATTROUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_COLOR; - index = regnum; - } // else if - - else if (regtype == REG_TYPE_TEXCRDOUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_TEXCOORD; - index = regnum; - } // else if - } // if - - // to avoid limitations of various GL entry points for input - // attributes (glSecondaryColorPointer() can only take 3 component - // items, glVertexPointer() can't do GL_UNSIGNED_BYTE, many other - // issues), we set up all inputs as generic vertex attributes, so we - // can pass data in just about any form, and ignore the built-in GLSL - // attributes like gl_SecondaryColor. Output needs to use the the - // built-ins, though, but we don't have to worry about the GL entry - // point limitations there. - - if (regtype == REG_TYPE_INPUT) - { - push_output(ctx, &ctx->globals); - output_line(ctx, "attribute vec4 %s;", var); - pop_output(ctx); - } // if - - else if (regtype == REG_TYPE_OUTPUT) - { - switch (usage) - { - case MOJOSHADER_USAGE_POSITION: - if (index == 0) - { - usage_str = "gl_Position"; - } // if - break; - case MOJOSHADER_USAGE_POINTSIZE: - if (index == 0) - { - usage_str = "gl_PointSize"; - } // if - else - { - push_output(ctx, &ctx->globals); -#if SUPPORT_PROFILE_GLSLES - if (support_glsles(ctx)) - output_line(ctx, "varying highp float io_%i_%i;", usage, index); - else -#endif - output_line(ctx, "varying float io_%i_%i;", usage, index); - output_line(ctx, "#define %s io_%i_%i", var, usage, index); - pop_output(ctx); - return; - } - break; - case MOJOSHADER_USAGE_COLOR: -#if SUPPORT_PROFILE_GLSLES - if (support_glsles(ctx)) - break; // GLSL ES does not have gl_FrontColor -#endif - index_str[0] = '\0'; // no explicit number. - if (index == 0) - { - usage_str = "gl_FrontColor"; - } // if - else if (index == 1) - { - usage_str = "gl_FrontSecondaryColor"; - } // else if - break; - case MOJOSHADER_USAGE_FOG: -#if SUPPORT_PROFILE_GLSLES - if (support_glsles(ctx)) - break; // GLSL ES does not have gl_FogFragCoord -#endif - if (index == 0) - { - usage_str = "gl_FogFragCoord"; - } // if - else - { - push_output(ctx, &ctx->globals); -#if SUPPORT_PROFILE_GLSLES - if (support_glsles(ctx)) - output_line(ctx, "varying highp float io_%i_%i;", usage, index); - else -#endif - output_line(ctx, "varying float io_%i_%i;", usage, index); - output_line(ctx, "#define %s io_%i_%i", var, usage, index); - pop_output(ctx); - return; - } - break; - case MOJOSHADER_USAGE_TEXCOORD: -#if SUPPORT_PROFILE_GLSLES - if (support_glsles(ctx)) - break; // GLSL ES does not have gl_TexCoord -#endif - if (index >= 4) - break; // gl_TexCoord[4+] is unreliable! - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - usage_str = "gl_TexCoord"; - arrayleft = "["; - arrayright = "]"; - break; - default: - // !!! FIXME: we need to deal with some more built-in varyings here. - break; - } // switch - - // !!! FIXME: the #define is a little hacky, but it means we don't - // !!! FIXME: have to track these separately if this works. - push_output(ctx, &ctx->globals); - // no mapping to built-in var? Just make it a regular global, pray. - if (usage_str == NULL) - { -#if SUPPORT_PROFILE_GLSLES - if (support_glsles(ctx)) - output_line(ctx, "varying highp vec4 io_%i_%i;", usage, index); - else -#endif - output_line(ctx, "varying vec4 io_%i_%i;", usage, index); - output_line(ctx, "#define %s io_%i_%i", var, usage, index); - } // if - else - { - output_line(ctx, "#define %s %s%s%s%s", var, usage_str, - arrayleft, index_str, arrayright); - } // else - pop_output(ctx); - } // else if - - else - { - fail(ctx, "unknown vertex shader attribute register"); - } // else - } // if - - else if (shader_is_pixel(ctx)) - { - // samplers DCLs get handled in emit_GLSL_sampler(). - - if (flags & MOD_CENTROID) // !!! FIXME - { - failf(ctx, "centroid unsupported in %s profile", ctx->profile->name); - return; - } // if - - if (regtype == REG_TYPE_COLOROUT) - { - if (!ctx->have_multi_color_outputs) - usage_str = "gl_FragColor"; // maybe faster? - else - { - snprintf(index_str, sizeof (index_str), "%u", (uint) regnum); - usage_str = "gl_FragData"; - arrayleft = "["; - arrayright = "]"; - } // else - } // if - - else if (regtype == REG_TYPE_DEPTHOUT) - usage_str = "gl_FragDepth"; - - // !!! FIXME: can you actualy have a texture register with COLOR usage? - else if ((regtype == REG_TYPE_TEXTURE) || (regtype == REG_TYPE_INPUT)) - { -#if SUPPORT_PROFILE_GLSLES - if (!support_glsles(ctx)) - { -#endif - if (usage == MOJOSHADER_USAGE_TEXCOORD) - { - // ps_1_1 does a different hack for this attribute. - // Refer to emit_GLSL_global()'s REG_TYPE_ADDRESS code. - if (!shader_version_atleast(ctx, 1, 4)) - return; - else if (index < 4) // gl_TexCoord[4+] is unreliable! - { - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - usage_str = "gl_TexCoord"; - arrayleft = "["; - arrayright = "]"; - } // else if - } // if - - else if (usage == MOJOSHADER_USAGE_COLOR) - { - index_str[0] = '\0'; // no explicit number. - if (index == 0) - { - usage_str = "gl_Color"; - } // if - else if (index == 1) - { - usage_str = "gl_SecondaryColor"; - } // else if - // FIXME: Does this even matter when we have varyings? -flibit - // else - // fail(ctx, "unsupported color index"); - } // else if -#if SUPPORT_PROFILE_GLSLES - } // if -#endif - } // else if - - else if (regtype == REG_TYPE_MISCTYPE) - { - const MiscTypeType mt = (MiscTypeType) regnum; - if (mt == MISCTYPE_TYPE_FACE) - { - push_output(ctx, &ctx->mainline_intro); - ctx->indent++; - output_line(ctx, "float %s = gl_FrontFacing ? 1.0 : -1.0;", var); - pop_output(ctx); - return; - } // if - else if (mt == MISCTYPE_TYPE_POSITION) - { - push_output(ctx, &ctx->globals); - output_line(ctx, "uniform vec2 vposFlip;"); - pop_output(ctx); - - // TODO: For half-pixel offset compensation, floor() this value! - push_output(ctx, &ctx->mainline_intro); - ctx->indent++; - output_line(ctx, "vec4 %s = vec4(gl_FragCoord.x, (gl_FragCoord.y * vposFlip.x) + vposFlip.y, gl_FragCoord.z, gl_FragCoord.w);", var); - pop_output(ctx); - return; - } // else if - else - { - fail(ctx, "BUG: unhandled misc register"); - } // else - } // else if - - else - { - fail(ctx, "unknown pixel shader attribute register"); - } // else - - push_output(ctx, &ctx->globals); - // no mapping to built-in var? Just make it a regular global, pray. - if (usage_str == NULL) - { -#if SUPPORT_PROFILE_GLSLES - if (support_glsles(ctx)) - output_line(ctx, "varying highp vec4 io_%i_%i;", usage, index); - else -#endif - output_line(ctx, "varying vec4 io_%i_%i;", usage, index); - output_line(ctx, "#define %s io_%i_%i", var, usage, index); - } // if - else - { - output_line(ctx, "#define %s %s%s%s%s", var, usage_str, - arrayleft, index_str, arrayright); - } // else - pop_output(ctx); - } // else if - - else - { - fail(ctx, "Unknown shader type"); // state machine should catch this. - } // else -} // emit_GLSL_attribute - -void emit_GLSL_NOP(Context *ctx) -{ - // no-op is a no-op. :) -} // emit_GLSL_NOP - -void emit_GLSL_MOV(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "%s", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_MOV - -void emit_GLSL_ADD(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "%s + %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_GLSL_ADD - -void emit_GLSL_SUB(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "%s - %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_GLSL_SUB - -void emit_GLSL_MAD(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_GLSL_srcarg_string_masked(ctx, 2, src2, sizeof (src2)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "(%s * %s) + %s", src0, src1, src2); - output_line(ctx, "%s", code); -} // emit_GLSL_MAD - -void emit_GLSL_MUL(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "%s * %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_GLSL_MUL - -void emit_GLSL_RCP(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char cast[16] = { '\0' }; - if (vecsize != 1) - snprintf(cast, sizeof (cast), "vec%d", vecsize); - char src0[64]; make_GLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->need_max_float = 1; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "%s((%s == 0.0) ? FLT_MAX : 1.0 / %s)", cast, src0, src0); - output_line(ctx, "%s", code); -} // emit_GLSL_RCP - -void emit_GLSL_RSQ(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char cast[16] = { '\0' }; - if (vecsize != 1) - snprintf(cast, sizeof (cast), "vec%d", vecsize); - - char src0[64]; make_GLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->need_max_float = 1; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "%s((%s == 0.0) ? FLT_MAX : inversesqrt(abs(%s)))", cast, src0, src0); - output_line(ctx, "%s", code); -} // emit_GLSL_RSQ - -void emit_GLSL_dotprod(Context *ctx, const char *src0, const char *src1, - const char *extra) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char castleft[16] = { '\0' }; - const char *castright = ""; - if (vecsize != 1) - { - snprintf(castleft, sizeof (castleft), "vec%d(", vecsize); - castright = ")"; - } // if - - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "%sdot(%s, %s)%s%s", - castleft, src0, src1, extra, castright); - output_line(ctx, "%s", code); -} // emit_GLSL_dotprod - -void emit_GLSL_DP3(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_vec3(ctx, 1, src1, sizeof (src1)); - emit_GLSL_dotprod(ctx, src0, src1, ""); -} // emit_GLSL_DP3 - -void emit_GLSL_DP4(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_full(ctx, 1, src1, sizeof (src1)); - emit_GLSL_dotprod(ctx, src0, src1, ""); -} // emit_GLSL_DP4 - -void emit_GLSL_MIN(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "min(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_GLSL_MIN - -void emit_GLSL_MAX(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "max(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_GLSL_MAX - -void emit_GLSL_SLT(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // float(bool) or vec(bvec) results in 0.0 or 1.0, like SLT wants. - if (vecsize == 1) - make_GLSL_destarg_assign(ctx, code, sizeof (code), "float(%s < %s)", src0, src1); - else - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec%d(lessThan(%s, %s))", - vecsize, src0, src1); - } // else - output_line(ctx, "%s", code); -} // emit_GLSL_SLT - -void emit_GLSL_SGE(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // float(bool) or vec(bvec) results in 0.0 or 1.0, like SGE wants. - if (vecsize == 1) - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "float(%s >= %s)", src0, src1); - } // if - else - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec%d(greaterThanEqual(%s, %s))", - vecsize, src0, src1); - } // else - output_line(ctx, "%s", code); -} // emit_GLSL_SGE - -void emit_GLSL_EXP(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "exp2(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_EXP - -void emit_GLSL_LOG(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "log2(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_LOG - -void emit_GLSL_LIT_helper(Context *ctx) -{ - const char *maxp = "127.9961"; // value from the dx9 reference. - - if (ctx->glsl_generated_lit_helper) - return; - - ctx->glsl_generated_lit_helper = 1; - - push_output(ctx, &ctx->helpers); - output_line(ctx, "vec4 LIT(const vec4 src)"); - output_line(ctx, "{"); ctx->indent++; - output_line(ctx, "float power = clamp(src.w, -%s, %s);",maxp,maxp); - output_line(ctx, "vec4 retval = vec4(1.0, 0.0, 0.0, 1.0);"); - output_line(ctx, "if (src.x > 0.0) {"); ctx->indent++; - output_line(ctx, "retval.y = src.x;"); - output_line(ctx, "if (src.y > 0.0) {"); ctx->indent++; - output_line(ctx, "retval.z = pow(src.y, power);"); ctx->indent--; - output_line(ctx, "}"); ctx->indent--; - output_line(ctx, "}"); - output_line(ctx, "return retval;"); ctx->indent--; - output_line(ctx, "}"); - output_blank_line(ctx); - pop_output(ctx); -} // emit_GLSL_LIT_helper - -void emit_GLSL_LIT(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char code[128]; - emit_GLSL_LIT_helper(ctx); - make_GLSL_destarg_assign(ctx, code, sizeof (code), "LIT(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_LIT - -void emit_GLSL_DST(Context *ctx) -{ - // !!! FIXME: needs to take ctx->dst_arg.writemask into account. - char src0_y[64]; make_GLSL_srcarg_string_y(ctx, 0, src0_y, sizeof (src0_y)); - char src1_y[64]; make_GLSL_srcarg_string_y(ctx, 1, src1_y, sizeof (src1_y)); - char src0_z[64]; make_GLSL_srcarg_string_z(ctx, 0, src0_z, sizeof (src0_z)); - char src1_w[64]; make_GLSL_srcarg_string_w(ctx, 1, src1_w, sizeof (src1_w)); - - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec4(1.0, %s * %s, %s, %s)", - src0_y, src1_y, src0_z, src1_w); - output_line(ctx, "%s", code); -} // emit_GLSL_DST - -void emit_GLSL_LRP(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_GLSL_srcarg_string_masked(ctx, 2, src2, sizeof (src2)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "mix(%s, %s, %s)", - src2, src1, src0); - output_line(ctx, "%s", code); -} // emit_GLSL_LRP - -void emit_GLSL_FRC(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "fract(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_FRC - -void emit_GLSL_M4X4(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_GLSL_srcarg_string_full(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_GLSL_srcarg_string_full(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_GLSL_srcarg_string_full(ctx, 3, row2, sizeof (row2)); - char row3[64]; make_GLSL_srcarg_string_full(ctx, 4, row3, sizeof (row3)); - char code[256]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec4(dot(%s, %s), dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2, src0, row3); - output_line(ctx, "%s", code); -} // emit_GLSL_M4X4 - -void emit_GLSL_M4X3(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_GLSL_srcarg_string_full(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_GLSL_srcarg_string_full(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_GLSL_srcarg_string_full(ctx, 3, row2, sizeof (row2)); - char code[256]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec3(dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2); - output_line(ctx, "%s", code); -} // emit_GLSL_M4X3 - -void emit_GLSL_M3X4(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_GLSL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_GLSL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_GLSL_srcarg_string_vec3(ctx, 3, row2, sizeof (row2)); - char row3[64]; make_GLSL_srcarg_string_vec3(ctx, 4, row3, sizeof (row3)); - - char code[256]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec4(dot(%s, %s), dot(%s, %s), " - "dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, - src0, row2, src0, row3); - output_line(ctx, "%s", code); -} // emit_GLSL_M3X4 - -void emit_GLSL_M3X3(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_GLSL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_GLSL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_GLSL_srcarg_string_vec3(ctx, 3, row2, sizeof (row2)); - char code[256]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec3(dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2); - output_line(ctx, "%s", code); -} // emit_GLSL_M3X3 - -void emit_GLSL_M3X2(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_GLSL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_GLSL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - - char code[256]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec2(dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1); - output_line(ctx, "%s", code); -} // emit_GLSL_M3X2 - -void emit_GLSL_CALL(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - if (ctx->loops > 0) - output_line(ctx, "%s(aL);", src0); - else - output_line(ctx, "%s();", src0); -} // emit_GLSL_CALL - -void emit_GLSL_CALLNZ(Context *ctx) -{ - // !!! FIXME: if src1 is a constbool that's true, we can remove the - // !!! FIXME: if. If it's false, we can make this a no-op. - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - - if (ctx->loops > 0) - output_line(ctx, "if (%s) { %s(aL); }", src1, src0); - else - output_line(ctx, "if (%s) { %s(); }", src1, src0); -} // emit_GLSL_CALLNZ - -void emit_GLSL_LOOP(Context *ctx) -{ - // !!! FIXME: swizzle? - char var[64]; get_GLSL_srcarg_varname(ctx, 1, var, sizeof (var)); - assert(ctx->source_args[0].regnum == 0); // in case they add aL1 someday. - output_line(ctx, "{"); - ctx->indent++; - output_line(ctx, "const int aLend = %s.x + %s.y;", var, var); - output_line(ctx, "for (int aL = %s.y; aL < aLend; aL += %s.z) {", var, var); - ctx->indent++; -} // emit_GLSL_LOOP - -void emit_GLSL_RET(Context *ctx) -{ - // thankfully, the MSDN specs say a RET _has_ to end a function...no - // early returns. So if you hit one, you know you can safely close - // a high-level function. - ctx->indent--; - output_line(ctx, "}"); - output_blank_line(ctx); - set_output(ctx, &ctx->subroutines); // !!! FIXME: is this for LABEL? Maybe set it there so we don't allocate unnecessarily. -} // emit_GLSL_RET - -void emit_GLSL_ENDLOOP(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); - ctx->indent--; - output_line(ctx, "}"); -} // emit_GLSL_ENDLOOP - -void emit_GLSL_LABEL(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - const int label = ctx->source_args[0].regnum; - RegisterList *reg = reglist_find(&ctx->used_registers, REG_TYPE_LABEL, label); - assert(ctx->output == ctx->subroutines); // not mainline, etc. - assert(ctx->indent == 0); // we shouldn't be in the middle of a function. - - // MSDN specs say CALL* has to come before the LABEL, so we know if we - // can ditch the entire function here as unused. - if (reg == NULL) - set_output(ctx, &ctx->ignore); // Func not used. Parse, but don't output. - - // !!! FIXME: it would be nice if we could determine if a function is - // !!! FIXME: only called once and, if so, forcibly inline it. - - const char *uses_loopreg = ((reg) && (reg->misc == 1)) ? "int aL" : ""; - output_line(ctx, "void %s(%s)", src0, uses_loopreg); - output_line(ctx, "{"); - ctx->indent++; -} // emit_GLSL_LABEL - -void emit_GLSL_DCL(Context *ctx) -{ - // no-op. We do this in our emit_attribute() and emit_uniform(). -} // emit_GLSL_DCL - -void emit_GLSL_POW(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "pow(abs(%s), %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_GLSL_POW - -void emit_GLSL_CRS(Context *ctx) -{ - // !!! FIXME: needs to take ctx->dst_arg.writemask into account. - char src0[64]; make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_vec3(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "cross(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_GLSL_CRS - -void emit_GLSL_SGN(Context *ctx) -{ - // (we don't need the temporary registers specified for the D3D opcode.) - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "sign(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_SGN - -void emit_GLSL_ABS(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "abs(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_ABS - -void emit_GLSL_NRM(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "normalize(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_NRM - -void emit_GLSL_SINCOS(Context *ctx) -{ - // we don't care about the temp registers that <= sm2 demands; ignore them. - // sm2 also talks about what components are left untouched vs. undefined, - // but we just leave those all untouched with GLSL write masks (which - // would fulfill the "undefined" requirement, too). - const int mask = ctx->dest_arg.writemask; - char src0[64]; make_GLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char code[128] = { '\0' }; - - if (writemask_x(mask)) - make_GLSL_destarg_assign(ctx, code, sizeof (code), "cos(%s)", src0); - else if (writemask_y(mask)) - make_GLSL_destarg_assign(ctx, code, sizeof (code), "sin(%s)", src0); - else if (writemask_xy(mask)) - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec2(cos(%s), sin(%s))", src0, src0); - } // else if - - output_line(ctx, "%s", code); -} // emit_GLSL_SINCOS - -void emit_GLSL_REP(Context *ctx) -{ - // !!! FIXME: - // msdn docs say legal loop values are 0 to 255. We can check DEFI values - // at parse time, but if they are pulling a value from a uniform, do - // we clamp here? - // !!! FIXME: swizzle is legal here, right? - char src0[64]; make_GLSL_srcarg_string_x(ctx, 0, src0, sizeof (src0)); - const uint rep = (uint) ctx->reps; - output_line(ctx, "for (int rep%u = 0; rep%u < %s; rep%u++) {", - rep, rep, src0, rep); - ctx->indent++; -} // emit_GLSL_REP - -void emit_GLSL_ENDREP(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); -} // emit_GLSL_ENDREP - -void emit_GLSL_IF(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "if (%s) {", src0); - ctx->indent++; -} // emit_GLSL_IF - -void emit_GLSL_IFC(Context *ctx) -{ - const char *comp = get_GLSL_comparison_string_scalar(ctx); - char src0[64]; make_GLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_scalar(ctx, 1, src1, sizeof (src1)); - output_line(ctx, "if (%s %s %s) {", src0, comp, src1); - ctx->indent++; -} // emit_GLSL_IFC - -void emit_GLSL_ELSE(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "} else {"); - ctx->indent++; -} // emit_GLSL_ELSE - -void emit_GLSL_ENDIF(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); -} // emit_GLSL_ENDIF - -void emit_GLSL_BREAK(Context *ctx) -{ - output_line(ctx, "break;"); -} // emit_GLSL_BREAK - -void emit_GLSL_BREAKC(Context *ctx) -{ - const char *comp = get_GLSL_comparison_string_scalar(ctx); - char src0[64]; make_GLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_scalar(ctx, 1, src1, sizeof (src1)); - output_line(ctx, "if (%s %s %s) { break; }", src0, comp, src1); -} // emit_GLSL_BREAKC - -void emit_GLSL_MOVA(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - - if (vecsize == 1) - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "int(floor(abs(%s) + 0.5) * sign(%s))", - src0, src0); - } // if - - else - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "ivec%d(floor(abs(%s) + vec%d(0.5)) * sign(%s))", - vecsize, src0, vecsize, src0); - } // else - - output_line(ctx, "%s", code); -} // emit_GLSL_MOVA - -void emit_GLSL_DEFB(Context *ctx) -{ - char varname[64]; get_GLSL_destarg_varname(ctx, varname, sizeof (varname)); - push_output(ctx, &ctx->globals); - output_line(ctx, "const bool %s = %s;", - varname, ctx->dwords[0] ? "true" : "false"); - pop_output(ctx); -} // emit_GLSL_DEFB - -void emit_GLSL_DEFI(Context *ctx) -{ - char varname[64]; get_GLSL_destarg_varname(ctx, varname, sizeof (varname)); - const int32 *x = (const int32 *) ctx->dwords; - push_output(ctx, &ctx->globals); - output_line(ctx, "const ivec4 %s = ivec4(%d, %d, %d, %d);", - varname, (int) x[0], (int) x[1], (int) x[2], (int) x[3]); - pop_output(ctx); -} // emit_GLSL_DEFI - -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXCRD) - -void emit_GLSL_TEXKILL(Context *ctx) -{ - char dst[64]; get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - output_line(ctx, "if (any(lessThan(%s.xyz, vec3(0.0)))) discard;", dst); -} // emit_GLSL_TEXKILL - -void emit_GLSL_TEXLD(Context *ctx) -{ - if (!shader_version_atleast(ctx, 1, 4)) - { - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char sampler[64]; - char code[128] = {0}; - - RegisterList *sreg; - sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - if (ttype == TEXTURE_TYPE_2D) - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "texture2D(%s, %s.xy)", - sampler, dst); - } - else if (ttype == TEXTURE_TYPE_CUBE) - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "textureCube(%s, %s.xyz)", - sampler, dst); - } - else if (ttype == TEXTURE_TYPE_VOLUME) - { - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "texture3D(%s, %s.xyz)", - sampler, dst); - } - else - { - fail(ctx, "unexpected texture type"); - } // else - output_line(ctx, "%s", code); - } // if - - else if (!shader_version_atleast(ctx, 2, 0)) - { - // ps_1_4 is different, too! - fail(ctx, "TEXLD == Shader Model 1.4 unimplemented."); // !!! FIXME - return; - } // else if - - else - { - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - samp_arg->regnum); - const char *funcname = NULL; - char src0[64] = { '\0' }; - char src1[64]; get_GLSL_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - - if (sreg == NULL) - { - fail(ctx, "TEXLD using undeclared sampler"); - return; - } // if - - // !!! FIXME: does the d3d bias value map directly to GLSL? - const char *biassep = ""; - char bias[64] = { '\0' }; - if (ctx->instruction_controls == CONTROL_TEXLDB) - { - biassep = ", "; - make_GLSL_srcarg_string_w(ctx, 0, bias, sizeof (bias)); - } // if - - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - if (ctx->instruction_controls == CONTROL_TEXLDP) - { - funcname = "texture2DProj"; - make_GLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - } // if - else // texld/texldb - { - funcname = "texture2D"; - make_GLSL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - } // else - break; - case TEXTURE_TYPE_CUBE: - if (ctx->instruction_controls == CONTROL_TEXLDP) - fail(ctx, "TEXLDP on a cubemap"); // !!! FIXME: is this legal? - funcname = "textureCube"; - make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - break; - case TEXTURE_TYPE_VOLUME: - if (ctx->instruction_controls == CONTROL_TEXLDP) - { - funcname = "texture3DProj"; - make_GLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - } // if - else // texld/texldb - { - funcname = "texture3D"; - make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - } // else - break; - default: - fail(ctx, "unknown texture type"); - return; - } // switch - - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - char swiz_str[6] = { '\0' }; - make_GLSL_swizzle_string(swiz_str, sizeof (swiz_str), - samp_arg->swizzle, ctx->dest_arg.writemask); - - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "%s(%s, %s%s%s)%s", funcname, - src1, src0, biassep, bias, swiz_str); - - output_line(ctx, "%s", code); - } // else -} // emit_GLSL_TEXLD - - -void emit_GLSL_TEXBEM(Context *ctx) -{ - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - char src[64]; get_GLSL_srcarg_varname(ctx, 0, src, sizeof (src)); - char sampler[64]; - char code[512]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "texture2D(%s, vec2(%s.x + (%s_texbem.x * %s.x) + (%s_texbem.z * %s.y)," - " %s.y + (%s_texbem.y * %s.x) + (%s_texbem.w * %s.y)))", - sampler, - dst, sampler, src, sampler, src, - dst, sampler, src, sampler, src); - - output_line(ctx, "%s", code); -} // emit_GLSL_TEXBEM - - -void emit_GLSL_TEXBEML(Context *ctx) -{ - // !!! FIXME: this code counts on the register not having swizzles, etc. - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - char src[64]; get_GLSL_srcarg_varname(ctx, 0, src, sizeof (src)); - char sampler[64]; - char code[512]; - - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "(texture2D(%s, vec2(%s.x + (%s_texbem.x * %s.x) + (%s_texbem.z * %s.y)," - " %s.y + (%s_texbem.y * %s.x) + (%s_texbem.w * %s.y)))) *" - " ((%s.z * %s_texbeml.x) + %s_texbem.y)", - sampler, - dst, sampler, src, sampler, src, - dst, sampler, src, sampler, src, - src, sampler, sampler); - - output_line(ctx, "%s", code); -} // emit_GLSL_TEXBEML - -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2AR) // !!! FIXME -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2GB) // !!! FIXME - - -void emit_GLSL_TEXM3X2PAD(Context *ctx) -{ - // no-op ... work happens in emit_GLSL_TEXM3X2TEX(). -} // emit_GLSL_TEXM3X2PAD - -void emit_GLSL_TEXM3X2TEX(Context *ctx) -{ - if (ctx->texm3x2pad_src0 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char sampler[64]; - char code[512]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_src0, - src0, sizeof (src0)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_dst0, - src1, sizeof (src1)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src2, sizeof (src2)); - get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "texture2D(%s, vec2(dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz)))", - sampler, src0, src1, src2, dst); - - output_line(ctx, "%s", code); -} // emit_GLSL_TEXM3X2TEX - -void emit_GLSL_TEXM3X3PAD(Context *ctx) -{ - // no-op ... work happens in emit_GLSL_TEXM3X3*(). -} // emit_GLSL_TEXM3X3PAD - -void emit_GLSL_TEXM3X3TEX(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char sampler[64]; - char code[512]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "Cube" : "3D"; - - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "texture%s(%s," - " vec3(dot(%s.xyz, %s.xyz)," - " dot(%s.xyz, %s.xyz)," - " dot(%s.xyz, %s.xyz)))", - ttypestr, sampler, src0, src1, src2, src3, dst, src4); - - output_line(ctx, "%s", code); -} // emit_GLSL_TEXM3X3TEX - -void emit_GLSL_TEXM3X3SPEC_helper(Context *ctx) -{ - if (ctx->glsl_generated_texm3x3spec_helper) - return; - - ctx->glsl_generated_texm3x3spec_helper = 1; - - push_output(ctx, &ctx->helpers); - output_line(ctx, "vec3 TEXM3X3SPEC_reflection(const vec3 normal, const vec3 eyeray)"); - output_line(ctx, "{"); ctx->indent++; - output_line(ctx, "return (2.0 * ((normal * eyeray) / (normal * normal)) * normal) - eyeray;"); ctx->indent--; - output_line(ctx, "}"); - output_blank_line(ctx); - pop_output(ctx); -} // emit_GLSL_TEXM3X3SPEC_helper - -void emit_GLSL_TEXM3X3SPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char src5[64]; - char sampler[64]; - char code[512]; - - emit_GLSL_TEXM3X3SPEC_helper(ctx); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[1].regnum, - src5, sizeof (src5)); - get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "Cube" : "3D"; - - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "texture%s(%s, " - "TEXM3X3SPEC_reflection(" - "vec3(" - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz)" - ")," - "%s.xyz," - ")" - ")", - ttypestr, sampler, src0, src1, src2, src3, dst, src4, src5); - - output_line(ctx, "%s", code); -} // emit_GLSL_TEXM3X3SPEC - -void emit_GLSL_TEXM3X3VSPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char sampler[64]; - char code[512]; - - emit_GLSL_TEXM3X3SPEC_helper(ctx); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_GLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "Cube" : "3D"; - - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "texture%s(%s, " - "TEXM3X3SPEC_reflection(" - "vec3(" - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz)" - "), " - "vec3(%s.w, %s.w, %s.w)" - ")" - ")", - ttypestr, sampler, src0, src1, src2, src3, dst, src4, src0, src2, dst); - - output_line(ctx, "%s", code); -} // emit_GLSL_TEXM3X3VSPEC - -void emit_GLSL_EXPP(Context *ctx) -{ - // !!! FIXME: msdn's asm docs don't list this opcode, I'll have to check the driver documentation. - emit_GLSL_EXP(ctx); // I guess this is just partial precision EXP? -} // emit_GLSL_EXPP - -void emit_GLSL_LOGP(Context *ctx) -{ - // LOGP is just low-precision LOG, but we'll take the higher precision. - emit_GLSL_LOG(ctx); -} // emit_GLSL_LOGP - -// common code between CMP and CND. -void emit_GLSL_comparison_operations(Context *ctx, const char *cmp) -{ - int i, j; - DestArgInfo *dst = &ctx->dest_arg; - const SourceArgInfo *srcarg0 = &ctx->source_args[0]; - const int origmask = dst->writemask; - int used_swiz[4] = { 0, 0, 0, 0 }; - const int writemask[4] = { dst->writemask0, dst->writemask1, - dst->writemask2, dst->writemask3 }; - const int src0swiz[4] = { srcarg0->swizzle_x, srcarg0->swizzle_y, - srcarg0->swizzle_z, srcarg0->swizzle_w }; - - for (i = 0; i < 4; i++) - { - int mask = (1 << i); - - if (!writemask[i]) continue; - if (used_swiz[i]) continue; - - // This is a swizzle we haven't checked yet. - used_swiz[i] = 1; - - // see if there are any other elements swizzled to match (.yyyy) - for (j = i + 1; j < 4; j++) - { - if (!writemask[j]) continue; - if (src0swiz[i] != src0swiz[j]) continue; - mask |= (1 << j); - used_swiz[j] = 1; - } // for - - // okay, (mask) should be the writemask of swizzles we like. - - //return make_GLSL_srcarg_string(ctx, idx, (1 << 0)); - - char src0[64]; - char src1[64]; - char src2[64]; - make_GLSL_srcarg_string(ctx, 0, (1 << i), src0, sizeof (src0)); - make_GLSL_srcarg_string(ctx, 1, mask, src1, sizeof (src1)); - make_GLSL_srcarg_string(ctx, 2, mask, src2, sizeof (src2)); - - set_dstarg_writemask(dst, mask); - - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "((%s %s) ? %s : %s)", - src0, cmp, src1, src2); - output_line(ctx, "%s", code); - } // for - - set_dstarg_writemask(dst, origmask); -} // emit_GLSL_comparison_operations - -void emit_GLSL_CND(Context *ctx) -{ - emit_GLSL_comparison_operations(ctx, "> 0.5"); -} // emit_GLSL_CND - -void emit_GLSL_DEF(Context *ctx) -{ - const float *val = (const float *) ctx->dwords; // !!! FIXME: could be int? - char varname[64]; get_GLSL_destarg_varname(ctx, varname, sizeof (varname)); - char val0[32]; floatstr(ctx, val0, sizeof (val0), val[0], 1); - char val1[32]; floatstr(ctx, val1, sizeof (val1), val[1], 1); - char val2[32]; floatstr(ctx, val2, sizeof (val2), val[2], 1); - char val3[32]; floatstr(ctx, val3, sizeof (val3), val[3], 1); - - push_output(ctx, &ctx->globals); - output_line(ctx, "const vec4 %s = vec4(%s, %s, %s, %s);", - varname, val0, val1, val2, val3); - pop_output(ctx); -} // emit_GLSL_DEF - -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2RGB) // !!! FIXME -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3TEX) // !!! FIXME -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXM3X2DEPTH) // !!! FIXME -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3) // !!! FIXME - -void emit_GLSL_TEXM3X3(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char code[512]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_GLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_GLSL_destarg_varname(ctx, dst, sizeof (dst)); - - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "vec4(dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz), 1.0)", - src0, src1, src2, src3, dst, src4); - - output_line(ctx, "%s", code); -} // emit_GLSL_TEXM3X3 - -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXDEPTH) // !!! FIXME - -void emit_GLSL_CMP(Context *ctx) -{ - emit_GLSL_comparison_operations(ctx, ">= 0.0"); -} // emit_GLSL_CMP - -EMIT_GLSL_OPCODE_UNIMPLEMENTED_FUNC(BEM) // !!! FIXME - -void emit_GLSL_DP2ADD(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_vec2(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_GLSL_srcarg_string_scalar(ctx, 2, src2, sizeof (src2)); - char extra[128]; snprintf(extra, sizeof (extra), " + %s", src2); - emit_GLSL_dotprod(ctx, src0, src1, extra); -} // emit_GLSL_DP2ADD - -void emit_GLSL_DSX(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "dFdx(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_DSX - -void emit_GLSL_DSY(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), "dFdy(%s)", src0); - output_line(ctx, "%s", code); -} // emit_GLSL_DSY - -void emit_GLSL_TEXLDD(Context *ctx) -{ - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - samp_arg->regnum); - const char *funcname = NULL; - char src0[64] = { '\0' }; - char src1[64]; get_GLSL_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - char src2[64] = { '\0' }; - char src3[64] = { '\0' }; - - if (sreg == NULL) - { - fail(ctx, "TEXLDD using undeclared sampler"); - return; - } // if - - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - funcname = "texture2D"; - make_GLSL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - make_GLSL_srcarg_string_vec2(ctx, 2, src2, sizeof (src2)); - make_GLSL_srcarg_string_vec2(ctx, 3, src3, sizeof (src3)); - break; - case TEXTURE_TYPE_CUBE: - funcname = "textureCube"; - make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - make_GLSL_srcarg_string_vec3(ctx, 2, src2, sizeof (src2)); - make_GLSL_srcarg_string_vec3(ctx, 3, src3, sizeof (src3)); - break; - case TEXTURE_TYPE_VOLUME: - funcname = "texture3D"; - make_GLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - make_GLSL_srcarg_string_vec3(ctx, 2, src2, sizeof (src2)); - make_GLSL_srcarg_string_vec3(ctx, 3, src3, sizeof (src3)); - break; - default: - fail(ctx, "unknown texture type"); - return; - } // switch - - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - char swiz_str[6] = { '\0' }; - make_GLSL_swizzle_string(swiz_str, sizeof (swiz_str), - samp_arg->swizzle, ctx->dest_arg.writemask); - - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "%sGrad(%s, %s, %s, %s)%s", funcname, - src1, src0, src2, src3, swiz_str); - - prepend_glsl_texlod_extensions(ctx); - output_line(ctx, "%s", code); -} // emit_GLSL_TEXLDD - -void emit_GLSL_SETP(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_GLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_GLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // destination is always predicate register (which is type bvec4). - if (vecsize == 1) - { - const char *comp = get_GLSL_comparison_string_scalar(ctx); - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "(%s %s %s)", src0, comp, src1); - } // if - else - { - const char *comp = get_GLSL_comparison_string_vector(ctx); - make_GLSL_destarg_assign(ctx, code, sizeof (code), - "%s(%s, %s)", comp, src0, src1); - } // else - - output_line(ctx, "%s", code); -} // emit_GLSL_SETP - -void emit_GLSL_TEXLDL(Context *ctx) -{ - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - samp_arg->regnum); - const char *pattern = NULL; - char src0[64]; - char src1[64]; - make_GLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - get_GLSL_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - - if (sreg == NULL) - { - fail(ctx, "TEXLDL using undeclared sampler"); - return; - } // if - - // HLSL tex2dlod accepts (sampler, uv.xyz, uv.w) where uv.w is the LOD - // GLSL seems to want the dimensionality to match the sampler (.xy vs .xyz) - // so we vary the swizzle accordingly - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - pattern = "texture2DLod(%s, %s.xy, %s.w)%s"; - break; - case TEXTURE_TYPE_CUBE: - pattern = "textureCubeLod(%s, %s.xyz, %s.w)%s"; - break; - case TEXTURE_TYPE_VOLUME: - pattern = "texture3DLod(%s, %s.xyz, %s.w)%s"; - break; - default: - fail(ctx, "unknown texture type"); - return; - } // switch - - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - char swiz_str[6] = { '\0' }; - make_GLSL_swizzle_string(swiz_str, sizeof (swiz_str), - samp_arg->swizzle, ctx->dest_arg.writemask); - - char code[128]; - make_GLSL_destarg_assign(ctx, code, sizeof(code), - pattern, src1, src0, src0, swiz_str); - - prepend_glsl_texlod_extensions(ctx); - output_line(ctx, "%s", code); -} // emit_GLSL_TEXLDL - -void emit_GLSL_BREAKP(Context *ctx) -{ - char src0[64]; make_GLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "if (%s) { break; }", src0); -} // emit_GLSL_BREAKP - -void emit_GLSL_RESERVED(Context *ctx) -{ - // do nothing; fails in the state machine. -} // emit_GLSL_RESERVED - -#endif // SUPPORT_PROFILE_GLSL - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_hlsl.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_hlsl.c deleted file mode 100644 index cc5bdb8c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_hlsl.c +++ /dev/null @@ -1,2279 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -// !!! FIXME: A lot of this is cut-and-paste from the GLSL/Metal versions. -#if SUPPORT_PROFILE_HLSL - -#define EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(op) \ - void emit_HLSL_##op(Context *ctx) { \ - fail(ctx, #op " unimplemented in hlsl profile"); \ - } - -static inline const char *get_HLSL_register_string(Context *ctx, - const RegisterType regtype, const int regnum, - char *regnum_str, const size_t regnum_size) -{ - // turns out these are identical at the moment. - return get_D3D_register_string(ctx,regtype,regnum,regnum_str,regnum_size); -} // get_HLSL_register_string - -const char *get_HLSL_uniform_type(Context *ctx, const RegisterType rtype) -{ - switch (rtype) - { - case REG_TYPE_CONST: return "float4"; - case REG_TYPE_CONSTINT: return "int4"; - case REG_TYPE_CONSTBOOL: return "bool"; - default: fail(ctx, "BUG: used a uniform we don't know how to define."); - } // switch - - return NULL; -} // get_HLSL_uniform_type - -const char *get_HLSL_varname_in_buf(Context *ctx, RegisterType rt, - int regnum, char *buf, - const size_t len) -{ - char regnum_str[16]; - const char *regtype_str = get_HLSL_register_string(ctx, rt, regnum, - regnum_str, sizeof (regnum_str)); - snprintf(buf,len,"%s%s", regtype_str, regnum_str); - return buf; -} // get_HLSL_varname_in_buf - -const char *get_HLSL_varname(Context *ctx, RegisterType rt, int regnum) -{ - char buf[64]; - get_HLSL_varname_in_buf(ctx, rt, regnum, buf, sizeof(buf)); - return StrDup(ctx, buf); -} // get_HLSL_varname - -static inline const char *get_HLSL_const_array_varname_in_buf(Context *ctx, - const int base, const int size, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "const_array_%d_%d", base, size); - return buf; -} // get_HLSL_const_array_varname_in_buf - -const char *get_HLSL_const_array_varname(Context *ctx, int base, int size) -{ - char buf[64]; - get_HLSL_const_array_varname_in_buf(ctx, base, size, buf, sizeof(buf)); - return StrDup(ctx, buf); -} // get_HLSL_const_array_varname - -static inline const char *get_HLSL_input_array_varname(Context *ctx, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "%s", "vertex_input_array"); - return buf; -} // get_HLSL_input_array_varname - -const char *get_HLSL_uniform_array_varname(Context *ctx, - const RegisterType regtype, - char *buf, const size_t len) -{ - const char *type = get_HLSL_uniform_type(ctx, regtype); - snprintf(buf, len, "uniforms_%s", type); - return buf; -} // get_HLSL_uniform_array_varname - -const char *get_HLSL_destarg_varname(Context *ctx, char *buf, size_t len) -{ - const DestArgInfo *arg = &ctx->dest_arg; - return get_HLSL_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, len); -} // get_HLSL_destarg_varname - -const char *get_HLSL_srcarg_varname(Context *ctx, const size_t idx, - char *buf, size_t len) -{ - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - *buf = '\0'; - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - return get_HLSL_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, len); -} // get_HLSL_srcarg_varname - -const char *make_HLSL_destarg_assign(Context *, char *, const size_t, - const char *, ...) ISPRINTF(4,5); - -const char *make_HLSL_destarg_assign(Context *ctx, char *buf, - const size_t buflen, - const char *fmt, ...) -{ - int need_parens = 0; - const DestArgInfo *arg = &ctx->dest_arg; - - if (arg->writemask == 0) - { - *buf = '\0'; - return buf; // no writemask? It's a no-op. - } // if - - const char *clampleft = ""; - const char *clampright = ""; - if (arg->result_mod & MOD_SATURATE) - { - clampleft = "saturate("; - clampright = ")"; - } // if - - // MSDN says MOD_PP is a hint and many implementations ignore it. So do we. - - // CENTROID only allowed in DCL opcodes, which shouldn't come through here. - assert((arg->result_mod & MOD_CENTROID) == 0); - - if (ctx->predicated) - { - fail(ctx, "predicated destinations unsupported"); // !!! FIXME - *buf = '\0'; - return buf; - } // if - - char operation[256]; - va_list ap; - va_start(ap, fmt); - const int len = vsnprintf(operation, sizeof (operation), fmt, ap); - va_end(ap); - if (len >= sizeof (operation)) - { - fail(ctx, "operation string too large"); // I'm lazy. :P - *buf = '\0'; - return buf; - } // if - - const char *result_shift_str = ""; - switch (arg->result_shift) - { - case 0x1: result_shift_str = " * 2.0"; break; - case 0x2: result_shift_str = " * 4.0"; break; - case 0x3: result_shift_str = " * 8.0"; break; - case 0xD: result_shift_str = " / 8.0"; break; - case 0xE: result_shift_str = " / 4.0"; break; - case 0xF: result_shift_str = " / 2.0"; break; - } // switch - need_parens |= (result_shift_str[0] != '\0'); - - char regnum_str[16]; - const char *regtype_str = get_HLSL_register_string(ctx, arg->regtype, - arg->regnum, regnum_str, - sizeof (regnum_str)); - char writemask_str[6]; - size_t i = 0; - const int scalar = isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum); - if (!scalar && !writemask_xyzw(arg->writemask)) - { - writemask_str[i++] = '.'; - if (arg->writemask0) writemask_str[i++] = 'x'; - if (arg->writemask1) writemask_str[i++] = 'y'; - if (arg->writemask2) writemask_str[i++] = 'z'; - if (arg->writemask3) writemask_str[i++] = 'w'; - } // if - writemask_str[i] = '\0'; - assert(i < sizeof (writemask_str)); - - const char *leftparen = (need_parens) ? "(" : ""; - const char *rightparen = (need_parens) ? ")" : ""; - - snprintf(buf, buflen, "%s%s%s = %s%s%s%s%s%s;", regtype_str, - regnum_str, writemask_str,clampleft, leftparen, - operation, rightparen, result_shift_str, clampright); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_HLSL_destarg_assign - - -char *make_HLSL_swizzle_string(char *swiz_str, const size_t strsize, - const int swizzle, const int writemask) -{ - size_t i = 0; - if ( (!no_swizzle(swizzle)) || (!writemask_xyzw(writemask)) ) - { - const int writemask0 = (writemask >> 0) & 0x1; - const int writemask1 = (writemask >> 1) & 0x1; - const int writemask2 = (writemask >> 2) & 0x1; - const int writemask3 = (writemask >> 3) & 0x1; - - const int swizzle_x = (swizzle >> 0) & 0x3; - const int swizzle_y = (swizzle >> 2) & 0x3; - const int swizzle_z = (swizzle >> 4) & 0x3; - const int swizzle_w = (swizzle >> 6) & 0x3; - - swiz_str[i++] = '.'; - if (writemask0) swiz_str[i++] = swizzle_channels[swizzle_x]; - if (writemask1) swiz_str[i++] = swizzle_channels[swizzle_y]; - if (writemask2) swiz_str[i++] = swizzle_channels[swizzle_z]; - if (writemask3) swiz_str[i++] = swizzle_channels[swizzle_w]; - } // if - assert(i < strsize); - swiz_str[i] = '\0'; - return swiz_str; -} // make_HLSL_swizzle_string - - -const char *make_HLSL_srcarg_string(Context *ctx, const size_t idx, - const int writemask, char *buf, - const size_t buflen) -{ - *buf = '\0'; - - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - - const char *premod_str = ""; - const char *postmod_str = ""; - switch (arg->src_mod) - { - case SRCMOD_NEGATE: - premod_str = "-"; - break; - - case SRCMOD_BIASNEGATE: - premod_str = "-("; - postmod_str = " - 0.5)"; - break; - - case SRCMOD_BIAS: - premod_str = "("; - postmod_str = " - 0.5)"; - break; - - case SRCMOD_SIGNNEGATE: - premod_str = "-(("; - postmod_str = " - 0.5) * 2.0)"; - break; - - case SRCMOD_SIGN: - premod_str = "(("; - postmod_str = " - 0.5) * 2.0)"; - break; - - case SRCMOD_COMPLEMENT: - premod_str = "(1.0 - "; - postmod_str = ")"; - break; - - case SRCMOD_X2NEGATE: - premod_str = "-("; - postmod_str = " * 2.0)"; - break; - - case SRCMOD_X2: - premod_str = "("; - postmod_str = " * 2.0)"; - break; - - case SRCMOD_DZ: - fail(ctx, "SRCMOD_DZ unsupported"); return buf; // !!! FIXME - postmod_str = "_dz"; - break; - - case SRCMOD_DW: - fail(ctx, "SRCMOD_DW unsupported"); return buf; // !!! FIXME - postmod_str = "_dw"; - break; - - case SRCMOD_ABSNEGATE: - premod_str = "-abs("; - postmod_str = ")"; - break; - - case SRCMOD_ABS: - premod_str = "abs("; - postmod_str = ")"; - break; - - case SRCMOD_NOT: - premod_str = "!"; - break; - - case SRCMOD_NONE: - case SRCMOD_TOTAL: - break; // stop compiler whining. - } // switch - - const char *regtype_str = NULL; - - if (!arg->relative) - { - regtype_str = get_HLSL_varname_in_buf(ctx, arg->regtype, arg->regnum, - (char *) alloca(64), 64); - } // if - - const char *rel_lbracket = ""; - char rel_offset[32] = { '\0' }; - const char *rel_rbracket = ""; - char rel_swizzle[4] = { '\0' }; - const char *rel_regtype_str = ""; - if (arg->relative) - { - if (arg->regtype == REG_TYPE_INPUT) - regtype_str=get_HLSL_input_array_varname(ctx,(char*)alloca(64),64); - else - { - assert(arg->regtype == REG_TYPE_CONST); - const int arrayidx = arg->relative_array->index; - const int offset = arg->regnum - arrayidx; - assert(offset >= 0); - if (arg->relative_array->constant) - { - const int arraysize = arg->relative_array->count; - regtype_str = get_HLSL_const_array_varname_in_buf(ctx, - arrayidx, arraysize, (char *) alloca(64), 64); - if (offset != 0) - snprintf(rel_offset, sizeof (rel_offset), "%d + ", offset); - } // if - else - { - regtype_str = get_HLSL_uniform_array_varname(ctx, arg->regtype, - (char *) alloca(64), 64); - if (offset == 0) - { - snprintf(rel_offset, sizeof (rel_offset), - "ARRAYBASE_%d + ", arrayidx); - } // if - else - { - snprintf(rel_offset, sizeof (rel_offset), - "(ARRAYBASE_%d + %d) + ", arrayidx, offset); - } // else - } // else - } // else - - rel_lbracket = "["; - - rel_regtype_str = get_HLSL_varname_in_buf(ctx, arg->relative_regtype, - arg->relative_regnum, - (char *) alloca(64), 64); - rel_swizzle[0] = '.'; - rel_swizzle[1] = swizzle_channels[arg->relative_component]; - rel_swizzle[2] = '\0'; - rel_rbracket = "]"; - } // if - - char swiz_str[6] = { '\0' }; - if (!isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum)) - { - make_HLSL_swizzle_string(swiz_str, sizeof (swiz_str), - arg->swizzle, writemask); - } // if - - if (regtype_str == NULL) - { - fail(ctx, "Unknown source register type."); - return buf; - } // if - - snprintf(buf, buflen, "%s%s%s%s%s%s%s%s%s", - premod_str, regtype_str, rel_lbracket, rel_offset, - rel_regtype_str, rel_swizzle, rel_rbracket, swiz_str, - postmod_str); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_HLSL_srcarg_string - -// generate some convenience functions. -#define MAKE_HLSL_SRCARG_STRING_(mask, bitmask) \ - static inline const char *make_HLSL_srcarg_string_##mask(Context *ctx, \ - const size_t idx, char *buf, \ - const size_t buflen) { \ - return make_HLSL_srcarg_string(ctx, idx, bitmask, buf, buflen); \ - } -MAKE_HLSL_SRCARG_STRING_(x, (1 << 0)) -MAKE_HLSL_SRCARG_STRING_(y, (1 << 1)) -MAKE_HLSL_SRCARG_STRING_(z, (1 << 2)) -MAKE_HLSL_SRCARG_STRING_(w, (1 << 3)) -MAKE_HLSL_SRCARG_STRING_(scalar, (1 << 0)) -MAKE_HLSL_SRCARG_STRING_(full, 0xF) -MAKE_HLSL_SRCARG_STRING_(masked, ctx->dest_arg.writemask) -MAKE_HLSL_SRCARG_STRING_(vec3, 0x7) -MAKE_HLSL_SRCARG_STRING_(vec2, 0x3) -#undef MAKE_HLSL_SRCARG_STRING_ - -// special cases for comparison opcodes... - -const char *get_HLSL_comparison_string_scalar(Context *ctx) -{ - const char *comps[] = { "", ">", "==", ">=", "<", "!=", "<=" }; - if (ctx->instruction_controls >= STATICARRAYLEN(comps)) - { - fail(ctx, "unknown comparison control"); - return ""; - } // if - - return comps[ctx->instruction_controls]; -} // get_HLSL_comparison_string_scalar - -const char *get_HLSL_comparison_string_vector(Context *ctx) -{ - return get_HLSL_comparison_string_scalar(ctx); // standard C operators work for vectors in HLSL. -} // get_HLSL_comparison_string_vector - - -void emit_HLSL_start(Context *ctx, const char *profilestr) -{ - if (!shader_is_vertex(ctx) && !shader_is_pixel(ctx)) - { - failf(ctx, "Shader type %u unsupported in this profile.", - (uint) ctx->shader_type); - return; - } // if - - if (!ctx->mainfn) - { - if (shader_is_vertex(ctx)) - ctx->mainfn = StrDup(ctx, "VertexShader"); - else if (shader_is_pixel(ctx)) - ctx->mainfn = StrDup(ctx, "PixelShader"); - } // if - - set_output(ctx, &ctx->mainline); - ctx->indent++; -} // emit_HLSL_start - -void emit_HLSL_RET(Context *ctx); -void emit_HLSL_end(Context *ctx) -{ - // !!! FIXME: maybe handle this at a higher level? - // ps_1_* writes color to r0 instead oC0. We move it to the right place. - // We don't have to worry about a RET opcode messing this up, since - // RET isn't available before ps_2_0. - if (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 2, 0)) - { - set_used_register(ctx, REG_TYPE_COLOROUT, 0, 1); - output_line(ctx, "oC0 = r0;"); - } // if - - // !!! FIXME: maybe handle this at a higher level? - // force a RET opcode if we're at the end of the stream without one. - if (ctx->previous_opcode != OPCODE_RET) - emit_HLSL_RET(ctx); -} // emit_HLSL_end - -void emit_HLSL_phase(Context *ctx) -{ - // no-op in HLSL. -} // emit_HLSL_phase - -void output_HLSL_uniform_array(Context *ctx, const RegisterType regtype, - const int size) -{ - if (size > 0) - { - char buf[64]; - get_HLSL_uniform_array_varname(ctx, regtype, buf, sizeof (buf)); - const char *typ; - switch (regtype) - { - case REG_TYPE_CONST: typ = "float4"; break; - case REG_TYPE_CONSTINT: typ = "int4"; break; - case REG_TYPE_CONSTBOOL: typ = "bool"; break; - default: - { - fail(ctx, "BUG: used a uniform we don't know how to define."); - return; - } // default - } // switch - output_line(ctx, "%s %s[%d];", typ, buf, size); - } // if -} // output_HLSL_uniform_array - -void emit_HLSL_finalize(Context *ctx) -{ - if (ctx->have_relative_input_registers) // !!! FIXME - fail(ctx, "Relative addressing of input registers not supported."); - - // Check uniform_float4_count too since TEXBEM affects it - if (ctx->uniform_count > 0 || ctx->uniform_float4_count > 0) - { - push_output(ctx, &ctx->preflight); - output_line(ctx, "cbuffer %s_Uniforms : register(b0)", ctx->mainfn); - output_line(ctx, "{"); - ctx->indent++; - output_HLSL_uniform_array(ctx, REG_TYPE_CONST, ctx->uniform_float4_count); - output_HLSL_uniform_array(ctx, REG_TYPE_CONSTINT, ctx->uniform_int4_count); - output_HLSL_uniform_array(ctx, REG_TYPE_CONSTBOOL, ctx->uniform_bool_count); - ctx->indent--; - output_line(ctx, "};"); - output_blank_line(ctx); - pop_output(ctx); - } // if - - // Fill in the shader's mainline function signature. - push_output(ctx, &ctx->mainline_intro); - output_line(ctx, "%s%s %s(%s%s%s)", - ctx->outputs ? ctx->mainfn : "void", - ctx->outputs ? "_Output" : "", - ctx->mainfn, - ctx->inputs ? ctx->mainfn : "", - ctx->inputs ? "_Input" : "", - ctx->inputs ? " input" : ""); - output_line(ctx, "{"); - - if (ctx->outputs) - { - ctx->indent++; - output_line(ctx, "%s%s output = (%s%s) 0;", - ctx->mainfn, "_Output", ctx->mainfn, "_Output"); - - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "return output;"); - pop_output(ctx); - } // if - pop_output(ctx); - - if (ctx->inputs) - { - push_output(ctx, &ctx->inputs); - output_line(ctx, "};"); - output_blank_line(ctx); - pop_output(ctx); - } // if - - if (ctx->outputs) - { - push_output(ctx, &ctx->outputs); - - // !!! FIXME: Maybe have a better check for this? - if (ctx->hlsl_outpos_name[0] != '\0') - { - output_line(ctx, "\tfloat4 m_%s : SV_Position;", - ctx->hlsl_outpos_name); - } // if - - output_line(ctx, "};"); - output_blank_line(ctx); - pop_output(ctx); - } // if - - // throw some blank lines around to make source more readable. - if (ctx->globals) // don't add a blank line if the section is empty. - { - push_output(ctx, &ctx->globals); - output_blank_line(ctx); - pop_output(ctx); - } // if - - if (ctx->need_max_float) - { - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "#define FLT_MAX 1e38"); - ctx->indent--; - pop_output(ctx); - } // if -} // emit_HLSL_finalize - -void emit_HLSL_global(Context *ctx, RegisterType regtype, int regnum) -{ - char varname[64]; - get_HLSL_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - - switch (regtype) - { - case REG_TYPE_ADDRESS: - if (shader_is_vertex(ctx)) - output_line(ctx, "int4 %s;", varname); - else if (shader_is_pixel(ctx)) // actually REG_TYPE_TEXTURE. - { - // We have to map texture registers to temps for ps_1_1, since - // they work like temps, initialize with tex coords, and the - // ps_1_1 TEX opcode expects to overwrite it. - if (!shader_version_atleast(ctx, 1, 4)) - output_line(ctx, "float4 %s = input.m_%s;",varname,varname); - } // else if - break; - case REG_TYPE_PREDICATE: - output_line(ctx, "bool4 %s;", varname); - break; - case REG_TYPE_TEMP: - output_line(ctx, "float4 %s;", varname); - break; - case REG_TYPE_LOOP: - break; // no-op. We declare these in for loops at the moment. - case REG_TYPE_LABEL: - break; // no-op. If we see it here, it means we optimized it out. - default: - fail(ctx, "BUG: we used a register we don't know how to define."); - break; - } // switch - - pop_output(ctx); -} // emit_HLSL_global - -void emit_HLSL_array(Context *ctx, VariableList *var) -{ - // All uniforms (except constant arrays, which are literally constant - // data embedded in HLSL shaders) are now packed into a single array, - // so we can batch the uniform transfers. So this doesn't actually - // define an array here; the one, big array is emitted during - // finalization instead. - // However, we need to #define the offset into the one, big array here, - // and let dereferences use that #define. - const int base = var->index; - const int hlslbase = ctx->uniform_float4_count; - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const int ARRAYBASE_%d = %d;", base, hlslbase); - pop_output(ctx); - var->emit_position = hlslbase; -} // emit_HLSL_array - -void emit_HLSL_const_array(Context *ctx, const ConstantsList *clist, - int base, int size) -{ - char varname[64]; - get_HLSL_const_array_varname_in_buf(ctx,base,size,varname,sizeof(varname)); - - const char *cstr = NULL; - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const float4 %s[%d] = {", varname, size); - ctx->indent++; - - int i; - for (i = 0; i < size; i++) - { - while (clist->constant.type != MOJOSHADER_UNIFORM_FLOAT) - clist = clist->next; - assert(clist->constant.index == (base + i)); - - char val0[32]; - char val1[32]; - char val2[32]; - char val3[32]; - floatstr(ctx, val0, sizeof (val0), clist->constant.value.f[0], 1); - floatstr(ctx, val1, sizeof (val1), clist->constant.value.f[1], 1); - floatstr(ctx, val2, sizeof (val2), clist->constant.value.f[2], 1); - floatstr(ctx, val3, sizeof (val3), clist->constant.value.f[3], 1); - - output_line(ctx, "float4(%s, %s, %s, %s)%s", val0, val1, val2, val3, - (i < (size-1)) ? "," : ""); - - clist = clist->next; - } // for - - ctx->indent--; - output_line(ctx, "};"); - pop_output(ctx); -} // emit_HLSL_const_array - -void emit_HLSL_uniform(Context *ctx, RegisterType regtype, int regnum, - const VariableList *var) -{ - // Now that we're pushing all the uniforms as one big array, pack these - // down, so if we only use register c439, it'll actually map to - // HLSL_uniforms_vec4[0]. As we push one big array, this will prevent - // uploading unused data. - - char varname[64]; - char name[64]; - int index = 0; - - get_HLSL_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - - if (var == NULL) - { - get_HLSL_uniform_array_varname(ctx, regtype, name, sizeof (name)); - - if (regtype == REG_TYPE_CONST) - index = ctx->uniform_float4_count; - else if (regtype == REG_TYPE_CONSTINT) - index = ctx->uniform_int4_count; - else if (regtype == REG_TYPE_CONSTBOOL) - index = ctx->uniform_bool_count; - else // get_HLSL_uniform_array_varname() would have called fail(). - assert(!(ctx->isfail)); - - output_line(ctx, "#define %s %s[%d]", varname, name, index); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", varname); // !!! FIXME: gross. - pop_output(ctx); - } // if - - else - { - const int arraybase = var->index; - if (var->constant) - { - get_HLSL_const_array_varname_in_buf(ctx, arraybase, var->count, - name, sizeof (name)); - index = (regnum - arraybase); - } // if - else - { - assert(var->emit_position != -1); - get_HLSL_uniform_array_varname(ctx, regtype, name, sizeof (name)); - index = (regnum - arraybase) + var->emit_position; - } // else - - output_line(ctx, "#define %s %s[%d];", varname, name, index); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", varname); // !!! FIXME: gross. - pop_output(ctx); - } // else - - pop_output(ctx); -} // emit_HLSL_uniform - -void emit_HLSL_sampler(Context *ctx,int stage,TextureType ttype,int tb) -{ - char var[64]; - const char *texsuffix = NULL; - switch (ttype) - { - case TEXTURE_TYPE_2D: texsuffix = "2D"; break; - case TEXTURE_TYPE_CUBE: texsuffix = "Cube"; break; - case TEXTURE_TYPE_VOLUME: texsuffix = "3D"; break; - default: assert(!"unexpected texture type"); return; - } // switch - - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, stage, var, sizeof(var)); - - push_output(ctx, &ctx->globals); - output_line(ctx, "Texture%s %s_texture : register(t%d);", texsuffix, var, stage); - output_line(ctx, "SamplerState %s : register(%s);", var, var); - pop_output(ctx); - - if (tb) // This sampler used a ps_1_1 TEXBEM opcode? - { - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - char name[64]; - const int index = ctx->uniform_float4_count; - ctx->uniform_float4_count += 2; - get_HLSL_uniform_array_varname(ctx, REG_TYPE_CONST, name, sizeof(name)); - output_line(ctx, "const float4 %s_texbem = %s[%d];", var, name, index); - output_line(ctx, "const float4 %s_texbeml = %s[%d];", var, name, index + 1); - pop_output(ctx); - } // if -} // emit_HLSL_sampler - - -void emit_HLSL_attribute(Context *ctx, RegisterType regtype, int regnum, - MOJOSHADER_usage usage, int index, int wmask, - int flags) -{ - // !!! FIXME: this function doesn't deal with write masks at all yet! - const char *usage_str = NULL; - char index_str[16] = { '\0' }; - char var[64]; - char a[256]; - - get_HLSL_varname_in_buf(ctx, regtype, regnum, var, sizeof (var)); - - //assert((flags & MOD_PP) == 0); // !!! FIXME: is PP allowed? - - if (index != 0) // !!! FIXME: a lot of these MUST be zero. - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - - if (shader_is_vertex(ctx)) - { - // pre-vs3 output registers. - // these don't ever happen in DCL opcodes, I think. Map to vs_3_* - // output registers. - if (!shader_version_atleast(ctx, 3, 0)) - { - if (regtype == REG_TYPE_RASTOUT) - { - regtype = REG_TYPE_OUTPUT; - index = regnum; - switch ((const RastOutType) regnum) - { - case RASTOUT_TYPE_POSITION: - usage = MOJOSHADER_USAGE_POSITION; - break; - case RASTOUT_TYPE_FOG: - usage = MOJOSHADER_USAGE_FOG; - break; - case RASTOUT_TYPE_POINT_SIZE: - usage = MOJOSHADER_USAGE_POINTSIZE; - break; - } // switch - } // if - - else if (regtype == REG_TYPE_ATTROUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_COLOR; - index = regnum; - } // else if - - else if (regtype == REG_TYPE_TEXCRDOUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_TEXCOORD; - index = regnum; - } // else if - } // if - - if (regtype == REG_TYPE_INPUT) - { - push_output(ctx, &ctx->inputs); - if (buffer_size(ctx->inputs) == 0) - { - output_line(ctx, "struct %s_Input", ctx->mainfn); - output_line(ctx, "{"); - } // if - - ctx->indent++; - switch (usage) - { - case MOJOSHADER_USAGE_BINORMAL: - output_line(ctx, "float4 m_%s : BINORMAL%d;", var, index); - break; - case MOJOSHADER_USAGE_BLENDINDICES: - output_line(ctx, "float4 m_%s : BLENDINDICES%d;", var, index); - break; - case MOJOSHADER_USAGE_BLENDWEIGHT: - output_line(ctx, "float4 m_%s : BLENDWEIGHT%d;", var, index); - break; - case MOJOSHADER_USAGE_COLOR: - output_line(ctx, "float4 m_%s : COLOR%d;", var, index); - break; - case MOJOSHADER_USAGE_NORMAL: - output_line(ctx, "float4 m_%s : NORMAL%d;", var, index); - break; - case MOJOSHADER_USAGE_POSITION: - output_line(ctx, "float4 m_%s : POSITION%d;", var, index); - break; - case MOJOSHADER_USAGE_POSITIONT: - output_line(ctx, "float4 m_%s : POSITIONT;", var); - break; - case MOJOSHADER_USAGE_POINTSIZE: - output_line(ctx, "float4 m_%s : PSIZE;", var); - break; - case MOJOSHADER_USAGE_TANGENT: - output_line(ctx, "float4 m_%s : TANGENT%d;", var, index); - break; - case MOJOSHADER_USAGE_TEXCOORD: - output_line(ctx, "float4 m_%s : TEXCOORD%d;", var, index); - break; - default: - fail(ctx, "Unknown vertex input semantic type!"); - break; - } // case - pop_output(ctx); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "#define %s input.m_%s", var, var); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // if - - else if (regtype == REG_TYPE_OUTPUT) - { - push_output(ctx, &ctx->outputs); - if (buffer_size(ctx->outputs) == 0) - { - output_line(ctx, "struct %s_Output", ctx->mainfn); - output_line(ctx, "{"); - } // if - - ctx->indent++; - - switch (usage) - { - case MOJOSHADER_USAGE_BINORMAL: - output_line(ctx, "float4 m_%s : BINORMAL%d;", var, index); - break; - case MOJOSHADER_USAGE_BLENDINDICES: - output_line(ctx, "float4 m_%s : BLENDINDICES%d;", var, index); - break; - case MOJOSHADER_USAGE_BLENDWEIGHT: - output_line(ctx, "float4 m_%s : BLENDWEIGHT%d;", var, index); - break; - case MOJOSHADER_USAGE_COLOR: - output_line(ctx, "float4 m_%s : COLOR%d;", var, index); - break; - case MOJOSHADER_USAGE_FOG: - output_line(ctx, "float m_%s : FOG;", var); - break; - case MOJOSHADER_USAGE_NORMAL: - output_line(ctx, "float4 m_%s : NORMAL%d;", var, index); - break; - case MOJOSHADER_USAGE_POSITION: - if (index == 0) - snprintf(ctx->hlsl_outpos_name, - sizeof(ctx->hlsl_outpos_name), "%s", var); - else - output_line(ctx, "float4 m_%s : POSITION%d;", var, index); - break; - case MOJOSHADER_USAGE_POSITIONT: - output_line(ctx, "float4 m_%s : POSITIONT;", var); - break; - case MOJOSHADER_USAGE_POINTSIZE: - output_line(ctx, "float m_%s : PSIZE;", var); - break; - case MOJOSHADER_USAGE_TANGENT: - output_line(ctx, "float4 m_%s : TANGENT%d;", var, index); - break; - case MOJOSHADER_USAGE_TESSFACTOR: - output_line(ctx, "float m_%s : TESSFACTOR%d;", var, index); - break; - case MOJOSHADER_USAGE_TEXCOORD: - output_line(ctx, "float4 m_%s : TEXCOORD%d;", var, index); - break; - default: - snprintf(a, sizeof(a), "Invalid vertex output semantic %d", usage); - fail(ctx, a); - break; - } // switch - - pop_output(ctx); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "#define %s output.m_%s", var, var); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // else if - - else - { - fail(ctx, "unknown vertex shader attribute register"); - } // else - } // if - - else if (shader_is_pixel(ctx)) - { - // samplers DCLs get handled in emit_HLSL_sampler(). - - if (flags & MOD_CENTROID) // !!! FIXME - { - failf(ctx, "centroid unsupported in %s profile", ctx->profile->name); - return; - } // if - - if ((regtype == REG_TYPE_COLOROUT) || (regtype == REG_TYPE_DEPTHOUT)) - { - push_output(ctx, &ctx->outputs); - if (buffer_size(ctx->outputs) == 0) - { - output_line(ctx, "struct %s_Output", ctx->mainfn); - output_line(ctx, "{"); - } // if - ctx->indent++; - - if (regtype == REG_TYPE_COLOROUT) - output_line(ctx, "float4 m_%s : SV_Target%d;", var, regnum); - else if (regtype == REG_TYPE_DEPTHOUT) - output_line(ctx, "float m_%s : SV_Depth;", var); - - pop_output(ctx); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "#define %s output.m_%s", var, var); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // if - - // !!! FIXME: can you actualy have a texture register with COLOR usage? - else if ((regtype == REG_TYPE_TEXTURE) || - (regtype == REG_TYPE_INPUT) || - (regtype == REG_TYPE_MISCTYPE)) - { - int skipreference = 0; - const char *define_start = ""; - const char *define_end = ""; - - push_output(ctx, &ctx->inputs); - if (buffer_size(ctx->inputs) == 0) - { - output_line(ctx, "struct %s_Input", ctx->mainfn); - output_line(ctx, "{"); - output_line(ctx, "\t// This must match the vertex output!"); - output_line(ctx, "\t// Rewrite at link time if needed!"); - } // if - ctx->indent++; - - if (regtype == REG_TYPE_MISCTYPE) - { - const MiscTypeType mt = (MiscTypeType) regnum; - if (mt == MISCTYPE_TYPE_FACE) - { - // In SM 3.0, VFACE was a float whose sign determined - // face direction. In SM 4.0+, it's just a bool, so - // we convert the value when we output the #define. - output_line(ctx, "bool m_%s : SV_IsFrontFace;", var); - define_start = "("; - define_end = " ? 1 : -1)"; - } // if - else if (mt == MISCTYPE_TYPE_POSITION) - output_line(ctx, "float4 m_%s : SV_Position;", var); - else - fail(ctx, "BUG: unhandled misc register"); - } // else if - - else - { - switch (usage) - { - case MOJOSHADER_USAGE_TEXCOORD: - // ps_1_1 does a different hack for this attribute. - // Refer to emit_HLSL_global()'s REG_TYPE_ADDRESS code. - if (!shader_version_atleast(ctx, 1, 4)) - skipreference = 1; - output_line(ctx, "float4 m_%s : TEXCOORD%d;", var, index); - break; - case MOJOSHADER_USAGE_COLOR: - output_line(ctx, "float4 m_%s : COLOR%d;", var, index); - break; - case MOJOSHADER_USAGE_FOG: - output_line(ctx, "float m_%s : FOG;", var); - break; - case MOJOSHADER_USAGE_NORMAL: - output_line(ctx, "float4 m_%s : NORMAL;", var); - break; - case MOJOSHADER_USAGE_POSITION: - output_line(ctx, "float4 m_%s : POSITION%d;", var, index); - break; - default: - fail(ctx, "BUG: unhandled pixel shader input"); - break; - } // switch - } // else - - pop_output(ctx); - - if (!skipreference) - { - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "#define %s %sinput.m_%s%s", var, - define_start, var, define_end); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // if - } // else if - - else - { - fail(ctx, "unknown pixel shader attribute register"); - } // else - } // else if - - else - { - fail(ctx, "Unknown shader type"); // state machine should catch this. - } // else -} // emit_HLSL_attribute - -void emit_HLSL_NOP(Context *ctx) -{ - // no-op is a no-op. :) -} // emit_HLSL_NOP - -void emit_HLSL_MOV(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "%s", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_MOV - -void emit_HLSL_ADD(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "%s + %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_ADD - -void emit_HLSL_SUB(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "%s - %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_SUB - -void emit_HLSL_MAD(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_HLSL_srcarg_string_masked(ctx, 2, src2, sizeof (src2)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "(%s * %s) + %s", src0, src1, src2); - output_line(ctx, "%s", code); -} // emit_HLSL_MAD - -void emit_HLSL_MUL(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "%s * %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_MUL - -void emit_HLSL_RCP(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->need_max_float = 1; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "(%s == 0.0) ? FLT_MAX : 1.0 / %s", src0, src0); - output_line(ctx, "%s", code); -} // emit_HLSL_RCP - -void emit_HLSL_RSQ(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->need_max_float = 1; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "(%s == 0.0) ? FLT_MAX : rsqrt(abs(%s))", - src0, src0); - output_line(ctx, "%s", code); -} // emit_HLSL_RSQ - -void emit_HLSL_dotprod(Context *ctx, const char *src0, const char *src1, - const char *extra) -{ - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "dot(%s, %s)%s", - src0, src1, extra); - output_line(ctx, "%s", code); -} // emit_HLSL_dotprod - -void emit_HLSL_DP3(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_vec3(ctx, 1, src1, sizeof (src1)); - emit_HLSL_dotprod(ctx, src0, src1, ""); -} // emit_HLSL_DP3 - -void emit_HLSL_DP4(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_full(ctx, 1, src1, sizeof (src1)); - emit_HLSL_dotprod(ctx, src0, src1, ""); -} // emit_HLSL_DP4 - -void emit_HLSL_MIN(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "min(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_MIN - -void emit_HLSL_MAX(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "max(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_MAX - -void emit_HLSL_SLT(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // float(bool) results in 0.0 or 1.0, like SLT wants. - if (vecsize == 1) - make_HLSL_destarg_assign(ctx, code, sizeof (code), "float(%s < %s)", src0, src1); - else - make_HLSL_destarg_assign(ctx, code, sizeof (code), "%s < %s", src0, src1); - - output_line(ctx, "%s", code); -} // emit_HLSL_SLT - -void emit_HLSL_SGE(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // float(bool) results in 0.0 or 1.0, like SGE wants. - if (vecsize == 1) - make_HLSL_destarg_assign(ctx, code, sizeof (code), "float(%s >= %s)", src0, src1); - else - make_HLSL_destarg_assign(ctx, code, sizeof (code), "%s >= %s", src0, src1); - - output_line(ctx, "%s", code); -} // emit_HLSL_SGE - -void emit_HLSL_EXP(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "exp2(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_EXP - -void emit_HLSL_LOG(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "log2(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_LOG - -void emit_HLSL_LIT(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char code[128]; - const char *maxp = "127.9961"; // value from the dx9 reference. - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "lit(%s.x, %s.y, clamp(%s.w, -%s, %s))", - src0, src0, src0, maxp, maxp); - output_line(ctx, "%s", code); -} // emit_HLSL_LIT - -void emit_HLSL_DST(Context *ctx) -{ - // !!! FIXME: needs to take ctx->dst_arg.writemask into account - // !!! FIXME: can we use dst() intrinsic instead? -caleb - char src0_y[64]; make_HLSL_srcarg_string_y(ctx, 0, src0_y, sizeof (src0_y)); - char src1_y[64]; make_HLSL_srcarg_string_y(ctx, 1, src1_y, sizeof (src1_y)); - char src0_z[64]; make_HLSL_srcarg_string_z(ctx, 0, src0_z, sizeof (src0_z)); - char src1_w[64]; make_HLSL_srcarg_string_w(ctx, 1, src1_w, sizeof (src1_w)); - - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float4(1.0, %s * %s, %s, %s)", - src0_y, src1_y, src0_z, src1_w); - output_line(ctx, "%s", code); -} // emit_HLSL_DST - -void emit_HLSL_LRP(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_HLSL_srcarg_string_masked(ctx, 2, src2, sizeof (src2)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "lerp(%s, %s, %s)", - src2, src1, src0); - output_line(ctx, "%s", code); -} // emit_HLSL_LRP - -void emit_HLSL_FRC(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "frac(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_FRC - -void emit_HLSL_M4X4(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_HLSL_srcarg_string_full(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_HLSL_srcarg_string_full(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_HLSL_srcarg_string_full(ctx, 3, row2, sizeof (row2)); - char row3[64]; make_HLSL_srcarg_string_full(ctx, 4, row3, sizeof (row3)); - char code[256]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float4(dot(%s, %s), dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2, src0, row3); - output_line(ctx, "%s", code); -} // emit_HLSL_M4X4 - -void emit_HLSL_M4X3(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_HLSL_srcarg_string_full(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_HLSL_srcarg_string_full(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_HLSL_srcarg_string_full(ctx, 3, row2, sizeof (row2)); - char code[256]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float3(dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2); - output_line(ctx, "%s", code); -} // emit_HLSL_M4X3 - -void emit_HLSL_M3X4(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_HLSL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_HLSL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_HLSL_srcarg_string_vec3(ctx, 3, row2, sizeof (row2)); - char row3[64]; make_HLSL_srcarg_string_vec3(ctx, 4, row3, sizeof (row3)); - - char code[256]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float4(dot(%s, %s), dot(%s, %s), " - "dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, - src0, row2, src0, row3); - output_line(ctx, "%s", code); -} // emit_HLSL_M3X4 - -void emit_HLSL_M3X3(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_HLSL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_HLSL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_HLSL_srcarg_string_vec3(ctx, 3, row2, sizeof (row2)); - char code[256]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float3(dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2); - output_line(ctx, "%s", code); -} // emit_HLSL_M3X3 - -void emit_HLSL_M3X2(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_HLSL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_HLSL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - - char code[256]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float2(dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1); - output_line(ctx, "%s", code); -} // emit_HLSL_M3X2 - -void emit_HLSL_CALL(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - if (ctx->loops > 0) - output_line(ctx, "%s(aL);", src0); - else - output_line(ctx, "%s();", src0); -} // emit_HLSL_CALL - -void emit_HLSL_CALLNZ(Context *ctx) -{ - // !!! FIXME: if src1 is a constbool that's true, we can remove the - // !!! FIXME: if. If it's false, we can make this a no-op. - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - - if (ctx->loops > 0) - output_line(ctx, "if (%s) { %s(aL); }", src1, src0); - else - output_line(ctx, "if (%s) { %s(); }", src1, src0); -} // emit_HLSL_CALLNZ - -void emit_HLSL_LOOP(Context *ctx) -{ - // !!! FIXME: swizzle? - char var[64]; get_HLSL_srcarg_varname(ctx, 1, var, sizeof (var)); - assert(ctx->source_args[0].regnum == 0); // in case they add aL1 someday. - output_line(ctx, "{"); - ctx->indent++; - output_line(ctx, "const int aLend = %s.x + %s.y;", var, var); - output_line(ctx, "for (int aL = %s.y; aL < aLend; aL += %s.z) {", var, var); - ctx->indent++; -} // emit_HLSL_LOOP - -void emit_HLSL_RET(Context *ctx) -{ - // thankfully, the MSDN specs say a RET _has_ to end a function...no - // early returns. So if you hit one, you know you can safely close - // a high-level function. - push_output(ctx, &ctx->postflight); - output_line(ctx, "}"); - output_blank_line(ctx); - set_output(ctx, &ctx->subroutines); // !!! FIXME: is this for LABEL? Maybe set it there so we don't allocate unnecessarily. -} // emit_HLSL_RET - -void emit_HLSL_ENDLOOP(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); - ctx->indent--; - output_line(ctx, "}"); -} // emit_HLSL_ENDLOOP - -void emit_HLSL_LABEL(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - const int label = ctx->source_args[0].regnum; - RegisterList *reg = reglist_find(&ctx->used_registers, REG_TYPE_LABEL, label); - assert(ctx->output == ctx->subroutines); // not mainline, etc. - assert(ctx->indent == 0); // we shouldn't be in the middle of a function. - - // MSDN specs say CALL* has to come before the LABEL, so we know if we - // can ditch the entire function here as unused. - if (reg == NULL) - set_output(ctx, &ctx->ignore); // Func not used. Parse, but don't output. - - // !!! FIXME: it would be nice if we could determine if a function is - // !!! FIXME: only called once and, if so, forcibly inline it. - - const char *uses_loopreg = ((reg) && (reg->misc == 1)) ? "int aL" : ""; - output_line(ctx, "void %s(%s)", src0, uses_loopreg); - output_line(ctx, "{"); - ctx->indent++; -} // emit_HLSL_LABEL - -void emit_HLSL_DCL(Context *ctx) -{ - // no-op. We do this in our emit_attribute() and emit_uniform(). -} // emit_HLSL_DCL - -void emit_HLSL_POW(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "pow(abs(%s), %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_POW - -void emit_HLSL_CRS(Context *ctx) -{ - // !!! FIXME: needs to take ctx->dst_arg.writemask into account. - char src0[64]; make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_vec3(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "cross(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_CRS - -void emit_HLSL_SGN(Context *ctx) -{ - // (we don't need the temporary registers specified for the D3D opcode.) - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "sign(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_SGN - -void emit_HLSL_ABS(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "abs(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_ABS - -void emit_HLSL_NRM(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "normalize(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_NRM - -void emit_HLSL_SINCOS(Context *ctx) -{ - // we don't care about the temp registers that <= sm2 demands; ignore them. - // sm2 also talks about what components are left untouched vs. undefined, - // but we just leave those all untouched with HLSL write masks (which - // would fulfill the "undefined" requirement, too). - const int mask = ctx->dest_arg.writemask; - char src0[64]; make_HLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char code[128] = { '\0' }; - - if (writemask_x(mask)) - make_HLSL_destarg_assign(ctx, code, sizeof (code), "cos(%s)", src0); - else if (writemask_y(mask)) - make_HLSL_destarg_assign(ctx, code, sizeof (code), "sin(%s)", src0); - else if (writemask_xy(mask)) - { - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float2(cos(%s), sin(%s))", src0, src0); - } // else if - - output_line(ctx, "%s", code); -} // emit_HLSL_SINCOS - -void emit_HLSL_REP(Context *ctx) -{ - // !!! FIXME: - // msdn docs say legal loop values are 0 to 255. We can check DEFI values - // at parse time, but if they are pulling a value from a uniform, do - // we clamp here? - // !!! FIXME: swizzle is legal here, right? - char src0[64]; make_HLSL_srcarg_string_x(ctx, 0, src0, sizeof (src0)); - const uint rep = (uint) ctx->reps; - output_line(ctx, "for (int rep%u = 0; rep%u < %s; rep%u++) {", - rep, rep, src0, rep); - ctx->indent++; -} // emit_HLSL_REP - -void emit_HLSL_ENDREP(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); -} // emit_HLSL_ENDREP - -void emit_HLSL_IF(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "if (%s) {", src0); - ctx->indent++; -} // emit_HLSL_IF - -void emit_HLSL_IFC(Context *ctx) -{ - const char *comp = get_HLSL_comparison_string_scalar(ctx); - char src0[64]; make_HLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_scalar(ctx, 1, src1, sizeof (src1)); - output_line(ctx, "if (%s %s %s) {", src0, comp, src1); - ctx->indent++; -} // emit_HLSL_IFC - -void emit_HLSL_ELSE(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "} else {"); - ctx->indent++; -} // emit_HLSL_ELSE - -void emit_HLSL_ENDIF(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); -} // emit_HLSL_ENDIF - -void emit_HLSL_BREAK(Context *ctx) -{ - output_line(ctx, "break;"); -} // emit_HLSL_BREAK - -void emit_HLSL_BREAKC(Context *ctx) -{ - const char *comp = get_HLSL_comparison_string_scalar(ctx); - char src0[64]; make_HLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_scalar(ctx, 1, src1, sizeof (src1)); - output_line(ctx, "if (%s %s %s) { break; }", src0, comp, src1); -} // emit_HLSL_BREAKC - -void emit_HLSL_MOVA(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - - if (vecsize == 1) - { - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "int(floor(abs(%s) + 0.5) * sign(%s))", - src0, src0); - } // if - - else - { - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "int%d(floor(abs(%s) + 0.5) * sign(%s))", - vecsize, src0, src0); - } // else - - output_line(ctx, "%s", code); -} // emit_HLSL_MOVA - -void emit_HLSL_DEFB(Context *ctx) -{ - char varname[64]; get_HLSL_destarg_varname(ctx, varname, sizeof (varname)); - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const bool %s = %s;", - varname, ctx->dwords[0] ? "true" : "false"); - ctx->indent--; - pop_output(ctx); -} // emit_HLSL_DEFB - -void emit_HLSL_DEFI(Context *ctx) -{ - char varname[64]; get_HLSL_destarg_varname(ctx, varname, sizeof (varname)); - const int32 *x = (const int32 *) ctx->dwords; - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const int4 %s = int4(%d, %d, %d, %d);", - varname, (int) x[0], (int) x[1], (int) x[2], (int) x[3]); - ctx->indent--; - pop_output(ctx); -} // emit_HLSL_DEFI - -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXCRD) - -void emit_HLSL_TEXKILL(Context *ctx) -{ - char dst[64]; get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - output_line(ctx, "if (any(%s.xyz < 0.0)) discard;", dst); -} // emit_HLSL_TEXKILL - -void emit_HLSL_TEXLD(Context *ctx) -{ - if (!shader_version_atleast(ctx, 1, 4)) - { - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char sampler[64]; - char code[128] = {0}; - - RegisterList *sreg; - sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - if (ttype == TEXTURE_TYPE_2D) - { - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.Sample(%s, %s.xy)", - sampler, sampler, dst); - } // if - else if (ttype == TEXTURE_TYPE_CUBE || ttype == TEXTURE_TYPE_VOLUME) - { - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.Sample(%s, %s.xyz)", - sampler, sampler, dst); - } // else if - else - { - fail(ctx, "unexpected texture type"); - } // else - output_line(ctx, "%s", code); - } // if - - else if (!shader_version_atleast(ctx, 2, 0)) - { - // ps_1_4 is different, too! - fail(ctx, "TEXLD == Shader Model 1.4 unimplemented."); // !!! FIXME - return; - } // else if - - else - { - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - samp_arg->regnum); - const char *funcname = NULL; - char src0[64] = { '\0' }; - char src1[64]; get_HLSL_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - - if (sreg == NULL) - { - fail(ctx, "TEXLD using undeclared sampler"); - return; - } // if - - // !!! FIXME: does the d3d bias value map directly to HLSL? - const char *biassep = ""; - char bias[64] = { '\0' }; - if (ctx->instruction_controls == CONTROL_TEXLDB) - { - biassep = ", "; - make_HLSL_srcarg_string_w(ctx, 0, bias, sizeof (bias)); - funcname = "SampleBias"; - } // if - else - { - funcname = "Sample"; - } // else - - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - make_HLSL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - break; - case TEXTURE_TYPE_CUBE: - if (ctx->instruction_controls == CONTROL_TEXLDP) - fail(ctx, "TEXLDP on a cubemap"); // !!! FIXME: is this legal? - make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - break; - case TEXTURE_TYPE_VOLUME: - make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - break; - default: - fail(ctx, "unknown texture type"); - return; - } // switch - - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - char swiz_str[6] = { '\0' }; - make_HLSL_swizzle_string(swiz_str, sizeof (swiz_str), - samp_arg->swizzle, ctx->dest_arg.writemask); - - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.%s(%s, %s%s%s)%s", src1, funcname, - src1, src0, biassep, bias, swiz_str); - - output_line(ctx, "%s", code); - } // else -} // emit_HLSL_TEXLD - -void emit_HLSL_TEXBEM(Context *ctx) -{ - // !!! FIXME: this code counts on the register not having swizzles, etc. - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - char src[64]; get_HLSL_srcarg_varname(ctx, 0, src, sizeof (src)); - char sampler[64]; - char code[512]; - - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.Sample(%s, float2(%s.x + (%s_texbem.x * %s.x) + (%s_texbem.z * %s.y)," - " %s.y + (%s_texbem.y * %s.x) + (%s_texbem.w * %s.y)))", - sampler, sampler, - dst, sampler, src, sampler, src, - dst, sampler, src, sampler, src); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXBEM - -void emit_HLSL_TEXBEML(Context *ctx) -{ - // !!! FIXME: this code counts on the register not having swizzles, etc. - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - char src[64]; get_HLSL_srcarg_varname(ctx, 0, src, sizeof (src)); - char sampler[64]; - char code[512]; - - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "(%s_texture.Sample(%s, float2(%s.x + (%s_texbem.x * %s.x) + (%s_texbem.z * %s.y)," - " %s.y + (%s_texbem.y * %s.x) + (%s_texbem.w * %s.y)))) *" - " ((%s.z * %s_texbeml.x) + %s_texbem.y)", - sampler, sampler, - dst, sampler, src, sampler, src, - dst, sampler, src, sampler, src, - src, sampler, sampler); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXBEML - -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2AR) // !!! FIXME -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2GB) // !!! FIXME - -void emit_HLSL_TEXM3X2PAD(Context *ctx) -{ - // no-op ... work happens in emit_HLSL_TEXM3X2TEX(). -} // emit_HLSL_TEXM3X2PAD - -void emit_HLSL_TEXM3X2TEX(Context *ctx) -{ - if (ctx->texm3x2pad_src0 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char sampler[64]; - char code[512]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_src0, - src0, sizeof (src0)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_dst0, - src1, sizeof (src1)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src2, sizeof (src2)); - get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.Sample(%s, float2(dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz)))", - sampler, sampler, src0, src1, src2, dst); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXM3X2TEX - -void emit_HLSL_TEXM3X3PAD(Context *ctx) -{ - // no-op ... work happens in emit_HLSL_TEXM3X3*(). -} // emit_HLSL_TEXM3X3PAD - -void emit_HLSL_TEXM3X3TEX(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char sampler[64]; - char code[512]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.Sample(%s," - " float3(dot(%s.xyz, %s.xyz)," - " dot(%s.xyz, %s.xyz)," - " dot(%s.xyz, %s.xyz)))", - sampler, sampler, src0, src1, src2, src3, dst, src4); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXM3X3TEX - -void emit_HLSL_TEXM3X3SPEC_helper(Context *ctx) -{ - if (ctx->glsl_generated_texm3x3spec_helper) - return; - - ctx->glsl_generated_texm3x3spec_helper = 1; - - push_output(ctx, &ctx->helpers); - output_line(ctx, "float3 TEXM3X3SPEC_reflection(const float3 normal, const float3 eyeray)"); - output_line(ctx, "{"); ctx->indent++; - output_line(ctx, "return (2.0 * ((normal * eyeray) / (normal * normal)) * normal) - eyeray;"); ctx->indent--; - output_line(ctx, "}"); - output_blank_line(ctx); - pop_output(ctx); -} // emit_HLSL_TEXM3X3SPEC_helper - -void emit_HLSL_TEXM3X3SPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char src5[64]; - char sampler[64]; - char code[512]; - - emit_HLSL_TEXM3X3SPEC_helper(ctx); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[1].regnum, - src5, sizeof (src5)); - get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.Sample(%s, " - "TEXM3X3SPEC_reflection(" - "float3(" - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz)" - ")," - "%s.xyz," - ")" - ")", - sampler, sampler, src0, src1, src2, src3, dst, src4, src5); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXM3X3SPEC - -void emit_HLSL_TEXM3X3VSPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char sampler[64]; - char code[512]; - - emit_HLSL_TEXM3X3SPEC_helper(ctx); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_HLSL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.Sample(%s, " - "TEXM3X3SPEC_reflection(" - "float3(" - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz)" - "), " - "float3(%s.w, %s.w, %s.w)" - ")" - ")", - sampler, sampler, src0, src1, src2, src3, dst, src4, src0, src2, dst); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXM3X3VSPEC - -void emit_HLSL_EXPP(Context *ctx) -{ - // !!! FIXME: msdn's asm docs don't list this opcode, I'll have to check the driver documentation. - emit_HLSL_EXP(ctx); // I guess this is just partial precision EXP? -} // emit_HLSL_EXPP - -void emit_HLSL_LOGP(Context *ctx) -{ - // LOGP is just low-precision LOG, but we'll take the higher precision. - emit_HLSL_LOG(ctx); -} // emit_HLSL_LOGP - -// common code between CMP and CND. -void emit_HLSL_comparison_operations(Context *ctx, const char *cmp) -{ - int i, j; - DestArgInfo *dst = &ctx->dest_arg; - const SourceArgInfo *srcarg0 = &ctx->source_args[0]; - const int origmask = dst->writemask; - int used_swiz[4] = { 0, 0, 0, 0 }; - const int writemask[4] = { dst->writemask0, dst->writemask1, - dst->writemask2, dst->writemask3 }; - const int src0swiz[4] = { srcarg0->swizzle_x, srcarg0->swizzle_y, - srcarg0->swizzle_z, srcarg0->swizzle_w }; - - for (i = 0; i < 4; i++) - { - int mask = (1 << i); - - if (!writemask[i]) continue; - if (used_swiz[i]) continue; - - // This is a swizzle we haven't checked yet. - used_swiz[i] = 1; - - // see if there are any other elements swizzled to match (.yyyy) - for (j = i + 1; j < 4; j++) - { - if (!writemask[j]) continue; - if (src0swiz[i] != src0swiz[j]) continue; - mask |= (1 << j); - used_swiz[j] = 1; - } // for - - // okay, (mask) should be the writemask of swizzles we like. - - char src0[64]; - char src1[64]; - char src2[64]; - make_HLSL_srcarg_string(ctx, 0, (1 << i), src0, sizeof (src0)); - make_HLSL_srcarg_string(ctx, 1, mask, src1, sizeof (src1)); - make_HLSL_srcarg_string(ctx, 2, mask, src2, sizeof (src2)); - - set_dstarg_writemask(dst, mask); - - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "((%s %s) ? %s : %s)", - src0, cmp, src1, src2); - output_line(ctx, "%s", code); - } // for - - set_dstarg_writemask(dst, origmask); -} // emit_HLSL_comparison_operations - -void emit_HLSL_CND(Context *ctx) -{ - emit_HLSL_comparison_operations(ctx, "> 0.5"); -} // emit_HLSL_CND - -void emit_HLSL_DEF(Context *ctx) -{ - const float *val = (const float *) ctx->dwords; // !!! FIXME: could be int? - char varname[64]; get_HLSL_destarg_varname(ctx, varname, sizeof (varname)); - char val0[32]; floatstr(ctx, val0, sizeof (val0), val[0], 1); - char val1[32]; floatstr(ctx, val1, sizeof (val1), val[1], 1); - char val2[32]; floatstr(ctx, val2, sizeof (val2), val[2], 1); - char val3[32]; floatstr(ctx, val3, sizeof (val3), val[3], 1); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const float4 %s = float4(%s, %s, %s, %s);", - varname, val0, val1, val2, val3); - ctx->indent--; - pop_output(ctx); -} // emit_HLSL_DEF - -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2RGB) // !!! FIXME -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3TEX) // !!! FIXME -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXM3X2DEPTH) // !!! FIXME -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3) // !!! FIXME - -void emit_HLSL_TEXM3X3(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char code[512]; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_HLSL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_HLSL_destarg_varname(ctx, dst, sizeof (dst)); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "float4(dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz), 1.0)", - src0, src1, src2, src3, dst, src4); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXM3X3 - -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(TEXDEPTH) // !!! FIXME - -void emit_HLSL_CMP(Context *ctx) -{ - emit_HLSL_comparison_operations(ctx, ">= 0.0"); -} // emit_HLSL_CMP - -EMIT_HLSL_OPCODE_UNIMPLEMENTED_FUNC(BEM) // !!! FIXME - -void emit_HLSL_DP2ADD(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_vec2(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_HLSL_srcarg_string_scalar(ctx, 2, src2, sizeof (src2)); - char extra[64]; snprintf(extra, sizeof (extra), " + %s", src2); - emit_HLSL_dotprod(ctx, src0, src1, extra); -} // emit_HLSL_DP2ADD - -void emit_HLSL_DSX(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "ddx(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_DSX - -void emit_HLSL_DSY(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), "ddy(%s)", src0); - output_line(ctx, "%s", code); -} // emit_HLSL_DSY - -void emit_HLSL_TEXLDD(Context *ctx) -{ - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - samp_arg->regnum); - char src0[64] = { '\0' }; - char src1[64]; get_HLSL_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - char src2[64] = { '\0' }; - char src3[64] = { '\0' }; - - if (sreg == NULL) - { - fail(ctx, "TEXLDD using undeclared sampler"); - return; - } // if - - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - make_HLSL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - make_HLSL_srcarg_string_vec2(ctx, 2, src2, sizeof (src2)); - make_HLSL_srcarg_string_vec2(ctx, 3, src3, sizeof (src3)); - break; - case TEXTURE_TYPE_CUBE: - case TEXTURE_TYPE_VOLUME: - make_HLSL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - make_HLSL_srcarg_string_vec3(ctx, 2, src2, sizeof (src2)); - make_HLSL_srcarg_string_vec3(ctx, 3, src3, sizeof (src3)); - break; - default: - fail(ctx, "unknown texture type"); - return; - } // switch - - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - char swiz_str[6] = { '\0' }; - make_HLSL_swizzle_string(swiz_str, sizeof (swiz_str), - samp_arg->swizzle, ctx->dest_arg.writemask); - - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.SampleGrad(%s, %s, %s, %s)%s", - src1, src1, src0, src2, src3, swiz_str); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXLDD - -void emit_HLSL_SETP(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_HLSL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_HLSL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // destination is always predicate register (which is type bvec4). - const char *comp = (vecsize == 1) ? - get_HLSL_comparison_string_scalar(ctx) : - get_HLSL_comparison_string_vector(ctx); - - make_HLSL_destarg_assign(ctx, code, sizeof (code), - "(%s %s %s)", src0, comp, src1); - output_line(ctx, "%s", code); -} // emit_HLSL_SETP - -void emit_HLSL_TEXLDL(Context *ctx) -{ - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - samp_arg->regnum); - const char *pattern = NULL; - char src0[64]; - char src1[64]; - make_HLSL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - get_HLSL_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - - if (sreg == NULL) - { - fail(ctx, "TEXLDL using undeclared sampler"); - return; - } // if - - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - pattern = "%s_texture.SampleLevel(%s, %s.xy, %s.w)%s"; - break; - case TEXTURE_TYPE_CUBE: - case TEXTURE_TYPE_VOLUME: - pattern = "%s_texture.SampleLevel(%s, %s.xyz, %s.w)%s"; - break; - default: - fail(ctx, "unknown texture type"); - return; - } // switch - - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - char swiz_str[6] = { '\0' }; - make_HLSL_swizzle_string(swiz_str, sizeof (swiz_str), - samp_arg->swizzle, ctx->dest_arg.writemask); - - char code[128]; - make_HLSL_destarg_assign(ctx, code, sizeof(code), - pattern, src1, src1, src0, src0, swiz_str); - - output_line(ctx, "%s", code); -} // emit_HLSL_TEXLDL - -void emit_HLSL_BREAKP(Context *ctx) -{ - char src0[64]; make_HLSL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "if (%s) { break; }", src0); -} // emit_HLSL_BREAKP - -void emit_HLSL_RESERVED(Context *ctx) -{ - // do nothing; fails in the state machine. -} // emit_HLSL_RESERVED - -#endif // SUPPORT_PROFILE_HLSL - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_metal.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_metal.c deleted file mode 100644 index 4df48980..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_metal.c +++ /dev/null @@ -1,2319 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -// !!! FIXME: A lot of this is cut-and-paste from the GLSL version. -#if SUPPORT_PROFILE_METAL - -#define EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(op) \ - void emit_METAL_##op(Context *ctx) { \ - fail(ctx, #op " unimplemented in Metal profile"); \ - } - -static inline const char *get_METAL_register_string(Context *ctx, - const RegisterType regtype, const int regnum, - char *regnum_str, const size_t regnum_size) -{ - // turns out these are identical at the moment. - return get_D3D_register_string(ctx,regtype,regnum,regnum_str,regnum_size); -} // get_METAL_register_string - -const char *get_METAL_uniform_type(Context *ctx, const RegisterType rtype) -{ - switch (rtype) - { - case REG_TYPE_CONST: return "float4"; - case REG_TYPE_CONSTINT: return "int4"; - case REG_TYPE_CONSTBOOL: return "bool"; - default: fail(ctx, "BUG: used a uniform we don't know how to define."); - } // switch - - return NULL; -} // get_METAL_uniform_type - -const char *get_METAL_varname_in_buf(Context *ctx, RegisterType rt, - int regnum, char *buf, - const size_t len) -{ - char regnum_str[16]; - const char *regtype_str = get_METAL_register_string(ctx, rt, regnum, - regnum_str, sizeof (regnum_str)); - - // We don't separate vars with vs_ or ps_ here, because, for the most part, - // there are only local vars in Metal shaders. - snprintf(buf, len, "%s%s", regtype_str, regnum_str); - return buf; -} // get_METAL_varname_in_buf - - -const char *get_METAL_varname(Context *ctx, RegisterType rt, int regnum) -{ - char buf[64]; - get_METAL_varname_in_buf(ctx, rt, regnum, buf, sizeof (buf)); - return StrDup(ctx, buf); -} // get_METAL_varname - - -static inline const char *get_METAL_const_array_varname_in_buf(Context *ctx, - const int base, const int size, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "const_array_%d_%d", base, size); - return buf; -} // get_METAL_const_array_varname_in_buf - -const char *get_METAL_const_array_varname(Context *ctx, int base, int size) -{ - char buf[64]; - get_METAL_const_array_varname_in_buf(ctx, base, size, buf, sizeof (buf)); - return StrDup(ctx, buf); -} // get_METAL_const_array_varname - - -static inline const char *get_METAL_input_array_varname(Context *ctx, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "%s", "vertex_input_array"); - return buf; -} // get_METAL_input_array_varname - - -const char *get_METAL_uniform_array_varname(Context *ctx, - const RegisterType regtype, - char *buf, const size_t len) -{ - const char *shadertype = ctx->shader_type_str; - const char *type = get_METAL_uniform_type(ctx, regtype); - snprintf(buf, len, "uniforms.uniforms_%s", type); - return buf; -} // get_METAL_uniform_array_varname - -const char *get_METAL_destarg_varname(Context *ctx, char *buf, size_t len) -{ - const DestArgInfo *arg = &ctx->dest_arg; - return get_METAL_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, len); -} // get_METAL_destarg_varname - -const char *get_METAL_srcarg_varname(Context *ctx, const size_t idx, - char *buf, size_t len) -{ - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - *buf = '\0'; - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - return get_METAL_varname_in_buf(ctx, arg->regtype, arg->regnum, buf, len); -} // get_METAL_srcarg_varname - - -const char *make_METAL_destarg_assign(Context *, char *, const size_t, - const char *, ...) ISPRINTF(4,5); - -const char *make_METAL_destarg_assign(Context *ctx, char *buf, - const size_t buflen, - const char *fmt, ...) -{ - int need_parens = 0; - const DestArgInfo *arg = &ctx->dest_arg; - - if (arg->writemask == 0) - { - *buf = '\0'; - return buf; // no writemask? It's a no-op. - } // if - - char clampbuf[32] = { '\0' }; - const char *clampleft = ""; - const char *clampright = ""; - if (arg->result_mod & MOD_SATURATE) - { - ctx->metal_need_header_common = 1; - const int vecsize = vecsize_from_writemask(arg->writemask); - clampleft = "clamp("; - if (vecsize == 1) - clampright = ", 0.0, 1.0)"; - else - { - snprintf(clampbuf, sizeof (clampbuf), - ", float%d(0.0), float%d(1.0))", vecsize, vecsize); - clampright = clampbuf; - } // else - } // if - - // MSDN says MOD_PP is a hint and many implementations ignore it. So do we. - - // CENTROID only allowed in DCL opcodes, which shouldn't come through here. - assert((arg->result_mod & MOD_CENTROID) == 0); - - if (ctx->predicated) - { - fail(ctx, "predicated destinations unsupported"); // !!! FIXME - *buf = '\0'; - return buf; - } // if - - char operation[256]; - va_list ap; - va_start(ap, fmt); - const int len = vsnprintf(operation, sizeof (operation), fmt, ap); - va_end(ap); - if (len >= sizeof (operation)) - { - fail(ctx, "operation string too large"); // I'm lazy. :P - *buf = '\0'; - return buf; - } // if - - const char *result_shift_str = ""; - switch (arg->result_shift) - { - case 0x1: result_shift_str = " * 2.0"; break; - case 0x2: result_shift_str = " * 4.0"; break; - case 0x3: result_shift_str = " * 8.0"; break; - case 0xD: result_shift_str = " / 8.0"; break; - case 0xE: result_shift_str = " / 4.0"; break; - case 0xF: result_shift_str = " / 2.0"; break; - } // switch - need_parens |= (result_shift_str[0] != '\0'); - - char regnum_str[16]; - const char *regtype_str = get_METAL_register_string(ctx, arg->regtype, - arg->regnum, regnum_str, - sizeof (regnum_str)); - char writemask_str[6]; - size_t i = 0; - const int scalar = isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum); - if (!scalar && !writemask_xyzw(arg->writemask)) - { - writemask_str[i++] = '.'; - if (arg->writemask0) writemask_str[i++] = 'x'; - if (arg->writemask1) writemask_str[i++] = 'y'; - if (arg->writemask2) writemask_str[i++] = 'z'; - if (arg->writemask3) writemask_str[i++] = 'w'; - } // if - writemask_str[i] = '\0'; - assert(i < sizeof (writemask_str)); - - const char *leftparen = (need_parens) ? "(" : ""; - const char *rightparen = (need_parens) ? ")" : ""; - - snprintf(buf, buflen, "%s%s%s = %s%s%s%s%s%s;", - regtype_str, regnum_str, writemask_str, - clampleft, leftparen, operation, rightparen, result_shift_str, - clampright); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_METAL_destarg_assign - - -char *make_METAL_swizzle_string(char *swiz_str, const size_t strsize, - const int swizzle, const int writemask) -{ - size_t i = 0; - if ( (!no_swizzle(swizzle)) || (!writemask_xyzw(writemask)) ) - { - const int writemask0 = (writemask >> 0) & 0x1; - const int writemask1 = (writemask >> 1) & 0x1; - const int writemask2 = (writemask >> 2) & 0x1; - const int writemask3 = (writemask >> 3) & 0x1; - - const int swizzle_x = (swizzle >> 0) & 0x3; - const int swizzle_y = (swizzle >> 2) & 0x3; - const int swizzle_z = (swizzle >> 4) & 0x3; - const int swizzle_w = (swizzle >> 6) & 0x3; - - swiz_str[i++] = '.'; - if (writemask0) swiz_str[i++] = swizzle_channels[swizzle_x]; - if (writemask1) swiz_str[i++] = swizzle_channels[swizzle_y]; - if (writemask2) swiz_str[i++] = swizzle_channels[swizzle_z]; - if (writemask3) swiz_str[i++] = swizzle_channels[swizzle_w]; - } // if - assert(i < strsize); - swiz_str[i] = '\0'; - return swiz_str; -} // make_METAL_swizzle_string - - -const char *make_METAL_srcarg_string(Context *ctx, const size_t idx, - const int writemask, char *buf, - const size_t buflen) -{ - *buf = '\0'; - - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - return buf; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - - const char *premod_str = ""; - const char *postmod_str = ""; - switch (arg->src_mod) - { - case SRCMOD_NEGATE: - premod_str = "-"; - break; - - case SRCMOD_BIASNEGATE: - premod_str = "-("; - postmod_str = " - 0.5)"; - break; - - case SRCMOD_BIAS: - premod_str = "("; - postmod_str = " - 0.5)"; - break; - - case SRCMOD_SIGNNEGATE: - premod_str = "-(("; - postmod_str = " - 0.5) * 2.0)"; - break; - - case SRCMOD_SIGN: - premod_str = "(("; - postmod_str = " - 0.5) * 2.0)"; - break; - - case SRCMOD_COMPLEMENT: - premod_str = "(1.0 - "; - postmod_str = ")"; - break; - - case SRCMOD_X2NEGATE: - premod_str = "-("; - postmod_str = " * 2.0)"; - break; - - case SRCMOD_X2: - premod_str = "("; - postmod_str = " * 2.0)"; - break; - - case SRCMOD_DZ: - fail(ctx, "SRCMOD_DZ unsupported"); return buf; // !!! FIXME - postmod_str = "_dz"; - break; - - case SRCMOD_DW: - fail(ctx, "SRCMOD_DW unsupported"); return buf; // !!! FIXME - postmod_str = "_dw"; - break; - - case SRCMOD_ABSNEGATE: - ctx->metal_need_header_math = 1; - premod_str = "-abs("; - postmod_str = ")"; - break; - - case SRCMOD_ABS: - ctx->metal_need_header_math = 1; - premod_str = "abs("; - postmod_str = ")"; - break; - - case SRCMOD_NOT: - premod_str = "!"; - break; - - case SRCMOD_NONE: - case SRCMOD_TOTAL: - break; // stop compiler whining. - } // switch - - const char *regtype_str = NULL; - - if (!arg->relative) - { - regtype_str = get_METAL_varname_in_buf(ctx, arg->regtype, arg->regnum, - (char *) alloca(64), 64); - } // if - - const char *rel_lbracket = ""; - char rel_offset[32] = { '\0' }; - const char *rel_rbracket = ""; - char rel_swizzle[4] = { '\0' }; - const char *rel_regtype_str = ""; - if (arg->relative) - { - if (arg->regtype == REG_TYPE_INPUT) - regtype_str=get_METAL_input_array_varname(ctx,(char*)alloca(64),64); - else - { - assert(arg->regtype == REG_TYPE_CONST); - const int arrayidx = arg->relative_array->index; - const int offset = arg->regnum - arrayidx; - assert(offset >= 0); - if (arg->relative_array->constant) - { - const int arraysize = arg->relative_array->count; - regtype_str = get_METAL_const_array_varname_in_buf(ctx, - arrayidx, arraysize, (char *) alloca(64), 64); - if (offset != 0) - snprintf(rel_offset, sizeof (rel_offset), "%d + ", offset); - } // if - else - { - regtype_str = get_METAL_uniform_array_varname(ctx, arg->regtype, - (char *) alloca(64), 64); - if (offset == 0) - { - snprintf(rel_offset, sizeof (rel_offset), - "ARRAYBASE_%d + ", arrayidx); - } // if - else - { - snprintf(rel_offset, sizeof (rel_offset), - "(ARRAYBASE_%d + %d) + ", arrayidx, offset); - } // else - } // else - } // else - - rel_lbracket = "["; - - rel_regtype_str = get_METAL_varname_in_buf(ctx, arg->relative_regtype, - arg->relative_regnum, - (char *) alloca(64), 64); - rel_swizzle[0] = '.'; - rel_swizzle[1] = swizzle_channels[arg->relative_component]; - rel_swizzle[2] = '\0'; - rel_rbracket = "]"; - } // if - - char swiz_str[6] = { '\0' }; - if (!isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum)) - { - make_METAL_swizzle_string(swiz_str, sizeof (swiz_str), - arg->swizzle, writemask); - } // if - - if (regtype_str == NULL) - { - fail(ctx, "Unknown source register type."); - return buf; - } // if - - snprintf(buf, buflen, "%s%s%s%s%s%s%s%s%s", - premod_str, regtype_str, rel_lbracket, rel_offset, - rel_regtype_str, rel_swizzle, rel_rbracket, swiz_str, - postmod_str); - // !!! FIXME: make sure the scratch buffer was large enough. - return buf; -} // make_METAL_srcarg_string - -// generate some convenience functions. -#define MAKE_METAL_SRCARG_STRING_(mask, bitmask) \ - static inline const char *make_METAL_srcarg_string_##mask(Context *ctx, \ - const size_t idx, char *buf, \ - const size_t buflen) { \ - return make_METAL_srcarg_string(ctx, idx, bitmask, buf, buflen); \ - } -MAKE_METAL_SRCARG_STRING_(x, (1 << 0)) -MAKE_METAL_SRCARG_STRING_(y, (1 << 1)) -MAKE_METAL_SRCARG_STRING_(z, (1 << 2)) -MAKE_METAL_SRCARG_STRING_(w, (1 << 3)) -MAKE_METAL_SRCARG_STRING_(scalar, (1 << 0)) -MAKE_METAL_SRCARG_STRING_(full, 0xF) -MAKE_METAL_SRCARG_STRING_(masked, ctx->dest_arg.writemask) -MAKE_METAL_SRCARG_STRING_(vec3, 0x7) -MAKE_METAL_SRCARG_STRING_(vec2, 0x3) -#undef MAKE_METAL_SRCARG_STRING_ - -// special cases for comparison opcodes... - -const char *get_METAL_comparison_string_scalar(Context *ctx) -{ - const char *comps[] = { "", ">", "==", ">=", "<", "!=", "<=" }; - if (ctx->instruction_controls >= STATICARRAYLEN(comps)) - { - fail(ctx, "unknown comparison control"); - return ""; - } // if - - return comps[ctx->instruction_controls]; -} // get_METAL_comparison_string_scalar - -const char *get_METAL_comparison_string_vector(Context *ctx) -{ - return get_METAL_comparison_string_scalar(ctx); // standard C operators work for vectors in Metal. -} // get_METAL_comparison_string_vector - - -void emit_METAL_start(Context *ctx, const char *profilestr) -{ - if (!shader_is_vertex(ctx) && !shader_is_pixel(ctx)) - { - failf(ctx, "Shader type %u unsupported in this profile.", - (uint) ctx->shader_type); - return; - } // if - - if (!ctx->mainfn) - { - if (shader_is_vertex(ctx)) - ctx->mainfn = StrDup(ctx, "VertexShader"); - else if (shader_is_pixel(ctx)) - ctx->mainfn = StrDup(ctx, "FragmentShader"); - } // if - - set_output(ctx, &ctx->mainline); - ctx->indent++; -} // emit_METAL_start - -void emit_METAL_RET(Context *ctx); -void emit_METAL_end(Context *ctx) -{ - // !!! FIXME: maybe handle this at a higher level? - // ps_1_* writes color to r0 instead oC0. We move it to the right place. - // We don't have to worry about a RET opcode messing this up, since - // RET isn't available before ps_2_0. - if (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 2, 0)) - { - set_used_register(ctx, REG_TYPE_COLOROUT, 0, 1); - output_line(ctx, "oC0 = r0;"); - } // if - - // !!! FIXME: maybe handle this at a higher level? - // force a RET opcode if we're at the end of the stream without one. - if (ctx->previous_opcode != OPCODE_RET) - emit_METAL_RET(ctx); -} // emit_METAL_end - -void emit_METAL_phase(Context *ctx) -{ - // no-op in Metal. -} // emit_METAL_phase - -void emit_METAL_finalize(Context *ctx) -{ - // If we had a relative addressing of REG_TYPE_INPUT, we need to build - // an array for it at the start of main(). GLSL doesn't let you specify - // arrays of attributes. - //float4 blah_array[BIGGEST_ARRAY]; - if (ctx->have_relative_input_registers) // !!! FIXME - fail(ctx, "Relative addressing of input registers not supported."); - - // Insert header includes we need... - push_output(ctx, &ctx->preflight); - #define INC_METAL_HEADER(name) \ - if (ctx->metal_need_header_##name) { \ - output_line(ctx, "#include "); \ - } - INC_METAL_HEADER(common); - INC_METAL_HEADER(math); - INC_METAL_HEADER(relational); - INC_METAL_HEADER(geometric); - INC_METAL_HEADER(graphics); - INC_METAL_HEADER(texture); - #undef INC_METAL_HEADER - output_blank_line(ctx); - output_line(ctx, "using namespace metal;"); - output_blank_line(ctx); - pop_output(ctx); - - // Fill in the shader's mainline function signature. - push_output(ctx, &ctx->mainline_intro); - output_line(ctx, "%s %s%s %s (", - shader_is_vertex(ctx) ? "vertex" : "fragment", - ctx->outputs ? ctx->mainfn : "void", - ctx->outputs ? "_Output" : "", ctx->mainfn); - pop_output(ctx); - - push_output(ctx, &ctx->mainline_arguments); - ctx->indent++; - - const int uniform_count = ctx->uniform_float4_count + ctx->uniform_int4_count + ctx->uniform_bool_count; - int commas = 0; - if (uniform_count) commas++; - if (ctx->inputs) commas++; - if (commas) commas--; - - if (uniform_count > 0) - { - push_output(ctx, &ctx->globals); - output_line(ctx, "struct %s_Uniforms", ctx->mainfn); - output_line(ctx, "{"); - ctx->indent++; - if (ctx->uniform_float4_count > 0) - output_line(ctx, "float4 uniforms_float4[%d];", ctx->uniform_float4_count); - if (ctx->uniform_int4_count > 0) - output_line(ctx, "int4 uniforms_int4[%d];", ctx->uniform_int4_count); - if (ctx->uniform_bool_count > 0) - output_line(ctx, "bool uniforms_bool[%d];", ctx->uniform_bool_count); - ctx->indent--; - output_line(ctx, "};"); - pop_output(ctx); - - output_line(ctx, "constant %s_Uniforms &uniforms [[buffer(16)]]%s", ctx->mainfn, commas ? "," : ""); - commas--; - } // if - - if (ctx->inputs) - { - output_line(ctx, "%s_Input input [[stage_in]]%s", ctx->mainfn, commas ? "," : ""); - commas--; - } // if - - ctx->indent--; - output_line(ctx, ") {"); - if (ctx->outputs) - { - ctx->indent++; - output_line(ctx, "%s_Output output;", ctx->mainfn); - - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "return output;"); - pop_output(ctx); - } // if - pop_output(ctx); - - if (ctx->inputs) - { - push_output(ctx, &ctx->inputs); - output_line(ctx, "};"); - output_blank_line(ctx); - pop_output(ctx); - } // if - - if (ctx->outputs) - { - push_output(ctx, &ctx->outputs); - output_line(ctx, "};"); - output_blank_line(ctx); - pop_output(ctx); - } // if - - // throw some blank lines around to make source more readable. - if (ctx->globals) // don't add a blank line if the section is empty. - { - push_output(ctx, &ctx->globals); - output_blank_line(ctx); - pop_output(ctx); - } // if -} // emit_METAL_finalize - -void emit_METAL_global(Context *ctx, RegisterType regtype, int regnum) -{ - char varname[64]; - get_METAL_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - // These aren't actually global in metal, set them up at top of mainline. - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - - switch (regtype) - { - case REG_TYPE_ADDRESS: - if (shader_is_vertex(ctx)) - output_line(ctx, "int4 %s;", varname); - else if (shader_is_pixel(ctx)) // actually REG_TYPE_TEXTURE. - { - // We have to map texture registers to temps for ps_1_1, since - // they work like temps, initialize with tex coords, and the - // ps_1_1 TEX opcode expects to overwrite it. - if (!shader_version_atleast(ctx, 1, 4)) - output_line(ctx, "float4 %s = input.%s;",varname,varname); - } // else if - break; - case REG_TYPE_PREDICATE: - output_line(ctx, "bool4 %s;", varname); - break; - case REG_TYPE_TEMP: - output_line(ctx, "float4 %s;", varname); - break; - case REG_TYPE_LOOP: - break; // no-op. We declare these in for loops at the moment. - case REG_TYPE_LABEL: - break; // no-op. If we see it here, it means we optimized it out. - default: - fail(ctx, "BUG: we used a register we don't know how to define."); - break; - } // switch - - pop_output(ctx); -} // emit_METAL_global - -void emit_METAL_array(Context *ctx, VariableList *var) -{ - // All uniforms (except constant arrays, which are literally constant - // data embedded in Metal shaders) are now packed into a single array, - // so we can batch the uniform transfers. So this doesn't actually - // define an array here; the one, big array is emitted during - // finalization instead. - // However, we need to #define the offset into the one, big array here, - // and let dereferences use that #define. - const int base = var->index; - const int metalbase = ctx->uniform_float4_count; - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const int ARRAYBASE_%d = %d;", base, metalbase); - pop_output(ctx); - var->emit_position = metalbase; -} // emit_METAL_array - -void emit_METAL_const_array(Context *ctx, const ConstantsList *clist, - int base, int size) -{ - char varname[64]; - get_METAL_const_array_varname_in_buf(ctx,base,size,varname,sizeof(varname)); - - const char *cstr = NULL; - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const float4 %s[%d] = {", varname, size); - ctx->indent++; - - int i; - for (i = 0; i < size; i++) - { - while (clist->constant.type != MOJOSHADER_UNIFORM_FLOAT) - clist = clist->next; - assert(clist->constant.index == (base + i)); - - char val0[32]; - char val1[32]; - char val2[32]; - char val3[32]; - floatstr(ctx, val0, sizeof (val0), clist->constant.value.f[0], 1); - floatstr(ctx, val1, sizeof (val1), clist->constant.value.f[1], 1); - floatstr(ctx, val2, sizeof (val2), clist->constant.value.f[2], 1); - floatstr(ctx, val3, sizeof (val3), clist->constant.value.f[3], 1); - - output_line(ctx, "float4(%s, %s, %s, %s)%s", val0, val1, val2, val3, - (i < (size-1)) ? "," : ""); - - clist = clist->next; - } // for - - ctx->indent--; - output_line(ctx, "};"); - output_line(ctx, "(void) %s[0];", varname); // stop compiler warnings. - pop_output(ctx); -} // emit_METAL_const_array - -void emit_METAL_uniform(Context *ctx, RegisterType regtype, int regnum, - const VariableList *var) -{ - // Now that we're pushing all the uniforms as one struct, pack these - // down, so if we only use register c439, it'll actually map to - // uniforms.uniforms_float4[0]. As we push one big struct, this will - // prevent uploading unused data. - - const char *utype = get_METAL_uniform_type(ctx, regtype); - char varname[64]; - char name[64]; - int index = 0; - - get_METAL_varname_in_buf(ctx, regtype, regnum, varname, sizeof (varname)); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - - if (var == NULL) - { - get_METAL_uniform_array_varname(ctx, regtype, name, sizeof (name)); - - if (regtype == REG_TYPE_CONST) - index = ctx->uniform_float4_count; - else if (regtype == REG_TYPE_CONSTINT) - index = ctx->uniform_int4_count; - else if (regtype == REG_TYPE_CONSTBOOL) - index = ctx->uniform_bool_count; - else // get_METAL_uniform_array_varname() would have called fail(). - assert(!(ctx->isfail)); - - // !!! FIXME: can cause unused var warnings in Clang... - //output_line(ctx, "constant %s &%s = %s[%d];", utype, varname, name, index); - output_line(ctx, "#define %s %s[%d]", varname, name, index); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", varname); // !!! FIXME: gross. - pop_output(ctx); - } // if - - else - { - const int arraybase = var->index; - if (var->constant) - { - get_METAL_const_array_varname_in_buf(ctx, arraybase, var->count, - name, sizeof (name)); - index = (regnum - arraybase); - } // if - else - { - assert(var->emit_position != -1); - get_METAL_uniform_array_varname(ctx, regtype, name, sizeof (name)); - index = (regnum - arraybase) + var->emit_position; - } // else - - // !!! FIXME: might trigger unused var warnings in Clang. - //output_line(ctx, "constant %s &%s = %s[%d];", utype, varname, name, index); - output_line(ctx, "#define %s %s[%d];", varname, name, index); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", varname); // !!! FIXME: gross. - pop_output(ctx); - } // else - - pop_output(ctx); -} // emit_METAL_uniform - -void emit_METAL_sampler(Context *ctx,int stage,TextureType ttype,int tb) -{ - char var[64]; - const char *texsuffix = NULL; - switch (ttype) - { - case TEXTURE_TYPE_2D: texsuffix = "2d"; break; - case TEXTURE_TYPE_CUBE: texsuffix = "cube"; break; - case TEXTURE_TYPE_VOLUME: texsuffix = "3d"; break; - default: assert(!"unexpected texture type"); return; - } // switch - - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, stage, var, sizeof (var)); - - push_output(ctx, &ctx->mainline_arguments); - ctx->indent++; - output_line(ctx, "texture%s %s_texture [[texture(%d)]],", - texsuffix, var, stage); - output_line(ctx, "sampler %s [[sampler(%d)]],", var, stage); - pop_output(ctx); - - if (tb) // This sampler used a ps_1_1 TEXBEM opcode? - { - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - char name[64]; - const int index = ctx->uniform_float4_count; - ctx->uniform_float4_count += 2; - get_METAL_uniform_array_varname(ctx, REG_TYPE_CONST, name, sizeof (name)); - output_line(ctx, "constant float4 &%s_texbem = %s[%d];", var, name, index); - output_line(ctx, "constant float4 &%s_texbeml = %s[%d];", var, name, index+1); - pop_output(ctx); - } // if -} // emit_METAL_sampler - -void emit_METAL_attribute(Context *ctx, RegisterType regtype, int regnum, - MOJOSHADER_usage usage, int index, int wmask, - int flags) -{ - // !!! FIXME: this function doesn't deal with write masks at all yet! - const char *usage_str = NULL; - char index_str[16] = { '\0' }; - char var[64]; - - get_METAL_varname_in_buf(ctx, regtype, regnum, var, sizeof (var)); - - //assert((flags & MOD_PP) == 0); // !!! FIXME: is PP allowed? - - if (index != 0) // !!! FIXME: a lot of these MUST be zero. - snprintf(index_str, sizeof (index_str), "%u", (uint) index); - - if (shader_is_vertex(ctx)) - { - // pre-vs3 output registers. - // these don't ever happen in DCL opcodes, I think. Map to vs_3_* - // output registers. - if (!shader_version_atleast(ctx, 3, 0)) - { - if (regtype == REG_TYPE_RASTOUT) - { - regtype = REG_TYPE_OUTPUT; - index = regnum; - switch ((const RastOutType) regnum) - { - case RASTOUT_TYPE_POSITION: - usage = MOJOSHADER_USAGE_POSITION; - break; - case RASTOUT_TYPE_FOG: - usage = MOJOSHADER_USAGE_FOG; - break; - case RASTOUT_TYPE_POINT_SIZE: - usage = MOJOSHADER_USAGE_POINTSIZE; - break; - } // switch - } // if - - else if (regtype == REG_TYPE_ATTROUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_COLOR; - index = regnum; - } // else if - - else if (regtype == REG_TYPE_TEXCRDOUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_TEXCOORD; - index = regnum; - } // else if - } // if - - if (regtype == REG_TYPE_INPUT) - { - push_output(ctx, &ctx->inputs); - if (buffer_size(ctx->inputs) == 0) - { - output_line(ctx, "struct %s_Input", ctx->mainfn); - output_line(ctx, "{"); - } // if - - ctx->indent++; - output_line(ctx, "float4 %s [[attribute(%d)]];", var, regnum); - pop_output(ctx); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - // !!! FIXME: might trigger unused var warnings in Clang. - //output_line(ctx, "constant float4 &%s = input.%s;", var, var); - output_line(ctx, "#define %s input.%s", var, var); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // if - - else if (regtype == REG_TYPE_OUTPUT) - { - push_output(ctx, &ctx->outputs); - if (buffer_size(ctx->outputs) == 0) - { - output_line(ctx, "struct %s_Output", ctx->mainfn); - output_line(ctx, "{"); - } // if - - ctx->indent++; - - switch (usage) - { - case MOJOSHADER_USAGE_POSITION: - output_line(ctx, "float4 %s [[position]];", var); - break; - case MOJOSHADER_USAGE_POINTSIZE: - output_line(ctx, "float %s [[point_size]];", var); - break; - case MOJOSHADER_USAGE_COLOR: - output_line(ctx, "float4 %s [[user(color%d)]];", var, index); - break; - case MOJOSHADER_USAGE_FOG: - output_line(ctx, "float4 %s [[user(fog)]];", var); - break; - case MOJOSHADER_USAGE_TEXCOORD: - output_line(ctx, "float4 %s [[user(texcoord%d)]];", var, index); - break; - case MOJOSHADER_USAGE_NORMAL: - output_line(ctx, "float4 %s [[user(normal)]];", var); - default: - // !!! FIXME: we need to deal with some more built-in varyings here. - break; - } // switch - - pop_output(ctx); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - // !!! FIXME: this doesn't work. - //output_line(ctx, "float4 &%s = output.%s;", var, var); - output_line(ctx, "#define %s output.%s", var, var); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // else if - - else - { - fail(ctx, "unknown vertex shader attribute register"); - } // else - } // if - - else if (shader_is_pixel(ctx)) - { - // samplers DCLs get handled in emit_METAL_sampler(). - - if (flags & MOD_CENTROID) // !!! FIXME - { - failf(ctx, "centroid unsupported in %s profile", ctx->profile->name); - return; - } // if - - if ((regtype == REG_TYPE_COLOROUT) || (regtype == REG_TYPE_DEPTHOUT)) - { - push_output(ctx, &ctx->outputs); - if (buffer_size(ctx->outputs) == 0) - { - output_line(ctx, "struct %s_Output", ctx->mainfn); - output_line(ctx, "{"); - } // if - ctx->indent++; - - if (regtype == REG_TYPE_COLOROUT) - output_line(ctx, "float4 %s [[color(%d)]];", var, regnum); - else if (regtype == REG_TYPE_DEPTHOUT) - output_line(ctx, "float %s [[depth(any)]];", var); - - pop_output(ctx); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - // !!! FIXME: this doesn't work. - //output_line(ctx, "float%s &%s = output.%s;", (regtype == REG_TYPE_DEPTHOUT) ? "" : "4", var, var); - output_line(ctx, "#define %s output.%s", var, var); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // if - - // !!! FIXME: can you actualy have a texture register with COLOR usage? - else if ((regtype == REG_TYPE_TEXTURE) || - (regtype == REG_TYPE_INPUT) || - (regtype == REG_TYPE_MISCTYPE)) - { - int skipreference = 0; - push_output(ctx, &ctx->inputs); - if (buffer_size(ctx->inputs) == 0) - { - output_line(ctx, "struct %s_Input", ctx->mainfn); - output_line(ctx, "{"); - } // if - ctx->indent++; - - if (regtype == REG_TYPE_MISCTYPE) - { - const MiscTypeType mt = (MiscTypeType) regnum; - if (mt == MISCTYPE_TYPE_FACE) - output_line(ctx, "bool %s [[front_facing]];", var); - else if (mt == MISCTYPE_TYPE_POSITION) - output_line(ctx, "float4 %s [[position]];", var); - else - fail(ctx, "BUG: unhandled misc register"); - } // else if - - else - { - if (usage == MOJOSHADER_USAGE_TEXCOORD) - { - // ps_1_1 does a different hack for this attribute. - // Refer to emit_METAL_global()'s REG_TYPE_ADDRESS code. - if (!shader_version_atleast(ctx, 1, 4)) - skipreference = 1; - output_line(ctx, "float4 %s [[user(texcoord%d)]];", var, index); - } // if - - else if (usage == MOJOSHADER_USAGE_COLOR) - output_line(ctx, "float4 %s [[user(color%d)]];", var, index); - - else if (usage == MOJOSHADER_USAGE_FOG) - output_line(ctx, "float4 %s [[user(fog)]];", var); - - else if (usage == MOJOSHADER_USAGE_NORMAL) - output_line(ctx, "float4 %s [[user(normal)]];", var); - } // else - - pop_output(ctx); - - // !!! FIXME: can cause unused var warnings in Clang... - #if 0 - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - if ((regtype == REG_TYPE_MISCTYPE)&&(regnum == MISCTYPE_TYPE_FACE)) - output_line(ctx, "constant bool &%s = input.%s;", var, var); - else if (!skipreference) - output_line(ctx, "constant float4 &%s = input.%s;", var, var); - pop_output(ctx); - #endif - - if (!skipreference) - { - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "#define %s input.%s", var, var); - pop_output(ctx); - push_output(ctx, &ctx->mainline); - ctx->indent++; - output_line(ctx, "#undef %s", var); // !!! FIXME: gross. - pop_output(ctx); - } // if - } // else if - - else - { - fail(ctx, "unknown pixel shader attribute register"); - } // else - } // else if - - else - { - fail(ctx, "Unknown shader type"); // state machine should catch this. - } // else -} // emit_METAL_attribute - -void emit_METAL_NOP(Context *ctx) -{ - // no-op is a no-op. :) -} // emit_METAL_NOP - -void emit_METAL_MOV(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - make_METAL_destarg_assign(ctx, code, sizeof (code), "%s", src0); - output_line(ctx, "%s", code); -} // emit_METAL_MOV - -void emit_METAL_ADD(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_METAL_destarg_assign(ctx, code, sizeof (code), "%s + %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_METAL_ADD - -void emit_METAL_SUB(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_METAL_destarg_assign(ctx, code, sizeof (code), "%s - %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_METAL_SUB - -void emit_METAL_MAD(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_METAL_srcarg_string_masked(ctx, 2, src2, sizeof (src2)); - char code[128]; - make_METAL_destarg_assign(ctx, code, sizeof (code), "(%s * %s) + %s", src0, src1, src2); - output_line(ctx, "%s", code); -} // emit_METAL_MAD - -void emit_METAL_MUL(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - make_METAL_destarg_assign(ctx, code, sizeof (code), "%s * %s", src0, src1); - output_line(ctx, "%s", code); -} // emit_METAL_MUL - -void emit_METAL_RCP(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char cast[16] = { '\0' }; - if (vecsize != 1) - snprintf(cast, sizeof (cast), "float%d", vecsize); - char src0[64]; make_METAL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "%s((%s == 0.0) ? FLT_MAX : 1.0 / %s)", cast, src0, src0); - output_line(ctx, "%s", code); -} // emit_METAL_RCP - -void emit_METAL_RSQ(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char cast[16] = { '\0' }; - if (vecsize != 1) - snprintf(cast, sizeof (cast), "float%d", vecsize); - char src0[64]; make_METAL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "%s((%s == 0.0) ? FLT_MAX : rsqrt(abs(%s)))", cast, src0, src0); - output_line(ctx, "%s", code); -} // emit_METAL_RSQ - -void emit_METAL_dotprod(Context *ctx, const char *src0, const char *src1, - const char *extra) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char castleft[16] = { '\0' }; - const char *castright = ""; - if (vecsize != 1) - { - snprintf(castleft, sizeof (castleft), "float%d(", vecsize); - castright = ")"; - } // if - - char code[128]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "%sdot(%s, %s)%s%s", - castleft, src0, src1, extra, castright); - output_line(ctx, "%s", code); -} // emit_METAL_dotprod - -void emit_METAL_DP3(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_vec3(ctx, 1, src1, sizeof (src1)); - emit_METAL_dotprod(ctx, src0, src1, ""); -} // emit_METAL_DP3 - -void emit_METAL_DP4(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_full(ctx, 1, src1, sizeof (src1)); - emit_METAL_dotprod(ctx, src0, src1, ""); -} // emit_METAL_DP4 - -void emit_METAL_MIN(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "min(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_METAL_MIN - -void emit_METAL_MAX(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "max(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_METAL_MAX - -void emit_METAL_SLT(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // float(bool) or vec(bvec) results in 0.0 or 1.0, like SLT wants. - if (vecsize == 1) - make_METAL_destarg_assign(ctx, code, sizeof (code), "float(%s < %s)", src0, src1); - else - { - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float%d(%s < %s)", vecsize, src0, src1); - } // else - output_line(ctx, "%s", code); -} // emit_METAL_SLT - -void emit_METAL_SGE(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // float(bool) or vec(bvec) results in 0.0 or 1.0, like SGE wants. - if (vecsize == 1) - { - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float(%s >= %s)", src0, src1); - } // if - else - { - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float%d(%s >= %s)", vecsize, src0, src1); - } // else - output_line(ctx, "%s", code); -} // emit_METAL_SGE - -void emit_METAL_EXP(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "exp2(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_EXP - -void emit_METAL_LOG(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "log2(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_LOG - -void emit_METAL_LIT_helper(Context *ctx) -{ - const char *maxp = "127.9961"; // value from the dx9 reference. - - if (ctx->glsl_generated_lit_helper) - return; - - ctx->glsl_generated_lit_helper = 1; - ctx->metal_need_header_common = 1; - ctx->metal_need_header_math = 1; - - push_output(ctx, &ctx->helpers); - output_line(ctx, "float4 LIT(const float4 src)"); - output_line(ctx, "{"); ctx->indent++; - output_line(ctx, "const float power = clamp(src.w, -%s, %s);",maxp,maxp); - output_line(ctx, "float4 retval = float4(1.0, 0.0, 0.0, 1.0);"); - output_line(ctx, "if (src.x > 0.0) {"); ctx->indent++; - output_line(ctx, "retval.y = src.x;"); - output_line(ctx, "if (src.y > 0.0) {"); ctx->indent++; - output_line(ctx, "retval.z = pow(src.y, power);"); ctx->indent--; - output_line(ctx, "}"); ctx->indent--; - output_line(ctx, "}"); - output_line(ctx, "return retval;"); ctx->indent--; - output_line(ctx, "}"); - output_blank_line(ctx); - pop_output(ctx); -} // emit_METAL_LIT_helper - -void emit_METAL_LIT(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char code[128]; - emit_METAL_LIT_helper(ctx); - make_METAL_destarg_assign(ctx, code, sizeof (code), "LIT(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_LIT - -void emit_METAL_DST(Context *ctx) -{ - // !!! FIXME: needs to take ctx->dst_arg.writemask into account. - char src0_y[64]; make_METAL_srcarg_string_y(ctx, 0, src0_y, sizeof (src0_y)); - char src1_y[64]; make_METAL_srcarg_string_y(ctx, 1, src1_y, sizeof (src1_y)); - char src0_z[64]; make_METAL_srcarg_string_z(ctx, 0, src0_z, sizeof (src0_z)); - char src1_w[64]; make_METAL_srcarg_string_w(ctx, 1, src1_w, sizeof (src1_w)); - - char code[128]; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float4(1.0, %s * %s, %s, %s)", - src0_y, src1_y, src0_z, src1_w); - output_line(ctx, "%s", code); -} // emit_METAL_DST - -void emit_METAL_LRP(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_METAL_srcarg_string_masked(ctx, 2, src2, sizeof (src2)); - char code[128]; - ctx->metal_need_header_common = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "mix(%s, %s, %s)", - src2, src1, src0); - output_line(ctx, "%s", code); -} // emit_METAL_LRP - -void emit_METAL_FRC(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "fract(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_FRC - -void emit_METAL_M4X4(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_METAL_srcarg_string_full(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_METAL_srcarg_string_full(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_METAL_srcarg_string_full(ctx, 3, row2, sizeof (row2)); - char row3[64]; make_METAL_srcarg_string_full(ctx, 4, row3, sizeof (row3)); - char code[256]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float4(dot(%s, %s), dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2, src0, row3); - output_line(ctx, "%s", code); -} // emit_METAL_M4X4 - -void emit_METAL_M4X3(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_full(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_METAL_srcarg_string_full(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_METAL_srcarg_string_full(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_METAL_srcarg_string_full(ctx, 3, row2, sizeof (row2)); - char code[256]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float3(dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2); - output_line(ctx, "%s", code); -} // emit_METAL_M4X3 - -void emit_METAL_M3X4(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_METAL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_METAL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_METAL_srcarg_string_vec3(ctx, 3, row2, sizeof (row2)); - char row3[64]; make_METAL_srcarg_string_vec3(ctx, 4, row3, sizeof (row3)); - char code[256]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float4(dot(%s, %s), dot(%s, %s), " - "dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, - src0, row2, src0, row3); - output_line(ctx, "%s", code); -} // emit_METAL_M3X4 - -void emit_METAL_M3X3(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_METAL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_METAL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - char row2[64]; make_METAL_srcarg_string_vec3(ctx, 3, row2, sizeof (row2)); - char code[256]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float3(dot(%s, %s), dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1, src0, row2); - output_line(ctx, "%s", code); -} // emit_METAL_M3X3 - -void emit_METAL_M3X2(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char row0[64]; make_METAL_srcarg_string_vec3(ctx, 1, row0, sizeof (row0)); - char row1[64]; make_METAL_srcarg_string_vec3(ctx, 2, row1, sizeof (row1)); - char code[256]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float2(dot(%s, %s), dot(%s, %s))", - src0, row0, src0, row1); - output_line(ctx, "%s", code); -} // emit_METAL_M3X2 - -void emit_METAL_CALL(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - if (ctx->loops > 0) - output_line(ctx, "%s(aL);", src0); - else - output_line(ctx, "%s();", src0); -} // emit_METAL_CALL - -void emit_METAL_CALLNZ(Context *ctx) -{ - // !!! FIXME: if src1 is a constbool that's true, we can remove the - // !!! FIXME: if. If it's false, we can make this a no-op. - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - - if (ctx->loops > 0) - output_line(ctx, "if (%s) { %s(aL); }", src1, src0); - else - output_line(ctx, "if (%s) { %s(); }", src1, src0); -} // emit_METAL_CALLNZ - -void emit_METAL_LOOP(Context *ctx) -{ - // !!! FIXME: swizzle? - char var[64]; get_METAL_srcarg_varname(ctx, 1, var, sizeof (var)); - assert(ctx->source_args[0].regnum == 0); // in case they add aL1 someday. - output_line(ctx, "{"); - ctx->indent++; - output_line(ctx, "const int aLend = %s.x + %s.y;", var, var); - output_line(ctx, "for (int aL = %s.y; aL < aLend; aL += %s.z) {", var, var); - ctx->indent++; -} // emit_METAL_LOOP - -void emit_METAL_RET(Context *ctx) -{ - // thankfully, the MSDN specs say a RET _has_ to end a function...no - // early returns. So if you hit one, you know you can safely close - // a high-level function. - push_output(ctx, &ctx->postflight); - output_line(ctx, "}"); - output_blank_line(ctx); - set_output(ctx, &ctx->subroutines); // !!! FIXME: is this for LABEL? Maybe set it there so we don't allocate unnecessarily. -} // emit_METAL_RET - -void emit_METAL_ENDLOOP(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); - ctx->indent--; - output_line(ctx, "}"); -} // emit_METAL_ENDLOOP - -void emit_METAL_LABEL(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - const int label = ctx->source_args[0].regnum; - RegisterList *reg = reglist_find(&ctx->used_registers, REG_TYPE_LABEL, label); - assert(ctx->output == ctx->subroutines); // not mainline, etc. - assert(ctx->indent == 0); // we shouldn't be in the middle of a function. - - // MSDN specs say CALL* has to come before the LABEL, so we know if we - // can ditch the entire function here as unused. - if (reg == NULL) - set_output(ctx, &ctx->ignore); // Func not used. Parse, but don't output. - - // !!! FIXME: it would be nice if we could determine if a function is - // !!! FIXME: only called once and, if so, forcibly inline it. - - // !!! FIXME: this worked in GLSL because all our state is global to the shader, - // !!! FIXME: but in metal we kept it local to the shader mainline. - // !!! FIXME: Can we do C++11 lambdas in Metal to have nested functions? :) - - const char *uses_loopreg = ((reg) && (reg->misc == 1)) ? "int aL" : ""; - output_line(ctx, "void %s(%s)", src0, uses_loopreg); - output_line(ctx, "{"); - ctx->indent++; -} // emit_METAL_LABEL - -void emit_METAL_DCL(Context *ctx) -{ - // no-op. We do this in our emit_attribute() and emit_uniform(). -} // emit_METAL_DCL - -void emit_METAL_POW(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "pow(abs(%s), %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_METAL_POW - -void emit_METAL_CRS(Context *ctx) -{ - // !!! FIXME: needs to take ctx->dst_arg.writemask into account. - char src0[64]; make_METAL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_vec3(ctx, 1, src1, sizeof (src1)); - char code[128]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "cross(%s, %s)", src0, src1); - output_line(ctx, "%s", code); -} // emit_METAL_CRS - -void emit_METAL_SGN(Context *ctx) -{ - // (we don't need the temporary registers specified for the D3D opcode.) - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_common = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "sign(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_SGN - -void emit_METAL_ABS(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_math = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "abs(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_ABS - -void emit_METAL_NRM(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_geometric = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "normalize(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_NRM - -void emit_METAL_SINCOS(Context *ctx) -{ - // we don't care about the temp registers that <= sm2 demands; ignore them. - // sm2 also talks about what components are left untouched vs. undefined, - // but we just leave those all untouched with Metal write masks (which - // would fulfill the "undefined" requirement, too). - const int mask = ctx->dest_arg.writemask; - char src0[64]; make_METAL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char code[128] = { '\0' }; - - ctx->metal_need_header_math = 1; - if (writemask_x(mask)) - make_METAL_destarg_assign(ctx, code, sizeof (code), "cos(%s)", src0); - else if (writemask_y(mask)) - make_METAL_destarg_assign(ctx, code, sizeof (code), "sin(%s)", src0); - else if (writemask_xy(mask)) - { - // !!! FIXME: can use sincos(), but need to assign cos to a temp, since it needs a reference. - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float2(cos(%s), sin(%s))", src0, src0); - } // else if - - output_line(ctx, "%s", code); -} // emit_METAL_SINCOS - -void emit_METAL_REP(Context *ctx) -{ - // !!! FIXME: - // msdn docs say legal loop values are 0 to 255. We can check DEFI values - // at parse time, but if they are pulling a value from a uniform, do - // we clamp here? - // !!! FIXME: swizzle is legal here, right? - char src0[64]; make_METAL_srcarg_string_x(ctx, 0, src0, sizeof (src0)); - const uint rep = (uint) ctx->reps; - output_line(ctx, "for (int rep%u = 0; rep%u < %s; rep%u++) {", - rep, rep, src0, rep); - ctx->indent++; -} // emit_METAL_REP - -void emit_METAL_ENDREP(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); -} // emit_METAL_ENDREP - -void emit_METAL_IF(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "if (%s) {", src0); - ctx->indent++; -} // emit_METAL_IF - -void emit_METAL_IFC(Context *ctx) -{ - const char *comp = get_METAL_comparison_string_scalar(ctx); - char src0[64]; make_METAL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_scalar(ctx, 1, src1, sizeof (src1)); - output_line(ctx, "if (%s %s %s) {", src0, comp, src1); - ctx->indent++; -} // emit_METAL_IFC - -void emit_METAL_ELSE(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "} else {"); - ctx->indent++; -} // emit_METAL_ELSE - -void emit_METAL_ENDIF(Context *ctx) -{ - ctx->indent--; - output_line(ctx, "}"); -} // emit_METAL_ENDIF - -void emit_METAL_BREAK(Context *ctx) -{ - output_line(ctx, "break;"); -} // emit_METAL_BREAK - -void emit_METAL_BREAKC(Context *ctx) -{ - const char *comp = get_METAL_comparison_string_scalar(ctx); - char src0[64]; make_METAL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_scalar(ctx, 1, src1, sizeof (src1)); - output_line(ctx, "if (%s %s %s) { break; }", src0, comp, src1); -} // emit_METAL_BREAKC - -void emit_METAL_MOVA(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - - ctx->metal_need_header_math = 1; - ctx->metal_need_header_common = 1; - - if (vecsize == 1) - { - make_METAL_destarg_assign(ctx, code, sizeof (code), - "int(floor(abs(%s) + 0.5) * sign(%s))", - src0, src0); - } // if - - else - { - make_METAL_destarg_assign(ctx, code, sizeof (code), - "int%d(floor(abs(%s) + float%d(0.5)) * sign(%s))", - vecsize, src0, vecsize, src0); - } // else - - output_line(ctx, "%s", code); -} // emit_METAL_MOVA - -void emit_METAL_DEFB(Context *ctx) -{ - char varname[64]; get_METAL_destarg_varname(ctx, varname, sizeof (varname)); - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const bool %s = %s;", - varname, ctx->dwords[0] ? "true" : "false"); - pop_output(ctx); -} // emit_METAL_DEFB - -void emit_METAL_DEFI(Context *ctx) -{ - char varname[64]; get_METAL_destarg_varname(ctx, varname, sizeof (varname)); - const int32 *x = (const int32 *) ctx->dwords; - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - output_line(ctx, "const int4 %s = int4(%d, %d, %d, %d);", - varname, (int) x[0], (int) x[1], (int) x[2], (int) x[3]); - pop_output(ctx); -} // emit_METAL_DEFI - -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXCRD) - -void emit_METAL_TEXKILL(Context *ctx) -{ - char dst[64]; get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - ctx->metal_need_header_relational = 1; - ctx->metal_need_header_graphics = 1; - output_line(ctx, "if (any(%s.xyz < float3(0.0))) discard_fragment();", dst); -} // emit_METAL_TEXKILL - -static void metal_texld(Context *ctx, const int texldd) -{ - ctx->metal_need_header_texture = 1; - if (!shader_version_atleast(ctx, 1, 4)) - { - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char sampler[64]; - char code[128] = {0}; - - assert(!texldd); - - RegisterList *sreg; - sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - - char swizzle[4] = { 'x', 'y', 'z', '\0' }; - if (ttype == TEXTURE_TYPE_2D) - swizzle[2] = '\0'; // "xy" instead of "xyz". - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.sample(%s, %s.%s)", - sampler, sampler, dst, swizzle); - output_line(ctx, "%s", code); - } // if - - else if (!shader_version_atleast(ctx, 2, 0)) - { - // ps_1_4 is different, too! - fail(ctx, "TEXLD == Shader Model 1.4 unimplemented."); // !!! FIXME - return; - } // else if - - else - { - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - samp_arg->regnum); - const char *funcname = NULL; - char src0[64] = { '\0' }; - char src1[64]; get_METAL_srcarg_varname(ctx, 1, src1, sizeof (src1)); // !!! FIXME: SRC_MOD? - char src2[64] = { '\0' }; - char src3[64] = { '\0' }; - - if (sreg == NULL) - { - fail(ctx, "TEXLD using undeclared sampler"); - return; - } // if - - const char *grad = ""; - if (texldd) - { - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - grad = "2d"; - make_METAL_srcarg_string_vec2(ctx, 2, src2, sizeof (src2)); - make_METAL_srcarg_string_vec2(ctx, 3, src3, sizeof (src3)); - break; - case TEXTURE_TYPE_VOLUME: - grad = "3d"; - make_METAL_srcarg_string_vec3(ctx, 2, src2, sizeof (src2)); - make_METAL_srcarg_string_vec3(ctx, 3, src3, sizeof (src3)); - break; - case TEXTURE_TYPE_CUBE: - grad = "cube"; - make_METAL_srcarg_string_vec3(ctx, 2, src2, sizeof (src2)); - make_METAL_srcarg_string_vec3(ctx, 3, src3, sizeof (src3)); - break; - } // switch - } // if - - // !!! FIXME: can TEXLDD set instruction_controls? - // !!! FIXME: does the d3d bias value map directly to Metal? - const char *biasleft = ""; - const char *biasright = ""; - char bias[64] = { '\0' }; - if (ctx->instruction_controls == CONTROL_TEXLDB) - { - biasleft = ", bias("; - make_METAL_srcarg_string_w(ctx, 0, bias, sizeof (bias)); - biasright = ")"; - } // if - - // Metal doesn't have a texture2DProj() function, but you just divide - // your texcoords by texcoords.w to achieve it anyhow, so DIY. - const char *projop = ""; - char proj[64] = { '\0' }; - if (ctx->instruction_controls == CONTROL_TEXLDP) - { - if (sreg->index == TEXTURE_TYPE_CUBE) - fail(ctx, "TEXLDP on a cubemap"); // !!! FIXME: is this legal? - projop = " / "; - make_METAL_srcarg_string_w(ctx, 0, proj, sizeof (proj)); - } // if - - switch ((const TextureType) sreg->index) - { - case TEXTURE_TYPE_2D: - make_METAL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - break; - - case TEXTURE_TYPE_CUBE: - case TEXTURE_TYPE_VOLUME: - make_METAL_srcarg_string_vec3(ctx, 0, src0, sizeof (src0)); - break; - - default: - fail(ctx, "unknown texture type"); - return; - } // switch - - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - char swiz_str[6] = { '\0' }; - make_METAL_swizzle_string(swiz_str, sizeof (swiz_str), - samp_arg->swizzle, ctx->dest_arg.writemask); - - char code[128]; - if (texldd) - { - make_METAL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.sample(%s, %s, gradient%s(%s, %s))%s", - src1, src1, src0, grad, src2, src3, swiz_str); - } // if - else - { - make_METAL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.sample(%s, %s%s%s%s%s%s)%s", - src1, src1, src0, projop, proj, - biasleft, bias, biasright, swiz_str); - } // else - - output_line(ctx, "%s", code); - } // else -} // metal_texld - -void emit_METAL_TEXLD(Context *ctx) -{ - metal_texld(ctx, 0); -} // emit_METAL_TEXLD - - -void emit_METAL_TEXBEM(Context *ctx) -{ - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - char src[64]; get_METAL_srcarg_varname(ctx, 0, src, sizeof (src)); - char sampler[64]; - char code[512]; - - ctx->metal_need_header_texture = 1; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.sample(%s, float2(%s.x + (%s_texbem.x * %s.x) + (%s_texbem.z * %s.y)," - " %s.y + (%s_texbem.y * %s.x) + (%s_texbem.w * %s.y)))", - sampler, sampler, - dst, sampler, src, sampler, src, - dst, sampler, src, sampler, src); - - output_line(ctx, "%s", code); -} // emit_METAL_TEXBEM - - -void emit_METAL_TEXBEML(Context *ctx) -{ - // !!! FIXME: this code counts on the register not having swizzles, etc. - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - char src[64]; get_METAL_srcarg_varname(ctx, 0, src, sizeof (src)); - char sampler[64]; - char code[512]; - - ctx->metal_need_header_texture = 1; - - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "(%s_texture.sample(%s, float2(%s.x + (%s_texbem.x * %s.x) + (%s_texbem.z * %s.y)," - " %s.y + (%s_texbem.y * %s.x) + (%s_texbem.w * %s.y)))) *" - " ((%s.z * %s_texbeml.x) + %s_texbem.y)", - sampler, sampler, - dst, sampler, src, sampler, src, - dst, sampler, src, sampler, src, - src, sampler, sampler); - - output_line(ctx, "%s", code); -} // emit_METAL_TEXBEML - -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2AR) // !!! FIXME -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2GB) // !!! FIXME - - -void emit_METAL_TEXM3X2PAD(Context *ctx) -{ - // no-op ... work happens in emit_METAL_TEXM3X2TEX(). -} // emit_METAL_TEXM3X2PAD - -void emit_METAL_TEXM3X2TEX(Context *ctx) -{ - if (ctx->texm3x2pad_src0 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char sampler[64]; - char code[512]; - - ctx->metal_need_header_texture = 1; - ctx->metal_need_header_geometric = 1; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_src0, - src0, sizeof (src0)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_dst0, - src1, sizeof (src1)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src2, sizeof (src2)); - get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "%s_texture.sample(%s, float2(dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz)))", - sampler, sampler, src0, src1, src2, dst); - - output_line(ctx, "%s", code); -} // emit_METAL_TEXM3X2TEX - -void emit_METAL_TEXM3X3PAD(Context *ctx) -{ - // no-op ... work happens in emit_METAL_TEXM3X3*(). -} // emit_METAL_TEXM3X3PAD - -void emit_METAL_TEXM3X3TEX(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char sampler[64]; - char code[512]; - - ctx->metal_need_header_texture = 1; - ctx->metal_need_header_geometric = 1; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "Cube" : "3D"; - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "texture%s(%s," - " float3(dot(%s.xyz, %s.xyz)," - " dot(%s.xyz, %s.xyz)," - " dot(%s.xyz, %s.xyz)))", - ttypestr, sampler, src0, src1, src2, src3, dst, src4); - - output_line(ctx, "%s", code); -} // emit_METAL_TEXM3X3TEX - -void emit_METAL_TEXM3X3SPEC_helper(Context *ctx) -{ - if (ctx->glsl_generated_texm3x3spec_helper) - return; - - ctx->glsl_generated_texm3x3spec_helper = 1; - - push_output(ctx, &ctx->helpers); - output_line(ctx, "float3 TEXM3X3SPEC_reflection(const float3 normal, const float3 eyeray)"); - output_line(ctx, "{"); ctx->indent++; - output_line(ctx, "return (2.0 * ((normal * eyeray) / (normal * normal)) * normal) - eyeray;"); ctx->indent--; - output_line(ctx, "}"); - output_blank_line(ctx); - pop_output(ctx); -} // emit_METAL_TEXM3X3SPEC_helper - -void emit_METAL_TEXM3X3SPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char src5[64]; - char sampler[64]; - char code[512]; - - ctx->metal_need_header_texture = 1; - ctx->metal_need_header_geometric = 1; - - emit_METAL_TEXM3X3SPEC_helper(ctx); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[1].regnum, - src5, sizeof (src5)); - get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "Cube" : "3D"; - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "texture%s(%s, " - "TEXM3X3SPEC_reflection(" - "float3(" - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz)" - ")," - "%s.xyz," - ")" - ")", - ttypestr, sampler, src0, src1, src2, src3, dst, src4, src5); - - output_line(ctx, "%s", code); -} // emit_METAL_TEXM3X3SPEC - -void emit_METAL_TEXM3X3VSPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - DestArgInfo *info = &ctx->dest_arg; - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char sampler[64]; - char code[512]; - - ctx->metal_need_header_texture = 1; - ctx->metal_need_header_geometric = 1; - - emit_METAL_TEXM3X3SPEC_helper(ctx); - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_METAL_varname_in_buf(ctx, REG_TYPE_SAMPLER, info->regnum, - sampler, sizeof (sampler)); - - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, - info->regnum); - const TextureType ttype = (TextureType) (sreg ? sreg->index : 0); - const char *ttypestr = (ttype == TEXTURE_TYPE_CUBE) ? "Cube" : "3D"; - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "texture%s(%s, " - "TEXM3X3SPEC_reflection(" - "float3(" - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz), " - "dot(%s.xyz, %s.xyz)" - "), " - "float3(%s.w, %s.w, %s.w)" - ")" - ")", - ttypestr, sampler, src0, src1, src2, src3, dst, src4, src0, src2, dst); - - output_line(ctx, "%s", code); -} // emit_METAL_TEXM3X3VSPEC - -void emit_METAL_EXPP(Context *ctx) -{ - // !!! FIXME: msdn's asm docs don't list this opcode, I'll have to check the driver documentation. - emit_METAL_EXP(ctx); // I guess this is just partial precision EXP? -} // emit_METAL_EXPP - -void emit_METAL_LOGP(Context *ctx) -{ - // LOGP is just low-precision LOG, but we'll take the higher precision. - emit_METAL_LOG(ctx); -} // emit_METAL_LOGP - -// common code between CMP and CND. -void emit_METAL_comparison_operations(Context *ctx, const char *cmp) -{ - int i, j; - DestArgInfo *dst = &ctx->dest_arg; - const SourceArgInfo *srcarg0 = &ctx->source_args[0]; - const int origmask = dst->writemask; - int used_swiz[4] = { 0, 0, 0, 0 }; - const int writemask[4] = { dst->writemask0, dst->writemask1, - dst->writemask2, dst->writemask3 }; - const int src0swiz[4] = { srcarg0->swizzle_x, srcarg0->swizzle_y, - srcarg0->swizzle_z, srcarg0->swizzle_w }; - - for (i = 0; i < 4; i++) - { - int mask = (1 << i); - - if (!writemask[i]) continue; - if (used_swiz[i]) continue; - - // This is a swizzle we haven't checked yet. - used_swiz[i] = 1; - - // see if there are any other elements swizzled to match (.yyyy) - for (j = i + 1; j < 4; j++) - { - if (!writemask[j]) continue; - if (src0swiz[i] != src0swiz[j]) continue; - mask |= (1 << j); - used_swiz[j] = 1; - } // for - - // okay, (mask) should be the writemask of swizzles we like. - - //return make_METAL_srcarg_string(ctx, idx, (1 << 0)); - - char src0[64]; - char src1[64]; - char src2[64]; - make_METAL_srcarg_string(ctx, 0, (1 << i), src0, sizeof (src0)); - make_METAL_srcarg_string(ctx, 1, mask, src1, sizeof (src1)); - make_METAL_srcarg_string(ctx, 2, mask, src2, sizeof (src2)); - - set_dstarg_writemask(dst, mask); - - char code[128]; - make_METAL_destarg_assign(ctx, code, sizeof (code), - "((%s %s) ? %s : %s)", - src0, cmp, src1, src2); - output_line(ctx, "%s", code); - } // for - - set_dstarg_writemask(dst, origmask); -} // emit_METAL_comparison_operations - -void emit_METAL_CND(Context *ctx) -{ - emit_METAL_comparison_operations(ctx, "> 0.5"); -} // emit_METAL_CND - -void emit_METAL_DEF(Context *ctx) -{ - const float *val = (const float *) ctx->dwords; // !!! FIXME: could be int? - char varname[64]; get_METAL_destarg_varname(ctx, varname, sizeof (varname)); - char val0[32]; floatstr(ctx, val0, sizeof (val0), val[0], 1); - char val1[32]; floatstr(ctx, val1, sizeof (val1), val[1], 1); - char val2[32]; floatstr(ctx, val2, sizeof (val2), val[2], 1); - char val3[32]; floatstr(ctx, val3, sizeof (val3), val[3], 1); - - push_output(ctx, &ctx->mainline_top); - ctx->indent++; - // The "(void) %s;" is to make the compiler not warn if this isn't used. - output_line(ctx, "const float4 %s = float4(%s, %s, %s, %s); (void) %s;", - varname, val0, val1, val2, val3, varname); - pop_output(ctx); -} // emit_METAL_DEF - -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2RGB) // !!! FIXME -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3TEX) // !!! FIXME -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXM3X2DEPTH) // !!! FIXME -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3) // !!! FIXME - -void emit_METAL_TEXM3X3(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - char dst[64]; - char src0[64]; - char src1[64]; - char src2[64]; - char src3[64]; - char src4[64]; - char code[512]; - - ctx->metal_need_header_geometric = 1; - - // !!! FIXME: this code counts on the register not having swizzles, etc. - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0, - src0, sizeof (src0)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0, - src1, sizeof (src1)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1, - src2, sizeof (src2)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1, - src3, sizeof (src3)); - get_METAL_varname_in_buf(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum, - src4, sizeof (src4)); - get_METAL_destarg_varname(ctx, dst, sizeof (dst)); - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "float4(dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz), dot(%s.xyz, %s.xyz), 1.0)", - src0, src1, src2, src3, dst, src4); - - output_line(ctx, "%s", code); -} // emit_METAL_TEXM3X3 - -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(TEXDEPTH) // !!! FIXME - -void emit_METAL_CMP(Context *ctx) -{ - emit_METAL_comparison_operations(ctx, ">= 0.0"); -} // emit_METAL_CMP - -EMIT_METAL_OPCODE_UNIMPLEMENTED_FUNC(BEM) // !!! FIXME - -void emit_METAL_DP2ADD(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_vec2(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_vec2(ctx, 1, src1, sizeof (src1)); - char src2[64]; make_METAL_srcarg_string_scalar(ctx, 2, src2, sizeof (src2)); - char extra[64]; snprintf(extra, sizeof (extra), " + %s", src2); - emit_METAL_dotprod(ctx, src0, src1, extra); -} // emit_METAL_DP2ADD - -void emit_METAL_DSX(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_graphics = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "dfdx(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_DSX - -void emit_METAL_DSY(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char code[128]; - ctx->metal_need_header_graphics = 1; - make_METAL_destarg_assign(ctx, code, sizeof (code), "dfdy(%s)", src0); - output_line(ctx, "%s", code); -} // emit_METAL_DSY - -void emit_METAL_TEXLDD(Context *ctx) -{ - metal_texld(ctx, 1); -} // emit_METAL_TEXLDD - -void emit_METAL_SETP(Context *ctx) -{ - const int vecsize = vecsize_from_writemask(ctx->dest_arg.writemask); - char src0[64]; make_METAL_srcarg_string_masked(ctx, 0, src0, sizeof (src0)); - char src1[64]; make_METAL_srcarg_string_masked(ctx, 1, src1, sizeof (src1)); - char code[128]; - - // destination is always predicate register (which is type bvec4). - const char *comp = (vecsize == 1) ? - get_METAL_comparison_string_scalar(ctx) : - get_METAL_comparison_string_vector(ctx); - - make_METAL_destarg_assign(ctx, code, sizeof (code), - "(%s %s %s)", src0, comp, src1); - output_line(ctx, "%s", code); -} // emit_METAL_SETP - -void emit_METAL_TEXLDL(Context *ctx) -{ - // !!! FIXME: The spec says we can't use GLSL's texture*Lod() built-ins - // !!! FIXME: from fragment shaders for some inexplicable reason. - // !!! FIXME: Maybe Metal can do it, but I haven't looked into it yet. - emit_METAL_TEXLD(ctx); -} // emit_METAL_TEXLDL - -void emit_METAL_BREAKP(Context *ctx) -{ - char src0[64]; make_METAL_srcarg_string_scalar(ctx, 0, src0, sizeof (src0)); - output_line(ctx, "if (%s) { break; }", src0); -} // emit_METAL_BREAKP - -void emit_METAL_RESERVED(Context *ctx) -{ - // do nothing; fails in the state machine. -} // emit_METAL_RESERVED - -#endif // SUPPORT_PROFILE_METAL - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_spirv.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_spirv.c deleted file mode 100644 index 6506bb8c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_spirv.c +++ /dev/null @@ -1,4318 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#define __MOJOSHADER_INTERNAL__ 1 -#include "mojoshader_profile.h" - -#pragma GCC visibility push(hidden) - -#if SUPPORT_PROFILE_SPIRV -#include "spirv/spirv.h" -#include "spirv/GLSL.std.450.h" -#include - -static const int SPV_NO_SWIZZLE = 0xE4; // 0xE4 == 11100100 ... 0 1 2 3. No swizzle. - -#define EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(op) \ - void emit_SPIRV_##op(Context *ctx) { \ - fail(ctx, #op " unimplemented in spirv profile"); \ - } - -typedef struct SpirvTexm3x3SetupResult -{ - // vec4 load results - uint32 id_dst_pad0; - uint32 id_dst_pad1; - uint32 id_dst; - - // float dot results - uint32 id_res_x; - uint32 id_res_y; - uint32 id_res_z; -} SpirvTexm3x3SetupResult; - -static const char *spv_get_uniform_array_varname(Context *ctx, - const RegisterType regtype, - char *buf, const size_t len) -{ - const char *shadertype = ctx->shader_type_str; - const char *type = ""; - switch (regtype) - { - case REG_TYPE_CONST: type = "vec4"; break; - case REG_TYPE_CONSTINT: type = "ivec4"; break; - case REG_TYPE_CONSTBOOL: type = "bool"; break; - default: fail(ctx, "BUG: used a uniform we don't know how to define."); - } // switch - snprintf(buf, len, "%s_uniforms_%s", shadertype, type); - return buf; -} // spv_get_uniform_array_varname - -static uint32 spv_bumpid(Context *ctx) -{ - return (ctx->spirv.idmax += 1); -} // spv_bumpid - -static RegisterList *spv_getreg(Context *ctx, const RegisterType regtype, const int regnum) -{ - RegisterList *r = reglist_find(&ctx->used_registers, regtype, regnum); - if (!r) - { - failf(ctx, "register not found rt=%d, rn=%d", regtype, regnum); - return NULL; - } // if - return r; -} // spv_getreg - -static void spv_componentlist_free(Context *ctx, ComponentList *cl) -{ - ComponentList *next; - while (cl) - { - next = cl->next; - Free(ctx, cl); - cl = next; - } // while -} // spv_componentlist_free - -static ComponentList *spv_componentlist_alloc(Context *ctx) -{ - ComponentList *ret = (ComponentList *) Malloc(ctx, sizeof(ComponentList)); - if (!ret) return NULL; - ret->id = 0; - ret->v.i = 0; - ret->next = NULL; - return ret; -} // spv_componentlist_alloc - -static const char *get_SPIRV_varname_in_buf(Context *ctx, const RegisterType rt, - const int regnum, char *buf, - const size_t buflen) -{ - // turns out these are identical at the moment. - return get_D3D_varname_in_buf(ctx, rt, regnum, buf, buflen); -} // get_SPIRV_varname_in_buf - -const char *get_SPIRV_varname(Context *ctx, const RegisterType rt, - const int regnum) -{ - // turns out these are identical at the moment. - return get_D3D_varname(ctx, rt, regnum); -} // get_SPIRV_varname - - -static inline const char *get_SPIRV_const_array_varname_in_buf(Context *ctx, - const int base, const int size, - char *buf, const size_t buflen) -{ - snprintf(buf, buflen, "c_array_%d_%d", base, size); - return buf; -} // get_SPIRV_const_array_varname_in_buf - - -const char *get_SPIRV_const_array_varname(Context *ctx, int base, int size) -{ - char buf[64]; - get_SPIRV_const_array_varname_in_buf(ctx, base, size, buf, sizeof (buf)); - return StrDup(ctx, buf); -} // get_SPIRV_const_array_varname - -static uint32 spv_get_uniform_array_id(Context *ctx, const RegisterType regtype) -{ - uint32 id; - switch (regtype) - { - case REG_TYPE_CONST: - id = ctx->spirv.uniform_arrays.idvec4; - if (id == 0) - { - id = spv_bumpid(ctx); - ctx->spirv.uniform_arrays.idvec4 = id; - } // if - break; - - case REG_TYPE_CONSTINT: - id = ctx->spirv.uniform_arrays.idivec4; - if (id == 0) - { - id = spv_bumpid(ctx); - ctx->spirv.uniform_arrays.idivec4 = id; - } // if - break; - - case REG_TYPE_CONSTBOOL: - id = ctx->spirv.uniform_arrays.idbool; - if (id == 0) - { - id = spv_bumpid(ctx); - ctx->spirv.uniform_arrays.idbool = id; - } // if - break; - - default: - fail(ctx, "Unexpected register type used to access uniform array."); - id = 0; - } // switch - - return id; -} // spv_get_uniform_array_id - -static void spv_emit_part_va(Context* ctx, uint32 word_count, uint32 argc, SpvOp op, va_list args) -{ - assert(ctx->output != NULL); - if (isfail(ctx)) - return; // we failed previously, don't go on... - - uint32 word = op | (word_count << 16); - buffer_append(ctx->output, &word, sizeof(word)); - while (--argc) - { - word = va_arg(args, uint32); - buffer_append(ctx->output, &word, sizeof(word)); - } // while -} // spv_emit_part_va - -static void spv_emit_part(Context* ctx, uint32 word_count, uint32 argc, SpvOp op, ...) -{ - va_list args; - va_start(args, op); - spv_emit_part_va(ctx, word_count, argc, op, args); - va_end(args); -} // spv_emit_part - -static void spv_emit(Context *ctx, uint32 word_count, SpvOp op, ...) -{ - va_list args; - va_start(args, op); - spv_emit_part_va(ctx, word_count, word_count, op, args); - va_end(args); -} // spv_emit - -static void spv_emit_word(Context *ctx, uint32 word) -{ - assert(ctx->output != NULL); - if (isfail(ctx)) - return; // we failed previously, don't go on... - - buffer_append(ctx->output, &word, sizeof(word)); -} // spv_emit_word - -static void spv_emit_str(Context *ctx, const char *str) -{ - size_t len; - uint32 trail; - assert(ctx->output != NULL); - if (isfail(ctx)) - return; // we failed previously, don't go on... - - if (str == NULL) - return spv_emit_word(ctx, 0); - len = strlen(str) + 1; - buffer_append(ctx->output, str, len); - len = len % 4; - if (len) - { - trail = 0; - buffer_append(ctx->output, &trail, 4 - len); - } // if -} // spv_emit_str - -// get the word count of a string -static uint32 spv_strlen(const char *str) -{ - size_t len = strlen(str); - return (uint32) ((len / 4) + 1); -} // spv_strlen - -// emits an OpName straight into ctx->globals -static void spv_output_name(Context *ctx, uint32 id, const char *str) -{ - if (isfail(ctx)) - return; // we failed previously, don't go on... - - push_output(ctx, &ctx->globals); - spv_emit_part(ctx, 2 + spv_strlen(str), 2, SpvOpName, id); - spv_emit_str(ctx, str); - pop_output(ctx); -} // spv_output_name - -// emit an OpName instruction to identify a register -static void spv_output_regname(Context *ctx, uint32 id, RegisterType regtype, int regnum) -{ - char varname[64]; - snprintf(varname, sizeof(varname), "%s_", ctx->shader_type_str); - size_t offset = strlen(varname); - get_SPIRV_varname_in_buf(ctx, regtype, regnum, varname + offset, sizeof(varname) - offset); - spv_output_name(ctx, id, varname); -} // spv_output_regname - -// emits an OpDecorate BuiltIn straight into ctx->helpers -static void spv_output_builtin(Context *ctx, uint32 id, SpvBuiltIn builtin) -{ - if (isfail(ctx)) - return; // we failed previously, don't go on... - - push_output(ctx, &ctx->helpers); - spv_emit(ctx, 4, SpvOpDecorate, id, SpvDecorationBuiltIn, builtin); - pop_output(ctx); -} // spv_output_builtin - -static uint32 spv_output_location(Context *ctx, uint32 id, uint32 loc) -{ - push_output(ctx, &ctx->helpers); - spv_emit(ctx, 4, SpvOpDecorate, id, SpvDecorationLocation, loc); - pop_output(ctx); - return (buffer_size(ctx->helpers) >> 2) - 1; -} // spv_output_location - -static void spv_output_color_location(Context *ctx, uint32 id, uint32 index) -{ - SpirvPatchTable* table = &ctx->spirv.patch_table; - push_output(ctx, &ctx->helpers); - spv_emit(ctx, 4, SpvOpDecorate, id, SpvDecorationLocation, index); - pop_output(ctx); - table->output_offsets[index] = (buffer_size(ctx->helpers) >> 2) - 1; -} // spv_output_color_location - -static void spv_output_attrib_location(Context *ctx, uint32 id, - MOJOSHADER_usage usage, uint32 index) -{ - SpirvPatchTable* table = &ctx->spirv.patch_table; - push_output(ctx, &ctx->helpers); - spv_emit(ctx, 4, SpvOpDecorate, id, SpvDecorationLocation, 0xDEADBEEF); - pop_output(ctx); - table->attrib_offsets[usage][index] = (buffer_size(ctx->helpers) >> 2) - 1; -} // spv_output_attrib_location - -static void spv_output_sampler_binding(Context *ctx, uint32 id, uint32 binding) -{ - if (isfail(ctx)) - return; - - uint32 set = 0; - if (ctx->spirv.mode == SPIRV_MODE_VK) - { - set = shader_is_vertex(ctx) ? MOJOSHADER_SPIRV_VS_SAMPLER_SET - : MOJOSHADER_SPIRV_PS_SAMPLER_SET; - } // if - - push_output(ctx, &ctx->helpers); - spv_emit(ctx, 4, SpvOpDecorate, id, SpvDecorationDescriptorSet, set); - spv_emit(ctx, 4, SpvOpDecorate, id, SpvDecorationBinding, binding); - pop_output(ctx); -} // spv_output_sampler_binding - -static SpirvTypeIdx spv_change_base_type_vec_dim(SpirvTypeIdx sti, uint32 dim) -{ - uint32 dimSub1 = dim - 1; - assert(STI_CORE_START_ <= sti && sti < STI_CORE_END_); - assert(dimSub1 < 4); - - SpirvTypeIdx sti_base = (SpirvTypeIdx)(sti & ~0x3); - SpirvTypeIdx sti_new = (SpirvTypeIdx)(sti_base | dimSub1); - return sti_new; -} // spv_change_base_type_vec_dim - -static uint32 spv_get_type(Context *ctx, SpirvTypeIdx tidx) -{ - assert(((uint32)tidx) < ((uint32)STI_LENGTH_)); - - uint32 tid = ctx->spirv.tid[tidx]; - if (tid) - return tid; - - push_output(ctx, &ctx->mainline_intro); - if (STI_CORE_START_ <= tidx && tidx < STI_CORE_END_) - { - uint32 dim = tidx & 0x3; - SpirvType type = (SpirvType)((tidx >> 2) & 0x3); - if (dim) - { - uint32 tid_base = spv_get_type(ctx, (SpirvTypeIdx)(tidx - dim)); - tid = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypeVector, tid, tid_base, dim + 1); - } // if - else - { - tid = spv_bumpid(ctx); - switch (type) - { - case ST_FLOAT: spv_emit(ctx, 3, SpvOpTypeFloat, tid, 32); break; - case ST_SINT: spv_emit(ctx, 4, SpvOpTypeInt, tid, 32, 1); break; - case ST_UINT: spv_emit(ctx, 4, SpvOpTypeInt, tid, 32, 0); break; - case ST_BOOL: spv_emit(ctx, 2, SpvOpTypeBool, tid); break; - default: assert(!"Unexpected value of SpirvType."); break; - } // switch - } // else - } // if - else if (STI_IMAGE2D <= tidx && tidx <= STI_IMAGECUBE) - { - static const SpvDim dim_table[] = {SpvDim2D, SpvDim3D, SpvDimCube}; - SpvDim dim = dim_table[tidx - STI_IMAGE2D]; - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 id_image = spv_bumpid(ctx); - tid = spv_bumpid(ctx); - spv_emit(ctx, 9, SpvOpTypeImage, id_image, tid_float, dim, 0, 0, 0, 1, SpvImageFormatUnknown); - spv_emit(ctx, 3, SpvOpTypeSampledImage, tid, id_image); - } // else if - else if (tidx == STI_VOID) - { - tid = spv_bumpid(ctx); - spv_emit(ctx, 2, SpvOpTypeVoid, tid); - } // else if - else if (tidx == STI_FUNC_VOID) - { - uint32 tid_void = spv_get_type(ctx, STI_VOID); - tid = spv_bumpid(ctx); - spv_emit(ctx, 3, SpvOpTypeFunction, tid, tid_void); - } // else if - else if (tidx == STI_FUNC_LIT) - { - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - tid = spv_bumpid(ctx); - spv_emit(ctx, 3 + 1, SpvOpTypeFunction, tid, tid_vec4, tid_vec4); - } // else if - else if (STI_PTR_START_ <= tidx && tidx < STI_PTR_END_) - { - uint32 dim = (tidx & (1 << 4)) ? 3 : 0; - SpirvType type = (SpirvType)((tidx >> 2) & 0x3); - uint32 tid_base = spv_get_type(ctx, (SpirvTypeIdx)((1 << 4) | (type << 2) | dim)); - static const SpvStorageClass sc_map[] = { - SpvStorageClassInput, - SpvStorageClassInput, - SpvStorageClassOutput, - SpvStorageClassOutput, - SpvStorageClassPrivate, - SpvStorageClassPrivate, - SpvStorageClassUniformConstant, - SpvStorageClassUniform, - }; - SpvStorageClass sc = sc_map[((tidx & 0x3) << 1) | (ctx->spirv.mode == SPIRV_MODE_VK)]; - tid = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypePointer, tid, sc, tid_base); - } // else if - else if (STI_PTR_IMAGE2D <= tidx && tidx <= STI_PTR_IMAGECUBE) - { - uint32 tid_image = spv_get_type(ctx, (SpirvTypeIdx)(tidx - (STI_PTR_IMAGE2D - STI_IMAGE2D))); - tid = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypePointer, tid, SpvStorageClassUniformConstant, tid_image); - } // else if - else if (tidx == STI_PTR_VEC2_I) - { - uint32 tid_base = spv_get_type(ctx, STI_VEC2); - tid = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypePointer, tid, SpvStorageClassInput, tid_base); - } // else if - else - assert(!"Unexpected value of type index."); - pop_output(ctx); - - ctx->spirv.tid[tidx] = tid; - return tid; -} // spv_get_type - -static uint32 spv_gettrue(Context *ctx) -{ - if (ctx->spirv.idtrue) - return ctx->spirv.idtrue; - - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 3, SpvOpConstantTrue, tid_bool, id); - pop_output(ctx); - return ctx->spirv.idtrue = id; -} // spv_gettrue - -static uint32 spv_getfalse(Context *ctx) -{ - if (ctx->spirv.idfalse) - return ctx->spirv.idfalse; - - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 3, SpvOpConstantFalse, tid_bool, id); - pop_output(ctx); - return ctx->spirv.idfalse = id; -} // spv_getfalse - -static uint32 spv_getext(Context *ctx) -{ - if (ctx->spirv.idext) - return ctx->spirv.idext; - - return ctx->spirv.idext = spv_bumpid(ctx); -} // spv_getext - -static uint32 spv_output_scalar(Context *ctx, ComponentList *cl, - MOJOSHADER_attributeType type) -{ - uint32 idret, idtype; - if (type == MOJOSHADER_ATTRIBUTE_FLOAT) - idtype = spv_get_type(ctx, STI_FLOAT); - else if (type == MOJOSHADER_ATTRIBUTE_INT) - idtype = spv_get_type(ctx, STI_INT); - else if (type == MOJOSHADER_ATTRIBUTE_UINT) - idtype = spv_get_type(ctx, STI_UINT); - else - { - failf(ctx, "spv_output_scalar: invalid attribute type %d", type); - return 0; - } // else - idret = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpConstant, idtype, idret, cl->v.u); - pop_output(ctx); - return idret; -} // spv_output_scalar - -// The spv_getscalar* functions retrieve the result id of an OpConstant -// instruction with the corresponding value v, or generate a new one. -static uint32 spv_getscalarf(Context *ctx, float v) -{ - ComponentList *prev = &(ctx->spirv.cl.f), *cl = ctx->spirv.cl.f.next; - while (cl) - { - if (v == cl->v.f) - return cl->id; - else if (v < cl->v.f) - break; - prev = cl; - cl = cl->next; - } // while - cl = spv_componentlist_alloc(ctx); - cl->next = prev->next; - prev->next = cl; - cl->v.f = v; - cl->id = spv_output_scalar(ctx, cl, MOJOSHADER_ATTRIBUTE_FLOAT); - return cl->id; -} // spv_getscalarf - -static uint32 spv_getscalari(Context *ctx, int v) -{ - ComponentList *prev = &(ctx->spirv.cl.i), *cl = ctx->spirv.cl.i.next; - while (cl) - { - if (v == cl->v.i) - return cl->id; - else if (v < cl->v.i) - break; - prev = cl; - cl = cl->next; - } // while - cl = spv_componentlist_alloc(ctx); - cl->next = prev->next; - prev->next = cl; - cl->v.i = v; - cl->id = spv_output_scalar(ctx, cl, MOJOSHADER_ATTRIBUTE_INT); - return cl->id; -} // spv_getscalari - -static uint32 spv_get_constant_composite(Context *ctx, uint32 tid, uint32* cache, float scalar) -{ - uint32 i; - - assert(tid != 0); - uint32 dim = - (tid == ctx->spirv.tid[STI_VEC4]) ? 4 : - (tid == ctx->spirv.tid[STI_VEC3]) ? 3 : - (tid == ctx->spirv.tid[STI_VEC2]) ? 2 : 1; - - uint32 id = cache[dim - 1]; - if (id) - return id; - - uint32 sid = spv_getscalarf(ctx, scalar); - if (dim == 1) - { - cache[0] = sid; - return sid; - } // if - - id = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline_intro); - spv_emit_part(ctx, 3 + dim, 3, SpvOpConstantComposite, tid, id); - for (i = 0; i < dim; i++) - spv_emit_word(ctx, sid); - pop_output(ctx); - cache[dim - 1] = id; - return id; -} // spv_get_constant_composite - -static uint32 spv_get_zero(Context *ctx, uint32 tid) -{ - return spv_get_constant_composite(ctx, tid, ctx->spirv.id_0_0, 0.0f); -} // spv_get_zero - -static uint32 spv_get_one(Context *ctx, uint32 tid) -{ - return spv_get_constant_composite(ctx, tid, ctx->spirv.id_1_0, 1.0f); -} // spv_get_one - -static uint32 spv_get_flt_max(Context *ctx, uint32 tid) -{ - return spv_get_constant_composite(ctx, tid, ctx->spirv.id_flt_max, FLT_MAX); -} // spv_get_one - -static uint32 spv_getvec4_zero(Context *ctx) -{ - return spv_get_constant_composite(ctx, spv_get_type(ctx, STI_VEC4), ctx->spirv.id_0_0, 0.0f); -} // spv_getvec4_zero - -static uint32 spv_getvec4_one(Context *ctx) -{ - return spv_get_constant_composite(ctx, spv_get_type(ctx, STI_VEC4), ctx->spirv.id_1_0, 1.0f); -} // spv_getvec4_one - -// Make a 4-channel vector with a value broadcast across all channels. Roughly equivalent to `vec4(value)` in GLSL -static uint32 spv_vectorbroadcast(Context *ctx, uint32 tid, uint32 value) -{ - uint32 result = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, tid, result, value, value, value, value); - pop_output(ctx); - return result; -} // spv_vectorbroadcast - -static void spv_branch_push(Context *ctx, uint32 id_merge, uint32 patch_offset) -{ - assert(((size_t)ctx->branch_labels_stack_index) < STATICARRAYLEN(ctx->branch_labels_stack)); - int pos = ctx->branch_labels_stack_index++; - ctx->branch_labels_stack[pos] = id_merge; - ctx->branch_labels_patch_stack[pos] = patch_offset; -} // spv_branch_push - -static void spv_branch_get(Context *ctx, uint32* out_id_merge, uint32* out_patch_offset) -{ - assert(ctx->branch_labels_stack_index > 0); - int pos = ctx->branch_labels_stack_index - 1; - *out_id_merge = ctx->branch_labels_stack[pos]; - *out_patch_offset = ctx->branch_labels_patch_stack[pos]; -} // spv_branch_get - -static void spv_branch_pop(Context *ctx, uint32* out_id_merge, uint32* out_patch_offset) -{ - spv_branch_get(ctx, out_id_merge, out_patch_offset); - ctx->branch_labels_stack_index--; -} // spv_branch_pop - -static void spv_loop_push(Context *ctx, const SpirvLoopInfo *loop) -{ - assert(((size_t)ctx->spirv.loop_stack_idx) < STATICARRAYLEN(ctx->spirv.loop_stack)); - int pos = ctx->spirv.loop_stack_idx++; - ctx->spirv.loop_stack[pos] = *loop; -} // spv_loop_push - -static void spv_loop_get(Context *ctx, SpirvLoopInfo *loop) -{ - assert(ctx->spirv.loop_stack_idx > 0); - int pos = ctx->spirv.loop_stack_idx - 1; - *loop = ctx->spirv.loop_stack[pos]; -} // spv_loop_get - -static void spv_loop_pop(Context *ctx, SpirvLoopInfo *loop) -{ - spv_loop_get(ctx, loop); - ctx->spirv.loop_stack_idx--; -} // spv_loop_pop - -static uint32 spv_loop_get_aL(Context *ctx) -{ - int i; - - // Find the first enclosing loop..endloop. There may be rep..endrep nested inside, so it might - // not be at the top of the stack. - for (i = ctx->spirv.loop_stack_idx - 1; i >= 0; i--) - { - uint32 id_aL = ctx->spirv.loop_stack[i].id_aL; - if (id_aL) - return id_aL; - } // for - - assert(!"Referencing loop counter register aL in code not part of loop..endloop region."); - return 0; -} // spv_loop_get_aL - -static SpvOp spv_get_comparison(Context *ctx) -{ - static const SpvOp spv_cmp_ops[] = { - SpvOpUndef, - SpvOpFOrdGreaterThan, - SpvOpFOrdEqual, - SpvOpFOrdGreaterThanEqual, - SpvOpFOrdLessThan, - SpvOpFOrdNotEqual, - SpvOpFOrdLessThanEqual, - }; - - if (ctx->instruction_controls >= STATICARRAYLEN(spv_cmp_ops)) - { - fail(ctx, "unknown comparison control"); - return SpvOpUndef; - } // if - - return spv_cmp_ops[ctx->instruction_controls]; -} // spv_get_comparison - -static void spv_check_read_reg_id(Context *ctx, RegisterList *r) -{ - if (r->spirv.iddecl == 0) - { - assert(r->regtype != REG_TYPE_SAMPLER || (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 1, 4))); - assert(r->regtype != REG_TYPE_TEXTURE || (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 1, 4))); - switch (r->regtype) - { - case REG_TYPE_SAMPLER: // s# (only ps_1_1) - case REG_TYPE_TEXTURE: // t# (only ps_1_1) - case REG_TYPE_INPUT: // v# - case REG_TYPE_TEMP: // r# - case REG_TYPE_CONST: // c# - case REG_TYPE_CONSTINT: // i# - case REG_TYPE_CONSTBOOL: // b# - case REG_TYPE_LABEL: // l# - case REG_TYPE_PREDICATE: // p0 - r->spirv.iddecl = spv_bumpid(ctx); - break; - - case REG_TYPE_LOOP: // aL - r->spirv.iddecl = spv_loop_get_aL(ctx); - break; - - default: - { - char varname[64]; - get_SPIRV_varname_in_buf(ctx, r->regtype, r->regnum, varname, sizeof(varname)); - failf(ctx, "register type %s is unimplemented\n", varname); - break; - } // default - } // switch - } // if -} // spv_check_read_reg_id - -static void spv_check_write_reg_id(Context *ctx, RegisterList *r) -{ - if (r->spirv.iddecl == 0) - { - switch (r->regtype) - { - // These registers require no declarations, so we can just create them as we see them - case REG_TYPE_ADDRESS: - case REG_TYPE_TEMP: - case REG_TYPE_RASTOUT: - case REG_TYPE_COLOROUT: - case REG_TYPE_TEXCRDOUT: - case REG_TYPE_DEPTHOUT: - case REG_TYPE_ATTROUT: - case REG_TYPE_PREDICATE: - r->spirv.iddecl = spv_bumpid(ctx); - break; - - // Other register types should be explicitly declared, so it is an error for them to have iddecl == 0 by now - default: - { - char varname[64]; - get_SPIRV_varname_in_buf(ctx, r->regtype, r->regnum, varname, sizeof(varname)); - failf(ctx, "tried to write to undeclared register %s\n", varname); - break; - } // default - } // switch - } // if -} // spv_check_write_reg_id - -static uint32 spv_ptrimage_from_texturetype(Context *ctx, TextureType ttype) -{ - switch (ttype) - { - case TEXTURE_TYPE_2D: - return spv_get_type(ctx, STI_PTR_IMAGE2D); - case TEXTURE_TYPE_CUBE: - return spv_get_type(ctx, STI_PTR_IMAGECUBE); - case TEXTURE_TYPE_VOLUME: - return spv_get_type(ctx, STI_PTR_IMAGE3D); - default: - fail(ctx, "BUG: used a sampler we don't know how to define."); - return 0; - } // switch -} // spv_ptrimage_from_texturetype - -static uint32 spv_image_from_texturetype(Context *ctx, TextureType ttype) -{ - switch (ttype) - { - case TEXTURE_TYPE_2D: - return spv_get_type(ctx, STI_IMAGE2D); - case TEXTURE_TYPE_CUBE: - return spv_get_type(ctx, STI_IMAGECUBE); - case TEXTURE_TYPE_VOLUME: - return spv_get_type(ctx, STI_IMAGE3D); - default: - fail(ctx, "BUG: used a sampler we don't know how to define."); - return 0; - } // switch -} // spv_ptrimage_from_texturetype - -static uint32 spv_access_uniform(Context *ctx, SpirvTypeIdx sti_ptr, RegisterType regtype, uint32 id_offset) -{ - uint32 tid_ptr = spv_get_type(ctx, sti_ptr); - uint32 id_arr = spv_get_uniform_array_id(ctx, regtype); - uint32 id_access = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); - if (ctx->spirv.mode == SPIRV_MODE_VK) - { - uint32 id_uniform_block = ctx->spirv.id_uniform_block; - if (id_uniform_block == 0) - { - id_uniform_block = spv_bumpid(ctx); - ctx->spirv.id_uniform_block = id_uniform_block; - } // if - spv_emit(ctx, 4+2, SpvOpAccessChain, tid_ptr, id_access, id_uniform_block, id_arr, id_offset); - } // if - else - { - spv_emit(ctx, 4+1, SpvOpAccessChain, tid_ptr, id_access, id_arr, id_offset); - } // else - pop_output(ctx); - return id_access; -} // spv_access_uniform - -static SpirvResult spv_loadreg(Context *ctx, RegisterList *r) -{ - const RegisterType regtype = r->regtype; - - spv_check_read_reg_id(ctx, r); - - uint32 id_src = r->spirv.iddecl; - SpirvResult result; - if (regtype == REG_TYPE_SAMPLER) - { - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, r->regnum); - result.tid = spv_image_from_texturetype(ctx, (TextureType)sreg->index); - } // if - else if (regtype == REG_TYPE_CONSTBOOL) - { - if (!r->spirv.is_ssa) - id_src = spv_access_uniform(ctx, STI_PTR_INT_U, regtype, r->spirv.iddecl); - - result.tid = spv_get_type(ctx, STI_INT); - } // else if - else if (regtype == REG_TYPE_CONSTINT) - { - if (!r->spirv.is_ssa) - id_src = spv_access_uniform(ctx, STI_PTR_IVEC4_U, regtype, r->spirv.iddecl); - - result.tid = spv_get_type(ctx, STI_IVEC4); - } // else if - else if (regtype == REG_TYPE_CONST) - { - if (!r->spirv.is_ssa) - id_src = spv_access_uniform(ctx, STI_PTR_VEC4_U, regtype, r->spirv.iddecl); - - result.tid = spv_get_type(ctx, STI_VEC4); - } // else if - else if (regtype == REG_TYPE_LOOP) - result.tid = spv_get_type(ctx, STI_INT); - else if (regtype == REG_TYPE_PREDICATE) - result.tid = spv_get_type(ctx, STI_BVEC4); - else - result.tid = spv_get_type(ctx, STI_VEC4); - - // Constants can be used directly, no need to load them. - assert(r->spirv.is_ssa == 0 || r->spirv.is_ssa == 1); - if (r->spirv.is_ssa) - { - result.id = r->spirv.iddecl; - return result; - } // if - - assert(id_src); - result.id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 4, SpvOpLoad, result.tid, result.id, id_src); - pop_output(ctx); - - return result; -} // spv_loadreg - -static uint32 spv_emit_swizzle(Context *ctx, uint32 arg, uint32 rtid, const int swizzle, const int writemask) -{ - uint32 result = spv_bumpid(ctx); - - const int writemask0 = (writemask >> 0) & 0x1; - const int writemask1 = (writemask >> 1) & 0x1; - const int writemask2 = (writemask >> 2) & 0x1; - const int writemask3 = (writemask >> 3) & 0x1; - - const uint32 swizzle_x = (swizzle >> 0) & 0x3; - const uint32 swizzle_y = (swizzle >> 2) & 0x3; - const uint32 swizzle_z = (swizzle >> 4) & 0x3; - const uint32 swizzle_w = (swizzle >> 6) & 0x3; - - push_output(ctx, &ctx->mainline); - // OpVectorShuffle takes two vectors to shuffle, but to do a swizzle - // operation we can just ignore the second argument (meaning it can be - // anything, and I am just making it `arg` for convenience) - uint32 word_count = 5 + writemask0 + writemask1 + writemask2 + writemask3; - spv_emit_part(ctx, word_count, 5, SpvOpVectorShuffle, rtid, result, arg, arg); - if (writemask0) spv_emit_word(ctx, swizzle_x); - if (writemask1) spv_emit_word(ctx, swizzle_y); - if (writemask2) spv_emit_word(ctx, swizzle_z); - if (writemask3) spv_emit_word(ctx, swizzle_w); - pop_output(ctx); - - return result; -} // spv_emit_swizzle - -SpirvResult spv_swizzle(Context *ctx, SpirvResult arg, const int swizzle, const int writemask) -{ - int i; - - // Nothing to do, so return the same SSA value - if (no_swizzle(swizzle) && writemask_xyzw(writemask)) - return arg; - - assert(arg.tid != 0); - assert(writemask == 1 - || writemask == 3 - || writemask == 7 - || writemask == 15 - ); - - SpirvTypeIdx sti_arg = STI_VOID; - for (i = STI_CORE_START_; i < STI_CORE_END_; i++) - { - if (ctx->spirv.tid[i] == arg.tid) - { - sti_arg = (SpirvTypeIdx)i; - break; - } // if - } // for - assert(sti_arg != STI_VOID); - - // We should not leave any value undefined, as it may end up used (eg. dot - // product), which will make everything relying on it's result undefined. - // Therefore, we specifically determine true dimensionality of the result. - int resdim = 0; - switch (writemask) - { - case 1: - resdim = 1; - break; - - case 3: - resdim = 2; - break; - - case 7: - resdim = 3; - break; - - case 15: - resdim = 4; - break; - - default: - failf(ctx, "Unexpected write mask in swizzle: 0x%X"); - assert(0); - break; - } // switch - - SpirvTypeIdx sti_result = spv_change_base_type_vec_dim(sti_arg, resdim); - - SpirvResult result = {0}; - result.id = (resdim != 1 || sti_arg != sti_result) ? spv_bumpid(ctx) : arg.id; - result.tid = spv_get_type(ctx, sti_result); - assert(result.tid != 0); - - push_output(ctx, &ctx->mainline); - if (resdim != 1) - { - // OpVectorShuffle takes two vectors to shuffle, but to do a swizzle - // operation we can just ignore the second argument (meaning it can be - // anything, and I am just making it `arg` for convenience) - spv_emit_part(ctx, 5 + resdim, 5, SpvOpVectorShuffle, result.tid, result.id, arg.id, arg.id); - - for (i = 0; i < resdim; i++) - spv_emit_word(ctx, (swizzle >> (2*i)) & 0x3); - } // if - else if (sti_arg != sti_result) - { - // OpVectorShuffle may not produce a scalar. Instead we use OpCompositeExtract. - spv_emit(ctx, 5, SpvOpCompositeExtract, result.tid, result.id, arg.id, swizzle & 0x3); - } // else if - - pop_output(ctx); - - return result; -} // make_GLSL_swizzle_string - -static SpirvResult spv_load_srcarg(Context *ctx, const size_t idx, const int writemask) -{ - SpirvResult result = {0}; - if (idx >= STATICARRAYLEN(ctx->source_args)) - { - fail(ctx, "Too many source args"); - return result; - } // if - - const SourceArgInfo *arg = &ctx->source_args[idx]; - - RegisterList *reg = spv_getreg(ctx, arg->regtype, arg->regnum); - - if (arg->relative) - { - if (arg->regtype == REG_TYPE_INPUT) - fail(ctx, "relative input array access is unimplemented"); - else - { - assert(arg->regtype == REG_TYPE_CONST); - const int arrayidx = arg->relative_array->index; - const int offset = arg->regnum - arrayidx; - assert(offset >= 0); - - int is_constant = (arg->relative_array->constant != NULL); - uint32 id_array = 0; - if (is_constant) - { - id_array = ctx->spirv.constant_arrays.idvec4; - if (id_array == 0) - { - id_array = spv_bumpid(ctx); - ctx->spirv.constant_arrays.idvec4 = id_array; - } // if - } // if - - RegisterList *reg_rel = spv_getreg(ctx, arg->relative_regtype, arg->relative_regnum); - - spv_check_read_reg_id(ctx, reg_rel); - spv_check_read_reg_id(ctx, reg); - - uint32 id_int = spv_get_type(ctx, STI_INT); - uint32 id_offset; - if (reg_rel->regtype == REG_TYPE_LOOP) - id_offset = reg_rel->spirv.iddecl; - else - { - uint32 id_pint = spv_get_type(ctx, STI_PTR_INT_P); - uint32 id_compidx = spv_getscalari(ctx, arg->relative_component); - uint32 id_pcomp = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpAccessChain, id_pint, id_pcomp, reg_rel->spirv.iddecl, id_compidx); - - id_offset = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpLoad, id_int, id_offset, id_pcomp); - } // else - - if (!is_constant) - { - uint32 id_arraybase = reg->spirv.iddecl; - uint32 id_a = id_offset; - uint32 id_b = id_arraybase; - id_offset = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpIAdd, id_int, id_offset, id_a, id_b); - } // if - - if (offset) - { - uint32 id_a = id_offset; - uint32 id_b = spv_getscalari(ctx, offset); - id_offset = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpIAdd, id_int, id_offset, id_a, id_b); - } // if - - uint32 id_pvalue; - if (is_constant) - { - uint32 id_pvec4 = spv_get_type(ctx, STI_PTR_VEC4_P); - id_pvalue = spv_bumpid(ctx); - spv_emit(ctx, 4+1, SpvOpAccessChain, id_pvec4, id_pvalue, id_array, id_offset); - } // if - else - { - id_pvalue = spv_access_uniform(ctx, STI_PTR_VEC4_U, arg->regtype, id_offset); - } // else - - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpLoad, result.tid, result.id, id_pvalue); - } // else - } // if - else - result = spv_loadreg(ctx, reg); - - result = spv_swizzle(ctx, result, arg->swizzle, writemask); - - switch (arg->src_mod) - { - case SRCMOD_NEGATE: - { - uint32 id_neg = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpFNegate, result.tid, id_neg, result.id); - result.id = id_neg; - break; - } // case - - case SRCMOD_BIASNEGATE: - { - uint32 id_half = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_0_5, 0.5f); - uint32 id_tmp = spv_bumpid(ctx); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFSub, result.tid, id_tmp, result.id, id_half); - spv_emit(ctx, 4, SpvOpFNegate, result.tid, id_new, id_tmp); - result.id = id_new; - break; - } // case - - case SRCMOD_BIAS: - { - uint32 id_half = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_0_5, 0.5f); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFSub, result.tid, id_new, result.id, id_half); - result.id = id_new; - break; - } // case - - case SRCMOD_SIGNNEGATE: - { - uint32 id_half = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_0_5, 0.5f); - uint32 id_two = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_2_0, 2.0f); - uint32 id_tmp0 = spv_bumpid(ctx); - uint32 id_tmp1 = spv_bumpid(ctx); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFSub, result.tid, id_tmp0, result.id, id_half); - spv_emit(ctx, 5, SpvOpFMul, result.tid, id_tmp1, id_tmp0, id_two); - spv_emit(ctx, 4, SpvOpFNegate, result.tid, id_new, id_tmp1); - result.id = id_new; - break; - } // case - - case SRCMOD_SIGN: - { - uint32 id_half = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_0_5, 0.5f); - uint32 id_two = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_2_0, 2.0f); - uint32 id_tmp = spv_bumpid(ctx); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFSub, result.tid, id_tmp, result.id, id_half); - spv_emit(ctx, 5, SpvOpFMul, result.tid, id_new, id_tmp, id_two); - result.id = id_new; - break; - } // case - - case SRCMOD_COMPLEMENT: - { - uint32 id_one = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_1_0, 1.0f); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFSub, result.tid, id_new, id_one, result.id); - result.id = id_new; - break; - } // case - - case SRCMOD_X2NEGATE: - { - uint32 id_two = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_2_0, 2.0f); - uint32 id_tmp = spv_bumpid(ctx); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFMul, result.tid, id_tmp, result.id, id_two); - spv_emit(ctx, 4, SpvOpFNegate, result.tid, id_new, id_tmp); - result.id = id_new; - break; - } // case - - case SRCMOD_X2: - { - uint32 id_two = spv_get_constant_composite(ctx, result.tid, ctx->spirv.id_2_0, 2.0f); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFMul, result.tid, id_new, result.id, id_two); - result.id = id_new; - break; - } // case - - // case SRCMOD_DZ: - // fail(ctx, "SRCMOD_DZ unsupported"); return buf; // !!! FIXME - // postmod_str = "_dz"; - // break; - - // case SRCMOD_DW: - // fail(ctx, "SRCMOD_DW unsupported"); return buf; // !!! FIXME - // postmod_str = "_dw"; - // break; - - case SRCMOD_ABSNEGATE: - { - uint32 id_abs = spv_bumpid(ctx); - uint32 id_neg = spv_bumpid(ctx); - spv_emit(ctx, 5 + 1, SpvOpExtInst, result.tid, id_abs, spv_getext(ctx), GLSLstd450FAbs, result.id); - spv_emit(ctx, 4, SpvOpFNegate, result.tid, id_neg, id_abs); - result.id = id_neg; - break; - } // case - - case SRCMOD_ABS: - { - uint32 id_abs = spv_bumpid(ctx); - spv_emit(ctx, 5 + 1, SpvOpExtInst, result.tid, id_abs, spv_getext(ctx), GLSLstd450FAbs, result.id); - result.id = id_abs; - break; - } // case - - case SRCMOD_NOT: - { - // We can't do OpLogicalNot on ints, so do (x ^ 1) instead - uint32 id_one = spv_getscalari(ctx, 1); - uint32 id_not = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpBitwiseXor, result.tid, id_not, result.id, id_one); - result.id = id_not; - break; - } // case - - case SRCMOD_NONE: - case SRCMOD_TOTAL: - break; // stop compiler whining. - - default: - failf(ctx, "unsupported source modifier %d", arg->src_mod); - return result; - } // switch - - return result; -} // spv_load_srcarg - -static inline SpirvResult spv_load_srcarg_full(Context *ctx, const size_t idx) -{ - return spv_load_srcarg(ctx, idx, 0xF); -} // spv_load_srcarg_full - -static void spv_assign_destarg(Context *ctx, SpirvResult value) -{ - const DestArgInfo *arg = &ctx->dest_arg; - RegisterList *reg = spv_getreg(ctx, arg->regtype, arg->regnum); - - spv_check_write_reg_id(ctx, reg); - - if (arg->writemask == 0) - { - // Return without updating the reg->spirv.iddecl (all-zero writemask = no-op) - return; - } // if - - if (arg->result_mod & MOD_SATURATE) - { - uint32 new_value = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5 + 3, SpvOpExtInst, - value.tid, new_value, spv_getext(ctx), GLSLstd450FClamp, - value.id, spv_get_zero(ctx, value.tid), spv_get_one(ctx, value.tid) - ); - pop_output(ctx); - value.id = new_value; - } // if - - // MSDN says MOD_PP is a hint and many implementations ignore it. So do we. - - // CENTROID only allowed in DCL opcodes, which shouldn't come through here. - assert((arg->result_mod & MOD_CENTROID) == 0); - - if (ctx->predicated) - { - fail(ctx, "predicated destinations unsupported"); // !!! FIXME - return; - } // if - - if (arg->result_shift) - { - float factor = 1.0f; - uint32* cache = ctx->spirv.id_1_0; - switch (arg->result_shift) - { - case 0x1: factor = 2.0f; cache = ctx->spirv.id_2_0; break; - case 0x2: factor = 4.0f; cache = ctx->spirv.id_4_0; break; - case 0x3: factor = 8.0f; cache = ctx->spirv.id_8_0; break; - case 0xD: factor = 0.125f; cache = ctx->spirv.id_0_125; break; - case 0xE: factor = 0.25f; cache = ctx->spirv.id_0_25; break; - case 0xF: factor = 0.5f; cache = ctx->spirv.id_0_5; break; - default: - failf(ctx, "unexpected result shift %d", arg->result_shift); - } // switch - - uint32 id_factor = spv_get_constant_composite(ctx, value.tid, cache, factor); - push_output(ctx, &ctx->mainline); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFMul, value.tid, id_new, value.id, id_factor); - pop_output(ctx); - value.id = id_new; - } // if - - if (reg->regtype == REG_TYPE_DEPTHOUT - || isscalar(ctx, ctx->shader_type, arg->regtype, arg->regnum)) - { - assert(arg->writemask == 0x1); - SpirvTypeIdx sti_reg = STI_FLOAT; - uint32 rtid = spv_get_type(ctx, sti_reg); - uint32 new_value = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpCompositeExtract, rtid, new_value, value.id, 0); - pop_output(ctx); - value.tid = rtid; - value.id = new_value; - } // if - else if (!writemask_xyzw(arg->writemask)) - { - SpirvTypeIdx sti_reg; - switch (reg->regtype) - { - case REG_TYPE_ADDRESS: sti_reg = STI_IVEC4; break; - case REG_TYPE_PREDICATE: sti_reg = STI_BVEC4; break; - default: sti_reg = STI_VEC4; break; - } // switch - - uint32 rtid = spv_get_type(ctx, sti_reg); - uint32 new_value = spv_bumpid(ctx); - uint32 current_value = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - - spv_emit(ctx, 4, SpvOpLoad, rtid, current_value, reg->spirv.iddecl); - - // output id is new_value - // select between current value and new value based on writemask - // in the shuffle, components [0, 3] are the new value, and components - // [4, 7] are the existing value - spv_emit_part(ctx, 5 + 4, 5, SpvOpVectorShuffle, rtid, new_value, value.id, current_value); - if (arg->writemask0) spv_emit_word(ctx, 0); else spv_emit_word(ctx, 4); - if (arg->writemask1) spv_emit_word(ctx, 1); else spv_emit_word(ctx, 5); - if (arg->writemask2) spv_emit_word(ctx, 2); else spv_emit_word(ctx, 6); - if (arg->writemask3) spv_emit_word(ctx, 3); else spv_emit_word(ctx, 7); - - pop_output(ctx); - - value.tid = rtid; - value.id = new_value; - } // if - - switch (reg->regtype) - { - case REG_TYPE_OUTPUT: - case REG_TYPE_ADDRESS: - case REG_TYPE_TEMP: - case REG_TYPE_DEPTHOUT: - case REG_TYPE_COLOROUT: - case REG_TYPE_RASTOUT: - case REG_TYPE_ATTROUT: - case REG_TYPE_PREDICATE: - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 3, SpvOpStore, reg->spirv.iddecl, value.id); - pop_output(ctx); - break; - - default: - { - char varname[64]; - get_SPIRV_varname_in_buf(ctx, reg->regtype, reg->regnum, varname, sizeof(varname)); - failf(ctx, "register %s is unimplemented for storing", varname); - break; - } // default - } // switch -} // spv_assign_destarg - -static void spv_emit_vs_main_end(Context* ctx) -{ -#if SUPPORT_PROFILE_GLSPIRV -#if defined(MOJOSHADER_DEPTH_CLIPPING) || defined(MOJOSHADER_FLIP_RENDERTARGET) - if (!ctx->profile_supports_glspirv || !shader_is_vertex(ctx)) - return; - - uint32 tid_void = spv_get_type(ctx, STI_VOID); - uint32 tid_func = spv_get_type(ctx, STI_FUNC_VOID); - uint32 id_func = ctx->spirv.id_vs_main_end; - uint32 id_label = spv_bumpid(ctx); - assert(id_func != 0); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpFunction, tid_void, id_func, SpvFunctionControlMaskNone, tid_func); - spv_emit(ctx, 2, SpvOpLabel, id_label); - - RegisterList *reg; - for (reg = ctx->used_registers.next; reg != NULL; reg = reg->next) - { - if (reg->usage == MOJOSHADER_USAGE_POSITION && - (reg->regtype == REG_TYPE_RASTOUT || reg->regtype == REG_TYPE_OUTPUT)) - break; - } // for - SpirvResult output = spv_loadreg(ctx, reg); - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 id_new_output; - -#ifdef MOJOSHADER_FLIP_RENDERTARGET - // gl_Position.y = gl_Position.y * vpFlip; - uint32 tid_pvpflip = spv_bumpid(ctx); - uint32 id_old_y = spv_bumpid(ctx); - uint32 id_pvpflip = spv_bumpid(ctx); - uint32 id_vpflip = spv_bumpid(ctx); - uint32 id_new_y = spv_bumpid(ctx); - id_new_output = spv_bumpid(ctx); - - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_old_y, output.id, 1); - spv_emit(ctx, 4, SpvOpLoad, tid_float, id_vpflip, id_pvpflip); - spv_emit(ctx, 5, SpvOpFMul, tid_float, id_new_y, id_old_y, id_vpflip); - spv_emit(ctx, 6, SpvOpCompositeInsert, output.tid, id_new_output, id_new_y, output.id, 1); - output.id = id_new_output; - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpTypePointer, tid_pvpflip, SpvStorageClassUniformConstant, tid_float); - spv_emit(ctx, 4, SpvOpVariable, tid_pvpflip, id_pvpflip, SpvStorageClassUniformConstant); - pop_output(ctx); - - spv_output_name(ctx, id_pvpflip, "vpFlip"); - ctx->spirv.patch_table.vpflip.offset = spv_output_location(ctx, id_pvpflip, ~0u); -#endif // MOJOSHADER_FLIP_RENDERTARGET - -#ifdef MOJOSHADER_DEPTH_CLIPPING - // gl_Position.z = gl_Position.z * 2.0 - gl_Position.w; - uint32 id_2 = spv_getscalarf(ctx, 2.0f); - uint32 id_old_z = spv_bumpid(ctx); - uint32 id_old_w = spv_bumpid(ctx); - uint32 id_2z = spv_bumpid(ctx); - uint32 id_new_z = spv_bumpid(ctx); - id_new_output = spv_bumpid(ctx); - - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_old_z, output.id, 2); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_old_w, output.id, 3); - spv_emit(ctx, 5, SpvOpFMul, tid_float, id_2z, id_old_z, id_2); - spv_emit(ctx, 5, SpvOpFSub, tid_float, id_new_z, id_2z, id_old_w); - spv_emit(ctx, 6, SpvOpCompositeInsert, output.tid, id_new_output, id_new_z, output.id, 2); - output.id = id_new_output; -#endif // MOJOSHADER_DEPTH_CLIPPING - - spv_emit(ctx, 3, SpvOpStore, reg->spirv.iddecl, output.id); - spv_emit(ctx, 1, SpvOpReturn); - spv_emit(ctx, 1, SpvOpFunctionEnd); - pop_output(ctx); - - spv_output_name(ctx, id_func, "vs_epilogue"); -#endif // defined(MOJOSHADER_DEPTH_CLIPPING) || defined(MOJOSHADER_FLIP_RENDERTARGET) -#endif // SUPPORT_PROFILE_GLSPIRV -} // spv_emit_vs_main_end - -static void spv_emit_func_lit(Context *ctx) -{ - if (!ctx->spirv.id_func_lit) - return; - - // vec4 LIT(const vec4 src) - // { - // float retval_y, retval_z; - // if (src.x > 0.0) { - // retval_y = src.x; - // if (src.y > 0.0) { - // float power = clamp(src.w, -127.9961, 127.9961); - // retval_z = pow(src.y, power); - // } else { - // retval_z = 0.0; - // } - // } else { - // retval_y = 0.0; - // retval_z = 0.0; - // } - // vec4 retval = vec4(1.0, retval_y, retval_z, 1.0); - // return retval; - // } - - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - uint32 tid_func = spv_get_type(ctx, STI_FUNC_LIT); - uint32 id_func = ctx->spirv.id_func_lit; - uint32 id_src = spv_bumpid(ctx); - uint32 id_block_start = spv_bumpid(ctx); - uint32 id_src_x = spv_bumpid(ctx); - uint32 id_src_x_pos = spv_bumpid(ctx); - uint32 id_0_0 = spv_get_zero(ctx, tid_float); - uint32 id_branch0_true = spv_bumpid(ctx); - uint32 id_src_y = spv_bumpid(ctx); - uint32 id_src_y_pos = spv_bumpid(ctx); - uint32 id_branch1_true = spv_bumpid(ctx); - uint32 id_src_w = spv_bumpid(ctx); - uint32 id_maxp = spv_getscalarf(ctx, 127.9961f); - uint32 id_maxp_neg = spv_getscalarf(ctx, -127.9961f); - uint32 id_power = spv_bumpid(ctx); - uint32 id_pow_result = spv_bumpid(ctx); - uint32 id_branch1_merge = spv_bumpid(ctx); - uint32 id_branch1_result = spv_bumpid(ctx); - uint32 id_branch0_merge = spv_bumpid(ctx); - uint32 id_result_y = spv_bumpid(ctx); - uint32 id_result_z = spv_bumpid(ctx); - uint32 id_1_0 = spv_get_one(ctx, tid_float); - uint32 id_result = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpFunction, tid_vec4, id_func, SpvFunctionControlMaskNone, tid_func); - spv_emit(ctx, 3, SpvOpFunctionParameter, tid_vec4, id_src); - - // id_block_start - spv_emit(ctx, 2, SpvOpLabel, id_block_start); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_src_x, id_src, 0); - spv_emit(ctx, 5, SpvOpFOrdGreaterThan, tid_bool, id_src_x_pos, id_src_x, id_0_0); - spv_emit(ctx, 3, SpvOpSelectionMerge, id_branch0_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, id_src_x_pos, id_branch0_true, id_branch0_merge); - - // id_branch0_true - spv_emit(ctx, 2, SpvOpLabel, id_branch0_true); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_src_y, id_src, 1); - spv_emit(ctx, 5, SpvOpFOrdGreaterThan, tid_bool, id_src_y_pos, id_src_y, id_0_0); - spv_emit(ctx, 3, SpvOpSelectionMerge, id_branch1_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, id_src_y_pos, id_branch1_true, id_branch1_merge); - - // id_branch1_true - spv_emit(ctx, 2, SpvOpLabel, id_branch1_true); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_src_w, id_src, 3); - spv_emit(ctx, 5 + 3, SpvOpExtInst, - tid_float, id_power, spv_getext(ctx), GLSLstd450FClamp, id_src_w, id_maxp_neg, id_maxp - ); - spv_emit(ctx, 5 + 2, SpvOpExtInst, - tid_float, id_pow_result, spv_getext(ctx), GLSLstd450Pow, id_src_y, id_power - ); - spv_emit(ctx, 2, SpvOpBranch, id_branch1_merge); - - // id_branch1_merge - spv_emit(ctx, 2, SpvOpLabel, id_branch1_merge); - spv_emit(ctx, 7, SpvOpPhi, tid_float, id_branch1_result, - id_pow_result, id_branch1_true, - id_0_0, id_branch0_true - ); - spv_emit(ctx, 2, SpvOpBranch, id_branch0_merge); - - // id_branch0_merge - spv_emit(ctx, 2, SpvOpLabel, id_branch0_merge); - spv_emit(ctx, 7, SpvOpPhi, tid_float, id_result_y, - id_src_x, id_branch1_merge, - id_0_0, id_block_start - ); - spv_emit(ctx, 7, SpvOpPhi, tid_float, id_result_z, - id_branch1_result, id_branch1_merge, - id_0_0, id_block_start - ); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, tid_vec4, id_result, - id_1_0, id_result_y, id_result_z, id_1_0 - ); - spv_emit(ctx, 2, SpvOpReturnValue, id_result); - spv_emit(ctx, 1, SpvOpFunctionEnd); - - pop_output(ctx); - - spv_output_name(ctx, ctx->spirv.id_func_lit, "LIT"); -} // spv_emit_func_lit - -static void spv_emit_func_end(Context *ctx) -{ - push_output(ctx, &ctx->mainline); - -#if SUPPORT_PROFILE_GLSPIRV -#if defined(MOJOSHADER_DEPTH_CLIPPING) || defined(MOJOSHADER_FLIP_RENDERTARGET) - if (ctx->profile_supports_glspirv - && shader_is_vertex(ctx) - && ctx->spirv.id_vs_main_end == 0) - { - ctx->spirv.id_vs_main_end = spv_bumpid(ctx); - uint32 tid_void = spv_get_type(ctx, STI_VOID); - uint32 id_res = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 4, SpvOpFunctionCall, tid_void, id_res, ctx->spirv.id_vs_main_end); - pop_output(ctx); - } // if -#endif // defined(MOJOSHADER_DEPTH_CLIPPING) || defined(MOJOSHADER_FLIP_RENDERTARGET) -#endif // SUPPORT_PROFILE_GLSPIRV - - spv_emit(ctx, 1, SpvOpReturn); - spv_emit(ctx, 1, SpvOpFunctionEnd); - pop_output(ctx); -} // spv_emit_func_end - -static void spv_emit_vpos_glmode(Context *ctx, uint32 id) -{ - // In SM3.0 vPos only has x and y defined, but we should be - // fine to leave the z and w attributes in that - // SpvBuiltInFragCoord gives. - - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 tid_vec2 = spv_get_type(ctx, STI_VEC2); - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - uint32 tid_pvec4i = spv_get_type(ctx, STI_PTR_VEC4_I); - uint32 tid_pvec2u = spv_bumpid(ctx); - uint32 tid_pvec4p = spv_get_type(ctx, STI_PTR_VEC4_P); - - uint32 id_var_fragcoord = spv_bumpid(ctx); - uint32 id_var_vposflip = spv_bumpid(ctx); - uint32 id_var_vpos = id; - - uint32 id_fragcoord = spv_bumpid(ctx); - uint32 id_fragcoord_y = spv_bumpid(ctx); - uint32 id_vposflip = spv_bumpid(ctx); - uint32 id_vposflip_x = spv_bumpid(ctx); - uint32 id_vposflip_y = spv_bumpid(ctx); - uint32 id_tmp = spv_bumpid(ctx); - uint32 id_vpos_y = spv_bumpid(ctx); - uint32 id_vpos = spv_bumpid(ctx); - - // vec4 gl_FragCoord = ; - // uniform vec2 vposFlip; - // vec4 ps_vPos = vec4( - // gl_FragCoord.x, - // (gl_FragCoord.y * vposFlip.x) + vposFlip.y, - // gl_FragCoord.z, - // gl_FragCoord.w - // ); - - push_output(ctx, &ctx->mainline_intro); - // Define uniform vec2*. This is the only place that uses it right now. - spv_emit(ctx, 4, SpvOpTypePointer, tid_pvec2u, SpvStorageClassUniformConstant, tid_vec2); - // Define all variables involved. - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4i, id_var_fragcoord, SpvStorageClassInput); - spv_emit(ctx, 4, SpvOpVariable, tid_pvec2u, id_var_vposflip, SpvStorageClassUniformConstant); - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4p, id_var_vpos, SpvStorageClassPrivate); - pop_output(ctx); - - spv_output_builtin(ctx, id_var_fragcoord, SpvBuiltInFragCoord); - spv_output_name(ctx, id_var_vposflip, "vposFlip"); - - // Initialize vPos using vPosFlip and built in FragCoord. - push_output(ctx, &ctx->mainline_top); - spv_emit(ctx, 4, SpvOpLoad, tid_vec4, id_fragcoord, id_var_fragcoord); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_fragcoord_y, id_fragcoord, 1); - spv_emit(ctx, 4, SpvOpLoad, tid_vec2, id_vposflip, id_var_vposflip); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_vposflip_x, id_vposflip, 0); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_vposflip_y, id_vposflip, 1); - spv_emit(ctx, 5, SpvOpFMul, tid_float, id_tmp, id_fragcoord_y, id_vposflip_x); - spv_emit(ctx, 5, SpvOpFAdd, tid_float, id_vpos_y, id_tmp, id_vposflip_y); - spv_emit(ctx, 6, SpvOpCompositeInsert, tid_vec4, id_vpos, id_vpos_y, id_fragcoord, 1); - spv_emit(ctx, 3, SpvOpStore, id_var_vpos, id_vpos); - pop_output(ctx); - - ctx->spirv.id_var_fragcoord = id_var_fragcoord; - ctx->spirv.id_var_vpos = id_var_vpos; - ctx->spirv.patch_table.vpflip.offset = spv_output_location(ctx, id_var_vposflip, ~0u); -} // spv_emit_vpos_glmode - -static void spv_emit_vpos_vkmode(Context *ctx, uint32 id) -{ - // In SM3.0 vPos only has x and y defined, but we should be - // fine to leave the z and w attributes in that - // SpvBuiltInFragCoord gives. - - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - uint32 tid_pvec4i = spv_get_type(ctx, STI_PTR_VEC4_I); - uint32 tid_pvec4p = spv_get_type(ctx, STI_PTR_VEC4_P); - - uint32 id_var_fragcoord = spv_bumpid(ctx); - uint32 id_var_vpos = id; - - uint32 id_fragcoord = spv_bumpid(ctx); - uint32 id_vpos = spv_bumpid(ctx); - - // vec4 gl_FragCoord = ; - // vec4 ps_vPos = gl_FragCoord; - - push_output(ctx, &ctx->mainline_intro); - // Define all variables involved. - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4i, id_var_fragcoord, SpvStorageClassInput); - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4p, id_var_vpos, SpvStorageClassPrivate); - pop_output(ctx); - - spv_output_builtin(ctx, id_var_fragcoord, SpvBuiltInFragCoord); - - // Initialize vPos using built in FragCoord. - push_output(ctx, &ctx->mainline_top); - spv_emit(ctx, 4, SpvOpLoad, tid_vec4, id_fragcoord, id_var_fragcoord); - spv_emit(ctx, 3, SpvOpStore, id_var_vpos, id_fragcoord); - pop_output(ctx); - - ctx->spirv.id_var_fragcoord = id_var_fragcoord; - ctx->spirv.id_var_vpos = id_var_vpos; -} // spv_emit_vpos_vkmode - -static void spv_link_vs_attributes(Context *ctx, uint32 id, - MOJOSHADER_usage usage, int index) -{ - if (usage == MOJOSHADER_USAGE_POSITION && index == 0) - spv_output_builtin(ctx, id, SpvBuiltInPosition); - else if (usage == MOJOSHADER_USAGE_POINTSIZE && index == 0) - { - spv_output_builtin(ctx, id, SpvBuiltInPointSize); - ctx->spirv.patch_table.attrib_offsets[usage][index] = 1; - } // else if - else - spv_output_attrib_location(ctx, id, usage, index); -} // spv_link_vs_attributes - -static void spv_link_ps_attributes(Context *ctx, uint32 id, RegisterType regtype, - MOJOSHADER_usage usage, int index) -{ - switch (regtype) - { - case REG_TYPE_COLOROUT: - // Per KHR_glsl_shader: - // The fragment-stage built-in gl_FragColor, which implies a broadcast to all - // outputs, is not present in SPIR-V. Shaders where writing to gl_FragColor - // is allowed can still write to it, but it only means to write to an output: - // - of the same type as gl_FragColor - // - decorated with location 0 - // - not decorated as a built-in variable. - // There is no implicit broadcast. - spv_output_color_location(ctx, id, index); - break; - case REG_TYPE_INPUT: // v# (MOJOSHADER_USAGE_COLOR aka `oC#` in vertex shader) - spv_output_attrib_location(ctx, id, usage, index); - break; - case REG_TYPE_TEXTURE: // t# (MOJOSHADER_USAGE_TEXCOORD aka `oT#` in vertex shader) - spv_output_attrib_location(ctx, id, MOJOSHADER_USAGE_TEXCOORD, index); - break; - case REG_TYPE_DEPTHOUT: - spv_output_builtin(ctx, id, SpvBuiltInFragDepth); - ctx->spirv.hasdepth = 1; - break; - case REG_TYPE_MISCTYPE: - // inputs - switch ((MiscTypeType)index) - { - case MISCTYPE_TYPE_POSITION: // vPos - { - if (ctx->spirv.mode == SPIRV_MODE_GL) - spv_emit_vpos_glmode(ctx, id); - else - spv_emit_vpos_vkmode(ctx, id); - break; - } // case - - case MISCTYPE_TYPE_FACE: // vFace - { - // The much more wordy equivalent of: - // bool gl_FrontFacing = ; - // vec4 vFace; - // vFace = vec4(gl_FrontFacing ? 1.0 : 0.0); - - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - uint32 tid_pbooli = spv_get_type(ctx, STI_PTR_BOOL_I); - uint32 tid_pvec4p = spv_get_type(ctx, STI_PTR_VEC4_P); - - uint32 id_1_0 = spv_getscalarf(ctx, 1.0f); - uint32 id_0_0 = spv_getscalarf(ctx, 0.0f); - - uint32 id_var_frontfacing = spv_bumpid(ctx); - uint32 id_var_vface = id; - - uint32 id_frontfacing = spv_bumpid(ctx); - uint32 id_tmp = spv_bumpid(ctx); - uint32 id_vface = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpVariable, tid_pbooli, id_var_frontfacing, SpvStorageClassInput); - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4p, id_var_vface, SpvStorageClassPrivate); - pop_output(ctx); - - spv_output_builtin(ctx, id_var_frontfacing, SpvBuiltInFrontFacing); - - push_output(ctx, &ctx->mainline_top); - spv_emit(ctx, 4, SpvOpLoad, tid_bool, id_frontfacing, id_var_frontfacing); - spv_emit(ctx, 6, SpvOpSelect, tid_float, id_tmp, id_frontfacing, id_1_0, id_0_0); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, tid_vec4, id_vface, id_tmp, id_tmp, id_tmp, id_tmp); - spv_emit(ctx, 3, SpvOpStore, id_var_vface, id_vface); - pop_output(ctx); - - ctx->spirv.id_var_frontfacing = id_var_frontfacing; - ctx->spirv.id_var_vface = id_var_vface; - break; - } // case - } // switch - break; - default: - fail(ctx, "unknown pixel shader attribute register"); - } // switch -} // spv_link_ps_attributes - -static void spv_texbem(Context* ctx, int luminanceCorrection) -{ - DestArgInfo *info = &ctx->dest_arg; - uint32 sampler_idx = info->regnum; - RegisterList *pSReg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, sampler_idx); - RegisterList *pSrc = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum); - RegisterList *pDst = spv_getreg(ctx, info->regtype, sampler_idx); - - push_output(ctx, &ctx->mainline); - - SpirvResult sampler = spv_loadreg(ctx, pSReg); - SpirvResult src0 = spv_loadreg(ctx, pSrc); - SpirvResult src1 = spv_loadreg(ctx, pDst); - - // = texture( - // , - // vec2( - // (_texbem.x * .x) + (_texbem.z * .y) + .x, - // (_texbem.y * .x) + (_texbem.w * .y) + .y - // ) - // ); - - // Load 2x2 transform matrix from uniform data (stored as vec4). - assert(sampler_idx < 4); - uint32 id_offset = ctx->spirv.sampler_extras[sampler_idx].idtexbem; - if (!id_offset) - { - id_offset = spv_bumpid(ctx); - ctx->spirv.sampler_extras[sampler_idx].idtexbem = id_offset; - } // if - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - uint32 id_pmatrix = spv_access_uniform(ctx, STI_PTR_VEC4_U, REG_TYPE_CONST, id_offset); - SpirvResult matrix; - matrix.tid = tid_vec4; - matrix.id = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpLoad, matrix.tid, matrix.id, id_pmatrix); - - // transform src0 using matrix and translate result using src1 - // ie. src0 * matrix + src1 - SpirvResult matrix_xy = spv_swizzle(ctx, matrix, 0x4, 0x3); - SpirvResult matrix_zw = spv_swizzle(ctx, matrix, 0xE, 0x3); - SpirvResult src0_xx = spv_swizzle(ctx, src0, 0x0, 0x3); - SpirvResult src0_yy = spv_swizzle(ctx, src0, 0x5, 0x3); - SpirvResult src1_xy = spv_swizzle(ctx, src1, 0x4, 0x3); - uint32 tid_vec2 = src0_xx.tid; - uint32 id_a = spv_bumpid(ctx); - uint32 id_b = spv_bumpid(ctx); - uint32 id_c = spv_bumpid(ctx); - uint32 id_d = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFMul, tid_vec2, id_a, matrix_xy.id, src0_xx.id); - spv_emit(ctx, 5, SpvOpFMul, tid_vec2, id_b, matrix_zw.id, src0_yy.id); - spv_emit(ctx, 5, SpvOpFAdd, tid_vec2, id_c, id_a, id_b); - spv_emit(ctx, 5, SpvOpFAdd, tid_vec2, id_d, id_c, src1_xy.id); - - // sample texture - SpirvResult result; - result.tid = tid_vec4; - result.id = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpImageSampleImplicitLod, result.tid, result.id, sampler.id, id_d); - if (luminanceCorrection) - { - uint32 id_l_offset = ctx->spirv.sampler_extras[sampler_idx].idtexbeml; - if (!id_l_offset) - { - id_l_offset = spv_bumpid(ctx); - ctx->spirv.sampler_extras[sampler_idx].idtexbeml = id_l_offset; - } // if - - // = * ((.z * _texbeml.x) + _texbeml.y) - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - - SpirvResult src0_z = spv_swizzle(ctx, src0, 0x2, 0x1); - uint32 id_l_ptr = spv_access_uniform(ctx, STI_PTR_VEC4_U, REG_TYPE_CONST, id_l_offset); - - SpirvResult l; - l.tid = tid_vec4; - l.id = spv_bumpid(ctx); - - spv_emit(ctx, 4, SpvOpLoad, l.tid, l.id, id_l_ptr); - - SpirvResult l_x = spv_swizzle(ctx, l, 0x0, 0x1); - SpirvResult l_y = spv_swizzle(ctx, l, 0x1, 0x1); - assert(tid_float == l_x.tid); - assert(tid_float == l_y.tid); - assert(tid_float == src0_z.tid); - - uint32 id_e = spv_bumpid(ctx); - uint32 id_f = spv_bumpid(ctx); - uint32 id_ffff = spv_bumpid(ctx); - uint32 id_new = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFMul, tid_float, id_e, src0_z.id, l_x.id); - spv_emit(ctx, 5, SpvOpFAdd, tid_float, id_f, id_e, l_y.id); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, tid_vec4, id_ffff, - id_f, id_f, id_f, id_f - ); - spv_emit(ctx, 5, SpvOpFMul, tid_vec4, id_new, result.id, id_ffff); - result.id = id_new; - } // if - - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} - -void emit_SPIRV_start(Context *ctx, const char *profilestr) -{ - if (!(shader_is_vertex(ctx) || shader_is_pixel(ctx))) - { - failf(ctx, "Shader type %u unsupported in this profile.", - (uint) ctx->shader_type); - return; - } // if - - memset(&(ctx->spirv), '\0', sizeof(ctx->spirv)); - -#if SUPPORT_PROFILE_GLSPIRV - if (strcmp(profilestr, MOJOSHADER_PROFILE_GLSPIRV) == 0) - { - ctx->profile_supports_glspirv = 1; - ctx->spirv.mode = SPIRV_MODE_GL; - } // if - else -#endif // SUPPORT_PROFILE_GLSPIRV - { - ctx->spirv.mode = SPIRV_MODE_VK; - if (strcmp(profilestr, MOJOSHADER_PROFILE_SPIRV) != 0) - failf(ctx, "Profile '%s' unsupported or unknown.", profilestr); - } // else - - ctx->spirv.idmain = spv_bumpid(ctx); - - // calls spv_getvoid as well - uint32 tid_void = spv_get_type(ctx, STI_VOID); - uint32 tid_func = spv_get_type(ctx, STI_FUNC_VOID); - - // slap the function declaration itself in mainline_top, so we can do type - // declaration in mainline_intro (= before this in the output) - push_output(ctx, &ctx->mainline_top); - spv_emit(ctx, 5, SpvOpFunction, tid_void, ctx->spirv.idmain, SpvFunctionControlMaskNone, tid_func); - spv_emit(ctx, 2, SpvOpLabel, spv_bumpid(ctx)); - pop_output(ctx); - - // also emit the name for the function - spv_output_name(ctx, ctx->spirv.idmain, ctx->mainfn); - - set_output(ctx, &ctx->mainline); -} // emit_SPIRV_start - -void emit_SPIRV_end(Context *ctx) -{ - if (ctx->previous_opcode != OPCODE_RET) - spv_emit_func_end(ctx); -} // emit_SPIRV_end - -void emit_SPIRV_phase(Context *ctx) -{ - // no-op -} // emit_SPIRV_phase - -void emit_SPIRV_global(Context *ctx, RegisterType regtype, int regnum) -{ - RegisterList *r = reglist_find(&ctx->used_registers, regtype, regnum); - - SpvStorageClass sc = SpvStorageClassPrivate; - uint32 tid = 0; - switch (regtype) - { - case REG_TYPE_LABEL: - failf(ctx, "unimplemented regtype %d", regtype); - return; - - case REG_TYPE_LOOP: - // Using SSA id to represent loop counters, instead of a variable. - return; - - case REG_TYPE_PREDICATE: - tid = spv_get_type(ctx, STI_PTR_BVEC4_P); - break; - - case REG_TYPE_ADDRESS: - if (shader_is_vertex(ctx)) - tid = spv_get_type(ctx, STI_PTR_IVEC4_P); - else if (shader_is_pixel(ctx)) // actually REG_TYPE_TEXTURE - { - if (!shader_version_atleast(ctx, 1, 4)) - { - // ps_1_1 texture/address registers work like temporaries. They are initialized - // with tex coords and TEX instruction then reads tex coords from it and writes - // sampling result back into it. Because Input storage class is read-only, we - // create private variable that is initialized to value of input. - - uint32 tid_pvec4_i = spv_get_type(ctx, STI_PTR_VEC4_I); - uint32 tid_pvec4_p = spv_get_type(ctx, STI_PTR_VEC4_P); - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - uint32 id_input_var = spv_bumpid(ctx); - uint32 id_private_var = r->spirv.iddecl; - uint32 id_tmp = spv_bumpid(ctx); - - // Create one Input and one Private variable. Input variable is linked to prev stage. - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4_i, id_input_var, SpvStorageClassInput); - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4_p, id_private_var, SpvStorageClassPrivate); - pop_output(ctx); - spv_link_ps_attributes(ctx, id_input_var, regtype, MOJOSHADER_USAGE_TEXCOORD, regnum); - - // Initialize Private variable with Input variable. - push_output(ctx, &ctx->mainline_top); - spv_emit(ctx, 4, SpvOpLoad, tid_vec4, id_tmp, id_input_var); - spv_emit(ctx, 3, SpvOpStore, id_private_var, id_tmp); - pop_output(ctx); - - // TEX instruction have already been emitted that work with Private variable. - - // Overwrite Private variable with Input variable, so emit_SPIRV_finalize outputs - // OpEntryPoint with correct references to Input and Output variables. - ctx->spirv.id_implicit_input[regnum] = id_input_var; - r->spirv.iddecl = id_input_var; - spv_output_regname(ctx, id_input_var, regtype, regnum); - return; - } // if - tid = spv_get_type(ctx, STI_PTR_VEC4_P); - } // else if - break; - - case REG_TYPE_TEMP: - if (regnum == 0 && shader_is_pixel(ctx) && !shader_version_atleast(ctx, 2, 0)) - { - // Value of r0 is at the end of shader execution is color output. - sc = SpvStorageClassOutput; - tid = spv_get_type(ctx, STI_PTR_VEC4_O); - } - else - tid = spv_get_type(ctx, STI_PTR_VEC4_P); - break; - - default: - fail(ctx, "BUG: Unexpected regtype in emit_SPIRV_global"); - return; - } // switch - - // TODO: If the SSA id for this register is still 0 by this point, that - // means no instructions actually loaded from/stored to this variable... - - if (r->spirv.iddecl == 0) - r->spirv.iddecl = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpVariable, tid, r->spirv.iddecl, sc); - pop_output(ctx); - - spv_output_regname(ctx, r->spirv.iddecl, regtype, regnum); -} // emit_SPIRV_global - -void emit_SPIRV_array(Context *ctx, VariableList *var) -{ - var->emit_position = ctx->uniform_float4_count; -} // emit_SPIRV_array - -void emit_SPIRV_const_array(Context *ctx, - const struct ConstantsList *clist, - int base, int size) -{ - int i; - - assert(ctx->spirv.constant_arrays.idvec4 != 0); - - push_output(ctx, &ctx->mainline_intro); - - // FIXME: This code potentially duplicates constants defined using DEF ops. - // FIXME: Multiple constant arrays probably won't work. Are those even possible? - // Maybe it would be better to do this in emit_SPIRV_finalize and use used_registers for it? - uint32 *constituents = (uint32 *)Malloc(ctx, size * sizeof(uint32)); - uint32 tid_constituent = spv_get_type(ctx, STI_VEC4); - for (i = 0; i < size; i++) - { - while (clist->constant.type != MOJOSHADER_UNIFORM_FLOAT) - clist = clist->next; - assert(clist->constant.index == (base + i)); - - uint32 id_x = spv_getscalarf(ctx, clist->constant.value.f[0]); - uint32 id_y = spv_getscalarf(ctx, clist->constant.value.f[1]); - uint32 id_z = spv_getscalarf(ctx, clist->constant.value.f[2]); - uint32 id_w = spv_getscalarf(ctx, clist->constant.value.f[3]); - - uint32 id = spv_bumpid(ctx); - spv_emit(ctx, 3 + 4, SpvOpConstantComposite, tid_constituent, id, id_x, id_y, id_z, id_w); - constituents[i] = id; - - clist = clist->next; - } // for - - uint32 id_array_len = spv_getscalari(ctx, size); - - uint32 tid_array = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypeArray, tid_array, tid_constituent, id_array_len); - - uint32 id_array = spv_bumpid(ctx); - spv_emit_part(ctx, 3+size, 3, SpvOpConstantComposite, tid_array, id_array); - for (i = 0; i < size; i++) - spv_emit_word(ctx, constituents[i]); - - uint32 tid_parray = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypePointer, tid_parray, SpvStorageClassPrivate, tid_array); - - uint32 id_array_var = ctx->spirv.constant_arrays.idvec4; - spv_emit(ctx, 5, SpvOpVariable, tid_parray, id_array_var, SpvStorageClassPrivate, id_array); - - Free(ctx, constituents); - pop_output(ctx); -} // emit_SPIRV_const_array - -void emit_SPIRV_uniform(Context *ctx, RegisterType regtype, int regnum, - const VariableList *var) -{ - RegisterList *r = reglist_find(&ctx->uniforms, regtype, regnum); - - // TODO: If the SSA id for this register is still 0 by this point, that means no instructions actually - // loaded from/stored to this variable... - - if (r->spirv.iddecl == 0) - r->spirv.iddecl = spv_bumpid(ctx); - - if (var == NULL) - { - uint32 tid = spv_get_type(ctx, STI_INT); - int offset = 0; - switch (regtype) - { - case REG_TYPE_CONST: - offset = ctx->uniform_float4_count; - break; - - case REG_TYPE_CONSTINT: - offset = ctx->uniform_int4_count; - break; - - case REG_TYPE_CONSTBOOL: - offset = ctx->uniform_bool_count; - break; - - default: - fail(ctx, "BUG: used a uniform we don't know how to define."); - return; - } // switch - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpConstant, tid, r->spirv.iddecl, offset); - pop_output(ctx); - - char varname[64]; - get_SPIRV_varname_in_buf(ctx, regtype, regnum, varname, sizeof(varname)); - spv_output_name(ctx, r->spirv.iddecl, varname); - } // if - else - { - if (var->constant) - fail(ctx, "const array not implemented"); - else - { - // Instructions needed to reference this constant before its value was known, so unique - // id had to be generated. Unfortunately, this prevents reusing already emitted - // constants. - assert(var->emit_position != -1); - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpConstant, spv_get_type(ctx, STI_INT), r->spirv.iddecl, var->emit_position); - pop_output(ctx); - - char varname[64]; - get_SPIRV_varname_in_buf(ctx, regtype, regnum, varname, sizeof(varname)); - spv_output_name(ctx, r->spirv.iddecl, varname); - } // else - } // else -} // emit_SPIRV_uniform - -void emit_SPIRV_sampler(Context *ctx, int stage, TextureType ttype, int texbem) -{ - uint32 type = spv_ptrimage_from_texturetype(ctx, ttype); - - RegisterList *sampler_reg; - // Pre ps_2_0 samplers were not dcl-ed, so we won't find them using spv_getreg(). - if (shader_is_pixel(ctx) && !shader_version_atleast(ctx, 2, 0)) - sampler_reg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, stage); - else - sampler_reg = spv_getreg(ctx, REG_TYPE_SAMPLER, stage); - - uint32 result = sampler_reg->spirv.iddecl; - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpVariable, type, result, SpvStorageClassUniformConstant); - if (texbem) // This sampler used a ps_1_1 TEXBEM opcode? - { - uint32 tid_int = spv_get_type(ctx, STI_INT); - uint32 id_texbem = ctx->spirv.sampler_extras[stage].idtexbem; - uint32 id_texbeml = ctx->spirv.sampler_extras[stage].idtexbeml; - const int offset = ctx->uniform_float4_count; - ctx->uniform_float4_count += 2; - if (id_texbem) - spv_emit(ctx, 4, SpvOpConstant, tid_int, id_texbem, offset); - if (id_texbeml) - spv_emit(ctx, 4, SpvOpConstant, tid_int, id_texbeml, offset + 1); - } // if - pop_output(ctx); - - // hnn: specify uniform location for SPIR-V shaders (required per gl_arb_spirv spec) - spv_output_sampler_binding(ctx, result, sampler_reg->regnum); - - if (ctx->spirv.mode == SPIRV_MODE_GL) - { - assert(sampler_reg->regnum < STATICARRAYLEN(ctx->spirv.patch_table.samplers)); - uint32 location_offset = spv_output_location(ctx, result, ~0u); - ctx->spirv.patch_table.samplers[sampler_reg->regnum].offset = location_offset; - } - - spv_output_regname(ctx, result, REG_TYPE_SAMPLER, stage); -} // emit_SPIRV_sampler - -void emit_SPIRV_attribute(Context *ctx, RegisterType regtype, int regnum, - MOJOSHADER_usage usage, int index, int wmask, - int flags) -{ - uint32 tid; - RegisterList *r = spv_getreg(ctx, regtype, regnum); - - ctx->spirv.inoutcount += 1; - - spv_output_regname(ctx, r->spirv.iddecl, regtype, regnum); - - if (shader_is_vertex(ctx)) - { - // pre-vs3 output registers. - // these don't ever happen in DCL opcodes, I think. Map to vs_3_* - // output registers. - if (!shader_version_atleast(ctx, 3, 0)) - { - if (regtype == REG_TYPE_RASTOUT) - { - regtype = REG_TYPE_OUTPUT; - index = regnum; - switch ((const RastOutType) regnum) - { - case RASTOUT_TYPE_POSITION: - usage = MOJOSHADER_USAGE_POSITION; - break; - case RASTOUT_TYPE_FOG: - usage = MOJOSHADER_USAGE_FOG; - break; - case RASTOUT_TYPE_POINT_SIZE: - usage = MOJOSHADER_USAGE_POINTSIZE; - break; - } // switch - } // if - - else if (regtype == REG_TYPE_ATTROUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_COLOR; - index = regnum; - } // else if - - else if (regtype == REG_TYPE_TEXCRDOUT) - { - regtype = REG_TYPE_OUTPUT; - usage = MOJOSHADER_USAGE_TEXCOORD; - index = regnum; - } // else if - } // if - assert(r->usage == MOJOSHADER_USAGE_UNKNOWN); - r->usage = usage; - - switch (regtype) - { - case REG_TYPE_INPUT: - { - push_output(ctx, &ctx->mainline_intro); - SpirvTypeIdx sti = STI_PTR_VEC4_I; - tid = spv_get_type(ctx, sti); - spv_emit(ctx, 4, SpvOpVariable, tid, r->spirv.iddecl, SpvStorageClassInput); - pop_output(ctx); - - // hnn: generate location decorators for the input - spv_output_location(ctx, r->spirv.iddecl, regnum); - break; - } - - case REG_TYPE_OUTPUT: - { - push_output(ctx, &ctx->mainline_intro); - SpirvTypeIdx sti = STI_PTR_VEC4_O; - if (usage == MOJOSHADER_USAGE_POINTSIZE - || usage == MOJOSHADER_USAGE_FOG) - { - sti = STI_PTR_FLOAT_O; - } // if - - tid = spv_get_type(ctx, sti); - spv_emit(ctx, 4, SpvOpVariable, tid, r->spirv.iddecl, SpvStorageClassOutput); - pop_output(ctx); - - spv_link_vs_attributes(ctx, r->spirv.iddecl, usage, index); - break; - } // case - - default: - fail(ctx, "unknown vertex shader attribute register"); - } // switch - } // if - - else if (shader_is_pixel(ctx)) - { - // samplers DCLs get handled in emit_SPIRV_sampler(). - - if (flags & MOD_CENTROID) // !!! FIXME - { - failf(ctx, "centroid unsupported in %s profile", ctx->profile->name); - return; - } // if - - switch (regtype) - { - case REG_TYPE_COLOROUT: - spv_link_ps_attributes(ctx, r->spirv.iddecl, regtype, usage, regnum); - push_output(ctx, &ctx->mainline_intro); - tid = spv_get_type(ctx, STI_PTR_VEC4_O); - spv_emit(ctx, 4, SpvOpVariable, tid, r->spirv.iddecl, SpvStorageClassOutput); - pop_output(ctx); - break; - case REG_TYPE_DEPTHOUT: - // maps to BuiltIn FragDepth - spv_link_ps_attributes(ctx, r->spirv.iddecl, regtype, usage, index); - push_output(ctx, &ctx->mainline_intro); - tid = spv_get_type(ctx, STI_PTR_FLOAT_O); - spv_emit(ctx, 4, SpvOpVariable, tid, r->spirv.iddecl, SpvStorageClassOutput); - pop_output(ctx); - break; - case REG_TYPE_MISCTYPE: - assert((MiscTypeType)regnum == MISCTYPE_TYPE_FACE || (MiscTypeType)regnum == MISCTYPE_TYPE_POSITION); - // SpvBuiltInFrontFacing is a input bool, and for the DX bytecode - // we need to map it to a float that's either -1.0 or 1.0. - // SpvBuiltInFragCoord needs to be modified using vposFlip uniform - // to match vPos. - // Both of these take place in spv_link_ps_attributes() so don't - // create an input variable for it here. - spv_link_ps_attributes(ctx, r->spirv.iddecl, regtype, usage, regnum); - break; - - case REG_TYPE_TEXTURE: - case REG_TYPE_INPUT: - // ps_1_1 is dealt with in emit_SPIRV_global(). - if (usage != MOJOSHADER_USAGE_TEXCOORD || shader_version_atleast(ctx, 1, 4)) - { - if (usage == MOJOSHADER_USAGE_TEXCOORD && index == 0) - { - // This can be either BuiltInPointCoord (vec2) or normal TEXCOORD0 input (vec4). - // To determine correct type, we need to wait until link-time when we can see - // vertex shader outputs and then patch in correct types. To avoid having to - // fix all loads from the input variable, we never access it directly, but - // instead go through private variable that is always vec4. - // Here we generate input and private variables and helper code that gets - // patched at link-time. See SpirvPatchTable for details on patching. - SpirvPatchTable* table = &ctx->spirv.patch_table; - - uint32 tid_pvec2i = spv_get_type(ctx, STI_PTR_VEC2_I); - uint32 tid_pvec4i = spv_get_type(ctx, STI_PTR_VEC4_I); - uint32 tid_pvec4p = spv_get_type(ctx, STI_PTR_VEC4_P); - uint32 tid_vec2 = spv_get_type(ctx, STI_VEC2); - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - - table->tid_pvec2i = tid_pvec2i; - table->tid_vec2 = tid_vec2; - table->tid_pvec4i = tid_pvec4i; - table->tid_vec4 = tid_vec4; - - push_output(ctx, &ctx->mainline_intro); - ctx->spirv.id_var_texcoord0_private = r->spirv.iddecl; - ctx->spirv.id_var_texcoord0_input = spv_bumpid(ctx); - table->pointcoord_var_offset = buffer_size(ctx->mainline_intro) >> 2; - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4i, ctx->spirv.id_var_texcoord0_input, SpvStorageClassInput); - spv_emit(ctx, 4, SpvOpVariable, tid_pvec4p, ctx->spirv.id_var_texcoord0_private, SpvStorageClassPrivate); - pop_output(ctx); - - spv_link_ps_attributes(ctx, ctx->spirv.id_var_texcoord0_input, regtype, usage, index); - spv_output_name(ctx, ctx->spirv.id_var_texcoord0_input, "ps_PointCoordOrTexCoord0"); - - push_output(ctx, &ctx->mainline_top); - uint32 id_loaded = spv_bumpid(ctx); - uint32 id_shuffled = spv_bumpid(ctx); - table->pointcoord_load_offset = buffer_size(ctx->mainline_top) >> 2; - spv_emit(ctx, 4, SpvOpLoad, tid_vec4, id_loaded, ctx->spirv.id_var_texcoord0_input); - spv_emit(ctx, 9, SpvOpVectorShuffle, tid_vec4, id_shuffled, id_loaded, id_loaded, 0, 1, 2, 3); - spv_emit(ctx, 3, SpvOpStore, ctx->spirv.id_var_texcoord0_private, id_shuffled); - pop_output(ctx); - } // if - else - { - spv_link_ps_attributes(ctx, r->spirv.iddecl, regtype, usage, index); - push_output(ctx, &ctx->mainline_intro); - tid = spv_get_type(ctx, STI_PTR_VEC4_I); - spv_emit(ctx, 4, SpvOpVariable, tid, r->spirv.iddecl, SpvStorageClassInput); - pop_output(ctx); - } // else - } // if - break; - default: - fail(ctx, "unknown pixel shader attribute register"); - } // switch - } // else if - - else - fail(ctx, "Unknown shader type"); // state machine should catch this. -} // emit_SPIRV_attribute - -static void spv_emit_uniform_constant_array(Context *ctx, - const RegisterType regtype, - const int size, uint32 id_var, - uint32 id_type_base, - uint32* dst_location_offset) -{ - assert(size > 0); - assert(id_var != 0); - assert(ctx->spirv.mode == SPIRV_MODE_GL); - - uint32 id_size = spv_getscalari(ctx, size); - uint32 id_type = spv_bumpid(ctx); - uint32 id_type_ptr = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 4, SpvOpTypeArray, id_type, id_type_base, id_size); - spv_emit(ctx, 4, SpvOpTypePointer, id_type_ptr, SpvStorageClassUniformConstant, id_type); - spv_emit(ctx, 4, SpvOpVariable, id_type_ptr, id_var, SpvStorageClassUniformConstant); - pop_output(ctx); - - char buf[64]; - spv_get_uniform_array_varname(ctx, regtype, buf, sizeof(buf)); - spv_output_name(ctx, id_var, buf); - - *dst_location_offset = spv_output_location(ctx, id_var, ~0u); -} // spv_emit_uniform_constant_array - -void emit_SPIRV_finalize(Context *ctx) -{ - size_t i, j, max; - - /* The generator's magic number, this could be registered with Khronos - * if we wanted to. 0 is fine though, so use that for now. */ - uint32 genmagic = 0x00000000; - - /* Vertex shader main() function may need to do some position adjustments. However, - position may be written in subroutines, so we can't write position adjust code - at the end of main(), because output register might not be in ctx->used_registers - yet. Instead, we do adjust in a subroutine generated here and called at the - end of main(). */ - spv_emit_vs_main_end(ctx); - spv_emit_func_lit(ctx); - - uint8 emit_vec4 = ctx->uniform_float4_count > 0 && ctx->spirv.uniform_arrays.idvec4; - uint8 emit_ivec4 = ctx->uniform_int4_count > 0 && ctx->spirv.uniform_arrays.idivec4; - uint8 emit_bool = ctx->uniform_bool_count > 0 && ctx->spirv.uniform_arrays.idbool; - uint8 emit_any = emit_vec4 | emit_ivec4 | emit_bool; - if (ctx->spirv.mode == SPIRV_MODE_GL) - { - if (emit_vec4) - spv_emit_uniform_constant_array(ctx, REG_TYPE_CONST, - ctx->uniform_float4_count, - ctx->spirv.uniform_arrays.idvec4, - spv_get_type(ctx, STI_VEC4), - &ctx->spirv.patch_table.array_vec4.offset - ); - - if (emit_ivec4) - spv_emit_uniform_constant_array(ctx, REG_TYPE_CONSTINT, - ctx->uniform_int4_count, - ctx->spirv.uniform_arrays.idivec4, - spv_get_type(ctx, STI_IVEC4), - &ctx->spirv.patch_table.array_ivec4.offset - ); - - if (emit_bool) - spv_emit_uniform_constant_array(ctx, REG_TYPE_CONSTBOOL, - ctx->uniform_bool_count, - ctx->spirv.uniform_arrays.idbool, - spv_get_type(ctx, STI_INT), - &ctx->spirv.patch_table.array_bool.offset - ); - } // if - else if (emit_any) - { - assert(ctx->spirv.mode == SPIRV_MODE_VK); - uint32 member_tid[3]; - uint32 member_offset[3]; - uint32 member_count = 0; - uint32 struct_size = 0; - - uint32 tid_arr_idx = spv_get_type(ctx, STI_INT); - - push_output(ctx, &ctx->mainline_intro); - - if (emit_vec4) - { - int size = ctx->uniform_float4_count; - uint32 id_size = spv_getscalari(ctx, size); - uint32 tid_type_base = spv_get_type(ctx, STI_VEC4); - uint32 tid_array = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypeArray, tid_array, tid_type_base, id_size); - uint32 i = member_count++; - spv_emit(ctx, 4, SpvOpConstant, tid_arr_idx, ctx->spirv.uniform_arrays.idvec4, i); - member_tid[i] = tid_array; - member_offset[i] = struct_size; - struct_size += size * 16; - } // if - - if (emit_ivec4) - { - int size = ctx->uniform_int4_count; - uint32 id_size = spv_getscalari(ctx, size); - uint32 tid_type_base = spv_get_type(ctx, STI_IVEC4); - uint32 tid_array = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypeArray, tid_array, tid_type_base, id_size); - uint32 i = member_count++; - spv_emit(ctx, 4, SpvOpConstant, tid_arr_idx, ctx->spirv.uniform_arrays.idivec4, i); - member_tid[i] = tid_array; - member_offset[i] = struct_size; - struct_size += size * 16; - } // if - - if (emit_bool) - { - int size = ctx->uniform_bool_count; - uint32 id_size = spv_getscalari(ctx, size); - uint32 tid_type_base = spv_get_type(ctx, STI_INT); - uint32 tid_array = spv_bumpid(ctx); - spv_emit(ctx, 4, SpvOpTypeArray, tid_array, tid_type_base, id_size); - uint32 i = member_count++; - spv_emit(ctx, 4, SpvOpConstant, tid_arr_idx, ctx->spirv.uniform_arrays.idbool, i); - member_tid[i] = tid_array; - member_offset[i] = struct_size; - struct_size += size * 16; - } // if - - uint32 tid_struct = spv_bumpid(ctx); - uint32 tid_pstruct = spv_bumpid(ctx); - uint32 id_pstruct = ctx->spirv.id_uniform_block; - spv_emit_part(ctx, 2 + member_count, 2, SpvOpTypeStruct, tid_struct); - for (i = 0; i < member_count; i++) - spv_emit_word(ctx, member_tid[i]); - spv_emit(ctx, 4, SpvOpTypePointer, tid_pstruct, SpvStorageClassUniform, tid_struct); - spv_emit(ctx, 4, SpvOpVariable, tid_pstruct, id_pstruct, SpvStorageClassUniform); - - pop_output(ctx); - - char buf[64]; - snprintf(buf, sizeof(buf), "%s_uniforms", ctx->shader_type_str); - spv_output_name(ctx, id_pstruct, buf); - - uint32 set = shader_is_vertex(ctx) ? MOJOSHADER_SPIRV_VS_UNIFORM_SET - : MOJOSHADER_SPIRV_PS_UNIFORM_SET; - push_output(ctx, &ctx->helpers); - spv_emit(ctx, 3+0, SpvOpDecorate, tid_struct, SpvDecorationBlock); - spv_emit(ctx, 3+1, SpvOpDecorate, id_pstruct, SpvDecorationDescriptorSet, set); - spv_emit(ctx, 3+1, SpvOpDecorate, id_pstruct, SpvDecorationBinding, 0); - - for (uint32 i = 0; i < member_count; i++) - { - spv_emit(ctx, 3+1, SpvOpDecorate, member_tid[i], SpvDecorationArrayStride, 16); - spv_emit(ctx, 4+1, SpvOpMemberDecorate, tid_struct, i, SpvDecorationOffset, member_offset[i]); - } // for - - pop_output(ctx); - } // else if - - push_output(ctx, &ctx->preflight); - - spv_emit_word(ctx, SpvMagicNumber); - spv_emit_word(ctx, SpvVersion); - spv_emit_word(ctx, genmagic); - // "Bound: where all s in this module are guaranteed to satisfy 0 < id < Bound" - // `idmax` holds the last id that was given out, so we need to emit `idmax + 1` - spv_emit_word(ctx, ctx->spirv.idmax + 1); - spv_emit_word(ctx, 0); - - spv_emit(ctx, 2, SpvOpCapability, SpvCapabilityShader); - - // only non-zero when actually needed - if (ctx->spirv.idext) - { - const char *extstr = "GLSL.std.450"; - spv_emit_part(ctx, 2 + spv_strlen(extstr), 2, SpvOpExtInstImport, ctx->spirv.idext); - spv_emit_str(ctx, extstr); - } // if - - spv_emit(ctx, 3, SpvOpMemoryModel, SpvAddressingModelLogical, SpvMemoryModelSimple); - - assert(shader_is_vertex(ctx) || shader_is_pixel(ctx)); - SpvExecutionModel model = SpvExecutionModelVertex; - if (shader_is_pixel(ctx)) - model = SpvExecutionModelFragment; - - /* 3 is for opcode + exec. model + idmain */ - uint32 inoutcount = ctx->spirv.inoutcount; - - uint32 implicit_input_count = sizeof(ctx->spirv.id_implicit_input) / sizeof(uint32); - if (shader_is_pixel(ctx)) - { - if (!shader_version_atleast(ctx, 1, 4)) - { - for (uint32 i = 0; i < implicit_input_count; i++) - { - if (ctx->spirv.id_implicit_input[i]) - inoutcount += 1; - } // for - } // if - - if (!shader_version_atleast(ctx, 2, 0)) - inoutcount += 1; - } // if - - spv_emit_part(ctx, 3 + spv_strlen(ctx->mainfn) + inoutcount, 3, SpvOpEntryPoint, - model, ctx->spirv.idmain - ); - spv_emit_str(ctx, ctx->mainfn); - - RegisterList *p = &ctx->attributes, *r = NULL; - // !!! FIXME: The first element of the list is always empty and I don't know why! - p = p->next; - while (p) - { - r = spv_getreg(ctx, p->regtype, p->regnum); - if (r) - { - if (r->spirv.iddecl == ctx->spirv.id_var_vpos) - spv_emit_word(ctx, ctx->spirv.id_var_fragcoord); - else if (r->spirv.iddecl == ctx->spirv.id_var_vface) - spv_emit_word(ctx, ctx->spirv.id_var_frontfacing); - else if (r->spirv.iddecl == ctx->spirv.id_var_texcoord0_private) - spv_emit_word(ctx, ctx->spirv.id_var_texcoord0_input); - else - spv_emit_word(ctx, r->spirv.iddecl); - } // if - else - { - char varname[64]; - get_SPIRV_varname_in_buf(ctx, p->regtype, p->regnum, varname, sizeof (varname)); - failf( - ctx, - "missing attribute register %s (rt=%u, rn=%u, u=%u)", - varname, p->regtype, p->regnum, p->usage - ); - } // else - p = p->next; - } // while - - // only applies to pixel shaders - if (shader_is_pixel(ctx)) - { - if (!shader_version_atleast(ctx, 1, 4)) - { - for (uint32 i = 0; i < implicit_input_count; i++) - { - uint32 id = ctx->spirv.id_implicit_input[i]; - if (id) - spv_emit_word(ctx, id); - } // for - } // if - - if (!shader_version_atleast(ctx, 2, 0)) - { - // r0 is used as color output. - r = spv_getreg(ctx, REG_TYPE_TEMP, 0); - spv_emit_word(ctx, r->spirv.iddecl); - } // if - - // vk semantics = default origin is upper left - // gl semantics = default origin is lower left - spv_emit(ctx, 3, SpvOpExecutionMode, ctx->spirv.idmain, SpvExecutionModeOriginUpperLeft); - - // This must be explicitly marked when FragDepth is in use! - if (ctx->spirv.hasdepth) - spv_emit(ctx, 3, SpvOpExecutionMode, ctx->spirv.idmain, SpvExecutionModeDepthReplacing); - } // if - - pop_output(ctx); - - // Generate final patch table. - - uint32 base_offset = 0; - if (ctx->preflight) base_offset += buffer_size(ctx->preflight); - if (ctx->globals) base_offset += buffer_size(ctx->globals); - if (ctx->inputs) base_offset += buffer_size(ctx->inputs); - if (ctx->outputs) base_offset += buffer_size(ctx->outputs); - base_offset >>= 2; - - int32 location_count = 0; - SpirvPatchTable* table = &ctx->spirv.patch_table; - if (table->vpflip.offset) - { - table->vpflip.offset += base_offset; - table->vpflip.location = location_count; - location_count += 1; - } // if - else - table->vpflip.location = -1; - - if (table->array_vec4.offset) - { - table->array_vec4.offset += base_offset; - table->array_vec4.location = location_count; - location_count += ctx->uniform_float4_count; - } // if - else - table->array_vec4.location = -1; - - if (table->array_ivec4.offset) - { - table->array_ivec4.offset += base_offset; - table->array_ivec4.location = location_count; - location_count += ctx->uniform_int4_count; - } // if - else - table->array_ivec4.location = -1; - - if (table->array_bool.offset) - { - table->array_bool.offset += base_offset; - table->array_bool.location = location_count; - location_count += ctx->uniform_bool_count; - } // if - else - table->array_bool.location = -1; - - for (i = 0, max = STATICARRAYLEN(table->samplers); i < max; i++) - { - SpirvPatchEntry* entry = &table->samplers[i]; - if (entry->offset) - { - entry->offset += base_offset; - entry->location = location_count; - location_count++; - } // if - else - entry->location = -1; - } // for - - table->location_count = location_count; - - for (i = 0; i < MOJOSHADER_USAGE_TOTAL; i++) - for (j = 0; j < 16; j++) - if (table->attrib_offsets[i][j]) - table->attrib_offsets[i][j] += base_offset; - for (i = 0; i < 16; i++) - if (table->output_offsets[i]) - table->output_offsets[i] += base_offset; - - base_offset <<= 2; - if (ctx->helpers) base_offset += buffer_size(ctx->helpers); - if (ctx->subroutines) base_offset += buffer_size(ctx->subroutines); - base_offset >>= 2; - - if (table->pointcoord_var_offset) - table->pointcoord_var_offset += base_offset; - - base_offset <<= 2; - if (ctx->mainline_intro) base_offset += buffer_size(ctx->mainline_intro); - if (ctx->mainline_arguments) base_offset += buffer_size(ctx->mainline_arguments); - base_offset >>= 2; - - if (table->pointcoord_load_offset) - table->pointcoord_load_offset += base_offset; - - push_output(ctx, &ctx->postflight); - buffer_append(ctx->output, &ctx->spirv.patch_table, sizeof(ctx->spirv.patch_table)); - pop_output(ctx); - - spv_componentlist_free(ctx, ctx->spirv.cl.f.next); - spv_componentlist_free(ctx, ctx->spirv.cl.i.next); - spv_componentlist_free(ctx, ctx->spirv.cl.u.next); -} // emit_SPIRV_finalize - -void emit_SPIRV_NOP(Context *ctx) -{ - // no-op is a no-op. :) - // TODO: (hnn) SPIR-V has OpNop :O -} // emit_SPIRV_NOP - -void emit_SPIRV_DEF(Context *ctx) -{ - RegisterList *rl; - uint32 val0, val1, val2, val3, idv4; - const float *raw = (const float *) ctx->dwords; - - rl = spv_getreg(ctx, ctx->dest_arg.regtype, ctx->dest_arg.regnum); - rl->spirv.iddecl = spv_bumpid(ctx); - rl->spirv.is_ssa = 1; - - val0 = spv_getscalarf(ctx, raw[0]); - val1 = spv_getscalarf(ctx, raw[1]); - val2 = spv_getscalarf(ctx, raw[2]); - val3 = spv_getscalarf(ctx, raw[3]); - - idv4 = spv_get_type(ctx, STI_VEC4); - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 3 + 4, SpvOpConstantComposite, idv4, rl->spirv.iddecl, val0, val1, val2, val3); - pop_output(ctx); -} // emit_SPIRV_DEF - -void emit_SPIRV_DEFI(Context *ctx) -{ - RegisterList *rl; - uint32 val0, val1, val2, val3, idiv4; - const int *raw = (const int *) ctx->dwords; - - rl = spv_getreg(ctx, ctx->dest_arg.regtype, ctx->dest_arg.regnum); - rl->spirv.iddecl = spv_bumpid(ctx); - rl->spirv.is_ssa = 1; - - val0 = spv_getscalari(ctx, raw[0]); - val1 = spv_getscalari(ctx, raw[1]); - val2 = spv_getscalari(ctx, raw[2]); - val3 = spv_getscalari(ctx, raw[3]); - - idiv4 = spv_get_type(ctx, STI_IVEC4); - - push_output(ctx, &ctx->mainline_intro); - spv_emit(ctx, 3 + 4, SpvOpConstantComposite, idiv4, rl->spirv.iddecl, val0, val1, val2, val3); - pop_output(ctx); -} // emit_SPIRV_DEFI - -void emit_SPIRV_DEFB(Context *ctx) -{ - RegisterList *rl = spv_getreg(ctx, ctx->dest_arg.regtype, ctx->dest_arg.regnum); - rl->spirv.iddecl = ctx->dwords[0] ? spv_gettrue(ctx) : spv_getfalse(ctx); - rl->spirv.is_ssa = 1; -} // emit_SPIRV_DEFB - -void emit_SPIRV_DCL(Context *ctx) -{ - // state_DCL handles checking if the registers are valid for this - // instruction, and collecting samplers and attribs - RegisterList *reg = spv_getreg(ctx, ctx->dest_arg.regtype, ctx->dest_arg.regnum); - - // This id will be assigned to in emit_SPIRV_attribute, but - // emit_SPIRV_attribute is called after instructions are emitted, - // so we generate the id here so it can be used in instructions - reg->spirv.iddecl = spv_bumpid(ctx); -} // emit_SPIRV_DCL - -static void emit_SPIRV_dotproduct(Context *ctx, SpirvResult src0, SpirvResult src1) -{ - SpirvResult result; - - assert(src0.tid == src1.tid); - - result.tid = spv_get_type(ctx, STI_FLOAT); - result.id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpDot, result.tid, result.id, src0.id, src1.id); - - // Broadcast scalar result across all channels of a vec4 - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_vectorbroadcast(ctx, result.tid, result.id); - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_dotproduct - -void emit_SPIRV_DP4(Context *ctx) -{ - SpirvResult src0 = spv_load_srcarg_full(ctx, 0); - SpirvResult src1 = spv_load_srcarg_full(ctx, 1); - - emit_SPIRV_dotproduct(ctx, src0, src1); -} // emit_SPIRV_DP4 - -void emit_SPIRV_DP3(Context *ctx) -{ - SpirvResult src0 = spv_load_srcarg(ctx, 0, 0x7); - SpirvResult src1 = spv_load_srcarg(ctx, 1, 0x7); - - emit_SPIRV_dotproduct(ctx, src0, src1); -} // emit_SPIRV_DP3 - -static void spv_emit_begin_ds(Context *ctx, SpirvResult* dst, SpirvResult* src) -{ - *src = spv_load_srcarg_full(ctx, 0); - dst->tid = spv_get_type(ctx, STI_VEC4); - dst->id = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); -} // spv_emit_begin_ds - -static void spv_emit_begin_dss(Context *ctx, SpirvResult* dst, SpirvResult* src0, SpirvResult* src1) -{ - *src0 = spv_load_srcarg_full(ctx, 0); - *src1 = spv_load_srcarg_full(ctx, 1); - dst->tid = spv_get_type(ctx, STI_VEC4); - dst->id = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); -} // spv_emit_begin_dss - -static void spv_emit_begin_dsss(Context *ctx, SpirvResult* dst, - SpirvResult* src0, SpirvResult* src1, SpirvResult* src2) -{ - *src0 = spv_load_srcarg_full(ctx, 0); - *src1 = spv_load_srcarg_full(ctx, 1); - *src2 = spv_load_srcarg_full(ctx, 2); - dst->tid = spv_get_type(ctx, STI_VEC4); - dst->id = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); -} // spv_emit_begin_dsss - -static void spv_emit_end(Context *ctx, SpirvResult dst) -{ - pop_output(ctx); - spv_assign_destarg(ctx, dst); -} // spv_emit_end - -static SpirvTexm3x3SetupResult spv_texm3x3_setup(Context *ctx) -{ - SpirvTexm3x3SetupResult result; - - DestArgInfo *pDstInfo = &ctx->dest_arg; - - RegisterList *pSrc0 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst0); - RegisterList *pSrc1 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src0); - RegisterList *pSrc2 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_dst1); - RegisterList *pSrc3 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->texm3x3pad_src1); - RegisterList *pSrc4 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum); - RegisterList *pDst = spv_getreg(ctx, pDstInfo->regtype, pDstInfo->regnum); - - SpirvResult src0 = spv_loadreg(ctx, pSrc0); - SpirvResult src1 = spv_loadreg(ctx, pSrc1); - SpirvResult src2 = spv_loadreg(ctx, pSrc2); - SpirvResult src3 = spv_loadreg(ctx, pSrc3); - SpirvResult src4 = spv_loadreg(ctx, pSrc4); - SpirvResult dst = spv_loadreg(ctx, pDst); - - result.id_dst_pad0 = src0.id; - result.id_dst_pad1 = src2.id; - result.id_dst = dst.id; - - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 tid_vec3 = spv_get_type(ctx, STI_VEC3); - - uint32 id_src0_xyz = spv_bumpid(ctx); - uint32 id_src1_xyz = spv_bumpid(ctx); - uint32 id_src2_xyz = spv_bumpid(ctx); - uint32 id_src3_xyz = spv_bumpid(ctx); - uint32 id_src4_xyz = spv_bumpid(ctx); - uint32 id_dst_xyz = spv_bumpid(ctx); - uint32 id_res_x = spv_bumpid(ctx); - uint32 id_res_y = spv_bumpid(ctx); - uint32 id_res_z = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_src0_xyz, src0.id, src0.id, 0, 1, 2); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_src1_xyz, src1.id, src1.id, 0, 1, 2); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_src2_xyz, src2.id, src2.id, 0, 1, 2); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_src3_xyz, src3.id, src3.id, 0, 1, 2); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_src4_xyz, src4.id, src4.id, 0, 1, 2); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_dst_xyz, dst.id, dst.id, 0, 1, 2); - - spv_emit(ctx, 5, SpvOpDot, tid_float, id_res_x, id_src0_xyz, id_src1_xyz); - spv_emit(ctx, 5, SpvOpDot, tid_float, id_res_y, id_src2_xyz, id_src3_xyz); - spv_emit(ctx, 5, SpvOpDot, tid_float, id_res_z, id_dst_xyz, id_src4_xyz); - - pop_output(ctx); - - result.id_res_x = id_res_x; - result.id_res_y = id_res_y; - result.id_res_z = id_res_z; - - return result; -} // spv_texm3x3_setup - -static uint32 spv_reflect(Context *ctx, uint32 id_normal, uint32 id_eyeray) -{ - // reflect(E : vec3 = eyeray, N : vec3 = normal) -> vec3 - // 2 * [(N*E) / (N*N)] * N - E - - uint32 tid_vec3 = spv_get_type(ctx, STI_VEC3); - uint32 id_2 = spv_getscalarf(ctx, 2.0f); - uint32 id_2_v3 = spv_bumpid(ctx); - uint32 id_refl_0 = spv_bumpid(ctx); - uint32 id_refl_1 = spv_bumpid(ctx); - uint32 id_refl_2 = spv_bumpid(ctx); - uint32 id_refl_3 = spv_bumpid(ctx); - uint32 id_refl_4 = spv_bumpid(ctx); - uint32 id_reflected = spv_bumpid(ctx); - - spv_emit(ctx, 3 + 3, SpvOpCompositeConstruct, tid_vec3, id_2_v3, id_2, id_2, id_2); - spv_emit(ctx, 5, SpvOpFMul, tid_vec3, id_refl_0, id_normal, id_eyeray); - spv_emit(ctx, 5, SpvOpFMul, tid_vec3, id_refl_1, id_normal, id_normal); - spv_emit(ctx, 5, SpvOpFDiv, tid_vec3, id_refl_2, id_refl_0, id_refl_1); - spv_emit(ctx, 5, SpvOpFMul, tid_vec3, id_refl_3, id_refl_2, id_normal); - spv_emit(ctx, 5, SpvOpFMul, tid_vec3, id_refl_4, id_refl_3, id_2_v3); - spv_emit(ctx, 5, SpvOpFSub, tid_vec3, id_reflected, id_refl_4, id_eyeray); - - return id_reflected; -} // spv_reflect - -void emit_SPIRV_ADD(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - spv_emit(ctx, 5, SpvOpFAdd, dst.tid, dst.id, src0.id, src1.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_ADD - -void emit_SPIRV_SUB(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - spv_emit(ctx, 5, SpvOpFSub, dst.tid, dst.id, src0.id, src1.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_SUB - -void emit_SPIRV_MUL(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - spv_emit(ctx, 5, SpvOpFMul, dst.tid, dst.id, src0.id, src1.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_MUL - -void emit_SPIRV_SLT(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - - // https://msdn.microsoft.com/en-us/library/windows/desktop/cc308050(v=vs.85).aspx - // "The comparisons EQ, GT, GE, LT, and LE, when either or both operands is NaN returns FALSE" - uint32 bool_result = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFOrdLessThan, spv_get_type(ctx, STI_BVEC4), bool_result, src0.id, src1.id); - - uint32 ones = spv_getvec4_one(ctx); - uint32 zeros = spv_getvec4_zero(ctx); - spv_emit(ctx, 6, SpvOpSelect, dst.tid, dst.id, bool_result, ones, zeros); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_SLT - -void emit_SPIRV_SGE(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - - // https://msdn.microsoft.com/en-us/library/windows/desktop/cc308050(v=vs.85).aspx - // "The comparisons EQ, GT, GE, LT, and LE, when either or both operands is NaN returns FALSE" - uint32 bool_result = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFOrdGreaterThanEqual, spv_get_type(ctx, STI_BVEC4), bool_result, src0.id, src1.id); - - uint32 ones = spv_getvec4_one(ctx); - uint32 zeros = spv_getvec4_zero(ctx); - - spv_emit(ctx, 6, SpvOpSelect, dst.tid, dst.id, bool_result, ones, zeros); - spv_emit_end(ctx, dst); -} // emit_SPIRV_SGE - -void emit_SPIRV_MIN(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - spv_emit(ctx, 5 + 2, SpvOpExtInst, dst.tid, dst.id, spv_getext(ctx), GLSLstd450FMin, src0.id, src1.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_MIN - -void emit_SPIRV_MAX(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - spv_emit(ctx, 5 + 2, SpvOpExtInst, dst.tid, dst.id, spv_getext(ctx), GLSLstd450FMax, src0.id, src1.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_MAX - -void emit_SPIRV_POW(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - uint32 id_abs = spv_bumpid(ctx); - spv_emit(ctx, 5 + 1, SpvOpExtInst, src0.tid, id_abs, spv_getext(ctx), GLSLstd450FAbs, src0.id); - spv_emit(ctx, 5 + 2, SpvOpExtInst, dst.tid, dst.id, spv_getext(ctx), GLSLstd450Pow, id_abs, src1.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_POW - -static uint32 spv_extract_vec3(Context *ctx, uint32 input) -{ - uint32 vec3 = spv_get_type(ctx, STI_VEC3); - uint32 result = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, vec3, result, input, input, 0, 1, 2); - pop_output(ctx); - - return result; -} // spv_extract_vec3 - -void emit_SPIRV_CRS(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - - uint32 vec3 = spv_get_type(ctx, STI_VEC3); - uint32 src0_vec3 = spv_extract_vec3(ctx, src0.id); - uint32 src1_vec3 = spv_extract_vec3(ctx, src1.id); - uint32 result_vec3 = spv_bumpid(ctx); - - spv_emit(ctx, 5 + 2, SpvOpExtInst, vec3, result_vec3, spv_getext(ctx), - GLSLstd450Cross, src0_vec3, src1_vec3); - - // According to DirectX docs, CRS doesn't allow `w` in its writemask, so we - // can make this component anything and the code generated by - // `spv_assign_destarg()` will just throw it away. - spv_emit(ctx, 5 + 4, SpvOpVectorShuffle, dst.tid, dst.id, - result_vec3, result_vec3, 0, 1, 2, 0xFFFFFFFF); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_CRS - -void emit_SPIRV_MAD(Context *ctx) -{ - SpirvResult src0 = spv_load_srcarg_full(ctx, 0); - SpirvResult src1 = spv_load_srcarg_full(ctx, 1); - SpirvResult src2 = spv_load_srcarg_full(ctx, 2); - assert(src0.tid == src1.tid); - assert(src0.tid == src2.tid); - uint32 mul_result = spv_bumpid(ctx); - SpirvResult result; - result.tid = src0.tid; - result.id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpFMul, src0.tid, mul_result, src0.id, src1.id); - spv_emit(ctx, 5, SpvOpFAdd, src0.tid, result.id, mul_result, src2.id); - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_MAD - -void emit_SPIRV_TEXKILL(Context *ctx) -{ - const DestArgInfo *pDstInfo = &ctx->dest_arg; - RegisterList *pDst = spv_getreg(ctx, pDstInfo->regtype, pDstInfo->regnum); - SpirvResult dst = spv_loadreg(ctx, pDst); - - uint32 vec3 = spv_get_type(ctx, STI_VEC3); - uint32 bvec3 = spv_get_type(ctx, STI_BVEC3); - - uint32 zeros = spv_get_zero(ctx, vec3); - - push_output(ctx, &ctx->mainline); - uint32 res_swiz = spv_emit_swizzle(ctx, dst.id, vec3, (0 << 0) | (1 << 2) | (2 << 4), 0x7); - uint32 res_lt = spv_bumpid(ctx); - uint32 res_any = spv_bumpid(ctx); - uint32 label_true = spv_bumpid(ctx); - uint32 label_merge = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFOrdLessThan, bvec3, res_lt, res_swiz, zeros); - spv_emit(ctx, 4, SpvOpAny, spv_get_type(ctx, STI_BOOL), res_any, res_lt); - spv_emit(ctx, 3, SpvOpSelectionMerge, label_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, res_any, label_true, label_merge); - spv_emit(ctx, 2, SpvOpLabel, label_true); - spv_emit(ctx, 1, SpvOpKill); - spv_emit(ctx, 2, SpvOpLabel, label_merge); - pop_output(ctx); -} // emit_SPIRV_TEXKILL - -void emit_SPIRV_DP2ADD(Context *ctx) -{ - SpirvResult src0 = spv_load_srcarg(ctx, 0, 0x3); - SpirvResult src1 = spv_load_srcarg(ctx, 1, 0x3); - SpirvResult src2 = spv_load_srcarg(ctx, 2, 0x1); - - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 id_dot = spv_bumpid(ctx); - uint32 id_add = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpDot, tid_float, id_dot, src0.id, src1.id); - spv_emit(ctx, 5, SpvOpFAdd, tid_float, id_add, id_dot, src2.id); - SpirvResult result; - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_vectorbroadcast(ctx, result.tid, id_add); - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_DP2ADD - -void emit_SPIRV_MOV(Context *ctx) -{ - SpirvResult src0 = spv_load_srcarg_full(ctx, 0); - spv_assign_destarg(ctx, src0); -} // emit_SPIRV_MOV - -void emit_SPIRV_RCP(Context *ctx) -{ - /* - if (src != 0.0f) - dst = 1.0f / src; - else - dst = FLT_MAX; - */ - - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - - SpirvTypeIdx sti_bvec = - (src.tid == ctx->spirv.tid[STI_VEC4]) ? STI_BVEC4 : - (src.tid == ctx->spirv.tid[STI_VEC3]) ? STI_BVEC3 : - (src.tid == ctx->spirv.tid[STI_VEC2]) ? STI_BVEC2 : STI_BOOL; - - uint32 tid_bvec = spv_get_type(ctx, sti_bvec); - uint32 id_one = spv_get_one(ctx, src.tid); - uint32 id_zero = spv_get_zero(ctx, src.tid); - uint32 id_flt_max = spv_get_flt_max(ctx, src.tid); - uint32 id_mask = spv_bumpid(ctx); - uint32 id_div = spv_bumpid(ctx); - - spv_emit(ctx, 5, SpvOpFOrdNotEqual, tid_bvec, id_mask, src.id, id_zero); - spv_emit(ctx, 5, SpvOpFDiv, dst.tid, id_div, id_one, src.id); - spv_emit(ctx, 6, SpvOpSelect, dst.tid, dst.id, id_mask, id_div, id_flt_max); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_RCP - -void emit_SPIRV_RSQ(Context *ctx) -{ - /* - if (src != 0.0f) - dst = 1.0f / abs(src); - else - dst = FLT_MAX; - */ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - - SpirvTypeIdx sti_bvec = - (src.tid == ctx->spirv.tid[STI_VEC4]) ? STI_BVEC4 : - (src.tid == ctx->spirv.tid[STI_VEC3]) ? STI_BVEC3 : - (src.tid == ctx->spirv.tid[STI_VEC2]) ? STI_BVEC2 : STI_BOOL; - - uint32 tid_bvec = spv_get_type(ctx, sti_bvec); - uint32 id_zero = spv_get_zero(ctx, src.tid); - uint32 id_flt_max = spv_get_flt_max(ctx, src.tid); - uint32 id_mask = spv_bumpid(ctx); - uint32 id_abs = spv_bumpid(ctx); - uint32 id_rsq = spv_bumpid(ctx); - - spv_emit(ctx, 5, SpvOpFOrdNotEqual, tid_bvec, id_mask, src.id, id_zero); - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, id_abs, spv_getext(ctx), GLSLstd450FAbs, src.id); - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, id_rsq, spv_getext(ctx), GLSLstd450InverseSqrt, id_abs); - spv_emit(ctx, 6, SpvOpSelect, dst.tid, dst.id, id_mask, id_rsq, id_flt_max); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_RSQ - -void emit_SPIRV_EXP(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, dst.id, spv_getext(ctx), GLSLstd450Exp2, src.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_EXP - -void emit_SPIRV_SGN(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - - // SGN also takes a src1 and src2 to use for intermediate results, they are - // left undefined after the instruction executes, and as such it is - // perfectly valid for us to not touch those registers in our implementation - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, dst.id, spv_getext(ctx), GLSLstd450FSign, src.id); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_SGN - -void emit_SPIRV_ABS(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, dst.id, spv_getext(ctx), GLSLstd450FAbs, src.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_ABS - -void emit_SPIRV_NRM(Context *ctx) -{ - /* - float dot = dot(src, src); - - float f; - if (dot != 0) - f = (float)(1/sqrt(dot)); - else - f = FLT_MAX; - - dst = src0*f; - */ - - SpirvResult src = spv_load_srcarg_full(ctx, 0); - uint32 tid_vec3 = spv_get_type(ctx, STI_VEC3); - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 id_zero = spv_getscalarf(ctx, 0.0f); - uint32 id_flt_max = spv_getscalarf(ctx, FLT_MAX); - uint32 id_src_xyz = spv_bumpid(ctx); - uint32 id_dot = spv_bumpid(ctx); - uint32 id_dot_valid = spv_bumpid(ctx); - uint32 id_f = spv_bumpid(ctx); - uint32 id_f_sane = spv_bumpid(ctx); - uint32 id_f_vec = spv_bumpid(ctx); - - SpirvResult dst; - dst.tid = src.tid; - dst.id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_src_xyz, src.id, src.id, 0, 1, 2); - spv_emit(ctx, 5, SpvOpDot, tid_float, id_dot, id_src_xyz, id_src_xyz); - spv_emit(ctx, 5, SpvOpFOrdNotEqual, tid_bool, id_dot_valid, id_dot, id_zero); - spv_emit(ctx, 5 + 1, SpvOpExtInst, tid_float, id_f, spv_getext(ctx), GLSLstd450InverseSqrt, id_dot); - spv_emit(ctx, 6, SpvOpSelect, tid_float, id_f_sane, id_dot_valid, id_f, id_flt_max); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, dst.tid, id_f_vec, id_f_sane, id_f_sane, id_f_sane, id_f_sane); - spv_emit(ctx, 5, SpvOpFMul, dst.tid, dst.id, src.id, id_f_vec); - pop_output(ctx); - spv_assign_destarg(ctx, dst); -} // emit_SPIRV_NRM - -void emit_SPIRV_FRC(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, dst.id, spv_getext(ctx), GLSLstd450Fract, src.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_FRC - -void emit_SPIRV_LOG(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - - // LOG(x) := (x == vec4(0.0)) ? vec4(-FLT_MAX) : log2(abs(x)) - - // abs(x) - uint32 abs_src0 = spv_bumpid(ctx); - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, abs_src0, spv_getext(ctx), GLSLstd450FAbs, src.id); - - // vec4(0.0) - uint32 vec4_zero = spv_vectorbroadcast(ctx, dst.tid, spv_getscalarf(ctx, 0.0f)); - - // x == vec4(0.0) - uint32 is_zero = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFOrdEqual, spv_get_type(ctx, STI_BVEC4), is_zero, abs_src0, vec4_zero); - - // log2(abs(x)) - uint32 log2_of_nonzero = spv_bumpid(ctx); - spv_emit(ctx, 5 + 1, SpvOpExtInst, dst.tid, log2_of_nonzero, spv_getext(ctx), GLSLstd450Log2, abs_src0); - - // vec4(-FLT_MAX) - uint32 vec4_neg_flt_max = spv_vectorbroadcast(ctx, dst.tid, spv_getscalarf(ctx, -FLT_MAX)); - - // (x == vec4(0.0)) ? vec4(-FLT_MAX) : log2(abs(x)) - spv_emit(ctx, 6, SpvOpSelect, dst.tid, dst.id, is_zero, vec4_neg_flt_max, log2_of_nonzero); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_LOG - -void emit_SPIRV_SINCOS(Context *ctx) -{ - SpirvResult src = spv_load_srcarg(ctx, 0, 0x1); - - // For vs_2_0 and vs_2_x this instruction also has a src1 and src2 which provide a couple of constants - // We just ignore these in any case - - // float V = src0.x; - - int writemask = ctx->dest_arg.writemask; - uint32 id_zero = spv_get_zero(ctx, src.tid); - - uint32 id_cos; - if (writemask & 1) // .x = cos(V) - { - id_cos = spv_bumpid(ctx); - spv_emit(ctx, 5 + 1, SpvOpExtInst, src.tid, id_cos, spv_getext(ctx), GLSLstd450Cos, src.id); - } // if - else - id_cos = id_zero; - - uint32 id_sin; - if (writemask & 2) // .y = sin(V) - { - id_sin = spv_bumpid(ctx); - spv_emit(ctx, 5 + 1, SpvOpExtInst, src.tid, id_sin, spv_getext(ctx), GLSLstd450Sin, src.id); - } // if - else - id_sin = id_zero; - - SpirvResult dst; - dst.tid = spv_get_type(ctx, STI_VEC4); - dst.id = spv_bumpid(ctx); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, dst.tid, dst.id, id_cos, id_sin, id_zero, id_zero); - - spv_assign_destarg(ctx, dst); -} // emit_SPIRV_SINCOS - -void emit_SPIRV_MOVA(Context *ctx) -{ - SpirvResult src = spv_load_srcarg_full(ctx, 0); - assert(src.tid == spv_get_type(ctx, STI_VEC4)); - - uint32 id_rounded = spv_bumpid(ctx); - - SpirvResult dst; - dst.tid = spv_get_type(ctx, STI_IVEC4); - dst.id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5 + 1, SpvOpExtInst, spv_get_type(ctx, STI_VEC4), id_rounded, - spv_getext(ctx), GLSLstd450Round, src.id); - spv_emit(ctx, 4, SpvOpConvertFToS, dst.tid, dst.id, id_rounded); - pop_output(ctx); - - spv_assign_destarg(ctx, dst); -} // emit_SPIRV_MOVA - -void emit_SPIRV_CMP(Context *ctx) -{ - SpirvResult dst, src0, src1, src2; - spv_emit_begin_dsss(ctx, &dst, &src0, &src1, &src2); - uint32 id_0_0 = spv_get_zero(ctx, src0.tid); - - uint32 id_cmp = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFUnordGreaterThanEqual, spv_get_type(ctx, STI_BVEC4), id_cmp, src0.id, id_0_0); - spv_emit(ctx, 6, SpvOpSelect, dst.tid, dst.id, id_cmp, src1.id, src2.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_CMP - -void emit_SPIRV_CND(Context *ctx) -{ - SpirvResult dst, src0, src1, src2; - spv_emit_begin_dsss(ctx, &dst, &src0, &src1, &src2); - uint32 id_0_5 = spv_get_constant_composite(ctx, src0.tid, ctx->spirv.id_0_5, 0.5f); - - uint32 id_cmp = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpFUnordGreaterThan, spv_get_type(ctx, STI_BVEC4), id_cmp, src0.id, id_0_5); - spv_emit(ctx, 6, SpvOpSelect, dst.tid, dst.id, id_cmp, src1.id, src2.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_CND - -void emit_SPIRV_LIT(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - - if (!ctx->spirv.id_func_lit) - ctx->spirv.id_func_lit = spv_bumpid(ctx); - - spv_emit(ctx, 5, SpvOpFunctionCall, dst.tid, dst.id, ctx->spirv.id_func_lit, src.id); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_LIT - -void emit_SPIRV_DST(Context *ctx) -{ - SpirvResult dst, src0, src1; - spv_emit_begin_dss(ctx, &dst, &src0, &src1); - - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - dst.tid = spv_get_type(ctx, STI_VEC4); - uint32 id_1_0 = spv_getscalarf(ctx, 1.0f); - uint32 id_src0_y = spv_bumpid(ctx); - uint32 id_src1_y = spv_bumpid(ctx); - uint32 id_src0_z = spv_bumpid(ctx); - uint32 id_src1_w = spv_bumpid(ctx); - uint32 id_dst_y = spv_bumpid(ctx); - dst.id = spv_bumpid(ctx); - - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_src0_y, src0.id, 1); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_src1_y, src1.id, 1); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_src0_z, src0.id, 2); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_src1_w, src1.id, 3); - spv_emit(ctx, 5, SpvOpFMul, tid_float, id_dst_y, id_src0_y, id_src1_y); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, dst.tid, dst.id, id_1_0, id_dst_y, id_src0_z, id_src1_w); - - spv_emit_end(ctx, dst); -} // emit_SPIRV_DST - -void emit_SPIRV_LRP(Context *ctx) -{ - // lerp(x, y, a) = x + a*(y - x) - // = x*(1 - a) + y*a - SpirvResult a = spv_load_srcarg_full(ctx, 0); // 'scale' - SpirvResult y = spv_load_srcarg_full(ctx, 1); // 'end' - SpirvResult x = spv_load_srcarg_full(ctx, 2); // 'start' - assert(x.tid == y.tid); - SpirvResult result; - result.id = spv_bumpid(ctx); - result.tid = x.tid; - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5 + 3, SpvOpExtInst, result.tid, result.id, spv_getext(ctx), GLSLstd450FMix, x.id, y.id, a.id); - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_LRP - -static void spv_emit_vecXmatrix(Context *ctx, int rows, int writemask) -{ - int i; - - assert(rows <= 4); - assert(writemask == 0x7 || writemask == 0xF); - - uint32 src0 = spv_load_srcarg(ctx, 0, writemask).id; - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - - RegisterType src1type = ctx->source_args[1].regtype; - int src1num = ctx->source_args[1].regnum; - - uint32 result_components[4]; - for (i = 0; i < rows; i++) - { - SpirvResult row = spv_loadreg(ctx, spv_getreg(ctx, src1type, src1num + i)); - row = spv_swizzle(ctx, row, SPV_NO_SWIZZLE, writemask); - uint32 dot_result = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpDot, tid_float, dot_result, src0, row.id); - pop_output(ctx); - - result_components[i] = dot_result; - } // for - - SpirvResult r; - r.tid = spv_get_type(ctx, STI_VEC4); - r.id = spv_bumpid(ctx); - - uint32 id_zero = 0; - if (rows < 4) - id_zero = spv_getscalarf(ctx, 0.0f); - - push_output(ctx, &ctx->mainline); - spv_emit_part(ctx, 3 + 4, 3, SpvOpCompositeConstruct, r.tid, r.id); - for (i = 0; i < rows; i++) spv_emit_word(ctx, result_components[i]); - for (i = rows; i < 4; i++) spv_emit_word(ctx, id_zero); - pop_output(ctx); - - spv_assign_destarg(ctx, r); -} // spv_emit_vecXmatrix - -void emit_SPIRV_M4X4(Context *ctx) -{ - // float4 * (4 columns, 4 rows) -> float4 - spv_emit_vecXmatrix(ctx, 4, 0xF); -} // emit_SPIRV_M4X4 - -void emit_SPIRV_M4X3(Context *ctx) -{ - // float4 * (4 columns, 3 rows) -> float3 - spv_emit_vecXmatrix(ctx, 3, 0xF); -} // emit_SPIRV_M4X3 - -void emit_SPIRV_M3X4(Context *ctx) -{ - // float3 * (3 columns, 4 rows) -> float4 - spv_emit_vecXmatrix(ctx, 4, 0x7); -} // emit_SPIRV_M3X4 - -void emit_SPIRV_M3X3(Context *ctx) -{ - // float3 * (3 columns, 3 rows) -> float3 - spv_emit_vecXmatrix(ctx, 3, 0x7); -} // emit_SPIRV_M3X3 - -void emit_SPIRV_M3X2(Context *ctx) -{ - // float3 * (3 columns, 2 rows) -> float2 - spv_emit_vecXmatrix(ctx, 2, 0x7); -} // emit_SPIRV_M3X2 - -void emit_SPIRV_TEXLD(Context *ctx) -{ - if (!shader_version_atleast(ctx, 1, 4)) - { - DestArgInfo *dst_info = &ctx->dest_arg; - - RegisterList *sreg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, dst_info->regnum); - RegisterList *treg = spv_getreg(ctx, dst_info->regtype, dst_info->regnum); - - // Variables are not declared using dcl opcodes, so handle it in this instruction. - assert(sreg->spirv.iddecl == 0); - assert(treg->spirv.iddecl == 0); - - // Prep the result - SpirvResult result; - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_bumpid(ctx); - SpirvResult sampler = spv_loadreg(ctx, sreg); - // OpImageSampleImplicitLod should ignore the components of this argument that - // it doesn't need, so we don't need to mask it - SpirvResult texcoord = spv_loadreg(ctx, treg); - - // Generate the instruction. - // OpImageSampleImplicitLod should ignore the components of the - // texcoord that it doesn't need, so we don't need to mask it. - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpImageSampleImplicitLod, result.tid, result.id, - sampler.id, texcoord.id); - pop_output(ctx); - - // Emit the result, finally. - assert(!isscalar(ctx, ctx->shader_type, sreg->regtype, sreg->regnum)); - spv_assign_destarg(ctx, result); - } // if - - else if (!shader_version_atleast(ctx, 2, 0)) - { - // ps_1_4 is different, too! - fail(ctx, "TEXLD == Shader Model 1.4 unimplemented."); // !!! FIXME - return; - } // else if - - else - { - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sampler_reg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, samp_arg->regnum); - const SourceArgInfo *texcoord_arg = &ctx->source_args[0]; - RegisterList *texcoord_reg = spv_getreg(ctx, texcoord_arg->regtype, texcoord_arg->regnum); - - if (sampler_reg == NULL) - { - fail(ctx, "TEXLD using undeclared sampler"); - return; - } // if - - // OpImageSampleImplicitLod should ignore the components of this argument that - // it doesn't need, so we don't need to mask it - uint32 texcoord = spv_load_srcarg_full(ctx, 0).id; - uint32 sampler = spv_load_srcarg_full(ctx, 1).id; - - // Special case for TEXLDB - // !!! FIXME: does the d3d bias value map directly to GLSL? - uint32 bias; - uint32 instruction_length; - if (ctx->instruction_controls == CONTROL_TEXLDB) - { - uint32 float_tid = spv_get_type(ctx, STI_FLOAT); - bias = spv_bumpid(ctx); - instruction_length = 7; - - // The w component of texcoord_reg specifies the bias. Extract it from texcoord_reg - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 4 + 1, SpvOpCompositeExtract, float_tid, bias, texcoord, 3); - pop_output(ctx); - } // if - else - { - bias = 0; - instruction_length = 5; - } // else - - // Determine the opcode - SpvOp opcode; - if (ctx->instruction_controls == CONTROL_TEXLDP) - { - if ((TextureType) sampler_reg->index == TEXTURE_TYPE_CUBE) - fail(ctx, "TEXLDP on a cubemap"); // !!! FIXME: is this legal? - opcode = SpvOpImageSampleProjImplicitLod; - } // if - else - opcode = SpvOpImageSampleImplicitLod; - - // Prep the result - uint32 vec4_tid = spv_get_type(ctx, STI_VEC4); - uint32 result = spv_bumpid(ctx); - - // Generate the instruction. - // OpImageSampleImplicitLod should ignore the components of the - // texcoord that it doesn't need, so we don't need to mask it. - push_output(ctx, &ctx->mainline); - spv_emit_part(ctx, instruction_length, 5, opcode, vec4_tid, result, - sampler, texcoord); - if (ctx->instruction_controls == CONTROL_TEXLDB) - { - // ... include the bias operand, if applicable - spv_emit_word(ctx, SpvImageOperandsBiasMask); - spv_emit_word(ctx, bias); - } // if - pop_output(ctx); - - // Emit the result, finally. - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - SpirvResult r; - r.id = result; - r.tid = vec4_tid; - spv_assign_destarg(ctx, r); - } // else -} // emit_SPIRV_TEXLD - -void emit_SPIRV_IF(Context *ctx) -{ - SpirvResult src0 = spv_load_srcarg(ctx, 0, 0x1); - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 id_cond = src0.id; - - // Predicate register is already boolean so no need to convert. - if (src0.tid != tid_bool) - { - uint32 id_zero = spv_getscalari(ctx, 0); - id_cond = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpINotEqual, tid_bool, id_cond, src0.id, id_zero); - } // if - - uint32 id_label_branch = spv_bumpid(ctx); - uint32 id_label_merge = spv_bumpid(ctx); - spv_emit(ctx, 3, SpvOpSelectionMerge, id_label_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, id_cond, id_label_branch, id_label_merge); - spv_branch_push(ctx, id_label_merge, buffer_size(ctx->output) - 4); - spv_emit(ctx, 2, SpvOpLabel, id_label_branch); -} // emit_SPIRV_IF - -void emit_SPIRV_IFC(Context *ctx) -{ - SpvOp cmp_op = spv_get_comparison(ctx); - SpirvResult src0 = spv_load_srcarg(ctx, 0, 0x1); - SpirvResult src1 = spv_load_srcarg(ctx, 1, 0x1); - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 id_cond = spv_bumpid(ctx); - uint32 id_label_branch = spv_bumpid(ctx); - uint32 id_label_merge = spv_bumpid(ctx); - - spv_emit(ctx, 5, cmp_op, tid_bool, id_cond, src0.id, src1.id); - spv_emit(ctx, 3, SpvOpSelectionMerge, id_label_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, id_cond, id_label_branch, id_label_merge); - spv_branch_push(ctx, id_label_merge, buffer_size(ctx->output) - 4); - spv_emit(ctx, 2, SpvOpLabel, id_label_branch); -} // emit_SPIRV_IFC - -void emit_SPIRV_ELSE(Context *ctx) -{ - uint32 id_label_merge, patch_offset; - spv_branch_get(ctx, &id_label_merge, &patch_offset); - uint32 id_label_else = spv_bumpid(ctx); - - buffer_patch(ctx->output, patch_offset, &id_label_else, sizeof(id_label_else)); - spv_emit(ctx, 2, SpvOpBranch, id_label_merge); - spv_emit(ctx, 2, SpvOpLabel, id_label_else); -} // emit_SPIRV_ELSE - -void emit_SPIRV_ENDIF(Context *ctx) -{ - uint32 id_label_merge, patch_offset; - spv_branch_pop(ctx, &id_label_merge, &patch_offset); - - spv_emit(ctx, 2, SpvOpBranch, id_label_merge); - spv_emit(ctx, 2, SpvOpLabel, id_label_merge); -} // emit_SPIRV_ENDIF - -void emit_SPIRV_REP(Context *ctx) -{ - SpirvLoopInfo loop = {0}; - uint32 id_label_init = spv_bumpid(ctx); - loop.id_label_header = spv_bumpid(ctx); - uint32 id_label_cond = spv_bumpid(ctx); - uint32 id_label_body = spv_bumpid(ctx); - loop.id_label_continue = spv_bumpid(ctx); - loop.id_label_merge = spv_bumpid(ctx); - - // emit end of previous block - spv_emit(ctx, 2, SpvOpBranch, id_label_init); - - // emit loop init block - spv_emit(ctx, 2, SpvOpLabel, id_label_init); - // This block only exists to allow use of SpvOpPhi in loop header block. - // SpvOpPhi needs to refer to predecessor by it's label ID, so insert dummy - // block just so we know what the ID is. - SpirvResult src0 = spv_load_srcarg(ctx, 0, 0x1); - - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - loop.tid_counter = src0.tid; - loop.id_counter = spv_bumpid(ctx); - loop.id_counter_next = spv_bumpid(ctx); - - uint32 id_cond = spv_bumpid(ctx); - uint32 id_zero = spv_getscalari(ctx, 0); - spv_emit(ctx, 2, SpvOpBranch, loop.id_label_header); - - // emit loop header block - spv_emit(ctx, 2, SpvOpLabel, loop.id_label_header); - spv_emit(ctx, 7, SpvOpPhi, loop.tid_counter, loop.id_counter, - src0.id, id_label_init, - loop.id_counter_next, loop.id_label_continue - ); - spv_emit(ctx, 4, SpvOpLoopMerge, loop.id_label_merge, loop.id_label_continue, 0); - spv_emit(ctx, 2, SpvOpBranch, id_label_cond); - - // emit loop condition block - spv_emit(ctx, 2, SpvOpLabel, id_label_cond); - spv_emit(ctx, 5, SpvOpINotEqual, tid_bool, id_cond, loop.id_counter, id_zero); - spv_emit(ctx, 4, SpvOpBranchConditional, id_cond, id_label_body, loop.id_label_merge); - - // emit start of loop body block - spv_emit(ctx, 2, SpvOpLabel, id_label_body); - - spv_loop_push(ctx, &loop); -} // emit_SPIRV_REP - -void emit_SPIRV_ENDREP(Context *ctx) -{ - uint32 id_one = spv_getscalari(ctx, 1); - SpirvLoopInfo loop; - spv_loop_pop(ctx, &loop); - - // emit end of loop body block - spv_emit(ctx, 2, SpvOpBranch, loop.id_label_continue); - - // emit loop continue block - spv_emit(ctx, 2, SpvOpLabel, loop.id_label_continue); - spv_emit(ctx, 5, SpvOpISub, loop.tid_counter, loop.id_counter_next, loop.id_counter, id_one); - spv_emit(ctx, 2, SpvOpBranch, loop.id_label_header); - - // emit start of next block - spv_emit(ctx, 2, SpvOpLabel, loop.id_label_merge); -} // emit_SPIRV_ENDREP - -void emit_SPIRV_LOOP(Context *ctx) -{ - SpirvLoopInfo loop = {0}; - uint32 id_label_init = spv_bumpid(ctx); - loop.id_label_header = spv_bumpid(ctx); - uint32 id_label_cond = spv_bumpid(ctx); - uint32 id_label_body = spv_bumpid(ctx); - loop.id_label_continue = spv_bumpid(ctx); - loop.id_label_merge = spv_bumpid(ctx); - - /* - i#.x = iteration count; every round we decrement it and terminate on 0. - i#.y = aL initial value; every round we subtract aL step from it. - i#.z = aL step value; - - We use copy of i# as iteration variable. Compared to rep loop, we only - need to add single instruction for extracting current aL value as single - int. - - rep i0 - for (int i = i0.x; i; i--) - - loop aL, i0 - for (int3 i = i0, int aL = i.y; i.x; i.x--, aL += i.z) - */ - - // emit end of previous block - spv_emit(ctx, 2, SpvOpBranch, id_label_init); - - // emit loop init block - spv_emit(ctx, 2, SpvOpLabel, id_label_init); - // This block only exists to allow use of SpvOpPhi in loop header block. - // SpvOpPhi needs to refer to predecessor by it's label ID, so insert dummy block just so we - // know what the ID is. - - // src0 has aL register. Does it hold any interesting information? - SpirvResult src1 = spv_load_srcarg(ctx, 1, 0x7); - uint32 tid_int = spv_get_type(ctx, STI_INT); - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - - loop.tid_counter = src1.tid; - loop.id_counter = spv_bumpid(ctx); - loop.id_counter_next = spv_bumpid(ctx); - loop.id_aL = spv_bumpid(ctx); - uint32 id_counter_x = spv_bumpid(ctx); - - uint32 id_cond = spv_bumpid(ctx); - uint32 id_zero = spv_getscalari(ctx, 0); - spv_emit(ctx, 2, SpvOpBranch, loop.id_label_header); - - // emit loop header block - spv_emit(ctx, 2, SpvOpLabel, loop.id_label_header); - spv_emit(ctx, 7, SpvOpPhi, loop.tid_counter, loop.id_counter, - src1.id, id_label_init, - loop.id_counter_next, loop.id_label_continue - ); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_int, loop.id_aL, loop.id_counter, 1); - spv_emit(ctx, 4, SpvOpLoopMerge, loop.id_label_merge, loop.id_label_continue, 0); - spv_emit(ctx, 2, SpvOpBranch, id_label_cond); - - // emit loop condition block - spv_emit(ctx, 2, SpvOpLabel, id_label_cond); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_int, id_counter_x, loop.id_counter, 0); - spv_emit(ctx, 5, SpvOpINotEqual, tid_bool, id_cond, id_counter_x, id_zero); - spv_emit(ctx, 4, SpvOpBranchConditional, id_cond, id_label_body, loop.id_label_merge); - - // emit start of loop body block - spv_emit(ctx, 2, SpvOpLabel, id_label_body); - - spv_loop_push(ctx, &loop); -} // emit_SPIRV_LOOP - -void emit_SPIRV_ENDLOOP(Context *ctx) -{ - uint32 tid_int = spv_get_type(ctx, STI_INT); - uint32 tid_ivec2 = spv_get_type(ctx, STI_IVEC2); - - uint32 id_minus_one = spv_getscalari(ctx, -1); - uint32 id_counter_z = spv_bumpid(ctx); - uint32 id_inc = spv_bumpid(ctx); - uint32 id_counter_xy = spv_bumpid(ctx); - uint32 id_counter_next_xy = spv_bumpid(ctx); - - SpirvLoopInfo loop; - spv_loop_pop(ctx, &loop); - - // emit end of loop body block - spv_emit(ctx, 2, SpvOpBranch, loop.id_label_continue); - - // emit loop continue block - spv_emit(ctx, 2, SpvOpLabel, loop.id_label_continue); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_int, id_counter_z, loop.id_counter, 2); - spv_emit(ctx, 5, SpvOpCompositeConstruct, tid_ivec2, id_inc, id_minus_one, id_counter_z); - spv_emit(ctx, 7, SpvOpVectorShuffle, tid_ivec2, id_counter_xy, loop.id_counter, loop.id_counter, 0, 1); - spv_emit(ctx, 5, SpvOpIAdd, tid_ivec2, id_counter_next_xy, id_counter_xy, id_inc); - spv_emit(ctx, 5, SpvOpCompositeConstruct, loop.tid_counter, loop.id_counter_next, id_counter_next_xy, id_counter_z); - spv_emit(ctx, 2, SpvOpBranch, loop.id_label_header); - - // emit start of next block - spv_emit(ctx, 2, SpvOpLabel, loop.id_label_merge); -} // emit_SPIRV_ENDLOOP - -void emit_SPIRV_BREAKC(Context *ctx) -{ - SpirvLoopInfo loop; - spv_loop_get(ctx, &loop); - - SpvOp cmp_op = spv_get_comparison(ctx); - SpirvResult src0 = spv_load_srcarg(ctx, 0, 0x1); - SpirvResult src1 = spv_load_srcarg(ctx, 1, 0x1); - uint32 tid_bool = spv_get_type(ctx, STI_BOOL); - uint32 id_cond = spv_bumpid(ctx); - uint32 id_label_merge = spv_bumpid(ctx); - - // emit branch to merge target - spv_emit(ctx, 5, cmp_op, tid_bool, id_cond, src0.id, src1.id); - spv_emit(ctx, 3, SpvOpSelectionMerge, id_label_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, id_cond, loop.id_label_merge, id_label_merge); - spv_emit(ctx, 2, SpvOpLabel, id_label_merge); -} // emit_SPIRV_BREAKC - -void emit_SPIRV_BREAKP(Context *ctx) -{ - SpirvLoopInfo loop; - spv_loop_get(ctx, &loop); - - SpirvResult src0 = spv_load_srcarg(ctx, 0, 0x1); - - uint32 id_label_merge = spv_bumpid(ctx); - - spv_emit(ctx, 3, SpvOpSelectionMerge, id_label_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, src0.id, loop.id_label_merge, id_label_merge); - spv_emit(ctx, 2, SpvOpLabel, id_label_merge); -} // emit_SPIRV_BREAKP - -void emit_SPIRV_LABEL(Context *ctx) -{ - const SourceArgInfo* arg = &ctx->source_args[0]; - RegisterList *reg = spv_getreg(ctx, arg->regtype, arg->regnum); - spv_check_read_reg_id(ctx, reg); - - uint32 tid_void = spv_get_type(ctx, STI_VOID); - uint32 tid_func = spv_get_type(ctx, STI_FUNC_VOID); - uint32 id_func = reg->spirv.iddecl; - uint32 id_label = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpFunction, tid_void, id_func, 0, tid_func); - spv_emit(ctx, 2, SpvOpLabel, id_label); - pop_output(ctx); -} // emit_SPIRV_LABEL - -void emit_SPIRV_RET(Context *ctx) -{ - spv_emit_func_end(ctx); -} // emit_SPIRV_RET - -void emit_SPIRV_CALL(Context *ctx) -{ - const SourceArgInfo* arg = &ctx->source_args[0]; - RegisterList *reg = spv_getreg(ctx, arg->regtype, arg->regnum); - spv_check_read_reg_id(ctx, reg); - - uint32 tid_void = spv_get_type(ctx, STI_VOID); - uint32 id_res = spv_bumpid(ctx); - uint32 id_func = reg->spirv.iddecl; - - push_output(ctx, &ctx->mainline); - if (ctx->loops > 0) - failf(ctx, "Function calls referencing aL not implemented."); - else - spv_emit(ctx, 4, SpvOpFunctionCall, tid_void, id_res, id_func); - - pop_output(ctx); -} // emit_SPIRV_CALL - -void emit_SPIRV_CALLNZ(Context *ctx) -{ - const SourceArgInfo* arg = &ctx->source_args[0]; - RegisterList *reg = spv_getreg(ctx, arg->regtype, arg->regnum); - spv_check_read_reg_id(ctx, reg); - - SpirvResult src1 = spv_load_srcarg(ctx, 1, 0x1); - - uint32 tid_void = spv_get_type(ctx, STI_VOID); - uint32 id_label_then = spv_bumpid(ctx); - uint32 id_func = reg->spirv.iddecl; - uint32 id_call_res = spv_bumpid(ctx); - uint32 id_label_merge = spv_bumpid(ctx); - - spv_emit(ctx, 3, SpvOpSelectionMerge, id_label_merge, 0); - spv_emit(ctx, 4, SpvOpBranchConditional, src1.id, id_label_then, id_label_merge); - - spv_emit(ctx, 2, SpvOpLabel, id_label_then); - if (ctx->loops > 0) - failf(ctx, "Function calls referencing aL not implemented."); - else - spv_emit(ctx, 4, SpvOpFunctionCall, tid_void, id_call_res, id_func); - spv_emit(ctx, 2, SpvOpBranch, id_label_merge); - - spv_emit(ctx, 2, SpvOpLabel, id_label_merge); -} // emit_SPIRV_CALLNZ - -void emit_SPIRV_TEXLDD(Context *ctx) -{ - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - if (!reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, samp_arg->regnum)) - { - fail(ctx, "TEXLDD using undeclared sampler"); - return; - } // if - - // Prep the result - SpirvResult result; - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_bumpid(ctx); - - SpirvResult texcoord = spv_load_srcarg_full(ctx, 0); - SpirvResult sampler = spv_load_srcarg_full(ctx, 1); - SpirvResult grad_x = spv_load_srcarg_full(ctx, 2); - SpirvResult grad_y = spv_load_srcarg_full(ctx, 3); - - // Generate the instruction. - // SpvOpImageSampleExplicitLod should ignore the components of the - // texcoord that it doesn't need, so we don't need to mask it. - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 8, SpvOpImageSampleExplicitLod, result.tid, result.id, sampler.id, - texcoord.id, SpvImageOperandsGradMask, grad_x.id, grad_y.id); - pop_output(ctx); - - // Emit the result, finally. - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - spv_assign_destarg(ctx, result); -} // emit_SPIRV_TEXLDD - -void emit_SPIRV_SETP(Context *ctx) -{ - SpirvResult src0 = spv_load_srcarg_full(ctx, 0); - SpirvResult src1 = spv_load_srcarg_full(ctx, 1); - - SpirvResult dst; - dst.tid = spv_get_type(ctx, STI_BVEC4); - dst.id = spv_bumpid(ctx); - - SpvOp cmp_op = spv_get_comparison(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, cmp_op, dst.tid, dst.id, src0.id, src1.id); - pop_output(ctx); - - spv_assign_destarg(ctx, dst); -} // emit_SPIRV_SETP - -void emit_SPIRV_TEXLDL(Context *ctx) -{ - const SourceArgInfo *samp_arg = &ctx->source_args[1]; - RegisterList *sampler_reg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, samp_arg->regnum); - if (sampler_reg == NULL) - { - fail(ctx, "TEXLDL using undeclared sampler"); - return; - } // if - assert(!isscalar(ctx, ctx->shader_type, samp_arg->regtype, samp_arg->regnum)); - - // Prep the result - SpirvResult result; - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_bumpid(ctx); - - SpirvResult sampler = spv_load_srcarg_full(ctx, 1); - SpirvResult texcoord = spv_load_srcarg_full(ctx, 0); - - // The w component of texcoord_reg specifies the LOD. Extract it from texcoord_reg - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 id_lod = spv_bumpid(ctx); - - // Generate the instruction. - // SpvOpImageSampleExplicitLod should ignore the components of the - // texcoord that it doesn't need, so we don't need to mask it. - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 4 + 1, SpvOpCompositeExtract, tid_float, id_lod, texcoord.id, 3); - spv_emit(ctx, 7, SpvOpImageSampleExplicitLod, result.tid, result.id, sampler.id, - texcoord.id, SpvImageOperandsLodMask, id_lod); - pop_output(ctx); - - // Emit the result, finally. - spv_assign_destarg(ctx, result); -} // emit_SPIRV_TEXLDL - -void emit_SPIRV_BREAK(Context *ctx) -{ - uint32 id_label_merge = spv_bumpid(ctx); - spv_emit(ctx, 3, SpvOpSelectionMerge, id_label_merge, 0); - spv_emit(ctx, 2, SpvOpBranch, id_label_merge); - spv_emit(ctx, 2, SpvOpLabel, id_label_merge); -} // emit_SPIRV_BREAK - -void emit_SPIRV_TEXM3X2PAD(Context *ctx) -{ - // no-op ... work happens in emit_SPIRV_TEXM3X2TEX(). -} // emit_SPIRV_TEXM3X2PAD - -void emit_SPIRV_TEXM3X2TEX(Context *ctx) -{ - if (ctx->texm3x2pad_src0 == -1) - return; - - DestArgInfo *pDstInfo = &ctx->dest_arg; - - RegisterList *pSReg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, pDstInfo->regnum); - RegisterList *pSrc0 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_src0); - RegisterList *pSrc1 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->texm3x2pad_dst0); - RegisterList *pSrc2 = spv_getreg(ctx, REG_TYPE_TEXTURE, ctx->source_args[0].regnum); - RegisterList *pDst = spv_getreg(ctx, pDstInfo->regtype, pDstInfo->regnum); - - SpirvResult sampler = spv_loadreg(ctx, pSReg); - SpirvResult src0 = spv_loadreg(ctx, pSrc0); - SpirvResult src1 = spv_loadreg(ctx, pSrc1); - SpirvResult src2 = spv_loadreg(ctx, pSrc2); - SpirvResult src3 = spv_loadreg(ctx, pDst); - - src0 = spv_swizzle(ctx, src0, SPV_NO_SWIZZLE, 0x7); - src1 = spv_swizzle(ctx, src1, SPV_NO_SWIZZLE, 0x7); - src2 = spv_swizzle(ctx, src2, SPV_NO_SWIZZLE, 0x7); - src3 = spv_swizzle(ctx, src3, SPV_NO_SWIZZLE, 0x7); - - SpirvResult result; - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 tid_vec2 = spv_get_type(ctx, STI_VEC2); - result.tid = spv_get_type(ctx, STI_VEC4); - uint32 id_x = spv_bumpid(ctx); - uint32 id_y = spv_bumpid(ctx); - uint32 id_texcoord = spv_bumpid(ctx); - result.id = spv_bumpid(ctx); - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 5, SpvOpDot, tid_float, id_x, src0.id, src1.id); - spv_emit(ctx, 5, SpvOpDot, tid_float, id_y, src2.id, src3.id); - spv_emit(ctx, 3+2, SpvOpCompositeConstruct, tid_vec2, id_texcoord, id_x, id_y); - spv_emit(ctx, 5, SpvOpImageSampleImplicitLod, result.tid, result.id, sampler.id, id_texcoord); - pop_output(ctx); - spv_assign_destarg(ctx, result); -} // emit_SPIRV_TEXM3X2TEX - -void emit_SPIRV_TEXM3X3PAD(Context *ctx) -{ - // no-op ... work happens in emit_SPIRV_TEXM3X3*(). -} // emit_SPIRV_TEXM3X3PAD - -void emit_SPIRV_TEXM3X3(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - // vec4( - // dot({src0}.xyz, {src1}.xyz), - // dot({src2}.xyz, {src3}.xyz), - // dot({dst}.xyz, {src4}.xyz), - // 1 - // ) - - uint32 id_1 = spv_getscalarf(ctx, 1.0f); - - SpirvTexm3x3SetupResult setup = spv_texm3x3_setup(ctx); - - SpirvResult result; - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 3 + 4, SpvOpCompositeConstruct, result.tid, result.id, - setup.id_res_x, setup.id_res_y, setup.id_res_z, id_1 - ); - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_TEXM3X3 - -void emit_SPIRV_TEXM3X3TEX(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - RegisterList *pSReg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, ctx->dest_arg.regnum); - - // texture{ttypestr}({sampler}, - // vec3( - // dot({src0}.xyz, {src1}.xyz), - // dot({src2}.xyz, {src3}.xyz), - // dot({dst}.xyz, {src4}.xyz) - // ), - // ) - - SpirvResult sampler = spv_loadreg(ctx, pSReg); - - SpirvTexm3x3SetupResult setup = spv_texm3x3_setup(ctx); - - uint32 tid_vec3 = spv_get_type(ctx, STI_VEC3); - uint32 tid_vec4 = spv_get_type(ctx, STI_VEC4); - uint32 id_tc = spv_bumpid(ctx); - - SpirvResult result; - result.tid = tid_vec4; - result.id = spv_bumpid(ctx); - - push_output(ctx, &ctx->mainline); - spv_emit(ctx, 3 + 3, SpvOpCompositeConstruct, tid_vec3, id_tc, - setup.id_res_x, setup.id_res_y, setup.id_res_z - ); - spv_emit(ctx, 5, SpvOpImageSampleImplicitLod, result.tid, result.id, sampler.id, id_tc); - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_TEXM3X3TEX - -void emit_SPIRV_TEXM3X3SPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - RegisterList *pSReg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, ctx->dest_arg.regnum); - RegisterList *pSrc5 = spv_getreg(ctx, ctx->source_args[1].regtype, ctx->source_args[1].regnum); - - SpirvTexm3x3SetupResult setup = spv_texm3x3_setup(ctx); - - uint32 tid_vec3 = spv_get_type(ctx, STI_VEC3); - - push_output(ctx, &ctx->mainline); - - uint32 id_normal = spv_bumpid(ctx); - spv_emit(ctx, 3 + 3, SpvOpCompositeConstruct, tid_vec3, id_normal, - setup.id_res_x, setup.id_res_y, setup.id_res_z - ); - - SpirvResult src5 = spv_loadreg(ctx, pSrc5); - - uint32 id_eyeray = spv_bumpid(ctx); - spv_emit(ctx, 5 + 3, SpvOpVectorShuffle, tid_vec3, id_eyeray, src5.id, src5.id, 0, 1, 2); - - uint32 id_reflected = spv_reflect(ctx, id_normal, id_eyeray); - - SpirvResult sampler = spv_loadreg(ctx, pSReg); - - SpirvResult result; - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpImageSampleImplicitLod, result.tid, result.id, sampler.id, id_reflected); - - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_TEXM3X3SPEC - -void emit_SPIRV_TEXM3X3VSPEC(Context *ctx) -{ - if (ctx->texm3x3pad_src1 == -1) - return; - - RegisterList *pSReg = reglist_find(&ctx->samplers, REG_TYPE_SAMPLER, ctx->dest_arg.regnum); - - SpirvTexm3x3SetupResult setup = spv_texm3x3_setup(ctx); - - uint32 tid_float = spv_get_type(ctx, STI_FLOAT); - uint32 tid_vec3 = spv_get_type(ctx, STI_VEC3); - - push_output(ctx, &ctx->mainline); - - uint32 id_normal = spv_bumpid(ctx); - spv_emit(ctx, 3 + 3, SpvOpCompositeConstruct, tid_vec3, id_normal, - setup.id_res_x, setup.id_res_y, setup.id_res_z - ); - - uint32 id_eyeray_x = spv_bumpid(ctx); - uint32 id_eyeray_y = spv_bumpid(ctx); - uint32 id_eyeray_z = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_eyeray_x, setup.id_dst_pad0, 3); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_eyeray_y, setup.id_dst_pad1, 3); - spv_emit(ctx, 5, SpvOpCompositeExtract, tid_float, id_eyeray_z, setup.id_dst, 3); - - uint32 id_eyeray = spv_bumpid(ctx); - spv_emit(ctx, 3 + 3, SpvOpCompositeConstruct, tid_vec3, id_eyeray, - id_eyeray_x, id_eyeray_y, id_eyeray_z - ); - - uint32 id_reflected = spv_reflect(ctx, id_normal, id_eyeray); - - SpirvResult sampler = spv_loadreg(ctx, pSReg); - - SpirvResult result; - result.tid = spv_get_type(ctx, STI_VEC4); - result.id = spv_bumpid(ctx); - spv_emit(ctx, 5, SpvOpImageSampleImplicitLod, result.tid, result.id, sampler.id, id_reflected); - - pop_output(ctx); - - spv_assign_destarg(ctx, result); -} // emit_SPIRV_TEXM3X3VSPEC - -void emit_SPIRV_TEXBEM(Context *ctx) -{ - spv_texbem(ctx, 0); -} // emit_SPIRV_TEXBEM - -void emit_SPIRV_TEXBEML(Context *ctx) -{ - spv_texbem(ctx, 1); -} // emit_SPIRV_TEXBEML - -void emit_SPIRV_EXPP(Context *ctx) -{ - // !!! FIXME: msdn's asm docs don't list this opcode, I'll have to check the driver documentation. - emit_SPIRV_EXP(ctx); // I guess this is just partial precision EXP? -} // emit_SPIRV_EXPP - -void emit_SPIRV_LOGP(Context *ctx) -{ - // LOGP is just low-precision LOG, but we'll take the higher precision. - emit_SPIRV_LOG(ctx); -} // emit_SPIRV_LOGP - -void emit_SPIRV_DSX(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - spv_emit(ctx, 4, SpvOpDPdx, dst.tid, dst.id, src.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_DSX - -void emit_SPIRV_DSY(Context *ctx) -{ - SpirvResult dst, src; - spv_emit_begin_ds(ctx, &dst, &src); - spv_emit(ctx, 4, SpvOpDPdy, dst.tid, dst.id, src.id); - spv_emit_end(ctx, dst); -} // emit_SPIRV_DSY - -void emit_SPIRV_RESERVED(Context *ctx) -{ - // do nothing; fails in the state machine. -} // emit_SPIRV_RESERVED - -// !!! FIXME: The following are unimplemented even in the GLSL emitter. -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXCRD) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2AR) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2GB) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXREG2RGB) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3TEX) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXM3X2DEPTH) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXDP3) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(TEXDEPTH) -EMIT_SPIRV_OPCODE_UNIMPLEMENTED_FUNC(BEM) - -#endif // SUPPORT_PROFILE_SPIRV - -#pragma GCC visibility pop diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_spirv.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_spirv.h deleted file mode 100644 index 0be5a2d0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/profiles/mojoshader_profile_spirv.h +++ /dev/null @@ -1,229 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#ifndef MOJOSHADER_PROFILE_SPIRV_H -#define MOJOSHADER_PROFILE_SPIRV_H - -#if SUPPORT_PROFILE_SPIRV - -#define MOJOSHADER_SPIRV_VS_SAMPLER_SET 0 -#define MOJOSHADER_SPIRV_PS_SAMPLER_SET 1 -#define MOJOSHADER_SPIRV_VS_UNIFORM_SET 2 -#define MOJOSHADER_SPIRV_PS_UNIFORM_SET 3 - -// For baked-in constants in SPIR-V we want to store scalar values that we can -// use in composites, since OpConstantComposite uses result ids constituates -// rather than value literals. -// We'll store these lists grouped by type and have the lists themselves -// ordered by value in the ctx.spirv struct. -typedef struct ComponentList -{ - // result id from OpConstant - uint32 id; - union { - float f; - int i; - uint32 u; - } v; - struct ComponentList *next; -} ComponentList; - -typedef struct SpirvLoopInfo -{ - uint32 tid_counter; - uint32 id_counter; - uint32 id_counter_next; - uint32 id_aL; - uint32 id_label_header; - uint32 id_label_continue; - uint32 id_label_merge; -} SpirvLoopInfo; - -typedef enum SpirvType -{ - ST_FLOAT = 0, - ST_SINT = 1, - ST_UINT = 2, - ST_BOOL = 3, -} SpirvType; - -typedef enum SpirvStorageClass -{ - SC_INPUT = 0, - SC_OUTPUT = 1, - SC_PRIVATE = 2, - SC_UNIFORM_CONSTANT = 3, -} SpirvStorageClass; - -/* Not all type parameter combinations are actually used, but it's all rounded up to 64 so - * it's easier to work with. - */ -typedef enum SpirvTypeIdx -{ - STI_VOID = 0, - STI_FUNC_VOID = 1, - STI_FUNC_LIT = 2, - STI_IMAGE2D = 3, - STI_IMAGE3D = 4, - STI_IMAGECUBE = 5, - STI_PTR_IMAGE2D = 6, - STI_PTR_IMAGE3D = 7, - STI_PTR_IMAGECUBE = 8, - STI_PTR_VEC2_I = 9, // special case, needed only for point coord input. - - // 6 unused entries - - // 4 base types * 4 vector sizes = 16 entries - STI_FLOAT = (0 << 5) | (1 << 4) | (ST_FLOAT << 2) | 0, - STI_VEC2 = (0 << 5) | (1 << 4) | (ST_FLOAT << 2) | 1, - STI_VEC3 = (0 << 5) | (1 << 4) | (ST_FLOAT << 2) | 2, - STI_VEC4 = (0 << 5) | (1 << 4) | (ST_FLOAT << 2) | 3, - STI_INT = (0 << 5) | (1 << 4) | (ST_SINT << 2) | 0, - STI_IVEC2 = (0 << 5) | (1 << 4) | (ST_SINT << 2) | 1, - STI_IVEC3 = (0 << 5) | (1 << 4) | (ST_SINT << 2) | 2, - STI_IVEC4 = (0 << 5) | (1 << 4) | (ST_SINT << 2) | 3, - STI_UINT = (0 << 5) | (1 << 4) | (ST_UINT << 2) | 0, - STI_UVEC2 = (0 << 5) | (1 << 4) | (ST_UINT << 2) | 1, - STI_UVEC3 = (0 << 5) | (1 << 4) | (ST_UINT << 2) | 2, - STI_UVEC4 = (0 << 5) | (1 << 4) | (ST_UINT << 2) | 3, - STI_BOOL = (0 << 5) | (1 << 4) | (ST_BOOL << 2) | 0, - STI_BVEC2 = (0 << 5) | (1 << 4) | (ST_BOOL << 2) | 1, - STI_BVEC3 = (0 << 5) | (1 << 4) | (ST_BOOL << 2) | 2, - STI_BVEC4 = (0 << 5) | (1 << 4) | (ST_BOOL << 2) | 3, - - // 2 dims (vec4 + scalar) * 4 base types * 4 storage classes - STI_PTR_FLOAT_I = (1 << 5) | (0 << 4) | (ST_FLOAT << 2) | SC_INPUT, - STI_PTR_FLOAT_O = (1 << 5) | (0 << 4) | (ST_FLOAT << 2) | SC_OUTPUT, - STI_PTR_FLOAT_P = (1 << 5) | (0 << 4) | (ST_FLOAT << 2) | SC_PRIVATE, - STI_PTR_FLOAT_U = (1 << 5) | (0 << 4) | (ST_FLOAT << 2) | SC_UNIFORM_CONSTANT, - STI_PTR_INT_I = (1 << 5) | (0 << 4) | (ST_SINT << 2) | SC_INPUT, - STI_PTR_INT_O = (1 << 5) | (0 << 4) | (ST_SINT << 2) | SC_OUTPUT, - STI_PTR_INT_P = (1 << 5) | (0 << 4) | (ST_SINT << 2) | SC_PRIVATE, - STI_PTR_INT_U = (1 << 5) | (0 << 4) | (ST_SINT << 2) | SC_UNIFORM_CONSTANT, - STI_PTR_UINT_I = (1 << 5) | (0 << 4) | (ST_UINT << 2) | SC_INPUT, - STI_PTR_UINT_O = (1 << 5) | (0 << 4) | (ST_UINT << 2) | SC_OUTPUT, - STI_PTR_UINT_P = (1 << 5) | (0 << 4) | (ST_UINT << 2) | SC_PRIVATE, - STI_PTR_UINT_U = (1 << 5) | (0 << 4) | (ST_UINT << 2) | SC_UNIFORM_CONSTANT, - STI_PTR_BOOL_I = (1 << 5) | (0 << 4) | (ST_BOOL << 2) | SC_INPUT, - STI_PTR_BOOL_O = (1 << 5) | (0 << 4) | (ST_BOOL << 2) | SC_OUTPUT, - STI_PTR_BOOL_P = (1 << 5) | (0 << 4) | (ST_BOOL << 2) | SC_PRIVATE, - STI_PTR_BOOL_U = (1 << 5) | (0 << 4) | (ST_BOOL << 2) | SC_UNIFORM_CONSTANT, - STI_PTR_VEC4_I = (1 << 5) | (1 << 4) | (ST_FLOAT << 2) | SC_INPUT, - STI_PTR_VEC4_O = (1 << 5) | (1 << 4) | (ST_FLOAT << 2) | SC_OUTPUT, - STI_PTR_VEC4_P = (1 << 5) | (1 << 4) | (ST_FLOAT << 2) | SC_PRIVATE, - STI_PTR_VEC4_U = (1 << 5) | (1 << 4) | (ST_FLOAT << 2) | SC_UNIFORM_CONSTANT, - STI_PTR_IVEC4_I = (1 << 5) | (1 << 4) | (ST_SINT << 2) | SC_INPUT, - STI_PTR_IVEC4_O = (1 << 5) | (1 << 4) | (ST_SINT << 2) | SC_OUTPUT, - STI_PTR_IVEC4_P = (1 << 5) | (1 << 4) | (ST_SINT << 2) | SC_PRIVATE, - STI_PTR_IVEC4_U = (1 << 5) | (1 << 4) | (ST_SINT << 2) | SC_UNIFORM_CONSTANT, - STI_PTR_UVEC4_I = (1 << 5) | (1 << 4) | (ST_UINT << 2) | SC_INPUT, - STI_PTR_UVEC4_O = (1 << 5) | (1 << 4) | (ST_UINT << 2) | SC_OUTPUT, - STI_PTR_UVEC4_P = (1 << 5) | (1 << 4) | (ST_UINT << 2) | SC_PRIVATE, - STI_PTR_UVEC4_U = (1 << 5) | (1 << 4) | (ST_UINT << 2) | SC_UNIFORM_CONSTANT, - STI_PTR_BVEC4_I = (1 << 5) | (1 << 4) | (ST_BOOL << 2) | SC_INPUT, - STI_PTR_BVEC4_O = (1 << 5) | (1 << 4) | (ST_BOOL << 2) | SC_OUTPUT, - STI_PTR_BVEC4_P = (1 << 5) | (1 << 4) | (ST_BOOL << 2) | SC_PRIVATE, - STI_PTR_BVEC4_U = (1 << 5) | (1 << 4) | (ST_BOOL << 2) | SC_UNIFORM_CONSTANT, - - // 2 + 6 + 16 + 32 = 56 entries (+ 8 unused) - - // Helpers - STI_LENGTH_, - - STI_MISC_START_ = 0, - STI_MISC_END_ = 8, - STI_CORE_START_ = (0 << 5) | (1 << 4), - STI_PTR_START_ = (1 << 5) | (0 << 4), - STI_CORE_END_ = STI_PTR_START_, - STI_PTR_END_ = STI_LENGTH_, -} SpirvTypeIdx; - -// In addition to result ID we also need type ID (can't assume everything is vec4). -typedef struct SpirvResult -{ - uint32 tid; - uint32 id; -} SpirvResult; - -// This doesn't 100% correspond to glslangValidator semantics. It just says which mode to use at -// runtime (different from compile-time support being enabled). Technically, we could generate the -// same for both, but that would require GL code to use UBOs. -typedef enum SpirvMode -{ - SPIRV_MODE_GL, - SPIRV_MODE_VK, -} SpirvMode; - -typedef struct SpirvContext -{ -#if SUPPORT_PROFILE_GLSPIRV - uint32 id_vs_main_end; -#endif // SUPPORT_PROFILE_GLSPIRV - SpirvMode mode; - uint32 hasdepth; - // ext. glsl instructions have been imported - uint32 idext; - uint32 idmax; - uint32 idmain; - uint32 id_func_lit; - uint32 inoutcount; - uint32 id_var_fragcoord; - uint32 id_var_vpos; - uint32 id_var_frontfacing; - uint32 id_var_vface; - uint32 id_var_texcoord0_input; - uint32 id_var_texcoord0_private; - // ids for types so we can reuse them after they're declared - uint32 tid[STI_LENGTH_]; - uint32 idtrue; - uint32 idfalse; - uint32 id_0_0[4]; - uint32 id_0_125[4]; - uint32 id_0_25[4]; - uint32 id_0_5[4]; - uint32 id_1_0[4]; - uint32 id_2_0[4]; - uint32 id_4_0[4]; - uint32 id_8_0[4]; - uint32 id_flt_max[4]; - struct { - uint32 idvec4; - uint32 idivec4; - uint32 idbool; - } uniform_arrays; - uint32 id_uniform_block; - struct { - uint32 idvec4; - } constant_arrays; - struct { - ComponentList f; - ComponentList i; - ComponentList u; - } cl; - - SpirvPatchTable patch_table; - - // Required only on ps_1_3 and below, which only has 4 registers for this purpose. - struct { - uint32 idtexbem; - uint32 idtexbeml; - } sampler_extras[4]; - - // TEX opcode in ps_1_3 and below has one implicit texcoord input attribute for each texture - // register. We use this array to hold SSA id of this input attribute (see emit_SPIRV_global - // for details). - uint32 id_implicit_input[4]; - - int loop_stack_idx; - SpirvLoopInfo loop_stack[32]; -} SpirvContext; - -#endif // if SUPPORT_PROFILE_SPIRV - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/spirv/GLSL.std.450.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/spirv/GLSL.std.450.h deleted file mode 100644 index df31092b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/spirv/GLSL.std.450.h +++ /dev/null @@ -1,131 +0,0 @@ -/* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -#ifndef GLSLstd450_H -#define GLSLstd450_H - -static const int GLSLstd450Version = 100; -static const int GLSLstd450Revision = 1; - -enum GLSLstd450 { - GLSLstd450Bad = 0, // Don't use - - GLSLstd450Round = 1, - GLSLstd450RoundEven = 2, - GLSLstd450Trunc = 3, - GLSLstd450FAbs = 4, - GLSLstd450SAbs = 5, - GLSLstd450FSign = 6, - GLSLstd450SSign = 7, - GLSLstd450Floor = 8, - GLSLstd450Ceil = 9, - GLSLstd450Fract = 10, - - GLSLstd450Radians = 11, - GLSLstd450Degrees = 12, - GLSLstd450Sin = 13, - GLSLstd450Cos = 14, - GLSLstd450Tan = 15, - GLSLstd450Asin = 16, - GLSLstd450Acos = 17, - GLSLstd450Atan = 18, - GLSLstd450Sinh = 19, - GLSLstd450Cosh = 20, - GLSLstd450Tanh = 21, - GLSLstd450Asinh = 22, - GLSLstd450Acosh = 23, - GLSLstd450Atanh = 24, - GLSLstd450Atan2 = 25, - - GLSLstd450Pow = 26, - GLSLstd450Exp = 27, - GLSLstd450Log = 28, - GLSLstd450Exp2 = 29, - GLSLstd450Log2 = 30, - GLSLstd450Sqrt = 31, - GLSLstd450InverseSqrt = 32, - - GLSLstd450Determinant = 33, - GLSLstd450MatrixInverse = 34, - - GLSLstd450Modf = 35, // second operand needs an OpVariable to write to - GLSLstd450ModfStruct = 36, // no OpVariable operand - GLSLstd450FMin = 37, - GLSLstd450UMin = 38, - GLSLstd450SMin = 39, - GLSLstd450FMax = 40, - GLSLstd450UMax = 41, - GLSLstd450SMax = 42, - GLSLstd450FClamp = 43, - GLSLstd450UClamp = 44, - GLSLstd450SClamp = 45, - GLSLstd450FMix = 46, - GLSLstd450IMix = 47, // Reserved - GLSLstd450Step = 48, - GLSLstd450SmoothStep = 49, - - GLSLstd450Fma = 50, - GLSLstd450Frexp = 51, // second operand needs an OpVariable to write to - GLSLstd450FrexpStruct = 52, // no OpVariable operand - GLSLstd450Ldexp = 53, - - GLSLstd450PackSnorm4x8 = 54, - GLSLstd450PackUnorm4x8 = 55, - GLSLstd450PackSnorm2x16 = 56, - GLSLstd450PackUnorm2x16 = 57, - GLSLstd450PackHalf2x16 = 58, - GLSLstd450PackDouble2x32 = 59, - GLSLstd450UnpackSnorm2x16 = 60, - GLSLstd450UnpackUnorm2x16 = 61, - GLSLstd450UnpackHalf2x16 = 62, - GLSLstd450UnpackSnorm4x8 = 63, - GLSLstd450UnpackUnorm4x8 = 64, - GLSLstd450UnpackDouble2x32 = 65, - - GLSLstd450Length = 66, - GLSLstd450Distance = 67, - GLSLstd450Cross = 68, - GLSLstd450Normalize = 69, - GLSLstd450FaceForward = 70, - GLSLstd450Reflect = 71, - GLSLstd450Refract = 72, - - GLSLstd450FindILsb = 73, - GLSLstd450FindSMsb = 74, - GLSLstd450FindUMsb = 75, - - GLSLstd450InterpolateAtCentroid = 76, - GLSLstd450InterpolateAtSample = 77, - GLSLstd450InterpolateAtOffset = 78, - - GLSLstd450NMin = 79, - GLSLstd450NMax = 80, - GLSLstd450NClamp = 81, - - GLSLstd450Count -}; - -#endif // #ifndef GLSLstd450_H diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/spirv/spirv.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/spirv/spirv.h deleted file mode 100644 index d48488e9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/spirv/spirv.h +++ /dev/null @@ -1,871 +0,0 @@ -/* -** Copyright (c) 2014-2016 The Khronos Group Inc. -** -** Permission is hereby granted, free of charge, to any person obtaining a copy -** of this software and/or associated documentation files (the "Materials"), -** to deal in the Materials without restriction, including without limitation -** the rights to use, copy, modify, merge, publish, distribute, sublicense, -** and/or sell copies of the Materials, and to permit persons to whom the -** Materials are furnished to do so, subject to the following conditions: -** -** The above copyright notice and this permission notice shall be included in -** all copies or substantial portions of the Materials. -** -** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS -** STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND -** HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ -** -** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -** OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -** THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -** LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -** FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS -** IN THE MATERIALS. -*/ - -/* -** This header is automatically generated by the same tool that creates -** the Binary Section of the SPIR-V specification. -*/ - -/* -** Enumeration tokens for SPIR-V, in various styles: -** C, C++, C++11, JSON, Lua, Python -** -** - C will have tokens with a "Spv" prefix, e.g.: SpvSourceLanguageGLSL -** - C++ will have tokens in the "spv" name space, e.g.: spv::SourceLanguageGLSL -** - C++11 will use enum classes in the spv namespace, e.g.: spv::SourceLanguage::GLSL -** - Lua will use tables, e.g.: spv.SourceLanguage.GLSL -** - Python will use dictionaries, e.g.: spv['SourceLanguage']['GLSL'] -** -** Some tokens act like mask values, which can be OR'd together, -** while others are mutually exclusive. The mask-like ones have -** "Mask" in their name, and a parallel enum that has the shift -** amount (1 << x) for each corresponding enumerant. -*/ - -#ifndef spirv_H -#define spirv_H - -typedef unsigned int SpvId; - -#define SPV_VERSION 0x10000 -#define SPV_REVISION 3 - -static const unsigned int SpvMagicNumber = 0x07230203; -static const unsigned int SpvVersion = 0x00010000; -static const unsigned int SpvRevision = 3; -static const unsigned int SpvOpCodeMask = 0xffff; -static const unsigned int SpvWordCountShift = 16; - -typedef enum SpvSourceLanguage_ { - SpvSourceLanguageUnknown = 0, - SpvSourceLanguageESSL = 1, - SpvSourceLanguageGLSL = 2, - SpvSourceLanguageOpenCL_C = 3, - SpvSourceLanguageOpenCL_CPP = 4, -} SpvSourceLanguage; - -typedef enum SpvExecutionModel_ { - SpvExecutionModelVertex = 0, - SpvExecutionModelTessellationControl = 1, - SpvExecutionModelTessellationEvaluation = 2, - SpvExecutionModelGeometry = 3, - SpvExecutionModelFragment = 4, - SpvExecutionModelGLCompute = 5, - SpvExecutionModelKernel = 6, -} SpvExecutionModel; - -typedef enum SpvAddressingModel_ { - SpvAddressingModelLogical = 0, - SpvAddressingModelPhysical32 = 1, - SpvAddressingModelPhysical64 = 2, -} SpvAddressingModel; - -typedef enum SpvMemoryModel_ { - SpvMemoryModelSimple = 0, - SpvMemoryModelGLSL450 = 1, - SpvMemoryModelOpenCL = 2, -} SpvMemoryModel; - -typedef enum SpvExecutionMode_ { - SpvExecutionModeInvocations = 0, - SpvExecutionModeSpacingEqual = 1, - SpvExecutionModeSpacingFractionalEven = 2, - SpvExecutionModeSpacingFractionalOdd = 3, - SpvExecutionModeVertexOrderCw = 4, - SpvExecutionModeVertexOrderCcw = 5, - SpvExecutionModePixelCenterInteger = 6, - SpvExecutionModeOriginUpperLeft = 7, - SpvExecutionModeOriginLowerLeft = 8, - SpvExecutionModeEarlyFragmentTests = 9, - SpvExecutionModePointMode = 10, - SpvExecutionModeXfb = 11, - SpvExecutionModeDepthReplacing = 12, - SpvExecutionModeDepthGreater = 14, - SpvExecutionModeDepthLess = 15, - SpvExecutionModeDepthUnchanged = 16, - SpvExecutionModeLocalSize = 17, - SpvExecutionModeLocalSizeHint = 18, - SpvExecutionModeInputPoints = 19, - SpvExecutionModeInputLines = 20, - SpvExecutionModeInputLinesAdjacency = 21, - SpvExecutionModeTriangles = 22, - SpvExecutionModeInputTrianglesAdjacency = 23, - SpvExecutionModeQuads = 24, - SpvExecutionModeIsolines = 25, - SpvExecutionModeOutputVertices = 26, - SpvExecutionModeOutputPoints = 27, - SpvExecutionModeOutputLineStrip = 28, - SpvExecutionModeOutputTriangleStrip = 29, - SpvExecutionModeVecTypeHint = 30, - SpvExecutionModeContractionOff = 31, -} SpvExecutionMode; - -typedef enum SpvStorageClass_ { - SpvStorageClassUniformConstant = 0, - SpvStorageClassInput = 1, - SpvStorageClassUniform = 2, - SpvStorageClassOutput = 3, - SpvStorageClassWorkgroup = 4, - SpvStorageClassCrossWorkgroup = 5, - SpvStorageClassPrivate = 6, - SpvStorageClassFunction = 7, - SpvStorageClassGeneric = 8, - SpvStorageClassPushConstant = 9, - SpvStorageClassAtomicCounter = 10, - SpvStorageClassImage = 11, -} SpvStorageClass; - -typedef enum SpvDim_ { - SpvDim1D = 0, - SpvDim2D = 1, - SpvDim3D = 2, - SpvDimCube = 3, - SpvDimRect = 4, - SpvDimBuffer = 5, - SpvDimSubpassData = 6, -} SpvDim; - -typedef enum SpvSamplerAddressingMode_ { - SpvSamplerAddressingModeNone = 0, - SpvSamplerAddressingModeClampToEdge = 1, - SpvSamplerAddressingModeClamp = 2, - SpvSamplerAddressingModeRepeat = 3, - SpvSamplerAddressingModeRepeatMirrored = 4, -} SpvSamplerAddressingMode; - -typedef enum SpvSamplerFilterMode_ { - SpvSamplerFilterModeNearest = 0, - SpvSamplerFilterModeLinear = 1, -} SpvSamplerFilterMode; - -typedef enum SpvImageFormat_ { - SpvImageFormatUnknown = 0, - SpvImageFormatRgba32f = 1, - SpvImageFormatRgba16f = 2, - SpvImageFormatR32f = 3, - SpvImageFormatRgba8 = 4, - SpvImageFormatRgba8Snorm = 5, - SpvImageFormatRg32f = 6, - SpvImageFormatRg16f = 7, - SpvImageFormatR11fG11fB10f = 8, - SpvImageFormatR16f = 9, - SpvImageFormatRgba16 = 10, - SpvImageFormatRgb10A2 = 11, - SpvImageFormatRg16 = 12, - SpvImageFormatRg8 = 13, - SpvImageFormatR16 = 14, - SpvImageFormatR8 = 15, - SpvImageFormatRgba16Snorm = 16, - SpvImageFormatRg16Snorm = 17, - SpvImageFormatRg8Snorm = 18, - SpvImageFormatR16Snorm = 19, - SpvImageFormatR8Snorm = 20, - SpvImageFormatRgba32i = 21, - SpvImageFormatRgba16i = 22, - SpvImageFormatRgba8i = 23, - SpvImageFormatR32i = 24, - SpvImageFormatRg32i = 25, - SpvImageFormatRg16i = 26, - SpvImageFormatRg8i = 27, - SpvImageFormatR16i = 28, - SpvImageFormatR8i = 29, - SpvImageFormatRgba32ui = 30, - SpvImageFormatRgba16ui = 31, - SpvImageFormatRgba8ui = 32, - SpvImageFormatR32ui = 33, - SpvImageFormatRgb10a2ui = 34, - SpvImageFormatRg32ui = 35, - SpvImageFormatRg16ui = 36, - SpvImageFormatRg8ui = 37, - SpvImageFormatR16ui = 38, - SpvImageFormatR8ui = 39, -} SpvImageFormat; - -typedef enum SpvImageChannelOrder_ { - SpvImageChannelOrderR = 0, - SpvImageChannelOrderA = 1, - SpvImageChannelOrderRG = 2, - SpvImageChannelOrderRA = 3, - SpvImageChannelOrderRGB = 4, - SpvImageChannelOrderRGBA = 5, - SpvImageChannelOrderBGRA = 6, - SpvImageChannelOrderARGB = 7, - SpvImageChannelOrderIntensity = 8, - SpvImageChannelOrderLuminance = 9, - SpvImageChannelOrderRx = 10, - SpvImageChannelOrderRGx = 11, - SpvImageChannelOrderRGBx = 12, - SpvImageChannelOrderDepth = 13, - SpvImageChannelOrderDepthStencil = 14, - SpvImageChannelOrdersRGB = 15, - SpvImageChannelOrdersRGBx = 16, - SpvImageChannelOrdersRGBA = 17, - SpvImageChannelOrdersBGRA = 18, -} SpvImageChannelOrder; - -typedef enum SpvImageChannelDataType_ { - SpvImageChannelDataTypeSnormInt8 = 0, - SpvImageChannelDataTypeSnormInt16 = 1, - SpvImageChannelDataTypeUnormInt8 = 2, - SpvImageChannelDataTypeUnormInt16 = 3, - SpvImageChannelDataTypeUnormShort565 = 4, - SpvImageChannelDataTypeUnormShort555 = 5, - SpvImageChannelDataTypeUnormInt101010 = 6, - SpvImageChannelDataTypeSignedInt8 = 7, - SpvImageChannelDataTypeSignedInt16 = 8, - SpvImageChannelDataTypeSignedInt32 = 9, - SpvImageChannelDataTypeUnsignedInt8 = 10, - SpvImageChannelDataTypeUnsignedInt16 = 11, - SpvImageChannelDataTypeUnsignedInt32 = 12, - SpvImageChannelDataTypeHalfFloat = 13, - SpvImageChannelDataTypeFloat = 14, - SpvImageChannelDataTypeUnormInt24 = 15, - SpvImageChannelDataTypeUnormInt101010_2 = 16, -} SpvImageChannelDataType; - -typedef enum SpvImageOperandsShift_ { - SpvImageOperandsBiasShift = 0, - SpvImageOperandsLodShift = 1, - SpvImageOperandsGradShift = 2, - SpvImageOperandsConstOffsetShift = 3, - SpvImageOperandsOffsetShift = 4, - SpvImageOperandsConstOffsetsShift = 5, - SpvImageOperandsSampleShift = 6, - SpvImageOperandsMinLodShift = 7, -} SpvImageOperandsShift; - -typedef enum SpvImageOperandsMask_ { - SpvImageOperandsMaskNone = 0, - SpvImageOperandsBiasMask = 0x00000001, - SpvImageOperandsLodMask = 0x00000002, - SpvImageOperandsGradMask = 0x00000004, - SpvImageOperandsConstOffsetMask = 0x00000008, - SpvImageOperandsOffsetMask = 0x00000010, - SpvImageOperandsConstOffsetsMask = 0x00000020, - SpvImageOperandsSampleMask = 0x00000040, - SpvImageOperandsMinLodMask = 0x00000080, -} SpvImageOperandsMask; - -typedef enum SpvFPFastMathModeShift_ { - SpvFPFastMathModeNotNaNShift = 0, - SpvFPFastMathModeNotInfShift = 1, - SpvFPFastMathModeNSZShift = 2, - SpvFPFastMathModeAllowRecipShift = 3, - SpvFPFastMathModeFastShift = 4, -} SpvFPFastMathModeShift; - -typedef enum SpvFPFastMathModeMask_ { - SpvFPFastMathModeMaskNone = 0, - SpvFPFastMathModeNotNaNMask = 0x00000001, - SpvFPFastMathModeNotInfMask = 0x00000002, - SpvFPFastMathModeNSZMask = 0x00000004, - SpvFPFastMathModeAllowRecipMask = 0x00000008, - SpvFPFastMathModeFastMask = 0x00000010, -} SpvFPFastMathModeMask; - -typedef enum SpvFPRoundingMode_ { - SpvFPRoundingModeRTE = 0, - SpvFPRoundingModeRTZ = 1, - SpvFPRoundingModeRTP = 2, - SpvFPRoundingModeRTN = 3, -} SpvFPRoundingMode; - -typedef enum SpvLinkageType_ { - SpvLinkageTypeExport = 0, - SpvLinkageTypeImport = 1, -} SpvLinkageType; - -typedef enum SpvAccessQualifier_ { - SpvAccessQualifierReadOnly = 0, - SpvAccessQualifierWriteOnly = 1, - SpvAccessQualifierReadWrite = 2, -} SpvAccessQualifier; - -typedef enum SpvFunctionParameterAttribute_ { - SpvFunctionParameterAttributeZext = 0, - SpvFunctionParameterAttributeSext = 1, - SpvFunctionParameterAttributeByVal = 2, - SpvFunctionParameterAttributeSret = 3, - SpvFunctionParameterAttributeNoAlias = 4, - SpvFunctionParameterAttributeNoCapture = 5, - SpvFunctionParameterAttributeNoWrite = 6, - SpvFunctionParameterAttributeNoReadWrite = 7, -} SpvFunctionParameterAttribute; - -typedef enum SpvDecoration_ { - SpvDecorationRelaxedPrecision = 0, - SpvDecorationSpecId = 1, - SpvDecorationBlock = 2, - SpvDecorationBufferBlock = 3, - SpvDecorationRowMajor = 4, - SpvDecorationColMajor = 5, - SpvDecorationArrayStride = 6, - SpvDecorationMatrixStride = 7, - SpvDecorationGLSLShared = 8, - SpvDecorationGLSLPacked = 9, - SpvDecorationCPacked = 10, - SpvDecorationBuiltIn = 11, - SpvDecorationNoPerspective = 13, - SpvDecorationFlat = 14, - SpvDecorationPatch = 15, - SpvDecorationCentroid = 16, - SpvDecorationSample = 17, - SpvDecorationInvariant = 18, - SpvDecorationRestrict = 19, - SpvDecorationAliased = 20, - SpvDecorationVolatile = 21, - SpvDecorationConstant = 22, - SpvDecorationCoherent = 23, - SpvDecorationNonWritable = 24, - SpvDecorationNonReadable = 25, - SpvDecorationUniform = 26, - SpvDecorationSaturatedConversion = 28, - SpvDecorationStream = 29, - SpvDecorationLocation = 30, - SpvDecorationComponent = 31, - SpvDecorationIndex = 32, - SpvDecorationBinding = 33, - SpvDecorationDescriptorSet = 34, - SpvDecorationOffset = 35, - SpvDecorationXfbBuffer = 36, - SpvDecorationXfbStride = 37, - SpvDecorationFuncParamAttr = 38, - SpvDecorationFPRoundingMode = 39, - SpvDecorationFPFastMathMode = 40, - SpvDecorationLinkageAttributes = 41, - SpvDecorationNoContraction = 42, - SpvDecorationInputAttachmentIndex = 43, - SpvDecorationAlignment = 44, -} SpvDecoration; - -typedef enum SpvBuiltIn_ { - SpvBuiltInPosition = 0, - SpvBuiltInPointSize = 1, - SpvBuiltInClipDistance = 3, - SpvBuiltInCullDistance = 4, - SpvBuiltInVertexId = 5, - SpvBuiltInInstanceId = 6, - SpvBuiltInPrimitiveId = 7, - SpvBuiltInInvocationId = 8, - SpvBuiltInLayer = 9, - SpvBuiltInViewportIndex = 10, - SpvBuiltInTessLevelOuter = 11, - SpvBuiltInTessLevelInner = 12, - SpvBuiltInTessCoord = 13, - SpvBuiltInPatchVertices = 14, - SpvBuiltInFragCoord = 15, - SpvBuiltInPointCoord = 16, - SpvBuiltInFrontFacing = 17, - SpvBuiltInSampleId = 18, - SpvBuiltInSamplePosition = 19, - SpvBuiltInSampleMask = 20, - SpvBuiltInFragDepth = 22, - SpvBuiltInHelperInvocation = 23, - SpvBuiltInNumWorkgroups = 24, - SpvBuiltInWorkgroupSize = 25, - SpvBuiltInWorkgroupId = 26, - SpvBuiltInLocalInvocationId = 27, - SpvBuiltInGlobalInvocationId = 28, - SpvBuiltInLocalInvocationIndex = 29, - SpvBuiltInWorkDim = 30, - SpvBuiltInGlobalSize = 31, - SpvBuiltInEnqueuedWorkgroupSize = 32, - SpvBuiltInGlobalOffset = 33, - SpvBuiltInGlobalLinearId = 34, - SpvBuiltInSubgroupSize = 36, - SpvBuiltInSubgroupMaxSize = 37, - SpvBuiltInNumSubgroups = 38, - SpvBuiltInNumEnqueuedSubgroups = 39, - SpvBuiltInSubgroupId = 40, - SpvBuiltInSubgroupLocalInvocationId = 41, - SpvBuiltInVertexIndex = 42, - SpvBuiltInInstanceIndex = 43, -} SpvBuiltIn; - -typedef enum SpvSelectionControlShift_ { - SpvSelectionControlFlattenShift = 0, - SpvSelectionControlDontFlattenShift = 1, -} SpvSelectionControlShift; - -typedef enum SpvSelectionControlMask_ { - SpvSelectionControlMaskNone = 0, - SpvSelectionControlFlattenMask = 0x00000001, - SpvSelectionControlDontFlattenMask = 0x00000002, -} SpvSelectionControlMask; - -typedef enum SpvLoopControlShift_ { - SpvLoopControlUnrollShift = 0, - SpvLoopControlDontUnrollShift = 1, -} SpvLoopControlShift; - -typedef enum SpvLoopControlMask_ { - SpvLoopControlMaskNone = 0, - SpvLoopControlUnrollMask = 0x00000001, - SpvLoopControlDontUnrollMask = 0x00000002, -} SpvLoopControlMask; - -typedef enum SpvFunctionControlShift_ { - SpvFunctionControlInlineShift = 0, - SpvFunctionControlDontInlineShift = 1, - SpvFunctionControlPureShift = 2, - SpvFunctionControlConstShift = 3, -} SpvFunctionControlShift; - -typedef enum SpvFunctionControlMask_ { - SpvFunctionControlMaskNone = 0, - SpvFunctionControlInlineMask = 0x00000001, - SpvFunctionControlDontInlineMask = 0x00000002, - SpvFunctionControlPureMask = 0x00000004, - SpvFunctionControlConstMask = 0x00000008, -} SpvFunctionControlMask; - -typedef enum SpvMemorySemanticsShift_ { - SpvMemorySemanticsAcquireShift = 1, - SpvMemorySemanticsReleaseShift = 2, - SpvMemorySemanticsAcquireReleaseShift = 3, - SpvMemorySemanticsSequentiallyConsistentShift = 4, - SpvMemorySemanticsUniformMemoryShift = 6, - SpvMemorySemanticsSubgroupMemoryShift = 7, - SpvMemorySemanticsWorkgroupMemoryShift = 8, - SpvMemorySemanticsCrossWorkgroupMemoryShift = 9, - SpvMemorySemanticsAtomicCounterMemoryShift = 10, - SpvMemorySemanticsImageMemoryShift = 11, -} SpvMemorySemanticsShift; - -typedef enum SpvMemorySemanticsMask_ { - SpvMemorySemanticsMaskNone = 0, - SpvMemorySemanticsAcquireMask = 0x00000002, - SpvMemorySemanticsReleaseMask = 0x00000004, - SpvMemorySemanticsAcquireReleaseMask = 0x00000008, - SpvMemorySemanticsSequentiallyConsistentMask = 0x00000010, - SpvMemorySemanticsUniformMemoryMask = 0x00000040, - SpvMemorySemanticsSubgroupMemoryMask = 0x00000080, - SpvMemorySemanticsWorkgroupMemoryMask = 0x00000100, - SpvMemorySemanticsCrossWorkgroupMemoryMask = 0x00000200, - SpvMemorySemanticsAtomicCounterMemoryMask = 0x00000400, - SpvMemorySemanticsImageMemoryMask = 0x00000800, -} SpvMemorySemanticsMask; - -typedef enum SpvMemoryAccessShift_ { - SpvMemoryAccessVolatileShift = 0, - SpvMemoryAccessAlignedShift = 1, - SpvMemoryAccessNontemporalShift = 2, -} SpvMemoryAccessShift; - -typedef enum SpvMemoryAccessMask_ { - SpvMemoryAccessMaskNone = 0, - SpvMemoryAccessVolatileMask = 0x00000001, - SpvMemoryAccessAlignedMask = 0x00000002, - SpvMemoryAccessNontemporalMask = 0x00000004, -} SpvMemoryAccessMask; - -typedef enum SpvScope_ { - SpvScopeCrossDevice = 0, - SpvScopeDevice = 1, - SpvScopeWorkgroup = 2, - SpvScopeSubgroup = 3, - SpvScopeInvocation = 4, -} SpvScope; - -typedef enum SpvGroupOperation_ { - SpvGroupOperationReduce = 0, - SpvGroupOperationInclusiveScan = 1, - SpvGroupOperationExclusiveScan = 2, -} SpvGroupOperation; - -typedef enum SpvKernelEnqueueFlags_ { - SpvKernelEnqueueFlagsNoWait = 0, - SpvKernelEnqueueFlagsWaitKernel = 1, - SpvKernelEnqueueFlagsWaitWorkGroup = 2, -} SpvKernelEnqueueFlags; - -typedef enum SpvKernelProfilingInfoShift_ { - SpvKernelProfilingInfoCmdExecTimeShift = 0, -} SpvKernelProfilingInfoShift; - -typedef enum SpvKernelProfilingInfoMask_ { - SpvKernelProfilingInfoMaskNone = 0, - SpvKernelProfilingInfoCmdExecTimeMask = 0x00000001, -} SpvKernelProfilingInfoMask; - -typedef enum SpvCapability_ { - SpvCapabilityMatrix = 0, - SpvCapabilityShader = 1, - SpvCapabilityGeometry = 2, - SpvCapabilityTessellation = 3, - SpvCapabilityAddresses = 4, - SpvCapabilityLinkage = 5, - SpvCapabilityKernel = 6, - SpvCapabilityVector16 = 7, - SpvCapabilityFloat16Buffer = 8, - SpvCapabilityFloat16 = 9, - SpvCapabilityFloat64 = 10, - SpvCapabilityInt64 = 11, - SpvCapabilityInt64Atomics = 12, - SpvCapabilityImageBasic = 13, - SpvCapabilityImageReadWrite = 14, - SpvCapabilityImageMipmap = 15, - SpvCapabilityPipes = 17, - SpvCapabilityGroups = 18, - SpvCapabilityDeviceEnqueue = 19, - SpvCapabilityLiteralSampler = 20, - SpvCapabilityAtomicStorage = 21, - SpvCapabilityInt16 = 22, - SpvCapabilityTessellationPointSize = 23, - SpvCapabilityGeometryPointSize = 24, - SpvCapabilityImageGatherExtended = 25, - SpvCapabilityStorageImageMultisample = 27, - SpvCapabilityUniformBufferArrayDynamicIndexing = 28, - SpvCapabilitySampledImageArrayDynamicIndexing = 29, - SpvCapabilityStorageBufferArrayDynamicIndexing = 30, - SpvCapabilityStorageImageArrayDynamicIndexing = 31, - SpvCapabilityClipDistance = 32, - SpvCapabilityCullDistance = 33, - SpvCapabilityImageCubeArray = 34, - SpvCapabilitySampleRateShading = 35, - SpvCapabilityImageRect = 36, - SpvCapabilitySampledRect = 37, - SpvCapabilityGenericPointer = 38, - SpvCapabilityInt8 = 39, - SpvCapabilityInputAttachment = 40, - SpvCapabilitySparseResidency = 41, - SpvCapabilityMinLod = 42, - SpvCapabilitySampled1D = 43, - SpvCapabilityImage1D = 44, - SpvCapabilitySampledCubeArray = 45, - SpvCapabilitySampledBuffer = 46, - SpvCapabilityImageBuffer = 47, - SpvCapabilityImageMSArray = 48, - SpvCapabilityStorageImageExtendedFormats = 49, - SpvCapabilityImageQuery = 50, - SpvCapabilityDerivativeControl = 51, - SpvCapabilityInterpolationFunction = 52, - SpvCapabilityTransformFeedback = 53, - SpvCapabilityGeometryStreams = 54, - SpvCapabilityStorageImageReadWithoutFormat = 55, - SpvCapabilityStorageImageWriteWithoutFormat = 56, - SpvCapabilityMultiViewport = 57, -} SpvCapability; - -typedef enum SpvOp_ { - SpvOpNop = 0, - SpvOpUndef = 1, - SpvOpSourceContinued = 2, - SpvOpSource = 3, - SpvOpSourceExtension = 4, - SpvOpName = 5, - SpvOpMemberName = 6, - SpvOpString = 7, - SpvOpLine = 8, - SpvOpExtension = 10, - SpvOpExtInstImport = 11, - SpvOpExtInst = 12, - SpvOpMemoryModel = 14, - SpvOpEntryPoint = 15, - SpvOpExecutionMode = 16, - SpvOpCapability = 17, - SpvOpTypeVoid = 19, - SpvOpTypeBool = 20, - SpvOpTypeInt = 21, - SpvOpTypeFloat = 22, - SpvOpTypeVector = 23, - SpvOpTypeMatrix = 24, - SpvOpTypeImage = 25, - SpvOpTypeSampler = 26, - SpvOpTypeSampledImage = 27, - SpvOpTypeArray = 28, - SpvOpTypeRuntimeArray = 29, - SpvOpTypeStruct = 30, - SpvOpTypeOpaque = 31, - SpvOpTypePointer = 32, - SpvOpTypeFunction = 33, - SpvOpTypeEvent = 34, - SpvOpTypeDeviceEvent = 35, - SpvOpTypeReserveId = 36, - SpvOpTypeQueue = 37, - SpvOpTypePipe = 38, - SpvOpTypeForwardPointer = 39, - SpvOpConstantTrue = 41, - SpvOpConstantFalse = 42, - SpvOpConstant = 43, - SpvOpConstantComposite = 44, - SpvOpConstantSampler = 45, - SpvOpConstantNull = 46, - SpvOpSpecConstantTrue = 48, - SpvOpSpecConstantFalse = 49, - SpvOpSpecConstant = 50, - SpvOpSpecConstantComposite = 51, - SpvOpSpecConstantOp = 52, - SpvOpFunction = 54, - SpvOpFunctionParameter = 55, - SpvOpFunctionEnd = 56, - SpvOpFunctionCall = 57, - SpvOpVariable = 59, - SpvOpImageTexelPointer = 60, - SpvOpLoad = 61, - SpvOpStore = 62, - SpvOpCopyMemory = 63, - SpvOpCopyMemorySized = 64, - SpvOpAccessChain = 65, - SpvOpInBoundsAccessChain = 66, - SpvOpPtrAccessChain = 67, - SpvOpArrayLength = 68, - SpvOpGenericPtrMemSemantics = 69, - SpvOpInBoundsPtrAccessChain = 70, - SpvOpDecorate = 71, - SpvOpMemberDecorate = 72, - SpvOpDecorationGroup = 73, - SpvOpGroupDecorate = 74, - SpvOpGroupMemberDecorate = 75, - SpvOpVectorExtractDynamic = 77, - SpvOpVectorInsertDynamic = 78, - SpvOpVectorShuffle = 79, - SpvOpCompositeConstruct = 80, - SpvOpCompositeExtract = 81, - SpvOpCompositeInsert = 82, - SpvOpCopyObject = 83, - SpvOpTranspose = 84, - SpvOpSampledImage = 86, - SpvOpImageSampleImplicitLod = 87, - SpvOpImageSampleExplicitLod = 88, - SpvOpImageSampleDrefImplicitLod = 89, - SpvOpImageSampleDrefExplicitLod = 90, - SpvOpImageSampleProjImplicitLod = 91, - SpvOpImageSampleProjExplicitLod = 92, - SpvOpImageSampleProjDrefImplicitLod = 93, - SpvOpImageSampleProjDrefExplicitLod = 94, - SpvOpImageFetch = 95, - SpvOpImageGather = 96, - SpvOpImageDrefGather = 97, - SpvOpImageRead = 98, - SpvOpImageWrite = 99, - SpvOpImage = 100, - SpvOpImageQueryFormat = 101, - SpvOpImageQueryOrder = 102, - SpvOpImageQuerySizeLod = 103, - SpvOpImageQuerySize = 104, - SpvOpImageQueryLod = 105, - SpvOpImageQueryLevels = 106, - SpvOpImageQuerySamples = 107, - SpvOpConvertFToU = 109, - SpvOpConvertFToS = 110, - SpvOpConvertSToF = 111, - SpvOpConvertUToF = 112, - SpvOpUConvert = 113, - SpvOpSConvert = 114, - SpvOpFConvert = 115, - SpvOpQuantizeToF16 = 116, - SpvOpConvertPtrToU = 117, - SpvOpSatConvertSToU = 118, - SpvOpSatConvertUToS = 119, - SpvOpConvertUToPtr = 120, - SpvOpPtrCastToGeneric = 121, - SpvOpGenericCastToPtr = 122, - SpvOpGenericCastToPtrExplicit = 123, - SpvOpBitcast = 124, - SpvOpSNegate = 126, - SpvOpFNegate = 127, - SpvOpIAdd = 128, - SpvOpFAdd = 129, - SpvOpISub = 130, - SpvOpFSub = 131, - SpvOpIMul = 132, - SpvOpFMul = 133, - SpvOpUDiv = 134, - SpvOpSDiv = 135, - SpvOpFDiv = 136, - SpvOpUMod = 137, - SpvOpSRem = 138, - SpvOpSMod = 139, - SpvOpFRem = 140, - SpvOpFMod = 141, - SpvOpVectorTimesScalar = 142, - SpvOpMatrixTimesScalar = 143, - SpvOpVectorTimesMatrix = 144, - SpvOpMatrixTimesVector = 145, - SpvOpMatrixTimesMatrix = 146, - SpvOpOuterProduct = 147, - SpvOpDot = 148, - SpvOpIAddCarry = 149, - SpvOpISubBorrow = 150, - SpvOpUMulExtended = 151, - SpvOpSMulExtended = 152, - SpvOpAny = 154, - SpvOpAll = 155, - SpvOpIsNan = 156, - SpvOpIsInf = 157, - SpvOpIsFinite = 158, - SpvOpIsNormal = 159, - SpvOpSignBitSet = 160, - SpvOpLessOrGreater = 161, - SpvOpOrdered = 162, - SpvOpUnordered = 163, - SpvOpLogicalEqual = 164, - SpvOpLogicalNotEqual = 165, - SpvOpLogicalOr = 166, - SpvOpLogicalAnd = 167, - SpvOpLogicalNot = 168, - SpvOpSelect = 169, - SpvOpIEqual = 170, - SpvOpINotEqual = 171, - SpvOpUGreaterThan = 172, - SpvOpSGreaterThan = 173, - SpvOpUGreaterThanEqual = 174, - SpvOpSGreaterThanEqual = 175, - SpvOpULessThan = 176, - SpvOpSLessThan = 177, - SpvOpULessThanEqual = 178, - SpvOpSLessThanEqual = 179, - SpvOpFOrdEqual = 180, - SpvOpFUnordEqual = 181, - SpvOpFOrdNotEqual = 182, - SpvOpFUnordNotEqual = 183, - SpvOpFOrdLessThan = 184, - SpvOpFUnordLessThan = 185, - SpvOpFOrdGreaterThan = 186, - SpvOpFUnordGreaterThan = 187, - SpvOpFOrdLessThanEqual = 188, - SpvOpFUnordLessThanEqual = 189, - SpvOpFOrdGreaterThanEqual = 190, - SpvOpFUnordGreaterThanEqual = 191, - SpvOpShiftRightLogical = 194, - SpvOpShiftRightArithmetic = 195, - SpvOpShiftLeftLogical = 196, - SpvOpBitwiseOr = 197, - SpvOpBitwiseXor = 198, - SpvOpBitwiseAnd = 199, - SpvOpNot = 200, - SpvOpBitFieldInsert = 201, - SpvOpBitFieldSExtract = 202, - SpvOpBitFieldUExtract = 203, - SpvOpBitReverse = 204, - SpvOpBitCount = 205, - SpvOpDPdx = 207, - SpvOpDPdy = 208, - SpvOpFwidth = 209, - SpvOpDPdxFine = 210, - SpvOpDPdyFine = 211, - SpvOpFwidthFine = 212, - SpvOpDPdxCoarse = 213, - SpvOpDPdyCoarse = 214, - SpvOpFwidthCoarse = 215, - SpvOpEmitVertex = 218, - SpvOpEndPrimitive = 219, - SpvOpEmitStreamVertex = 220, - SpvOpEndStreamPrimitive = 221, - SpvOpControlBarrier = 224, - SpvOpMemoryBarrier = 225, - SpvOpAtomicLoad = 227, - SpvOpAtomicStore = 228, - SpvOpAtomicExchange = 229, - SpvOpAtomicCompareExchange = 230, - SpvOpAtomicCompareExchangeWeak = 231, - SpvOpAtomicIIncrement = 232, - SpvOpAtomicIDecrement = 233, - SpvOpAtomicIAdd = 234, - SpvOpAtomicISub = 235, - SpvOpAtomicSMin = 236, - SpvOpAtomicUMin = 237, - SpvOpAtomicSMax = 238, - SpvOpAtomicUMax = 239, - SpvOpAtomicAnd = 240, - SpvOpAtomicOr = 241, - SpvOpAtomicXor = 242, - SpvOpPhi = 245, - SpvOpLoopMerge = 246, - SpvOpSelectionMerge = 247, - SpvOpLabel = 248, - SpvOpBranch = 249, - SpvOpBranchConditional = 250, - SpvOpSwitch = 251, - SpvOpKill = 252, - SpvOpReturn = 253, - SpvOpReturnValue = 254, - SpvOpUnreachable = 255, - SpvOpLifetimeStart = 256, - SpvOpLifetimeStop = 257, - SpvOpGroupAsyncCopy = 259, - SpvOpGroupWaitEvents = 260, - SpvOpGroupAll = 261, - SpvOpGroupAny = 262, - SpvOpGroupBroadcast = 263, - SpvOpGroupIAdd = 264, - SpvOpGroupFAdd = 265, - SpvOpGroupFMin = 266, - SpvOpGroupUMin = 267, - SpvOpGroupSMin = 268, - SpvOpGroupFMax = 269, - SpvOpGroupUMax = 270, - SpvOpGroupSMax = 271, - SpvOpReadPipe = 274, - SpvOpWritePipe = 275, - SpvOpReservedReadPipe = 276, - SpvOpReservedWritePipe = 277, - SpvOpReserveReadPipePackets = 278, - SpvOpReserveWritePipePackets = 279, - SpvOpCommitReadPipe = 280, - SpvOpCommitWritePipe = 281, - SpvOpIsValidReserveId = 282, - SpvOpGetNumPipePackets = 283, - SpvOpGetMaxPipePackets = 284, - SpvOpGroupReserveReadPipePackets = 285, - SpvOpGroupReserveWritePipePackets = 286, - SpvOpGroupCommitReadPipe = 287, - SpvOpGroupCommitWritePipe = 288, - SpvOpEnqueueMarker = 291, - SpvOpEnqueueKernel = 292, - SpvOpGetKernelNDrangeSubGroupCount = 293, - SpvOpGetKernelNDrangeMaxSubGroupSize = 294, - SpvOpGetKernelWorkGroupSize = 295, - SpvOpGetKernelPreferredWorkGroupSizeMultiple = 296, - SpvOpRetainEvent = 297, - SpvOpReleaseEvent = 298, - SpvOpCreateUserEvent = 299, - SpvOpIsValidEvent = 300, - SpvOpSetUserEventStatus = 301, - SpvOpCaptureEventProfilingInfo = 302, - SpvOpGetDefaultQueue = 303, - SpvOpBuildNDRange = 304, - SpvOpImageSparseSampleImplicitLod = 305, - SpvOpImageSparseSampleExplicitLod = 306, - SpvOpImageSparseSampleDrefImplicitLod = 307, - SpvOpImageSparseSampleDrefExplicitLod = 308, - SpvOpImageSparseSampleProjImplicitLod = 309, - SpvOpImageSparseSampleProjExplicitLod = 310, - SpvOpImageSparseSampleProjDrefImplicitLod = 311, - SpvOpImageSparseSampleProjDrefExplicitLod = 312, - SpvOpImageSparseFetch = 313, - SpvOpImageSparseGather = 314, - SpvOpImageSparseDrefGather = 315, - SpvOpImageSparseTexelsResident = 316, - SpvOpNoLine = 317, - SpvOpAtomicFlagTestAndSet = 318, - SpvOpAtomicFlagClear = 319, - SpvOpImageSparseRead = 320, -} SpvOp; - -#endif // #ifndef spirv_H - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/1.vsa b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/1.vsa deleted file mode 100644 index 2643c346..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/1.vsa and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/1.vsh b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/1.vsh deleted file mode 100644 index 67615a6a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/1.vsh +++ /dev/null @@ -1,110 +0,0 @@ -vs_3_sw - def c3056, 1, 2, 3, 4 - -dcl_position v0 -dcl_normal v1 -dcl_normal1 v3 - -dcl_color4 o3.x -dcl_texcoord3 o3.yz -dcl_fog o3.w -dcl_tangent o4.xyz -dcl_position o7.xyzw -dcl_psize o6 - -#define oPos o7 -#define oD0 o3 - -def c76, -10.0e5, 2.0e4, 3.3e2, 4.4 -def c15, 1, 2, 3, 4 -defi i1, 1, 2, 3,0 -defb b11, true -defb b12, false - -if_le v0.x, v1.y -nop -else -nop -endif - -mova a0.yw, v0.argb -loop aL, i1 -nop -break_le v1.x, r0.y -breakp !p0.y -nop -endloop - -; Decompress position -mov r0.x, v0.x -mov r0.y, c4.w ; 1 -mov r0.z, v0.y -mov r0.w, c4.w ; 1 - -setp_ge p0.yz, v1, v1 - -callnz l1, b11 -callnz l1, !p0.w - - -if !p0.z -m3x2 r0.xy, r1, c0 ;which will be expanded to: -else -nop -endif - -call l1 - -; Debug code [start] -ret -label l1 -m3x2 r0.xy, r1, c0 ;which will be expanded to: -mov r0, r0.xz -; Debug code [end] - -; Compute theta from distance and time -mov r4.xz, r0 ; xz -mov r4.y, c4.y ; y = 0 -dp3 r4.x, r4, r4 ; d2 -rsq r4.x, r4.x -rcp r4.x, r4.x ; d -mul r4.xyz, r4, c4.x ; scale by time - -; Clamp theta to -pi..pi -add r4.x, r4.x, c7.x -mul r4.x, r4.x, c7.y -frc r4.xy, r4.x -mul r4.x, r4.x, c7.z -add r4.x, r4.x,-c7.x - -; Compute first 4 values in sin and cos series -mov r5.x, c4.w ; d^0 -mov r4.x, r4.x ; d^1 -mul r5.y, r4.x, r4.x ; d^2 -mul r4.y, r4.x, r5.y ; d^3 -mul r5.z, r5.y, r5.y ; d^4 -mul r4.z, r4.x, r5.z ; d^5 -mul r5.w, r5.y, r5.z ; d^6 -mul r4.w, r4.x, r5.w ; d^7 - -mul r4, r4, c10 ; sin -dp4 r4.x, r4, c4.w - -mul r5, r5, c11 ; cos -dp4 r5.x, r5, c4.w - -; Set color -add r5.x, -r5.x, c4.w ; + 1.0 -mul oD0, r5.x, c4.z ; * 0.5 - -; Scale height -mul r0.y, r4.x, c7.w - -; Transform position -dp4 oPos.x, r0, c0 -dp4 oPos.y, r0, c1 -dp4 oPos.z, r0, c2 -dp4 oPos.w, r0, c3 - -ret - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/2.vsa b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/2.vsa deleted file mode 100644 index 4c53a7f7..00000000 Binary files a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/2.vsa and /dev/null differ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/2.vsh b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/2.vsh deleted file mode 100644 index 9e0f82d1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/tests/2.vsh +++ /dev/null @@ -1,30 +0,0 @@ -vs.2.0 - -//------------------------------------------------------------------------------ -// Simple Vertex Shader -// -// Constants Registers: -// -// c0-c3 = combined model-view-projection matrix -// c4 = constant color (defined by the application) -// -// Input Registers: -// -// v0 = per-vertex position -// v1 = per-vertex color -// -// Output Registers: -// -// oPos = homogeneous position -// oD0 = diffuse color -// -//------------------------------------------------------------------------------ - -dcl_position v0 -dcl_color v1 - -m4x4 oPos, v0, c0 // Transform the per-vertex position into clip-space -mov oD0, v1 // Use the original per-vertex color specified - -//mov oD0, c4 // Uncomment this to use the constant color stored at c4 - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition deleted file mode 100644 index ad559477..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition +++ /dev/null @@ -1,2 +0,0 @@ -#define x 1 -#define x 2 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-file b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-file deleted file mode 100644 index cd7c7122..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-file +++ /dev/null @@ -1 +0,0 @@ -#define __FILE__ 3 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-file.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-file.correct deleted file mode 100644 index 7140553a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-file.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/redefinition-file:2: ERROR: '__FILE__' already defined diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-line b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-line deleted file mode 100644 index 3319ef17..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-line +++ /dev/null @@ -1,3 +0,0 @@ -#define __LINE__ "wrong" - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-line.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-line.correct deleted file mode 100644 index dd4ce824..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition-line.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/redefinition-line:2: ERROR: '__LINE__' already defined diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition.correct deleted file mode 100644 index 450b442c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/redefinition.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/redefinition:3: ERROR: 'x' already defined diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/too-many-macro-args b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/too-many-macro-args deleted file mode 100644 index fb76ea19..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/too-many-macro-args +++ /dev/null @@ -1,3 +0,0 @@ -// This should produce an error, not anything like "WRONG 7 )" -#define x(a) a -x(WRONG, 7) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/too-many-macro-args.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/too-many-macro-args.correct deleted file mode 100644 index 903aebee..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/too-many-macro-args.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/too-many-macro-args:3: ERROR: macro 'x' passed 2 arguments, but requires 1 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file deleted file mode 100644 index 38cce279..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file +++ /dev/null @@ -1 +0,0 @@ -#undef __FILE__ \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file-twice b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file-twice deleted file mode 100644 index ba3c4642..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file-twice +++ /dev/null @@ -1,4 +0,0 @@ -// this should only produce one warning. -#undef __FILE__ -#undef __FILE__ - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file-twice.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file-twice.correct deleted file mode 100644 index b4eaae6f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file-twice.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/undef-file-twice:3: ERROR: undefining "__FILE__" diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file.correct deleted file mode 100644 index c17f64b4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-file.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/undef-file:1: ERROR: undefining "__FILE__" diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line deleted file mode 100644 index de7c25ad..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line +++ /dev/null @@ -1,2 +0,0 @@ -#undef __LINE__ - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line-twice b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line-twice deleted file mode 100644 index 7aede437..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line-twice +++ /dev/null @@ -1,4 +0,0 @@ -// this should only produce one warning. -#undef __LINE__ -#undef __LINE__ - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line-twice.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line-twice.correct deleted file mode 100644 index e019902d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line-twice.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/undef-line-twice:3: ERROR: undefining "__LINE__" diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line.correct deleted file mode 100644 index 2bc34dc3..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/errors/undef-line.correct +++ /dev/null @@ -1 +0,0 @@ -preprocessor/errors/undef-line:2: ERROR: undefining "__LINE__" diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/basic-sanity b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/basic-sanity deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/basic-sanity +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/basic-sanity.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/basic-sanity.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/basic-sanity.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/comment-before-preprocessor-directive b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/comment-before-preprocessor-directive deleted file mode 100644 index 7b27a36d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/comment-before-preprocessor-directive +++ /dev/null @@ -1,10 +0,0 @@ -// This shouldn't care that there's a multiline comment before a preprocessor -// directive. It should translate to whitespace, thrown away, making the -// "#if 1" the first thing on the line, and thus valid. -// Note that this isn't legal in C/C++ preprocessing, but Microsoft's fxc.exe -// allows this quirk. -/* comment! */ #if 1 -RIGHT -#else -WRONG -#endif \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/comment-before-preprocessor-directive.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/comment-before-preprocessor-directive.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/comment-before-preprocessor-directive.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-basic b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-basic deleted file mode 100644 index 4675fce1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-basic +++ /dev/null @@ -1,3 +0,0 @@ -#define a(b,c) b##c -a(RI, GHT) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-basic.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-basic.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-basic.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-define-override b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-define-override deleted file mode 100644 index 016c6458..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-define-override +++ /dev/null @@ -1,6 +0,0 @@ -// This should produce "RIGHT" and not "WRONG" -#define RI WR -#define GHT ONG -#define REPLACE(RI, GHT) RI##GHT -REPLACE(RI, GHT) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-define-override.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-define-override.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-define-override.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-ignore-non-args b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-ignore-non-args deleted file mode 100644 index 32357e06..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-ignore-non-args +++ /dev/null @@ -1,6 +0,0 @@ -// Should produce RIGHT and not WRONG -#define RI WR -#define GHT ONG -#define z(a) RI##GHT -z(1) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-ignore-non-args.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-ignore-non-args.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-ignore-non-args.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-multiple b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-multiple deleted file mode 100644 index a669cea1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-multiple +++ /dev/null @@ -1,4 +0,0 @@ -/* This should produce "RIGHT" instead of "RI ## G ## HT" */ -#define x(a,b) a##G##b -x(RI, HT) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-multiple.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-multiple.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-multiple.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-stacked-override b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-stacked-override deleted file mode 100644 index 298b5aa2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-stacked-override +++ /dev/null @@ -1,7 +0,0 @@ -// This should produce "RIGHT" and not "WRONG" -#define WR RI -#define ONG GHT -#define REPLACE(WR, ONG) WR##ONG -#define REPLACE2(WR, ONG) REPLACE(WR, ONG) -REPLACE2(WR, ONG) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-stacked-override.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-stacked-override.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-stacked-override.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-two-macros-with-args b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-two-macros-with-args deleted file mode 100644 index 4bc6a867..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-two-macros-with-args +++ /dev/null @@ -1,4 +0,0 @@ -#define y(a) a -#define x(a) y(a)##y(a) - -x(RIGHT) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-two-macros-with-args.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-two-macros-with-args.correct deleted file mode 100644 index c8e47055..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/concat-operator-two-macros-with-args.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro deleted file mode 100644 index 3e4f74b0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro +++ /dev/null @@ -1,9 +0,0 @@ -// This triggered an error before, when the "== D0" would not pop_source(). -#define D0 0 -#if DA == D0 -RIGHT -#elif D5 >= D4 -WRONG -#else -ALSOWRONG -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro-with-args b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro-with-args deleted file mode 100644 index 5343390d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro-with-args +++ /dev/null @@ -1,8 +0,0 @@ -#define D0(x) 0 -#if DA == D0(5) -RIGHT -#elif D5 >= D4 -WRONG -#else -ALSOWRONG -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro-with-args.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro-with-args.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro-with-args.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/elif-after-macro.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-file b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-file deleted file mode 100644 index e69de29b..00000000 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-file.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-file.correct deleted file mode 100644 index e69de29b..00000000 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-macro-with-arg b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-macro-with-arg deleted file mode 100644 index e8d7e836..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-macro-with-arg +++ /dev/null @@ -1,3 +0,0 @@ -// This should not crash when using the empty macro. -#define COMPUTE_FOO(a) -COMPUTE_FOO(a) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-macro-with-arg.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/empty-macro-with-arg.correct deleted file mode 100644 index e69de29b..00000000 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/file-macro b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/file-macro deleted file mode 100644 index 4815727d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/file-macro +++ /dev/null @@ -1 +0,0 @@ -__FILE__ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/file-macro.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/file-macro.correct deleted file mode 100644 index ad82002f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/file-macro.correct +++ /dev/null @@ -1 +0,0 @@ -"preprocessor/output/file-macro" diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/float-half-suffix b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/float-half-suffix deleted file mode 100644 index ffaba4c9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/float-half-suffix +++ /dev/null @@ -1,4 +0,0 @@ -// This should produce "10.05h" and not "10.05 h" -10.05h -// This should produce "10.05e10h" and not "10.05e10 h" -10.05e10h diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/float-half-suffix.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/float-half-suffix.correct deleted file mode 100644 index cac94574..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/float-half-suffix.correct +++ /dev/null @@ -1 +0,0 @@ -10.05h 10.05e10h diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/if-with-embedded-parens b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/if-with-embedded-parens deleted file mode 100644 index c0fced94..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/if-with-embedded-parens +++ /dev/null @@ -1,7 +0,0 @@ -// Before hg changeset 91c22d2de774, the preprocessor incorrect thought -// that the '+' is a unary operator and would fail to parse the expression. -#if ((1) + (0) < 12) -RIGHT -#else -WRONG -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/if-with-embedded-parens.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/if-with-embedded-parens.correct deleted file mode 100644 index db561ffb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/if-with-embedded-parens.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/just-a-comment b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/just-a-comment deleted file mode 100644 index 2bc73f83..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/just-a-comment +++ /dev/null @@ -1,3 +0,0 @@ -/* -This is just comments, and should produce an empty file. -*/ // This is just a comment, too. \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/just-a-comment.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/just-a-comment.correct deleted file mode 100644 index e69de29b..00000000 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-filename b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-filename deleted file mode 100644 index 1195e063..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-filename +++ /dev/null @@ -1,3 +0,0 @@ -// This should NOT produce an error -#line 1337 "Some_other_source_file.txt" -RIGHT diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-filename.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-filename.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-filename.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-no-filename b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-no-filename deleted file mode 100644 index 42ea6f45..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-no-filename +++ /dev/null @@ -1,3 +0,0 @@ -// This should NOT produce an error -#line 1337 -RIGHT diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-no-filename.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-no-filename.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-no-filename.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-whitespace-filename b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-whitespace-filename deleted file mode 100644 index 4abb34e9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-whitespace-filename +++ /dev/null @@ -1,3 +0,0 @@ -// This should NOT produce an error -#line 1337 "Some filename with a spaces in it.txt" -RIGHT diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-whitespace-filename.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-whitespace-filename.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-directive-whitespace-filename.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-macro b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-macro deleted file mode 100644 index 381351d0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-macro +++ /dev/null @@ -1,4 +0,0 @@ -Line one: __LINE__ - -Line three: __LINE__ - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-macro.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-macro.correct deleted file mode 100644 index dbcd5ad6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/line-macro.correct +++ /dev/null @@ -1 +0,0 @@ -Line one : 1 Line three : 3 \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-1-arg-accepts-void b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-1-arg-accepts-void deleted file mode 100644 index 1b35ff3e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-1-arg-accepts-void +++ /dev/null @@ -1,5 +0,0 @@ -// x() should be considered one (blank) argument when there is a macro which -// has one parameter. It should produce "RIGHT" and not "RIGHT()", and no -// errors. -#define x(a) RIGHT a -x() diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-1-arg-accepts-void.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-1-arg-accepts-void.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-1-arg-accepts-void.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg deleted file mode 100644 index c50db60d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg +++ /dev/null @@ -1,4 +0,0 @@ -/* This should produce "RIGHT" instead of "WRONG" */ -#define x(WRONG) WRONG -x(RIGHT) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg-overrides-define b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg-overrides-define deleted file mode 100644 index c88a8c79..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg-overrides-define +++ /dev/null @@ -1,5 +0,0 @@ -// This should produce THIS_IS_THE_MACRO_ARG and not THIS_IS_THE_DEFINE. -#define x THIS_IS_THE_DEFINE -#define b(x) x -#define z(x) b(x) -z(THIS_IS_THE_MACRO_ARG) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg-overrides-define.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg-overrides-define.correct deleted file mode 100644 index cf2305a8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg-overrides-define.correct +++ /dev/null @@ -1 +0,0 @@ -THIS_IS_THE_MACRO_ARG \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-arg.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args deleted file mode 100644 index e0dfd05c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args +++ /dev/null @@ -1,4 +0,0 @@ -/* This should produce "RIGHT ANDRIGHT" instead of "WRONG ANDWRONG" */ -#define x(WRONG, ANDWRONG) WRONG ANDWRONG -x(RIGHT, ANDRIGHT) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args-with-whitespace b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args-with-whitespace deleted file mode 100644 index 6cc6ab3a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args-with-whitespace +++ /dev/null @@ -1,3 +0,0 @@ -#define right( x ) x -right( RIGHT ) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args-with-whitespace.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args-with-whitespace.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args-with-whitespace.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args.correct deleted file mode 100644 index e23043be..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-args.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT ANDRIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-blank-arg b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-blank-arg deleted file mode 100644 index 1d512226..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-blank-arg +++ /dev/null @@ -1,4 +0,0 @@ -// This shouldn't produce an error (the "()" should be treated as one -// blank argument. -#define x(y) y -x() diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-blank-arg.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-blank-arg.correct deleted file mode 100644 index e69de29b..00000000 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-empty-arg b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-empty-arg deleted file mode 100644 index ceae203c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-empty-arg +++ /dev/null @@ -1,5 +0,0 @@ -/* This should produce "RIGHT RIGHT" instead of "WRONG WRONG" (etc) */ -#define x(WRONG,ANDWRONG) WRONG ANDWRONG -x(RIGHT,) -x(,RIGHT) -x(,) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-empty-arg.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-empty-arg.correct deleted file mode 100644 index c8e47055..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-empty-arg.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-multi-args-with-whitespace b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-multi-args-with-whitespace deleted file mode 100644 index 2f3d20b0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-multi-args-with-whitespace +++ /dev/null @@ -1,3 +0,0 @@ -#define right( x , y ) x ## y -right( RI , GHT ) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-multi-args-with-whitespace.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-multi-args-with-whitespace.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-multi-args-with-whitespace.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-paren-stacking b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-paren-stacking deleted file mode 100644 index 12ec552a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-paren-stacking +++ /dev/null @@ -1,3 +0,0 @@ -/* Should give you "RIGHT" instead of an error. */ -#define a(a,b) b -a((1+1), RIGHT) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-paren-stacking.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-paren-stacking.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-paren-stacking.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-void-arg b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-void-arg deleted file mode 100644 index 51fd9dfd..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-void-arg +++ /dev/null @@ -1,4 +0,0 @@ -// This should not trigger a preprocessor error. -// Nor should it produce "RIGHT()". -#define x() RIGHT -x() diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-void-arg.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-void-arg.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-void-arg.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-with-arg-as-macro-arg b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-with-arg-as-macro-arg deleted file mode 100644 index 588637e5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-with-arg-as-macro-arg +++ /dev/null @@ -1,5 +0,0 @@ -// Should produce "RIGHT" and not "l(b)" or whatnot. -#define bb(l) l -#define zz(c) c -#define qq(b) zz(bb(b)) -qq(RIGHT) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-with-arg-as-macro-arg.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-with-arg-as-macro-arg.correct deleted file mode 100644 index db561ffb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/macro-with-arg-as-macro-arg.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comment-no-whitespace b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comment-no-whitespace deleted file mode 100644 index f252e028..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comment-no-whitespace +++ /dev/null @@ -1 +0,0 @@ -/*comment*/RIGHT/*comment*/ \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comment-no-whitespace.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comment-no-whitespace.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comment-no-whitespace.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comments-alone-on-line b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comments-alone-on-line deleted file mode 100644 index d989a5c1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comments-alone-on-line +++ /dev/null @@ -1,3 +0,0 @@ -/*comment*/ -/*comment*/ -RIGHT diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comments-alone-on-line.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comments-alone-on-line.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/multiline-comments-alone-on-line.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/nested-macro-args b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/nested-macro-args deleted file mode 100644 index e203ae5a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/nested-macro-args +++ /dev/null @@ -1,6 +0,0 @@ -/* This should produce "RIGHT" instead of "WRONG" */ -#define x(a) a -#define y(WRONG) x(WRONG) - -y(RIGHT) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/nested-macro-args.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/nested-macro-args.correct deleted file mode 100644 index 459b9a37..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/nested-macro-args.correct +++ /dev/null @@ -1 +0,0 @@ -RIGHT \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/pragma-directive-line-break b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/pragma-directive-line-break deleted file mode 100644 index 5ae8d358..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/pragma-directive-line-break +++ /dev/null @@ -1,3 +0,0 @@ -#pragma warning (disable:4507) -Should_remain_on_separate_line; - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/pragma-directive-line-break.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/pragma-directive-line-break.correct deleted file mode 100644 index 047bcfdb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/pragma-directive-line-break.correct +++ /dev/null @@ -1,2 +0,0 @@ -#pragma warning ( disable : 4507 ) -Should_remain_on_separate_line ; diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-basic b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-basic deleted file mode 100644 index 700a51f5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-basic +++ /dev/null @@ -1,3 +0,0 @@ -// will output "RIGHT" -#define x(z) #z -x(RIGHT) \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-basic.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-basic.correct deleted file mode 100644 index 9523502f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-basic.correct +++ /dev/null @@ -1 +0,0 @@ -"RIGHT" \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-blank-arg b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-blank-arg deleted file mode 100644 index 00152fe9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-blank-arg +++ /dev/null @@ -1,4 +0,0 @@ -// This shouldn't produce an error (the "()" should be treated as one -// blank argument, turned into a "" -#define x(y) #y -x() diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-blank-arg.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-blank-arg.correct deleted file mode 100644 index 3cc762b5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-blank-arg.correct +++ /dev/null @@ -1 +0,0 @@ -"" \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect deleted file mode 100644 index af79de82..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect +++ /dev/null @@ -1,7 +0,0 @@ -// Should produce RIGHT and not WRONG. -#define WRONG RIGHT -#define STRINGIFY2(x) #x -#define STRINGIFY(x) STRINGIFY2(x) - -STRINGIFY(WRONG) - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect-line-macro b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect-line-macro deleted file mode 100644 index 341ea89b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect-line-macro +++ /dev/null @@ -1,5 +0,0 @@ -// Should produce a line number in quotes, and not "__LINE__" -#define STRINGIFY2(x) #x -#define STRINGIFY(x) STRINGIFY2(x) - -STRINGIFY(__LINE__) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect-line-macro.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect-line-macro.correct deleted file mode 100644 index 9910baef..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect-line-macro.correct +++ /dev/null @@ -1 +0,0 @@ -"5" diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect.correct b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect.correct deleted file mode 100644 index 9a3b91dd..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/preprocessor/output/stringify-operator-indirect.correct +++ /dev/null @@ -1 +0,0 @@ -"RIGHT" diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/run_tests.pl b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/run_tests.pl deleted file mode 100644 index 968bdafc..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/unit_tests/run_tests.pl +++ /dev/null @@ -1,192 +0,0 @@ -#!/usr/bin/perl -w - -use warnings; -use strict; -use Digest::SHA1; -use Cwd; - -use FindBin qw($Bin); -my $testdir = $Bin; -undef $Bin; -#print("testdir is $testdir\n"); -my $binpath = getcwd(); -#print("binpath is $binpath\n"); - -my $GPrintCmds = 0; - -my @modules = qw( preprocessor assembler compiler parser ); - - -sub compare_files { - my ($a, $b, $endlines) = @_; - - if (not open(FILE1, '<', $a)) { - return (0, "Couldn't open '$a' for checksum"); - } - if (not open(FILE2, '<', $b)) { - close(FILE1); - return (0, "Couldn't open '$b' for checksum"); - } - - my $sha1 = Digest::SHA1->new; - my $sha2 = Digest::SHA1->new; - - if (not $endlines) { - $sha1->addfile(*FILE1); - $sha2->addfile(*FILE2); - } else { - while () { s/[\r\n]//g; $sha1->add($_); } - while () { s/[\r\n]//g; $sha2->add($_); } - } - - close(FILE1); - close(FILE2); - - if ($sha1->hexdigest ne $sha2->hexdigest) { - return (0, "Result doesn't match expectations"); - } - - return (1); -} - -my %tests = (); - -$tests{'output'} = sub { - my ($module, $fname) = @_; - my $output = 'unittest_tempoutput'; - my $desired = $fname . '.correct'; - my $cmd = undef; - my $endlines = 1; - - # !!! FIXME: this should go elsewhere. - if ($module eq 'preprocessor') { - $cmd = "$binpath/mojoshader-compiler -P '$fname' -o '$output'"; - } else { - return (0, "Don't know how to do this module type"); - } - $cmd .= ' 2>/dev/null 1>/dev/null'; - - print("$cmd\n") if ($GPrintCmds); - - if (system($cmd) != 0) { - unlink($output) if (-f $output); - return (0, "External program reported error"); - } - - if (not -f $output) { return (0, "Didn't get any output file"); } - - my @retval = compare_files($desired, $output, $endlines); - unlink($output); - return @retval; -}; - -$tests{'errors'} = sub { - my ($module, $fname) = @_; - my $error_output = 'unittest_temperroutput'; - my $output = 'unittest_tempoutput'; - my $desired = $fname . '.correct'; - my $cmd = undef; - my $endlines = 1; - - # !!! FIXME: this should go elsewhere. - if ($module eq 'preprocessor') { - $cmd = "$binpath/mojoshader-compiler -P '$fname' -o '$output'"; - } else { - return (0, "Don't know how to do this module type"); - } - $cmd .= " 2>$error_output 1>/dev/null"; - - print("$cmd\n") if ($GPrintCmds); - - system($cmd); - unlink($output) if (-f $output); - - if (not -f $error_output) { return (0, "Didn't get any error output"); } - - my @retval = compare_files($desired, $error_output, $endlines); - unlink($error_output); - return @retval; -}; - -my $totaltests = 0; -my $pass = 0; -my $fail = 0; -my $skip = 0; -my @fails = (); - -my $result = ''; -chdir($testdir) or die("Failed to chdir('$testdir'): $!\n"); -foreach (@modules) { - my $module = $_; - foreach (keys %tests) { - my $testtype = $_; - my $fn = $tests{$_}; - my $d = "$module/$testtype"; - next if (not -d $d); # no tests at the moment. - opendir(TESTDIR, $d) || die("Failed to open dir '$d': $!\n"); - my $subsection = " ... $module / $testtype ...\n"; - print($subsection); - my $addedsubsection = 0; - my $fname = readdir(TESTDIR); - while (defined $fname) { - my $isfail = 0; - my $origfname = $fname; - $fname = readdir(TESTDIR); # set for next iteration. - next if (-d $origfname); - next if ($origfname =~ /\.correct\Z/); - my $fullfname = "$d/$origfname"; - my ($rc, $reason) = &$fn($module, $fullfname); - if ($rc == 1) { - $result = 'PASS'; - $pass++; - } elsif ($rc == 0) { - $isfail = 1; - $result = 'FAIL'; - $fail++; - } elsif ($rc == -1) { - $result = 'SKIP'; - $skip++; - } - - if (defined $reason) { - $reason = " ($reason)"; - } else { - $reason = ''; - } - my $output = "$result ${origfname}${reason}\n"; - print($output); - - if ($isfail) { - if (!$addedsubsection) { - $addedsubsection = 1; - push(@fails, $subsection); - } - push(@fails, $output); - } - - $totaltests++; - } - closedir(TESTDIR); - } -} - -if (scalar(@fails)) { - print("\n\n"); - print("*************************************************************\n"); - print("*************************************************************\n"); - print("** SOME TESTS FAILED! PLEASE CORRECT THE FOLLOWING ISSUES. **\n"); - print("*************************************************************\n"); - print("*************************************************************\n"); - print("\n"); - foreach (@fails) { - print $_; - } - print("\n\n"); -} - -print("\n$totaltests tests, $pass passed, $fail failed, $skip skipped.\n\n"); - -exit(($fail > 0) ? 1 : 0); - -# end if run_tests.pl ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/availableprofiles.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/availableprofiles.c deleted file mode 100644 index cf5f97f4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/availableprofiles.c +++ /dev/null @@ -1,74 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#include -#include "mojoshader.h" -#include "SDL.h" - -static void *lookup(const char *fnname, void *unused) -{ - (void) unused; - return SDL_GL_GetProcAddress(fnname); -} // lookup - -static int check_available(void) -{ - const char **avail = NULL; - int total = MOJOSHADER_glAvailableProfiles(lookup, NULL, NULL, 0, NULL, NULL, NULL); - if (total > 0) - { - avail = (const char **) alloca(sizeof (const char *) * total); - total = MOJOSHADER_glAvailableProfiles(lookup, NULL, avail, total, NULL, NULL, NULL); - } // if - - if (total <= 0) - fprintf(stderr, "No profiles available.\n"); - else - { - int i; - for (i = 0; i < total; i++) - { - printf("%s (Shader Model %d)\n", avail[i], - MOJOSHADER_maxShaderModel(avail[i])); - } // for - } // else - - return 0; -} // check_available - - -int main(int argc, char **argv) -{ - int retval = 1; - - #if 0 - printf("MojoShader availableprofile\n"); - printf("Compiled against changeset %s\n", MOJOSHADER_CHANGESET); - printf("Linked against changeset %s\n", MOJOSHADER_changeset()); - printf("\n"); - #endif - - SDL_Window *sdlwindow = NULL; - if (SDL_Init(SDL_INIT_VIDEO) == -1) - fprintf(stderr, "SDL_Init() error: %s\n", SDL_GetError()); - else if (SDL_GL_LoadLibrary(NULL) == -1) - fprintf(stderr, "SDL_GL_LoadLibrary() error: %s\n", SDL_GetError()); - else if ((sdlwindow = SDL_CreateWindow(argv[0], SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL)) == NULL) - fprintf(stderr, "SDL_CreateWindow() error: %s\n", SDL_GetError()); - else if (SDL_GL_CreateContext(sdlwindow) == NULL) - fprintf(stderr, "SDL_GL_CreateContext() error: %s\n", SDL_GetError()); - else - retval = check_available(); - - SDL_Quit(); - return retval; -} // main - -// end of availableprofiles.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/bestprofile.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/bestprofile.c deleted file mode 100644 index 59d35798..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/bestprofile.c +++ /dev/null @@ -1,59 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#include -#include "mojoshader.h" -#include "SDL.h" - -static void *lookup(const char *fnname, void *unused) -{ - (void) unused; - return SDL_GL_GetProcAddress(fnname); -} // lookup - -int main(int argc, char **argv) -{ - int retval = 1; - - #if 0 - printf("MojoShader bestprofile\n"); - printf("Compiled against changeset %s\n", MOJOSHADER_CHANGESET); - printf("Linked against changeset %s\n", MOJOSHADER_changeset()); - printf("\n"); - #endif - - SDL_Window *sdlwindow = NULL; - if (SDL_Init(SDL_INIT_VIDEO) == -1) - fprintf(stderr, "SDL_Init() error: %s\n", SDL_GetError()); - else if (SDL_GL_LoadLibrary(NULL) == -1) - fprintf(stderr, "SDL_GL_LoadLibrary() error: %s\n", SDL_GetError()); - else if ((sdlwindow = SDL_CreateWindow(argv[0], SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL)) == NULL) - fprintf(stderr, "SDL_CreateWindow() error: %s\n", SDL_GetError()); - else if (SDL_GL_CreateContext(sdlwindow) == NULL) - fprintf(stderr, "SDL_GL_CreateContext() error: %s\n", SDL_GetError()); - else - { - const char *best = MOJOSHADER_glBestProfile(lookup, NULL, NULL, NULL, NULL); - MOJOSHADER_glContext *ctx = MOJOSHADER_glCreateContext(best, lookup, 0, 0, 0, 0); - if (ctx == NULL) - printf("MOJOSHADER_glCreateContext() fail: %s\n", MOJOSHADER_glGetError()); - else - { - printf("%s\n", best); - retval = 0; // success. - MOJOSHADER_glDestroyContext(ctx); - } // else - } // else - - SDL_Quit(); - return retval; -} // main - -// end of bestprofile.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/finderrors.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/finderrors.c deleted file mode 100644 index 1a3c5be5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/finderrors.c +++ /dev/null @@ -1,276 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#include -#include -#include -#include -#include -#include - -#include "mojoshader.h" - -#if FINDERRORS_COMPILE_SHADERS -#include "SDL.h" -static SDL_Window *sdlwindow = NULL; -static void *lookup(const char *fnname, void *unused) -{ - (void) unused; - return SDL_GL_GetProcAddress(fnname); -} // lookup -#endif - -#ifdef _MSC_VER -#define WIN32_LEAN_AND_MEAN 1 -#include -#include // for alloca(). -#define snprintf _snprintf -#else -#include -#include -#endif - -#define report printf - -static int isdir(const char *dname) -{ -#ifdef _MSC_VER - WIN32_FILE_ATTRIBUTE_DATA winstat; - if (!GetFileAttributesExA(dname, GetFileExInfoStandard, &winstat)) - return 0; - return winstat.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY; -#else - struct stat statbuf; - if (stat(dname, &statbuf) == -1) - return 0; - return S_ISDIR(statbuf.st_mode); -#endif -} - -static int do_dir(const char *dname, const char *profile); - -static int do_file(const char *profile, const char *dname, const char *fn, int *total) -{ - int do_quit = 0; - - if ((strcmp(fn, ".") == 0) || (strcmp(fn, "..") == 0)) - return 1; // skip these. - - #if FINDERRORS_COMPILE_SHADERS - SDL_Event e; // pump event queue to keep OS happy. - while (SDL_PollEvent(&e)) - { - if (e.type == SDL_QUIT) - do_quit = 1; - } // while - SDL_GL_SwapWindow(sdlwindow); - #endif - - if (do_quit) - { - report("FAIL: user requested quit!\n"); - return 0; - } // if - - char *fname = (char *) alloca(strlen(fn) + strlen(dname) + 2); - sprintf(fname, "%s/%s", dname, fn); - - if (isdir(fname)) - { - *total += do_dir(fname, profile); - return 1; - } // if - - int assembly = 0; - if (strstr(fn, ".bytecode") != NULL) - assembly = 0; - else if (strstr(fn, ".disasm") != NULL) - assembly = 1; - else - return 1; - - (*total)++; - - FILE *io = fopen(fname, "rb"); - if (io == NULL) - { - report("FAIL: %s fopen() failed.\n", fname); - return 1; - } // if - - static unsigned char buf[1024 * 256]; - int rc = fread(buf, 1, sizeof (buf), io); - fclose(io); - if (rc == -1) - { - report("FAIL: %s %s\n", fname, strerror(errno)); - return 1; - } // if - - if (assembly) - { - const MOJOSHADER_parseData *a; - - buf[rc] = '\0'; // make sure the source is null-terminated. - a = MOJOSHADER_assemble(fname, (char *) buf, rc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0); - - if (a->error_count > 0) - { - report("FAIL: %s (line %d) %s\n", - a->errors[0].filename ? a->errors[0].filename : "???", - a->errors[0].error_position, - a->errors[0].error); - return 1; - } // if - - else if (a->output_len > sizeof (buf)) - { - report("FAIL: %s buffer overflow in finderrors.c\n", fname); - return 1; - } // if - - rc = a->output_len; - memcpy(buf, a->output, rc); - MOJOSHADER_freeParseData(a); - } // if - - #if FINDERRORS_COMPILE_SHADERS - MOJOSHADER_glShader *shader = MOJOSHADER_glCompileShader(buf, rc, NULL, 0, NULL, 0); - if (shader == NULL) - report("FAIL: %s %s\n", fname, MOJOSHADER_glGetError()); - else - { - const MOJOSHADER_parseData *pd = MOJOSHADER_glGetShaderParseData(shader); - MOJOSHADER_glShader *v = (pd->shader_type == MOJOSHADER_TYPE_VERTEX) ? shader : NULL; - MOJOSHADER_glShader *p = (pd->shader_type == MOJOSHADER_TYPE_PIXEL) ? shader : NULL; - MOJOSHADER_glProgram *program = MOJOSHADER_glLinkProgram(v, p); - if (program == NULL) - report("FAIL: %s %s\n", fname, MOJOSHADER_glGetError()); - else - { - report("PASS: %s\n", fname); - MOJOSHADER_glDeleteProgram(program); - } // else - MOJOSHADER_glDeleteShader(shader); - } - #else - const MOJOSHADER_parseData *pd = MOJOSHADER_parse(profile, NULL, buf, rc, NULL, 0, NULL, 0, NULL, NULL, NULL); - if (pd->error_count == 0) - report("PASS: %s\n", fname); - else - { - int i; - for (i = 0; i < pd->error_count; i++) - { - report("FAIL: %s (position %d) %s\n", pd->errors[i].filename, - pd->errors[i].error_position, pd->errors[i].error); - } // for - } // else - MOJOSHADER_freeParseData(pd); - #endif - - return 1; -} // do_file - - -static int do_dir(const char *dname, const char *profile) -{ - int total = 0; - -#ifdef _MSC_VER - const size_t wildcardlen = strlen(dname) + 3; - char *wildcard = (char *) alloca(wildcardlen); - SDL_snprintf(wildcard, wildcardlen, "%s\\*", dname); - - WIN32_FIND_DATAA dent; - HANDLE dirp = FindFirstFileA(wildcard, &dent); - if (dirp != INVALID_HANDLE_VALUE) - { - do - { - if (!do_file(profile, dname, dent.cFileName, &total)) - break; - } while (FindNextFileA(dirp, &dent) != 0); - FindClose(dirp); - } // if -#else - struct dirent *dent = NULL; - DIR *dirp = opendir(dname); - if (dirp != NULL) - { - while ((dent = readdir(dirp)) != NULL) - { - if (!do_file(profile, dname, dent->d_name, &total)) - break; - } // while - closedir(dirp); - } // if -#endif - - return total; -} // do_dir - - -int main(int argc, char **argv) -{ - //printf("MojoShader finderrors\n"); - //printf("Compiled against changeset %s\n", MOJOSHADER_CHANGESET); - //printf("Linked against changeset %s\n", MOJOSHADER_changeset()); - //printf("\n"); - - if (argc <= 2) - printf("\n\nUSAGE: %s [dir1] ... [dirN]\n\n", argv[0]); - else - { - int okay = 0; - int total = 0; - int i; - const char *profile = argv[1]; - - #if FINDERRORS_COMPILE_SHADERS - MOJOSHADER_glContext *ctx = NULL; - if (SDL_Init(SDL_INIT_VIDEO) == -1) - fprintf(stderr, "SDL_Init() error: %s\n", SDL_GetError()); - else if (SDL_GL_LoadLibrary(NULL) == -1) - fprintf(stderr, "SDL_GL_LoadLibrary() error: %s\n", SDL_GetError()); - else if ((sdlwindow = SDL_CreateWindow(argv[0], SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL)) == NULL) - fprintf(stderr, "SDL_CreateWindow() error: %s\n", SDL_GetError()); - else if (SDL_GL_CreateContext(sdlwindow) == NULL) - fprintf(stderr, "SDL_GL_CreateContext() error: %s\n", SDL_GetError()); - else if ((ctx = MOJOSHADER_glCreateContext(profile, lookup, 0, 0, 0, 0)) == NULL) - fprintf(stderr, "MOJOSHADER_glCreateContext() fail: %s\n", MOJOSHADER_glGetError()); - else - { - printf("Best profile is '%s'\n", MOJOSHADER_glBestProfile(lookup, 0, NULL, NULL, NULL)); - MOJOSHADER_glMakeContextCurrent(ctx); - okay = 1; - } - #else - okay = 1; - #endif - - if (okay) - { - for (i = 2; i < argc; i++) - total += do_dir(argv[i], profile); - printf("Saw %d files.\n", total); - } // if - - #if FINDERRORS_COMPILE_SHADERS - if (ctx) - MOJOSHADER_glDestroyContext(ctx); - SDL_Quit(); - #endif - } // else - - return 0; -} // main - -// end of finderrors.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/glcaps.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/glcaps.c deleted file mode 100644 index 7288449d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/glcaps.c +++ /dev/null @@ -1,163 +0,0 @@ -#ifdef _WINDOWS -#define WIN32_LEAN_AND_MEAN 1 -#include -#endif - -#include -#define GL_GLEXT_LEGACY 1 -#include "GL/gl.h" -#include "GL/glext.h" -#include "SDL.h" - -#ifndef WINGDIAPI -#define WINGDIAPI -#endif - -typedef WINGDIAPI void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); -typedef WINGDIAPI const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); - -#ifndef GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT -#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 -#endif -#ifndef GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT -#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 -#endif -#ifndef GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT -#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 -#endif -#ifndef GL_MAX_BINDABLE_UNIFORM_SIZE_EXT -#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED -#endif - -static int is_atleast_gl3(const char *str) -{ - int maj, min; - sscanf(str, "%d.%d", &maj, &min); - return ( ((maj << 16) | min) >= ((3 << 16) | 0) ); -} - -int main(int argc, char **argv) -{ - int retval = 1; - GLint val = 0; - const char *str = NULL; - SDL_Window *sdlwindow = NULL; - - if (SDL_Init(SDL_INIT_VIDEO) == -1) - fprintf(stderr, "SDL_Init() error: %s\n", SDL_GetError()); - else if (SDL_GL_LoadLibrary(NULL) == -1) - fprintf(stderr, "SDL_GL_LoadLibrary() error: %s\n", SDL_GetError()); - else if ((sdlwindow = SDL_CreateWindow(argv[0], SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL)) == NULL) - fprintf(stderr, "SDL_CreateWindow() error: %s\n", SDL_GetError()); - if (SDL_GL_CreateContext(sdlwindow) == NULL) - fprintf(stderr, "SDL_GL_CreateContext() error: %s\n", SDL_GetError()); - else - retval = 0; - - if (retval != 0) - { - SDL_Quit(); - return retval; - } // if - - PFNGLGETSTRINGPROC pglGetString = (PFNGLGETSTRINGPROC) SDL_GL_GetProcAddress("glGetString"); - PFNGLGETINTEGERVPROC pglGetIntegerv = (PFNGLGETINTEGERVPROC) SDL_GL_GetProcAddress("glGetIntegerv"); - PFNGLGETPROGRAMIVARBPROC pglGetProgramivARB = (PFNGLGETPROGRAMIVARBPROC) SDL_GL_GetProcAddress("glGetProgramivARB"); - PFNGLGETSTRINGIPROC pglGetStringi = (PFNGLGETSTRINGIPROC) SDL_GL_GetProcAddress("glGetStringi"); - - printf("Basic strings...\n\n"); - - #define getval(x) printf(#x ": %s\n", pglGetString(x)) - - getval(GL_RENDERER); - getval(GL_VERSION); - getval(GL_VENDOR); - - #undef getval - - printf("\nExtensions...\n\n"); - - if (is_atleast_gl3((const char *) pglGetString(GL_VERSION))) - { - GLint i; - GLint num_exts = 0; - pglGetIntegerv(GL_NUM_EXTENSIONS, &num_exts); - for (i = 0; i < num_exts; i++) - printf("%s\n", (const char *) pglGetStringi(GL_EXTENSIONS, i)); - } - else - { - const GLubyte *ext = pglGetString(GL_EXTENSIONS); - while (*ext) - { - fputc((*ext == ' ') ? '\n' : ((int) *ext), stdout); - ext++; - } // while - - ext--; - if (*ext != ' ') - printf("\n"); - } - - printf("\nARB1 values...\n\n"); - - if (pglGetProgramivARB == NULL) - printf(" (unsupported.)\n"); - else - { - #define getval(x) \ - val = -1; \ - pglGetProgramivARB(GL_VERTEX_PROGRAM_ARB, x, &val); \ - printf(#x ": %d\n", (int) val); - - getval(GL_MAX_PROGRAM_INSTRUCTIONS_ARB); - getval(GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB); - getval(GL_MAX_PROGRAM_TEMPORARIES_ARB); - getval(GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB); - getval(GL_MAX_PROGRAM_PARAMETERS_ARB); - getval(GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB); - getval(GL_MAX_PROGRAM_ATTRIBS_ARB); - getval(GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB); - getval(GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB); - getval(GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB); - getval(GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB); - getval(GL_MAX_PROGRAM_ENV_PARAMETERS_ARB); - getval(GL_MAX_PROGRAM_PARAMETERS_ARB); - - #undef getval - } // else - - printf("\nGLSL values...\n\n"); - - #define getval(x) \ - val = -1; \ - pglGetIntegerv(x, &val); \ - printf(#x ": %d\n", (int) val); - - str = (const char *) pglGetString(GL_SHADING_LANGUAGE_VERSION_ARB); - printf("GL_SHADING_LANGUAGE_VERSION_ARB: %s\n", str); - getval(GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB); - getval(GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB); - getval(GL_MAX_VARYING_FLOATS_ARB); - getval(GL_MAX_VERTEX_ATTRIBS_ARB); - getval(GL_MAX_TEXTURE_IMAGE_UNITS_ARB); - getval(GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB); - getval(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB); - getval(GL_MAX_TEXTURE_COORDS_ARB); - - printf("\nGL_EXT_bindable_uniform values...\n\n"); - - getval(GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT); - getval(GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT); - getval(GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT); - getval(GL_MAX_BINDABLE_UNIFORM_SIZE_EXT); - - #undef getval - - SDL_Quit(); - printf("\n"); - - return 0; -} - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/mojoshader-compiler.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/mojoshader-compiler.c deleted file mode 100644 index 4fc91deb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/mojoshader-compiler.c +++ /dev/null @@ -1,1102 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#include -#include -#include -#include - -#include "mojoshader.h" - -#ifdef _WIN32 -#define snprintf _snprintf // !!! FIXME: not a safe replacement! -#endif - -static const char **include_paths = NULL; -static unsigned int include_path_count = 0; - -#define MOJOSHADER_DEBUG_MALLOC 0 - -#if MOJOSHADER_DEBUG_MALLOC -static void *Malloc(int len, void *d) -{ - void *ptr = malloc(len + sizeof (int)); - int *store = (int *) ptr; - printf("malloc() %d bytes (%p)\n", len, ptr); - if (ptr == NULL) return NULL; - *store = len; - return (void *) (store + 1); -} // Malloc - - -static void Free(void *_ptr, void *d) -{ - int *ptr = (((int *) _ptr) - 1); - int len = *ptr; - printf("free() %d bytes (%p)\n", len, ptr); - free(ptr); -} // Free -#else -#define Malloc NULL -#define Free NULL -#endif - - -static void fail(const char *err) -{ - printf("%s.\n", err); - exit(1); -} // fail - -static void print_unroll_attr(FILE *io, const int unroll) -{ - // -1 means "unroll at compiler's discretion", - // -2 means user didn't specify the attribute. - switch (unroll) - { - case 0: - fprintf(io, "[loop] "); - break; - case -1: - fprintf(io, "[unroll] "); - break; - case -2: - /* no-op. */ - break; - default: - assert(unroll > 0); - fprintf(io, "[unroll(%d)] ", unroll); - break; - } // case -} // print_unroll_attr - -static void print_ast_datatype(FILE *io, const MOJOSHADER_astDataType *dt) -{ - int i; - - if (dt == NULL) - return; - - switch (dt->type) - { - case MOJOSHADER_AST_DATATYPE_BOOL: - fprintf(io, "bool"); - return; - case MOJOSHADER_AST_DATATYPE_INT: - fprintf(io, "int"); - return; - case MOJOSHADER_AST_DATATYPE_UINT: - fprintf(io, "uint"); - return; - case MOJOSHADER_AST_DATATYPE_FLOAT: - fprintf(io, "float"); - return; - case MOJOSHADER_AST_DATATYPE_FLOAT_SNORM: - fprintf(io, "snorm float"); - return; - case MOJOSHADER_AST_DATATYPE_FLOAT_UNORM: - fprintf(io, "unorm float"); - return; - case MOJOSHADER_AST_DATATYPE_HALF: - fprintf(io, "half"); - return; - case MOJOSHADER_AST_DATATYPE_DOUBLE: - fprintf(io, "double"); - return; - case MOJOSHADER_AST_DATATYPE_STRING: - fprintf(io, "string"); - return; - case MOJOSHADER_AST_DATATYPE_SAMPLER_1D: - fprintf(io, "sampler1D"); - return; - case MOJOSHADER_AST_DATATYPE_SAMPLER_2D: - fprintf(io, "sampler2D"); - return; - case MOJOSHADER_AST_DATATYPE_SAMPLER_3D: - fprintf(io, "sampler3D"); - return; - case MOJOSHADER_AST_DATATYPE_SAMPLER_CUBE: - fprintf(io, "samplerCUBE"); - return; - case MOJOSHADER_AST_DATATYPE_SAMPLER_STATE: - fprintf(io, "sampler_state"); - return; - case MOJOSHADER_AST_DATATYPE_SAMPLER_COMPARISON_STATE: - fprintf(io, "SamplerComparisonState"); - return; - - case MOJOSHADER_AST_DATATYPE_STRUCT: - fprintf(io, "struct { "); - for (i = 0; i < dt->structure.member_count; i++) - { - print_ast_datatype(io, dt->structure.members[i].datatype); - fprintf(io, " %s; ", dt->structure.members[i].identifier); - } // for - fprintf(io, "}"); - return; - - case MOJOSHADER_AST_DATATYPE_ARRAY: - print_ast_datatype(io, dt->array.base); - if (dt->array.elements < 0) - fprintf(io, "[]"); - else - fprintf(io, "[%d]", dt->array.elements); - return; - - case MOJOSHADER_AST_DATATYPE_VECTOR: - fprintf(io, "vector<"); - print_ast_datatype(io, dt->vector.base); - fprintf(io, ",%d>", dt->vector.elements); - return; - - case MOJOSHADER_AST_DATATYPE_MATRIX: - fprintf(io, "matrix<"); - print_ast_datatype(io, dt->matrix.base); - fprintf(io, ",%d,%d>", dt->matrix.rows, dt->matrix.columns); - return; - - case MOJOSHADER_AST_DATATYPE_BUFFER: - fprintf(io, "buffer<"); - print_ast_datatype(io, dt->buffer.base); - fprintf(io, ">"); - return; - - case MOJOSHADER_AST_DATATYPE_USER: - fprintf(io, "%s", dt->user.name); - return; - - // this should only appear if we did semantic analysis on the AST, - // so we only print the return value here. - case MOJOSHADER_AST_DATATYPE_FUNCTION: - if (!dt->function.retval) - fprintf(io, "void"); - else - print_ast_datatype(io, dt->function.retval); - return; - - //case MOJOSHADER_AST_DATATYPE_NONE: - default: - assert(0 && "Unexpected datatype."); - return; - } // switch -} // print_ast_datatype - -// !!! FIXME: this screws up on order of operations. -static void print_ast(FILE *io, const int substmt, const void *_ast) -{ - const MOJOSHADER_astNode *ast = (const MOJOSHADER_astNode *) _ast; - const char *nl = substmt ? "" : "\n"; - int typeint = 0; - static int indent = 0; - int isblock = 0; - int i; - - // These _HAVE_ to be in the same order as MOJOSHADER_astNodeType! - static const char *binary[] = - { - ",", "*", "/", "%", "+", "-", "<<", ">>", "<", ">", "<=", ">=", "==", - "!=", "&", "^", "|", "&&", "||", "=", "*=", "/=", "%=", "+=", "-=", - "<<=", ">>=", "&=", "^=", "|=" - }; - - static const char *pre_unary[] = { "++", "--", "-", "~", "!" }; - static const char *post_unary[] = { "++", "--" }; - static const char *simple_stmt[] = { "", "break", "continue", "discard" }; - static const char *inpmod[] = { "", "in ", "out ", "in out ", "uniform " }; - static const char *fnstorage[] = { "", "inline " }; - - static const char *interpmod[] = { - "", " linear", " centroid", " nointerpolation", - " noperspective", " sample" - }; - - if (!ast) return; - - typeint = (int) ast->ast.type; - - #define DO_INDENT do { \ - if (!substmt) { for (i = 0; i < indent; i++) fprintf(io, " "); } \ - } while (0) - - switch (ast->ast.type) - { - case MOJOSHADER_AST_OP_PREINCREMENT: - case MOJOSHADER_AST_OP_PREDECREMENT: - case MOJOSHADER_AST_OP_NEGATE: - case MOJOSHADER_AST_OP_COMPLEMENT: - case MOJOSHADER_AST_OP_NOT: - fprintf(io, "%s", pre_unary[(typeint-MOJOSHADER_AST_OP_START_RANGE_UNARY)-1]); - print_ast(io, 0, ast->unary.operand); - break; - - case MOJOSHADER_AST_OP_POSTINCREMENT: - case MOJOSHADER_AST_OP_POSTDECREMENT: - print_ast(io, 0, ast->unary.operand); - fprintf(io, "%s", post_unary[typeint-MOJOSHADER_AST_OP_POSTINCREMENT]); - break; - - case MOJOSHADER_AST_OP_MULTIPLY: - case MOJOSHADER_AST_OP_DIVIDE: - case MOJOSHADER_AST_OP_MODULO: - case MOJOSHADER_AST_OP_ADD: - case MOJOSHADER_AST_OP_SUBTRACT: - case MOJOSHADER_AST_OP_LSHIFT: - case MOJOSHADER_AST_OP_RSHIFT: - case MOJOSHADER_AST_OP_LESSTHAN: - case MOJOSHADER_AST_OP_GREATERTHAN: - case MOJOSHADER_AST_OP_LESSTHANOREQUAL: - case MOJOSHADER_AST_OP_GREATERTHANOREQUAL: - case MOJOSHADER_AST_OP_EQUAL: - case MOJOSHADER_AST_OP_NOTEQUAL: - case MOJOSHADER_AST_OP_BINARYAND: - case MOJOSHADER_AST_OP_BINARYXOR: - case MOJOSHADER_AST_OP_BINARYOR: - case MOJOSHADER_AST_OP_LOGICALAND: - case MOJOSHADER_AST_OP_LOGICALOR: - case MOJOSHADER_AST_OP_ASSIGN: - case MOJOSHADER_AST_OP_MULASSIGN: - case MOJOSHADER_AST_OP_DIVASSIGN: - case MOJOSHADER_AST_OP_MODASSIGN: - case MOJOSHADER_AST_OP_ADDASSIGN: - case MOJOSHADER_AST_OP_SUBASSIGN: - case MOJOSHADER_AST_OP_LSHIFTASSIGN: - case MOJOSHADER_AST_OP_RSHIFTASSIGN: - case MOJOSHADER_AST_OP_ANDASSIGN: - case MOJOSHADER_AST_OP_XORASSIGN: - case MOJOSHADER_AST_OP_ORASSIGN: - case MOJOSHADER_AST_OP_COMMA: - print_ast(io, 0, ast->binary.left); - if (ast->ast.type != MOJOSHADER_AST_OP_COMMA) - fprintf(io, " "); // no space before the comma. - fprintf(io, "%s ", binary[ - (typeint - MOJOSHADER_AST_OP_START_RANGE_BINARY) - 1]); - print_ast(io, 0, ast->binary.right); - break; - - case MOJOSHADER_AST_OP_DEREF_ARRAY: - print_ast(io, 0, ast->binary.left); - fprintf(io, "["); - print_ast(io, 0, ast->binary.right); - fprintf(io, "]"); - break; - - case MOJOSHADER_AST_OP_DEREF_STRUCT: - print_ast(io, 0, ast->derefstruct.identifier); - fprintf(io, "."); - fprintf(io, "%s", ast->derefstruct.member); - break; - - case MOJOSHADER_AST_OP_CONDITIONAL: - print_ast(io, 0, ast->ternary.left); - fprintf(io, " ? "); - print_ast(io, 0, ast->ternary.center); - fprintf(io, " : "); - print_ast(io, 0, ast->ternary.right); - break; - - case MOJOSHADER_AST_OP_IDENTIFIER: - fprintf(io, "%s", ast->identifier.identifier); - break; - - case MOJOSHADER_AST_OP_INT_LITERAL: - fprintf(io, "%d", ast->intliteral.value); - break; - - case MOJOSHADER_AST_OP_FLOAT_LITERAL: - { - const float f = ast->floatliteral.value; - const long long flr = (long long) f; - if (((float) flr) == f) - fprintf(io, "%lld.0", flr); - else - fprintf(io, "%.16g", f); - break; - } // case - - case MOJOSHADER_AST_OP_STRING_LITERAL: - fprintf(io, "\"%s\"", ast->stringliteral.string); - break; - - case MOJOSHADER_AST_OP_BOOLEAN_LITERAL: - fprintf(io, "%s", ast->boolliteral.value ? "true" : "false"); - break; - - case MOJOSHADER_AST_ARGUMENTS: - print_ast(io, 0, ast->arguments.argument); - if (ast->arguments.next != NULL) - { - fprintf(io, ", "); - print_ast(io, 0, ast->arguments.next); - } // if - break; - - case MOJOSHADER_AST_OP_CALLFUNC: - print_ast(io, 0, ast->callfunc.identifier); - fprintf(io, "("); - print_ast(io, 0, ast->callfunc.args); - fprintf(io, ")"); - break; - - case MOJOSHADER_AST_OP_CONSTRUCTOR: - print_ast_datatype(io, ast->constructor.datatype); - fprintf(io, "("); - print_ast(io, 0, ast->constructor.args); - fprintf(io, ")"); - break; - - case MOJOSHADER_AST_OP_CAST: - fprintf(io, "("); - print_ast_datatype(io, ast->cast.datatype); - fprintf(io, ") ("); - print_ast(io, 0, ast->cast.operand); - fprintf(io, ")"); - break; - - case MOJOSHADER_AST_STATEMENT_EXPRESSION: - DO_INDENT; - print_ast(io, 0, ast->exprstmt.expr); // !!! FIXME: This is named badly... - fprintf(io, ";%s", nl); - print_ast(io, 0, ast->exprstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_IF: - DO_INDENT; - fprintf(io, "if ("); - print_ast(io, 0, ast->ifstmt.expr); - fprintf(io, ")\n"); - isblock = ast->ifstmt.statement->ast.type == MOJOSHADER_AST_STATEMENT_BLOCK; - if (!isblock) indent++; - print_ast(io, 0, ast->ifstmt.statement); - if (!isblock) indent--; - print_ast(io, 0, ast->ifstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_TYPEDEF: - DO_INDENT; - print_ast(io, 1, ast->typedefstmt.type_info); - fprintf(io, "%s", nl); - print_ast(io, 0, ast->typedefstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_SWITCH: - DO_INDENT; - switch ( ast->switchstmt.attributes ) - { - case MOJOSHADER_AST_SWITCHATTR_NONE: break; - case MOJOSHADER_AST_SWITCHATTR_FLATTEN: fprintf(io, "[flatten] "); break; - case MOJOSHADER_AST_SWITCHATTR_BRANCH: fprintf(io, "[branch] "); break; - case MOJOSHADER_AST_SWITCHATTR_FORCECASE: fprintf(io, "[forcecase] "); break; - case MOJOSHADER_AST_SWITCHATTR_CALL: fprintf(io, "[call] "); break; - } // switch - - fprintf(io, "switch ("); - print_ast(io, 0, ast->switchstmt.expr); - fprintf(io, ")\n"); - DO_INDENT; - fprintf(io, "{\n"); - indent++; - print_ast(io, 0, ast->switchstmt.cases); - indent--; - fprintf(io, "\n"); - DO_INDENT; - fprintf(io, "}\n"); - print_ast(io, 0, ast->switchstmt.next); - break; - - case MOJOSHADER_AST_SWITCH_CASE: - DO_INDENT; - fprintf(io, "case "); - print_ast(io, 0, ast->cases.expr); - fprintf(io, ":\n"); - isblock = ast->cases.statement->ast.type == MOJOSHADER_AST_STATEMENT_BLOCK; - if (!isblock) indent++; - print_ast(io, 0, ast->cases.statement); - if (!isblock) indent--; - print_ast(io, 0, ast->cases.next); - break; - - case MOJOSHADER_AST_STATEMENT_STRUCT: - DO_INDENT; - print_ast(io, 0, ast->structstmt.struct_info); - fprintf(io, ";%s%s", nl, nl); // always space these out. - print_ast(io, 0, ast->structstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_VARDECL: - DO_INDENT; - print_ast(io, 1, ast->vardeclstmt.declaration); - fprintf(io, ";%s", nl); - print_ast(io, 0, ast->vardeclstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_BLOCK: - DO_INDENT; - fprintf(io, "{\n"); - indent++; - print_ast(io, 0, ast->blockstmt.statements); - indent--; - DO_INDENT; - fprintf(io, "}\n"); - print_ast(io, 0, ast->blockstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_FOR: - DO_INDENT; - print_unroll_attr(io, ast->forstmt.unroll); - fprintf(io, "for ("); - print_ast(io, 1, ast->forstmt.var_decl); - print_ast(io, 1, ast->forstmt.initializer); - fprintf(io, "; "); - print_ast(io, 1, ast->forstmt.looptest); - fprintf(io, "; "); - print_ast(io, 1, ast->forstmt.counter); - - fprintf(io, ")\n"); - isblock = ast->forstmt.statement->ast.type == MOJOSHADER_AST_STATEMENT_BLOCK; - if (!isblock) indent++; - print_ast(io, 0, ast->forstmt.statement); - if (!isblock) indent--; - - print_ast(io, 0, ast->forstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_DO: - DO_INDENT; - print_unroll_attr(io, ast->dostmt.unroll); - fprintf(io, "do\n"); - - isblock = ast->dostmt.statement->ast.type == MOJOSHADER_AST_STATEMENT_BLOCK; - if (!isblock) indent++; - print_ast(io, 0, ast->dostmt.statement); - if (!isblock) indent--; - - DO_INDENT; - fprintf(io, "while ("); - print_ast(io, 0, ast->dostmt.expr); - fprintf(io, ");\n"); - - print_ast(io, 0, ast->dostmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_WHILE: - DO_INDENT; - print_unroll_attr(io, ast->whilestmt.unroll); - fprintf(io, "while ("); - print_ast(io, 0, ast->whilestmt.expr); - fprintf(io, ")\n"); - - isblock = ast->whilestmt.statement->ast.type == MOJOSHADER_AST_STATEMENT_BLOCK; - if (!isblock) indent++; - print_ast(io, 0, ast->whilestmt.statement); - if (!isblock) indent--; - - print_ast(io, 0, ast->whilestmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_RETURN: - DO_INDENT; - fprintf(io, "return"); - if (ast->returnstmt.expr) - { - fprintf(io, " "); - print_ast(io, 0, ast->returnstmt.expr); - } // if - fprintf(io, ";%s", nl); - print_ast(io, 0, ast->returnstmt.next); - break; - - case MOJOSHADER_AST_STATEMENT_EMPTY: - case MOJOSHADER_AST_STATEMENT_BREAK: - case MOJOSHADER_AST_STATEMENT_CONTINUE: - case MOJOSHADER_AST_STATEMENT_DISCARD: - DO_INDENT; - fprintf(io, "%s;%s", - simple_stmt[(typeint-MOJOSHADER_AST_STATEMENT_START_RANGE)-1], - nl); - print_ast(io, 0, ast->stmt.next); - break; - - case MOJOSHADER_AST_COMPUNIT_FUNCTION: - DO_INDENT; - print_ast(io, 0, ast->funcunit.declaration); - if (ast->funcunit.definition == NULL) - fprintf(io, ";%s", nl); - else - { - fprintf(io, "%s", nl); - print_ast(io, 0, ast->funcunit.definition); - fprintf(io, "%s", nl); - } // else - print_ast(io, 0, ast->funcunit.next); - break; - - case MOJOSHADER_AST_COMPUNIT_TYPEDEF: - DO_INDENT; - print_ast(io, 0, ast->typedefunit.type_info); - fprintf(io, "%s", nl); - print_ast(io, 0, ast->typedefunit.next); - break; - - case MOJOSHADER_AST_COMPUNIT_STRUCT: - DO_INDENT; - print_ast(io, 0, ast->structunit.struct_info); - fprintf(io, ";%s%s", nl, nl); // always space these out. - print_ast(io, 0, ast->structunit.next); - break; - - case MOJOSHADER_AST_COMPUNIT_VARIABLE: - DO_INDENT; - print_ast(io, 1, ast->varunit.declaration); - fprintf(io, ";%s", nl); - if (ast->varunit.next && - ast->varunit.next->ast.type!=MOJOSHADER_AST_COMPUNIT_VARIABLE) - { - fprintf(io, "%s", nl); // group vars together, and space out other things. - } // if - print_ast(io, 0, ast->varunit.next); - break; - - case MOJOSHADER_AST_SCALAR_OR_ARRAY: - fprintf(io, "%s", ast->soa.identifier); - if (ast->soa.isarray) - { - fprintf(io, "["); - print_ast(io, 0, ast->soa.dimension); - fprintf(io, "]"); - } // if - break; - - case MOJOSHADER_AST_TYPEDEF: - DO_INDENT; - fprintf(io, "typedef %s", ast->typdef.isconst ? "const " : ""); - print_ast_datatype(io, ast->typdef.datatype); - fprintf(io, " "); - print_ast(io, 0, ast->typdef.details); - fprintf(io, ";%s", nl); - break; - - case MOJOSHADER_AST_FUNCTION_PARAMS: - fprintf(io, "%s", inpmod[(int) ast->params.input_modifier]); - print_ast_datatype(io, ast->params.datatype); - fprintf(io, " %s", ast->params.identifier); - if (ast->params.semantic) - fprintf(io, " : %s", ast->params.semantic); - fprintf(io, "%s", interpmod[(int) ast->params.interpolation_modifier]); - - if (ast->params.initializer) - { - fprintf(io, " = "); - print_ast(io, 0, ast->params.initializer); - } // if - - if (ast->params.next) - { - fprintf(io, ", "); - print_ast(io, 0, ast->params.next); - } // if - break; - - case MOJOSHADER_AST_FUNCTION_SIGNATURE: - fprintf(io, "%s", fnstorage[(int) ast->funcsig.storage_class]); - if (ast->funcsig.datatype) - print_ast_datatype(io, ast->funcsig.datatype); - else - fprintf(io, "void"); - fprintf(io, " %s(", ast->funcsig.identifier); - print_ast(io, 0, ast->funcsig.params); - fprintf(io, ")"); - if (ast->funcsig.semantic) - fprintf(io, " : %s", ast->funcsig.semantic); - break; - - case MOJOSHADER_AST_STRUCT_DECLARATION: - fprintf(io, "struct %s\n", ast->structdecl.name); - DO_INDENT; - fprintf(io, "{\n"); - indent++; - print_ast(io, 0, ast->structdecl.members); - indent--; - DO_INDENT; - fprintf(io, "}"); - break; - - case MOJOSHADER_AST_STRUCT_MEMBER: - DO_INDENT; - fprintf(io, "%s", interpmod[(int)ast->structmembers.interpolation_mod]); - print_ast_datatype(io, ast->structmembers.datatype); - fprintf(io, " "); - print_ast(io, 0, ast->structmembers.details); - if (ast->structmembers.semantic) - fprintf(io, " : %s", ast->structmembers.semantic); - fprintf(io, ";%s", nl); - print_ast(io, 0, ast->structmembers.next); - break; - - case MOJOSHADER_AST_VARIABLE_DECLARATION: - DO_INDENT; - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_EXTERN) - fprintf(io, "extern "); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_NOINTERPOLATION) - fprintf(io, "nointerpolation "); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_SHARED) - fprintf(io, "shared"); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_STATIC) - fprintf(io, "static "); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_UNIFORM) - fprintf(io, "uniform "); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_VOLATILE) - fprintf(io, "nointerpolation "); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_CONST) - fprintf(io, "const "); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_ROWMAJOR) - fprintf(io, "rowmajor "); - if (ast->vardecl.attributes & MOJOSHADER_AST_VARATTR_COLUMNMAJOR) - fprintf(io, "columnmajor "); - - if (ast->vardecl.datatype) - print_ast_datatype(io, ast->vardecl.datatype); - else - print_ast(io, 0, ast->vardecl.anonymous_datatype); - fprintf(io, " "); - print_ast(io, 0, ast->vardecl.details); - if (ast->vardecl.semantic) - fprintf(io, " : %s", ast->vardecl.semantic); - if (ast->vardecl.annotations) - { - fprintf(io, " "); - print_ast(io, 0, ast->vardecl.annotations); - } // if - if (ast->vardecl.initializer != NULL) - { - fprintf(io, " = "); - print_ast(io, 0, ast->vardecl.initializer); - } // if - print_ast(io, 0, ast->vardecl.lowlevel); - - if (ast->vardecl.next == NULL) - fprintf(io, "%s", nl); - else - { - const int attr = ast->vardecl.next->attributes; - fprintf(io, ", "); - ast->vardecl.next->attributes = 0; - print_ast(io, 1, ast->vardecl.next); - ast->vardecl.next->attributes = attr; - } // if - break; - - case MOJOSHADER_AST_PACK_OFFSET: - fprintf(io, " : packoffset(%s%s%s)", ast->packoffset.ident1, - ast->packoffset.ident2 ? "." : "", - ast->packoffset.ident2 ? ast->packoffset.ident2 : ""); - break; - - case MOJOSHADER_AST_VARIABLE_LOWLEVEL: - print_ast(io, 0, ast->varlowlevel.packoffset); - if (ast->varlowlevel.register_name) - fprintf(io, " : register(%s)", ast->varlowlevel.register_name); - break; - - case MOJOSHADER_AST_ANNOTATION: - { - const MOJOSHADER_astAnnotations *a = &ast->annotations; - fprintf(io, "<"); - while (a) - { - fprintf(io, " "); - print_ast_datatype(io, a->datatype); - if (a->initializer != NULL) - { - fprintf(io, " = "); - print_ast(io, 0, a->initializer); - } // if - if (a->next) - fprintf(io, ","); - a = a->next; - } // while - fprintf(io, " >"); - break; - } // case - - default: - assert(0 && "unexpected type"); - break; - } // switch - - #undef DO_INDENT -} // print_ast - - -static int open_include(MOJOSHADER_includeType inctype, const char *fname, - const char *parent, const char **outdata, - unsigned int *outbytes, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d) -{ - int i; - for (i = 0; i < include_path_count; i++) - { - const char *path = include_paths[i]; - const size_t len = strlen(path) + strlen(fname) + 2; - char *buf = (char *) m(len, d); - if (buf == NULL) - return 0; - - snprintf(buf, len, "%s/%s", path, fname); - FILE *io = fopen(buf, "rb"); - f(buf, d); - if (io == NULL) - continue; - - if (fseek(io, 0, SEEK_END) != -1) - { - const long fsize = ftell(io); - if ((fsize == -1) || (fseek(io, 0, SEEK_SET) == -1)) - { - fclose(io); - return 0; - } // if - - char *data = (char *) m(fsize, d); - if (data == NULL) - { - fclose(io); - return 0; - } // if - - if (fread(data, fsize, 1, io) != 1) - { - f(data, d); - fclose(io); - return 0; - } // if - - fclose(io); - *outdata = data; - *outbytes = (unsigned int) fsize; - return 1; - } // if - } // for - - return 0; -} // open_include - - -static void close_include(const char *data, MOJOSHADER_malloc m, - MOJOSHADER_free f, void *d) -{ - f((void *) data, d); -} // close_include - - -static int preprocess(const char *fname, const char *buf, int len, - const char *outfile, - const MOJOSHADER_preprocessorDefine *defs, - unsigned int defcount, FILE *io) -{ - const MOJOSHADER_preprocessData *pd; - int retval = 0; - - pd = MOJOSHADER_preprocess(fname, buf, len, defs, defcount, open_include, - close_include, Malloc, Free, NULL); - - if (pd->error_count > 0) - { - int i; - for (i = 0; i < pd->error_count; i++) - { - fprintf(stderr, "%s:%d: ERROR: %s\n", - pd->errors[i].filename ? pd->errors[i].filename : "???", - pd->errors[i].error_position, - pd->errors[i].error); - } // for - } // if - else - { - if (pd->output != NULL) - { - const int len = pd->output_len; - if ((len) && (fwrite(pd->output, len, 1, io) != 1)) - printf(" ... fwrite('%s') failed.\n", outfile); - else if ((outfile != NULL) && (fclose(io) == EOF)) - printf(" ... fclose('%s') failed.\n", outfile); - else - retval = 1; - } // if - } // else - MOJOSHADER_freePreprocessData(pd); - - return retval; -} // preprocess - - -static int assemble(const char *fname, const char *buf, int len, - const char *outfile, - const MOJOSHADER_preprocessorDefine *defs, - unsigned int defcount, FILE *io) -{ - const MOJOSHADER_parseData *pd; - int retval = 0; - - pd = MOJOSHADER_assemble(fname, buf, len, NULL, 0, NULL, 0, - defs, defcount, open_include, close_include, - Malloc, Free, NULL); - - if (pd->error_count > 0) - { - int i; - for (i = 0; i < pd->error_count; i++) - { - fprintf(stderr, "%s:%d: ERROR: %s\n", - pd->errors[i].filename ? pd->errors[i].filename : "???", - pd->errors[i].error_position, - pd->errors[i].error); - } // for - } // if - else - { - if (pd->output != NULL) - { - const int len = pd->output_len; - if ((len) && (fwrite(pd->output, len, 1, io) != 1)) - printf(" ... fwrite('%s') failed.\n", outfile); - else if ((outfile != NULL) && (fclose(io) == EOF)) - printf(" ... fclose('%s') failed.\n", outfile); - else - retval = 1; - } // if - } // else - MOJOSHADER_freeParseData(pd); - - return retval; -} // assemble - -static int ast(const char *fname, const char *buf, int len, - const char *outfile, const MOJOSHADER_preprocessorDefine *defs, - unsigned int defcount, FILE *io) -{ - const MOJOSHADER_astData *ad; - int retval = 0; - - ad = MOJOSHADER_parseAst(MOJOSHADER_SRC_PROFILE_HLSL_PS_1_1, // !!! FIXME - fname, buf, len, defs, defcount, - open_include, close_include, Malloc, Free, NULL); - - if (ad->error_count > 0) - { - int i; - for (i = 0; i < ad->error_count; i++) - { - fprintf(stderr, "%s:%d: ERROR: %s\n", - ad->errors[i].filename ? ad->errors[i].filename : "???", - ad->errors[i].error_position, - ad->errors[i].error); - } // for - } // if - else - { - print_ast(io, 0, ad->ast); - if ((outfile != NULL) && (fclose(io) == EOF)) - printf(" ... fclose('%s') failed.\n", outfile); - else - retval = 1; - } // else - MOJOSHADER_freeAstData(ad); - - return retval; -} // ast - -static int compile(const char *fname, const char *buf, int len, - const char *outfile, - const MOJOSHADER_preprocessorDefine *defs, - unsigned int defcount, FILE *io) -{ - // !!! FIXME: write me. - //const MOJOSHADER_parseData *pd; - //int retval = 0; - - MOJOSHADER_compile(MOJOSHADER_SRC_PROFILE_HLSL_PS_1_1, // !!! FIXME - fname, buf, len, defs, defcount, - open_include, close_include, - Malloc, Free, NULL); - return 1; -} // compile - -typedef enum -{ - ACTION_UNKNOWN, - ACTION_VERSION, - ACTION_PREPROCESS, - ACTION_ASSEMBLE, - ACTION_AST, - ACTION_COMPILE, -} Action; - - -int main(int argc, char **argv) -{ - Action action = ACTION_UNKNOWN; - int retval = 1; - const char *infile = NULL; - const char *outfile = NULL; - int i; - - MOJOSHADER_preprocessorDefine *defs = NULL; - unsigned int defcount = 0; - - include_paths = (const char **) malloc(sizeof (char *)); - include_paths[0] = "."; - include_path_count = 1; - - // !!! FIXME: clean this up. - for (i = 1; i < argc; i++) - { - const char *arg = argv[i]; - - if (strcmp(arg, "-P") == 0) - { - if ((action != ACTION_UNKNOWN) && (action != ACTION_PREPROCESS)) - fail("Multiple actions specified"); - action = ACTION_PREPROCESS; - } // if - - else if (strcmp(arg, "-A") == 0) - { - if ((action != ACTION_UNKNOWN) && (action != ACTION_ASSEMBLE)) - fail("Multiple actions specified"); - action = ACTION_ASSEMBLE; - } // else if - - else if (strcmp(arg, "-T") == 0) - { - if ((action != ACTION_UNKNOWN) && (action != ACTION_AST)) - fail("Multiple actions specified"); - action = ACTION_AST; - } // else if - - else if (strcmp(arg, "-C") == 0) - { - if ((action != ACTION_UNKNOWN) && (action != ACTION_COMPILE)) - fail("Multiple actions specified"); - action = ACTION_COMPILE; - } // else if - - else if ((strcmp(arg, "-V") == 0) || (strcmp(arg, "--version") == 0)) - { - if ((action != ACTION_UNKNOWN) && (action != ACTION_VERSION)) - fail("Multiple actions specified"); - action = ACTION_VERSION; - } // else if - - else if (strcmp(arg, "-o") == 0) - { - if (outfile != NULL) - fail("multiple output files specified"); - - arg = argv[++i]; - if (arg == NULL) - fail("no filename after '-o'"); - outfile = arg; - } // if - - else if (strcmp(arg, "-I") == 0) - { - arg = argv[++i]; - if (arg == NULL) - fail("no path after '-I'"); - - include_paths = (const char **) realloc(include_paths, - (include_path_count+1) * sizeof (char *)); - include_paths[include_path_count] = arg; - include_path_count++; - } // if - - else if (strncmp(arg, "-D", 2) == 0) - { - arg += 2; - char *ident = strdup(arg); - char *ptr = strchr(ident, '='); - const char *val = ""; - if (ptr) - { - *ptr = '\0'; - val = ptr+1; - } // if - - defs = (MOJOSHADER_preprocessorDefine *) realloc(defs, - (defcount+1) * sizeof (MOJOSHADER_preprocessorDefine)); - defs[defcount].identifier = ident; - defs[defcount].definition = val; - defcount++; - } // else if - - else - { - if (infile != NULL) - fail("multiple input files specified"); - infile = arg; - } // else - } // for - - if (action == ACTION_UNKNOWN) - action = ACTION_ASSEMBLE; - - if (action == ACTION_VERSION) - { - printf("mojoshader-compiler, changeset %s\n", MOJOSHADER_CHANGESET); - return 0; - } // if - - if (infile == NULL) - fail("no input file specified"); - - FILE *io = fopen(infile, "rb"); - if (io == NULL) - fail("failed to open input file"); - - fseek(io, 0, SEEK_END); - long fsize = ftell(io); - fseek(io, 0, SEEK_SET); - if (fsize == -1) - fsize = 1000000; - char *buf = (char *) malloc(fsize); - const int rc = fread(buf, 1, fsize, io); - fclose(io); - if (rc == EOF) - fail("failed to read input file"); - - FILE *outio = outfile ? fopen(outfile, "wb") : stdout; - if (outio == NULL) - fail("failed to open output file"); - - - if (action == ACTION_PREPROCESS) - retval = (!preprocess(infile, buf, rc, outfile, defs, defcount, outio)); - else if (action == ACTION_ASSEMBLE) - retval = (!assemble(infile, buf, rc, outfile, defs, defcount, outio)); - else if (action == ACTION_AST) - retval = (!ast(infile, buf, rc, outfile, defs, defcount, outio)); - else if (action == ACTION_COMPILE) - retval = (!compile(infile, buf, rc, outfile, defs, defcount, outio)); - - if ((retval != 0) && (outfile != NULL)) - remove(outfile); - - free(buf); - - for (i = 0; i < defcount; i++) - free((void *) defs[i].identifier); - free(defs); - - free(include_paths); - - return retval; -} // main - -// end of mojoshader-compiler.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testglcompile.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testglcompile.c deleted file mode 100644 index cd7f4a98..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testglcompile.c +++ /dev/null @@ -1,110 +0,0 @@ -// A simple program to see if the GL implementation will accept a shader -// generated by MojoShader, as they could also fail to compile what -// we produce. - -#include -#include -#include -#include - -#include "SDL.h" -#include "mojoshader.h" - -static void * MOJOSHADERCALL get_proc_addr(const char *fnname, void *data) -{ - return SDL_GL_GetProcAddress(fnname); -} - -int main(int argc, char **argv) -{ - int retval = 1; - SDL_Window *sdlwindow = NULL; - MOJOSHADER_glContext *mojo = NULL; - int i; - - printf("MojoShader testglcompile\n"); - printf("Compiled against changeset %s\n", MOJOSHADER_CHANGESET); - printf("Linked against changeset %s\n", MOJOSHADER_changeset()); - printf("\n"); - - if (argc <= 2) - printf("\n\nUSAGE: %s [file1] ... [fileN]\n\n", argv[0]); - else if (SDL_Init(SDL_INIT_VIDEO) == -1) - fprintf(stderr, "SDL_Init() error: %s\n", SDL_GetError()); - else if (SDL_GL_LoadLibrary(NULL) == -1) - fprintf(stderr, "SDL_GL_LoadLibrary() error: %s\n", SDL_GetError()); - else if ((sdlwindow = SDL_CreateWindow(argv[0], SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 640, 480, SDL_WINDOW_OPENGL)) == NULL) - fprintf(stderr, "SDL_CreateWindow() error: %s\n", SDL_GetError()); - else if (SDL_GL_CreateContext(sdlwindow) == NULL) - fprintf(stderr, "SDL_GL_CreateContext() error: %s\n", SDL_GetError()); - else if ((mojo = MOJOSHADER_glCreateContext(argv[1], get_proc_addr, NULL, NULL, NULL, NULL)) == NULL) - fprintf(stderr, "MOJOSHADER_glCreateContext() error: %s\n", MOJOSHADER_glGetError()); - else - retval = 0; - - if (retval != 0) - { - SDL_Quit(); - return retval; - } // if - - MOJOSHADER_glMakeContextCurrent(mojo); - - for (i = 2; i < argc; i++) { - const char *fname = argv[i]; - static unsigned char buffer[1024 * 512]; - MOJOSHADER_glShader *shader; - MOJOSHADER_glProgram *program; - const MOJOSHADER_parseData *pd; - int isvshader; - FILE *io; - size_t br; - - io = fopen(fname, "rb"); - if (!io) { - fprintf(stderr, "Failed to open %s: %s\n", fname, strerror(errno)); - retval = 1; - continue; - } - - br = fread(buffer, 1, sizeof (buffer), io); - fclose(io); - - shader = MOJOSHADER_glCompileShader(buffer, (unsigned int) br, NULL, 0, NULL, 0); - if (!shader) { - fprintf(stderr, "Compiling %s failed: %s\n", fname, MOJOSHADER_glGetError()); - retval = 1; - continue; - } - - shader = MOJOSHADER_glCompileShader(buffer, (unsigned int) br, NULL, 0, NULL, 0); - if (!shader) { - fprintf(stderr, "Compiling %s failed: %s\n", fname, MOJOSHADER_glGetError()); - retval = 1; - continue; - } - - pd = MOJOSHADER_glGetShaderParseData(shader); - isvshader = (pd->shader_type == MOJOSHADER_TYPE_VERTEX); - program = MOJOSHADER_glLinkProgram(isvshader ? shader : NULL, isvshader ? NULL : shader); - if (!program) { - fprintf(stderr, "Linking %s failed: %s\n", fname, MOJOSHADER_glGetError()); - retval = 1; - MOJOSHADER_glDeleteShader(shader); - continue; - } - - printf("%s: okay\n", fname); - - MOJOSHADER_glDeleteProgram(program); - MOJOSHADER_glDeleteShader(shader); - } - - MOJOSHADER_glDestroyContext(mojo); - SDL_Quit(); - - return retval; -} - -// end of testglcompile.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testoutput.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testoutput.c deleted file mode 100644 index fe83d6e2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testoutput.c +++ /dev/null @@ -1,81 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#include -#include -#include "mojoshader.h" - -static int do_parse(const unsigned char *buf, const int len, const char *prof) -{ - const MOJOSHADER_parseData *pd; - int retval = 0; - - pd = MOJOSHADER_parse(prof, NULL, buf, len, NULL, 0, NULL, 0, NULL, NULL, NULL); - if (pd->error_count > 0) - { - int i; - for (i = 0; i < pd->error_count; i++) - { - printf("%s:%d: ERROR: %s\n", - pd->errors[i].filename ? pd->errors[i].filename : "???", - pd->errors[i].error_position, - pd->errors[i].error); - } // for - } // if - else - { - retval = 1; - if (pd->output != NULL) - { - int i; - for (i = 0; i < pd->output_len; i++) - putchar((int) pd->output[i]); - printf("\n"); - } // if - } // else - printf("\n\n"); - MOJOSHADER_freeParseData(pd); - - return retval; -} // do_parse - - -int main(int argc, char **argv) -{ - int retval = 0; - - if (argc <= 2) - printf("\n\nUSAGE: %s [file1] ... [fileN]\n\n", argv[0]); - else - { - const char *profile = argv[1]; - int i; - - for (i = 2; i < argc; i++) - { - FILE *io = fopen(argv[i], "rb"); - if (io == NULL) - printf(" ... fopen('%s') failed.\n", argv[i]); - else - { - unsigned char *buf = (unsigned char *) malloc(1000000); - int rc = fread(buf, 1, 1000000, io); - fclose(io); - if (!do_parse(buf, rc, profile)) - retval = 1; - free(buf); - } // else - } // for - } // else - - return retval; -} // main - -// end of testoutput.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testparse.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testparse.c deleted file mode 100644 index c739aa93..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/MojoShader/utils/testparse.c +++ /dev/null @@ -1,874 +0,0 @@ -/** - * MojoShader; generate shader programs from bytecode of compiled - * Direct3D shaders. - * - * Please see the file LICENSE.txt in the source's root directory. - * - * This file written by Ryan C. Gordon. - */ - -#include -#include -#include -#include -#include "../mojoshader.h" -#define __MOJOSHADER_INTERNAL__ 1 -#include "../mojoshader_internal.h" -#ifdef MOJOSHADER_HAS_SPIRV_TOOLS -#include "spirv-tools/libspirv.h" -#endif - -#ifdef _MSC_VER -#define snprintf _snprintf -#endif - -#if MOJOSHADER_DEBUG_MALLOC -static void *Malloc(int len) -{ - void *ptr = malloc(len + sizeof (int)); - int *store = (int *) ptr; - printf("malloc() %d bytes (%p)\n", len, ptr); - if (ptr == NULL) return NULL; - *store = len; - return (void *) (store + 1); -} // Malloc - - -static void Free(void *_ptr) -{ - int *ptr = (((int *) _ptr) - 1); - int len = *ptr; - printf("free() %d bytes (%p)\n", len, ptr); - free(ptr); -} // Free -#else -#define Malloc NULL -#define Free NULL -#endif - -static inline void do_indent(const unsigned int indent) -{ - unsigned int i; - for (i = 0; i < indent; i++) - printf(" "); -} - -#define INDENT() do { if (indent) { do_indent(indent); } } while (0) - - -static const char *shader_type(const MOJOSHADER_shaderType s) -{ - switch (s) - { - case MOJOSHADER_TYPE_UNKNOWN: return "unknown"; - case MOJOSHADER_TYPE_PIXEL: return "pixel"; - case MOJOSHADER_TYPE_VERTEX: return "vertex"; - case MOJOSHADER_TYPE_GEOMETRY: return "geometry"; - default: return "(bogus value?)"; - } // switch - - return NULL; // shouldn't hit this. -} // shader_type - - -static void print_typeinfo(const MOJOSHADER_symbolTypeInfo *info, - unsigned int indent) -{ - static const char *symclasses[] = { - "scalar", "vector", "row-major matrix", - "column-major matrix", "object", "struct" - }; - - static const char *symtypes[] = { - "void", "bool", "int", "float", "string", "texture", - "texture1d", "texture2d", "texture3d", "texturecube", - "sampler", "sampler1d", "sampler2d", "sampler3d", - "samplercube", "pixelshader", "vertexshader", "unsupported" - }; - - INDENT(); - printf(" symbol class %s\n", symclasses[info->parameter_class]); - INDENT(); - printf(" symbol type %s\n", symtypes[info->parameter_type]); - INDENT(); - printf(" rows %u\n", info->rows); - INDENT(); - printf(" columns %u\n", info->columns); - INDENT(); - printf(" elements %u\n", info->elements); - - if (info->member_count > 0) - { - int i; - INDENT(); printf(" MEMBERS:\n"); - for (i = 0; i < info->member_count; i++) - { - const MOJOSHADER_symbolStructMember *member = &info->members[i]; - INDENT(); printf(" MEMBERS:\n"); - indent++; - INDENT(); printf(" * %d: \"%s\"\n", i, member->name); - print_typeinfo(&member->info, indent); - indent--; - } // for - } // if -} // print_typeinfo - - -static void print_symbols(const MOJOSHADER_symbol *sym, - const unsigned int symbol_count, - const unsigned int indent) -{ - INDENT(); printf("SYMBOLS:"); - if (symbol_count == 0) - printf(" (none.)\n"); - else - { - int i; - printf("\n"); - for (i = 0; i < symbol_count; i++, sym++) - { - static const char *regsets[] = { - "bool", "int4", "float4", "sampler" - }; - - INDENT(); printf(" * %d: \"%s\"\n", i, sym->name); - INDENT(); printf(" register set %s\n", regsets[sym->register_set]); - INDENT(); printf(" register index %u\n", sym->register_index); - INDENT(); printf(" register count %u\n", sym->register_count); - print_typeinfo(&sym->info, indent); - } // for - printf("\n"); - } // else -} // print_symbols - - -static void print_preshader_operand(const MOJOSHADER_preshader *preshader, - const int instidx, const int opidx) -{ - static char mask[] = { 'x', 'y', 'z', 'w' }; - const MOJOSHADER_preshaderInstruction *inst = &preshader->instructions[instidx]; - const MOJOSHADER_preshaderOperand *operand = &inst->operands[opidx]; - const int elems = inst->element_count; - const int isscalarop = (inst->opcode >= MOJOSHADER_PRESHADEROP_SCALAR_OPS); - const int isscalar = ((isscalarop) && (opidx == 0)); // probably wrong. - int i; - - switch (operand->type) - { - case MOJOSHADER_PRESHADEROPERAND_LITERAL: - { - const double *lit = &preshader->literals[operand->index]; - printf("("); - if (isscalar) - { - const double val = *lit; - for (i = 0; i < elems-1; i++) - printf("%g, ", val); - printf("%g)", val); - } // if - else - { - for (i = 0; i < elems-1; i++, lit++) - printf("%g, ", *lit); - printf("%g)", *lit); - } // else - break; - } // case - - case MOJOSHADER_PRESHADEROPERAND_INPUT: - case MOJOSHADER_PRESHADEROPERAND_OUTPUT: - case MOJOSHADER_PRESHADEROPERAND_TEMP: - { - int idx = operand->index % 4; - char regch = 'c'; - if (operand->type == MOJOSHADER_PRESHADEROPERAND_TEMP) - regch = 'r'; - - if (operand->array_register_count > 0) - { - for (i = operand->array_register_count - 1; i >= 0; i--) - printf("c%d[", operand->array_registers[i]); - printf("%c%d.%c", regch, operand->index / 4, mask[idx]); - for (i = 0; i < operand->array_register_count; i++) - printf("]"); - break; - } // if - printf("%c%d", regch, operand->index / 4); - if (isscalar) - printf(".%c", mask[idx]); - else if (elems != 4) - { - printf("."); - for (i = 0; i < elems; i++) - printf("%c", mask[idx++]); - } // else if - break; - } // case - - default: - printf("[???{%d, %u}???]", (int) operand->type, operand->index); - break; - } // switch -} // print_preshader_operand - - -static void print_preshader(const MOJOSHADER_preshader *preshader, - const int indent) -{ - MOJOSHADER_preshaderInstruction *inst = preshader->instructions; - int i, j; - - static const char *opcodestr[] = { - "nop", "mov", "neg", "rcp", "frc", "exp", "log", "rsq", "sin", "cos", - "asin", "acos", "atan", "min", "max", "lt", "ge", "add", "mul", - "atan2", "div", "cmp", "movc", "dot", "noise", "min", "max", "lt", - "ge", "add", "mul", "atan2", "div", "dot", "noise" - }; - - INDENT(); printf("PRESHADER:\n"); - - print_symbols(preshader->symbols, preshader->symbol_count, indent + 1); - - for (i = 0; i < preshader->instruction_count; i++, inst++) - { - INDENT(); printf(" %s ", opcodestr[inst->opcode]); - - // print dest register first... - print_preshader_operand(preshader, i, inst->operand_count - 1); - - // ...then the source registers. - for (j = 0; j < inst->operand_count - 1; j++) - { - printf(", "); - print_preshader_operand(preshader, i, j); - } // for - - printf("\n"); - } // for - - printf("\n"); -} // print_preshader - - -static void print_attrs(const char *category, const int count, - const MOJOSHADER_attribute *attributes, - const int indent) -{ - INDENT(); printf("%s:", category); - if (count == 0) - printf(" (none.)\n"); - else - { - int i; - printf("\n"); - for (i = 0; i < count; i++) - { - static const char *usagenames[] = { - "", - "position", "blendweight", "blendindices", "normal", - "psize", "texcoord", "tangent", "binormal", "tessfactor", - "positiont", "color", "fog", "depth", "sample" - }; - const MOJOSHADER_attribute *a = &attributes[i]; - char numstr[16] = { 0 }; - if (a->index != 0) - snprintf(numstr, sizeof (numstr), "%d", a->index); - INDENT(); - printf(" * %s%s", usagenames[1 + (int) a->usage], numstr); - if (a->name != NULL) - printf(" (\"%s\")", a->name); - printf("\n"); - } // for - } // else -} // print_attrs - - -static void print_shader(const char *fname, const MOJOSHADER_parseData *pd, - unsigned int indent) -{ - INDENT(); printf("PROFILE: %s\n", pd->profile); - if (pd->error_count > 0) - { - int i; - for (i = 0; i < pd->error_count; i++) - { - const MOJOSHADER_error *err = &pd->errors[i]; - INDENT(); - printf("%s:%d: ERROR: %s\n", - err->filename ? err->filename : fname, - err->error_position, err->error); - } // for - } // if - else - { - INDENT(); printf("SHADER TYPE: %s\n", shader_type(pd->shader_type)); - INDENT(); printf("VERSION: %d.%d\n", pd->major_ver, pd->minor_ver); - INDENT(); printf("INSTRUCTION COUNT: %d\n", (int) pd->instruction_count); - INDENT(); printf("MAIN FUNCTION: %s\n", pd->mainfn); - print_attrs("INPUTS", pd->attribute_count, pd->attributes, indent); - print_attrs("OUTPUTS", pd->output_count, pd->outputs, indent); - - INDENT(); printf("CONSTANTS:"); - if (pd->constant_count == 0) - printf(" (none.)\n"); - else - { - int i; - printf("\n"); - for (i = 0; i < pd->constant_count; i++) - { - static const char *typenames[] = { "float", "int", "bool" }; - const MOJOSHADER_constant *c = &pd->constants[i]; - INDENT(); - printf(" * %d: %s (", c->index, typenames[(int) c->type]); - if (c->type == MOJOSHADER_UNIFORM_FLOAT) - { - printf("%f %f %f %f", c->value.f[0], c->value.f[1], - c->value.f[2], c->value.f[3]); - } // if - else if (c->type == MOJOSHADER_UNIFORM_INT) - { - printf("%d %d %d %d", c->value.i[0], c->value.i[1], - c->value.i[2], c->value.i[3]); - } // else if - else if (c->type == MOJOSHADER_UNIFORM_BOOL) - { - printf("%s", c->value.b ? "true" : "false"); - } // else if - else - { - printf("???"); - } // else - printf(")\n"); - } // for - } // else - - INDENT(); printf("UNIFORMS:"); - if (pd->uniform_count == 0) - printf(" (none.)\n"); - else - { - int i; - printf("\n"); - for (i = 0; i < pd->uniform_count; i++) - { - static const char *typenames[] = { "float", "int", "bool" }; - const MOJOSHADER_uniform *u = &pd->uniforms[i]; - const char *arrayof = ""; - const char *constant = u->constant ? "const " : ""; - char arrayrange[64] = { '\0' }; - if (u->array_count > 0) - { - arrayof = "array["; - snprintf(arrayrange, sizeof (arrayrange), "%d] ", - u->array_count); - } // if - - INDENT(); - printf(" * %d: %s%s%s%s", u->index, constant, arrayof, - arrayrange, typenames[(int) u->type]); - if (u->name != NULL) - printf(" (\"%s\")", u->name); - printf("\n"); - } // for - } // else - - INDENT(); printf("SAMPLERS:"); - if (pd->sampler_count == 0) - printf(" (none.)\n"); - else - { - int i; - printf("\n"); - for (i = 0; i < pd->sampler_count; i++) - { - static const char *typenames[] = { "2d", "cube", "volume" }; - const MOJOSHADER_sampler *s = &pd->samplers[i]; - INDENT(); - printf(" * %d: %s", s->index, typenames[(int) s->type]); - if (s->name != NULL) - printf(" (\"%s\")", s->name); - if (s->texbem) - printf(" [TEXBEM]"); - printf("\n"); - } // for - } // else - - print_symbols(pd->symbols, pd->symbol_count, indent); - - if (pd->preshader != NULL) - print_preshader(pd->preshader, indent); - - if (pd->output != NULL) - { - const char *output; - int output_len; - int i; - - if (strcmp(pd->profile, "spirv") == 0) - { -#if SUPPORT_PROFILE_SPIRV && defined(MOJOSHADER_HAS_SPIRV_TOOLS) - int binary_len = pd->output_len - sizeof(SpirvPatchTable); - - uint32_t *words = (uint32_t *) pd->output; - size_t word_count = binary_len / 4; - - spv_text text; - spv_diagnostic diagnostic; - spv_context ctx = spvContextCreate(SPV_ENV_UNIVERSAL_1_0); - int options = /*SPV_BINARY_TO_TEXT_OPTION_COLOR |*/ SPV_BINARY_TO_TEXT_OPTION_FRIENDLY_NAMES; - spv_result_t disResult = spvBinaryToText(ctx, words, word_count, options, &text, &diagnostic); - if (disResult == SPV_SUCCESS) - { - output = text->str; - output_len = text->length; - } // if - else - { - fprintf(stderr, "\nERROR DIAGNOSTIC: %s\n\n", diagnostic->error); - } // else - - spv_result_t validateResult = spvValidateBinary(ctx, words, word_count, &diagnostic); - if (validateResult != SPV_SUCCESS) - { - fprintf(stderr, "\nVALIDATION FAILURE: %s\n\n", diagnostic->error); - } // if - - if (disResult != SPV_SUCCESS || validateResult != SPV_SUCCESS) - { - exit(EXIT_FAILURE); - } // if - - // FIXME: we're currently just leaking this disassembly... -#else - output = pd->output; - output_len = pd->output_len; -#endif - } // if - else - { - output = pd->output; - output_len = pd->output_len; - } // else - - INDENT(); - printf("OUTPUT:\n"); - indent++; - INDENT(); - for (i = 0; i < output_len; i++) - { - putchar((int) output[i]); - if (output[i] == '\n') - INDENT(); - } // for - printf("\n"); - indent--; - } // if - } // else - - printf("\n\n"); -} // print_shader - - -#ifdef MOJOSHADER_EFFECT_SUPPORT - - -static void print_value(const MOJOSHADER_effectValue *value, - const unsigned int indent) -{ - int i, r, c; - - INDENT(); - printf("VALUE: %s -> %s\n", value->name, value->semantic); - - static const char *classes[] = - { - "SCALAR", - "VECTOR", - "ROW-MAJOR MATRIX", - "COLUMN-MAJOR MATRIX", - "OBJECT", - "STRUCT" - }; - static const char *types[] = - { - "VOID", - "BOOL", - "INT", - "FLOAT", - "STRING", - "TEXTURE", - "TEXTURE1D", - "TEXTURE2D", - "TEXTURE3D", - "TEXTURECUBE", - "SAMPLER", - "SAMPLER1D", - "SAMPLER2D", - "SAMPLER3D", - "SAMPLERCUBE", - "PIXELSHADER", - "VERTEXSHADER", - "UNSUPPORTED" - }; - do_indent(indent + 1); - printf("CLASS: %s\n", classes[value->type.parameter_class]); - do_indent(indent + 1); - printf("TYPE: %s\n", types[value->type.parameter_type]); - - do_indent(indent + 1); - printf("ROWS/COLUMNS/ELEMENTS: %d, %d, %d\n", - value->type.rows, value->type.columns, value->type.elements); - do_indent(indent + 1); - printf("TOTAL VALUES: %d\n", value->value_count); - - if (value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER1D - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER2D - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLER3D - || value->type.parameter_type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - { - do_indent(indent + 1); - printf("SAMPLER VALUES:\n"); - for (i = 0; i < value->value_count; i++) - { - MOJOSHADER_effectSamplerState *state = &value->valuesSS[i]; - - static const char *samplerstatetypes[] = - { - "UNKNOWN0", - "UNKNOWN1", - "UNKNOWN2", - "UNKNOWN3", - "TEXTURE", - "ADDRESSU", - "ADDRESSV", - "ADDRESSW", - "BORDERCOLOR", - "MAGFILTER", - "MINFILTER", - "MIPFILTER", - "MIPMAPLODBIAS", - "MAXMIPLEVEL", - "MAXANISOTROPY", - "SRGBTEXTURE", - "ELEMENTINDEX", - "DMAPOFFSET", - }; - do_indent(indent + 2); - printf("TYPE: %s -> ", samplerstatetypes[state->type]); - - /* Assuming only one value per state! */ - if (state->type == MOJOSHADER_SAMP_MIPMAPLODBIAS) - { - /* float types */ - printf("%.2f\n", *state->value.valuesF); - } // if - else - { - /* int/enum types */ - printf("%d\n", *state->value.valuesI); - } // else - } // for - } // if - else - { - do_indent(indent + 1); - printf("%s VALUES:\n", types[value->type.parameter_type]); - i = 0; - do - { - static const char *prints[] = - { - "%X ", - "%d ", - "%d ", - "%.2f ", - "%d ", - "%d ", - "%d ", - "%d ", - "%d ", - "%d ", - "SAMPLER?! ", - "SAMPLER?! ", - "SAMPLER?! ", - "SAMPLER?! ", - "SAMPLER?! ", - "%d ", - "%d ", - "%X " - }; - for (r = 0; r < value->type.rows; r++) - { - do_indent(indent + 2); - for (c = 0; c < value->type.columns; c++) - { - const int offset = (i * value->type.rows * 4) + (r * 4) + c; - if (value->type.parameter_type == MOJOSHADER_SYMTYPE_FLOAT) - printf(prints[value->type.parameter_type], value->valuesF[offset]); - else - printf(prints[value->type.parameter_type], value->valuesI[offset]); - } // for - printf("\n"); - } // for - } while (++i < value->type.elements); - } // else -} // print_value - - -static void print_effect(const char *fname, const MOJOSHADER_effect *effect, - const unsigned int indent) -{ - INDENT(); - printf("\n"); - if (effect->error_count > 0) - { - int i; - for (i = 0; i < effect->error_count; i++) - { - const MOJOSHADER_error *err = &effect->errors[i]; - INDENT(); - printf("%s:%d: ERROR: %s\n", - err->filename ? err->filename : fname, - err->error_position, err->error); - } // for - } // if - else - { - int i, j, k; - const MOJOSHADER_effectTechnique *technique = effect->techniques; - const MOJOSHADER_effectObject *object = effect->objects; - const MOJOSHADER_effectParam *param = effect->params; - - for (i = 0; i < effect->param_count; i++, param++) - { - INDENT(); - printf("PARAM #%d\n", i); - print_value(¶m->value, indent + 1); - - if (param->annotation_count > 0) - { - do_indent(indent + 1); - printf("ANNOTATIONS:\n"); - } // if - for (j = 0; j < param->annotation_count; j++) - { - print_value(¶m->annotations[j], indent + 2); - } // for - } // for - printf("\n"); - - for (i = 0; i < effect->technique_count; i++, technique++) - { - const MOJOSHADER_effectPass *pass = technique->passes; - INDENT(); - printf("TECHNIQUE #%d ('%s'):\n", i, technique->name); - for (j = 0; j < technique->pass_count; j++, pass++) - { - const MOJOSHADER_effectState *state = pass->states; - do_indent(indent + 1); - printf("PASS #%d ('%s'):\n", j, pass->name); - for (k = 0; k < pass->state_count; k++, state++) - { - do_indent(indent + 2); - printf("STATE %d:\n", state->type); - print_value(&state->value, indent + 3); - } // for - } // for - } // for - printf("\n"); - - /* Start at index 1, 0 is always empty (thanks Microsoft!) */ - object++; - for (i = 1; i < effect->object_count; i++, object++) - { - INDENT(); - if (object->type == MOJOSHADER_SYMTYPE_PIXELSHADER - || object->type == MOJOSHADER_SYMTYPE_VERTEXSHADER) - { - if (object->shader.is_preshader) - { - printf("OBJECT #%d: PRESHADER, technique %u, pass %u, param %s\n", i, - object->shader.technique, object->shader.pass, - effect->params[object->shader.params[0]].value.name); - print_preshader(object->shader.preshader, indent + 1); - } // if - else - { - printf("OBJECT #%d: SHADER, technique %u, pass %u\n", i, - object->shader.technique, object->shader.pass); - print_shader(fname, - (MOJOSHADER_parseData*) object->shader.shader, - indent + 1); - } // else - } // if - else if (object->type == MOJOSHADER_SYMTYPE_STRING) - printf("OBJECT #%d: STRING, '%s'\n", i, - object->string.string); - else if (object->type == MOJOSHADER_SYMTYPE_SAMPLER - || object->type == MOJOSHADER_SYMTYPE_SAMPLER1D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER2D - || object->type == MOJOSHADER_SYMTYPE_SAMPLER3D - || object->type == MOJOSHADER_SYMTYPE_SAMPLERCUBE) - printf("OBJECT #%d: MAPPING, '%s'\n", i, - object->mapping.name); - else if (object->type == MOJOSHADER_SYMTYPE_TEXTURE - || object->type == MOJOSHADER_SYMTYPE_TEXTURE1D - || object->type == MOJOSHADER_SYMTYPE_TEXTURE2D - || object->type == MOJOSHADER_SYMTYPE_TEXTURE3D - || object->type == MOJOSHADER_SYMTYPE_TEXTURECUBE) - printf("OBJECT #%d: TEXTURE\n", i); - else - printf("UNKNOWN OBJECT: #%d\n", i); - } // for - } // else -} // print_effect - - -static const char *effect_profile = NULL; - - -static void* MOJOSHADERCALL effect_compile_shader( - const void *ctx, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount -) { - return (MOJOSHADER_parseData*) MOJOSHADER_parse(effect_profile, mainfn, - tokenbuf, bufsize, - swiz, swizcount, - smap, smapcount, - Malloc, Free, NULL); -} // effect_compile_shader - - -static void MOJOSHADERCALL effect_delete_shader(const void *ctx, void *shader) -{ - MOJOSHADER_freeParseData((MOJOSHADER_parseData*) shader); -} // effect_delete_shader - - -static MOJOSHADER_parseData* MOJOSHADERCALL effect_get_parse_data(void *shader) -{ - return (MOJOSHADER_parseData*) shader; -} // effect_get_parse_data - - -#endif // MOJOSHADER_EFFECT_SUPPORT - - -static int do_parse(const char *fname, const unsigned char *buf, - const int len, const char *prof) -{ - int i; - int retval = 0; - - // magic for an effects file (!!! FIXME: I _think_). - if ( ((buf[0] == 0x01) && (buf[1] == 0x09) && - (buf[2] == 0xFF) && (buf[3] == 0xFE)) || - ((buf[0] == 0xCF) && (buf[1] == 0x0B) && - (buf[2] == 0xF0) && (buf[3] == 0xBC)) ) - { -#ifdef MOJOSHADER_EFFECT_SUPPORT - const MOJOSHADER_effect *effect; - const MOJOSHADER_effectShaderContext ctx = - { - effect_compile_shader, - NULL, /* Meh! */ - effect_delete_shader, - effect_get_parse_data, - /* Meh! */ - NULL, - NULL, - NULL, - NULL - }; - effect_profile = prof; - effect = MOJOSHADER_compileEffect(buf, len, NULL, 0, NULL, 0, &ctx); - int error_count = effect->error_count; - for (i = 0; i < effect->object_count; i++) - { - MOJOSHADER_effectObject *object = &effect->objects[i]; - switch (object->type) - { - case MOJOSHADER_SYMTYPE_VERTEXSHADER: - case MOJOSHADER_SYMTYPE_PIXELSHADER: - if (!object->shader.is_preshader) - { - const MOJOSHADER_parseData *shader = - ctx.getParseData(object->shader.shader); - if (shader) - error_count += shader->error_count; - } // if - break; - default: - break; - } - } - retval = (error_count == 0); - printf("EFFECT: %s\n", fname); - print_effect(fname, effect, 1); - MOJOSHADER_deleteEffect(effect); -#else - printf("Is an effect, but effect support is disabled!\n"); -#endif - } // if - - else // do it as a regular compiled shader. - { - const MOJOSHADER_parseData *pd; - pd = MOJOSHADER_parse(prof, NULL, buf, len, NULL, 0, - NULL, 0, Malloc, Free, NULL); - retval = (pd->error_count == 0); - printf("SHADER: %s\n", fname); - print_shader(fname, pd, 1); - MOJOSHADER_freeParseData(pd); - } // else - - return retval; -} // do_parse - - -int main(int argc, char **argv) -{ - int retval = 0; - - printf("MojoShader testparse\n"); - printf("Compiled against changeset %s\n", MOJOSHADER_CHANGESET); - printf("Linked against changeset %s\n", MOJOSHADER_changeset()); - printf("\n"); - - if (argc <= 2) - printf("\n\nUSAGE: %s [file1] ... [fileN]\n\n", argv[0]); - else - { - const char *profile = argv[1]; - int i; - - for (i = 2; i < argc; i++) - { - FILE *io = fopen(argv[i], "rb"); - if (io == NULL) - printf(" ... fopen('%s') failed.\n", argv[i]); - else - { - unsigned char *buf = (unsigned char *) malloc(1000000); - int rc = fread(buf, 1, 1000000, io); - fclose(io); - if (!do_parse(argv[i], buf, rc, profile)) - retval = 1; - free(buf); - } // else - } // for - } // else - - return retval; -} // main - -// end of testparse.c ... - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/README b/RE/Commit2/ThirdParty/fna/lib/FNA3D/README deleted file mode 100644 index 30c91371..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/README +++ /dev/null @@ -1,44 +0,0 @@ -This is FNA3D, the 3D graphics library for FNA. - -Project Website: https://fna-xna.github.io/ - -License -------- -FNA3D is released under the zlib license. See LICENSE for details. - -About FNA3D ------------ -FNA3D was written to be used for FNA's Graphics namespace. It carries the same -API design as XNA 4.0, with various implementations available at runtime -(including Vulkan, OpenGL, Metal via MoltenVK, and Direct3D). For shaders, -we support Direct3D 9 Effect Framework binaries via MojoShader. - -Note that while FNA is the main consumer of FNA3D, we do NOT provide separate C# -bindings. If you want to use FNA3D in C#, simply use FNA instead; it's the same -API and can be used entirely by itself without dragging in other dependencies. - -Dependencies ------------- -FNA3D depends solely on SDL 2.0.12 or newer. -FNA3D never explicitly uses the C runtime. - -Building FNA3D ---------------- -For *nix platforms, use CMake: - - $ mkdir build/ - $ cd build/ - $ cmake ../ - $ make - -For Windows, see the 'visualc/' directory. - -For Xbox One, see the 'visualc-winrt/' directory. - -For iOS/tvOS, see the 'Xcode-iOS/' directory. - -Found an issue? ---------------- -Issues and patches can be reported via GitHub: - -https://github.com/FNA-XNA/FNA3D/issues diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.cmake-format.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.cmake-format.py deleted file mode 100644 index 07d2f99d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.cmake-format.py +++ /dev/null @@ -1,34 +0,0 @@ -# Configuration for cmake-format (v0.4.1, circa Jul 2018) -# https://github.com/cheshirekow/cmake_format - -# How wide to allow formatted cmake files -line_width = 132 - -# How many spaces to tab for indent -tab_size = 4 - -# If arglists are longer than this, break them always -max_subargs_per_line = 3 - -# If true, separate flow control names from their parentheses with a space -separate_ctrl_name_with_space = False - -# If true, separate function names from parentheses with a space -separate_fn_name_with_space = False - -# If a statement is wrapped to more than one line, than dangle the closing -# parenthesis on it's own line -dangle_parens = False - -# What character to use for bulleted lists -bullet_char = u'*' - -# What character to use as punctuation after numerals in an enumerated list -enum_char = u'.' - -# What style line endings to use in the output. -line_ending = u'unix' - -# Format command names consistently as 'lower' or 'upper' case -command_case = u'lower' - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.gitattributes b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.gitattributes deleted file mode 100644 index ca85b461..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.gitattributes +++ /dev/null @@ -1,16 +0,0 @@ -# See https://git-scm.com/docs/gitattributes -# See https://help.github.com/articles/dealing-with-line-endings/ - -# Default behavior, if core.autocrlf is unset. -* text=auto - -# Files to be converted to native line endings on checkout. -*.cpp text -*.h text - -# Text files to always have CRLF (dos) line endings on checkout. -*.bat text eol=crlf - -# Text files to always have LF (unix) line endings on checkout. -*.sh text eol=lf - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.gitignore b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.gitignore deleted file mode 100644 index 61df0010..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/.gitignore +++ /dev/null @@ -1,6 +0,0 @@ -# Python cache -__pycache__ -*.pyc -build -.vscode/ -**/.*.swp diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/BUILD.gn b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/BUILD.gn deleted file mode 100644 index 67b9cf62..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/BUILD.gn +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (C) 2018-2019 The ANGLE Project Authors. -# Copyright (C) 2019 LunarG, Inc. -# -# 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 -# -# https://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. - -import("//build_overrides/vulkan_headers.gni") - -config("vulkan_headers_config") { - include_dirs = [ "include" ] - - if (is_win) { - defines = [ "VK_USE_PLATFORM_WIN32_KHR" ] - } - if (defined(vulkan_use_x11) && vulkan_use_x11) { - defines = [ "VK_USE_PLATFORM_XCB_KHR" ] - } - if (is_android) { - defines = [ "VK_USE_PLATFORM_ANDROID_KHR" ] - } - if (is_fuchsia) { - defines = [ "VK_USE_PLATFORM_FUCHSIA" ] - } - if (is_mac) { - defines = [ "VK_USE_PLATFORM_METAL_EXT" ] - } - if (defined(is_ggp) && is_ggp) { - defines = [ "VK_USE_PLATFORM_GGP" ] - } -} - -# Vulkan headers only, no compiled sources. -source_set("vulkan_headers") { - sources = [ - "include/vulkan/vk_icd.h", - "include/vulkan/vk_layer.h", - "include/vulkan/vk_platform.h", - "include/vulkan/vk_sdk_platform.h", - "include/vulkan/vulkan.h", - "include/vulkan/vulkan.hpp", - "include/vulkan/vulkan_core.h", - ] - public_configs = [ ":vulkan_headers_config" ] -} - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/BUILD.md b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/BUILD.md deleted file mode 100644 index 11881348..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/BUILD.md +++ /dev/null @@ -1,274 +0,0 @@ -# Build Instructions - -Instructions for building this repository on Windows, Linux, and MacOS. - -## Index - -1. [Contributing](#contributing-to-the-repository) -1. [Repository Content](#repository-content) -1. [Repository Set-up](#repository-set-up) -1. [Windows Build](#building-on-windows) -1. [Linux Build](#building-on-linux) -1. [MacOS Build](#building-on-macos) - -## Contributing to the Repository - -The contents of this repository are sourced primarily from the Khronos Vulkan -API specification [repository](https://github.com/KhronosGroup/Vulkan-Docs). -Please visit that repository for information on contributing. - -## Repository Content - -This repository contains the Vulkan header files and the Vulkan API definition -(registry) with its related files. This repository does not create libraries -or executables. - -However, this repository contains CMake build configuration files to "install" -the files from this repository to a specific install directory. For example, -you can install the files to a system directory such as `/usr/local` on Linux. - -If you are building other Vulkan-related repositories such as -[Vulkan-Loader](https://github.com/KhronosGroup/Vulkan-Loader), -you need to build the install target of this repository and provide the -resulting install directory to those repositories. - -### Installed Files - -The `install` target installs the following files under the directory -indicated by *install_dir*: - -- *install_dir*`/include/vulkan` : The header files found in the - `include/vulkan` directory of this repository -- *install_dir*`/share/vulkan/registry` : The registry files found in the - `registry` directory of this repository - -The `uninstall` target can be used to remove the above files from the install -directory. - -## Repository Set-Up - -### Download the Repository - -To create your local git repository: - - git clone https://github.com/KhronosGroup/Vulkan-Headers.git - -### Repository Dependencies - -This repository does not depend on any other repositories. - -### Build and Install Directories - -A common convention is to place the build directory in the top directory of -the repository with a name of `build` and place the install directory as a -child of the build directory with the name `install`. The remainder of these -instructions follow this convention, although you can use any name for these -directories and place them in any location. - -## Building On Windows - -### Windows Development Environment Requirements - -- Windows - - Any Personal Computer version supported by Microsoft -- Microsoft [Visual Studio](https://www.visualstudio.com/) - - Versions - - [2015](https://www.visualstudio.com/vs/older-downloads/) - - [2017](https://www.visualstudio.com/vs/older-downloads/) - - [2019](https://www.visualstudio.com/vs/downloads/) - - The Community Edition of each of the above versions is sufficient, as - well as any more capable edition. -- [CMake 3.10.2](https://cmake.org/files/v3.10/cmake-3.10.2-win64-x64.zip) is recommended. - - Use the installer option to add CMake to the system PATH -- Git Client Support - - [Git for Windows](http://git-scm.com/download/win) is a popular solution - for Windows - - Some IDEs (e.g., [Visual Studio](https://www.visualstudio.com/), - [GitHub Desktop](https://desktop.github.com/)) have integrated - Git client support - -### Windows Build - Microsoft Visual Studio - -The general approach is to run CMake to generate the Visual Studio project -files. Then either run CMake with the `--build` option to build from the -command line or use the Visual Studio IDE to open the generated solution and -work with the solution interactively. - -#### Windows Quick Start - -From a "Developer Command Prompt for VS 201x" console: - - cd Vulkan-Headers - mkdir build - cd build - cmake .. - cmake --build . --target install - -See below for the details. - -#### Use `CMake` to Create the Visual Studio Project Files - -From within a "Developer Command Prompt for VS 201x" console, change your -current directory to the top of the cloned repository directory, create a -build directory and generate the Visual Studio project files: - - cd Vulkan-Headers - mkdir build - cd build - cmake .. - -> Note: The `..` parameter tells `cmake` the location of the top of the -> repository. If you place your build directory someplace else, you'll need to -> specify the location of the repository top differently. - -The CMake configuration files set the default install directory location to -`$CMAKE_BINARY_DIR\install`, which is a child of your build directory. In this -example, the install directory becomes the `Vulkan-Headers\build\install` -directory. - -The project installs the header files to - - Vulkan-Headers\build\install\include\vulkan - -and installs the registry files to - - Vulkan-Headers\build\install\share\vulkan\registry - -You can change the install directory with the `CMAKE_INSTALL_PREFIX` CMake -variable. - -For example: - - cd Vulkan-Headers - mkdir build - cd build - cmake -DCMAKE_INSTALL_PREFIX=/c/Users/dev/install .. # MINGW64 shell - -As it starts generating the project files, `cmake` responds with something -like: - - -- Building for: Visual Studio 14 2015 - -which is a 32-bit generator. - -Since this repository does not compile anything, there is no need to specify a -specific generator such as "Visual Studio 14 2015 Win64", so the default -generator should suffice. - -The above steps create a Windows solution file named `Vulkan-Headers.sln` in -the build directory. - -At this point, you can build the solution from the command line or open the -generated solution with Visual Studio. - -#### Build the Solution From the Command Line - -While still in the build directory: - - cmake --build . --target install - -to build the install target. - -Build the `uninstall` target to remove the files from the install directory. - - cmake --build . --target uninstall - -#### Build the Solution With Visual Studio - -Launch Visual Studio and open the "Vulkan-Headers.sln" solution file in the -build directory. Build the `INSTALL` target from the Visual Studio solution -explorer. - -Build the `uninstall` target to remove the files from the install directory. - -> Note: Since there are only the `INSTALL` and `uninstall` projects in the -> solution, building the solution from the command line may be more efficient -> than starting Visual Studio for these simple operations. - -## Building On Linux - -### Linux Development Environment Requirements - -There are no specific Linux distribution or compiler version requirements for -building this repository. The required tools are - -- [CMake 3.10.2](https://cmake.org/files/v3.10/cmake-3.10.2-Linux-x86_64.tar.gz) is recommended. -- git - -### Linux Build - -The general approach is to run CMake to generate make files. Then either run -CMake with the `--build` option or `make` to build from the command line. - -#### Linux Quick Start - - cd Vulkan-Headers - mkdir build - cd build - cmake -DCMAKE_INSTALL_PREFIX=install .. - make install - -See below for the details. - -#### Use CMake to Create the Make Files - -Change your current directory to the top of the cloned repository directory, -create a build directory and generate the make files: - - cd Vulkan-Headers - mkdir build - cd build - cmake -DCMAKE_INSTALL_PREFIX=install .. - -> Note: The `..` parameter tells `cmake` the location of the top of the -> repository. If you place your `build` directory someplace else, you'll need -> to specify the location of the repository top differently. - -Set the `CMAKE_INSTALL_PREFIX` variable to the directory to serve as the -destination directory for the `install` target. - -The above `cmake` command sets the install directory to -`$CMAKE_BINARY_DIR/install`, which is a child of your `build` directory. In -this example, the install directory becomes the `Vulkan-Headers/build/install` -directory. - -The make file install target installs the header files to - - Vulkan-Headers/build/install/include/vulkan - -and installs the registry files to - - Vulkan-Headers/build/install/share/vulkan/registry - -> Note: For Linux, the default value for `CMAKE_INSTALL_PREFIX` is -> `/usr/local`, which would be used if you do not specify -> `CMAKE_INSTALL_PREFIX`. In this case, you may need to use `sudo` to install -> to system directories later when you run `make install`. - -Note that after generating the make files, running `make`: - - make - -does nothing, since there are no libraries or executables to build. - -To install the header files: - - make install - -or - - cmake --build . --target install - -To uninstall the files from the install directories, you can execute: - - make uninstall - -or - - cmake --build . --target uninstall - -## Building on MacOS - -The instructions for building this repository on MacOS are similar to those for Linux. - -[CMake 3.10.2](https://cmake.org/files/v3.10/cmake-3.10.2-Darwin-x86_64.tar.gz) is recommended. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/CMakeLists.txt b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/CMakeLists.txt deleted file mode 100644 index fc96c5e5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/CMakeLists.txt +++ /dev/null @@ -1,58 +0,0 @@ -# ~~~ -# Copyright (c) 2018 Valve Corporation -# Copyright (c) 2018 LunarG, Inc. -# -# 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. -# ~~~ - -# CMake project initialization --------------------------------------------------------------------------------------------------- -# This section contains pre-project() initialization, and ends with the project() command. - -cmake_minimum_required(VERSION 3.10.2) - -# NONE = this project has no language toolchain requirement. -project(Vulkan-Headers NONE) - -# User-interface declarations ---------------------------------------------------------------------------------------------------- -# This section contains variables that affect development GUIs (e.g. CMake GUI and IDEs), such as option(), folders, and variables -# with the CACHE property. - -include(GNUInstallDirs) - -if(WIN32 AND CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT) - # Windows: if install locations not set by user, set install prefix to "\install". - set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "default install path" FORCE) -endif() - -# -------------------------------------------------------------------------------------------------------------------------------- - -# define exported targets for nested project builds to consume -add_library(Vulkan-Headers INTERFACE) -target_include_directories(Vulkan-Headers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/include") -add_library(Vulkan::Headers ALIAS Vulkan-Headers) - -add_library(Vulkan-Registry INTERFACE) -target_include_directories(Vulkan-Registry INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/registry") -add_library(Vulkan::Registry ALIAS Vulkan-Registry) - -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include/vulkan" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/registry" DESTINATION ${CMAKE_INSTALL_DATADIR}/vulkan) - -# uninstall target -if(NOT TARGET uninstall) - configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake/cmake_uninstall.cmake.in" - "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" - IMMEDIATE - @ONLY) - add_custom_target(uninstall COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) -endif() diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/CODE_OF_CONDUCT.md b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/CODE_OF_CONDUCT.md deleted file mode 100644 index a11610bd..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/CODE_OF_CONDUCT.md +++ /dev/null @@ -1 +0,0 @@ -A reminder that this issue tracker is managed by the Khronos Group. Interactions here should follow the Khronos Code of Conduct (https://www.khronos.org/developers/code-of-conduct), which prohibits aggressive or derogatory language. Please keep the discussion friendly and civil. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/LICENSE.txt b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/LICENSE.txt deleted file mode 100644 index d6456956..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/LICENSE.txt +++ /dev/null @@ -1,202 +0,0 @@ - - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - 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. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/README.md b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/README.md deleted file mode 100644 index 775c0275..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/README.md +++ /dev/null @@ -1,57 +0,0 @@ -# Vulkan-Headers - -Vulkan header files and API registry - -## Repository Content - -The contents of this repository are largely obtained from other repositories -and are collected, coordinated, and curated here. - -If proposing changes to any file originating from a different repository, -please propose such changes in that repository, rather than Vulkan-Headers. -Files in this repository originate from: - -### Specification repository (https://github.com/KhronosGroup/Vulkan-Docs) - -* registry/cgenerator.py -* registry/conventions.py -* registry/generator.py -* registry/genvk.py -* registry/reg.py -* registry/spec_tools/util.py -* registry/validusage.json -* registry/vk.xml -* registry/vkconventions.py -* All files under include/vulkan/ which are *not* listed explicitly as originating from another repository. - -### This repository (https://github.com/KhronosGroup/Vulkan-Headers) - -* .cmake-format.py -* BUILD.gn -* BUILD.md -* CMakeLists.txt -* CODE_OF_CONDUCT.md -* LICENSE.txt -* README.md -* cmake/Copyright_cmake.txt -* cmake/cmake_uninstall.cmake.in -* Non-API headers (report issues against @lenny-lunarg) - * include/vulkan/vk_icd.h - * include/vulkan/vk_layer.h - * include/vulkan/vk_sdk_platform.h - -### Vulkan C++ Binding Repository (https://github.com/KhronosGroup/Vulkan-Hpp) - -* include/vulkan/vulkan.hpp - -## Version Tagging Scheme - -Updates to the `Vulkan-Headers` repository which correspond to a new Vulkan -specification release are tagged using the following format: -`v<`_`version`_`>` (e.g., `v1.1.96`). - -**Note**: Marked version releases have undergone thorough testing but do not -imply the same quality level as SDK tags. SDK tags follow the -`sdk-<`_`version`_`>.<`_`patch`_`>` format (e.g., `sdk-1.1.92.0`). - -This scheme was adopted following the 1.1.96 Vulkan specification release. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/cmake/Copyright_cmake.txt b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/cmake/Copyright_cmake.txt deleted file mode 100644 index 743c6341..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/cmake/Copyright_cmake.txt +++ /dev/null @@ -1,126 +0,0 @@ -CMake - Cross Platform Makefile Generator -Copyright 2000-2018 Kitware, Inc. and Contributors -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - -* Neither the name of Kitware, Inc. nor the names of Contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ------------------------------------------------------------------------------- - -The following individuals and institutions are among the Contributors: - -* Aaron C. Meadows -* Adriaan de Groot -* Aleksey Avdeev -* Alexander Neundorf -* Alexander Smorkalov -* Alexey Sokolov -* Alex Turbov -* Andreas Pakulat -* Andreas Schneider -* André Rigland Brodtkorb -* Axel Huebl, Helmholtz-Zentrum Dresden - Rossendorf -* Benjamin Eikel -* Bjoern Ricks -* Brad Hards -* Christopher Harvey -* Christoph Grüninger -* Clement Creusot -* Daniel Blezek -* Daniel Pfeifer -* Enrico Scholz -* Eran Ifrah -* Esben Mose Hansen, Ange Optimization ApS -* Geoffrey Viola -* Google Inc -* Gregor Jasny -* Helio Chissini de Castro -* Ilya Lavrenov -* Insight Software Consortium -* Jan Woetzel -* Kelly Thompson -* Konstantin Podsvirov -* Mario Bensi -* Mathieu Malaterre -* Matthaeus G. Chajdas -* Matthias Kretz -* Matthias Maennich -* Michael Stürmer -* Miguel A. Figueroa-Villanueva -* Mike Jackson -* Mike McQuaid -* Nicolas Bock -* Nicolas Despres -* Nikita Krupen'ko -* NVIDIA Corporation -* OpenGamma Ltd. -* Patrick Stotko -* Per Øyvind Karlsen -* Peter Collingbourne -* Petr Gotthard -* Philip Lowman -* Philippe Proulx -* Raffi Enficiaud, Max Planck Society -* Raumfeld -* Roger Leigh -* Rolf Eike Beer -* Roman Donchenko -* Roman Kharitonov -* Ruslan Baratov -* Sebastian Holtermann -* Stephen Kelly -* Sylvain Joubert -* Thomas Sondergaard -* Tobias Hunger -* Todd Gamblin -* Tristan Carel -* University of Dundee -* Vadim Zhukov -* Will Dicharry - -See version control history for details of individual contributions. - -The above copyright and license notice applies to distributions of -CMake in source and binary form. Third-party software packages supplied -with CMake under compatible licenses provide their own copyright notices -documented in corresponding subdirectories or source files. - ------------------------------------------------------------------------------- - -CMake was initially developed by Kitware with the following sponsorship: - - * National Library of Medicine at the National Institutes of Health - as part of the Insight Segmentation and Registration Toolkit (ITK). - - * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel - Visualization Initiative. - - * National Alliance for Medical Image Computing (NAMIC) is funded by the - National Institutes of Health through the NIH Roadmap for Medical Research, - Grant U54 EB005149. - - * Kitware, Inc. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/cmake/cmake_uninstall.cmake.in b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/cmake/cmake_uninstall.cmake.in deleted file mode 100644 index 2037e365..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/cmake/cmake_uninstall.cmake.in +++ /dev/null @@ -1,21 +0,0 @@ -if(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - message(FATAL_ERROR "Cannot find install manifest: @CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") -endif(NOT EXISTS "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt") - -file(READ "@CMAKE_CURRENT_BINARY_DIR@/install_manifest.txt" files) -string(REGEX REPLACE "\n" ";" files "${files}") -foreach(file ${files}) - message(STATUS "Uninstalling $ENV{DESTDIR}${file}") - if(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") - exec_program( - "@CMAKE_COMMAND@" ARGS "-E remove \"$ENV{DESTDIR}${file}\"" - OUTPUT_VARIABLE rm_out - RETURN_VALUE rm_retval - ) - if(NOT "${rm_retval}" STREQUAL 0) - message(FATAL_ERROR "Problem when removing $ENV{DESTDIR}${file}") - endif(NOT "${rm_retval}" STREQUAL 0) - else(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") - message(STATUS "File $ENV{DESTDIR}${file} does not exist.") - endif(IS_SYMLINK "$ENV{DESTDIR}${file}" OR EXISTS "$ENV{DESTDIR}${file}") -endforeach(file) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_icd.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_icd.h deleted file mode 100644 index 5e29ef55..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_icd.h +++ /dev/null @@ -1,236 +0,0 @@ -// -// File: vk_icd.h -// -/* - * Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. - * - * 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. - * - */ - -#ifndef VKICD_H -#define VKICD_H - -#include "vulkan.h" -#include - -// Loader-ICD version negotiation API. Versions add the following features: -// Version 0 - Initial. Doesn't support vk_icdGetInstanceProcAddr -// or vk_icdNegotiateLoaderICDInterfaceVersion. -// Version 1 - Add support for vk_icdGetInstanceProcAddr. -// Version 2 - Add Loader/ICD Interface version negotiation -// via vk_icdNegotiateLoaderICDInterfaceVersion. -// Version 3 - Add ICD creation/destruction of KHR_surface objects. -// Version 4 - Add unknown physical device extension qyering via -// vk_icdGetPhysicalDeviceProcAddr. -// Version 5 - Tells ICDs that the loader is now paying attention to the -// application version of Vulkan passed into the ApplicationInfo -// structure during vkCreateInstance. This will tell the ICD -// that if the loader is older, it should automatically fail a -// call for any API version > 1.0. Otherwise, the loader will -// manually determine if it can support the expected version. -// Version 6 - Add support for vk_icdEnumerateAdapterPhysicalDevices. -#define CURRENT_LOADER_ICD_INTERFACE_VERSION 6 -#define MIN_SUPPORTED_LOADER_ICD_INTERFACE_VERSION 0 -#define MIN_PHYS_DEV_EXTENSION_ICD_INTERFACE_VERSION 4 - -// Old typedefs that don't follow a proper naming convention but are preserved for compatibility -typedef VkResult(VKAPI_PTR *PFN_vkNegotiateLoaderICDInterfaceVersion)(uint32_t *pVersion); -// This is defined in vk_layer.h which will be found by the loader, but if an ICD is building against this -// file directly, it won't be found. -#ifndef PFN_GetPhysicalDeviceProcAddr -typedef PFN_vkVoidFunction(VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char *pName); -#endif - -// Typedefs for loader/ICD interface -typedef VkResult (VKAPI_PTR *PFN_vk_icdNegotiateLoaderICDInterfaceVersion)(uint32_t* pVersion); -typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetInstanceProcAddr)(VkInstance instance, const char* pName); -typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vk_icdGetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); -#if defined(VK_USE_PLATFORM_WIN32_KHR) -typedef VkResult (VKAPI_PTR *PFN_vk_icdEnumerateAdapterPhysicalDevices)(VkInstance instance, LUID adapterLUID, - uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); -#endif - -// Prototypes for loader/ICD interface -#if !defined(VK_NO_PROTOTYPES) -#ifdef __cplusplus -extern "C" { -#endif - VKAPI_ATTR VkResult VKAPI_CALL vk_icdNegotiateLoaderICDInterfaceVersion(uint32_t* pVersion); - VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetInstanceProcAddr(VkInstance instance, const char* pName); - VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vk_icdGetPhysicalDeviceProcAddr(VkInstance isntance, const char* pName); -#if defined(VK_USE_PLATFORM_WIN32_KHR) - VKAPI_ATTR VkResult VKAPI_CALL vk_icdEnumerateAdapterPhysicalDevices(VkInstance instance, LUID adapterLUID, - uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); -#endif -#ifdef __cplusplus -} -#endif -#endif - -/* - * The ICD must reserve space for a pointer for the loader's dispatch - * table, at the start of . - * The ICD must initialize this variable using the SET_LOADER_MAGIC_VALUE macro. - */ - -#define ICD_LOADER_MAGIC 0x01CDC0DE - -typedef union { - uintptr_t loaderMagic; - void *loaderData; -} VK_LOADER_DATA; - -static inline void set_loader_magic_value(void *pNewObject) { - VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject; - loader_info->loaderMagic = ICD_LOADER_MAGIC; -} - -static inline bool valid_loader_magic_value(void *pNewObject) { - const VK_LOADER_DATA *loader_info = (VK_LOADER_DATA *)pNewObject; - return (loader_info->loaderMagic & 0xffffffff) == ICD_LOADER_MAGIC; -} - -/* - * Windows and Linux ICDs will treat VkSurfaceKHR as a pointer to a struct that - * contains the platform-specific connection and surface information. - */ -typedef enum { - VK_ICD_WSI_PLATFORM_MIR, - VK_ICD_WSI_PLATFORM_WAYLAND, - VK_ICD_WSI_PLATFORM_WIN32, - VK_ICD_WSI_PLATFORM_XCB, - VK_ICD_WSI_PLATFORM_XLIB, - VK_ICD_WSI_PLATFORM_ANDROID, - VK_ICD_WSI_PLATFORM_MACOS, - VK_ICD_WSI_PLATFORM_IOS, - VK_ICD_WSI_PLATFORM_DISPLAY, - VK_ICD_WSI_PLATFORM_HEADLESS, - VK_ICD_WSI_PLATFORM_METAL, - VK_ICD_WSI_PLATFORM_DIRECTFB, - VK_ICD_WSI_PLATFORM_VI, - VK_ICD_WSI_PLATFORM_GGP, -} VkIcdWsiPlatform; - -typedef struct { - VkIcdWsiPlatform platform; -} VkIcdSurfaceBase; - -#ifdef VK_USE_PLATFORM_MIR_KHR -typedef struct { - VkIcdSurfaceBase base; - MirConnection *connection; - MirSurface *mirSurface; -} VkIcdSurfaceMir; -#endif // VK_USE_PLATFORM_MIR_KHR - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR -typedef struct { - VkIcdSurfaceBase base; - struct wl_display *display; - struct wl_surface *surface; -} VkIcdSurfaceWayland; -#endif // VK_USE_PLATFORM_WAYLAND_KHR - -#ifdef VK_USE_PLATFORM_WIN32_KHR -typedef struct { - VkIcdSurfaceBase base; - HINSTANCE hinstance; - HWND hwnd; -} VkIcdSurfaceWin32; -#endif // VK_USE_PLATFORM_WIN32_KHR - -#ifdef VK_USE_PLATFORM_XCB_KHR -typedef struct { - VkIcdSurfaceBase base; - xcb_connection_t *connection; - xcb_window_t window; -} VkIcdSurfaceXcb; -#endif // VK_USE_PLATFORM_XCB_KHR - -#ifdef VK_USE_PLATFORM_XLIB_KHR -typedef struct { - VkIcdSurfaceBase base; - Display *dpy; - Window window; -} VkIcdSurfaceXlib; -#endif // VK_USE_PLATFORM_XLIB_KHR - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT -typedef struct { - VkIcdSurfaceBase base; - IDirectFB *dfb; - IDirectFBSurface *surface; -} VkIcdSurfaceDirectFB; -#endif // VK_USE_PLATFORM_DIRECTFB_EXT - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -typedef struct { - VkIcdSurfaceBase base; - struct ANativeWindow *window; -} VkIcdSurfaceAndroid; -#endif // VK_USE_PLATFORM_ANDROID_KHR - -#ifdef VK_USE_PLATFORM_MACOS_MVK -typedef struct { - VkIcdSurfaceBase base; - const void *pView; -} VkIcdSurfaceMacOS; -#endif // VK_USE_PLATFORM_MACOS_MVK - -#ifdef VK_USE_PLATFORM_IOS_MVK -typedef struct { - VkIcdSurfaceBase base; - const void *pView; -} VkIcdSurfaceIOS; -#endif // VK_USE_PLATFORM_IOS_MVK - -#ifdef VK_USE_PLATFORM_GGP -typedef struct { - VkIcdSurfaceBase base; - GgpStreamDescriptor streamDescriptor; -} VkIcdSurfaceGgp; -#endif // VK_USE_PLATFORM_GGP - -typedef struct { - VkIcdSurfaceBase base; - VkDisplayModeKHR displayMode; - uint32_t planeIndex; - uint32_t planeStackIndex; - VkSurfaceTransformFlagBitsKHR transform; - float globalAlpha; - VkDisplayPlaneAlphaFlagBitsKHR alphaMode; - VkExtent2D imageExtent; -} VkIcdSurfaceDisplay; - -typedef struct { - VkIcdSurfaceBase base; -} VkIcdSurfaceHeadless; - -#ifdef VK_USE_PLATFORM_METAL_EXT -typedef struct { - VkIcdSurfaceBase base; - const CAMetalLayer *pLayer; -} VkIcdSurfaceMetal; -#endif // VK_USE_PLATFORM_METAL_EXT - -#ifdef VK_USE_PLATFORM_VI_NN -typedef struct { - VkIcdSurfaceBase base; - void *window; -} VkIcdSurfaceVi; -#endif // VK_USE_PLATFORM_VI_NN - -#endif // VKICD_H diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_layer.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_layer.h deleted file mode 100644 index 0651870c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_layer.h +++ /dev/null @@ -1,210 +0,0 @@ -// -// File: vk_layer.h -// -/* - * Copyright (c) 2015-2017 The Khronos Group Inc. - * Copyright (c) 2015-2017 Valve Corporation - * Copyright (c) 2015-2017 LunarG, Inc. - * - * 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. - * - */ - -/* Need to define dispatch table - * Core struct can then have ptr to dispatch table at the top - * Along with object ptrs for current and next OBJ - */ -#pragma once - -#include "vulkan.h" -#if defined(__GNUC__) && __GNUC__ >= 4 -#define VK_LAYER_EXPORT __attribute__((visibility("default"))) -#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) -#define VK_LAYER_EXPORT __attribute__((visibility("default"))) -#else -#define VK_LAYER_EXPORT -#endif - -#define MAX_NUM_UNKNOWN_EXTS 250 - - // Loader-Layer version negotiation API. Versions add the following features: - // Versions 0/1 - Initial. Doesn't support vk_layerGetPhysicalDeviceProcAddr - // or vk_icdNegotiateLoaderLayerInterfaceVersion. - // Version 2 - Add support for vk_layerGetPhysicalDeviceProcAddr and - // vk_icdNegotiateLoaderLayerInterfaceVersion. -#define CURRENT_LOADER_LAYER_INTERFACE_VERSION 2 -#define MIN_SUPPORTED_LOADER_LAYER_INTERFACE_VERSION 1 - -#define VK_CURRENT_CHAIN_VERSION 1 - -// Typedef for use in the interfaces below -typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_GetPhysicalDeviceProcAddr)(VkInstance instance, const char* pName); - -// Version negotiation values -typedef enum VkNegotiateLayerStructType { - LAYER_NEGOTIATE_UNINTIALIZED = 0, - LAYER_NEGOTIATE_INTERFACE_STRUCT = 1, -} VkNegotiateLayerStructType; - -// Version negotiation structures -typedef struct VkNegotiateLayerInterface { - VkNegotiateLayerStructType sType; - void *pNext; - uint32_t loaderLayerInterfaceVersion; - PFN_vkGetInstanceProcAddr pfnGetInstanceProcAddr; - PFN_vkGetDeviceProcAddr pfnGetDeviceProcAddr; - PFN_GetPhysicalDeviceProcAddr pfnGetPhysicalDeviceProcAddr; -} VkNegotiateLayerInterface; - -// Version negotiation functions -typedef VkResult (VKAPI_PTR *PFN_vkNegotiateLoaderLayerInterfaceVersion)(VkNegotiateLayerInterface *pVersionStruct); - -// Function prototype for unknown physical device extension command -typedef VkResult(VKAPI_PTR *PFN_PhysDevExt)(VkPhysicalDevice phys_device); - -// ------------------------------------------------------------------------------------------------ -// CreateInstance and CreateDevice support structures - -/* Sub type of structure for instance and device loader ext of CreateInfo. - * When sType == VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO - * or sType == VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - * then VkLayerFunction indicates struct type pointed to by pNext - */ -typedef enum VkLayerFunction_ { - VK_LAYER_LINK_INFO = 0, - VK_LOADER_DATA_CALLBACK = 1, - VK_LOADER_LAYER_CREATE_DEVICE_CALLBACK = 2, - VK_LOADER_FEATURES = 3, -} VkLayerFunction; - -typedef struct VkLayerInstanceLink_ { - struct VkLayerInstanceLink_ *pNext; - PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; - PFN_GetPhysicalDeviceProcAddr pfnNextGetPhysicalDeviceProcAddr; -} VkLayerInstanceLink; - -/* - * When creating the device chain the loader needs to pass - * down information about it's device structure needed at - * the end of the chain. Passing the data via the - * VkLayerDeviceInfo avoids issues with finding the - * exact instance being used. - */ -typedef struct VkLayerDeviceInfo_ { - void *device_info; - PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; -} VkLayerDeviceInfo; - -typedef VkResult (VKAPI_PTR *PFN_vkSetInstanceLoaderData)(VkInstance instance, - void *object); -typedef VkResult (VKAPI_PTR *PFN_vkSetDeviceLoaderData)(VkDevice device, - void *object); -typedef VkResult (VKAPI_PTR *PFN_vkLayerCreateDevice)(VkInstance instance, VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, - const VkAllocationCallbacks *pAllocator, VkDevice *pDevice, PFN_vkGetInstanceProcAddr layerGIPA, PFN_vkGetDeviceProcAddr *nextGDPA); -typedef void (VKAPI_PTR *PFN_vkLayerDestroyDevice)(VkDevice physicalDevice, const VkAllocationCallbacks *pAllocator, PFN_vkDestroyDevice destroyFunction); - -typedef enum VkLoaderFeastureFlagBits { - VK_LOADER_FEATURE_PHYSICAL_DEVICE_SORTING = 0x00000001, -} VkLoaderFlagBits; -typedef VkFlags VkLoaderFeatureFlags; - -typedef struct { - VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO - const void *pNext; - VkLayerFunction function; - union { - VkLayerInstanceLink *pLayerInfo; - PFN_vkSetInstanceLoaderData pfnSetInstanceLoaderData; - struct { - PFN_vkLayerCreateDevice pfnLayerCreateDevice; - PFN_vkLayerDestroyDevice pfnLayerDestroyDevice; - } layerDevice; - VkLoaderFeatureFlags loaderFeatures; - } u; -} VkLayerInstanceCreateInfo; - -typedef struct VkLayerDeviceLink_ { - struct VkLayerDeviceLink_ *pNext; - PFN_vkGetInstanceProcAddr pfnNextGetInstanceProcAddr; - PFN_vkGetDeviceProcAddr pfnNextGetDeviceProcAddr; -} VkLayerDeviceLink; - -typedef struct { - VkStructureType sType; // VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - const void *pNext; - VkLayerFunction function; - union { - VkLayerDeviceLink *pLayerInfo; - PFN_vkSetDeviceLoaderData pfnSetDeviceLoaderData; - } u; -} VkLayerDeviceCreateInfo; - -#ifdef __cplusplus -extern "C" { -#endif - -VKAPI_ATTR VkResult VKAPI_CALL vkNegotiateLoaderLayerInterfaceVersion(VkNegotiateLayerInterface *pVersionStruct); - -typedef enum VkChainType { - VK_CHAIN_TYPE_UNKNOWN = 0, - VK_CHAIN_TYPE_ENUMERATE_INSTANCE_EXTENSION_PROPERTIES = 1, - VK_CHAIN_TYPE_ENUMERATE_INSTANCE_LAYER_PROPERTIES = 2, - VK_CHAIN_TYPE_ENUMERATE_INSTANCE_VERSION = 3, -} VkChainType; - -typedef struct VkChainHeader { - VkChainType type; - uint32_t version; - uint32_t size; -} VkChainHeader; - -typedef struct VkEnumerateInstanceExtensionPropertiesChain { - VkChainHeader header; - VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceExtensionPropertiesChain *, const char *, uint32_t *, - VkExtensionProperties *); - const struct VkEnumerateInstanceExtensionPropertiesChain *pNextLink; - -#if defined(__cplusplus) - inline VkResult CallDown(const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties) const { - return pfnNextLayer(pNextLink, pLayerName, pPropertyCount, pProperties); - } -#endif -} VkEnumerateInstanceExtensionPropertiesChain; - -typedef struct VkEnumerateInstanceLayerPropertiesChain { - VkChainHeader header; - VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceLayerPropertiesChain *, uint32_t *, VkLayerProperties *); - const struct VkEnumerateInstanceLayerPropertiesChain *pNextLink; - -#if defined(__cplusplus) - inline VkResult CallDown(uint32_t *pPropertyCount, VkLayerProperties *pProperties) const { - return pfnNextLayer(pNextLink, pPropertyCount, pProperties); - } -#endif -} VkEnumerateInstanceLayerPropertiesChain; - -typedef struct VkEnumerateInstanceVersionChain { - VkChainHeader header; - VkResult(VKAPI_PTR *pfnNextLayer)(const struct VkEnumerateInstanceVersionChain *, uint32_t *); - const struct VkEnumerateInstanceVersionChain *pNextLink; - -#if defined(__cplusplus) - inline VkResult CallDown(uint32_t *pApiVersion) const { - return pfnNextLayer(pNextLink, pApiVersion); - } -#endif -} VkEnumerateInstanceVersionChain; - -#ifdef __cplusplus -} -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_platform.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_platform.h deleted file mode 100644 index 048322d9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_platform.h +++ /dev/null @@ -1,82 +0,0 @@ -// -// File: vk_platform.h -// -/* -** Copyright (c) 2014-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - - -#ifndef VK_PLATFORM_H_ -#define VK_PLATFORM_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif // __cplusplus - -/* -*************************************************************************************************** -* Platform-specific directives and type declarations -*************************************************************************************************** -*/ - -/* Platform-specific calling convention macros. - * - * Platforms should define these so that Vulkan clients call Vulkan commands - * with the same calling conventions that the Vulkan implementation expects. - * - * VKAPI_ATTR - Placed before the return type in function declarations. - * Useful for C++11 and GCC/Clang-style function attribute syntax. - * VKAPI_CALL - Placed after the return type in function declarations. - * Useful for MSVC-style calling convention syntax. - * VKAPI_PTR - Placed between the '(' and '*' in function pointer types. - * - * Function declaration: VKAPI_ATTR void VKAPI_CALL vkCommand(void); - * Function pointer type: typedef void (VKAPI_PTR *PFN_vkCommand)(void); - */ -#if defined(_WIN32) - // On Windows, Vulkan commands use the stdcall convention - #define VKAPI_ATTR - #define VKAPI_CALL __stdcall - #define VKAPI_PTR VKAPI_CALL -#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7 - #error "Vulkan isn't supported for the 'armeabi' NDK ABI" -#elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE) - // On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" - // calling convention, i.e. float parameters are passed in registers. This - // is true even if the rest of the application passes floats on the stack, - // as it does by default when compiling for the armeabi-v7a NDK ABI. - #define VKAPI_ATTR __attribute__((pcs("aapcs-vfp"))) - #define VKAPI_CALL - #define VKAPI_PTR VKAPI_ATTR -#else - // On other platforms, use the default calling convention - #define VKAPI_ATTR - #define VKAPI_CALL - #define VKAPI_PTR -#endif - -#include - -#if !defined(VK_NO_STDINT_H) - #if defined(_MSC_VER) && (_MSC_VER < 1600) - typedef signed __int8 int8_t; - typedef unsigned __int8 uint8_t; - typedef signed __int16 int16_t; - typedef unsigned __int16 uint16_t; - typedef signed __int32 int32_t; - typedef unsigned __int32 uint32_t; - typedef signed __int64 int64_t; - typedef unsigned __int64 uint64_t; - #else - #include - #endif -#endif // !defined(VK_NO_STDINT_H) - -#ifdef __cplusplus -} // extern "C" -#endif // __cplusplus - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_sdk_platform.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_sdk_platform.h deleted file mode 100644 index 96d86769..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vk_sdk_platform.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// File: vk_sdk_platform.h -// -/* - * Copyright (c) 2015-2016 The Khronos Group Inc. - * Copyright (c) 2015-2016 Valve Corporation - * Copyright (c) 2015-2016 LunarG, Inc. - * - * 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. - */ - -#ifndef VK_SDK_PLATFORM_H -#define VK_SDK_PLATFORM_H - -#if defined(_WIN32) -#define NOMINMAX -#ifndef __cplusplus -#undef inline -#define inline __inline -#endif // __cplusplus - -#if (defined(_MSC_VER) && _MSC_VER < 1900 /*vs2015*/) -// C99: -// Microsoft didn't implement C99 in Visual Studio; but started adding it with -// VS2013. However, VS2013 still didn't have snprintf(). The following is a -// work-around (Note: The _CRT_SECURE_NO_WARNINGS macro must be set in the -// "CMakeLists.txt" file). -// NOTE: This is fixed in Visual Studio 2015. -#define snprintf _snprintf -#endif - -#define strdup _strdup - -#endif // _WIN32 - -// Check for noexcept support using clang, with fallback to Windows or GCC version numbers -#ifndef NOEXCEPT -#if defined(__clang__) -#if __has_feature(cxx_noexcept) -#define HAS_NOEXCEPT -#endif -#else -#if defined(__GXX_EXPERIMENTAL_CXX0X__) && __GNUC__ * 10 + __GNUC_MINOR__ >= 46 -#define HAS_NOEXCEPT -#else -#if defined(_MSC_FULL_VER) && _MSC_FULL_VER >= 190023026 && defined(_HAS_EXCEPTIONS) && _HAS_EXCEPTIONS -#define HAS_NOEXCEPT -#endif -#endif -#endif - -#ifdef HAS_NOEXCEPT -#define NOEXCEPT noexcept -#else -#define NOEXCEPT -#endif -#endif - -#endif // VK_SDK_PLATFORM_H diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan.h deleted file mode 100644 index b7716ec8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef VULKAN_H_ -#define VULKAN_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -#include "vk_platform.h" -#include "vulkan_core.h" - -#ifdef VK_USE_PLATFORM_ANDROID_KHR -#include "vulkan_android.h" -#endif - -#ifdef VK_USE_PLATFORM_FUCHSIA -#include -#include "vulkan_fuchsia.h" -#endif - -#ifdef VK_USE_PLATFORM_IOS_MVK -#include "vulkan_ios.h" -#endif - - -#ifdef VK_USE_PLATFORM_MACOS_MVK -#include "vulkan_macos.h" -#endif - -#ifdef VK_USE_PLATFORM_METAL_EXT -#include "vulkan_metal.h" -#endif - -#ifdef VK_USE_PLATFORM_VI_NN -#include "vulkan_vi.h" -#endif - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR -#include -#include "vulkan_wayland.h" -#endif - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#include -#include "vulkan_win32.h" -#endif - - -#ifdef VK_USE_PLATFORM_XCB_KHR -#include -#include "vulkan_xcb.h" -#endif - - -#ifdef VK_USE_PLATFORM_XLIB_KHR -#include -#include "vulkan_xlib.h" -#endif - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT -#include -#include "vulkan_directfb.h" -#endif - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT -#include -#include -#include "vulkan_xlib_xrandr.h" -#endif - - -#ifdef VK_USE_PLATFORM_GGP -#include -#include "vulkan_ggp.h" -#endif - - -#ifdef VK_ENABLE_BETA_EXTENSIONS -#include "vulkan_beta.h" -#endif - -#endif // VULKAN_H_ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan.hpp b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan.hpp deleted file mode 100644 index 25e746f6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan.hpp +++ /dev/null @@ -1,94701 +0,0 @@ -// Copyright (c) 2015-2020 The Khronos Group Inc. -// -// SPDX-License-Identifier: Apache-2.0 OR MIT -// - -// This header is generated from the Khronos Vulkan XML API Registry. - -#ifndef VULKAN_HPP -#define VULKAN_HPP - -#if defined( _MSVC_LANG ) -# define VULKAN_HPP_CPLUSPLUS _MSVC_LANG -#else -# define VULKAN_HPP_CPLUSPLUS __cplusplus -#endif - -#if 201703L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 20 -#elif 201402L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 17 -#elif 201103L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 14 -#elif 199711L < VULKAN_HPP_CPLUSPLUS -# define VULKAN_HPP_CPP_VERSION 11 -#else -# error "vulkan.hpp needs at least c++ standard version 11" -#endif - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#if 17 <= VULKAN_HPP_CPP_VERSION -#include -#endif - -#if defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -# if !defined(VULKAN_HPP_NO_SMART_HANDLE) -# define VULKAN_HPP_NO_SMART_HANDLE -# endif -#else -# include -# include -#endif - -#if !defined(VULKAN_HPP_ASSERT) -# include -# define VULKAN_HPP_ASSERT assert -#endif - -#if !defined(VULKAN_HPP_ASSERT_ON_RESULT) -# define VULKAN_HPP_ASSERT_ON_RESULT VULKAN_HPP_ASSERT -#endif - -#if !defined(VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL) -# define VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL 1 -#endif - -#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL == 1 -# if defined( __linux__ ) || defined( __APPLE__ ) -# include -# elif defined( _WIN32 ) -typedef struct HINSTANCE__ * HINSTANCE; -# if defined( _WIN64 ) -typedef int64_t( __stdcall * FARPROC )(); -# else -typedef int( __stdcall * FARPROC )(); -# endif -extern "C" __declspec( dllimport ) HINSTANCE __stdcall LoadLibraryA( char const * lpLibFileName ); -extern "C" __declspec( dllimport ) int __stdcall FreeLibrary( HINSTANCE hLibModule ); -extern "C" __declspec( dllimport ) FARPROC __stdcall GetProcAddress( HINSTANCE hModule, const char * lpProcName ); -# endif -#endif - -#if !defined(__has_include) -# define __has_include(x) false -#endif - -#if ( 201711 <= __cpp_impl_three_way_comparison ) && __has_include( ) && !defined( VULKAN_HPP_NO_SPACESHIP_OPERATOR ) -# define VULKAN_HPP_HAS_SPACESHIP_OPERATOR -#endif -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) -# include -#endif - - -static_assert( VK_HEADER_VERSION == 165 , "Wrong VK_HEADER_VERSION!" ); - -// 32-bit vulkan is not typesafe for handles, so don't allow copy constructors on this platform by default. -// To enable this feature on 32-bit platforms please define VULKAN_HPP_TYPESAFE_CONVERSION -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) -# if !defined( VULKAN_HPP_TYPESAFE_CONVERSION ) -# define VULKAN_HPP_TYPESAFE_CONVERSION -# endif -#endif - -// includes through some other header -// this results in major(x) being resolved to gnu_dev_major(x) -// which is an expression in a constructor initializer list. -#if defined(major) - #undef major -#endif -#if defined(minor) - #undef minor -#endif - -// Windows defines MemoryBarrier which is deprecated and collides -// with the VULKAN_HPP_NAMESPACE::MemoryBarrier struct. -#if defined(MemoryBarrier) - #undef MemoryBarrier -#endif - -#if !defined(VULKAN_HPP_HAS_UNRESTRICTED_UNIONS) -# if defined(__clang__) -# if __has_feature(cxx_unrestricted_unions) -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# elif defined(__GNUC__) -# define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -# if 40600 <= GCC_VERSION -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# elif defined(_MSC_VER) -# if 1900 <= _MSC_VER -# define VULKAN_HPP_HAS_UNRESTRICTED_UNIONS -# endif -# endif -#endif - -#if !defined(VULKAN_HPP_INLINE) -# if defined(__clang__) -# if __has_attribute(always_inline) -# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ -# else -# define VULKAN_HPP_INLINE inline -# endif -# elif defined(__GNUC__) -# define VULKAN_HPP_INLINE __attribute__((always_inline)) __inline__ -# elif defined(_MSC_VER) -# define VULKAN_HPP_INLINE inline -# else -# define VULKAN_HPP_INLINE inline -# endif -#endif - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) -# define VULKAN_HPP_TYPESAFE_EXPLICIT -#else -# define VULKAN_HPP_TYPESAFE_EXPLICIT explicit -#endif - -#if defined(__cpp_constexpr) -# define VULKAN_HPP_CONSTEXPR constexpr -# if __cpp_constexpr >= 201304 -# define VULKAN_HPP_CONSTEXPR_14 constexpr -# else -# define VULKAN_HPP_CONSTEXPR_14 -# endif -# define VULKAN_HPP_CONST_OR_CONSTEXPR constexpr -#else -# define VULKAN_HPP_CONSTEXPR -# define VULKAN_HPP_CONSTEXPR_14 -# define VULKAN_HPP_CONST_OR_CONSTEXPR const -#endif - -#if !defined(VULKAN_HPP_NOEXCEPT) -# if defined(_MSC_VER) && (_MSC_VER <= 1800) -# define VULKAN_HPP_NOEXCEPT -# else -# define VULKAN_HPP_NOEXCEPT noexcept -# define VULKAN_HPP_HAS_NOEXCEPT 1 -# if defined(VULKAN_HPP_NO_EXCEPTIONS) -# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS noexcept -# else -# define VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS -# endif -# endif -#endif - -#if 14 <= VULKAN_HPP_CPP_VERSION -# define VULKAN_HPP_DEPRECATED( msg ) [[deprecated( msg )]] -#else -# define VULKAN_HPP_DEPRECATED( msg ) -#endif - -#if ( 17 <= VULKAN_HPP_CPP_VERSION ) && !defined( VULKAN_HPP_NO_NODISCARD_WARNINGS ) -# define VULKAN_HPP_NODISCARD [[nodiscard]] -# if defined(VULKAN_HPP_NO_EXCEPTIONS) -# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS [[nodiscard]] -# else -# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS -# endif -#else -# define VULKAN_HPP_NODISCARD -# define VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS -#endif - -#if !defined(VULKAN_HPP_NAMESPACE) -#define VULKAN_HPP_NAMESPACE vk -#endif - -#define VULKAN_HPP_STRINGIFY2(text) #text -#define VULKAN_HPP_STRINGIFY(text) VULKAN_HPP_STRINGIFY2(text) -#define VULKAN_HPP_NAMESPACE_STRING VULKAN_HPP_STRINGIFY(VULKAN_HPP_NAMESPACE) - -namespace VULKAN_HPP_NAMESPACE -{ - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - class ArrayProxy - { - public: - VULKAN_HPP_CONSTEXPR ArrayProxy() VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - VULKAN_HPP_CONSTEXPR ArrayProxy( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - ArrayProxy( T & value ) VULKAN_HPP_NOEXCEPT - : m_count( 1 ) - , m_ptr( &value ) - {} - - template ::value, int>::type = 0> - ArrayProxy( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT - : m_count( 1 ) - , m_ptr( &value ) - {} - - ArrayProxy( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - - template ::value, int>::type = 0> - ArrayProxy( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - - ArrayProxy( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::initializer_list::type> const & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - ArrayProxy( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template - ArrayProxy( std::array const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template - ArrayProxy( std::array & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxy( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::type>> - ArrayProxy( std::vector const & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxy( std::vector::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>> - ArrayProxy( std::vector & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxy( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - const T * begin() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - const T * end() const VULKAN_HPP_NOEXCEPT - { - return m_ptr + m_count; - } - - const T & front() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *m_ptr; - } - - const T & back() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *( m_ptr + m_count - 1 ); - } - - bool empty() const VULKAN_HPP_NOEXCEPT - { - return ( m_count == 0 ); - } - - uint32_t size() const VULKAN_HPP_NOEXCEPT - { - return m_count; - } - - T * data() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - private: - uint32_t m_count; - T * m_ptr; - }; - - template - class ArrayProxyNoTemporaries - { - public: - VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries() VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - VULKAN_HPP_CONSTEXPR ArrayProxyNoTemporaries( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_count( 0 ) - , m_ptr( nullptr ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( typename std::remove_const::type & value ) VULKAN_HPP_NOEXCEPT - : m_count( 1 ) - , m_ptr( &value ) - {} - - ArrayProxyNoTemporaries( uint32_t count, T * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( uint32_t count, typename std::remove_const::type * ptr ) VULKAN_HPP_NOEXCEPT - : m_count( count ) - , m_ptr( ptr ) - {} - - ArrayProxyNoTemporaries( std::initializer_list const & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::initializer_list::type> const & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - ArrayProxyNoTemporaries( std::initializer_list & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::initializer_list::type> & list ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( list.size() ) ) - , m_ptr( list.begin() ) - {} - - ArrayProxyNoTemporaries( std::initializer_list const && list ) VULKAN_HPP_NOEXCEPT = delete; - ArrayProxyNoTemporaries( std::initializer_list && list ) VULKAN_HPP_NOEXCEPT = delete; - - template - ArrayProxyNoTemporaries( std::array const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::array::type, N> const & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template - ArrayProxyNoTemporaries( std::array & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template ::value, int>::type = 0> - ArrayProxyNoTemporaries( std::array::type, N> & data ) VULKAN_HPP_NOEXCEPT - : m_count( N ) - , m_ptr( data.data() ) - {} - - template - ArrayProxyNoTemporaries( std::array const && data ) VULKAN_HPP_NOEXCEPT = delete; - template - ArrayProxyNoTemporaries( std::array && data ) VULKAN_HPP_NOEXCEPT = delete; - - template ::type>> - ArrayProxyNoTemporaries( std::vector const & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxyNoTemporaries( std::vector::type, Allocator> const & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>> - ArrayProxyNoTemporaries( std::vector & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - template ::type>, - typename B = T, - typename std::enable_if::value, int>::type = 0> - ArrayProxyNoTemporaries( std::vector::type, Allocator> & data ) VULKAN_HPP_NOEXCEPT - : m_count( static_cast( data.size() ) ) - , m_ptr( data.data() ) - {} - - ArrayProxyNoTemporaries( std::vector const && data ) VULKAN_HPP_NOEXCEPT = delete; - ArrayProxyNoTemporaries( std::vector && data ) VULKAN_HPP_NOEXCEPT = delete; - - const T * begin() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - const T * end() const VULKAN_HPP_NOEXCEPT - { - return m_ptr + m_count; - } - - const T & front() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *m_ptr; - } - - const T & back() const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_count && m_ptr ); - return *( m_ptr + m_count - 1 ); - } - - bool empty() const VULKAN_HPP_NOEXCEPT - { - return ( m_count == 0 ); - } - - uint32_t size() const VULKAN_HPP_NOEXCEPT - { - return m_count; - } - - T * data() const VULKAN_HPP_NOEXCEPT - { - return m_ptr; - } - - private: - uint32_t m_count; - T * m_ptr; - }; -#endif - - template - class ArrayWrapper1D : public std::array - { - public: - VULKAN_HPP_CONSTEXPR ArrayWrapper1D() VULKAN_HPP_NOEXCEPT - : std::array() - {} - - VULKAN_HPP_CONSTEXPR ArrayWrapper1D(std::array const& data) VULKAN_HPP_NOEXCEPT - : std::array(data) - {} - -#if defined(_WIN32) && !defined(_WIN64) - VULKAN_HPP_CONSTEXPR T const& operator[](int index) const VULKAN_HPP_NOEXCEPT - { - return std::array::operator[](index); - } - - T & operator[](int index) VULKAN_HPP_NOEXCEPT - { - return std::array::operator[](index); - } -#endif - - operator T const* () const VULKAN_HPP_NOEXCEPT - { - return this->data(); - } - - operator T * () VULKAN_HPP_NOEXCEPT - { - return this->data(); - } - - template ::value, int>::type = 0> - operator std::string() const - { - return std::string( this->data() ); - } - -#if 17 <= VULKAN_HPP_CPP_VERSION - template ::value, int>::type = 0> - operator std::string_view() const - { - return std::string_view( this->data() ); - } -#endif - - template ::value, int>::type = 0> - bool operator<( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) < *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator<=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) <= *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator>( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) > *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator>=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) >= *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator==( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) == *static_cast const *>( &rhs ); - } - - template ::value, int>::type = 0> - bool operator!=( ArrayWrapper1D const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return *static_cast const *>( this ) != *static_cast const *>( &rhs ); - } - }; - - // specialization of relational operators between std::string and arrays of chars - template - bool operator<(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs < rhs.data(); - } - - template - bool operator<=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs <= rhs.data(); - } - - template - bool operator>(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs > rhs.data(); - } - - template - bool operator>=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs >= rhs.data(); - } - - template - bool operator==(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs == rhs.data(); - } - - template - bool operator!=(std::string const& lhs, ArrayWrapper1D const& rhs) VULKAN_HPP_NOEXCEPT - { - return lhs != rhs.data(); - } - - template - class ArrayWrapper2D : public std::array,N> - { - public: - VULKAN_HPP_CONSTEXPR ArrayWrapper2D() VULKAN_HPP_NOEXCEPT - : std::array, N>() - {} - - VULKAN_HPP_CONSTEXPR ArrayWrapper2D(std::array,N> const& data) VULKAN_HPP_NOEXCEPT - : std::array, N>(*reinterpret_cast,N> const*>(&data)) - {} - }; - - template struct FlagTraits - { - enum { allFlags = 0 }; - }; - - template - class Flags - { - public: - using MaskType = typename std::underlying_type::type; - - // constructors - VULKAN_HPP_CONSTEXPR Flags() VULKAN_HPP_NOEXCEPT - : m_mask(0) - {} - - VULKAN_HPP_CONSTEXPR Flags(BitType bit) VULKAN_HPP_NOEXCEPT - : m_mask(static_cast(bit)) - {} - - VULKAN_HPP_CONSTEXPR Flags(Flags const& rhs) VULKAN_HPP_NOEXCEPT = default; - - VULKAN_HPP_CONSTEXPR explicit Flags(MaskType flags) VULKAN_HPP_NOEXCEPT - : m_mask(flags) - {} - - // relational operators -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>(Flags const&) const = default; -#else - VULKAN_HPP_CONSTEXPR bool operator<(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask < rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator<=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask <= rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator>(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask > rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator>=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask >= rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator==(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask == rhs.m_mask; - } - - VULKAN_HPP_CONSTEXPR bool operator!=(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return m_mask != rhs.m_mask; - } -#endif - - // logical operator - VULKAN_HPP_CONSTEXPR bool operator!() const VULKAN_HPP_NOEXCEPT - { - return !m_mask; - } - - // bitwise operators - VULKAN_HPP_CONSTEXPR Flags operator&(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask & rhs.m_mask); - } - - VULKAN_HPP_CONSTEXPR Flags operator|(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask | rhs.m_mask); - } - - VULKAN_HPP_CONSTEXPR Flags operator^(Flags const& rhs) const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask ^ rhs.m_mask); - } - - VULKAN_HPP_CONSTEXPR Flags operator~() const VULKAN_HPP_NOEXCEPT - { - return Flags(m_mask ^ FlagTraits::allFlags); - } - - // assignment operators - VULKAN_HPP_CONSTEXPR_14 Flags & operator=(Flags const& rhs) VULKAN_HPP_NOEXCEPT = default; - - VULKAN_HPP_CONSTEXPR_14 Flags & operator|=(Flags const& rhs) VULKAN_HPP_NOEXCEPT - { - m_mask |= rhs.m_mask; - return *this; - } - - VULKAN_HPP_CONSTEXPR_14 Flags & operator&=(Flags const& rhs) VULKAN_HPP_NOEXCEPT - { - m_mask &= rhs.m_mask; - return *this; - } - - VULKAN_HPP_CONSTEXPR_14 Flags & operator^=(Flags const& rhs) VULKAN_HPP_NOEXCEPT - { - m_mask ^= rhs.m_mask; - return *this; - } - - // cast operators - explicit VULKAN_HPP_CONSTEXPR operator bool() const VULKAN_HPP_NOEXCEPT - { - return !!m_mask; - } - - explicit VULKAN_HPP_CONSTEXPR operator MaskType() const VULKAN_HPP_NOEXCEPT - { - return m_mask; - } - - private: - MaskType m_mask; - }; - -#if !defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - // relational operators only needed for pre C++20 - template - VULKAN_HPP_CONSTEXPR bool operator<(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator>( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator<=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator>=( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator>(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator<( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator>=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator<=(bit); - } - - template - VULKAN_HPP_CONSTEXPR bool operator==(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator==( bit ); - } - - template - VULKAN_HPP_CONSTEXPR bool operator!=(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator!=( bit ); - } -#endif - - // bitwise operators - template - VULKAN_HPP_CONSTEXPR Flags operator&(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator&( bit ); - } - - template - VULKAN_HPP_CONSTEXPR Flags operator|(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator|( bit ); - } - - template - VULKAN_HPP_CONSTEXPR Flags operator^(BitType bit, Flags const& flags) VULKAN_HPP_NOEXCEPT - { - return flags.operator^( bit ); - } - - template - class Optional - { - public: - Optional(RefType & reference) VULKAN_HPP_NOEXCEPT { m_ptr = &reference; } - Optional(RefType * ptr) VULKAN_HPP_NOEXCEPT { m_ptr = ptr; } - Optional(std::nullptr_t) VULKAN_HPP_NOEXCEPT { m_ptr = nullptr; } - - operator RefType*() const VULKAN_HPP_NOEXCEPT { return m_ptr; } - RefType const* operator->() const VULKAN_HPP_NOEXCEPT { return m_ptr; } - explicit operator bool() const VULKAN_HPP_NOEXCEPT { return !!m_ptr; } - - private: - RefType *m_ptr; - }; - - template struct StructExtends { enum { value = false }; }; - - template - struct IsPartOfStructureChain - { - static const bool valid = false; - }; - - template - struct IsPartOfStructureChain - { - static const bool valid = std::is_same::value || IsPartOfStructureChain::valid; - }; - - template - struct StructureChainContains - { - static const bool value = std::is_same>::type>::value || - StructureChainContains::value; - }; - - template - struct StructureChainContains<0, T, ChainElements...> - { - static const bool value = std::is_same>::type>::value; - }; - - template - struct StructureChainValidation - { - using TestType = typename std::tuple_element>::type; - static const bool valid = - StructExtends>::type>::value && - ( TestType::allowDuplicate || !StructureChainContains::value ) && - StructureChainValidation::valid; - }; - - template - struct StructureChainValidation<0, ChainElements...> - { - static const bool valid = true; - }; - - template - class StructureChain : public std::tuple - { - public: - StructureChain() VULKAN_HPP_NOEXCEPT - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT : std::tuple( rhs ) - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain( StructureChain && rhs ) VULKAN_HPP_NOEXCEPT - : std::tuple( std::forward>( rhs ) ) - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain( ChainElements const &... elems ) VULKAN_HPP_NOEXCEPT : std::tuple( elems... ) - { - static_assert( StructureChainValidation::valid, - "The structure chain is not valid!" ); - link(); - } - - StructureChain & operator=( StructureChain const & rhs ) VULKAN_HPP_NOEXCEPT - { - std::tuple::operator=( rhs ); - link(); - return *this; - } - - StructureChain & operator=( StructureChain && rhs ) = delete; - - template >::type, size_t Which = 0> - T & get() VULKAN_HPP_NOEXCEPT - { - return std::get::value>( static_cast&>( *this ) ); - } - - template >::type, size_t Which = 0> - T const & get() const VULKAN_HPP_NOEXCEPT - { - return std::get::value>( static_cast const &>( *this ) ); - } - - template - std::tuple get() VULKAN_HPP_NOEXCEPT - { - return std::tie( get(), get(), get()... ); - } - - template - std::tuple get() const VULKAN_HPP_NOEXCEPT - { - return std::tie( get(), get(), get()... ); - } - - template - void relink() VULKAN_HPP_NOEXCEPT - { - static_assert( IsPartOfStructureChain::valid, - "Can't relink Structure that's not part of this StructureChain!" ); - static_assert( - !std::is_same>::type>::value || (Which != 0), - "It's not allowed to have the first element unlinked!" ); - - auto pNext = reinterpret_cast( &get() ); - VULKAN_HPP_ASSERT( !isLinked( pNext ) ); - auto & headElement = std::get<0>( static_cast&>( *this ) ); - pNext->pNext = reinterpret_cast(headElement.pNext); - headElement.pNext = pNext; - } - - template - void unlink() VULKAN_HPP_NOEXCEPT - { - static_assert( IsPartOfStructureChain::valid, - "Can't unlink Structure that's not part of this StructureChain!" ); - static_assert( - !std::is_same>::type>::value || (Which != 0), - "It's not allowed to unlink the first element!" ); - - unlink( reinterpret_cast( &get() ) ); - } - - private: - template - struct ChainElementIndex : ChainElementIndex - {}; - - template - struct ChainElementIndex::value, void>::type, - First, - Types...> : ChainElementIndex - {}; - - template - struct ChainElementIndex::value, void>::type, - First, - Types...> : ChainElementIndex - {}; - - template - struct ChainElementIndex::value, void>::type, - First, - Types...> : std::integral_constant - {}; - - bool isLinked( VkBaseInStructure const * pNext ) - { - VkBaseInStructure const * elementPtr = reinterpret_cast(&std::get<0>( static_cast&>( *this ) ) ); - while ( elementPtr ) - { - if ( elementPtr->pNext == pNext ) - { - return true; - } - elementPtr = elementPtr->pNext; - } - return false; - } - - template - typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT - { - auto & x = std::get( static_cast&>( *this ) ); - x.pNext = &std::get( static_cast&>( *this ) ); - link(); - } - - template - typename std::enable_if::type link() VULKAN_HPP_NOEXCEPT - {} - - template - typename std::enable_if::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT - { - auto & element = std::get( static_cast&>( *this ) ); - if ( element.pNext == pNext ) - { - element.pNext = pNext->pNext; - } - else - { - unlink( pNext ); - } - } - - template - typename std::enable_if::type unlink( VkBaseOutStructure const * pNext ) VULKAN_HPP_NOEXCEPT - { - auto & element = std::get<0>( static_cast&>( *this ) ); - if ( element.pNext == pNext ) - { - element.pNext = pNext->pNext; - } - else - { - VULKAN_HPP_ASSERT( false ); // fires, if the ClassType member has already been unlinked ! - } - } - }; - -#if !defined(VULKAN_HPP_NO_SMART_HANDLE) - template class UniqueHandleTraits; - - template - class UniqueHandle : public UniqueHandleTraits::deleter - { - private: - using Deleter = typename UniqueHandleTraits::deleter; - - public: - using element_type = Type; - - UniqueHandle() - : Deleter() - , m_value() - {} - - explicit UniqueHandle( Type const& value, Deleter const& deleter = Deleter() ) VULKAN_HPP_NOEXCEPT - : Deleter( deleter) - , m_value( value ) - {} - - UniqueHandle( UniqueHandle const& ) = delete; - - UniqueHandle( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT - : Deleter( std::move( static_cast( other ) ) ) - , m_value( other.release() ) - {} - - ~UniqueHandle() VULKAN_HPP_NOEXCEPT - { - if ( m_value ) this->destroy( m_value ); - } - - UniqueHandle & operator=( UniqueHandle const& ) = delete; - - UniqueHandle & operator=( UniqueHandle && other ) VULKAN_HPP_NOEXCEPT - { - reset( other.release() ); - *static_cast(this) = std::move( static_cast(other) ); - return *this; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_value.operator bool(); - } - - Type const* operator->() const VULKAN_HPP_NOEXCEPT - { - return &m_value; - } - - Type * operator->() VULKAN_HPP_NOEXCEPT - { - return &m_value; - } - - Type const& operator*() const VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - Type & operator*() VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - const Type & get() const VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - Type & get() VULKAN_HPP_NOEXCEPT - { - return m_value; - } - - void reset( Type const& value = Type() ) VULKAN_HPP_NOEXCEPT - { - if ( m_value != value ) - { - if ( m_value ) this->destroy( m_value ); - m_value = value; - } - } - - Type release() VULKAN_HPP_NOEXCEPT - { - Type value = m_value; - m_value = nullptr; - return value; - } - - void swap( UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT - { - std::swap(m_value, rhs.m_value); - std::swap(static_cast(*this), static_cast(rhs)); - } - - private: - Type m_value; - }; - - template - VULKAN_HPP_INLINE std::vector uniqueToRaw(std::vector const& handles) - { - std::vector newBuffer(handles.size()); - std::transform(handles.begin(), handles.end(), newBuffer.begin(), [](UniqueType const& handle) { return handle.get(); }); - return newBuffer; - } - - template - VULKAN_HPP_INLINE void swap( UniqueHandle & lhs, UniqueHandle & rhs ) VULKAN_HPP_NOEXCEPT - { - lhs.swap( rhs ); - } -#endif - -#if !defined(VK_NO_PROTOTYPES) - class DispatchLoaderStatic - { - public: -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkAcquireFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireFullScreenExclusiveModeEXT( device, swapchain ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkAcquireNextImage2KHR( VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireNextImage2KHR( device, pAcquireInfo, pImageIndex ); - } - - VkResult vkAcquireNextImageKHR( VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireNextImageKHR( device, swapchain, timeout, semaphore, fence, pImageIndex ); - } - - VkResult vkAcquirePerformanceConfigurationINTEL( VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquirePerformanceConfigurationINTEL( device, pAcquireInfo, pConfiguration ); - } - - VkResult vkAcquireProfilingLockKHR( VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireProfilingLockKHR( device, pInfo ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkAcquireWinrtDisplayNV( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireWinrtDisplayNV( physicalDevice, display ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - VkResult vkAcquireXlibDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAcquireXlibDisplayEXT( physicalDevice, dpy, display ); - } -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - VkResult vkAllocateCommandBuffers( VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAllocateCommandBuffers( device, pAllocateInfo, pCommandBuffers ); - } - - VkResult vkAllocateDescriptorSets( VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAllocateDescriptorSets( device, pAllocateInfo, pDescriptorSets ); - } - - VkResult vkAllocateMemory( VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory ) const VULKAN_HPP_NOEXCEPT - { - return ::vkAllocateMemory( device, pAllocateInfo, pAllocator, pMemory ); - } - - VkResult vkBeginCommandBuffer( VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBeginCommandBuffer( commandBuffer, pBeginInfo ); - } - - VkResult vkBindAccelerationStructureMemoryNV( VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindAccelerationStructureMemoryNV( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindBufferMemory( VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindBufferMemory( device, buffer, memory, memoryOffset ); - } - - VkResult vkBindBufferMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindBufferMemory2( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindBufferMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindBufferMemory2KHR( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindImageMemory( VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindImageMemory( device, image, memory, memoryOffset ); - } - - VkResult vkBindImageMemory2( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindImageMemory2( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBindImageMemory2KHR( VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBindImageMemory2KHR( device, bindInfoCount, pBindInfos ); - } - - VkResult vkBuildAccelerationStructuresKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkBuildAccelerationStructuresKHR( device, deferredOperation, infoCount, pInfos, ppBuildRangeInfos ); - } - - void vkCmdBeginConditionalRenderingEXT( VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginConditionalRenderingEXT( commandBuffer, pConditionalRenderingBegin ); - } - - void vkCmdBeginDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); - } - - void vkCmdBeginQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginQuery( commandBuffer, queryPool, query, flags ); - } - - void vkCmdBeginQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginQueryIndexedEXT( commandBuffer, queryPool, query, flags, index ); - } - - void vkCmdBeginRenderPass( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginRenderPass( commandBuffer, pRenderPassBegin, contents ); - } - - void vkCmdBeginRenderPass2( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginRenderPass2( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); - } - - void vkCmdBeginRenderPass2KHR( VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginRenderPass2KHR( commandBuffer, pRenderPassBegin, pSubpassBeginInfo ); - } - - void vkCmdBeginTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBeginTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); - } - - void vkCmdBindDescriptorSets( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindDescriptorSets( commandBuffer, pipelineBindPoint, layout, firstSet, descriptorSetCount, pDescriptorSets, dynamicOffsetCount, pDynamicOffsets ); - } - - void vkCmdBindIndexBuffer( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindIndexBuffer( commandBuffer, buffer, offset, indexType ); - } - - void vkCmdBindPipeline( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindPipeline( commandBuffer, pipelineBindPoint, pipeline ); - } - - void vkCmdBindPipelineShaderGroupNV( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindPipelineShaderGroupNV( commandBuffer, pipelineBindPoint, pipeline, groupIndex ); - } - - void vkCmdBindShadingRateImageNV( VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindShadingRateImageNV( commandBuffer, imageView, imageLayout ); - } - - void vkCmdBindTransformFeedbackBuffersEXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindTransformFeedbackBuffersEXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes ); - } - - void vkCmdBindVertexBuffers( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindVertexBuffers( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets ); - } - - void vkCmdBindVertexBuffers2EXT( VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBindVertexBuffers2EXT( commandBuffer, firstBinding, bindingCount, pBuffers, pOffsets, pSizes, pStrides ); - } - - void vkCmdBlitImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBlitImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions, filter ); - } - - void vkCmdBlitImage2KHR( VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBlitImage2KHR( commandBuffer, pBlitImageInfo ); - } - - void vkCmdBuildAccelerationStructureNV( VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBuildAccelerationStructureNV( commandBuffer, pInfo, instanceData, instanceOffset, update, dst, src, scratch, scratchOffset ); - } - - void vkCmdBuildAccelerationStructuresIndirectKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBuildAccelerationStructuresIndirectKHR( commandBuffer, infoCount, pInfos, pIndirectDeviceAddresses, pIndirectStrides, ppMaxPrimitiveCounts ); - } - - void vkCmdBuildAccelerationStructuresKHR( VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdBuildAccelerationStructuresKHR( commandBuffer, infoCount, pInfos, ppBuildRangeInfos ); - } - - void vkCmdClearAttachments( VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdClearAttachments( commandBuffer, attachmentCount, pAttachments, rectCount, pRects ); - } - - void vkCmdClearColorImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdClearColorImage( commandBuffer, image, imageLayout, pColor, rangeCount, pRanges ); - } - - void vkCmdClearDepthStencilImage( VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdClearDepthStencilImage( commandBuffer, image, imageLayout, pDepthStencil, rangeCount, pRanges ); - } - - void vkCmdCopyAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyAccelerationStructureKHR( commandBuffer, pInfo ); - } - - void vkCmdCopyAccelerationStructureNV( VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyAccelerationStructureNV( commandBuffer, dst, src, mode ); - } - - void vkCmdCopyAccelerationStructureToMemoryKHR( VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyAccelerationStructureToMemoryKHR( commandBuffer, pInfo ); - } - - void vkCmdCopyBuffer( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBuffer( commandBuffer, srcBuffer, dstBuffer, regionCount, pRegions ); - } - - void vkCmdCopyBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBuffer2KHR( commandBuffer, pCopyBufferInfo ); - } - - void vkCmdCopyBufferToImage( VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBufferToImage( commandBuffer, srcBuffer, dstImage, dstImageLayout, regionCount, pRegions ); - } - - void vkCmdCopyBufferToImage2KHR( VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyBufferToImage2KHR( commandBuffer, pCopyBufferToImageInfo ); - } - - void vkCmdCopyImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); - } - - void vkCmdCopyImage2KHR( VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImage2KHR( commandBuffer, pCopyImageInfo ); - } - - void vkCmdCopyImageToBuffer( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImageToBuffer( commandBuffer, srcImage, srcImageLayout, dstBuffer, regionCount, pRegions ); - } - - void vkCmdCopyImageToBuffer2KHR( VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyImageToBuffer2KHR( commandBuffer, pCopyImageToBufferInfo ); - } - - void vkCmdCopyMemoryToAccelerationStructureKHR( VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyMemoryToAccelerationStructureKHR( commandBuffer, pInfo ); - } - - void vkCmdCopyQueryPoolResults( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdCopyQueryPoolResults( commandBuffer, queryPool, firstQuery, queryCount, dstBuffer, dstOffset, stride, flags ); - } - - void vkCmdDebugMarkerBeginEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDebugMarkerBeginEXT( commandBuffer, pMarkerInfo ); - } - - void vkCmdDebugMarkerEndEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDebugMarkerEndEXT( commandBuffer ); - } - - void vkCmdDebugMarkerInsertEXT( VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDebugMarkerInsertEXT( commandBuffer, pMarkerInfo ); - } - - void vkCmdDispatch( VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatch( commandBuffer, groupCountX, groupCountY, groupCountZ ); - } - - void vkCmdDispatchBase( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatchBase( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - void vkCmdDispatchBaseKHR( VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatchBaseKHR( commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - void vkCmdDispatchIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDispatchIndirect( commandBuffer, buffer, offset ); - } - - void vkCmdDraw( VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDraw( commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); - } - - void vkCmdDrawIndexed( VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexed( commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); - } - - void vkCmdDrawIndexedIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirect( commandBuffer, buffer, offset, drawCount, stride ); - } - - void vkCmdDrawIndexedIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndexedIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndexedIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndexedIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndirect( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirect( commandBuffer, buffer, offset, drawCount, stride ); - } - - void vkCmdDrawIndirectByteCountEXT( VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectByteCountEXT( commandBuffer, instanceCount, firstInstance, counterBuffer, counterBufferOffset, counterOffset, vertexStride ); - } - - void vkCmdDrawIndirectCount( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectCount( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndirectCountAMD( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectCountAMD( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawIndirectCountKHR( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawIndirectCountKHR( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawMeshTasksIndirectCountNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawMeshTasksIndirectCountNV( commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride ); - } - - void vkCmdDrawMeshTasksIndirectNV( VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawMeshTasksIndirectNV( commandBuffer, buffer, offset, drawCount, stride ); - } - - void vkCmdDrawMeshTasksNV( VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdDrawMeshTasksNV( commandBuffer, taskCount, firstTask ); - } - - void vkCmdEndConditionalRenderingEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndConditionalRenderingEXT( commandBuffer ); - } - - void vkCmdEndDebugUtilsLabelEXT( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndDebugUtilsLabelEXT( commandBuffer ); - } - - void vkCmdEndQuery( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndQuery( commandBuffer, queryPool, query ); - } - - void vkCmdEndQueryIndexedEXT( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndQueryIndexedEXT( commandBuffer, queryPool, query, index ); - } - - void vkCmdEndRenderPass( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndRenderPass( commandBuffer ); - } - - void vkCmdEndRenderPass2( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndRenderPass2( commandBuffer, pSubpassEndInfo ); - } - - void vkCmdEndRenderPass2KHR( VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndRenderPass2KHR( commandBuffer, pSubpassEndInfo ); - } - - void vkCmdEndTransformFeedbackEXT( VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdEndTransformFeedbackEXT( commandBuffer, firstCounterBuffer, counterBufferCount, pCounterBuffers, pCounterBufferOffsets ); - } - - void vkCmdExecuteCommands( VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdExecuteCommands( commandBuffer, commandBufferCount, pCommandBuffers ); - } - - void vkCmdExecuteGeneratedCommandsNV( VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdExecuteGeneratedCommandsNV( commandBuffer, isPreprocessed, pGeneratedCommandsInfo ); - } - - void vkCmdFillBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdFillBuffer( commandBuffer, dstBuffer, dstOffset, size, data ); - } - - void vkCmdInsertDebugUtilsLabelEXT( VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdInsertDebugUtilsLabelEXT( commandBuffer, pLabelInfo ); - } - - void vkCmdNextSubpass( VkCommandBuffer commandBuffer, VkSubpassContents contents ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdNextSubpass( commandBuffer, contents ); - } - - void vkCmdNextSubpass2( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdNextSubpass2( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); - } - - void vkCmdNextSubpass2KHR( VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdNextSubpass2KHR( commandBuffer, pSubpassBeginInfo, pSubpassEndInfo ); - } - - void vkCmdPipelineBarrier( VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPipelineBarrier( commandBuffer, srcStageMask, dstStageMask, dependencyFlags, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); - } - - void vkCmdPreprocessGeneratedCommandsNV( VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPreprocessGeneratedCommandsNV( commandBuffer, pGeneratedCommandsInfo ); - } - - void vkCmdPushConstants( VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPushConstants( commandBuffer, layout, stageFlags, offset, size, pValues ); - } - - void vkCmdPushDescriptorSetKHR( VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPushDescriptorSetKHR( commandBuffer, pipelineBindPoint, layout, set, descriptorWriteCount, pDescriptorWrites ); - } - - void vkCmdPushDescriptorSetWithTemplateKHR( VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdPushDescriptorSetWithTemplateKHR( commandBuffer, descriptorUpdateTemplate, layout, set, pData ); - } - - void vkCmdResetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResetEvent( commandBuffer, event, stageMask ); - } - - void vkCmdResetQueryPool( VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResetQueryPool( commandBuffer, queryPool, firstQuery, queryCount ); - } - - void vkCmdResolveImage( VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResolveImage( commandBuffer, srcImage, srcImageLayout, dstImage, dstImageLayout, regionCount, pRegions ); - } - - void vkCmdResolveImage2KHR( VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdResolveImage2KHR( commandBuffer, pResolveImageInfo ); - } - - void vkCmdSetBlendConstants( VkCommandBuffer commandBuffer, const float blendConstants[4] ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetBlendConstants( commandBuffer, blendConstants ); - } - - void vkCmdSetCheckpointNV( VkCommandBuffer commandBuffer, const void* pCheckpointMarker ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetCheckpointNV( commandBuffer, pCheckpointMarker ); - } - - void vkCmdSetCoarseSampleOrderNV( VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetCoarseSampleOrderNV( commandBuffer, sampleOrderType, customSampleOrderCount, pCustomSampleOrders ); - } - - void vkCmdSetCullModeEXT( VkCommandBuffer commandBuffer, VkCullModeFlags cullMode ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetCullModeEXT( commandBuffer, cullMode ); - } - - void vkCmdSetDepthBias( VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthBias( commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); - } - - void vkCmdSetDepthBounds( VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthBounds( commandBuffer, minDepthBounds, maxDepthBounds ); - } - - void vkCmdSetDepthBoundsTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthBoundsTestEnableEXT( commandBuffer, depthBoundsTestEnable ); - } - - void vkCmdSetDepthCompareOpEXT( VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthCompareOpEXT( commandBuffer, depthCompareOp ); - } - - void vkCmdSetDepthTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthTestEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthTestEnableEXT( commandBuffer, depthTestEnable ); - } - - void vkCmdSetDepthWriteEnableEXT( VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDepthWriteEnableEXT( commandBuffer, depthWriteEnable ); - } - - void vkCmdSetDeviceMask( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDeviceMask( commandBuffer, deviceMask ); - } - - void vkCmdSetDeviceMaskKHR( VkCommandBuffer commandBuffer, uint32_t deviceMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDeviceMaskKHR( commandBuffer, deviceMask ); - } - - void vkCmdSetDiscardRectangleEXT( VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetDiscardRectangleEXT( commandBuffer, firstDiscardRectangle, discardRectangleCount, pDiscardRectangles ); - } - - void vkCmdSetEvent( VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetEvent( commandBuffer, event, stageMask ); - } - - void vkCmdSetExclusiveScissorNV( VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetExclusiveScissorNV( commandBuffer, firstExclusiveScissor, exclusiveScissorCount, pExclusiveScissors ); - } - - void vkCmdSetFragmentShadingRateEnumNV( VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetFragmentShadingRateEnumNV( commandBuffer, shadingRate, combinerOps ); - } - - void vkCmdSetFragmentShadingRateKHR( VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2] ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetFragmentShadingRateKHR( commandBuffer, pFragmentSize, combinerOps ); - } - - void vkCmdSetFrontFaceEXT( VkCommandBuffer commandBuffer, VkFrontFace frontFace ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetFrontFaceEXT( commandBuffer, frontFace ); - } - - void vkCmdSetLineStippleEXT( VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetLineStippleEXT( commandBuffer, lineStippleFactor, lineStipplePattern ); - } - - void vkCmdSetLineWidth( VkCommandBuffer commandBuffer, float lineWidth ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetLineWidth( commandBuffer, lineWidth ); - } - - VkResult vkCmdSetPerformanceMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPerformanceMarkerINTEL( commandBuffer, pMarkerInfo ); - } - - VkResult vkCmdSetPerformanceOverrideINTEL( VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPerformanceOverrideINTEL( commandBuffer, pOverrideInfo ); - } - - VkResult vkCmdSetPerformanceStreamMarkerINTEL( VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPerformanceStreamMarkerINTEL( commandBuffer, pMarkerInfo ); - } - - void vkCmdSetPrimitiveTopologyEXT( VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetPrimitiveTopologyEXT( commandBuffer, primitiveTopology ); - } - - void vkCmdSetRayTracingPipelineStackSizeKHR( VkCommandBuffer commandBuffer, uint32_t pipelineStackSize ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetRayTracingPipelineStackSizeKHR( commandBuffer, pipelineStackSize ); - } - - void vkCmdSetSampleLocationsEXT( VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetSampleLocationsEXT( commandBuffer, pSampleLocationsInfo ); - } - - void vkCmdSetScissor( VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetScissor( commandBuffer, firstScissor, scissorCount, pScissors ); - } - - void vkCmdSetScissorWithCountEXT( VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetScissorWithCountEXT( commandBuffer, scissorCount, pScissors ); - } - - void vkCmdSetStencilCompareMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilCompareMask( commandBuffer, faceMask, compareMask ); - } - - void vkCmdSetStencilOpEXT( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilOpEXT( commandBuffer, faceMask, failOp, passOp, depthFailOp, compareOp ); - } - - void vkCmdSetStencilReference( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilReference( commandBuffer, faceMask, reference ); - } - - void vkCmdSetStencilTestEnableEXT( VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilTestEnableEXT( commandBuffer, stencilTestEnable ); - } - - void vkCmdSetStencilWriteMask( VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetStencilWriteMask( commandBuffer, faceMask, writeMask ); - } - - void vkCmdSetViewport( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewport( commandBuffer, firstViewport, viewportCount, pViewports ); - } - - void vkCmdSetViewportShadingRatePaletteNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewportShadingRatePaletteNV( commandBuffer, firstViewport, viewportCount, pShadingRatePalettes ); - } - - void vkCmdSetViewportWScalingNV( VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewportWScalingNV( commandBuffer, firstViewport, viewportCount, pViewportWScalings ); - } - - void vkCmdSetViewportWithCountEXT( VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdSetViewportWithCountEXT( commandBuffer, viewportCount, pViewports ); - } - - void vkCmdTraceRaysIndirectKHR( VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdTraceRaysIndirectKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, indirectDeviceAddress ); - } - - void vkCmdTraceRaysKHR( VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdTraceRaysKHR( commandBuffer, pRaygenShaderBindingTable, pMissShaderBindingTable, pHitShaderBindingTable, pCallableShaderBindingTable, width, height, depth ); - } - - void vkCmdTraceRaysNV( VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdTraceRaysNV( commandBuffer, raygenShaderBindingTableBuffer, raygenShaderBindingOffset, missShaderBindingTableBuffer, missShaderBindingOffset, missShaderBindingStride, hitShaderBindingTableBuffer, hitShaderBindingOffset, hitShaderBindingStride, callableShaderBindingTableBuffer, callableShaderBindingOffset, callableShaderBindingStride, width, height, depth ); - } - - void vkCmdUpdateBuffer( VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdUpdateBuffer( commandBuffer, dstBuffer, dstOffset, dataSize, pData ); - } - - void vkCmdWaitEvents( VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWaitEvents( commandBuffer, eventCount, pEvents, srcStageMask, dstStageMask, memoryBarrierCount, pMemoryBarriers, bufferMemoryBarrierCount, pBufferMemoryBarriers, imageMemoryBarrierCount, pImageMemoryBarriers ); - } - - void vkCmdWriteAccelerationStructuresPropertiesKHR( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteAccelerationStructuresPropertiesKHR( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); - } - - void vkCmdWriteAccelerationStructuresPropertiesNV( VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteAccelerationStructuresPropertiesNV( commandBuffer, accelerationStructureCount, pAccelerationStructures, queryType, queryPool, firstQuery ); - } - - void vkCmdWriteBufferMarkerAMD( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteBufferMarkerAMD( commandBuffer, pipelineStage, dstBuffer, dstOffset, marker ); - } - - void vkCmdWriteTimestamp( VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCmdWriteTimestamp( commandBuffer, pipelineStage, queryPool, query ); - } - - VkResult vkCompileDeferredNV( VkDevice device, VkPipeline pipeline, uint32_t shader ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCompileDeferredNV( device, pipeline, shader ); - } - - VkResult vkCopyAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCopyAccelerationStructureKHR( device, deferredOperation, pInfo ); - } - - VkResult vkCopyAccelerationStructureToMemoryKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCopyAccelerationStructureToMemoryKHR( device, deferredOperation, pInfo ); - } - - VkResult vkCopyMemoryToAccelerationStructureKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCopyMemoryToAccelerationStructureKHR( device, deferredOperation, pInfo ); - } - - VkResult vkCreateAccelerationStructureKHR( VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateAccelerationStructureKHR( device, pCreateInfo, pAllocator, pAccelerationStructure ); - } - - VkResult vkCreateAccelerationStructureNV( VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateAccelerationStructureNV( device, pCreateInfo, pAllocator, pAccelerationStructure ); - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkCreateAndroidSurfaceKHR( VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateAndroidSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - VkResult vkCreateBuffer( VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateBuffer( device, pCreateInfo, pAllocator, pBuffer ); - } - - VkResult vkCreateBufferView( VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateBufferView( device, pCreateInfo, pAllocator, pView ); - } - - VkResult vkCreateCommandPool( VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateCommandPool( device, pCreateInfo, pAllocator, pCommandPool ); - } - - VkResult vkCreateComputePipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateComputePipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateDebugReportCallbackEXT( VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDebugReportCallbackEXT( instance, pCreateInfo, pAllocator, pCallback ); - } - - VkResult vkCreateDebugUtilsMessengerEXT( VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDebugUtilsMessengerEXT( instance, pCreateInfo, pAllocator, pMessenger ); - } - - VkResult vkCreateDeferredOperationKHR( VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDeferredOperationKHR( device, pAllocator, pDeferredOperation ); - } - - VkResult vkCreateDescriptorPool( VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorPool( device, pCreateInfo, pAllocator, pDescriptorPool ); - } - - VkResult vkCreateDescriptorSetLayout( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorSetLayout( device, pCreateInfo, pAllocator, pSetLayout ); - } - - VkResult vkCreateDescriptorUpdateTemplate( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorUpdateTemplate( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); - } - - VkResult vkCreateDescriptorUpdateTemplateKHR( VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDescriptorUpdateTemplateKHR( device, pCreateInfo, pAllocator, pDescriptorUpdateTemplate ); - } - - VkResult vkCreateDevice( VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDevice( physicalDevice, pCreateInfo, pAllocator, pDevice ); - } - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - VkResult vkCreateDirectFBSurfaceEXT( VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDirectFBSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - VkResult vkCreateDisplayModeKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDisplayModeKHR( physicalDevice, display, pCreateInfo, pAllocator, pMode ); - } - - VkResult vkCreateDisplayPlaneSurfaceKHR( VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateDisplayPlaneSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } - - VkResult vkCreateEvent( VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateEvent( device, pCreateInfo, pAllocator, pEvent ); - } - - VkResult vkCreateFence( VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateFence( device, pCreateInfo, pAllocator, pFence ); - } - - VkResult vkCreateFramebuffer( VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateFramebuffer( device, pCreateInfo, pAllocator, pFramebuffer ); - } - - VkResult vkCreateGraphicsPipelines( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateGraphicsPipelines( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateHeadlessSurfaceEXT( VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateHeadlessSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); - } - -#ifdef VK_USE_PLATFORM_IOS_MVK - VkResult vkCreateIOSSurfaceMVK( VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateIOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - VkResult vkCreateImage( VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateImage( device, pCreateInfo, pAllocator, pImage ); - } - -#ifdef VK_USE_PLATFORM_FUCHSIA - VkResult vkCreateImagePipeSurfaceFUCHSIA( VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateImagePipeSurfaceFUCHSIA( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - VkResult vkCreateImageView( VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateImageView( device, pCreateInfo, pAllocator, pView ); - } - - VkResult vkCreateIndirectCommandsLayoutNV( VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateIndirectCommandsLayoutNV( device, pCreateInfo, pAllocator, pIndirectCommandsLayout ); - } - - VkResult vkCreateInstance( const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateInstance( pCreateInfo, pAllocator, pInstance ); - } - -#ifdef VK_USE_PLATFORM_MACOS_MVK - VkResult vkCreateMacOSSurfaceMVK( VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateMacOSSurfaceMVK( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - -#ifdef VK_USE_PLATFORM_METAL_EXT - VkResult vkCreateMetalSurfaceEXT( VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateMetalSurfaceEXT( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - VkResult vkCreatePipelineCache( VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreatePipelineCache( device, pCreateInfo, pAllocator, pPipelineCache ); - } - - VkResult vkCreatePipelineLayout( VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreatePipelineLayout( device, pCreateInfo, pAllocator, pPipelineLayout ); - } - - VkResult vkCreatePrivateDataSlotEXT( VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreatePrivateDataSlotEXT( device, pCreateInfo, pAllocator, pPrivateDataSlot ); - } - - VkResult vkCreateQueryPool( VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateQueryPool( device, pCreateInfo, pAllocator, pQueryPool ); - } - - VkResult vkCreateRayTracingPipelinesKHR( VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRayTracingPipelinesKHR( device, deferredOperation, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateRayTracingPipelinesNV( VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRayTracingPipelinesNV( device, pipelineCache, createInfoCount, pCreateInfos, pAllocator, pPipelines ); - } - - VkResult vkCreateRenderPass( VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRenderPass( device, pCreateInfo, pAllocator, pRenderPass ); - } - - VkResult vkCreateRenderPass2( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRenderPass2( device, pCreateInfo, pAllocator, pRenderPass ); - } - - VkResult vkCreateRenderPass2KHR( VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateRenderPass2KHR( device, pCreateInfo, pAllocator, pRenderPass ); - } - - VkResult vkCreateSampler( VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSampler( device, pCreateInfo, pAllocator, pSampler ); - } - - VkResult vkCreateSamplerYcbcrConversion( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSamplerYcbcrConversion( device, pCreateInfo, pAllocator, pYcbcrConversion ); - } - - VkResult vkCreateSamplerYcbcrConversionKHR( VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSamplerYcbcrConversionKHR( device, pCreateInfo, pAllocator, pYcbcrConversion ); - } - - VkResult vkCreateSemaphore( VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSemaphore( device, pCreateInfo, pAllocator, pSemaphore ); - } - - VkResult vkCreateShaderModule( VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateShaderModule( device, pCreateInfo, pAllocator, pShaderModule ); - } - - VkResult vkCreateSharedSwapchainsKHR( VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSharedSwapchainsKHR( device, swapchainCount, pCreateInfos, pAllocator, pSwapchains ); - } - -#ifdef VK_USE_PLATFORM_GGP - VkResult vkCreateStreamDescriptorSurfaceGGP( VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateStreamDescriptorSurfaceGGP( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_GGP*/ - - VkResult vkCreateSwapchainKHR( VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateSwapchainKHR( device, pCreateInfo, pAllocator, pSwapchain ); - } - - VkResult vkCreateValidationCacheEXT( VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateValidationCacheEXT( device, pCreateInfo, pAllocator, pValidationCache ); - } - -#ifdef VK_USE_PLATFORM_VI_NN - VkResult vkCreateViSurfaceNN( VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateViSurfaceNN( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - VkResult vkCreateWaylandSurfaceKHR( VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateWaylandSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkCreateWin32SurfaceKHR( VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateWin32SurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - VkResult vkCreateXcbSurfaceKHR( VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateXcbSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - VkResult vkCreateXlibSurfaceKHR( VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface ) const VULKAN_HPP_NOEXCEPT - { - return ::vkCreateXlibSurfaceKHR( instance, pCreateInfo, pAllocator, pSurface ); - } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - VkResult vkDebugMarkerSetObjectNameEXT( VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDebugMarkerSetObjectNameEXT( device, pNameInfo ); - } - - VkResult vkDebugMarkerSetObjectTagEXT( VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDebugMarkerSetObjectTagEXT( device, pTagInfo ); - } - - void vkDebugReportMessageEXT( VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDebugReportMessageEXT( instance, flags, objectType, object, location, messageCode, pLayerPrefix, pMessage ); - } - - VkResult vkDeferredOperationJoinKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDeferredOperationJoinKHR( device, operation ); - } - - void vkDestroyAccelerationStructureKHR( VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyAccelerationStructureKHR( device, accelerationStructure, pAllocator ); - } - - void vkDestroyAccelerationStructureNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyAccelerationStructureNV( device, accelerationStructure, pAllocator ); - } - - void vkDestroyBuffer( VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyBuffer( device, buffer, pAllocator ); - } - - void vkDestroyBufferView( VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyBufferView( device, bufferView, pAllocator ); - } - - void vkDestroyCommandPool( VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyCommandPool( device, commandPool, pAllocator ); - } - - void vkDestroyDebugReportCallbackEXT( VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDebugReportCallbackEXT( instance, callback, pAllocator ); - } - - void vkDestroyDebugUtilsMessengerEXT( VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDebugUtilsMessengerEXT( instance, messenger, pAllocator ); - } - - void vkDestroyDeferredOperationKHR( VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDeferredOperationKHR( device, operation, pAllocator ); - } - - void vkDestroyDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorPool( device, descriptorPool, pAllocator ); - } - - void vkDestroyDescriptorSetLayout( VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorSetLayout( device, descriptorSetLayout, pAllocator ); - } - - void vkDestroyDescriptorUpdateTemplate( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorUpdateTemplate( device, descriptorUpdateTemplate, pAllocator ); - } - - void vkDestroyDescriptorUpdateTemplateKHR( VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDescriptorUpdateTemplateKHR( device, descriptorUpdateTemplate, pAllocator ); - } - - void vkDestroyDevice( VkDevice device, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyDevice( device, pAllocator ); - } - - void vkDestroyEvent( VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyEvent( device, event, pAllocator ); - } - - void vkDestroyFence( VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyFence( device, fence, pAllocator ); - } - - void vkDestroyFramebuffer( VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyFramebuffer( device, framebuffer, pAllocator ); - } - - void vkDestroyImage( VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyImage( device, image, pAllocator ); - } - - void vkDestroyImageView( VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyImageView( device, imageView, pAllocator ); - } - - void vkDestroyIndirectCommandsLayoutNV( VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyIndirectCommandsLayoutNV( device, indirectCommandsLayout, pAllocator ); - } - - void vkDestroyInstance( VkInstance instance, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyInstance( instance, pAllocator ); - } - - void vkDestroyPipeline( VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPipeline( device, pipeline, pAllocator ); - } - - void vkDestroyPipelineCache( VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPipelineCache( device, pipelineCache, pAllocator ); - } - - void vkDestroyPipelineLayout( VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPipelineLayout( device, pipelineLayout, pAllocator ); - } - - void vkDestroyPrivateDataSlotEXT( VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyPrivateDataSlotEXT( device, privateDataSlot, pAllocator ); - } - - void vkDestroyQueryPool( VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyQueryPool( device, queryPool, pAllocator ); - } - - void vkDestroyRenderPass( VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyRenderPass( device, renderPass, pAllocator ); - } - - void vkDestroySampler( VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySampler( device, sampler, pAllocator ); - } - - void vkDestroySamplerYcbcrConversion( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySamplerYcbcrConversion( device, ycbcrConversion, pAllocator ); - } - - void vkDestroySamplerYcbcrConversionKHR( VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySamplerYcbcrConversionKHR( device, ycbcrConversion, pAllocator ); - } - - void vkDestroySemaphore( VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySemaphore( device, semaphore, pAllocator ); - } - - void vkDestroyShaderModule( VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyShaderModule( device, shaderModule, pAllocator ); - } - - void vkDestroySurfaceKHR( VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySurfaceKHR( instance, surface, pAllocator ); - } - - void vkDestroySwapchainKHR( VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroySwapchainKHR( device, swapchain, pAllocator ); - } - - void vkDestroyValidationCacheEXT( VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDestroyValidationCacheEXT( device, validationCache, pAllocator ); - } - - VkResult vkDeviceWaitIdle( VkDevice device ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDeviceWaitIdle( device ); - } - - VkResult vkDisplayPowerControlEXT( VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkDisplayPowerControlEXT( device, display, pDisplayPowerInfo ); - } - - VkResult vkEndCommandBuffer( VkCommandBuffer commandBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEndCommandBuffer( commandBuffer ); - } - - VkResult vkEnumerateDeviceExtensionProperties( VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateDeviceExtensionProperties( physicalDevice, pLayerName, pPropertyCount, pProperties ); - } - - VkResult vkEnumerateDeviceLayerProperties( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateDeviceLayerProperties( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkEnumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, pProperties ); - } - - VkResult vkEnumerateInstanceLayerProperties( uint32_t* pPropertyCount, VkLayerProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateInstanceLayerProperties( pPropertyCount, pProperties ); - } - - VkResult vkEnumerateInstanceVersion( uint32_t* pApiVersion ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumerateInstanceVersion( pApiVersion ); - } - - VkResult vkEnumeratePhysicalDeviceGroups( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDeviceGroups( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); - } - - VkResult vkEnumeratePhysicalDeviceGroupsKHR( VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDeviceGroupsKHR( instance, pPhysicalDeviceGroupCount, pPhysicalDeviceGroupProperties ); - } - - VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( physicalDevice, queueFamilyIndex, pCounterCount, pCounters, pCounterDescriptions ); - } - - VkResult vkEnumeratePhysicalDevices( VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices ) const VULKAN_HPP_NOEXCEPT - { - return ::vkEnumeratePhysicalDevices( instance, pPhysicalDeviceCount, pPhysicalDevices ); - } - - VkResult vkFlushMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFlushMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); - } - - void vkFreeCommandBuffers( VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFreeCommandBuffers( device, commandPool, commandBufferCount, pCommandBuffers ); - } - - VkResult vkFreeDescriptorSets( VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFreeDescriptorSets( device, descriptorPool, descriptorSetCount, pDescriptorSets ); - } - - void vkFreeMemory( VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator ) const VULKAN_HPP_NOEXCEPT - { - return ::vkFreeMemory( device, memory, pAllocator ); - } - - void vkGetAccelerationStructureBuildSizesKHR( VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureBuildSizesKHR( device, buildType, pBuildInfo, pMaxPrimitiveCounts, pSizeInfo ); - } - - VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR( VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureDeviceAddressKHR( device, pInfo ); - } - - VkResult vkGetAccelerationStructureHandleNV( VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureHandleNV( device, accelerationStructure, dataSize, pData ); - } - - void vkGetAccelerationStructureMemoryRequirementsNV( VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAccelerationStructureMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkGetAndroidHardwareBufferPropertiesANDROID( VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetAndroidHardwareBufferPropertiesANDROID( device, buffer, pProperties ); - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - VkDeviceAddress vkGetBufferDeviceAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferDeviceAddress( device, pInfo ); - } - - VkDeviceAddress vkGetBufferDeviceAddressEXT( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferDeviceAddressEXT( device, pInfo ); - } - - VkDeviceAddress vkGetBufferDeviceAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferDeviceAddressKHR( device, pInfo ); - } - - void vkGetBufferMemoryRequirements( VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferMemoryRequirements( device, buffer, pMemoryRequirements ); - } - - void vkGetBufferMemoryRequirements2( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferMemoryRequirements2( device, pInfo, pMemoryRequirements ); - } - - void vkGetBufferMemoryRequirements2KHR( VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); - } - - uint64_t vkGetBufferOpaqueCaptureAddress( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferOpaqueCaptureAddress( device, pInfo ); - } - - uint64_t vkGetBufferOpaqueCaptureAddressKHR( VkDevice device, const VkBufferDeviceAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetBufferOpaqueCaptureAddressKHR( device, pInfo ); - } - - VkResult vkGetCalibratedTimestampsEXT( VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetCalibratedTimestampsEXT( device, timestampCount, pTimestampInfos, pTimestamps, pMaxDeviation ); - } - - uint32_t vkGetDeferredOperationMaxConcurrencyKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeferredOperationMaxConcurrencyKHR( device, operation ); - } - - VkResult vkGetDeferredOperationResultKHR( VkDevice device, VkDeferredOperationKHR operation ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeferredOperationResultKHR( device, operation ); - } - - void vkGetDescriptorSetLayoutSupport( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDescriptorSetLayoutSupport( device, pCreateInfo, pSupport ); - } - - void vkGetDescriptorSetLayoutSupportKHR( VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDescriptorSetLayoutSupportKHR( device, pCreateInfo, pSupport ); - } - - void vkGetDeviceAccelerationStructureCompatibilityKHR( VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceAccelerationStructureCompatibilityKHR( device, pVersionInfo, pCompatibility ); - } - - void vkGetDeviceGroupPeerMemoryFeatures( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupPeerMemoryFeatures( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); - } - - void vkGetDeviceGroupPeerMemoryFeaturesKHR( VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupPeerMemoryFeaturesKHR( device, heapIndex, localDeviceIndex, remoteDeviceIndex, pPeerMemoryFeatures ); - } - - VkResult vkGetDeviceGroupPresentCapabilitiesKHR( VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupPresentCapabilitiesKHR( device, pDeviceGroupPresentCapabilities ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetDeviceGroupSurfacePresentModes2EXT( VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupSurfacePresentModes2EXT( device, pSurfaceInfo, pModes ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetDeviceGroupSurfacePresentModesKHR( VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceGroupSurfacePresentModesKHR( device, surface, pModes ); - } - - void vkGetDeviceMemoryCommitment( VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceMemoryCommitment( device, memory, pCommittedMemoryInBytes ); - } - - uint64_t vkGetDeviceMemoryOpaqueCaptureAddress( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceMemoryOpaqueCaptureAddress( device, pInfo ); - } - - uint64_t vkGetDeviceMemoryOpaqueCaptureAddressKHR( VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceMemoryOpaqueCaptureAddressKHR( device, pInfo ); - } - - PFN_vkVoidFunction vkGetDeviceProcAddr( VkDevice device, const char* pName ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceProcAddr( device, pName ); - } - - void vkGetDeviceQueue( VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceQueue( device, queueFamilyIndex, queueIndex, pQueue ); - } - - void vkGetDeviceQueue2( VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDeviceQueue2( device, pQueueInfo, pQueue ); - } - - VkResult vkGetDisplayModeProperties2KHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayModeProperties2KHR( physicalDevice, display, pPropertyCount, pProperties ); - } - - VkResult vkGetDisplayModePropertiesKHR( VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayModePropertiesKHR( physicalDevice, display, pPropertyCount, pProperties ); - } - - VkResult vkGetDisplayPlaneCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayPlaneCapabilities2KHR( physicalDevice, pDisplayPlaneInfo, pCapabilities ); - } - - VkResult vkGetDisplayPlaneCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayPlaneCapabilitiesKHR( physicalDevice, mode, planeIndex, pCapabilities ); - } - - VkResult vkGetDisplayPlaneSupportedDisplaysKHR( VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetDisplayPlaneSupportedDisplaysKHR( physicalDevice, planeIndex, pDisplayCount, pDisplays ); - } - - VkResult vkGetEventStatus( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetEventStatus( device, event ); - } - - VkResult vkGetFenceFdKHR( VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetFenceFdKHR( device, pGetFdInfo, pFd ); - } - - VkResult vkGetFenceStatus( VkDevice device, VkFence fence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetFenceStatus( device, fence ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetFenceWin32HandleKHR( VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetFenceWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - void vkGetGeneratedCommandsMemoryRequirementsNV( VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetGeneratedCommandsMemoryRequirementsNV( device, pInfo, pMemoryRequirements ); - } - - VkResult vkGetImageDrmFormatModifierPropertiesEXT( VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageDrmFormatModifierPropertiesEXT( device, image, pProperties ); - } - - void vkGetImageMemoryRequirements( VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageMemoryRequirements( device, image, pMemoryRequirements ); - } - - void vkGetImageMemoryRequirements2( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageMemoryRequirements2( device, pInfo, pMemoryRequirements ); - } - - void vkGetImageMemoryRequirements2KHR( VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageMemoryRequirements2KHR( device, pInfo, pMemoryRequirements ); - } - - void vkGetImageSparseMemoryRequirements( VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSparseMemoryRequirements( device, image, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); - } - - void vkGetImageSparseMemoryRequirements2( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSparseMemoryRequirements2( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); - } - - void vkGetImageSparseMemoryRequirements2KHR( VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSparseMemoryRequirements2KHR( device, pInfo, pSparseMemoryRequirementCount, pSparseMemoryRequirements ); - } - - void vkGetImageSubresourceLayout( VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageSubresourceLayout( device, image, pSubresource, pLayout ); - } - - VkResult vkGetImageViewAddressNVX( VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageViewAddressNVX( device, imageView, pProperties ); - } - - uint32_t vkGetImageViewHandleNVX( VkDevice device, const VkImageViewHandleInfoNVX* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetImageViewHandleNVX( device, pInfo ); - } - - PFN_vkVoidFunction vkGetInstanceProcAddr( VkInstance instance, const char* pName ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetInstanceProcAddr( instance, pName ); - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - VkResult vkGetMemoryAndroidHardwareBufferANDROID( VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryAndroidHardwareBufferANDROID( device, pInfo, pBuffer ); - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - VkResult vkGetMemoryFdKHR( VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryFdKHR( device, pGetFdInfo, pFd ); - } - - VkResult vkGetMemoryFdPropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryFdPropertiesKHR( device, handleType, fd, pMemoryFdProperties ); - } - - VkResult vkGetMemoryHostPointerPropertiesEXT( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryHostPointerPropertiesEXT( device, handleType, pHostPointer, pMemoryHostPointerProperties ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandleKHR( VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandleNV( VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryWin32HandleNV( device, memory, handleType, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetMemoryWin32HandlePropertiesKHR( VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetMemoryWin32HandlePropertiesKHR( device, handleType, handle, pMemoryWin32HandleProperties ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetPastPresentationTimingGOOGLE( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPastPresentationTimingGOOGLE( device, swapchain, pPresentationTimingCount, pPresentationTimings ); - } - - VkResult vkGetPerformanceParameterINTEL( VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPerformanceParameterINTEL( device, parameter, pValue ); - } - - VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( physicalDevice, pTimeDomainCount, pTimeDomains ); - } - - VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( physicalDevice, pPropertyCount, pProperties ); - } - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDirectFBPresentationSupportEXT( physicalDevice, queueFamilyIndex, dfb ); - } -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayPlaneProperties2KHR( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayPlanePropertiesKHR( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceDisplayProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayProperties2KHR( physicalDevice, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceDisplayPropertiesKHR( VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceDisplayPropertiesKHR( physicalDevice, pPropertyCount, pProperties ); - } - - void vkGetPhysicalDeviceExternalBufferProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalBufferProperties( physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); - } - - void vkGetPhysicalDeviceExternalBufferPropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalBufferPropertiesKHR( physicalDevice, pExternalBufferInfo, pExternalBufferProperties ); - } - - void vkGetPhysicalDeviceExternalFenceProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalFenceProperties( physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); - } - - void vkGetPhysicalDeviceExternalFencePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalFencePropertiesKHR( physicalDevice, pExternalFenceInfo, pExternalFenceProperties ); - } - - VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalImageFormatPropertiesNV( physicalDevice, format, type, tiling, usage, flags, externalHandleType, pExternalImageFormatProperties ); - } - - void vkGetPhysicalDeviceExternalSemaphoreProperties( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalSemaphoreProperties( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); - } - - void vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( physicalDevice, pExternalSemaphoreInfo, pExternalSemaphoreProperties ); - } - - void vkGetPhysicalDeviceFeatures( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFeatures( physicalDevice, pFeatures ); - } - - void vkGetPhysicalDeviceFeatures2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFeatures2( physicalDevice, pFeatures ); - } - - void vkGetPhysicalDeviceFeatures2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFeatures2KHR( physicalDevice, pFeatures ); - } - - void vkGetPhysicalDeviceFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFormatProperties( physicalDevice, format, pFormatProperties ); - } - - void vkGetPhysicalDeviceFormatProperties2( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFormatProperties2( physicalDevice, format, pFormatProperties ); - } - - void vkGetPhysicalDeviceFormatProperties2KHR( VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFormatProperties2KHR( physicalDevice, format, pFormatProperties ); - } - - VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR( VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceFragmentShadingRatesKHR( physicalDevice, pFragmentShadingRateCount, pFragmentShadingRates ); - } - - VkResult vkGetPhysicalDeviceImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceImageFormatProperties( physicalDevice, format, type, tiling, usage, flags, pImageFormatProperties ); - } - - VkResult vkGetPhysicalDeviceImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceImageFormatProperties2( physicalDevice, pImageFormatInfo, pImageFormatProperties ); - } - - VkResult vkGetPhysicalDeviceImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceImageFormatProperties2KHR( physicalDevice, pImageFormatInfo, pImageFormatProperties ); - } - - void vkGetPhysicalDeviceMemoryProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMemoryProperties( physicalDevice, pMemoryProperties ); - } - - void vkGetPhysicalDeviceMemoryProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMemoryProperties2( physicalDevice, pMemoryProperties ); - } - - void vkGetPhysicalDeviceMemoryProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMemoryProperties2KHR( physicalDevice, pMemoryProperties ); - } - - void vkGetPhysicalDeviceMultisamplePropertiesEXT( VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceMultisamplePropertiesEXT( physicalDevice, samples, pMultisampleProperties ); - } - - VkResult vkGetPhysicalDevicePresentRectanglesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDevicePresentRectanglesKHR( physicalDevice, surface, pRectCount, pRects ); - } - - void vkGetPhysicalDeviceProperties( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceProperties( physicalDevice, pProperties ); - } - - void vkGetPhysicalDeviceProperties2( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceProperties2( physicalDevice, pProperties ); - } - - void vkGetPhysicalDeviceProperties2KHR( VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceProperties2KHR( physicalDevice, pProperties ); - } - - void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( physicalDevice, pPerformanceQueryCreateInfo, pNumPasses ); - } - - void vkGetPhysicalDeviceQueueFamilyProperties( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyProperties( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); - } - - void vkGetPhysicalDeviceQueueFamilyProperties2( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyProperties2( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); - } - - void vkGetPhysicalDeviceQueueFamilyProperties2KHR( VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceQueueFamilyProperties2KHR( physicalDevice, pQueueFamilyPropertyCount, pQueueFamilyProperties ); - } - - void vkGetPhysicalDeviceSparseImageFormatProperties( VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSparseImageFormatProperties( physicalDevice, format, type, samples, usage, tiling, pPropertyCount, pProperties ); - } - - void vkGetPhysicalDeviceSparseImageFormatProperties2( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSparseImageFormatProperties2( physicalDevice, pFormatInfo, pPropertyCount, pProperties ); - } - - void vkGetPhysicalDeviceSparseImageFormatProperties2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSparseImageFormatProperties2KHR( physicalDevice, pFormatInfo, pPropertyCount, pProperties ); - } - - VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( physicalDevice, pCombinationCount, pCombinations ); - } - - VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceCapabilities2EXT( physicalDevice, surface, pSurfaceCapabilities ); - } - - VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceCapabilities2KHR( physicalDevice, pSurfaceInfo, pSurfaceCapabilities ); - } - - VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceCapabilitiesKHR( physicalDevice, surface, pSurfaceCapabilities ); - } - - VkResult vkGetPhysicalDeviceSurfaceFormats2KHR( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceFormats2KHR( physicalDevice, pSurfaceInfo, pSurfaceFormatCount, pSurfaceFormats ); - } - - VkResult vkGetPhysicalDeviceSurfaceFormatsKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceFormatsKHR( physicalDevice, surface, pSurfaceFormatCount, pSurfaceFormats ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT( VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfacePresentModes2EXT( physicalDevice, pSurfaceInfo, pPresentModeCount, pPresentModes ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetPhysicalDeviceSurfacePresentModesKHR( VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfacePresentModesKHR( physicalDevice, surface, pPresentModeCount, pPresentModes ); - } - - VkResult vkGetPhysicalDeviceSurfaceSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceSurfaceSupportKHR( physicalDevice, queueFamilyIndex, surface, pSupported ); - } - - VkResult vkGetPhysicalDeviceToolPropertiesEXT( VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceToolPropertiesEXT( physicalDevice, pToolCount, pToolProperties ); - } - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceWaylandPresentationSupportKHR( physicalDevice, queueFamilyIndex, display ); - } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceWin32PresentationSupportKHR( physicalDevice, queueFamilyIndex ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceXcbPresentationSupportKHR( physicalDevice, queueFamilyIndex, connection, visual_id ); - } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR( VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPhysicalDeviceXlibPresentationSupportKHR( physicalDevice, queueFamilyIndex, dpy, visualID ); - } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - VkResult vkGetPipelineCacheData( VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineCacheData( device, pipelineCache, pDataSize, pData ); - } - - VkResult vkGetPipelineExecutableInternalRepresentationsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineExecutableInternalRepresentationsKHR( device, pExecutableInfo, pInternalRepresentationCount, pInternalRepresentations ); - } - - VkResult vkGetPipelineExecutablePropertiesKHR( VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineExecutablePropertiesKHR( device, pPipelineInfo, pExecutableCount, pProperties ); - } - - VkResult vkGetPipelineExecutableStatisticsKHR( VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPipelineExecutableStatisticsKHR( device, pExecutableInfo, pStatisticCount, pStatistics ); - } - - void vkGetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, pData ); - } - - VkResult vkGetQueryPoolResults( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetQueryPoolResults( device, queryPool, firstQuery, queryCount, dataSize, pData, stride, flags ); - } - - void vkGetQueueCheckpointDataNV( VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetQueueCheckpointDataNV( queue, pCheckpointDataCount, pCheckpointData ); - } - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - VkResult vkGetRandROutputDisplayEXT( VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRandROutputDisplayEXT( physicalDevice, dpy, rrOutput, pDisplay ); - } -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData ); - } - - VkResult vkGetRayTracingShaderGroupHandlesKHR( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingShaderGroupHandlesKHR( device, pipeline, firstGroup, groupCount, dataSize, pData ); - } - - VkResult vkGetRayTracingShaderGroupHandlesNV( VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingShaderGroupHandlesNV( device, pipeline, firstGroup, groupCount, dataSize, pData ); - } - - VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR( VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRayTracingShaderGroupStackSizeKHR( device, pipeline, group, groupShader ); - } - - VkResult vkGetRefreshCycleDurationGOOGLE( VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRefreshCycleDurationGOOGLE( device, swapchain, pDisplayTimingProperties ); - } - - void vkGetRenderAreaGranularity( VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetRenderAreaGranularity( device, renderPass, pGranularity ); - } - - VkResult vkGetSemaphoreCounterValue( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreCounterValue( device, semaphore, pValue ); - } - - VkResult vkGetSemaphoreCounterValueKHR( VkDevice device, VkSemaphore semaphore, uint64_t* pValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreCounterValueKHR( device, semaphore, pValue ); - } - - VkResult vkGetSemaphoreFdKHR( VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreFdKHR( device, pGetFdInfo, pFd ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetSemaphoreWin32HandleKHR( VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSemaphoreWin32HandleKHR( device, pGetWin32HandleInfo, pHandle ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkGetShaderInfoAMD( VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetShaderInfoAMD( device, pipeline, shaderStage, infoType, pInfoSize, pInfo ); - } - - VkResult vkGetSwapchainCounterEXT( VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSwapchainCounterEXT( device, swapchain, counter, pCounterValue ); - } - - VkResult vkGetSwapchainImagesKHR( VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSwapchainImagesKHR( device, swapchain, pSwapchainImageCount, pSwapchainImages ); - } - - VkResult vkGetSwapchainStatusKHR( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetSwapchainStatusKHR( device, swapchain ); - } - - VkResult vkGetValidationCacheDataEXT( VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetValidationCacheDataEXT( device, validationCache, pDataSize, pData ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkGetWinrtDisplayNV( VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay ) const VULKAN_HPP_NOEXCEPT - { - return ::vkGetWinrtDisplayNV( physicalDevice, deviceRelativeId, pDisplay ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkImportFenceFdKHR( VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportFenceFdKHR( device, pImportFenceFdInfo ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkImportFenceWin32HandleKHR( VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportFenceWin32HandleKHR( device, pImportFenceWin32HandleInfo ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkImportSemaphoreFdKHR( VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportSemaphoreFdKHR( device, pImportSemaphoreFdInfo ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkImportSemaphoreWin32HandleKHR( VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkImportSemaphoreWin32HandleKHR( device, pImportSemaphoreWin32HandleInfo ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkInitializePerformanceApiINTEL( VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkInitializePerformanceApiINTEL( device, pInitializeInfo ); - } - - VkResult vkInvalidateMappedMemoryRanges( VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges ) const VULKAN_HPP_NOEXCEPT - { - return ::vkInvalidateMappedMemoryRanges( device, memoryRangeCount, pMemoryRanges ); - } - - VkResult vkMapMemory( VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkMapMemory( device, memory, offset, size, flags, ppData ); - } - - VkResult vkMergePipelineCaches( VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches ) const VULKAN_HPP_NOEXCEPT - { - return ::vkMergePipelineCaches( device, dstCache, srcCacheCount, pSrcCaches ); - } - - VkResult vkMergeValidationCachesEXT( VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches ) const VULKAN_HPP_NOEXCEPT - { - return ::vkMergeValidationCachesEXT( device, dstCache, srcCacheCount, pSrcCaches ); - } - - void vkQueueBeginDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueBeginDebugUtilsLabelEXT( queue, pLabelInfo ); - } - - VkResult vkQueueBindSparse( VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueBindSparse( queue, bindInfoCount, pBindInfo, fence ); - } - - void vkQueueEndDebugUtilsLabelEXT( VkQueue queue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueEndDebugUtilsLabelEXT( queue ); - } - - void vkQueueInsertDebugUtilsLabelEXT( VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueInsertDebugUtilsLabelEXT( queue, pLabelInfo ); - } - - VkResult vkQueuePresentKHR( VkQueue queue, const VkPresentInfoKHR* pPresentInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueuePresentKHR( queue, pPresentInfo ); - } - - VkResult vkQueueSetPerformanceConfigurationINTEL( VkQueue queue, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueSetPerformanceConfigurationINTEL( queue, configuration ); - } - - VkResult vkQueueSubmit( VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueSubmit( queue, submitCount, pSubmits, fence ); - } - - VkResult vkQueueWaitIdle( VkQueue queue ) const VULKAN_HPP_NOEXCEPT - { - return ::vkQueueWaitIdle( queue ); - } - - VkResult vkRegisterDeviceEventEXT( VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkRegisterDeviceEventEXT( device, pDeviceEventInfo, pAllocator, pFence ); - } - - VkResult vkRegisterDisplayEventEXT( VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence ) const VULKAN_HPP_NOEXCEPT - { - return ::vkRegisterDisplayEventEXT( device, display, pDisplayEventInfo, pAllocator, pFence ); - } - - VkResult vkReleaseDisplayEXT( VkPhysicalDevice physicalDevice, VkDisplayKHR display ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleaseDisplayEXT( physicalDevice, display ); - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - VkResult vkReleaseFullScreenExclusiveModeEXT( VkDevice device, VkSwapchainKHR swapchain ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleaseFullScreenExclusiveModeEXT( device, swapchain ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - VkResult vkReleasePerformanceConfigurationINTEL( VkDevice device, VkPerformanceConfigurationINTEL configuration ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleasePerformanceConfigurationINTEL( device, configuration ); - } - - void vkReleaseProfilingLockKHR( VkDevice device ) const VULKAN_HPP_NOEXCEPT - { - return ::vkReleaseProfilingLockKHR( device ); - } - - VkResult vkResetCommandBuffer( VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetCommandBuffer( commandBuffer, flags ); - } - - VkResult vkResetCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetCommandPool( device, commandPool, flags ); - } - - VkResult vkResetDescriptorPool( VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetDescriptorPool( device, descriptorPool, flags ); - } - - VkResult vkResetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetEvent( device, event ); - } - - VkResult vkResetFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetFences( device, fenceCount, pFences ); - } - - void vkResetQueryPool( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetQueryPool( device, queryPool, firstQuery, queryCount ); - } - - void vkResetQueryPoolEXT( VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount ) const VULKAN_HPP_NOEXCEPT - { - return ::vkResetQueryPoolEXT( device, queryPool, firstQuery, queryCount ); - } - - VkResult vkSetDebugUtilsObjectNameEXT( VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetDebugUtilsObjectNameEXT( device, pNameInfo ); - } - - VkResult vkSetDebugUtilsObjectTagEXT( VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetDebugUtilsObjectTagEXT( device, pTagInfo ); - } - - VkResult vkSetEvent( VkDevice device, VkEvent event ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetEvent( device, event ); - } - - void vkSetHdrMetadataEXT( VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetHdrMetadataEXT( device, swapchainCount, pSwapchains, pMetadata ); - } - - void vkSetLocalDimmingAMD( VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetLocalDimmingAMD( device, swapChain, localDimmingEnable ); - } - - VkResult vkSetPrivateDataEXT( VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSetPrivateDataEXT( device, objectType, objectHandle, privateDataSlot, data ); - } - - VkResult vkSignalSemaphore( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSignalSemaphore( device, pSignalInfo ); - } - - VkResult vkSignalSemaphoreKHR( VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSignalSemaphoreKHR( device, pSignalInfo ); - } - - void vkSubmitDebugUtilsMessageEXT( VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkSubmitDebugUtilsMessageEXT( instance, messageSeverity, messageTypes, pCallbackData ); - } - - void vkTrimCommandPool( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkTrimCommandPool( device, commandPool, flags ); - } - - void vkTrimCommandPoolKHR( VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags ) const VULKAN_HPP_NOEXCEPT - { - return ::vkTrimCommandPoolKHR( device, commandPool, flags ); - } - - void vkUninitializePerformanceApiINTEL( VkDevice device ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUninitializePerformanceApiINTEL( device ); - } - - void vkUnmapMemory( VkDevice device, VkDeviceMemory memory ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUnmapMemory( device, memory ); - } - - void vkUpdateDescriptorSetWithTemplate( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUpdateDescriptorSetWithTemplate( device, descriptorSet, descriptorUpdateTemplate, pData ); - } - - void vkUpdateDescriptorSetWithTemplateKHR( VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUpdateDescriptorSetWithTemplateKHR( device, descriptorSet, descriptorUpdateTemplate, pData ); - } - - void vkUpdateDescriptorSets( VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies ) const VULKAN_HPP_NOEXCEPT - { - return ::vkUpdateDescriptorSets( device, descriptorWriteCount, pDescriptorWrites, descriptorCopyCount, pDescriptorCopies ); - } - - VkResult vkWaitForFences( VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWaitForFences( device, fenceCount, pFences, waitAll, timeout ); - } - - VkResult vkWaitSemaphores( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWaitSemaphores( device, pWaitInfo, timeout ); - } - - VkResult vkWaitSemaphoresKHR( VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWaitSemaphoresKHR( device, pWaitInfo, timeout ); - } - - VkResult vkWriteAccelerationStructuresPropertiesKHR( VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride ) const VULKAN_HPP_NOEXCEPT - { - return ::vkWriteAccelerationStructuresPropertiesKHR( device, accelerationStructureCount, pAccelerationStructures, queryType, dataSize, pData, stride ); - } - }; -#endif - - class DispatchLoaderDynamic; -#if !defined(VULKAN_HPP_DISPATCH_LOADER_DYNAMIC) -# if defined(VK_NO_PROTOTYPES) -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 1 -# else -# define VULKAN_HPP_DISPATCH_LOADER_DYNAMIC 0 -# endif -#endif - -#if defined(_WIN32) && defined(VULKAN_HPP_STORAGE_SHARED) -# ifdef VULKAN_HPP_STORAGE_SHARED_EXPORT -# define VULKAN_HPP_STORAGE_API __declspec( dllexport ) -# else -# define VULKAN_HPP_STORAGE_API __declspec( dllimport ) -# endif -#else -# define VULKAN_HPP_STORAGE_API -#endif - -#if !defined(VULKAN_HPP_DEFAULT_DISPATCHER) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::defaultDispatchLoaderDynamic -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE namespace VULKAN_HPP_NAMESPACE { VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; } - extern VULKAN_HPP_STORAGE_API DispatchLoaderDynamic defaultDispatchLoaderDynamic; -# else -# define VULKAN_HPP_DEFAULT_DISPATCHER ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic() -# define VULKAN_HPP_DEFAULT_DISPATCH_LOADER_DYNAMIC_STORAGE -# endif -#endif - -#if !defined(VULKAN_HPP_DEFAULT_DISPATCHER_TYPE) -# if VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 - #define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderDynamic -# else -# define VULKAN_HPP_DEFAULT_DISPATCHER_TYPE ::VULKAN_HPP_NAMESPACE::DispatchLoaderStatic -# endif -#endif - -#if defined( VULKAN_HPP_NO_DEFAULT_DISPATCHER ) -# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT -# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT -# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT -#else -# define VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT = {} -# define VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT = nullptr -# define VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT = VULKAN_HPP_DEFAULT_DISPATCHER -#endif - - struct AllocationCallbacks; - - template - class ObjectDestroy - { - public: - ObjectDestroy() = default; - - ObjectDestroy( OwnerType owner, - Optional allocationCallbacks - VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; } - Optional getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_owner && m_dispatch ); - m_owner.destroy( t, m_allocationCallbacks, *m_dispatch ); - } - - private: - OwnerType m_owner = {}; - Optional m_allocationCallbacks = nullptr; - Dispatch const * m_dispatch = nullptr; - }; - - class NoParent; - - template - class ObjectDestroy - { - public: - ObjectDestroy() = default; - - ObjectDestroy( Optional allocationCallbacks, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - Optional getAllocator() const VULKAN_HPP_NOEXCEPT { return m_allocationCallbacks; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_dispatch ); - t.destroy( m_allocationCallbacks, *m_dispatch ); - } - - private: - Optional m_allocationCallbacks = nullptr; - Dispatch const * m_dispatch = nullptr; - }; - - template - class ObjectFree - { - public: - ObjectFree() = default; - - ObjectFree( OwnerType owner, - Optional allocationCallbacks VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_allocationCallbacks( allocationCallbacks ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT - { - return m_owner; - } - - Optional getAllocator() const VULKAN_HPP_NOEXCEPT - { - return m_allocationCallbacks; - } - - protected: - template - void destroy( T t ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_owner && m_dispatch ); - m_owner.free( t, m_allocationCallbacks, *m_dispatch ); - } - - private: - OwnerType m_owner = {}; - Optional m_allocationCallbacks = nullptr; - Dispatch const * m_dispatch = nullptr; - }; - - template - class ObjectRelease - { - public: - ObjectRelease() = default; - - ObjectRelease( OwnerType owner, Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT - { - return m_owner; - } - - protected: - template - void destroy( T t ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT( m_owner && m_dispatch ); - m_owner.release( t, *m_dispatch ); - } - - private: - OwnerType m_owner = {}; - Dispatch const * m_dispatch = nullptr; - }; - - template - class PoolFree - { - public: - PoolFree() = default; - - PoolFree( OwnerType owner, - PoolType pool, - Dispatch const & dispatch = VULKAN_HPP_DEFAULT_DISPATCHER ) VULKAN_HPP_NOEXCEPT - : m_owner( owner ) - , m_pool( pool ) - , m_dispatch( &dispatch ) - {} - - OwnerType getOwner() const VULKAN_HPP_NOEXCEPT { return m_owner; } - PoolType getPool() const VULKAN_HPP_NOEXCEPT { return m_pool; } - - protected: - template - void destroy(T t) VULKAN_HPP_NOEXCEPT - { - m_owner.free( m_pool, t, *m_dispatch ); - } - - private: - OwnerType m_owner = OwnerType(); - PoolType m_pool = PoolType(); - Dispatch const * m_dispatch = nullptr; - }; - - using Bool32 = uint32_t; - using DeviceAddress = uint64_t; - using DeviceSize = uint64_t; - using SampleMask = uint32_t; - - template - struct CppType - {}; - - template - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = false; - }; - - VULKAN_HPP_INLINE std::string toHexString( uint32_t value ) - { - std::stringstream stream; - stream << std::hex << value; - return stream.str(); - } - - enum class AccelerationStructureBuildTypeKHR - { - eHost = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR, - eDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR, - eHostOrDevice = VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureBuildTypeKHR value ) - { - switch ( value ) - { - case AccelerationStructureBuildTypeKHR::eHost : return "Host"; - case AccelerationStructureBuildTypeKHR::eDevice : return "Device"; - case AccelerationStructureBuildTypeKHR::eHostOrDevice : return "HostOrDevice"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureCompatibilityKHR - { - eCompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR, - eIncompatible = VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCompatibilityKHR value ) - { - switch ( value ) - { - case AccelerationStructureCompatibilityKHR::eCompatible : return "Compatible"; - case AccelerationStructureCompatibilityKHR::eIncompatible : return "Incompatible"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureCreateFlagBitsKHR : VkAccelerationStructureCreateFlagsKHR - { - eDeviceAddressCaptureReplay = VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagBitsKHR value ) - { - switch ( value ) - { - case AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureMemoryRequirementsTypeNV - { - eObject = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV, - eBuildScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV, - eUpdateScratch = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - }; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureMemoryRequirementsTypeNV value ) - { - switch ( value ) - { - case AccelerationStructureMemoryRequirementsTypeNV::eObject : return "Object"; - case AccelerationStructureMemoryRequirementsTypeNV::eBuildScratch : return "BuildScratch"; - case AccelerationStructureMemoryRequirementsTypeNV::eUpdateScratch : return "UpdateScratch"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccelerationStructureTypeKHR - { - eTopLevel = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, - eBottomLevel = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, - eGeneric = VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR - }; - using AccelerationStructureTypeNV = AccelerationStructureTypeKHR; - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureTypeKHR value ) - { - switch ( value ) - { - case AccelerationStructureTypeKHR::eTopLevel : return "TopLevel"; - case AccelerationStructureTypeKHR::eBottomLevel : return "BottomLevel"; - case AccelerationStructureTypeKHR::eGeneric : return "Generic"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AccessFlagBits : VkAccessFlags - { - eIndirectCommandRead = VK_ACCESS_INDIRECT_COMMAND_READ_BIT, - eIndexRead = VK_ACCESS_INDEX_READ_BIT, - eVertexAttributeRead = VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT, - eUniformRead = VK_ACCESS_UNIFORM_READ_BIT, - eInputAttachmentRead = VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, - eShaderRead = VK_ACCESS_SHADER_READ_BIT, - eShaderWrite = VK_ACCESS_SHADER_WRITE_BIT, - eColorAttachmentRead = VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, - eColorAttachmentWrite = VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - eDepthStencilAttachmentRead = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, - eDepthStencilAttachmentWrite = VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, - eTransferRead = VK_ACCESS_TRANSFER_READ_BIT, - eTransferWrite = VK_ACCESS_TRANSFER_WRITE_BIT, - eHostRead = VK_ACCESS_HOST_READ_BIT, - eHostWrite = VK_ACCESS_HOST_WRITE_BIT, - eMemoryRead = VK_ACCESS_MEMORY_READ_BIT, - eMemoryWrite = VK_ACCESS_MEMORY_WRITE_BIT, - eTransformFeedbackWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, - eTransformFeedbackCounterReadEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, - eTransformFeedbackCounterWriteEXT = VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, - eConditionalRenderingReadEXT = VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT, - eColorAttachmentReadNoncoherentEXT = VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, - eAccelerationStructureReadKHR = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, - eAccelerationStructureWriteKHR = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, - eShadingRateImageReadNV = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, - eFragmentDensityMapReadEXT = VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, - eCommandPreprocessReadNV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV, - eCommandPreprocessWriteNV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV, - eAccelerationStructureReadNV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV, - eAccelerationStructureWriteNV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV, - eFragmentShadingRateAttachmentReadKHR = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( AccessFlagBits value ) - { - switch ( value ) - { - case AccessFlagBits::eIndirectCommandRead : return "IndirectCommandRead"; - case AccessFlagBits::eIndexRead : return "IndexRead"; - case AccessFlagBits::eVertexAttributeRead : return "VertexAttributeRead"; - case AccessFlagBits::eUniformRead : return "UniformRead"; - case AccessFlagBits::eInputAttachmentRead : return "InputAttachmentRead"; - case AccessFlagBits::eShaderRead : return "ShaderRead"; - case AccessFlagBits::eShaderWrite : return "ShaderWrite"; - case AccessFlagBits::eColorAttachmentRead : return "ColorAttachmentRead"; - case AccessFlagBits::eColorAttachmentWrite : return "ColorAttachmentWrite"; - case AccessFlagBits::eDepthStencilAttachmentRead : return "DepthStencilAttachmentRead"; - case AccessFlagBits::eDepthStencilAttachmentWrite : return "DepthStencilAttachmentWrite"; - case AccessFlagBits::eTransferRead : return "TransferRead"; - case AccessFlagBits::eTransferWrite : return "TransferWrite"; - case AccessFlagBits::eHostRead : return "HostRead"; - case AccessFlagBits::eHostWrite : return "HostWrite"; - case AccessFlagBits::eMemoryRead : return "MemoryRead"; - case AccessFlagBits::eMemoryWrite : return "MemoryWrite"; - case AccessFlagBits::eTransformFeedbackWriteEXT : return "TransformFeedbackWriteEXT"; - case AccessFlagBits::eTransformFeedbackCounterReadEXT : return "TransformFeedbackCounterReadEXT"; - case AccessFlagBits::eTransformFeedbackCounterWriteEXT : return "TransformFeedbackCounterWriteEXT"; - case AccessFlagBits::eConditionalRenderingReadEXT : return "ConditionalRenderingReadEXT"; - case AccessFlagBits::eColorAttachmentReadNoncoherentEXT : return "ColorAttachmentReadNoncoherentEXT"; - case AccessFlagBits::eAccelerationStructureReadKHR : return "AccelerationStructureReadKHR"; - case AccessFlagBits::eAccelerationStructureWriteKHR : return "AccelerationStructureWriteKHR"; - case AccessFlagBits::eShadingRateImageReadNV : return "ShadingRateImageReadNV"; - case AccessFlagBits::eFragmentDensityMapReadEXT : return "FragmentDensityMapReadEXT"; - case AccessFlagBits::eCommandPreprocessReadNV : return "CommandPreprocessReadNV"; - case AccessFlagBits::eCommandPreprocessWriteNV : return "CommandPreprocessWriteNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AcquireProfilingLockFlagBitsKHR : VkAcquireProfilingLockFlagsKHR - {}; - - VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagBitsKHR ) - { - return "(void)"; - } - - enum class AttachmentDescriptionFlagBits : VkAttachmentDescriptionFlags - { - eMayAlias = VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlagBits value ) - { - switch ( value ) - { - case AttachmentDescriptionFlagBits::eMayAlias : return "MayAlias"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AttachmentLoadOp - { - eLoad = VK_ATTACHMENT_LOAD_OP_LOAD, - eClear = VK_ATTACHMENT_LOAD_OP_CLEAR, - eDontCare = VK_ATTACHMENT_LOAD_OP_DONT_CARE - }; - - VULKAN_HPP_INLINE std::string to_string( AttachmentLoadOp value ) - { - switch ( value ) - { - case AttachmentLoadOp::eLoad : return "Load"; - case AttachmentLoadOp::eClear : return "Clear"; - case AttachmentLoadOp::eDontCare : return "DontCare"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class AttachmentStoreOp - { - eStore = VK_ATTACHMENT_STORE_OP_STORE, - eDontCare = VK_ATTACHMENT_STORE_OP_DONT_CARE, - eNoneQCOM = VK_ATTACHMENT_STORE_OP_NONE_QCOM - }; - - VULKAN_HPP_INLINE std::string to_string( AttachmentStoreOp value ) - { - switch ( value ) - { - case AttachmentStoreOp::eStore : return "Store"; - case AttachmentStoreOp::eDontCare : return "DontCare"; - case AttachmentStoreOp::eNoneQCOM : return "NoneQCOM"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BlendFactor - { - eZero = VK_BLEND_FACTOR_ZERO, - eOne = VK_BLEND_FACTOR_ONE, - eSrcColor = VK_BLEND_FACTOR_SRC_COLOR, - eOneMinusSrcColor = VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, - eDstColor = VK_BLEND_FACTOR_DST_COLOR, - eOneMinusDstColor = VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, - eSrcAlpha = VK_BLEND_FACTOR_SRC_ALPHA, - eOneMinusSrcAlpha = VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, - eDstAlpha = VK_BLEND_FACTOR_DST_ALPHA, - eOneMinusDstAlpha = VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, - eConstantColor = VK_BLEND_FACTOR_CONSTANT_COLOR, - eOneMinusConstantColor = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, - eConstantAlpha = VK_BLEND_FACTOR_CONSTANT_ALPHA, - eOneMinusConstantAlpha = VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, - eSrcAlphaSaturate = VK_BLEND_FACTOR_SRC_ALPHA_SATURATE, - eSrc1Color = VK_BLEND_FACTOR_SRC1_COLOR, - eOneMinusSrc1Color = VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, - eSrc1Alpha = VK_BLEND_FACTOR_SRC1_ALPHA, - eOneMinusSrc1Alpha = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - }; - - VULKAN_HPP_INLINE std::string to_string( BlendFactor value ) - { - switch ( value ) - { - case BlendFactor::eZero : return "Zero"; - case BlendFactor::eOne : return "One"; - case BlendFactor::eSrcColor : return "SrcColor"; - case BlendFactor::eOneMinusSrcColor : return "OneMinusSrcColor"; - case BlendFactor::eDstColor : return "DstColor"; - case BlendFactor::eOneMinusDstColor : return "OneMinusDstColor"; - case BlendFactor::eSrcAlpha : return "SrcAlpha"; - case BlendFactor::eOneMinusSrcAlpha : return "OneMinusSrcAlpha"; - case BlendFactor::eDstAlpha : return "DstAlpha"; - case BlendFactor::eOneMinusDstAlpha : return "OneMinusDstAlpha"; - case BlendFactor::eConstantColor : return "ConstantColor"; - case BlendFactor::eOneMinusConstantColor : return "OneMinusConstantColor"; - case BlendFactor::eConstantAlpha : return "ConstantAlpha"; - case BlendFactor::eOneMinusConstantAlpha : return "OneMinusConstantAlpha"; - case BlendFactor::eSrcAlphaSaturate : return "SrcAlphaSaturate"; - case BlendFactor::eSrc1Color : return "Src1Color"; - case BlendFactor::eOneMinusSrc1Color : return "OneMinusSrc1Color"; - case BlendFactor::eSrc1Alpha : return "Src1Alpha"; - case BlendFactor::eOneMinusSrc1Alpha : return "OneMinusSrc1Alpha"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BlendOp - { - eAdd = VK_BLEND_OP_ADD, - eSubtract = VK_BLEND_OP_SUBTRACT, - eReverseSubtract = VK_BLEND_OP_REVERSE_SUBTRACT, - eMin = VK_BLEND_OP_MIN, - eMax = VK_BLEND_OP_MAX, - eZeroEXT = VK_BLEND_OP_ZERO_EXT, - eSrcEXT = VK_BLEND_OP_SRC_EXT, - eDstEXT = VK_BLEND_OP_DST_EXT, - eSrcOverEXT = VK_BLEND_OP_SRC_OVER_EXT, - eDstOverEXT = VK_BLEND_OP_DST_OVER_EXT, - eSrcInEXT = VK_BLEND_OP_SRC_IN_EXT, - eDstInEXT = VK_BLEND_OP_DST_IN_EXT, - eSrcOutEXT = VK_BLEND_OP_SRC_OUT_EXT, - eDstOutEXT = VK_BLEND_OP_DST_OUT_EXT, - eSrcAtopEXT = VK_BLEND_OP_SRC_ATOP_EXT, - eDstAtopEXT = VK_BLEND_OP_DST_ATOP_EXT, - eXorEXT = VK_BLEND_OP_XOR_EXT, - eMultiplyEXT = VK_BLEND_OP_MULTIPLY_EXT, - eScreenEXT = VK_BLEND_OP_SCREEN_EXT, - eOverlayEXT = VK_BLEND_OP_OVERLAY_EXT, - eDarkenEXT = VK_BLEND_OP_DARKEN_EXT, - eLightenEXT = VK_BLEND_OP_LIGHTEN_EXT, - eColordodgeEXT = VK_BLEND_OP_COLORDODGE_EXT, - eColorburnEXT = VK_BLEND_OP_COLORBURN_EXT, - eHardlightEXT = VK_BLEND_OP_HARDLIGHT_EXT, - eSoftlightEXT = VK_BLEND_OP_SOFTLIGHT_EXT, - eDifferenceEXT = VK_BLEND_OP_DIFFERENCE_EXT, - eExclusionEXT = VK_BLEND_OP_EXCLUSION_EXT, - eInvertEXT = VK_BLEND_OP_INVERT_EXT, - eInvertRgbEXT = VK_BLEND_OP_INVERT_RGB_EXT, - eLineardodgeEXT = VK_BLEND_OP_LINEARDODGE_EXT, - eLinearburnEXT = VK_BLEND_OP_LINEARBURN_EXT, - eVividlightEXT = VK_BLEND_OP_VIVIDLIGHT_EXT, - eLinearlightEXT = VK_BLEND_OP_LINEARLIGHT_EXT, - ePinlightEXT = VK_BLEND_OP_PINLIGHT_EXT, - eHardmixEXT = VK_BLEND_OP_HARDMIX_EXT, - eHslHueEXT = VK_BLEND_OP_HSL_HUE_EXT, - eHslSaturationEXT = VK_BLEND_OP_HSL_SATURATION_EXT, - eHslColorEXT = VK_BLEND_OP_HSL_COLOR_EXT, - eHslLuminosityEXT = VK_BLEND_OP_HSL_LUMINOSITY_EXT, - ePlusEXT = VK_BLEND_OP_PLUS_EXT, - ePlusClampedEXT = VK_BLEND_OP_PLUS_CLAMPED_EXT, - ePlusClampedAlphaEXT = VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, - ePlusDarkerEXT = VK_BLEND_OP_PLUS_DARKER_EXT, - eMinusEXT = VK_BLEND_OP_MINUS_EXT, - eMinusClampedEXT = VK_BLEND_OP_MINUS_CLAMPED_EXT, - eContrastEXT = VK_BLEND_OP_CONTRAST_EXT, - eInvertOvgEXT = VK_BLEND_OP_INVERT_OVG_EXT, - eRedEXT = VK_BLEND_OP_RED_EXT, - eGreenEXT = VK_BLEND_OP_GREEN_EXT, - eBlueEXT = VK_BLEND_OP_BLUE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( BlendOp value ) - { - switch ( value ) - { - case BlendOp::eAdd : return "Add"; - case BlendOp::eSubtract : return "Subtract"; - case BlendOp::eReverseSubtract : return "ReverseSubtract"; - case BlendOp::eMin : return "Min"; - case BlendOp::eMax : return "Max"; - case BlendOp::eZeroEXT : return "ZeroEXT"; - case BlendOp::eSrcEXT : return "SrcEXT"; - case BlendOp::eDstEXT : return "DstEXT"; - case BlendOp::eSrcOverEXT : return "SrcOverEXT"; - case BlendOp::eDstOverEXT : return "DstOverEXT"; - case BlendOp::eSrcInEXT : return "SrcInEXT"; - case BlendOp::eDstInEXT : return "DstInEXT"; - case BlendOp::eSrcOutEXT : return "SrcOutEXT"; - case BlendOp::eDstOutEXT : return "DstOutEXT"; - case BlendOp::eSrcAtopEXT : return "SrcAtopEXT"; - case BlendOp::eDstAtopEXT : return "DstAtopEXT"; - case BlendOp::eXorEXT : return "XorEXT"; - case BlendOp::eMultiplyEXT : return "MultiplyEXT"; - case BlendOp::eScreenEXT : return "ScreenEXT"; - case BlendOp::eOverlayEXT : return "OverlayEXT"; - case BlendOp::eDarkenEXT : return "DarkenEXT"; - case BlendOp::eLightenEXT : return "LightenEXT"; - case BlendOp::eColordodgeEXT : return "ColordodgeEXT"; - case BlendOp::eColorburnEXT : return "ColorburnEXT"; - case BlendOp::eHardlightEXT : return "HardlightEXT"; - case BlendOp::eSoftlightEXT : return "SoftlightEXT"; - case BlendOp::eDifferenceEXT : return "DifferenceEXT"; - case BlendOp::eExclusionEXT : return "ExclusionEXT"; - case BlendOp::eInvertEXT : return "InvertEXT"; - case BlendOp::eInvertRgbEXT : return "InvertRgbEXT"; - case BlendOp::eLineardodgeEXT : return "LineardodgeEXT"; - case BlendOp::eLinearburnEXT : return "LinearburnEXT"; - case BlendOp::eVividlightEXT : return "VividlightEXT"; - case BlendOp::eLinearlightEXT : return "LinearlightEXT"; - case BlendOp::ePinlightEXT : return "PinlightEXT"; - case BlendOp::eHardmixEXT : return "HardmixEXT"; - case BlendOp::eHslHueEXT : return "HslHueEXT"; - case BlendOp::eHslSaturationEXT : return "HslSaturationEXT"; - case BlendOp::eHslColorEXT : return "HslColorEXT"; - case BlendOp::eHslLuminosityEXT : return "HslLuminosityEXT"; - case BlendOp::ePlusEXT : return "PlusEXT"; - case BlendOp::ePlusClampedEXT : return "PlusClampedEXT"; - case BlendOp::ePlusClampedAlphaEXT : return "PlusClampedAlphaEXT"; - case BlendOp::ePlusDarkerEXT : return "PlusDarkerEXT"; - case BlendOp::eMinusEXT : return "MinusEXT"; - case BlendOp::eMinusClampedEXT : return "MinusClampedEXT"; - case BlendOp::eContrastEXT : return "ContrastEXT"; - case BlendOp::eInvertOvgEXT : return "InvertOvgEXT"; - case BlendOp::eRedEXT : return "RedEXT"; - case BlendOp::eGreenEXT : return "GreenEXT"; - case BlendOp::eBlueEXT : return "BlueEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BlendOverlapEXT - { - eUncorrelated = VK_BLEND_OVERLAP_UNCORRELATED_EXT, - eDisjoint = VK_BLEND_OVERLAP_DISJOINT_EXT, - eConjoint = VK_BLEND_OVERLAP_CONJOINT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( BlendOverlapEXT value ) - { - switch ( value ) - { - case BlendOverlapEXT::eUncorrelated : return "Uncorrelated"; - case BlendOverlapEXT::eDisjoint : return "Disjoint"; - case BlendOverlapEXT::eConjoint : return "Conjoint"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BorderColor - { - eFloatTransparentBlack = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, - eIntTransparentBlack = VK_BORDER_COLOR_INT_TRANSPARENT_BLACK, - eFloatOpaqueBlack = VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK, - eIntOpaqueBlack = VK_BORDER_COLOR_INT_OPAQUE_BLACK, - eFloatOpaqueWhite = VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE, - eIntOpaqueWhite = VK_BORDER_COLOR_INT_OPAQUE_WHITE, - eFloatCustomEXT = VK_BORDER_COLOR_FLOAT_CUSTOM_EXT, - eIntCustomEXT = VK_BORDER_COLOR_INT_CUSTOM_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( BorderColor value ) - { - switch ( value ) - { - case BorderColor::eFloatTransparentBlack : return "FloatTransparentBlack"; - case BorderColor::eIntTransparentBlack : return "IntTransparentBlack"; - case BorderColor::eFloatOpaqueBlack : return "FloatOpaqueBlack"; - case BorderColor::eIntOpaqueBlack : return "IntOpaqueBlack"; - case BorderColor::eFloatOpaqueWhite : return "FloatOpaqueWhite"; - case BorderColor::eIntOpaqueWhite : return "IntOpaqueWhite"; - case BorderColor::eFloatCustomEXT : return "FloatCustomEXT"; - case BorderColor::eIntCustomEXT : return "IntCustomEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BufferCreateFlagBits : VkBufferCreateFlags - { - eSparseBinding = VK_BUFFER_CREATE_SPARSE_BINDING_BIT, - eSparseResidency = VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, - eSparseAliased = VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, - eProtected = VK_BUFFER_CREATE_PROTECTED_BIT, - eDeviceAddressCaptureReplay = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, - eDeviceAddressCaptureReplayEXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT, - eDeviceAddressCaptureReplayKHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( BufferCreateFlagBits value ) - { - switch ( value ) - { - case BufferCreateFlagBits::eSparseBinding : return "SparseBinding"; - case BufferCreateFlagBits::eSparseResidency : return "SparseResidency"; - case BufferCreateFlagBits::eSparseAliased : return "SparseAliased"; - case BufferCreateFlagBits::eProtected : return "Protected"; - case BufferCreateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BufferUsageFlagBits : VkBufferUsageFlags - { - eTransferSrc = VK_BUFFER_USAGE_TRANSFER_SRC_BIT, - eTransferDst = VK_BUFFER_USAGE_TRANSFER_DST_BIT, - eUniformTexelBuffer = VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, - eStorageTexelBuffer = VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, - eUniformBuffer = VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, - eStorageBuffer = VK_BUFFER_USAGE_STORAGE_BUFFER_BIT, - eIndexBuffer = VK_BUFFER_USAGE_INDEX_BUFFER_BIT, - eVertexBuffer = VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, - eIndirectBuffer = VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, - eShaderDeviceAddress = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, - eTransformFeedbackBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT, - eTransformFeedbackCounterBufferEXT = VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT, - eConditionalRenderingEXT = VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT, - eAccelerationStructureBuildInputReadOnlyKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR, - eAccelerationStructureStorageKHR = VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR, - eShaderBindingTableKHR = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, - eRayTracingNV = VK_BUFFER_USAGE_RAY_TRACING_BIT_NV, - eShaderDeviceAddressEXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT, - eShaderDeviceAddressKHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( BufferUsageFlagBits value ) - { - switch ( value ) - { - case BufferUsageFlagBits::eTransferSrc : return "TransferSrc"; - case BufferUsageFlagBits::eTransferDst : return "TransferDst"; - case BufferUsageFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer"; - case BufferUsageFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer"; - case BufferUsageFlagBits::eUniformBuffer : return "UniformBuffer"; - case BufferUsageFlagBits::eStorageBuffer : return "StorageBuffer"; - case BufferUsageFlagBits::eIndexBuffer : return "IndexBuffer"; - case BufferUsageFlagBits::eVertexBuffer : return "VertexBuffer"; - case BufferUsageFlagBits::eIndirectBuffer : return "IndirectBuffer"; - case BufferUsageFlagBits::eShaderDeviceAddress : return "ShaderDeviceAddress"; - case BufferUsageFlagBits::eTransformFeedbackBufferEXT : return "TransformFeedbackBufferEXT"; - case BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT : return "TransformFeedbackCounterBufferEXT"; - case BufferUsageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT"; - case BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR : return "AccelerationStructureBuildInputReadOnlyKHR"; - case BufferUsageFlagBits::eAccelerationStructureStorageKHR : return "AccelerationStructureStorageKHR"; - case BufferUsageFlagBits::eShaderBindingTableKHR : return "ShaderBindingTableKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BuildAccelerationStructureFlagBitsKHR : VkBuildAccelerationStructureFlagsKHR - { - eAllowUpdate = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, - eAllowCompaction = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, - ePreferFastTrace = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, - ePreferFastBuild = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, - eLowMemory = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR - }; - using BuildAccelerationStructureFlagBitsNV = BuildAccelerationStructureFlagBitsKHR; - - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagBitsKHR value ) - { - switch ( value ) - { - case BuildAccelerationStructureFlagBitsKHR::eAllowUpdate : return "AllowUpdate"; - case BuildAccelerationStructureFlagBitsKHR::eAllowCompaction : return "AllowCompaction"; - case BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace : return "PreferFastTrace"; - case BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild : return "PreferFastBuild"; - case BuildAccelerationStructureFlagBitsKHR::eLowMemory : return "LowMemory"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class BuildAccelerationStructureModeKHR - { - eBuild = VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, - eUpdate = VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureModeKHR value ) - { - switch ( value ) - { - case BuildAccelerationStructureModeKHR::eBuild : return "Build"; - case BuildAccelerationStructureModeKHR::eUpdate : return "Update"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ChromaLocation - { - eCositedEven = VK_CHROMA_LOCATION_COSITED_EVEN, - eMidpoint = VK_CHROMA_LOCATION_MIDPOINT - }; - using ChromaLocationKHR = ChromaLocation; - - VULKAN_HPP_INLINE std::string to_string( ChromaLocation value ) - { - switch ( value ) - { - case ChromaLocation::eCositedEven : return "CositedEven"; - case ChromaLocation::eMidpoint : return "Midpoint"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CoarseSampleOrderTypeNV - { - eDefault = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, - eCustom = VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, - ePixelMajor = VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV, - eSampleMajor = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - }; - - VULKAN_HPP_INLINE std::string to_string( CoarseSampleOrderTypeNV value ) - { - switch ( value ) - { - case CoarseSampleOrderTypeNV::eDefault : return "Default"; - case CoarseSampleOrderTypeNV::eCustom : return "Custom"; - case CoarseSampleOrderTypeNV::ePixelMajor : return "PixelMajor"; - case CoarseSampleOrderTypeNV::eSampleMajor : return "SampleMajor"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ColorComponentFlagBits : VkColorComponentFlags - { - eR = VK_COLOR_COMPONENT_R_BIT, - eG = VK_COLOR_COMPONENT_G_BIT, - eB = VK_COLOR_COMPONENT_B_BIT, - eA = VK_COLOR_COMPONENT_A_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( ColorComponentFlagBits value ) - { - switch ( value ) - { - case ColorComponentFlagBits::eR : return "R"; - case ColorComponentFlagBits::eG : return "G"; - case ColorComponentFlagBits::eB : return "B"; - case ColorComponentFlagBits::eA : return "A"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ColorSpaceKHR - { - eSrgbNonlinear = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - eDisplayP3NonlinearEXT = VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT, - eExtendedSrgbLinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT, - eDisplayP3LinearEXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, - eDciP3NonlinearEXT = VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT, - eBt709LinearEXT = VK_COLOR_SPACE_BT709_LINEAR_EXT, - eBt709NonlinearEXT = VK_COLOR_SPACE_BT709_NONLINEAR_EXT, - eBt2020LinearEXT = VK_COLOR_SPACE_BT2020_LINEAR_EXT, - eHdr10St2084EXT = VK_COLOR_SPACE_HDR10_ST2084_EXT, - eDolbyvisionEXT = VK_COLOR_SPACE_DOLBYVISION_EXT, - eHdr10HlgEXT = VK_COLOR_SPACE_HDR10_HLG_EXT, - eAdobergbLinearEXT = VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT, - eAdobergbNonlinearEXT = VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT, - ePassThroughEXT = VK_COLOR_SPACE_PASS_THROUGH_EXT, - eExtendedSrgbNonlinearEXT = VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT, - eDisplayNativeAMD = VK_COLOR_SPACE_DISPLAY_NATIVE_AMD, - eVkColorspaceSrgbNonlinear = VK_COLORSPACE_SRGB_NONLINEAR_KHR, - eDciP3LinearEXT = VK_COLOR_SPACE_DCI_P3_LINEAR_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ColorSpaceKHR value ) - { - switch ( value ) - { - case ColorSpaceKHR::eSrgbNonlinear : return "SrgbNonlinear"; - case ColorSpaceKHR::eDisplayP3NonlinearEXT : return "DisplayP3NonlinearEXT"; - case ColorSpaceKHR::eExtendedSrgbLinearEXT : return "ExtendedSrgbLinearEXT"; - case ColorSpaceKHR::eDisplayP3LinearEXT : return "DisplayP3LinearEXT"; - case ColorSpaceKHR::eDciP3NonlinearEXT : return "DciP3NonlinearEXT"; - case ColorSpaceKHR::eBt709LinearEXT : return "Bt709LinearEXT"; - case ColorSpaceKHR::eBt709NonlinearEXT : return "Bt709NonlinearEXT"; - case ColorSpaceKHR::eBt2020LinearEXT : return "Bt2020LinearEXT"; - case ColorSpaceKHR::eHdr10St2084EXT : return "Hdr10St2084EXT"; - case ColorSpaceKHR::eDolbyvisionEXT : return "DolbyvisionEXT"; - case ColorSpaceKHR::eHdr10HlgEXT : return "Hdr10HlgEXT"; - case ColorSpaceKHR::eAdobergbLinearEXT : return "AdobergbLinearEXT"; - case ColorSpaceKHR::eAdobergbNonlinearEXT : return "AdobergbNonlinearEXT"; - case ColorSpaceKHR::ePassThroughEXT : return "PassThroughEXT"; - case ColorSpaceKHR::eExtendedSrgbNonlinearEXT : return "ExtendedSrgbNonlinearEXT"; - case ColorSpaceKHR::eDisplayNativeAMD : return "DisplayNativeAMD"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandBufferLevel - { - ePrimary = VK_COMMAND_BUFFER_LEVEL_PRIMARY, - eSecondary = VK_COMMAND_BUFFER_LEVEL_SECONDARY - }; - - VULKAN_HPP_INLINE std::string to_string( CommandBufferLevel value ) - { - switch ( value ) - { - case CommandBufferLevel::ePrimary : return "Primary"; - case CommandBufferLevel::eSecondary : return "Secondary"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandBufferResetFlagBits : VkCommandBufferResetFlags - { - eReleaseResources = VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlagBits value ) - { - switch ( value ) - { - case CommandBufferResetFlagBits::eReleaseResources : return "ReleaseResources"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandBufferUsageFlagBits : VkCommandBufferUsageFlags - { - eOneTimeSubmit = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT, - eRenderPassContinue = VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, - eSimultaneousUse = VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlagBits value ) - { - switch ( value ) - { - case CommandBufferUsageFlagBits::eOneTimeSubmit : return "OneTimeSubmit"; - case CommandBufferUsageFlagBits::eRenderPassContinue : return "RenderPassContinue"; - case CommandBufferUsageFlagBits::eSimultaneousUse : return "SimultaneousUse"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandPoolCreateFlagBits : VkCommandPoolCreateFlags - { - eTransient = VK_COMMAND_POOL_CREATE_TRANSIENT_BIT, - eResetCommandBuffer = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT, - eProtected = VK_COMMAND_POOL_CREATE_PROTECTED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlagBits value ) - { - switch ( value ) - { - case CommandPoolCreateFlagBits::eTransient : return "Transient"; - case CommandPoolCreateFlagBits::eResetCommandBuffer : return "ResetCommandBuffer"; - case CommandPoolCreateFlagBits::eProtected : return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CommandPoolResetFlagBits : VkCommandPoolResetFlags - { - eReleaseResources = VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlagBits value ) - { - switch ( value ) - { - case CommandPoolResetFlagBits::eReleaseResources : return "ReleaseResources"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CompareOp - { - eNever = VK_COMPARE_OP_NEVER, - eLess = VK_COMPARE_OP_LESS, - eEqual = VK_COMPARE_OP_EQUAL, - eLessOrEqual = VK_COMPARE_OP_LESS_OR_EQUAL, - eGreater = VK_COMPARE_OP_GREATER, - eNotEqual = VK_COMPARE_OP_NOT_EQUAL, - eGreaterOrEqual = VK_COMPARE_OP_GREATER_OR_EQUAL, - eAlways = VK_COMPARE_OP_ALWAYS - }; - - VULKAN_HPP_INLINE std::string to_string( CompareOp value ) - { - switch ( value ) - { - case CompareOp::eNever : return "Never"; - case CompareOp::eLess : return "Less"; - case CompareOp::eEqual : return "Equal"; - case CompareOp::eLessOrEqual : return "LessOrEqual"; - case CompareOp::eGreater : return "Greater"; - case CompareOp::eNotEqual : return "NotEqual"; - case CompareOp::eGreaterOrEqual : return "GreaterOrEqual"; - case CompareOp::eAlways : return "Always"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ComponentSwizzle - { - eIdentity = VK_COMPONENT_SWIZZLE_IDENTITY, - eZero = VK_COMPONENT_SWIZZLE_ZERO, - eOne = VK_COMPONENT_SWIZZLE_ONE, - eR = VK_COMPONENT_SWIZZLE_R, - eG = VK_COMPONENT_SWIZZLE_G, - eB = VK_COMPONENT_SWIZZLE_B, - eA = VK_COMPONENT_SWIZZLE_A - }; - - VULKAN_HPP_INLINE std::string to_string( ComponentSwizzle value ) - { - switch ( value ) - { - case ComponentSwizzle::eIdentity : return "Identity"; - case ComponentSwizzle::eZero : return "Zero"; - case ComponentSwizzle::eOne : return "One"; - case ComponentSwizzle::eR : return "R"; - case ComponentSwizzle::eG : return "G"; - case ComponentSwizzle::eB : return "B"; - case ComponentSwizzle::eA : return "A"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ComponentTypeNV - { - eFloat16 = VK_COMPONENT_TYPE_FLOAT16_NV, - eFloat32 = VK_COMPONENT_TYPE_FLOAT32_NV, - eFloat64 = VK_COMPONENT_TYPE_FLOAT64_NV, - eSint8 = VK_COMPONENT_TYPE_SINT8_NV, - eSint16 = VK_COMPONENT_TYPE_SINT16_NV, - eSint32 = VK_COMPONENT_TYPE_SINT32_NV, - eSint64 = VK_COMPONENT_TYPE_SINT64_NV, - eUint8 = VK_COMPONENT_TYPE_UINT8_NV, - eUint16 = VK_COMPONENT_TYPE_UINT16_NV, - eUint32 = VK_COMPONENT_TYPE_UINT32_NV, - eUint64 = VK_COMPONENT_TYPE_UINT64_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ComponentTypeNV value ) - { - switch ( value ) - { - case ComponentTypeNV::eFloat16 : return "Float16"; - case ComponentTypeNV::eFloat32 : return "Float32"; - case ComponentTypeNV::eFloat64 : return "Float64"; - case ComponentTypeNV::eSint8 : return "Sint8"; - case ComponentTypeNV::eSint16 : return "Sint16"; - case ComponentTypeNV::eSint32 : return "Sint32"; - case ComponentTypeNV::eSint64 : return "Sint64"; - case ComponentTypeNV::eUint8 : return "Uint8"; - case ComponentTypeNV::eUint16 : return "Uint16"; - case ComponentTypeNV::eUint32 : return "Uint32"; - case ComponentTypeNV::eUint64 : return "Uint64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CompositeAlphaFlagBitsKHR : VkCompositeAlphaFlagsKHR - { - eOpaque = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR, - ePreMultiplied = VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR, - ePostMultiplied = VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR, - eInherit = VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagBitsKHR value ) - { - switch ( value ) - { - case CompositeAlphaFlagBitsKHR::eOpaque : return "Opaque"; - case CompositeAlphaFlagBitsKHR::ePreMultiplied : return "PreMultiplied"; - case CompositeAlphaFlagBitsKHR::ePostMultiplied : return "PostMultiplied"; - case CompositeAlphaFlagBitsKHR::eInherit : return "Inherit"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ConditionalRenderingFlagBitsEXT : VkConditionalRenderingFlagsEXT - { - eInverted = VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagBitsEXT value ) - { - switch ( value ) - { - case ConditionalRenderingFlagBitsEXT::eInverted : return "Inverted"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ConservativeRasterizationModeEXT - { - eDisabled = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, - eOverestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, - eUnderestimate = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ConservativeRasterizationModeEXT value ) - { - switch ( value ) - { - case ConservativeRasterizationModeEXT::eDisabled : return "Disabled"; - case ConservativeRasterizationModeEXT::eOverestimate : return "Overestimate"; - case ConservativeRasterizationModeEXT::eUnderestimate : return "Underestimate"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CopyAccelerationStructureModeKHR - { - eClone = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR, - eCompact = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, - eSerialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR, - eDeserialize = VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR - }; - using CopyAccelerationStructureModeNV = CopyAccelerationStructureModeKHR; - - VULKAN_HPP_INLINE std::string to_string( CopyAccelerationStructureModeKHR value ) - { - switch ( value ) - { - case CopyAccelerationStructureModeKHR::eClone : return "Clone"; - case CopyAccelerationStructureModeKHR::eCompact : return "Compact"; - case CopyAccelerationStructureModeKHR::eSerialize : return "Serialize"; - case CopyAccelerationStructureModeKHR::eDeserialize : return "Deserialize"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CoverageModulationModeNV - { - eNone = VK_COVERAGE_MODULATION_MODE_NONE_NV, - eRgb = VK_COVERAGE_MODULATION_MODE_RGB_NV, - eAlpha = VK_COVERAGE_MODULATION_MODE_ALPHA_NV, - eRgba = VK_COVERAGE_MODULATION_MODE_RGBA_NV - }; - - VULKAN_HPP_INLINE std::string to_string( CoverageModulationModeNV value ) - { - switch ( value ) - { - case CoverageModulationModeNV::eNone : return "None"; - case CoverageModulationModeNV::eRgb : return "Rgb"; - case CoverageModulationModeNV::eAlpha : return "Alpha"; - case CoverageModulationModeNV::eRgba : return "Rgba"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CoverageReductionModeNV - { - eMerge = VK_COVERAGE_REDUCTION_MODE_MERGE_NV, - eTruncate = VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV - }; - - VULKAN_HPP_INLINE std::string to_string( CoverageReductionModeNV value ) - { - switch ( value ) - { - case CoverageReductionModeNV::eMerge : return "Merge"; - case CoverageReductionModeNV::eTruncate : return "Truncate"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class CullModeFlagBits : VkCullModeFlags - { - eNone = VK_CULL_MODE_NONE, - eFront = VK_CULL_MODE_FRONT_BIT, - eBack = VK_CULL_MODE_BACK_BIT, - eFrontAndBack = VK_CULL_MODE_FRONT_AND_BACK - }; - - VULKAN_HPP_INLINE std::string to_string( CullModeFlagBits value ) - { - switch ( value ) - { - case CullModeFlagBits::eNone : return "None"; - case CullModeFlagBits::eFront : return "Front"; - case CullModeFlagBits::eBack : return "Back"; - case CullModeFlagBits::eFrontAndBack : return "FrontAndBack"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugReportFlagBitsEXT : VkDebugReportFlagsEXT - { - eInformation = VK_DEBUG_REPORT_INFORMATION_BIT_EXT, - eWarning = VK_DEBUG_REPORT_WARNING_BIT_EXT, - ePerformanceWarning = VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT, - eError = VK_DEBUG_REPORT_ERROR_BIT_EXT, - eDebug = VK_DEBUG_REPORT_DEBUG_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugReportFlagBitsEXT value ) - { - switch ( value ) - { - case DebugReportFlagBitsEXT::eInformation : return "Information"; - case DebugReportFlagBitsEXT::eWarning : return "Warning"; - case DebugReportFlagBitsEXT::ePerformanceWarning : return "PerformanceWarning"; - case DebugReportFlagBitsEXT::eError : return "Error"; - case DebugReportFlagBitsEXT::eDebug : return "Debug"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugReportObjectTypeEXT - { - eUnknown = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, - eInstance = VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT, - ePhysicalDevice = VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT, - eDevice = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT, - eQueue = VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT, - eSemaphore = VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT, - eCommandBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT, - eFence = VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT, - eDeviceMemory = VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT, - eBuffer = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT, - eImage = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT, - eEvent = VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT, - eQueryPool = VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT, - eBufferView = VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT, - eImageView = VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT, - eShaderModule = VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT, - ePipelineCache = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT, - ePipelineLayout = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT, - eRenderPass = VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT, - ePipeline = VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT, - eDescriptorSetLayout = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT, - eSampler = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT, - eDescriptorPool = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT, - eDescriptorSet = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT, - eFramebuffer = VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT, - eCommandPool = VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT, - eSurfaceKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT, - eSwapchainKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT, - eDebugReportCallbackEXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, - eDisplayKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT, - eDisplayModeKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT, - eValidationCacheEXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, - eSamplerYcbcrConversion = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, - eDescriptorUpdateTemplate = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, - eAccelerationStructureKHR = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT, - eAccelerationStructureNV = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT, - eDebugReport = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT, - eDescriptorUpdateTemplateKHR = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT, - eSamplerYcbcrConversionKHR = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT, - eValidationCache = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugReportObjectTypeEXT value ) - { - switch ( value ) - { - case DebugReportObjectTypeEXT::eUnknown : return "Unknown"; - case DebugReportObjectTypeEXT::eInstance : return "Instance"; - case DebugReportObjectTypeEXT::ePhysicalDevice : return "PhysicalDevice"; - case DebugReportObjectTypeEXT::eDevice : return "Device"; - case DebugReportObjectTypeEXT::eQueue : return "Queue"; - case DebugReportObjectTypeEXT::eSemaphore : return "Semaphore"; - case DebugReportObjectTypeEXT::eCommandBuffer : return "CommandBuffer"; - case DebugReportObjectTypeEXT::eFence : return "Fence"; - case DebugReportObjectTypeEXT::eDeviceMemory : return "DeviceMemory"; - case DebugReportObjectTypeEXT::eBuffer : return "Buffer"; - case DebugReportObjectTypeEXT::eImage : return "Image"; - case DebugReportObjectTypeEXT::eEvent : return "Event"; - case DebugReportObjectTypeEXT::eQueryPool : return "QueryPool"; - case DebugReportObjectTypeEXT::eBufferView : return "BufferView"; - case DebugReportObjectTypeEXT::eImageView : return "ImageView"; - case DebugReportObjectTypeEXT::eShaderModule : return "ShaderModule"; - case DebugReportObjectTypeEXT::ePipelineCache : return "PipelineCache"; - case DebugReportObjectTypeEXT::ePipelineLayout : return "PipelineLayout"; - case DebugReportObjectTypeEXT::eRenderPass : return "RenderPass"; - case DebugReportObjectTypeEXT::ePipeline : return "Pipeline"; - case DebugReportObjectTypeEXT::eDescriptorSetLayout : return "DescriptorSetLayout"; - case DebugReportObjectTypeEXT::eSampler : return "Sampler"; - case DebugReportObjectTypeEXT::eDescriptorPool : return "DescriptorPool"; - case DebugReportObjectTypeEXT::eDescriptorSet : return "DescriptorSet"; - case DebugReportObjectTypeEXT::eFramebuffer : return "Framebuffer"; - case DebugReportObjectTypeEXT::eCommandPool : return "CommandPool"; - case DebugReportObjectTypeEXT::eSurfaceKHR : return "SurfaceKHR"; - case DebugReportObjectTypeEXT::eSwapchainKHR : return "SwapchainKHR"; - case DebugReportObjectTypeEXT::eDebugReportCallbackEXT : return "DebugReportCallbackEXT"; - case DebugReportObjectTypeEXT::eDisplayKHR : return "DisplayKHR"; - case DebugReportObjectTypeEXT::eDisplayModeKHR : return "DisplayModeKHR"; - case DebugReportObjectTypeEXT::eValidationCacheEXT : return "ValidationCacheEXT"; - case DebugReportObjectTypeEXT::eSamplerYcbcrConversion : return "SamplerYcbcrConversion"; - case DebugReportObjectTypeEXT::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate"; - case DebugReportObjectTypeEXT::eAccelerationStructureKHR : return "AccelerationStructureKHR"; - case DebugReportObjectTypeEXT::eAccelerationStructureNV : return "AccelerationStructureNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugUtilsMessageSeverityFlagBitsEXT : VkDebugUtilsMessageSeverityFlagsEXT - { - eVerbose = VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT, - eInfo = VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT, - eWarning = VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT, - eError = VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagBitsEXT value ) - { - switch ( value ) - { - case DebugUtilsMessageSeverityFlagBitsEXT::eVerbose : return "Verbose"; - case DebugUtilsMessageSeverityFlagBitsEXT::eInfo : return "Info"; - case DebugUtilsMessageSeverityFlagBitsEXT::eWarning : return "Warning"; - case DebugUtilsMessageSeverityFlagBitsEXT::eError : return "Error"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DebugUtilsMessageTypeFlagBitsEXT : VkDebugUtilsMessageTypeFlagsEXT - { - eGeneral = VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT, - eValidation = VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT, - ePerformance = VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagBitsEXT value ) - { - switch ( value ) - { - case DebugUtilsMessageTypeFlagBitsEXT::eGeneral : return "General"; - case DebugUtilsMessageTypeFlagBitsEXT::eValidation : return "Validation"; - case DebugUtilsMessageTypeFlagBitsEXT::ePerformance : return "Performance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DependencyFlagBits : VkDependencyFlags - { - eByRegion = VK_DEPENDENCY_BY_REGION_BIT, - eDeviceGroup = VK_DEPENDENCY_DEVICE_GROUP_BIT, - eViewLocal = VK_DEPENDENCY_VIEW_LOCAL_BIT, - eDeviceGroupKHR = VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR, - eViewLocalKHR = VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( DependencyFlagBits value ) - { - switch ( value ) - { - case DependencyFlagBits::eByRegion : return "ByRegion"; - case DependencyFlagBits::eDeviceGroup : return "DeviceGroup"; - case DependencyFlagBits::eViewLocal : return "ViewLocal"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorBindingFlagBits : VkDescriptorBindingFlags - { - eUpdateAfterBind = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, - eUpdateUnusedWhilePending = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, - ePartiallyBound = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, - eVariableDescriptorCount = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT - }; - using DescriptorBindingFlagBitsEXT = DescriptorBindingFlagBits; - - VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlagBits value ) - { - switch ( value ) - { - case DescriptorBindingFlagBits::eUpdateAfterBind : return "UpdateAfterBind"; - case DescriptorBindingFlagBits::eUpdateUnusedWhilePending : return "UpdateUnusedWhilePending"; - case DescriptorBindingFlagBits::ePartiallyBound : return "PartiallyBound"; - case DescriptorBindingFlagBits::eVariableDescriptorCount : return "VariableDescriptorCount"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorPoolCreateFlagBits : VkDescriptorPoolCreateFlags - { - eFreeDescriptorSet = VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT, - eUpdateAfterBind = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, - eHostOnlyVALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE, - eUpdateAfterBindEXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlagBits value ) - { - switch ( value ) - { - case DescriptorPoolCreateFlagBits::eFreeDescriptorSet : return "FreeDescriptorSet"; - case DescriptorPoolCreateFlagBits::eUpdateAfterBind : return "UpdateAfterBind"; - case DescriptorPoolCreateFlagBits::eHostOnlyVALVE : return "HostOnlyVALVE"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorSetLayoutCreateFlagBits : VkDescriptorSetLayoutCreateFlags - { - eUpdateAfterBindPool = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, - ePushDescriptorKHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, - eHostOnlyPoolVALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE, - eUpdateAfterBindPoolEXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlagBits value ) - { - switch ( value ) - { - case DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool : return "UpdateAfterBindPool"; - case DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR : return "PushDescriptorKHR"; - case DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE : return "HostOnlyPoolVALVE"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorType - { - eSampler = VK_DESCRIPTOR_TYPE_SAMPLER, - eCombinedImageSampler = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - eSampledImage = VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, - eStorageImage = VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, - eUniformTexelBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, - eStorageTexelBuffer = VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, - eUniformBuffer = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, - eStorageBuffer = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, - eUniformBufferDynamic = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, - eStorageBufferDynamic = VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, - eInputAttachment = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, - eInlineUniformBlockEXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, - eAccelerationStructureKHR = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, - eAccelerationStructureNV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, - eMutableVALVE = VK_DESCRIPTOR_TYPE_MUTABLE_VALVE - }; - - VULKAN_HPP_INLINE std::string to_string( DescriptorType value ) - { - switch ( value ) - { - case DescriptorType::eSampler : return "Sampler"; - case DescriptorType::eCombinedImageSampler : return "CombinedImageSampler"; - case DescriptorType::eSampledImage : return "SampledImage"; - case DescriptorType::eStorageImage : return "StorageImage"; - case DescriptorType::eUniformTexelBuffer : return "UniformTexelBuffer"; - case DescriptorType::eStorageTexelBuffer : return "StorageTexelBuffer"; - case DescriptorType::eUniformBuffer : return "UniformBuffer"; - case DescriptorType::eStorageBuffer : return "StorageBuffer"; - case DescriptorType::eUniformBufferDynamic : return "UniformBufferDynamic"; - case DescriptorType::eStorageBufferDynamic : return "StorageBufferDynamic"; - case DescriptorType::eInputAttachment : return "InputAttachment"; - case DescriptorType::eInlineUniformBlockEXT : return "InlineUniformBlockEXT"; - case DescriptorType::eAccelerationStructureKHR : return "AccelerationStructureKHR"; - case DescriptorType::eAccelerationStructureNV : return "AccelerationStructureNV"; - case DescriptorType::eMutableVALVE : return "MutableVALVE"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DescriptorUpdateTemplateType - { - eDescriptorSet = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - ePushDescriptorsKHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - }; - using DescriptorUpdateTemplateTypeKHR = DescriptorUpdateTemplateType; - - VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateType value ) - { - switch ( value ) - { - case DescriptorUpdateTemplateType::eDescriptorSet : return "DescriptorSet"; - case DescriptorUpdateTemplateType::ePushDescriptorsKHR : return "PushDescriptorsKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlagBits ) - { - return "(void)"; - } - - enum class DeviceDiagnosticsConfigFlagBitsNV : VkDeviceDiagnosticsConfigFlagsNV - { - eEnableShaderDebugInfo = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV, - eEnableResourceTracking = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV, - eEnableAutomaticCheckpoints = VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagBitsNV value ) - { - switch ( value ) - { - case DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo : return "EnableShaderDebugInfo"; - case DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking : return "EnableResourceTracking"; - case DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints : return "EnableAutomaticCheckpoints"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceEventTypeEXT - { - eDisplayHotplug = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceEventTypeEXT value ) - { - switch ( value ) - { - case DeviceEventTypeEXT::eDisplayHotplug : return "DisplayHotplug"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceGroupPresentModeFlagBitsKHR : VkDeviceGroupPresentModeFlagsKHR - { - eLocal = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, - eRemote = VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, - eSum = VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, - eLocalMultiDevice = VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagBitsKHR value ) - { - switch ( value ) - { - case DeviceGroupPresentModeFlagBitsKHR::eLocal : return "Local"; - case DeviceGroupPresentModeFlagBitsKHR::eRemote : return "Remote"; - case DeviceGroupPresentModeFlagBitsKHR::eSum : return "Sum"; - case DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice : return "LocalMultiDevice"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceMemoryReportEventTypeEXT - { - eAllocate = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT, - eFree = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT, - eImport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT, - eUnimport = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT, - eAllocationFailed = VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportEventTypeEXT value ) - { - switch ( value ) - { - case DeviceMemoryReportEventTypeEXT::eAllocate : return "Allocate"; - case DeviceMemoryReportEventTypeEXT::eFree : return "Free"; - case DeviceMemoryReportEventTypeEXT::eImport : return "Import"; - case DeviceMemoryReportEventTypeEXT::eUnimport : return "Unimport"; - case DeviceMemoryReportEventTypeEXT::eAllocationFailed : return "AllocationFailed"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DeviceQueueCreateFlagBits : VkDeviceQueueCreateFlags - { - eProtected = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlagBits value ) - { - switch ( value ) - { - case DeviceQueueCreateFlagBits::eProtected : return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DiscardRectangleModeEXT - { - eInclusive = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT, - eExclusive = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DiscardRectangleModeEXT value ) - { - switch ( value ) - { - case DiscardRectangleModeEXT::eInclusive : return "Inclusive"; - case DiscardRectangleModeEXT::eExclusive : return "Exclusive"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DisplayEventTypeEXT - { - eFirstPixelOut = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DisplayEventTypeEXT value ) - { - switch ( value ) - { - case DisplayEventTypeEXT::eFirstPixelOut : return "FirstPixelOut"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DisplayPlaneAlphaFlagBitsKHR : VkDisplayPlaneAlphaFlagsKHR - { - eOpaque = VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR, - eGlobal = VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR, - ePerPixel = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR, - ePerPixelPremultiplied = VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagBitsKHR value ) - { - switch ( value ) - { - case DisplayPlaneAlphaFlagBitsKHR::eOpaque : return "Opaque"; - case DisplayPlaneAlphaFlagBitsKHR::eGlobal : return "Global"; - case DisplayPlaneAlphaFlagBitsKHR::ePerPixel : return "PerPixel"; - case DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied : return "PerPixelPremultiplied"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DisplayPowerStateEXT - { - eOff = VK_DISPLAY_POWER_STATE_OFF_EXT, - eSuspend = VK_DISPLAY_POWER_STATE_SUSPEND_EXT, - eOn = VK_DISPLAY_POWER_STATE_ON_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DisplayPowerStateEXT value ) - { - switch ( value ) - { - case DisplayPowerStateEXT::eOff : return "Off"; - case DisplayPowerStateEXT::eSuspend : return "Suspend"; - case DisplayPowerStateEXT::eOn : return "On"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DriverId - { - eAmdProprietary = VK_DRIVER_ID_AMD_PROPRIETARY, - eAmdOpenSource = VK_DRIVER_ID_AMD_OPEN_SOURCE, - eMesaRadv = VK_DRIVER_ID_MESA_RADV, - eNvidiaProprietary = VK_DRIVER_ID_NVIDIA_PROPRIETARY, - eIntelProprietaryWindows = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, - eIntelOpenSourceMESA = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, - eImaginationProprietary = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, - eQualcommProprietary = VK_DRIVER_ID_QUALCOMM_PROPRIETARY, - eArmProprietary = VK_DRIVER_ID_ARM_PROPRIETARY, - eGoogleSwiftshader = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, - eGgpProprietary = VK_DRIVER_ID_GGP_PROPRIETARY, - eBroadcomProprietary = VK_DRIVER_ID_BROADCOM_PROPRIETARY, - eMesaLlvmpipe = VK_DRIVER_ID_MESA_LLVMPIPE, - eMoltenvk = VK_DRIVER_ID_MOLTENVK, - eIntelOpenSourceMesa = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR - }; - using DriverIdKHR = DriverId; - - VULKAN_HPP_INLINE std::string to_string( DriverId value ) - { - switch ( value ) - { - case DriverId::eAmdProprietary : return "AmdProprietary"; - case DriverId::eAmdOpenSource : return "AmdOpenSource"; - case DriverId::eMesaRadv : return "MesaRadv"; - case DriverId::eNvidiaProprietary : return "NvidiaProprietary"; - case DriverId::eIntelProprietaryWindows : return "IntelProprietaryWindows"; - case DriverId::eIntelOpenSourceMESA : return "IntelOpenSourceMESA"; - case DriverId::eImaginationProprietary : return "ImaginationProprietary"; - case DriverId::eQualcommProprietary : return "QualcommProprietary"; - case DriverId::eArmProprietary : return "ArmProprietary"; - case DriverId::eGoogleSwiftshader : return "GoogleSwiftshader"; - case DriverId::eGgpProprietary : return "GgpProprietary"; - case DriverId::eBroadcomProprietary : return "BroadcomProprietary"; - case DriverId::eMesaLlvmpipe : return "MesaLlvmpipe"; - case DriverId::eMoltenvk : return "Moltenvk"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class DynamicState - { - eViewport = VK_DYNAMIC_STATE_VIEWPORT, - eScissor = VK_DYNAMIC_STATE_SCISSOR, - eLineWidth = VK_DYNAMIC_STATE_LINE_WIDTH, - eDepthBias = VK_DYNAMIC_STATE_DEPTH_BIAS, - eBlendConstants = VK_DYNAMIC_STATE_BLEND_CONSTANTS, - eDepthBounds = VK_DYNAMIC_STATE_DEPTH_BOUNDS, - eStencilCompareMask = VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK, - eStencilWriteMask = VK_DYNAMIC_STATE_STENCIL_WRITE_MASK, - eStencilReference = VK_DYNAMIC_STATE_STENCIL_REFERENCE, - eViewportWScalingNV = VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, - eDiscardRectangleEXT = VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, - eSampleLocationsEXT = VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, - eRayTracingPipelineStackSizeKHR = VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR, - eViewportShadingRatePaletteNV = VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, - eViewportCoarseSampleOrderNV = VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV, - eExclusiveScissorNV = VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, - eFragmentShadingRateKHR = VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR, - eLineStippleEXT = VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, - eCullModeEXT = VK_DYNAMIC_STATE_CULL_MODE_EXT, - eFrontFaceEXT = VK_DYNAMIC_STATE_FRONT_FACE_EXT, - ePrimitiveTopologyEXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT, - eViewportWithCountEXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, - eScissorWithCountEXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, - eVertexInputBindingStrideEXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT, - eDepthTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT, - eDepthWriteEnableEXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT, - eDepthCompareOpEXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT, - eDepthBoundsTestEnableEXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT, - eStencilTestEnableEXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT, - eStencilOpEXT = VK_DYNAMIC_STATE_STENCIL_OP_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( DynamicState value ) - { - switch ( value ) - { - case DynamicState::eViewport : return "Viewport"; - case DynamicState::eScissor : return "Scissor"; - case DynamicState::eLineWidth : return "LineWidth"; - case DynamicState::eDepthBias : return "DepthBias"; - case DynamicState::eBlendConstants : return "BlendConstants"; - case DynamicState::eDepthBounds : return "DepthBounds"; - case DynamicState::eStencilCompareMask : return "StencilCompareMask"; - case DynamicState::eStencilWriteMask : return "StencilWriteMask"; - case DynamicState::eStencilReference : return "StencilReference"; - case DynamicState::eViewportWScalingNV : return "ViewportWScalingNV"; - case DynamicState::eDiscardRectangleEXT : return "DiscardRectangleEXT"; - case DynamicState::eSampleLocationsEXT : return "SampleLocationsEXT"; - case DynamicState::eRayTracingPipelineStackSizeKHR : return "RayTracingPipelineStackSizeKHR"; - case DynamicState::eViewportShadingRatePaletteNV : return "ViewportShadingRatePaletteNV"; - case DynamicState::eViewportCoarseSampleOrderNV : return "ViewportCoarseSampleOrderNV"; - case DynamicState::eExclusiveScissorNV : return "ExclusiveScissorNV"; - case DynamicState::eFragmentShadingRateKHR : return "FragmentShadingRateKHR"; - case DynamicState::eLineStippleEXT : return "LineStippleEXT"; - case DynamicState::eCullModeEXT : return "CullModeEXT"; - case DynamicState::eFrontFaceEXT : return "FrontFaceEXT"; - case DynamicState::ePrimitiveTopologyEXT : return "PrimitiveTopologyEXT"; - case DynamicState::eViewportWithCountEXT : return "ViewportWithCountEXT"; - case DynamicState::eScissorWithCountEXT : return "ScissorWithCountEXT"; - case DynamicState::eVertexInputBindingStrideEXT : return "VertexInputBindingStrideEXT"; - case DynamicState::eDepthTestEnableEXT : return "DepthTestEnableEXT"; - case DynamicState::eDepthWriteEnableEXT : return "DepthWriteEnableEXT"; - case DynamicState::eDepthCompareOpEXT : return "DepthCompareOpEXT"; - case DynamicState::eDepthBoundsTestEnableEXT : return "DepthBoundsTestEnableEXT"; - case DynamicState::eStencilTestEnableEXT : return "StencilTestEnableEXT"; - case DynamicState::eStencilOpEXT : return "StencilOpEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalFenceFeatureFlagBits : VkExternalFenceFeatureFlags - { - eExportable = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, - eImportable = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT - }; - using ExternalFenceFeatureFlagBitsKHR = ExternalFenceFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlagBits value ) - { - switch ( value ) - { - case ExternalFenceFeatureFlagBits::eExportable : return "Exportable"; - case ExternalFenceFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalFenceHandleTypeFlagBits : VkExternalFenceHandleTypeFlags - { - eOpaqueFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, - eOpaqueWin32 = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, - eOpaqueWin32Kmt = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - eSyncFd = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT - }; - using ExternalFenceHandleTypeFlagBitsKHR = ExternalFenceHandleTypeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlagBits value ) - { - switch ( value ) - { - case ExternalFenceHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalFenceHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalFenceHandleTypeFlagBits::eSyncFd : return "SyncFd"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryFeatureFlagBits : VkExternalMemoryFeatureFlags - { - eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, - eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, - eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT - }; - using ExternalMemoryFeatureFlagBitsKHR = ExternalMemoryFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBits value ) - { - switch ( value ) - { - case ExternalMemoryFeatureFlagBits::eDedicatedOnly : return "DedicatedOnly"; - case ExternalMemoryFeatureFlagBits::eExportable : return "Exportable"; - case ExternalMemoryFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryFeatureFlagBitsNV : VkExternalMemoryFeatureFlagsNV - { - eDedicatedOnly = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV, - eExportable = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV, - eImportable = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagBitsNV value ) - { - switch ( value ) - { - case ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly : return "DedicatedOnly"; - case ExternalMemoryFeatureFlagBitsNV::eExportable : return "Exportable"; - case ExternalMemoryFeatureFlagBitsNV::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryHandleTypeFlagBits : VkExternalMemoryHandleTypeFlags - { - eOpaqueFd = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, - eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, - eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - eD3D11Texture = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, - eD3D11TextureKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, - eD3D12Heap = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, - eD3D12Resource = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, - eDmaBufEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT, - eAndroidHardwareBufferANDROID = VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, - eHostAllocationEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, - eHostMappedForeignMemoryEXT = VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT - }; - using ExternalMemoryHandleTypeFlagBitsKHR = ExternalMemoryHandleTypeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBits value ) - { - switch ( value ) - { - case ExternalMemoryHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalMemoryHandleTypeFlagBits::eD3D11Texture : return "D3D11Texture"; - case ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt : return "D3D11TextureKmt"; - case ExternalMemoryHandleTypeFlagBits::eD3D12Heap : return "D3D12Heap"; - case ExternalMemoryHandleTypeFlagBits::eD3D12Resource : return "D3D12Resource"; - case ExternalMemoryHandleTypeFlagBits::eDmaBufEXT : return "DmaBufEXT"; - case ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID : return "AndroidHardwareBufferANDROID"; - case ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT : return "HostAllocationEXT"; - case ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT : return "HostMappedForeignMemoryEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalMemoryHandleTypeFlagBitsNV : VkExternalMemoryHandleTypeFlagsNV - { - eOpaqueWin32 = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV, - eOpaqueWin32Kmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV, - eD3D11Image = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV, - eD3D11ImageKmt = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagBitsNV value ) - { - switch ( value ) - { - case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image : return "D3D11Image"; - case ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt : return "D3D11ImageKmt"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalSemaphoreFeatureFlagBits : VkExternalSemaphoreFeatureFlags - { - eExportable = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, - eImportable = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT - }; - using ExternalSemaphoreFeatureFlagBitsKHR = ExternalSemaphoreFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlagBits value ) - { - switch ( value ) - { - case ExternalSemaphoreFeatureFlagBits::eExportable : return "Exportable"; - case ExternalSemaphoreFeatureFlagBits::eImportable : return "Importable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ExternalSemaphoreHandleTypeFlagBits : VkExternalSemaphoreHandleTypeFlags - { - eOpaqueFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, - eOpaqueWin32 = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, - eOpaqueWin32Kmt = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - eD3D12Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, - eSyncFd = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT, - eD3D11Fence = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT - }; - using ExternalSemaphoreHandleTypeFlagBitsKHR = ExternalSemaphoreHandleTypeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlagBits value ) - { - switch ( value ) - { - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd : return "OpaqueFd"; - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 : return "OpaqueWin32"; - case ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt : return "OpaqueWin32Kmt"; - case ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence : return "D3D12Fence"; - case ExternalSemaphoreHandleTypeFlagBits::eSyncFd : return "SyncFd"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FenceCreateFlagBits : VkFenceCreateFlags - { - eSignaled = VK_FENCE_CREATE_SIGNALED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( FenceCreateFlagBits value ) - { - switch ( value ) - { - case FenceCreateFlagBits::eSignaled : return "Signaled"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FenceImportFlagBits : VkFenceImportFlags - { - eTemporary = VK_FENCE_IMPORT_TEMPORARY_BIT - }; - using FenceImportFlagBitsKHR = FenceImportFlagBits; - - VULKAN_HPP_INLINE std::string to_string( FenceImportFlagBits value ) - { - switch ( value ) - { - case FenceImportFlagBits::eTemporary : return "Temporary"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class Filter - { - eNearest = VK_FILTER_NEAREST, - eLinear = VK_FILTER_LINEAR, - eCubicIMG = VK_FILTER_CUBIC_IMG, - eCubicEXT = VK_FILTER_CUBIC_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( Filter value ) - { - switch ( value ) - { - case Filter::eNearest : return "Nearest"; - case Filter::eLinear : return "Linear"; - case Filter::eCubicIMG : return "CubicIMG"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class Format - { - eUndefined = VK_FORMAT_UNDEFINED, - eR4G4UnormPack8 = VK_FORMAT_R4G4_UNORM_PACK8, - eR4G4B4A4UnormPack16 = VK_FORMAT_R4G4B4A4_UNORM_PACK16, - eB4G4R4A4UnormPack16 = VK_FORMAT_B4G4R4A4_UNORM_PACK16, - eR5G6B5UnormPack16 = VK_FORMAT_R5G6B5_UNORM_PACK16, - eB5G6R5UnormPack16 = VK_FORMAT_B5G6R5_UNORM_PACK16, - eR5G5B5A1UnormPack16 = VK_FORMAT_R5G5B5A1_UNORM_PACK16, - eB5G5R5A1UnormPack16 = VK_FORMAT_B5G5R5A1_UNORM_PACK16, - eA1R5G5B5UnormPack16 = VK_FORMAT_A1R5G5B5_UNORM_PACK16, - eR8Unorm = VK_FORMAT_R8_UNORM, - eR8Snorm = VK_FORMAT_R8_SNORM, - eR8Uscaled = VK_FORMAT_R8_USCALED, - eR8Sscaled = VK_FORMAT_R8_SSCALED, - eR8Uint = VK_FORMAT_R8_UINT, - eR8Sint = VK_FORMAT_R8_SINT, - eR8Srgb = VK_FORMAT_R8_SRGB, - eR8G8Unorm = VK_FORMAT_R8G8_UNORM, - eR8G8Snorm = VK_FORMAT_R8G8_SNORM, - eR8G8Uscaled = VK_FORMAT_R8G8_USCALED, - eR8G8Sscaled = VK_FORMAT_R8G8_SSCALED, - eR8G8Uint = VK_FORMAT_R8G8_UINT, - eR8G8Sint = VK_FORMAT_R8G8_SINT, - eR8G8Srgb = VK_FORMAT_R8G8_SRGB, - eR8G8B8Unorm = VK_FORMAT_R8G8B8_UNORM, - eR8G8B8Snorm = VK_FORMAT_R8G8B8_SNORM, - eR8G8B8Uscaled = VK_FORMAT_R8G8B8_USCALED, - eR8G8B8Sscaled = VK_FORMAT_R8G8B8_SSCALED, - eR8G8B8Uint = VK_FORMAT_R8G8B8_UINT, - eR8G8B8Sint = VK_FORMAT_R8G8B8_SINT, - eR8G8B8Srgb = VK_FORMAT_R8G8B8_SRGB, - eB8G8R8Unorm = VK_FORMAT_B8G8R8_UNORM, - eB8G8R8Snorm = VK_FORMAT_B8G8R8_SNORM, - eB8G8R8Uscaled = VK_FORMAT_B8G8R8_USCALED, - eB8G8R8Sscaled = VK_FORMAT_B8G8R8_SSCALED, - eB8G8R8Uint = VK_FORMAT_B8G8R8_UINT, - eB8G8R8Sint = VK_FORMAT_B8G8R8_SINT, - eB8G8R8Srgb = VK_FORMAT_B8G8R8_SRGB, - eR8G8B8A8Unorm = VK_FORMAT_R8G8B8A8_UNORM, - eR8G8B8A8Snorm = VK_FORMAT_R8G8B8A8_SNORM, - eR8G8B8A8Uscaled = VK_FORMAT_R8G8B8A8_USCALED, - eR8G8B8A8Sscaled = VK_FORMAT_R8G8B8A8_SSCALED, - eR8G8B8A8Uint = VK_FORMAT_R8G8B8A8_UINT, - eR8G8B8A8Sint = VK_FORMAT_R8G8B8A8_SINT, - eR8G8B8A8Srgb = VK_FORMAT_R8G8B8A8_SRGB, - eB8G8R8A8Unorm = VK_FORMAT_B8G8R8A8_UNORM, - eB8G8R8A8Snorm = VK_FORMAT_B8G8R8A8_SNORM, - eB8G8R8A8Uscaled = VK_FORMAT_B8G8R8A8_USCALED, - eB8G8R8A8Sscaled = VK_FORMAT_B8G8R8A8_SSCALED, - eB8G8R8A8Uint = VK_FORMAT_B8G8R8A8_UINT, - eB8G8R8A8Sint = VK_FORMAT_B8G8R8A8_SINT, - eB8G8R8A8Srgb = VK_FORMAT_B8G8R8A8_SRGB, - eA8B8G8R8UnormPack32 = VK_FORMAT_A8B8G8R8_UNORM_PACK32, - eA8B8G8R8SnormPack32 = VK_FORMAT_A8B8G8R8_SNORM_PACK32, - eA8B8G8R8UscaledPack32 = VK_FORMAT_A8B8G8R8_USCALED_PACK32, - eA8B8G8R8SscaledPack32 = VK_FORMAT_A8B8G8R8_SSCALED_PACK32, - eA8B8G8R8UintPack32 = VK_FORMAT_A8B8G8R8_UINT_PACK32, - eA8B8G8R8SintPack32 = VK_FORMAT_A8B8G8R8_SINT_PACK32, - eA8B8G8R8SrgbPack32 = VK_FORMAT_A8B8G8R8_SRGB_PACK32, - eA2R10G10B10UnormPack32 = VK_FORMAT_A2R10G10B10_UNORM_PACK32, - eA2R10G10B10SnormPack32 = VK_FORMAT_A2R10G10B10_SNORM_PACK32, - eA2R10G10B10UscaledPack32 = VK_FORMAT_A2R10G10B10_USCALED_PACK32, - eA2R10G10B10SscaledPack32 = VK_FORMAT_A2R10G10B10_SSCALED_PACK32, - eA2R10G10B10UintPack32 = VK_FORMAT_A2R10G10B10_UINT_PACK32, - eA2R10G10B10SintPack32 = VK_FORMAT_A2R10G10B10_SINT_PACK32, - eA2B10G10R10UnormPack32 = VK_FORMAT_A2B10G10R10_UNORM_PACK32, - eA2B10G10R10SnormPack32 = VK_FORMAT_A2B10G10R10_SNORM_PACK32, - eA2B10G10R10UscaledPack32 = VK_FORMAT_A2B10G10R10_USCALED_PACK32, - eA2B10G10R10SscaledPack32 = VK_FORMAT_A2B10G10R10_SSCALED_PACK32, - eA2B10G10R10UintPack32 = VK_FORMAT_A2B10G10R10_UINT_PACK32, - eA2B10G10R10SintPack32 = VK_FORMAT_A2B10G10R10_SINT_PACK32, - eR16Unorm = VK_FORMAT_R16_UNORM, - eR16Snorm = VK_FORMAT_R16_SNORM, - eR16Uscaled = VK_FORMAT_R16_USCALED, - eR16Sscaled = VK_FORMAT_R16_SSCALED, - eR16Uint = VK_FORMAT_R16_UINT, - eR16Sint = VK_FORMAT_R16_SINT, - eR16Sfloat = VK_FORMAT_R16_SFLOAT, - eR16G16Unorm = VK_FORMAT_R16G16_UNORM, - eR16G16Snorm = VK_FORMAT_R16G16_SNORM, - eR16G16Uscaled = VK_FORMAT_R16G16_USCALED, - eR16G16Sscaled = VK_FORMAT_R16G16_SSCALED, - eR16G16Uint = VK_FORMAT_R16G16_UINT, - eR16G16Sint = VK_FORMAT_R16G16_SINT, - eR16G16Sfloat = VK_FORMAT_R16G16_SFLOAT, - eR16G16B16Unorm = VK_FORMAT_R16G16B16_UNORM, - eR16G16B16Snorm = VK_FORMAT_R16G16B16_SNORM, - eR16G16B16Uscaled = VK_FORMAT_R16G16B16_USCALED, - eR16G16B16Sscaled = VK_FORMAT_R16G16B16_SSCALED, - eR16G16B16Uint = VK_FORMAT_R16G16B16_UINT, - eR16G16B16Sint = VK_FORMAT_R16G16B16_SINT, - eR16G16B16Sfloat = VK_FORMAT_R16G16B16_SFLOAT, - eR16G16B16A16Unorm = VK_FORMAT_R16G16B16A16_UNORM, - eR16G16B16A16Snorm = VK_FORMAT_R16G16B16A16_SNORM, - eR16G16B16A16Uscaled = VK_FORMAT_R16G16B16A16_USCALED, - eR16G16B16A16Sscaled = VK_FORMAT_R16G16B16A16_SSCALED, - eR16G16B16A16Uint = VK_FORMAT_R16G16B16A16_UINT, - eR16G16B16A16Sint = VK_FORMAT_R16G16B16A16_SINT, - eR16G16B16A16Sfloat = VK_FORMAT_R16G16B16A16_SFLOAT, - eR32Uint = VK_FORMAT_R32_UINT, - eR32Sint = VK_FORMAT_R32_SINT, - eR32Sfloat = VK_FORMAT_R32_SFLOAT, - eR32G32Uint = VK_FORMAT_R32G32_UINT, - eR32G32Sint = VK_FORMAT_R32G32_SINT, - eR32G32Sfloat = VK_FORMAT_R32G32_SFLOAT, - eR32G32B32Uint = VK_FORMAT_R32G32B32_UINT, - eR32G32B32Sint = VK_FORMAT_R32G32B32_SINT, - eR32G32B32Sfloat = VK_FORMAT_R32G32B32_SFLOAT, - eR32G32B32A32Uint = VK_FORMAT_R32G32B32A32_UINT, - eR32G32B32A32Sint = VK_FORMAT_R32G32B32A32_SINT, - eR32G32B32A32Sfloat = VK_FORMAT_R32G32B32A32_SFLOAT, - eR64Uint = VK_FORMAT_R64_UINT, - eR64Sint = VK_FORMAT_R64_SINT, - eR64Sfloat = VK_FORMAT_R64_SFLOAT, - eR64G64Uint = VK_FORMAT_R64G64_UINT, - eR64G64Sint = VK_FORMAT_R64G64_SINT, - eR64G64Sfloat = VK_FORMAT_R64G64_SFLOAT, - eR64G64B64Uint = VK_FORMAT_R64G64B64_UINT, - eR64G64B64Sint = VK_FORMAT_R64G64B64_SINT, - eR64G64B64Sfloat = VK_FORMAT_R64G64B64_SFLOAT, - eR64G64B64A64Uint = VK_FORMAT_R64G64B64A64_UINT, - eR64G64B64A64Sint = VK_FORMAT_R64G64B64A64_SINT, - eR64G64B64A64Sfloat = VK_FORMAT_R64G64B64A64_SFLOAT, - eB10G11R11UfloatPack32 = VK_FORMAT_B10G11R11_UFLOAT_PACK32, - eE5B9G9R9UfloatPack32 = VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, - eD16Unorm = VK_FORMAT_D16_UNORM, - eX8D24UnormPack32 = VK_FORMAT_X8_D24_UNORM_PACK32, - eD32Sfloat = VK_FORMAT_D32_SFLOAT, - eS8Uint = VK_FORMAT_S8_UINT, - eD16UnormS8Uint = VK_FORMAT_D16_UNORM_S8_UINT, - eD24UnormS8Uint = VK_FORMAT_D24_UNORM_S8_UINT, - eD32SfloatS8Uint = VK_FORMAT_D32_SFLOAT_S8_UINT, - eBc1RgbUnormBlock = VK_FORMAT_BC1_RGB_UNORM_BLOCK, - eBc1RgbSrgbBlock = VK_FORMAT_BC1_RGB_SRGB_BLOCK, - eBc1RgbaUnormBlock = VK_FORMAT_BC1_RGBA_UNORM_BLOCK, - eBc1RgbaSrgbBlock = VK_FORMAT_BC1_RGBA_SRGB_BLOCK, - eBc2UnormBlock = VK_FORMAT_BC2_UNORM_BLOCK, - eBc2SrgbBlock = VK_FORMAT_BC2_SRGB_BLOCK, - eBc3UnormBlock = VK_FORMAT_BC3_UNORM_BLOCK, - eBc3SrgbBlock = VK_FORMAT_BC3_SRGB_BLOCK, - eBc4UnormBlock = VK_FORMAT_BC4_UNORM_BLOCK, - eBc4SnormBlock = VK_FORMAT_BC4_SNORM_BLOCK, - eBc5UnormBlock = VK_FORMAT_BC5_UNORM_BLOCK, - eBc5SnormBlock = VK_FORMAT_BC5_SNORM_BLOCK, - eBc6HUfloatBlock = VK_FORMAT_BC6H_UFLOAT_BLOCK, - eBc6HSfloatBlock = VK_FORMAT_BC6H_SFLOAT_BLOCK, - eBc7UnormBlock = VK_FORMAT_BC7_UNORM_BLOCK, - eBc7SrgbBlock = VK_FORMAT_BC7_SRGB_BLOCK, - eEtc2R8G8B8UnormBlock = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK, - eEtc2R8G8B8SrgbBlock = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK, - eEtc2R8G8B8A1UnormBlock = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK, - eEtc2R8G8B8A1SrgbBlock = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK, - eEtc2R8G8B8A8UnormBlock = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK, - eEtc2R8G8B8A8SrgbBlock = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK, - eEacR11UnormBlock = VK_FORMAT_EAC_R11_UNORM_BLOCK, - eEacR11SnormBlock = VK_FORMAT_EAC_R11_SNORM_BLOCK, - eEacR11G11UnormBlock = VK_FORMAT_EAC_R11G11_UNORM_BLOCK, - eEacR11G11SnormBlock = VK_FORMAT_EAC_R11G11_SNORM_BLOCK, - eAstc4x4UnormBlock = VK_FORMAT_ASTC_4x4_UNORM_BLOCK, - eAstc4x4SrgbBlock = VK_FORMAT_ASTC_4x4_SRGB_BLOCK, - eAstc5x4UnormBlock = VK_FORMAT_ASTC_5x4_UNORM_BLOCK, - eAstc5x4SrgbBlock = VK_FORMAT_ASTC_5x4_SRGB_BLOCK, - eAstc5x5UnormBlock = VK_FORMAT_ASTC_5x5_UNORM_BLOCK, - eAstc5x5SrgbBlock = VK_FORMAT_ASTC_5x5_SRGB_BLOCK, - eAstc6x5UnormBlock = VK_FORMAT_ASTC_6x5_UNORM_BLOCK, - eAstc6x5SrgbBlock = VK_FORMAT_ASTC_6x5_SRGB_BLOCK, - eAstc6x6UnormBlock = VK_FORMAT_ASTC_6x6_UNORM_BLOCK, - eAstc6x6SrgbBlock = VK_FORMAT_ASTC_6x6_SRGB_BLOCK, - eAstc8x5UnormBlock = VK_FORMAT_ASTC_8x5_UNORM_BLOCK, - eAstc8x5SrgbBlock = VK_FORMAT_ASTC_8x5_SRGB_BLOCK, - eAstc8x6UnormBlock = VK_FORMAT_ASTC_8x6_UNORM_BLOCK, - eAstc8x6SrgbBlock = VK_FORMAT_ASTC_8x6_SRGB_BLOCK, - eAstc8x8UnormBlock = VK_FORMAT_ASTC_8x8_UNORM_BLOCK, - eAstc8x8SrgbBlock = VK_FORMAT_ASTC_8x8_SRGB_BLOCK, - eAstc10x5UnormBlock = VK_FORMAT_ASTC_10x5_UNORM_BLOCK, - eAstc10x5SrgbBlock = VK_FORMAT_ASTC_10x5_SRGB_BLOCK, - eAstc10x6UnormBlock = VK_FORMAT_ASTC_10x6_UNORM_BLOCK, - eAstc10x6SrgbBlock = VK_FORMAT_ASTC_10x6_SRGB_BLOCK, - eAstc10x8UnormBlock = VK_FORMAT_ASTC_10x8_UNORM_BLOCK, - eAstc10x8SrgbBlock = VK_FORMAT_ASTC_10x8_SRGB_BLOCK, - eAstc10x10UnormBlock = VK_FORMAT_ASTC_10x10_UNORM_BLOCK, - eAstc10x10SrgbBlock = VK_FORMAT_ASTC_10x10_SRGB_BLOCK, - eAstc12x10UnormBlock = VK_FORMAT_ASTC_12x10_UNORM_BLOCK, - eAstc12x10SrgbBlock = VK_FORMAT_ASTC_12x10_SRGB_BLOCK, - eAstc12x12UnormBlock = VK_FORMAT_ASTC_12x12_UNORM_BLOCK, - eAstc12x12SrgbBlock = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, - eG8B8G8R8422Unorm = VK_FORMAT_G8B8G8R8_422_UNORM, - eB8G8R8G8422Unorm = VK_FORMAT_B8G8R8G8_422_UNORM, - eG8B8R83Plane420Unorm = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, - eG8B8R82Plane420Unorm = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, - eG8B8R83Plane422Unorm = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, - eG8B8R82Plane422Unorm = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, - eG8B8R83Plane444Unorm = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, - eR10X6UnormPack16 = VK_FORMAT_R10X6_UNORM_PACK16, - eR10X6G10X6Unorm2Pack16 = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, - eR10X6G10X6B10X6A10X6Unorm4Pack16 = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, - eG10X6B10X6G10X6R10X6422Unorm4Pack16 = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, - eB10X6G10X6R10X6G10X6422Unorm4Pack16 = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, - eG10X6B10X6R10X63Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, - eG10X6B10X6R10X62Plane420Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, - eG10X6B10X6R10X63Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, - eG10X6B10X6R10X62Plane422Unorm3Pack16 = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, - eG10X6B10X6R10X63Plane444Unorm3Pack16 = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, - eR12X4UnormPack16 = VK_FORMAT_R12X4_UNORM_PACK16, - eR12X4G12X4Unorm2Pack16 = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, - eR12X4G12X4B12X4A12X4Unorm4Pack16 = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, - eG12X4B12X4G12X4R12X4422Unorm4Pack16 = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, - eB12X4G12X4R12X4G12X4422Unorm4Pack16 = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, - eG12X4B12X4R12X43Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, - eG12X4B12X4R12X42Plane420Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, - eG12X4B12X4R12X43Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, - eG12X4B12X4R12X42Plane422Unorm3Pack16 = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, - eG12X4B12X4R12X43Plane444Unorm3Pack16 = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, - eG16B16G16R16422Unorm = VK_FORMAT_G16B16G16R16_422_UNORM, - eB16G16R16G16422Unorm = VK_FORMAT_B16G16R16G16_422_UNORM, - eG16B16R163Plane420Unorm = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, - eG16B16R162Plane420Unorm = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, - eG16B16R163Plane422Unorm = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, - eG16B16R162Plane422Unorm = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, - eG16B16R163Plane444Unorm = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, - ePvrtc12BppUnormBlockIMG = VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG, - ePvrtc14BppUnormBlockIMG = VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG, - ePvrtc22BppUnormBlockIMG = VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG, - ePvrtc24BppUnormBlockIMG = VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG, - ePvrtc12BppSrgbBlockIMG = VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG, - ePvrtc14BppSrgbBlockIMG = VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG, - ePvrtc22BppSrgbBlockIMG = VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG, - ePvrtc24BppSrgbBlockIMG = VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG, - eAstc4x4SfloatBlockEXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT, - eAstc5x4SfloatBlockEXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT, - eAstc5x5SfloatBlockEXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT, - eAstc6x5SfloatBlockEXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT, - eAstc6x6SfloatBlockEXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT, - eAstc8x5SfloatBlockEXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT, - eAstc8x6SfloatBlockEXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT, - eAstc8x8SfloatBlockEXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT, - eAstc10x5SfloatBlockEXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT, - eAstc10x6SfloatBlockEXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT, - eAstc10x8SfloatBlockEXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT, - eAstc10x10SfloatBlockEXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT, - eAstc12x10SfloatBlockEXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT, - eAstc12x12SfloatBlockEXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT, - eA4R4G4B4UnormPack16EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT, - eA4B4G4R4UnormPack16EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT, - eB10X6G10X6R10X6G10X6422Unorm4Pack16KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR, - eB12X4G12X4R12X4G12X4422Unorm4Pack16KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR, - eB16G16R16G16422UnormKHR = VK_FORMAT_B16G16R16G16_422_UNORM_KHR, - eB8G8R8G8422UnormKHR = VK_FORMAT_B8G8R8G8_422_UNORM_KHR, - eG10X6B10X6G10X6R10X6422Unorm4Pack16KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR, - eG10X6B10X6R10X62Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR, - eG10X6B10X6R10X62Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR, - eG10X6B10X6R10X63Plane420Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR, - eG10X6B10X6R10X63Plane422Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR, - eG10X6B10X6R10X63Plane444Unorm3Pack16KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR, - eG12X4B12X4G12X4R12X4422Unorm4Pack16KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR, - eG12X4B12X4R12X42Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR, - eG12X4B12X4R12X42Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR, - eG12X4B12X4R12X43Plane420Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR, - eG12X4B12X4R12X43Plane422Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR, - eG12X4B12X4R12X43Plane444Unorm3Pack16KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR, - eG16B16G16R16422UnormKHR = VK_FORMAT_G16B16G16R16_422_UNORM_KHR, - eG16B16R162Plane420UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR, - eG16B16R162Plane422UnormKHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR, - eG16B16R163Plane420UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR, - eG16B16R163Plane422UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR, - eG16B16R163Plane444UnormKHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR, - eG8B8G8R8422UnormKHR = VK_FORMAT_G8B8G8R8_422_UNORM_KHR, - eG8B8R82Plane420UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR, - eG8B8R82Plane422UnormKHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR, - eG8B8R83Plane420UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR, - eG8B8R83Plane422UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR, - eG8B8R83Plane444UnormKHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR, - eR10X6G10X6B10X6A10X6Unorm4Pack16KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR, - eR10X6G10X6Unorm2Pack16KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR, - eR10X6UnormPack16KHR = VK_FORMAT_R10X6_UNORM_PACK16_KHR, - eR12X4G12X4B12X4A12X4Unorm4Pack16KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR, - eR12X4G12X4Unorm2Pack16KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR, - eR12X4UnormPack16KHR = VK_FORMAT_R12X4_UNORM_PACK16_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( Format value ) - { - switch ( value ) - { - case Format::eUndefined : return "Undefined"; - case Format::eR4G4UnormPack8 : return "R4G4UnormPack8"; - case Format::eR4G4B4A4UnormPack16 : return "R4G4B4A4UnormPack16"; - case Format::eB4G4R4A4UnormPack16 : return "B4G4R4A4UnormPack16"; - case Format::eR5G6B5UnormPack16 : return "R5G6B5UnormPack16"; - case Format::eB5G6R5UnormPack16 : return "B5G6R5UnormPack16"; - case Format::eR5G5B5A1UnormPack16 : return "R5G5B5A1UnormPack16"; - case Format::eB5G5R5A1UnormPack16 : return "B5G5R5A1UnormPack16"; - case Format::eA1R5G5B5UnormPack16 : return "A1R5G5B5UnormPack16"; - case Format::eR8Unorm : return "R8Unorm"; - case Format::eR8Snorm : return "R8Snorm"; - case Format::eR8Uscaled : return "R8Uscaled"; - case Format::eR8Sscaled : return "R8Sscaled"; - case Format::eR8Uint : return "R8Uint"; - case Format::eR8Sint : return "R8Sint"; - case Format::eR8Srgb : return "R8Srgb"; - case Format::eR8G8Unorm : return "R8G8Unorm"; - case Format::eR8G8Snorm : return "R8G8Snorm"; - case Format::eR8G8Uscaled : return "R8G8Uscaled"; - case Format::eR8G8Sscaled : return "R8G8Sscaled"; - case Format::eR8G8Uint : return "R8G8Uint"; - case Format::eR8G8Sint : return "R8G8Sint"; - case Format::eR8G8Srgb : return "R8G8Srgb"; - case Format::eR8G8B8Unorm : return "R8G8B8Unorm"; - case Format::eR8G8B8Snorm : return "R8G8B8Snorm"; - case Format::eR8G8B8Uscaled : return "R8G8B8Uscaled"; - case Format::eR8G8B8Sscaled : return "R8G8B8Sscaled"; - case Format::eR8G8B8Uint : return "R8G8B8Uint"; - case Format::eR8G8B8Sint : return "R8G8B8Sint"; - case Format::eR8G8B8Srgb : return "R8G8B8Srgb"; - case Format::eB8G8R8Unorm : return "B8G8R8Unorm"; - case Format::eB8G8R8Snorm : return "B8G8R8Snorm"; - case Format::eB8G8R8Uscaled : return "B8G8R8Uscaled"; - case Format::eB8G8R8Sscaled : return "B8G8R8Sscaled"; - case Format::eB8G8R8Uint : return "B8G8R8Uint"; - case Format::eB8G8R8Sint : return "B8G8R8Sint"; - case Format::eB8G8R8Srgb : return "B8G8R8Srgb"; - case Format::eR8G8B8A8Unorm : return "R8G8B8A8Unorm"; - case Format::eR8G8B8A8Snorm : return "R8G8B8A8Snorm"; - case Format::eR8G8B8A8Uscaled : return "R8G8B8A8Uscaled"; - case Format::eR8G8B8A8Sscaled : return "R8G8B8A8Sscaled"; - case Format::eR8G8B8A8Uint : return "R8G8B8A8Uint"; - case Format::eR8G8B8A8Sint : return "R8G8B8A8Sint"; - case Format::eR8G8B8A8Srgb : return "R8G8B8A8Srgb"; - case Format::eB8G8R8A8Unorm : return "B8G8R8A8Unorm"; - case Format::eB8G8R8A8Snorm : return "B8G8R8A8Snorm"; - case Format::eB8G8R8A8Uscaled : return "B8G8R8A8Uscaled"; - case Format::eB8G8R8A8Sscaled : return "B8G8R8A8Sscaled"; - case Format::eB8G8R8A8Uint : return "B8G8R8A8Uint"; - case Format::eB8G8R8A8Sint : return "B8G8R8A8Sint"; - case Format::eB8G8R8A8Srgb : return "B8G8R8A8Srgb"; - case Format::eA8B8G8R8UnormPack32 : return "A8B8G8R8UnormPack32"; - case Format::eA8B8G8R8SnormPack32 : return "A8B8G8R8SnormPack32"; - case Format::eA8B8G8R8UscaledPack32 : return "A8B8G8R8UscaledPack32"; - case Format::eA8B8G8R8SscaledPack32 : return "A8B8G8R8SscaledPack32"; - case Format::eA8B8G8R8UintPack32 : return "A8B8G8R8UintPack32"; - case Format::eA8B8G8R8SintPack32 : return "A8B8G8R8SintPack32"; - case Format::eA8B8G8R8SrgbPack32 : return "A8B8G8R8SrgbPack32"; - case Format::eA2R10G10B10UnormPack32 : return "A2R10G10B10UnormPack32"; - case Format::eA2R10G10B10SnormPack32 : return "A2R10G10B10SnormPack32"; - case Format::eA2R10G10B10UscaledPack32 : return "A2R10G10B10UscaledPack32"; - case Format::eA2R10G10B10SscaledPack32 : return "A2R10G10B10SscaledPack32"; - case Format::eA2R10G10B10UintPack32 : return "A2R10G10B10UintPack32"; - case Format::eA2R10G10B10SintPack32 : return "A2R10G10B10SintPack32"; - case Format::eA2B10G10R10UnormPack32 : return "A2B10G10R10UnormPack32"; - case Format::eA2B10G10R10SnormPack32 : return "A2B10G10R10SnormPack32"; - case Format::eA2B10G10R10UscaledPack32 : return "A2B10G10R10UscaledPack32"; - case Format::eA2B10G10R10SscaledPack32 : return "A2B10G10R10SscaledPack32"; - case Format::eA2B10G10R10UintPack32 : return "A2B10G10R10UintPack32"; - case Format::eA2B10G10R10SintPack32 : return "A2B10G10R10SintPack32"; - case Format::eR16Unorm : return "R16Unorm"; - case Format::eR16Snorm : return "R16Snorm"; - case Format::eR16Uscaled : return "R16Uscaled"; - case Format::eR16Sscaled : return "R16Sscaled"; - case Format::eR16Uint : return "R16Uint"; - case Format::eR16Sint : return "R16Sint"; - case Format::eR16Sfloat : return "R16Sfloat"; - case Format::eR16G16Unorm : return "R16G16Unorm"; - case Format::eR16G16Snorm : return "R16G16Snorm"; - case Format::eR16G16Uscaled : return "R16G16Uscaled"; - case Format::eR16G16Sscaled : return "R16G16Sscaled"; - case Format::eR16G16Uint : return "R16G16Uint"; - case Format::eR16G16Sint : return "R16G16Sint"; - case Format::eR16G16Sfloat : return "R16G16Sfloat"; - case Format::eR16G16B16Unorm : return "R16G16B16Unorm"; - case Format::eR16G16B16Snorm : return "R16G16B16Snorm"; - case Format::eR16G16B16Uscaled : return "R16G16B16Uscaled"; - case Format::eR16G16B16Sscaled : return "R16G16B16Sscaled"; - case Format::eR16G16B16Uint : return "R16G16B16Uint"; - case Format::eR16G16B16Sint : return "R16G16B16Sint"; - case Format::eR16G16B16Sfloat : return "R16G16B16Sfloat"; - case Format::eR16G16B16A16Unorm : return "R16G16B16A16Unorm"; - case Format::eR16G16B16A16Snorm : return "R16G16B16A16Snorm"; - case Format::eR16G16B16A16Uscaled : return "R16G16B16A16Uscaled"; - case Format::eR16G16B16A16Sscaled : return "R16G16B16A16Sscaled"; - case Format::eR16G16B16A16Uint : return "R16G16B16A16Uint"; - case Format::eR16G16B16A16Sint : return "R16G16B16A16Sint"; - case Format::eR16G16B16A16Sfloat : return "R16G16B16A16Sfloat"; - case Format::eR32Uint : return "R32Uint"; - case Format::eR32Sint : return "R32Sint"; - case Format::eR32Sfloat : return "R32Sfloat"; - case Format::eR32G32Uint : return "R32G32Uint"; - case Format::eR32G32Sint : return "R32G32Sint"; - case Format::eR32G32Sfloat : return "R32G32Sfloat"; - case Format::eR32G32B32Uint : return "R32G32B32Uint"; - case Format::eR32G32B32Sint : return "R32G32B32Sint"; - case Format::eR32G32B32Sfloat : return "R32G32B32Sfloat"; - case Format::eR32G32B32A32Uint : return "R32G32B32A32Uint"; - case Format::eR32G32B32A32Sint : return "R32G32B32A32Sint"; - case Format::eR32G32B32A32Sfloat : return "R32G32B32A32Sfloat"; - case Format::eR64Uint : return "R64Uint"; - case Format::eR64Sint : return "R64Sint"; - case Format::eR64Sfloat : return "R64Sfloat"; - case Format::eR64G64Uint : return "R64G64Uint"; - case Format::eR64G64Sint : return "R64G64Sint"; - case Format::eR64G64Sfloat : return "R64G64Sfloat"; - case Format::eR64G64B64Uint : return "R64G64B64Uint"; - case Format::eR64G64B64Sint : return "R64G64B64Sint"; - case Format::eR64G64B64Sfloat : return "R64G64B64Sfloat"; - case Format::eR64G64B64A64Uint : return "R64G64B64A64Uint"; - case Format::eR64G64B64A64Sint : return "R64G64B64A64Sint"; - case Format::eR64G64B64A64Sfloat : return "R64G64B64A64Sfloat"; - case Format::eB10G11R11UfloatPack32 : return "B10G11R11UfloatPack32"; - case Format::eE5B9G9R9UfloatPack32 : return "E5B9G9R9UfloatPack32"; - case Format::eD16Unorm : return "D16Unorm"; - case Format::eX8D24UnormPack32 : return "X8D24UnormPack32"; - case Format::eD32Sfloat : return "D32Sfloat"; - case Format::eS8Uint : return "S8Uint"; - case Format::eD16UnormS8Uint : return "D16UnormS8Uint"; - case Format::eD24UnormS8Uint : return "D24UnormS8Uint"; - case Format::eD32SfloatS8Uint : return "D32SfloatS8Uint"; - case Format::eBc1RgbUnormBlock : return "Bc1RgbUnormBlock"; - case Format::eBc1RgbSrgbBlock : return "Bc1RgbSrgbBlock"; - case Format::eBc1RgbaUnormBlock : return "Bc1RgbaUnormBlock"; - case Format::eBc1RgbaSrgbBlock : return "Bc1RgbaSrgbBlock"; - case Format::eBc2UnormBlock : return "Bc2UnormBlock"; - case Format::eBc2SrgbBlock : return "Bc2SrgbBlock"; - case Format::eBc3UnormBlock : return "Bc3UnormBlock"; - case Format::eBc3SrgbBlock : return "Bc3SrgbBlock"; - case Format::eBc4UnormBlock : return "Bc4UnormBlock"; - case Format::eBc4SnormBlock : return "Bc4SnormBlock"; - case Format::eBc5UnormBlock : return "Bc5UnormBlock"; - case Format::eBc5SnormBlock : return "Bc5SnormBlock"; - case Format::eBc6HUfloatBlock : return "Bc6HUfloatBlock"; - case Format::eBc6HSfloatBlock : return "Bc6HSfloatBlock"; - case Format::eBc7UnormBlock : return "Bc7UnormBlock"; - case Format::eBc7SrgbBlock : return "Bc7SrgbBlock"; - case Format::eEtc2R8G8B8UnormBlock : return "Etc2R8G8B8UnormBlock"; - case Format::eEtc2R8G8B8SrgbBlock : return "Etc2R8G8B8SrgbBlock"; - case Format::eEtc2R8G8B8A1UnormBlock : return "Etc2R8G8B8A1UnormBlock"; - case Format::eEtc2R8G8B8A1SrgbBlock : return "Etc2R8G8B8A1SrgbBlock"; - case Format::eEtc2R8G8B8A8UnormBlock : return "Etc2R8G8B8A8UnormBlock"; - case Format::eEtc2R8G8B8A8SrgbBlock : return "Etc2R8G8B8A8SrgbBlock"; - case Format::eEacR11UnormBlock : return "EacR11UnormBlock"; - case Format::eEacR11SnormBlock : return "EacR11SnormBlock"; - case Format::eEacR11G11UnormBlock : return "EacR11G11UnormBlock"; - case Format::eEacR11G11SnormBlock : return "EacR11G11SnormBlock"; - case Format::eAstc4x4UnormBlock : return "Astc4x4UnormBlock"; - case Format::eAstc4x4SrgbBlock : return "Astc4x4SrgbBlock"; - case Format::eAstc5x4UnormBlock : return "Astc5x4UnormBlock"; - case Format::eAstc5x4SrgbBlock : return "Astc5x4SrgbBlock"; - case Format::eAstc5x5UnormBlock : return "Astc5x5UnormBlock"; - case Format::eAstc5x5SrgbBlock : return "Astc5x5SrgbBlock"; - case Format::eAstc6x5UnormBlock : return "Astc6x5UnormBlock"; - case Format::eAstc6x5SrgbBlock : return "Astc6x5SrgbBlock"; - case Format::eAstc6x6UnormBlock : return "Astc6x6UnormBlock"; - case Format::eAstc6x6SrgbBlock : return "Astc6x6SrgbBlock"; - case Format::eAstc8x5UnormBlock : return "Astc8x5UnormBlock"; - case Format::eAstc8x5SrgbBlock : return "Astc8x5SrgbBlock"; - case Format::eAstc8x6UnormBlock : return "Astc8x6UnormBlock"; - case Format::eAstc8x6SrgbBlock : return "Astc8x6SrgbBlock"; - case Format::eAstc8x8UnormBlock : return "Astc8x8UnormBlock"; - case Format::eAstc8x8SrgbBlock : return "Astc8x8SrgbBlock"; - case Format::eAstc10x5UnormBlock : return "Astc10x5UnormBlock"; - case Format::eAstc10x5SrgbBlock : return "Astc10x5SrgbBlock"; - case Format::eAstc10x6UnormBlock : return "Astc10x6UnormBlock"; - case Format::eAstc10x6SrgbBlock : return "Astc10x6SrgbBlock"; - case Format::eAstc10x8UnormBlock : return "Astc10x8UnormBlock"; - case Format::eAstc10x8SrgbBlock : return "Astc10x8SrgbBlock"; - case Format::eAstc10x10UnormBlock : return "Astc10x10UnormBlock"; - case Format::eAstc10x10SrgbBlock : return "Astc10x10SrgbBlock"; - case Format::eAstc12x10UnormBlock : return "Astc12x10UnormBlock"; - case Format::eAstc12x10SrgbBlock : return "Astc12x10SrgbBlock"; - case Format::eAstc12x12UnormBlock : return "Astc12x12UnormBlock"; - case Format::eAstc12x12SrgbBlock : return "Astc12x12SrgbBlock"; - case Format::eG8B8G8R8422Unorm : return "G8B8G8R8422Unorm"; - case Format::eB8G8R8G8422Unorm : return "B8G8R8G8422Unorm"; - case Format::eG8B8R83Plane420Unorm : return "G8B8R83Plane420Unorm"; - case Format::eG8B8R82Plane420Unorm : return "G8B8R82Plane420Unorm"; - case Format::eG8B8R83Plane422Unorm : return "G8B8R83Plane422Unorm"; - case Format::eG8B8R82Plane422Unorm : return "G8B8R82Plane422Unorm"; - case Format::eG8B8R83Plane444Unorm : return "G8B8R83Plane444Unorm"; - case Format::eR10X6UnormPack16 : return "R10X6UnormPack16"; - case Format::eR10X6G10X6Unorm2Pack16 : return "R10X6G10X6Unorm2Pack16"; - case Format::eR10X6G10X6B10X6A10X6Unorm4Pack16 : return "R10X6G10X6B10X6A10X6Unorm4Pack16"; - case Format::eG10X6B10X6G10X6R10X6422Unorm4Pack16 : return "G10X6B10X6G10X6R10X6422Unorm4Pack16"; - case Format::eB10X6G10X6R10X6G10X6422Unorm4Pack16 : return "B10X6G10X6R10X6G10X6422Unorm4Pack16"; - case Format::eG10X6B10X6R10X63Plane420Unorm3Pack16 : return "G10X6B10X6R10X63Plane420Unorm3Pack16"; - case Format::eG10X6B10X6R10X62Plane420Unorm3Pack16 : return "G10X6B10X6R10X62Plane420Unorm3Pack16"; - case Format::eG10X6B10X6R10X63Plane422Unorm3Pack16 : return "G10X6B10X6R10X63Plane422Unorm3Pack16"; - case Format::eG10X6B10X6R10X62Plane422Unorm3Pack16 : return "G10X6B10X6R10X62Plane422Unorm3Pack16"; - case Format::eG10X6B10X6R10X63Plane444Unorm3Pack16 : return "G10X6B10X6R10X63Plane444Unorm3Pack16"; - case Format::eR12X4UnormPack16 : return "R12X4UnormPack16"; - case Format::eR12X4G12X4Unorm2Pack16 : return "R12X4G12X4Unorm2Pack16"; - case Format::eR12X4G12X4B12X4A12X4Unorm4Pack16 : return "R12X4G12X4B12X4A12X4Unorm4Pack16"; - case Format::eG12X4B12X4G12X4R12X4422Unorm4Pack16 : return "G12X4B12X4G12X4R12X4422Unorm4Pack16"; - case Format::eB12X4G12X4R12X4G12X4422Unorm4Pack16 : return "B12X4G12X4R12X4G12X4422Unorm4Pack16"; - case Format::eG12X4B12X4R12X43Plane420Unorm3Pack16 : return "G12X4B12X4R12X43Plane420Unorm3Pack16"; - case Format::eG12X4B12X4R12X42Plane420Unorm3Pack16 : return "G12X4B12X4R12X42Plane420Unorm3Pack16"; - case Format::eG12X4B12X4R12X43Plane422Unorm3Pack16 : return "G12X4B12X4R12X43Plane422Unorm3Pack16"; - case Format::eG12X4B12X4R12X42Plane422Unorm3Pack16 : return "G12X4B12X4R12X42Plane422Unorm3Pack16"; - case Format::eG12X4B12X4R12X43Plane444Unorm3Pack16 : return "G12X4B12X4R12X43Plane444Unorm3Pack16"; - case Format::eG16B16G16R16422Unorm : return "G16B16G16R16422Unorm"; - case Format::eB16G16R16G16422Unorm : return "B16G16R16G16422Unorm"; - case Format::eG16B16R163Plane420Unorm : return "G16B16R163Plane420Unorm"; - case Format::eG16B16R162Plane420Unorm : return "G16B16R162Plane420Unorm"; - case Format::eG16B16R163Plane422Unorm : return "G16B16R163Plane422Unorm"; - case Format::eG16B16R162Plane422Unorm : return "G16B16R162Plane422Unorm"; - case Format::eG16B16R163Plane444Unorm : return "G16B16R163Plane444Unorm"; - case Format::ePvrtc12BppUnormBlockIMG : return "Pvrtc12BppUnormBlockIMG"; - case Format::ePvrtc14BppUnormBlockIMG : return "Pvrtc14BppUnormBlockIMG"; - case Format::ePvrtc22BppUnormBlockIMG : return "Pvrtc22BppUnormBlockIMG"; - case Format::ePvrtc24BppUnormBlockIMG : return "Pvrtc24BppUnormBlockIMG"; - case Format::ePvrtc12BppSrgbBlockIMG : return "Pvrtc12BppSrgbBlockIMG"; - case Format::ePvrtc14BppSrgbBlockIMG : return "Pvrtc14BppSrgbBlockIMG"; - case Format::ePvrtc22BppSrgbBlockIMG : return "Pvrtc22BppSrgbBlockIMG"; - case Format::ePvrtc24BppSrgbBlockIMG : return "Pvrtc24BppSrgbBlockIMG"; - case Format::eAstc4x4SfloatBlockEXT : return "Astc4x4SfloatBlockEXT"; - case Format::eAstc5x4SfloatBlockEXT : return "Astc5x4SfloatBlockEXT"; - case Format::eAstc5x5SfloatBlockEXT : return "Astc5x5SfloatBlockEXT"; - case Format::eAstc6x5SfloatBlockEXT : return "Astc6x5SfloatBlockEXT"; - case Format::eAstc6x6SfloatBlockEXT : return "Astc6x6SfloatBlockEXT"; - case Format::eAstc8x5SfloatBlockEXT : return "Astc8x5SfloatBlockEXT"; - case Format::eAstc8x6SfloatBlockEXT : return "Astc8x6SfloatBlockEXT"; - case Format::eAstc8x8SfloatBlockEXT : return "Astc8x8SfloatBlockEXT"; - case Format::eAstc10x5SfloatBlockEXT : return "Astc10x5SfloatBlockEXT"; - case Format::eAstc10x6SfloatBlockEXT : return "Astc10x6SfloatBlockEXT"; - case Format::eAstc10x8SfloatBlockEXT : return "Astc10x8SfloatBlockEXT"; - case Format::eAstc10x10SfloatBlockEXT : return "Astc10x10SfloatBlockEXT"; - case Format::eAstc12x10SfloatBlockEXT : return "Astc12x10SfloatBlockEXT"; - case Format::eAstc12x12SfloatBlockEXT : return "Astc12x12SfloatBlockEXT"; - case Format::eA4R4G4B4UnormPack16EXT : return "A4R4G4B4UnormPack16EXT"; - case Format::eA4B4G4R4UnormPack16EXT : return "A4B4G4R4UnormPack16EXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FormatFeatureFlagBits : VkFormatFeatureFlags - { - eSampledImage = VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT, - eStorageImage = VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT, - eStorageImageAtomic = VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT, - eUniformTexelBuffer = VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT, - eStorageTexelBuffer = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT, - eStorageTexelBufferAtomic = VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT, - eVertexBuffer = VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT, - eColorAttachment = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT, - eColorAttachmentBlend = VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, - eDepthStencilAttachment = VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT, - eBlitSrc = VK_FORMAT_FEATURE_BLIT_SRC_BIT, - eBlitDst = VK_FORMAT_FEATURE_BLIT_DST_BIT, - eSampledImageFilterLinear = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT, - eTransferSrc = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, - eTransferDst = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, - eMidpointChromaSamples = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, - eSampledImageYcbcrConversionLinearFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, - eSampledImageYcbcrConversionSeparateReconstructionFilter = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, - eSampledImageYcbcrConversionChromaReconstructionExplicit = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, - eSampledImageYcbcrConversionChromaReconstructionExplicitForceable = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, - eDisjoint = VK_FORMAT_FEATURE_DISJOINT_BIT, - eCositedChromaSamples = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, - eSampledImageFilterMinmax = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT, - eSampledImageFilterCubicIMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, - eAccelerationStructureVertexBufferKHR = VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR, - eFragmentDensityMapEXT = VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT, - eFragmentShadingRateAttachmentKHR = VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, - eCositedChromaSamplesKHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR, - eDisjointKHR = VK_FORMAT_FEATURE_DISJOINT_BIT_KHR, - eMidpointChromaSamplesKHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR, - eSampledImageFilterCubicEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT, - eSampledImageFilterMinmaxEXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT, - eSampledImageYcbcrConversionChromaReconstructionExplicitKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR, - eSampledImageYcbcrConversionChromaReconstructionExplicitForceableKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR, - eSampledImageYcbcrConversionLinearFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR, - eSampledImageYcbcrConversionSeparateReconstructionFilterKHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR, - eTransferDstKHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR, - eTransferSrcKHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlagBits value ) - { - switch ( value ) - { - case FormatFeatureFlagBits::eSampledImage : return "SampledImage"; - case FormatFeatureFlagBits::eStorageImage : return "StorageImage"; - case FormatFeatureFlagBits::eStorageImageAtomic : return "StorageImageAtomic"; - case FormatFeatureFlagBits::eUniformTexelBuffer : return "UniformTexelBuffer"; - case FormatFeatureFlagBits::eStorageTexelBuffer : return "StorageTexelBuffer"; - case FormatFeatureFlagBits::eStorageTexelBufferAtomic : return "StorageTexelBufferAtomic"; - case FormatFeatureFlagBits::eVertexBuffer : return "VertexBuffer"; - case FormatFeatureFlagBits::eColorAttachment : return "ColorAttachment"; - case FormatFeatureFlagBits::eColorAttachmentBlend : return "ColorAttachmentBlend"; - case FormatFeatureFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment"; - case FormatFeatureFlagBits::eBlitSrc : return "BlitSrc"; - case FormatFeatureFlagBits::eBlitDst : return "BlitDst"; - case FormatFeatureFlagBits::eSampledImageFilterLinear : return "SampledImageFilterLinear"; - case FormatFeatureFlagBits::eTransferSrc : return "TransferSrc"; - case FormatFeatureFlagBits::eTransferDst : return "TransferDst"; - case FormatFeatureFlagBits::eMidpointChromaSamples : return "MidpointChromaSamples"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter : return "SampledImageYcbcrConversionLinearFilter"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter : return "SampledImageYcbcrConversionSeparateReconstructionFilter"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit : return "SampledImageYcbcrConversionChromaReconstructionExplicit"; - case FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable : return "SampledImageYcbcrConversionChromaReconstructionExplicitForceable"; - case FormatFeatureFlagBits::eDisjoint : return "Disjoint"; - case FormatFeatureFlagBits::eCositedChromaSamples : return "CositedChromaSamples"; - case FormatFeatureFlagBits::eSampledImageFilterMinmax : return "SampledImageFilterMinmax"; - case FormatFeatureFlagBits::eSampledImageFilterCubicIMG : return "SampledImageFilterCubicIMG"; - case FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR : return "AccelerationStructureVertexBufferKHR"; - case FormatFeatureFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT"; - case FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR : return "FragmentShadingRateAttachmentKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FragmentShadingRateCombinerOpKHR - { - eKeep = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR, - eReplace = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR, - eMin = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR, - eMax = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR, - eMul = VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateCombinerOpKHR value ) - { - switch ( value ) - { - case FragmentShadingRateCombinerOpKHR::eKeep : return "Keep"; - case FragmentShadingRateCombinerOpKHR::eReplace : return "Replace"; - case FragmentShadingRateCombinerOpKHR::eMin : return "Min"; - case FragmentShadingRateCombinerOpKHR::eMax : return "Max"; - case FragmentShadingRateCombinerOpKHR::eMul : return "Mul"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FragmentShadingRateNV - { - e1InvocationPerPixel = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV, - e1InvocationPer1X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV, - e1InvocationPer2X1Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV, - e1InvocationPer2X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV, - e1InvocationPer2X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV, - e1InvocationPer4X2Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV, - e1InvocationPer4X4Pixels = VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV, - e2InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, - e4InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, - e8InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, - e16InvocationsPerPixel = VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV, - eNoInvocations = VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateNV value ) - { - switch ( value ) - { - case FragmentShadingRateNV::e1InvocationPerPixel : return "1InvocationPerPixel"; - case FragmentShadingRateNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels"; - case FragmentShadingRateNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels"; - case FragmentShadingRateNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels"; - case FragmentShadingRateNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels"; - case FragmentShadingRateNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels"; - case FragmentShadingRateNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels"; - case FragmentShadingRateNV::e2InvocationsPerPixel : return "2InvocationsPerPixel"; - case FragmentShadingRateNV::e4InvocationsPerPixel : return "4InvocationsPerPixel"; - case FragmentShadingRateNV::e8InvocationsPerPixel : return "8InvocationsPerPixel"; - case FragmentShadingRateNV::e16InvocationsPerPixel : return "16InvocationsPerPixel"; - case FragmentShadingRateNV::eNoInvocations : return "NoInvocations"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FragmentShadingRateTypeNV - { - eFragmentSize = VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV, - eEnums = VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( FragmentShadingRateTypeNV value ) - { - switch ( value ) - { - case FragmentShadingRateTypeNV::eFragmentSize : return "FragmentSize"; - case FragmentShadingRateTypeNV::eEnums : return "Enums"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FramebufferCreateFlagBits : VkFramebufferCreateFlags - { - eImageless = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, - eImagelessKHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlagBits value ) - { - switch ( value ) - { - case FramebufferCreateFlagBits::eImageless : return "Imageless"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class FrontFace - { - eCounterClockwise = VK_FRONT_FACE_COUNTER_CLOCKWISE, - eClockwise = VK_FRONT_FACE_CLOCKWISE - }; - - VULKAN_HPP_INLINE std::string to_string( FrontFace value ) - { - switch ( value ) - { - case FrontFace::eCounterClockwise : return "CounterClockwise"; - case FrontFace::eClockwise : return "Clockwise"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - -#ifdef VK_USE_PLATFORM_WIN32_KHR - enum class FullScreenExclusiveEXT - { - eDefault = VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT, - eAllowed = VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT, - eDisallowed = VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT, - eApplicationControlled = VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( FullScreenExclusiveEXT value ) - { - switch ( value ) - { - case FullScreenExclusiveEXT::eDefault : return "Default"; - case FullScreenExclusiveEXT::eAllowed : return "Allowed"; - case FullScreenExclusiveEXT::eDisallowed : return "Disallowed"; - case FullScreenExclusiveEXT::eApplicationControlled : return "ApplicationControlled"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - enum class GeometryFlagBitsKHR : VkGeometryFlagsKHR - { - eOpaque = VK_GEOMETRY_OPAQUE_BIT_KHR, - eNoDuplicateAnyHitInvocation = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR - }; - using GeometryFlagBitsNV = GeometryFlagBitsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryFlagBitsKHR value ) - { - switch ( value ) - { - case GeometryFlagBitsKHR::eOpaque : return "Opaque"; - case GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation : return "NoDuplicateAnyHitInvocation"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class GeometryInstanceFlagBitsKHR : VkGeometryInstanceFlagsKHR - { - eTriangleFacingCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, - eTriangleFrontCounterclockwise = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, - eForceOpaque = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, - eForceNoOpaque = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, - eTriangleCullDisable = VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV - }; - using GeometryInstanceFlagBitsNV = GeometryInstanceFlagBitsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagBitsKHR value ) - { - switch ( value ) - { - case GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable : return "TriangleFacingCullDisable"; - case GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise : return "TriangleFrontCounterclockwise"; - case GeometryInstanceFlagBitsKHR::eForceOpaque : return "ForceOpaque"; - case GeometryInstanceFlagBitsKHR::eForceNoOpaque : return "ForceNoOpaque"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class GeometryTypeKHR - { - eTriangles = VK_GEOMETRY_TYPE_TRIANGLES_KHR, - eAabbs = VK_GEOMETRY_TYPE_AABBS_KHR, - eInstances = VK_GEOMETRY_TYPE_INSTANCES_KHR - }; - using GeometryTypeNV = GeometryTypeKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryTypeKHR value ) - { - switch ( value ) - { - case GeometryTypeKHR::eTriangles : return "Triangles"; - case GeometryTypeKHR::eAabbs : return "Aabbs"; - case GeometryTypeKHR::eInstances : return "Instances"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageAspectFlagBits : VkImageAspectFlags - { - eColor = VK_IMAGE_ASPECT_COLOR_BIT, - eDepth = VK_IMAGE_ASPECT_DEPTH_BIT, - eStencil = VK_IMAGE_ASPECT_STENCIL_BIT, - eMetadata = VK_IMAGE_ASPECT_METADATA_BIT, - ePlane0 = VK_IMAGE_ASPECT_PLANE_0_BIT, - ePlane1 = VK_IMAGE_ASPECT_PLANE_1_BIT, - ePlane2 = VK_IMAGE_ASPECT_PLANE_2_BIT, - eMemoryPlane0EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT, - eMemoryPlane1EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT, - eMemoryPlane2EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT, - eMemoryPlane3EXT = VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT, - ePlane0KHR = VK_IMAGE_ASPECT_PLANE_0_BIT_KHR, - ePlane1KHR = VK_IMAGE_ASPECT_PLANE_1_BIT_KHR, - ePlane2KHR = VK_IMAGE_ASPECT_PLANE_2_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageAspectFlagBits value ) - { - switch ( value ) - { - case ImageAspectFlagBits::eColor : return "Color"; - case ImageAspectFlagBits::eDepth : return "Depth"; - case ImageAspectFlagBits::eStencil : return "Stencil"; - case ImageAspectFlagBits::eMetadata : return "Metadata"; - case ImageAspectFlagBits::ePlane0 : return "Plane0"; - case ImageAspectFlagBits::ePlane1 : return "Plane1"; - case ImageAspectFlagBits::ePlane2 : return "Plane2"; - case ImageAspectFlagBits::eMemoryPlane0EXT : return "MemoryPlane0EXT"; - case ImageAspectFlagBits::eMemoryPlane1EXT : return "MemoryPlane1EXT"; - case ImageAspectFlagBits::eMemoryPlane2EXT : return "MemoryPlane2EXT"; - case ImageAspectFlagBits::eMemoryPlane3EXT : return "MemoryPlane3EXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageCreateFlagBits : VkImageCreateFlags - { - eSparseBinding = VK_IMAGE_CREATE_SPARSE_BINDING_BIT, - eSparseResidency = VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, - eSparseAliased = VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, - eMutableFormat = VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, - eCubeCompatible = VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, - eAlias = VK_IMAGE_CREATE_ALIAS_BIT, - eSplitInstanceBindRegions = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, - e2DArrayCompatible = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, - eBlockTexelViewCompatible = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, - eExtendedUsage = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, - eProtected = VK_IMAGE_CREATE_PROTECTED_BIT, - eDisjoint = VK_IMAGE_CREATE_DISJOINT_BIT, - eCornerSampledNV = VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, - eSampleLocationsCompatibleDepthEXT = VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT, - eSubsampledEXT = VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, - e2DArrayCompatibleKHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR, - eAliasKHR = VK_IMAGE_CREATE_ALIAS_BIT_KHR, - eBlockTexelViewCompatibleKHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR, - eDisjointKHR = VK_IMAGE_CREATE_DISJOINT_BIT_KHR, - eExtendedUsageKHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR, - eSplitInstanceBindRegionsKHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageCreateFlagBits value ) - { - switch ( value ) - { - case ImageCreateFlagBits::eSparseBinding : return "SparseBinding"; - case ImageCreateFlagBits::eSparseResidency : return "SparseResidency"; - case ImageCreateFlagBits::eSparseAliased : return "SparseAliased"; - case ImageCreateFlagBits::eMutableFormat : return "MutableFormat"; - case ImageCreateFlagBits::eCubeCompatible : return "CubeCompatible"; - case ImageCreateFlagBits::eAlias : return "Alias"; - case ImageCreateFlagBits::eSplitInstanceBindRegions : return "SplitInstanceBindRegions"; - case ImageCreateFlagBits::e2DArrayCompatible : return "2DArrayCompatible"; - case ImageCreateFlagBits::eBlockTexelViewCompatible : return "BlockTexelViewCompatible"; - case ImageCreateFlagBits::eExtendedUsage : return "ExtendedUsage"; - case ImageCreateFlagBits::eProtected : return "Protected"; - case ImageCreateFlagBits::eDisjoint : return "Disjoint"; - case ImageCreateFlagBits::eCornerSampledNV : return "CornerSampledNV"; - case ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT : return "SampleLocationsCompatibleDepthEXT"; - case ImageCreateFlagBits::eSubsampledEXT : return "SubsampledEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageLayout - { - eUndefined = VK_IMAGE_LAYOUT_UNDEFINED, - eGeneral = VK_IMAGE_LAYOUT_GENERAL, - eColorAttachmentOptimal = VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, - eDepthStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, - eDepthStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, - eShaderReadOnlyOptimal = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, - eTransferSrcOptimal = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - eTransferDstOptimal = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - ePreinitialized = VK_IMAGE_LAYOUT_PREINITIALIZED, - eDepthReadOnlyStencilAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, - eDepthAttachmentStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, - eDepthAttachmentOptimal = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, - eDepthReadOnlyOptimal = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, - eStencilAttachmentOptimal = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, - eStencilReadOnlyOptimal = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, - ePresentSrcKHR = VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, - eSharedPresentKHR = VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, - eShadingRateOptimalNV = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV, - eFragmentDensityMapOptimalEXT = VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, - eDepthAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, - eDepthAttachmentStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR, - eDepthReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, - eDepthReadOnlyStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR, - eFragmentShadingRateAttachmentOptimalKHR = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR, - eStencilAttachmentOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR, - eStencilReadOnlyOptimalKHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageLayout value ) - { - switch ( value ) - { - case ImageLayout::eUndefined : return "Undefined"; - case ImageLayout::eGeneral : return "General"; - case ImageLayout::eColorAttachmentOptimal : return "ColorAttachmentOptimal"; - case ImageLayout::eDepthStencilAttachmentOptimal : return "DepthStencilAttachmentOptimal"; - case ImageLayout::eDepthStencilReadOnlyOptimal : return "DepthStencilReadOnlyOptimal"; - case ImageLayout::eShaderReadOnlyOptimal : return "ShaderReadOnlyOptimal"; - case ImageLayout::eTransferSrcOptimal : return "TransferSrcOptimal"; - case ImageLayout::eTransferDstOptimal : return "TransferDstOptimal"; - case ImageLayout::ePreinitialized : return "Preinitialized"; - case ImageLayout::eDepthReadOnlyStencilAttachmentOptimal : return "DepthReadOnlyStencilAttachmentOptimal"; - case ImageLayout::eDepthAttachmentStencilReadOnlyOptimal : return "DepthAttachmentStencilReadOnlyOptimal"; - case ImageLayout::eDepthAttachmentOptimal : return "DepthAttachmentOptimal"; - case ImageLayout::eDepthReadOnlyOptimal : return "DepthReadOnlyOptimal"; - case ImageLayout::eStencilAttachmentOptimal : return "StencilAttachmentOptimal"; - case ImageLayout::eStencilReadOnlyOptimal : return "StencilReadOnlyOptimal"; - case ImageLayout::ePresentSrcKHR : return "PresentSrcKHR"; - case ImageLayout::eSharedPresentKHR : return "SharedPresentKHR"; - case ImageLayout::eShadingRateOptimalNV : return "ShadingRateOptimalNV"; - case ImageLayout::eFragmentDensityMapOptimalEXT : return "FragmentDensityMapOptimalEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageTiling - { - eOptimal = VK_IMAGE_TILING_OPTIMAL, - eLinear = VK_IMAGE_TILING_LINEAR, - eDrmFormatModifierEXT = VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ImageTiling value ) - { - switch ( value ) - { - case ImageTiling::eOptimal : return "Optimal"; - case ImageTiling::eLinear : return "Linear"; - case ImageTiling::eDrmFormatModifierEXT : return "DrmFormatModifierEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageType - { - e1D = VK_IMAGE_TYPE_1D, - e2D = VK_IMAGE_TYPE_2D, - e3D = VK_IMAGE_TYPE_3D - }; - - VULKAN_HPP_INLINE std::string to_string( ImageType value ) - { - switch ( value ) - { - case ImageType::e1D : return "1D"; - case ImageType::e2D : return "2D"; - case ImageType::e3D : return "3D"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageUsageFlagBits : VkImageUsageFlags - { - eTransferSrc = VK_IMAGE_USAGE_TRANSFER_SRC_BIT, - eTransferDst = VK_IMAGE_USAGE_TRANSFER_DST_BIT, - eSampled = VK_IMAGE_USAGE_SAMPLED_BIT, - eStorage = VK_IMAGE_USAGE_STORAGE_BIT, - eColorAttachment = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, - eDepthStencilAttachment = VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, - eTransientAttachment = VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, - eInputAttachment = VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, - eShadingRateImageNV = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, - eFragmentDensityMapEXT = VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, - eFragmentShadingRateAttachmentKHR = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ImageUsageFlagBits value ) - { - switch ( value ) - { - case ImageUsageFlagBits::eTransferSrc : return "TransferSrc"; - case ImageUsageFlagBits::eTransferDst : return "TransferDst"; - case ImageUsageFlagBits::eSampled : return "Sampled"; - case ImageUsageFlagBits::eStorage : return "Storage"; - case ImageUsageFlagBits::eColorAttachment : return "ColorAttachment"; - case ImageUsageFlagBits::eDepthStencilAttachment : return "DepthStencilAttachment"; - case ImageUsageFlagBits::eTransientAttachment : return "TransientAttachment"; - case ImageUsageFlagBits::eInputAttachment : return "InputAttachment"; - case ImageUsageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV"; - case ImageUsageFlagBits::eFragmentDensityMapEXT : return "FragmentDensityMapEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageViewCreateFlagBits : VkImageViewCreateFlags - { - eFragmentDensityMapDynamicEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT, - eFragmentDensityMapDeferredEXT = VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlagBits value ) - { - switch ( value ) - { - case ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT : return "FragmentDensityMapDynamicEXT"; - case ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT : return "FragmentDensityMapDeferredEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ImageViewType - { - e1D = VK_IMAGE_VIEW_TYPE_1D, - e2D = VK_IMAGE_VIEW_TYPE_2D, - e3D = VK_IMAGE_VIEW_TYPE_3D, - eCube = VK_IMAGE_VIEW_TYPE_CUBE, - e1DArray = VK_IMAGE_VIEW_TYPE_1D_ARRAY, - e2DArray = VK_IMAGE_VIEW_TYPE_2D_ARRAY, - eCubeArray = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - }; - - VULKAN_HPP_INLINE std::string to_string( ImageViewType value ) - { - switch ( value ) - { - case ImageViewType::e1D : return "1D"; - case ImageViewType::e2D : return "2D"; - case ImageViewType::e3D : return "3D"; - case ImageViewType::eCube : return "Cube"; - case ImageViewType::e1DArray : return "1DArray"; - case ImageViewType::e2DArray : return "2DArray"; - case ImageViewType::eCubeArray : return "CubeArray"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndexType - { - eUint16 = VK_INDEX_TYPE_UINT16, - eUint32 = VK_INDEX_TYPE_UINT32, - eNoneKHR = VK_INDEX_TYPE_NONE_KHR, - eUint8EXT = VK_INDEX_TYPE_UINT8_EXT, - eNoneNV = VK_INDEX_TYPE_NONE_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndexType value ) - { - switch ( value ) - { - case IndexType::eUint16 : return "Uint16"; - case IndexType::eUint32 : return "Uint32"; - case IndexType::eNoneKHR : return "NoneKHR"; - case IndexType::eUint8EXT : return "Uint8EXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndirectCommandsLayoutUsageFlagBitsNV : VkIndirectCommandsLayoutUsageFlagsNV - { - eExplicitPreprocess = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV, - eIndexedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV, - eUnorderedSequences = VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagBitsNV value ) - { - switch ( value ) - { - case IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess : return "ExplicitPreprocess"; - case IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences : return "IndexedSequences"; - case IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences : return "UnorderedSequences"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndirectCommandsTokenTypeNV - { - eShaderGroup = VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, - eStateFlags = VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, - eIndexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV, - eVertexBuffer = VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, - ePushConstant = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, - eDrawIndexed = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, - eDraw = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, - eDrawTasks = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsTokenTypeNV value ) - { - switch ( value ) - { - case IndirectCommandsTokenTypeNV::eShaderGroup : return "ShaderGroup"; - case IndirectCommandsTokenTypeNV::eStateFlags : return "StateFlags"; - case IndirectCommandsTokenTypeNV::eIndexBuffer : return "IndexBuffer"; - case IndirectCommandsTokenTypeNV::eVertexBuffer : return "VertexBuffer"; - case IndirectCommandsTokenTypeNV::ePushConstant : return "PushConstant"; - case IndirectCommandsTokenTypeNV::eDrawIndexed : return "DrawIndexed"; - case IndirectCommandsTokenTypeNV::eDraw : return "Draw"; - case IndirectCommandsTokenTypeNV::eDrawTasks : return "DrawTasks"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class IndirectStateFlagBitsNV : VkIndirectStateFlagsNV - { - eFlagFrontface = VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagBitsNV value ) - { - switch ( value ) - { - case IndirectStateFlagBitsNV::eFlagFrontface : return "FlagFrontface"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class InstanceCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlagBits ) - { - return "(void)"; - } - - enum class InternalAllocationType - { - eExecutable = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - }; - - VULKAN_HPP_INLINE std::string to_string( InternalAllocationType value ) - { - switch ( value ) - { - case InternalAllocationType::eExecutable : return "Executable"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class LineRasterizationModeEXT - { - eDefault = VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, - eRectangular = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, - eBresenham = VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, - eRectangularSmooth = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( LineRasterizationModeEXT value ) - { - switch ( value ) - { - case LineRasterizationModeEXT::eDefault : return "Default"; - case LineRasterizationModeEXT::eRectangular : return "Rectangular"; - case LineRasterizationModeEXT::eBresenham : return "Bresenham"; - case LineRasterizationModeEXT::eRectangularSmooth : return "RectangularSmooth"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class LogicOp - { - eClear = VK_LOGIC_OP_CLEAR, - eAnd = VK_LOGIC_OP_AND, - eAndReverse = VK_LOGIC_OP_AND_REVERSE, - eCopy = VK_LOGIC_OP_COPY, - eAndInverted = VK_LOGIC_OP_AND_INVERTED, - eNoOp = VK_LOGIC_OP_NO_OP, - eXor = VK_LOGIC_OP_XOR, - eOr = VK_LOGIC_OP_OR, - eNor = VK_LOGIC_OP_NOR, - eEquivalent = VK_LOGIC_OP_EQUIVALENT, - eInvert = VK_LOGIC_OP_INVERT, - eOrReverse = VK_LOGIC_OP_OR_REVERSE, - eCopyInverted = VK_LOGIC_OP_COPY_INVERTED, - eOrInverted = VK_LOGIC_OP_OR_INVERTED, - eNand = VK_LOGIC_OP_NAND, - eSet = VK_LOGIC_OP_SET - }; - - VULKAN_HPP_INLINE std::string to_string( LogicOp value ) - { - switch ( value ) - { - case LogicOp::eClear : return "Clear"; - case LogicOp::eAnd : return "And"; - case LogicOp::eAndReverse : return "AndReverse"; - case LogicOp::eCopy : return "Copy"; - case LogicOp::eAndInverted : return "AndInverted"; - case LogicOp::eNoOp : return "NoOp"; - case LogicOp::eXor : return "Xor"; - case LogicOp::eOr : return "Or"; - case LogicOp::eNor : return "Nor"; - case LogicOp::eEquivalent : return "Equivalent"; - case LogicOp::eInvert : return "Invert"; - case LogicOp::eOrReverse : return "OrReverse"; - case LogicOp::eCopyInverted : return "CopyInverted"; - case LogicOp::eOrInverted : return "OrInverted"; - case LogicOp::eNand : return "Nand"; - case LogicOp::eSet : return "Set"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryAllocateFlagBits : VkMemoryAllocateFlags - { - eDeviceMask = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, - eDeviceAddress = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, - eDeviceAddressCaptureReplay = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT - }; - using MemoryAllocateFlagBitsKHR = MemoryAllocateFlagBits; - - VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlagBits value ) - { - switch ( value ) - { - case MemoryAllocateFlagBits::eDeviceMask : return "DeviceMask"; - case MemoryAllocateFlagBits::eDeviceAddress : return "DeviceAddress"; - case MemoryAllocateFlagBits::eDeviceAddressCaptureReplay : return "DeviceAddressCaptureReplay"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryHeapFlagBits : VkMemoryHeapFlags - { - eDeviceLocal = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT, - eMultiInstance = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, - eMultiInstanceKHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlagBits value ) - { - switch ( value ) - { - case MemoryHeapFlagBits::eDeviceLocal : return "DeviceLocal"; - case MemoryHeapFlagBits::eMultiInstance : return "MultiInstance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryOverallocationBehaviorAMD - { - eDefault = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, - eAllowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD, - eDisallowed = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( MemoryOverallocationBehaviorAMD value ) - { - switch ( value ) - { - case MemoryOverallocationBehaviorAMD::eDefault : return "Default"; - case MemoryOverallocationBehaviorAMD::eAllowed : return "Allowed"; - case MemoryOverallocationBehaviorAMD::eDisallowed : return "Disallowed"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class MemoryPropertyFlagBits : VkMemoryPropertyFlags - { - eDeviceLocal = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT, - eHostVisible = VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT, - eHostCoherent = VK_MEMORY_PROPERTY_HOST_COHERENT_BIT, - eHostCached = VK_MEMORY_PROPERTY_HOST_CACHED_BIT, - eLazilyAllocated = VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT, - eProtected = VK_MEMORY_PROPERTY_PROTECTED_BIT, - eDeviceCoherentAMD = VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD, - eDeviceUncachedAMD = VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlagBits value ) - { - switch ( value ) - { - case MemoryPropertyFlagBits::eDeviceLocal : return "DeviceLocal"; - case MemoryPropertyFlagBits::eHostVisible : return "HostVisible"; - case MemoryPropertyFlagBits::eHostCoherent : return "HostCoherent"; - case MemoryPropertyFlagBits::eHostCached : return "HostCached"; - case MemoryPropertyFlagBits::eLazilyAllocated : return "LazilyAllocated"; - case MemoryPropertyFlagBits::eProtected : return "Protected"; - case MemoryPropertyFlagBits::eDeviceCoherentAMD : return "DeviceCoherentAMD"; - case MemoryPropertyFlagBits::eDeviceUncachedAMD : return "DeviceUncachedAMD"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ObjectType - { - eUnknown = VK_OBJECT_TYPE_UNKNOWN, - eInstance = VK_OBJECT_TYPE_INSTANCE, - ePhysicalDevice = VK_OBJECT_TYPE_PHYSICAL_DEVICE, - eDevice = VK_OBJECT_TYPE_DEVICE, - eQueue = VK_OBJECT_TYPE_QUEUE, - eSemaphore = VK_OBJECT_TYPE_SEMAPHORE, - eCommandBuffer = VK_OBJECT_TYPE_COMMAND_BUFFER, - eFence = VK_OBJECT_TYPE_FENCE, - eDeviceMemory = VK_OBJECT_TYPE_DEVICE_MEMORY, - eBuffer = VK_OBJECT_TYPE_BUFFER, - eImage = VK_OBJECT_TYPE_IMAGE, - eEvent = VK_OBJECT_TYPE_EVENT, - eQueryPool = VK_OBJECT_TYPE_QUERY_POOL, - eBufferView = VK_OBJECT_TYPE_BUFFER_VIEW, - eImageView = VK_OBJECT_TYPE_IMAGE_VIEW, - eShaderModule = VK_OBJECT_TYPE_SHADER_MODULE, - ePipelineCache = VK_OBJECT_TYPE_PIPELINE_CACHE, - ePipelineLayout = VK_OBJECT_TYPE_PIPELINE_LAYOUT, - eRenderPass = VK_OBJECT_TYPE_RENDER_PASS, - ePipeline = VK_OBJECT_TYPE_PIPELINE, - eDescriptorSetLayout = VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT, - eSampler = VK_OBJECT_TYPE_SAMPLER, - eDescriptorPool = VK_OBJECT_TYPE_DESCRIPTOR_POOL, - eDescriptorSet = VK_OBJECT_TYPE_DESCRIPTOR_SET, - eFramebuffer = VK_OBJECT_TYPE_FRAMEBUFFER, - eCommandPool = VK_OBJECT_TYPE_COMMAND_POOL, - eSamplerYcbcrConversion = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, - eDescriptorUpdateTemplate = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, - eSurfaceKHR = VK_OBJECT_TYPE_SURFACE_KHR, - eSwapchainKHR = VK_OBJECT_TYPE_SWAPCHAIN_KHR, - eDisplayKHR = VK_OBJECT_TYPE_DISPLAY_KHR, - eDisplayModeKHR = VK_OBJECT_TYPE_DISPLAY_MODE_KHR, - eDebugReportCallbackEXT = VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT, - eDebugUtilsMessengerEXT = VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT, - eAccelerationStructureKHR = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR, - eValidationCacheEXT = VK_OBJECT_TYPE_VALIDATION_CACHE_EXT, - eAccelerationStructureNV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV, - ePerformanceConfigurationINTEL = VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL, - eDeferredOperationKHR = VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR, - eIndirectCommandsLayoutNV = VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV, - ePrivateDataSlotEXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT, - eDescriptorUpdateTemplateKHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR, - eSamplerYcbcrConversionKHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ObjectType value ) - { - switch ( value ) - { - case ObjectType::eUnknown : return "Unknown"; - case ObjectType::eInstance : return "Instance"; - case ObjectType::ePhysicalDevice : return "PhysicalDevice"; - case ObjectType::eDevice : return "Device"; - case ObjectType::eQueue : return "Queue"; - case ObjectType::eSemaphore : return "Semaphore"; - case ObjectType::eCommandBuffer : return "CommandBuffer"; - case ObjectType::eFence : return "Fence"; - case ObjectType::eDeviceMemory : return "DeviceMemory"; - case ObjectType::eBuffer : return "Buffer"; - case ObjectType::eImage : return "Image"; - case ObjectType::eEvent : return "Event"; - case ObjectType::eQueryPool : return "QueryPool"; - case ObjectType::eBufferView : return "BufferView"; - case ObjectType::eImageView : return "ImageView"; - case ObjectType::eShaderModule : return "ShaderModule"; - case ObjectType::ePipelineCache : return "PipelineCache"; - case ObjectType::ePipelineLayout : return "PipelineLayout"; - case ObjectType::eRenderPass : return "RenderPass"; - case ObjectType::ePipeline : return "Pipeline"; - case ObjectType::eDescriptorSetLayout : return "DescriptorSetLayout"; - case ObjectType::eSampler : return "Sampler"; - case ObjectType::eDescriptorPool : return "DescriptorPool"; - case ObjectType::eDescriptorSet : return "DescriptorSet"; - case ObjectType::eFramebuffer : return "Framebuffer"; - case ObjectType::eCommandPool : return "CommandPool"; - case ObjectType::eSamplerYcbcrConversion : return "SamplerYcbcrConversion"; - case ObjectType::eDescriptorUpdateTemplate : return "DescriptorUpdateTemplate"; - case ObjectType::eSurfaceKHR : return "SurfaceKHR"; - case ObjectType::eSwapchainKHR : return "SwapchainKHR"; - case ObjectType::eDisplayKHR : return "DisplayKHR"; - case ObjectType::eDisplayModeKHR : return "DisplayModeKHR"; - case ObjectType::eDebugReportCallbackEXT : return "DebugReportCallbackEXT"; - case ObjectType::eDebugUtilsMessengerEXT : return "DebugUtilsMessengerEXT"; - case ObjectType::eAccelerationStructureKHR : return "AccelerationStructureKHR"; - case ObjectType::eValidationCacheEXT : return "ValidationCacheEXT"; - case ObjectType::eAccelerationStructureNV : return "AccelerationStructureNV"; - case ObjectType::ePerformanceConfigurationINTEL : return "PerformanceConfigurationINTEL"; - case ObjectType::eDeferredOperationKHR : return "DeferredOperationKHR"; - case ObjectType::eIndirectCommandsLayoutNV : return "IndirectCommandsLayoutNV"; - case ObjectType::ePrivateDataSlotEXT : return "PrivateDataSlotEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - template - struct cpp_type - {}; - - enum class PeerMemoryFeatureFlagBits : VkPeerMemoryFeatureFlags - { - eCopySrc = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, - eCopyDst = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, - eGenericSrc = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, - eGenericDst = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT - }; - using PeerMemoryFeatureFlagBitsKHR = PeerMemoryFeatureFlagBits; - - VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlagBits value ) - { - switch ( value ) - { - case PeerMemoryFeatureFlagBits::eCopySrc : return "CopySrc"; - case PeerMemoryFeatureFlagBits::eCopyDst : return "CopyDst"; - case PeerMemoryFeatureFlagBits::eGenericSrc : return "GenericSrc"; - case PeerMemoryFeatureFlagBits::eGenericDst : return "GenericDst"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceConfigurationTypeINTEL - { - eCommandQueueMetricsDiscoveryActivated = VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceConfigurationTypeINTEL value ) - { - switch ( value ) - { - case PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated : return "CommandQueueMetricsDiscoveryActivated"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterDescriptionFlagBitsKHR : VkPerformanceCounterDescriptionFlagsKHR - { - ePerformanceImpacting = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, - eConcurrentlyImpacted = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagBitsKHR value ) - { - switch ( value ) - { - case PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting : return "PerformanceImpacting"; - case PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted : return "ConcurrentlyImpacted"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterScopeKHR - { - eCommandBuffer = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, - eRenderPass = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, - eCommand = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, - eVkQueryScopeCommandBuffer = VK_QUERY_SCOPE_COMMAND_BUFFER_KHR, - eVkQueryScopeCommand = VK_QUERY_SCOPE_COMMAND_KHR, - eVkQueryScopeRenderPass = VK_QUERY_SCOPE_RENDER_PASS_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterScopeKHR value ) - { - switch ( value ) - { - case PerformanceCounterScopeKHR::eCommandBuffer : return "CommandBuffer"; - case PerformanceCounterScopeKHR::eRenderPass : return "RenderPass"; - case PerformanceCounterScopeKHR::eCommand : return "Command"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterStorageKHR - { - eInt32 = VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR, - eInt64 = VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR, - eUint32 = VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR, - eUint64 = VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR, - eFloat32 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR, - eFloat64 = VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterStorageKHR value ) - { - switch ( value ) - { - case PerformanceCounterStorageKHR::eInt32 : return "Int32"; - case PerformanceCounterStorageKHR::eInt64 : return "Int64"; - case PerformanceCounterStorageKHR::eUint32 : return "Uint32"; - case PerformanceCounterStorageKHR::eUint64 : return "Uint64"; - case PerformanceCounterStorageKHR::eFloat32 : return "Float32"; - case PerformanceCounterStorageKHR::eFloat64 : return "Float64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceCounterUnitKHR - { - eGeneric = VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR, - ePercentage = VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR, - eNanoseconds = VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR, - eBytes = VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR, - eBytesPerSecond = VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR, - eKelvin = VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR, - eWatts = VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR, - eVolts = VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR, - eAmps = VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR, - eHertz = VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR, - eCycles = VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterUnitKHR value ) - { - switch ( value ) - { - case PerformanceCounterUnitKHR::eGeneric : return "Generic"; - case PerformanceCounterUnitKHR::ePercentage : return "Percentage"; - case PerformanceCounterUnitKHR::eNanoseconds : return "Nanoseconds"; - case PerformanceCounterUnitKHR::eBytes : return "Bytes"; - case PerformanceCounterUnitKHR::eBytesPerSecond : return "BytesPerSecond"; - case PerformanceCounterUnitKHR::eKelvin : return "Kelvin"; - case PerformanceCounterUnitKHR::eWatts : return "Watts"; - case PerformanceCounterUnitKHR::eVolts : return "Volts"; - case PerformanceCounterUnitKHR::eAmps : return "Amps"; - case PerformanceCounterUnitKHR::eHertz : return "Hertz"; - case PerformanceCounterUnitKHR::eCycles : return "Cycles"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceOverrideTypeINTEL - { - eNullHardware = VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL, - eFlushGpuCaches = VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceOverrideTypeINTEL value ) - { - switch ( value ) - { - case PerformanceOverrideTypeINTEL::eNullHardware : return "NullHardware"; - case PerformanceOverrideTypeINTEL::eFlushGpuCaches : return "FlushGpuCaches"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceParameterTypeINTEL - { - eHwCountersSupported = VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL, - eStreamMarkerValidBits = VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceParameterTypeINTEL value ) - { - switch ( value ) - { - case PerformanceParameterTypeINTEL::eHwCountersSupported : return "HwCountersSupported"; - case PerformanceParameterTypeINTEL::eStreamMarkerValidBits : return "StreamMarkerValidBits"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PerformanceValueTypeINTEL - { - eUint32 = VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL, - eUint64 = VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL, - eFloat = VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL, - eBool = VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL, - eString = VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( PerformanceValueTypeINTEL value ) - { - switch ( value ) - { - case PerformanceValueTypeINTEL::eUint32 : return "Uint32"; - case PerformanceValueTypeINTEL::eUint64 : return "Uint64"; - case PerformanceValueTypeINTEL::eFloat : return "Float"; - case PerformanceValueTypeINTEL::eBool : return "Bool"; - case PerformanceValueTypeINTEL::eString : return "String"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PhysicalDeviceType - { - eOther = VK_PHYSICAL_DEVICE_TYPE_OTHER, - eIntegratedGpu = VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU, - eDiscreteGpu = VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU, - eVirtualGpu = VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU, - eCpu = VK_PHYSICAL_DEVICE_TYPE_CPU - }; - - VULKAN_HPP_INLINE std::string to_string( PhysicalDeviceType value ) - { - switch ( value ) - { - case PhysicalDeviceType::eOther : return "Other"; - case PhysicalDeviceType::eIntegratedGpu : return "IntegratedGpu"; - case PhysicalDeviceType::eDiscreteGpu : return "DiscreteGpu"; - case PhysicalDeviceType::eVirtualGpu : return "VirtualGpu"; - case PhysicalDeviceType::eCpu : return "Cpu"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineBindPoint - { - eGraphics = VK_PIPELINE_BIND_POINT_GRAPHICS, - eCompute = VK_PIPELINE_BIND_POINT_COMPUTE, - eRayTracingKHR = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, - eRayTracingNV = VK_PIPELINE_BIND_POINT_RAY_TRACING_NV - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineBindPoint value ) - { - switch ( value ) - { - case PipelineBindPoint::eGraphics : return "Graphics"; - case PipelineBindPoint::eCompute : return "Compute"; - case PipelineBindPoint::eRayTracingKHR : return "RayTracingKHR"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCacheCreateFlagBits : VkPipelineCacheCreateFlags - { - eExternallySynchronizedEXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlagBits value ) - { - switch ( value ) - { - case PipelineCacheCreateFlagBits::eExternallySynchronizedEXT : return "ExternallySynchronizedEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCacheHeaderVersion - { - eOne = VK_PIPELINE_CACHE_HEADER_VERSION_ONE - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCacheHeaderVersion value ) - { - switch ( value ) - { - case PipelineCacheHeaderVersion::eOne : return "One"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCompilerControlFlagBitsAMD : VkPipelineCompilerControlFlagsAMD - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagBitsAMD ) - { - return "(void)"; - } - - enum class PipelineCreateFlagBits : VkPipelineCreateFlags - { - eDisableOptimization = VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT, - eAllowDerivatives = VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT, - eDerivative = VK_PIPELINE_CREATE_DERIVATIVE_BIT, - eViewIndexFromDeviceIndex = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, - eDispatchBase = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, - eRayTracingNoNullAnyHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, - eRayTracingNoNullClosestHitShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, - eRayTracingNoNullMissShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, - eRayTracingNoNullIntersectionShadersKHR = VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, - eRayTracingSkipTrianglesKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR, - eRayTracingSkipAabbsKHR = VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR, - eRayTracingShaderGroupHandleCaptureReplayKHR = VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, - eDeferCompileNV = VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV, - eCaptureStatisticsKHR = VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR, - eCaptureInternalRepresentationsKHR = VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR, - eIndirectBindableNV = VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, - eLibraryKHR = VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, - eFailOnPipelineCompileRequiredEXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT, - eEarlyReturnOnFailureEXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT, - eDispatchBaseKHR = VK_PIPELINE_CREATE_DISPATCH_BASE_KHR, - eViewIndexFromDeviceIndexKHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlagBits value ) - { - switch ( value ) - { - case PipelineCreateFlagBits::eDisableOptimization : return "DisableOptimization"; - case PipelineCreateFlagBits::eAllowDerivatives : return "AllowDerivatives"; - case PipelineCreateFlagBits::eDerivative : return "Derivative"; - case PipelineCreateFlagBits::eViewIndexFromDeviceIndex : return "ViewIndexFromDeviceIndex"; - case PipelineCreateFlagBits::eDispatchBase : return "DispatchBase"; - case PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR : return "RayTracingNoNullAnyHitShadersKHR"; - case PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR : return "RayTracingNoNullClosestHitShadersKHR"; - case PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR : return "RayTracingNoNullMissShadersKHR"; - case PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR : return "RayTracingNoNullIntersectionShadersKHR"; - case PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR : return "RayTracingSkipTrianglesKHR"; - case PipelineCreateFlagBits::eRayTracingSkipAabbsKHR : return "RayTracingSkipAabbsKHR"; - case PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR : return "RayTracingShaderGroupHandleCaptureReplayKHR"; - case PipelineCreateFlagBits::eDeferCompileNV : return "DeferCompileNV"; - case PipelineCreateFlagBits::eCaptureStatisticsKHR : return "CaptureStatisticsKHR"; - case PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR : return "CaptureInternalRepresentationsKHR"; - case PipelineCreateFlagBits::eIndirectBindableNV : return "IndirectBindableNV"; - case PipelineCreateFlagBits::eLibraryKHR : return "LibraryKHR"; - case PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT : return "FailOnPipelineCompileRequiredEXT"; - case PipelineCreateFlagBits::eEarlyReturnOnFailureEXT : return "EarlyReturnOnFailureEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineCreationFeedbackFlagBitsEXT : VkPipelineCreationFeedbackFlagsEXT - { - eValid = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT, - eApplicationPipelineCacheHit = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT, - eBasePipelineAcceleration = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagBitsEXT value ) - { - switch ( value ) - { - case PipelineCreationFeedbackFlagBitsEXT::eValid : return "Valid"; - case PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit : return "ApplicationPipelineCacheHit"; - case PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration : return "BasePipelineAcceleration"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineExecutableStatisticFormatKHR - { - eBool32 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR, - eInt64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR, - eUint64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR, - eFloat64 = VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineExecutableStatisticFormatKHR value ) - { - switch ( value ) - { - case PipelineExecutableStatisticFormatKHR::eBool32 : return "Bool32"; - case PipelineExecutableStatisticFormatKHR::eInt64 : return "Int64"; - case PipelineExecutableStatisticFormatKHR::eUint64 : return "Uint64"; - case PipelineExecutableStatisticFormatKHR::eFloat64 : return "Float64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineShaderStageCreateFlagBits : VkPipelineShaderStageCreateFlags - { - eAllowVaryingSubgroupSizeEXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT, - eRequireFullSubgroupsEXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlagBits value ) - { - switch ( value ) - { - case PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT : return "AllowVaryingSubgroupSizeEXT"; - case PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT : return "RequireFullSubgroupsEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PipelineStageFlagBits : VkPipelineStageFlags - { - eTopOfPipe = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT, - eDrawIndirect = VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT, - eVertexInput = VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, - eVertexShader = VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - eTessellationControlShader = VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT, - eTessellationEvaluationShader = VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT, - eGeometryShader = VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT, - eFragmentShader = VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - eEarlyFragmentTests = VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT, - eLateFragmentTests = VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, - eColorAttachmentOutput = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - eComputeShader = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT, - eTransfer = VK_PIPELINE_STAGE_TRANSFER_BIT, - eBottomOfPipe = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT, - eHost = VK_PIPELINE_STAGE_HOST_BIT, - eAllGraphics = VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT, - eAllCommands = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - eTransformFeedbackEXT = VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT, - eConditionalRenderingEXT = VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT, - eAccelerationStructureBuildKHR = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, - eRayTracingShaderKHR = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, - eShadingRateImageNV = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, - eTaskShaderNV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV, - eMeshShaderNV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV, - eFragmentDensityProcessEXT = VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT, - eCommandPreprocessNV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV, - eAccelerationStructureBuildNV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV, - eFragmentShadingRateAttachmentKHR = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, - eRayTracingShaderNV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( PipelineStageFlagBits value ) - { - switch ( value ) - { - case PipelineStageFlagBits::eTopOfPipe : return "TopOfPipe"; - case PipelineStageFlagBits::eDrawIndirect : return "DrawIndirect"; - case PipelineStageFlagBits::eVertexInput : return "VertexInput"; - case PipelineStageFlagBits::eVertexShader : return "VertexShader"; - case PipelineStageFlagBits::eTessellationControlShader : return "TessellationControlShader"; - case PipelineStageFlagBits::eTessellationEvaluationShader : return "TessellationEvaluationShader"; - case PipelineStageFlagBits::eGeometryShader : return "GeometryShader"; - case PipelineStageFlagBits::eFragmentShader : return "FragmentShader"; - case PipelineStageFlagBits::eEarlyFragmentTests : return "EarlyFragmentTests"; - case PipelineStageFlagBits::eLateFragmentTests : return "LateFragmentTests"; - case PipelineStageFlagBits::eColorAttachmentOutput : return "ColorAttachmentOutput"; - case PipelineStageFlagBits::eComputeShader : return "ComputeShader"; - case PipelineStageFlagBits::eTransfer : return "Transfer"; - case PipelineStageFlagBits::eBottomOfPipe : return "BottomOfPipe"; - case PipelineStageFlagBits::eHost : return "Host"; - case PipelineStageFlagBits::eAllGraphics : return "AllGraphics"; - case PipelineStageFlagBits::eAllCommands : return "AllCommands"; - case PipelineStageFlagBits::eTransformFeedbackEXT : return "TransformFeedbackEXT"; - case PipelineStageFlagBits::eConditionalRenderingEXT : return "ConditionalRenderingEXT"; - case PipelineStageFlagBits::eAccelerationStructureBuildKHR : return "AccelerationStructureBuildKHR"; - case PipelineStageFlagBits::eRayTracingShaderKHR : return "RayTracingShaderKHR"; - case PipelineStageFlagBits::eShadingRateImageNV : return "ShadingRateImageNV"; - case PipelineStageFlagBits::eTaskShaderNV : return "TaskShaderNV"; - case PipelineStageFlagBits::eMeshShaderNV : return "MeshShaderNV"; - case PipelineStageFlagBits::eFragmentDensityProcessEXT : return "FragmentDensityProcessEXT"; - case PipelineStageFlagBits::eCommandPreprocessNV : return "CommandPreprocessNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PointClippingBehavior - { - eAllClipPlanes = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, - eUserClipPlanesOnly = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - }; - using PointClippingBehaviorKHR = PointClippingBehavior; - - VULKAN_HPP_INLINE std::string to_string( PointClippingBehavior value ) - { - switch ( value ) - { - case PointClippingBehavior::eAllClipPlanes : return "AllClipPlanes"; - case PointClippingBehavior::eUserClipPlanesOnly : return "UserClipPlanesOnly"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PolygonMode - { - eFill = VK_POLYGON_MODE_FILL, - eLine = VK_POLYGON_MODE_LINE, - ePoint = VK_POLYGON_MODE_POINT, - eFillRectangleNV = VK_POLYGON_MODE_FILL_RECTANGLE_NV - }; - - VULKAN_HPP_INLINE std::string to_string( PolygonMode value ) - { - switch ( value ) - { - case PolygonMode::eFill : return "Fill"; - case PolygonMode::eLine : return "Line"; - case PolygonMode::ePoint : return "Point"; - case PolygonMode::eFillRectangleNV : return "FillRectangleNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PresentModeKHR - { - eImmediate = VK_PRESENT_MODE_IMMEDIATE_KHR, - eMailbox = VK_PRESENT_MODE_MAILBOX_KHR, - eFifo = VK_PRESENT_MODE_FIFO_KHR, - eFifoRelaxed = VK_PRESENT_MODE_FIFO_RELAXED_KHR, - eSharedDemandRefresh = VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR, - eSharedContinuousRefresh = VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( PresentModeKHR value ) - { - switch ( value ) - { - case PresentModeKHR::eImmediate : return "Immediate"; - case PresentModeKHR::eMailbox : return "Mailbox"; - case PresentModeKHR::eFifo : return "Fifo"; - case PresentModeKHR::eFifoRelaxed : return "FifoRelaxed"; - case PresentModeKHR::eSharedDemandRefresh : return "SharedDemandRefresh"; - case PresentModeKHR::eSharedContinuousRefresh : return "SharedContinuousRefresh"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PrimitiveTopology - { - ePointList = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, - eLineList = VK_PRIMITIVE_TOPOLOGY_LINE_LIST, - eLineStrip = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, - eTriangleList = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, - eTriangleStrip = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, - eTriangleFan = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN, - eLineListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, - eLineStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, - eTriangleListWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY, - eTriangleStripWithAdjacency = VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY, - ePatchList = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - }; - - VULKAN_HPP_INLINE std::string to_string( PrimitiveTopology value ) - { - switch ( value ) - { - case PrimitiveTopology::ePointList : return "PointList"; - case PrimitiveTopology::eLineList : return "LineList"; - case PrimitiveTopology::eLineStrip : return "LineStrip"; - case PrimitiveTopology::eTriangleList : return "TriangleList"; - case PrimitiveTopology::eTriangleStrip : return "TriangleStrip"; - case PrimitiveTopology::eTriangleFan : return "TriangleFan"; - case PrimitiveTopology::eLineListWithAdjacency : return "LineListWithAdjacency"; - case PrimitiveTopology::eLineStripWithAdjacency : return "LineStripWithAdjacency"; - case PrimitiveTopology::eTriangleListWithAdjacency : return "TriangleListWithAdjacency"; - case PrimitiveTopology::eTriangleStripWithAdjacency : return "TriangleStripWithAdjacency"; - case PrimitiveTopology::ePatchList : return "PatchList"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class PrivateDataSlotCreateFlagBitsEXT : VkPrivateDataSlotCreateFlagsEXT - {}; - - VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagBitsEXT ) - { - return "(void)"; - } - - enum class QueryControlFlagBits : VkQueryControlFlags - { - ePrecise = VK_QUERY_CONTROL_PRECISE_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueryControlFlagBits value ) - { - switch ( value ) - { - case QueryControlFlagBits::ePrecise : return "Precise"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryPipelineStatisticFlagBits : VkQueryPipelineStatisticFlags - { - eInputAssemblyVertices = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT, - eInputAssemblyPrimitives = VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT, - eVertexShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT, - eGeometryShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT, - eGeometryShaderPrimitives = VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT, - eClippingInvocations = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT, - eClippingPrimitives = VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT, - eFragmentShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT, - eTessellationControlShaderPatches = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT, - eTessellationEvaluationShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT, - eComputeShaderInvocations = VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlagBits value ) - { - switch ( value ) - { - case QueryPipelineStatisticFlagBits::eInputAssemblyVertices : return "InputAssemblyVertices"; - case QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives : return "InputAssemblyPrimitives"; - case QueryPipelineStatisticFlagBits::eVertexShaderInvocations : return "VertexShaderInvocations"; - case QueryPipelineStatisticFlagBits::eGeometryShaderInvocations : return "GeometryShaderInvocations"; - case QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives : return "GeometryShaderPrimitives"; - case QueryPipelineStatisticFlagBits::eClippingInvocations : return "ClippingInvocations"; - case QueryPipelineStatisticFlagBits::eClippingPrimitives : return "ClippingPrimitives"; - case QueryPipelineStatisticFlagBits::eFragmentShaderInvocations : return "FragmentShaderInvocations"; - case QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches : return "TessellationControlShaderPatches"; - case QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations : return "TessellationEvaluationShaderInvocations"; - case QueryPipelineStatisticFlagBits::eComputeShaderInvocations : return "ComputeShaderInvocations"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryPoolCreateFlagBits - {}; - - VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlagBits ) - { - return "(void)"; - } - - enum class QueryPoolSamplingModeINTEL - { - eManual = VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( QueryPoolSamplingModeINTEL value ) - { - switch ( value ) - { - case QueryPoolSamplingModeINTEL::eManual : return "Manual"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryResultFlagBits : VkQueryResultFlags - { - e64 = VK_QUERY_RESULT_64_BIT, - eWait = VK_QUERY_RESULT_WAIT_BIT, - eWithAvailability = VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, - ePartial = VK_QUERY_RESULT_PARTIAL_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueryResultFlagBits value ) - { - switch ( value ) - { - case QueryResultFlagBits::e64 : return "64"; - case QueryResultFlagBits::eWait : return "Wait"; - case QueryResultFlagBits::eWithAvailability : return "WithAvailability"; - case QueryResultFlagBits::ePartial : return "Partial"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueryType - { - eOcclusion = VK_QUERY_TYPE_OCCLUSION, - ePipelineStatistics = VK_QUERY_TYPE_PIPELINE_STATISTICS, - eTimestamp = VK_QUERY_TYPE_TIMESTAMP, - eTransformFeedbackStreamEXT = VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT, - ePerformanceQueryKHR = VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, - eAccelerationStructureCompactedSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, - eAccelerationStructureSerializationSizeKHR = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, - eAccelerationStructureCompactedSizeNV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV, - ePerformanceQueryINTEL = VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL - }; - - VULKAN_HPP_INLINE std::string to_string( QueryType value ) - { - switch ( value ) - { - case QueryType::eOcclusion : return "Occlusion"; - case QueryType::ePipelineStatistics : return "PipelineStatistics"; - case QueryType::eTimestamp : return "Timestamp"; - case QueryType::eTransformFeedbackStreamEXT : return "TransformFeedbackStreamEXT"; - case QueryType::ePerformanceQueryKHR : return "PerformanceQueryKHR"; - case QueryType::eAccelerationStructureCompactedSizeKHR : return "AccelerationStructureCompactedSizeKHR"; - case QueryType::eAccelerationStructureSerializationSizeKHR : return "AccelerationStructureSerializationSizeKHR"; - case QueryType::eAccelerationStructureCompactedSizeNV : return "AccelerationStructureCompactedSizeNV"; - case QueryType::ePerformanceQueryINTEL : return "PerformanceQueryINTEL"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueueFlagBits : VkQueueFlags - { - eGraphics = VK_QUEUE_GRAPHICS_BIT, - eCompute = VK_QUEUE_COMPUTE_BIT, - eTransfer = VK_QUEUE_TRANSFER_BIT, - eSparseBinding = VK_QUEUE_SPARSE_BINDING_BIT, - eProtected = VK_QUEUE_PROTECTED_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( QueueFlagBits value ) - { - switch ( value ) - { - case QueueFlagBits::eGraphics : return "Graphics"; - case QueueFlagBits::eCompute : return "Compute"; - case QueueFlagBits::eTransfer : return "Transfer"; - case QueueFlagBits::eSparseBinding : return "SparseBinding"; - case QueueFlagBits::eProtected : return "Protected"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class QueueGlobalPriorityEXT - { - eLow = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, - eMedium = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT, - eHigh = VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT, - eRealtime = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( QueueGlobalPriorityEXT value ) - { - switch ( value ) - { - case QueueGlobalPriorityEXT::eLow : return "Low"; - case QueueGlobalPriorityEXT::eMedium : return "Medium"; - case QueueGlobalPriorityEXT::eHigh : return "High"; - case QueueGlobalPriorityEXT::eRealtime : return "Realtime"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class RasterizationOrderAMD - { - eStrict = VK_RASTERIZATION_ORDER_STRICT_AMD, - eRelaxed = VK_RASTERIZATION_ORDER_RELAXED_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( RasterizationOrderAMD value ) - { - switch ( value ) - { - case RasterizationOrderAMD::eStrict : return "Strict"; - case RasterizationOrderAMD::eRelaxed : return "Relaxed"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class RayTracingShaderGroupTypeKHR - { - eGeneral = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR, - eTrianglesHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR, - eProceduralHitGroup = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR - }; - using RayTracingShaderGroupTypeNV = RayTracingShaderGroupTypeKHR; - - VULKAN_HPP_INLINE std::string to_string( RayTracingShaderGroupTypeKHR value ) - { - switch ( value ) - { - case RayTracingShaderGroupTypeKHR::eGeneral : return "General"; - case RayTracingShaderGroupTypeKHR::eTrianglesHitGroup : return "TrianglesHitGroup"; - case RayTracingShaderGroupTypeKHR::eProceduralHitGroup : return "ProceduralHitGroup"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class RenderPassCreateFlagBits : VkRenderPassCreateFlags - { - eTransformQCOM = VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM - }; - - VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlagBits value ) - { - switch ( value ) - { - case RenderPassCreateFlagBits::eTransformQCOM : return "TransformQCOM"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ResolveModeFlagBits : VkResolveModeFlags - { - eNone = VK_RESOLVE_MODE_NONE, - eSampleZero = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, - eAverage = VK_RESOLVE_MODE_AVERAGE_BIT, - eMin = VK_RESOLVE_MODE_MIN_BIT, - eMax = VK_RESOLVE_MODE_MAX_BIT - }; - using ResolveModeFlagBitsKHR = ResolveModeFlagBits; - - VULKAN_HPP_INLINE std::string to_string( ResolveModeFlagBits value ) - { - switch ( value ) - { - case ResolveModeFlagBits::eNone : return "None"; - case ResolveModeFlagBits::eSampleZero : return "SampleZero"; - case ResolveModeFlagBits::eAverage : return "Average"; - case ResolveModeFlagBits::eMin : return "Min"; - case ResolveModeFlagBits::eMax : return "Max"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class Result - { - eSuccess = VK_SUCCESS, - eNotReady = VK_NOT_READY, - eTimeout = VK_TIMEOUT, - eEventSet = VK_EVENT_SET, - eEventReset = VK_EVENT_RESET, - eIncomplete = VK_INCOMPLETE, - eErrorOutOfHostMemory = VK_ERROR_OUT_OF_HOST_MEMORY, - eErrorOutOfDeviceMemory = VK_ERROR_OUT_OF_DEVICE_MEMORY, - eErrorInitializationFailed = VK_ERROR_INITIALIZATION_FAILED, - eErrorDeviceLost = VK_ERROR_DEVICE_LOST, - eErrorMemoryMapFailed = VK_ERROR_MEMORY_MAP_FAILED, - eErrorLayerNotPresent = VK_ERROR_LAYER_NOT_PRESENT, - eErrorExtensionNotPresent = VK_ERROR_EXTENSION_NOT_PRESENT, - eErrorFeatureNotPresent = VK_ERROR_FEATURE_NOT_PRESENT, - eErrorIncompatibleDriver = VK_ERROR_INCOMPATIBLE_DRIVER, - eErrorTooManyObjects = VK_ERROR_TOO_MANY_OBJECTS, - eErrorFormatNotSupported = VK_ERROR_FORMAT_NOT_SUPPORTED, - eErrorFragmentedPool = VK_ERROR_FRAGMENTED_POOL, - eErrorUnknown = VK_ERROR_UNKNOWN, - eErrorOutOfPoolMemory = VK_ERROR_OUT_OF_POOL_MEMORY, - eErrorInvalidExternalHandle = VK_ERROR_INVALID_EXTERNAL_HANDLE, - eErrorFragmentation = VK_ERROR_FRAGMENTATION, - eErrorInvalidOpaqueCaptureAddress = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, - eErrorSurfaceLostKHR = VK_ERROR_SURFACE_LOST_KHR, - eErrorNativeWindowInUseKHR = VK_ERROR_NATIVE_WINDOW_IN_USE_KHR, - eSuboptimalKHR = VK_SUBOPTIMAL_KHR, - eErrorOutOfDateKHR = VK_ERROR_OUT_OF_DATE_KHR, - eErrorIncompatibleDisplayKHR = VK_ERROR_INCOMPATIBLE_DISPLAY_KHR, - eErrorValidationFailedEXT = VK_ERROR_VALIDATION_FAILED_EXT, - eErrorInvalidShaderNV = VK_ERROR_INVALID_SHADER_NV, - eErrorInvalidDrmFormatModifierPlaneLayoutEXT = VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT, - eErrorNotPermittedEXT = VK_ERROR_NOT_PERMITTED_EXT, - eErrorFullScreenExclusiveModeLostEXT = VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT, - eThreadIdleKHR = VK_THREAD_IDLE_KHR, - eThreadDoneKHR = VK_THREAD_DONE_KHR, - eOperationDeferredKHR = VK_OPERATION_DEFERRED_KHR, - eOperationNotDeferredKHR = VK_OPERATION_NOT_DEFERRED_KHR, - ePipelineCompileRequiredEXT = VK_PIPELINE_COMPILE_REQUIRED_EXT, - eErrorFragmentationEXT = VK_ERROR_FRAGMENTATION_EXT, - eErrorInvalidDeviceAddressEXT = VK_ERROR_INVALID_DEVICE_ADDRESS_EXT, - eErrorInvalidExternalHandleKHR = VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR, - eErrorInvalidOpaqueCaptureAddressKHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR, - eErrorOutOfPoolMemoryKHR = VK_ERROR_OUT_OF_POOL_MEMORY_KHR, - eErrorPipelineCompileRequiredEXT = VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( Result value ) - { - switch ( value ) - { - case Result::eSuccess : return "Success"; - case Result::eNotReady : return "NotReady"; - case Result::eTimeout : return "Timeout"; - case Result::eEventSet : return "EventSet"; - case Result::eEventReset : return "EventReset"; - case Result::eIncomplete : return "Incomplete"; - case Result::eErrorOutOfHostMemory : return "ErrorOutOfHostMemory"; - case Result::eErrorOutOfDeviceMemory : return "ErrorOutOfDeviceMemory"; - case Result::eErrorInitializationFailed : return "ErrorInitializationFailed"; - case Result::eErrorDeviceLost : return "ErrorDeviceLost"; - case Result::eErrorMemoryMapFailed : return "ErrorMemoryMapFailed"; - case Result::eErrorLayerNotPresent : return "ErrorLayerNotPresent"; - case Result::eErrorExtensionNotPresent : return "ErrorExtensionNotPresent"; - case Result::eErrorFeatureNotPresent : return "ErrorFeatureNotPresent"; - case Result::eErrorIncompatibleDriver : return "ErrorIncompatibleDriver"; - case Result::eErrorTooManyObjects : return "ErrorTooManyObjects"; - case Result::eErrorFormatNotSupported : return "ErrorFormatNotSupported"; - case Result::eErrorFragmentedPool : return "ErrorFragmentedPool"; - case Result::eErrorUnknown : return "ErrorUnknown"; - case Result::eErrorOutOfPoolMemory : return "ErrorOutOfPoolMemory"; - case Result::eErrorInvalidExternalHandle : return "ErrorInvalidExternalHandle"; - case Result::eErrorFragmentation : return "ErrorFragmentation"; - case Result::eErrorInvalidOpaqueCaptureAddress : return "ErrorInvalidOpaqueCaptureAddress"; - case Result::eErrorSurfaceLostKHR : return "ErrorSurfaceLostKHR"; - case Result::eErrorNativeWindowInUseKHR : return "ErrorNativeWindowInUseKHR"; - case Result::eSuboptimalKHR : return "SuboptimalKHR"; - case Result::eErrorOutOfDateKHR : return "ErrorOutOfDateKHR"; - case Result::eErrorIncompatibleDisplayKHR : return "ErrorIncompatibleDisplayKHR"; - case Result::eErrorValidationFailedEXT : return "ErrorValidationFailedEXT"; - case Result::eErrorInvalidShaderNV : return "ErrorInvalidShaderNV"; - case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT : return "ErrorInvalidDrmFormatModifierPlaneLayoutEXT"; - case Result::eErrorNotPermittedEXT : return "ErrorNotPermittedEXT"; - case Result::eErrorFullScreenExclusiveModeLostEXT : return "ErrorFullScreenExclusiveModeLostEXT"; - case Result::eThreadIdleKHR : return "ThreadIdleKHR"; - case Result::eThreadDoneKHR : return "ThreadDoneKHR"; - case Result::eOperationDeferredKHR : return "OperationDeferredKHR"; - case Result::eOperationNotDeferredKHR : return "OperationNotDeferredKHR"; - case Result::ePipelineCompileRequiredEXT : return "PipelineCompileRequiredEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SampleCountFlagBits : VkSampleCountFlags - { - e1 = VK_SAMPLE_COUNT_1_BIT, - e2 = VK_SAMPLE_COUNT_2_BIT, - e4 = VK_SAMPLE_COUNT_4_BIT, - e8 = VK_SAMPLE_COUNT_8_BIT, - e16 = VK_SAMPLE_COUNT_16_BIT, - e32 = VK_SAMPLE_COUNT_32_BIT, - e64 = VK_SAMPLE_COUNT_64_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( SampleCountFlagBits value ) - { - switch ( value ) - { - case SampleCountFlagBits::e1 : return "1"; - case SampleCountFlagBits::e2 : return "2"; - case SampleCountFlagBits::e4 : return "4"; - case SampleCountFlagBits::e8 : return "8"; - case SampleCountFlagBits::e16 : return "16"; - case SampleCountFlagBits::e32 : return "32"; - case SampleCountFlagBits::e64 : return "64"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerAddressMode - { - eRepeat = VK_SAMPLER_ADDRESS_MODE_REPEAT, - eMirroredRepeat = VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT, - eClampToEdge = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, - eClampToBorder = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, - eMirrorClampToEdge = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, - eMirrorClampToEdgeKHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( SamplerAddressMode value ) - { - switch ( value ) - { - case SamplerAddressMode::eRepeat : return "Repeat"; - case SamplerAddressMode::eMirroredRepeat : return "MirroredRepeat"; - case SamplerAddressMode::eClampToEdge : return "ClampToEdge"; - case SamplerAddressMode::eClampToBorder : return "ClampToBorder"; - case SamplerAddressMode::eMirrorClampToEdge : return "MirrorClampToEdge"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerCreateFlagBits : VkSamplerCreateFlags - { - eSubsampledEXT = VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, - eSubsampledCoarseReconstructionEXT = VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlagBits value ) - { - switch ( value ) - { - case SamplerCreateFlagBits::eSubsampledEXT : return "SubsampledEXT"; - case SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT : return "SubsampledCoarseReconstructionEXT"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerMipmapMode - { - eNearest = VK_SAMPLER_MIPMAP_MODE_NEAREST, - eLinear = VK_SAMPLER_MIPMAP_MODE_LINEAR - }; - - VULKAN_HPP_INLINE std::string to_string( SamplerMipmapMode value ) - { - switch ( value ) - { - case SamplerMipmapMode::eNearest : return "Nearest"; - case SamplerMipmapMode::eLinear : return "Linear"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerReductionMode - { - eWeightedAverage = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, - eMin = VK_SAMPLER_REDUCTION_MODE_MIN, - eMax = VK_SAMPLER_REDUCTION_MODE_MAX - }; - using SamplerReductionModeEXT = SamplerReductionMode; - - VULKAN_HPP_INLINE std::string to_string( SamplerReductionMode value ) - { - switch ( value ) - { - case SamplerReductionMode::eWeightedAverage : return "WeightedAverage"; - case SamplerReductionMode::eMin : return "Min"; - case SamplerReductionMode::eMax : return "Max"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerYcbcrModelConversion - { - eRgbIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, - eYcbcrIdentity = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, - eYcbcr709 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, - eYcbcr601 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, - eYcbcr2020 = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - }; - using SamplerYcbcrModelConversionKHR = SamplerYcbcrModelConversion; - - VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrModelConversion value ) - { - switch ( value ) - { - case SamplerYcbcrModelConversion::eRgbIdentity : return "RgbIdentity"; - case SamplerYcbcrModelConversion::eYcbcrIdentity : return "YcbcrIdentity"; - case SamplerYcbcrModelConversion::eYcbcr709 : return "Ycbcr709"; - case SamplerYcbcrModelConversion::eYcbcr601 : return "Ycbcr601"; - case SamplerYcbcrModelConversion::eYcbcr2020 : return "Ycbcr2020"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SamplerYcbcrRange - { - eItuFull = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, - eItuNarrow = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - }; - using SamplerYcbcrRangeKHR = SamplerYcbcrRange; - - VULKAN_HPP_INLINE std::string to_string( SamplerYcbcrRange value ) - { - switch ( value ) - { - case SamplerYcbcrRange::eItuFull : return "ItuFull"; - case SamplerYcbcrRange::eItuNarrow : return "ItuNarrow"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ScopeNV - { - eDevice = VK_SCOPE_DEVICE_NV, - eWorkgroup = VK_SCOPE_WORKGROUP_NV, - eSubgroup = VK_SCOPE_SUBGROUP_NV, - eQueueFamily = VK_SCOPE_QUEUE_FAMILY_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ScopeNV value ) - { - switch ( value ) - { - case ScopeNV::eDevice : return "Device"; - case ScopeNV::eWorkgroup : return "Workgroup"; - case ScopeNV::eSubgroup : return "Subgroup"; - case ScopeNV::eQueueFamily : return "QueueFamily"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SemaphoreImportFlagBits : VkSemaphoreImportFlags - { - eTemporary = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT - }; - using SemaphoreImportFlagBitsKHR = SemaphoreImportFlagBits; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlagBits value ) - { - switch ( value ) - { - case SemaphoreImportFlagBits::eTemporary : return "Temporary"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SemaphoreType - { - eBinary = VK_SEMAPHORE_TYPE_BINARY, - eTimeline = VK_SEMAPHORE_TYPE_TIMELINE - }; - using SemaphoreTypeKHR = SemaphoreType; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreType value ) - { - switch ( value ) - { - case SemaphoreType::eBinary : return "Binary"; - case SemaphoreType::eTimeline : return "Timeline"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SemaphoreWaitFlagBits : VkSemaphoreWaitFlags - { - eAny = VK_SEMAPHORE_WAIT_ANY_BIT - }; - using SemaphoreWaitFlagBitsKHR = SemaphoreWaitFlagBits; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlagBits value ) - { - switch ( value ) - { - case SemaphoreWaitFlagBits::eAny : return "Any"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderCorePropertiesFlagBitsAMD : VkShaderCorePropertiesFlagsAMD - {}; - - VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagBitsAMD ) - { - return "(void)"; - } - - enum class ShaderFloatControlsIndependence - { - e32BitOnly = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, - eAll = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, - eNone = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE - }; - using ShaderFloatControlsIndependenceKHR = ShaderFloatControlsIndependence; - - VULKAN_HPP_INLINE std::string to_string( ShaderFloatControlsIndependence value ) - { - switch ( value ) - { - case ShaderFloatControlsIndependence::e32BitOnly : return "32BitOnly"; - case ShaderFloatControlsIndependence::eAll : return "All"; - case ShaderFloatControlsIndependence::eNone : return "None"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderGroupShaderKHR - { - eGeneral = VK_SHADER_GROUP_SHADER_GENERAL_KHR, - eClosestHit = VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR, - eAnyHit = VK_SHADER_GROUP_SHADER_ANY_HIT_KHR, - eIntersection = VK_SHADER_GROUP_SHADER_INTERSECTION_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderGroupShaderKHR value ) - { - switch ( value ) - { - case ShaderGroupShaderKHR::eGeneral : return "General"; - case ShaderGroupShaderKHR::eClosestHit : return "ClosestHit"; - case ShaderGroupShaderKHR::eAnyHit : return "AnyHit"; - case ShaderGroupShaderKHR::eIntersection : return "Intersection"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderInfoTypeAMD - { - eStatistics = VK_SHADER_INFO_TYPE_STATISTICS_AMD, - eBinary = VK_SHADER_INFO_TYPE_BINARY_AMD, - eDisassembly = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderInfoTypeAMD value ) - { - switch ( value ) - { - case ShaderInfoTypeAMD::eStatistics : return "Statistics"; - case ShaderInfoTypeAMD::eBinary : return "Binary"; - case ShaderInfoTypeAMD::eDisassembly : return "Disassembly"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShaderModuleCreateFlagBits : VkShaderModuleCreateFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlagBits ) - { - return "(void)"; - } - - enum class ShaderStageFlagBits : VkShaderStageFlags - { - eVertex = VK_SHADER_STAGE_VERTEX_BIT, - eTessellationControl = VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, - eTessellationEvaluation = VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, - eGeometry = VK_SHADER_STAGE_GEOMETRY_BIT, - eFragment = VK_SHADER_STAGE_FRAGMENT_BIT, - eCompute = VK_SHADER_STAGE_COMPUTE_BIT, - eAllGraphics = VK_SHADER_STAGE_ALL_GRAPHICS, - eAll = VK_SHADER_STAGE_ALL, - eRaygenKHR = VK_SHADER_STAGE_RAYGEN_BIT_KHR, - eAnyHitKHR = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, - eClosestHitKHR = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, - eMissKHR = VK_SHADER_STAGE_MISS_BIT_KHR, - eIntersectionKHR = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, - eCallableKHR = VK_SHADER_STAGE_CALLABLE_BIT_KHR, - eTaskNV = VK_SHADER_STAGE_TASK_BIT_NV, - eMeshNV = VK_SHADER_STAGE_MESH_BIT_NV, - eAnyHitNV = VK_SHADER_STAGE_ANY_HIT_BIT_NV, - eCallableNV = VK_SHADER_STAGE_CALLABLE_BIT_NV, - eClosestHitNV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV, - eIntersectionNV = VK_SHADER_STAGE_INTERSECTION_BIT_NV, - eMissNV = VK_SHADER_STAGE_MISS_BIT_NV, - eRaygenNV = VK_SHADER_STAGE_RAYGEN_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ShaderStageFlagBits value ) - { - switch ( value ) - { - case ShaderStageFlagBits::eVertex : return "Vertex"; - case ShaderStageFlagBits::eTessellationControl : return "TessellationControl"; - case ShaderStageFlagBits::eTessellationEvaluation : return "TessellationEvaluation"; - case ShaderStageFlagBits::eGeometry : return "Geometry"; - case ShaderStageFlagBits::eFragment : return "Fragment"; - case ShaderStageFlagBits::eCompute : return "Compute"; - case ShaderStageFlagBits::eAllGraphics : return "AllGraphics"; - case ShaderStageFlagBits::eAll : return "All"; - case ShaderStageFlagBits::eRaygenKHR : return "RaygenKHR"; - case ShaderStageFlagBits::eAnyHitKHR : return "AnyHitKHR"; - case ShaderStageFlagBits::eClosestHitKHR : return "ClosestHitKHR"; - case ShaderStageFlagBits::eMissKHR : return "MissKHR"; - case ShaderStageFlagBits::eIntersectionKHR : return "IntersectionKHR"; - case ShaderStageFlagBits::eCallableKHR : return "CallableKHR"; - case ShaderStageFlagBits::eTaskNV : return "TaskNV"; - case ShaderStageFlagBits::eMeshNV : return "MeshNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ShadingRatePaletteEntryNV - { - eNoInvocations = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, - e16InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV, - e8InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV, - e4InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV, - e2InvocationsPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV, - e1InvocationPerPixel = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV, - e1InvocationPer2X1Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV, - e1InvocationPer1X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV, - e1InvocationPer2X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV, - e1InvocationPer4X2Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV, - e1InvocationPer2X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV, - e1InvocationPer4X4Pixels = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ShadingRatePaletteEntryNV value ) - { - switch ( value ) - { - case ShadingRatePaletteEntryNV::eNoInvocations : return "NoInvocations"; - case ShadingRatePaletteEntryNV::e16InvocationsPerPixel : return "16InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e8InvocationsPerPixel : return "8InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e4InvocationsPerPixel : return "4InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e2InvocationsPerPixel : return "2InvocationsPerPixel"; - case ShadingRatePaletteEntryNV::e1InvocationPerPixel : return "1InvocationPerPixel"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X1Pixels : return "1InvocationPer2X1Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer1X2Pixels : return "1InvocationPer1X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X2Pixels : return "1InvocationPer2X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer4X2Pixels : return "1InvocationPer4X2Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer2X4Pixels : return "1InvocationPer2X4Pixels"; - case ShadingRatePaletteEntryNV::e1InvocationPer4X4Pixels : return "1InvocationPer4X4Pixels"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SharingMode - { - eExclusive = VK_SHARING_MODE_EXCLUSIVE, - eConcurrent = VK_SHARING_MODE_CONCURRENT - }; - - VULKAN_HPP_INLINE std::string to_string( SharingMode value ) - { - switch ( value ) - { - case SharingMode::eExclusive : return "Exclusive"; - case SharingMode::eConcurrent : return "Concurrent"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SparseImageFormatFlagBits : VkSparseImageFormatFlags - { - eSingleMiptail = VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT, - eAlignedMipSize = VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT, - eNonstandardBlockSize = VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlagBits value ) - { - switch ( value ) - { - case SparseImageFormatFlagBits::eSingleMiptail : return "SingleMiptail"; - case SparseImageFormatFlagBits::eAlignedMipSize : return "AlignedMipSize"; - case SparseImageFormatFlagBits::eNonstandardBlockSize : return "NonstandardBlockSize"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SparseMemoryBindFlagBits : VkSparseMemoryBindFlags - { - eMetadata = VK_SPARSE_MEMORY_BIND_METADATA_BIT - }; - - VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlagBits value ) - { - switch ( value ) - { - case SparseMemoryBindFlagBits::eMetadata : return "Metadata"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class StencilFaceFlagBits : VkStencilFaceFlags - { - eFront = VK_STENCIL_FACE_FRONT_BIT, - eBack = VK_STENCIL_FACE_BACK_BIT, - eFrontAndBack = VK_STENCIL_FACE_FRONT_AND_BACK, - eVkStencilFrontAndBack = VK_STENCIL_FRONT_AND_BACK - }; - - VULKAN_HPP_INLINE std::string to_string( StencilFaceFlagBits value ) - { - switch ( value ) - { - case StencilFaceFlagBits::eFront : return "Front"; - case StencilFaceFlagBits::eBack : return "Back"; - case StencilFaceFlagBits::eFrontAndBack : return "FrontAndBack"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class StencilOp - { - eKeep = VK_STENCIL_OP_KEEP, - eZero = VK_STENCIL_OP_ZERO, - eReplace = VK_STENCIL_OP_REPLACE, - eIncrementAndClamp = VK_STENCIL_OP_INCREMENT_AND_CLAMP, - eDecrementAndClamp = VK_STENCIL_OP_DECREMENT_AND_CLAMP, - eInvert = VK_STENCIL_OP_INVERT, - eIncrementAndWrap = VK_STENCIL_OP_INCREMENT_AND_WRAP, - eDecrementAndWrap = VK_STENCIL_OP_DECREMENT_AND_WRAP - }; - - VULKAN_HPP_INLINE std::string to_string( StencilOp value ) - { - switch ( value ) - { - case StencilOp::eKeep : return "Keep"; - case StencilOp::eZero : return "Zero"; - case StencilOp::eReplace : return "Replace"; - case StencilOp::eIncrementAndClamp : return "IncrementAndClamp"; - case StencilOp::eDecrementAndClamp : return "DecrementAndClamp"; - case StencilOp::eInvert : return "Invert"; - case StencilOp::eIncrementAndWrap : return "IncrementAndWrap"; - case StencilOp::eDecrementAndWrap : return "DecrementAndWrap"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class StructureType - { - eApplicationInfo = VK_STRUCTURE_TYPE_APPLICATION_INFO, - eInstanceCreateInfo = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO, - eDeviceQueueCreateInfo = VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO, - eDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO, - eSubmitInfo = VK_STRUCTURE_TYPE_SUBMIT_INFO, - eMemoryAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO, - eMappedMemoryRange = VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE, - eBindSparseInfo = VK_STRUCTURE_TYPE_BIND_SPARSE_INFO, - eFenceCreateInfo = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO, - eSemaphoreCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO, - eEventCreateInfo = VK_STRUCTURE_TYPE_EVENT_CREATE_INFO, - eQueryPoolCreateInfo = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO, - eBufferCreateInfo = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO, - eBufferViewCreateInfo = VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO, - eImageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO, - eImageViewCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO, - eShaderModuleCreateInfo = VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO, - ePipelineCacheCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO, - ePipelineShaderStageCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO, - ePipelineVertexInputStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO, - ePipelineInputAssemblyStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO, - ePipelineTessellationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO, - ePipelineViewportStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO, - ePipelineRasterizationStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO, - ePipelineMultisampleStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO, - ePipelineDepthStencilStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO, - ePipelineColorBlendStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO, - ePipelineDynamicStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO, - eGraphicsPipelineCreateInfo = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO, - eComputePipelineCreateInfo = VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO, - ePipelineLayoutCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO, - eSamplerCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO, - eDescriptorSetLayoutCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO, - eDescriptorPoolCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO, - eDescriptorSetAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO, - eWriteDescriptorSet = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET, - eCopyDescriptorSet = VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET, - eFramebufferCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO, - eRenderPassCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO, - eCommandPoolCreateInfo = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO, - eCommandBufferAllocateInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO, - eCommandBufferInheritanceInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO, - eCommandBufferBeginInfo = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO, - eRenderPassBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO, - eBufferMemoryBarrier = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER, - eImageMemoryBarrier = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, - eMemoryBarrier = VK_STRUCTURE_TYPE_MEMORY_BARRIER, - eLoaderInstanceCreateInfo = VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO, - eLoaderDeviceCreateInfo = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, - ePhysicalDeviceSubgroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES, - eBindBufferMemoryInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, - eBindImageMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, - ePhysicalDevice16BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, - eMemoryDedicatedRequirements = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, - eMemoryDedicatedAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, - eMemoryAllocateFlagsInfo = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, - eDeviceGroupRenderPassBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, - eDeviceGroupCommandBufferBeginInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, - eDeviceGroupSubmitInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, - eDeviceGroupBindSparseInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, - eBindBufferMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, - eBindImageMemoryDeviceGroupInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, - ePhysicalDeviceGroupProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, - eDeviceGroupDeviceCreateInfo = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, - eBufferMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, - eImageMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, - eImageSparseMemoryRequirementsInfo2 = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, - eMemoryRequirements2 = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, - eSparseImageMemoryRequirements2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, - ePhysicalDeviceFeatures2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, - ePhysicalDeviceProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, - eFormatProperties2 = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, - eImageFormatProperties2 = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, - ePhysicalDeviceImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, - eQueueFamilyProperties2 = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, - ePhysicalDeviceMemoryProperties2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, - eSparseImageFormatProperties2 = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, - ePhysicalDeviceSparseImageFormatInfo2 = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, - ePhysicalDevicePointClippingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, - eRenderPassInputAttachmentAspectCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, - eImageViewUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, - ePipelineTessellationDomainOriginStateCreateInfo = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, - eRenderPassMultiviewCreateInfo = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, - ePhysicalDeviceMultiviewFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, - ePhysicalDeviceMultiviewProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, - ePhysicalDeviceVariablePointersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, - eProtectedSubmitInfo = VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO, - ePhysicalDeviceProtectedMemoryFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES, - ePhysicalDeviceProtectedMemoryProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES, - eDeviceQueueInfo2 = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2, - eSamplerYcbcrConversionCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, - eSamplerYcbcrConversionInfo = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, - eBindImagePlaneMemoryInfo = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, - eImagePlaneMemoryRequirementsInfo = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, - ePhysicalDeviceSamplerYcbcrConversionFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, - eSamplerYcbcrConversionImageFormatProperties = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, - eDescriptorUpdateTemplateCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, - ePhysicalDeviceExternalImageFormatInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, - eExternalImageFormatProperties = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, - ePhysicalDeviceExternalBufferInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, - eExternalBufferProperties = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, - ePhysicalDeviceIdProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, - eExternalMemoryBufferCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, - eExternalMemoryImageCreateInfo = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, - eExportMemoryAllocateInfo = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, - ePhysicalDeviceExternalFenceInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, - eExternalFenceProperties = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, - eExportFenceCreateInfo = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, - eExportSemaphoreCreateInfo = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, - ePhysicalDeviceExternalSemaphoreInfo = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, - eExternalSemaphoreProperties = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, - ePhysicalDeviceMaintenance3Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, - eDescriptorSetLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, - ePhysicalDeviceShaderDrawParametersFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, - ePhysicalDeviceVulkan11Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES, - ePhysicalDeviceVulkan11Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES, - ePhysicalDeviceVulkan12Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES, - ePhysicalDeviceVulkan12Properties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES, - eImageFormatListCreateInfo = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO, - eAttachmentDescription2 = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2, - eAttachmentReference2 = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2, - eSubpassDescription2 = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2, - eSubpassDependency2 = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2, - eRenderPassCreateInfo2 = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2, - eSubpassBeginInfo = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO, - eSubpassEndInfo = VK_STRUCTURE_TYPE_SUBPASS_END_INFO, - ePhysicalDevice8BitStorageFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, - ePhysicalDeviceDriverProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, - ePhysicalDeviceShaderAtomicInt64Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, - ePhysicalDeviceShaderFloat16Int8Features = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, - ePhysicalDeviceFloatControlsProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, - eDescriptorSetLayoutBindingFlagsCreateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO, - ePhysicalDeviceDescriptorIndexingFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, - ePhysicalDeviceDescriptorIndexingProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, - eDescriptorSetVariableDescriptorCountAllocateInfo = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO, - eDescriptorSetVariableDescriptorCountLayoutSupport = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT, - ePhysicalDeviceDepthStencilResolveProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, - eSubpassDescriptionDepthStencilResolve = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE, - ePhysicalDeviceScalarBlockLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, - eImageStencilUsageCreateInfo = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO, - ePhysicalDeviceSamplerFilterMinmaxProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, - eSamplerReductionModeCreateInfo = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO, - ePhysicalDeviceVulkanMemoryModelFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, - ePhysicalDeviceImagelessFramebufferFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, - eFramebufferAttachmentsCreateInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO, - eFramebufferAttachmentImageInfo = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO, - eRenderPassAttachmentBeginInfo = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO, - ePhysicalDeviceUniformBufferStandardLayoutFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, - ePhysicalDeviceShaderSubgroupExtendedTypesFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, - ePhysicalDeviceSeparateDepthStencilLayoutsFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, - eAttachmentReferenceStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT, - eAttachmentDescriptionStencilLayout = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT, - ePhysicalDeviceHostQueryResetFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, - ePhysicalDeviceTimelineSemaphoreFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, - ePhysicalDeviceTimelineSemaphoreProperties = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, - eSemaphoreTypeCreateInfo = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO, - eTimelineSemaphoreSubmitInfo = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, - eSemaphoreWaitInfo = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, - eSemaphoreSignalInfo = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO, - ePhysicalDeviceBufferDeviceAddressFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, - eBufferDeviceAddressInfo = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, - eBufferOpaqueCaptureAddressCreateInfo = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO, - eMemoryOpaqueCaptureAddressAllocateInfo = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, - eDeviceMemoryOpaqueCaptureAddressInfo = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, - eSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR, - ePresentInfoKHR = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR, - eDeviceGroupPresentCapabilitiesKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR, - eImageSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR, - eBindImageMemorySwapchainInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR, - eAcquireNextImageInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR, - eDeviceGroupPresentInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR, - eDeviceGroupSwapchainCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR, - eDisplayModeCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR, - eDisplaySurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR, - eDisplayPresentInfoKHR = VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR, - eXlibSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR, - eXcbSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR, - eWaylandSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR, - eAndroidSurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR, - eWin32SurfaceCreateInfoKHR = VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR, - eDebugReportCallbackCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, - ePipelineRasterizationStateRasterizationOrderAMD = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD, - eDebugMarkerObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT, - eDebugMarkerObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT, - eDebugMarkerMarkerInfoEXT = VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT, - eDedicatedAllocationImageCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV, - eDedicatedAllocationBufferCreateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV, - eDedicatedAllocationMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV, - ePhysicalDeviceTransformFeedbackFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT, - ePhysicalDeviceTransformFeedbackPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT, - ePipelineRasterizationStateStreamCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT, - eImageViewHandleInfoNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX, - eImageViewAddressPropertiesNVX = VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX, - eTextureLodGatherFormatPropertiesAMD = VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD, - eStreamDescriptorSurfaceCreateInfoGGP = VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP, - ePhysicalDeviceCornerSampledImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV, - eExternalMemoryImageCreateInfoNV = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV, - eExportMemoryAllocateInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV, - eImportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV, - eExportMemoryWin32HandleInfoNV = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV, - eWin32KeyedMutexAcquireReleaseInfoNV = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV, - eValidationFlagsEXT = VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT, - eViSurfaceCreateInfoNN = VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN, - ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT, - eImageViewAstcDecodeModeEXT = VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT, - ePhysicalDeviceAstcDecodeFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT, - eImportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR, - eExportMemoryWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR, - eMemoryWin32HandlePropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR, - eMemoryGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR, - eImportMemoryFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR, - eMemoryFdPropertiesKHR = VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR, - eMemoryGetFdInfoKHR = VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR, - eWin32KeyedMutexAcquireReleaseInfoKHR = VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR, - eImportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR, - eExportSemaphoreWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR, - eD3D12FenceSubmitInfoKHR = VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR, - eSemaphoreGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR, - eImportSemaphoreFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR, - eSemaphoreGetFdInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR, - ePhysicalDevicePushDescriptorPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR, - eCommandBufferInheritanceConditionalRenderingInfoEXT = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT, - ePhysicalDeviceConditionalRenderingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT, - eConditionalRenderingBeginInfoEXT = VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT, - ePresentRegionsKHR = VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR, - ePipelineViewportWScalingStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV, - eSurfaceCapabilities2EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, - eDisplayPowerInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT, - eDeviceEventInfoEXT = VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT, - eDisplayEventInfoEXT = VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT, - eSwapchainCounterCreateInfoEXT = VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT, - ePresentTimesInfoGOOGLE = VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE, - ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX, - ePipelineViewportSwizzleStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV, - ePhysicalDeviceDiscardRectanglePropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT, - ePipelineDiscardRectangleStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT, - ePhysicalDeviceConservativeRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT, - ePipelineRasterizationConservativeStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT, - ePhysicalDeviceDepthClipEnableFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT, - ePipelineRasterizationDepthClipStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT, - eHdrMetadataEXT = VK_STRUCTURE_TYPE_HDR_METADATA_EXT, - eSharedPresentSurfaceCapabilitiesKHR = VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR, - eImportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR, - eExportFenceWin32HandleInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR, - eFenceGetWin32HandleInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR, - eImportFenceFdInfoKHR = VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR, - eFenceGetFdInfoKHR = VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR, - ePhysicalDevicePerformanceQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR, - ePhysicalDevicePerformanceQueryPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR, - eQueryPoolPerformanceCreateInfoKHR = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR, - ePerformanceQuerySubmitInfoKHR = VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR, - eAcquireProfilingLockInfoKHR = VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR, - ePerformanceCounterKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR, - ePerformanceCounterDescriptionKHR = VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR, - ePhysicalDeviceSurfaceInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR, - eSurfaceCapabilities2KHR = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR, - eSurfaceFormat2KHR = VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR, - eDisplayProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR, - eDisplayPlaneProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR, - eDisplayModeProperties2KHR = VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR, - eDisplayPlaneInfo2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR, - eDisplayPlaneCapabilities2KHR = VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR, - eIosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK, - eMacosSurfaceCreateInfoMVK = VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK, - eDebugUtilsObjectNameInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT, - eDebugUtilsObjectTagInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT, - eDebugUtilsLabelEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT, - eDebugUtilsMessengerCallbackDataEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT, - eDebugUtilsMessengerCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT, - eAndroidHardwareBufferUsageANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID, - eAndroidHardwareBufferPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID, - eAndroidHardwareBufferFormatPropertiesANDROID = VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID, - eImportAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID, - eMemoryGetAndroidHardwareBufferInfoANDROID = VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID, - eExternalFormatANDROID = VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID, - ePhysicalDeviceInlineUniformBlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT, - ePhysicalDeviceInlineUniformBlockPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT, - eWriteDescriptorSetInlineUniformBlockEXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT, - eDescriptorPoolInlineUniformBlockCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT, - eSampleLocationsInfoEXT = VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT, - eRenderPassSampleLocationsBeginInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT, - ePipelineSampleLocationsStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT, - ePhysicalDeviceSampleLocationsPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT, - eMultisamplePropertiesEXT = VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT, - ePhysicalDeviceBlendOperationAdvancedFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT, - ePhysicalDeviceBlendOperationAdvancedPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT, - ePipelineColorBlendAdvancedStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT, - ePipelineCoverageToColorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV, - eWriteDescriptorSetAccelerationStructureKHR = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR, - eAccelerationStructureBuildGeometryInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR, - eAccelerationStructureDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR, - eAccelerationStructureGeometryAabbsDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR, - eAccelerationStructureGeometryInstancesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR, - eAccelerationStructureGeometryTrianglesDataKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR, - eAccelerationStructureGeometryKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR, - eAccelerationStructureVersionInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR, - eCopyAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR, - eCopyAccelerationStructureToMemoryInfoKHR = VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR, - eCopyMemoryToAccelerationStructureInfoKHR = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR, - ePhysicalDeviceAccelerationStructureFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR, - ePhysicalDeviceAccelerationStructurePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR, - eAccelerationStructureCreateInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR, - eAccelerationStructureBuildSizesInfoKHR = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR, - ePhysicalDeviceRayTracingPipelineFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR, - ePhysicalDeviceRayTracingPipelinePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR, - eRayTracingPipelineCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR, - eRayTracingShaderGroupCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR, - eRayTracingPipelineInterfaceCreateInfoKHR = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR, - ePhysicalDeviceRayQueryFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR, - ePipelineCoverageModulationStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV, - ePhysicalDeviceShaderSmBuiltinsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV, - ePhysicalDeviceShaderSmBuiltinsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV, - eDrmFormatModifierPropertiesListEXT = VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT, - ePhysicalDeviceImageDrmFormatModifierInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT, - eImageDrmFormatModifierListCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT, - eImageDrmFormatModifierExplicitCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT, - eImageDrmFormatModifierPropertiesEXT = VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT, - eValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT, - eShaderModuleValidationCacheCreateInfoEXT = VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT, - ePhysicalDevicePortabilitySubsetFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR, - ePhysicalDevicePortabilitySubsetPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR, - ePipelineViewportShadingRateImageStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV, - ePhysicalDeviceShadingRateImageFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV, - ePhysicalDeviceShadingRateImagePropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV, - ePipelineViewportCoarseSampleOrderStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV, - eRayTracingPipelineCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV, - eAccelerationStructureCreateInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV, - eGeometryNV = VK_STRUCTURE_TYPE_GEOMETRY_NV, - eGeometryTrianglesNV = VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV, - eGeometryAabbNV = VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV, - eBindAccelerationStructureMemoryInfoNV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV, - eWriteDescriptorSetAccelerationStructureNV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV, - eAccelerationStructureMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV, - ePhysicalDeviceRayTracingPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV, - eRayTracingShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV, - eAccelerationStructureInfoNV = VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV, - ePhysicalDeviceRepresentativeFragmentTestFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV, - ePipelineRepresentativeFragmentTestStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV, - ePhysicalDeviceImageViewImageFormatInfoEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT, - eFilterCubicImageViewImageFormatPropertiesEXT = VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT, - eDeviceQueueGlobalPriorityCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT, - eImportMemoryHostPointerInfoEXT = VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT, - eMemoryHostPointerPropertiesEXT = VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT, - ePhysicalDeviceExternalMemoryHostPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT, - ePhysicalDeviceShaderClockFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR, - ePipelineCompilerControlCreateInfoAMD = VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD, - eCalibratedTimestampInfoEXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT, - ePhysicalDeviceShaderCorePropertiesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD, - eDeviceMemoryOverallocationCreateInfoAMD = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD, - ePhysicalDeviceVertexAttributeDivisorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT, - ePipelineVertexInputDivisorStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT, - ePhysicalDeviceVertexAttributeDivisorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT, - ePresentFrameTokenGGP = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP, - ePipelineCreationFeedbackCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT, - ePhysicalDeviceComputeShaderDerivativesFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV, - ePhysicalDeviceMeshShaderFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV, - ePhysicalDeviceMeshShaderPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV, - ePhysicalDeviceFragmentShaderBarycentricFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV, - ePhysicalDeviceShaderImageFootprintFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV, - ePipelineViewportExclusiveScissorStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV, - ePhysicalDeviceExclusiveScissorFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV, - eCheckpointDataNV = VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV, - eQueueFamilyCheckpointPropertiesNV = VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV, - ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL, - eQueryPoolPerformanceQueryCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL, - eInitializePerformanceApiInfoINTEL = VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL, - ePerformanceMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL, - ePerformanceStreamMarkerInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL, - ePerformanceOverrideInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL, - ePerformanceConfigurationAcquireInfoINTEL = VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL, - ePhysicalDevicePciBusInfoPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT, - eDisplayNativeHdrSurfaceCapabilitiesAMD = VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD, - eSwapchainDisplayNativeHdrCreateInfoAMD = VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD, - eImagepipeSurfaceCreateInfoFUCHSIA = VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA, - ePhysicalDeviceShaderTerminateInvocationFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR, - eMetalSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT, - ePhysicalDeviceFragmentDensityMapFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT, - ePhysicalDeviceFragmentDensityMapPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT, - eRenderPassFragmentDensityMapCreateInfoEXT = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT, - ePhysicalDeviceSubgroupSizeControlPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT, - ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT, - ePhysicalDeviceSubgroupSizeControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT, - eFragmentShadingRateAttachmentInfoKHR = VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR, - ePipelineFragmentShadingRateStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR, - ePhysicalDeviceFragmentShadingRatePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR, - ePhysicalDeviceFragmentShadingRateFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR, - ePhysicalDeviceFragmentShadingRateKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR, - ePhysicalDeviceShaderCoreProperties2AMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD, - ePhysicalDeviceCoherentMemoryFeaturesAMD = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD, - ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT, - ePhysicalDeviceMemoryBudgetPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT, - ePhysicalDeviceMemoryPriorityFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT, - eMemoryPriorityAllocateInfoEXT = VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT, - eSurfaceProtectedCapabilitiesKHR = VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR, - ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV, - ePhysicalDeviceBufferDeviceAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, - eBufferDeviceAddressCreateInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT, - ePhysicalDeviceToolPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT, - eValidationFeaturesEXT = VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT, - ePhysicalDeviceCooperativeMatrixFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV, - eCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV, - ePhysicalDeviceCooperativeMatrixPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV, - ePhysicalDeviceCoverageReductionModeFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV, - ePipelineCoverageReductionStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV, - eFramebufferMixedSamplesCombinationNV = VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV, - ePhysicalDeviceFragmentShaderInterlockFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT, - ePhysicalDeviceYcbcrImageArraysFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT, - eSurfaceFullScreenExclusiveInfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT, - eSurfaceCapabilitiesFullScreenExclusiveEXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT, - eSurfaceFullScreenExclusiveWin32InfoEXT = VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT, - eHeadlessSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT, - ePhysicalDeviceLineRasterizationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT, - ePipelineRasterizationLineStateCreateInfoEXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT, - ePhysicalDeviceLineRasterizationPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT, - ePhysicalDeviceShaderAtomicFloatFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT, - ePhysicalDeviceIndexTypeUint8FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT, - ePhysicalDeviceExtendedDynamicStateFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT, - ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR, - ePipelineInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR, - ePipelineExecutablePropertiesKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR, - ePipelineExecutableInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR, - ePipelineExecutableStatisticKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR, - ePipelineExecutableInternalRepresentationKHR = VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR, - ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT, - ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV, - eGraphicsShaderGroupCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV, - eGraphicsPipelineShaderGroupsCreateInfoNV = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV, - eIndirectCommandsLayoutTokenNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV, - eIndirectCommandsLayoutCreateInfoNV = VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV, - eGeneratedCommandsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV, - eGeneratedCommandsMemoryRequirementsInfoNV = VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV, - ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV, - ePhysicalDeviceTexelBufferAlignmentFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT, - ePhysicalDeviceTexelBufferAlignmentPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT, - eCommandBufferInheritanceRenderPassTransformInfoQCOM = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM, - eRenderPassTransformBeginInfoQCOM = VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM, - ePhysicalDeviceDeviceMemoryReportFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT, - eDeviceDeviceMemoryReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT, - eDeviceMemoryReportCallbackDataEXT = VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT, - ePhysicalDeviceRobustness2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT, - ePhysicalDeviceRobustness2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT, - eSamplerCustomBorderColorCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT, - ePhysicalDeviceCustomBorderColorPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT, - ePhysicalDeviceCustomBorderColorFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT, - ePipelineLibraryCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR, - ePhysicalDevicePrivateDataFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT, - eDevicePrivateDataCreateInfoEXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT, - ePrivateDataSlotCreateInfoEXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT, - ePhysicalDevicePipelineCreationCacheControlFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT, - ePhysicalDeviceDiagnosticsConfigFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV, - eDeviceDiagnosticsConfigCreateInfoNV = VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV, - ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV, - ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV, - ePipelineFragmentShadingRateEnumStateCreateInfoNV = VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV, - ePhysicalDeviceFragmentDensityMap2FeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT, - ePhysicalDeviceFragmentDensityMap2PropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT, - eCopyCommandTransformInfoQCOM = VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM, - ePhysicalDeviceImageRobustnessFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT, - eCopyBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR, - eCopyImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR, - eCopyBufferToImageInfo2KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR, - eCopyImageToBufferInfo2KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR, - eBlitImageInfo2KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR, - eResolveImageInfo2KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR, - eBufferCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR, - eImageCopy2KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR, - eImageBlit2KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR, - eBufferImageCopy2KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR, - eImageResolve2KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR, - ePhysicalDevice4444FormatsFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT, - eDirectfbSurfaceCreateInfoEXT = VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT, - ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE, - eMutableDescriptorTypeCreateInfoVALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE, - eAttachmentDescription2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR, - eAttachmentDescriptionStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR, - eAttachmentReference2KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR, - eAttachmentReferenceStencilLayoutKHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR, - eBindBufferMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR, - eBindBufferMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR, - eBindImageMemoryDeviceGroupInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR, - eBindImageMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR, - eBindImagePlaneMemoryInfoKHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR, - eBufferDeviceAddressInfoEXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT, - eBufferDeviceAddressInfoKHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR, - eBufferMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR, - eBufferOpaqueCaptureAddressCreateInfoKHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR, - eDebugReportCreateInfoEXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT, - eDescriptorSetLayoutBindingFlagsCreateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT, - eDescriptorSetLayoutSupportKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR, - eDescriptorSetVariableDescriptorCountAllocateInfoEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT, - eDescriptorSetVariableDescriptorCountLayoutSupportEXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT, - eDescriptorUpdateTemplateCreateInfoKHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR, - eDeviceGroupBindSparseInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR, - eDeviceGroupCommandBufferBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR, - eDeviceGroupDeviceCreateInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR, - eDeviceGroupRenderPassBeginInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR, - eDeviceGroupSubmitInfoKHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR, - eDeviceMemoryOpaqueCaptureAddressInfoKHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR, - eExportFenceCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR, - eExportMemoryAllocateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR, - eExportSemaphoreCreateInfoKHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR, - eExternalBufferPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR, - eExternalFencePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR, - eExternalImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR, - eExternalMemoryBufferCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR, - eExternalMemoryImageCreateInfoKHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR, - eExternalSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR, - eFormatProperties2KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR, - eFramebufferAttachmentsCreateInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR, - eFramebufferAttachmentImageInfoKHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR, - eImageFormatListCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR, - eImageFormatProperties2KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR, - eImageMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR, - eImagePlaneMemoryRequirementsInfoKHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR, - eImageSparseMemoryRequirementsInfo2KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR, - eImageStencilUsageCreateInfoEXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT, - eImageViewUsageCreateInfoKHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR, - eMemoryAllocateFlagsInfoKHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR, - eMemoryDedicatedAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR, - eMemoryDedicatedRequirementsKHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR, - eMemoryOpaqueCaptureAddressAllocateInfoKHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR, - eMemoryRequirements2KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR, - ePhysicalDevice16BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR, - ePhysicalDevice8BitStorageFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR, - ePhysicalDeviceBufferAddressFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT, - ePhysicalDeviceBufferDeviceAddressFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR, - ePhysicalDeviceDepthStencilResolvePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR, - ePhysicalDeviceDescriptorIndexingFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT, - ePhysicalDeviceDescriptorIndexingPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT, - ePhysicalDeviceDriverPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR, - ePhysicalDeviceExternalBufferInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR, - ePhysicalDeviceExternalFenceInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR, - ePhysicalDeviceExternalImageFormatInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR, - ePhysicalDeviceExternalSemaphoreInfoKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR, - ePhysicalDeviceFeatures2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR, - ePhysicalDeviceFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR, - ePhysicalDeviceFloatControlsPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR, - ePhysicalDeviceGroupPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR, - ePhysicalDeviceHostQueryResetFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT, - ePhysicalDeviceIdPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR, - ePhysicalDeviceImagelessFramebufferFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR, - ePhysicalDeviceImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR, - ePhysicalDeviceMaintenance3PropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR, - ePhysicalDeviceMemoryProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR, - ePhysicalDeviceMultiviewFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR, - ePhysicalDeviceMultiviewPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR, - ePhysicalDevicePointClippingPropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR, - ePhysicalDeviceProperties2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR, - ePhysicalDeviceSamplerFilterMinmaxPropertiesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT, - ePhysicalDeviceSamplerYcbcrConversionFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR, - ePhysicalDeviceScalarBlockLayoutFeaturesEXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT, - ePhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR, - ePhysicalDeviceShaderAtomicInt64FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR, - ePhysicalDeviceShaderDrawParameterFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES, - ePhysicalDeviceShaderFloat16Int8FeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR, - ePhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR, - ePhysicalDeviceSparseImageFormatInfo2KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR, - ePhysicalDeviceTimelineSemaphoreFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR, - ePhysicalDeviceTimelineSemaphorePropertiesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR, - ePhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR, - ePhysicalDeviceVariablePointersFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, - ePhysicalDeviceVariablePointerFeatures = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, - ePhysicalDeviceVariablePointerFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR, - ePhysicalDeviceVulkanMemoryModelFeaturesKHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR, - ePipelineTessellationDomainOriginStateCreateInfoKHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR, - eQueryPoolCreateInfoINTEL = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL, - eQueueFamilyProperties2KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR, - eRenderPassAttachmentBeginInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR, - eRenderPassCreateInfo2KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR, - eRenderPassInputAttachmentAspectCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR, - eRenderPassMultiviewCreateInfoKHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR, - eSamplerReductionModeCreateInfoEXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT, - eSamplerYcbcrConversionCreateInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR, - eSamplerYcbcrConversionImageFormatPropertiesKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR, - eSamplerYcbcrConversionInfoKHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR, - eSemaphoreSignalInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR, - eSemaphoreTypeCreateInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR, - eSemaphoreWaitInfoKHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR, - eSparseImageFormatProperties2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR, - eSparseImageMemoryRequirements2KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR, - eSubpassBeginInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR, - eSubpassDependency2KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR, - eSubpassDescription2KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR, - eSubpassDescriptionDepthStencilResolveKHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR, - eSubpassEndInfoKHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR, - eTimelineSemaphoreSubmitInfoKHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( StructureType value ) - { - switch ( value ) - { - case StructureType::eApplicationInfo : return "ApplicationInfo"; - case StructureType::eInstanceCreateInfo : return "InstanceCreateInfo"; - case StructureType::eDeviceQueueCreateInfo : return "DeviceQueueCreateInfo"; - case StructureType::eDeviceCreateInfo : return "DeviceCreateInfo"; - case StructureType::eSubmitInfo : return "SubmitInfo"; - case StructureType::eMemoryAllocateInfo : return "MemoryAllocateInfo"; - case StructureType::eMappedMemoryRange : return "MappedMemoryRange"; - case StructureType::eBindSparseInfo : return "BindSparseInfo"; - case StructureType::eFenceCreateInfo : return "FenceCreateInfo"; - case StructureType::eSemaphoreCreateInfo : return "SemaphoreCreateInfo"; - case StructureType::eEventCreateInfo : return "EventCreateInfo"; - case StructureType::eQueryPoolCreateInfo : return "QueryPoolCreateInfo"; - case StructureType::eBufferCreateInfo : return "BufferCreateInfo"; - case StructureType::eBufferViewCreateInfo : return "BufferViewCreateInfo"; - case StructureType::eImageCreateInfo : return "ImageCreateInfo"; - case StructureType::eImageViewCreateInfo : return "ImageViewCreateInfo"; - case StructureType::eShaderModuleCreateInfo : return "ShaderModuleCreateInfo"; - case StructureType::ePipelineCacheCreateInfo : return "PipelineCacheCreateInfo"; - case StructureType::ePipelineShaderStageCreateInfo : return "PipelineShaderStageCreateInfo"; - case StructureType::ePipelineVertexInputStateCreateInfo : return "PipelineVertexInputStateCreateInfo"; - case StructureType::ePipelineInputAssemblyStateCreateInfo : return "PipelineInputAssemblyStateCreateInfo"; - case StructureType::ePipelineTessellationStateCreateInfo : return "PipelineTessellationStateCreateInfo"; - case StructureType::ePipelineViewportStateCreateInfo : return "PipelineViewportStateCreateInfo"; - case StructureType::ePipelineRasterizationStateCreateInfo : return "PipelineRasterizationStateCreateInfo"; - case StructureType::ePipelineMultisampleStateCreateInfo : return "PipelineMultisampleStateCreateInfo"; - case StructureType::ePipelineDepthStencilStateCreateInfo : return "PipelineDepthStencilStateCreateInfo"; - case StructureType::ePipelineColorBlendStateCreateInfo : return "PipelineColorBlendStateCreateInfo"; - case StructureType::ePipelineDynamicStateCreateInfo : return "PipelineDynamicStateCreateInfo"; - case StructureType::eGraphicsPipelineCreateInfo : return "GraphicsPipelineCreateInfo"; - case StructureType::eComputePipelineCreateInfo : return "ComputePipelineCreateInfo"; - case StructureType::ePipelineLayoutCreateInfo : return "PipelineLayoutCreateInfo"; - case StructureType::eSamplerCreateInfo : return "SamplerCreateInfo"; - case StructureType::eDescriptorSetLayoutCreateInfo : return "DescriptorSetLayoutCreateInfo"; - case StructureType::eDescriptorPoolCreateInfo : return "DescriptorPoolCreateInfo"; - case StructureType::eDescriptorSetAllocateInfo : return "DescriptorSetAllocateInfo"; - case StructureType::eWriteDescriptorSet : return "WriteDescriptorSet"; - case StructureType::eCopyDescriptorSet : return "CopyDescriptorSet"; - case StructureType::eFramebufferCreateInfo : return "FramebufferCreateInfo"; - case StructureType::eRenderPassCreateInfo : return "RenderPassCreateInfo"; - case StructureType::eCommandPoolCreateInfo : return "CommandPoolCreateInfo"; - case StructureType::eCommandBufferAllocateInfo : return "CommandBufferAllocateInfo"; - case StructureType::eCommandBufferInheritanceInfo : return "CommandBufferInheritanceInfo"; - case StructureType::eCommandBufferBeginInfo : return "CommandBufferBeginInfo"; - case StructureType::eRenderPassBeginInfo : return "RenderPassBeginInfo"; - case StructureType::eBufferMemoryBarrier : return "BufferMemoryBarrier"; - case StructureType::eImageMemoryBarrier : return "ImageMemoryBarrier"; - case StructureType::eMemoryBarrier : return "MemoryBarrier"; - case StructureType::eLoaderInstanceCreateInfo : return "LoaderInstanceCreateInfo"; - case StructureType::eLoaderDeviceCreateInfo : return "LoaderDeviceCreateInfo"; - case StructureType::ePhysicalDeviceSubgroupProperties : return "PhysicalDeviceSubgroupProperties"; - case StructureType::eBindBufferMemoryInfo : return "BindBufferMemoryInfo"; - case StructureType::eBindImageMemoryInfo : return "BindImageMemoryInfo"; - case StructureType::ePhysicalDevice16BitStorageFeatures : return "PhysicalDevice16BitStorageFeatures"; - case StructureType::eMemoryDedicatedRequirements : return "MemoryDedicatedRequirements"; - case StructureType::eMemoryDedicatedAllocateInfo : return "MemoryDedicatedAllocateInfo"; - case StructureType::eMemoryAllocateFlagsInfo : return "MemoryAllocateFlagsInfo"; - case StructureType::eDeviceGroupRenderPassBeginInfo : return "DeviceGroupRenderPassBeginInfo"; - case StructureType::eDeviceGroupCommandBufferBeginInfo : return "DeviceGroupCommandBufferBeginInfo"; - case StructureType::eDeviceGroupSubmitInfo : return "DeviceGroupSubmitInfo"; - case StructureType::eDeviceGroupBindSparseInfo : return "DeviceGroupBindSparseInfo"; - case StructureType::eBindBufferMemoryDeviceGroupInfo : return "BindBufferMemoryDeviceGroupInfo"; - case StructureType::eBindImageMemoryDeviceGroupInfo : return "BindImageMemoryDeviceGroupInfo"; - case StructureType::ePhysicalDeviceGroupProperties : return "PhysicalDeviceGroupProperties"; - case StructureType::eDeviceGroupDeviceCreateInfo : return "DeviceGroupDeviceCreateInfo"; - case StructureType::eBufferMemoryRequirementsInfo2 : return "BufferMemoryRequirementsInfo2"; - case StructureType::eImageMemoryRequirementsInfo2 : return "ImageMemoryRequirementsInfo2"; - case StructureType::eImageSparseMemoryRequirementsInfo2 : return "ImageSparseMemoryRequirementsInfo2"; - case StructureType::eMemoryRequirements2 : return "MemoryRequirements2"; - case StructureType::eSparseImageMemoryRequirements2 : return "SparseImageMemoryRequirements2"; - case StructureType::ePhysicalDeviceFeatures2 : return "PhysicalDeviceFeatures2"; - case StructureType::ePhysicalDeviceProperties2 : return "PhysicalDeviceProperties2"; - case StructureType::eFormatProperties2 : return "FormatProperties2"; - case StructureType::eImageFormatProperties2 : return "ImageFormatProperties2"; - case StructureType::ePhysicalDeviceImageFormatInfo2 : return "PhysicalDeviceImageFormatInfo2"; - case StructureType::eQueueFamilyProperties2 : return "QueueFamilyProperties2"; - case StructureType::ePhysicalDeviceMemoryProperties2 : return "PhysicalDeviceMemoryProperties2"; - case StructureType::eSparseImageFormatProperties2 : return "SparseImageFormatProperties2"; - case StructureType::ePhysicalDeviceSparseImageFormatInfo2 : return "PhysicalDeviceSparseImageFormatInfo2"; - case StructureType::ePhysicalDevicePointClippingProperties : return "PhysicalDevicePointClippingProperties"; - case StructureType::eRenderPassInputAttachmentAspectCreateInfo : return "RenderPassInputAttachmentAspectCreateInfo"; - case StructureType::eImageViewUsageCreateInfo : return "ImageViewUsageCreateInfo"; - case StructureType::ePipelineTessellationDomainOriginStateCreateInfo : return "PipelineTessellationDomainOriginStateCreateInfo"; - case StructureType::eRenderPassMultiviewCreateInfo : return "RenderPassMultiviewCreateInfo"; - case StructureType::ePhysicalDeviceMultiviewFeatures : return "PhysicalDeviceMultiviewFeatures"; - case StructureType::ePhysicalDeviceMultiviewProperties : return "PhysicalDeviceMultiviewProperties"; - case StructureType::ePhysicalDeviceVariablePointersFeatures : return "PhysicalDeviceVariablePointersFeatures"; - case StructureType::eProtectedSubmitInfo : return "ProtectedSubmitInfo"; - case StructureType::ePhysicalDeviceProtectedMemoryFeatures : return "PhysicalDeviceProtectedMemoryFeatures"; - case StructureType::ePhysicalDeviceProtectedMemoryProperties : return "PhysicalDeviceProtectedMemoryProperties"; - case StructureType::eDeviceQueueInfo2 : return "DeviceQueueInfo2"; - case StructureType::eSamplerYcbcrConversionCreateInfo : return "SamplerYcbcrConversionCreateInfo"; - case StructureType::eSamplerYcbcrConversionInfo : return "SamplerYcbcrConversionInfo"; - case StructureType::eBindImagePlaneMemoryInfo : return "BindImagePlaneMemoryInfo"; - case StructureType::eImagePlaneMemoryRequirementsInfo : return "ImagePlaneMemoryRequirementsInfo"; - case StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures : return "PhysicalDeviceSamplerYcbcrConversionFeatures"; - case StructureType::eSamplerYcbcrConversionImageFormatProperties : return "SamplerYcbcrConversionImageFormatProperties"; - case StructureType::eDescriptorUpdateTemplateCreateInfo : return "DescriptorUpdateTemplateCreateInfo"; - case StructureType::ePhysicalDeviceExternalImageFormatInfo : return "PhysicalDeviceExternalImageFormatInfo"; - case StructureType::eExternalImageFormatProperties : return "ExternalImageFormatProperties"; - case StructureType::ePhysicalDeviceExternalBufferInfo : return "PhysicalDeviceExternalBufferInfo"; - case StructureType::eExternalBufferProperties : return "ExternalBufferProperties"; - case StructureType::ePhysicalDeviceIdProperties : return "PhysicalDeviceIdProperties"; - case StructureType::eExternalMemoryBufferCreateInfo : return "ExternalMemoryBufferCreateInfo"; - case StructureType::eExternalMemoryImageCreateInfo : return "ExternalMemoryImageCreateInfo"; - case StructureType::eExportMemoryAllocateInfo : return "ExportMemoryAllocateInfo"; - case StructureType::ePhysicalDeviceExternalFenceInfo : return "PhysicalDeviceExternalFenceInfo"; - case StructureType::eExternalFenceProperties : return "ExternalFenceProperties"; - case StructureType::eExportFenceCreateInfo : return "ExportFenceCreateInfo"; - case StructureType::eExportSemaphoreCreateInfo : return "ExportSemaphoreCreateInfo"; - case StructureType::ePhysicalDeviceExternalSemaphoreInfo : return "PhysicalDeviceExternalSemaphoreInfo"; - case StructureType::eExternalSemaphoreProperties : return "ExternalSemaphoreProperties"; - case StructureType::ePhysicalDeviceMaintenance3Properties : return "PhysicalDeviceMaintenance3Properties"; - case StructureType::eDescriptorSetLayoutSupport : return "DescriptorSetLayoutSupport"; - case StructureType::ePhysicalDeviceShaderDrawParametersFeatures : return "PhysicalDeviceShaderDrawParametersFeatures"; - case StructureType::ePhysicalDeviceVulkan11Features : return "PhysicalDeviceVulkan11Features"; - case StructureType::ePhysicalDeviceVulkan11Properties : return "PhysicalDeviceVulkan11Properties"; - case StructureType::ePhysicalDeviceVulkan12Features : return "PhysicalDeviceVulkan12Features"; - case StructureType::ePhysicalDeviceVulkan12Properties : return "PhysicalDeviceVulkan12Properties"; - case StructureType::eImageFormatListCreateInfo : return "ImageFormatListCreateInfo"; - case StructureType::eAttachmentDescription2 : return "AttachmentDescription2"; - case StructureType::eAttachmentReference2 : return "AttachmentReference2"; - case StructureType::eSubpassDescription2 : return "SubpassDescription2"; - case StructureType::eSubpassDependency2 : return "SubpassDependency2"; - case StructureType::eRenderPassCreateInfo2 : return "RenderPassCreateInfo2"; - case StructureType::eSubpassBeginInfo : return "SubpassBeginInfo"; - case StructureType::eSubpassEndInfo : return "SubpassEndInfo"; - case StructureType::ePhysicalDevice8BitStorageFeatures : return "PhysicalDevice8BitStorageFeatures"; - case StructureType::ePhysicalDeviceDriverProperties : return "PhysicalDeviceDriverProperties"; - case StructureType::ePhysicalDeviceShaderAtomicInt64Features : return "PhysicalDeviceShaderAtomicInt64Features"; - case StructureType::ePhysicalDeviceShaderFloat16Int8Features : return "PhysicalDeviceShaderFloat16Int8Features"; - case StructureType::ePhysicalDeviceFloatControlsProperties : return "PhysicalDeviceFloatControlsProperties"; - case StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo : return "DescriptorSetLayoutBindingFlagsCreateInfo"; - case StructureType::ePhysicalDeviceDescriptorIndexingFeatures : return "PhysicalDeviceDescriptorIndexingFeatures"; - case StructureType::ePhysicalDeviceDescriptorIndexingProperties : return "PhysicalDeviceDescriptorIndexingProperties"; - case StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo : return "DescriptorSetVariableDescriptorCountAllocateInfo"; - case StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport : return "DescriptorSetVariableDescriptorCountLayoutSupport"; - case StructureType::ePhysicalDeviceDepthStencilResolveProperties : return "PhysicalDeviceDepthStencilResolveProperties"; - case StructureType::eSubpassDescriptionDepthStencilResolve : return "SubpassDescriptionDepthStencilResolve"; - case StructureType::ePhysicalDeviceScalarBlockLayoutFeatures : return "PhysicalDeviceScalarBlockLayoutFeatures"; - case StructureType::eImageStencilUsageCreateInfo : return "ImageStencilUsageCreateInfo"; - case StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties : return "PhysicalDeviceSamplerFilterMinmaxProperties"; - case StructureType::eSamplerReductionModeCreateInfo : return "SamplerReductionModeCreateInfo"; - case StructureType::ePhysicalDeviceVulkanMemoryModelFeatures : return "PhysicalDeviceVulkanMemoryModelFeatures"; - case StructureType::ePhysicalDeviceImagelessFramebufferFeatures : return "PhysicalDeviceImagelessFramebufferFeatures"; - case StructureType::eFramebufferAttachmentsCreateInfo : return "FramebufferAttachmentsCreateInfo"; - case StructureType::eFramebufferAttachmentImageInfo : return "FramebufferAttachmentImageInfo"; - case StructureType::eRenderPassAttachmentBeginInfo : return "RenderPassAttachmentBeginInfo"; - case StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures : return "PhysicalDeviceUniformBufferStandardLayoutFeatures"; - case StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures : return "PhysicalDeviceShaderSubgroupExtendedTypesFeatures"; - case StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures : return "PhysicalDeviceSeparateDepthStencilLayoutsFeatures"; - case StructureType::eAttachmentReferenceStencilLayout : return "AttachmentReferenceStencilLayout"; - case StructureType::eAttachmentDescriptionStencilLayout : return "AttachmentDescriptionStencilLayout"; - case StructureType::ePhysicalDeviceHostQueryResetFeatures : return "PhysicalDeviceHostQueryResetFeatures"; - case StructureType::ePhysicalDeviceTimelineSemaphoreFeatures : return "PhysicalDeviceTimelineSemaphoreFeatures"; - case StructureType::ePhysicalDeviceTimelineSemaphoreProperties : return "PhysicalDeviceTimelineSemaphoreProperties"; - case StructureType::eSemaphoreTypeCreateInfo : return "SemaphoreTypeCreateInfo"; - case StructureType::eTimelineSemaphoreSubmitInfo : return "TimelineSemaphoreSubmitInfo"; - case StructureType::eSemaphoreWaitInfo : return "SemaphoreWaitInfo"; - case StructureType::eSemaphoreSignalInfo : return "SemaphoreSignalInfo"; - case StructureType::ePhysicalDeviceBufferDeviceAddressFeatures : return "PhysicalDeviceBufferDeviceAddressFeatures"; - case StructureType::eBufferDeviceAddressInfo : return "BufferDeviceAddressInfo"; - case StructureType::eBufferOpaqueCaptureAddressCreateInfo : return "BufferOpaqueCaptureAddressCreateInfo"; - case StructureType::eMemoryOpaqueCaptureAddressAllocateInfo : return "MemoryOpaqueCaptureAddressAllocateInfo"; - case StructureType::eDeviceMemoryOpaqueCaptureAddressInfo : return "DeviceMemoryOpaqueCaptureAddressInfo"; - case StructureType::eSwapchainCreateInfoKHR : return "SwapchainCreateInfoKHR"; - case StructureType::ePresentInfoKHR : return "PresentInfoKHR"; - case StructureType::eDeviceGroupPresentCapabilitiesKHR : return "DeviceGroupPresentCapabilitiesKHR"; - case StructureType::eImageSwapchainCreateInfoKHR : return "ImageSwapchainCreateInfoKHR"; - case StructureType::eBindImageMemorySwapchainInfoKHR : return "BindImageMemorySwapchainInfoKHR"; - case StructureType::eAcquireNextImageInfoKHR : return "AcquireNextImageInfoKHR"; - case StructureType::eDeviceGroupPresentInfoKHR : return "DeviceGroupPresentInfoKHR"; - case StructureType::eDeviceGroupSwapchainCreateInfoKHR : return "DeviceGroupSwapchainCreateInfoKHR"; - case StructureType::eDisplayModeCreateInfoKHR : return "DisplayModeCreateInfoKHR"; - case StructureType::eDisplaySurfaceCreateInfoKHR : return "DisplaySurfaceCreateInfoKHR"; - case StructureType::eDisplayPresentInfoKHR : return "DisplayPresentInfoKHR"; - case StructureType::eXlibSurfaceCreateInfoKHR : return "XlibSurfaceCreateInfoKHR"; - case StructureType::eXcbSurfaceCreateInfoKHR : return "XcbSurfaceCreateInfoKHR"; - case StructureType::eWaylandSurfaceCreateInfoKHR : return "WaylandSurfaceCreateInfoKHR"; - case StructureType::eAndroidSurfaceCreateInfoKHR : return "AndroidSurfaceCreateInfoKHR"; - case StructureType::eWin32SurfaceCreateInfoKHR : return "Win32SurfaceCreateInfoKHR"; - case StructureType::eDebugReportCallbackCreateInfoEXT : return "DebugReportCallbackCreateInfoEXT"; - case StructureType::ePipelineRasterizationStateRasterizationOrderAMD : return "PipelineRasterizationStateRasterizationOrderAMD"; - case StructureType::eDebugMarkerObjectNameInfoEXT : return "DebugMarkerObjectNameInfoEXT"; - case StructureType::eDebugMarkerObjectTagInfoEXT : return "DebugMarkerObjectTagInfoEXT"; - case StructureType::eDebugMarkerMarkerInfoEXT : return "DebugMarkerMarkerInfoEXT"; - case StructureType::eDedicatedAllocationImageCreateInfoNV : return "DedicatedAllocationImageCreateInfoNV"; - case StructureType::eDedicatedAllocationBufferCreateInfoNV : return "DedicatedAllocationBufferCreateInfoNV"; - case StructureType::eDedicatedAllocationMemoryAllocateInfoNV : return "DedicatedAllocationMemoryAllocateInfoNV"; - case StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT : return "PhysicalDeviceTransformFeedbackFeaturesEXT"; - case StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT : return "PhysicalDeviceTransformFeedbackPropertiesEXT"; - case StructureType::ePipelineRasterizationStateStreamCreateInfoEXT : return "PipelineRasterizationStateStreamCreateInfoEXT"; - case StructureType::eImageViewHandleInfoNVX : return "ImageViewHandleInfoNVX"; - case StructureType::eImageViewAddressPropertiesNVX : return "ImageViewAddressPropertiesNVX"; - case StructureType::eTextureLodGatherFormatPropertiesAMD : return "TextureLodGatherFormatPropertiesAMD"; - case StructureType::eStreamDescriptorSurfaceCreateInfoGGP : return "StreamDescriptorSurfaceCreateInfoGGP"; - case StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV : return "PhysicalDeviceCornerSampledImageFeaturesNV"; - case StructureType::eExternalMemoryImageCreateInfoNV : return "ExternalMemoryImageCreateInfoNV"; - case StructureType::eExportMemoryAllocateInfoNV : return "ExportMemoryAllocateInfoNV"; - case StructureType::eImportMemoryWin32HandleInfoNV : return "ImportMemoryWin32HandleInfoNV"; - case StructureType::eExportMemoryWin32HandleInfoNV : return "ExportMemoryWin32HandleInfoNV"; - case StructureType::eWin32KeyedMutexAcquireReleaseInfoNV : return "Win32KeyedMutexAcquireReleaseInfoNV"; - case StructureType::eValidationFlagsEXT : return "ValidationFlagsEXT"; - case StructureType::eViSurfaceCreateInfoNN : return "ViSurfaceCreateInfoNN"; - case StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT : return "PhysicalDeviceTextureCompressionAstcHdrFeaturesEXT"; - case StructureType::eImageViewAstcDecodeModeEXT : return "ImageViewAstcDecodeModeEXT"; - case StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT : return "PhysicalDeviceAstcDecodeFeaturesEXT"; - case StructureType::eImportMemoryWin32HandleInfoKHR : return "ImportMemoryWin32HandleInfoKHR"; - case StructureType::eExportMemoryWin32HandleInfoKHR : return "ExportMemoryWin32HandleInfoKHR"; - case StructureType::eMemoryWin32HandlePropertiesKHR : return "MemoryWin32HandlePropertiesKHR"; - case StructureType::eMemoryGetWin32HandleInfoKHR : return "MemoryGetWin32HandleInfoKHR"; - case StructureType::eImportMemoryFdInfoKHR : return "ImportMemoryFdInfoKHR"; - case StructureType::eMemoryFdPropertiesKHR : return "MemoryFdPropertiesKHR"; - case StructureType::eMemoryGetFdInfoKHR : return "MemoryGetFdInfoKHR"; - case StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR : return "Win32KeyedMutexAcquireReleaseInfoKHR"; - case StructureType::eImportSemaphoreWin32HandleInfoKHR : return "ImportSemaphoreWin32HandleInfoKHR"; - case StructureType::eExportSemaphoreWin32HandleInfoKHR : return "ExportSemaphoreWin32HandleInfoKHR"; - case StructureType::eD3D12FenceSubmitInfoKHR : return "D3D12FenceSubmitInfoKHR"; - case StructureType::eSemaphoreGetWin32HandleInfoKHR : return "SemaphoreGetWin32HandleInfoKHR"; - case StructureType::eImportSemaphoreFdInfoKHR : return "ImportSemaphoreFdInfoKHR"; - case StructureType::eSemaphoreGetFdInfoKHR : return "SemaphoreGetFdInfoKHR"; - case StructureType::ePhysicalDevicePushDescriptorPropertiesKHR : return "PhysicalDevicePushDescriptorPropertiesKHR"; - case StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT : return "CommandBufferInheritanceConditionalRenderingInfoEXT"; - case StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT : return "PhysicalDeviceConditionalRenderingFeaturesEXT"; - case StructureType::eConditionalRenderingBeginInfoEXT : return "ConditionalRenderingBeginInfoEXT"; - case StructureType::ePresentRegionsKHR : return "PresentRegionsKHR"; - case StructureType::ePipelineViewportWScalingStateCreateInfoNV : return "PipelineViewportWScalingStateCreateInfoNV"; - case StructureType::eSurfaceCapabilities2EXT : return "SurfaceCapabilities2EXT"; - case StructureType::eDisplayPowerInfoEXT : return "DisplayPowerInfoEXT"; - case StructureType::eDeviceEventInfoEXT : return "DeviceEventInfoEXT"; - case StructureType::eDisplayEventInfoEXT : return "DisplayEventInfoEXT"; - case StructureType::eSwapchainCounterCreateInfoEXT : return "SwapchainCounterCreateInfoEXT"; - case StructureType::ePresentTimesInfoGOOGLE : return "PresentTimesInfoGOOGLE"; - case StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX : return "PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX"; - case StructureType::ePipelineViewportSwizzleStateCreateInfoNV : return "PipelineViewportSwizzleStateCreateInfoNV"; - case StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT : return "PhysicalDeviceDiscardRectanglePropertiesEXT"; - case StructureType::ePipelineDiscardRectangleStateCreateInfoEXT : return "PipelineDiscardRectangleStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT : return "PhysicalDeviceConservativeRasterizationPropertiesEXT"; - case StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT : return "PipelineRasterizationConservativeStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT : return "PhysicalDeviceDepthClipEnableFeaturesEXT"; - case StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT : return "PipelineRasterizationDepthClipStateCreateInfoEXT"; - case StructureType::eHdrMetadataEXT : return "HdrMetadataEXT"; - case StructureType::eSharedPresentSurfaceCapabilitiesKHR : return "SharedPresentSurfaceCapabilitiesKHR"; - case StructureType::eImportFenceWin32HandleInfoKHR : return "ImportFenceWin32HandleInfoKHR"; - case StructureType::eExportFenceWin32HandleInfoKHR : return "ExportFenceWin32HandleInfoKHR"; - case StructureType::eFenceGetWin32HandleInfoKHR : return "FenceGetWin32HandleInfoKHR"; - case StructureType::eImportFenceFdInfoKHR : return "ImportFenceFdInfoKHR"; - case StructureType::eFenceGetFdInfoKHR : return "FenceGetFdInfoKHR"; - case StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR : return "PhysicalDevicePerformanceQueryFeaturesKHR"; - case StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR : return "PhysicalDevicePerformanceQueryPropertiesKHR"; - case StructureType::eQueryPoolPerformanceCreateInfoKHR : return "QueryPoolPerformanceCreateInfoKHR"; - case StructureType::ePerformanceQuerySubmitInfoKHR : return "PerformanceQuerySubmitInfoKHR"; - case StructureType::eAcquireProfilingLockInfoKHR : return "AcquireProfilingLockInfoKHR"; - case StructureType::ePerformanceCounterKHR : return "PerformanceCounterKHR"; - case StructureType::ePerformanceCounterDescriptionKHR : return "PerformanceCounterDescriptionKHR"; - case StructureType::ePhysicalDeviceSurfaceInfo2KHR : return "PhysicalDeviceSurfaceInfo2KHR"; - case StructureType::eSurfaceCapabilities2KHR : return "SurfaceCapabilities2KHR"; - case StructureType::eSurfaceFormat2KHR : return "SurfaceFormat2KHR"; - case StructureType::eDisplayProperties2KHR : return "DisplayProperties2KHR"; - case StructureType::eDisplayPlaneProperties2KHR : return "DisplayPlaneProperties2KHR"; - case StructureType::eDisplayModeProperties2KHR : return "DisplayModeProperties2KHR"; - case StructureType::eDisplayPlaneInfo2KHR : return "DisplayPlaneInfo2KHR"; - case StructureType::eDisplayPlaneCapabilities2KHR : return "DisplayPlaneCapabilities2KHR"; - case StructureType::eIosSurfaceCreateInfoMVK : return "IosSurfaceCreateInfoMVK"; - case StructureType::eMacosSurfaceCreateInfoMVK : return "MacosSurfaceCreateInfoMVK"; - case StructureType::eDebugUtilsObjectNameInfoEXT : return "DebugUtilsObjectNameInfoEXT"; - case StructureType::eDebugUtilsObjectTagInfoEXT : return "DebugUtilsObjectTagInfoEXT"; - case StructureType::eDebugUtilsLabelEXT : return "DebugUtilsLabelEXT"; - case StructureType::eDebugUtilsMessengerCallbackDataEXT : return "DebugUtilsMessengerCallbackDataEXT"; - case StructureType::eDebugUtilsMessengerCreateInfoEXT : return "DebugUtilsMessengerCreateInfoEXT"; - case StructureType::eAndroidHardwareBufferUsageANDROID : return "AndroidHardwareBufferUsageANDROID"; - case StructureType::eAndroidHardwareBufferPropertiesANDROID : return "AndroidHardwareBufferPropertiesANDROID"; - case StructureType::eAndroidHardwareBufferFormatPropertiesANDROID : return "AndroidHardwareBufferFormatPropertiesANDROID"; - case StructureType::eImportAndroidHardwareBufferInfoANDROID : return "ImportAndroidHardwareBufferInfoANDROID"; - case StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID : return "MemoryGetAndroidHardwareBufferInfoANDROID"; - case StructureType::eExternalFormatANDROID : return "ExternalFormatANDROID"; - case StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT : return "PhysicalDeviceInlineUniformBlockFeaturesEXT"; - case StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT : return "PhysicalDeviceInlineUniformBlockPropertiesEXT"; - case StructureType::eWriteDescriptorSetInlineUniformBlockEXT : return "WriteDescriptorSetInlineUniformBlockEXT"; - case StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT : return "DescriptorPoolInlineUniformBlockCreateInfoEXT"; - case StructureType::eSampleLocationsInfoEXT : return "SampleLocationsInfoEXT"; - case StructureType::eRenderPassSampleLocationsBeginInfoEXT : return "RenderPassSampleLocationsBeginInfoEXT"; - case StructureType::ePipelineSampleLocationsStateCreateInfoEXT : return "PipelineSampleLocationsStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT : return "PhysicalDeviceSampleLocationsPropertiesEXT"; - case StructureType::eMultisamplePropertiesEXT : return "MultisamplePropertiesEXT"; - case StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT : return "PhysicalDeviceBlendOperationAdvancedFeaturesEXT"; - case StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT : return "PhysicalDeviceBlendOperationAdvancedPropertiesEXT"; - case StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT : return "PipelineColorBlendAdvancedStateCreateInfoEXT"; - case StructureType::ePipelineCoverageToColorStateCreateInfoNV : return "PipelineCoverageToColorStateCreateInfoNV"; - case StructureType::eWriteDescriptorSetAccelerationStructureKHR : return "WriteDescriptorSetAccelerationStructureKHR"; - case StructureType::eAccelerationStructureBuildGeometryInfoKHR : return "AccelerationStructureBuildGeometryInfoKHR"; - case StructureType::eAccelerationStructureDeviceAddressInfoKHR : return "AccelerationStructureDeviceAddressInfoKHR"; - case StructureType::eAccelerationStructureGeometryAabbsDataKHR : return "AccelerationStructureGeometryAabbsDataKHR"; - case StructureType::eAccelerationStructureGeometryInstancesDataKHR : return "AccelerationStructureGeometryInstancesDataKHR"; - case StructureType::eAccelerationStructureGeometryTrianglesDataKHR : return "AccelerationStructureGeometryTrianglesDataKHR"; - case StructureType::eAccelerationStructureGeometryKHR : return "AccelerationStructureGeometryKHR"; - case StructureType::eAccelerationStructureVersionInfoKHR : return "AccelerationStructureVersionInfoKHR"; - case StructureType::eCopyAccelerationStructureInfoKHR : return "CopyAccelerationStructureInfoKHR"; - case StructureType::eCopyAccelerationStructureToMemoryInfoKHR : return "CopyAccelerationStructureToMemoryInfoKHR"; - case StructureType::eCopyMemoryToAccelerationStructureInfoKHR : return "CopyMemoryToAccelerationStructureInfoKHR"; - case StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR : return "PhysicalDeviceAccelerationStructureFeaturesKHR"; - case StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR : return "PhysicalDeviceAccelerationStructurePropertiesKHR"; - case StructureType::eAccelerationStructureCreateInfoKHR : return "AccelerationStructureCreateInfoKHR"; - case StructureType::eAccelerationStructureBuildSizesInfoKHR : return "AccelerationStructureBuildSizesInfoKHR"; - case StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR : return "PhysicalDeviceRayTracingPipelineFeaturesKHR"; - case StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR : return "PhysicalDeviceRayTracingPipelinePropertiesKHR"; - case StructureType::eRayTracingPipelineCreateInfoKHR : return "RayTracingPipelineCreateInfoKHR"; - case StructureType::eRayTracingShaderGroupCreateInfoKHR : return "RayTracingShaderGroupCreateInfoKHR"; - case StructureType::eRayTracingPipelineInterfaceCreateInfoKHR : return "RayTracingPipelineInterfaceCreateInfoKHR"; - case StructureType::ePhysicalDeviceRayQueryFeaturesKHR : return "PhysicalDeviceRayQueryFeaturesKHR"; - case StructureType::ePipelineCoverageModulationStateCreateInfoNV : return "PipelineCoverageModulationStateCreateInfoNV"; - case StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV : return "PhysicalDeviceShaderSmBuiltinsFeaturesNV"; - case StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV : return "PhysicalDeviceShaderSmBuiltinsPropertiesNV"; - case StructureType::eDrmFormatModifierPropertiesListEXT : return "DrmFormatModifierPropertiesListEXT"; - case StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT : return "PhysicalDeviceImageDrmFormatModifierInfoEXT"; - case StructureType::eImageDrmFormatModifierListCreateInfoEXT : return "ImageDrmFormatModifierListCreateInfoEXT"; - case StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT : return "ImageDrmFormatModifierExplicitCreateInfoEXT"; - case StructureType::eImageDrmFormatModifierPropertiesEXT : return "ImageDrmFormatModifierPropertiesEXT"; - case StructureType::eValidationCacheCreateInfoEXT : return "ValidationCacheCreateInfoEXT"; - case StructureType::eShaderModuleValidationCacheCreateInfoEXT : return "ShaderModuleValidationCacheCreateInfoEXT"; - case StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR : return "PhysicalDevicePortabilitySubsetFeaturesKHR"; - case StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR : return "PhysicalDevicePortabilitySubsetPropertiesKHR"; - case StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV : return "PipelineViewportShadingRateImageStateCreateInfoNV"; - case StructureType::ePhysicalDeviceShadingRateImageFeaturesNV : return "PhysicalDeviceShadingRateImageFeaturesNV"; - case StructureType::ePhysicalDeviceShadingRateImagePropertiesNV : return "PhysicalDeviceShadingRateImagePropertiesNV"; - case StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV : return "PipelineViewportCoarseSampleOrderStateCreateInfoNV"; - case StructureType::eRayTracingPipelineCreateInfoNV : return "RayTracingPipelineCreateInfoNV"; - case StructureType::eAccelerationStructureCreateInfoNV : return "AccelerationStructureCreateInfoNV"; - case StructureType::eGeometryNV : return "GeometryNV"; - case StructureType::eGeometryTrianglesNV : return "GeometryTrianglesNV"; - case StructureType::eGeometryAabbNV : return "GeometryAabbNV"; - case StructureType::eBindAccelerationStructureMemoryInfoNV : return "BindAccelerationStructureMemoryInfoNV"; - case StructureType::eWriteDescriptorSetAccelerationStructureNV : return "WriteDescriptorSetAccelerationStructureNV"; - case StructureType::eAccelerationStructureMemoryRequirementsInfoNV : return "AccelerationStructureMemoryRequirementsInfoNV"; - case StructureType::ePhysicalDeviceRayTracingPropertiesNV : return "PhysicalDeviceRayTracingPropertiesNV"; - case StructureType::eRayTracingShaderGroupCreateInfoNV : return "RayTracingShaderGroupCreateInfoNV"; - case StructureType::eAccelerationStructureInfoNV : return "AccelerationStructureInfoNV"; - case StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV : return "PhysicalDeviceRepresentativeFragmentTestFeaturesNV"; - case StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV : return "PipelineRepresentativeFragmentTestStateCreateInfoNV"; - case StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT : return "PhysicalDeviceImageViewImageFormatInfoEXT"; - case StructureType::eFilterCubicImageViewImageFormatPropertiesEXT : return "FilterCubicImageViewImageFormatPropertiesEXT"; - case StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT : return "DeviceQueueGlobalPriorityCreateInfoEXT"; - case StructureType::eImportMemoryHostPointerInfoEXT : return "ImportMemoryHostPointerInfoEXT"; - case StructureType::eMemoryHostPointerPropertiesEXT : return "MemoryHostPointerPropertiesEXT"; - case StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT : return "PhysicalDeviceExternalMemoryHostPropertiesEXT"; - case StructureType::ePhysicalDeviceShaderClockFeaturesKHR : return "PhysicalDeviceShaderClockFeaturesKHR"; - case StructureType::ePipelineCompilerControlCreateInfoAMD : return "PipelineCompilerControlCreateInfoAMD"; - case StructureType::eCalibratedTimestampInfoEXT : return "CalibratedTimestampInfoEXT"; - case StructureType::ePhysicalDeviceShaderCorePropertiesAMD : return "PhysicalDeviceShaderCorePropertiesAMD"; - case StructureType::eDeviceMemoryOverallocationCreateInfoAMD : return "DeviceMemoryOverallocationCreateInfoAMD"; - case StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT : return "PhysicalDeviceVertexAttributeDivisorPropertiesEXT"; - case StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT : return "PipelineVertexInputDivisorStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT : return "PhysicalDeviceVertexAttributeDivisorFeaturesEXT"; - case StructureType::ePresentFrameTokenGGP : return "PresentFrameTokenGGP"; - case StructureType::ePipelineCreationFeedbackCreateInfoEXT : return "PipelineCreationFeedbackCreateInfoEXT"; - case StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV : return "PhysicalDeviceComputeShaderDerivativesFeaturesNV"; - case StructureType::ePhysicalDeviceMeshShaderFeaturesNV : return "PhysicalDeviceMeshShaderFeaturesNV"; - case StructureType::ePhysicalDeviceMeshShaderPropertiesNV : return "PhysicalDeviceMeshShaderPropertiesNV"; - case StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV : return "PhysicalDeviceFragmentShaderBarycentricFeaturesNV"; - case StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV : return "PhysicalDeviceShaderImageFootprintFeaturesNV"; - case StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV : return "PipelineViewportExclusiveScissorStateCreateInfoNV"; - case StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV : return "PhysicalDeviceExclusiveScissorFeaturesNV"; - case StructureType::eCheckpointDataNV : return "CheckpointDataNV"; - case StructureType::eQueueFamilyCheckpointPropertiesNV : return "QueueFamilyCheckpointPropertiesNV"; - case StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL : return "PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL"; - case StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL : return "QueryPoolPerformanceQueryCreateInfoINTEL"; - case StructureType::eInitializePerformanceApiInfoINTEL : return "InitializePerformanceApiInfoINTEL"; - case StructureType::ePerformanceMarkerInfoINTEL : return "PerformanceMarkerInfoINTEL"; - case StructureType::ePerformanceStreamMarkerInfoINTEL : return "PerformanceStreamMarkerInfoINTEL"; - case StructureType::ePerformanceOverrideInfoINTEL : return "PerformanceOverrideInfoINTEL"; - case StructureType::ePerformanceConfigurationAcquireInfoINTEL : return "PerformanceConfigurationAcquireInfoINTEL"; - case StructureType::ePhysicalDevicePciBusInfoPropertiesEXT : return "PhysicalDevicePciBusInfoPropertiesEXT"; - case StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD : return "DisplayNativeHdrSurfaceCapabilitiesAMD"; - case StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD : return "SwapchainDisplayNativeHdrCreateInfoAMD"; - case StructureType::eImagepipeSurfaceCreateInfoFUCHSIA : return "ImagepipeSurfaceCreateInfoFUCHSIA"; - case StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR : return "PhysicalDeviceShaderTerminateInvocationFeaturesKHR"; - case StructureType::eMetalSurfaceCreateInfoEXT : return "MetalSurfaceCreateInfoEXT"; - case StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT : return "PhysicalDeviceFragmentDensityMapFeaturesEXT"; - case StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT : return "PhysicalDeviceFragmentDensityMapPropertiesEXT"; - case StructureType::eRenderPassFragmentDensityMapCreateInfoEXT : return "RenderPassFragmentDensityMapCreateInfoEXT"; - case StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT : return "PhysicalDeviceSubgroupSizeControlPropertiesEXT"; - case StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT : return "PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT"; - case StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT : return "PhysicalDeviceSubgroupSizeControlFeaturesEXT"; - case StructureType::eFragmentShadingRateAttachmentInfoKHR : return "FragmentShadingRateAttachmentInfoKHR"; - case StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR : return "PipelineFragmentShadingRateStateCreateInfoKHR"; - case StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR : return "PhysicalDeviceFragmentShadingRatePropertiesKHR"; - case StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR : return "PhysicalDeviceFragmentShadingRateFeaturesKHR"; - case StructureType::ePhysicalDeviceFragmentShadingRateKHR : return "PhysicalDeviceFragmentShadingRateKHR"; - case StructureType::ePhysicalDeviceShaderCoreProperties2AMD : return "PhysicalDeviceShaderCoreProperties2AMD"; - case StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD : return "PhysicalDeviceCoherentMemoryFeaturesAMD"; - case StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT : return "PhysicalDeviceShaderImageAtomicInt64FeaturesEXT"; - case StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT : return "PhysicalDeviceMemoryBudgetPropertiesEXT"; - case StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT : return "PhysicalDeviceMemoryPriorityFeaturesEXT"; - case StructureType::eMemoryPriorityAllocateInfoEXT : return "MemoryPriorityAllocateInfoEXT"; - case StructureType::eSurfaceProtectedCapabilitiesKHR : return "SurfaceProtectedCapabilitiesKHR"; - case StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV : return "PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV"; - case StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT : return "PhysicalDeviceBufferDeviceAddressFeaturesEXT"; - case StructureType::eBufferDeviceAddressCreateInfoEXT : return "BufferDeviceAddressCreateInfoEXT"; - case StructureType::ePhysicalDeviceToolPropertiesEXT : return "PhysicalDeviceToolPropertiesEXT"; - case StructureType::eValidationFeaturesEXT : return "ValidationFeaturesEXT"; - case StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV : return "PhysicalDeviceCooperativeMatrixFeaturesNV"; - case StructureType::eCooperativeMatrixPropertiesNV : return "CooperativeMatrixPropertiesNV"; - case StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV : return "PhysicalDeviceCooperativeMatrixPropertiesNV"; - case StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV : return "PhysicalDeviceCoverageReductionModeFeaturesNV"; - case StructureType::ePipelineCoverageReductionStateCreateInfoNV : return "PipelineCoverageReductionStateCreateInfoNV"; - case StructureType::eFramebufferMixedSamplesCombinationNV : return "FramebufferMixedSamplesCombinationNV"; - case StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT : return "PhysicalDeviceFragmentShaderInterlockFeaturesEXT"; - case StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT : return "PhysicalDeviceYcbcrImageArraysFeaturesEXT"; - case StructureType::eSurfaceFullScreenExclusiveInfoEXT : return "SurfaceFullScreenExclusiveInfoEXT"; - case StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT : return "SurfaceCapabilitiesFullScreenExclusiveEXT"; - case StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT : return "SurfaceFullScreenExclusiveWin32InfoEXT"; - case StructureType::eHeadlessSurfaceCreateInfoEXT : return "HeadlessSurfaceCreateInfoEXT"; - case StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT : return "PhysicalDeviceLineRasterizationFeaturesEXT"; - case StructureType::ePipelineRasterizationLineStateCreateInfoEXT : return "PipelineRasterizationLineStateCreateInfoEXT"; - case StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT : return "PhysicalDeviceLineRasterizationPropertiesEXT"; - case StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT : return "PhysicalDeviceShaderAtomicFloatFeaturesEXT"; - case StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT : return "PhysicalDeviceIndexTypeUint8FeaturesEXT"; - case StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT : return "PhysicalDeviceExtendedDynamicStateFeaturesEXT"; - case StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR : return "PhysicalDevicePipelineExecutablePropertiesFeaturesKHR"; - case StructureType::ePipelineInfoKHR : return "PipelineInfoKHR"; - case StructureType::ePipelineExecutablePropertiesKHR : return "PipelineExecutablePropertiesKHR"; - case StructureType::ePipelineExecutableInfoKHR : return "PipelineExecutableInfoKHR"; - case StructureType::ePipelineExecutableStatisticKHR : return "PipelineExecutableStatisticKHR"; - case StructureType::ePipelineExecutableInternalRepresentationKHR : return "PipelineExecutableInternalRepresentationKHR"; - case StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT : return "PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT"; - case StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV : return "PhysicalDeviceDeviceGeneratedCommandsPropertiesNV"; - case StructureType::eGraphicsShaderGroupCreateInfoNV : return "GraphicsShaderGroupCreateInfoNV"; - case StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV : return "GraphicsPipelineShaderGroupsCreateInfoNV"; - case StructureType::eIndirectCommandsLayoutTokenNV : return "IndirectCommandsLayoutTokenNV"; - case StructureType::eIndirectCommandsLayoutCreateInfoNV : return "IndirectCommandsLayoutCreateInfoNV"; - case StructureType::eGeneratedCommandsInfoNV : return "GeneratedCommandsInfoNV"; - case StructureType::eGeneratedCommandsMemoryRequirementsInfoNV : return "GeneratedCommandsMemoryRequirementsInfoNV"; - case StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV : return "PhysicalDeviceDeviceGeneratedCommandsFeaturesNV"; - case StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT : return "PhysicalDeviceTexelBufferAlignmentFeaturesEXT"; - case StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT : return "PhysicalDeviceTexelBufferAlignmentPropertiesEXT"; - case StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM : return "CommandBufferInheritanceRenderPassTransformInfoQCOM"; - case StructureType::eRenderPassTransformBeginInfoQCOM : return "RenderPassTransformBeginInfoQCOM"; - case StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT : return "PhysicalDeviceDeviceMemoryReportFeaturesEXT"; - case StructureType::eDeviceDeviceMemoryReportCreateInfoEXT : return "DeviceDeviceMemoryReportCreateInfoEXT"; - case StructureType::eDeviceMemoryReportCallbackDataEXT : return "DeviceMemoryReportCallbackDataEXT"; - case StructureType::ePhysicalDeviceRobustness2FeaturesEXT : return "PhysicalDeviceRobustness2FeaturesEXT"; - case StructureType::ePhysicalDeviceRobustness2PropertiesEXT : return "PhysicalDeviceRobustness2PropertiesEXT"; - case StructureType::eSamplerCustomBorderColorCreateInfoEXT : return "SamplerCustomBorderColorCreateInfoEXT"; - case StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT : return "PhysicalDeviceCustomBorderColorPropertiesEXT"; - case StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT : return "PhysicalDeviceCustomBorderColorFeaturesEXT"; - case StructureType::ePipelineLibraryCreateInfoKHR : return "PipelineLibraryCreateInfoKHR"; - case StructureType::ePhysicalDevicePrivateDataFeaturesEXT : return "PhysicalDevicePrivateDataFeaturesEXT"; - case StructureType::eDevicePrivateDataCreateInfoEXT : return "DevicePrivateDataCreateInfoEXT"; - case StructureType::ePrivateDataSlotCreateInfoEXT : return "PrivateDataSlotCreateInfoEXT"; - case StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT : return "PhysicalDevicePipelineCreationCacheControlFeaturesEXT"; - case StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV : return "PhysicalDeviceDiagnosticsConfigFeaturesNV"; - case StructureType::eDeviceDiagnosticsConfigCreateInfoNV : return "DeviceDiagnosticsConfigCreateInfoNV"; - case StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV : return "PhysicalDeviceFragmentShadingRateEnumsPropertiesNV"; - case StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV : return "PhysicalDeviceFragmentShadingRateEnumsFeaturesNV"; - case StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV : return "PipelineFragmentShadingRateEnumStateCreateInfoNV"; - case StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT : return "PhysicalDeviceFragmentDensityMap2FeaturesEXT"; - case StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT : return "PhysicalDeviceFragmentDensityMap2PropertiesEXT"; - case StructureType::eCopyCommandTransformInfoQCOM : return "CopyCommandTransformInfoQCOM"; - case StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT : return "PhysicalDeviceImageRobustnessFeaturesEXT"; - case StructureType::eCopyBufferInfo2KHR : return "CopyBufferInfo2KHR"; - case StructureType::eCopyImageInfo2KHR : return "CopyImageInfo2KHR"; - case StructureType::eCopyBufferToImageInfo2KHR : return "CopyBufferToImageInfo2KHR"; - case StructureType::eCopyImageToBufferInfo2KHR : return "CopyImageToBufferInfo2KHR"; - case StructureType::eBlitImageInfo2KHR : return "BlitImageInfo2KHR"; - case StructureType::eResolveImageInfo2KHR : return "ResolveImageInfo2KHR"; - case StructureType::eBufferCopy2KHR : return "BufferCopy2KHR"; - case StructureType::eImageCopy2KHR : return "ImageCopy2KHR"; - case StructureType::eImageBlit2KHR : return "ImageBlit2KHR"; - case StructureType::eBufferImageCopy2KHR : return "BufferImageCopy2KHR"; - case StructureType::eImageResolve2KHR : return "ImageResolve2KHR"; - case StructureType::ePhysicalDevice4444FormatsFeaturesEXT : return "PhysicalDevice4444FormatsFeaturesEXT"; - case StructureType::eDirectfbSurfaceCreateInfoEXT : return "DirectfbSurfaceCreateInfoEXT"; - case StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE : return "PhysicalDeviceMutableDescriptorTypeFeaturesVALVE"; - case StructureType::eMutableDescriptorTypeCreateInfoVALVE : return "MutableDescriptorTypeCreateInfoVALVE"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SubgroupFeatureFlagBits : VkSubgroupFeatureFlags - { - eBasic = VK_SUBGROUP_FEATURE_BASIC_BIT, - eVote = VK_SUBGROUP_FEATURE_VOTE_BIT, - eArithmetic = VK_SUBGROUP_FEATURE_ARITHMETIC_BIT, - eBallot = VK_SUBGROUP_FEATURE_BALLOT_BIT, - eShuffle = VK_SUBGROUP_FEATURE_SHUFFLE_BIT, - eShuffleRelative = VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT, - eClustered = VK_SUBGROUP_FEATURE_CLUSTERED_BIT, - eQuad = VK_SUBGROUP_FEATURE_QUAD_BIT, - ePartitionedNV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV - }; - - VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlagBits value ) - { - switch ( value ) - { - case SubgroupFeatureFlagBits::eBasic : return "Basic"; - case SubgroupFeatureFlagBits::eVote : return "Vote"; - case SubgroupFeatureFlagBits::eArithmetic : return "Arithmetic"; - case SubgroupFeatureFlagBits::eBallot : return "Ballot"; - case SubgroupFeatureFlagBits::eShuffle : return "Shuffle"; - case SubgroupFeatureFlagBits::eShuffleRelative : return "ShuffleRelative"; - case SubgroupFeatureFlagBits::eClustered : return "Clustered"; - case SubgroupFeatureFlagBits::eQuad : return "Quad"; - case SubgroupFeatureFlagBits::ePartitionedNV : return "PartitionedNV"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SubpassContents - { - eInline = VK_SUBPASS_CONTENTS_INLINE, - eSecondaryCommandBuffers = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - }; - - VULKAN_HPP_INLINE std::string to_string( SubpassContents value ) - { - switch ( value ) - { - case SubpassContents::eInline : return "Inline"; - case SubpassContents::eSecondaryCommandBuffers : return "SecondaryCommandBuffers"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SubpassDescriptionFlagBits : VkSubpassDescriptionFlags - { - ePerViewAttributesNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX, - ePerViewPositionXOnlyNVX = VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, - eFragmentRegionQCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, - eShaderResolveQCOM = VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM - }; - - VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlagBits value ) - { - switch ( value ) - { - case SubpassDescriptionFlagBits::ePerViewAttributesNVX : return "PerViewAttributesNVX"; - case SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX : return "PerViewPositionXOnlyNVX"; - case SubpassDescriptionFlagBits::eFragmentRegionQCOM : return "FragmentRegionQCOM"; - case SubpassDescriptionFlagBits::eShaderResolveQCOM : return "ShaderResolveQCOM"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SurfaceCounterFlagBitsEXT : VkSurfaceCounterFlagsEXT - { - eVblank = VK_SURFACE_COUNTER_VBLANK_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagBitsEXT value ) - { - switch ( value ) - { - case SurfaceCounterFlagBitsEXT::eVblank : return "Vblank"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SurfaceTransformFlagBitsKHR : VkSurfaceTransformFlagsKHR - { - eIdentity = VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, - eRotate90 = VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, - eRotate180 = VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, - eRotate270 = VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR, - eHorizontalMirror = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR, - eHorizontalMirrorRotate90 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR, - eHorizontalMirrorRotate180 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR, - eHorizontalMirrorRotate270 = VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR, - eInherit = VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagBitsKHR value ) - { - switch ( value ) - { - case SurfaceTransformFlagBitsKHR::eIdentity : return "Identity"; - case SurfaceTransformFlagBitsKHR::eRotate90 : return "Rotate90"; - case SurfaceTransformFlagBitsKHR::eRotate180 : return "Rotate180"; - case SurfaceTransformFlagBitsKHR::eRotate270 : return "Rotate270"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirror : return "HorizontalMirror"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 : return "HorizontalMirrorRotate90"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 : return "HorizontalMirrorRotate180"; - case SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 : return "HorizontalMirrorRotate270"; - case SurfaceTransformFlagBitsKHR::eInherit : return "Inherit"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SwapchainCreateFlagBitsKHR : VkSwapchainCreateFlagsKHR - { - eSplitInstanceBindRegions = VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR, - eProtected = VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, - eMutableFormat = VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR - }; - - VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagBitsKHR value ) - { - switch ( value ) - { - case SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions : return "SplitInstanceBindRegions"; - case SwapchainCreateFlagBitsKHR::eProtected : return "Protected"; - case SwapchainCreateFlagBitsKHR::eMutableFormat : return "MutableFormat"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class SystemAllocationScope - { - eCommand = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, - eObject = VK_SYSTEM_ALLOCATION_SCOPE_OBJECT, - eCache = VK_SYSTEM_ALLOCATION_SCOPE_CACHE, - eDevice = VK_SYSTEM_ALLOCATION_SCOPE_DEVICE, - eInstance = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - }; - - VULKAN_HPP_INLINE std::string to_string( SystemAllocationScope value ) - { - switch ( value ) - { - case SystemAllocationScope::eCommand : return "Command"; - case SystemAllocationScope::eObject : return "Object"; - case SystemAllocationScope::eCache : return "Cache"; - case SystemAllocationScope::eDevice : return "Device"; - case SystemAllocationScope::eInstance : return "Instance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class TessellationDomainOrigin - { - eUpperLeft = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, - eLowerLeft = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - }; - using TessellationDomainOriginKHR = TessellationDomainOrigin; - - VULKAN_HPP_INLINE std::string to_string( TessellationDomainOrigin value ) - { - switch ( value ) - { - case TessellationDomainOrigin::eUpperLeft : return "UpperLeft"; - case TessellationDomainOrigin::eLowerLeft : return "LowerLeft"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class TimeDomainEXT - { - eDevice = VK_TIME_DOMAIN_DEVICE_EXT, - eClockMonotonic = VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT, - eClockMonotonicRaw = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT, - eQueryPerformanceCounter = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( TimeDomainEXT value ) - { - switch ( value ) - { - case TimeDomainEXT::eDevice : return "Device"; - case TimeDomainEXT::eClockMonotonic : return "ClockMonotonic"; - case TimeDomainEXT::eClockMonotonicRaw : return "ClockMonotonicRaw"; - case TimeDomainEXT::eQueryPerformanceCounter : return "QueryPerformanceCounter"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ToolPurposeFlagBitsEXT : VkToolPurposeFlagsEXT - { - eValidation = VK_TOOL_PURPOSE_VALIDATION_BIT_EXT, - eProfiling = VK_TOOL_PURPOSE_PROFILING_BIT_EXT, - eTracing = VK_TOOL_PURPOSE_TRACING_BIT_EXT, - eAdditionalFeatures = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT, - eModifyingFeatures = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT, - eDebugReporting = VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT, - eDebugMarkers = VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagBitsEXT value ) - { - switch ( value ) - { - case ToolPurposeFlagBitsEXT::eValidation : return "Validation"; - case ToolPurposeFlagBitsEXT::eProfiling : return "Profiling"; - case ToolPurposeFlagBitsEXT::eTracing : return "Tracing"; - case ToolPurposeFlagBitsEXT::eAdditionalFeatures : return "AdditionalFeatures"; - case ToolPurposeFlagBitsEXT::eModifyingFeatures : return "ModifyingFeatures"; - case ToolPurposeFlagBitsEXT::eDebugReporting : return "DebugReporting"; - case ToolPurposeFlagBitsEXT::eDebugMarkers : return "DebugMarkers"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationCacheHeaderVersionEXT - { - eOne = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationCacheHeaderVersionEXT value ) - { - switch ( value ) - { - case ValidationCacheHeaderVersionEXT::eOne : return "One"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationCheckEXT - { - eAll = VK_VALIDATION_CHECK_ALL_EXT, - eShaders = VK_VALIDATION_CHECK_SHADERS_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationCheckEXT value ) - { - switch ( value ) - { - case ValidationCheckEXT::eAll : return "All"; - case ValidationCheckEXT::eShaders : return "Shaders"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationFeatureDisableEXT - { - eAll = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT, - eShaders = VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT, - eThreadSafety = VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT, - eApiParameters = VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT, - eObjectLifetimes = VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT, - eCoreChecks = VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT, - eUniqueHandles = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationFeatureDisableEXT value ) - { - switch ( value ) - { - case ValidationFeatureDisableEXT::eAll : return "All"; - case ValidationFeatureDisableEXT::eShaders : return "Shaders"; - case ValidationFeatureDisableEXT::eThreadSafety : return "ThreadSafety"; - case ValidationFeatureDisableEXT::eApiParameters : return "ApiParameters"; - case ValidationFeatureDisableEXT::eObjectLifetimes : return "ObjectLifetimes"; - case ValidationFeatureDisableEXT::eCoreChecks : return "CoreChecks"; - case ValidationFeatureDisableEXT::eUniqueHandles : return "UniqueHandles"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ValidationFeatureEnableEXT - { - eGpuAssisted = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, - eGpuAssistedReserveBindingSlot = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, - eBestPractices = VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT, - eDebugPrintf = VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, - eSynchronizationValidation = VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT - }; - - VULKAN_HPP_INLINE std::string to_string( ValidationFeatureEnableEXT value ) - { - switch ( value ) - { - case ValidationFeatureEnableEXT::eGpuAssisted : return "GpuAssisted"; - case ValidationFeatureEnableEXT::eGpuAssistedReserveBindingSlot : return "GpuAssistedReserveBindingSlot"; - case ValidationFeatureEnableEXT::eBestPractices : return "BestPractices"; - case ValidationFeatureEnableEXT::eDebugPrintf : return "DebugPrintf"; - case ValidationFeatureEnableEXT::eSynchronizationValidation : return "SynchronizationValidation"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class VendorId - { - eVIV = VK_VENDOR_ID_VIV, - eVSI = VK_VENDOR_ID_VSI, - eKazan = VK_VENDOR_ID_KAZAN, - eCodeplay = VK_VENDOR_ID_CODEPLAY, - eMESA = VK_VENDOR_ID_MESA, - ePocl = VK_VENDOR_ID_POCL - }; - - VULKAN_HPP_INLINE std::string to_string( VendorId value ) - { - switch ( value ) - { - case VendorId::eVIV : return "VIV"; - case VendorId::eVSI : return "VSI"; - case VendorId::eKazan : return "Kazan"; - case VendorId::eCodeplay : return "Codeplay"; - case VendorId::eMESA : return "MESA"; - case VendorId::ePocl : return "Pocl"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class VertexInputRate - { - eVertex = VK_VERTEX_INPUT_RATE_VERTEX, - eInstance = VK_VERTEX_INPUT_RATE_INSTANCE - }; - - VULKAN_HPP_INLINE std::string to_string( VertexInputRate value ) - { - switch ( value ) - { - case VertexInputRate::eVertex : return "Vertex"; - case VertexInputRate::eInstance : return "Instance"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - enum class ViewportCoordinateSwizzleNV - { - ePositiveX = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, - eNegativeX = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV, - ePositiveY = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV, - eNegativeY = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV, - ePositiveZ = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV, - eNegativeZ = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV, - ePositiveW = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV, - eNegativeW = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - }; - - VULKAN_HPP_INLINE std::string to_string( ViewportCoordinateSwizzleNV value ) - { - switch ( value ) - { - case ViewportCoordinateSwizzleNV::ePositiveX : return "PositiveX"; - case ViewportCoordinateSwizzleNV::eNegativeX : return "NegativeX"; - case ViewportCoordinateSwizzleNV::ePositiveY : return "PositiveY"; - case ViewportCoordinateSwizzleNV::eNegativeY : return "NegativeY"; - case ViewportCoordinateSwizzleNV::ePositiveZ : return "PositiveZ"; - case ViewportCoordinateSwizzleNV::eNegativeZ : return "NegativeZ"; - case ViewportCoordinateSwizzleNV::ePositiveW : return "PositiveW"; - case ViewportCoordinateSwizzleNV::eNegativeW : return "NegativeW"; - default: return "invalid ( " + VULKAN_HPP_NAMESPACE::toHexString( static_cast( value ) ) + " )"; - } - } - - template - struct IndexTypeValue - {}; - - template <> - struct IndexTypeValue - { - static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint16; - }; - - template <> - struct CppType - { - using Type = uint16_t; - }; - - template <> - struct IndexTypeValue - { - static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint32; - }; - - template <> - struct CppType - { - using Type = uint32_t; - }; - - template <> - struct IndexTypeValue - { - static VULKAN_HPP_CONST_OR_CONSTEXPR IndexType value = IndexType::eUint8EXT; - }; - - template <> - struct CppType - { - using Type = uint8_t; - }; - - - using AccelerationStructureCreateFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator|( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccelerationStructureCreateFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator&( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccelerationStructureCreateFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator^( AccelerationStructureCreateFlagBitsKHR bit0, AccelerationStructureCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccelerationStructureCreateFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccelerationStructureCreateFlagsKHR operator~( AccelerationStructureCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( AccelerationStructureCreateFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( AccelerationStructureCreateFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & AccelerationStructureCreateFlagBitsKHR::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using AccessFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(AccessFlagBits::eIndirectCommandRead) | VkFlags(AccessFlagBits::eIndexRead) | VkFlags(AccessFlagBits::eVertexAttributeRead) | VkFlags(AccessFlagBits::eUniformRead) | VkFlags(AccessFlagBits::eInputAttachmentRead) | VkFlags(AccessFlagBits::eShaderRead) | VkFlags(AccessFlagBits::eShaderWrite) | VkFlags(AccessFlagBits::eColorAttachmentRead) | VkFlags(AccessFlagBits::eColorAttachmentWrite) | VkFlags(AccessFlagBits::eDepthStencilAttachmentRead) | VkFlags(AccessFlagBits::eDepthStencilAttachmentWrite) | VkFlags(AccessFlagBits::eTransferRead) | VkFlags(AccessFlagBits::eTransferWrite) | VkFlags(AccessFlagBits::eHostRead) | VkFlags(AccessFlagBits::eHostWrite) | VkFlags(AccessFlagBits::eMemoryRead) | VkFlags(AccessFlagBits::eMemoryWrite) | VkFlags(AccessFlagBits::eTransformFeedbackWriteEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterReadEXT) | VkFlags(AccessFlagBits::eTransformFeedbackCounterWriteEXT) | VkFlags(AccessFlagBits::eConditionalRenderingReadEXT) | VkFlags(AccessFlagBits::eColorAttachmentReadNoncoherentEXT) | VkFlags(AccessFlagBits::eAccelerationStructureReadKHR) | VkFlags(AccessFlagBits::eAccelerationStructureWriteKHR) | VkFlags(AccessFlagBits::eShadingRateImageReadNV) | VkFlags(AccessFlagBits::eFragmentDensityMapReadEXT) | VkFlags(AccessFlagBits::eCommandPreprocessReadNV) | VkFlags(AccessFlagBits::eCommandPreprocessWriteNV) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator|( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator&( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator^( AccessFlagBits bit0, AccessFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AccessFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AccessFlags operator~( AccessFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( AccessFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( AccessFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & AccessFlagBits::eIndirectCommandRead ) result += "IndirectCommandRead | "; - if ( value & AccessFlagBits::eIndexRead ) result += "IndexRead | "; - if ( value & AccessFlagBits::eVertexAttributeRead ) result += "VertexAttributeRead | "; - if ( value & AccessFlagBits::eUniformRead ) result += "UniformRead | "; - if ( value & AccessFlagBits::eInputAttachmentRead ) result += "InputAttachmentRead | "; - if ( value & AccessFlagBits::eShaderRead ) result += "ShaderRead | "; - if ( value & AccessFlagBits::eShaderWrite ) result += "ShaderWrite | "; - if ( value & AccessFlagBits::eColorAttachmentRead ) result += "ColorAttachmentRead | "; - if ( value & AccessFlagBits::eColorAttachmentWrite ) result += "ColorAttachmentWrite | "; - if ( value & AccessFlagBits::eDepthStencilAttachmentRead ) result += "DepthStencilAttachmentRead | "; - if ( value & AccessFlagBits::eDepthStencilAttachmentWrite ) result += "DepthStencilAttachmentWrite | "; - if ( value & AccessFlagBits::eTransferRead ) result += "TransferRead | "; - if ( value & AccessFlagBits::eTransferWrite ) result += "TransferWrite | "; - if ( value & AccessFlagBits::eHostRead ) result += "HostRead | "; - if ( value & AccessFlagBits::eHostWrite ) result += "HostWrite | "; - if ( value & AccessFlagBits::eMemoryRead ) result += "MemoryRead | "; - if ( value & AccessFlagBits::eMemoryWrite ) result += "MemoryWrite | "; - if ( value & AccessFlagBits::eTransformFeedbackWriteEXT ) result += "TransformFeedbackWriteEXT | "; - if ( value & AccessFlagBits::eTransformFeedbackCounterReadEXT ) result += "TransformFeedbackCounterReadEXT | "; - if ( value & AccessFlagBits::eTransformFeedbackCounterWriteEXT ) result += "TransformFeedbackCounterWriteEXT | "; - if ( value & AccessFlagBits::eConditionalRenderingReadEXT ) result += "ConditionalRenderingReadEXT | "; - if ( value & AccessFlagBits::eColorAttachmentReadNoncoherentEXT ) result += "ColorAttachmentReadNoncoherentEXT | "; - if ( value & AccessFlagBits::eAccelerationStructureReadKHR ) result += "AccelerationStructureReadKHR | "; - if ( value & AccessFlagBits::eAccelerationStructureWriteKHR ) result += "AccelerationStructureWriteKHR | "; - if ( value & AccessFlagBits::eShadingRateImageReadNV ) result += "ShadingRateImageReadNV | "; - if ( value & AccessFlagBits::eFragmentDensityMapReadEXT ) result += "FragmentDensityMapReadEXT | "; - if ( value & AccessFlagBits::eCommandPreprocessReadNV ) result += "CommandPreprocessReadNV | "; - if ( value & AccessFlagBits::eCommandPreprocessWriteNV ) result += "CommandPreprocessWriteNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using AcquireProfilingLockFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( AcquireProfilingLockFlagsKHR ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - enum class AndroidSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using AndroidSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( AndroidSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - using AttachmentDescriptionFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(AttachmentDescriptionFlagBits::eMayAlias) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator|( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AttachmentDescriptionFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator&( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AttachmentDescriptionFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator^( AttachmentDescriptionFlagBits bit0, AttachmentDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return AttachmentDescriptionFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR AttachmentDescriptionFlags operator~( AttachmentDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( AttachmentDescriptionFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( AttachmentDescriptionFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & AttachmentDescriptionFlagBits::eMayAlias ) result += "MayAlias | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using BufferCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(BufferCreateFlagBits::eSparseBinding) | VkFlags(BufferCreateFlagBits::eSparseResidency) | VkFlags(BufferCreateFlagBits::eSparseAliased) | VkFlags(BufferCreateFlagBits::eProtected) | VkFlags(BufferCreateFlagBits::eDeviceAddressCaptureReplay) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator|( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator&( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator^( BufferCreateFlagBits bit0, BufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferCreateFlags operator~( BufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( BufferCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( BufferCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & BufferCreateFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & BufferCreateFlagBits::eSparseResidency ) result += "SparseResidency | "; - if ( value & BufferCreateFlagBits::eSparseAliased ) result += "SparseAliased | "; - if ( value & BufferCreateFlagBits::eProtected ) result += "Protected | "; - if ( value & BufferCreateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using BufferUsageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(BufferUsageFlagBits::eTransferSrc) | VkFlags(BufferUsageFlagBits::eTransferDst) | VkFlags(BufferUsageFlagBits::eUniformTexelBuffer) | VkFlags(BufferUsageFlagBits::eStorageTexelBuffer) | VkFlags(BufferUsageFlagBits::eUniformBuffer) | VkFlags(BufferUsageFlagBits::eStorageBuffer) | VkFlags(BufferUsageFlagBits::eIndexBuffer) | VkFlags(BufferUsageFlagBits::eVertexBuffer) | VkFlags(BufferUsageFlagBits::eIndirectBuffer) | VkFlags(BufferUsageFlagBits::eShaderDeviceAddress) | VkFlags(BufferUsageFlagBits::eTransformFeedbackBufferEXT) | VkFlags(BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT) | VkFlags(BufferUsageFlagBits::eConditionalRenderingEXT) | VkFlags(BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR) | VkFlags(BufferUsageFlagBits::eAccelerationStructureStorageKHR) | VkFlags(BufferUsageFlagBits::eShaderBindingTableKHR) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator|( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferUsageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator&( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferUsageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator^( BufferUsageFlagBits bit0, BufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return BufferUsageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BufferUsageFlags operator~( BufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( BufferUsageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( BufferUsageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & BufferUsageFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & BufferUsageFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & BufferUsageFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | "; - if ( value & BufferUsageFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | "; - if ( value & BufferUsageFlagBits::eUniformBuffer ) result += "UniformBuffer | "; - if ( value & BufferUsageFlagBits::eStorageBuffer ) result += "StorageBuffer | "; - if ( value & BufferUsageFlagBits::eIndexBuffer ) result += "IndexBuffer | "; - if ( value & BufferUsageFlagBits::eVertexBuffer ) result += "VertexBuffer | "; - if ( value & BufferUsageFlagBits::eIndirectBuffer ) result += "IndirectBuffer | "; - if ( value & BufferUsageFlagBits::eShaderDeviceAddress ) result += "ShaderDeviceAddress | "; - if ( value & BufferUsageFlagBits::eTransformFeedbackBufferEXT ) result += "TransformFeedbackBufferEXT | "; - if ( value & BufferUsageFlagBits::eTransformFeedbackCounterBufferEXT ) result += "TransformFeedbackCounterBufferEXT | "; - if ( value & BufferUsageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | "; - if ( value & BufferUsageFlagBits::eAccelerationStructureBuildInputReadOnlyKHR ) result += "AccelerationStructureBuildInputReadOnlyKHR | "; - if ( value & BufferUsageFlagBits::eAccelerationStructureStorageKHR ) result += "AccelerationStructureStorageKHR | "; - if ( value & BufferUsageFlagBits::eShaderBindingTableKHR ) result += "ShaderBindingTableKHR | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class BufferViewCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlagBits ) - { - return "(void)"; - } - - using BufferViewCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( BufferViewCreateFlags ) - { - - return "{}"; - } - - - using BuildAccelerationStructureFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowUpdate) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eAllowCompaction) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace) | VkFlags(BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild) | VkFlags(BuildAccelerationStructureFlagBitsKHR::eLowMemory) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator|( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return BuildAccelerationStructureFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator&( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return BuildAccelerationStructureFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator^( BuildAccelerationStructureFlagBitsKHR bit0, BuildAccelerationStructureFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return BuildAccelerationStructureFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR BuildAccelerationStructureFlagsKHR operator~( BuildAccelerationStructureFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( BuildAccelerationStructureFlagsKHR( bits ) ); - } - - using BuildAccelerationStructureFlagsNV = BuildAccelerationStructureFlagsKHR; - - VULKAN_HPP_INLINE std::string to_string( BuildAccelerationStructureFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowUpdate ) result += "AllowUpdate | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::eAllowCompaction ) result += "AllowCompaction | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastTrace ) result += "PreferFastTrace | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::ePreferFastBuild ) result += "PreferFastBuild | "; - if ( value & BuildAccelerationStructureFlagBitsKHR::eLowMemory ) result += "LowMemory | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ColorComponentFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ColorComponentFlagBits::eR) | VkFlags(ColorComponentFlagBits::eG) | VkFlags(ColorComponentFlagBits::eB) | VkFlags(ColorComponentFlagBits::eA) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator|( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ColorComponentFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator&( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ColorComponentFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator^( ColorComponentFlagBits bit0, ColorComponentFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ColorComponentFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ColorComponentFlags operator~( ColorComponentFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ColorComponentFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ColorComponentFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ColorComponentFlagBits::eR ) result += "R | "; - if ( value & ColorComponentFlagBits::eG ) result += "G | "; - if ( value & ColorComponentFlagBits::eB ) result += "B | "; - if ( value & ColorComponentFlagBits::eA ) result += "A | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandBufferResetFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(CommandBufferResetFlagBits::eReleaseResources) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator|( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferResetFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator&( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferResetFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator^( CommandBufferResetFlagBits bit0, CommandBufferResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferResetFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferResetFlags operator~( CommandBufferResetFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandBufferResetFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandBufferResetFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandBufferResetFlagBits::eReleaseResources ) result += "ReleaseResources | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandBufferUsageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(CommandBufferUsageFlagBits::eOneTimeSubmit) | VkFlags(CommandBufferUsageFlagBits::eRenderPassContinue) | VkFlags(CommandBufferUsageFlagBits::eSimultaneousUse) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator|( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferUsageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator&( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferUsageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator^( CommandBufferUsageFlagBits bit0, CommandBufferUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandBufferUsageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandBufferUsageFlags operator~( CommandBufferUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandBufferUsageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandBufferUsageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandBufferUsageFlagBits::eOneTimeSubmit ) result += "OneTimeSubmit | "; - if ( value & CommandBufferUsageFlagBits::eRenderPassContinue ) result += "RenderPassContinue | "; - if ( value & CommandBufferUsageFlagBits::eSimultaneousUse ) result += "SimultaneousUse | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandPoolCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(CommandPoolCreateFlagBits::eTransient) | VkFlags(CommandPoolCreateFlagBits::eResetCommandBuffer) | VkFlags(CommandPoolCreateFlagBits::eProtected) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator|( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator&( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator^( CommandPoolCreateFlagBits bit0, CommandPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolCreateFlags operator~( CommandPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandPoolCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandPoolCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandPoolCreateFlagBits::eTransient ) result += "Transient | "; - if ( value & CommandPoolCreateFlagBits::eResetCommandBuffer ) result += "ResetCommandBuffer | "; - if ( value & CommandPoolCreateFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CommandPoolResetFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(CommandPoolResetFlagBits::eReleaseResources) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator|( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolResetFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator&( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolResetFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator^( CommandPoolResetFlagBits bit0, CommandPoolResetFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CommandPoolResetFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CommandPoolResetFlags operator~( CommandPoolResetFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CommandPoolResetFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CommandPoolResetFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CommandPoolResetFlagBits::eReleaseResources ) result += "ReleaseResources | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class CommandPoolTrimFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlagBits ) - { - return "(void)"; - } - - using CommandPoolTrimFlags = Flags; - - using CommandPoolTrimFlagsKHR = CommandPoolTrimFlags; - - VULKAN_HPP_INLINE std::string to_string( CommandPoolTrimFlags ) - { - - return "{}"; - } - - - using CompositeAlphaFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(CompositeAlphaFlagBitsKHR::eOpaque) | VkFlags(CompositeAlphaFlagBitsKHR::ePreMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::ePostMultiplied) | VkFlags(CompositeAlphaFlagBitsKHR::eInherit) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator|( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return CompositeAlphaFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator&( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return CompositeAlphaFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator^( CompositeAlphaFlagBitsKHR bit0, CompositeAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return CompositeAlphaFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CompositeAlphaFlagsKHR operator~( CompositeAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CompositeAlphaFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CompositeAlphaFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CompositeAlphaFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & CompositeAlphaFlagBitsKHR::ePreMultiplied ) result += "PreMultiplied | "; - if ( value & CompositeAlphaFlagBitsKHR::ePostMultiplied ) result += "PostMultiplied | "; - if ( value & CompositeAlphaFlagBitsKHR::eInherit ) result += "Inherit | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ConditionalRenderingFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ConditionalRenderingFlagBitsEXT::eInverted) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator|( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ConditionalRenderingFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator&( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ConditionalRenderingFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator^( ConditionalRenderingFlagBitsEXT bit0, ConditionalRenderingFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ConditionalRenderingFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ConditionalRenderingFlagsEXT operator~( ConditionalRenderingFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ConditionalRenderingFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ConditionalRenderingFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ConditionalRenderingFlagBitsEXT::eInverted ) result += "Inverted | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using CullModeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(CullModeFlagBits::eNone) | VkFlags(CullModeFlagBits::eFront) | VkFlags(CullModeFlagBits::eBack) | VkFlags(CullModeFlagBits::eFrontAndBack) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator|( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CullModeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator&( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CullModeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator^( CullModeFlagBits bit0, CullModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return CullModeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR CullModeFlags operator~( CullModeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( CullModeFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( CullModeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & CullModeFlagBits::eFront ) result += "Front | "; - if ( value & CullModeFlagBits::eBack ) result += "Back | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DebugReportFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DebugReportFlagBitsEXT::eInformation) | VkFlags(DebugReportFlagBitsEXT::eWarning) | VkFlags(DebugReportFlagBitsEXT::ePerformanceWarning) | VkFlags(DebugReportFlagBitsEXT::eError) | VkFlags(DebugReportFlagBitsEXT::eDebug) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator|( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugReportFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator&( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugReportFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator^( DebugReportFlagBitsEXT bit0, DebugReportFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugReportFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugReportFlagsEXT operator~( DebugReportFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DebugReportFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DebugReportFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DebugReportFlagBitsEXT::eInformation ) result += "Information | "; - if ( value & DebugReportFlagBitsEXT::eWarning ) result += "Warning | "; - if ( value & DebugReportFlagBitsEXT::ePerformanceWarning ) result += "PerformanceWarning | "; - if ( value & DebugReportFlagBitsEXT::eError ) result += "Error | "; - if ( value & DebugReportFlagBitsEXT::eDebug ) result += "Debug | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DebugUtilsMessageSeverityFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eVerbose) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eInfo) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eWarning) | VkFlags(DebugUtilsMessageSeverityFlagBitsEXT::eError) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator|( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageSeverityFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator&( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageSeverityFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator^( DebugUtilsMessageSeverityFlagBitsEXT bit0, DebugUtilsMessageSeverityFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageSeverityFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageSeverityFlagsEXT operator~( DebugUtilsMessageSeverityFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DebugUtilsMessageSeverityFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageSeverityFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eVerbose ) result += "Verbose | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eInfo ) result += "Info | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eWarning ) result += "Warning | "; - if ( value & DebugUtilsMessageSeverityFlagBitsEXT::eError ) result += "Error | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DebugUtilsMessageTypeFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eGeneral) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::eValidation) | VkFlags(DebugUtilsMessageTypeFlagBitsEXT::ePerformance) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator|( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageTypeFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator&( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageTypeFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator^( DebugUtilsMessageTypeFlagBitsEXT bit0, DebugUtilsMessageTypeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return DebugUtilsMessageTypeFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DebugUtilsMessageTypeFlagsEXT operator~( DebugUtilsMessageTypeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DebugUtilsMessageTypeFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessageTypeFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DebugUtilsMessageTypeFlagBitsEXT::eGeneral ) result += "General | "; - if ( value & DebugUtilsMessageTypeFlagBitsEXT::eValidation ) result += "Validation | "; - if ( value & DebugUtilsMessageTypeFlagBitsEXT::ePerformance ) result += "Performance | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DebugUtilsMessengerCallbackDataFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagBitsEXT ) - { - return "(void)"; - } - - using DebugUtilsMessengerCallbackDataFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCallbackDataFlagsEXT ) - { - - return "{}"; - } - - enum class DebugUtilsMessengerCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagBitsEXT ) - { - return "(void)"; - } - - using DebugUtilsMessengerCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DebugUtilsMessengerCreateFlagsEXT ) - { - - return "{}"; - } - - - using DependencyFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DependencyFlagBits::eByRegion) | VkFlags(DependencyFlagBits::eDeviceGroup) | VkFlags(DependencyFlagBits::eViewLocal) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator|( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DependencyFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator&( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DependencyFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator^( DependencyFlagBits bit0, DependencyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DependencyFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DependencyFlags operator~( DependencyFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DependencyFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DependencyFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DependencyFlagBits::eByRegion ) result += "ByRegion | "; - if ( value & DependencyFlagBits::eDeviceGroup ) result += "DeviceGroup | "; - if ( value & DependencyFlagBits::eViewLocal ) result += "ViewLocal | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DescriptorBindingFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DescriptorBindingFlagBits::eUpdateAfterBind) | VkFlags(DescriptorBindingFlagBits::eUpdateUnusedWhilePending) | VkFlags(DescriptorBindingFlagBits::ePartiallyBound) | VkFlags(DescriptorBindingFlagBits::eVariableDescriptorCount) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator|( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorBindingFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator&( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorBindingFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator^( DescriptorBindingFlagBits bit0, DescriptorBindingFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorBindingFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorBindingFlags operator~( DescriptorBindingFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DescriptorBindingFlags( bits ) ); - } - - using DescriptorBindingFlagsEXT = DescriptorBindingFlags; - - VULKAN_HPP_INLINE std::string to_string( DescriptorBindingFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DescriptorBindingFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | "; - if ( value & DescriptorBindingFlagBits::eUpdateUnusedWhilePending ) result += "UpdateUnusedWhilePending | "; - if ( value & DescriptorBindingFlagBits::ePartiallyBound ) result += "PartiallyBound | "; - if ( value & DescriptorBindingFlagBits::eVariableDescriptorCount ) result += "VariableDescriptorCount | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DescriptorPoolCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DescriptorPoolCreateFlagBits::eFreeDescriptorSet) | VkFlags(DescriptorPoolCreateFlagBits::eUpdateAfterBind) | VkFlags(DescriptorPoolCreateFlagBits::eHostOnlyVALVE) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator|( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorPoolCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator&( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorPoolCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator^( DescriptorPoolCreateFlagBits bit0, DescriptorPoolCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorPoolCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorPoolCreateFlags operator~( DescriptorPoolCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DescriptorPoolCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DescriptorPoolCreateFlagBits::eFreeDescriptorSet ) result += "FreeDescriptorSet | "; - if ( value & DescriptorPoolCreateFlagBits::eUpdateAfterBind ) result += "UpdateAfterBind | "; - if ( value & DescriptorPoolCreateFlagBits::eHostOnlyVALVE ) result += "HostOnlyVALVE | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DescriptorPoolResetFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlagBits ) - { - return "(void)"; - } - - using DescriptorPoolResetFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( DescriptorPoolResetFlags ) - { - - return "{}"; - } - - - using DescriptorSetLayoutCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool) | VkFlags(DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR) | VkFlags(DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator|( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorSetLayoutCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator&( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorSetLayoutCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator^( DescriptorSetLayoutCreateFlagBits bit0, DescriptorSetLayoutCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DescriptorSetLayoutCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateFlags operator~( DescriptorSetLayoutCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DescriptorSetLayoutCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DescriptorSetLayoutCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DescriptorSetLayoutCreateFlagBits::eUpdateAfterBindPool ) result += "UpdateAfterBindPool | "; - if ( value & DescriptorSetLayoutCreateFlagBits::ePushDescriptorKHR ) result += "PushDescriptorKHR | "; - if ( value & DescriptorSetLayoutCreateFlagBits::eHostOnlyPoolVALVE ) result += "HostOnlyPoolVALVE | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DescriptorUpdateTemplateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlagBits ) - { - return "(void)"; - } - - using DescriptorUpdateTemplateCreateFlags = Flags; - - using DescriptorUpdateTemplateCreateFlagsKHR = DescriptorUpdateTemplateCreateFlags; - - VULKAN_HPP_INLINE std::string to_string( DescriptorUpdateTemplateCreateFlags ) - { - - return "{}"; - } - - - using DeviceCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( DeviceCreateFlags ) - { - - return "{}"; - } - - - using DeviceDiagnosticsConfigFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking) | VkFlags(DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator|( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceDiagnosticsConfigFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator&( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceDiagnosticsConfigFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator^( DeviceDiagnosticsConfigFlagBitsNV bit0, DeviceDiagnosticsConfigFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceDiagnosticsConfigFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigFlagsNV operator~( DeviceDiagnosticsConfigFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DeviceDiagnosticsConfigFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DeviceDiagnosticsConfigFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableShaderDebugInfo ) result += "EnableShaderDebugInfo | "; - if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableResourceTracking ) result += "EnableResourceTracking | "; - if ( value & DeviceDiagnosticsConfigFlagBitsNV::eEnableAutomaticCheckpoints ) result += "EnableAutomaticCheckpoints | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using DeviceGroupPresentModeFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocal) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eRemote) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eSum) | VkFlags(DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator|( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceGroupPresentModeFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator&( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceGroupPresentModeFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator^( DeviceGroupPresentModeFlagBitsKHR bit0, DeviceGroupPresentModeFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceGroupPresentModeFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceGroupPresentModeFlagsKHR operator~( DeviceGroupPresentModeFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DeviceGroupPresentModeFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DeviceGroupPresentModeFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocal ) result += "Local | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eRemote ) result += "Remote | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eSum ) result += "Sum | "; - if ( value & DeviceGroupPresentModeFlagBitsKHR::eLocalMultiDevice ) result += "LocalMultiDevice | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DeviceMemoryReportFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagBitsEXT ) - { - return "(void)"; - } - - using DeviceMemoryReportFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DeviceMemoryReportFlagsEXT ) - { - - return "{}"; - } - - - using DeviceQueueCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DeviceQueueCreateFlagBits::eProtected) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator|( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceQueueCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator&( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceQueueCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator^( DeviceQueueCreateFlagBits bit0, DeviceQueueCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return DeviceQueueCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DeviceQueueCreateFlags operator~( DeviceQueueCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DeviceQueueCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DeviceQueueCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DeviceQueueCreateFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - enum class DirectFBSurfaceCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagBitsEXT ) - { - return "(void)"; - } - - using DirectFBSurfaceCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( DirectFBSurfaceCreateFlagsEXT ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - enum class DisplayModeCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagBitsKHR ) - { - return "(void)"; - } - - using DisplayModeCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( DisplayModeCreateFlagsKHR ) - { - - return "{}"; - } - - - using DisplayPlaneAlphaFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(DisplayPlaneAlphaFlagBitsKHR::eOpaque) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::eGlobal) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixel) | VkFlags(DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator|( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DisplayPlaneAlphaFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator&( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DisplayPlaneAlphaFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator^( DisplayPlaneAlphaFlagBitsKHR bit0, DisplayPlaneAlphaFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return DisplayPlaneAlphaFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR DisplayPlaneAlphaFlagsKHR operator~( DisplayPlaneAlphaFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( DisplayPlaneAlphaFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( DisplayPlaneAlphaFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & DisplayPlaneAlphaFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::eGlobal ) result += "Global | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixel ) result += "PerPixel | "; - if ( value & DisplayPlaneAlphaFlagBitsKHR::ePerPixelPremultiplied ) result += "PerPixelPremultiplied | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class DisplaySurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using DisplaySurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( DisplaySurfaceCreateFlagsKHR ) - { - - return "{}"; - } - - enum class EventCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( EventCreateFlagBits ) - { - return "(void)"; - } - - using EventCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( EventCreateFlags ) - { - - return "{}"; - } - - - using ExternalFenceFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalFenceFeatureFlagBits::eExportable) | VkFlags(ExternalFenceFeatureFlagBits::eImportable) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator|( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator&( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator^( ExternalFenceFeatureFlagBits bit0, ExternalFenceFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceFeatureFlags operator~( ExternalFenceFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalFenceFeatureFlags( bits ) ); - } - - using ExternalFenceFeatureFlagsKHR = ExternalFenceFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalFenceFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalFenceFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalFenceHandleTypeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalFenceHandleTypeFlagBits::eSyncFd) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator|( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceHandleTypeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator&( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceHandleTypeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator^( ExternalFenceHandleTypeFlagBits bit0, ExternalFenceHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalFenceHandleTypeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalFenceHandleTypeFlags operator~( ExternalFenceHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalFenceHandleTypeFlags( bits ) ); - } - - using ExternalFenceHandleTypeFlagsKHR = ExternalFenceHandleTypeFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalFenceHandleTypeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalFenceHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalFenceHandleTypeFlagBits::eSyncFd ) result += "SyncFd | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalMemoryFeatureFlagBits::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBits::eExportable) | VkFlags(ExternalMemoryFeatureFlagBits::eImportable) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator|( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator&( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator^( ExternalMemoryFeatureFlagBits bit0, ExternalMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlags operator~( ExternalMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryFeatureFlags( bits ) ); - } - - using ExternalMemoryFeatureFlagsKHR = ExternalMemoryFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryFeatureFlagBits::eDedicatedOnly ) result += "DedicatedOnly | "; - if ( value & ExternalMemoryFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalMemoryFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryFeatureFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eExportable) | VkFlags(ExternalMemoryFeatureFlagBitsNV::eImportable) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator|( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator&( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator^( ExternalMemoryFeatureFlagBitsNV bit0, ExternalMemoryFeatureFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryFeatureFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryFeatureFlagsNV operator~( ExternalMemoryFeatureFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryFeatureFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryFeatureFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryFeatureFlagBitsNV::eDedicatedOnly ) result += "DedicatedOnly | "; - if ( value & ExternalMemoryFeatureFlagBitsNV::eExportable ) result += "Exportable | "; - if ( value & ExternalMemoryFeatureFlagBitsNV::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryHandleTypeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11Texture) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Heap) | VkFlags(ExternalMemoryHandleTypeFlagBits::eD3D12Resource) | VkFlags(ExternalMemoryHandleTypeFlagBits::eDmaBufEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT) | VkFlags(ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator|( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator&( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator^( ExternalMemoryHandleTypeFlagBits bit0, ExternalMemoryHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlags operator~( ExternalMemoryHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryHandleTypeFlags( bits ) ); - } - - using ExternalMemoryHandleTypeFlagsKHR = ExternalMemoryHandleTypeFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11Texture ) result += "D3D11Texture | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D11TextureKmt ) result += "D3D11TextureKmt | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Heap ) result += "D3D12Heap | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eD3D12Resource ) result += "D3D12Resource | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eDmaBufEXT ) result += "DmaBufEXT | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eAndroidHardwareBufferANDROID ) result += "AndroidHardwareBufferANDROID | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eHostAllocationEXT ) result += "HostAllocationEXT | "; - if ( value & ExternalMemoryHandleTypeFlagBits::eHostMappedForeignMemoryEXT ) result += "HostMappedForeignMemoryEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalMemoryHandleTypeFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image) | VkFlags(ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator|( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator&( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator^( ExternalMemoryHandleTypeFlagBitsNV bit0, ExternalMemoryHandleTypeFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalMemoryHandleTypeFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalMemoryHandleTypeFlagsNV operator~( ExternalMemoryHandleTypeFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalMemoryHandleTypeFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ExternalMemoryHandleTypeFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11Image ) result += "D3D11Image | "; - if ( value & ExternalMemoryHandleTypeFlagBitsNV::eD3D11ImageKmt ) result += "D3D11ImageKmt | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalSemaphoreFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalSemaphoreFeatureFlagBits::eExportable) | VkFlags(ExternalSemaphoreFeatureFlagBits::eImportable) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator|( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator&( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator^( ExternalSemaphoreFeatureFlagBits bit0, ExternalSemaphoreFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreFeatureFlags operator~( ExternalSemaphoreFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalSemaphoreFeatureFlags( bits ) ); - } - - using ExternalSemaphoreFeatureFlagsKHR = ExternalSemaphoreFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalSemaphoreFeatureFlagBits::eExportable ) result += "Exportable | "; - if ( value & ExternalSemaphoreFeatureFlagBits::eImportable ) result += "Importable | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ExternalSemaphoreHandleTypeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence) | VkFlags(ExternalSemaphoreHandleTypeFlagBits::eSyncFd) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator|( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreHandleTypeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator&( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreHandleTypeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator^( ExternalSemaphoreHandleTypeFlagBits bit0, ExternalSemaphoreHandleTypeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ExternalSemaphoreHandleTypeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ExternalSemaphoreHandleTypeFlags operator~( ExternalSemaphoreHandleTypeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ExternalSemaphoreHandleTypeFlags( bits ) ); - } - - using ExternalSemaphoreHandleTypeFlagsKHR = ExternalSemaphoreHandleTypeFlags; - - VULKAN_HPP_INLINE std::string to_string( ExternalSemaphoreHandleTypeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd ) result += "OpaqueFd | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32 ) result += "OpaqueWin32 | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eOpaqueWin32Kmt ) result += "OpaqueWin32Kmt | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eD3D12Fence ) result += "D3D12Fence | "; - if ( value & ExternalSemaphoreHandleTypeFlagBits::eSyncFd ) result += "SyncFd | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FenceCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(FenceCreateFlagBits::eSignaled) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator|( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator&( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator^( FenceCreateFlagBits bit0, FenceCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceCreateFlags operator~( FenceCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FenceCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( FenceCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FenceCreateFlagBits::eSignaled ) result += "Signaled | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FenceImportFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(FenceImportFlagBits::eTemporary) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator|( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceImportFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator&( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceImportFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator^( FenceImportFlagBits bit0, FenceImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FenceImportFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FenceImportFlags operator~( FenceImportFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FenceImportFlags( bits ) ); - } - - using FenceImportFlagsKHR = FenceImportFlags; - - VULKAN_HPP_INLINE std::string to_string( FenceImportFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FenceImportFlagBits::eTemporary ) result += "Temporary | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FormatFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(FormatFeatureFlagBits::eSampledImage) | VkFlags(FormatFeatureFlagBits::eStorageImage) | VkFlags(FormatFeatureFlagBits::eStorageImageAtomic) | VkFlags(FormatFeatureFlagBits::eUniformTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBuffer) | VkFlags(FormatFeatureFlagBits::eStorageTexelBufferAtomic) | VkFlags(FormatFeatureFlagBits::eVertexBuffer) | VkFlags(FormatFeatureFlagBits::eColorAttachment) | VkFlags(FormatFeatureFlagBits::eColorAttachmentBlend) | VkFlags(FormatFeatureFlagBits::eDepthStencilAttachment) | VkFlags(FormatFeatureFlagBits::eBlitSrc) | VkFlags(FormatFeatureFlagBits::eBlitDst) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterLinear) | VkFlags(FormatFeatureFlagBits::eTransferSrc) | VkFlags(FormatFeatureFlagBits::eTransferDst) | VkFlags(FormatFeatureFlagBits::eMidpointChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit) | VkFlags(FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable) | VkFlags(FormatFeatureFlagBits::eDisjoint) | VkFlags(FormatFeatureFlagBits::eCositedChromaSamples) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterMinmax) | VkFlags(FormatFeatureFlagBits::eSampledImageFilterCubicIMG) | VkFlags(FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR) | VkFlags(FormatFeatureFlagBits::eFragmentDensityMapEXT) | VkFlags(FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator|( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FormatFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator&( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FormatFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator^( FormatFeatureFlagBits bit0, FormatFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FormatFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FormatFeatureFlags operator~( FormatFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FormatFeatureFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( FormatFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FormatFeatureFlagBits::eSampledImage ) result += "SampledImage | "; - if ( value & FormatFeatureFlagBits::eStorageImage ) result += "StorageImage | "; - if ( value & FormatFeatureFlagBits::eStorageImageAtomic ) result += "StorageImageAtomic | "; - if ( value & FormatFeatureFlagBits::eUniformTexelBuffer ) result += "UniformTexelBuffer | "; - if ( value & FormatFeatureFlagBits::eStorageTexelBuffer ) result += "StorageTexelBuffer | "; - if ( value & FormatFeatureFlagBits::eStorageTexelBufferAtomic ) result += "StorageTexelBufferAtomic | "; - if ( value & FormatFeatureFlagBits::eVertexBuffer ) result += "VertexBuffer | "; - if ( value & FormatFeatureFlagBits::eColorAttachment ) result += "ColorAttachment | "; - if ( value & FormatFeatureFlagBits::eColorAttachmentBlend ) result += "ColorAttachmentBlend | "; - if ( value & FormatFeatureFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | "; - if ( value & FormatFeatureFlagBits::eBlitSrc ) result += "BlitSrc | "; - if ( value & FormatFeatureFlagBits::eBlitDst ) result += "BlitDst | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterLinear ) result += "SampledImageFilterLinear | "; - if ( value & FormatFeatureFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & FormatFeatureFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & FormatFeatureFlagBits::eMidpointChromaSamples ) result += "MidpointChromaSamples | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionLinearFilter ) result += "SampledImageYcbcrConversionLinearFilter | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionSeparateReconstructionFilter ) result += "SampledImageYcbcrConversionSeparateReconstructionFilter | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicit ) result += "SampledImageYcbcrConversionChromaReconstructionExplicit | "; - if ( value & FormatFeatureFlagBits::eSampledImageYcbcrConversionChromaReconstructionExplicitForceable ) result += "SampledImageYcbcrConversionChromaReconstructionExplicitForceable | "; - if ( value & FormatFeatureFlagBits::eDisjoint ) result += "Disjoint | "; - if ( value & FormatFeatureFlagBits::eCositedChromaSamples ) result += "CositedChromaSamples | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterMinmax ) result += "SampledImageFilterMinmax | "; - if ( value & FormatFeatureFlagBits::eSampledImageFilterCubicIMG ) result += "SampledImageFilterCubicIMG | "; - if ( value & FormatFeatureFlagBits::eAccelerationStructureVertexBufferKHR ) result += "AccelerationStructureVertexBufferKHR | "; - if ( value & FormatFeatureFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | "; - if ( value & FormatFeatureFlagBits::eFragmentShadingRateAttachmentKHR ) result += "FragmentShadingRateAttachmentKHR | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using FramebufferCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(FramebufferCreateFlagBits::eImageless) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator|( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FramebufferCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator&( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FramebufferCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator^( FramebufferCreateFlagBits bit0, FramebufferCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return FramebufferCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR FramebufferCreateFlags operator~( FramebufferCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( FramebufferCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( FramebufferCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & FramebufferCreateFlagBits::eImageless ) result += "Imageless | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using GeometryFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(GeometryFlagBitsKHR::eOpaque) | VkFlags(GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator|( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator&( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator^( GeometryFlagBitsKHR bit0, GeometryFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryFlagsKHR operator~( GeometryFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( GeometryFlagsKHR( bits ) ); - } - - using GeometryFlagsNV = GeometryFlagsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & GeometryFlagBitsKHR::eOpaque ) result += "Opaque | "; - if ( value & GeometryFlagBitsKHR::eNoDuplicateAnyHitInvocation ) result += "NoDuplicateAnyHitInvocation | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using GeometryInstanceFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable) | VkFlags(GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise) | VkFlags(GeometryInstanceFlagBitsKHR::eForceOpaque) | VkFlags(GeometryInstanceFlagBitsKHR::eForceNoOpaque) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator|( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryInstanceFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator&( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryInstanceFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator^( GeometryInstanceFlagBitsKHR bit0, GeometryInstanceFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return GeometryInstanceFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR GeometryInstanceFlagsKHR operator~( GeometryInstanceFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( GeometryInstanceFlagsKHR( bits ) ); - } - - using GeometryInstanceFlagsNV = GeometryInstanceFlagsKHR; - - VULKAN_HPP_INLINE std::string to_string( GeometryInstanceFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & GeometryInstanceFlagBitsKHR::eTriangleFacingCullDisable ) result += "TriangleFacingCullDisable | "; - if ( value & GeometryInstanceFlagBitsKHR::eTriangleFrontCounterclockwise ) result += "TriangleFrontCounterclockwise | "; - if ( value & GeometryInstanceFlagBitsKHR::eForceOpaque ) result += "ForceOpaque | "; - if ( value & GeometryInstanceFlagBitsKHR::eForceNoOpaque ) result += "ForceNoOpaque | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class HeadlessSurfaceCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagBitsEXT ) - { - return "(void)"; - } - - using HeadlessSurfaceCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( HeadlessSurfaceCreateFlagsEXT ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_IOS_MVK - enum class IOSSurfaceCreateFlagBitsMVK : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagBitsMVK ) - { - return "(void)"; - } - - using IOSSurfaceCreateFlagsMVK = Flags; - - VULKAN_HPP_INLINE std::string to_string( IOSSurfaceCreateFlagsMVK ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - - using ImageAspectFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ImageAspectFlagBits::eColor) | VkFlags(ImageAspectFlagBits::eDepth) | VkFlags(ImageAspectFlagBits::eStencil) | VkFlags(ImageAspectFlagBits::eMetadata) | VkFlags(ImageAspectFlagBits::ePlane0) | VkFlags(ImageAspectFlagBits::ePlane1) | VkFlags(ImageAspectFlagBits::ePlane2) | VkFlags(ImageAspectFlagBits::eMemoryPlane0EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane1EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane2EXT) | VkFlags(ImageAspectFlagBits::eMemoryPlane3EXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator|( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageAspectFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator&( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageAspectFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator^( ImageAspectFlagBits bit0, ImageAspectFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageAspectFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageAspectFlags operator~( ImageAspectFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageAspectFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageAspectFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageAspectFlagBits::eColor ) result += "Color | "; - if ( value & ImageAspectFlagBits::eDepth ) result += "Depth | "; - if ( value & ImageAspectFlagBits::eStencil ) result += "Stencil | "; - if ( value & ImageAspectFlagBits::eMetadata ) result += "Metadata | "; - if ( value & ImageAspectFlagBits::ePlane0 ) result += "Plane0 | "; - if ( value & ImageAspectFlagBits::ePlane1 ) result += "Plane1 | "; - if ( value & ImageAspectFlagBits::ePlane2 ) result += "Plane2 | "; - if ( value & ImageAspectFlagBits::eMemoryPlane0EXT ) result += "MemoryPlane0EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane1EXT ) result += "MemoryPlane1EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane2EXT ) result += "MemoryPlane2EXT | "; - if ( value & ImageAspectFlagBits::eMemoryPlane3EXT ) result += "MemoryPlane3EXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ImageCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ImageCreateFlagBits::eSparseBinding) | VkFlags(ImageCreateFlagBits::eSparseResidency) | VkFlags(ImageCreateFlagBits::eSparseAliased) | VkFlags(ImageCreateFlagBits::eMutableFormat) | VkFlags(ImageCreateFlagBits::eCubeCompatible) | VkFlags(ImageCreateFlagBits::eAlias) | VkFlags(ImageCreateFlagBits::eSplitInstanceBindRegions) | VkFlags(ImageCreateFlagBits::e2DArrayCompatible) | VkFlags(ImageCreateFlagBits::eBlockTexelViewCompatible) | VkFlags(ImageCreateFlagBits::eExtendedUsage) | VkFlags(ImageCreateFlagBits::eProtected) | VkFlags(ImageCreateFlagBits::eDisjoint) | VkFlags(ImageCreateFlagBits::eCornerSampledNV) | VkFlags(ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT) | VkFlags(ImageCreateFlagBits::eSubsampledEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator|( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator&( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator^( ImageCreateFlagBits bit0, ImageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageCreateFlags operator~( ImageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageCreateFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & ImageCreateFlagBits::eSparseResidency ) result += "SparseResidency | "; - if ( value & ImageCreateFlagBits::eSparseAliased ) result += "SparseAliased | "; - if ( value & ImageCreateFlagBits::eMutableFormat ) result += "MutableFormat | "; - if ( value & ImageCreateFlagBits::eCubeCompatible ) result += "CubeCompatible | "; - if ( value & ImageCreateFlagBits::eAlias ) result += "Alias | "; - if ( value & ImageCreateFlagBits::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | "; - if ( value & ImageCreateFlagBits::e2DArrayCompatible ) result += "2DArrayCompatible | "; - if ( value & ImageCreateFlagBits::eBlockTexelViewCompatible ) result += "BlockTexelViewCompatible | "; - if ( value & ImageCreateFlagBits::eExtendedUsage ) result += "ExtendedUsage | "; - if ( value & ImageCreateFlagBits::eProtected ) result += "Protected | "; - if ( value & ImageCreateFlagBits::eDisjoint ) result += "Disjoint | "; - if ( value & ImageCreateFlagBits::eCornerSampledNV ) result += "CornerSampledNV | "; - if ( value & ImageCreateFlagBits::eSampleLocationsCompatibleDepthEXT ) result += "SampleLocationsCompatibleDepthEXT | "; - if ( value & ImageCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_FUCHSIA - enum class ImagePipeSurfaceCreateFlagBitsFUCHSIA : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagBitsFUCHSIA ) - { - return "(void)"; - } - - using ImagePipeSurfaceCreateFlagsFUCHSIA = Flags; - - VULKAN_HPP_INLINE std::string to_string( ImagePipeSurfaceCreateFlagsFUCHSIA ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - - using ImageUsageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ImageUsageFlagBits::eTransferSrc) | VkFlags(ImageUsageFlagBits::eTransferDst) | VkFlags(ImageUsageFlagBits::eSampled) | VkFlags(ImageUsageFlagBits::eStorage) | VkFlags(ImageUsageFlagBits::eColorAttachment) | VkFlags(ImageUsageFlagBits::eDepthStencilAttachment) | VkFlags(ImageUsageFlagBits::eTransientAttachment) | VkFlags(ImageUsageFlagBits::eInputAttachment) | VkFlags(ImageUsageFlagBits::eShadingRateImageNV) | VkFlags(ImageUsageFlagBits::eFragmentDensityMapEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator|( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageUsageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator&( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageUsageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator^( ImageUsageFlagBits bit0, ImageUsageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageUsageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageUsageFlags operator~( ImageUsageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageUsageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageUsageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageUsageFlagBits::eTransferSrc ) result += "TransferSrc | "; - if ( value & ImageUsageFlagBits::eTransferDst ) result += "TransferDst | "; - if ( value & ImageUsageFlagBits::eSampled ) result += "Sampled | "; - if ( value & ImageUsageFlagBits::eStorage ) result += "Storage | "; - if ( value & ImageUsageFlagBits::eColorAttachment ) result += "ColorAttachment | "; - if ( value & ImageUsageFlagBits::eDepthStencilAttachment ) result += "DepthStencilAttachment | "; - if ( value & ImageUsageFlagBits::eTransientAttachment ) result += "TransientAttachment | "; - if ( value & ImageUsageFlagBits::eInputAttachment ) result += "InputAttachment | "; - if ( value & ImageUsageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | "; - if ( value & ImageUsageFlagBits::eFragmentDensityMapEXT ) result += "FragmentDensityMapEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ImageViewCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT) | VkFlags(ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator|( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageViewCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator&( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageViewCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator^( ImageViewCreateFlagBits bit0, ImageViewCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ImageViewCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ImageViewCreateFlags operator~( ImageViewCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ImageViewCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ImageViewCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDynamicEXT ) result += "FragmentDensityMapDynamicEXT | "; - if ( value & ImageViewCreateFlagBits::eFragmentDensityMapDeferredEXT ) result += "FragmentDensityMapDeferredEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using IndirectCommandsLayoutUsageFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences) | VkFlags(IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator|( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectCommandsLayoutUsageFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator&( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectCommandsLayoutUsageFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator^( IndirectCommandsLayoutUsageFlagBitsNV bit0, IndirectCommandsLayoutUsageFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectCommandsLayoutUsageFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutUsageFlagsNV operator~( IndirectCommandsLayoutUsageFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( IndirectCommandsLayoutUsageFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( IndirectCommandsLayoutUsageFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eExplicitPreprocess ) result += "ExplicitPreprocess | "; - if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eIndexedSequences ) result += "IndexedSequences | "; - if ( value & IndirectCommandsLayoutUsageFlagBitsNV::eUnorderedSequences ) result += "UnorderedSequences | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using IndirectStateFlagsNV = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(IndirectStateFlagBitsNV::eFlagFrontface) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator|( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectStateFlagsNV( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator&( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectStateFlagsNV( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator^( IndirectStateFlagBitsNV bit0, IndirectStateFlagBitsNV bit1 ) VULKAN_HPP_NOEXCEPT - { - return IndirectStateFlagsNV( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR IndirectStateFlagsNV operator~( IndirectStateFlagBitsNV bits ) VULKAN_HPP_NOEXCEPT - { - return ~( IndirectStateFlagsNV( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( IndirectStateFlagsNV value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & IndirectStateFlagBitsNV::eFlagFrontface ) result += "FlagFrontface | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using InstanceCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( InstanceCreateFlags ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_MACOS_MVK - enum class MacOSSurfaceCreateFlagBitsMVK : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagBitsMVK ) - { - return "(void)"; - } - - using MacOSSurfaceCreateFlagsMVK = Flags; - - VULKAN_HPP_INLINE std::string to_string( MacOSSurfaceCreateFlagsMVK ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - - using MemoryAllocateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(MemoryAllocateFlagBits::eDeviceMask) | VkFlags(MemoryAllocateFlagBits::eDeviceAddress) | VkFlags(MemoryAllocateFlagBits::eDeviceAddressCaptureReplay) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator|( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryAllocateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator&( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryAllocateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator^( MemoryAllocateFlagBits bit0, MemoryAllocateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryAllocateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryAllocateFlags operator~( MemoryAllocateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( MemoryAllocateFlags( bits ) ); - } - - using MemoryAllocateFlagsKHR = MemoryAllocateFlags; - - VULKAN_HPP_INLINE std::string to_string( MemoryAllocateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & MemoryAllocateFlagBits::eDeviceMask ) result += "DeviceMask | "; - if ( value & MemoryAllocateFlagBits::eDeviceAddress ) result += "DeviceAddress | "; - if ( value & MemoryAllocateFlagBits::eDeviceAddressCaptureReplay ) result += "DeviceAddressCaptureReplay | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using MemoryHeapFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(MemoryHeapFlagBits::eDeviceLocal) | VkFlags(MemoryHeapFlagBits::eMultiInstance) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator|( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryHeapFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator&( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryHeapFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator^( MemoryHeapFlagBits bit0, MemoryHeapFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryHeapFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryHeapFlags operator~( MemoryHeapFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( MemoryHeapFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( MemoryHeapFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & MemoryHeapFlagBits::eDeviceLocal ) result += "DeviceLocal | "; - if ( value & MemoryHeapFlagBits::eMultiInstance ) result += "MultiInstance | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class MemoryMapFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( MemoryMapFlagBits ) - { - return "(void)"; - } - - using MemoryMapFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( MemoryMapFlags ) - { - - return "{}"; - } - - - using MemoryPropertyFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(MemoryPropertyFlagBits::eDeviceLocal) | VkFlags(MemoryPropertyFlagBits::eHostVisible) | VkFlags(MemoryPropertyFlagBits::eHostCoherent) | VkFlags(MemoryPropertyFlagBits::eHostCached) | VkFlags(MemoryPropertyFlagBits::eLazilyAllocated) | VkFlags(MemoryPropertyFlagBits::eProtected) | VkFlags(MemoryPropertyFlagBits::eDeviceCoherentAMD) | VkFlags(MemoryPropertyFlagBits::eDeviceUncachedAMD) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator|( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryPropertyFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator&( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryPropertyFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator^( MemoryPropertyFlagBits bit0, MemoryPropertyFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return MemoryPropertyFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR MemoryPropertyFlags operator~( MemoryPropertyFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( MemoryPropertyFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( MemoryPropertyFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & MemoryPropertyFlagBits::eDeviceLocal ) result += "DeviceLocal | "; - if ( value & MemoryPropertyFlagBits::eHostVisible ) result += "HostVisible | "; - if ( value & MemoryPropertyFlagBits::eHostCoherent ) result += "HostCoherent | "; - if ( value & MemoryPropertyFlagBits::eHostCached ) result += "HostCached | "; - if ( value & MemoryPropertyFlagBits::eLazilyAllocated ) result += "LazilyAllocated | "; - if ( value & MemoryPropertyFlagBits::eProtected ) result += "Protected | "; - if ( value & MemoryPropertyFlagBits::eDeviceCoherentAMD ) result += "DeviceCoherentAMD | "; - if ( value & MemoryPropertyFlagBits::eDeviceUncachedAMD ) result += "DeviceUncachedAMD | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_METAL_EXT - enum class MetalSurfaceCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagBitsEXT ) - { - return "(void)"; - } - - using MetalSurfaceCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( MetalSurfaceCreateFlagsEXT ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - - using PeerMemoryFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(PeerMemoryFeatureFlagBits::eCopySrc) | VkFlags(PeerMemoryFeatureFlagBits::eCopyDst) | VkFlags(PeerMemoryFeatureFlagBits::eGenericSrc) | VkFlags(PeerMemoryFeatureFlagBits::eGenericDst) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator|( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PeerMemoryFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator&( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PeerMemoryFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator^( PeerMemoryFeatureFlagBits bit0, PeerMemoryFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PeerMemoryFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PeerMemoryFeatureFlags operator~( PeerMemoryFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PeerMemoryFeatureFlags( bits ) ); - } - - using PeerMemoryFeatureFlagsKHR = PeerMemoryFeatureFlags; - - VULKAN_HPP_INLINE std::string to_string( PeerMemoryFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PeerMemoryFeatureFlagBits::eCopySrc ) result += "CopySrc | "; - if ( value & PeerMemoryFeatureFlagBits::eCopyDst ) result += "CopyDst | "; - if ( value & PeerMemoryFeatureFlagBits::eGenericSrc ) result += "GenericSrc | "; - if ( value & PeerMemoryFeatureFlagBits::eGenericDst ) result += "GenericDst | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PerformanceCounterDescriptionFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting) | VkFlags(PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator|( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator&( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator^( PerformanceCounterDescriptionFlagBitsKHR bit0, PerformanceCounterDescriptionFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return PerformanceCounterDescriptionFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PerformanceCounterDescriptionFlagsKHR operator~( PerformanceCounterDescriptionFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PerformanceCounterDescriptionFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PerformanceCounterDescriptionFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PerformanceCounterDescriptionFlagBitsKHR::ePerformanceImpacting ) result += "PerformanceImpacting | "; - if ( value & PerformanceCounterDescriptionFlagBitsKHR::eConcurrentlyImpacted ) result += "ConcurrentlyImpacted | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PipelineCacheCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(PipelineCacheCreateFlagBits::eExternallySynchronizedEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator|( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCacheCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator&( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCacheCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator^( PipelineCacheCreateFlagBits bit0, PipelineCacheCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCacheCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCacheCreateFlags operator~( PipelineCacheCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineCacheCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineCacheCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineCacheCreateFlagBits::eExternallySynchronizedEXT ) result += "ExternallySynchronizedEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class PipelineColorBlendStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineColorBlendStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineColorBlendStateCreateFlags ) - { - - return "{}"; - } - - - using PipelineCompilerControlFlagsAMD = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCompilerControlFlagsAMD ) - { - - return "{}"; - } - - enum class PipelineCoverageModulationStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineCoverageModulationStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageModulationStateCreateFlagsNV ) - { - - return "{}"; - } - - enum class PipelineCoverageReductionStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineCoverageReductionStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageReductionStateCreateFlagsNV ) - { - - return "{}"; - } - - enum class PipelineCoverageToColorStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineCoverageToColorStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineCoverageToColorStateCreateFlagsNV ) - { - - return "{}"; - } - - - using PipelineCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(PipelineCreateFlagBits::eDisableOptimization) | VkFlags(PipelineCreateFlagBits::eAllowDerivatives) | VkFlags(PipelineCreateFlagBits::eDerivative) | VkFlags(PipelineCreateFlagBits::eViewIndexFromDeviceIndex) | VkFlags(PipelineCreateFlagBits::eDispatchBase) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingSkipAabbsKHR) | VkFlags(PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR) | VkFlags(PipelineCreateFlagBits::eDeferCompileNV) | VkFlags(PipelineCreateFlagBits::eCaptureStatisticsKHR) | VkFlags(PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR) | VkFlags(PipelineCreateFlagBits::eIndirectBindableNV) | VkFlags(PipelineCreateFlagBits::eLibraryKHR) | VkFlags(PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT) | VkFlags(PipelineCreateFlagBits::eEarlyReturnOnFailureEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator|( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator&( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator^( PipelineCreateFlagBits bit0, PipelineCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreateFlags operator~( PipelineCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineCreateFlagBits::eDisableOptimization ) result += "DisableOptimization | "; - if ( value & PipelineCreateFlagBits::eAllowDerivatives ) result += "AllowDerivatives | "; - if ( value & PipelineCreateFlagBits::eDerivative ) result += "Derivative | "; - if ( value & PipelineCreateFlagBits::eViewIndexFromDeviceIndex ) result += "ViewIndexFromDeviceIndex | "; - if ( value & PipelineCreateFlagBits::eDispatchBase ) result += "DispatchBase | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullAnyHitShadersKHR ) result += "RayTracingNoNullAnyHitShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullClosestHitShadersKHR ) result += "RayTracingNoNullClosestHitShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullMissShadersKHR ) result += "RayTracingNoNullMissShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingNoNullIntersectionShadersKHR ) result += "RayTracingNoNullIntersectionShadersKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingSkipTrianglesKHR ) result += "RayTracingSkipTrianglesKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingSkipAabbsKHR ) result += "RayTracingSkipAabbsKHR | "; - if ( value & PipelineCreateFlagBits::eRayTracingShaderGroupHandleCaptureReplayKHR ) result += "RayTracingShaderGroupHandleCaptureReplayKHR | "; - if ( value & PipelineCreateFlagBits::eDeferCompileNV ) result += "DeferCompileNV | "; - if ( value & PipelineCreateFlagBits::eCaptureStatisticsKHR ) result += "CaptureStatisticsKHR | "; - if ( value & PipelineCreateFlagBits::eCaptureInternalRepresentationsKHR ) result += "CaptureInternalRepresentationsKHR | "; - if ( value & PipelineCreateFlagBits::eIndirectBindableNV ) result += "IndirectBindableNV | "; - if ( value & PipelineCreateFlagBits::eLibraryKHR ) result += "LibraryKHR | "; - if ( value & PipelineCreateFlagBits::eFailOnPipelineCompileRequiredEXT ) result += "FailOnPipelineCompileRequiredEXT | "; - if ( value & PipelineCreateFlagBits::eEarlyReturnOnFailureEXT ) result += "EarlyReturnOnFailureEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PipelineCreationFeedbackFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(PipelineCreationFeedbackFlagBitsEXT::eValid) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit) | VkFlags(PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator|( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreationFeedbackFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator&( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreationFeedbackFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator^( PipelineCreationFeedbackFlagBitsEXT bit0, PipelineCreationFeedbackFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineCreationFeedbackFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackFlagsEXT operator~( PipelineCreationFeedbackFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineCreationFeedbackFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineCreationFeedbackFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineCreationFeedbackFlagBitsEXT::eValid ) result += "Valid | "; - if ( value & PipelineCreationFeedbackFlagBitsEXT::eApplicationPipelineCacheHit ) result += "ApplicationPipelineCacheHit | "; - if ( value & PipelineCreationFeedbackFlagBitsEXT::eBasePipelineAcceleration ) result += "BasePipelineAcceleration | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class PipelineDepthStencilStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineDepthStencilStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineDepthStencilStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineDiscardRectangleStateCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineDiscardRectangleStateCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineDiscardRectangleStateCreateFlagsEXT ) - { - - return "{}"; - } - - enum class PipelineDynamicStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineDynamicStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineDynamicStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineInputAssemblyStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineInputAssemblyStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineInputAssemblyStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineLayoutCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlagBits ) - { - return "(void)"; - } - - using PipelineLayoutCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineLayoutCreateFlags ) - { - - return "{}"; - } - - enum class PipelineMultisampleStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineMultisampleStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineMultisampleStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineRasterizationConservativeStateCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineRasterizationConservativeStateCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationConservativeStateCreateFlagsEXT ) - { - - return "{}"; - } - - enum class PipelineRasterizationDepthClipStateCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineRasterizationDepthClipStateCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationDepthClipStateCreateFlagsEXT ) - { - - return "{}"; - } - - enum class PipelineRasterizationStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineRasterizationStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineRasterizationStateStreamCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagBitsEXT ) - { - return "(void)"; - } - - using PipelineRasterizationStateStreamCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineRasterizationStateStreamCreateFlagsEXT ) - { - - return "{}"; - } - - - using PipelineShaderStageCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT) | VkFlags(PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator|( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineShaderStageCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator&( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineShaderStageCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator^( PipelineShaderStageCreateFlagBits bit0, PipelineShaderStageCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineShaderStageCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateFlags operator~( PipelineShaderStageCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineShaderStageCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineShaderStageCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineShaderStageCreateFlagBits::eAllowVaryingSubgroupSizeEXT ) result += "AllowVaryingSubgroupSizeEXT | "; - if ( value & PipelineShaderStageCreateFlagBits::eRequireFullSubgroupsEXT ) result += "RequireFullSubgroupsEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using PipelineStageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(PipelineStageFlagBits::eTopOfPipe) | VkFlags(PipelineStageFlagBits::eDrawIndirect) | VkFlags(PipelineStageFlagBits::eVertexInput) | VkFlags(PipelineStageFlagBits::eVertexShader) | VkFlags(PipelineStageFlagBits::eTessellationControlShader) | VkFlags(PipelineStageFlagBits::eTessellationEvaluationShader) | VkFlags(PipelineStageFlagBits::eGeometryShader) | VkFlags(PipelineStageFlagBits::eFragmentShader) | VkFlags(PipelineStageFlagBits::eEarlyFragmentTests) | VkFlags(PipelineStageFlagBits::eLateFragmentTests) | VkFlags(PipelineStageFlagBits::eColorAttachmentOutput) | VkFlags(PipelineStageFlagBits::eComputeShader) | VkFlags(PipelineStageFlagBits::eTransfer) | VkFlags(PipelineStageFlagBits::eBottomOfPipe) | VkFlags(PipelineStageFlagBits::eHost) | VkFlags(PipelineStageFlagBits::eAllGraphics) | VkFlags(PipelineStageFlagBits::eAllCommands) | VkFlags(PipelineStageFlagBits::eTransformFeedbackEXT) | VkFlags(PipelineStageFlagBits::eConditionalRenderingEXT) | VkFlags(PipelineStageFlagBits::eAccelerationStructureBuildKHR) | VkFlags(PipelineStageFlagBits::eRayTracingShaderKHR) | VkFlags(PipelineStageFlagBits::eShadingRateImageNV) | VkFlags(PipelineStageFlagBits::eTaskShaderNV) | VkFlags(PipelineStageFlagBits::eMeshShaderNV) | VkFlags(PipelineStageFlagBits::eFragmentDensityProcessEXT) | VkFlags(PipelineStageFlagBits::eCommandPreprocessNV) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator|( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator&( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator^( PipelineStageFlagBits bit0, PipelineStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return PipelineStageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR PipelineStageFlags operator~( PipelineStageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( PipelineStageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( PipelineStageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & PipelineStageFlagBits::eTopOfPipe ) result += "TopOfPipe | "; - if ( value & PipelineStageFlagBits::eDrawIndirect ) result += "DrawIndirect | "; - if ( value & PipelineStageFlagBits::eVertexInput ) result += "VertexInput | "; - if ( value & PipelineStageFlagBits::eVertexShader ) result += "VertexShader | "; - if ( value & PipelineStageFlagBits::eTessellationControlShader ) result += "TessellationControlShader | "; - if ( value & PipelineStageFlagBits::eTessellationEvaluationShader ) result += "TessellationEvaluationShader | "; - if ( value & PipelineStageFlagBits::eGeometryShader ) result += "GeometryShader | "; - if ( value & PipelineStageFlagBits::eFragmentShader ) result += "FragmentShader | "; - if ( value & PipelineStageFlagBits::eEarlyFragmentTests ) result += "EarlyFragmentTests | "; - if ( value & PipelineStageFlagBits::eLateFragmentTests ) result += "LateFragmentTests | "; - if ( value & PipelineStageFlagBits::eColorAttachmentOutput ) result += "ColorAttachmentOutput | "; - if ( value & PipelineStageFlagBits::eComputeShader ) result += "ComputeShader | "; - if ( value & PipelineStageFlagBits::eTransfer ) result += "Transfer | "; - if ( value & PipelineStageFlagBits::eBottomOfPipe ) result += "BottomOfPipe | "; - if ( value & PipelineStageFlagBits::eHost ) result += "Host | "; - if ( value & PipelineStageFlagBits::eAllGraphics ) result += "AllGraphics | "; - if ( value & PipelineStageFlagBits::eAllCommands ) result += "AllCommands | "; - if ( value & PipelineStageFlagBits::eTransformFeedbackEXT ) result += "TransformFeedbackEXT | "; - if ( value & PipelineStageFlagBits::eConditionalRenderingEXT ) result += "ConditionalRenderingEXT | "; - if ( value & PipelineStageFlagBits::eAccelerationStructureBuildKHR ) result += "AccelerationStructureBuildKHR | "; - if ( value & PipelineStageFlagBits::eRayTracingShaderKHR ) result += "RayTracingShaderKHR | "; - if ( value & PipelineStageFlagBits::eShadingRateImageNV ) result += "ShadingRateImageNV | "; - if ( value & PipelineStageFlagBits::eTaskShaderNV ) result += "TaskShaderNV | "; - if ( value & PipelineStageFlagBits::eMeshShaderNV ) result += "MeshShaderNV | "; - if ( value & PipelineStageFlagBits::eFragmentDensityProcessEXT ) result += "FragmentDensityProcessEXT | "; - if ( value & PipelineStageFlagBits::eCommandPreprocessNV ) result += "CommandPreprocessNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class PipelineTessellationStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineTessellationStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineTessellationStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineVertexInputStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineVertexInputStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineVertexInputStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineViewportStateCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlagBits ) - { - return "(void)"; - } - - using PipelineViewportStateCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportStateCreateFlags ) - { - - return "{}"; - } - - enum class PipelineViewportSwizzleStateCreateFlagBitsNV : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagBitsNV ) - { - return "(void)"; - } - - using PipelineViewportSwizzleStateCreateFlagsNV = Flags; - - VULKAN_HPP_INLINE std::string to_string( PipelineViewportSwizzleStateCreateFlagsNV ) - { - - return "{}"; - } - - - using PrivateDataSlotCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( PrivateDataSlotCreateFlagsEXT ) - { - - return "{}"; - } - - - using QueryControlFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(QueryControlFlagBits::ePrecise) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator|( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryControlFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator&( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryControlFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator^( QueryControlFlagBits bit0, QueryControlFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryControlFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryControlFlags operator~( QueryControlFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueryControlFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueryControlFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueryControlFlagBits::ePrecise ) result += "Precise | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using QueryPipelineStatisticFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyVertices) | VkFlags(QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eVertexShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eClippingInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eClippingPrimitives) | VkFlags(QueryPipelineStatisticFlagBits::eFragmentShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches) | VkFlags(QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations) | VkFlags(QueryPipelineStatisticFlagBits::eComputeShaderInvocations) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator|( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryPipelineStatisticFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator&( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryPipelineStatisticFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator^( QueryPipelineStatisticFlagBits bit0, QueryPipelineStatisticFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryPipelineStatisticFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryPipelineStatisticFlags operator~( QueryPipelineStatisticFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueryPipelineStatisticFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueryPipelineStatisticFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyVertices ) result += "InputAssemblyVertices | "; - if ( value & QueryPipelineStatisticFlagBits::eInputAssemblyPrimitives ) result += "InputAssemblyPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eVertexShaderInvocations ) result += "VertexShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderInvocations ) result += "GeometryShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eGeometryShaderPrimitives ) result += "GeometryShaderPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eClippingInvocations ) result += "ClippingInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eClippingPrimitives ) result += "ClippingPrimitives | "; - if ( value & QueryPipelineStatisticFlagBits::eFragmentShaderInvocations ) result += "FragmentShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eTessellationControlShaderPatches ) result += "TessellationControlShaderPatches | "; - if ( value & QueryPipelineStatisticFlagBits::eTessellationEvaluationShaderInvocations ) result += "TessellationEvaluationShaderInvocations | "; - if ( value & QueryPipelineStatisticFlagBits::eComputeShaderInvocations ) result += "ComputeShaderInvocations | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using QueryPoolCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( QueryPoolCreateFlags ) - { - - return "{}"; - } - - - using QueryResultFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(QueryResultFlagBits::e64) | VkFlags(QueryResultFlagBits::eWait) | VkFlags(QueryResultFlagBits::eWithAvailability) | VkFlags(QueryResultFlagBits::ePartial) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator|( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryResultFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator&( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryResultFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator^( QueryResultFlagBits bit0, QueryResultFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueryResultFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueryResultFlags operator~( QueryResultFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueryResultFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueryResultFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueryResultFlagBits::e64 ) result += "64 | "; - if ( value & QueryResultFlagBits::eWait ) result += "Wait | "; - if ( value & QueryResultFlagBits::eWithAvailability ) result += "WithAvailability | "; - if ( value & QueryResultFlagBits::ePartial ) result += "Partial | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using QueueFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(QueueFlagBits::eGraphics) | VkFlags(QueueFlagBits::eCompute) | VkFlags(QueueFlagBits::eTransfer) | VkFlags(QueueFlagBits::eSparseBinding) | VkFlags(QueueFlagBits::eProtected) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator|( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueueFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator&( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueueFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator^( QueueFlagBits bit0, QueueFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return QueueFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR QueueFlags operator~( QueueFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( QueueFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( QueueFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & QueueFlagBits::eGraphics ) result += "Graphics | "; - if ( value & QueueFlagBits::eCompute ) result += "Compute | "; - if ( value & QueueFlagBits::eTransfer ) result += "Transfer | "; - if ( value & QueueFlagBits::eSparseBinding ) result += "SparseBinding | "; - if ( value & QueueFlagBits::eProtected ) result += "Protected | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using RenderPassCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(RenderPassCreateFlagBits::eTransformQCOM) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator|( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return RenderPassCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator&( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return RenderPassCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator^( RenderPassCreateFlagBits bit0, RenderPassCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return RenderPassCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR RenderPassCreateFlags operator~( RenderPassCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( RenderPassCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( RenderPassCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & RenderPassCreateFlagBits::eTransformQCOM ) result += "TransformQCOM | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ResolveModeFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ResolveModeFlagBits::eNone) | VkFlags(ResolveModeFlagBits::eSampleZero) | VkFlags(ResolveModeFlagBits::eAverage) | VkFlags(ResolveModeFlagBits::eMin) | VkFlags(ResolveModeFlagBits::eMax) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator|( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ResolveModeFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator&( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ResolveModeFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator^( ResolveModeFlagBits bit0, ResolveModeFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ResolveModeFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ResolveModeFlags operator~( ResolveModeFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ResolveModeFlags( bits ) ); - } - - using ResolveModeFlagsKHR = ResolveModeFlags; - - VULKAN_HPP_INLINE std::string to_string( ResolveModeFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ResolveModeFlagBits::eSampleZero ) result += "SampleZero | "; - if ( value & ResolveModeFlagBits::eAverage ) result += "Average | "; - if ( value & ResolveModeFlagBits::eMin ) result += "Min | "; - if ( value & ResolveModeFlagBits::eMax ) result += "Max | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SampleCountFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SampleCountFlagBits::e1) | VkFlags(SampleCountFlagBits::e2) | VkFlags(SampleCountFlagBits::e4) | VkFlags(SampleCountFlagBits::e8) | VkFlags(SampleCountFlagBits::e16) | VkFlags(SampleCountFlagBits::e32) | VkFlags(SampleCountFlagBits::e64) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator|( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SampleCountFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator&( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SampleCountFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator^( SampleCountFlagBits bit0, SampleCountFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SampleCountFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SampleCountFlags operator~( SampleCountFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SampleCountFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SampleCountFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SampleCountFlagBits::e1 ) result += "1 | "; - if ( value & SampleCountFlagBits::e2 ) result += "2 | "; - if ( value & SampleCountFlagBits::e4 ) result += "4 | "; - if ( value & SampleCountFlagBits::e8 ) result += "8 | "; - if ( value & SampleCountFlagBits::e16 ) result += "16 | "; - if ( value & SampleCountFlagBits::e32 ) result += "32 | "; - if ( value & SampleCountFlagBits::e64 ) result += "64 | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SamplerCreateFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SamplerCreateFlagBits::eSubsampledEXT) | VkFlags(SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator|( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SamplerCreateFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator&( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SamplerCreateFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator^( SamplerCreateFlagBits bit0, SamplerCreateFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SamplerCreateFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SamplerCreateFlags operator~( SamplerCreateFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SamplerCreateFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SamplerCreateFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SamplerCreateFlagBits::eSubsampledEXT ) result += "SubsampledEXT | "; - if ( value & SamplerCreateFlagBits::eSubsampledCoarseReconstructionEXT ) result += "SubsampledCoarseReconstructionEXT | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class SemaphoreCreateFlagBits : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlagBits ) - { - return "(void)"; - } - - using SemaphoreCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreCreateFlags ) - { - - return "{}"; - } - - - using SemaphoreImportFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SemaphoreImportFlagBits::eTemporary) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator|( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreImportFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator&( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreImportFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator^( SemaphoreImportFlagBits bit0, SemaphoreImportFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreImportFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreImportFlags operator~( SemaphoreImportFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SemaphoreImportFlags( bits ) ); - } - - using SemaphoreImportFlagsKHR = SemaphoreImportFlags; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreImportFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SemaphoreImportFlagBits::eTemporary ) result += "Temporary | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SemaphoreWaitFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SemaphoreWaitFlagBits::eAny) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator|( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreWaitFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator&( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreWaitFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator^( SemaphoreWaitFlagBits bit0, SemaphoreWaitFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SemaphoreWaitFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SemaphoreWaitFlags operator~( SemaphoreWaitFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SemaphoreWaitFlags( bits ) ); - } - - using SemaphoreWaitFlagsKHR = SemaphoreWaitFlags; - - VULKAN_HPP_INLINE std::string to_string( SemaphoreWaitFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SemaphoreWaitFlagBits::eAny ) result += "Any | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ShaderCorePropertiesFlagsAMD = Flags; - - VULKAN_HPP_INLINE std::string to_string( ShaderCorePropertiesFlagsAMD ) - { - - return "{}"; - } - - - using ShaderModuleCreateFlags = Flags; - - VULKAN_HPP_INLINE std::string to_string( ShaderModuleCreateFlags ) - { - - return "{}"; - } - - - using ShaderStageFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ShaderStageFlagBits::eVertex) | VkFlags(ShaderStageFlagBits::eTessellationControl) | VkFlags(ShaderStageFlagBits::eTessellationEvaluation) | VkFlags(ShaderStageFlagBits::eGeometry) | VkFlags(ShaderStageFlagBits::eFragment) | VkFlags(ShaderStageFlagBits::eCompute) | VkFlags(ShaderStageFlagBits::eAllGraphics) | VkFlags(ShaderStageFlagBits::eAll) | VkFlags(ShaderStageFlagBits::eRaygenKHR) | VkFlags(ShaderStageFlagBits::eAnyHitKHR) | VkFlags(ShaderStageFlagBits::eClosestHitKHR) | VkFlags(ShaderStageFlagBits::eMissKHR) | VkFlags(ShaderStageFlagBits::eIntersectionKHR) | VkFlags(ShaderStageFlagBits::eCallableKHR) | VkFlags(ShaderStageFlagBits::eTaskNV) | VkFlags(ShaderStageFlagBits::eMeshNV) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator|( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ShaderStageFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator&( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ShaderStageFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator^( ShaderStageFlagBits bit0, ShaderStageFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return ShaderStageFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ShaderStageFlags operator~( ShaderStageFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ShaderStageFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ShaderStageFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ShaderStageFlagBits::eVertex ) result += "Vertex | "; - if ( value & ShaderStageFlagBits::eTessellationControl ) result += "TessellationControl | "; - if ( value & ShaderStageFlagBits::eTessellationEvaluation ) result += "TessellationEvaluation | "; - if ( value & ShaderStageFlagBits::eGeometry ) result += "Geometry | "; - if ( value & ShaderStageFlagBits::eFragment ) result += "Fragment | "; - if ( value & ShaderStageFlagBits::eCompute ) result += "Compute | "; - if ( value & ShaderStageFlagBits::eRaygenKHR ) result += "RaygenKHR | "; - if ( value & ShaderStageFlagBits::eAnyHitKHR ) result += "AnyHitKHR | "; - if ( value & ShaderStageFlagBits::eClosestHitKHR ) result += "ClosestHitKHR | "; - if ( value & ShaderStageFlagBits::eMissKHR ) result += "MissKHR | "; - if ( value & ShaderStageFlagBits::eIntersectionKHR ) result += "IntersectionKHR | "; - if ( value & ShaderStageFlagBits::eCallableKHR ) result += "CallableKHR | "; - if ( value & ShaderStageFlagBits::eTaskNV ) result += "TaskNV | "; - if ( value & ShaderStageFlagBits::eMeshNV ) result += "MeshNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SparseImageFormatFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SparseImageFormatFlagBits::eSingleMiptail) | VkFlags(SparseImageFormatFlagBits::eAlignedMipSize) | VkFlags(SparseImageFormatFlagBits::eNonstandardBlockSize) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator|( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseImageFormatFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator&( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseImageFormatFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator^( SparseImageFormatFlagBits bit0, SparseImageFormatFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseImageFormatFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseImageFormatFlags operator~( SparseImageFormatFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SparseImageFormatFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SparseImageFormatFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SparseImageFormatFlagBits::eSingleMiptail ) result += "SingleMiptail | "; - if ( value & SparseImageFormatFlagBits::eAlignedMipSize ) result += "AlignedMipSize | "; - if ( value & SparseImageFormatFlagBits::eNonstandardBlockSize ) result += "NonstandardBlockSize | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SparseMemoryBindFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SparseMemoryBindFlagBits::eMetadata) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator|( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseMemoryBindFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator&( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseMemoryBindFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator^( SparseMemoryBindFlagBits bit0, SparseMemoryBindFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SparseMemoryBindFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SparseMemoryBindFlags operator~( SparseMemoryBindFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SparseMemoryBindFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SparseMemoryBindFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SparseMemoryBindFlagBits::eMetadata ) result += "Metadata | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using StencilFaceFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(StencilFaceFlagBits::eFront) | VkFlags(StencilFaceFlagBits::eBack) | VkFlags(StencilFaceFlagBits::eFrontAndBack) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator|( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return StencilFaceFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator&( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return StencilFaceFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator^( StencilFaceFlagBits bit0, StencilFaceFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return StencilFaceFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR StencilFaceFlags operator~( StencilFaceFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( StencilFaceFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( StencilFaceFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & StencilFaceFlagBits::eFront ) result += "Front | "; - if ( value & StencilFaceFlagBits::eBack ) result += "Back | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - -#ifdef VK_USE_PLATFORM_GGP - enum class StreamDescriptorSurfaceCreateFlagBitsGGP : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagBitsGGP ) - { - return "(void)"; - } - - using StreamDescriptorSurfaceCreateFlagsGGP = Flags; - - VULKAN_HPP_INLINE std::string to_string( StreamDescriptorSurfaceCreateFlagsGGP ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_GGP*/ - - - using SubgroupFeatureFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SubgroupFeatureFlagBits::eBasic) | VkFlags(SubgroupFeatureFlagBits::eVote) | VkFlags(SubgroupFeatureFlagBits::eArithmetic) | VkFlags(SubgroupFeatureFlagBits::eBallot) | VkFlags(SubgroupFeatureFlagBits::eShuffle) | VkFlags(SubgroupFeatureFlagBits::eShuffleRelative) | VkFlags(SubgroupFeatureFlagBits::eClustered) | VkFlags(SubgroupFeatureFlagBits::eQuad) | VkFlags(SubgroupFeatureFlagBits::ePartitionedNV) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator|( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubgroupFeatureFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator&( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubgroupFeatureFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator^( SubgroupFeatureFlagBits bit0, SubgroupFeatureFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubgroupFeatureFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubgroupFeatureFlags operator~( SubgroupFeatureFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SubgroupFeatureFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SubgroupFeatureFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SubgroupFeatureFlagBits::eBasic ) result += "Basic | "; - if ( value & SubgroupFeatureFlagBits::eVote ) result += "Vote | "; - if ( value & SubgroupFeatureFlagBits::eArithmetic ) result += "Arithmetic | "; - if ( value & SubgroupFeatureFlagBits::eBallot ) result += "Ballot | "; - if ( value & SubgroupFeatureFlagBits::eShuffle ) result += "Shuffle | "; - if ( value & SubgroupFeatureFlagBits::eShuffleRelative ) result += "ShuffleRelative | "; - if ( value & SubgroupFeatureFlagBits::eClustered ) result += "Clustered | "; - if ( value & SubgroupFeatureFlagBits::eQuad ) result += "Quad | "; - if ( value & SubgroupFeatureFlagBits::ePartitionedNV ) result += "PartitionedNV | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SubpassDescriptionFlags = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SubpassDescriptionFlagBits::ePerViewAttributesNVX) | VkFlags(SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX) | VkFlags(SubpassDescriptionFlagBits::eFragmentRegionQCOM) | VkFlags(SubpassDescriptionFlagBits::eShaderResolveQCOM) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator|( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubpassDescriptionFlags( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator&( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubpassDescriptionFlags( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator^( SubpassDescriptionFlagBits bit0, SubpassDescriptionFlagBits bit1 ) VULKAN_HPP_NOEXCEPT - { - return SubpassDescriptionFlags( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SubpassDescriptionFlags operator~( SubpassDescriptionFlagBits bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SubpassDescriptionFlags( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SubpassDescriptionFlags value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SubpassDescriptionFlagBits::ePerViewAttributesNVX ) result += "PerViewAttributesNVX | "; - if ( value & SubpassDescriptionFlagBits::ePerViewPositionXOnlyNVX ) result += "PerViewPositionXOnlyNVX | "; - if ( value & SubpassDescriptionFlagBits::eFragmentRegionQCOM ) result += "FragmentRegionQCOM | "; - if ( value & SubpassDescriptionFlagBits::eShaderResolveQCOM ) result += "ShaderResolveQCOM | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SurfaceCounterFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SurfaceCounterFlagBitsEXT::eVblank) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator|( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceCounterFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator&( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceCounterFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator^( SurfaceCounterFlagBitsEXT bit0, SurfaceCounterFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceCounterFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceCounterFlagsEXT operator~( SurfaceCounterFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SurfaceCounterFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SurfaceCounterFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SurfaceCounterFlagBitsEXT::eVblank ) result += "Vblank | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SurfaceTransformFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SurfaceTransformFlagBitsKHR::eIdentity) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirror) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180) | VkFlags(SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270) | VkFlags(SurfaceTransformFlagBitsKHR::eInherit) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator|( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceTransformFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator&( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceTransformFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator^( SurfaceTransformFlagBitsKHR bit0, SurfaceTransformFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SurfaceTransformFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SurfaceTransformFlagsKHR operator~( SurfaceTransformFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SurfaceTransformFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SurfaceTransformFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SurfaceTransformFlagBitsKHR::eIdentity ) result += "Identity | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate90 ) result += "Rotate90 | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate180 ) result += "Rotate180 | "; - if ( value & SurfaceTransformFlagBitsKHR::eRotate270 ) result += "Rotate270 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirror ) result += "HorizontalMirror | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate90 ) result += "HorizontalMirrorRotate90 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate180 ) result += "HorizontalMirrorRotate180 | "; - if ( value & SurfaceTransformFlagBitsKHR::eHorizontalMirrorRotate270 ) result += "HorizontalMirrorRotate270 | "; - if ( value & SurfaceTransformFlagBitsKHR::eInherit ) result += "Inherit | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using SwapchainCreateFlagsKHR = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions) | VkFlags(SwapchainCreateFlagBitsKHR::eProtected) | VkFlags(SwapchainCreateFlagBitsKHR::eMutableFormat) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator|( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SwapchainCreateFlagsKHR( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator&( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SwapchainCreateFlagsKHR( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator^( SwapchainCreateFlagBitsKHR bit0, SwapchainCreateFlagBitsKHR bit1 ) VULKAN_HPP_NOEXCEPT - { - return SwapchainCreateFlagsKHR( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR SwapchainCreateFlagsKHR operator~( SwapchainCreateFlagBitsKHR bits ) VULKAN_HPP_NOEXCEPT - { - return ~( SwapchainCreateFlagsKHR( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( SwapchainCreateFlagsKHR value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & SwapchainCreateFlagBitsKHR::eSplitInstanceBindRegions ) result += "SplitInstanceBindRegions | "; - if ( value & SwapchainCreateFlagBitsKHR::eProtected ) result += "Protected | "; - if ( value & SwapchainCreateFlagBitsKHR::eMutableFormat ) result += "MutableFormat | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - - using ToolPurposeFlagsEXT = Flags; - - template <> struct FlagTraits - { - enum : VkFlags - { - allFlags = VkFlags(ToolPurposeFlagBitsEXT::eValidation) | VkFlags(ToolPurposeFlagBitsEXT::eProfiling) | VkFlags(ToolPurposeFlagBitsEXT::eTracing) | VkFlags(ToolPurposeFlagBitsEXT::eAdditionalFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eModifyingFeatures) | VkFlags(ToolPurposeFlagBitsEXT::eDebugReporting) | VkFlags(ToolPurposeFlagBitsEXT::eDebugMarkers) - }; - }; - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator|( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ToolPurposeFlagsEXT( bit0 ) | bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator&( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ToolPurposeFlagsEXT( bit0 ) & bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator^( ToolPurposeFlagBitsEXT bit0, ToolPurposeFlagBitsEXT bit1 ) VULKAN_HPP_NOEXCEPT - { - return ToolPurposeFlagsEXT( bit0 ) ^ bit1; - } - - VULKAN_HPP_INLINE VULKAN_HPP_CONSTEXPR ToolPurposeFlagsEXT operator~( ToolPurposeFlagBitsEXT bits ) VULKAN_HPP_NOEXCEPT - { - return ~( ToolPurposeFlagsEXT( bits ) ); - } - - VULKAN_HPP_INLINE std::string to_string( ToolPurposeFlagsEXT value ) - { - - if ( !value ) return "{}"; - std::string result; - - if ( value & ToolPurposeFlagBitsEXT::eValidation ) result += "Validation | "; - if ( value & ToolPurposeFlagBitsEXT::eProfiling ) result += "Profiling | "; - if ( value & ToolPurposeFlagBitsEXT::eTracing ) result += "Tracing | "; - if ( value & ToolPurposeFlagBitsEXT::eAdditionalFeatures ) result += "AdditionalFeatures | "; - if ( value & ToolPurposeFlagBitsEXT::eModifyingFeatures ) result += "ModifyingFeatures | "; - if ( value & ToolPurposeFlagBitsEXT::eDebugReporting ) result += "DebugReporting | "; - if ( value & ToolPurposeFlagBitsEXT::eDebugMarkers ) result += "DebugMarkers | "; - return "{ " + result.substr(0, result.size() - 3) + " }"; - } - - enum class ValidationCacheCreateFlagBitsEXT : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagBitsEXT ) - { - return "(void)"; - } - - using ValidationCacheCreateFlagsEXT = Flags; - - VULKAN_HPP_INLINE std::string to_string( ValidationCacheCreateFlagsEXT ) - { - - return "{}"; - } - -#ifdef VK_USE_PLATFORM_VI_NN - enum class ViSurfaceCreateFlagBitsNN : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagBitsNN ) - { - return "(void)"; - } - - using ViSurfaceCreateFlagsNN = Flags; - - VULKAN_HPP_INLINE std::string to_string( ViSurfaceCreateFlagsNN ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - enum class WaylandSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using WaylandSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( WaylandSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - enum class Win32SurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using Win32SurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( Win32SurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_XCB_KHR - enum class XcbSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using XcbSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( XcbSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - enum class XlibSurfaceCreateFlagBitsKHR : VkFlags - {}; - - VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagBitsKHR ) - { - return "(void)"; - } - - using XlibSurfaceCreateFlagsKHR = Flags; - - VULKAN_HPP_INLINE std::string to_string( XlibSurfaceCreateFlagsKHR ) - { - - return "{}"; - } -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -} // namespace VULKAN_HPP_NAMESPACE - -#ifndef VULKAN_HPP_NO_EXCEPTIONS -namespace std -{ - template <> - struct is_error_code_enum : public true_type - {}; -} -#endif - -namespace VULKAN_HPP_NAMESPACE -{ -#ifndef VULKAN_HPP_NO_EXCEPTIONS - class ErrorCategoryImpl : public std::error_category - { - public: - virtual const char* name() const VULKAN_HPP_NOEXCEPT override { return VULKAN_HPP_NAMESPACE_STRING"::Result"; } - virtual std::string message(int ev) const override { return to_string(static_cast(ev)); } - }; - - class Error - { - public: - Error() VULKAN_HPP_NOEXCEPT = default; - Error(const Error&) VULKAN_HPP_NOEXCEPT = default; - virtual ~Error() VULKAN_HPP_NOEXCEPT = default; - - virtual const char* what() const VULKAN_HPP_NOEXCEPT = 0; - }; - - class LogicError : public Error, public std::logic_error - { - public: - explicit LogicError( const std::string& what ) - : Error(), std::logic_error(what) {} - explicit LogicError( char const * what ) - : Error(), std::logic_error(what) {} - - virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::logic_error::what(); } - }; - - class SystemError : public Error, public std::system_error - { - public: - SystemError( std::error_code ec ) - : Error(), std::system_error(ec) {} - SystemError( std::error_code ec, std::string const& what ) - : Error(), std::system_error(ec, what) {} - SystemError( std::error_code ec, char const * what ) - : Error(), std::system_error(ec, what) {} - SystemError( int ev, std::error_category const& ecat ) - : Error(), std::system_error(ev, ecat) {} - SystemError( int ev, std::error_category const& ecat, std::string const& what) - : Error(), std::system_error(ev, ecat, what) {} - SystemError( int ev, std::error_category const& ecat, char const * what) - : Error(), std::system_error(ev, ecat, what) {} - - virtual const char* what() const VULKAN_HPP_NOEXCEPT { return std::system_error::what(); } - }; - - VULKAN_HPP_INLINE const std::error_category& errorCategory() VULKAN_HPP_NOEXCEPT - { - static ErrorCategoryImpl instance; - return instance; - } - - VULKAN_HPP_INLINE std::error_code make_error_code(Result e) VULKAN_HPP_NOEXCEPT - { - return std::error_code(static_cast(e), errorCategory()); - } - - VULKAN_HPP_INLINE std::error_condition make_error_condition(Result e) VULKAN_HPP_NOEXCEPT - { - return std::error_condition(static_cast(e), errorCategory()); - } - - class OutOfHostMemoryError : public SystemError - { - public: - OutOfHostMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {} - OutOfHostMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfHostMemory ), message ) {} - }; - - class OutOfDeviceMemoryError : public SystemError - { - public: - OutOfDeviceMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {} - OutOfDeviceMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfDeviceMemory ), message ) {} - }; - - class InitializationFailedError : public SystemError - { - public: - InitializationFailedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {} - InitializationFailedError( char const * message ) - : SystemError( make_error_code( Result::eErrorInitializationFailed ), message ) {} - }; - - class DeviceLostError : public SystemError - { - public: - DeviceLostError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} - DeviceLostError( char const * message ) - : SystemError( make_error_code( Result::eErrorDeviceLost ), message ) {} - }; - - class MemoryMapFailedError : public SystemError - { - public: - MemoryMapFailedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {} - MemoryMapFailedError( char const * message ) - : SystemError( make_error_code( Result::eErrorMemoryMapFailed ), message ) {} - }; - - class LayerNotPresentError : public SystemError - { - public: - LayerNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {} - LayerNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorLayerNotPresent ), message ) {} - }; - - class ExtensionNotPresentError : public SystemError - { - public: - ExtensionNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {} - ExtensionNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorExtensionNotPresent ), message ) {} - }; - - class FeatureNotPresentError : public SystemError - { - public: - FeatureNotPresentError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {} - FeatureNotPresentError( char const * message ) - : SystemError( make_error_code( Result::eErrorFeatureNotPresent ), message ) {} - }; - - class IncompatibleDriverError : public SystemError - { - public: - IncompatibleDriverError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {} - IncompatibleDriverError( char const * message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDriver ), message ) {} - }; - - class TooManyObjectsError : public SystemError - { - public: - TooManyObjectsError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {} - TooManyObjectsError( char const * message ) - : SystemError( make_error_code( Result::eErrorTooManyObjects ), message ) {} - }; - - class FormatNotSupportedError : public SystemError - { - public: - FormatNotSupportedError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {} - FormatNotSupportedError( char const * message ) - : SystemError( make_error_code( Result::eErrorFormatNotSupported ), message ) {} - }; - - class FragmentedPoolError : public SystemError - { - public: - FragmentedPoolError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {} - FragmentedPoolError( char const * message ) - : SystemError( make_error_code( Result::eErrorFragmentedPool ), message ) {} - }; - - class UnknownError : public SystemError - { - public: - UnknownError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} - UnknownError( char const * message ) - : SystemError( make_error_code( Result::eErrorUnknown ), message ) {} - }; - - class OutOfPoolMemoryError : public SystemError - { - public: - OutOfPoolMemoryError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {} - OutOfPoolMemoryError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfPoolMemory ), message ) {} - }; - - class InvalidExternalHandleError : public SystemError - { - public: - InvalidExternalHandleError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {} - InvalidExternalHandleError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidExternalHandle ), message ) {} - }; - - class FragmentationError : public SystemError - { - public: - FragmentationError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {} - FragmentationError( char const * message ) - : SystemError( make_error_code( Result::eErrorFragmentation ), message ) {} - }; - - class InvalidOpaqueCaptureAddressError : public SystemError - { - public: - InvalidOpaqueCaptureAddressError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {} - InvalidOpaqueCaptureAddressError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidOpaqueCaptureAddress ), message ) {} - }; - - class SurfaceLostKHRError : public SystemError - { - public: - SurfaceLostKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {} - SurfaceLostKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorSurfaceLostKHR ), message ) {} - }; - - class NativeWindowInUseKHRError : public SystemError - { - public: - NativeWindowInUseKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {} - NativeWindowInUseKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorNativeWindowInUseKHR ), message ) {} - }; - - class OutOfDateKHRError : public SystemError - { - public: - OutOfDateKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} - OutOfDateKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorOutOfDateKHR ), message ) {} - }; - - class IncompatibleDisplayKHRError : public SystemError - { - public: - IncompatibleDisplayKHRError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {} - IncompatibleDisplayKHRError( char const * message ) - : SystemError( make_error_code( Result::eErrorIncompatibleDisplayKHR ), message ) {} - }; - - class ValidationFailedEXTError : public SystemError - { - public: - ValidationFailedEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {} - ValidationFailedEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorValidationFailedEXT ), message ) {} - }; - - class InvalidShaderNVError : public SystemError - { - public: - InvalidShaderNVError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {} - InvalidShaderNVError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidShaderNV ), message ) {} - }; - - class InvalidDrmFormatModifierPlaneLayoutEXTError : public SystemError - { - public: - InvalidDrmFormatModifierPlaneLayoutEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {} - InvalidDrmFormatModifierPlaneLayoutEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT ), message ) {} - }; - - class NotPermittedEXTError : public SystemError - { - public: - NotPermittedEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {} - NotPermittedEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorNotPermittedEXT ), message ) {} - }; - - class FullScreenExclusiveModeLostEXTError : public SystemError - { - public: - FullScreenExclusiveModeLostEXTError( std::string const& message ) - : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {} - FullScreenExclusiveModeLostEXTError( char const * message ) - : SystemError( make_error_code( Result::eErrorFullScreenExclusiveModeLostEXT ), message ) {} - }; - - - [[noreturn]] static void throwResultException( Result result, char const * message ) - { - switch ( result ) - { - case Result::eErrorOutOfHostMemory: throw OutOfHostMemoryError( message ); - case Result::eErrorOutOfDeviceMemory: throw OutOfDeviceMemoryError( message ); - case Result::eErrorInitializationFailed: throw InitializationFailedError( message ); - case Result::eErrorDeviceLost: throw DeviceLostError( message ); - case Result::eErrorMemoryMapFailed: throw MemoryMapFailedError( message ); - case Result::eErrorLayerNotPresent: throw LayerNotPresentError( message ); - case Result::eErrorExtensionNotPresent: throw ExtensionNotPresentError( message ); - case Result::eErrorFeatureNotPresent: throw FeatureNotPresentError( message ); - case Result::eErrorIncompatibleDriver: throw IncompatibleDriverError( message ); - case Result::eErrorTooManyObjects: throw TooManyObjectsError( message ); - case Result::eErrorFormatNotSupported: throw FormatNotSupportedError( message ); - case Result::eErrorFragmentedPool: throw FragmentedPoolError( message ); - case Result::eErrorUnknown: throw UnknownError( message ); - case Result::eErrorOutOfPoolMemory: throw OutOfPoolMemoryError( message ); - case Result::eErrorInvalidExternalHandle: throw InvalidExternalHandleError( message ); - case Result::eErrorFragmentation: throw FragmentationError( message ); - case Result::eErrorInvalidOpaqueCaptureAddress: throw InvalidOpaqueCaptureAddressError( message ); - case Result::eErrorSurfaceLostKHR: throw SurfaceLostKHRError( message ); - case Result::eErrorNativeWindowInUseKHR: throw NativeWindowInUseKHRError( message ); - case Result::eErrorOutOfDateKHR: throw OutOfDateKHRError( message ); - case Result::eErrorIncompatibleDisplayKHR: throw IncompatibleDisplayKHRError( message ); - case Result::eErrorValidationFailedEXT: throw ValidationFailedEXTError( message ); - case Result::eErrorInvalidShaderNV: throw InvalidShaderNVError( message ); - case Result::eErrorInvalidDrmFormatModifierPlaneLayoutEXT: throw InvalidDrmFormatModifierPlaneLayoutEXTError( message ); - case Result::eErrorNotPermittedEXT: throw NotPermittedEXTError( message ); - case Result::eErrorFullScreenExclusiveModeLostEXT: throw FullScreenExclusiveModeLostEXTError( message ); - default: throw SystemError( make_error_code( result ) ); - } - } -#endif - - template void ignore(T const&) VULKAN_HPP_NOEXCEPT {} - - template - struct ResultValue - { -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, T & v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(v))) -#else - ResultValue( Result r, T & v ) -#endif - : result( r ) - , value( v ) - {} - -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, T && v ) VULKAN_HPP_NOEXCEPT(VULKAN_HPP_NOEXCEPT(T(std::move(v)))) -#else - ResultValue( Result r, T && v ) -#endif - : result( r ) - , value( std::move( v ) ) - {} - - Result result; - T value; - - operator std::tuple() VULKAN_HPP_NOEXCEPT { return std::tuple(result, value); } - -#if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST) - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T const& () const & VULKAN_HPP_NOEXCEPT - { - return value; - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T& () & VULKAN_HPP_NOEXCEPT - { - return value; - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T const&& () const && VULKAN_HPP_NOEXCEPT - { - return std::move( value ); - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator T&& () && VULKAN_HPP_NOEXCEPT - { - return std::move( value ); - } -#endif - }; - -#if !defined(VULKAN_HPP_NO_SMART_HANDLE) - template - struct ResultValue> - { -#ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue(Result r, UniqueHandle && v) VULKAN_HPP_NOEXCEPT -#else - ResultValue(Result r, UniqueHandle && v) -#endif - : result(r) - , value(std::move(v)) - {} - - std::tuple> asTuple() - { - return std::make_tuple( result, std::move( value ) ); - } - -# if !defined(VULKAN_HPP_DISABLE_IMPLICIT_RESULT_VALUE_CAST) - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator UniqueHandle& () & VULKAN_HPP_NOEXCEPT - { - return value; - } - - VULKAN_HPP_DEPRECATED("Implicit-cast operators on vk::ResultValue are deprecated. Explicitly access the value as member of ResultValue.") - operator UniqueHandle() VULKAN_HPP_NOEXCEPT - { - return std::move(value); - } -# endif - - Result result; - UniqueHandle value; - }; - - template - struct ResultValue>> - { -# ifdef VULKAN_HPP_HAS_NOEXCEPT - ResultValue( Result r, std::vector> && v ) VULKAN_HPP_NOEXCEPT -# else - ResultValue( Result r, std::vector> && v ) -# endif - : result( r ) - , value( std::move( v ) ) - {} - - Result result; - std::vector> value; - - operator std::tuple> &>() VULKAN_HPP_NOEXCEPT - { - return std::tuple> &>( result, value ); - } - }; -#endif - - template - struct ResultValueType - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - typedef ResultValue type; -#else - typedef T type; -#endif - }; - - template <> - struct ResultValueType - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - typedef Result type; -#else - typedef void type; -#endif - }; - - VULKAN_HPP_INLINE ResultValueType::type createResultValue( Result result, char const * message ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return result; -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } -#endif - } - - template - VULKAN_HPP_INLINE typename ResultValueType::type createResultValue( Result result, T & data, char const * message ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return ResultValue( result, std::move( data ) ); -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return std::move( data ); -#endif - } - - VULKAN_HPP_INLINE Result createResultValue( Result result, char const * message, std::initializer_list successCodes ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -#else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -#endif - return result; - } - - template - VULKAN_HPP_INLINE ResultValue createResultValue( Result result, T & data, char const * message, std::initializer_list successCodes ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -#else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -#endif - return ResultValue( result, data ); - } - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createResultValue( Result result, T & data, char const * message, typename UniqueHandleTraits::deleter const& deleter ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore(message); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return ResultValue>( result, UniqueHandle(data, deleter) ); -#else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return UniqueHandle(data, deleter); -#endif - } - - template - VULKAN_HPP_INLINE ResultValue> - createResultValue( Result result, - T & data, - char const * message, - std::initializer_list successCodes, - typename UniqueHandleTraits::deleter const & deleter ) - { -# ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore( message ); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -# else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -# endif - return ResultValue>( result, UniqueHandle( data, deleter ) ); - } - - template - VULKAN_HPP_INLINE typename ResultValueType>>::type - createResultValue( Result result, std::vector> && data, char const * message ) - { -# ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore( message ); - VULKAN_HPP_ASSERT_ON_RESULT( result == Result::eSuccess ); - return ResultValue>>( result, std::move( data ) ); -# else - if ( result != Result::eSuccess ) - { - throwResultException( result, message ); - } - return std::move( data ); -# endif - } - - template - VULKAN_HPP_INLINE ResultValue>> - createResultValue( Result result, - std::vector> && data, - char const * message, - std::initializer_list successCodes ) - { -# ifdef VULKAN_HPP_NO_EXCEPTIONS - ignore( message ); - ignore(successCodes); // just in case VULKAN_HPP_ASSERT_ON_RESULT is empty - VULKAN_HPP_ASSERT_ON_RESULT( std::find( successCodes.begin(), successCodes.end(), result ) != successCodes.end() ); -# else - if ( std::find( successCodes.begin(), successCodes.end(), result ) == successCodes.end() ) - { - throwResultException( result, message ); - } -# endif - return ResultValue>>( result, std::move( data ) ); - } -#endif - - struct AabbPositionsKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AabbPositionsKHR(float minX_ = {}, float minY_ = {}, float minZ_ = {}, float maxX_ = {}, float maxY_ = {}, float maxZ_ = {}) VULKAN_HPP_NOEXCEPT - : minX( minX_ ), minY( minY_ ), minZ( minZ_ ), maxX( maxX_ ), maxY( maxY_ ), maxZ( maxZ_ ) - {} - - VULKAN_HPP_CONSTEXPR AabbPositionsKHR( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AabbPositionsKHR( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AabbPositionsKHR & operator=( VkAabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AabbPositionsKHR & operator=( AabbPositionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AabbPositionsKHR ) ); - return *this; - } - - AabbPositionsKHR & setMinX( float minX_ ) VULKAN_HPP_NOEXCEPT - { - minX = minX_; - return *this; - } - - AabbPositionsKHR & setMinY( float minY_ ) VULKAN_HPP_NOEXCEPT - { - minY = minY_; - return *this; - } - - AabbPositionsKHR & setMinZ( float minZ_ ) VULKAN_HPP_NOEXCEPT - { - minZ = minZ_; - return *this; - } - - AabbPositionsKHR & setMaxX( float maxX_ ) VULKAN_HPP_NOEXCEPT - { - maxX = maxX_; - return *this; - } - - AabbPositionsKHR & setMaxY( float maxY_ ) VULKAN_HPP_NOEXCEPT - { - maxY = maxY_; - return *this; - } - - AabbPositionsKHR & setMaxZ( float maxZ_ ) VULKAN_HPP_NOEXCEPT - { - maxZ = maxZ_; - return *this; - } - - - operator VkAabbPositionsKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAabbPositionsKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AabbPositionsKHR const& ) const = default; -#else - bool operator==( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( minX == rhs.minX ) - && ( minY == rhs.minY ) - && ( minZ == rhs.minZ ) - && ( maxX == rhs.maxX ) - && ( maxY == rhs.maxY ) - && ( maxZ == rhs.maxZ ); - } - - bool operator!=( AabbPositionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float minX = {}; - float minY = {}; - float minZ = {}; - float maxX = {}; - float maxY = {}; - float maxZ = {}; - - }; - static_assert( sizeof( AabbPositionsKHR ) == sizeof( VkAabbPositionsKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using AabbPositionsNV = AabbPositionsKHR; - - class AccelerationStructureKHR - { - public: - using CType = VkAccelerationStructureKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureKHR; - - public: - VULKAN_HPP_CONSTEXPR AccelerationStructureKHR() VULKAN_HPP_NOEXCEPT - : m_accelerationStructureKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureKHR( VkAccelerationStructureKHR accelerationStructureKHR ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureKHR( accelerationStructureKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - AccelerationStructureKHR & operator=(VkAccelerationStructureKHR accelerationStructureKHR) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureKHR = accelerationStructureKHR; - return *this; - } -#endif - - AccelerationStructureKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureKHR const& ) const = default; -#else - bool operator==( AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR == rhs.m_accelerationStructureKHR; - } - - bool operator!=(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR != rhs.m_accelerationStructureKHR; - } - - bool operator<(AccelerationStructureKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR < rhs.m_accelerationStructureKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureKHR() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureKHR == VK_NULL_HANDLE; - } - - private: - VkAccelerationStructureKHR m_accelerationStructureKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR ) == sizeof( VkAccelerationStructureKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - union DeviceOrHostAddressConstKHR - { - DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) ); - } - - DeviceOrHostAddressConstKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) - : deviceAddress( deviceAddress_ ) - {} - - DeviceOrHostAddressConstKHR( const void* hostAddress_ ) - : hostAddress( hostAddress_ ) - {} - - DeviceOrHostAddressConstKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - DeviceOrHostAddressConstKHR & setHostAddress( const void* hostAddress_ ) VULKAN_HPP_NOEXCEPT - { - hostAddress = hostAddress_; - return *this; - } - - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR ) ); - return *this; - } - - operator VkDeviceOrHostAddressConstKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkDeviceOrHostAddressConstKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress; - const void* hostAddress; -#else - VkDeviceAddress deviceAddress; - const void* hostAddress; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct AccelerationStructureGeometryTrianglesDataKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryTrianglesDataKHR(VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, uint32_t maxVertex_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData_ = {}) VULKAN_HPP_NOEXCEPT - : vertexFormat( vertexFormat_ ), vertexData( vertexData_ ), vertexStride( vertexStride_ ), maxVertex( maxVertex_ ), indexType( indexType_ ), indexData( indexData_ ), transformData( transformData_ ) - {} - - AccelerationStructureGeometryTrianglesDataKHR( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryTrianglesDataKHR( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryTrianglesDataKHR & operator=( VkAccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & operator=( AccelerationStructureGeometryTrianglesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureGeometryTrianglesDataKHR ) ); - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT - { - vertexFormat = vertexFormat_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setVertexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & vertexData_ ) VULKAN_HPP_NOEXCEPT - { - vertexData = vertexData_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexStride = vertexStride_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setMaxVertex( uint32_t maxVertex_ ) VULKAN_HPP_NOEXCEPT - { - maxVertex = maxVertex_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT - { - indexType = indexType_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setIndexData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & indexData_ ) VULKAN_HPP_NOEXCEPT - { - indexData = indexData_; - return *this; - } - - AccelerationStructureGeometryTrianglesDataKHR & setTransformData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & transformData_ ) VULKAN_HPP_NOEXCEPT - { - transformData = transformData_; - return *this; - } - - - operator VkAccelerationStructureGeometryTrianglesDataKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryTrianglesDataKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryTrianglesDataKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR vertexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {}; - uint32_t maxVertex = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR indexData = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR transformData = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryTrianglesDataKHR ) == sizeof( VkAccelerationStructureGeometryTrianglesDataKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryTrianglesDataKHR; - }; - - struct AccelerationStructureGeometryAabbsDataKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryAabbsDataKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryAabbsDataKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}) VULKAN_HPP_NOEXCEPT - : data( data_ ), stride( stride_ ) - {} - - AccelerationStructureGeometryAabbsDataKHR( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryAabbsDataKHR( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryAabbsDataKHR & operator=( VkAccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryAabbsDataKHR & operator=( AccelerationStructureGeometryAabbsDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureGeometryAabbsDataKHR ) ); - return *this; - } - - AccelerationStructureGeometryAabbsDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryAabbsDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - AccelerationStructureGeometryAabbsDataKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - - operator VkAccelerationStructureGeometryAabbsDataKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryAabbsDataKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryAabbsDataKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {}; - VULKAN_HPP_NAMESPACE::DeviceSize stride = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryAabbsDataKHR ) == sizeof( VkAccelerationStructureGeometryAabbsDataKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryAabbsDataKHR; - }; - - struct AccelerationStructureGeometryInstancesDataKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryInstancesDataKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryInstancesDataKHR(VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data_ = {}) VULKAN_HPP_NOEXCEPT - : arrayOfPointers( arrayOfPointers_ ), data( data_ ) - {} - - AccelerationStructureGeometryInstancesDataKHR( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryInstancesDataKHR( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryInstancesDataKHR & operator=( VkAccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryInstancesDataKHR & operator=( AccelerationStructureGeometryInstancesDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureGeometryInstancesDataKHR ) ); - return *this; - } - - AccelerationStructureGeometryInstancesDataKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryInstancesDataKHR & setArrayOfPointers( VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers_ ) VULKAN_HPP_NOEXCEPT - { - arrayOfPointers = arrayOfPointers_; - return *this; - } - - AccelerationStructureGeometryInstancesDataKHR & setData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - - operator VkAccelerationStructureGeometryInstancesDataKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryInstancesDataKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryInstancesDataKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 arrayOfPointers = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR data = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryInstancesDataKHR ) == sizeof( VkAccelerationStructureGeometryInstancesDataKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryInstancesDataKHR; - }; - - union AccelerationStructureGeometryDataKHR - { - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) ); - } - - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles_ = {} ) - : triangles( triangles_ ) - {} - - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs_ ) - : aabbs( aabbs_ ) - {} - - AccelerationStructureGeometryDataKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances_ ) - : instances( instances_ ) - {} - - AccelerationStructureGeometryDataKHR & setTriangles( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR const & triangles_ ) VULKAN_HPP_NOEXCEPT - { - triangles = triangles_; - return *this; - } - - AccelerationStructureGeometryDataKHR & setAabbs( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR const & aabbs_ ) VULKAN_HPP_NOEXCEPT - { - aabbs = aabbs_; - return *this; - } - - AccelerationStructureGeometryDataKHR & setInstances( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR const & instances_ ) VULKAN_HPP_NOEXCEPT - { - instances = instances_; - return *this; - } - - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR & operator=( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR ) ); - return *this; - } - - operator VkAccelerationStructureGeometryDataKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkAccelerationStructureGeometryDataKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryTrianglesDataKHR triangles; - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryAabbsDataKHR aabbs; - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryInstancesDataKHR instances; -#else - VkAccelerationStructureGeometryTrianglesDataKHR triangles; - VkAccelerationStructureGeometryAabbsDataKHR aabbs; - VkAccelerationStructureGeometryInstancesDataKHR instances; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct AccelerationStructureGeometryKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureGeometryKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureGeometryKHR(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT - : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ ) - {} - - AccelerationStructureGeometryKHR( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureGeometryKHR( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureGeometryKHR & operator=( VkAccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureGeometryKHR & operator=( AccelerationStructureGeometryKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureGeometryKHR ) ); - return *this; - } - - AccelerationStructureGeometryKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureGeometryKHR & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT - { - geometryType = geometryType_; - return *this; - } - - AccelerationStructureGeometryKHR & setGeometry( VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR const & geometry_ ) VULKAN_HPP_NOEXCEPT - { - geometry = geometry_; - return *this; - } - - AccelerationStructureGeometryKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkAccelerationStructureGeometryKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureGeometryKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureGeometryKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles; - VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryDataKHR geometry = {}; - VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {}; - - }; - static_assert( sizeof( AccelerationStructureGeometryKHR ) == sizeof( VkAccelerationStructureGeometryKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureGeometryKHR; - }; - - union DeviceOrHostAddressKHR - { - DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) ); - } - - DeviceOrHostAddressKHR( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {} ) - : deviceAddress( deviceAddress_ ) - {} - - DeviceOrHostAddressKHR( void* hostAddress_ ) - : hostAddress( hostAddress_ ) - {} - - DeviceOrHostAddressKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - DeviceOrHostAddressKHR & setHostAddress( void* hostAddress_ ) VULKAN_HPP_NOEXCEPT - { - hostAddress = hostAddress_; - return *this; - } - - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR & operator=( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR ) ); - return *this; - } - - operator VkDeviceOrHostAddressKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkDeviceOrHostAddressKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress; - void* hostAddress; -#else - VkDeviceAddress deviceAddress; - void* hostAddress; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct AccelerationStructureBuildGeometryInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildGeometryInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - AccelerationStructureBuildGeometryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ ), ppGeometries( ppGeometries_ ), scratchData( scratchData_ ) - {} - - AccelerationStructureBuildGeometryInfoKHR( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildGeometryInfoKHR( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureBuildGeometryInfoKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pGeometries_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData_ = {} ) - : type( type_ ), flags( flags_ ), mode( mode_ ), srcAccelerationStructure( srcAccelerationStructure_ ), dstAccelerationStructure( dstAccelerationStructure_ ), geometryCount( static_cast( geometries_.size() ) ), pGeometries( geometries_.data() ), ppGeometries( pGeometries_.data() ), scratchData( scratchData_ ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( geometries_.empty() || pGeometries_.empty() || ( geometries_.size() == pGeometries_.size() ) ); -#else - if ( !geometries_.empty() && !pGeometries_.empty() && ( geometries_.size() != pGeometries_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::AccelerationStructureBuildGeometryInfoKHR::AccelerationStructureBuildGeometryInfoKHR: !geometries_.empty() && !pGeometries_.empty() && ( geometries_.size() != pGeometries_.size() )" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureBuildGeometryInfoKHR & operator=( VkAccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & operator=( AccelerationStructureBuildGeometryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureBuildGeometryInfoKHR ) ); - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setSrcAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - srcAccelerationStructure = srcAccelerationStructure_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setDstAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - dstAccelerationStructure = dstAccelerationStructure_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = geometryCount_; - return *this; - } - - AccelerationStructureBuildGeometryInfoKHR & setPGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries_ ) VULKAN_HPP_NOEXCEPT - { - pGeometries = pGeometries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureBuildGeometryInfoKHR & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = static_cast( geometries_.size() ); - pGeometries = geometries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - AccelerationStructureBuildGeometryInfoKHR & setPpGeometries( const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries_ ) VULKAN_HPP_NOEXCEPT - { - ppGeometries = ppGeometries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureBuildGeometryInfoKHR & setPGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pGeometries_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = static_cast( pGeometries_.size() ); - ppGeometries = pGeometries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - AccelerationStructureBuildGeometryInfoKHR & setScratchData( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & scratchData_ ) VULKAN_HPP_NOEXCEPT - { - scratchData = scratchData_; - return *this; - } - - - operator VkAccelerationStructureBuildGeometryInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureBuildGeometryInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildGeometryInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel; - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::BuildAccelerationStructureModeKHR::eBuild; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR srcAccelerationStructure = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dstAccelerationStructure = {}; - uint32_t geometryCount = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* pGeometries = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureGeometryKHR* const * ppGeometries = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR scratchData = {}; - - }; - static_assert( sizeof( AccelerationStructureBuildGeometryInfoKHR ) == sizeof( VkAccelerationStructureBuildGeometryInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureBuildGeometryInfoKHR; - }; - - struct AccelerationStructureBuildRangeInfoKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR(uint32_t primitiveCount_ = {}, uint32_t primitiveOffset_ = {}, uint32_t firstVertex_ = {}, uint32_t transformOffset_ = {}) VULKAN_HPP_NOEXCEPT - : primitiveCount( primitiveCount_ ), primitiveOffset( primitiveOffset_ ), firstVertex( firstVertex_ ), transformOffset( transformOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildRangeInfoKHR( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildRangeInfoKHR( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureBuildRangeInfoKHR & operator=( VkAccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & operator=( AccelerationStructureBuildRangeInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureBuildRangeInfoKHR ) ); - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setPrimitiveCount( uint32_t primitiveCount_ ) VULKAN_HPP_NOEXCEPT - { - primitiveCount = primitiveCount_; - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setPrimitiveOffset( uint32_t primitiveOffset_ ) VULKAN_HPP_NOEXCEPT - { - primitiveOffset = primitiveOffset_; - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT - { - firstVertex = firstVertex_; - return *this; - } - - AccelerationStructureBuildRangeInfoKHR & setTransformOffset( uint32_t transformOffset_ ) VULKAN_HPP_NOEXCEPT - { - transformOffset = transformOffset_; - return *this; - } - - - operator VkAccelerationStructureBuildRangeInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureBuildRangeInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureBuildRangeInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureBuildRangeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( primitiveCount == rhs.primitiveCount ) - && ( primitiveOffset == rhs.primitiveOffset ) - && ( firstVertex == rhs.firstVertex ) - && ( transformOffset == rhs.transformOffset ); - } - - bool operator!=( AccelerationStructureBuildRangeInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t primitiveCount = {}; - uint32_t primitiveOffset = {}; - uint32_t firstVertex = {}; - uint32_t transformOffset = {}; - - }; - static_assert( sizeof( AccelerationStructureBuildRangeInfoKHR ) == sizeof( VkAccelerationStructureBuildRangeInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AccelerationStructureBuildSizesInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureBuildSizesInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR(VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructureSize( accelerationStructureSize_ ), updateScratchSize( updateScratchSize_ ), buildScratchSize( buildScratchSize_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureBuildSizesInfoKHR( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureBuildSizesInfoKHR( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureBuildSizesInfoKHR & operator=( VkAccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & operator=( AccelerationStructureBuildSizesInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureBuildSizesInfoKHR ) ); - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setAccelerationStructureSize( VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureSize = accelerationStructureSize_; - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setUpdateScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize_ ) VULKAN_HPP_NOEXCEPT - { - updateScratchSize = updateScratchSize_; - return *this; - } - - AccelerationStructureBuildSizesInfoKHR & setBuildScratchSize( VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize_ ) VULKAN_HPP_NOEXCEPT - { - buildScratchSize = buildScratchSize_; - return *this; - } - - - operator VkAccelerationStructureBuildSizesInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureBuildSizesInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureBuildSizesInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureBuildSizesInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructureSize == rhs.accelerationStructureSize ) - && ( updateScratchSize == rhs.updateScratchSize ) - && ( buildScratchSize == rhs.buildScratchSize ); - } - - bool operator!=( AccelerationStructureBuildSizesInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureBuildSizesInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize accelerationStructureSize = {}; - VULKAN_HPP_NAMESPACE::DeviceSize updateScratchSize = {}; - VULKAN_HPP_NAMESPACE::DeviceSize buildScratchSize = {}; - - }; - static_assert( sizeof( AccelerationStructureBuildSizesInfoKHR ) == sizeof( VkAccelerationStructureBuildSizesInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureBuildSizesInfoKHR; - }; - - class Buffer - { - public: - using CType = VkBuffer; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBuffer; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBuffer; - - public: - VULKAN_HPP_CONSTEXPR Buffer() VULKAN_HPP_NOEXCEPT - : m_buffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Buffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_buffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Buffer( VkBuffer buffer ) VULKAN_HPP_NOEXCEPT - : m_buffer( buffer ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Buffer & operator=(VkBuffer buffer) VULKAN_HPP_NOEXCEPT - { - m_buffer = buffer; - return *this; - } -#endif - - Buffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_buffer = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Buffer const& ) const = default; -#else - bool operator==( Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_buffer == rhs.m_buffer; - } - - bool operator!=(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_buffer != rhs.m_buffer; - } - - bool operator<(Buffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_buffer < rhs.m_buffer; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBuffer() const VULKAN_HPP_NOEXCEPT - { - return m_buffer; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_buffer != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_buffer == VK_NULL_HANDLE; - } - - private: - VkBuffer m_buffer; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Buffer ) == sizeof( VkBuffer ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Buffer; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Buffer; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Buffer; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct AccelerationStructureCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel, VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT - : createFlags( createFlags_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ), type( type_ ), deviceAddress( deviceAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoKHR( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureCreateInfoKHR( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureCreateInfoKHR & operator=( VkAccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureCreateInfoKHR & operator=( AccelerationStructureCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureCreateInfoKHR ) ); - return *this; - } - - AccelerationStructureCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setCreateFlags( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags_ ) VULKAN_HPP_NOEXCEPT - { - createFlags = createFlags_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureCreateInfoKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - - operator VkAccelerationStructureCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureCreateInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( createFlags == rhs.createFlags ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( size == rhs.size ) - && ( type == rhs.type ) - && ( deviceAddress == rhs.deviceAddress ); - } - - bool operator!=( AccelerationStructureCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureCreateFlagsKHR createFlags = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR type = VULKAN_HPP_NAMESPACE::AccelerationStructureTypeKHR::eTopLevel; - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - - }; - static_assert( sizeof( AccelerationStructureCreateInfoKHR ) == sizeof( VkAccelerationStructureCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureCreateInfoKHR; - }; - - struct GeometryTrianglesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryTrianglesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryTrianglesNV(VULKAN_HPP_NAMESPACE::Buffer vertexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ = {}, uint32_t vertexCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ = {}, VULKAN_HPP_NAMESPACE::Format vertexFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Buffer indexData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ = {}, uint32_t indexCount_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16, VULKAN_HPP_NAMESPACE::Buffer transformData_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ = {}) VULKAN_HPP_NOEXCEPT - : vertexData( vertexData_ ), vertexOffset( vertexOffset_ ), vertexCount( vertexCount_ ), vertexStride( vertexStride_ ), vertexFormat( vertexFormat_ ), indexData( indexData_ ), indexOffset( indexOffset_ ), indexCount( indexCount_ ), indexType( indexType_ ), transformData( transformData_ ), transformOffset( transformOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryTrianglesNV( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryTrianglesNV( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GeometryTrianglesNV & operator=( VkGeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryTrianglesNV & operator=( GeometryTrianglesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GeometryTrianglesNV ) ); - return *this; - } - - GeometryTrianglesNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeometryTrianglesNV & setVertexData( VULKAN_HPP_NAMESPACE::Buffer vertexData_ ) VULKAN_HPP_NOEXCEPT - { - vertexData = vertexData_; - return *this; - } - - GeometryTrianglesNV & setVertexOffset( VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset_ ) VULKAN_HPP_NOEXCEPT - { - vertexOffset = vertexOffset_; - return *this; - } - - GeometryTrianglesNV & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexCount = vertexCount_; - return *this; - } - - GeometryTrianglesNV & setVertexStride( VULKAN_HPP_NAMESPACE::DeviceSize vertexStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexStride = vertexStride_; - return *this; - } - - GeometryTrianglesNV & setVertexFormat( VULKAN_HPP_NAMESPACE::Format vertexFormat_ ) VULKAN_HPP_NOEXCEPT - { - vertexFormat = vertexFormat_; - return *this; - } - - GeometryTrianglesNV & setIndexData( VULKAN_HPP_NAMESPACE::Buffer indexData_ ) VULKAN_HPP_NOEXCEPT - { - indexData = indexData_; - return *this; - } - - GeometryTrianglesNV & setIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize indexOffset_ ) VULKAN_HPP_NOEXCEPT - { - indexOffset = indexOffset_; - return *this; - } - - GeometryTrianglesNV & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT - { - indexCount = indexCount_; - return *this; - } - - GeometryTrianglesNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT - { - indexType = indexType_; - return *this; - } - - GeometryTrianglesNV & setTransformData( VULKAN_HPP_NAMESPACE::Buffer transformData_ ) VULKAN_HPP_NOEXCEPT - { - transformData = transformData_; - return *this; - } - - GeometryTrianglesNV & setTransformOffset( VULKAN_HPP_NAMESPACE::DeviceSize transformOffset_ ) VULKAN_HPP_NOEXCEPT - { - transformOffset = transformOffset_; - return *this; - } - - - operator VkGeometryTrianglesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryTrianglesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryTrianglesNV const& ) const = default; -#else - bool operator==( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexData == rhs.vertexData ) - && ( vertexOffset == rhs.vertexOffset ) - && ( vertexCount == rhs.vertexCount ) - && ( vertexStride == rhs.vertexStride ) - && ( vertexFormat == rhs.vertexFormat ) - && ( indexData == rhs.indexData ) - && ( indexOffset == rhs.indexOffset ) - && ( indexCount == rhs.indexCount ) - && ( indexType == rhs.indexType ) - && ( transformData == rhs.transformData ) - && ( transformOffset == rhs.transformOffset ); - } - - bool operator!=( GeometryTrianglesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryTrianglesNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer vertexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexOffset = {}; - uint32_t vertexCount = {}; - VULKAN_HPP_NAMESPACE::DeviceSize vertexStride = {}; - VULKAN_HPP_NAMESPACE::Format vertexFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::Buffer indexData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize indexOffset = {}; - uint32_t indexCount = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; - VULKAN_HPP_NAMESPACE::Buffer transformData = {}; - VULKAN_HPP_NAMESPACE::DeviceSize transformOffset = {}; - - }; - static_assert( sizeof( GeometryTrianglesNV ) == sizeof( VkGeometryTrianglesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeometryTrianglesNV; - }; - - struct GeometryAABBNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryAabbNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryAABBNV(VULKAN_HPP_NAMESPACE::Buffer aabbData_ = {}, uint32_t numAABBs_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT - : aabbData( aabbData_ ), numAABBs( numAABBs_ ), stride( stride_ ), offset( offset_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryAABBNV( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryAABBNV( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GeometryAABBNV & operator=( VkGeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryAABBNV & operator=( GeometryAABBNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GeometryAABBNV ) ); - return *this; - } - - GeometryAABBNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeometryAABBNV & setAabbData( VULKAN_HPP_NAMESPACE::Buffer aabbData_ ) VULKAN_HPP_NOEXCEPT - { - aabbData = aabbData_; - return *this; - } - - GeometryAABBNV & setNumAABBs( uint32_t numAABBs_ ) VULKAN_HPP_NOEXCEPT - { - numAABBs = numAABBs_; - return *this; - } - - GeometryAABBNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - GeometryAABBNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - - operator VkGeometryAABBNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryAABBNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryAABBNV const& ) const = default; -#else - bool operator==( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( aabbData == rhs.aabbData ) - && ( numAABBs == rhs.numAABBs ) - && ( stride == rhs.stride ) - && ( offset == rhs.offset ); - } - - bool operator!=( GeometryAABBNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryAabbNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer aabbData = {}; - uint32_t numAABBs = {}; - uint32_t stride = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - - }; - static_assert( sizeof( GeometryAABBNV ) == sizeof( VkGeometryAABBNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeometryAABBNV; - }; - - struct GeometryDataNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryDataNV(VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles_ = {}, VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs_ = {}) VULKAN_HPP_NOEXCEPT - : triangles( triangles_ ), aabbs( aabbs_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryDataNV( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryDataNV( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GeometryDataNV & operator=( VkGeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryDataNV & operator=( GeometryDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GeometryDataNV ) ); - return *this; - } - - GeometryDataNV & setTriangles( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & triangles_ ) VULKAN_HPP_NOEXCEPT - { - triangles = triangles_; - return *this; - } - - GeometryDataNV & setAabbs( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & aabbs_ ) VULKAN_HPP_NOEXCEPT - { - aabbs = aabbs_; - return *this; - } - - - operator VkGeometryDataNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryDataNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryDataNV const& ) const = default; -#else - bool operator==( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( triangles == rhs.triangles ) - && ( aabbs == rhs.aabbs ); - } - - bool operator!=( GeometryDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::GeometryTrianglesNV triangles = {}; - VULKAN_HPP_NAMESPACE::GeometryAABBNV aabbs = {}; - - }; - static_assert( sizeof( GeometryDataNV ) == sizeof( VkGeometryDataNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct GeometryNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeometryNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeometryNV(VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles, VULKAN_HPP_NAMESPACE::GeometryDataNV geometry_ = {}, VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ = {}) VULKAN_HPP_NOEXCEPT - : geometryType( geometryType_ ), geometry( geometry_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR GeometryNV( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeometryNV( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GeometryNV & operator=( VkGeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeometryNV & operator=( GeometryNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GeometryNV ) ); - return *this; - } - - GeometryNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeometryNV & setGeometryType( VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType_ ) VULKAN_HPP_NOEXCEPT - { - geometryType = geometryType_; - return *this; - } - - GeometryNV & setGeometry( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometry_ ) VULKAN_HPP_NOEXCEPT - { - geometry = geometry_; - return *this; - } - - GeometryNV & setFlags( VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkGeometryNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeometryNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeometryNV const& ) const = default; -#else - bool operator==( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( geometryType == rhs.geometryType ) - && ( geometry == rhs.geometry ) - && ( flags == rhs.flags ); - } - - bool operator!=( GeometryNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeometryNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::GeometryTypeKHR geometryType = VULKAN_HPP_NAMESPACE::GeometryTypeKHR::eTriangles; - VULKAN_HPP_NAMESPACE::GeometryDataNV geometry = {}; - VULKAN_HPP_NAMESPACE::GeometryFlagsKHR flags = {}; - - }; - static_assert( sizeof( GeometryNV ) == sizeof( VkGeometryNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeometryNV; - }; - - struct AccelerationStructureInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ = {}, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ = {}, uint32_t instanceCount_ = {}, uint32_t geometryCount_ = {}, const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( geometryCount_ ), pGeometries( pGeometries_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureInfoNV( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureInfoNV( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_, VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_, uint32_t instanceCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) - : type( type_ ), flags( flags_ ), instanceCount( instanceCount_ ), geometryCount( static_cast( geometries_.size() ) ), pGeometries( geometries_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureInfoNV & operator=( VkAccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureInfoNV & operator=( AccelerationStructureInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureInfoNV ) ); - return *this; - } - - AccelerationStructureInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureInfoNV & setFlags( VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AccelerationStructureInfoNV & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT - { - instanceCount = instanceCount_; - return *this; - } - - AccelerationStructureInfoNV & setGeometryCount( uint32_t geometryCount_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = geometryCount_; - return *this; - } - - AccelerationStructureInfoNV & setPGeometries( const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries_ ) VULKAN_HPP_NOEXCEPT - { - pGeometries = pGeometries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - AccelerationStructureInfoNV & setGeometries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & geometries_ ) VULKAN_HPP_NOEXCEPT - { - geometryCount = static_cast( geometries_.size() ); - pGeometries = geometries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkAccelerationStructureInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureInfoNV const& ) const = default; -#else - bool operator==( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( flags == rhs.flags ) - && ( instanceCount == rhs.instanceCount ) - && ( geometryCount == rhs.geometryCount ) - && ( pGeometries == rhs.pGeometries ); - } - - bool operator!=( AccelerationStructureInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureTypeNV type = {}; - VULKAN_HPP_NAMESPACE::BuildAccelerationStructureFlagsNV flags = {}; - uint32_t instanceCount = {}; - uint32_t geometryCount = {}; - const VULKAN_HPP_NAMESPACE::GeometryNV* pGeometries = {}; - - }; - static_assert( sizeof( AccelerationStructureInfoNV ) == sizeof( VkAccelerationStructureInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureInfoNV; - }; - - struct AccelerationStructureCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info_ = {}) VULKAN_HPP_NOEXCEPT - : compactedSize( compactedSize_ ), info( info_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureCreateInfoNV( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureCreateInfoNV( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureCreateInfoNV & operator=( VkAccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureCreateInfoNV & operator=( AccelerationStructureCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureCreateInfoNV ) ); - return *this; - } - - AccelerationStructureCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureCreateInfoNV & setCompactedSize( VULKAN_HPP_NAMESPACE::DeviceSize compactedSize_ ) VULKAN_HPP_NOEXCEPT - { - compactedSize = compactedSize_; - return *this; - } - - AccelerationStructureCreateInfoNV & setInfo( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & info_ ) VULKAN_HPP_NOEXCEPT - { - info = info_; - return *this; - } - - - operator VkAccelerationStructureCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureCreateInfoNV const& ) const = default; -#else - bool operator==( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( compactedSize == rhs.compactedSize ) - && ( info == rhs.info ); - } - - bool operator!=( AccelerationStructureCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize compactedSize = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV info = {}; - - }; - static_assert( sizeof( AccelerationStructureCreateInfoNV ) == sizeof( VkAccelerationStructureCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureCreateInfoNV; - }; - - struct AccelerationStructureDeviceAddressInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureDeviceAddressInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructure( accelerationStructure_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureDeviceAddressInfoKHR( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureDeviceAddressInfoKHR( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureDeviceAddressInfoKHR & operator=( VkAccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureDeviceAddressInfoKHR & operator=( AccelerationStructureDeviceAddressInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureDeviceAddressInfoKHR ) ); - return *this; - } - - AccelerationStructureDeviceAddressInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureDeviceAddressInfoKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - - operator VkAccelerationStructureDeviceAddressInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureDeviceAddressInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureDeviceAddressInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructure == rhs.accelerationStructure ); - } - - bool operator!=( AccelerationStructureDeviceAddressInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureDeviceAddressInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure = {}; - - }; - static_assert( sizeof( AccelerationStructureDeviceAddressInfoKHR ) == sizeof( VkAccelerationStructureDeviceAddressInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureDeviceAddressInfoKHR; - }; - - struct TransformMatrixKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR(std::array,3> const& matrix_ = {}) VULKAN_HPP_NOEXCEPT - : matrix( matrix_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 TransformMatrixKHR( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TransformMatrixKHR( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - TransformMatrixKHR & operator=( VkTransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - TransformMatrixKHR & operator=( TransformMatrixKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( TransformMatrixKHR ) ); - return *this; - } - - TransformMatrixKHR & setMatrix( std::array,3> matrix_ ) VULKAN_HPP_NOEXCEPT - { - matrix = matrix_; - return *this; - } - - - operator VkTransformMatrixKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTransformMatrixKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TransformMatrixKHR const& ) const = default; -#else - bool operator==( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( matrix == rhs.matrix ); - } - - bool operator!=( TransformMatrixKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ArrayWrapper2D matrix = {}; - - }; - static_assert( sizeof( TransformMatrixKHR ) == sizeof( VkTransformMatrixKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using TransformMatrixNV = TransformMatrixKHR; - - struct AccelerationStructureInstanceKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR(VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform_ = {}, uint32_t instanceCustomIndex_ = {}, uint32_t mask_ = {}, uint32_t instanceShaderBindingTableRecordOffset_ = {}, VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ = {}, uint64_t accelerationStructureReference_ = {}) VULKAN_HPP_NOEXCEPT - : transform( transform_ ), instanceCustomIndex( instanceCustomIndex_ ), mask( mask_ ), instanceShaderBindingTableRecordOffset( instanceShaderBindingTableRecordOffset_ ), flags( flags_ ), accelerationStructureReference( accelerationStructureReference_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 AccelerationStructureInstanceKHR( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureInstanceKHR( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureInstanceKHR & operator=( VkAccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureInstanceKHR & operator=( AccelerationStructureInstanceKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureInstanceKHR ) ); - return *this; - } - - AccelerationStructureInstanceKHR & setTransform( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - AccelerationStructureInstanceKHR & setInstanceCustomIndex( uint32_t instanceCustomIndex_ ) VULKAN_HPP_NOEXCEPT - { - instanceCustomIndex = instanceCustomIndex_; - return *this; - } - - AccelerationStructureInstanceKHR & setMask( uint32_t mask_ ) VULKAN_HPP_NOEXCEPT - { - mask = mask_; - return *this; - } - - AccelerationStructureInstanceKHR & setInstanceShaderBindingTableRecordOffset( uint32_t instanceShaderBindingTableRecordOffset_ ) VULKAN_HPP_NOEXCEPT - { - instanceShaderBindingTableRecordOffset = instanceShaderBindingTableRecordOffset_; - return *this; - } - - AccelerationStructureInstanceKHR & setFlags( VULKAN_HPP_NAMESPACE::GeometryInstanceFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = *reinterpret_cast(&flags_); - return *this; - } - - AccelerationStructureInstanceKHR & setAccelerationStructureReference( uint64_t accelerationStructureReference_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureReference = accelerationStructureReference_; - return *this; - } - - - operator VkAccelerationStructureInstanceKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureInstanceKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureInstanceKHR const& ) const = default; -#else - bool operator==( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( transform == rhs.transform ) - && ( instanceCustomIndex == rhs.instanceCustomIndex ) - && ( mask == rhs.mask ) - && ( instanceShaderBindingTableRecordOffset == rhs.instanceShaderBindingTableRecordOffset ) - && ( flags == rhs.flags ) - && ( accelerationStructureReference == rhs.accelerationStructureReference ); - } - - bool operator!=( AccelerationStructureInstanceKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::TransformMatrixKHR transform = {}; - uint32_t instanceCustomIndex : 24; - uint32_t mask : 8; - uint32_t instanceShaderBindingTableRecordOffset : 24; - VkGeometryInstanceFlagsKHR flags : 8; - uint64_t accelerationStructureReference = {}; - - }; - static_assert( sizeof( AccelerationStructureInstanceKHR ) == sizeof( VkAccelerationStructureInstanceKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using AccelerationStructureInstanceNV = AccelerationStructureInstanceKHR; - - class AccelerationStructureNV - { - public: - using CType = VkAccelerationStructureNV; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eAccelerationStructureNV; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eAccelerationStructureNV; - - public: - VULKAN_HPP_CONSTEXPR AccelerationStructureNV() VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT AccelerationStructureNV( VkAccelerationStructureNV accelerationStructureNV ) VULKAN_HPP_NOEXCEPT - : m_accelerationStructureNV( accelerationStructureNV ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - AccelerationStructureNV & operator=(VkAccelerationStructureNV accelerationStructureNV) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureNV = accelerationStructureNV; - return *this; - } -#endif - - AccelerationStructureNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_accelerationStructureNV = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureNV const& ) const = default; -#else - bool operator==( AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV == rhs.m_accelerationStructureNV; - } - - bool operator!=(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV != rhs.m_accelerationStructureNV; - } - - bool operator<(AccelerationStructureNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV < rhs.m_accelerationStructureNV; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkAccelerationStructureNV() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_accelerationStructureNV == VK_NULL_HANDLE; - } - - private: - VkAccelerationStructureNV m_accelerationStructureNV; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::AccelerationStructureNV ) == sizeof( VkAccelerationStructureNV ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::AccelerationStructureNV; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct AccelerationStructureMemoryRequirementsInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject, VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), accelerationStructure( accelerationStructure_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureMemoryRequirementsInfoNV( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureMemoryRequirementsInfoNV( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureMemoryRequirementsInfoNV & operator=( VkAccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureMemoryRequirementsInfoNV & operator=( AccelerationStructureMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureMemoryRequirementsInfoNV ) ); - return *this; - } - - AccelerationStructureMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureMemoryRequirementsInfoNV & setType( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - AccelerationStructureMemoryRequirementsInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - - operator VkAccelerationStructureMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureMemoryRequirementsInfoNV const& ) const = default; -#else - bool operator==( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( accelerationStructure == rhs.accelerationStructure ); - } - - bool operator!=( AccelerationStructureMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureMemoryRequirementsInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV type = VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsTypeNV::eObject; - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; - - }; - static_assert( sizeof( AccelerationStructureMemoryRequirementsInfoNV ) == sizeof( VkAccelerationStructureMemoryRequirementsInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureMemoryRequirementsInfoNV; - }; - - struct AccelerationStructureVersionInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAccelerationStructureVersionInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR(const uint8_t* pVersionData_ = {}) VULKAN_HPP_NOEXCEPT - : pVersionData( pVersionData_ ) - {} - - VULKAN_HPP_CONSTEXPR AccelerationStructureVersionInfoKHR( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AccelerationStructureVersionInfoKHR( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AccelerationStructureVersionInfoKHR & operator=( VkAccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AccelerationStructureVersionInfoKHR & operator=( AccelerationStructureVersionInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AccelerationStructureVersionInfoKHR ) ); - return *this; - } - - AccelerationStructureVersionInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AccelerationStructureVersionInfoKHR & setPVersionData( const uint8_t* pVersionData_ ) VULKAN_HPP_NOEXCEPT - { - pVersionData = pVersionData_; - return *this; - } - - - operator VkAccelerationStructureVersionInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAccelerationStructureVersionInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AccelerationStructureVersionInfoKHR const& ) const = default; -#else - bool operator==( AccelerationStructureVersionInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pVersionData == rhs.pVersionData ); - } - - bool operator!=( AccelerationStructureVersionInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAccelerationStructureVersionInfoKHR; - const void* pNext = {}; - const uint8_t* pVersionData = {}; - - }; - static_assert( sizeof( AccelerationStructureVersionInfoKHR ) == sizeof( VkAccelerationStructureVersionInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AccelerationStructureVersionInfoKHR; - }; - - class SwapchainKHR - { - public: - using CType = VkSwapchainKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSwapchainKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSwapchainKHR; - - public: - VULKAN_HPP_CONSTEXPR SwapchainKHR() VULKAN_HPP_NOEXCEPT - : m_swapchainKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR SwapchainKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_swapchainKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT SwapchainKHR( VkSwapchainKHR swapchainKHR ) VULKAN_HPP_NOEXCEPT - : m_swapchainKHR( swapchainKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SwapchainKHR & operator=(VkSwapchainKHR swapchainKHR) VULKAN_HPP_NOEXCEPT - { - m_swapchainKHR = swapchainKHR; - return *this; - } -#endif - - SwapchainKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_swapchainKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainKHR const& ) const = default; -#else - bool operator==( SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR == rhs.m_swapchainKHR; - } - - bool operator!=(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR != rhs.m_swapchainKHR; - } - - bool operator<(SwapchainKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR < rhs.m_swapchainKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSwapchainKHR() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_swapchainKHR == VK_NULL_HANDLE; - } - - private: - VkSwapchainKHR m_swapchainKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::SwapchainKHR ) == sizeof( VkSwapchainKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::SwapchainKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SwapchainKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Semaphore - { - public: - using CType = VkSemaphore; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSemaphore; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSemaphore; - - public: - VULKAN_HPP_CONSTEXPR Semaphore() VULKAN_HPP_NOEXCEPT - : m_semaphore(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Semaphore( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_semaphore(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Semaphore( VkSemaphore semaphore ) VULKAN_HPP_NOEXCEPT - : m_semaphore( semaphore ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Semaphore & operator=(VkSemaphore semaphore) VULKAN_HPP_NOEXCEPT - { - m_semaphore = semaphore; - return *this; - } -#endif - - Semaphore & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_semaphore = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Semaphore const& ) const = default; -#else - bool operator==( Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore == rhs.m_semaphore; - } - - bool operator!=(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore != rhs.m_semaphore; - } - - bool operator<(Semaphore const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_semaphore < rhs.m_semaphore; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSemaphore() const VULKAN_HPP_NOEXCEPT - { - return m_semaphore; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_semaphore != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_semaphore == VK_NULL_HANDLE; - } - - private: - VkSemaphore m_semaphore; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Semaphore ) == sizeof( VkSemaphore ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Semaphore; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Semaphore; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Semaphore; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Fence - { - public: - using CType = VkFence; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFence; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFence; - - public: - VULKAN_HPP_CONSTEXPR Fence() VULKAN_HPP_NOEXCEPT - : m_fence(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Fence( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_fence(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Fence( VkFence fence ) VULKAN_HPP_NOEXCEPT - : m_fence( fence ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Fence & operator=(VkFence fence) VULKAN_HPP_NOEXCEPT - { - m_fence = fence; - return *this; - } -#endif - - Fence & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_fence = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Fence const& ) const = default; -#else - bool operator==( Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence == rhs.m_fence; - } - - bool operator!=(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence != rhs.m_fence; - } - - bool operator<(Fence const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_fence < rhs.m_fence; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFence() const VULKAN_HPP_NOEXCEPT - { - return m_fence; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_fence != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_fence == VK_NULL_HANDLE; - } - - private: - VkFence m_fence; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Fence ) == sizeof( VkFence ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Fence; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Fence; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Fence; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct AcquireNextImageInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireNextImageInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint64_t timeout_ = {}, VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::Fence fence_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ), timeout( timeout_ ), semaphore( semaphore_ ), fence( fence_ ), deviceMask( deviceMask_ ) - {} - - VULKAN_HPP_CONSTEXPR AcquireNextImageInfoKHR( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AcquireNextImageInfoKHR( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AcquireNextImageInfoKHR & operator=( VkAcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AcquireNextImageInfoKHR & operator=( AcquireNextImageInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AcquireNextImageInfoKHR ) ); - return *this; - } - - AcquireNextImageInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AcquireNextImageInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT - { - swapchain = swapchain_; - return *this; - } - - AcquireNextImageInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT - { - timeout = timeout_; - return *this; - } - - AcquireNextImageInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - AcquireNextImageInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - AcquireNextImageInfoKHR & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - - operator VkAcquireNextImageInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAcquireNextImageInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AcquireNextImageInfoKHR const& ) const = default; -#else - bool operator==( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ) - && ( timeout == rhs.timeout ) - && ( semaphore == rhs.semaphore ) - && ( fence == rhs.fence ) - && ( deviceMask == rhs.deviceMask ); - } - - bool operator!=( AcquireNextImageInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireNextImageInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - uint64_t timeout = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - uint32_t deviceMask = {}; - - }; - static_assert( sizeof( AcquireNextImageInfoKHR ) == sizeof( VkAcquireNextImageInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AcquireNextImageInfoKHR; - }; - - struct AcquireProfilingLockInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAcquireProfilingLockInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR(VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ = {}, uint64_t timeout_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), timeout( timeout_ ) - {} - - VULKAN_HPP_CONSTEXPR AcquireProfilingLockInfoKHR( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AcquireProfilingLockInfoKHR( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AcquireProfilingLockInfoKHR & operator=( VkAcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AcquireProfilingLockInfoKHR & operator=( AcquireProfilingLockInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AcquireProfilingLockInfoKHR ) ); - return *this; - } - - AcquireProfilingLockInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AcquireProfilingLockInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AcquireProfilingLockInfoKHR & setTimeout( uint64_t timeout_ ) VULKAN_HPP_NOEXCEPT - { - timeout = timeout_; - return *this; - } - - - operator VkAcquireProfilingLockInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAcquireProfilingLockInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AcquireProfilingLockInfoKHR const& ) const = default; -#else - bool operator==( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( timeout == rhs.timeout ); - } - - bool operator!=( AcquireProfilingLockInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAcquireProfilingLockInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AcquireProfilingLockFlagsKHR flags = {}; - uint64_t timeout = {}; - - }; - static_assert( sizeof( AcquireProfilingLockInfoKHR ) == sizeof( VkAcquireProfilingLockInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AcquireProfilingLockInfoKHR; - }; - - struct AllocationCallbacks - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AllocationCallbacks(void* pUserData_ = {}, PFN_vkAllocationFunction pfnAllocation_ = {}, PFN_vkReallocationFunction pfnReallocation_ = {}, PFN_vkFreeFunction pfnFree_ = {}, PFN_vkInternalAllocationNotification pfnInternalAllocation_ = {}, PFN_vkInternalFreeNotification pfnInternalFree_ = {}) VULKAN_HPP_NOEXCEPT - : pUserData( pUserData_ ), pfnAllocation( pfnAllocation_ ), pfnReallocation( pfnReallocation_ ), pfnFree( pfnFree_ ), pfnInternalAllocation( pfnInternalAllocation_ ), pfnInternalFree( pfnInternalFree_ ) - {} - - VULKAN_HPP_CONSTEXPR AllocationCallbacks( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AllocationCallbacks( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AllocationCallbacks & operator=( VkAllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AllocationCallbacks & operator=( AllocationCallbacks const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AllocationCallbacks ) ); - return *this; - } - - AllocationCallbacks & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - AllocationCallbacks & setPfnAllocation( PFN_vkAllocationFunction pfnAllocation_ ) VULKAN_HPP_NOEXCEPT - { - pfnAllocation = pfnAllocation_; - return *this; - } - - AllocationCallbacks & setPfnReallocation( PFN_vkReallocationFunction pfnReallocation_ ) VULKAN_HPP_NOEXCEPT - { - pfnReallocation = pfnReallocation_; - return *this; - } - - AllocationCallbacks & setPfnFree( PFN_vkFreeFunction pfnFree_ ) VULKAN_HPP_NOEXCEPT - { - pfnFree = pfnFree_; - return *this; - } - - AllocationCallbacks & setPfnInternalAllocation( PFN_vkInternalAllocationNotification pfnInternalAllocation_ ) VULKAN_HPP_NOEXCEPT - { - pfnInternalAllocation = pfnInternalAllocation_; - return *this; - } - - AllocationCallbacks & setPfnInternalFree( PFN_vkInternalFreeNotification pfnInternalFree_ ) VULKAN_HPP_NOEXCEPT - { - pfnInternalFree = pfnInternalFree_; - return *this; - } - - - operator VkAllocationCallbacks const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAllocationCallbacks &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AllocationCallbacks const& ) const = default; -#else - bool operator==( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( pUserData == rhs.pUserData ) - && ( pfnAllocation == rhs.pfnAllocation ) - && ( pfnReallocation == rhs.pfnReallocation ) - && ( pfnFree == rhs.pfnFree ) - && ( pfnInternalAllocation == rhs.pfnInternalAllocation ) - && ( pfnInternalFree == rhs.pfnInternalFree ); - } - - bool operator!=( AllocationCallbacks const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - void* pUserData = {}; - PFN_vkAllocationFunction pfnAllocation = {}; - PFN_vkReallocationFunction pfnReallocation = {}; - PFN_vkFreeFunction pfnFree = {}; - PFN_vkInternalAllocationNotification pfnInternalAllocation = {}; - PFN_vkInternalFreeNotification pfnInternalFree = {}; - - }; - static_assert( sizeof( AllocationCallbacks ) == sizeof( VkAllocationCallbacks ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ComponentMapping - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ComponentMapping(VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity, VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity) VULKAN_HPP_NOEXCEPT - : r( r_ ), g( g_ ), b( b_ ), a( a_ ) - {} - - VULKAN_HPP_CONSTEXPR ComponentMapping( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ComponentMapping( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ComponentMapping & operator=( VkComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ComponentMapping & operator=( ComponentMapping const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ComponentMapping ) ); - return *this; - } - - ComponentMapping & setR( VULKAN_HPP_NAMESPACE::ComponentSwizzle r_ ) VULKAN_HPP_NOEXCEPT - { - r = r_; - return *this; - } - - ComponentMapping & setG( VULKAN_HPP_NAMESPACE::ComponentSwizzle g_ ) VULKAN_HPP_NOEXCEPT - { - g = g_; - return *this; - } - - ComponentMapping & setB( VULKAN_HPP_NAMESPACE::ComponentSwizzle b_ ) VULKAN_HPP_NOEXCEPT - { - b = b_; - return *this; - } - - ComponentMapping & setA( VULKAN_HPP_NAMESPACE::ComponentSwizzle a_ ) VULKAN_HPP_NOEXCEPT - { - a = a_; - return *this; - } - - - operator VkComponentMapping const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkComponentMapping &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ComponentMapping const& ) const = default; -#else - bool operator==( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( r == rhs.r ) - && ( g == rhs.g ) - && ( b == rhs.b ) - && ( a == rhs.a ); - } - - bool operator!=( ComponentMapping const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ComponentSwizzle r = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle g = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle b = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - VULKAN_HPP_NAMESPACE::ComponentSwizzle a = VULKAN_HPP_NAMESPACE::ComponentSwizzle::eIdentity; - - }; - static_assert( sizeof( ComponentMapping ) == sizeof( VkComponentMapping ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferFormatPropertiesANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint64_t externalFormat_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures_ = {}, VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents_ = {}, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven) VULKAN_HPP_NOEXCEPT - : format( format_ ), externalFormat( externalFormat_ ), formatFeatures( formatFeatures_ ), samplerYcbcrConversionComponents( samplerYcbcrConversionComponents_ ), suggestedYcbcrModel( suggestedYcbcrModel_ ), suggestedYcbcrRange( suggestedYcbcrRange_ ), suggestedXChromaOffset( suggestedXChromaOffset_ ), suggestedYChromaOffset( suggestedYChromaOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferFormatPropertiesANDROID( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferFormatPropertiesANDROID( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AndroidHardwareBufferFormatPropertiesANDROID & operator=( VkAndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AndroidHardwareBufferFormatPropertiesANDROID & operator=( AndroidHardwareBufferFormatPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) ); - return *this; - } - - - operator VkAndroidHardwareBufferFormatPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidHardwareBufferFormatPropertiesANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidHardwareBufferFormatPropertiesANDROID const& ) const = default; -#else - bool operator==( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( externalFormat == rhs.externalFormat ) - && ( formatFeatures == rhs.formatFeatures ) - && ( samplerYcbcrConversionComponents == rhs.samplerYcbcrConversionComponents ) - && ( suggestedYcbcrModel == rhs.suggestedYcbcrModel ) - && ( suggestedYcbcrRange == rhs.suggestedYcbcrRange ) - && ( suggestedXChromaOffset == rhs.suggestedXChromaOffset ) - && ( suggestedYChromaOffset == rhs.suggestedYChromaOffset ); - } - - bool operator!=( AndroidHardwareBufferFormatPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferFormatPropertiesANDROID; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - uint64_t externalFormat = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags formatFeatures = {}; - VULKAN_HPP_NAMESPACE::ComponentMapping samplerYcbcrConversionComponents = {}; - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion suggestedYcbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange suggestedYcbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedXChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::ChromaLocation suggestedYChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - - }; - static_assert( sizeof( AndroidHardwareBufferFormatPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferFormatPropertiesANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidHardwareBufferFormatPropertiesANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferPropertiesANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferPropertiesANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : allocationSize( allocationSize_ ), memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferPropertiesANDROID( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferPropertiesANDROID( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AndroidHardwareBufferPropertiesANDROID & operator=( VkAndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AndroidHardwareBufferPropertiesANDROID & operator=( AndroidHardwareBufferPropertiesANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AndroidHardwareBufferPropertiesANDROID ) ); - return *this; - } - - - operator VkAndroidHardwareBufferPropertiesANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidHardwareBufferPropertiesANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidHardwareBufferPropertiesANDROID const& ) const = default; -#else - bool operator==( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allocationSize == rhs.allocationSize ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( AndroidHardwareBufferPropertiesANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferPropertiesANDROID; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( AndroidHardwareBufferPropertiesANDROID ) == sizeof( VkAndroidHardwareBufferPropertiesANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidHardwareBufferPropertiesANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidHardwareBufferUsageANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidHardwareBufferUsageANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID(uint64_t androidHardwareBufferUsage_ = {}) VULKAN_HPP_NOEXCEPT - : androidHardwareBufferUsage( androidHardwareBufferUsage_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidHardwareBufferUsageANDROID( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidHardwareBufferUsageANDROID( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AndroidHardwareBufferUsageANDROID & operator=( VkAndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AndroidHardwareBufferUsageANDROID & operator=( AndroidHardwareBufferUsageANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AndroidHardwareBufferUsageANDROID ) ); - return *this; - } - - - operator VkAndroidHardwareBufferUsageANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidHardwareBufferUsageANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidHardwareBufferUsageANDROID const& ) const = default; -#else - bool operator==( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( androidHardwareBufferUsage == rhs.androidHardwareBufferUsage ); - } - - bool operator!=( AndroidHardwareBufferUsageANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidHardwareBufferUsageANDROID; - void* pNext = {}; - uint64_t androidHardwareBufferUsage = {}; - - }; - static_assert( sizeof( AndroidHardwareBufferUsageANDROID ) == sizeof( VkAndroidHardwareBufferUsageANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidHardwareBufferUsageANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct AndroidSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAndroidSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ = {}, struct ANativeWindow* window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR AndroidSurfaceCreateInfoKHR( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AndroidSurfaceCreateInfoKHR( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AndroidSurfaceCreateInfoKHR & operator=( VkAndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AndroidSurfaceCreateInfoKHR & operator=( AndroidSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AndroidSurfaceCreateInfoKHR ) ); - return *this; - } - - AndroidSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AndroidSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AndroidSurfaceCreateInfoKHR & setWindow( struct ANativeWindow* window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkAndroidSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAndroidSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AndroidSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( window == rhs.window ); - } - - bool operator!=( AndroidSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAndroidSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateFlagsKHR flags = {}; - struct ANativeWindow* window = {}; - - }; - static_assert( sizeof( AndroidSurfaceCreateInfoKHR ) == sizeof( VkAndroidSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AndroidSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct ApplicationInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eApplicationInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ApplicationInfo(const char* pApplicationName_ = {}, uint32_t applicationVersion_ = {}, const char* pEngineName_ = {}, uint32_t engineVersion_ = {}, uint32_t apiVersion_ = {}) VULKAN_HPP_NOEXCEPT - : pApplicationName( pApplicationName_ ), applicationVersion( applicationVersion_ ), pEngineName( pEngineName_ ), engineVersion( engineVersion_ ), apiVersion( apiVersion_ ) - {} - - VULKAN_HPP_CONSTEXPR ApplicationInfo( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ApplicationInfo( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ApplicationInfo & operator=( VkApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ApplicationInfo & operator=( ApplicationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ApplicationInfo ) ); - return *this; - } - - ApplicationInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ApplicationInfo & setPApplicationName( const char* pApplicationName_ ) VULKAN_HPP_NOEXCEPT - { - pApplicationName = pApplicationName_; - return *this; - } - - ApplicationInfo & setApplicationVersion( uint32_t applicationVersion_ ) VULKAN_HPP_NOEXCEPT - { - applicationVersion = applicationVersion_; - return *this; - } - - ApplicationInfo & setPEngineName( const char* pEngineName_ ) VULKAN_HPP_NOEXCEPT - { - pEngineName = pEngineName_; - return *this; - } - - ApplicationInfo & setEngineVersion( uint32_t engineVersion_ ) VULKAN_HPP_NOEXCEPT - { - engineVersion = engineVersion_; - return *this; - } - - ApplicationInfo & setApiVersion( uint32_t apiVersion_ ) VULKAN_HPP_NOEXCEPT - { - apiVersion = apiVersion_; - return *this; - } - - - operator VkApplicationInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkApplicationInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ApplicationInfo const& ) const = default; -#else - bool operator==( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pApplicationName == rhs.pApplicationName ) - && ( applicationVersion == rhs.applicationVersion ) - && ( pEngineName == rhs.pEngineName ) - && ( engineVersion == rhs.engineVersion ) - && ( apiVersion == rhs.apiVersion ); - } - - bool operator!=( ApplicationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eApplicationInfo; - const void* pNext = {}; - const char* pApplicationName = {}; - uint32_t applicationVersion = {}; - const char* pEngineName = {}; - uint32_t engineVersion = {}; - uint32_t apiVersion = {}; - - }; - static_assert( sizeof( ApplicationInfo ) == sizeof( VkApplicationInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ApplicationInfo; - }; - - struct AttachmentDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentDescription(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentDescription( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescription( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AttachmentDescription & operator=( VkAttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentDescription & operator=( AttachmentDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AttachmentDescription ) ); - return *this; - } - - AttachmentDescription & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AttachmentDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - AttachmentDescription & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - AttachmentDescription & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT - { - loadOp = loadOp_; - return *this; - } - - AttachmentDescription & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT - { - storeOp = storeOp_; - return *this; - } - - AttachmentDescription & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilLoadOp = stencilLoadOp_; - return *this; - } - - AttachmentDescription & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilStoreOp = stencilStoreOp_; - return *this; - } - - AttachmentDescription & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT - { - initialLayout = initialLayout_; - return *this; - } - - AttachmentDescription & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT - { - finalLayout = finalLayout_; - return *this; - } - - - operator VkAttachmentDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentDescription const& ) const = default; -#else - bool operator==( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( flags == rhs.flags ) - && ( format == rhs.format ) - && ( samples == rhs.samples ) - && ( loadOp == rhs.loadOp ) - && ( storeOp == rhs.storeOp ) - && ( stencilLoadOp == rhs.stencilLoadOp ) - && ( stencilStoreOp == rhs.stencilStoreOp ) - && ( initialLayout == rhs.initialLayout ) - && ( finalLayout == rhs.finalLayout ); - } - - bool operator!=( AttachmentDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentDescription ) == sizeof( VkAttachmentDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AttachmentDescription2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescription2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentDescription2(VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad, VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), format( format_ ), samples( samples_ ), loadOp( loadOp_ ), storeOp( storeOp_ ), stencilLoadOp( stencilLoadOp_ ), stencilStoreOp( stencilStoreOp_ ), initialLayout( initialLayout_ ), finalLayout( finalLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentDescription2( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescription2( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AttachmentDescription2 & operator=( VkAttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentDescription2 & operator=( AttachmentDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AttachmentDescription2 ) ); - return *this; - } - - AttachmentDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentDescription2 & setFlags( VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - AttachmentDescription2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - AttachmentDescription2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - AttachmentDescription2 & setLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp_ ) VULKAN_HPP_NOEXCEPT - { - loadOp = loadOp_; - return *this; - } - - AttachmentDescription2 & setStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp_ ) VULKAN_HPP_NOEXCEPT - { - storeOp = storeOp_; - return *this; - } - - AttachmentDescription2 & setStencilLoadOp( VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilLoadOp = stencilLoadOp_; - return *this; - } - - AttachmentDescription2 & setStencilStoreOp( VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp_ ) VULKAN_HPP_NOEXCEPT - { - stencilStoreOp = stencilStoreOp_; - return *this; - } - - AttachmentDescription2 & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT - { - initialLayout = initialLayout_; - return *this; - } - - AttachmentDescription2 & setFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout finalLayout_ ) VULKAN_HPP_NOEXCEPT - { - finalLayout = finalLayout_; - return *this; - } - - - operator VkAttachmentDescription2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentDescription2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentDescription2 const& ) const = default; -#else - bool operator==( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( format == rhs.format ) - && ( samples == rhs.samples ) - && ( loadOp == rhs.loadOp ) - && ( storeOp == rhs.storeOp ) - && ( stencilLoadOp == rhs.stencilLoadOp ) - && ( stencilStoreOp == rhs.stencilStoreOp ) - && ( initialLayout == rhs.initialLayout ) - && ( finalLayout == rhs.finalLayout ); - } - - bool operator!=( AttachmentDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescription2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AttachmentDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp loadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp storeOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::AttachmentLoadOp stencilLoadOp = VULKAN_HPP_NAMESPACE::AttachmentLoadOp::eLoad; - VULKAN_HPP_NAMESPACE::AttachmentStoreOp stencilStoreOp = VULKAN_HPP_NAMESPACE::AttachmentStoreOp::eStore; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout finalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentDescription2 ) == sizeof( VkAttachmentDescription2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentDescription2; - }; - using AttachmentDescription2KHR = AttachmentDescription2; - - struct AttachmentDescriptionStencilLayout - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentDescriptionStencilLayout; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : stencilInitialLayout( stencilInitialLayout_ ), stencilFinalLayout( stencilFinalLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentDescriptionStencilLayout( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentDescriptionStencilLayout( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AttachmentDescriptionStencilLayout & operator=( VkAttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentDescriptionStencilLayout & operator=( AttachmentDescriptionStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AttachmentDescriptionStencilLayout ) ); - return *this; - } - - AttachmentDescriptionStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentDescriptionStencilLayout & setStencilInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout_ ) VULKAN_HPP_NOEXCEPT - { - stencilInitialLayout = stencilInitialLayout_; - return *this; - } - - AttachmentDescriptionStencilLayout & setStencilFinalLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout_ ) VULKAN_HPP_NOEXCEPT - { - stencilFinalLayout = stencilFinalLayout_; - return *this; - } - - - operator VkAttachmentDescriptionStencilLayout const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentDescriptionStencilLayout &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentDescriptionStencilLayout const& ) const = default; -#else - bool operator==( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilInitialLayout == rhs.stencilInitialLayout ) - && ( stencilFinalLayout == rhs.stencilFinalLayout ); - } - - bool operator!=( AttachmentDescriptionStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentDescriptionStencilLayout; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageLayout stencilInitialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout stencilFinalLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentDescriptionStencilLayout ) == sizeof( VkAttachmentDescriptionStencilLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentDescriptionStencilLayout; - }; - using AttachmentDescriptionStencilLayoutKHR = AttachmentDescriptionStencilLayout; - - struct AttachmentReference - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentReference(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : attachment( attachment_ ), layout( layout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentReference( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReference( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AttachmentReference & operator=( VkAttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentReference & operator=( AttachmentReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AttachmentReference ) ); - return *this; - } - - AttachmentReference & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT - { - attachment = attachment_; - return *this; - } - - AttachmentReference & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - - operator VkAttachmentReference const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentReference &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentReference const& ) const = default; -#else - bool operator==( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( attachment == rhs.attachment ) - && ( layout == rhs.layout ); - } - - bool operator!=( AttachmentReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t attachment = {}; - VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentReference ) == sizeof( VkAttachmentReference ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct AttachmentReference2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReference2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentReference2(uint32_t attachment_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout layout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT - : attachment( attachment_ ), layout( layout_ ), aspectMask( aspectMask_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentReference2( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReference2( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AttachmentReference2 & operator=( VkAttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentReference2 & operator=( AttachmentReference2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AttachmentReference2 ) ); - return *this; - } - - AttachmentReference2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentReference2 & setAttachment( uint32_t attachment_ ) VULKAN_HPP_NOEXCEPT - { - attachment = attachment_; - return *this; - } - - AttachmentReference2 & setLayout( VULKAN_HPP_NAMESPACE::ImageLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - AttachmentReference2 & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - - operator VkAttachmentReference2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentReference2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentReference2 const& ) const = default; -#else - bool operator==( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachment == rhs.attachment ) - && ( layout == rhs.layout ) - && ( aspectMask == rhs.aspectMask ); - } - - bool operator!=( AttachmentReference2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReference2; - const void* pNext = {}; - uint32_t attachment = {}; - VULKAN_HPP_NAMESPACE::ImageLayout layout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - - }; - static_assert( sizeof( AttachmentReference2 ) == sizeof( VkAttachmentReference2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentReference2; - }; - using AttachmentReference2KHR = AttachmentReference2; - - struct AttachmentReferenceStencilLayout - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eAttachmentReferenceStencilLayout; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout(VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : stencilLayout( stencilLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentReferenceStencilLayout( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentReferenceStencilLayout( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AttachmentReferenceStencilLayout & operator=( VkAttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentReferenceStencilLayout & operator=( AttachmentReferenceStencilLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AttachmentReferenceStencilLayout ) ); - return *this; - } - - AttachmentReferenceStencilLayout & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - AttachmentReferenceStencilLayout & setStencilLayout( VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout_ ) VULKAN_HPP_NOEXCEPT - { - stencilLayout = stencilLayout_; - return *this; - } - - - operator VkAttachmentReferenceStencilLayout const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentReferenceStencilLayout &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentReferenceStencilLayout const& ) const = default; -#else - bool operator==( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilLayout == rhs.stencilLayout ); - } - - bool operator!=( AttachmentReferenceStencilLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eAttachmentReferenceStencilLayout; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageLayout stencilLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( AttachmentReferenceStencilLayout ) == sizeof( VkAttachmentReferenceStencilLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = AttachmentReferenceStencilLayout; - }; - using AttachmentReferenceStencilLayoutKHR = AttachmentReferenceStencilLayout; - - struct Extent2D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Extent2D(uint32_t width_ = {}, uint32_t height_ = {}) VULKAN_HPP_NOEXCEPT - : width( width_ ), height( height_ ) - {} - - VULKAN_HPP_CONSTEXPR Extent2D( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Extent2D( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Extent2D & operator=( VkExtent2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Extent2D & operator=( Extent2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Extent2D ) ); - return *this; - } - - Extent2D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - Extent2D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - - operator VkExtent2D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExtent2D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Extent2D const& ) const = default; -#else - bool operator==( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( width == rhs.width ) - && ( height == rhs.height ); - } - - bool operator!=( Extent2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t width = {}; - uint32_t height = {}; - - }; - static_assert( sizeof( Extent2D ) == sizeof( VkExtent2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SampleLocationEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SampleLocationEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ) - {} - - VULKAN_HPP_CONSTEXPR SampleLocationEXT( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SampleLocationEXT( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SampleLocationEXT & operator=( VkSampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SampleLocationEXT & operator=( SampleLocationEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SampleLocationEXT ) ); - return *this; - } - - SampleLocationEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - SampleLocationEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - - operator VkSampleLocationEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSampleLocationEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SampleLocationEXT const& ) const = default; -#else - bool operator==( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ); - } - - bool operator!=( SampleLocationEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float x = {}; - float y = {}; - - }; - static_assert( sizeof( SampleLocationEXT ) == sizeof( VkSampleLocationEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SampleLocationsInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSampleLocationsInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_ = {}, uint32_t sampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( sampleLocationsCount_ ), pSampleLocations( pSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR SampleLocationsInfoEXT( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SampleLocationsInfoEXT( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SampleLocationsInfoEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_, VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) - : sampleLocationsPerPixel( sampleLocationsPerPixel_ ), sampleLocationGridSize( sampleLocationGridSize_ ), sampleLocationsCount( static_cast( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SampleLocationsInfoEXT & operator=( VkSampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SampleLocationsInfoEXT & operator=( SampleLocationsInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SampleLocationsInfoEXT ) ); - return *this; - } - - SampleLocationsInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SampleLocationsInfoEXT & setSampleLocationsPerPixel( VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsPerPixel = sampleLocationsPerPixel_; - return *this; - } - - SampleLocationsInfoEXT & setSampleLocationGridSize( VULKAN_HPP_NAMESPACE::Extent2D const & sampleLocationGridSize_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationGridSize = sampleLocationGridSize_; - return *this; - } - - SampleLocationsInfoEXT & setSampleLocationsCount( uint32_t sampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsCount = sampleLocationsCount_; - return *this; - } - - SampleLocationsInfoEXT & setPSampleLocations( const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pSampleLocations = pSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SampleLocationsInfoEXT & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsCount = static_cast( sampleLocations_.size() ); - pSampleLocations = sampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSampleLocationsInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSampleLocationsInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SampleLocationsInfoEXT const& ) const = default; -#else - bool operator==( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationsPerPixel == rhs.sampleLocationsPerPixel ) - && ( sampleLocationGridSize == rhs.sampleLocationGridSize ) - && ( sampleLocationsCount == rhs.sampleLocationsCount ) - && ( pSampleLocations == rhs.pSampleLocations ); - } - - bool operator!=( SampleLocationsInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSampleLocationsInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits sampleLocationsPerPixel = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Extent2D sampleLocationGridSize = {}; - uint32_t sampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::SampleLocationEXT* pSampleLocations = {}; - - }; - static_assert( sizeof( SampleLocationsInfoEXT ) == sizeof( VkSampleLocationsInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SampleLocationsInfoEXT; - }; - - struct AttachmentSampleLocationsEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT(uint32_t attachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentIndex( attachmentIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR AttachmentSampleLocationsEXT( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - AttachmentSampleLocationsEXT( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - AttachmentSampleLocationsEXT & operator=( VkAttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - AttachmentSampleLocationsEXT & operator=( AttachmentSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( AttachmentSampleLocationsEXT ) ); - return *this; - } - - AttachmentSampleLocationsEXT & setAttachmentIndex( uint32_t attachmentIndex_ ) VULKAN_HPP_NOEXCEPT - { - attachmentIndex = attachmentIndex_; - return *this; - } - - AttachmentSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsInfo = sampleLocationsInfo_; - return *this; - } - - - operator VkAttachmentSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkAttachmentSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( AttachmentSampleLocationsEXT const& ) const = default; -#else - bool operator==( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( attachmentIndex == rhs.attachmentIndex ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); - } - - bool operator!=( AttachmentSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t attachmentIndex = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; - - }; - static_assert( sizeof( AttachmentSampleLocationsEXT ) == sizeof( VkAttachmentSampleLocationsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BaseInStructure - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - BaseInStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT - : sType( sType_ ) - {} - - BaseInStructure( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BaseInStructure( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BaseInStructure & operator=( VkBaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BaseInStructure & operator=( BaseInStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BaseInStructure ) ); - return *this; - } - - BaseInStructure & setPNext( const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - - operator VkBaseInStructure const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBaseInStructure &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BaseInStructure const& ) const = default; -#else - bool operator==( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); - } - - bool operator!=( BaseInStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo; - const struct VULKAN_HPP_NAMESPACE::BaseInStructure* pNext = {}; - - }; - static_assert( sizeof( BaseInStructure ) == sizeof( VkBaseInStructure ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BaseOutStructure - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - BaseOutStructure(VULKAN_HPP_NAMESPACE::StructureType sType_ = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo) VULKAN_HPP_NOEXCEPT - : sType( sType_ ) - {} - - BaseOutStructure( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BaseOutStructure( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BaseOutStructure & operator=( VkBaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BaseOutStructure & operator=( BaseOutStructure const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BaseOutStructure ) ); - return *this; - } - - BaseOutStructure & setPNext( struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - - operator VkBaseOutStructure const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBaseOutStructure &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BaseOutStructure const& ) const = default; -#else - bool operator==( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); - } - - bool operator!=( BaseOutStructure const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StructureType sType = VULKAN_HPP_NAMESPACE::StructureType::eApplicationInfo; - struct VULKAN_HPP_NAMESPACE::BaseOutStructure* pNext = {}; - - }; - static_assert( sizeof( BaseOutStructure ) == sizeof( VkBaseOutStructure ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class DeviceMemory - { - public: - using CType = VkDeviceMemory; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeviceMemory; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDeviceMemory; - - public: - VULKAN_HPP_CONSTEXPR DeviceMemory() VULKAN_HPP_NOEXCEPT - : m_deviceMemory(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemory( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_deviceMemory(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DeviceMemory( VkDeviceMemory deviceMemory ) VULKAN_HPP_NOEXCEPT - : m_deviceMemory( deviceMemory ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DeviceMemory & operator=(VkDeviceMemory deviceMemory) VULKAN_HPP_NOEXCEPT - { - m_deviceMemory = deviceMemory; - return *this; - } -#endif - - DeviceMemory & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_deviceMemory = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemory const& ) const = default; -#else - bool operator==( DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory == rhs.m_deviceMemory; - } - - bool operator!=(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory != rhs.m_deviceMemory; - } - - bool operator<(DeviceMemory const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory < rhs.m_deviceMemory; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeviceMemory() const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_deviceMemory == VK_NULL_HANDLE; - } - - private: - VkDeviceMemory m_deviceMemory; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeviceMemory ) == sizeof( VkDeviceMemory ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DeviceMemory; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DeviceMemory; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DeviceMemory; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct BindAccelerationStructureMemoryInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindAccelerationStructureMemoryInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR BindAccelerationStructureMemoryInfoNV( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindAccelerationStructureMemoryInfoNV( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindAccelerationStructureMemoryInfoNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_, VULKAN_HPP_NAMESPACE::DeviceMemory memory_, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) - : accelerationStructure( accelerationStructure_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), deviceIndexCount( static_cast( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindAccelerationStructureMemoryInfoNV & operator=( VkBindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindAccelerationStructureMemoryInfoNV & operator=( BindAccelerationStructureMemoryInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindAccelerationStructureMemoryInfoNV ) ); - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setAccelerationStructure( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = deviceIndexCount_; - return *this; - } - - BindAccelerationStructureMemoryInfoNV & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceIndices = pDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindAccelerationStructureMemoryInfoNV & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = static_cast( deviceIndices_.size() ); - pDeviceIndices = deviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindAccelerationStructureMemoryInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindAccelerationStructureMemoryInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindAccelerationStructureMemoryInfoNV const& ) const = default; -#else - bool operator==( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructure == rhs.accelerationStructure ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ); - } - - bool operator!=( BindAccelerationStructureMemoryInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindAccelerationStructureMemoryInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; - - }; - static_assert( sizeof( BindAccelerationStructureMemoryInfoNV ) == sizeof( VkBindAccelerationStructureMemoryInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindAccelerationStructureMemoryInfoNV; - }; - - struct BindBufferMemoryDeviceGroupInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryDeviceGroupInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT - : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR BindBufferMemoryDeviceGroupInfo( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindBufferMemoryDeviceGroupInfo( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindBufferMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) - : deviceIndexCount( static_cast( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindBufferMemoryDeviceGroupInfo & operator=( VkBindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindBufferMemoryDeviceGroupInfo & operator=( BindBufferMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindBufferMemoryDeviceGroupInfo ) ); - return *this; - } - - BindBufferMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindBufferMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = deviceIndexCount_; - return *this; - } - - BindBufferMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceIndices = pDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindBufferMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = static_cast( deviceIndices_.size() ); - pDeviceIndices = deviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindBufferMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindBufferMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindBufferMemoryDeviceGroupInfo const& ) const = default; -#else - bool operator==( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ); - } - - bool operator!=( BindBufferMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryDeviceGroupInfo; - const void* pNext = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; - - }; - static_assert( sizeof( BindBufferMemoryDeviceGroupInfo ) == sizeof( VkBindBufferMemoryDeviceGroupInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindBufferMemoryDeviceGroupInfo; - }; - using BindBufferMemoryDeviceGroupInfoKHR = BindBufferMemoryDeviceGroupInfo; - - struct BindBufferMemoryInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindBufferMemoryInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), memory( memory_ ), memoryOffset( memoryOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR BindBufferMemoryInfo( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindBufferMemoryInfo( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindBufferMemoryInfo & operator=( VkBindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindBufferMemoryInfo & operator=( BindBufferMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindBufferMemoryInfo ) ); - return *this; - } - - BindBufferMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindBufferMemoryInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - BindBufferMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - BindBufferMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - - operator VkBindBufferMemoryInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindBufferMemoryInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindBufferMemoryInfo const& ) const = default; -#else - bool operator==( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ); - } - - bool operator!=( BindBufferMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindBufferMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - - }; - static_assert( sizeof( BindBufferMemoryInfo ) == sizeof( VkBindBufferMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindBufferMemoryInfo; - }; - using BindBufferMemoryInfoKHR = BindBufferMemoryInfo; - - struct Offset2D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Offset2D(int32_t x_ = {}, int32_t y_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ) - {} - - VULKAN_HPP_CONSTEXPR Offset2D( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Offset2D( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Offset2D & operator=( VkOffset2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Offset2D & operator=( Offset2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Offset2D ) ); - return *this; - } - - Offset2D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - Offset2D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - - operator VkOffset2D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkOffset2D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Offset2D const& ) const = default; -#else - bool operator==( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ); - } - - bool operator!=( Offset2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - int32_t x = {}; - int32_t y = {}; - - }; - static_assert( sizeof( Offset2D ) == sizeof( VkOffset2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct Rect2D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Rect2D(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}) VULKAN_HPP_NOEXCEPT - : offset( offset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR Rect2D( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Rect2D( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Rect2D & operator=( VkRect2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Rect2D & operator=( Rect2D const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Rect2D ) ); - return *this; - } - - Rect2D & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - Rect2D & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkRect2D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRect2D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Rect2D const& ) const = default; -#else - bool operator==( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( offset == rhs.offset ) - && ( extent == rhs.extent ); - } - - bool operator!=( Rect2D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Offset2D offset = {}; - VULKAN_HPP_NAMESPACE::Extent2D extent = {}; - - }; - static_assert( sizeof( Rect2D ) == sizeof( VkRect2D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BindImageMemoryDeviceGroupInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryDeviceGroupInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo(uint32_t deviceIndexCount_ = {}, const uint32_t* pDeviceIndices_ = {}, uint32_t splitInstanceBindRegionCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ = {}) VULKAN_HPP_NOEXCEPT - : deviceIndexCount( deviceIndexCount_ ), pDeviceIndices( pDeviceIndices_ ), splitInstanceBindRegionCount( splitInstanceBindRegionCount_ ), pSplitInstanceBindRegions( pSplitInstanceBindRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImageMemoryDeviceGroupInfo( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemoryDeviceGroupInfo( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindImageMemoryDeviceGroupInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & splitInstanceBindRegions_ = {} ) - : deviceIndexCount( static_cast( deviceIndices_.size() ) ), pDeviceIndices( deviceIndices_.data() ), splitInstanceBindRegionCount( static_cast( splitInstanceBindRegions_.size() ) ), pSplitInstanceBindRegions( splitInstanceBindRegions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindImageMemoryDeviceGroupInfo & operator=( VkBindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImageMemoryDeviceGroupInfo & operator=( BindImageMemoryDeviceGroupInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindImageMemoryDeviceGroupInfo ) ); - return *this; - } - - BindImageMemoryDeviceGroupInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImageMemoryDeviceGroupInfo & setDeviceIndexCount( uint32_t deviceIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = deviceIndexCount_; - return *this; - } - - BindImageMemoryDeviceGroupInfo & setPDeviceIndices( const uint32_t* pDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceIndices = pDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindImageMemoryDeviceGroupInfo & setDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - deviceIndexCount = static_cast( deviceIndices_.size() ); - pDeviceIndices = deviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegionCount( uint32_t splitInstanceBindRegionCount_ ) VULKAN_HPP_NOEXCEPT - { - splitInstanceBindRegionCount = splitInstanceBindRegionCount_; - return *this; - } - - BindImageMemoryDeviceGroupInfo & setPSplitInstanceBindRegions( const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT - { - pSplitInstanceBindRegions = pSplitInstanceBindRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindImageMemoryDeviceGroupInfo & setSplitInstanceBindRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & splitInstanceBindRegions_ ) VULKAN_HPP_NOEXCEPT - { - splitInstanceBindRegionCount = static_cast( splitInstanceBindRegions_.size() ); - pSplitInstanceBindRegions = splitInstanceBindRegions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindImageMemoryDeviceGroupInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImageMemoryDeviceGroupInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImageMemoryDeviceGroupInfo const& ) const = default; -#else - bool operator==( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceIndexCount == rhs.deviceIndexCount ) - && ( pDeviceIndices == rhs.pDeviceIndices ) - && ( splitInstanceBindRegionCount == rhs.splitInstanceBindRegionCount ) - && ( pSplitInstanceBindRegions == rhs.pSplitInstanceBindRegions ); - } - - bool operator!=( BindImageMemoryDeviceGroupInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryDeviceGroupInfo; - const void* pNext = {}; - uint32_t deviceIndexCount = {}; - const uint32_t* pDeviceIndices = {}; - uint32_t splitInstanceBindRegionCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pSplitInstanceBindRegions = {}; - - }; - static_assert( sizeof( BindImageMemoryDeviceGroupInfo ) == sizeof( VkBindImageMemoryDeviceGroupInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImageMemoryDeviceGroupInfo; - }; - using BindImageMemoryDeviceGroupInfoKHR = BindImageMemoryDeviceGroupInfo; - - class Image - { - public: - using CType = VkImage; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImage; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImage; - - public: - VULKAN_HPP_CONSTEXPR Image() VULKAN_HPP_NOEXCEPT - : m_image(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Image( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_image(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Image( VkImage image ) VULKAN_HPP_NOEXCEPT - : m_image( image ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Image & operator=(VkImage image) VULKAN_HPP_NOEXCEPT - { - m_image = image; - return *this; - } -#endif - - Image & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_image = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Image const& ) const = default; -#else - bool operator==( Image const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_image == rhs.m_image; - } - - bool operator!=(Image const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_image != rhs.m_image; - } - - bool operator<(Image const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_image < rhs.m_image; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImage() const VULKAN_HPP_NOEXCEPT - { - return m_image; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_image != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_image == VK_NULL_HANDLE; - } - - private: - VkImage m_image; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Image ) == sizeof( VkImage ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Image; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Image; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Image; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct BindImageMemoryInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemoryInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImageMemoryInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), memory( memory_ ), memoryOffset( memoryOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImageMemoryInfo( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemoryInfo( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindImageMemoryInfo & operator=( VkBindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImageMemoryInfo & operator=( BindImageMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindImageMemoryInfo ) ); - return *this; - } - - BindImageMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImageMemoryInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - BindImageMemoryInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - BindImageMemoryInfo & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - - operator VkBindImageMemoryInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImageMemoryInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImageMemoryInfo const& ) const = default; -#else - bool operator==( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ); - } - - bool operator!=( BindImageMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - - }; - static_assert( sizeof( BindImageMemoryInfo ) == sizeof( VkBindImageMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImageMemoryInfo; - }; - using BindImageMemoryInfoKHR = BindImageMemoryInfo; - - struct BindImageMemorySwapchainInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImageMemorySwapchainInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}, uint32_t imageIndex_ = {}) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ), imageIndex( imageIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImageMemorySwapchainInfoKHR( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImageMemorySwapchainInfoKHR( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindImageMemorySwapchainInfoKHR & operator=( VkBindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImageMemorySwapchainInfoKHR & operator=( BindImageMemorySwapchainInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindImageMemorySwapchainInfoKHR ) ); - return *this; - } - - BindImageMemorySwapchainInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImageMemorySwapchainInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT - { - swapchain = swapchain_; - return *this; - } - - BindImageMemorySwapchainInfoKHR & setImageIndex( uint32_t imageIndex_ ) VULKAN_HPP_NOEXCEPT - { - imageIndex = imageIndex_; - return *this; - } - - - operator VkBindImageMemorySwapchainInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImageMemorySwapchainInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImageMemorySwapchainInfoKHR const& ) const = default; -#else - bool operator==( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ) - && ( imageIndex == rhs.imageIndex ); - } - - bool operator!=( BindImageMemorySwapchainInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImageMemorySwapchainInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - uint32_t imageIndex = {}; - - }; - static_assert( sizeof( BindImageMemorySwapchainInfoKHR ) == sizeof( VkBindImageMemorySwapchainInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImageMemorySwapchainInfoKHR; - }; - - struct BindImagePlaneMemoryInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindImagePlaneMemoryInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT - : planeAspect( planeAspect_ ) - {} - - VULKAN_HPP_CONSTEXPR BindImagePlaneMemoryInfo( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindImagePlaneMemoryInfo( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindImagePlaneMemoryInfo & operator=( VkBindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindImagePlaneMemoryInfo & operator=( BindImagePlaneMemoryInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindImagePlaneMemoryInfo ) ); - return *this; - } - - BindImagePlaneMemoryInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindImagePlaneMemoryInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT - { - planeAspect = planeAspect_; - return *this; - } - - - operator VkBindImagePlaneMemoryInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindImagePlaneMemoryInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindImagePlaneMemoryInfo const& ) const = default; -#else - bool operator==( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( planeAspect == rhs.planeAspect ); - } - - bool operator!=( BindImagePlaneMemoryInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindImagePlaneMemoryInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; - - }; - static_assert( sizeof( BindImagePlaneMemoryInfo ) == sizeof( VkBindImagePlaneMemoryInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindImagePlaneMemoryInfo; - }; - using BindImagePlaneMemoryInfoKHR = BindImagePlaneMemoryInfo; - - struct BindIndexBufferIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, VULKAN_HPP_NAMESPACE::IndexType indexType_ = VULKAN_HPP_NAMESPACE::IndexType::eUint16) VULKAN_HPP_NOEXCEPT - : bufferAddress( bufferAddress_ ), size( size_ ), indexType( indexType_ ) - {} - - VULKAN_HPP_CONSTEXPR BindIndexBufferIndirectCommandNV( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindIndexBufferIndirectCommandNV( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindIndexBufferIndirectCommandNV & operator=( VkBindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindIndexBufferIndirectCommandNV & operator=( BindIndexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindIndexBufferIndirectCommandNV ) ); - return *this; - } - - BindIndexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferAddress = bufferAddress_; - return *this; - } - - BindIndexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - BindIndexBufferIndirectCommandNV & setIndexType( VULKAN_HPP_NAMESPACE::IndexType indexType_ ) VULKAN_HPP_NOEXCEPT - { - indexType = indexType_; - return *this; - } - - - operator VkBindIndexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindIndexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindIndexBufferIndirectCommandNV const& ) const = default; -#else - bool operator==( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( bufferAddress == rhs.bufferAddress ) - && ( size == rhs.size ) - && ( indexType == rhs.indexType ); - } - - bool operator!=( BindIndexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {}; - uint32_t size = {}; - VULKAN_HPP_NAMESPACE::IndexType indexType = VULKAN_HPP_NAMESPACE::IndexType::eUint16; - - }; - static_assert( sizeof( BindIndexBufferIndirectCommandNV ) == sizeof( VkBindIndexBufferIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BindShaderGroupIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV(uint32_t groupIndex_ = {}) VULKAN_HPP_NOEXCEPT - : groupIndex( groupIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR BindShaderGroupIndirectCommandNV( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindShaderGroupIndirectCommandNV( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindShaderGroupIndirectCommandNV & operator=( VkBindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindShaderGroupIndirectCommandNV & operator=( BindShaderGroupIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindShaderGroupIndirectCommandNV ) ); - return *this; - } - - BindShaderGroupIndirectCommandNV & setGroupIndex( uint32_t groupIndex_ ) VULKAN_HPP_NOEXCEPT - { - groupIndex = groupIndex_; - return *this; - } - - - operator VkBindShaderGroupIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindShaderGroupIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindShaderGroupIndirectCommandNV const& ) const = default; -#else - bool operator==( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( groupIndex == rhs.groupIndex ); - } - - bool operator!=( BindShaderGroupIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t groupIndex = {}; - - }; - static_assert( sizeof( BindShaderGroupIndirectCommandNV ) == sizeof( VkBindShaderGroupIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseMemoryBind - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseMemoryBind(VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : resourceOffset( resourceOffset_ ), size( size_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseMemoryBind( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseMemoryBind( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseMemoryBind & operator=( VkSparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseMemoryBind & operator=( SparseMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseMemoryBind ) ); - return *this; - } - - SparseMemoryBind & setResourceOffset( VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset_ ) VULKAN_HPP_NOEXCEPT - { - resourceOffset = resourceOffset_; - return *this; - } - - SparseMemoryBind & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - SparseMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - SparseMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - SparseMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkSparseMemoryBind const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseMemoryBind &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseMemoryBind const& ) const = default; -#else - bool operator==( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( resourceOffset == rhs.resourceOffset ) - && ( size == rhs.size ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( flags == rhs.flags ); - } - - bool operator!=( SparseMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize resourceOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; - - }; - static_assert( sizeof( SparseMemoryBind ) == sizeof( VkSparseMemoryBind ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseBufferMemoryBindInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), bindCount( bindCount_ ), pBinds( pBinds_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseBufferMemoryBindInfo( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseBufferMemoryBindInfo( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseBufferMemoryBindInfo( VULKAN_HPP_NAMESPACE::Buffer buffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) - : buffer( buffer_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseBufferMemoryBindInfo & operator=( VkSparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseBufferMemoryBindInfo & operator=( SparseBufferMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseBufferMemoryBindInfo ) ); - return *this; - } - - SparseBufferMemoryBindInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - SparseBufferMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = bindCount_; - return *this; - } - - SparseBufferMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBinds = pBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseBufferMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = static_cast( binds_.size() ); - pBinds = binds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSparseBufferMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseBufferMemoryBindInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseBufferMemoryBindInfo const& ) const = default; -#else - bool operator==( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( buffer == rhs.buffer ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); - } - - bool operator!=( SparseBufferMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {}; - - }; - static_assert( sizeof( SparseBufferMemoryBindInfo ) == sizeof( VkSparseBufferMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageOpaqueMemoryBindInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageOpaqueMemoryBindInfo( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageOpaqueMemoryBindInfo( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageOpaqueMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) - : image( image_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseImageOpaqueMemoryBindInfo & operator=( VkSparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageOpaqueMemoryBindInfo & operator=( SparseImageOpaqueMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseImageOpaqueMemoryBindInfo ) ); - return *this; - } - - SparseImageOpaqueMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - SparseImageOpaqueMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = bindCount_; - return *this; - } - - SparseImageOpaqueMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBinds = pBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageOpaqueMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = static_cast( binds_.size() ); - pBinds = binds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSparseImageOpaqueMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageOpaqueMemoryBindInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageOpaqueMemoryBindInfo const& ) const = default; -#else - bool operator==( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( image == rhs.image ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); - } - - bool operator!=( SparseImageOpaqueMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Image image = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseMemoryBind* pBinds = {}; - - }; - static_assert( sizeof( SparseImageOpaqueMemoryBindInfo ) == sizeof( VkSparseImageOpaqueMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSubresource - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSubresource(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t arrayLayer_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), arrayLayer( arrayLayer_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSubresource( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresource( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageSubresource & operator=( VkImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSubresource & operator=( ImageSubresource const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageSubresource ) ); - return *this; - } - - ImageSubresource & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ImageSubresource & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT - { - mipLevel = mipLevel_; - return *this; - } - - ImageSubresource & setArrayLayer( uint32_t arrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - arrayLayer = arrayLayer_; - return *this; - } - - - operator VkImageSubresource const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSubresource &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSubresource const& ) const = default; -#else - bool operator==( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( mipLevel == rhs.mipLevel ) - && ( arrayLayer == rhs.arrayLayer ); - } - - bool operator!=( ImageSubresource const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t mipLevel = {}; - uint32_t arrayLayer = {}; - - }; - static_assert( sizeof( ImageSubresource ) == sizeof( VkImageSubresource ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct Offset3D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Offset3D(int32_t x_ = {}, int32_t y_ = {}, int32_t z_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), z( z_ ) - {} - - VULKAN_HPP_CONSTEXPR Offset3D( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Offset3D( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - explicit Offset3D( Offset2D const& offset2D, int32_t z_ = {} ) - : x( offset2D.x ) - , y( offset2D.y ) - , z( z_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Offset3D & operator=( VkOffset3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Offset3D & operator=( Offset3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Offset3D ) ); - return *this; - } - - Offset3D & setX( int32_t x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - Offset3D & setY( int32_t y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - Offset3D & setZ( int32_t z_ ) VULKAN_HPP_NOEXCEPT - { - z = z_; - return *this; - } - - - operator VkOffset3D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkOffset3D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Offset3D const& ) const = default; -#else - bool operator==( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ); - } - - bool operator!=( Offset3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - int32_t x = {}; - int32_t y = {}; - int32_t z = {}; - - }; - static_assert( sizeof( Offset3D ) == sizeof( VkOffset3D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct Extent3D - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Extent3D(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT - : width( width_ ), height( height_ ), depth( depth_ ) - {} - - VULKAN_HPP_CONSTEXPR Extent3D( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Extent3D( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - explicit Extent3D( Extent2D const& extent2D, uint32_t depth_ = {} ) - : width( extent2D.width ) - , height( extent2D.height ) - , depth( depth_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Extent3D & operator=( VkExtent3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Extent3D & operator=( Extent3D const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Extent3D ) ); - return *this; - } - - Extent3D & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - Extent3D & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - Extent3D & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT - { - depth = depth_; - return *this; - } - - - operator VkExtent3D const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExtent3D &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Extent3D const& ) const = default; -#else - bool operator==( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( width == rhs.width ) - && ( height == rhs.height ) - && ( depth == rhs.depth ); - } - - bool operator!=( Extent3D const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t width = {}; - uint32_t height = {}; - uint32_t depth = {}; - - }; - static_assert( sizeof( Extent3D ) == sizeof( VkExtent3D ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageMemoryBind - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryBind(VULKAN_HPP_NAMESPACE::ImageSubresource subresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ = {}, VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : subresource( subresource_ ), offset( offset_ ), extent( extent_ ), memory( memory_ ), memoryOffset( memoryOffset_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryBind( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryBind( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseImageMemoryBind & operator=( VkSparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageMemoryBind & operator=( SparseImageMemoryBind const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseImageMemoryBind ) ); - return *this; - } - - SparseImageMemoryBind & setSubresource( VULKAN_HPP_NAMESPACE::ImageSubresource const & subresource_ ) VULKAN_HPP_NOEXCEPT - { - subresource = subresource_; - return *this; - } - - SparseImageMemoryBind & setOffset( VULKAN_HPP_NAMESPACE::Offset3D const & offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - SparseImageMemoryBind & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - SparseImageMemoryBind & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - SparseImageMemoryBind & setMemoryOffset( VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset_ ) VULKAN_HPP_NOEXCEPT - { - memoryOffset = memoryOffset_; - return *this; - } - - SparseImageMemoryBind & setFlags( VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkSparseImageMemoryBind const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryBind &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryBind const& ) const = default; -#else - bool operator==( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( subresource == rhs.subresource ) - && ( offset == rhs.offset ) - && ( extent == rhs.extent ) - && ( memory == rhs.memory ) - && ( memoryOffset == rhs.memoryOffset ) - && ( flags == rhs.flags ); - } - - bool operator!=( SparseImageMemoryBind const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresource subresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D offset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset = {}; - VULKAN_HPP_NAMESPACE::SparseMemoryBindFlags flags = {}; - - }; - static_assert( sizeof( SparseImageMemoryBind ) == sizeof( VkSparseImageMemoryBind ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageMemoryBindInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, uint32_t bindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), bindCount( bindCount_ ), pBinds( pBinds_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryBindInfo( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryBindInfo( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageMemoryBindInfo( VULKAN_HPP_NAMESPACE::Image image_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) - : image( image_ ), bindCount( static_cast( binds_.size() ) ), pBinds( binds_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseImageMemoryBindInfo & operator=( VkSparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageMemoryBindInfo & operator=( SparseImageMemoryBindInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseImageMemoryBindInfo ) ); - return *this; - } - - SparseImageMemoryBindInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - SparseImageMemoryBindInfo & setBindCount( uint32_t bindCount_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = bindCount_; - return *this; - } - - SparseImageMemoryBindInfo & setPBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBinds = pBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SparseImageMemoryBindInfo & setBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & binds_ ) VULKAN_HPP_NOEXCEPT - { - bindCount = static_cast( binds_.size() ); - pBinds = binds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSparseImageMemoryBindInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryBindInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryBindInfo const& ) const = default; -#else - bool operator==( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( image == rhs.image ) - && ( bindCount == rhs.bindCount ) - && ( pBinds == rhs.pBinds ); - } - - bool operator!=( SparseImageMemoryBindInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Image image = {}; - uint32_t bindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBind* pBinds = {}; - - }; - static_assert( sizeof( SparseImageMemoryBindInfo ) == sizeof( VkSparseImageMemoryBindInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BindSparseInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBindSparseInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindSparseInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, uint32_t bufferBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ = {}, uint32_t imageOpaqueBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ = {}, uint32_t imageBindCount_ = {}, const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), bufferBindCount( bufferBindCount_ ), pBufferBinds( pBufferBinds_ ), imageOpaqueBindCount( imageOpaqueBindCount_ ), pImageOpaqueBinds( pImageOpaqueBinds_ ), imageBindCount( imageBindCount_ ), pImageBinds( pImageBinds_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ ) - {} - - VULKAN_HPP_CONSTEXPR BindSparseInfo( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindSparseInfo( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageOpaqueBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageBinds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), bufferBindCount( static_cast( bufferBinds_.size() ) ), pBufferBinds( bufferBinds_.data() ), imageOpaqueBindCount( static_cast( imageOpaqueBinds_.size() ) ), pImageOpaqueBinds( imageOpaqueBinds_.data() ), imageBindCount( static_cast( imageBinds_.size() ) ), pImageBinds( imageBinds_.data() ), signalSemaphoreCount( static_cast( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindSparseInfo & operator=( VkBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindSparseInfo & operator=( BindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindSparseInfo ) ); - return *this; - } - - BindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BindSparseInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - BindSparseInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphores = pWaitSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphores_.size() ); - pWaitSemaphores = waitSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setBufferBindCount( uint32_t bufferBindCount_ ) VULKAN_HPP_NOEXCEPT - { - bufferBindCount = bufferBindCount_; - return *this; - } - - BindSparseInfo & setPBufferBinds( const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds_ ) VULKAN_HPP_NOEXCEPT - { - pBufferBinds = pBufferBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setBufferBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferBinds_ ) VULKAN_HPP_NOEXCEPT - { - bufferBindCount = static_cast( bufferBinds_.size() ); - pBufferBinds = bufferBinds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setImageOpaqueBindCount( uint32_t imageOpaqueBindCount_ ) VULKAN_HPP_NOEXCEPT - { - imageOpaqueBindCount = imageOpaqueBindCount_; - return *this; - } - - BindSparseInfo & setPImageOpaqueBinds( const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT - { - pImageOpaqueBinds = pImageOpaqueBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setImageOpaqueBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageOpaqueBinds_ ) VULKAN_HPP_NOEXCEPT - { - imageOpaqueBindCount = static_cast( imageOpaqueBinds_.size() ); - pImageOpaqueBinds = imageOpaqueBinds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setImageBindCount( uint32_t imageBindCount_ ) VULKAN_HPP_NOEXCEPT - { - imageBindCount = imageBindCount_; - return *this; - } - - BindSparseInfo & setPImageBinds( const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds_ ) VULKAN_HPP_NOEXCEPT - { - pImageBinds = pImageBinds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setImageBinds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageBinds_ ) VULKAN_HPP_NOEXCEPT - { - imageBindCount = static_cast( imageBinds_.size() ); - pImageBinds = imageBinds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BindSparseInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = signalSemaphoreCount_; - return *this; - } - - BindSparseInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphores = pSignalSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BindSparseInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = static_cast( signalSemaphores_.size() ); - pSignalSemaphores = signalSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindSparseInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindSparseInfo const& ) const = default; -#else - bool operator==( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( bufferBindCount == rhs.bufferBindCount ) - && ( pBufferBinds == rhs.pBufferBinds ) - && ( imageOpaqueBindCount == rhs.imageOpaqueBindCount ) - && ( pImageOpaqueBinds == rhs.pImageOpaqueBinds ) - && ( imageBindCount == rhs.imageBindCount ) - && ( pImageBinds == rhs.pImageBinds ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphores == rhs.pSignalSemaphores ); - } - - bool operator!=( BindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBindSparseInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - uint32_t bufferBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo* pBufferBinds = {}; - uint32_t imageOpaqueBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds = {}; - uint32_t imageBindCount = {}; - const VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo* pImageBinds = {}; - uint32_t signalSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {}; - - }; - static_assert( sizeof( BindSparseInfo ) == sizeof( VkBindSparseInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BindSparseInfo; - }; - - struct BindVertexBufferIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV(VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ = {}, uint32_t size_ = {}, uint32_t stride_ = {}) VULKAN_HPP_NOEXCEPT - : bufferAddress( bufferAddress_ ), size( size_ ), stride( stride_ ) - {} - - VULKAN_HPP_CONSTEXPR BindVertexBufferIndirectCommandNV( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BindVertexBufferIndirectCommandNV( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BindVertexBufferIndirectCommandNV & operator=( VkBindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BindVertexBufferIndirectCommandNV & operator=( BindVertexBufferIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BindVertexBufferIndirectCommandNV ) ); - return *this; - } - - BindVertexBufferIndirectCommandNV & setBufferAddress( VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferAddress = bufferAddress_; - return *this; - } - - BindVertexBufferIndirectCommandNV & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - BindVertexBufferIndirectCommandNV & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - - operator VkBindVertexBufferIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBindVertexBufferIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BindVertexBufferIndirectCommandNV const& ) const = default; -#else - bool operator==( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( bufferAddress == rhs.bufferAddress ) - && ( size == rhs.size ) - && ( stride == rhs.stride ); - } - - bool operator!=( BindVertexBufferIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceAddress bufferAddress = {}; - uint32_t size = {}; - uint32_t stride = {}; - - }; - static_assert( sizeof( BindVertexBufferIndirectCommandNV ) == sizeof( VkBindVertexBufferIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSubresourceLayers - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSubresourceLayers(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t mipLevel_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), mipLevel( mipLevel_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSubresourceLayers( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresourceLayers( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageSubresourceLayers & operator=( VkImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSubresourceLayers & operator=( ImageSubresourceLayers const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageSubresourceLayers ) ); - return *this; - } - - ImageSubresourceLayers & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ImageSubresourceLayers & setMipLevel( uint32_t mipLevel_ ) VULKAN_HPP_NOEXCEPT - { - mipLevel = mipLevel_; - return *this; - } - - ImageSubresourceLayers & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - baseArrayLayer = baseArrayLayer_; - return *this; - } - - ImageSubresourceLayers & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - - operator VkImageSubresourceLayers const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSubresourceLayers &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSubresourceLayers const& ) const = default; -#else - bool operator==( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( mipLevel == rhs.mipLevel ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); - } - - bool operator!=( ImageSubresourceLayers const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t mipLevel = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; - - }; - static_assert( sizeof( ImageSubresourceLayers ) == sizeof( VkImageSubresourceLayers ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageBlit2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageBlit2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array const& srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array const& dstOffsets_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ImageBlit2KHR( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageBlit2KHR( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageBlit2KHR & operator=( VkImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageBlit2KHR & operator=( ImageBlit2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageBlit2KHR ) ); - return *this; - } - - ImageBlit2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageBlit2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageBlit2KHR & setSrcOffsets( std::array const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT - { - srcOffsets = srcOffsets_; - return *this; - } - - ImageBlit2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageBlit2KHR & setDstOffsets( std::array const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT - { - dstOffsets = dstOffsets_; - return *this; - } - - - operator VkImageBlit2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageBlit2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageBlit2KHR const& ) const = default; -#else - bool operator==( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubresource == rhs.srcSubresource ) - && ( srcOffsets == rhs.srcOffsets ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffsets == rhs.dstOffsets ); - } - - bool operator!=( ImageBlit2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageBlit2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D srcOffsets = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D dstOffsets = {}; - - }; - static_assert( sizeof( ImageBlit2KHR ) == sizeof( VkImageBlit2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageBlit2KHR; - }; - - struct BlitImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBlitImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ = {}, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ), filter( filter_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 BlitImageInfo2KHR( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BlitImageInfo2KHR( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BlitImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_, VULKAN_HPP_NAMESPACE::Filter filter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ), filter( filter_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BlitImageInfo2KHR & operator=( VkBlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BlitImageInfo2KHR & operator=( BlitImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BlitImageInfo2KHR ) ); - return *this; - } - - BlitImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BlitImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - BlitImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - BlitImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - BlitImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - BlitImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - BlitImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BlitImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - BlitImageInfo2KHR & setFilter( VULKAN_HPP_NAMESPACE::Filter filter_ ) VULKAN_HPP_NOEXCEPT - { - filter = filter_; - return *this; - } - - - operator VkBlitImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBlitImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BlitImageInfo2KHR const& ) const = default; -#else - bool operator==( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ) - && ( filter == rhs.filter ); - } - - bool operator!=( BlitImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBlitImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::ImageBlit2KHR* pRegions = {}; - VULKAN_HPP_NAMESPACE::Filter filter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - - }; - static_assert( sizeof( BlitImageInfo2KHR ) == sizeof( VkBlitImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BlitImageInfo2KHR; - }; - - struct BufferCopy - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferCopy(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferCopy( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCopy( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferCopy & operator=( VkBufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferCopy & operator=( BufferCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferCopy ) ); - return *this; - } - - BufferCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - BufferCopy & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - BufferCopy & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkBufferCopy const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferCopy &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferCopy const& ) const = default; -#else - bool operator==( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcOffset == rhs.srcOffset ) - && ( dstOffset == rhs.dstOffset ) - && ( size == rhs.size ); - } - - bool operator!=( BufferCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( BufferCopy ) == sizeof( VkBufferCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BufferCopy2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCopy2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : srcOffset( srcOffset_ ), dstOffset( dstOffset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferCopy2KHR( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCopy2KHR( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferCopy2KHR & operator=( VkBufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferCopy2KHR & operator=( BufferCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferCopy2KHR ) ); - return *this; - } - - BufferCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::DeviceSize srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - BufferCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::DeviceSize dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - BufferCopy2KHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkBufferCopy2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferCopy2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferCopy2KHR const& ) const = default; -#else - bool operator==( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcOffset == rhs.srcOffset ) - && ( dstOffset == rhs.dstOffset ) - && ( size == rhs.size ); - } - - bool operator!=( BufferCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCopy2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize srcOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize dstOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( BufferCopy2KHR ) == sizeof( VkBufferCopy2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferCopy2KHR; - }; - - struct BufferCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferCreateInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferCreateInfo( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferCreateInfo( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BufferCreateInfo( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::DeviceSize size_, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) - : flags( flags_ ), size( size_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferCreateInfo & operator=( VkBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferCreateInfo & operator=( BufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferCreateInfo ) ); - return *this; - } - - BufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - BufferCreateInfo & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - BufferCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - BufferCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT - { - sharingMode = sharingMode_; - return *this; - } - - BufferCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - BufferCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - BufferCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferCreateInfo const& ) const = default; -#else - bool operator==( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( size == rhs.size ) - && ( usage == rhs.usage ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); - } - - bool operator!=( BufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - - }; - static_assert( sizeof( BufferCreateInfo ) == sizeof( VkBufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferCreateInfo; - }; - - struct BufferDeviceAddressCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}) VULKAN_HPP_NOEXCEPT - : deviceAddress( deviceAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferDeviceAddressCreateInfoEXT( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferDeviceAddressCreateInfoEXT( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferDeviceAddressCreateInfoEXT & operator=( VkBufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferDeviceAddressCreateInfoEXT & operator=( BufferDeviceAddressCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferDeviceAddressCreateInfoEXT ) ); - return *this; - } - - BufferDeviceAddressCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferDeviceAddressCreateInfoEXT & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - - operator VkBufferDeviceAddressCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferDeviceAddressCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferDeviceAddressCreateInfoEXT const& ) const = default; -#else - bool operator==( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceAddress == rhs.deviceAddress ); - } - - bool operator!=( BufferDeviceAddressCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - - }; - static_assert( sizeof( BufferDeviceAddressCreateInfoEXT ) == sizeof( VkBufferDeviceAddressCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferDeviceAddressCreateInfoEXT; - }; - - struct BufferDeviceAddressInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferDeviceAddressInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferDeviceAddressInfo( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferDeviceAddressInfo( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferDeviceAddressInfo & operator=( VkBufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferDeviceAddressInfo & operator=( BufferDeviceAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferDeviceAddressInfo ) ); - return *this; - } - - BufferDeviceAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferDeviceAddressInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkBufferDeviceAddressInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferDeviceAddressInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferDeviceAddressInfo const& ) const = default; -#else - bool operator==( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( BufferDeviceAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferDeviceAddressInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( BufferDeviceAddressInfo ) == sizeof( VkBufferDeviceAddressInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferDeviceAddressInfo; - }; - using BufferDeviceAddressInfoEXT = BufferDeviceAddressInfo; - using BufferDeviceAddressInfoKHR = BufferDeviceAddressInfo; - - struct BufferImageCopy - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferImageCopy(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT - : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferImageCopy( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferImageCopy( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferImageCopy & operator=( VkBufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferImageCopy & operator=( BufferImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferImageCopy ) ); - return *this; - } - - BufferImageCopy & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT - { - bufferOffset = bufferOffset_; - return *this; - } - - BufferImageCopy & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT - { - bufferRowLength = bufferRowLength_; - return *this; - } - - BufferImageCopy & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT - { - bufferImageHeight = bufferImageHeight_; - return *this; - } - - BufferImageCopy & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT - { - imageSubresource = imageSubresource_; - return *this; - } - - BufferImageCopy & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT - { - imageOffset = imageOffset_; - return *this; - } - - BufferImageCopy & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - - operator VkBufferImageCopy const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferImageCopy &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferImageCopy const& ) const = default; -#else - bool operator==( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( bufferOffset == rhs.bufferOffset ) - && ( bufferRowLength == rhs.bufferRowLength ) - && ( bufferImageHeight == rhs.bufferImageHeight ) - && ( imageSubresource == rhs.imageSubresource ) - && ( imageOffset == rhs.imageOffset ) - && ( imageExtent == rhs.imageExtent ); - } - - bool operator!=( BufferImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {}; - uint32_t bufferRowLength = {}; - uint32_t bufferImageHeight = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {}; - - }; - static_assert( sizeof( BufferImageCopy ) == sizeof( VkBufferImageCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct BufferImageCopy2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferImageCopy2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR(VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ = {}, uint32_t bufferRowLength_ = {}, uint32_t bufferImageHeight_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D imageOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT - : bufferOffset( bufferOffset_ ), bufferRowLength( bufferRowLength_ ), bufferImageHeight( bufferImageHeight_ ), imageSubresource( imageSubresource_ ), imageOffset( imageOffset_ ), imageExtent( imageExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferImageCopy2KHR( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferImageCopy2KHR( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferImageCopy2KHR & operator=( VkBufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferImageCopy2KHR & operator=( BufferImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferImageCopy2KHR ) ); - return *this; - } - - BufferImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferImageCopy2KHR & setBufferOffset( VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset_ ) VULKAN_HPP_NOEXCEPT - { - bufferOffset = bufferOffset_; - return *this; - } - - BufferImageCopy2KHR & setBufferRowLength( uint32_t bufferRowLength_ ) VULKAN_HPP_NOEXCEPT - { - bufferRowLength = bufferRowLength_; - return *this; - } - - BufferImageCopy2KHR & setBufferImageHeight( uint32_t bufferImageHeight_ ) VULKAN_HPP_NOEXCEPT - { - bufferImageHeight = bufferImageHeight_; - return *this; - } - - BufferImageCopy2KHR & setImageSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresource_ ) VULKAN_HPP_NOEXCEPT - { - imageSubresource = imageSubresource_; - return *this; - } - - BufferImageCopy2KHR & setImageOffset( VULKAN_HPP_NAMESPACE::Offset3D const & imageOffset_ ) VULKAN_HPP_NOEXCEPT - { - imageOffset = imageOffset_; - return *this; - } - - BufferImageCopy2KHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent3D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - - operator VkBufferImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferImageCopy2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferImageCopy2KHR const& ) const = default; -#else - bool operator==( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferOffset == rhs.bufferOffset ) - && ( bufferRowLength == rhs.bufferRowLength ) - && ( bufferImageHeight == rhs.bufferImageHeight ) - && ( imageSubresource == rhs.imageSubresource ) - && ( imageOffset == rhs.imageOffset ) - && ( imageExtent == rhs.imageExtent ); - } - - bool operator!=( BufferImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferImageCopy2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize bufferOffset = {}; - uint32_t bufferRowLength = {}; - uint32_t bufferImageHeight = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers imageSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D imageOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageExtent = {}; - - }; - static_assert( sizeof( BufferImageCopy2KHR ) == sizeof( VkBufferImageCopy2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferImageCopy2KHR; - }; - - struct BufferMemoryBarrier - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryBarrier; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), buffer( buffer_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferMemoryBarrier( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryBarrier( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferMemoryBarrier & operator=( VkBufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferMemoryBarrier & operator=( BufferMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferMemoryBarrier ) ); - return *this; - } - - BufferMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - BufferMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - BufferMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - srcQueueFamilyIndex = srcQueueFamilyIndex_; - return *this; - } - - BufferMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - dstQueueFamilyIndex = dstQueueFamilyIndex_; - return *this; - } - - BufferMemoryBarrier & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - BufferMemoryBarrier & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - BufferMemoryBarrier & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkBufferMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferMemoryBarrier &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferMemoryBarrier const& ) const = default; -#else - bool operator==( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( BufferMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( BufferMemoryBarrier ) == sizeof( VkBufferMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferMemoryBarrier; - }; - - struct BufferMemoryRequirementsInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferMemoryRequirementsInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferMemoryRequirementsInfo2( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferMemoryRequirementsInfo2( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferMemoryRequirementsInfo2 & operator=( VkBufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferMemoryRequirementsInfo2 & operator=( BufferMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferMemoryRequirementsInfo2 ) ); - return *this; - } - - BufferMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferMemoryRequirementsInfo2 & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkBufferMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferMemoryRequirementsInfo2 const& ) const = default; -#else - bool operator==( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( BufferMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( BufferMemoryRequirementsInfo2 ) == sizeof( VkBufferMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferMemoryRequirementsInfo2; - }; - using BufferMemoryRequirementsInfo2KHR = BufferMemoryRequirementsInfo2; - - struct BufferOpaqueCaptureAddressCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferOpaqueCaptureAddressCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT - : opaqueCaptureAddress( opaqueCaptureAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferOpaqueCaptureAddressCreateInfo( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferOpaqueCaptureAddressCreateInfo( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferOpaqueCaptureAddressCreateInfo & operator=( VkBufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferOpaqueCaptureAddressCreateInfo & operator=( BufferOpaqueCaptureAddressCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferOpaqueCaptureAddressCreateInfo ) ); - return *this; - } - - BufferOpaqueCaptureAddressCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferOpaqueCaptureAddressCreateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT - { - opaqueCaptureAddress = opaqueCaptureAddress_; - return *this; - } - - - operator VkBufferOpaqueCaptureAddressCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferOpaqueCaptureAddressCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferOpaqueCaptureAddressCreateInfo const& ) const = default; -#else - bool operator==( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); - } - - bool operator!=( BufferOpaqueCaptureAddressCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferOpaqueCaptureAddressCreateInfo; - const void* pNext = {}; - uint64_t opaqueCaptureAddress = {}; - - }; - static_assert( sizeof( BufferOpaqueCaptureAddressCreateInfo ) == sizeof( VkBufferOpaqueCaptureAddressCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferOpaqueCaptureAddressCreateInfo; - }; - using BufferOpaqueCaptureAddressCreateInfoKHR = BufferOpaqueCaptureAddressCreateInfo; - - struct BufferViewCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eBufferViewCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR BufferViewCreateInfo(VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), buffer( buffer_ ), format( format_ ), offset( offset_ ), range( range_ ) - {} - - VULKAN_HPP_CONSTEXPR BufferViewCreateInfo( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - BufferViewCreateInfo( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - BufferViewCreateInfo & operator=( VkBufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - BufferViewCreateInfo & operator=( BufferViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( BufferViewCreateInfo ) ); - return *this; - } - - BufferViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - BufferViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - BufferViewCreateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - BufferViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - BufferViewCreateInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - BufferViewCreateInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT - { - range = range_; - return *this; - } - - - operator VkBufferViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkBufferViewCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferViewCreateInfo const& ) const = default; -#else - bool operator==( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( buffer == rhs.buffer ) - && ( format == rhs.format ) - && ( offset == rhs.offset ) - && ( range == rhs.range ); - } - - bool operator!=( BufferViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eBufferViewCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferViewCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize range = {}; - - }; - static_assert( sizeof( BufferViewCreateInfo ) == sizeof( VkBufferViewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = BufferViewCreateInfo; - }; - - struct CalibratedTimestampInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCalibratedTimestampInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT(VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice) VULKAN_HPP_NOEXCEPT - : timeDomain( timeDomain_ ) - {} - - VULKAN_HPP_CONSTEXPR CalibratedTimestampInfoEXT( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CalibratedTimestampInfoEXT( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CalibratedTimestampInfoEXT & operator=( VkCalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CalibratedTimestampInfoEXT & operator=( CalibratedTimestampInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CalibratedTimestampInfoEXT ) ); - return *this; - } - - CalibratedTimestampInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CalibratedTimestampInfoEXT & setTimeDomain( VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain_ ) VULKAN_HPP_NOEXCEPT - { - timeDomain = timeDomain_; - return *this; - } - - - operator VkCalibratedTimestampInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCalibratedTimestampInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CalibratedTimestampInfoEXT const& ) const = default; -#else - bool operator==( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( timeDomain == rhs.timeDomain ); - } - - bool operator!=( CalibratedTimestampInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCalibratedTimestampInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::TimeDomainEXT timeDomain = VULKAN_HPP_NAMESPACE::TimeDomainEXT::eDevice; - - }; - static_assert( sizeof( CalibratedTimestampInfoEXT ) == sizeof( VkCalibratedTimestampInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CalibratedTimestampInfoEXT; - }; - - struct CheckpointDataNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCheckpointDataNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CheckpointDataNV(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe, void* pCheckpointMarker_ = {}) VULKAN_HPP_NOEXCEPT - : stage( stage_ ), pCheckpointMarker( pCheckpointMarker_ ) - {} - - VULKAN_HPP_CONSTEXPR CheckpointDataNV( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CheckpointDataNV( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CheckpointDataNV & operator=( VkCheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CheckpointDataNV & operator=( CheckpointDataNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CheckpointDataNV ) ); - return *this; - } - - - operator VkCheckpointDataNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCheckpointDataNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CheckpointDataNV const& ) const = default; -#else - bool operator==( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stage == rhs.stage ) - && ( pCheckpointMarker == rhs.pCheckpointMarker ); - } - - bool operator!=( CheckpointDataNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCheckpointDataNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlagBits stage = VULKAN_HPP_NAMESPACE::PipelineStageFlagBits::eTopOfPipe; - void* pCheckpointMarker = {}; - - }; - static_assert( sizeof( CheckpointDataNV ) == sizeof( VkCheckpointDataNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CheckpointDataNV; - }; - - union ClearColorValue - { - ClearColorValue( VULKAN_HPP_NAMESPACE::ClearColorValue const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) ); - } - - ClearColorValue( const std::array& float32_ = {} ) - : float32( float32_ ) - {} - - ClearColorValue( const std::array& int32_ ) - : int32( int32_ ) - {} - - ClearColorValue( const std::array& uint32_ ) - : uint32( uint32_ ) - {} - - ClearColorValue & setFloat32( std::array float32_ ) VULKAN_HPP_NOEXCEPT - { - float32 = float32_; - return *this; - } - - ClearColorValue & setInt32( std::array int32_ ) VULKAN_HPP_NOEXCEPT - { - int32 = int32_; - return *this; - } - - ClearColorValue & setUint32( std::array uint32_ ) VULKAN_HPP_NOEXCEPT - { - uint32 = uint32_; - return *this; - } - - VULKAN_HPP_NAMESPACE::ClearColorValue & operator=( VULKAN_HPP_NAMESPACE::ClearColorValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearColorValue ) ); - return *this; - } - - operator VkClearColorValue const&() const - { - return *reinterpret_cast(this); - } - - operator VkClearColorValue &() - { - return *reinterpret_cast(this); - } - - VULKAN_HPP_NAMESPACE::ArrayWrapper1D float32; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D int32; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D uint32; - }; - - struct ClearDepthStencilValue - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ClearDepthStencilValue(float depth_ = {}, uint32_t stencil_ = {}) VULKAN_HPP_NOEXCEPT - : depth( depth_ ), stencil( stencil_ ) - {} - - VULKAN_HPP_CONSTEXPR ClearDepthStencilValue( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearDepthStencilValue( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ClearDepthStencilValue & operator=( VkClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ClearDepthStencilValue & operator=( ClearDepthStencilValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ClearDepthStencilValue ) ); - return *this; - } - - ClearDepthStencilValue & setDepth( float depth_ ) VULKAN_HPP_NOEXCEPT - { - depth = depth_; - return *this; - } - - ClearDepthStencilValue & setStencil( uint32_t stencil_ ) VULKAN_HPP_NOEXCEPT - { - stencil = stencil_; - return *this; - } - - - operator VkClearDepthStencilValue const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkClearDepthStencilValue &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ClearDepthStencilValue const& ) const = default; -#else - bool operator==( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( depth == rhs.depth ) - && ( stencil == rhs.stencil ); - } - - bool operator!=( ClearDepthStencilValue const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float depth = {}; - uint32_t stencil = {}; - - }; - static_assert( sizeof( ClearDepthStencilValue ) == sizeof( VkClearDepthStencilValue ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - union ClearValue - { - ClearValue( VULKAN_HPP_NAMESPACE::ClearValue const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) ); - } - - ClearValue( VULKAN_HPP_NAMESPACE::ClearColorValue color_ = {} ) - : color( color_ ) - {} - - ClearValue( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil_ ) - : depthStencil( depthStencil_ ) - {} - - ClearValue & setColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & color_ ) VULKAN_HPP_NOEXCEPT - { - color = color_; - return *this; - } - - ClearValue & setDepthStencil( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & depthStencil_ ) VULKAN_HPP_NOEXCEPT - { - depthStencil = depthStencil_; - return *this; - } - - VULKAN_HPP_NAMESPACE::ClearValue & operator=( VULKAN_HPP_NAMESPACE::ClearValue const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::ClearValue ) ); - return *this; - } - - operator VkClearValue const&() const - { - return *reinterpret_cast(this); - } - - operator VkClearValue &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::ClearColorValue color; - VULKAN_HPP_NAMESPACE::ClearDepthStencilValue depthStencil; -#else - VkClearColorValue color; - VkClearDepthStencilValue depthStencil; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct ClearAttachment - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - ClearAttachment(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t colorAttachment_ = {}, VULKAN_HPP_NAMESPACE::ClearValue clearValue_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), colorAttachment( colorAttachment_ ), clearValue( clearValue_ ) - {} - - ClearAttachment( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearAttachment( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ClearAttachment & operator=( VkClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ClearAttachment & operator=( ClearAttachment const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ClearAttachment ) ); - return *this; - } - - ClearAttachment & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ClearAttachment & setColorAttachment( uint32_t colorAttachment_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachment = colorAttachment_; - return *this; - } - - ClearAttachment & setClearValue( VULKAN_HPP_NAMESPACE::ClearValue const & clearValue_ ) VULKAN_HPP_NOEXCEPT - { - clearValue = clearValue_; - return *this; - } - - - operator VkClearAttachment const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkClearAttachment &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t colorAttachment = {}; - VULKAN_HPP_NAMESPACE::ClearValue clearValue = {}; - - }; - static_assert( sizeof( ClearAttachment ) == sizeof( VkClearAttachment ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ClearRect - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ClearRect(VULKAN_HPP_NAMESPACE::Rect2D rect_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT - : rect( rect_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ ) - {} - - VULKAN_HPP_CONSTEXPR ClearRect( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ClearRect( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ClearRect & operator=( VkClearRect const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ClearRect & operator=( ClearRect const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ClearRect ) ); - return *this; - } - - ClearRect & setRect( VULKAN_HPP_NAMESPACE::Rect2D const & rect_ ) VULKAN_HPP_NOEXCEPT - { - rect = rect_; - return *this; - } - - ClearRect & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - baseArrayLayer = baseArrayLayer_; - return *this; - } - - ClearRect & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - - operator VkClearRect const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkClearRect &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ClearRect const& ) const = default; -#else - bool operator==( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( rect == rhs.rect ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); - } - - bool operator!=( ClearRect const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Rect2D rect = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; - - }; - static_assert( sizeof( ClearRect ) == sizeof( VkClearRect ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct CoarseSampleLocationNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV(uint32_t pixelX_ = {}, uint32_t pixelY_ = {}, uint32_t sample_ = {}) VULKAN_HPP_NOEXCEPT - : pixelX( pixelX_ ), pixelY( pixelY_ ), sample( sample_ ) - {} - - VULKAN_HPP_CONSTEXPR CoarseSampleLocationNV( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CoarseSampleLocationNV( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CoarseSampleLocationNV & operator=( VkCoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CoarseSampleLocationNV & operator=( CoarseSampleLocationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CoarseSampleLocationNV ) ); - return *this; - } - - CoarseSampleLocationNV & setPixelX( uint32_t pixelX_ ) VULKAN_HPP_NOEXCEPT - { - pixelX = pixelX_; - return *this; - } - - CoarseSampleLocationNV & setPixelY( uint32_t pixelY_ ) VULKAN_HPP_NOEXCEPT - { - pixelY = pixelY_; - return *this; - } - - CoarseSampleLocationNV & setSample( uint32_t sample_ ) VULKAN_HPP_NOEXCEPT - { - sample = sample_; - return *this; - } - - - operator VkCoarseSampleLocationNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCoarseSampleLocationNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CoarseSampleLocationNV const& ) const = default; -#else - bool operator==( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( pixelX == rhs.pixelX ) - && ( pixelY == rhs.pixelY ) - && ( sample == rhs.sample ); - } - - bool operator!=( CoarseSampleLocationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t pixelX = {}; - uint32_t pixelY = {}; - uint32_t sample = {}; - - }; - static_assert( sizeof( CoarseSampleLocationNV ) == sizeof( VkCoarseSampleLocationNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct CoarseSampleOrderCustomNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV(VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations, uint32_t sampleCount_ = {}, uint32_t sampleLocationCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( sampleLocationCount_ ), pSampleLocations( pSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR CoarseSampleOrderCustomNV( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CoarseSampleOrderCustomNV( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CoarseSampleOrderCustomNV( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_, uint32_t sampleCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) - : shadingRate( shadingRate_ ), sampleCount( sampleCount_ ), sampleLocationCount( static_cast( sampleLocations_.size() ) ), pSampleLocations( sampleLocations_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CoarseSampleOrderCustomNV & operator=( VkCoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CoarseSampleOrderCustomNV & operator=( CoarseSampleOrderCustomNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CoarseSampleOrderCustomNV ) ); - return *this; - } - - CoarseSampleOrderCustomNV & setShadingRate( VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate_ ) VULKAN_HPP_NOEXCEPT - { - shadingRate = shadingRate_; - return *this; - } - - CoarseSampleOrderCustomNV & setSampleCount( uint32_t sampleCount_ ) VULKAN_HPP_NOEXCEPT - { - sampleCount = sampleCount_; - return *this; - } - - CoarseSampleOrderCustomNV & setSampleLocationCount( uint32_t sampleLocationCount_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationCount = sampleLocationCount_; - return *this; - } - - CoarseSampleOrderCustomNV & setPSampleLocations( const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pSampleLocations = pSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CoarseSampleOrderCustomNV & setSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & sampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationCount = static_cast( sampleLocations_.size() ); - pSampleLocations = sampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCoarseSampleOrderCustomNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCoarseSampleOrderCustomNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CoarseSampleOrderCustomNV const& ) const = default; -#else - bool operator==( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( shadingRate == rhs.shadingRate ) - && ( sampleCount == rhs.sampleCount ) - && ( sampleLocationCount == rhs.sampleLocationCount ) - && ( pSampleLocations == rhs.pSampleLocations ); - } - - bool operator!=( CoarseSampleOrderCustomNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV shadingRate = VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV::eNoInvocations; - uint32_t sampleCount = {}; - uint32_t sampleLocationCount = {}; - const VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV* pSampleLocations = {}; - - }; - static_assert( sizeof( CoarseSampleOrderCustomNV ) == sizeof( VkCoarseSampleOrderCustomNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class CommandPool - { - public: - using CType = VkCommandPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandPool; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandPool; - - public: - VULKAN_HPP_CONSTEXPR CommandPool() VULKAN_HPP_NOEXCEPT - : m_commandPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR CommandPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_commandPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT CommandPool( VkCommandPool commandPool ) VULKAN_HPP_NOEXCEPT - : m_commandPool( commandPool ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - CommandPool & operator=(VkCommandPool commandPool) VULKAN_HPP_NOEXCEPT - { - m_commandPool = commandPool; - return *this; - } -#endif - - CommandPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_commandPool = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandPool const& ) const = default; -#else - bool operator==( CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandPool == rhs.m_commandPool; - } - - bool operator!=(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandPool != rhs.m_commandPool; - } - - bool operator<(CommandPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandPool < rhs.m_commandPool; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandPool() const VULKAN_HPP_NOEXCEPT - { - return m_commandPool; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_commandPool != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_commandPool == VK_NULL_HANDLE; - } - - private: - VkCommandPool m_commandPool; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandPool ) == sizeof( VkCommandPool ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::CommandPool; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandPool; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandPool; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct CommandBufferAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo(VULKAN_HPP_NAMESPACE::CommandPool commandPool_ = {}, VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary, uint32_t commandBufferCount_ = {}) VULKAN_HPP_NOEXCEPT - : commandPool( commandPool_ ), level( level_ ), commandBufferCount( commandBufferCount_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferAllocateInfo( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferAllocateInfo( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CommandBufferAllocateInfo & operator=( VkCommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferAllocateInfo & operator=( CommandBufferAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CommandBufferAllocateInfo ) ); - return *this; - } - - CommandBufferAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferAllocateInfo & setCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool_ ) VULKAN_HPP_NOEXCEPT - { - commandPool = commandPool_; - return *this; - } - - CommandBufferAllocateInfo & setLevel( VULKAN_HPP_NAMESPACE::CommandBufferLevel level_ ) VULKAN_HPP_NOEXCEPT - { - level = level_; - return *this; - } - - CommandBufferAllocateInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = commandBufferCount_; - return *this; - } - - - operator VkCommandBufferAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferAllocateInfo const& ) const = default; -#else - bool operator==( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( commandPool == rhs.commandPool ) - && ( level == rhs.level ) - && ( commandBufferCount == rhs.commandBufferCount ); - } - - bool operator!=( CommandBufferAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandPool commandPool = {}; - VULKAN_HPP_NAMESPACE::CommandBufferLevel level = VULKAN_HPP_NAMESPACE::CommandBufferLevel::ePrimary; - uint32_t commandBufferCount = {}; - - }; - static_assert( sizeof( CommandBufferAllocateInfo ) == sizeof( VkCommandBufferAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferAllocateInfo; - }; - - class RenderPass - { - public: - using CType = VkRenderPass; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eRenderPass; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eRenderPass; - - public: - VULKAN_HPP_CONSTEXPR RenderPass() VULKAN_HPP_NOEXCEPT - : m_renderPass(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR RenderPass( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_renderPass(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT RenderPass( VkRenderPass renderPass ) VULKAN_HPP_NOEXCEPT - : m_renderPass( renderPass ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - RenderPass & operator=(VkRenderPass renderPass) VULKAN_HPP_NOEXCEPT - { - m_renderPass = renderPass; - return *this; - } -#endif - - RenderPass & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_renderPass = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPass const& ) const = default; -#else - bool operator==( RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_renderPass == rhs.m_renderPass; - } - - bool operator!=(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_renderPass != rhs.m_renderPass; - } - - bool operator<(RenderPass const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_renderPass < rhs.m_renderPass; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkRenderPass() const VULKAN_HPP_NOEXCEPT - { - return m_renderPass; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_renderPass != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_renderPass == VK_NULL_HANDLE; - } - - private: - VkRenderPass m_renderPass; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::RenderPass ) == sizeof( VkRenderPass ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::RenderPass; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::RenderPass; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::RenderPass; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Framebuffer - { - public: - using CType = VkFramebuffer; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eFramebuffer; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eFramebuffer; - - public: - VULKAN_HPP_CONSTEXPR Framebuffer() VULKAN_HPP_NOEXCEPT - : m_framebuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Framebuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_framebuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Framebuffer( VkFramebuffer framebuffer ) VULKAN_HPP_NOEXCEPT - : m_framebuffer( framebuffer ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Framebuffer & operator=(VkFramebuffer framebuffer) VULKAN_HPP_NOEXCEPT - { - m_framebuffer = framebuffer; - return *this; - } -#endif - - Framebuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_framebuffer = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Framebuffer const& ) const = default; -#else - bool operator==( Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer == rhs.m_framebuffer; - } - - bool operator!=(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer != rhs.m_framebuffer; - } - - bool operator<(Framebuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer < rhs.m_framebuffer; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkFramebuffer() const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_framebuffer == VK_NULL_HANDLE; - } - - private: - VkFramebuffer m_framebuffer; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Framebuffer ) == sizeof( VkFramebuffer ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Framebuffer; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Framebuffer; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Framebuffer; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct CommandBufferInheritanceInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ = {}, VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}) VULKAN_HPP_NOEXCEPT - : renderPass( renderPass_ ), subpass( subpass_ ), framebuffer( framebuffer_ ), occlusionQueryEnable( occlusionQueryEnable_ ), queryFlags( queryFlags_ ), pipelineStatistics( pipelineStatistics_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceInfo( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceInfo( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CommandBufferInheritanceInfo & operator=( VkCommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferInheritanceInfo & operator=( CommandBufferInheritanceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CommandBufferInheritanceInfo ) ); - return *this; - } - - CommandBufferInheritanceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferInheritanceInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - CommandBufferInheritanceInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT - { - subpass = subpass_; - return *this; - } - - CommandBufferInheritanceInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT - { - framebuffer = framebuffer_; - return *this; - } - - CommandBufferInheritanceInfo & setOcclusionQueryEnable( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable_ ) VULKAN_HPP_NOEXCEPT - { - occlusionQueryEnable = occlusionQueryEnable_; - return *this; - } - - CommandBufferInheritanceInfo & setQueryFlags( VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags_ ) VULKAN_HPP_NOEXCEPT - { - queryFlags = queryFlags_; - return *this; - } - - CommandBufferInheritanceInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStatistics = pipelineStatistics_; - return *this; - } - - - operator VkCommandBufferInheritanceInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferInheritanceInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferInheritanceInfo const& ) const = default; -#else - bool operator==( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( renderPass == rhs.renderPass ) - && ( subpass == rhs.subpass ) - && ( framebuffer == rhs.framebuffer ) - && ( occlusionQueryEnable == rhs.occlusionQueryEnable ) - && ( queryFlags == rhs.queryFlags ) - && ( pipelineStatistics == rhs.pipelineStatistics ); - } - - bool operator!=( CommandBufferInheritanceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t subpass = {}; - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryEnable = {}; - VULKAN_HPP_NAMESPACE::QueryControlFlags queryFlags = {}; - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; - - }; - static_assert( sizeof( CommandBufferInheritanceInfo ) == sizeof( VkCommandBufferInheritanceInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferInheritanceInfo; - }; - - struct CommandBufferBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo(VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pInheritanceInfo( pInheritanceInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferBeginInfo( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferBeginInfo( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CommandBufferBeginInfo & operator=( VkCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferBeginInfo & operator=( CommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CommandBufferBeginInfo ) ); - return *this; - } - - CommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferBeginInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - CommandBufferBeginInfo & setPInheritanceInfo( const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo_ ) VULKAN_HPP_NOEXCEPT - { - pInheritanceInfo = pInheritanceInfo_; - return *this; - } - - - operator VkCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferBeginInfo const& ) const = default; -#else - bool operator==( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pInheritanceInfo == rhs.pInheritanceInfo ); - } - - bool operator!=( CommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandBufferUsageFlags flags = {}; - const VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo* pInheritanceInfo = {}; - - }; - static_assert( sizeof( CommandBufferBeginInfo ) == sizeof( VkCommandBufferBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferBeginInfo; - }; - - struct CommandBufferInheritanceConditionalRenderingInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ = {}) VULKAN_HPP_NOEXCEPT - : conditionalRenderingEnable( conditionalRenderingEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceConditionalRenderingInfoEXT( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceConditionalRenderingInfoEXT( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( VkCommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferInheritanceConditionalRenderingInfoEXT & operator=( CommandBufferInheritanceConditionalRenderingInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) ); - return *this; - } - - CommandBufferInheritanceConditionalRenderingInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferInheritanceConditionalRenderingInfoEXT & setConditionalRenderingEnable( VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable_ ) VULKAN_HPP_NOEXCEPT - { - conditionalRenderingEnable = conditionalRenderingEnable_; - return *this; - } - - - operator VkCommandBufferInheritanceConditionalRenderingInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferInheritanceConditionalRenderingInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferInheritanceConditionalRenderingInfoEXT const& ) const = default; -#else - bool operator==( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conditionalRenderingEnable == rhs.conditionalRenderingEnable ); - } - - bool operator!=( CommandBufferInheritanceConditionalRenderingInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceConditionalRenderingInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 conditionalRenderingEnable = {}; - - }; - static_assert( sizeof( CommandBufferInheritanceConditionalRenderingInfoEXT ) == sizeof( VkCommandBufferInheritanceConditionalRenderingInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferInheritanceConditionalRenderingInfoEXT; - }; - - struct CommandBufferInheritanceRenderPassTransformInfoQCOM - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}) VULKAN_HPP_NOEXCEPT - : transform( transform_ ), renderArea( renderArea_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandBufferInheritanceRenderPassTransformInfoQCOM( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandBufferInheritanceRenderPassTransformInfoQCOM( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( VkCommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandBufferInheritanceRenderPassTransformInfoQCOM & operator=( CommandBufferInheritanceRenderPassTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) ); - return *this; - } - - CommandBufferInheritanceRenderPassTransformInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandBufferInheritanceRenderPassTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - CommandBufferInheritanceRenderPassTransformInfoQCOM & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT - { - renderArea = renderArea_; - return *this; - } - - - operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandBufferInheritanceRenderPassTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBufferInheritanceRenderPassTransformInfoQCOM const& ) const = default; -#else - bool operator==( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transform == rhs.transform ) - && ( renderArea == rhs.renderArea ); - } - - bool operator!=( CommandBufferInheritanceRenderPassTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandBufferInheritanceRenderPassTransformInfoQCOM; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::Rect2D renderArea = {}; - - }; - static_assert( sizeof( CommandBufferInheritanceRenderPassTransformInfoQCOM ) == sizeof( VkCommandBufferInheritanceRenderPassTransformInfoQCOM ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandBufferInheritanceRenderPassTransformInfoQCOM; - }; - - struct CommandPoolCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCommandPoolCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo(VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR CommandPoolCreateInfo( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CommandPoolCreateInfo( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CommandPoolCreateInfo & operator=( VkCommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CommandPoolCreateInfo & operator=( CommandPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CommandPoolCreateInfo ) ); - return *this; - } - - CommandPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CommandPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - CommandPoolCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - - operator VkCommandPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCommandPoolCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandPoolCreateInfo const& ) const = default; -#else - bool operator==( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ); - } - - bool operator!=( CommandPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCommandPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CommandPoolCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - - }; - static_assert( sizeof( CommandPoolCreateInfo ) == sizeof( VkCommandPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CommandPoolCreateInfo; - }; - - class ShaderModule - { - public: - using CType = VkShaderModule; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eShaderModule; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eShaderModule; - - public: - VULKAN_HPP_CONSTEXPR ShaderModule() VULKAN_HPP_NOEXCEPT - : m_shaderModule(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR ShaderModule( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_shaderModule(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT ShaderModule( VkShaderModule shaderModule ) VULKAN_HPP_NOEXCEPT - : m_shaderModule( shaderModule ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ShaderModule & operator=(VkShaderModule shaderModule) VULKAN_HPP_NOEXCEPT - { - m_shaderModule = shaderModule; - return *this; - } -#endif - - ShaderModule & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_shaderModule = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderModule const& ) const = default; -#else - bool operator==( ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule == rhs.m_shaderModule; - } - - bool operator!=(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule != rhs.m_shaderModule; - } - - bool operator<(ShaderModule const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule < rhs.m_shaderModule; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkShaderModule() const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_shaderModule == VK_NULL_HANDLE; - } - - private: - VkShaderModule m_shaderModule; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::ShaderModule ) == sizeof( VkShaderModule ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::ShaderModule; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ShaderModule; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ShaderModule; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct SpecializationMapEntry - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SpecializationMapEntry(uint32_t constantID_ = {}, uint32_t offset_ = {}, size_t size_ = {}) VULKAN_HPP_NOEXCEPT - : constantID( constantID_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR SpecializationMapEntry( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SpecializationMapEntry( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SpecializationMapEntry & operator=( VkSpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SpecializationMapEntry & operator=( SpecializationMapEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SpecializationMapEntry ) ); - return *this; - } - - SpecializationMapEntry & setConstantID( uint32_t constantID_ ) VULKAN_HPP_NOEXCEPT - { - constantID = constantID_; - return *this; - } - - SpecializationMapEntry & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - SpecializationMapEntry & setSize( size_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkSpecializationMapEntry const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSpecializationMapEntry &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SpecializationMapEntry const& ) const = default; -#else - bool operator==( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( constantID == rhs.constantID ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( SpecializationMapEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t constantID = {}; - uint32_t offset = {}; - size_t size = {}; - - }; - static_assert( sizeof( SpecializationMapEntry ) == sizeof( VkSpecializationMapEntry ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SpecializationInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SpecializationInfo(uint32_t mapEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ = {}, size_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT - : mapEntryCount( mapEntryCount_ ), pMapEntries( pMapEntries_ ), dataSize( dataSize_ ), pData( pData_ ) - {} - - VULKAN_HPP_CONSTEXPR SpecializationInfo( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SpecializationInfo( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - SpecializationInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mapEntries_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ = {} ) - : mapEntryCount( static_cast( mapEntries_.size() ) ), pMapEntries( mapEntries_.data() ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SpecializationInfo & operator=( VkSpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SpecializationInfo & operator=( SpecializationInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SpecializationInfo ) ); - return *this; - } - - SpecializationInfo & setMapEntryCount( uint32_t mapEntryCount_ ) VULKAN_HPP_NOEXCEPT - { - mapEntryCount = mapEntryCount_; - return *this; - } - - SpecializationInfo & setPMapEntries( const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries_ ) VULKAN_HPP_NOEXCEPT - { - pMapEntries = pMapEntries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SpecializationInfo & setMapEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mapEntries_ ) VULKAN_HPP_NOEXCEPT - { - mapEntryCount = static_cast( mapEntries_.size() ); - pMapEntries = mapEntries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SpecializationInfo & setDataSize( size_t dataSize_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = dataSize_; - return *this; - } - - SpecializationInfo & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT - { - pData = pData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - SpecializationInfo & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = data_.size() * sizeof(T); - pData = data_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSpecializationInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSpecializationInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SpecializationInfo const& ) const = default; -#else - bool operator==( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( mapEntryCount == rhs.mapEntryCount ) - && ( pMapEntries == rhs.pMapEntries ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); - } - - bool operator!=( SpecializationInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t mapEntryCount = {}; - const VULKAN_HPP_NAMESPACE::SpecializationMapEntry* pMapEntries = {}; - size_t dataSize = {}; - const void* pData = {}; - - }; - static_assert( sizeof( SpecializationInfo ) == sizeof( VkSpecializationInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineShaderStageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo(VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex, VULKAN_HPP_NAMESPACE::ShaderModule module_ = {}, const char* pName_ = {}, const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stage( stage_ ), module( module_ ), pName( pName_ ), pSpecializationInfo( pSpecializationInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineShaderStageCreateInfo( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineShaderStageCreateInfo( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineShaderStageCreateInfo & operator=( VkPipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineShaderStageCreateInfo & operator=( PipelineShaderStageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineShaderStageCreateInfo ) ); - return *this; - } - - PipelineShaderStageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineShaderStageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineShaderStageCreateInfo & setStage( VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage_ ) VULKAN_HPP_NOEXCEPT - { - stage = stage_; - return *this; - } - - PipelineShaderStageCreateInfo & setModule( VULKAN_HPP_NAMESPACE::ShaderModule module_ ) VULKAN_HPP_NOEXCEPT - { - module = module_; - return *this; - } - - PipelineShaderStageCreateInfo & setPName( const char* pName_ ) VULKAN_HPP_NOEXCEPT - { - pName = pName_; - return *this; - } - - PipelineShaderStageCreateInfo & setPSpecializationInfo( const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo_ ) VULKAN_HPP_NOEXCEPT - { - pSpecializationInfo = pSpecializationInfo_; - return *this; - } - - - operator VkPipelineShaderStageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineShaderStageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineShaderStageCreateInfo const& ) const = default; -#else - bool operator==( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stage == rhs.stage ) - && ( module == rhs.module ) - && ( pName == rhs.pName ) - && ( pSpecializationInfo == rhs.pSpecializationInfo ); - } - - bool operator!=( PipelineShaderStageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlagBits stage = VULKAN_HPP_NAMESPACE::ShaderStageFlagBits::eVertex; - VULKAN_HPP_NAMESPACE::ShaderModule module = {}; - const char* pName = {}; - const VULKAN_HPP_NAMESPACE::SpecializationInfo* pSpecializationInfo = {}; - - }; - static_assert( sizeof( PipelineShaderStageCreateInfo ) == sizeof( VkPipelineShaderStageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineShaderStageCreateInfo; - }; - - class PipelineLayout - { - public: - using CType = VkPipelineLayout; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineLayout; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineLayout; - - public: - VULKAN_HPP_CONSTEXPR PipelineLayout() VULKAN_HPP_NOEXCEPT - : m_pipelineLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PipelineLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipelineLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PipelineLayout( VkPipelineLayout pipelineLayout ) VULKAN_HPP_NOEXCEPT - : m_pipelineLayout( pipelineLayout ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PipelineLayout & operator=(VkPipelineLayout pipelineLayout) VULKAN_HPP_NOEXCEPT - { - m_pipelineLayout = pipelineLayout; - return *this; - } -#endif - - PipelineLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_pipelineLayout = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineLayout const& ) const = default; -#else - bool operator==( PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout == rhs.m_pipelineLayout; - } - - bool operator!=(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout != rhs.m_pipelineLayout; - } - - bool operator<(PipelineLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout < rhs.m_pipelineLayout; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineLayout() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineLayout == VK_NULL_HANDLE; - } - - private: - VkPipelineLayout m_pipelineLayout; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineLayout ) == sizeof( VkPipelineLayout ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PipelineLayout; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineLayout; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineLayout; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class Pipeline - { - public: - using CType = VkPipeline; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipeline; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipeline; - - public: - VULKAN_HPP_CONSTEXPR Pipeline() VULKAN_HPP_NOEXCEPT - : m_pipeline(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Pipeline( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipeline(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Pipeline( VkPipeline pipeline ) VULKAN_HPP_NOEXCEPT - : m_pipeline( pipeline ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Pipeline & operator=(VkPipeline pipeline) VULKAN_HPP_NOEXCEPT - { - m_pipeline = pipeline; - return *this; - } -#endif - - Pipeline & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_pipeline = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Pipeline const& ) const = default; -#else - bool operator==( Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipeline == rhs.m_pipeline; - } - - bool operator!=(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipeline != rhs.m_pipeline; - } - - bool operator<(Pipeline const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipeline < rhs.m_pipeline; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipeline() const VULKAN_HPP_NOEXCEPT - { - return m_pipeline; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_pipeline != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_pipeline == VK_NULL_HANDLE; - } - - private: - VkPipeline m_pipeline; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Pipeline ) == sizeof( VkPipeline ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Pipeline; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Pipeline; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Pipeline; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct ComputePipelineCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eComputePipelineCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stage( stage_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR ComputePipelineCreateInfo( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ComputePipelineCreateInfo( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ComputePipelineCreateInfo & operator=( VkComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ComputePipelineCreateInfo & operator=( ComputePipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ComputePipelineCreateInfo ) ); - return *this; - } - - ComputePipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ComputePipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ComputePipelineCreateInfo & setStage( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & stage_ ) VULKAN_HPP_NOEXCEPT - { - stage = stage_; - return *this; - } - - ComputePipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - ComputePipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - ComputePipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkComputePipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkComputePipelineCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ComputePipelineCreateInfo const& ) const = default; -#else - bool operator==( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stage == rhs.stage ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( ComputePipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eComputePipelineCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo stage = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( ComputePipelineCreateInfo ) == sizeof( VkComputePipelineCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ComputePipelineCreateInfo; - }; - - struct ConditionalRenderingBeginInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eConditionalRenderingBeginInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), offset( offset_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR ConditionalRenderingBeginInfoEXT( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ConditionalRenderingBeginInfoEXT( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ConditionalRenderingBeginInfoEXT & operator=( VkConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ConditionalRenderingBeginInfoEXT & operator=( ConditionalRenderingBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ConditionalRenderingBeginInfoEXT ) ); - return *this; - } - - ConditionalRenderingBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ConditionalRenderingBeginInfoEXT & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - ConditionalRenderingBeginInfoEXT & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - ConditionalRenderingBeginInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkConditionalRenderingBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkConditionalRenderingBeginInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ConditionalRenderingBeginInfoEXT const& ) const = default; -#else - bool operator==( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( flags == rhs.flags ); - } - - bool operator!=( ConditionalRenderingBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eConditionalRenderingBeginInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::ConditionalRenderingFlagsEXT flags = {}; - - }; - static_assert( sizeof( ConditionalRenderingBeginInfoEXT ) == sizeof( VkConditionalRenderingBeginInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ConditionalRenderingBeginInfoEXT; - }; - - struct ConformanceVersion - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ConformanceVersion(uint8_t major_ = {}, uint8_t minor_ = {}, uint8_t subminor_ = {}, uint8_t patch_ = {}) VULKAN_HPP_NOEXCEPT - : major( major_ ), minor( minor_ ), subminor( subminor_ ), patch( patch_ ) - {} - - VULKAN_HPP_CONSTEXPR ConformanceVersion( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ConformanceVersion( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ConformanceVersion & operator=( VkConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ConformanceVersion & operator=( ConformanceVersion const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ConformanceVersion ) ); - return *this; - } - - ConformanceVersion & setMajor( uint8_t major_ ) VULKAN_HPP_NOEXCEPT - { - major = major_; - return *this; - } - - ConformanceVersion & setMinor( uint8_t minor_ ) VULKAN_HPP_NOEXCEPT - { - minor = minor_; - return *this; - } - - ConformanceVersion & setSubminor( uint8_t subminor_ ) VULKAN_HPP_NOEXCEPT - { - subminor = subminor_; - return *this; - } - - ConformanceVersion & setPatch( uint8_t patch_ ) VULKAN_HPP_NOEXCEPT - { - patch = patch_; - return *this; - } - - - operator VkConformanceVersion const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkConformanceVersion &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ConformanceVersion const& ) const = default; -#else - bool operator==( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( major == rhs.major ) - && ( minor == rhs.minor ) - && ( subminor == rhs.subminor ) - && ( patch == rhs.patch ); - } - - bool operator!=( ConformanceVersion const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint8_t major = {}; - uint8_t minor = {}; - uint8_t subminor = {}; - uint8_t patch = {}; - - }; - static_assert( sizeof( ConformanceVersion ) == sizeof( VkConformanceVersion ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using ConformanceVersionKHR = ConformanceVersion; - - struct CooperativeMatrixPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCooperativeMatrixPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV(uint32_t MSize_ = {}, uint32_t NSize_ = {}, uint32_t KSize_ = {}, VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16, VULKAN_HPP_NAMESPACE::ScopeNV scope_ = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice) VULKAN_HPP_NOEXCEPT - : MSize( MSize_ ), NSize( NSize_ ), KSize( KSize_ ), AType( AType_ ), BType( BType_ ), CType( CType_ ), DType( DType_ ), scope( scope_ ) - {} - - VULKAN_HPP_CONSTEXPR CooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CooperativeMatrixPropertiesNV( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CooperativeMatrixPropertiesNV & operator=( VkCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CooperativeMatrixPropertiesNV & operator=( CooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CooperativeMatrixPropertiesNV ) ); - return *this; - } - - CooperativeMatrixPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CooperativeMatrixPropertiesNV & setMSize( uint32_t MSize_ ) VULKAN_HPP_NOEXCEPT - { - MSize = MSize_; - return *this; - } - - CooperativeMatrixPropertiesNV & setNSize( uint32_t NSize_ ) VULKAN_HPP_NOEXCEPT - { - NSize = NSize_; - return *this; - } - - CooperativeMatrixPropertiesNV & setKSize( uint32_t KSize_ ) VULKAN_HPP_NOEXCEPT - { - KSize = KSize_; - return *this; - } - - CooperativeMatrixPropertiesNV & setAType( VULKAN_HPP_NAMESPACE::ComponentTypeNV AType_ ) VULKAN_HPP_NOEXCEPT - { - AType = AType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setBType( VULKAN_HPP_NAMESPACE::ComponentTypeNV BType_ ) VULKAN_HPP_NOEXCEPT - { - BType = BType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setCType( VULKAN_HPP_NAMESPACE::ComponentTypeNV CType_ ) VULKAN_HPP_NOEXCEPT - { - CType = CType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setDType( VULKAN_HPP_NAMESPACE::ComponentTypeNV DType_ ) VULKAN_HPP_NOEXCEPT - { - DType = DType_; - return *this; - } - - CooperativeMatrixPropertiesNV & setScope( VULKAN_HPP_NAMESPACE::ScopeNV scope_ ) VULKAN_HPP_NOEXCEPT - { - scope = scope_; - return *this; - } - - - operator VkCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CooperativeMatrixPropertiesNV const& ) const = default; -#else - bool operator==( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( MSize == rhs.MSize ) - && ( NSize == rhs.NSize ) - && ( KSize == rhs.KSize ) - && ( AType == rhs.AType ) - && ( BType == rhs.BType ) - && ( CType == rhs.CType ) - && ( DType == rhs.DType ) - && ( scope == rhs.scope ); - } - - bool operator!=( CooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCooperativeMatrixPropertiesNV; - void* pNext = {}; - uint32_t MSize = {}; - uint32_t NSize = {}; - uint32_t KSize = {}; - VULKAN_HPP_NAMESPACE::ComponentTypeNV AType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV BType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV CType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ComponentTypeNV DType = VULKAN_HPP_NAMESPACE::ComponentTypeNV::eFloat16; - VULKAN_HPP_NAMESPACE::ScopeNV scope = VULKAN_HPP_NAMESPACE::ScopeNV::eDevice; - - }; - static_assert( sizeof( CooperativeMatrixPropertiesNV ) == sizeof( VkCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CooperativeMatrixPropertiesNV; - }; - - struct CopyAccelerationStructureInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT - : src( src_ ), dst( dst_ ), mode( mode_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyAccelerationStructureInfoKHR( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyAccelerationStructureInfoKHR( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyAccelerationStructureInfoKHR & operator=( VkCopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyAccelerationStructureInfoKHR & operator=( CopyAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyAccelerationStructureInfoKHR ) ); - return *this; - } - - CopyAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT - { - src = src_; - return *this; - } - - CopyAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT - { - dst = dst_; - return *this; - } - - CopyAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkCopyAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyAccelerationStructureInfoKHR const& ) const = default; -#else - bool operator==( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( src == rhs.src ) - && ( dst == rhs.dst ) - && ( mode == rhs.mode ); - } - - bool operator!=( CopyAccelerationStructureInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {}; - VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; - - }; - static_assert( sizeof( CopyAccelerationStructureInfoKHR ) == sizeof( VkCopyAccelerationStructureInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyAccelerationStructureInfoKHR; - }; - - struct CopyAccelerationStructureToMemoryInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - CopyAccelerationStructureToMemoryInfoKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ = {}, VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT - : src( src_ ), dst( dst_ ), mode( mode_ ) - {} - - CopyAccelerationStructureToMemoryInfoKHR( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyAccelerationStructureToMemoryInfoKHR( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyAccelerationStructureToMemoryInfoKHR & operator=( VkCopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & operator=( CopyAccelerationStructureToMemoryInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyAccelerationStructureToMemoryInfoKHR ) ); - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src_ ) VULKAN_HPP_NOEXCEPT - { - src = src_; - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setDst( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR const & dst_ ) VULKAN_HPP_NOEXCEPT - { - dst = dst_; - return *this; - } - - CopyAccelerationStructureToMemoryInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkCopyAccelerationStructureToMemoryInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyAccelerationStructureToMemoryInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyAccelerationStructureToMemoryInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR src = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressKHR dst = {}; - VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; - - }; - static_assert( sizeof( CopyAccelerationStructureToMemoryInfoKHR ) == sizeof( VkCopyAccelerationStructureToMemoryInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyAccelerationStructureToMemoryInfoKHR; - }; - - struct CopyBufferInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyBufferInfo2KHR( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyBufferInfo2KHR( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcBuffer( srcBuffer_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyBufferInfo2KHR & operator=( VkCopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyBufferInfo2KHR & operator=( CopyBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyBufferInfo2KHR ) ); - return *this; - } - - CopyBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyBufferInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT - { - srcBuffer = srcBuffer_; - return *this; - } - - CopyBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT - { - dstBuffer = dstBuffer_; - return *this; - } - - CopyBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyBufferInfo2KHR const& ) const = default; -#else - bool operator==( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcBuffer == rhs.srcBuffer ) - && ( dstBuffer == rhs.dstBuffer ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {}; - VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {}; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::BufferCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyBufferInfo2KHR ) == sizeof( VkCopyBufferInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyBufferInfo2KHR; - }; - - struct CopyBufferToImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyBufferToImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR(VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ = {}, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyBufferToImageInfo2KHR( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyBufferToImageInfo2KHR( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferToImageInfo2KHR( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcBuffer( srcBuffer_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyBufferToImageInfo2KHR & operator=( VkCopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyBufferToImageInfo2KHR & operator=( CopyBufferToImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyBufferToImageInfo2KHR ) ); - return *this; - } - - CopyBufferToImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyBufferToImageInfo2KHR & setSrcBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer_ ) VULKAN_HPP_NOEXCEPT - { - srcBuffer = srcBuffer_; - return *this; - } - - CopyBufferToImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - CopyBufferToImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - CopyBufferToImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyBufferToImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyBufferToImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyBufferToImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyBufferToImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyBufferToImageInfo2KHR const& ) const = default; -#else - bool operator==( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcBuffer == rhs.srcBuffer ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyBufferToImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyBufferToImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Buffer srcBuffer = {}; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyBufferToImageInfo2KHR ) == sizeof( VkCopyBufferToImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyBufferToImageInfo2KHR; - }; - - struct CopyCommandTransformInfoQCOM - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyCommandTransformInfoQCOM; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT - : transform( transform_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyCommandTransformInfoQCOM( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyCommandTransformInfoQCOM( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyCommandTransformInfoQCOM & operator=( VkCopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyCommandTransformInfoQCOM & operator=( CopyCommandTransformInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyCommandTransformInfoQCOM ) ); - return *this; - } - - CopyCommandTransformInfoQCOM & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyCommandTransformInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - - operator VkCopyCommandTransformInfoQCOM const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyCommandTransformInfoQCOM &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyCommandTransformInfoQCOM const& ) const = default; -#else - bool operator==( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transform == rhs.transform ); - } - - bool operator!=( CopyCommandTransformInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyCommandTransformInfoQCOM; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - - }; - static_assert( sizeof( CopyCommandTransformInfoQCOM ) == sizeof( VkCopyCommandTransformInfoQCOM ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyCommandTransformInfoQCOM; - }; - - class DescriptorSet - { - public: - using CType = VkDescriptorSet; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSet; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSet; - - public: - VULKAN_HPP_CONSTEXPR DescriptorSet() VULKAN_HPP_NOEXCEPT - : m_descriptorSet(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSet( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorSet(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSet( VkDescriptorSet descriptorSet ) VULKAN_HPP_NOEXCEPT - : m_descriptorSet( descriptorSet ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorSet & operator=(VkDescriptorSet descriptorSet) VULKAN_HPP_NOEXCEPT - { - m_descriptorSet = descriptorSet; - return *this; - } -#endif - - DescriptorSet & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorSet = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSet const& ) const = default; -#else - bool operator==( DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet == rhs.m_descriptorSet; - } - - bool operator!=(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet != rhs.m_descriptorSet; - } - - bool operator<(DescriptorSet const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet < rhs.m_descriptorSet; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSet() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSet == VK_NULL_HANDLE; - } - - private: - VkDescriptorSet m_descriptorSet; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSet ) == sizeof( VkDescriptorSet ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorSet; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSet; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSet; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct CopyDescriptorSet - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyDescriptorSet; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ = {}, uint32_t srcBinding_ = {}, uint32_t srcArrayElement_ = {}, VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : srcSet( srcSet_ ), srcBinding( srcBinding_ ), srcArrayElement( srcArrayElement_ ), dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyDescriptorSet( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyDescriptorSet( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyDescriptorSet & operator=( VkCopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyDescriptorSet & operator=( CopyDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyDescriptorSet ) ); - return *this; - } - - CopyDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyDescriptorSet & setSrcSet( VULKAN_HPP_NAMESPACE::DescriptorSet srcSet_ ) VULKAN_HPP_NOEXCEPT - { - srcSet = srcSet_; - return *this; - } - - CopyDescriptorSet & setSrcBinding( uint32_t srcBinding_ ) VULKAN_HPP_NOEXCEPT - { - srcBinding = srcBinding_; - return *this; - } - - CopyDescriptorSet & setSrcArrayElement( uint32_t srcArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - srcArrayElement = srcArrayElement_; - return *this; - } - - CopyDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT - { - dstSet = dstSet_; - return *this; - } - - CopyDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT - { - dstBinding = dstBinding_; - return *this; - } - - CopyDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - dstArrayElement = dstArrayElement_; - return *this; - } - - CopyDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - - operator VkCopyDescriptorSet const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyDescriptorSet &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyDescriptorSet const& ) const = default; -#else - bool operator==( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSet == rhs.srcSet ) - && ( srcBinding == rhs.srcBinding ) - && ( srcArrayElement == rhs.srcArrayElement ) - && ( dstSet == rhs.dstSet ) - && ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ); - } - - bool operator!=( CopyDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyDescriptorSet; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet srcSet = {}; - uint32_t srcBinding = {}; - uint32_t srcArrayElement = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - - }; - static_assert( sizeof( CopyDescriptorSet ) == sizeof( VkCopyDescriptorSet ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyDescriptorSet; - }; - - struct ImageCopy2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCopy2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageCopy2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageCopy2KHR( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCopy2KHR( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageCopy2KHR & operator=( VkImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageCopy2KHR & operator=( ImageCopy2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageCopy2KHR ) ); - return *this; - } - - ImageCopy2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageCopy2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageCopy2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageCopy2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageCopy2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageCopy2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageCopy2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageCopy2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageCopy2KHR const& ) const = default; -#else - bool operator==( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageCopy2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCopy2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageCopy2KHR ) == sizeof( VkImageCopy2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageCopy2KHR; - }; - - struct CopyImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyImageInfo2KHR( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyImageInfo2KHR( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyImageInfo2KHR & operator=( VkCopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyImageInfo2KHR & operator=( CopyImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyImageInfo2KHR ) ); - return *this; - } - - CopyImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - CopyImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - CopyImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - CopyImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - CopyImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyImageInfo2KHR const& ) const = default; -#else - bool operator==( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::ImageCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyImageInfo2KHR ) == sizeof( VkCopyImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyImageInfo2KHR; - }; - - struct CopyImageToBufferInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyImageToBufferInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ = {}, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR CopyImageToBufferInfo2KHR( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyImageToBufferInfo2KHR( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageToBufferInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Buffer dstBuffer_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstBuffer( dstBuffer_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyImageToBufferInfo2KHR & operator=( VkCopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyImageToBufferInfo2KHR & operator=( CopyImageToBufferInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyImageToBufferInfo2KHR ) ); - return *this; - } - - CopyImageToBufferInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyImageToBufferInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - CopyImageToBufferInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - CopyImageToBufferInfo2KHR & setDstBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer_ ) VULKAN_HPP_NOEXCEPT - { - dstBuffer = dstBuffer_; - return *this; - } - - CopyImageToBufferInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - CopyImageToBufferInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - CopyImageToBufferInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkCopyImageToBufferInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyImageToBufferInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CopyImageToBufferInfo2KHR const& ) const = default; -#else - bool operator==( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstBuffer == rhs.dstBuffer ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( CopyImageToBufferInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyImageToBufferInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Buffer dstBuffer = {}; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::BufferImageCopy2KHR* pRegions = {}; - - }; - static_assert( sizeof( CopyImageToBufferInfo2KHR ) == sizeof( VkCopyImageToBufferInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyImageToBufferInfo2KHR; - }; - - struct CopyMemoryToAccelerationStructureInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - CopyMemoryToAccelerationStructureInfoKHR(VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src_ = {}, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ = {}, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone) VULKAN_HPP_NOEXCEPT - : src( src_ ), dst( dst_ ), mode( mode_ ) - {} - - CopyMemoryToAccelerationStructureInfoKHR( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - CopyMemoryToAccelerationStructureInfoKHR( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - CopyMemoryToAccelerationStructureInfoKHR & operator=( VkCopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & operator=( CopyMemoryToAccelerationStructureInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( CopyMemoryToAccelerationStructureInfoKHR ) ); - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setSrc( VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR const & src_ ) VULKAN_HPP_NOEXCEPT - { - src = src_; - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setDst( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst_ ) VULKAN_HPP_NOEXCEPT - { - dst = dst_; - return *this; - } - - CopyMemoryToAccelerationStructureInfoKHR & setMode( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkCopyMemoryToAccelerationStructureInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkCopyMemoryToAccelerationStructureInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eCopyMemoryToAccelerationStructureInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceOrHostAddressConstKHR src = {}; - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR dst = {}; - VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode = VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR::eClone; - - }; - static_assert( sizeof( CopyMemoryToAccelerationStructureInfoKHR ) == sizeof( VkCopyMemoryToAccelerationStructureInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = CopyMemoryToAccelerationStructureInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct D3D12FenceSubmitInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eD3D12FenceSubmitInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR(uint32_t waitSemaphoreValuesCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValuesCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreValuesCount( waitSemaphoreValuesCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValuesCount( signalSemaphoreValuesCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ ) - {} - - VULKAN_HPP_CONSTEXPR D3D12FenceSubmitInfoKHR( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - D3D12FenceSubmitInfoKHR( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - D3D12FenceSubmitInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ = {} ) - : waitSemaphoreValuesCount( static_cast( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValuesCount( static_cast( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - D3D12FenceSubmitInfoKHR & operator=( VkD3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - D3D12FenceSubmitInfoKHR & operator=( D3D12FenceSubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( D3D12FenceSubmitInfoKHR ) ); - return *this; - } - - D3D12FenceSubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - D3D12FenceSubmitInfoKHR & setWaitSemaphoreValuesCount( uint32_t waitSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValuesCount = waitSemaphoreValuesCount_; - return *this; - } - - D3D12FenceSubmitInfoKHR & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphoreValues = pWaitSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - D3D12FenceSubmitInfoKHR & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValuesCount = static_cast( waitSemaphoreValues_.size() ); - pWaitSemaphoreValues = waitSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - D3D12FenceSubmitInfoKHR & setSignalSemaphoreValuesCount( uint32_t signalSemaphoreValuesCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValuesCount = signalSemaphoreValuesCount_; - return *this; - } - - D3D12FenceSubmitInfoKHR & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphoreValues = pSignalSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - D3D12FenceSubmitInfoKHR & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValuesCount = static_cast( signalSemaphoreValues_.size() ); - pSignalSemaphoreValues = signalSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkD3D12FenceSubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkD3D12FenceSubmitInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( D3D12FenceSubmitInfoKHR const& ) const = default; -#else - bool operator==( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreValuesCount == rhs.waitSemaphoreValuesCount ) - && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) - && ( signalSemaphoreValuesCount == rhs.signalSemaphoreValuesCount ) - && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); - } - - bool operator!=( D3D12FenceSubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eD3D12FenceSubmitInfoKHR; - const void* pNext = {}; - uint32_t waitSemaphoreValuesCount = {}; - const uint64_t* pWaitSemaphoreValues = {}; - uint32_t signalSemaphoreValuesCount = {}; - const uint64_t* pSignalSemaphoreValues = {}; - - }; - static_assert( sizeof( D3D12FenceSubmitInfoKHR ) == sizeof( VkD3D12FenceSubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = D3D12FenceSubmitInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct DebugMarkerMarkerInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerMarkerInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT(const char* pMarkerName_ = {}, std::array const& color_ = {}) VULKAN_HPP_NOEXCEPT - : pMarkerName( pMarkerName_ ), color( color_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DebugMarkerMarkerInfoEXT( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerMarkerInfoEXT( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugMarkerMarkerInfoEXT & operator=( VkDebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugMarkerMarkerInfoEXT & operator=( DebugMarkerMarkerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugMarkerMarkerInfoEXT ) ); - return *this; - } - - DebugMarkerMarkerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugMarkerMarkerInfoEXT & setPMarkerName( const char* pMarkerName_ ) VULKAN_HPP_NOEXCEPT - { - pMarkerName = pMarkerName_; - return *this; - } - - DebugMarkerMarkerInfoEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT - { - color = color_; - return *this; - } - - - operator VkDebugMarkerMarkerInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugMarkerMarkerInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugMarkerMarkerInfoEXT const& ) const = default; -#else - bool operator==( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pMarkerName == rhs.pMarkerName ) - && ( color == rhs.color ); - } - - bool operator!=( DebugMarkerMarkerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerMarkerInfoEXT; - const void* pNext = {}; - const char* pMarkerName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D color = {}; - - }; - static_assert( sizeof( DebugMarkerMarkerInfoEXT ) == sizeof( VkDebugMarkerMarkerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugMarkerMarkerInfoEXT; - }; - - struct DebugMarkerObjectNameInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectNameInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), object( object_ ), pObjectName( pObjectName_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugMarkerObjectNameInfoEXT( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerObjectNameInfoEXT( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugMarkerObjectNameInfoEXT & operator=( VkDebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugMarkerObjectNameInfoEXT & operator=( DebugMarkerObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugMarkerObjectNameInfoEXT ) ); - return *this; - } - - DebugMarkerObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugMarkerObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugMarkerObjectNameInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT - { - object = object_; - return *this; - } - - DebugMarkerObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT - { - pObjectName = pObjectName_; - return *this; - } - - - operator VkDebugMarkerObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugMarkerObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugMarkerObjectNameInfoEXT const& ) const = default; -#else - bool operator==( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( object == rhs.object ) - && ( pObjectName == rhs.pObjectName ); - } - - bool operator!=( DebugMarkerObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectNameInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - uint64_t object = {}; - const char* pObjectName = {}; - - }; - static_assert( sizeof( DebugMarkerObjectNameInfoEXT ) == sizeof( VkDebugMarkerObjectNameInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugMarkerObjectNameInfoEXT; - }; - - struct DebugMarkerObjectTagInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugMarkerObjectTagInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown, uint64_t object_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void* pTag_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugMarkerObjectTagInfoEXT( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugMarkerObjectTagInfoEXT( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugMarkerObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_, uint64_t object_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) - : objectType( objectType_ ), object( object_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugMarkerObjectTagInfoEXT & operator=( VkDebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugMarkerObjectTagInfoEXT & operator=( DebugMarkerObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugMarkerObjectTagInfoEXT ) ); - return *this; - } - - DebugMarkerObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setObject( uint64_t object_ ) VULKAN_HPP_NOEXCEPT - { - object = object_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT - { - tagName = tagName_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tagSize_; - return *this; - } - - DebugMarkerObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT - { - pTag = pTag_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugMarkerObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tag_.size() * sizeof(T); - pTag = tag_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDebugMarkerObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugMarkerObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugMarkerObjectTagInfoEXT const& ) const = default; -#else - bool operator==( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( object == rhs.object ) - && ( tagName == rhs.tagName ) - && ( tagSize == rhs.tagSize ) - && ( pTag == rhs.pTag ); - } - - bool operator!=( DebugMarkerObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugMarkerObjectTagInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - uint64_t object = {}; - uint64_t tagName = {}; - size_t tagSize = {}; - const void* pTag = {}; - - }; - static_assert( sizeof( DebugMarkerObjectTagInfoEXT ) == sizeof( VkDebugMarkerObjectTagInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugMarkerObjectTagInfoEXT; - }; - - struct DebugReportCallbackCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugReportCallbackCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ = {}, PFN_vkDebugReportCallbackEXT pfnCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pfnCallback( pfnCallback_ ), pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugReportCallbackCreateInfoEXT( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugReportCallbackCreateInfoEXT( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugReportCallbackCreateInfoEXT & operator=( VkDebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugReportCallbackCreateInfoEXT & operator=( DebugReportCallbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugReportCallbackCreateInfoEXT ) ); - return *this; - } - - DebugReportCallbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugReportCallbackCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DebugReportCallbackCreateInfoEXT & setPfnCallback( PFN_vkDebugReportCallbackEXT pfnCallback_ ) VULKAN_HPP_NOEXCEPT - { - pfnCallback = pfnCallback_; - return *this; - } - - DebugReportCallbackCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkDebugReportCallbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugReportCallbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugReportCallbackCreateInfoEXT const& ) const = default; -#else - bool operator==( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pfnCallback == rhs.pfnCallback ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( DebugReportCallbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugReportCallbackCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags = {}; - PFN_vkDebugReportCallbackEXT pfnCallback = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( DebugReportCallbackCreateInfoEXT ) == sizeof( VkDebugReportCallbackCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugReportCallbackCreateInfoEXT; - }; - - struct DebugUtilsLabelEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsLabelEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT(const char* pLabelName_ = {}, std::array const& color_ = {}) VULKAN_HPP_NOEXCEPT - : pLabelName( pLabelName_ ), color( color_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsLabelEXT( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsLabelEXT( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugUtilsLabelEXT & operator=( VkDebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsLabelEXT & operator=( DebugUtilsLabelEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugUtilsLabelEXT ) ); - return *this; - } - - DebugUtilsLabelEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsLabelEXT & setPLabelName( const char* pLabelName_ ) VULKAN_HPP_NOEXCEPT - { - pLabelName = pLabelName_; - return *this; - } - - DebugUtilsLabelEXT & setColor( std::array color_ ) VULKAN_HPP_NOEXCEPT - { - color = color_; - return *this; - } - - - operator VkDebugUtilsLabelEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsLabelEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsLabelEXT const& ) const = default; -#else - bool operator==( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pLabelName == rhs.pLabelName ) - && ( color == rhs.color ); - } - - bool operator!=( DebugUtilsLabelEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsLabelEXT; - const void* pNext = {}; - const char* pLabelName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D color = {}; - - }; - static_assert( sizeof( DebugUtilsLabelEXT ) == sizeof( VkDebugUtilsLabelEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsLabelEXT; - }; - - struct DebugUtilsObjectNameInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectNameInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, const char* pObjectName_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), objectHandle( objectHandle_ ), pObjectName( pObjectName_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsObjectNameInfoEXT( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsObjectNameInfoEXT( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugUtilsObjectNameInfoEXT & operator=( VkDebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsObjectNameInfoEXT & operator=( DebugUtilsObjectNameInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugUtilsObjectNameInfoEXT ) ); - return *this; - } - - DebugUtilsObjectNameInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsObjectNameInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugUtilsObjectNameInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT - { - objectHandle = objectHandle_; - return *this; - } - - DebugUtilsObjectNameInfoEXT & setPObjectName( const char* pObjectName_ ) VULKAN_HPP_NOEXCEPT - { - pObjectName = pObjectName_; - return *this; - } - - - operator VkDebugUtilsObjectNameInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsObjectNameInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsObjectNameInfoEXT const& ) const = default; -#else - bool operator==( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( pObjectName == rhs.pObjectName ); - } - - bool operator!=( DebugUtilsObjectNameInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectNameInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - const char* pObjectName = {}; - - }; - static_assert( sizeof( DebugUtilsObjectNameInfoEXT ) == sizeof( VkDebugUtilsObjectNameInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsObjectNameInfoEXT; - }; - - struct DebugUtilsMessengerCallbackDataEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCallbackDataEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ = {}, const char* pMessageIdName_ = {}, int32_t messageIdNumber_ = {}, const char* pMessage_ = {}, uint32_t queueLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ = {}, uint32_t cmdBufLabelCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ = {}, uint32_t objectCount_ = {}, const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( queueLabelCount_ ), pQueueLabels( pQueueLabels_ ), cmdBufLabelCount( cmdBufLabelCount_ ), pCmdBufLabels( pCmdBufLabels_ ), objectCount( objectCount_ ), pObjects( pObjects_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DebugUtilsMessengerCallbackDataEXT( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsMessengerCallbackDataEXT( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_, const char* pMessageIdName_, int32_t messageIdNumber_, const char* pMessage_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueLabels_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & cmdBufLabels_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & objects_ = {} ) - : flags( flags_ ), pMessageIdName( pMessageIdName_ ), messageIdNumber( messageIdNumber_ ), pMessage( pMessage_ ), queueLabelCount( static_cast( queueLabels_.size() ) ), pQueueLabels( queueLabels_.data() ), cmdBufLabelCount( static_cast( cmdBufLabels_.size() ) ), pCmdBufLabels( cmdBufLabels_.data() ), objectCount( static_cast( objects_.size() ) ), pObjects( objects_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugUtilsMessengerCallbackDataEXT & operator=( VkDebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & operator=( DebugUtilsMessengerCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugUtilsMessengerCallbackDataEXT ) ); - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPMessageIdName( const char* pMessageIdName_ ) VULKAN_HPP_NOEXCEPT - { - pMessageIdName = pMessageIdName_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setMessageIdNumber( int32_t messageIdNumber_ ) VULKAN_HPP_NOEXCEPT - { - messageIdNumber = messageIdNumber_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPMessage( const char* pMessage_ ) VULKAN_HPP_NOEXCEPT - { - pMessage = pMessage_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setQueueLabelCount( uint32_t queueLabelCount_ ) VULKAN_HPP_NOEXCEPT - { - queueLabelCount = queueLabelCount_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPQueueLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels_ ) VULKAN_HPP_NOEXCEPT - { - pQueueLabels = pQueueLabels_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT & setQueueLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueLabels_ ) VULKAN_HPP_NOEXCEPT - { - queueLabelCount = static_cast( queueLabels_.size() ); - pQueueLabels = queueLabels_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DebugUtilsMessengerCallbackDataEXT & setCmdBufLabelCount( uint32_t cmdBufLabelCount_ ) VULKAN_HPP_NOEXCEPT - { - cmdBufLabelCount = cmdBufLabelCount_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPCmdBufLabels( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels_ ) VULKAN_HPP_NOEXCEPT - { - pCmdBufLabels = pCmdBufLabels_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT & setCmdBufLabels( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & cmdBufLabels_ ) VULKAN_HPP_NOEXCEPT - { - cmdBufLabelCount = static_cast( cmdBufLabels_.size() ); - pCmdBufLabels = cmdBufLabels_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DebugUtilsMessengerCallbackDataEXT & setObjectCount( uint32_t objectCount_ ) VULKAN_HPP_NOEXCEPT - { - objectCount = objectCount_; - return *this; - } - - DebugUtilsMessengerCallbackDataEXT & setPObjects( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects_ ) VULKAN_HPP_NOEXCEPT - { - pObjects = pObjects_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DebugUtilsMessengerCallbackDataEXT & setObjects( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & objects_ ) VULKAN_HPP_NOEXCEPT - { - objectCount = static_cast( objects_.size() ); - pObjects = objects_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDebugUtilsMessengerCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsMessengerCallbackDataEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsMessengerCallbackDataEXT const& ) const = default; -#else - bool operator==( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pMessageIdName == rhs.pMessageIdName ) - && ( messageIdNumber == rhs.messageIdNumber ) - && ( pMessage == rhs.pMessage ) - && ( queueLabelCount == rhs.queueLabelCount ) - && ( pQueueLabels == rhs.pQueueLabels ) - && ( cmdBufLabelCount == rhs.cmdBufLabelCount ) - && ( pCmdBufLabels == rhs.pCmdBufLabels ) - && ( objectCount == rhs.objectCount ) - && ( pObjects == rhs.pObjects ); - } - - bool operator!=( DebugUtilsMessengerCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCallbackDataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataFlagsEXT flags = {}; - const char* pMessageIdName = {}; - int32_t messageIdNumber = {}; - const char* pMessage = {}; - uint32_t queueLabelCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pQueueLabels = {}; - uint32_t cmdBufLabelCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pCmdBufLabels = {}; - uint32_t objectCount = {}; - const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pObjects = {}; - - }; - static_assert( sizeof( DebugUtilsMessengerCallbackDataEXT ) == sizeof( VkDebugUtilsMessengerCallbackDataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsMessengerCallbackDataEXT; - }; - - struct DebugUtilsMessengerCreateInfoEXT - { - static const bool allowDuplicate = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsMessengerCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ = {}, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ = {}, PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), messageSeverity( messageSeverity_ ), messageType( messageType_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerCreateInfoEXT( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsMessengerCreateInfoEXT( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugUtilsMessengerCreateInfoEXT & operator=( VkDebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & operator=( DebugUtilsMessengerCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugUtilsMessengerCreateInfoEXT ) ); - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setMessageSeverity( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity_ ) VULKAN_HPP_NOEXCEPT - { - messageSeverity = messageSeverity_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setMessageType( VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType_ ) VULKAN_HPP_NOEXCEPT - { - messageType = messageType_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setPfnUserCallback( PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT - { - pfnUserCallback = pfnUserCallback_; - return *this; - } - - DebugUtilsMessengerCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkDebugUtilsMessengerCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsMessengerCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsMessengerCreateInfoEXT const& ) const = default; -#else - bool operator==( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( messageSeverity == rhs.messageSeverity ) - && ( messageType == rhs.messageType ) - && ( pfnUserCallback == rhs.pfnUserCallback ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( DebugUtilsMessengerCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsMessengerCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagsEXT messageSeverity = {}; - VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageType = {}; - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( DebugUtilsMessengerCreateInfoEXT ) == sizeof( VkDebugUtilsMessengerCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsMessengerCreateInfoEXT; - }; - - struct DebugUtilsObjectTagInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDebugUtilsObjectTagInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint64_t tagName_ = {}, size_t tagSize_ = {}, const void* pTag_ = {}) VULKAN_HPP_NOEXCEPT - : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tagSize_ ), pTag( pTag_ ) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsObjectTagInfoEXT( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DebugUtilsObjectTagInfoEXT( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugUtilsObjectTagInfoEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType_, uint64_t objectHandle_, uint64_t tagName_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) - : objectType( objectType_ ), objectHandle( objectHandle_ ), tagName( tagName_ ), tagSize( tag_.size() * sizeof(T) ), pTag( tag_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DebugUtilsObjectTagInfoEXT & operator=( VkDebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DebugUtilsObjectTagInfoEXT & operator=( DebugUtilsObjectTagInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DebugUtilsObjectTagInfoEXT ) ); - return *this; - } - - DebugUtilsObjectTagInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setObjectType( VULKAN_HPP_NAMESPACE::ObjectType objectType_ ) VULKAN_HPP_NOEXCEPT - { - objectType = objectType_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setObjectHandle( uint64_t objectHandle_ ) VULKAN_HPP_NOEXCEPT - { - objectHandle = objectHandle_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setTagName( uint64_t tagName_ ) VULKAN_HPP_NOEXCEPT - { - tagName = tagName_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setTagSize( size_t tagSize_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tagSize_; - return *this; - } - - DebugUtilsObjectTagInfoEXT & setPTag( const void* pTag_ ) VULKAN_HPP_NOEXCEPT - { - pTag = pTag_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - DebugUtilsObjectTagInfoEXT & setTag( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tag_ ) VULKAN_HPP_NOEXCEPT - { - tagSize = tag_.size() * sizeof(T); - pTag = tag_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDebugUtilsObjectTagInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDebugUtilsObjectTagInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsObjectTagInfoEXT const& ) const = default; -#else - bool operator==( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( tagName == rhs.tagName ) - && ( tagSize == rhs.tagSize ) - && ( pTag == rhs.pTag ); - } - - bool operator!=( DebugUtilsObjectTagInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDebugUtilsObjectTagInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - uint64_t tagName = {}; - size_t tagSize = {}; - const void* pTag = {}; - - }; - static_assert( sizeof( DebugUtilsObjectTagInfoEXT ) == sizeof( VkDebugUtilsObjectTagInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DebugUtilsObjectTagInfoEXT; - }; - - struct DedicatedAllocationBufferCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationBufferCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : dedicatedAllocation( dedicatedAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR DedicatedAllocationBufferCreateInfoNV( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationBufferCreateInfoNV( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DedicatedAllocationBufferCreateInfoNV & operator=( VkDedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DedicatedAllocationBufferCreateInfoNV & operator=( DedicatedAllocationBufferCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DedicatedAllocationBufferCreateInfoNV ) ); - return *this; - } - - DedicatedAllocationBufferCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DedicatedAllocationBufferCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT - { - dedicatedAllocation = dedicatedAllocation_; - return *this; - } - - - operator VkDedicatedAllocationBufferCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDedicatedAllocationBufferCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DedicatedAllocationBufferCreateInfoNV const& ) const = default; -#else - bool operator==( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocation == rhs.dedicatedAllocation ); - } - - bool operator!=( DedicatedAllocationBufferCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationBufferCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; - - }; - static_assert( sizeof( DedicatedAllocationBufferCreateInfoNV ) == sizeof( VkDedicatedAllocationBufferCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DedicatedAllocationBufferCreateInfoNV; - }; - - struct DedicatedAllocationImageCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationImageCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : dedicatedAllocation( dedicatedAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR DedicatedAllocationImageCreateInfoNV( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationImageCreateInfoNV( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DedicatedAllocationImageCreateInfoNV & operator=( VkDedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DedicatedAllocationImageCreateInfoNV & operator=( DedicatedAllocationImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DedicatedAllocationImageCreateInfoNV ) ); - return *this; - } - - DedicatedAllocationImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DedicatedAllocationImageCreateInfoNV & setDedicatedAllocation( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation_ ) VULKAN_HPP_NOEXCEPT - { - dedicatedAllocation = dedicatedAllocation_; - return *this; - } - - - operator VkDedicatedAllocationImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDedicatedAllocationImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DedicatedAllocationImageCreateInfoNV const& ) const = default; -#else - bool operator==( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocation == rhs.dedicatedAllocation ); - } - - bool operator!=( DedicatedAllocationImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationImageCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocation = {}; - - }; - static_assert( sizeof( DedicatedAllocationImageCreateInfoNV ) == sizeof( VkDedicatedAllocationImageCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DedicatedAllocationImageCreateInfoNV; - }; - - struct DedicatedAllocationMemoryAllocateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR DedicatedAllocationMemoryAllocateInfoNV( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DedicatedAllocationMemoryAllocateInfoNV( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DedicatedAllocationMemoryAllocateInfoNV & operator=( VkDedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DedicatedAllocationMemoryAllocateInfoNV & operator=( DedicatedAllocationMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DedicatedAllocationMemoryAllocateInfoNV ) ); - return *this; - } - - DedicatedAllocationMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DedicatedAllocationMemoryAllocateInfoNV & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - DedicatedAllocationMemoryAllocateInfoNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkDedicatedAllocationMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDedicatedAllocationMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DedicatedAllocationMemoryAllocateInfoNV const& ) const = default; -#else - bool operator==( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( DedicatedAllocationMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDedicatedAllocationMemoryAllocateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( DedicatedAllocationMemoryAllocateInfoNV ) == sizeof( VkDedicatedAllocationMemoryAllocateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DedicatedAllocationMemoryAllocateInfoNV; - }; - - struct DescriptorBufferInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorBufferInfo(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize range_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), offset( offset_ ), range( range_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorBufferInfo( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorBufferInfo( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorBufferInfo & operator=( VkDescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorBufferInfo & operator=( DescriptorBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorBufferInfo ) ); - return *this; - } - - DescriptorBufferInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - DescriptorBufferInfo & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - DescriptorBufferInfo & setRange( VULKAN_HPP_NAMESPACE::DeviceSize range_ ) VULKAN_HPP_NOEXCEPT - { - range = range_; - return *this; - } - - - operator VkDescriptorBufferInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorBufferInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorBufferInfo const& ) const = default; -#else - bool operator==( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( buffer == rhs.buffer ) - && ( offset == rhs.offset ) - && ( range == rhs.range ); - } - - bool operator!=( DescriptorBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize range = {}; - - }; - static_assert( sizeof( DescriptorBufferInfo ) == sizeof( VkDescriptorBufferInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class Sampler - { - public: - using CType = VkSampler; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSampler; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSampler; - - public: - VULKAN_HPP_CONSTEXPR Sampler() VULKAN_HPP_NOEXCEPT - : m_sampler(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Sampler( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_sampler(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Sampler( VkSampler sampler ) VULKAN_HPP_NOEXCEPT - : m_sampler( sampler ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Sampler & operator=(VkSampler sampler) VULKAN_HPP_NOEXCEPT - { - m_sampler = sampler; - return *this; - } -#endif - - Sampler & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_sampler = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Sampler const& ) const = default; -#else - bool operator==( Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_sampler == rhs.m_sampler; - } - - bool operator!=(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_sampler != rhs.m_sampler; - } - - bool operator<(Sampler const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_sampler < rhs.m_sampler; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSampler() const VULKAN_HPP_NOEXCEPT - { - return m_sampler; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_sampler != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_sampler == VK_NULL_HANDLE; - } - - private: - VkSampler m_sampler; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Sampler ) == sizeof( VkSampler ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Sampler; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Sampler; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Sampler; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class ImageView - { - public: - using CType = VkImageView; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eImageView; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eImageView; - - public: - VULKAN_HPP_CONSTEXPR ImageView() VULKAN_HPP_NOEXCEPT - : m_imageView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR ImageView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_imageView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT ImageView( VkImageView imageView ) VULKAN_HPP_NOEXCEPT - : m_imageView( imageView ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ImageView & operator=(VkImageView imageView) VULKAN_HPP_NOEXCEPT - { - m_imageView = imageView; - return *this; - } -#endif - - ImageView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_imageView = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageView const& ) const = default; -#else - bool operator==( ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_imageView == rhs.m_imageView; - } - - bool operator!=(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_imageView != rhs.m_imageView; - } - - bool operator<(ImageView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_imageView < rhs.m_imageView; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkImageView() const VULKAN_HPP_NOEXCEPT - { - return m_imageView; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_imageView != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_imageView == VK_NULL_HANDLE; - } - - private: - VkImageView m_imageView; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::ImageView ) == sizeof( VkImageView ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::ImageView; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ImageView; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ImageView; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DescriptorImageInfo - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorImageInfo(VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}, VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : sampler( sampler_ ), imageView( imageView_ ), imageLayout( imageLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorImageInfo( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorImageInfo( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorImageInfo & operator=( VkDescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorImageInfo & operator=( DescriptorImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorImageInfo ) ); - return *this; - } - - DescriptorImageInfo & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT - { - sampler = sampler_; - return *this; - } - - DescriptorImageInfo & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT - { - imageView = imageView_; - return *this; - } - - DescriptorImageInfo & setImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout imageLayout_ ) VULKAN_HPP_NOEXCEPT - { - imageLayout = imageLayout_; - return *this; - } - - - operator VkDescriptorImageInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorImageInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorImageInfo const& ) const = default; -#else - bool operator==( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sampler == rhs.sampler ) - && ( imageView == rhs.imageView ) - && ( imageLayout == rhs.imageLayout ); - } - - bool operator!=( DescriptorImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Sampler sampler = {}; - VULKAN_HPP_NAMESPACE::ImageView imageView = {}; - VULKAN_HPP_NAMESPACE::ImageLayout imageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( DescriptorImageInfo ) == sizeof( VkDescriptorImageInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorPoolSize - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorPoolSize(VULKAN_HPP_NAMESPACE::DescriptorType type_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), descriptorCount( descriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPoolSize( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolSize( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorPoolSize & operator=( VkDescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorPoolSize & operator=( DescriptorPoolSize const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorPoolSize ) ); - return *this; - } - - DescriptorPoolSize & setType( VULKAN_HPP_NAMESPACE::DescriptorType type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - DescriptorPoolSize & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - - operator VkDescriptorPoolSize const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorPoolSize &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPoolSize const& ) const = default; -#else - bool operator==( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( type == rhs.type ) - && ( descriptorCount == rhs.descriptorCount ); - } - - bool operator!=( DescriptorPoolSize const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DescriptorType type = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - uint32_t descriptorCount = {}; - - }; - static_assert( sizeof( DescriptorPoolSize ) == sizeof( VkDescriptorPoolSize ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorPoolCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ = {}, uint32_t maxSets_ = {}, uint32_t poolSizeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( poolSizeCount_ ), pPoolSizes( pPoolSizes_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPoolCreateInfo( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolCreateInfo( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorPoolCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_, uint32_t maxSets_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & poolSizes_ ) - : flags( flags_ ), maxSets( maxSets_ ), poolSizeCount( static_cast( poolSizes_.size() ) ), pPoolSizes( poolSizes_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorPoolCreateInfo & operator=( VkDescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorPoolCreateInfo & operator=( DescriptorPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorPoolCreateInfo ) ); - return *this; - } - - DescriptorPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DescriptorPoolCreateInfo & setMaxSets( uint32_t maxSets_ ) VULKAN_HPP_NOEXCEPT - { - maxSets = maxSets_; - return *this; - } - - DescriptorPoolCreateInfo & setPoolSizeCount( uint32_t poolSizeCount_ ) VULKAN_HPP_NOEXCEPT - { - poolSizeCount = poolSizeCount_; - return *this; - } - - DescriptorPoolCreateInfo & setPPoolSizes( const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes_ ) VULKAN_HPP_NOEXCEPT - { - pPoolSizes = pPoolSizes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorPoolCreateInfo & setPoolSizes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & poolSizes_ ) VULKAN_HPP_NOEXCEPT - { - poolSizeCount = static_cast( poolSizes_.size() ); - pPoolSizes = poolSizes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorPoolCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPoolCreateInfo const& ) const = default; -#else - bool operator==( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( maxSets == rhs.maxSets ) - && ( poolSizeCount == rhs.poolSizeCount ) - && ( pPoolSizes == rhs.pPoolSizes ); - } - - bool operator!=( DescriptorPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorPoolCreateFlags flags = {}; - uint32_t maxSets = {}; - uint32_t poolSizeCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorPoolSize* pPoolSizes = {}; - - }; - static_assert( sizeof( DescriptorPoolCreateInfo ) == sizeof( VkDescriptorPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorPoolCreateInfo; - }; - - struct DescriptorPoolInlineUniformBlockCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT(uint32_t maxInlineUniformBlockBindings_ = {}) VULKAN_HPP_NOEXCEPT - : maxInlineUniformBlockBindings( maxInlineUniformBlockBindings_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPoolInlineUniformBlockCreateInfoEXT( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorPoolInlineUniformBlockCreateInfoEXT( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( VkDescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorPoolInlineUniformBlockCreateInfoEXT & operator=( DescriptorPoolInlineUniformBlockCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) ); - return *this; - } - - DescriptorPoolInlineUniformBlockCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorPoolInlineUniformBlockCreateInfoEXT & setMaxInlineUniformBlockBindings( uint32_t maxInlineUniformBlockBindings_ ) VULKAN_HPP_NOEXCEPT - { - maxInlineUniformBlockBindings = maxInlineUniformBlockBindings_; - return *this; - } - - - operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorPoolInlineUniformBlockCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPoolInlineUniformBlockCreateInfoEXT const& ) const = default; -#else - bool operator==( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxInlineUniformBlockBindings == rhs.maxInlineUniformBlockBindings ); - } - - bool operator!=( DescriptorPoolInlineUniformBlockCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorPoolInlineUniformBlockCreateInfoEXT; - const void* pNext = {}; - uint32_t maxInlineUniformBlockBindings = {}; - - }; - static_assert( sizeof( DescriptorPoolInlineUniformBlockCreateInfoEXT ) == sizeof( VkDescriptorPoolInlineUniformBlockCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorPoolInlineUniformBlockCreateInfoEXT; - }; - - class DescriptorPool - { - public: - using CType = VkDescriptorPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorPool; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorPool; - - public: - VULKAN_HPP_CONSTEXPR DescriptorPool() VULKAN_HPP_NOEXCEPT - : m_descriptorPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorPool( VkDescriptorPool descriptorPool ) VULKAN_HPP_NOEXCEPT - : m_descriptorPool( descriptorPool ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorPool & operator=(VkDescriptorPool descriptorPool) VULKAN_HPP_NOEXCEPT - { - m_descriptorPool = descriptorPool; - return *this; - } -#endif - - DescriptorPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorPool = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorPool const& ) const = default; -#else - bool operator==( DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool == rhs.m_descriptorPool; - } - - bool operator!=(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool != rhs.m_descriptorPool; - } - - bool operator<(DescriptorPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool < rhs.m_descriptorPool; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorPool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorPool == VK_NULL_HANDLE; - } - - private: - VkDescriptorPool m_descriptorPool; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorPool ) == sizeof( VkDescriptorPool ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorPool; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorPool; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorPool; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class DescriptorSetLayout - { - public: - using CType = VkDescriptorSetLayout; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorSetLayout; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorSetLayout; - - public: - VULKAN_HPP_CONSTEXPR DescriptorSetLayout() VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayout( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorSetLayout( VkDescriptorSetLayout descriptorSetLayout ) VULKAN_HPP_NOEXCEPT - : m_descriptorSetLayout( descriptorSetLayout ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorSetLayout & operator=(VkDescriptorSetLayout descriptorSetLayout) VULKAN_HPP_NOEXCEPT - { - m_descriptorSetLayout = descriptorSetLayout; - return *this; - } -#endif - - DescriptorSetLayout & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorSetLayout = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayout const& ) const = default; -#else - bool operator==( DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout == rhs.m_descriptorSetLayout; - } - - bool operator!=(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout != rhs.m_descriptorSetLayout; - } - - bool operator<(DescriptorSetLayout const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout < rhs.m_descriptorSetLayout; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorSetLayout() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorSetLayout == VK_NULL_HANDLE; - } - - private: - VkDescriptorSetLayout m_descriptorSetLayout; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorSetLayout ) == sizeof( VkDescriptorSetLayout ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorSetLayout; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DescriptorSetAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ = {}, uint32_t descriptorSetCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}) VULKAN_HPP_NOEXCEPT - : descriptorPool( descriptorPool_ ), descriptorSetCount( descriptorSetCount_ ), pSetLayouts( pSetLayouts_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetAllocateInfo( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetAllocateInfo( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetAllocateInfo( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) - : descriptorPool( descriptorPool_ ), descriptorSetCount( static_cast( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorSetAllocateInfo & operator=( VkDescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetAllocateInfo & operator=( DescriptorSetAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorSetAllocateInfo ) ); - return *this; - } - - DescriptorSetAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetAllocateInfo & setDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool_ ) VULKAN_HPP_NOEXCEPT - { - descriptorPool = descriptorPool_; - return *this; - } - - DescriptorSetAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = descriptorSetCount_; - return *this; - } - - DescriptorSetAllocateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT - { - pSetLayouts = pSetLayouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetAllocateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = static_cast( setLayouts_.size() ); - pSetLayouts = setLayouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetAllocateInfo const& ) const = default; -#else - bool operator==( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( descriptorPool == rhs.descriptorPool ) - && ( descriptorSetCount == rhs.descriptorSetCount ) - && ( pSetLayouts == rhs.pSetLayouts ); - } - - bool operator!=( DescriptorSetAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool = {}; - uint32_t descriptorSetCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {}; - - }; - static_assert( sizeof( DescriptorSetAllocateInfo ) == sizeof( VkDescriptorSetAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetAllocateInfo; - }; - - struct DescriptorSetLayoutBinding - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding(uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ = {}) VULKAN_HPP_NOEXCEPT - : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( descriptorCount_ ), stageFlags( stageFlags_ ), pImmutableSamplers( pImmutableSamplers_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBinding( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutBinding( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBinding( uint32_t binding_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & immutableSamplers_ ) - : binding( binding_ ), descriptorType( descriptorType_ ), descriptorCount( static_cast( immutableSamplers_.size() ) ), stageFlags( stageFlags_ ), pImmutableSamplers( immutableSamplers_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorSetLayoutBinding & operator=( VkDescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetLayoutBinding & operator=( DescriptorSetLayoutBinding const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorSetLayoutBinding ) ); - return *this; - } - - DescriptorSetLayoutBinding & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - DescriptorSetLayoutBinding & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - DescriptorSetLayoutBinding & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - DescriptorSetLayoutBinding & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT - { - stageFlags = stageFlags_; - return *this; - } - - DescriptorSetLayoutBinding & setPImmutableSamplers( const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers_ ) VULKAN_HPP_NOEXCEPT - { - pImmutableSamplers = pImmutableSamplers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBinding & setImmutableSamplers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & immutableSamplers_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( immutableSamplers_.size() ); - pImmutableSamplers = immutableSamplers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetLayoutBinding const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutBinding &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutBinding const& ) const = default; -#else - bool operator==( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( binding == rhs.binding ) - && ( descriptorType == rhs.descriptorType ) - && ( descriptorCount == rhs.descriptorCount ) - && ( stageFlags == rhs.stageFlags ) - && ( pImmutableSamplers == rhs.pImmutableSamplers ); - } - - bool operator!=( DescriptorSetLayoutBinding const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t binding = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; - const VULKAN_HPP_NAMESPACE::Sampler* pImmutableSamplers = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutBinding ) == sizeof( VkDescriptorSetLayoutBinding ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DescriptorSetLayoutBindingFlagsCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo(uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ = {}) VULKAN_HPP_NOEXCEPT - : bindingCount( bindingCount_ ), pBindingFlags( pBindingFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutBindingFlagsCreateInfo( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutBindingFlagsCreateInfo( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBindingFlagsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindingFlags_ ) - : bindingCount( static_cast( bindingFlags_.size() ) ), pBindingFlags( bindingFlags_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorSetLayoutBindingFlagsCreateInfo & operator=( VkDescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetLayoutBindingFlagsCreateInfo & operator=( DescriptorSetLayoutBindingFlagsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) ); - return *this; - } - - DescriptorSetLayoutBindingFlagsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetLayoutBindingFlagsCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = bindingCount_; - return *this; - } - - DescriptorSetLayoutBindingFlagsCreateInfo & setPBindingFlags( const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags_ ) VULKAN_HPP_NOEXCEPT - { - pBindingFlags = pBindingFlags_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutBindingFlagsCreateInfo & setBindingFlags( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindingFlags_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = static_cast( bindingFlags_.size() ); - pBindingFlags = bindingFlags_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetLayoutBindingFlagsCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutBindingFlagsCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutBindingFlagsCreateInfo const& ) const = default; -#else - bool operator==( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bindingCount == rhs.bindingCount ) - && ( pBindingFlags == rhs.pBindingFlags ); - } - - bool operator!=( DescriptorSetLayoutBindingFlagsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutBindingFlagsCreateInfo; - const void* pNext = {}; - uint32_t bindingCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorBindingFlags* pBindingFlags = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutBindingFlagsCreateInfo ) == sizeof( VkDescriptorSetLayoutBindingFlagsCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetLayoutBindingFlagsCreateInfo; - }; - using DescriptorSetLayoutBindingFlagsCreateInfoEXT = DescriptorSetLayoutBindingFlagsCreateInfo; - - struct DescriptorSetLayoutCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ = {}, uint32_t bindingCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), bindingCount( bindingCount_ ), pBindings( pBindings_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutCreateInfo( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutCreateInfo( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindings_ ) - : flags( flags_ ), bindingCount( static_cast( bindings_.size() ) ), pBindings( bindings_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorSetLayoutCreateInfo & operator=( VkDescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetLayoutCreateInfo & operator=( DescriptorSetLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorSetLayoutCreateInfo ) ); - return *this; - } - - DescriptorSetLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DescriptorSetLayoutCreateInfo & setBindingCount( uint32_t bindingCount_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = bindingCount_; - return *this; - } - - DescriptorSetLayoutCreateInfo & setPBindings( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings_ ) VULKAN_HPP_NOEXCEPT - { - pBindings = pBindings_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetLayoutCreateInfo & setBindings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bindings_ ) VULKAN_HPP_NOEXCEPT - { - bindingCount = static_cast( bindings_.size() ); - pBindings = bindings_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutCreateInfo const& ) const = default; -#else - bool operator==( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( bindingCount == rhs.bindingCount ) - && ( pBindings == rhs.pBindings ); - } - - bool operator!=( DescriptorSetLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateFlags flags = {}; - uint32_t bindingCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding* pBindings = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutCreateInfo ) == sizeof( VkDescriptorSetLayoutCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetLayoutCreateInfo; - }; - - struct DescriptorSetLayoutSupport - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetLayoutSupport; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport(VULKAN_HPP_NAMESPACE::Bool32 supported_ = {}) VULKAN_HPP_NOEXCEPT - : supported( supported_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetLayoutSupport( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetLayoutSupport( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorSetLayoutSupport & operator=( VkDescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetLayoutSupport & operator=( DescriptorSetLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorSetLayoutSupport ) ); - return *this; - } - - - operator VkDescriptorSetLayoutSupport const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetLayoutSupport &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetLayoutSupport const& ) const = default; -#else - bool operator==( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supported == rhs.supported ); - } - - bool operator!=( DescriptorSetLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetLayoutSupport; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supported = {}; - - }; - static_assert( sizeof( DescriptorSetLayoutSupport ) == sizeof( VkDescriptorSetLayoutSupport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetLayoutSupport; - }; - using DescriptorSetLayoutSupportKHR = DescriptorSetLayoutSupport; - - struct DescriptorSetVariableDescriptorCountAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo(uint32_t descriptorSetCount_ = {}, const uint32_t* pDescriptorCounts_ = {}) VULKAN_HPP_NOEXCEPT - : descriptorSetCount( descriptorSetCount_ ), pDescriptorCounts( pDescriptorCounts_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountAllocateInfo( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetVariableDescriptorCountAllocateInfo( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetVariableDescriptorCountAllocateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorCounts_ ) - : descriptorSetCount( static_cast( descriptorCounts_.size() ) ), pDescriptorCounts( descriptorCounts_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorSetVariableDescriptorCountAllocateInfo & operator=( VkDescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetVariableDescriptorCountAllocateInfo & operator=( DescriptorSetVariableDescriptorCountAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) ); - return *this; - } - - DescriptorSetVariableDescriptorCountAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorSetCount( uint32_t descriptorSetCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = descriptorSetCount_; - return *this; - } - - DescriptorSetVariableDescriptorCountAllocateInfo & setPDescriptorCounts( const uint32_t* pDescriptorCounts_ ) VULKAN_HPP_NOEXCEPT - { - pDescriptorCounts = pDescriptorCounts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorSetVariableDescriptorCountAllocateInfo & setDescriptorCounts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorCounts_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetCount = static_cast( descriptorCounts_.size() ); - pDescriptorCounts = descriptorCounts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDescriptorSetVariableDescriptorCountAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetVariableDescriptorCountAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetVariableDescriptorCountAllocateInfo const& ) const = default; -#else - bool operator==( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( descriptorSetCount == rhs.descriptorSetCount ) - && ( pDescriptorCounts == rhs.pDescriptorCounts ); - } - - bool operator!=( DescriptorSetVariableDescriptorCountAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountAllocateInfo; - const void* pNext = {}; - uint32_t descriptorSetCount = {}; - const uint32_t* pDescriptorCounts = {}; - - }; - static_assert( sizeof( DescriptorSetVariableDescriptorCountAllocateInfo ) == sizeof( VkDescriptorSetVariableDescriptorCountAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetVariableDescriptorCountAllocateInfo; - }; - using DescriptorSetVariableDescriptorCountAllocateInfoEXT = DescriptorSetVariableDescriptorCountAllocateInfo; - - struct DescriptorSetVariableDescriptorCountLayoutSupport - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport(uint32_t maxVariableDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : maxVariableDescriptorCount( maxVariableDescriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorSetVariableDescriptorCountLayoutSupport( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorSetVariableDescriptorCountLayoutSupport( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorSetVariableDescriptorCountLayoutSupport & operator=( VkDescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorSetVariableDescriptorCountLayoutSupport & operator=( DescriptorSetVariableDescriptorCountLayoutSupport const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) ); - return *this; - } - - - operator VkDescriptorSetVariableDescriptorCountLayoutSupport const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorSetVariableDescriptorCountLayoutSupport &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorSetVariableDescriptorCountLayoutSupport const& ) const = default; -#else - bool operator==( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxVariableDescriptorCount == rhs.maxVariableDescriptorCount ); - } - - bool operator!=( DescriptorSetVariableDescriptorCountLayoutSupport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorSetVariableDescriptorCountLayoutSupport; - void* pNext = {}; - uint32_t maxVariableDescriptorCount = {}; - - }; - static_assert( sizeof( DescriptorSetVariableDescriptorCountLayoutSupport ) == sizeof( VkDescriptorSetVariableDescriptorCountLayoutSupport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorSetVariableDescriptorCountLayoutSupport; - }; - using DescriptorSetVariableDescriptorCountLayoutSupportEXT = DescriptorSetVariableDescriptorCountLayoutSupport; - - struct DescriptorUpdateTemplateEntry - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry(uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, size_t offset_ = {}, size_t stride_ = {}) VULKAN_HPP_NOEXCEPT - : dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), offset( offset_ ), stride( stride_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateEntry( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorUpdateTemplateEntry( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorUpdateTemplateEntry & operator=( VkDescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorUpdateTemplateEntry & operator=( DescriptorUpdateTemplateEntry const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorUpdateTemplateEntry ) ); - return *this; - } - - DescriptorUpdateTemplateEntry & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT - { - dstBinding = dstBinding_; - return *this; - } - - DescriptorUpdateTemplateEntry & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - dstArrayElement = dstArrayElement_; - return *this; - } - - DescriptorUpdateTemplateEntry & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - DescriptorUpdateTemplateEntry & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - DescriptorUpdateTemplateEntry & setOffset( size_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - DescriptorUpdateTemplateEntry & setStride( size_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - - operator VkDescriptorUpdateTemplateEntry const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorUpdateTemplateEntry &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorUpdateTemplateEntry const& ) const = default; -#else - bool operator==( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ) - && ( descriptorType == rhs.descriptorType ) - && ( offset == rhs.offset ) - && ( stride == rhs.stride ); - } - - bool operator!=( DescriptorUpdateTemplateEntry const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - size_t offset = {}; - size_t stride = {}; - - }; - static_assert( sizeof( DescriptorUpdateTemplateEntry ) == sizeof( VkDescriptorUpdateTemplateEntry ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using DescriptorUpdateTemplateEntryKHR = DescriptorUpdateTemplateEntry; - - struct DescriptorUpdateTemplateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDescriptorUpdateTemplateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ = {}, uint32_t descriptorUpdateEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ = {}, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), descriptorUpdateEntryCount( descriptorUpdateEntryCount_ ), pDescriptorUpdateEntries( pDescriptorUpdateEntries_ ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ ) - {} - - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplateCreateInfo( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DescriptorUpdateTemplateCreateInfo( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorUpdateTemplateCreateInfo( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorUpdateEntries_, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet, VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ = {}, uint32_t set_ = {} ) - : flags( flags_ ), descriptorUpdateEntryCount( static_cast( descriptorUpdateEntries_.size() ) ), pDescriptorUpdateEntries( descriptorUpdateEntries_.data() ), templateType( templateType_ ), descriptorSetLayout( descriptorSetLayout_ ), pipelineBindPoint( pipelineBindPoint_ ), pipelineLayout( pipelineLayout_ ), set( set_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DescriptorUpdateTemplateCreateInfo & operator=( VkDescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DescriptorUpdateTemplateCreateInfo & operator=( DescriptorUpdateTemplateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DescriptorUpdateTemplateCreateInfo ) ); - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntryCount( uint32_t descriptorUpdateEntryCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorUpdateEntryCount = descriptorUpdateEntryCount_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPDescriptorUpdateEntries( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT - { - pDescriptorUpdateEntries = pDescriptorUpdateEntries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DescriptorUpdateTemplateCreateInfo & setDescriptorUpdateEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorUpdateEntries_ ) VULKAN_HPP_NOEXCEPT - { - descriptorUpdateEntryCount = static_cast( descriptorUpdateEntries_.size() ); - pDescriptorUpdateEntries = descriptorUpdateEntries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DescriptorUpdateTemplateCreateInfo & setTemplateType( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType_ ) VULKAN_HPP_NOEXCEPT - { - templateType = templateType_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout_ ) VULKAN_HPP_NOEXCEPT - { - descriptorSetLayout = descriptorSetLayout_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout_ ) VULKAN_HPP_NOEXCEPT - { - pipelineLayout = pipelineLayout_; - return *this; - } - - DescriptorUpdateTemplateCreateInfo & setSet( uint32_t set_ ) VULKAN_HPP_NOEXCEPT - { - set = set_; - return *this; - } - - - operator VkDescriptorUpdateTemplateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDescriptorUpdateTemplateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorUpdateTemplateCreateInfo const& ) const = default; -#else - bool operator==( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( descriptorUpdateEntryCount == rhs.descriptorUpdateEntryCount ) - && ( pDescriptorUpdateEntries == rhs.pDescriptorUpdateEntries ) - && ( templateType == rhs.templateType ) - && ( descriptorSetLayout == rhs.descriptorSetLayout ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( pipelineLayout == rhs.pipelineLayout ) - && ( set == rhs.set ); - } - - bool operator!=( DescriptorUpdateTemplateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDescriptorUpdateTemplateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateFlags flags = {}; - uint32_t descriptorUpdateEntryCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry* pDescriptorUpdateEntries = {}; - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType templateType = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateType::eDescriptorSet; - VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout = {}; - uint32_t set = {}; - - }; - static_assert( sizeof( DescriptorUpdateTemplateCreateInfo ) == sizeof( VkDescriptorUpdateTemplateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DescriptorUpdateTemplateCreateInfo; - }; - using DescriptorUpdateTemplateCreateInfoKHR = DescriptorUpdateTemplateCreateInfo; - - struct DeviceQueueCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueCount_ = {}, const float* pQueuePriorities_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( queueCount_ ), pQueuePriorities( pQueuePriorities_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceQueueCreateInfo( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueCreateInfo( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceQueueCreateInfo( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_, uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queuePriorities_ ) - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueCount( static_cast( queuePriorities_.size() ) ), pQueuePriorities( queuePriorities_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceQueueCreateInfo & operator=( VkDeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceQueueCreateInfo & operator=( DeviceQueueCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceQueueCreateInfo ) ); - return *this; - } - - DeviceQueueCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceQueueCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceQueueCreateInfo & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - DeviceQueueCreateInfo & setQueueCount( uint32_t queueCount_ ) VULKAN_HPP_NOEXCEPT - { - queueCount = queueCount_; - return *this; - } - - DeviceQueueCreateInfo & setPQueuePriorities( const float* pQueuePriorities_ ) VULKAN_HPP_NOEXCEPT - { - pQueuePriorities = pQueuePriorities_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceQueueCreateInfo & setQueuePriorities( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queuePriorities_ ) VULKAN_HPP_NOEXCEPT - { - queueCount = static_cast( queuePriorities_.size() ); - pQueuePriorities = queuePriorities_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceQueueCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceQueueCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceQueueCreateInfo const& ) const = default; -#else - bool operator==( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( queueCount == rhs.queueCount ) - && ( pQueuePriorities == rhs.pQueuePriorities ); - } - - bool operator!=( DeviceQueueCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - uint32_t queueCount = {}; - const float* pQueuePriorities = {}; - - }; - static_assert( sizeof( DeviceQueueCreateInfo ) == sizeof( VkDeviceQueueCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceQueueCreateInfo; - }; - - struct PhysicalDeviceFeatures - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ = {}, VULKAN_HPP_NAMESPACE::Bool32 wideLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 largePoints_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ = {}, VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ = {}, VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ = {}) VULKAN_HPP_NOEXCEPT - : robustBufferAccess( robustBufferAccess_ ), fullDrawIndexUint32( fullDrawIndexUint32_ ), imageCubeArray( imageCubeArray_ ), independentBlend( independentBlend_ ), geometryShader( geometryShader_ ), tessellationShader( tessellationShader_ ), sampleRateShading( sampleRateShading_ ), dualSrcBlend( dualSrcBlend_ ), logicOp( logicOp_ ), multiDrawIndirect( multiDrawIndirect_ ), drawIndirectFirstInstance( drawIndirectFirstInstance_ ), depthClamp( depthClamp_ ), depthBiasClamp( depthBiasClamp_ ), fillModeNonSolid( fillModeNonSolid_ ), depthBounds( depthBounds_ ), wideLines( wideLines_ ), largePoints( largePoints_ ), alphaToOne( alphaToOne_ ), multiViewport( multiViewport_ ), samplerAnisotropy( samplerAnisotropy_ ), textureCompressionETC2( textureCompressionETC2_ ), textureCompressionASTC_LDR( textureCompressionASTC_LDR_ ), textureCompressionBC( textureCompressionBC_ ), occlusionQueryPrecise( occlusionQueryPrecise_ ), pipelineStatisticsQuery( pipelineStatisticsQuery_ ), vertexPipelineStoresAndAtomics( vertexPipelineStoresAndAtomics_ ), fragmentStoresAndAtomics( fragmentStoresAndAtomics_ ), shaderTessellationAndGeometryPointSize( shaderTessellationAndGeometryPointSize_ ), shaderImageGatherExtended( shaderImageGatherExtended_ ), shaderStorageImageExtendedFormats( shaderStorageImageExtendedFormats_ ), shaderStorageImageMultisample( shaderStorageImageMultisample_ ), shaderStorageImageReadWithoutFormat( shaderStorageImageReadWithoutFormat_ ), shaderStorageImageWriteWithoutFormat( shaderStorageImageWriteWithoutFormat_ ), shaderUniformBufferArrayDynamicIndexing( shaderUniformBufferArrayDynamicIndexing_ ), shaderSampledImageArrayDynamicIndexing( shaderSampledImageArrayDynamicIndexing_ ), shaderStorageBufferArrayDynamicIndexing( shaderStorageBufferArrayDynamicIndexing_ ), shaderStorageImageArrayDynamicIndexing( shaderStorageImageArrayDynamicIndexing_ ), shaderClipDistance( shaderClipDistance_ ), shaderCullDistance( shaderCullDistance_ ), shaderFloat64( shaderFloat64_ ), shaderInt64( shaderInt64_ ), shaderInt16( shaderInt16_ ), shaderResourceResidency( shaderResourceResidency_ ), shaderResourceMinLod( shaderResourceMinLod_ ), sparseBinding( sparseBinding_ ), sparseResidencyBuffer( sparseResidencyBuffer_ ), sparseResidencyImage2D( sparseResidencyImage2D_ ), sparseResidencyImage3D( sparseResidencyImage3D_ ), sparseResidency2Samples( sparseResidency2Samples_ ), sparseResidency4Samples( sparseResidency4Samples_ ), sparseResidency8Samples( sparseResidency8Samples_ ), sparseResidency16Samples( sparseResidency16Samples_ ), sparseResidencyAliased( sparseResidencyAliased_ ), variableMultisampleRate( variableMultisampleRate_ ), inheritedQueries( inheritedQueries_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFeatures( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFeatures & operator=( VkPhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFeatures & operator=( PhysicalDeviceFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFeatures ) ); - return *this; - } - - PhysicalDeviceFeatures & setRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess_ ) VULKAN_HPP_NOEXCEPT - { - robustBufferAccess = robustBufferAccess_; - return *this; - } - - PhysicalDeviceFeatures & setFullDrawIndexUint32( VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32_ ) VULKAN_HPP_NOEXCEPT - { - fullDrawIndexUint32 = fullDrawIndexUint32_; - return *this; - } - - PhysicalDeviceFeatures & setImageCubeArray( VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray_ ) VULKAN_HPP_NOEXCEPT - { - imageCubeArray = imageCubeArray_; - return *this; - } - - PhysicalDeviceFeatures & setIndependentBlend( VULKAN_HPP_NAMESPACE::Bool32 independentBlend_ ) VULKAN_HPP_NOEXCEPT - { - independentBlend = independentBlend_; - return *this; - } - - PhysicalDeviceFeatures & setGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 geometryShader_ ) VULKAN_HPP_NOEXCEPT - { - geometryShader = geometryShader_; - return *this; - } - - PhysicalDeviceFeatures & setTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 tessellationShader_ ) VULKAN_HPP_NOEXCEPT - { - tessellationShader = tessellationShader_; - return *this; - } - - PhysicalDeviceFeatures & setSampleRateShading( VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading_ ) VULKAN_HPP_NOEXCEPT - { - sampleRateShading = sampleRateShading_; - return *this; - } - - PhysicalDeviceFeatures & setDualSrcBlend( VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend_ ) VULKAN_HPP_NOEXCEPT - { - dualSrcBlend = dualSrcBlend_; - return *this; - } - - PhysicalDeviceFeatures & setLogicOp( VULKAN_HPP_NAMESPACE::Bool32 logicOp_ ) VULKAN_HPP_NOEXCEPT - { - logicOp = logicOp_; - return *this; - } - - PhysicalDeviceFeatures & setMultiDrawIndirect( VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect_ ) VULKAN_HPP_NOEXCEPT - { - multiDrawIndirect = multiDrawIndirect_; - return *this; - } - - PhysicalDeviceFeatures & setDrawIndirectFirstInstance( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance_ ) VULKAN_HPP_NOEXCEPT - { - drawIndirectFirstInstance = drawIndirectFirstInstance_; - return *this; - } - - PhysicalDeviceFeatures & setDepthClamp( VULKAN_HPP_NAMESPACE::Bool32 depthClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthClamp = depthClamp_; - return *this; - } - - PhysicalDeviceFeatures & setDepthBiasClamp( VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasClamp = depthBiasClamp_; - return *this; - } - - PhysicalDeviceFeatures & setFillModeNonSolid( VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid_ ) VULKAN_HPP_NOEXCEPT - { - fillModeNonSolid = fillModeNonSolid_; - return *this; - } - - PhysicalDeviceFeatures & setDepthBounds( VULKAN_HPP_NAMESPACE::Bool32 depthBounds_ ) VULKAN_HPP_NOEXCEPT - { - depthBounds = depthBounds_; - return *this; - } - - PhysicalDeviceFeatures & setWideLines( VULKAN_HPP_NAMESPACE::Bool32 wideLines_ ) VULKAN_HPP_NOEXCEPT - { - wideLines = wideLines_; - return *this; - } - - PhysicalDeviceFeatures & setLargePoints( VULKAN_HPP_NAMESPACE::Bool32 largePoints_ ) VULKAN_HPP_NOEXCEPT - { - largePoints = largePoints_; - return *this; - } - - PhysicalDeviceFeatures & setAlphaToOne( VULKAN_HPP_NAMESPACE::Bool32 alphaToOne_ ) VULKAN_HPP_NOEXCEPT - { - alphaToOne = alphaToOne_; - return *this; - } - - PhysicalDeviceFeatures & setMultiViewport( VULKAN_HPP_NAMESPACE::Bool32 multiViewport_ ) VULKAN_HPP_NOEXCEPT - { - multiViewport = multiViewport_; - return *this; - } - - PhysicalDeviceFeatures & setSamplerAnisotropy( VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy_ ) VULKAN_HPP_NOEXCEPT - { - samplerAnisotropy = samplerAnisotropy_; - return *this; - } - - PhysicalDeviceFeatures & setTextureCompressionETC2( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionETC2 = textureCompressionETC2_; - return *this; - } - - PhysicalDeviceFeatures & setTextureCompressionASTC_LDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionASTC_LDR = textureCompressionASTC_LDR_; - return *this; - } - - PhysicalDeviceFeatures & setTextureCompressionBC( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionBC = textureCompressionBC_; - return *this; - } - - PhysicalDeviceFeatures & setOcclusionQueryPrecise( VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise_ ) VULKAN_HPP_NOEXCEPT - { - occlusionQueryPrecise = occlusionQueryPrecise_; - return *this; - } - - PhysicalDeviceFeatures & setPipelineStatisticsQuery( VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStatisticsQuery = pipelineStatisticsQuery_; - return *this; - } - - PhysicalDeviceFeatures & setVertexPipelineStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT - { - vertexPipelineStoresAndAtomics = vertexPipelineStoresAndAtomics_; - return *this; - } - - PhysicalDeviceFeatures & setFragmentStoresAndAtomics( VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics_ ) VULKAN_HPP_NOEXCEPT - { - fragmentStoresAndAtomics = fragmentStoresAndAtomics_; - return *this; - } - - PhysicalDeviceFeatures & setShaderTessellationAndGeometryPointSize( VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize_ ) VULKAN_HPP_NOEXCEPT - { - shaderTessellationAndGeometryPointSize = shaderTessellationAndGeometryPointSize_; - return *this; - } - - PhysicalDeviceFeatures & setShaderImageGatherExtended( VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageGatherExtended = shaderImageGatherExtended_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageExtendedFormats( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageExtendedFormats = shaderStorageImageExtendedFormats_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageMultisample( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageMultisample = shaderStorageImageMultisample_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageReadWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageReadWithoutFormat = shaderStorageImageReadWithoutFormat_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageWriteWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageWriteWithoutFormat = shaderStorageImageWriteWithoutFormat_; - return *this; - } - - PhysicalDeviceFeatures & setShaderUniformBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformBufferArrayDynamicIndexing = shaderUniformBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderSampledImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampledImageArrayDynamicIndexing = shaderSampledImageArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageBufferArrayDynamicIndexing = shaderStorageBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderStorageImageArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageArrayDynamicIndexing = shaderStorageImageArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceFeatures & setShaderClipDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance_ ) VULKAN_HPP_NOEXCEPT - { - shaderClipDistance = shaderClipDistance_; - return *this; - } - - PhysicalDeviceFeatures & setShaderCullDistance( VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance_ ) VULKAN_HPP_NOEXCEPT - { - shaderCullDistance = shaderCullDistance_; - return *this; - } - - PhysicalDeviceFeatures & setShaderFloat64( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64_ ) VULKAN_HPP_NOEXCEPT - { - shaderFloat64 = shaderFloat64_; - return *this; - } - - PhysicalDeviceFeatures & setShaderInt64( VULKAN_HPP_NAMESPACE::Bool32 shaderInt64_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt64 = shaderInt64_; - return *this; - } - - PhysicalDeviceFeatures & setShaderInt16( VULKAN_HPP_NAMESPACE::Bool32 shaderInt16_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt16 = shaderInt16_; - return *this; - } - - PhysicalDeviceFeatures & setShaderResourceResidency( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency_ ) VULKAN_HPP_NOEXCEPT - { - shaderResourceResidency = shaderResourceResidency_; - return *this; - } - - PhysicalDeviceFeatures & setShaderResourceMinLod( VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod_ ) VULKAN_HPP_NOEXCEPT - { - shaderResourceMinLod = shaderResourceMinLod_; - return *this; - } - - PhysicalDeviceFeatures & setSparseBinding( VULKAN_HPP_NAMESPACE::Bool32 sparseBinding_ ) VULKAN_HPP_NOEXCEPT - { - sparseBinding = sparseBinding_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyBuffer( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyBuffer = sparseResidencyBuffer_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyImage2D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyImage2D = sparseResidencyImage2D_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyImage3D( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyImage3D = sparseResidencyImage3D_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency2Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency2Samples = sparseResidency2Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency4Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency4Samples = sparseResidency4Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency8Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency8Samples = sparseResidency8Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidency16Samples( VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidency16Samples = sparseResidency16Samples_; - return *this; - } - - PhysicalDeviceFeatures & setSparseResidencyAliased( VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased_ ) VULKAN_HPP_NOEXCEPT - { - sparseResidencyAliased = sparseResidencyAliased_; - return *this; - } - - PhysicalDeviceFeatures & setVariableMultisampleRate( VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate_ ) VULKAN_HPP_NOEXCEPT - { - variableMultisampleRate = variableMultisampleRate_; - return *this; - } - - PhysicalDeviceFeatures & setInheritedQueries( VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries_ ) VULKAN_HPP_NOEXCEPT - { - inheritedQueries = inheritedQueries_; - return *this; - } - - - operator VkPhysicalDeviceFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( robustBufferAccess == rhs.robustBufferAccess ) - && ( fullDrawIndexUint32 == rhs.fullDrawIndexUint32 ) - && ( imageCubeArray == rhs.imageCubeArray ) - && ( independentBlend == rhs.independentBlend ) - && ( geometryShader == rhs.geometryShader ) - && ( tessellationShader == rhs.tessellationShader ) - && ( sampleRateShading == rhs.sampleRateShading ) - && ( dualSrcBlend == rhs.dualSrcBlend ) - && ( logicOp == rhs.logicOp ) - && ( multiDrawIndirect == rhs.multiDrawIndirect ) - && ( drawIndirectFirstInstance == rhs.drawIndirectFirstInstance ) - && ( depthClamp == rhs.depthClamp ) - && ( depthBiasClamp == rhs.depthBiasClamp ) - && ( fillModeNonSolid == rhs.fillModeNonSolid ) - && ( depthBounds == rhs.depthBounds ) - && ( wideLines == rhs.wideLines ) - && ( largePoints == rhs.largePoints ) - && ( alphaToOne == rhs.alphaToOne ) - && ( multiViewport == rhs.multiViewport ) - && ( samplerAnisotropy == rhs.samplerAnisotropy ) - && ( textureCompressionETC2 == rhs.textureCompressionETC2 ) - && ( textureCompressionASTC_LDR == rhs.textureCompressionASTC_LDR ) - && ( textureCompressionBC == rhs.textureCompressionBC ) - && ( occlusionQueryPrecise == rhs.occlusionQueryPrecise ) - && ( pipelineStatisticsQuery == rhs.pipelineStatisticsQuery ) - && ( vertexPipelineStoresAndAtomics == rhs.vertexPipelineStoresAndAtomics ) - && ( fragmentStoresAndAtomics == rhs.fragmentStoresAndAtomics ) - && ( shaderTessellationAndGeometryPointSize == rhs.shaderTessellationAndGeometryPointSize ) - && ( shaderImageGatherExtended == rhs.shaderImageGatherExtended ) - && ( shaderStorageImageExtendedFormats == rhs.shaderStorageImageExtendedFormats ) - && ( shaderStorageImageMultisample == rhs.shaderStorageImageMultisample ) - && ( shaderStorageImageReadWithoutFormat == rhs.shaderStorageImageReadWithoutFormat ) - && ( shaderStorageImageWriteWithoutFormat == rhs.shaderStorageImageWriteWithoutFormat ) - && ( shaderUniformBufferArrayDynamicIndexing == rhs.shaderUniformBufferArrayDynamicIndexing ) - && ( shaderSampledImageArrayDynamicIndexing == rhs.shaderSampledImageArrayDynamicIndexing ) - && ( shaderStorageBufferArrayDynamicIndexing == rhs.shaderStorageBufferArrayDynamicIndexing ) - && ( shaderStorageImageArrayDynamicIndexing == rhs.shaderStorageImageArrayDynamicIndexing ) - && ( shaderClipDistance == rhs.shaderClipDistance ) - && ( shaderCullDistance == rhs.shaderCullDistance ) - && ( shaderFloat64 == rhs.shaderFloat64 ) - && ( shaderInt64 == rhs.shaderInt64 ) - && ( shaderInt16 == rhs.shaderInt16 ) - && ( shaderResourceResidency == rhs.shaderResourceResidency ) - && ( shaderResourceMinLod == rhs.shaderResourceMinLod ) - && ( sparseBinding == rhs.sparseBinding ) - && ( sparseResidencyBuffer == rhs.sparseResidencyBuffer ) - && ( sparseResidencyImage2D == rhs.sparseResidencyImage2D ) - && ( sparseResidencyImage3D == rhs.sparseResidencyImage3D ) - && ( sparseResidency2Samples == rhs.sparseResidency2Samples ) - && ( sparseResidency4Samples == rhs.sparseResidency4Samples ) - && ( sparseResidency8Samples == rhs.sparseResidency8Samples ) - && ( sparseResidency16Samples == rhs.sparseResidency16Samples ) - && ( sparseResidencyAliased == rhs.sparseResidencyAliased ) - && ( variableMultisampleRate == rhs.variableMultisampleRate ) - && ( inheritedQueries == rhs.inheritedQueries ); - } - - bool operator!=( PhysicalDeviceFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullDrawIndexUint32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageCubeArray = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 geometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 tessellationShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 sampleRateShading = {}; - VULKAN_HPP_NAMESPACE::Bool32 dualSrcBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 logicOp = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiDrawIndirect = {}; - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectFirstInstance = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClamp = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthBiasClamp = {}; - VULKAN_HPP_NAMESPACE::Bool32 fillModeNonSolid = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthBounds = {}; - VULKAN_HPP_NAMESPACE::Bool32 wideLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 largePoints = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToOne = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiViewport = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerAnisotropy = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionETC2 = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_LDR = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionBC = {}; - VULKAN_HPP_NAMESPACE::Bool32 occlusionQueryPrecise = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineStatisticsQuery = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexPipelineStoresAndAtomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentStoresAndAtomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderTessellationAndGeometryPointSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageGatherExtended = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageExtendedFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageMultisample = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageReadWithoutFormat = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageWriteWithoutFormat = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderClipDistance = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderCullDistance = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceResidency = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderResourceMinLod = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseBinding = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage2D = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyImage3D = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency2Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency4Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency8Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidency16Samples = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseResidencyAliased = {}; - VULKAN_HPP_NAMESPACE::Bool32 variableMultisampleRate = {}; - VULKAN_HPP_NAMESPACE::Bool32 inheritedQueries = {}; - - }; - static_assert( sizeof( PhysicalDeviceFeatures ) == sizeof( VkPhysicalDeviceFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DeviceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceCreateInfo(VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ = {}, uint32_t queueCreateInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ = {}, uint32_t enabledLayerCount_ = {}, const char* const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char* const * ppEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueCreateInfoCount( queueCreateInfoCount_ ), pQueueCreateInfos( pQueueCreateInfos_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ), pEnabledFeatures( pEnabledFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceCreateInfo( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceCreateInfo( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueCreateInfos_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ = {} ) - : flags( flags_ ), queueCreateInfoCount( static_cast( queueCreateInfos_.size() ) ), pQueueCreateInfos( queueCreateInfos_.data() ), enabledLayerCount( static_cast( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() ), pEnabledFeatures( pEnabledFeatures_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceCreateInfo & operator=( VkDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceCreateInfo & operator=( DeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceCreateInfo ) ); - return *this; - } - - DeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceCreateInfo & setQueueCreateInfoCount( uint32_t queueCreateInfoCount_ ) VULKAN_HPP_NOEXCEPT - { - queueCreateInfoCount = queueCreateInfoCount_; - return *this; - } - - DeviceCreateInfo & setPQueueCreateInfos( const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos_ ) VULKAN_HPP_NOEXCEPT - { - pQueueCreateInfos = pQueueCreateInfos_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo & setQueueCreateInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueCreateInfos_ ) VULKAN_HPP_NOEXCEPT - { - queueCreateInfoCount = static_cast( queueCreateInfos_.size() ); - pQueueCreateInfos = queueCreateInfos_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = enabledLayerCount_; - return *this; - } - - DeviceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledLayerNames = ppEnabledLayerNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = static_cast( pEnabledLayerNames_.size() ); - ppEnabledLayerNames = pEnabledLayerNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = enabledExtensionCount_; - return *this; - } - - DeviceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledExtensionNames = ppEnabledExtensionNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = static_cast( pEnabledExtensionNames_.size() ); - ppEnabledExtensionNames = pEnabledExtensionNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceCreateInfo & setPEnabledFeatures( const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures_ ) VULKAN_HPP_NOEXCEPT - { - pEnabledFeatures = pEnabledFeatures_; - return *this; - } - - - operator VkDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceCreateInfo const& ) const = default; -#else - bool operator==( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueCreateInfoCount == rhs.queueCreateInfoCount ) - && ( pQueueCreateInfos == rhs.pQueueCreateInfos ) - && ( enabledLayerCount == rhs.enabledLayerCount ) - && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) - && ( enabledExtensionCount == rhs.enabledExtensionCount ) - && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ) - && ( pEnabledFeatures == rhs.pEnabledFeatures ); - } - - bool operator!=( DeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceCreateFlags flags = {}; - uint32_t queueCreateInfoCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo* pQueueCreateInfos = {}; - uint32_t enabledLayerCount = {}; - const char* const * ppEnabledLayerNames = {}; - uint32_t enabledExtensionCount = {}; - const char* const * ppEnabledExtensionNames = {}; - const VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pEnabledFeatures = {}; - - }; - static_assert( sizeof( DeviceCreateInfo ) == sizeof( VkDeviceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceCreateInfo; - }; - - struct DeviceDeviceMemoryReportCreateInfoEXT - { - static const bool allowDuplicate = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ = {}, void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pfnUserCallback( pfnUserCallback_ ), pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceDeviceMemoryReportCreateInfoEXT( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceDeviceMemoryReportCreateInfoEXT( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceDeviceMemoryReportCreateInfoEXT & operator=( VkDeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & operator=( DeviceDeviceMemoryReportCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) ); - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setPfnUserCallback( PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback_ ) VULKAN_HPP_NOEXCEPT - { - pfnUserCallback = pfnUserCallback_; - return *this; - } - - DeviceDeviceMemoryReportCreateInfoEXT & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkDeviceDeviceMemoryReportCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceDeviceMemoryReportCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceDeviceMemoryReportCreateInfoEXT const& ) const = default; -#else - bool operator==( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pfnUserCallback == rhs.pfnUserCallback ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( DeviceDeviceMemoryReportCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDeviceMemoryReportCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {}; - PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( DeviceDeviceMemoryReportCreateInfoEXT ) == sizeof( VkDeviceDeviceMemoryReportCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceDeviceMemoryReportCreateInfoEXT; - }; - - struct DeviceDiagnosticsConfigCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV(VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceDiagnosticsConfigCreateInfoNV( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceDiagnosticsConfigCreateInfoNV( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceDiagnosticsConfigCreateInfoNV & operator=( VkDeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceDiagnosticsConfigCreateInfoNV & operator=( DeviceDiagnosticsConfigCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceDiagnosticsConfigCreateInfoNV ) ); - return *this; - } - - DeviceDiagnosticsConfigCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceDiagnosticsConfigCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkDeviceDiagnosticsConfigCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceDiagnosticsConfigCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceDiagnosticsConfigCreateInfoNV const& ) const = default; -#else - bool operator==( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( DeviceDiagnosticsConfigCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceDiagnosticsConfigCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigFlagsNV flags = {}; - - }; - static_assert( sizeof( DeviceDiagnosticsConfigCreateInfoNV ) == sizeof( VkDeviceDiagnosticsConfigCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceDiagnosticsConfigCreateInfoNV; - }; - - struct DeviceEventInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceEventInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT(VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug) VULKAN_HPP_NOEXCEPT - : deviceEvent( deviceEvent_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceEventInfoEXT( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceEventInfoEXT( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceEventInfoEXT & operator=( VkDeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceEventInfoEXT & operator=( DeviceEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceEventInfoEXT ) ); - return *this; - } - - DeviceEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceEventInfoEXT & setDeviceEvent( VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent_ ) VULKAN_HPP_NOEXCEPT - { - deviceEvent = deviceEvent_; - return *this; - } - - - operator VkDeviceEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceEventInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceEventInfoEXT const& ) const = default; -#else - bool operator==( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceEvent == rhs.deviceEvent ); - } - - bool operator!=( DeviceEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceEventInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT deviceEvent = VULKAN_HPP_NAMESPACE::DeviceEventTypeEXT::eDisplayHotplug; - - }; - static_assert( sizeof( DeviceEventInfoEXT ) == sizeof( VkDeviceEventInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceEventInfoEXT; - }; - - struct DeviceGroupBindSparseInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupBindSparseInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo(uint32_t resourceDeviceIndex_ = {}, uint32_t memoryDeviceIndex_ = {}) VULKAN_HPP_NOEXCEPT - : resourceDeviceIndex( resourceDeviceIndex_ ), memoryDeviceIndex( memoryDeviceIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupBindSparseInfo( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupBindSparseInfo( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupBindSparseInfo & operator=( VkDeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupBindSparseInfo & operator=( DeviceGroupBindSparseInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupBindSparseInfo ) ); - return *this; - } - - DeviceGroupBindSparseInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupBindSparseInfo & setResourceDeviceIndex( uint32_t resourceDeviceIndex_ ) VULKAN_HPP_NOEXCEPT - { - resourceDeviceIndex = resourceDeviceIndex_; - return *this; - } - - DeviceGroupBindSparseInfo & setMemoryDeviceIndex( uint32_t memoryDeviceIndex_ ) VULKAN_HPP_NOEXCEPT - { - memoryDeviceIndex = memoryDeviceIndex_; - return *this; - } - - - operator VkDeviceGroupBindSparseInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupBindSparseInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupBindSparseInfo const& ) const = default; -#else - bool operator==( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( resourceDeviceIndex == rhs.resourceDeviceIndex ) - && ( memoryDeviceIndex == rhs.memoryDeviceIndex ); - } - - bool operator!=( DeviceGroupBindSparseInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupBindSparseInfo; - const void* pNext = {}; - uint32_t resourceDeviceIndex = {}; - uint32_t memoryDeviceIndex = {}; - - }; - static_assert( sizeof( DeviceGroupBindSparseInfo ) == sizeof( VkDeviceGroupBindSparseInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupBindSparseInfo; - }; - using DeviceGroupBindSparseInfoKHR = DeviceGroupBindSparseInfo; - - struct DeviceGroupCommandBufferBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupCommandBufferBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo(uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT - : deviceMask( deviceMask_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupCommandBufferBeginInfo( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupCommandBufferBeginInfo( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupCommandBufferBeginInfo & operator=( VkDeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupCommandBufferBeginInfo & operator=( DeviceGroupCommandBufferBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupCommandBufferBeginInfo ) ); - return *this; - } - - DeviceGroupCommandBufferBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupCommandBufferBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - - operator VkDeviceGroupCommandBufferBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupCommandBufferBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupCommandBufferBeginInfo const& ) const = default; -#else - bool operator==( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMask == rhs.deviceMask ); - } - - bool operator!=( DeviceGroupCommandBufferBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupCommandBufferBeginInfo; - const void* pNext = {}; - uint32_t deviceMask = {}; - - }; - static_assert( sizeof( DeviceGroupCommandBufferBeginInfo ) == sizeof( VkDeviceGroupCommandBufferBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupCommandBufferBeginInfo; - }; - using DeviceGroupCommandBufferBeginInfoKHR = DeviceGroupCommandBufferBeginInfo; - - class DisplayKHR - { - public: - using CType = VkDisplayKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayKHR; - - public: - VULKAN_HPP_CONSTEXPR DisplayKHR() VULKAN_HPP_NOEXCEPT - : m_displayKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DisplayKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_displayKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DisplayKHR( VkDisplayKHR displayKHR ) VULKAN_HPP_NOEXCEPT - : m_displayKHR( displayKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DisplayKHR & operator=(VkDisplayKHR displayKHR) VULKAN_HPP_NOEXCEPT - { - m_displayKHR = displayKHR; - return *this; - } -#endif - - DisplayKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_displayKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayKHR const& ) const = default; -#else - bool operator==( DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR == rhs.m_displayKHR; - } - - bool operator!=(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR != rhs.m_displayKHR; - } - - bool operator<(DisplayKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR < rhs.m_displayKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayKHR() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_displayKHR == VK_NULL_HANDLE; - } - - private: - VkDisplayKHR m_displayKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayKHR ) == sizeof( VkDisplayKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DisplayKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct PerformanceConfigurationAcquireInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceConfigurationAcquireInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated) VULKAN_HPP_NOEXCEPT - : type( type_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceConfigurationAcquireInfoINTEL( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceConfigurationAcquireInfoINTEL( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceConfigurationAcquireInfoINTEL & operator=( VkPerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceConfigurationAcquireInfoINTEL & operator=( PerformanceConfigurationAcquireInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceConfigurationAcquireInfoINTEL ) ); - return *this; - } - - PerformanceConfigurationAcquireInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceConfigurationAcquireInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - - operator VkPerformanceConfigurationAcquireInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceConfigurationAcquireInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceConfigurationAcquireInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ); - } - - bool operator!=( PerformanceConfigurationAcquireInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceConfigurationAcquireInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationTypeINTEL::eCommandQueueMetricsDiscoveryActivated; - - }; - static_assert( sizeof( PerformanceConfigurationAcquireInfoINTEL ) == sizeof( VkPerformanceConfigurationAcquireInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceConfigurationAcquireInfoINTEL; - }; - - class PerformanceConfigurationINTEL - { - public: - using CType = VkPerformanceConfigurationINTEL; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePerformanceConfigurationINTEL; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL() VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PerformanceConfigurationINTEL( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PerformanceConfigurationINTEL( VkPerformanceConfigurationINTEL performanceConfigurationINTEL ) VULKAN_HPP_NOEXCEPT - : m_performanceConfigurationINTEL( performanceConfigurationINTEL ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PerformanceConfigurationINTEL & operator=(VkPerformanceConfigurationINTEL performanceConfigurationINTEL) VULKAN_HPP_NOEXCEPT - { - m_performanceConfigurationINTEL = performanceConfigurationINTEL; - return *this; - } -#endif - - PerformanceConfigurationINTEL & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_performanceConfigurationINTEL = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceConfigurationINTEL const& ) const = default; -#else - bool operator==( PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL == rhs.m_performanceConfigurationINTEL; - } - - bool operator!=(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL != rhs.m_performanceConfigurationINTEL; - } - - bool operator<(PerformanceConfigurationINTEL const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL < rhs.m_performanceConfigurationINTEL; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPerformanceConfigurationINTEL() const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_performanceConfigurationINTEL == VK_NULL_HANDLE; - } - - private: - VkPerformanceConfigurationINTEL m_performanceConfigurationINTEL; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL ) == sizeof( VkPerformanceConfigurationINTEL ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class QueryPool - { - public: - using CType = VkQueryPool; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueryPool; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueryPool; - - public: - VULKAN_HPP_CONSTEXPR QueryPool() VULKAN_HPP_NOEXCEPT - : m_queryPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR QueryPool( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_queryPool(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT QueryPool( VkQueryPool queryPool ) VULKAN_HPP_NOEXCEPT - : m_queryPool( queryPool ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - QueryPool & operator=(VkQueryPool queryPool) VULKAN_HPP_NOEXCEPT - { - m_queryPool = queryPool; - return *this; - } -#endif - - QueryPool & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_queryPool = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPool const& ) const = default; -#else - bool operator==( QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queryPool == rhs.m_queryPool; - } - - bool operator!=(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queryPool != rhs.m_queryPool; - } - - bool operator<(QueryPool const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queryPool < rhs.m_queryPool; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueryPool() const VULKAN_HPP_NOEXCEPT - { - return m_queryPool; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_queryPool != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_queryPool == VK_NULL_HANDLE; - } - - private: - VkQueryPool m_queryPool; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::QueryPool ) == sizeof( VkQueryPool ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::QueryPool; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::QueryPool; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::QueryPool; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct RenderPassBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo(VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ = {}, VULKAN_HPP_NAMESPACE::Rect2D renderArea_ = {}, uint32_t clearValueCount_ = {}, const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ = {}) VULKAN_HPP_NOEXCEPT - : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( clearValueCount_ ), pClearValues( pClearValues_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 RenderPassBeginInfo( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassBeginInfo( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassBeginInfo( VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_, VULKAN_HPP_NAMESPACE::Rect2D renderArea_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & clearValues_ ) - : renderPass( renderPass_ ), framebuffer( framebuffer_ ), renderArea( renderArea_ ), clearValueCount( static_cast( clearValues_.size() ) ), pClearValues( clearValues_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassBeginInfo & operator=( VkRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassBeginInfo & operator=( RenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassBeginInfo ) ); - return *this; - } - - RenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassBeginInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - RenderPassBeginInfo & setFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer_ ) VULKAN_HPP_NOEXCEPT - { - framebuffer = framebuffer_; - return *this; - } - - RenderPassBeginInfo & setRenderArea( VULKAN_HPP_NAMESPACE::Rect2D const & renderArea_ ) VULKAN_HPP_NOEXCEPT - { - renderArea = renderArea_; - return *this; - } - - RenderPassBeginInfo & setClearValueCount( uint32_t clearValueCount_ ) VULKAN_HPP_NOEXCEPT - { - clearValueCount = clearValueCount_; - return *this; - } - - RenderPassBeginInfo & setPClearValues( const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues_ ) VULKAN_HPP_NOEXCEPT - { - pClearValues = pClearValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassBeginInfo & setClearValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & clearValues_ ) VULKAN_HPP_NOEXCEPT - { - clearValueCount = static_cast( clearValues_.size() ); - pClearValues = clearValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassBeginInfo const& ) const = default; -#else - bool operator==( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( renderPass == rhs.renderPass ) - && ( framebuffer == rhs.framebuffer ) - && ( renderArea == rhs.renderArea ) - && ( clearValueCount == rhs.clearValueCount ) - && ( pClearValues == rhs.pClearValues ); - } - - bool operator!=( RenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer = {}; - VULKAN_HPP_NAMESPACE::Rect2D renderArea = {}; - uint32_t clearValueCount = {}; - const VULKAN_HPP_NAMESPACE::ClearValue* pClearValues = {}; - - }; - static_assert( sizeof( RenderPassBeginInfo ) == sizeof( VkRenderPassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassBeginInfo; - }; - - struct SubpassBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassBeginInfo(VULKAN_HPP_NAMESPACE::SubpassContents contents_ = VULKAN_HPP_NAMESPACE::SubpassContents::eInline) VULKAN_HPP_NOEXCEPT - : contents( contents_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassBeginInfo( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassBeginInfo( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassBeginInfo & operator=( VkSubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassBeginInfo & operator=( SubpassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassBeginInfo ) ); - return *this; - } - - SubpassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassBeginInfo & setContents( VULKAN_HPP_NAMESPACE::SubpassContents contents_ ) VULKAN_HPP_NOEXCEPT - { - contents = contents_; - return *this; - } - - - operator VkSubpassBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassBeginInfo const& ) const = default; -#else - bool operator==( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( contents == rhs.contents ); - } - - bool operator!=( SubpassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassBeginInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SubpassContents contents = VULKAN_HPP_NAMESPACE::SubpassContents::eInline; - - }; - static_assert( sizeof( SubpassBeginInfo ) == sizeof( VkSubpassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassBeginInfo; - }; - using SubpassBeginInfoKHR = SubpassBeginInfo; - - struct ImageBlit - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ImageBlit(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, std::array const& srcOffsets_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, std::array const& dstOffsets_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffsets( srcOffsets_ ), dstSubresource( dstSubresource_ ), dstOffsets( dstOffsets_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ImageBlit( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageBlit( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageBlit & operator=( VkImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageBlit & operator=( ImageBlit const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageBlit ) ); - return *this; - } - - ImageBlit & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageBlit & setSrcOffsets( std::array const & srcOffsets_ ) VULKAN_HPP_NOEXCEPT - { - srcOffsets = srcOffsets_; - return *this; - } - - ImageBlit & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageBlit & setDstOffsets( std::array const & dstOffsets_ ) VULKAN_HPP_NOEXCEPT - { - dstOffsets = dstOffsets_; - return *this; - } - - - operator VkImageBlit const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageBlit &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageBlit const& ) const = default; -#else - bool operator==( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffsets == rhs.srcOffsets ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffsets == rhs.dstOffsets ); - } - - bool operator!=( ImageBlit const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D srcOffsets = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D dstOffsets = {}; - - }; - static_assert( sizeof( ImageBlit ) == sizeof( VkImageBlit ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSubresourceRange - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSubresourceRange(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, uint32_t baseMipLevel_ = {}, uint32_t levelCount_ = {}, uint32_t baseArrayLayer_ = {}, uint32_t layerCount_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), baseMipLevel( baseMipLevel_ ), levelCount( levelCount_ ), baseArrayLayer( baseArrayLayer_ ), layerCount( layerCount_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSubresourceRange( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSubresourceRange( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageSubresourceRange & operator=( VkImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSubresourceRange & operator=( ImageSubresourceRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageSubresourceRange ) ); - return *this; - } - - ImageSubresourceRange & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - ImageSubresourceRange & setBaseMipLevel( uint32_t baseMipLevel_ ) VULKAN_HPP_NOEXCEPT - { - baseMipLevel = baseMipLevel_; - return *this; - } - - ImageSubresourceRange & setLevelCount( uint32_t levelCount_ ) VULKAN_HPP_NOEXCEPT - { - levelCount = levelCount_; - return *this; - } - - ImageSubresourceRange & setBaseArrayLayer( uint32_t baseArrayLayer_ ) VULKAN_HPP_NOEXCEPT - { - baseArrayLayer = baseArrayLayer_; - return *this; - } - - ImageSubresourceRange & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - - operator VkImageSubresourceRange const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSubresourceRange &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSubresourceRange const& ) const = default; -#else - bool operator==( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( baseMipLevel == rhs.baseMipLevel ) - && ( levelCount == rhs.levelCount ) - && ( baseArrayLayer == rhs.baseArrayLayer ) - && ( layerCount == rhs.layerCount ); - } - - bool operator!=( ImageSubresourceRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - uint32_t baseMipLevel = {}; - uint32_t levelCount = {}; - uint32_t baseArrayLayer = {}; - uint32_t layerCount = {}; - - }; - static_assert( sizeof( ImageSubresourceRange ) == sizeof( VkImageSubresourceRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageCopy - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageCopy(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageCopy( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCopy( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageCopy & operator=( VkImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageCopy & operator=( ImageCopy const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageCopy ) ); - return *this; - } - - ImageCopy & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageCopy & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageCopy & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageCopy & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageCopy & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageCopy const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageCopy &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageCopy const& ) const = default; -#else - bool operator==( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageCopy const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageCopy ) == sizeof( VkImageCopy ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SubpassEndInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassEndInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassEndInfo() VULKAN_HPP_NOEXCEPT - - {} - - VULKAN_HPP_CONSTEXPR SubpassEndInfo( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassEndInfo( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassEndInfo & operator=( VkSubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassEndInfo & operator=( SubpassEndInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassEndInfo ) ); - return *this; - } - - SubpassEndInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - - operator VkSubpassEndInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassEndInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassEndInfo const& ) const = default; -#else - bool operator==( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ); - } - - bool operator!=( SubpassEndInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassEndInfo; - const void* pNext = {}; - - }; - static_assert( sizeof( SubpassEndInfo ) == sizeof( VkSubpassEndInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassEndInfo; - }; - using SubpassEndInfoKHR = SubpassEndInfo; - - class IndirectCommandsLayoutNV - { - public: - using CType = VkIndirectCommandsLayoutNV; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eIndirectCommandsLayoutNV; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV() VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutNV( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNV(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT IndirectCommandsLayoutNV( VkIndirectCommandsLayoutNV indirectCommandsLayoutNV ) VULKAN_HPP_NOEXCEPT - : m_indirectCommandsLayoutNV( indirectCommandsLayoutNV ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - IndirectCommandsLayoutNV & operator=(VkIndirectCommandsLayoutNV indirectCommandsLayoutNV) VULKAN_HPP_NOEXCEPT - { - m_indirectCommandsLayoutNV = indirectCommandsLayoutNV; - return *this; - } -#endif - - IndirectCommandsLayoutNV & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_indirectCommandsLayoutNV = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsLayoutNV const& ) const = default; -#else - bool operator==( IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV == rhs.m_indirectCommandsLayoutNV; - } - - bool operator!=(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV != rhs.m_indirectCommandsLayoutNV; - } - - bool operator<(IndirectCommandsLayoutNV const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV < rhs.m_indirectCommandsLayoutNV; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkIndirectCommandsLayoutNV() const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_indirectCommandsLayoutNV == VK_NULL_HANDLE; - } - - private: - VkIndirectCommandsLayoutNV m_indirectCommandsLayoutNV; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV ) == sizeof( VkIndirectCommandsLayoutNV ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct IndirectCommandsStreamNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV(VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ), offset( offset_ ) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsStreamNV( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsStreamNV( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - IndirectCommandsStreamNV & operator=( VkIndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IndirectCommandsStreamNV & operator=( IndirectCommandsStreamNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( IndirectCommandsStreamNV ) ); - return *this; - } - - IndirectCommandsStreamNV & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - IndirectCommandsStreamNV & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - - operator VkIndirectCommandsStreamNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIndirectCommandsStreamNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsStreamNV const& ) const = default; -#else - bool operator==( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( buffer == rhs.buffer ) - && ( offset == rhs.offset ); - } - - bool operator!=( IndirectCommandsStreamNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - - }; - static_assert( sizeof( IndirectCommandsStreamNV ) == sizeof( VkIndirectCommandsStreamNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct GeneratedCommandsInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t streamCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ = {}, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( streamCount_ ), pStreams( pStreams_ ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR GeneratedCommandsInfoNV( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeneratedCommandsInfoNV( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GeneratedCommandsInfoNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::Pipeline pipeline_, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streams_, uint32_t sequencesCount_ = {}, VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ = {}, VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ = {} ) - : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), streamCount( static_cast( streams_.size() ) ), pStreams( streams_.data() ), sequencesCount( sequencesCount_ ), preprocessBuffer( preprocessBuffer_ ), preprocessOffset( preprocessOffset_ ), preprocessSize( preprocessSize_ ), sequencesCountBuffer( sequencesCountBuffer_ ), sequencesCountOffset( sequencesCountOffset_ ), sequencesIndexBuffer( sequencesIndexBuffer_ ), sequencesIndexOffset( sequencesIndexOffset_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GeneratedCommandsInfoNV & operator=( VkGeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeneratedCommandsInfoNV & operator=( GeneratedCommandsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GeneratedCommandsInfoNV ) ); - return *this; - } - - GeneratedCommandsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeneratedCommandsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - GeneratedCommandsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - GeneratedCommandsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT - { - indirectCommandsLayout = indirectCommandsLayout_; - return *this; - } - - GeneratedCommandsInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = streamCount_; - return *this; - } - - GeneratedCommandsInfoNV & setPStreams( const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams_ ) VULKAN_HPP_NOEXCEPT - { - pStreams = pStreams_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GeneratedCommandsInfoNV & setStreams( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streams_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = static_cast( streams_.size() ); - pStreams = streams_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GeneratedCommandsInfoNV & setSequencesCount( uint32_t sequencesCount_ ) VULKAN_HPP_NOEXCEPT - { - sequencesCount = sequencesCount_; - return *this; - } - - GeneratedCommandsInfoNV & setPreprocessBuffer( VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer_ ) VULKAN_HPP_NOEXCEPT - { - preprocessBuffer = preprocessBuffer_; - return *this; - } - - GeneratedCommandsInfoNV & setPreprocessOffset( VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset_ ) VULKAN_HPP_NOEXCEPT - { - preprocessOffset = preprocessOffset_; - return *this; - } - - GeneratedCommandsInfoNV & setPreprocessSize( VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize_ ) VULKAN_HPP_NOEXCEPT - { - preprocessSize = preprocessSize_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesCountBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer_ ) VULKAN_HPP_NOEXCEPT - { - sequencesCountBuffer = sequencesCountBuffer_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesCountOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset_ ) VULKAN_HPP_NOEXCEPT - { - sequencesCountOffset = sequencesCountOffset_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer_ ) VULKAN_HPP_NOEXCEPT - { - sequencesIndexBuffer = sequencesIndexBuffer_; - return *this; - } - - GeneratedCommandsInfoNV & setSequencesIndexOffset( VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset_ ) VULKAN_HPP_NOEXCEPT - { - sequencesIndexOffset = sequencesIndexOffset_; - return *this; - } - - - operator VkGeneratedCommandsInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeneratedCommandsInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeneratedCommandsInfoNV const& ) const = default; -#else - bool operator==( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( pipeline == rhs.pipeline ) - && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) - && ( streamCount == rhs.streamCount ) - && ( pStreams == rhs.pStreams ) - && ( sequencesCount == rhs.sequencesCount ) - && ( preprocessBuffer == rhs.preprocessBuffer ) - && ( preprocessOffset == rhs.preprocessOffset ) - && ( preprocessSize == rhs.preprocessSize ) - && ( sequencesCountBuffer == rhs.sequencesCountBuffer ) - && ( sequencesCountOffset == rhs.sequencesCountOffset ) - && ( sequencesIndexBuffer == rhs.sequencesIndexBuffer ) - && ( sequencesIndexOffset == rhs.sequencesIndexOffset ); - } - - bool operator!=( GeneratedCommandsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {}; - uint32_t streamCount = {}; - const VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV* pStreams = {}; - uint32_t sequencesCount = {}; - VULKAN_HPP_NAMESPACE::Buffer preprocessBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize preprocessOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize preprocessSize = {}; - VULKAN_HPP_NAMESPACE::Buffer sequencesCountBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sequencesCountOffset = {}; - VULKAN_HPP_NAMESPACE::Buffer sequencesIndexBuffer = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sequencesIndexOffset = {}; - - }; - static_assert( sizeof( GeneratedCommandsInfoNV ) == sizeof( VkGeneratedCommandsInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeneratedCommandsInfoNV; - }; - - struct MemoryBarrier - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryBarrier; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryBarrier( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryBarrier( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryBarrier & operator=( VkMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryBarrier & operator=( MemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryBarrier ) ); - return *this; - } - - MemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - MemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - - operator VkMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryBarrier &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryBarrier const& ) const = default; -#else - bool operator==( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ); - } - - bool operator!=( MemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - - }; - static_assert( sizeof( MemoryBarrier ) == sizeof( VkMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryBarrier; - }; - - struct ImageMemoryBarrier - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryBarrier; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageMemoryBarrier(VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t srcQueueFamilyIndex_ = {}, uint32_t dstQueueFamilyIndex_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}) VULKAN_HPP_NOEXCEPT - : srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), oldLayout( oldLayout_ ), newLayout( newLayout_ ), srcQueueFamilyIndex( srcQueueFamilyIndex_ ), dstQueueFamilyIndex( dstQueueFamilyIndex_ ), image( image_ ), subresourceRange( subresourceRange_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageMemoryBarrier( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryBarrier( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageMemoryBarrier & operator=( VkImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageMemoryBarrier & operator=( ImageMemoryBarrier const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageMemoryBarrier ) ); - return *this; - } - - ImageMemoryBarrier & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageMemoryBarrier & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - ImageMemoryBarrier & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - ImageMemoryBarrier & setOldLayout( VULKAN_HPP_NAMESPACE::ImageLayout oldLayout_ ) VULKAN_HPP_NOEXCEPT - { - oldLayout = oldLayout_; - return *this; - } - - ImageMemoryBarrier & setNewLayout( VULKAN_HPP_NAMESPACE::ImageLayout newLayout_ ) VULKAN_HPP_NOEXCEPT - { - newLayout = newLayout_; - return *this; - } - - ImageMemoryBarrier & setSrcQueueFamilyIndex( uint32_t srcQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - srcQueueFamilyIndex = srcQueueFamilyIndex_; - return *this; - } - - ImageMemoryBarrier & setDstQueueFamilyIndex( uint32_t dstQueueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - dstQueueFamilyIndex = dstQueueFamilyIndex_; - return *this; - } - - ImageMemoryBarrier & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - ImageMemoryBarrier & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT - { - subresourceRange = subresourceRange_; - return *this; - } - - - operator VkImageMemoryBarrier const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageMemoryBarrier &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageMemoryBarrier const& ) const = default; -#else - bool operator==( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( oldLayout == rhs.oldLayout ) - && ( newLayout == rhs.newLayout ) - && ( srcQueueFamilyIndex == rhs.srcQueueFamilyIndex ) - && ( dstQueueFamilyIndex == rhs.dstQueueFamilyIndex ) - && ( image == rhs.image ) - && ( subresourceRange == rhs.subresourceRange ); - } - - bool operator!=( ImageMemoryBarrier const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryBarrier; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::ImageLayout oldLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::ImageLayout newLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t srcQueueFamilyIndex = {}; - uint32_t dstQueueFamilyIndex = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; - - }; - static_assert( sizeof( ImageMemoryBarrier ) == sizeof( VkImageMemoryBarrier ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageMemoryBarrier; - }; - - class BufferView - { - public: - using CType = VkBufferView; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eBufferView; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eBufferView; - - public: - VULKAN_HPP_CONSTEXPR BufferView() VULKAN_HPP_NOEXCEPT - : m_bufferView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR BufferView( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_bufferView(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT BufferView( VkBufferView bufferView ) VULKAN_HPP_NOEXCEPT - : m_bufferView( bufferView ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - BufferView & operator=(VkBufferView bufferView) VULKAN_HPP_NOEXCEPT - { - m_bufferView = bufferView; - return *this; - } -#endif - - BufferView & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_bufferView = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( BufferView const& ) const = default; -#else - bool operator==( BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_bufferView == rhs.m_bufferView; - } - - bool operator!=(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_bufferView != rhs.m_bufferView; - } - - bool operator<(BufferView const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_bufferView < rhs.m_bufferView; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkBufferView() const VULKAN_HPP_NOEXCEPT - { - return m_bufferView; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_bufferView != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_bufferView == VK_NULL_HANDLE; - } - - private: - VkBufferView m_bufferView; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::BufferView ) == sizeof( VkBufferView ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::BufferView; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::BufferView; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::BufferView; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct WriteDescriptorSet - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSet; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSet(VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ = {}, uint32_t dstBinding_ = {}, uint32_t dstArrayElement_ = {}, uint32_t descriptorCount_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ = {}, const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ = {}) VULKAN_HPP_NOEXCEPT - : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( descriptorCount_ ), descriptorType( descriptorType_ ), pImageInfo( pImageInfo_ ), pBufferInfo( pBufferInfo_ ), pTexelBufferView( pTexelBufferView_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSet( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSet( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_, uint32_t dstBinding_, uint32_t dstArrayElement_, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferInfo_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & texelBufferView_ = {} ) - : dstSet( dstSet_ ), dstBinding( dstBinding_ ), dstArrayElement( dstArrayElement_ ), descriptorCount( static_cast( !imageInfo_.empty() ? imageInfo_.size() : !bufferInfo_.empty() ? bufferInfo_.size() : texelBufferView_.size() ) ), descriptorType( descriptorType_ ), pImageInfo( imageInfo_.data() ), pBufferInfo( bufferInfo_.data() ), pTexelBufferView( texelBufferView_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) == 1 ); -#else - if ( ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1 ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::WriteDescriptorSet::WriteDescriptorSet: ( !imageInfo_.empty() + !bufferInfo_.empty() + !texelBufferView_.empty() ) != 1" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - WriteDescriptorSet & operator=( VkWriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSet & operator=( WriteDescriptorSet const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( WriteDescriptorSet ) ); - return *this; - } - - WriteDescriptorSet & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSet & setDstSet( VULKAN_HPP_NAMESPACE::DescriptorSet dstSet_ ) VULKAN_HPP_NOEXCEPT - { - dstSet = dstSet_; - return *this; - } - - WriteDescriptorSet & setDstBinding( uint32_t dstBinding_ ) VULKAN_HPP_NOEXCEPT - { - dstBinding = dstBinding_; - return *this; - } - - WriteDescriptorSet & setDstArrayElement( uint32_t dstArrayElement_ ) VULKAN_HPP_NOEXCEPT - { - dstArrayElement = dstArrayElement_; - return *this; - } - - WriteDescriptorSet & setDescriptorCount( uint32_t descriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = descriptorCount_; - return *this; - } - - WriteDescriptorSet & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - WriteDescriptorSet & setPImageInfo( const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo_ ) VULKAN_HPP_NOEXCEPT - { - pImageInfo = pImageInfo_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet & setImageInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageInfo_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( imageInfo_.size() ); - pImageInfo = imageInfo_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - WriteDescriptorSet & setPBufferInfo( const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo_ ) VULKAN_HPP_NOEXCEPT - { - pBufferInfo = pBufferInfo_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet & setBufferInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & bufferInfo_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( bufferInfo_.size() ); - pBufferInfo = bufferInfo_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - WriteDescriptorSet & setPTexelBufferView( const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView_ ) VULKAN_HPP_NOEXCEPT - { - pTexelBufferView = pTexelBufferView_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSet & setTexelBufferView( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & texelBufferView_ ) VULKAN_HPP_NOEXCEPT - { - descriptorCount = static_cast( texelBufferView_.size() ); - pTexelBufferView = texelBufferView_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSet const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSet &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSet const& ) const = default; -#else - bool operator==( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dstSet == rhs.dstSet ) - && ( dstBinding == rhs.dstBinding ) - && ( dstArrayElement == rhs.dstArrayElement ) - && ( descriptorCount == rhs.descriptorCount ) - && ( descriptorType == rhs.descriptorType ) - && ( pImageInfo == rhs.pImageInfo ) - && ( pBufferInfo == rhs.pBufferInfo ) - && ( pTexelBufferView == rhs.pTexelBufferView ); - } - - bool operator!=( WriteDescriptorSet const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSet; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DescriptorSet dstSet = {}; - uint32_t dstBinding = {}; - uint32_t dstArrayElement = {}; - uint32_t descriptorCount = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - const VULKAN_HPP_NAMESPACE::DescriptorImageInfo* pImageInfo = {}; - const VULKAN_HPP_NAMESPACE::DescriptorBufferInfo* pBufferInfo = {}; - const VULKAN_HPP_NAMESPACE::BufferView* pTexelBufferView = {}; - - }; - static_assert( sizeof( WriteDescriptorSet ) == sizeof( VkWriteDescriptorSet ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSet; - }; - - class DescriptorUpdateTemplate - { - public: - using CType = VkDescriptorUpdateTemplate; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDescriptorUpdateTemplate; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDescriptorUpdateTemplate; - - public: - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate() VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DescriptorUpdateTemplate( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DescriptorUpdateTemplate( VkDescriptorUpdateTemplate descriptorUpdateTemplate ) VULKAN_HPP_NOEXCEPT - : m_descriptorUpdateTemplate( descriptorUpdateTemplate ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DescriptorUpdateTemplate & operator=(VkDescriptorUpdateTemplate descriptorUpdateTemplate) VULKAN_HPP_NOEXCEPT - { - m_descriptorUpdateTemplate = descriptorUpdateTemplate; - return *this; - } -#endif - - DescriptorUpdateTemplate & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_descriptorUpdateTemplate = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DescriptorUpdateTemplate const& ) const = default; -#else - bool operator==( DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate == rhs.m_descriptorUpdateTemplate; - } - - bool operator!=(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate != rhs.m_descriptorUpdateTemplate; - } - - bool operator<(DescriptorUpdateTemplate const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate < rhs.m_descriptorUpdateTemplate; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDescriptorUpdateTemplate() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_descriptorUpdateTemplate == VK_NULL_HANDLE; - } - - private: - VkDescriptorUpdateTemplate m_descriptorUpdateTemplate; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate ) == sizeof( VkDescriptorUpdateTemplate ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - using DescriptorUpdateTemplateKHR = DescriptorUpdateTemplate; - - class Event - { - public: - using CType = VkEvent; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eEvent; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eEvent; - - public: - VULKAN_HPP_CONSTEXPR Event() VULKAN_HPP_NOEXCEPT - : m_event(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Event( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_event(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Event( VkEvent event ) VULKAN_HPP_NOEXCEPT - : m_event( event ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Event & operator=(VkEvent event) VULKAN_HPP_NOEXCEPT - { - m_event = event; - return *this; - } -#endif - - Event & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_event = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Event const& ) const = default; -#else - bool operator==( Event const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_event == rhs.m_event; - } - - bool operator!=(Event const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_event != rhs.m_event; - } - - bool operator<(Event const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_event < rhs.m_event; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkEvent() const VULKAN_HPP_NOEXCEPT - { - return m_event; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_event != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_event == VK_NULL_HANDLE; - } - - private: - VkEvent m_event; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Event ) == sizeof( VkEvent ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Event; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Event; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Event; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct ImageResolve - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageResolve(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageResolve( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageResolve( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageResolve & operator=( VkImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageResolve & operator=( ImageResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageResolve ) ); - return *this; - } - - ImageResolve & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageResolve & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageResolve & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageResolve & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageResolve & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageResolve const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageResolve &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageResolve const& ) const = default; -#else - bool operator==( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageResolve ) == sizeof( VkImageResolve ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageResolve2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageResolve2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageResolve2KHR(VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D srcOffset_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource_ = {}, VULKAN_HPP_NAMESPACE::Offset3D dstOffset_ = {}, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubresource( srcSubresource_ ), srcOffset( srcOffset_ ), dstSubresource( dstSubresource_ ), dstOffset( dstOffset_ ), extent( extent_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageResolve2KHR( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageResolve2KHR( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageResolve2KHR & operator=( VkImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageResolve2KHR & operator=( ImageResolve2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageResolve2KHR ) ); - return *this; - } - - ImageResolve2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageResolve2KHR & setSrcSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & srcSubresource_ ) VULKAN_HPP_NOEXCEPT - { - srcSubresource = srcSubresource_; - return *this; - } - - ImageResolve2KHR & setSrcOffset( VULKAN_HPP_NAMESPACE::Offset3D const & srcOffset_ ) VULKAN_HPP_NOEXCEPT - { - srcOffset = srcOffset_; - return *this; - } - - ImageResolve2KHR & setDstSubresource( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & dstSubresource_ ) VULKAN_HPP_NOEXCEPT - { - dstSubresource = dstSubresource_; - return *this; - } - - ImageResolve2KHR & setDstOffset( VULKAN_HPP_NAMESPACE::Offset3D const & dstOffset_ ) VULKAN_HPP_NOEXCEPT - { - dstOffset = dstOffset_; - return *this; - } - - ImageResolve2KHR & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - - operator VkImageResolve2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageResolve2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageResolve2KHR const& ) const = default; -#else - bool operator==( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubresource == rhs.srcSubresource ) - && ( srcOffset == rhs.srcOffset ) - && ( dstSubresource == rhs.dstSubresource ) - && ( dstOffset == rhs.dstOffset ) - && ( extent == rhs.extent ); - } - - bool operator!=( ImageResolve2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageResolve2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers srcSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D srcOffset = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceLayers dstSubresource = {}; - VULKAN_HPP_NAMESPACE::Offset3D dstOffset = {}; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - - }; - static_assert( sizeof( ImageResolve2KHR ) == sizeof( VkImageResolve2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageResolve2KHR; - }; - - struct ResolveImageInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eResolveImageInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR(VULKAN_HPP_NAMESPACE::Image srcImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, VULKAN_HPP_NAMESPACE::Image dstImage_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined, uint32_t regionCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( regionCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR ResolveImageInfo2KHR( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ResolveImageInfo2KHR( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ResolveImageInfo2KHR( VULKAN_HPP_NAMESPACE::Image srcImage_, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_, VULKAN_HPP_NAMESPACE::Image dstImage_, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : srcImage( srcImage_ ), srcImageLayout( srcImageLayout_ ), dstImage( dstImage_ ), dstImageLayout( dstImageLayout_ ), regionCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ResolveImageInfo2KHR & operator=( VkResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ResolveImageInfo2KHR & operator=( ResolveImageInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ResolveImageInfo2KHR ) ); - return *this; - } - - ResolveImageInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ResolveImageInfo2KHR & setSrcImage( VULKAN_HPP_NAMESPACE::Image srcImage_ ) VULKAN_HPP_NOEXCEPT - { - srcImage = srcImage_; - return *this; - } - - ResolveImageInfo2KHR & setSrcImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - srcImageLayout = srcImageLayout_; - return *this; - } - - ResolveImageInfo2KHR & setDstImage( VULKAN_HPP_NAMESPACE::Image dstImage_ ) VULKAN_HPP_NOEXCEPT - { - dstImage = dstImage_; - return *this; - } - - ResolveImageInfo2KHR & setDstImageLayout( VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout_ ) VULKAN_HPP_NOEXCEPT - { - dstImageLayout = dstImageLayout_; - return *this; - } - - ResolveImageInfo2KHR & setRegionCount( uint32_t regionCount_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = regionCount_; - return *this; - } - - ResolveImageInfo2KHR & setPRegions( const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ResolveImageInfo2KHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - regionCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkResolveImageInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkResolveImageInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ResolveImageInfo2KHR const& ) const = default; -#else - bool operator==( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcImage == rhs.srcImage ) - && ( srcImageLayout == rhs.srcImageLayout ) - && ( dstImage == rhs.dstImage ) - && ( dstImageLayout == rhs.dstImageLayout ) - && ( regionCount == rhs.regionCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( ResolveImageInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eResolveImageInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image srcImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - VULKAN_HPP_NAMESPACE::Image dstImage = {}; - VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - uint32_t regionCount = {}; - const VULKAN_HPP_NAMESPACE::ImageResolve2KHR* pRegions = {}; - - }; - static_assert( sizeof( ResolveImageInfo2KHR ) == sizeof( VkResolveImageInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ResolveImageInfo2KHR; - }; - - struct PerformanceMarkerInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceMarkerInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL(uint64_t marker_ = {}) VULKAN_HPP_NOEXCEPT - : marker( marker_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceMarkerInfoINTEL( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceMarkerInfoINTEL( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceMarkerInfoINTEL & operator=( VkPerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceMarkerInfoINTEL & operator=( PerformanceMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceMarkerInfoINTEL ) ); - return *this; - } - - PerformanceMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceMarkerInfoINTEL & setMarker( uint64_t marker_ ) VULKAN_HPP_NOEXCEPT - { - marker = marker_; - return *this; - } - - - operator VkPerformanceMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceMarkerInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( marker == rhs.marker ); - } - - bool operator!=( PerformanceMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceMarkerInfoINTEL; - const void* pNext = {}; - uint64_t marker = {}; - - }; - static_assert( sizeof( PerformanceMarkerInfoINTEL ) == sizeof( VkPerformanceMarkerInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceMarkerInfoINTEL; - }; - - struct PerformanceOverrideInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceOverrideInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL(VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware, VULKAN_HPP_NAMESPACE::Bool32 enable_ = {}, uint64_t parameter_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), enable( enable_ ), parameter( parameter_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceOverrideInfoINTEL( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceOverrideInfoINTEL( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceOverrideInfoINTEL & operator=( VkPerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceOverrideInfoINTEL & operator=( PerformanceOverrideInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceOverrideInfoINTEL ) ); - return *this; - } - - PerformanceOverrideInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceOverrideInfoINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PerformanceOverrideInfoINTEL & setEnable( VULKAN_HPP_NAMESPACE::Bool32 enable_ ) VULKAN_HPP_NOEXCEPT - { - enable = enable_; - return *this; - } - - PerformanceOverrideInfoINTEL & setParameter( uint64_t parameter_ ) VULKAN_HPP_NOEXCEPT - { - parameter = parameter_; - return *this; - } - - - operator VkPerformanceOverrideInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceOverrideInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceOverrideInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( enable == rhs.enable ) - && ( parameter == rhs.parameter ); - } - - bool operator!=( PerformanceOverrideInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceOverrideInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceOverrideTypeINTEL::eNullHardware; - VULKAN_HPP_NAMESPACE::Bool32 enable = {}; - uint64_t parameter = {}; - - }; - static_assert( sizeof( PerformanceOverrideInfoINTEL ) == sizeof( VkPerformanceOverrideInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceOverrideInfoINTEL; - }; - - struct PerformanceStreamMarkerInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceStreamMarkerInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL(uint32_t marker_ = {}) VULKAN_HPP_NOEXCEPT - : marker( marker_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceStreamMarkerInfoINTEL( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceStreamMarkerInfoINTEL( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceStreamMarkerInfoINTEL & operator=( VkPerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceStreamMarkerInfoINTEL & operator=( PerformanceStreamMarkerInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceStreamMarkerInfoINTEL ) ); - return *this; - } - - PerformanceStreamMarkerInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceStreamMarkerInfoINTEL & setMarker( uint32_t marker_ ) VULKAN_HPP_NOEXCEPT - { - marker = marker_; - return *this; - } - - - operator VkPerformanceStreamMarkerInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceStreamMarkerInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceStreamMarkerInfoINTEL const& ) const = default; -#else - bool operator==( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( marker == rhs.marker ); - } - - bool operator!=( PerformanceStreamMarkerInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceStreamMarkerInfoINTEL; - const void* pNext = {}; - uint32_t marker = {}; - - }; - static_assert( sizeof( PerformanceStreamMarkerInfoINTEL ) == sizeof( VkPerformanceStreamMarkerInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceStreamMarkerInfoINTEL; - }; - - struct Viewport - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Viewport(float x_ = {}, float y_ = {}, float width_ = {}, float height_ = {}, float minDepth_ = {}, float maxDepth_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), width( width_ ), height( height_ ), minDepth( minDepth_ ), maxDepth( maxDepth_ ) - {} - - VULKAN_HPP_CONSTEXPR Viewport( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Viewport( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Viewport & operator=( VkViewport const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Viewport & operator=( Viewport const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Viewport ) ); - return *this; - } - - Viewport & setX( float x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - Viewport & setY( float y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - Viewport & setWidth( float width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - Viewport & setHeight( float height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - Viewport & setMinDepth( float minDepth_ ) VULKAN_HPP_NOEXCEPT - { - minDepth = minDepth_; - return *this; - } - - Viewport & setMaxDepth( float maxDepth_ ) VULKAN_HPP_NOEXCEPT - { - maxDepth = maxDepth_; - return *this; - } - - - operator VkViewport const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViewport &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Viewport const& ) const = default; -#else - bool operator==( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( minDepth == rhs.minDepth ) - && ( maxDepth == rhs.maxDepth ); - } - - bool operator!=( Viewport const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float x = {}; - float y = {}; - float width = {}; - float height = {}; - float minDepth = {}; - float maxDepth = {}; - - }; - static_assert( sizeof( Viewport ) == sizeof( VkViewport ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ShadingRatePaletteNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV(uint32_t shadingRatePaletteEntryCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRatePaletteEntryCount( shadingRatePaletteEntryCount_ ), pShadingRatePaletteEntries( pShadingRatePaletteEntries_ ) - {} - - VULKAN_HPP_CONSTEXPR ShadingRatePaletteNV( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShadingRatePaletteNV( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShadingRatePaletteNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePaletteEntries_ ) - : shadingRatePaletteEntryCount( static_cast( shadingRatePaletteEntries_.size() ) ), pShadingRatePaletteEntries( shadingRatePaletteEntries_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ShadingRatePaletteNV & operator=( VkShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShadingRatePaletteNV & operator=( ShadingRatePaletteNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ShadingRatePaletteNV ) ); - return *this; - } - - ShadingRatePaletteNV & setShadingRatePaletteEntryCount( uint32_t shadingRatePaletteEntryCount_ ) VULKAN_HPP_NOEXCEPT - { - shadingRatePaletteEntryCount = shadingRatePaletteEntryCount_; - return *this; - } - - ShadingRatePaletteNV & setPShadingRatePaletteEntries( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT - { - pShadingRatePaletteEntries = pShadingRatePaletteEntries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShadingRatePaletteNV & setShadingRatePaletteEntries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePaletteEntries_ ) VULKAN_HPP_NOEXCEPT - { - shadingRatePaletteEntryCount = static_cast( shadingRatePaletteEntries_.size() ); - pShadingRatePaletteEntries = shadingRatePaletteEntries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkShadingRatePaletteNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShadingRatePaletteNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShadingRatePaletteNV const& ) const = default; -#else - bool operator==( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( shadingRatePaletteEntryCount == rhs.shadingRatePaletteEntryCount ) - && ( pShadingRatePaletteEntries == rhs.pShadingRatePaletteEntries ); - } - - bool operator!=( ShadingRatePaletteNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t shadingRatePaletteEntryCount = {}; - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteEntryNV* pShadingRatePaletteEntries = {}; - - }; - static_assert( sizeof( ShadingRatePaletteNV ) == sizeof( VkShadingRatePaletteNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ViewportWScalingNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ViewportWScalingNV(float xcoeff_ = {}, float ycoeff_ = {}) VULKAN_HPP_NOEXCEPT - : xcoeff( xcoeff_ ), ycoeff( ycoeff_ ) - {} - - VULKAN_HPP_CONSTEXPR ViewportWScalingNV( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViewportWScalingNV( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ViewportWScalingNV & operator=( VkViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ViewportWScalingNV & operator=( ViewportWScalingNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ViewportWScalingNV ) ); - return *this; - } - - ViewportWScalingNV & setXcoeff( float xcoeff_ ) VULKAN_HPP_NOEXCEPT - { - xcoeff = xcoeff_; - return *this; - } - - ViewportWScalingNV & setYcoeff( float ycoeff_ ) VULKAN_HPP_NOEXCEPT - { - ycoeff = ycoeff_; - return *this; - } - - - operator VkViewportWScalingNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViewportWScalingNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ViewportWScalingNV const& ) const = default; -#else - bool operator==( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( xcoeff == rhs.xcoeff ) - && ( ycoeff == rhs.ycoeff ); - } - - bool operator!=( ViewportWScalingNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float xcoeff = {}; - float ycoeff = {}; - - }; - static_assert( sizeof( ViewportWScalingNV ) == sizeof( VkViewportWScalingNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct StridedDeviceAddressRegionKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize stride_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : deviceAddress( deviceAddress_ ), stride( stride_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR StridedDeviceAddressRegionKHR( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StridedDeviceAddressRegionKHR( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - StridedDeviceAddressRegionKHR & operator=( VkStridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - StridedDeviceAddressRegionKHR & operator=( StridedDeviceAddressRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( StridedDeviceAddressRegionKHR ) ); - return *this; - } - - StridedDeviceAddressRegionKHR & setDeviceAddress( VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - deviceAddress = deviceAddress_; - return *this; - } - - StridedDeviceAddressRegionKHR & setStride( VULKAN_HPP_NAMESPACE::DeviceSize stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - StridedDeviceAddressRegionKHR & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkStridedDeviceAddressRegionKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkStridedDeviceAddressRegionKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( StridedDeviceAddressRegionKHR const& ) const = default; -#else - bool operator==( StridedDeviceAddressRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( deviceAddress == rhs.deviceAddress ) - && ( stride == rhs.stride ) - && ( size == rhs.size ); - } - - bool operator!=( StridedDeviceAddressRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - VULKAN_HPP_NAMESPACE::DeviceSize stride = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( StridedDeviceAddressRegionKHR ) == sizeof( VkStridedDeviceAddressRegionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - class CommandBuffer - { - public: - using CType = VkCommandBuffer; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eCommandBuffer; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eCommandBuffer; - - public: - VULKAN_HPP_CONSTEXPR CommandBuffer() VULKAN_HPP_NOEXCEPT - : m_commandBuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR CommandBuffer( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_commandBuffer(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT CommandBuffer( VkCommandBuffer commandBuffer ) VULKAN_HPP_NOEXCEPT - : m_commandBuffer( commandBuffer ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - CommandBuffer & operator=(VkCommandBuffer commandBuffer) VULKAN_HPP_NOEXCEPT - { - m_commandBuffer = commandBuffer; - return *this; - } -#endif - - CommandBuffer & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_commandBuffer = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( CommandBuffer const& ) const = default; -#else - bool operator==( CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer == rhs.m_commandBuffer; - } - - bool operator!=(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer != rhs.m_commandBuffer; - } - - bool operator<(CommandBuffer const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer < rhs.m_commandBuffer; - } -#endif - - - template - VULKAN_HPP_NODISCARD Result begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy const & descriptorSets, ArrayProxy const & dynamicOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindVertexBuffers( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, ArrayProxy const & strides VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void buildAccelerationStructuresIndirectKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::DeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void buildAccelerationStructuresIndirectKHR( ArrayProxy const & infos, ArrayProxy const & indirectDeviceAddresses, ArrayProxy const & indirectStrides, ArrayProxy const & pMaxPrimitiveCounts, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void buildAccelerationStructuresKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void buildAccelerationStructuresKHR( ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearAttachments( ArrayProxy const & attachments, ArrayProxy const & rects, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy const & ranges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy const & ranges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void debugMarkerEndEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endConditionalRenderingEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endDebugUtilsLabelEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endRenderPass( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void executeCommands( ArrayProxy const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy const & values, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy const & descriptorWrites, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setBlendConstants( const float blendConstants[4], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy const & customSampleOrders, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDeviceMask( uint32_t deviceMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy const & discardRectangles, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy const & exclusiveScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setLineWidth( float lineWidth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - VULKAN_HPP_NODISCARD Result setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setScissor( uint32_t firstScissor, ArrayProxy const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setScissorWithCountEXT( ArrayProxy const & scissors, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewport( uint32_t firstViewport, ArrayProxy const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy const & shadingRatePalettes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportWScalingNV( uint32_t firstViewport, ArrayProxy const & viewportWScalings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setViewportWithCountEXT( ArrayProxy const & viewports, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy const & data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void waitEvents( ArrayProxy const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void writeAccelerationStructuresPropertiesNV( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type end( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkCommandBuffer() const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_commandBuffer == VK_NULL_HANDLE; - } - - private: - VkCommandBuffer m_commandBuffer; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::CommandBuffer ) == sizeof( VkCommandBuffer ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::CommandBuffer; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandBuffer; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::CommandBuffer; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct MemoryAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryAllocateInfo(VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ = {}, uint32_t memoryTypeIndex_ = {}) VULKAN_HPP_NOEXCEPT - : allocationSize( allocationSize_ ), memoryTypeIndex( memoryTypeIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryAllocateInfo( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryAllocateInfo( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryAllocateInfo & operator=( VkMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryAllocateInfo & operator=( MemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryAllocateInfo ) ); - return *this; - } - - MemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryAllocateInfo & setAllocationSize( VULKAN_HPP_NAMESPACE::DeviceSize allocationSize_ ) VULKAN_HPP_NOEXCEPT - { - allocationSize = allocationSize_; - return *this; - } - - MemoryAllocateInfo & setMemoryTypeIndex( uint32_t memoryTypeIndex_ ) VULKAN_HPP_NOEXCEPT - { - memoryTypeIndex = memoryTypeIndex_; - return *this; - } - - - operator VkMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryAllocateInfo const& ) const = default; -#else - bool operator==( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allocationSize == rhs.allocationSize ) - && ( memoryTypeIndex == rhs.memoryTypeIndex ); - } - - bool operator!=( MemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize allocationSize = {}; - uint32_t memoryTypeIndex = {}; - - }; - static_assert( sizeof( MemoryAllocateInfo ) == sizeof( VkMemoryAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryAllocateInfo; - }; - - class DeferredOperationKHR - { - public: - using CType = VkDeferredOperationKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDeferredOperationKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR DeferredOperationKHR() VULKAN_HPP_NOEXCEPT - : m_deferredOperationKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DeferredOperationKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_deferredOperationKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DeferredOperationKHR( VkDeferredOperationKHR deferredOperationKHR ) VULKAN_HPP_NOEXCEPT - : m_deferredOperationKHR( deferredOperationKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DeferredOperationKHR & operator=(VkDeferredOperationKHR deferredOperationKHR) VULKAN_HPP_NOEXCEPT - { - m_deferredOperationKHR = deferredOperationKHR; - return *this; - } -#endif - - DeferredOperationKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_deferredOperationKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeferredOperationKHR const& ) const = default; -#else - bool operator==( DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR == rhs.m_deferredOperationKHR; - } - - bool operator!=(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR != rhs.m_deferredOperationKHR; - } - - bool operator<(DeferredOperationKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR < rhs.m_deferredOperationKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDeferredOperationKHR() const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_deferredOperationKHR == VK_NULL_HANDLE; - } - - private: - VkDeferredOperationKHR m_deferredOperationKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DeferredOperationKHR ) == sizeof( VkDeferredOperationKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DeferredOperationKHR; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class PipelineCache - { - public: - using CType = VkPipelineCache; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePipelineCache; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePipelineCache; - - public: - VULKAN_HPP_CONSTEXPR PipelineCache() VULKAN_HPP_NOEXCEPT - : m_pipelineCache(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PipelineCache( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_pipelineCache(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PipelineCache( VkPipelineCache pipelineCache ) VULKAN_HPP_NOEXCEPT - : m_pipelineCache( pipelineCache ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PipelineCache & operator=(VkPipelineCache pipelineCache) VULKAN_HPP_NOEXCEPT - { - m_pipelineCache = pipelineCache; - return *this; - } -#endif - - PipelineCache & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_pipelineCache = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCache const& ) const = default; -#else - bool operator==( PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache == rhs.m_pipelineCache; - } - - bool operator!=(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache != rhs.m_pipelineCache; - } - - bool operator<(PipelineCache const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache < rhs.m_pipelineCache; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPipelineCache() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_pipelineCache == VK_NULL_HANDLE; - } - - private: - VkPipelineCache m_pipelineCache; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PipelineCache ) == sizeof( VkPipelineCache ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PipelineCache; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineCache; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PipelineCache; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct EventCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eEventCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR EventCreateInfo(VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR EventCreateInfo( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - EventCreateInfo( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - EventCreateInfo & operator=( VkEventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - EventCreateInfo & operator=( EventCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( EventCreateInfo ) ); - return *this; - } - - EventCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - EventCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::EventCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkEventCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkEventCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( EventCreateInfo const& ) const = default; -#else - bool operator==( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( EventCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eEventCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::EventCreateFlags flags = {}; - - }; - static_assert( sizeof( EventCreateInfo ) == sizeof( VkEventCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = EventCreateInfo; - }; - - struct FenceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FenceCreateInfo(VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR FenceCreateInfo( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceCreateInfo( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FenceCreateInfo & operator=( VkFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FenceCreateInfo & operator=( FenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FenceCreateInfo ) ); - return *this; - } - - FenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FenceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FenceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFenceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FenceCreateInfo const& ) const = default; -#else - bool operator==( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( FenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FenceCreateFlags flags = {}; - - }; - static_assert( sizeof( FenceCreateInfo ) == sizeof( VkFenceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FenceCreateInfo; - }; - - struct FramebufferCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferCreateInfo(VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), width( width_ ), height( height_ ), layers( layers_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferCreateInfo( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferCreateInfo( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferCreateInfo( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_, VULKAN_HPP_NAMESPACE::RenderPass renderPass_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layers_ = {} ) - : flags( flags_ ), renderPass( renderPass_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), width( width_ ), height( height_ ), layers( layers_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FramebufferCreateInfo & operator=( VkFramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FramebufferCreateInfo & operator=( FramebufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FramebufferCreateInfo ) ); - return *this; - } - - FramebufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FramebufferCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - FramebufferCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - FramebufferCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - FramebufferCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - FramebufferCreateInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - FramebufferCreateInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - FramebufferCreateInfo & setLayers( uint32_t layers_ ) VULKAN_HPP_NOEXCEPT - { - layers = layers_; - return *this; - } - - - operator VkFramebufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferCreateInfo const& ) const = default; -#else - bool operator==( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( renderPass == rhs.renderPass ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( layers == rhs.layers ); - } - - bool operator!=( FramebufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FramebufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {}; - uint32_t width = {}; - uint32_t height = {}; - uint32_t layers = {}; - - }; - static_assert( sizeof( FramebufferCreateInfo ) == sizeof( VkFramebufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferCreateInfo; - }; - - struct VertexInputBindingDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR VertexInputBindingDescription(uint32_t binding_ = {}, uint32_t stride_ = {}, VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex) VULKAN_HPP_NOEXCEPT - : binding( binding_ ), stride( stride_ ), inputRate( inputRate_ ) - {} - - VULKAN_HPP_CONSTEXPR VertexInputBindingDescription( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputBindingDescription( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VertexInputBindingDescription & operator=( VkVertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - VertexInputBindingDescription & operator=( VertexInputBindingDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( VertexInputBindingDescription ) ); - return *this; - } - - VertexInputBindingDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - VertexInputBindingDescription & setStride( uint32_t stride_ ) VULKAN_HPP_NOEXCEPT - { - stride = stride_; - return *this; - } - - VertexInputBindingDescription & setInputRate( VULKAN_HPP_NAMESPACE::VertexInputRate inputRate_ ) VULKAN_HPP_NOEXCEPT - { - inputRate = inputRate_; - return *this; - } - - - operator VkVertexInputBindingDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkVertexInputBindingDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( VertexInputBindingDescription const& ) const = default; -#else - bool operator==( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( binding == rhs.binding ) - && ( stride == rhs.stride ) - && ( inputRate == rhs.inputRate ); - } - - bool operator!=( VertexInputBindingDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t binding = {}; - uint32_t stride = {}; - VULKAN_HPP_NAMESPACE::VertexInputRate inputRate = VULKAN_HPP_NAMESPACE::VertexInputRate::eVertex; - - }; - static_assert( sizeof( VertexInputBindingDescription ) == sizeof( VkVertexInputBindingDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct VertexInputAttributeDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription(uint32_t location_ = {}, uint32_t binding_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, uint32_t offset_ = {}) VULKAN_HPP_NOEXCEPT - : location( location_ ), binding( binding_ ), format( format_ ), offset( offset_ ) - {} - - VULKAN_HPP_CONSTEXPR VertexInputAttributeDescription( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputAttributeDescription( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VertexInputAttributeDescription & operator=( VkVertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - VertexInputAttributeDescription & operator=( VertexInputAttributeDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( VertexInputAttributeDescription ) ); - return *this; - } - - VertexInputAttributeDescription & setLocation( uint32_t location_ ) VULKAN_HPP_NOEXCEPT - { - location = location_; - return *this; - } - - VertexInputAttributeDescription & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - VertexInputAttributeDescription & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - VertexInputAttributeDescription & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - - operator VkVertexInputAttributeDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkVertexInputAttributeDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( VertexInputAttributeDescription const& ) const = default; -#else - bool operator==( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( location == rhs.location ) - && ( binding == rhs.binding ) - && ( format == rhs.format ) - && ( offset == rhs.offset ); - } - - bool operator!=( VertexInputAttributeDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t location = {}; - uint32_t binding = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - uint32_t offset = {}; - - }; - static_assert( sizeof( VertexInputAttributeDescription ) == sizeof( VkVertexInputAttributeDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineVertexInputStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ = {}, uint32_t vertexBindingDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ = {}, uint32_t vertexAttributeDescriptionCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), vertexBindingDescriptionCount( vertexBindingDescriptionCount_ ), pVertexBindingDescriptions( pVertexBindingDescriptions_ ), vertexAttributeDescriptionCount( vertexAttributeDescriptionCount_ ), pVertexAttributeDescriptions( pVertexAttributeDescriptions_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineVertexInputStateCreateInfo( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineVertexInputStateCreateInfo( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDescriptions_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexAttributeDescriptions_ = {} ) - : flags( flags_ ), vertexBindingDescriptionCount( static_cast( vertexBindingDescriptions_.size() ) ), pVertexBindingDescriptions( vertexBindingDescriptions_.data() ), vertexAttributeDescriptionCount( static_cast( vertexAttributeDescriptions_.size() ) ), pVertexAttributeDescriptions( vertexAttributeDescriptions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineVertexInputStateCreateInfo & operator=( VkPipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineVertexInputStateCreateInfo & operator=( PipelineVertexInputStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineVertexInputStateCreateInfo ) ); - return *this; - } - - PipelineVertexInputStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setVertexBindingDescriptionCount( uint32_t vertexBindingDescriptionCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDescriptionCount = vertexBindingDescriptionCount_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setPVertexBindingDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - pVertexBindingDescriptions = pVertexBindingDescriptions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputStateCreateInfo & setVertexBindingDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDescriptionCount = static_cast( vertexBindingDescriptions_.size() ); - pVertexBindingDescriptions = vertexBindingDescriptions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptionCount( uint32_t vertexAttributeDescriptionCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeDescriptionCount = vertexAttributeDescriptionCount_; - return *this; - } - - PipelineVertexInputStateCreateInfo & setPVertexAttributeDescriptions( const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - pVertexAttributeDescriptions = pVertexAttributeDescriptions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputStateCreateInfo & setVertexAttributeDescriptions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexAttributeDescriptions_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeDescriptionCount = static_cast( vertexAttributeDescriptions_.size() ); - pVertexAttributeDescriptions = vertexAttributeDescriptions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineVertexInputStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineVertexInputStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineVertexInputStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( vertexBindingDescriptionCount == rhs.vertexBindingDescriptionCount ) - && ( pVertexBindingDescriptions == rhs.pVertexBindingDescriptions ) - && ( vertexAttributeDescriptionCount == rhs.vertexAttributeDescriptionCount ) - && ( pVertexAttributeDescriptions == rhs.pVertexAttributeDescriptions ); - } - - bool operator!=( PipelineVertexInputStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateFlags flags = {}; - uint32_t vertexBindingDescriptionCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription* pVertexBindingDescriptions = {}; - uint32_t vertexAttributeDescriptionCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription* pVertexAttributeDescriptions = {}; - - }; - static_assert( sizeof( PipelineVertexInputStateCreateInfo ) == sizeof( VkPipelineVertexInputStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineVertexInputStateCreateInfo; - }; - - struct PipelineInputAssemblyStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInputAssemblyStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList, VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), topology( topology_ ), primitiveRestartEnable( primitiveRestartEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineInputAssemblyStateCreateInfo( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineInputAssemblyStateCreateInfo( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineInputAssemblyStateCreateInfo & operator=( VkPipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineInputAssemblyStateCreateInfo & operator=( PipelineInputAssemblyStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineInputAssemblyStateCreateInfo ) ); - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology topology_ ) VULKAN_HPP_NOEXCEPT - { - topology = topology_; - return *this; - } - - PipelineInputAssemblyStateCreateInfo & setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable_ ) VULKAN_HPP_NOEXCEPT - { - primitiveRestartEnable = primitiveRestartEnable_; - return *this; - } - - - operator VkPipelineInputAssemblyStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineInputAssemblyStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineInputAssemblyStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( topology == rhs.topology ) - && ( primitiveRestartEnable == rhs.primitiveRestartEnable ); - } - - bool operator!=( PipelineInputAssemblyStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInputAssemblyStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::PrimitiveTopology topology = VULKAN_HPP_NAMESPACE::PrimitiveTopology::ePointList; - VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable = {}; - - }; - static_assert( sizeof( PipelineInputAssemblyStateCreateInfo ) == sizeof( VkPipelineInputAssemblyStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineInputAssemblyStateCreateInfo; - }; - - struct PipelineTessellationStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ = {}, uint32_t patchControlPoints_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), patchControlPoints( patchControlPoints_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineTessellationStateCreateInfo( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineTessellationStateCreateInfo( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineTessellationStateCreateInfo & operator=( VkPipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineTessellationStateCreateInfo & operator=( PipelineTessellationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineTessellationStateCreateInfo ) ); - return *this; - } - - PipelineTessellationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineTessellationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineTessellationStateCreateInfo & setPatchControlPoints( uint32_t patchControlPoints_ ) VULKAN_HPP_NOEXCEPT - { - patchControlPoints = patchControlPoints_; - return *this; - } - - - operator VkPipelineTessellationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineTessellationStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineTessellationStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( patchControlPoints == rhs.patchControlPoints ); - } - - bool operator!=( PipelineTessellationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateFlags flags = {}; - uint32_t patchControlPoints = {}; - - }; - static_assert( sizeof( PipelineTessellationStateCreateInfo ) == sizeof( VkPipelineTessellationStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineTessellationStateCreateInfo; - }; - - struct PipelineViewportStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ = {}, uint32_t scissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), viewportCount( viewportCount_ ), pViewports( pViewports_ ), scissorCount( scissorCount_ ), pScissors( pScissors_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportStateCreateInfo( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportStateCreateInfo( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewports_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & scissors_ = {} ) - : flags( flags_ ), viewportCount( static_cast( viewports_.size() ) ), pViewports( viewports_.data() ), scissorCount( static_cast( scissors_.size() ) ), pScissors( scissors_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineViewportStateCreateInfo & operator=( VkPipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportStateCreateInfo & operator=( PipelineViewportStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineViewportStateCreateInfo ) ); - return *this; - } - - PipelineViewportStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineViewportStateCreateInfo & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportStateCreateInfo & setPViewports( const VULKAN_HPP_NAMESPACE::Viewport* pViewports_ ) VULKAN_HPP_NOEXCEPT - { - pViewports = pViewports_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportStateCreateInfo & setViewports( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewports_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( viewports_.size() ); - pViewports = viewports_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineViewportStateCreateInfo & setScissorCount( uint32_t scissorCount_ ) VULKAN_HPP_NOEXCEPT - { - scissorCount = scissorCount_; - return *this; - } - - PipelineViewportStateCreateInfo & setPScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pScissors_ ) VULKAN_HPP_NOEXCEPT - { - pScissors = pScissors_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportStateCreateInfo & setScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & scissors_ ) VULKAN_HPP_NOEXCEPT - { - scissorCount = static_cast( scissors_.size() ); - pScissors = scissors_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewports == rhs.pViewports ) - && ( scissorCount == rhs.scissorCount ) - && ( pScissors == rhs.pScissors ); - } - - bool operator!=( PipelineViewportStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateFlags flags = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::Viewport* pViewports = {}; - uint32_t scissorCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pScissors = {}; - - }; - static_assert( sizeof( PipelineViewportStateCreateInfo ) == sizeof( VkPipelineViewportStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportStateCreateInfo; - }; - - struct PipelineRasterizationStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ = {}, VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ = VULKAN_HPP_NAMESPACE::PolygonMode::eFill, VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ = {}, VULKAN_HPP_NAMESPACE::FrontFace frontFace_ = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise, VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ = {}, float depthBiasConstantFactor_ = {}, float depthBiasClamp_ = {}, float depthBiasSlopeFactor_ = {}, float lineWidth_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), depthClampEnable( depthClampEnable_ ), rasterizerDiscardEnable( rasterizerDiscardEnable_ ), polygonMode( polygonMode_ ), cullMode( cullMode_ ), frontFace( frontFace_ ), depthBiasEnable( depthBiasEnable_ ), depthBiasConstantFactor( depthBiasConstantFactor_ ), depthBiasClamp( depthBiasClamp_ ), depthBiasSlopeFactor( depthBiasSlopeFactor_ ), lineWidth( lineWidth_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateCreateInfo( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateCreateInfo( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineRasterizationStateCreateInfo & operator=( VkPipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationStateCreateInfo & operator=( PipelineRasterizationStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineRasterizationStateCreateInfo ) ); - return *this; - } - - PipelineRasterizationStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthClampEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthClampEnable = depthClampEnable_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable_ ) VULKAN_HPP_NOEXCEPT - { - rasterizerDiscardEnable = rasterizerDiscardEnable_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setPolygonMode( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode_ ) VULKAN_HPP_NOEXCEPT - { - polygonMode = polygonMode_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode_ ) VULKAN_HPP_NOEXCEPT - { - cullMode = cullMode_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace_ ) VULKAN_HPP_NOEXCEPT - { - frontFace = frontFace_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasEnable = depthBiasEnable_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasConstantFactor( float depthBiasConstantFactor_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasConstantFactor = depthBiasConstantFactor_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasClamp( float depthBiasClamp_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasClamp = depthBiasClamp_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setDepthBiasSlopeFactor( float depthBiasSlopeFactor_ ) VULKAN_HPP_NOEXCEPT - { - depthBiasSlopeFactor = depthBiasSlopeFactor_; - return *this; - } - - PipelineRasterizationStateCreateInfo & setLineWidth( float lineWidth_ ) VULKAN_HPP_NOEXCEPT - { - lineWidth = lineWidth_; - return *this; - } - - - operator VkPipelineRasterizationStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthClampEnable == rhs.depthClampEnable ) - && ( rasterizerDiscardEnable == rhs.rasterizerDiscardEnable ) - && ( polygonMode == rhs.polygonMode ) - && ( cullMode == rhs.cullMode ) - && ( frontFace == rhs.frontFace ) - && ( depthBiasEnable == rhs.depthBiasEnable ) - && ( depthBiasConstantFactor == rhs.depthBiasConstantFactor ) - && ( depthBiasClamp == rhs.depthBiasClamp ) - && ( depthBiasSlopeFactor == rhs.depthBiasSlopeFactor ) - && ( lineWidth == rhs.lineWidth ); - } - - bool operator!=( PipelineRasterizationStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable = {}; - VULKAN_HPP_NAMESPACE::PolygonMode polygonMode = VULKAN_HPP_NAMESPACE::PolygonMode::eFill; - VULKAN_HPP_NAMESPACE::CullModeFlags cullMode = {}; - VULKAN_HPP_NAMESPACE::FrontFace frontFace = VULKAN_HPP_NAMESPACE::FrontFace::eCounterClockwise; - VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable = {}; - float depthBiasConstantFactor = {}; - float depthBiasClamp = {}; - float depthBiasSlopeFactor = {}; - float lineWidth = {}; - - }; - static_assert( sizeof( PipelineRasterizationStateCreateInfo ) == sizeof( VkPipelineRasterizationStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationStateCreateInfo; - }; - - struct PipelineMultisampleStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineMultisampleStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ = {}, float minSampleShading_ = {}, const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), rasterizationSamples( rasterizationSamples_ ), sampleShadingEnable( sampleShadingEnable_ ), minSampleShading( minSampleShading_ ), pSampleMask( pSampleMask_ ), alphaToCoverageEnable( alphaToCoverageEnable_ ), alphaToOneEnable( alphaToOneEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineMultisampleStateCreateInfo( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineMultisampleStateCreateInfo( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineMultisampleStateCreateInfo & operator=( VkPipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineMultisampleStateCreateInfo & operator=( PipelineMultisampleStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineMultisampleStateCreateInfo ) ); - return *this; - } - - PipelineMultisampleStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setRasterizationSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ ) VULKAN_HPP_NOEXCEPT - { - rasterizationSamples = rasterizationSamples_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setSampleShadingEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable_ ) VULKAN_HPP_NOEXCEPT - { - sampleShadingEnable = sampleShadingEnable_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setMinSampleShading( float minSampleShading_ ) VULKAN_HPP_NOEXCEPT - { - minSampleShading = minSampleShading_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setPSampleMask( const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask_ ) VULKAN_HPP_NOEXCEPT - { - pSampleMask = pSampleMask_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setAlphaToCoverageEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable_ ) VULKAN_HPP_NOEXCEPT - { - alphaToCoverageEnable = alphaToCoverageEnable_; - return *this; - } - - PipelineMultisampleStateCreateInfo & setAlphaToOneEnable( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable_ ) VULKAN_HPP_NOEXCEPT - { - alphaToOneEnable = alphaToOneEnable_; - return *this; - } - - - operator VkPipelineMultisampleStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineMultisampleStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineMultisampleStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( rasterizationSamples == rhs.rasterizationSamples ) - && ( sampleShadingEnable == rhs.sampleShadingEnable ) - && ( minSampleShading == rhs.minSampleShading ) - && ( pSampleMask == rhs.pSampleMask ) - && ( alphaToCoverageEnable == rhs.alphaToCoverageEnable ) - && ( alphaToOneEnable == rhs.alphaToOneEnable ); - } - - bool operator!=( PipelineMultisampleStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineMultisampleStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Bool32 sampleShadingEnable = {}; - float minSampleShading = {}; - const VULKAN_HPP_NAMESPACE::SampleMask* pSampleMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable = {}; - - }; - static_assert( sizeof( PipelineMultisampleStateCreateInfo ) == sizeof( VkPipelineMultisampleStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineMultisampleStateCreateInfo; - }; - - struct StencilOpState - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR StencilOpState(VULKAN_HPP_NAMESPACE::StencilOp failOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp passOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ = VULKAN_HPP_NAMESPACE::StencilOp::eKeep, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, uint32_t compareMask_ = {}, uint32_t writeMask_ = {}, uint32_t reference_ = {}) VULKAN_HPP_NOEXCEPT - : failOp( failOp_ ), passOp( passOp_ ), depthFailOp( depthFailOp_ ), compareOp( compareOp_ ), compareMask( compareMask_ ), writeMask( writeMask_ ), reference( reference_ ) - {} - - VULKAN_HPP_CONSTEXPR StencilOpState( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StencilOpState( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - StencilOpState & operator=( VkStencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - StencilOpState & operator=( StencilOpState const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( StencilOpState ) ); - return *this; - } - - StencilOpState & setFailOp( VULKAN_HPP_NAMESPACE::StencilOp failOp_ ) VULKAN_HPP_NOEXCEPT - { - failOp = failOp_; - return *this; - } - - StencilOpState & setPassOp( VULKAN_HPP_NAMESPACE::StencilOp passOp_ ) VULKAN_HPP_NOEXCEPT - { - passOp = passOp_; - return *this; - } - - StencilOpState & setDepthFailOp( VULKAN_HPP_NAMESPACE::StencilOp depthFailOp_ ) VULKAN_HPP_NOEXCEPT - { - depthFailOp = depthFailOp_; - return *this; - } - - StencilOpState & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT - { - compareOp = compareOp_; - return *this; - } - - StencilOpState & setCompareMask( uint32_t compareMask_ ) VULKAN_HPP_NOEXCEPT - { - compareMask = compareMask_; - return *this; - } - - StencilOpState & setWriteMask( uint32_t writeMask_ ) VULKAN_HPP_NOEXCEPT - { - writeMask = writeMask_; - return *this; - } - - StencilOpState & setReference( uint32_t reference_ ) VULKAN_HPP_NOEXCEPT - { - reference = reference_; - return *this; - } - - - operator VkStencilOpState const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkStencilOpState &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( StencilOpState const& ) const = default; -#else - bool operator==( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( failOp == rhs.failOp ) - && ( passOp == rhs.passOp ) - && ( depthFailOp == rhs.depthFailOp ) - && ( compareOp == rhs.compareOp ) - && ( compareMask == rhs.compareMask ) - && ( writeMask == rhs.writeMask ) - && ( reference == rhs.reference ); - } - - bool operator!=( StencilOpState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::StencilOp failOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::StencilOp passOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::StencilOp depthFailOp = VULKAN_HPP_NAMESPACE::StencilOp::eKeep; - VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - uint32_t compareMask = {}; - uint32_t writeMask = {}; - uint32_t reference = {}; - - }; - static_assert( sizeof( StencilOpState ) == sizeof( VkStencilOpState ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineDepthStencilStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDepthStencilStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState front_ = {}, VULKAN_HPP_NAMESPACE::StencilOpState back_ = {}, float minDepthBounds_ = {}, float maxDepthBounds_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), depthTestEnable( depthTestEnable_ ), depthWriteEnable( depthWriteEnable_ ), depthCompareOp( depthCompareOp_ ), depthBoundsTestEnable( depthBoundsTestEnable_ ), stencilTestEnable( stencilTestEnable_ ), front( front_ ), back( back_ ), minDepthBounds( minDepthBounds_ ), maxDepthBounds( maxDepthBounds_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineDepthStencilStateCreateInfo( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDepthStencilStateCreateInfo( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineDepthStencilStateCreateInfo & operator=( VkPipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineDepthStencilStateCreateInfo & operator=( PipelineDepthStencilStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineDepthStencilStateCreateInfo ) ); - return *this; - } - - PipelineDepthStencilStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthTestEnable = depthTestEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthWriteEnable = depthWriteEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp_ ) VULKAN_HPP_NOEXCEPT - { - depthCompareOp = depthCompareOp_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthBoundsTestEnable = depthBoundsTestEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - stencilTestEnable = stencilTestEnable_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setFront( VULKAN_HPP_NAMESPACE::StencilOpState const & front_ ) VULKAN_HPP_NOEXCEPT - { - front = front_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setBack( VULKAN_HPP_NAMESPACE::StencilOpState const & back_ ) VULKAN_HPP_NOEXCEPT - { - back = back_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setMinDepthBounds( float minDepthBounds_ ) VULKAN_HPP_NOEXCEPT - { - minDepthBounds = minDepthBounds_; - return *this; - } - - PipelineDepthStencilStateCreateInfo & setMaxDepthBounds( float maxDepthBounds_ ) VULKAN_HPP_NOEXCEPT - { - maxDepthBounds = maxDepthBounds_; - return *this; - } - - - operator VkPipelineDepthStencilStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineDepthStencilStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineDepthStencilStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthTestEnable == rhs.depthTestEnable ) - && ( depthWriteEnable == rhs.depthWriteEnable ) - && ( depthCompareOp == rhs.depthCompareOp ) - && ( depthBoundsTestEnable == rhs.depthBoundsTestEnable ) - && ( stencilTestEnable == rhs.stencilTestEnable ) - && ( front == rhs.front ) - && ( back == rhs.back ) - && ( minDepthBounds == rhs.minDepthBounds ) - && ( maxDepthBounds == rhs.maxDepthBounds ); - } - - bool operator!=( PipelineDepthStencilStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDepthStencilStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable = {}; - VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable = {}; - VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable = {}; - VULKAN_HPP_NAMESPACE::StencilOpState front = {}; - VULKAN_HPP_NAMESPACE::StencilOpState back = {}; - float minDepthBounds = {}; - float maxDepthBounds = {}; - - }; - static_assert( sizeof( PipelineDepthStencilStateCreateInfo ) == sizeof( VkPipelineDepthStencilStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineDepthStencilStateCreateInfo; - }; - - struct PipelineColorBlendAttachmentState - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState(VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ = {}, VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ = VULKAN_HPP_NAMESPACE::BlendFactor::eZero, VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ = VULKAN_HPP_NAMESPACE::BlendOp::eAdd, VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ = {}) VULKAN_HPP_NOEXCEPT - : blendEnable( blendEnable_ ), srcColorBlendFactor( srcColorBlendFactor_ ), dstColorBlendFactor( dstColorBlendFactor_ ), colorBlendOp( colorBlendOp_ ), srcAlphaBlendFactor( srcAlphaBlendFactor_ ), dstAlphaBlendFactor( dstAlphaBlendFactor_ ), alphaBlendOp( alphaBlendOp_ ), colorWriteMask( colorWriteMask_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineColorBlendAttachmentState( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendAttachmentState( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineColorBlendAttachmentState & operator=( VkPipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineColorBlendAttachmentState & operator=( PipelineColorBlendAttachmentState const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineColorBlendAttachmentState ) ); - return *this; - } - - PipelineColorBlendAttachmentState & setBlendEnable( VULKAN_HPP_NAMESPACE::Bool32 blendEnable_ ) VULKAN_HPP_NOEXCEPT - { - blendEnable = blendEnable_; - return *this; - } - - PipelineColorBlendAttachmentState & setSrcColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - srcColorBlendFactor = srcColorBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setDstColorBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - dstColorBlendFactor = dstColorBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setColorBlendOp( VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp_ ) VULKAN_HPP_NOEXCEPT - { - colorBlendOp = colorBlendOp_; - return *this; - } - - PipelineColorBlendAttachmentState & setSrcAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - srcAlphaBlendFactor = srcAlphaBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setDstAlphaBlendFactor( VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor_ ) VULKAN_HPP_NOEXCEPT - { - dstAlphaBlendFactor = dstAlphaBlendFactor_; - return *this; - } - - PipelineColorBlendAttachmentState & setAlphaBlendOp( VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp_ ) VULKAN_HPP_NOEXCEPT - { - alphaBlendOp = alphaBlendOp_; - return *this; - } - - PipelineColorBlendAttachmentState & setColorWriteMask( VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask_ ) VULKAN_HPP_NOEXCEPT - { - colorWriteMask = colorWriteMask_; - return *this; - } - - - operator VkPipelineColorBlendAttachmentState const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineColorBlendAttachmentState &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineColorBlendAttachmentState const& ) const = default; -#else - bool operator==( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( blendEnable == rhs.blendEnable ) - && ( srcColorBlendFactor == rhs.srcColorBlendFactor ) - && ( dstColorBlendFactor == rhs.dstColorBlendFactor ) - && ( colorBlendOp == rhs.colorBlendOp ) - && ( srcAlphaBlendFactor == rhs.srcAlphaBlendFactor ) - && ( dstAlphaBlendFactor == rhs.dstAlphaBlendFactor ) - && ( alphaBlendOp == rhs.alphaBlendOp ) - && ( colorWriteMask == rhs.colorWriteMask ); - } - - bool operator!=( PipelineColorBlendAttachmentState const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Bool32 blendEnable = {}; - VULKAN_HPP_NAMESPACE::BlendFactor srcColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendFactor dstColorBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendOp colorBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; - VULKAN_HPP_NAMESPACE::BlendFactor srcAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendFactor dstAlphaBlendFactor = VULKAN_HPP_NAMESPACE::BlendFactor::eZero; - VULKAN_HPP_NAMESPACE::BlendOp alphaBlendOp = VULKAN_HPP_NAMESPACE::BlendOp::eAdd; - VULKAN_HPP_NAMESPACE::ColorComponentFlags colorWriteMask = {}; - - }; - static_assert( sizeof( PipelineColorBlendAttachmentState ) == sizeof( VkPipelineColorBlendAttachmentState ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineColorBlendStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ = {}, VULKAN_HPP_NAMESPACE::LogicOp logicOp_ = VULKAN_HPP_NAMESPACE::LogicOp::eClear, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ = {}, std::array const& blendConstants_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), blendConstants( blendConstants_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineColorBlendStateCreateInfo( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendStateCreateInfo( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineColorBlendStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_, VULKAN_HPP_NAMESPACE::LogicOp logicOp_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, std::array const& blendConstants_ = {} ) - : flags( flags_ ), logicOpEnable( logicOpEnable_ ), logicOp( logicOp_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), blendConstants( blendConstants_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineColorBlendStateCreateInfo & operator=( VkPipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineColorBlendStateCreateInfo & operator=( PipelineColorBlendStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineColorBlendStateCreateInfo ) ); - return *this; - } - - PipelineColorBlendStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setLogicOpEnable( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable_ ) VULKAN_HPP_NOEXCEPT - { - logicOpEnable = logicOpEnable_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setLogicOp( VULKAN_HPP_NAMESPACE::LogicOp logicOp_ ) VULKAN_HPP_NOEXCEPT - { - logicOp = logicOp_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - PipelineColorBlendStateCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineColorBlendStateCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineColorBlendStateCreateInfo & setBlendConstants( std::array blendConstants_ ) VULKAN_HPP_NOEXCEPT - { - blendConstants = blendConstants_; - return *this; - } - - - operator VkPipelineColorBlendStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineColorBlendStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineColorBlendStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( logicOpEnable == rhs.logicOpEnable ) - && ( logicOp == rhs.logicOp ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( blendConstants == rhs.blendConstants ); - } - - bool operator!=( PipelineColorBlendStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable = {}; - VULKAN_HPP_NAMESPACE::LogicOp logicOp = VULKAN_HPP_NAMESPACE::LogicOp::eClear; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState* pAttachments = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D blendConstants = {}; - - }; - static_assert( sizeof( PipelineColorBlendStateCreateInfo ) == sizeof( VkPipelineColorBlendStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineColorBlendStateCreateInfo; - }; - - struct PipelineDynamicStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDynamicStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo(VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ = {}, uint32_t dynamicStateCount_ = {}, const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), dynamicStateCount( dynamicStateCount_ ), pDynamicStates( pDynamicStates_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineDynamicStateCreateInfo( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDynamicStateCreateInfo( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDynamicStateCreateInfo( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dynamicStates_ ) - : flags( flags_ ), dynamicStateCount( static_cast( dynamicStates_.size() ) ), pDynamicStates( dynamicStates_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineDynamicStateCreateInfo & operator=( VkPipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineDynamicStateCreateInfo & operator=( PipelineDynamicStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineDynamicStateCreateInfo ) ); - return *this; - } - - PipelineDynamicStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineDynamicStateCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineDynamicStateCreateInfo & setDynamicStateCount( uint32_t dynamicStateCount_ ) VULKAN_HPP_NOEXCEPT - { - dynamicStateCount = dynamicStateCount_; - return *this; - } - - PipelineDynamicStateCreateInfo & setPDynamicStates( const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates_ ) VULKAN_HPP_NOEXCEPT - { - pDynamicStates = pDynamicStates_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDynamicStateCreateInfo & setDynamicStates( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dynamicStates_ ) VULKAN_HPP_NOEXCEPT - { - dynamicStateCount = static_cast( dynamicStates_.size() ); - pDynamicStates = dynamicStates_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineDynamicStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineDynamicStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineDynamicStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dynamicStateCount == rhs.dynamicStateCount ) - && ( pDynamicStates == rhs.pDynamicStates ); - } - - bool operator!=( PipelineDynamicStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDynamicStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateFlags flags = {}; - uint32_t dynamicStateCount = {}; - const VULKAN_HPP_NAMESPACE::DynamicState* pDynamicStates = {}; - - }; - static_assert( sizeof( PipelineDynamicStateCreateInfo ) == sizeof( VkPipelineDynamicStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineDynamicStateCreateInfo; - }; - - struct GraphicsPipelineCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 GraphicsPipelineCreateInfo( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsPipelineCreateInfo( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::RenderPass renderPass_ = {}, uint32_t subpass_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} ) - : flags( flags_ ), stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pInputAssemblyState( pInputAssemblyState_ ), pTessellationState( pTessellationState_ ), pViewportState( pViewportState_ ), pRasterizationState( pRasterizationState_ ), pMultisampleState( pMultisampleState_ ), pDepthStencilState( pDepthStencilState_ ), pColorBlendState( pColorBlendState_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), renderPass( renderPass_ ), subpass( subpass_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GraphicsPipelineCreateInfo & operator=( VkGraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GraphicsPipelineCreateInfo & operator=( GraphicsPipelineCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GraphicsPipelineCreateInfo ) ); - return *this; - } - - GraphicsPipelineCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GraphicsPipelineCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - GraphicsPipelineCreateInfo & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - GraphicsPipelineCreateInfo & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineCreateInfo & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GraphicsPipelineCreateInfo & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT - { - pVertexInputState = pVertexInputState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPInputAssemblyState( const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState_ ) VULKAN_HPP_NOEXCEPT - { - pInputAssemblyState = pInputAssemblyState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT - { - pTessellationState = pTessellationState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPViewportState( const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState_ ) VULKAN_HPP_NOEXCEPT - { - pViewportState = pViewportState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPRasterizationState( const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState_ ) VULKAN_HPP_NOEXCEPT - { - pRasterizationState = pRasterizationState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPMultisampleState( const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState_ ) VULKAN_HPP_NOEXCEPT - { - pMultisampleState = pMultisampleState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPDepthStencilState( const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilState = pDepthStencilState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPColorBlendState( const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState_ ) VULKAN_HPP_NOEXCEPT - { - pColorBlendState = pColorBlendState_; - return *this; - } - - GraphicsPipelineCreateInfo & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT - { - pDynamicState = pDynamicState_; - return *this; - } - - GraphicsPipelineCreateInfo & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - GraphicsPipelineCreateInfo & setRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass_ ) VULKAN_HPP_NOEXCEPT - { - renderPass = renderPass_; - return *this; - } - - GraphicsPipelineCreateInfo & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT - { - subpass = subpass_; - return *this; - } - - GraphicsPipelineCreateInfo & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - GraphicsPipelineCreateInfo & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkGraphicsPipelineCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGraphicsPipelineCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GraphicsPipelineCreateInfo const& ) const = default; -#else - bool operator==( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( pVertexInputState == rhs.pVertexInputState ) - && ( pInputAssemblyState == rhs.pInputAssemblyState ) - && ( pTessellationState == rhs.pTessellationState ) - && ( pViewportState == rhs.pViewportState ) - && ( pRasterizationState == rhs.pRasterizationState ) - && ( pMultisampleState == rhs.pMultisampleState ) - && ( pDepthStencilState == rhs.pDepthStencilState ) - && ( pColorBlendState == rhs.pColorBlendState ) - && ( pDynamicState == rhs.pDynamicState ) - && ( layout == rhs.layout ) - && ( renderPass == rhs.renderPass ) - && ( subpass == rhs.subpass ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( GraphicsPipelineCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {}; - const VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo* pInputAssemblyState = {}; - const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {}; - const VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo* pViewportState = {}; - const VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo* pRasterizationState = {}; - const VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo* pMultisampleState = {}; - const VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo* pDepthStencilState = {}; - const VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo* pColorBlendState = {}; - const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::RenderPass renderPass = {}; - uint32_t subpass = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( GraphicsPipelineCreateInfo ) == sizeof( VkGraphicsPipelineCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GraphicsPipelineCreateInfo; - }; - - struct ImageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageCreateInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageType imageType_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::Extent3D extent_ = {}, uint32_t mipLevels_ = {}, uint32_t arrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), initialLayout( initialLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageCreateInfo( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageCreateInfo( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageCreateInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageType imageType_, VULKAN_HPP_NAMESPACE::Format format_, VULKAN_HPP_NAMESPACE::Extent3D extent_, uint32_t mipLevels_, uint32_t arrayLayers_, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_, VULKAN_HPP_NAMESPACE::ImageTiling tiling_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined ) - : flags( flags_ ), imageType( imageType_ ), format( format_ ), extent( extent_ ), mipLevels( mipLevels_ ), arrayLayers( arrayLayers_ ), samples( samples_ ), tiling( tiling_ ), usage( usage_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), initialLayout( initialLayout_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageCreateInfo & operator=( VkImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageCreateInfo & operator=( ImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageCreateInfo ) ); - return *this; - } - - ImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImageCreateInfo & setImageType( VULKAN_HPP_NAMESPACE::ImageType imageType_ ) VULKAN_HPP_NOEXCEPT - { - imageType = imageType_; - return *this; - } - - ImageCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - ImageCreateInfo & setExtent( VULKAN_HPP_NAMESPACE::Extent3D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - ImageCreateInfo & setMipLevels( uint32_t mipLevels_ ) VULKAN_HPP_NOEXCEPT - { - mipLevels = mipLevels_; - return *this; - } - - ImageCreateInfo & setArrayLayers( uint32_t arrayLayers_ ) VULKAN_HPP_NOEXCEPT - { - arrayLayers = arrayLayers_; - return *this; - } - - ImageCreateInfo & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - ImageCreateInfo & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT - { - tiling = tiling_; - return *this; - } - - ImageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - ImageCreateInfo & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT - { - sharingMode = sharingMode_; - return *this; - } - - ImageCreateInfo & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - ImageCreateInfo & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageCreateInfo & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - ImageCreateInfo & setInitialLayout( VULKAN_HPP_NAMESPACE::ImageLayout initialLayout_ ) VULKAN_HPP_NOEXCEPT - { - initialLayout = initialLayout_; - return *this; - } - - - operator VkImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageCreateInfo const& ) const = default; -#else - bool operator==( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( imageType == rhs.imageType ) - && ( format == rhs.format ) - && ( extent == rhs.extent ) - && ( mipLevels == rhs.mipLevels ) - && ( arrayLayers == rhs.arrayLayers ) - && ( samples == rhs.samples ) - && ( tiling == rhs.tiling ) - && ( usage == rhs.usage ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) - && ( initialLayout == rhs.initialLayout ); - } - - bool operator!=( ImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ImageType imageType = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::Extent3D extent = {}; - uint32_t mipLevels = {}; - uint32_t arrayLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - VULKAN_HPP_NAMESPACE::ImageLayout initialLayout = VULKAN_HPP_NAMESPACE::ImageLayout::eUndefined; - - }; - static_assert( sizeof( ImageCreateInfo ) == sizeof( VkImageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageCreateInfo; - }; - - struct ImageViewCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewCreateInfo(VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::ImageViewType viewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), image( image_ ), viewType( viewType_ ), format( format_ ), components( components_ ), subresourceRange( subresourceRange_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewCreateInfo( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewCreateInfo( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageViewCreateInfo & operator=( VkImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewCreateInfo & operator=( ImageViewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageViewCreateInfo ) ); - return *this; - } - - ImageViewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImageViewCreateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - ImageViewCreateInfo & setViewType( VULKAN_HPP_NAMESPACE::ImageViewType viewType_ ) VULKAN_HPP_NOEXCEPT - { - viewType = viewType_; - return *this; - } - - ImageViewCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - ImageViewCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT - { - components = components_; - return *this; - } - - ImageViewCreateInfo & setSubresourceRange( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & subresourceRange_ ) VULKAN_HPP_NOEXCEPT - { - subresourceRange = subresourceRange_; - return *this; - } - - - operator VkImageViewCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewCreateInfo const& ) const = default; -#else - bool operator==( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( image == rhs.image ) - && ( viewType == rhs.viewType ) - && ( format == rhs.format ) - && ( components == rhs.components ) - && ( subresourceRange == rhs.subresourceRange ); - } - - bool operator!=( ImageViewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageViewCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::ImageViewType viewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; - VULKAN_HPP_NAMESPACE::ImageSubresourceRange subresourceRange = {}; - - }; - static_assert( sizeof( ImageViewCreateInfo ) == sizeof( VkImageViewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewCreateInfo; - }; - - struct IndirectCommandsLayoutTokenNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutTokenNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV(VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup, uint32_t stream_ = {}, uint32_t offset_ = {}, uint32_t vertexBindingUnit_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ = {}, uint32_t pushconstantOffset_ = {}, uint32_t pushconstantSize_ = {}, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ = {}, uint32_t indexTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ = {}, const uint32_t* pIndexTypeValues_ = {}) VULKAN_HPP_NOEXCEPT - : tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( indexTypeCount_ ), pIndexTypes( pIndexTypes_ ), pIndexTypeValues( pIndexTypeValues_ ) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutTokenNV( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsLayoutTokenNV( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutTokenNV( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_, uint32_t stream_, uint32_t offset_, uint32_t vertexBindingUnit_, VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_, VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_, VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_, uint32_t pushconstantOffset_, uint32_t pushconstantSize_, VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypes_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypeValues_ = {} ) - : tokenType( tokenType_ ), stream( stream_ ), offset( offset_ ), vertexBindingUnit( vertexBindingUnit_ ), vertexDynamicStride( vertexDynamicStride_ ), pushconstantPipelineLayout( pushconstantPipelineLayout_ ), pushconstantShaderStageFlags( pushconstantShaderStageFlags_ ), pushconstantOffset( pushconstantOffset_ ), pushconstantSize( pushconstantSize_ ), indirectStateFlags( indirectStateFlags_ ), indexTypeCount( static_cast( indexTypes_.size() ) ), pIndexTypes( indexTypes_.data() ), pIndexTypeValues( indexTypeValues_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( indexTypes_.size() == indexTypeValues_.size() ); -#else - if ( indexTypes_.size() != indexTypeValues_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::IndirectCommandsLayoutTokenNV::IndirectCommandsLayoutTokenNV: indexTypes_.size() != indexTypeValues_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - IndirectCommandsLayoutTokenNV & operator=( VkIndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IndirectCommandsLayoutTokenNV & operator=( IndirectCommandsLayoutTokenNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( IndirectCommandsLayoutTokenNV ) ); - return *this; - } - - IndirectCommandsLayoutTokenNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setTokenType( VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType_ ) VULKAN_HPP_NOEXCEPT - { - tokenType = tokenType_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setStream( uint32_t stream_ ) VULKAN_HPP_NOEXCEPT - { - stream = stream_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setVertexBindingUnit( uint32_t vertexBindingUnit_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingUnit = vertexBindingUnit_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setVertexDynamicStride( VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexDynamicStride = vertexDynamicStride_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantPipelineLayout = pushconstantPipelineLayout_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantShaderStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantShaderStageFlags = pushconstantShaderStageFlags_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantOffset( uint32_t pushconstantOffset_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantOffset = pushconstantOffset_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPushconstantSize( uint32_t pushconstantSize_ ) VULKAN_HPP_NOEXCEPT - { - pushconstantSize = pushconstantSize_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setIndirectStateFlags( VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags_ ) VULKAN_HPP_NOEXCEPT - { - indirectStateFlags = indirectStateFlags_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setIndexTypeCount( uint32_t indexTypeCount_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeCount = indexTypeCount_; - return *this; - } - - IndirectCommandsLayoutTokenNV & setPIndexTypes( const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes_ ) VULKAN_HPP_NOEXCEPT - { - pIndexTypes = pIndexTypes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutTokenNV & setIndexTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypes_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeCount = static_cast( indexTypes_.size() ); - pIndexTypes = indexTypes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - IndirectCommandsLayoutTokenNV & setPIndexTypeValues( const uint32_t* pIndexTypeValues_ ) VULKAN_HPP_NOEXCEPT - { - pIndexTypeValues = pIndexTypeValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutTokenNV & setIndexTypeValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & indexTypeValues_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeCount = static_cast( indexTypeValues_.size() ); - pIndexTypeValues = indexTypeValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkIndirectCommandsLayoutTokenNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIndirectCommandsLayoutTokenNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsLayoutTokenNV const& ) const = default; -#else - bool operator==( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( tokenType == rhs.tokenType ) - && ( stream == rhs.stream ) - && ( offset == rhs.offset ) - && ( vertexBindingUnit == rhs.vertexBindingUnit ) - && ( vertexDynamicStride == rhs.vertexDynamicStride ) - && ( pushconstantPipelineLayout == rhs.pushconstantPipelineLayout ) - && ( pushconstantShaderStageFlags == rhs.pushconstantShaderStageFlags ) - && ( pushconstantOffset == rhs.pushconstantOffset ) - && ( pushconstantSize == rhs.pushconstantSize ) - && ( indirectStateFlags == rhs.indirectStateFlags ) - && ( indexTypeCount == rhs.indexTypeCount ) - && ( pIndexTypes == rhs.pIndexTypes ) - && ( pIndexTypeValues == rhs.pIndexTypeValues ); - } - - bool operator!=( IndirectCommandsLayoutTokenNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutTokenNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV tokenType = VULKAN_HPP_NAMESPACE::IndirectCommandsTokenTypeNV::eShaderGroup; - uint32_t stream = {}; - uint32_t offset = {}; - uint32_t vertexBindingUnit = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexDynamicStride = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout pushconstantPipelineLayout = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags pushconstantShaderStageFlags = {}; - uint32_t pushconstantOffset = {}; - uint32_t pushconstantSize = {}; - VULKAN_HPP_NAMESPACE::IndirectStateFlagsNV indirectStateFlags = {}; - uint32_t indexTypeCount = {}; - const VULKAN_HPP_NAMESPACE::IndexType* pIndexTypes = {}; - const uint32_t* pIndexTypeValues = {}; - - }; - static_assert( sizeof( IndirectCommandsLayoutTokenNV ) == sizeof( VkIndirectCommandsLayoutTokenNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = IndirectCommandsLayoutTokenNV; - }; - - struct IndirectCommandsLayoutCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIndirectCommandsLayoutCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t tokenCount_ = {}, const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ = {}, uint32_t streamCount_ = {}, const uint32_t* pStreamStrides_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( tokenCount_ ), pTokens( pTokens_ ), streamCount( streamCount_ ), pStreamStrides( pStreamStrides_ ) - {} - - VULKAN_HPP_CONSTEXPR IndirectCommandsLayoutCreateInfoNV( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IndirectCommandsLayoutCreateInfoNV( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutCreateInfoNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tokens_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streamStrides_ = {} ) - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), tokenCount( static_cast( tokens_.size() ) ), pTokens( tokens_.data() ), streamCount( static_cast( streamStrides_.size() ) ), pStreamStrides( streamStrides_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - IndirectCommandsLayoutCreateInfoNV & operator=( VkIndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & operator=( IndirectCommandsLayoutCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( IndirectCommandsLayoutCreateInfoNV ) ); - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setTokenCount( uint32_t tokenCount_ ) VULKAN_HPP_NOEXCEPT - { - tokenCount = tokenCount_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPTokens( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens_ ) VULKAN_HPP_NOEXCEPT - { - pTokens = pTokens_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutCreateInfoNV & setTokens( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & tokens_ ) VULKAN_HPP_NOEXCEPT - { - tokenCount = static_cast( tokens_.size() ); - pTokens = tokens_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - IndirectCommandsLayoutCreateInfoNV & setStreamCount( uint32_t streamCount_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = streamCount_; - return *this; - } - - IndirectCommandsLayoutCreateInfoNV & setPStreamStrides( const uint32_t* pStreamStrides_ ) VULKAN_HPP_NOEXCEPT - { - pStreamStrides = pStreamStrides_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - IndirectCommandsLayoutCreateInfoNV & setStreamStrides( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & streamStrides_ ) VULKAN_HPP_NOEXCEPT - { - streamCount = static_cast( streamStrides_.size() ); - pStreamStrides = streamStrides_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkIndirectCommandsLayoutCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIndirectCommandsLayoutCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IndirectCommandsLayoutCreateInfoNV const& ) const = default; -#else - bool operator==( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( tokenCount == rhs.tokenCount ) - && ( pTokens == rhs.pTokens ) - && ( streamCount == rhs.streamCount ) - && ( pStreamStrides == rhs.pStreamStrides ); - } - - bool operator!=( IndirectCommandsLayoutCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIndirectCommandsLayoutCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutUsageFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t tokenCount = {}; - const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV* pTokens = {}; - uint32_t streamCount = {}; - const uint32_t* pStreamStrides = {}; - - }; - static_assert( sizeof( IndirectCommandsLayoutCreateInfoNV ) == sizeof( VkIndirectCommandsLayoutCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = IndirectCommandsLayoutCreateInfoNV; - }; - - struct PipelineCacheCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCacheCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo(VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCacheCreateInfo( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCacheCreateInfo( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - PipelineCacheCreateInfo( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) - : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineCacheCreateInfo & operator=( VkPipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCacheCreateInfo & operator=( PipelineCacheCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineCacheCreateInfo ) ); - return *this; - } - - PipelineCacheCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCacheCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCacheCreateInfo & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialDataSize_; - return *this; - } - - PipelineCacheCreateInfo & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT - { - pInitialData = pInitialData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - PipelineCacheCreateInfo & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialData_.size() * sizeof(T); - pInitialData = initialData_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineCacheCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCacheCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCacheCreateInfo const& ) const = default; -#else - bool operator==( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( initialDataSize == rhs.initialDataSize ) - && ( pInitialData == rhs.pInitialData ); - } - - bool operator!=( PipelineCacheCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCacheCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCacheCreateFlags flags = {}; - size_t initialDataSize = {}; - const void* pInitialData = {}; - - }; - static_assert( sizeof( PipelineCacheCreateInfo ) == sizeof( VkPipelineCacheCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCacheCreateInfo; - }; - - struct PushConstantRange - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PushConstantRange(VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ = {}, uint32_t offset_ = {}, uint32_t size_ = {}) VULKAN_HPP_NOEXCEPT - : stageFlags( stageFlags_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR PushConstantRange( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PushConstantRange( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PushConstantRange & operator=( VkPushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PushConstantRange & operator=( PushConstantRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PushConstantRange ) ); - return *this; - } - - PushConstantRange & setStageFlags( VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags_ ) VULKAN_HPP_NOEXCEPT - { - stageFlags = stageFlags_; - return *this; - } - - PushConstantRange & setOffset( uint32_t offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - PushConstantRange & setSize( uint32_t size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkPushConstantRange const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPushConstantRange &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PushConstantRange const& ) const = default; -#else - bool operator==( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( stageFlags == rhs.stageFlags ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( PushConstantRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags = {}; - uint32_t offset = {}; - uint32_t size = {}; - - }; - static_assert( sizeof( PushConstantRange ) == sizeof( VkPushConstantRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineLayoutCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLayoutCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo(VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ = {}, uint32_t setLayoutCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ = {}, uint32_t pushConstantRangeCount_ = {}, const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), setLayoutCount( setLayoutCount_ ), pSetLayouts( pSetLayouts_ ), pushConstantRangeCount( pushConstantRangeCount_ ), pPushConstantRanges( pPushConstantRanges_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineLayoutCreateInfo( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineLayoutCreateInfo( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLayoutCreateInfo( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pushConstantRanges_ = {} ) - : flags( flags_ ), setLayoutCount( static_cast( setLayouts_.size() ) ), pSetLayouts( setLayouts_.data() ), pushConstantRangeCount( static_cast( pushConstantRanges_.size() ) ), pPushConstantRanges( pushConstantRanges_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineLayoutCreateInfo & operator=( VkPipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineLayoutCreateInfo & operator=( PipelineLayoutCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineLayoutCreateInfo ) ); - return *this; - } - - PipelineLayoutCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineLayoutCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineLayoutCreateInfo & setSetLayoutCount( uint32_t setLayoutCount_ ) VULKAN_HPP_NOEXCEPT - { - setLayoutCount = setLayoutCount_; - return *this; - } - - PipelineLayoutCreateInfo & setPSetLayouts( const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts_ ) VULKAN_HPP_NOEXCEPT - { - pSetLayouts = pSetLayouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLayoutCreateInfo & setSetLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & setLayouts_ ) VULKAN_HPP_NOEXCEPT - { - setLayoutCount = static_cast( setLayouts_.size() ); - pSetLayouts = setLayouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PipelineLayoutCreateInfo & setPushConstantRangeCount( uint32_t pushConstantRangeCount_ ) VULKAN_HPP_NOEXCEPT - { - pushConstantRangeCount = pushConstantRangeCount_; - return *this; - } - - PipelineLayoutCreateInfo & setPPushConstantRanges( const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges_ ) VULKAN_HPP_NOEXCEPT - { - pPushConstantRanges = pPushConstantRanges_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLayoutCreateInfo & setPushConstantRanges( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pushConstantRanges_ ) VULKAN_HPP_NOEXCEPT - { - pushConstantRangeCount = static_cast( pushConstantRanges_.size() ); - pPushConstantRanges = pushConstantRanges_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineLayoutCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineLayoutCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineLayoutCreateInfo const& ) const = default; -#else - bool operator==( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( setLayoutCount == rhs.setLayoutCount ) - && ( pSetLayouts == rhs.pSetLayouts ) - && ( pushConstantRangeCount == rhs.pushConstantRangeCount ) - && ( pPushConstantRanges == rhs.pPushConstantRanges ); - } - - bool operator!=( PipelineLayoutCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLayoutCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineLayoutCreateFlags flags = {}; - uint32_t setLayoutCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayouts = {}; - uint32_t pushConstantRangeCount = {}; - const VULKAN_HPP_NAMESPACE::PushConstantRange* pPushConstantRanges = {}; - - }; - static_assert( sizeof( PipelineLayoutCreateInfo ) == sizeof( VkPipelineLayoutCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineLayoutCreateInfo; - }; - - struct PrivateDataSlotCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePrivateDataSlotCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR PrivateDataSlotCreateInfoEXT( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PrivateDataSlotCreateInfoEXT( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PrivateDataSlotCreateInfoEXT & operator=( VkPrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PrivateDataSlotCreateInfoEXT & operator=( PrivateDataSlotCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PrivateDataSlotCreateInfoEXT ) ); - return *this; - } - - PrivateDataSlotCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PrivateDataSlotCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkPrivateDataSlotCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPrivateDataSlotCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PrivateDataSlotCreateInfoEXT const& ) const = default; -#else - bool operator==( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( PrivateDataSlotCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePrivateDataSlotCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateFlagsEXT flags = {}; - - }; - static_assert( sizeof( PrivateDataSlotCreateInfoEXT ) == sizeof( VkPrivateDataSlotCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PrivateDataSlotCreateInfoEXT; - }; - - class PrivateDataSlotEXT - { - public: - using CType = VkPrivateDataSlotEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePrivateDataSlotEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT() VULKAN_HPP_NOEXCEPT - : m_privateDataSlotEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PrivateDataSlotEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_privateDataSlotEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PrivateDataSlotEXT( VkPrivateDataSlotEXT privateDataSlotEXT ) VULKAN_HPP_NOEXCEPT - : m_privateDataSlotEXT( privateDataSlotEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PrivateDataSlotEXT & operator=(VkPrivateDataSlotEXT privateDataSlotEXT) VULKAN_HPP_NOEXCEPT - { - m_privateDataSlotEXT = privateDataSlotEXT; - return *this; - } -#endif - - PrivateDataSlotEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_privateDataSlotEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PrivateDataSlotEXT const& ) const = default; -#else - bool operator==( PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT == rhs.m_privateDataSlotEXT; - } - - bool operator!=(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT != rhs.m_privateDataSlotEXT; - } - - bool operator<(PrivateDataSlotEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT < rhs.m_privateDataSlotEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPrivateDataSlotEXT() const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_privateDataSlotEXT == VK_NULL_HANDLE; - } - - private: - VkPrivateDataSlotEXT m_privateDataSlotEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT ) == sizeof( VkPrivateDataSlotEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct QueryPoolCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo(VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::QueryType queryType_ = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion, uint32_t queryCount_ = {}, VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queryType( queryType_ ), queryCount( queryCount_ ), pipelineStatistics( pipelineStatistics_ ) - {} - - VULKAN_HPP_CONSTEXPR QueryPoolCreateInfo( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolCreateInfo( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - QueryPoolCreateInfo & operator=( VkQueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueryPoolCreateInfo & operator=( QueryPoolCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( QueryPoolCreateInfo ) ); - return *this; - } - - QueryPoolCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - QueryPoolCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - QueryPoolCreateInfo & setQueryType( VULKAN_HPP_NAMESPACE::QueryType queryType_ ) VULKAN_HPP_NOEXCEPT - { - queryType = queryType_; - return *this; - } - - QueryPoolCreateInfo & setQueryCount( uint32_t queryCount_ ) VULKAN_HPP_NOEXCEPT - { - queryCount = queryCount_; - return *this; - } - - QueryPoolCreateInfo & setPipelineStatistics( VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStatistics = pipelineStatistics_; - return *this; - } - - - operator VkQueryPoolCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueryPoolCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPoolCreateInfo const& ) const = default; -#else - bool operator==( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queryType == rhs.queryType ) - && ( queryCount == rhs.queryCount ) - && ( pipelineStatistics == rhs.pipelineStatistics ); - } - - bool operator!=( QueryPoolCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueryPoolCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::QueryType queryType = VULKAN_HPP_NAMESPACE::QueryType::eOcclusion; - uint32_t queryCount = {}; - VULKAN_HPP_NAMESPACE::QueryPipelineStatisticFlags pipelineStatistics = {}; - - }; - static_assert( sizeof( QueryPoolCreateInfo ) == sizeof( VkQueryPoolCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueryPoolCreateInfo; - }; - - struct RayTracingShaderGroupCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = {}, uint32_t closestHitShader_ = {}, uint32_t anyHitShader_ = {}, uint32_t intersectionShader_ = {}, const void* pShaderGroupCaptureReplayHandle_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ), pShaderGroupCaptureReplayHandle( pShaderGroupCaptureReplayHandle_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoKHR( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingShaderGroupCreateInfoKHR( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RayTracingShaderGroupCreateInfoKHR & operator=( VkRayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & operator=( RayTracingShaderGroupCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoKHR ) ); - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT - { - generalShader = generalShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT - { - closestHitShader = closestHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT - { - anyHitShader = anyHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT - { - intersectionShader = intersectionShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoKHR & setPShaderGroupCaptureReplayHandle( const void* pShaderGroupCaptureReplayHandle_ ) VULKAN_HPP_NOEXCEPT - { - pShaderGroupCaptureReplayHandle = pShaderGroupCaptureReplayHandle_; - return *this; - } - - - operator VkRayTracingShaderGroupCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingShaderGroupCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingShaderGroupCreateInfoKHR const& ) const = default; -#else - bool operator==( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( generalShader == rhs.generalShader ) - && ( closestHitShader == rhs.closestHitShader ) - && ( anyHitShader == rhs.anyHitShader ) - && ( intersectionShader == rhs.intersectionShader ) - && ( pShaderGroupCaptureReplayHandle == rhs.pShaderGroupCaptureReplayHandle ); - } - - bool operator!=( RayTracingShaderGroupCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; - uint32_t generalShader = {}; - uint32_t closestHitShader = {}; - uint32_t anyHitShader = {}; - uint32_t intersectionShader = {}; - const void* pShaderGroupCaptureReplayHandle = {}; - - }; - static_assert( sizeof( RayTracingShaderGroupCreateInfoKHR ) == sizeof( VkRayTracingShaderGroupCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingShaderGroupCreateInfoKHR; - }; - - struct PipelineLibraryCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineLibraryCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR(uint32_t libraryCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ = {}) VULKAN_HPP_NOEXCEPT - : libraryCount( libraryCount_ ), pLibraries( pLibraries_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineLibraryCreateInfoKHR( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineLibraryCreateInfoKHR( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLibraryCreateInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & libraries_ ) - : libraryCount( static_cast( libraries_.size() ) ), pLibraries( libraries_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineLibraryCreateInfoKHR & operator=( VkPipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineLibraryCreateInfoKHR & operator=( PipelineLibraryCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineLibraryCreateInfoKHR ) ); - return *this; - } - - PipelineLibraryCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineLibraryCreateInfoKHR & setLibraryCount( uint32_t libraryCount_ ) VULKAN_HPP_NOEXCEPT - { - libraryCount = libraryCount_; - return *this; - } - - PipelineLibraryCreateInfoKHR & setPLibraries( const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries_ ) VULKAN_HPP_NOEXCEPT - { - pLibraries = pLibraries_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineLibraryCreateInfoKHR & setLibraries( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & libraries_ ) VULKAN_HPP_NOEXCEPT - { - libraryCount = static_cast( libraries_.size() ); - pLibraries = libraries_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineLibraryCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineLibraryCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineLibraryCreateInfoKHR const& ) const = default; -#else - bool operator==( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( libraryCount == rhs.libraryCount ) - && ( pLibraries == rhs.pLibraries ); - } - - bool operator!=( PipelineLibraryCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineLibraryCreateInfoKHR; - const void* pNext = {}; - uint32_t libraryCount = {}; - const VULKAN_HPP_NAMESPACE::Pipeline* pLibraries = {}; - - }; - static_assert( sizeof( PipelineLibraryCreateInfoKHR ) == sizeof( VkPipelineLibraryCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineLibraryCreateInfoKHR; - }; - - struct RayTracingPipelineInterfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR(uint32_t maxPipelineRayPayloadSize_ = {}, uint32_t maxPipelineRayHitAttributeSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxPipelineRayPayloadSize( maxPipelineRayPayloadSize_ ), maxPipelineRayHitAttributeSize( maxPipelineRayHitAttributeSize_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingPipelineInterfaceCreateInfoKHR( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineInterfaceCreateInfoKHR( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RayTracingPipelineInterfaceCreateInfoKHR & operator=( VkRayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingPipelineInterfaceCreateInfoKHR & operator=( RayTracingPipelineInterfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) ); - return *this; - } - - RayTracingPipelineInterfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayPayloadSize( uint32_t maxPipelineRayPayloadSize_ ) VULKAN_HPP_NOEXCEPT - { - maxPipelineRayPayloadSize = maxPipelineRayPayloadSize_; - return *this; - } - - RayTracingPipelineInterfaceCreateInfoKHR & setMaxPipelineRayHitAttributeSize( uint32_t maxPipelineRayHitAttributeSize_ ) VULKAN_HPP_NOEXCEPT - { - maxPipelineRayHitAttributeSize = maxPipelineRayHitAttributeSize_; - return *this; - } - - - operator VkRayTracingPipelineInterfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingPipelineInterfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingPipelineInterfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPipelineRayPayloadSize == rhs.maxPipelineRayPayloadSize ) - && ( maxPipelineRayHitAttributeSize == rhs.maxPipelineRayHitAttributeSize ); - } - - bool operator!=( RayTracingPipelineInterfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineInterfaceCreateInfoKHR; - const void* pNext = {}; - uint32_t maxPipelineRayPayloadSize = {}; - uint32_t maxPipelineRayHitAttributeSize = {}; - - }; - static_assert( sizeof( RayTracingPipelineInterfaceCreateInfoKHR ) == sizeof( VkRayTracingPipelineInterfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingPipelineInterfaceCreateInfoKHR; - }; - - struct RayTracingPipelineCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ = {}, uint32_t maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoKHR( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineCreateInfoKHR( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoKHR( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ = {}, uint32_t maxPipelineRayRecursionDepth_ = {}, const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ = {}, const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} ) - : flags( flags_ ), stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast( groups_.size() ) ), pGroups( groups_.data() ), maxPipelineRayRecursionDepth( maxPipelineRayRecursionDepth_ ), pLibraryInfo( pLibraryInfo_ ), pLibraryInterface( pLibraryInterface_ ), pDynamicState( pDynamicState_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RayTracingPipelineCreateInfoKHR & operator=( VkRayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingPipelineCreateInfoKHR & operator=( RayTracingPipelineCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RayTracingPipelineCreateInfoKHR ) ); - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoKHR & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoKHR & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = groupCount_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups_ ) VULKAN_HPP_NOEXCEPT - { - pGroups = pGroups_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoKHR & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = static_cast( groups_.size() ); - pGroups = groups_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoKHR & setMaxPipelineRayRecursionDepth( uint32_t maxPipelineRayRecursionDepth_ ) VULKAN_HPP_NOEXCEPT - { - maxPipelineRayRecursionDepth = maxPipelineRayRecursionDepth_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPLibraryInfo( const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo_ ) VULKAN_HPP_NOEXCEPT - { - pLibraryInfo = pLibraryInfo_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPLibraryInterface( const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface_ ) VULKAN_HPP_NOEXCEPT - { - pLibraryInterface = pLibraryInterface_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setPDynamicState( const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState_ ) VULKAN_HPP_NOEXCEPT - { - pDynamicState = pDynamicState_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - RayTracingPipelineCreateInfoKHR & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkRayTracingPipelineCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingPipelineCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingPipelineCreateInfoKHR const& ) const = default; -#else - bool operator==( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( groupCount == rhs.groupCount ) - && ( pGroups == rhs.pGroups ) - && ( maxPipelineRayRecursionDepth == rhs.maxPipelineRayRecursionDepth ) - && ( pLibraryInfo == rhs.pLibraryInfo ) - && ( pLibraryInterface == rhs.pLibraryInterface ) - && ( pDynamicState == rhs.pDynamicState ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( RayTracingPipelineCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - uint32_t groupCount = {}; - const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR* pGroups = {}; - uint32_t maxPipelineRayRecursionDepth = {}; - const VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR* pLibraryInfo = {}; - const VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface = {}; - const VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo* pDynamicState = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( RayTracingPipelineCreateInfoKHR ) == sizeof( VkRayTracingPipelineCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingPipelineCreateInfoKHR; - }; - - struct RayTracingShaderGroupCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingShaderGroupCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV(VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral, uint32_t generalShader_ = {}, uint32_t closestHitShader_ = {}, uint32_t anyHitShader_ = {}, uint32_t intersectionShader_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), generalShader( generalShader_ ), closestHitShader( closestHitShader_ ), anyHitShader( anyHitShader_ ), intersectionShader( intersectionShader_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingShaderGroupCreateInfoNV( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingShaderGroupCreateInfoNV( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RayTracingShaderGroupCreateInfoNV & operator=( VkRayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingShaderGroupCreateInfoNV & operator=( RayTracingShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RayTracingShaderGroupCreateInfoNV ) ); - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setType( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setGeneralShader( uint32_t generalShader_ ) VULKAN_HPP_NOEXCEPT - { - generalShader = generalShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setClosestHitShader( uint32_t closestHitShader_ ) VULKAN_HPP_NOEXCEPT - { - closestHitShader = closestHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setAnyHitShader( uint32_t anyHitShader_ ) VULKAN_HPP_NOEXCEPT - { - anyHitShader = anyHitShader_; - return *this; - } - - RayTracingShaderGroupCreateInfoNV & setIntersectionShader( uint32_t intersectionShader_ ) VULKAN_HPP_NOEXCEPT - { - intersectionShader = intersectionShader_; - return *this; - } - - - operator VkRayTracingShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingShaderGroupCreateInfoNV const& ) const = default; -#else - bool operator==( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( type == rhs.type ) - && ( generalShader == rhs.generalShader ) - && ( closestHitShader == rhs.closestHitShader ) - && ( anyHitShader == rhs.anyHitShader ) - && ( intersectionShader == rhs.intersectionShader ); - } - - bool operator!=( RayTracingShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingShaderGroupCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR type = VULKAN_HPP_NAMESPACE::RayTracingShaderGroupTypeKHR::eGeneral; - uint32_t generalShader = {}; - uint32_t closestHitShader = {}; - uint32_t anyHitShader = {}; - uint32_t intersectionShader = {}; - - }; - static_assert( sizeof( RayTracingShaderGroupCreateInfoNV ) == sizeof( VkRayTracingShaderGroupCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingShaderGroupCreateInfoNV; - }; - - struct RayTracingPipelineCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRayTracingPipelineCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ = {}, uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), stageCount( stageCount_ ), pStages( pStages_ ), groupCount( groupCount_ ), pGroups( pGroups_ ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR RayTracingPipelineCreateInfoNV( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RayTracingPipelineCreateInfoNV( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ = {}, uint32_t maxRecursionDepth_ = {}, VULKAN_HPP_NAMESPACE::PipelineLayout layout_ = {}, VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ = {}, int32_t basePipelineIndex_ = {} ) - : flags( flags_ ), stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), groupCount( static_cast( groups_.size() ) ), pGroups( groups_.data() ), maxRecursionDepth( maxRecursionDepth_ ), layout( layout_ ), basePipelineHandle( basePipelineHandle_ ), basePipelineIndex( basePipelineIndex_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RayTracingPipelineCreateInfoNV & operator=( VkRayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RayTracingPipelineCreateInfoNV & operator=( RayTracingPipelineCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RayTracingPipelineCreateInfoNV ) ); - return *this; - } - - RayTracingPipelineCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = groupCount_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT - { - pGroups = pGroups_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RayTracingPipelineCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = static_cast( groups_.size() ); - pGroups = groups_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RayTracingPipelineCreateInfoNV & setMaxRecursionDepth( uint32_t maxRecursionDepth_ ) VULKAN_HPP_NOEXCEPT - { - maxRecursionDepth = maxRecursionDepth_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setLayout( VULKAN_HPP_NAMESPACE::PipelineLayout layout_ ) VULKAN_HPP_NOEXCEPT - { - layout = layout_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setBasePipelineHandle( VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineHandle = basePipelineHandle_; - return *this; - } - - RayTracingPipelineCreateInfoNV & setBasePipelineIndex( int32_t basePipelineIndex_ ) VULKAN_HPP_NOEXCEPT - { - basePipelineIndex = basePipelineIndex_; - return *this; - } - - - operator VkRayTracingPipelineCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRayTracingPipelineCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RayTracingPipelineCreateInfoNV const& ) const = default; -#else - bool operator==( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( groupCount == rhs.groupCount ) - && ( pGroups == rhs.pGroups ) - && ( maxRecursionDepth == rhs.maxRecursionDepth ) - && ( layout == rhs.layout ) - && ( basePipelineHandle == rhs.basePipelineHandle ) - && ( basePipelineIndex == rhs.basePipelineIndex ); - } - - bool operator!=( RayTracingPipelineCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRayTracingPipelineCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreateFlags flags = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - uint32_t groupCount = {}; - const VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV* pGroups = {}; - uint32_t maxRecursionDepth = {}; - VULKAN_HPP_NAMESPACE::PipelineLayout layout = {}; - VULKAN_HPP_NAMESPACE::Pipeline basePipelineHandle = {}; - int32_t basePipelineIndex = {}; - - }; - static_assert( sizeof( RayTracingPipelineCreateInfoNV ) == sizeof( VkRayTracingPipelineCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RayTracingPipelineCreateInfoNV; - }; - - struct SubpassDescription - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDescription(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t* pPreserveAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDescription( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescription( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ = {} ) - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), inputAttachmentCount( static_cast( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) ); -#else - if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription::SubpassDescription: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassDescription & operator=( VkSubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDescription & operator=( SubpassDescription const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassDescription ) ); - return *this; - } - - SubpassDescription & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SubpassDescription & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - SubpassDescription & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = inputAttachmentCount_; - return *this; - } - - SubpassDescription & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pInputAttachments = pInputAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = static_cast( inputAttachments_.size() ); - pInputAttachments = inputAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = colorAttachmentCount_; - return *this; - } - - SubpassDescription & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pColorAttachments = pColorAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( colorAttachments_.size() ); - pColorAttachments = colorAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pResolveAttachments = pResolveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( resolveAttachments_.size() ); - pResolveAttachments = resolveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilAttachment = pDepthStencilAttachment_; - return *this; - } - - SubpassDescription & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = preserveAttachmentCount_; - return *this; - } - - SubpassDescription & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pPreserveAttachments = pPreserveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = static_cast( preserveAttachments_.size() ); - pPreserveAttachments = preserveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSubpassDescription const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDescription &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDescription const& ) const = default; -#else - bool operator==( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( inputAttachmentCount == rhs.inputAttachmentCount ) - && ( pInputAttachments == rhs.pInputAttachments ) - && ( colorAttachmentCount == rhs.colorAttachmentCount ) - && ( pColorAttachments == rhs.pColorAttachments ) - && ( pResolveAttachments == rhs.pResolveAttachments ) - && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) - && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) - && ( pPreserveAttachments == rhs.pPreserveAttachments ); - } - - bool operator!=( SubpassDescription const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t inputAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pInputAttachments = {}; - uint32_t colorAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pColorAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pResolveAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference* pDepthStencilAttachment = {}; - uint32_t preserveAttachmentCount = {}; - const uint32_t* pPreserveAttachments = {}; - - }; - static_assert( sizeof( SubpassDescription ) == sizeof( VkSubpassDescription ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SubpassDependency - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDependency(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDependency( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDependency( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassDependency & operator=( VkSubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDependency & operator=( SubpassDependency const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassDependency ) ); - return *this; - } - - SubpassDependency & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT - { - srcSubpass = srcSubpass_; - return *this; - } - - SubpassDependency & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT - { - dstSubpass = dstSubpass_; - return *this; - } - - SubpassDependency & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } - - SubpassDependency & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } - - SubpassDependency & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - SubpassDependency & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - SubpassDependency & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT - { - dependencyFlags = dependencyFlags_; - return *this; - } - - - operator VkSubpassDependency const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDependency &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDependency const& ) const = default; -#else - bool operator==( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( srcSubpass == rhs.srcSubpass ) - && ( dstSubpass == rhs.dstSubpass ) - && ( srcStageMask == rhs.srcStageMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( dependencyFlags == rhs.dependencyFlags ); - } - - bool operator!=( SubpassDependency const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t srcSubpass = {}; - uint32_t dstSubpass = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; - - }; - static_assert( sizeof( SubpassDependency ) == sizeof( VkSubpassDependency ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct RenderPassCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassCreateInfo( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ = {} ) - : flags( flags_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast( dependencies_.size() ) ), pDependencies( dependencies_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassCreateInfo & operator=( VkRenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassCreateInfo & operator=( RenderPassCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassCreateInfo ) ); - return *this; - } - - RenderPassCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RenderPassCreateInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - RenderPassCreateInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = subpassCount_; - return *this; - } - - RenderPassCreateInfo & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses_ ) VULKAN_HPP_NOEXCEPT - { - pSubpasses = pSubpasses_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = static_cast( subpasses_.size() ); - pSubpasses = subpasses_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = dependencyCount_; - return *this; - } - - RenderPassCreateInfo & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies_ ) VULKAN_HPP_NOEXCEPT - { - pDependencies = pDependencies_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = static_cast( dependencies_.size() ); - pDependencies = dependencies_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassCreateInfo const& ) const = default; -#else - bool operator==( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( subpassCount == rhs.subpassCount ) - && ( pSubpasses == rhs.pSubpasses ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pDependencies == rhs.pDependencies ); - } - - bool operator!=( RenderPassCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentDescription* pAttachments = {}; - uint32_t subpassCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDescription* pSubpasses = {}; - uint32_t dependencyCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDependency* pDependencies = {}; - - }; - static_assert( sizeof( RenderPassCreateInfo ) == sizeof( VkRenderPassCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassCreateInfo; - }; - - struct SubpassDescription2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescription2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDescription2(VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ = {}, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, uint32_t viewMask_ = {}, uint32_t inputAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ = {}, uint32_t colorAttachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {}, uint32_t preserveAttachmentCount_ = {}, const uint32_t* pPreserveAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( inputAttachmentCount_ ), pInputAttachments( pInputAttachments_ ), colorAttachmentCount( colorAttachmentCount_ ), pColorAttachments( pColorAttachments_ ), pResolveAttachments( pResolveAttachments_ ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( preserveAttachmentCount_ ), pPreserveAttachments( pPreserveAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDescription2( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescription2( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_, VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_, uint32_t viewMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ = {} ) - : flags( flags_ ), pipelineBindPoint( pipelineBindPoint_ ), viewMask( viewMask_ ), inputAttachmentCount( static_cast( inputAttachments_.size() ) ), pInputAttachments( inputAttachments_.data() ), colorAttachmentCount( static_cast( colorAttachments_.size() ) ), pColorAttachments( colorAttachments_.data() ), pResolveAttachments( resolveAttachments_.data() ), pDepthStencilAttachment( pDepthStencilAttachment_ ), preserveAttachmentCount( static_cast( preserveAttachments_.size() ) ), pPreserveAttachments( preserveAttachments_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( resolveAttachments_.empty() || ( colorAttachments_.size() == resolveAttachments_.size() ) ); -#else - if ( !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubpassDescription2::SubpassDescription2: !resolveAttachments_.empty() && ( colorAttachments_.size() != resolveAttachments_.size() )" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassDescription2 & operator=( VkSubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDescription2 & operator=( SubpassDescription2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassDescription2 ) ); - return *this; - } - - SubpassDescription2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassDescription2 & setFlags( VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SubpassDescription2 & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - SubpassDescription2 & setViewMask( uint32_t viewMask_ ) VULKAN_HPP_NOEXCEPT - { - viewMask = viewMask_; - return *this; - } - - SubpassDescription2 & setInputAttachmentCount( uint32_t inputAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = inputAttachmentCount_; - return *this; - } - - SubpassDescription2 & setPInputAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pInputAttachments = pInputAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setInputAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & inputAttachments_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentCount = static_cast( inputAttachments_.size() ); - pInputAttachments = inputAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription2 & setColorAttachmentCount( uint32_t colorAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = colorAttachmentCount_; - return *this; - } - - SubpassDescription2 & setPColorAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pColorAttachments = pColorAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setColorAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & colorAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( colorAttachments_.size() ); - pColorAttachments = colorAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription2 & setPResolveAttachments( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pResolveAttachments = pResolveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setResolveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & resolveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - colorAttachmentCount = static_cast( resolveAttachments_.size() ); - pResolveAttachments = resolveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubpassDescription2 & setPDepthStencilAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilAttachment = pDepthStencilAttachment_; - return *this; - } - - SubpassDescription2 & setPreserveAttachmentCount( uint32_t preserveAttachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = preserveAttachmentCount_; - return *this; - } - - SubpassDescription2 & setPPreserveAttachments( const uint32_t* pPreserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pPreserveAttachments = pPreserveAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubpassDescription2 & setPreserveAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & preserveAttachments_ ) VULKAN_HPP_NOEXCEPT - { - preserveAttachmentCount = static_cast( preserveAttachments_.size() ); - pPreserveAttachments = preserveAttachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSubpassDescription2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDescription2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDescription2 const& ) const = default; -#else - bool operator==( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( viewMask == rhs.viewMask ) - && ( inputAttachmentCount == rhs.inputAttachmentCount ) - && ( pInputAttachments == rhs.pInputAttachments ) - && ( colorAttachmentCount == rhs.colorAttachmentCount ) - && ( pColorAttachments == rhs.pColorAttachments ) - && ( pResolveAttachments == rhs.pResolveAttachments ) - && ( pDepthStencilAttachment == rhs.pDepthStencilAttachment ) - && ( preserveAttachmentCount == rhs.preserveAttachmentCount ) - && ( pPreserveAttachments == rhs.pPreserveAttachments ); - } - - bool operator!=( SubpassDescription2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescription2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SubpassDescriptionFlags flags = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - uint32_t viewMask = {}; - uint32_t inputAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pInputAttachments = {}; - uint32_t colorAttachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pColorAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pResolveAttachments = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilAttachment = {}; - uint32_t preserveAttachmentCount = {}; - const uint32_t* pPreserveAttachments = {}; - - }; - static_assert( sizeof( SubpassDescription2 ) == sizeof( VkSubpassDescription2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassDescription2; - }; - using SubpassDescription2KHR = SubpassDescription2; - - struct SubpassDependency2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDependency2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDependency2(uint32_t srcSubpass_ = {}, uint32_t dstSubpass_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ = {}, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ = {}, VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ = {}, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ = {}, int32_t viewOffset_ = {}) VULKAN_HPP_NOEXCEPT - : srcSubpass( srcSubpass_ ), dstSubpass( dstSubpass_ ), srcStageMask( srcStageMask_ ), dstStageMask( dstStageMask_ ), srcAccessMask( srcAccessMask_ ), dstAccessMask( dstAccessMask_ ), dependencyFlags( dependencyFlags_ ), viewOffset( viewOffset_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDependency2( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDependency2( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassDependency2 & operator=( VkSubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDependency2 & operator=( SubpassDependency2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassDependency2 ) ); - return *this; - } - - SubpassDependency2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassDependency2 & setSrcSubpass( uint32_t srcSubpass_ ) VULKAN_HPP_NOEXCEPT - { - srcSubpass = srcSubpass_; - return *this; - } - - SubpassDependency2 & setDstSubpass( uint32_t dstSubpass_ ) VULKAN_HPP_NOEXCEPT - { - dstSubpass = dstSubpass_; - return *this; - } - - SubpassDependency2 & setSrcStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask_ ) VULKAN_HPP_NOEXCEPT - { - srcStageMask = srcStageMask_; - return *this; - } - - SubpassDependency2 & setDstStageMask( VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - dstStageMask = dstStageMask_; - return *this; - } - - SubpassDependency2 & setSrcAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - srcAccessMask = srcAccessMask_; - return *this; - } - - SubpassDependency2 & setDstAccessMask( VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask_ ) VULKAN_HPP_NOEXCEPT - { - dstAccessMask = dstAccessMask_; - return *this; - } - - SubpassDependency2 & setDependencyFlags( VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags_ ) VULKAN_HPP_NOEXCEPT - { - dependencyFlags = dependencyFlags_; - return *this; - } - - SubpassDependency2 & setViewOffset( int32_t viewOffset_ ) VULKAN_HPP_NOEXCEPT - { - viewOffset = viewOffset_; - return *this; - } - - - operator VkSubpassDependency2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDependency2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDependency2 const& ) const = default; -#else - bool operator==( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcSubpass == rhs.srcSubpass ) - && ( dstSubpass == rhs.dstSubpass ) - && ( srcStageMask == rhs.srcStageMask ) - && ( dstStageMask == rhs.dstStageMask ) - && ( srcAccessMask == rhs.srcAccessMask ) - && ( dstAccessMask == rhs.dstAccessMask ) - && ( dependencyFlags == rhs.dependencyFlags ) - && ( viewOffset == rhs.viewOffset ); - } - - bool operator!=( SubpassDependency2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDependency2; - const void* pNext = {}; - uint32_t srcSubpass = {}; - uint32_t dstSubpass = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags srcAccessMask = {}; - VULKAN_HPP_NAMESPACE::AccessFlags dstAccessMask = {}; - VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags = {}; - int32_t viewOffset = {}; - - }; - static_assert( sizeof( SubpassDependency2 ) == sizeof( VkSubpassDependency2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassDependency2; - }; - using SubpassDependency2KHR = SubpassDependency2; - - struct RenderPassCreateInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassCreateInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2(VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ = {}, uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ = {}, uint32_t subpassCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ = {}, uint32_t dependencyCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ = {}, uint32_t correlatedViewMaskCount_ = {}, const uint32_t* pCorrelatedViewMasks_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ), subpassCount( subpassCount_ ), pSubpasses( pSubpasses_ ), dependencyCount( dependencyCount_ ), pDependencies( pDependencies_ ), correlatedViewMaskCount( correlatedViewMaskCount_ ), pCorrelatedViewMasks( pCorrelatedViewMasks_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassCreateInfo2( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassCreateInfo2( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlatedViewMasks_ = {} ) - : flags( flags_ ), attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ), subpassCount( static_cast( subpasses_.size() ) ), pSubpasses( subpasses_.data() ), dependencyCount( static_cast( dependencies_.size() ) ), pDependencies( dependencies_.data() ), correlatedViewMaskCount( static_cast( correlatedViewMasks_.size() ) ), pCorrelatedViewMasks( correlatedViewMasks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassCreateInfo2 & operator=( VkRenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassCreateInfo2 & operator=( RenderPassCreateInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassCreateInfo2 ) ); - return *this; - } - - RenderPassCreateInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassCreateInfo2 & setFlags( VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - RenderPassCreateInfo2 & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - RenderPassCreateInfo2 & setPAttachments( const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo2 & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = subpassCount_; - return *this; - } - - RenderPassCreateInfo2 & setPSubpasses( const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses_ ) VULKAN_HPP_NOEXCEPT - { - pSubpasses = pSubpasses_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setSubpasses( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & subpasses_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = static_cast( subpasses_.size() ); - pSubpasses = subpasses_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo2 & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = dependencyCount_; - return *this; - } - - RenderPassCreateInfo2 & setPDependencies( const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies_ ) VULKAN_HPP_NOEXCEPT - { - pDependencies = pDependencies_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setDependencies( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & dependencies_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = static_cast( dependencies_.size() ); - pDependencies = dependencies_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassCreateInfo2 & setCorrelatedViewMaskCount( uint32_t correlatedViewMaskCount_ ) VULKAN_HPP_NOEXCEPT - { - correlatedViewMaskCount = correlatedViewMaskCount_; - return *this; - } - - RenderPassCreateInfo2 & setPCorrelatedViewMasks( const uint32_t* pCorrelatedViewMasks_ ) VULKAN_HPP_NOEXCEPT - { - pCorrelatedViewMasks = pCorrelatedViewMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassCreateInfo2 & setCorrelatedViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlatedViewMasks_ ) VULKAN_HPP_NOEXCEPT - { - correlatedViewMaskCount = static_cast( correlatedViewMasks_.size() ); - pCorrelatedViewMasks = correlatedViewMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassCreateInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassCreateInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassCreateInfo2 const& ) const = default; -#else - bool operator==( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ) - && ( subpassCount == rhs.subpassCount ) - && ( pSubpasses == rhs.pSubpasses ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pDependencies == rhs.pDependencies ) - && ( correlatedViewMaskCount == rhs.correlatedViewMaskCount ) - && ( pCorrelatedViewMasks == rhs.pCorrelatedViewMasks ); - } - - bool operator!=( RenderPassCreateInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassCreateInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RenderPassCreateFlags flags = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentDescription2* pAttachments = {}; - uint32_t subpassCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDescription2* pSubpasses = {}; - uint32_t dependencyCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassDependency2* pDependencies = {}; - uint32_t correlatedViewMaskCount = {}; - const uint32_t* pCorrelatedViewMasks = {}; - - }; - static_assert( sizeof( RenderPassCreateInfo2 ) == sizeof( VkRenderPassCreateInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassCreateInfo2; - }; - using RenderPassCreateInfo2KHR = RenderPassCreateInfo2; - - struct SamplerCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerCreateInfo(VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::Filter magFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Filter minFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat, float mipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ = {}, float maxAnisotropy_ = {}, VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ = {}, VULKAN_HPP_NAMESPACE::CompareOp compareOp_ = VULKAN_HPP_NAMESPACE::CompareOp::eNever, float minLod_ = {}, float maxLod_ = {}, VULKAN_HPP_NAMESPACE::BorderColor borderColor_ = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack, VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), magFilter( magFilter_ ), minFilter( minFilter_ ), mipmapMode( mipmapMode_ ), addressModeU( addressModeU_ ), addressModeV( addressModeV_ ), addressModeW( addressModeW_ ), mipLodBias( mipLodBias_ ), anisotropyEnable( anisotropyEnable_ ), maxAnisotropy( maxAnisotropy_ ), compareEnable( compareEnable_ ), compareOp( compareOp_ ), minLod( minLod_ ), maxLod( maxLod_ ), borderColor( borderColor_ ), unnormalizedCoordinates( unnormalizedCoordinates_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerCreateInfo( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerCreateInfo( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SamplerCreateInfo & operator=( VkSamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerCreateInfo & operator=( SamplerCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SamplerCreateInfo ) ); - return *this; - } - - SamplerCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SamplerCreateInfo & setMagFilter( VULKAN_HPP_NAMESPACE::Filter magFilter_ ) VULKAN_HPP_NOEXCEPT - { - magFilter = magFilter_; - return *this; - } - - SamplerCreateInfo & setMinFilter( VULKAN_HPP_NAMESPACE::Filter minFilter_ ) VULKAN_HPP_NOEXCEPT - { - minFilter = minFilter_; - return *this; - } - - SamplerCreateInfo & setMipmapMode( VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode_ ) VULKAN_HPP_NOEXCEPT - { - mipmapMode = mipmapMode_; - return *this; - } - - SamplerCreateInfo & setAddressModeU( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU_ ) VULKAN_HPP_NOEXCEPT - { - addressModeU = addressModeU_; - return *this; - } - - SamplerCreateInfo & setAddressModeV( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV_ ) VULKAN_HPP_NOEXCEPT - { - addressModeV = addressModeV_; - return *this; - } - - SamplerCreateInfo & setAddressModeW( VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW_ ) VULKAN_HPP_NOEXCEPT - { - addressModeW = addressModeW_; - return *this; - } - - SamplerCreateInfo & setMipLodBias( float mipLodBias_ ) VULKAN_HPP_NOEXCEPT - { - mipLodBias = mipLodBias_; - return *this; - } - - SamplerCreateInfo & setAnisotropyEnable( VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable_ ) VULKAN_HPP_NOEXCEPT - { - anisotropyEnable = anisotropyEnable_; - return *this; - } - - SamplerCreateInfo & setMaxAnisotropy( float maxAnisotropy_ ) VULKAN_HPP_NOEXCEPT - { - maxAnisotropy = maxAnisotropy_; - return *this; - } - - SamplerCreateInfo & setCompareEnable( VULKAN_HPP_NAMESPACE::Bool32 compareEnable_ ) VULKAN_HPP_NOEXCEPT - { - compareEnable = compareEnable_; - return *this; - } - - SamplerCreateInfo & setCompareOp( VULKAN_HPP_NAMESPACE::CompareOp compareOp_ ) VULKAN_HPP_NOEXCEPT - { - compareOp = compareOp_; - return *this; - } - - SamplerCreateInfo & setMinLod( float minLod_ ) VULKAN_HPP_NOEXCEPT - { - minLod = minLod_; - return *this; - } - - SamplerCreateInfo & setMaxLod( float maxLod_ ) VULKAN_HPP_NOEXCEPT - { - maxLod = maxLod_; - return *this; - } - - SamplerCreateInfo & setBorderColor( VULKAN_HPP_NAMESPACE::BorderColor borderColor_ ) VULKAN_HPP_NOEXCEPT - { - borderColor = borderColor_; - return *this; - } - - SamplerCreateInfo & setUnnormalizedCoordinates( VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates_ ) VULKAN_HPP_NOEXCEPT - { - unnormalizedCoordinates = unnormalizedCoordinates_; - return *this; - } - - - operator VkSamplerCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerCreateInfo const& ) const = default; -#else - bool operator==( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( magFilter == rhs.magFilter ) - && ( minFilter == rhs.minFilter ) - && ( mipmapMode == rhs.mipmapMode ) - && ( addressModeU == rhs.addressModeU ) - && ( addressModeV == rhs.addressModeV ) - && ( addressModeW == rhs.addressModeW ) - && ( mipLodBias == rhs.mipLodBias ) - && ( anisotropyEnable == rhs.anisotropyEnable ) - && ( maxAnisotropy == rhs.maxAnisotropy ) - && ( compareEnable == rhs.compareEnable ) - && ( compareOp == rhs.compareOp ) - && ( minLod == rhs.minLod ) - && ( maxLod == rhs.maxLod ) - && ( borderColor == rhs.borderColor ) - && ( unnormalizedCoordinates == rhs.unnormalizedCoordinates ); - } - - bool operator!=( SamplerCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::Filter magFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::Filter minFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::SamplerMipmapMode mipmapMode = VULKAN_HPP_NAMESPACE::SamplerMipmapMode::eNearest; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeU = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeV = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - VULKAN_HPP_NAMESPACE::SamplerAddressMode addressModeW = VULKAN_HPP_NAMESPACE::SamplerAddressMode::eRepeat; - float mipLodBias = {}; - VULKAN_HPP_NAMESPACE::Bool32 anisotropyEnable = {}; - float maxAnisotropy = {}; - VULKAN_HPP_NAMESPACE::Bool32 compareEnable = {}; - VULKAN_HPP_NAMESPACE::CompareOp compareOp = VULKAN_HPP_NAMESPACE::CompareOp::eNever; - float minLod = {}; - float maxLod = {}; - VULKAN_HPP_NAMESPACE::BorderColor borderColor = VULKAN_HPP_NAMESPACE::BorderColor::eFloatTransparentBlack; - VULKAN_HPP_NAMESPACE::Bool32 unnormalizedCoordinates = {}; - - }; - static_assert( sizeof( SamplerCreateInfo ) == sizeof( VkSamplerCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerCreateInfo; - }; - - struct SamplerYcbcrConversionCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity, VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull, VULKAN_HPP_NAMESPACE::ComponentMapping components_ = {}, VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven, VULKAN_HPP_NAMESPACE::Filter chromaFilter_ = VULKAN_HPP_NAMESPACE::Filter::eNearest, VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ = {}) VULKAN_HPP_NOEXCEPT - : format( format_ ), ycbcrModel( ycbcrModel_ ), ycbcrRange( ycbcrRange_ ), components( components_ ), xChromaOffset( xChromaOffset_ ), yChromaOffset( yChromaOffset_ ), chromaFilter( chromaFilter_ ), forceExplicitReconstruction( forceExplicitReconstruction_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionCreateInfo( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionCreateInfo( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SamplerYcbcrConversionCreateInfo & operator=( VkSamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerYcbcrConversionCreateInfo & operator=( SamplerYcbcrConversionCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SamplerYcbcrConversionCreateInfo ) ); - return *this; - } - - SamplerYcbcrConversionCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setYcbcrModel( VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel_ ) VULKAN_HPP_NOEXCEPT - { - ycbcrModel = ycbcrModel_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setYcbcrRange( VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange_ ) VULKAN_HPP_NOEXCEPT - { - ycbcrRange = ycbcrRange_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setComponents( VULKAN_HPP_NAMESPACE::ComponentMapping const & components_ ) VULKAN_HPP_NOEXCEPT - { - components = components_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setXChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset_ ) VULKAN_HPP_NOEXCEPT - { - xChromaOffset = xChromaOffset_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setYChromaOffset( VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset_ ) VULKAN_HPP_NOEXCEPT - { - yChromaOffset = yChromaOffset_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setChromaFilter( VULKAN_HPP_NAMESPACE::Filter chromaFilter_ ) VULKAN_HPP_NOEXCEPT - { - chromaFilter = chromaFilter_; - return *this; - } - - SamplerYcbcrConversionCreateInfo & setForceExplicitReconstruction( VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction_ ) VULKAN_HPP_NOEXCEPT - { - forceExplicitReconstruction = forceExplicitReconstruction_; - return *this; - } - - - operator VkSamplerYcbcrConversionCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerYcbcrConversionCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversionCreateInfo const& ) const = default; -#else - bool operator==( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( ycbcrModel == rhs.ycbcrModel ) - && ( ycbcrRange == rhs.ycbcrRange ) - && ( components == rhs.components ) - && ( xChromaOffset == rhs.xChromaOffset ) - && ( yChromaOffset == rhs.yChromaOffset ) - && ( chromaFilter == rhs.chromaFilter ) - && ( forceExplicitReconstruction == rhs.forceExplicitReconstruction ); - } - - bool operator!=( SamplerYcbcrConversionCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion ycbcrModel = VULKAN_HPP_NAMESPACE::SamplerYcbcrModelConversion::eRgbIdentity; - VULKAN_HPP_NAMESPACE::SamplerYcbcrRange ycbcrRange = VULKAN_HPP_NAMESPACE::SamplerYcbcrRange::eItuFull; - VULKAN_HPP_NAMESPACE::ComponentMapping components = {}; - VULKAN_HPP_NAMESPACE::ChromaLocation xChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::ChromaLocation yChromaOffset = VULKAN_HPP_NAMESPACE::ChromaLocation::eCositedEven; - VULKAN_HPP_NAMESPACE::Filter chromaFilter = VULKAN_HPP_NAMESPACE::Filter::eNearest; - VULKAN_HPP_NAMESPACE::Bool32 forceExplicitReconstruction = {}; - - }; - static_assert( sizeof( SamplerYcbcrConversionCreateInfo ) == sizeof( VkSamplerYcbcrConversionCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerYcbcrConversionCreateInfo; - }; - using SamplerYcbcrConversionCreateInfoKHR = SamplerYcbcrConversionCreateInfo; - - class SamplerYcbcrConversion - { - public: - using CType = VkSamplerYcbcrConversion; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSamplerYcbcrConversion; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSamplerYcbcrConversion; - - public: - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion() VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversion( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT SamplerYcbcrConversion( VkSamplerYcbcrConversion samplerYcbcrConversion ) VULKAN_HPP_NOEXCEPT - : m_samplerYcbcrConversion( samplerYcbcrConversion ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SamplerYcbcrConversion & operator=(VkSamplerYcbcrConversion samplerYcbcrConversion) VULKAN_HPP_NOEXCEPT - { - m_samplerYcbcrConversion = samplerYcbcrConversion; - return *this; - } -#endif - - SamplerYcbcrConversion & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_samplerYcbcrConversion = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversion const& ) const = default; -#else - bool operator==( SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion == rhs.m_samplerYcbcrConversion; - } - - bool operator!=(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion != rhs.m_samplerYcbcrConversion; - } - - bool operator<(SamplerYcbcrConversion const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion < rhs.m_samplerYcbcrConversion; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSamplerYcbcrConversion() const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_samplerYcbcrConversion == VK_NULL_HANDLE; - } - - private: - VkSamplerYcbcrConversion m_samplerYcbcrConversion; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ) == sizeof( VkSamplerYcbcrConversion ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - using SamplerYcbcrConversionKHR = SamplerYcbcrConversion; - - struct SemaphoreCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreCreateInfo( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreCreateInfo( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SemaphoreCreateInfo & operator=( VkSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreCreateInfo & operator=( SemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SemaphoreCreateInfo ) ); - return *this; - } - - SemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreCreateInfo const& ) const = default; -#else - bool operator==( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( SemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreCreateFlags flags = {}; - - }; - static_assert( sizeof( SemaphoreCreateInfo ) == sizeof( VkSemaphoreCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreCreateInfo; - }; - - struct ShaderModuleCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo(VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ = {}, size_t codeSize_ = {}, const uint32_t* pCode_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), codeSize( codeSize_ ), pCode( pCode_ ) - {} - - VULKAN_HPP_CONSTEXPR ShaderModuleCreateInfo( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderModuleCreateInfo( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShaderModuleCreateInfo( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & code_ ) - : flags( flags_ ), codeSize( code_.size() * 4 ), pCode( code_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ShaderModuleCreateInfo & operator=( VkShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShaderModuleCreateInfo & operator=( ShaderModuleCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ShaderModuleCreateInfo ) ); - return *this; - } - - ShaderModuleCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ShaderModuleCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ShaderModuleCreateInfo & setCodeSize( size_t codeSize_ ) VULKAN_HPP_NOEXCEPT - { - codeSize = codeSize_; - return *this; - } - - ShaderModuleCreateInfo & setPCode( const uint32_t* pCode_ ) VULKAN_HPP_NOEXCEPT - { - pCode = pCode_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ShaderModuleCreateInfo & setCode( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & code_ ) VULKAN_HPP_NOEXCEPT - { - codeSize = code_.size() * 4; - pCode = code_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkShaderModuleCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderModuleCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderModuleCreateInfo const& ) const = default; -#else - bool operator==( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( codeSize == rhs.codeSize ) - && ( pCode == rhs.pCode ); - } - - bool operator!=( ShaderModuleCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderModuleCreateFlags flags = {}; - size_t codeSize = {}; - const uint32_t* pCode = {}; - - }; - static_assert( sizeof( ShaderModuleCreateInfo ) == sizeof( VkShaderModuleCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ShaderModuleCreateInfo; - }; - - class SurfaceKHR - { - public: - using CType = VkSurfaceKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eSurfaceKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eSurfaceKHR; - - public: - VULKAN_HPP_CONSTEXPR SurfaceKHR() VULKAN_HPP_NOEXCEPT - : m_surfaceKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR SurfaceKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_surfaceKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT SurfaceKHR( VkSurfaceKHR surfaceKHR ) VULKAN_HPP_NOEXCEPT - : m_surfaceKHR( surfaceKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - SurfaceKHR & operator=(VkSurfaceKHR surfaceKHR) VULKAN_HPP_NOEXCEPT - { - m_surfaceKHR = surfaceKHR; - return *this; - } -#endif - - SurfaceKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_surfaceKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceKHR const& ) const = default; -#else - bool operator==( SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR == rhs.m_surfaceKHR; - } - - bool operator!=(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR != rhs.m_surfaceKHR; - } - - bool operator<(SurfaceKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR < rhs.m_surfaceKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkSurfaceKHR() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_surfaceKHR == VK_NULL_HANDLE; - } - - private: - VkSurfaceKHR m_surfaceKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::SurfaceKHR ) == sizeof( VkSurfaceKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::SurfaceKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::SurfaceKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct SwapchainCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}, uint32_t minImageCount_ = {}, VULKAN_HPP_NAMESPACE::Format imageFormat_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}, uint32_t imageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ = {}, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ ) - {} - - VULKAN_HPP_CONSTEXPR SwapchainCreateInfoKHR( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainCreateInfoKHR( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SwapchainCreateInfoKHR( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_, VULKAN_HPP_NAMESPACE::SurfaceKHR surface_, uint32_t minImageCount_, VULKAN_HPP_NAMESPACE::Format imageFormat_, VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_, uint32_t imageArrayLayers_, VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_, VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate, VULKAN_HPP_NAMESPACE::Bool32 clipped_ = {}, VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ = {} ) - : flags( flags_ ), surface( surface_ ), minImageCount( minImageCount_ ), imageFormat( imageFormat_ ), imageColorSpace( imageColorSpace_ ), imageExtent( imageExtent_ ), imageArrayLayers( imageArrayLayers_ ), imageUsage( imageUsage_ ), imageSharingMode( imageSharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ), preTransform( preTransform_ ), compositeAlpha( compositeAlpha_ ), presentMode( presentMode_ ), clipped( clipped_ ), oldSwapchain( oldSwapchain_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SwapchainCreateInfoKHR & operator=( VkSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SwapchainCreateInfoKHR & operator=( SwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SwapchainCreateInfoKHR ) ); - return *this; - } - - SwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SwapchainCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SwapchainCreateInfoKHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - SwapchainCreateInfoKHR & setMinImageCount( uint32_t minImageCount_ ) VULKAN_HPP_NOEXCEPT - { - minImageCount = minImageCount_; - return *this; - } - - SwapchainCreateInfoKHR & setImageFormat( VULKAN_HPP_NAMESPACE::Format imageFormat_ ) VULKAN_HPP_NOEXCEPT - { - imageFormat = imageFormat_; - return *this; - } - - SwapchainCreateInfoKHR & setImageColorSpace( VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace_ ) VULKAN_HPP_NOEXCEPT - { - imageColorSpace = imageColorSpace_; - return *this; - } - - SwapchainCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - SwapchainCreateInfoKHR & setImageArrayLayers( uint32_t imageArrayLayers_ ) VULKAN_HPP_NOEXCEPT - { - imageArrayLayers = imageArrayLayers_; - return *this; - } - - SwapchainCreateInfoKHR & setImageUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage_ ) VULKAN_HPP_NOEXCEPT - { - imageUsage = imageUsage_; - return *this; - } - - SwapchainCreateInfoKHR & setImageSharingMode( VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode_ ) VULKAN_HPP_NOEXCEPT - { - imageSharingMode = imageSharingMode_; - return *this; - } - - SwapchainCreateInfoKHR & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - SwapchainCreateInfoKHR & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SwapchainCreateInfoKHR & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SwapchainCreateInfoKHR & setPreTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform_ ) VULKAN_HPP_NOEXCEPT - { - preTransform = preTransform_; - return *this; - } - - SwapchainCreateInfoKHR & setCompositeAlpha( VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha_ ) VULKAN_HPP_NOEXCEPT - { - compositeAlpha = compositeAlpha_; - return *this; - } - - SwapchainCreateInfoKHR & setPresentMode( VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode_ ) VULKAN_HPP_NOEXCEPT - { - presentMode = presentMode_; - return *this; - } - - SwapchainCreateInfoKHR & setClipped( VULKAN_HPP_NAMESPACE::Bool32 clipped_ ) VULKAN_HPP_NOEXCEPT - { - clipped = clipped_; - return *this; - } - - SwapchainCreateInfoKHR & setOldSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain_ ) VULKAN_HPP_NOEXCEPT - { - oldSwapchain = oldSwapchain_; - return *this; - } - - - operator VkSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainCreateInfoKHR const& ) const = default; -#else - bool operator==( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( surface == rhs.surface ) - && ( minImageCount == rhs.minImageCount ) - && ( imageFormat == rhs.imageFormat ) - && ( imageColorSpace == rhs.imageColorSpace ) - && ( imageExtent == rhs.imageExtent ) - && ( imageArrayLayers == rhs.imageArrayLayers ) - && ( imageUsage == rhs.imageUsage ) - && ( imageSharingMode == rhs.imageSharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ) - && ( preTransform == rhs.preTransform ) - && ( compositeAlpha == rhs.compositeAlpha ) - && ( presentMode == rhs.presentMode ) - && ( clipped == rhs.clipped ) - && ( oldSwapchain == rhs.oldSwapchain ); - } - - bool operator!=( SwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; - uint32_t minImageCount = {}; - VULKAN_HPP_NAMESPACE::Format imageFormat = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ColorSpaceKHR imageColorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; - VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; - uint32_t imageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags imageUsage = {}; - VULKAN_HPP_NAMESPACE::SharingMode imageSharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR preTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR compositeAlpha = VULKAN_HPP_NAMESPACE::CompositeAlphaFlagBitsKHR::eOpaque; - VULKAN_HPP_NAMESPACE::PresentModeKHR presentMode = VULKAN_HPP_NAMESPACE::PresentModeKHR::eImmediate; - VULKAN_HPP_NAMESPACE::Bool32 clipped = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR oldSwapchain = {}; - - }; - static_assert( sizeof( SwapchainCreateInfoKHR ) == sizeof( VkSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SwapchainCreateInfoKHR; - }; - - struct ValidationCacheCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationCacheCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ = {}, size_t initialDataSize_ = {}, const void* pInitialData_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), initialDataSize( initialDataSize_ ), pInitialData( pInitialData_ ) - {} - - VULKAN_HPP_CONSTEXPR ValidationCacheCreateInfoEXT( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationCacheCreateInfoEXT( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - ValidationCacheCreateInfoEXT( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) - : flags( flags_ ), initialDataSize( initialData_.size() * sizeof(T) ), pInitialData( initialData_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ValidationCacheCreateInfoEXT & operator=( VkValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ValidationCacheCreateInfoEXT & operator=( ValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ValidationCacheCreateInfoEXT ) ); - return *this; - } - - ValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ValidationCacheCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ValidationCacheCreateInfoEXT & setInitialDataSize( size_t initialDataSize_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialDataSize_; - return *this; - } - - ValidationCacheCreateInfoEXT & setPInitialData( const void* pInitialData_ ) VULKAN_HPP_NOEXCEPT - { - pInitialData = pInitialData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - ValidationCacheCreateInfoEXT & setInitialData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & initialData_ ) VULKAN_HPP_NOEXCEPT - { - initialDataSize = initialData_.size() * sizeof(T); - pInitialData = initialData_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationCacheCreateInfoEXT const& ) const = default; -#else - bool operator==( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( initialDataSize == rhs.initialDataSize ) - && ( pInitialData == rhs.pInitialData ); - } - - bool operator!=( ValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationCacheCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ValidationCacheCreateFlagsEXT flags = {}; - size_t initialDataSize = {}; - const void* pInitialData = {}; - - }; - static_assert( sizeof( ValidationCacheCreateInfoEXT ) == sizeof( VkValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ValidationCacheCreateInfoEXT; - }; - - class ValidationCacheEXT - { - public: - using CType = VkValidationCacheEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eValidationCacheEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eValidationCacheEXT; - - public: - VULKAN_HPP_CONSTEXPR ValidationCacheEXT() VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR ValidationCacheEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT ValidationCacheEXT( VkValidationCacheEXT validationCacheEXT ) VULKAN_HPP_NOEXCEPT - : m_validationCacheEXT( validationCacheEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - ValidationCacheEXT & operator=(VkValidationCacheEXT validationCacheEXT) VULKAN_HPP_NOEXCEPT - { - m_validationCacheEXT = validationCacheEXT; - return *this; - } -#endif - - ValidationCacheEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_validationCacheEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationCacheEXT const& ) const = default; -#else - bool operator==( ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT == rhs.m_validationCacheEXT; - } - - bool operator!=(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT != rhs.m_validationCacheEXT; - } - - bool operator<(ValidationCacheEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT < rhs.m_validationCacheEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkValidationCacheEXT() const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_validationCacheEXT == VK_NULL_HANDLE; - } - - private: - VkValidationCacheEXT m_validationCacheEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::ValidationCacheEXT ) == sizeof( VkValidationCacheEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::ValidationCacheEXT; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DisplayPowerInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPowerInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT(VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff) VULKAN_HPP_NOEXCEPT - : powerState( powerState_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPowerInfoEXT( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPowerInfoEXT( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPowerInfoEXT & operator=( VkDisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPowerInfoEXT & operator=( DisplayPowerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPowerInfoEXT ) ); - return *this; - } - - DisplayPowerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayPowerInfoEXT & setPowerState( VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState_ ) VULKAN_HPP_NOEXCEPT - { - powerState = powerState_; - return *this; - } - - - operator VkDisplayPowerInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPowerInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPowerInfoEXT const& ) const = default; -#else - bool operator==( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( powerState == rhs.powerState ); - } - - bool operator!=( DisplayPowerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPowerInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT powerState = VULKAN_HPP_NAMESPACE::DisplayPowerStateEXT::eOff; - - }; - static_assert( sizeof( DisplayPowerInfoEXT ) == sizeof( VkDisplayPowerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPowerInfoEXT; - }; - - struct MappedMemoryRange - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMappedMemoryRange; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MappedMemoryRange(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : memory( memory_ ), offset( offset_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR MappedMemoryRange( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MappedMemoryRange( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MappedMemoryRange & operator=( VkMappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MappedMemoryRange & operator=( MappedMemoryRange const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MappedMemoryRange ) ); - return *this; - } - - MappedMemoryRange & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MappedMemoryRange & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - MappedMemoryRange & setOffset( VULKAN_HPP_NAMESPACE::DeviceSize offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - MappedMemoryRange & setSize( VULKAN_HPP_NAMESPACE::DeviceSize size_ ) VULKAN_HPP_NOEXCEPT - { - size = size_; - return *this; - } - - - operator VkMappedMemoryRange const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMappedMemoryRange &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MappedMemoryRange const& ) const = default; -#else - bool operator==( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( offset == rhs.offset ) - && ( size == rhs.size ); - } - - bool operator!=( MappedMemoryRange const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMappedMemoryRange; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( MappedMemoryRange ) == sizeof( VkMappedMemoryRange ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MappedMemoryRange; - }; - - struct MemoryRequirements - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryRequirements(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize alignment_ = {}, uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : size( size_ ), alignment( alignment_ ), memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryRequirements( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryRequirements( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryRequirements & operator=( VkMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryRequirements & operator=( MemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryRequirements ) ); - return *this; - } - - - operator VkMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryRequirements &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryRequirements const& ) const = default; -#else - bool operator==( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( size == rhs.size ) - && ( alignment == rhs.alignment ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceSize alignment = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryRequirements ) == sizeof( VkMemoryRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MemoryRequirements2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryRequirements2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryRequirements2(VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT - : memoryRequirements( memoryRequirements_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryRequirements2( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryRequirements2( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryRequirements2 & operator=( VkMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryRequirements2 & operator=( MemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryRequirements2 ) ); - return *this; - } - - - operator VkMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryRequirements2 const& ) const = default; -#else - bool operator==( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryRequirements == rhs.memoryRequirements ); - } - - bool operator!=( MemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryRequirements2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements = {}; - - }; - static_assert( sizeof( MemoryRequirements2 ) == sizeof( VkMemoryRequirements2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryRequirements2; - }; - using MemoryRequirements2KHR = MemoryRequirements2; - - struct DeviceGroupPresentCapabilitiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentCapabilitiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR(std::array const& presentMask_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT - : presentMask( presentMask_ ), modes( modes_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 DeviceGroupPresentCapabilitiesKHR( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupPresentCapabilitiesKHR( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupPresentCapabilitiesKHR & operator=( VkDeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupPresentCapabilitiesKHR & operator=( DeviceGroupPresentCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupPresentCapabilitiesKHR ) ); - return *this; - } - - - operator VkDeviceGroupPresentCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupPresentCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupPresentCapabilitiesKHR const& ) const = default; -#else - bool operator==( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( presentMask == rhs.presentMask ) - && ( modes == rhs.modes ); - } - - bool operator!=( DeviceGroupPresentCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentCapabilitiesKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D presentMask = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; - - }; - static_assert( sizeof( DeviceGroupPresentCapabilitiesKHR ) == sizeof( VkDeviceGroupPresentCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupPresentCapabilitiesKHR; - }; - - struct PhysicalDeviceSurfaceInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSurfaceInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ = {}) VULKAN_HPP_NOEXCEPT - : surface( surface_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSurfaceInfo2KHR( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSurfaceInfo2KHR( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSurfaceInfo2KHR & operator=( VkPhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSurfaceInfo2KHR & operator=( PhysicalDeviceSurfaceInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSurfaceInfo2KHR ) ); - return *this; - } - - PhysicalDeviceSurfaceInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSurfaceInfo2KHR & setSurface( VULKAN_HPP_NAMESPACE::SurfaceKHR surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - - operator VkPhysicalDeviceSurfaceInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSurfaceInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSurfaceInfo2KHR const& ) const = default; -#else - bool operator==( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surface == rhs.surface ); - } - - bool operator!=( PhysicalDeviceSurfaceInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSurfaceInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceKHR surface = {}; - - }; - static_assert( sizeof( PhysicalDeviceSurfaceInfo2KHR ) == sizeof( VkPhysicalDeviceSurfaceInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSurfaceInfo2KHR; - }; - - struct DeviceMemoryOpaqueCaptureAddressInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemoryOpaqueCaptureAddressInfo( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryOpaqueCaptureAddressInfo( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceMemoryOpaqueCaptureAddressInfo & operator=( VkDeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceMemoryOpaqueCaptureAddressInfo & operator=( DeviceMemoryOpaqueCaptureAddressInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) ); - return *this; - } - - DeviceMemoryOpaqueCaptureAddressInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceMemoryOpaqueCaptureAddressInfo & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - - operator VkDeviceMemoryOpaqueCaptureAddressInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceMemoryOpaqueCaptureAddressInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemoryOpaqueCaptureAddressInfo const& ) const = default; -#else - bool operator==( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ); - } - - bool operator!=( DeviceMemoryOpaqueCaptureAddressInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOpaqueCaptureAddressInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - - }; - static_assert( sizeof( DeviceMemoryOpaqueCaptureAddressInfo ) == sizeof( VkDeviceMemoryOpaqueCaptureAddressInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceMemoryOpaqueCaptureAddressInfo; - }; - using DeviceMemoryOpaqueCaptureAddressInfoKHR = DeviceMemoryOpaqueCaptureAddressInfo; - - struct PresentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentInfoKHR(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ = {}, const uint32_t* pImageIndices_ = {}, VULKAN_HPP_NAMESPACE::Result* pResults_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), swapchainCount( swapchainCount_ ), pSwapchains( pSwapchains_ ), pImageIndices( pImageIndices_ ), pResults( pResults_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentInfoKHR( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentInfoKHR( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & swapchains_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageIndices_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & results_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), swapchainCount( static_cast( swapchains_.size() ) ), pSwapchains( swapchains_.data() ), pImageIndices( imageIndices_.data() ), pResults( results_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( swapchains_.size() == imageIndices_.size() ); - VULKAN_HPP_ASSERT( results_.empty() || ( swapchains_.size() == results_.size() ) ); - VULKAN_HPP_ASSERT( results_.empty() || ( imageIndices_.size() == results_.size() ) ); -#else - if ( swapchains_.size() != imageIndices_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: swapchains_.size() != imageIndices_.size()" ); - } - if ( !results_.empty() && ( swapchains_.size() != results_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( swapchains_.size() != results_.size() )" ); - } - if ( !results_.empty() && ( imageIndices_.size() != results_.size() ) ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::PresentInfoKHR::PresentInfoKHR: !results_.empty() && ( imageIndices_.size() != results_.size() )" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PresentInfoKHR & operator=( VkPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentInfoKHR & operator=( PresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PresentInfoKHR ) ); - return *this; - } - - PresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentInfoKHR & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - PresentInfoKHR & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphores = pWaitSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphores_.size() ); - pWaitSemaphores = waitSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - PresentInfoKHR & setPSwapchains( const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains_ ) VULKAN_HPP_NOEXCEPT - { - pSwapchains = pSwapchains_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setSwapchains( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & swapchains_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( swapchains_.size() ); - pSwapchains = swapchains_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PresentInfoKHR & setPImageIndices( const uint32_t* pImageIndices_ ) VULKAN_HPP_NOEXCEPT - { - pImageIndices = pImageIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setImageIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & imageIndices_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( imageIndices_.size() ); - pImageIndices = imageIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - PresentInfoKHR & setPResults( VULKAN_HPP_NAMESPACE::Result* pResults_ ) VULKAN_HPP_NOEXCEPT - { - pResults = pResults_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentInfoKHR & setResults( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & results_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( results_.size() ); - pResults = results_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentInfoKHR const& ) const = default; -#else - bool operator==( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pSwapchains == rhs.pSwapchains ) - && ( pImageIndices == rhs.pImageIndices ) - && ( pResults == rhs.pResults ); - } - - bool operator!=( PresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentInfoKHR; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains = {}; - const uint32_t* pImageIndices = {}; - VULKAN_HPP_NAMESPACE::Result* pResults = {}; - - }; - static_assert( sizeof( PresentInfoKHR ) == sizeof( VkPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentInfoKHR; - }; - - struct SubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubmitInfo(uint32_t waitSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ = {}, const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ = {}, uint32_t commandBufferCount_ = {}, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ = {}, uint32_t signalSemaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphores( pWaitSemaphores_ ), pWaitDstStageMask( pWaitDstStageMask_ ), commandBufferCount( commandBufferCount_ ), pCommandBuffers( pCommandBuffers_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphores( pSignalSemaphores_ ) - {} - - VULKAN_HPP_CONSTEXPR SubmitInfo( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubmitInfo( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitDstStageMask_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBuffers_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphores_.size() ) ), pWaitSemaphores( waitSemaphores_.data() ), pWaitDstStageMask( waitDstStageMask_.data() ), commandBufferCount( static_cast( commandBuffers_.size() ) ), pCommandBuffers( commandBuffers_.data() ), signalSemaphoreCount( static_cast( signalSemaphores_.size() ) ), pSignalSemaphores( signalSemaphores_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( waitSemaphores_.size() == waitDstStageMask_.size() ); -#else - if ( waitSemaphores_.size() != waitDstStageMask_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SubmitInfo::SubmitInfo: waitSemaphores_.size() != waitDstStageMask_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubmitInfo & operator=( VkSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubmitInfo & operator=( SubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubmitInfo ) ); - return *this; - } - - SubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - SubmitInfo & setPWaitSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphores = pWaitSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setWaitSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphores_.size() ); - pWaitSemaphores = waitSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo & setPWaitDstStageMask( const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - pWaitDstStageMask = pWaitDstStageMask_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setWaitDstStageMask( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitDstStageMask_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitDstStageMask_.size() ); - pWaitDstStageMask = waitDstStageMask_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = commandBufferCount_; - return *this; - } - - SubmitInfo & setPCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers_ ) VULKAN_HPP_NOEXCEPT - { - pCommandBuffers = pCommandBuffers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setCommandBuffers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBuffers_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = static_cast( commandBuffers_.size() ); - pCommandBuffers = commandBuffers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = signalSemaphoreCount_; - return *this; - } - - SubmitInfo & setPSignalSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphores = pSignalSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SubmitInfo & setSignalSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = static_cast( signalSemaphores_.size() ); - pSignalSemaphores = signalSemaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubmitInfo const& ) const = default; -#else - bool operator==( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphores == rhs.pWaitSemaphores ) - && ( pWaitDstStageMask == rhs.pWaitDstStageMask ) - && ( commandBufferCount == rhs.commandBufferCount ) - && ( pCommandBuffers == rhs.pCommandBuffers ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphores == rhs.pSignalSemaphores ); - } - - bool operator!=( SubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pWaitSemaphores = {}; - const VULKAN_HPP_NAMESPACE::PipelineStageFlags* pWaitDstStageMask = {}; - uint32_t commandBufferCount = {}; - const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers = {}; - uint32_t signalSemaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSignalSemaphores = {}; - - }; - static_assert( sizeof( SubmitInfo ) == sizeof( VkSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubmitInfo; - }; - - class Queue - { - public: - using CType = VkQueue; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eQueue; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eQueue; - - public: - VULKAN_HPP_CONSTEXPR Queue() VULKAN_HPP_NOEXCEPT - : m_queue(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Queue( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_queue(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Queue( VkQueue queue ) VULKAN_HPP_NOEXCEPT - : m_queue( queue ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Queue & operator=(VkQueue queue) VULKAN_HPP_NOEXCEPT - { - m_queue = queue; - return *this; - } -#endif - - Queue & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_queue = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Queue const& ) const = default; -#else - bool operator==( Queue const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queue == rhs.m_queue; - } - - bool operator!=(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queue != rhs.m_queue; - } - - bool operator<(Queue const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_queue < rhs.m_queue; - } -#endif - - - template - void getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getCheckpointDataNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CheckpointDataNVAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void endDebugUtilsLabelEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkQueue() const VULKAN_HPP_NOEXCEPT - { - return m_queue; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_queue != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_queue == VK_NULL_HANDLE; - } - - private: - VkQueue m_queue; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Queue ) == sizeof( VkQueue ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Queue; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Queue; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Queue; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DeviceQueueInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceQueueInfo2(VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ = {}, uint32_t queueFamilyIndex_ = {}, uint32_t queueIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), queueFamilyIndex( queueFamilyIndex_ ), queueIndex( queueIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceQueueInfo2( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueInfo2( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceQueueInfo2 & operator=( VkDeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceQueueInfo2 & operator=( DeviceQueueInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceQueueInfo2 ) ); - return *this; - } - - DeviceQueueInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceQueueInfo2 & setFlags( VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DeviceQueueInfo2 & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - DeviceQueueInfo2 & setQueueIndex( uint32_t queueIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueIndex = queueIndex_; - return *this; - } - - - operator VkDeviceQueueInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceQueueInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceQueueInfo2 const& ) const = default; -#else - bool operator==( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( queueIndex == rhs.queueIndex ); - } - - bool operator!=( DeviceQueueInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceQueueCreateFlags flags = {}; - uint32_t queueFamilyIndex = {}; - uint32_t queueIndex = {}; - - }; - static_assert( sizeof( DeviceQueueInfo2 ) == sizeof( VkDeviceQueueInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceQueueInfo2; - }; - - struct FenceGetFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR FenceGetFdInfoKHR( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceGetFdInfoKHR( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FenceGetFdInfoKHR & operator=( VkFenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FenceGetFdInfoKHR & operator=( FenceGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FenceGetFdInfoKHR ) ); - return *this; - } - - FenceGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FenceGetFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - FenceGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkFenceGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFenceGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FenceGetFdInfoKHR const& ) const = default; -#else - bool operator==( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( FenceGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( FenceGetFdInfoKHR ) == sizeof( VkFenceGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FenceGetFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct FenceGetWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFenceGetWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR FenceGetWin32HandleInfoKHR( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FenceGetWin32HandleInfoKHR( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FenceGetWin32HandleInfoKHR & operator=( VkFenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FenceGetWin32HandleInfoKHR & operator=( FenceGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FenceGetWin32HandleInfoKHR ) ); - return *this; - } - - FenceGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FenceGetWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - FenceGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkFenceGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFenceGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FenceGetWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( FenceGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFenceGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( FenceGetWin32HandleInfoKHR ) == sizeof( VkFenceGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FenceGetWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct GeneratedCommandsMemoryRequirementsInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics, VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ = {}, uint32_t maxSequencesCount_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineBindPoint( pipelineBindPoint_ ), pipeline( pipeline_ ), indirectCommandsLayout( indirectCommandsLayout_ ), maxSequencesCount( maxSequencesCount_ ) - {} - - VULKAN_HPP_CONSTEXPR GeneratedCommandsMemoryRequirementsInfoNV( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GeneratedCommandsMemoryRequirementsInfoNV( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GeneratedCommandsMemoryRequirementsInfoNV & operator=( VkGeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & operator=( GeneratedCommandsMemoryRequirementsInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) ); - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setPipelineBindPoint( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint_ ) VULKAN_HPP_NOEXCEPT - { - pipelineBindPoint = pipelineBindPoint_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setIndirectCommandsLayout( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout_ ) VULKAN_HPP_NOEXCEPT - { - indirectCommandsLayout = indirectCommandsLayout_; - return *this; - } - - GeneratedCommandsMemoryRequirementsInfoNV & setMaxSequencesCount( uint32_t maxSequencesCount_ ) VULKAN_HPP_NOEXCEPT - { - maxSequencesCount = maxSequencesCount_; - return *this; - } - - - operator VkGeneratedCommandsMemoryRequirementsInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGeneratedCommandsMemoryRequirementsInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GeneratedCommandsMemoryRequirementsInfoNV const& ) const = default; -#else - bool operator==( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineBindPoint == rhs.pipelineBindPoint ) - && ( pipeline == rhs.pipeline ) - && ( indirectCommandsLayout == rhs.indirectCommandsLayout ) - && ( maxSequencesCount == rhs.maxSequencesCount ); - } - - bool operator!=( GeneratedCommandsMemoryRequirementsInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGeneratedCommandsMemoryRequirementsInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint = VULKAN_HPP_NAMESPACE::PipelineBindPoint::eGraphics; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout = {}; - uint32_t maxSequencesCount = {}; - - }; - static_assert( sizeof( GeneratedCommandsMemoryRequirementsInfoNV ) == sizeof( VkGeneratedCommandsMemoryRequirementsInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GeneratedCommandsMemoryRequirementsInfoNV; - }; - - struct ImageDrmFormatModifierPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierPropertiesEXT( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierPropertiesEXT( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageDrmFormatModifierPropertiesEXT & operator=( VkImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageDrmFormatModifierPropertiesEXT & operator=( ImageDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageDrmFormatModifierPropertiesEXT ) ); - return *this; - } - - - operator VkImageDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageDrmFormatModifierPropertiesEXT const& ) const = default; -#else - bool operator==( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ); - } - - bool operator!=( ImageDrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierPropertiesEXT; - void* pNext = {}; - uint64_t drmFormatModifier = {}; - - }; - static_assert( sizeof( ImageDrmFormatModifierPropertiesEXT ) == sizeof( VkImageDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageDrmFormatModifierPropertiesEXT; - }; - - struct ImageMemoryRequirementsInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageMemoryRequirementsInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageMemoryRequirementsInfo2( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageMemoryRequirementsInfo2( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageMemoryRequirementsInfo2 & operator=( VkImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageMemoryRequirementsInfo2 & operator=( ImageMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageMemoryRequirementsInfo2 ) ); - return *this; - } - - ImageMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - - operator VkImageMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageMemoryRequirementsInfo2 const& ) const = default; -#else - bool operator==( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ); - } - - bool operator!=( ImageMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - - }; - static_assert( sizeof( ImageMemoryRequirementsInfo2 ) == sizeof( VkImageMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageMemoryRequirementsInfo2; - }; - using ImageMemoryRequirementsInfo2KHR = ImageMemoryRequirementsInfo2; - - struct SparseImageFormatProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}, VULKAN_HPP_NAMESPACE::Extent3D imageGranularity_ = {}, VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : aspectMask( aspectMask_ ), imageGranularity( imageGranularity_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageFormatProperties( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseImageFormatProperties & operator=( VkSparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageFormatProperties & operator=( SparseImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseImageFormatProperties ) ); - return *this; - } - - - operator VkSparseImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageFormatProperties const& ) const = default; -#else - bool operator==( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( aspectMask == rhs.aspectMask ) - && ( imageGranularity == rhs.imageGranularity ) - && ( flags == rhs.flags ); - } - - bool operator!=( SparseImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - VULKAN_HPP_NAMESPACE::Extent3D imageGranularity = {}; - VULKAN_HPP_NAMESPACE::SparseImageFormatFlags flags = {}; - - }; - static_assert( sizeof( SparseImageFormatProperties ) == sizeof( VkSparseImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SparseImageMemoryRequirements - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties_ = {}, uint32_t imageMipTailFirstLod_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride_ = {}) VULKAN_HPP_NOEXCEPT - : formatProperties( formatProperties_ ), imageMipTailFirstLod( imageMipTailFirstLod_ ), imageMipTailSize( imageMipTailSize_ ), imageMipTailOffset( imageMipTailOffset_ ), imageMipTailStride( imageMipTailStride_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryRequirements( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseImageMemoryRequirements & operator=( VkSparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageMemoryRequirements & operator=( SparseImageMemoryRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseImageMemoryRequirements ) ); - return *this; - } - - - operator VkSparseImageMemoryRequirements const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryRequirements &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryRequirements const& ) const = default; -#else - bool operator==( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( formatProperties == rhs.formatProperties ) - && ( imageMipTailFirstLod == rhs.imageMipTailFirstLod ) - && ( imageMipTailSize == rhs.imageMipTailSize ) - && ( imageMipTailOffset == rhs.imageMipTailOffset ) - && ( imageMipTailStride == rhs.imageMipTailStride ); - } - - bool operator!=( SparseImageMemoryRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::SparseImageFormatProperties formatProperties = {}; - uint32_t imageMipTailFirstLod = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailSize = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailOffset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize imageMipTailStride = {}; - - }; - static_assert( sizeof( SparseImageMemoryRequirements ) == sizeof( VkSparseImageMemoryRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageSparseMemoryRequirementsInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSparseMemoryRequirementsInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2(VULKAN_HPP_NAMESPACE::Image image_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSparseMemoryRequirementsInfo2( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSparseMemoryRequirementsInfo2( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageSparseMemoryRequirementsInfo2 & operator=( VkImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSparseMemoryRequirementsInfo2 & operator=( ImageSparseMemoryRequirementsInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageSparseMemoryRequirementsInfo2 ) ); - return *this; - } - - ImageSparseMemoryRequirementsInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageSparseMemoryRequirementsInfo2 & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - - operator VkImageSparseMemoryRequirementsInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSparseMemoryRequirementsInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSparseMemoryRequirementsInfo2 const& ) const = default; -#else - bool operator==( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ); - } - - bool operator!=( ImageSparseMemoryRequirementsInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSparseMemoryRequirementsInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - - }; - static_assert( sizeof( ImageSparseMemoryRequirementsInfo2 ) == sizeof( VkImageSparseMemoryRequirementsInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageSparseMemoryRequirementsInfo2; - }; - using ImageSparseMemoryRequirementsInfo2KHR = ImageSparseMemoryRequirementsInfo2; - - struct SparseImageMemoryRequirements2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageMemoryRequirements2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2(VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements_ = {}) VULKAN_HPP_NOEXCEPT - : memoryRequirements( memoryRequirements_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageMemoryRequirements2( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageMemoryRequirements2( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseImageMemoryRequirements2 & operator=( VkSparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageMemoryRequirements2 & operator=( SparseImageMemoryRequirements2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseImageMemoryRequirements2 ) ); - return *this; - } - - - operator VkSparseImageMemoryRequirements2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageMemoryRequirements2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageMemoryRequirements2 const& ) const = default; -#else - bool operator==( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryRequirements == rhs.memoryRequirements ); - } - - bool operator!=( SparseImageMemoryRequirements2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageMemoryRequirements2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements memoryRequirements = {}; - - }; - static_assert( sizeof( SparseImageMemoryRequirements2 ) == sizeof( VkSparseImageMemoryRequirements2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SparseImageMemoryRequirements2; - }; - using SparseImageMemoryRequirements2KHR = SparseImageMemoryRequirements2; - - struct SubresourceLayout - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubresourceLayout(VULKAN_HPP_NAMESPACE::DeviceSize offset_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize rowPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize depthPitch_ = {}) VULKAN_HPP_NOEXCEPT - : offset( offset_ ), size( size_ ), rowPitch( rowPitch_ ), arrayPitch( arrayPitch_ ), depthPitch( depthPitch_ ) - {} - - VULKAN_HPP_CONSTEXPR SubresourceLayout( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubresourceLayout( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubresourceLayout & operator=( VkSubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubresourceLayout & operator=( SubresourceLayout const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubresourceLayout ) ); - return *this; - } - - - operator VkSubresourceLayout const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubresourceLayout &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubresourceLayout const& ) const = default; -#else - bool operator==( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( offset == rhs.offset ) - && ( size == rhs.size ) - && ( rowPitch == rhs.rowPitch ) - && ( arrayPitch == rhs.arrayPitch ) - && ( depthPitch == rhs.depthPitch ); - } - - bool operator!=( SubresourceLayout const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize offset = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::DeviceSize rowPitch = {}; - VULKAN_HPP_NAMESPACE::DeviceSize arrayPitch = {}; - VULKAN_HPP_NAMESPACE::DeviceSize depthPitch = {}; - - }; - static_assert( sizeof( SubresourceLayout ) == sizeof( VkSubresourceLayout ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ImageViewAddressPropertiesNVX - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAddressPropertiesNVX; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX(VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}) VULKAN_HPP_NOEXCEPT - : deviceAddress( deviceAddress_ ), size( size_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewAddressPropertiesNVX( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewAddressPropertiesNVX( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageViewAddressPropertiesNVX & operator=( VkImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewAddressPropertiesNVX & operator=( ImageViewAddressPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageViewAddressPropertiesNVX ) ); - return *this; - } - - - operator VkImageViewAddressPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewAddressPropertiesNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewAddressPropertiesNVX const& ) const = default; -#else - bool operator==( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceAddress == rhs.deviceAddress ) - && ( size == rhs.size ); - } - - bool operator!=( ImageViewAddressPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAddressPropertiesNVX; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceAddress deviceAddress = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - - }; - static_assert( sizeof( ImageViewAddressPropertiesNVX ) == sizeof( VkImageViewAddressPropertiesNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewAddressPropertiesNVX; - }; - - struct ImageViewHandleInfoNVX - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewHandleInfoNVX; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX(VULKAN_HPP_NAMESPACE::ImageView imageView_ = {}, VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler, VULKAN_HPP_NAMESPACE::Sampler sampler_ = {}) VULKAN_HPP_NOEXCEPT - : imageView( imageView_ ), descriptorType( descriptorType_ ), sampler( sampler_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewHandleInfoNVX( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewHandleInfoNVX( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageViewHandleInfoNVX & operator=( VkImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewHandleInfoNVX & operator=( ImageViewHandleInfoNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageViewHandleInfoNVX ) ); - return *this; - } - - ImageViewHandleInfoNVX & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewHandleInfoNVX & setImageView( VULKAN_HPP_NAMESPACE::ImageView imageView_ ) VULKAN_HPP_NOEXCEPT - { - imageView = imageView_; - return *this; - } - - ImageViewHandleInfoNVX & setDescriptorType( VULKAN_HPP_NAMESPACE::DescriptorType descriptorType_ ) VULKAN_HPP_NOEXCEPT - { - descriptorType = descriptorType_; - return *this; - } - - ImageViewHandleInfoNVX & setSampler( VULKAN_HPP_NAMESPACE::Sampler sampler_ ) VULKAN_HPP_NOEXCEPT - { - sampler = sampler_; - return *this; - } - - - operator VkImageViewHandleInfoNVX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewHandleInfoNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewHandleInfoNVX const& ) const = default; -#else - bool operator==( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageView == rhs.imageView ) - && ( descriptorType == rhs.descriptorType ) - && ( sampler == rhs.sampler ); - } - - bool operator!=( ImageViewHandleInfoNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewHandleInfoNVX; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageView imageView = {}; - VULKAN_HPP_NAMESPACE::DescriptorType descriptorType = VULKAN_HPP_NAMESPACE::DescriptorType::eSampler; - VULKAN_HPP_NAMESPACE::Sampler sampler = {}; - - }; - static_assert( sizeof( ImageViewHandleInfoNVX ) == sizeof( VkImageViewHandleInfoNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewHandleInfoNVX; - }; - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct MemoryGetAndroidHardwareBufferInfoANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}) VULKAN_HPP_NOEXCEPT - : memory( memory_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryGetAndroidHardwareBufferInfoANDROID( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetAndroidHardwareBufferInfoANDROID( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryGetAndroidHardwareBufferInfoANDROID & operator=( VkMemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryGetAndroidHardwareBufferInfoANDROID & operator=( MemoryGetAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) ); - return *this; - } - - MemoryGetAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryGetAndroidHardwareBufferInfoANDROID & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - - operator VkMemoryGetAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryGetAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryGetAndroidHardwareBufferInfoANDROID const& ) const = default; -#else - bool operator==( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ); - } - - bool operator!=( MemoryGetAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetAndroidHardwareBufferInfoANDROID; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - - }; - static_assert( sizeof( MemoryGetAndroidHardwareBufferInfoANDROID ) == sizeof( VkMemoryGetAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryGetAndroidHardwareBufferInfoANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct MemoryGetFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : memory( memory_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryGetFdInfoKHR( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetFdInfoKHR( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryGetFdInfoKHR & operator=( VkMemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryGetFdInfoKHR & operator=( MemoryGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryGetFdInfoKHR ) ); - return *this; - } - - MemoryGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryGetFdInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - MemoryGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkMemoryGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryGetFdInfoKHR const& ) const = default; -#else - bool operator==( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( MemoryGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( MemoryGetFdInfoKHR ) == sizeof( VkMemoryGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryGetFdInfoKHR; - }; - - struct MemoryFdPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryFdPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryFdPropertiesKHR( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryFdPropertiesKHR( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryFdPropertiesKHR & operator=( VkMemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryFdPropertiesKHR & operator=( MemoryFdPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryFdPropertiesKHR ) ); - return *this; - } - - - operator VkMemoryFdPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryFdPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryFdPropertiesKHR const& ) const = default; -#else - bool operator==( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryFdPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryFdPropertiesKHR; - void* pNext = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryFdPropertiesKHR ) == sizeof( VkMemoryFdPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryFdPropertiesKHR; - }; - - struct MemoryHostPointerPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryHostPointerPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryHostPointerPropertiesEXT( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryHostPointerPropertiesEXT( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryHostPointerPropertiesEXT & operator=( VkMemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryHostPointerPropertiesEXT & operator=( MemoryHostPointerPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryHostPointerPropertiesEXT ) ); - return *this; - } - - - operator VkMemoryHostPointerPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryHostPointerPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryHostPointerPropertiesEXT const& ) const = default; -#else - bool operator==( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryHostPointerPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryHostPointerPropertiesEXT; - void* pNext = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryHostPointerPropertiesEXT ) == sizeof( VkMemoryHostPointerPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryHostPointerPropertiesEXT; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct MemoryGetWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryGetWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::DeviceMemory memory_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : memory( memory_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryGetWin32HandleInfoKHR( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryGetWin32HandleInfoKHR( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryGetWin32HandleInfoKHR & operator=( VkMemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryGetWin32HandleInfoKHR & operator=( MemoryGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryGetWin32HandleInfoKHR ) ); - return *this; - } - - MemoryGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryGetWin32HandleInfoKHR & setMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory_ ) VULKAN_HPP_NOEXCEPT - { - memory = memory_; - return *this; - } - - MemoryGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkMemoryGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryGetWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memory == rhs.memory ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( MemoryGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemory memory = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( MemoryGetWin32HandleInfoKHR ) == sizeof( VkMemoryGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryGetWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct MemoryWin32HandlePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryWin32HandlePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR(uint32_t memoryTypeBits_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeBits( memoryTypeBits_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryWin32HandlePropertiesKHR( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryWin32HandlePropertiesKHR( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryWin32HandlePropertiesKHR & operator=( VkMemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryWin32HandlePropertiesKHR & operator=( MemoryWin32HandlePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryWin32HandlePropertiesKHR ) ); - return *this; - } - - - operator VkMemoryWin32HandlePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryWin32HandlePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryWin32HandlePropertiesKHR const& ) const = default; -#else - bool operator==( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryTypeBits == rhs.memoryTypeBits ); - } - - bool operator!=( MemoryWin32HandlePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryWin32HandlePropertiesKHR; - void* pNext = {}; - uint32_t memoryTypeBits = {}; - - }; - static_assert( sizeof( MemoryWin32HandlePropertiesKHR ) == sizeof( VkMemoryWin32HandlePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryWin32HandlePropertiesKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct PastPresentationTimingGOOGLE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}, uint64_t actualPresentTime_ = {}, uint64_t earliestPresentTime_ = {}, uint64_t presentMargin_ = {}) VULKAN_HPP_NOEXCEPT - : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ), actualPresentTime( actualPresentTime_ ), earliestPresentTime( earliestPresentTime_ ), presentMargin( presentMargin_ ) - {} - - VULKAN_HPP_CONSTEXPR PastPresentationTimingGOOGLE( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PastPresentationTimingGOOGLE( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PastPresentationTimingGOOGLE & operator=( VkPastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PastPresentationTimingGOOGLE & operator=( PastPresentationTimingGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PastPresentationTimingGOOGLE ) ); - return *this; - } - - - operator VkPastPresentationTimingGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPastPresentationTimingGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PastPresentationTimingGOOGLE const& ) const = default; -#else - bool operator==( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( presentID == rhs.presentID ) - && ( desiredPresentTime == rhs.desiredPresentTime ) - && ( actualPresentTime == rhs.actualPresentTime ) - && ( earliestPresentTime == rhs.earliestPresentTime ) - && ( presentMargin == rhs.presentMargin ); - } - - bool operator!=( PastPresentationTimingGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t presentID = {}; - uint64_t desiredPresentTime = {}; - uint64_t actualPresentTime = {}; - uint64_t earliestPresentTime = {}; - uint64_t presentMargin = {}; - - }; - static_assert( sizeof( PastPresentationTimingGOOGLE ) == sizeof( VkPastPresentationTimingGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - union PerformanceValueDataINTEL - { - PerformanceValueDataINTEL( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) ); - } - - PerformanceValueDataINTEL( uint32_t value32_ = {} ) - : value32( value32_ ) - {} - - PerformanceValueDataINTEL( uint64_t value64_ ) - : value64( value64_ ) - {} - - PerformanceValueDataINTEL( float valueFloat_ ) - : valueFloat( valueFloat_ ) - {} - - PerformanceValueDataINTEL( const char* valueString_ ) - : valueString( valueString_ ) - {} - - PerformanceValueDataINTEL & setValue32( uint32_t value32_ ) VULKAN_HPP_NOEXCEPT - { - value32 = value32_; - return *this; - } - - PerformanceValueDataINTEL & setValue64( uint64_t value64_ ) VULKAN_HPP_NOEXCEPT - { - value64 = value64_; - return *this; - } - - PerformanceValueDataINTEL & setValueFloat( float valueFloat_ ) VULKAN_HPP_NOEXCEPT - { - valueFloat = valueFloat_; - return *this; - } - - PerformanceValueDataINTEL & setValueBool( VULKAN_HPP_NAMESPACE::Bool32 valueBool_ ) VULKAN_HPP_NOEXCEPT - { - valueBool = valueBool_; - return *this; - } - - PerformanceValueDataINTEL & setValueString( const char* valueString_ ) VULKAN_HPP_NOEXCEPT - { - valueString = valueString_; - return *this; - } - - VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL & operator=( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL ) ); - return *this; - } - - operator VkPerformanceValueDataINTEL const&() const - { - return *reinterpret_cast(this); - } - - operator VkPerformanceValueDataINTEL &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - uint32_t value32; - uint64_t value64; - float valueFloat; - VULKAN_HPP_NAMESPACE::Bool32 valueBool; - const char* valueString; -#else - uint32_t value32; - uint64_t value64; - float valueFloat; - VkBool32 valueBool; - const char* valueString; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct PerformanceValueINTEL - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - PerformanceValueINTEL(VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32, VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data_ = {}) VULKAN_HPP_NOEXCEPT - : type( type_ ), data( data_ ) - {} - - PerformanceValueINTEL( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceValueINTEL( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceValueINTEL & operator=( VkPerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceValueINTEL & operator=( PerformanceValueINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceValueINTEL ) ); - return *this; - } - - PerformanceValueINTEL & setType( VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PerformanceValueINTEL & setData( VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL const & data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - - operator VkPerformanceValueINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceValueINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL type = VULKAN_HPP_NAMESPACE::PerformanceValueTypeINTEL::eUint32; - VULKAN_HPP_NAMESPACE::PerformanceValueDataINTEL data = {}; - - }; - static_assert( sizeof( PerformanceValueINTEL ) == sizeof( VkPerformanceValueINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineExecutableInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}, uint32_t executableIndex_ = {}) VULKAN_HPP_NOEXCEPT - : pipeline( pipeline_ ), executableIndex( executableIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineExecutableInfoKHR( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableInfoKHR( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineExecutableInfoKHR & operator=( VkPipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineExecutableInfoKHR & operator=( PipelineExecutableInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineExecutableInfoKHR ) ); - return *this; - } - - PipelineExecutableInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineExecutableInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - PipelineExecutableInfoKHR & setExecutableIndex( uint32_t executableIndex_ ) VULKAN_HPP_NOEXCEPT - { - executableIndex = executableIndex_; - return *this; - } - - - operator VkPipelineExecutableInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutableInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineExecutableInfoKHR const& ) const = default; -#else - bool operator==( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipeline == rhs.pipeline ) - && ( executableIndex == rhs.executableIndex ); - } - - bool operator!=( PipelineExecutableInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - uint32_t executableIndex = {}; - - }; - static_assert( sizeof( PipelineExecutableInfoKHR ) == sizeof( VkPipelineExecutableInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutableInfoKHR; - }; - - struct PipelineExecutableInternalRepresentationKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableInternalRepresentationKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR(std::array const& name_ = {}, std::array const& description_ = {}, VULKAN_HPP_NAMESPACE::Bool32 isText_ = {}, size_t dataSize_ = {}, void* pData_ = {}) VULKAN_HPP_NOEXCEPT - : name( name_ ), description( description_ ), isText( isText_ ), dataSize( dataSize_ ), pData( pData_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineExecutableInternalRepresentationKHR( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableInternalRepresentationKHR( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - PipelineExecutableInternalRepresentationKHR( std::array const& name_, std::array const& description_, VULKAN_HPP_NAMESPACE::Bool32 isText_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) - : name( name_ ), description( description_ ), isText( isText_ ), dataSize( data_.size() * sizeof(T) ), pData( data_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineExecutableInternalRepresentationKHR & operator=( VkPipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineExecutableInternalRepresentationKHR & operator=( PipelineExecutableInternalRepresentationKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineExecutableInternalRepresentationKHR ) ); - return *this; - } - - - operator VkPipelineExecutableInternalRepresentationKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutableInternalRepresentationKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineExecutableInternalRepresentationKHR const& ) const = default; -#else - bool operator==( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( name == rhs.name ) - && ( description == rhs.description ) - && ( isText == rhs.isText ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); - } - - bool operator!=( PipelineExecutableInternalRepresentationKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableInternalRepresentationKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - VULKAN_HPP_NAMESPACE::Bool32 isText = {}; - size_t dataSize = {}; - void* pData = {}; - - }; - static_assert( sizeof( PipelineExecutableInternalRepresentationKHR ) == sizeof( VkPipelineExecutableInternalRepresentationKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutableInternalRepresentationKHR; - }; - - struct PipelineInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineInfoKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline_ = {}) VULKAN_HPP_NOEXCEPT - : pipeline( pipeline_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineInfoKHR( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineInfoKHR( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineInfoKHR & operator=( VkPipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineInfoKHR & operator=( PipelineInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineInfoKHR ) ); - return *this; - } - - PipelineInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineInfoKHR & setPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline_ ) VULKAN_HPP_NOEXCEPT - { - pipeline = pipeline_; - return *this; - } - - - operator VkPipelineInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineInfoKHR const& ) const = default; -#else - bool operator==( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipeline == rhs.pipeline ); - } - - bool operator!=( PipelineInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Pipeline pipeline = {}; - - }; - static_assert( sizeof( PipelineInfoKHR ) == sizeof( VkPipelineInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineInfoKHR; - }; - - struct PipelineExecutablePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutablePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR(VULKAN_HPP_NAMESPACE::ShaderStageFlags stages_ = {}, std::array const& name_ = {}, std::array const& description_ = {}, uint32_t subgroupSize_ = {}) VULKAN_HPP_NOEXCEPT - : stages( stages_ ), name( name_ ), description( description_ ), subgroupSize( subgroupSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineExecutablePropertiesKHR( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutablePropertiesKHR( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineExecutablePropertiesKHR & operator=( VkPipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineExecutablePropertiesKHR & operator=( PipelineExecutablePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineExecutablePropertiesKHR ) ); - return *this; - } - - - operator VkPipelineExecutablePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutablePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineExecutablePropertiesKHR const& ) const = default; -#else - bool operator==( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stages == rhs.stages ) - && ( name == rhs.name ) - && ( description == rhs.description ) - && ( subgroupSize == rhs.subgroupSize ); - } - - bool operator!=( PipelineExecutablePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutablePropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags stages = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - uint32_t subgroupSize = {}; - - }; - static_assert( sizeof( PipelineExecutablePropertiesKHR ) == sizeof( VkPipelineExecutablePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutablePropertiesKHR; - }; - - union PipelineExecutableStatisticValueKHR - { - PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) ); - } - - PipelineExecutableStatisticValueKHR( VULKAN_HPP_NAMESPACE::Bool32 b32_ = {} ) - : b32( b32_ ) - {} - - PipelineExecutableStatisticValueKHR( int64_t i64_ ) - : i64( i64_ ) - {} - - PipelineExecutableStatisticValueKHR( uint64_t u64_ ) - : u64( u64_ ) - {} - - PipelineExecutableStatisticValueKHR( double f64_ ) - : f64( f64_ ) - {} - - PipelineExecutableStatisticValueKHR & setB32( VULKAN_HPP_NAMESPACE::Bool32 b32_ ) VULKAN_HPP_NOEXCEPT - { - b32 = b32_; - return *this; - } - - PipelineExecutableStatisticValueKHR & setI64( int64_t i64_ ) VULKAN_HPP_NOEXCEPT - { - i64 = i64_; - return *this; - } - - PipelineExecutableStatisticValueKHR & setU64( uint64_t u64_ ) VULKAN_HPP_NOEXCEPT - { - u64 = u64_; - return *this; - } - - PipelineExecutableStatisticValueKHR & setF64( double f64_ ) VULKAN_HPP_NOEXCEPT - { - f64 = f64_; - return *this; - } - - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR & operator=( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR ) ); - return *this; - } - - operator VkPipelineExecutableStatisticValueKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkPipelineExecutableStatisticValueKHR &() - { - return *reinterpret_cast(this); - } - -#ifdef VULKAN_HPP_HAS_UNRESTRICTED_UNIONS - VULKAN_HPP_NAMESPACE::Bool32 b32; - int64_t i64; - uint64_t u64; - double f64; -#else - VkBool32 b32; - int64_t i64; - uint64_t u64; - double f64; -#endif /*VULKAN_HPP_HAS_UNRESTRICTED_UNIONS*/ - }; - - struct PipelineExecutableStatisticKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineExecutableStatisticKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - PipelineExecutableStatisticKHR(std::array const& name_ = {}, std::array const& description_ = {}, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format_ = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value_ = {}) VULKAN_HPP_NOEXCEPT - : name( name_ ), description( description_ ), format( format_ ), value( value_ ) - {} - - PipelineExecutableStatisticKHR( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineExecutableStatisticKHR( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineExecutableStatisticKHR & operator=( VkPipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineExecutableStatisticKHR & operator=( PipelineExecutableStatisticKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineExecutableStatisticKHR ) ); - return *this; - } - - - operator VkPipelineExecutableStatisticKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineExecutableStatisticKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineExecutableStatisticKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR format = VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticFormatKHR::eBool32; - VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticValueKHR value = {}; - - }; - static_assert( sizeof( PipelineExecutableStatisticKHR ) == sizeof( VkPipelineExecutableStatisticKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineExecutableStatisticKHR; - }; - - struct RefreshCycleDurationGOOGLE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE(uint64_t refreshDuration_ = {}) VULKAN_HPP_NOEXCEPT - : refreshDuration( refreshDuration_ ) - {} - - VULKAN_HPP_CONSTEXPR RefreshCycleDurationGOOGLE( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RefreshCycleDurationGOOGLE( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RefreshCycleDurationGOOGLE & operator=( VkRefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RefreshCycleDurationGOOGLE & operator=( RefreshCycleDurationGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RefreshCycleDurationGOOGLE ) ); - return *this; - } - - - operator VkRefreshCycleDurationGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRefreshCycleDurationGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RefreshCycleDurationGOOGLE const& ) const = default; -#else - bool operator==( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( refreshDuration == rhs.refreshDuration ); - } - - bool operator!=( RefreshCycleDurationGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint64_t refreshDuration = {}; - - }; - static_assert( sizeof( RefreshCycleDurationGOOGLE ) == sizeof( VkRefreshCycleDurationGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SemaphoreGetFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreGetFdInfoKHR( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreGetFdInfoKHR( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SemaphoreGetFdInfoKHR & operator=( VkSemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreGetFdInfoKHR & operator=( SemaphoreGetFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SemaphoreGetFdInfoKHR ) ); - return *this; - } - - SemaphoreGetFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreGetFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - SemaphoreGetFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkSemaphoreGetFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreGetFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreGetFdInfoKHR const& ) const = default; -#else - bool operator==( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( SemaphoreGetFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( SemaphoreGetFdInfoKHR ) == sizeof( VkSemaphoreGetFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreGetFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SemaphoreGetWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreGetWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreGetWin32HandleInfoKHR( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreGetWin32HandleInfoKHR( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SemaphoreGetWin32HandleInfoKHR & operator=( VkSemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreGetWin32HandleInfoKHR & operator=( SemaphoreGetWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SemaphoreGetWin32HandleInfoKHR ) ); - return *this; - } - - SemaphoreGetWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreGetWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - SemaphoreGetWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkSemaphoreGetWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreGetWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreGetWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( SemaphoreGetWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreGetWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( SemaphoreGetWin32HandleInfoKHR ) == sizeof( VkSemaphoreGetWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreGetWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ImportFenceFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportFenceFdInfoKHR( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportFenceFdInfoKHR( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportFenceFdInfoKHR & operator=( VkImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportFenceFdInfoKHR & operator=( ImportFenceFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportFenceFdInfoKHR ) ); - return *this; - } - - ImportFenceFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportFenceFdInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - ImportFenceFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportFenceFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportFenceFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT - { - fd = fd_; - return *this; - } - - - operator VkImportFenceFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportFenceFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportFenceFdInfoKHR const& ) const = default; -#else - bool operator==( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); - } - - bool operator!=( ImportFenceFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - - }; - static_assert( sizeof( ImportFenceFdInfoKHR ) == sizeof( VkImportFenceFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportFenceFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportFenceWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportFenceWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Fence fence_ = {}, VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : fence( fence_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportFenceWin32HandleInfoKHR( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportFenceWin32HandleInfoKHR( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportFenceWin32HandleInfoKHR & operator=( VkImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportFenceWin32HandleInfoKHR & operator=( ImportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportFenceWin32HandleInfoKHR ) ); - return *this; - } - - ImportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setFence( VULKAN_HPP_NAMESPACE::Fence fence_ ) VULKAN_HPP_NOEXCEPT - { - fence = fence_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::FenceImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - ImportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkImportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportFenceWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fence == rhs.fence ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); - } - - bool operator!=( ImportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportFenceWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Fence fence = {}; - VULKAN_HPP_NAMESPACE::FenceImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ImportFenceWin32HandleInfoKHR ) == sizeof( VkImportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportFenceWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ImportSemaphoreFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), fd( fd_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportSemaphoreFdInfoKHR( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportSemaphoreFdInfoKHR( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportSemaphoreFdInfoKHR & operator=( VkImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportSemaphoreFdInfoKHR & operator=( ImportSemaphoreFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportSemaphoreFdInfoKHR ) ); - return *this; - } - - ImportSemaphoreFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportSemaphoreFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT - { - fd = fd_; - return *this; - } - - - operator VkImportSemaphoreFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportSemaphoreFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportSemaphoreFdInfoKHR const& ) const = default; -#else - bool operator==( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); - } - - bool operator!=( ImportSemaphoreFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - - }; - static_assert( sizeof( ImportSemaphoreFdInfoKHR ) == sizeof( VkImportSemaphoreFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportSemaphoreFdInfoKHR; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportSemaphoreWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportSemaphoreWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), flags( flags_ ), handleType( handleType_ ), handle( handle_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportSemaphoreWin32HandleInfoKHR( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportSemaphoreWin32HandleInfoKHR( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportSemaphoreWin32HandleInfoKHR & operator=( VkImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & operator=( ImportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportSemaphoreWin32HandleInfoKHR ) ); - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - ImportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkImportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportSemaphoreWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( flags == rhs.flags ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); - } - - bool operator!=( ImportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportSemaphoreWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - VULKAN_HPP_NAMESPACE::SemaphoreImportFlags flags = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ImportSemaphoreWin32HandleInfoKHR ) == sizeof( VkImportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportSemaphoreWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct InitializePerformanceApiInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInitializePerformanceApiInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL(void* pUserData_ = {}) VULKAN_HPP_NOEXCEPT - : pUserData( pUserData_ ) - {} - - VULKAN_HPP_CONSTEXPR InitializePerformanceApiInfoINTEL( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InitializePerformanceApiInfoINTEL( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - InitializePerformanceApiInfoINTEL & operator=( VkInitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - InitializePerformanceApiInfoINTEL & operator=( InitializePerformanceApiInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( InitializePerformanceApiInfoINTEL ) ); - return *this; - } - - InitializePerformanceApiInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - InitializePerformanceApiInfoINTEL & setPUserData( void* pUserData_ ) VULKAN_HPP_NOEXCEPT - { - pUserData = pUserData_; - return *this; - } - - - operator VkInitializePerformanceApiInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkInitializePerformanceApiInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( InitializePerformanceApiInfoINTEL const& ) const = default; -#else - bool operator==( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pUserData == rhs.pUserData ); - } - - bool operator!=( InitializePerformanceApiInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInitializePerformanceApiInfoINTEL; - const void* pNext = {}; - void* pUserData = {}; - - }; - static_assert( sizeof( InitializePerformanceApiInfoINTEL ) == sizeof( VkInitializePerformanceApiInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = InitializePerformanceApiInfoINTEL; - }; - - struct DisplayEventInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayEventInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT(VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut) VULKAN_HPP_NOEXCEPT - : displayEvent( displayEvent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayEventInfoEXT( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayEventInfoEXT( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayEventInfoEXT & operator=( VkDisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayEventInfoEXT & operator=( DisplayEventInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayEventInfoEXT ) ); - return *this; - } - - DisplayEventInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayEventInfoEXT & setDisplayEvent( VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent_ ) VULKAN_HPP_NOEXCEPT - { - displayEvent = displayEvent_; - return *this; - } - - - operator VkDisplayEventInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayEventInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayEventInfoEXT const& ) const = default; -#else - bool operator==( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayEvent == rhs.displayEvent ); - } - - bool operator!=( DisplayEventInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayEventInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT displayEvent = VULKAN_HPP_NAMESPACE::DisplayEventTypeEXT::eFirstPixelOut; - - }; - static_assert( sizeof( DisplayEventInfoEXT ) == sizeof( VkDisplayEventInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayEventInfoEXT; - }; - - struct XYColorEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR XYColorEXT(float x_ = {}, float y_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ) - {} - - VULKAN_HPP_CONSTEXPR XYColorEXT( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XYColorEXT( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - XYColorEXT & operator=( VkXYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - XYColorEXT & operator=( XYColorEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( XYColorEXT ) ); - return *this; - } - - XYColorEXT & setX( float x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - XYColorEXT & setY( float y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - - operator VkXYColorEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkXYColorEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( XYColorEXT const& ) const = default; -#else - bool operator==( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ); - } - - bool operator!=( XYColorEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - float x = {}; - float y = {}; - - }; - static_assert( sizeof( XYColorEXT ) == sizeof( VkXYColorEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct HdrMetadataEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHdrMetadataEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR HdrMetadataEXT(VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue_ = {}, VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint_ = {}, float maxLuminance_ = {}, float minLuminance_ = {}, float maxContentLightLevel_ = {}, float maxFrameAverageLightLevel_ = {}) VULKAN_HPP_NOEXCEPT - : displayPrimaryRed( displayPrimaryRed_ ), displayPrimaryGreen( displayPrimaryGreen_ ), displayPrimaryBlue( displayPrimaryBlue_ ), whitePoint( whitePoint_ ), maxLuminance( maxLuminance_ ), minLuminance( minLuminance_ ), maxContentLightLevel( maxContentLightLevel_ ), maxFrameAverageLightLevel( maxFrameAverageLightLevel_ ) - {} - - VULKAN_HPP_CONSTEXPR HdrMetadataEXT( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - HdrMetadataEXT( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - HdrMetadataEXT & operator=( VkHdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - HdrMetadataEXT & operator=( HdrMetadataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( HdrMetadataEXT ) ); - return *this; - } - - HdrMetadataEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - HdrMetadataEXT & setDisplayPrimaryRed( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryRed_ ) VULKAN_HPP_NOEXCEPT - { - displayPrimaryRed = displayPrimaryRed_; - return *this; - } - - HdrMetadataEXT & setDisplayPrimaryGreen( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryGreen_ ) VULKAN_HPP_NOEXCEPT - { - displayPrimaryGreen = displayPrimaryGreen_; - return *this; - } - - HdrMetadataEXT & setDisplayPrimaryBlue( VULKAN_HPP_NAMESPACE::XYColorEXT const & displayPrimaryBlue_ ) VULKAN_HPP_NOEXCEPT - { - displayPrimaryBlue = displayPrimaryBlue_; - return *this; - } - - HdrMetadataEXT & setWhitePoint( VULKAN_HPP_NAMESPACE::XYColorEXT const & whitePoint_ ) VULKAN_HPP_NOEXCEPT - { - whitePoint = whitePoint_; - return *this; - } - - HdrMetadataEXT & setMaxLuminance( float maxLuminance_ ) VULKAN_HPP_NOEXCEPT - { - maxLuminance = maxLuminance_; - return *this; - } - - HdrMetadataEXT & setMinLuminance( float minLuminance_ ) VULKAN_HPP_NOEXCEPT - { - minLuminance = minLuminance_; - return *this; - } - - HdrMetadataEXT & setMaxContentLightLevel( float maxContentLightLevel_ ) VULKAN_HPP_NOEXCEPT - { - maxContentLightLevel = maxContentLightLevel_; - return *this; - } - - HdrMetadataEXT & setMaxFrameAverageLightLevel( float maxFrameAverageLightLevel_ ) VULKAN_HPP_NOEXCEPT - { - maxFrameAverageLightLevel = maxFrameAverageLightLevel_; - return *this; - } - - - operator VkHdrMetadataEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkHdrMetadataEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( HdrMetadataEXT const& ) const = default; -#else - bool operator==( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayPrimaryRed == rhs.displayPrimaryRed ) - && ( displayPrimaryGreen == rhs.displayPrimaryGreen ) - && ( displayPrimaryBlue == rhs.displayPrimaryBlue ) - && ( whitePoint == rhs.whitePoint ) - && ( maxLuminance == rhs.maxLuminance ) - && ( minLuminance == rhs.minLuminance ) - && ( maxContentLightLevel == rhs.maxContentLightLevel ) - && ( maxFrameAverageLightLevel == rhs.maxFrameAverageLightLevel ); - } - - bool operator!=( HdrMetadataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHdrMetadataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryRed = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryGreen = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT displayPrimaryBlue = {}; - VULKAN_HPP_NAMESPACE::XYColorEXT whitePoint = {}; - float maxLuminance = {}; - float minLuminance = {}; - float maxContentLightLevel = {}; - float maxFrameAverageLightLevel = {}; - - }; - static_assert( sizeof( HdrMetadataEXT ) == sizeof( VkHdrMetadataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = HdrMetadataEXT; - }; - - struct SemaphoreSignalInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreSignalInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo(VULKAN_HPP_NAMESPACE::Semaphore semaphore_ = {}, uint64_t value_ = {}) VULKAN_HPP_NOEXCEPT - : semaphore( semaphore_ ), value( value_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreSignalInfo( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreSignalInfo( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SemaphoreSignalInfo & operator=( VkSemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreSignalInfo & operator=( SemaphoreSignalInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SemaphoreSignalInfo ) ); - return *this; - } - - SemaphoreSignalInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreSignalInfo & setSemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore_ ) VULKAN_HPP_NOEXCEPT - { - semaphore = semaphore_; - return *this; - } - - SemaphoreSignalInfo & setValue( uint64_t value_ ) VULKAN_HPP_NOEXCEPT - { - value = value_; - return *this; - } - - - operator VkSemaphoreSignalInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreSignalInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreSignalInfo const& ) const = default; -#else - bool operator==( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphore == rhs.semaphore ) - && ( value == rhs.value ); - } - - bool operator!=( SemaphoreSignalInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreSignalInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Semaphore semaphore = {}; - uint64_t value = {}; - - }; - static_assert( sizeof( SemaphoreSignalInfo ) == sizeof( VkSemaphoreSignalInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreSignalInfo; - }; - using SemaphoreSignalInfoKHR = SemaphoreSignalInfo; - - struct SemaphoreWaitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreWaitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo(VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ = {}, uint32_t semaphoreCount_ = {}, const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ = {}, const uint64_t* pValues_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), semaphoreCount( semaphoreCount_ ), pSemaphores( pSemaphores_ ), pValues( pValues_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreWaitInfo( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreWaitInfo( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SemaphoreWaitInfo( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & semaphores_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & values_ = {} ) - : flags( flags_ ), semaphoreCount( static_cast( semaphores_.size() ) ), pSemaphores( semaphores_.data() ), pValues( values_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( semaphores_.size() == values_.size() ); -#else - if ( semaphores_.size() != values_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::SemaphoreWaitInfo::SemaphoreWaitInfo: semaphores_.size() != values_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SemaphoreWaitInfo & operator=( VkSemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreWaitInfo & operator=( SemaphoreWaitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SemaphoreWaitInfo ) ); - return *this; - } - - SemaphoreWaitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreWaitInfo & setFlags( VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - SemaphoreWaitInfo & setSemaphoreCount( uint32_t semaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreCount = semaphoreCount_; - return *this; - } - - SemaphoreWaitInfo & setPSemaphores( const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores_ ) VULKAN_HPP_NOEXCEPT - { - pSemaphores = pSemaphores_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SemaphoreWaitInfo & setSemaphores( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & semaphores_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreCount = static_cast( semaphores_.size() ); - pSemaphores = semaphores_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - SemaphoreWaitInfo & setPValues( const uint64_t* pValues_ ) VULKAN_HPP_NOEXCEPT - { - pValues = pValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - SemaphoreWaitInfo & setValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & values_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreCount = static_cast( values_.size() ); - pValues = values_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkSemaphoreWaitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreWaitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreWaitInfo const& ) const = default; -#else - bool operator==( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( semaphoreCount == rhs.semaphoreCount ) - && ( pSemaphores == rhs.pSemaphores ) - && ( pValues == rhs.pValues ); - } - - bool operator!=( SemaphoreWaitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreWaitInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreWaitFlags flags = {}; - uint32_t semaphoreCount = {}; - const VULKAN_HPP_NAMESPACE::Semaphore* pSemaphores = {}; - const uint64_t* pValues = {}; - - }; - static_assert( sizeof( SemaphoreWaitInfo ) == sizeof( VkSemaphoreWaitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreWaitInfo; - }; - using SemaphoreWaitInfoKHR = SemaphoreWaitInfo; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - class Device; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueAccelerationStructureKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueAccelerationStructureNV = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueBuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueBufferView = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = PoolFree; }; - using UniqueCommandBuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueCommandPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDeferredOperationKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = PoolFree; }; - using UniqueDescriptorSet = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorSetLayout = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDescriptorUpdateTemplate = UniqueHandle; - using UniqueDescriptorUpdateTemplateKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectFree; }; - using UniqueDeviceMemory = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueEvent = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueFence = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueFramebuffer = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueImage = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueImageView = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueIndirectCommandsLayoutNV = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipeline = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipelineCache = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePipelineLayout = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniquePrivateDataSlotEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueQueryPool = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueRenderPass = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSampler = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSamplerYcbcrConversion = UniqueHandle; - using UniqueSamplerYcbcrConversionKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSemaphore = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueShaderModule = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSwapchainKHR = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueValidationCacheEXT = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class Device - { - public: - using CType = VkDevice; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDevice; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDevice; - - public: - VULKAN_HPP_CONSTEXPR Device() VULKAN_HPP_NOEXCEPT - : m_device(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Device( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_device(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Device( VkDevice device ) VULKAN_HPP_NOEXCEPT - : m_device( device ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Device & operator=(VkDevice device) VULKAN_HPP_NOEXCEPT - { - m_device = device; - return *this; - } -#endif - - Device & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_device = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Device const& ) const = default; -#else - bool operator==( Device const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_device == rhs.m_device; - } - - bool operator!=(Device const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_device != rhs.m_device; - } - - bool operator<(Device const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_device < rhs.m_device; - } -#endif - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - - template - VULKAN_HPP_NODISCARD Result acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD ResultValue acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD ResultValue acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CommandBufferAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = CommandBufferAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, CommandBufferAllocator>>::type allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DescriptorSetAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = DescriptorSetAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, DescriptorSetAllocator>>::type allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindBufferMemory2( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindBufferMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindImageMemory2( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type bindImageMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createBuffer( const BufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createBufferUnique( const BufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createBufferView( const BufferViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createCommandPool( const CommandPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDeferredOperationKHR( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createDeferredOperationKHRUnique( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createEvent( const EventCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createEventUnique( const EventCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createFence( const FenceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createFenceUnique( const FenceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createFramebuffer( const FramebufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createImage( const ImageCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createImageUnique( const ImageCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createImageView( const ImageViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV* pIndirectCommandsLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createQueryPool( const QueryPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = PipelineAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD ResultValue, PipelineAllocator>> createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue> createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createRenderPass( const RenderPassCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSampler( const SamplerCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSamplerUnique( const SamplerCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSemaphore( const SemaphoreCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SwapchainKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template >> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template >, typename B = SwapchainKHRAllocator, typename std::enable_if>::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, SwapchainKHRAllocator>>::type createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyEvent( VULKAN_HPP_NAMESPACE::Event event VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Event event, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyFence( VULKAN_HPP_NAMESPACE::Fence fence VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyImage( VULKAN_HPP_NAMESPACE::Image image VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Image image, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type waitIdle( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type flushMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - Result freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - Result free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR* pSizeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy const & maxPrimitiveCounts, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - DeviceAddress getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD Result getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - DeviceAddress getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - DeviceAddress getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - DeviceAddress getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - DeviceAddress getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint64_t getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - uint64_t getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getCalibratedTimestampsEXT( ArrayProxy const ×tampInfos, ArrayProxy const ×tamps, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint64_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType, uint64_t>>::type getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint32_t getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR* pVersionInfo, VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR* pCompatibility, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getGroupPresentCapabilitiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::DeviceSize getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint64_t getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - uint64_t getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint64_t getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Queue getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - void getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MemoryRequirements2 getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirementsAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirements2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageMemoryRequirements2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::SubresourceLayout getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - uint32_t getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - uint32_t getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PastPresentationTimingGOOGLEAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableInternalRepresentationKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutablePropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PipelineExecutableStatisticKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD uint64_t getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy const &data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD ResultValue> getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD ResultValue getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - DeviceSize getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - VULKAN_HPP_NODISCARD Result getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::Extent2D getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ImageAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD Result getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Uint8_tAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy const & srcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy const & srcCaches, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void releaseProfilingLockKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type resetFences( ArrayProxy const & fences, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - VULKAN_HPP_NODISCARD Result setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - void setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void setHdrMetadataEXT( ArrayProxy const & swapchains, ArrayProxy const & metadata, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD Result signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void uninitializePerformanceApiINTEL( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - template - void updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - - - template - void updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void updateDescriptorSets( ArrayProxy const & descriptorWrites, ArrayProxy const & descriptorCopies, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitForFences( ArrayProxy const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, void* pData, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type writeAccelerationStructuresPropertiesKHR( ArrayProxy const &accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy const &data, size_t stride, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDevice() const VULKAN_HPP_NOEXCEPT - { - return m_device; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_device != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_device == VK_NULL_HANDLE; - } - - private: - VkDevice m_device; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Device ) == sizeof( VkDevice ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Device; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Device; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Device; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DisplayModeParametersKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR(VULKAN_HPP_NAMESPACE::Extent2D visibleRegion_ = {}, uint32_t refreshRate_ = {}) VULKAN_HPP_NOEXCEPT - : visibleRegion( visibleRegion_ ), refreshRate( refreshRate_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeParametersKHR( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeParametersKHR( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayModeParametersKHR & operator=( VkDisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayModeParametersKHR & operator=( DisplayModeParametersKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayModeParametersKHR ) ); - return *this; - } - - DisplayModeParametersKHR & setVisibleRegion( VULKAN_HPP_NAMESPACE::Extent2D const & visibleRegion_ ) VULKAN_HPP_NOEXCEPT - { - visibleRegion = visibleRegion_; - return *this; - } - - DisplayModeParametersKHR & setRefreshRate( uint32_t refreshRate_ ) VULKAN_HPP_NOEXCEPT - { - refreshRate = refreshRate_; - return *this; - } - - - operator VkDisplayModeParametersKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModeParametersKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeParametersKHR const& ) const = default; -#else - bool operator==( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( visibleRegion == rhs.visibleRegion ) - && ( refreshRate == rhs.refreshRate ); - } - - bool operator!=( DisplayModeParametersKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Extent2D visibleRegion = {}; - uint32_t refreshRate = {}; - - }; - static_assert( sizeof( DisplayModeParametersKHR ) == sizeof( VkDisplayModeParametersKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayModeCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), parameters( parameters_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeCreateInfoKHR( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeCreateInfoKHR( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayModeCreateInfoKHR & operator=( VkDisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayModeCreateInfoKHR & operator=( DisplayModeCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayModeCreateInfoKHR ) ); - return *this; - } - - DisplayModeCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayModeCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DisplayModeCreateInfoKHR & setParameters( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & parameters_ ) VULKAN_HPP_NOEXCEPT - { - parameters = parameters_; - return *this; - } - - - operator VkDisplayModeCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModeCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeCreateInfoKHR const& ) const = default; -#else - bool operator==( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( parameters == rhs.parameters ); - } - - bool operator!=( DisplayModeCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModeCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; - - }; - static_assert( sizeof( DisplayModeCreateInfoKHR ) == sizeof( VkDisplayModeCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayModeCreateInfoKHR; - }; - - class DisplayModeKHR - { - public: - using CType = VkDisplayModeKHR; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDisplayModeKHR; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDisplayModeKHR; - - public: - VULKAN_HPP_CONSTEXPR DisplayModeKHR() VULKAN_HPP_NOEXCEPT - : m_displayModeKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeKHR( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_displayModeKHR(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DisplayModeKHR( VkDisplayModeKHR displayModeKHR ) VULKAN_HPP_NOEXCEPT - : m_displayModeKHR( displayModeKHR ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DisplayModeKHR & operator=(VkDisplayModeKHR displayModeKHR) VULKAN_HPP_NOEXCEPT - { - m_displayModeKHR = displayModeKHR; - return *this; - } -#endif - - DisplayModeKHR & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_displayModeKHR = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeKHR const& ) const = default; -#else - bool operator==( DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR == rhs.m_displayModeKHR; - } - - bool operator!=(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR != rhs.m_displayModeKHR; - } - - bool operator<(DisplayModeKHR const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR < rhs.m_displayModeKHR; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDisplayModeKHR() const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_displayModeKHR == VK_NULL_HANDLE; - } - - private: - VkDisplayModeKHR m_displayModeKHR; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DisplayModeKHR ) == sizeof( VkDisplayModeKHR ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DisplayModeKHR; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct ExtensionProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ExtensionProperties(std::array const& extensionName_ = {}, uint32_t specVersion_ = {}) VULKAN_HPP_NOEXCEPT - : extensionName( extensionName_ ), specVersion( specVersion_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ExtensionProperties( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExtensionProperties( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExtensionProperties & operator=( VkExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExtensionProperties & operator=( ExtensionProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExtensionProperties ) ); - return *this; - } - - - operator VkExtensionProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExtensionProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExtensionProperties const& ) const = default; -#else - bool operator==( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( extensionName == rhs.extensionName ) - && ( specVersion == rhs.specVersion ); - } - - bool operator!=( ExtensionProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ArrayWrapper1D extensionName = {}; - uint32_t specVersion = {}; - - }; - static_assert( sizeof( ExtensionProperties ) == sizeof( VkExtensionProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct LayerProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 LayerProperties(std::array const& layerName_ = {}, uint32_t specVersion_ = {}, uint32_t implementationVersion_ = {}, std::array const& description_ = {}) VULKAN_HPP_NOEXCEPT - : layerName( layerName_ ), specVersion( specVersion_ ), implementationVersion( implementationVersion_ ), description( description_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 LayerProperties( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - LayerProperties( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - LayerProperties & operator=( VkLayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - LayerProperties & operator=( LayerProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( LayerProperties ) ); - return *this; - } - - - operator VkLayerProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkLayerProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( LayerProperties const& ) const = default; -#else - bool operator==( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( layerName == rhs.layerName ) - && ( specVersion == rhs.specVersion ) - && ( implementationVersion == rhs.implementationVersion ) - && ( description == rhs.description ); - } - - bool operator!=( LayerProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ArrayWrapper1D layerName = {}; - uint32_t specVersion = {}; - uint32_t implementationVersion = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - - }; - static_assert( sizeof( LayerProperties ) == sizeof( VkLayerProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PerformanceCounterKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit_ = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric, VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope_ = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer, VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage_ = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32, std::array const& uuid_ = {}) VULKAN_HPP_NOEXCEPT - : unit( unit_ ), scope( scope_ ), storage( storage_ ), uuid( uuid_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterKHR( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceCounterKHR( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceCounterKHR & operator=( VkPerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceCounterKHR & operator=( PerformanceCounterKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceCounterKHR ) ); - return *this; - } - - - operator VkPerformanceCounterKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceCounterKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceCounterKHR const& ) const = default; -#else - bool operator==( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( unit == rhs.unit ) - && ( scope == rhs.scope ) - && ( storage == rhs.storage ) - && ( uuid == rhs.uuid ); - } - - bool operator!=( PerformanceCounterKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR unit = VULKAN_HPP_NAMESPACE::PerformanceCounterUnitKHR::eGeneric; - VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR scope = VULKAN_HPP_NAMESPACE::PerformanceCounterScopeKHR::eCommandBuffer; - VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR storage = VULKAN_HPP_NAMESPACE::PerformanceCounterStorageKHR::eInt32; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D uuid = {}; - - }; - static_assert( sizeof( PerformanceCounterKHR ) == sizeof( VkPerformanceCounterKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceCounterKHR; - }; - - struct PerformanceCounterDescriptionKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceCounterDescriptionKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR(VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags_ = {}, std::array const& name_ = {}, std::array const& category_ = {}, std::array const& description_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), name( name_ ), category( category_ ), description( description_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PerformanceCounterDescriptionKHR( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceCounterDescriptionKHR( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceCounterDescriptionKHR & operator=( VkPerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceCounterDescriptionKHR & operator=( PerformanceCounterDescriptionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceCounterDescriptionKHR ) ); - return *this; - } - - - operator VkPerformanceCounterDescriptionKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceCounterDescriptionKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceCounterDescriptionKHR const& ) const = default; -#else - bool operator==( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( name == rhs.name ) - && ( category == rhs.category ) - && ( description == rhs.description ); - } - - bool operator!=( PerformanceCounterDescriptionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceCounterDescriptionKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D category = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - - }; - static_assert( sizeof( PerformanceCounterDescriptionKHR ) == sizeof( VkPerformanceCounterDescriptionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceCounterDescriptionKHR; - }; - - struct DisplayModePropertiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters_ = {}) VULKAN_HPP_NOEXCEPT - : displayMode( displayMode_ ), parameters( parameters_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModePropertiesKHR( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModePropertiesKHR( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayModePropertiesKHR & operator=( VkDisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayModePropertiesKHR & operator=( DisplayModePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayModePropertiesKHR ) ); - return *this; - } - - - operator VkDisplayModePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModePropertiesKHR const& ) const = default; -#else - bool operator==( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( displayMode == rhs.displayMode ) - && ( parameters == rhs.parameters ); - } - - bool operator!=( DisplayModePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; - VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR parameters = {}; - - }; - static_assert( sizeof( DisplayModePropertiesKHR ) == sizeof( VkDisplayModePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayModeProperties2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayModeProperties2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties_ = {}) VULKAN_HPP_NOEXCEPT - : displayModeProperties( displayModeProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayModeProperties2KHR( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayModeProperties2KHR( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayModeProperties2KHR & operator=( VkDisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayModeProperties2KHR & operator=( DisplayModeProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayModeProperties2KHR ) ); - return *this; - } - - - operator VkDisplayModeProperties2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayModeProperties2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayModeProperties2KHR const& ) const = default; -#else - bool operator==( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayModeProperties == rhs.displayModeProperties ); - } - - bool operator!=( DisplayModeProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayModeProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR displayModeProperties = {}; - - }; - static_assert( sizeof( DisplayModeProperties2KHR ) == sizeof( VkDisplayModeProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayModeProperties2KHR; - }; - - struct DisplayPlaneInfo2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneInfo2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ = {}, uint32_t planeIndex_ = {}) VULKAN_HPP_NOEXCEPT - : mode( mode_ ), planeIndex( planeIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneInfo2KHR( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneInfo2KHR( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPlaneInfo2KHR & operator=( VkDisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPlaneInfo2KHR & operator=( DisplayPlaneInfo2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPlaneInfo2KHR ) ); - return *this; - } - - DisplayPlaneInfo2KHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayPlaneInfo2KHR & setMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - DisplayPlaneInfo2KHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT - { - planeIndex = planeIndex_; - return *this; - } - - - operator VkDisplayPlaneInfo2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneInfo2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneInfo2KHR const& ) const = default; -#else - bool operator==( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( mode == rhs.mode ) - && ( planeIndex == rhs.planeIndex ); - } - - bool operator!=( DisplayPlaneInfo2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneInfo2KHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode = {}; - uint32_t planeIndex = {}; - - }; - static_assert( sizeof( DisplayPlaneInfo2KHR ) == sizeof( VkDisplayPlaneInfo2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPlaneInfo2KHR; - }; - - struct DisplayPlaneCapabilitiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent_ = {}, VULKAN_HPP_NAMESPACE::Offset2D minDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minDstExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent_ = {}) VULKAN_HPP_NOEXCEPT - : supportedAlpha( supportedAlpha_ ), minSrcPosition( minSrcPosition_ ), maxSrcPosition( maxSrcPosition_ ), minSrcExtent( minSrcExtent_ ), maxSrcExtent( maxSrcExtent_ ), minDstPosition( minDstPosition_ ), maxDstPosition( maxDstPosition_ ), minDstExtent( minDstExtent_ ), maxDstExtent( maxDstExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilitiesKHR( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneCapabilitiesKHR( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPlaneCapabilitiesKHR & operator=( VkDisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPlaneCapabilitiesKHR & operator=( DisplayPlaneCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPlaneCapabilitiesKHR ) ); - return *this; - } - - - operator VkDisplayPlaneCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneCapabilitiesKHR const& ) const = default; -#else - bool operator==( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( supportedAlpha == rhs.supportedAlpha ) - && ( minSrcPosition == rhs.minSrcPosition ) - && ( maxSrcPosition == rhs.maxSrcPosition ) - && ( minSrcExtent == rhs.minSrcExtent ) - && ( maxSrcExtent == rhs.maxSrcExtent ) - && ( minDstPosition == rhs.minDstPosition ) - && ( maxDstPosition == rhs.maxDstPosition ) - && ( minDstExtent == rhs.minDstExtent ) - && ( maxDstExtent == rhs.maxDstExtent ); - } - - bool operator!=( DisplayPlaneCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagsKHR supportedAlpha = {}; - VULKAN_HPP_NAMESPACE::Offset2D minSrcPosition = {}; - VULKAN_HPP_NAMESPACE::Offset2D maxSrcPosition = {}; - VULKAN_HPP_NAMESPACE::Extent2D minSrcExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSrcExtent = {}; - VULKAN_HPP_NAMESPACE::Offset2D minDstPosition = {}; - VULKAN_HPP_NAMESPACE::Offset2D maxDstPosition = {}; - VULKAN_HPP_NAMESPACE::Extent2D minDstExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxDstExtent = {}; - - }; - static_assert( sizeof( DisplayPlaneCapabilitiesKHR ) == sizeof( VkDisplayPlaneCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayPlaneCapabilities2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneCapabilities2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR(VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities_ = {}) VULKAN_HPP_NOEXCEPT - : capabilities( capabilities_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneCapabilities2KHR( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneCapabilities2KHR( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPlaneCapabilities2KHR & operator=( VkDisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPlaneCapabilities2KHR & operator=( DisplayPlaneCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPlaneCapabilities2KHR ) ); - return *this; - } - - - operator VkDisplayPlaneCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneCapabilities2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneCapabilities2KHR const& ) const = default; -#else - bool operator==( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( capabilities == rhs.capabilities ); - } - - bool operator!=( DisplayPlaneCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneCapabilities2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities = {}; - - }; - static_assert( sizeof( DisplayPlaneCapabilities2KHR ) == sizeof( VkDisplayPlaneCapabilities2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPlaneCapabilities2KHR; - }; - - struct DisplayPlanePropertiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay_ = {}, uint32_t currentStackIndex_ = {}) VULKAN_HPP_NOEXCEPT - : currentDisplay( currentDisplay_ ), currentStackIndex( currentStackIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlanePropertiesKHR( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlanePropertiesKHR( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPlanePropertiesKHR & operator=( VkDisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPlanePropertiesKHR & operator=( DisplayPlanePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPlanePropertiesKHR ) ); - return *this; - } - - - operator VkDisplayPlanePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlanePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlanePropertiesKHR const& ) const = default; -#else - bool operator==( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( currentDisplay == rhs.currentDisplay ) - && ( currentStackIndex == rhs.currentStackIndex ); - } - - bool operator!=( DisplayPlanePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayKHR currentDisplay = {}; - uint32_t currentStackIndex = {}; - - }; - static_assert( sizeof( DisplayPlanePropertiesKHR ) == sizeof( VkDisplayPlanePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayPlaneProperties2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPlaneProperties2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties_ = {}) VULKAN_HPP_NOEXCEPT - : displayPlaneProperties( displayPlaneProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPlaneProperties2KHR( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPlaneProperties2KHR( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPlaneProperties2KHR & operator=( VkDisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPlaneProperties2KHR & operator=( DisplayPlaneProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPlaneProperties2KHR ) ); - return *this; - } - - - operator VkDisplayPlaneProperties2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPlaneProperties2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPlaneProperties2KHR const& ) const = default; -#else - bool operator==( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayPlaneProperties == rhs.displayPlaneProperties ); - } - - bool operator!=( DisplayPlaneProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPlaneProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR displayPlaneProperties = {}; - - }; - static_assert( sizeof( DisplayPlaneProperties2KHR ) == sizeof( VkDisplayPlaneProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPlaneProperties2KHR; - }; - - struct DisplayPropertiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display_ = {}, const char* displayName_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions_ = {}, VULKAN_HPP_NAMESPACE::Extent2D physicalResolution_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistentContent_ = {}) VULKAN_HPP_NOEXCEPT - : display( display_ ), displayName( displayName_ ), physicalDimensions( physicalDimensions_ ), physicalResolution( physicalResolution_ ), supportedTransforms( supportedTransforms_ ), planeReorderPossible( planeReorderPossible_ ), persistentContent( persistentContent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPropertiesKHR( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPropertiesKHR( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPropertiesKHR & operator=( VkDisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPropertiesKHR & operator=( DisplayPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPropertiesKHR ) ); - return *this; - } - - - operator VkDisplayPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPropertiesKHR const& ) const = default; -#else - bool operator==( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( display == rhs.display ) - && ( displayName == rhs.displayName ) - && ( physicalDimensions == rhs.physicalDimensions ) - && ( physicalResolution == rhs.physicalResolution ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( planeReorderPossible == rhs.planeReorderPossible ) - && ( persistentContent == rhs.persistentContent ); - } - - bool operator!=( DisplayPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DisplayKHR display = {}; - const char* displayName = {}; - VULKAN_HPP_NAMESPACE::Extent2D physicalDimensions = {}; - VULKAN_HPP_NAMESPACE::Extent2D physicalResolution = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::Bool32 planeReorderPossible = {}; - VULKAN_HPP_NAMESPACE::Bool32 persistentContent = {}; - - }; - static_assert( sizeof( DisplayPropertiesKHR ) == sizeof( VkDisplayPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayProperties2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayProperties2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties_ = {}) VULKAN_HPP_NOEXCEPT - : displayProperties( displayProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayProperties2KHR( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayProperties2KHR( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayProperties2KHR & operator=( VkDisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayProperties2KHR & operator=( DisplayProperties2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayProperties2KHR ) ); - return *this; - } - - - operator VkDisplayProperties2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayProperties2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayProperties2KHR const& ) const = default; -#else - bool operator==( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( displayProperties == rhs.displayProperties ); - } - - bool operator!=( DisplayProperties2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayProperties2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR displayProperties = {}; - - }; - static_assert( sizeof( DisplayProperties2KHR ) == sizeof( VkDisplayProperties2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayProperties2KHR; - }; - - struct PhysicalDeviceExternalBufferInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalBufferInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo(VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), usage( usage_ ), handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalBufferInfo( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalBufferInfo( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceExternalBufferInfo & operator=( VkPhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalBufferInfo & operator=( PhysicalDeviceExternalBufferInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceExternalBufferInfo ) ); - return *this; - } - - PhysicalDeviceExternalBufferInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalBufferInfo & setFlags( VULKAN_HPP_NAMESPACE::BufferCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PhysicalDeviceExternalBufferInfo & setUsage( VULKAN_HPP_NAMESPACE::BufferUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - PhysicalDeviceExternalBufferInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalBufferInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalBufferInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalBufferInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( usage == rhs.usage ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalBufferInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalBufferInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::BufferCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::BufferUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalBufferInfo ) == sizeof( VkPhysicalDeviceExternalBufferInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalBufferInfo; - }; - using PhysicalDeviceExternalBufferInfoKHR = PhysicalDeviceExternalBufferInfo; - - struct ExternalMemoryProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryProperties( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryProperties( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalMemoryProperties & operator=( VkExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalMemoryProperties & operator=( ExternalMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalMemoryProperties ) ); - return *this; - } - - - operator VkExternalMemoryProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryProperties const& ) const = default; -#else - bool operator==( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( externalMemoryFeatures == rhs.externalMemoryFeatures ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ); - } - - bool operator!=( ExternalMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlags externalMemoryFeatures = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags compatibleHandleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryProperties ) == sizeof( VkExternalMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using ExternalMemoryPropertiesKHR = ExternalMemoryProperties; - - struct ExternalBufferProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalBufferProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalBufferProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT - : externalMemoryProperties( externalMemoryProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalBufferProperties( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalBufferProperties( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalBufferProperties & operator=( VkExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalBufferProperties & operator=( ExternalBufferProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalBufferProperties ) ); - return *this; - } - - - operator VkExternalBufferProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalBufferProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalBufferProperties const& ) const = default; -#else - bool operator==( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalMemoryProperties == rhs.externalMemoryProperties ); - } - - bool operator!=( ExternalBufferProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalBufferProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; - - }; - static_assert( sizeof( ExternalBufferProperties ) == sizeof( VkExternalBufferProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalBufferProperties; - }; - using ExternalBufferPropertiesKHR = ExternalBufferProperties; - - struct PhysicalDeviceExternalFenceInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalFenceInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalFenceInfo( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalFenceInfo( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceExternalFenceInfo & operator=( VkPhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalFenceInfo & operator=( PhysicalDeviceExternalFenceInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceExternalFenceInfo ) ); - return *this; - } - - PhysicalDeviceExternalFenceInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalFenceInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalFenceInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalFenceInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalFenceInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalFenceInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalFenceInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalFenceInfo ) == sizeof( VkPhysicalDeviceExternalFenceInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalFenceInfo; - }; - using PhysicalDeviceExternalFenceInfoKHR = PhysicalDeviceExternalFenceInfo; - - struct ExternalFenceProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFenceProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalFenceProperties(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalFenceFeatures( externalFenceFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalFenceProperties( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalFenceProperties( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalFenceProperties & operator=( VkExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalFenceProperties & operator=( ExternalFenceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalFenceProperties ) ); - return *this; - } - - - operator VkExternalFenceProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalFenceProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalFenceProperties const& ) const = default; -#else - bool operator==( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ) - && ( externalFenceFeatures == rhs.externalFenceFeatures ); - } - - bool operator!=( ExternalFenceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFenceProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags compatibleHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceFeatureFlags externalFenceFeatures = {}; - - }; - static_assert( sizeof( ExternalFenceProperties ) == sizeof( VkExternalFenceProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalFenceProperties; - }; - using ExternalFencePropertiesKHR = ExternalFenceProperties; - - struct ImageFormatProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageFormatProperties(VULKAN_HPP_NAMESPACE::Extent3D maxExtent_ = {}, uint32_t maxMipLevels_ = {}, uint32_t maxArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxExtent( maxExtent_ ), maxMipLevels( maxMipLevels_ ), maxArrayLayers( maxArrayLayers_ ), sampleCounts( sampleCounts_ ), maxResourceSize( maxResourceSize_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageFormatProperties( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatProperties( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageFormatProperties & operator=( VkImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageFormatProperties & operator=( ImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageFormatProperties ) ); - return *this; - } - - - operator VkImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageFormatProperties const& ) const = default; -#else - bool operator==( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( maxExtent == rhs.maxExtent ) - && ( maxMipLevels == rhs.maxMipLevels ) - && ( maxArrayLayers == rhs.maxArrayLayers ) - && ( sampleCounts == rhs.sampleCounts ) - && ( maxResourceSize == rhs.maxResourceSize ); - } - - bool operator!=( ImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Extent3D maxExtent = {}; - uint32_t maxMipLevels = {}; - uint32_t maxArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxResourceSize = {}; - - }; - static_assert( sizeof( ImageFormatProperties ) == sizeof( VkImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ExternalImageFormatPropertiesNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : imageFormatProperties( imageFormatProperties_ ), externalMemoryFeatures( externalMemoryFeatures_ ), exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalImageFormatPropertiesNV( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalImageFormatPropertiesNV( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalImageFormatPropertiesNV & operator=( VkExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalImageFormatPropertiesNV & operator=( ExternalImageFormatPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalImageFormatPropertiesNV ) ); - return *this; - } - - - operator VkExternalImageFormatPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalImageFormatPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalImageFormatPropertiesNV const& ) const = default; -#else - bool operator==( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( imageFormatProperties == rhs.imageFormatProperties ) - && ( externalMemoryFeatures == rhs.externalMemoryFeatures ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ); - } - - bool operator!=( ExternalImageFormatPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryFeatureFlagsNV externalMemoryFeatures = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV compatibleHandleTypes = {}; - - }; - static_assert( sizeof( ExternalImageFormatPropertiesNV ) == sizeof( VkExternalImageFormatPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceExternalSemaphoreInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalSemaphoreInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalSemaphoreInfo( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalSemaphoreInfo( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceExternalSemaphoreInfo & operator=( VkPhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalSemaphoreInfo & operator=( PhysicalDeviceExternalSemaphoreInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceExternalSemaphoreInfo ) ); - return *this; - } - - PhysicalDeviceExternalSemaphoreInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalSemaphoreInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalSemaphoreInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalSemaphoreInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalSemaphoreInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalSemaphoreInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalSemaphoreInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalSemaphoreInfo ) == sizeof( VkPhysicalDeviceExternalSemaphoreInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalSemaphoreInfo; - }; - using PhysicalDeviceExternalSemaphoreInfoKHR = PhysicalDeviceExternalSemaphoreInfo; - - struct ExternalSemaphoreProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalSemaphoreProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes_ = {}, VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : exportFromImportedHandleTypes( exportFromImportedHandleTypes_ ), compatibleHandleTypes( compatibleHandleTypes_ ), externalSemaphoreFeatures( externalSemaphoreFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalSemaphoreProperties( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalSemaphoreProperties( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalSemaphoreProperties & operator=( VkExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalSemaphoreProperties & operator=( ExternalSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalSemaphoreProperties ) ); - return *this; - } - - - operator VkExternalSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalSemaphoreProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalSemaphoreProperties const& ) const = default; -#else - bool operator==( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exportFromImportedHandleTypes == rhs.exportFromImportedHandleTypes ) - && ( compatibleHandleTypes == rhs.compatibleHandleTypes ) - && ( externalSemaphoreFeatures == rhs.externalSemaphoreFeatures ); - } - - bool operator!=( ExternalSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalSemaphoreProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags compatibleHandleTypes = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreFeatureFlags externalSemaphoreFeatures = {}; - - }; - static_assert( sizeof( ExternalSemaphoreProperties ) == sizeof( VkExternalSemaphoreProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalSemaphoreProperties; - }; - using ExternalSemaphorePropertiesKHR = ExternalSemaphoreProperties; - - struct PhysicalDeviceFeatures2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFeatures2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features_ = {}) VULKAN_HPP_NOEXCEPT - : features( features_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFeatures2( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFeatures2( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFeatures2 & operator=( VkPhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFeatures2 & operator=( PhysicalDeviceFeatures2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFeatures2 ) ); - return *this; - } - - PhysicalDeviceFeatures2 & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFeatures2 & setFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & features_ ) VULKAN_HPP_NOEXCEPT - { - features = features_; - return *this; - } - - - operator VkPhysicalDeviceFeatures2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFeatures2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFeatures2 const& ) const = default; -#else - bool operator==( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( features == rhs.features ); - } - - bool operator!=( PhysicalDeviceFeatures2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFeatures2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features = {}; - - }; - static_assert( sizeof( PhysicalDeviceFeatures2 ) == sizeof( VkPhysicalDeviceFeatures2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFeatures2; - }; - using PhysicalDeviceFeatures2KHR = PhysicalDeviceFeatures2; - - struct FormatProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FormatProperties(VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : linearTilingFeatures( linearTilingFeatures_ ), optimalTilingFeatures( optimalTilingFeatures_ ), bufferFeatures( bufferFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR FormatProperties( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FormatProperties( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FormatProperties & operator=( VkFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FormatProperties & operator=( FormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FormatProperties ) ); - return *this; - } - - - operator VkFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FormatProperties const& ) const = default; -#else - bool operator==( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( linearTilingFeatures == rhs.linearTilingFeatures ) - && ( optimalTilingFeatures == rhs.optimalTilingFeatures ) - && ( bufferFeatures == rhs.bufferFeatures ); - } - - bool operator!=( FormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::FormatFeatureFlags linearTilingFeatures = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags optimalTilingFeatures = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags bufferFeatures = {}; - - }; - static_assert( sizeof( FormatProperties ) == sizeof( VkFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct FormatProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFormatProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FormatProperties2(VULKAN_HPP_NAMESPACE::FormatProperties formatProperties_ = {}) VULKAN_HPP_NOEXCEPT - : formatProperties( formatProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR FormatProperties2( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FormatProperties2( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FormatProperties2 & operator=( VkFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FormatProperties2 & operator=( FormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FormatProperties2 ) ); - return *this; - } - - - operator VkFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFormatProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FormatProperties2 const& ) const = default; -#else - bool operator==( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( formatProperties == rhs.formatProperties ); - } - - bool operator!=( FormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::FormatProperties formatProperties = {}; - - }; - static_assert( sizeof( FormatProperties2 ) == sizeof( VkFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FormatProperties2; - }; - using FormatProperties2KHR = FormatProperties2; - - struct PhysicalDeviceFragmentShadingRateKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}) VULKAN_HPP_NOEXCEPT - : sampleCounts( sampleCounts_ ), fragmentSize( fragmentSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateKHR( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateKHR( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentShadingRateKHR & operator=( VkPhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRateKHR & operator=( PhysicalDeviceFragmentShadingRateKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateKHR ) ); - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRateKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleCounts == rhs.sampleCounts ) - && ( fragmentSize == rhs.fragmentSize ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleCounts = {}; - VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateKHR; - }; - - struct PhysicalDeviceImageFormatInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageFormatInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : format( format_ ), type( type_ ), tiling( tiling_ ), usage( usage_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageFormatInfo2( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageFormatInfo2( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceImageFormatInfo2 & operator=( VkPhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageFormatInfo2 & operator=( PhysicalDeviceImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceImageFormatInfo2 ) ); - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT - { - tiling = tiling_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - PhysicalDeviceImageFormatInfo2 & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkPhysicalDeviceImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageFormatInfo2 const& ) const = default; -#else - bool operator==( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( type == rhs.type ) - && ( tiling == rhs.tiling ) - && ( usage == rhs.usage ) - && ( flags == rhs.flags ); - } - - bool operator!=( PhysicalDeviceImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageFormatInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - - }; - static_assert( sizeof( PhysicalDeviceImageFormatInfo2 ) == sizeof( VkPhysicalDeviceImageFormatInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageFormatInfo2; - }; - using PhysicalDeviceImageFormatInfo2KHR = PhysicalDeviceImageFormatInfo2; - - struct ImageFormatProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageFormatProperties2(VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties_ = {}) VULKAN_HPP_NOEXCEPT - : imageFormatProperties( imageFormatProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageFormatProperties2( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatProperties2( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageFormatProperties2 & operator=( VkImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageFormatProperties2 & operator=( ImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageFormatProperties2 ) ); - return *this; - } - - - operator VkImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageFormatProperties2 const& ) const = default; -#else - bool operator==( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageFormatProperties == rhs.imageFormatProperties ); - } - - bool operator!=( ImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties = {}; - - }; - static_assert( sizeof( ImageFormatProperties2 ) == sizeof( VkImageFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageFormatProperties2; - }; - using ImageFormatProperties2KHR = ImageFormatProperties2; - - struct MemoryType - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryType(VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT - : propertyFlags( propertyFlags_ ), heapIndex( heapIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryType( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryType( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryType & operator=( VkMemoryType const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryType & operator=( MemoryType const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryType ) ); - return *this; - } - - - operator VkMemoryType const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryType &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryType const& ) const = default; -#else - bool operator==( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( propertyFlags == rhs.propertyFlags ) - && ( heapIndex == rhs.heapIndex ); - } - - bool operator!=( MemoryType const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::MemoryPropertyFlags propertyFlags = {}; - uint32_t heapIndex = {}; - - }; - static_assert( sizeof( MemoryType ) == sizeof( VkMemoryType ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MemoryHeap - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryHeap(VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags_ = {}) VULKAN_HPP_NOEXCEPT - : size( size_ ), flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryHeap( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryHeap( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryHeap & operator=( VkMemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryHeap & operator=( MemoryHeap const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryHeap ) ); - return *this; - } - - - operator VkMemoryHeap const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryHeap &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryHeap const& ) const = default; -#else - bool operator==( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( size == rhs.size ) - && ( flags == rhs.flags ); - } - - bool operator!=( MemoryHeap const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::MemoryHeapFlags flags = {}; - - }; - static_assert( sizeof( MemoryHeap ) == sizeof( VkMemoryHeap ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceMemoryProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties(uint32_t memoryTypeCount_ = {}, std::array const& memoryTypes_ = {}, uint32_t memoryHeapCount_ = {}, std::array const& memoryHeaps_ = {}) VULKAN_HPP_NOEXCEPT - : memoryTypeCount( memoryTypeCount_ ), memoryTypes( memoryTypes_ ), memoryHeapCount( memoryHeapCount_ ), memoryHeaps( memoryHeaps_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryProperties( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMemoryProperties & operator=( VkPhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMemoryProperties & operator=( PhysicalDeviceMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceMemoryProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( memoryTypeCount == rhs.memoryTypeCount ) - && ( memoryTypes == rhs.memoryTypes ) - && ( memoryHeapCount == rhs.memoryHeapCount ) - && ( memoryHeaps == rhs.memoryHeaps ); - } - - bool operator!=( PhysicalDeviceMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t memoryTypeCount = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D memoryTypes = {}; - uint32_t memoryHeapCount = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D memoryHeaps = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryProperties ) == sizeof( VkPhysicalDeviceMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceMemoryProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties_ = {}) VULKAN_HPP_NOEXCEPT - : memoryProperties( memoryProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryProperties2( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryProperties2( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMemoryProperties2 & operator=( VkPhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMemoryProperties2 & operator=( PhysicalDeviceMemoryProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMemoryProperties2 ) ); - return *this; - } - - - operator VkPhysicalDeviceMemoryProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryProperties2 const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryProperties == rhs.memoryProperties ); - } - - bool operator!=( PhysicalDeviceMemoryProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryProperties2 ) == sizeof( VkPhysicalDeviceMemoryProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMemoryProperties2; - }; - using PhysicalDeviceMemoryProperties2KHR = PhysicalDeviceMemoryProperties2; - - struct MultisamplePropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMultisamplePropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxSampleLocationGridSize( maxSampleLocationGridSize_ ) - {} - - VULKAN_HPP_CONSTEXPR MultisamplePropertiesEXT( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MultisamplePropertiesEXT( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MultisamplePropertiesEXT & operator=( VkMultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MultisamplePropertiesEXT & operator=( MultisamplePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MultisamplePropertiesEXT ) ); - return *this; - } - - - operator VkMultisamplePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMultisamplePropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MultisamplePropertiesEXT const& ) const = default; -#else - bool operator==( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ); - } - - bool operator!=( MultisamplePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMultisamplePropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; - - }; - static_assert( sizeof( MultisamplePropertiesEXT ) == sizeof( VkMultisamplePropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MultisamplePropertiesEXT; - }; - - struct PhysicalDeviceLimits - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits(uint32_t maxImageDimension1D_ = {}, uint32_t maxImageDimension2D_ = {}, uint32_t maxImageDimension3D_ = {}, uint32_t maxImageDimensionCube_ = {}, uint32_t maxImageArrayLayers_ = {}, uint32_t maxTexelBufferElements_ = {}, uint32_t maxUniformBufferRange_ = {}, uint32_t maxStorageBufferRange_ = {}, uint32_t maxPushConstantsSize_ = {}, uint32_t maxMemoryAllocationCount_ = {}, uint32_t maxSamplerAllocationCount_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize_ = {}, uint32_t maxBoundDescriptorSets_ = {}, uint32_t maxPerStageDescriptorSamplers_ = {}, uint32_t maxPerStageDescriptorUniformBuffers_ = {}, uint32_t maxPerStageDescriptorStorageBuffers_ = {}, uint32_t maxPerStageDescriptorSampledImages_ = {}, uint32_t maxPerStageDescriptorStorageImages_ = {}, uint32_t maxPerStageDescriptorInputAttachments_ = {}, uint32_t maxPerStageResources_ = {}, uint32_t maxDescriptorSetSamplers_ = {}, uint32_t maxDescriptorSetUniformBuffers_ = {}, uint32_t maxDescriptorSetUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetStorageBuffers_ = {}, uint32_t maxDescriptorSetStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetSampledImages_ = {}, uint32_t maxDescriptorSetStorageImages_ = {}, uint32_t maxDescriptorSetInputAttachments_ = {}, uint32_t maxVertexInputAttributes_ = {}, uint32_t maxVertexInputBindings_ = {}, uint32_t maxVertexInputAttributeOffset_ = {}, uint32_t maxVertexInputBindingStride_ = {}, uint32_t maxVertexOutputComponents_ = {}, uint32_t maxTessellationGenerationLevel_ = {}, uint32_t maxTessellationPatchSize_ = {}, uint32_t maxTessellationControlPerVertexInputComponents_ = {}, uint32_t maxTessellationControlPerVertexOutputComponents_ = {}, uint32_t maxTessellationControlPerPatchOutputComponents_ = {}, uint32_t maxTessellationControlTotalOutputComponents_ = {}, uint32_t maxTessellationEvaluationInputComponents_ = {}, uint32_t maxTessellationEvaluationOutputComponents_ = {}, uint32_t maxGeometryShaderInvocations_ = {}, uint32_t maxGeometryInputComponents_ = {}, uint32_t maxGeometryOutputComponents_ = {}, uint32_t maxGeometryOutputVertices_ = {}, uint32_t maxGeometryTotalOutputComponents_ = {}, uint32_t maxFragmentInputComponents_ = {}, uint32_t maxFragmentOutputAttachments_ = {}, uint32_t maxFragmentDualSrcAttachments_ = {}, uint32_t maxFragmentCombinedOutputResources_ = {}, uint32_t maxComputeSharedMemorySize_ = {}, std::array const& maxComputeWorkGroupCount_ = {}, uint32_t maxComputeWorkGroupInvocations_ = {}, std::array const& maxComputeWorkGroupSize_ = {}, uint32_t subPixelPrecisionBits_ = {}, uint32_t subTexelPrecisionBits_ = {}, uint32_t mipmapPrecisionBits_ = {}, uint32_t maxDrawIndexedIndexValue_ = {}, uint32_t maxDrawIndirectCount_ = {}, float maxSamplerLodBias_ = {}, float maxSamplerAnisotropy_ = {}, uint32_t maxViewports_ = {}, std::array const& maxViewportDimensions_ = {}, std::array const& viewportBoundsRange_ = {}, uint32_t viewportSubPixelBits_ = {}, size_t minMemoryMapAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment_ = {}, int32_t minTexelOffset_ = {}, uint32_t maxTexelOffset_ = {}, int32_t minTexelGatherOffset_ = {}, uint32_t maxTexelGatherOffset_ = {}, float minInterpolationOffset_ = {}, float maxInterpolationOffset_ = {}, uint32_t subPixelInterpolationOffsetBits_ = {}, uint32_t maxFramebufferWidth_ = {}, uint32_t maxFramebufferHeight_ = {}, uint32_t maxFramebufferLayers_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts_ = {}, uint32_t maxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts_ = {}, uint32_t maxSampleMaskWords_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics_ = {}, float timestampPeriod_ = {}, uint32_t maxClipDistances_ = {}, uint32_t maxCullDistances_ = {}, uint32_t maxCombinedClipAndCullDistances_ = {}, uint32_t discreteQueuePriorities_ = {}, std::array const& pointSizeRange_ = {}, std::array const& lineWidthRange_ = {}, float pointSizeGranularity_ = {}, float lineWidthGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 strictLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxImageDimension1D( maxImageDimension1D_ ), maxImageDimension2D( maxImageDimension2D_ ), maxImageDimension3D( maxImageDimension3D_ ), maxImageDimensionCube( maxImageDimensionCube_ ), maxImageArrayLayers( maxImageArrayLayers_ ), maxTexelBufferElements( maxTexelBufferElements_ ), maxUniformBufferRange( maxUniformBufferRange_ ), maxStorageBufferRange( maxStorageBufferRange_ ), maxPushConstantsSize( maxPushConstantsSize_ ), maxMemoryAllocationCount( maxMemoryAllocationCount_ ), maxSamplerAllocationCount( maxSamplerAllocationCount_ ), bufferImageGranularity( bufferImageGranularity_ ), sparseAddressSpaceSize( sparseAddressSpaceSize_ ), maxBoundDescriptorSets( maxBoundDescriptorSets_ ), maxPerStageDescriptorSamplers( maxPerStageDescriptorSamplers_ ), maxPerStageDescriptorUniformBuffers( maxPerStageDescriptorUniformBuffers_ ), maxPerStageDescriptorStorageBuffers( maxPerStageDescriptorStorageBuffers_ ), maxPerStageDescriptorSampledImages( maxPerStageDescriptorSampledImages_ ), maxPerStageDescriptorStorageImages( maxPerStageDescriptorStorageImages_ ), maxPerStageDescriptorInputAttachments( maxPerStageDescriptorInputAttachments_ ), maxPerStageResources( maxPerStageResources_ ), maxDescriptorSetSamplers( maxDescriptorSetSamplers_ ), maxDescriptorSetUniformBuffers( maxDescriptorSetUniformBuffers_ ), maxDescriptorSetUniformBuffersDynamic( maxDescriptorSetUniformBuffersDynamic_ ), maxDescriptorSetStorageBuffers( maxDescriptorSetStorageBuffers_ ), maxDescriptorSetStorageBuffersDynamic( maxDescriptorSetStorageBuffersDynamic_ ), maxDescriptorSetSampledImages( maxDescriptorSetSampledImages_ ), maxDescriptorSetStorageImages( maxDescriptorSetStorageImages_ ), maxDescriptorSetInputAttachments( maxDescriptorSetInputAttachments_ ), maxVertexInputAttributes( maxVertexInputAttributes_ ), maxVertexInputBindings( maxVertexInputBindings_ ), maxVertexInputAttributeOffset( maxVertexInputAttributeOffset_ ), maxVertexInputBindingStride( maxVertexInputBindingStride_ ), maxVertexOutputComponents( maxVertexOutputComponents_ ), maxTessellationGenerationLevel( maxTessellationGenerationLevel_ ), maxTessellationPatchSize( maxTessellationPatchSize_ ), maxTessellationControlPerVertexInputComponents( maxTessellationControlPerVertexInputComponents_ ), maxTessellationControlPerVertexOutputComponents( maxTessellationControlPerVertexOutputComponents_ ), maxTessellationControlPerPatchOutputComponents( maxTessellationControlPerPatchOutputComponents_ ), maxTessellationControlTotalOutputComponents( maxTessellationControlTotalOutputComponents_ ), maxTessellationEvaluationInputComponents( maxTessellationEvaluationInputComponents_ ), maxTessellationEvaluationOutputComponents( maxTessellationEvaluationOutputComponents_ ), maxGeometryShaderInvocations( maxGeometryShaderInvocations_ ), maxGeometryInputComponents( maxGeometryInputComponents_ ), maxGeometryOutputComponents( maxGeometryOutputComponents_ ), maxGeometryOutputVertices( maxGeometryOutputVertices_ ), maxGeometryTotalOutputComponents( maxGeometryTotalOutputComponents_ ), maxFragmentInputComponents( maxFragmentInputComponents_ ), maxFragmentOutputAttachments( maxFragmentOutputAttachments_ ), maxFragmentDualSrcAttachments( maxFragmentDualSrcAttachments_ ), maxFragmentCombinedOutputResources( maxFragmentCombinedOutputResources_ ), maxComputeSharedMemorySize( maxComputeSharedMemorySize_ ), maxComputeWorkGroupCount( maxComputeWorkGroupCount_ ), maxComputeWorkGroupInvocations( maxComputeWorkGroupInvocations_ ), maxComputeWorkGroupSize( maxComputeWorkGroupSize_ ), subPixelPrecisionBits( subPixelPrecisionBits_ ), subTexelPrecisionBits( subTexelPrecisionBits_ ), mipmapPrecisionBits( mipmapPrecisionBits_ ), maxDrawIndexedIndexValue( maxDrawIndexedIndexValue_ ), maxDrawIndirectCount( maxDrawIndirectCount_ ), maxSamplerLodBias( maxSamplerLodBias_ ), maxSamplerAnisotropy( maxSamplerAnisotropy_ ), maxViewports( maxViewports_ ), maxViewportDimensions( maxViewportDimensions_ ), viewportBoundsRange( viewportBoundsRange_ ), viewportSubPixelBits( viewportSubPixelBits_ ), minMemoryMapAlignment( minMemoryMapAlignment_ ), minTexelBufferOffsetAlignment( minTexelBufferOffsetAlignment_ ), minUniformBufferOffsetAlignment( minUniformBufferOffsetAlignment_ ), minStorageBufferOffsetAlignment( minStorageBufferOffsetAlignment_ ), minTexelOffset( minTexelOffset_ ), maxTexelOffset( maxTexelOffset_ ), minTexelGatherOffset( minTexelGatherOffset_ ), maxTexelGatherOffset( maxTexelGatherOffset_ ), minInterpolationOffset( minInterpolationOffset_ ), maxInterpolationOffset( maxInterpolationOffset_ ), subPixelInterpolationOffsetBits( subPixelInterpolationOffsetBits_ ), maxFramebufferWidth( maxFramebufferWidth_ ), maxFramebufferHeight( maxFramebufferHeight_ ), maxFramebufferLayers( maxFramebufferLayers_ ), framebufferColorSampleCounts( framebufferColorSampleCounts_ ), framebufferDepthSampleCounts( framebufferDepthSampleCounts_ ), framebufferStencilSampleCounts( framebufferStencilSampleCounts_ ), framebufferNoAttachmentsSampleCounts( framebufferNoAttachmentsSampleCounts_ ), maxColorAttachments( maxColorAttachments_ ), sampledImageColorSampleCounts( sampledImageColorSampleCounts_ ), sampledImageIntegerSampleCounts( sampledImageIntegerSampleCounts_ ), sampledImageDepthSampleCounts( sampledImageDepthSampleCounts_ ), sampledImageStencilSampleCounts( sampledImageStencilSampleCounts_ ), storageImageSampleCounts( storageImageSampleCounts_ ), maxSampleMaskWords( maxSampleMaskWords_ ), timestampComputeAndGraphics( timestampComputeAndGraphics_ ), timestampPeriod( timestampPeriod_ ), maxClipDistances( maxClipDistances_ ), maxCullDistances( maxCullDistances_ ), maxCombinedClipAndCullDistances( maxCombinedClipAndCullDistances_ ), discreteQueuePriorities( discreteQueuePriorities_ ), pointSizeRange( pointSizeRange_ ), lineWidthRange( lineWidthRange_ ), pointSizeGranularity( pointSizeGranularity_ ), lineWidthGranularity( lineWidthGranularity_ ), strictLines( strictLines_ ), standardSampleLocations( standardSampleLocations_ ), optimalBufferCopyOffsetAlignment( optimalBufferCopyOffsetAlignment_ ), optimalBufferCopyRowPitchAlignment( optimalBufferCopyRowPitchAlignment_ ), nonCoherentAtomSize( nonCoherentAtomSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceLimits( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLimits( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceLimits & operator=( VkPhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceLimits & operator=( PhysicalDeviceLimits const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceLimits ) ); - return *this; - } - - - operator VkPhysicalDeviceLimits const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceLimits &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceLimits const& ) const = default; -#else - bool operator==( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( maxImageDimension1D == rhs.maxImageDimension1D ) - && ( maxImageDimension2D == rhs.maxImageDimension2D ) - && ( maxImageDimension3D == rhs.maxImageDimension3D ) - && ( maxImageDimensionCube == rhs.maxImageDimensionCube ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( maxTexelBufferElements == rhs.maxTexelBufferElements ) - && ( maxUniformBufferRange == rhs.maxUniformBufferRange ) - && ( maxStorageBufferRange == rhs.maxStorageBufferRange ) - && ( maxPushConstantsSize == rhs.maxPushConstantsSize ) - && ( maxMemoryAllocationCount == rhs.maxMemoryAllocationCount ) - && ( maxSamplerAllocationCount == rhs.maxSamplerAllocationCount ) - && ( bufferImageGranularity == rhs.bufferImageGranularity ) - && ( sparseAddressSpaceSize == rhs.sparseAddressSpaceSize ) - && ( maxBoundDescriptorSets == rhs.maxBoundDescriptorSets ) - && ( maxPerStageDescriptorSamplers == rhs.maxPerStageDescriptorSamplers ) - && ( maxPerStageDescriptorUniformBuffers == rhs.maxPerStageDescriptorUniformBuffers ) - && ( maxPerStageDescriptorStorageBuffers == rhs.maxPerStageDescriptorStorageBuffers ) - && ( maxPerStageDescriptorSampledImages == rhs.maxPerStageDescriptorSampledImages ) - && ( maxPerStageDescriptorStorageImages == rhs.maxPerStageDescriptorStorageImages ) - && ( maxPerStageDescriptorInputAttachments == rhs.maxPerStageDescriptorInputAttachments ) - && ( maxPerStageResources == rhs.maxPerStageResources ) - && ( maxDescriptorSetSamplers == rhs.maxDescriptorSetSamplers ) - && ( maxDescriptorSetUniformBuffers == rhs.maxDescriptorSetUniformBuffers ) - && ( maxDescriptorSetUniformBuffersDynamic == rhs.maxDescriptorSetUniformBuffersDynamic ) - && ( maxDescriptorSetStorageBuffers == rhs.maxDescriptorSetStorageBuffers ) - && ( maxDescriptorSetStorageBuffersDynamic == rhs.maxDescriptorSetStorageBuffersDynamic ) - && ( maxDescriptorSetSampledImages == rhs.maxDescriptorSetSampledImages ) - && ( maxDescriptorSetStorageImages == rhs.maxDescriptorSetStorageImages ) - && ( maxDescriptorSetInputAttachments == rhs.maxDescriptorSetInputAttachments ) - && ( maxVertexInputAttributes == rhs.maxVertexInputAttributes ) - && ( maxVertexInputBindings == rhs.maxVertexInputBindings ) - && ( maxVertexInputAttributeOffset == rhs.maxVertexInputAttributeOffset ) - && ( maxVertexInputBindingStride == rhs.maxVertexInputBindingStride ) - && ( maxVertexOutputComponents == rhs.maxVertexOutputComponents ) - && ( maxTessellationGenerationLevel == rhs.maxTessellationGenerationLevel ) - && ( maxTessellationPatchSize == rhs.maxTessellationPatchSize ) - && ( maxTessellationControlPerVertexInputComponents == rhs.maxTessellationControlPerVertexInputComponents ) - && ( maxTessellationControlPerVertexOutputComponents == rhs.maxTessellationControlPerVertexOutputComponents ) - && ( maxTessellationControlPerPatchOutputComponents == rhs.maxTessellationControlPerPatchOutputComponents ) - && ( maxTessellationControlTotalOutputComponents == rhs.maxTessellationControlTotalOutputComponents ) - && ( maxTessellationEvaluationInputComponents == rhs.maxTessellationEvaluationInputComponents ) - && ( maxTessellationEvaluationOutputComponents == rhs.maxTessellationEvaluationOutputComponents ) - && ( maxGeometryShaderInvocations == rhs.maxGeometryShaderInvocations ) - && ( maxGeometryInputComponents == rhs.maxGeometryInputComponents ) - && ( maxGeometryOutputComponents == rhs.maxGeometryOutputComponents ) - && ( maxGeometryOutputVertices == rhs.maxGeometryOutputVertices ) - && ( maxGeometryTotalOutputComponents == rhs.maxGeometryTotalOutputComponents ) - && ( maxFragmentInputComponents == rhs.maxFragmentInputComponents ) - && ( maxFragmentOutputAttachments == rhs.maxFragmentOutputAttachments ) - && ( maxFragmentDualSrcAttachments == rhs.maxFragmentDualSrcAttachments ) - && ( maxFragmentCombinedOutputResources == rhs.maxFragmentCombinedOutputResources ) - && ( maxComputeSharedMemorySize == rhs.maxComputeSharedMemorySize ) - && ( maxComputeWorkGroupCount == rhs.maxComputeWorkGroupCount ) - && ( maxComputeWorkGroupInvocations == rhs.maxComputeWorkGroupInvocations ) - && ( maxComputeWorkGroupSize == rhs.maxComputeWorkGroupSize ) - && ( subPixelPrecisionBits == rhs.subPixelPrecisionBits ) - && ( subTexelPrecisionBits == rhs.subTexelPrecisionBits ) - && ( mipmapPrecisionBits == rhs.mipmapPrecisionBits ) - && ( maxDrawIndexedIndexValue == rhs.maxDrawIndexedIndexValue ) - && ( maxDrawIndirectCount == rhs.maxDrawIndirectCount ) - && ( maxSamplerLodBias == rhs.maxSamplerLodBias ) - && ( maxSamplerAnisotropy == rhs.maxSamplerAnisotropy ) - && ( maxViewports == rhs.maxViewports ) - && ( maxViewportDimensions == rhs.maxViewportDimensions ) - && ( viewportBoundsRange == rhs.viewportBoundsRange ) - && ( viewportSubPixelBits == rhs.viewportSubPixelBits ) - && ( minMemoryMapAlignment == rhs.minMemoryMapAlignment ) - && ( minTexelBufferOffsetAlignment == rhs.minTexelBufferOffsetAlignment ) - && ( minUniformBufferOffsetAlignment == rhs.minUniformBufferOffsetAlignment ) - && ( minStorageBufferOffsetAlignment == rhs.minStorageBufferOffsetAlignment ) - && ( minTexelOffset == rhs.minTexelOffset ) - && ( maxTexelOffset == rhs.maxTexelOffset ) - && ( minTexelGatherOffset == rhs.minTexelGatherOffset ) - && ( maxTexelGatherOffset == rhs.maxTexelGatherOffset ) - && ( minInterpolationOffset == rhs.minInterpolationOffset ) - && ( maxInterpolationOffset == rhs.maxInterpolationOffset ) - && ( subPixelInterpolationOffsetBits == rhs.subPixelInterpolationOffsetBits ) - && ( maxFramebufferWidth == rhs.maxFramebufferWidth ) - && ( maxFramebufferHeight == rhs.maxFramebufferHeight ) - && ( maxFramebufferLayers == rhs.maxFramebufferLayers ) - && ( framebufferColorSampleCounts == rhs.framebufferColorSampleCounts ) - && ( framebufferDepthSampleCounts == rhs.framebufferDepthSampleCounts ) - && ( framebufferStencilSampleCounts == rhs.framebufferStencilSampleCounts ) - && ( framebufferNoAttachmentsSampleCounts == rhs.framebufferNoAttachmentsSampleCounts ) - && ( maxColorAttachments == rhs.maxColorAttachments ) - && ( sampledImageColorSampleCounts == rhs.sampledImageColorSampleCounts ) - && ( sampledImageIntegerSampleCounts == rhs.sampledImageIntegerSampleCounts ) - && ( sampledImageDepthSampleCounts == rhs.sampledImageDepthSampleCounts ) - && ( sampledImageStencilSampleCounts == rhs.sampledImageStencilSampleCounts ) - && ( storageImageSampleCounts == rhs.storageImageSampleCounts ) - && ( maxSampleMaskWords == rhs.maxSampleMaskWords ) - && ( timestampComputeAndGraphics == rhs.timestampComputeAndGraphics ) - && ( timestampPeriod == rhs.timestampPeriod ) - && ( maxClipDistances == rhs.maxClipDistances ) - && ( maxCullDistances == rhs.maxCullDistances ) - && ( maxCombinedClipAndCullDistances == rhs.maxCombinedClipAndCullDistances ) - && ( discreteQueuePriorities == rhs.discreteQueuePriorities ) - && ( pointSizeRange == rhs.pointSizeRange ) - && ( lineWidthRange == rhs.lineWidthRange ) - && ( pointSizeGranularity == rhs.pointSizeGranularity ) - && ( lineWidthGranularity == rhs.lineWidthGranularity ) - && ( strictLines == rhs.strictLines ) - && ( standardSampleLocations == rhs.standardSampleLocations ) - && ( optimalBufferCopyOffsetAlignment == rhs.optimalBufferCopyOffsetAlignment ) - && ( optimalBufferCopyRowPitchAlignment == rhs.optimalBufferCopyRowPitchAlignment ) - && ( nonCoherentAtomSize == rhs.nonCoherentAtomSize ); - } - - bool operator!=( PhysicalDeviceLimits const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t maxImageDimension1D = {}; - uint32_t maxImageDimension2D = {}; - uint32_t maxImageDimension3D = {}; - uint32_t maxImageDimensionCube = {}; - uint32_t maxImageArrayLayers = {}; - uint32_t maxTexelBufferElements = {}; - uint32_t maxUniformBufferRange = {}; - uint32_t maxStorageBufferRange = {}; - uint32_t maxPushConstantsSize = {}; - uint32_t maxMemoryAllocationCount = {}; - uint32_t maxSamplerAllocationCount = {}; - VULKAN_HPP_NAMESPACE::DeviceSize bufferImageGranularity = {}; - VULKAN_HPP_NAMESPACE::DeviceSize sparseAddressSpaceSize = {}; - uint32_t maxBoundDescriptorSets = {}; - uint32_t maxPerStageDescriptorSamplers = {}; - uint32_t maxPerStageDescriptorUniformBuffers = {}; - uint32_t maxPerStageDescriptorStorageBuffers = {}; - uint32_t maxPerStageDescriptorSampledImages = {}; - uint32_t maxPerStageDescriptorStorageImages = {}; - uint32_t maxPerStageDescriptorInputAttachments = {}; - uint32_t maxPerStageResources = {}; - uint32_t maxDescriptorSetSamplers = {}; - uint32_t maxDescriptorSetUniformBuffers = {}; - uint32_t maxDescriptorSetUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetStorageBuffers = {}; - uint32_t maxDescriptorSetStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetSampledImages = {}; - uint32_t maxDescriptorSetStorageImages = {}; - uint32_t maxDescriptorSetInputAttachments = {}; - uint32_t maxVertexInputAttributes = {}; - uint32_t maxVertexInputBindings = {}; - uint32_t maxVertexInputAttributeOffset = {}; - uint32_t maxVertexInputBindingStride = {}; - uint32_t maxVertexOutputComponents = {}; - uint32_t maxTessellationGenerationLevel = {}; - uint32_t maxTessellationPatchSize = {}; - uint32_t maxTessellationControlPerVertexInputComponents = {}; - uint32_t maxTessellationControlPerVertexOutputComponents = {}; - uint32_t maxTessellationControlPerPatchOutputComponents = {}; - uint32_t maxTessellationControlTotalOutputComponents = {}; - uint32_t maxTessellationEvaluationInputComponents = {}; - uint32_t maxTessellationEvaluationOutputComponents = {}; - uint32_t maxGeometryShaderInvocations = {}; - uint32_t maxGeometryInputComponents = {}; - uint32_t maxGeometryOutputComponents = {}; - uint32_t maxGeometryOutputVertices = {}; - uint32_t maxGeometryTotalOutputComponents = {}; - uint32_t maxFragmentInputComponents = {}; - uint32_t maxFragmentOutputAttachments = {}; - uint32_t maxFragmentDualSrcAttachments = {}; - uint32_t maxFragmentCombinedOutputResources = {}; - uint32_t maxComputeSharedMemorySize = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxComputeWorkGroupCount = {}; - uint32_t maxComputeWorkGroupInvocations = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxComputeWorkGroupSize = {}; - uint32_t subPixelPrecisionBits = {}; - uint32_t subTexelPrecisionBits = {}; - uint32_t mipmapPrecisionBits = {}; - uint32_t maxDrawIndexedIndexValue = {}; - uint32_t maxDrawIndirectCount = {}; - float maxSamplerLodBias = {}; - float maxSamplerAnisotropy = {}; - uint32_t maxViewports = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxViewportDimensions = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D viewportBoundsRange = {}; - uint32_t viewportSubPixelBits = {}; - size_t minMemoryMapAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minTexelBufferOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minUniformBufferOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minStorageBufferOffsetAlignment = {}; - int32_t minTexelOffset = {}; - uint32_t maxTexelOffset = {}; - int32_t minTexelGatherOffset = {}; - uint32_t maxTexelGatherOffset = {}; - float minInterpolationOffset = {}; - float maxInterpolationOffset = {}; - uint32_t subPixelInterpolationOffsetBits = {}; - uint32_t maxFramebufferWidth = {}; - uint32_t maxFramebufferHeight = {}; - uint32_t maxFramebufferLayers = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferColorSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferDepthSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferStencilSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferNoAttachmentsSampleCounts = {}; - uint32_t maxColorAttachments = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageColorSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageIntegerSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageDepthSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampledImageStencilSampleCounts = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags storageImageSampleCounts = {}; - uint32_t maxSampleMaskWords = {}; - VULKAN_HPP_NAMESPACE::Bool32 timestampComputeAndGraphics = {}; - float timestampPeriod = {}; - uint32_t maxClipDistances = {}; - uint32_t maxCullDistances = {}; - uint32_t maxCombinedClipAndCullDistances = {}; - uint32_t discreteQueuePriorities = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D pointSizeRange = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D lineWidthRange = {}; - float pointSizeGranularity = {}; - float lineWidthGranularity = {}; - VULKAN_HPP_NAMESPACE::Bool32 strictLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 standardSampleLocations = {}; - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyOffsetAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize optimalBufferCopyRowPitchAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize nonCoherentAtomSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceLimits ) == sizeof( VkPhysicalDeviceLimits ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceSparseProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties(VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict_ = {}) VULKAN_HPP_NOEXCEPT - : residencyStandard2DBlockShape( residencyStandard2DBlockShape_ ), residencyStandard2DMultisampleBlockShape( residencyStandard2DMultisampleBlockShape_ ), residencyStandard3DBlockShape( residencyStandard3DBlockShape_ ), residencyAlignedMipSize( residencyAlignedMipSize_ ), residencyNonResidentStrict( residencyNonResidentStrict_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseProperties( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSparseProperties( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSparseProperties & operator=( VkPhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSparseProperties & operator=( PhysicalDeviceSparseProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSparseProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceSparseProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSparseProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSparseProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( residencyStandard2DBlockShape == rhs.residencyStandard2DBlockShape ) - && ( residencyStandard2DMultisampleBlockShape == rhs.residencyStandard2DMultisampleBlockShape ) - && ( residencyStandard3DBlockShape == rhs.residencyStandard3DBlockShape ) - && ( residencyAlignedMipSize == rhs.residencyAlignedMipSize ) - && ( residencyNonResidentStrict == rhs.residencyNonResidentStrict ); - } - - bool operator!=( PhysicalDeviceSparseProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard2DMultisampleBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyStandard3DBlockShape = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyAlignedMipSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 residencyNonResidentStrict = {}; - - }; - static_assert( sizeof( PhysicalDeviceSparseProperties ) == sizeof( VkPhysicalDeviceSparseProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties(uint32_t apiVersion_ = {}, uint32_t driverVersion_ = {}, uint32_t vendorID_ = {}, uint32_t deviceID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType_ = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther, std::array const& deviceName_ = {}, std::array const& pipelineCacheUUID_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits_ = {}, VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties_ = {}) VULKAN_HPP_NOEXCEPT - : apiVersion( apiVersion_ ), driverVersion( driverVersion_ ), vendorID( vendorID_ ), deviceID( deviceID_ ), deviceType( deviceType_ ), deviceName( deviceName_ ), pipelineCacheUUID( pipelineCacheUUID_ ), limits( limits_ ), sparseProperties( sparseProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProperties( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceProperties & operator=( VkPhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceProperties & operator=( PhysicalDeviceProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( apiVersion == rhs.apiVersion ) - && ( driverVersion == rhs.driverVersion ) - && ( vendorID == rhs.vendorID ) - && ( deviceID == rhs.deviceID ) - && ( deviceType == rhs.deviceType ) - && ( deviceName == rhs.deviceName ) - && ( pipelineCacheUUID == rhs.pipelineCacheUUID ) - && ( limits == rhs.limits ) - && ( sparseProperties == rhs.sparseProperties ); - } - - bool operator!=( PhysicalDeviceProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t apiVersion = {}; - uint32_t driverVersion = {}; - uint32_t vendorID = {}; - uint32_t deviceID = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceType deviceType = VULKAN_HPP_NAMESPACE::PhysicalDeviceType::eOther; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D pipelineCacheUUID = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits limits = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties sparseProperties = {}; - - }; - static_assert( sizeof( PhysicalDeviceProperties ) == sizeof( VkPhysicalDeviceProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PhysicalDeviceProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties_ = {}) VULKAN_HPP_NOEXCEPT - : properties( properties_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceProperties2( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProperties2( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceProperties2 & operator=( VkPhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceProperties2 & operator=( PhysicalDeviceProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceProperties2 ) ); - return *this; - } - - - operator VkPhysicalDeviceProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProperties2 const& ) const = default; -#else - bool operator==( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( properties == rhs.properties ); - } - - bool operator!=( PhysicalDeviceProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties = {}; - - }; - static_assert( sizeof( PhysicalDeviceProperties2 ) == sizeof( VkPhysicalDeviceProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceProperties2; - }; - using PhysicalDeviceProperties2KHR = PhysicalDeviceProperties2; - - struct QueryPoolPerformanceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR(uint32_t queueFamilyIndex_ = {}, uint32_t counterIndexCount_ = {}, const uint32_t* pCounterIndices_ = {}) VULKAN_HPP_NOEXCEPT - : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( counterIndexCount_ ), pCounterIndices( pCounterIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceCreateInfoKHR( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolPerformanceCreateInfoKHR( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - QueryPoolPerformanceCreateInfoKHR( uint32_t queueFamilyIndex_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & counterIndices_ ) - : queueFamilyIndex( queueFamilyIndex_ ), counterIndexCount( static_cast( counterIndices_.size() ) ), pCounterIndices( counterIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - QueryPoolPerformanceCreateInfoKHR & operator=( VkQueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & operator=( QueryPoolPerformanceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( QueryPoolPerformanceCreateInfoKHR ) ); - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setQueueFamilyIndex( uint32_t queueFamilyIndex_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndex = queueFamilyIndex_; - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setCounterIndexCount( uint32_t counterIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - counterIndexCount = counterIndexCount_; - return *this; - } - - QueryPoolPerformanceCreateInfoKHR & setPCounterIndices( const uint32_t* pCounterIndices_ ) VULKAN_HPP_NOEXCEPT - { - pCounterIndices = pCounterIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - QueryPoolPerformanceCreateInfoKHR & setCounterIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & counterIndices_ ) VULKAN_HPP_NOEXCEPT - { - counterIndexCount = static_cast( counterIndices_.size() ); - pCounterIndices = counterIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkQueryPoolPerformanceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueryPoolPerformanceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPoolPerformanceCreateInfoKHR const& ) const = default; -#else - bool operator==( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( queueFamilyIndex == rhs.queueFamilyIndex ) - && ( counterIndexCount == rhs.counterIndexCount ) - && ( pCounterIndices == rhs.pCounterIndices ); - } - - bool operator!=( QueryPoolPerformanceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceCreateInfoKHR; - const void* pNext = {}; - uint32_t queueFamilyIndex = {}; - uint32_t counterIndexCount = {}; - const uint32_t* pCounterIndices = {}; - - }; - static_assert( sizeof( QueryPoolPerformanceCreateInfoKHR ) == sizeof( VkQueryPoolPerformanceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueryPoolPerformanceCreateInfoKHR; - }; - - struct QueueFamilyProperties - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueueFamilyProperties(VULKAN_HPP_NAMESPACE::QueueFlags queueFlags_ = {}, uint32_t queueCount_ = {}, uint32_t timestampValidBits_ = {}, VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity_ = {}) VULKAN_HPP_NOEXCEPT - : queueFlags( queueFlags_ ), queueCount( queueCount_ ), timestampValidBits( timestampValidBits_ ), minImageTransferGranularity( minImageTransferGranularity_ ) - {} - - VULKAN_HPP_CONSTEXPR QueueFamilyProperties( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyProperties( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - QueueFamilyProperties & operator=( VkQueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueueFamilyProperties & operator=( QueueFamilyProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( QueueFamilyProperties ) ); - return *this; - } - - - operator VkQueueFamilyProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueueFamilyProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueueFamilyProperties const& ) const = default; -#else - bool operator==( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( queueFlags == rhs.queueFlags ) - && ( queueCount == rhs.queueCount ) - && ( timestampValidBits == rhs.timestampValidBits ) - && ( minImageTransferGranularity == rhs.minImageTransferGranularity ); - } - - bool operator!=( QueueFamilyProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::QueueFlags queueFlags = {}; - uint32_t queueCount = {}; - uint32_t timestampValidBits = {}; - VULKAN_HPP_NAMESPACE::Extent3D minImageTransferGranularity = {}; - - }; - static_assert( sizeof( QueueFamilyProperties ) == sizeof( VkQueueFamilyProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct QueueFamilyProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueueFamilyProperties2(VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties_ = {}) VULKAN_HPP_NOEXCEPT - : queueFamilyProperties( queueFamilyProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR QueueFamilyProperties2( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyProperties2( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - QueueFamilyProperties2 & operator=( VkQueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueueFamilyProperties2 & operator=( QueueFamilyProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( QueueFamilyProperties2 ) ); - return *this; - } - - - operator VkQueueFamilyProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueueFamilyProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueueFamilyProperties2 const& ) const = default; -#else - bool operator==( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( queueFamilyProperties == rhs.queueFamilyProperties ); - } - - bool operator!=( QueueFamilyProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueueFamilyProperties queueFamilyProperties = {}; - - }; - static_assert( sizeof( QueueFamilyProperties2 ) == sizeof( VkQueueFamilyProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueueFamilyProperties2; - }; - using QueueFamilyProperties2KHR = QueueFamilyProperties2; - - struct PhysicalDeviceSparseImageFormatInfo2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSparseImageFormatInfo2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ImageType type_ = VULKAN_HPP_NAMESPACE::ImageType::e1D, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, VULKAN_HPP_NAMESPACE::ImageTiling tiling_ = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal) VULKAN_HPP_NOEXCEPT - : format( format_ ), type( type_ ), samples( samples_ ), usage( usage_ ), tiling( tiling_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSparseImageFormatInfo2( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSparseImageFormatInfo2( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSparseImageFormatInfo2 & operator=( VkPhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & operator=( PhysicalDeviceSparseImageFormatInfo2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSparseImageFormatInfo2 ) ); - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setType( VULKAN_HPP_NAMESPACE::ImageType type_ ) VULKAN_HPP_NOEXCEPT - { - type = type_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setSamples( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples_ ) VULKAN_HPP_NOEXCEPT - { - samples = samples_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - PhysicalDeviceSparseImageFormatInfo2 & setTiling( VULKAN_HPP_NAMESPACE::ImageTiling tiling_ ) VULKAN_HPP_NOEXCEPT - { - tiling = tiling_; - return *this; - } - - - operator VkPhysicalDeviceSparseImageFormatInfo2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSparseImageFormatInfo2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSparseImageFormatInfo2 const& ) const = default; -#else - bool operator==( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( format == rhs.format ) - && ( type == rhs.type ) - && ( samples == rhs.samples ) - && ( usage == rhs.usage ) - && ( tiling == rhs.tiling ); - } - - bool operator!=( PhysicalDeviceSparseImageFormatInfo2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSparseImageFormatInfo2; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ImageType type = VULKAN_HPP_NAMESPACE::ImageType::e1D; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - VULKAN_HPP_NAMESPACE::ImageTiling tiling = VULKAN_HPP_NAMESPACE::ImageTiling::eOptimal; - - }; - static_assert( sizeof( PhysicalDeviceSparseImageFormatInfo2 ) == sizeof( VkPhysicalDeviceSparseImageFormatInfo2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSparseImageFormatInfo2; - }; - using PhysicalDeviceSparseImageFormatInfo2KHR = PhysicalDeviceSparseImageFormatInfo2; - - struct SparseImageFormatProperties2 - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSparseImageFormatProperties2; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2(VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties_ = {}) VULKAN_HPP_NOEXCEPT - : properties( properties_ ) - {} - - VULKAN_HPP_CONSTEXPR SparseImageFormatProperties2( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SparseImageFormatProperties2( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SparseImageFormatProperties2 & operator=( VkSparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SparseImageFormatProperties2 & operator=( SparseImageFormatProperties2 const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SparseImageFormatProperties2 ) ); - return *this; - } - - - operator VkSparseImageFormatProperties2 const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSparseImageFormatProperties2 &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SparseImageFormatProperties2 const& ) const = default; -#else - bool operator==( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( properties == rhs.properties ); - } - - bool operator!=( SparseImageFormatProperties2 const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSparseImageFormatProperties2; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SparseImageFormatProperties properties = {}; - - }; - static_assert( sizeof( SparseImageFormatProperties2 ) == sizeof( VkSparseImageFormatProperties2 ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SparseImageFormatProperties2; - }; - using SparseImageFormatProperties2KHR = SparseImageFormatProperties2; - - struct FramebufferMixedSamplesCombinationNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferMixedSamplesCombinationNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV(VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge, VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples_ = {}) VULKAN_HPP_NOEXCEPT - : coverageReductionMode( coverageReductionMode_ ), rasterizationSamples( rasterizationSamples_ ), depthStencilSamples( depthStencilSamples_ ), colorSamples( colorSamples_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferMixedSamplesCombinationNV( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferMixedSamplesCombinationNV( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FramebufferMixedSamplesCombinationNV & operator=( VkFramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FramebufferMixedSamplesCombinationNV & operator=( FramebufferMixedSamplesCombinationNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FramebufferMixedSamplesCombinationNV ) ); - return *this; - } - - - operator VkFramebufferMixedSamplesCombinationNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferMixedSamplesCombinationNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferMixedSamplesCombinationNV const& ) const = default; -#else - bool operator==( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( coverageReductionMode == rhs.coverageReductionMode ) - && ( rasterizationSamples == rhs.rasterizationSamples ) - && ( depthStencilSamples == rhs.depthStencilSamples ) - && ( colorSamples == rhs.colorSamples ); - } - - bool operator!=( FramebufferMixedSamplesCombinationNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferMixedSamplesCombinationNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::SampleCountFlags depthStencilSamples = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags colorSamples = {}; - - }; - static_assert( sizeof( FramebufferMixedSamplesCombinationNV ) == sizeof( VkFramebufferMixedSamplesCombinationNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferMixedSamplesCombinationNV; - }; - - struct SurfaceCapabilities2EXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2EXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT - : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ), supportedSurfaceCounters( supportedSurfaceCounters_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2EXT( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilities2EXT( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceCapabilities2EXT & operator=( VkSurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceCapabilities2EXT & operator=( SurfaceCapabilities2EXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceCapabilities2EXT ) ); - return *this; - } - - - operator VkSurfaceCapabilities2EXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilities2EXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilities2EXT const& ) const = default; -#else - bool operator==( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minImageCount == rhs.minImageCount ) - && ( maxImageCount == rhs.maxImageCount ) - && ( currentExtent == rhs.currentExtent ) - && ( minImageExtent == rhs.minImageExtent ) - && ( maxImageExtent == rhs.maxImageExtent ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( currentTransform == rhs.currentTransform ) - && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) - && ( supportedUsageFlags == rhs.supportedUsageFlags ) - && ( supportedSurfaceCounters == rhs.supportedSurfaceCounters ); - } - - bool operator!=( SurfaceCapabilities2EXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2EXT; - void* pNext = {}; - uint32_t minImageCount = {}; - uint32_t maxImageCount = {}; - VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; - uint32_t maxImageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; - VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT supportedSurfaceCounters = {}; - - }; - static_assert( sizeof( SurfaceCapabilities2EXT ) == sizeof( VkSurfaceCapabilities2EXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceCapabilities2EXT; - }; - - struct SurfaceCapabilitiesKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR(uint32_t minImageCount_ = {}, uint32_t maxImageCount_ = {}, VULKAN_HPP_NAMESPACE::Extent2D currentExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D minImageExtent_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent_ = {}, uint32_t maxImageArrayLayers_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT - : minImageCount( minImageCount_ ), maxImageCount( maxImageCount_ ), currentExtent( currentExtent_ ), minImageExtent( minImageExtent_ ), maxImageExtent( maxImageExtent_ ), maxImageArrayLayers( maxImageArrayLayers_ ), supportedTransforms( supportedTransforms_ ), currentTransform( currentTransform_ ), supportedCompositeAlpha( supportedCompositeAlpha_ ), supportedUsageFlags( supportedUsageFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesKHR( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilitiesKHR( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceCapabilitiesKHR & operator=( VkSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceCapabilitiesKHR & operator=( SurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceCapabilitiesKHR ) ); - return *this; - } - - - operator VkSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilitiesKHR const& ) const = default; -#else - bool operator==( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( minImageCount == rhs.minImageCount ) - && ( maxImageCount == rhs.maxImageCount ) - && ( currentExtent == rhs.currentExtent ) - && ( minImageExtent == rhs.minImageExtent ) - && ( maxImageExtent == rhs.maxImageExtent ) - && ( maxImageArrayLayers == rhs.maxImageArrayLayers ) - && ( supportedTransforms == rhs.supportedTransforms ) - && ( currentTransform == rhs.currentTransform ) - && ( supportedCompositeAlpha == rhs.supportedCompositeAlpha ) - && ( supportedUsageFlags == rhs.supportedUsageFlags ); - } - - bool operator!=( SurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t minImageCount = {}; - uint32_t maxImageCount = {}; - VULKAN_HPP_NAMESPACE::Extent2D currentExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D minImageExtent = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxImageExtent = {}; - uint32_t maxImageArrayLayers = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagsKHR supportedTransforms = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR currentTransform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - VULKAN_HPP_NAMESPACE::CompositeAlphaFlagsKHR supportedCompositeAlpha = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags supportedUsageFlags = {}; - - }; - static_assert( sizeof( SurfaceCapabilitiesKHR ) == sizeof( VkSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SurfaceCapabilities2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilities2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR(VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities_ = {}) VULKAN_HPP_NOEXCEPT - : surfaceCapabilities( surfaceCapabilities_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilities2KHR( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilities2KHR( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceCapabilities2KHR & operator=( VkSurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceCapabilities2KHR & operator=( SurfaceCapabilities2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceCapabilities2KHR ) ); - return *this; - } - - - operator VkSurfaceCapabilities2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilities2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilities2KHR const& ) const = default; -#else - bool operator==( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceCapabilities == rhs.surfaceCapabilities ); - } - - bool operator!=( SurfaceCapabilities2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilities2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities = {}; - - }; - static_assert( sizeof( SurfaceCapabilities2KHR ) == sizeof( VkSurfaceCapabilities2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceCapabilities2KHR; - }; - - struct SurfaceFormatKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFormatKHR(VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined, VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace_ = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear) VULKAN_HPP_NOEXCEPT - : format( format_ ), colorSpace( colorSpace_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFormatKHR( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFormatKHR( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceFormatKHR & operator=( VkSurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceFormatKHR & operator=( SurfaceFormatKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceFormatKHR ) ); - return *this; - } - - - operator VkSurfaceFormatKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFormatKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFormatKHR const& ) const = default; -#else - bool operator==( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( format == rhs.format ) - && ( colorSpace == rhs.colorSpace ); - } - - bool operator!=( SurfaceFormatKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - VULKAN_HPP_NAMESPACE::ColorSpaceKHR colorSpace = VULKAN_HPP_NAMESPACE::ColorSpaceKHR::eSrgbNonlinear; - - }; - static_assert( sizeof( SurfaceFormatKHR ) == sizeof( VkSurfaceFormatKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SurfaceFormat2KHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFormat2KHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR(VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat_ = {}) VULKAN_HPP_NOEXCEPT - : surfaceFormat( surfaceFormat_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFormat2KHR( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFormat2KHR( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceFormat2KHR & operator=( VkSurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceFormat2KHR & operator=( SurfaceFormat2KHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceFormat2KHR ) ); - return *this; - } - - - operator VkSurfaceFormat2KHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFormat2KHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFormat2KHR const& ) const = default; -#else - bool operator==( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceFormat == rhs.surfaceFormat ); - } - - bool operator!=( SurfaceFormat2KHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFormat2KHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceFormatKHR surfaceFormat = {}; - - }; - static_assert( sizeof( SurfaceFormat2KHR ) == sizeof( VkSurfaceFormat2KHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceFormat2KHR; - }; - - struct PhysicalDeviceToolPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceToolPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT(std::array const& name_ = {}, std::array const& version_ = {}, VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes_ = {}, std::array const& description_ = {}, std::array const& layer_ = {}) VULKAN_HPP_NOEXCEPT - : name( name_ ), version( version_ ), purposes( purposes_ ), description( description_ ), layer( layer_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceToolPropertiesEXT( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceToolPropertiesEXT( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceToolPropertiesEXT & operator=( VkPhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceToolPropertiesEXT & operator=( PhysicalDeviceToolPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceToolPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceToolPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceToolPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceToolPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( name == rhs.name ) - && ( version == rhs.version ) - && ( purposes == rhs.purposes ) - && ( description == rhs.description ) - && ( layer == rhs.layer ); - } - - bool operator!=( PhysicalDeviceToolPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceToolPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D name = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D version = {}; - VULKAN_HPP_NAMESPACE::ToolPurposeFlagsEXT purposes = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D description = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D layer = {}; - - }; - static_assert( sizeof( PhysicalDeviceToolPropertiesEXT ) == sizeof( VkPhysicalDeviceToolPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceToolPropertiesEXT; - }; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDevice = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class PhysicalDevice - { - public: - using CType = VkPhysicalDevice; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::ePhysicalDevice; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::ePhysicalDevice; - - public: - VULKAN_HPP_CONSTEXPR PhysicalDevice() VULKAN_HPP_NOEXCEPT - : m_physicalDevice(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_physicalDevice(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT PhysicalDevice( VkPhysicalDevice physicalDevice ) VULKAN_HPP_NOEXCEPT - : m_physicalDevice( physicalDevice ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - PhysicalDevice & operator=(VkPhysicalDevice physicalDevice) VULKAN_HPP_NOEXCEPT - { - m_physicalDevice = physicalDevice; - return *this; - } -#endif - - PhysicalDevice & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_physicalDevice = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice const& ) const = default; -#else - bool operator==( PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice == rhs.m_physicalDevice; - } - - bool operator!=(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice != rhs.m_physicalDevice; - } - - bool operator<(PhysicalDevice const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice < rhs.m_physicalDevice; - } -#endif - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD Result acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD Result acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - - template - VULKAN_HPP_NODISCARD Result createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDevice( const DeviceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDeviceUnique( const DeviceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Allocator const& vectorAllocator, Dispatch const &d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename PerformanceCounterDescriptionKHRAllocator = std::allocator, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType, std::vector>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename PerformanceCounterDescriptionKHRAllocator = std::allocator, typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B1 = PerformanceCounterKHRAllocator, typename B2 = PerformanceCounterDescriptionKHRAllocator, typename std::enable_if::value && std::is_same::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType, std::vector>>::type enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModeProperties2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayModePropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCalibrateableTimeDomainsEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = TimeDomainEXTAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCooperativeMatrixPropertiesNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = CooperativeMatrixPropertiesNVAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlaneProperties2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlanePropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPlanePropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayProperties2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPropertiesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = DisplayPropertiesKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalBufferProperties getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalFenceProperties getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures getFeatures( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFeatures2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFeatures2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::FormatProperties2 getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getFragmentShadingRatesKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceFragmentShadingRateKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties getMemoryProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getMemoryProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getMemoryProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = Rect2DAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties getProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; - template - VULKAN_HPP_NODISCARD StructureChain getProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD uint32_t getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = QueueFamilyProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = StructureChainAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - void getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SparseImageFormatProperties2Allocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD std::vector getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = FramebufferMixedSamplesCombinationNVAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType>::type getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormat2KHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = SurfaceFormatKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PresentModeKHRAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getToolPropertiesEXT( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceToolPropertiesEXTAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - Bool32 getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Bool32 getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD Result getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result getWinrtDisplayNV( uint32_t deviceRelativeId, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - Result releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#else - template - typename ResultValueType::type releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkPhysicalDevice() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_physicalDevice == VK_NULL_HANDLE; - } - - private: - VkPhysicalDevice m_physicalDevice; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::PhysicalDevice ) == sizeof( VkPhysicalDevice ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::PhysicalDevice; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::PhysicalDevice; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - struct DeviceGroupDeviceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupDeviceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo(uint32_t physicalDeviceCount_ = {}, const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ = {}) VULKAN_HPP_NOEXCEPT - : physicalDeviceCount( physicalDeviceCount_ ), pPhysicalDevices( pPhysicalDevices_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupDeviceCreateInfo( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupDeviceCreateInfo( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupDeviceCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & physicalDevices_ ) - : physicalDeviceCount( static_cast( physicalDevices_.size() ) ), pPhysicalDevices( physicalDevices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupDeviceCreateInfo & operator=( VkDeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupDeviceCreateInfo & operator=( DeviceGroupDeviceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupDeviceCreateInfo ) ); - return *this; - } - - DeviceGroupDeviceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupDeviceCreateInfo & setPhysicalDeviceCount( uint32_t physicalDeviceCount_ ) VULKAN_HPP_NOEXCEPT - { - physicalDeviceCount = physicalDeviceCount_; - return *this; - } - - DeviceGroupDeviceCreateInfo & setPPhysicalDevices( const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices_ ) VULKAN_HPP_NOEXCEPT - { - pPhysicalDevices = pPhysicalDevices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupDeviceCreateInfo & setPhysicalDevices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & physicalDevices_ ) VULKAN_HPP_NOEXCEPT - { - physicalDeviceCount = static_cast( physicalDevices_.size() ); - pPhysicalDevices = physicalDevices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceGroupDeviceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupDeviceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupDeviceCreateInfo const& ) const = default; -#else - bool operator==( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( physicalDeviceCount == rhs.physicalDeviceCount ) - && ( pPhysicalDevices == rhs.pPhysicalDevices ); - } - - bool operator!=( DeviceGroupDeviceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupDeviceCreateInfo; - const void* pNext = {}; - uint32_t physicalDeviceCount = {}; - const VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices = {}; - - }; - static_assert( sizeof( DeviceGroupDeviceCreateInfo ) == sizeof( VkDeviceGroupDeviceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupDeviceCreateInfo; - }; - using DeviceGroupDeviceCreateInfoKHR = DeviceGroupDeviceCreateInfo; - - struct DeviceGroupPresentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupPresentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR(uint32_t swapchainCount_ = {}, const uint32_t* pDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ), pDeviceMasks( pDeviceMasks_ ), mode( mode_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupPresentInfoKHR( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupPresentInfoKHR( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupPresentInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceMasks_, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal ) - : swapchainCount( static_cast( deviceMasks_.size() ) ), pDeviceMasks( deviceMasks_.data() ), mode( mode_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupPresentInfoKHR & operator=( VkDeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupPresentInfoKHR & operator=( DeviceGroupPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupPresentInfoKHR ) ); - return *this; - } - - DeviceGroupPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupPresentInfoKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - DeviceGroupPresentInfoKHR & setPDeviceMasks( const uint32_t* pDeviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceMasks = pDeviceMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupPresentInfoKHR & setDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( deviceMasks_.size() ); - pDeviceMasks = deviceMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceGroupPresentInfoKHR & setMode( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode_ ) VULKAN_HPP_NOEXCEPT - { - mode = mode_; - return *this; - } - - - operator VkDeviceGroupPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupPresentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupPresentInfoKHR const& ) const = default; -#else - bool operator==( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pDeviceMasks == rhs.pDeviceMasks ) - && ( mode == rhs.mode ); - } - - bool operator!=( DeviceGroupPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupPresentInfoKHR; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const uint32_t* pDeviceMasks = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR mode = VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagBitsKHR::eLocal; - - }; - static_assert( sizeof( DeviceGroupPresentInfoKHR ) == sizeof( VkDeviceGroupPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupPresentInfoKHR; - }; - - struct DeviceGroupRenderPassBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupRenderPassBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo(uint32_t deviceMask_ = {}, uint32_t deviceRenderAreaCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ = {}) VULKAN_HPP_NOEXCEPT - : deviceMask( deviceMask_ ), deviceRenderAreaCount( deviceRenderAreaCount_ ), pDeviceRenderAreas( pDeviceRenderAreas_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupRenderPassBeginInfo( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupRenderPassBeginInfo( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupRenderPassBeginInfo( uint32_t deviceMask_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceRenderAreas_ ) - : deviceMask( deviceMask_ ), deviceRenderAreaCount( static_cast( deviceRenderAreas_.size() ) ), pDeviceRenderAreas( deviceRenderAreas_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupRenderPassBeginInfo & operator=( VkDeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupRenderPassBeginInfo & operator=( DeviceGroupRenderPassBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupRenderPassBeginInfo ) ); - return *this; - } - - DeviceGroupRenderPassBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupRenderPassBeginInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - DeviceGroupRenderPassBeginInfo & setDeviceRenderAreaCount( uint32_t deviceRenderAreaCount_ ) VULKAN_HPP_NOEXCEPT - { - deviceRenderAreaCount = deviceRenderAreaCount_; - return *this; - } - - DeviceGroupRenderPassBeginInfo & setPDeviceRenderAreas( const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT - { - pDeviceRenderAreas = pDeviceRenderAreas_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupRenderPassBeginInfo & setDeviceRenderAreas( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & deviceRenderAreas_ ) VULKAN_HPP_NOEXCEPT - { - deviceRenderAreaCount = static_cast( deviceRenderAreas_.size() ); - pDeviceRenderAreas = deviceRenderAreas_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceGroupRenderPassBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupRenderPassBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupRenderPassBeginInfo const& ) const = default; -#else - bool operator==( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMask == rhs.deviceMask ) - && ( deviceRenderAreaCount == rhs.deviceRenderAreaCount ) - && ( pDeviceRenderAreas == rhs.pDeviceRenderAreas ); - } - - bool operator!=( DeviceGroupRenderPassBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupRenderPassBeginInfo; - const void* pNext = {}; - uint32_t deviceMask = {}; - uint32_t deviceRenderAreaCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pDeviceRenderAreas = {}; - - }; - static_assert( sizeof( DeviceGroupRenderPassBeginInfo ) == sizeof( VkDeviceGroupRenderPassBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupRenderPassBeginInfo; - }; - using DeviceGroupRenderPassBeginInfoKHR = DeviceGroupRenderPassBeginInfo; - - struct DeviceGroupSubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo(uint32_t waitSemaphoreCount_ = {}, const uint32_t* pWaitSemaphoreDeviceIndices_ = {}, uint32_t commandBufferCount_ = {}, const uint32_t* pCommandBufferDeviceMasks_ = {}, uint32_t signalSemaphoreCount_ = {}, const uint32_t* pSignalSemaphoreDeviceIndices_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreCount( waitSemaphoreCount_ ), pWaitSemaphoreDeviceIndices( pWaitSemaphoreDeviceIndices_ ), commandBufferCount( commandBufferCount_ ), pCommandBufferDeviceMasks( pCommandBufferDeviceMasks_ ), signalSemaphoreCount( signalSemaphoreCount_ ), pSignalSemaphoreDeviceIndices( pSignalSemaphoreDeviceIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupSubmitInfo( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupSubmitInfo( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreDeviceIndices_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferDeviceMasks_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreDeviceIndices_ = {} ) - : waitSemaphoreCount( static_cast( waitSemaphoreDeviceIndices_.size() ) ), pWaitSemaphoreDeviceIndices( waitSemaphoreDeviceIndices_.data() ), commandBufferCount( static_cast( commandBufferDeviceMasks_.size() ) ), pCommandBufferDeviceMasks( commandBufferDeviceMasks_.data() ), signalSemaphoreCount( static_cast( signalSemaphoreDeviceIndices_.size() ) ), pSignalSemaphoreDeviceIndices( signalSemaphoreDeviceIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupSubmitInfo & operator=( VkDeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupSubmitInfo & operator=( DeviceGroupSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupSubmitInfo ) ); - return *this; - } - - DeviceGroupSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupSubmitInfo & setWaitSemaphoreCount( uint32_t waitSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = waitSemaphoreCount_; - return *this; - } - - DeviceGroupSubmitInfo & setPWaitSemaphoreDeviceIndices( const uint32_t* pWaitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphoreDeviceIndices = pWaitSemaphoreDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo & setWaitSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreCount = static_cast( waitSemaphoreDeviceIndices_.size() ); - pWaitSemaphoreDeviceIndices = waitSemaphoreDeviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceGroupSubmitInfo & setCommandBufferCount( uint32_t commandBufferCount_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = commandBufferCount_; - return *this; - } - - DeviceGroupSubmitInfo & setPCommandBufferDeviceMasks( const uint32_t* pCommandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - pCommandBufferDeviceMasks = pCommandBufferDeviceMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo & setCommandBufferDeviceMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & commandBufferDeviceMasks_ ) VULKAN_HPP_NOEXCEPT - { - commandBufferCount = static_cast( commandBufferDeviceMasks_.size() ); - pCommandBufferDeviceMasks = commandBufferDeviceMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - DeviceGroupSubmitInfo & setSignalSemaphoreCount( uint32_t signalSemaphoreCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = signalSemaphoreCount_; - return *this; - } - - DeviceGroupSubmitInfo & setPSignalSemaphoreDeviceIndices( const uint32_t* pSignalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphoreDeviceIndices = pSignalSemaphoreDeviceIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DeviceGroupSubmitInfo & setSignalSemaphoreDeviceIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreDeviceIndices_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreCount = static_cast( signalSemaphoreDeviceIndices_.size() ); - pSignalSemaphoreDeviceIndices = signalSemaphoreDeviceIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkDeviceGroupSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupSubmitInfo const& ) const = default; -#else - bool operator==( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreCount == rhs.waitSemaphoreCount ) - && ( pWaitSemaphoreDeviceIndices == rhs.pWaitSemaphoreDeviceIndices ) - && ( commandBufferCount == rhs.commandBufferCount ) - && ( pCommandBufferDeviceMasks == rhs.pCommandBufferDeviceMasks ) - && ( signalSemaphoreCount == rhs.signalSemaphoreCount ) - && ( pSignalSemaphoreDeviceIndices == rhs.pSignalSemaphoreDeviceIndices ); - } - - bool operator!=( DeviceGroupSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreCount = {}; - const uint32_t* pWaitSemaphoreDeviceIndices = {}; - uint32_t commandBufferCount = {}; - const uint32_t* pCommandBufferDeviceMasks = {}; - uint32_t signalSemaphoreCount = {}; - const uint32_t* pSignalSemaphoreDeviceIndices = {}; - - }; - static_assert( sizeof( DeviceGroupSubmitInfo ) == sizeof( VkDeviceGroupSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupSubmitInfo; - }; - using DeviceGroupSubmitInfoKHR = DeviceGroupSubmitInfo; - - struct DeviceGroupSwapchainCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceGroupSwapchainCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ = {}) VULKAN_HPP_NOEXCEPT - : modes( modes_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceGroupSwapchainCreateInfoKHR( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceGroupSwapchainCreateInfoKHR( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceGroupSwapchainCreateInfoKHR & operator=( VkDeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceGroupSwapchainCreateInfoKHR & operator=( DeviceGroupSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceGroupSwapchainCreateInfoKHR ) ); - return *this; - } - - DeviceGroupSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceGroupSwapchainCreateInfoKHR & setModes( VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes_ ) VULKAN_HPP_NOEXCEPT - { - modes = modes_; - return *this; - } - - - operator VkDeviceGroupSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceGroupSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceGroupSwapchainCreateInfoKHR const& ) const = default; -#else - bool operator==( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( modes == rhs.modes ); - } - - bool operator!=( DeviceGroupSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceGroupSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes = {}; - - }; - static_assert( sizeof( DeviceGroupSwapchainCreateInfoKHR ) == sizeof( VkDeviceGroupSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceGroupSwapchainCreateInfoKHR; - }; - - struct DeviceMemoryOverallocationCreateInfoAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD(VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault) VULKAN_HPP_NOEXCEPT - : overallocationBehavior( overallocationBehavior_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemoryOverallocationCreateInfoAMD( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryOverallocationCreateInfoAMD( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceMemoryOverallocationCreateInfoAMD & operator=( VkDeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceMemoryOverallocationCreateInfoAMD & operator=( DeviceMemoryOverallocationCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceMemoryOverallocationCreateInfoAMD ) ); - return *this; - } - - DeviceMemoryOverallocationCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceMemoryOverallocationCreateInfoAMD & setOverallocationBehavior( VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior_ ) VULKAN_HPP_NOEXCEPT - { - overallocationBehavior = overallocationBehavior_; - return *this; - } - - - operator VkDeviceMemoryOverallocationCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceMemoryOverallocationCreateInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemoryOverallocationCreateInfoAMD const& ) const = default; -#else - bool operator==( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( overallocationBehavior == rhs.overallocationBehavior ); - } - - bool operator!=( DeviceMemoryOverallocationCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryOverallocationCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD overallocationBehavior = VULKAN_HPP_NAMESPACE::MemoryOverallocationBehaviorAMD::eDefault; - - }; - static_assert( sizeof( DeviceMemoryOverallocationCreateInfoAMD ) == sizeof( VkDeviceMemoryOverallocationCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceMemoryOverallocationCreateInfoAMD; - }; - - struct DeviceMemoryReportCallbackDataEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceMemoryReportCallbackDataEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT(VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type_ = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate, uint64_t memoryObjectId_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize size_ = {}, VULKAN_HPP_NAMESPACE::ObjectType objectType_ = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown, uint64_t objectHandle_ = {}, uint32_t heapIndex_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), type( type_ ), memoryObjectId( memoryObjectId_ ), size( size_ ), objectType( objectType_ ), objectHandle( objectHandle_ ), heapIndex( heapIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceMemoryReportCallbackDataEXT( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceMemoryReportCallbackDataEXT( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceMemoryReportCallbackDataEXT & operator=( VkDeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceMemoryReportCallbackDataEXT & operator=( DeviceMemoryReportCallbackDataEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceMemoryReportCallbackDataEXT ) ); - return *this; - } - - - operator VkDeviceMemoryReportCallbackDataEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceMemoryReportCallbackDataEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceMemoryReportCallbackDataEXT const& ) const = default; -#else - bool operator==( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( type == rhs.type ) - && ( memoryObjectId == rhs.memoryObjectId ) - && ( size == rhs.size ) - && ( objectType == rhs.objectType ) - && ( objectHandle == rhs.objectHandle ) - && ( heapIndex == rhs.heapIndex ); - } - - bool operator!=( DeviceMemoryReportCallbackDataEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceMemoryReportCallbackDataEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceMemoryReportFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT type = VULKAN_HPP_NAMESPACE::DeviceMemoryReportEventTypeEXT::eAllocate; - uint64_t memoryObjectId = {}; - VULKAN_HPP_NAMESPACE::DeviceSize size = {}; - VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eUnknown; - uint64_t objectHandle = {}; - uint32_t heapIndex = {}; - - }; - static_assert( sizeof( DeviceMemoryReportCallbackDataEXT ) == sizeof( VkDeviceMemoryReportCallbackDataEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceMemoryReportCallbackDataEXT; - }; - - struct DevicePrivateDataCreateInfoEXT - { - static const bool allowDuplicate = true; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDevicePrivateDataCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT(uint32_t privateDataSlotRequestCount_ = {}) VULKAN_HPP_NOEXCEPT - : privateDataSlotRequestCount( privateDataSlotRequestCount_ ) - {} - - VULKAN_HPP_CONSTEXPR DevicePrivateDataCreateInfoEXT( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DevicePrivateDataCreateInfoEXT( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DevicePrivateDataCreateInfoEXT & operator=( VkDevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DevicePrivateDataCreateInfoEXT & operator=( DevicePrivateDataCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DevicePrivateDataCreateInfoEXT ) ); - return *this; - } - - DevicePrivateDataCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DevicePrivateDataCreateInfoEXT & setPrivateDataSlotRequestCount( uint32_t privateDataSlotRequestCount_ ) VULKAN_HPP_NOEXCEPT - { - privateDataSlotRequestCount = privateDataSlotRequestCount_; - return *this; - } - - - operator VkDevicePrivateDataCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDevicePrivateDataCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DevicePrivateDataCreateInfoEXT const& ) const = default; -#else - bool operator==( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( privateDataSlotRequestCount == rhs.privateDataSlotRequestCount ); - } - - bool operator!=( DevicePrivateDataCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDevicePrivateDataCreateInfoEXT; - const void* pNext = {}; - uint32_t privateDataSlotRequestCount = {}; - - }; - static_assert( sizeof( DevicePrivateDataCreateInfoEXT ) == sizeof( VkDevicePrivateDataCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DevicePrivateDataCreateInfoEXT; - }; - - struct DeviceQueueGlobalPriorityCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT(VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow) VULKAN_HPP_NOEXCEPT - : globalPriority( globalPriority_ ) - {} - - VULKAN_HPP_CONSTEXPR DeviceQueueGlobalPriorityCreateInfoEXT( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DeviceQueueGlobalPriorityCreateInfoEXT( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DeviceQueueGlobalPriorityCreateInfoEXT & operator=( VkDeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DeviceQueueGlobalPriorityCreateInfoEXT & operator=( DeviceQueueGlobalPriorityCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) ); - return *this; - } - - DeviceQueueGlobalPriorityCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DeviceQueueGlobalPriorityCreateInfoEXT & setGlobalPriority( VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority_ ) VULKAN_HPP_NOEXCEPT - { - globalPriority = globalPriority_; - return *this; - } - - - operator VkDeviceQueueGlobalPriorityCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDeviceQueueGlobalPriorityCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DeviceQueueGlobalPriorityCreateInfoEXT const& ) const = default; -#else - bool operator==( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( globalPriority == rhs.globalPriority ); - } - - bool operator!=( DeviceQueueGlobalPriorityCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDeviceQueueGlobalPriorityCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT globalPriority = VULKAN_HPP_NAMESPACE::QueueGlobalPriorityEXT::eLow; - - }; - static_assert( sizeof( DeviceQueueGlobalPriorityCreateInfoEXT ) == sizeof( VkDeviceQueueGlobalPriorityCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DeviceQueueGlobalPriorityCreateInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - struct DirectFBSurfaceCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDirectfbSurfaceCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ = {}, IDirectFB* dfb_ = {}, IDirectFBSurface* surface_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), dfb( dfb_ ), surface( surface_ ) - {} - - VULKAN_HPP_CONSTEXPR DirectFBSurfaceCreateInfoEXT( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DirectFBSurfaceCreateInfoEXT( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DirectFBSurfaceCreateInfoEXT & operator=( VkDirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DirectFBSurfaceCreateInfoEXT & operator=( DirectFBSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DirectFBSurfaceCreateInfoEXT ) ); - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setDfb( IDirectFB* dfb_ ) VULKAN_HPP_NOEXCEPT - { - dfb = dfb_; - return *this; - } - - DirectFBSurfaceCreateInfoEXT & setSurface( IDirectFBSurface* surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - - operator VkDirectFBSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDirectFBSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DirectFBSurfaceCreateInfoEXT const& ) const = default; -#else - bool operator==( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dfb == rhs.dfb ) - && ( surface == rhs.surface ); - } - - bool operator!=( DirectFBSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDirectfbSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateFlagsEXT flags = {}; - IDirectFB* dfb = {}; - IDirectFBSurface* surface = {}; - - }; - static_assert( sizeof( DirectFBSurfaceCreateInfoEXT ) == sizeof( VkDirectFBSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DirectFBSurfaceCreateInfoEXT; - }; -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - struct DispatchIndirectCommand - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DispatchIndirectCommand(uint32_t x_ = {}, uint32_t y_ = {}, uint32_t z_ = {}) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), z( z_ ) - {} - - VULKAN_HPP_CONSTEXPR DispatchIndirectCommand( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DispatchIndirectCommand( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DispatchIndirectCommand & operator=( VkDispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DispatchIndirectCommand & operator=( DispatchIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DispatchIndirectCommand ) ); - return *this; - } - - DispatchIndirectCommand & setX( uint32_t x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - DispatchIndirectCommand & setY( uint32_t y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - DispatchIndirectCommand & setZ( uint32_t z_ ) VULKAN_HPP_NOEXCEPT - { - z = z_; - return *this; - } - - - operator VkDispatchIndirectCommand const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDispatchIndirectCommand &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DispatchIndirectCommand const& ) const = default; -#else - bool operator==( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ); - } - - bool operator!=( DispatchIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t x = {}; - uint32_t y = {}; - uint32_t z = {}; - - }; - static_assert( sizeof( DispatchIndirectCommand ) == sizeof( VkDispatchIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DisplayNativeHdrSurfaceCapabilitiesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport_ = {}) VULKAN_HPP_NOEXCEPT - : localDimmingSupport( localDimmingSupport_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayNativeHdrSurfaceCapabilitiesAMD( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayNativeHdrSurfaceCapabilitiesAMD( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( VkDisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayNativeHdrSurfaceCapabilitiesAMD & operator=( DisplayNativeHdrSurfaceCapabilitiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) ); - return *this; - } - - - operator VkDisplayNativeHdrSurfaceCapabilitiesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayNativeHdrSurfaceCapabilitiesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayNativeHdrSurfaceCapabilitiesAMD const& ) const = default; -#else - bool operator==( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( localDimmingSupport == rhs.localDimmingSupport ); - } - - bool operator!=( DisplayNativeHdrSurfaceCapabilitiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayNativeHdrSurfaceCapabilitiesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 localDimmingSupport = {}; - - }; - static_assert( sizeof( DisplayNativeHdrSurfaceCapabilitiesAMD ) == sizeof( VkDisplayNativeHdrSurfaceCapabilitiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayNativeHdrSurfaceCapabilitiesAMD; - }; - - struct DisplayPresentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplayPresentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR(VULKAN_HPP_NAMESPACE::Rect2D srcRect_ = {}, VULKAN_HPP_NAMESPACE::Rect2D dstRect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 persistent_ = {}) VULKAN_HPP_NOEXCEPT - : srcRect( srcRect_ ), dstRect( dstRect_ ), persistent( persistent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplayPresentInfoKHR( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplayPresentInfoKHR( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplayPresentInfoKHR & operator=( VkDisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplayPresentInfoKHR & operator=( DisplayPresentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplayPresentInfoKHR ) ); - return *this; - } - - DisplayPresentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplayPresentInfoKHR & setSrcRect( VULKAN_HPP_NAMESPACE::Rect2D const & srcRect_ ) VULKAN_HPP_NOEXCEPT - { - srcRect = srcRect_; - return *this; - } - - DisplayPresentInfoKHR & setDstRect( VULKAN_HPP_NAMESPACE::Rect2D const & dstRect_ ) VULKAN_HPP_NOEXCEPT - { - dstRect = dstRect_; - return *this; - } - - DisplayPresentInfoKHR & setPersistent( VULKAN_HPP_NAMESPACE::Bool32 persistent_ ) VULKAN_HPP_NOEXCEPT - { - persistent = persistent_; - return *this; - } - - - operator VkDisplayPresentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplayPresentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplayPresentInfoKHR const& ) const = default; -#else - bool operator==( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcRect == rhs.srcRect ) - && ( dstRect == rhs.dstRect ) - && ( persistent == rhs.persistent ); - } - - bool operator!=( DisplayPresentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplayPresentInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Rect2D srcRect = {}; - VULKAN_HPP_NAMESPACE::Rect2D dstRect = {}; - VULKAN_HPP_NAMESPACE::Bool32 persistent = {}; - - }; - static_assert( sizeof( DisplayPresentInfoKHR ) == sizeof( VkDisplayPresentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplayPresentInfoKHR; - }; - - struct DisplaySurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDisplaySurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ = {}, VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ = {}, uint32_t planeIndex_ = {}, uint32_t planeStackIndex_ = {}, VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity, float globalAlpha_ = {}, VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque, VULKAN_HPP_NAMESPACE::Extent2D imageExtent_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), displayMode( displayMode_ ), planeIndex( planeIndex_ ), planeStackIndex( planeStackIndex_ ), transform( transform_ ), globalAlpha( globalAlpha_ ), alphaMode( alphaMode_ ), imageExtent( imageExtent_ ) - {} - - VULKAN_HPP_CONSTEXPR DisplaySurfaceCreateInfoKHR( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DisplaySurfaceCreateInfoKHR( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DisplaySurfaceCreateInfoKHR & operator=( VkDisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DisplaySurfaceCreateInfoKHR & operator=( DisplaySurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DisplaySurfaceCreateInfoKHR ) ); - return *this; - } - - DisplaySurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setDisplayMode( VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode_ ) VULKAN_HPP_NOEXCEPT - { - displayMode = displayMode_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setPlaneIndex( uint32_t planeIndex_ ) VULKAN_HPP_NOEXCEPT - { - planeIndex = planeIndex_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setPlaneStackIndex( uint32_t planeStackIndex_ ) VULKAN_HPP_NOEXCEPT - { - planeStackIndex = planeStackIndex_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setGlobalAlpha( float globalAlpha_ ) VULKAN_HPP_NOEXCEPT - { - globalAlpha = globalAlpha_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setAlphaMode( VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode_ ) VULKAN_HPP_NOEXCEPT - { - alphaMode = alphaMode_; - return *this; - } - - DisplaySurfaceCreateInfoKHR & setImageExtent( VULKAN_HPP_NAMESPACE::Extent2D const & imageExtent_ ) VULKAN_HPP_NOEXCEPT - { - imageExtent = imageExtent_; - return *this; - } - - - operator VkDisplaySurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDisplaySurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DisplaySurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( displayMode == rhs.displayMode ) - && ( planeIndex == rhs.planeIndex ) - && ( planeStackIndex == rhs.planeStackIndex ) - && ( transform == rhs.transform ) - && ( globalAlpha == rhs.globalAlpha ) - && ( alphaMode == rhs.alphaMode ) - && ( imageExtent == rhs.imageExtent ); - } - - bool operator!=( DisplaySurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDisplaySurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateFlagsKHR flags = {}; - VULKAN_HPP_NAMESPACE::DisplayModeKHR displayMode = {}; - uint32_t planeIndex = {}; - uint32_t planeStackIndex = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - float globalAlpha = {}; - VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR alphaMode = VULKAN_HPP_NAMESPACE::DisplayPlaneAlphaFlagBitsKHR::eOpaque; - VULKAN_HPP_NAMESPACE::Extent2D imageExtent = {}; - - }; - static_assert( sizeof( DisplaySurfaceCreateInfoKHR ) == sizeof( VkDisplaySurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DisplaySurfaceCreateInfoKHR; - }; - - struct DrawIndexedIndirectCommand - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand(uint32_t indexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstIndex_ = {}, int32_t vertexOffset_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT - : indexCount( indexCount_ ), instanceCount( instanceCount_ ), firstIndex( firstIndex_ ), vertexOffset( vertexOffset_ ), firstInstance( firstInstance_ ) - {} - - VULKAN_HPP_CONSTEXPR DrawIndexedIndirectCommand( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawIndexedIndirectCommand( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DrawIndexedIndirectCommand & operator=( VkDrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrawIndexedIndirectCommand & operator=( DrawIndexedIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DrawIndexedIndirectCommand ) ); - return *this; - } - - DrawIndexedIndirectCommand & setIndexCount( uint32_t indexCount_ ) VULKAN_HPP_NOEXCEPT - { - indexCount = indexCount_; - return *this; - } - - DrawIndexedIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT - { - instanceCount = instanceCount_; - return *this; - } - - DrawIndexedIndirectCommand & setFirstIndex( uint32_t firstIndex_ ) VULKAN_HPP_NOEXCEPT - { - firstIndex = firstIndex_; - return *this; - } - - DrawIndexedIndirectCommand & setVertexOffset( int32_t vertexOffset_ ) VULKAN_HPP_NOEXCEPT - { - vertexOffset = vertexOffset_; - return *this; - } - - DrawIndexedIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT - { - firstInstance = firstInstance_; - return *this; - } - - - operator VkDrawIndexedIndirectCommand const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrawIndexedIndirectCommand &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrawIndexedIndirectCommand const& ) const = default; -#else - bool operator==( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( indexCount == rhs.indexCount ) - && ( instanceCount == rhs.instanceCount ) - && ( firstIndex == rhs.firstIndex ) - && ( vertexOffset == rhs.vertexOffset ) - && ( firstInstance == rhs.firstInstance ); - } - - bool operator!=( DrawIndexedIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t indexCount = {}; - uint32_t instanceCount = {}; - uint32_t firstIndex = {}; - int32_t vertexOffset = {}; - uint32_t firstInstance = {}; - - }; - static_assert( sizeof( DrawIndexedIndirectCommand ) == sizeof( VkDrawIndexedIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrawIndirectCommand - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrawIndirectCommand(uint32_t vertexCount_ = {}, uint32_t instanceCount_ = {}, uint32_t firstVertex_ = {}, uint32_t firstInstance_ = {}) VULKAN_HPP_NOEXCEPT - : vertexCount( vertexCount_ ), instanceCount( instanceCount_ ), firstVertex( firstVertex_ ), firstInstance( firstInstance_ ) - {} - - VULKAN_HPP_CONSTEXPR DrawIndirectCommand( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawIndirectCommand( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DrawIndirectCommand & operator=( VkDrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrawIndirectCommand & operator=( DrawIndirectCommand const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DrawIndirectCommand ) ); - return *this; - } - - DrawIndirectCommand & setVertexCount( uint32_t vertexCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexCount = vertexCount_; - return *this; - } - - DrawIndirectCommand & setInstanceCount( uint32_t instanceCount_ ) VULKAN_HPP_NOEXCEPT - { - instanceCount = instanceCount_; - return *this; - } - - DrawIndirectCommand & setFirstVertex( uint32_t firstVertex_ ) VULKAN_HPP_NOEXCEPT - { - firstVertex = firstVertex_; - return *this; - } - - DrawIndirectCommand & setFirstInstance( uint32_t firstInstance_ ) VULKAN_HPP_NOEXCEPT - { - firstInstance = firstInstance_; - return *this; - } - - - operator VkDrawIndirectCommand const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrawIndirectCommand &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrawIndirectCommand const& ) const = default; -#else - bool operator==( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( vertexCount == rhs.vertexCount ) - && ( instanceCount == rhs.instanceCount ) - && ( firstVertex == rhs.firstVertex ) - && ( firstInstance == rhs.firstInstance ); - } - - bool operator!=( DrawIndirectCommand const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t vertexCount = {}; - uint32_t instanceCount = {}; - uint32_t firstVertex = {}; - uint32_t firstInstance = {}; - - }; - static_assert( sizeof( DrawIndirectCommand ) == sizeof( VkDrawIndirectCommand ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrawMeshTasksIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV(uint32_t taskCount_ = {}, uint32_t firstTask_ = {}) VULKAN_HPP_NOEXCEPT - : taskCount( taskCount_ ), firstTask( firstTask_ ) - {} - - VULKAN_HPP_CONSTEXPR DrawMeshTasksIndirectCommandNV( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrawMeshTasksIndirectCommandNV( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DrawMeshTasksIndirectCommandNV & operator=( VkDrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrawMeshTasksIndirectCommandNV & operator=( DrawMeshTasksIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DrawMeshTasksIndirectCommandNV ) ); - return *this; - } - - DrawMeshTasksIndirectCommandNV & setTaskCount( uint32_t taskCount_ ) VULKAN_HPP_NOEXCEPT - { - taskCount = taskCount_; - return *this; - } - - DrawMeshTasksIndirectCommandNV & setFirstTask( uint32_t firstTask_ ) VULKAN_HPP_NOEXCEPT - { - firstTask = firstTask_; - return *this; - } - - - operator VkDrawMeshTasksIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrawMeshTasksIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrawMeshTasksIndirectCommandNV const& ) const = default; -#else - bool operator==( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( taskCount == rhs.taskCount ) - && ( firstTask == rhs.firstTask ); - } - - bool operator!=( DrawMeshTasksIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t taskCount = {}; - uint32_t firstTask = {}; - - }; - static_assert( sizeof( DrawMeshTasksIndirectCommandNV ) == sizeof( VkDrawMeshTasksIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrmFormatModifierPropertiesEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), drmFormatModifierTilingFeatures( drmFormatModifierTilingFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesEXT( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrmFormatModifierPropertiesEXT( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DrmFormatModifierPropertiesEXT & operator=( VkDrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrmFormatModifierPropertiesEXT & operator=( DrmFormatModifierPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DrmFormatModifierPropertiesEXT ) ); - return *this; - } - - - operator VkDrmFormatModifierPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrmFormatModifierPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrmFormatModifierPropertiesEXT const& ) const = default; -#else - bool operator==( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( drmFormatModifier == rhs.drmFormatModifier ) - && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) - && ( drmFormatModifierTilingFeatures == rhs.drmFormatModifierTilingFeatures ); - } - - bool operator!=( DrmFormatModifierPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint64_t drmFormatModifier = {}; - uint32_t drmFormatModifierPlaneCount = {}; - VULKAN_HPP_NAMESPACE::FormatFeatureFlags drmFormatModifierTilingFeatures = {}; - - }; - static_assert( sizeof( DrmFormatModifierPropertiesEXT ) == sizeof( VkDrmFormatModifierPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct DrmFormatModifierPropertiesListEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eDrmFormatModifierPropertiesListEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT(uint32_t drmFormatModifierCount_ = {}, VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifierProperties( pDrmFormatModifierProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR DrmFormatModifierPropertiesListEXT( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - DrmFormatModifierPropertiesListEXT( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - DrmFormatModifierPropertiesListEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifierProperties_ ) - : drmFormatModifierCount( static_cast( drmFormatModifierProperties_.size() ) ), pDrmFormatModifierProperties( drmFormatModifierProperties_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - DrmFormatModifierPropertiesListEXT & operator=( VkDrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - DrmFormatModifierPropertiesListEXT & operator=( DrmFormatModifierPropertiesListEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( DrmFormatModifierPropertiesListEXT ) ); - return *this; - } - - - operator VkDrmFormatModifierPropertiesListEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkDrmFormatModifierPropertiesListEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DrmFormatModifierPropertiesListEXT const& ) const = default; -#else - bool operator==( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) - && ( pDrmFormatModifierProperties == rhs.pDrmFormatModifierProperties ); - } - - bool operator!=( DrmFormatModifierPropertiesListEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eDrmFormatModifierPropertiesListEXT; - void* pNext = {}; - uint32_t drmFormatModifierCount = {}; - VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties = {}; - - }; - static_assert( sizeof( DrmFormatModifierPropertiesListEXT ) == sizeof( VkDrmFormatModifierPropertiesListEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = DrmFormatModifierPropertiesListEXT; - }; - - struct ExportFenceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo(VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportFenceCreateInfo( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportFenceCreateInfo( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportFenceCreateInfo & operator=( VkExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportFenceCreateInfo & operator=( ExportFenceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportFenceCreateInfo ) ); - return *this; - } - - ExportFenceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportFenceCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportFenceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportFenceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportFenceCreateInfo const& ) const = default; -#else - bool operator==( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportFenceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalFenceHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExportFenceCreateInfo ) == sizeof( VkExportFenceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportFenceCreateInfo; - }; - using ExportFenceCreateInfoKHR = ExportFenceCreateInfo; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportFenceWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportFenceWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportFenceWin32HandleInfoKHR( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportFenceWin32HandleInfoKHR( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportFenceWin32HandleInfoKHR & operator=( VkExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportFenceWin32HandleInfoKHR & operator=( ExportFenceWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportFenceWin32HandleInfoKHR ) ); - return *this; - } - - ExportFenceWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportFenceWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportFenceWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - ExportFenceWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkExportFenceWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportFenceWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportFenceWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); - } - - bool operator!=( ExportFenceWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportFenceWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ExportFenceWin32HandleInfoKHR ) == sizeof( VkExportFenceWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportFenceWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ExportMemoryAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfo( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryAllocateInfo( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportMemoryAllocateInfo & operator=( VkExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryAllocateInfo & operator=( ExportMemoryAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportMemoryAllocateInfo ) ); - return *this; - } - - ExportMemoryAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryAllocateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportMemoryAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryAllocateInfo const& ) const = default; -#else - bool operator==( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportMemoryAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExportMemoryAllocateInfo ) == sizeof( VkExportMemoryAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryAllocateInfo; - }; - using ExportMemoryAllocateInfoKHR = ExportMemoryAllocateInfo; - - struct ExportMemoryAllocateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryAllocateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryAllocateInfoNV( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryAllocateInfoNV( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportMemoryAllocateInfoNV & operator=( VkExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryAllocateInfoNV & operator=( ExportMemoryAllocateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportMemoryAllocateInfoNV ) ); - return *this; - } - - ExportMemoryAllocateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryAllocateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportMemoryAllocateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryAllocateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryAllocateInfoNV const& ) const = default; -#else - bool operator==( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportMemoryAllocateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryAllocateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; - - }; - static_assert( sizeof( ExportMemoryAllocateInfoNV ) == sizeof( VkExportMemoryAllocateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryAllocateInfoNV; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportMemoryWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoKHR( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryWin32HandleInfoKHR( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportMemoryWin32HandleInfoKHR & operator=( VkExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryWin32HandleInfoKHR & operator=( ExportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoKHR ) ); - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - ExportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkExportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); - } - - bool operator!=( ExportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ExportMemoryWin32HandleInfoKHR ) == sizeof( VkExportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportMemoryWin32HandleInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportMemoryWin32HandleInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportMemoryWin32HandleInfoNV( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportMemoryWin32HandleInfoNV( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportMemoryWin32HandleInfoNV & operator=( VkExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportMemoryWin32HandleInfoNV & operator=( ExportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportMemoryWin32HandleInfoNV ) ); - return *this; - } - - ExportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportMemoryWin32HandleInfoNV & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportMemoryWin32HandleInfoNV & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - - operator VkExportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportMemoryWin32HandleInfoNV const& ) const = default; -#else - bool operator==( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ); - } - - bool operator!=( ExportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportMemoryWin32HandleInfoNV; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - - }; - static_assert( sizeof( ExportMemoryWin32HandleInfoNV ) == sizeof( VkExportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportMemoryWin32HandleInfoNV; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct ExportSemaphoreCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo(VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportSemaphoreCreateInfo( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportSemaphoreCreateInfo( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportSemaphoreCreateInfo & operator=( VkExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportSemaphoreCreateInfo & operator=( ExportSemaphoreCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportSemaphoreCreateInfo ) ); - return *this; - } - - ExportSemaphoreCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportSemaphoreCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExportSemaphoreCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportSemaphoreCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportSemaphoreCreateInfo const& ) const = default; -#else - bool operator==( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExportSemaphoreCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalSemaphoreHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExportSemaphoreCreateInfo ) == sizeof( VkExportSemaphoreCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportSemaphoreCreateInfo; - }; - using ExportSemaphoreCreateInfoKHR = ExportSemaphoreCreateInfo; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ExportSemaphoreWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExportSemaphoreWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR(const SECURITY_ATTRIBUTES* pAttributes_ = {}, DWORD dwAccess_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : pAttributes( pAttributes_ ), dwAccess( dwAccess_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ExportSemaphoreWin32HandleInfoKHR( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExportSemaphoreWin32HandleInfoKHR( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExportSemaphoreWin32HandleInfoKHR & operator=( VkExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & operator=( ExportSemaphoreWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExportSemaphoreWin32HandleInfoKHR ) ); - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setPAttributes( const SECURITY_ATTRIBUTES* pAttributes_ ) VULKAN_HPP_NOEXCEPT - { - pAttributes = pAttributes_; - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setDwAccess( DWORD dwAccess_ ) VULKAN_HPP_NOEXCEPT - { - dwAccess = dwAccess_; - return *this; - } - - ExportSemaphoreWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkExportSemaphoreWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExportSemaphoreWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExportSemaphoreWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pAttributes == rhs.pAttributes ) - && ( dwAccess == rhs.dwAccess ) - && ( name == rhs.name ); - } - - bool operator!=( ExportSemaphoreWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExportSemaphoreWin32HandleInfoKHR; - const void* pNext = {}; - const SECURITY_ATTRIBUTES* pAttributes = {}; - DWORD dwAccess = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ExportSemaphoreWin32HandleInfoKHR ) == sizeof( VkExportSemaphoreWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExportSemaphoreWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct ExternalFormatANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalFormatANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalFormatANDROID(uint64_t externalFormat_ = {}) VULKAN_HPP_NOEXCEPT - : externalFormat( externalFormat_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalFormatANDROID( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalFormatANDROID( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalFormatANDROID & operator=( VkExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalFormatANDROID & operator=( ExternalFormatANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalFormatANDROID ) ); - return *this; - } - - ExternalFormatANDROID & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalFormatANDROID & setExternalFormat( uint64_t externalFormat_ ) VULKAN_HPP_NOEXCEPT - { - externalFormat = externalFormat_; - return *this; - } - - - operator VkExternalFormatANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalFormatANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalFormatANDROID const& ) const = default; -#else - bool operator==( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalFormat == rhs.externalFormat ); - } - - bool operator!=( ExternalFormatANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalFormatANDROID; - void* pNext = {}; - uint64_t externalFormat = {}; - - }; - static_assert( sizeof( ExternalFormatANDROID ) == sizeof( VkExternalFormatANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalFormatANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct ExternalImageFormatProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalImageFormatProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties(VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties_ = {}) VULKAN_HPP_NOEXCEPT - : externalMemoryProperties( externalMemoryProperties_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalImageFormatProperties( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalImageFormatProperties( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalImageFormatProperties & operator=( VkExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalImageFormatProperties & operator=( ExternalImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalImageFormatProperties ) ); - return *this; - } - - - operator VkExternalImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalImageFormatProperties const& ) const = default; -#else - bool operator==( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( externalMemoryProperties == rhs.externalMemoryProperties ); - } - - bool operator!=( ExternalImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalImageFormatProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryProperties externalMemoryProperties = {}; - - }; - static_assert( sizeof( ExternalImageFormatProperties ) == sizeof( VkExternalImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalImageFormatProperties; - }; - using ExternalImageFormatPropertiesKHR = ExternalImageFormatProperties; - - struct ExternalMemoryBufferCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryBufferCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryBufferCreateInfo( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryBufferCreateInfo( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalMemoryBufferCreateInfo & operator=( VkExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalMemoryBufferCreateInfo & operator=( ExternalMemoryBufferCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalMemoryBufferCreateInfo ) ); - return *this; - } - - ExternalMemoryBufferCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalMemoryBufferCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExternalMemoryBufferCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryBufferCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryBufferCreateInfo const& ) const = default; -#else - bool operator==( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExternalMemoryBufferCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryBufferCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryBufferCreateInfo ) == sizeof( VkExternalMemoryBufferCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalMemoryBufferCreateInfo; - }; - using ExternalMemoryBufferCreateInfoKHR = ExternalMemoryBufferCreateInfo; - - struct ExternalMemoryImageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfo( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryImageCreateInfo( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalMemoryImageCreateInfo & operator=( VkExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalMemoryImageCreateInfo & operator=( ExternalMemoryImageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalMemoryImageCreateInfo ) ); - return *this; - } - - ExternalMemoryImageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalMemoryImageCreateInfo & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExternalMemoryImageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryImageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryImageCreateInfo const& ) const = default; -#else - bool operator==( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExternalMemoryImageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlags handleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryImageCreateInfo ) == sizeof( VkExternalMemoryImageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalMemoryImageCreateInfo; - }; - using ExternalMemoryImageCreateInfoKHR = ExternalMemoryImageCreateInfo; - - struct ExternalMemoryImageCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eExternalMemoryImageCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ = {}) VULKAN_HPP_NOEXCEPT - : handleTypes( handleTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR ExternalMemoryImageCreateInfoNV( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ExternalMemoryImageCreateInfoNV( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ExternalMemoryImageCreateInfoNV & operator=( VkExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ExternalMemoryImageCreateInfoNV & operator=( ExternalMemoryImageCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ExternalMemoryImageCreateInfoNV ) ); - return *this; - } - - ExternalMemoryImageCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ExternalMemoryImageCreateInfoNV & setHandleTypes( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes_ ) VULKAN_HPP_NOEXCEPT - { - handleTypes = handleTypes_; - return *this; - } - - - operator VkExternalMemoryImageCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkExternalMemoryImageCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ExternalMemoryImageCreateInfoNV const& ) const = default; -#else - bool operator==( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleTypes == rhs.handleTypes ); - } - - bool operator!=( ExternalMemoryImageCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eExternalMemoryImageCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleTypes = {}; - - }; - static_assert( sizeof( ExternalMemoryImageCreateInfoNV ) == sizeof( VkExternalMemoryImageCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ExternalMemoryImageCreateInfoNV; - }; - - struct FilterCubicImageViewImageFormatPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 filterCubic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax_ = {}) VULKAN_HPP_NOEXCEPT - : filterCubic( filterCubic_ ), filterCubicMinmax( filterCubicMinmax_ ) - {} - - VULKAN_HPP_CONSTEXPR FilterCubicImageViewImageFormatPropertiesEXT( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FilterCubicImageViewImageFormatPropertiesEXT( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FilterCubicImageViewImageFormatPropertiesEXT & operator=( VkFilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FilterCubicImageViewImageFormatPropertiesEXT & operator=( FilterCubicImageViewImageFormatPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) ); - return *this; - } - - - operator VkFilterCubicImageViewImageFormatPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFilterCubicImageViewImageFormatPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FilterCubicImageViewImageFormatPropertiesEXT const& ) const = default; -#else - bool operator==( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( filterCubic == rhs.filterCubic ) - && ( filterCubicMinmax == rhs.filterCubicMinmax ); - } - - bool operator!=( FilterCubicImageViewImageFormatPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFilterCubicImageViewImageFormatPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterCubic = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterCubicMinmax = {}; - - }; - static_assert( sizeof( FilterCubicImageViewImageFormatPropertiesEXT ) == sizeof( VkFilterCubicImageViewImageFormatPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FilterCubicImageViewImageFormatPropertiesEXT; - }; - - struct FragmentShadingRateAttachmentInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFragmentShadingRateAttachmentInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR(const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ = {}, VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize_ = {}) VULKAN_HPP_NOEXCEPT - : pFragmentShadingRateAttachment( pFragmentShadingRateAttachment_ ), shadingRateAttachmentTexelSize( shadingRateAttachmentTexelSize_ ) - {} - - VULKAN_HPP_CONSTEXPR FragmentShadingRateAttachmentInfoKHR( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FragmentShadingRateAttachmentInfoKHR( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FragmentShadingRateAttachmentInfoKHR & operator=( VkFragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FragmentShadingRateAttachmentInfoKHR & operator=( FragmentShadingRateAttachmentInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FragmentShadingRateAttachmentInfoKHR ) ); - return *this; - } - - FragmentShadingRateAttachmentInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FragmentShadingRateAttachmentInfoKHR & setPFragmentShadingRateAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pFragmentShadingRateAttachment = pFragmentShadingRateAttachment_; - return *this; - } - - FragmentShadingRateAttachmentInfoKHR & setShadingRateAttachmentTexelSize( VULKAN_HPP_NAMESPACE::Extent2D const & shadingRateAttachmentTexelSize_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateAttachmentTexelSize = shadingRateAttachmentTexelSize_; - return *this; - } - - - operator VkFragmentShadingRateAttachmentInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFragmentShadingRateAttachmentInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FragmentShadingRateAttachmentInfoKHR const& ) const = default; -#else - bool operator==( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pFragmentShadingRateAttachment == rhs.pFragmentShadingRateAttachment ) - && ( shadingRateAttachmentTexelSize == rhs.shadingRateAttachmentTexelSize ); - } - - bool operator!=( FragmentShadingRateAttachmentInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFragmentShadingRateAttachmentInfoKHR; - const void* pNext = {}; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pFragmentShadingRateAttachment = {}; - VULKAN_HPP_NAMESPACE::Extent2D shadingRateAttachmentTexelSize = {}; - - }; - static_assert( sizeof( FragmentShadingRateAttachmentInfoKHR ) == sizeof( VkFragmentShadingRateAttachmentInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FragmentShadingRateAttachmentInfoKHR; - }; - - struct FramebufferAttachmentImageInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentImageInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo(VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ = {}, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}, uint32_t width_ = {}, uint32_t height_ = {}, uint32_t layerCount_ = {}, uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferAttachmentImageInfo( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferAttachmentImageInfo( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentImageInfo( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_, uint32_t width_, uint32_t height_, uint32_t layerCount_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) - : flags( flags_ ), usage( usage_ ), width( width_ ), height( height_ ), layerCount( layerCount_ ), viewFormatCount( static_cast( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FramebufferAttachmentImageInfo & operator=( VkFramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FramebufferAttachmentImageInfo & operator=( FramebufferAttachmentImageInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FramebufferAttachmentImageInfo ) ); - return *this; - } - - FramebufferAttachmentImageInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FramebufferAttachmentImageInfo & setFlags( VULKAN_HPP_NAMESPACE::ImageCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - FramebufferAttachmentImageInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - FramebufferAttachmentImageInfo & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - FramebufferAttachmentImageInfo & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - FramebufferAttachmentImageInfo & setLayerCount( uint32_t layerCount_ ) VULKAN_HPP_NOEXCEPT - { - layerCount = layerCount_; - return *this; - } - - FramebufferAttachmentImageInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = viewFormatCount_; - return *this; - } - - FramebufferAttachmentImageInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT - { - pViewFormats = pViewFormats_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentImageInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = static_cast( viewFormats_.size() ); - pViewFormats = viewFormats_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkFramebufferAttachmentImageInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferAttachmentImageInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferAttachmentImageInfo const& ) const = default; -#else - bool operator==( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( usage == rhs.usage ) - && ( width == rhs.width ) - && ( height == rhs.height ) - && ( layerCount == rhs.layerCount ) - && ( viewFormatCount == rhs.viewFormatCount ) - && ( pViewFormats == rhs.pViewFormats ); - } - - bool operator!=( FramebufferAttachmentImageInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentImageInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageCreateFlags flags = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - uint32_t width = {}; - uint32_t height = {}; - uint32_t layerCount = {}; - uint32_t viewFormatCount = {}; - const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {}; - - }; - static_assert( sizeof( FramebufferAttachmentImageInfo ) == sizeof( VkFramebufferAttachmentImageInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferAttachmentImageInfo; - }; - using FramebufferAttachmentImageInfoKHR = FramebufferAttachmentImageInfo; - - struct FramebufferAttachmentsCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eFramebufferAttachmentsCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo(uint32_t attachmentImageInfoCount_ = {}, const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentImageInfoCount( attachmentImageInfoCount_ ), pAttachmentImageInfos( pAttachmentImageInfos_ ) - {} - - VULKAN_HPP_CONSTEXPR FramebufferAttachmentsCreateInfo( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - FramebufferAttachmentsCreateInfo( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentsCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentImageInfos_ ) - : attachmentImageInfoCount( static_cast( attachmentImageInfos_.size() ) ), pAttachmentImageInfos( attachmentImageInfos_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - FramebufferAttachmentsCreateInfo & operator=( VkFramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - FramebufferAttachmentsCreateInfo & operator=( FramebufferAttachmentsCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( FramebufferAttachmentsCreateInfo ) ); - return *this; - } - - FramebufferAttachmentsCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - FramebufferAttachmentsCreateInfo & setAttachmentImageInfoCount( uint32_t attachmentImageInfoCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentImageInfoCount = attachmentImageInfoCount_; - return *this; - } - - FramebufferAttachmentsCreateInfo & setPAttachmentImageInfos( const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT - { - pAttachmentImageInfos = pAttachmentImageInfos_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - FramebufferAttachmentsCreateInfo & setAttachmentImageInfos( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentImageInfos_ ) VULKAN_HPP_NOEXCEPT - { - attachmentImageInfoCount = static_cast( attachmentImageInfos_.size() ); - pAttachmentImageInfos = attachmentImageInfos_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkFramebufferAttachmentsCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkFramebufferAttachmentsCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( FramebufferAttachmentsCreateInfo const& ) const = default; -#else - bool operator==( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentImageInfoCount == rhs.attachmentImageInfoCount ) - && ( pAttachmentImageInfos == rhs.pAttachmentImageInfos ); - } - - bool operator!=( FramebufferAttachmentsCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eFramebufferAttachmentsCreateInfo; - const void* pNext = {}; - uint32_t attachmentImageInfoCount = {}; - const VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo* pAttachmentImageInfos = {}; - - }; - static_assert( sizeof( FramebufferAttachmentsCreateInfo ) == sizeof( VkFramebufferAttachmentsCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = FramebufferAttachmentsCreateInfo; - }; - using FramebufferAttachmentsCreateInfoKHR = FramebufferAttachmentsCreateInfo; - - struct GraphicsShaderGroupCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsShaderGroupCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV(uint32_t stageCount_ = {}, const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ = {}, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {}) VULKAN_HPP_NOEXCEPT - : stageCount( stageCount_ ), pStages( pStages_ ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ ) - {} - - VULKAN_HPP_CONSTEXPR GraphicsShaderGroupCreateInfoNV( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsShaderGroupCreateInfoNV( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsShaderGroupCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_, const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ = {}, const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ = {} ) - : stageCount( static_cast( stages_.size() ) ), pStages( stages_.data() ), pVertexInputState( pVertexInputState_ ), pTessellationState( pTessellationState_ ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GraphicsShaderGroupCreateInfoNV & operator=( VkGraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GraphicsShaderGroupCreateInfoNV & operator=( GraphicsShaderGroupCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GraphicsShaderGroupCreateInfoNV ) ); - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setStageCount( uint32_t stageCount_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = stageCount_; - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setPStages( const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages_ ) VULKAN_HPP_NOEXCEPT - { - pStages = pStages_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsShaderGroupCreateInfoNV & setStages( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & stages_ ) VULKAN_HPP_NOEXCEPT - { - stageCount = static_cast( stages_.size() ); - pStages = stages_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GraphicsShaderGroupCreateInfoNV & setPVertexInputState( const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState_ ) VULKAN_HPP_NOEXCEPT - { - pVertexInputState = pVertexInputState_; - return *this; - } - - GraphicsShaderGroupCreateInfoNV & setPTessellationState( const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState_ ) VULKAN_HPP_NOEXCEPT - { - pTessellationState = pTessellationState_; - return *this; - } - - - operator VkGraphicsShaderGroupCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGraphicsShaderGroupCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GraphicsShaderGroupCreateInfoNV const& ) const = default; -#else - bool operator==( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stageCount == rhs.stageCount ) - && ( pStages == rhs.pStages ) - && ( pVertexInputState == rhs.pVertexInputState ) - && ( pTessellationState == rhs.pTessellationState ); - } - - bool operator!=( GraphicsShaderGroupCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsShaderGroupCreateInfoNV; - const void* pNext = {}; - uint32_t stageCount = {}; - const VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo* pStages = {}; - const VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo* pVertexInputState = {}; - const VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo* pTessellationState = {}; - - }; - static_assert( sizeof( GraphicsShaderGroupCreateInfoNV ) == sizeof( VkGraphicsShaderGroupCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GraphicsShaderGroupCreateInfoNV; - }; - - struct GraphicsPipelineShaderGroupsCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV(uint32_t groupCount_ = {}, const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ = {}, uint32_t pipelineCount_ = {}, const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ = {}) VULKAN_HPP_NOEXCEPT - : groupCount( groupCount_ ), pGroups( pGroups_ ), pipelineCount( pipelineCount_ ), pPipelines( pPipelines_ ) - {} - - VULKAN_HPP_CONSTEXPR GraphicsPipelineShaderGroupsCreateInfoNV( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - GraphicsPipelineShaderGroupsCreateInfoNV( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineShaderGroupsCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelines_ = {} ) - : groupCount( static_cast( groups_.size() ) ), pGroups( groups_.data() ), pipelineCount( static_cast( pipelines_.size() ) ), pPipelines( pipelines_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - GraphicsPipelineShaderGroupsCreateInfoNV & operator=( VkGraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & operator=( GraphicsPipelineShaderGroupsCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) ); - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setGroupCount( uint32_t groupCount_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = groupCount_; - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setPGroups( const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups_ ) VULKAN_HPP_NOEXCEPT - { - pGroups = pGroups_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineShaderGroupsCreateInfoNV & setGroups( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & groups_ ) VULKAN_HPP_NOEXCEPT - { - groupCount = static_cast( groups_.size() ); - pGroups = groups_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - GraphicsPipelineShaderGroupsCreateInfoNV & setPipelineCount( uint32_t pipelineCount_ ) VULKAN_HPP_NOEXCEPT - { - pipelineCount = pipelineCount_; - return *this; - } - - GraphicsPipelineShaderGroupsCreateInfoNV & setPPipelines( const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines_ ) VULKAN_HPP_NOEXCEPT - { - pPipelines = pPipelines_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - GraphicsPipelineShaderGroupsCreateInfoNV & setPipelines( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelines_ ) VULKAN_HPP_NOEXCEPT - { - pipelineCount = static_cast( pipelines_.size() ); - pPipelines = pipelines_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkGraphicsPipelineShaderGroupsCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkGraphicsPipelineShaderGroupsCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( GraphicsPipelineShaderGroupsCreateInfoNV const& ) const = default; -#else - bool operator==( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( groupCount == rhs.groupCount ) - && ( pGroups == rhs.pGroups ) - && ( pipelineCount == rhs.pipelineCount ) - && ( pPipelines == rhs.pPipelines ); - } - - bool operator!=( GraphicsPipelineShaderGroupsCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eGraphicsPipelineShaderGroupsCreateInfoNV; - const void* pNext = {}; - uint32_t groupCount = {}; - const VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV* pGroups = {}; - uint32_t pipelineCount = {}; - const VULKAN_HPP_NAMESPACE::Pipeline* pPipelines = {}; - - }; - static_assert( sizeof( GraphicsPipelineShaderGroupsCreateInfoNV ) == sizeof( VkGraphicsPipelineShaderGroupsCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = GraphicsPipelineShaderGroupsCreateInfoNV; - }; - - struct HeadlessSurfaceCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eHeadlessSurfaceCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ) - {} - - VULKAN_HPP_CONSTEXPR HeadlessSurfaceCreateInfoEXT( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - HeadlessSurfaceCreateInfoEXT( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - HeadlessSurfaceCreateInfoEXT & operator=( VkHeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - HeadlessSurfaceCreateInfoEXT & operator=( HeadlessSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( HeadlessSurfaceCreateInfoEXT ) ); - return *this; - } - - HeadlessSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - HeadlessSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - - operator VkHeadlessSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkHeadlessSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( HeadlessSurfaceCreateInfoEXT const& ) const = default; -#else - bool operator==( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ); - } - - bool operator!=( HeadlessSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eHeadlessSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateFlagsEXT flags = {}; - - }; - static_assert( sizeof( HeadlessSurfaceCreateInfoEXT ) == sizeof( VkHeadlessSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = HeadlessSurfaceCreateInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_IOS_MVK - struct IOSSurfaceCreateInfoMVK - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eIosSurfaceCreateInfoMVK; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pView( pView_ ) - {} - - VULKAN_HPP_CONSTEXPR IOSSurfaceCreateInfoMVK( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - IOSSurfaceCreateInfoMVK( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - IOSSurfaceCreateInfoMVK & operator=( VkIOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - IOSSurfaceCreateInfoMVK & operator=( IOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( IOSSurfaceCreateInfoMVK ) ); - return *this; - } - - IOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - IOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - IOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT - { - pView = pView_; - return *this; - } - - - operator VkIOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkIOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( IOSSurfaceCreateInfoMVK const& ) const = default; -#else - bool operator==( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pView == rhs.pView ); - } - - bool operator!=( IOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eIosSurfaceCreateInfoMVK; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::IOSSurfaceCreateFlagsMVK flags = {}; - const void* pView = {}; - - }; - static_assert( sizeof( IOSSurfaceCreateInfoMVK ) == sizeof( VkIOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = IOSSurfaceCreateInfoMVK; - }; -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - struct ImageDrmFormatModifierExplicitCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT(uint64_t drmFormatModifier_ = {}, uint32_t drmFormatModifierPlaneCount_ = {}, const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( drmFormatModifierPlaneCount_ ), pPlaneLayouts( pPlaneLayouts_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierExplicitCreateInfoEXT( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierExplicitCreateInfoEXT( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierExplicitCreateInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & planeLayouts_ ) - : drmFormatModifier( drmFormatModifier_ ), drmFormatModifierPlaneCount( static_cast( planeLayouts_.size() ) ), pPlaneLayouts( planeLayouts_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( VkImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & operator=( ImageDrmFormatModifierExplicitCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) ); - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifier = drmFormatModifier_; - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setDrmFormatModifierPlaneCount( uint32_t drmFormatModifierPlaneCount_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierPlaneCount = drmFormatModifierPlaneCount_; - return *this; - } - - ImageDrmFormatModifierExplicitCreateInfoEXT & setPPlaneLayouts( const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts_ ) VULKAN_HPP_NOEXCEPT - { - pPlaneLayouts = pPlaneLayouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierExplicitCreateInfoEXT & setPlaneLayouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & planeLayouts_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierPlaneCount = static_cast( planeLayouts_.size() ); - pPlaneLayouts = planeLayouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkImageDrmFormatModifierExplicitCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageDrmFormatModifierExplicitCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageDrmFormatModifierExplicitCreateInfoEXT const& ) const = default; -#else - bool operator==( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ) - && ( drmFormatModifierPlaneCount == rhs.drmFormatModifierPlaneCount ) - && ( pPlaneLayouts == rhs.pPlaneLayouts ); - } - - bool operator!=( ImageDrmFormatModifierExplicitCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierExplicitCreateInfoEXT; - const void* pNext = {}; - uint64_t drmFormatModifier = {}; - uint32_t drmFormatModifierPlaneCount = {}; - const VULKAN_HPP_NAMESPACE::SubresourceLayout* pPlaneLayouts = {}; - - }; - static_assert( sizeof( ImageDrmFormatModifierExplicitCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierExplicitCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageDrmFormatModifierExplicitCreateInfoEXT; - }; - - struct ImageDrmFormatModifierListCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageDrmFormatModifierListCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT(uint32_t drmFormatModifierCount_ = {}, const uint64_t* pDrmFormatModifiers_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifierCount( drmFormatModifierCount_ ), pDrmFormatModifiers( pDrmFormatModifiers_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageDrmFormatModifierListCreateInfoEXT( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageDrmFormatModifierListCreateInfoEXT( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierListCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifiers_ ) - : drmFormatModifierCount( static_cast( drmFormatModifiers_.size() ) ), pDrmFormatModifiers( drmFormatModifiers_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageDrmFormatModifierListCreateInfoEXT & operator=( VkImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageDrmFormatModifierListCreateInfoEXT & operator=( ImageDrmFormatModifierListCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageDrmFormatModifierListCreateInfoEXT ) ); - return *this; - } - - ImageDrmFormatModifierListCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifierCount( uint32_t drmFormatModifierCount_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierCount = drmFormatModifierCount_; - return *this; - } - - ImageDrmFormatModifierListCreateInfoEXT & setPDrmFormatModifiers( const uint64_t* pDrmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT - { - pDrmFormatModifiers = pDrmFormatModifiers_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageDrmFormatModifierListCreateInfoEXT & setDrmFormatModifiers( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & drmFormatModifiers_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifierCount = static_cast( drmFormatModifiers_.size() ); - pDrmFormatModifiers = drmFormatModifiers_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkImageDrmFormatModifierListCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageDrmFormatModifierListCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageDrmFormatModifierListCreateInfoEXT const& ) const = default; -#else - bool operator==( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifierCount == rhs.drmFormatModifierCount ) - && ( pDrmFormatModifiers == rhs.pDrmFormatModifiers ); - } - - bool operator!=( ImageDrmFormatModifierListCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageDrmFormatModifierListCreateInfoEXT; - const void* pNext = {}; - uint32_t drmFormatModifierCount = {}; - const uint64_t* pDrmFormatModifiers = {}; - - }; - static_assert( sizeof( ImageDrmFormatModifierListCreateInfoEXT ) == sizeof( VkImageDrmFormatModifierListCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageDrmFormatModifierListCreateInfoEXT; - }; - - struct ImageFormatListCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageFormatListCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo(uint32_t viewFormatCount_ = {}, const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ = {}) VULKAN_HPP_NOEXCEPT - : viewFormatCount( viewFormatCount_ ), pViewFormats( pViewFormats_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageFormatListCreateInfo( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageFormatListCreateInfo( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageFormatListCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) - : viewFormatCount( static_cast( viewFormats_.size() ) ), pViewFormats( viewFormats_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageFormatListCreateInfo & operator=( VkImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageFormatListCreateInfo & operator=( ImageFormatListCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageFormatListCreateInfo ) ); - return *this; - } - - ImageFormatListCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageFormatListCreateInfo & setViewFormatCount( uint32_t viewFormatCount_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = viewFormatCount_; - return *this; - } - - ImageFormatListCreateInfo & setPViewFormats( const VULKAN_HPP_NAMESPACE::Format* pViewFormats_ ) VULKAN_HPP_NOEXCEPT - { - pViewFormats = pViewFormats_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ImageFormatListCreateInfo & setViewFormats( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewFormats_ ) VULKAN_HPP_NOEXCEPT - { - viewFormatCount = static_cast( viewFormats_.size() ); - pViewFormats = viewFormats_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkImageFormatListCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageFormatListCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageFormatListCreateInfo const& ) const = default; -#else - bool operator==( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( viewFormatCount == rhs.viewFormatCount ) - && ( pViewFormats == rhs.pViewFormats ); - } - - bool operator!=( ImageFormatListCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageFormatListCreateInfo; - const void* pNext = {}; - uint32_t viewFormatCount = {}; - const VULKAN_HPP_NAMESPACE::Format* pViewFormats = {}; - - }; - static_assert( sizeof( ImageFormatListCreateInfo ) == sizeof( VkImageFormatListCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageFormatListCreateInfo; - }; - using ImageFormatListCreateInfoKHR = ImageFormatListCreateInfo; - -#ifdef VK_USE_PLATFORM_FUCHSIA - struct ImagePipeSurfaceCreateInfoFUCHSIA - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA(VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ = {}, zx_handle_t imagePipeHandle_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), imagePipeHandle( imagePipeHandle_ ) - {} - - VULKAN_HPP_CONSTEXPR ImagePipeSurfaceCreateInfoFUCHSIA( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImagePipeSurfaceCreateInfoFUCHSIA( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImagePipeSurfaceCreateInfoFUCHSIA & operator=( VkImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImagePipeSurfaceCreateInfoFUCHSIA & operator=( ImagePipeSurfaceCreateInfoFUCHSIA const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) ); - return *this; - } - - ImagePipeSurfaceCreateInfoFUCHSIA & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImagePipeSurfaceCreateInfoFUCHSIA & setFlags( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ImagePipeSurfaceCreateInfoFUCHSIA & setImagePipeHandle( zx_handle_t imagePipeHandle_ ) VULKAN_HPP_NOEXCEPT - { - imagePipeHandle = imagePipeHandle_; - return *this; - } - - - operator VkImagePipeSurfaceCreateInfoFUCHSIA const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImagePipeSurfaceCreateInfoFUCHSIA &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImagePipeSurfaceCreateInfoFUCHSIA const& ) const = default; -#else - bool operator==( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( memcmp( &imagePipeHandle, &rhs.imagePipeHandle, sizeof( zx_handle_t ) ) == 0 ); - } - - bool operator!=( ImagePipeSurfaceCreateInfoFUCHSIA const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagepipeSurfaceCreateInfoFUCHSIA; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateFlagsFUCHSIA flags = {}; - zx_handle_t imagePipeHandle = {}; - - }; - static_assert( sizeof( ImagePipeSurfaceCreateInfoFUCHSIA ) == sizeof( VkImagePipeSurfaceCreateInfoFUCHSIA ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImagePipeSurfaceCreateInfoFUCHSIA; - }; -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - struct ImagePlaneMemoryRequirementsInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImagePlaneMemoryRequirementsInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo(VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor) VULKAN_HPP_NOEXCEPT - : planeAspect( planeAspect_ ) - {} - - VULKAN_HPP_CONSTEXPR ImagePlaneMemoryRequirementsInfo( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImagePlaneMemoryRequirementsInfo( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImagePlaneMemoryRequirementsInfo & operator=( VkImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImagePlaneMemoryRequirementsInfo & operator=( ImagePlaneMemoryRequirementsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImagePlaneMemoryRequirementsInfo ) ); - return *this; - } - - ImagePlaneMemoryRequirementsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImagePlaneMemoryRequirementsInfo & setPlaneAspect( VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect_ ) VULKAN_HPP_NOEXCEPT - { - planeAspect = planeAspect_; - return *this; - } - - - operator VkImagePlaneMemoryRequirementsInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImagePlaneMemoryRequirementsInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImagePlaneMemoryRequirementsInfo const& ) const = default; -#else - bool operator==( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( planeAspect == rhs.planeAspect ); - } - - bool operator!=( ImagePlaneMemoryRequirementsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImagePlaneMemoryRequirementsInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlagBits planeAspect = VULKAN_HPP_NAMESPACE::ImageAspectFlagBits::eColor; - - }; - static_assert( sizeof( ImagePlaneMemoryRequirementsInfo ) == sizeof( VkImagePlaneMemoryRequirementsInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImagePlaneMemoryRequirementsInfo; - }; - using ImagePlaneMemoryRequirementsInfoKHR = ImagePlaneMemoryRequirementsInfo; - - struct ImageStencilUsageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageStencilUsageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ = {}) VULKAN_HPP_NOEXCEPT - : stencilUsage( stencilUsage_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageStencilUsageCreateInfo( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageStencilUsageCreateInfo( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageStencilUsageCreateInfo & operator=( VkImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageStencilUsageCreateInfo & operator=( ImageStencilUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageStencilUsageCreateInfo ) ); - return *this; - } - - ImageStencilUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageStencilUsageCreateInfo & setStencilUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage_ ) VULKAN_HPP_NOEXCEPT - { - stencilUsage = stencilUsage_; - return *this; - } - - - operator VkImageStencilUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageStencilUsageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageStencilUsageCreateInfo const& ) const = default; -#else - bool operator==( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( stencilUsage == rhs.stencilUsage ); - } - - bool operator!=( ImageStencilUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageStencilUsageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags stencilUsage = {}; - - }; - static_assert( sizeof( ImageStencilUsageCreateInfo ) == sizeof( VkImageStencilUsageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageStencilUsageCreateInfo; - }; - using ImageStencilUsageCreateInfoEXT = ImageStencilUsageCreateInfo; - - struct ImageSwapchainCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageSwapchainCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ = {}) VULKAN_HPP_NOEXCEPT - : swapchain( swapchain_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageSwapchainCreateInfoKHR( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageSwapchainCreateInfoKHR( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageSwapchainCreateInfoKHR & operator=( VkImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageSwapchainCreateInfoKHR & operator=( ImageSwapchainCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageSwapchainCreateInfoKHR ) ); - return *this; - } - - ImageSwapchainCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageSwapchainCreateInfoKHR & setSwapchain( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain_ ) VULKAN_HPP_NOEXCEPT - { - swapchain = swapchain_; - return *this; - } - - - operator VkImageSwapchainCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageSwapchainCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageSwapchainCreateInfoKHR const& ) const = default; -#else - bool operator==( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchain == rhs.swapchain ); - } - - bool operator!=( ImageSwapchainCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageSwapchainCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain = {}; - - }; - static_assert( sizeof( ImageSwapchainCreateInfoKHR ) == sizeof( VkImageSwapchainCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageSwapchainCreateInfoKHR; - }; - - struct ImageViewASTCDecodeModeEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewAstcDecodeModeEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT(VULKAN_HPP_NAMESPACE::Format decodeMode_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT - : decodeMode( decodeMode_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewASTCDecodeModeEXT( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewASTCDecodeModeEXT( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageViewASTCDecodeModeEXT & operator=( VkImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewASTCDecodeModeEXT & operator=( ImageViewASTCDecodeModeEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageViewASTCDecodeModeEXT ) ); - return *this; - } - - ImageViewASTCDecodeModeEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewASTCDecodeModeEXT & setDecodeMode( VULKAN_HPP_NAMESPACE::Format decodeMode_ ) VULKAN_HPP_NOEXCEPT - { - decodeMode = decodeMode_; - return *this; - } - - - operator VkImageViewASTCDecodeModeEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewASTCDecodeModeEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewASTCDecodeModeEXT const& ) const = default; -#else - bool operator==( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( decodeMode == rhs.decodeMode ); - } - - bool operator!=( ImageViewASTCDecodeModeEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewAstcDecodeModeEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Format decodeMode = VULKAN_HPP_NAMESPACE::Format::eUndefined; - - }; - static_assert( sizeof( ImageViewASTCDecodeModeEXT ) == sizeof( VkImageViewASTCDecodeModeEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewASTCDecodeModeEXT; - }; - - struct ImageViewUsageCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImageViewUsageCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo(VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ = {}) VULKAN_HPP_NOEXCEPT - : usage( usage_ ) - {} - - VULKAN_HPP_CONSTEXPR ImageViewUsageCreateInfo( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImageViewUsageCreateInfo( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImageViewUsageCreateInfo & operator=( VkImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImageViewUsageCreateInfo & operator=( ImageViewUsageCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImageViewUsageCreateInfo ) ); - return *this; - } - - ImageViewUsageCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImageViewUsageCreateInfo & setUsage( VULKAN_HPP_NAMESPACE::ImageUsageFlags usage_ ) VULKAN_HPP_NOEXCEPT - { - usage = usage_; - return *this; - } - - - operator VkImageViewUsageCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImageViewUsageCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImageViewUsageCreateInfo const& ) const = default; -#else - bool operator==( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( usage == rhs.usage ); - } - - bool operator!=( ImageViewUsageCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImageViewUsageCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags usage = {}; - - }; - static_assert( sizeof( ImageViewUsageCreateInfo ) == sizeof( VkImageViewUsageCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImageViewUsageCreateInfo; - }; - using ImageViewUsageCreateInfoKHR = ImageViewUsageCreateInfo; - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - struct ImportAndroidHardwareBufferInfoANDROID - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportAndroidHardwareBufferInfoANDROID; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID(struct AHardwareBuffer* buffer_ = {}) VULKAN_HPP_NOEXCEPT - : buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportAndroidHardwareBufferInfoANDROID( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportAndroidHardwareBufferInfoANDROID( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportAndroidHardwareBufferInfoANDROID & operator=( VkImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportAndroidHardwareBufferInfoANDROID & operator=( ImportAndroidHardwareBufferInfoANDROID const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportAndroidHardwareBufferInfoANDROID ) ); - return *this; - } - - ImportAndroidHardwareBufferInfoANDROID & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportAndroidHardwareBufferInfoANDROID & setBuffer( struct AHardwareBuffer* buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkImportAndroidHardwareBufferInfoANDROID const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportAndroidHardwareBufferInfoANDROID &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportAndroidHardwareBufferInfoANDROID const& ) const = default; -#else - bool operator==( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( ImportAndroidHardwareBufferInfoANDROID const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportAndroidHardwareBufferInfoANDROID; - const void* pNext = {}; - struct AHardwareBuffer* buffer = {}; - - }; - static_assert( sizeof( ImportAndroidHardwareBufferInfoANDROID ) == sizeof( VkImportAndroidHardwareBufferInfoANDROID ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportAndroidHardwareBufferInfoANDROID; - }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - struct ImportMemoryFdInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryFdInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, int fd_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), fd( fd_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryFdInfoKHR( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryFdInfoKHR( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportMemoryFdInfoKHR & operator=( VkImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryFdInfoKHR & operator=( ImportMemoryFdInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportMemoryFdInfoKHR ) ); - return *this; - } - - ImportMemoryFdInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryFdInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryFdInfoKHR & setFd( int fd_ ) VULKAN_HPP_NOEXCEPT - { - fd = fd_; - return *this; - } - - - operator VkImportMemoryFdInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryFdInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryFdInfoKHR const& ) const = default; -#else - bool operator==( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( fd == rhs.fd ); - } - - bool operator!=( ImportMemoryFdInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryFdInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - int fd = {}; - - }; - static_assert( sizeof( ImportMemoryFdInfoKHR ) == sizeof( VkImportMemoryFdInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryFdInfoKHR; - }; - - struct ImportMemoryHostPointerInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryHostPointerInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, void* pHostPointer_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), pHostPointer( pHostPointer_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryHostPointerInfoEXT( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryHostPointerInfoEXT( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportMemoryHostPointerInfoEXT & operator=( VkImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryHostPointerInfoEXT & operator=( ImportMemoryHostPointerInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportMemoryHostPointerInfoEXT ) ); - return *this; - } - - ImportMemoryHostPointerInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryHostPointerInfoEXT & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryHostPointerInfoEXT & setPHostPointer( void* pHostPointer_ ) VULKAN_HPP_NOEXCEPT - { - pHostPointer = pHostPointer_; - return *this; - } - - - operator VkImportMemoryHostPointerInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryHostPointerInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryHostPointerInfoEXT const& ) const = default; -#else - bool operator==( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( pHostPointer == rhs.pHostPointer ); - } - - bool operator!=( ImportMemoryHostPointerInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryHostPointerInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - void* pHostPointer = {}; - - }; - static_assert( sizeof( ImportMemoryHostPointerInfoEXT ) == sizeof( VkImportMemoryHostPointerInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryHostPointerInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportMemoryWin32HandleInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd, HANDLE handle_ = {}, LPCWSTR name_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), handle( handle_ ), name( name_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoKHR( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryWin32HandleInfoKHR( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportMemoryWin32HandleInfoKHR & operator=( VkImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryWin32HandleInfoKHR & operator=( ImportMemoryWin32HandleInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoKHR ) ); - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - ImportMemoryWin32HandleInfoKHR & setName( LPCWSTR name_ ) VULKAN_HPP_NOEXCEPT - { - name = name_; - return *this; - } - - - operator VkImportMemoryWin32HandleInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryWin32HandleInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryWin32HandleInfoKHR const& ) const = default; -#else - bool operator==( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ) - && ( name == rhs.name ); - } - - bool operator!=( ImportMemoryWin32HandleInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - HANDLE handle = {}; - LPCWSTR name = {}; - - }; - static_assert( sizeof( ImportMemoryWin32HandleInfoKHR ) == sizeof( VkImportMemoryWin32HandleInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryWin32HandleInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct ImportMemoryWin32HandleInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eImportMemoryWin32HandleInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ = {}, HANDLE handle_ = {}) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ), handle( handle_ ) - {} - - VULKAN_HPP_CONSTEXPR ImportMemoryWin32HandleInfoNV( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ImportMemoryWin32HandleInfoNV( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ImportMemoryWin32HandleInfoNV & operator=( VkImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ImportMemoryWin32HandleInfoNV & operator=( ImportMemoryWin32HandleInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ImportMemoryWin32HandleInfoNV ) ); - return *this; - } - - ImportMemoryWin32HandleInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ImportMemoryWin32HandleInfoNV & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - ImportMemoryWin32HandleInfoNV & setHandle( HANDLE handle_ ) VULKAN_HPP_NOEXCEPT - { - handle = handle_; - return *this; - } - - - operator VkImportMemoryWin32HandleInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkImportMemoryWin32HandleInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ImportMemoryWin32HandleInfoNV const& ) const = default; -#else - bool operator==( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ) - && ( handle == rhs.handle ); - } - - bool operator!=( ImportMemoryWin32HandleInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eImportMemoryWin32HandleInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType = {}; - HANDLE handle = {}; - - }; - static_assert( sizeof( ImportMemoryWin32HandleInfoNV ) == sizeof( VkImportMemoryWin32HandleInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ImportMemoryWin32HandleInfoNV; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct InputAttachmentAspectReference - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference(uint32_t subpass_ = {}, uint32_t inputAttachmentIndex_ = {}, VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ = {}) VULKAN_HPP_NOEXCEPT - : subpass( subpass_ ), inputAttachmentIndex( inputAttachmentIndex_ ), aspectMask( aspectMask_ ) - {} - - VULKAN_HPP_CONSTEXPR InputAttachmentAspectReference( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InputAttachmentAspectReference( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - InputAttachmentAspectReference & operator=( VkInputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - InputAttachmentAspectReference & operator=( InputAttachmentAspectReference const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( InputAttachmentAspectReference ) ); - return *this; - } - - InputAttachmentAspectReference & setSubpass( uint32_t subpass_ ) VULKAN_HPP_NOEXCEPT - { - subpass = subpass_; - return *this; - } - - InputAttachmentAspectReference & setInputAttachmentIndex( uint32_t inputAttachmentIndex_ ) VULKAN_HPP_NOEXCEPT - { - inputAttachmentIndex = inputAttachmentIndex_; - return *this; - } - - InputAttachmentAspectReference & setAspectMask( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask_ ) VULKAN_HPP_NOEXCEPT - { - aspectMask = aspectMask_; - return *this; - } - - - operator VkInputAttachmentAspectReference const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkInputAttachmentAspectReference &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( InputAttachmentAspectReference const& ) const = default; -#else - bool operator==( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( subpass == rhs.subpass ) - && ( inputAttachmentIndex == rhs.inputAttachmentIndex ) - && ( aspectMask == rhs.aspectMask ); - } - - bool operator!=( InputAttachmentAspectReference const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t subpass = {}; - uint32_t inputAttachmentIndex = {}; - VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask = {}; - - }; - static_assert( sizeof( InputAttachmentAspectReference ) == sizeof( VkInputAttachmentAspectReference ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - using InputAttachmentAspectReferenceKHR = InputAttachmentAspectReference; - - struct InstanceCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eInstanceCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR InstanceCreateInfo(VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ = {}, const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ = {}, uint32_t enabledLayerCount_ = {}, const char* const * ppEnabledLayerNames_ = {}, uint32_t enabledExtensionCount_ = {}, const char* const * ppEnabledExtensionNames_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( enabledLayerCount_ ), ppEnabledLayerNames( ppEnabledLayerNames_ ), enabledExtensionCount( enabledExtensionCount_ ), ppEnabledExtensionNames( ppEnabledExtensionNames_ ) - {} - - VULKAN_HPP_CONSTEXPR InstanceCreateInfo( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - InstanceCreateInfo( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - InstanceCreateInfo( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_, const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ = {} ) - : flags( flags_ ), pApplicationInfo( pApplicationInfo_ ), enabledLayerCount( static_cast( pEnabledLayerNames_.size() ) ), ppEnabledLayerNames( pEnabledLayerNames_.data() ), enabledExtensionCount( static_cast( pEnabledExtensionNames_.size() ) ), ppEnabledExtensionNames( pEnabledExtensionNames_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - InstanceCreateInfo & operator=( VkInstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - InstanceCreateInfo & operator=( InstanceCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( InstanceCreateInfo ) ); - return *this; - } - - InstanceCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - InstanceCreateInfo & setFlags( VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - InstanceCreateInfo & setPApplicationInfo( const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo_ ) VULKAN_HPP_NOEXCEPT - { - pApplicationInfo = pApplicationInfo_; - return *this; - } - - InstanceCreateInfo & setEnabledLayerCount( uint32_t enabledLayerCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = enabledLayerCount_; - return *this; - } - - InstanceCreateInfo & setPpEnabledLayerNames( const char* const * ppEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledLayerNames = ppEnabledLayerNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - InstanceCreateInfo & setPEnabledLayerNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledLayerNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledLayerCount = static_cast( pEnabledLayerNames_.size() ); - ppEnabledLayerNames = pEnabledLayerNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - InstanceCreateInfo & setEnabledExtensionCount( uint32_t enabledExtensionCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = enabledExtensionCount_; - return *this; - } - - InstanceCreateInfo & setPpEnabledExtensionNames( const char* const * ppEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - ppEnabledExtensionNames = ppEnabledExtensionNames_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - InstanceCreateInfo & setPEnabledExtensionNames( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pEnabledExtensionNames_ ) VULKAN_HPP_NOEXCEPT - { - enabledExtensionCount = static_cast( pEnabledExtensionNames_.size() ); - ppEnabledExtensionNames = pEnabledExtensionNames_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkInstanceCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkInstanceCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( InstanceCreateInfo const& ) const = default; -#else - bool operator==( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pApplicationInfo == rhs.pApplicationInfo ) - && ( enabledLayerCount == rhs.enabledLayerCount ) - && ( ppEnabledLayerNames == rhs.ppEnabledLayerNames ) - && ( enabledExtensionCount == rhs.enabledExtensionCount ) - && ( ppEnabledExtensionNames == rhs.ppEnabledExtensionNames ); - } - - bool operator!=( InstanceCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eInstanceCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::InstanceCreateFlags flags = {}; - const VULKAN_HPP_NAMESPACE::ApplicationInfo* pApplicationInfo = {}; - uint32_t enabledLayerCount = {}; - const char* const * ppEnabledLayerNames = {}; - uint32_t enabledExtensionCount = {}; - const char* const * ppEnabledExtensionNames = {}; - - }; - static_assert( sizeof( InstanceCreateInfo ) == sizeof( VkInstanceCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = InstanceCreateInfo; - }; - -#ifdef VK_USE_PLATFORM_MACOS_MVK - struct MacOSSurfaceCreateInfoMVK - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMacosSurfaceCreateInfoMVK; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK(VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ = {}, const void* pView_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pView( pView_ ) - {} - - VULKAN_HPP_CONSTEXPR MacOSSurfaceCreateInfoMVK( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MacOSSurfaceCreateInfoMVK( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MacOSSurfaceCreateInfoMVK & operator=( VkMacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MacOSSurfaceCreateInfoMVK & operator=( MacOSSurfaceCreateInfoMVK const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MacOSSurfaceCreateInfoMVK ) ); - return *this; - } - - MacOSSurfaceCreateInfoMVK & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MacOSSurfaceCreateInfoMVK & setFlags( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - MacOSSurfaceCreateInfoMVK & setPView( const void* pView_ ) VULKAN_HPP_NOEXCEPT - { - pView = pView_; - return *this; - } - - - operator VkMacOSSurfaceCreateInfoMVK const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMacOSSurfaceCreateInfoMVK &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MacOSSurfaceCreateInfoMVK const& ) const = default; -#else - bool operator==( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pView == rhs.pView ); - } - - bool operator!=( MacOSSurfaceCreateInfoMVK const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMacosSurfaceCreateInfoMVK; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateFlagsMVK flags = {}; - const void* pView = {}; - - }; - static_assert( sizeof( MacOSSurfaceCreateInfoMVK ) == sizeof( VkMacOSSurfaceCreateInfoMVK ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MacOSSurfaceCreateInfoMVK; - }; -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - struct MemoryAllocateFlagsInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryAllocateFlagsInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo(VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ = {}, uint32_t deviceMask_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), deviceMask( deviceMask_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryAllocateFlagsInfo( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryAllocateFlagsInfo( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryAllocateFlagsInfo & operator=( VkMemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryAllocateFlagsInfo & operator=( MemoryAllocateFlagsInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryAllocateFlagsInfo ) ); - return *this; - } - - MemoryAllocateFlagsInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryAllocateFlagsInfo & setFlags( VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - MemoryAllocateFlagsInfo & setDeviceMask( uint32_t deviceMask_ ) VULKAN_HPP_NOEXCEPT - { - deviceMask = deviceMask_; - return *this; - } - - - operator VkMemoryAllocateFlagsInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryAllocateFlagsInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryAllocateFlagsInfo const& ) const = default; -#else - bool operator==( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( deviceMask == rhs.deviceMask ); - } - - bool operator!=( MemoryAllocateFlagsInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryAllocateFlagsInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MemoryAllocateFlags flags = {}; - uint32_t deviceMask = {}; - - }; - static_assert( sizeof( MemoryAllocateFlagsInfo ) == sizeof( VkMemoryAllocateFlagsInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryAllocateFlagsInfo; - }; - using MemoryAllocateFlagsInfoKHR = MemoryAllocateFlagsInfo; - - struct MemoryDedicatedAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo(VULKAN_HPP_NAMESPACE::Image image_ = {}, VULKAN_HPP_NAMESPACE::Buffer buffer_ = {}) VULKAN_HPP_NOEXCEPT - : image( image_ ), buffer( buffer_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryDedicatedAllocateInfo( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryDedicatedAllocateInfo( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryDedicatedAllocateInfo & operator=( VkMemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryDedicatedAllocateInfo & operator=( MemoryDedicatedAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryDedicatedAllocateInfo ) ); - return *this; - } - - MemoryDedicatedAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryDedicatedAllocateInfo & setImage( VULKAN_HPP_NAMESPACE::Image image_ ) VULKAN_HPP_NOEXCEPT - { - image = image_; - return *this; - } - - MemoryDedicatedAllocateInfo & setBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer_ ) VULKAN_HPP_NOEXCEPT - { - buffer = buffer_; - return *this; - } - - - operator VkMemoryDedicatedAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryDedicatedAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryDedicatedAllocateInfo const& ) const = default; -#else - bool operator==( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( image == rhs.image ) - && ( buffer == rhs.buffer ); - } - - bool operator!=( MemoryDedicatedAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedAllocateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Image image = {}; - VULKAN_HPP_NAMESPACE::Buffer buffer = {}; - - }; - static_assert( sizeof( MemoryDedicatedAllocateInfo ) == sizeof( VkMemoryDedicatedAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryDedicatedAllocateInfo; - }; - using MemoryDedicatedAllocateInfoKHR = MemoryDedicatedAllocateInfo; - - struct MemoryDedicatedRequirements - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryDedicatedRequirements; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements(VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : prefersDedicatedAllocation( prefersDedicatedAllocation_ ), requiresDedicatedAllocation( requiresDedicatedAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryDedicatedRequirements( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryDedicatedRequirements( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryDedicatedRequirements & operator=( VkMemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryDedicatedRequirements & operator=( MemoryDedicatedRequirements const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryDedicatedRequirements ) ); - return *this; - } - - - operator VkMemoryDedicatedRequirements const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryDedicatedRequirements &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryDedicatedRequirements const& ) const = default; -#else - bool operator==( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( prefersDedicatedAllocation == rhs.prefersDedicatedAllocation ) - && ( requiresDedicatedAllocation == rhs.requiresDedicatedAllocation ); - } - - bool operator!=( MemoryDedicatedRequirements const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryDedicatedRequirements; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 prefersDedicatedAllocation = {}; - VULKAN_HPP_NAMESPACE::Bool32 requiresDedicatedAllocation = {}; - - }; - static_assert( sizeof( MemoryDedicatedRequirements ) == sizeof( VkMemoryDedicatedRequirements ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryDedicatedRequirements; - }; - using MemoryDedicatedRequirementsKHR = MemoryDedicatedRequirements; - - struct MemoryOpaqueCaptureAddressAllocateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo(uint64_t opaqueCaptureAddress_ = {}) VULKAN_HPP_NOEXCEPT - : opaqueCaptureAddress( opaqueCaptureAddress_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryOpaqueCaptureAddressAllocateInfo( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryOpaqueCaptureAddressAllocateInfo( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryOpaqueCaptureAddressAllocateInfo & operator=( VkMemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryOpaqueCaptureAddressAllocateInfo & operator=( MemoryOpaqueCaptureAddressAllocateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) ); - return *this; - } - - MemoryOpaqueCaptureAddressAllocateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryOpaqueCaptureAddressAllocateInfo & setOpaqueCaptureAddress( uint64_t opaqueCaptureAddress_ ) VULKAN_HPP_NOEXCEPT - { - opaqueCaptureAddress = opaqueCaptureAddress_; - return *this; - } - - - operator VkMemoryOpaqueCaptureAddressAllocateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryOpaqueCaptureAddressAllocateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryOpaqueCaptureAddressAllocateInfo const& ) const = default; -#else - bool operator==( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( opaqueCaptureAddress == rhs.opaqueCaptureAddress ); - } - - bool operator!=( MemoryOpaqueCaptureAddressAllocateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryOpaqueCaptureAddressAllocateInfo; - const void* pNext = {}; - uint64_t opaqueCaptureAddress = {}; - - }; - static_assert( sizeof( MemoryOpaqueCaptureAddressAllocateInfo ) == sizeof( VkMemoryOpaqueCaptureAddressAllocateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryOpaqueCaptureAddressAllocateInfo; - }; - using MemoryOpaqueCaptureAddressAllocateInfoKHR = MemoryOpaqueCaptureAddressAllocateInfo; - - struct MemoryPriorityAllocateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMemoryPriorityAllocateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT(float priority_ = {}) VULKAN_HPP_NOEXCEPT - : priority( priority_ ) - {} - - VULKAN_HPP_CONSTEXPR MemoryPriorityAllocateInfoEXT( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MemoryPriorityAllocateInfoEXT( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MemoryPriorityAllocateInfoEXT & operator=( VkMemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MemoryPriorityAllocateInfoEXT & operator=( MemoryPriorityAllocateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MemoryPriorityAllocateInfoEXT ) ); - return *this; - } - - MemoryPriorityAllocateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MemoryPriorityAllocateInfoEXT & setPriority( float priority_ ) VULKAN_HPP_NOEXCEPT - { - priority = priority_; - return *this; - } - - - operator VkMemoryPriorityAllocateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMemoryPriorityAllocateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MemoryPriorityAllocateInfoEXT const& ) const = default; -#else - bool operator==( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( priority == rhs.priority ); - } - - bool operator!=( MemoryPriorityAllocateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMemoryPriorityAllocateInfoEXT; - const void* pNext = {}; - float priority = {}; - - }; - static_assert( sizeof( MemoryPriorityAllocateInfoEXT ) == sizeof( VkMemoryPriorityAllocateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MemoryPriorityAllocateInfoEXT; - }; - -#ifdef VK_USE_PLATFORM_METAL_EXT - struct MetalSurfaceCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMetalSurfaceCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT(VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ = {}, const CAMetalLayer* pLayer_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), pLayer( pLayer_ ) - {} - - VULKAN_HPP_CONSTEXPR MetalSurfaceCreateInfoEXT( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MetalSurfaceCreateInfoEXT( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MetalSurfaceCreateInfoEXT & operator=( VkMetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MetalSurfaceCreateInfoEXT & operator=( MetalSurfaceCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MetalSurfaceCreateInfoEXT ) ); - return *this; - } - - MetalSurfaceCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MetalSurfaceCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - MetalSurfaceCreateInfoEXT & setPLayer( const CAMetalLayer* pLayer_ ) VULKAN_HPP_NOEXCEPT - { - pLayer = pLayer_; - return *this; - } - - - operator VkMetalSurfaceCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMetalSurfaceCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MetalSurfaceCreateInfoEXT const& ) const = default; -#else - bool operator==( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( pLayer == rhs.pLayer ); - } - - bool operator!=( MetalSurfaceCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMetalSurfaceCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::MetalSurfaceCreateFlagsEXT flags = {}; - const CAMetalLayer* pLayer = {}; - - }; - static_assert( sizeof( MetalSurfaceCreateInfoEXT ) == sizeof( VkMetalSurfaceCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MetalSurfaceCreateInfoEXT; - }; -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - struct MutableDescriptorTypeListVALVE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE(uint32_t descriptorTypeCount_ = {}, const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes_ = {}) VULKAN_HPP_NOEXCEPT - : descriptorTypeCount( descriptorTypeCount_ ), pDescriptorTypes( pDescriptorTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeListVALVE( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MutableDescriptorTypeListVALVE( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeListVALVE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorTypes_ ) - : descriptorTypeCount( static_cast( descriptorTypes_.size() ) ), pDescriptorTypes( descriptorTypes_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MutableDescriptorTypeListVALVE & operator=( VkMutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MutableDescriptorTypeListVALVE & operator=( MutableDescriptorTypeListVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MutableDescriptorTypeListVALVE ) ); - return *this; - } - - MutableDescriptorTypeListVALVE & setDescriptorTypeCount( uint32_t descriptorTypeCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorTypeCount = descriptorTypeCount_; - return *this; - } - - MutableDescriptorTypeListVALVE & setPDescriptorTypes( const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes_ ) VULKAN_HPP_NOEXCEPT - { - pDescriptorTypes = pDescriptorTypes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeListVALVE & setDescriptorTypes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & descriptorTypes_ ) VULKAN_HPP_NOEXCEPT - { - descriptorTypeCount = static_cast( descriptorTypes_.size() ); - pDescriptorTypes = descriptorTypes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkMutableDescriptorTypeListVALVE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMutableDescriptorTypeListVALVE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MutableDescriptorTypeListVALVE const& ) const = default; -#else - bool operator==( MutableDescriptorTypeListVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( descriptorTypeCount == rhs.descriptorTypeCount ) - && ( pDescriptorTypes == rhs.pDescriptorTypes ); - } - - bool operator!=( MutableDescriptorTypeListVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t descriptorTypeCount = {}; - const VULKAN_HPP_NAMESPACE::DescriptorType* pDescriptorTypes = {}; - - }; - static_assert( sizeof( MutableDescriptorTypeListVALVE ) == sizeof( VkMutableDescriptorTypeListVALVE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct MutableDescriptorTypeCreateInfoVALVE - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eMutableDescriptorTypeCreateInfoVALVE; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE(uint32_t mutableDescriptorTypeListCount_ = {}, const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists_ = {}) VULKAN_HPP_NOEXCEPT - : mutableDescriptorTypeListCount( mutableDescriptorTypeListCount_ ), pMutableDescriptorTypeLists( pMutableDescriptorTypeLists_ ) - {} - - VULKAN_HPP_CONSTEXPR MutableDescriptorTypeCreateInfoVALVE( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - MutableDescriptorTypeCreateInfoVALVE( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeCreateInfoVALVE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mutableDescriptorTypeLists_ ) - : mutableDescriptorTypeListCount( static_cast( mutableDescriptorTypeLists_.size() ) ), pMutableDescriptorTypeLists( mutableDescriptorTypeLists_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - MutableDescriptorTypeCreateInfoVALVE & operator=( VkMutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - MutableDescriptorTypeCreateInfoVALVE & operator=( MutableDescriptorTypeCreateInfoVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( MutableDescriptorTypeCreateInfoVALVE ) ); - return *this; - } - - MutableDescriptorTypeCreateInfoVALVE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeListCount( uint32_t mutableDescriptorTypeListCount_ ) VULKAN_HPP_NOEXCEPT - { - mutableDescriptorTypeListCount = mutableDescriptorTypeListCount_; - return *this; - } - - MutableDescriptorTypeCreateInfoVALVE & setPMutableDescriptorTypeLists( const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT - { - pMutableDescriptorTypeLists = pMutableDescriptorTypeLists_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - MutableDescriptorTypeCreateInfoVALVE & setMutableDescriptorTypeLists( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & mutableDescriptorTypeLists_ ) VULKAN_HPP_NOEXCEPT - { - mutableDescriptorTypeListCount = static_cast( mutableDescriptorTypeLists_.size() ); - pMutableDescriptorTypeLists = mutableDescriptorTypeLists_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkMutableDescriptorTypeCreateInfoVALVE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkMutableDescriptorTypeCreateInfoVALVE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( MutableDescriptorTypeCreateInfoVALVE const& ) const = default; -#else - bool operator==( MutableDescriptorTypeCreateInfoVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( mutableDescriptorTypeListCount == rhs.mutableDescriptorTypeListCount ) - && ( pMutableDescriptorTypeLists == rhs.pMutableDescriptorTypeLists ); - } - - bool operator!=( MutableDescriptorTypeCreateInfoVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eMutableDescriptorTypeCreateInfoVALVE; - const void* pNext = {}; - uint32_t mutableDescriptorTypeListCount = {}; - const VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists = {}; - - }; - static_assert( sizeof( MutableDescriptorTypeCreateInfoVALVE ) == sizeof( VkMutableDescriptorTypeCreateInfoVALVE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = MutableDescriptorTypeCreateInfoVALVE; - }; - - union PerformanceCounterResultKHR - { - PerformanceCounterResultKHR( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const& rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) ); - } - - PerformanceCounterResultKHR( int32_t int32_ = {} ) - : int32( int32_ ) - {} - - PerformanceCounterResultKHR( int64_t int64_ ) - : int64( int64_ ) - {} - - PerformanceCounterResultKHR( uint32_t uint32_ ) - : uint32( uint32_ ) - {} - - PerformanceCounterResultKHR( uint64_t uint64_ ) - : uint64( uint64_ ) - {} - - PerformanceCounterResultKHR( float float32_ ) - : float32( float32_ ) - {} - - PerformanceCounterResultKHR( double float64_ ) - : float64( float64_ ) - {} - - PerformanceCounterResultKHR & setInt32( int32_t int32_ ) VULKAN_HPP_NOEXCEPT - { - int32 = int32_; - return *this; - } - - PerformanceCounterResultKHR & setInt64( int64_t int64_ ) VULKAN_HPP_NOEXCEPT - { - int64 = int64_; - return *this; - } - - PerformanceCounterResultKHR & setUint32( uint32_t uint32_ ) VULKAN_HPP_NOEXCEPT - { - uint32 = uint32_; - return *this; - } - - PerformanceCounterResultKHR & setUint64( uint64_t uint64_ ) VULKAN_HPP_NOEXCEPT - { - uint64 = uint64_; - return *this; - } - - PerformanceCounterResultKHR & setFloat32( float float32_ ) VULKAN_HPP_NOEXCEPT - { - float32 = float32_; - return *this; - } - - PerformanceCounterResultKHR & setFloat64( double float64_ ) VULKAN_HPP_NOEXCEPT - { - float64 = float64_; - return *this; - } - - VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR & operator=( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast(this), &rhs, sizeof( VULKAN_HPP_NAMESPACE::PerformanceCounterResultKHR ) ); - return *this; - } - - operator VkPerformanceCounterResultKHR const&() const - { - return *reinterpret_cast(this); - } - - operator VkPerformanceCounterResultKHR &() - { - return *reinterpret_cast(this); - } - - int32_t int32; - int64_t int64; - uint32_t uint32; - uint64_t uint64; - float float32; - double float64; - }; - - struct PerformanceQuerySubmitInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePerformanceQuerySubmitInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR(uint32_t counterPassIndex_ = {}) VULKAN_HPP_NOEXCEPT - : counterPassIndex( counterPassIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR PerformanceQuerySubmitInfoKHR( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PerformanceQuerySubmitInfoKHR( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PerformanceQuerySubmitInfoKHR & operator=( VkPerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PerformanceQuerySubmitInfoKHR & operator=( PerformanceQuerySubmitInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PerformanceQuerySubmitInfoKHR ) ); - return *this; - } - - PerformanceQuerySubmitInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PerformanceQuerySubmitInfoKHR & setCounterPassIndex( uint32_t counterPassIndex_ ) VULKAN_HPP_NOEXCEPT - { - counterPassIndex = counterPassIndex_; - return *this; - } - - - operator VkPerformanceQuerySubmitInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPerformanceQuerySubmitInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PerformanceQuerySubmitInfoKHR const& ) const = default; -#else - bool operator==( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( counterPassIndex == rhs.counterPassIndex ); - } - - bool operator!=( PerformanceQuerySubmitInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePerformanceQuerySubmitInfoKHR; - const void* pNext = {}; - uint32_t counterPassIndex = {}; - - }; - static_assert( sizeof( PerformanceQuerySubmitInfoKHR ) == sizeof( VkPerformanceQuerySubmitInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PerformanceQuerySubmitInfoKHR; - }; - - struct PhysicalDevice16BitStorageFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice16BitStorageFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}) VULKAN_HPP_NOEXCEPT - : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice16BitStorageFeatures( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice16BitStorageFeatures( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevice16BitStorageFeatures & operator=( VkPhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevice16BitStorageFeatures & operator=( PhysicalDevice16BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevice16BitStorageFeatures ) ); - return *this; - } - - PhysicalDevice16BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer16BitAccess = storageBuffer16BitAccess_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant16 = storagePushConstant16_; - return *this; - } - - PhysicalDevice16BitStorageFeatures & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT - { - storageInputOutput16 = storageInputOutput16_; - return *this; - } - - - operator VkPhysicalDevice16BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevice16BitStorageFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice16BitStorageFeatures const& ) const = default; -#else - bool operator==( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) - && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) - && ( storagePushConstant16 == rhs.storagePushConstant16 ) - && ( storageInputOutput16 == rhs.storageInputOutput16 ); - } - - bool operator!=( PhysicalDevice16BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice16BitStorageFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; - - }; - static_assert( sizeof( PhysicalDevice16BitStorageFeatures ) == sizeof( VkPhysicalDevice16BitStorageFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevice16BitStorageFeatures; - }; - using PhysicalDevice16BitStorageFeaturesKHR = PhysicalDevice16BitStorageFeatures; - - struct PhysicalDevice4444FormatsFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ = {}, VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ = {}) VULKAN_HPP_NOEXCEPT - : formatA4R4G4B4( formatA4R4G4B4_ ), formatA4B4G4R4( formatA4B4G4R4_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice4444FormatsFeaturesEXT( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice4444FormatsFeaturesEXT( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevice4444FormatsFeaturesEXT & operator=( VkPhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevice4444FormatsFeaturesEXT & operator=( PhysicalDevice4444FormatsFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevice4444FormatsFeaturesEXT ) ); - return *this; - } - - PhysicalDevice4444FormatsFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevice4444FormatsFeaturesEXT & setFormatA4R4G4B4( VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4_ ) VULKAN_HPP_NOEXCEPT - { - formatA4R4G4B4 = formatA4R4G4B4_; - return *this; - } - - PhysicalDevice4444FormatsFeaturesEXT & setFormatA4B4G4R4( VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4_ ) VULKAN_HPP_NOEXCEPT - { - formatA4B4G4R4 = formatA4B4G4R4_; - return *this; - } - - - operator VkPhysicalDevice4444FormatsFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevice4444FormatsFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice4444FormatsFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( formatA4R4G4B4 == rhs.formatA4R4G4B4 ) - && ( formatA4B4G4R4 == rhs.formatA4B4G4R4 ); - } - - bool operator!=( PhysicalDevice4444FormatsFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice4444FormatsFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 formatA4R4G4B4 = {}; - VULKAN_HPP_NAMESPACE::Bool32 formatA4B4G4R4 = {}; - - }; - static_assert( sizeof( PhysicalDevice4444FormatsFeaturesEXT ) == sizeof( VkPhysicalDevice4444FormatsFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevice4444FormatsFeaturesEXT; - }; - - struct PhysicalDevice8BitStorageFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevice8BitStorageFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}) VULKAN_HPP_NOEXCEPT - : storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevice8BitStorageFeatures( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevice8BitStorageFeatures( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevice8BitStorageFeatures & operator=( VkPhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevice8BitStorageFeatures & operator=( PhysicalDevice8BitStorageFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevice8BitStorageFeatures ) ); - return *this; - } - - PhysicalDevice8BitStorageFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevice8BitStorageFeatures & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer8BitAccess = storageBuffer8BitAccess_; - return *this; - } - - PhysicalDevice8BitStorageFeatures & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; - return *this; - } - - PhysicalDevice8BitStorageFeatures & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant8 = storagePushConstant8_; - return *this; - } - - - operator VkPhysicalDevice8BitStorageFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevice8BitStorageFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevice8BitStorageFeatures const& ) const = default; -#else - bool operator==( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) - && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) - && ( storagePushConstant8 == rhs.storagePushConstant8 ); - } - - bool operator!=( PhysicalDevice8BitStorageFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevice8BitStorageFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; - - }; - static_assert( sizeof( PhysicalDevice8BitStorageFeatures ) == sizeof( VkPhysicalDevice8BitStorageFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevice8BitStorageFeatures; - }; - using PhysicalDevice8BitStorageFeaturesKHR = PhysicalDevice8BitStorageFeatures; - - struct PhysicalDeviceASTCDecodeFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ = {}) VULKAN_HPP_NOEXCEPT - : decodeModeSharedExponent( decodeModeSharedExponent_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceASTCDecodeFeaturesEXT( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceASTCDecodeFeaturesEXT( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceASTCDecodeFeaturesEXT & operator=( VkPhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceASTCDecodeFeaturesEXT & operator=( PhysicalDeviceASTCDecodeFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceASTCDecodeFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceASTCDecodeFeaturesEXT & setDecodeModeSharedExponent( VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent_ ) VULKAN_HPP_NOEXCEPT - { - decodeModeSharedExponent = decodeModeSharedExponent_; - return *this; - } - - - operator VkPhysicalDeviceASTCDecodeFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceASTCDecodeFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceASTCDecodeFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( decodeModeSharedExponent == rhs.decodeModeSharedExponent ); - } - - bool operator!=( PhysicalDeviceASTCDecodeFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAstcDecodeFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 decodeModeSharedExponent = {}; - - }; - static_assert( sizeof( PhysicalDeviceASTCDecodeFeaturesEXT ) == sizeof( VkPhysicalDeviceASTCDecodeFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceASTCDecodeFeaturesEXT; - }; - - struct PhysicalDeviceAccelerationStructureFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ = {}, VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructure( accelerationStructure_ ), accelerationStructureCaptureReplay( accelerationStructureCaptureReplay_ ), accelerationStructureIndirectBuild( accelerationStructureIndirectBuild_ ), accelerationStructureHostCommands( accelerationStructureHostCommands_ ), descriptorBindingAccelerationStructureUpdateAfterBind( descriptorBindingAccelerationStructureUpdateAfterBind_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructureFeaturesKHR( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceAccelerationStructureFeaturesKHR( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( VkPhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & operator=( PhysicalDeviceAccelerationStructureFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceAccelerationStructureFeaturesKHR ) ); - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructure( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructure = accelerationStructure_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCaptureReplay = accelerationStructureCaptureReplay_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureIndirectBuild( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureIndirectBuild = accelerationStructureIndirectBuild_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setAccelerationStructureHostCommands( VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureHostCommands = accelerationStructureHostCommands_; - return *this; - } - - PhysicalDeviceAccelerationStructureFeaturesKHR & setDescriptorBindingAccelerationStructureUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingAccelerationStructureUpdateAfterBind = descriptorBindingAccelerationStructureUpdateAfterBind_; - return *this; - } - - - operator VkPhysicalDeviceAccelerationStructureFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceAccelerationStructureFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceAccelerationStructureFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceAccelerationStructureFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructure == rhs.accelerationStructure ) - && ( accelerationStructureCaptureReplay == rhs.accelerationStructureCaptureReplay ) - && ( accelerationStructureIndirectBuild == rhs.accelerationStructureIndirectBuild ) - && ( accelerationStructureHostCommands == rhs.accelerationStructureHostCommands ) - && ( descriptorBindingAccelerationStructureUpdateAfterBind == rhs.descriptorBindingAccelerationStructureUpdateAfterBind ); - } - - bool operator!=( PhysicalDeviceAccelerationStructureFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructureFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructure = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureIndirectBuild = {}; - VULKAN_HPP_NAMESPACE::Bool32 accelerationStructureHostCommands = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingAccelerationStructureUpdateAfterBind = {}; - - }; - static_assert( sizeof( PhysicalDeviceAccelerationStructureFeaturesKHR ) == sizeof( VkPhysicalDeviceAccelerationStructureFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceAccelerationStructureFeaturesKHR; - }; - - struct PhysicalDeviceAccelerationStructurePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR(uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxPrimitiveCount_ = {}, uint32_t maxPerStageDescriptorAccelerationStructures_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}, uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures_ = {}, uint32_t minAccelerationStructureScratchOffsetAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxPrimitiveCount( maxPrimitiveCount_ ), maxPerStageDescriptorAccelerationStructures( maxPerStageDescriptorAccelerationStructures_ ), maxPerStageDescriptorUpdateAfterBindAccelerationStructures( maxPerStageDescriptorUpdateAfterBindAccelerationStructures_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ), maxDescriptorSetUpdateAfterBindAccelerationStructures( maxDescriptorSetUpdateAfterBindAccelerationStructures_ ), minAccelerationStructureScratchOffsetAlignment( minAccelerationStructureScratchOffsetAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceAccelerationStructurePropertiesKHR( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceAccelerationStructurePropertiesKHR( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( VkPhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceAccelerationStructurePropertiesKHR & operator=( PhysicalDeviceAccelerationStructurePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceAccelerationStructurePropertiesKHR ) ); - return *this; - } - - - operator VkPhysicalDeviceAccelerationStructurePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceAccelerationStructurePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceAccelerationStructurePropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceAccelerationStructurePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxGeometryCount == rhs.maxGeometryCount ) - && ( maxInstanceCount == rhs.maxInstanceCount ) - && ( maxPrimitiveCount == rhs.maxPrimitiveCount ) - && ( maxPerStageDescriptorAccelerationStructures == rhs.maxPerStageDescriptorAccelerationStructures ) - && ( maxPerStageDescriptorUpdateAfterBindAccelerationStructures == rhs.maxPerStageDescriptorUpdateAfterBindAccelerationStructures ) - && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ) - && ( maxDescriptorSetUpdateAfterBindAccelerationStructures == rhs.maxDescriptorSetUpdateAfterBindAccelerationStructures ) - && ( minAccelerationStructureScratchOffsetAlignment == rhs.minAccelerationStructureScratchOffsetAlignment ); - } - - bool operator!=( PhysicalDeviceAccelerationStructurePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceAccelerationStructurePropertiesKHR; - void* pNext = {}; - uint64_t maxGeometryCount = {}; - uint64_t maxInstanceCount = {}; - uint64_t maxPrimitiveCount = {}; - uint32_t maxPerStageDescriptorAccelerationStructures = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures = {}; - uint32_t maxDescriptorSetAccelerationStructures = {}; - uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures = {}; - uint32_t minAccelerationStructureScratchOffsetAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceAccelerationStructurePropertiesKHR ) == sizeof( VkPhysicalDeviceAccelerationStructurePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceAccelerationStructurePropertiesKHR; - }; - - struct PhysicalDeviceBlendOperationAdvancedFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ = {}) VULKAN_HPP_NOEXCEPT - : advancedBlendCoherentOperations( advancedBlendCoherentOperations_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedFeaturesEXT( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & operator=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceBlendOperationAdvancedFeaturesEXT & setAdvancedBlendCoherentOperations( VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations_ ) VULKAN_HPP_NOEXCEPT - { - advancedBlendCoherentOperations = advancedBlendCoherentOperations_; - return *this; - } - - - operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( advancedBlendCoherentOperations == rhs.advancedBlendCoherentOperations ); - } - - bool operator!=( PhysicalDeviceBlendOperationAdvancedFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCoherentOperations = {}; - - }; - static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedFeaturesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBlendOperationAdvancedFeaturesEXT; - }; - - struct PhysicalDeviceBlendOperationAdvancedPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT(uint32_t advancedBlendMaxColorAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations_ = {}) VULKAN_HPP_NOEXCEPT - : advancedBlendMaxColorAttachments( advancedBlendMaxColorAttachments_ ), advancedBlendIndependentBlend( advancedBlendIndependentBlend_ ), advancedBlendNonPremultipliedSrcColor( advancedBlendNonPremultipliedSrcColor_ ), advancedBlendNonPremultipliedDstColor( advancedBlendNonPremultipliedDstColor_ ), advancedBlendCorrelatedOverlap( advancedBlendCorrelatedOverlap_ ), advancedBlendAllOperations( advancedBlendAllOperations_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBlendOperationAdvancedPropertiesEXT( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBlendOperationAdvancedPropertiesEXT( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceBlendOperationAdvancedPropertiesEXT & operator=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( advancedBlendMaxColorAttachments == rhs.advancedBlendMaxColorAttachments ) - && ( advancedBlendIndependentBlend == rhs.advancedBlendIndependentBlend ) - && ( advancedBlendNonPremultipliedSrcColor == rhs.advancedBlendNonPremultipliedSrcColor ) - && ( advancedBlendNonPremultipliedDstColor == rhs.advancedBlendNonPremultipliedDstColor ) - && ( advancedBlendCorrelatedOverlap == rhs.advancedBlendCorrelatedOverlap ) - && ( advancedBlendAllOperations == rhs.advancedBlendAllOperations ); - } - - bool operator!=( PhysicalDeviceBlendOperationAdvancedPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBlendOperationAdvancedPropertiesEXT; - void* pNext = {}; - uint32_t advancedBlendMaxColorAttachments = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendIndependentBlend = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedSrcColor = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendNonPremultipliedDstColor = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendCorrelatedOverlap = {}; - VULKAN_HPP_NAMESPACE::Bool32 advancedBlendAllOperations = {}; - - }; - static_assert( sizeof( PhysicalDeviceBlendOperationAdvancedPropertiesEXT ) == sizeof( VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBlendOperationAdvancedPropertiesEXT; - }; - - struct PhysicalDeviceBufferDeviceAddressFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT - : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeatures( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBufferDeviceAddressFeatures( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceBufferDeviceAddressFeatures & operator=( VkPhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & operator=( PhysicalDeviceBufferDeviceAddressFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) ); - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddress = bufferDeviceAddress_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeatures & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; - return *this; - } - - - operator VkPhysicalDeviceBufferDeviceAddressFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBufferDeviceAddressFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBufferDeviceAddressFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); - } - - bool operator!=( PhysicalDeviceBufferDeviceAddressFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; - - }; - static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeatures ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBufferDeviceAddressFeatures; - }; - using PhysicalDeviceBufferDeviceAddressFeaturesKHR = PhysicalDeviceBufferDeviceAddressFeatures; - - struct PhysicalDeviceBufferDeviceAddressFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}) VULKAN_HPP_NOEXCEPT - : bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceBufferDeviceAddressFeaturesEXT( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceBufferDeviceAddressFeaturesEXT( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & operator=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddress = bufferDeviceAddress_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; - return *this; - } - - PhysicalDeviceBufferDeviceAddressFeaturesEXT & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; - return *this; - } - - - operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceBufferDeviceAddressFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ); - } - - bool operator!=( PhysicalDeviceBufferDeviceAddressFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceBufferDeviceAddressFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; - - }; - static_assert( sizeof( PhysicalDeviceBufferDeviceAddressFeaturesEXT ) == sizeof( VkPhysicalDeviceBufferDeviceAddressFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceBufferDeviceAddressFeaturesEXT; - }; - using PhysicalDeviceBufferAddressFeaturesEXT = PhysicalDeviceBufferDeviceAddressFeaturesEXT; - - struct PhysicalDeviceCoherentMemoryFeaturesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD(VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ = {}) VULKAN_HPP_NOEXCEPT - : deviceCoherentMemory( deviceCoherentMemory_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoherentMemoryFeaturesAMD( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCoherentMemoryFeaturesAMD( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( VkPhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCoherentMemoryFeaturesAMD & operator=( PhysicalDeviceCoherentMemoryFeaturesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) ); - return *this; - } - - PhysicalDeviceCoherentMemoryFeaturesAMD & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCoherentMemoryFeaturesAMD & setDeviceCoherentMemory( VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory_ ) VULKAN_HPP_NOEXCEPT - { - deviceCoherentMemory = deviceCoherentMemory_; - return *this; - } - - - operator VkPhysicalDeviceCoherentMemoryFeaturesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCoherentMemoryFeaturesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCoherentMemoryFeaturesAMD const& ) const = default; -#else - bool operator==( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceCoherentMemory == rhs.deviceCoherentMemory ); - } - - bool operator!=( PhysicalDeviceCoherentMemoryFeaturesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoherentMemoryFeaturesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceCoherentMemory = {}; - - }; - static_assert( sizeof( PhysicalDeviceCoherentMemoryFeaturesAMD ) == sizeof( VkPhysicalDeviceCoherentMemoryFeaturesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCoherentMemoryFeaturesAMD; - }; - - struct PhysicalDeviceComputeShaderDerivativesFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ = {}) VULKAN_HPP_NOEXCEPT - : computeDerivativeGroupQuads( computeDerivativeGroupQuads_ ), computeDerivativeGroupLinear( computeDerivativeGroupLinear_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceComputeShaderDerivativesFeaturesNV( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceComputeShaderDerivativesFeaturesNV( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & operator=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) ); - return *this; - } - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupQuads( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads_ ) VULKAN_HPP_NOEXCEPT - { - computeDerivativeGroupQuads = computeDerivativeGroupQuads_; - return *this; - } - - PhysicalDeviceComputeShaderDerivativesFeaturesNV & setComputeDerivativeGroupLinear( VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear_ ) VULKAN_HPP_NOEXCEPT - { - computeDerivativeGroupLinear = computeDerivativeGroupLinear_; - return *this; - } - - - operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceComputeShaderDerivativesFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( computeDerivativeGroupQuads == rhs.computeDerivativeGroupQuads ) - && ( computeDerivativeGroupLinear == rhs.computeDerivativeGroupLinear ); - } - - bool operator!=( PhysicalDeviceComputeShaderDerivativesFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceComputeShaderDerivativesFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupQuads = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeDerivativeGroupLinear = {}; - - }; - static_assert( sizeof( PhysicalDeviceComputeShaderDerivativesFeaturesNV ) == sizeof( VkPhysicalDeviceComputeShaderDerivativesFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceComputeShaderDerivativesFeaturesNV; - }; - - struct PhysicalDeviceConditionalRenderingFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ = {}, VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ = {}) VULKAN_HPP_NOEXCEPT - : conditionalRendering( conditionalRendering_ ), inheritedConditionalRendering( inheritedConditionalRendering_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceConditionalRenderingFeaturesEXT( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceConditionalRenderingFeaturesEXT( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( VkPhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceConditionalRenderingFeaturesEXT & operator=( PhysicalDeviceConditionalRenderingFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceConditionalRenderingFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceConditionalRenderingFeaturesEXT & setConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering_ ) VULKAN_HPP_NOEXCEPT - { - conditionalRendering = conditionalRendering_; - return *this; - } - - PhysicalDeviceConditionalRenderingFeaturesEXT & setInheritedConditionalRendering( VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering_ ) VULKAN_HPP_NOEXCEPT - { - inheritedConditionalRendering = inheritedConditionalRendering_; - return *this; - } - - - operator VkPhysicalDeviceConditionalRenderingFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceConditionalRenderingFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceConditionalRenderingFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conditionalRendering == rhs.conditionalRendering ) - && ( inheritedConditionalRendering == rhs.inheritedConditionalRendering ); - } - - bool operator!=( PhysicalDeviceConditionalRenderingFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConditionalRenderingFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 conditionalRendering = {}; - VULKAN_HPP_NAMESPACE::Bool32 inheritedConditionalRendering = {}; - - }; - static_assert( sizeof( PhysicalDeviceConditionalRenderingFeaturesEXT ) == sizeof( VkPhysicalDeviceConditionalRenderingFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceConditionalRenderingFeaturesEXT; - }; - - struct PhysicalDeviceConservativeRasterizationPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT(float primitiveOverestimationSize_ = {}, float maxExtraPrimitiveOverestimationSize_ = {}, float extraPrimitiveOverestimationSizeGranularity_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable_ = {}, VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage_ = {}) VULKAN_HPP_NOEXCEPT - : primitiveOverestimationSize( primitiveOverestimationSize_ ), maxExtraPrimitiveOverestimationSize( maxExtraPrimitiveOverestimationSize_ ), extraPrimitiveOverestimationSizeGranularity( extraPrimitiveOverestimationSizeGranularity_ ), primitiveUnderestimation( primitiveUnderestimation_ ), conservativePointAndLineRasterization( conservativePointAndLineRasterization_ ), degenerateTrianglesRasterized( degenerateTrianglesRasterized_ ), degenerateLinesRasterized( degenerateLinesRasterized_ ), fullyCoveredFragmentShaderInputVariable( fullyCoveredFragmentShaderInputVariable_ ), conservativeRasterizationPostDepthCoverage( conservativeRasterizationPostDepthCoverage_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceConservativeRasterizationPropertiesEXT( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceConservativeRasterizationPropertiesEXT( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( VkPhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceConservativeRasterizationPropertiesEXT & operator=( PhysicalDeviceConservativeRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceConservativeRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceConservativeRasterizationPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( primitiveOverestimationSize == rhs.primitiveOverestimationSize ) - && ( maxExtraPrimitiveOverestimationSize == rhs.maxExtraPrimitiveOverestimationSize ) - && ( extraPrimitiveOverestimationSizeGranularity == rhs.extraPrimitiveOverestimationSizeGranularity ) - && ( primitiveUnderestimation == rhs.primitiveUnderestimation ) - && ( conservativePointAndLineRasterization == rhs.conservativePointAndLineRasterization ) - && ( degenerateTrianglesRasterized == rhs.degenerateTrianglesRasterized ) - && ( degenerateLinesRasterized == rhs.degenerateLinesRasterized ) - && ( fullyCoveredFragmentShaderInputVariable == rhs.fullyCoveredFragmentShaderInputVariable ) - && ( conservativeRasterizationPostDepthCoverage == rhs.conservativeRasterizationPostDepthCoverage ); - } - - bool operator!=( PhysicalDeviceConservativeRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceConservativeRasterizationPropertiesEXT; - void* pNext = {}; - float primitiveOverestimationSize = {}; - float maxExtraPrimitiveOverestimationSize = {}; - float extraPrimitiveOverestimationSizeGranularity = {}; - VULKAN_HPP_NAMESPACE::Bool32 primitiveUnderestimation = {}; - VULKAN_HPP_NAMESPACE::Bool32 conservativePointAndLineRasterization = {}; - VULKAN_HPP_NAMESPACE::Bool32 degenerateTrianglesRasterized = {}; - VULKAN_HPP_NAMESPACE::Bool32 degenerateLinesRasterized = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullyCoveredFragmentShaderInputVariable = {}; - VULKAN_HPP_NAMESPACE::Bool32 conservativeRasterizationPostDepthCoverage = {}; - - }; - static_assert( sizeof( PhysicalDeviceConservativeRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceConservativeRasterizationPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceConservativeRasterizationPropertiesEXT; - }; - - struct PhysicalDeviceCooperativeMatrixFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ = {}, VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ = {}) VULKAN_HPP_NOEXCEPT - : cooperativeMatrix( cooperativeMatrix_ ), cooperativeMatrixRobustBufferAccess( cooperativeMatrixRobustBufferAccess_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixFeaturesNV( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCooperativeMatrixFeaturesNV( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( VkPhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCooperativeMatrixFeaturesNV & operator=( PhysicalDeviceCooperativeMatrixFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) ); - return *this; - } - - PhysicalDeviceCooperativeMatrixFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrix( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix_ ) VULKAN_HPP_NOEXCEPT - { - cooperativeMatrix = cooperativeMatrix_; - return *this; - } - - PhysicalDeviceCooperativeMatrixFeaturesNV & setCooperativeMatrixRobustBufferAccess( VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess_ ) VULKAN_HPP_NOEXCEPT - { - cooperativeMatrixRobustBufferAccess = cooperativeMatrixRobustBufferAccess_; - return *this; - } - - - operator VkPhysicalDeviceCooperativeMatrixFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCooperativeMatrixFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCooperativeMatrixFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cooperativeMatrix == rhs.cooperativeMatrix ) - && ( cooperativeMatrixRobustBufferAccess == rhs.cooperativeMatrixRobustBufferAccess ); - } - - bool operator!=( PhysicalDeviceCooperativeMatrixFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrix = {}; - VULKAN_HPP_NAMESPACE::Bool32 cooperativeMatrixRobustBufferAccess = {}; - - }; - static_assert( sizeof( PhysicalDeviceCooperativeMatrixFeaturesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCooperativeMatrixFeaturesNV; - }; - - struct PhysicalDeviceCooperativeMatrixPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV(VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages_ = {}) VULKAN_HPP_NOEXCEPT - : cooperativeMatrixSupportedStages( cooperativeMatrixSupportedStages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCooperativeMatrixPropertiesNV( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCooperativeMatrixPropertiesNV( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( VkPhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCooperativeMatrixPropertiesNV & operator=( PhysicalDeviceCooperativeMatrixPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) ); - return *this; - } - - - operator VkPhysicalDeviceCooperativeMatrixPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCooperativeMatrixPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCooperativeMatrixPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cooperativeMatrixSupportedStages == rhs.cooperativeMatrixSupportedStages ); - } - - bool operator!=( PhysicalDeviceCooperativeMatrixPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCooperativeMatrixPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags cooperativeMatrixSupportedStages = {}; - - }; - static_assert( sizeof( PhysicalDeviceCooperativeMatrixPropertiesNV ) == sizeof( VkPhysicalDeviceCooperativeMatrixPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCooperativeMatrixPropertiesNV; - }; - - struct PhysicalDeviceCornerSampledImageFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ = {}) VULKAN_HPP_NOEXCEPT - : cornerSampledImage( cornerSampledImage_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCornerSampledImageFeaturesNV( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCornerSampledImageFeaturesNV( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceCornerSampledImageFeaturesNV & operator=( VkPhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCornerSampledImageFeaturesNV & operator=( PhysicalDeviceCornerSampledImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) ); - return *this; - } - - PhysicalDeviceCornerSampledImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCornerSampledImageFeaturesNV & setCornerSampledImage( VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage_ ) VULKAN_HPP_NOEXCEPT - { - cornerSampledImage = cornerSampledImage_; - return *this; - } - - - operator VkPhysicalDeviceCornerSampledImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCornerSampledImageFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCornerSampledImageFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( cornerSampledImage == rhs.cornerSampledImage ); - } - - bool operator!=( PhysicalDeviceCornerSampledImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCornerSampledImageFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 cornerSampledImage = {}; - - }; - static_assert( sizeof( PhysicalDeviceCornerSampledImageFeaturesNV ) == sizeof( VkPhysicalDeviceCornerSampledImageFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCornerSampledImageFeaturesNV; - }; - - struct PhysicalDeviceCoverageReductionModeFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ = {}) VULKAN_HPP_NOEXCEPT - : coverageReductionMode( coverageReductionMode_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCoverageReductionModeFeaturesNV( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCoverageReductionModeFeaturesNV( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( VkPhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCoverageReductionModeFeaturesNV & operator=( PhysicalDeviceCoverageReductionModeFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) ); - return *this; - } - - PhysicalDeviceCoverageReductionModeFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCoverageReductionModeFeaturesNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT - { - coverageReductionMode = coverageReductionMode_; - return *this; - } - - - operator VkPhysicalDeviceCoverageReductionModeFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCoverageReductionModeFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCoverageReductionModeFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( coverageReductionMode == rhs.coverageReductionMode ); - } - - bool operator!=( PhysicalDeviceCoverageReductionModeFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCoverageReductionModeFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 coverageReductionMode = {}; - - }; - static_assert( sizeof( PhysicalDeviceCoverageReductionModeFeaturesNV ) == sizeof( VkPhysicalDeviceCoverageReductionModeFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCoverageReductionModeFeaturesNV; - }; - - struct PhysicalDeviceCustomBorderColorFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ = {}) VULKAN_HPP_NOEXCEPT - : customBorderColors( customBorderColors_ ), customBorderColorWithoutFormat( customBorderColorWithoutFormat_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorFeaturesEXT( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCustomBorderColorFeaturesEXT( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( VkPhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCustomBorderColorFeaturesEXT & operator=( PhysicalDeviceCustomBorderColorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceCustomBorderColorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColors( VULKAN_HPP_NAMESPACE::Bool32 customBorderColors_ ) VULKAN_HPP_NOEXCEPT - { - customBorderColors = customBorderColors_; - return *this; - } - - PhysicalDeviceCustomBorderColorFeaturesEXT & setCustomBorderColorWithoutFormat( VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat_ ) VULKAN_HPP_NOEXCEPT - { - customBorderColorWithoutFormat = customBorderColorWithoutFormat_; - return *this; - } - - - operator VkPhysicalDeviceCustomBorderColorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCustomBorderColorFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCustomBorderColorFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( customBorderColors == rhs.customBorderColors ) - && ( customBorderColorWithoutFormat == rhs.customBorderColorWithoutFormat ); - } - - bool operator!=( PhysicalDeviceCustomBorderColorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 customBorderColors = {}; - VULKAN_HPP_NAMESPACE::Bool32 customBorderColorWithoutFormat = {}; - - }; - static_assert( sizeof( PhysicalDeviceCustomBorderColorFeaturesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCustomBorderColorFeaturesEXT; - }; - - struct PhysicalDeviceCustomBorderColorPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT(uint32_t maxCustomBorderColorSamplers_ = {}) VULKAN_HPP_NOEXCEPT - : maxCustomBorderColorSamplers( maxCustomBorderColorSamplers_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceCustomBorderColorPropertiesEXT( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceCustomBorderColorPropertiesEXT( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( VkPhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceCustomBorderColorPropertiesEXT & operator=( PhysicalDeviceCustomBorderColorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceCustomBorderColorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceCustomBorderColorPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceCustomBorderColorPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxCustomBorderColorSamplers == rhs.maxCustomBorderColorSamplers ); - } - - bool operator!=( PhysicalDeviceCustomBorderColorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceCustomBorderColorPropertiesEXT; - void* pNext = {}; - uint32_t maxCustomBorderColorSamplers = {}; - - }; - static_assert( sizeof( PhysicalDeviceCustomBorderColorPropertiesEXT ) == sizeof( VkPhysicalDeviceCustomBorderColorPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceCustomBorderColorPropertiesEXT; - }; - - struct PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ = {}) VULKAN_HPP_NOEXCEPT - : dedicatedAllocationImageAliasing( dedicatedAllocationImageAliasing_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & operator=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) ); - return *this; - } - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV & setDedicatedAllocationImageAliasing( VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing_ ) VULKAN_HPP_NOEXCEPT - { - dedicatedAllocationImageAliasing = dedicatedAllocationImageAliasing_; - return *this; - } - - - operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dedicatedAllocationImageAliasing == rhs.dedicatedAllocationImageAliasing ); - } - - bool operator!=( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 dedicatedAllocationImageAliasing = {}; - - }; - static_assert( sizeof( PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) == sizeof( VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - }; - - struct PhysicalDeviceDepthClipEnableFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT - : depthClipEnable( depthClipEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthClipEnableFeaturesEXT( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDepthClipEnableFeaturesEXT( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( VkPhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDepthClipEnableFeaturesEXT & operator=( PhysicalDeviceDepthClipEnableFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceDepthClipEnableFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDepthClipEnableFeaturesEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthClipEnable = depthClipEnable_; - return *this; - } - - - operator VkPhysicalDeviceDepthClipEnableFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDepthClipEnableFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDepthClipEnableFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( depthClipEnable == rhs.depthClipEnable ); - } - - bool operator!=( PhysicalDeviceDepthClipEnableFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthClipEnableFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; - - }; - static_assert( sizeof( PhysicalDeviceDepthClipEnableFeaturesEXT ) == sizeof( VkPhysicalDeviceDepthClipEnableFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDepthClipEnableFeaturesEXT; - }; - - struct PhysicalDeviceDepthStencilResolveProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDepthStencilResolveProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties(VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}) VULKAN_HPP_NOEXCEPT - : supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDepthStencilResolveProperties( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDepthStencilResolveProperties( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDepthStencilResolveProperties & operator=( VkPhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDepthStencilResolveProperties & operator=( PhysicalDeviceDepthStencilResolveProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDepthStencilResolveProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceDepthStencilResolveProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDepthStencilResolveProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDepthStencilResolveProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) - && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) - && ( independentResolveNone == rhs.independentResolveNone ) - && ( independentResolve == rhs.independentResolve ); - } - - bool operator!=( PhysicalDeviceDepthStencilResolveProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDepthStencilResolveProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; - - }; - static_assert( sizeof( PhysicalDeviceDepthStencilResolveProperties ) == sizeof( VkPhysicalDeviceDepthStencilResolveProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDepthStencilResolveProperties; - }; - using PhysicalDeviceDepthStencilResolvePropertiesKHR = PhysicalDeviceDepthStencilResolveProperties; - - struct PhysicalDeviceDescriptorIndexingFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}) VULKAN_HPP_NOEXCEPT - : shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingFeatures( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDescriptorIndexingFeatures( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDescriptorIndexingFeatures & operator=( VkPhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & operator=( PhysicalDeviceDescriptorIndexingFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingFeatures ) ); - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; - return *this; - } - - PhysicalDeviceDescriptorIndexingFeatures & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT - { - runtimeDescriptorArray = runtimeDescriptorArray_; - return *this; - } - - - operator VkPhysicalDeviceDescriptorIndexingFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDescriptorIndexingFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDescriptorIndexingFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) - && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) - && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) - && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) - && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) - && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) - && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) - && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) - && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) - && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) - && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) - && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) - && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) - && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) - && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) - && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) - && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) - && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) - && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) - && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ); - } - - bool operator!=( PhysicalDeviceDescriptorIndexingFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; - - }; - static_assert( sizeof( PhysicalDeviceDescriptorIndexingFeatures ) == sizeof( VkPhysicalDeviceDescriptorIndexingFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDescriptorIndexingFeatures; - }; - using PhysicalDeviceDescriptorIndexingFeaturesEXT = PhysicalDeviceDescriptorIndexingFeatures; - - struct PhysicalDeviceDescriptorIndexingProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDescriptorIndexingProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties(uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDescriptorIndexingProperties( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDescriptorIndexingProperties( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDescriptorIndexingProperties & operator=( VkPhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDescriptorIndexingProperties & operator=( PhysicalDeviceDescriptorIndexingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDescriptorIndexingProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceDescriptorIndexingProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDescriptorIndexingProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDescriptorIndexingProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) - && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) - && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) - && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) - && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) - && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) - && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) - && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) - && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) - && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) - && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) - && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) - && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) - && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) - && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) - && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ); - } - - bool operator!=( PhysicalDeviceDescriptorIndexingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDescriptorIndexingProperties; - void* pNext = {}; - uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; - uint32_t maxPerStageUpdateAfterBindResources = {}; - uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; - - }; - static_assert( sizeof( PhysicalDeviceDescriptorIndexingProperties ) == sizeof( VkPhysicalDeviceDescriptorIndexingProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDescriptorIndexingProperties; - }; - using PhysicalDeviceDescriptorIndexingPropertiesEXT = PhysicalDeviceDescriptorIndexingProperties; - - struct PhysicalDeviceDeviceGeneratedCommandsFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ = {}) VULKAN_HPP_NOEXCEPT - : deviceGeneratedCommands( deviceGeneratedCommands_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) ); - return *this; - } - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDeviceGeneratedCommandsFeaturesNV & setDeviceGeneratedCommands( VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands_ ) VULKAN_HPP_NOEXCEPT - { - deviceGeneratedCommands = deviceGeneratedCommands_; - return *this; - } - - - operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceGeneratedCommands == rhs.deviceGeneratedCommands ); - } - - bool operator!=( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceGeneratedCommands = {}; - - }; - static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsFeaturesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDeviceGeneratedCommandsFeaturesNV; - }; - - struct PhysicalDeviceDeviceGeneratedCommandsPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV(uint32_t maxGraphicsShaderGroupCount_ = {}, uint32_t maxIndirectSequenceCount_ = {}, uint32_t maxIndirectCommandsTokenCount_ = {}, uint32_t maxIndirectCommandsStreamCount_ = {}, uint32_t maxIndirectCommandsTokenOffset_ = {}, uint32_t maxIndirectCommandsStreamStride_ = {}, uint32_t minSequencesCountBufferOffsetAlignment_ = {}, uint32_t minSequencesIndexBufferOffsetAlignment_ = {}, uint32_t minIndirectCommandsBufferOffsetAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : maxGraphicsShaderGroupCount( maxGraphicsShaderGroupCount_ ), maxIndirectSequenceCount( maxIndirectSequenceCount_ ), maxIndirectCommandsTokenCount( maxIndirectCommandsTokenCount_ ), maxIndirectCommandsStreamCount( maxIndirectCommandsStreamCount_ ), maxIndirectCommandsTokenOffset( maxIndirectCommandsTokenOffset_ ), maxIndirectCommandsStreamStride( maxIndirectCommandsStreamStride_ ), minSequencesCountBufferOffsetAlignment( minSequencesCountBufferOffsetAlignment_ ), minSequencesIndexBufferOffsetAlignment( minSequencesIndexBufferOffsetAlignment_ ), minIndirectCommandsBufferOffsetAlignment( minIndirectCommandsBufferOffsetAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceGeneratedCommandsPropertiesNV( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDeviceGeneratedCommandsPropertiesNV & operator=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) ); - return *this; - } - - - operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxGraphicsShaderGroupCount == rhs.maxGraphicsShaderGroupCount ) - && ( maxIndirectSequenceCount == rhs.maxIndirectSequenceCount ) - && ( maxIndirectCommandsTokenCount == rhs.maxIndirectCommandsTokenCount ) - && ( maxIndirectCommandsStreamCount == rhs.maxIndirectCommandsStreamCount ) - && ( maxIndirectCommandsTokenOffset == rhs.maxIndirectCommandsTokenOffset ) - && ( maxIndirectCommandsStreamStride == rhs.maxIndirectCommandsStreamStride ) - && ( minSequencesCountBufferOffsetAlignment == rhs.minSequencesCountBufferOffsetAlignment ) - && ( minSequencesIndexBufferOffsetAlignment == rhs.minSequencesIndexBufferOffsetAlignment ) - && ( minIndirectCommandsBufferOffsetAlignment == rhs.minIndirectCommandsBufferOffsetAlignment ); - } - - bool operator!=( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceGeneratedCommandsPropertiesNV; - void* pNext = {}; - uint32_t maxGraphicsShaderGroupCount = {}; - uint32_t maxIndirectSequenceCount = {}; - uint32_t maxIndirectCommandsTokenCount = {}; - uint32_t maxIndirectCommandsStreamCount = {}; - uint32_t maxIndirectCommandsTokenOffset = {}; - uint32_t maxIndirectCommandsStreamStride = {}; - uint32_t minSequencesCountBufferOffsetAlignment = {}; - uint32_t minSequencesIndexBufferOffsetAlignment = {}; - uint32_t minIndirectCommandsBufferOffsetAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceDeviceGeneratedCommandsPropertiesNV ) == sizeof( VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDeviceGeneratedCommandsPropertiesNV; - }; - - struct PhysicalDeviceDeviceMemoryReportFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ = {}) VULKAN_HPP_NOEXCEPT - : deviceMemoryReport( deviceMemoryReport_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDeviceMemoryReportFeaturesEXT( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDeviceMemoryReportFeaturesEXT( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDeviceMemoryReportFeaturesEXT & operator=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceDeviceMemoryReportFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDeviceMemoryReportFeaturesEXT & setDeviceMemoryReport( VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport_ ) VULKAN_HPP_NOEXCEPT - { - deviceMemoryReport = deviceMemoryReport_; - return *this; - } - - - operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDeviceMemoryReportFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceMemoryReport == rhs.deviceMemoryReport ); - } - - bool operator!=( PhysicalDeviceDeviceMemoryReportFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDeviceMemoryReportFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceMemoryReport = {}; - - }; - static_assert( sizeof( PhysicalDeviceDeviceMemoryReportFeaturesEXT ) == sizeof( VkPhysicalDeviceDeviceMemoryReportFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDeviceMemoryReportFeaturesEXT; - }; - - struct PhysicalDeviceDiagnosticsConfigFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ = {}) VULKAN_HPP_NOEXCEPT - : diagnosticsConfig( diagnosticsConfig_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiagnosticsConfigFeaturesNV( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDiagnosticsConfigFeaturesNV( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( VkPhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDiagnosticsConfigFeaturesNV & operator=( PhysicalDeviceDiagnosticsConfigFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) ); - return *this; - } - - PhysicalDeviceDiagnosticsConfigFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceDiagnosticsConfigFeaturesNV & setDiagnosticsConfig( VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig_ ) VULKAN_HPP_NOEXCEPT - { - diagnosticsConfig = diagnosticsConfig_; - return *this; - } - - - operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDiagnosticsConfigFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDiagnosticsConfigFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( diagnosticsConfig == rhs.diagnosticsConfig ); - } - - bool operator!=( PhysicalDeviceDiagnosticsConfigFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiagnosticsConfigFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 diagnosticsConfig = {}; - - }; - static_assert( sizeof( PhysicalDeviceDiagnosticsConfigFeaturesNV ) == sizeof( VkPhysicalDeviceDiagnosticsConfigFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDiagnosticsConfigFeaturesNV; - }; - - struct PhysicalDeviceDiscardRectanglePropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT(uint32_t maxDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT - : maxDiscardRectangles( maxDiscardRectangles_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceDiscardRectanglePropertiesEXT( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDiscardRectanglePropertiesEXT( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( VkPhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDiscardRectanglePropertiesEXT & operator=( PhysicalDeviceDiscardRectanglePropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceDiscardRectanglePropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDiscardRectanglePropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDiscardRectanglePropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxDiscardRectangles == rhs.maxDiscardRectangles ); - } - - bool operator!=( PhysicalDeviceDiscardRectanglePropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDiscardRectanglePropertiesEXT; - void* pNext = {}; - uint32_t maxDiscardRectangles = {}; - - }; - static_assert( sizeof( PhysicalDeviceDiscardRectanglePropertiesEXT ) == sizeof( VkPhysicalDeviceDiscardRectanglePropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDiscardRectanglePropertiesEXT; - }; - - struct PhysicalDeviceDriverProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceDriverProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array const& driverName_ = {}, std::array const& driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}) VULKAN_HPP_NOEXCEPT - : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceDriverProperties( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceDriverProperties( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceDriverProperties & operator=( VkPhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceDriverProperties & operator=( PhysicalDeviceDriverProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceDriverProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceDriverProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceDriverProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceDriverProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( driverID == rhs.driverID ) - && ( driverName == rhs.driverName ) - && ( driverInfo == rhs.driverInfo ) - && ( conformanceVersion == rhs.conformanceVersion ); - } - - bool operator!=( PhysicalDeviceDriverProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceDriverProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverInfo = {}; - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; - - }; - static_assert( sizeof( PhysicalDeviceDriverProperties ) == sizeof( VkPhysicalDeviceDriverProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceDriverProperties; - }; - using PhysicalDeviceDriverPropertiesKHR = PhysicalDeviceDriverProperties; - - struct PhysicalDeviceExclusiveScissorFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ = {}) VULKAN_HPP_NOEXCEPT - : exclusiveScissor( exclusiveScissor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExclusiveScissorFeaturesNV( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExclusiveScissorFeaturesNV( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceExclusiveScissorFeaturesNV & operator=( VkPhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV & operator=( PhysicalDeviceExclusiveScissorFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) ); - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExclusiveScissorFeaturesNV & setExclusiveScissor( VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor_ ) VULKAN_HPP_NOEXCEPT - { - exclusiveScissor = exclusiveScissor_; - return *this; - } - - - operator VkPhysicalDeviceExclusiveScissorFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExclusiveScissorFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExclusiveScissorFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exclusiveScissor == rhs.exclusiveScissor ); - } - - bool operator!=( PhysicalDeviceExclusiveScissorFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExclusiveScissorFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 exclusiveScissor = {}; - - }; - static_assert( sizeof( PhysicalDeviceExclusiveScissorFeaturesNV ) == sizeof( VkPhysicalDeviceExclusiveScissorFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExclusiveScissorFeaturesNV; - }; - - struct PhysicalDeviceExtendedDynamicStateFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ = {}) VULKAN_HPP_NOEXCEPT - : extendedDynamicState( extendedDynamicState_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExtendedDynamicStateFeaturesEXT( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExtendedDynamicStateFeaturesEXT( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExtendedDynamicStateFeaturesEXT & operator=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceExtendedDynamicStateFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExtendedDynamicStateFeaturesEXT & setExtendedDynamicState( VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState_ ) VULKAN_HPP_NOEXCEPT - { - extendedDynamicState = extendedDynamicState_; - return *this; - } - - - operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExtendedDynamicStateFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( extendedDynamicState == rhs.extendedDynamicState ); - } - - bool operator!=( PhysicalDeviceExtendedDynamicStateFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExtendedDynamicStateFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 extendedDynamicState = {}; - - }; - static_assert( sizeof( PhysicalDeviceExtendedDynamicStateFeaturesEXT ) == sizeof( VkPhysicalDeviceExtendedDynamicStateFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExtendedDynamicStateFeaturesEXT; - }; - - struct PhysicalDeviceExternalImageFormatInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalImageFormatInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd) VULKAN_HPP_NOEXCEPT - : handleType( handleType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalImageFormatInfo( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalImageFormatInfo( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceExternalImageFormatInfo & operator=( VkPhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalImageFormatInfo & operator=( PhysicalDeviceExternalImageFormatInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceExternalImageFormatInfo ) ); - return *this; - } - - PhysicalDeviceExternalImageFormatInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceExternalImageFormatInfo & setHandleType( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType_ ) VULKAN_HPP_NOEXCEPT - { - handleType = handleType_; - return *this; - } - - - operator VkPhysicalDeviceExternalImageFormatInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalImageFormatInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalImageFormatInfo const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( handleType == rhs.handleType ); - } - - bool operator!=( PhysicalDeviceExternalImageFormatInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalImageFormatInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType = VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits::eOpaqueFd; - - }; - static_assert( sizeof( PhysicalDeviceExternalImageFormatInfo ) == sizeof( VkPhysicalDeviceExternalImageFormatInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalImageFormatInfo; - }; - using PhysicalDeviceExternalImageFormatInfoKHR = PhysicalDeviceExternalImageFormatInfo; - - struct PhysicalDeviceExternalMemoryHostPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : minImportedHostPointerAlignment( minImportedHostPointerAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceExternalMemoryHostPropertiesEXT( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceExternalMemoryHostPropertiesEXT( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( VkPhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceExternalMemoryHostPropertiesEXT & operator=( PhysicalDeviceExternalMemoryHostPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceExternalMemoryHostPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceExternalMemoryHostPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minImportedHostPointerAlignment == rhs.minImportedHostPointerAlignment ); - } - - bool operator!=( PhysicalDeviceExternalMemoryHostPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceExternalMemoryHostPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize minImportedHostPointerAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceExternalMemoryHostPropertiesEXT ) == sizeof( VkPhysicalDeviceExternalMemoryHostPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceExternalMemoryHostPropertiesEXT; - }; - - struct PhysicalDeviceFloatControlsProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFloatControlsProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties(VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}) VULKAN_HPP_NOEXCEPT - : denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFloatControlsProperties( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFloatControlsProperties( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFloatControlsProperties & operator=( VkPhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFloatControlsProperties & operator=( PhysicalDeviceFloatControlsProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFloatControlsProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceFloatControlsProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFloatControlsProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFloatControlsProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) - && ( roundingModeIndependence == rhs.roundingModeIndependence ) - && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) - && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) - && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) - && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) - && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) - && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) - && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) - && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) - && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) - && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) - && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) - && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) - && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) - && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) - && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ); - } - - bool operator!=( PhysicalDeviceFloatControlsProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFloatControlsProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; - - }; - static_assert( sizeof( PhysicalDeviceFloatControlsProperties ) == sizeof( VkPhysicalDeviceFloatControlsProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFloatControlsProperties; - }; - using PhysicalDeviceFloatControlsPropertiesKHR = PhysicalDeviceFloatControlsProperties; - - struct PhysicalDeviceFragmentDensityMap2FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentDensityMapDeferred( fragmentDensityMapDeferred_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2FeaturesEXT( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMap2FeaturesEXT( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentDensityMap2FeaturesEXT & operator=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) ); - return *this; - } - - PhysicalDeviceFragmentDensityMap2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentDensityMap2FeaturesEXT & setFragmentDensityMapDeferred( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapDeferred = fragmentDensityMapDeferred_; - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMap2FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMapDeferred == rhs.fragmentDensityMapDeferred ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMap2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDeferred = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMap2FeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMap2FeaturesEXT; - }; - - struct PhysicalDeviceFragmentDensityMap2PropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT(VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess_ = {}, uint32_t maxSubsampledArrayLayers_ = {}, uint32_t maxDescriptorSetSubsampledSamplers_ = {}) VULKAN_HPP_NOEXCEPT - : subsampledLoads( subsampledLoads_ ), subsampledCoarseReconstructionEarlyAccess( subsampledCoarseReconstructionEarlyAccess_ ), maxSubsampledArrayLayers( maxSubsampledArrayLayers_ ), maxDescriptorSetSubsampledSamplers( maxDescriptorSetSubsampledSamplers_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMap2PropertiesEXT( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMap2PropertiesEXT( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentDensityMap2PropertiesEXT & operator=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMap2PropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subsampledLoads == rhs.subsampledLoads ) - && ( subsampledCoarseReconstructionEarlyAccess == rhs.subsampledCoarseReconstructionEarlyAccess ) - && ( maxSubsampledArrayLayers == rhs.maxSubsampledArrayLayers ) - && ( maxDescriptorSetSubsampledSamplers == rhs.maxDescriptorSetSubsampledSamplers ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMap2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMap2PropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 subsampledLoads = {}; - VULKAN_HPP_NAMESPACE::Bool32 subsampledCoarseReconstructionEarlyAccess = {}; - uint32_t maxSubsampledArrayLayers = {}; - uint32_t maxDescriptorSetSubsampledSamplers = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMap2PropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMap2PropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMap2PropertiesEXT; - }; - - struct PhysicalDeviceFragmentDensityMapFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentDensityMap( fragmentDensityMap_ ), fragmentDensityMapDynamic( fragmentDensityMapDynamic_ ), fragmentDensityMapNonSubsampledImages( fragmentDensityMapNonSubsampledImages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapFeaturesEXT( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMapFeaturesEXT( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( VkPhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & operator=( PhysicalDeviceFragmentDensityMapFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMap( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMap = fragmentDensityMap_; - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapDynamic( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapDynamic = fragmentDensityMapDynamic_; - return *this; - } - - PhysicalDeviceFragmentDensityMapFeaturesEXT & setFragmentDensityMapNonSubsampledImages( VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapNonSubsampledImages = fragmentDensityMapNonSubsampledImages_; - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMapFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMapFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMap == rhs.fragmentDensityMap ) - && ( fragmentDensityMapDynamic == rhs.fragmentDensityMapDynamic ) - && ( fragmentDensityMapNonSubsampledImages == rhs.fragmentDensityMapNonSubsampledImages ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMapFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMap = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapDynamic = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityMapNonSubsampledImages = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMapFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMapFeaturesEXT; - }; - - struct PhysicalDeviceFragmentDensityMapPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT(VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations_ = {}) VULKAN_HPP_NOEXCEPT - : minFragmentDensityTexelSize( minFragmentDensityTexelSize_ ), maxFragmentDensityTexelSize( maxFragmentDensityTexelSize_ ), fragmentDensityInvocations( fragmentDensityInvocations_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentDensityMapPropertiesEXT( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentDensityMapPropertiesEXT( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( VkPhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentDensityMapPropertiesEXT & operator=( PhysicalDeviceFragmentDensityMapPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentDensityMapPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentDensityMapPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minFragmentDensityTexelSize == rhs.minFragmentDensityTexelSize ) - && ( maxFragmentDensityTexelSize == rhs.maxFragmentDensityTexelSize ) - && ( fragmentDensityInvocations == rhs.fragmentDensityInvocations ); - } - - bool operator!=( PhysicalDeviceFragmentDensityMapPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentDensityMapPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D minFragmentDensityTexelSize = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentDensityTexelSize = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentDensityInvocations = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentDensityMapPropertiesEXT ) == sizeof( VkPhysicalDeviceFragmentDensityMapPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentDensityMapPropertiesEXT; - }; - - struct PhysicalDeviceFragmentShaderBarycentricFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentShaderBarycentric( fragmentShaderBarycentric_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderBarycentricFeaturesNV( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & operator=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) ); - return *this; - } - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShaderBarycentricFeaturesNV & setFragmentShaderBarycentric( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderBarycentric = fragmentShaderBarycentric_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShaderBarycentric == rhs.fragmentShaderBarycentric ); - } - - bool operator!=( PhysicalDeviceFragmentShaderBarycentricFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderBarycentricFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderBarycentric = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShaderBarycentricFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShaderBarycentricFeaturesNV; - }; - - struct PhysicalDeviceFragmentShaderInterlockFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentShaderSampleInterlock( fragmentShaderSampleInterlock_ ), fragmentShaderPixelInterlock( fragmentShaderPixelInterlock_ ), fragmentShaderShadingRateInterlock( fragmentShaderShadingRateInterlock_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShaderInterlockFeaturesEXT( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & operator=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderSampleInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderSampleInterlock = fragmentShaderSampleInterlock_; - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderPixelInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderPixelInterlock = fragmentShaderPixelInterlock_; - return *this; - } - - PhysicalDeviceFragmentShaderInterlockFeaturesEXT & setFragmentShaderShadingRateInterlock( VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShaderShadingRateInterlock = fragmentShaderShadingRateInterlock_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShaderSampleInterlock == rhs.fragmentShaderSampleInterlock ) - && ( fragmentShaderPixelInterlock == rhs.fragmentShaderPixelInterlock ) - && ( fragmentShaderShadingRateInterlock == rhs.fragmentShaderShadingRateInterlock ); - } - - bool operator!=( PhysicalDeviceFragmentShaderInterlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShaderInterlockFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderSampleInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderPixelInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShaderShadingRateInterlock = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShaderInterlockFeaturesEXT ) == sizeof( VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShaderInterlockFeaturesEXT; - }; - - struct PhysicalDeviceFragmentShadingRateEnumsFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ = {}, VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ = {}, VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentShadingRateEnums( fragmentShadingRateEnums_ ), supersampleFragmentShadingRates( supersampleFragmentShadingRates_ ), noInvocationFragmentShadingRates( noInvocationFragmentShadingRates_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV ) ); - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setFragmentShadingRateEnums( VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums_ ) VULKAN_HPP_NOEXCEPT - { - fragmentShadingRateEnums = fragmentShadingRateEnums_; - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setSupersampleFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT - { - supersampleFragmentShadingRates = supersampleFragmentShadingRates_; - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsFeaturesNV & setNoInvocationFragmentShadingRates( VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates_ ) VULKAN_HPP_NOEXCEPT - { - noInvocationFragmentShadingRates = noInvocationFragmentShadingRates_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentShadingRateEnums == rhs.fragmentShadingRateEnums ) - && ( supersampleFragmentShadingRates == rhs.supersampleFragmentShadingRates ) - && ( noInvocationFragmentShadingRates == rhs.noInvocationFragmentShadingRates ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateEnums = {}; - VULKAN_HPP_NAMESPACE::Bool32 supersampleFragmentShadingRates = {}; - VULKAN_HPP_NAMESPACE::Bool32 noInvocationFragmentShadingRates = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsFeaturesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateEnumsFeaturesNV; - }; - - struct PhysicalDeviceFragmentShadingRateEnumsPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV(VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1) VULKAN_HPP_NOEXCEPT - : maxFragmentShadingRateInvocationCount( maxFragmentShadingRateInvocationCount_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & operator=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV ) ); - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShadingRateEnumsPropertiesNV & setMaxFragmentShadingRateInvocationCount( VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount_ ) VULKAN_HPP_NOEXCEPT - { - maxFragmentShadingRateInvocationCount = maxFragmentShadingRateInvocationCount_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxFragmentShadingRateInvocationCount == rhs.maxFragmentShadingRateInvocationCount ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateEnumsPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateInvocationCount = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateEnumsPropertiesNV ) == sizeof( VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateEnumsPropertiesNV; - }; - - struct PhysicalDeviceFragmentShadingRateFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ = {}, VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineFragmentShadingRate( pipelineFragmentShadingRate_ ), primitiveFragmentShadingRate( primitiveFragmentShadingRate_ ), attachmentFragmentShadingRate( attachmentFragmentShadingRate_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRateFeaturesKHR( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRateFeaturesKHR( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( VkPhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & operator=( PhysicalDeviceFragmentShadingRateFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) ); - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setPipelineFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT - { - pipelineFragmentShadingRate = pipelineFragmentShadingRate_; - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setPrimitiveFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT - { - primitiveFragmentShadingRate = primitiveFragmentShadingRate_; - return *this; - } - - PhysicalDeviceFragmentShadingRateFeaturesKHR & setAttachmentFragmentShadingRate( VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate_ ) VULKAN_HPP_NOEXCEPT - { - attachmentFragmentShadingRate = attachmentFragmentShadingRate_; - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRateFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRateFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineFragmentShadingRate == rhs.pipelineFragmentShadingRate ) - && ( primitiveFragmentShadingRate == rhs.primitiveFragmentShadingRate ) - && ( attachmentFragmentShadingRate == rhs.attachmentFragmentShadingRate ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRateFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRateFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineFragmentShadingRate = {}; - VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRate = {}; - VULKAN_HPP_NAMESPACE::Bool32 attachmentFragmentShadingRate = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRateFeaturesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRateFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRateFeaturesKHR; - }; - - struct PhysicalDeviceFragmentShadingRatePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR(VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize_ = {}, uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ = {}, VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports_ = {}, VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize_ = {}, uint32_t maxFragmentSizeAspectRatio_ = {}, uint32_t maxFragmentShadingRateCoverageSamples_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples_ = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner_ = {}) VULKAN_HPP_NOEXCEPT - : minFragmentShadingRateAttachmentTexelSize( minFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSize( maxFragmentShadingRateAttachmentTexelSize_ ), maxFragmentShadingRateAttachmentTexelSizeAspectRatio( maxFragmentShadingRateAttachmentTexelSizeAspectRatio_ ), primitiveFragmentShadingRateWithMultipleViewports( primitiveFragmentShadingRateWithMultipleViewports_ ), layeredShadingRateAttachments( layeredShadingRateAttachments_ ), fragmentShadingRateNonTrivialCombinerOps( fragmentShadingRateNonTrivialCombinerOps_ ), maxFragmentSize( maxFragmentSize_ ), maxFragmentSizeAspectRatio( maxFragmentSizeAspectRatio_ ), maxFragmentShadingRateCoverageSamples( maxFragmentShadingRateCoverageSamples_ ), maxFragmentShadingRateRasterizationSamples( maxFragmentShadingRateRasterizationSamples_ ), fragmentShadingRateWithShaderDepthStencilWrites( fragmentShadingRateWithShaderDepthStencilWrites_ ), fragmentShadingRateWithSampleMask( fragmentShadingRateWithSampleMask_ ), fragmentShadingRateWithShaderSampleMask( fragmentShadingRateWithShaderSampleMask_ ), fragmentShadingRateWithConservativeRasterization( fragmentShadingRateWithConservativeRasterization_ ), fragmentShadingRateWithFragmentShaderInterlock( fragmentShadingRateWithFragmentShaderInterlock_ ), fragmentShadingRateWithCustomSampleLocations( fragmentShadingRateWithCustomSampleLocations_ ), fragmentShadingRateStrictMultiplyCombiner( fragmentShadingRateStrictMultiplyCombiner_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceFragmentShadingRatePropertiesKHR( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceFragmentShadingRatePropertiesKHR( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( VkPhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceFragmentShadingRatePropertiesKHR & operator=( PhysicalDeviceFragmentShadingRatePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) ); - return *this; - } - - - operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceFragmentShadingRatePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceFragmentShadingRatePropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minFragmentShadingRateAttachmentTexelSize == rhs.minFragmentShadingRateAttachmentTexelSize ) - && ( maxFragmentShadingRateAttachmentTexelSize == rhs.maxFragmentShadingRateAttachmentTexelSize ) - && ( maxFragmentShadingRateAttachmentTexelSizeAspectRatio == rhs.maxFragmentShadingRateAttachmentTexelSizeAspectRatio ) - && ( primitiveFragmentShadingRateWithMultipleViewports == rhs.primitiveFragmentShadingRateWithMultipleViewports ) - && ( layeredShadingRateAttachments == rhs.layeredShadingRateAttachments ) - && ( fragmentShadingRateNonTrivialCombinerOps == rhs.fragmentShadingRateNonTrivialCombinerOps ) - && ( maxFragmentSize == rhs.maxFragmentSize ) - && ( maxFragmentSizeAspectRatio == rhs.maxFragmentSizeAspectRatio ) - && ( maxFragmentShadingRateCoverageSamples == rhs.maxFragmentShadingRateCoverageSamples ) - && ( maxFragmentShadingRateRasterizationSamples == rhs.maxFragmentShadingRateRasterizationSamples ) - && ( fragmentShadingRateWithShaderDepthStencilWrites == rhs.fragmentShadingRateWithShaderDepthStencilWrites ) - && ( fragmentShadingRateWithSampleMask == rhs.fragmentShadingRateWithSampleMask ) - && ( fragmentShadingRateWithShaderSampleMask == rhs.fragmentShadingRateWithShaderSampleMask ) - && ( fragmentShadingRateWithConservativeRasterization == rhs.fragmentShadingRateWithConservativeRasterization ) - && ( fragmentShadingRateWithFragmentShaderInterlock == rhs.fragmentShadingRateWithFragmentShaderInterlock ) - && ( fragmentShadingRateWithCustomSampleLocations == rhs.fragmentShadingRateWithCustomSampleLocations ) - && ( fragmentShadingRateStrictMultiplyCombiner == rhs.fragmentShadingRateStrictMultiplyCombiner ); - } - - bool operator!=( PhysicalDeviceFragmentShadingRatePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceFragmentShadingRatePropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D minFragmentShadingRateAttachmentTexelSize = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentShadingRateAttachmentTexelSize = {}; - uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio = {}; - VULKAN_HPP_NAMESPACE::Bool32 primitiveFragmentShadingRateWithMultipleViewports = {}; - VULKAN_HPP_NAMESPACE::Bool32 layeredShadingRateAttachments = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateNonTrivialCombinerOps = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxFragmentSize = {}; - uint32_t maxFragmentSizeAspectRatio = {}; - uint32_t maxFragmentShadingRateCoverageSamples = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlagBits maxFragmentShadingRateRasterizationSamples = VULKAN_HPP_NAMESPACE::SampleCountFlagBits::e1; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderDepthStencilWrites = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithSampleMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithShaderSampleMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithConservativeRasterization = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithFragmentShaderInterlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateWithCustomSampleLocations = {}; - VULKAN_HPP_NAMESPACE::Bool32 fragmentShadingRateStrictMultiplyCombiner = {}; - - }; - static_assert( sizeof( PhysicalDeviceFragmentShadingRatePropertiesKHR ) == sizeof( VkPhysicalDeviceFragmentShadingRatePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceFragmentShadingRatePropertiesKHR; - }; - - struct PhysicalDeviceGroupProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceGroupProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties(uint32_t physicalDeviceCount_ = {}, std::array const& physicalDevices_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation_ = {}) VULKAN_HPP_NOEXCEPT - : physicalDeviceCount( physicalDeviceCount_ ), physicalDevices( physicalDevices_ ), subsetAllocation( subsetAllocation_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceGroupProperties( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceGroupProperties( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceGroupProperties & operator=( VkPhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceGroupProperties & operator=( PhysicalDeviceGroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceGroupProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceGroupProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceGroupProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceGroupProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( physicalDeviceCount == rhs.physicalDeviceCount ) - && ( physicalDevices == rhs.physicalDevices ) - && ( subsetAllocation == rhs.subsetAllocation ); - } - - bool operator!=( PhysicalDeviceGroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceGroupProperties; - void* pNext = {}; - uint32_t physicalDeviceCount = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D physicalDevices = {}; - VULKAN_HPP_NAMESPACE::Bool32 subsetAllocation = {}; - - }; - static_assert( sizeof( PhysicalDeviceGroupProperties ) == sizeof( VkPhysicalDeviceGroupProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceGroupProperties; - }; - using PhysicalDeviceGroupPropertiesKHR = PhysicalDeviceGroupProperties; - - struct PhysicalDeviceHostQueryResetFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceHostQueryResetFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures(VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}) VULKAN_HPP_NOEXCEPT - : hostQueryReset( hostQueryReset_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceHostQueryResetFeatures( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceHostQueryResetFeatures( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceHostQueryResetFeatures & operator=( VkPhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceHostQueryResetFeatures & operator=( PhysicalDeviceHostQueryResetFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceHostQueryResetFeatures ) ); - return *this; - } - - PhysicalDeviceHostQueryResetFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceHostQueryResetFeatures & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT - { - hostQueryReset = hostQueryReset_; - return *this; - } - - - operator VkPhysicalDeviceHostQueryResetFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceHostQueryResetFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceHostQueryResetFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( hostQueryReset == rhs.hostQueryReset ); - } - - bool operator!=( PhysicalDeviceHostQueryResetFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceHostQueryResetFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; - - }; - static_assert( sizeof( PhysicalDeviceHostQueryResetFeatures ) == sizeof( VkPhysicalDeviceHostQueryResetFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceHostQueryResetFeatures; - }; - using PhysicalDeviceHostQueryResetFeaturesEXT = PhysicalDeviceHostQueryResetFeatures; - - struct PhysicalDeviceIDProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIdProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties(std::array const& deviceUUID_ = {}, std::array const& driverUUID_ = {}, std::array const& deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}) VULKAN_HPP_NOEXCEPT - : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceIDProperties( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceIDProperties( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceIDProperties & operator=( VkPhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceIDProperties & operator=( PhysicalDeviceIDProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceIDProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceIDProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceIDProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceIDProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceUUID == rhs.deviceUUID ) - && ( driverUUID == rhs.driverUUID ) - && ( deviceLUID == rhs.deviceLUID ) - && ( deviceNodeMask == rhs.deviceNodeMask ) - && ( deviceLUIDValid == rhs.deviceLUIDValid ); - } - - bool operator!=( PhysicalDeviceIDProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIdProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceLUID = {}; - uint32_t deviceNodeMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; - - }; - static_assert( sizeof( PhysicalDeviceIDProperties ) == sizeof( VkPhysicalDeviceIDProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceIDProperties; - }; - using PhysicalDeviceIDPropertiesKHR = PhysicalDeviceIDProperties; - - struct PhysicalDeviceImageDrmFormatModifierInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT(uint64_t drmFormatModifier_ = {}, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive, uint32_t queueFamilyIndexCount_ = {}, const uint32_t* pQueueFamilyIndices_ = {}) VULKAN_HPP_NOEXCEPT - : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( queueFamilyIndexCount_ ), pQueueFamilyIndices( pQueueFamilyIndices_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageDrmFormatModifierInfoEXT( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageDrmFormatModifierInfoEXT( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PhysicalDeviceImageDrmFormatModifierInfoEXT( uint64_t drmFormatModifier_, VULKAN_HPP_NAMESPACE::SharingMode sharingMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) - : drmFormatModifier( drmFormatModifier_ ), sharingMode( sharingMode_ ), queueFamilyIndexCount( static_cast( queueFamilyIndices_.size() ) ), pQueueFamilyIndices( queueFamilyIndices_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( VkPhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & operator=( PhysicalDeviceImageDrmFormatModifierInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) ); - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setDrmFormatModifier( uint64_t drmFormatModifier_ ) VULKAN_HPP_NOEXCEPT - { - drmFormatModifier = drmFormatModifier_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setSharingMode( VULKAN_HPP_NAMESPACE::SharingMode sharingMode_ ) VULKAN_HPP_NOEXCEPT - { - sharingMode = sharingMode_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndexCount( uint32_t queueFamilyIndexCount_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = queueFamilyIndexCount_; - return *this; - } - - PhysicalDeviceImageDrmFormatModifierInfoEXT & setPQueueFamilyIndices( const uint32_t* pQueueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - pQueueFamilyIndices = pQueueFamilyIndices_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PhysicalDeviceImageDrmFormatModifierInfoEXT & setQueueFamilyIndices( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & queueFamilyIndices_ ) VULKAN_HPP_NOEXCEPT - { - queueFamilyIndexCount = static_cast( queueFamilyIndices_.size() ); - pQueueFamilyIndices = queueFamilyIndices_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageDrmFormatModifierInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageDrmFormatModifierInfoEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( drmFormatModifier == rhs.drmFormatModifier ) - && ( sharingMode == rhs.sharingMode ) - && ( queueFamilyIndexCount == rhs.queueFamilyIndexCount ) - && ( pQueueFamilyIndices == rhs.pQueueFamilyIndices ); - } - - bool operator!=( PhysicalDeviceImageDrmFormatModifierInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageDrmFormatModifierInfoEXT; - const void* pNext = {}; - uint64_t drmFormatModifier = {}; - VULKAN_HPP_NAMESPACE::SharingMode sharingMode = VULKAN_HPP_NAMESPACE::SharingMode::eExclusive; - uint32_t queueFamilyIndexCount = {}; - const uint32_t* pQueueFamilyIndices = {}; - - }; - static_assert( sizeof( PhysicalDeviceImageDrmFormatModifierInfoEXT ) == sizeof( VkPhysicalDeviceImageDrmFormatModifierInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageDrmFormatModifierInfoEXT; - }; - - struct PhysicalDeviceImageRobustnessFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ = {}) VULKAN_HPP_NOEXCEPT - : robustImageAccess( robustImageAccess_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageRobustnessFeaturesEXT( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageRobustnessFeaturesEXT( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceImageRobustnessFeaturesEXT & operator=( VkPhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageRobustnessFeaturesEXT & operator=( PhysicalDeviceImageRobustnessFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceImageRobustnessFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageRobustnessFeaturesEXT & setRobustImageAccess( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess_ ) VULKAN_HPP_NOEXCEPT - { - robustImageAccess = robustImageAccess_; - return *this; - } - - - operator VkPhysicalDeviceImageRobustnessFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageRobustnessFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageRobustnessFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( robustImageAccess == rhs.robustImageAccess ); - } - - bool operator!=( PhysicalDeviceImageRobustnessFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageRobustnessFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess = {}; - - }; - static_assert( sizeof( PhysicalDeviceImageRobustnessFeaturesEXT ) == sizeof( VkPhysicalDeviceImageRobustnessFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageRobustnessFeaturesEXT; - }; - - struct PhysicalDeviceImageViewImageFormatInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT(VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ = VULKAN_HPP_NAMESPACE::ImageViewType::e1D) VULKAN_HPP_NOEXCEPT - : imageViewType( imageViewType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImageViewImageFormatInfoEXT( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImageViewImageFormatInfoEXT( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceImageViewImageFormatInfoEXT & operator=( VkPhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImageViewImageFormatInfoEXT & operator=( PhysicalDeviceImageViewImageFormatInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) ); - return *this; - } - - PhysicalDeviceImageViewImageFormatInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImageViewImageFormatInfoEXT & setImageViewType( VULKAN_HPP_NAMESPACE::ImageViewType imageViewType_ ) VULKAN_HPP_NOEXCEPT - { - imageViewType = imageViewType_; - return *this; - } - - - operator VkPhysicalDeviceImageViewImageFormatInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImageViewImageFormatInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImageViewImageFormatInfoEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageViewType == rhs.imageViewType ); - } - - bool operator!=( PhysicalDeviceImageViewImageFormatInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImageViewImageFormatInfoEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageViewType imageViewType = VULKAN_HPP_NAMESPACE::ImageViewType::e1D; - - }; - static_assert( sizeof( PhysicalDeviceImageViewImageFormatInfoEXT ) == sizeof( VkPhysicalDeviceImageViewImageFormatInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImageViewImageFormatInfoEXT; - }; - - struct PhysicalDeviceImagelessFramebufferFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures(VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}) VULKAN_HPP_NOEXCEPT - : imagelessFramebuffer( imagelessFramebuffer_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceImagelessFramebufferFeatures( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceImagelessFramebufferFeatures( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceImagelessFramebufferFeatures & operator=( VkPhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceImagelessFramebufferFeatures & operator=( PhysicalDeviceImagelessFramebufferFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceImagelessFramebufferFeatures ) ); - return *this; - } - - PhysicalDeviceImagelessFramebufferFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceImagelessFramebufferFeatures & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT - { - imagelessFramebuffer = imagelessFramebuffer_; - return *this; - } - - - operator VkPhysicalDeviceImagelessFramebufferFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceImagelessFramebufferFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceImagelessFramebufferFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imagelessFramebuffer == rhs.imagelessFramebuffer ); - } - - bool operator!=( PhysicalDeviceImagelessFramebufferFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceImagelessFramebufferFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; - - }; - static_assert( sizeof( PhysicalDeviceImagelessFramebufferFeatures ) == sizeof( VkPhysicalDeviceImagelessFramebufferFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceImagelessFramebufferFeatures; - }; - using PhysicalDeviceImagelessFramebufferFeaturesKHR = PhysicalDeviceImagelessFramebufferFeatures; - - struct PhysicalDeviceIndexTypeUint8FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ = {}) VULKAN_HPP_NOEXCEPT - : indexTypeUint8( indexTypeUint8_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceIndexTypeUint8FeaturesEXT( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceIndexTypeUint8FeaturesEXT( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( VkPhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceIndexTypeUint8FeaturesEXT & operator=( PhysicalDeviceIndexTypeUint8FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) ); - return *this; - } - - PhysicalDeviceIndexTypeUint8FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceIndexTypeUint8FeaturesEXT & setIndexTypeUint8( VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8_ ) VULKAN_HPP_NOEXCEPT - { - indexTypeUint8 = indexTypeUint8_; - return *this; - } - - - operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceIndexTypeUint8FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceIndexTypeUint8FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( indexTypeUint8 == rhs.indexTypeUint8 ); - } - - bool operator!=( PhysicalDeviceIndexTypeUint8FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceIndexTypeUint8FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 indexTypeUint8 = {}; - - }; - static_assert( sizeof( PhysicalDeviceIndexTypeUint8FeaturesEXT ) == sizeof( VkPhysicalDeviceIndexTypeUint8FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceIndexTypeUint8FeaturesEXT; - }; - - struct PhysicalDeviceInlineUniformBlockFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ = {}) VULKAN_HPP_NOEXCEPT - : inlineUniformBlock( inlineUniformBlock_ ), descriptorBindingInlineUniformBlockUpdateAfterBind( descriptorBindingInlineUniformBlockUpdateAfterBind_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockFeaturesEXT( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceInlineUniformBlockFeaturesEXT( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( VkPhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceInlineUniformBlockFeaturesEXT & operator=( PhysicalDeviceInlineUniformBlockFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceInlineUniformBlockFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceInlineUniformBlockFeaturesEXT & setInlineUniformBlock( VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock_ ) VULKAN_HPP_NOEXCEPT - { - inlineUniformBlock = inlineUniformBlock_; - return *this; - } - - PhysicalDeviceInlineUniformBlockFeaturesEXT & setDescriptorBindingInlineUniformBlockUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingInlineUniformBlockUpdateAfterBind = descriptorBindingInlineUniformBlockUpdateAfterBind_; - return *this; - } - - - operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceInlineUniformBlockFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceInlineUniformBlockFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( inlineUniformBlock == rhs.inlineUniformBlock ) - && ( descriptorBindingInlineUniformBlockUpdateAfterBind == rhs.descriptorBindingInlineUniformBlockUpdateAfterBind ); - } - - bool operator!=( PhysicalDeviceInlineUniformBlockFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 inlineUniformBlock = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingInlineUniformBlockUpdateAfterBind = {}; - - }; - static_assert( sizeof( PhysicalDeviceInlineUniformBlockFeaturesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceInlineUniformBlockFeaturesEXT; - }; - - struct PhysicalDeviceInlineUniformBlockPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT(uint32_t maxInlineUniformBlockSize_ = {}, uint32_t maxPerStageDescriptorInlineUniformBlocks_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetInlineUniformBlocks_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ = {}) VULKAN_HPP_NOEXCEPT - : maxInlineUniformBlockSize( maxInlineUniformBlockSize_ ), maxPerStageDescriptorInlineUniformBlocks( maxPerStageDescriptorInlineUniformBlocks_ ), maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks_ ), maxDescriptorSetInlineUniformBlocks( maxDescriptorSetInlineUniformBlocks_ ), maxDescriptorSetUpdateAfterBindInlineUniformBlocks( maxDescriptorSetUpdateAfterBindInlineUniformBlocks_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceInlineUniformBlockPropertiesEXT( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceInlineUniformBlockPropertiesEXT( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( VkPhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceInlineUniformBlockPropertiesEXT & operator=( PhysicalDeviceInlineUniformBlockPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceInlineUniformBlockPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceInlineUniformBlockPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxInlineUniformBlockSize == rhs.maxInlineUniformBlockSize ) - && ( maxPerStageDescriptorInlineUniformBlocks == rhs.maxPerStageDescriptorInlineUniformBlocks ) - && ( maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks == rhs.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks ) - && ( maxDescriptorSetInlineUniformBlocks == rhs.maxDescriptorSetInlineUniformBlocks ) - && ( maxDescriptorSetUpdateAfterBindInlineUniformBlocks == rhs.maxDescriptorSetUpdateAfterBindInlineUniformBlocks ); - } - - bool operator!=( PhysicalDeviceInlineUniformBlockPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceInlineUniformBlockPropertiesEXT; - void* pNext = {}; - uint32_t maxInlineUniformBlockSize = {}; - uint32_t maxPerStageDescriptorInlineUniformBlocks = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks = {}; - uint32_t maxDescriptorSetInlineUniformBlocks = {}; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks = {}; - - }; - static_assert( sizeof( PhysicalDeviceInlineUniformBlockPropertiesEXT ) == sizeof( VkPhysicalDeviceInlineUniformBlockPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceInlineUniformBlockPropertiesEXT; - }; - - struct PhysicalDeviceLineRasterizationFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ = {}) VULKAN_HPP_NOEXCEPT - : rectangularLines( rectangularLines_ ), bresenhamLines( bresenhamLines_ ), smoothLines( smoothLines_ ), stippledRectangularLines( stippledRectangularLines_ ), stippledBresenhamLines( stippledBresenhamLines_ ), stippledSmoothLines( stippledSmoothLines_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationFeaturesEXT( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLineRasterizationFeaturesEXT( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceLineRasterizationFeaturesEXT & operator=( VkPhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & operator=( PhysicalDeviceLineRasterizationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 rectangularLines_ ) VULKAN_HPP_NOEXCEPT - { - rectangularLines = rectangularLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines_ ) VULKAN_HPP_NOEXCEPT - { - bresenhamLines = bresenhamLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 smoothLines_ ) VULKAN_HPP_NOEXCEPT - { - smoothLines = smoothLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledRectangularLines( VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines_ ) VULKAN_HPP_NOEXCEPT - { - stippledRectangularLines = stippledRectangularLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledBresenhamLines( VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines_ ) VULKAN_HPP_NOEXCEPT - { - stippledBresenhamLines = stippledBresenhamLines_; - return *this; - } - - PhysicalDeviceLineRasterizationFeaturesEXT & setStippledSmoothLines( VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines_ ) VULKAN_HPP_NOEXCEPT - { - stippledSmoothLines = stippledSmoothLines_; - return *this; - } - - - operator VkPhysicalDeviceLineRasterizationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceLineRasterizationFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceLineRasterizationFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rectangularLines == rhs.rectangularLines ) - && ( bresenhamLines == rhs.bresenhamLines ) - && ( smoothLines == rhs.smoothLines ) - && ( stippledRectangularLines == rhs.stippledRectangularLines ) - && ( stippledBresenhamLines == rhs.stippledBresenhamLines ) - && ( stippledSmoothLines == rhs.stippledSmoothLines ); - } - - bool operator!=( PhysicalDeviceLineRasterizationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 rectangularLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 bresenhamLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 smoothLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledRectangularLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledBresenhamLines = {}; - VULKAN_HPP_NAMESPACE::Bool32 stippledSmoothLines = {}; - - }; - static_assert( sizeof( PhysicalDeviceLineRasterizationFeaturesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceLineRasterizationFeaturesEXT; - }; - - struct PhysicalDeviceLineRasterizationPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT(uint32_t lineSubPixelPrecisionBits_ = {}) VULKAN_HPP_NOEXCEPT - : lineSubPixelPrecisionBits( lineSubPixelPrecisionBits_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceLineRasterizationPropertiesEXT( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceLineRasterizationPropertiesEXT( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceLineRasterizationPropertiesEXT & operator=( VkPhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceLineRasterizationPropertiesEXT & operator=( PhysicalDeviceLineRasterizationPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceLineRasterizationPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceLineRasterizationPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceLineRasterizationPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( lineSubPixelPrecisionBits == rhs.lineSubPixelPrecisionBits ); - } - - bool operator!=( PhysicalDeviceLineRasterizationPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceLineRasterizationPropertiesEXT; - void* pNext = {}; - uint32_t lineSubPixelPrecisionBits = {}; - - }; - static_assert( sizeof( PhysicalDeviceLineRasterizationPropertiesEXT ) == sizeof( VkPhysicalDeviceLineRasterizationPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceLineRasterizationPropertiesEXT; - }; - - struct PhysicalDeviceMaintenance3Properties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMaintenance3Properties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties(uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT - : maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMaintenance3Properties( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMaintenance3Properties( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMaintenance3Properties & operator=( VkPhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMaintenance3Properties & operator=( PhysicalDeviceMaintenance3Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMaintenance3Properties ) ); - return *this; - } - - - operator VkPhysicalDeviceMaintenance3Properties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMaintenance3Properties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMaintenance3Properties const& ) const = default; -#else - bool operator==( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) - && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); - } - - bool operator!=( PhysicalDeviceMaintenance3Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMaintenance3Properties; - void* pNext = {}; - uint32_t maxPerSetDescriptors = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceMaintenance3Properties ) == sizeof( VkPhysicalDeviceMaintenance3Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMaintenance3Properties; - }; - using PhysicalDeviceMaintenance3PropertiesKHR = PhysicalDeviceMaintenance3Properties; - - struct PhysicalDeviceMemoryBudgetPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT(std::array const& heapBudget_ = {}, std::array const& heapUsage_ = {}) VULKAN_HPP_NOEXCEPT - : heapBudget( heapBudget_ ), heapUsage( heapUsage_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMemoryBudgetPropertiesEXT( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryBudgetPropertiesEXT( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( VkPhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMemoryBudgetPropertiesEXT & operator=( PhysicalDeviceMemoryBudgetPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceMemoryBudgetPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryBudgetPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryBudgetPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( heapBudget == rhs.heapBudget ) - && ( heapUsage == rhs.heapUsage ); - } - - bool operator!=( PhysicalDeviceMemoryBudgetPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryBudgetPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D heapBudget = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D heapUsage = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryBudgetPropertiesEXT ) == sizeof( VkPhysicalDeviceMemoryBudgetPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMemoryBudgetPropertiesEXT; - }; - - struct PhysicalDeviceMemoryPriorityFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ = {}) VULKAN_HPP_NOEXCEPT - : memoryPriority( memoryPriority_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMemoryPriorityFeaturesEXT( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMemoryPriorityFeaturesEXT( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( VkPhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMemoryPriorityFeaturesEXT & operator=( PhysicalDeviceMemoryPriorityFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceMemoryPriorityFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMemoryPriorityFeaturesEXT & setMemoryPriority( VULKAN_HPP_NAMESPACE::Bool32 memoryPriority_ ) VULKAN_HPP_NOEXCEPT - { - memoryPriority = memoryPriority_; - return *this; - } - - - operator VkPhysicalDeviceMemoryPriorityFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMemoryPriorityFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMemoryPriorityFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memoryPriority == rhs.memoryPriority ); - } - - bool operator!=( PhysicalDeviceMemoryPriorityFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMemoryPriorityFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 memoryPriority = {}; - - }; - static_assert( sizeof( PhysicalDeviceMemoryPriorityFeaturesEXT ) == sizeof( VkPhysicalDeviceMemoryPriorityFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMemoryPriorityFeaturesEXT; - }; - - struct PhysicalDeviceMeshShaderFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 taskShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 meshShader_ = {}) VULKAN_HPP_NOEXCEPT - : taskShader( taskShader_ ), meshShader( meshShader_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMeshShaderFeaturesNV( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMeshShaderFeaturesNV( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMeshShaderFeaturesNV & operator=( VkPhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMeshShaderFeaturesNV & operator=( PhysicalDeviceMeshShaderFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMeshShaderFeaturesNV ) ); - return *this; - } - - PhysicalDeviceMeshShaderFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMeshShaderFeaturesNV & setTaskShader( VULKAN_HPP_NAMESPACE::Bool32 taskShader_ ) VULKAN_HPP_NOEXCEPT - { - taskShader = taskShader_; - return *this; - } - - PhysicalDeviceMeshShaderFeaturesNV & setMeshShader( VULKAN_HPP_NAMESPACE::Bool32 meshShader_ ) VULKAN_HPP_NOEXCEPT - { - meshShader = meshShader_; - return *this; - } - - - operator VkPhysicalDeviceMeshShaderFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMeshShaderFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMeshShaderFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( taskShader == rhs.taskShader ) - && ( meshShader == rhs.meshShader ); - } - - bool operator!=( PhysicalDeviceMeshShaderFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 taskShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 meshShader = {}; - - }; - static_assert( sizeof( PhysicalDeviceMeshShaderFeaturesNV ) == sizeof( VkPhysicalDeviceMeshShaderFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMeshShaderFeaturesNV; - }; - - struct PhysicalDeviceMeshShaderPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV(uint32_t maxDrawMeshTasksCount_ = {}, uint32_t maxTaskWorkGroupInvocations_ = {}, std::array const& maxTaskWorkGroupSize_ = {}, uint32_t maxTaskTotalMemorySize_ = {}, uint32_t maxTaskOutputCount_ = {}, uint32_t maxMeshWorkGroupInvocations_ = {}, std::array const& maxMeshWorkGroupSize_ = {}, uint32_t maxMeshTotalMemorySize_ = {}, uint32_t maxMeshOutputVertices_ = {}, uint32_t maxMeshOutputPrimitives_ = {}, uint32_t maxMeshMultiviewViewCount_ = {}, uint32_t meshOutputPerVertexGranularity_ = {}, uint32_t meshOutputPerPrimitiveGranularity_ = {}) VULKAN_HPP_NOEXCEPT - : maxDrawMeshTasksCount( maxDrawMeshTasksCount_ ), maxTaskWorkGroupInvocations( maxTaskWorkGroupInvocations_ ), maxTaskWorkGroupSize( maxTaskWorkGroupSize_ ), maxTaskTotalMemorySize( maxTaskTotalMemorySize_ ), maxTaskOutputCount( maxTaskOutputCount_ ), maxMeshWorkGroupInvocations( maxMeshWorkGroupInvocations_ ), maxMeshWorkGroupSize( maxMeshWorkGroupSize_ ), maxMeshTotalMemorySize( maxMeshTotalMemorySize_ ), maxMeshOutputVertices( maxMeshOutputVertices_ ), maxMeshOutputPrimitives( maxMeshOutputPrimitives_ ), maxMeshMultiviewViewCount( maxMeshMultiviewViewCount_ ), meshOutputPerVertexGranularity( meshOutputPerVertexGranularity_ ), meshOutputPerPrimitiveGranularity( meshOutputPerPrimitiveGranularity_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceMeshShaderPropertiesNV( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMeshShaderPropertiesNV( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMeshShaderPropertiesNV & operator=( VkPhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMeshShaderPropertiesNV & operator=( PhysicalDeviceMeshShaderPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMeshShaderPropertiesNV ) ); - return *this; - } - - - operator VkPhysicalDeviceMeshShaderPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMeshShaderPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMeshShaderPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxDrawMeshTasksCount == rhs.maxDrawMeshTasksCount ) - && ( maxTaskWorkGroupInvocations == rhs.maxTaskWorkGroupInvocations ) - && ( maxTaskWorkGroupSize == rhs.maxTaskWorkGroupSize ) - && ( maxTaskTotalMemorySize == rhs.maxTaskTotalMemorySize ) - && ( maxTaskOutputCount == rhs.maxTaskOutputCount ) - && ( maxMeshWorkGroupInvocations == rhs.maxMeshWorkGroupInvocations ) - && ( maxMeshWorkGroupSize == rhs.maxMeshWorkGroupSize ) - && ( maxMeshTotalMemorySize == rhs.maxMeshTotalMemorySize ) - && ( maxMeshOutputVertices == rhs.maxMeshOutputVertices ) - && ( maxMeshOutputPrimitives == rhs.maxMeshOutputPrimitives ) - && ( maxMeshMultiviewViewCount == rhs.maxMeshMultiviewViewCount ) - && ( meshOutputPerVertexGranularity == rhs.meshOutputPerVertexGranularity ) - && ( meshOutputPerPrimitiveGranularity == rhs.meshOutputPerPrimitiveGranularity ); - } - - bool operator!=( PhysicalDeviceMeshShaderPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMeshShaderPropertiesNV; - void* pNext = {}; - uint32_t maxDrawMeshTasksCount = {}; - uint32_t maxTaskWorkGroupInvocations = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxTaskWorkGroupSize = {}; - uint32_t maxTaskTotalMemorySize = {}; - uint32_t maxTaskOutputCount = {}; - uint32_t maxMeshWorkGroupInvocations = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D maxMeshWorkGroupSize = {}; - uint32_t maxMeshTotalMemorySize = {}; - uint32_t maxMeshOutputVertices = {}; - uint32_t maxMeshOutputPrimitives = {}; - uint32_t maxMeshMultiviewViewCount = {}; - uint32_t meshOutputPerVertexGranularity = {}; - uint32_t meshOutputPerPrimitiveGranularity = {}; - - }; - static_assert( sizeof( PhysicalDeviceMeshShaderPropertiesNV ) == sizeof( VkPhysicalDeviceMeshShaderPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMeshShaderPropertiesNV; - }; - - struct PhysicalDeviceMultiviewFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures(VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}) VULKAN_HPP_NOEXCEPT - : multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewFeatures( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewFeatures( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMultiviewFeatures & operator=( VkPhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMultiviewFeatures & operator=( PhysicalDeviceMultiviewFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMultiviewFeatures ) ); - return *this; - } - - PhysicalDeviceMultiviewFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMultiviewFeatures & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT - { - multiview = multiview_; - return *this; - } - - PhysicalDeviceMultiviewFeatures & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewGeometryShader = multiviewGeometryShader_; - return *this; - } - - PhysicalDeviceMultiviewFeatures & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewTessellationShader = multiviewTessellationShader_; - return *this; - } - - - operator VkPhysicalDeviceMultiviewFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMultiviewFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMultiviewFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( multiview == rhs.multiview ) - && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) - && ( multiviewTessellationShader == rhs.multiviewTessellationShader ); - } - - bool operator!=( PhysicalDeviceMultiviewFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; - - }; - static_assert( sizeof( PhysicalDeviceMultiviewFeatures ) == sizeof( VkPhysicalDeviceMultiviewFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMultiviewFeatures; - }; - using PhysicalDeviceMultiviewFeaturesKHR = PhysicalDeviceMultiviewFeatures; - - struct PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX(VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents_ = {}) VULKAN_HPP_NOEXCEPT - : perViewPositionAllComponents( perViewPositionAllComponents_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX & operator=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) ); - return *this; - } - - - operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& ) const = default; -#else - bool operator==( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( perViewPositionAllComponents == rhs.perViewPositionAllComponents ); - } - - bool operator!=( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 perViewPositionAllComponents = {}; - - }; - static_assert( sizeof( PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ) == sizeof( VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - }; - - struct PhysicalDeviceMultiviewProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMultiviewProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties(uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}) VULKAN_HPP_NOEXCEPT - : maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMultiviewProperties( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMultiviewProperties( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMultiviewProperties & operator=( VkPhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMultiviewProperties & operator=( PhysicalDeviceMultiviewProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMultiviewProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceMultiviewProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMultiviewProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMultiviewProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) - && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ); - } - - bool operator!=( PhysicalDeviceMultiviewProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMultiviewProperties; - void* pNext = {}; - uint32_t maxMultiviewViewCount = {}; - uint32_t maxMultiviewInstanceIndex = {}; - - }; - static_assert( sizeof( PhysicalDeviceMultiviewProperties ) == sizeof( VkPhysicalDeviceMultiviewProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMultiviewProperties; - }; - using PhysicalDeviceMultiviewPropertiesKHR = PhysicalDeviceMultiviewProperties; - - struct PhysicalDeviceMutableDescriptorTypeFeaturesVALVE - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE(VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ = {}) VULKAN_HPP_NOEXCEPT - : mutableDescriptorType( mutableDescriptorType_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & operator=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE ) ); - return *this; - } - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceMutableDescriptorTypeFeaturesVALVE & setMutableDescriptorType( VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType_ ) VULKAN_HPP_NOEXCEPT - { - mutableDescriptorType = mutableDescriptorType_; - return *this; - } - - - operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& ) const = default; -#else - bool operator==( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( mutableDescriptorType == rhs.mutableDescriptorType ); - } - - bool operator!=( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceMutableDescriptorTypeFeaturesVALVE; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 mutableDescriptorType = {}; - - }; - static_assert( sizeof( PhysicalDeviceMutableDescriptorTypeFeaturesVALVE ) == sizeof( VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceMutableDescriptorTypeFeaturesVALVE; - }; - - struct PhysicalDevicePCIBusInfoPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT(uint32_t pciDomain_ = {}, uint32_t pciBus_ = {}, uint32_t pciDevice_ = {}, uint32_t pciFunction_ = {}) VULKAN_HPP_NOEXCEPT - : pciDomain( pciDomain_ ), pciBus( pciBus_ ), pciDevice( pciDevice_ ), pciFunction( pciFunction_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePCIBusInfoPropertiesEXT( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePCIBusInfoPropertiesEXT( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePCIBusInfoPropertiesEXT & operator=( VkPhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePCIBusInfoPropertiesEXT & operator=( PhysicalDevicePCIBusInfoPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDevicePCIBusInfoPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePCIBusInfoPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePCIBusInfoPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pciDomain == rhs.pciDomain ) - && ( pciBus == rhs.pciBus ) - && ( pciDevice == rhs.pciDevice ) - && ( pciFunction == rhs.pciFunction ); - } - - bool operator!=( PhysicalDevicePCIBusInfoPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePciBusInfoPropertiesEXT; - void* pNext = {}; - uint32_t pciDomain = {}; - uint32_t pciBus = {}; - uint32_t pciDevice = {}; - uint32_t pciFunction = {}; - - }; - static_assert( sizeof( PhysicalDevicePCIBusInfoPropertiesEXT ) == sizeof( VkPhysicalDevicePCIBusInfoPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePCIBusInfoPropertiesEXT; - }; - - struct PhysicalDevicePerformanceQueryFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ = {}) VULKAN_HPP_NOEXCEPT - : performanceCounterQueryPools( performanceCounterQueryPools_ ), performanceCounterMultipleQueryPools( performanceCounterMultipleQueryPools_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryFeaturesKHR( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePerformanceQueryFeaturesKHR( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePerformanceQueryFeaturesKHR & operator=( VkPhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePerformanceQueryFeaturesKHR & operator=( PhysicalDevicePerformanceQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) ); - return *this; - } - - PhysicalDevicePerformanceQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools_ ) VULKAN_HPP_NOEXCEPT - { - performanceCounterQueryPools = performanceCounterQueryPools_; - return *this; - } - - PhysicalDevicePerformanceQueryFeaturesKHR & setPerformanceCounterMultipleQueryPools( VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools_ ) VULKAN_HPP_NOEXCEPT - { - performanceCounterMultipleQueryPools = performanceCounterMultipleQueryPools_; - return *this; - } - - - operator VkPhysicalDevicePerformanceQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePerformanceQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePerformanceQueryFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( performanceCounterQueryPools == rhs.performanceCounterQueryPools ) - && ( performanceCounterMultipleQueryPools == rhs.performanceCounterMultipleQueryPools ); - } - - bool operator!=( PhysicalDevicePerformanceQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 performanceCounterQueryPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 performanceCounterMultipleQueryPools = {}; - - }; - static_assert( sizeof( PhysicalDevicePerformanceQueryFeaturesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePerformanceQueryFeaturesKHR; - }; - - struct PhysicalDevicePerformanceQueryPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR(VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies_ = {}) VULKAN_HPP_NOEXCEPT - : allowCommandBufferQueryCopies( allowCommandBufferQueryCopies_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePerformanceQueryPropertiesKHR( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePerformanceQueryPropertiesKHR( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePerformanceQueryPropertiesKHR & operator=( VkPhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePerformanceQueryPropertiesKHR & operator=( PhysicalDevicePerformanceQueryPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) ); - return *this; - } - - - operator VkPhysicalDevicePerformanceQueryPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePerformanceQueryPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePerformanceQueryPropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( allowCommandBufferQueryCopies == rhs.allowCommandBufferQueryCopies ); - } - - bool operator!=( PhysicalDevicePerformanceQueryPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePerformanceQueryPropertiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 allowCommandBufferQueryCopies = {}; - - }; - static_assert( sizeof( PhysicalDevicePerformanceQueryPropertiesKHR ) == sizeof( VkPhysicalDevicePerformanceQueryPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePerformanceQueryPropertiesKHR; - }; - - struct PhysicalDevicePipelineCreationCacheControlFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineCreationCacheControl( pipelineCreationCacheControl_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineCreationCacheControlFeaturesEXT( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT & operator=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) ); - return *this; - } - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePipelineCreationCacheControlFeaturesEXT & setPipelineCreationCacheControl( VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl_ ) VULKAN_HPP_NOEXCEPT - { - pipelineCreationCacheControl = pipelineCreationCacheControl_; - return *this; - } - - - operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineCreationCacheControl == rhs.pipelineCreationCacheControl ); - } - - bool operator!=( PhysicalDevicePipelineCreationCacheControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineCreationCacheControlFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineCreationCacheControl = {}; - - }; - static_assert( sizeof( PhysicalDevicePipelineCreationCacheControlFeaturesEXT ) == sizeof( VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePipelineCreationCacheControlFeaturesEXT; - }; - - struct PhysicalDevicePipelineExecutablePropertiesFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ = {}) VULKAN_HPP_NOEXCEPT - : pipelineExecutableInfo( pipelineExecutableInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & operator=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) ); - return *this; - } - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePipelineExecutablePropertiesFeaturesKHR & setPipelineExecutableInfo( VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo_ ) VULKAN_HPP_NOEXCEPT - { - pipelineExecutableInfo = pipelineExecutableInfo_; - return *this; - } - - - operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pipelineExecutableInfo == rhs.pipelineExecutableInfo ); - } - - bool operator!=( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 pipelineExecutableInfo = {}; - - }; - static_assert( sizeof( PhysicalDevicePipelineExecutablePropertiesFeaturesKHR ) == sizeof( VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - }; - - struct PhysicalDevicePointClippingProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePointClippingProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties(VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes) VULKAN_HPP_NOEXCEPT - : pointClippingBehavior( pointClippingBehavior_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePointClippingProperties( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePointClippingProperties( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePointClippingProperties & operator=( VkPhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePointClippingProperties & operator=( PhysicalDevicePointClippingProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePointClippingProperties ) ); - return *this; - } - - - operator VkPhysicalDevicePointClippingProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePointClippingProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePointClippingProperties const& ) const = default; -#else - bool operator==( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pointClippingBehavior == rhs.pointClippingBehavior ); - } - - bool operator!=( PhysicalDevicePointClippingProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePointClippingProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; - - }; - static_assert( sizeof( PhysicalDevicePointClippingProperties ) == sizeof( VkPhysicalDevicePointClippingProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePointClippingProperties; - }; - using PhysicalDevicePointClippingPropertiesKHR = PhysicalDevicePointClippingProperties; - -#ifdef VK_ENABLE_BETA_EXTENSIONS - struct PhysicalDevicePortabilitySubsetFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ = {}, VULKAN_HPP_NAMESPACE::Bool32 events_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ = {}, VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ = {}, VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ = {}) VULKAN_HPP_NOEXCEPT - : constantAlphaColorBlendFactors( constantAlphaColorBlendFactors_ ), events( events_ ), imageViewFormatReinterpretation( imageViewFormatReinterpretation_ ), imageViewFormatSwizzle( imageViewFormatSwizzle_ ), imageView2DOn3DImage( imageView2DOn3DImage_ ), multisampleArrayImage( multisampleArrayImage_ ), mutableComparisonSamplers( mutableComparisonSamplers_ ), pointPolygons( pointPolygons_ ), samplerMipLodBias( samplerMipLodBias_ ), separateStencilMaskRef( separateStencilMaskRef_ ), shaderSampleRateInterpolationFunctions( shaderSampleRateInterpolationFunctions_ ), tessellationIsolines( tessellationIsolines_ ), tessellationPointMode( tessellationPointMode_ ), triangleFans( triangleFans_ ), vertexAttributeAccessBeyondStride( vertexAttributeAccessBeyondStride_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetFeaturesKHR( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePortabilitySubsetFeaturesKHR( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( VkPhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & operator=( PhysicalDevicePortabilitySubsetFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) ); - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setConstantAlphaColorBlendFactors( VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors_ ) VULKAN_HPP_NOEXCEPT - { - constantAlphaColorBlendFactors = constantAlphaColorBlendFactors_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setEvents( VULKAN_HPP_NAMESPACE::Bool32 events_ ) VULKAN_HPP_NOEXCEPT - { - events = events_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatReinterpretation( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation_ ) VULKAN_HPP_NOEXCEPT - { - imageViewFormatReinterpretation = imageViewFormatReinterpretation_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setImageViewFormatSwizzle( VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle_ ) VULKAN_HPP_NOEXCEPT - { - imageViewFormatSwizzle = imageViewFormatSwizzle_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setImageView2DOn3DImage( VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage_ ) VULKAN_HPP_NOEXCEPT - { - imageView2DOn3DImage = imageView2DOn3DImage_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setMultisampleArrayImage( VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage_ ) VULKAN_HPP_NOEXCEPT - { - multisampleArrayImage = multisampleArrayImage_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setMutableComparisonSamplers( VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers_ ) VULKAN_HPP_NOEXCEPT - { - mutableComparisonSamplers = mutableComparisonSamplers_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setPointPolygons( VULKAN_HPP_NAMESPACE::Bool32 pointPolygons_ ) VULKAN_HPP_NOEXCEPT - { - pointPolygons = pointPolygons_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setSamplerMipLodBias( VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias_ ) VULKAN_HPP_NOEXCEPT - { - samplerMipLodBias = samplerMipLodBias_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setSeparateStencilMaskRef( VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef_ ) VULKAN_HPP_NOEXCEPT - { - separateStencilMaskRef = separateStencilMaskRef_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setShaderSampleRateInterpolationFunctions( VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampleRateInterpolationFunctions = shaderSampleRateInterpolationFunctions_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationIsolines( VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines_ ) VULKAN_HPP_NOEXCEPT - { - tessellationIsolines = tessellationIsolines_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setTessellationPointMode( VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode_ ) VULKAN_HPP_NOEXCEPT - { - tessellationPointMode = tessellationPointMode_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setTriangleFans( VULKAN_HPP_NAMESPACE::Bool32 triangleFans_ ) VULKAN_HPP_NOEXCEPT - { - triangleFans = triangleFans_; - return *this; - } - - PhysicalDevicePortabilitySubsetFeaturesKHR & setVertexAttributeAccessBeyondStride( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeAccessBeyondStride = vertexAttributeAccessBeyondStride_; - return *this; - } - - - operator VkPhysicalDevicePortabilitySubsetFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePortabilitySubsetFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePortabilitySubsetFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( constantAlphaColorBlendFactors == rhs.constantAlphaColorBlendFactors ) - && ( events == rhs.events ) - && ( imageViewFormatReinterpretation == rhs.imageViewFormatReinterpretation ) - && ( imageViewFormatSwizzle == rhs.imageViewFormatSwizzle ) - && ( imageView2DOn3DImage == rhs.imageView2DOn3DImage ) - && ( multisampleArrayImage == rhs.multisampleArrayImage ) - && ( mutableComparisonSamplers == rhs.mutableComparisonSamplers ) - && ( pointPolygons == rhs.pointPolygons ) - && ( samplerMipLodBias == rhs.samplerMipLodBias ) - && ( separateStencilMaskRef == rhs.separateStencilMaskRef ) - && ( shaderSampleRateInterpolationFunctions == rhs.shaderSampleRateInterpolationFunctions ) - && ( tessellationIsolines == rhs.tessellationIsolines ) - && ( tessellationPointMode == rhs.tessellationPointMode ) - && ( triangleFans == rhs.triangleFans ) - && ( vertexAttributeAccessBeyondStride == rhs.vertexAttributeAccessBeyondStride ); - } - - bool operator!=( PhysicalDevicePortabilitySubsetFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 constantAlphaColorBlendFactors = {}; - VULKAN_HPP_NAMESPACE::Bool32 events = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatReinterpretation = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageViewFormatSwizzle = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageView2DOn3DImage = {}; - VULKAN_HPP_NAMESPACE::Bool32 multisampleArrayImage = {}; - VULKAN_HPP_NAMESPACE::Bool32 mutableComparisonSamplers = {}; - VULKAN_HPP_NAMESPACE::Bool32 pointPolygons = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerMipLodBias = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateStencilMaskRef = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampleRateInterpolationFunctions = {}; - VULKAN_HPP_NAMESPACE::Bool32 tessellationIsolines = {}; - VULKAN_HPP_NAMESPACE::Bool32 tessellationPointMode = {}; - VULKAN_HPP_NAMESPACE::Bool32 triangleFans = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeAccessBeyondStride = {}; - - }; - static_assert( sizeof( PhysicalDevicePortabilitySubsetFeaturesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePortabilitySubsetFeaturesKHR; - }; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - -#ifdef VK_ENABLE_BETA_EXTENSIONS - struct PhysicalDevicePortabilitySubsetPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR(uint32_t minVertexInputBindingStrideAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : minVertexInputBindingStrideAlignment( minVertexInputBindingStrideAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePortabilitySubsetPropertiesKHR( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePortabilitySubsetPropertiesKHR( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( VkPhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePortabilitySubsetPropertiesKHR & operator=( PhysicalDevicePortabilitySubsetPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) ); - return *this; - } - - PhysicalDevicePortabilitySubsetPropertiesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePortabilitySubsetPropertiesKHR & setMinVertexInputBindingStrideAlignment( uint32_t minVertexInputBindingStrideAlignment_ ) VULKAN_HPP_NOEXCEPT - { - minVertexInputBindingStrideAlignment = minVertexInputBindingStrideAlignment_; - return *this; - } - - - operator VkPhysicalDevicePortabilitySubsetPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePortabilitySubsetPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePortabilitySubsetPropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minVertexInputBindingStrideAlignment == rhs.minVertexInputBindingStrideAlignment ); - } - - bool operator!=( PhysicalDevicePortabilitySubsetPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePortabilitySubsetPropertiesKHR; - void* pNext = {}; - uint32_t minVertexInputBindingStrideAlignment = {}; - - }; - static_assert( sizeof( PhysicalDevicePortabilitySubsetPropertiesKHR ) == sizeof( VkPhysicalDevicePortabilitySubsetPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePortabilitySubsetPropertiesKHR; - }; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - - struct PhysicalDevicePrivateDataFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 privateData_ = {}) VULKAN_HPP_NOEXCEPT - : privateData( privateData_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePrivateDataFeaturesEXT( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePrivateDataFeaturesEXT( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePrivateDataFeaturesEXT & operator=( VkPhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePrivateDataFeaturesEXT & operator=( PhysicalDevicePrivateDataFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePrivateDataFeaturesEXT ) ); - return *this; - } - - PhysicalDevicePrivateDataFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDevicePrivateDataFeaturesEXT & setPrivateData( VULKAN_HPP_NAMESPACE::Bool32 privateData_ ) VULKAN_HPP_NOEXCEPT - { - privateData = privateData_; - return *this; - } - - - operator VkPhysicalDevicePrivateDataFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePrivateDataFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePrivateDataFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( privateData == rhs.privateData ); - } - - bool operator!=( PhysicalDevicePrivateDataFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePrivateDataFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 privateData = {}; - - }; - static_assert( sizeof( PhysicalDevicePrivateDataFeaturesEXT ) == sizeof( VkPhysicalDevicePrivateDataFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePrivateDataFeaturesEXT; - }; - - struct PhysicalDeviceProtectedMemoryFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures(VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}) VULKAN_HPP_NOEXCEPT - : protectedMemory( protectedMemory_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryFeatures( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProtectedMemoryFeatures( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceProtectedMemoryFeatures & operator=( VkPhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceProtectedMemoryFeatures & operator=( PhysicalDeviceProtectedMemoryFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryFeatures ) ); - return *this; - } - - PhysicalDeviceProtectedMemoryFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceProtectedMemoryFeatures & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT - { - protectedMemory = protectedMemory_; - return *this; - } - - - operator VkPhysicalDeviceProtectedMemoryFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProtectedMemoryFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProtectedMemoryFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedMemory == rhs.protectedMemory ); - } - - bool operator!=( PhysicalDeviceProtectedMemoryFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; - - }; - static_assert( sizeof( PhysicalDeviceProtectedMemoryFeatures ) == sizeof( VkPhysicalDeviceProtectedMemoryFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceProtectedMemoryFeatures; - }; - - struct PhysicalDeviceProtectedMemoryProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceProtectedMemoryProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties(VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}) VULKAN_HPP_NOEXCEPT - : protectedNoFault( protectedNoFault_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceProtectedMemoryProperties( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceProtectedMemoryProperties( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceProtectedMemoryProperties & operator=( VkPhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceProtectedMemoryProperties & operator=( PhysicalDeviceProtectedMemoryProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceProtectedMemoryProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceProtectedMemoryProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceProtectedMemoryProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceProtectedMemoryProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedNoFault == rhs.protectedNoFault ); - } - - bool operator!=( PhysicalDeviceProtectedMemoryProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceProtectedMemoryProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; - - }; - static_assert( sizeof( PhysicalDeviceProtectedMemoryProperties ) == sizeof( VkPhysicalDeviceProtectedMemoryProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceProtectedMemoryProperties; - }; - - struct PhysicalDevicePushDescriptorPropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR(uint32_t maxPushDescriptors_ = {}) VULKAN_HPP_NOEXCEPT - : maxPushDescriptors( maxPushDescriptors_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDevicePushDescriptorPropertiesKHR( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDevicePushDescriptorPropertiesKHR( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDevicePushDescriptorPropertiesKHR & operator=( VkPhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDevicePushDescriptorPropertiesKHR & operator=( PhysicalDevicePushDescriptorPropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) ); - return *this; - } - - - operator VkPhysicalDevicePushDescriptorPropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDevicePushDescriptorPropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDevicePushDescriptorPropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxPushDescriptors == rhs.maxPushDescriptors ); - } - - bool operator!=( PhysicalDevicePushDescriptorPropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDevicePushDescriptorPropertiesKHR; - void* pNext = {}; - uint32_t maxPushDescriptors = {}; - - }; - static_assert( sizeof( PhysicalDevicePushDescriptorPropertiesKHR ) == sizeof( VkPhysicalDevicePushDescriptorPropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDevicePushDescriptorPropertiesKHR; - }; - - struct PhysicalDeviceRayQueryFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ = {}) VULKAN_HPP_NOEXCEPT - : rayQuery( rayQuery_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayQueryFeaturesKHR( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayQueryFeaturesKHR( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceRayQueryFeaturesKHR & operator=( VkPhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRayQueryFeaturesKHR & operator=( PhysicalDeviceRayQueryFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceRayQueryFeaturesKHR ) ); - return *this; - } - - PhysicalDeviceRayQueryFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRayQueryFeaturesKHR & setRayQuery( VULKAN_HPP_NAMESPACE::Bool32 rayQuery_ ) VULKAN_HPP_NOEXCEPT - { - rayQuery = rayQuery_; - return *this; - } - - - operator VkPhysicalDeviceRayQueryFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayQueryFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayQueryFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceRayQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rayQuery == rhs.rayQuery ); - } - - bool operator!=( PhysicalDeviceRayQueryFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayQueryFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayQuery = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayQueryFeaturesKHR ) == sizeof( VkPhysicalDeviceRayQueryFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayQueryFeaturesKHR; - }; - - struct PhysicalDeviceRayTracingPipelineFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ = {}) VULKAN_HPP_NOEXCEPT - : rayTracingPipeline( rayTracingPipeline_ ), rayTracingPipelineShaderGroupHandleCaptureReplay( rayTracingPipelineShaderGroupHandleCaptureReplay_ ), rayTracingPipelineShaderGroupHandleCaptureReplayMixed( rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ), rayTracingPipelineTraceRaysIndirect( rayTracingPipelineTraceRaysIndirect_ ), rayTraversalPrimitiveCulling( rayTraversalPrimitiveCulling_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelineFeaturesKHR( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPipelineFeaturesKHR( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( VkPhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & operator=( PhysicalDeviceRayTracingPipelineFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceRayTracingPipelineFeaturesKHR ) ); - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipeline( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipeline = rayTracingPipeline_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipelineShaderGroupHandleCaptureReplay = rayTracingPipelineShaderGroupHandleCaptureReplay_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineShaderGroupHandleCaptureReplayMixed( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipelineShaderGroupHandleCaptureReplayMixed = rayTracingPipelineShaderGroupHandleCaptureReplayMixed_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTracingPipelineTraceRaysIndirect( VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect_ ) VULKAN_HPP_NOEXCEPT - { - rayTracingPipelineTraceRaysIndirect = rayTracingPipelineTraceRaysIndirect_; - return *this; - } - - PhysicalDeviceRayTracingPipelineFeaturesKHR & setRayTraversalPrimitiveCulling( VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling_ ) VULKAN_HPP_NOEXCEPT - { - rayTraversalPrimitiveCulling = rayTraversalPrimitiveCulling_; - return *this; - } - - - operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayTracingPipelineFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayTracingPipelineFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceRayTracingPipelineFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rayTracingPipeline == rhs.rayTracingPipeline ) - && ( rayTracingPipelineShaderGroupHandleCaptureReplay == rhs.rayTracingPipelineShaderGroupHandleCaptureReplay ) - && ( rayTracingPipelineShaderGroupHandleCaptureReplayMixed == rhs.rayTracingPipelineShaderGroupHandleCaptureReplayMixed ) - && ( rayTracingPipelineTraceRaysIndirect == rhs.rayTracingPipelineTraceRaysIndirect ) - && ( rayTraversalPrimitiveCulling == rhs.rayTraversalPrimitiveCulling ); - } - - bool operator!=( PhysicalDeviceRayTracingPipelineFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelineFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipeline = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTracingPipelineTraceRaysIndirect = {}; - VULKAN_HPP_NAMESPACE::Bool32 rayTraversalPrimitiveCulling = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayTracingPipelineFeaturesKHR ) == sizeof( VkPhysicalDeviceRayTracingPipelineFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayTracingPipelineFeaturesKHR; - }; - - struct PhysicalDeviceRayTracingPipelinePropertiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRayRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint32_t shaderGroupHandleCaptureReplaySize_ = {}, uint32_t maxRayDispatchInvocationCount_ = {}, uint32_t shaderGroupHandleAlignment_ = {}, uint32_t maxRayHitAttributeSize_ = {}) VULKAN_HPP_NOEXCEPT - : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRayRecursionDepth( maxRayRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), shaderGroupHandleCaptureReplaySize( shaderGroupHandleCaptureReplaySize_ ), maxRayDispatchInvocationCount( maxRayDispatchInvocationCount_ ), shaderGroupHandleAlignment( shaderGroupHandleAlignment_ ), maxRayHitAttributeSize( maxRayHitAttributeSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPipelinePropertiesKHR( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPipelinePropertiesKHR( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( VkPhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRayTracingPipelinePropertiesKHR & operator=( PhysicalDeviceRayTracingPipelinePropertiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceRayTracingPipelinePropertiesKHR ) ); - return *this; - } - - - operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayTracingPipelinePropertiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayTracingPipelinePropertiesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceRayTracingPipelinePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) - && ( maxRayRecursionDepth == rhs.maxRayRecursionDepth ) - && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) - && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) - && ( shaderGroupHandleCaptureReplaySize == rhs.shaderGroupHandleCaptureReplaySize ) - && ( maxRayDispatchInvocationCount == rhs.maxRayDispatchInvocationCount ) - && ( shaderGroupHandleAlignment == rhs.shaderGroupHandleAlignment ) - && ( maxRayHitAttributeSize == rhs.maxRayHitAttributeSize ); - } - - bool operator!=( PhysicalDeviceRayTracingPipelinePropertiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPipelinePropertiesKHR; - void* pNext = {}; - uint32_t shaderGroupHandleSize = {}; - uint32_t maxRayRecursionDepth = {}; - uint32_t maxShaderGroupStride = {}; - uint32_t shaderGroupBaseAlignment = {}; - uint32_t shaderGroupHandleCaptureReplaySize = {}; - uint32_t maxRayDispatchInvocationCount = {}; - uint32_t shaderGroupHandleAlignment = {}; - uint32_t maxRayHitAttributeSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayTracingPipelinePropertiesKHR ) == sizeof( VkPhysicalDeviceRayTracingPipelinePropertiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayTracingPipelinePropertiesKHR; - }; - - struct PhysicalDeviceRayTracingPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRayTracingPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV(uint32_t shaderGroupHandleSize_ = {}, uint32_t maxRecursionDepth_ = {}, uint32_t maxShaderGroupStride_ = {}, uint32_t shaderGroupBaseAlignment_ = {}, uint64_t maxGeometryCount_ = {}, uint64_t maxInstanceCount_ = {}, uint64_t maxTriangleCount_ = {}, uint32_t maxDescriptorSetAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT - : shaderGroupHandleSize( shaderGroupHandleSize_ ), maxRecursionDepth( maxRecursionDepth_ ), maxShaderGroupStride( maxShaderGroupStride_ ), shaderGroupBaseAlignment( shaderGroupBaseAlignment_ ), maxGeometryCount( maxGeometryCount_ ), maxInstanceCount( maxInstanceCount_ ), maxTriangleCount( maxTriangleCount_ ), maxDescriptorSetAccelerationStructures( maxDescriptorSetAccelerationStructures_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRayTracingPropertiesNV( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRayTracingPropertiesNV( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceRayTracingPropertiesNV & operator=( VkPhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRayTracingPropertiesNV & operator=( PhysicalDeviceRayTracingPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceRayTracingPropertiesNV ) ); - return *this; - } - - - operator VkPhysicalDeviceRayTracingPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRayTracingPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRayTracingPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderGroupHandleSize == rhs.shaderGroupHandleSize ) - && ( maxRecursionDepth == rhs.maxRecursionDepth ) - && ( maxShaderGroupStride == rhs.maxShaderGroupStride ) - && ( shaderGroupBaseAlignment == rhs.shaderGroupBaseAlignment ) - && ( maxGeometryCount == rhs.maxGeometryCount ) - && ( maxInstanceCount == rhs.maxInstanceCount ) - && ( maxTriangleCount == rhs.maxTriangleCount ) - && ( maxDescriptorSetAccelerationStructures == rhs.maxDescriptorSetAccelerationStructures ); - } - - bool operator!=( PhysicalDeviceRayTracingPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRayTracingPropertiesNV; - void* pNext = {}; - uint32_t shaderGroupHandleSize = {}; - uint32_t maxRecursionDepth = {}; - uint32_t maxShaderGroupStride = {}; - uint32_t shaderGroupBaseAlignment = {}; - uint64_t maxGeometryCount = {}; - uint64_t maxInstanceCount = {}; - uint64_t maxTriangleCount = {}; - uint32_t maxDescriptorSetAccelerationStructures = {}; - - }; - static_assert( sizeof( PhysicalDeviceRayTracingPropertiesNV ) == sizeof( VkPhysicalDeviceRayTracingPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRayTracingPropertiesNV; - }; - - struct PhysicalDeviceRepresentativeFragmentTestFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ = {}) VULKAN_HPP_NOEXCEPT - : representativeFragmentTest( representativeFragmentTest_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRepresentativeFragmentTestFeaturesNV( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & operator=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) ); - return *this; - } - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRepresentativeFragmentTestFeaturesNV & setRepresentativeFragmentTest( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest_ ) VULKAN_HPP_NOEXCEPT - { - representativeFragmentTest = representativeFragmentTest_; - return *this; - } - - - operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( representativeFragmentTest == rhs.representativeFragmentTest ); - } - - bool operator!=( PhysicalDeviceRepresentativeFragmentTestFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRepresentativeFragmentTestFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTest = {}; - - }; - static_assert( sizeof( PhysicalDeviceRepresentativeFragmentTestFeaturesNV ) == sizeof( VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRepresentativeFragmentTestFeaturesNV; - }; - - struct PhysicalDeviceRobustness2FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ = {}, VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ = {}) VULKAN_HPP_NOEXCEPT - : robustBufferAccess2( robustBufferAccess2_ ), robustImageAccess2( robustImageAccess2_ ), nullDescriptor( nullDescriptor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2FeaturesEXT( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRobustness2FeaturesEXT( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceRobustness2FeaturesEXT & operator=( VkPhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & operator=( PhysicalDeviceRobustness2FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceRobustness2FeaturesEXT ) ); - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setRobustBufferAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2_ ) VULKAN_HPP_NOEXCEPT - { - robustBufferAccess2 = robustBufferAccess2_; - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setRobustImageAccess2( VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2_ ) VULKAN_HPP_NOEXCEPT - { - robustImageAccess2 = robustImageAccess2_; - return *this; - } - - PhysicalDeviceRobustness2FeaturesEXT & setNullDescriptor( VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor_ ) VULKAN_HPP_NOEXCEPT - { - nullDescriptor = nullDescriptor_; - return *this; - } - - - operator VkPhysicalDeviceRobustness2FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRobustness2FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRobustness2FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( robustBufferAccess2 == rhs.robustBufferAccess2 ) - && ( robustImageAccess2 == rhs.robustImageAccess2 ) - && ( nullDescriptor == rhs.nullDescriptor ); - } - - bool operator!=( PhysicalDeviceRobustness2FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccess2 = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustImageAccess2 = {}; - VULKAN_HPP_NAMESPACE::Bool32 nullDescriptor = {}; - - }; - static_assert( sizeof( PhysicalDeviceRobustness2FeaturesEXT ) == sizeof( VkPhysicalDeviceRobustness2FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRobustness2FeaturesEXT; - }; - - struct PhysicalDeviceRobustness2PropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : robustStorageBufferAccessSizeAlignment( robustStorageBufferAccessSizeAlignment_ ), robustUniformBufferAccessSizeAlignment( robustUniformBufferAccessSizeAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceRobustness2PropertiesEXT( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceRobustness2PropertiesEXT( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceRobustness2PropertiesEXT & operator=( VkPhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceRobustness2PropertiesEXT & operator=( PhysicalDeviceRobustness2PropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceRobustness2PropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceRobustness2PropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceRobustness2PropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceRobustness2PropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( robustStorageBufferAccessSizeAlignment == rhs.robustStorageBufferAccessSizeAlignment ) - && ( robustUniformBufferAccessSizeAlignment == rhs.robustUniformBufferAccessSizeAlignment ); - } - - bool operator!=( PhysicalDeviceRobustness2PropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceRobustness2PropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize robustStorageBufferAccessSizeAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize robustUniformBufferAccessSizeAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceRobustness2PropertiesEXT ) == sizeof( VkPhysicalDeviceRobustness2PropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceRobustness2PropertiesEXT; - }; - - struct PhysicalDeviceSampleLocationsPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts_ = {}, VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize_ = {}, std::array const& sampleLocationCoordinateRange_ = {}, uint32_t sampleLocationSubPixelBits_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : sampleLocationSampleCounts( sampleLocationSampleCounts_ ), maxSampleLocationGridSize( maxSampleLocationGridSize_ ), sampleLocationCoordinateRange( sampleLocationCoordinateRange_ ), sampleLocationSubPixelBits( sampleLocationSubPixelBits_ ), variableSampleLocations( variableSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceSampleLocationsPropertiesEXT( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSampleLocationsPropertiesEXT( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSampleLocationsPropertiesEXT & operator=( VkPhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSampleLocationsPropertiesEXT & operator=( PhysicalDeviceSampleLocationsPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceSampleLocationsPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSampleLocationsPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSampleLocationsPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationSampleCounts == rhs.sampleLocationSampleCounts ) - && ( maxSampleLocationGridSize == rhs.maxSampleLocationGridSize ) - && ( sampleLocationCoordinateRange == rhs.sampleLocationCoordinateRange ) - && ( sampleLocationSubPixelBits == rhs.sampleLocationSubPixelBits ) - && ( variableSampleLocations == rhs.variableSampleLocations ); - } - - bool operator!=( PhysicalDeviceSampleLocationsPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSampleLocationsPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags sampleLocationSampleCounts = {}; - VULKAN_HPP_NAMESPACE::Extent2D maxSampleLocationGridSize = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D sampleLocationCoordinateRange = {}; - uint32_t sampleLocationSubPixelBits = {}; - VULKAN_HPP_NAMESPACE::Bool32 variableSampleLocations = {}; - - }; - static_assert( sizeof( PhysicalDeviceSampleLocationsPropertiesEXT ) == sizeof( VkPhysicalDeviceSampleLocationsPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSampleLocationsPropertiesEXT; - }; - - struct PhysicalDeviceSamplerFilterMinmaxProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties(VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}) VULKAN_HPP_NOEXCEPT - : filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerFilterMinmaxProperties( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSamplerFilterMinmaxProperties( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSamplerFilterMinmaxProperties & operator=( VkPhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSamplerFilterMinmaxProperties & operator=( PhysicalDeviceSamplerFilterMinmaxProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceSamplerFilterMinmaxProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSamplerFilterMinmaxProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSamplerFilterMinmaxProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) - && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ); - } - - bool operator!=( PhysicalDeviceSamplerFilterMinmaxProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerFilterMinmaxProperties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; - - }; - static_assert( sizeof( PhysicalDeviceSamplerFilterMinmaxProperties ) == sizeof( VkPhysicalDeviceSamplerFilterMinmaxProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSamplerFilterMinmaxProperties; - }; - using PhysicalDeviceSamplerFilterMinmaxPropertiesEXT = PhysicalDeviceSamplerFilterMinmaxProperties; - - struct PhysicalDeviceSamplerYcbcrConversionFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures(VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}) VULKAN_HPP_NOEXCEPT - : samplerYcbcrConversion( samplerYcbcrConversion_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSamplerYcbcrConversionFeatures( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSamplerYcbcrConversionFeatures( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( VkPhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSamplerYcbcrConversionFeatures & operator=( PhysicalDeviceSamplerYcbcrConversionFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) ); - return *this; - } - - PhysicalDeviceSamplerYcbcrConversionFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSamplerYcbcrConversionFeatures & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT - { - samplerYcbcrConversion = samplerYcbcrConversion_; - return *this; - } - - - operator VkPhysicalDeviceSamplerYcbcrConversionFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSamplerYcbcrConversionFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSamplerYcbcrConversionFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ); - } - - bool operator!=( PhysicalDeviceSamplerYcbcrConversionFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSamplerYcbcrConversionFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; - - }; - static_assert( sizeof( PhysicalDeviceSamplerYcbcrConversionFeatures ) == sizeof( VkPhysicalDeviceSamplerYcbcrConversionFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSamplerYcbcrConversionFeatures; - }; - using PhysicalDeviceSamplerYcbcrConversionFeaturesKHR = PhysicalDeviceSamplerYcbcrConversionFeatures; - - struct PhysicalDeviceScalarBlockLayoutFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}) VULKAN_HPP_NOEXCEPT - : scalarBlockLayout( scalarBlockLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceScalarBlockLayoutFeatures( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceScalarBlockLayoutFeatures( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceScalarBlockLayoutFeatures & operator=( VkPhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceScalarBlockLayoutFeatures & operator=( PhysicalDeviceScalarBlockLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) ); - return *this; - } - - PhysicalDeviceScalarBlockLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceScalarBlockLayoutFeatures & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT - { - scalarBlockLayout = scalarBlockLayout_; - return *this; - } - - - operator VkPhysicalDeviceScalarBlockLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceScalarBlockLayoutFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceScalarBlockLayoutFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( scalarBlockLayout == rhs.scalarBlockLayout ); - } - - bool operator!=( PhysicalDeviceScalarBlockLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceScalarBlockLayoutFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; - - }; - static_assert( sizeof( PhysicalDeviceScalarBlockLayoutFeatures ) == sizeof( VkPhysicalDeviceScalarBlockLayoutFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceScalarBlockLayoutFeatures; - }; - using PhysicalDeviceScalarBlockLayoutFeaturesEXT = PhysicalDeviceScalarBlockLayoutFeatures; - - struct PhysicalDeviceSeparateDepthStencilLayoutsFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures(VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}) VULKAN_HPP_NOEXCEPT - : separateDepthStencilLayouts( separateDepthStencilLayouts_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSeparateDepthStencilLayoutsFeatures( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & operator=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) ); - return *this; - } - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSeparateDepthStencilLayoutsFeatures & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT - { - separateDepthStencilLayouts = separateDepthStencilLayouts_; - return *this; - } - - - operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ); - } - - bool operator!=( PhysicalDeviceSeparateDepthStencilLayoutsFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSeparateDepthStencilLayoutsFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; - - }; - static_assert( sizeof( PhysicalDeviceSeparateDepthStencilLayoutsFeatures ) == sizeof( VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSeparateDepthStencilLayoutsFeatures; - }; - using PhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR = PhysicalDeviceSeparateDepthStencilLayoutsFeatures; - - struct PhysicalDeviceShaderAtomicFloatFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ = {}) VULKAN_HPP_NOEXCEPT - : shaderBufferFloat32Atomics( shaderBufferFloat32Atomics_ ), shaderBufferFloat32AtomicAdd( shaderBufferFloat32AtomicAdd_ ), shaderBufferFloat64Atomics( shaderBufferFloat64Atomics_ ), shaderBufferFloat64AtomicAdd( shaderBufferFloat64AtomicAdd_ ), shaderSharedFloat32Atomics( shaderSharedFloat32Atomics_ ), shaderSharedFloat32AtomicAdd( shaderSharedFloat32AtomicAdd_ ), shaderSharedFloat64Atomics( shaderSharedFloat64Atomics_ ), shaderSharedFloat64AtomicAdd( shaderSharedFloat64AtomicAdd_ ), shaderImageFloat32Atomics( shaderImageFloat32Atomics_ ), shaderImageFloat32AtomicAdd( shaderImageFloat32AtomicAdd_ ), sparseImageFloat32Atomics( sparseImageFloat32Atomics_ ), sparseImageFloat32AtomicAdd( sparseImageFloat32AtomicAdd_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicFloatFeaturesEXT( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderAtomicFloatFeaturesEXT( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & operator=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat32Atomics = shaderBufferFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat32AtomicAdd = shaderBufferFloat32AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat64Atomics = shaderBufferFloat64Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderBufferFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferFloat64AtomicAdd = shaderBufferFloat64AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat32Atomics = shaderSharedFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat32AtomicAdd = shaderSharedFloat32AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat64Atomics = shaderSharedFloat64Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderSharedFloat64AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedFloat64AtomicAdd = shaderSharedFloat64AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageFloat32Atomics = shaderImageFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setShaderImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageFloat32AtomicAdd = shaderImageFloat32AtomicAdd_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics_ ) VULKAN_HPP_NOEXCEPT - { - sparseImageFloat32Atomics = sparseImageFloat32Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicFloatFeaturesEXT & setSparseImageFloat32AtomicAdd( VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd_ ) VULKAN_HPP_NOEXCEPT - { - sparseImageFloat32AtomicAdd = sparseImageFloat32AtomicAdd_; - return *this; - } - - - operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderAtomicFloatFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderBufferFloat32Atomics == rhs.shaderBufferFloat32Atomics ) - && ( shaderBufferFloat32AtomicAdd == rhs.shaderBufferFloat32AtomicAdd ) - && ( shaderBufferFloat64Atomics == rhs.shaderBufferFloat64Atomics ) - && ( shaderBufferFloat64AtomicAdd == rhs.shaderBufferFloat64AtomicAdd ) - && ( shaderSharedFloat32Atomics == rhs.shaderSharedFloat32Atomics ) - && ( shaderSharedFloat32AtomicAdd == rhs.shaderSharedFloat32AtomicAdd ) - && ( shaderSharedFloat64Atomics == rhs.shaderSharedFloat64Atomics ) - && ( shaderSharedFloat64AtomicAdd == rhs.shaderSharedFloat64AtomicAdd ) - && ( shaderImageFloat32Atomics == rhs.shaderImageFloat32Atomics ) - && ( shaderImageFloat32AtomicAdd == rhs.shaderImageFloat32AtomicAdd ) - && ( sparseImageFloat32Atomics == rhs.sparseImageFloat32Atomics ) - && ( sparseImageFloat32AtomicAdd == rhs.sparseImageFloat32AtomicAdd ); - } - - bool operator!=( PhysicalDeviceShaderAtomicFloatFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicFloatFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat32AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferFloat64AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat32AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedFloat64AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageFloat32AtomicAdd = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseImageFloat32AtomicAdd = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderAtomicFloatFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderAtomicFloatFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderAtomicFloatFeaturesEXT; - }; - - struct PhysicalDeviceShaderAtomicInt64Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderAtomicInt64Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features(VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT - : shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderAtomicInt64Features( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderAtomicInt64Features( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderAtomicInt64Features & operator=( VkPhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderAtomicInt64Features & operator=( PhysicalDeviceShaderAtomicInt64Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderAtomicInt64Features ) ); - return *this; - } - - PhysicalDeviceShaderAtomicInt64Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderAtomicInt64Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferInt64Atomics = shaderBufferInt64Atomics_; - return *this; - } - - PhysicalDeviceShaderAtomicInt64Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedInt64Atomics = shaderSharedInt64Atomics_; - return *this; - } - - - operator VkPhysicalDeviceShaderAtomicInt64Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderAtomicInt64Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderAtomicInt64Features const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) - && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ); - } - - bool operator!=( PhysicalDeviceShaderAtomicInt64Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderAtomicInt64Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderAtomicInt64Features ) == sizeof( VkPhysicalDeviceShaderAtomicInt64Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderAtomicInt64Features; - }; - using PhysicalDeviceShaderAtomicInt64FeaturesKHR = PhysicalDeviceShaderAtomicInt64Features; - - struct PhysicalDeviceShaderClockFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSubgroupClock( shaderSubgroupClock_ ), shaderDeviceClock( shaderDeviceClock_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderClockFeaturesKHR( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderClockFeaturesKHR( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderClockFeaturesKHR & operator=( VkPhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderClockFeaturesKHR & operator=( PhysicalDeviceShaderClockFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderClockFeaturesKHR ) ); - return *this; - } - - PhysicalDeviceShaderClockFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderClockFeaturesKHR & setShaderSubgroupClock( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock_ ) VULKAN_HPP_NOEXCEPT - { - shaderSubgroupClock = shaderSubgroupClock_; - return *this; - } - - PhysicalDeviceShaderClockFeaturesKHR & setShaderDeviceClock( VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock_ ) VULKAN_HPP_NOEXCEPT - { - shaderDeviceClock = shaderDeviceClock_; - return *this; - } - - - operator VkPhysicalDeviceShaderClockFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderClockFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderClockFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSubgroupClock == rhs.shaderSubgroupClock ) - && ( shaderDeviceClock == rhs.shaderDeviceClock ); - } - - bool operator!=( PhysicalDeviceShaderClockFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderClockFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupClock = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDeviceClock = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderClockFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderClockFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderClockFeaturesKHR; - }; - - struct PhysicalDeviceShaderCoreProperties2AMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD(VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures_ = {}, uint32_t activeComputeUnitCount_ = {}) VULKAN_HPP_NOEXCEPT - : shaderCoreFeatures( shaderCoreFeatures_ ), activeComputeUnitCount( activeComputeUnitCount_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCoreProperties2AMD( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderCoreProperties2AMD( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderCoreProperties2AMD & operator=( VkPhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderCoreProperties2AMD & operator=( PhysicalDeviceShaderCoreProperties2AMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderCoreProperties2AMD ) ); - return *this; - } - - - operator VkPhysicalDeviceShaderCoreProperties2AMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderCoreProperties2AMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderCoreProperties2AMD const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderCoreFeatures == rhs.shaderCoreFeatures ) - && ( activeComputeUnitCount == rhs.activeComputeUnitCount ); - } - - bool operator!=( PhysicalDeviceShaderCoreProperties2AMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCoreProperties2AMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ShaderCorePropertiesFlagsAMD shaderCoreFeatures = {}; - uint32_t activeComputeUnitCount = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderCoreProperties2AMD ) == sizeof( VkPhysicalDeviceShaderCoreProperties2AMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderCoreProperties2AMD; - }; - - struct PhysicalDeviceShaderCorePropertiesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD(uint32_t shaderEngineCount_ = {}, uint32_t shaderArraysPerEngineCount_ = {}, uint32_t computeUnitsPerShaderArray_ = {}, uint32_t simdPerComputeUnit_ = {}, uint32_t wavefrontsPerSimd_ = {}, uint32_t wavefrontSize_ = {}, uint32_t sgprsPerSimd_ = {}, uint32_t minSgprAllocation_ = {}, uint32_t maxSgprAllocation_ = {}, uint32_t sgprAllocationGranularity_ = {}, uint32_t vgprsPerSimd_ = {}, uint32_t minVgprAllocation_ = {}, uint32_t maxVgprAllocation_ = {}, uint32_t vgprAllocationGranularity_ = {}) VULKAN_HPP_NOEXCEPT - : shaderEngineCount( shaderEngineCount_ ), shaderArraysPerEngineCount( shaderArraysPerEngineCount_ ), computeUnitsPerShaderArray( computeUnitsPerShaderArray_ ), simdPerComputeUnit( simdPerComputeUnit_ ), wavefrontsPerSimd( wavefrontsPerSimd_ ), wavefrontSize( wavefrontSize_ ), sgprsPerSimd( sgprsPerSimd_ ), minSgprAllocation( minSgprAllocation_ ), maxSgprAllocation( maxSgprAllocation_ ), sgprAllocationGranularity( sgprAllocationGranularity_ ), vgprsPerSimd( vgprsPerSimd_ ), minVgprAllocation( minVgprAllocation_ ), maxVgprAllocation( maxVgprAllocation_ ), vgprAllocationGranularity( vgprAllocationGranularity_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderCorePropertiesAMD( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderCorePropertiesAMD( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderCorePropertiesAMD & operator=( VkPhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderCorePropertiesAMD & operator=( PhysicalDeviceShaderCorePropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderCorePropertiesAMD ) ); - return *this; - } - - - operator VkPhysicalDeviceShaderCorePropertiesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderCorePropertiesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderCorePropertiesAMD const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderEngineCount == rhs.shaderEngineCount ) - && ( shaderArraysPerEngineCount == rhs.shaderArraysPerEngineCount ) - && ( computeUnitsPerShaderArray == rhs.computeUnitsPerShaderArray ) - && ( simdPerComputeUnit == rhs.simdPerComputeUnit ) - && ( wavefrontsPerSimd == rhs.wavefrontsPerSimd ) - && ( wavefrontSize == rhs.wavefrontSize ) - && ( sgprsPerSimd == rhs.sgprsPerSimd ) - && ( minSgprAllocation == rhs.minSgprAllocation ) - && ( maxSgprAllocation == rhs.maxSgprAllocation ) - && ( sgprAllocationGranularity == rhs.sgprAllocationGranularity ) - && ( vgprsPerSimd == rhs.vgprsPerSimd ) - && ( minVgprAllocation == rhs.minVgprAllocation ) - && ( maxVgprAllocation == rhs.maxVgprAllocation ) - && ( vgprAllocationGranularity == rhs.vgprAllocationGranularity ); - } - - bool operator!=( PhysicalDeviceShaderCorePropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderCorePropertiesAMD; - void* pNext = {}; - uint32_t shaderEngineCount = {}; - uint32_t shaderArraysPerEngineCount = {}; - uint32_t computeUnitsPerShaderArray = {}; - uint32_t simdPerComputeUnit = {}; - uint32_t wavefrontsPerSimd = {}; - uint32_t wavefrontSize = {}; - uint32_t sgprsPerSimd = {}; - uint32_t minSgprAllocation = {}; - uint32_t maxSgprAllocation = {}; - uint32_t sgprAllocationGranularity = {}; - uint32_t vgprsPerSimd = {}; - uint32_t minVgprAllocation = {}; - uint32_t maxVgprAllocation = {}; - uint32_t vgprAllocationGranularity = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderCorePropertiesAMD ) == sizeof( VkPhysicalDeviceShaderCorePropertiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderCorePropertiesAMD; - }; - - struct PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ = {}) VULKAN_HPP_NOEXCEPT - : shaderDemoteToHelperInvocation( shaderDemoteToHelperInvocation_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & operator=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT & setShaderDemoteToHelperInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation_ ) VULKAN_HPP_NOEXCEPT - { - shaderDemoteToHelperInvocation = shaderDemoteToHelperInvocation_; - return *this; - } - - - operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderDemoteToHelperInvocation == rhs.shaderDemoteToHelperInvocation ); - } - - bool operator!=( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDemoteToHelperInvocation = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ) == sizeof( VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - }; - - struct PhysicalDeviceShaderDrawParametersFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT - : shaderDrawParameters( shaderDrawParameters_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderDrawParametersFeatures( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderDrawParametersFeatures( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderDrawParametersFeatures & operator=( VkPhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderDrawParametersFeatures & operator=( PhysicalDeviceShaderDrawParametersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderDrawParametersFeatures ) ); - return *this; - } - - PhysicalDeviceShaderDrawParametersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderDrawParametersFeatures & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT - { - shaderDrawParameters = shaderDrawParameters_; - return *this; - } - - - operator VkPhysicalDeviceShaderDrawParametersFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderDrawParametersFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderDrawParametersFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderDrawParameters == rhs.shaderDrawParameters ); - } - - bool operator!=( PhysicalDeviceShaderDrawParametersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderDrawParametersFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderDrawParametersFeatures ) == sizeof( VkPhysicalDeviceShaderDrawParametersFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderDrawParametersFeatures; - }; - using PhysicalDeviceShaderDrawParameterFeatures = PhysicalDeviceShaderDrawParametersFeatures; - - struct PhysicalDeviceShaderFloat16Int8Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderFloat16Int8Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features(VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}) VULKAN_HPP_NOEXCEPT - : shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderFloat16Int8Features( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderFloat16Int8Features( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderFloat16Int8Features & operator=( VkPhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderFloat16Int8Features & operator=( PhysicalDeviceShaderFloat16Int8Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderFloat16Int8Features ) ); - return *this; - } - - PhysicalDeviceShaderFloat16Int8Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderFloat16Int8Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT - { - shaderFloat16 = shaderFloat16_; - return *this; - } - - PhysicalDeviceShaderFloat16Int8Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt8 = shaderInt8_; - return *this; - } - - - operator VkPhysicalDeviceShaderFloat16Int8Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderFloat16Int8Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderFloat16Int8Features const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderFloat16 == rhs.shaderFloat16 ) - && ( shaderInt8 == rhs.shaderInt8 ); - } - - bool operator!=( PhysicalDeviceShaderFloat16Int8Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderFloat16Int8Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderFloat16Int8Features ) == sizeof( VkPhysicalDeviceShaderFloat16Int8Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderFloat16Int8Features; - }; - using PhysicalDeviceFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; - using PhysicalDeviceShaderFloat16Int8FeaturesKHR = PhysicalDeviceShaderFloat16Int8Features; - - struct PhysicalDeviceShaderImageAtomicInt64FeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ = {}) VULKAN_HPP_NOEXCEPT - : shaderImageInt64Atomics( shaderImageInt64Atomics_ ), sparseImageInt64Atomics( sparseImageInt64Atomics_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & operator=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) ); - return *this; - } - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setShaderImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderImageInt64Atomics = shaderImageInt64Atomics_; - return *this; - } - - PhysicalDeviceShaderImageAtomicInt64FeaturesEXT & setSparseImageInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - sparseImageInt64Atomics = sparseImageInt64Atomics_; - return *this; - } - - - operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderImageInt64Atomics == rhs.shaderImageInt64Atomics ) - && ( sparseImageInt64Atomics == rhs.sparseImageInt64Atomics ); - } - - bool operator!=( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageAtomicInt64FeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderImageInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 sparseImageInt64Atomics = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderImageAtomicInt64FeaturesEXT ) == sizeof( VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderImageAtomicInt64FeaturesEXT; - }; - - struct PhysicalDeviceShaderImageFootprintFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ = {}) VULKAN_HPP_NOEXCEPT - : imageFootprint( imageFootprint_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderImageFootprintFeaturesNV( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderImageFootprintFeaturesNV( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( VkPhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderImageFootprintFeaturesNV & operator=( PhysicalDeviceShaderImageFootprintFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) ); - return *this; - } - - PhysicalDeviceShaderImageFootprintFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderImageFootprintFeaturesNV & setImageFootprint( VULKAN_HPP_NAMESPACE::Bool32 imageFootprint_ ) VULKAN_HPP_NOEXCEPT - { - imageFootprint = imageFootprint_; - return *this; - } - - - operator VkPhysicalDeviceShaderImageFootprintFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderImageFootprintFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderImageFootprintFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( imageFootprint == rhs.imageFootprint ); - } - - bool operator!=( PhysicalDeviceShaderImageFootprintFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderImageFootprintFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 imageFootprint = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderImageFootprintFeaturesNV ) == sizeof( VkPhysicalDeviceShaderImageFootprintFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderImageFootprintFeaturesNV; - }; - - struct PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL(VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ = {}) VULKAN_HPP_NOEXCEPT - : shaderIntegerFunctions2( shaderIntegerFunctions2_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & operator=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) ); - return *this; - } - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL & setShaderIntegerFunctions2( VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2_ ) VULKAN_HPP_NOEXCEPT - { - shaderIntegerFunctions2 = shaderIntegerFunctions2_; - return *this; - } - - - operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderIntegerFunctions2 == rhs.shaderIntegerFunctions2 ); - } - - bool operator!=( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderIntegerFunctions2 = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ) == sizeof( VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - }; - - struct PhysicalDeviceShaderSMBuiltinsFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSMBuiltins( shaderSMBuiltins_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsFeaturesNV( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSMBuiltinsFeaturesNV( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderSMBuiltinsFeaturesNV & operator=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) ); - return *this; - } - - PhysicalDeviceShaderSMBuiltinsFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderSMBuiltinsFeaturesNV & setShaderSMBuiltins( VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins_ ) VULKAN_HPP_NOEXCEPT - { - shaderSMBuiltins = shaderSMBuiltins_; - return *this; - } - - - operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderSMBuiltinsFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSMBuiltins == rhs.shaderSMBuiltins ); - } - - bool operator!=( PhysicalDeviceShaderSMBuiltinsFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSMBuiltins = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsFeaturesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderSMBuiltinsFeaturesNV; - }; - - struct PhysicalDeviceShaderSMBuiltinsPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV(uint32_t shaderSMCount_ = {}, uint32_t shaderWarpsPerSM_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSMCount( shaderSMCount_ ), shaderWarpsPerSM( shaderWarpsPerSM_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSMBuiltinsPropertiesNV( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSMBuiltinsPropertiesNV( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderSMBuiltinsPropertiesNV & operator=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) ); - return *this; - } - - - operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderSMBuiltinsPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSMCount == rhs.shaderSMCount ) - && ( shaderWarpsPerSM == rhs.shaderWarpsPerSM ); - } - - bool operator!=( PhysicalDeviceShaderSMBuiltinsPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSmBuiltinsPropertiesNV; - void* pNext = {}; - uint32_t shaderSMCount = {}; - uint32_t shaderWarpsPerSM = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderSMBuiltinsPropertiesNV ) == sizeof( VkPhysicalDeviceShaderSMBuiltinsPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderSMBuiltinsPropertiesNV; - }; - - struct PhysicalDeviceShaderSubgroupExtendedTypesFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures(VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}) VULKAN_HPP_NOEXCEPT - : shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderSubgroupExtendedTypesFeatures( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & operator=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) ); - return *this; - } - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderSubgroupExtendedTypesFeatures & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT - { - shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; - return *this; - } - - - operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ); - } - - bool operator!=( PhysicalDeviceShaderSubgroupExtendedTypesFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderSubgroupExtendedTypesFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderSubgroupExtendedTypesFeatures ) == sizeof( VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderSubgroupExtendedTypesFeatures; - }; - using PhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR = PhysicalDeviceShaderSubgroupExtendedTypesFeatures; - - struct PhysicalDeviceShaderTerminateInvocationFeaturesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR(VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ = {}) VULKAN_HPP_NOEXCEPT - : shaderTerminateInvocation( shaderTerminateInvocation_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShaderTerminateInvocationFeaturesKHR( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR & operator=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) ); - return *this; - } - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShaderTerminateInvocationFeaturesKHR & setShaderTerminateInvocation( VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation_ ) VULKAN_HPP_NOEXCEPT - { - shaderTerminateInvocation = shaderTerminateInvocation_; - return *this; - } - - - operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& ) const = default; -#else - bool operator==( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shaderTerminateInvocation == rhs.shaderTerminateInvocation ); - } - - bool operator!=( PhysicalDeviceShaderTerminateInvocationFeaturesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShaderTerminateInvocationFeaturesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderTerminateInvocation = {}; - - }; - static_assert( sizeof( PhysicalDeviceShaderTerminateInvocationFeaturesKHR ) == sizeof( VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShaderTerminateInvocationFeaturesKHR; - }; - - struct PhysicalDeviceShadingRateImageFeaturesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRateImage( shadingRateImage_ ), shadingRateCoarseSampleOrder( shadingRateCoarseSampleOrder_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImageFeaturesNV( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShadingRateImageFeaturesNV( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShadingRateImageFeaturesNV & operator=( VkPhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShadingRateImageFeaturesNV & operator=( PhysicalDeviceShadingRateImageFeaturesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) ); - return *this; - } - - PhysicalDeviceShadingRateImageFeaturesNV & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateImage( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateImage = shadingRateImage_; - return *this; - } - - PhysicalDeviceShadingRateImageFeaturesNV & setShadingRateCoarseSampleOrder( VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateCoarseSampleOrder = shadingRateCoarseSampleOrder_; - return *this; - } - - - operator VkPhysicalDeviceShadingRateImageFeaturesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShadingRateImageFeaturesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShadingRateImageFeaturesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateImage == rhs.shadingRateImage ) - && ( shadingRateCoarseSampleOrder == rhs.shadingRateCoarseSampleOrder ); - } - - bool operator!=( PhysicalDeviceShadingRateImageFeaturesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImageFeaturesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateImage = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateCoarseSampleOrder = {}; - - }; - static_assert( sizeof( PhysicalDeviceShadingRateImageFeaturesNV ) == sizeof( VkPhysicalDeviceShadingRateImageFeaturesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShadingRateImageFeaturesNV; - }; - - struct PhysicalDeviceShadingRateImagePropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV(VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize_ = {}, uint32_t shadingRatePaletteSize_ = {}, uint32_t shadingRateMaxCoarseSamples_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRateTexelSize( shadingRateTexelSize_ ), shadingRatePaletteSize( shadingRatePaletteSize_ ), shadingRateMaxCoarseSamples( shadingRateMaxCoarseSamples_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceShadingRateImagePropertiesNV( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceShadingRateImagePropertiesNV( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceShadingRateImagePropertiesNV & operator=( VkPhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceShadingRateImagePropertiesNV & operator=( PhysicalDeviceShadingRateImagePropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) ); - return *this; - } - - - operator VkPhysicalDeviceShadingRateImagePropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceShadingRateImagePropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceShadingRateImagePropertiesNV const& ) const = default; -#else - bool operator==( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateTexelSize == rhs.shadingRateTexelSize ) - && ( shadingRatePaletteSize == rhs.shadingRatePaletteSize ) - && ( shadingRateMaxCoarseSamples == rhs.shadingRateMaxCoarseSamples ); - } - - bool operator!=( PhysicalDeviceShadingRateImagePropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceShadingRateImagePropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D shadingRateTexelSize = {}; - uint32_t shadingRatePaletteSize = {}; - uint32_t shadingRateMaxCoarseSamples = {}; - - }; - static_assert( sizeof( PhysicalDeviceShadingRateImagePropertiesNV ) == sizeof( VkPhysicalDeviceShadingRateImagePropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceShadingRateImagePropertiesNV; - }; - - struct PhysicalDeviceSubgroupProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties(uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages_ = {}) VULKAN_HPP_NOEXCEPT - : subgroupSize( subgroupSize_ ), supportedStages( supportedStages_ ), supportedOperations( supportedOperations_ ), quadOperationsInAllStages( quadOperationsInAllStages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupProperties( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupProperties( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSubgroupProperties & operator=( VkPhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSubgroupProperties & operator=( PhysicalDeviceSubgroupProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSubgroupProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceSubgroupProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSubgroupProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSubgroupProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subgroupSize == rhs.subgroupSize ) - && ( supportedStages == rhs.supportedStages ) - && ( supportedOperations == rhs.supportedOperations ) - && ( quadOperationsInAllStages == rhs.quadOperationsInAllStages ); - } - - bool operator!=( PhysicalDeviceSubgroupProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupProperties; - void* pNext = {}; - uint32_t subgroupSize = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags supportedStages = {}; - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags supportedOperations = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadOperationsInAllStages = {}; - - }; - static_assert( sizeof( PhysicalDeviceSubgroupProperties ) == sizeof( VkPhysicalDeviceSubgroupProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSubgroupProperties; - }; - - struct PhysicalDeviceSubgroupSizeControlFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ = {}, VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ = {}) VULKAN_HPP_NOEXCEPT - : subgroupSizeControl( subgroupSizeControl_ ), computeFullSubgroups( computeFullSubgroups_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlFeaturesEXT( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupSizeControlFeaturesEXT( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & operator=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setSubgroupSizeControl( VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl_ ) VULKAN_HPP_NOEXCEPT - { - subgroupSizeControl = subgroupSizeControl_; - return *this; - } - - PhysicalDeviceSubgroupSizeControlFeaturesEXT & setComputeFullSubgroups( VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups_ ) VULKAN_HPP_NOEXCEPT - { - computeFullSubgroups = computeFullSubgroups_; - return *this; - } - - - operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSubgroupSizeControlFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subgroupSizeControl == rhs.subgroupSizeControl ) - && ( computeFullSubgroups == rhs.computeFullSubgroups ); - } - - bool operator!=( PhysicalDeviceSubgroupSizeControlFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupSizeControl = {}; - VULKAN_HPP_NAMESPACE::Bool32 computeFullSubgroups = {}; - - }; - static_assert( sizeof( PhysicalDeviceSubgroupSizeControlFeaturesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSubgroupSizeControlFeaturesEXT; - }; - - struct PhysicalDeviceSubgroupSizeControlPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT(uint32_t minSubgroupSize_ = {}, uint32_t maxSubgroupSize_ = {}, uint32_t maxComputeWorkgroupSubgroups_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages_ = {}) VULKAN_HPP_NOEXCEPT - : minSubgroupSize( minSubgroupSize_ ), maxSubgroupSize( maxSubgroupSize_ ), maxComputeWorkgroupSubgroups( maxComputeWorkgroupSubgroups_ ), requiredSubgroupSizeStages( requiredSubgroupSizeStages_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceSubgroupSizeControlPropertiesEXT( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceSubgroupSizeControlPropertiesEXT( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceSubgroupSizeControlPropertiesEXT & operator=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceSubgroupSizeControlPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( minSubgroupSize == rhs.minSubgroupSize ) - && ( maxSubgroupSize == rhs.maxSubgroupSize ) - && ( maxComputeWorkgroupSubgroups == rhs.maxComputeWorkgroupSubgroups ) - && ( requiredSubgroupSizeStages == rhs.requiredSubgroupSizeStages ); - } - - bool operator!=( PhysicalDeviceSubgroupSizeControlPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceSubgroupSizeControlPropertiesEXT; - void* pNext = {}; - uint32_t minSubgroupSize = {}; - uint32_t maxSubgroupSize = {}; - uint32_t maxComputeWorkgroupSubgroups = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags requiredSubgroupSizeStages = {}; - - }; - static_assert( sizeof( PhysicalDeviceSubgroupSizeControlPropertiesEXT ) == sizeof( VkPhysicalDeviceSubgroupSizeControlPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceSubgroupSizeControlPropertiesEXT; - }; - - struct PhysicalDeviceTexelBufferAlignmentFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : texelBufferAlignment( texelBufferAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentFeaturesEXT( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & operator=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTexelBufferAlignmentFeaturesEXT & setTexelBufferAlignment( VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment_ ) VULKAN_HPP_NOEXCEPT - { - texelBufferAlignment = texelBufferAlignment_; - return *this; - } - - - operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( texelBufferAlignment == rhs.texelBufferAlignment ); - } - - bool operator!=( PhysicalDeviceTexelBufferAlignmentFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 texelBufferAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentFeaturesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTexelBufferAlignmentFeaturesEXT; - }; - - struct PhysicalDeviceTexelBufferAlignmentPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT(VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment_ = {}) VULKAN_HPP_NOEXCEPT - : storageTexelBufferOffsetAlignmentBytes( storageTexelBufferOffsetAlignmentBytes_ ), storageTexelBufferOffsetSingleTexelAlignment( storageTexelBufferOffsetSingleTexelAlignment_ ), uniformTexelBufferOffsetAlignmentBytes( uniformTexelBufferOffsetAlignmentBytes_ ), uniformTexelBufferOffsetSingleTexelAlignment( uniformTexelBufferOffsetSingleTexelAlignment_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTexelBufferAlignmentPropertiesEXT( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTexelBufferAlignmentPropertiesEXT( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTexelBufferAlignmentPropertiesEXT & operator=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageTexelBufferOffsetAlignmentBytes == rhs.storageTexelBufferOffsetAlignmentBytes ) - && ( storageTexelBufferOffsetSingleTexelAlignment == rhs.storageTexelBufferOffsetSingleTexelAlignment ) - && ( uniformTexelBufferOffsetAlignmentBytes == rhs.uniformTexelBufferOffsetAlignmentBytes ) - && ( uniformTexelBufferOffsetSingleTexelAlignment == rhs.uniformTexelBufferOffsetSingleTexelAlignment ); - } - - bool operator!=( PhysicalDeviceTexelBufferAlignmentPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTexelBufferAlignmentPropertiesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DeviceSize storageTexelBufferOffsetAlignmentBytes = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageTexelBufferOffsetSingleTexelAlignment = {}; - VULKAN_HPP_NAMESPACE::DeviceSize uniformTexelBufferOffsetAlignmentBytes = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformTexelBufferOffsetSingleTexelAlignment = {}; - - }; - static_assert( sizeof( PhysicalDeviceTexelBufferAlignmentPropertiesEXT ) == sizeof( VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTexelBufferAlignmentPropertiesEXT; - }; - - struct PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ = {}) VULKAN_HPP_NOEXCEPT - : textureCompressionASTC_HDR( textureCompressionASTC_HDR_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & operator=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT & setTextureCompressionASTC_HDR( VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR_ ) VULKAN_HPP_NOEXCEPT - { - textureCompressionASTC_HDR = textureCompressionASTC_HDR_; - return *this; - } - - - operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( textureCompressionASTC_HDR == rhs.textureCompressionASTC_HDR ); - } - - bool operator!=( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTextureCompressionAstcHdrFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 textureCompressionASTC_HDR = {}; - - }; - static_assert( sizeof( PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ) == sizeof( VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; - }; - - struct PhysicalDeviceTimelineSemaphoreFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures(VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}) VULKAN_HPP_NOEXCEPT - : timelineSemaphore( timelineSemaphore_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreFeatures( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTimelineSemaphoreFeatures( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceTimelineSemaphoreFeatures & operator=( VkPhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTimelineSemaphoreFeatures & operator=( PhysicalDeviceTimelineSemaphoreFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) ); - return *this; - } - - PhysicalDeviceTimelineSemaphoreFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTimelineSemaphoreFeatures & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT - { - timelineSemaphore = timelineSemaphore_; - return *this; - } - - - operator VkPhysicalDeviceTimelineSemaphoreFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTimelineSemaphoreFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTimelineSemaphoreFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( timelineSemaphore == rhs.timelineSemaphore ); - } - - bool operator!=( PhysicalDeviceTimelineSemaphoreFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; - - }; - static_assert( sizeof( PhysicalDeviceTimelineSemaphoreFeatures ) == sizeof( VkPhysicalDeviceTimelineSemaphoreFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTimelineSemaphoreFeatures; - }; - using PhysicalDeviceTimelineSemaphoreFeaturesKHR = PhysicalDeviceTimelineSemaphoreFeatures; - - struct PhysicalDeviceTimelineSemaphoreProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties(uint64_t maxTimelineSemaphoreValueDifference_ = {}) VULKAN_HPP_NOEXCEPT - : maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTimelineSemaphoreProperties( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTimelineSemaphoreProperties( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceTimelineSemaphoreProperties & operator=( VkPhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTimelineSemaphoreProperties & operator=( PhysicalDeviceTimelineSemaphoreProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceTimelineSemaphoreProperties ) ); - return *this; - } - - - operator VkPhysicalDeviceTimelineSemaphoreProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTimelineSemaphoreProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTimelineSemaphoreProperties const& ) const = default; -#else - bool operator==( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ); - } - - bool operator!=( PhysicalDeviceTimelineSemaphoreProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTimelineSemaphoreProperties; - void* pNext = {}; - uint64_t maxTimelineSemaphoreValueDifference = {}; - - }; - static_assert( sizeof( PhysicalDeviceTimelineSemaphoreProperties ) == sizeof( VkPhysicalDeviceTimelineSemaphoreProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTimelineSemaphoreProperties; - }; - using PhysicalDeviceTimelineSemaphorePropertiesKHR = PhysicalDeviceTimelineSemaphoreProperties; - - struct PhysicalDeviceTransformFeedbackFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ = {}, VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ = {}) VULKAN_HPP_NOEXCEPT - : transformFeedback( transformFeedback_ ), geometryStreams( geometryStreams_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackFeaturesEXT( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTransformFeedbackFeaturesEXT( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( VkPhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTransformFeedbackFeaturesEXT & operator=( PhysicalDeviceTransformFeedbackFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceTransformFeedbackFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceTransformFeedbackFeaturesEXT & setTransformFeedback( VULKAN_HPP_NAMESPACE::Bool32 transformFeedback_ ) VULKAN_HPP_NOEXCEPT - { - transformFeedback = transformFeedback_; - return *this; - } - - PhysicalDeviceTransformFeedbackFeaturesEXT & setGeometryStreams( VULKAN_HPP_NAMESPACE::Bool32 geometryStreams_ ) VULKAN_HPP_NOEXCEPT - { - geometryStreams = geometryStreams_; - return *this; - } - - - operator VkPhysicalDeviceTransformFeedbackFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTransformFeedbackFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTransformFeedbackFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transformFeedback == rhs.transformFeedback ) - && ( geometryStreams == rhs.geometryStreams ); - } - - bool operator!=( PhysicalDeviceTransformFeedbackFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedback = {}; - VULKAN_HPP_NAMESPACE::Bool32 geometryStreams = {}; - - }; - static_assert( sizeof( PhysicalDeviceTransformFeedbackFeaturesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTransformFeedbackFeaturesEXT; - }; - - struct PhysicalDeviceTransformFeedbackPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT(uint32_t maxTransformFeedbackStreams_ = {}, uint32_t maxTransformFeedbackBuffers_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize_ = {}, uint32_t maxTransformFeedbackStreamDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataSize_ = {}, uint32_t maxTransformFeedbackBufferDataStride_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect_ = {}, VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw_ = {}) VULKAN_HPP_NOEXCEPT - : maxTransformFeedbackStreams( maxTransformFeedbackStreams_ ), maxTransformFeedbackBuffers( maxTransformFeedbackBuffers_ ), maxTransformFeedbackBufferSize( maxTransformFeedbackBufferSize_ ), maxTransformFeedbackStreamDataSize( maxTransformFeedbackStreamDataSize_ ), maxTransformFeedbackBufferDataSize( maxTransformFeedbackBufferDataSize_ ), maxTransformFeedbackBufferDataStride( maxTransformFeedbackBufferDataStride_ ), transformFeedbackQueries( transformFeedbackQueries_ ), transformFeedbackStreamsLinesTriangles( transformFeedbackStreamsLinesTriangles_ ), transformFeedbackRasterizationStreamSelect( transformFeedbackRasterizationStreamSelect_ ), transformFeedbackDraw( transformFeedbackDraw_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceTransformFeedbackPropertiesEXT( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceTransformFeedbackPropertiesEXT( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( VkPhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceTransformFeedbackPropertiesEXT & operator=( PhysicalDeviceTransformFeedbackPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceTransformFeedbackPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceTransformFeedbackPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceTransformFeedbackPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxTransformFeedbackStreams == rhs.maxTransformFeedbackStreams ) - && ( maxTransformFeedbackBuffers == rhs.maxTransformFeedbackBuffers ) - && ( maxTransformFeedbackBufferSize == rhs.maxTransformFeedbackBufferSize ) - && ( maxTransformFeedbackStreamDataSize == rhs.maxTransformFeedbackStreamDataSize ) - && ( maxTransformFeedbackBufferDataSize == rhs.maxTransformFeedbackBufferDataSize ) - && ( maxTransformFeedbackBufferDataStride == rhs.maxTransformFeedbackBufferDataStride ) - && ( transformFeedbackQueries == rhs.transformFeedbackQueries ) - && ( transformFeedbackStreamsLinesTriangles == rhs.transformFeedbackStreamsLinesTriangles ) - && ( transformFeedbackRasterizationStreamSelect == rhs.transformFeedbackRasterizationStreamSelect ) - && ( transformFeedbackDraw == rhs.transformFeedbackDraw ); - } - - bool operator!=( PhysicalDeviceTransformFeedbackPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceTransformFeedbackPropertiesEXT; - void* pNext = {}; - uint32_t maxTransformFeedbackStreams = {}; - uint32_t maxTransformFeedbackBuffers = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxTransformFeedbackBufferSize = {}; - uint32_t maxTransformFeedbackStreamDataSize = {}; - uint32_t maxTransformFeedbackBufferDataSize = {}; - uint32_t maxTransformFeedbackBufferDataStride = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackQueries = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackStreamsLinesTriangles = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackRasterizationStreamSelect = {}; - VULKAN_HPP_NAMESPACE::Bool32 transformFeedbackDraw = {}; - - }; - static_assert( sizeof( PhysicalDeviceTransformFeedbackPropertiesEXT ) == sizeof( VkPhysicalDeviceTransformFeedbackPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceTransformFeedbackPropertiesEXT; - }; - - struct PhysicalDeviceUniformBufferStandardLayoutFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures(VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}) VULKAN_HPP_NOEXCEPT - : uniformBufferStandardLayout( uniformBufferStandardLayout_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceUniformBufferStandardLayoutFeatures( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceUniformBufferStandardLayoutFeatures( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( VkPhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceUniformBufferStandardLayoutFeatures & operator=( PhysicalDeviceUniformBufferStandardLayoutFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) ); - return *this; - } - - PhysicalDeviceUniformBufferStandardLayoutFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceUniformBufferStandardLayoutFeatures & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT - { - uniformBufferStandardLayout = uniformBufferStandardLayout_; - return *this; - } - - - operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceUniformBufferStandardLayoutFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceUniformBufferStandardLayoutFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ); - } - - bool operator!=( PhysicalDeviceUniformBufferStandardLayoutFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceUniformBufferStandardLayoutFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; - - }; - static_assert( sizeof( PhysicalDeviceUniformBufferStandardLayoutFeatures ) == sizeof( VkPhysicalDeviceUniformBufferStandardLayoutFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceUniformBufferStandardLayoutFeatures; - }; - using PhysicalDeviceUniformBufferStandardLayoutFeaturesKHR = PhysicalDeviceUniformBufferStandardLayoutFeatures; - - struct PhysicalDeviceVariablePointersFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVariablePointersFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures(VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}) VULKAN_HPP_NOEXCEPT - : variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVariablePointersFeatures( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVariablePointersFeatures( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVariablePointersFeatures & operator=( VkPhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVariablePointersFeatures & operator=( PhysicalDeviceVariablePointersFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVariablePointersFeatures ) ); - return *this; - } - - PhysicalDeviceVariablePointersFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVariablePointersFeatures & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT - { - variablePointersStorageBuffer = variablePointersStorageBuffer_; - return *this; - } - - PhysicalDeviceVariablePointersFeatures & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT - { - variablePointers = variablePointers_; - return *this; - } - - - operator VkPhysicalDeviceVariablePointersFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVariablePointersFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVariablePointersFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) - && ( variablePointers == rhs.variablePointers ); - } - - bool operator!=( PhysicalDeviceVariablePointersFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVariablePointersFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; - - }; - static_assert( sizeof( PhysicalDeviceVariablePointersFeatures ) == sizeof( VkPhysicalDeviceVariablePointersFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVariablePointersFeatures; - }; - using PhysicalDeviceVariablePointerFeatures = PhysicalDeviceVariablePointersFeatures; - using PhysicalDeviceVariablePointerFeaturesKHR = PhysicalDeviceVariablePointersFeatures; - using PhysicalDeviceVariablePointersFeaturesKHR = PhysicalDeviceVariablePointersFeatures; - - struct PhysicalDeviceVertexAttributeDivisorFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ = {}) VULKAN_HPP_NOEXCEPT - : vertexAttributeInstanceRateDivisor( vertexAttributeInstanceRateDivisor_ ), vertexAttributeInstanceRateZeroDivisor( vertexAttributeInstanceRateZeroDivisor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorFeaturesEXT( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & operator=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeInstanceRateDivisor = vertexAttributeInstanceRateDivisor_; - return *this; - } - - PhysicalDeviceVertexAttributeDivisorFeaturesEXT & setVertexAttributeInstanceRateZeroDivisor( VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor_ ) VULKAN_HPP_NOEXCEPT - { - vertexAttributeInstanceRateZeroDivisor = vertexAttributeInstanceRateZeroDivisor_; - return *this; - } - - - operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexAttributeInstanceRateDivisor == rhs.vertexAttributeInstanceRateDivisor ) - && ( vertexAttributeInstanceRateZeroDivisor == rhs.vertexAttributeInstanceRateZeroDivisor ); - } - - bool operator!=( PhysicalDeviceVertexAttributeDivisorFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateDivisor = {}; - VULKAN_HPP_NAMESPACE::Bool32 vertexAttributeInstanceRateZeroDivisor = {}; - - }; - static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorFeaturesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVertexAttributeDivisorFeaturesEXT; - }; - - struct PhysicalDeviceVertexAttributeDivisorPropertiesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT(uint32_t maxVertexAttribDivisor_ = {}) VULKAN_HPP_NOEXCEPT - : maxVertexAttribDivisor( maxVertexAttribDivisor_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVertexAttributeDivisorPropertiesEXT( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVertexAttributeDivisorPropertiesEXT( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVertexAttributeDivisorPropertiesEXT & operator=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) ); - return *this; - } - - - operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( maxVertexAttribDivisor == rhs.maxVertexAttribDivisor ); - } - - bool operator!=( PhysicalDeviceVertexAttributeDivisorPropertiesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVertexAttributeDivisorPropertiesEXT; - void* pNext = {}; - uint32_t maxVertexAttribDivisor = {}; - - }; - static_assert( sizeof( PhysicalDeviceVertexAttributeDivisorPropertiesEXT ) == sizeof( VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVertexAttributeDivisorPropertiesEXT; - }; - - struct PhysicalDeviceVulkan11Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features(VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiview_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ = {}) VULKAN_HPP_NOEXCEPT - : storageBuffer16BitAccess( storageBuffer16BitAccess_ ), uniformAndStorageBuffer16BitAccess( uniformAndStorageBuffer16BitAccess_ ), storagePushConstant16( storagePushConstant16_ ), storageInputOutput16( storageInputOutput16_ ), multiview( multiview_ ), multiviewGeometryShader( multiviewGeometryShader_ ), multiviewTessellationShader( multiviewTessellationShader_ ), variablePointersStorageBuffer( variablePointersStorageBuffer_ ), variablePointers( variablePointers_ ), protectedMemory( protectedMemory_ ), samplerYcbcrConversion( samplerYcbcrConversion_ ), shaderDrawParameters( shaderDrawParameters_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan11Features( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan11Features( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVulkan11Features & operator=( VkPhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkan11Features & operator=( PhysicalDeviceVulkan11Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVulkan11Features ) ); - return *this; - } - - PhysicalDeviceVulkan11Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVulkan11Features & setStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer16BitAccess = storageBuffer16BitAccess_; - return *this; - } - - PhysicalDeviceVulkan11Features & setUniformAndStorageBuffer16BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer16BitAccess = uniformAndStorageBuffer16BitAccess_; - return *this; - } - - PhysicalDeviceVulkan11Features & setStoragePushConstant16( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant16 = storagePushConstant16_; - return *this; - } - - PhysicalDeviceVulkan11Features & setStorageInputOutput16( VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16_ ) VULKAN_HPP_NOEXCEPT - { - storageInputOutput16 = storageInputOutput16_; - return *this; - } - - PhysicalDeviceVulkan11Features & setMultiview( VULKAN_HPP_NAMESPACE::Bool32 multiview_ ) VULKAN_HPP_NOEXCEPT - { - multiview = multiview_; - return *this; - } - - PhysicalDeviceVulkan11Features & setMultiviewGeometryShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewGeometryShader = multiviewGeometryShader_; - return *this; - } - - PhysicalDeviceVulkan11Features & setMultiviewTessellationShader( VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader_ ) VULKAN_HPP_NOEXCEPT - { - multiviewTessellationShader = multiviewTessellationShader_; - return *this; - } - - PhysicalDeviceVulkan11Features & setVariablePointersStorageBuffer( VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer_ ) VULKAN_HPP_NOEXCEPT - { - variablePointersStorageBuffer = variablePointersStorageBuffer_; - return *this; - } - - PhysicalDeviceVulkan11Features & setVariablePointers( VULKAN_HPP_NAMESPACE::Bool32 variablePointers_ ) VULKAN_HPP_NOEXCEPT - { - variablePointers = variablePointers_; - return *this; - } - - PhysicalDeviceVulkan11Features & setProtectedMemory( VULKAN_HPP_NAMESPACE::Bool32 protectedMemory_ ) VULKAN_HPP_NOEXCEPT - { - protectedMemory = protectedMemory_; - return *this; - } - - PhysicalDeviceVulkan11Features & setSamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion_ ) VULKAN_HPP_NOEXCEPT - { - samplerYcbcrConversion = samplerYcbcrConversion_; - return *this; - } - - PhysicalDeviceVulkan11Features & setShaderDrawParameters( VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters_ ) VULKAN_HPP_NOEXCEPT - { - shaderDrawParameters = shaderDrawParameters_; - return *this; - } - - - operator VkPhysicalDeviceVulkan11Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan11Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan11Features const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( storageBuffer16BitAccess == rhs.storageBuffer16BitAccess ) - && ( uniformAndStorageBuffer16BitAccess == rhs.uniformAndStorageBuffer16BitAccess ) - && ( storagePushConstant16 == rhs.storagePushConstant16 ) - && ( storageInputOutput16 == rhs.storageInputOutput16 ) - && ( multiview == rhs.multiview ) - && ( multiviewGeometryShader == rhs.multiviewGeometryShader ) - && ( multiviewTessellationShader == rhs.multiviewTessellationShader ) - && ( variablePointersStorageBuffer == rhs.variablePointersStorageBuffer ) - && ( variablePointers == rhs.variablePointers ) - && ( protectedMemory == rhs.protectedMemory ) - && ( samplerYcbcrConversion == rhs.samplerYcbcrConversion ) - && ( shaderDrawParameters == rhs.shaderDrawParameters ); - } - - bool operator!=( PhysicalDeviceVulkan11Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer16BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageInputOutput16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiview = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewGeometryShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 multiviewTessellationShader = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointersStorageBuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 variablePointers = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedMemory = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerYcbcrConversion = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDrawParameters = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan11Features ) == sizeof( VkPhysicalDeviceVulkan11Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan11Features; - }; - - struct PhysicalDeviceVulkan11Properties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan11Properties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties(std::array const& deviceUUID_ = {}, std::array const& driverUUID_ = {}, std::array const& deviceLUID_ = {}, uint32_t deviceNodeMask_ = {}, VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid_ = {}, uint32_t subgroupSize_ = {}, VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages_ = {}, VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages_ = {}, VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior_ = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes, uint32_t maxMultiviewViewCount_ = {}, uint32_t maxMultiviewInstanceIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault_ = {}, uint32_t maxPerSetDescriptors_ = {}, VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize_ = {}) VULKAN_HPP_NOEXCEPT - : deviceUUID( deviceUUID_ ), driverUUID( driverUUID_ ), deviceLUID( deviceLUID_ ), deviceNodeMask( deviceNodeMask_ ), deviceLUIDValid( deviceLUIDValid_ ), subgroupSize( subgroupSize_ ), subgroupSupportedStages( subgroupSupportedStages_ ), subgroupSupportedOperations( subgroupSupportedOperations_ ), subgroupQuadOperationsInAllStages( subgroupQuadOperationsInAllStages_ ), pointClippingBehavior( pointClippingBehavior_ ), maxMultiviewViewCount( maxMultiviewViewCount_ ), maxMultiviewInstanceIndex( maxMultiviewInstanceIndex_ ), protectedNoFault( protectedNoFault_ ), maxPerSetDescriptors( maxPerSetDescriptors_ ), maxMemoryAllocationSize( maxMemoryAllocationSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan11Properties( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan11Properties( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVulkan11Properties & operator=( VkPhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkan11Properties & operator=( PhysicalDeviceVulkan11Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVulkan11Properties ) ); - return *this; - } - - - operator VkPhysicalDeviceVulkan11Properties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan11Properties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan11Properties const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( deviceUUID == rhs.deviceUUID ) - && ( driverUUID == rhs.driverUUID ) - && ( deviceLUID == rhs.deviceLUID ) - && ( deviceNodeMask == rhs.deviceNodeMask ) - && ( deviceLUIDValid == rhs.deviceLUIDValid ) - && ( subgroupSize == rhs.subgroupSize ) - && ( subgroupSupportedStages == rhs.subgroupSupportedStages ) - && ( subgroupSupportedOperations == rhs.subgroupSupportedOperations ) - && ( subgroupQuadOperationsInAllStages == rhs.subgroupQuadOperationsInAllStages ) - && ( pointClippingBehavior == rhs.pointClippingBehavior ) - && ( maxMultiviewViewCount == rhs.maxMultiviewViewCount ) - && ( maxMultiviewInstanceIndex == rhs.maxMultiviewInstanceIndex ) - && ( protectedNoFault == rhs.protectedNoFault ) - && ( maxPerSetDescriptors == rhs.maxPerSetDescriptors ) - && ( maxMemoryAllocationSize == rhs.maxMemoryAllocationSize ); - } - - bool operator!=( PhysicalDeviceVulkan11Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan11Properties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverUUID = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D deviceLUID = {}; - uint32_t deviceNodeMask = {}; - VULKAN_HPP_NAMESPACE::Bool32 deviceLUIDValid = {}; - uint32_t subgroupSize = {}; - VULKAN_HPP_NAMESPACE::ShaderStageFlags subgroupSupportedStages = {}; - VULKAN_HPP_NAMESPACE::SubgroupFeatureFlags subgroupSupportedOperations = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupQuadOperationsInAllStages = {}; - VULKAN_HPP_NAMESPACE::PointClippingBehavior pointClippingBehavior = VULKAN_HPP_NAMESPACE::PointClippingBehavior::eAllClipPlanes; - uint32_t maxMultiviewViewCount = {}; - uint32_t maxMultiviewInstanceIndex = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedNoFault = {}; - uint32_t maxPerSetDescriptors = {}; - VULKAN_HPP_NAMESPACE::DeviceSize maxMemoryAllocationSize = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan11Properties ) == sizeof( VkPhysicalDeviceVulkan11Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan11Properties; - }; - - struct PhysicalDeviceVulkan12Features - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Features; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features(VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ = {}, VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ = {}, VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ = {}, VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ = {}, VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ = {}, VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ = {}, VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ = {}, VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ = {}, VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ = {}, VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ = {}, VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ = {}) VULKAN_HPP_NOEXCEPT - : samplerMirrorClampToEdge( samplerMirrorClampToEdge_ ), drawIndirectCount( drawIndirectCount_ ), storageBuffer8BitAccess( storageBuffer8BitAccess_ ), uniformAndStorageBuffer8BitAccess( uniformAndStorageBuffer8BitAccess_ ), storagePushConstant8( storagePushConstant8_ ), shaderBufferInt64Atomics( shaderBufferInt64Atomics_ ), shaderSharedInt64Atomics( shaderSharedInt64Atomics_ ), shaderFloat16( shaderFloat16_ ), shaderInt8( shaderInt8_ ), descriptorIndexing( descriptorIndexing_ ), shaderInputAttachmentArrayDynamicIndexing( shaderInputAttachmentArrayDynamicIndexing_ ), shaderUniformTexelBufferArrayDynamicIndexing( shaderUniformTexelBufferArrayDynamicIndexing_ ), shaderStorageTexelBufferArrayDynamicIndexing( shaderStorageTexelBufferArrayDynamicIndexing_ ), shaderUniformBufferArrayNonUniformIndexing( shaderUniformBufferArrayNonUniformIndexing_ ), shaderSampledImageArrayNonUniformIndexing( shaderSampledImageArrayNonUniformIndexing_ ), shaderStorageBufferArrayNonUniformIndexing( shaderStorageBufferArrayNonUniformIndexing_ ), shaderStorageImageArrayNonUniformIndexing( shaderStorageImageArrayNonUniformIndexing_ ), shaderInputAttachmentArrayNonUniformIndexing( shaderInputAttachmentArrayNonUniformIndexing_ ), shaderUniformTexelBufferArrayNonUniformIndexing( shaderUniformTexelBufferArrayNonUniformIndexing_ ), shaderStorageTexelBufferArrayNonUniformIndexing( shaderStorageTexelBufferArrayNonUniformIndexing_ ), descriptorBindingUniformBufferUpdateAfterBind( descriptorBindingUniformBufferUpdateAfterBind_ ), descriptorBindingSampledImageUpdateAfterBind( descriptorBindingSampledImageUpdateAfterBind_ ), descriptorBindingStorageImageUpdateAfterBind( descriptorBindingStorageImageUpdateAfterBind_ ), descriptorBindingStorageBufferUpdateAfterBind( descriptorBindingStorageBufferUpdateAfterBind_ ), descriptorBindingUniformTexelBufferUpdateAfterBind( descriptorBindingUniformTexelBufferUpdateAfterBind_ ), descriptorBindingStorageTexelBufferUpdateAfterBind( descriptorBindingStorageTexelBufferUpdateAfterBind_ ), descriptorBindingUpdateUnusedWhilePending( descriptorBindingUpdateUnusedWhilePending_ ), descriptorBindingPartiallyBound( descriptorBindingPartiallyBound_ ), descriptorBindingVariableDescriptorCount( descriptorBindingVariableDescriptorCount_ ), runtimeDescriptorArray( runtimeDescriptorArray_ ), samplerFilterMinmax( samplerFilterMinmax_ ), scalarBlockLayout( scalarBlockLayout_ ), imagelessFramebuffer( imagelessFramebuffer_ ), uniformBufferStandardLayout( uniformBufferStandardLayout_ ), shaderSubgroupExtendedTypes( shaderSubgroupExtendedTypes_ ), separateDepthStencilLayouts( separateDepthStencilLayouts_ ), hostQueryReset( hostQueryReset_ ), timelineSemaphore( timelineSemaphore_ ), bufferDeviceAddress( bufferDeviceAddress_ ), bufferDeviceAddressCaptureReplay( bufferDeviceAddressCaptureReplay_ ), bufferDeviceAddressMultiDevice( bufferDeviceAddressMultiDevice_ ), vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ), shaderOutputViewportIndex( shaderOutputViewportIndex_ ), shaderOutputLayer( shaderOutputLayer_ ), subgroupBroadcastDynamicId( subgroupBroadcastDynamicId_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkan12Features( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan12Features( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVulkan12Features & operator=( VkPhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkan12Features & operator=( PhysicalDeviceVulkan12Features const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVulkan12Features ) ); - return *this; - } - - PhysicalDeviceVulkan12Features & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSamplerMirrorClampToEdge( VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge_ ) VULKAN_HPP_NOEXCEPT - { - samplerMirrorClampToEdge = samplerMirrorClampToEdge_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDrawIndirectCount( VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount_ ) VULKAN_HPP_NOEXCEPT - { - drawIndirectCount = drawIndirectCount_; - return *this; - } - - PhysicalDeviceVulkan12Features & setStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - storageBuffer8BitAccess = storageBuffer8BitAccess_; - return *this; - } - - PhysicalDeviceVulkan12Features & setUniformAndStorageBuffer8BitAccess( VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess_ ) VULKAN_HPP_NOEXCEPT - { - uniformAndStorageBuffer8BitAccess = uniformAndStorageBuffer8BitAccess_; - return *this; - } - - PhysicalDeviceVulkan12Features & setStoragePushConstant8( VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8_ ) VULKAN_HPP_NOEXCEPT - { - storagePushConstant8 = storagePushConstant8_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderBufferInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderBufferInt64Atomics = shaderBufferInt64Atomics_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderSharedInt64Atomics( VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics_ ) VULKAN_HPP_NOEXCEPT - { - shaderSharedInt64Atomics = shaderSharedInt64Atomics_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderFloat16( VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16_ ) VULKAN_HPP_NOEXCEPT - { - shaderFloat16 = shaderFloat16_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderInt8( VULKAN_HPP_NAMESPACE::Bool32 shaderInt8_ ) VULKAN_HPP_NOEXCEPT - { - shaderInt8 = shaderInt8_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorIndexing( VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing_ ) VULKAN_HPP_NOEXCEPT - { - descriptorIndexing = descriptorIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayDynamicIndexing = shaderInputAttachmentArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayDynamicIndexing = shaderUniformTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayDynamicIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayDynamicIndexing = shaderStorageTexelBufferArrayDynamicIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderUniformBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformBufferArrayNonUniformIndexing = shaderUniformBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderSampledImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderSampledImageArrayNonUniformIndexing = shaderSampledImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageBufferArrayNonUniformIndexing = shaderStorageBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageImageArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageImageArrayNonUniformIndexing = shaderStorageImageArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderInputAttachmentArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderInputAttachmentArrayNonUniformIndexing = shaderInputAttachmentArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderUniformTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderUniformTexelBufferArrayNonUniformIndexing = shaderUniformTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderStorageTexelBufferArrayNonUniformIndexing( VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing_ ) VULKAN_HPP_NOEXCEPT - { - shaderStorageTexelBufferArrayNonUniformIndexing = shaderStorageTexelBufferArrayNonUniformIndexing_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingUniformBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformBufferUpdateAfterBind = descriptorBindingUniformBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingSampledImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingSampledImageUpdateAfterBind = descriptorBindingSampledImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageImageUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageImageUpdateAfterBind = descriptorBindingStorageImageUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageBufferUpdateAfterBind = descriptorBindingStorageBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingUniformTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUniformTexelBufferUpdateAfterBind = descriptorBindingUniformTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingStorageTexelBufferUpdateAfterBind( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingStorageTexelBufferUpdateAfterBind = descriptorBindingStorageTexelBufferUpdateAfterBind_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingUpdateUnusedWhilePending( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingUpdateUnusedWhilePending = descriptorBindingUpdateUnusedWhilePending_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingPartiallyBound( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingPartiallyBound = descriptorBindingPartiallyBound_; - return *this; - } - - PhysicalDeviceVulkan12Features & setDescriptorBindingVariableDescriptorCount( VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount_ ) VULKAN_HPP_NOEXCEPT - { - descriptorBindingVariableDescriptorCount = descriptorBindingVariableDescriptorCount_; - return *this; - } - - PhysicalDeviceVulkan12Features & setRuntimeDescriptorArray( VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray_ ) VULKAN_HPP_NOEXCEPT - { - runtimeDescriptorArray = runtimeDescriptorArray_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSamplerFilterMinmax( VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax_ ) VULKAN_HPP_NOEXCEPT - { - samplerFilterMinmax = samplerFilterMinmax_; - return *this; - } - - PhysicalDeviceVulkan12Features & setScalarBlockLayout( VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout_ ) VULKAN_HPP_NOEXCEPT - { - scalarBlockLayout = scalarBlockLayout_; - return *this; - } - - PhysicalDeviceVulkan12Features & setImagelessFramebuffer( VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer_ ) VULKAN_HPP_NOEXCEPT - { - imagelessFramebuffer = imagelessFramebuffer_; - return *this; - } - - PhysicalDeviceVulkan12Features & setUniformBufferStandardLayout( VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout_ ) VULKAN_HPP_NOEXCEPT - { - uniformBufferStandardLayout = uniformBufferStandardLayout_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderSubgroupExtendedTypes( VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes_ ) VULKAN_HPP_NOEXCEPT - { - shaderSubgroupExtendedTypes = shaderSubgroupExtendedTypes_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSeparateDepthStencilLayouts( VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts_ ) VULKAN_HPP_NOEXCEPT - { - separateDepthStencilLayouts = separateDepthStencilLayouts_; - return *this; - } - - PhysicalDeviceVulkan12Features & setHostQueryReset( VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset_ ) VULKAN_HPP_NOEXCEPT - { - hostQueryReset = hostQueryReset_; - return *this; - } - - PhysicalDeviceVulkan12Features & setTimelineSemaphore( VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore_ ) VULKAN_HPP_NOEXCEPT - { - timelineSemaphore = timelineSemaphore_; - return *this; - } - - PhysicalDeviceVulkan12Features & setBufferDeviceAddress( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddress = bufferDeviceAddress_; - return *this; - } - - PhysicalDeviceVulkan12Features & setBufferDeviceAddressCaptureReplay( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressCaptureReplay = bufferDeviceAddressCaptureReplay_; - return *this; - } - - PhysicalDeviceVulkan12Features & setBufferDeviceAddressMultiDevice( VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice_ ) VULKAN_HPP_NOEXCEPT - { - bufferDeviceAddressMultiDevice = bufferDeviceAddressMultiDevice_; - return *this; - } - - PhysicalDeviceVulkan12Features & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModel = vulkanMemoryModel_; - return *this; - } - - PhysicalDeviceVulkan12Features & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; - return *this; - } - - PhysicalDeviceVulkan12Features & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderOutputViewportIndex( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex_ ) VULKAN_HPP_NOEXCEPT - { - shaderOutputViewportIndex = shaderOutputViewportIndex_; - return *this; - } - - PhysicalDeviceVulkan12Features & setShaderOutputLayer( VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer_ ) VULKAN_HPP_NOEXCEPT - { - shaderOutputLayer = shaderOutputLayer_; - return *this; - } - - PhysicalDeviceVulkan12Features & setSubgroupBroadcastDynamicId( VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId_ ) VULKAN_HPP_NOEXCEPT - { - subgroupBroadcastDynamicId = subgroupBroadcastDynamicId_; - return *this; - } - - - operator VkPhysicalDeviceVulkan12Features const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan12Features &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan12Features const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( samplerMirrorClampToEdge == rhs.samplerMirrorClampToEdge ) - && ( drawIndirectCount == rhs.drawIndirectCount ) - && ( storageBuffer8BitAccess == rhs.storageBuffer8BitAccess ) - && ( uniformAndStorageBuffer8BitAccess == rhs.uniformAndStorageBuffer8BitAccess ) - && ( storagePushConstant8 == rhs.storagePushConstant8 ) - && ( shaderBufferInt64Atomics == rhs.shaderBufferInt64Atomics ) - && ( shaderSharedInt64Atomics == rhs.shaderSharedInt64Atomics ) - && ( shaderFloat16 == rhs.shaderFloat16 ) - && ( shaderInt8 == rhs.shaderInt8 ) - && ( descriptorIndexing == rhs.descriptorIndexing ) - && ( shaderInputAttachmentArrayDynamicIndexing == rhs.shaderInputAttachmentArrayDynamicIndexing ) - && ( shaderUniformTexelBufferArrayDynamicIndexing == rhs.shaderUniformTexelBufferArrayDynamicIndexing ) - && ( shaderStorageTexelBufferArrayDynamicIndexing == rhs.shaderStorageTexelBufferArrayDynamicIndexing ) - && ( shaderUniformBufferArrayNonUniformIndexing == rhs.shaderUniformBufferArrayNonUniformIndexing ) - && ( shaderSampledImageArrayNonUniformIndexing == rhs.shaderSampledImageArrayNonUniformIndexing ) - && ( shaderStorageBufferArrayNonUniformIndexing == rhs.shaderStorageBufferArrayNonUniformIndexing ) - && ( shaderStorageImageArrayNonUniformIndexing == rhs.shaderStorageImageArrayNonUniformIndexing ) - && ( shaderInputAttachmentArrayNonUniformIndexing == rhs.shaderInputAttachmentArrayNonUniformIndexing ) - && ( shaderUniformTexelBufferArrayNonUniformIndexing == rhs.shaderUniformTexelBufferArrayNonUniformIndexing ) - && ( shaderStorageTexelBufferArrayNonUniformIndexing == rhs.shaderStorageTexelBufferArrayNonUniformIndexing ) - && ( descriptorBindingUniformBufferUpdateAfterBind == rhs.descriptorBindingUniformBufferUpdateAfterBind ) - && ( descriptorBindingSampledImageUpdateAfterBind == rhs.descriptorBindingSampledImageUpdateAfterBind ) - && ( descriptorBindingStorageImageUpdateAfterBind == rhs.descriptorBindingStorageImageUpdateAfterBind ) - && ( descriptorBindingStorageBufferUpdateAfterBind == rhs.descriptorBindingStorageBufferUpdateAfterBind ) - && ( descriptorBindingUniformTexelBufferUpdateAfterBind == rhs.descriptorBindingUniformTexelBufferUpdateAfterBind ) - && ( descriptorBindingStorageTexelBufferUpdateAfterBind == rhs.descriptorBindingStorageTexelBufferUpdateAfterBind ) - && ( descriptorBindingUpdateUnusedWhilePending == rhs.descriptorBindingUpdateUnusedWhilePending ) - && ( descriptorBindingPartiallyBound == rhs.descriptorBindingPartiallyBound ) - && ( descriptorBindingVariableDescriptorCount == rhs.descriptorBindingVariableDescriptorCount ) - && ( runtimeDescriptorArray == rhs.runtimeDescriptorArray ) - && ( samplerFilterMinmax == rhs.samplerFilterMinmax ) - && ( scalarBlockLayout == rhs.scalarBlockLayout ) - && ( imagelessFramebuffer == rhs.imagelessFramebuffer ) - && ( uniformBufferStandardLayout == rhs.uniformBufferStandardLayout ) - && ( shaderSubgroupExtendedTypes == rhs.shaderSubgroupExtendedTypes ) - && ( separateDepthStencilLayouts == rhs.separateDepthStencilLayouts ) - && ( hostQueryReset == rhs.hostQueryReset ) - && ( timelineSemaphore == rhs.timelineSemaphore ) - && ( bufferDeviceAddress == rhs.bufferDeviceAddress ) - && ( bufferDeviceAddressCaptureReplay == rhs.bufferDeviceAddressCaptureReplay ) - && ( bufferDeviceAddressMultiDevice == rhs.bufferDeviceAddressMultiDevice ) - && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) - && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) - && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ) - && ( shaderOutputViewportIndex == rhs.shaderOutputViewportIndex ) - && ( shaderOutputLayer == rhs.shaderOutputLayer ) - && ( subgroupBroadcastDynamicId == rhs.subgroupBroadcastDynamicId ); - } - - bool operator!=( PhysicalDeviceVulkan12Features const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Features; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerMirrorClampToEdge = {}; - VULKAN_HPP_NAMESPACE::Bool32 drawIndirectCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 storageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformAndStorageBuffer8BitAccess = {}; - VULKAN_HPP_NAMESPACE::Bool32 storagePushConstant8 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderBufferInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSharedInt64Atomics = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInt8 = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayDynamicIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageTexelBufferArrayNonUniformIndexing = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingSampledImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageImageUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUniformTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingStorageTexelBufferUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingUpdateUnusedWhilePending = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingPartiallyBound = {}; - VULKAN_HPP_NAMESPACE::Bool32 descriptorBindingVariableDescriptorCount = {}; - VULKAN_HPP_NAMESPACE::Bool32 runtimeDescriptorArray = {}; - VULKAN_HPP_NAMESPACE::Bool32 samplerFilterMinmax = {}; - VULKAN_HPP_NAMESPACE::Bool32 scalarBlockLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 imagelessFramebuffer = {}; - VULKAN_HPP_NAMESPACE::Bool32 uniformBufferStandardLayout = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSubgroupExtendedTypes = {}; - VULKAN_HPP_NAMESPACE::Bool32 separateDepthStencilLayouts = {}; - VULKAN_HPP_NAMESPACE::Bool32 hostQueryReset = {}; - VULKAN_HPP_NAMESPACE::Bool32 timelineSemaphore = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddress = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressCaptureReplay = {}; - VULKAN_HPP_NAMESPACE::Bool32 bufferDeviceAddressMultiDevice = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputViewportIndex = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderOutputLayer = {}; - VULKAN_HPP_NAMESPACE::Bool32 subgroupBroadcastDynamicId = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan12Features ) == sizeof( VkPhysicalDeviceVulkan12Features ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan12Features; - }; - - struct PhysicalDeviceVulkan12Properties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkan12Properties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties(VULKAN_HPP_NAMESPACE::DriverId driverID_ = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary, std::array const& driverName_ = {}, std::array const& driverInfo_ = {}, VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion_ = {}, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence_ = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64_ = {}, uint32_t maxUpdateAfterBindDescriptorsInAllPools_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative_ = {}, VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind_ = {}, VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSamplers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages_ = {}, uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments_ = {}, uint32_t maxPerStageUpdateAfterBindResources_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSamplers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ = {}, uint32_t maxDescriptorSetUpdateAfterBindSampledImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindStorageImages_ = {}, uint32_t maxDescriptorSetUpdateAfterBindInputAttachments_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes_ = {}, VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone_ = {}, VULKAN_HPP_NAMESPACE::Bool32 independentResolve_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats_ = {}, VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping_ = {}, uint64_t maxTimelineSemaphoreValueDifference_ = {}, VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts_ = {}) VULKAN_HPP_NOEXCEPT - : driverID( driverID_ ), driverName( driverName_ ), driverInfo( driverInfo_ ), conformanceVersion( conformanceVersion_ ), denormBehaviorIndependence( denormBehaviorIndependence_ ), roundingModeIndependence( roundingModeIndependence_ ), shaderSignedZeroInfNanPreserveFloat16( shaderSignedZeroInfNanPreserveFloat16_ ), shaderSignedZeroInfNanPreserveFloat32( shaderSignedZeroInfNanPreserveFloat32_ ), shaderSignedZeroInfNanPreserveFloat64( shaderSignedZeroInfNanPreserveFloat64_ ), shaderDenormPreserveFloat16( shaderDenormPreserveFloat16_ ), shaderDenormPreserveFloat32( shaderDenormPreserveFloat32_ ), shaderDenormPreserveFloat64( shaderDenormPreserveFloat64_ ), shaderDenormFlushToZeroFloat16( shaderDenormFlushToZeroFloat16_ ), shaderDenormFlushToZeroFloat32( shaderDenormFlushToZeroFloat32_ ), shaderDenormFlushToZeroFloat64( shaderDenormFlushToZeroFloat64_ ), shaderRoundingModeRTEFloat16( shaderRoundingModeRTEFloat16_ ), shaderRoundingModeRTEFloat32( shaderRoundingModeRTEFloat32_ ), shaderRoundingModeRTEFloat64( shaderRoundingModeRTEFloat64_ ), shaderRoundingModeRTZFloat16( shaderRoundingModeRTZFloat16_ ), shaderRoundingModeRTZFloat32( shaderRoundingModeRTZFloat32_ ), shaderRoundingModeRTZFloat64( shaderRoundingModeRTZFloat64_ ), maxUpdateAfterBindDescriptorsInAllPools( maxUpdateAfterBindDescriptorsInAllPools_ ), shaderUniformBufferArrayNonUniformIndexingNative( shaderUniformBufferArrayNonUniformIndexingNative_ ), shaderSampledImageArrayNonUniformIndexingNative( shaderSampledImageArrayNonUniformIndexingNative_ ), shaderStorageBufferArrayNonUniformIndexingNative( shaderStorageBufferArrayNonUniformIndexingNative_ ), shaderStorageImageArrayNonUniformIndexingNative( shaderStorageImageArrayNonUniformIndexingNative_ ), shaderInputAttachmentArrayNonUniformIndexingNative( shaderInputAttachmentArrayNonUniformIndexingNative_ ), robustBufferAccessUpdateAfterBind( robustBufferAccessUpdateAfterBind_ ), quadDivergentImplicitLod( quadDivergentImplicitLod_ ), maxPerStageDescriptorUpdateAfterBindSamplers( maxPerStageDescriptorUpdateAfterBindSamplers_ ), maxPerStageDescriptorUpdateAfterBindUniformBuffers( maxPerStageDescriptorUpdateAfterBindUniformBuffers_ ), maxPerStageDescriptorUpdateAfterBindStorageBuffers( maxPerStageDescriptorUpdateAfterBindStorageBuffers_ ), maxPerStageDescriptorUpdateAfterBindSampledImages( maxPerStageDescriptorUpdateAfterBindSampledImages_ ), maxPerStageDescriptorUpdateAfterBindStorageImages( maxPerStageDescriptorUpdateAfterBindStorageImages_ ), maxPerStageDescriptorUpdateAfterBindInputAttachments( maxPerStageDescriptorUpdateAfterBindInputAttachments_ ), maxPerStageUpdateAfterBindResources( maxPerStageUpdateAfterBindResources_ ), maxDescriptorSetUpdateAfterBindSamplers( maxDescriptorSetUpdateAfterBindSamplers_ ), maxDescriptorSetUpdateAfterBindUniformBuffers( maxDescriptorSetUpdateAfterBindUniformBuffers_ ), maxDescriptorSetUpdateAfterBindUniformBuffersDynamic( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindStorageBuffers( maxDescriptorSetUpdateAfterBindStorageBuffers_ ), maxDescriptorSetUpdateAfterBindStorageBuffersDynamic( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic_ ), maxDescriptorSetUpdateAfterBindSampledImages( maxDescriptorSetUpdateAfterBindSampledImages_ ), maxDescriptorSetUpdateAfterBindStorageImages( maxDescriptorSetUpdateAfterBindStorageImages_ ), maxDescriptorSetUpdateAfterBindInputAttachments( maxDescriptorSetUpdateAfterBindInputAttachments_ ), supportedDepthResolveModes( supportedDepthResolveModes_ ), supportedStencilResolveModes( supportedStencilResolveModes_ ), independentResolveNone( independentResolveNone_ ), independentResolve( independentResolve_ ), filterMinmaxSingleComponentFormats( filterMinmaxSingleComponentFormats_ ), filterMinmaxImageComponentMapping( filterMinmaxImageComponentMapping_ ), maxTimelineSemaphoreValueDifference( maxTimelineSemaphoreValueDifference_ ), framebufferIntegerColorSampleCounts( framebufferIntegerColorSampleCounts_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PhysicalDeviceVulkan12Properties( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkan12Properties( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVulkan12Properties & operator=( VkPhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkan12Properties & operator=( PhysicalDeviceVulkan12Properties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVulkan12Properties ) ); - return *this; - } - - - operator VkPhysicalDeviceVulkan12Properties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkan12Properties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkan12Properties const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( driverID == rhs.driverID ) - && ( driverName == rhs.driverName ) - && ( driverInfo == rhs.driverInfo ) - && ( conformanceVersion == rhs.conformanceVersion ) - && ( denormBehaviorIndependence == rhs.denormBehaviorIndependence ) - && ( roundingModeIndependence == rhs.roundingModeIndependence ) - && ( shaderSignedZeroInfNanPreserveFloat16 == rhs.shaderSignedZeroInfNanPreserveFloat16 ) - && ( shaderSignedZeroInfNanPreserveFloat32 == rhs.shaderSignedZeroInfNanPreserveFloat32 ) - && ( shaderSignedZeroInfNanPreserveFloat64 == rhs.shaderSignedZeroInfNanPreserveFloat64 ) - && ( shaderDenormPreserveFloat16 == rhs.shaderDenormPreserveFloat16 ) - && ( shaderDenormPreserveFloat32 == rhs.shaderDenormPreserveFloat32 ) - && ( shaderDenormPreserveFloat64 == rhs.shaderDenormPreserveFloat64 ) - && ( shaderDenormFlushToZeroFloat16 == rhs.shaderDenormFlushToZeroFloat16 ) - && ( shaderDenormFlushToZeroFloat32 == rhs.shaderDenormFlushToZeroFloat32 ) - && ( shaderDenormFlushToZeroFloat64 == rhs.shaderDenormFlushToZeroFloat64 ) - && ( shaderRoundingModeRTEFloat16 == rhs.shaderRoundingModeRTEFloat16 ) - && ( shaderRoundingModeRTEFloat32 == rhs.shaderRoundingModeRTEFloat32 ) - && ( shaderRoundingModeRTEFloat64 == rhs.shaderRoundingModeRTEFloat64 ) - && ( shaderRoundingModeRTZFloat16 == rhs.shaderRoundingModeRTZFloat16 ) - && ( shaderRoundingModeRTZFloat32 == rhs.shaderRoundingModeRTZFloat32 ) - && ( shaderRoundingModeRTZFloat64 == rhs.shaderRoundingModeRTZFloat64 ) - && ( maxUpdateAfterBindDescriptorsInAllPools == rhs.maxUpdateAfterBindDescriptorsInAllPools ) - && ( shaderUniformBufferArrayNonUniformIndexingNative == rhs.shaderUniformBufferArrayNonUniformIndexingNative ) - && ( shaderSampledImageArrayNonUniformIndexingNative == rhs.shaderSampledImageArrayNonUniformIndexingNative ) - && ( shaderStorageBufferArrayNonUniformIndexingNative == rhs.shaderStorageBufferArrayNonUniformIndexingNative ) - && ( shaderStorageImageArrayNonUniformIndexingNative == rhs.shaderStorageImageArrayNonUniformIndexingNative ) - && ( shaderInputAttachmentArrayNonUniformIndexingNative == rhs.shaderInputAttachmentArrayNonUniformIndexingNative ) - && ( robustBufferAccessUpdateAfterBind == rhs.robustBufferAccessUpdateAfterBind ) - && ( quadDivergentImplicitLod == rhs.quadDivergentImplicitLod ) - && ( maxPerStageDescriptorUpdateAfterBindSamplers == rhs.maxPerStageDescriptorUpdateAfterBindSamplers ) - && ( maxPerStageDescriptorUpdateAfterBindUniformBuffers == rhs.maxPerStageDescriptorUpdateAfterBindUniformBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindStorageBuffers == rhs.maxPerStageDescriptorUpdateAfterBindStorageBuffers ) - && ( maxPerStageDescriptorUpdateAfterBindSampledImages == rhs.maxPerStageDescriptorUpdateAfterBindSampledImages ) - && ( maxPerStageDescriptorUpdateAfterBindStorageImages == rhs.maxPerStageDescriptorUpdateAfterBindStorageImages ) - && ( maxPerStageDescriptorUpdateAfterBindInputAttachments == rhs.maxPerStageDescriptorUpdateAfterBindInputAttachments ) - && ( maxPerStageUpdateAfterBindResources == rhs.maxPerStageUpdateAfterBindResources ) - && ( maxDescriptorSetUpdateAfterBindSamplers == rhs.maxDescriptorSetUpdateAfterBindSamplers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffers == rhs.maxDescriptorSetUpdateAfterBindUniformBuffers ) - && ( maxDescriptorSetUpdateAfterBindUniformBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffers == rhs.maxDescriptorSetUpdateAfterBindStorageBuffers ) - && ( maxDescriptorSetUpdateAfterBindStorageBuffersDynamic == rhs.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic ) - && ( maxDescriptorSetUpdateAfterBindSampledImages == rhs.maxDescriptorSetUpdateAfterBindSampledImages ) - && ( maxDescriptorSetUpdateAfterBindStorageImages == rhs.maxDescriptorSetUpdateAfterBindStorageImages ) - && ( maxDescriptorSetUpdateAfterBindInputAttachments == rhs.maxDescriptorSetUpdateAfterBindInputAttachments ) - && ( supportedDepthResolveModes == rhs.supportedDepthResolveModes ) - && ( supportedStencilResolveModes == rhs.supportedStencilResolveModes ) - && ( independentResolveNone == rhs.independentResolveNone ) - && ( independentResolve == rhs.independentResolve ) - && ( filterMinmaxSingleComponentFormats == rhs.filterMinmaxSingleComponentFormats ) - && ( filterMinmaxImageComponentMapping == rhs.filterMinmaxImageComponentMapping ) - && ( maxTimelineSemaphoreValueDifference == rhs.maxTimelineSemaphoreValueDifference ) - && ( framebufferIntegerColorSampleCounts == rhs.framebufferIntegerColorSampleCounts ); - } - - bool operator!=( PhysicalDeviceVulkan12Properties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkan12Properties; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::DriverId driverID = VULKAN_HPP_NAMESPACE::DriverId::eAmdProprietary; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverName = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D driverInfo = {}; - VULKAN_HPP_NAMESPACE::ConformanceVersion conformanceVersion = {}; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence denormBehaviorIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence roundingModeIndependence = VULKAN_HPP_NAMESPACE::ShaderFloatControlsIndependence::e32BitOnly; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSignedZeroInfNanPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormPreserveFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderDenormFlushToZeroFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTEFloat64 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat16 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat32 = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderRoundingModeRTZFloat64 = {}; - uint32_t maxUpdateAfterBindDescriptorsInAllPools = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderUniformBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderSampledImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageBufferArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderStorageImageArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 shaderInputAttachmentArrayNonUniformIndexingNative = {}; - VULKAN_HPP_NAMESPACE::Bool32 robustBufferAccessUpdateAfterBind = {}; - VULKAN_HPP_NAMESPACE::Bool32 quadDivergentImplicitLod = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages = {}; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments = {}; - uint32_t maxPerStageUpdateAfterBindResources = {}; - uint32_t maxDescriptorSetUpdateAfterBindSamplers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic = {}; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages = {}; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedDepthResolveModes = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlags supportedStencilResolveModes = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolveNone = {}; - VULKAN_HPP_NAMESPACE::Bool32 independentResolve = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxSingleComponentFormats = {}; - VULKAN_HPP_NAMESPACE::Bool32 filterMinmaxImageComponentMapping = {}; - uint64_t maxTimelineSemaphoreValueDifference = {}; - VULKAN_HPP_NAMESPACE::SampleCountFlags framebufferIntegerColorSampleCounts = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkan12Properties ) == sizeof( VkPhysicalDeviceVulkan12Properties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkan12Properties; - }; - - struct PhysicalDeviceVulkanMemoryModelFeatures - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures(VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ = {}, VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ = {}) VULKAN_HPP_NOEXCEPT - : vulkanMemoryModel( vulkanMemoryModel_ ), vulkanMemoryModelDeviceScope( vulkanMemoryModelDeviceScope_ ), vulkanMemoryModelAvailabilityVisibilityChains( vulkanMemoryModelAvailabilityVisibilityChains_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceVulkanMemoryModelFeatures( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceVulkanMemoryModelFeatures( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceVulkanMemoryModelFeatures & operator=( VkPhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & operator=( PhysicalDeviceVulkanMemoryModelFeatures const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) ); - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModel( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModel = vulkanMemoryModel_; - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelDeviceScope( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelDeviceScope = vulkanMemoryModelDeviceScope_; - return *this; - } - - PhysicalDeviceVulkanMemoryModelFeatures & setVulkanMemoryModelAvailabilityVisibilityChains( VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains_ ) VULKAN_HPP_NOEXCEPT - { - vulkanMemoryModelAvailabilityVisibilityChains = vulkanMemoryModelAvailabilityVisibilityChains_; - return *this; - } - - - operator VkPhysicalDeviceVulkanMemoryModelFeatures const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceVulkanMemoryModelFeatures &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceVulkanMemoryModelFeatures const& ) const = default; -#else - bool operator==( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vulkanMemoryModel == rhs.vulkanMemoryModel ) - && ( vulkanMemoryModelDeviceScope == rhs.vulkanMemoryModelDeviceScope ) - && ( vulkanMemoryModelAvailabilityVisibilityChains == rhs.vulkanMemoryModelAvailabilityVisibilityChains ); - } - - bool operator!=( PhysicalDeviceVulkanMemoryModelFeatures const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceVulkanMemoryModelFeatures; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModel = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelDeviceScope = {}; - VULKAN_HPP_NAMESPACE::Bool32 vulkanMemoryModelAvailabilityVisibilityChains = {}; - - }; - static_assert( sizeof( PhysicalDeviceVulkanMemoryModelFeatures ) == sizeof( VkPhysicalDeviceVulkanMemoryModelFeatures ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceVulkanMemoryModelFeatures; - }; - using PhysicalDeviceVulkanMemoryModelFeaturesKHR = PhysicalDeviceVulkanMemoryModelFeatures; - - struct PhysicalDeviceYcbcrImageArraysFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT(VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ = {}) VULKAN_HPP_NOEXCEPT - : ycbcrImageArrays( ycbcrImageArrays_ ) - {} - - VULKAN_HPP_CONSTEXPR PhysicalDeviceYcbcrImageArraysFeaturesEXT( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PhysicalDeviceYcbcrImageArraysFeaturesEXT( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PhysicalDeviceYcbcrImageArraysFeaturesEXT & operator=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) ); - return *this; - } - - PhysicalDeviceYcbcrImageArraysFeaturesEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PhysicalDeviceYcbcrImageArraysFeaturesEXT & setYcbcrImageArrays( VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays_ ) VULKAN_HPP_NOEXCEPT - { - ycbcrImageArrays = ycbcrImageArrays_; - return *this; - } - - - operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPhysicalDeviceYcbcrImageArraysFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& ) const = default; -#else - bool operator==( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( ycbcrImageArrays == rhs.ycbcrImageArrays ); - } - - bool operator!=( PhysicalDeviceYcbcrImageArraysFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePhysicalDeviceYcbcrImageArraysFeaturesEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 ycbcrImageArrays = {}; - - }; - static_assert( sizeof( PhysicalDeviceYcbcrImageArraysFeaturesEXT ) == sizeof( VkPhysicalDeviceYcbcrImageArraysFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PhysicalDeviceYcbcrImageArraysFeaturesEXT; - }; - - struct PipelineColorBlendAdvancedStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ = {}, VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated) VULKAN_HPP_NOEXCEPT - : srcPremultiplied( srcPremultiplied_ ), dstPremultiplied( dstPremultiplied_ ), blendOverlap( blendOverlap_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineColorBlendAdvancedStateCreateInfoEXT( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineColorBlendAdvancedStateCreateInfoEXT( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( VkPipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & operator=( PipelineColorBlendAdvancedStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) ); - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setSrcPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied_ ) VULKAN_HPP_NOEXCEPT - { - srcPremultiplied = srcPremultiplied_; - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setDstPremultiplied( VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied_ ) VULKAN_HPP_NOEXCEPT - { - dstPremultiplied = dstPremultiplied_; - return *this; - } - - PipelineColorBlendAdvancedStateCreateInfoEXT & setBlendOverlap( VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap_ ) VULKAN_HPP_NOEXCEPT - { - blendOverlap = blendOverlap_; - return *this; - } - - - operator VkPipelineColorBlendAdvancedStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineColorBlendAdvancedStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineColorBlendAdvancedStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( srcPremultiplied == rhs.srcPremultiplied ) - && ( dstPremultiplied == rhs.dstPremultiplied ) - && ( blendOverlap == rhs.blendOverlap ); - } - - bool operator!=( PipelineColorBlendAdvancedStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineColorBlendAdvancedStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 srcPremultiplied = {}; - VULKAN_HPP_NAMESPACE::Bool32 dstPremultiplied = {}; - VULKAN_HPP_NAMESPACE::BlendOverlapEXT blendOverlap = VULKAN_HPP_NAMESPACE::BlendOverlapEXT::eUncorrelated; - - }; - static_assert( sizeof( PipelineColorBlendAdvancedStateCreateInfoEXT ) == sizeof( VkPipelineColorBlendAdvancedStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineColorBlendAdvancedStateCreateInfoEXT; - }; - - struct PipelineCompilerControlCreateInfoAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCompilerControlCreateInfoAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD(VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ = {}) VULKAN_HPP_NOEXCEPT - : compilerControlFlags( compilerControlFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCompilerControlCreateInfoAMD( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCompilerControlCreateInfoAMD( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineCompilerControlCreateInfoAMD & operator=( VkPipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCompilerControlCreateInfoAMD & operator=( PipelineCompilerControlCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineCompilerControlCreateInfoAMD ) ); - return *this; - } - - PipelineCompilerControlCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCompilerControlCreateInfoAMD & setCompilerControlFlags( VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags_ ) VULKAN_HPP_NOEXCEPT - { - compilerControlFlags = compilerControlFlags_; - return *this; - } - - - operator VkPipelineCompilerControlCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCompilerControlCreateInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCompilerControlCreateInfoAMD const& ) const = default; -#else - bool operator==( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( compilerControlFlags == rhs.compilerControlFlags ); - } - - bool operator!=( PipelineCompilerControlCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCompilerControlCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCompilerControlFlagsAMD compilerControlFlags = {}; - - }; - static_assert( sizeof( PipelineCompilerControlCreateInfoAMD ) == sizeof( VkPipelineCompilerControlCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCompilerControlCreateInfoAMD; - }; - - struct PipelineCoverageModulationStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageModulationStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ = {}, uint32_t coverageModulationTableCount_ = {}, const float* pCoverageModulationTable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( coverageModulationTableCount_ ), pCoverageModulationTable( pCoverageModulationTable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCoverageModulationStateCreateInfoNV( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageModulationStateCreateInfoNV( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCoverageModulationStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_, VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & coverageModulationTable_ ) - : flags( flags_ ), coverageModulationMode( coverageModulationMode_ ), coverageModulationTableEnable( coverageModulationTableEnable_ ), coverageModulationTableCount( static_cast( coverageModulationTable_.size() ) ), pCoverageModulationTable( coverageModulationTable_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineCoverageModulationStateCreateInfoNV & operator=( VkPipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & operator=( PipelineCoverageModulationStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineCoverageModulationStateCreateInfoNV ) ); - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationMode( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationMode = coverageModulationMode_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationTableEnable = coverageModulationTableEnable_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTableCount( uint32_t coverageModulationTableCount_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationTableCount = coverageModulationTableCount_; - return *this; - } - - PipelineCoverageModulationStateCreateInfoNV & setPCoverageModulationTable( const float* pCoverageModulationTable_ ) VULKAN_HPP_NOEXCEPT - { - pCoverageModulationTable = pCoverageModulationTable_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCoverageModulationStateCreateInfoNV & setCoverageModulationTable( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & coverageModulationTable_ ) VULKAN_HPP_NOEXCEPT - { - coverageModulationTableCount = static_cast( coverageModulationTable_.size() ); - pCoverageModulationTable = coverageModulationTable_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineCoverageModulationStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCoverageModulationStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCoverageModulationStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageModulationMode == rhs.coverageModulationMode ) - && ( coverageModulationTableEnable == rhs.coverageModulationTableEnable ) - && ( coverageModulationTableCount == rhs.coverageModulationTableCount ) - && ( pCoverageModulationTable == rhs.pCoverageModulationTable ); - } - - bool operator!=( PipelineCoverageModulationStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageModulationStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode = VULKAN_HPP_NAMESPACE::CoverageModulationModeNV::eNone; - VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable = {}; - uint32_t coverageModulationTableCount = {}; - const float* pCoverageModulationTable = {}; - - }; - static_assert( sizeof( PipelineCoverageModulationStateCreateInfoNV ) == sizeof( VkPipelineCoverageModulationStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCoverageModulationStateCreateInfoNV; - }; - - struct PipelineCoverageReductionStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageReductionStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), coverageReductionMode( coverageReductionMode_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCoverageReductionStateCreateInfoNV( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageReductionStateCreateInfoNV( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineCoverageReductionStateCreateInfoNV & operator=( VkPipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCoverageReductionStateCreateInfoNV & operator=( PipelineCoverageReductionStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineCoverageReductionStateCreateInfoNV ) ); - return *this; - } - - PipelineCoverageReductionStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCoverageReductionStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCoverageReductionStateCreateInfoNV & setCoverageReductionMode( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode_ ) VULKAN_HPP_NOEXCEPT - { - coverageReductionMode = coverageReductionMode_; - return *this; - } - - - operator VkPipelineCoverageReductionStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCoverageReductionStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCoverageReductionStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageReductionMode == rhs.coverageReductionMode ); - } - - bool operator!=( PipelineCoverageReductionStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageReductionStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode = VULKAN_HPP_NAMESPACE::CoverageReductionModeNV::eMerge; - - }; - static_assert( sizeof( PipelineCoverageReductionStateCreateInfoNV ) == sizeof( VkPipelineCoverageReductionStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCoverageReductionStateCreateInfoNV; - }; - - struct PipelineCoverageToColorStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCoverageToColorStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ = {}, uint32_t coverageToColorLocation_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), coverageToColorEnable( coverageToColorEnable_ ), coverageToColorLocation( coverageToColorLocation_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCoverageToColorStateCreateInfoNV( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCoverageToColorStateCreateInfoNV( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineCoverageToColorStateCreateInfoNV & operator=( VkPipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & operator=( PipelineCoverageToColorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineCoverageToColorStateCreateInfoNV ) ); - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorEnable( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable_ ) VULKAN_HPP_NOEXCEPT - { - coverageToColorEnable = coverageToColorEnable_; - return *this; - } - - PipelineCoverageToColorStateCreateInfoNV & setCoverageToColorLocation( uint32_t coverageToColorLocation_ ) VULKAN_HPP_NOEXCEPT - { - coverageToColorLocation = coverageToColorLocation_; - return *this; - } - - - operator VkPipelineCoverageToColorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCoverageToColorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCoverageToColorStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( coverageToColorEnable == rhs.coverageToColorEnable ) - && ( coverageToColorLocation == rhs.coverageToColorLocation ); - } - - bool operator!=( PipelineCoverageToColorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCoverageToColorStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateFlagsNV flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable = {}; - uint32_t coverageToColorLocation = {}; - - }; - static_assert( sizeof( PipelineCoverageToColorStateCreateInfoNV ) == sizeof( VkPipelineCoverageToColorStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCoverageToColorStateCreateInfoNV; - }; - - struct PipelineCreationFeedbackEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags_ = {}, uint64_t duration_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), duration( duration_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackEXT( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCreationFeedbackEXT( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineCreationFeedbackEXT & operator=( VkPipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCreationFeedbackEXT & operator=( PipelineCreationFeedbackEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineCreationFeedbackEXT ) ); - return *this; - } - - - operator VkPipelineCreationFeedbackEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCreationFeedbackEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCreationFeedbackEXT const& ) const = default; -#else - bool operator==( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( flags == rhs.flags ) - && ( duration == rhs.duration ); - } - - bool operator!=( PipelineCreationFeedbackEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackFlagsEXT flags = {}; - uint64_t duration = {}; - - }; - static_assert( sizeof( PipelineCreationFeedbackEXT ) == sizeof( VkPipelineCreationFeedbackEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineCreationFeedbackCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineCreationFeedbackCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ = {}, uint32_t pipelineStageCreationFeedbackCount_ = {}, VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ = {}) VULKAN_HPP_NOEXCEPT - : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( pipelineStageCreationFeedbackCount_ ), pPipelineStageCreationFeedbacks( pPipelineStageCreationFeedbacks_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineCreationFeedbackCreateInfoEXT( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineCreationFeedbackCreateInfoEXT( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCreationFeedbackCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelineStageCreationFeedbacks_ ) - : pPipelineCreationFeedback( pPipelineCreationFeedback_ ), pipelineStageCreationFeedbackCount( static_cast( pipelineStageCreationFeedbacks_.size() ) ), pPipelineStageCreationFeedbacks( pipelineStageCreationFeedbacks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineCreationFeedbackCreateInfoEXT & operator=( VkPipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & operator=( PipelineCreationFeedbackCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineCreationFeedbackCreateInfoEXT ) ); - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPPipelineCreationFeedback( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback_ ) VULKAN_HPP_NOEXCEPT - { - pPipelineCreationFeedback = pPipelineCreationFeedback_; - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbackCount( uint32_t pipelineStageCreationFeedbackCount_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStageCreationFeedbackCount = pipelineStageCreationFeedbackCount_; - return *this; - } - - PipelineCreationFeedbackCreateInfoEXT & setPPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT - { - pPipelineStageCreationFeedbacks = pPipelineStageCreationFeedbacks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineCreationFeedbackCreateInfoEXT & setPipelineStageCreationFeedbacks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & pipelineStageCreationFeedbacks_ ) VULKAN_HPP_NOEXCEPT - { - pipelineStageCreationFeedbackCount = static_cast( pipelineStageCreationFeedbacks_.size() ); - pPipelineStageCreationFeedbacks = pipelineStageCreationFeedbacks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineCreationFeedbackCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineCreationFeedbackCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineCreationFeedbackCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( pPipelineCreationFeedback == rhs.pPipelineCreationFeedback ) - && ( pipelineStageCreationFeedbackCount == rhs.pipelineStageCreationFeedbackCount ) - && ( pPipelineStageCreationFeedbacks == rhs.pPipelineStageCreationFeedbacks ); - } - - bool operator!=( PipelineCreationFeedbackCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineCreationFeedbackCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineCreationFeedback = {}; - uint32_t pipelineStageCreationFeedbackCount = {}; - VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks = {}; - - }; - static_assert( sizeof( PipelineCreationFeedbackCreateInfoEXT ) == sizeof( VkPipelineCreationFeedbackCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineCreationFeedbackCreateInfoEXT; - }; - - struct PipelineDiscardRectangleStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive, uint32_t discardRectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( discardRectangleCount_ ), pDiscardRectangles( pDiscardRectangles_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineDiscardRectangleStateCreateInfoEXT( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineDiscardRectangleStateCreateInfoEXT( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDiscardRectangleStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_, VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & discardRectangles_ ) - : flags( flags_ ), discardRectangleMode( discardRectangleMode_ ), discardRectangleCount( static_cast( discardRectangles_.size() ) ), pDiscardRectangles( discardRectangles_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineDiscardRectangleStateCreateInfoEXT & operator=( VkPipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & operator=( PipelineDiscardRectangleStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) ); - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleMode( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode_ ) VULKAN_HPP_NOEXCEPT - { - discardRectangleMode = discardRectangleMode_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangleCount( uint32_t discardRectangleCount_ ) VULKAN_HPP_NOEXCEPT - { - discardRectangleCount = discardRectangleCount_; - return *this; - } - - PipelineDiscardRectangleStateCreateInfoEXT & setPDiscardRectangles( const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles_ ) VULKAN_HPP_NOEXCEPT - { - pDiscardRectangles = pDiscardRectangles_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineDiscardRectangleStateCreateInfoEXT & setDiscardRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & discardRectangles_ ) VULKAN_HPP_NOEXCEPT - { - discardRectangleCount = static_cast( discardRectangles_.size() ); - pDiscardRectangles = discardRectangles_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineDiscardRectangleStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineDiscardRectangleStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineDiscardRectangleStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( discardRectangleMode == rhs.discardRectangleMode ) - && ( discardRectangleCount == rhs.discardRectangleCount ) - && ( pDiscardRectangles == rhs.pDiscardRectangles ); - } - - bool operator!=( PipelineDiscardRectangleStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineDiscardRectangleStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode = VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT::eInclusive; - uint32_t discardRectangleCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles = {}; - - }; - static_assert( sizeof( PipelineDiscardRectangleStateCreateInfoEXT ) == sizeof( VkPipelineDiscardRectangleStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineDiscardRectangleStateCreateInfoEXT; - }; - - struct PipelineFragmentShadingRateEnumStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize, VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel, std::array const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT - : shadingRateType( shadingRateType_ ), shadingRate( shadingRate_ ), combinerOps( combinerOps_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateEnumStateCreateInfoNV( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineFragmentShadingRateEnumStateCreateInfoNV( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( VkPipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & operator=( PipelineFragmentShadingRateEnumStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineFragmentShadingRateEnumStateCreateInfoNV ) ); - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRateType( VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateType = shadingRateType_; - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setShadingRate( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate_ ) VULKAN_HPP_NOEXCEPT - { - shadingRate = shadingRate_; - return *this; - } - - PipelineFragmentShadingRateEnumStateCreateInfoNV & setCombinerOps( std::array combinerOps_ ) VULKAN_HPP_NOEXCEPT - { - combinerOps = combinerOps_; - return *this; - } - - - operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineFragmentShadingRateEnumStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineFragmentShadingRateEnumStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateType == rhs.shadingRateType ) - && ( shadingRate == rhs.shadingRate ) - && ( combinerOps == rhs.combinerOps ); - } - - bool operator!=( PipelineFragmentShadingRateEnumStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateEnumStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV shadingRateType = VULKAN_HPP_NAMESPACE::FragmentShadingRateTypeNV::eFragmentSize; - VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate = VULKAN_HPP_NAMESPACE::FragmentShadingRateNV::e1InvocationPerPixel; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D combinerOps = {}; - - }; - static_assert( sizeof( PipelineFragmentShadingRateEnumStateCreateInfoNV ) == sizeof( VkPipelineFragmentShadingRateEnumStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineFragmentShadingRateEnumStateCreateInfoNV; - }; - - struct PipelineFragmentShadingRateStateCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR(VULKAN_HPP_NAMESPACE::Extent2D fragmentSize_ = {}, std::array const& combinerOps_ = { { VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep, VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR::eKeep } }) VULKAN_HPP_NOEXCEPT - : fragmentSize( fragmentSize_ ), combinerOps( combinerOps_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 PipelineFragmentShadingRateStateCreateInfoKHR( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineFragmentShadingRateStateCreateInfoKHR( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineFragmentShadingRateStateCreateInfoKHR & operator=( VkPipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineFragmentShadingRateStateCreateInfoKHR & operator=( PipelineFragmentShadingRateStateCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) ); - return *this; - } - - PipelineFragmentShadingRateStateCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineFragmentShadingRateStateCreateInfoKHR & setFragmentSize( VULKAN_HPP_NAMESPACE::Extent2D const & fragmentSize_ ) VULKAN_HPP_NOEXCEPT - { - fragmentSize = fragmentSize_; - return *this; - } - - PipelineFragmentShadingRateStateCreateInfoKHR & setCombinerOps( std::array combinerOps_ ) VULKAN_HPP_NOEXCEPT - { - combinerOps = combinerOps_; - return *this; - } - - - operator VkPipelineFragmentShadingRateStateCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineFragmentShadingRateStateCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineFragmentShadingRateStateCreateInfoKHR const& ) const = default; -#else - bool operator==( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentSize == rhs.fragmentSize ) - && ( combinerOps == rhs.combinerOps ); - } - - bool operator!=( PipelineFragmentShadingRateStateCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineFragmentShadingRateStateCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Extent2D fragmentSize = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D combinerOps = {}; - - }; - static_assert( sizeof( PipelineFragmentShadingRateStateCreateInfoKHR ) == sizeof( VkPipelineFragmentShadingRateStateCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineFragmentShadingRateStateCreateInfoKHR; - }; - - struct PipelineRasterizationConservativeStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled, float extraPrimitiveOverestimationSize_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), conservativeRasterizationMode( conservativeRasterizationMode_ ), extraPrimitiveOverestimationSize( extraPrimitiveOverestimationSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationConservativeStateCreateInfoEXT( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationConservativeStateCreateInfoEXT( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineRasterizationConservativeStateCreateInfoEXT & operator=( VkPipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & operator=( PipelineRasterizationConservativeStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) ); - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setConservativeRasterizationMode( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode_ ) VULKAN_HPP_NOEXCEPT - { - conservativeRasterizationMode = conservativeRasterizationMode_; - return *this; - } - - PipelineRasterizationConservativeStateCreateInfoEXT & setExtraPrimitiveOverestimationSize( float extraPrimitiveOverestimationSize_ ) VULKAN_HPP_NOEXCEPT - { - extraPrimitiveOverestimationSize = extraPrimitiveOverestimationSize_; - return *this; - } - - - operator VkPipelineRasterizationConservativeStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationConservativeStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationConservativeStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( conservativeRasterizationMode == rhs.conservativeRasterizationMode ) - && ( extraPrimitiveOverestimationSize == rhs.extraPrimitiveOverestimationSize ); - } - - bool operator!=( PipelineRasterizationConservativeStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationConservativeStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode = VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT::eDisabled; - float extraPrimitiveOverestimationSize = {}; - - }; - static_assert( sizeof( PipelineRasterizationConservativeStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationConservativeStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationConservativeStateCreateInfoEXT; - }; - - struct PipelineRasterizationDepthClipStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ = {}, VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), depthClipEnable( depthClipEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationDepthClipStateCreateInfoEXT( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationDepthClipStateCreateInfoEXT( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( VkPipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationDepthClipStateCreateInfoEXT & operator=( PipelineRasterizationDepthClipStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) ); - return *this; - } - - PipelineRasterizationDepthClipStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationDepthClipStateCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationDepthClipStateCreateInfoEXT & setDepthClipEnable( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable_ ) VULKAN_HPP_NOEXCEPT - { - depthClipEnable = depthClipEnable_; - return *this; - } - - - operator VkPipelineRasterizationDepthClipStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationDepthClipStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationDepthClipStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( depthClipEnable == rhs.depthClipEnable ); - } - - bool operator!=( PipelineRasterizationDepthClipStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationDepthClipStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateFlagsEXT flags = {}; - VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable = {}; - - }; - static_assert( sizeof( PipelineRasterizationDepthClipStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationDepthClipStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationDepthClipStateCreateInfoEXT; - }; - - struct PipelineRasterizationLineStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault, VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ = {}, uint32_t lineStippleFactor_ = {}, uint16_t lineStipplePattern_ = {}) VULKAN_HPP_NOEXCEPT - : lineRasterizationMode( lineRasterizationMode_ ), stippledLineEnable( stippledLineEnable_ ), lineStippleFactor( lineStippleFactor_ ), lineStipplePattern( lineStipplePattern_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationLineStateCreateInfoEXT( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationLineStateCreateInfoEXT( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineRasterizationLineStateCreateInfoEXT & operator=( VkPipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & operator=( PipelineRasterizationLineStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineRasterizationLineStateCreateInfoEXT ) ); - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setLineRasterizationMode( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode_ ) VULKAN_HPP_NOEXCEPT - { - lineRasterizationMode = lineRasterizationMode_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setStippledLineEnable( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable_ ) VULKAN_HPP_NOEXCEPT - { - stippledLineEnable = stippledLineEnable_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setLineStippleFactor( uint32_t lineStippleFactor_ ) VULKAN_HPP_NOEXCEPT - { - lineStippleFactor = lineStippleFactor_; - return *this; - } - - PipelineRasterizationLineStateCreateInfoEXT & setLineStipplePattern( uint16_t lineStipplePattern_ ) VULKAN_HPP_NOEXCEPT - { - lineStipplePattern = lineStipplePattern_; - return *this; - } - - - operator VkPipelineRasterizationLineStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationLineStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationLineStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( lineRasterizationMode == rhs.lineRasterizationMode ) - && ( stippledLineEnable == rhs.stippledLineEnable ) - && ( lineStippleFactor == rhs.lineStippleFactor ) - && ( lineStipplePattern == rhs.lineStipplePattern ); - } - - bool operator!=( PipelineRasterizationLineStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationLineStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode = VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT::eDefault; - VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable = {}; - uint32_t lineStippleFactor = {}; - uint16_t lineStipplePattern = {}; - - }; - static_assert( sizeof( PipelineRasterizationLineStateCreateInfoEXT ) == sizeof( VkPipelineRasterizationLineStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationLineStateCreateInfoEXT; - }; - - struct PipelineRasterizationStateRasterizationOrderAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD(VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict) VULKAN_HPP_NOEXCEPT - : rasterizationOrder( rasterizationOrder_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateRasterizationOrderAMD( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateRasterizationOrderAMD( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineRasterizationStateRasterizationOrderAMD & operator=( VkPipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationStateRasterizationOrderAMD & operator=( PipelineRasterizationStateRasterizationOrderAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineRasterizationStateRasterizationOrderAMD ) ); - return *this; - } - - PipelineRasterizationStateRasterizationOrderAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationStateRasterizationOrderAMD & setRasterizationOrder( VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder_ ) VULKAN_HPP_NOEXCEPT - { - rasterizationOrder = rasterizationOrder_; - return *this; - } - - - operator VkPipelineRasterizationStateRasterizationOrderAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationStateRasterizationOrderAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationStateRasterizationOrderAMD const& ) const = default; -#else - bool operator==( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( rasterizationOrder == rhs.rasterizationOrder ); - } - - bool operator!=( PipelineRasterizationStateRasterizationOrderAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateRasterizationOrderAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::RasterizationOrderAMD rasterizationOrder = VULKAN_HPP_NAMESPACE::RasterizationOrderAMD::eStrict; - - }; - static_assert( sizeof( PipelineRasterizationStateRasterizationOrderAMD ) == sizeof( VkPipelineRasterizationStateRasterizationOrderAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationStateRasterizationOrderAMD; - }; - - struct PipelineRasterizationStateStreamCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT(VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ = {}, uint32_t rasterizationStream_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), rasterizationStream( rasterizationStream_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRasterizationStateStreamCreateInfoEXT( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRasterizationStateStreamCreateInfoEXT( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineRasterizationStateStreamCreateInfoEXT & operator=( VkPipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRasterizationStateStreamCreateInfoEXT & operator=( PipelineRasterizationStateStreamCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) ); - return *this; - } - - PipelineRasterizationStateStreamCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRasterizationStateStreamCreateInfoEXT & setFlags( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineRasterizationStateStreamCreateInfoEXT & setRasterizationStream( uint32_t rasterizationStream_ ) VULKAN_HPP_NOEXCEPT - { - rasterizationStream = rasterizationStream_; - return *this; - } - - - operator VkPipelineRasterizationStateStreamCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRasterizationStateStreamCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRasterizationStateStreamCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( rasterizationStream == rhs.rasterizationStream ); - } - - bool operator!=( PipelineRasterizationStateStreamCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRasterizationStateStreamCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateFlagsEXT flags = {}; - uint32_t rasterizationStream = {}; - - }; - static_assert( sizeof( PipelineRasterizationStateStreamCreateInfoEXT ) == sizeof( VkPipelineRasterizationStateStreamCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRasterizationStateStreamCreateInfoEXT; - }; - - struct PipelineRepresentativeFragmentTestStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ = {}) VULKAN_HPP_NOEXCEPT - : representativeFragmentTestEnable( representativeFragmentTestEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineRepresentativeFragmentTestStateCreateInfoNV( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineRepresentativeFragmentTestStateCreateInfoNV( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( VkPipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineRepresentativeFragmentTestStateCreateInfoNV & operator=( PipelineRepresentativeFragmentTestStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) ); - return *this; - } - - PipelineRepresentativeFragmentTestStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineRepresentativeFragmentTestStateCreateInfoNV & setRepresentativeFragmentTestEnable( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable_ ) VULKAN_HPP_NOEXCEPT - { - representativeFragmentTestEnable = representativeFragmentTestEnable_; - return *this; - } - - - operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineRepresentativeFragmentTestStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineRepresentativeFragmentTestStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( representativeFragmentTestEnable == rhs.representativeFragmentTestEnable ); - } - - bool operator!=( PipelineRepresentativeFragmentTestStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineRepresentativeFragmentTestStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable = {}; - - }; - static_assert( sizeof( PipelineRepresentativeFragmentTestStateCreateInfoNV ) == sizeof( VkPipelineRepresentativeFragmentTestStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineRepresentativeFragmentTestStateCreateInfoNV; - }; - - struct PipelineSampleLocationsStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT - : sampleLocationsEnable( sampleLocationsEnable_ ), sampleLocationsInfo( sampleLocationsInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineSampleLocationsStateCreateInfoEXT( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineSampleLocationsStateCreateInfoEXT( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineSampleLocationsStateCreateInfoEXT & operator=( VkPipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineSampleLocationsStateCreateInfoEXT & operator=( PipelineSampleLocationsStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineSampleLocationsStateCreateInfoEXT ) ); - return *this; - } - - PipelineSampleLocationsStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsEnable( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsEnable = sampleLocationsEnable_; - return *this; - } - - PipelineSampleLocationsStateCreateInfoEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsInfo = sampleLocationsInfo_; - return *this; - } - - - operator VkPipelineSampleLocationsStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineSampleLocationsStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineSampleLocationsStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleLocationsEnable == rhs.sampleLocationsEnable ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); - } - - bool operator!=( PipelineSampleLocationsStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineSampleLocationsStateCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; - - }; - static_assert( sizeof( PipelineSampleLocationsStateCreateInfoEXT ) == sizeof( VkPipelineSampleLocationsStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineSampleLocationsStateCreateInfoEXT; - }; - - struct PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT(uint32_t requiredSubgroupSize_ = {}) VULKAN_HPP_NOEXCEPT - : requiredSubgroupSize( requiredSubgroupSize_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT & operator=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) ); - return *this; - } - - - operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( requiredSubgroupSize == rhs.requiredSubgroupSize ); - } - - bool operator!=( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - void* pNext = {}; - uint32_t requiredSubgroupSize = {}; - - }; - static_assert( sizeof( PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ) == sizeof( VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - }; - - struct PipelineTessellationDomainOriginStateCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft) VULKAN_HPP_NOEXCEPT - : domainOrigin( domainOrigin_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineTessellationDomainOriginStateCreateInfo( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineTessellationDomainOriginStateCreateInfo( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineTessellationDomainOriginStateCreateInfo & operator=( VkPipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineTessellationDomainOriginStateCreateInfo & operator=( PipelineTessellationDomainOriginStateCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineTessellationDomainOriginStateCreateInfo ) ); - return *this; - } - - PipelineTessellationDomainOriginStateCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineTessellationDomainOriginStateCreateInfo & setDomainOrigin( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin_ ) VULKAN_HPP_NOEXCEPT - { - domainOrigin = domainOrigin_; - return *this; - } - - - operator VkPipelineTessellationDomainOriginStateCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineTessellationDomainOriginStateCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineTessellationDomainOriginStateCreateInfo const& ) const = default; -#else - bool operator==( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( domainOrigin == rhs.domainOrigin ); - } - - bool operator!=( PipelineTessellationDomainOriginStateCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineTessellationDomainOriginStateCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin = VULKAN_HPP_NAMESPACE::TessellationDomainOrigin::eUpperLeft; - - }; - static_assert( sizeof( PipelineTessellationDomainOriginStateCreateInfo ) == sizeof( VkPipelineTessellationDomainOriginStateCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineTessellationDomainOriginStateCreateInfo; - }; - using PipelineTessellationDomainOriginStateCreateInfoKHR = PipelineTessellationDomainOriginStateCreateInfo; - - struct VertexInputBindingDivisorDescriptionEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT(uint32_t binding_ = {}, uint32_t divisor_ = {}) VULKAN_HPP_NOEXCEPT - : binding( binding_ ), divisor( divisor_ ) - {} - - VULKAN_HPP_CONSTEXPR VertexInputBindingDivisorDescriptionEXT( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - VertexInputBindingDivisorDescriptionEXT( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - VertexInputBindingDivisorDescriptionEXT & operator=( VkVertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - VertexInputBindingDivisorDescriptionEXT & operator=( VertexInputBindingDivisorDescriptionEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( VertexInputBindingDivisorDescriptionEXT ) ); - return *this; - } - - VertexInputBindingDivisorDescriptionEXT & setBinding( uint32_t binding_ ) VULKAN_HPP_NOEXCEPT - { - binding = binding_; - return *this; - } - - VertexInputBindingDivisorDescriptionEXT & setDivisor( uint32_t divisor_ ) VULKAN_HPP_NOEXCEPT - { - divisor = divisor_; - return *this; - } - - - operator VkVertexInputBindingDivisorDescriptionEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkVertexInputBindingDivisorDescriptionEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( VertexInputBindingDivisorDescriptionEXT const& ) const = default; -#else - bool operator==( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( binding == rhs.binding ) - && ( divisor == rhs.divisor ); - } - - bool operator!=( VertexInputBindingDivisorDescriptionEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t binding = {}; - uint32_t divisor = {}; - - }; - static_assert( sizeof( VertexInputBindingDivisorDescriptionEXT ) == sizeof( VkVertexInputBindingDivisorDescriptionEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineVertexInputDivisorStateCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT(uint32_t vertexBindingDivisorCount_ = {}, const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ = {}) VULKAN_HPP_NOEXCEPT - : vertexBindingDivisorCount( vertexBindingDivisorCount_ ), pVertexBindingDivisors( pVertexBindingDivisors_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineVertexInputDivisorStateCreateInfoEXT( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineVertexInputDivisorStateCreateInfoEXT( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputDivisorStateCreateInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDivisors_ ) - : vertexBindingDivisorCount( static_cast( vertexBindingDivisors_.size() ) ), pVertexBindingDivisors( vertexBindingDivisors_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineVertexInputDivisorStateCreateInfoEXT & operator=( VkPipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineVertexInputDivisorStateCreateInfoEXT & operator=( PipelineVertexInputDivisorStateCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) ); - return *this; - } - - PipelineVertexInputDivisorStateCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisorCount( uint32_t vertexBindingDivisorCount_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDivisorCount = vertexBindingDivisorCount_; - return *this; - } - - PipelineVertexInputDivisorStateCreateInfoEXT & setPVertexBindingDivisors( const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT - { - pVertexBindingDivisors = pVertexBindingDivisors_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineVertexInputDivisorStateCreateInfoEXT & setVertexBindingDivisors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & vertexBindingDivisors_ ) VULKAN_HPP_NOEXCEPT - { - vertexBindingDivisorCount = static_cast( vertexBindingDivisors_.size() ); - pVertexBindingDivisors = vertexBindingDivisors_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineVertexInputDivisorStateCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineVertexInputDivisorStateCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineVertexInputDivisorStateCreateInfoEXT const& ) const = default; -#else - bool operator==( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( vertexBindingDivisorCount == rhs.vertexBindingDivisorCount ) - && ( pVertexBindingDivisors == rhs.pVertexBindingDivisors ); - } - - bool operator!=( PipelineVertexInputDivisorStateCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineVertexInputDivisorStateCreateInfoEXT; - const void* pNext = {}; - uint32_t vertexBindingDivisorCount = {}; - const VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors = {}; - - }; - static_assert( sizeof( PipelineVertexInputDivisorStateCreateInfoEXT ) == sizeof( VkPipelineVertexInputDivisorStateCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineVertexInputDivisorStateCreateInfoEXT; - }; - - struct PipelineViewportCoarseSampleOrderStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault, uint32_t customSampleOrderCount_ = {}, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ = {}) VULKAN_HPP_NOEXCEPT - : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( customSampleOrderCount_ ), pCustomSampleOrders( pCustomSampleOrders_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportCoarseSampleOrderStateCreateInfoNV( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportCoarseSampleOrderStateCreateInfoNV( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportCoarseSampleOrderStateCreateInfoNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & customSampleOrders_ ) - : sampleOrderType( sampleOrderType_ ), customSampleOrderCount( static_cast( customSampleOrders_.size() ) ), pCustomSampleOrders( customSampleOrders_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & operator=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) ); - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setSampleOrderType( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType_ ) VULKAN_HPP_NOEXCEPT - { - sampleOrderType = sampleOrderType_; - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrderCount( uint32_t customSampleOrderCount_ ) VULKAN_HPP_NOEXCEPT - { - customSampleOrderCount = customSampleOrderCount_; - return *this; - } - - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setPCustomSampleOrders( const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders_ ) VULKAN_HPP_NOEXCEPT - { - pCustomSampleOrders = pCustomSampleOrders_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportCoarseSampleOrderStateCreateInfoNV & setCustomSampleOrders( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & customSampleOrders_ ) VULKAN_HPP_NOEXCEPT - { - customSampleOrderCount = static_cast( customSampleOrders_.size() ); - pCustomSampleOrders = customSampleOrders_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportCoarseSampleOrderStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sampleOrderType == rhs.sampleOrderType ) - && ( customSampleOrderCount == rhs.customSampleOrderCount ) - && ( pCustomSampleOrders == rhs.pCustomSampleOrders ); - } - - bool operator!=( PipelineViewportCoarseSampleOrderStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportCoarseSampleOrderStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType = VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV::eDefault; - uint32_t customSampleOrderCount = {}; - const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders = {}; - - }; - static_assert( sizeof( PipelineViewportCoarseSampleOrderStateCreateInfoNV ) == sizeof( VkPipelineViewportCoarseSampleOrderStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportCoarseSampleOrderStateCreateInfoNV; - }; - - struct PipelineViewportExclusiveScissorStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV(uint32_t exclusiveScissorCount_ = {}, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ = {}) VULKAN_HPP_NOEXCEPT - : exclusiveScissorCount( exclusiveScissorCount_ ), pExclusiveScissors( pExclusiveScissors_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportExclusiveScissorStateCreateInfoNV( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportExclusiveScissorStateCreateInfoNV( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportExclusiveScissorStateCreateInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & exclusiveScissors_ ) - : exclusiveScissorCount( static_cast( exclusiveScissors_.size() ) ), pExclusiveScissors( exclusiveScissors_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( VkPipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportExclusiveScissorStateCreateInfoNV & operator=( PipelineViewportExclusiveScissorStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) ); - return *this; - } - - PipelineViewportExclusiveScissorStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissorCount( uint32_t exclusiveScissorCount_ ) VULKAN_HPP_NOEXCEPT - { - exclusiveScissorCount = exclusiveScissorCount_; - return *this; - } - - PipelineViewportExclusiveScissorStateCreateInfoNV & setPExclusiveScissors( const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors_ ) VULKAN_HPP_NOEXCEPT - { - pExclusiveScissors = pExclusiveScissors_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportExclusiveScissorStateCreateInfoNV & setExclusiveScissors( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & exclusiveScissors_ ) VULKAN_HPP_NOEXCEPT - { - exclusiveScissorCount = static_cast( exclusiveScissors_.size() ); - pExclusiveScissors = exclusiveScissors_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportExclusiveScissorStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportExclusiveScissorStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportExclusiveScissorStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( exclusiveScissorCount == rhs.exclusiveScissorCount ) - && ( pExclusiveScissors == rhs.pExclusiveScissors ); - } - - bool operator!=( PipelineViewportExclusiveScissorStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportExclusiveScissorStateCreateInfoNV; - const void* pNext = {}; - uint32_t exclusiveScissorCount = {}; - const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors = {}; - - }; - static_assert( sizeof( PipelineViewportExclusiveScissorStateCreateInfoNV ) == sizeof( VkPipelineViewportExclusiveScissorStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportExclusiveScissorStateCreateInfoNV; - }; - - struct PipelineViewportShadingRateImageStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ = {}) VULKAN_HPP_NOEXCEPT - : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( viewportCount_ ), pShadingRatePalettes( pShadingRatePalettes_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportShadingRateImageStateCreateInfoNV( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportShadingRateImageStateCreateInfoNV( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportShadingRateImageStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePalettes_ ) - : shadingRateImageEnable( shadingRateImageEnable_ ), viewportCount( static_cast( shadingRatePalettes_.size() ) ), pShadingRatePalettes( shadingRatePalettes_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineViewportShadingRateImageStateCreateInfoNV & operator=( VkPipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & operator=( PipelineViewportShadingRateImageStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) ); - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRateImageEnable( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable_ ) VULKAN_HPP_NOEXCEPT - { - shadingRateImageEnable = shadingRateImageEnable_; - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportShadingRateImageStateCreateInfoNV & setPShadingRatePalettes( const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT - { - pShadingRatePalettes = pShadingRatePalettes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportShadingRateImageStateCreateInfoNV & setShadingRatePalettes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & shadingRatePalettes_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( shadingRatePalettes_.size() ); - pShadingRatePalettes = shadingRatePalettes_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportShadingRateImageStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportShadingRateImageStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportShadingRateImageStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( shadingRateImageEnable == rhs.shadingRateImageEnable ) - && ( viewportCount == rhs.viewportCount ) - && ( pShadingRatePalettes == rhs.pShadingRatePalettes ); - } - - bool operator!=( PipelineViewportShadingRateImageStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportShadingRateImageStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes = {}; - - }; - static_assert( sizeof( PipelineViewportShadingRateImageStateCreateInfoNV ) == sizeof( VkPipelineViewportShadingRateImageStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportShadingRateImageStateCreateInfoNV; - }; - - struct ViewportSwizzleNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ViewportSwizzleNV(VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX, VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX) VULKAN_HPP_NOEXCEPT - : x( x_ ), y( y_ ), z( z_ ), w( w_ ) - {} - - VULKAN_HPP_CONSTEXPR ViewportSwizzleNV( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViewportSwizzleNV( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ViewportSwizzleNV & operator=( VkViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ViewportSwizzleNV & operator=( ViewportSwizzleNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ViewportSwizzleNV ) ); - return *this; - } - - ViewportSwizzleNV & setX( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x_ ) VULKAN_HPP_NOEXCEPT - { - x = x_; - return *this; - } - - ViewportSwizzleNV & setY( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y_ ) VULKAN_HPP_NOEXCEPT - { - y = y_; - return *this; - } - - ViewportSwizzleNV & setZ( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z_ ) VULKAN_HPP_NOEXCEPT - { - z = z_; - return *this; - } - - ViewportSwizzleNV & setW( VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w_ ) VULKAN_HPP_NOEXCEPT - { - w = w_; - return *this; - } - - - operator VkViewportSwizzleNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViewportSwizzleNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ViewportSwizzleNV const& ) const = default; -#else - bool operator==( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( x == rhs.x ) - && ( y == rhs.y ) - && ( z == rhs.z ) - && ( w == rhs.w ); - } - - bool operator!=( ViewportSwizzleNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV x = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV y = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV z = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV w = VULKAN_HPP_NAMESPACE::ViewportCoordinateSwizzleNV::ePositiveX; - - }; - static_assert( sizeof( ViewportSwizzleNV ) == sizeof( VkViewportSwizzleNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PipelineViewportSwizzleStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV(VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), viewportCount( viewportCount_ ), pViewportSwizzles( pViewportSwizzles_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportSwizzleStateCreateInfoNV( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportSwizzleStateCreateInfoNV( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportSwizzleStateCreateInfoNV( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportSwizzles_ ) - : flags( flags_ ), viewportCount( static_cast( viewportSwizzles_.size() ) ), pViewportSwizzles( viewportSwizzles_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineViewportSwizzleStateCreateInfoNV & operator=( VkPipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & operator=( PipelineViewportSwizzleStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineViewportSwizzleStateCreateInfoNV ) ); - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setFlags( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportSwizzleStateCreateInfoNV & setPViewportSwizzles( const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles_ ) VULKAN_HPP_NOEXCEPT - { - pViewportSwizzles = pViewportSwizzles_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportSwizzleStateCreateInfoNV & setViewportSwizzles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportSwizzles_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( viewportSwizzles_.size() ); - pViewportSwizzles = viewportSwizzles_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportSwizzleStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportSwizzleStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportSwizzleStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewportSwizzles == rhs.pViewportSwizzles ); - } - - bool operator!=( PipelineViewportSwizzleStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportSwizzleStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateFlagsNV flags = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV* pViewportSwizzles = {}; - - }; - static_assert( sizeof( PipelineViewportSwizzleStateCreateInfoNV ) == sizeof( VkPipelineViewportSwizzleStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportSwizzleStateCreateInfoNV; - }; - - struct PipelineViewportWScalingStateCreateInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePipelineViewportWScalingStateCreateInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ = {}, uint32_t viewportCount_ = {}, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ = {}) VULKAN_HPP_NOEXCEPT - : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( viewportCount_ ), pViewportWScalings( pViewportWScalings_ ) - {} - - VULKAN_HPP_CONSTEXPR PipelineViewportWScalingStateCreateInfoNV( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PipelineViewportWScalingStateCreateInfoNV( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportWScalingStateCreateInfoNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportWScalings_ ) - : viewportWScalingEnable( viewportWScalingEnable_ ), viewportCount( static_cast( viewportWScalings_.size() ) ), pViewportWScalings( viewportWScalings_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PipelineViewportWScalingStateCreateInfoNV & operator=( VkPipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & operator=( PipelineViewportWScalingStateCreateInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PipelineViewportWScalingStateCreateInfoNV ) ); - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setViewportWScalingEnable( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable_ ) VULKAN_HPP_NOEXCEPT - { - viewportWScalingEnable = viewportWScalingEnable_; - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setViewportCount( uint32_t viewportCount_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = viewportCount_; - return *this; - } - - PipelineViewportWScalingStateCreateInfoNV & setPViewportWScalings( const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings_ ) VULKAN_HPP_NOEXCEPT - { - pViewportWScalings = pViewportWScalings_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PipelineViewportWScalingStateCreateInfoNV & setViewportWScalings( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewportWScalings_ ) VULKAN_HPP_NOEXCEPT - { - viewportCount = static_cast( viewportWScalings_.size() ); - pViewportWScalings = viewportWScalings_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPipelineViewportWScalingStateCreateInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPipelineViewportWScalingStateCreateInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PipelineViewportWScalingStateCreateInfoNV const& ) const = default; -#else - bool operator==( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( viewportWScalingEnable == rhs.viewportWScalingEnable ) - && ( viewportCount == rhs.viewportCount ) - && ( pViewportWScalings == rhs.pViewportWScalings ); - } - - bool operator!=( PipelineViewportWScalingStateCreateInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePipelineViewportWScalingStateCreateInfoNV; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable = {}; - uint32_t viewportCount = {}; - const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings = {}; - - }; - static_assert( sizeof( PipelineViewportWScalingStateCreateInfoNV ) == sizeof( VkPipelineViewportWScalingStateCreateInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PipelineViewportWScalingStateCreateInfoNV; - }; - -#ifdef VK_USE_PLATFORM_GGP - struct PresentFrameTokenGGP - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentFrameTokenGGP; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP(GgpFrameToken frameToken_ = {}) VULKAN_HPP_NOEXCEPT - : frameToken( frameToken_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentFrameTokenGGP( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentFrameTokenGGP( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PresentFrameTokenGGP & operator=( VkPresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentFrameTokenGGP & operator=( PresentFrameTokenGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PresentFrameTokenGGP ) ); - return *this; - } - - PresentFrameTokenGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentFrameTokenGGP & setFrameToken( GgpFrameToken frameToken_ ) VULKAN_HPP_NOEXCEPT - { - frameToken = frameToken_; - return *this; - } - - - operator VkPresentFrameTokenGGP const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentFrameTokenGGP &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentFrameTokenGGP const& ) const = default; -#else - bool operator==( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( memcmp( &frameToken, &rhs.frameToken, sizeof( GgpFrameToken ) ) == 0 ); - } - - bool operator!=( PresentFrameTokenGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentFrameTokenGGP; - const void* pNext = {}; - GgpFrameToken frameToken = {}; - - }; - static_assert( sizeof( PresentFrameTokenGGP ) == sizeof( VkPresentFrameTokenGGP ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentFrameTokenGGP; - }; -#endif /*VK_USE_PLATFORM_GGP*/ - - struct RectLayerKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RectLayerKHR(VULKAN_HPP_NAMESPACE::Offset2D offset_ = {}, VULKAN_HPP_NAMESPACE::Extent2D extent_ = {}, uint32_t layer_ = {}) VULKAN_HPP_NOEXCEPT - : offset( offset_ ), extent( extent_ ), layer( layer_ ) - {} - - VULKAN_HPP_CONSTEXPR RectLayerKHR( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RectLayerKHR( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - explicit RectLayerKHR( Rect2D const& rect2D, uint32_t layer_ = {} ) - : offset( rect2D.offset ) - , extent( rect2D.extent ) - , layer( layer_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RectLayerKHR & operator=( VkRectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RectLayerKHR & operator=( RectLayerKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RectLayerKHR ) ); - return *this; - } - - RectLayerKHR & setOffset( VULKAN_HPP_NAMESPACE::Offset2D const & offset_ ) VULKAN_HPP_NOEXCEPT - { - offset = offset_; - return *this; - } - - RectLayerKHR & setExtent( VULKAN_HPP_NAMESPACE::Extent2D const & extent_ ) VULKAN_HPP_NOEXCEPT - { - extent = extent_; - return *this; - } - - RectLayerKHR & setLayer( uint32_t layer_ ) VULKAN_HPP_NOEXCEPT - { - layer = layer_; - return *this; - } - - - operator VkRectLayerKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRectLayerKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RectLayerKHR const& ) const = default; -#else - bool operator==( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( offset == rhs.offset ) - && ( extent == rhs.extent ) - && ( layer == rhs.layer ); - } - - bool operator!=( RectLayerKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::Offset2D offset = {}; - VULKAN_HPP_NAMESPACE::Extent2D extent = {}; - uint32_t layer = {}; - - }; - static_assert( sizeof( RectLayerKHR ) == sizeof( VkRectLayerKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PresentRegionKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentRegionKHR(uint32_t rectangleCount_ = {}, const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ = {}) VULKAN_HPP_NOEXCEPT - : rectangleCount( rectangleCount_ ), pRectangles( pRectangles_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentRegionKHR( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentRegionKHR( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & rectangles_ ) - : rectangleCount( static_cast( rectangles_.size() ) ), pRectangles( rectangles_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PresentRegionKHR & operator=( VkPresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentRegionKHR & operator=( PresentRegionKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PresentRegionKHR ) ); - return *this; - } - - PresentRegionKHR & setRectangleCount( uint32_t rectangleCount_ ) VULKAN_HPP_NOEXCEPT - { - rectangleCount = rectangleCount_; - return *this; - } - - PresentRegionKHR & setPRectangles( const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles_ ) VULKAN_HPP_NOEXCEPT - { - pRectangles = pRectangles_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionKHR & setRectangles( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & rectangles_ ) VULKAN_HPP_NOEXCEPT - { - rectangleCount = static_cast( rectangles_.size() ); - pRectangles = rectangles_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentRegionKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentRegionKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentRegionKHR const& ) const = default; -#else - bool operator==( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( rectangleCount == rhs.rectangleCount ) - && ( pRectangles == rhs.pRectangles ); - } - - bool operator!=( PresentRegionKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t rectangleCount = {}; - const VULKAN_HPP_NAMESPACE::RectLayerKHR* pRectangles = {}; - - }; - static_assert( sizeof( PresentRegionKHR ) == sizeof( VkPresentRegionKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PresentRegionsKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentRegionsKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentRegionsKHR(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ = {}) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ), pRegions( pRegions_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentRegionsKHR( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentRegionsKHR( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionsKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) - : swapchainCount( static_cast( regions_.size() ) ), pRegions( regions_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PresentRegionsKHR & operator=( VkPresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentRegionsKHR & operator=( PresentRegionsKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PresentRegionsKHR ) ); - return *this; - } - - PresentRegionsKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentRegionsKHR & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - PresentRegionsKHR & setPRegions( const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions_ ) VULKAN_HPP_NOEXCEPT - { - pRegions = pRegions_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentRegionsKHR & setRegions( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & regions_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( regions_.size() ); - pRegions = regions_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentRegionsKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentRegionsKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentRegionsKHR const& ) const = default; -#else - bool operator==( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pRegions == rhs.pRegions ); - } - - bool operator!=( PresentRegionsKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentRegionsKHR; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::PresentRegionKHR* pRegions = {}; - - }; - static_assert( sizeof( PresentRegionsKHR ) == sizeof( VkPresentRegionsKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentRegionsKHR; - }; - - struct PresentTimeGOOGLE - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE(uint32_t presentID_ = {}, uint64_t desiredPresentTime_ = {}) VULKAN_HPP_NOEXCEPT - : presentID( presentID_ ), desiredPresentTime( desiredPresentTime_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentTimeGOOGLE( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentTimeGOOGLE( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PresentTimeGOOGLE & operator=( VkPresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentTimeGOOGLE & operator=( PresentTimeGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PresentTimeGOOGLE ) ); - return *this; - } - - PresentTimeGOOGLE & setPresentID( uint32_t presentID_ ) VULKAN_HPP_NOEXCEPT - { - presentID = presentID_; - return *this; - } - - PresentTimeGOOGLE & setDesiredPresentTime( uint64_t desiredPresentTime_ ) VULKAN_HPP_NOEXCEPT - { - desiredPresentTime = desiredPresentTime_; - return *this; - } - - - operator VkPresentTimeGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentTimeGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentTimeGOOGLE const& ) const = default; -#else - bool operator==( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( presentID == rhs.presentID ) - && ( desiredPresentTime == rhs.desiredPresentTime ); - } - - bool operator!=( PresentTimeGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t presentID = {}; - uint64_t desiredPresentTime = {}; - - }; - static_assert( sizeof( PresentTimeGOOGLE ) == sizeof( VkPresentTimeGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct PresentTimesInfoGOOGLE - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::ePresentTimesInfoGOOGLE; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE(uint32_t swapchainCount_ = {}, const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ = {}) VULKAN_HPP_NOEXCEPT - : swapchainCount( swapchainCount_ ), pTimes( pTimes_ ) - {} - - VULKAN_HPP_CONSTEXPR PresentTimesInfoGOOGLE( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - PresentTimesInfoGOOGLE( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentTimesInfoGOOGLE( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & times_ ) - : swapchainCount( static_cast( times_.size() ) ), pTimes( times_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - PresentTimesInfoGOOGLE & operator=( VkPresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - PresentTimesInfoGOOGLE & operator=( PresentTimesInfoGOOGLE const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( PresentTimesInfoGOOGLE ) ); - return *this; - } - - PresentTimesInfoGOOGLE & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - PresentTimesInfoGOOGLE & setSwapchainCount( uint32_t swapchainCount_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = swapchainCount_; - return *this; - } - - PresentTimesInfoGOOGLE & setPTimes( const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes_ ) VULKAN_HPP_NOEXCEPT - { - pTimes = pTimes_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - PresentTimesInfoGOOGLE & setTimes( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & times_ ) VULKAN_HPP_NOEXCEPT - { - swapchainCount = static_cast( times_.size() ); - pTimes = times_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkPresentTimesInfoGOOGLE const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkPresentTimesInfoGOOGLE &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( PresentTimesInfoGOOGLE const& ) const = default; -#else - bool operator==( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( swapchainCount == rhs.swapchainCount ) - && ( pTimes == rhs.pTimes ); - } - - bool operator!=( PresentTimesInfoGOOGLE const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::ePresentTimesInfoGOOGLE; - const void* pNext = {}; - uint32_t swapchainCount = {}; - const VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE* pTimes = {}; - - }; - static_assert( sizeof( PresentTimesInfoGOOGLE ) == sizeof( VkPresentTimesInfoGOOGLE ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = PresentTimesInfoGOOGLE; - }; - - struct ProtectedSubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eProtectedSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo(VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ = {}) VULKAN_HPP_NOEXCEPT - : protectedSubmit( protectedSubmit_ ) - {} - - VULKAN_HPP_CONSTEXPR ProtectedSubmitInfo( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ProtectedSubmitInfo( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ProtectedSubmitInfo & operator=( VkProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ProtectedSubmitInfo & operator=( ProtectedSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ProtectedSubmitInfo ) ); - return *this; - } - - ProtectedSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ProtectedSubmitInfo & setProtectedSubmit( VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit_ ) VULKAN_HPP_NOEXCEPT - { - protectedSubmit = protectedSubmit_; - return *this; - } - - - operator VkProtectedSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkProtectedSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ProtectedSubmitInfo const& ) const = default; -#else - bool operator==( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( protectedSubmit == rhs.protectedSubmit ); - } - - bool operator!=( ProtectedSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eProtectedSubmitInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 protectedSubmit = {}; - - }; - static_assert( sizeof( ProtectedSubmitInfo ) == sizeof( VkProtectedSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ProtectedSubmitInfo; - }; - - struct QueryPoolPerformanceQueryCreateInfoINTEL - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL(VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual) VULKAN_HPP_NOEXCEPT - : performanceCountersSampling( performanceCountersSampling_ ) - {} - - VULKAN_HPP_CONSTEXPR QueryPoolPerformanceQueryCreateInfoINTEL( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueryPoolPerformanceQueryCreateInfoINTEL( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - QueryPoolPerformanceQueryCreateInfoINTEL & operator=( VkQueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueryPoolPerformanceQueryCreateInfoINTEL & operator=( QueryPoolPerformanceQueryCreateInfoINTEL const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) ); - return *this; - } - - QueryPoolPerformanceQueryCreateInfoINTEL & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - QueryPoolPerformanceQueryCreateInfoINTEL & setPerformanceCountersSampling( VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling_ ) VULKAN_HPP_NOEXCEPT - { - performanceCountersSampling = performanceCountersSampling_; - return *this; - } - - - operator VkQueryPoolPerformanceQueryCreateInfoINTEL const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueryPoolPerformanceQueryCreateInfoINTEL &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueryPoolPerformanceQueryCreateInfoINTEL const& ) const = default; -#else - bool operator==( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( performanceCountersSampling == rhs.performanceCountersSampling ); - } - - bool operator!=( QueryPoolPerformanceQueryCreateInfoINTEL const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueryPoolPerformanceQueryCreateInfoINTEL; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL performanceCountersSampling = VULKAN_HPP_NAMESPACE::QueryPoolSamplingModeINTEL::eManual; - - }; - static_assert( sizeof( QueryPoolPerformanceQueryCreateInfoINTEL ) == sizeof( VkQueryPoolPerformanceQueryCreateInfoINTEL ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueryPoolPerformanceQueryCreateInfoINTEL; - }; - using QueryPoolCreateInfoINTEL = QueryPoolPerformanceQueryCreateInfoINTEL; - - struct QueueFamilyCheckpointPropertiesNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eQueueFamilyCheckpointPropertiesNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV(VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask_ = {}) VULKAN_HPP_NOEXCEPT - : checkpointExecutionStageMask( checkpointExecutionStageMask_ ) - {} - - VULKAN_HPP_CONSTEXPR QueueFamilyCheckpointPropertiesNV( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - QueueFamilyCheckpointPropertiesNV( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - QueueFamilyCheckpointPropertiesNV & operator=( VkQueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - QueueFamilyCheckpointPropertiesNV & operator=( QueueFamilyCheckpointPropertiesNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( QueueFamilyCheckpointPropertiesNV ) ); - return *this; - } - - - operator VkQueueFamilyCheckpointPropertiesNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkQueueFamilyCheckpointPropertiesNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( QueueFamilyCheckpointPropertiesNV const& ) const = default; -#else - bool operator==( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( checkpointExecutionStageMask == rhs.checkpointExecutionStageMask ); - } - - bool operator!=( QueueFamilyCheckpointPropertiesNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eQueueFamilyCheckpointPropertiesNV; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::PipelineStageFlags checkpointExecutionStageMask = {}; - - }; - static_assert( sizeof( QueueFamilyCheckpointPropertiesNV ) == sizeof( VkQueueFamilyCheckpointPropertiesNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = QueueFamilyCheckpointPropertiesNV; - }; - - struct RenderPassAttachmentBeginInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassAttachmentBeginInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo(uint32_t attachmentCount_ = {}, const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentCount( attachmentCount_ ), pAttachments( pAttachments_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassAttachmentBeginInfo( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassAttachmentBeginInfo( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassAttachmentBeginInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) - : attachmentCount( static_cast( attachments_.size() ) ), pAttachments( attachments_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassAttachmentBeginInfo & operator=( VkRenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassAttachmentBeginInfo & operator=( RenderPassAttachmentBeginInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassAttachmentBeginInfo ) ); - return *this; - } - - RenderPassAttachmentBeginInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassAttachmentBeginInfo & setAttachmentCount( uint32_t attachmentCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = attachmentCount_; - return *this; - } - - RenderPassAttachmentBeginInfo & setPAttachments( const VULKAN_HPP_NAMESPACE::ImageView* pAttachments_ ) VULKAN_HPP_NOEXCEPT - { - pAttachments = pAttachments_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassAttachmentBeginInfo & setAttachments( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachments_ ) VULKAN_HPP_NOEXCEPT - { - attachmentCount = static_cast( attachments_.size() ); - pAttachments = attachments_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassAttachmentBeginInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassAttachmentBeginInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassAttachmentBeginInfo const& ) const = default; -#else - bool operator==( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentCount == rhs.attachmentCount ) - && ( pAttachments == rhs.pAttachments ); - } - - bool operator!=( RenderPassAttachmentBeginInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassAttachmentBeginInfo; - const void* pNext = {}; - uint32_t attachmentCount = {}; - const VULKAN_HPP_NAMESPACE::ImageView* pAttachments = {}; - - }; - static_assert( sizeof( RenderPassAttachmentBeginInfo ) == sizeof( VkRenderPassAttachmentBeginInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassAttachmentBeginInfo; - }; - using RenderPassAttachmentBeginInfoKHR = RenderPassAttachmentBeginInfo; - - struct RenderPassFragmentDensityMapCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT(VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment_ = {}) VULKAN_HPP_NOEXCEPT - : fragmentDensityMapAttachment( fragmentDensityMapAttachment_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassFragmentDensityMapCreateInfoEXT( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassFragmentDensityMapCreateInfoEXT( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassFragmentDensityMapCreateInfoEXT & operator=( VkRenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassFragmentDensityMapCreateInfoEXT & operator=( RenderPassFragmentDensityMapCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) ); - return *this; - } - - RenderPassFragmentDensityMapCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassFragmentDensityMapCreateInfoEXT & setFragmentDensityMapAttachment( VULKAN_HPP_NAMESPACE::AttachmentReference const & fragmentDensityMapAttachment_ ) VULKAN_HPP_NOEXCEPT - { - fragmentDensityMapAttachment = fragmentDensityMapAttachment_; - return *this; - } - - - operator VkRenderPassFragmentDensityMapCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassFragmentDensityMapCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassFragmentDensityMapCreateInfoEXT const& ) const = default; -#else - bool operator==( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fragmentDensityMapAttachment == rhs.fragmentDensityMapAttachment ); - } - - bool operator!=( RenderPassFragmentDensityMapCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassFragmentDensityMapCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::AttachmentReference fragmentDensityMapAttachment = {}; - - }; - static_assert( sizeof( RenderPassFragmentDensityMapCreateInfoEXT ) == sizeof( VkRenderPassFragmentDensityMapCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassFragmentDensityMapCreateInfoEXT; - }; - - struct RenderPassInputAttachmentAspectCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassInputAttachmentAspectCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo(uint32_t aspectReferenceCount_ = {}, const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ = {}) VULKAN_HPP_NOEXCEPT - : aspectReferenceCount( aspectReferenceCount_ ), pAspectReferences( pAspectReferences_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassInputAttachmentAspectCreateInfo( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassInputAttachmentAspectCreateInfo( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassInputAttachmentAspectCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & aspectReferences_ ) - : aspectReferenceCount( static_cast( aspectReferences_.size() ) ), pAspectReferences( aspectReferences_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassInputAttachmentAspectCreateInfo & operator=( VkRenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassInputAttachmentAspectCreateInfo & operator=( RenderPassInputAttachmentAspectCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassInputAttachmentAspectCreateInfo ) ); - return *this; - } - - RenderPassInputAttachmentAspectCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassInputAttachmentAspectCreateInfo & setAspectReferenceCount( uint32_t aspectReferenceCount_ ) VULKAN_HPP_NOEXCEPT - { - aspectReferenceCount = aspectReferenceCount_; - return *this; - } - - RenderPassInputAttachmentAspectCreateInfo & setPAspectReferences( const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences_ ) VULKAN_HPP_NOEXCEPT - { - pAspectReferences = pAspectReferences_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassInputAttachmentAspectCreateInfo & setAspectReferences( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & aspectReferences_ ) VULKAN_HPP_NOEXCEPT - { - aspectReferenceCount = static_cast( aspectReferences_.size() ); - pAspectReferences = aspectReferences_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassInputAttachmentAspectCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassInputAttachmentAspectCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassInputAttachmentAspectCreateInfo const& ) const = default; -#else - bool operator==( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( aspectReferenceCount == rhs.aspectReferenceCount ) - && ( pAspectReferences == rhs.pAspectReferences ); - } - - bool operator!=( RenderPassInputAttachmentAspectCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassInputAttachmentAspectCreateInfo; - const void* pNext = {}; - uint32_t aspectReferenceCount = {}; - const VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference* pAspectReferences = {}; - - }; - static_assert( sizeof( RenderPassInputAttachmentAspectCreateInfo ) == sizeof( VkRenderPassInputAttachmentAspectCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassInputAttachmentAspectCreateInfo; - }; - using RenderPassInputAttachmentAspectCreateInfoKHR = RenderPassInputAttachmentAspectCreateInfo; - - struct RenderPassMultiviewCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassMultiviewCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo(uint32_t subpassCount_ = {}, const uint32_t* pViewMasks_ = {}, uint32_t dependencyCount_ = {}, const int32_t* pViewOffsets_ = {}, uint32_t correlationMaskCount_ = {}, const uint32_t* pCorrelationMasks_ = {}) VULKAN_HPP_NOEXCEPT - : subpassCount( subpassCount_ ), pViewMasks( pViewMasks_ ), dependencyCount( dependencyCount_ ), pViewOffsets( pViewOffsets_ ), correlationMaskCount( correlationMaskCount_ ), pCorrelationMasks( pCorrelationMasks_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassMultiviewCreateInfo( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassMultiviewCreateInfo( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewMasks_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewOffsets_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlationMasks_ = {} ) - : subpassCount( static_cast( viewMasks_.size() ) ), pViewMasks( viewMasks_.data() ), dependencyCount( static_cast( viewOffsets_.size() ) ), pViewOffsets( viewOffsets_.data() ), correlationMaskCount( static_cast( correlationMasks_.size() ) ), pCorrelationMasks( correlationMasks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassMultiviewCreateInfo & operator=( VkRenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassMultiviewCreateInfo & operator=( RenderPassMultiviewCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassMultiviewCreateInfo ) ); - return *this; - } - - RenderPassMultiviewCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassMultiviewCreateInfo & setSubpassCount( uint32_t subpassCount_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = subpassCount_; - return *this; - } - - RenderPassMultiviewCreateInfo & setPViewMasks( const uint32_t* pViewMasks_ ) VULKAN_HPP_NOEXCEPT - { - pViewMasks = pViewMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo & setViewMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewMasks_ ) VULKAN_HPP_NOEXCEPT - { - subpassCount = static_cast( viewMasks_.size() ); - pViewMasks = viewMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassMultiviewCreateInfo & setDependencyCount( uint32_t dependencyCount_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = dependencyCount_; - return *this; - } - - RenderPassMultiviewCreateInfo & setPViewOffsets( const int32_t* pViewOffsets_ ) VULKAN_HPP_NOEXCEPT - { - pViewOffsets = pViewOffsets_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo & setViewOffsets( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & viewOffsets_ ) VULKAN_HPP_NOEXCEPT - { - dependencyCount = static_cast( viewOffsets_.size() ); - pViewOffsets = viewOffsets_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassMultiviewCreateInfo & setCorrelationMaskCount( uint32_t correlationMaskCount_ ) VULKAN_HPP_NOEXCEPT - { - correlationMaskCount = correlationMaskCount_; - return *this; - } - - RenderPassMultiviewCreateInfo & setPCorrelationMasks( const uint32_t* pCorrelationMasks_ ) VULKAN_HPP_NOEXCEPT - { - pCorrelationMasks = pCorrelationMasks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassMultiviewCreateInfo & setCorrelationMasks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & correlationMasks_ ) VULKAN_HPP_NOEXCEPT - { - correlationMaskCount = static_cast( correlationMasks_.size() ); - pCorrelationMasks = correlationMasks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassMultiviewCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassMultiviewCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassMultiviewCreateInfo const& ) const = default; -#else - bool operator==( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( subpassCount == rhs.subpassCount ) - && ( pViewMasks == rhs.pViewMasks ) - && ( dependencyCount == rhs.dependencyCount ) - && ( pViewOffsets == rhs.pViewOffsets ) - && ( correlationMaskCount == rhs.correlationMaskCount ) - && ( pCorrelationMasks == rhs.pCorrelationMasks ); - } - - bool operator!=( RenderPassMultiviewCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassMultiviewCreateInfo; - const void* pNext = {}; - uint32_t subpassCount = {}; - const uint32_t* pViewMasks = {}; - uint32_t dependencyCount = {}; - const int32_t* pViewOffsets = {}; - uint32_t correlationMaskCount = {}; - const uint32_t* pCorrelationMasks = {}; - - }; - static_assert( sizeof( RenderPassMultiviewCreateInfo ) == sizeof( VkRenderPassMultiviewCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassMultiviewCreateInfo; - }; - using RenderPassMultiviewCreateInfoKHR = RenderPassMultiviewCreateInfo; - - struct SubpassSampleLocationsEXT - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT(uint32_t subpassIndex_ = {}, VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo_ = {}) VULKAN_HPP_NOEXCEPT - : subpassIndex( subpassIndex_ ), sampleLocationsInfo( sampleLocationsInfo_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassSampleLocationsEXT( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassSampleLocationsEXT( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassSampleLocationsEXT & operator=( VkSubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassSampleLocationsEXT & operator=( SubpassSampleLocationsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassSampleLocationsEXT ) ); - return *this; - } - - SubpassSampleLocationsEXT & setSubpassIndex( uint32_t subpassIndex_ ) VULKAN_HPP_NOEXCEPT - { - subpassIndex = subpassIndex_; - return *this; - } - - SubpassSampleLocationsEXT & setSampleLocationsInfo( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfo_ ) VULKAN_HPP_NOEXCEPT - { - sampleLocationsInfo = sampleLocationsInfo_; - return *this; - } - - - operator VkSubpassSampleLocationsEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassSampleLocationsEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassSampleLocationsEXT const& ) const = default; -#else - bool operator==( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( subpassIndex == rhs.subpassIndex ) - && ( sampleLocationsInfo == rhs.sampleLocationsInfo ); - } - - bool operator!=( SubpassSampleLocationsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t subpassIndex = {}; - VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT sampleLocationsInfo = {}; - - }; - static_assert( sizeof( SubpassSampleLocationsEXT ) == sizeof( VkSubpassSampleLocationsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct RenderPassSampleLocationsBeginInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassSampleLocationsBeginInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT(uint32_t attachmentInitialSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ = {}, uint32_t postSubpassSampleLocationsCount_ = {}, const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ = {}) VULKAN_HPP_NOEXCEPT - : attachmentInitialSampleLocationsCount( attachmentInitialSampleLocationsCount_ ), pAttachmentInitialSampleLocations( pAttachmentInitialSampleLocations_ ), postSubpassSampleLocationsCount( postSubpassSampleLocationsCount_ ), pPostSubpassSampleLocations( pPostSubpassSampleLocations_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassSampleLocationsBeginInfoEXT( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassSampleLocationsBeginInfoEXT( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassSampleLocationsBeginInfoEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentInitialSampleLocations_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & postSubpassSampleLocations_ = {} ) - : attachmentInitialSampleLocationsCount( static_cast( attachmentInitialSampleLocations_.size() ) ), pAttachmentInitialSampleLocations( attachmentInitialSampleLocations_.data() ), postSubpassSampleLocationsCount( static_cast( postSubpassSampleLocations_.size() ) ), pPostSubpassSampleLocations( postSubpassSampleLocations_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassSampleLocationsBeginInfoEXT & operator=( VkRenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & operator=( RenderPassSampleLocationsBeginInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassSampleLocationsBeginInfoEXT ) ); - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocationsCount( uint32_t attachmentInitialSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT - { - attachmentInitialSampleLocationsCount = attachmentInitialSampleLocationsCount_; - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setPAttachmentInitialSampleLocations( const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pAttachmentInitialSampleLocations = pAttachmentInitialSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassSampleLocationsBeginInfoEXT & setAttachmentInitialSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & attachmentInitialSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - attachmentInitialSampleLocationsCount = static_cast( attachmentInitialSampleLocations_.size() ); - pAttachmentInitialSampleLocations = attachmentInitialSampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocationsCount( uint32_t postSubpassSampleLocationsCount_ ) VULKAN_HPP_NOEXCEPT - { - postSubpassSampleLocationsCount = postSubpassSampleLocationsCount_; - return *this; - } - - RenderPassSampleLocationsBeginInfoEXT & setPPostSubpassSampleLocations( const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - pPostSubpassSampleLocations = pPostSubpassSampleLocations_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - RenderPassSampleLocationsBeginInfoEXT & setPostSubpassSampleLocations( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & postSubpassSampleLocations_ ) VULKAN_HPP_NOEXCEPT - { - postSubpassSampleLocationsCount = static_cast( postSubpassSampleLocations_.size() ); - pPostSubpassSampleLocations = postSubpassSampleLocations_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkRenderPassSampleLocationsBeginInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassSampleLocationsBeginInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassSampleLocationsBeginInfoEXT const& ) const = default; -#else - bool operator==( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( attachmentInitialSampleLocationsCount == rhs.attachmentInitialSampleLocationsCount ) - && ( pAttachmentInitialSampleLocations == rhs.pAttachmentInitialSampleLocations ) - && ( postSubpassSampleLocationsCount == rhs.postSubpassSampleLocationsCount ) - && ( pPostSubpassSampleLocations == rhs.pPostSubpassSampleLocations ); - } - - bool operator!=( RenderPassSampleLocationsBeginInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassSampleLocationsBeginInfoEXT; - const void* pNext = {}; - uint32_t attachmentInitialSampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations = {}; - uint32_t postSubpassSampleLocationsCount = {}; - const VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT* pPostSubpassSampleLocations = {}; - - }; - static_assert( sizeof( RenderPassSampleLocationsBeginInfoEXT ) == sizeof( VkRenderPassSampleLocationsBeginInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassSampleLocationsBeginInfoEXT; - }; - - struct RenderPassTransformBeginInfoQCOM - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eRenderPassTransformBeginInfoQCOM; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM(VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity) VULKAN_HPP_NOEXCEPT - : transform( transform_ ) - {} - - VULKAN_HPP_CONSTEXPR RenderPassTransformBeginInfoQCOM( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - RenderPassTransformBeginInfoQCOM( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - RenderPassTransformBeginInfoQCOM & operator=( VkRenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - RenderPassTransformBeginInfoQCOM & operator=( RenderPassTransformBeginInfoQCOM const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( RenderPassTransformBeginInfoQCOM ) ); - return *this; - } - - RenderPassTransformBeginInfoQCOM & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - RenderPassTransformBeginInfoQCOM & setTransform( VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform_ ) VULKAN_HPP_NOEXCEPT - { - transform = transform_; - return *this; - } - - - operator VkRenderPassTransformBeginInfoQCOM const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkRenderPassTransformBeginInfoQCOM &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( RenderPassTransformBeginInfoQCOM const& ) const = default; -#else - bool operator==( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( transform == rhs.transform ); - } - - bool operator!=( RenderPassTransformBeginInfoQCOM const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eRenderPassTransformBeginInfoQCOM; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR transform = VULKAN_HPP_NAMESPACE::SurfaceTransformFlagBitsKHR::eIdentity; - - }; - static_assert( sizeof( RenderPassTransformBeginInfoQCOM ) == sizeof( VkRenderPassTransformBeginInfoQCOM ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = RenderPassTransformBeginInfoQCOM; - }; - - struct SamplerCustomBorderColorCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerCustomBorderColorCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - SamplerCustomBorderColorCreateInfoEXT(VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor_ = {}, VULKAN_HPP_NAMESPACE::Format format_ = VULKAN_HPP_NAMESPACE::Format::eUndefined) VULKAN_HPP_NOEXCEPT - : customBorderColor( customBorderColor_ ), format( format_ ) - {} - - SamplerCustomBorderColorCreateInfoEXT( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerCustomBorderColorCreateInfoEXT( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SamplerCustomBorderColorCreateInfoEXT & operator=( VkSamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerCustomBorderColorCreateInfoEXT & operator=( SamplerCustomBorderColorCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SamplerCustomBorderColorCreateInfoEXT ) ); - return *this; - } - - SamplerCustomBorderColorCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerCustomBorderColorCreateInfoEXT & setCustomBorderColor( VULKAN_HPP_NAMESPACE::ClearColorValue const & customBorderColor_ ) VULKAN_HPP_NOEXCEPT - { - customBorderColor = customBorderColor_; - return *this; - } - - SamplerCustomBorderColorCreateInfoEXT & setFormat( VULKAN_HPP_NAMESPACE::Format format_ ) VULKAN_HPP_NOEXCEPT - { - format = format_; - return *this; - } - - - operator VkSamplerCustomBorderColorCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerCustomBorderColorCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerCustomBorderColorCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ClearColorValue customBorderColor = {}; - VULKAN_HPP_NAMESPACE::Format format = VULKAN_HPP_NAMESPACE::Format::eUndefined; - - }; - static_assert( sizeof( SamplerCustomBorderColorCreateInfoEXT ) == sizeof( VkSamplerCustomBorderColorCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerCustomBorderColorCreateInfoEXT; - }; - - struct SamplerReductionModeCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerReductionModeCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo(VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage) VULKAN_HPP_NOEXCEPT - : reductionMode( reductionMode_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerReductionModeCreateInfo( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerReductionModeCreateInfo( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SamplerReductionModeCreateInfo & operator=( VkSamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerReductionModeCreateInfo & operator=( SamplerReductionModeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SamplerReductionModeCreateInfo ) ); - return *this; - } - - SamplerReductionModeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerReductionModeCreateInfo & setReductionMode( VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode_ ) VULKAN_HPP_NOEXCEPT - { - reductionMode = reductionMode_; - return *this; - } - - - operator VkSamplerReductionModeCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerReductionModeCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerReductionModeCreateInfo const& ) const = default; -#else - bool operator==( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( reductionMode == rhs.reductionMode ); - } - - bool operator!=( SamplerReductionModeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerReductionModeCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerReductionMode reductionMode = VULKAN_HPP_NAMESPACE::SamplerReductionMode::eWeightedAverage; - - }; - static_assert( sizeof( SamplerReductionModeCreateInfo ) == sizeof( VkSamplerReductionModeCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerReductionModeCreateInfo; - }; - using SamplerReductionModeCreateInfoEXT = SamplerReductionModeCreateInfo; - - struct SamplerYcbcrConversionImageFormatProperties - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionImageFormatProperties; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties(uint32_t combinedImageSamplerDescriptorCount_ = {}) VULKAN_HPP_NOEXCEPT - : combinedImageSamplerDescriptorCount( combinedImageSamplerDescriptorCount_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionImageFormatProperties( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionImageFormatProperties( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SamplerYcbcrConversionImageFormatProperties & operator=( VkSamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerYcbcrConversionImageFormatProperties & operator=( SamplerYcbcrConversionImageFormatProperties const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SamplerYcbcrConversionImageFormatProperties ) ); - return *this; - } - - - operator VkSamplerYcbcrConversionImageFormatProperties const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerYcbcrConversionImageFormatProperties &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversionImageFormatProperties const& ) const = default; -#else - bool operator==( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( combinedImageSamplerDescriptorCount == rhs.combinedImageSamplerDescriptorCount ); - } - - bool operator!=( SamplerYcbcrConversionImageFormatProperties const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionImageFormatProperties; - void* pNext = {}; - uint32_t combinedImageSamplerDescriptorCount = {}; - - }; - static_assert( sizeof( SamplerYcbcrConversionImageFormatProperties ) == sizeof( VkSamplerYcbcrConversionImageFormatProperties ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerYcbcrConversionImageFormatProperties; - }; - using SamplerYcbcrConversionImageFormatPropertiesKHR = SamplerYcbcrConversionImageFormatProperties; - - struct SamplerYcbcrConversionInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSamplerYcbcrConversionInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ = {}) VULKAN_HPP_NOEXCEPT - : conversion( conversion_ ) - {} - - VULKAN_HPP_CONSTEXPR SamplerYcbcrConversionInfo( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SamplerYcbcrConversionInfo( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SamplerYcbcrConversionInfo & operator=( VkSamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SamplerYcbcrConversionInfo & operator=( SamplerYcbcrConversionInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SamplerYcbcrConversionInfo ) ); - return *this; - } - - SamplerYcbcrConversionInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SamplerYcbcrConversionInfo & setConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion_ ) VULKAN_HPP_NOEXCEPT - { - conversion = conversion_; - return *this; - } - - - operator VkSamplerYcbcrConversionInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSamplerYcbcrConversionInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SamplerYcbcrConversionInfo const& ) const = default; -#else - bool operator==( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( conversion == rhs.conversion ); - } - - bool operator!=( SamplerYcbcrConversionInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSamplerYcbcrConversionInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion conversion = {}; - - }; - static_assert( sizeof( SamplerYcbcrConversionInfo ) == sizeof( VkSamplerYcbcrConversionInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SamplerYcbcrConversionInfo; - }; - using SamplerYcbcrConversionInfoKHR = SamplerYcbcrConversionInfo; - - struct SemaphoreTypeCreateInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSemaphoreTypeCreateInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo(VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary, uint64_t initialValue_ = {}) VULKAN_HPP_NOEXCEPT - : semaphoreType( semaphoreType_ ), initialValue( initialValue_ ) - {} - - VULKAN_HPP_CONSTEXPR SemaphoreTypeCreateInfo( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SemaphoreTypeCreateInfo( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SemaphoreTypeCreateInfo & operator=( VkSemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SemaphoreTypeCreateInfo & operator=( SemaphoreTypeCreateInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SemaphoreTypeCreateInfo ) ); - return *this; - } - - SemaphoreTypeCreateInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SemaphoreTypeCreateInfo & setSemaphoreType( VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType_ ) VULKAN_HPP_NOEXCEPT - { - semaphoreType = semaphoreType_; - return *this; - } - - SemaphoreTypeCreateInfo & setInitialValue( uint64_t initialValue_ ) VULKAN_HPP_NOEXCEPT - { - initialValue = initialValue_; - return *this; - } - - - operator VkSemaphoreTypeCreateInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSemaphoreTypeCreateInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SemaphoreTypeCreateInfo const& ) const = default; -#else - bool operator==( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( semaphoreType == rhs.semaphoreType ) - && ( initialValue == rhs.initialValue ); - } - - bool operator!=( SemaphoreTypeCreateInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSemaphoreTypeCreateInfo; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SemaphoreType semaphoreType = VULKAN_HPP_NAMESPACE::SemaphoreType::eBinary; - uint64_t initialValue = {}; - - }; - static_assert( sizeof( SemaphoreTypeCreateInfo ) == sizeof( VkSemaphoreTypeCreateInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SemaphoreTypeCreateInfo; - }; - using SemaphoreTypeCreateInfoKHR = SemaphoreTypeCreateInfo; - - struct SetStateFlagsIndirectCommandNV - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV(uint32_t data_ = {}) VULKAN_HPP_NOEXCEPT - : data( data_ ) - {} - - VULKAN_HPP_CONSTEXPR SetStateFlagsIndirectCommandNV( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SetStateFlagsIndirectCommandNV( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SetStateFlagsIndirectCommandNV & operator=( VkSetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SetStateFlagsIndirectCommandNV & operator=( SetStateFlagsIndirectCommandNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SetStateFlagsIndirectCommandNV ) ); - return *this; - } - - SetStateFlagsIndirectCommandNV & setData( uint32_t data_ ) VULKAN_HPP_NOEXCEPT - { - data = data_; - return *this; - } - - - operator VkSetStateFlagsIndirectCommandNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSetStateFlagsIndirectCommandNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SetStateFlagsIndirectCommandNV const& ) const = default; -#else - bool operator==( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( data == rhs.data ); - } - - bool operator!=( SetStateFlagsIndirectCommandNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t data = {}; - - }; - static_assert( sizeof( SetStateFlagsIndirectCommandNV ) == sizeof( VkSetStateFlagsIndirectCommandNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ShaderModuleValidationCacheCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eShaderModuleValidationCacheCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ = {}) VULKAN_HPP_NOEXCEPT - : validationCache( validationCache_ ) - {} - - VULKAN_HPP_CONSTEXPR ShaderModuleValidationCacheCreateInfoEXT( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderModuleValidationCacheCreateInfoEXT( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ShaderModuleValidationCacheCreateInfoEXT & operator=( VkShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShaderModuleValidationCacheCreateInfoEXT & operator=( ShaderModuleValidationCacheCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ShaderModuleValidationCacheCreateInfoEXT ) ); - return *this; - } - - ShaderModuleValidationCacheCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ShaderModuleValidationCacheCreateInfoEXT & setValidationCache( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache_ ) VULKAN_HPP_NOEXCEPT - { - validationCache = validationCache_; - return *this; - } - - - operator VkShaderModuleValidationCacheCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderModuleValidationCacheCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderModuleValidationCacheCreateInfoEXT const& ) const = default; -#else - bool operator==( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( validationCache == rhs.validationCache ); - } - - bool operator!=( ShaderModuleValidationCacheCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eShaderModuleValidationCacheCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache = {}; - - }; - static_assert( sizeof( ShaderModuleValidationCacheCreateInfoEXT ) == sizeof( VkShaderModuleValidationCacheCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ShaderModuleValidationCacheCreateInfoEXT; - }; - - struct ShaderResourceUsageAMD - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD(uint32_t numUsedVgprs_ = {}, uint32_t numUsedSgprs_ = {}, uint32_t ldsSizePerLocalWorkGroup_ = {}, size_t ldsUsageSizeInBytes_ = {}, size_t scratchMemUsageInBytes_ = {}) VULKAN_HPP_NOEXCEPT - : numUsedVgprs( numUsedVgprs_ ), numUsedSgprs( numUsedSgprs_ ), ldsSizePerLocalWorkGroup( ldsSizePerLocalWorkGroup_ ), ldsUsageSizeInBytes( ldsUsageSizeInBytes_ ), scratchMemUsageInBytes( scratchMemUsageInBytes_ ) - {} - - VULKAN_HPP_CONSTEXPR ShaderResourceUsageAMD( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderResourceUsageAMD( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ShaderResourceUsageAMD & operator=( VkShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShaderResourceUsageAMD & operator=( ShaderResourceUsageAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ShaderResourceUsageAMD ) ); - return *this; - } - - - operator VkShaderResourceUsageAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderResourceUsageAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderResourceUsageAMD const& ) const = default; -#else - bool operator==( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( numUsedVgprs == rhs.numUsedVgprs ) - && ( numUsedSgprs == rhs.numUsedSgprs ) - && ( ldsSizePerLocalWorkGroup == rhs.ldsSizePerLocalWorkGroup ) - && ( ldsUsageSizeInBytes == rhs.ldsUsageSizeInBytes ) - && ( scratchMemUsageInBytes == rhs.scratchMemUsageInBytes ); - } - - bool operator!=( ShaderResourceUsageAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t numUsedVgprs = {}; - uint32_t numUsedSgprs = {}; - uint32_t ldsSizePerLocalWorkGroup = {}; - size_t ldsUsageSizeInBytes = {}; - size_t scratchMemUsageInBytes = {}; - - }; - static_assert( sizeof( ShaderResourceUsageAMD ) == sizeof( VkShaderResourceUsageAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ShaderStatisticsInfoAMD - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD(VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask_ = {}, VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage_ = {}, uint32_t numPhysicalVgprs_ = {}, uint32_t numPhysicalSgprs_ = {}, uint32_t numAvailableVgprs_ = {}, uint32_t numAvailableSgprs_ = {}, std::array const& computeWorkGroupSize_ = {}) VULKAN_HPP_NOEXCEPT - : shaderStageMask( shaderStageMask_ ), resourceUsage( resourceUsage_ ), numPhysicalVgprs( numPhysicalVgprs_ ), numPhysicalSgprs( numPhysicalSgprs_ ), numAvailableVgprs( numAvailableVgprs_ ), numAvailableSgprs( numAvailableSgprs_ ), computeWorkGroupSize( computeWorkGroupSize_ ) - {} - - VULKAN_HPP_CONSTEXPR_14 ShaderStatisticsInfoAMD( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ShaderStatisticsInfoAMD( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ShaderStatisticsInfoAMD & operator=( VkShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ShaderStatisticsInfoAMD & operator=( ShaderStatisticsInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ShaderStatisticsInfoAMD ) ); - return *this; - } - - - operator VkShaderStatisticsInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkShaderStatisticsInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ShaderStatisticsInfoAMD const& ) const = default; -#else - bool operator==( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( shaderStageMask == rhs.shaderStageMask ) - && ( resourceUsage == rhs.resourceUsage ) - && ( numPhysicalVgprs == rhs.numPhysicalVgprs ) - && ( numPhysicalSgprs == rhs.numPhysicalSgprs ) - && ( numAvailableVgprs == rhs.numAvailableVgprs ) - && ( numAvailableSgprs == rhs.numAvailableSgprs ) - && ( computeWorkGroupSize == rhs.computeWorkGroupSize ); - } - - bool operator!=( ShaderStatisticsInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - VULKAN_HPP_NAMESPACE::ShaderStageFlags shaderStageMask = {}; - VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD resourceUsage = {}; - uint32_t numPhysicalVgprs = {}; - uint32_t numPhysicalSgprs = {}; - uint32_t numAvailableVgprs = {}; - uint32_t numAvailableSgprs = {}; - VULKAN_HPP_NAMESPACE::ArrayWrapper1D computeWorkGroupSize = {}; - - }; - static_assert( sizeof( ShaderStatisticsInfoAMD ) == sizeof( VkShaderStatisticsInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct SharedPresentSurfaceCapabilitiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSharedPresentSurfaceCapabilitiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags_ = {}) VULKAN_HPP_NOEXCEPT - : sharedPresentSupportedUsageFlags( sharedPresentSupportedUsageFlags_ ) - {} - - VULKAN_HPP_CONSTEXPR SharedPresentSurfaceCapabilitiesKHR( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SharedPresentSurfaceCapabilitiesKHR( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SharedPresentSurfaceCapabilitiesKHR & operator=( VkSharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SharedPresentSurfaceCapabilitiesKHR & operator=( SharedPresentSurfaceCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SharedPresentSurfaceCapabilitiesKHR ) ); - return *this; - } - - - operator VkSharedPresentSurfaceCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSharedPresentSurfaceCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SharedPresentSurfaceCapabilitiesKHR const& ) const = default; -#else - bool operator==( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( sharedPresentSupportedUsageFlags == rhs.sharedPresentSupportedUsageFlags ); - } - - bool operator!=( SharedPresentSurfaceCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSharedPresentSurfaceCapabilitiesKHR; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::ImageUsageFlags sharedPresentSupportedUsageFlags = {}; - - }; - static_assert( sizeof( SharedPresentSurfaceCapabilitiesKHR ) == sizeof( VkSharedPresentSurfaceCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SharedPresentSurfaceCapabilitiesKHR; - }; - -#ifdef VK_USE_PLATFORM_GGP - struct StreamDescriptorSurfaceCreateInfoGGP - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP(VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ = {}, GgpStreamDescriptor streamDescriptor_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), streamDescriptor( streamDescriptor_ ) - {} - - VULKAN_HPP_CONSTEXPR StreamDescriptorSurfaceCreateInfoGGP( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - StreamDescriptorSurfaceCreateInfoGGP( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - StreamDescriptorSurfaceCreateInfoGGP & operator=( VkStreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - StreamDescriptorSurfaceCreateInfoGGP & operator=( StreamDescriptorSurfaceCreateInfoGGP const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( StreamDescriptorSurfaceCreateInfoGGP ) ); - return *this; - } - - StreamDescriptorSurfaceCreateInfoGGP & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - StreamDescriptorSurfaceCreateInfoGGP & setFlags( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - StreamDescriptorSurfaceCreateInfoGGP & setStreamDescriptor( GgpStreamDescriptor streamDescriptor_ ) VULKAN_HPP_NOEXCEPT - { - streamDescriptor = streamDescriptor_; - return *this; - } - - - operator VkStreamDescriptorSurfaceCreateInfoGGP const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkStreamDescriptorSurfaceCreateInfoGGP &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( StreamDescriptorSurfaceCreateInfoGGP const& ) const = default; -#else - bool operator==( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( memcmp( &streamDescriptor, &rhs.streamDescriptor, sizeof( GgpStreamDescriptor ) ) == 0 ); - } - - bool operator!=( StreamDescriptorSurfaceCreateInfoGGP const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eStreamDescriptorSurfaceCreateInfoGGP; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateFlagsGGP flags = {}; - GgpStreamDescriptor streamDescriptor = {}; - - }; - static_assert( sizeof( StreamDescriptorSurfaceCreateInfoGGP ) == sizeof( VkStreamDescriptorSurfaceCreateInfoGGP ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = StreamDescriptorSurfaceCreateInfoGGP; - }; -#endif /*VK_USE_PLATFORM_GGP*/ - - struct SubpassDescriptionDepthStencilResolve - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSubpassDescriptionDepthStencilResolve; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve(VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone, const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ = {}) VULKAN_HPP_NOEXCEPT - : depthResolveMode( depthResolveMode_ ), stencilResolveMode( stencilResolveMode_ ), pDepthStencilResolveAttachment( pDepthStencilResolveAttachment_ ) - {} - - VULKAN_HPP_CONSTEXPR SubpassDescriptionDepthStencilResolve( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SubpassDescriptionDepthStencilResolve( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SubpassDescriptionDepthStencilResolve & operator=( VkSubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SubpassDescriptionDepthStencilResolve & operator=( SubpassDescriptionDepthStencilResolve const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SubpassDescriptionDepthStencilResolve ) ); - return *this; - } - - SubpassDescriptionDepthStencilResolve & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SubpassDescriptionDepthStencilResolve & setDepthResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode_ ) VULKAN_HPP_NOEXCEPT - { - depthResolveMode = depthResolveMode_; - return *this; - } - - SubpassDescriptionDepthStencilResolve & setStencilResolveMode( VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode_ ) VULKAN_HPP_NOEXCEPT - { - stencilResolveMode = stencilResolveMode_; - return *this; - } - - SubpassDescriptionDepthStencilResolve & setPDepthStencilResolveAttachment( const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment_ ) VULKAN_HPP_NOEXCEPT - { - pDepthStencilResolveAttachment = pDepthStencilResolveAttachment_; - return *this; - } - - - operator VkSubpassDescriptionDepthStencilResolve const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSubpassDescriptionDepthStencilResolve &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SubpassDescriptionDepthStencilResolve const& ) const = default; -#else - bool operator==( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( depthResolveMode == rhs.depthResolveMode ) - && ( stencilResolveMode == rhs.stencilResolveMode ) - && ( pDepthStencilResolveAttachment == rhs.pDepthStencilResolveAttachment ); - } - - bool operator!=( SubpassDescriptionDepthStencilResolve const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSubpassDescriptionDepthStencilResolve; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ResolveModeFlagBits depthResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; - VULKAN_HPP_NAMESPACE::ResolveModeFlagBits stencilResolveMode = VULKAN_HPP_NAMESPACE::ResolveModeFlagBits::eNone; - const VULKAN_HPP_NAMESPACE::AttachmentReference2* pDepthStencilResolveAttachment = {}; - - }; - static_assert( sizeof( SubpassDescriptionDepthStencilResolve ) == sizeof( VkSubpassDescriptionDepthStencilResolve ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SubpassDescriptionDepthStencilResolve; - }; - using SubpassDescriptionDepthStencilResolveKHR = SubpassDescriptionDepthStencilResolve; - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceCapabilitiesFullScreenExclusiveEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT(VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ = {}) VULKAN_HPP_NOEXCEPT - : fullScreenExclusiveSupported( fullScreenExclusiveSupported_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceCapabilitiesFullScreenExclusiveEXT( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceCapabilitiesFullScreenExclusiveEXT( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( VkSurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceCapabilitiesFullScreenExclusiveEXT & operator=( SurfaceCapabilitiesFullScreenExclusiveEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) ); - return *this; - } - - SurfaceCapabilitiesFullScreenExclusiveEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceCapabilitiesFullScreenExclusiveEXT & setFullScreenExclusiveSupported( VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported_ ) VULKAN_HPP_NOEXCEPT - { - fullScreenExclusiveSupported = fullScreenExclusiveSupported_; - return *this; - } - - - operator VkSurfaceCapabilitiesFullScreenExclusiveEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceCapabilitiesFullScreenExclusiveEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceCapabilitiesFullScreenExclusiveEXT const& ) const = default; -#else - bool operator==( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fullScreenExclusiveSupported == rhs.fullScreenExclusiveSupported ); - } - - bool operator!=( SurfaceCapabilitiesFullScreenExclusiveEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceCapabilitiesFullScreenExclusiveEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 fullScreenExclusiveSupported = {}; - - }; - static_assert( sizeof( SurfaceCapabilitiesFullScreenExclusiveEXT ) == sizeof( VkSurfaceCapabilitiesFullScreenExclusiveEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceCapabilitiesFullScreenExclusiveEXT; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceFullScreenExclusiveInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT(VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault) VULKAN_HPP_NOEXCEPT - : fullScreenExclusive( fullScreenExclusive_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveInfoEXT( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFullScreenExclusiveInfoEXT( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceFullScreenExclusiveInfoEXT & operator=( VkSurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceFullScreenExclusiveInfoEXT & operator=( SurfaceFullScreenExclusiveInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceFullScreenExclusiveInfoEXT ) ); - return *this; - } - - SurfaceFullScreenExclusiveInfoEXT & setPNext( void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceFullScreenExclusiveInfoEXT & setFullScreenExclusive( VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive_ ) VULKAN_HPP_NOEXCEPT - { - fullScreenExclusive = fullScreenExclusive_; - return *this; - } - - - operator VkSurfaceFullScreenExclusiveInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFullScreenExclusiveInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFullScreenExclusiveInfoEXT const& ) const = default; -#else - bool operator==( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( fullScreenExclusive == rhs.fullScreenExclusive ); - } - - bool operator!=( SurfaceFullScreenExclusiveInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveInfoEXT; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT fullScreenExclusive = VULKAN_HPP_NAMESPACE::FullScreenExclusiveEXT::eDefault; - - }; - static_assert( sizeof( SurfaceFullScreenExclusiveInfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceFullScreenExclusiveInfoEXT; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct SurfaceFullScreenExclusiveWin32InfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT(HMONITOR hmonitor_ = {}) VULKAN_HPP_NOEXCEPT - : hmonitor( hmonitor_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceFullScreenExclusiveWin32InfoEXT( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceFullScreenExclusiveWin32InfoEXT( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceFullScreenExclusiveWin32InfoEXT & operator=( VkSurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceFullScreenExclusiveWin32InfoEXT & operator=( SurfaceFullScreenExclusiveWin32InfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) ); - return *this; - } - - SurfaceFullScreenExclusiveWin32InfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceFullScreenExclusiveWin32InfoEXT & setHmonitor( HMONITOR hmonitor_ ) VULKAN_HPP_NOEXCEPT - { - hmonitor = hmonitor_; - return *this; - } - - - operator VkSurfaceFullScreenExclusiveWin32InfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceFullScreenExclusiveWin32InfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceFullScreenExclusiveWin32InfoEXT const& ) const = default; -#else - bool operator==( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( hmonitor == rhs.hmonitor ); - } - - bool operator!=( SurfaceFullScreenExclusiveWin32InfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceFullScreenExclusiveWin32InfoEXT; - const void* pNext = {}; - HMONITOR hmonitor = {}; - - }; - static_assert( sizeof( SurfaceFullScreenExclusiveWin32InfoEXT ) == sizeof( VkSurfaceFullScreenExclusiveWin32InfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceFullScreenExclusiveWin32InfoEXT; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct SurfaceProtectedCapabilitiesKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSurfaceProtectedCapabilitiesKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR(VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ = {}) VULKAN_HPP_NOEXCEPT - : supportsProtected( supportsProtected_ ) - {} - - VULKAN_HPP_CONSTEXPR SurfaceProtectedCapabilitiesKHR( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SurfaceProtectedCapabilitiesKHR( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SurfaceProtectedCapabilitiesKHR & operator=( VkSurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SurfaceProtectedCapabilitiesKHR & operator=( SurfaceProtectedCapabilitiesKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SurfaceProtectedCapabilitiesKHR ) ); - return *this; - } - - SurfaceProtectedCapabilitiesKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SurfaceProtectedCapabilitiesKHR & setSupportsProtected( VULKAN_HPP_NAMESPACE::Bool32 supportsProtected_ ) VULKAN_HPP_NOEXCEPT - { - supportsProtected = supportsProtected_; - return *this; - } - - - operator VkSurfaceProtectedCapabilitiesKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSurfaceProtectedCapabilitiesKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SurfaceProtectedCapabilitiesKHR const& ) const = default; -#else - bool operator==( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportsProtected == rhs.supportsProtected ); - } - - bool operator!=( SurfaceProtectedCapabilitiesKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSurfaceProtectedCapabilitiesKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supportsProtected = {}; - - }; - static_assert( sizeof( SurfaceProtectedCapabilitiesKHR ) == sizeof( VkSurfaceProtectedCapabilitiesKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SurfaceProtectedCapabilitiesKHR; - }; - - struct SwapchainCounterCreateInfoEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainCounterCreateInfoEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT(VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ = {}) VULKAN_HPP_NOEXCEPT - : surfaceCounters( surfaceCounters_ ) - {} - - VULKAN_HPP_CONSTEXPR SwapchainCounterCreateInfoEXT( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainCounterCreateInfoEXT( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SwapchainCounterCreateInfoEXT & operator=( VkSwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SwapchainCounterCreateInfoEXT & operator=( SwapchainCounterCreateInfoEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SwapchainCounterCreateInfoEXT ) ); - return *this; - } - - SwapchainCounterCreateInfoEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SwapchainCounterCreateInfoEXT & setSurfaceCounters( VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters_ ) VULKAN_HPP_NOEXCEPT - { - surfaceCounters = surfaceCounters_; - return *this; - } - - - operator VkSwapchainCounterCreateInfoEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSwapchainCounterCreateInfoEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainCounterCreateInfoEXT const& ) const = default; -#else - bool operator==( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( surfaceCounters == rhs.surfaceCounters ); - } - - bool operator!=( SwapchainCounterCreateInfoEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainCounterCreateInfoEXT; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::SurfaceCounterFlagsEXT surfaceCounters = {}; - - }; - static_assert( sizeof( SwapchainCounterCreateInfoEXT ) == sizeof( VkSwapchainCounterCreateInfoEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SwapchainCounterCreateInfoEXT; - }; - - struct SwapchainDisplayNativeHdrCreateInfoAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD(VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ = {}) VULKAN_HPP_NOEXCEPT - : localDimmingEnable( localDimmingEnable_ ) - {} - - VULKAN_HPP_CONSTEXPR SwapchainDisplayNativeHdrCreateInfoAMD( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - SwapchainDisplayNativeHdrCreateInfoAMD( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - SwapchainDisplayNativeHdrCreateInfoAMD & operator=( VkSwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - SwapchainDisplayNativeHdrCreateInfoAMD & operator=( SwapchainDisplayNativeHdrCreateInfoAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) ); - return *this; - } - - SwapchainDisplayNativeHdrCreateInfoAMD & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - SwapchainDisplayNativeHdrCreateInfoAMD & setLocalDimmingEnable( VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable_ ) VULKAN_HPP_NOEXCEPT - { - localDimmingEnable = localDimmingEnable_; - return *this; - } - - - operator VkSwapchainDisplayNativeHdrCreateInfoAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkSwapchainDisplayNativeHdrCreateInfoAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( SwapchainDisplayNativeHdrCreateInfoAMD const& ) const = default; -#else - bool operator==( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( localDimmingEnable == rhs.localDimmingEnable ); - } - - bool operator!=( SwapchainDisplayNativeHdrCreateInfoAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eSwapchainDisplayNativeHdrCreateInfoAMD; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable = {}; - - }; - static_assert( sizeof( SwapchainDisplayNativeHdrCreateInfoAMD ) == sizeof( VkSwapchainDisplayNativeHdrCreateInfoAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = SwapchainDisplayNativeHdrCreateInfoAMD; - }; - - struct TextureLODGatherFormatPropertiesAMD - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTextureLodGatherFormatPropertiesAMD; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD(VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD_ = {}) VULKAN_HPP_NOEXCEPT - : supportsTextureGatherLODBiasAMD( supportsTextureGatherLODBiasAMD_ ) - {} - - VULKAN_HPP_CONSTEXPR TextureLODGatherFormatPropertiesAMD( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TextureLODGatherFormatPropertiesAMD( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - TextureLODGatherFormatPropertiesAMD & operator=( VkTextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - TextureLODGatherFormatPropertiesAMD & operator=( TextureLODGatherFormatPropertiesAMD const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( TextureLODGatherFormatPropertiesAMD ) ); - return *this; - } - - - operator VkTextureLODGatherFormatPropertiesAMD const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTextureLODGatherFormatPropertiesAMD &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TextureLODGatherFormatPropertiesAMD const& ) const = default; -#else - bool operator==( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( supportsTextureGatherLODBiasAMD == rhs.supportsTextureGatherLODBiasAMD ); - } - - bool operator!=( TextureLODGatherFormatPropertiesAMD const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTextureLodGatherFormatPropertiesAMD; - void* pNext = {}; - VULKAN_HPP_NAMESPACE::Bool32 supportsTextureGatherLODBiasAMD = {}; - - }; - static_assert( sizeof( TextureLODGatherFormatPropertiesAMD ) == sizeof( VkTextureLODGatherFormatPropertiesAMD ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = TextureLODGatherFormatPropertiesAMD; - }; - - struct TimelineSemaphoreSubmitInfo - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eTimelineSemaphoreSubmitInfo; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo(uint32_t waitSemaphoreValueCount_ = {}, const uint64_t* pWaitSemaphoreValues_ = {}, uint32_t signalSemaphoreValueCount_ = {}, const uint64_t* pSignalSemaphoreValues_ = {}) VULKAN_HPP_NOEXCEPT - : waitSemaphoreValueCount( waitSemaphoreValueCount_ ), pWaitSemaphoreValues( pWaitSemaphoreValues_ ), signalSemaphoreValueCount( signalSemaphoreValueCount_ ), pSignalSemaphoreValues( pSignalSemaphoreValues_ ) - {} - - VULKAN_HPP_CONSTEXPR TimelineSemaphoreSubmitInfo( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TimelineSemaphoreSubmitInfo( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - TimelineSemaphoreSubmitInfo( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ = {} ) - : waitSemaphoreValueCount( static_cast( waitSemaphoreValues_.size() ) ), pWaitSemaphoreValues( waitSemaphoreValues_.data() ), signalSemaphoreValueCount( static_cast( signalSemaphoreValues_.size() ) ), pSignalSemaphoreValues( signalSemaphoreValues_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - TimelineSemaphoreSubmitInfo & operator=( VkTimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - TimelineSemaphoreSubmitInfo & operator=( TimelineSemaphoreSubmitInfo const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( TimelineSemaphoreSubmitInfo ) ); - return *this; - } - - TimelineSemaphoreSubmitInfo & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - TimelineSemaphoreSubmitInfo & setWaitSemaphoreValueCount( uint32_t waitSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValueCount = waitSemaphoreValueCount_; - return *this; - } - - TimelineSemaphoreSubmitInfo & setPWaitSemaphoreValues( const uint64_t* pWaitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pWaitSemaphoreValues = pWaitSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - TimelineSemaphoreSubmitInfo & setWaitSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & waitSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - waitSemaphoreValueCount = static_cast( waitSemaphoreValues_.size() ); - pWaitSemaphoreValues = waitSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - TimelineSemaphoreSubmitInfo & setSignalSemaphoreValueCount( uint32_t signalSemaphoreValueCount_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValueCount = signalSemaphoreValueCount_; - return *this; - } - - TimelineSemaphoreSubmitInfo & setPSignalSemaphoreValues( const uint64_t* pSignalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - pSignalSemaphoreValues = pSignalSemaphoreValues_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - TimelineSemaphoreSubmitInfo & setSignalSemaphoreValues( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & signalSemaphoreValues_ ) VULKAN_HPP_NOEXCEPT - { - signalSemaphoreValueCount = static_cast( signalSemaphoreValues_.size() ); - pSignalSemaphoreValues = signalSemaphoreValues_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkTimelineSemaphoreSubmitInfo const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTimelineSemaphoreSubmitInfo &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TimelineSemaphoreSubmitInfo const& ) const = default; -#else - bool operator==( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( waitSemaphoreValueCount == rhs.waitSemaphoreValueCount ) - && ( pWaitSemaphoreValues == rhs.pWaitSemaphoreValues ) - && ( signalSemaphoreValueCount == rhs.signalSemaphoreValueCount ) - && ( pSignalSemaphoreValues == rhs.pSignalSemaphoreValues ); - } - - bool operator!=( TimelineSemaphoreSubmitInfo const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eTimelineSemaphoreSubmitInfo; - const void* pNext = {}; - uint32_t waitSemaphoreValueCount = {}; - const uint64_t* pWaitSemaphoreValues = {}; - uint32_t signalSemaphoreValueCount = {}; - const uint64_t* pSignalSemaphoreValues = {}; - - }; - static_assert( sizeof( TimelineSemaphoreSubmitInfo ) == sizeof( VkTimelineSemaphoreSubmitInfo ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = TimelineSemaphoreSubmitInfo; - }; - using TimelineSemaphoreSubmitInfoKHR = TimelineSemaphoreSubmitInfo; - - struct TraceRaysIndirectCommandKHR - { - - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR(uint32_t width_ = {}, uint32_t height_ = {}, uint32_t depth_ = {}) VULKAN_HPP_NOEXCEPT - : width( width_ ), height( height_ ), depth( depth_ ) - {} - - VULKAN_HPP_CONSTEXPR TraceRaysIndirectCommandKHR( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - TraceRaysIndirectCommandKHR( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - - explicit TraceRaysIndirectCommandKHR( Extent2D const& extent2D, uint32_t depth_ = {} ) - : width( extent2D.width ) - , height( extent2D.height ) - , depth( depth_ ) - {} -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - TraceRaysIndirectCommandKHR & operator=( VkTraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - TraceRaysIndirectCommandKHR & operator=( TraceRaysIndirectCommandKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( TraceRaysIndirectCommandKHR ) ); - return *this; - } - - TraceRaysIndirectCommandKHR & setWidth( uint32_t width_ ) VULKAN_HPP_NOEXCEPT - { - width = width_; - return *this; - } - - TraceRaysIndirectCommandKHR & setHeight( uint32_t height_ ) VULKAN_HPP_NOEXCEPT - { - height = height_; - return *this; - } - - TraceRaysIndirectCommandKHR & setDepth( uint32_t depth_ ) VULKAN_HPP_NOEXCEPT - { - depth = depth_; - return *this; - } - - - operator VkTraceRaysIndirectCommandKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkTraceRaysIndirectCommandKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( TraceRaysIndirectCommandKHR const& ) const = default; -#else - bool operator==( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( width == rhs.width ) - && ( height == rhs.height ) - && ( depth == rhs.depth ); - } - - bool operator!=( TraceRaysIndirectCommandKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - uint32_t width = {}; - uint32_t height = {}; - uint32_t depth = {}; - - }; - static_assert( sizeof( TraceRaysIndirectCommandKHR ) == sizeof( VkTraceRaysIndirectCommandKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - struct ValidationFeaturesEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFeaturesEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT(uint32_t enabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ = {}, uint32_t disabledValidationFeatureCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ = {}) VULKAN_HPP_NOEXCEPT - : enabledValidationFeatureCount( enabledValidationFeatureCount_ ), pEnabledValidationFeatures( pEnabledValidationFeatures_ ), disabledValidationFeatureCount( disabledValidationFeatureCount_ ), pDisabledValidationFeatures( pDisabledValidationFeatures_ ) - {} - - VULKAN_HPP_CONSTEXPR ValidationFeaturesEXT( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationFeaturesEXT( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFeaturesEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & enabledValidationFeatures_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationFeatures_ = {} ) - : enabledValidationFeatureCount( static_cast( enabledValidationFeatures_.size() ) ), pEnabledValidationFeatures( enabledValidationFeatures_.data() ), disabledValidationFeatureCount( static_cast( disabledValidationFeatures_.size() ) ), pDisabledValidationFeatures( disabledValidationFeatures_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ValidationFeaturesEXT & operator=( VkValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ValidationFeaturesEXT & operator=( ValidationFeaturesEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ValidationFeaturesEXT ) ); - return *this; - } - - ValidationFeaturesEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ValidationFeaturesEXT & setEnabledValidationFeatureCount( uint32_t enabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT - { - enabledValidationFeatureCount = enabledValidationFeatureCount_; - return *this; - } - - ValidationFeaturesEXT & setPEnabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - pEnabledValidationFeatures = pEnabledValidationFeatures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFeaturesEXT & setEnabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & enabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - enabledValidationFeatureCount = static_cast( enabledValidationFeatures_.size() ); - pEnabledValidationFeatures = enabledValidationFeatures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - ValidationFeaturesEXT & setDisabledValidationFeatureCount( uint32_t disabledValidationFeatureCount_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationFeatureCount = disabledValidationFeatureCount_; - return *this; - } - - ValidationFeaturesEXT & setPDisabledValidationFeatures( const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - pDisabledValidationFeatures = pDisabledValidationFeatures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFeaturesEXT & setDisabledValidationFeatures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationFeatures_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationFeatureCount = static_cast( disabledValidationFeatures_.size() ); - pDisabledValidationFeatures = disabledValidationFeatures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkValidationFeaturesEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkValidationFeaturesEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationFeaturesEXT const& ) const = default; -#else - bool operator==( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( enabledValidationFeatureCount == rhs.enabledValidationFeatureCount ) - && ( pEnabledValidationFeatures == rhs.pEnabledValidationFeatures ) - && ( disabledValidationFeatureCount == rhs.disabledValidationFeatureCount ) - && ( pDisabledValidationFeatures == rhs.pDisabledValidationFeatures ); - } - - bool operator!=( ValidationFeaturesEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFeaturesEXT; - const void* pNext = {}; - uint32_t enabledValidationFeatureCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationFeatureEnableEXT* pEnabledValidationFeatures = {}; - uint32_t disabledValidationFeatureCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationFeatureDisableEXT* pDisabledValidationFeatures = {}; - - }; - static_assert( sizeof( ValidationFeaturesEXT ) == sizeof( VkValidationFeaturesEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ValidationFeaturesEXT; - }; - - struct ValidationFlagsEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eValidationFlagsEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ValidationFlagsEXT(uint32_t disabledValidationCheckCount_ = {}, const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ = {}) VULKAN_HPP_NOEXCEPT - : disabledValidationCheckCount( disabledValidationCheckCount_ ), pDisabledValidationChecks( pDisabledValidationChecks_ ) - {} - - VULKAN_HPP_CONSTEXPR ValidationFlagsEXT( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ValidationFlagsEXT( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFlagsEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationChecks_ ) - : disabledValidationCheckCount( static_cast( disabledValidationChecks_.size() ) ), pDisabledValidationChecks( disabledValidationChecks_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ValidationFlagsEXT & operator=( VkValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ValidationFlagsEXT & operator=( ValidationFlagsEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ValidationFlagsEXT ) ); - return *this; - } - - ValidationFlagsEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ValidationFlagsEXT & setDisabledValidationCheckCount( uint32_t disabledValidationCheckCount_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationCheckCount = disabledValidationCheckCount_; - return *this; - } - - ValidationFlagsEXT & setPDisabledValidationChecks( const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT - { - pDisabledValidationChecks = pDisabledValidationChecks_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - ValidationFlagsEXT & setDisabledValidationChecks( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & disabledValidationChecks_ ) VULKAN_HPP_NOEXCEPT - { - disabledValidationCheckCount = static_cast( disabledValidationChecks_.size() ); - pDisabledValidationChecks = disabledValidationChecks_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkValidationFlagsEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkValidationFlagsEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ValidationFlagsEXT const& ) const = default; -#else - bool operator==( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( disabledValidationCheckCount == rhs.disabledValidationCheckCount ) - && ( pDisabledValidationChecks == rhs.pDisabledValidationChecks ); - } - - bool operator!=( ValidationFlagsEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eValidationFlagsEXT; - const void* pNext = {}; - uint32_t disabledValidationCheckCount = {}; - const VULKAN_HPP_NAMESPACE::ValidationCheckEXT* pDisabledValidationChecks = {}; - - }; - static_assert( sizeof( ValidationFlagsEXT ) == sizeof( VkValidationFlagsEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ValidationFlagsEXT; - }; - -#ifdef VK_USE_PLATFORM_VI_NN - struct ViSurfaceCreateInfoNN - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eViSurfaceCreateInfoNN; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN(VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ = {}, void* window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR ViSurfaceCreateInfoNN( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - ViSurfaceCreateInfoNN( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - ViSurfaceCreateInfoNN & operator=( VkViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - ViSurfaceCreateInfoNN & operator=( ViSurfaceCreateInfoNN const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( ViSurfaceCreateInfoNN ) ); - return *this; - } - - ViSurfaceCreateInfoNN & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - ViSurfaceCreateInfoNN & setFlags( VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - ViSurfaceCreateInfoNN & setWindow( void* window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkViSurfaceCreateInfoNN const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkViSurfaceCreateInfoNN &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( ViSurfaceCreateInfoNN const& ) const = default; -#else - bool operator==( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( window == rhs.window ); - } - - bool operator!=( ViSurfaceCreateInfoNN const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eViSurfaceCreateInfoNN; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::ViSurfaceCreateFlagsNN flags = {}; - void* window = {}; - - }; - static_assert( sizeof( ViSurfaceCreateInfoNN ) == sizeof( VkViSurfaceCreateInfoNN ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = ViSurfaceCreateInfoNN; - }; -#endif /*VK_USE_PLATFORM_VI_NN*/ - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - struct WaylandSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWaylandSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ = {}, struct wl_display* display_ = {}, struct wl_surface* surface_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), display( display_ ), surface( surface_ ) - {} - - VULKAN_HPP_CONSTEXPR WaylandSurfaceCreateInfoKHR( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WaylandSurfaceCreateInfoKHR( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - WaylandSurfaceCreateInfoKHR & operator=( VkWaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WaylandSurfaceCreateInfoKHR & operator=( WaylandSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( WaylandSurfaceCreateInfoKHR ) ); - return *this; - } - - WaylandSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WaylandSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - WaylandSurfaceCreateInfoKHR & setDisplay( struct wl_display* display_ ) VULKAN_HPP_NOEXCEPT - { - display = display_; - return *this; - } - - WaylandSurfaceCreateInfoKHR & setSurface( struct wl_surface* surface_ ) VULKAN_HPP_NOEXCEPT - { - surface = surface_; - return *this; - } - - - operator VkWaylandSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWaylandSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WaylandSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( display == rhs.display ) - && ( surface == rhs.surface ); - } - - bool operator!=( WaylandSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWaylandSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateFlagsKHR flags = {}; - struct wl_display* display = {}; - struct wl_surface* surface = {}; - - }; - static_assert( sizeof( WaylandSurfaceCreateInfoKHR ) == sizeof( VkWaylandSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WaylandSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32KeyedMutexAcquireReleaseInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, const uint64_t* pAcquireKeys_ = {}, const uint32_t* pAcquireTimeouts_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, const uint64_t* pReleaseKeys_ = {}) VULKAN_HPP_NOEXCEPT - : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeouts( pAcquireTimeouts_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ ) - {} - - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoKHR( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32KeyedMutexAcquireReleaseInfoKHR( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeouts_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ = {} ) - : acquireCount( static_cast( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeouts( acquireTimeouts_.data() ), releaseCount( static_cast( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() ); - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeouts_.size() ); - VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeouts_.size() ); -#else - if ( acquireSyncs_.size() != acquireKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireKeys_.size()" ); - } - if ( acquireSyncs_.size() != acquireTimeouts_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireSyncs_.size() != acquireTimeouts_.size()" ); - } - if ( acquireKeys_.size() != acquireTimeouts_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: acquireKeys_.size() != acquireTimeouts_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() ); -#else - if ( releaseSyncs_.size() != releaseKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoKHR::Win32KeyedMutexAcquireReleaseInfoKHR: releaseSyncs_.size() != releaseKeys_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Win32KeyedMutexAcquireReleaseInfoKHR & operator=( VkWin32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & operator=( Win32KeyedMutexAcquireReleaseInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) ); - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = acquireCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireSyncs = pAcquireSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireSyncs_.size() ); - pAcquireSyncs = acquireSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireKeys = pAcquireKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireKeys_.size() ); - pAcquireKeys = acquireKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setPAcquireTimeouts( const uint32_t* pAcquireTimeouts_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireTimeouts = pAcquireTimeouts_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setAcquireTimeouts( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeouts_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireTimeouts_.size() ); - pAcquireTimeouts = acquireTimeouts_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = releaseCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseSyncs = pReleaseSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseSyncs_.size() ); - pReleaseSyncs = releaseSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoKHR & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseKeys = pReleaseKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoKHR & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseKeys_.size() ); - pReleaseKeys = releaseKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWin32KeyedMutexAcquireReleaseInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWin32KeyedMutexAcquireReleaseInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Win32KeyedMutexAcquireReleaseInfoKHR const& ) const = default; -#else - bool operator==( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( acquireCount == rhs.acquireCount ) - && ( pAcquireSyncs == rhs.pAcquireSyncs ) - && ( pAcquireKeys == rhs.pAcquireKeys ) - && ( pAcquireTimeouts == rhs.pAcquireTimeouts ) - && ( releaseCount == rhs.releaseCount ) - && ( pReleaseSyncs == rhs.pReleaseSyncs ) - && ( pReleaseKeys == rhs.pReleaseKeys ); - } - - bool operator!=( Win32KeyedMutexAcquireReleaseInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoKHR; - const void* pNext = {}; - uint32_t acquireCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {}; - const uint64_t* pAcquireKeys = {}; - const uint32_t* pAcquireTimeouts = {}; - uint32_t releaseCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {}; - const uint64_t* pReleaseKeys = {}; - - }; - static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoKHR ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = Win32KeyedMutexAcquireReleaseInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32KeyedMutexAcquireReleaseInfoNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV(uint32_t acquireCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ = {}, const uint64_t* pAcquireKeys_ = {}, const uint32_t* pAcquireTimeoutMilliseconds_ = {}, uint32_t releaseCount_ = {}, const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ = {}, const uint64_t* pReleaseKeys_ = {}) VULKAN_HPP_NOEXCEPT - : acquireCount( acquireCount_ ), pAcquireSyncs( pAcquireSyncs_ ), pAcquireKeys( pAcquireKeys_ ), pAcquireTimeoutMilliseconds( pAcquireTimeoutMilliseconds_ ), releaseCount( releaseCount_ ), pReleaseSyncs( pReleaseSyncs_ ), pReleaseKeys( pReleaseKeys_ ) - {} - - VULKAN_HPP_CONSTEXPR Win32KeyedMutexAcquireReleaseInfoNV( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32KeyedMutexAcquireReleaseInfoNV( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeoutMilliseconds_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ = {}, VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ = {} ) - : acquireCount( static_cast( acquireSyncs_.size() ) ), pAcquireSyncs( acquireSyncs_.data() ), pAcquireKeys( acquireKeys_.data() ), pAcquireTimeoutMilliseconds( acquireTimeoutMilliseconds_.data() ), releaseCount( static_cast( releaseSyncs_.size() ) ), pReleaseSyncs( releaseSyncs_.data() ), pReleaseKeys( releaseKeys_.data() ) - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireKeys_.size() ); - VULKAN_HPP_ASSERT( acquireSyncs_.size() == acquireTimeoutMilliseconds_.size() ); - VULKAN_HPP_ASSERT( acquireKeys_.size() == acquireTimeoutMilliseconds_.size() ); -#else - if ( acquireSyncs_.size() != acquireKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireKeys_.size()" ); - } - if ( acquireSyncs_.size() != acquireTimeoutMilliseconds_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireSyncs_.size() != acquireTimeoutMilliseconds_.size()" ); - } - if ( acquireKeys_.size() != acquireTimeoutMilliseconds_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: acquireKeys_.size() != acquireTimeoutMilliseconds_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( releaseSyncs_.size() == releaseKeys_.size() ); -#else - if ( releaseSyncs_.size() != releaseKeys_.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Win32KeyedMutexAcquireReleaseInfoNV::Win32KeyedMutexAcquireReleaseInfoNV: releaseSyncs_.size() != releaseKeys_.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Win32KeyedMutexAcquireReleaseInfoNV & operator=( VkWin32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & operator=( Win32KeyedMutexAcquireReleaseInfoNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) ); - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireCount( uint32_t acquireCount_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = acquireCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireSyncs = pAcquireSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireSyncs_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireSyncs_.size() ); - pAcquireSyncs = acquireSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireKeys( const uint64_t* pAcquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireKeys = pAcquireKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireKeys_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireKeys_.size() ); - pAcquireKeys = acquireKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setPAcquireTimeoutMilliseconds( const uint32_t* pAcquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT - { - pAcquireTimeoutMilliseconds = pAcquireTimeoutMilliseconds_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setAcquireTimeoutMilliseconds( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & acquireTimeoutMilliseconds_ ) VULKAN_HPP_NOEXCEPT - { - acquireCount = static_cast( acquireTimeoutMilliseconds_.size() ); - pAcquireTimeoutMilliseconds = acquireTimeoutMilliseconds_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setReleaseCount( uint32_t releaseCount_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = releaseCount_; - return *this; - } - - Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseSyncs( const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseSyncs = pReleaseSyncs_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setReleaseSyncs( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseSyncs_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseSyncs_.size() ); - pReleaseSyncs = releaseSyncs_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - Win32KeyedMutexAcquireReleaseInfoNV & setPReleaseKeys( const uint64_t* pReleaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - pReleaseKeys = pReleaseKeys_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - Win32KeyedMutexAcquireReleaseInfoNV & setReleaseKeys( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & releaseKeys_ ) VULKAN_HPP_NOEXCEPT - { - releaseCount = static_cast( releaseKeys_.size() ); - pReleaseKeys = releaseKeys_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWin32KeyedMutexAcquireReleaseInfoNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWin32KeyedMutexAcquireReleaseInfoNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Win32KeyedMutexAcquireReleaseInfoNV const& ) const = default; -#else - bool operator==( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( acquireCount == rhs.acquireCount ) - && ( pAcquireSyncs == rhs.pAcquireSyncs ) - && ( pAcquireKeys == rhs.pAcquireKeys ) - && ( pAcquireTimeoutMilliseconds == rhs.pAcquireTimeoutMilliseconds ) - && ( releaseCount == rhs.releaseCount ) - && ( pReleaseSyncs == rhs.pReleaseSyncs ) - && ( pReleaseKeys == rhs.pReleaseKeys ); - } - - bool operator!=( Win32KeyedMutexAcquireReleaseInfoNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32KeyedMutexAcquireReleaseInfoNV; - const void* pNext = {}; - uint32_t acquireCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pAcquireSyncs = {}; - const uint64_t* pAcquireKeys = {}; - const uint32_t* pAcquireTimeoutMilliseconds = {}; - uint32_t releaseCount = {}; - const VULKAN_HPP_NAMESPACE::DeviceMemory* pReleaseSyncs = {}; - const uint64_t* pReleaseKeys = {}; - - }; - static_assert( sizeof( Win32KeyedMutexAcquireReleaseInfoNV ) == sizeof( VkWin32KeyedMutexAcquireReleaseInfoNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = Win32KeyedMutexAcquireReleaseInfoNV; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - -#ifdef VK_USE_PLATFORM_WIN32_KHR - struct Win32SurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWin32SurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ = {}, HINSTANCE hinstance_ = {}, HWND hwnd_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), hinstance( hinstance_ ), hwnd( hwnd_ ) - {} - - VULKAN_HPP_CONSTEXPR Win32SurfaceCreateInfoKHR( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - Win32SurfaceCreateInfoKHR( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - Win32SurfaceCreateInfoKHR & operator=( VkWin32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - Win32SurfaceCreateInfoKHR & operator=( Win32SurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( Win32SurfaceCreateInfoKHR ) ); - return *this; - } - - Win32SurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - Win32SurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - Win32SurfaceCreateInfoKHR & setHinstance( HINSTANCE hinstance_ ) VULKAN_HPP_NOEXCEPT - { - hinstance = hinstance_; - return *this; - } - - Win32SurfaceCreateInfoKHR & setHwnd( HWND hwnd_ ) VULKAN_HPP_NOEXCEPT - { - hwnd = hwnd_; - return *this; - } - - - operator VkWin32SurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWin32SurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Win32SurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( hinstance == rhs.hinstance ) - && ( hwnd == rhs.hwnd ); - } - - bool operator!=( Win32SurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWin32SurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::Win32SurfaceCreateFlagsKHR flags = {}; - HINSTANCE hinstance = {}; - HWND hwnd = {}; - - }; - static_assert( sizeof( Win32SurfaceCreateInfoKHR ) == sizeof( VkWin32SurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = Win32SurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - struct WriteDescriptorSetAccelerationStructureKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureKHR( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetAccelerationStructureKHR( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) - : accelerationStructureCount( static_cast( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - WriteDescriptorSetAccelerationStructureKHR & operator=( VkWriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSetAccelerationStructureKHR & operator=( WriteDescriptorSetAccelerationStructureKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( WriteDescriptorSetAccelerationStructureKHR ) ); - return *this; - } - - WriteDescriptorSetAccelerationStructureKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = accelerationStructureCount_; - return *this; - } - - WriteDescriptorSetAccelerationStructureKHR & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - pAccelerationStructures = pAccelerationStructures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureKHR & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = static_cast( accelerationStructures_.size() ); - pAccelerationStructures = accelerationStructures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSetAccelerationStructureKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSetAccelerationStructureKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSetAccelerationStructureKHR const& ) const = default; -#else - bool operator==( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructureCount == rhs.accelerationStructureCount ) - && ( pAccelerationStructures == rhs.pAccelerationStructures ); - } - - bool operator!=( WriteDescriptorSetAccelerationStructureKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureKHR; - const void* pNext = {}; - uint32_t accelerationStructureCount = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures = {}; - - }; - static_assert( sizeof( WriteDescriptorSetAccelerationStructureKHR ) == sizeof( VkWriteDescriptorSetAccelerationStructureKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSetAccelerationStructureKHR; - }; - - struct WriteDescriptorSetAccelerationStructureNV - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetAccelerationStructureNV; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV(uint32_t accelerationStructureCount_ = {}, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ = {}) VULKAN_HPP_NOEXCEPT - : accelerationStructureCount( accelerationStructureCount_ ), pAccelerationStructures( pAccelerationStructures_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSetAccelerationStructureNV( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetAccelerationStructureNV( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureNV( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) - : accelerationStructureCount( static_cast( accelerationStructures_.size() ) ), pAccelerationStructures( accelerationStructures_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - WriteDescriptorSetAccelerationStructureNV & operator=( VkWriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSetAccelerationStructureNV & operator=( WriteDescriptorSetAccelerationStructureNV const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( WriteDescriptorSetAccelerationStructureNV ) ); - return *this; - } - - WriteDescriptorSetAccelerationStructureNV & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSetAccelerationStructureNV & setAccelerationStructureCount( uint32_t accelerationStructureCount_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = accelerationStructureCount_; - return *this; - } - - WriteDescriptorSetAccelerationStructureNV & setPAccelerationStructures( const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - pAccelerationStructures = pAccelerationStructures_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - WriteDescriptorSetAccelerationStructureNV & setAccelerationStructures( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & accelerationStructures_ ) VULKAN_HPP_NOEXCEPT - { - accelerationStructureCount = static_cast( accelerationStructures_.size() ); - pAccelerationStructures = accelerationStructures_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSetAccelerationStructureNV const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSetAccelerationStructureNV &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSetAccelerationStructureNV const& ) const = default; -#else - bool operator==( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( accelerationStructureCount == rhs.accelerationStructureCount ) - && ( pAccelerationStructures == rhs.pAccelerationStructures ); - } - - bool operator!=( WriteDescriptorSetAccelerationStructureNV const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetAccelerationStructureNV; - const void* pNext = {}; - uint32_t accelerationStructureCount = {}; - const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures = {}; - - }; - static_assert( sizeof( WriteDescriptorSetAccelerationStructureNV ) == sizeof( VkWriteDescriptorSetAccelerationStructureNV ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSetAccelerationStructureNV; - }; - - struct WriteDescriptorSetInlineUniformBlockEXT - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT(uint32_t dataSize_ = {}, const void* pData_ = {}) VULKAN_HPP_NOEXCEPT - : dataSize( dataSize_ ), pData( pData_ ) - {} - - VULKAN_HPP_CONSTEXPR WriteDescriptorSetInlineUniformBlockEXT( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - WriteDescriptorSetInlineUniformBlockEXT( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - WriteDescriptorSetInlineUniformBlockEXT( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) - : dataSize( static_cast( data_.size() * sizeof(T) ) ), pData( data_.data() ) - {} -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - WriteDescriptorSetInlineUniformBlockEXT & operator=( VkWriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - WriteDescriptorSetInlineUniformBlockEXT & operator=( WriteDescriptorSetInlineUniformBlockEXT const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( WriteDescriptorSetInlineUniformBlockEXT ) ); - return *this; - } - - WriteDescriptorSetInlineUniformBlockEXT & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - WriteDescriptorSetInlineUniformBlockEXT & setDataSize( uint32_t dataSize_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = dataSize_; - return *this; - } - - WriteDescriptorSetInlineUniformBlockEXT & setPData( const void* pData_ ) VULKAN_HPP_NOEXCEPT - { - pData = pData_; - return *this; - } - -#if !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - template - WriteDescriptorSetInlineUniformBlockEXT & setData( VULKAN_HPP_NAMESPACE::ArrayProxyNoTemporaries const & data_ ) VULKAN_HPP_NOEXCEPT - { - dataSize = static_cast( data_.size() * sizeof(T) ); - pData = data_.data(); - return *this; - } -#endif // !defined(VULKAN_HPP_DISABLE_ENHANCED_MODE) - - - operator VkWriteDescriptorSetInlineUniformBlockEXT const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkWriteDescriptorSetInlineUniformBlockEXT &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( WriteDescriptorSetInlineUniformBlockEXT const& ) const = default; -#else - bool operator==( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( dataSize == rhs.dataSize ) - && ( pData == rhs.pData ); - } - - bool operator!=( WriteDescriptorSetInlineUniformBlockEXT const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eWriteDescriptorSetInlineUniformBlockEXT; - const void* pNext = {}; - uint32_t dataSize = {}; - const void* pData = {}; - - }; - static_assert( sizeof( WriteDescriptorSetInlineUniformBlockEXT ) == sizeof( VkWriteDescriptorSetInlineUniformBlockEXT ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = WriteDescriptorSetInlineUniformBlockEXT; - }; - -#ifdef VK_USE_PLATFORM_XCB_KHR - struct XcbSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXcbSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ = {}, xcb_connection_t* connection_ = {}, xcb_window_t window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), connection( connection_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR XcbSurfaceCreateInfoKHR( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XcbSurfaceCreateInfoKHR( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - XcbSurfaceCreateInfoKHR & operator=( VkXcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - XcbSurfaceCreateInfoKHR & operator=( XcbSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( XcbSurfaceCreateInfoKHR ) ); - return *this; - } - - XcbSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - XcbSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - XcbSurfaceCreateInfoKHR & setConnection( xcb_connection_t* connection_ ) VULKAN_HPP_NOEXCEPT - { - connection = connection_; - return *this; - } - - XcbSurfaceCreateInfoKHR & setWindow( xcb_window_t window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkXcbSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkXcbSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( XcbSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( connection == rhs.connection ) - && ( memcmp( &window, &rhs.window, sizeof( xcb_window_t ) ) == 0 ); - } - - bool operator!=( XcbSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXcbSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XcbSurfaceCreateFlagsKHR flags = {}; - xcb_connection_t* connection = {}; - xcb_window_t window = {}; - - }; - static_assert( sizeof( XcbSurfaceCreateInfoKHR ) == sizeof( VkXcbSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = XcbSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - -#ifdef VK_USE_PLATFORM_XLIB_KHR - struct XlibSurfaceCreateInfoKHR - { - static const bool allowDuplicate = false; - static VULKAN_HPP_CONST_OR_CONSTEXPR StructureType structureType = StructureType::eXlibSurfaceCreateInfoKHR; - -#if !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR(VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ = {}, Display* dpy_ = {}, Window window_ = {}) VULKAN_HPP_NOEXCEPT - : flags( flags_ ), dpy( dpy_ ), window( window_ ) - {} - - VULKAN_HPP_CONSTEXPR XlibSurfaceCreateInfoKHR( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT = default; - - XlibSurfaceCreateInfoKHR( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = rhs; - } -#endif // !defined( VULKAN_HPP_NO_STRUCT_CONSTRUCTORS ) - - XlibSurfaceCreateInfoKHR & operator=( VkXlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - *this = *reinterpret_cast( &rhs ); - return *this; - } - - XlibSurfaceCreateInfoKHR & operator=( XlibSurfaceCreateInfoKHR const & rhs ) VULKAN_HPP_NOEXCEPT - { - memcpy( static_cast( this ), &rhs, sizeof( XlibSurfaceCreateInfoKHR ) ); - return *this; - } - - XlibSurfaceCreateInfoKHR & setPNext( const void* pNext_ ) VULKAN_HPP_NOEXCEPT - { - pNext = pNext_; - return *this; - } - - XlibSurfaceCreateInfoKHR & setFlags( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags_ ) VULKAN_HPP_NOEXCEPT - { - flags = flags_; - return *this; - } - - XlibSurfaceCreateInfoKHR & setDpy( Display* dpy_ ) VULKAN_HPP_NOEXCEPT - { - dpy = dpy_; - return *this; - } - - XlibSurfaceCreateInfoKHR & setWindow( Window window_ ) VULKAN_HPP_NOEXCEPT - { - window = window_; - return *this; - } - - - operator VkXlibSurfaceCreateInfoKHR const&() const VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - operator VkXlibSurfaceCreateInfoKHR &() VULKAN_HPP_NOEXCEPT - { - return *reinterpret_cast( this ); - } - - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( XlibSurfaceCreateInfoKHR const& ) const = default; -#else - bool operator==( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return ( sType == rhs.sType ) - && ( pNext == rhs.pNext ) - && ( flags == rhs.flags ) - && ( dpy == rhs.dpy ) - && ( memcmp( &window, &rhs.window, sizeof( Window ) ) == 0 ); - } - - bool operator!=( XlibSurfaceCreateInfoKHR const& rhs ) const VULKAN_HPP_NOEXCEPT - { - return !operator==( rhs ); - } -#endif - - - - public: - const VULKAN_HPP_NAMESPACE::StructureType sType = StructureType::eXlibSurfaceCreateInfoKHR; - const void* pNext = {}; - VULKAN_HPP_NAMESPACE::XlibSurfaceCreateFlagsKHR flags = {}; - Display* dpy = {}; - Window window = {}; - - }; - static_assert( sizeof( XlibSurfaceCreateInfoKHR ) == sizeof( VkXlibSurfaceCreateInfoKHR ), "struct and wrapper have different size!" ); - static_assert( std::is_standard_layout::value, "struct wrapper is not a standard layout!" ); - - template <> - struct CppType - { - using Type = XlibSurfaceCreateInfoKHR; - }; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - class DebugReportCallbackEXT - { - public: - using CType = VkDebugReportCallbackEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugReportCallbackEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eDebugReportCallbackEXT; - - public: - VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT() VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DebugReportCallbackEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DebugReportCallbackEXT( VkDebugReportCallbackEXT debugReportCallbackEXT ) VULKAN_HPP_NOEXCEPT - : m_debugReportCallbackEXT( debugReportCallbackEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DebugReportCallbackEXT & operator=(VkDebugReportCallbackEXT debugReportCallbackEXT) VULKAN_HPP_NOEXCEPT - { - m_debugReportCallbackEXT = debugReportCallbackEXT; - return *this; - } -#endif - - DebugReportCallbackEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_debugReportCallbackEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugReportCallbackEXT const& ) const = default; -#else - bool operator==( DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT == rhs.m_debugReportCallbackEXT; - } - - bool operator!=(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT != rhs.m_debugReportCallbackEXT; - } - - bool operator<(DebugReportCallbackEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT < rhs.m_debugReportCallbackEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugReportCallbackEXT() const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_debugReportCallbackEXT == VK_NULL_HANDLE; - } - - private: - VkDebugReportCallbackEXT m_debugReportCallbackEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT ) == sizeof( VkDebugReportCallbackEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - - class DebugUtilsMessengerEXT - { - public: - using CType = VkDebugUtilsMessengerEXT; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eDebugUtilsMessengerEXT; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eUnknown; - - public: - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT() VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR DebugUtilsMessengerEXT( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT DebugUtilsMessengerEXT( VkDebugUtilsMessengerEXT debugUtilsMessengerEXT ) VULKAN_HPP_NOEXCEPT - : m_debugUtilsMessengerEXT( debugUtilsMessengerEXT ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - DebugUtilsMessengerEXT & operator=(VkDebugUtilsMessengerEXT debugUtilsMessengerEXT) VULKAN_HPP_NOEXCEPT - { - m_debugUtilsMessengerEXT = debugUtilsMessengerEXT; - return *this; - } -#endif - - DebugUtilsMessengerEXT & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_debugUtilsMessengerEXT = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( DebugUtilsMessengerEXT const& ) const = default; -#else - bool operator==( DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT == rhs.m_debugUtilsMessengerEXT; - } - - bool operator!=(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT != rhs.m_debugUtilsMessengerEXT; - } - - bool operator<(DebugUtilsMessengerEXT const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT < rhs.m_debugUtilsMessengerEXT; - } -#endif - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkDebugUtilsMessengerEXT() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_debugUtilsMessengerEXT == VK_NULL_HANDLE; - } - - private: - VkDebugUtilsMessengerEXT m_debugUtilsMessengerEXT; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT ) == sizeof( VkDebugUtilsMessengerEXT ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT; - }; - - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - class Instance; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDebugReportCallbackEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueDebugUtilsMessengerEXT = UniqueHandle; - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueSurfaceKHR = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - class Instance - { - public: - using CType = VkInstance; - - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::ObjectType objectType = VULKAN_HPP_NAMESPACE::ObjectType::eInstance; - static VULKAN_HPP_CONST_OR_CONSTEXPR VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT debugReportObjectType = VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT::eInstance; - - public: - VULKAN_HPP_CONSTEXPR Instance() VULKAN_HPP_NOEXCEPT - : m_instance(VK_NULL_HANDLE) - {} - - VULKAN_HPP_CONSTEXPR Instance( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - : m_instance(VK_NULL_HANDLE) - {} - - VULKAN_HPP_TYPESAFE_EXPLICIT Instance( VkInstance instance ) VULKAN_HPP_NOEXCEPT - : m_instance( instance ) - {} - -#if defined(VULKAN_HPP_TYPESAFE_CONVERSION) - Instance & operator=(VkInstance instance) VULKAN_HPP_NOEXCEPT - { - m_instance = instance; - return *this; - } -#endif - - Instance & operator=( std::nullptr_t ) VULKAN_HPP_NOEXCEPT - { - m_instance = VK_NULL_HANDLE; - return *this; - } - -#if defined(VULKAN_HPP_HAS_SPACESHIP_OPERATOR) - auto operator<=>( Instance const& ) const = default; -#else - bool operator==( Instance const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_instance == rhs.m_instance; - } - - bool operator!=(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_instance != rhs.m_instance; - } - - bool operator<(Instance const & rhs ) const VULKAN_HPP_NOEXCEPT - { - return m_instance < rhs.m_instance; - } -#endif - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD Result createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD Result createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - VULKAN_HPP_NODISCARD Result createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD Result createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_IOS_MVK - template - VULKAN_HPP_NODISCARD Result createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_FUCHSIA - template - VULKAN_HPP_NODISCARD Result createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - -#ifdef VK_USE_PLATFORM_MACOS_MVK - template - VULKAN_HPP_NODISCARD Result createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_METAL_EXT - template - VULKAN_HPP_NODISCARD Result createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - -#ifdef VK_USE_PLATFORM_GGP - template - VULKAN_HPP_NODISCARD Result createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_GGP*/ - - -#ifdef VK_USE_PLATFORM_VI_NN - template - VULKAN_HPP_NODISCARD Result createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_VI_NN*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_NODISCARD Result createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD Result createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_NODISCARD Result createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_NODISCARD Result createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - - template - void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface VULKAN_HPP_DEFAULT_ARGUMENT_ASSIGNMENT, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroups( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD Result enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroupsKHR( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceGroupPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDevices( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = PhysicalDeviceAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - PFN_vkVoidFunction getProcAddr( const char* pName, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - PFN_vkVoidFunction getProcAddr( const std::string & name, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - void submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) const VULKAN_HPP_NOEXCEPT; -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - VULKAN_HPP_TYPESAFE_EXPLICIT operator VkInstance() const VULKAN_HPP_NOEXCEPT - { - return m_instance; - } - - explicit operator bool() const VULKAN_HPP_NOEXCEPT - { - return m_instance != VK_NULL_HANDLE; - } - - bool operator!() const VULKAN_HPP_NOEXCEPT - { - return m_instance == VK_NULL_HANDLE; - } - - private: - VkInstance m_instance; - }; - static_assert( sizeof( VULKAN_HPP_NAMESPACE::Instance ) == sizeof( VkInstance ), "handle and wrapper have different size!" ); - - template <> - struct VULKAN_HPP_DEPRECATED("vk::cpp_type is deprecated. Use vk::CppType instead.") cpp_type - { - using type = VULKAN_HPP_NAMESPACE::Instance; - }; - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Instance; - }; - - - template <> - struct CppType - { - using Type = VULKAN_HPP_NAMESPACE::Instance; - }; - - - template <> - struct isVulkanHandleType - { - static VULKAN_HPP_CONST_OR_CONSTEXPR bool value = true; - }; - -#ifndef VULKAN_HPP_NO_SMART_HANDLE - template class UniqueHandleTraits { public: using deleter = ObjectDestroy; }; - using UniqueInstance = UniqueHandle; -#endif /*VULKAN_HPP_NO_SMART_HANDLE*/ - - - template - VULKAN_HPP_NODISCARD Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS typename ResultValueType::type createInstance( const InstanceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional allocator VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName VULKAN_HPP_DEFAULT_ARGUMENT_NULLPTR_ASSIGNMENT, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = ExtensionPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceLayerProperties( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); - template , typename Dispatch = VULKAN_HPP_DEFAULT_DISPATCHER_TYPE, typename B = LayerPropertiesAllocator, typename std::enable_if::value, int>::type = 0> - VULKAN_HPP_NODISCARD typename ResultValueType>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ) VULKAN_HPP_NOEXCEPT; -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - typename ResultValueType::type enumerateInstanceVersion( Dispatch const & d VULKAN_HPP_DEFAULT_DISPATCHER_ASSIGNMENT ); -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Instance* pInstance, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateInstance( reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkInstance *>( pInstance ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type createInstance( const InstanceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) - { - VULKAN_HPP_NAMESPACE::Instance instance; - Result result = static_cast( d.vkCreateInstance( reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &instance ) ) ); - return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstance" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type createInstanceUnique( const InstanceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) - { - VULKAN_HPP_NAMESPACE::Instance instance; - Result result = static_cast( d.vkCreateInstance( reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &instance ) ) ); - ObjectDestroy deleter( allocator, d ); - return createResultValue( result, instance, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, Dispatch const & d ) - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d ) - { - std::vector properties( extensionPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceExtensionProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceLayerProperties( Dispatch const & d ) - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) - { - std::vector properties( layerPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::enumerateInstanceLayerProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t* pApiVersion, Dispatch const & d ) VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateInstanceVersion( pApiVersion ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type enumerateInstanceVersion( Dispatch const & d ) - { - uint32_t apiVersion; - Result result = static_cast( d.vkEnumerateInstanceVersion( &apiVersion ) ); - return createResultValue( result, apiVersion, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo* pBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( pBeginInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::begin( const CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast( &beginInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast( pConditionalRenderingBegin ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast( &conditionalRenderingBegin ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQuery( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, VULKAN_HPP_NAMESPACE::QueryControlFlags flags, uint32_t index, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, static_cast( flags ), index ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), static_cast( contents ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const RenderPassBeginInfo & renderPassBegin, VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast( &renderPassBegin ), static_cast( contents ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), reinterpret_cast( pSubpassBeginInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2( m_commandBuffer, reinterpret_cast( &renderPassBegin ), reinterpret_cast( &subpassBeginInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo* pRenderPassBegin, const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast( pRenderPassBegin ), reinterpret_cast( pSubpassBeginInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const RenderPassBeginInfo & renderPassBegin, const SubpassBeginInfo & subpassBeginInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginRenderPass2KHR( m_commandBuffer, reinterpret_cast( &renderPassBegin ), reinterpret_cast( &subpassBeginInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast( pCounterBuffers ), reinterpret_cast( pCounterBufferOffsets ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); -#else - if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSetCount, reinterpret_cast( pDescriptorSets ), dynamicOffsetCount, pDynamicOffsets ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t firstSet, ArrayProxy const & descriptorSets, ArrayProxy const & dynamicOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindDescriptorSets( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), firstSet, descriptorSets.size(), reinterpret_cast( descriptorSets.data() ), dynamicOffsets.size(), dynamicOffsets.data() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::IndexType indexType, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindIndexBuffer( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( indexType ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindPipeline( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t groupIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindPipelineShaderGroupNV( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( pipeline ), groupIndex ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindShadingRateImageNV( m_commandBuffer, static_cast( imageView ), static_cast( imageLayout ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ), reinterpret_cast( pSizes ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); - VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); -#else - if ( buffers.size() != offsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" ); - } - if ( !sizes.empty() && buffers.size() != sizes.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ), reinterpret_cast( sizes.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); -#else - if ( buffers.size() != offsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBindVertexBuffers( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, uint32_t bindingCount, const VULKAN_HPP_NAMESPACE::Buffer* pBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pOffsets, const VULKAN_HPP_NAMESPACE::DeviceSize* pSizes, const VULKAN_HPP_NAMESPACE::DeviceSize* pStrides, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, firstBinding, bindingCount, reinterpret_cast( pBuffers ), reinterpret_cast( pOffsets ), reinterpret_cast( pSizes ), reinterpret_cast( pStrides ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t firstBinding, ArrayProxy const & buffers, ArrayProxy const & offsets, ArrayProxy const & sizes, ArrayProxy const & strides, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( buffers.size() == offsets.size() ); - VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() ); - VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() ); -#else - if ( buffers.size() != offsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" ); - } - if ( !sizes.empty() && buffers.size() != sizes.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" ); - } - if ( !strides.empty() && buffers.size() != strides.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBindVertexBuffers2EXT( m_commandBuffer, firstBinding, buffers.size(), reinterpret_cast( buffers.data() ), reinterpret_cast( offsets.data() ), reinterpret_cast( sizes.data() ), reinterpret_cast( strides.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageBlit* pRegions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ), static_cast( filter ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, VULKAN_HPP_NAMESPACE::Filter filter, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ), static_cast( filter ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2KHR* pBlitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast( pBlitImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const BlitImageInfo2KHR & blitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast( &blitImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV* pInfo, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast( pInfo ), static_cast( instanceData ), static_cast( instanceOffset ), static_cast( update ), static_cast( dst ), static_cast( src ), static_cast( scratch ), static_cast( scratchOffset ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const AccelerationStructureInfoNV & info, VULKAN_HPP_NAMESPACE::Buffer instanceData, VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset, VULKAN_HPP_NAMESPACE::Bool32 update, VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::Buffer scratch, VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructureNV( m_commandBuffer, reinterpret_cast( &info ), static_cast( instanceData ), static_cast( instanceOffset ), static_cast( update ), static_cast( dst ), static_cast( src ), static_cast( scratch ), static_cast( scratchOffset ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::DeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const * ppMaxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructuresIndirectKHR( m_commandBuffer, infoCount, reinterpret_cast( pInfos ), reinterpret_cast( pIndirectDeviceAddresses ), pIndirectStrides, ppMaxPrimitiveCounts ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( ArrayProxy const & infos, ArrayProxy const & indirectDeviceAddresses, ArrayProxy const & indirectStrides, ArrayProxy const & pMaxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() ); - VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() ); - VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() ); -#else - if ( infos.size() != indirectDeviceAddresses.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()" ); - } - if ( infos.size() != indirectStrides.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()" ); - } - if ( infos.size() != pMaxPrimitiveCounts.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBuildAccelerationStructuresIndirectKHR( m_commandBuffer, infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( indirectDeviceAddresses.data() ), indirectStrides.data(), pMaxPrimitiveCounts.data() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdBuildAccelerationStructuresKHR( m_commandBuffer, infoCount, reinterpret_cast( pInfos ), reinterpret_cast( ppBuildRangeInfos ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR( ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); -#else - if ( infos.size() != pBuildRangeInfos.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdBuildAccelerationStructuresKHR( m_commandBuffer, infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( pBuildRangeInfos.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t attachmentCount, const VULKAN_HPP_NAMESPACE::ClearAttachment* pAttachments, uint32_t rectCount, const VULKAN_HPP_NAMESPACE::ClearRect* pRects, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearAttachments( m_commandBuffer, attachmentCount, reinterpret_cast( pAttachments ), rectCount, reinterpret_cast( pRects ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( ArrayProxy const & attachments, ArrayProxy const & rects, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearAttachments( m_commandBuffer, attachments.size(), reinterpret_cast( attachments.data() ), rects.size(), reinterpret_cast( rects.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearColorValue* pColor, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pColor ), rangeCount, reinterpret_cast( pRanges ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearColorValue & color, ArrayProxy const & ranges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearColorImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &color ), ranges.size(), reinterpret_cast( ranges.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VULKAN_HPP_NAMESPACE::ImageSubresourceRange* pRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( pDepthStencil ), rangeCount, reinterpret_cast( pRanges ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageLayout imageLayout, const ClearDepthStencilValue & depthStencil, ArrayProxy const & ranges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdClearDepthStencilImage( m_commandBuffer, static_cast( image ), static_cast( imageLayout ), reinterpret_cast( &depthStencil ), ranges.size(), reinterpret_cast( ranges.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst, VULKAN_HPP_NAMESPACE::AccelerationStructureNV src, VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureNV( m_commandBuffer, static_cast( dst ), static_cast( src ), static_cast( mode ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstBuffer ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2KHR* pCopyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast( pCopyBufferInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const CopyBufferInfo2KHR & copyBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast( ©BufferInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer srcBuffer, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage( m_commandBuffer, static_cast( srcBuffer ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2KHR* pCopyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast( pCopyBufferToImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const CopyBufferToImageInfo2KHR & copyBufferToImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast( ©BufferToImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2KHR* pCopyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast( pCopyImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const CopyImageInfo2KHR & copyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast( ©ImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::BufferImageCopy* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstBuffer ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2KHR* pCopyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast( pCopyImageToBufferInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const CopyImageToBufferInfo2KHR & copyImageToBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast( ©ImageToBufferInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdCopyQueryPoolResults( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( stride ), static_cast( flags ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerEndEXT( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const DebugMarkerMarkerInfoEXT & markerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast( &markerInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatch( m_commandBuffer, groupCountX, groupCountY, groupCountZ ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBase( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchBaseKHR( m_commandBuffer, baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDispatchIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::draw( uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDraw( m_commandBuffer, vertexCount, instanceCount, firstVertex, firstInstance ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexed( m_commandBuffer, indexCount, instanceCount, firstIndex, vertexOffset, firstInstance ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndexedIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirect( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t instanceCount, uint32_t firstInstance, VULKAN_HPP_NAMESPACE::Buffer counterBuffer, VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectByteCountEXT( m_commandBuffer, instanceCount, firstInstance, static_cast( counterBuffer ), static_cast( counterBufferOffset ), counterOffset, vertexStride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCount( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountAMD( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawIndirectCountKHR( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::Buffer countBuffer, VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectCountNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), static_cast( countBuffer ), static_cast( countBufferOffset ), maxDrawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceSize offset, uint32_t drawCount, uint32_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksIndirectNV( m_commandBuffer, static_cast( buffer ), static_cast( offset ), drawCount, stride ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdDrawMeshTasksNV( m_commandBuffer, taskCount, firstTask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndConditionalRenderingEXT( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndDebugUtilsLabelEXT( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQuery( m_commandBuffer, static_cast( queryPool ), query ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndQueryIndexedEXT( m_commandBuffer, static_cast( queryPool ), query, index ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass( m_commandBuffer ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VULKAN_HPP_NAMESPACE::Buffer* pCounterBuffers, const VULKAN_HPP_NAMESPACE::DeviceSize* pCounterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBufferCount, reinterpret_cast( pCounterBuffers ), reinterpret_cast( pCounterBufferOffsets ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t firstCounterBuffer, ArrayProxy const & counterBuffers, ArrayProxy const & counterBufferOffsets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() ); -#else - if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkCmdEndTransformFeedbackEXT( m_commandBuffer, firstCounterBuffer, counterBuffers.size(), reinterpret_cast( counterBuffers.data() ), reinterpret_cast( counterBufferOffsets.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteCommands( m_commandBuffer, commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::executeCommands( ArrayProxy const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast( isPreprocessed ), reinterpret_cast( pGeneratedCommandsInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed, const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdExecuteGeneratedCommandsNV( m_commandBuffer, static_cast( isPreprocessed ), reinterpret_cast( &generatedCommandsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize size, uint32_t data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdFillBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( size ), data ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass( m_commandBuffer, static_cast( contents ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast( pSubpassBeginInfo ), reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2( m_commandBuffer, reinterpret_cast( &subpassBeginInfo ), reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo* pSubpassBeginInfo, const VULKAN_HPP_NAMESPACE::SubpassEndInfo* pSubpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast( pSubpassBeginInfo ), reinterpret_cast( pSubpassEndInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const SubpassBeginInfo & subpassBeginInfo, const SubpassEndInfo & subpassEndInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdNextSubpass2KHR( m_commandBuffer, reinterpret_cast( &subpassBeginInfo ), reinterpret_cast( &subpassEndInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPipelineBarrier( m_commandBuffer, static_cast( srcStageMask ), static_cast( dstStageMask ), static_cast( dependencyFlags ), memoryBarriers.size(), reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast( imageMemoryBarriers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV* pGeneratedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast( pGeneratedCommandsInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const GeneratedCommandsInfoNV & generatedCommandsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast( &generatedCommandsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, size, pValues ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout layout, VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags, uint32_t offset, ArrayProxy const & values, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushConstants( m_commandBuffer, static_cast( layout ), static_cast( stageFlags ), offset, values.size() * sizeof( T ), reinterpret_cast( values.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), set, descriptorWriteCount, reinterpret_cast( pDescriptorWrites ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, ArrayProxy const & descriptorWrites, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetKHR( m_commandBuffer, static_cast( pipelineBindPoint ), static_cast( layout ), set, descriptorWrites.size(), reinterpret_cast( descriptorWrites.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE::PipelineLayout layout, uint32_t set, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer, static_cast( descriptorUpdateTemplate ), static_cast( layout ), set, pData ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResetQueryPool( m_commandBuffer, static_cast( queryPool ), firstQuery, queryCount ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, uint32_t regionCount, const VULKAN_HPP_NAMESPACE::ImageResolve* pRegions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regionCount, reinterpret_cast( pRegions ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image srcImage, VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout, VULKAN_HPP_NAMESPACE::Image dstImage, VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout, ArrayProxy const & regions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage( m_commandBuffer, static_cast( srcImage ), static_cast( srcImageLayout ), static_cast( dstImage ), static_cast( dstImageLayout ), regions.size(), reinterpret_cast( regions.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2KHR* pResolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast( pResolveImageInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const ResolveImageInfo2KHR & resolveImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast( &resolveImageInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetBlendConstants( m_commandBuffer, blendConstants ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void* pCheckpointMarker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCheckpointNV( m_commandBuffer, pCheckpointMarker ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV* pCustomSampleOrders, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast( sampleOrderType ), customSampleOrderCount, reinterpret_cast( pCustomSampleOrders ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType, ArrayProxy const & customSampleOrders, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer, static_cast( sampleOrderType ), customSampleOrders.size(), reinterpret_cast( customSampleOrders.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetCullModeEXT( m_commandBuffer, static_cast( cullMode ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBias( m_commandBuffer, depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBounds( m_commandBuffer, minDepthBounds, maxDepthBounds ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthBoundsTestEnableEXT( m_commandBuffer, static_cast( depthBoundsTestEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthCompareOpEXT( m_commandBuffer, static_cast( depthCompareOp ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthTestEnableEXT( m_commandBuffer, static_cast( depthTestEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDepthWriteEnableEXT( m_commandBuffer, static_cast( depthWriteEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDeviceMask( m_commandBuffer, deviceMask ); - } - - template - VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDeviceMaskKHR( m_commandBuffer, deviceMask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VULKAN_HPP_NAMESPACE::Rect2D* pDiscardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangleCount, reinterpret_cast( pDiscardRectangles ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle, ArrayProxy const & discardRectangles, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetDiscardRectangleEXT( m_commandBuffer, firstDiscardRectangle, discardRectangles.size(), reinterpret_cast( discardRectangles.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event event, VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetEvent( m_commandBuffer, static_cast( event ), static_cast( stageMask ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pExclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast( pExclusiveScissors ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor, ArrayProxy const & exclusiveScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetExclusiveScissorNV( m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast( exclusiveScissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFragmentShadingRateEnumNV( m_commandBuffer, static_cast( shadingRate ), reinterpret_cast( combinerOps ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D* pFragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast( pFragmentSize ), reinterpret_cast( combinerOps ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const Extent2D & fragmentSize, const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFragmentShadingRateKHR( m_commandBuffer, reinterpret_cast( &fragmentSize ), reinterpret_cast( combinerOps ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetFrontFaceEXT( m_commandBuffer, static_cast( frontFace ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineStippleEXT( m_commandBuffer, lineStippleFactor, lineStipplePattern ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetLineWidth( m_commandBuffer, lineWidth ); - } - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceMarkerINTEL( const PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL* pOverrideInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast( pOverrideInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceOverrideINTEL( const PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast( &overrideInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL* pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast( pMarkerInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::setPerformanceStreamMarkerINTEL( const PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast( &markerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetPrimitiveTopologyEXT( m_commandBuffer, static_cast( primitiveTopology ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetRayTracingPipelineStackSizeKHR( m_commandBuffer, pipelineStackSize ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT* pSampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast( pSampleLocationsInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const SampleLocationsInfoEXT & sampleLocationsInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast( &sampleLocationsInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissorCount, reinterpret_cast( pScissors ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t firstScissor, ArrayProxy const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast( scissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D* pScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissorCount, reinterpret_cast( pScissors ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( ArrayProxy const & scissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissors.size(), reinterpret_cast( scissors.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilCompareMask( m_commandBuffer, static_cast( faceMask ), compareMask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, VULKAN_HPP_NAMESPACE::StencilOp failOp, VULKAN_HPP_NAMESPACE::StencilOp passOp, VULKAN_HPP_NAMESPACE::StencilOp depthFailOp, VULKAN_HPP_NAMESPACE::CompareOp compareOp, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilOpEXT( m_commandBuffer, static_cast( faceMask ), static_cast( failOp ), static_cast( passOp ), static_cast( depthFailOp ), static_cast( compareOp ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilReference( m_commandBuffer, static_cast( faceMask ), reference ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilTestEnableEXT( m_commandBuffer, static_cast( stencilTestEnable ) ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetStencilWriteMask( m_commandBuffer, static_cast( faceMask ), writeMask ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewports ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t firstViewport, ArrayProxy const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast( viewports.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV* pShadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pShadingRatePalettes ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t firstViewport, ArrayProxy const & shadingRatePalettes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportShadingRatePaletteNV( m_commandBuffer, firstViewport, shadingRatePalettes.size(), reinterpret_cast( shadingRatePalettes.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::ViewportWScalingNV* pViewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportCount, reinterpret_cast( pViewportWScalings ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t firstViewport, ArrayProxy const & viewportWScalings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWScalingNV( m_commandBuffer, firstViewport, viewportWScalings.size(), reinterpret_cast( viewportWScalings.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t viewportCount, const VULKAN_HPP_NAMESPACE::Viewport* pViewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewportCount, reinterpret_cast( pViewports ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( ArrayProxy const & viewports, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewports.size(), reinterpret_cast( viewports.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast( pRaygenShaderBindingTable ), reinterpret_cast( pMissShaderBindingTable ), reinterpret_cast( pHitShaderBindingTable ), reinterpret_cast( pCallableShaderBindingTable ), static_cast( indirectDeviceAddress ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysIndirectKHR( m_commandBuffer, reinterpret_cast( &raygenShaderBindingTable ), reinterpret_cast( &missShaderBindingTable ), reinterpret_cast( &hitShaderBindingTable ), reinterpret_cast( &callableShaderBindingTable ), static_cast( indirectDeviceAddress ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast( pRaygenShaderBindingTable ), reinterpret_cast( pMissShaderBindingTable ), reinterpret_cast( pHitShaderBindingTable ), reinterpret_cast( pCallableShaderBindingTable ), width, height, depth ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const StridedDeviceAddressRegionKHR & raygenShaderBindingTable, const StridedDeviceAddressRegionKHR & missShaderBindingTable, const StridedDeviceAddressRegionKHR & hitShaderBindingTable, const StridedDeviceAddressRegionKHR & callableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysKHR( m_commandBuffer, reinterpret_cast( &raygenShaderBindingTable ), reinterpret_cast( &missShaderBindingTable ), reinterpret_cast( &hitShaderBindingTable ), reinterpret_cast( &callableShaderBindingTable ), width, height, depth ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset, VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride, VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset, VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdTraceRaysNV( m_commandBuffer, static_cast( raygenShaderBindingTableBuffer ), static_cast( raygenShaderBindingOffset ), static_cast( missShaderBindingTableBuffer ), static_cast( missShaderBindingOffset ), static_cast( missShaderBindingStride ), static_cast( hitShaderBindingTableBuffer ), static_cast( hitShaderBindingOffset ), static_cast( hitShaderBindingStride ), static_cast( callableShaderBindingTableBuffer ), static_cast( callableShaderBindingOffset ), static_cast( callableShaderBindingStride ), width, height, depth ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, VULKAN_HPP_NAMESPACE::DeviceSize dataSize, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), static_cast( dataSize ), pData ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, ArrayProxy const & data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdUpdateBuffer( m_commandBuffer, static_cast( dstBuffer ), static_cast( dstOffset ), data.size() * sizeof( T ), reinterpret_cast( data.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents( uint32_t eventCount, const VULKAN_HPP_NAMESPACE::Event* pEvents, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VULKAN_HPP_NAMESPACE::MemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier* pImageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWaitEvents( m_commandBuffer, eventCount, reinterpret_cast( pEvents ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarrierCount, reinterpret_cast( pMemoryBarriers ), bufferMemoryBarrierCount, reinterpret_cast( pBufferMemoryBarriers ), imageMemoryBarrierCount, reinterpret_cast( pImageMemoryBarriers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::waitEvents( ArrayProxy const & events, VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask, VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask, ArrayProxy const & memoryBarriers, ArrayProxy const & bufferMemoryBarriers, ArrayProxy const & imageMemoryBarriers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWaitEvents( m_commandBuffer, events.size(), reinterpret_cast( events.data() ), static_cast( srcStageMask ), static_cast( dstStageMask ), memoryBarriers.size(), reinterpret_cast( memoryBarriers.data() ), bufferMemoryBarriers.size(), reinterpret_cast( bufferMemoryBarriers.data() ), imageMemoryBarriers.size(), reinterpret_cast( imageMemoryBarriers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructureCount, reinterpret_cast( pAccelerationStructures ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructureCount, reinterpret_cast( pAccelerationStructures ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), static_cast( queryPool ), firstQuery ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::Buffer dstBuffer, VULKAN_HPP_NAMESPACE::DeviceSize dstOffset, uint32_t marker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteBufferMarkerAMD( m_commandBuffer, static_cast( pipelineStage ), static_cast( dstBuffer ), static_cast( dstOffset ), marker ); - } - - - template - VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage, VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkCmdWriteTimestamp( m_commandBuffer, static_cast( pipelineStage ), static_cast( queryPool ), query ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::end( Dispatch const & d ) const - { - Result result = static_cast( d.vkEndCommandBuffer( m_commandBuffer ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetCommandBuffer( m_commandBuffer, static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast( pAcquireInfo ), pImageIndex ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::acquireNextImage2KHR( const AcquireNextImageInfoKHR & acquireInfo, Dispatch const & d ) const - { - uint32_t imageIndex; - Result result = static_cast( d.vkAcquireNextImage2KHR( m_device, reinterpret_cast( &acquireInfo ), &imageIndex ) ); - return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, uint32_t* pImageIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), pImageIndex ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t timeout, VULKAN_HPP_NAMESPACE::Semaphore semaphore, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - uint32_t imageIndex; - Result result = static_cast( d.vkAcquireNextImageKHR( m_device, static_cast( swapchain ), timeout, static_cast( semaphore ), static_cast( fence ), &imageIndex ) ); - return createResultValue( result, imageIndex, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImageKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eNotReady, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL* pConfiguration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( pAcquireInfo ), reinterpret_cast< VkPerformanceConfigurationINTEL *>( pConfiguration ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::acquirePerformanceConfigurationINTEL( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; - Result result = static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( &acquireInfo ), reinterpret_cast( &configuration ) ) ); - return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::acquirePerformanceConfigurationINTELUnique( const PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration; - Result result = static_cast( d.vkAcquirePerformanceConfigurationINTEL( m_device, reinterpret_cast( &acquireInfo ), reinterpret_cast( &configuration ) ) ); - ObjectRelease deleter( *this, d ); - return createResultValue( result, configuration, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::acquireProfilingLockKHR( const AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast< VkCommandBuffer *>( pCommandBuffers ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector commandBuffers( allocateInfo.commandBufferCount ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateCommandBuffers( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const - { - std::vector commandBuffers( allocateInfo.commandBufferCount, commandBufferAllocator ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - return createResultValue( result, commandBuffers, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector, CommandBufferAllocator> uniqueCommandBuffers; - std::vector commandBuffers( allocateInfo.commandBufferCount ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount ); - PoolFree deleter( *this, allocateInfo.commandPool, d ); - for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ ) - { - uniqueCommandBuffers.push_back( UniqueHandle( commandBuffers[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, CommandBufferAllocator>>::type Device::allocateCommandBuffersUnique( const CommandBufferAllocateInfo & allocateInfo, CommandBufferAllocator & commandBufferAllocator, Dispatch const & d ) const - { - std::vector, CommandBufferAllocator> uniqueCommandBuffers( commandBufferAllocator ); - std::vector commandBuffers( allocateInfo.commandBufferCount ); - Result result = static_cast( d.vkAllocateCommandBuffers( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( commandBuffers.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount ); - PoolFree deleter( *this, allocateInfo.commandPool, d ); - for ( size_t i=0; i < allocateInfo.commandBufferCount; i++ ) - { - uniqueCommandBuffers.push_back( UniqueHandle( commandBuffers[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueCommandBuffers ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo* pAllocateInfo, VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast< VkDescriptorSet *>( pDescriptorSets ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector descriptorSets( allocateInfo.descriptorSetCount ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateDescriptorSets( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const - { - std::vector descriptorSets( allocateInfo.descriptorSetCount, descriptorSetAllocator ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, descriptorSets, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const - { - std::vector, DescriptorSetAllocator> uniqueDescriptorSets; - std::vector descriptorSets( allocateInfo.descriptorSetCount ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount ); - PoolFree deleter( *this, allocateInfo.descriptorPool, d ); - for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ ) - { - uniqueDescriptorSets.push_back( UniqueHandle( descriptorSets[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, DescriptorSetAllocator>>::type Device::allocateDescriptorSetsUnique( const DescriptorSetAllocateInfo & allocateInfo, DescriptorSetAllocator & descriptorSetAllocator, Dispatch const & d ) const - { - std::vector, DescriptorSetAllocator> uniqueDescriptorSets( descriptorSetAllocator ); - std::vector descriptorSets( allocateInfo.descriptorSetCount ); - Result result = static_cast( d.vkAllocateDescriptorSets( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( descriptorSets.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount ); - PoolFree deleter( *this, allocateInfo.descriptorPool, d ); - for ( size_t i=0; i < allocateInfo.descriptorSetCount; i++ ) - { - uniqueDescriptorSets.push_back( UniqueHandle( descriptorSets[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueDescriptorSets ), VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo* pAllocateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeviceMemory* pMemory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( pAllocateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDeviceMemory *>( pMemory ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::allocateMemory( const MemoryAllocateInfo & allocateInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceMemory memory; - Result result = static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &memory ) ) ); - return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::allocateMemoryUnique( const MemoryAllocateInfo & allocateInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceMemory memory; - Result result = static_cast( d.vkAllocateMemory( m_device, reinterpret_cast( &allocateInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &memory ) ) ); - ObjectFree deleter( *this, allocator, d ); - return createResultValue( result, memory, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindAccelerationStructureMemoryNV( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindAccelerationStructureMemoryNV( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindBufferMemory( m_device, static_cast( buffer ), static_cast( memory ), static_cast( memoryOffset ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory2( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindBufferMemory2KHR( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindBufferMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), static_cast( memoryOffset ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindImageMemory( m_device, static_cast( image ), static_cast( memory ), static_cast( memoryOffset ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory2( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo* pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBindImageMemory2KHR( m_device, bindInfoCount, reinterpret_cast( pBindInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::bindImageMemory2KHR( ArrayProxy const & bindInfos, Dispatch const & d ) const - { - Result result = static_cast( d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast( bindInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, uint32_t infoCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pInfos, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR* const * ppBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkBuildAccelerationStructuresKHR( m_device, static_cast( deferredOperation ), infoCount, reinterpret_cast( pInfos ), reinterpret_cast( ppBuildRangeInfos ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, ArrayProxy const & infos, ArrayProxy const & pBuildRangeInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() ); -#else - if ( infos.size() != pBuildRangeInfos.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - Result result = static_cast( d.vkBuildAccelerationStructuresKHR( m_device, static_cast( deferredOperation ), infos.size(), reinterpret_cast( infos.data() ), reinterpret_cast( pBuildRangeInfos.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const - { - Result result = static_cast( d.vkCompileDeferredNV( m_device, static_cast( pipeline ), shader ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCopyAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkCopyAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCopyAccelerationStructureToMemoryKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyAccelerationStructureToMemoryInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkCopyAccelerationStructureToMemoryKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCopyMemoryToAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const CopyMemoryToAccelerationStructureInfoKHR & info, Dispatch const & d ) const - { - Result result = static_cast( d.vkCopyMemoryToAccelerationStructureKHR( m_device, static_cast( deferredOperation ), reinterpret_cast( &info ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructure, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkAccelerationStructureKHR *>( pAccelerationStructure ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createAccelerationStructureKHR( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createAccelerationStructureKHRUnique( const AccelerationStructureCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::AccelerationStructureNV* pAccelerationStructure, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkAccelerationStructureNV *>( pAccelerationStructure ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createAccelerationStructureNV( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createAccelerationStructureNVUnique( const AccelerationStructureCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure; - Result result = static_cast( d.vkCreateAccelerationStructureNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &accelerationStructure ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, accelerationStructure, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Buffer* pBuffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkBuffer *>( pBuffer ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createBuffer( const BufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Buffer buffer; - Result result = static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &buffer ) ) ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createBufferUnique( const BufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Buffer buffer; - Result result = static_cast( d.vkCreateBuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &buffer ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::BufferView* pView, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkBufferView *>( pView ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createBufferView( const BufferViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::BufferView view; - Result result = static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createBufferViewUnique( const BufferViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::BufferView view; - Result result = static_cast( d.vkCreateBufferView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::CommandPool* pCommandPool, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkCommandPool *>( pCommandPool ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createCommandPool( const CommandPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::CommandPool commandPool; - Result result = static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &commandPool ) ) ); - return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createCommandPoolUnique( const CommandPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::CommandPool commandPool; - Result result = static_cast( d.vkCreateCommandPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &commandPool ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, commandPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const ComputePipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateComputePipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DeferredOperationKHR* pDeferredOperation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast( pAllocator ), reinterpret_cast< VkDeferredOperationKHR *>( pDeferredOperation ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createDeferredOperationKHR( Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; - Result result = static_cast( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &deferredOperation ) ) ); - return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDeferredOperationKHRUnique( Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation; - Result result = static_cast( d.vkCreateDeferredOperationKHR( m_device, reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &deferredOperation ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, deferredOperation, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorPool* pDescriptorPool, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorPool *>( pDescriptorPool ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorPool( const DescriptorPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; - Result result = static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorPool ) ) ); - return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorPoolUnique( const DescriptorPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool; - Result result = static_cast( d.vkCreateDescriptorPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorPool ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorSetLayout* pSetLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorSetLayout *>( pSetLayout ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorSetLayout( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; - Result result = static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &setLayout ) ) ); - return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorSetLayoutUnique( const DescriptorSetLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout; - Result result = static_cast( d.vkCreateDescriptorSetLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &setLayout ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, setLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorUpdateTemplate( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorUpdateTemplateUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplate( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate* pDescriptorUpdateTemplate, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createDescriptorUpdateTemplateKHR( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createDescriptorUpdateTemplateKHRUnique( const DescriptorUpdateTemplateCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate; - Result result = static_cast( d.vkCreateDescriptorUpdateTemplateKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &descriptorUpdateTemplate ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, descriptorUpdateTemplate, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Event* pEvent, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateEvent( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkEvent *>( pEvent ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createEvent( const EventCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Event event; - Result result = static_cast( d.vkCreateEvent( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &event ) ) ); - return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createEventUnique( const EventCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Event event; - Result result = static_cast( d.vkCreateEvent( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &event ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, event, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateFence( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createFence( const FenceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkCreateFence( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createFenceUnique( const FenceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkCreateFence( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Framebuffer* pFramebuffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFramebuffer *>( pFramebuffer ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createFramebuffer( const FramebufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; - Result result = static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &framebuffer ) ) ); - return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createFramebufferUnique( const FramebufferCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Framebuffer framebuffer; - Result result = static_cast( d.vkCreateFramebuffer( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &framebuffer ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, framebuffer, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const GraphicsPipelineCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateGraphicsPipelines( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Image* pImage, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImage( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkImage *>( pImage ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createImage( const ImageCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Image image; - Result result = static_cast( d.vkCreateImage( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &image ) ) ); - return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createImageUnique( const ImageCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Image image; - Result result = static_cast( d.vkCreateImage( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &image ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, image, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ImageView* pView, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImageView( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkImageView *>( pView ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createImageView( const ImageViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageView view; - Result result = static_cast( d.vkCreateImageView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createImageViewUnique( const ImageViewCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageView view; - Result result = static_cast( d.vkCreateImageView( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &view ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, view, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV* pIndirectCommandsLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkIndirectCommandsLayoutNV *>( pIndirectCommandsLayout ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createIndirectCommandsLayoutNV( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; - Result result = static_cast( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &indirectCommandsLayout ) ) ); - return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createIndirectCommandsLayoutNVUnique( const IndirectCommandsLayoutCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout; - Result result = static_cast( d.vkCreateIndirectCommandsLayoutNV( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &indirectCommandsLayout ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, indirectCommandsLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineCache* pPipelineCache, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipelineCache *>( pPipelineCache ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createPipelineCache( const PipelineCacheCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; - Result result = static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineCache ) ) ); - return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPipelineCacheUnique( const PipelineCacheCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache; - Result result = static_cast( d.vkCreatePipelineCache( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineCache ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipelineCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PipelineLayout* pPipelineLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipelineLayout *>( pPipelineLayout ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createPipelineLayout( const PipelineLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; - Result result = static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineLayout ) ) ); - return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPipelineLayoutUnique( const PipelineLayoutCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout; - Result result = static_cast( d.vkCreatePipelineLayout( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipelineLayout ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipelineLayout, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT* pPrivateDataSlot, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPrivateDataSlotEXT *>( pPrivateDataSlot ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createPrivateDataSlotEXT( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot; - Result result = static_cast( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &privateDataSlot ) ) ); - return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createPrivateDataSlotEXTUnique( const PrivateDataSlotCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot; - Result result = static_cast( d.vkCreatePrivateDataSlotEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &privateDataSlot ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, privateDataSlot, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::QueryPool* pQueryPool, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkQueryPool *>( pQueryPool ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createQueryPool( const QueryPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::QueryPool queryPool; - Result result = static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &queryPool ) ) ); - return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createQueryPoolUnique( const QueryPoolCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::QueryPool queryPool; - Result result = static_cast( d.vkCreateQueryPool( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &queryPool ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, queryPool, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesKHR( m_device, static_cast( deferredOperation ), static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHRUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, uint32_t createInfoCount, const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Pipeline* pPipelines, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfoCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkPipeline *>( pPipelines ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector pipelines( createInfos.size(), pipelineAllocator ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - return createResultValue( result, pipelines, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines; - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue, PipelineAllocator>> Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, ArrayProxy const & createInfos, Optional allocator, PipelineAllocator & pipelineAllocator, Dispatch const & d ) const - { - std::vector, PipelineAllocator> uniquePipelines( pipelineAllocator ); - std::vector pipelines( createInfos.size() ); - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( pipelines.data() ) ) ); - if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )|| ( result == VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT ) ) - { - uniquePipelines.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniquePipelines.push_back( UniqueHandle( pipelines[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniquePipelines ), VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const RayTracingPipelineCreateInfoNV & createInfo, Optional allocator, Dispatch const & d ) const - { - Pipeline pipeline; - Result result = static_cast( d.vkCreateRayTracingPipelinesNV( m_device, static_cast( pipelineCache ), 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &pipeline ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, pipeline, VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT }, deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass( const RenderPassCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPassUnique( const RenderPassCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass2( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPass2Unique( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::RenderPass* pRenderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkRenderPass *>( pRenderPass ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createRenderPass2KHR( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createRenderPass2KHRUnique( const RenderPassCreateInfo2 & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RenderPass renderPass; - Result result = static_cast( d.vkCreateRenderPass2KHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &renderPass ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, renderPass, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Sampler* pSampler, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSampler( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSampler *>( pSampler ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSampler( const SamplerCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Sampler sampler; - Result result = static_cast( d.vkCreateSampler( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &sampler ) ) ); - return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerUnique( const SamplerCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Sampler sampler; - Result result = static_cast( d.vkCreateSampler( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &sampler ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, sampler, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSamplerYcbcrConversion( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerYcbcrConversionUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversion( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion* pYcbcrConversion, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSamplerYcbcrConversionKHR( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSamplerYcbcrConversionKHRUnique( const SamplerYcbcrConversionCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion; - Result result = static_cast( d.vkCreateSamplerYcbcrConversionKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &ycbcrConversion ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, ycbcrConversion, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Semaphore* pSemaphore, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSemaphore *>( pSemaphore ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSemaphore( const SemaphoreCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Semaphore semaphore; - Result result = static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &semaphore ) ) ); - return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSemaphoreUnique( const SemaphoreCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Semaphore semaphore; - Result result = static_cast( d.vkCreateSemaphore( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &semaphore ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, semaphore, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ShaderModule* pShaderModule, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkShaderModule *>( pShaderModule ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createShaderModule( const ShaderModuleCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; - Result result = static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &shaderModule ) ) ); - return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createShaderModuleUnique( const ShaderModuleCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ShaderModule shaderModule; - Result result = static_cast( d.vkCreateShaderModule( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &shaderModule ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, shaderModule, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSharedSwapchainsKHR( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfos, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSharedSwapchainsKHR( m_device, swapchainCount, reinterpret_cast( pCreateInfos ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchains ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector swapchains( createInfos.size() ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainsKHR( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const - { - std::vector swapchains( createInfos.size(), swapchainKHRAllocator ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - return createResultValue( result, swapchains, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSharedSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator, Dispatch const & d ) const - { - std::vector, SwapchainKHRAllocator> uniqueSwapchains; - std::vector swapchains( createInfos.size() ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueSwapchains.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniqueSwapchains.push_back( UniqueHandle( swapchains[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); - } - - template >::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, SwapchainKHRAllocator>>::type Device::createSharedSwapchainsKHRUnique( ArrayProxy const & createInfos, Optional allocator, SwapchainKHRAllocator & swapchainKHRAllocator, Dispatch const & d ) const - { - std::vector, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator ); - std::vector swapchains( createInfos.size() ); - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, createInfos.size(), reinterpret_cast( createInfos.data() ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( swapchains.data() ) ) ); - if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) - { - uniqueSwapchains.reserve( createInfos.size() ); - ObjectDestroy deleter( *this, allocator, d ); - for ( size_t i=0; i < createInfos.size(); i++ ) - { - uniqueSwapchains.push_back( UniqueHandle( swapchains[i], deleter ) ); - } - } - return createResultValue( result, std::move( uniqueSwapchains ), VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSharedSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSharedSwapchainsKHR( m_device, 1, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSwapchainKHR *>( pSwapchain ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::createSwapchainKHR( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::createSwapchainKHRUnique( const SwapchainCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain; - Result result = static_cast( d.vkCreateSwapchainKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &swapchain ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, swapchain, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pValidationCache, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkValidationCacheEXT *>( pValidationCache ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::createValidationCacheEXT( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; - Result result = static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &validationCache ) ) ); - return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::createValidationCacheEXTUnique( const ValidationCacheCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache; - Result result = static_cast( d.vkCreateValidationCacheEXT( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &validationCache ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, validationCache, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT* pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectNameEXT( const DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT* pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::debugMarkerSetObjectTagEXT( const DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDeferredOperationJoinKHR( m_device, static_cast( operation ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const - { - Result result = static_cast( d.vkDeferredOperationJoinKHR( m_device, static_cast( operation ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureKHR( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyAccelerationStructureNV( m_device, static_cast( accelerationStructure ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer buffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBuffer( m_device, static_cast( buffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView bufferView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyBufferView( m_device, static_cast( bufferView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool commandPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyCommandPool( m_device, static_cast( commandPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDeferredOperationKHR( m_device, static_cast( operation ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorPool( m_device, static_cast( descriptorPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorSetLayout( m_device, static_cast( descriptorSetLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplateKHR( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDescriptorUpdateTemplate( m_device, static_cast( descriptorUpdateTemplate ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDevice( m_device, reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDevice( m_device, reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event event, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event event, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyEvent( m_device, static_cast( event ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence fence, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFence( m_device, static_cast( fence ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyFramebuffer( m_device, static_cast( framebuffer ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image image, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image image, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImage( m_device, static_cast( image ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView imageView, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyImageView( m_device, static_cast( imageView ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyIndirectCommandsLayoutNV( m_device, static_cast( indirectCommandsLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline pipeline, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipeline( m_device, static_cast( pipeline ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineCache( m_device, static_cast( pipelineCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPipelineLayout( m_device, static_cast( pipelineLayout ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyPrivateDataSlotEXT( m_device, static_cast( privateDataSlot ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool queryPool, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyQueryPool( m_device, static_cast( queryPool ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyRenderPass( m_device, static_cast( renderPass ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler sampler, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySampler( m_device, static_cast( sampler ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversionKHR( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySamplerYcbcrConversion( m_device, static_cast( ycbcrConversion ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySemaphore( m_device, static_cast( semaphore ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyShaderModule( m_device, static_cast( shaderModule ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySwapchainKHR( m_device, static_cast( swapchain ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyValidationCacheEXT( m_device, static_cast( validationCache ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDeviceWaitIdle( m_device ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::waitIdle( Dispatch const & d ) const - { - Result result = static_cast( d.vkDeviceWaitIdle( m_device ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT* pDisplayPowerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkDisplayPowerControlEXT( m_device, static_cast( display ), reinterpret_cast( pDisplayPowerInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayPowerInfoEXT & displayPowerInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkDisplayPowerControlEXT( m_device, static_cast( display ), reinterpret_cast( &displayPowerInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFlushMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::flushMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d ) const - { - Result result = static_cast( d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, uint32_t commandBufferCount, const VULKAN_HPP_NAMESPACE::CommandBuffer* pCommandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBufferCount, reinterpret_cast( pCommandBuffers ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::CommandPool commandPool, ArrayProxy const & commandBuffers, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeCommandBuffers( m_device, static_cast( commandPool ), commandBuffers.size(), reinterpret_cast( commandBuffers.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE Result Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d ) const - { - Result result = static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSets.size(), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::freeDescriptorSets" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE Result Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, uint32_t descriptorSetCount, const VULKAN_HPP_NAMESPACE::DescriptorSet* pDescriptorSets, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSetCount, reinterpret_cast( pDescriptorSets ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::free( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, ArrayProxy const & descriptorSets, Dispatch const & d ) const - { - Result result = static_cast( d.vkFreeDescriptorSets( m_device, static_cast( descriptorPool ), descriptorSets.size(), reinterpret_cast( descriptorSets.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::free" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::free( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkFreeMemory( m_device, static_cast( memory ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR* pSizeInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetAccelerationStructureBuildSizesKHR( m_device, static_cast( buildType ), reinterpret_cast( pBuildInfo ), pMaxPrimitiveCounts, reinterpret_cast< VkAccelerationStructureBuildSizesInfoKHR *>( pSizeInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType, const AccelerationStructureBuildGeometryInfoKHR & buildInfo, ArrayProxy const & maxPrimitiveCounts, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount ); -#else - if ( maxPrimitiveCounts.size() != buildInfo.geometryCount ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo; - d.vkGetAccelerationStructureBuildSizesKHR( m_device, static_cast( buildType ), reinterpret_cast( &buildInfo ), maxPrimitiveCounts.data(), reinterpret_cast( &sizeInfo ) ); - return sizeInfo; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const AccelerationStructureDeviceAddressInfoKHR & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getAccelerationStructureHandleNV" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetAccelerationStructureHandleNV( m_device, static_cast( accelerationStructure ), sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2KHR *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements; - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getAccelerationStructureMemoryRequirementsNV( const AccelerationStructureMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR & memoryRequirements = structureChain.template get(); - d.vkGetAccelerationStructureMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer* buffer, VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, buffer, reinterpret_cast< VkAndroidHardwareBufferPropertiesANDROID *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties; - Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties = structureChain.template get(); - Result result = static_cast( d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast( &properties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::Device::getAndroidHardwareBufferPropertiesANDROID" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( pInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; - d.vkGetBufferMemoryRequirements( m_device, static_cast( buffer ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getBufferMemoryRequirements2( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetBufferMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getBufferMemoryRequirements2KHR( const BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetBufferMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const BufferDeviceAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t timestampCount, const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampCount, reinterpret_cast( pTimestampInfos ), pTimestamps, pMaxDeviation ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getCalibratedTimestampsEXT( ArrayProxy const ×tampInfos, ArrayProxy const ×tamps, Dispatch const &d ) const - { - #ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( timestampInfos.size() == timestamps.size() ); -#else - if ( timestampInfos.size() != timestamps.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::VkDevice::getCalibratedTimestampsEXT: timestampInfos.size() != timestamps.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - uint64_t maxDeviation; - Result result = static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size() , reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - return createResultValue( result, maxDeviation, VULKAN_HPP_NAMESPACE_STRING"::Device::getCalibratedTimestampsEXT" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Dispatch const & d ) const - { - std::pair,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) ); - std::vector & timestamps = data.first; - uint64_t & maxDeviation = data.second; - Result result = static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType, uint64_t>>::type Device::getCalibratedTimestampsEXT( ArrayProxy const & timestampInfos, Uint64_tAllocator & uint64_tAllocator, Dispatch const & d ) const - { - std::pair,uint64_t> data( std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) ); - std::vector & timestamps = data.first; - uint64_t & maxDeviation = data.second; - Result result = static_cast( d.vkGetCalibratedTimestampsEXT( m_device, timestampInfos.size(), reinterpret_cast( timestampInfos.data() ), timestamps.data(), &maxDeviation ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeferredOperationMaxConcurrencyKHR( m_device, static_cast( operation ) ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeferredOperationResultKHR( m_device, static_cast( operation ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetDeferredOperationResultKHR( m_device, static_cast( operation ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getDeferredOperationResultKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return support; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getDescriptorSetLayoutSupport( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get(); - d.vkGetDescriptorSetLayoutSupport( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo* pCreateInfo, VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport* pSupport, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( pCreateInfo ), reinterpret_cast< VkDescriptorSetLayoutSupport *>( pSupport ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support; - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return support; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getDescriptorSetLayoutSupportKHR( const DescriptorSetLayoutCreateInfo & createInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get(); - d.vkGetDescriptorSetLayoutSupportKHR( m_device, reinterpret_cast( &createInfo ), reinterpret_cast( &support ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR* pVersionInfo, VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR* pCompatibility, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast( pVersionInfo ), reinterpret_cast< VkAccelerationStructureCompatibilityKHR *>( pCompatibility ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR Device::getAccelerationStructureCompatibilityKHR( const AccelerationStructureVersionInfoKHR & versionInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility; - d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device, reinterpret_cast( &versionInfo ), reinterpret_cast( &compatibility ) ); - return compatibility; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; - d.vkGetDeviceGroupPeerMemoryFeatures( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( &peerMemoryFeatures ) ); - return peerMemoryFeatures; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags* pPeerMemoryFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast< VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR( uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures; - d.vkGetDeviceGroupPeerMemoryFeaturesKHR( m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast( &peerMemoryFeatures ) ); - return peerMemoryFeatures; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast< VkDeviceGroupPresentCapabilitiesKHR *>( pDeviceGroupPresentCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities; - Result result = static_cast( d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast( &deviceGroupPresentCapabilities ) ) ); - return createResultValue( result, deviceGroupPresentCapabilities, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast( pSurfaceInfo ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; - Result result = static_cast( d.vkGetDeviceGroupSurfacePresentModes2EXT( m_device, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &modes ) ) ); - return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR* pModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast( surface ), reinterpret_cast< VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes; - Result result = static_cast( d.vkGetDeviceGroupSurfacePresentModesKHR( m_device, static_cast( surface ), reinterpret_cast( &modes ) ) ); - return createResultValue( result, modes, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize* pCommittedMemoryInBytes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), reinterpret_cast< VkDeviceSize *>( pCommittedMemoryInBytes ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes; - d.vkGetDeviceMemoryCommitment( m_device, static_cast( memory ), reinterpret_cast( &committedMemoryInBytes ) ); - return committedMemoryInBytes; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const DeviceMemoryOpaqueCaptureAddressInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char* pName, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceProcAddr( m_device, pName ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetDeviceProcAddr( m_device, name.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast< VkQueue *>( pQueue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Queue queue; - d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast( &queue ) ); - return queue; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2* pQueueInfo, VULKAN_HPP_NAMESPACE::Queue* pQueue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetDeviceQueue2( m_device, reinterpret_cast( pQueueInfo ), reinterpret_cast< VkQueue *>( pQueue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const DeviceQueueInfo2 & queueInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Queue queue; - d.vkGetDeviceQueue2( m_device, reinterpret_cast( &queueInfo ), reinterpret_cast( &queue ) ); - return queue; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetEventStatus( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getFenceFdKHR( const FenceGetFdInfoKHR & getFdInfo, Dispatch const & d ) const - { - int fd; - Result result = static_cast( d.vkGetFenceFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetFenceStatus( m_device, static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getFenceWin32HandleKHR( const FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getGeneratedCommandsMemoryRequirementsNV( const GeneratedCommandsMemoryRequirementsInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast( image ), reinterpret_cast< VkImageDrmFormatModifierPropertiesEXT *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties; - Result result = static_cast( d.vkGetImageDrmFormatModifierPropertiesEXT( m_device, static_cast( image ), reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::MemoryRequirements* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast< VkMemoryRequirements *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements; - d.vkGetImageMemoryRequirements( m_device, static_cast( image ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getImageMemoryRequirements2( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetImageMemoryRequirements2( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2* pInfo, VULKAN_HPP_NAMESPACE::MemoryRequirements2* pMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), reinterpret_cast< VkMemoryRequirements2 *>( pMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2 Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements; - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return memoryRequirements; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain Device::getImageMemoryRequirements2KHR( const ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::MemoryRequirements2 & memoryRequirements = structureChain.template get(); - d.vkGetImageMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), reinterpret_cast( &memoryRequirements ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements* pSparseMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements *>( pSparseMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements( sparseImageMemoryRequirementsAllocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements( m_device, static_cast( image ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2* pSparseMemoryRequirements, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( pInfo ), pSparseMemoryRequirementCount, reinterpret_cast< VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements; - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Device::getImageSparseMemoryRequirements2KHR( const ImageSparseMemoryRequirementsInfo2 & info, SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator, Dispatch const & d ) const - { - std::vector sparseMemoryRequirements( sparseImageMemoryRequirements2Allocator ); - uint32_t sparseMemoryRequirementCount; - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, nullptr ); - sparseMemoryRequirements.resize( sparseMemoryRequirementCount ); - d.vkGetImageSparseMemoryRequirements2KHR( m_device, reinterpret_cast( &info ), &sparseMemoryRequirementCount, reinterpret_cast( sparseMemoryRequirements.data() ) ); - VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() ); - return sparseMemoryRequirements; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource* pSubresource, VULKAN_HPP_NAMESPACE::SubresourceLayout* pLayout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( pSubresource ), reinterpret_cast< VkSubresourceLayout *>( pLayout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image image, const ImageSubresource & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::SubresourceLayout layout; - d.vkGetImageSubresourceLayout( m_device, static_cast( image ), reinterpret_cast( &subresource ), reinterpret_cast( &layout ) ); - return layout; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetImageViewAddressNVX( m_device, static_cast( imageView ), reinterpret_cast< VkImageViewAddressPropertiesNVX *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties; - Result result = static_cast( d.vkGetImageViewAddressNVX( m_device, static_cast( imageView ), reinterpret_cast( &properties ) ) ); - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const ImageViewHandleInfoNVX & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetImageViewHandleNVX( m_device, reinterpret_cast( &info ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast( pInfo ), pBuffer ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryAndroidHardwareBufferANDROID( const MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d ) const - { - struct AHardwareBuffer* buffer; - Result result = static_cast( d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast( &info ), &buffer ) ); - return createResultValue( result, buffer, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryFdKHR( const MemoryGetFdInfoKHR & getFdInfo, Dispatch const & d ) const - { - int fd; - Result result = static_cast( d.vkGetMemoryFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR* pMemoryFdProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast( handleType ), fd, reinterpret_cast< VkMemoryFdPropertiesKHR *>( pMemoryFdProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties; - Result result = static_cast( d.vkGetMemoryFdPropertiesKHR( m_device, static_cast( handleType ), fd, reinterpret_cast( &memoryFdProperties ) ) ); - return createResultValue( result, memoryFdProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast( handleType ), pHostPointer, reinterpret_cast< VkMemoryHostPointerPropertiesEXT *>( pMemoryHostPointerProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties; - Result result = static_cast( d.vkGetMemoryHostPointerPropertiesEXT( m_device, static_cast( handleType ), pHostPointer, reinterpret_cast( &memoryHostPointerProperties ) ) ); - return createResultValue( result, memoryHostPointerProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandleKHR( const MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandleNV( m_device, static_cast( memory ), static_cast( handleType ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetMemoryWin32HandleNV( m_device, static_cast( memory ), static_cast( handleType ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast( handleType ), handle, reinterpret_cast< VkMemoryWin32HandlePropertiesKHR *>( pMemoryWin32HandleProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties; - Result result = static_cast( d.vkGetMemoryWin32HandlePropertiesKHR( m_device, static_cast( handleType ), handle, reinterpret_cast( &memoryWin32HandleProperties ) ) ); - return createResultValue( result, memoryWin32HandleProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE* pPresentationTimings, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), pPresentationTimingCount, reinterpret_cast< VkPastPresentationTimingGOOGLE *>( pPresentationTimings ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - std::vector presentationTimings; - uint32_t presentationTimingCount; - Result result; - do - { - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentationTimingCount ) - { - presentationTimings.resize( presentationTimingCount ); - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, reinterpret_cast( presentationTimings.data() ) ) ); - VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) ) - { - presentationTimings.resize( presentationTimingCount ); - } - return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator, Dispatch const & d ) const - { - std::vector presentationTimings( pastPresentationTimingGOOGLEAllocator ); - uint32_t presentationTimingCount; - Result result; - do - { - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentationTimingCount ) - { - presentationTimings.resize( presentationTimingCount ); - result = static_cast( d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast( swapchain ), &presentationTimingCount, reinterpret_cast( presentationTimings.data() ) ) ); - VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentationTimingCount < presentationTimings.size() ) ) - { - presentationTimings.resize( presentationTimingCount ); - } - return createResultValue( result, presentationTimings, VULKAN_HPP_NAMESPACE_STRING"::Device::getPastPresentationTimingGOOGLE" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, VULKAN_HPP_NAMESPACE::PerformanceValueINTEL* pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPerformanceParameterINTEL( m_device, static_cast( parameter ), reinterpret_cast< VkPerformanceValueINTEL *>( pValue ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value; - Result result = static_cast( d.vkGetPerformanceParameterINTEL( m_device, static_cast( parameter ), reinterpret_cast( &value ) ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, size_t* pDataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), pDataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const - { - std::vector data; - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const - { - std::vector data( uint8_tAllocator ); - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetPipelineCacheData( m_device, static_cast( pipelineCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineCacheData" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR* pInternalRepresentations, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( pExecutableInfo ), pInternalRepresentationCount, reinterpret_cast< VkPipelineExecutableInternalRepresentationKHR *>( pInternalRepresentations ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const - { - std::vector internalRepresentations; - uint32_t internalRepresentationCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && internalRepresentationCount ) - { - internalRepresentations.resize( internalRepresentationCount ); - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, reinterpret_cast( internalRepresentations.data() ) ) ); - VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) ) - { - internalRepresentations.resize( internalRepresentationCount ); - } - return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableInternalRepresentationsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator, Dispatch const & d ) const - { - std::vector internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator ); - uint32_t internalRepresentationCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && internalRepresentationCount ) - { - internalRepresentations.resize( internalRepresentationCount ); - result = static_cast( d.vkGetPipelineExecutableInternalRepresentationsKHR( m_device, reinterpret_cast( &executableInfo ), &internalRepresentationCount, reinterpret_cast( internalRepresentations.data() ) ) ); - VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( internalRepresentationCount < internalRepresentations.size() ) ) - { - internalRepresentations.resize( internalRepresentationCount ); - } - return createResultValue( result, internalRepresentations, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableInternalRepresentationsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( pPipelineInfo ), pExecutableCount, reinterpret_cast< VkPipelineExecutablePropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, Dispatch const & d ) const - { - std::vector properties; - uint32_t executableCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && executableCount ) - { - properties.resize( executableCount ); - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( executableCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) ) - { - properties.resize( executableCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutablePropertiesKHR( const PipelineInfoKHR & pipelineInfo, PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( pipelineExecutablePropertiesKHRAllocator ); - uint32_t executableCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && executableCount ) - { - properties.resize( executableCount ); - result = static_cast( d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast( &pipelineInfo ), &executableCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( executableCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( executableCount < properties.size() ) ) - { - properties.resize( executableCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutablePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR* pStatistics, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( pExecutableInfo ), pStatisticCount, reinterpret_cast< VkPipelineExecutableStatisticKHR *>( pStatistics ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const - { - std::vector statistics; - uint32_t statisticCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && statisticCount ) - { - statistics.resize( statisticCount ); - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, reinterpret_cast( statistics.data() ) ) ); - VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) ) - { - statistics.resize( statisticCount ); - } - return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getPipelineExecutableStatisticsKHR( const PipelineExecutableInfoKHR & executableInfo, PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator, Dispatch const & d ) const - { - std::vector statistics( pipelineExecutableStatisticKHRAllocator ); - uint32_t statisticCount; - Result result; - do - { - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && statisticCount ) - { - statistics.resize( statisticCount ); - result = static_cast( d.vkGetPipelineExecutableStatisticsKHR( m_device, reinterpret_cast( &executableInfo ), &statisticCount, reinterpret_cast( statistics.data() ) ) ); - VULKAN_HPP_ASSERT( statisticCount <= statistics.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( statisticCount < statistics.size() ) ) - { - statistics.resize( statisticCount ); - } - return createResultValue( result, statistics, VULKAN_HPP_NAMESPACE_STRING"::Device::getPipelineExecutableStatisticsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), pData ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - uint64_t data; - d.vkGetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), &data ); - return data; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, dataSize, pData, static_cast( stride ), static_cast( flags ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, ArrayProxy const &data, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ), static_cast( stride ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getQueryPoolResults", { Result::eSuccess, Result::eNotReady } ); - - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue> Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ), static_cast( stride ), static_cast( flags ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue Device::getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VULKAN_HPP_NAMESPACE::DeviceSize stride, VULKAN_HPP_NAMESPACE::QueryResultFlags flags, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetQueryPoolResults( m_device, static_cast( queryPool ), firstQuery, queryCount, sizeof( T ), reinterpret_cast( &data ), static_cast( stride ), static_cast( flags ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingCaptureReplayShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesKHR" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesKHR( m_device, static_cast( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, dataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, ArrayProxy const &data, Dispatch const &d ) const - { - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ) , reinterpret_cast( data.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::getRayTracingShaderGroupHandlesNV" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, data.size() * sizeof( T ), reinterpret_cast( data.data() ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkGetRayTracingShaderGroupHandlesNV( m_device, static_cast( pipeline ), firstGroup, groupCount, sizeof( T ), reinterpret_cast( &data ) ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE DeviceSize Device::getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t group, VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRayTracingShaderGroupStackSizeKHR( m_device, static_cast( pipeline ), group, static_cast( groupShader ) ) ); - } - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE* pDisplayTimingProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast( swapchain ), reinterpret_cast< VkRefreshCycleDurationGOOGLE *>( pDisplayTimingProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties; - Result result = static_cast( d.vkGetRefreshCycleDurationGOOGLE( m_device, static_cast( swapchain ), reinterpret_cast( &displayTimingProperties ) ) ); - return createResultValue( result, displayTimingProperties, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, VULKAN_HPP_NAMESPACE::Extent2D* pGranularity, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast< VkExtent2D *>( pGranularity ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::Extent2D granularity; - d.vkGetRenderAreaGranularity( m_device, static_cast( renderPass ), reinterpret_cast( &granularity ) ); - return granularity; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), pValue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const - { - uint64_t value; - Result result = static_cast( d.vkGetSemaphoreCounterValue( m_device, static_cast( semaphore ), &value ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, uint64_t* pValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), pValue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const - { - uint64_t value; - Result result = static_cast( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast( semaphore ), &value ) ); - return createResultValue( result, value, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( pGetFdInfo ), pFd ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreFdKHR( const SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const - { - int fd; - Result result = static_cast( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast( &getFdInfo ), &fd ) ); - return createResultValue( result, fd, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast( pGetWin32HandleInfo ), pHandle ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSemaphoreWin32HandleKHR( const SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const - { - HANDLE handle; - Result result = static_cast( d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast( &getWin32HandleInfo ), &handle ) ); - return createResultValue( result, handle, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), pInfoSize, pInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Dispatch const & d ) const - { - std::vector info; - size_t infoSize; - Result result; - do - { - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && infoSize ) - { - info.resize( infoSize ); - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, reinterpret_cast( info.data() ) ) ); - VULKAN_HPP_ASSERT( infoSize <= info.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) ) - { - info.resize( infoSize ); - } - return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline pipeline, VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage, VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const - { - std::vector info( uint8_tAllocator ); - size_t infoSize; - Result result; - do - { - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && infoSize ) - { - info.resize( infoSize ); - result = static_cast( d.vkGetShaderInfoAMD( m_device, static_cast( pipeline ), static_cast( shaderStage ), static_cast( infoType ), &infoSize, reinterpret_cast( info.data() ) ) ); - VULKAN_HPP_ASSERT( infoSize <= info.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( infoSize < info.size() ) ) - { - info.resize( infoSize ); - } - return createResultValue( result, info, VULKAN_HPP_NAMESPACE_STRING"::Device::getShaderInfoAMD" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainCounterEXT( m_device, static_cast( swapchain ), static_cast( counter ), pCounterValue ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const & d ) const - { - uint64_t counterValue; - Result result = static_cast( d.vkGetSwapchainCounterEXT( m_device, static_cast( swapchain ), static_cast( counter ), &counterValue ) ); - return createResultValue( result, counterValue, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VULKAN_HPP_NAMESPACE::Image* pSwapchainImages, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), pSwapchainImageCount, reinterpret_cast< VkImage *>( pSwapchainImages ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - std::vector swapchainImages; - uint32_t swapchainImageCount; - Result result; - do - { - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && swapchainImageCount ) - { - swapchainImages.resize( swapchainImageCount ); - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, reinterpret_cast( swapchainImages.data() ) ) ); - VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) - { - swapchainImages.resize( swapchainImageCount ); - } - return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d ) const - { - std::vector swapchainImages( imageAllocator ); - uint32_t swapchainImageCount; - Result result; - do - { - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && swapchainImageCount ) - { - swapchainImages.resize( swapchainImageCount ); - result = static_cast( d.vkGetSwapchainImagesKHR( m_device, static_cast( swapchain ), &swapchainImageCount, reinterpret_cast( swapchainImages.data() ) ) ); - VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( swapchainImageCount < swapchainImages.size() ) ) - { - swapchainImages.resize( swapchainImageCount ); - } - return createResultValue( result, swapchainImages, VULKAN_HPP_NAMESPACE_STRING"::Device::getSwapchainImagesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - Result result = static_cast( d.vkGetSwapchainStatusKHR( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, size_t* pDataSize, void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), pDataSize, pData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d ) const - { - std::vector data; - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const - { - std::vector data( uint8_tAllocator ); - size_t dataSize; - Result result; - do - { - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, nullptr ) ); - if ( ( result == Result::eSuccess ) && dataSize ) - { - data.resize( dataSize ); - result = static_cast( d.vkGetValidationCacheDataEXT( m_device, static_cast( validationCache ), &dataSize, reinterpret_cast( data.data() ) ) ); - VULKAN_HPP_ASSERT( dataSize <= data.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( dataSize < data.size() ) ) - { - data.resize( dataSize ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::Device::getValidationCacheDataEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR* pImportFenceFdInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportFenceFdKHR( m_device, reinterpret_cast( pImportFenceFdInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importFenceFdKHR( const ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportFenceFdKHR( m_device, reinterpret_cast( &importFenceFdInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast( pImportFenceWin32HandleInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importFenceWin32HandleKHR( const ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast( &importFenceWin32HandleInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast( pImportSemaphoreFdInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importSemaphoreFdKHR( const ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast( &importSemaphoreFdInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast( pImportSemaphoreWin32HandleInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::importSemaphoreWin32HandleKHR( const ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast( &importSemaphoreWin32HandleInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL* pInitializeInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast( pInitializeInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::initializePerformanceApiINTEL( const InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast( &initializeInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t memoryRangeCount, const VULKAN_HPP_NAMESPACE::MappedMemoryRange* pMemoryRanges, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkInvalidateMappedMemoryRanges( m_device, memoryRangeCount, reinterpret_cast( pMemoryRanges ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::invalidateMappedMemoryRanges( ArrayProxy const & memoryRanges, Dispatch const & d ) const - { - Result result = static_cast( d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast( memoryRanges.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, void** ppData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMapMemory( m_device, static_cast( memory ), static_cast( offset ), static_cast( size ), static_cast( flags ), ppData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize offset, VULKAN_HPP_NAMESPACE::DeviceSize size, VULKAN_HPP_NAMESPACE::MemoryMapFlags flags, Dispatch const & d ) const - { - void* pData; - Result result = static_cast( d.vkMapMemory( m_device, static_cast( memory ), static_cast( offset ), static_cast( size ), static_cast( flags ), &pData ) ); - return createResultValue( result, pData, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::PipelineCache* pSrcCaches, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMergePipelineCaches( m_device, static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache dstCache, ArrayProxy const & srcCaches, Dispatch const & d ) const - { - Result result = static_cast( d.vkMergePipelineCaches( m_device, static_cast( dstCache ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, uint32_t srcCacheCount, const VULKAN_HPP_NAMESPACE::ValidationCacheEXT* pSrcCaches, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkMergeValidationCachesEXT( m_device, static_cast( dstCache ), srcCacheCount, reinterpret_cast( pSrcCaches ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache, ArrayProxy const & srcCaches, Dispatch const & d ) const - { - Result result = static_cast( d.vkMergeValidationCachesEXT( m_device, static_cast( dstCache ), srcCaches.size(), reinterpret_cast( srcCaches.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT* pDeviceEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( pDeviceEventInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::registerEventEXT( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( &deviceEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::registerEventEXTUnique( const DeviceEventInfoEXT & deviceEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDeviceEventEXT( m_device, reinterpret_cast( &deviceEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT* pDisplayEventInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Fence* pFence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( pDisplayEventInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkFence *>( pFence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( &displayEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayEventInfoEXT & displayEventInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Fence fence; - Result result = static_cast( d.vkRegisterDisplayEventEXT( m_device, static_cast( display ), reinterpret_cast( &displayEventInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &fence ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, fence, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast( swapchain ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkReleaseProfilingLockKHR( m_device ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool, VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetDescriptorPool( m_device, static_cast( descriptorPool ), static_cast( flags ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetDescriptorPool" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetEvent( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkResetFences( m_device, fenceCount, reinterpret_cast( pFences ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::resetFences( ArrayProxy const & fences, Dispatch const & d ) const - { - Result result = static_cast( d.vkResetFences( m_device, fences.size(), reinterpret_cast( fences.data() ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkResetQueryPool( m_device, static_cast( queryPool ), firstQuery, queryCount ); - } - - template - VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkResetQueryPoolEXT( m_device, static_cast( queryPool ), firstQuery, queryCount ); - } - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT* pNameInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast( pNameInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectNameEXT( const DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast( &nameInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT* pTagInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( pTagInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::setDebugUtilsObjectTagEXT( const DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast( &tagInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetEvent( m_device, static_cast( event ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t swapchainCount, const VULKAN_HPP_NAMESPACE::SwapchainKHR* pSwapchains, const VULKAN_HPP_NAMESPACE::HdrMetadataEXT* pMetadata, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSetHdrMetadataEXT( m_device, swapchainCount, reinterpret_cast( pSwapchains ), reinterpret_cast( pMetadata ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( ArrayProxy const & swapchains, ArrayProxy const & metadata, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS - { -#ifdef VULKAN_HPP_NO_EXCEPTIONS - VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() ); -#else - if ( swapchains.size() != metadata.size() ) - { - throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" ); - } -#endif /*VULKAN_HPP_NO_EXCEPTIONS*/ - - d.vkSetHdrMetadataEXT( m_device, swapchains.size(), reinterpret_cast( swapchains.data() ), reinterpret_cast( metadata.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain, VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSetLocalDimmingAMD( m_device, static_cast( swapChain ), static_cast( localDimmingEnable ) ); - } - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), data ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType objectType, uint64_t objectHandle, VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT privateDataSlot, uint64_t data, Dispatch const & d ) const - { - Result result = static_cast( d.vkSetPrivateDataEXT( m_device, static_cast( objectType ), objectHandle, static_cast( privateDataSlot ), data ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSignalSemaphore( m_device, reinterpret_cast( pSignalInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphore( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSignalSemaphore( m_device, reinterpret_cast( &signalInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo* pSignalInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( pSignalInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::signalSemaphoreKHR( const SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast( &signalInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkTrimCommandPool( m_device, static_cast( commandPool ), static_cast( flags ) ); - } - - template - VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkTrimCommandPoolKHR( m_device, static_cast( commandPool ), static_cast( flags ) ); - } - - - template - VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUninitializePerformanceApiINTEL( m_device ); - } - - - template - VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUnmapMemory( m_device, static_cast( memory ) ); - } - - - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSetWithTemplate( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } - - template - VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSetWithTemplateKHR( m_device, static_cast( descriptorSet ), static_cast( descriptorUpdateTemplate ), pData ); - } - - - template - VULKAN_HPP_INLINE void Device::updateDescriptorSets( uint32_t descriptorWriteCount, const VULKAN_HPP_NAMESPACE::WriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VULKAN_HPP_NAMESPACE::CopyDescriptorSet* pDescriptorCopies, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSets( m_device, descriptorWriteCount, reinterpret_cast( pDescriptorWrites ), descriptorCopyCount, reinterpret_cast( pDescriptorCopies ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Device::updateDescriptorSets( ArrayProxy const & descriptorWrites, ArrayProxy const & descriptorCopies, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkUpdateDescriptorSets( m_device, descriptorWrites.size(), reinterpret_cast( descriptorWrites.data() ), descriptorCopies.size(), reinterpret_cast( descriptorCopies.data() ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t fenceCount, const VULKAN_HPP_NAMESPACE::Fence* pFences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWaitForFences( m_device, fenceCount, reinterpret_cast( pFences ), static_cast( waitAll ), timeout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( ArrayProxy const & fences, VULKAN_HPP_NAMESPACE::Bool32 waitAll, uint64_t timeout, Dispatch const & d ) const - { - Result result = static_cast( d.vkWaitForFences( m_device, fences.size(), reinterpret_cast( fences.data() ), static_cast( waitAll ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWaitSemaphores( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const - { - Result result = static_cast( d.vkWaitSemaphores( m_device, reinterpret_cast( &waitInfo ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo* pWaitInfo, uint64_t timeout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( pWaitInfo ), timeout ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const - { - Result result = static_cast( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast( &waitInfo ), timeout ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::writeAccelerationStructuresPropertiesKHR( uint32_t accelerationStructureCount, const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR* pAccelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, void* pData, size_t stride, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructureCount, reinterpret_cast( pAccelerationStructures ), static_cast( queryType ), dataSize, pData, stride ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy const &accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, ArrayProxy const &data, size_t stride, Dispatch const &d ) const - { - Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size() , reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), data.size() * sizeof( T ) , reinterpret_cast( data.data() ), stride ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING"::Device::writeAccelerationStructuresPropertiesKHR" ); - - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Device::writeAccelerationStructuresPropertiesKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t dataSize, size_t stride, Dispatch const & d ) const - { - VULKAN_HPP_ASSERT( dataSize % sizeof( T ) == 0 ); - std::vector data( dataSize / sizeof( T ) ); - Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), data.size() * sizeof( T ), reinterpret_cast( data.data() ), stride ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Device::writeAccelerationStructuresPropertyKHR( ArrayProxy const & accelerationStructures, VULKAN_HPP_NAMESPACE::QueryType queryType, size_t stride, Dispatch const & d ) const - { - T data; - Result result = static_cast( d.vkWriteAccelerationStructuresPropertiesKHR( m_device, accelerationStructures.size(), reinterpret_cast( accelerationStructures.data() ), static_cast( queryType ), sizeof( T ), reinterpret_cast( &data ), stride ) ); - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createAndroidSurfaceKHR( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createAndroidSurfaceKHRUnique( const AndroidSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateAndroidSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT* pCallback, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDebugReportCallbackEXT *>( pCallback ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDebugReportCallbackEXT( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; - Result result = static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &callback ) ) ); - return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDebugReportCallbackEXTUnique( const DebugReportCallbackCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback; - Result result = static_cast( d.vkCreateDebugReportCallbackEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &callback ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, callback, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT* pMessenger, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDebugUtilsMessengerEXT *>( pMessenger ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDebugUtilsMessengerEXT( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; - Result result = static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &messenger ) ) ); - return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDebugUtilsMessengerEXTUnique( const DebugUtilsMessengerCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger; - Result result = static_cast( d.vkCreateDebugUtilsMessengerEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &messenger ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, messenger, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDirectFBSurfaceEXT( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDirectFBSurfaceEXTUnique( const DirectFBSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDirectFBSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createDisplayPlaneSurfaceKHR( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createDisplayPlaneSurfaceKHRUnique( const DisplaySurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateDisplayPlaneSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createHeadlessSurfaceEXT( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createHeadlessSurfaceEXTUnique( const HeadlessSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateHeadlessSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_IOS_MVK - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createIOSSurfaceMVK( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createIOSSurfaceMVKUnique( const IOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateIOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_FUCHSIA - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createImagePipeSurfaceFUCHSIA( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createImagePipeSurfaceFUCHSIAUnique( const ImagePipeSurfaceCreateInfoFUCHSIA & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateImagePipeSurfaceFUCHSIA( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - - -#ifdef VK_USE_PLATFORM_MACOS_MVK - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createMacOSSurfaceMVK( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createMacOSSurfaceMVKUnique( const MacOSSurfaceCreateInfoMVK & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMacOSSurfaceMVK( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ - - -#ifdef VK_USE_PLATFORM_METAL_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createMetalSurfaceEXT( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createMetalSurfaceEXTUnique( const MetalSurfaceCreateInfoEXT & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateMetalSurfaceEXT( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - - -#ifdef VK_USE_PLATFORM_GGP - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createStreamDescriptorSurfaceGGP( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createStreamDescriptorSurfaceGGPUnique( const StreamDescriptorSurfaceCreateInfoGGP & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateStreamDescriptorSurfaceGGP( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_GGP*/ - - -#ifdef VK_USE_PLATFORM_VI_NN - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createViSurfaceNN( const ViSurfaceCreateInfoNN & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createViSurfaceNNUnique( const ViSurfaceCreateInfoNN & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateViSurfaceNN( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_VI_NN*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createWaylandSurfaceKHR( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createWaylandSurfaceKHRUnique( const WaylandSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWaylandSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createWin32SurfaceKHR( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createWin32SurfaceKHRUnique( const Win32SurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateWin32SurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createXcbSurfaceKHR( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createXcbSurfaceKHRUnique( const XcbSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXcbSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::SurfaceKHR* pSurface, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkSurfaceKHR *>( pSurface ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Instance::createXlibSurfaceKHR( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type Instance::createXlibSurfaceKHRUnique( const XlibSurfaceCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceKHR surface; - Result result = static_cast( d.vkCreateXlibSurfaceKHR( m_instance, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &surface ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, surface, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - - template - VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, pLayerPrefix, pMessage ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags, VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const std::string & layerPrefix, const std::string & message, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDebugReportMessageEXT( m_instance, static_cast( flags ), static_cast( objectType ), object, location, messageCode, layerPrefix.c_str(), message.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugReportCallbackEXT( m_instance, static_cast( callback ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyDebugUtilsMessengerEXT( m_instance, static_cast( messenger ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyInstance( m_instance, reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroyInstance( m_instance, reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( pAllocator ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Optional allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkDestroySurfaceKHR( m_instance, static_cast( surface ), reinterpret_cast( static_cast( allocator ) ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroups( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroups( Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties; - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator ); - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroups" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t* pPhysicalDeviceGroupCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, pPhysicalDeviceGroupCount, reinterpret_cast< VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroupsKHR( Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties; - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const - { - std::vector physicalDeviceGroupProperties( physicalDeviceGroupPropertiesAllocator ); - uint32_t physicalDeviceGroupCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceGroupCount ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, reinterpret_cast( physicalDeviceGroupProperties.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() ) ) - { - physicalDeviceGroupProperties.resize( physicalDeviceGroupCount ); - } - return createResultValue( result, physicalDeviceGroupProperties, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDeviceGroupsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t* pPhysicalDeviceCount, VULKAN_HPP_NAMESPACE::PhysicalDevice* pPhysicalDevices, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDevices( m_instance, pPhysicalDeviceCount, reinterpret_cast< VkPhysicalDevice *>( pPhysicalDevices ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDevices( Dispatch const & d ) const - { - std::vector physicalDevices; - uint32_t physicalDeviceCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceCount ) - { - physicalDevices.resize( physicalDeviceCount ); - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) ) - { - physicalDevices.resize( physicalDeviceCount ); - } - return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const - { - std::vector physicalDevices( physicalDeviceAllocator ); - uint32_t physicalDeviceCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && physicalDeviceCount ) - { - physicalDevices.resize( physicalDeviceCount ); - result = static_cast( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast( physicalDevices.data() ) ) ); - VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( physicalDeviceCount < physicalDevices.size() ) ) - { - physicalDevices.resize( physicalDeviceCount ); - } - return createResultValue( result, physicalDevices, VULKAN_HPP_NAMESPACE_STRING"::Instance::enumeratePhysicalDevices" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char* pName, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetInstanceProcAddr( m_instance, pName ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetInstanceProcAddr( m_instance, name.c_str() ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT* pCallbackData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast( messageSeverity ), static_cast( messageTypes ), reinterpret_cast( pCallbackData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes, const DebugUtilsMessengerCallbackDataEXT & callbackData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkSubmitDebugUtilsMessageEXT( m_instance, static_cast( messageSeverity ), static_cast( messageTypes ), reinterpret_cast( &callbackData ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast( display ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast( display ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display* dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkAcquireXlibDisplayEXT( m_physicalDevice, dpy, static_cast( display ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - Result result = static_cast( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast( display ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::Device* pDevice, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDevice *>( pDevice ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::createDevice( const DeviceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Device device; - Result result = static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &device ) ) ); - return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::createDeviceUnique( const DeviceCreateInfo & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Device device; - Result result = static_cast( d.vkCreateDevice( m_physicalDevice, reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &device ) ) ); - ObjectDestroy deleter( allocator, d ); - return createResultValue( result, device, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR* pCreateInfo, const VULKAN_HPP_NAMESPACE::AllocationCallbacks* pAllocator, VULKAN_HPP_NAMESPACE::DisplayModeKHR* pMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( pCreateInfo ), reinterpret_cast( pAllocator ), reinterpret_cast< VkDisplayModeKHR *>( pMode ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; - Result result = static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &mode ) ) ); - return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR display, const DisplayModeCreateInfoKHR & createInfo, Optional allocator, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayModeKHR mode; - Result result = static_cast( d.vkCreateDisplayModeKHR( m_physicalDevice, static_cast( display ), reinterpret_cast( &createInfo ), reinterpret_cast( static_cast( allocator ) ), reinterpret_cast( &mode ) ) ); - ObjectDestroy deleter( *this, allocator, d ); - return createResultValue( result, mode, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char* pLayerName, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::ExtensionProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, pLayerName, pPropertyCount, reinterpret_cast< VkExtensionProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceExtensionProperties( Optional layerName, ExtensionPropertiesAllocator & extensionPropertiesAllocator, Dispatch const & d ) const - { - std::vector properties( extensionPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceExtensionProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::LayerProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, pPropertyCount, reinterpret_cast< VkLayerProperties *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceLayerProperties( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) const - { - std::vector properties( layerPropertiesAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateDeviceLayerProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, uint32_t* pCounterCount, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR* pCounters, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR* pCounterDescriptions, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, pCounterCount, reinterpret_cast< VkPerformanceCounterKHR *>( pCounters ), reinterpret_cast< VkPerformanceCounterDescriptionKHR *>( pCounterDescriptions ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Dispatch const &d ) const - { - std::vector counterDescriptions; - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) - { - VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - - } - - template ::value, int>::type> - VULKAN_HPP_DEPRECATED( "This function is deprecated. Use one of the other flavours of it.") - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, ArrayProxy const &counters, Allocator const& vectorAllocator, Dispatch const &d ) const - { - std::vector counterDescriptions( vectorAllocator ); - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, counters.size() , reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - } - } while ( result == Result::eIncomplete ); - if ( result == Result::eSuccess ) - { - VULKAN_HPP_ASSERT( counterCount <= counterDescriptions.size() ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, counterDescriptions, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType, std::vector>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, Dispatch const & d ) const - { - std::pair, std::vector> data; - std::vector & counters = data.first; - std::vector & counterDescriptions = data.second; - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - VULKAN_HPP_ASSERT( counterCount <= counters.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - } - - template ::value && std::is_same::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType, std::vector>>::type PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, PerformanceCounterKHRAllocator & performanceCounterKHRAllocator, PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator, Dispatch const & d ) const - { - std::pair, std::vector> data( std::piecewise_construct, std::forward_as_tuple( performanceCounterKHRAllocator ), std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) ); - std::vector & counters = data.first; - std::vector & counterDescriptions = data.second; - uint32_t counterCount; - Result result; - do - { - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) ); - if ( ( result == Result::eSuccess ) && counterCount ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - result = static_cast( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, reinterpret_cast( counters.data() ), reinterpret_cast( counterDescriptions.data() ) ) ); - VULKAN_HPP_ASSERT( counterCount <= counters.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( counterCount < counters.size() ) ) - { - counters.resize( counterCount ); - counterDescriptions.resize( counterCount ); - } - return createResultValue( result, data, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), pPropertyCount, reinterpret_cast< VkDisplayModeProperties2KHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayModeProperties2KHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModeProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), pPropertyCount, reinterpret_cast< VkDisplayModePropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayModePropertiesKHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast( display ), &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayModePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR* pDisplayPlaneInfo, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR* pCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast( pDisplayPlaneInfo ), reinterpret_cast< VkDisplayPlaneCapabilities2KHR *>( pCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getDisplayPlaneCapabilities2KHR( const DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities; - Result result = static_cast( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice, reinterpret_cast( &displayPlaneInfo ), reinterpret_cast( &capabilities ) ) ); - return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR* pCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast( mode ), planeIndex, reinterpret_cast< VkDisplayPlaneCapabilitiesKHR *>( pCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities; - Result result = static_cast( d.vkGetDisplayPlaneCapabilitiesKHR( m_physicalDevice, static_cast( mode ), planeIndex, reinterpret_cast( &capabilities ) ) ); - return createResultValue( result, capabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, uint32_t* pDisplayCount, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplays, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, pDisplayCount, reinterpret_cast< VkDisplayKHR *>( pDisplays ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d ) const - { - std::vector displays; - uint32_t displayCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && displayCount ) - { - displays.resize( displayCount ); - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); - VULKAN_HPP_ASSERT( displayCount <= displays.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) ) - { - displays.resize( displayCount ); - } - return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d ) const - { - std::vector displays( displayKHRAllocator ); - uint32_t displayCount; - Result result; - do - { - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && displayCount ) - { - displays.resize( displayCount ); - result = static_cast( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast( displays.data() ) ) ); - VULKAN_HPP_ASSERT( displayCount <= displays.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( displayCount < displays.size() ) ) - { - displays.resize( displayCount ); - } - return createResultValue( result, displays, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t* pTimeDomainCount, VULKAN_HPP_NAMESPACE::TimeDomainEXT* pTimeDomains, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, pTimeDomainCount, reinterpret_cast< VkTimeDomainEXT *>( pTimeDomains ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const - { - std::vector timeDomains; - uint32_t timeDomainCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && timeDomainCount ) - { - timeDomains.resize( timeDomainCount ); - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); - VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) - { - timeDomains.resize( timeDomainCount ); - } - return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainEXTAllocator & timeDomainEXTAllocator, Dispatch const & d ) const - { - std::vector timeDomains( timeDomainEXTAllocator ); - uint32_t timeDomainCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && timeDomainCount ) - { - timeDomains.resize( timeDomainCount ); - result = static_cast( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast( timeDomains.data() ) ) ); - VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( timeDomainCount < timeDomains.size() ) ) - { - timeDomains.resize( timeDomainCount ); - } - return createResultValue( result, timeDomains, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCalibrateableTimeDomainsEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, pPropertyCount, reinterpret_cast< VkCooperativeMatrixPropertiesNV *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator, Dispatch const & d ) const - { - std::vector properties( cooperativeMatrixPropertiesNVAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getCooperativeMatrixPropertiesNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB* dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, dfb ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlaneProperties2KHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneProperties2KHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayPlaneProperties2KHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlaneProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPlanePropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlanePropertiesKHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayPlanePropertiesKHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPlanePropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayProperties2KHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayProperties2KHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayProperties2KHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, pPropertyCount, reinterpret_cast< VkDisplayPropertiesKHR *>( pProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPropertiesKHR( Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d ) const - { - std::vector properties( displayPropertiesKHRAllocator ); - uint32_t propertyCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && propertyCount ) - { - properties.resize( propertyCount ); - result = static_cast( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast( properties.data() ) ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( propertyCount < properties.size() ) ) - { - properties.resize( propertyCount ); - } - return createResultValue( result, properties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getDisplayPropertiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferProperties( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; - d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice, reinterpret_cast( &externalBufferInfo ), reinterpret_cast( &externalBufferProperties ) ); - return externalBufferProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VULKAN_HPP_NAMESPACE::ExternalBufferProperties* pExternalBufferProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalBufferInfo ), reinterpret_cast< VkExternalBufferProperties *>( pExternalBufferProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties PhysicalDevice::getExternalBufferPropertiesKHR( const PhysicalDeviceExternalBufferInfo & externalBufferInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties; - d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice, reinterpret_cast( &externalBufferInfo ), reinterpret_cast( &externalBufferProperties ) ); - return externalBufferProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFenceProperties( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; - d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice, reinterpret_cast( &externalFenceInfo ), reinterpret_cast( &externalFenceProperties ) ); - return externalFenceProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VULKAN_HPP_NAMESPACE::ExternalFenceProperties* pExternalFenceProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalFenceInfo ), reinterpret_cast< VkExternalFenceProperties *>( pExternalFenceProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties PhysicalDevice::getExternalFencePropertiesKHR( const PhysicalDeviceExternalFenceInfo & externalFenceInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties; - d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice, reinterpret_cast( &externalFenceInfo ), reinterpret_cast( &externalFenceProperties ) ); - return externalFenceProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV* pExternalImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast< VkExternalImageFormatPropertiesNV *>( pExternalImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), static_cast( externalHandleType ), reinterpret_cast( &externalImageFormatProperties ) ) ); - return createResultValue( result, externalImageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphoreProperties( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; - d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice, reinterpret_cast( &externalSemaphoreInfo ), reinterpret_cast( &externalSemaphoreProperties ) ); - return externalSemaphoreProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties* pExternalSemaphoreProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast( pExternalSemaphoreInfo ), reinterpret_cast< VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties PhysicalDevice::getExternalSemaphorePropertiesKHR( const PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties; - d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice, reinterpret_cast( &externalSemaphoreInfo ), reinterpret_cast( &externalSemaphoreProperties ) ); - return externalSemaphoreProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures* pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures *>( pFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features; - d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get(); - d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast( &features ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2* pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceFeatures2 *>( pFeatures ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features; - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); - return features; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 & features = structureChain.template get(); - d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast( &features ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties* pFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast< VkFormatProperties *>( pFormatProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::FormatProperties formatProperties; - d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get(); - d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::FormatProperties2* pFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast< VkFormatProperties2 *>( pFormatProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2 PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties; - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return formatProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::FormatProperties2 & formatProperties = structureChain.template get(); - d.vkGetPhysicalDeviceFormatProperties2KHR( m_physicalDevice, static_cast( format ), reinterpret_cast( &formatProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getFragmentShadingRatesKHR( uint32_t* pFragmentShadingRateCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, pFragmentShadingRateCount, reinterpret_cast< VkPhysicalDeviceFragmentShadingRateKHR *>( pFragmentShadingRates ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getFragmentShadingRatesKHR( Dispatch const & d ) const - { - std::vector fragmentShadingRates; - uint32_t fragmentShadingRateCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && fragmentShadingRateCount ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast( fragmentShadingRates.data() ) ) ); - VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - } - return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator, Dispatch const & d ) const - { - std::vector fragmentShadingRates( physicalDeviceFragmentShadingRateKHRAllocator ); - uint32_t fragmentShadingRateCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && fragmentShadingRateCount ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - result = static_cast( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast( fragmentShadingRates.data() ) ) ); - VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( fragmentShadingRateCount < fragmentShadingRates.size() ) ) - { - fragmentShadingRates.resize( fragmentShadingRateCount ); - } - return createResultValue( result, fragmentShadingRates, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getFragmentShadingRatesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, VULKAN_HPP_NAMESPACE::ImageFormatProperties* pImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast< VkImageFormatProperties *>( pImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::ImageTiling tiling, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageCreateFlags flags, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( tiling ), static_cast( usage ), static_cast( flags ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getImageFormatProperties2( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2* pImageFormatInfo, VULKAN_HPP_NAMESPACE::ImageFormatProperties2* pImageFormatProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( pImageFormatInfo ), reinterpret_cast< VkImageFormatProperties2 *>( pImageFormatProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties; - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, imageFormatProperties, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getImageFormatProperties2KHR( const PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &imageFormatInfo ), reinterpret_cast( &imageFormatProperties ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getImageFormatProperties2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties* pMemoryProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties *>( pMemoryProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get(); - d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2* pMemoryProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties; - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return memoryProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties = structureChain.template get(); - d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast( &memoryProperties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT* pMultisampleProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast( samples ), reinterpret_cast< VkMultisamplePropertiesEXT *>( pMultisampleProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties; - d.vkGetPhysicalDeviceMultisamplePropertiesEXT( m_physicalDevice, static_cast( samples ), reinterpret_cast( &multisampleProperties ) ); - return multisampleProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pRectCount, VULKAN_HPP_NAMESPACE::Rect2D* pRects, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), pRectCount, reinterpret_cast< VkRect2D *>( pRects ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - std::vector rects; - uint32_t rectCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && rectCount ) - { - rects.resize( rectCount ); - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, reinterpret_cast( rects.data() ) ) ); - VULKAN_HPP_ASSERT( rectCount <= rects.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) ) - { - rects.resize( rectCount ); - } - return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d ) const - { - std::vector rects( rect2DAllocator ); - uint32_t rectCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && rectCount ) - { - rects.resize( rectCount ); - result = static_cast( d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast( surface ), &rectCount, reinterpret_cast( rects.data() ) ) ); - VULKAN_HPP_ASSERT( rectCount <= rects.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( rectCount < rects.size() ) ) - { - rects.resize( rectCount ); - } - return createResultValue( result, rects, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getPresentRectanglesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties; - d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get(); - d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast( &properties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast< VkPhysicalDeviceProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties; - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast( &properties ) ); - return properties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE StructureChain PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get(); - d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast( &properties ) ); - return structureChain; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast( pPerformanceQueryCreateInfo ), pNumPasses ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - uint32_t numPasses; - d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( m_physicalDevice, reinterpret_cast( &performanceQueryCreateInfo ), &numPasses ); - return numPasses; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties* pQueueFamilyProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties *>( pQueueFamilyProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const - { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const - { - std::vector queueFamilyProperties( queueFamilyPropertiesAllocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const - { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const - { - std::vector queueFamilyProperties( queueFamilyProperties2Allocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } - - template ::value, int>::type> - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount, structureChainAllocator ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t* pQueueFamilyPropertyCount, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2* pQueueFamilyProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, pQueueFamilyPropertyCount, reinterpret_cast< VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const - { - std::vector queueFamilyProperties; - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const - { - std::vector queueFamilyProperties( queueFamilyProperties2Allocator ); - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - queueFamilyProperties.resize( queueFamilyPropertyCount ); - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - return queueFamilyProperties; - } - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } - - template ::value, int>::type> - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const - { - uint32_t queueFamilyPropertyCount; - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr ); - std::vector returnVector( queueFamilyPropertyCount, structureChainAllocator ); - std::vector queueFamilyProperties( queueFamilyPropertyCount ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - queueFamilyProperties[i].pNext = - returnVector[i].template get().pNext; - } - d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast( queueFamilyProperties.data() ) ); - VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() ); - for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ ) - { - returnVector[i].template get() = queueFamilyProperties[i]; - } - return returnVector; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format format, VULKAN_HPP_NAMESPACE::ImageType type, VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, VULKAN_HPP_NAMESPACE::ImageUsageFlags usage, VULKAN_HPP_NAMESPACE::ImageTiling tiling, SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator, Dispatch const & d ) const - { - std::vector properties( sparseImageFormatPropertiesAllocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice, static_cast( format ), static_cast( type ), static_cast( samples ), static_cast( usage ), static_cast( tiling ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const - { - std::vector properties( sparseImageFormatProperties2Allocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - template - VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2* pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( pFormatInfo ), pPropertyCount, reinterpret_cast< VkSparseImageFormatProperties2 *>( pProperties ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const - { - std::vector properties; - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector PhysicalDevice::getSparseImageFormatProperties2KHR( const PhysicalDeviceSparseImageFormatInfo2 & formatInfo, SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator, Dispatch const & d ) const - { - std::vector properties( sparseImageFormatProperties2Allocator ); - uint32_t propertyCount; - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, nullptr ); - properties.resize( propertyCount ); - d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice, reinterpret_cast( &formatInfo ), &propertyCount, reinterpret_cast( properties.data() ) ); - VULKAN_HPP_ASSERT( propertyCount <= properties.size() ); - return properties; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( uint32_t* pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV* pCombinations, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, pCombinationCount, reinterpret_cast< VkFramebufferMixedSamplesCombinationNV *>( pCombinations ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d ) const - { - std::vector combinations; - uint32_t combinationCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && combinationCount ) - { - combinations.resize( combinationCount ); - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast( combinations.data() ) ) ); - VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) ) - { - combinations.resize( combinationCount ); - } - return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d ) const - { - std::vector combinations( framebufferMixedSamplesCombinationNVAllocator ); - uint32_t combinationCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && combinationCount ) - { - combinations.resize( combinationCount ); - result = static_cast( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, reinterpret_cast( combinations.data() ) ) ); - VULKAN_HPP_ASSERT( combinationCount <= combinations.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( combinationCount < combinations.size() ) ) - { - combinations.resize( combinationCount ); - } - return createResultValue( result, combinations, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT* pSurfaceCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast( surface ), reinterpret_cast< VkSurfaceCapabilities2EXT *>( pSurfaceCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( m_physicalDevice, static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR* pSurfaceCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), reinterpret_cast< VkSurfaceCapabilities2KHR *>( pSurfaceCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" ); - } - - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceCapabilities2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - StructureChain structureChain; - VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get(); - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, structureChain, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceCapabilities2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR* pSurfaceCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast< VkSurfaceCapabilitiesKHR *>( pSurfaceCapabilities ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( m_physicalDevice, static_cast( surface ), reinterpret_cast( &surfaceCapabilities ) ) ); - return createResultValue( result, surfaceCapabilities, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR* pSurfaceFormats, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormat2KHR *>( pSurfaceFormats ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - std::vector surfaceFormats; - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormats2KHR( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator, Dispatch const & d ) const - { - std::vector surfaceFormats( surfaceFormat2KHRAllocator ); - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormats2KHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pSurfaceFormatCount, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR* pSurfaceFormats, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), pSurfaceFormatCount, reinterpret_cast< VkSurfaceFormatKHR *>( pSurfaceFormats ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - std::vector surfaceFormats; - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator, Dispatch const & d ) const - { - std::vector surfaceFormats( surfaceFormatKHRAllocator ); - uint32_t surfaceFormatCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && surfaceFormatCount ) - { - surfaceFormats.resize( surfaceFormatCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast( surface ), &surfaceFormatCount, reinterpret_cast( surfaceFormats.data() ) ) ); - VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( surfaceFormatCount < surfaceFormats.size() ) ) - { - surfaceFormats.resize( surfaceFormatCount ); - } - return createResultValue( result, surfaceFormats, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfaceFormatsKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( pSurfaceInfo ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const - { - std::vector presentModes; - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModes2EXT( const PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const - { - std::vector presentModes( presentModeKHRAllocator ); - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice, reinterpret_cast( &surfaceInfo ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModes2EXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, uint32_t* pPresentModeCount, VULKAN_HPP_NAMESPACE::PresentModeKHR* pPresentModes, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), pPresentModeCount, reinterpret_cast< VkPresentModeKHR *>( pPresentModes ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - std::vector presentModes; - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, PresentModeKHRAllocator & presentModeKHRAllocator, Dispatch const & d ) const - { - std::vector presentModes( presentModeKHRAllocator ); - uint32_t presentModeCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && presentModeCount ) - { - presentModes.resize( presentModeCount ); - result = static_cast( d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast( surface ), &presentModeCount, reinterpret_cast( presentModes.data() ) ) ); - VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( presentModeCount < presentModes.size() ) ) - { - presentModes.resize( presentModeCount ); - } - return createResultValue( result, presentModes, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getSurfacePresentModesKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, VULKAN_HPP_NAMESPACE::Bool32* pSupported, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast( surface ), reinterpret_cast< VkBool32 *>( pSupported ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::Bool32 supported; - Result result = static_cast( d.vkGetPhysicalDeviceSurfaceSupportKHR( m_physicalDevice, queueFamilyIndex, static_cast( surface ), reinterpret_cast( &supported ) ) ); - return createResultValue( result, supported, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t* pToolCount, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolPropertiesEXT* pToolProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, pToolCount, reinterpret_cast< VkPhysicalDeviceToolPropertiesEXT *>( pToolProperties ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getToolPropertiesEXT( Dispatch const & d ) const - { - std::vector toolProperties; - uint32_t toolCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && toolCount ) - { - toolProperties.resize( toolCount ); - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast( toolProperties.data() ) ) ); - VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) - { - toolProperties.resize( toolCount ); - } - return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" ); - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getToolPropertiesEXT( PhysicalDeviceToolPropertiesEXTAllocator & physicalDeviceToolPropertiesEXTAllocator, Dispatch const & d ) const - { - std::vector toolProperties( physicalDeviceToolPropertiesEXTAllocator ); - uint32_t toolCount; - Result result; - do - { - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) ); - if ( ( result == Result::eSuccess ) && toolCount ) - { - toolProperties.resize( toolCount ); - result = static_cast( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast( toolProperties.data() ) ) ); - VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() ); - } - } while ( result == Result::eIncomplete ); - if ( ( result == Result::eSuccess ) && ( toolCount < toolProperties.size() ) ) - { - toolProperties.resize( toolCount ); - } - return createResultValue( result, toolProperties, VULKAN_HPP_NAMESPACE_STRING"::PhysicalDevice::getToolPropertiesEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display* display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, display ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( m_physicalDevice, queueFamilyIndex ) ); - } -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VK_USE_PLATFORM_XCB_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, connection, visual_id ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t queueFamilyIndex, xcb_connection_t & connection, xcb_visualid_t visual_id, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XCB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_KHR - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display* dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, dpy, visualID ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - - -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display* dpy, RROutput rrOutput, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, dpy, rrOutput, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast( &display ) ) ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast( &display ) ) ); - ObjectRelease deleter( *this, d ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - - -#ifdef VK_USE_PLATFORM_WIN32_KHR - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, VULKAN_HPP_NAMESPACE::DisplayKHR* pDisplay, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast< VkDisplayKHR *>( pDisplay ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( &display ) ) ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" ); - } - -# ifndef VULKAN_HPP_NO_SMART_HANDLE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType>::type PhysicalDevice::getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d ) const - { - VULKAN_HPP_NAMESPACE::DisplayKHR display; - Result result = static_cast( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast( &display ) ) ); - ObjectRelease deleter( *this, d ); - return createResultValue( result, display, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique", deleter ); - } -# endif /*VULKAN_HPP_NO_SMART_HANDLE*/ -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); - } -#else - template - VULKAN_HPP_INLINE typename ResultValueType::type PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const - { - Result result = static_cast( d.vkReleaseDisplayEXT( m_physicalDevice, static_cast( display ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::releaseDisplayEXT" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t* pCheckpointDataCount, VULKAN_HPP_NAMESPACE::CheckpointDataNV* pCheckpointData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkGetQueueCheckpointDataNV( m_queue, pCheckpointDataCount, reinterpret_cast< VkCheckpointDataNV *>( pCheckpointData ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV( Dispatch const & d ) const - { - std::vector checkpointData; - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); - return checkpointData; - } - - template ::value, int>::type > - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const - { - std::vector checkpointData( checkpointDataNVAllocator ); - uint32_t checkpointDataCount; - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr ); - checkpointData.resize( checkpointDataCount ); - d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast( checkpointData.data() ) ); - VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() ); - return checkpointData; - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::bindSparse( uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindSparseInfo* pBindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueBindSparse( m_queue, bindInfoCount, reinterpret_cast( pBindInfo ), static_cast( fence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::bindSparse( ArrayProxy const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast( bindInfo.data() ), static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueEndDebugUtilsLabelEXT( m_queue ); - } - - - template - VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT* pLabelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( pLabelInfo ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const DebugUtilsLabelEXT & labelInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast( &labelInfo ) ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR* pPresentInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueuePresentKHR( m_queue, reinterpret_cast( pPresentInfo ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const PresentInfoKHR & presentInfo, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueuePresentKHR( m_queue, reinterpret_cast( &presentInfo ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast( configuration ) ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast( configuration ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - - - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit( uint32_t submitCount, const VULKAN_HPP_NAMESPACE::SubmitInfo* pSubmits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueSubmit( m_queue, submitCount, reinterpret_cast( pSubmits ), static_cast( fence ) ) ); - } - -#ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::submit( ArrayProxy const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast( submits.data() ), static_cast( fence ) ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - - -#ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE - template - VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT - { - return static_cast( d.vkQueueWaitIdle( m_queue ) ); - } -#else - template - VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType::type Queue::waitIdle( Dispatch const & d ) const - { - Result result = static_cast( d.vkQueueWaitIdle( m_queue ) ); - return createResultValue( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" ); - } -#endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/ - -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_ENABLE_BETA_EXTENSIONS - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ -#ifdef VK_ENABLE_BETA_EXTENSIONS - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_ENABLE_BETA_EXTENSIONS*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_GGP - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_GGP*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - template <> struct StructExtends{ enum { value = true }; }; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - template <> struct StructExtends{ enum { value = true }; }; - -#if VULKAN_HPP_ENABLE_DYNAMIC_LOADER_TOOL - class DynamicLoader - { - public: -# ifdef VULKAN_HPP_NO_EXCEPTIONS - DynamicLoader( std::string const & vulkanLibraryName = {} ) VULKAN_HPP_NOEXCEPT -# else - DynamicLoader( std::string const & vulkanLibraryName = {} ) -# endif - { - if ( !vulkanLibraryName.empty() ) - { -# if defined( __linux__ ) || defined( __APPLE__ ) - m_library = dlopen( vulkanLibraryName.c_str(), RTLD_NOW | RTLD_LOCAL ); -# elif defined( _WIN32 ) - m_library = ::LoadLibraryA( vulkanLibraryName.c_str() ); -# else -# error unsupported platform -# endif - } - else - { -# if defined( __linux__ ) - m_library = dlopen( "libvulkan.so", RTLD_NOW | RTLD_LOCAL ); - if ( m_library == nullptr ) - { - m_library = dlopen( "libvulkan.so.1", RTLD_NOW | RTLD_LOCAL ); - } -# elif defined( __APPLE__ ) - m_library = dlopen( "libvulkan.dylib", RTLD_NOW | RTLD_LOCAL ); -# elif defined( _WIN32 ) - m_library = ::LoadLibraryA( "vulkan-1.dll" ); -# else -# error unsupported platform -# endif - } - -#ifndef VULKAN_HPP_NO_EXCEPTIONS - if ( m_library == nullptr ) - { - // NOTE there should be an InitializationFailedError, but msvc insists on the symbol does not exist within the scope of this function. - throw std::runtime_error( "Failed to load vulkan library!" ); - } -#endif - } - - DynamicLoader( DynamicLoader const& ) = delete; - - DynamicLoader( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT : m_library(other.m_library) - { - other.m_library = nullptr; - } - - DynamicLoader &operator=( DynamicLoader const& ) = delete; - - DynamicLoader &operator=( DynamicLoader && other ) VULKAN_HPP_NOEXCEPT - { - std::swap(m_library, other.m_library); - return *this; - } - - ~DynamicLoader() VULKAN_HPP_NOEXCEPT - { - if ( m_library ) - { -# if defined( __linux__ ) || defined( __APPLE__ ) - dlclose( m_library ); -# elif defined( _WIN32 ) - ::FreeLibrary( m_library ); -# else -# error unsupported platform -# endif - } - } - - template - T getProcAddress( const char* function ) const VULKAN_HPP_NOEXCEPT - { -# if defined( __linux__ ) || defined( __APPLE__ ) - return (T)dlsym( m_library, function ); -# elif defined( _WIN32 ) - return (T)::GetProcAddress( m_library, function ); -# else -# error unsupported platform -# endif - } - - bool success() const VULKAN_HPP_NOEXCEPT { return m_library != nullptr; } - - private: -# if defined( __linux__ ) || defined( __APPLE__ ) - void * m_library; -# elif defined( _WIN32 ) - ::HINSTANCE m_library; -# else -# error unsupported platform -# endif - }; -#endif - - - class DispatchLoaderDynamic - { - public: -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkAcquireFullScreenExclusiveModeEXT vkAcquireFullScreenExclusiveModeEXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkAcquireNextImage2KHR vkAcquireNextImage2KHR = 0; - PFN_vkAcquireNextImageKHR vkAcquireNextImageKHR = 0; - PFN_vkAcquirePerformanceConfigurationINTEL vkAcquirePerformanceConfigurationINTEL = 0; - PFN_vkAcquireProfilingLockKHR vkAcquireProfilingLockKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkAcquireWinrtDisplayNV vkAcquireWinrtDisplayNV = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - PFN_vkAcquireXlibDisplayEXT vkAcquireXlibDisplayEXT = 0; -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - PFN_vkAllocateCommandBuffers vkAllocateCommandBuffers = 0; - PFN_vkAllocateDescriptorSets vkAllocateDescriptorSets = 0; - PFN_vkAllocateMemory vkAllocateMemory = 0; - PFN_vkBeginCommandBuffer vkBeginCommandBuffer = 0; - PFN_vkBindAccelerationStructureMemoryNV vkBindAccelerationStructureMemoryNV = 0; - PFN_vkBindBufferMemory vkBindBufferMemory = 0; - PFN_vkBindBufferMemory2KHR vkBindBufferMemory2KHR = 0; - PFN_vkBindBufferMemory2 vkBindBufferMemory2 = 0; - PFN_vkBindImageMemory vkBindImageMemory = 0; - PFN_vkBindImageMemory2KHR vkBindImageMemory2KHR = 0; - PFN_vkBindImageMemory2 vkBindImageMemory2 = 0; - PFN_vkBuildAccelerationStructuresKHR vkBuildAccelerationStructuresKHR = 0; - PFN_vkCmdBeginConditionalRenderingEXT vkCmdBeginConditionalRenderingEXT = 0; - PFN_vkCmdBeginDebugUtilsLabelEXT vkCmdBeginDebugUtilsLabelEXT = 0; - PFN_vkCmdBeginQuery vkCmdBeginQuery = 0; - PFN_vkCmdBeginQueryIndexedEXT vkCmdBeginQueryIndexedEXT = 0; - PFN_vkCmdBeginRenderPass vkCmdBeginRenderPass = 0; - PFN_vkCmdBeginRenderPass2KHR vkCmdBeginRenderPass2KHR = 0; - PFN_vkCmdBeginRenderPass2 vkCmdBeginRenderPass2 = 0; - PFN_vkCmdBeginTransformFeedbackEXT vkCmdBeginTransformFeedbackEXT = 0; - PFN_vkCmdBindDescriptorSets vkCmdBindDescriptorSets = 0; - PFN_vkCmdBindIndexBuffer vkCmdBindIndexBuffer = 0; - PFN_vkCmdBindPipeline vkCmdBindPipeline = 0; - PFN_vkCmdBindPipelineShaderGroupNV vkCmdBindPipelineShaderGroupNV = 0; - PFN_vkCmdBindShadingRateImageNV vkCmdBindShadingRateImageNV = 0; - PFN_vkCmdBindTransformFeedbackBuffersEXT vkCmdBindTransformFeedbackBuffersEXT = 0; - PFN_vkCmdBindVertexBuffers vkCmdBindVertexBuffers = 0; - PFN_vkCmdBindVertexBuffers2EXT vkCmdBindVertexBuffers2EXT = 0; - PFN_vkCmdBlitImage vkCmdBlitImage = 0; - PFN_vkCmdBlitImage2KHR vkCmdBlitImage2KHR = 0; - PFN_vkCmdBuildAccelerationStructureNV vkCmdBuildAccelerationStructureNV = 0; - PFN_vkCmdBuildAccelerationStructuresIndirectKHR vkCmdBuildAccelerationStructuresIndirectKHR = 0; - PFN_vkCmdBuildAccelerationStructuresKHR vkCmdBuildAccelerationStructuresKHR = 0; - PFN_vkCmdClearAttachments vkCmdClearAttachments = 0; - PFN_vkCmdClearColorImage vkCmdClearColorImage = 0; - PFN_vkCmdClearDepthStencilImage vkCmdClearDepthStencilImage = 0; - PFN_vkCmdCopyAccelerationStructureKHR vkCmdCopyAccelerationStructureKHR = 0; - PFN_vkCmdCopyAccelerationStructureNV vkCmdCopyAccelerationStructureNV = 0; - PFN_vkCmdCopyAccelerationStructureToMemoryKHR vkCmdCopyAccelerationStructureToMemoryKHR = 0; - PFN_vkCmdCopyBuffer vkCmdCopyBuffer = 0; - PFN_vkCmdCopyBuffer2KHR vkCmdCopyBuffer2KHR = 0; - PFN_vkCmdCopyBufferToImage vkCmdCopyBufferToImage = 0; - PFN_vkCmdCopyBufferToImage2KHR vkCmdCopyBufferToImage2KHR = 0; - PFN_vkCmdCopyImage vkCmdCopyImage = 0; - PFN_vkCmdCopyImage2KHR vkCmdCopyImage2KHR = 0; - PFN_vkCmdCopyImageToBuffer vkCmdCopyImageToBuffer = 0; - PFN_vkCmdCopyImageToBuffer2KHR vkCmdCopyImageToBuffer2KHR = 0; - PFN_vkCmdCopyMemoryToAccelerationStructureKHR vkCmdCopyMemoryToAccelerationStructureKHR = 0; - PFN_vkCmdCopyQueryPoolResults vkCmdCopyQueryPoolResults = 0; - PFN_vkCmdDebugMarkerBeginEXT vkCmdDebugMarkerBeginEXT = 0; - PFN_vkCmdDebugMarkerEndEXT vkCmdDebugMarkerEndEXT = 0; - PFN_vkCmdDebugMarkerInsertEXT vkCmdDebugMarkerInsertEXT = 0; - PFN_vkCmdDispatch vkCmdDispatch = 0; - PFN_vkCmdDispatchBaseKHR vkCmdDispatchBaseKHR = 0; - PFN_vkCmdDispatchBase vkCmdDispatchBase = 0; - PFN_vkCmdDispatchIndirect vkCmdDispatchIndirect = 0; - PFN_vkCmdDraw vkCmdDraw = 0; - PFN_vkCmdDrawIndexed vkCmdDrawIndexed = 0; - PFN_vkCmdDrawIndexedIndirect vkCmdDrawIndexedIndirect = 0; - PFN_vkCmdDrawIndexedIndirectCountAMD vkCmdDrawIndexedIndirectCountAMD = 0; - PFN_vkCmdDrawIndexedIndirectCountKHR vkCmdDrawIndexedIndirectCountKHR = 0; - PFN_vkCmdDrawIndexedIndirectCount vkCmdDrawIndexedIndirectCount = 0; - PFN_vkCmdDrawIndirect vkCmdDrawIndirect = 0; - PFN_vkCmdDrawIndirectByteCountEXT vkCmdDrawIndirectByteCountEXT = 0; - PFN_vkCmdDrawIndirectCountAMD vkCmdDrawIndirectCountAMD = 0; - PFN_vkCmdDrawIndirectCountKHR vkCmdDrawIndirectCountKHR = 0; - PFN_vkCmdDrawIndirectCount vkCmdDrawIndirectCount = 0; - PFN_vkCmdDrawMeshTasksIndirectCountNV vkCmdDrawMeshTasksIndirectCountNV = 0; - PFN_vkCmdDrawMeshTasksIndirectNV vkCmdDrawMeshTasksIndirectNV = 0; - PFN_vkCmdDrawMeshTasksNV vkCmdDrawMeshTasksNV = 0; - PFN_vkCmdEndConditionalRenderingEXT vkCmdEndConditionalRenderingEXT = 0; - PFN_vkCmdEndDebugUtilsLabelEXT vkCmdEndDebugUtilsLabelEXT = 0; - PFN_vkCmdEndQuery vkCmdEndQuery = 0; - PFN_vkCmdEndQueryIndexedEXT vkCmdEndQueryIndexedEXT = 0; - PFN_vkCmdEndRenderPass vkCmdEndRenderPass = 0; - PFN_vkCmdEndRenderPass2KHR vkCmdEndRenderPass2KHR = 0; - PFN_vkCmdEndRenderPass2 vkCmdEndRenderPass2 = 0; - PFN_vkCmdEndTransformFeedbackEXT vkCmdEndTransformFeedbackEXT = 0; - PFN_vkCmdExecuteCommands vkCmdExecuteCommands = 0; - PFN_vkCmdExecuteGeneratedCommandsNV vkCmdExecuteGeneratedCommandsNV = 0; - PFN_vkCmdFillBuffer vkCmdFillBuffer = 0; - PFN_vkCmdInsertDebugUtilsLabelEXT vkCmdInsertDebugUtilsLabelEXT = 0; - PFN_vkCmdNextSubpass vkCmdNextSubpass = 0; - PFN_vkCmdNextSubpass2KHR vkCmdNextSubpass2KHR = 0; - PFN_vkCmdNextSubpass2 vkCmdNextSubpass2 = 0; - PFN_vkCmdPipelineBarrier vkCmdPipelineBarrier = 0; - PFN_vkCmdPreprocessGeneratedCommandsNV vkCmdPreprocessGeneratedCommandsNV = 0; - PFN_vkCmdPushConstants vkCmdPushConstants = 0; - PFN_vkCmdPushDescriptorSetKHR vkCmdPushDescriptorSetKHR = 0; - PFN_vkCmdPushDescriptorSetWithTemplateKHR vkCmdPushDescriptorSetWithTemplateKHR = 0; - PFN_vkCmdResetEvent vkCmdResetEvent = 0; - PFN_vkCmdResetQueryPool vkCmdResetQueryPool = 0; - PFN_vkCmdResolveImage vkCmdResolveImage = 0; - PFN_vkCmdResolveImage2KHR vkCmdResolveImage2KHR = 0; - PFN_vkCmdSetBlendConstants vkCmdSetBlendConstants = 0; - PFN_vkCmdSetCheckpointNV vkCmdSetCheckpointNV = 0; - PFN_vkCmdSetCoarseSampleOrderNV vkCmdSetCoarseSampleOrderNV = 0; - PFN_vkCmdSetCullModeEXT vkCmdSetCullModeEXT = 0; - PFN_vkCmdSetDepthBias vkCmdSetDepthBias = 0; - PFN_vkCmdSetDepthBounds vkCmdSetDepthBounds = 0; - PFN_vkCmdSetDepthBoundsTestEnableEXT vkCmdSetDepthBoundsTestEnableEXT = 0; - PFN_vkCmdSetDepthCompareOpEXT vkCmdSetDepthCompareOpEXT = 0; - PFN_vkCmdSetDepthTestEnableEXT vkCmdSetDepthTestEnableEXT = 0; - PFN_vkCmdSetDepthWriteEnableEXT vkCmdSetDepthWriteEnableEXT = 0; - PFN_vkCmdSetDeviceMaskKHR vkCmdSetDeviceMaskKHR = 0; - PFN_vkCmdSetDeviceMask vkCmdSetDeviceMask = 0; - PFN_vkCmdSetDiscardRectangleEXT vkCmdSetDiscardRectangleEXT = 0; - PFN_vkCmdSetEvent vkCmdSetEvent = 0; - PFN_vkCmdSetExclusiveScissorNV vkCmdSetExclusiveScissorNV = 0; - PFN_vkCmdSetFragmentShadingRateEnumNV vkCmdSetFragmentShadingRateEnumNV = 0; - PFN_vkCmdSetFragmentShadingRateKHR vkCmdSetFragmentShadingRateKHR = 0; - PFN_vkCmdSetFrontFaceEXT vkCmdSetFrontFaceEXT = 0; - PFN_vkCmdSetLineStippleEXT vkCmdSetLineStippleEXT = 0; - PFN_vkCmdSetLineWidth vkCmdSetLineWidth = 0; - PFN_vkCmdSetPerformanceMarkerINTEL vkCmdSetPerformanceMarkerINTEL = 0; - PFN_vkCmdSetPerformanceOverrideINTEL vkCmdSetPerformanceOverrideINTEL = 0; - PFN_vkCmdSetPerformanceStreamMarkerINTEL vkCmdSetPerformanceStreamMarkerINTEL = 0; - PFN_vkCmdSetPrimitiveTopologyEXT vkCmdSetPrimitiveTopologyEXT = 0; - PFN_vkCmdSetRayTracingPipelineStackSizeKHR vkCmdSetRayTracingPipelineStackSizeKHR = 0; - PFN_vkCmdSetSampleLocationsEXT vkCmdSetSampleLocationsEXT = 0; - PFN_vkCmdSetScissor vkCmdSetScissor = 0; - PFN_vkCmdSetScissorWithCountEXT vkCmdSetScissorWithCountEXT = 0; - PFN_vkCmdSetStencilCompareMask vkCmdSetStencilCompareMask = 0; - PFN_vkCmdSetStencilOpEXT vkCmdSetStencilOpEXT = 0; - PFN_vkCmdSetStencilReference vkCmdSetStencilReference = 0; - PFN_vkCmdSetStencilTestEnableEXT vkCmdSetStencilTestEnableEXT = 0; - PFN_vkCmdSetStencilWriteMask vkCmdSetStencilWriteMask = 0; - PFN_vkCmdSetViewport vkCmdSetViewport = 0; - PFN_vkCmdSetViewportShadingRatePaletteNV vkCmdSetViewportShadingRatePaletteNV = 0; - PFN_vkCmdSetViewportWScalingNV vkCmdSetViewportWScalingNV = 0; - PFN_vkCmdSetViewportWithCountEXT vkCmdSetViewportWithCountEXT = 0; - PFN_vkCmdTraceRaysIndirectKHR vkCmdTraceRaysIndirectKHR = 0; - PFN_vkCmdTraceRaysKHR vkCmdTraceRaysKHR = 0; - PFN_vkCmdTraceRaysNV vkCmdTraceRaysNV = 0; - PFN_vkCmdUpdateBuffer vkCmdUpdateBuffer = 0; - PFN_vkCmdWaitEvents vkCmdWaitEvents = 0; - PFN_vkCmdWriteAccelerationStructuresPropertiesKHR vkCmdWriteAccelerationStructuresPropertiesKHR = 0; - PFN_vkCmdWriteAccelerationStructuresPropertiesNV vkCmdWriteAccelerationStructuresPropertiesNV = 0; - PFN_vkCmdWriteBufferMarkerAMD vkCmdWriteBufferMarkerAMD = 0; - PFN_vkCmdWriteTimestamp vkCmdWriteTimestamp = 0; - PFN_vkCompileDeferredNV vkCompileDeferredNV = 0; - PFN_vkCopyAccelerationStructureKHR vkCopyAccelerationStructureKHR = 0; - PFN_vkCopyAccelerationStructureToMemoryKHR vkCopyAccelerationStructureToMemoryKHR = 0; - PFN_vkCopyMemoryToAccelerationStructureKHR vkCopyMemoryToAccelerationStructureKHR = 0; - PFN_vkCreateAccelerationStructureKHR vkCreateAccelerationStructureKHR = 0; - PFN_vkCreateAccelerationStructureNV vkCreateAccelerationStructureNV = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - PFN_vkCreateAndroidSurfaceKHR vkCreateAndroidSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkCreateBuffer vkCreateBuffer = 0; - PFN_vkCreateBufferView vkCreateBufferView = 0; - PFN_vkCreateCommandPool vkCreateCommandPool = 0; - PFN_vkCreateComputePipelines vkCreateComputePipelines = 0; - PFN_vkCreateDebugReportCallbackEXT vkCreateDebugReportCallbackEXT = 0; - PFN_vkCreateDebugUtilsMessengerEXT vkCreateDebugUtilsMessengerEXT = 0; - PFN_vkCreateDeferredOperationKHR vkCreateDeferredOperationKHR = 0; - PFN_vkCreateDescriptorPool vkCreateDescriptorPool = 0; - PFN_vkCreateDescriptorSetLayout vkCreateDescriptorSetLayout = 0; - PFN_vkCreateDescriptorUpdateTemplateKHR vkCreateDescriptorUpdateTemplateKHR = 0; - PFN_vkCreateDescriptorUpdateTemplate vkCreateDescriptorUpdateTemplate = 0; - PFN_vkCreateDevice vkCreateDevice = 0; -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - PFN_vkCreateDirectFBSurfaceEXT vkCreateDirectFBSurfaceEXT = 0; -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - PFN_vkCreateDisplayModeKHR vkCreateDisplayModeKHR = 0; - PFN_vkCreateDisplayPlaneSurfaceKHR vkCreateDisplayPlaneSurfaceKHR = 0; - PFN_vkCreateEvent vkCreateEvent = 0; - PFN_vkCreateFence vkCreateFence = 0; - PFN_vkCreateFramebuffer vkCreateFramebuffer = 0; - PFN_vkCreateGraphicsPipelines vkCreateGraphicsPipelines = 0; - PFN_vkCreateHeadlessSurfaceEXT vkCreateHeadlessSurfaceEXT = 0; -#ifdef VK_USE_PLATFORM_IOS_MVK - PFN_vkCreateIOSSurfaceMVK vkCreateIOSSurfaceMVK = 0; -#endif /*VK_USE_PLATFORM_IOS_MVK*/ - PFN_vkCreateImage vkCreateImage = 0; -#ifdef VK_USE_PLATFORM_FUCHSIA - PFN_vkCreateImagePipeSurfaceFUCHSIA vkCreateImagePipeSurfaceFUCHSIA = 0; -#endif /*VK_USE_PLATFORM_FUCHSIA*/ - PFN_vkCreateImageView vkCreateImageView = 0; - PFN_vkCreateIndirectCommandsLayoutNV vkCreateIndirectCommandsLayoutNV = 0; - PFN_vkCreateInstance vkCreateInstance = 0; -#ifdef VK_USE_PLATFORM_MACOS_MVK - PFN_vkCreateMacOSSurfaceMVK vkCreateMacOSSurfaceMVK = 0; -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - PFN_vkCreateMetalSurfaceEXT vkCreateMetalSurfaceEXT = 0; -#endif /*VK_USE_PLATFORM_METAL_EXT*/ - PFN_vkCreatePipelineCache vkCreatePipelineCache = 0; - PFN_vkCreatePipelineLayout vkCreatePipelineLayout = 0; - PFN_vkCreatePrivateDataSlotEXT vkCreatePrivateDataSlotEXT = 0; - PFN_vkCreateQueryPool vkCreateQueryPool = 0; - PFN_vkCreateRayTracingPipelinesKHR vkCreateRayTracingPipelinesKHR = 0; - PFN_vkCreateRayTracingPipelinesNV vkCreateRayTracingPipelinesNV = 0; - PFN_vkCreateRenderPass vkCreateRenderPass = 0; - PFN_vkCreateRenderPass2KHR vkCreateRenderPass2KHR = 0; - PFN_vkCreateRenderPass2 vkCreateRenderPass2 = 0; - PFN_vkCreateSampler vkCreateSampler = 0; - PFN_vkCreateSamplerYcbcrConversionKHR vkCreateSamplerYcbcrConversionKHR = 0; - PFN_vkCreateSamplerYcbcrConversion vkCreateSamplerYcbcrConversion = 0; - PFN_vkCreateSemaphore vkCreateSemaphore = 0; - PFN_vkCreateShaderModule vkCreateShaderModule = 0; - PFN_vkCreateSharedSwapchainsKHR vkCreateSharedSwapchainsKHR = 0; -#ifdef VK_USE_PLATFORM_GGP - PFN_vkCreateStreamDescriptorSurfaceGGP vkCreateStreamDescriptorSurfaceGGP = 0; -#endif /*VK_USE_PLATFORM_GGP*/ - PFN_vkCreateSwapchainKHR vkCreateSwapchainKHR = 0; - PFN_vkCreateValidationCacheEXT vkCreateValidationCacheEXT = 0; -#ifdef VK_USE_PLATFORM_VI_NN - PFN_vkCreateViSurfaceNN vkCreateViSurfaceNN = 0; -#endif /*VK_USE_PLATFORM_VI_NN*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - PFN_vkCreateWaylandSurfaceKHR vkCreateWaylandSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkCreateWin32SurfaceKHR vkCreateWin32SurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - PFN_vkCreateXcbSurfaceKHR vkCreateXcbSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - PFN_vkCreateXlibSurfaceKHR vkCreateXlibSurfaceKHR = 0; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - PFN_vkDebugMarkerSetObjectNameEXT vkDebugMarkerSetObjectNameEXT = 0; - PFN_vkDebugMarkerSetObjectTagEXT vkDebugMarkerSetObjectTagEXT = 0; - PFN_vkDebugReportMessageEXT vkDebugReportMessageEXT = 0; - PFN_vkDeferredOperationJoinKHR vkDeferredOperationJoinKHR = 0; - PFN_vkDestroyAccelerationStructureKHR vkDestroyAccelerationStructureKHR = 0; - PFN_vkDestroyAccelerationStructureNV vkDestroyAccelerationStructureNV = 0; - PFN_vkDestroyBuffer vkDestroyBuffer = 0; - PFN_vkDestroyBufferView vkDestroyBufferView = 0; - PFN_vkDestroyCommandPool vkDestroyCommandPool = 0; - PFN_vkDestroyDebugReportCallbackEXT vkDestroyDebugReportCallbackEXT = 0; - PFN_vkDestroyDebugUtilsMessengerEXT vkDestroyDebugUtilsMessengerEXT = 0; - PFN_vkDestroyDeferredOperationKHR vkDestroyDeferredOperationKHR = 0; - PFN_vkDestroyDescriptorPool vkDestroyDescriptorPool = 0; - PFN_vkDestroyDescriptorSetLayout vkDestroyDescriptorSetLayout = 0; - PFN_vkDestroyDescriptorUpdateTemplateKHR vkDestroyDescriptorUpdateTemplateKHR = 0; - PFN_vkDestroyDescriptorUpdateTemplate vkDestroyDescriptorUpdateTemplate = 0; - PFN_vkDestroyDevice vkDestroyDevice = 0; - PFN_vkDestroyEvent vkDestroyEvent = 0; - PFN_vkDestroyFence vkDestroyFence = 0; - PFN_vkDestroyFramebuffer vkDestroyFramebuffer = 0; - PFN_vkDestroyImage vkDestroyImage = 0; - PFN_vkDestroyImageView vkDestroyImageView = 0; - PFN_vkDestroyIndirectCommandsLayoutNV vkDestroyIndirectCommandsLayoutNV = 0; - PFN_vkDestroyInstance vkDestroyInstance = 0; - PFN_vkDestroyPipeline vkDestroyPipeline = 0; - PFN_vkDestroyPipelineCache vkDestroyPipelineCache = 0; - PFN_vkDestroyPipelineLayout vkDestroyPipelineLayout = 0; - PFN_vkDestroyPrivateDataSlotEXT vkDestroyPrivateDataSlotEXT = 0; - PFN_vkDestroyQueryPool vkDestroyQueryPool = 0; - PFN_vkDestroyRenderPass vkDestroyRenderPass = 0; - PFN_vkDestroySampler vkDestroySampler = 0; - PFN_vkDestroySamplerYcbcrConversionKHR vkDestroySamplerYcbcrConversionKHR = 0; - PFN_vkDestroySamplerYcbcrConversion vkDestroySamplerYcbcrConversion = 0; - PFN_vkDestroySemaphore vkDestroySemaphore = 0; - PFN_vkDestroyShaderModule vkDestroyShaderModule = 0; - PFN_vkDestroySurfaceKHR vkDestroySurfaceKHR = 0; - PFN_vkDestroySwapchainKHR vkDestroySwapchainKHR = 0; - PFN_vkDestroyValidationCacheEXT vkDestroyValidationCacheEXT = 0; - PFN_vkDeviceWaitIdle vkDeviceWaitIdle = 0; - PFN_vkDisplayPowerControlEXT vkDisplayPowerControlEXT = 0; - PFN_vkEndCommandBuffer vkEndCommandBuffer = 0; - PFN_vkEnumerateDeviceExtensionProperties vkEnumerateDeviceExtensionProperties = 0; - PFN_vkEnumerateDeviceLayerProperties vkEnumerateDeviceLayerProperties = 0; - PFN_vkEnumerateInstanceExtensionProperties vkEnumerateInstanceExtensionProperties = 0; - PFN_vkEnumerateInstanceLayerProperties vkEnumerateInstanceLayerProperties = 0; - PFN_vkEnumerateInstanceVersion vkEnumerateInstanceVersion = 0; - PFN_vkEnumeratePhysicalDeviceGroupsKHR vkEnumeratePhysicalDeviceGroupsKHR = 0; - PFN_vkEnumeratePhysicalDeviceGroups vkEnumeratePhysicalDeviceGroups = 0; - PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = 0; - PFN_vkEnumeratePhysicalDevices vkEnumeratePhysicalDevices = 0; - PFN_vkFlushMappedMemoryRanges vkFlushMappedMemoryRanges = 0; - PFN_vkFreeCommandBuffers vkFreeCommandBuffers = 0; - PFN_vkFreeDescriptorSets vkFreeDescriptorSets = 0; - PFN_vkFreeMemory vkFreeMemory = 0; - PFN_vkGetAccelerationStructureBuildSizesKHR vkGetAccelerationStructureBuildSizesKHR = 0; - PFN_vkGetAccelerationStructureDeviceAddressKHR vkGetAccelerationStructureDeviceAddressKHR = 0; - PFN_vkGetAccelerationStructureHandleNV vkGetAccelerationStructureHandleNV = 0; - PFN_vkGetAccelerationStructureMemoryRequirementsNV vkGetAccelerationStructureMemoryRequirementsNV = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - PFN_vkGetAndroidHardwareBufferPropertiesANDROID vkGetAndroidHardwareBufferPropertiesANDROID = 0; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkGetBufferDeviceAddressEXT vkGetBufferDeviceAddressEXT = 0; - PFN_vkGetBufferDeviceAddressKHR vkGetBufferDeviceAddressKHR = 0; - PFN_vkGetBufferDeviceAddress vkGetBufferDeviceAddress = 0; - PFN_vkGetBufferMemoryRequirements vkGetBufferMemoryRequirements = 0; - PFN_vkGetBufferMemoryRequirements2KHR vkGetBufferMemoryRequirements2KHR = 0; - PFN_vkGetBufferMemoryRequirements2 vkGetBufferMemoryRequirements2 = 0; - PFN_vkGetBufferOpaqueCaptureAddressKHR vkGetBufferOpaqueCaptureAddressKHR = 0; - PFN_vkGetBufferOpaqueCaptureAddress vkGetBufferOpaqueCaptureAddress = 0; - PFN_vkGetCalibratedTimestampsEXT vkGetCalibratedTimestampsEXT = 0; - PFN_vkGetDeferredOperationMaxConcurrencyKHR vkGetDeferredOperationMaxConcurrencyKHR = 0; - PFN_vkGetDeferredOperationResultKHR vkGetDeferredOperationResultKHR = 0; - PFN_vkGetDescriptorSetLayoutSupportKHR vkGetDescriptorSetLayoutSupportKHR = 0; - PFN_vkGetDescriptorSetLayoutSupport vkGetDescriptorSetLayoutSupport = 0; - PFN_vkGetDeviceAccelerationStructureCompatibilityKHR vkGetDeviceAccelerationStructureCompatibilityKHR = 0; - PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR vkGetDeviceGroupPeerMemoryFeaturesKHR = 0; - PFN_vkGetDeviceGroupPeerMemoryFeatures vkGetDeviceGroupPeerMemoryFeatures = 0; - PFN_vkGetDeviceGroupPresentCapabilitiesKHR vkGetDeviceGroupPresentCapabilitiesKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetDeviceGroupSurfacePresentModes2EXT vkGetDeviceGroupSurfacePresentModes2EXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetDeviceGroupSurfacePresentModesKHR vkGetDeviceGroupSurfacePresentModesKHR = 0; - PFN_vkGetDeviceMemoryCommitment vkGetDeviceMemoryCommitment = 0; - PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR vkGetDeviceMemoryOpaqueCaptureAddressKHR = 0; - PFN_vkGetDeviceMemoryOpaqueCaptureAddress vkGetDeviceMemoryOpaqueCaptureAddress = 0; - PFN_vkGetDeviceProcAddr vkGetDeviceProcAddr = 0; - PFN_vkGetDeviceQueue vkGetDeviceQueue = 0; - PFN_vkGetDeviceQueue2 vkGetDeviceQueue2 = 0; - PFN_vkGetDisplayModeProperties2KHR vkGetDisplayModeProperties2KHR = 0; - PFN_vkGetDisplayModePropertiesKHR vkGetDisplayModePropertiesKHR = 0; - PFN_vkGetDisplayPlaneCapabilities2KHR vkGetDisplayPlaneCapabilities2KHR = 0; - PFN_vkGetDisplayPlaneCapabilitiesKHR vkGetDisplayPlaneCapabilitiesKHR = 0; - PFN_vkGetDisplayPlaneSupportedDisplaysKHR vkGetDisplayPlaneSupportedDisplaysKHR = 0; - PFN_vkGetEventStatus vkGetEventStatus = 0; - PFN_vkGetFenceFdKHR vkGetFenceFdKHR = 0; - PFN_vkGetFenceStatus vkGetFenceStatus = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetFenceWin32HandleKHR vkGetFenceWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetGeneratedCommandsMemoryRequirementsNV vkGetGeneratedCommandsMemoryRequirementsNV = 0; - PFN_vkGetImageDrmFormatModifierPropertiesEXT vkGetImageDrmFormatModifierPropertiesEXT = 0; - PFN_vkGetImageMemoryRequirements vkGetImageMemoryRequirements = 0; - PFN_vkGetImageMemoryRequirements2KHR vkGetImageMemoryRequirements2KHR = 0; - PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2 = 0; - PFN_vkGetImageSparseMemoryRequirements vkGetImageSparseMemoryRequirements = 0; - PFN_vkGetImageSparseMemoryRequirements2KHR vkGetImageSparseMemoryRequirements2KHR = 0; - PFN_vkGetImageSparseMemoryRequirements2 vkGetImageSparseMemoryRequirements2 = 0; - PFN_vkGetImageSubresourceLayout vkGetImageSubresourceLayout = 0; - PFN_vkGetImageViewAddressNVX vkGetImageViewAddressNVX = 0; - PFN_vkGetImageViewHandleNVX vkGetImageViewHandleNVX = 0; - PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = 0; -#ifdef VK_USE_PLATFORM_ANDROID_KHR - PFN_vkGetMemoryAndroidHardwareBufferANDROID vkGetMemoryAndroidHardwareBufferANDROID = 0; -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - PFN_vkGetMemoryFdKHR vkGetMemoryFdKHR = 0; - PFN_vkGetMemoryFdPropertiesKHR vkGetMemoryFdPropertiesKHR = 0; - PFN_vkGetMemoryHostPointerPropertiesEXT vkGetMemoryHostPointerPropertiesEXT = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetMemoryWin32HandleKHR vkGetMemoryWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetMemoryWin32HandleNV vkGetMemoryWin32HandleNV = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetMemoryWin32HandlePropertiesKHR vkGetMemoryWin32HandlePropertiesKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetPastPresentationTimingGOOGLE vkGetPastPresentationTimingGOOGLE = 0; - PFN_vkGetPerformanceParameterINTEL vkGetPerformanceParameterINTEL = 0; - PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = 0; - PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = 0; -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT vkGetPhysicalDeviceDirectFBPresentationSupportEXT = 0; -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR vkGetPhysicalDeviceDisplayPlaneProperties2KHR = 0; - PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR vkGetPhysicalDeviceDisplayPlanePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceDisplayProperties2KHR vkGetPhysicalDeviceDisplayProperties2KHR = 0; - PFN_vkGetPhysicalDeviceDisplayPropertiesKHR vkGetPhysicalDeviceDisplayPropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR vkGetPhysicalDeviceExternalBufferPropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalBufferProperties vkGetPhysicalDeviceExternalBufferProperties = 0; - PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR vkGetPhysicalDeviceExternalFencePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalFenceProperties vkGetPhysicalDeviceExternalFenceProperties = 0; - PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV vkGetPhysicalDeviceExternalImageFormatPropertiesNV = 0; - PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = 0; - PFN_vkGetPhysicalDeviceExternalSemaphoreProperties vkGetPhysicalDeviceExternalSemaphoreProperties = 0; - PFN_vkGetPhysicalDeviceFeatures vkGetPhysicalDeviceFeatures = 0; - PFN_vkGetPhysicalDeviceFeatures2KHR vkGetPhysicalDeviceFeatures2KHR = 0; - PFN_vkGetPhysicalDeviceFeatures2 vkGetPhysicalDeviceFeatures2 = 0; - PFN_vkGetPhysicalDeviceFormatProperties vkGetPhysicalDeviceFormatProperties = 0; - PFN_vkGetPhysicalDeviceFormatProperties2KHR vkGetPhysicalDeviceFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceFormatProperties2 vkGetPhysicalDeviceFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR vkGetPhysicalDeviceFragmentShadingRatesKHR = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties vkGetPhysicalDeviceImageFormatProperties = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties2KHR vkGetPhysicalDeviceImageFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceImageFormatProperties2 vkGetPhysicalDeviceImageFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceMemoryProperties vkGetPhysicalDeviceMemoryProperties = 0; - PFN_vkGetPhysicalDeviceMemoryProperties2KHR vkGetPhysicalDeviceMemoryProperties2KHR = 0; - PFN_vkGetPhysicalDeviceMemoryProperties2 vkGetPhysicalDeviceMemoryProperties2 = 0; - PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT vkGetPhysicalDeviceMultisamplePropertiesEXT = 0; - PFN_vkGetPhysicalDevicePresentRectanglesKHR vkGetPhysicalDevicePresentRectanglesKHR = 0; - PFN_vkGetPhysicalDeviceProperties vkGetPhysicalDeviceProperties = 0; - PFN_vkGetPhysicalDeviceProperties2KHR vkGetPhysicalDeviceProperties2KHR = 0; - PFN_vkGetPhysicalDeviceProperties2 vkGetPhysicalDeviceProperties2 = 0; - PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties vkGetPhysicalDeviceQueueFamilyProperties = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR vkGetPhysicalDeviceQueueFamilyProperties2KHR = 0; - PFN_vkGetPhysicalDeviceQueueFamilyProperties2 vkGetPhysicalDeviceQueueFamilyProperties2 = 0; - PFN_vkGetPhysicalDeviceSparseImageFormatProperties vkGetPhysicalDeviceSparseImageFormatProperties = 0; - PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR vkGetPhysicalDeviceSparseImageFormatProperties2KHR = 0; - PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 vkGetPhysicalDeviceSparseImageFormatProperties2 = 0; - PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = 0; - PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT vkGetPhysicalDeviceSurfaceCapabilities2EXT = 0; - PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR vkGetPhysicalDeviceSurfaceCapabilities2KHR = 0; - PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR vkGetPhysicalDeviceSurfaceCapabilitiesKHR = 0; - PFN_vkGetPhysicalDeviceSurfaceFormats2KHR vkGetPhysicalDeviceSurfaceFormats2KHR = 0; - PFN_vkGetPhysicalDeviceSurfaceFormatsKHR vkGetPhysicalDeviceSurfaceFormatsKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT vkGetPhysicalDeviceSurfacePresentModes2EXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetPhysicalDeviceSurfacePresentModesKHR vkGetPhysicalDeviceSurfacePresentModesKHR = 0; - PFN_vkGetPhysicalDeviceSurfaceSupportKHR vkGetPhysicalDeviceSurfaceSupportKHR = 0; - PFN_vkGetPhysicalDeviceToolPropertiesEXT vkGetPhysicalDeviceToolPropertiesEXT = 0; -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR vkGetPhysicalDeviceWaylandPresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR vkGetPhysicalDeviceWin32PresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR vkGetPhysicalDeviceXcbPresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR vkGetPhysicalDeviceXlibPresentationSupportKHR = 0; -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - PFN_vkGetPipelineCacheData vkGetPipelineCacheData = 0; - PFN_vkGetPipelineExecutableInternalRepresentationsKHR vkGetPipelineExecutableInternalRepresentationsKHR = 0; - PFN_vkGetPipelineExecutablePropertiesKHR vkGetPipelineExecutablePropertiesKHR = 0; - PFN_vkGetPipelineExecutableStatisticsKHR vkGetPipelineExecutableStatisticsKHR = 0; - PFN_vkGetPrivateDataEXT vkGetPrivateDataEXT = 0; - PFN_vkGetQueryPoolResults vkGetQueryPoolResults = 0; - PFN_vkGetQueueCheckpointDataNV vkGetQueueCheckpointDataNV = 0; -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - PFN_vkGetRandROutputDisplayEXT vkGetRandROutputDisplayEXT = 0; -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ - PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = 0; - PFN_vkGetRayTracingShaderGroupHandlesNV vkGetRayTracingShaderGroupHandlesNV = 0; - PFN_vkGetRayTracingShaderGroupHandlesKHR vkGetRayTracingShaderGroupHandlesKHR = 0; - PFN_vkGetRayTracingShaderGroupStackSizeKHR vkGetRayTracingShaderGroupStackSizeKHR = 0; - PFN_vkGetRefreshCycleDurationGOOGLE vkGetRefreshCycleDurationGOOGLE = 0; - PFN_vkGetRenderAreaGranularity vkGetRenderAreaGranularity = 0; - PFN_vkGetSemaphoreCounterValueKHR vkGetSemaphoreCounterValueKHR = 0; - PFN_vkGetSemaphoreCounterValue vkGetSemaphoreCounterValue = 0; - PFN_vkGetSemaphoreFdKHR vkGetSemaphoreFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetSemaphoreWin32HandleKHR vkGetSemaphoreWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkGetShaderInfoAMD vkGetShaderInfoAMD = 0; - PFN_vkGetSwapchainCounterEXT vkGetSwapchainCounterEXT = 0; - PFN_vkGetSwapchainImagesKHR vkGetSwapchainImagesKHR = 0; - PFN_vkGetSwapchainStatusKHR vkGetSwapchainStatusKHR = 0; - PFN_vkGetValidationCacheDataEXT vkGetValidationCacheDataEXT = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkGetWinrtDisplayNV vkGetWinrtDisplayNV = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkImportFenceFdKHR vkImportFenceFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkImportFenceWin32HandleKHR vkImportFenceWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkImportSemaphoreFdKHR vkImportSemaphoreFdKHR = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkImportSemaphoreWin32HandleKHR vkImportSemaphoreWin32HandleKHR = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkInitializePerformanceApiINTEL vkInitializePerformanceApiINTEL = 0; - PFN_vkInvalidateMappedMemoryRanges vkInvalidateMappedMemoryRanges = 0; - PFN_vkMapMemory vkMapMemory = 0; - PFN_vkMergePipelineCaches vkMergePipelineCaches = 0; - PFN_vkMergeValidationCachesEXT vkMergeValidationCachesEXT = 0; - PFN_vkQueueBeginDebugUtilsLabelEXT vkQueueBeginDebugUtilsLabelEXT = 0; - PFN_vkQueueBindSparse vkQueueBindSparse = 0; - PFN_vkQueueEndDebugUtilsLabelEXT vkQueueEndDebugUtilsLabelEXT = 0; - PFN_vkQueueInsertDebugUtilsLabelEXT vkQueueInsertDebugUtilsLabelEXT = 0; - PFN_vkQueuePresentKHR vkQueuePresentKHR = 0; - PFN_vkQueueSetPerformanceConfigurationINTEL vkQueueSetPerformanceConfigurationINTEL = 0; - PFN_vkQueueSubmit vkQueueSubmit = 0; - PFN_vkQueueWaitIdle vkQueueWaitIdle = 0; - PFN_vkRegisterDeviceEventEXT vkRegisterDeviceEventEXT = 0; - PFN_vkRegisterDisplayEventEXT vkRegisterDisplayEventEXT = 0; - PFN_vkReleaseDisplayEXT vkReleaseDisplayEXT = 0; -#ifdef VK_USE_PLATFORM_WIN32_KHR - PFN_vkReleaseFullScreenExclusiveModeEXT vkReleaseFullScreenExclusiveModeEXT = 0; -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - PFN_vkReleasePerformanceConfigurationINTEL vkReleasePerformanceConfigurationINTEL = 0; - PFN_vkReleaseProfilingLockKHR vkReleaseProfilingLockKHR = 0; - PFN_vkResetCommandBuffer vkResetCommandBuffer = 0; - PFN_vkResetCommandPool vkResetCommandPool = 0; - PFN_vkResetDescriptorPool vkResetDescriptorPool = 0; - PFN_vkResetEvent vkResetEvent = 0; - PFN_vkResetFences vkResetFences = 0; - PFN_vkResetQueryPoolEXT vkResetQueryPoolEXT = 0; - PFN_vkResetQueryPool vkResetQueryPool = 0; - PFN_vkSetDebugUtilsObjectNameEXT vkSetDebugUtilsObjectNameEXT = 0; - PFN_vkSetDebugUtilsObjectTagEXT vkSetDebugUtilsObjectTagEXT = 0; - PFN_vkSetEvent vkSetEvent = 0; - PFN_vkSetHdrMetadataEXT vkSetHdrMetadataEXT = 0; - PFN_vkSetLocalDimmingAMD vkSetLocalDimmingAMD = 0; - PFN_vkSetPrivateDataEXT vkSetPrivateDataEXT = 0; - PFN_vkSignalSemaphoreKHR vkSignalSemaphoreKHR = 0; - PFN_vkSignalSemaphore vkSignalSemaphore = 0; - PFN_vkSubmitDebugUtilsMessageEXT vkSubmitDebugUtilsMessageEXT = 0; - PFN_vkTrimCommandPoolKHR vkTrimCommandPoolKHR = 0; - PFN_vkTrimCommandPool vkTrimCommandPool = 0; - PFN_vkUninitializePerformanceApiINTEL vkUninitializePerformanceApiINTEL = 0; - PFN_vkUnmapMemory vkUnmapMemory = 0; - PFN_vkUpdateDescriptorSetWithTemplateKHR vkUpdateDescriptorSetWithTemplateKHR = 0; - PFN_vkUpdateDescriptorSetWithTemplate vkUpdateDescriptorSetWithTemplate = 0; - PFN_vkUpdateDescriptorSets vkUpdateDescriptorSets = 0; - PFN_vkWaitForFences vkWaitForFences = 0; - PFN_vkWaitSemaphoresKHR vkWaitSemaphoresKHR = 0; - PFN_vkWaitSemaphores vkWaitSemaphores = 0; - PFN_vkWriteAccelerationStructuresPropertiesKHR vkWriteAccelerationStructuresPropertiesKHR = 0; - - public: - DispatchLoaderDynamic() VULKAN_HPP_NOEXCEPT = default; - -#if !defined(VK_NO_PROTOTYPES) - // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. - template - void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device, DynamicLoader const& dl) VULKAN_HPP_NOEXCEPT - { - PFN_vkGetInstanceProcAddr getInstanceProcAddr = dl.template getProcAddress("vkGetInstanceProcAddr"); - PFN_vkGetDeviceProcAddr getDeviceProcAddr = dl.template getProcAddress("vkGetDeviceProcAddr"); - init(static_cast(instance), getInstanceProcAddr, static_cast(device), device ? getDeviceProcAddr : nullptr); - } - - // This interface is designed to be used for per-device function pointers in combination with a linked vulkan library. - template - void init(VULKAN_HPP_NAMESPACE::Instance const& instance, VULKAN_HPP_NAMESPACE::Device const& device) VULKAN_HPP_NOEXCEPT - { - static DynamicLoader dl; - init(instance, device, dl); - } -#endif // !defined(VK_NO_PROTOTYPES) - - DispatchLoaderDynamic(PFN_vkGetInstanceProcAddr getInstanceProcAddr) VULKAN_HPP_NOEXCEPT - { - init(getInstanceProcAddr); - } - - void init( PFN_vkGetInstanceProcAddr getInstanceProcAddr ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT(getInstanceProcAddr); - - vkGetInstanceProcAddr = getInstanceProcAddr; - vkCreateInstance = PFN_vkCreateInstance( vkGetInstanceProcAddr( NULL, "vkCreateInstance" ) ); - vkEnumerateInstanceExtensionProperties = PFN_vkEnumerateInstanceExtensionProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceExtensionProperties" ) ); - vkEnumerateInstanceLayerProperties = PFN_vkEnumerateInstanceLayerProperties( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceLayerProperties" ) ); - vkEnumerateInstanceVersion = PFN_vkEnumerateInstanceVersion( vkGetInstanceProcAddr( NULL, "vkEnumerateInstanceVersion" ) ); - } - - // This interface does not require a linked vulkan library. - DispatchLoaderDynamic( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr getDeviceProcAddr = nullptr ) VULKAN_HPP_NOEXCEPT - { - init( instance, getInstanceProcAddr, device, getDeviceProcAddr ); - } - - // This interface does not require a linked vulkan library. - void init( VkInstance instance, PFN_vkGetInstanceProcAddr getInstanceProcAddr, VkDevice device = VK_NULL_HANDLE, PFN_vkGetDeviceProcAddr /*getDeviceProcAddr*/ = nullptr ) VULKAN_HPP_NOEXCEPT - { - VULKAN_HPP_ASSERT(instance && getInstanceProcAddr); - vkGetInstanceProcAddr = getInstanceProcAddr; - init( VULKAN_HPP_NAMESPACE::Instance(instance) ); - if (device) { - init( VULKAN_HPP_NAMESPACE::Device(device) ); - } - } - - void init( VULKAN_HPP_NAMESPACE::Instance instanceCpp ) VULKAN_HPP_NOEXCEPT - { - VkInstance instance = static_cast(instanceCpp); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireWinrtDisplayNV = PFN_vkAcquireWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkAcquireWinrtDisplayNV" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - vkAcquireXlibDisplayEXT = PFN_vkAcquireXlibDisplayEXT( vkGetInstanceProcAddr( instance, "vkAcquireXlibDisplayEXT" ) ); -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkCreateAndroidSurfaceKHR = PFN_vkCreateAndroidSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateAndroidSurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkCreateDebugReportCallbackEXT = PFN_vkCreateDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugReportCallbackEXT" ) ); - vkCreateDebugUtilsMessengerEXT = PFN_vkCreateDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkCreateDebugUtilsMessengerEXT" ) ); - vkCreateDevice = PFN_vkCreateDevice( vkGetInstanceProcAddr( instance, "vkCreateDevice" ) ); -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - vkCreateDirectFBSurfaceEXT = PFN_vkCreateDirectFBSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateDirectFBSurfaceEXT" ) ); -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - vkCreateDisplayModeKHR = PFN_vkCreateDisplayModeKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayModeKHR" ) ); - vkCreateDisplayPlaneSurfaceKHR = PFN_vkCreateDisplayPlaneSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateDisplayPlaneSurfaceKHR" ) ); - vkCreateHeadlessSurfaceEXT = PFN_vkCreateHeadlessSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateHeadlessSurfaceEXT" ) ); -#ifdef VK_USE_PLATFORM_IOS_MVK - vkCreateIOSSurfaceMVK = PFN_vkCreateIOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateIOSSurfaceMVK" ) ); -#endif /*VK_USE_PLATFORM_IOS_MVK*/ -#ifdef VK_USE_PLATFORM_FUCHSIA - vkCreateImagePipeSurfaceFUCHSIA = PFN_vkCreateImagePipeSurfaceFUCHSIA( vkGetInstanceProcAddr( instance, "vkCreateImagePipeSurfaceFUCHSIA" ) ); -#endif /*VK_USE_PLATFORM_FUCHSIA*/ -#ifdef VK_USE_PLATFORM_MACOS_MVK - vkCreateMacOSSurfaceMVK = PFN_vkCreateMacOSSurfaceMVK( vkGetInstanceProcAddr( instance, "vkCreateMacOSSurfaceMVK" ) ); -#endif /*VK_USE_PLATFORM_MACOS_MVK*/ -#ifdef VK_USE_PLATFORM_METAL_EXT - vkCreateMetalSurfaceEXT = PFN_vkCreateMetalSurfaceEXT( vkGetInstanceProcAddr( instance, "vkCreateMetalSurfaceEXT" ) ); -#endif /*VK_USE_PLATFORM_METAL_EXT*/ -#ifdef VK_USE_PLATFORM_GGP - vkCreateStreamDescriptorSurfaceGGP = PFN_vkCreateStreamDescriptorSurfaceGGP( vkGetInstanceProcAddr( instance, "vkCreateStreamDescriptorSurfaceGGP" ) ); -#endif /*VK_USE_PLATFORM_GGP*/ -#ifdef VK_USE_PLATFORM_VI_NN - vkCreateViSurfaceNN = PFN_vkCreateViSurfaceNN( vkGetInstanceProcAddr( instance, "vkCreateViSurfaceNN" ) ); -#endif /*VK_USE_PLATFORM_VI_NN*/ -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkCreateWaylandSurfaceKHR = PFN_vkCreateWaylandSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWaylandSurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkCreateWin32SurfaceKHR = PFN_vkCreateWin32SurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateWin32SurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - vkCreateXcbSurfaceKHR = PFN_vkCreateXcbSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXcbSurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkCreateXlibSurfaceKHR = PFN_vkCreateXlibSurfaceKHR( vkGetInstanceProcAddr( instance, "vkCreateXlibSurfaceKHR" ) ); -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ - vkDebugReportMessageEXT = PFN_vkDebugReportMessageEXT( vkGetInstanceProcAddr( instance, "vkDebugReportMessageEXT" ) ); - vkDestroyDebugReportCallbackEXT = PFN_vkDestroyDebugReportCallbackEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugReportCallbackEXT" ) ); - vkDestroyDebugUtilsMessengerEXT = PFN_vkDestroyDebugUtilsMessengerEXT( vkGetInstanceProcAddr( instance, "vkDestroyDebugUtilsMessengerEXT" ) ); - vkDestroyInstance = PFN_vkDestroyInstance( vkGetInstanceProcAddr( instance, "vkDestroyInstance" ) ); - vkDestroySurfaceKHR = PFN_vkDestroySurfaceKHR( vkGetInstanceProcAddr( instance, "vkDestroySurfaceKHR" ) ); - vkEnumerateDeviceExtensionProperties = PFN_vkEnumerateDeviceExtensionProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceExtensionProperties" ) ); - vkEnumerateDeviceLayerProperties = PFN_vkEnumerateDeviceLayerProperties( vkGetInstanceProcAddr( instance, "vkEnumerateDeviceLayerProperties" ) ); - vkEnumeratePhysicalDeviceGroupsKHR = PFN_vkEnumeratePhysicalDeviceGroupsKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroupsKHR" ) ); - vkEnumeratePhysicalDeviceGroups = PFN_vkEnumeratePhysicalDeviceGroups( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceGroups" ) ); - if ( !vkEnumeratePhysicalDeviceGroups ) vkEnumeratePhysicalDeviceGroups = vkEnumeratePhysicalDeviceGroupsKHR; - vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR = PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR" ) ); - vkEnumeratePhysicalDevices = PFN_vkEnumeratePhysicalDevices( vkGetInstanceProcAddr( instance, "vkEnumeratePhysicalDevices" ) ); - vkGetDisplayModeProperties2KHR = PFN_vkGetDisplayModeProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModeProperties2KHR" ) ); - vkGetDisplayModePropertiesKHR = PFN_vkGetDisplayModePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayModePropertiesKHR" ) ); - vkGetDisplayPlaneCapabilities2KHR = PFN_vkGetDisplayPlaneCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilities2KHR" ) ); - vkGetDisplayPlaneCapabilitiesKHR = PFN_vkGetDisplayPlaneCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneCapabilitiesKHR" ) ); - vkGetDisplayPlaneSupportedDisplaysKHR = PFN_vkGetDisplayPlaneSupportedDisplaysKHR( vkGetInstanceProcAddr( instance, "vkGetDisplayPlaneSupportedDisplaysKHR" ) ); - vkGetInstanceProcAddr = PFN_vkGetInstanceProcAddr( vkGetInstanceProcAddr( instance, "vkGetInstanceProcAddr" ) ); - vkGetPhysicalDeviceCalibrateableTimeDomainsEXT = PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" ) ); - vkGetPhysicalDeviceCooperativeMatrixPropertiesNV = PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV" ) ); -#ifdef VK_USE_PLATFORM_DIRECTFB_EXT - vkGetPhysicalDeviceDirectFBPresentationSupportEXT = PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDirectFBPresentationSupportEXT" ) ); -#endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/ - vkGetPhysicalDeviceDisplayPlaneProperties2KHR = PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlaneProperties2KHR" ) ); - vkGetPhysicalDeviceDisplayPlanePropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR" ) ); - vkGetPhysicalDeviceDisplayProperties2KHR = PFN_vkGetPhysicalDeviceDisplayProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayProperties2KHR" ) ); - vkGetPhysicalDeviceDisplayPropertiesKHR = PFN_vkGetPhysicalDeviceDisplayPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceDisplayPropertiesKHR" ) ); - vkGetPhysicalDeviceExternalBufferPropertiesKHR = PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferPropertiesKHR" ) ); - vkGetPhysicalDeviceExternalBufferProperties = PFN_vkGetPhysicalDeviceExternalBufferProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalBufferProperties" ) ); - if ( !vkGetPhysicalDeviceExternalBufferProperties ) vkGetPhysicalDeviceExternalBufferProperties = vkGetPhysicalDeviceExternalBufferPropertiesKHR; - vkGetPhysicalDeviceExternalFencePropertiesKHR = PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFencePropertiesKHR" ) ); - vkGetPhysicalDeviceExternalFenceProperties = PFN_vkGetPhysicalDeviceExternalFenceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalFenceProperties" ) ); - if ( !vkGetPhysicalDeviceExternalFenceProperties ) vkGetPhysicalDeviceExternalFenceProperties = vkGetPhysicalDeviceExternalFencePropertiesKHR; - vkGetPhysicalDeviceExternalImageFormatPropertiesNV = PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalImageFormatPropertiesNV" ) ); - vkGetPhysicalDeviceExternalSemaphorePropertiesKHR = PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphorePropertiesKHR" ) ); - vkGetPhysicalDeviceExternalSemaphoreProperties = PFN_vkGetPhysicalDeviceExternalSemaphoreProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceExternalSemaphoreProperties" ) ); - if ( !vkGetPhysicalDeviceExternalSemaphoreProperties ) vkGetPhysicalDeviceExternalSemaphoreProperties = vkGetPhysicalDeviceExternalSemaphorePropertiesKHR; - vkGetPhysicalDeviceFeatures = PFN_vkGetPhysicalDeviceFeatures( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures" ) ); - vkGetPhysicalDeviceFeatures2KHR = PFN_vkGetPhysicalDeviceFeatures2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2KHR" ) ); - vkGetPhysicalDeviceFeatures2 = PFN_vkGetPhysicalDeviceFeatures2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFeatures2" ) ); - if ( !vkGetPhysicalDeviceFeatures2 ) vkGetPhysicalDeviceFeatures2 = vkGetPhysicalDeviceFeatures2KHR; - vkGetPhysicalDeviceFormatProperties = PFN_vkGetPhysicalDeviceFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties" ) ); - vkGetPhysicalDeviceFormatProperties2KHR = PFN_vkGetPhysicalDeviceFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2KHR" ) ); - vkGetPhysicalDeviceFormatProperties2 = PFN_vkGetPhysicalDeviceFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFormatProperties2" ) ); - if ( !vkGetPhysicalDeviceFormatProperties2 ) vkGetPhysicalDeviceFormatProperties2 = vkGetPhysicalDeviceFormatProperties2KHR; - vkGetPhysicalDeviceFragmentShadingRatesKHR = PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceFragmentShadingRatesKHR" ) ); - vkGetPhysicalDeviceImageFormatProperties = PFN_vkGetPhysicalDeviceImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties" ) ); - vkGetPhysicalDeviceImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2KHR" ) ); - vkGetPhysicalDeviceImageFormatProperties2 = PFN_vkGetPhysicalDeviceImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceImageFormatProperties2" ) ); - if ( !vkGetPhysicalDeviceImageFormatProperties2 ) vkGetPhysicalDeviceImageFormatProperties2 = vkGetPhysicalDeviceImageFormatProperties2KHR; - vkGetPhysicalDeviceMemoryProperties = PFN_vkGetPhysicalDeviceMemoryProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties" ) ); - vkGetPhysicalDeviceMemoryProperties2KHR = PFN_vkGetPhysicalDeviceMemoryProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2KHR" ) ); - vkGetPhysicalDeviceMemoryProperties2 = PFN_vkGetPhysicalDeviceMemoryProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMemoryProperties2" ) ); - if ( !vkGetPhysicalDeviceMemoryProperties2 ) vkGetPhysicalDeviceMemoryProperties2 = vkGetPhysicalDeviceMemoryProperties2KHR; - vkGetPhysicalDeviceMultisamplePropertiesEXT = PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceMultisamplePropertiesEXT" ) ); - vkGetPhysicalDevicePresentRectanglesKHR = PFN_vkGetPhysicalDevicePresentRectanglesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDevicePresentRectanglesKHR" ) ); - vkGetPhysicalDeviceProperties = PFN_vkGetPhysicalDeviceProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties" ) ); - vkGetPhysicalDeviceProperties2KHR = PFN_vkGetPhysicalDeviceProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2KHR" ) ); - vkGetPhysicalDeviceProperties2 = PFN_vkGetPhysicalDeviceProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceProperties2" ) ); - if ( !vkGetPhysicalDeviceProperties2 ) vkGetPhysicalDeviceProperties2 = vkGetPhysicalDeviceProperties2KHR; - vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR = PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" ) ); - vkGetPhysicalDeviceQueueFamilyProperties = PFN_vkGetPhysicalDeviceQueueFamilyProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties" ) ); - vkGetPhysicalDeviceQueueFamilyProperties2KHR = PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2KHR" ) ); - vkGetPhysicalDeviceQueueFamilyProperties2 = PFN_vkGetPhysicalDeviceQueueFamilyProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceQueueFamilyProperties2" ) ); - if ( !vkGetPhysicalDeviceQueueFamilyProperties2 ) vkGetPhysicalDeviceQueueFamilyProperties2 = vkGetPhysicalDeviceQueueFamilyProperties2KHR; - vkGetPhysicalDeviceSparseImageFormatProperties = PFN_vkGetPhysicalDeviceSparseImageFormatProperties( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties" ) ); - vkGetPhysicalDeviceSparseImageFormatProperties2KHR = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2KHR" ) ); - vkGetPhysicalDeviceSparseImageFormatProperties2 = PFN_vkGetPhysicalDeviceSparseImageFormatProperties2( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSparseImageFormatProperties2" ) ); - if ( !vkGetPhysicalDeviceSparseImageFormatProperties2 ) vkGetPhysicalDeviceSparseImageFormatProperties2 = vkGetPhysicalDeviceSparseImageFormatProperties2KHR; - vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV = PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" ) ); - vkGetPhysicalDeviceSurfaceCapabilities2EXT = PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2EXT" ) ); - vkGetPhysicalDeviceSurfaceCapabilities2KHR = PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilities2KHR" ) ); - vkGetPhysicalDeviceSurfaceCapabilitiesKHR = PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR" ) ); - vkGetPhysicalDeviceSurfaceFormats2KHR = PFN_vkGetPhysicalDeviceSurfaceFormats2KHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormats2KHR" ) ); - vkGetPhysicalDeviceSurfaceFormatsKHR = PFN_vkGetPhysicalDeviceSurfaceFormatsKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceFormatsKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetPhysicalDeviceSurfacePresentModes2EXT = PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModes2EXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPhysicalDeviceSurfacePresentModesKHR = PFN_vkGetPhysicalDeviceSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfacePresentModesKHR" ) ); - vkGetPhysicalDeviceSurfaceSupportKHR = PFN_vkGetPhysicalDeviceSurfaceSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceSurfaceSupportKHR" ) ); - vkGetPhysicalDeviceToolPropertiesEXT = PFN_vkGetPhysicalDeviceToolPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceToolPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WAYLAND_KHR - vkGetPhysicalDeviceWaylandPresentationSupportKHR = PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWaylandPresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_WAYLAND_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetPhysicalDeviceWin32PresentationSupportKHR = PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceWin32PresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_XCB_KHR - vkGetPhysicalDeviceXcbPresentationSupportKHR = PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXcbPresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_XCB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_KHR - vkGetPhysicalDeviceXlibPresentationSupportKHR = PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR( vkGetInstanceProcAddr( instance, "vkGetPhysicalDeviceXlibPresentationSupportKHR" ) ); -#endif /*VK_USE_PLATFORM_XLIB_KHR*/ -#ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT - vkGetRandROutputDisplayEXT = PFN_vkGetRandROutputDisplayEXT( vkGetInstanceProcAddr( instance, "vkGetRandROutputDisplayEXT" ) ); -#endif /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetWinrtDisplayNV = PFN_vkGetWinrtDisplayNV( vkGetInstanceProcAddr( instance, "vkGetWinrtDisplayNV" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleaseDisplayEXT = PFN_vkReleaseDisplayEXT( vkGetInstanceProcAddr( instance, "vkReleaseDisplayEXT" ) ); - vkSubmitDebugUtilsMessageEXT = PFN_vkSubmitDebugUtilsMessageEXT( vkGetInstanceProcAddr( instance, "vkSubmitDebugUtilsMessageEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkAcquireFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImage2KHR" ) ); - vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetInstanceProcAddr( instance, "vkAcquireNextImageKHR" ) ); - vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkAcquirePerformanceConfigurationINTEL" ) ); - vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkAcquireProfilingLockKHR" ) ); - vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetInstanceProcAddr( instance, "vkAllocateCommandBuffers" ) ); - vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetInstanceProcAddr( instance, "vkAllocateDescriptorSets" ) ); - vkAllocateMemory = PFN_vkAllocateMemory( vkGetInstanceProcAddr( instance, "vkAllocateMemory" ) ); - vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetInstanceProcAddr( instance, "vkBeginCommandBuffer" ) ); - vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetInstanceProcAddr( instance, "vkBindAccelerationStructureMemoryNV" ) ); - vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetInstanceProcAddr( instance, "vkBindBufferMemory" ) ); - vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2KHR" ) ); - vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetInstanceProcAddr( instance, "vkBindBufferMemory2" ) ); - if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR; - vkBindImageMemory = PFN_vkBindImageMemory( vkGetInstanceProcAddr( instance, "vkBindImageMemory" ) ); - vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetInstanceProcAddr( instance, "vkBindImageMemory2KHR" ) ); - vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetInstanceProcAddr( instance, "vkBindImageMemory2" ) ); - if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR; - vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkBuildAccelerationStructuresKHR" ) ); - vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginConditionalRenderingEXT" ) ); - vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginDebugUtilsLabelEXT" ) ); - vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetInstanceProcAddr( instance, "vkCmdBeginQuery" ) ); - vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginQueryIndexedEXT" ) ); - vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass" ) ); - vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2KHR" ) ); - vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdBeginRenderPass2" ) ); - if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; - vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdBeginTransformFeedbackEXT" ) ); - vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetInstanceProcAddr( instance, "vkCmdBindDescriptorSets" ) ); - vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetInstanceProcAddr( instance, "vkCmdBindIndexBuffer" ) ); - vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetInstanceProcAddr( instance, "vkCmdBindPipeline" ) ); - vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetInstanceProcAddr( instance, "vkCmdBindPipelineShaderGroupNV" ) ); - vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetInstanceProcAddr( instance, "vkCmdBindShadingRateImageNV" ) ); - vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetInstanceProcAddr( instance, "vkCmdBindTransformFeedbackBuffersEXT" ) ); - vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers" ) ); - vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetInstanceProcAddr( instance, "vkCmdBindVertexBuffers2EXT" ) ); - vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetInstanceProcAddr( instance, "vkCmdBlitImage" ) ); - vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdBlitImage2KHR" ) ); - vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructureNV" ) ); - vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); - vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetInstanceProcAddr( instance, "vkCmdBuildAccelerationStructuresKHR" ) ); - vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetInstanceProcAddr( instance, "vkCmdClearAttachments" ) ); - vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetInstanceProcAddr( instance, "vkCmdClearColorImage" ) ); - vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetInstanceProcAddr( instance, "vkCmdClearDepthStencilImage" ) ); - vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureKHR" ) ); - vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureNV" ) ); - vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); - vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer" ) ); - vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBuffer2KHR" ) ); - vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage" ) ); - vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyBufferToImage2KHR" ) ); - vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetInstanceProcAddr( instance, "vkCmdCopyImage" ) ); - vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImage2KHR" ) ); - vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer" ) ); - vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetInstanceProcAddr( instance, "vkCmdCopyImageToBuffer2KHR" ) ); - vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); - vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetInstanceProcAddr( instance, "vkCmdCopyQueryPoolResults" ) ); - vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerBeginEXT" ) ); - vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerEndEXT" ) ); - vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetInstanceProcAddr( instance, "vkCmdDebugMarkerInsertEXT" ) ); - vkCmdDispatch = PFN_vkCmdDispatch( vkGetInstanceProcAddr( instance, "vkCmdDispatch" ) ); - vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetInstanceProcAddr( instance, "vkCmdDispatchBaseKHR" ) ); - vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetInstanceProcAddr( instance, "vkCmdDispatchBase" ) ); - if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR; - vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetInstanceProcAddr( instance, "vkCmdDispatchIndirect" ) ); - vkCmdDraw = PFN_vkCmdDraw( vkGetInstanceProcAddr( instance, "vkCmdDraw" ) ); - vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexed" ) ); - vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirect" ) ); - vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountAMD" ) ); - vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCountKHR" ) ); - vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndexedIndirectCount" ) ); - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; - vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirect" ) ); - vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectByteCountEXT" ) ); - vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountAMD" ) ); - vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCountKHR" ) ); - vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetInstanceProcAddr( instance, "vkCmdDrawIndirectCount" ) ); - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; - vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectCountNV" ) ); - vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksIndirectNV" ) ); - vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetInstanceProcAddr( instance, "vkCmdDrawMeshTasksNV" ) ); - vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetInstanceProcAddr( instance, "vkCmdEndConditionalRenderingEXT" ) ); - vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdEndDebugUtilsLabelEXT" ) ); - vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetInstanceProcAddr( instance, "vkCmdEndQuery" ) ); - vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetInstanceProcAddr( instance, "vkCmdEndQueryIndexedEXT" ) ); - vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass" ) ); - vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2KHR" ) ); - vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetInstanceProcAddr( instance, "vkCmdEndRenderPass2" ) ); - if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; - vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetInstanceProcAddr( instance, "vkCmdEndTransformFeedbackEXT" ) ); - vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetInstanceProcAddr( instance, "vkCmdExecuteCommands" ) ); - vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdExecuteGeneratedCommandsNV" ) ); - vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetInstanceProcAddr( instance, "vkCmdFillBuffer" ) ); - vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkCmdInsertDebugUtilsLabelEXT" ) ); - vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass" ) ); - vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2KHR" ) ); - vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetInstanceProcAddr( instance, "vkCmdNextSubpass2" ) ); - if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; - vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetInstanceProcAddr( instance, "vkCmdPipelineBarrier" ) ); - vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetInstanceProcAddr( instance, "vkCmdPreprocessGeneratedCommandsNV" ) ); - vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetInstanceProcAddr( instance, "vkCmdPushConstants" ) ); - vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetKHR" ) ); - vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); - vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetInstanceProcAddr( instance, "vkCmdResetEvent" ) ); - vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetInstanceProcAddr( instance, "vkCmdResetQueryPool" ) ); - vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetInstanceProcAddr( instance, "vkCmdResolveImage" ) ); - vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetInstanceProcAddr( instance, "vkCmdResolveImage2KHR" ) ); - vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetInstanceProcAddr( instance, "vkCmdSetBlendConstants" ) ); - vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetInstanceProcAddr( instance, "vkCmdSetCheckpointNV" ) ); - vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetInstanceProcAddr( instance, "vkCmdSetCoarseSampleOrderNV" ) ); - vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetInstanceProcAddr( instance, "vkCmdSetCullModeEXT" ) ); - vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBias" ) ); - vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBounds" ) ); - vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthBoundsTestEnableEXT" ) ); - vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthCompareOpEXT" ) ); - vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthTestEnableEXT" ) ); - vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDepthWriteEnableEXT" ) ); - vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMaskKHR" ) ); - vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetInstanceProcAddr( instance, "vkCmdSetDeviceMask" ) ); - if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; - vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetDiscardRectangleEXT" ) ); - vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetInstanceProcAddr( instance, "vkCmdSetEvent" ) ); - vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetInstanceProcAddr( instance, "vkCmdSetExclusiveScissorNV" ) ); - vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateEnumNV" ) ); - vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetInstanceProcAddr( instance, "vkCmdSetFragmentShadingRateKHR" ) ); - vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetInstanceProcAddr( instance, "vkCmdSetFrontFaceEXT" ) ); - vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetInstanceProcAddr( instance, "vkCmdSetLineStippleEXT" ) ); - vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetInstanceProcAddr( instance, "vkCmdSetLineWidth" ) ); - vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceMarkerINTEL" ) ); - vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceOverrideINTEL" ) ); - vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetInstanceProcAddr( instance, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); - vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetInstanceProcAddr( instance, "vkCmdSetPrimitiveTopologyEXT" ) ); - vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetInstanceProcAddr( instance, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); - vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetInstanceProcAddr( instance, "vkCmdSetSampleLocationsEXT" ) ); - vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetInstanceProcAddr( instance, "vkCmdSetScissor" ) ); - vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetScissorWithCountEXT" ) ); - vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilCompareMask" ) ); - vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilOpEXT" ) ); - vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetInstanceProcAddr( instance, "vkCmdSetStencilReference" ) ); - vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetInstanceProcAddr( instance, "vkCmdSetStencilTestEnableEXT" ) ); - vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetInstanceProcAddr( instance, "vkCmdSetStencilWriteMask" ) ); - vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetInstanceProcAddr( instance, "vkCmdSetViewport" ) ); - vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportShadingRatePaletteNV" ) ); - vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWScalingNV" ) ); - vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetInstanceProcAddr( instance, "vkCmdSetViewportWithCountEXT" ) ); - vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysIndirectKHR" ) ); - vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysKHR" ) ); - vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetInstanceProcAddr( instance, "vkCmdTraceRaysNV" ) ); - vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetInstanceProcAddr( instance, "vkCmdUpdateBuffer" ) ); - vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetInstanceProcAddr( instance, "vkCmdWaitEvents" ) ); - vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); - vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetInstanceProcAddr( instance, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); - vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetInstanceProcAddr( instance, "vkCmdWriteBufferMarkerAMD" ) ); - vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetInstanceProcAddr( instance, "vkCmdWriteTimestamp" ) ); - vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetInstanceProcAddr( instance, "vkCompileDeferredNV" ) ); - vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureKHR" ) ); - vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetInstanceProcAddr( instance, "vkCopyAccelerationStructureToMemoryKHR" ) ); - vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCopyMemoryToAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkCreateAccelerationStructureNV" ) ); - vkCreateBuffer = PFN_vkCreateBuffer( vkGetInstanceProcAddr( instance, "vkCreateBuffer" ) ); - vkCreateBufferView = PFN_vkCreateBufferView( vkGetInstanceProcAddr( instance, "vkCreateBufferView" ) ); - vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetInstanceProcAddr( instance, "vkCreateCommandPool" ) ); - vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetInstanceProcAddr( instance, "vkCreateComputePipelines" ) ); - vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkCreateDeferredOperationKHR" ) ); - vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetInstanceProcAddr( instance, "vkCreateDescriptorPool" ) ); - vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkCreateDescriptorSetLayout" ) ); - vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplateKHR" ) ); - vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkCreateDescriptorUpdateTemplate" ) ); - if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; - vkCreateEvent = PFN_vkCreateEvent( vkGetInstanceProcAddr( instance, "vkCreateEvent" ) ); - vkCreateFence = PFN_vkCreateFence( vkGetInstanceProcAddr( instance, "vkCreateFence" ) ); - vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetInstanceProcAddr( instance, "vkCreateFramebuffer" ) ); - vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetInstanceProcAddr( instance, "vkCreateGraphicsPipelines" ) ); - vkCreateImage = PFN_vkCreateImage( vkGetInstanceProcAddr( instance, "vkCreateImage" ) ); - vkCreateImageView = PFN_vkCreateImageView( vkGetInstanceProcAddr( instance, "vkCreateImageView" ) ); - vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkCreateIndirectCommandsLayoutNV" ) ); - vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetInstanceProcAddr( instance, "vkCreatePipelineCache" ) ); - vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetInstanceProcAddr( instance, "vkCreatePipelineLayout" ) ); - vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkCreatePrivateDataSlotEXT" ) ); - vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetInstanceProcAddr( instance, "vkCreateQueryPool" ) ); - vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesKHR" ) ); - vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetInstanceProcAddr( instance, "vkCreateRayTracingPipelinesNV" ) ); - vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetInstanceProcAddr( instance, "vkCreateRenderPass" ) ); - vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2KHR" ) ); - vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetInstanceProcAddr( instance, "vkCreateRenderPass2" ) ); - if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR; - vkCreateSampler = PFN_vkCreateSampler( vkGetInstanceProcAddr( instance, "vkCreateSampler" ) ); - vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversionKHR" ) ); - vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkCreateSamplerYcbcrConversion" ) ); - if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; - vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetInstanceProcAddr( instance, "vkCreateSemaphore" ) ); - vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetInstanceProcAddr( instance, "vkCreateShaderModule" ) ); - vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetInstanceProcAddr( instance, "vkCreateSharedSwapchainsKHR" ) ); - vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetInstanceProcAddr( instance, "vkCreateSwapchainKHR" ) ); - vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkCreateValidationCacheEXT" ) ); - vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectNameEXT" ) ); - vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetInstanceProcAddr( instance, "vkDebugMarkerSetObjectTagEXT" ) ); - vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetInstanceProcAddr( instance, "vkDeferredOperationJoinKHR" ) ); - vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureKHR" ) ); - vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetInstanceProcAddr( instance, "vkDestroyAccelerationStructureNV" ) ); - vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetInstanceProcAddr( instance, "vkDestroyBuffer" ) ); - vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetInstanceProcAddr( instance, "vkDestroyBufferView" ) ); - vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetInstanceProcAddr( instance, "vkDestroyCommandPool" ) ); - vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetInstanceProcAddr( instance, "vkDestroyDeferredOperationKHR" ) ); - vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorPool" ) ); - vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorSetLayout" ) ); - vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplateKHR" ) ); - vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetInstanceProcAddr( instance, "vkDestroyDescriptorUpdateTemplate" ) ); - if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; - vkDestroyDevice = PFN_vkDestroyDevice( vkGetInstanceProcAddr( instance, "vkDestroyDevice" ) ); - vkDestroyEvent = PFN_vkDestroyEvent( vkGetInstanceProcAddr( instance, "vkDestroyEvent" ) ); - vkDestroyFence = PFN_vkDestroyFence( vkGetInstanceProcAddr( instance, "vkDestroyFence" ) ); - vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetInstanceProcAddr( instance, "vkDestroyFramebuffer" ) ); - vkDestroyImage = PFN_vkDestroyImage( vkGetInstanceProcAddr( instance, "vkDestroyImage" ) ); - vkDestroyImageView = PFN_vkDestroyImageView( vkGetInstanceProcAddr( instance, "vkDestroyImageView" ) ); - vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetInstanceProcAddr( instance, "vkDestroyIndirectCommandsLayoutNV" ) ); - vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetInstanceProcAddr( instance, "vkDestroyPipeline" ) ); - vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetInstanceProcAddr( instance, "vkDestroyPipelineCache" ) ); - vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetInstanceProcAddr( instance, "vkDestroyPipelineLayout" ) ); - vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetInstanceProcAddr( instance, "vkDestroyPrivateDataSlotEXT" ) ); - vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetInstanceProcAddr( instance, "vkDestroyQueryPool" ) ); - vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetInstanceProcAddr( instance, "vkDestroyRenderPass" ) ); - vkDestroySampler = PFN_vkDestroySampler( vkGetInstanceProcAddr( instance, "vkDestroySampler" ) ); - vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversionKHR" ) ); - vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetInstanceProcAddr( instance, "vkDestroySamplerYcbcrConversion" ) ); - if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; - vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetInstanceProcAddr( instance, "vkDestroySemaphore" ) ); - vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetInstanceProcAddr( instance, "vkDestroyShaderModule" ) ); - vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetInstanceProcAddr( instance, "vkDestroySwapchainKHR" ) ); - vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetInstanceProcAddr( instance, "vkDestroyValidationCacheEXT" ) ); - vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetInstanceProcAddr( instance, "vkDeviceWaitIdle" ) ); - vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetInstanceProcAddr( instance, "vkDisplayPowerControlEXT" ) ); - vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetInstanceProcAddr( instance, "vkEndCommandBuffer" ) ); - vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkFlushMappedMemoryRanges" ) ); - vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetInstanceProcAddr( instance, "vkFreeCommandBuffers" ) ); - vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetInstanceProcAddr( instance, "vkFreeDescriptorSets" ) ); - vkFreeMemory = PFN_vkFreeMemory( vkGetInstanceProcAddr( instance, "vkFreeMemory" ) ); - vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureBuildSizesKHR" ) ); - vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureDeviceAddressKHR" ) ); - vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureHandleNV" ) ); - vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetInstanceProcAddr( instance, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressEXT" ) ); - vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddressKHR" ) ); - vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetInstanceProcAddr( instance, "vkGetBufferDeviceAddress" ) ); - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; - vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements" ) ); - vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2KHR" ) ); - vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetBufferMemoryRequirements2" ) ); - if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; - vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddressKHR" ) ); - vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetBufferOpaqueCaptureAddress" ) ); - if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; - vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetInstanceProcAddr( instance, "vkGetCalibratedTimestampsEXT" ) ); - vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); - vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetInstanceProcAddr( instance, "vkGetDeferredOperationResultKHR" ) ); - vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupportKHR" ) ); - vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetInstanceProcAddr( instance, "vkGetDescriptorSetLayoutSupport" ) ); - if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; - vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); - vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); - vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPeerMemoryFeatures" ) ); - if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; - vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); - vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryCommitment" ) ); - vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); - vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetInstanceProcAddr( instance, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); - if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; - vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetInstanceProcAddr( instance, "vkGetDeviceProcAddr" ) ); - vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue" ) ); - vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetInstanceProcAddr( instance, "vkGetDeviceQueue2" ) ); - vkGetEventStatus = PFN_vkGetEventStatus( vkGetInstanceProcAddr( instance, "vkGetEventStatus" ) ); - vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetInstanceProcAddr( instance, "vkGetFenceFdKHR" ) ); - vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetInstanceProcAddr( instance, "vkGetFenceStatus" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetFenceWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetInstanceProcAddr( instance, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); - vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); - vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements" ) ); - vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2KHR" ) ); - vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageMemoryRequirements2" ) ); - if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; - vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements" ) ); - vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2KHR" ) ); - vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetInstanceProcAddr( instance, "vkGetImageSparseMemoryRequirements2" ) ); - if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; - vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetInstanceProcAddr( instance, "vkGetImageSubresourceLayout" ) ); - vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewAddressNVX" ) ); - vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetInstanceProcAddr( instance, "vkGetImageViewHandleNVX" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetInstanceProcAddr( instance, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdKHR" ) ); - vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryFdPropertiesKHR" ) ); - vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetInstanceProcAddr( instance, "vkGetMemoryHostPointerPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandleNV" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetMemoryWin32HandlePropertiesKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetInstanceProcAddr( instance, "vkGetPastPresentationTimingGOOGLE" ) ); - vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetInstanceProcAddr( instance, "vkGetPerformanceParameterINTEL" ) ); - vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetInstanceProcAddr( instance, "vkGetPipelineCacheData" ) ); - vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); - vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutablePropertiesKHR" ) ); - vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetInstanceProcAddr( instance, "vkGetPipelineExecutableStatisticsKHR" ) ); - vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkGetPrivateDataEXT" ) ); - vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetInstanceProcAddr( instance, "vkGetQueryPoolResults" ) ); - vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetInstanceProcAddr( instance, "vkGetQueueCheckpointDataNV" ) ); - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); - vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesNV" ) ); - vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupHandlesKHR" ) ); - if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; - vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetInstanceProcAddr( instance, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); - vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetInstanceProcAddr( instance, "vkGetRefreshCycleDurationGOOGLE" ) ); - vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetInstanceProcAddr( instance, "vkGetRenderAreaGranularity" ) ); - vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValueKHR" ) ); - vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetInstanceProcAddr( instance, "vkGetSemaphoreCounterValue" ) ); - if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; - vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkGetSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetInstanceProcAddr( instance, "vkGetShaderInfoAMD" ) ); - vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetInstanceProcAddr( instance, "vkGetSwapchainCounterEXT" ) ); - vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainImagesKHR" ) ); - vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetInstanceProcAddr( instance, "vkGetSwapchainStatusKHR" ) ); - vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetInstanceProcAddr( instance, "vkGetValidationCacheDataEXT" ) ); - vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetInstanceProcAddr( instance, "vkImportFenceFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportFenceWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetInstanceProcAddr( instance, "vkImportSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkInitializePerformanceApiINTEL" ) ); - vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetInstanceProcAddr( instance, "vkInvalidateMappedMemoryRanges" ) ); - vkMapMemory = PFN_vkMapMemory( vkGetInstanceProcAddr( instance, "vkMapMemory" ) ); - vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetInstanceProcAddr( instance, "vkMergePipelineCaches" ) ); - vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetInstanceProcAddr( instance, "vkMergeValidationCachesEXT" ) ); - vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueBeginDebugUtilsLabelEXT" ) ); - vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetInstanceProcAddr( instance, "vkQueueBindSparse" ) ); - vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueEndDebugUtilsLabelEXT" ) ); - vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetInstanceProcAddr( instance, "vkQueueInsertDebugUtilsLabelEXT" ) ); - vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetInstanceProcAddr( instance, "vkQueuePresentKHR" ) ); - vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkQueueSetPerformanceConfigurationINTEL" ) ); - vkQueueSubmit = PFN_vkQueueSubmit( vkGetInstanceProcAddr( instance, "vkQueueSubmit" ) ); - vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetInstanceProcAddr( instance, "vkQueueWaitIdle" ) ); - vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDeviceEventEXT" ) ); - vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetInstanceProcAddr( instance, "vkRegisterDisplayEventEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetInstanceProcAddr( instance, "vkReleaseFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetInstanceProcAddr( instance, "vkReleasePerformanceConfigurationINTEL" ) ); - vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetInstanceProcAddr( instance, "vkReleaseProfilingLockKHR" ) ); - vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetInstanceProcAddr( instance, "vkResetCommandBuffer" ) ); - vkResetCommandPool = PFN_vkResetCommandPool( vkGetInstanceProcAddr( instance, "vkResetCommandPool" ) ); - vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetInstanceProcAddr( instance, "vkResetDescriptorPool" ) ); - vkResetEvent = PFN_vkResetEvent( vkGetInstanceProcAddr( instance, "vkResetEvent" ) ); - vkResetFences = PFN_vkResetFences( vkGetInstanceProcAddr( instance, "vkResetFences" ) ); - vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetInstanceProcAddr( instance, "vkResetQueryPoolEXT" ) ); - vkResetQueryPool = PFN_vkResetQueryPool( vkGetInstanceProcAddr( instance, "vkResetQueryPool" ) ); - if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT; - vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectNameEXT" ) ); - vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetInstanceProcAddr( instance, "vkSetDebugUtilsObjectTagEXT" ) ); - vkSetEvent = PFN_vkSetEvent( vkGetInstanceProcAddr( instance, "vkSetEvent" ) ); - vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetInstanceProcAddr( instance, "vkSetHdrMetadataEXT" ) ); - vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetInstanceProcAddr( instance, "vkSetLocalDimmingAMD" ) ); - vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetInstanceProcAddr( instance, "vkSetPrivateDataEXT" ) ); - vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetInstanceProcAddr( instance, "vkSignalSemaphoreKHR" ) ); - vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetInstanceProcAddr( instance, "vkSignalSemaphore" ) ); - if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR; - vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetInstanceProcAddr( instance, "vkTrimCommandPoolKHR" ) ); - vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetInstanceProcAddr( instance, "vkTrimCommandPool" ) ); - if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR; - vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetInstanceProcAddr( instance, "vkUninitializePerformanceApiINTEL" ) ); - vkUnmapMemory = PFN_vkUnmapMemory( vkGetInstanceProcAddr( instance, "vkUnmapMemory" ) ); - vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplateKHR" ) ); - vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSetWithTemplate" ) ); - if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; - vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetInstanceProcAddr( instance, "vkUpdateDescriptorSets" ) ); - vkWaitForFences = PFN_vkWaitForFences( vkGetInstanceProcAddr( instance, "vkWaitForFences" ) ); - vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetInstanceProcAddr( instance, "vkWaitSemaphoresKHR" ) ); - vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetInstanceProcAddr( instance, "vkWaitSemaphores" ) ); - if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR; - vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetInstanceProcAddr( instance, "vkWriteAccelerationStructuresPropertiesKHR" ) ); - } - - void init( VULKAN_HPP_NAMESPACE::Device deviceCpp ) VULKAN_HPP_NOEXCEPT - { - VkDevice device = static_cast(deviceCpp); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkAcquireFullScreenExclusiveModeEXT = PFN_vkAcquireFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkAcquireFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkAcquireNextImage2KHR = PFN_vkAcquireNextImage2KHR( vkGetDeviceProcAddr( device, "vkAcquireNextImage2KHR" ) ); - vkAcquireNextImageKHR = PFN_vkAcquireNextImageKHR( vkGetDeviceProcAddr( device, "vkAcquireNextImageKHR" ) ); - vkAcquirePerformanceConfigurationINTEL = PFN_vkAcquirePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkAcquirePerformanceConfigurationINTEL" ) ); - vkAcquireProfilingLockKHR = PFN_vkAcquireProfilingLockKHR( vkGetDeviceProcAddr( device, "vkAcquireProfilingLockKHR" ) ); - vkAllocateCommandBuffers = PFN_vkAllocateCommandBuffers( vkGetDeviceProcAddr( device, "vkAllocateCommandBuffers" ) ); - vkAllocateDescriptorSets = PFN_vkAllocateDescriptorSets( vkGetDeviceProcAddr( device, "vkAllocateDescriptorSets" ) ); - vkAllocateMemory = PFN_vkAllocateMemory( vkGetDeviceProcAddr( device, "vkAllocateMemory" ) ); - vkBeginCommandBuffer = PFN_vkBeginCommandBuffer( vkGetDeviceProcAddr( device, "vkBeginCommandBuffer" ) ); - vkBindAccelerationStructureMemoryNV = PFN_vkBindAccelerationStructureMemoryNV( vkGetDeviceProcAddr( device, "vkBindAccelerationStructureMemoryNV" ) ); - vkBindBufferMemory = PFN_vkBindBufferMemory( vkGetDeviceProcAddr( device, "vkBindBufferMemory" ) ); - vkBindBufferMemory2KHR = PFN_vkBindBufferMemory2KHR( vkGetDeviceProcAddr( device, "vkBindBufferMemory2KHR" ) ); - vkBindBufferMemory2 = PFN_vkBindBufferMemory2( vkGetDeviceProcAddr( device, "vkBindBufferMemory2" ) ); - if ( !vkBindBufferMemory2 ) vkBindBufferMemory2 = vkBindBufferMemory2KHR; - vkBindImageMemory = PFN_vkBindImageMemory( vkGetDeviceProcAddr( device, "vkBindImageMemory" ) ); - vkBindImageMemory2KHR = PFN_vkBindImageMemory2KHR( vkGetDeviceProcAddr( device, "vkBindImageMemory2KHR" ) ); - vkBindImageMemory2 = PFN_vkBindImageMemory2( vkGetDeviceProcAddr( device, "vkBindImageMemory2" ) ); - if ( !vkBindImageMemory2 ) vkBindImageMemory2 = vkBindImageMemory2KHR; - vkBuildAccelerationStructuresKHR = PFN_vkBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkBuildAccelerationStructuresKHR" ) ); - vkCmdBeginConditionalRenderingEXT = PFN_vkCmdBeginConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdBeginConditionalRenderingEXT" ) ); - vkCmdBeginDebugUtilsLabelEXT = PFN_vkCmdBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdBeginDebugUtilsLabelEXT" ) ); - vkCmdBeginQuery = PFN_vkCmdBeginQuery( vkGetDeviceProcAddr( device, "vkCmdBeginQuery" ) ); - vkCmdBeginQueryIndexedEXT = PFN_vkCmdBeginQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdBeginQueryIndexedEXT" ) ); - vkCmdBeginRenderPass = PFN_vkCmdBeginRenderPass( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass" ) ); - vkCmdBeginRenderPass2KHR = PFN_vkCmdBeginRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2KHR" ) ); - vkCmdBeginRenderPass2 = PFN_vkCmdBeginRenderPass2( vkGetDeviceProcAddr( device, "vkCmdBeginRenderPass2" ) ); - if ( !vkCmdBeginRenderPass2 ) vkCmdBeginRenderPass2 = vkCmdBeginRenderPass2KHR; - vkCmdBeginTransformFeedbackEXT = PFN_vkCmdBeginTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdBeginTransformFeedbackEXT" ) ); - vkCmdBindDescriptorSets = PFN_vkCmdBindDescriptorSets( vkGetDeviceProcAddr( device, "vkCmdBindDescriptorSets" ) ); - vkCmdBindIndexBuffer = PFN_vkCmdBindIndexBuffer( vkGetDeviceProcAddr( device, "vkCmdBindIndexBuffer" ) ); - vkCmdBindPipeline = PFN_vkCmdBindPipeline( vkGetDeviceProcAddr( device, "vkCmdBindPipeline" ) ); - vkCmdBindPipelineShaderGroupNV = PFN_vkCmdBindPipelineShaderGroupNV( vkGetDeviceProcAddr( device, "vkCmdBindPipelineShaderGroupNV" ) ); - vkCmdBindShadingRateImageNV = PFN_vkCmdBindShadingRateImageNV( vkGetDeviceProcAddr( device, "vkCmdBindShadingRateImageNV" ) ); - vkCmdBindTransformFeedbackBuffersEXT = PFN_vkCmdBindTransformFeedbackBuffersEXT( vkGetDeviceProcAddr( device, "vkCmdBindTransformFeedbackBuffersEXT" ) ); - vkCmdBindVertexBuffers = PFN_vkCmdBindVertexBuffers( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers" ) ); - vkCmdBindVertexBuffers2EXT = PFN_vkCmdBindVertexBuffers2EXT( vkGetDeviceProcAddr( device, "vkCmdBindVertexBuffers2EXT" ) ); - vkCmdBlitImage = PFN_vkCmdBlitImage( vkGetDeviceProcAddr( device, "vkCmdBlitImage" ) ); - vkCmdBlitImage2KHR = PFN_vkCmdBlitImage2KHR( vkGetDeviceProcAddr( device, "vkCmdBlitImage2KHR" ) ); - vkCmdBuildAccelerationStructureNV = PFN_vkCmdBuildAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructureNV" ) ); - vkCmdBuildAccelerationStructuresIndirectKHR = PFN_vkCmdBuildAccelerationStructuresIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresIndirectKHR" ) ); - vkCmdBuildAccelerationStructuresKHR = PFN_vkCmdBuildAccelerationStructuresKHR( vkGetDeviceProcAddr( device, "vkCmdBuildAccelerationStructuresKHR" ) ); - vkCmdClearAttachments = PFN_vkCmdClearAttachments( vkGetDeviceProcAddr( device, "vkCmdClearAttachments" ) ); - vkCmdClearColorImage = PFN_vkCmdClearColorImage( vkGetDeviceProcAddr( device, "vkCmdClearColorImage" ) ); - vkCmdClearDepthStencilImage = PFN_vkCmdClearDepthStencilImage( vkGetDeviceProcAddr( device, "vkCmdClearDepthStencilImage" ) ); - vkCmdCopyAccelerationStructureKHR = PFN_vkCmdCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureKHR" ) ); - vkCmdCopyAccelerationStructureNV = PFN_vkCmdCopyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureNV" ) ); - vkCmdCopyAccelerationStructureToMemoryKHR = PFN_vkCmdCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCmdCopyAccelerationStructureToMemoryKHR" ) ); - vkCmdCopyBuffer = PFN_vkCmdCopyBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer" ) ); - vkCmdCopyBuffer2KHR = PFN_vkCmdCopyBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBuffer2KHR" ) ); - vkCmdCopyBufferToImage = PFN_vkCmdCopyBufferToImage( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage" ) ); - vkCmdCopyBufferToImage2KHR = PFN_vkCmdCopyBufferToImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyBufferToImage2KHR" ) ); - vkCmdCopyImage = PFN_vkCmdCopyImage( vkGetDeviceProcAddr( device, "vkCmdCopyImage" ) ); - vkCmdCopyImage2KHR = PFN_vkCmdCopyImage2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImage2KHR" ) ); - vkCmdCopyImageToBuffer = PFN_vkCmdCopyImageToBuffer( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer" ) ); - vkCmdCopyImageToBuffer2KHR = PFN_vkCmdCopyImageToBuffer2KHR( vkGetDeviceProcAddr( device, "vkCmdCopyImageToBuffer2KHR" ) ); - vkCmdCopyMemoryToAccelerationStructureKHR = PFN_vkCmdCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCmdCopyMemoryToAccelerationStructureKHR" ) ); - vkCmdCopyQueryPoolResults = PFN_vkCmdCopyQueryPoolResults( vkGetDeviceProcAddr( device, "vkCmdCopyQueryPoolResults" ) ); - vkCmdDebugMarkerBeginEXT = PFN_vkCmdDebugMarkerBeginEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerBeginEXT" ) ); - vkCmdDebugMarkerEndEXT = PFN_vkCmdDebugMarkerEndEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerEndEXT" ) ); - vkCmdDebugMarkerInsertEXT = PFN_vkCmdDebugMarkerInsertEXT( vkGetDeviceProcAddr( device, "vkCmdDebugMarkerInsertEXT" ) ); - vkCmdDispatch = PFN_vkCmdDispatch( vkGetDeviceProcAddr( device, "vkCmdDispatch" ) ); - vkCmdDispatchBaseKHR = PFN_vkCmdDispatchBaseKHR( vkGetDeviceProcAddr( device, "vkCmdDispatchBaseKHR" ) ); - vkCmdDispatchBase = PFN_vkCmdDispatchBase( vkGetDeviceProcAddr( device, "vkCmdDispatchBase" ) ); - if ( !vkCmdDispatchBase ) vkCmdDispatchBase = vkCmdDispatchBaseKHR; - vkCmdDispatchIndirect = PFN_vkCmdDispatchIndirect( vkGetDeviceProcAddr( device, "vkCmdDispatchIndirect" ) ); - vkCmdDraw = PFN_vkCmdDraw( vkGetDeviceProcAddr( device, "vkCmdDraw" ) ); - vkCmdDrawIndexed = PFN_vkCmdDrawIndexed( vkGetDeviceProcAddr( device, "vkCmdDrawIndexed" ) ); - vkCmdDrawIndexedIndirect = PFN_vkCmdDrawIndexedIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirect" ) ); - vkCmdDrawIndexedIndirectCountAMD = PFN_vkCmdDrawIndexedIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountAMD" ) ); - vkCmdDrawIndexedIndirectCountKHR = PFN_vkCmdDrawIndexedIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCountKHR" ) ); - vkCmdDrawIndexedIndirectCount = PFN_vkCmdDrawIndexedIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndexedIndirectCount" ) ); - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountKHR; - if ( !vkCmdDrawIndexedIndirectCount ) vkCmdDrawIndexedIndirectCount = vkCmdDrawIndexedIndirectCountAMD; - vkCmdDrawIndirect = PFN_vkCmdDrawIndirect( vkGetDeviceProcAddr( device, "vkCmdDrawIndirect" ) ); - vkCmdDrawIndirectByteCountEXT = PFN_vkCmdDrawIndirectByteCountEXT( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectByteCountEXT" ) ); - vkCmdDrawIndirectCountAMD = PFN_vkCmdDrawIndirectCountAMD( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountAMD" ) ); - vkCmdDrawIndirectCountKHR = PFN_vkCmdDrawIndirectCountKHR( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCountKHR" ) ); - vkCmdDrawIndirectCount = PFN_vkCmdDrawIndirectCount( vkGetDeviceProcAddr( device, "vkCmdDrawIndirectCount" ) ); - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountKHR; - if ( !vkCmdDrawIndirectCount ) vkCmdDrawIndirectCount = vkCmdDrawIndirectCountAMD; - vkCmdDrawMeshTasksIndirectCountNV = PFN_vkCmdDrawMeshTasksIndirectCountNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectCountNV" ) ); - vkCmdDrawMeshTasksIndirectNV = PFN_vkCmdDrawMeshTasksIndirectNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksIndirectNV" ) ); - vkCmdDrawMeshTasksNV = PFN_vkCmdDrawMeshTasksNV( vkGetDeviceProcAddr( device, "vkCmdDrawMeshTasksNV" ) ); - vkCmdEndConditionalRenderingEXT = PFN_vkCmdEndConditionalRenderingEXT( vkGetDeviceProcAddr( device, "vkCmdEndConditionalRenderingEXT" ) ); - vkCmdEndDebugUtilsLabelEXT = PFN_vkCmdEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdEndDebugUtilsLabelEXT" ) ); - vkCmdEndQuery = PFN_vkCmdEndQuery( vkGetDeviceProcAddr( device, "vkCmdEndQuery" ) ); - vkCmdEndQueryIndexedEXT = PFN_vkCmdEndQueryIndexedEXT( vkGetDeviceProcAddr( device, "vkCmdEndQueryIndexedEXT" ) ); - vkCmdEndRenderPass = PFN_vkCmdEndRenderPass( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass" ) ); - vkCmdEndRenderPass2KHR = PFN_vkCmdEndRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2KHR" ) ); - vkCmdEndRenderPass2 = PFN_vkCmdEndRenderPass2( vkGetDeviceProcAddr( device, "vkCmdEndRenderPass2" ) ); - if ( !vkCmdEndRenderPass2 ) vkCmdEndRenderPass2 = vkCmdEndRenderPass2KHR; - vkCmdEndTransformFeedbackEXT = PFN_vkCmdEndTransformFeedbackEXT( vkGetDeviceProcAddr( device, "vkCmdEndTransformFeedbackEXT" ) ); - vkCmdExecuteCommands = PFN_vkCmdExecuteCommands( vkGetDeviceProcAddr( device, "vkCmdExecuteCommands" ) ); - vkCmdExecuteGeneratedCommandsNV = PFN_vkCmdExecuteGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdExecuteGeneratedCommandsNV" ) ); - vkCmdFillBuffer = PFN_vkCmdFillBuffer( vkGetDeviceProcAddr( device, "vkCmdFillBuffer" ) ); - vkCmdInsertDebugUtilsLabelEXT = PFN_vkCmdInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkCmdInsertDebugUtilsLabelEXT" ) ); - vkCmdNextSubpass = PFN_vkCmdNextSubpass( vkGetDeviceProcAddr( device, "vkCmdNextSubpass" ) ); - vkCmdNextSubpass2KHR = PFN_vkCmdNextSubpass2KHR( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2KHR" ) ); - vkCmdNextSubpass2 = PFN_vkCmdNextSubpass2( vkGetDeviceProcAddr( device, "vkCmdNextSubpass2" ) ); - if ( !vkCmdNextSubpass2 ) vkCmdNextSubpass2 = vkCmdNextSubpass2KHR; - vkCmdPipelineBarrier = PFN_vkCmdPipelineBarrier( vkGetDeviceProcAddr( device, "vkCmdPipelineBarrier" ) ); - vkCmdPreprocessGeneratedCommandsNV = PFN_vkCmdPreprocessGeneratedCommandsNV( vkGetDeviceProcAddr( device, "vkCmdPreprocessGeneratedCommandsNV" ) ); - vkCmdPushConstants = PFN_vkCmdPushConstants( vkGetDeviceProcAddr( device, "vkCmdPushConstants" ) ); - vkCmdPushDescriptorSetKHR = PFN_vkCmdPushDescriptorSetKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetKHR" ) ); - vkCmdPushDescriptorSetWithTemplateKHR = PFN_vkCmdPushDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkCmdPushDescriptorSetWithTemplateKHR" ) ); - vkCmdResetEvent = PFN_vkCmdResetEvent( vkGetDeviceProcAddr( device, "vkCmdResetEvent" ) ); - vkCmdResetQueryPool = PFN_vkCmdResetQueryPool( vkGetDeviceProcAddr( device, "vkCmdResetQueryPool" ) ); - vkCmdResolveImage = PFN_vkCmdResolveImage( vkGetDeviceProcAddr( device, "vkCmdResolveImage" ) ); - vkCmdResolveImage2KHR = PFN_vkCmdResolveImage2KHR( vkGetDeviceProcAddr( device, "vkCmdResolveImage2KHR" ) ); - vkCmdSetBlendConstants = PFN_vkCmdSetBlendConstants( vkGetDeviceProcAddr( device, "vkCmdSetBlendConstants" ) ); - vkCmdSetCheckpointNV = PFN_vkCmdSetCheckpointNV( vkGetDeviceProcAddr( device, "vkCmdSetCheckpointNV" ) ); - vkCmdSetCoarseSampleOrderNV = PFN_vkCmdSetCoarseSampleOrderNV( vkGetDeviceProcAddr( device, "vkCmdSetCoarseSampleOrderNV" ) ); - vkCmdSetCullModeEXT = PFN_vkCmdSetCullModeEXT( vkGetDeviceProcAddr( device, "vkCmdSetCullModeEXT" ) ); - vkCmdSetDepthBias = PFN_vkCmdSetDepthBias( vkGetDeviceProcAddr( device, "vkCmdSetDepthBias" ) ); - vkCmdSetDepthBounds = PFN_vkCmdSetDepthBounds( vkGetDeviceProcAddr( device, "vkCmdSetDepthBounds" ) ); - vkCmdSetDepthBoundsTestEnableEXT = PFN_vkCmdSetDepthBoundsTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthBoundsTestEnableEXT" ) ); - vkCmdSetDepthCompareOpEXT = PFN_vkCmdSetDepthCompareOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthCompareOpEXT" ) ); - vkCmdSetDepthTestEnableEXT = PFN_vkCmdSetDepthTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthTestEnableEXT" ) ); - vkCmdSetDepthWriteEnableEXT = PFN_vkCmdSetDepthWriteEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetDepthWriteEnableEXT" ) ); - vkCmdSetDeviceMaskKHR = PFN_vkCmdSetDeviceMaskKHR( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMaskKHR" ) ); - vkCmdSetDeviceMask = PFN_vkCmdSetDeviceMask( vkGetDeviceProcAddr( device, "vkCmdSetDeviceMask" ) ); - if ( !vkCmdSetDeviceMask ) vkCmdSetDeviceMask = vkCmdSetDeviceMaskKHR; - vkCmdSetDiscardRectangleEXT = PFN_vkCmdSetDiscardRectangleEXT( vkGetDeviceProcAddr( device, "vkCmdSetDiscardRectangleEXT" ) ); - vkCmdSetEvent = PFN_vkCmdSetEvent( vkGetDeviceProcAddr( device, "vkCmdSetEvent" ) ); - vkCmdSetExclusiveScissorNV = PFN_vkCmdSetExclusiveScissorNV( vkGetDeviceProcAddr( device, "vkCmdSetExclusiveScissorNV" ) ); - vkCmdSetFragmentShadingRateEnumNV = PFN_vkCmdSetFragmentShadingRateEnumNV( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateEnumNV" ) ); - vkCmdSetFragmentShadingRateKHR = PFN_vkCmdSetFragmentShadingRateKHR( vkGetDeviceProcAddr( device, "vkCmdSetFragmentShadingRateKHR" ) ); - vkCmdSetFrontFaceEXT = PFN_vkCmdSetFrontFaceEXT( vkGetDeviceProcAddr( device, "vkCmdSetFrontFaceEXT" ) ); - vkCmdSetLineStippleEXT = PFN_vkCmdSetLineStippleEXT( vkGetDeviceProcAddr( device, "vkCmdSetLineStippleEXT" ) ); - vkCmdSetLineWidth = PFN_vkCmdSetLineWidth( vkGetDeviceProcAddr( device, "vkCmdSetLineWidth" ) ); - vkCmdSetPerformanceMarkerINTEL = PFN_vkCmdSetPerformanceMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceMarkerINTEL" ) ); - vkCmdSetPerformanceOverrideINTEL = PFN_vkCmdSetPerformanceOverrideINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceOverrideINTEL" ) ); - vkCmdSetPerformanceStreamMarkerINTEL = PFN_vkCmdSetPerformanceStreamMarkerINTEL( vkGetDeviceProcAddr( device, "vkCmdSetPerformanceStreamMarkerINTEL" ) ); - vkCmdSetPrimitiveTopologyEXT = PFN_vkCmdSetPrimitiveTopologyEXT( vkGetDeviceProcAddr( device, "vkCmdSetPrimitiveTopologyEXT" ) ); - vkCmdSetRayTracingPipelineStackSizeKHR = PFN_vkCmdSetRayTracingPipelineStackSizeKHR( vkGetDeviceProcAddr( device, "vkCmdSetRayTracingPipelineStackSizeKHR" ) ); - vkCmdSetSampleLocationsEXT = PFN_vkCmdSetSampleLocationsEXT( vkGetDeviceProcAddr( device, "vkCmdSetSampleLocationsEXT" ) ); - vkCmdSetScissor = PFN_vkCmdSetScissor( vkGetDeviceProcAddr( device, "vkCmdSetScissor" ) ); - vkCmdSetScissorWithCountEXT = PFN_vkCmdSetScissorWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetScissorWithCountEXT" ) ); - vkCmdSetStencilCompareMask = PFN_vkCmdSetStencilCompareMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilCompareMask" ) ); - vkCmdSetStencilOpEXT = PFN_vkCmdSetStencilOpEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilOpEXT" ) ); - vkCmdSetStencilReference = PFN_vkCmdSetStencilReference( vkGetDeviceProcAddr( device, "vkCmdSetStencilReference" ) ); - vkCmdSetStencilTestEnableEXT = PFN_vkCmdSetStencilTestEnableEXT( vkGetDeviceProcAddr( device, "vkCmdSetStencilTestEnableEXT" ) ); - vkCmdSetStencilWriteMask = PFN_vkCmdSetStencilWriteMask( vkGetDeviceProcAddr( device, "vkCmdSetStencilWriteMask" ) ); - vkCmdSetViewport = PFN_vkCmdSetViewport( vkGetDeviceProcAddr( device, "vkCmdSetViewport" ) ); - vkCmdSetViewportShadingRatePaletteNV = PFN_vkCmdSetViewportShadingRatePaletteNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportShadingRatePaletteNV" ) ); - vkCmdSetViewportWScalingNV = PFN_vkCmdSetViewportWScalingNV( vkGetDeviceProcAddr( device, "vkCmdSetViewportWScalingNV" ) ); - vkCmdSetViewportWithCountEXT = PFN_vkCmdSetViewportWithCountEXT( vkGetDeviceProcAddr( device, "vkCmdSetViewportWithCountEXT" ) ); - vkCmdTraceRaysIndirectKHR = PFN_vkCmdTraceRaysIndirectKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysIndirectKHR" ) ); - vkCmdTraceRaysKHR = PFN_vkCmdTraceRaysKHR( vkGetDeviceProcAddr( device, "vkCmdTraceRaysKHR" ) ); - vkCmdTraceRaysNV = PFN_vkCmdTraceRaysNV( vkGetDeviceProcAddr( device, "vkCmdTraceRaysNV" ) ); - vkCmdUpdateBuffer = PFN_vkCmdUpdateBuffer( vkGetDeviceProcAddr( device, "vkCmdUpdateBuffer" ) ); - vkCmdWaitEvents = PFN_vkCmdWaitEvents( vkGetDeviceProcAddr( device, "vkCmdWaitEvents" ) ); - vkCmdWriteAccelerationStructuresPropertiesKHR = PFN_vkCmdWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesKHR" ) ); - vkCmdWriteAccelerationStructuresPropertiesNV = PFN_vkCmdWriteAccelerationStructuresPropertiesNV( vkGetDeviceProcAddr( device, "vkCmdWriteAccelerationStructuresPropertiesNV" ) ); - vkCmdWriteBufferMarkerAMD = PFN_vkCmdWriteBufferMarkerAMD( vkGetDeviceProcAddr( device, "vkCmdWriteBufferMarkerAMD" ) ); - vkCmdWriteTimestamp = PFN_vkCmdWriteTimestamp( vkGetDeviceProcAddr( device, "vkCmdWriteTimestamp" ) ); - vkCompileDeferredNV = PFN_vkCompileDeferredNV( vkGetDeviceProcAddr( device, "vkCompileDeferredNV" ) ); - vkCopyAccelerationStructureKHR = PFN_vkCopyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureKHR" ) ); - vkCopyAccelerationStructureToMemoryKHR = PFN_vkCopyAccelerationStructureToMemoryKHR( vkGetDeviceProcAddr( device, "vkCopyAccelerationStructureToMemoryKHR" ) ); - vkCopyMemoryToAccelerationStructureKHR = PFN_vkCopyMemoryToAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCopyMemoryToAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureKHR = PFN_vkCreateAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureKHR" ) ); - vkCreateAccelerationStructureNV = PFN_vkCreateAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkCreateAccelerationStructureNV" ) ); - vkCreateBuffer = PFN_vkCreateBuffer( vkGetDeviceProcAddr( device, "vkCreateBuffer" ) ); - vkCreateBufferView = PFN_vkCreateBufferView( vkGetDeviceProcAddr( device, "vkCreateBufferView" ) ); - vkCreateCommandPool = PFN_vkCreateCommandPool( vkGetDeviceProcAddr( device, "vkCreateCommandPool" ) ); - vkCreateComputePipelines = PFN_vkCreateComputePipelines( vkGetDeviceProcAddr( device, "vkCreateComputePipelines" ) ); - vkCreateDeferredOperationKHR = PFN_vkCreateDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkCreateDeferredOperationKHR" ) ); - vkCreateDescriptorPool = PFN_vkCreateDescriptorPool( vkGetDeviceProcAddr( device, "vkCreateDescriptorPool" ) ); - vkCreateDescriptorSetLayout = PFN_vkCreateDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkCreateDescriptorSetLayout" ) ); - vkCreateDescriptorUpdateTemplateKHR = PFN_vkCreateDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplateKHR" ) ); - vkCreateDescriptorUpdateTemplate = PFN_vkCreateDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkCreateDescriptorUpdateTemplate" ) ); - if ( !vkCreateDescriptorUpdateTemplate ) vkCreateDescriptorUpdateTemplate = vkCreateDescriptorUpdateTemplateKHR; - vkCreateEvent = PFN_vkCreateEvent( vkGetDeviceProcAddr( device, "vkCreateEvent" ) ); - vkCreateFence = PFN_vkCreateFence( vkGetDeviceProcAddr( device, "vkCreateFence" ) ); - vkCreateFramebuffer = PFN_vkCreateFramebuffer( vkGetDeviceProcAddr( device, "vkCreateFramebuffer" ) ); - vkCreateGraphicsPipelines = PFN_vkCreateGraphicsPipelines( vkGetDeviceProcAddr( device, "vkCreateGraphicsPipelines" ) ); - vkCreateImage = PFN_vkCreateImage( vkGetDeviceProcAddr( device, "vkCreateImage" ) ); - vkCreateImageView = PFN_vkCreateImageView( vkGetDeviceProcAddr( device, "vkCreateImageView" ) ); - vkCreateIndirectCommandsLayoutNV = PFN_vkCreateIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkCreateIndirectCommandsLayoutNV" ) ); - vkCreatePipelineCache = PFN_vkCreatePipelineCache( vkGetDeviceProcAddr( device, "vkCreatePipelineCache" ) ); - vkCreatePipelineLayout = PFN_vkCreatePipelineLayout( vkGetDeviceProcAddr( device, "vkCreatePipelineLayout" ) ); - vkCreatePrivateDataSlotEXT = PFN_vkCreatePrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkCreatePrivateDataSlotEXT" ) ); - vkCreateQueryPool = PFN_vkCreateQueryPool( vkGetDeviceProcAddr( device, "vkCreateQueryPool" ) ); - vkCreateRayTracingPipelinesKHR = PFN_vkCreateRayTracingPipelinesKHR( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesKHR" ) ); - vkCreateRayTracingPipelinesNV = PFN_vkCreateRayTracingPipelinesNV( vkGetDeviceProcAddr( device, "vkCreateRayTracingPipelinesNV" ) ); - vkCreateRenderPass = PFN_vkCreateRenderPass( vkGetDeviceProcAddr( device, "vkCreateRenderPass" ) ); - vkCreateRenderPass2KHR = PFN_vkCreateRenderPass2KHR( vkGetDeviceProcAddr( device, "vkCreateRenderPass2KHR" ) ); - vkCreateRenderPass2 = PFN_vkCreateRenderPass2( vkGetDeviceProcAddr( device, "vkCreateRenderPass2" ) ); - if ( !vkCreateRenderPass2 ) vkCreateRenderPass2 = vkCreateRenderPass2KHR; - vkCreateSampler = PFN_vkCreateSampler( vkGetDeviceProcAddr( device, "vkCreateSampler" ) ); - vkCreateSamplerYcbcrConversionKHR = PFN_vkCreateSamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversionKHR" ) ); - vkCreateSamplerYcbcrConversion = PFN_vkCreateSamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkCreateSamplerYcbcrConversion" ) ); - if ( !vkCreateSamplerYcbcrConversion ) vkCreateSamplerYcbcrConversion = vkCreateSamplerYcbcrConversionKHR; - vkCreateSemaphore = PFN_vkCreateSemaphore( vkGetDeviceProcAddr( device, "vkCreateSemaphore" ) ); - vkCreateShaderModule = PFN_vkCreateShaderModule( vkGetDeviceProcAddr( device, "vkCreateShaderModule" ) ); - vkCreateSharedSwapchainsKHR = PFN_vkCreateSharedSwapchainsKHR( vkGetDeviceProcAddr( device, "vkCreateSharedSwapchainsKHR" ) ); - vkCreateSwapchainKHR = PFN_vkCreateSwapchainKHR( vkGetDeviceProcAddr( device, "vkCreateSwapchainKHR" ) ); - vkCreateValidationCacheEXT = PFN_vkCreateValidationCacheEXT( vkGetDeviceProcAddr( device, "vkCreateValidationCacheEXT" ) ); - vkDebugMarkerSetObjectNameEXT = PFN_vkDebugMarkerSetObjectNameEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectNameEXT" ) ); - vkDebugMarkerSetObjectTagEXT = PFN_vkDebugMarkerSetObjectTagEXT( vkGetDeviceProcAddr( device, "vkDebugMarkerSetObjectTagEXT" ) ); - vkDeferredOperationJoinKHR = PFN_vkDeferredOperationJoinKHR( vkGetDeviceProcAddr( device, "vkDeferredOperationJoinKHR" ) ); - vkDestroyAccelerationStructureKHR = PFN_vkDestroyAccelerationStructureKHR( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureKHR" ) ); - vkDestroyAccelerationStructureNV = PFN_vkDestroyAccelerationStructureNV( vkGetDeviceProcAddr( device, "vkDestroyAccelerationStructureNV" ) ); - vkDestroyBuffer = PFN_vkDestroyBuffer( vkGetDeviceProcAddr( device, "vkDestroyBuffer" ) ); - vkDestroyBufferView = PFN_vkDestroyBufferView( vkGetDeviceProcAddr( device, "vkDestroyBufferView" ) ); - vkDestroyCommandPool = PFN_vkDestroyCommandPool( vkGetDeviceProcAddr( device, "vkDestroyCommandPool" ) ); - vkDestroyDeferredOperationKHR = PFN_vkDestroyDeferredOperationKHR( vkGetDeviceProcAddr( device, "vkDestroyDeferredOperationKHR" ) ); - vkDestroyDescriptorPool = PFN_vkDestroyDescriptorPool( vkGetDeviceProcAddr( device, "vkDestroyDescriptorPool" ) ); - vkDestroyDescriptorSetLayout = PFN_vkDestroyDescriptorSetLayout( vkGetDeviceProcAddr( device, "vkDestroyDescriptorSetLayout" ) ); - vkDestroyDescriptorUpdateTemplateKHR = PFN_vkDestroyDescriptorUpdateTemplateKHR( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplateKHR" ) ); - vkDestroyDescriptorUpdateTemplate = PFN_vkDestroyDescriptorUpdateTemplate( vkGetDeviceProcAddr( device, "vkDestroyDescriptorUpdateTemplate" ) ); - if ( !vkDestroyDescriptorUpdateTemplate ) vkDestroyDescriptorUpdateTemplate = vkDestroyDescriptorUpdateTemplateKHR; - vkDestroyDevice = PFN_vkDestroyDevice( vkGetDeviceProcAddr( device, "vkDestroyDevice" ) ); - vkDestroyEvent = PFN_vkDestroyEvent( vkGetDeviceProcAddr( device, "vkDestroyEvent" ) ); - vkDestroyFence = PFN_vkDestroyFence( vkGetDeviceProcAddr( device, "vkDestroyFence" ) ); - vkDestroyFramebuffer = PFN_vkDestroyFramebuffer( vkGetDeviceProcAddr( device, "vkDestroyFramebuffer" ) ); - vkDestroyImage = PFN_vkDestroyImage( vkGetDeviceProcAddr( device, "vkDestroyImage" ) ); - vkDestroyImageView = PFN_vkDestroyImageView( vkGetDeviceProcAddr( device, "vkDestroyImageView" ) ); - vkDestroyIndirectCommandsLayoutNV = PFN_vkDestroyIndirectCommandsLayoutNV( vkGetDeviceProcAddr( device, "vkDestroyIndirectCommandsLayoutNV" ) ); - vkDestroyPipeline = PFN_vkDestroyPipeline( vkGetDeviceProcAddr( device, "vkDestroyPipeline" ) ); - vkDestroyPipelineCache = PFN_vkDestroyPipelineCache( vkGetDeviceProcAddr( device, "vkDestroyPipelineCache" ) ); - vkDestroyPipelineLayout = PFN_vkDestroyPipelineLayout( vkGetDeviceProcAddr( device, "vkDestroyPipelineLayout" ) ); - vkDestroyPrivateDataSlotEXT = PFN_vkDestroyPrivateDataSlotEXT( vkGetDeviceProcAddr( device, "vkDestroyPrivateDataSlotEXT" ) ); - vkDestroyQueryPool = PFN_vkDestroyQueryPool( vkGetDeviceProcAddr( device, "vkDestroyQueryPool" ) ); - vkDestroyRenderPass = PFN_vkDestroyRenderPass( vkGetDeviceProcAddr( device, "vkDestroyRenderPass" ) ); - vkDestroySampler = PFN_vkDestroySampler( vkGetDeviceProcAddr( device, "vkDestroySampler" ) ); - vkDestroySamplerYcbcrConversionKHR = PFN_vkDestroySamplerYcbcrConversionKHR( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversionKHR" ) ); - vkDestroySamplerYcbcrConversion = PFN_vkDestroySamplerYcbcrConversion( vkGetDeviceProcAddr( device, "vkDestroySamplerYcbcrConversion" ) ); - if ( !vkDestroySamplerYcbcrConversion ) vkDestroySamplerYcbcrConversion = vkDestroySamplerYcbcrConversionKHR; - vkDestroySemaphore = PFN_vkDestroySemaphore( vkGetDeviceProcAddr( device, "vkDestroySemaphore" ) ); - vkDestroyShaderModule = PFN_vkDestroyShaderModule( vkGetDeviceProcAddr( device, "vkDestroyShaderModule" ) ); - vkDestroySwapchainKHR = PFN_vkDestroySwapchainKHR( vkGetDeviceProcAddr( device, "vkDestroySwapchainKHR" ) ); - vkDestroyValidationCacheEXT = PFN_vkDestroyValidationCacheEXT( vkGetDeviceProcAddr( device, "vkDestroyValidationCacheEXT" ) ); - vkDeviceWaitIdle = PFN_vkDeviceWaitIdle( vkGetDeviceProcAddr( device, "vkDeviceWaitIdle" ) ); - vkDisplayPowerControlEXT = PFN_vkDisplayPowerControlEXT( vkGetDeviceProcAddr( device, "vkDisplayPowerControlEXT" ) ); - vkEndCommandBuffer = PFN_vkEndCommandBuffer( vkGetDeviceProcAddr( device, "vkEndCommandBuffer" ) ); - vkFlushMappedMemoryRanges = PFN_vkFlushMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkFlushMappedMemoryRanges" ) ); - vkFreeCommandBuffers = PFN_vkFreeCommandBuffers( vkGetDeviceProcAddr( device, "vkFreeCommandBuffers" ) ); - vkFreeDescriptorSets = PFN_vkFreeDescriptorSets( vkGetDeviceProcAddr( device, "vkFreeDescriptorSets" ) ); - vkFreeMemory = PFN_vkFreeMemory( vkGetDeviceProcAddr( device, "vkFreeMemory" ) ); - vkGetAccelerationStructureBuildSizesKHR = PFN_vkGetAccelerationStructureBuildSizesKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureBuildSizesKHR" ) ); - vkGetAccelerationStructureDeviceAddressKHR = PFN_vkGetAccelerationStructureDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureDeviceAddressKHR" ) ); - vkGetAccelerationStructureHandleNV = PFN_vkGetAccelerationStructureHandleNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureHandleNV" ) ); - vkGetAccelerationStructureMemoryRequirementsNV = PFN_vkGetAccelerationStructureMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetAccelerationStructureMemoryRequirementsNV" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetAndroidHardwareBufferPropertiesANDROID = PFN_vkGetAndroidHardwareBufferPropertiesANDROID( vkGetDeviceProcAddr( device, "vkGetAndroidHardwareBufferPropertiesANDROID" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetBufferDeviceAddressEXT = PFN_vkGetBufferDeviceAddressEXT( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressEXT" ) ); - vkGetBufferDeviceAddressKHR = PFN_vkGetBufferDeviceAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddressKHR" ) ); - vkGetBufferDeviceAddress = PFN_vkGetBufferDeviceAddress( vkGetDeviceProcAddr( device, "vkGetBufferDeviceAddress" ) ); - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressKHR; - if ( !vkGetBufferDeviceAddress ) vkGetBufferDeviceAddress = vkGetBufferDeviceAddressEXT; - vkGetBufferMemoryRequirements = PFN_vkGetBufferMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements" ) ); - vkGetBufferMemoryRequirements2KHR = PFN_vkGetBufferMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2KHR" ) ); - vkGetBufferMemoryRequirements2 = PFN_vkGetBufferMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetBufferMemoryRequirements2" ) ); - if ( !vkGetBufferMemoryRequirements2 ) vkGetBufferMemoryRequirements2 = vkGetBufferMemoryRequirements2KHR; - vkGetBufferOpaqueCaptureAddressKHR = PFN_vkGetBufferOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddressKHR" ) ); - vkGetBufferOpaqueCaptureAddress = PFN_vkGetBufferOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetBufferOpaqueCaptureAddress" ) ); - if ( !vkGetBufferOpaqueCaptureAddress ) vkGetBufferOpaqueCaptureAddress = vkGetBufferOpaqueCaptureAddressKHR; - vkGetCalibratedTimestampsEXT = PFN_vkGetCalibratedTimestampsEXT( vkGetDeviceProcAddr( device, "vkGetCalibratedTimestampsEXT" ) ); - vkGetDeferredOperationMaxConcurrencyKHR = PFN_vkGetDeferredOperationMaxConcurrencyKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationMaxConcurrencyKHR" ) ); - vkGetDeferredOperationResultKHR = PFN_vkGetDeferredOperationResultKHR( vkGetDeviceProcAddr( device, "vkGetDeferredOperationResultKHR" ) ); - vkGetDescriptorSetLayoutSupportKHR = PFN_vkGetDescriptorSetLayoutSupportKHR( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupportKHR" ) ); - vkGetDescriptorSetLayoutSupport = PFN_vkGetDescriptorSetLayoutSupport( vkGetDeviceProcAddr( device, "vkGetDescriptorSetLayoutSupport" ) ); - if ( !vkGetDescriptorSetLayoutSupport ) vkGetDescriptorSetLayoutSupport = vkGetDescriptorSetLayoutSupportKHR; - vkGetDeviceAccelerationStructureCompatibilityKHR = PFN_vkGetDeviceAccelerationStructureCompatibilityKHR( vkGetDeviceProcAddr( device, "vkGetDeviceAccelerationStructureCompatibilityKHR" ) ); - vkGetDeviceGroupPeerMemoryFeaturesKHR = PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeaturesKHR" ) ); - vkGetDeviceGroupPeerMemoryFeatures = PFN_vkGetDeviceGroupPeerMemoryFeatures( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPeerMemoryFeatures" ) ); - if ( !vkGetDeviceGroupPeerMemoryFeatures ) vkGetDeviceGroupPeerMemoryFeatures = vkGetDeviceGroupPeerMemoryFeaturesKHR; - vkGetDeviceGroupPresentCapabilitiesKHR = PFN_vkGetDeviceGroupPresentCapabilitiesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupPresentCapabilitiesKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetDeviceGroupSurfacePresentModes2EXT = PFN_vkGetDeviceGroupSurfacePresentModes2EXT( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModes2EXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetDeviceGroupSurfacePresentModesKHR = PFN_vkGetDeviceGroupSurfacePresentModesKHR( vkGetDeviceProcAddr( device, "vkGetDeviceGroupSurfacePresentModesKHR" ) ); - vkGetDeviceMemoryCommitment = PFN_vkGetDeviceMemoryCommitment( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryCommitment" ) ); - vkGetDeviceMemoryOpaqueCaptureAddressKHR = PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddressKHR" ) ); - vkGetDeviceMemoryOpaqueCaptureAddress = PFN_vkGetDeviceMemoryOpaqueCaptureAddress( vkGetDeviceProcAddr( device, "vkGetDeviceMemoryOpaqueCaptureAddress" ) ); - if ( !vkGetDeviceMemoryOpaqueCaptureAddress ) vkGetDeviceMemoryOpaqueCaptureAddress = vkGetDeviceMemoryOpaqueCaptureAddressKHR; - vkGetDeviceProcAddr = PFN_vkGetDeviceProcAddr( vkGetDeviceProcAddr( device, "vkGetDeviceProcAddr" ) ); - vkGetDeviceQueue = PFN_vkGetDeviceQueue( vkGetDeviceProcAddr( device, "vkGetDeviceQueue" ) ); - vkGetDeviceQueue2 = PFN_vkGetDeviceQueue2( vkGetDeviceProcAddr( device, "vkGetDeviceQueue2" ) ); - vkGetEventStatus = PFN_vkGetEventStatus( vkGetDeviceProcAddr( device, "vkGetEventStatus" ) ); - vkGetFenceFdKHR = PFN_vkGetFenceFdKHR( vkGetDeviceProcAddr( device, "vkGetFenceFdKHR" ) ); - vkGetFenceStatus = PFN_vkGetFenceStatus( vkGetDeviceProcAddr( device, "vkGetFenceStatus" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetFenceWin32HandleKHR = PFN_vkGetFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetFenceWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetGeneratedCommandsMemoryRequirementsNV = PFN_vkGetGeneratedCommandsMemoryRequirementsNV( vkGetDeviceProcAddr( device, "vkGetGeneratedCommandsMemoryRequirementsNV" ) ); - vkGetImageDrmFormatModifierPropertiesEXT = PFN_vkGetImageDrmFormatModifierPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetImageDrmFormatModifierPropertiesEXT" ) ); - vkGetImageMemoryRequirements = PFN_vkGetImageMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements" ) ); - vkGetImageMemoryRequirements2KHR = PFN_vkGetImageMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2KHR" ) ); - vkGetImageMemoryRequirements2 = PFN_vkGetImageMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageMemoryRequirements2" ) ); - if ( !vkGetImageMemoryRequirements2 ) vkGetImageMemoryRequirements2 = vkGetImageMemoryRequirements2KHR; - vkGetImageSparseMemoryRequirements = PFN_vkGetImageSparseMemoryRequirements( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements" ) ); - vkGetImageSparseMemoryRequirements2KHR = PFN_vkGetImageSparseMemoryRequirements2KHR( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2KHR" ) ); - vkGetImageSparseMemoryRequirements2 = PFN_vkGetImageSparseMemoryRequirements2( vkGetDeviceProcAddr( device, "vkGetImageSparseMemoryRequirements2" ) ); - if ( !vkGetImageSparseMemoryRequirements2 ) vkGetImageSparseMemoryRequirements2 = vkGetImageSparseMemoryRequirements2KHR; - vkGetImageSubresourceLayout = PFN_vkGetImageSubresourceLayout( vkGetDeviceProcAddr( device, "vkGetImageSubresourceLayout" ) ); - vkGetImageViewAddressNVX = PFN_vkGetImageViewAddressNVX( vkGetDeviceProcAddr( device, "vkGetImageViewAddressNVX" ) ); - vkGetImageViewHandleNVX = PFN_vkGetImageViewHandleNVX( vkGetDeviceProcAddr( device, "vkGetImageViewHandleNVX" ) ); -#ifdef VK_USE_PLATFORM_ANDROID_KHR - vkGetMemoryAndroidHardwareBufferANDROID = PFN_vkGetMemoryAndroidHardwareBufferANDROID( vkGetDeviceProcAddr( device, "vkGetMemoryAndroidHardwareBufferANDROID" ) ); -#endif /*VK_USE_PLATFORM_ANDROID_KHR*/ - vkGetMemoryFdKHR = PFN_vkGetMemoryFdKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdKHR" ) ); - vkGetMemoryFdPropertiesKHR = PFN_vkGetMemoryFdPropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryFdPropertiesKHR" ) ); - vkGetMemoryHostPointerPropertiesEXT = PFN_vkGetMemoryHostPointerPropertiesEXT( vkGetDeviceProcAddr( device, "vkGetMemoryHostPointerPropertiesEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleKHR = PFN_vkGetMemoryWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandleNV = PFN_vkGetMemoryWin32HandleNV( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandleNV" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetMemoryWin32HandlePropertiesKHR = PFN_vkGetMemoryWin32HandlePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetMemoryWin32HandlePropertiesKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetPastPresentationTimingGOOGLE = PFN_vkGetPastPresentationTimingGOOGLE( vkGetDeviceProcAddr( device, "vkGetPastPresentationTimingGOOGLE" ) ); - vkGetPerformanceParameterINTEL = PFN_vkGetPerformanceParameterINTEL( vkGetDeviceProcAddr( device, "vkGetPerformanceParameterINTEL" ) ); - vkGetPipelineCacheData = PFN_vkGetPipelineCacheData( vkGetDeviceProcAddr( device, "vkGetPipelineCacheData" ) ); - vkGetPipelineExecutableInternalRepresentationsKHR = PFN_vkGetPipelineExecutableInternalRepresentationsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableInternalRepresentationsKHR" ) ); - vkGetPipelineExecutablePropertiesKHR = PFN_vkGetPipelineExecutablePropertiesKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutablePropertiesKHR" ) ); - vkGetPipelineExecutableStatisticsKHR = PFN_vkGetPipelineExecutableStatisticsKHR( vkGetDeviceProcAddr( device, "vkGetPipelineExecutableStatisticsKHR" ) ); - vkGetPrivateDataEXT = PFN_vkGetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkGetPrivateDataEXT" ) ); - vkGetQueryPoolResults = PFN_vkGetQueryPoolResults( vkGetDeviceProcAddr( device, "vkGetQueryPoolResults" ) ); - vkGetQueueCheckpointDataNV = PFN_vkGetQueueCheckpointDataNV( vkGetDeviceProcAddr( device, "vkGetQueueCheckpointDataNV" ) ); - vkGetRayTracingCaptureReplayShaderGroupHandlesKHR = PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR" ) ); - vkGetRayTracingShaderGroupHandlesNV = PFN_vkGetRayTracingShaderGroupHandlesNV( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesNV" ) ); - vkGetRayTracingShaderGroupHandlesKHR = PFN_vkGetRayTracingShaderGroupHandlesKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupHandlesKHR" ) ); - if ( !vkGetRayTracingShaderGroupHandlesKHR ) vkGetRayTracingShaderGroupHandlesKHR = vkGetRayTracingShaderGroupHandlesNV; - vkGetRayTracingShaderGroupStackSizeKHR = PFN_vkGetRayTracingShaderGroupStackSizeKHR( vkGetDeviceProcAddr( device, "vkGetRayTracingShaderGroupStackSizeKHR" ) ); - vkGetRefreshCycleDurationGOOGLE = PFN_vkGetRefreshCycleDurationGOOGLE( vkGetDeviceProcAddr( device, "vkGetRefreshCycleDurationGOOGLE" ) ); - vkGetRenderAreaGranularity = PFN_vkGetRenderAreaGranularity( vkGetDeviceProcAddr( device, "vkGetRenderAreaGranularity" ) ); - vkGetSemaphoreCounterValueKHR = PFN_vkGetSemaphoreCounterValueKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValueKHR" ) ); - vkGetSemaphoreCounterValue = PFN_vkGetSemaphoreCounterValue( vkGetDeviceProcAddr( device, "vkGetSemaphoreCounterValue" ) ); - if ( !vkGetSemaphoreCounterValue ) vkGetSemaphoreCounterValue = vkGetSemaphoreCounterValueKHR; - vkGetSemaphoreFdKHR = PFN_vkGetSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkGetSemaphoreWin32HandleKHR = PFN_vkGetSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkGetSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkGetShaderInfoAMD = PFN_vkGetShaderInfoAMD( vkGetDeviceProcAddr( device, "vkGetShaderInfoAMD" ) ); - vkGetSwapchainCounterEXT = PFN_vkGetSwapchainCounterEXT( vkGetDeviceProcAddr( device, "vkGetSwapchainCounterEXT" ) ); - vkGetSwapchainImagesKHR = PFN_vkGetSwapchainImagesKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainImagesKHR" ) ); - vkGetSwapchainStatusKHR = PFN_vkGetSwapchainStatusKHR( vkGetDeviceProcAddr( device, "vkGetSwapchainStatusKHR" ) ); - vkGetValidationCacheDataEXT = PFN_vkGetValidationCacheDataEXT( vkGetDeviceProcAddr( device, "vkGetValidationCacheDataEXT" ) ); - vkImportFenceFdKHR = PFN_vkImportFenceFdKHR( vkGetDeviceProcAddr( device, "vkImportFenceFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportFenceWin32HandleKHR = PFN_vkImportFenceWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportFenceWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkImportSemaphoreFdKHR = PFN_vkImportSemaphoreFdKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreFdKHR" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkImportSemaphoreWin32HandleKHR = PFN_vkImportSemaphoreWin32HandleKHR( vkGetDeviceProcAddr( device, "vkImportSemaphoreWin32HandleKHR" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkInitializePerformanceApiINTEL = PFN_vkInitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkInitializePerformanceApiINTEL" ) ); - vkInvalidateMappedMemoryRanges = PFN_vkInvalidateMappedMemoryRanges( vkGetDeviceProcAddr( device, "vkInvalidateMappedMemoryRanges" ) ); - vkMapMemory = PFN_vkMapMemory( vkGetDeviceProcAddr( device, "vkMapMemory" ) ); - vkMergePipelineCaches = PFN_vkMergePipelineCaches( vkGetDeviceProcAddr( device, "vkMergePipelineCaches" ) ); - vkMergeValidationCachesEXT = PFN_vkMergeValidationCachesEXT( vkGetDeviceProcAddr( device, "vkMergeValidationCachesEXT" ) ); - vkQueueBeginDebugUtilsLabelEXT = PFN_vkQueueBeginDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueBeginDebugUtilsLabelEXT" ) ); - vkQueueBindSparse = PFN_vkQueueBindSparse( vkGetDeviceProcAddr( device, "vkQueueBindSparse" ) ); - vkQueueEndDebugUtilsLabelEXT = PFN_vkQueueEndDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueEndDebugUtilsLabelEXT" ) ); - vkQueueInsertDebugUtilsLabelEXT = PFN_vkQueueInsertDebugUtilsLabelEXT( vkGetDeviceProcAddr( device, "vkQueueInsertDebugUtilsLabelEXT" ) ); - vkQueuePresentKHR = PFN_vkQueuePresentKHR( vkGetDeviceProcAddr( device, "vkQueuePresentKHR" ) ); - vkQueueSetPerformanceConfigurationINTEL = PFN_vkQueueSetPerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkQueueSetPerformanceConfigurationINTEL" ) ); - vkQueueSubmit = PFN_vkQueueSubmit( vkGetDeviceProcAddr( device, "vkQueueSubmit" ) ); - vkQueueWaitIdle = PFN_vkQueueWaitIdle( vkGetDeviceProcAddr( device, "vkQueueWaitIdle" ) ); - vkRegisterDeviceEventEXT = PFN_vkRegisterDeviceEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDeviceEventEXT" ) ); - vkRegisterDisplayEventEXT = PFN_vkRegisterDisplayEventEXT( vkGetDeviceProcAddr( device, "vkRegisterDisplayEventEXT" ) ); -#ifdef VK_USE_PLATFORM_WIN32_KHR - vkReleaseFullScreenExclusiveModeEXT = PFN_vkReleaseFullScreenExclusiveModeEXT( vkGetDeviceProcAddr( device, "vkReleaseFullScreenExclusiveModeEXT" ) ); -#endif /*VK_USE_PLATFORM_WIN32_KHR*/ - vkReleasePerformanceConfigurationINTEL = PFN_vkReleasePerformanceConfigurationINTEL( vkGetDeviceProcAddr( device, "vkReleasePerformanceConfigurationINTEL" ) ); - vkReleaseProfilingLockKHR = PFN_vkReleaseProfilingLockKHR( vkGetDeviceProcAddr( device, "vkReleaseProfilingLockKHR" ) ); - vkResetCommandBuffer = PFN_vkResetCommandBuffer( vkGetDeviceProcAddr( device, "vkResetCommandBuffer" ) ); - vkResetCommandPool = PFN_vkResetCommandPool( vkGetDeviceProcAddr( device, "vkResetCommandPool" ) ); - vkResetDescriptorPool = PFN_vkResetDescriptorPool( vkGetDeviceProcAddr( device, "vkResetDescriptorPool" ) ); - vkResetEvent = PFN_vkResetEvent( vkGetDeviceProcAddr( device, "vkResetEvent" ) ); - vkResetFences = PFN_vkResetFences( vkGetDeviceProcAddr( device, "vkResetFences" ) ); - vkResetQueryPoolEXT = PFN_vkResetQueryPoolEXT( vkGetDeviceProcAddr( device, "vkResetQueryPoolEXT" ) ); - vkResetQueryPool = PFN_vkResetQueryPool( vkGetDeviceProcAddr( device, "vkResetQueryPool" ) ); - if ( !vkResetQueryPool ) vkResetQueryPool = vkResetQueryPoolEXT; - vkSetDebugUtilsObjectNameEXT = PFN_vkSetDebugUtilsObjectNameEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectNameEXT" ) ); - vkSetDebugUtilsObjectTagEXT = PFN_vkSetDebugUtilsObjectTagEXT( vkGetDeviceProcAddr( device, "vkSetDebugUtilsObjectTagEXT" ) ); - vkSetEvent = PFN_vkSetEvent( vkGetDeviceProcAddr( device, "vkSetEvent" ) ); - vkSetHdrMetadataEXT = PFN_vkSetHdrMetadataEXT( vkGetDeviceProcAddr( device, "vkSetHdrMetadataEXT" ) ); - vkSetLocalDimmingAMD = PFN_vkSetLocalDimmingAMD( vkGetDeviceProcAddr( device, "vkSetLocalDimmingAMD" ) ); - vkSetPrivateDataEXT = PFN_vkSetPrivateDataEXT( vkGetDeviceProcAddr( device, "vkSetPrivateDataEXT" ) ); - vkSignalSemaphoreKHR = PFN_vkSignalSemaphoreKHR( vkGetDeviceProcAddr( device, "vkSignalSemaphoreKHR" ) ); - vkSignalSemaphore = PFN_vkSignalSemaphore( vkGetDeviceProcAddr( device, "vkSignalSemaphore" ) ); - if ( !vkSignalSemaphore ) vkSignalSemaphore = vkSignalSemaphoreKHR; - vkTrimCommandPoolKHR = PFN_vkTrimCommandPoolKHR( vkGetDeviceProcAddr( device, "vkTrimCommandPoolKHR" ) ); - vkTrimCommandPool = PFN_vkTrimCommandPool( vkGetDeviceProcAddr( device, "vkTrimCommandPool" ) ); - if ( !vkTrimCommandPool ) vkTrimCommandPool = vkTrimCommandPoolKHR; - vkUninitializePerformanceApiINTEL = PFN_vkUninitializePerformanceApiINTEL( vkGetDeviceProcAddr( device, "vkUninitializePerformanceApiINTEL" ) ); - vkUnmapMemory = PFN_vkUnmapMemory( vkGetDeviceProcAddr( device, "vkUnmapMemory" ) ); - vkUpdateDescriptorSetWithTemplateKHR = PFN_vkUpdateDescriptorSetWithTemplateKHR( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplateKHR" ) ); - vkUpdateDescriptorSetWithTemplate = PFN_vkUpdateDescriptorSetWithTemplate( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSetWithTemplate" ) ); - if ( !vkUpdateDescriptorSetWithTemplate ) vkUpdateDescriptorSetWithTemplate = vkUpdateDescriptorSetWithTemplateKHR; - vkUpdateDescriptorSets = PFN_vkUpdateDescriptorSets( vkGetDeviceProcAddr( device, "vkUpdateDescriptorSets" ) ); - vkWaitForFences = PFN_vkWaitForFences( vkGetDeviceProcAddr( device, "vkWaitForFences" ) ); - vkWaitSemaphoresKHR = PFN_vkWaitSemaphoresKHR( vkGetDeviceProcAddr( device, "vkWaitSemaphoresKHR" ) ); - vkWaitSemaphores = PFN_vkWaitSemaphores( vkGetDeviceProcAddr( device, "vkWaitSemaphores" ) ); - if ( !vkWaitSemaphores ) vkWaitSemaphores = vkWaitSemaphoresKHR; - vkWriteAccelerationStructuresPropertiesKHR = PFN_vkWriteAccelerationStructuresPropertiesKHR( vkGetDeviceProcAddr( device, "vkWriteAccelerationStructuresPropertiesKHR" ) ); - } - }; - -} // namespace VULKAN_HPP_NAMESPACE - -namespace std -{ - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const& accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(accelerationStructureKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::AccelerationStructureNV const& accelerationStructureNV) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(accelerationStructureNV)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Buffer const& buffer) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(buffer)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::BufferView const& bufferView) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(bufferView)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandBuffer const& commandBuffer) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(commandBuffer)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::CommandPool const& commandPool) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(commandPool)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const& debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(debugReportCallbackEXT)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const& debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(debugUtilsMessengerEXT)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DeferredOperationKHR const& deferredOperationKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(deferredOperationKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorPool const& descriptorPool) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorPool)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSet const& descriptorSet) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorSet)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorSetLayout const& descriptorSetLayout) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorSetLayout)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const& descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(descriptorUpdateTemplate)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Device const& device) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(device)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DeviceMemory const& deviceMemory) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(deviceMemory)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayKHR const& displayKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(displayKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::DisplayModeKHR const& displayModeKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(displayModeKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Event const& event) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(event)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Fence const& fence) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(fence)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Framebuffer const& framebuffer) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(framebuffer)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Image const& image) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(image)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::ImageView const& imageView) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(imageView)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const& indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(indirectCommandsLayoutNV)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Instance const& instance) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(instance)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const& performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(performanceConfigurationINTEL)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PhysicalDevice const& physicalDevice) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(physicalDevice)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Pipeline const& pipeline) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(pipeline)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineCache const& pipelineCache) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(pipelineCache)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PipelineLayout const& pipelineLayout) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(pipelineLayout)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::PrivateDataSlotEXT const& privateDataSlotEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(privateDataSlotEXT)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::QueryPool const& queryPool) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(queryPool)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Queue const& queue) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(queue)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::RenderPass const& renderPass) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(renderPass)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Sampler const& sampler) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(sampler)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const& samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(samplerYcbcrConversion)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::Semaphore const& semaphore) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(semaphore)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::ShaderModule const& shaderModule) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(shaderModule)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::SurfaceKHR const& surfaceKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(surfaceKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::SwapchainKHR const& swapchainKHR) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(swapchainKHR)); - } - }; - - template <> struct hash - { - std::size_t operator()(VULKAN_HPP_NAMESPACE::ValidationCacheEXT const& validationCacheEXT) const VULKAN_HPP_NOEXCEPT - { - return std::hash{}(static_cast(validationCacheEXT)); - } - }; -} -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_android.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_android.h deleted file mode 100644 index 50ef85f1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_android.h +++ /dev/null @@ -1,112 +0,0 @@ -#ifndef VULKAN_ANDROID_H_ -#define VULKAN_ANDROID_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_KHR_android_surface 1 -struct ANativeWindow; -#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 -#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" -typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; -typedef struct VkAndroidSurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkAndroidSurfaceCreateFlagsKHR flags; - struct ANativeWindow* window; -} VkAndroidSurfaceCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( - VkInstance instance, - const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - - -#define VK_ANDROID_external_memory_android_hardware_buffer 1 -struct AHardwareBuffer; -#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3 -#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer" -typedef struct VkAndroidHardwareBufferUsageANDROID { - VkStructureType sType; - void* pNext; - uint64_t androidHardwareBufferUsage; -} VkAndroidHardwareBufferUsageANDROID; - -typedef struct VkAndroidHardwareBufferPropertiesANDROID { - VkStructureType sType; - void* pNext; - VkDeviceSize allocationSize; - uint32_t memoryTypeBits; -} VkAndroidHardwareBufferPropertiesANDROID; - -typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID { - VkStructureType sType; - void* pNext; - VkFormat format; - uint64_t externalFormat; - VkFormatFeatureFlags formatFeatures; - VkComponentMapping samplerYcbcrConversionComponents; - VkSamplerYcbcrModelConversion suggestedYcbcrModel; - VkSamplerYcbcrRange suggestedYcbcrRange; - VkChromaLocation suggestedXChromaOffset; - VkChromaLocation suggestedYChromaOffset; -} VkAndroidHardwareBufferFormatPropertiesANDROID; - -typedef struct VkImportAndroidHardwareBufferInfoANDROID { - VkStructureType sType; - const void* pNext; - struct AHardwareBuffer* buffer; -} VkImportAndroidHardwareBufferInfoANDROID; - -typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID { - VkStructureType sType; - const void* pNext; - VkDeviceMemory memory; -} VkMemoryGetAndroidHardwareBufferInfoANDROID; - -typedef struct VkExternalFormatANDROID { - VkStructureType sType; - void* pNext; - uint64_t externalFormat; -} VkExternalFormatANDROID; - -typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID( - VkDevice device, - const struct AHardwareBuffer* buffer, - VkAndroidHardwareBufferPropertiesANDROID* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID( - VkDevice device, - const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, - struct AHardwareBuffer** pBuffer); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_beta.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_beta.h deleted file mode 100644 index 23513b32..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_beta.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef VULKAN_BETA_H_ -#define VULKAN_BETA_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_KHR_portability_subset 1 -#define VK_KHR_PORTABILITY_SUBSET_SPEC_VERSION 1 -#define VK_KHR_PORTABILITY_SUBSET_EXTENSION_NAME "VK_KHR_portability_subset" -typedef struct VkPhysicalDevicePortabilitySubsetFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 constantAlphaColorBlendFactors; - VkBool32 events; - VkBool32 imageViewFormatReinterpretation; - VkBool32 imageViewFormatSwizzle; - VkBool32 imageView2DOn3DImage; - VkBool32 multisampleArrayImage; - VkBool32 mutableComparisonSamplers; - VkBool32 pointPolygons; - VkBool32 samplerMipLodBias; - VkBool32 separateStencilMaskRef; - VkBool32 shaderSampleRateInterpolationFunctions; - VkBool32 tessellationIsolines; - VkBool32 tessellationPointMode; - VkBool32 triangleFans; - VkBool32 vertexAttributeAccessBeyondStride; -} VkPhysicalDevicePortabilitySubsetFeaturesKHR; - -typedef struct VkPhysicalDevicePortabilitySubsetPropertiesKHR { - VkStructureType sType; - void* pNext; - uint32_t minVertexInputBindingStrideAlignment; -} VkPhysicalDevicePortabilitySubsetPropertiesKHR; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_core.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_core.h deleted file mode 100644 index 7295571b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_core.h +++ /dev/null @@ -1,11894 +0,0 @@ -#ifndef VULKAN_CORE_H_ -#define VULKAN_CORE_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_VERSION_1_0 1 -#include "vk_platform.h" - -#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - - -#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; -#endif -#endif - -#define VK_MAKE_VERSION(major, minor, patch) \ - ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) - -// DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. -//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 - -// Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 - -// Version of this file -#define VK_HEADER_VERSION 165 - -// Complete version of this file -#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION) - -#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) -#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) -#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) - -#define VK_NULL_HANDLE 0 - -typedef uint32_t VkBool32; -typedef uint64_t VkDeviceAddress; -typedef uint64_t VkDeviceSize; -typedef uint32_t VkFlags; -typedef uint32_t VkSampleMask; -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) -VK_DEFINE_HANDLE(VkInstance) -VK_DEFINE_HANDLE(VkPhysicalDevice) -VK_DEFINE_HANDLE(VkDevice) -VK_DEFINE_HANDLE(VkQueue) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) -VK_DEFINE_HANDLE(VkCommandBuffer) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) -#define VK_ATTACHMENT_UNUSED (~0U) -#define VK_FALSE 0 -#define VK_LOD_CLAMP_NONE 1000.0f -#define VK_QUEUE_FAMILY_IGNORED (~0U) -#define VK_REMAINING_ARRAY_LAYERS (~0U) -#define VK_REMAINING_MIP_LEVELS (~0U) -#define VK_SUBPASS_EXTERNAL (~0U) -#define VK_TRUE 1 -#define VK_WHOLE_SIZE (~0ULL) -#define VK_MAX_MEMORY_TYPES 32 -#define VK_MAX_MEMORY_HEAPS 16 -#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 -#define VK_UUID_SIZE 16 -#define VK_MAX_EXTENSION_NAME_SIZE 256 -#define VK_MAX_DESCRIPTION_SIZE 256 - -typedef enum VkResult { - VK_SUCCESS = 0, - VK_NOT_READY = 1, - VK_TIMEOUT = 2, - VK_EVENT_SET = 3, - VK_EVENT_RESET = 4, - VK_INCOMPLETE = 5, - VK_ERROR_OUT_OF_HOST_MEMORY = -1, - VK_ERROR_OUT_OF_DEVICE_MEMORY = -2, - VK_ERROR_INITIALIZATION_FAILED = -3, - VK_ERROR_DEVICE_LOST = -4, - VK_ERROR_MEMORY_MAP_FAILED = -5, - VK_ERROR_LAYER_NOT_PRESENT = -6, - VK_ERROR_EXTENSION_NOT_PRESENT = -7, - VK_ERROR_FEATURE_NOT_PRESENT = -8, - VK_ERROR_INCOMPATIBLE_DRIVER = -9, - VK_ERROR_TOO_MANY_OBJECTS = -10, - VK_ERROR_FORMAT_NOT_SUPPORTED = -11, - VK_ERROR_FRAGMENTED_POOL = -12, - VK_ERROR_UNKNOWN = -13, - VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000, - VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, - VK_ERROR_FRAGMENTATION = -1000161000, - VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000, - VK_ERROR_SURFACE_LOST_KHR = -1000000000, - VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, - VK_SUBOPTIMAL_KHR = 1000001003, - VK_ERROR_OUT_OF_DATE_KHR = -1000001004, - VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, - VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, - VK_ERROR_INVALID_SHADER_NV = -1000012000, - VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, - VK_ERROR_NOT_PERMITTED_EXT = -1000174001, - VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000, - VK_THREAD_IDLE_KHR = 1000268000, - VK_THREAD_DONE_KHR = 1000268001, - VK_OPERATION_DEFERRED_KHR = 1000268002, - VK_OPERATION_NOT_DEFERRED_KHR = 1000268003, - VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000, - VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, - VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, - VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION, - VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, - VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS, - VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT, - VK_RESULT_MAX_ENUM = 0x7FFFFFFF -} VkResult; - -typedef enum VkStructureType { - VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, - VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, - VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, - VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, - VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, - VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, - VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, - VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, - VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, - VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, - VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, - VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, - VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, - VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, - VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, - VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, - VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, - VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, - VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, - VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, - VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, - VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, - VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, - VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, - VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, - VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, - VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, - VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, - VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, - VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, - VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, - VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, - VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, - VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, - VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, - VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, - VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, - VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, - VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, - VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, - VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, - VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, - VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, - VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, - VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, - VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, - VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, - VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, - VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, - VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, - VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, - VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, - VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, - VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, - VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, - VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, - VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, - VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, - VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, - VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, - VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, - VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, - VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, - VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, - VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, - VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, - VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, - VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, - VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, - VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, - VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, - VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52, - VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000, - VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000, - VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001, - VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002, - VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003, - VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004, - VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005, - VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000, - VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000, - VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000, - VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000, - VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001, - VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002, - VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000, - VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001, - VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001, - VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002, - VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003, - VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004, - VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000, - VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001, - VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002, - VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003, - VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004, - VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, - VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, - VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, - VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, - VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, - VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, - VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, - VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, - VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, - VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, - VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, - VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, - VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, - VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, - VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, - VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, - VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, - VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, - VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, - VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, - VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, - VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, - VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, - VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001, - VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, - VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, - VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, - VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, - VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, - VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, - VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, - VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000, - VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, - VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, - VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, - VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, - VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, - VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, - VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, - VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, - VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, - VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, - VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, - VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, - VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, - VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, - VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, - VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, - VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, - VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, - VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, - VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, - VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, - VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, - VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, - VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, - VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, - VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, - VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, - VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001, - VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002, - VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003, - VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004, - VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005, - VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, - VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, - VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, - VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, - VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, - VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, - VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, - VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, - VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, - VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, - VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, - VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, - VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, - VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, - VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, - VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, - VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, - VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, - VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, - VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, - VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, - VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, - VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, - VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, - VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, - VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, - VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009, - VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010, - VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011, - VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001, - VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015, - VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016, - VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013, - VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001, - VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, - VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, - VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, - VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, - VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, - VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001, - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, - VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, - VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, - VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, - VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, - VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, - VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, - VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, - VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, - VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, - VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, - VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, - VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, - VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000, - VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000, - VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, - VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, - VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, - VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000, - VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, - VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, - VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, - VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000, - VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000, - VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001, - VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002, - VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003, - VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004, - VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, - VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000, - VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001, - VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000, - VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, - VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000, - VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, - VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000, - VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, - VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, - VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000, - VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000, - VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, - VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000, - VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001, - VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, - VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000, - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002, - VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001, - VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, - VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000, - VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001, - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002, - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003, - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004, - VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000, - VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001, - VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002, - VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003, - VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004, - VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005, - VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, - VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000, - VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000, - VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001, - VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001, - VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002, - VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000, - VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001, - VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000, - VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001, - VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001, - VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000, - VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000, - VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001, - VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002, - VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003, - VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004, - VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005, - VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006, - VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007, - VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008, - VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009, - VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, - VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = 1000351000, - VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = 1000351002, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES, - VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, - VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, - VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, - VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, - VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, - VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, - VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, - VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, - VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, - VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, - VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, - VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, - VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, - VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, - VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, - VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, - VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, - VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, - VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, - VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, - VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES, - VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO, - VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO, - VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO, - VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2, - VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2, - VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2, - VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2, - VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2, - VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO, - VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, - VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, - VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, - VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, - VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, - VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR, - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES, - VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO, - VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, - VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, - VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, - VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, - VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, - VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO, - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, - VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, - VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, - VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, - VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, - VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, - VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES, - VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES, - VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO, - VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO, - VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO, - VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO, - VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES, - VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT, - VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT, - VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, - VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES, - VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO, - VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO, - VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO, - VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO, - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES, - VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkStructureType; - -typedef enum VkImageLayout { - VK_IMAGE_LAYOUT_UNDEFINED = 0, - VK_IMAGE_LAYOUT_GENERAL = 1, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, - VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, - VK_IMAGE_LAYOUT_PREINITIALIZED = 8, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, - VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, - VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, - VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, - VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, - VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, - VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV, - VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, - VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, - VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, - VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF -} VkImageLayout; - -typedef enum VkObjectType { - VK_OBJECT_TYPE_UNKNOWN = 0, - VK_OBJECT_TYPE_INSTANCE = 1, - VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, - VK_OBJECT_TYPE_DEVICE = 3, - VK_OBJECT_TYPE_QUEUE = 4, - VK_OBJECT_TYPE_SEMAPHORE = 5, - VK_OBJECT_TYPE_COMMAND_BUFFER = 6, - VK_OBJECT_TYPE_FENCE = 7, - VK_OBJECT_TYPE_DEVICE_MEMORY = 8, - VK_OBJECT_TYPE_BUFFER = 9, - VK_OBJECT_TYPE_IMAGE = 10, - VK_OBJECT_TYPE_EVENT = 11, - VK_OBJECT_TYPE_QUERY_POOL = 12, - VK_OBJECT_TYPE_BUFFER_VIEW = 13, - VK_OBJECT_TYPE_IMAGE_VIEW = 14, - VK_OBJECT_TYPE_SHADER_MODULE = 15, - VK_OBJECT_TYPE_PIPELINE_CACHE = 16, - VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, - VK_OBJECT_TYPE_RENDER_PASS = 18, - VK_OBJECT_TYPE_PIPELINE = 19, - VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, - VK_OBJECT_TYPE_SAMPLER = 21, - VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, - VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, - VK_OBJECT_TYPE_FRAMEBUFFER = 24, - VK_OBJECT_TYPE_COMMAND_POOL = 25, - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, - VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, - VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, - VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, - VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, - VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, - VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, - VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, - VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, - VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, - VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, - VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000, - VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000, - VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000, - VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, - VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, - VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkObjectType; - -typedef enum VkVendorId { - VK_VENDOR_ID_VIV = 0x10001, - VK_VENDOR_ID_VSI = 0x10002, - VK_VENDOR_ID_KAZAN = 0x10003, - VK_VENDOR_ID_CODEPLAY = 0x10004, - VK_VENDOR_ID_MESA = 0x10005, - VK_VENDOR_ID_POCL = 0x10006, - VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF -} VkVendorId; - -typedef enum VkPipelineCacheHeaderVersion { - VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, - VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCacheHeaderVersion; - -typedef enum VkSystemAllocationScope { - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, - VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, - VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, - VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, - VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, - VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF -} VkSystemAllocationScope; - -typedef enum VkInternalAllocationType { - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, - VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkInternalAllocationType; - -typedef enum VkFormat { - VK_FORMAT_UNDEFINED = 0, - VK_FORMAT_R4G4_UNORM_PACK8 = 1, - VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, - VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, - VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, - VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, - VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, - VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, - VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, - VK_FORMAT_R8_UNORM = 9, - VK_FORMAT_R8_SNORM = 10, - VK_FORMAT_R8_USCALED = 11, - VK_FORMAT_R8_SSCALED = 12, - VK_FORMAT_R8_UINT = 13, - VK_FORMAT_R8_SINT = 14, - VK_FORMAT_R8_SRGB = 15, - VK_FORMAT_R8G8_UNORM = 16, - VK_FORMAT_R8G8_SNORM = 17, - VK_FORMAT_R8G8_USCALED = 18, - VK_FORMAT_R8G8_SSCALED = 19, - VK_FORMAT_R8G8_UINT = 20, - VK_FORMAT_R8G8_SINT = 21, - VK_FORMAT_R8G8_SRGB = 22, - VK_FORMAT_R8G8B8_UNORM = 23, - VK_FORMAT_R8G8B8_SNORM = 24, - VK_FORMAT_R8G8B8_USCALED = 25, - VK_FORMAT_R8G8B8_SSCALED = 26, - VK_FORMAT_R8G8B8_UINT = 27, - VK_FORMAT_R8G8B8_SINT = 28, - VK_FORMAT_R8G8B8_SRGB = 29, - VK_FORMAT_B8G8R8_UNORM = 30, - VK_FORMAT_B8G8R8_SNORM = 31, - VK_FORMAT_B8G8R8_USCALED = 32, - VK_FORMAT_B8G8R8_SSCALED = 33, - VK_FORMAT_B8G8R8_UINT = 34, - VK_FORMAT_B8G8R8_SINT = 35, - VK_FORMAT_B8G8R8_SRGB = 36, - VK_FORMAT_R8G8B8A8_UNORM = 37, - VK_FORMAT_R8G8B8A8_SNORM = 38, - VK_FORMAT_R8G8B8A8_USCALED = 39, - VK_FORMAT_R8G8B8A8_SSCALED = 40, - VK_FORMAT_R8G8B8A8_UINT = 41, - VK_FORMAT_R8G8B8A8_SINT = 42, - VK_FORMAT_R8G8B8A8_SRGB = 43, - VK_FORMAT_B8G8R8A8_UNORM = 44, - VK_FORMAT_B8G8R8A8_SNORM = 45, - VK_FORMAT_B8G8R8A8_USCALED = 46, - VK_FORMAT_B8G8R8A8_SSCALED = 47, - VK_FORMAT_B8G8R8A8_UINT = 48, - VK_FORMAT_B8G8R8A8_SINT = 49, - VK_FORMAT_B8G8R8A8_SRGB = 50, - VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, - VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, - VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, - VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, - VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, - VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, - VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, - VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, - VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, - VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, - VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, - VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, - VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, - VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, - VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, - VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, - VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, - VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, - VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, - VK_FORMAT_R16_UNORM = 70, - VK_FORMAT_R16_SNORM = 71, - VK_FORMAT_R16_USCALED = 72, - VK_FORMAT_R16_SSCALED = 73, - VK_FORMAT_R16_UINT = 74, - VK_FORMAT_R16_SINT = 75, - VK_FORMAT_R16_SFLOAT = 76, - VK_FORMAT_R16G16_UNORM = 77, - VK_FORMAT_R16G16_SNORM = 78, - VK_FORMAT_R16G16_USCALED = 79, - VK_FORMAT_R16G16_SSCALED = 80, - VK_FORMAT_R16G16_UINT = 81, - VK_FORMAT_R16G16_SINT = 82, - VK_FORMAT_R16G16_SFLOAT = 83, - VK_FORMAT_R16G16B16_UNORM = 84, - VK_FORMAT_R16G16B16_SNORM = 85, - VK_FORMAT_R16G16B16_USCALED = 86, - VK_FORMAT_R16G16B16_SSCALED = 87, - VK_FORMAT_R16G16B16_UINT = 88, - VK_FORMAT_R16G16B16_SINT = 89, - VK_FORMAT_R16G16B16_SFLOAT = 90, - VK_FORMAT_R16G16B16A16_UNORM = 91, - VK_FORMAT_R16G16B16A16_SNORM = 92, - VK_FORMAT_R16G16B16A16_USCALED = 93, - VK_FORMAT_R16G16B16A16_SSCALED = 94, - VK_FORMAT_R16G16B16A16_UINT = 95, - VK_FORMAT_R16G16B16A16_SINT = 96, - VK_FORMAT_R16G16B16A16_SFLOAT = 97, - VK_FORMAT_R32_UINT = 98, - VK_FORMAT_R32_SINT = 99, - VK_FORMAT_R32_SFLOAT = 100, - VK_FORMAT_R32G32_UINT = 101, - VK_FORMAT_R32G32_SINT = 102, - VK_FORMAT_R32G32_SFLOAT = 103, - VK_FORMAT_R32G32B32_UINT = 104, - VK_FORMAT_R32G32B32_SINT = 105, - VK_FORMAT_R32G32B32_SFLOAT = 106, - VK_FORMAT_R32G32B32A32_UINT = 107, - VK_FORMAT_R32G32B32A32_SINT = 108, - VK_FORMAT_R32G32B32A32_SFLOAT = 109, - VK_FORMAT_R64_UINT = 110, - VK_FORMAT_R64_SINT = 111, - VK_FORMAT_R64_SFLOAT = 112, - VK_FORMAT_R64G64_UINT = 113, - VK_FORMAT_R64G64_SINT = 114, - VK_FORMAT_R64G64_SFLOAT = 115, - VK_FORMAT_R64G64B64_UINT = 116, - VK_FORMAT_R64G64B64_SINT = 117, - VK_FORMAT_R64G64B64_SFLOAT = 118, - VK_FORMAT_R64G64B64A64_UINT = 119, - VK_FORMAT_R64G64B64A64_SINT = 120, - VK_FORMAT_R64G64B64A64_SFLOAT = 121, - VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, - VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, - VK_FORMAT_D16_UNORM = 124, - VK_FORMAT_X8_D24_UNORM_PACK32 = 125, - VK_FORMAT_D32_SFLOAT = 126, - VK_FORMAT_S8_UINT = 127, - VK_FORMAT_D16_UNORM_S8_UINT = 128, - VK_FORMAT_D24_UNORM_S8_UINT = 129, - VK_FORMAT_D32_SFLOAT_S8_UINT = 130, - VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, - VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, - VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, - VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, - VK_FORMAT_BC2_UNORM_BLOCK = 135, - VK_FORMAT_BC2_SRGB_BLOCK = 136, - VK_FORMAT_BC3_UNORM_BLOCK = 137, - VK_FORMAT_BC3_SRGB_BLOCK = 138, - VK_FORMAT_BC4_UNORM_BLOCK = 139, - VK_FORMAT_BC4_SNORM_BLOCK = 140, - VK_FORMAT_BC5_UNORM_BLOCK = 141, - VK_FORMAT_BC5_SNORM_BLOCK = 142, - VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, - VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, - VK_FORMAT_BC7_UNORM_BLOCK = 145, - VK_FORMAT_BC7_SRGB_BLOCK = 146, - VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, - VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, - VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, - VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, - VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, - VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, - VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, - VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, - VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, - VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, - VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, - VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, - VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, - VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, - VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, - VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, - VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, - VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, - VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, - VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, - VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, - VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, - VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, - VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, - VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, - VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, - VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, - VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, - VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, - VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, - VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, - VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, - VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, - VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, - VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, - VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, - VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, - VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, - VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, - VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, - VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, - VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, - VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, - VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, - VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, - VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, - VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, - VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, - VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, - VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, - VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, - VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, - VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, - VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, - VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, - VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, - VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, - VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, - VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, - VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, - VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, - VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, - VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, - VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, - VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, - VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, - VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, - VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, - VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, - VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, - VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000, - VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001, - VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002, - VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003, - VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004, - VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005, - VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006, - VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007, - VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008, - VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, - VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, - VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, - VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, - VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, - VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000, - VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001, - VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, - VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, - VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, - VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, - VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, - VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, - VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, - VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16, - VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, - VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, - VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, - VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, - VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, - VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, - VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16, - VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, - VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, - VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, - VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, - VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, - VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, - VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM, - VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM, - VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, - VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, - VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, - VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, - VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, - VK_FORMAT_MAX_ENUM = 0x7FFFFFFF -} VkFormat; - -typedef enum VkImageTiling { - VK_IMAGE_TILING_OPTIMAL = 0, - VK_IMAGE_TILING_LINEAR = 1, - VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, - VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF -} VkImageTiling; - -typedef enum VkImageType { - VK_IMAGE_TYPE_1D = 0, - VK_IMAGE_TYPE_2D = 1, - VK_IMAGE_TYPE_3D = 2, - VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkImageType; - -typedef enum VkPhysicalDeviceType { - VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, - VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, - VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, - VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, - VK_PHYSICAL_DEVICE_TYPE_CPU = 4, - VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkPhysicalDeviceType; - -typedef enum VkQueryType { - VK_QUERY_TYPE_OCCLUSION = 0, - VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, - VK_QUERY_TYPE_TIMESTAMP = 2, - VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, - VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000, - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001, - VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, - VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, - VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkQueryType; - -typedef enum VkSharingMode { - VK_SHARING_MODE_EXCLUSIVE = 0, - VK_SHARING_MODE_CONCURRENT = 1, - VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF -} VkSharingMode; - -typedef enum VkComponentSwizzle { - VK_COMPONENT_SWIZZLE_IDENTITY = 0, - VK_COMPONENT_SWIZZLE_ZERO = 1, - VK_COMPONENT_SWIZZLE_ONE = 2, - VK_COMPONENT_SWIZZLE_R = 3, - VK_COMPONENT_SWIZZLE_G = 4, - VK_COMPONENT_SWIZZLE_B = 5, - VK_COMPONENT_SWIZZLE_A = 6, - VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF -} VkComponentSwizzle; - -typedef enum VkImageViewType { - VK_IMAGE_VIEW_TYPE_1D = 0, - VK_IMAGE_VIEW_TYPE_2D = 1, - VK_IMAGE_VIEW_TYPE_3D = 2, - VK_IMAGE_VIEW_TYPE_CUBE = 3, - VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, - VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, - VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, - VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkImageViewType; - -typedef enum VkBlendFactor { - VK_BLEND_FACTOR_ZERO = 0, - VK_BLEND_FACTOR_ONE = 1, - VK_BLEND_FACTOR_SRC_COLOR = 2, - VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, - VK_BLEND_FACTOR_DST_COLOR = 4, - VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, - VK_BLEND_FACTOR_SRC_ALPHA = 6, - VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, - VK_BLEND_FACTOR_DST_ALPHA = 8, - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, - VK_BLEND_FACTOR_CONSTANT_COLOR = 10, - VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, - VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, - VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, - VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, - VK_BLEND_FACTOR_SRC1_COLOR = 15, - VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, - VK_BLEND_FACTOR_SRC1_ALPHA = 17, - VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, - VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF -} VkBlendFactor; - -typedef enum VkBlendOp { - VK_BLEND_OP_ADD = 0, - VK_BLEND_OP_SUBTRACT = 1, - VK_BLEND_OP_REVERSE_SUBTRACT = 2, - VK_BLEND_OP_MIN = 3, - VK_BLEND_OP_MAX = 4, - VK_BLEND_OP_ZERO_EXT = 1000148000, - VK_BLEND_OP_SRC_EXT = 1000148001, - VK_BLEND_OP_DST_EXT = 1000148002, - VK_BLEND_OP_SRC_OVER_EXT = 1000148003, - VK_BLEND_OP_DST_OVER_EXT = 1000148004, - VK_BLEND_OP_SRC_IN_EXT = 1000148005, - VK_BLEND_OP_DST_IN_EXT = 1000148006, - VK_BLEND_OP_SRC_OUT_EXT = 1000148007, - VK_BLEND_OP_DST_OUT_EXT = 1000148008, - VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, - VK_BLEND_OP_DST_ATOP_EXT = 1000148010, - VK_BLEND_OP_XOR_EXT = 1000148011, - VK_BLEND_OP_MULTIPLY_EXT = 1000148012, - VK_BLEND_OP_SCREEN_EXT = 1000148013, - VK_BLEND_OP_OVERLAY_EXT = 1000148014, - VK_BLEND_OP_DARKEN_EXT = 1000148015, - VK_BLEND_OP_LIGHTEN_EXT = 1000148016, - VK_BLEND_OP_COLORDODGE_EXT = 1000148017, - VK_BLEND_OP_COLORBURN_EXT = 1000148018, - VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, - VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, - VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, - VK_BLEND_OP_EXCLUSION_EXT = 1000148022, - VK_BLEND_OP_INVERT_EXT = 1000148023, - VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, - VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, - VK_BLEND_OP_LINEARBURN_EXT = 1000148026, - VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, - VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, - VK_BLEND_OP_PINLIGHT_EXT = 1000148029, - VK_BLEND_OP_HARDMIX_EXT = 1000148030, - VK_BLEND_OP_HSL_HUE_EXT = 1000148031, - VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, - VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, - VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, - VK_BLEND_OP_PLUS_EXT = 1000148035, - VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, - VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, - VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, - VK_BLEND_OP_MINUS_EXT = 1000148039, - VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, - VK_BLEND_OP_CONTRAST_EXT = 1000148041, - VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, - VK_BLEND_OP_RED_EXT = 1000148043, - VK_BLEND_OP_GREEN_EXT = 1000148044, - VK_BLEND_OP_BLUE_EXT = 1000148045, - VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF -} VkBlendOp; - -typedef enum VkCompareOp { - VK_COMPARE_OP_NEVER = 0, - VK_COMPARE_OP_LESS = 1, - VK_COMPARE_OP_EQUAL = 2, - VK_COMPARE_OP_LESS_OR_EQUAL = 3, - VK_COMPARE_OP_GREATER = 4, - VK_COMPARE_OP_NOT_EQUAL = 5, - VK_COMPARE_OP_GREATER_OR_EQUAL = 6, - VK_COMPARE_OP_ALWAYS = 7, - VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF -} VkCompareOp; - -typedef enum VkDynamicState { - VK_DYNAMIC_STATE_VIEWPORT = 0, - VK_DYNAMIC_STATE_SCISSOR = 1, - VK_DYNAMIC_STATE_LINE_WIDTH = 2, - VK_DYNAMIC_STATE_DEPTH_BIAS = 3, - VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4, - VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5, - VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, - VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, - VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, - VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, - VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, - VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, - VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000, - VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, - VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, - VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, - VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, - VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, - VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000, - VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001, - VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002, - VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003, - VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004, - VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005, - VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006, - VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007, - VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008, - VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009, - VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010, - VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011, - VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF -} VkDynamicState; - -typedef enum VkFrontFace { - VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, - VK_FRONT_FACE_CLOCKWISE = 1, - VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF -} VkFrontFace; - -typedef enum VkVertexInputRate { - VK_VERTEX_INPUT_RATE_VERTEX = 0, - VK_VERTEX_INPUT_RATE_INSTANCE = 1, - VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF -} VkVertexInputRate; - -typedef enum VkPrimitiveTopology { - VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, - VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, - VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, - VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, - VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF -} VkPrimitiveTopology; - -typedef enum VkPolygonMode { - VK_POLYGON_MODE_FILL = 0, - VK_POLYGON_MODE_LINE = 1, - VK_POLYGON_MODE_POINT = 2, - VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, - VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF -} VkPolygonMode; - -typedef enum VkStencilOp { - VK_STENCIL_OP_KEEP = 0, - VK_STENCIL_OP_ZERO = 1, - VK_STENCIL_OP_REPLACE = 2, - VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, - VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, - VK_STENCIL_OP_INVERT = 5, - VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, - VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, - VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF -} VkStencilOp; - -typedef enum VkLogicOp { - VK_LOGIC_OP_CLEAR = 0, - VK_LOGIC_OP_AND = 1, - VK_LOGIC_OP_AND_REVERSE = 2, - VK_LOGIC_OP_COPY = 3, - VK_LOGIC_OP_AND_INVERTED = 4, - VK_LOGIC_OP_NO_OP = 5, - VK_LOGIC_OP_XOR = 6, - VK_LOGIC_OP_OR = 7, - VK_LOGIC_OP_NOR = 8, - VK_LOGIC_OP_EQUIVALENT = 9, - VK_LOGIC_OP_INVERT = 10, - VK_LOGIC_OP_OR_REVERSE = 11, - VK_LOGIC_OP_COPY_INVERTED = 12, - VK_LOGIC_OP_OR_INVERTED = 13, - VK_LOGIC_OP_NAND = 14, - VK_LOGIC_OP_SET = 15, - VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF -} VkLogicOp; - -typedef enum VkBorderColor { - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, - VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, - VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, - VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, - VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, - VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, - VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003, - VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004, - VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF -} VkBorderColor; - -typedef enum VkFilter { - VK_FILTER_NEAREST = 0, - VK_FILTER_LINEAR = 1, - VK_FILTER_CUBIC_IMG = 1000015000, - VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG, - VK_FILTER_MAX_ENUM = 0x7FFFFFFF -} VkFilter; - -typedef enum VkSamplerAddressMode { - VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, - VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, - VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, - VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, - VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, - VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE, - VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF -} VkSamplerAddressMode; - -typedef enum VkSamplerMipmapMode { - VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, - VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, - VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF -} VkSamplerMipmapMode; - -typedef enum VkDescriptorType { - VK_DESCRIPTOR_TYPE_SAMPLER = 0, - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, - VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, - VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, - VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, - VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, - VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, - VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, - VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, - VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, - VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, - VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, - VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, - VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = 1000351000, - VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkDescriptorType; - -typedef enum VkAttachmentLoadOp { - VK_ATTACHMENT_LOAD_OP_LOAD = 0, - VK_ATTACHMENT_LOAD_OP_CLEAR = 1, - VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, - VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF -} VkAttachmentLoadOp; - -typedef enum VkAttachmentStoreOp { - VK_ATTACHMENT_STORE_OP_STORE = 0, - VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, - VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000, - VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF -} VkAttachmentStoreOp; - -typedef enum VkPipelineBindPoint { - VK_PIPELINE_BIND_POINT_GRAPHICS = 0, - VK_PIPELINE_BIND_POINT_COMPUTE = 1, - VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000, - VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, - VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF -} VkPipelineBindPoint; - -typedef enum VkCommandBufferLevel { - VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, - VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, - VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF -} VkCommandBufferLevel; - -typedef enum VkIndexType { - VK_INDEX_TYPE_UINT16 = 0, - VK_INDEX_TYPE_UINT32 = 1, - VK_INDEX_TYPE_NONE_KHR = 1000165000, - VK_INDEX_TYPE_UINT8_EXT = 1000265000, - VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR, - VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkIndexType; - -typedef enum VkSubpassContents { - VK_SUBPASS_CONTENTS_INLINE = 0, - VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, - VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF -} VkSubpassContents; - -typedef enum VkAccessFlagBits { - VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, - VK_ACCESS_INDEX_READ_BIT = 0x00000002, - VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, - VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, - VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, - VK_ACCESS_SHADER_READ_BIT = 0x00000020, - VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, - VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, - VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, - VK_ACCESS_HOST_READ_BIT = 0x00002000, - VK_ACCESS_HOST_WRITE_BIT = 0x00004000, - VK_ACCESS_MEMORY_READ_BIT = 0x00008000, - VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, - VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, - VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, - VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, - VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, - VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000, - VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000, - VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, - VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, - VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000, - VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000, - VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR, - VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, - VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV, - VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkAccessFlagBits; -typedef VkFlags VkAccessFlags; - -typedef enum VkImageAspectFlagBits { - VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, - VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, - VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, - VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, - VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, - VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, - VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, - VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, - VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, - VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, - VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, - VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, - VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, - VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, - VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageAspectFlagBits; -typedef VkFlags VkImageAspectFlags; - -typedef enum VkFormatFeatureFlagBits { - VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, - VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, - VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, - VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, - VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, - VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, - VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, - VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, - VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, - VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, - VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, - VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, - VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, - VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, - VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, - VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000, - VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, - VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000, - VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, - VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT, - VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, - VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT, - VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, - VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, - VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkFormatFeatureFlagBits; -typedef VkFlags VkFormatFeatureFlags; - -typedef enum VkImageCreateFlagBits { - VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, - VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, - VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, - VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, - VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, - VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400, - VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, - VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, - VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, - VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, - VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, - VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, - VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, - VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, - VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, - VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, - VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, - VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, - VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, - VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT, - VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT, - VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageCreateFlagBits; -typedef VkFlags VkImageCreateFlags; - -typedef enum VkSampleCountFlagBits { - VK_SAMPLE_COUNT_1_BIT = 0x00000001, - VK_SAMPLE_COUNT_2_BIT = 0x00000002, - VK_SAMPLE_COUNT_4_BIT = 0x00000004, - VK_SAMPLE_COUNT_8_BIT = 0x00000008, - VK_SAMPLE_COUNT_16_BIT = 0x00000010, - VK_SAMPLE_COUNT_32_BIT = 0x00000020, - VK_SAMPLE_COUNT_64_BIT = 0x00000040, - VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSampleCountFlagBits; -typedef VkFlags VkSampleCountFlags; - -typedef enum VkImageUsageFlagBits { - VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, - VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, - VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, - VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, - VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, - VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, - VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, - VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, - VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, - VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageUsageFlagBits; -typedef VkFlags VkImageUsageFlags; -typedef VkFlags VkInstanceCreateFlags; - -typedef enum VkMemoryHeapFlagBits { - VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, - VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, - VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkMemoryHeapFlagBits; -typedef VkFlags VkMemoryHeapFlags; - -typedef enum VkMemoryPropertyFlagBits { - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, - VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, - VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, - VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, - VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, - VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, - VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, - VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkMemoryPropertyFlagBits; -typedef VkFlags VkMemoryPropertyFlags; - -typedef enum VkQueueFlagBits { - VK_QUEUE_GRAPHICS_BIT = 0x00000001, - VK_QUEUE_COMPUTE_BIT = 0x00000002, - VK_QUEUE_TRANSFER_BIT = 0x00000004, - VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, - VK_QUEUE_PROTECTED_BIT = 0x00000010, - VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkQueueFlagBits; -typedef VkFlags VkQueueFlags; -typedef VkFlags VkDeviceCreateFlags; - -typedef enum VkDeviceQueueCreateFlagBits { - VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, - VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDeviceQueueCreateFlagBits; -typedef VkFlags VkDeviceQueueCreateFlags; - -typedef enum VkPipelineStageFlagBits { - VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, - VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, - VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, - VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, - VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, - VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, - VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, - VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, - VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, - VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, - VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, - VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, - VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, - VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, - VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, - VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, - VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, - VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, - VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, - VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, - VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 0x00020000, - VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR, - VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, - VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV, - VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkPipelineStageFlagBits; -typedef VkFlags VkPipelineStageFlags; -typedef VkFlags VkMemoryMapFlags; - -typedef enum VkSparseMemoryBindFlagBits { - VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, - VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSparseMemoryBindFlagBits; -typedef VkFlags VkSparseMemoryBindFlags; - -typedef enum VkSparseImageFormatFlagBits { - VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, - VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, - VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, - VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSparseImageFormatFlagBits; -typedef VkFlags VkSparseImageFormatFlags; - -typedef enum VkFenceCreateFlagBits { - VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, - VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkFenceCreateFlagBits; -typedef VkFlags VkFenceCreateFlags; -typedef VkFlags VkSemaphoreCreateFlags; -typedef VkFlags VkEventCreateFlags; - -typedef enum VkQueryPipelineStatisticFlagBits { - VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, - VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, - VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, - VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, - VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, - VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, - VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, - VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, - VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, - VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, - VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, - VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkQueryPipelineStatisticFlagBits; -typedef VkFlags VkQueryPipelineStatisticFlags; -typedef VkFlags VkQueryPoolCreateFlags; - -typedef enum VkQueryResultFlagBits { - VK_QUERY_RESULT_64_BIT = 0x00000001, - VK_QUERY_RESULT_WAIT_BIT = 0x00000002, - VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, - VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, - VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkQueryResultFlagBits; -typedef VkFlags VkQueryResultFlags; - -typedef enum VkBufferCreateFlagBits { - VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, - VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, - VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, - VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, - VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010, - VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, - VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, - VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkBufferCreateFlagBits; -typedef VkFlags VkBufferCreateFlags; - -typedef enum VkBufferUsageFlagBits { - VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, - VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, - VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, - VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, - VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, - VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, - VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, - VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, - VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, - VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, - VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, - VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000, - VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000, - VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400, - VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR, - VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, - VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT, - VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkBufferUsageFlagBits; -typedef VkFlags VkBufferUsageFlags; -typedef VkFlags VkBufferViewCreateFlags; - -typedef enum VkImageViewCreateFlagBits { - VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, - VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002, - VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkImageViewCreateFlagBits; -typedef VkFlags VkImageViewCreateFlags; - -typedef enum VkShaderModuleCreateFlagBits { - VK_SHADER_MODULE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkShaderModuleCreateFlagBits; -typedef VkFlags VkShaderModuleCreateFlags; - -typedef enum VkPipelineCacheCreateFlagBits { - VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 0x00000001, - VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCacheCreateFlagBits; -typedef VkFlags VkPipelineCacheCreateFlags; - -typedef enum VkColorComponentFlagBits { - VK_COLOR_COMPONENT_R_BIT = 0x00000001, - VK_COLOR_COMPONENT_G_BIT = 0x00000002, - VK_COLOR_COMPONENT_B_BIT = 0x00000004, - VK_COLOR_COMPONENT_A_BIT = 0x00000008, - VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkColorComponentFlagBits; -typedef VkFlags VkColorComponentFlags; - -typedef enum VkPipelineCreateFlagBits { - VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, - VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, - VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, - VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, - VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, - VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000, - VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000, - VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000, - VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000, - VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, - VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, - VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, - VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, - VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, - VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 0x00000100, - VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 0x00000200, - VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, - VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, - VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, - VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkPipelineCreateFlagBits; -typedef VkFlags VkPipelineCreateFlags; - -typedef enum VkPipelineShaderStageCreateFlagBits { - VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001, - VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002, - VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkPipelineShaderStageCreateFlagBits; -typedef VkFlags VkPipelineShaderStageCreateFlags; - -typedef enum VkShaderStageFlagBits { - VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, - VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, - VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, - VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, - VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, - VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, - VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, - VK_SHADER_STAGE_ALL = 0x7FFFFFFF, - VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100, - VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200, - VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400, - VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800, - VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000, - VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000, - VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, - VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, - VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR, - VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR, - VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR, - VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR, - VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR, - VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR, - VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkShaderStageFlagBits; - -typedef enum VkCullModeFlagBits { - VK_CULL_MODE_NONE = 0, - VK_CULL_MODE_FRONT_BIT = 0x00000001, - VK_CULL_MODE_BACK_BIT = 0x00000002, - VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, - VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkCullModeFlagBits; -typedef VkFlags VkCullModeFlags; -typedef VkFlags VkPipelineVertexInputStateCreateFlags; -typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; -typedef VkFlags VkPipelineTessellationStateCreateFlags; -typedef VkFlags VkPipelineViewportStateCreateFlags; -typedef VkFlags VkPipelineRasterizationStateCreateFlags; -typedef VkFlags VkPipelineMultisampleStateCreateFlags; -typedef VkFlags VkPipelineDepthStencilStateCreateFlags; -typedef VkFlags VkPipelineColorBlendStateCreateFlags; -typedef VkFlags VkPipelineDynamicStateCreateFlags; -typedef VkFlags VkPipelineLayoutCreateFlags; -typedef VkFlags VkShaderStageFlags; - -typedef enum VkSamplerCreateFlagBits { - VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, - VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, - VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSamplerCreateFlagBits; -typedef VkFlags VkSamplerCreateFlags; - -typedef enum VkDescriptorPoolCreateFlagBits { - VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, - VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, - VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = 0x00000004, - VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT, - VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDescriptorPoolCreateFlagBits; -typedef VkFlags VkDescriptorPoolCreateFlags; -typedef VkFlags VkDescriptorPoolResetFlags; - -typedef enum VkDescriptorSetLayoutCreateFlagBits { - VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = 0x00000004, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, - VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDescriptorSetLayoutCreateFlagBits; -typedef VkFlags VkDescriptorSetLayoutCreateFlags; - -typedef enum VkAttachmentDescriptionFlagBits { - VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, - VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkAttachmentDescriptionFlagBits; -typedef VkFlags VkAttachmentDescriptionFlags; - -typedef enum VkDependencyFlagBits { - VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, - VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, - VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, - VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, - VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, - VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDependencyFlagBits; -typedef VkFlags VkDependencyFlags; - -typedef enum VkFramebufferCreateFlagBits { - VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, - VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, - VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkFramebufferCreateFlagBits; -typedef VkFlags VkFramebufferCreateFlags; - -typedef enum VkRenderPassCreateFlagBits { - VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002, - VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkRenderPassCreateFlagBits; -typedef VkFlags VkRenderPassCreateFlags; - -typedef enum VkSubpassDescriptionFlagBits { - VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, - VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, - VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, - VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, - VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSubpassDescriptionFlagBits; -typedef VkFlags VkSubpassDescriptionFlags; - -typedef enum VkCommandPoolCreateFlagBits { - VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, - VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, - VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, - VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkCommandPoolCreateFlagBits; -typedef VkFlags VkCommandPoolCreateFlags; - -typedef enum VkCommandPoolResetFlagBits { - VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, - VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkCommandPoolResetFlagBits; -typedef VkFlags VkCommandPoolResetFlags; - -typedef enum VkCommandBufferUsageFlagBits { - VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, - VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, - VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, - VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkCommandBufferUsageFlagBits; -typedef VkFlags VkCommandBufferUsageFlags; - -typedef enum VkQueryControlFlagBits { - VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, - VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkQueryControlFlagBits; -typedef VkFlags VkQueryControlFlags; - -typedef enum VkCommandBufferResetFlagBits { - VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, - VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkCommandBufferResetFlagBits; -typedef VkFlags VkCommandBufferResetFlags; - -typedef enum VkStencilFaceFlagBits { - VK_STENCIL_FACE_FRONT_BIT = 0x00000001, - VK_STENCIL_FACE_BACK_BIT = 0x00000002, - VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003, - VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK, - VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkStencilFaceFlagBits; -typedef VkFlags VkStencilFaceFlags; -typedef struct VkExtent2D { - uint32_t width; - uint32_t height; -} VkExtent2D; - -typedef struct VkExtent3D { - uint32_t width; - uint32_t height; - uint32_t depth; -} VkExtent3D; - -typedef struct VkOffset2D { - int32_t x; - int32_t y; -} VkOffset2D; - -typedef struct VkOffset3D { - int32_t x; - int32_t y; - int32_t z; -} VkOffset3D; - -typedef struct VkRect2D { - VkOffset2D offset; - VkExtent2D extent; -} VkRect2D; - -typedef struct VkBaseInStructure { - VkStructureType sType; - const struct VkBaseInStructure* pNext; -} VkBaseInStructure; - -typedef struct VkBaseOutStructure { - VkStructureType sType; - struct VkBaseOutStructure* pNext; -} VkBaseOutStructure; - -typedef struct VkBufferMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize size; -} VkBufferMemoryBarrier; - -typedef struct VkDispatchIndirectCommand { - uint32_t x; - uint32_t y; - uint32_t z; -} VkDispatchIndirectCommand; - -typedef struct VkDrawIndexedIndirectCommand { - uint32_t indexCount; - uint32_t instanceCount; - uint32_t firstIndex; - int32_t vertexOffset; - uint32_t firstInstance; -} VkDrawIndexedIndirectCommand; - -typedef struct VkDrawIndirectCommand { - uint32_t vertexCount; - uint32_t instanceCount; - uint32_t firstVertex; - uint32_t firstInstance; -} VkDrawIndirectCommand; - -typedef struct VkImageSubresourceRange { - VkImageAspectFlags aspectMask; - uint32_t baseMipLevel; - uint32_t levelCount; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkImageSubresourceRange; - -typedef struct VkImageMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkImageLayout oldLayout; - VkImageLayout newLayout; - uint32_t srcQueueFamilyIndex; - uint32_t dstQueueFamilyIndex; - VkImage image; - VkImageSubresourceRange subresourceRange; -} VkImageMemoryBarrier; - -typedef struct VkMemoryBarrier { - VkStructureType sType; - const void* pNext; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; -} VkMemoryBarrier; - -typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( - void* pUserData, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); - -typedef void (VKAPI_PTR *PFN_vkFreeFunction)( - void* pUserData, - void* pMemory); - -typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( - void* pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); - -typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( - void* pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); - -typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( - void* pUserData, - void* pOriginal, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); - -typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); -typedef struct VkAllocationCallbacks { - void* pUserData; - PFN_vkAllocationFunction pfnAllocation; - PFN_vkReallocationFunction pfnReallocation; - PFN_vkFreeFunction pfnFree; - PFN_vkInternalAllocationNotification pfnInternalAllocation; - PFN_vkInternalFreeNotification pfnInternalFree; -} VkAllocationCallbacks; - -typedef struct VkApplicationInfo { - VkStructureType sType; - const void* pNext; - const char* pApplicationName; - uint32_t applicationVersion; - const char* pEngineName; - uint32_t engineVersion; - uint32_t apiVersion; -} VkApplicationInfo; - -typedef struct VkFormatProperties { - VkFormatFeatureFlags linearTilingFeatures; - VkFormatFeatureFlags optimalTilingFeatures; - VkFormatFeatureFlags bufferFeatures; -} VkFormatProperties; - -typedef struct VkImageFormatProperties { - VkExtent3D maxExtent; - uint32_t maxMipLevels; - uint32_t maxArrayLayers; - VkSampleCountFlags sampleCounts; - VkDeviceSize maxResourceSize; -} VkImageFormatProperties; - -typedef struct VkInstanceCreateInfo { - VkStructureType sType; - const void* pNext; - VkInstanceCreateFlags flags; - const VkApplicationInfo* pApplicationInfo; - uint32_t enabledLayerCount; - const char* const* ppEnabledLayerNames; - uint32_t enabledExtensionCount; - const char* const* ppEnabledExtensionNames; -} VkInstanceCreateInfo; - -typedef struct VkMemoryHeap { - VkDeviceSize size; - VkMemoryHeapFlags flags; -} VkMemoryHeap; - -typedef struct VkMemoryType { - VkMemoryPropertyFlags propertyFlags; - uint32_t heapIndex; -} VkMemoryType; - -typedef struct VkPhysicalDeviceFeatures { - VkBool32 robustBufferAccess; - VkBool32 fullDrawIndexUint32; - VkBool32 imageCubeArray; - VkBool32 independentBlend; - VkBool32 geometryShader; - VkBool32 tessellationShader; - VkBool32 sampleRateShading; - VkBool32 dualSrcBlend; - VkBool32 logicOp; - VkBool32 multiDrawIndirect; - VkBool32 drawIndirectFirstInstance; - VkBool32 depthClamp; - VkBool32 depthBiasClamp; - VkBool32 fillModeNonSolid; - VkBool32 depthBounds; - VkBool32 wideLines; - VkBool32 largePoints; - VkBool32 alphaToOne; - VkBool32 multiViewport; - VkBool32 samplerAnisotropy; - VkBool32 textureCompressionETC2; - VkBool32 textureCompressionASTC_LDR; - VkBool32 textureCompressionBC; - VkBool32 occlusionQueryPrecise; - VkBool32 pipelineStatisticsQuery; - VkBool32 vertexPipelineStoresAndAtomics; - VkBool32 fragmentStoresAndAtomics; - VkBool32 shaderTessellationAndGeometryPointSize; - VkBool32 shaderImageGatherExtended; - VkBool32 shaderStorageImageExtendedFormats; - VkBool32 shaderStorageImageMultisample; - VkBool32 shaderStorageImageReadWithoutFormat; - VkBool32 shaderStorageImageWriteWithoutFormat; - VkBool32 shaderUniformBufferArrayDynamicIndexing; - VkBool32 shaderSampledImageArrayDynamicIndexing; - VkBool32 shaderStorageBufferArrayDynamicIndexing; - VkBool32 shaderStorageImageArrayDynamicIndexing; - VkBool32 shaderClipDistance; - VkBool32 shaderCullDistance; - VkBool32 shaderFloat64; - VkBool32 shaderInt64; - VkBool32 shaderInt16; - VkBool32 shaderResourceResidency; - VkBool32 shaderResourceMinLod; - VkBool32 sparseBinding; - VkBool32 sparseResidencyBuffer; - VkBool32 sparseResidencyImage2D; - VkBool32 sparseResidencyImage3D; - VkBool32 sparseResidency2Samples; - VkBool32 sparseResidency4Samples; - VkBool32 sparseResidency8Samples; - VkBool32 sparseResidency16Samples; - VkBool32 sparseResidencyAliased; - VkBool32 variableMultisampleRate; - VkBool32 inheritedQueries; -} VkPhysicalDeviceFeatures; - -typedef struct VkPhysicalDeviceLimits { - uint32_t maxImageDimension1D; - uint32_t maxImageDimension2D; - uint32_t maxImageDimension3D; - uint32_t maxImageDimensionCube; - uint32_t maxImageArrayLayers; - uint32_t maxTexelBufferElements; - uint32_t maxUniformBufferRange; - uint32_t maxStorageBufferRange; - uint32_t maxPushConstantsSize; - uint32_t maxMemoryAllocationCount; - uint32_t maxSamplerAllocationCount; - VkDeviceSize bufferImageGranularity; - VkDeviceSize sparseAddressSpaceSize; - uint32_t maxBoundDescriptorSets; - uint32_t maxPerStageDescriptorSamplers; - uint32_t maxPerStageDescriptorUniformBuffers; - uint32_t maxPerStageDescriptorStorageBuffers; - uint32_t maxPerStageDescriptorSampledImages; - uint32_t maxPerStageDescriptorStorageImages; - uint32_t maxPerStageDescriptorInputAttachments; - uint32_t maxPerStageResources; - uint32_t maxDescriptorSetSamplers; - uint32_t maxDescriptorSetUniformBuffers; - uint32_t maxDescriptorSetUniformBuffersDynamic; - uint32_t maxDescriptorSetStorageBuffers; - uint32_t maxDescriptorSetStorageBuffersDynamic; - uint32_t maxDescriptorSetSampledImages; - uint32_t maxDescriptorSetStorageImages; - uint32_t maxDescriptorSetInputAttachments; - uint32_t maxVertexInputAttributes; - uint32_t maxVertexInputBindings; - uint32_t maxVertexInputAttributeOffset; - uint32_t maxVertexInputBindingStride; - uint32_t maxVertexOutputComponents; - uint32_t maxTessellationGenerationLevel; - uint32_t maxTessellationPatchSize; - uint32_t maxTessellationControlPerVertexInputComponents; - uint32_t maxTessellationControlPerVertexOutputComponents; - uint32_t maxTessellationControlPerPatchOutputComponents; - uint32_t maxTessellationControlTotalOutputComponents; - uint32_t maxTessellationEvaluationInputComponents; - uint32_t maxTessellationEvaluationOutputComponents; - uint32_t maxGeometryShaderInvocations; - uint32_t maxGeometryInputComponents; - uint32_t maxGeometryOutputComponents; - uint32_t maxGeometryOutputVertices; - uint32_t maxGeometryTotalOutputComponents; - uint32_t maxFragmentInputComponents; - uint32_t maxFragmentOutputAttachments; - uint32_t maxFragmentDualSrcAttachments; - uint32_t maxFragmentCombinedOutputResources; - uint32_t maxComputeSharedMemorySize; - uint32_t maxComputeWorkGroupCount[3]; - uint32_t maxComputeWorkGroupInvocations; - uint32_t maxComputeWorkGroupSize[3]; - uint32_t subPixelPrecisionBits; - uint32_t subTexelPrecisionBits; - uint32_t mipmapPrecisionBits; - uint32_t maxDrawIndexedIndexValue; - uint32_t maxDrawIndirectCount; - float maxSamplerLodBias; - float maxSamplerAnisotropy; - uint32_t maxViewports; - uint32_t maxViewportDimensions[2]; - float viewportBoundsRange[2]; - uint32_t viewportSubPixelBits; - size_t minMemoryMapAlignment; - VkDeviceSize minTexelBufferOffsetAlignment; - VkDeviceSize minUniformBufferOffsetAlignment; - VkDeviceSize minStorageBufferOffsetAlignment; - int32_t minTexelOffset; - uint32_t maxTexelOffset; - int32_t minTexelGatherOffset; - uint32_t maxTexelGatherOffset; - float minInterpolationOffset; - float maxInterpolationOffset; - uint32_t subPixelInterpolationOffsetBits; - uint32_t maxFramebufferWidth; - uint32_t maxFramebufferHeight; - uint32_t maxFramebufferLayers; - VkSampleCountFlags framebufferColorSampleCounts; - VkSampleCountFlags framebufferDepthSampleCounts; - VkSampleCountFlags framebufferStencilSampleCounts; - VkSampleCountFlags framebufferNoAttachmentsSampleCounts; - uint32_t maxColorAttachments; - VkSampleCountFlags sampledImageColorSampleCounts; - VkSampleCountFlags sampledImageIntegerSampleCounts; - VkSampleCountFlags sampledImageDepthSampleCounts; - VkSampleCountFlags sampledImageStencilSampleCounts; - VkSampleCountFlags storageImageSampleCounts; - uint32_t maxSampleMaskWords; - VkBool32 timestampComputeAndGraphics; - float timestampPeriod; - uint32_t maxClipDistances; - uint32_t maxCullDistances; - uint32_t maxCombinedClipAndCullDistances; - uint32_t discreteQueuePriorities; - float pointSizeRange[2]; - float lineWidthRange[2]; - float pointSizeGranularity; - float lineWidthGranularity; - VkBool32 strictLines; - VkBool32 standardSampleLocations; - VkDeviceSize optimalBufferCopyOffsetAlignment; - VkDeviceSize optimalBufferCopyRowPitchAlignment; - VkDeviceSize nonCoherentAtomSize; -} VkPhysicalDeviceLimits; - -typedef struct VkPhysicalDeviceMemoryProperties { - uint32_t memoryTypeCount; - VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; - uint32_t memoryHeapCount; - VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; -} VkPhysicalDeviceMemoryProperties; - -typedef struct VkPhysicalDeviceSparseProperties { - VkBool32 residencyStandard2DBlockShape; - VkBool32 residencyStandard2DMultisampleBlockShape; - VkBool32 residencyStandard3DBlockShape; - VkBool32 residencyAlignedMipSize; - VkBool32 residencyNonResidentStrict; -} VkPhysicalDeviceSparseProperties; - -typedef struct VkPhysicalDeviceProperties { - uint32_t apiVersion; - uint32_t driverVersion; - uint32_t vendorID; - uint32_t deviceID; - VkPhysicalDeviceType deviceType; - char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; - uint8_t pipelineCacheUUID[VK_UUID_SIZE]; - VkPhysicalDeviceLimits limits; - VkPhysicalDeviceSparseProperties sparseProperties; -} VkPhysicalDeviceProperties; - -typedef struct VkQueueFamilyProperties { - VkQueueFlags queueFlags; - uint32_t queueCount; - uint32_t timestampValidBits; - VkExtent3D minImageTransferGranularity; -} VkQueueFamilyProperties; - -typedef struct VkDeviceQueueCreateInfo { - VkStructureType sType; - const void* pNext; - VkDeviceQueueCreateFlags flags; - uint32_t queueFamilyIndex; - uint32_t queueCount; - const float* pQueuePriorities; -} VkDeviceQueueCreateInfo; - -typedef struct VkDeviceCreateInfo { - VkStructureType sType; - const void* pNext; - VkDeviceCreateFlags flags; - uint32_t queueCreateInfoCount; - const VkDeviceQueueCreateInfo* pQueueCreateInfos; - uint32_t enabledLayerCount; - const char* const* ppEnabledLayerNames; - uint32_t enabledExtensionCount; - const char* const* ppEnabledExtensionNames; - const VkPhysicalDeviceFeatures* pEnabledFeatures; -} VkDeviceCreateInfo; - -typedef struct VkExtensionProperties { - char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; - uint32_t specVersion; -} VkExtensionProperties; - -typedef struct VkLayerProperties { - char layerName[VK_MAX_EXTENSION_NAME_SIZE]; - uint32_t specVersion; - uint32_t implementationVersion; - char description[VK_MAX_DESCRIPTION_SIZE]; -} VkLayerProperties; - -typedef struct VkSubmitInfo { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreCount; - const VkSemaphore* pWaitSemaphores; - const VkPipelineStageFlags* pWaitDstStageMask; - uint32_t commandBufferCount; - const VkCommandBuffer* pCommandBuffers; - uint32_t signalSemaphoreCount; - const VkSemaphore* pSignalSemaphores; -} VkSubmitInfo; - -typedef struct VkMappedMemoryRange { - VkStructureType sType; - const void* pNext; - VkDeviceMemory memory; - VkDeviceSize offset; - VkDeviceSize size; -} VkMappedMemoryRange; - -typedef struct VkMemoryAllocateInfo { - VkStructureType sType; - const void* pNext; - VkDeviceSize allocationSize; - uint32_t memoryTypeIndex; -} VkMemoryAllocateInfo; - -typedef struct VkMemoryRequirements { - VkDeviceSize size; - VkDeviceSize alignment; - uint32_t memoryTypeBits; -} VkMemoryRequirements; - -typedef struct VkSparseMemoryBind { - VkDeviceSize resourceOffset; - VkDeviceSize size; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; - VkSparseMemoryBindFlags flags; -} VkSparseMemoryBind; - -typedef struct VkSparseBufferMemoryBindInfo { - VkBuffer buffer; - uint32_t bindCount; - const VkSparseMemoryBind* pBinds; -} VkSparseBufferMemoryBindInfo; - -typedef struct VkSparseImageOpaqueMemoryBindInfo { - VkImage image; - uint32_t bindCount; - const VkSparseMemoryBind* pBinds; -} VkSparseImageOpaqueMemoryBindInfo; - -typedef struct VkImageSubresource { - VkImageAspectFlags aspectMask; - uint32_t mipLevel; - uint32_t arrayLayer; -} VkImageSubresource; - -typedef struct VkSparseImageMemoryBind { - VkImageSubresource subresource; - VkOffset3D offset; - VkExtent3D extent; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; - VkSparseMemoryBindFlags flags; -} VkSparseImageMemoryBind; - -typedef struct VkSparseImageMemoryBindInfo { - VkImage image; - uint32_t bindCount; - const VkSparseImageMemoryBind* pBinds; -} VkSparseImageMemoryBindInfo; - -typedef struct VkBindSparseInfo { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreCount; - const VkSemaphore* pWaitSemaphores; - uint32_t bufferBindCount; - const VkSparseBufferMemoryBindInfo* pBufferBinds; - uint32_t imageOpaqueBindCount; - const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds; - uint32_t imageBindCount; - const VkSparseImageMemoryBindInfo* pImageBinds; - uint32_t signalSemaphoreCount; - const VkSemaphore* pSignalSemaphores; -} VkBindSparseInfo; - -typedef struct VkSparseImageFormatProperties { - VkImageAspectFlags aspectMask; - VkExtent3D imageGranularity; - VkSparseImageFormatFlags flags; -} VkSparseImageFormatProperties; - -typedef struct VkSparseImageMemoryRequirements { - VkSparseImageFormatProperties formatProperties; - uint32_t imageMipTailFirstLod; - VkDeviceSize imageMipTailSize; - VkDeviceSize imageMipTailOffset; - VkDeviceSize imageMipTailStride; -} VkSparseImageMemoryRequirements; - -typedef struct VkFenceCreateInfo { - VkStructureType sType; - const void* pNext; - VkFenceCreateFlags flags; -} VkFenceCreateInfo; - -typedef struct VkSemaphoreCreateInfo { - VkStructureType sType; - const void* pNext; - VkSemaphoreCreateFlags flags; -} VkSemaphoreCreateInfo; - -typedef struct VkEventCreateInfo { - VkStructureType sType; - const void* pNext; - VkEventCreateFlags flags; -} VkEventCreateInfo; - -typedef struct VkQueryPoolCreateInfo { - VkStructureType sType; - const void* pNext; - VkQueryPoolCreateFlags flags; - VkQueryType queryType; - uint32_t queryCount; - VkQueryPipelineStatisticFlags pipelineStatistics; -} VkQueryPoolCreateInfo; - -typedef struct VkBufferCreateInfo { - VkStructureType sType; - const void* pNext; - VkBufferCreateFlags flags; - VkDeviceSize size; - VkBufferUsageFlags usage; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t* pQueueFamilyIndices; -} VkBufferCreateInfo; - -typedef struct VkBufferViewCreateInfo { - VkStructureType sType; - const void* pNext; - VkBufferViewCreateFlags flags; - VkBuffer buffer; - VkFormat format; - VkDeviceSize offset; - VkDeviceSize range; -} VkBufferViewCreateInfo; - -typedef struct VkImageCreateInfo { - VkStructureType sType; - const void* pNext; - VkImageCreateFlags flags; - VkImageType imageType; - VkFormat format; - VkExtent3D extent; - uint32_t mipLevels; - uint32_t arrayLayers; - VkSampleCountFlagBits samples; - VkImageTiling tiling; - VkImageUsageFlags usage; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t* pQueueFamilyIndices; - VkImageLayout initialLayout; -} VkImageCreateInfo; - -typedef struct VkSubresourceLayout { - VkDeviceSize offset; - VkDeviceSize size; - VkDeviceSize rowPitch; - VkDeviceSize arrayPitch; - VkDeviceSize depthPitch; -} VkSubresourceLayout; - -typedef struct VkComponentMapping { - VkComponentSwizzle r; - VkComponentSwizzle g; - VkComponentSwizzle b; - VkComponentSwizzle a; -} VkComponentMapping; - -typedef struct VkImageViewCreateInfo { - VkStructureType sType; - const void* pNext; - VkImageViewCreateFlags flags; - VkImage image; - VkImageViewType viewType; - VkFormat format; - VkComponentMapping components; - VkImageSubresourceRange subresourceRange; -} VkImageViewCreateInfo; - -typedef struct VkShaderModuleCreateInfo { - VkStructureType sType; - const void* pNext; - VkShaderModuleCreateFlags flags; - size_t codeSize; - const uint32_t* pCode; -} VkShaderModuleCreateInfo; - -typedef struct VkPipelineCacheCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineCacheCreateFlags flags; - size_t initialDataSize; - const void* pInitialData; -} VkPipelineCacheCreateInfo; - -typedef struct VkSpecializationMapEntry { - uint32_t constantID; - uint32_t offset; - size_t size; -} VkSpecializationMapEntry; - -typedef struct VkSpecializationInfo { - uint32_t mapEntryCount; - const VkSpecializationMapEntry* pMapEntries; - size_t dataSize; - const void* pData; -} VkSpecializationInfo; - -typedef struct VkPipelineShaderStageCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineShaderStageCreateFlags flags; - VkShaderStageFlagBits stage; - VkShaderModule module; - const char* pName; - const VkSpecializationInfo* pSpecializationInfo; -} VkPipelineShaderStageCreateInfo; - -typedef struct VkComputePipelineCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineCreateFlags flags; - VkPipelineShaderStageCreateInfo stage; - VkPipelineLayout layout; - VkPipeline basePipelineHandle; - int32_t basePipelineIndex; -} VkComputePipelineCreateInfo; - -typedef struct VkVertexInputBindingDescription { - uint32_t binding; - uint32_t stride; - VkVertexInputRate inputRate; -} VkVertexInputBindingDescription; - -typedef struct VkVertexInputAttributeDescription { - uint32_t location; - uint32_t binding; - VkFormat format; - uint32_t offset; -} VkVertexInputAttributeDescription; - -typedef struct VkPipelineVertexInputStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineVertexInputStateCreateFlags flags; - uint32_t vertexBindingDescriptionCount; - const VkVertexInputBindingDescription* pVertexBindingDescriptions; - uint32_t vertexAttributeDescriptionCount; - const VkVertexInputAttributeDescription* pVertexAttributeDescriptions; -} VkPipelineVertexInputStateCreateInfo; - -typedef struct VkPipelineInputAssemblyStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineInputAssemblyStateCreateFlags flags; - VkPrimitiveTopology topology; - VkBool32 primitiveRestartEnable; -} VkPipelineInputAssemblyStateCreateInfo; - -typedef struct VkPipelineTessellationStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineTessellationStateCreateFlags flags; - uint32_t patchControlPoints; -} VkPipelineTessellationStateCreateInfo; - -typedef struct VkViewport { - float x; - float y; - float width; - float height; - float minDepth; - float maxDepth; -} VkViewport; - -typedef struct VkPipelineViewportStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineViewportStateCreateFlags flags; - uint32_t viewportCount; - const VkViewport* pViewports; - uint32_t scissorCount; - const VkRect2D* pScissors; -} VkPipelineViewportStateCreateInfo; - -typedef struct VkPipelineRasterizationStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineRasterizationStateCreateFlags flags; - VkBool32 depthClampEnable; - VkBool32 rasterizerDiscardEnable; - VkPolygonMode polygonMode; - VkCullModeFlags cullMode; - VkFrontFace frontFace; - VkBool32 depthBiasEnable; - float depthBiasConstantFactor; - float depthBiasClamp; - float depthBiasSlopeFactor; - float lineWidth; -} VkPipelineRasterizationStateCreateInfo; - -typedef struct VkPipelineMultisampleStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineMultisampleStateCreateFlags flags; - VkSampleCountFlagBits rasterizationSamples; - VkBool32 sampleShadingEnable; - float minSampleShading; - const VkSampleMask* pSampleMask; - VkBool32 alphaToCoverageEnable; - VkBool32 alphaToOneEnable; -} VkPipelineMultisampleStateCreateInfo; - -typedef struct VkStencilOpState { - VkStencilOp failOp; - VkStencilOp passOp; - VkStencilOp depthFailOp; - VkCompareOp compareOp; - uint32_t compareMask; - uint32_t writeMask; - uint32_t reference; -} VkStencilOpState; - -typedef struct VkPipelineDepthStencilStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineDepthStencilStateCreateFlags flags; - VkBool32 depthTestEnable; - VkBool32 depthWriteEnable; - VkCompareOp depthCompareOp; - VkBool32 depthBoundsTestEnable; - VkBool32 stencilTestEnable; - VkStencilOpState front; - VkStencilOpState back; - float minDepthBounds; - float maxDepthBounds; -} VkPipelineDepthStencilStateCreateInfo; - -typedef struct VkPipelineColorBlendAttachmentState { - VkBool32 blendEnable; - VkBlendFactor srcColorBlendFactor; - VkBlendFactor dstColorBlendFactor; - VkBlendOp colorBlendOp; - VkBlendFactor srcAlphaBlendFactor; - VkBlendFactor dstAlphaBlendFactor; - VkBlendOp alphaBlendOp; - VkColorComponentFlags colorWriteMask; -} VkPipelineColorBlendAttachmentState; - -typedef struct VkPipelineColorBlendStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineColorBlendStateCreateFlags flags; - VkBool32 logicOpEnable; - VkLogicOp logicOp; - uint32_t attachmentCount; - const VkPipelineColorBlendAttachmentState* pAttachments; - float blendConstants[4]; -} VkPipelineColorBlendStateCreateInfo; - -typedef struct VkPipelineDynamicStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineDynamicStateCreateFlags flags; - uint32_t dynamicStateCount; - const VkDynamicState* pDynamicStates; -} VkPipelineDynamicStateCreateInfo; - -typedef struct VkGraphicsPipelineCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo* pStages; - const VkPipelineVertexInputStateCreateInfo* pVertexInputState; - const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState; - const VkPipelineTessellationStateCreateInfo* pTessellationState; - const VkPipelineViewportStateCreateInfo* pViewportState; - const VkPipelineRasterizationStateCreateInfo* pRasterizationState; - const VkPipelineMultisampleStateCreateInfo* pMultisampleState; - const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState; - const VkPipelineColorBlendStateCreateInfo* pColorBlendState; - const VkPipelineDynamicStateCreateInfo* pDynamicState; - VkPipelineLayout layout; - VkRenderPass renderPass; - uint32_t subpass; - VkPipeline basePipelineHandle; - int32_t basePipelineIndex; -} VkGraphicsPipelineCreateInfo; - -typedef struct VkPushConstantRange { - VkShaderStageFlags stageFlags; - uint32_t offset; - uint32_t size; -} VkPushConstantRange; - -typedef struct VkPipelineLayoutCreateInfo { - VkStructureType sType; - const void* pNext; - VkPipelineLayoutCreateFlags flags; - uint32_t setLayoutCount; - const VkDescriptorSetLayout* pSetLayouts; - uint32_t pushConstantRangeCount; - const VkPushConstantRange* pPushConstantRanges; -} VkPipelineLayoutCreateInfo; - -typedef struct VkSamplerCreateInfo { - VkStructureType sType; - const void* pNext; - VkSamplerCreateFlags flags; - VkFilter magFilter; - VkFilter minFilter; - VkSamplerMipmapMode mipmapMode; - VkSamplerAddressMode addressModeU; - VkSamplerAddressMode addressModeV; - VkSamplerAddressMode addressModeW; - float mipLodBias; - VkBool32 anisotropyEnable; - float maxAnisotropy; - VkBool32 compareEnable; - VkCompareOp compareOp; - float minLod; - float maxLod; - VkBorderColor borderColor; - VkBool32 unnormalizedCoordinates; -} VkSamplerCreateInfo; - -typedef struct VkCopyDescriptorSet { - VkStructureType sType; - const void* pNext; - VkDescriptorSet srcSet; - uint32_t srcBinding; - uint32_t srcArrayElement; - VkDescriptorSet dstSet; - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; -} VkCopyDescriptorSet; - -typedef struct VkDescriptorBufferInfo { - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize range; -} VkDescriptorBufferInfo; - -typedef struct VkDescriptorImageInfo { - VkSampler sampler; - VkImageView imageView; - VkImageLayout imageLayout; -} VkDescriptorImageInfo; - -typedef struct VkDescriptorPoolSize { - VkDescriptorType type; - uint32_t descriptorCount; -} VkDescriptorPoolSize; - -typedef struct VkDescriptorPoolCreateInfo { - VkStructureType sType; - const void* pNext; - VkDescriptorPoolCreateFlags flags; - uint32_t maxSets; - uint32_t poolSizeCount; - const VkDescriptorPoolSize* pPoolSizes; -} VkDescriptorPoolCreateInfo; - -typedef struct VkDescriptorSetAllocateInfo { - VkStructureType sType; - const void* pNext; - VkDescriptorPool descriptorPool; - uint32_t descriptorSetCount; - const VkDescriptorSetLayout* pSetLayouts; -} VkDescriptorSetAllocateInfo; - -typedef struct VkDescriptorSetLayoutBinding { - uint32_t binding; - VkDescriptorType descriptorType; - uint32_t descriptorCount; - VkShaderStageFlags stageFlags; - const VkSampler* pImmutableSamplers; -} VkDescriptorSetLayoutBinding; - -typedef struct VkDescriptorSetLayoutCreateInfo { - VkStructureType sType; - const void* pNext; - VkDescriptorSetLayoutCreateFlags flags; - uint32_t bindingCount; - const VkDescriptorSetLayoutBinding* pBindings; -} VkDescriptorSetLayoutCreateInfo; - -typedef struct VkWriteDescriptorSet { - VkStructureType sType; - const void* pNext; - VkDescriptorSet dstSet; - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; - VkDescriptorType descriptorType; - const VkDescriptorImageInfo* pImageInfo; - const VkDescriptorBufferInfo* pBufferInfo; - const VkBufferView* pTexelBufferView; -} VkWriteDescriptorSet; - -typedef struct VkAttachmentDescription { - VkAttachmentDescriptionFlags flags; - VkFormat format; - VkSampleCountFlagBits samples; - VkAttachmentLoadOp loadOp; - VkAttachmentStoreOp storeOp; - VkAttachmentLoadOp stencilLoadOp; - VkAttachmentStoreOp stencilStoreOp; - VkImageLayout initialLayout; - VkImageLayout finalLayout; -} VkAttachmentDescription; - -typedef struct VkAttachmentReference { - uint32_t attachment; - VkImageLayout layout; -} VkAttachmentReference; - -typedef struct VkFramebufferCreateInfo { - VkStructureType sType; - const void* pNext; - VkFramebufferCreateFlags flags; - VkRenderPass renderPass; - uint32_t attachmentCount; - const VkImageView* pAttachments; - uint32_t width; - uint32_t height; - uint32_t layers; -} VkFramebufferCreateInfo; - -typedef struct VkSubpassDescription { - VkSubpassDescriptionFlags flags; - VkPipelineBindPoint pipelineBindPoint; - uint32_t inputAttachmentCount; - const VkAttachmentReference* pInputAttachments; - uint32_t colorAttachmentCount; - const VkAttachmentReference* pColorAttachments; - const VkAttachmentReference* pResolveAttachments; - const VkAttachmentReference* pDepthStencilAttachment; - uint32_t preserveAttachmentCount; - const uint32_t* pPreserveAttachments; -} VkSubpassDescription; - -typedef struct VkSubpassDependency { - uint32_t srcSubpass; - uint32_t dstSubpass; - VkPipelineStageFlags srcStageMask; - VkPipelineStageFlags dstStageMask; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkDependencyFlags dependencyFlags; -} VkSubpassDependency; - -typedef struct VkRenderPassCreateInfo { - VkStructureType sType; - const void* pNext; - VkRenderPassCreateFlags flags; - uint32_t attachmentCount; - const VkAttachmentDescription* pAttachments; - uint32_t subpassCount; - const VkSubpassDescription* pSubpasses; - uint32_t dependencyCount; - const VkSubpassDependency* pDependencies; -} VkRenderPassCreateInfo; - -typedef struct VkCommandPoolCreateInfo { - VkStructureType sType; - const void* pNext; - VkCommandPoolCreateFlags flags; - uint32_t queueFamilyIndex; -} VkCommandPoolCreateInfo; - -typedef struct VkCommandBufferAllocateInfo { - VkStructureType sType; - const void* pNext; - VkCommandPool commandPool; - VkCommandBufferLevel level; - uint32_t commandBufferCount; -} VkCommandBufferAllocateInfo; - -typedef struct VkCommandBufferInheritanceInfo { - VkStructureType sType; - const void* pNext; - VkRenderPass renderPass; - uint32_t subpass; - VkFramebuffer framebuffer; - VkBool32 occlusionQueryEnable; - VkQueryControlFlags queryFlags; - VkQueryPipelineStatisticFlags pipelineStatistics; -} VkCommandBufferInheritanceInfo; - -typedef struct VkCommandBufferBeginInfo { - VkStructureType sType; - const void* pNext; - VkCommandBufferUsageFlags flags; - const VkCommandBufferInheritanceInfo* pInheritanceInfo; -} VkCommandBufferBeginInfo; - -typedef struct VkBufferCopy { - VkDeviceSize srcOffset; - VkDeviceSize dstOffset; - VkDeviceSize size; -} VkBufferCopy; - -typedef struct VkImageSubresourceLayers { - VkImageAspectFlags aspectMask; - uint32_t mipLevel; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkImageSubresourceLayers; - -typedef struct VkBufferImageCopy { - VkDeviceSize bufferOffset; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkBufferImageCopy; - -typedef union VkClearColorValue { - float float32[4]; - int32_t int32[4]; - uint32_t uint32[4]; -} VkClearColorValue; - -typedef struct VkClearDepthStencilValue { - float depth; - uint32_t stencil; -} VkClearDepthStencilValue; - -typedef union VkClearValue { - VkClearColorValue color; - VkClearDepthStencilValue depthStencil; -} VkClearValue; - -typedef struct VkClearAttachment { - VkImageAspectFlags aspectMask; - uint32_t colorAttachment; - VkClearValue clearValue; -} VkClearAttachment; - -typedef struct VkClearRect { - VkRect2D rect; - uint32_t baseArrayLayer; - uint32_t layerCount; -} VkClearRect; - -typedef struct VkImageBlit { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit; - -typedef struct VkImageCopy { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy; - -typedef struct VkImageResolve { - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageResolve; - -typedef struct VkRenderPassBeginInfo { - VkStructureType sType; - const void* pNext; - VkRenderPass renderPass; - VkFramebuffer framebuffer; - VkRect2D renderArea; - uint32_t clearValueCount; - const VkClearValue* pClearValues; -} VkRenderPassBeginInfo; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); -typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); -typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName); -typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice); -typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties); -typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); -typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence); -typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue); -typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device); -typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); -typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); -typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory); -typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); -typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); -typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); -typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); -typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); -typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence); -typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); -typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences); -typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence); -typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout); -typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); -typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent); -typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event); -typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event); -typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event); -typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); -typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags); -typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); -typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView); -typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage); -typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); -typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView); -typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule); -typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); -typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData); -typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); -typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); -typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); -typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); -typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler); -typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); -typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); -typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); -typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); -typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets); -typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); -typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); -typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); -typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); -typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); -typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); -typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); -typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); -typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo); -typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer); -typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); -typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); -typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); -typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); -typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth); -typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); -typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]); -typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); -typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); -typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); -typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); -typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets); -typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType); -typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets); -typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); -typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); -typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); -typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); -typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); -typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); -typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); -typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); -typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); -typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); -typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); -typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); -typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); -typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); -typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); -typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); -typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers); -typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); -typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); -typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); -typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query); -typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); -typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); -typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); -typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents); -typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer); -typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( - const VkInstanceCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkInstance* pInstance); - -VKAPI_ATTR void VKAPI_CALL vkDestroyInstance( - VkInstance instance, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices( - VkInstance instance, - uint32_t* pPhysicalDeviceCount, - VkPhysicalDevice* pPhysicalDevices); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceFeatures* pFeatures); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkFormatProperties* pFormatProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkImageType type, - VkImageTiling tiling, - VkImageUsageFlags usage, - VkImageCreateFlags flags, - VkImageFormatProperties* pImageFormatProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceProperties* pProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties( - VkPhysicalDevice physicalDevice, - uint32_t* pQueueFamilyPropertyCount, - VkQueueFamilyProperties* pQueueFamilyProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceMemoryProperties* pMemoryProperties); - -VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr( - VkInstance instance, - const char* pName); - -VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr( - VkDevice device, - const char* pName); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice( - VkPhysicalDevice physicalDevice, - const VkDeviceCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDevice* pDevice); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDevice( - VkDevice device, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties( - const char* pLayerName, - uint32_t* pPropertyCount, - VkExtensionProperties* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties( - VkPhysicalDevice physicalDevice, - const char* pLayerName, - uint32_t* pPropertyCount, - VkExtensionProperties* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( - uint32_t* pPropertyCount, - VkLayerProperties* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkLayerProperties* pProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue( - VkDevice device, - uint32_t queueFamilyIndex, - uint32_t queueIndex, - VkQueue* pQueue); - -VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit( - VkQueue queue, - uint32_t submitCount, - const VkSubmitInfo* pSubmits, - VkFence fence); - -VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle( - VkQueue queue); - -VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle( - VkDevice device); - -VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory( - VkDevice device, - const VkMemoryAllocateInfo* pAllocateInfo, - const VkAllocationCallbacks* pAllocator, - VkDeviceMemory* pMemory); - -VKAPI_ATTR void VKAPI_CALL vkFreeMemory( - VkDevice device, - VkDeviceMemory memory, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory( - VkDevice device, - VkDeviceMemory memory, - VkDeviceSize offset, - VkDeviceSize size, - VkMemoryMapFlags flags, - void** ppData); - -VKAPI_ATTR void VKAPI_CALL vkUnmapMemory( - VkDevice device, - VkDeviceMemory memory); - -VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges( - VkDevice device, - uint32_t memoryRangeCount, - const VkMappedMemoryRange* pMemoryRanges); - -VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges( - VkDevice device, - uint32_t memoryRangeCount, - const VkMappedMemoryRange* pMemoryRanges); - -VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment( - VkDevice device, - VkDeviceMemory memory, - VkDeviceSize* pCommittedMemoryInBytes); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory( - VkDevice device, - VkBuffer buffer, - VkDeviceMemory memory, - VkDeviceSize memoryOffset); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory( - VkDevice device, - VkImage image, - VkDeviceMemory memory, - VkDeviceSize memoryOffset); - -VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements( - VkDevice device, - VkBuffer buffer, - VkMemoryRequirements* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements( - VkDevice device, - VkImage image, - VkMemoryRequirements* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements( - VkDevice device, - VkImage image, - uint32_t* pSparseMemoryRequirementCount, - VkSparseImageMemoryRequirements* pSparseMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkImageType type, - VkSampleCountFlagBits samples, - VkImageUsageFlags usage, - VkImageTiling tiling, - uint32_t* pPropertyCount, - VkSparseImageFormatProperties* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse( - VkQueue queue, - uint32_t bindInfoCount, - const VkBindSparseInfo* pBindInfo, - VkFence fence); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence( - VkDevice device, - const VkFenceCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkFence* pFence); - -VKAPI_ATTR void VKAPI_CALL vkDestroyFence( - VkDevice device, - VkFence fence, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkResetFences( - VkDevice device, - uint32_t fenceCount, - const VkFence* pFences); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus( - VkDevice device, - VkFence fence); - -VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences( - VkDevice device, - uint32_t fenceCount, - const VkFence* pFences, - VkBool32 waitAll, - uint64_t timeout); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore( - VkDevice device, - const VkSemaphoreCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSemaphore* pSemaphore); - -VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore( - VkDevice device, - VkSemaphore semaphore, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent( - VkDevice device, - const VkEventCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkEvent* pEvent); - -VKAPI_ATTR void VKAPI_CALL vkDestroyEvent( - VkDevice device, - VkEvent event, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus( - VkDevice device, - VkEvent event); - -VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent( - VkDevice device, - VkEvent event); - -VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent( - VkDevice device, - VkEvent event); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool( - VkDevice device, - const VkQueryPoolCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkQueryPool* pQueryPool); - -VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool( - VkDevice device, - VkQueryPool queryPool, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults( - VkDevice device, - VkQueryPool queryPool, - uint32_t firstQuery, - uint32_t queryCount, - size_t dataSize, - void* pData, - VkDeviceSize stride, - VkQueryResultFlags flags); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer( - VkDevice device, - const VkBufferCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkBuffer* pBuffer); - -VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer( - VkDevice device, - VkBuffer buffer, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView( - VkDevice device, - const VkBufferViewCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkBufferView* pView); - -VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView( - VkDevice device, - VkBufferView bufferView, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage( - VkDevice device, - const VkImageCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkImage* pImage); - -VKAPI_ATTR void VKAPI_CALL vkDestroyImage( - VkDevice device, - VkImage image, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout( - VkDevice device, - VkImage image, - const VkImageSubresource* pSubresource, - VkSubresourceLayout* pLayout); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView( - VkDevice device, - const VkImageViewCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkImageView* pView); - -VKAPI_ATTR void VKAPI_CALL vkDestroyImageView( - VkDevice device, - VkImageView imageView, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule( - VkDevice device, - const VkShaderModuleCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkShaderModule* pShaderModule); - -VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule( - VkDevice device, - VkShaderModule shaderModule, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache( - VkDevice device, - const VkPipelineCacheCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkPipelineCache* pPipelineCache); - -VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache( - VkDevice device, - VkPipelineCache pipelineCache, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData( - VkDevice device, - VkPipelineCache pipelineCache, - size_t* pDataSize, - void* pData); - -VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches( - VkDevice device, - VkPipelineCache dstCache, - uint32_t srcCacheCount, - const VkPipelineCache* pSrcCaches); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines( - VkDevice device, - VkPipelineCache pipelineCache, - uint32_t createInfoCount, - const VkGraphicsPipelineCreateInfo* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkPipeline* pPipelines); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines( - VkDevice device, - VkPipelineCache pipelineCache, - uint32_t createInfoCount, - const VkComputePipelineCreateInfo* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkPipeline* pPipelines); - -VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline( - VkDevice device, - VkPipeline pipeline, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout( - VkDevice device, - const VkPipelineLayoutCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkPipelineLayout* pPipelineLayout); - -VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout( - VkDevice device, - VkPipelineLayout pipelineLayout, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler( - VkDevice device, - const VkSamplerCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSampler* pSampler); - -VKAPI_ATTR void VKAPI_CALL vkDestroySampler( - VkDevice device, - VkSampler sampler, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout( - VkDevice device, - const VkDescriptorSetLayoutCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDescriptorSetLayout* pSetLayout); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout( - VkDevice device, - VkDescriptorSetLayout descriptorSetLayout, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool( - VkDevice device, - const VkDescriptorPoolCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDescriptorPool* pDescriptorPool); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool( - VkDevice device, - VkDescriptorPool descriptorPool, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool( - VkDevice device, - VkDescriptorPool descriptorPool, - VkDescriptorPoolResetFlags flags); - -VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets( - VkDevice device, - const VkDescriptorSetAllocateInfo* pAllocateInfo, - VkDescriptorSet* pDescriptorSets); - -VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets( - VkDevice device, - VkDescriptorPool descriptorPool, - uint32_t descriptorSetCount, - const VkDescriptorSet* pDescriptorSets); - -VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets( - VkDevice device, - uint32_t descriptorWriteCount, - const VkWriteDescriptorSet* pDescriptorWrites, - uint32_t descriptorCopyCount, - const VkCopyDescriptorSet* pDescriptorCopies); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer( - VkDevice device, - const VkFramebufferCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkFramebuffer* pFramebuffer); - -VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer( - VkDevice device, - VkFramebuffer framebuffer, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass( - VkDevice device, - const VkRenderPassCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkRenderPass* pRenderPass); - -VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass( - VkDevice device, - VkRenderPass renderPass, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity( - VkDevice device, - VkRenderPass renderPass, - VkExtent2D* pGranularity); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool( - VkDevice device, - const VkCommandPoolCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkCommandPool* pCommandPool); - -VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool( - VkDevice device, - VkCommandPool commandPool, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool( - VkDevice device, - VkCommandPool commandPool, - VkCommandPoolResetFlags flags); - -VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers( - VkDevice device, - const VkCommandBufferAllocateInfo* pAllocateInfo, - VkCommandBuffer* pCommandBuffers); - -VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers( - VkDevice device, - VkCommandPool commandPool, - uint32_t commandBufferCount, - const VkCommandBuffer* pCommandBuffers); - -VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer( - VkCommandBuffer commandBuffer, - const VkCommandBufferBeginInfo* pBeginInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer( - VkCommandBuffer commandBuffer); - -VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer( - VkCommandBuffer commandBuffer, - VkCommandBufferResetFlags flags); - -VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline( - VkCommandBuffer commandBuffer, - VkPipelineBindPoint pipelineBindPoint, - VkPipeline pipeline); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport( - VkCommandBuffer commandBuffer, - uint32_t firstViewport, - uint32_t viewportCount, - const VkViewport* pViewports); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor( - VkCommandBuffer commandBuffer, - uint32_t firstScissor, - uint32_t scissorCount, - const VkRect2D* pScissors); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth( - VkCommandBuffer commandBuffer, - float lineWidth); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias( - VkCommandBuffer commandBuffer, - float depthBiasConstantFactor, - float depthBiasClamp, - float depthBiasSlopeFactor); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants( - VkCommandBuffer commandBuffer, - const float blendConstants[4]); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds( - VkCommandBuffer commandBuffer, - float minDepthBounds, - float maxDepthBounds); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask( - VkCommandBuffer commandBuffer, - VkStencilFaceFlags faceMask, - uint32_t compareMask); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask( - VkCommandBuffer commandBuffer, - VkStencilFaceFlags faceMask, - uint32_t writeMask); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference( - VkCommandBuffer commandBuffer, - VkStencilFaceFlags faceMask, - uint32_t reference); - -VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets( - VkCommandBuffer commandBuffer, - VkPipelineBindPoint pipelineBindPoint, - VkPipelineLayout layout, - uint32_t firstSet, - uint32_t descriptorSetCount, - const VkDescriptorSet* pDescriptorSets, - uint32_t dynamicOffsetCount, - const uint32_t* pDynamicOffsets); - -VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkIndexType indexType); - -VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers( - VkCommandBuffer commandBuffer, - uint32_t firstBinding, - uint32_t bindingCount, - const VkBuffer* pBuffers, - const VkDeviceSize* pOffsets); - -VKAPI_ATTR void VKAPI_CALL vkCmdDraw( - VkCommandBuffer commandBuffer, - uint32_t vertexCount, - uint32_t instanceCount, - uint32_t firstVertex, - uint32_t firstInstance); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed( - VkCommandBuffer commandBuffer, - uint32_t indexCount, - uint32_t instanceCount, - uint32_t firstIndex, - int32_t vertexOffset, - uint32_t firstInstance); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - uint32_t drawCount, - uint32_t stride); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - uint32_t drawCount, - uint32_t stride); - -VKAPI_ATTR void VKAPI_CALL vkCmdDispatch( - VkCommandBuffer commandBuffer, - uint32_t groupCountX, - uint32_t groupCountY, - uint32_t groupCountZ); - -VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer( - VkCommandBuffer commandBuffer, - VkBuffer srcBuffer, - VkBuffer dstBuffer, - uint32_t regionCount, - const VkBufferCopy* pRegions); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage( - VkCommandBuffer commandBuffer, - VkImage srcImage, - VkImageLayout srcImageLayout, - VkImage dstImage, - VkImageLayout dstImageLayout, - uint32_t regionCount, - const VkImageCopy* pRegions); - -VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage( - VkCommandBuffer commandBuffer, - VkImage srcImage, - VkImageLayout srcImageLayout, - VkImage dstImage, - VkImageLayout dstImageLayout, - uint32_t regionCount, - const VkImageBlit* pRegions, - VkFilter filter); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage( - VkCommandBuffer commandBuffer, - VkBuffer srcBuffer, - VkImage dstImage, - VkImageLayout dstImageLayout, - uint32_t regionCount, - const VkBufferImageCopy* pRegions); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer( - VkCommandBuffer commandBuffer, - VkImage srcImage, - VkImageLayout srcImageLayout, - VkBuffer dstBuffer, - uint32_t regionCount, - const VkBufferImageCopy* pRegions); - -VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer( - VkCommandBuffer commandBuffer, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - VkDeviceSize dataSize, - const void* pData); - -VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer( - VkCommandBuffer commandBuffer, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - VkDeviceSize size, - uint32_t data); - -VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage( - VkCommandBuffer commandBuffer, - VkImage image, - VkImageLayout imageLayout, - const VkClearColorValue* pColor, - uint32_t rangeCount, - const VkImageSubresourceRange* pRanges); - -VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage( - VkCommandBuffer commandBuffer, - VkImage image, - VkImageLayout imageLayout, - const VkClearDepthStencilValue* pDepthStencil, - uint32_t rangeCount, - const VkImageSubresourceRange* pRanges); - -VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments( - VkCommandBuffer commandBuffer, - uint32_t attachmentCount, - const VkClearAttachment* pAttachments, - uint32_t rectCount, - const VkClearRect* pRects); - -VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage( - VkCommandBuffer commandBuffer, - VkImage srcImage, - VkImageLayout srcImageLayout, - VkImage dstImage, - VkImageLayout dstImageLayout, - uint32_t regionCount, - const VkImageResolve* pRegions); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent( - VkCommandBuffer commandBuffer, - VkEvent event, - VkPipelineStageFlags stageMask); - -VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent( - VkCommandBuffer commandBuffer, - VkEvent event, - VkPipelineStageFlags stageMask); - -VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents( - VkCommandBuffer commandBuffer, - uint32_t eventCount, - const VkEvent* pEvents, - VkPipelineStageFlags srcStageMask, - VkPipelineStageFlags dstStageMask, - uint32_t memoryBarrierCount, - const VkMemoryBarrier* pMemoryBarriers, - uint32_t bufferMemoryBarrierCount, - const VkBufferMemoryBarrier* pBufferMemoryBarriers, - uint32_t imageMemoryBarrierCount, - const VkImageMemoryBarrier* pImageMemoryBarriers); - -VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier( - VkCommandBuffer commandBuffer, - VkPipelineStageFlags srcStageMask, - VkPipelineStageFlags dstStageMask, - VkDependencyFlags dependencyFlags, - uint32_t memoryBarrierCount, - const VkMemoryBarrier* pMemoryBarriers, - uint32_t bufferMemoryBarrierCount, - const VkBufferMemoryBarrier* pBufferMemoryBarriers, - uint32_t imageMemoryBarrierCount, - const VkImageMemoryBarrier* pImageMemoryBarriers); - -VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - VkQueryControlFlags flags); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query); - -VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t firstQuery, - uint32_t queryCount); - -VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp( - VkCommandBuffer commandBuffer, - VkPipelineStageFlagBits pipelineStage, - VkQueryPool queryPool, - uint32_t query); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t firstQuery, - uint32_t queryCount, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - VkDeviceSize stride, - VkQueryResultFlags flags); - -VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants( - VkCommandBuffer commandBuffer, - VkPipelineLayout layout, - VkShaderStageFlags stageFlags, - uint32_t offset, - uint32_t size, - const void* pValues); - -VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass( - VkCommandBuffer commandBuffer, - const VkRenderPassBeginInfo* pRenderPassBegin, - VkSubpassContents contents); - -VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass( - VkCommandBuffer commandBuffer, - VkSubpassContents contents); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass( - VkCommandBuffer commandBuffer); - -VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( - VkCommandBuffer commandBuffer, - uint32_t commandBufferCount, - const VkCommandBuffer* pCommandBuffers); -#endif - - -#define VK_VERSION_1_1 1 -// Vulkan 1.1 version number -#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 - -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) -#define VK_MAX_DEVICE_GROUP_SIZE 32 -#define VK_LUID_SIZE 8 -#define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) - -typedef enum VkPointClippingBehavior { - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, - VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, - VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, - VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF -} VkPointClippingBehavior; - -typedef enum VkTessellationDomainOrigin { - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0, - VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, - VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF -} VkTessellationDomainOrigin; - -typedef enum VkSamplerYcbcrModelConversion { - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, - VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF -} VkSamplerYcbcrModelConversion; - -typedef enum VkSamplerYcbcrRange { - VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0, - VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, - VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, - VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, - VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF -} VkSamplerYcbcrRange; - -typedef enum VkChromaLocation { - VK_CHROMA_LOCATION_COSITED_EVEN = 0, - VK_CHROMA_LOCATION_MIDPOINT = 1, - VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN, - VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT, - VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF -} VkChromaLocation; - -typedef enum VkDescriptorUpdateTemplateType { - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkDescriptorUpdateTemplateType; - -typedef enum VkSubgroupFeatureFlagBits { - VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, - VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, - VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, - VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, - VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, - VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, - VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, - VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, - VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, - VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSubgroupFeatureFlagBits; -typedef VkFlags VkSubgroupFeatureFlags; - -typedef enum VkPeerMemoryFeatureFlagBits { - VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, - VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002, - VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004, - VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, - VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, - VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, - VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, - VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT, - VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkPeerMemoryFeatureFlagBits; -typedef VkFlags VkPeerMemoryFeatureFlags; - -typedef enum VkMemoryAllocateFlagBits { - VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002, - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004, - VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, - VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, - VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkMemoryAllocateFlagBits; -typedef VkFlags VkMemoryAllocateFlags; -typedef VkFlags VkCommandPoolTrimFlags; -typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; - -typedef enum VkExternalMemoryHandleTypeFlagBits { - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkExternalMemoryHandleTypeFlagBits; -typedef VkFlags VkExternalMemoryHandleTypeFlags; - -typedef enum VkExternalMemoryFeatureFlagBits { - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001, - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002, - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT, - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkExternalMemoryFeatureFlagBits; -typedef VkFlags VkExternalMemoryFeatureFlags; - -typedef enum VkExternalFenceHandleTypeFlagBits { - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, - VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, - VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT, - VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkExternalFenceHandleTypeFlagBits; -typedef VkFlags VkExternalFenceHandleTypeFlags; - -typedef enum VkExternalFenceFeatureFlagBits { - VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001, - VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, - VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, - VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT, - VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkExternalFenceFeatureFlagBits; -typedef VkFlags VkExternalFenceFeatureFlags; - -typedef enum VkFenceImportFlagBits { - VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, - VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT, - VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkFenceImportFlagBits; -typedef VkFlags VkFenceImportFlags; - -typedef enum VkSemaphoreImportFlagBits { - VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, - VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, - VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSemaphoreImportFlagBits; -typedef VkFlags VkSemaphoreImportFlags; - -typedef enum VkExternalSemaphoreHandleTypeFlagBits { - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT, - VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkExternalSemaphoreHandleTypeFlagBits; -typedef VkFlags VkExternalSemaphoreHandleTypeFlags; - -typedef enum VkExternalSemaphoreFeatureFlagBits { - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001, - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, - VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, - VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT, - VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkExternalSemaphoreFeatureFlagBits; -typedef VkFlags VkExternalSemaphoreFeatureFlags; -typedef struct VkPhysicalDeviceSubgroupProperties { - VkStructureType sType; - void* pNext; - uint32_t subgroupSize; - VkShaderStageFlags supportedStages; - VkSubgroupFeatureFlags supportedOperations; - VkBool32 quadOperationsInAllStages; -} VkPhysicalDeviceSubgroupProperties; - -typedef struct VkBindBufferMemoryInfo { - VkStructureType sType; - const void* pNext; - VkBuffer buffer; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; -} VkBindBufferMemoryInfo; - -typedef struct VkBindImageMemoryInfo { - VkStructureType sType; - const void* pNext; - VkImage image; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; -} VkBindImageMemoryInfo; - -typedef struct VkPhysicalDevice16BitStorageFeatures { - VkStructureType sType; - void* pNext; - VkBool32 storageBuffer16BitAccess; - VkBool32 uniformAndStorageBuffer16BitAccess; - VkBool32 storagePushConstant16; - VkBool32 storageInputOutput16; -} VkPhysicalDevice16BitStorageFeatures; - -typedef struct VkMemoryDedicatedRequirements { - VkStructureType sType; - void* pNext; - VkBool32 prefersDedicatedAllocation; - VkBool32 requiresDedicatedAllocation; -} VkMemoryDedicatedRequirements; - -typedef struct VkMemoryDedicatedAllocateInfo { - VkStructureType sType; - const void* pNext; - VkImage image; - VkBuffer buffer; -} VkMemoryDedicatedAllocateInfo; - -typedef struct VkMemoryAllocateFlagsInfo { - VkStructureType sType; - const void* pNext; - VkMemoryAllocateFlags flags; - uint32_t deviceMask; -} VkMemoryAllocateFlagsInfo; - -typedef struct VkDeviceGroupRenderPassBeginInfo { - VkStructureType sType; - const void* pNext; - uint32_t deviceMask; - uint32_t deviceRenderAreaCount; - const VkRect2D* pDeviceRenderAreas; -} VkDeviceGroupRenderPassBeginInfo; - -typedef struct VkDeviceGroupCommandBufferBeginInfo { - VkStructureType sType; - const void* pNext; - uint32_t deviceMask; -} VkDeviceGroupCommandBufferBeginInfo; - -typedef struct VkDeviceGroupSubmitInfo { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreCount; - const uint32_t* pWaitSemaphoreDeviceIndices; - uint32_t commandBufferCount; - const uint32_t* pCommandBufferDeviceMasks; - uint32_t signalSemaphoreCount; - const uint32_t* pSignalSemaphoreDeviceIndices; -} VkDeviceGroupSubmitInfo; - -typedef struct VkDeviceGroupBindSparseInfo { - VkStructureType sType; - const void* pNext; - uint32_t resourceDeviceIndex; - uint32_t memoryDeviceIndex; -} VkDeviceGroupBindSparseInfo; - -typedef struct VkBindBufferMemoryDeviceGroupInfo { - VkStructureType sType; - const void* pNext; - uint32_t deviceIndexCount; - const uint32_t* pDeviceIndices; -} VkBindBufferMemoryDeviceGroupInfo; - -typedef struct VkBindImageMemoryDeviceGroupInfo { - VkStructureType sType; - const void* pNext; - uint32_t deviceIndexCount; - const uint32_t* pDeviceIndices; - uint32_t splitInstanceBindRegionCount; - const VkRect2D* pSplitInstanceBindRegions; -} VkBindImageMemoryDeviceGroupInfo; - -typedef struct VkPhysicalDeviceGroupProperties { - VkStructureType sType; - void* pNext; - uint32_t physicalDeviceCount; - VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE]; - VkBool32 subsetAllocation; -} VkPhysicalDeviceGroupProperties; - -typedef struct VkDeviceGroupDeviceCreateInfo { - VkStructureType sType; - const void* pNext; - uint32_t physicalDeviceCount; - const VkPhysicalDevice* pPhysicalDevices; -} VkDeviceGroupDeviceCreateInfo; - -typedef struct VkBufferMemoryRequirementsInfo2 { - VkStructureType sType; - const void* pNext; - VkBuffer buffer; -} VkBufferMemoryRequirementsInfo2; - -typedef struct VkImageMemoryRequirementsInfo2 { - VkStructureType sType; - const void* pNext; - VkImage image; -} VkImageMemoryRequirementsInfo2; - -typedef struct VkImageSparseMemoryRequirementsInfo2 { - VkStructureType sType; - const void* pNext; - VkImage image; -} VkImageSparseMemoryRequirementsInfo2; - -typedef struct VkMemoryRequirements2 { - VkStructureType sType; - void* pNext; - VkMemoryRequirements memoryRequirements; -} VkMemoryRequirements2; - -typedef struct VkSparseImageMemoryRequirements2 { - VkStructureType sType; - void* pNext; - VkSparseImageMemoryRequirements memoryRequirements; -} VkSparseImageMemoryRequirements2; - -typedef struct VkPhysicalDeviceFeatures2 { - VkStructureType sType; - void* pNext; - VkPhysicalDeviceFeatures features; -} VkPhysicalDeviceFeatures2; - -typedef struct VkPhysicalDeviceProperties2 { - VkStructureType sType; - void* pNext; - VkPhysicalDeviceProperties properties; -} VkPhysicalDeviceProperties2; - -typedef struct VkFormatProperties2 { - VkStructureType sType; - void* pNext; - VkFormatProperties formatProperties; -} VkFormatProperties2; - -typedef struct VkImageFormatProperties2 { - VkStructureType sType; - void* pNext; - VkImageFormatProperties imageFormatProperties; -} VkImageFormatProperties2; - -typedef struct VkPhysicalDeviceImageFormatInfo2 { - VkStructureType sType; - const void* pNext; - VkFormat format; - VkImageType type; - VkImageTiling tiling; - VkImageUsageFlags usage; - VkImageCreateFlags flags; -} VkPhysicalDeviceImageFormatInfo2; - -typedef struct VkQueueFamilyProperties2 { - VkStructureType sType; - void* pNext; - VkQueueFamilyProperties queueFamilyProperties; -} VkQueueFamilyProperties2; - -typedef struct VkPhysicalDeviceMemoryProperties2 { - VkStructureType sType; - void* pNext; - VkPhysicalDeviceMemoryProperties memoryProperties; -} VkPhysicalDeviceMemoryProperties2; - -typedef struct VkSparseImageFormatProperties2 { - VkStructureType sType; - void* pNext; - VkSparseImageFormatProperties properties; -} VkSparseImageFormatProperties2; - -typedef struct VkPhysicalDeviceSparseImageFormatInfo2 { - VkStructureType sType; - const void* pNext; - VkFormat format; - VkImageType type; - VkSampleCountFlagBits samples; - VkImageUsageFlags usage; - VkImageTiling tiling; -} VkPhysicalDeviceSparseImageFormatInfo2; - -typedef struct VkPhysicalDevicePointClippingProperties { - VkStructureType sType; - void* pNext; - VkPointClippingBehavior pointClippingBehavior; -} VkPhysicalDevicePointClippingProperties; - -typedef struct VkInputAttachmentAspectReference { - uint32_t subpass; - uint32_t inputAttachmentIndex; - VkImageAspectFlags aspectMask; -} VkInputAttachmentAspectReference; - -typedef struct VkRenderPassInputAttachmentAspectCreateInfo { - VkStructureType sType; - const void* pNext; - uint32_t aspectReferenceCount; - const VkInputAttachmentAspectReference* pAspectReferences; -} VkRenderPassInputAttachmentAspectCreateInfo; - -typedef struct VkImageViewUsageCreateInfo { - VkStructureType sType; - const void* pNext; - VkImageUsageFlags usage; -} VkImageViewUsageCreateInfo; - -typedef struct VkPipelineTessellationDomainOriginStateCreateInfo { - VkStructureType sType; - const void* pNext; - VkTessellationDomainOrigin domainOrigin; -} VkPipelineTessellationDomainOriginStateCreateInfo; - -typedef struct VkRenderPassMultiviewCreateInfo { - VkStructureType sType; - const void* pNext; - uint32_t subpassCount; - const uint32_t* pViewMasks; - uint32_t dependencyCount; - const int32_t* pViewOffsets; - uint32_t correlationMaskCount; - const uint32_t* pCorrelationMasks; -} VkRenderPassMultiviewCreateInfo; - -typedef struct VkPhysicalDeviceMultiviewFeatures { - VkStructureType sType; - void* pNext; - VkBool32 multiview; - VkBool32 multiviewGeometryShader; - VkBool32 multiviewTessellationShader; -} VkPhysicalDeviceMultiviewFeatures; - -typedef struct VkPhysicalDeviceMultiviewProperties { - VkStructureType sType; - void* pNext; - uint32_t maxMultiviewViewCount; - uint32_t maxMultiviewInstanceIndex; -} VkPhysicalDeviceMultiviewProperties; - -typedef struct VkPhysicalDeviceVariablePointersFeatures { - VkStructureType sType; - void* pNext; - VkBool32 variablePointersStorageBuffer; - VkBool32 variablePointers; -} VkPhysicalDeviceVariablePointersFeatures; - -typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; - -typedef struct VkPhysicalDeviceProtectedMemoryFeatures { - VkStructureType sType; - void* pNext; - VkBool32 protectedMemory; -} VkPhysicalDeviceProtectedMemoryFeatures; - -typedef struct VkPhysicalDeviceProtectedMemoryProperties { - VkStructureType sType; - void* pNext; - VkBool32 protectedNoFault; -} VkPhysicalDeviceProtectedMemoryProperties; - -typedef struct VkDeviceQueueInfo2 { - VkStructureType sType; - const void* pNext; - VkDeviceQueueCreateFlags flags; - uint32_t queueFamilyIndex; - uint32_t queueIndex; -} VkDeviceQueueInfo2; - -typedef struct VkProtectedSubmitInfo { - VkStructureType sType; - const void* pNext; - VkBool32 protectedSubmit; -} VkProtectedSubmitInfo; - -typedef struct VkSamplerYcbcrConversionCreateInfo { - VkStructureType sType; - const void* pNext; - VkFormat format; - VkSamplerYcbcrModelConversion ycbcrModel; - VkSamplerYcbcrRange ycbcrRange; - VkComponentMapping components; - VkChromaLocation xChromaOffset; - VkChromaLocation yChromaOffset; - VkFilter chromaFilter; - VkBool32 forceExplicitReconstruction; -} VkSamplerYcbcrConversionCreateInfo; - -typedef struct VkSamplerYcbcrConversionInfo { - VkStructureType sType; - const void* pNext; - VkSamplerYcbcrConversion conversion; -} VkSamplerYcbcrConversionInfo; - -typedef struct VkBindImagePlaneMemoryInfo { - VkStructureType sType; - const void* pNext; - VkImageAspectFlagBits planeAspect; -} VkBindImagePlaneMemoryInfo; - -typedef struct VkImagePlaneMemoryRequirementsInfo { - VkStructureType sType; - const void* pNext; - VkImageAspectFlagBits planeAspect; -} VkImagePlaneMemoryRequirementsInfo; - -typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures { - VkStructureType sType; - void* pNext; - VkBool32 samplerYcbcrConversion; -} VkPhysicalDeviceSamplerYcbcrConversionFeatures; - -typedef struct VkSamplerYcbcrConversionImageFormatProperties { - VkStructureType sType; - void* pNext; - uint32_t combinedImageSamplerDescriptorCount; -} VkSamplerYcbcrConversionImageFormatProperties; - -typedef struct VkDescriptorUpdateTemplateEntry { - uint32_t dstBinding; - uint32_t dstArrayElement; - uint32_t descriptorCount; - VkDescriptorType descriptorType; - size_t offset; - size_t stride; -} VkDescriptorUpdateTemplateEntry; - -typedef struct VkDescriptorUpdateTemplateCreateInfo { - VkStructureType sType; - const void* pNext; - VkDescriptorUpdateTemplateCreateFlags flags; - uint32_t descriptorUpdateEntryCount; - const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries; - VkDescriptorUpdateTemplateType templateType; - VkDescriptorSetLayout descriptorSetLayout; - VkPipelineBindPoint pipelineBindPoint; - VkPipelineLayout pipelineLayout; - uint32_t set; -} VkDescriptorUpdateTemplateCreateInfo; - -typedef struct VkExternalMemoryProperties { - VkExternalMemoryFeatureFlags externalMemoryFeatures; - VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes; - VkExternalMemoryHandleTypeFlags compatibleHandleTypes; -} VkExternalMemoryProperties; - -typedef struct VkPhysicalDeviceExternalImageFormatInfo { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalImageFormatInfo; - -typedef struct VkExternalImageFormatProperties { - VkStructureType sType; - void* pNext; - VkExternalMemoryProperties externalMemoryProperties; -} VkExternalImageFormatProperties; - -typedef struct VkPhysicalDeviceExternalBufferInfo { - VkStructureType sType; - const void* pNext; - VkBufferCreateFlags flags; - VkBufferUsageFlags usage; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalBufferInfo; - -typedef struct VkExternalBufferProperties { - VkStructureType sType; - void* pNext; - VkExternalMemoryProperties externalMemoryProperties; -} VkExternalBufferProperties; - -typedef struct VkPhysicalDeviceIDProperties { - VkStructureType sType; - void* pNext; - uint8_t deviceUUID[VK_UUID_SIZE]; - uint8_t driverUUID[VK_UUID_SIZE]; - uint8_t deviceLUID[VK_LUID_SIZE]; - uint32_t deviceNodeMask; - VkBool32 deviceLUIDValid; -} VkPhysicalDeviceIDProperties; - -typedef struct VkExternalMemoryImageCreateInfo { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlags handleTypes; -} VkExternalMemoryImageCreateInfo; - -typedef struct VkExternalMemoryBufferCreateInfo { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlags handleTypes; -} VkExternalMemoryBufferCreateInfo; - -typedef struct VkExportMemoryAllocateInfo { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlags handleTypes; -} VkExportMemoryAllocateInfo; - -typedef struct VkPhysicalDeviceExternalFenceInfo { - VkStructureType sType; - const void* pNext; - VkExternalFenceHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalFenceInfo; - -typedef struct VkExternalFenceProperties { - VkStructureType sType; - void* pNext; - VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes; - VkExternalFenceHandleTypeFlags compatibleHandleTypes; - VkExternalFenceFeatureFlags externalFenceFeatures; -} VkExternalFenceProperties; - -typedef struct VkExportFenceCreateInfo { - VkStructureType sType; - const void* pNext; - VkExternalFenceHandleTypeFlags handleTypes; -} VkExportFenceCreateInfo; - -typedef struct VkExportSemaphoreCreateInfo { - VkStructureType sType; - const void* pNext; - VkExternalSemaphoreHandleTypeFlags handleTypes; -} VkExportSemaphoreCreateInfo; - -typedef struct VkPhysicalDeviceExternalSemaphoreInfo { - VkStructureType sType; - const void* pNext; - VkExternalSemaphoreHandleTypeFlagBits handleType; -} VkPhysicalDeviceExternalSemaphoreInfo; - -typedef struct VkExternalSemaphoreProperties { - VkStructureType sType; - void* pNext; - VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes; - VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes; - VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures; -} VkExternalSemaphoreProperties; - -typedef struct VkPhysicalDeviceMaintenance3Properties { - VkStructureType sType; - void* pNext; - uint32_t maxPerSetDescriptors; - VkDeviceSize maxMemoryAllocationSize; -} VkPhysicalDeviceMaintenance3Properties; - -typedef struct VkDescriptorSetLayoutSupport { - VkStructureType sType; - void* pNext; - VkBool32 supported; -} VkDescriptorSetLayoutSupport; - -typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { - VkStructureType sType; - void* pNext; - VkBool32 shaderDrawParameters; -} VkPhysicalDeviceShaderDrawParametersFeatures; - -typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; - -typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); -typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); -typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); -typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); -typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask); -typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); -typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); -typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); -typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); -typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue); -typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); -typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); -typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); -typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion( - uint32_t* pApiVersion); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2( - VkDevice device, - uint32_t bindInfoCount, - const VkBindBufferMemoryInfo* pBindInfos); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2( - VkDevice device, - uint32_t bindInfoCount, - const VkBindImageMemoryInfo* pBindInfos); - -VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures( - VkDevice device, - uint32_t heapIndex, - uint32_t localDeviceIndex, - uint32_t remoteDeviceIndex, - VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask( - VkCommandBuffer commandBuffer, - uint32_t deviceMask); - -VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase( - VkCommandBuffer commandBuffer, - uint32_t baseGroupX, - uint32_t baseGroupY, - uint32_t baseGroupZ, - uint32_t groupCountX, - uint32_t groupCountY, - uint32_t groupCountZ); - -VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups( - VkInstance instance, - uint32_t* pPhysicalDeviceGroupCount, - VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2( - VkDevice device, - const VkImageMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2( - VkDevice device, - const VkBufferMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2( - VkDevice device, - const VkImageSparseMemoryRequirementsInfo2* pInfo, - uint32_t* pSparseMemoryRequirementCount, - VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceFeatures2* pFeatures); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceProperties2* pProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkFormatProperties2* pFormatProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, - VkImageFormatProperties2* pImageFormatProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2( - VkPhysicalDevice physicalDevice, - uint32_t* pQueueFamilyPropertyCount, - VkQueueFamilyProperties2* pQueueFamilyProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceMemoryProperties2* pMemoryProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, - uint32_t* pPropertyCount, - VkSparseImageFormatProperties2* pProperties); - -VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool( - VkDevice device, - VkCommandPool commandPool, - VkCommandPoolTrimFlags flags); - -VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2( - VkDevice device, - const VkDeviceQueueInfo2* pQueueInfo, - VkQueue* pQueue); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion( - VkDevice device, - const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSamplerYcbcrConversion* pYcbcrConversion); - -VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion( - VkDevice device, - VkSamplerYcbcrConversion ycbcrConversion, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate( - VkDevice device, - const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate( - VkDevice device, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate( - VkDevice device, - VkDescriptorSet descriptorSet, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const void* pData); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, - VkExternalBufferProperties* pExternalBufferProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, - VkExternalFenceProperties* pExternalFenceProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, - VkExternalSemaphoreProperties* pExternalSemaphoreProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( - VkDevice device, - const VkDescriptorSetLayoutCreateInfo* pCreateInfo, - VkDescriptorSetLayoutSupport* pSupport); -#endif - - -#define VK_VERSION_1_2 1 -// Vulkan 1.2 version number -#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0 - -#define VK_MAX_DRIVER_NAME_SIZE 256 -#define VK_MAX_DRIVER_INFO_SIZE 256 - -typedef enum VkDriverId { - VK_DRIVER_ID_AMD_PROPRIETARY = 1, - VK_DRIVER_ID_AMD_OPEN_SOURCE = 2, - VK_DRIVER_ID_MESA_RADV = 3, - VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4, - VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5, - VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6, - VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7, - VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8, - VK_DRIVER_ID_ARM_PROPRIETARY = 9, - VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10, - VK_DRIVER_ID_GGP_PROPRIETARY = 11, - VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12, - VK_DRIVER_ID_MESA_LLVMPIPE = 13, - VK_DRIVER_ID_MOLTENVK = 14, - VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY, - VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE, - VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV, - VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY, - VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS, - VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA, - VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY, - VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY, - VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY, - VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER, - VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY, - VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY, - VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF -} VkDriverId; - -typedef enum VkShaderFloatControlsIndependence { - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE, - VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF -} VkShaderFloatControlsIndependence; - -typedef enum VkSamplerReductionMode { - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0, - VK_SAMPLER_REDUCTION_MODE_MIN = 1, - VK_SAMPLER_REDUCTION_MODE_MAX = 2, - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE, - VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN, - VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX, - VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF -} VkSamplerReductionMode; - -typedef enum VkSemaphoreType { - VK_SEMAPHORE_TYPE_BINARY = 0, - VK_SEMAPHORE_TYPE_TIMELINE = 1, - VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY, - VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE, - VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF -} VkSemaphoreType; - -typedef enum VkResolveModeFlagBits { - VK_RESOLVE_MODE_NONE = 0, - VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001, - VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002, - VK_RESOLVE_MODE_MIN_BIT = 0x00000004, - VK_RESOLVE_MODE_MAX_BIT = 0x00000008, - VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE, - VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT, - VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT, - VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT, - VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT, - VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkResolveModeFlagBits; -typedef VkFlags VkResolveModeFlags; - -typedef enum VkDescriptorBindingFlagBits { - VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001, - VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002, - VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004, - VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008, - VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, - VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, - VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT, - VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, - VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkDescriptorBindingFlagBits; -typedef VkFlags VkDescriptorBindingFlags; - -typedef enum VkSemaphoreWaitFlagBits { - VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001, - VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT, - VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF -} VkSemaphoreWaitFlagBits; -typedef VkFlags VkSemaphoreWaitFlags; -typedef struct VkPhysicalDeviceVulkan11Features { - VkStructureType sType; - void* pNext; - VkBool32 storageBuffer16BitAccess; - VkBool32 uniformAndStorageBuffer16BitAccess; - VkBool32 storagePushConstant16; - VkBool32 storageInputOutput16; - VkBool32 multiview; - VkBool32 multiviewGeometryShader; - VkBool32 multiviewTessellationShader; - VkBool32 variablePointersStorageBuffer; - VkBool32 variablePointers; - VkBool32 protectedMemory; - VkBool32 samplerYcbcrConversion; - VkBool32 shaderDrawParameters; -} VkPhysicalDeviceVulkan11Features; - -typedef struct VkPhysicalDeviceVulkan11Properties { - VkStructureType sType; - void* pNext; - uint8_t deviceUUID[VK_UUID_SIZE]; - uint8_t driverUUID[VK_UUID_SIZE]; - uint8_t deviceLUID[VK_LUID_SIZE]; - uint32_t deviceNodeMask; - VkBool32 deviceLUIDValid; - uint32_t subgroupSize; - VkShaderStageFlags subgroupSupportedStages; - VkSubgroupFeatureFlags subgroupSupportedOperations; - VkBool32 subgroupQuadOperationsInAllStages; - VkPointClippingBehavior pointClippingBehavior; - uint32_t maxMultiviewViewCount; - uint32_t maxMultiviewInstanceIndex; - VkBool32 protectedNoFault; - uint32_t maxPerSetDescriptors; - VkDeviceSize maxMemoryAllocationSize; -} VkPhysicalDeviceVulkan11Properties; - -typedef struct VkPhysicalDeviceVulkan12Features { - VkStructureType sType; - void* pNext; - VkBool32 samplerMirrorClampToEdge; - VkBool32 drawIndirectCount; - VkBool32 storageBuffer8BitAccess; - VkBool32 uniformAndStorageBuffer8BitAccess; - VkBool32 storagePushConstant8; - VkBool32 shaderBufferInt64Atomics; - VkBool32 shaderSharedInt64Atomics; - VkBool32 shaderFloat16; - VkBool32 shaderInt8; - VkBool32 descriptorIndexing; - VkBool32 shaderInputAttachmentArrayDynamicIndexing; - VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; - VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; - VkBool32 shaderUniformBufferArrayNonUniformIndexing; - VkBool32 shaderSampledImageArrayNonUniformIndexing; - VkBool32 shaderStorageBufferArrayNonUniformIndexing; - VkBool32 shaderStorageImageArrayNonUniformIndexing; - VkBool32 shaderInputAttachmentArrayNonUniformIndexing; - VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; - VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; - VkBool32 descriptorBindingUniformBufferUpdateAfterBind; - VkBool32 descriptorBindingSampledImageUpdateAfterBind; - VkBool32 descriptorBindingStorageImageUpdateAfterBind; - VkBool32 descriptorBindingStorageBufferUpdateAfterBind; - VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingUpdateUnusedWhilePending; - VkBool32 descriptorBindingPartiallyBound; - VkBool32 descriptorBindingVariableDescriptorCount; - VkBool32 runtimeDescriptorArray; - VkBool32 samplerFilterMinmax; - VkBool32 scalarBlockLayout; - VkBool32 imagelessFramebuffer; - VkBool32 uniformBufferStandardLayout; - VkBool32 shaderSubgroupExtendedTypes; - VkBool32 separateDepthStencilLayouts; - VkBool32 hostQueryReset; - VkBool32 timelineSemaphore; - VkBool32 bufferDeviceAddress; - VkBool32 bufferDeviceAddressCaptureReplay; - VkBool32 bufferDeviceAddressMultiDevice; - VkBool32 vulkanMemoryModel; - VkBool32 vulkanMemoryModelDeviceScope; - VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; - VkBool32 shaderOutputViewportIndex; - VkBool32 shaderOutputLayer; - VkBool32 subgroupBroadcastDynamicId; -} VkPhysicalDeviceVulkan12Features; - -typedef struct VkConformanceVersion { - uint8_t major; - uint8_t minor; - uint8_t subminor; - uint8_t patch; -} VkConformanceVersion; - -typedef struct VkPhysicalDeviceVulkan12Properties { - VkStructureType sType; - void* pNext; - VkDriverId driverID; - char driverName[VK_MAX_DRIVER_NAME_SIZE]; - char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; - VkConformanceVersion conformanceVersion; - VkShaderFloatControlsIndependence denormBehaviorIndependence; - VkShaderFloatControlsIndependence roundingModeIndependence; - VkBool32 shaderSignedZeroInfNanPreserveFloat16; - VkBool32 shaderSignedZeroInfNanPreserveFloat32; - VkBool32 shaderSignedZeroInfNanPreserveFloat64; - VkBool32 shaderDenormPreserveFloat16; - VkBool32 shaderDenormPreserveFloat32; - VkBool32 shaderDenormPreserveFloat64; - VkBool32 shaderDenormFlushToZeroFloat16; - VkBool32 shaderDenormFlushToZeroFloat32; - VkBool32 shaderDenormFlushToZeroFloat64; - VkBool32 shaderRoundingModeRTEFloat16; - VkBool32 shaderRoundingModeRTEFloat32; - VkBool32 shaderRoundingModeRTEFloat64; - VkBool32 shaderRoundingModeRTZFloat16; - VkBool32 shaderRoundingModeRTZFloat32; - VkBool32 shaderRoundingModeRTZFloat64; - uint32_t maxUpdateAfterBindDescriptorsInAllPools; - VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; - VkBool32 shaderSampledImageArrayNonUniformIndexingNative; - VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; - VkBool32 shaderStorageImageArrayNonUniformIndexingNative; - VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; - VkBool32 robustBufferAccessUpdateAfterBind; - VkBool32 quadDivergentImplicitLod; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; - uint32_t maxPerStageUpdateAfterBindResources; - uint32_t maxDescriptorSetUpdateAfterBindSamplers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; - VkResolveModeFlags supportedDepthResolveModes; - VkResolveModeFlags supportedStencilResolveModes; - VkBool32 independentResolveNone; - VkBool32 independentResolve; - VkBool32 filterMinmaxSingleComponentFormats; - VkBool32 filterMinmaxImageComponentMapping; - uint64_t maxTimelineSemaphoreValueDifference; - VkSampleCountFlags framebufferIntegerColorSampleCounts; -} VkPhysicalDeviceVulkan12Properties; - -typedef struct VkImageFormatListCreateInfo { - VkStructureType sType; - const void* pNext; - uint32_t viewFormatCount; - const VkFormat* pViewFormats; -} VkImageFormatListCreateInfo; - -typedef struct VkAttachmentDescription2 { - VkStructureType sType; - const void* pNext; - VkAttachmentDescriptionFlags flags; - VkFormat format; - VkSampleCountFlagBits samples; - VkAttachmentLoadOp loadOp; - VkAttachmentStoreOp storeOp; - VkAttachmentLoadOp stencilLoadOp; - VkAttachmentStoreOp stencilStoreOp; - VkImageLayout initialLayout; - VkImageLayout finalLayout; -} VkAttachmentDescription2; - -typedef struct VkAttachmentReference2 { - VkStructureType sType; - const void* pNext; - uint32_t attachment; - VkImageLayout layout; - VkImageAspectFlags aspectMask; -} VkAttachmentReference2; - -typedef struct VkSubpassDescription2 { - VkStructureType sType; - const void* pNext; - VkSubpassDescriptionFlags flags; - VkPipelineBindPoint pipelineBindPoint; - uint32_t viewMask; - uint32_t inputAttachmentCount; - const VkAttachmentReference2* pInputAttachments; - uint32_t colorAttachmentCount; - const VkAttachmentReference2* pColorAttachments; - const VkAttachmentReference2* pResolveAttachments; - const VkAttachmentReference2* pDepthStencilAttachment; - uint32_t preserveAttachmentCount; - const uint32_t* pPreserveAttachments; -} VkSubpassDescription2; - -typedef struct VkSubpassDependency2 { - VkStructureType sType; - const void* pNext; - uint32_t srcSubpass; - uint32_t dstSubpass; - VkPipelineStageFlags srcStageMask; - VkPipelineStageFlags dstStageMask; - VkAccessFlags srcAccessMask; - VkAccessFlags dstAccessMask; - VkDependencyFlags dependencyFlags; - int32_t viewOffset; -} VkSubpassDependency2; - -typedef struct VkRenderPassCreateInfo2 { - VkStructureType sType; - const void* pNext; - VkRenderPassCreateFlags flags; - uint32_t attachmentCount; - const VkAttachmentDescription2* pAttachments; - uint32_t subpassCount; - const VkSubpassDescription2* pSubpasses; - uint32_t dependencyCount; - const VkSubpassDependency2* pDependencies; - uint32_t correlatedViewMaskCount; - const uint32_t* pCorrelatedViewMasks; -} VkRenderPassCreateInfo2; - -typedef struct VkSubpassBeginInfo { - VkStructureType sType; - const void* pNext; - VkSubpassContents contents; -} VkSubpassBeginInfo; - -typedef struct VkSubpassEndInfo { - VkStructureType sType; - const void* pNext; -} VkSubpassEndInfo; - -typedef struct VkPhysicalDevice8BitStorageFeatures { - VkStructureType sType; - void* pNext; - VkBool32 storageBuffer8BitAccess; - VkBool32 uniformAndStorageBuffer8BitAccess; - VkBool32 storagePushConstant8; -} VkPhysicalDevice8BitStorageFeatures; - -typedef struct VkPhysicalDeviceDriverProperties { - VkStructureType sType; - void* pNext; - VkDriverId driverID; - char driverName[VK_MAX_DRIVER_NAME_SIZE]; - char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; - VkConformanceVersion conformanceVersion; -} VkPhysicalDeviceDriverProperties; - -typedef struct VkPhysicalDeviceShaderAtomicInt64Features { - VkStructureType sType; - void* pNext; - VkBool32 shaderBufferInt64Atomics; - VkBool32 shaderSharedInt64Atomics; -} VkPhysicalDeviceShaderAtomicInt64Features; - -typedef struct VkPhysicalDeviceShaderFloat16Int8Features { - VkStructureType sType; - void* pNext; - VkBool32 shaderFloat16; - VkBool32 shaderInt8; -} VkPhysicalDeviceShaderFloat16Int8Features; - -typedef struct VkPhysicalDeviceFloatControlsProperties { - VkStructureType sType; - void* pNext; - VkShaderFloatControlsIndependence denormBehaviorIndependence; - VkShaderFloatControlsIndependence roundingModeIndependence; - VkBool32 shaderSignedZeroInfNanPreserveFloat16; - VkBool32 shaderSignedZeroInfNanPreserveFloat32; - VkBool32 shaderSignedZeroInfNanPreserveFloat64; - VkBool32 shaderDenormPreserveFloat16; - VkBool32 shaderDenormPreserveFloat32; - VkBool32 shaderDenormPreserveFloat64; - VkBool32 shaderDenormFlushToZeroFloat16; - VkBool32 shaderDenormFlushToZeroFloat32; - VkBool32 shaderDenormFlushToZeroFloat64; - VkBool32 shaderRoundingModeRTEFloat16; - VkBool32 shaderRoundingModeRTEFloat32; - VkBool32 shaderRoundingModeRTEFloat64; - VkBool32 shaderRoundingModeRTZFloat16; - VkBool32 shaderRoundingModeRTZFloat32; - VkBool32 shaderRoundingModeRTZFloat64; -} VkPhysicalDeviceFloatControlsProperties; - -typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo { - VkStructureType sType; - const void* pNext; - uint32_t bindingCount; - const VkDescriptorBindingFlags* pBindingFlags; -} VkDescriptorSetLayoutBindingFlagsCreateInfo; - -typedef struct VkPhysicalDeviceDescriptorIndexingFeatures { - VkStructureType sType; - void* pNext; - VkBool32 shaderInputAttachmentArrayDynamicIndexing; - VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; - VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; - VkBool32 shaderUniformBufferArrayNonUniformIndexing; - VkBool32 shaderSampledImageArrayNonUniformIndexing; - VkBool32 shaderStorageBufferArrayNonUniformIndexing; - VkBool32 shaderStorageImageArrayNonUniformIndexing; - VkBool32 shaderInputAttachmentArrayNonUniformIndexing; - VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; - VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; - VkBool32 descriptorBindingUniformBufferUpdateAfterBind; - VkBool32 descriptorBindingSampledImageUpdateAfterBind; - VkBool32 descriptorBindingStorageImageUpdateAfterBind; - VkBool32 descriptorBindingStorageBufferUpdateAfterBind; - VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; - VkBool32 descriptorBindingUpdateUnusedWhilePending; - VkBool32 descriptorBindingPartiallyBound; - VkBool32 descriptorBindingVariableDescriptorCount; - VkBool32 runtimeDescriptorArray; -} VkPhysicalDeviceDescriptorIndexingFeatures; - -typedef struct VkPhysicalDeviceDescriptorIndexingProperties { - VkStructureType sType; - void* pNext; - uint32_t maxUpdateAfterBindDescriptorsInAllPools; - VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; - VkBool32 shaderSampledImageArrayNonUniformIndexingNative; - VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; - VkBool32 shaderStorageImageArrayNonUniformIndexingNative; - VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; - VkBool32 robustBufferAccessUpdateAfterBind; - VkBool32 quadDivergentImplicitLod; - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; - uint32_t maxPerStageUpdateAfterBindResources; - uint32_t maxDescriptorSetUpdateAfterBindSamplers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; - uint32_t maxDescriptorSetUpdateAfterBindSampledImages; - uint32_t maxDescriptorSetUpdateAfterBindStorageImages; - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; -} VkPhysicalDeviceDescriptorIndexingProperties; - -typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo { - VkStructureType sType; - const void* pNext; - uint32_t descriptorSetCount; - const uint32_t* pDescriptorCounts; -} VkDescriptorSetVariableDescriptorCountAllocateInfo; - -typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport { - VkStructureType sType; - void* pNext; - uint32_t maxVariableDescriptorCount; -} VkDescriptorSetVariableDescriptorCountLayoutSupport; - -typedef struct VkSubpassDescriptionDepthStencilResolve { - VkStructureType sType; - const void* pNext; - VkResolveModeFlagBits depthResolveMode; - VkResolveModeFlagBits stencilResolveMode; - const VkAttachmentReference2* pDepthStencilResolveAttachment; -} VkSubpassDescriptionDepthStencilResolve; - -typedef struct VkPhysicalDeviceDepthStencilResolveProperties { - VkStructureType sType; - void* pNext; - VkResolveModeFlags supportedDepthResolveModes; - VkResolveModeFlags supportedStencilResolveModes; - VkBool32 independentResolveNone; - VkBool32 independentResolve; -} VkPhysicalDeviceDepthStencilResolveProperties; - -typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures { - VkStructureType sType; - void* pNext; - VkBool32 scalarBlockLayout; -} VkPhysicalDeviceScalarBlockLayoutFeatures; - -typedef struct VkImageStencilUsageCreateInfo { - VkStructureType sType; - const void* pNext; - VkImageUsageFlags stencilUsage; -} VkImageStencilUsageCreateInfo; - -typedef struct VkSamplerReductionModeCreateInfo { - VkStructureType sType; - const void* pNext; - VkSamplerReductionMode reductionMode; -} VkSamplerReductionModeCreateInfo; - -typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties { - VkStructureType sType; - void* pNext; - VkBool32 filterMinmaxSingleComponentFormats; - VkBool32 filterMinmaxImageComponentMapping; -} VkPhysicalDeviceSamplerFilterMinmaxProperties; - -typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures { - VkStructureType sType; - void* pNext; - VkBool32 vulkanMemoryModel; - VkBool32 vulkanMemoryModelDeviceScope; - VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; -} VkPhysicalDeviceVulkanMemoryModelFeatures; - -typedef struct VkPhysicalDeviceImagelessFramebufferFeatures { - VkStructureType sType; - void* pNext; - VkBool32 imagelessFramebuffer; -} VkPhysicalDeviceImagelessFramebufferFeatures; - -typedef struct VkFramebufferAttachmentImageInfo { - VkStructureType sType; - const void* pNext; - VkImageCreateFlags flags; - VkImageUsageFlags usage; - uint32_t width; - uint32_t height; - uint32_t layerCount; - uint32_t viewFormatCount; - const VkFormat* pViewFormats; -} VkFramebufferAttachmentImageInfo; - -typedef struct VkFramebufferAttachmentsCreateInfo { - VkStructureType sType; - const void* pNext; - uint32_t attachmentImageInfoCount; - const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos; -} VkFramebufferAttachmentsCreateInfo; - -typedef struct VkRenderPassAttachmentBeginInfo { - VkStructureType sType; - const void* pNext; - uint32_t attachmentCount; - const VkImageView* pAttachments; -} VkRenderPassAttachmentBeginInfo; - -typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures { - VkStructureType sType; - void* pNext; - VkBool32 uniformBufferStandardLayout; -} VkPhysicalDeviceUniformBufferStandardLayoutFeatures; - -typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { - VkStructureType sType; - void* pNext; - VkBool32 shaderSubgroupExtendedTypes; -} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; - -typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures { - VkStructureType sType; - void* pNext; - VkBool32 separateDepthStencilLayouts; -} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures; - -typedef struct VkAttachmentReferenceStencilLayout { - VkStructureType sType; - void* pNext; - VkImageLayout stencilLayout; -} VkAttachmentReferenceStencilLayout; - -typedef struct VkAttachmentDescriptionStencilLayout { - VkStructureType sType; - void* pNext; - VkImageLayout stencilInitialLayout; - VkImageLayout stencilFinalLayout; -} VkAttachmentDescriptionStencilLayout; - -typedef struct VkPhysicalDeviceHostQueryResetFeatures { - VkStructureType sType; - void* pNext; - VkBool32 hostQueryReset; -} VkPhysicalDeviceHostQueryResetFeatures; - -typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures { - VkStructureType sType; - void* pNext; - VkBool32 timelineSemaphore; -} VkPhysicalDeviceTimelineSemaphoreFeatures; - -typedef struct VkPhysicalDeviceTimelineSemaphoreProperties { - VkStructureType sType; - void* pNext; - uint64_t maxTimelineSemaphoreValueDifference; -} VkPhysicalDeviceTimelineSemaphoreProperties; - -typedef struct VkSemaphoreTypeCreateInfo { - VkStructureType sType; - const void* pNext; - VkSemaphoreType semaphoreType; - uint64_t initialValue; -} VkSemaphoreTypeCreateInfo; - -typedef struct VkTimelineSemaphoreSubmitInfo { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreValueCount; - const uint64_t* pWaitSemaphoreValues; - uint32_t signalSemaphoreValueCount; - const uint64_t* pSignalSemaphoreValues; -} VkTimelineSemaphoreSubmitInfo; - -typedef struct VkSemaphoreWaitInfo { - VkStructureType sType; - const void* pNext; - VkSemaphoreWaitFlags flags; - uint32_t semaphoreCount; - const VkSemaphore* pSemaphores; - const uint64_t* pValues; -} VkSemaphoreWaitInfo; - -typedef struct VkSemaphoreSignalInfo { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - uint64_t value; -} VkSemaphoreSignalInfo; - -typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures { - VkStructureType sType; - void* pNext; - VkBool32 bufferDeviceAddress; - VkBool32 bufferDeviceAddressCaptureReplay; - VkBool32 bufferDeviceAddressMultiDevice; -} VkPhysicalDeviceBufferDeviceAddressFeatures; - -typedef struct VkBufferDeviceAddressInfo { - VkStructureType sType; - const void* pNext; - VkBuffer buffer; -} VkBufferDeviceAddressInfo; - -typedef struct VkBufferOpaqueCaptureAddressCreateInfo { - VkStructureType sType; - const void* pNext; - uint64_t opaqueCaptureAddress; -} VkBufferOpaqueCaptureAddressCreateInfo; - -typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo { - VkStructureType sType; - const void* pNext; - uint64_t opaqueCaptureAddress; -} VkMemoryOpaqueCaptureAddressAllocateInfo; - -typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo { - VkStructureType sType; - const void* pNext; - VkDeviceMemory memory; -} VkDeviceMemoryOpaqueCaptureAddressInfo; - -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); -typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); -typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); -typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); -typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo); -typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); -typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); -typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo); -typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); -typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); -typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2( - VkDevice device, - const VkRenderPassCreateInfo2* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkRenderPass* pRenderPass); - -VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2( - VkCommandBuffer commandBuffer, - const VkRenderPassBeginInfo* pRenderPassBegin, - const VkSubpassBeginInfo* pSubpassBeginInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2( - VkCommandBuffer commandBuffer, - const VkSubpassBeginInfo* pSubpassBeginInfo, - const VkSubpassEndInfo* pSubpassEndInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2( - VkCommandBuffer commandBuffer, - const VkSubpassEndInfo* pSubpassEndInfo); - -VKAPI_ATTR void VKAPI_CALL vkResetQueryPool( - VkDevice device, - VkQueryPool queryPool, - uint32_t firstQuery, - uint32_t queryCount); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue( - VkDevice device, - VkSemaphore semaphore, - uint64_t* pValue); - -VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores( - VkDevice device, - const VkSemaphoreWaitInfo* pWaitInfo, - uint64_t timeout); - -VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore( - VkDevice device, - const VkSemaphoreSignalInfo* pSignalInfo); - -VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress( - VkDevice device, - const VkBufferDeviceAddressInfo* pInfo); - -VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress( - VkDevice device, - const VkBufferDeviceAddressInfo* pInfo); - -VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress( - VkDevice device, - const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); -#endif - - -#define VK_KHR_surface 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) -#define VK_KHR_SURFACE_SPEC_VERSION 25 -#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" - -typedef enum VkPresentModeKHR { - VK_PRESENT_MODE_IMMEDIATE_KHR = 0, - VK_PRESENT_MODE_MAILBOX_KHR = 1, - VK_PRESENT_MODE_FIFO_KHR = 2, - VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, - VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, - VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, - VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPresentModeKHR; - -typedef enum VkColorSpaceKHR { - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, - VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, - VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, - VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, - VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, - VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, - VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, - VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, - VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, - VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, - VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, - VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, - VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, - VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, - VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, - VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, - VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, - VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT, - VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkColorSpaceKHR; - -typedef enum VkSurfaceTransformFlagBitsKHR { - VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, - VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, - VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, - VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, - VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, - VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, - VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkSurfaceTransformFlagBitsKHR; - -typedef enum VkCompositeAlphaFlagBitsKHR { - VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, - VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, - VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, - VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, - VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkCompositeAlphaFlagBitsKHR; -typedef VkFlags VkCompositeAlphaFlagsKHR; -typedef VkFlags VkSurfaceTransformFlagsKHR; -typedef struct VkSurfaceCapabilitiesKHR { - uint32_t minImageCount; - uint32_t maxImageCount; - VkExtent2D currentExtent; - VkExtent2D minImageExtent; - VkExtent2D maxImageExtent; - uint32_t maxImageArrayLayers; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkSurfaceTransformFlagBitsKHR currentTransform; - VkCompositeAlphaFlagsKHR supportedCompositeAlpha; - VkImageUsageFlags supportedUsageFlags; -} VkSurfaceCapabilitiesKHR; - -typedef struct VkSurfaceFormatKHR { - VkFormat format; - VkColorSpaceKHR colorSpace; -} VkSurfaceFormatKHR; - -typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( - VkInstance instance, - VkSurfaceKHR surface, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - VkSurfaceKHR surface, - VkBool32* pSupported); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pSurfaceFormatCount, - VkSurfaceFormatKHR* pSurfaceFormats); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pPresentModeCount, - VkPresentModeKHR* pPresentModes); -#endif - - -#define VK_KHR_swapchain 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) -#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 -#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" - -typedef enum VkSwapchainCreateFlagBitsKHR { - VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, - VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, - VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, - VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkSwapchainCreateFlagBitsKHR; -typedef VkFlags VkSwapchainCreateFlagsKHR; - -typedef enum VkDeviceGroupPresentModeFlagBitsKHR { - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, - VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, - VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, - VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, - VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkDeviceGroupPresentModeFlagBitsKHR; -typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; -typedef struct VkSwapchainCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkSwapchainCreateFlagsKHR flags; - VkSurfaceKHR surface; - uint32_t minImageCount; - VkFormat imageFormat; - VkColorSpaceKHR imageColorSpace; - VkExtent2D imageExtent; - uint32_t imageArrayLayers; - VkImageUsageFlags imageUsage; - VkSharingMode imageSharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t* pQueueFamilyIndices; - VkSurfaceTransformFlagBitsKHR preTransform; - VkCompositeAlphaFlagBitsKHR compositeAlpha; - VkPresentModeKHR presentMode; - VkBool32 clipped; - VkSwapchainKHR oldSwapchain; -} VkSwapchainCreateInfoKHR; - -typedef struct VkPresentInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreCount; - const VkSemaphore* pWaitSemaphores; - uint32_t swapchainCount; - const VkSwapchainKHR* pSwapchains; - const uint32_t* pImageIndices; - VkResult* pResults; -} VkPresentInfoKHR; - -typedef struct VkImageSwapchainCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkSwapchainKHR swapchain; -} VkImageSwapchainCreateInfoKHR; - -typedef struct VkBindImageMemorySwapchainInfoKHR { - VkStructureType sType; - const void* pNext; - VkSwapchainKHR swapchain; - uint32_t imageIndex; -} VkBindImageMemorySwapchainInfoKHR; - -typedef struct VkAcquireNextImageInfoKHR { - VkStructureType sType; - const void* pNext; - VkSwapchainKHR swapchain; - uint64_t timeout; - VkSemaphore semaphore; - VkFence fence; - uint32_t deviceMask; -} VkAcquireNextImageInfoKHR; - -typedef struct VkDeviceGroupPresentCapabilitiesKHR { - VkStructureType sType; - const void* pNext; - uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupPresentCapabilitiesKHR; - -typedef struct VkDeviceGroupPresentInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const uint32_t* pDeviceMasks; - VkDeviceGroupPresentModeFlagBitsKHR mode; -} VkDeviceGroupPresentInfoKHR; - -typedef struct VkDeviceGroupSwapchainCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceGroupPresentModeFlagsKHR modes; -} VkDeviceGroupSwapchainCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); -typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); -typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); -typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); -typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( - VkDevice device, - const VkSwapchainCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSwapchainKHR* pSwapchain); - -VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( - VkDevice device, - VkSwapchainKHR swapchain, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( - VkDevice device, - VkSwapchainKHR swapchain, - uint32_t* pSwapchainImageCount, - VkImage* pSwapchainImages); - -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( - VkDevice device, - VkSwapchainKHR swapchain, - uint64_t timeout, - VkSemaphore semaphore, - VkFence fence, - uint32_t* pImageIndex); - -VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( - VkQueue queue, - const VkPresentInfoKHR* pPresentInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( - VkDevice device, - VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( - VkDevice device, - VkSurfaceKHR surface, - VkDeviceGroupPresentModeFlagsKHR* pModes); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - uint32_t* pRectCount, - VkRect2D* pRects); - -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( - VkDevice device, - const VkAcquireNextImageInfoKHR* pAcquireInfo, - uint32_t* pImageIndex); -#endif - - -#define VK_KHR_display 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) -#define VK_KHR_DISPLAY_SPEC_VERSION 23 -#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" -typedef VkFlags VkDisplayModeCreateFlagsKHR; - -typedef enum VkDisplayPlaneAlphaFlagBitsKHR { - VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, - VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, - VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, - VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, - VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkDisplayPlaneAlphaFlagBitsKHR; -typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; -typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; -typedef struct VkDisplayModeParametersKHR { - VkExtent2D visibleRegion; - uint32_t refreshRate; -} VkDisplayModeParametersKHR; - -typedef struct VkDisplayModeCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDisplayModeCreateFlagsKHR flags; - VkDisplayModeParametersKHR parameters; -} VkDisplayModeCreateInfoKHR; - -typedef struct VkDisplayModePropertiesKHR { - VkDisplayModeKHR displayMode; - VkDisplayModeParametersKHR parameters; -} VkDisplayModePropertiesKHR; - -typedef struct VkDisplayPlaneCapabilitiesKHR { - VkDisplayPlaneAlphaFlagsKHR supportedAlpha; - VkOffset2D minSrcPosition; - VkOffset2D maxSrcPosition; - VkExtent2D minSrcExtent; - VkExtent2D maxSrcExtent; - VkOffset2D minDstPosition; - VkOffset2D maxDstPosition; - VkExtent2D minDstExtent; - VkExtent2D maxDstExtent; -} VkDisplayPlaneCapabilitiesKHR; - -typedef struct VkDisplayPlanePropertiesKHR { - VkDisplayKHR currentDisplay; - uint32_t currentStackIndex; -} VkDisplayPlanePropertiesKHR; - -typedef struct VkDisplayPropertiesKHR { - VkDisplayKHR display; - const char* displayName; - VkExtent2D physicalDimensions; - VkExtent2D physicalResolution; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkBool32 planeReorderPossible; - VkBool32 persistentContent; -} VkDisplayPropertiesKHR; - -typedef struct VkDisplaySurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkDisplaySurfaceCreateFlagsKHR flags; - VkDisplayModeKHR displayMode; - uint32_t planeIndex; - uint32_t planeStackIndex; - VkSurfaceTransformFlagBitsKHR transform; - float globalAlpha; - VkDisplayPlaneAlphaFlagBitsKHR alphaMode; - VkExtent2D imageExtent; -} VkDisplaySurfaceCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayPropertiesKHR* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayPlanePropertiesKHR* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( - VkPhysicalDevice physicalDevice, - uint32_t planeIndex, - uint32_t* pDisplayCount, - VkDisplayKHR* pDisplays); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display, - uint32_t* pPropertyCount, - VkDisplayModePropertiesKHR* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display, - const VkDisplayModeCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDisplayModeKHR* pMode); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( - VkPhysicalDevice physicalDevice, - VkDisplayModeKHR mode, - uint32_t planeIndex, - VkDisplayPlaneCapabilitiesKHR* pCapabilities); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( - VkInstance instance, - const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - - -#define VK_KHR_display_swapchain 1 -#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10 -#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" -typedef struct VkDisplayPresentInfoKHR { - VkStructureType sType; - const void* pNext; - VkRect2D srcRect; - VkRect2D dstRect; - VkBool32 persistent; -} VkDisplayPresentInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( - VkDevice device, - uint32_t swapchainCount, - const VkSwapchainCreateInfoKHR* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkSwapchainKHR* pSwapchains); -#endif - - -#define VK_KHR_sampler_mirror_clamp_to_edge 1 -#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3 -#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" - - -#define VK_KHR_multiview 1 -#define VK_KHR_MULTIVIEW_SPEC_VERSION 1 -#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" -typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; - -typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; - -typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; - - - -#define VK_KHR_get_physical_device_properties2 1 -#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2 -#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" -typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; - -typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; - -typedef VkFormatProperties2 VkFormatProperties2KHR; - -typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; - -typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; - -typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; - -typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; - -typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; - -typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; - -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceFeatures2* pFeatures); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceProperties2* pProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkFormatProperties2* pFormatProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, - VkImageFormatProperties2* pImageFormatProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( - VkPhysicalDevice physicalDevice, - uint32_t* pQueueFamilyPropertyCount, - VkQueueFamilyProperties2* pQueueFamilyProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( - VkPhysicalDevice physicalDevice, - VkPhysicalDeviceMemoryProperties2* pMemoryProperties); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, - uint32_t* pPropertyCount, - VkSparseImageFormatProperties2* pProperties); -#endif - - -#define VK_KHR_device_group 1 -#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4 -#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" -typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; - -typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; - -typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; - -typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; - -typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; - -typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; - -typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; - -typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; - -typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; - -typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; - -typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; - -typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); -typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); -typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR( - VkDevice device, - uint32_t heapIndex, - uint32_t localDeviceIndex, - uint32_t remoteDeviceIndex, - VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR( - VkCommandBuffer commandBuffer, - uint32_t deviceMask); - -VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( - VkCommandBuffer commandBuffer, - uint32_t baseGroupX, - uint32_t baseGroupY, - uint32_t baseGroupZ, - uint32_t groupCountX, - uint32_t groupCountY, - uint32_t groupCountZ); -#endif - - -#define VK_KHR_shader_draw_parameters 1 -#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 -#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" - - -#define VK_KHR_maintenance1 1 -#define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 -#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" -typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; - -typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( - VkDevice device, - VkCommandPool commandPool, - VkCommandPoolTrimFlags flags); -#endif - - -#define VK_KHR_device_group_creation 1 -#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 -#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" -#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE -typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; - -typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( - VkInstance instance, - uint32_t* pPhysicalDeviceGroupCount, - VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); -#endif - - -#define VK_KHR_external_memory_capabilities 1 -#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" -#define VK_LUID_SIZE_KHR VK_LUID_SIZE -typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; - -typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; - -typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; - -typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; - -typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; - -typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; - -typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; - -typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; - -typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; - -typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; - -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, - VkExternalBufferProperties* pExternalBufferProperties); -#endif - - -#define VK_KHR_external_memory 1 -#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" -#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL -typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; - -typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; - -typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; - - - -#define VK_KHR_external_memory_fd 1 -#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" -typedef struct VkImportMemoryFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - int fd; -} VkImportMemoryFdInfoKHR; - -typedef struct VkMemoryFdPropertiesKHR { - VkStructureType sType; - void* pNext; - uint32_t memoryTypeBits; -} VkMemoryFdPropertiesKHR; - -typedef struct VkMemoryGetFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceMemory memory; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkMemoryGetFdInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( - VkDevice device, - const VkMemoryGetFdInfoKHR* pGetFdInfo, - int* pFd); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( - VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - int fd, - VkMemoryFdPropertiesKHR* pMemoryFdProperties); -#endif - - -#define VK_KHR_external_semaphore_capabilities 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" -typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; - -typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; - -typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; - -typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; - -typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; - -typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; - -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, - VkExternalSemaphoreProperties* pExternalSemaphoreProperties); -#endif - - -#define VK_KHR_external_semaphore 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" -typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; - -typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; - -typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; - - - -#define VK_KHR_external_semaphore_fd 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" -typedef struct VkImportSemaphoreFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkSemaphoreImportFlags flags; - VkExternalSemaphoreHandleTypeFlagBits handleType; - int fd; -} VkImportSemaphoreFdInfoKHR; - -typedef struct VkSemaphoreGetFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkExternalSemaphoreHandleTypeFlagBits handleType; -} VkSemaphoreGetFdInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( - VkDevice device, - const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( - VkDevice device, - const VkSemaphoreGetFdInfoKHR* pGetFdInfo, - int* pFd); -#endif - - -#define VK_KHR_push_descriptor 1 -#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 -#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" -typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { - VkStructureType sType; - void* pNext; - uint32_t maxPushDescriptors; -} VkPhysicalDevicePushDescriptorPropertiesKHR; - -typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); -typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( - VkCommandBuffer commandBuffer, - VkPipelineBindPoint pipelineBindPoint, - VkPipelineLayout layout, - uint32_t set, - uint32_t descriptorWriteCount, - const VkWriteDescriptorSet* pDescriptorWrites); - -VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( - VkCommandBuffer commandBuffer, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - VkPipelineLayout layout, - uint32_t set, - const void* pData); -#endif - - -#define VK_KHR_shader_float16_int8 1 -#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1 -#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" -typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR; - -typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR; - - - -#define VK_KHR_16bit_storage 1 -#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 -#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" -typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; - - - -#define VK_KHR_incremental_present 1 -#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 -#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" -typedef struct VkRectLayerKHR { - VkOffset2D offset; - VkExtent2D extent; - uint32_t layer; -} VkRectLayerKHR; - -typedef struct VkPresentRegionKHR { - uint32_t rectangleCount; - const VkRectLayerKHR* pRectangles; -} VkPresentRegionKHR; - -typedef struct VkPresentRegionsKHR { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const VkPresentRegionKHR* pRegions; -} VkPresentRegionsKHR; - - - -#define VK_KHR_descriptor_update_template 1 -typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; - -#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 -#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" -typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; - -typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; - -typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; - -typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); -typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( - VkDevice device, - const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( - VkDevice device, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( - VkDevice device, - VkDescriptorSet descriptorSet, - VkDescriptorUpdateTemplate descriptorUpdateTemplate, - const void* pData); -#endif - - -#define VK_KHR_imageless_framebuffer 1 -#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1 -#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer" -typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR; - -typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR; - -typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR; - -typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR; - - - -#define VK_KHR_create_renderpass2 1 -#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 -#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" -typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR; - -typedef VkAttachmentDescription2 VkAttachmentDescription2KHR; - -typedef VkAttachmentReference2 VkAttachmentReference2KHR; - -typedef VkSubpassDescription2 VkSubpassDescription2KHR; - -typedef VkSubpassDependency2 VkSubpassDependency2KHR; - -typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR; - -typedef VkSubpassEndInfo VkSubpassEndInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); -typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); -typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); -typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( - VkDevice device, - const VkRenderPassCreateInfo2* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkRenderPass* pRenderPass); - -VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( - VkCommandBuffer commandBuffer, - const VkRenderPassBeginInfo* pRenderPassBegin, - const VkSubpassBeginInfo* pSubpassBeginInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( - VkCommandBuffer commandBuffer, - const VkSubpassBeginInfo* pSubpassBeginInfo, - const VkSubpassEndInfo* pSubpassEndInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( - VkCommandBuffer commandBuffer, - const VkSubpassEndInfo* pSubpassEndInfo); -#endif - - -#define VK_KHR_shared_presentable_image 1 -#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 -#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" -typedef struct VkSharedPresentSurfaceCapabilitiesKHR { - VkStructureType sType; - void* pNext; - VkImageUsageFlags sharedPresentSupportedUsageFlags; -} VkSharedPresentSurfaceCapabilitiesKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( - VkDevice device, - VkSwapchainKHR swapchain); -#endif - - -#define VK_KHR_external_fence_capabilities 1 -#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" -typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; - -typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; - -typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; - -typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; - -typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; - -typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; - -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, - VkExternalFenceProperties* pExternalFenceProperties); -#endif - - -#define VK_KHR_external_fence 1 -#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" -typedef VkFenceImportFlags VkFenceImportFlagsKHR; - -typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; - -typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; - - - -#define VK_KHR_external_fence_fd 1 -#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" -typedef struct VkImportFenceFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkFence fence; - VkFenceImportFlags flags; - VkExternalFenceHandleTypeFlagBits handleType; - int fd; -} VkImportFenceFdInfoKHR; - -typedef struct VkFenceGetFdInfoKHR { - VkStructureType sType; - const void* pNext; - VkFence fence; - VkExternalFenceHandleTypeFlagBits handleType; -} VkFenceGetFdInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( - VkDevice device, - const VkImportFenceFdInfoKHR* pImportFenceFdInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( - VkDevice device, - const VkFenceGetFdInfoKHR* pGetFdInfo, - int* pFd); -#endif - - -#define VK_KHR_performance_query 1 -#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1 -#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query" - -typedef enum VkPerformanceCounterUnitKHR { - VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0, - VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1, - VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2, - VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3, - VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4, - VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5, - VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6, - VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7, - VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8, - VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9, - VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10, - VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPerformanceCounterUnitKHR; - -typedef enum VkPerformanceCounterScopeKHR { - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0, - VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1, - VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2, - VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, - VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, - VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, - VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPerformanceCounterScopeKHR; - -typedef enum VkPerformanceCounterStorageKHR { - VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0, - VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1, - VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2, - VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, - VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5, - VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPerformanceCounterStorageKHR; - -typedef enum VkPerformanceCounterDescriptionFlagBitsKHR { - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001, - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002, - VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, - VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, - VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPerformanceCounterDescriptionFlagBitsKHR; -typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; - -typedef enum VkAcquireProfilingLockFlagBitsKHR { - VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkAcquireProfilingLockFlagBitsKHR; -typedef VkFlags VkAcquireProfilingLockFlagsKHR; -typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 performanceCounterQueryPools; - VkBool32 performanceCounterMultipleQueryPools; -} VkPhysicalDevicePerformanceQueryFeaturesKHR; - -typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR { - VkStructureType sType; - void* pNext; - VkBool32 allowCommandBufferQueryCopies; -} VkPhysicalDevicePerformanceQueryPropertiesKHR; - -typedef struct VkPerformanceCounterKHR { - VkStructureType sType; - const void* pNext; - VkPerformanceCounterUnitKHR unit; - VkPerformanceCounterScopeKHR scope; - VkPerformanceCounterStorageKHR storage; - uint8_t uuid[VK_UUID_SIZE]; -} VkPerformanceCounterKHR; - -typedef struct VkPerformanceCounterDescriptionKHR { - VkStructureType sType; - const void* pNext; - VkPerformanceCounterDescriptionFlagsKHR flags; - char name[VK_MAX_DESCRIPTION_SIZE]; - char category[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; -} VkPerformanceCounterDescriptionKHR; - -typedef struct VkQueryPoolPerformanceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t queueFamilyIndex; - uint32_t counterIndexCount; - const uint32_t* pCounterIndices; -} VkQueryPoolPerformanceCreateInfoKHR; - -typedef union VkPerformanceCounterResultKHR { - int32_t int32; - int64_t int64; - uint32_t uint32; - uint64_t uint64; - float float32; - double float64; -} VkPerformanceCounterResultKHR; - -typedef struct VkAcquireProfilingLockInfoKHR { - VkStructureType sType; - const void* pNext; - VkAcquireProfilingLockFlagsKHR flags; - uint64_t timeout; -} VkAcquireProfilingLockInfoKHR; - -typedef struct VkPerformanceQuerySubmitInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t counterPassIndex; -} VkPerformanceQuerySubmitInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses); -typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo); -typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - uint32_t* pCounterCount, - VkPerformanceCounterKHR* pCounters, - VkPerformanceCounterDescriptionKHR* pCounterDescriptions); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( - VkPhysicalDevice physicalDevice, - const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, - uint32_t* pNumPasses); - -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR( - VkDevice device, - const VkAcquireProfilingLockInfoKHR* pInfo); - -VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR( - VkDevice device); -#endif - - -#define VK_KHR_maintenance2 1 -#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" -typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; - -typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; - -typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; - -typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; - -typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; - -typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; - -typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; - - - -#define VK_KHR_get_surface_capabilities2 1 -#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 -#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" -typedef struct VkPhysicalDeviceSurfaceInfo2KHR { - VkStructureType sType; - const void* pNext; - VkSurfaceKHR surface; -} VkPhysicalDeviceSurfaceInfo2KHR; - -typedef struct VkSurfaceCapabilities2KHR { - VkStructureType sType; - void* pNext; - VkSurfaceCapabilitiesKHR surfaceCapabilities; -} VkSurfaceCapabilities2KHR; - -typedef struct VkSurfaceFormat2KHR { - VkStructureType sType; - void* pNext; - VkSurfaceFormatKHR surfaceFormat; -} VkSurfaceFormat2KHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - VkSurfaceCapabilities2KHR* pSurfaceCapabilities); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - uint32_t* pSurfaceFormatCount, - VkSurfaceFormat2KHR* pSurfaceFormats); -#endif - - -#define VK_KHR_variable_pointers 1 -#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 -#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" -typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; - -typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR; - - - -#define VK_KHR_get_display_properties2 1 -#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 -#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" -typedef struct VkDisplayProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayPropertiesKHR displayProperties; -} VkDisplayProperties2KHR; - -typedef struct VkDisplayPlaneProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayPlanePropertiesKHR displayPlaneProperties; -} VkDisplayPlaneProperties2KHR; - -typedef struct VkDisplayModeProperties2KHR { - VkStructureType sType; - void* pNext; - VkDisplayModePropertiesKHR displayModeProperties; -} VkDisplayModeProperties2KHR; - -typedef struct VkDisplayPlaneInfo2KHR { - VkStructureType sType; - const void* pNext; - VkDisplayModeKHR mode; - uint32_t planeIndex; -} VkDisplayPlaneInfo2KHR; - -typedef struct VkDisplayPlaneCapabilities2KHR { - VkStructureType sType; - void* pNext; - VkDisplayPlaneCapabilitiesKHR capabilities; -} VkDisplayPlaneCapabilities2KHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayProperties2KHR* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkDisplayPlaneProperties2KHR* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display, - uint32_t* pPropertyCount, - VkDisplayModeProperties2KHR* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( - VkPhysicalDevice physicalDevice, - const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, - VkDisplayPlaneCapabilities2KHR* pCapabilities); -#endif - - -#define VK_KHR_dedicated_allocation 1 -#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 -#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" -typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; - -typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; - - - -#define VK_KHR_storage_buffer_storage_class 1 -#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 -#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" - - -#define VK_KHR_relaxed_block_layout 1 -#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 -#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" - - -#define VK_KHR_get_memory_requirements2 1 -#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 -#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" -typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; - -typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; - -typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; - -typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; - -typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; - -typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( - VkDevice device, - const VkImageMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( - VkDevice device, - const VkBufferMemoryRequirementsInfo2* pInfo, - VkMemoryRequirements2* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( - VkDevice device, - const VkImageSparseMemoryRequirementsInfo2* pInfo, - uint32_t* pSparseMemoryRequirementCount, - VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); -#endif - - -#define VK_KHR_image_format_list 1 -#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 -#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" -typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR; - - - -#define VK_KHR_sampler_ycbcr_conversion 1 -typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; - -#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14 -#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" -typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; - -typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; - -typedef VkChromaLocation VkChromaLocationKHR; - -typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; - -typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; - -typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; - -typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; - -typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; - -typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); -typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( - VkDevice device, - const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSamplerYcbcrConversion* pYcbcrConversion); - -VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( - VkDevice device, - VkSamplerYcbcrConversion ycbcrConversion, - const VkAllocationCallbacks* pAllocator); -#endif - - -#define VK_KHR_bind_memory2 1 -#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 -#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" -typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; - -typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); -typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( - VkDevice device, - uint32_t bindInfoCount, - const VkBindBufferMemoryInfo* pBindInfos); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( - VkDevice device, - uint32_t bindInfoCount, - const VkBindImageMemoryInfo* pBindInfos); -#endif - - -#define VK_KHR_maintenance3 1 -#define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 -#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" -typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; - -typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; - -typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( - VkDevice device, - const VkDescriptorSetLayoutCreateInfo* pCreateInfo, - VkDescriptorSetLayoutSupport* pSupport); -#endif - - -#define VK_KHR_draw_indirect_count 1 -#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 -#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); -#endif - - -#define VK_KHR_shader_subgroup_extended_types 1 -#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1 -#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types" -typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR; - - - -#define VK_KHR_8bit_storage 1 -#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 -#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" -typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR; - - - -#define VK_KHR_shader_atomic_int64 1 -#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 -#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" -typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; - - - -#define VK_KHR_shader_clock 1 -#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1 -#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock" -typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 shaderSubgroupClock; - VkBool32 shaderDeviceClock; -} VkPhysicalDeviceShaderClockFeaturesKHR; - - - -#define VK_KHR_driver_properties 1 -#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 -#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" -#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE -#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE -typedef VkDriverId VkDriverIdKHR; - -typedef VkConformanceVersion VkConformanceVersionKHR; - -typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR; - - - -#define VK_KHR_shader_float_controls 1 -#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4 -#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls" -typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR; - -typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR; - - - -#define VK_KHR_depth_stencil_resolve 1 -#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 -#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve" -typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR; - -typedef VkResolveModeFlags VkResolveModeFlagsKHR; - -typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR; - -typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR; - - - -#define VK_KHR_swapchain_mutable_format 1 -#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 -#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" - - -#define VK_KHR_timeline_semaphore 1 -#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2 -#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore" -typedef VkSemaphoreType VkSemaphoreTypeKHR; - -typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR; - -typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR; - -typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR; - -typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR; - -typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR; - -typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR; - -typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR; - -typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); -typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); -typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR( - VkDevice device, - VkSemaphore semaphore, - uint64_t* pValue); - -VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR( - VkDevice device, - const VkSemaphoreWaitInfo* pWaitInfo, - uint64_t timeout); - -VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR( - VkDevice device, - const VkSemaphoreSignalInfo* pSignalInfo); -#endif - - -#define VK_KHR_vulkan_memory_model 1 -#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3 -#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" -typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; - - - -#define VK_KHR_shader_terminate_invocation 1 -#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1 -#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation" -typedef struct VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 shaderTerminateInvocation; -} VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; - - - -#define VK_KHR_fragment_shading_rate 1 -#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 1 -#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate" - -typedef enum VkFragmentShadingRateCombinerOpKHR { - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0, - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1, - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2, - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3, - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4, - VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF -} VkFragmentShadingRateCombinerOpKHR; -typedef struct VkFragmentShadingRateAttachmentInfoKHR { - VkStructureType sType; - const void* pNext; - const VkAttachmentReference2* pFragmentShadingRateAttachment; - VkExtent2D shadingRateAttachmentTexelSize; -} VkFragmentShadingRateAttachmentInfoKHR; - -typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkExtent2D fragmentSize; - VkFragmentShadingRateCombinerOpKHR combinerOps[2]; -} VkPipelineFragmentShadingRateStateCreateInfoKHR; - -typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 pipelineFragmentShadingRate; - VkBool32 primitiveFragmentShadingRate; - VkBool32 attachmentFragmentShadingRate; -} VkPhysicalDeviceFragmentShadingRateFeaturesKHR; - -typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR { - VkStructureType sType; - void* pNext; - VkExtent2D minFragmentShadingRateAttachmentTexelSize; - VkExtent2D maxFragmentShadingRateAttachmentTexelSize; - uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio; - VkBool32 primitiveFragmentShadingRateWithMultipleViewports; - VkBool32 layeredShadingRateAttachments; - VkBool32 fragmentShadingRateNonTrivialCombinerOps; - VkExtent2D maxFragmentSize; - uint32_t maxFragmentSizeAspectRatio; - uint32_t maxFragmentShadingRateCoverageSamples; - VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples; - VkBool32 fragmentShadingRateWithShaderDepthStencilWrites; - VkBool32 fragmentShadingRateWithSampleMask; - VkBool32 fragmentShadingRateWithShaderSampleMask; - VkBool32 fragmentShadingRateWithConservativeRasterization; - VkBool32 fragmentShadingRateWithFragmentShaderInterlock; - VkBool32 fragmentShadingRateWithCustomSampleLocations; - VkBool32 fragmentShadingRateStrictMultiplyCombiner; -} VkPhysicalDeviceFragmentShadingRatePropertiesKHR; - -typedef struct VkPhysicalDeviceFragmentShadingRateKHR { - VkStructureType sType; - void* pNext; - VkSampleCountFlags sampleCounts; - VkExtent2D fragmentSize; -} VkPhysicalDeviceFragmentShadingRateKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); -typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR( - VkPhysicalDevice physicalDevice, - uint32_t* pFragmentShadingRateCount, - VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR( - VkCommandBuffer commandBuffer, - const VkExtent2D* pFragmentSize, - const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); -#endif - - -#define VK_KHR_spirv_1_4 1 -#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1 -#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4" - - -#define VK_KHR_surface_protected_capabilities 1 -#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1 -#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities" -typedef struct VkSurfaceProtectedCapabilitiesKHR { - VkStructureType sType; - const void* pNext; - VkBool32 supportsProtected; -} VkSurfaceProtectedCapabilitiesKHR; - - - -#define VK_KHR_separate_depth_stencil_layouts 1 -#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1 -#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts" -typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR; - -typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR; - -typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR; - - - -#define VK_KHR_uniform_buffer_standard_layout 1 -#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1 -#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout" -typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR; - - - -#define VK_KHR_buffer_device_address 1 -#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1 -#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address" -typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR; - -typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR; - -typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR; - -typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR; - -typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR; - -typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); -typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); -typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR( - VkDevice device, - const VkBufferDeviceAddressInfo* pInfo); - -VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR( - VkDevice device, - const VkBufferDeviceAddressInfo* pInfo); - -VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR( - VkDevice device, - const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); -#endif - - -#define VK_KHR_deferred_host_operations 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) -#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4 -#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations" -typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation); -typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator); -typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation); -typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation); -typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR( - VkDevice device, - const VkAllocationCallbacks* pAllocator, - VkDeferredOperationKHR* pDeferredOperation); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR( - VkDevice device, - VkDeferredOperationKHR operation, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR( - VkDevice device, - VkDeferredOperationKHR operation); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR( - VkDevice device, - VkDeferredOperationKHR operation); - -VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR( - VkDevice device, - VkDeferredOperationKHR operation); -#endif - - -#define VK_KHR_pipeline_executable_properties 1 -#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1 -#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties" - -typedef enum VkPipelineExecutableStatisticFormatKHR { - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0, - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1, - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2, - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3, - VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF -} VkPipelineExecutableStatisticFormatKHR; -typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 pipelineExecutableInfo; -} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR; - -typedef struct VkPipelineInfoKHR { - VkStructureType sType; - const void* pNext; - VkPipeline pipeline; -} VkPipelineInfoKHR; - -typedef struct VkPipelineExecutablePropertiesKHR { - VkStructureType sType; - void* pNext; - VkShaderStageFlags stages; - char name[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; - uint32_t subgroupSize; -} VkPipelineExecutablePropertiesKHR; - -typedef struct VkPipelineExecutableInfoKHR { - VkStructureType sType; - const void* pNext; - VkPipeline pipeline; - uint32_t executableIndex; -} VkPipelineExecutableInfoKHR; - -typedef union VkPipelineExecutableStatisticValueKHR { - VkBool32 b32; - int64_t i64; - uint64_t u64; - double f64; -} VkPipelineExecutableStatisticValueKHR; - -typedef struct VkPipelineExecutableStatisticKHR { - VkStructureType sType; - void* pNext; - char name[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; - VkPipelineExecutableStatisticFormatKHR format; - VkPipelineExecutableStatisticValueKHR value; -} VkPipelineExecutableStatisticKHR; - -typedef struct VkPipelineExecutableInternalRepresentationKHR { - VkStructureType sType; - void* pNext; - char name[VK_MAX_DESCRIPTION_SIZE]; - char description[VK_MAX_DESCRIPTION_SIZE]; - VkBool32 isText; - size_t dataSize; - void* pData; -} VkPipelineExecutableInternalRepresentationKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics); -typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR( - VkDevice device, - const VkPipelineInfoKHR* pPipelineInfo, - uint32_t* pExecutableCount, - VkPipelineExecutablePropertiesKHR* pProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR( - VkDevice device, - const VkPipelineExecutableInfoKHR* pExecutableInfo, - uint32_t* pStatisticCount, - VkPipelineExecutableStatisticKHR* pStatistics); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR( - VkDevice device, - const VkPipelineExecutableInfoKHR* pExecutableInfo, - uint32_t* pInternalRepresentationCount, - VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations); -#endif - - -#define VK_KHR_pipeline_library 1 -#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1 -#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library" -typedef struct VkPipelineLibraryCreateInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t libraryCount; - const VkPipeline* pLibraries; -} VkPipelineLibraryCreateInfoKHR; - - - -#define VK_KHR_shader_non_semantic_info 1 -#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1 -#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info" - - -#define VK_KHR_copy_commands2 1 -#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1 -#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" -typedef struct VkBufferCopy2KHR { - VkStructureType sType; - const void* pNext; - VkDeviceSize srcOffset; - VkDeviceSize dstOffset; - VkDeviceSize size; -} VkBufferCopy2KHR; - -typedef struct VkCopyBufferInfo2KHR { - VkStructureType sType; - const void* pNext; - VkBuffer srcBuffer; - VkBuffer dstBuffer; - uint32_t regionCount; - const VkBufferCopy2KHR* pRegions; -} VkCopyBufferInfo2KHR; - -typedef struct VkImageCopy2KHR { - VkStructureType sType; - const void* pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageCopy2KHR; - -typedef struct VkCopyImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageCopy2KHR* pRegions; -} VkCopyImageInfo2KHR; - -typedef struct VkBufferImageCopy2KHR { - VkStructureType sType; - const void* pNext; - VkDeviceSize bufferOffset; - uint32_t bufferRowLength; - uint32_t bufferImageHeight; - VkImageSubresourceLayers imageSubresource; - VkOffset3D imageOffset; - VkExtent3D imageExtent; -} VkBufferImageCopy2KHR; - -typedef struct VkCopyBufferToImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkBuffer srcBuffer; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkBufferImageCopy2KHR* pRegions; -} VkCopyBufferToImageInfo2KHR; - -typedef struct VkCopyImageToBufferInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkBuffer dstBuffer; - uint32_t regionCount; - const VkBufferImageCopy2KHR* pRegions; -} VkCopyImageToBufferInfo2KHR; - -typedef struct VkImageBlit2KHR { - VkStructureType sType; - const void* pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffsets[2]; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffsets[2]; -} VkImageBlit2KHR; - -typedef struct VkBlitImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageBlit2KHR* pRegions; - VkFilter filter; -} VkBlitImageInfo2KHR; - -typedef struct VkImageResolve2KHR { - VkStructureType sType; - const void* pNext; - VkImageSubresourceLayers srcSubresource; - VkOffset3D srcOffset; - VkImageSubresourceLayers dstSubresource; - VkOffset3D dstOffset; - VkExtent3D extent; -} VkImageResolve2KHR; - -typedef struct VkResolveImageInfo2KHR { - VkStructureType sType; - const void* pNext; - VkImage srcImage; - VkImageLayout srcImageLayout; - VkImage dstImage; - VkImageLayout dstImageLayout; - uint32_t regionCount; - const VkImageResolve2KHR* pRegions; -} VkResolveImageInfo2KHR; - -typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); -typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo); -typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR( - VkCommandBuffer commandBuffer, - const VkCopyBufferInfo2KHR* pCopyBufferInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR( - VkCommandBuffer commandBuffer, - const VkCopyImageInfo2KHR* pCopyImageInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR( - VkCommandBuffer commandBuffer, - const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR( - VkCommandBuffer commandBuffer, - const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR( - VkCommandBuffer commandBuffer, - const VkBlitImageInfo2KHR* pBlitImageInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR( - VkCommandBuffer commandBuffer, - const VkResolveImageInfo2KHR* pResolveImageInfo); -#endif - - -#define VK_EXT_debug_report 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) -#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 -#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" - -typedef enum VkDebugReportObjectTypeEXT { - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, - VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, - VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2, - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3, - VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4, - VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5, - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6, - VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7, - VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8, - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9, - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10, - VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11, - VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12, - VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13, - VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14, - VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15, - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16, - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17, - VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18, - VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19, - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20, - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21, - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22, - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23, - VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24, - VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25, - VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26, - VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27, - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, - VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000, - VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, - VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, - VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugReportObjectTypeEXT; - -typedef enum VkDebugReportFlagBitsEXT { - VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, - VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, - VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, - VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, - VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, - VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugReportFlagBitsEXT; -typedef VkFlags VkDebugReportFlagsEXT; -typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objectType, - uint64_t object, - size_t location, - int32_t messageCode, - const char* pLayerPrefix, - const char* pMessage, - void* pUserData); - -typedef struct VkDebugReportCallbackCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugReportFlagsEXT flags; - PFN_vkDebugReportCallbackEXT pfnCallback; - void* pUserData; -} VkDebugReportCallbackCreateInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); -typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( - VkInstance instance, - const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDebugReportCallbackEXT* pCallback); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( - VkInstance instance, - VkDebugReportCallbackEXT callback, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( - VkInstance instance, - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objectType, - uint64_t object, - size_t location, - int32_t messageCode, - const char* pLayerPrefix, - const char* pMessage); -#endif - - -#define VK_NV_glsl_shader 1 -#define VK_NV_GLSL_SHADER_SPEC_VERSION 1 -#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" - - -#define VK_EXT_depth_range_unrestricted 1 -#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 -#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" - - -#define VK_IMG_filter_cubic 1 -#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 -#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" - - -#define VK_AMD_rasterization_order 1 -#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 -#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" - -typedef enum VkRasterizationOrderAMD { - VK_RASTERIZATION_ORDER_STRICT_AMD = 0, - VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, - VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF -} VkRasterizationOrderAMD; -typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { - VkStructureType sType; - const void* pNext; - VkRasterizationOrderAMD rasterizationOrder; -} VkPipelineRasterizationStateRasterizationOrderAMD; - - - -#define VK_AMD_shader_trinary_minmax 1 -#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 -#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" - - -#define VK_AMD_shader_explicit_vertex_parameter 1 -#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 -#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" - - -#define VK_EXT_debug_marker 1 -#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 -#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" -typedef struct VkDebugMarkerObjectNameInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugReportObjectTypeEXT objectType; - uint64_t object; - const char* pObjectName; -} VkDebugMarkerObjectNameInfoEXT; - -typedef struct VkDebugMarkerObjectTagInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugReportObjectTypeEXT objectType; - uint64_t object; - uint64_t tagName; - size_t tagSize; - const void* pTag; -} VkDebugMarkerObjectTagInfoEXT; - -typedef struct VkDebugMarkerMarkerInfoEXT { - VkStructureType sType; - const void* pNext; - const char* pMarkerName; - float color[4]; -} VkDebugMarkerMarkerInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); -typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); -typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( - VkDevice device, - const VkDebugMarkerObjectTagInfoEXT* pTagInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( - VkDevice device, - const VkDebugMarkerObjectNameInfoEXT* pNameInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( - VkCommandBuffer commandBuffer, - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( - VkCommandBuffer commandBuffer); - -VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( - VkCommandBuffer commandBuffer, - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); -#endif - - -#define VK_AMD_gcn_shader 1 -#define VK_AMD_GCN_SHADER_SPEC_VERSION 1 -#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" - - -#define VK_NV_dedicated_allocation 1 -#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 -#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" -typedef struct VkDedicatedAllocationImageCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationImageCreateInfoNV; - -typedef struct VkDedicatedAllocationBufferCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 dedicatedAllocation; -} VkDedicatedAllocationBufferCreateInfoNV; - -typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { - VkStructureType sType; - const void* pNext; - VkImage image; - VkBuffer buffer; -} VkDedicatedAllocationMemoryAllocateInfoNV; - - - -#define VK_EXT_transform_feedback 1 -#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 -#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" -typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; -typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 transformFeedback; - VkBool32 geometryStreams; -} VkPhysicalDeviceTransformFeedbackFeaturesEXT; - -typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t maxTransformFeedbackStreams; - uint32_t maxTransformFeedbackBuffers; - VkDeviceSize maxTransformFeedbackBufferSize; - uint32_t maxTransformFeedbackStreamDataSize; - uint32_t maxTransformFeedbackBufferDataSize; - uint32_t maxTransformFeedbackBufferDataStride; - VkBool32 transformFeedbackQueries; - VkBool32 transformFeedbackStreamsLinesTriangles; - VkBool32 transformFeedbackRasterizationStreamSelect; - VkBool32 transformFeedbackDraw; -} VkPhysicalDeviceTransformFeedbackPropertiesEXT; - -typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineRasterizationStateStreamCreateFlagsEXT flags; - uint32_t rasterizationStream; -} VkPipelineRasterizationStateStreamCreateInfoEXT; - -typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); -typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); -typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); -typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); -typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( - VkCommandBuffer commandBuffer, - uint32_t firstBinding, - uint32_t bindingCount, - const VkBuffer* pBuffers, - const VkDeviceSize* pOffsets, - const VkDeviceSize* pSizes); - -VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( - VkCommandBuffer commandBuffer, - uint32_t firstCounterBuffer, - uint32_t counterBufferCount, - const VkBuffer* pCounterBuffers, - const VkDeviceSize* pCounterBufferOffsets); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( - VkCommandBuffer commandBuffer, - uint32_t firstCounterBuffer, - uint32_t counterBufferCount, - const VkBuffer* pCounterBuffers, - const VkDeviceSize* pCounterBufferOffsets); - -VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - VkQueryControlFlags flags, - uint32_t index); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( - VkCommandBuffer commandBuffer, - VkQueryPool queryPool, - uint32_t query, - uint32_t index); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( - VkCommandBuffer commandBuffer, - uint32_t instanceCount, - uint32_t firstInstance, - VkBuffer counterBuffer, - VkDeviceSize counterBufferOffset, - uint32_t counterOffset, - uint32_t vertexStride); -#endif - - -#define VK_NVX_image_view_handle 1 -#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2 -#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" -typedef struct VkImageViewHandleInfoNVX { - VkStructureType sType; - const void* pNext; - VkImageView imageView; - VkDescriptorType descriptorType; - VkSampler sampler; -} VkImageViewHandleInfoNVX; - -typedef struct VkImageViewAddressPropertiesNVX { - VkStructureType sType; - void* pNext; - VkDeviceAddress deviceAddress; - VkDeviceSize size; -} VkImageViewAddressPropertiesNVX; - -typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( - VkDevice device, - const VkImageViewHandleInfoNVX* pInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX( - VkDevice device, - VkImageView imageView, - VkImageViewAddressPropertiesNVX* pProperties); -#endif - - -#define VK_AMD_draw_indirect_count 1 -#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2 -#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); -#endif - - -#define VK_AMD_negative_viewport_height 1 -#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 -#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" - - -#define VK_AMD_gpu_shader_half_float 1 -#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2 -#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" - - -#define VK_AMD_shader_ballot 1 -#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 -#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" - - -#define VK_AMD_texture_gather_bias_lod 1 -#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 -#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" -typedef struct VkTextureLODGatherFormatPropertiesAMD { - VkStructureType sType; - void* pNext; - VkBool32 supportsTextureGatherLODBiasAMD; -} VkTextureLODGatherFormatPropertiesAMD; - - - -#define VK_AMD_shader_info 1 -#define VK_AMD_SHADER_INFO_SPEC_VERSION 1 -#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" - -typedef enum VkShaderInfoTypeAMD { - VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, - VK_SHADER_INFO_TYPE_BINARY_AMD = 1, - VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, - VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF -} VkShaderInfoTypeAMD; -typedef struct VkShaderResourceUsageAMD { - uint32_t numUsedVgprs; - uint32_t numUsedSgprs; - uint32_t ldsSizePerLocalWorkGroup; - size_t ldsUsageSizeInBytes; - size_t scratchMemUsageInBytes; -} VkShaderResourceUsageAMD; - -typedef struct VkShaderStatisticsInfoAMD { - VkShaderStageFlags shaderStageMask; - VkShaderResourceUsageAMD resourceUsage; - uint32_t numPhysicalVgprs; - uint32_t numPhysicalSgprs; - uint32_t numAvailableVgprs; - uint32_t numAvailableSgprs; - uint32_t computeWorkGroupSize[3]; -} VkShaderStatisticsInfoAMD; - -typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( - VkDevice device, - VkPipeline pipeline, - VkShaderStageFlagBits shaderStage, - VkShaderInfoTypeAMD infoType, - size_t* pInfoSize, - void* pInfo); -#endif - - -#define VK_AMD_shader_image_load_store_lod 1 -#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 -#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" - - -#define VK_NV_corner_sampled_image 1 -#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 -#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" -typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 cornerSampledImage; -} VkPhysicalDeviceCornerSampledImageFeaturesNV; - - - -#define VK_IMG_format_pvrtc 1 -#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 -#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" - - -#define VK_NV_external_memory_capabilities 1 -#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 -#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" - -typedef enum VkExternalMemoryHandleTypeFlagBitsNV { - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, - VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkExternalMemoryHandleTypeFlagBitsNV; -typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; - -typedef enum VkExternalMemoryFeatureFlagBitsNV { - VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, - VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, - VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, - VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkExternalMemoryFeatureFlagBitsNV; -typedef VkFlags VkExternalMemoryFeatureFlagsNV; -typedef struct VkExternalImageFormatPropertiesNV { - VkImageFormatProperties imageFormatProperties; - VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; - VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes; - VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; -} VkExternalImageFormatPropertiesNV; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( - VkPhysicalDevice physicalDevice, - VkFormat format, - VkImageType type, - VkImageTiling tiling, - VkImageUsageFlags usage, - VkImageCreateFlags flags, - VkExternalMemoryHandleTypeFlagsNV externalHandleType, - VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); -#endif - - -#define VK_NV_external_memory 1 -#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 -#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" -typedef struct VkExternalMemoryImageCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsNV handleTypes; -} VkExternalMemoryImageCreateInfoNV; - -typedef struct VkExportMemoryAllocateInfoNV { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsNV handleTypes; -} VkExportMemoryAllocateInfoNV; - - - -#define VK_EXT_validation_flags 1 -#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2 -#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" - -typedef enum VkValidationCheckEXT { - VK_VALIDATION_CHECK_ALL_EXT = 0, - VK_VALIDATION_CHECK_SHADERS_EXT = 1, - VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF -} VkValidationCheckEXT; -typedef struct VkValidationFlagsEXT { - VkStructureType sType; - const void* pNext; - uint32_t disabledValidationCheckCount; - const VkValidationCheckEXT* pDisabledValidationChecks; -} VkValidationFlagsEXT; - - - -#define VK_EXT_shader_subgroup_ballot 1 -#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 -#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" - - -#define VK_EXT_shader_subgroup_vote 1 -#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 -#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" - - -#define VK_EXT_texture_compression_astc_hdr 1 -#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1 -#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr" -typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 textureCompressionASTC_HDR; -} VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; - - - -#define VK_EXT_astc_decode_mode 1 -#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 -#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" -typedef struct VkImageViewASTCDecodeModeEXT { - VkStructureType sType; - const void* pNext; - VkFormat decodeMode; -} VkImageViewASTCDecodeModeEXT; - -typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 decodeModeSharedExponent; -} VkPhysicalDeviceASTCDecodeFeaturesEXT; - - - -#define VK_EXT_conditional_rendering 1 -#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2 -#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" - -typedef enum VkConditionalRenderingFlagBitsEXT { - VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, - VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkConditionalRenderingFlagBitsEXT; -typedef VkFlags VkConditionalRenderingFlagsEXT; -typedef struct VkConditionalRenderingBeginInfoEXT { - VkStructureType sType; - const void* pNext; - VkBuffer buffer; - VkDeviceSize offset; - VkConditionalRenderingFlagsEXT flags; -} VkConditionalRenderingBeginInfoEXT; - -typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 conditionalRendering; - VkBool32 inheritedConditionalRendering; -} VkPhysicalDeviceConditionalRenderingFeaturesEXT; - -typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { - VkStructureType sType; - const void* pNext; - VkBool32 conditionalRenderingEnable; -} VkCommandBufferInheritanceConditionalRenderingInfoEXT; - -typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); -typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( - VkCommandBuffer commandBuffer, - const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( - VkCommandBuffer commandBuffer); -#endif - - -#define VK_NV_clip_space_w_scaling 1 -#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 -#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" -typedef struct VkViewportWScalingNV { - float xcoeff; - float ycoeff; -} VkViewportWScalingNV; - -typedef struct VkPipelineViewportWScalingStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 viewportWScalingEnable; - uint32_t viewportCount; - const VkViewportWScalingNV* pViewportWScalings; -} VkPipelineViewportWScalingStateCreateInfoNV; - -typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( - VkCommandBuffer commandBuffer, - uint32_t firstViewport, - uint32_t viewportCount, - const VkViewportWScalingNV* pViewportWScalings); -#endif - - -#define VK_EXT_direct_mode_display 1 -#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 -#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" -typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display); -#endif - - -#define VK_EXT_display_surface_counter 1 -#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 -#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" - -typedef enum VkSurfaceCounterFlagBitsEXT { - VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001, - VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT, - VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkSurfaceCounterFlagBitsEXT; -typedef VkFlags VkSurfaceCounterFlagsEXT; -typedef struct VkSurfaceCapabilities2EXT { - VkStructureType sType; - void* pNext; - uint32_t minImageCount; - uint32_t maxImageCount; - VkExtent2D currentExtent; - VkExtent2D minImageExtent; - VkExtent2D maxImageExtent; - uint32_t maxImageArrayLayers; - VkSurfaceTransformFlagsKHR supportedTransforms; - VkSurfaceTransformFlagBitsKHR currentTransform; - VkCompositeAlphaFlagsKHR supportedCompositeAlpha; - VkImageUsageFlags supportedUsageFlags; - VkSurfaceCounterFlagsEXT supportedSurfaceCounters; -} VkSurfaceCapabilities2EXT; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - VkSurfaceCapabilities2EXT* pSurfaceCapabilities); -#endif - - -#define VK_EXT_display_control 1 -#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 -#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" - -typedef enum VkDisplayPowerStateEXT { - VK_DISPLAY_POWER_STATE_OFF_EXT = 0, - VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, - VK_DISPLAY_POWER_STATE_ON_EXT = 2, - VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDisplayPowerStateEXT; - -typedef enum VkDeviceEventTypeEXT { - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, - VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDeviceEventTypeEXT; - -typedef enum VkDisplayEventTypeEXT { - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, - VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDisplayEventTypeEXT; -typedef struct VkDisplayPowerInfoEXT { - VkStructureType sType; - const void* pNext; - VkDisplayPowerStateEXT powerState; -} VkDisplayPowerInfoEXT; - -typedef struct VkDeviceEventInfoEXT { - VkStructureType sType; - const void* pNext; - VkDeviceEventTypeEXT deviceEvent; -} VkDeviceEventInfoEXT; - -typedef struct VkDisplayEventInfoEXT { - VkStructureType sType; - const void* pNext; - VkDisplayEventTypeEXT displayEvent; -} VkDisplayEventInfoEXT; - -typedef struct VkSwapchainCounterCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkSurfaceCounterFlagsEXT surfaceCounters; -} VkSwapchainCounterCreateInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); -typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); -typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); -typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( - VkDevice device, - VkDisplayKHR display, - const VkDisplayPowerInfoEXT* pDisplayPowerInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( - VkDevice device, - const VkDeviceEventInfoEXT* pDeviceEventInfo, - const VkAllocationCallbacks* pAllocator, - VkFence* pFence); - -VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( - VkDevice device, - VkDisplayKHR display, - const VkDisplayEventInfoEXT* pDisplayEventInfo, - const VkAllocationCallbacks* pAllocator, - VkFence* pFence); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( - VkDevice device, - VkSwapchainKHR swapchain, - VkSurfaceCounterFlagBitsEXT counter, - uint64_t* pCounterValue); -#endif - - -#define VK_GOOGLE_display_timing 1 -#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 -#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" -typedef struct VkRefreshCycleDurationGOOGLE { - uint64_t refreshDuration; -} VkRefreshCycleDurationGOOGLE; - -typedef struct VkPastPresentationTimingGOOGLE { - uint32_t presentID; - uint64_t desiredPresentTime; - uint64_t actualPresentTime; - uint64_t earliestPresentTime; - uint64_t presentMargin; -} VkPastPresentationTimingGOOGLE; - -typedef struct VkPresentTimeGOOGLE { - uint32_t presentID; - uint64_t desiredPresentTime; -} VkPresentTimeGOOGLE; - -typedef struct VkPresentTimesInfoGOOGLE { - VkStructureType sType; - const void* pNext; - uint32_t swapchainCount; - const VkPresentTimeGOOGLE* pTimes; -} VkPresentTimesInfoGOOGLE; - -typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); -typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( - VkDevice device, - VkSwapchainKHR swapchain, - VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( - VkDevice device, - VkSwapchainKHR swapchain, - uint32_t* pPresentationTimingCount, - VkPastPresentationTimingGOOGLE* pPresentationTimings); -#endif - - -#define VK_NV_sample_mask_override_coverage 1 -#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 -#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" - - -#define VK_NV_geometry_shader_passthrough 1 -#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 -#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" - - -#define VK_NV_viewport_array2 1 -#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 -#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" - - -#define VK_NVX_multiview_per_view_attributes 1 -#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 -#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" -typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { - VkStructureType sType; - void* pNext; - VkBool32 perViewPositionAllComponents; -} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; - - - -#define VK_NV_viewport_swizzle 1 -#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 -#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" - -typedef enum VkViewportCoordinateSwizzleNV { - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2, - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3, - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4, - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5, - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6, - VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7, - VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF -} VkViewportCoordinateSwizzleNV; -typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; -typedef struct VkViewportSwizzleNV { - VkViewportCoordinateSwizzleNV x; - VkViewportCoordinateSwizzleNV y; - VkViewportCoordinateSwizzleNV z; - VkViewportCoordinateSwizzleNV w; -} VkViewportSwizzleNV; - -typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineViewportSwizzleStateCreateFlagsNV flags; - uint32_t viewportCount; - const VkViewportSwizzleNV* pViewportSwizzles; -} VkPipelineViewportSwizzleStateCreateInfoNV; - - - -#define VK_EXT_discard_rectangles 1 -#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 -#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" - -typedef enum VkDiscardRectangleModeEXT { - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, - VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, - VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDiscardRectangleModeEXT; -typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; -typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t maxDiscardRectangles; -} VkPhysicalDeviceDiscardRectanglePropertiesEXT; - -typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineDiscardRectangleStateCreateFlagsEXT flags; - VkDiscardRectangleModeEXT discardRectangleMode; - uint32_t discardRectangleCount; - const VkRect2D* pDiscardRectangles; -} VkPipelineDiscardRectangleStateCreateInfoEXT; - -typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( - VkCommandBuffer commandBuffer, - uint32_t firstDiscardRectangle, - uint32_t discardRectangleCount, - const VkRect2D* pDiscardRectangles); -#endif - - -#define VK_EXT_conservative_rasterization 1 -#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 -#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" - -typedef enum VkConservativeRasterizationModeEXT { - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, - VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, - VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, - VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkConservativeRasterizationModeEXT; -typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; -typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { - VkStructureType sType; - void* pNext; - float primitiveOverestimationSize; - float maxExtraPrimitiveOverestimationSize; - float extraPrimitiveOverestimationSizeGranularity; - VkBool32 primitiveUnderestimation; - VkBool32 conservativePointAndLineRasterization; - VkBool32 degenerateTrianglesRasterized; - VkBool32 degenerateLinesRasterized; - VkBool32 fullyCoveredFragmentShaderInputVariable; - VkBool32 conservativeRasterizationPostDepthCoverage; -} VkPhysicalDeviceConservativeRasterizationPropertiesEXT; - -typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; - VkConservativeRasterizationModeEXT conservativeRasterizationMode; - float extraPrimitiveOverestimationSize; -} VkPipelineRasterizationConservativeStateCreateInfoEXT; - - - -#define VK_EXT_depth_clip_enable 1 -#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1 -#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable" -typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; -typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 depthClipEnable; -} VkPhysicalDeviceDepthClipEnableFeaturesEXT; - -typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; - VkBool32 depthClipEnable; -} VkPipelineRasterizationDepthClipStateCreateInfoEXT; - - - -#define VK_EXT_swapchain_colorspace 1 -#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4 -#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" - - -#define VK_EXT_hdr_metadata 1 -#define VK_EXT_HDR_METADATA_SPEC_VERSION 2 -#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" -typedef struct VkXYColorEXT { - float x; - float y; -} VkXYColorEXT; - -typedef struct VkHdrMetadataEXT { - VkStructureType sType; - const void* pNext; - VkXYColorEXT displayPrimaryRed; - VkXYColorEXT displayPrimaryGreen; - VkXYColorEXT displayPrimaryBlue; - VkXYColorEXT whitePoint; - float maxLuminance; - float minLuminance; - float maxContentLightLevel; - float maxFrameAverageLightLevel; -} VkHdrMetadataEXT; - -typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( - VkDevice device, - uint32_t swapchainCount, - const VkSwapchainKHR* pSwapchains, - const VkHdrMetadataEXT* pMetadata); -#endif - - -#define VK_EXT_external_memory_dma_buf 1 -#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 -#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" - - -#define VK_EXT_queue_family_foreign 1 -#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 -#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" -#define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2) - - -#define VK_EXT_debug_utils 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) -#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2 -#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" -typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; - -typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, - VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugUtilsMessageSeverityFlagBitsEXT; - -typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, - VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDebugUtilsMessageTypeFlagBitsEXT; -typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; -typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; -typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; -typedef struct VkDebugUtilsLabelEXT { - VkStructureType sType; - const void* pNext; - const char* pLabelName; - float color[4]; -} VkDebugUtilsLabelEXT; - -typedef struct VkDebugUtilsObjectNameInfoEXT { - VkStructureType sType; - const void* pNext; - VkObjectType objectType; - uint64_t objectHandle; - const char* pObjectName; -} VkDebugUtilsObjectNameInfoEXT; - -typedef struct VkDebugUtilsMessengerCallbackDataEXT { - VkStructureType sType; - const void* pNext; - VkDebugUtilsMessengerCallbackDataFlagsEXT flags; - const char* pMessageIdName; - int32_t messageIdNumber; - const char* pMessage; - uint32_t queueLabelCount; - const VkDebugUtilsLabelEXT* pQueueLabels; - uint32_t cmdBufLabelCount; - const VkDebugUtilsLabelEXT* pCmdBufLabels; - uint32_t objectCount; - const VkDebugUtilsObjectNameInfoEXT* pObjects; -} VkDebugUtilsMessengerCallbackDataEXT; - -typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, - void* pUserData); - -typedef struct VkDebugUtilsMessengerCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDebugUtilsMessengerCreateFlagsEXT flags; - VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; - VkDebugUtilsMessageTypeFlagsEXT messageType; - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; - void* pUserData; -} VkDebugUtilsMessengerCreateInfoEXT; - -typedef struct VkDebugUtilsObjectTagInfoEXT { - VkStructureType sType; - const void* pNext; - VkObjectType objectType; - uint64_t objectHandle; - uint64_t tagName; - size_t tagSize; - const void* pTag; -} VkDebugUtilsObjectTagInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); -typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); -typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue); -typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer); -typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger); -typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( - VkDevice device, - const VkDebugUtilsObjectNameInfoEXT* pNameInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( - VkDevice device, - const VkDebugUtilsObjectTagInfoEXT* pTagInfo); - -VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( - VkQueue queue, - const VkDebugUtilsLabelEXT* pLabelInfo); - -VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( - VkQueue queue); - -VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( - VkQueue queue, - const VkDebugUtilsLabelEXT* pLabelInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( - VkCommandBuffer commandBuffer, - const VkDebugUtilsLabelEXT* pLabelInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( - VkCommandBuffer commandBuffer); - -VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( - VkCommandBuffer commandBuffer, - const VkDebugUtilsLabelEXT* pLabelInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( - VkInstance instance, - const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkDebugUtilsMessengerEXT* pMessenger); - -VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( - VkInstance instance, - VkDebugUtilsMessengerEXT messenger, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( - VkInstance instance, - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); -#endif - - -#define VK_EXT_sampler_filter_minmax 1 -#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2 -#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" -typedef VkSamplerReductionMode VkSamplerReductionModeEXT; - -typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT; - -typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; - - - -#define VK_AMD_gpu_shader_int16 1 -#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2 -#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" - - -#define VK_AMD_mixed_attachment_samples 1 -#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 -#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" - - -#define VK_AMD_shader_fragment_mask 1 -#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 -#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" - - -#define VK_EXT_inline_uniform_block 1 -#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 -#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" -typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 inlineUniformBlock; - VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; -} VkPhysicalDeviceInlineUniformBlockFeaturesEXT; - -typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t maxInlineUniformBlockSize; - uint32_t maxPerStageDescriptorInlineUniformBlocks; - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; - uint32_t maxDescriptorSetInlineUniformBlocks; - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; -} VkPhysicalDeviceInlineUniformBlockPropertiesEXT; - -typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { - VkStructureType sType; - const void* pNext; - uint32_t dataSize; - const void* pData; -} VkWriteDescriptorSetInlineUniformBlockEXT; - -typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t maxInlineUniformBlockBindings; -} VkDescriptorPoolInlineUniformBlockCreateInfoEXT; - - - -#define VK_EXT_shader_stencil_export 1 -#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 -#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" - - -#define VK_EXT_sample_locations 1 -#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 -#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" -typedef struct VkSampleLocationEXT { - float x; - float y; -} VkSampleLocationEXT; - -typedef struct VkSampleLocationsInfoEXT { - VkStructureType sType; - const void* pNext; - VkSampleCountFlagBits sampleLocationsPerPixel; - VkExtent2D sampleLocationGridSize; - uint32_t sampleLocationsCount; - const VkSampleLocationEXT* pSampleLocations; -} VkSampleLocationsInfoEXT; - -typedef struct VkAttachmentSampleLocationsEXT { - uint32_t attachmentIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkAttachmentSampleLocationsEXT; - -typedef struct VkSubpassSampleLocationsEXT { - uint32_t subpassIndex; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkSubpassSampleLocationsEXT; - -typedef struct VkRenderPassSampleLocationsBeginInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t attachmentInitialSampleLocationsCount; - const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; - uint32_t postSubpassSampleLocationsCount; - const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; -} VkRenderPassSampleLocationsBeginInfoEXT; - -typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkBool32 sampleLocationsEnable; - VkSampleLocationsInfoEXT sampleLocationsInfo; -} VkPipelineSampleLocationsStateCreateInfoEXT; - -typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { - VkStructureType sType; - void* pNext; - VkSampleCountFlags sampleLocationSampleCounts; - VkExtent2D maxSampleLocationGridSize; - float sampleLocationCoordinateRange[2]; - uint32_t sampleLocationSubPixelBits; - VkBool32 variableSampleLocations; -} VkPhysicalDeviceSampleLocationsPropertiesEXT; - -typedef struct VkMultisamplePropertiesEXT { - VkStructureType sType; - void* pNext; - VkExtent2D maxSampleLocationGridSize; -} VkMultisamplePropertiesEXT; - -typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); -typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( - VkCommandBuffer commandBuffer, - const VkSampleLocationsInfoEXT* pSampleLocationsInfo); - -VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( - VkPhysicalDevice physicalDevice, - VkSampleCountFlagBits samples, - VkMultisamplePropertiesEXT* pMultisampleProperties); -#endif - - -#define VK_EXT_blend_operation_advanced 1 -#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 -#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" - -typedef enum VkBlendOverlapEXT { - VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, - VK_BLEND_OVERLAP_DISJOINT_EXT = 1, - VK_BLEND_OVERLAP_CONJOINT_EXT = 2, - VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF -} VkBlendOverlapEXT; -typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 advancedBlendCoherentOperations; -} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; - -typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t advancedBlendMaxColorAttachments; - VkBool32 advancedBlendIndependentBlend; - VkBool32 advancedBlendNonPremultipliedSrcColor; - VkBool32 advancedBlendNonPremultipliedDstColor; - VkBool32 advancedBlendCorrelatedOverlap; - VkBool32 advancedBlendAllOperations; -} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; - -typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkBool32 srcPremultiplied; - VkBool32 dstPremultiplied; - VkBlendOverlapEXT blendOverlap; -} VkPipelineColorBlendAdvancedStateCreateInfoEXT; - - - -#define VK_NV_fragment_coverage_to_color 1 -#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 -#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" -typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; -typedef struct VkPipelineCoverageToColorStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCoverageToColorStateCreateFlagsNV flags; - VkBool32 coverageToColorEnable; - uint32_t coverageToColorLocation; -} VkPipelineCoverageToColorStateCreateInfoNV; - - - -#define VK_NV_framebuffer_mixed_samples 1 -#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 -#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" - -typedef enum VkCoverageModulationModeNV { - VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, - VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, - VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, - VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, - VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF -} VkCoverageModulationModeNV; -typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; -typedef struct VkPipelineCoverageModulationStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCoverageModulationStateCreateFlagsNV flags; - VkCoverageModulationModeNV coverageModulationMode; - VkBool32 coverageModulationTableEnable; - uint32_t coverageModulationTableCount; - const float* pCoverageModulationTable; -} VkPipelineCoverageModulationStateCreateInfoNV; - - - -#define VK_NV_fill_rectangle 1 -#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 -#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" - - -#define VK_NV_shader_sm_builtins 1 -#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1 -#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins" -typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV { - VkStructureType sType; - void* pNext; - uint32_t shaderSMCount; - uint32_t shaderWarpsPerSM; -} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV; - -typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 shaderSMBuiltins; -} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV; - - - -#define VK_EXT_post_depth_coverage 1 -#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 -#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" - - -#define VK_EXT_image_drm_format_modifier 1 -#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 -#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" -typedef struct VkDrmFormatModifierPropertiesEXT { - uint64_t drmFormatModifier; - uint32_t drmFormatModifierPlaneCount; - VkFormatFeatureFlags drmFormatModifierTilingFeatures; -} VkDrmFormatModifierPropertiesEXT; - -typedef struct VkDrmFormatModifierPropertiesListEXT { - VkStructureType sType; - void* pNext; - uint32_t drmFormatModifierCount; - VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; -} VkDrmFormatModifierPropertiesListEXT; - -typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { - VkStructureType sType; - const void* pNext; - uint64_t drmFormatModifier; - VkSharingMode sharingMode; - uint32_t queueFamilyIndexCount; - const uint32_t* pQueueFamilyIndices; -} VkPhysicalDeviceImageDrmFormatModifierInfoEXT; - -typedef struct VkImageDrmFormatModifierListCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t drmFormatModifierCount; - const uint64_t* pDrmFormatModifiers; -} VkImageDrmFormatModifierListCreateInfoEXT; - -typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint64_t drmFormatModifier; - uint32_t drmFormatModifierPlaneCount; - const VkSubresourceLayout* pPlaneLayouts; -} VkImageDrmFormatModifierExplicitCreateInfoEXT; - -typedef struct VkImageDrmFormatModifierPropertiesEXT { - VkStructureType sType; - void* pNext; - uint64_t drmFormatModifier; -} VkImageDrmFormatModifierPropertiesEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( - VkDevice device, - VkImage image, - VkImageDrmFormatModifierPropertiesEXT* pProperties); -#endif - - -#define VK_EXT_validation_cache 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) -#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 -#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" - -typedef enum VkValidationCacheHeaderVersionEXT { - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, - VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF -} VkValidationCacheHeaderVersionEXT; -typedef VkFlags VkValidationCacheCreateFlagsEXT; -typedef struct VkValidationCacheCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkValidationCacheCreateFlagsEXT flags; - size_t initialDataSize; - const void* pInitialData; -} VkValidationCacheCreateInfoEXT; - -typedef struct VkShaderModuleValidationCacheCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkValidationCacheEXT validationCache; -} VkShaderModuleValidationCacheCreateInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); -typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); -typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( - VkDevice device, - const VkValidationCacheCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkValidationCacheEXT* pValidationCache); - -VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( - VkDevice device, - VkValidationCacheEXT validationCache, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( - VkDevice device, - VkValidationCacheEXT dstCache, - uint32_t srcCacheCount, - const VkValidationCacheEXT* pSrcCaches); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( - VkDevice device, - VkValidationCacheEXT validationCache, - size_t* pDataSize, - void* pData); -#endif - - -#define VK_EXT_descriptor_indexing 1 -#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 -#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" -typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT; - -typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT; - -typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; - -typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT; - -typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT; - -typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; - -typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; - - - -#define VK_EXT_shader_viewport_index_layer 1 -#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 -#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" - - -#define VK_NV_shading_rate_image 1 -#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 -#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" - -typedef enum VkShadingRatePaletteEntryNV { - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, - VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, - VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2, - VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3, - VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4, - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5, - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6, - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7, - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8, - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, - VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, - VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF -} VkShadingRatePaletteEntryNV; - -typedef enum VkCoarseSampleOrderTypeNV { - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0, - VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, - VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, - VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, - VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkCoarseSampleOrderTypeNV; -typedef struct VkShadingRatePaletteNV { - uint32_t shadingRatePaletteEntryCount; - const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; -} VkShadingRatePaletteNV; - -typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 shadingRateImageEnable; - uint32_t viewportCount; - const VkShadingRatePaletteNV* pShadingRatePalettes; -} VkPipelineViewportShadingRateImageStateCreateInfoNV; - -typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 shadingRateImage; - VkBool32 shadingRateCoarseSampleOrder; -} VkPhysicalDeviceShadingRateImageFeaturesNV; - -typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { - VkStructureType sType; - void* pNext; - VkExtent2D shadingRateTexelSize; - uint32_t shadingRatePaletteSize; - uint32_t shadingRateMaxCoarseSamples; -} VkPhysicalDeviceShadingRateImagePropertiesNV; - -typedef struct VkCoarseSampleLocationNV { - uint32_t pixelX; - uint32_t pixelY; - uint32_t sample; -} VkCoarseSampleLocationNV; - -typedef struct VkCoarseSampleOrderCustomNV { - VkShadingRatePaletteEntryNV shadingRate; - uint32_t sampleCount; - uint32_t sampleLocationCount; - const VkCoarseSampleLocationNV* pSampleLocations; -} VkCoarseSampleOrderCustomNV; - -typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkCoarseSampleOrderTypeNV sampleOrderType; - uint32_t customSampleOrderCount; - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; -} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; - -typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); -typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); -typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( - VkCommandBuffer commandBuffer, - VkImageView imageView, - VkImageLayout imageLayout); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( - VkCommandBuffer commandBuffer, - uint32_t firstViewport, - uint32_t viewportCount, - const VkShadingRatePaletteNV* pShadingRatePalettes); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( - VkCommandBuffer commandBuffer, - VkCoarseSampleOrderTypeNV sampleOrderType, - uint32_t customSampleOrderCount, - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); -#endif - - -#define VK_NV_ray_tracing 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) -#define VK_NV_RAY_TRACING_SPEC_VERSION 3 -#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" -#define VK_SHADER_UNUSED_KHR (~0U) -#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR - -typedef enum VkRayTracingShaderGroupTypeKHR { - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0, - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1, - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2, - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR, - VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR, - VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, - VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkRayTracingShaderGroupTypeKHR; -typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV; - - -typedef enum VkGeometryTypeKHR { - VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0, - VK_GEOMETRY_TYPE_AABBS_KHR = 1, - VK_GEOMETRY_TYPE_INSTANCES_KHR = 2, - VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR, - VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR, - VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkGeometryTypeKHR; -typedef VkGeometryTypeKHR VkGeometryTypeNV; - - -typedef enum VkAccelerationStructureTypeKHR { - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0, - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1, - VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2, - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, - VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, - VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkAccelerationStructureTypeKHR; -typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV; - - -typedef enum VkCopyAccelerationStructureModeKHR { - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0, - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1, - VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2, - VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3, - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR, - VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, - VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkCopyAccelerationStructureModeKHR; -typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV; - - -typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0, - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1, - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2, - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkAccelerationStructureMemoryRequirementsTypeNV; - -typedef enum VkGeometryFlagBitsKHR { - VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001, - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002, - VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR, - VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR, - VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkGeometryFlagBitsKHR; -typedef VkFlags VkGeometryFlagsKHR; -typedef VkGeometryFlagsKHR VkGeometryFlagsNV; - -typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV; - - -typedef enum VkGeometryInstanceFlagBitsKHR { - VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001, - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 0x00000002, - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004, - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008, - VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR, - VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR, - VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR, - VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR, - VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkGeometryInstanceFlagBitsKHR; -typedef VkFlags VkGeometryInstanceFlagsKHR; -typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV; - -typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV; - - -typedef enum VkBuildAccelerationStructureFlagBitsKHR { - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008, - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR, - VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR, - VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR, - VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR, - VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkBuildAccelerationStructureFlagBitsKHR; -typedef VkFlags VkBuildAccelerationStructureFlagsKHR; -typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV; - -typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV; - -typedef struct VkRayTracingShaderGroupCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkRayTracingShaderGroupTypeKHR type; - uint32_t generalShader; - uint32_t closestHitShader; - uint32_t anyHitShader; - uint32_t intersectionShader; -} VkRayTracingShaderGroupCreateInfoNV; - -typedef struct VkRayTracingPipelineCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo* pStages; - uint32_t groupCount; - const VkRayTracingShaderGroupCreateInfoNV* pGroups; - uint32_t maxRecursionDepth; - VkPipelineLayout layout; - VkPipeline basePipelineHandle; - int32_t basePipelineIndex; -} VkRayTracingPipelineCreateInfoNV; - -typedef struct VkGeometryTrianglesNV { - VkStructureType sType; - const void* pNext; - VkBuffer vertexData; - VkDeviceSize vertexOffset; - uint32_t vertexCount; - VkDeviceSize vertexStride; - VkFormat vertexFormat; - VkBuffer indexData; - VkDeviceSize indexOffset; - uint32_t indexCount; - VkIndexType indexType; - VkBuffer transformData; - VkDeviceSize transformOffset; -} VkGeometryTrianglesNV; - -typedef struct VkGeometryAABBNV { - VkStructureType sType; - const void* pNext; - VkBuffer aabbData; - uint32_t numAABBs; - uint32_t stride; - VkDeviceSize offset; -} VkGeometryAABBNV; - -typedef struct VkGeometryDataNV { - VkGeometryTrianglesNV triangles; - VkGeometryAABBNV aabbs; -} VkGeometryDataNV; - -typedef struct VkGeometryNV { - VkStructureType sType; - const void* pNext; - VkGeometryTypeKHR geometryType; - VkGeometryDataNV geometry; - VkGeometryFlagsKHR flags; -} VkGeometryNV; - -typedef struct VkAccelerationStructureInfoNV { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureTypeNV type; - VkBuildAccelerationStructureFlagsNV flags; - uint32_t instanceCount; - uint32_t geometryCount; - const VkGeometryNV* pGeometries; -} VkAccelerationStructureInfoNV; - -typedef struct VkAccelerationStructureCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkDeviceSize compactedSize; - VkAccelerationStructureInfoNV info; -} VkAccelerationStructureCreateInfoNV; - -typedef struct VkBindAccelerationStructureMemoryInfoNV { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureNV accelerationStructure; - VkDeviceMemory memory; - VkDeviceSize memoryOffset; - uint32_t deviceIndexCount; - const uint32_t* pDeviceIndices; -} VkBindAccelerationStructureMemoryInfoNV; - -typedef struct VkWriteDescriptorSetAccelerationStructureNV { - VkStructureType sType; - const void* pNext; - uint32_t accelerationStructureCount; - const VkAccelerationStructureNV* pAccelerationStructures; -} VkWriteDescriptorSetAccelerationStructureNV; - -typedef struct VkAccelerationStructureMemoryRequirementsInfoNV { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureMemoryRequirementsTypeNV type; - VkAccelerationStructureNV accelerationStructure; -} VkAccelerationStructureMemoryRequirementsInfoNV; - -typedef struct VkPhysicalDeviceRayTracingPropertiesNV { - VkStructureType sType; - void* pNext; - uint32_t shaderGroupHandleSize; - uint32_t maxRecursionDepth; - uint32_t maxShaderGroupStride; - uint32_t shaderGroupBaseAlignment; - uint64_t maxGeometryCount; - uint64_t maxInstanceCount; - uint64_t maxTriangleCount; - uint32_t maxDescriptorSetAccelerationStructures; -} VkPhysicalDeviceRayTracingPropertiesNV; - -typedef struct VkTransformMatrixKHR { - float matrix[3][4]; -} VkTransformMatrixKHR; - -typedef VkTransformMatrixKHR VkTransformMatrixNV; - -typedef struct VkAabbPositionsKHR { - float minX; - float minY; - float minZ; - float maxX; - float maxY; - float maxZ; -} VkAabbPositionsKHR; - -typedef VkAabbPositionsKHR VkAabbPositionsNV; - -typedef struct VkAccelerationStructureInstanceKHR { - VkTransformMatrixKHR transform; - uint32_t instanceCustomIndex:24; - uint32_t mask:8; - uint32_t instanceShaderBindingTableRecordOffset:24; - VkGeometryInstanceFlagsKHR flags:8; - uint64_t accelerationStructureReference; -} VkAccelerationStructureInstanceKHR; - -typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); -typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); -typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); -typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset); -typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode); -typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth); -typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); -typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); -typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); -typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData); -typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); -typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV( - VkDevice device, - const VkAccelerationStructureCreateInfoNV* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkAccelerationStructureNV* pAccelerationStructure); - -VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV( - VkDevice device, - VkAccelerationStructureNV accelerationStructure, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV( - VkDevice device, - const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, - VkMemoryRequirements2KHR* pMemoryRequirements); - -VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV( - VkDevice device, - uint32_t bindInfoCount, - const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); - -VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV( - VkCommandBuffer commandBuffer, - const VkAccelerationStructureInfoNV* pInfo, - VkBuffer instanceData, - VkDeviceSize instanceOffset, - VkBool32 update, - VkAccelerationStructureNV dst, - VkAccelerationStructureNV src, - VkBuffer scratch, - VkDeviceSize scratchOffset); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( - VkCommandBuffer commandBuffer, - VkAccelerationStructureNV dst, - VkAccelerationStructureNV src, - VkCopyAccelerationStructureModeKHR mode); - -VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV( - VkCommandBuffer commandBuffer, - VkBuffer raygenShaderBindingTableBuffer, - VkDeviceSize raygenShaderBindingOffset, - VkBuffer missShaderBindingTableBuffer, - VkDeviceSize missShaderBindingOffset, - VkDeviceSize missShaderBindingStride, - VkBuffer hitShaderBindingTableBuffer, - VkDeviceSize hitShaderBindingOffset, - VkDeviceSize hitShaderBindingStride, - VkBuffer callableShaderBindingTableBuffer, - VkDeviceSize callableShaderBindingOffset, - VkDeviceSize callableShaderBindingStride, - uint32_t width, - uint32_t height, - uint32_t depth); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( - VkDevice device, - VkPipelineCache pipelineCache, - uint32_t createInfoCount, - const VkRayTracingPipelineCreateInfoNV* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkPipeline* pPipelines); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR( - VkDevice device, - VkPipeline pipeline, - uint32_t firstGroup, - uint32_t groupCount, - size_t dataSize, - void* pData); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( - VkDevice device, - VkPipeline pipeline, - uint32_t firstGroup, - uint32_t groupCount, - size_t dataSize, - void* pData); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV( - VkDevice device, - VkAccelerationStructureNV accelerationStructure, - size_t dataSize, - void* pData); - -VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV( - VkCommandBuffer commandBuffer, - uint32_t accelerationStructureCount, - const VkAccelerationStructureNV* pAccelerationStructures, - VkQueryType queryType, - VkQueryPool queryPool, - uint32_t firstQuery); - -VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( - VkDevice device, - VkPipeline pipeline, - uint32_t shader); -#endif - - -#define VK_NV_representative_fragment_test 1 -#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2 -#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" -typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 representativeFragmentTest; -} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; - -typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkBool32 representativeFragmentTestEnable; -} VkPipelineRepresentativeFragmentTestStateCreateInfoNV; - - - -#define VK_EXT_filter_cubic 1 -#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3 -#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic" -typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { - VkStructureType sType; - void* pNext; - VkImageViewType imageViewType; -} VkPhysicalDeviceImageViewImageFormatInfoEXT; - -typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { - VkStructureType sType; - void* pNext; - VkBool32 filterCubic; - VkBool32 filterCubicMinmax; -} VkFilterCubicImageViewImageFormatPropertiesEXT; - - - -#define VK_QCOM_render_pass_shader_resolve 1 -#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4 -#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve" - - -#define VK_EXT_global_priority 1 -#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 -#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" - -typedef enum VkQueueGlobalPriorityEXT { - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, - VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, - VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, - VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, - VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF -} VkQueueGlobalPriorityEXT; -typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkQueueGlobalPriorityEXT globalPriority; -} VkDeviceQueueGlobalPriorityCreateInfoEXT; - - - -#define VK_EXT_external_memory_host 1 -#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 -#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" -typedef struct VkImportMemoryHostPointerInfoEXT { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - void* pHostPointer; -} VkImportMemoryHostPointerInfoEXT; - -typedef struct VkMemoryHostPointerPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t memoryTypeBits; -} VkMemoryHostPointerPropertiesEXT; - -typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { - VkStructureType sType; - void* pNext; - VkDeviceSize minImportedHostPointerAlignment; -} VkPhysicalDeviceExternalMemoryHostPropertiesEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( - VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - const void* pHostPointer, - VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); -#endif - - -#define VK_AMD_buffer_marker 1 -#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 -#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" -typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( - VkCommandBuffer commandBuffer, - VkPipelineStageFlagBits pipelineStage, - VkBuffer dstBuffer, - VkDeviceSize dstOffset, - uint32_t marker); -#endif - - -#define VK_AMD_pipeline_compiler_control 1 -#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1 -#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control" - -typedef enum VkPipelineCompilerControlFlagBitsAMD { - VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF -} VkPipelineCompilerControlFlagBitsAMD; -typedef VkFlags VkPipelineCompilerControlFlagsAMD; -typedef struct VkPipelineCompilerControlCreateInfoAMD { - VkStructureType sType; - const void* pNext; - VkPipelineCompilerControlFlagsAMD compilerControlFlags; -} VkPipelineCompilerControlCreateInfoAMD; - - - -#define VK_EXT_calibrated_timestamps 1 -#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 -#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" - -typedef enum VkTimeDomainEXT { - VK_TIME_DOMAIN_DEVICE_EXT = 0, - VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, - VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, - VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, - VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF -} VkTimeDomainEXT; -typedef struct VkCalibratedTimestampInfoEXT { - VkStructureType sType; - const void* pNext; - VkTimeDomainEXT timeDomain; -} VkCalibratedTimestampInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); -typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( - VkPhysicalDevice physicalDevice, - uint32_t* pTimeDomainCount, - VkTimeDomainEXT* pTimeDomains); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( - VkDevice device, - uint32_t timestampCount, - const VkCalibratedTimestampInfoEXT* pTimestampInfos, - uint64_t* pTimestamps, - uint64_t* pMaxDeviation); -#endif - - -#define VK_AMD_shader_core_properties 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2 -#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" -typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { - VkStructureType sType; - void* pNext; - uint32_t shaderEngineCount; - uint32_t shaderArraysPerEngineCount; - uint32_t computeUnitsPerShaderArray; - uint32_t simdPerComputeUnit; - uint32_t wavefrontsPerSimd; - uint32_t wavefrontSize; - uint32_t sgprsPerSimd; - uint32_t minSgprAllocation; - uint32_t maxSgprAllocation; - uint32_t sgprAllocationGranularity; - uint32_t vgprsPerSimd; - uint32_t minVgprAllocation; - uint32_t maxVgprAllocation; - uint32_t vgprAllocationGranularity; -} VkPhysicalDeviceShaderCorePropertiesAMD; - - - -#define VK_AMD_memory_overallocation_behavior 1 -#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 -#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" - -typedef enum VkMemoryOverallocationBehaviorAMD { - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, - VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2, - VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF -} VkMemoryOverallocationBehaviorAMD; -typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { - VkStructureType sType; - const void* pNext; - VkMemoryOverallocationBehaviorAMD overallocationBehavior; -} VkDeviceMemoryOverallocationCreateInfoAMD; - - - -#define VK_EXT_vertex_attribute_divisor 1 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 -#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" -typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t maxVertexAttribDivisor; -} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; - -typedef struct VkVertexInputBindingDivisorDescriptionEXT { - uint32_t binding; - uint32_t divisor; -} VkVertexInputBindingDivisorDescriptionEXT; - -typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t vertexBindingDivisorCount; - const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; -} VkPipelineVertexInputDivisorStateCreateInfoEXT; - -typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 vertexAttributeInstanceRateDivisor; - VkBool32 vertexAttributeInstanceRateZeroDivisor; -} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; - - - -#define VK_EXT_pipeline_creation_feedback 1 -#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1 -#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback" - -typedef enum VkPipelineCreationFeedbackFlagBitsEXT { - VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 0x00000001, - VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 0x00000002, - VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 0x00000004, - VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkPipelineCreationFeedbackFlagBitsEXT; -typedef VkFlags VkPipelineCreationFeedbackFlagsEXT; -typedef struct VkPipelineCreationFeedbackEXT { - VkPipelineCreationFeedbackFlagsEXT flags; - uint64_t duration; -} VkPipelineCreationFeedbackEXT; - -typedef struct VkPipelineCreationFeedbackCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPipelineCreationFeedbackEXT* pPipelineCreationFeedback; - uint32_t pipelineStageCreationFeedbackCount; - VkPipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacks; -} VkPipelineCreationFeedbackCreateInfoEXT; - - - -#define VK_NV_shader_subgroup_partitioned 1 -#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 -#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" - - -#define VK_NV_compute_shader_derivatives 1 -#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 -#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" -typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 computeDerivativeGroupQuads; - VkBool32 computeDerivativeGroupLinear; -} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; - - - -#define VK_NV_mesh_shader 1 -#define VK_NV_MESH_SHADER_SPEC_VERSION 1 -#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" -typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 taskShader; - VkBool32 meshShader; -} VkPhysicalDeviceMeshShaderFeaturesNV; - -typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { - VkStructureType sType; - void* pNext; - uint32_t maxDrawMeshTasksCount; - uint32_t maxTaskWorkGroupInvocations; - uint32_t maxTaskWorkGroupSize[3]; - uint32_t maxTaskTotalMemorySize; - uint32_t maxTaskOutputCount; - uint32_t maxMeshWorkGroupInvocations; - uint32_t maxMeshWorkGroupSize[3]; - uint32_t maxMeshTotalMemorySize; - uint32_t maxMeshOutputVertices; - uint32_t maxMeshOutputPrimitives; - uint32_t maxMeshMultiviewViewCount; - uint32_t meshOutputPerVertexGranularity; - uint32_t meshOutputPerPrimitiveGranularity; -} VkPhysicalDeviceMeshShaderPropertiesNV; - -typedef struct VkDrawMeshTasksIndirectCommandNV { - uint32_t taskCount; - uint32_t firstTask; -} VkDrawMeshTasksIndirectCommandNV; - -typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); -typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( - VkCommandBuffer commandBuffer, - uint32_t taskCount, - uint32_t firstTask); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - uint32_t drawCount, - uint32_t stride); - -VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( - VkCommandBuffer commandBuffer, - VkBuffer buffer, - VkDeviceSize offset, - VkBuffer countBuffer, - VkDeviceSize countBufferOffset, - uint32_t maxDrawCount, - uint32_t stride); -#endif - - -#define VK_NV_fragment_shader_barycentric 1 -#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 -#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" -typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 fragmentShaderBarycentric; -} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; - - - -#define VK_NV_shader_image_footprint 1 -#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2 -#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" -typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 imageFootprint; -} VkPhysicalDeviceShaderImageFootprintFeaturesNV; - - - -#define VK_NV_scissor_exclusive 1 -#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 -#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" -typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - uint32_t exclusiveScissorCount; - const VkRect2D* pExclusiveScissors; -} VkPipelineViewportExclusiveScissorStateCreateInfoNV; - -typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 exclusiveScissor; -} VkPhysicalDeviceExclusiveScissorFeaturesNV; - -typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( - VkCommandBuffer commandBuffer, - uint32_t firstExclusiveScissor, - uint32_t exclusiveScissorCount, - const VkRect2D* pExclusiveScissors); -#endif - - -#define VK_NV_device_diagnostic_checkpoints 1 -#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 -#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" -typedef struct VkQueueFamilyCheckpointPropertiesNV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlags checkpointExecutionStageMask; -} VkQueueFamilyCheckpointPropertiesNV; - -typedef struct VkCheckpointDataNV { - VkStructureType sType; - void* pNext; - VkPipelineStageFlagBits stage; - void* pCheckpointMarker; -} VkCheckpointDataNV; - -typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); -typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( - VkCommandBuffer commandBuffer, - const void* pCheckpointMarker); - -VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( - VkQueue queue, - uint32_t* pCheckpointDataCount, - VkCheckpointDataNV* pCheckpointData); -#endif - - -#define VK_INTEL_shader_integer_functions2 1 -#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1 -#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2" -typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL { - VkStructureType sType; - void* pNext; - VkBool32 shaderIntegerFunctions2; -} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL; - - - -#define VK_INTEL_performance_query 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) -#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2 -#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query" - -typedef enum VkPerformanceConfigurationTypeINTEL { - VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0, - VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF -} VkPerformanceConfigurationTypeINTEL; - -typedef enum VkQueryPoolSamplingModeINTEL { - VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0, - VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF -} VkQueryPoolSamplingModeINTEL; - -typedef enum VkPerformanceOverrideTypeINTEL { - VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0, - VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1, - VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF -} VkPerformanceOverrideTypeINTEL; - -typedef enum VkPerformanceParameterTypeINTEL { - VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0, - VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1, - VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF -} VkPerformanceParameterTypeINTEL; - -typedef enum VkPerformanceValueTypeINTEL { - VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0, - VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1, - VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2, - VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3, - VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4, - VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF -} VkPerformanceValueTypeINTEL; -typedef union VkPerformanceValueDataINTEL { - uint32_t value32; - uint64_t value64; - float valueFloat; - VkBool32 valueBool; - const char* valueString; -} VkPerformanceValueDataINTEL; - -typedef struct VkPerformanceValueINTEL { - VkPerformanceValueTypeINTEL type; - VkPerformanceValueDataINTEL data; -} VkPerformanceValueINTEL; - -typedef struct VkInitializePerformanceApiInfoINTEL { - VkStructureType sType; - const void* pNext; - void* pUserData; -} VkInitializePerformanceApiInfoINTEL; - -typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL { - VkStructureType sType; - const void* pNext; - VkQueryPoolSamplingModeINTEL performanceCountersSampling; -} VkQueryPoolPerformanceQueryCreateInfoINTEL; - -typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL; - -typedef struct VkPerformanceMarkerInfoINTEL { - VkStructureType sType; - const void* pNext; - uint64_t marker; -} VkPerformanceMarkerInfoINTEL; - -typedef struct VkPerformanceStreamMarkerInfoINTEL { - VkStructureType sType; - const void* pNext; - uint32_t marker; -} VkPerformanceStreamMarkerInfoINTEL; - -typedef struct VkPerformanceOverrideInfoINTEL { - VkStructureType sType; - const void* pNext; - VkPerformanceOverrideTypeINTEL type; - VkBool32 enable; - uint64_t parameter; -} VkPerformanceOverrideInfoINTEL; - -typedef struct VkPerformanceConfigurationAcquireInfoINTEL { - VkStructureType sType; - const void* pNext; - VkPerformanceConfigurationTypeINTEL type; -} VkPerformanceConfigurationAcquireInfoINTEL; - -typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); -typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device); -typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo); -typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration); -typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration); -typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration); -typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL( - VkDevice device, - const VkInitializePerformanceApiInfoINTEL* pInitializeInfo); - -VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL( - VkDevice device); - -VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL( - VkCommandBuffer commandBuffer, - const VkPerformanceMarkerInfoINTEL* pMarkerInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL( - VkCommandBuffer commandBuffer, - const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL( - VkCommandBuffer commandBuffer, - const VkPerformanceOverrideInfoINTEL* pOverrideInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL( - VkDevice device, - const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, - VkPerformanceConfigurationINTEL* pConfiguration); - -VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL( - VkDevice device, - VkPerformanceConfigurationINTEL configuration); - -VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL( - VkQueue queue, - VkPerformanceConfigurationINTEL configuration); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL( - VkDevice device, - VkPerformanceParameterTypeINTEL parameter, - VkPerformanceValueINTEL* pValue); -#endif - - -#define VK_EXT_pci_bus_info 1 -#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 -#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" -typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t pciDomain; - uint32_t pciBus; - uint32_t pciDevice; - uint32_t pciFunction; -} VkPhysicalDevicePCIBusInfoPropertiesEXT; - - - -#define VK_AMD_display_native_hdr 1 -#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1 -#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr" -typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD { - VkStructureType sType; - void* pNext; - VkBool32 localDimmingSupport; -} VkDisplayNativeHdrSurfaceCapabilitiesAMD; - -typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD { - VkStructureType sType; - const void* pNext; - VkBool32 localDimmingEnable; -} VkSwapchainDisplayNativeHdrCreateInfoAMD; - -typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD( - VkDevice device, - VkSwapchainKHR swapChain, - VkBool32 localDimmingEnable); -#endif - - -#define VK_EXT_fragment_density_map 1 -#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1 -#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" -typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 fragmentDensityMap; - VkBool32 fragmentDensityMapDynamic; - VkBool32 fragmentDensityMapNonSubsampledImages; -} VkPhysicalDeviceFragmentDensityMapFeaturesEXT; - -typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT { - VkStructureType sType; - void* pNext; - VkExtent2D minFragmentDensityTexelSize; - VkExtent2D maxFragmentDensityTexelSize; - VkBool32 fragmentDensityInvocations; -} VkPhysicalDeviceFragmentDensityMapPropertiesEXT; - -typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkAttachmentReference fragmentDensityMapAttachment; -} VkRenderPassFragmentDensityMapCreateInfoEXT; - - - -#define VK_EXT_scalar_block_layout 1 -#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 -#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" -typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; - - - -#define VK_GOOGLE_hlsl_functionality1 1 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1 -#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" - - -#define VK_GOOGLE_decorate_string 1 -#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1 -#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" - - -#define VK_EXT_subgroup_size_control 1 -#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2 -#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control" -typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 subgroupSizeControl; - VkBool32 computeFullSubgroups; -} VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; - -typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t minSubgroupSize; - uint32_t maxSubgroupSize; - uint32_t maxComputeWorkgroupSubgroups; - VkShaderStageFlags requiredSubgroupSizeStages; -} VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; - -typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT { - VkStructureType sType; - void* pNext; - uint32_t requiredSubgroupSize; -} VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; - - - -#define VK_AMD_shader_core_properties2 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1 -#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2" - -typedef enum VkShaderCorePropertiesFlagBitsAMD { - VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF -} VkShaderCorePropertiesFlagBitsAMD; -typedef VkFlags VkShaderCorePropertiesFlagsAMD; -typedef struct VkPhysicalDeviceShaderCoreProperties2AMD { - VkStructureType sType; - void* pNext; - VkShaderCorePropertiesFlagsAMD shaderCoreFeatures; - uint32_t activeComputeUnitCount; -} VkPhysicalDeviceShaderCoreProperties2AMD; - - - -#define VK_AMD_device_coherent_memory 1 -#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1 -#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory" -typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD { - VkStructureType sType; - void* pNext; - VkBool32 deviceCoherentMemory; -} VkPhysicalDeviceCoherentMemoryFeaturesAMD; - - - -#define VK_EXT_shader_image_atomic_int64 1 -#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1 -#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64" -typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 shaderImageInt64Atomics; - VkBool32 sparseImageInt64Atomics; -} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT; - - - -#define VK_EXT_memory_budget 1 -#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 -#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" -typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { - VkStructureType sType; - void* pNext; - VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS]; - VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS]; -} VkPhysicalDeviceMemoryBudgetPropertiesEXT; - - - -#define VK_EXT_memory_priority 1 -#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 -#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" -typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 memoryPriority; -} VkPhysicalDeviceMemoryPriorityFeaturesEXT; - -typedef struct VkMemoryPriorityAllocateInfoEXT { - VkStructureType sType; - const void* pNext; - float priority; -} VkMemoryPriorityAllocateInfoEXT; - - - -#define VK_NV_dedicated_allocation_image_aliasing 1 -#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1 -#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing" -typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 dedicatedAllocationImageAliasing; -} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; - - - -#define VK_EXT_buffer_device_address 1 -#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 -#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" -typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 bufferDeviceAddress; - VkBool32 bufferDeviceAddressCaptureReplay; - VkBool32 bufferDeviceAddressMultiDevice; -} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT; - -typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT; - -typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT; - -typedef struct VkBufferDeviceAddressCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDeviceAddress deviceAddress; -} VkBufferDeviceAddressCreateInfoEXT; - -typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( - VkDevice device, - const VkBufferDeviceAddressInfo* pInfo); -#endif - - -#define VK_EXT_tooling_info 1 -#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1 -#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info" - -typedef enum VkToolPurposeFlagBitsEXT { - VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = 0x00000001, - VK_TOOL_PURPOSE_PROFILING_BIT_EXT = 0x00000002, - VK_TOOL_PURPOSE_TRACING_BIT_EXT = 0x00000004, - VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = 0x00000008, - VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = 0x00000010, - VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020, - VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040, - VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkToolPurposeFlagBitsEXT; -typedef VkFlags VkToolPurposeFlagsEXT; -typedef struct VkPhysicalDeviceToolPropertiesEXT { - VkStructureType sType; - void* pNext; - char name[VK_MAX_EXTENSION_NAME_SIZE]; - char version[VK_MAX_EXTENSION_NAME_SIZE]; - VkToolPurposeFlagsEXT purposes; - char description[VK_MAX_DESCRIPTION_SIZE]; - char layer[VK_MAX_EXTENSION_NAME_SIZE]; -} VkPhysicalDeviceToolPropertiesEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolPropertiesEXT* pToolProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT( - VkPhysicalDevice physicalDevice, - uint32_t* pToolCount, - VkPhysicalDeviceToolPropertiesEXT* pToolProperties); -#endif - - -#define VK_EXT_separate_stencil_usage 1 -#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 -#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" -typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT; - - - -#define VK_EXT_validation_features 1 -#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 4 -#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" - -typedef enum VkValidationFeatureEnableEXT { - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, - VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2, - VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3, - VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4, - VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkValidationFeatureEnableEXT; - -typedef enum VkValidationFeatureDisableEXT { - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0, - VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1, - VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, - VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, - VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, - VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, - VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, - VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkValidationFeatureDisableEXT; -typedef struct VkValidationFeaturesEXT { - VkStructureType sType; - const void* pNext; - uint32_t enabledValidationFeatureCount; - const VkValidationFeatureEnableEXT* pEnabledValidationFeatures; - uint32_t disabledValidationFeatureCount; - const VkValidationFeatureDisableEXT* pDisabledValidationFeatures; -} VkValidationFeaturesEXT; - - - -#define VK_NV_cooperative_matrix 1 -#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1 -#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix" - -typedef enum VkComponentTypeNV { - VK_COMPONENT_TYPE_FLOAT16_NV = 0, - VK_COMPONENT_TYPE_FLOAT32_NV = 1, - VK_COMPONENT_TYPE_FLOAT64_NV = 2, - VK_COMPONENT_TYPE_SINT8_NV = 3, - VK_COMPONENT_TYPE_SINT16_NV = 4, - VK_COMPONENT_TYPE_SINT32_NV = 5, - VK_COMPONENT_TYPE_SINT64_NV = 6, - VK_COMPONENT_TYPE_UINT8_NV = 7, - VK_COMPONENT_TYPE_UINT16_NV = 8, - VK_COMPONENT_TYPE_UINT32_NV = 9, - VK_COMPONENT_TYPE_UINT64_NV = 10, - VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkComponentTypeNV; - -typedef enum VkScopeNV { - VK_SCOPE_DEVICE_NV = 1, - VK_SCOPE_WORKGROUP_NV = 2, - VK_SCOPE_SUBGROUP_NV = 3, - VK_SCOPE_QUEUE_FAMILY_NV = 5, - VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkScopeNV; -typedef struct VkCooperativeMatrixPropertiesNV { - VkStructureType sType; - void* pNext; - uint32_t MSize; - uint32_t NSize; - uint32_t KSize; - VkComponentTypeNV AType; - VkComponentTypeNV BType; - VkComponentTypeNV CType; - VkComponentTypeNV DType; - VkScopeNV scope; -} VkCooperativeMatrixPropertiesNV; - -typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 cooperativeMatrix; - VkBool32 cooperativeMatrixRobustBufferAccess; -} VkPhysicalDeviceCooperativeMatrixFeaturesNV; - -typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { - VkStructureType sType; - void* pNext; - VkShaderStageFlags cooperativeMatrixSupportedStages; -} VkPhysicalDeviceCooperativeMatrixPropertiesNV; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( - VkPhysicalDevice physicalDevice, - uint32_t* pPropertyCount, - VkCooperativeMatrixPropertiesNV* pProperties); -#endif - - -#define VK_NV_coverage_reduction_mode 1 -#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1 -#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode" - -typedef enum VkCoverageReductionModeNV { - VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0, - VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1, - VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF -} VkCoverageReductionModeNV; -typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; -typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 coverageReductionMode; -} VkPhysicalDeviceCoverageReductionModeFeaturesNV; - -typedef struct VkPipelineCoverageReductionStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineCoverageReductionStateCreateFlagsNV flags; - VkCoverageReductionModeNV coverageReductionMode; -} VkPipelineCoverageReductionStateCreateInfoNV; - -typedef struct VkFramebufferMixedSamplesCombinationNV { - VkStructureType sType; - void* pNext; - VkCoverageReductionModeNV coverageReductionMode; - VkSampleCountFlagBits rasterizationSamples; - VkSampleCountFlags depthStencilSamples; - VkSampleCountFlags colorSamples; -} VkFramebufferMixedSamplesCombinationNV; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( - VkPhysicalDevice physicalDevice, - uint32_t* pCombinationCount, - VkFramebufferMixedSamplesCombinationNV* pCombinations); -#endif - - -#define VK_EXT_fragment_shader_interlock 1 -#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1 -#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock" -typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 fragmentShaderSampleInterlock; - VkBool32 fragmentShaderPixelInterlock; - VkBool32 fragmentShaderShadingRateInterlock; -} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; - - - -#define VK_EXT_ycbcr_image_arrays 1 -#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 -#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" -typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 ycbcrImageArrays; -} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; - - - -#define VK_EXT_headless_surface 1 -#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1 -#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" -typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; -typedef struct VkHeadlessSurfaceCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkHeadlessSurfaceCreateFlagsEXT flags; -} VkHeadlessSurfaceCreateInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT( - VkInstance instance, - const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - - -#define VK_EXT_line_rasterization 1 -#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1 -#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization" - -typedef enum VkLineRasterizationModeEXT { - VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0, - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1, - VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2, - VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3, - VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkLineRasterizationModeEXT; -typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 rectangularLines; - VkBool32 bresenhamLines; - VkBool32 smoothLines; - VkBool32 stippledRectangularLines; - VkBool32 stippledBresenhamLines; - VkBool32 stippledSmoothLines; -} VkPhysicalDeviceLineRasterizationFeaturesEXT; - -typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t lineSubPixelPrecisionBits; -} VkPhysicalDeviceLineRasterizationPropertiesEXT; - -typedef struct VkPipelineRasterizationLineStateCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkLineRasterizationModeEXT lineRasterizationMode; - VkBool32 stippledLineEnable; - uint32_t lineStippleFactor; - uint16_t lineStipplePattern; -} VkPipelineRasterizationLineStateCreateInfoEXT; - -typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT( - VkCommandBuffer commandBuffer, - uint32_t lineStippleFactor, - uint16_t lineStipplePattern); -#endif - - -#define VK_EXT_shader_atomic_float 1 -#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1 -#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float" -typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 shaderBufferFloat32Atomics; - VkBool32 shaderBufferFloat32AtomicAdd; - VkBool32 shaderBufferFloat64Atomics; - VkBool32 shaderBufferFloat64AtomicAdd; - VkBool32 shaderSharedFloat32Atomics; - VkBool32 shaderSharedFloat32AtomicAdd; - VkBool32 shaderSharedFloat64Atomics; - VkBool32 shaderSharedFloat64AtomicAdd; - VkBool32 shaderImageFloat32Atomics; - VkBool32 shaderImageFloat32AtomicAdd; - VkBool32 sparseImageFloat32Atomics; - VkBool32 sparseImageFloat32AtomicAdd; -} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT; - - - -#define VK_EXT_host_query_reset 1 -#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1 -#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset" -typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT; - -typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT( - VkDevice device, - VkQueryPool queryPool, - uint32_t firstQuery, - uint32_t queryCount); -#endif - - -#define VK_EXT_index_type_uint8 1 -#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1 -#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8" -typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 indexTypeUint8; -} VkPhysicalDeviceIndexTypeUint8FeaturesEXT; - - - -#define VK_EXT_extended_dynamic_state 1 -#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1 -#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state" -typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 extendedDynamicState; -} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; - -typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); -typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); -typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); -typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); -typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); -typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); -typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); -typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); -typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); -typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); -typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); -typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT( - VkCommandBuffer commandBuffer, - VkCullModeFlags cullMode); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT( - VkCommandBuffer commandBuffer, - VkFrontFace frontFace); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT( - VkCommandBuffer commandBuffer, - VkPrimitiveTopology primitiveTopology); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT( - VkCommandBuffer commandBuffer, - uint32_t viewportCount, - const VkViewport* pViewports); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT( - VkCommandBuffer commandBuffer, - uint32_t scissorCount, - const VkRect2D* pScissors); - -VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT( - VkCommandBuffer commandBuffer, - uint32_t firstBinding, - uint32_t bindingCount, - const VkBuffer* pBuffers, - const VkDeviceSize* pOffsets, - const VkDeviceSize* pSizes, - const VkDeviceSize* pStrides); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT( - VkCommandBuffer commandBuffer, - VkBool32 depthTestEnable); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT( - VkCommandBuffer commandBuffer, - VkBool32 depthWriteEnable); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT( - VkCommandBuffer commandBuffer, - VkCompareOp depthCompareOp); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT( - VkCommandBuffer commandBuffer, - VkBool32 depthBoundsTestEnable); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT( - VkCommandBuffer commandBuffer, - VkBool32 stencilTestEnable); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT( - VkCommandBuffer commandBuffer, - VkStencilFaceFlags faceMask, - VkStencilOp failOp, - VkStencilOp passOp, - VkStencilOp depthFailOp, - VkCompareOp compareOp); -#endif - - -#define VK_EXT_shader_demote_to_helper_invocation 1 -#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 -#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" -typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 shaderDemoteToHelperInvocation; -} VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; - - - -#define VK_NV_device_generated_commands 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV) -#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 -#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands" - -typedef enum VkIndirectCommandsTokenTypeNV { - VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7, - VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkIndirectCommandsTokenTypeNV; - -typedef enum VkIndirectStateFlagBitsNV { - VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001, - VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkIndirectStateFlagBitsNV; -typedef VkFlags VkIndirectStateFlagsNV; - -typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV { - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004, - VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkIndirectCommandsLayoutUsageFlagBitsNV; -typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; -typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV { - VkStructureType sType; - void* pNext; - uint32_t maxGraphicsShaderGroupCount; - uint32_t maxIndirectSequenceCount; - uint32_t maxIndirectCommandsTokenCount; - uint32_t maxIndirectCommandsStreamCount; - uint32_t maxIndirectCommandsTokenOffset; - uint32_t maxIndirectCommandsStreamStride; - uint32_t minSequencesCountBufferOffsetAlignment; - uint32_t minSequencesIndexBufferOffsetAlignment; - uint32_t minIndirectCommandsBufferOffsetAlignment; -} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV; - -typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 deviceGeneratedCommands; -} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV; - -typedef struct VkGraphicsShaderGroupCreateInfoNV { - VkStructureType sType; - const void* pNext; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo* pStages; - const VkPipelineVertexInputStateCreateInfo* pVertexInputState; - const VkPipelineTessellationStateCreateInfo* pTessellationState; -} VkGraphicsShaderGroupCreateInfoNV; - -typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV { - VkStructureType sType; - const void* pNext; - uint32_t groupCount; - const VkGraphicsShaderGroupCreateInfoNV* pGroups; - uint32_t pipelineCount; - const VkPipeline* pPipelines; -} VkGraphicsPipelineShaderGroupsCreateInfoNV; - -typedef struct VkBindShaderGroupIndirectCommandNV { - uint32_t groupIndex; -} VkBindShaderGroupIndirectCommandNV; - -typedef struct VkBindIndexBufferIndirectCommandNV { - VkDeviceAddress bufferAddress; - uint32_t size; - VkIndexType indexType; -} VkBindIndexBufferIndirectCommandNV; - -typedef struct VkBindVertexBufferIndirectCommandNV { - VkDeviceAddress bufferAddress; - uint32_t size; - uint32_t stride; -} VkBindVertexBufferIndirectCommandNV; - -typedef struct VkSetStateFlagsIndirectCommandNV { - uint32_t data; -} VkSetStateFlagsIndirectCommandNV; - -typedef struct VkIndirectCommandsStreamNV { - VkBuffer buffer; - VkDeviceSize offset; -} VkIndirectCommandsStreamNV; - -typedef struct VkIndirectCommandsLayoutTokenNV { - VkStructureType sType; - const void* pNext; - VkIndirectCommandsTokenTypeNV tokenType; - uint32_t stream; - uint32_t offset; - uint32_t vertexBindingUnit; - VkBool32 vertexDynamicStride; - VkPipelineLayout pushconstantPipelineLayout; - VkShaderStageFlags pushconstantShaderStageFlags; - uint32_t pushconstantOffset; - uint32_t pushconstantSize; - VkIndirectStateFlagsNV indirectStateFlags; - uint32_t indexTypeCount; - const VkIndexType* pIndexTypes; - const uint32_t* pIndexTypeValues; -} VkIndirectCommandsLayoutTokenNV; - -typedef struct VkIndirectCommandsLayoutCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkIndirectCommandsLayoutUsageFlagsNV flags; - VkPipelineBindPoint pipelineBindPoint; - uint32_t tokenCount; - const VkIndirectCommandsLayoutTokenNV* pTokens; - uint32_t streamCount; - const uint32_t* pStreamStrides; -} VkIndirectCommandsLayoutCreateInfoNV; - -typedef struct VkGeneratedCommandsInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineBindPoint pipelineBindPoint; - VkPipeline pipeline; - VkIndirectCommandsLayoutNV indirectCommandsLayout; - uint32_t streamCount; - const VkIndirectCommandsStreamNV* pStreams; - uint32_t sequencesCount; - VkBuffer preprocessBuffer; - VkDeviceSize preprocessOffset; - VkDeviceSize preprocessSize; - VkBuffer sequencesCountBuffer; - VkDeviceSize sequencesCountOffset; - VkBuffer sequencesIndexBuffer; - VkDeviceSize sequencesIndexOffset; -} VkGeneratedCommandsInfoNV; - -typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV { - VkStructureType sType; - const void* pNext; - VkPipelineBindPoint pipelineBindPoint; - VkPipeline pipeline; - VkIndirectCommandsLayoutNV indirectCommandsLayout; - uint32_t maxSequencesCount; -} VkGeneratedCommandsMemoryRequirementsInfoNV; - -typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements); -typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); -typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); -typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex); -typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); -typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV( - VkDevice device, - const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, - VkMemoryRequirements2* pMemoryRequirements); - -VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV( - VkCommandBuffer commandBuffer, - const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV( - VkCommandBuffer commandBuffer, - VkBool32 isPreprocessed, - const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV( - VkCommandBuffer commandBuffer, - VkPipelineBindPoint pipelineBindPoint, - VkPipeline pipeline, - uint32_t groupIndex); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV( - VkDevice device, - const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkIndirectCommandsLayoutNV* pIndirectCommandsLayout); - -VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV( - VkDevice device, - VkIndirectCommandsLayoutNV indirectCommandsLayout, - const VkAllocationCallbacks* pAllocator); -#endif - - -#define VK_EXT_texel_buffer_alignment 1 -#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 -#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" -typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 texelBufferAlignment; -} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; - -typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT { - VkStructureType sType; - void* pNext; - VkDeviceSize storageTexelBufferOffsetAlignmentBytes; - VkBool32 storageTexelBufferOffsetSingleTexelAlignment; - VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; - VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; -} VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; - - - -#define VK_QCOM_render_pass_transform 1 -#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 1 -#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform" -typedef struct VkRenderPassTransformBeginInfoQCOM { - VkStructureType sType; - void* pNext; - VkSurfaceTransformFlagBitsKHR transform; -} VkRenderPassTransformBeginInfoQCOM; - -typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM { - VkStructureType sType; - void* pNext; - VkSurfaceTransformFlagBitsKHR transform; - VkRect2D renderArea; -} VkCommandBufferInheritanceRenderPassTransformInfoQCOM; - - - -#define VK_EXT_device_memory_report 1 -#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 1 -#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report" - -typedef enum VkDeviceMemoryReportEventTypeEXT { - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0, - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1, - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2, - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3, - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4, - VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkDeviceMemoryReportEventTypeEXT; -typedef VkFlags VkDeviceMemoryReportFlagsEXT; -typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 deviceMemoryReport; -} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT; - -typedef struct VkDeviceMemoryReportCallbackDataEXT { - VkStructureType sType; - const void* pNext; - VkDeviceMemoryReportFlagsEXT flags; - VkDeviceMemoryReportEventTypeEXT type; - uint64_t memoryObjectId; - VkDeviceSize size; - VkObjectType objectType; - uint64_t objectHandle; - uint32_t heapIndex; -} VkDeviceMemoryReportCallbackDataEXT; - -typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( - const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, - void* pUserData); - -typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDeviceMemoryReportFlagsEXT flags; - PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback; - void* pUserData; -} VkDeviceDeviceMemoryReportCreateInfoEXT; - - - -#define VK_EXT_robustness2 1 -#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1 -#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2" -typedef struct VkPhysicalDeviceRobustness2FeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 robustBufferAccess2; - VkBool32 robustImageAccess2; - VkBool32 nullDescriptor; -} VkPhysicalDeviceRobustness2FeaturesEXT; - -typedef struct VkPhysicalDeviceRobustness2PropertiesEXT { - VkStructureType sType; - void* pNext; - VkDeviceSize robustStorageBufferAccessSizeAlignment; - VkDeviceSize robustUniformBufferAccessSizeAlignment; -} VkPhysicalDeviceRobustness2PropertiesEXT; - - - -#define VK_EXT_custom_border_color 1 -#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12 -#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color" -typedef struct VkSamplerCustomBorderColorCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkClearColorValue customBorderColor; - VkFormat format; -} VkSamplerCustomBorderColorCreateInfoEXT; - -typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT { - VkStructureType sType; - void* pNext; - uint32_t maxCustomBorderColorSamplers; -} VkPhysicalDeviceCustomBorderColorPropertiesEXT; - -typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 customBorderColors; - VkBool32 customBorderColorWithoutFormat; -} VkPhysicalDeviceCustomBorderColorFeaturesEXT; - - - -#define VK_GOOGLE_user_type 1 -#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1 -#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type" - - -#define VK_EXT_private_data 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT) -#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1 -#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data" - -typedef enum VkPrivateDataSlotCreateFlagBitsEXT { - VK_PRIVATE_DATA_SLOT_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF -} VkPrivateDataSlotCreateFlagBitsEXT; -typedef VkFlags VkPrivateDataSlotCreateFlagsEXT; -typedef struct VkPhysicalDevicePrivateDataFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 privateData; -} VkPhysicalDevicePrivateDataFeaturesEXT; - -typedef struct VkDevicePrivateDataCreateInfoEXT { - VkStructureType sType; - const void* pNext; - uint32_t privateDataSlotRequestCount; -} VkDevicePrivateDataCreateInfoEXT; - -typedef struct VkPrivateDataSlotCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkPrivateDataSlotCreateFlagsEXT flags; -} VkPrivateDataSlotCreateInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlotEXT* pPrivateDataSlot); -typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks* pAllocator); -typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data); -typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t* pData); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT( - VkDevice device, - const VkPrivateDataSlotCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkPrivateDataSlotEXT* pPrivateDataSlot); - -VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT( - VkDevice device, - VkPrivateDataSlotEXT privateDataSlot, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT( - VkDevice device, - VkObjectType objectType, - uint64_t objectHandle, - VkPrivateDataSlotEXT privateDataSlot, - uint64_t data); - -VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT( - VkDevice device, - VkObjectType objectType, - uint64_t objectHandle, - VkPrivateDataSlotEXT privateDataSlot, - uint64_t* pData); -#endif - - -#define VK_EXT_pipeline_creation_cache_control 1 -#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3 -#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control" -typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 pipelineCreationCacheControl; -} VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT; - - - -#define VK_NV_device_diagnostics_config 1 -#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1 -#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config" - -typedef enum VkDeviceDiagnosticsConfigFlagBitsNV { - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001, - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002, - VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004, - VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF -} VkDeviceDiagnosticsConfigFlagBitsNV; -typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; -typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 diagnosticsConfig; -} VkPhysicalDeviceDiagnosticsConfigFeaturesNV; - -typedef struct VkDeviceDiagnosticsConfigCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkDeviceDiagnosticsConfigFlagsNV flags; -} VkDeviceDiagnosticsConfigCreateInfoNV; - - - -#define VK_QCOM_render_pass_store_ops 1 -#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2 -#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops" - - -#define VK_NV_fragment_shading_rate_enums 1 -#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1 -#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums" - -typedef enum VkFragmentShadingRateTypeNV { - VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0, - VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1, - VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF -} VkFragmentShadingRateTypeNV; - -typedef enum VkFragmentShadingRateNV { - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0, - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1, - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4, - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5, - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6, - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9, - VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10, - VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11, - VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12, - VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13, - VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14, - VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15, - VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF -} VkFragmentShadingRateNV; -typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV { - VkStructureType sType; - void* pNext; - VkBool32 fragmentShadingRateEnums; - VkBool32 supersampleFragmentShadingRates; - VkBool32 noInvocationFragmentShadingRates; -} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV; - -typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV { - VkStructureType sType; - void* pNext; - VkSampleCountFlagBits maxFragmentShadingRateInvocationCount; -} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV; - -typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV { - VkStructureType sType; - const void* pNext; - VkFragmentShadingRateTypeNV shadingRateType; - VkFragmentShadingRateNV shadingRate; - VkFragmentShadingRateCombinerOpKHR combinerOps[2]; -} VkPipelineFragmentShadingRateEnumStateCreateInfoNV; - -typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV( - VkCommandBuffer commandBuffer, - VkFragmentShadingRateNV shadingRate, - const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); -#endif - - -#define VK_EXT_fragment_density_map2 1 -#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1 -#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2" -typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 fragmentDensityMapDeferred; -} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT; - -typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT { - VkStructureType sType; - void* pNext; - VkBool32 subsampledLoads; - VkBool32 subsampledCoarseReconstructionEarlyAccess; - uint32_t maxSubsampledArrayLayers; - uint32_t maxDescriptorSetSubsampledSamplers; -} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT; - - - -#define VK_QCOM_rotated_copy_commands 1 -#define VK_QCOM_rotated_copy_commands_SPEC_VERSION 0 -#define VK_QCOM_rotated_copy_commands_EXTENSION_NAME "VK_QCOM_rotated_copy_commands" -typedef struct VkCopyCommandTransformInfoQCOM { - VkStructureType sType; - const void* pNext; - VkSurfaceTransformFlagBitsKHR transform; -} VkCopyCommandTransformInfoQCOM; - - - -#define VK_EXT_image_robustness 1 -#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1 -#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness" -typedef struct VkPhysicalDeviceImageRobustnessFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 robustImageAccess; -} VkPhysicalDeviceImageRobustnessFeaturesEXT; - - - -#define VK_EXT_4444_formats 1 -#define VK_EXT_4444_FORMATS_SPEC_VERSION 1 -#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" -typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { - VkStructureType sType; - void* pNext; - VkBool32 formatA4R4G4B4; - VkBool32 formatA4B4G4R4; -} VkPhysicalDevice4444FormatsFeaturesEXT; - - - -#define VK_NV_acquire_winrt_display 1 -#define VK_NV_ACQUIRE_WINRT_DISPLAY_SPEC_VERSION 1 -#define VK_NV_ACQUIRE_WINRT_DISPLAY_EXTENSION_NAME "VK_NV_acquire_winrt_display" -typedef VkResult (VKAPI_PTR *PFN_vkAcquireWinrtDisplayNV)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); -typedef VkResult (VKAPI_PTR *PFN_vkGetWinrtDisplayNV)(VkPhysicalDevice physicalDevice, uint32_t deviceRelativeId, VkDisplayKHR* pDisplay); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireWinrtDisplayNV( - VkPhysicalDevice physicalDevice, - VkDisplayKHR display); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetWinrtDisplayNV( - VkPhysicalDevice physicalDevice, - uint32_t deviceRelativeId, - VkDisplayKHR* pDisplay); -#endif - - -#define VK_VALVE_mutable_descriptor_type 1 -#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1 -#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type" -typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE { - VkStructureType sType; - void* pNext; - VkBool32 mutableDescriptorType; -} VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE; - -typedef struct VkMutableDescriptorTypeListVALVE { - uint32_t descriptorTypeCount; - const VkDescriptorType* pDescriptorTypes; -} VkMutableDescriptorTypeListVALVE; - -typedef struct VkMutableDescriptorTypeCreateInfoVALVE { - VkStructureType sType; - const void* pNext; - uint32_t mutableDescriptorTypeListCount; - const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists; -} VkMutableDescriptorTypeCreateInfoVALVE; - - - -#define VK_KHR_acceleration_structure 1 -VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) -#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 11 -#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure" - -typedef enum VkBuildAccelerationStructureModeKHR { - VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0, - VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1, - VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkBuildAccelerationStructureModeKHR; - -typedef enum VkAccelerationStructureBuildTypeKHR { - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0, - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1, - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2, - VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF -} VkAccelerationStructureBuildTypeKHR; - -typedef enum VkAccelerationStructureCompatibilityKHR { - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0, - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1, - VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF -} VkAccelerationStructureCompatibilityKHR; - -typedef enum VkAccelerationStructureCreateFlagBitsKHR { - VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001, - VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF -} VkAccelerationStructureCreateFlagBitsKHR; -typedef VkFlags VkAccelerationStructureCreateFlagsKHR; -typedef union VkDeviceOrHostAddressKHR { - VkDeviceAddress deviceAddress; - void* hostAddress; -} VkDeviceOrHostAddressKHR; - -typedef union VkDeviceOrHostAddressConstKHR { - VkDeviceAddress deviceAddress; - const void* hostAddress; -} VkDeviceOrHostAddressConstKHR; - -typedef struct VkAccelerationStructureBuildRangeInfoKHR { - uint32_t primitiveCount; - uint32_t primitiveOffset; - uint32_t firstVertex; - uint32_t transformOffset; -} VkAccelerationStructureBuildRangeInfoKHR; - -typedef struct VkAccelerationStructureGeometryTrianglesDataKHR { - VkStructureType sType; - const void* pNext; - VkFormat vertexFormat; - VkDeviceOrHostAddressConstKHR vertexData; - VkDeviceSize vertexStride; - uint32_t maxVertex; - VkIndexType indexType; - VkDeviceOrHostAddressConstKHR indexData; - VkDeviceOrHostAddressConstKHR transformData; -} VkAccelerationStructureGeometryTrianglesDataKHR; - -typedef struct VkAccelerationStructureGeometryAabbsDataKHR { - VkStructureType sType; - const void* pNext; - VkDeviceOrHostAddressConstKHR data; - VkDeviceSize stride; -} VkAccelerationStructureGeometryAabbsDataKHR; - -typedef struct VkAccelerationStructureGeometryInstancesDataKHR { - VkStructureType sType; - const void* pNext; - VkBool32 arrayOfPointers; - VkDeviceOrHostAddressConstKHR data; -} VkAccelerationStructureGeometryInstancesDataKHR; - -typedef union VkAccelerationStructureGeometryDataKHR { - VkAccelerationStructureGeometryTrianglesDataKHR triangles; - VkAccelerationStructureGeometryAabbsDataKHR aabbs; - VkAccelerationStructureGeometryInstancesDataKHR instances; -} VkAccelerationStructureGeometryDataKHR; - -typedef struct VkAccelerationStructureGeometryKHR { - VkStructureType sType; - const void* pNext; - VkGeometryTypeKHR geometryType; - VkAccelerationStructureGeometryDataKHR geometry; - VkGeometryFlagsKHR flags; -} VkAccelerationStructureGeometryKHR; - -typedef struct VkAccelerationStructureBuildGeometryInfoKHR { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureTypeKHR type; - VkBuildAccelerationStructureFlagsKHR flags; - VkBuildAccelerationStructureModeKHR mode; - VkAccelerationStructureKHR srcAccelerationStructure; - VkAccelerationStructureKHR dstAccelerationStructure; - uint32_t geometryCount; - const VkAccelerationStructureGeometryKHR* pGeometries; - const VkAccelerationStructureGeometryKHR* const* ppGeometries; - VkDeviceOrHostAddressKHR scratchData; -} VkAccelerationStructureBuildGeometryInfoKHR; - -typedef struct VkAccelerationStructureCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureCreateFlagsKHR createFlags; - VkBuffer buffer; - VkDeviceSize offset; - VkDeviceSize size; - VkAccelerationStructureTypeKHR type; - VkDeviceAddress deviceAddress; -} VkAccelerationStructureCreateInfoKHR; - -typedef struct VkWriteDescriptorSetAccelerationStructureKHR { - VkStructureType sType; - const void* pNext; - uint32_t accelerationStructureCount; - const VkAccelerationStructureKHR* pAccelerationStructures; -} VkWriteDescriptorSetAccelerationStructureKHR; - -typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 accelerationStructure; - VkBool32 accelerationStructureCaptureReplay; - VkBool32 accelerationStructureIndirectBuild; - VkBool32 accelerationStructureHostCommands; - VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind; -} VkPhysicalDeviceAccelerationStructureFeaturesKHR; - -typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR { - VkStructureType sType; - void* pNext; - uint64_t maxGeometryCount; - uint64_t maxInstanceCount; - uint64_t maxPrimitiveCount; - uint32_t maxPerStageDescriptorAccelerationStructures; - uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures; - uint32_t maxDescriptorSetAccelerationStructures; - uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures; - uint32_t minAccelerationStructureScratchOffsetAlignment; -} VkPhysicalDeviceAccelerationStructurePropertiesKHR; - -typedef struct VkAccelerationStructureDeviceAddressInfoKHR { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureKHR accelerationStructure; -} VkAccelerationStructureDeviceAddressInfoKHR; - -typedef struct VkAccelerationStructureVersionInfoKHR { - VkStructureType sType; - const void* pNext; - const uint8_t* pVersionData; -} VkAccelerationStructureVersionInfoKHR; - -typedef struct VkCopyAccelerationStructureToMemoryInfoKHR { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureKHR src; - VkDeviceOrHostAddressKHR dst; - VkCopyAccelerationStructureModeKHR mode; -} VkCopyAccelerationStructureToMemoryInfoKHR; - -typedef struct VkCopyMemoryToAccelerationStructureInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceOrHostAddressConstKHR src; - VkAccelerationStructureKHR dst; - VkCopyAccelerationStructureModeKHR mode; -} VkCopyMemoryToAccelerationStructureInfoKHR; - -typedef struct VkCopyAccelerationStructureInfoKHR { - VkStructureType sType; - const void* pNext; - VkAccelerationStructureKHR src; - VkAccelerationStructureKHR dst; - VkCopyAccelerationStructureModeKHR mode; -} VkCopyAccelerationStructureInfoKHR; - -typedef struct VkAccelerationStructureBuildSizesInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceSize accelerationStructureSize; - VkDeviceSize updateScratchSize; - VkDeviceSize buildScratchSize; -} VkAccelerationStructureBuildSizesInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure); -typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator); -typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); -typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts); -typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); -typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); -typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); -typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride); -typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); -typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); -typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); -typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); -typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility); -typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR( - VkDevice device, - const VkAccelerationStructureCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkAccelerationStructureKHR* pAccelerationStructure); - -VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR( - VkDevice device, - VkAccelerationStructureKHR accelerationStructure, - const VkAllocationCallbacks* pAllocator); - -VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR( - VkCommandBuffer commandBuffer, - uint32_t infoCount, - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, - const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); - -VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR( - VkCommandBuffer commandBuffer, - uint32_t infoCount, - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, - const VkDeviceAddress* pIndirectDeviceAddresses, - const uint32_t* pIndirectStrides, - const uint32_t* const* ppMaxPrimitiveCounts); - -VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR( - VkDevice device, - VkDeferredOperationKHR deferredOperation, - uint32_t infoCount, - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, - const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos); - -VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR( - VkDevice device, - VkDeferredOperationKHR deferredOperation, - const VkCopyAccelerationStructureInfoKHR* pInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR( - VkDevice device, - VkDeferredOperationKHR deferredOperation, - const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR( - VkDevice device, - VkDeferredOperationKHR deferredOperation, - const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR( - VkDevice device, - uint32_t accelerationStructureCount, - const VkAccelerationStructureKHR* pAccelerationStructures, - VkQueryType queryType, - size_t dataSize, - void* pData, - size_t stride); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR( - VkCommandBuffer commandBuffer, - const VkCopyAccelerationStructureInfoKHR* pInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR( - VkCommandBuffer commandBuffer, - const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR( - VkCommandBuffer commandBuffer, - const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo); - -VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR( - VkDevice device, - const VkAccelerationStructureDeviceAddressInfoKHR* pInfo); - -VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR( - VkCommandBuffer commandBuffer, - uint32_t accelerationStructureCount, - const VkAccelerationStructureKHR* pAccelerationStructures, - VkQueryType queryType, - VkQueryPool queryPool, - uint32_t firstQuery); - -VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR( - VkDevice device, - const VkAccelerationStructureVersionInfoKHR* pVersionInfo, - VkAccelerationStructureCompatibilityKHR* pCompatibility); - -VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR( - VkDevice device, - VkAccelerationStructureBuildTypeKHR buildType, - const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, - const uint32_t* pMaxPrimitiveCounts, - VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo); -#endif - - -#define VK_KHR_ray_tracing_pipeline 1 -#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1 -#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline" - -typedef enum VkShaderGroupShaderKHR { - VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0, - VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1, - VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2, - VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3, - VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF -} VkShaderGroupShaderKHR; -typedef struct VkRayTracingShaderGroupCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkRayTracingShaderGroupTypeKHR type; - uint32_t generalShader; - uint32_t closestHitShader; - uint32_t anyHitShader; - uint32_t intersectionShader; - const void* pShaderGroupCaptureReplayHandle; -} VkRayTracingShaderGroupCreateInfoKHR; - -typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t maxPipelineRayPayloadSize; - uint32_t maxPipelineRayHitAttributeSize; -} VkRayTracingPipelineInterfaceCreateInfoKHR; - -typedef struct VkRayTracingPipelineCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkPipelineCreateFlags flags; - uint32_t stageCount; - const VkPipelineShaderStageCreateInfo* pStages; - uint32_t groupCount; - const VkRayTracingShaderGroupCreateInfoKHR* pGroups; - uint32_t maxPipelineRayRecursionDepth; - const VkPipelineLibraryCreateInfoKHR* pLibraryInfo; - const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface; - const VkPipelineDynamicStateCreateInfo* pDynamicState; - VkPipelineLayout layout; - VkPipeline basePipelineHandle; - int32_t basePipelineIndex; -} VkRayTracingPipelineCreateInfoKHR; - -typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 rayTracingPipeline; - VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay; - VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed; - VkBool32 rayTracingPipelineTraceRaysIndirect; - VkBool32 rayTraversalPrimitiveCulling; -} VkPhysicalDeviceRayTracingPipelineFeaturesKHR; - -typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR { - VkStructureType sType; - void* pNext; - uint32_t shaderGroupHandleSize; - uint32_t maxRayRecursionDepth; - uint32_t maxShaderGroupStride; - uint32_t shaderGroupBaseAlignment; - uint32_t shaderGroupHandleCaptureReplaySize; - uint32_t maxRayDispatchInvocationCount; - uint32_t shaderGroupHandleAlignment; - uint32_t maxRayHitAttributeSize; -} VkPhysicalDeviceRayTracingPipelinePropertiesKHR; - -typedef struct VkStridedDeviceAddressRegionKHR { - VkDeviceAddress deviceAddress; - VkDeviceSize stride; - VkDeviceSize size; -} VkStridedDeviceAddressRegionKHR; - -typedef struct VkTraceRaysIndirectCommandKHR { - uint32_t width; - uint32_t height; - uint32_t depth; -} VkTraceRaysIndirectCommandKHR; - -typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth); -typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); -typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); -typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress); -typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader); -typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR( - VkCommandBuffer commandBuffer, - const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, - const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, - const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, - const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, - uint32_t width, - uint32_t height, - uint32_t depth); - -VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR( - VkDevice device, - VkDeferredOperationKHR deferredOperation, - VkPipelineCache pipelineCache, - uint32_t createInfoCount, - const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, - const VkAllocationCallbacks* pAllocator, - VkPipeline* pPipelines); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR( - VkDevice device, - VkPipeline pipeline, - uint32_t firstGroup, - uint32_t groupCount, - size_t dataSize, - void* pData); - -VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR( - VkCommandBuffer commandBuffer, - const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, - const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, - const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, - const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, - VkDeviceAddress indirectDeviceAddress); - -VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR( - VkDevice device, - VkPipeline pipeline, - uint32_t group, - VkShaderGroupShaderKHR groupShader); - -VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR( - VkCommandBuffer commandBuffer, - uint32_t pipelineStackSize); -#endif - - -#define VK_KHR_ray_query 1 -#define VK_KHR_RAY_QUERY_SPEC_VERSION 1 -#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query" -typedef struct VkPhysicalDeviceRayQueryFeaturesKHR { - VkStructureType sType; - void* pNext; - VkBool32 rayQuery; -} VkPhysicalDeviceRayQueryFeaturesKHR; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_directfb.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_directfb.h deleted file mode 100644 index f75bd3a4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_directfb.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef VULKAN_DIRECTFB_H_ -#define VULKAN_DIRECTFB_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_EXT_directfb_surface 1 -#define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1 -#define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface" -typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; -typedef struct VkDirectFBSurfaceCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkDirectFBSurfaceCreateFlagsEXT flags; - IDirectFB* dfb; - IDirectFBSurface* surface; -} VkDirectFBSurfaceCreateInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateDirectFBSurfaceEXT)(VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); -typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB* dfb); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateDirectFBSurfaceEXT( - VkInstance instance, - const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); - -VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceDirectFBPresentationSupportEXT( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - IDirectFB* dfb); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_fuchsia.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_fuchsia.h deleted file mode 100644 index 03e27cb0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_fuchsia.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef VULKAN_FUCHSIA_H_ -#define VULKAN_FUCHSIA_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_FUCHSIA_imagepipe_surface 1 -#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1 -#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface" -typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; -typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA { - VkStructureType sType; - const void* pNext; - VkImagePipeSurfaceCreateFlagsFUCHSIA flags; - zx_handle_t imagePipeHandle; -} VkImagePipeSurfaceCreateInfoFUCHSIA; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateImagePipeSurfaceFUCHSIA( - VkInstance instance, - const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_ggp.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_ggp.h deleted file mode 100644 index 273c8800..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_ggp.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef VULKAN_GGP_H_ -#define VULKAN_GGP_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_GGP_stream_descriptor_surface 1 -#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1 -#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface" -typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; -typedef struct VkStreamDescriptorSurfaceCreateInfoGGP { - VkStructureType sType; - const void* pNext; - VkStreamDescriptorSurfaceCreateFlagsGGP flags; - GgpStreamDescriptor streamDescriptor; -} VkStreamDescriptorSurfaceCreateInfoGGP; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateStreamDescriptorSurfaceGGP)(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateStreamDescriptorSurfaceGGP( - VkInstance instance, - const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - - -#define VK_GGP_frame_token 1 -#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1 -#define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token" -typedef struct VkPresentFrameTokenGGP { - VkStructureType sType; - const void* pNext; - GgpFrameToken frameToken; -} VkPresentFrameTokenGGP; - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_ios.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_ios.h deleted file mode 100644 index 446a2698..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_ios.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef VULKAN_IOS_H_ -#define VULKAN_IOS_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_MVK_ios_surface 1 -#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3 -#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" -typedef VkFlags VkIOSSurfaceCreateFlagsMVK; -typedef struct VkIOSSurfaceCreateInfoMVK { - VkStructureType sType; - const void* pNext; - VkIOSSurfaceCreateFlagsMVK flags; - const void* pView; -} VkIOSSurfaceCreateInfoMVK; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK( - VkInstance instance, - const VkIOSSurfaceCreateInfoMVK* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_macos.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_macos.h deleted file mode 100644 index 35fcabe3..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_macos.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef VULKAN_MACOS_H_ -#define VULKAN_MACOS_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_MVK_macos_surface 1 -#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3 -#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" -typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; -typedef struct VkMacOSSurfaceCreateInfoMVK { - VkStructureType sType; - const void* pNext; - VkMacOSSurfaceCreateFlagsMVK flags; - const void* pView; -} VkMacOSSurfaceCreateInfoMVK; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK( - VkInstance instance, - const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_metal.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_metal.h deleted file mode 100644 index 99f097d9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_metal.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef VULKAN_METAL_H_ -#define VULKAN_METAL_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_EXT_metal_surface 1 - -#ifdef __OBJC__ -@class CAMetalLayer; -#else -typedef void CAMetalLayer; -#endif - -#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1 -#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface" -typedef VkFlags VkMetalSurfaceCreateFlagsEXT; -typedef struct VkMetalSurfaceCreateInfoEXT { - VkStructureType sType; - const void* pNext; - VkMetalSurfaceCreateFlagsEXT flags; - const CAMetalLayer* pLayer; -} VkMetalSurfaceCreateInfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateMetalSurfaceEXT( - VkInstance instance, - const VkMetalSurfaceCreateInfoEXT* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_vi.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_vi.h deleted file mode 100644 index 2e62d7d3..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_vi.h +++ /dev/null @@ -1,47 +0,0 @@ -#ifndef VULKAN_VI_H_ -#define VULKAN_VI_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_NN_vi_surface 1 -#define VK_NN_VI_SURFACE_SPEC_VERSION 1 -#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" -typedef VkFlags VkViSurfaceCreateFlagsNN; -typedef struct VkViSurfaceCreateInfoNN { - VkStructureType sType; - const void* pNext; - VkViSurfaceCreateFlagsNN flags; - void* window; -} VkViSurfaceCreateInfoNN; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN( - VkInstance instance, - const VkViSurfaceCreateInfoNN* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_wayland.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_wayland.h deleted file mode 100644 index f7b307e5..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_wayland.h +++ /dev/null @@ -1,54 +0,0 @@ -#ifndef VULKAN_WAYLAND_H_ -#define VULKAN_WAYLAND_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_KHR_wayland_surface 1 -#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 -#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" -typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; -typedef struct VkWaylandSurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkWaylandSurfaceCreateFlagsKHR flags; - struct wl_display* display; - struct wl_surface* surface; -} VkWaylandSurfaceCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); -typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR( - VkInstance instance, - const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); - -VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - struct wl_display* display); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_win32.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_win32.h deleted file mode 100644 index 4b561ea1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_win32.h +++ /dev/null @@ -1,315 +0,0 @@ -#ifndef VULKAN_WIN32_H_ -#define VULKAN_WIN32_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_KHR_win32_surface 1 -#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 -#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" -typedef VkFlags VkWin32SurfaceCreateFlagsKHR; -typedef struct VkWin32SurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkWin32SurfaceCreateFlagsKHR flags; - HINSTANCE hinstance; - HWND hwnd; -} VkWin32SurfaceCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); -typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR( - VkInstance instance, - const VkWin32SurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); - -VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex); -#endif - - -#define VK_KHR_external_memory_win32 1 -#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" -typedef struct VkImportMemoryWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagBits handleType; - HANDLE handle; - LPCWSTR name; -} VkImportMemoryWin32HandleInfoKHR; - -typedef struct VkExportMemoryWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - const SECURITY_ATTRIBUTES* pAttributes; - DWORD dwAccess; - LPCWSTR name; -} VkExportMemoryWin32HandleInfoKHR; - -typedef struct VkMemoryWin32HandlePropertiesKHR { - VkStructureType sType; - void* pNext; - uint32_t memoryTypeBits; -} VkMemoryWin32HandlePropertiesKHR; - -typedef struct VkMemoryGetWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - VkDeviceMemory memory; - VkExternalMemoryHandleTypeFlagBits handleType; -} VkMemoryGetWin32HandleInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( - VkDevice device, - const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, - HANDLE* pHandle); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( - VkDevice device, - VkExternalMemoryHandleTypeFlagBits handleType, - HANDLE handle, - VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); -#endif - - -#define VK_KHR_win32_keyed_mutex 1 -#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 -#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" -typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t acquireCount; - const VkDeviceMemory* pAcquireSyncs; - const uint64_t* pAcquireKeys; - const uint32_t* pAcquireTimeouts; - uint32_t releaseCount; - const VkDeviceMemory* pReleaseSyncs; - const uint64_t* pReleaseKeys; -} VkWin32KeyedMutexAcquireReleaseInfoKHR; - - - -#define VK_KHR_external_semaphore_win32 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" -typedef struct VkImportSemaphoreWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkSemaphoreImportFlags flags; - VkExternalSemaphoreHandleTypeFlagBits handleType; - HANDLE handle; - LPCWSTR name; -} VkImportSemaphoreWin32HandleInfoKHR; - -typedef struct VkExportSemaphoreWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - const SECURITY_ATTRIBUTES* pAttributes; - DWORD dwAccess; - LPCWSTR name; -} VkExportSemaphoreWin32HandleInfoKHR; - -typedef struct VkD3D12FenceSubmitInfoKHR { - VkStructureType sType; - const void* pNext; - uint32_t waitSemaphoreValuesCount; - const uint64_t* pWaitSemaphoreValues; - uint32_t signalSemaphoreValuesCount; - const uint64_t* pSignalSemaphoreValues; -} VkD3D12FenceSubmitInfoKHR; - -typedef struct VkSemaphoreGetWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - VkSemaphore semaphore; - VkExternalSemaphoreHandleTypeFlagBits handleType; -} VkSemaphoreGetWin32HandleInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( - VkDevice device, - const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( - VkDevice device, - const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, - HANDLE* pHandle); -#endif - - -#define VK_KHR_external_fence_win32 1 -#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 -#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" -typedef struct VkImportFenceWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - VkFence fence; - VkFenceImportFlags flags; - VkExternalFenceHandleTypeFlagBits handleType; - HANDLE handle; - LPCWSTR name; -} VkImportFenceWin32HandleInfoKHR; - -typedef struct VkExportFenceWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - const SECURITY_ATTRIBUTES* pAttributes; - DWORD dwAccess; - LPCWSTR name; -} VkExportFenceWin32HandleInfoKHR; - -typedef struct VkFenceGetWin32HandleInfoKHR { - VkStructureType sType; - const void* pNext; - VkFence fence; - VkExternalFenceHandleTypeFlagBits handleType; -} VkFenceGetWin32HandleInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); -typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( - VkDevice device, - const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( - VkDevice device, - const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, - HANDLE* pHandle); -#endif - - -#define VK_NV_external_memory_win32 1 -#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 -#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" -typedef struct VkImportMemoryWin32HandleInfoNV { - VkStructureType sType; - const void* pNext; - VkExternalMemoryHandleTypeFlagsNV handleType; - HANDLE handle; -} VkImportMemoryWin32HandleInfoNV; - -typedef struct VkExportMemoryWin32HandleInfoNV { - VkStructureType sType; - const void* pNext; - const SECURITY_ATTRIBUTES* pAttributes; - DWORD dwAccess; -} VkExportMemoryWin32HandleInfoNV; - -typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( - VkDevice device, - VkDeviceMemory memory, - VkExternalMemoryHandleTypeFlagsNV handleType, - HANDLE* pHandle); -#endif - - -#define VK_NV_win32_keyed_mutex 1 -#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2 -#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" -typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { - VkStructureType sType; - const void* pNext; - uint32_t acquireCount; - const VkDeviceMemory* pAcquireSyncs; - const uint64_t* pAcquireKeys; - const uint32_t* pAcquireTimeoutMilliseconds; - uint32_t releaseCount; - const VkDeviceMemory* pReleaseSyncs; - const uint64_t* pReleaseKeys; -} VkWin32KeyedMutexAcquireReleaseInfoNV; - - - -#define VK_EXT_full_screen_exclusive 1 -#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4 -#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive" - -typedef enum VkFullScreenExclusiveEXT { - VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0, - VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1, - VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2, - VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3, - VK_FULL_SCREEN_EXCLUSIVE_MAX_ENUM_EXT = 0x7FFFFFFF -} VkFullScreenExclusiveEXT; -typedef struct VkSurfaceFullScreenExclusiveInfoEXT { - VkStructureType sType; - void* pNext; - VkFullScreenExclusiveEXT fullScreenExclusive; -} VkSurfaceFullScreenExclusiveInfoEXT; - -typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT { - VkStructureType sType; - void* pNext; - VkBool32 fullScreenExclusiveSupported; -} VkSurfaceCapabilitiesFullScreenExclusiveEXT; - -typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT { - VkStructureType sType; - const void* pNext; - HMONITOR hmonitor; -} VkSurfaceFullScreenExclusiveWin32InfoEXT; - -typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); -typedef VkResult (VKAPI_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); -typedef VkResult (VKAPI_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain); -typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR* pModes); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModes2EXT( - VkPhysicalDevice physicalDevice, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - uint32_t* pPresentModeCount, - VkPresentModeKHR* pPresentModes); - -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireFullScreenExclusiveModeEXT( - VkDevice device, - VkSwapchainKHR swapchain); - -VKAPI_ATTR VkResult VKAPI_CALL vkReleaseFullScreenExclusiveModeEXT( - VkDevice device, - VkSwapchainKHR swapchain); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModes2EXT( - VkDevice device, - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, - VkDeviceGroupPresentModeFlagsKHR* pModes); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xcb.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xcb.h deleted file mode 100644 index c5441b23..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xcb.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef VULKAN_XCB_H_ -#define VULKAN_XCB_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_KHR_xcb_surface 1 -#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 -#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" -typedef VkFlags VkXcbSurfaceCreateFlagsKHR; -typedef struct VkXcbSurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkXcbSurfaceCreateFlagsKHR flags; - xcb_connection_t* connection; - xcb_window_t window; -} VkXcbSurfaceCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); -typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR( - VkInstance instance, - const VkXcbSurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); - -VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - xcb_connection_t* connection, - xcb_visualid_t visual_id); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xlib.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xlib.h deleted file mode 100644 index c54628a7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xlib.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef VULKAN_XLIB_H_ -#define VULKAN_XLIB_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_KHR_xlib_surface 1 -#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 -#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" -typedef VkFlags VkXlibSurfaceCreateFlagsKHR; -typedef struct VkXlibSurfaceCreateInfoKHR { - VkStructureType sType; - const void* pNext; - VkXlibSurfaceCreateFlagsKHR flags; - Display* dpy; - Window window; -} VkXlibSurfaceCreateInfoKHR; - -typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); -typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR( - VkInstance instance, - const VkXlibSurfaceCreateInfoKHR* pCreateInfo, - const VkAllocationCallbacks* pAllocator, - VkSurfaceKHR* pSurface); - -VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR( - VkPhysicalDevice physicalDevice, - uint32_t queueFamilyIndex, - Display* dpy, - VisualID visualID); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xlib_xrandr.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xlib_xrandr.h deleted file mode 100644 index 436432f8..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/include/vulkan/vulkan_xlib_xrandr.h +++ /dev/null @@ -1,45 +0,0 @@ -#ifndef VULKAN_XLIB_XRANDR_H_ -#define VULKAN_XLIB_XRANDR_H_ 1 - -/* -** Copyright (c) 2015-2020 The Khronos Group Inc. -** -** SPDX-License-Identifier: Apache-2.0 -*/ - -/* -** This header is generated from the Khronos Vulkan XML API Registry. -** -*/ - - -#ifdef __cplusplus -extern "C" { -#endif - - - -#define VK_EXT_acquire_xlib_display 1 -#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 -#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" -typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); -typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); - -#ifndef VK_NO_PROTOTYPES -VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT( - VkPhysicalDevice physicalDevice, - Display* dpy, - VkDisplayKHR display); - -VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT( - VkPhysicalDevice physicalDevice, - Display* dpy, - RROutput rrOutput, - VkDisplayKHR* pDisplay); -#endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/cgenerator.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/cgenerator.py deleted file mode 100644 index 11d54683..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/cgenerator.py +++ /dev/null @@ -1,405 +0,0 @@ -#!/usr/bin/python3 -i -# -# Copyright (c) 2013-2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 - -import os -import re -from generator import (GeneratorOptions, OutputGenerator, noneStr, - regSortFeatures, write) - - -class CGeneratorOptions(GeneratorOptions): - """CGeneratorOptions - subclass of GeneratorOptions. - - Adds options used by COutputGenerator objects during C language header - generation.""" - - def __init__(self, - prefixText="", - genFuncPointers=True, - protectFile=True, - protectFeature=True, - protectProto=None, - protectProtoStr=None, - apicall='', - apientry='', - apientryp='', - indentFuncProto=True, - indentFuncPointer=False, - alignFuncParam=0, - genEnumBeginEndRange=False, - genAliasMacro=False, - aliasMacro='', - **kwargs - ): - """Constructor. - Additional parameters beyond parent class: - - - prefixText - list of strings to prefix generated header with - (usually a copyright statement + calling convention macros). - - protectFile - True if multiple inclusion protection should be - generated (based on the filename) around the entire header. - - protectFeature - True if #ifndef..#endif protection should be - generated around a feature interface in the header file. - - genFuncPointers - True if function pointer typedefs should be - generated - - protectProto - If conditional protection should be generated - around prototype declarations, set to either '#ifdef' - to require opt-in (#ifdef protectProtoStr) or '#ifndef' - to require opt-out (#ifndef protectProtoStr). Otherwise - set to None. - - protectProtoStr - #ifdef/#ifndef symbol to use around prototype - declarations, if protectProto is set - - apicall - string to use for the function declaration prefix, - such as APICALL on Windows. - - apientry - string to use for the calling convention macro, - in typedefs, such as APIENTRY. - - apientryp - string to use for the calling convention macro - in function pointer typedefs, such as APIENTRYP. - - indentFuncProto - True if prototype declarations should put each - parameter on a separate line - - indentFuncPointer - True if typedefed function pointers should put each - parameter on a separate line - - alignFuncParam - if nonzero and parameters are being put on a - separate line, align parameter names at the specified column - - genEnumBeginEndRange - True if BEGIN_RANGE / END_RANGE macros should - be generated for enumerated types - - genAliasMacro - True if the OpenXR alias macro should be generated - for aliased types (unclear what other circumstances this is useful) - - aliasMacro - alias macro to inject when genAliasMacro is True""" - GeneratorOptions.__init__(self, **kwargs) - - self.prefixText = prefixText - """list of strings to prefix generated header with (usually a copyright statement + calling convention macros).""" - - self.genFuncPointers = genFuncPointers - """True if function pointer typedefs should be generated""" - - self.protectFile = protectFile - """True if multiple inclusion protection should be generated (based on the filename) around the entire header.""" - - self.protectFeature = protectFeature - """True if #ifndef..#endif protection should be generated around a feature interface in the header file.""" - - self.protectProto = protectProto - """If conditional protection should be generated around prototype declarations, set to either '#ifdef' to require opt-in (#ifdef protectProtoStr) or '#ifndef' to require opt-out (#ifndef protectProtoStr). Otherwise set to None.""" - - self.protectProtoStr = protectProtoStr - """#ifdef/#ifndef symbol to use around prototype declarations, if protectProto is set""" - - self.apicall = apicall - """string to use for the function declaration prefix, such as APICALL on Windows.""" - - self.apientry = apientry - """string to use for the calling convention macro, in typedefs, such as APIENTRY.""" - - self.apientryp = apientryp - """string to use for the calling convention macro in function pointer typedefs, such as APIENTRYP.""" - - self.indentFuncProto = indentFuncProto - """True if prototype declarations should put each parameter on a separate line""" - - self.indentFuncPointer = indentFuncPointer - """True if typedefed function pointers should put each parameter on a separate line""" - - self.alignFuncParam = alignFuncParam - """if nonzero and parameters are being put on a separate line, align parameter names at the specified column""" - - self.genEnumBeginEndRange = genEnumBeginEndRange - """True if BEGIN_RANGE / END_RANGE macros should be generated for enumerated types""" - - self.genAliasMacro = genAliasMacro - """True if the OpenXR alias macro should be generated for aliased types (unclear what other circumstances this is useful)""" - - self.aliasMacro = aliasMacro - """alias macro to inject when genAliasMacro is True""" - - self.codeGenerator = True - """True if this generator makes compilable code""" - - -class COutputGenerator(OutputGenerator): - """Generates C-language API interfaces.""" - - # This is an ordered list of sections in the header file. - TYPE_SECTIONS = ['include', 'define', 'basetype', 'handle', 'enum', - 'group', 'bitmask', 'funcpointer', 'struct'] - ALL_SECTIONS = TYPE_SECTIONS + ['commandPointer', 'command'] - - def __init__(self, *args, **kwargs): - super().__init__(*args, **kwargs) - # Internal state - accumulators for different inner block text - self.sections = {section: [] for section in self.ALL_SECTIONS} - self.feature_not_empty = False - self.may_alias = None - - def beginFile(self, genOpts): - OutputGenerator.beginFile(self, genOpts) - # C-specific - # - # Multiple inclusion protection & C++ wrappers. - if genOpts.protectFile and self.genOpts.filename: - headerSym = re.sub(r'\.h', '_h_', - os.path.basename(self.genOpts.filename)).upper() - write('#ifndef', headerSym, file=self.outFile) - write('#define', headerSym, '1', file=self.outFile) - self.newline() - - # User-supplied prefix text, if any (list of strings) - if genOpts.prefixText: - for s in genOpts.prefixText: - write(s, file=self.outFile) - - # C++ extern wrapper - after prefix lines so they can add includes. - self.newline() - write('#ifdef __cplusplus', file=self.outFile) - write('extern "C" {', file=self.outFile) - write('#endif', file=self.outFile) - self.newline() - - def endFile(self): - # C-specific - # Finish C++ wrapper and multiple inclusion protection - self.newline() - write('#ifdef __cplusplus', file=self.outFile) - write('}', file=self.outFile) - write('#endif', file=self.outFile) - if self.genOpts.protectFile and self.genOpts.filename: - self.newline() - write('#endif', file=self.outFile) - # Finish processing in superclass - OutputGenerator.endFile(self) - - def beginFeature(self, interface, emit): - # Start processing in superclass - OutputGenerator.beginFeature(self, interface, emit) - # C-specific - # Accumulate includes, defines, types, enums, function pointer typedefs, - # end function prototypes separately for this feature. They're only - # printed in endFeature(). - self.sections = {section: [] for section in self.ALL_SECTIONS} - self.feature_not_empty = False - - def endFeature(self): - "Actually write the interface to the output file." - # C-specific - if self.emit: - if self.feature_not_empty: - if self.genOpts.conventions.writeFeature(self.featureExtraProtect, self.genOpts.filename): - self.newline() - if self.genOpts.protectFeature: - write('#ifndef', self.featureName, file=self.outFile) - # If type declarations are needed by other features based on - # this one, it may be necessary to suppress the ExtraProtect, - # or move it below the 'for section...' loop. - if self.featureExtraProtect is not None: - write('#ifdef', self.featureExtraProtect, file=self.outFile) - self.newline() - write('#define', self.featureName, '1', file=self.outFile) - for section in self.TYPE_SECTIONS: - contents = self.sections[section] - if contents: - write('\n'.join(contents), file=self.outFile) - if self.genOpts.genFuncPointers and self.sections['commandPointer']: - write('\n'.join(self.sections['commandPointer']), file=self.outFile) - self.newline() - if self.sections['command']: - if self.genOpts.protectProto: - write(self.genOpts.protectProto, - self.genOpts.protectProtoStr, file=self.outFile) - write('\n'.join(self.sections['command']), end='', file=self.outFile) - if self.genOpts.protectProto: - write('#endif', file=self.outFile) - else: - self.newline() - if self.featureExtraProtect is not None: - write('#endif /*', self.featureExtraProtect, '*/', file=self.outFile) - if self.genOpts.protectFeature: - write('#endif /*', self.featureName, '*/', file=self.outFile) - # Finish processing in superclass - OutputGenerator.endFeature(self) - - def appendSection(self, section, text): - "Append a definition to the specified section" - # self.sections[section].append('SECTION: ' + section + '\n') - self.sections[section].append(text) - self.feature_not_empty = True - - def genType(self, typeinfo, name, alias): - "Generate type." - OutputGenerator.genType(self, typeinfo, name, alias) - typeElem = typeinfo.elem - - # Vulkan: - # Determine the category of the type, and the type section to add - # its definition to. - # 'funcpointer' is added to the 'struct' section as a workaround for - # internal issue #877, since structures and function pointer types - # can have cross-dependencies. - category = typeElem.get('category') - if category == 'funcpointer': - section = 'struct' - else: - section = category - - if category in ('struct', 'union'): - # If the type is a struct type, generate it using the - # special-purpose generator. - self.genStruct(typeinfo, name, alias) - else: - # OpenXR: this section was not under 'else:' previously, just fell through - if alias: - # If the type is an alias, just emit a typedef declaration - body = 'typedef ' + alias + ' ' + name + ';\n' - else: - # Replace tags with an APIENTRY-style string - # (from self.genOpts). Copy other text through unchanged. - # If the resulting text is an empty string, don't emit it. - body = noneStr(typeElem.text) - for elem in typeElem: - if elem.tag == 'apientry': - body += self.genOpts.apientry + noneStr(elem.tail) - else: - body += noneStr(elem.text) + noneStr(elem.tail) - if body: - # Add extra newline after multi-line entries. - if '\n' in body[0:-1]: - body += '\n' - self.appendSection(section, body) - - def genProtectString(self, protect_str): - """Generate protection string. - - Protection strings are the strings defining the OS/Platform/Graphics - requirements for a given OpenXR command. When generating the - language header files, we need to make sure the items specific to a - graphics API or OS platform are properly wrapped in #ifs.""" - protect_if_str = '' - protect_end_str = '' - if not protect_str: - return (protect_if_str, protect_end_str) - - if ',' in protect_str: - protect_list = protect_str.split(",") - protect_defs = ('defined(%s)' % d for d in protect_list) - protect_def_str = ' && '.join(protect_defs) - protect_if_str = '#if %s\n' % protect_def_str - protect_end_str = '#endif // %s\n' % protect_def_str - else: - protect_if_str = '#ifdef %s\n' % protect_str - protect_end_str = '#endif // %s\n' % protect_str - - return (protect_if_str, protect_end_str) - - def typeMayAlias(self, typeName): - if not self.may_alias: - # First time we've asked if a type may alias. - # So, let's populate the set of all names of types that may. - - # Everyone with an explicit mayalias="true" - self.may_alias = set(typeName - for typeName, data in self.registry.typedict.items() - if data.elem.get('mayalias') == 'true') - - # Every type mentioned in some other type's parentstruct attribute. - parent_structs = (otherType.elem.get('parentstruct') - for otherType in self.registry.typedict.values()) - self.may_alias.update(set(x for x in parent_structs - if x is not None)) - return typeName in self.may_alias - - def genStruct(self, typeinfo, typeName, alias): - """Generate struct (e.g. C "struct" type). - - This is a special case of the tag where the contents are - interpreted as a set of tags instead of freeform C - C type declarations. The tags are just like - tags - they are a declaration of a struct or union member. - Only simple member declarations are supported (no nested - structs etc.) - - If alias is not None, then this struct aliases another; just - generate a typedef of that alias.""" - OutputGenerator.genStruct(self, typeinfo, typeName, alias) - - typeElem = typeinfo.elem - - if alias: - body = 'typedef ' + alias + ' ' + typeName + ';\n' - else: - body = '' - (protect_begin, protect_end) = self.genProtectString(typeElem.get('protect')) - if protect_begin: - body += protect_begin - body += 'typedef ' + typeElem.get('category') - - # This is an OpenXR-specific alternative where aliasing refers - # to an inheritance hierarchy of types rather than C-level type - # aliases. - if self.genOpts.genAliasMacro and self.typeMayAlias(typeName): - body += ' ' + self.genOpts.aliasMacro - - body += ' ' + typeName + ' {\n' - - targetLen = self.getMaxCParamTypeLength(typeinfo) - for member in typeElem.findall('.//member'): - body += self.makeCParamDecl(member, targetLen + 4) - body += ';\n' - body += '} ' + typeName + ';\n' - if protect_end: - body += protect_end - - self.appendSection('struct', body) - - def genGroup(self, groupinfo, groupName, alias=None): - """Generate groups (e.g. C "enum" type). - - These are concatenated together with other types. - - If alias is not None, it is the name of another group type - which aliases this type; just generate that alias.""" - OutputGenerator.genGroup(self, groupinfo, groupName, alias) - groupElem = groupinfo.elem - - # After either enumerated type or alias paths, add the declaration - # to the appropriate section for the group being defined. - if groupElem.get('type') == 'bitmask': - section = 'bitmask' - else: - section = 'group' - - if alias: - # If the group name is aliased, just emit a typedef declaration - # for the alias. - body = 'typedef ' + alias + ' ' + groupName + ';\n' - self.appendSection(section, body) - else: - (section, body) = self.buildEnumCDecl(self.genOpts.genEnumBeginEndRange, groupinfo, groupName) - self.appendSection(section, "\n" + body) - - def genEnum(self, enuminfo, name, alias): - """Generate enumerants. - - tags may specify their values in several ways, but are usually - just integers.""" - OutputGenerator.genEnum(self, enuminfo, name, alias) - (_, strVal) = self.enumToValue(enuminfo.elem, False) - body = '#define ' + name.ljust(33) + ' ' + strVal - self.appendSection('enum', body) - - def genCmd(self, cmdinfo, name, alias): - "Command generation" - OutputGenerator.genCmd(self, cmdinfo, name, alias) - - # if alias: - # prefix = '// ' + name + ' is an alias of command ' + alias + '\n' - # else: - # prefix = '' - - prefix = '' - decls = self.makeCDecls(cmdinfo.elem) - self.appendSection('command', prefix + decls[0] + '\n') - if self.genOpts.genFuncPointers: - self.appendSection('commandPointer', decls[1]) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/conventions.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/conventions.py deleted file mode 100644 index 6de7348b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/conventions.py +++ /dev/null @@ -1,358 +0,0 @@ -#!/usr/bin/python3 -i -# -# Copyright (c) 2013-2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 - -# Base class for working-group-specific style conventions, -# used in generation. - -from enum import Enum - -# Type categories that respond "False" to isStructAlwaysValid -# basetype is home to typedefs like ..Bool32 -CATEGORIES_REQUIRING_VALIDATION = set(('handle', - 'enum', - 'bitmask', - 'basetype', - None)) - -# These are basic C types pulled in via openxr_platform_defines.h -TYPES_KNOWN_ALWAYS_VALID = set(('char', - 'float', - 'int8_t', 'uint8_t', - 'int32_t', 'uint32_t', - 'int64_t', 'uint64_t', - 'size_t', - 'uintptr_t', - 'int', - )) - - -class ProseListFormats(Enum): - """A connective, possibly with a quantifier.""" - AND = 0 - EACH_AND = 1 - OR = 2 - ANY_OR = 3 - - @classmethod - def from_string(cls, s): - if s == 'or': - return cls.OR - if s == 'and': - return cls.AND - return None - - @property - def connective(self): - if self in (ProseListFormats.OR, ProseListFormats.ANY_OR): - return 'or' - return 'and' - - def quantifier(self, n): - """Return the desired quantifier for a list of a given length.""" - if self == ProseListFormats.ANY_OR: - if n > 1: - return 'any of ' - elif self == ProseListFormats.EACH_AND: - if n > 2: - return 'each of ' - if n == 2: - return 'both of ' - return '' - - -class ConventionsBase: - """WG-specific conventions.""" - - def __init__(self): - self._command_prefix = None - self._type_prefix = None - - def formatExtension(self, name): - """Mark up an extension name as a link the spec.""" - return '`apiext:{}`'.format(name) - - @property - def null(self): - """Preferred spelling of NULL.""" - raise NotImplementedError - - def makeProseList(self, elements, fmt=ProseListFormats.AND, with_verb=False, *args, **kwargs): - """Make a (comma-separated) list for use in prose. - - Adds a connective (by default, 'and') - before the last element if there are more than 1. - - Adds the right one of "is" or "are" to the end if with_verb is true. - - Optionally adds a quantifier (like 'any') before a list of 2 or more, - if specified by fmt. - - Override with a different method or different call to - _implMakeProseList if you want to add a comma for two elements, - or not use a serial comma. - """ - return self._implMakeProseList(elements, fmt, with_verb, *args, **kwargs) - - @property - def struct_macro(self): - """Get the appropriate format macro for a structure. - - May override. - """ - return 'slink:' - - @property - def external_macro(self): - """Get the appropriate format macro for an external type like uint32_t. - - May override. - """ - return 'code:' - - def makeStructName(self, name): - """Prepend the appropriate format macro for a structure to a structure type name. - - Uses struct_macro, so just override that if you want to change behavior. - """ - return self.struct_macro + name - - def makeExternalTypeName(self, name): - """Prepend the appropriate format macro for an external type like uint32_t to a type name. - - Uses external_macro, so just override that if you want to change behavior. - """ - return self.external_macro + name - - def _implMakeProseList(self, elements, fmt, with_verb, comma_for_two_elts=False, serial_comma=True): - """Internal-use implementation to make a (comma-separated) list for use in prose. - - Adds a connective (by default, 'and') - before the last element if there are more than 1, - and only includes commas if there are more than 2 - (if comma_for_two_elts is False). - - Adds the right one of "is" or "are" to the end if with_verb is true. - - Optionally adds a quantifier (like 'any') before a list of 2 or more, - if specified by fmt. - - Don't edit these defaults, override self.makeProseList(). - """ - assert(serial_comma) # didn't implement what we didn't need - if isinstance(fmt, str): - fmt = ProseListFormats.from_string(fmt) - - my_elts = list(elements) - if len(my_elts) > 1: - my_elts[-1] = '{} {}'.format(fmt.connective, my_elts[-1]) - - if not comma_for_two_elts and len(my_elts) <= 2: - prose = ' '.join(my_elts) - else: - prose = ', '.join(my_elts) - - quantifier = fmt.quantifier(len(my_elts)) - - parts = [quantifier, prose] - - if with_verb: - if len(my_elts) > 1: - parts.append(' are') - else: - parts.append(' is') - return ''.join(parts) - - @property - def file_suffix(self): - """Return suffix of generated Asciidoctor files""" - raise NotImplementedError - - def api_name(self, spectype=None): - """Return API or specification name for citations in ref pages. - - spectype is the spec this refpage is for. - 'api' (the default value) is the main API Specification. - If an unrecognized spectype is given, returns None. - - Must implement.""" - raise NotImplementedError - - def should_insert_may_alias_macro(self, genOpts): - """Return true if we should insert a "may alias" macro in this file. - - Only used by OpenXR right now.""" - return False - - @property - def command_prefix(self): - """Return the expected prefix of commands/functions. - - Implemented in terms of api_prefix.""" - if not self._command_prefix: - self._command_prefix = self.api_prefix[:].replace('_', '').lower() - return self._command_prefix - - @property - def type_prefix(self): - """Return the expected prefix of type names. - - Implemented in terms of command_prefix (and in turn, api_prefix).""" - if not self._type_prefix: - self._type_prefix = ''.join( - (self.command_prefix[0:1].upper(), self.command_prefix[1:])) - return self._type_prefix - - @property - def api_prefix(self): - """Return API token prefix. - - Typically two uppercase letters followed by an underscore. - - Must implement.""" - raise NotImplementedError - - @property - def api_version_prefix(self): - """Return API core version token prefix. - - Implemented in terms of api_prefix. - - May override.""" - return self.api_prefix + 'VERSION_' - - @property - def KHR_prefix(self): - """Return extension name prefix for KHR extensions. - - Implemented in terms of api_prefix. - - May override.""" - return self.api_prefix + 'KHR_' - - @property - def EXT_prefix(self): - """Return extension name prefix for EXT extensions. - - Implemented in terms of api_prefix. - - May override.""" - return self.api_prefix + 'EXT_' - - def writeFeature(self, featureExtraProtect, filename): - """Return True if OutputGenerator.endFeature should write this feature. - - Defaults to always True. - Used in COutputGenerator. - - May override.""" - return True - - def requires_error_validation(self, return_type): - """Return True if the return_type element is an API result code - requiring error validation. - - Defaults to always False. - - May override.""" - return False - - @property - def required_errors(self): - """Return a list of required error codes for validation. - - Defaults to an empty list. - - May override.""" - return [] - - def is_voidpointer_alias(self, tag, text, tail): - """Return True if the declaration components (tag,text,tail) of an - element represents a void * type. - - Defaults to a reasonable implementation. - - May override.""" - return tag == 'type' and text == 'void' and tail.startswith('*') - - def make_voidpointer_alias(self, tail): - """Reformat a void * declaration to include the API alias macro. - - Defaults to a no-op. - - Must override if you actually want to use this feature in your project.""" - return tail - - def category_requires_validation(self, category): - """Return True if the given type 'category' always requires validation. - - Defaults to a reasonable implementation. - - May override.""" - return category in CATEGORIES_REQUIRING_VALIDATION - - def type_always_valid(self, typename): - """Return True if the given type name is always valid (never requires validation). - - This is for things like integers. - - Defaults to a reasonable implementation. - - May override.""" - return typename in TYPES_KNOWN_ALWAYS_VALID - - @property - def should_skip_checking_codes(self): - """Return True if more than the basic validation of return codes should - be skipped for a command.""" - - return False - - @property - def generate_index_terms(self): - """Return True if asiidoctor index terms should be generated as part - of an API interface from the docgenerator.""" - - return False - - @property - def generate_enum_table(self): - """Return True if asciidoctor tables describing enumerants in a - group should be generated as part of group generation.""" - return False - - @property - def generate_max_enum_in_docs(self): - """Return True if MAX_ENUM tokens should be generated in - documentation includes.""" - return False - - - def extension_include_string(self, ext): - """Return format string for include:: line for an extension appendix - file. ext is an object with the following members: - - name - extension string string - - vendor - vendor portion of name - - barename - remainder of name - - Must implement.""" - raise NotImplementedError - - @property - def refpage_generated_include_path(self): - """Return path relative to the generated reference pages, to the - generated API include files. - - Must implement.""" - raise NotImplementedError - - def valid_flag_bit(self, bitpos): - """Return True if bitpos is an allowed numeric bit position for - an API flag. - - Behavior depends on the data type used for flags (which may be 32 - or 64 bits), and may depend on assumptions about compiler - handling of sign bits in enumerated types, as well.""" - return True diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/generator.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/generator.py deleted file mode 100644 index 635ff810..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/generator.py +++ /dev/null @@ -1,1036 +0,0 @@ -#!/usr/bin/python3 -i -# -# Copyright (c) 2013-2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 -"""Base class for source/header/doc generators, as well as some utility functions.""" - -from __future__ import unicode_literals - -import io -import os -import pdb -import re -import shutil -import sys -import tempfile -try: - from pathlib import Path -except ImportError: - from pathlib2 import Path - -from spec_tools.util import getElemName, getElemType - - -def write(*args, **kwargs): - file = kwargs.pop('file', sys.stdout) - end = kwargs.pop('end', '\n') - file.write(' '.join(str(arg) for arg in args)) - file.write(end) - - -def noneStr(s): - """Return string argument, or "" if argument is None. - - Used in converting etree Elements into text. - s - string to convert""" - if s: - return s - return "" - - -def enquote(s): - """Return string argument with surrounding quotes, - for serialization into Python code.""" - if s: - return "'{}'".format(s) - return None - - -def regSortCategoryKey(feature): - """Sort key for regSortFeatures. - Sorts by category of the feature name string: - - - Core API features (those defined with a `` tag) - - ARB/KHR/OES (Khronos extensions) - - other (EXT/vendor extensions)""" - - if feature.elem.tag == 'feature': - return 0 - if (feature.category == 'ARB' - or feature.category == 'KHR' - or feature.category == 'OES'): - return 1 - - return 2 - - -def regSortOrderKey(feature): - """Sort key for regSortFeatures - key is the sortorder attribute.""" - - # print("regSortOrderKey {} -> {}".format(feature.name, feature.sortorder)) - return feature.sortorder - - -def regSortFeatureVersionKey(feature): - """Sort key for regSortFeatures - key is the feature version. - `` elements all have version number 0.""" - - return float(feature.versionNumber) - - -def regSortExtensionNumberKey(feature): - """Sort key for regSortFeatures - key is the extension number. - `` elements all have extension number 0.""" - - return int(feature.number) - - -def regSortFeatures(featureList): - """Default sort procedure for features. - - - Sorts by explicit sort order (default 0) relative to other features - - then by feature category ('feature' or 'extension'), - - then by version number (for features) - - then by extension number (for extensions)""" - featureList.sort(key=regSortExtensionNumberKey) - featureList.sort(key=regSortFeatureVersionKey) - featureList.sort(key=regSortCategoryKey) - featureList.sort(key=regSortOrderKey) - - -class GeneratorOptions: - """Base class for options used during header/documentation production. - - These options are target language independent, and used by - Registry.apiGen() and by base OutputGenerator objects.""" - - def __init__(self, - conventions=None, - filename=None, - directory='.', - genpath=None, - apiname=None, - profile=None, - versions='.*', - emitversions='.*', - defaultExtensions=None, - addExtensions=None, - removeExtensions=None, - emitExtensions=None, - emitSpirv=None, - reparentEnums=True, - sortProcedure=regSortFeatures): - """Constructor. - - Arguments: - - - conventions - may be mandatory for some generators: - an object that implements ConventionsBase - - filename - basename of file to generate, or None to write to stdout. - - directory - directory in which to generate files - - genpath - path to previously generated files, such as api.py - - apiname - string matching `` 'apiname' attribute, e.g. 'gl'. - - profile - string specifying API profile , e.g. 'core', or None. - - versions - regex matching API versions to process interfaces for. - Normally `'.*'` or `'[0-9][.][0-9]'` to match all defined versions. - - emitversions - regex matching API versions to actually emit - interfaces for (though all requested versions are considered - when deciding which interfaces to generate). For GL 4.3 glext.h, - this might be `'1[.][2-5]|[2-4][.][0-9]'`. - - defaultExtensions - If not None, a string which must in its - entirety match the pattern in the "supported" attribute of - the ``. Defaults to None. Usually the same as apiname. - - addExtensions - regex matching names of additional extensions - to include. Defaults to None. - - removeExtensions - regex matching names of extensions to - remove (after defaultExtensions and addExtensions). Defaults - to None. - - emitExtensions - regex matching names of extensions to actually emit - interfaces for (though all requested versions are considered when - deciding which interfaces to generate). - to None. - - emitSpirv - regex matching names of extensions and capabilities - to actually emit interfaces for. - - reparentEnums - move elements which extend an enumerated - type from or elements to the target - element. This is required for almost all purposes, but the - InterfaceGenerator relies on the list of interfaces in the - or being complete. Defaults to True. - - sortProcedure - takes a list of FeatureInfo objects and sorts - them in place to a preferred order in the generated output. - Default is core API versions, ARB/KHR/OES extensions, all other - extensions, by core API version number or extension number in each - group. - - The regex patterns can be None or empty, in which case they match - nothing.""" - self.conventions = conventions - """may be mandatory for some generators: - an object that implements ConventionsBase""" - - self.filename = filename - "basename of file to generate, or None to write to stdout." - - self.genpath = genpath - """path to previously generated files, such as api.py""" - - self.directory = directory - "directory in which to generate filename" - - self.apiname = apiname - "string matching `` 'apiname' attribute, e.g. 'gl'." - - self.profile = profile - "string specifying API profile , e.g. 'core', or None." - - self.versions = self.emptyRegex(versions) - """regex matching API versions to process interfaces for. - Normally `'.*'` or `'[0-9][.][0-9]'` to match all defined versions.""" - - self.emitversions = self.emptyRegex(emitversions) - """regex matching API versions to actually emit - interfaces for (though all requested versions are considered - when deciding which interfaces to generate). For GL 4.3 glext.h, - this might be `'1[.][2-5]|[2-4][.][0-9]'`.""" - - self.defaultExtensions = defaultExtensions - """If not None, a string which must in its - entirety match the pattern in the "supported" attribute of - the ``. Defaults to None. Usually the same as apiname.""" - - self.addExtensions = self.emptyRegex(addExtensions) - """regex matching names of additional extensions - to include. Defaults to None.""" - - self.removeExtensions = self.emptyRegex(removeExtensions) - """regex matching names of extensions to - remove (after defaultExtensions and addExtensions). Defaults - to None.""" - - self.emitExtensions = self.emptyRegex(emitExtensions) - """regex matching names of extensions to actually emit - interfaces for (though all requested versions are considered when - deciding which interfaces to generate).""" - - self.emitSpirv = self.emptyRegex(emitSpirv) - """regex matching names of extensions and capabilities - to actually emit interfaces for.""" - - self.reparentEnums = reparentEnums - """boolean specifying whether to remove elements from - or when extending an type.""" - - self.sortProcedure = sortProcedure - """takes a list of FeatureInfo objects and sorts - them in place to a preferred order in the generated output. - Default is core API versions, ARB/KHR/OES extensions, all - other extensions, alphabetically within each group.""" - - self.codeGenerator = False - """True if this generator makes compilable code""" - - def emptyRegex(self, pat): - """Substitute a regular expression which matches no version - or extension names for None or the empty string.""" - if not pat: - return '_nomatch_^' - - return pat - - -class OutputGenerator: - """Generate specified API interfaces in a specific style, such as a C header. - - Base class for generating API interfaces. - Manages basic logic, logging, and output file control. - Derived classes actually generate formatted output. - """ - - # categoryToPath - map XML 'category' to include file directory name - categoryToPath = { - 'bitmask': 'flags', - 'enum': 'enums', - 'funcpointer': 'funcpointers', - 'handle': 'handles', - 'define': 'defines', - 'basetype': 'basetypes', - } - - def __init__(self, errFile=sys.stderr, warnFile=sys.stderr, diagFile=sys.stdout): - """Constructor - - - errFile, warnFile, diagFile - file handles to write errors, - warnings, diagnostics to. May be None to not write.""" - self.outFile = None - self.errFile = errFile - self.warnFile = warnFile - self.diagFile = diagFile - # Internal state - self.featureName = None - self.genOpts = None - self.registry = None - self.featureDictionary = {} - # Used for extension enum value generation - self.extBase = 1000000000 - self.extBlockSize = 1000 - self.madeDirs = {} - - # API dictionary, which may be loaded by the beginFile method of - # derived generators. - self.apidict = None - - def logMsg(self, level, *args): - """Write a message of different categories to different - destinations. - - - `level` - - 'diag' (diagnostic, voluminous) - - 'warn' (warning) - - 'error' (fatal error - raises exception after logging) - - - `*args` - print()-style arguments to direct to corresponding log""" - if level == 'error': - strfile = io.StringIO() - write('ERROR:', *args, file=strfile) - if self.errFile is not None: - write(strfile.getvalue(), file=self.errFile) - raise UserWarning(strfile.getvalue()) - elif level == 'warn': - if self.warnFile is not None: - write('WARNING:', *args, file=self.warnFile) - elif level == 'diag': - if self.diagFile is not None: - write('DIAG:', *args, file=self.diagFile) - else: - raise UserWarning( - '*** FATAL ERROR in Generator.logMsg: unknown level:' + level) - - def enumToValue(self, elem, needsNum): - """Parse and convert an `` tag into a value. - - Returns a list: - - - first element - integer representation of the value, or None - if needsNum is False. The value must be a legal number - if needsNum is True. - - second element - string representation of the value - - There are several possible representations of values. - - - A 'value' attribute simply contains the value. - - A 'bitpos' attribute defines a value by specifying the bit - position which is set in that value. - - An 'offset','extbase','extends' triplet specifies a value - as an offset to a base value defined by the specified - 'extbase' extension name, which is then cast to the - typename specified by 'extends'. This requires probing - the registry database, and imbeds knowledge of the - API extension enum scheme in this function. - - An 'alias' attribute contains the name of another enum - which this is an alias of. The other enum must be - declared first when emitting this enum.""" - name = elem.get('name') - numVal = None - if 'value' in elem.keys(): - value = elem.get('value') - # print('About to translate value =', value, 'type =', type(value)) - if needsNum: - numVal = int(value, 0) - # If there's a non-integer, numeric 'type' attribute (e.g. 'u' or - # 'ull'), append it to the string value. - # t = enuminfo.elem.get('type') - # if t is not None and t != '' and t != 'i' and t != 's': - # value += enuminfo.type - self.logMsg('diag', 'Enum', name, '-> value [', numVal, ',', value, ']') - return [numVal, value] - if 'bitpos' in elem.keys(): - value = elem.get('bitpos') - bitpos = int(value, 0) - numVal = 1 << bitpos - value = '0x%08x' % numVal - if bitpos >= 32: - value = value + 'ULL' - self.logMsg('diag', 'Enum', name, '-> bitpos [', numVal, ',', value, ']') - return [numVal, value] - if 'offset' in elem.keys(): - # Obtain values in the mapping from the attributes - enumNegative = False - offset = int(elem.get('offset'), 0) - extnumber = int(elem.get('extnumber'), 0) - extends = elem.get('extends') - if 'dir' in elem.keys(): - enumNegative = True - self.logMsg('diag', 'Enum', name, 'offset =', offset, - 'extnumber =', extnumber, 'extends =', extends, - 'enumNegative =', enumNegative) - # Now determine the actual enumerant value, as defined - # in the "Layers and Extensions" appendix of the spec. - numVal = self.extBase + (extnumber - 1) * self.extBlockSize + offset - if enumNegative: - numVal *= -1 - value = '%d' % numVal - # More logic needed! - self.logMsg('diag', 'Enum', name, '-> offset [', numVal, ',', value, ']') - return [numVal, value] - if 'alias' in elem.keys(): - return [None, elem.get('alias')] - return [None, None] - - def checkDuplicateEnums(self, enums): - """Check enumerated values for duplicates. - - - enums - list of `` Elements - - returns the list with duplicates stripped""" - # Dictionaries indexed by name and numeric value. - # Entries are [ Element, numVal, strVal ] matching name or value - - nameMap = {} - valueMap = {} - - stripped = [] - for elem in enums: - name = elem.get('name') - (numVal, strVal) = self.enumToValue(elem, True) - - if name in nameMap: - # Duplicate name found; check values - (name2, numVal2, strVal2) = nameMap[name] - - # Duplicate enum values for the same name are benign. This - # happens when defining the same enum conditionally in - # several extension blocks. - if (strVal2 == strVal or (numVal is not None - and numVal == numVal2)): - True - # self.logMsg('info', 'checkDuplicateEnums: Duplicate enum (' + name + - # ') found with the same value:' + strVal) - else: - self.logMsg('warn', 'checkDuplicateEnums: Duplicate enum (' + name - + ') found with different values:' + strVal - + ' and ' + strVal2) - - # Don't add the duplicate to the returned list - continue - elif numVal in valueMap: - # Duplicate value found (such as an alias); report it, but - # still add this enum to the list. - (name2, numVal2, strVal2) = valueMap[numVal] - - msg = 'Two enums found with the same value: {} = {} = {}'.format( - name, name2.get('name'), strVal) - self.logMsg('error', msg) - - # Track this enum to detect followon duplicates - nameMap[name] = [elem, numVal, strVal] - if numVal is not None: - valueMap[numVal] = [elem, numVal, strVal] - - # Add this enum to the list - stripped.append(elem) - - # Return the list - return stripped - - def buildEnumCDecl(self, expand, groupinfo, groupName): - """Generate the C declaration for an enum""" - groupElem = groupinfo.elem - - # Determine the required bit width for the enum group. - # 32 is the default, which generates C enum types for the values. - bitwidth = 32 - - # If the constFlagBits preference is set, 64 is the default for bitmasks - if self.genOpts.conventions.constFlagBits and groupElem.get('type') == 'bitmask': - bitwidth = 64 - - # Check for an explicitly defined bitwidth, which will override any defaults. - if groupElem.get('bitwidth'): - try: - bitwidth = int(groupElem.get('bitwidth')) - except ValueError as ve: - self.logMsg('error', 'Invalid value for bitwidth attribute (', groupElem.get('bitwidth'), ') for ', groupName, ' - must be an integer value\n') - exit(1) - - # Bitmask types support 64-bit flags, so have different handling - if groupElem.get('type') == 'bitmask': - - # Validate the bitwidth and generate values appropriately - # Bitmask flags up to 64-bit are generated as static const uint64_t values - # Bitmask flags up to 32-bit are generated as C enum values - if bitwidth > 64: - self.logMsg('error', 'Invalid value for bitwidth attribute (', groupElem.get('bitwidth'), ') for bitmask type ', groupName, ' - must be less than or equal to 64\n') - exit(1) - elif bitwidth > 32: - return self.buildEnumCDecl_Bitmask(groupinfo, groupName) - else: - return self.buildEnumCDecl_Enum(expand, groupinfo, groupName) - else: - # Validate the bitwidth and generate values appropriately - # Enum group types up to 32-bit are generated as C enum values - if bitwidth > 32: - self.logMsg('error', 'Invalid value for bitwidth attribute (', groupElem.get('bitwidth'), ') for enum type ', groupName, ' - must be less than or equal to 32\n') - exit(1) - else: - return self.buildEnumCDecl_Enum(expand, groupinfo, groupName) - - def buildEnumCDecl_Bitmask(self, groupinfo, groupName): - """Generate the C declaration for an "enum" that is actually a - set of flag bits""" - groupElem = groupinfo.elem - flagTypeName = groupinfo.flagType.elem.get('name') - - # Prefix - body = "// Flag bits for " + flagTypeName + "\n" - - # Maximum allowable value for a flag (unsigned 64-bit integer) - maxValidValue = 2**(64) - 1 - minValidValue = 0 - - # Loop over the nested 'enum' tags. - for elem in groupElem.findall('enum'): - # Convert the value to an integer and use that to track min/max. - # Values of form -(number) are accepted but nothing more complex. - # Should catch exceptions here for more complex constructs. Not yet. - (numVal, strVal) = self.enumToValue(elem, True) - name = elem.get('name') - - # Range check for the enum value - if numVal is not None and (numVal > maxValidValue or numVal < minValidValue): - self.logMsg('error', 'Allowable range for flag types in C is [', minValidValue, ',', maxValidValue, '], but', name, 'flag has a value outside of this (', strVal, ')\n') - exit(1) - - body += self.genRequirements(name, mustBeFound = False) - body += "static const {} {} = {};\n".format(flagTypeName, name, strVal) - - # Postfix - - return ("bitmask", body) - - def buildEnumCDecl_Enum(self, expand, groupinfo, groupName): - """Generate the C declaration for an enumerated type""" - groupElem = groupinfo.elem - - # Break the group name into prefix and suffix portions for range - # enum generation - expandName = re.sub(r'([0-9a-z_])([A-Z0-9])', r'\1_\2', groupName).upper() - expandPrefix = expandName - expandSuffix = '' - expandSuffixMatch = re.search(r'[A-Z][A-Z]+$', groupName) - if expandSuffixMatch: - expandSuffix = '_' + expandSuffixMatch.group() - # Strip off the suffix from the prefix - expandPrefix = expandName.rsplit(expandSuffix, 1)[0] - - # Prefix - body = ["typedef enum %s {" % groupName] - - # @@ Should use the type="bitmask" attribute instead - isEnum = ('FLAG_BITS' not in expandPrefix) - - # Allowable range for a C enum - which is that of a signed 32-bit integer - maxValidValue = 2**(32 - 1) - 1 - minValidValue = (maxValidValue * -1) - 1 - - - # Get a list of nested 'enum' tags. - enums = groupElem.findall('enum') - - # Check for and report duplicates, and return a list with them - # removed. - enums = self.checkDuplicateEnums(enums) - - # Loop over the nested 'enum' tags. Keep track of the minimum and - # maximum numeric values, if they can be determined; but only for - # core API enumerants, not extension enumerants. This is inferred - # by looking for 'extends' attributes. - minName = None - - # Accumulate non-numeric enumerant values separately and append - # them following the numeric values, to allow for aliases. - # NOTE: this doesn't do a topological sort yet, so aliases of - # aliases can still get in the wrong order. - aliasText = [] - - for elem in enums: - # Convert the value to an integer and use that to track min/max. - # Values of form -(number) are accepted but nothing more complex. - # Should catch exceptions here for more complex constructs. Not yet. - (numVal, strVal) = self.enumToValue(elem, True) - name = elem.get('name') - - # Extension enumerants are only included if they are required - if self.isEnumRequired(elem): - # Indent requirements comment, if there is one - decl = self.genRequirements(name, mustBeFound = False) - if decl != '': - decl = ' ' + decl - decl += " {} = {},".format(name, strVal) - if numVal is not None: - body.append(decl) - else: - aliasText.append(decl) - - # Range check for the enum value - if numVal is not None and (numVal > maxValidValue or numVal < minValidValue): - self.logMsg('error', 'Allowable range for C enum types is [', minValidValue, ',', maxValidValue, '], but', name, 'has a value outside of this (', strVal, ')\n') - exit(1) - - - # Don't track min/max for non-numbers (numVal is None) - if isEnum and numVal is not None and elem.get('extends') is None: - if minName is None: - minName = maxName = name - minValue = maxValue = numVal - elif numVal < minValue: - minName = name - minValue = numVal - elif numVal > maxValue: - maxName = name - maxValue = numVal - - # Now append the non-numeric enumerant values - body.extend(aliasText) - - # Generate min/max value tokens - legacy use case. - if isEnum and expand: - body.extend((" {}_BEGIN_RANGE{} = {},".format(expandPrefix, expandSuffix, minName), - " {}_END_RANGE{} = {},".format( - expandPrefix, expandSuffix, maxName), - " {}_RANGE_SIZE{} = ({} - {} + 1),".format(expandPrefix, expandSuffix, maxName, minName))) - - # Generate a range-padding value to ensure the enum is 32 bits, but - # only in code generators, so it doesn't appear in documentation - if (self.genOpts.codeGenerator or - self.conventions.generate_max_enum_in_docs): - body.append(" {}_MAX_ENUM{} = 0x7FFFFFFF".format( - expandPrefix, expandSuffix)) - - # Postfix - body.append("} %s;" % groupName) - - # Determine appropriate section for this declaration - if groupElem.get('type') == 'bitmask': - section = 'bitmask' - else: - section = 'group' - - return (section, '\n'.join(body)) - - def makeDir(self, path): - """Create a directory, if not already done. - - Generally called from derived generators creating hierarchies.""" - self.logMsg('diag', 'OutputGenerator::makeDir(' + path + ')') - if path not in self.madeDirs: - # This can get race conditions with multiple writers, see - # https://stackoverflow.com/questions/273192/ - if not os.path.exists(path): - os.makedirs(path) - self.madeDirs[path] = None - - def beginFile(self, genOpts): - """Start a new interface file - - - genOpts - GeneratorOptions controlling what's generated and how""" - self.genOpts = genOpts - self.should_insert_may_alias_macro = \ - self.genOpts.conventions.should_insert_may_alias_macro(self.genOpts) - - # Try to import the API dictionary, api.py, if it exists. Nothing in - # api.py cannot be extracted directly from the XML, and in the - # future we should do that. - if self.genOpts.genpath is not None: - try: - sys.path.insert(0, self.genOpts.genpath) - import api - self.apidict = api - except ImportError: - self.apidict = None - - self.conventions = genOpts.conventions - - # Open a temporary file for accumulating output. - if self.genOpts.filename is not None: - self.outFile = tempfile.NamedTemporaryFile(mode='w', encoding='utf-8', newline='\n', delete=False) - else: - self.outFile = sys.stdout - - def endFile(self): - if self.errFile: - self.errFile.flush() - if self.warnFile: - self.warnFile.flush() - if self.diagFile: - self.diagFile.flush() - self.outFile.flush() - if self.outFile != sys.stdout and self.outFile != sys.stderr: - self.outFile.close() - - # On successfully generating output, move the temporary file to the - # target file. - if self.genOpts.filename is not None: - if sys.platform == 'win32': - directory = Path(self.genOpts.directory) - if not Path.exists(directory): - os.makedirs(directory) - shutil.copy(self.outFile.name, self.genOpts.directory + '/' + self.genOpts.filename) - os.remove(self.outFile.name) - self.genOpts = None - - def beginFeature(self, interface, emit): - """Write interface for a feature and tag generated features as having been done. - - - interface - element for the `` / `` to generate - - emit - actually write to the header only when True""" - self.emit = emit - self.featureName = interface.get('name') - # If there's an additional 'protect' attribute in the feature, save it - self.featureExtraProtect = interface.get('protect') - - def endFeature(self): - """Finish an interface file, closing it when done. - - Derived classes responsible for emitting feature""" - self.featureName = None - self.featureExtraProtect = None - - def genRequirements(self, name, mustBeFound = True): - """Generate text showing what core versions and extensions introduce - an API. This exists in the base Generator class because it's used by - the shared enumerant-generating interfaces (buildEnumCDecl, etc.). - Here it returns an empty string for most generators, but can be - overridden by e.g. DocGenerator. - - - name - name of the API - - mustBeFound - If True, when requirements for 'name' cannot be - determined, a warning comment is generated. - """ - - return '' - - def validateFeature(self, featureType, featureName): - """Validate we're generating something only inside a `` tag""" - if self.featureName is None: - raise UserWarning('Attempt to generate', featureType, - featureName, 'when not in feature') - - def genType(self, typeinfo, name, alias): - """Generate interface for a type - - - typeinfo - TypeInfo for a type - - Extend to generate as desired in your derived class.""" - self.validateFeature('type', name) - - def genStruct(self, typeinfo, typeName, alias): - """Generate interface for a C "struct" type. - - - typeinfo - TypeInfo for a type interpreted as a struct - - Extend to generate as desired in your derived class.""" - self.validateFeature('struct', typeName) - - # The mixed-mode tags may contain no-op tags. - # It is convenient to remove them here where all output generators - # will benefit. - for member in typeinfo.elem.findall('.//member'): - for comment in member.findall('comment'): - member.remove(comment) - - def genGroup(self, groupinfo, groupName, alias): - """Generate interface for a group of enums (C "enum") - - - groupinfo - GroupInfo for a group. - - Extend to generate as desired in your derived class.""" - - self.validateFeature('group', groupName) - - def genEnum(self, enuminfo, typeName, alias): - """Generate interface for an enum (constant). - - - enuminfo - EnumInfo for an enum - - name - enum name - - Extend to generate as desired in your derived class.""" - self.validateFeature('enum', typeName) - - def genCmd(self, cmd, cmdinfo, alias): - """Generate interface for a command. - - - cmdinfo - CmdInfo for a command - - Extend to generate as desired in your derived class.""" - self.validateFeature('command', cmdinfo) - - def genSpirv(self, spirv, spirvinfo, alias): - """Generate interface for a spirv element. - - - spirvinfo - SpirvInfo for a command - - Extend to generate as desired in your derived class.""" - return - - def makeProtoName(self, name, tail): - """Turn a `` `` into C-language prototype - and typedef declarations for that name. - - - name - contents of `` tag - - tail - whatever text follows that tag in the Element""" - return self.genOpts.apientry + name + tail - - def makeTypedefName(self, name, tail): - """Make the function-pointer typedef name for a command.""" - return '(' + self.genOpts.apientryp + 'PFN_' + name + tail + ')' - - def makeCParamDecl(self, param, aligncol): - """Return a string which is an indented, formatted - declaration for a `` or `` block (e.g. function parameter - or structure/union member). - - - param - Element (`` or ``) to format - - aligncol - if non-zero, attempt to align the nested `` element - at this column""" - indent = ' ' - paramdecl = indent + noneStr(param.text) - for elem in param: - text = noneStr(elem.text) - tail = noneStr(elem.tail) - - if self.should_insert_may_alias_macro and self.genOpts.conventions.is_voidpointer_alias(elem.tag, text, tail): - # OpenXR-specific macro insertion - but not in apiinc for the spec - tail = self.genOpts.conventions.make_voidpointer_alias(tail) - if elem.tag == 'name' and aligncol > 0: - self.logMsg('diag', 'Aligning parameter', elem.text, 'to column', self.genOpts.alignFuncParam) - # Align at specified column, if possible - paramdecl = paramdecl.rstrip() - oldLen = len(paramdecl) - # This works around a problem where very long type names - - # longer than the alignment column - would run into the tail - # text. - paramdecl = paramdecl.ljust(aligncol - 1) + ' ' - newLen = len(paramdecl) - self.logMsg('diag', 'Adjust length of parameter decl from', oldLen, 'to', newLen, ':', paramdecl) - paramdecl += text + tail - if aligncol == 0: - # Squeeze out multiple spaces other than the indentation - paramdecl = indent + ' '.join(paramdecl.split()) - return paramdecl - - def getCParamTypeLength(self, param): - """Return the length of the type field is an indented, formatted - declaration for a `` or `` block (e.g. function parameter - or structure/union member). - - - param - Element (`` or ``) to identify""" - - # Allow for missing tag - newLen = 0 - paramdecl = ' ' + noneStr(param.text) - for elem in param: - text = noneStr(elem.text) - tail = noneStr(elem.tail) - - if self.should_insert_may_alias_macro and self.genOpts.conventions.is_voidpointer_alias(elem.tag, text, tail): - # OpenXR-specific macro insertion - tail = self.genOpts.conventions.make_voidpointer_alias(tail) - if elem.tag == 'name': - # Align at specified column, if possible - newLen = len(paramdecl.rstrip()) - self.logMsg('diag', 'Identifying length of', elem.text, 'as', newLen) - paramdecl += text + tail - - return newLen - - def getMaxCParamTypeLength(self, info): - """Return the length of the longest type field for a member/parameter. - - - info - TypeInfo or CommandInfo. - """ - lengths = (self.getCParamTypeLength(member) - for member in info.getMembers()) - return max(lengths) - - def getHandleParent(self, typename): - """Get the parent of a handle object.""" - info = self.registry.typedict.get(typename) - if info is None: - return None - - elem = info.elem - if elem is not None: - return elem.get('parent') - - return None - - def iterateHandleAncestors(self, typename): - """Iterate through the ancestors of a handle type.""" - current = self.getHandleParent(typename) - while current is not None: - yield current - current = self.getHandleParent(current) - - def getHandleAncestors(self, typename): - """Get the ancestors of a handle object.""" - return list(self.iterateHandleAncestors(typename)) - - def getTypeCategory(self, typename): - """Get the category of a type.""" - info = self.registry.typedict.get(typename) - if info is None: - return None - - elem = info.elem - if elem is not None: - return elem.get('category') - return None - - def isStructAlwaysValid(self, structname): - """Try to do check if a structure is always considered valid (i.e. there's no rules to its acceptance).""" - # A conventions object is required for this call. - if not self.conventions: - raise RuntimeError("To use isStructAlwaysValid, be sure your options include a Conventions object.") - - if self.conventions.type_always_valid(structname): - return True - - category = self.getTypeCategory(structname) - if self.conventions.category_requires_validation(category): - return False - - info = self.registry.typedict.get(structname) - assert(info is not None) - - members = info.getMembers() - - for member in members: - member_name = getElemName(member) - if member_name in (self.conventions.structtype_member_name, - self.conventions.nextpointer_member_name): - return False - - if member.get('noautovalidity'): - return False - - member_type = getElemType(member) - - if member_type in ('void', 'char') or self.paramIsArray(member) or self.paramIsPointer(member): - return False - - if self.conventions.type_always_valid(member_type): - continue - - member_category = self.getTypeCategory(member_type) - - if self.conventions.category_requires_validation(member_category): - return False - - if member_category in ('struct', 'union'): - if self.isStructAlwaysValid(member_type) is False: - return False - - return True - - def isEnumRequired(self, elem): - """Return True if this `` element is - required, False otherwise - - - elem - `` element to test""" - required = elem.get('required') is not None - self.logMsg('diag', 'isEnumRequired:', elem.get('name'), - '->', required) - return required - - # @@@ This code is overridden by equivalent code now run in - # @@@ Registry.generateFeature - - required = False - - extname = elem.get('extname') - if extname is not None: - # 'supported' attribute was injected when the element was - # moved into the group in Registry.parseTree() - if self.genOpts.defaultExtensions == elem.get('supported'): - required = True - elif re.match(self.genOpts.addExtensions, extname) is not None: - required = True - elif elem.get('version') is not None: - required = re.match(self.genOpts.emitversions, elem.get('version')) is not None - else: - required = True - - return required - - def makeCDecls(self, cmd): - """Return C prototype and function pointer typedef for a - `` Element, as a two-element list of strings. - - - cmd - Element containing a `` tag""" - proto = cmd.find('proto') - params = cmd.findall('param') - # Begin accumulating prototype and typedef strings - pdecl = self.genOpts.apicall - tdecl = 'typedef ' - - # Insert the function return type/name. - # For prototypes, add APIENTRY macro before the name - # For typedefs, add (APIENTRY *) around the name and - # use the PFN_cmdnameproc naming convention. - # Done by walking the tree for element by element. - # etree has elem.text followed by (elem[i], elem[i].tail) - # for each child element and any following text - # Leading text - pdecl += noneStr(proto.text) - tdecl += noneStr(proto.text) - # For each child element, if it's a wrap in appropriate - # declaration. Otherwise append its contents and tail contents. - for elem in proto: - text = noneStr(elem.text) - tail = noneStr(elem.tail) - if elem.tag == 'name': - pdecl += self.makeProtoName(text, tail) - tdecl += self.makeTypedefName(text, tail) - else: - pdecl += text + tail - tdecl += text + tail - - if self.genOpts.alignFuncParam == 0: - # Squeeze out multiple spaces - there is no indentation - pdecl = ' '.join(pdecl.split()) - tdecl = ' '.join(tdecl.split()) - - # Now add the parameter declaration list, which is identical - # for prototypes and typedefs. Concatenate all the text from - # a node without the tags. No tree walking required - # since all tags are ignored. - # Uses: self.indentFuncProto - # self.indentFuncPointer - # self.alignFuncParam - n = len(params) - # Indented parameters - if n > 0: - indentdecl = '(\n' - indentdecl += ',\n'.join(self.makeCParamDecl(p, self.genOpts.alignFuncParam) - for p in params) - indentdecl += ');' - else: - indentdecl = '(void);' - # Non-indented parameters - paramdecl = '(' - if n > 0: - paramnames = (''.join(t for t in p.itertext()) - for p in params) - paramdecl += ', '.join(paramnames) - else: - paramdecl += 'void' - paramdecl += ");" - return [pdecl + indentdecl, tdecl + paramdecl] - - def newline(self): - """Print a newline to the output file (utility function)""" - write('', file=self.outFile) - - def setRegistry(self, registry): - self.registry = registry diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/genvk.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/genvk.py deleted file mode 100644 index 5b284f09..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/genvk.py +++ /dev/null @@ -1,641 +0,0 @@ -#!/usr/bin/python3 -# -# Copyright (c) 2013-2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 - -import argparse -import pdb -import re -import sys -import time -import xml.etree.ElementTree as etree - -from cgenerator import CGeneratorOptions, COutputGenerator -from docgenerator import DocGeneratorOptions, DocOutputGenerator -from extensionmetadocgenerator import (ExtensionMetaDocGeneratorOptions, - ExtensionMetaDocOutputGenerator) -from interfacedocgenerator import InterfaceDocGenerator -from generator import write -from spirvcapgenerator import SpirvCapabilityOutputGenerator -from hostsyncgenerator import HostSynchronizationOutputGenerator -from pygenerator import PyOutputGenerator -from reflib import logDiag, logWarn, setLogFile -from reg import Registry -from validitygenerator import ValidityOutputGenerator -from vkconventions import VulkanConventions - - -# Simple timer functions -startTime = None - - -def startTimer(timeit): - global startTime - if timeit: - startTime = time.process_time() - - -def endTimer(timeit, msg): - global startTime - if timeit: - endTime = time.process_time() - logDiag(msg, endTime - startTime) - startTime = None - - -def makeREstring(strings, default=None, strings_are_regex=False): - """Turn a list of strings into a regexp string matching exactly those strings.""" - if strings or default is None: - if not strings_are_regex: - strings = (re.escape(s) for s in strings) - return '^(' + '|'.join(strings) + ')$' - return default - - -def makeGenOpts(args): - """Returns a directory of [ generator function, generator options ] indexed - by specified short names. The generator options incorporate the following - parameters: - - args is an parsed argument object; see below for the fields that are used.""" - global genOpts - genOpts = {} - - # Default class of extensions to include, or None - defaultExtensions = args.defaultExtensions - - # Additional extensions to include (list of extensions) - extensions = args.extension - - # Extensions to remove (list of extensions) - removeExtensions = args.removeExtensions - - # Extensions to emit (list of extensions) - emitExtensions = args.emitExtensions - - # SPIR-V capabilities / features to emit (list of extensions & capabilities) - emitSpirv = args.emitSpirv - - # Features to include (list of features) - features = args.feature - - # Whether to disable inclusion protect in headers - protect = args.protect - - # Output target directory - directory = args.directory - - # Path to generated files, particularly api.py - genpath = args.genpath - - # Descriptive names for various regexp patterns used to select - # versions and extensions - allSpirv = allFeatures = allExtensions = r'.*' - - # Turn lists of names/patterns into matching regular expressions - addExtensionsPat = makeREstring(extensions, None) - removeExtensionsPat = makeREstring(removeExtensions, None) - emitExtensionsPat = makeREstring(emitExtensions, allExtensions) - emitSpirvPat = makeREstring(emitSpirv, allSpirv) - featuresPat = makeREstring(features, allFeatures) - - # Copyright text prefixing all headers (list of strings). - # The SPDX formatting below works around constraints of the 'reuse' tool - prefixStrings = [ - '/*', - '** Copyright (c) 2015-2020 The Khronos Group Inc.', - '**', - '** SPDX' + '-License-Identifier: Apache-2.0', - '*/', - '' - ] - - # Text specific to Vulkan headers - vkPrefixStrings = [ - '/*', - '** This header is generated from the Khronos Vulkan XML API Registry.', - '**', - '*/', - '' - ] - - # Defaults for generating re-inclusion protection wrappers (or not) - protectFile = protect - - # An API style conventions object - conventions = VulkanConventions() - - # API include files for spec and ref pages - # Overwrites include subdirectories in spec source tree - # The generated include files do not include the calling convention - # macros (apientry etc.), unlike the header files. - # Because the 1.0 core branch includes ref pages for extensions, - # all the extension interfaces need to be generated, even though - # none are used by the core spec itself. - genOpts['apiinc'] = [ - DocOutputGenerator, - DocGeneratorOptions( - conventions = conventions, - filename = 'timeMarker', - directory = directory, - genpath = genpath, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = None, - addExtensions = addExtensionsPat, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, - prefixText = prefixStrings + vkPrefixStrings, - apicall = '', - apientry = '', - apientryp = '*', - alignFuncParam = 48, - expandEnumerants = False) - ] - - # Python representation of API information, used by scripts that - # don't need to load the full XML. - genOpts['api.py'] = [ - PyOutputGenerator, - DocGeneratorOptions( - conventions = conventions, - filename = 'api.py', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = None, - addExtensions = addExtensionsPat, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, - reparentEnums = False) - ] - - # API validity files for spec - genOpts['validinc'] = [ - ValidityOutputGenerator, - DocGeneratorOptions( - conventions = conventions, - filename = 'timeMarker', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = None, - addExtensions = addExtensionsPat, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat) - ] - - # API host sync table files for spec - genOpts['hostsyncinc'] = [ - HostSynchronizationOutputGenerator, - DocGeneratorOptions( - conventions = conventions, - filename = 'timeMarker', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = None, - addExtensions = addExtensionsPat, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, - reparentEnums = False) - ] - - # Extension metainformation for spec extension appendices - # Includes all extensions by default, but only so that the generated - # 'promoted_extensions_*' files refer to all extensions that were - # promoted to a core version. - genOpts['extinc'] = [ - ExtensionMetaDocOutputGenerator, - ExtensionMetaDocGeneratorOptions( - conventions = conventions, - filename = 'timeMarker', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = None, - defaultExtensions = defaultExtensions, - addExtensions = addExtensionsPat, - removeExtensions = None, - emitExtensions = emitExtensionsPat) - ] - - # Version and extension interface docs for version/extension appendices - # Includes all extensions by default. - genOpts['interfaceinc'] = [ - InterfaceDocGenerator, - DocGeneratorOptions( - conventions = conventions, - filename = 'timeMarker', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = None, - addExtensions = addExtensionsPat, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, - reparentEnums = False) - ] - - genOpts['spirvcapinc'] = [ - SpirvCapabilityOutputGenerator, - DocGeneratorOptions( - conventions = conventions, - filename = 'timeMarker', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = None, - addExtensions = addExtensionsPat, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, - emitSpirv = emitSpirvPat, - reparentEnums = False) - ] - - # Platform extensions, in their own header files - # Each element of the platforms[] array defines information for - # generating a single platform: - # [0] is the generated header file name - # [1] is the set of platform extensions to generate - # [2] is additional extensions whose interfaces should be considered, - # but suppressed in the output, to avoid duplicate definitions of - # dependent types like VkDisplayKHR and VkSurfaceKHR which come from - # non-platform extensions. - - # Track all platform extensions, for exclusion from vulkan_core.h - allPlatformExtensions = [] - - # Extensions suppressed for all WSI platforms (WSI extensions required - # by all platforms) - commonSuppressExtensions = [ 'VK_KHR_display', 'VK_KHR_swapchain' ] - - # Extensions required and suppressed for beta "platform". This can - # probably eventually be derived from the requires= attributes of - # the extension blocks. - betaRequireExtensions = [ 'VK_KHR_portability_subset' ] - betaSuppressExtensions = [] - - platforms = [ - [ 'vulkan_android.h', [ 'VK_KHR_android_surface', - 'VK_ANDROID_external_memory_android_hardware_buffer' - ], commonSuppressExtensions ], - [ 'vulkan_fuchsia.h', [ 'VK_FUCHSIA_imagepipe_surface'], commonSuppressExtensions ], - [ 'vulkan_ggp.h', [ 'VK_GGP_stream_descriptor_surface', - 'VK_GGP_frame_token' ], commonSuppressExtensions ], - [ 'vulkan_ios.h', [ 'VK_MVK_ios_surface' ], commonSuppressExtensions ], - [ 'vulkan_macos.h', [ 'VK_MVK_macos_surface' ], commonSuppressExtensions ], - [ 'vulkan_vi.h', [ 'VK_NN_vi_surface' ], commonSuppressExtensions ], - [ 'vulkan_wayland.h', [ 'VK_KHR_wayland_surface' ], commonSuppressExtensions ], - [ 'vulkan_win32.h', [ 'VK_.*_win32(|_.*)', 'VK_EXT_full_screen_exclusive' ], - commonSuppressExtensions + - [ 'VK_KHR_external_semaphore', - 'VK_KHR_external_memory_capabilities', - 'VK_KHR_external_fence', - 'VK_KHR_external_fence_capabilities', - 'VK_KHR_get_surface_capabilities2', - 'VK_NV_external_memory_capabilities', - ] ], - [ 'vulkan_xcb.h', [ 'VK_KHR_xcb_surface' ], commonSuppressExtensions ], - [ 'vulkan_xlib.h', [ 'VK_KHR_xlib_surface' ], commonSuppressExtensions ], - [ 'vulkan_directfb.h', [ 'VK_EXT_directfb_surface' ], commonSuppressExtensions ], - [ 'vulkan_xlib_xrandr.h', [ 'VK_EXT_acquire_xlib_display' ], commonSuppressExtensions ], - [ 'vulkan_metal.h', [ 'VK_EXT_metal_surface' ], commonSuppressExtensions ], - [ 'vulkan_beta.h', betaRequireExtensions, betaSuppressExtensions ], - ] - - for platform in platforms: - headername = platform[0] - - allPlatformExtensions += platform[1] - - addPlatformExtensionsRE = makeREstring( - platform[1] + platform[2], strings_are_regex=True) - emitPlatformExtensionsRE = makeREstring( - platform[1], strings_are_regex=True) - - opts = CGeneratorOptions( - conventions = conventions, - filename = headername, - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = None, - defaultExtensions = None, - addExtensions = addPlatformExtensionsRE, - removeExtensions = None, - emitExtensions = emitPlatformExtensionsRE, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = protectFile, - protectFeature = False, - protectProto = '#ifndef', - protectProtoStr = 'VK_NO_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48) - - genOpts[headername] = [ COutputGenerator, opts ] - - # Header for core API + extensions. - # To generate just the core API, - # change to 'defaultExtensions = None' below. - # - # By default this adds all enabled, non-platform extensions. - # It removes all platform extensions (from the platform headers options - # constructed above) as well as any explicitly specified removals. - - removeExtensionsPat = makeREstring( - allPlatformExtensions + removeExtensions, None, strings_are_regex=True) - - genOpts['vulkan_core.h'] = [ - COutputGenerator, - CGeneratorOptions( - conventions = conventions, - filename = 'vulkan_core.h', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = defaultExtensions, - addExtensions = addExtensionsPat, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = protectFile, - protectFeature = False, - protectProto = '#ifndef', - protectProtoStr = 'VK_NO_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48) - ] - - # Unused - vulkan10.h target. - # It is possible to generate a header with just the Vulkan 1.0 + - # extension interfaces defined, but since the promoted KHR extensions - # are now defined in terms of the 1.1 interfaces, such a header is very - # similar to vulkan_core.h. - genOpts['vulkan10.h'] = [ - COutputGenerator, - CGeneratorOptions( - conventions = conventions, - filename = 'vulkan10.h', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = 'VK_VERSION_1_0', - emitversions = 'VK_VERSION_1_0', - defaultExtensions = None, - addExtensions = None, - removeExtensions = None, - emitExtensions = None, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = protectFile, - protectFeature = False, - protectProto = '#ifndef', - protectProtoStr = 'VK_NO_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48) - ] - - # Unused - vulkan11.h target. - # It is possible to generate a header with just the Vulkan 1.0 + - # extension interfaces defined, but since the promoted KHR extensions - # are now defined in terms of the 1.1 interfaces, such a header is very - # similar to vulkan_core.h. - genOpts['vulkan11.h'] = [ - COutputGenerator, - CGeneratorOptions( - conventions = conventions, - filename = 'vulkan11.h', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = '^VK_VERSION_1_[01]$', - emitversions = '^VK_VERSION_1_[01]$', - defaultExtensions = None, - addExtensions = None, - removeExtensions = None, - emitExtensions = None, - prefixText = prefixStrings + vkPrefixStrings, - genFuncPointers = True, - protectFile = protectFile, - protectFeature = False, - protectProto = '#ifndef', - protectProtoStr = 'VK_NO_PROTOTYPES', - apicall = 'VKAPI_ATTR ', - apientry = 'VKAPI_CALL ', - apientryp = 'VKAPI_PTR *', - alignFuncParam = 48) - ] - - genOpts['alias.h'] = [ - COutputGenerator, - CGeneratorOptions( - conventions = conventions, - filename = 'alias.h', - directory = directory, - genpath = None, - apiname = 'vulkan', - profile = None, - versions = featuresPat, - emitversions = featuresPat, - defaultExtensions = defaultExtensions, - addExtensions = None, - removeExtensions = removeExtensionsPat, - emitExtensions = emitExtensionsPat, - prefixText = None, - genFuncPointers = False, - protectFile = False, - protectFeature = False, - protectProto = '', - protectProtoStr = '', - apicall = '', - apientry = '', - apientryp = '', - alignFuncParam = 36) - ] - - -def genTarget(args): - """Create an API generator and corresponding generator options based on - the requested target and command line options. - - This is encapsulated in a function so it can be profiled and/or timed. - The args parameter is an parsed argument object containing the following - fields that are used: - - - target - target to generate - - directory - directory to generate it in - - protect - True if re-inclusion wrappers should be created - - extensions - list of additional extensions to include in generated interfaces""" - - # Create generator options with parameters specified on command line - makeGenOpts(args) - - # pdb.set_trace() - - # Select a generator matching the requested target - if args.target in genOpts: - createGenerator = genOpts[args.target][0] - options = genOpts[args.target][1] - - logDiag('* Building', options.filename) - logDiag('* options.versions =', options.versions) - logDiag('* options.emitversions =', options.emitversions) - logDiag('* options.defaultExtensions =', options.defaultExtensions) - logDiag('* options.addExtensions =', options.addExtensions) - logDiag('* options.removeExtensions =', options.removeExtensions) - logDiag('* options.emitExtensions =', options.emitExtensions) - - gen = createGenerator(errFile=errWarn, - warnFile=errWarn, - diagFile=diag) - return (gen, options) - else: - logErr('No generator options for unknown target:', args.target) - return None - - -# -feature name -# -extension name -# For both, "name" may be a single name, or a space-separated list -# of names, or a regular expression. -if __name__ == '__main__': - parser = argparse.ArgumentParser() - - parser.add_argument('-defaultExtensions', action='store', - default='vulkan', - help='Specify a single class of extensions to add to targets') - parser.add_argument('-extension', action='append', - default=[], - help='Specify an extension or extensions to add to targets') - parser.add_argument('-removeExtensions', action='append', - default=[], - help='Specify an extension or extensions to remove from targets') - parser.add_argument('-emitExtensions', action='append', - default=[], - help='Specify an extension or extensions to emit in targets') - parser.add_argument('-emitSpirv', action='append', - default=[], - help='Specify a SPIR-V extension or capability to emit in targets') - parser.add_argument('-feature', action='append', - default=[], - help='Specify a core API feature name or names to add to targets') - parser.add_argument('-debug', action='store_true', - help='Enable debugging') - parser.add_argument('-dump', action='store_true', - help='Enable dump to stderr') - parser.add_argument('-diagfile', action='store', - default=None, - help='Write diagnostics to specified file') - parser.add_argument('-errfile', action='store', - default=None, - help='Write errors and warnings to specified file instead of stderr') - parser.add_argument('-noprotect', dest='protect', action='store_false', - help='Disable inclusion protection in output headers') - parser.add_argument('-profile', action='store_true', - help='Enable profiling') - parser.add_argument('-registry', action='store', - default='vk.xml', - help='Use specified registry file instead of vk.xml') - parser.add_argument('-time', action='store_true', - help='Enable timing') - parser.add_argument('-validate', action='store_true', - help='Enable XML group validation') - parser.add_argument('-genpath', action='store', default='gen', - help='Path to generated files') - parser.add_argument('-o', action='store', dest='directory', - default='.', - help='Create target and related files in specified directory') - parser.add_argument('target', metavar='target', nargs='?', - help='Specify target') - parser.add_argument('-quiet', action='store_true', default=True, - help='Suppress script output during normal execution.') - parser.add_argument('-verbose', action='store_false', dest='quiet', default=True, - help='Enable script output during normal execution.') - - args = parser.parse_args() - - # This splits arguments which are space-separated lists - args.feature = [name for arg in args.feature for name in arg.split()] - args.extension = [name for arg in args.extension for name in arg.split()] - - # create error/warning & diagnostic files - if args.errfile: - errWarn = open(args.errfile, 'w', encoding='utf-8') - else: - errWarn = sys.stderr - - if args.diagfile: - diag = open(args.diagfile, 'w', encoding='utf-8') - else: - diag = None - - # Create the API generator & generator options - (gen, options) = genTarget(args) - - # Create the registry object with the specified generator and generator - # options. The options are set before XML loading as they may affect it. - reg = Registry(gen, options) - - # Parse the specified registry XML into an ElementTree object - startTimer(args.time) - tree = etree.parse(args.registry) - endTimer(args.time, '* Time to make ElementTree =') - - # Load the XML tree into the registry object - startTimer(args.time) - reg.loadElementTree(tree) - endTimer(args.time, '* Time to parse ElementTree =') - - if args.validate: - reg.validateGroups() - - if args.dump: - logDiag('* Dumping registry to regdump.txt') - reg.dumpReg(filehandle=open('regdump.txt', 'w', encoding='utf-8')) - - # Finally, use the output generator to create the requested target - if args.debug: - pdb.run('reg.apiGen()') - else: - startTimer(args.time) - reg.apiGen() - endTimer(args.time, '* Time to generate ' + options.filename + ' =') - - if not args.quiet: - logDiag('* Generated', options.filename) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/reg.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/reg.py deleted file mode 100644 index 075614f4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/reg.py +++ /dev/null @@ -1,1385 +0,0 @@ -#!/usr/bin/python3 -i -# -# Copyright 2013-2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 - -"""Types and classes for manipulating an API registry.""" - -import copy -import re -import sys -import xml.etree.ElementTree as etree -from collections import defaultdict, namedtuple -from generator import OutputGenerator, GeneratorOptions, write -import pdb - -def apiNameMatch(str, supported): - """Return whether a required api name matches a pattern specified for an - XML 'api' attribute or 'supported' attribute. - - - str - api name such as 'vulkan' or 'openxr' - - supported - comma-separated list of XML API names""" - - return (str is not None and str in supported.split(',')) - - -def matchAPIProfile(api, profile, elem): - """Return whether an API and profile - being generated matches an element's profile - - - api - string naming the API to match - - profile - string naming the profile to match - - elem - Element which (may) have 'api' and 'profile' - attributes to match to. - - If a tag is not present in the Element, the corresponding API - or profile always matches. - - Otherwise, the tag must exactly match the API or profile. - - Thus, if 'profile' = core: - - - `` with no attribute will match - - `` will match - - `` will not match - - Possible match conditions: - - ``` - Requested Element - Profile Profile - --------- -------- - None None Always matches - 'string' None Always matches - None 'string' Does not match. Can't generate multiple APIs - or profiles, so if an API/profile constraint - is present, it must be asked for explicitly. - 'string' 'string' Strings must match - ``` - - ** In the future, we will allow regexes for the attributes, - not just strings, so that `api="^(gl|gles2)"` will match. Even - this isn't really quite enough, we might prefer something - like `"gl(core)|gles1(common-lite)"`.""" - # Match 'api', if present - elem_api = elem.get('api') - if elem_api: - if api is None: - raise UserWarning("No API requested, but 'api' attribute is present with value '" - + elem_api + "'") - elif api != elem_api: - # Requested API doesn't match attribute - return False - elem_profile = elem.get('profile') - if elem_profile: - if profile is None: - raise UserWarning("No profile requested, but 'profile' attribute is present with value '" - + elem_profile + "'") - elif profile != elem_profile: - # Requested profile doesn't match attribute - return False - return True - - -class BaseInfo: - """Base class for information about a registry feature - (type/group/enum/command/API/extension). - - Represents the state of a registry feature, used during API generation. - """ - - def __init__(self, elem): - self.required = False - """should this feature be defined during header generation - (has it been removed by a profile or version)?""" - - self.declared = False - "has this feature been defined already?" - - self.elem = elem - "etree Element for this feature" - - def resetState(self): - """Reset required/declared to initial values. Used - prior to generating a new API interface.""" - self.required = False - self.declared = False - - def compareKeys(self, info, key, required = False): - """Return True if self.elem and info.elem have the same attribute - value for key. - If 'required' is not True, also returns True if neither element - has an attribute value for key.""" - - if required and key not in self.elem.keys(): - return False - return self.elem.get(key) == info.elem.get(key) - - def compareElem(self, info, infoName): - """Return True if self.elem and info.elem have the same definition. - info - the other object - infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / - 'extension'""" - - if infoName == 'enum': - if self.compareKeys(info, 'extends'): - # Either both extend the same type, or no type - if (self.compareKeys(info, 'value', required = True) or - self.compareKeys(info, 'bitpos', required = True)): - # If both specify the same value or bit position, - # they're equal - return True - elif (self.compareKeys(info, 'extnumber') and - self.compareKeys(info, 'offset') and - self.compareKeys(info, 'dir')): - # If both specify the same relative offset, they're equal - return True - elif (self.compareKeys(info, 'alias')): - # If both are aliases of the same value - return True - else: - return False - else: - # The same enum can't extend two different types - return False - else: - # Non-s should never be redefined - return False - - -class TypeInfo(BaseInfo): - """Registry information about a type. No additional state - beyond BaseInfo is required.""" - - def __init__(self, elem): - BaseInfo.__init__(self, elem) - self.additionalValidity = [] - self.removedValidity = [] - - def getMembers(self): - """Get a collection of all member elements for this type, if any.""" - return self.elem.findall('member') - - def resetState(self): - BaseInfo.resetState(self) - self.additionalValidity = [] - self.removedValidity = [] - - -class GroupInfo(BaseInfo): - """Registry information about a group of related enums - in an block, generally corresponding to a C "enum" type.""" - - def __init__(self, elem): - BaseInfo.__init__(self, elem) - - -class EnumInfo(BaseInfo): - """Registry information about an enum""" - - def __init__(self, elem): - BaseInfo.__init__(self, elem) - self.type = elem.get('type') - """numeric type of the value of the tag - ( '' for GLint, 'u' for GLuint, 'ull' for GLuint64 )""" - if self.type is None: - self.type = '' - - -class CmdInfo(BaseInfo): - """Registry information about a command""" - - def __init__(self, elem): - BaseInfo.__init__(self, elem) - self.additionalValidity = [] - self.removedValidity = [] - - def getParams(self): - """Get a collection of all param elements for this command, if any.""" - return self.elem.findall('param') - - def resetState(self): - BaseInfo.resetState(self) - self.additionalValidity = [] - self.removedValidity = [] - - -class FeatureInfo(BaseInfo): - """Registry information about an API - or .""" - - def __init__(self, elem): - BaseInfo.__init__(self, elem) - self.name = elem.get('name') - "feature name string (e.g. 'VK_KHR_surface')" - - self.emit = False - "has this feature been defined already?" - - self.sortorder = int(elem.get('sortorder', 0)) - """explicit numeric sort key within feature and extension groups. - Defaults to 0.""" - - # Determine element category (vendor). Only works - # for elements. - if elem.tag == 'feature': - # Element category (vendor) is meaningless for - self.category = 'VERSION' - """category, e.g. VERSION or khr/vendor tag""" - - self.version = elem.get('name') - """feature name string""" - - self.versionNumber = elem.get('number') - """versionNumber - API version number, taken from the 'number' - attribute of . Extensions do not have API version - numbers and are assigned number 0.""" - - self.number = "0" - self.supported = None - else: - # Extract vendor portion of __ - self.category = self.name.split('_', 2)[1] - self.version = "0" - self.versionNumber = "0" - self.number = elem.get('number') - """extension number, used for ordering and for assigning - enumerant offsets. features do not have extension - numbers and are assigned number 0.""" - - # If there's no 'number' attribute, use 0, so sorting works - if self.number is None: - self.number = 0 - self.supported = elem.get('supported') - -class SpirvInfo(BaseInfo): - """Registry information about an API - or .""" - - def __init__(self, elem): - BaseInfo.__init__(self, elem) - -class Registry: - """Object representing an API registry, loaded from an XML file.""" - - def __init__(self, gen=None, genOpts=None): - if gen is None: - # If not specified, give a default object so messaging will work - self.gen = OutputGenerator() - else: - self.gen = gen - "Output generator used to write headers / messages" - - if genOpts is None: - self.genOpts = GeneratorOptions() - else: - self.genOpts = genOpts - "Options controlling features to write and how to format them" - - self.gen.registry = self - self.gen.genOpts = self.genOpts - self.gen.genOpts.registry = self - - self.tree = None - "ElementTree containing the root ``" - - self.typedict = {} - "dictionary of TypeInfo objects keyed by type name" - - self.groupdict = {} - "dictionary of GroupInfo objects keyed by group name" - - self.enumdict = {} - "dictionary of EnumInfo objects keyed by enum name" - - self.cmddict = {} - "dictionary of CmdInfo objects keyed by command name" - - self.apidict = {} - "dictionary of FeatureInfo objects for `` elements keyed by API name" - - self.extensions = [] - "list of `` Elements" - - self.extdict = {} - "dictionary of FeatureInfo objects for `` elements keyed by extension name" - - self.spirvextdict = {} - "dictionary of FeatureInfo objects for `` elements keyed by spirv extension name" - - self.spirvcapdict = {} - "dictionary of FeatureInfo objects for `` elements keyed by spirv capability name" - - self.emitFeatures = False - """True to actually emit features for a version / extension, - or False to just treat them as emitted""" - - self.breakPat = None - "regexp pattern to break on when generating names" - # self.breakPat = re.compile('VkFenceImportFlagBits.*') - - self.requiredextensions = [] # Hack - can remove it after validity generator goes away - - # ** Global types for automatic source generation ** - # Length Member data - self.commandextensiontuple = namedtuple('commandextensiontuple', - ['command', # The name of the command being modified - 'value', # The value to append to the command - 'extension']) # The name of the extension that added it - self.validextensionstructs = defaultdict(list) - self.commandextensionsuccesses = [] - self.commandextensionerrors = [] - - self.filename = None - - def loadElementTree(self, tree): - """Load ElementTree into a Registry object and parse it.""" - self.tree = tree - self.parseTree() - - def loadFile(self, file): - """Load an API registry XML file into a Registry object and parse it""" - self.filename = file - self.tree = etree.parse(file) - self.parseTree() - - def setGenerator(self, gen): - """Specify output generator object. - - `None` restores the default generator.""" - self.gen = gen - self.gen.setRegistry(self) - - def addElementInfo(self, elem, info, infoName, dictionary): - """Add information about an element to the corresponding dictionary. - - Intended for internal use only. - - - elem - ``/``/``/``/``/``/``/`` Element - - info - corresponding {Type|Group|Enum|Cmd|Feature|Spirv}Info object - - infoName - 'type' / 'group' / 'enum' / 'command' / 'feature' / 'extension' / 'spirvextension' / 'spirvcapability' - - dictionary - self.{type|group|enum|cmd|api|ext|spirvext|spirvcap}dict - - If the Element has an 'api' attribute, the dictionary key is the - tuple (name,api). If not, the key is the name. 'name' is an - attribute of the Element""" - # self.gen.logMsg('diag', 'Adding ElementInfo.required =', - # info.required, 'name =', elem.get('name')) - api = elem.get('api') - if api: - key = (elem.get('name'), api) - else: - key = elem.get('name') - if key in dictionary: - if not dictionary[key].compareElem(info, infoName): - self.gen.logMsg('warn', 'Attempt to redefine', key, - '(this should not happen)') - else: - True - else: - dictionary[key] = info - - def lookupElementInfo(self, fname, dictionary): - """Find a {Type|Enum|Cmd}Info object by name. - - Intended for internal use only. - - If an object qualified by API name exists, use that. - - - fname - name of type / enum / command - - dictionary - self.{type|enum|cmd}dict""" - key = (fname, self.genOpts.apiname) - if key in dictionary: - # self.gen.logMsg('diag', 'Found API-specific element for feature', fname) - return dictionary[key] - if fname in dictionary: - # self.gen.logMsg('diag', 'Found generic element for feature', fname) - return dictionary[fname] - - return None - - def breakOnName(self, regexp): - """Specify a feature name regexp to break on when generating features.""" - self.breakPat = re.compile(regexp) - - def parseTree(self): - """Parse the registry Element, once created""" - # This must be the Element for the root - self.reg = self.tree.getroot() - - # Create dictionary of registry types from toplevel tags - # and add 'name' attribute to each tag (where missing) - # based on its element. - # - # There's usually one block; more are OK - # Required attributes: 'name' or nested tag contents - self.typedict = {} - for type_elem in self.reg.findall('types/type'): - # If the doesn't already have a 'name' attribute, set - # it from contents of its tag. - if type_elem.get('name') is None: - type_elem.set('name', type_elem.find('name').text) - self.addElementInfo(type_elem, TypeInfo(type_elem), 'type', self.typedict) - - # Create dictionary of registry enum groups from tags. - # - # Required attributes: 'name'. If no name is given, one is - # generated, but that group can't be identified and turned into an - # enum type definition - it's just a container for tags. - self.groupdict = {} - for group in self.reg.findall('enums'): - self.addElementInfo(group, GroupInfo(group), 'group', self.groupdict) - - # Create dictionary of registry enums from tags - # - # tags usually define different namespaces for the values - # defined in those tags, but the actual names all share the - # same dictionary. - # Required attributes: 'name', 'value' - # For containing which have type="enum" or type="bitmask", - # tag all contained s are required. This is a stopgap until - # a better scheme for tagging core and extension enums is created. - self.enumdict = {} - for enums in self.reg.findall('enums'): - required = (enums.get('type') is not None) - for enum in enums.findall('enum'): - enumInfo = EnumInfo(enum) - enumInfo.required = required - self.addElementInfo(enum, enumInfo, 'enum', self.enumdict) - - # Create dictionary of registry commands from tags - # and add 'name' attribute to each tag (where missing) - # based on its element. - # - # There's usually only one block; more are OK. - # Required attributes: 'name' or tag contents - self.cmddict = {} - # List of commands which alias others. Contains - # [ aliasName, element ] - # for each alias - cmdAlias = [] - for cmd in self.reg.findall('commands/command'): - # If the doesn't already have a 'name' attribute, set - # it from contents of its tag. - name = cmd.get('name') - if name is None: - name = cmd.set('name', cmd.find('proto/name').text) - ci = CmdInfo(cmd) - self.addElementInfo(cmd, ci, 'command', self.cmddict) - alias = cmd.get('alias') - if alias: - cmdAlias.append([name, alias, cmd]) - - # Now loop over aliases, injecting a copy of the aliased command's - # Element with the aliased prototype name replaced with the command - # name - if it exists. - for (name, alias, cmd) in cmdAlias: - if alias in self.cmddict: - aliasInfo = self.cmddict[alias] - cmdElem = copy.deepcopy(aliasInfo.elem) - cmdElem.find('proto/name').text = name - cmdElem.set('name', name) - cmdElem.set('alias', alias) - ci = CmdInfo(cmdElem) - # Replace the dictionary entry for the CmdInfo element - self.cmddict[name] = ci - - # @ newString = etree.tostring(base, encoding="unicode").replace(aliasValue, aliasName) - # @elem.append(etree.fromstring(replacement)) - else: - self.gen.logMsg('warn', 'No matching found for command', - cmd.get('name'), 'alias', alias) - - # Create dictionaries of API and extension interfaces - # from toplevel and tags. - self.apidict = {} - for feature in self.reg.findall('feature'): - featureInfo = FeatureInfo(feature) - self.addElementInfo(feature, featureInfo, 'feature', self.apidict) - - # Add additional enums defined only in tags - # to the corresponding enumerated type. - # When seen here, the element, processed to contain the - # numeric enum value, is added to the corresponding - # element, as well as adding to the enum dictionary. It is no - # longer removed from the element it is introduced in. - # Instead, generateRequiredInterface ignores elements - # that extend enumerated types. - # - # For tags which are actually just constants, if there's - # no 'extends' tag but there is a 'value' or 'bitpos' tag, just - # add an EnumInfo record to the dictionary. That works because - # output generation of constants is purely dependency-based, and - # doesn't need to iterate through the XML tags. - for elem in feature.findall('require'): - for enum in elem.findall('enum'): - addEnumInfo = False - groupName = enum.get('extends') - if groupName is not None: - # self.gen.logMsg('diag', 'Found extension enum', - # enum.get('name')) - # Add version number attribute to the element - enum.set('version', featureInfo.version) - # Look up the GroupInfo with matching groupName - if groupName in self.groupdict: - # self.gen.logMsg('diag', 'Matching group', - # groupName, 'found, adding element...') - gi = self.groupdict[groupName] - gi.elem.append(copy.deepcopy(enum)) - else: - self.gen.logMsg('warn', 'NO matching group', - groupName, 'for enum', enum.get('name'), 'found.') - addEnumInfo = True - elif enum.get('value') or enum.get('bitpos') or enum.get('alias'): - # self.gen.logMsg('diag', 'Adding extension constant "enum"', - # enum.get('name')) - addEnumInfo = True - if addEnumInfo: - enumInfo = EnumInfo(enum) - self.addElementInfo(enum, enumInfo, 'enum', self.enumdict) - - self.extensions = self.reg.findall('extensions/extension') - self.extdict = {} - for feature in self.extensions: - featureInfo = FeatureInfo(feature) - self.addElementInfo(feature, featureInfo, 'extension', self.extdict) - - # Add additional enums defined only in tags - # to the corresponding core type. - # Algorithm matches that of enums in a "feature" tag as above. - # - # This code also adds a 'extnumber' attribute containing the - # extension number, used for enumerant value calculation. - for elem in feature.findall('require'): - for enum in elem.findall('enum'): - addEnumInfo = False - groupName = enum.get('extends') - if groupName is not None: - # self.gen.logMsg('diag', 'Found extension enum', - # enum.get('name')) - - # Add block's extension number attribute to - # the element unless specified explicitly, such - # as when redefining an enum in another extension. - extnumber = enum.get('extnumber') - if not extnumber: - enum.set('extnumber', featureInfo.number) - - enum.set('extname', featureInfo.name) - enum.set('supported', featureInfo.supported) - # Look up the GroupInfo with matching groupName - if groupName in self.groupdict: - # self.gen.logMsg('diag', 'Matching group', - # groupName, 'found, adding element...') - gi = self.groupdict[groupName] - gi.elem.append(copy.deepcopy(enum)) - else: - self.gen.logMsg('warn', 'NO matching group', - groupName, 'for enum', enum.get('name'), 'found.') - addEnumInfo = True - elif enum.get('value') or enum.get('bitpos') or enum.get('alias'): - # self.gen.logMsg('diag', 'Adding extension constant "enum"', - # enum.get('name')) - addEnumInfo = True - if addEnumInfo: - enumInfo = EnumInfo(enum) - self.addElementInfo(enum, enumInfo, 'enum', self.enumdict) - - # Construct a "validextensionstructs" list for parent structures - # based on "structextends" tags in child structures - disabled_types = [] - for disabled_ext in self.reg.findall('extensions/extension[@supported="disabled"]'): - for type_elem in disabled_ext.findall("*/type"): - disabled_types.append(type_elem.get('name')) - for type_elem in self.reg.findall('types/type'): - if type_elem.get('name') not in disabled_types: - parentStructs = type_elem.get('structextends') - if parentStructs is not None: - for parent in parentStructs.split(','): - # self.gen.logMsg('diag', type.get('name'), 'extends', parent) - self.validextensionstructs[parent].append(type_elem.get('name')) - # Sort the lists so they don't depend on the XML order - for parent in self.validextensionstructs: - self.validextensionstructs[parent].sort() - - # Parse out all spirv tags in dictionaries - # Use addElementInfo to catch duplicates - for spirv in self.reg.findall('spirvextensions/spirvextension'): - spirvInfo = SpirvInfo(spirv) - self.addElementInfo(spirv, spirvInfo, 'spirvextension', self.spirvextdict) - for spirv in self.reg.findall('spirvcapabilities/spirvcapability'): - spirvInfo = SpirvInfo(spirv) - self.addElementInfo(spirv, spirvInfo, 'spirvcapability', self.spirvcapdict) - - def dumpReg(self, maxlen=120, filehandle=sys.stdout): - """Dump all the dictionaries constructed from the Registry object. - - Diagnostic to dump the dictionaries to specified file handle (default stdout). - Truncates type / enum / command elements to maxlen characters (default 120)""" - write('***************************************', file=filehandle) - write(' ** Dumping Registry contents **', file=filehandle) - write('***************************************', file=filehandle) - write('// Types', file=filehandle) - for name in self.typedict: - tobj = self.typedict[name] - write(' Type', name, '->', etree.tostring(tobj.elem)[0:maxlen], file=filehandle) - write('// Groups', file=filehandle) - for name in self.groupdict: - gobj = self.groupdict[name] - write(' Group', name, '->', etree.tostring(gobj.elem)[0:maxlen], file=filehandle) - write('// Enums', file=filehandle) - for name in self.enumdict: - eobj = self.enumdict[name] - write(' Enum', name, '->', etree.tostring(eobj.elem)[0:maxlen], file=filehandle) - write('// Commands', file=filehandle) - for name in self.cmddict: - cobj = self.cmddict[name] - write(' Command', name, '->', etree.tostring(cobj.elem)[0:maxlen], file=filehandle) - write('// APIs', file=filehandle) - for key in self.apidict: - write(' API Version ', key, '->', - etree.tostring(self.apidict[key].elem)[0:maxlen], file=filehandle) - write('// Extensions', file=filehandle) - for key in self.extdict: - write(' Extension', key, '->', - etree.tostring(self.extdict[key].elem)[0:maxlen], file=filehandle) - write('// SPIR-V', file=filehandle) - for key in self.spirvextdict: - write(' SPIR-V Extension', key, '->', - etree.tostring(self.spirvextdict[key].elem)[0:maxlen], file=filehandle) - for key in self.spirvcapdict: - write(' SPIR-V Capability', key, '->', - etree.tostring(self.spirvcapdict[key].elem)[0:maxlen], file=filehandle) - - def markTypeRequired(self, typename, required): - """Require (along with its dependencies) or remove (but not its dependencies) a type. - - - typename - name of type - - required - boolean (to tag features as required or not) - """ - self.gen.logMsg('diag', 'tagging type:', typename, '-> required =', required) - # Get TypeInfo object for tag corresponding to typename - typeinfo = self.lookupElementInfo(typename, self.typedict) - if typeinfo is not None: - if required: - # Tag type dependencies in 'alias' and 'required' attributes as - # required. This does not un-tag dependencies in a - # tag. See comments in markRequired() below for the reason. - for attrib_name in ['requires', 'alias']: - depname = typeinfo.elem.get(attrib_name) - if depname: - self.gen.logMsg('diag', 'Generating dependent type', - depname, 'for', attrib_name, 'type', typename) - # Don't recurse on self-referential structures. - if typename != depname: - self.markTypeRequired(depname, required) - else: - self.gen.logMsg('diag', 'type', typename, 'is self-referential') - # Tag types used in defining this type (e.g. in nested - # tags) - # Look for in entire tree, - # not just immediate children - for subtype in typeinfo.elem.findall('.//type'): - self.gen.logMsg('diag', 'markRequired: type requires dependent ', subtype.text) - if typename != subtype.text: - self.markTypeRequired(subtype.text, required) - else: - self.gen.logMsg('diag', 'type', typename, 'is self-referential') - # Tag enums used in defining this type, for example in - # member[MEMBER_SIZE] - for subenum in typeinfo.elem.findall('.//enum'): - self.gen.logMsg('diag', 'markRequired: type requires dependent ', subenum.text) - self.markEnumRequired(subenum.text, required) - # Tag type dependency in 'bitvalues' attributes as - # required. This ensures that the bit values for a flag - # are emitted - depType = typeinfo.elem.get('bitvalues') - if depType: - self.gen.logMsg('diag', 'Generating bitflag type', - depType, 'for type', typename) - self.markTypeRequired(depType, required) - group = self.lookupElementInfo(depType, self.groupdict) - if group is not None: - group.flagType = typeinfo - - typeinfo.required = required - elif '.h' not in typename: - self.gen.logMsg('warn', 'type:', typename, 'IS NOT DEFINED') - - def markEnumRequired(self, enumname, required): - """Mark an enum as required or not. - - - enumname - name of enum - - required - boolean (to tag features as required or not)""" - - self.gen.logMsg('diag', 'tagging enum:', enumname, '-> required =', required) - enum = self.lookupElementInfo(enumname, self.enumdict) - if enum is not None: - # If the enum is part of a group, and is being removed, then - # look it up in that tag and remove it there, so that it - # isn't visible to generators (which traverse the tag - # elements themselves). - # This isn't the most robust way of doing this, since a removed - # enum that's later required again will no longer have a group - # element, but it makes the change non-intrusive on generator - # code. - if required is False: - groupName = enum.elem.get('extends') - if groupName is not None: - # Look up the Info with matching groupName - if groupName in self.groupdict: - gi = self.groupdict[groupName] - gienum = gi.elem.find("enum[@name='" + enumname + "']") - if gienum is not None: - # Remove copy of this enum from the group - gi.elem.remove(gienum) - else: - self.gen.logMsg('warn', 'Cannot remove enum', - enumname, 'not found in group', - groupName) - else: - self.gen.logMsg('warn', 'Cannot remove enum', - enumname, 'from nonexistent group', - groupName) - - enum.required = required - # Tag enum dependencies in 'alias' attribute as required - depname = enum.elem.get('alias') - if depname: - self.gen.logMsg('diag', 'Generating dependent enum', - depname, 'for alias', enumname, 'required =', enum.required) - self.markEnumRequired(depname, required) - else: - self.gen.logMsg('warn', 'enum:', enumname, 'IS NOT DEFINED') - - def markCmdRequired(self, cmdname, required): - """Mark a command as required or not. - - - cmdname - name of command - - required - boolean (to tag features as required or not)""" - self.gen.logMsg('diag', 'tagging command:', cmdname, '-> required =', required) - cmd = self.lookupElementInfo(cmdname, self.cmddict) - if cmd is not None: - cmd.required = required - # Tag command dependencies in 'alias' attribute as required - depname = cmd.elem.get('alias') - if depname: - self.gen.logMsg('diag', 'Generating dependent command', - depname, 'for alias', cmdname) - self.markCmdRequired(depname, required) - # Tag all parameter types of this command as required. - # This DOES NOT remove types of commands in a - # tag, because many other commands may use the same type. - # We could be more clever and reference count types, - # instead of using a boolean. - if required: - # Look for in entire tree, - # not just immediate children - for type_elem in cmd.elem.findall('.//type'): - self.gen.logMsg('diag', 'markRequired: command implicitly requires dependent type', type_elem.text) - self.markTypeRequired(type_elem.text, required) - else: - self.gen.logMsg('warn', 'command:', cmdname, 'IS NOT DEFINED') - - def markRequired(self, featurename, feature, required): - """Require or remove features specified in the Element. - - - featurename - name of the feature - - feature - Element for `` or `` tag - - required - boolean (to tag features as required or not)""" - self.gen.logMsg('diag', 'markRequired (feature = , required =', required, ')') - - # Loop over types, enums, and commands in the tag - # @@ It would be possible to respect 'api' and 'profile' attributes - # in individual features, but that's not done yet. - for typeElem in feature.findall('type'): - self.markTypeRequired(typeElem.get('name'), required) - for enumElem in feature.findall('enum'): - self.markEnumRequired(enumElem.get('name'), required) - for cmdElem in feature.findall('command'): - self.markCmdRequired(cmdElem.get('name'), required) - - # Extensions may need to extend existing commands or other items in the future. - # So, look for extend tags. - for extendElem in feature.findall('extend'): - extendType = extendElem.get('type') - if extendType == 'command': - commandName = extendElem.get('name') - successExtends = extendElem.get('successcodes') - if successExtends is not None: - for success in successExtends.split(','): - self.commandextensionsuccesses.append(self.commandextensiontuple(command=commandName, - value=success, - extension=featurename)) - errorExtends = extendElem.get('errorcodes') - if errorExtends is not None: - for error in errorExtends.split(','): - self.commandextensionerrors.append(self.commandextensiontuple(command=commandName, - value=error, - extension=featurename)) - else: - self.gen.logMsg('warn', 'extend type:', extendType, 'IS NOT SUPPORTED') - - def getAlias(self, elem, dict): - """Check for an alias in the same require block. - - - elem - Element to check for an alias""" - - # Try to find an alias - alias = elem.get('alias') - if alias is None: - name = elem.get('name') - typeinfo = self.lookupElementInfo(name, dict) - alias = typeinfo.elem.get('alias') - - return alias - - def checkForCorrectionAliases(self, alias, require, tag): - """Check for an alias in the same require block. - - - alias - String name of the alias - - require - `` block from the registry - - tag - tag to look for in the require block""" - - if alias and require.findall(tag + "[@name='" + alias + "']"): - return True - - return False - - def fillFeatureDictionary(self, interface, featurename, api, profile): - """Capture added interfaces for a `` or ``. - - - interface - Element for `` or ``, containing - `` and `` tags - - featurename - name of the feature - - api - string specifying API name being generated - - profile - string specifying API profile being generated""" - - # Explicitly initialize known types - errors for unhandled categories - self.gen.featureDictionary[featurename] = { - "enumconstant": {}, - "command": {}, - "enum": {}, - "struct": {}, - "handle": {}, - "basetype": {}, - "include": {}, - "define": {}, - "bitmask": {}, - "union": {}, - "funcpointer": {}, - } - - # marks things that are required by this version/profile - for require in interface.findall('require'): - if matchAPIProfile(api, profile, require): - - # Determine the required extension or version needed for a require block - # Assumes that only one of these is specified - required_key = require.get('feature') - if required_key is None: - required_key = require.get('extension') - - # Loop over types, enums, and commands in the tag - for typeElem in require.findall('type'): - typename = typeElem.get('name') - typeinfo = self.lookupElementInfo(typename, self.typedict) - - if typeinfo: - # Remove aliases in the same extension/feature; these are always added as a correction. Don't need the original to be visible. - alias = self.getAlias(typeElem, self.typedict) - if not self.checkForCorrectionAliases(alias, require, 'type'): - # Resolve the type info to the actual type, so we get an accurate read for 'structextends' - while alias: - typeinfo = self.lookupElementInfo(alias, self.typedict) - alias = typeinfo.elem.get('alias') - - typecat = typeinfo.elem.get('category') - typeextends = typeinfo.elem.get('structextends') - if not required_key in self.gen.featureDictionary[featurename][typecat]: - self.gen.featureDictionary[featurename][typecat][required_key] = {} - if not typeextends in self.gen.featureDictionary[featurename][typecat][required_key]: - self.gen.featureDictionary[featurename][typecat][required_key][typeextends] = [] - self.gen.featureDictionary[featurename][typecat][required_key][typeextends].append(typename) - - for enumElem in require.findall('enum'): - enumname = enumElem.get('name') - typeinfo = self.lookupElementInfo(enumname, self.enumdict) - - # Remove aliases in the same extension/feature; these are always added as a correction. Don't need the original to be visible. - alias = self.getAlias(enumElem, self.enumdict) - if not self.checkForCorrectionAliases(alias, require, 'enum'): - enumextends = enumElem.get('extends') - if not required_key in self.gen.featureDictionary[featurename]['enumconstant']: - self.gen.featureDictionary[featurename]['enumconstant'][required_key] = {} - if not enumextends in self.gen.featureDictionary[featurename]['enumconstant'][required_key]: - self.gen.featureDictionary[featurename]['enumconstant'][required_key][enumextends] = [] - self.gen.featureDictionary[featurename]['enumconstant'][required_key][enumextends].append(enumname) - - for cmdElem in require.findall('command'): - - # Remove aliases in the same extension/feature; these are always added as a correction. Don't need the original to be visible. - alias = self.getAlias(cmdElem, self.cmddict) - if not self.checkForCorrectionAliases(alias, require, 'command'): - if not required_key in self.gen.featureDictionary[featurename]['command']: - self.gen.featureDictionary[featurename]['command'][required_key] = [] - self.gen.featureDictionary[featurename]['command'][required_key].append(cmdElem.get('name')) - - - def requireAndRemoveFeatures(self, interface, featurename, api, profile): - """Process `` and `` tags for a `` or ``. - - - interface - Element for `` or ``, containing - `` and `` tags - - featurename - name of the feature - - api - string specifying API name being generated - - profile - string specifying API profile being generated""" - # marks things that are required by this version/profile - for feature in interface.findall('require'): - if matchAPIProfile(api, profile, feature): - self.markRequired(featurename, feature, True) - # marks things that are removed by this version/profile - for feature in interface.findall('remove'): - if matchAPIProfile(api, profile, feature): - self.markRequired(featurename, feature, False) - - def assignAdditionalValidity(self, interface, api, profile): - # Loop over all usage inside all tags. - for feature in interface.findall('require'): - if matchAPIProfile(api, profile, feature): - for v in feature.findall('usage'): - if v.get('command'): - self.cmddict[v.get('command')].additionalValidity.append(copy.deepcopy(v)) - if v.get('struct'): - self.typedict[v.get('struct')].additionalValidity.append(copy.deepcopy(v)) - - # Loop over all usage inside all tags. - for feature in interface.findall('remove'): - if matchAPIProfile(api, profile, feature): - for v in feature.findall('usage'): - if v.get('command'): - self.cmddict[v.get('command')].removedValidity.append(copy.deepcopy(v)) - if v.get('struct'): - self.typedict[v.get('struct')].removedValidity.append(copy.deepcopy(v)) - - def generateFeature(self, fname, ftype, dictionary): - """Generate a single type / enum group / enum / command, - and all its dependencies as needed. - - - fname - name of feature (``/``/``) - - ftype - type of feature, 'type' | 'enum' | 'command' - - dictionary - of *Info objects - self.{type|enum|cmd}dict""" - - self.gen.logMsg('diag', 'generateFeature: generating', ftype, fname) - f = self.lookupElementInfo(fname, dictionary) - if f is None: - # No such feature. This is an error, but reported earlier - self.gen.logMsg('diag', 'No entry found for feature', fname, - 'returning!') - return - - # If feature isn't required, or has already been declared, return - if not f.required: - self.gen.logMsg('diag', 'Skipping', ftype, fname, '(not required)') - return - if f.declared: - self.gen.logMsg('diag', 'Skipping', ftype, fname, '(already declared)') - return - # Always mark feature declared, as though actually emitted - f.declared = True - - # Determine if this is an alias, and of what, if so - alias = f.elem.get('alias') - if alias: - self.gen.logMsg('diag', fname, 'is an alias of', alias) - - # Pull in dependent declaration(s) of the feature. - # For types, there may be one type in the 'requires' attribute of - # the element, one in the 'alias' attribute, and many in - # embedded and tags within the element. - # For commands, there may be many in tags within the element. - # For enums, no dependencies are allowed (though perhaps if you - # have a uint64 enum, it should require that type). - genProc = None - followupFeature = None - if ftype == 'type': - genProc = self.gen.genType - - # Generate type dependencies in 'alias' and 'requires' attributes - if alias: - self.generateFeature(alias, 'type', self.typedict) - requires = f.elem.get('requires') - if requires: - self.gen.logMsg('diag', 'Generating required dependent type', - requires) - self.generateFeature(requires, 'type', self.typedict) - - # Generate types used in defining this type (e.g. in nested - # tags) - # Look for in entire tree, - # not just immediate children - for subtype in f.elem.findall('.//type'): - self.gen.logMsg('diag', 'Generating required dependent ', - subtype.text) - self.generateFeature(subtype.text, 'type', self.typedict) - - # Generate enums used in defining this type, for example in - # member[MEMBER_SIZE] - for subtype in f.elem.findall('.//enum'): - self.gen.logMsg('diag', 'Generating required dependent ', - subtype.text) - self.generateFeature(subtype.text, 'enum', self.enumdict) - - # If the type is an enum group, look up the corresponding - # group in the group dictionary and generate that instead. - if f.elem.get('category') == 'enum': - self.gen.logMsg('diag', 'Type', fname, 'is an enum group, so generate that instead') - group = self.lookupElementInfo(fname, self.groupdict) - if alias is not None: - # An alias of another group name. - # Pass to genGroup with 'alias' parameter = aliased name - self.gen.logMsg('diag', 'Generating alias', fname, - 'for enumerated type', alias) - # Now, pass the *aliased* GroupInfo to the genGroup, but - # with an additional parameter which is the alias name. - genProc = self.gen.genGroup - f = self.lookupElementInfo(alias, self.groupdict) - elif group is None: - self.gen.logMsg('warn', 'Skipping enum type', fname, - ': No matching enumerant group') - return - else: - genProc = self.gen.genGroup - f = group - - # @ The enum group is not ready for generation. At this - # @ point, it contains all tags injected by - # @ tags without any verification of whether - # @ they're required or not. It may also contain - # @ duplicates injected by multiple consistent - # @ definitions of an . - - # @ Pass over each enum, marking its enumdict[] entry as - # @ required or not. Mark aliases of enums as required, - # @ too. - - enums = group.elem.findall('enum') - - self.gen.logMsg('diag', 'generateFeature: checking enums for group', fname) - - # Check for required enums, including aliases - # LATER - Check for, report, and remove duplicates? - enumAliases = [] - for elem in enums: - name = elem.get('name') - - required = False - - extname = elem.get('extname') - version = elem.get('version') - if extname is not None: - # 'supported' attribute was injected when the element was - # moved into the group in Registry.parseTree() - if self.genOpts.defaultExtensions == elem.get('supported'): - required = True - elif re.match(self.genOpts.addExtensions, extname) is not None: - required = True - elif version is not None: - required = re.match(self.genOpts.emitversions, version) is not None - else: - required = True - - self.gen.logMsg('diag', '* required =', required, 'for', name) - if required: - # Mark this element as required (in the element, not the EnumInfo) - elem.set('required', 'true') - # If it's an alias, track that for later use - enumAlias = elem.get('alias') - if enumAlias: - enumAliases.append(enumAlias) - for elem in enums: - name = elem.get('name') - if name in enumAliases: - elem.set('required', 'true') - self.gen.logMsg('diag', '* also need to require alias', name) - if f.elem.get('category') == 'bitmask': - followupFeature = f.elem.get('bitvalues') - elif ftype == 'command': - # Generate command dependencies in 'alias' attribute - if alias: - self.generateFeature(alias, 'command', self.cmddict) - - genProc = self.gen.genCmd - for type_elem in f.elem.findall('.//type'): - depname = type_elem.text - self.gen.logMsg('diag', 'Generating required parameter type', - depname) - self.generateFeature(depname, 'type', self.typedict) - elif ftype == 'enum': - # Generate enum dependencies in 'alias' attribute - if alias: - self.generateFeature(alias, 'enum', self.enumdict) - genProc = self.gen.genEnum - - # Actually generate the type only if emitting declarations - if self.emitFeatures: - self.gen.logMsg('diag', 'Emitting', ftype, 'decl for', fname) - genProc(f, fname, alias) - else: - self.gen.logMsg('diag', 'Skipping', ftype, fname, - '(should not be emitted)') - - if followupFeature: - self.gen.logMsg('diag', 'Generating required bitvalues ', - followupFeature) - self.generateFeature(followupFeature, "type", self.typedict) - - def generateRequiredInterface(self, interface): - """Generate all interfaces required by an API version or extension. - - - interface - Element for `` or ``""" - - # Loop over all features inside all tags. - for features in interface.findall('require'): - for t in features.findall('type'): - self.generateFeature(t.get('name'), 'type', self.typedict) - for e in features.findall('enum'): - # If this is an enum extending an enumerated type, don't - # generate it - this has already been done in reg.parseTree, - # by copying this element into the enumerated type. - enumextends = e.get('extends') - if not enumextends: - self.generateFeature(e.get('name'), 'enum', self.enumdict) - for c in features.findall('command'): - self.generateFeature(c.get('name'), 'command', self.cmddict) - - def generateSpirv(self, spirv, dictionary): - if spirv is None: - self.gen.logMsg('diag', 'No entry found for element', name, - 'returning!') - return - - name = spirv.elem.get('name') - # No known alias for spirv elements - alias = None - if spirv.emit: - genProc = self.gen.genSpirv - genProc(spirv, name, alias) - - def apiGen(self): - """Generate interface for specified versions using the current - generator and generator options""" - - self.gen.logMsg('diag', '*******************************************') - self.gen.logMsg('diag', ' Registry.apiGen file:', self.genOpts.filename, - 'api:', self.genOpts.apiname, - 'profile:', self.genOpts.profile) - self.gen.logMsg('diag', '*******************************************') - - # Reset required/declared flags for all features - self.apiReset() - - # Compile regexps used to select versions & extensions - regVersions = re.compile(self.genOpts.versions) - regEmitVersions = re.compile(self.genOpts.emitversions) - regAddExtensions = re.compile(self.genOpts.addExtensions) - regRemoveExtensions = re.compile(self.genOpts.removeExtensions) - regEmitExtensions = re.compile(self.genOpts.emitExtensions) - regEmitSpirv = re.compile(self.genOpts.emitSpirv) - - # Get all matching API feature names & add to list of FeatureInfo - # Note we used to select on feature version attributes, not names. - features = [] - apiMatch = False - for key in self.apidict: - fi = self.apidict[key] - api = fi.elem.get('api') - if apiNameMatch(self.genOpts.apiname, api): - apiMatch = True - if regVersions.match(fi.name): - # Matches API & version #s being generated. Mark for - # emission and add to the features[] list . - # @@ Could use 'declared' instead of 'emit'? - fi.emit = (regEmitVersions.match(fi.name) is not None) - features.append(fi) - if not fi.emit: - self.gen.logMsg('diag', 'NOT tagging feature api =', api, - 'name =', fi.name, 'version =', fi.version, - 'for emission (does not match emitversions pattern)') - else: - self.gen.logMsg('diag', 'Including feature api =', api, - 'name =', fi.name, 'version =', fi.version, - 'for emission (matches emitversions pattern)') - else: - self.gen.logMsg('diag', 'NOT including feature api =', api, - 'name =', fi.name, 'version =', fi.version, - '(does not match requested versions)') - else: - self.gen.logMsg('diag', 'NOT including feature api =', api, - 'name =', fi.name, - '(does not match requested API)') - if not apiMatch: - self.gen.logMsg('warn', 'No matching API versions found!') - - # Get all matching extensions, in order by their extension number, - # and add to the list of features. - # Start with extensions tagged with 'api' pattern matching the API - # being generated. Add extensions matching the pattern specified in - # regExtensions, then remove extensions matching the pattern - # specified in regRemoveExtensions - for (extName, ei) in sorted(self.extdict.items(), key=lambda x: x[1].number if x[1].number is not None else '0'): - extName = ei.name - include = False - - # Include extension if defaultExtensions is not None and is - # exactly matched by the 'supported' attribute. - if apiNameMatch(self.genOpts.defaultExtensions, - ei.elem.get('supported')): - self.gen.logMsg('diag', 'Including extension', - extName, "(defaultExtensions matches the 'supported' attribute)") - include = True - - # Include additional extensions if the extension name matches - # the regexp specified in the generator options. This allows - # forcing extensions into an interface even if they're not - # tagged appropriately in the registry. - if regAddExtensions.match(extName) is not None: - self.gen.logMsg('diag', 'Including extension', - extName, '(matches explicitly requested extensions to add)') - include = True - # Remove extensions if the name matches the regexp specified - # in generator options. This allows forcing removal of - # extensions from an interface even if they're tagged that - # way in the registry. - if regRemoveExtensions.match(extName) is not None: - self.gen.logMsg('diag', 'Removing extension', - extName, '(matches explicitly requested extensions to remove)') - include = False - - # If the extension is to be included, add it to the - # extension features list. - if include: - ei.emit = (regEmitExtensions.match(extName) is not None) - features.append(ei) - if not ei.emit: - self.gen.logMsg('diag', 'NOT tagging extension', - extName, - 'for emission (does not match emitextensions pattern)') - - # Hack - can be removed when validity generator goes away - # (Jon) I'm not sure what this does, or if it should respect - # the ei.emit flag above. - self.requiredextensions.append(extName) - else: - self.gen.logMsg('diag', 'NOT including extension', - extName, '(does not match api attribute or explicitly requested extensions)') - - # Add all spirv elements to list - # generators decide to emit them all or not - # Currently no filtering as no client of these elements needs filtering - spirvexts = [] - for key in self.spirvextdict: - si = self.spirvextdict[key] - si.emit = (regEmitSpirv.match(key) is not None) - spirvexts.append(si) - spirvcaps = [] - for key in self.spirvcapdict: - si = self.spirvcapdict[key] - si.emit = (regEmitSpirv.match(key) is not None) - spirvcaps.append(si) - - # Sort the features list, if a sort procedure is defined - if self.genOpts.sortProcedure: - self.genOpts.sortProcedure(features) - # print('sortProcedure ->', [f.name for f in features]) - - # Pass 1: loop over requested API versions and extensions tagging - # types/commands/features as required (in an block) or no - # longer required (in an block). It is possible to remove - # a feature in one version and restore it later by requiring it in - # a later version. - # If a profile other than 'None' is being generated, it must - # match the profile attribute (if any) of the and - # tags. - self.gen.logMsg('diag', 'PASS 1: TAG FEATURES') - for f in features: - self.gen.logMsg('diag', 'PASS 1: Tagging required and removed features for', - f.name) - self.fillFeatureDictionary(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile) - self.requireAndRemoveFeatures(f.elem, f.name, self.genOpts.apiname, self.genOpts.profile) - self.assignAdditionalValidity(f.elem, self.genOpts.apiname, self.genOpts.profile) - - # Pass 2: loop over specified API versions and extensions printing - # declarations for required things which haven't already been - # generated. - self.gen.logMsg('diag', 'PASS 2: GENERATE INTERFACES FOR FEATURES') - self.gen.beginFile(self.genOpts) - for f in features: - self.gen.logMsg('diag', 'PASS 2: Generating interface for', - f.name) - emit = self.emitFeatures = f.emit - if not emit: - self.gen.logMsg('diag', 'PASS 2: NOT declaring feature', - f.elem.get('name'), 'because it is not tagged for emission') - # Generate the interface (or just tag its elements as having been - # emitted, if they haven't been). - self.gen.beginFeature(f.elem, emit) - self.generateRequiredInterface(f.elem) - self.gen.endFeature() - # Generate spirv elements - for s in spirvexts: - self.generateSpirv(s, self.spirvextdict) - for s in spirvcaps: - self.generateSpirv(s, self.spirvcapdict) - self.gen.endFile() - - def apiReset(self): - """Reset type/enum/command dictionaries before generating another API. - - Use between apiGen() calls to reset internal state.""" - for datatype in self.typedict: - self.typedict[datatype].resetState() - for enum in self.enumdict: - self.enumdict[enum].resetState() - for cmd in self.cmddict: - self.cmddict[cmd].resetState() - for cmd in self.apidict: - self.apidict[cmd].resetState() - - def validateGroups(self): - """Validate `group=` attributes on `` and `` tags. - - Check that `group=` attributes match actual groups""" - # Keep track of group names not in tags - badGroup = {} - self.gen.logMsg('diag', 'VALIDATING GROUP ATTRIBUTES') - for cmd in self.reg.findall('commands/command'): - proto = cmd.find('proto') - # funcname = cmd.find('proto/name').text - group = proto.get('group') - if group is not None and group not in self.groupdict: - # self.gen.logMsg('diag', '*** Command ', funcname, ' has UNKNOWN return group ', group) - if group not in badGroup: - badGroup[group] = 1 - else: - badGroup[group] = badGroup[group] + 1 - - for param in cmd.findall('param'): - pname = param.find('name') - if pname is not None: - pname = pname.text - else: - pname = param.get('name') - group = param.get('group') - if group is not None and group not in self.groupdict: - # self.gen.logMsg('diag', '*** Command ', funcname, ' param ', pname, ' has UNKNOWN group ', group) - if group not in badGroup: - badGroup[group] = 1 - else: - badGroup[group] = badGroup[group] + 1 - - if badGroup: - self.gen.logMsg('diag', 'SUMMARY OF UNRECOGNIZED GROUPS') - for key in sorted(badGroup.keys()): - self.gen.logMsg('diag', ' ', key, ' occurred ', badGroup[key], ' times') diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/spec_tools/util.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/spec_tools/util.py deleted file mode 100644 index ce11fd74..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/spec_tools/util.py +++ /dev/null @@ -1,58 +0,0 @@ -"""Utility functions not closely tied to other spec_tools types.""" -# Copyright (c) 2018-2019 Collabora, Ltd. -# Copyright (c) 2013-2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 - - -def getElemName(elem, default=None): - """Get the name associated with an element, either a name child or name attribute.""" - name_elem = elem.find('name') - if name_elem is not None: - return name_elem.text - # Fallback if there is no child. - return elem.get('name', default) - - -def getElemType(elem, default=None): - """Get the type associated with an element, either a type child or type attribute.""" - type_elem = elem.find('type') - if type_elem is not None: - return type_elem.text - # Fallback if there is no child. - return elem.get('type', default) - - -def findFirstWithPredicate(collection, pred): - """Return the first element that satisfies the predicate, or None if none exist. - - NOTE: Some places where this is used might be better served by changing to a dictionary. - """ - for elt in collection: - if pred(elt): - return elt - return None - - -def findNamedElem(elems, name): - """Traverse a collection of elements with 'name' nodes or attributes, looking for and returning one with the right name. - - NOTE: Many places where this is used might be better served by changing to a dictionary. - """ - return findFirstWithPredicate(elems, lambda elem: getElemName(elem) == name) - - -def findTypedElem(elems, typename): - """Traverse a collection of elements with 'type' nodes or attributes, looking for and returning one with the right typename. - - NOTE: Many places where this is used might be better served by changing to a dictionary. - """ - return findFirstWithPredicate(elems, lambda elem: getElemType(elem) == typename) - - -def findNamedObject(collection, name): - """Traverse a collection of elements with 'name' attributes, looking for and returning one with the right name. - - NOTE: Many places where this is used might be better served by changing to a dictionary. - """ - return findFirstWithPredicate(collection, lambda elt: elt.name == name) diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/validusage.json b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/validusage.json deleted file mode 100644 index 19d65e57..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/validusage.json +++ /dev/null @@ -1,36966 +0,0 @@ -{ - "version info": { - "schema version": 2, - "api version": "1.2.165", - "comment": "from git branch: github-main commit: ffbc67c499b92e864ad51275e606468975b5e397", - "date": "2020-12-14 05:44:28Z" - }, - "validation": { - "vkGetInstanceProcAddr": { - "core": [ - { - "vuid": "VUID-vkGetInstanceProcAddr-instance-parameter", - "text": " If instance is not NULL, instance must be a valid
VkInstance handle" - }, - { - "vuid": "VUID-vkGetInstanceProcAddr-pName-parameter", - "text": " pName must be a null-terminated UTF-8 string" - } - ] - }, - "vkGetDeviceProcAddr": { - "core": [ - { - "vuid": "VUID-vkGetDeviceProcAddr-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceProcAddr-pName-parameter", - "text": " pName must be a null-terminated UTF-8 string" - } - ] - }, - "vkEnumerateInstanceVersion": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkEnumerateInstanceVersion-pApiVersion-parameter", - "text": " pApiVersion must be a valid pointer to a uint32_t value" - } - ] - }, - "vkCreateInstance": { - "core": [ - { - "vuid": "VUID-vkCreateInstance-ppEnabledExtensionNames-01388", - "text": " All required extensions for each extension in the VkInstanceCreateInfo::ppEnabledExtensionNames list must also be present in that list" - }, - { - "vuid": "VUID-vkCreateInstance-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkInstanceCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateInstance-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateInstance-pInstance-parameter", - "text": " pInstance must be a valid pointer to a VkInstance handle" - } - ] - }, - "VkInstanceCreateInfo": { - "core": [ - { - "vuid": "VUID-VkInstanceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO" - }, - { - "vuid": "VUID-VkInstanceCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDebugReportCallbackCreateInfoEXT, VkDebugUtilsMessengerCreateInfoEXT, VkValidationFeaturesEXT, or VkValidationFlagsEXT" - }, - { - "vuid": "VUID-VkInstanceCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDebugUtilsMessengerCreateInfoEXT" - }, - { - "vuid": "VUID-VkInstanceCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkInstanceCreateInfo-pApplicationInfo-parameter", - "text": " If pApplicationInfo is not NULL, pApplicationInfo must be a valid pointer to a valid VkApplicationInfo structure" - }, - { - "vuid": "VUID-VkInstanceCreateInfo-ppEnabledLayerNames-parameter", - "text": " If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings" - }, - { - "vuid": "VUID-VkInstanceCreateInfo-ppEnabledExtensionNames-parameter", - "text": " If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings" - } - ] - }, - "VkValidationFlagsEXT": { - "(VK_EXT_validation_flags)": [ - { - "vuid": "VUID-VkValidationFlagsEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT" - }, - { - "vuid": "VUID-VkValidationFlagsEXT-pDisabledValidationChecks-parameter", - "text": " pDisabledValidationChecks must be a valid pointer to an array of disabledValidationCheckCount valid VkValidationCheckEXT values" - }, - { - "vuid": "VUID-VkValidationFlagsEXT-disabledValidationCheckCount-arraylength", - "text": " disabledValidationCheckCount must be greater than 0" - } - ] - }, - "VkValidationFeaturesEXT": { - "(VK_EXT_validation_features)": [ - { - "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02967", - "text": " If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, then it must also contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" - }, - { - "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-02968", - "text": " If the pEnabledValidationFeatures array contains VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT, then it must not contain VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT" - }, - { - "vuid": "VUID-VkValidationFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT" - }, - { - "vuid": "VUID-VkValidationFeaturesEXT-pEnabledValidationFeatures-parameter", - "text": " If enabledValidationFeatureCount is not 0, pEnabledValidationFeatures must be a valid pointer to an array of enabledValidationFeatureCount valid VkValidationFeatureEnableEXT values" - }, - { - "vuid": "VUID-VkValidationFeaturesEXT-pDisabledValidationFeatures-parameter", - "text": " If disabledValidationFeatureCount is not 0, pDisabledValidationFeatures must be a valid pointer to an array of disabledValidationFeatureCount valid VkValidationFeatureDisableEXT values" - } - ] - }, - "VkApplicationInfo": { - "core": [ - { - "vuid": "VUID-VkApplicationInfo-apiVersion-04010", - "text": " If apiVersion is not 0, then it must be greater or equal to VK_API_VERSION_1_0" - }, - { - "vuid": "VUID-VkApplicationInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_APPLICATION_INFO" - }, - { - "vuid": "VUID-VkApplicationInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkApplicationInfo-pApplicationName-parameter", - "text": " If pApplicationName is not NULL, pApplicationName must be a null-terminated UTF-8 string" - }, - { - "vuid": "VUID-VkApplicationInfo-pEngineName-parameter", - "text": " If pEngineName is not NULL, pEngineName must be a null-terminated UTF-8 string" - } - ] - }, - "vkDestroyInstance": { - "core": [ - { - "vuid": "VUID-vkDestroyInstance-instance-00629", - "text": " All child objects created using instance must have been destroyed prior to destroying instance" - }, - { - "vuid": "VUID-vkDestroyInstance-instance-00630", - "text": " If VkAllocationCallbacks were provided when instance was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyInstance-instance-00631", - "text": " If no VkAllocationCallbacks were provided when instance was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyInstance-instance-parameter", - "text": " If instance is not NULL, instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkDestroyInstance-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - } - ] - }, - "vkEnumeratePhysicalDevices": { - "core": [ - { - "vuid": "VUID-vkEnumeratePhysicalDevices-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDeviceCount-parameter", - "text": " pPhysicalDeviceCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkEnumeratePhysicalDevices-pPhysicalDevices-parameter", - "text": " If the value referenced by pPhysicalDeviceCount is not 0, and pPhysicalDevices is not NULL, pPhysicalDevices must be a valid pointer to an array of pPhysicalDeviceCount VkPhysicalDevice handles" - } - ] - }, - "vkGetPhysicalDeviceProperties": { - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceProperties-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties structure" - } - ] - }, - "vkGetPhysicalDeviceProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceProperties2-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkPhysicalDeviceProperties2 structure" - } - ] - }, - "VkPhysicalDeviceProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkPhysicalDeviceProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2" - }, - { - "vuid": "VUID-VkPhysicalDeviceProperties2-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPhysicalDeviceAccelerationStructurePropertiesKHR, VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT, VkPhysicalDeviceConservativeRasterizationPropertiesEXT, VkPhysicalDeviceCooperativeMatrixPropertiesNV, VkPhysicalDeviceCustomBorderColorPropertiesEXT, VkPhysicalDeviceDepthStencilResolveProperties, VkPhysicalDeviceDescriptorIndexingProperties, VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV, VkPhysicalDeviceDiscardRectanglePropertiesEXT, VkPhysicalDeviceDriverProperties, VkPhysicalDeviceExternalMemoryHostPropertiesEXT, VkPhysicalDeviceFloatControlsProperties, VkPhysicalDeviceFragmentDensityMap2PropertiesEXT, VkPhysicalDeviceFragmentDensityMapPropertiesEXT, VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV, VkPhysicalDeviceFragmentShadingRatePropertiesKHR, VkPhysicalDeviceIDProperties, VkPhysicalDeviceInlineUniformBlockPropertiesEXT, VkPhysicalDeviceLineRasterizationPropertiesEXT, VkPhysicalDeviceMaintenance3Properties, VkPhysicalDeviceMeshShaderPropertiesNV, VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX, VkPhysicalDeviceMultiviewProperties, VkPhysicalDevicePCIBusInfoPropertiesEXT, VkPhysicalDevicePerformanceQueryPropertiesKHR, VkPhysicalDevicePointClippingProperties, VkPhysicalDevicePortabilitySubsetPropertiesKHR, VkPhysicalDeviceProtectedMemoryProperties, VkPhysicalDevicePushDescriptorPropertiesKHR, VkPhysicalDeviceRayTracingPipelinePropertiesKHR, VkPhysicalDeviceRayTracingPropertiesNV, VkPhysicalDeviceRobustness2PropertiesEXT, VkPhysicalDeviceSampleLocationsPropertiesEXT, VkPhysicalDeviceSamplerFilterMinmaxProperties, VkPhysicalDeviceShaderCoreProperties2AMD, VkPhysicalDeviceShaderCorePropertiesAMD, VkPhysicalDeviceShaderSMBuiltinsPropertiesNV, VkPhysicalDeviceShadingRateImagePropertiesNV, VkPhysicalDeviceSubgroupProperties, VkPhysicalDeviceSubgroupSizeControlPropertiesEXT, VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT, VkPhysicalDeviceTimelineSemaphoreProperties, VkPhysicalDeviceTransformFeedbackPropertiesEXT, VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT, VkPhysicalDeviceVulkan11Properties, or VkPhysicalDeviceVulkan12Properties" - }, - { - "vuid": "VUID-VkPhysicalDeviceProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkPhysicalDeviceVulkan11Properties": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [ - { - "vuid": "VUID-VkPhysicalDeviceVulkan11Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceVulkan12Properties": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2)": [ - { - "vuid": "VUID-VkPhysicalDeviceVulkan12Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceIDProperties": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities,VK_KHR_external_semaphore_capabilities,VK_KHR_external_fence_capabilities)": [ - { - "vuid": "VUID-VkPhysicalDeviceIDProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceDriverProperties": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_2,VK_KHR_driver_properties)": [ - { - "vuid": "VUID-VkPhysicalDeviceDriverProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES" - } - ] - }, - "VkPhysicalDevicePCIBusInfoPropertiesEXT": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_pci_bus_info)": [ - { - "vuid": "VUID-VkPhysicalDevicePCIBusInfoPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT" - } - ] - }, - "vkGetPhysicalDeviceQueueFamilyProperties": { - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyPropertyCount-parameter", - "text": " pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties-pQueueFamilyProperties-parameter", - "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties structures" - } - ] - }, - "vkGetPhysicalDeviceQueueFamilyProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyPropertyCount-parameter", - "text": " pQueueFamilyPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyProperties2-pQueueFamilyProperties-parameter", - "text": " If the value referenced by pQueueFamilyPropertyCount is not 0, and pQueueFamilyProperties is not NULL, pQueueFamilyProperties must be a valid pointer to an array of pQueueFamilyPropertyCount VkQueueFamilyProperties2 structures" - } - ] - }, - "VkQueueFamilyProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkQueueFamilyProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2" - }, - { - "vuid": "VUID-VkQueueFamilyProperties2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkQueueFamilyCheckpointPropertiesNV" - }, - { - "vuid": "VUID-VkQueueFamilyProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkQueueFamilyCheckpointPropertiesNV": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_NV_device_diagnostic_checkpoints)": [ - { - "vuid": "VUID-VkQueueFamilyCheckpointPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV" - } - ] - }, - "vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterCount-parameter", - "text": " pCounterCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounters-parameter", - "text": " If the value referenced by pCounterCount is not 0, and pCounters is not NULL, pCounters must be a valid pointer to an array of pCounterCount VkPerformanceCounterKHR structures" - }, - { - "vuid": "VUID-vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR-pCounterDescriptions-parameter", - "text": " If the value referenced by pCounterCount is not 0, and pCounterDescriptions is not NULL, pCounterDescriptions must be a valid pointer to an array of pCounterCount VkPerformanceCounterDescriptionKHR structures" - } - ] - }, - "VkPerformanceCounterKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkPerformanceCounterKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR" - }, - { - "vuid": "VUID-VkPerformanceCounterKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkPerformanceCounterDescriptionKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkPerformanceCounterDescriptionKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR" - }, - { - "vuid": "VUID-VkPerformanceCounterDescriptionKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkEnumeratePhysicalDeviceGroups": { - "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [ - { - "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupCount-parameter", - "text": " pPhysicalDeviceGroupCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkEnumeratePhysicalDeviceGroups-pPhysicalDeviceGroupProperties-parameter", - "text": " If the value referenced by pPhysicalDeviceGroupCount is not 0, and pPhysicalDeviceGroupProperties is not NULL, pPhysicalDeviceGroupProperties must be a valid pointer to an array of pPhysicalDeviceGroupCount VkPhysicalDeviceGroupProperties structures" - } - ] - }, - "VkPhysicalDeviceGroupProperties": { - "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [ - { - "vuid": "VUID-VkPhysicalDeviceGroupProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES" - }, - { - "vuid": "VUID-VkPhysicalDeviceGroupProperties-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkCreateDevice": { - "core": [ - { - "vuid": "VUID-vkCreateDevice-ppEnabledExtensionNames-01387", - "text": " All required extensions for each extension in the VkDeviceCreateInfo::ppEnabledExtensionNames list must also be present in that list" - }, - { - "vuid": "VUID-vkCreateDevice-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkCreateDevice-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDeviceCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateDevice-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDevice-pDevice-parameter", - "text": " pDevice must be a valid pointer to a VkDevice handle" - } - ] - }, - "VkDeviceCreateInfo": { - "!(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-00372", - "text": " The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-queueFamilyIndex-02802", - "text": " The queueFamilyIndex member of each element of pQueueCreateInfos must be unique within pQueueCreateInfos, except that two members can share the same queueFamilyIndex if one is a protected-capable queue and one is not a protected-capable queue" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-pNext-00373", - "text": " If the pNext chain includes a VkPhysicalDeviceFeatures2 structure, then pEnabledFeatures must be NULL" - } - ], - "(VK_AMD_negative_viewport_height)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-01840", - "text": " ppEnabledExtensionNames must not contain VK_AMD_negative_viewport_height" - } - ], - "(VK_AMD_negative_viewport_height)+!(VK_VERSION_1_1)+(VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-00374", - "text": " ppEnabledExtensionNames must not contain both VK_KHR_maintenance1 and VK_AMD_negative_viewport_height" - } - ], - "(VK_EXT_buffer_device_address+VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-03328", - "text": " ppEnabledExtensionNames must not contain both VK_KHR_buffer_device_address and VK_EXT_buffer_device_address" - } - ], - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-pNext-02829", - "text": " If the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then it must not include a VkPhysicalDevice16BitStorageFeatures, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceSamplerYcbcrConversionFeatures, or VkPhysicalDeviceShaderDrawParametersFeatures structure" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-pNext-02830", - "text": " If the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then it must not include a VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceBufferDeviceAddressFeatures, or VkPhysicalDeviceVulkanMemoryModelFeatures structure" - } - ], - "(VK_VERSION_1_2)+(VK_KHR_shader_draw_parameters)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-04476", - "text": " If ppEnabledExtensions contains \"VK_KHR_shader_draw_parameters\" and the pNext chain includes a VkPhysicalDeviceVulkan11Features structure, then VkPhysicalDeviceVulkan11Features::shaderDrawParameters must be VK_TRUE" - } - ], - "(VK_VERSION_1_2)+(VK_KHR_draw_indirect_count)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02831", - "text": " If ppEnabledExtensions contains \"VK_KHR_draw_indirect_count\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::drawIndirectCount must be VK_TRUE" - } - ], - "(VK_VERSION_1_2)+(VK_KHR_sampler_mirror_clamp_to_edge)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02832", - "text": " If ppEnabledExtensions contains \"VK_KHR_sampler_mirror_clamp_to_edge\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerMirrorClampToEdge must be VK_TRUE" - } - ], - "(VK_VERSION_1_2)+(VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02833", - "text": " If ppEnabledExtensions contains \"VK_EXT_descriptor_indexing\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::descriptorIndexing must be VK_TRUE" - } - ], - "(VK_VERSION_1_2)+(VK_EXT_sampler_filter_minmax)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02834", - "text": " If ppEnabledExtensions contains \"VK_EXT_sampler_filter_minmax\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::samplerFilterMinmax must be VK_TRUE" - } - ], - "(VK_VERSION_1_2)+(VK_EXT_shader_viewport_index_layer)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensions-02835", - "text": " If ppEnabledExtensions contains \"VK_EXT_shader_viewport_index_layer\" and the pNext chain includes a VkPhysicalDeviceVulkan12Features structure, then VkPhysicalDeviceVulkan12Features::shaderOutputViewportIndex and VkPhysicalDeviceVulkan12Features::shaderOutputLayer must both be VK_TRUE" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-pProperties-04451", - "text": " If the [VK_KHR_portability_subset] extension is included in pProperties of vkEnumerateDeviceExtensionProperties, ppEnabledExtensions must include \"VK_KHR_portability_subset\"." - } - ], - "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04478", - "text": " If shadingRateImage is enabled, pipelineFragmentShadingRate must not be enabled" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04479", - "text": " If shadingRateImage is enabled, primitiveFragmentShadingRate must not be enabled" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-shadingRateImage-04480", - "text": " If shadingRateImage is enabled, attachmentFragmentShadingRate must not be enabled" - } - ], - "(VK_KHR_fragment_shading_rate,VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04481", - "text": " If fragmentDensityMap is enabled, pipelineFragmentShadingRate must not be enabled" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04482", - "text": " If fragmentDensityMap is enabled, primitiveFragmentShadingRate must not be enabled" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-fragmentDensityMap-04483", - "text": " If fragmentDensityMap is enabled, attachmentFragmentShadingRate must not be enabled" - } - ], - "core": [ - { - "vuid": "VUID-VkDeviceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceDeviceMemoryReportCreateInfoEXT, VkDeviceDiagnosticsConfigCreateInfoNV, VkDeviceGroupDeviceCreateInfo, VkDeviceMemoryOverallocationCreateInfoAMD, VkDevicePrivateDataCreateInfoEXT, VkPhysicalDevice16BitStorageFeatures, VkPhysicalDevice4444FormatsFeaturesEXT, VkPhysicalDevice8BitStorageFeatures, VkPhysicalDeviceASTCDecodeFeaturesEXT, VkPhysicalDeviceAccelerationStructureFeaturesKHR, VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT, VkPhysicalDeviceBufferDeviceAddressFeatures, VkPhysicalDeviceBufferDeviceAddressFeaturesEXT, VkPhysicalDeviceCoherentMemoryFeaturesAMD, VkPhysicalDeviceComputeShaderDerivativesFeaturesNV, VkPhysicalDeviceConditionalRenderingFeaturesEXT, VkPhysicalDeviceCooperativeMatrixFeaturesNV, VkPhysicalDeviceCornerSampledImageFeaturesNV, VkPhysicalDeviceCoverageReductionModeFeaturesNV, VkPhysicalDeviceCustomBorderColorFeaturesEXT, VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV, VkPhysicalDeviceDepthClipEnableFeaturesEXT, VkPhysicalDeviceDescriptorIndexingFeatures, VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV, VkPhysicalDeviceDeviceMemoryReportFeaturesEXT, VkPhysicalDeviceDiagnosticsConfigFeaturesNV, VkPhysicalDeviceExclusiveScissorFeaturesNV, VkPhysicalDeviceExtendedDynamicStateFeaturesEXT, VkPhysicalDeviceFeatures2, VkPhysicalDeviceFragmentDensityMap2FeaturesEXT, VkPhysicalDeviceFragmentDensityMapFeaturesEXT, VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV, VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT, VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV, VkPhysicalDeviceFragmentShadingRateFeaturesKHR, VkPhysicalDeviceHostQueryResetFeatures, VkPhysicalDeviceImageRobustnessFeaturesEXT, VkPhysicalDeviceImagelessFramebufferFeatures, VkPhysicalDeviceIndexTypeUint8FeaturesEXT, VkPhysicalDeviceInlineUniformBlockFeaturesEXT, VkPhysicalDeviceLineRasterizationFeaturesEXT, VkPhysicalDeviceMemoryPriorityFeaturesEXT, VkPhysicalDeviceMeshShaderFeaturesNV, VkPhysicalDeviceMultiviewFeatures, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE, VkPhysicalDevicePerformanceQueryFeaturesKHR, VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT, VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR, VkPhysicalDevicePortabilitySubsetFeaturesKHR, VkPhysicalDevicePrivateDataFeaturesEXT, VkPhysicalDeviceProtectedMemoryFeatures, VkPhysicalDeviceRayQueryFeaturesKHR, VkPhysicalDeviceRayTracingPipelineFeaturesKHR, VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV, VkPhysicalDeviceRobustness2FeaturesEXT, VkPhysicalDeviceSamplerYcbcrConversionFeatures, VkPhysicalDeviceScalarBlockLayoutFeatures, VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures, VkPhysicalDeviceShaderAtomicFloatFeaturesEXT, VkPhysicalDeviceShaderAtomicInt64Features, VkPhysicalDeviceShaderClockFeaturesKHR, VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT, VkPhysicalDeviceShaderDrawParametersFeatures, VkPhysicalDeviceShaderFloat16Int8Features, VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT, VkPhysicalDeviceShaderImageFootprintFeaturesNV, VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL, VkPhysicalDeviceShaderSMBuiltinsFeaturesNV, VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures, VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR, VkPhysicalDeviceShadingRateImageFeaturesNV, VkPhysicalDeviceSubgroupSizeControlFeaturesEXT, VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT, VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT, VkPhysicalDeviceTimelineSemaphoreFeatures, VkPhysicalDeviceTransformFeedbackFeaturesEXT, VkPhysicalDeviceUniformBufferStandardLayoutFeatures, VkPhysicalDeviceVariablePointersFeatures, VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT, VkPhysicalDeviceVulkan11Features, VkPhysicalDeviceVulkan12Features, VkPhysicalDeviceVulkanMemoryModelFeatures, or VkPhysicalDeviceYcbcrImageArraysFeaturesEXT" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique, with the exception of structures of type VkDeviceDeviceMemoryReportCreateInfoEXT or VkDevicePrivateDataCreateInfoEXT" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-pQueueCreateInfos-parameter", - "text": " pQueueCreateInfos must be a valid pointer to an array of queueCreateInfoCount valid VkDeviceQueueCreateInfo structures" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledLayerNames-parameter", - "text": " If enabledLayerCount is not 0, ppEnabledLayerNames must be a valid pointer to an array of enabledLayerCount null-terminated UTF-8 strings" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-ppEnabledExtensionNames-parameter", - "text": " If enabledExtensionCount is not 0, ppEnabledExtensionNames must be a valid pointer to an array of enabledExtensionCount null-terminated UTF-8 strings" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-pEnabledFeatures-parameter", - "text": " If pEnabledFeatures is not NULL, pEnabledFeatures must be a valid pointer to a valid VkPhysicalDeviceFeatures structure" - }, - { - "vuid": "VUID-VkDeviceCreateInfo-queueCreateInfoCount-arraylength", - "text": " queueCreateInfoCount must be greater than 0" - } - ] - }, - "VkDeviceGroupDeviceCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group_creation)": [ - { - "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00375", - "text": " Each element of pPhysicalDevices must be unique" - }, - { - "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-00376", - "text": " All elements of pPhysicalDevices must be in the same device group as enumerated by vkEnumeratePhysicalDeviceGroups" - }, - { - "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-physicalDeviceCount-00377", - "text": " If physicalDeviceCount is not 0, the physicalDevice parameter of vkCreateDevice must be an element of pPhysicalDevices" - }, - { - "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO" - }, - { - "vuid": "VUID-VkDeviceGroupDeviceCreateInfo-pPhysicalDevices-parameter", - "text": " If physicalDeviceCount is not 0, pPhysicalDevices must be a valid pointer to an array of physicalDeviceCount valid VkPhysicalDevice handles" - } - ] - }, - "VkDeviceMemoryOverallocationCreateInfoAMD": { - "(VK_AMD_memory_overallocation_behavior)": [ - { - "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD" - }, - { - "vuid": "VUID-VkDeviceMemoryOverallocationCreateInfoAMD-overallocationBehavior-parameter", - "text": " overallocationBehavior must be a valid VkMemoryOverallocationBehaviorAMD value" - } - ] - }, - "VkDeviceDiagnosticsConfigCreateInfoNV": { - "(VK_NV_device_diagnostics_config)": [ - { - "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkDeviceDiagnosticsConfigCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkDeviceDiagnosticsConfigFlagBitsNV values" - } - ] - }, - "VkDeviceDeviceMemoryReportCreateInfoEXT": { - "(VK_EXT_device_memory_report)": [ - { - "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pfnUserCallback-parameter", - "text": " pfnUserCallback must be a valid PFN_vkDeviceMemoryReportCallbackEXT value" - }, - { - "vuid": "VUID-VkDeviceDeviceMemoryReportCreateInfoEXT-pUserData-parameter", - "text": " pUserData must be a pointer value" - } - ] - }, - "VkDeviceMemoryReportCallbackDataEXT": { - "(VK_EXT_device_memory_report)": [ - { - "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT" - }, - { - "vuid": "VUID-VkDeviceMemoryReportCallbackDataEXT-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkDevicePrivateDataCreateInfoEXT": { - "(VK_EXT_private_data)": [ - { - "vuid": "VUID-VkDevicePrivateDataCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT" - } - ] - }, - "vkDestroyDevice": { - "core": [ - { - "vuid": "VUID-vkDestroyDevice-device-00378", - "text": " All child objects created on device must have been destroyed prior to destroying device" - }, - { - "vuid": "VUID-vkDestroyDevice-device-00379", - "text": " If VkAllocationCallbacks were provided when device was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDevice-device-00380", - "text": " If no VkAllocationCallbacks were provided when device was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDevice-device-parameter", - "text": " If device is not NULL, device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyDevice-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - } - ] - }, - "VkDeviceQueueCreateInfo": { - "core": [ - { - "vuid": "VUID-VkDeviceQueueCreateInfo-queueFamilyIndex-00381", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-00382", - "text": " queueCount must be less than or equal to the queueCount member of the VkQueueFamilyProperties structure, as returned by vkGetPhysicalDeviceQueueFamilyProperties in the pQueueFamilyProperties[queueFamilyIndex]" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-00383", - "text": " Each element of pQueuePriorities must be between 0.0 and 1.0 inclusive" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceQueueGlobalPriorityCreateInfoEXT" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDeviceQueueCreateFlagBits values" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-pQueuePriorities-parameter", - "text": " pQueuePriorities must be a valid pointer to an array of queueCount float values" - }, - { - "vuid": "VUID-VkDeviceQueueCreateInfo-queueCount-arraylength", - "text": " queueCount must be greater than 0" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkDeviceQueueCreateInfo-flags-02861", - "text": " If the protected memory feature is not enabled, the VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT bit of flags must not be set" - } - ] - }, - "VkDeviceQueueGlobalPriorityCreateInfoEXT": { - "(VK_EXT_global_priority)": [ - { - "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkDeviceQueueGlobalPriorityCreateInfoEXT-globalPriority-parameter", - "text": " globalPriority must be a valid VkQueueGlobalPriorityEXT value" - } - ] - }, - "vkGetDeviceQueue": { - "core": [ - { - "vuid": "VUID-vkGetDeviceQueue-queueFamilyIndex-00384", - "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" - }, - { - "vuid": "VUID-vkGetDeviceQueue-queueIndex-00385", - "text": " queueIndex must be less than the number of queues created for the specified queue family index when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure" - }, - { - "vuid": "VUID-vkGetDeviceQueue-flags-01841", - "text": " VkDeviceQueueCreateInfo::flags must have been set to zero when device was created" - }, - { - "vuid": "VUID-vkGetDeviceQueue-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceQueue-pQueue-parameter", - "text": " pQueue must be a valid pointer to a VkQueue handle" - } - ] - }, - "vkGetDeviceQueue2": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkGetDeviceQueue2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceQueue2-pQueueInfo-parameter", - "text": " pQueueInfo must be a valid pointer to a valid VkDeviceQueueInfo2 structure" - }, - { - "vuid": "VUID-vkGetDeviceQueue2-pQueue-parameter", - "text": " pQueue must be a valid pointer to a VkQueue handle" - } - ] - }, - "VkDeviceQueueInfo2": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkDeviceQueueInfo2-queueFamilyIndex-01842", - "text": " queueFamilyIndex must be one of the queue family indices specified when device was created, via the VkDeviceQueueCreateInfo structure" - }, - { - "vuid": "VUID-VkDeviceQueueInfo2-queueIndex-01843", - "text": " queueIndex must be less than the number of queues created for the specified queue family index and VkDeviceQueueCreateFlags member flags equal to this flags value when device was created, via the queueCount member of the VkDeviceQueueCreateInfo structure" - }, - { - "vuid": "VUID-VkDeviceQueueInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2" - }, - { - "vuid": "VUID-VkDeviceQueueInfo2-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDeviceQueueInfo2-flags-parameter", - "text": " flags must be a valid combination of VkDeviceQueueCreateFlagBits values" - } - ] - }, - "vkCreateCommandPool": { - "core": [ - { - "vuid": "VUID-vkCreateCommandPool-queueFamilyIndex-01937", - "text": " pCreateInfo->queueFamilyIndex must be the index of a queue family available in the logical device device" - }, - { - "vuid": "VUID-vkCreateCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateCommandPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkCommandPoolCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateCommandPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateCommandPool-pCommandPool-parameter", - "text": " pCommandPool must be a valid pointer to a VkCommandPool handle" - } - ] - }, - "VkCommandPoolCreateInfo": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkCommandPoolCreateInfo-flags-02860", - "text": " If the protected memory feature is not enabled, the VK_COMMAND_POOL_CREATE_PROTECTED_BIT bit of flags must not be set" - } - ], - "core": [ - { - "vuid": "VUID-VkCommandPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO" - }, - { - "vuid": "VUID-VkCommandPoolCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCommandPoolCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkCommandPoolCreateFlagBits values" - } - ] - }, - "vkTrimCommandPool": { - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkTrimCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkTrimCommandPool-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" - }, - { - "vuid": "VUID-vkTrimCommandPool-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-vkTrimCommandPool-commandPool-parent", - "text": " commandPool must have been created, allocated, or retrieved from device" - } - ] - }, - "vkResetCommandPool": { - "core": [ - { - "vuid": "VUID-vkResetCommandPool-commandPool-00040", - "text": " All VkCommandBuffer objects allocated from commandPool must not be in the pending state" - }, - { - "vuid": "VUID-vkResetCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkResetCommandPool-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" - }, - { - "vuid": "VUID-vkResetCommandPool-flags-parameter", - "text": " flags must be a valid combination of VkCommandPoolResetFlagBits values" - }, - { - "vuid": "VUID-vkResetCommandPool-commandPool-parent", - "text": " commandPool must have been created, allocated, or retrieved from device" - } - ] - }, - "vkDestroyCommandPool": { - "core": [ - { - "vuid": "VUID-vkDestroyCommandPool-commandPool-00041", - "text": " All VkCommandBuffer objects allocated from commandPool must not be in the pending state" - }, - { - "vuid": "VUID-vkDestroyCommandPool-commandPool-00042", - "text": " If VkAllocationCallbacks were provided when commandPool was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyCommandPool-commandPool-00043", - "text": " If no VkAllocationCallbacks were provided when commandPool was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyCommandPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyCommandPool-commandPool-parameter", - "text": " If commandPool is not VK_NULL_HANDLE, commandPool must be a valid VkCommandPool handle" - }, - { - "vuid": "VUID-vkDestroyCommandPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyCommandPool-commandPool-parent", - "text": " If commandPool is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkAllocateCommandBuffers": { - "core": [ - { - "vuid": "VUID-vkAllocateCommandBuffers-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkCommandBufferAllocateInfo structure" - }, - { - "vuid": "VUID-vkAllocateCommandBuffers-pCommandBuffers-parameter", - "text": " pCommandBuffers must be a valid pointer to an array of pAllocateInfo->commandBufferCount VkCommandBuffer handles" - }, - { - "vuid": "VUID-vkAllocateCommandBuffers-pAllocateInfo::commandBufferCount-arraylength", - "text": " pAllocateInfo->commandBufferCount must be greater than 0" - } - ] - }, - "VkCommandBufferAllocateInfo": { - "core": [ - { - "vuid": "VUID-VkCommandBufferAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO" - }, - { - "vuid": "VUID-VkCommandBufferAllocateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCommandBufferAllocateInfo-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" - }, - { - "vuid": "VUID-VkCommandBufferAllocateInfo-level-parameter", - "text": " level must be a valid VkCommandBufferLevel value" - } - ] - }, - "vkResetCommandBuffer": { - "core": [ - { - "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00045", - "text": " commandBuffer must not be in the pending state" - }, - { - "vuid": "VUID-vkResetCommandBuffer-commandBuffer-00046", - "text": " commandBuffer must have been allocated from a pool that was created with the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT" - }, - { - "vuid": "VUID-vkResetCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkResetCommandBuffer-flags-parameter", - "text": " flags must be a valid combination of VkCommandBufferResetFlagBits values" - } - ] - }, - "vkFreeCommandBuffers": { - "core": [ - { - "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00047", - "text": " All elements of pCommandBuffers must not be in the pending state" - }, - { - "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-00048", - "text": " pCommandBuffers must be a valid pointer to an array of commandBufferCount VkCommandBuffer handles, each element of which must either be a valid handle or NULL" - }, - { - "vuid": "VUID-vkFreeCommandBuffers-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkFreeCommandBuffers-commandPool-parameter", - "text": " commandPool must be a valid VkCommandPool handle" - }, - { - "vuid": "VUID-vkFreeCommandBuffers-commandBufferCount-arraylength", - "text": " commandBufferCount must be greater than 0" - }, - { - "vuid": "VUID-vkFreeCommandBuffers-commandPool-parent", - "text": " commandPool must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkFreeCommandBuffers-pCommandBuffers-parent", - "text": " Each element of pCommandBuffers that is a valid handle must have been created, allocated, or retrieved from commandPool" - } - ] - }, - "vkBeginCommandBuffer": { - "core": [ - { - "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00049", - "text": " commandBuffer must not be in the recording or pending state" - }, - { - "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00050", - "text": " If commandBuffer was allocated from a VkCommandPool which did not have the VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT flag set, commandBuffer must be in the initial state" - }, - { - "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00051", - "text": " If commandBuffer is a secondary command buffer, the pInheritanceInfo member of pBeginInfo must be a valid VkCommandBufferInheritanceInfo structure" - }, - { - "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-00052", - "text": " If commandBuffer is a secondary command buffer and either the occlusionQueryEnable member of the pInheritanceInfo member of pBeginInfo is VK_FALSE, or the precise occlusion queries feature is not enabled, the queryFlags member of the pInheritanceInfo member pBeginInfo must not contain VK_QUERY_CONTROL_PRECISE_BIT" - }, - { - "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-02840", - "text": " If commandBuffer is a primary command buffer, then pBeginInfo->flags must not set both the VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT and the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flags" - }, - { - "vuid": "VUID-vkBeginCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkBeginCommandBuffer-pBeginInfo-parameter", - "text": " pBeginInfo must be a valid pointer to a valid VkCommandBufferBeginInfo structure" - } - ] - }, - "VkCommandBufferBeginInfo": { - "core": [ - { - "vuid": "VUID-VkCommandBufferBeginInfo-flags-00053", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the renderPass member of pInheritanceInfo must be a valid VkRenderPass" - }, - { - "vuid": "VUID-VkCommandBufferBeginInfo-flags-00054", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the subpass member of pInheritanceInfo must be a valid subpass index within the renderPass member of pInheritanceInfo" - }, - { - "vuid": "VUID-VkCommandBufferBeginInfo-flags-00055", - "text": " If flags contains VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT, the framebuffer member of pInheritanceInfo must be either VK_NULL_HANDLE, or a valid VkFramebuffer that is compatible with the renderPass member of pInheritanceInfo" - }, - { - "vuid": "VUID-VkCommandBufferBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO" - }, - { - "vuid": "VUID-VkCommandBufferBeginInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDeviceGroupCommandBufferBeginInfo" - }, - { - "vuid": "VUID-VkCommandBufferBeginInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkCommandBufferBeginInfo-flags-parameter", - "text": " flags must be a valid combination of VkCommandBufferUsageFlagBits values" - } - ] - }, - "VkCommandBufferInheritanceInfo": { - "core": [ - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-occlusionQueryEnable-00056", - "text": " If the inherited queries feature is not enabled, occlusionQueryEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-00057", - "text": " If the inherited queries feature is enabled, queryFlags must be a valid combination of VkQueryControlFlagBits values" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-queryFlags-02788", - "text": " If the inherited queries feature is not enabled, queryFlags must be 0" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-02789", - "text": " If the pipeline statistics queries feature is enabled, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-pipelineStatistics-00058", - "text": " If the pipeline statistics queries feature is not enabled, pipelineStatistics must be 0" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkCommandBufferInheritanceConditionalRenderingInfoEXT or VkCommandBufferInheritanceRenderPassTransformInfoQCOM" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceInfo-commonparent", - "text": " Both of framebuffer, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkCommandBufferInheritanceConditionalRenderingInfoEXT": { - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-conditionalRenderingEnable-01977", - "text": " If the inherited conditional rendering feature is not enabled, conditionalRenderingEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceConditionalRenderingInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT" - } - ] - }, - "VkCommandBufferInheritanceRenderPassTransformInfoQCOM": { - "(VK_QCOM_render_pass_transform)": [ - { - "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-transform-02864", - "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" - }, - { - "vuid": "VUID-VkCommandBufferInheritanceRenderPassTransformInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM" - } - ] - }, - "vkEndCommandBuffer": { - "core": [ - { - "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00059", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00060", - "text": " If commandBuffer is a primary command buffer, there must not be an active render pass instance" - }, - { - "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00061", - "text": " All queries made active during the recording of commandBuffer must have been made inactive" - }, - { - "vuid": "VUID-vkEndCommandBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - } - ], - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkEndCommandBuffer-None-01978", - "text": " Conditional rendering must not be active" - } - ], - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkEndCommandBuffer-commandBuffer-01815", - "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT" - } - ], - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-vkEndCommandBuffer-commandBuffer-00062", - "text": " If commandBuffer is a secondary command buffer, there must not be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT" - } - ] - }, - "vkQueueSubmit": { - "core": [ - { - "vuid": "VUID-vkQueueSubmit-fence-00063", - "text": " If fence is not VK_NULL_HANDLE, fence must be unsignaled" - }, - { - "vuid": "VUID-vkQueueSubmit-fence-00064", - "text": " If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00065", - "text": " Any calls to vkCmdSetEvent, vkCmdResetEvent or vkCmdWaitEvents that have been recorded into any of the command buffer elements of the pCommandBuffers member of any element of pSubmits, must not reference any VkEvent that is referenced by any of those commands in a command buffer that has been submitted to another queue and is still in the pending state" - }, - { - "vuid": "VUID-vkQueueSubmit-pWaitDstStageMask-00066", - "text": " Any stage flag included in any element of the pWaitDstStageMask member of any element of pSubmits must be a pipeline stage supported by one of the capabilities of queue, as specified in the table of supported pipeline stages" - }, - { - "vuid": "VUID-vkQueueSubmit-pSignalSemaphores-00067", - "text": " Each element of the pSignalSemaphores member of any element of pSubmits must be unsignaled when the semaphore signal operation it defines is executed on the device" - }, - { - "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00068", - "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pSubmits executes on queue, there must be no other queues waiting on the same semaphore" - }, - { - "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00070", - "text": " Each element of the pCommandBuffers member of each element of pSubmits must be in the pending or executable state" - }, - { - "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00071", - "text": " If any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" - }, - { - "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00072", - "text": " Any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits must be in the pending or executable state" - }, - { - "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00073", - "text": " If any secondary command buffers recorded into any element of the pCommandBuffers member of any element of pSubmits was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT, it must not be in the pending state" - }, - { - "vuid": "VUID-vkQueueSubmit-pCommandBuffers-00074", - "text": " Each element of the pCommandBuffers member of each element of pSubmits must have been allocated from a VkCommandPool that was created for the same queue family queue belongs to" - }, - { - "vuid": "VUID-vkQueueSubmit-pSubmits-02207", - "text": " If any element of pSubmits->pCommandBuffers includes a Queue Family Transfer Acquire Operation, there must exist a previously submitted Queue Family Transfer Release Operation on a queue in the queue family identified by the acquire operation, with parameters matching the acquire operation as defined in the definition of such acquire operations, and which happens-before the acquire operation" - }, - { - "vuid": "VUID-vkQueueSubmit-pSubmits-02808", - "text": " Any resource created with VK_SHARING_MODE_EXCLUSIVE that is read by an operation specified by pSubmits must not be owned by any queue family other than the one which queue belongs to, at the time it is executed" - }, - { - "vuid": "VUID-vkQueueSubmit-pSubmits-04626", - "text": " Any resource created with VK_SHARING_MODE_CONCURRENT that is accessed by an operation specified by pSubmits must have included the queue family of queue at resource creation time" - }, - { - "vuid": "VUID-vkQueueSubmit-queue-parameter", - "text": " queue must be a valid VkQueue handle" - }, - { - "vuid": "VUID-vkQueueSubmit-pSubmits-parameter", - "text": " If submitCount is not 0, pSubmits must be a valid pointer to an array of submitCount valid VkSubmitInfo structures" - }, - { - "vuid": "VUID-vkQueueSubmit-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-vkQueueSubmit-commonparent", - "text": " Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "!(VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-00069", - "text": " All elements of the pWaitSemaphores member of all elements of pSubmits must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution" - } - ], - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkQueueSubmit-pWaitSemaphores-03238", - "text": " All elements of the pWaitSemaphores member of all elements of pSubmits created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkQueueSubmit-pCommandBuffers-03220", - "text": " If a command recorded into any element of pCommandBuffers was a vkCmdBeginQuery whose queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held continuously on the VkDevice that queue was retrieved from, throughout recording of those command buffers" - } - ] - }, - "VkSubmitInfo": { - "core": [ - { - "vuid": "VUID-VkSubmitInfo-pCommandBuffers-00075", - "text": " Each element of pCommandBuffers must not have been allocated with VK_COMMAND_BUFFER_LEVEL_SECONDARY" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00076", - "text": " If the geometry shaders feature is not enabled, each element of pWaitDstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00077", - "text": " If the tessellation shaders feature is not enabled, each element of pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-00078", - "text": " Each element of pWaitDstStageMask must not include VK_PIPELINE_STAGE_HOST_BIT" - }, - { - "vuid": "VUID-VkSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBMIT_INFO" - }, - { - "vuid": "VUID-VkSubmitInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkD3D12FenceSubmitInfoKHR, VkDeviceGroupSubmitInfo, VkPerformanceQuerySubmitInfoKHR, VkProtectedSubmitInfo, VkTimelineSemaphoreSubmitInfo, VkWin32KeyedMutexAcquireReleaseInfoKHR, or VkWin32KeyedMutexAcquireReleaseInfoNV" - }, - { - "vuid": "VUID-VkSubmitInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitDstStageMask must be a valid pointer to an array of waitSemaphoreCount valid combinations of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-requiredbitmask", - "text": " Each element of pWaitDstStageMask must not be 0" - }, - { - "vuid": "VUID-VkSubmitInfo-pCommandBuffers-parameter", - "text": " If commandBufferCount is not 0, pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" - }, - { - "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" - }, - { - "vuid": "VUID-VkSubmitInfo-commonparent", - "text": " Each of the elements of pCommandBuffers, the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03239", - "text": " If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure" - }, - { - "vuid": "VUID-VkSubmitInfo-pNext-03240", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its waitSemaphoreValueCount member must equal waitSemaphoreCount" - }, - { - "vuid": "VUID-VkSubmitInfo-pNext-03241", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE, then its signalSemaphoreValueCount member must equal signalSemaphoreCount" - }, - { - "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03242", - "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the semaphore signal operation is executed" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitSemaphores-03243", - "text": " For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" - }, - { - "vuid": "VUID-VkSubmitInfo-pSignalSemaphores-03244", - "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-02089", - "text": " If the mesh shaders feature is not enabled, each element of pWaitDstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-VkSubmitInfo-pWaitDstStageMask-02090", - "text": " If the task shaders feature is not enabled, each element of pWaitDstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkSubmitInfo-pNext-04120", - "text": " If the pNext chain of this structure does not include a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be an unprotected command buffer" - }, - { - "vuid": "VUID-VkSubmitInfo-pNext-04148", - "text": " If the pNext chain of this structure includes a VkProtectedSubmitInfo structure with protectedSubmit set to VK_TRUE, then each element of the pCommandBuffers array must be an protected command buffer" - } - ] - }, - "VkTimelineSemaphoreSubmitInfo": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO" - }, - { - "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pWaitSemaphoreValues-parameter", - "text": " If waitSemaphoreValueCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValueCount uint64_t values" - }, - { - "vuid": "VUID-VkTimelineSemaphoreSubmitInfo-pSignalSemaphoreValues-parameter", - "text": " If signalSemaphoreValueCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValueCount uint64_t values" - } - ] - }, - "VkD3D12FenceSubmitInfoKHR": { - "(VK_KHR_external_semaphore_win32)": [ - { - "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-waitSemaphoreValuesCount-00079", - "text": " waitSemaphoreValuesCount must be the same value as VkSubmitInfo::waitSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure" - }, - { - "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-signalSemaphoreValuesCount-00080", - "text": " signalSemaphoreValuesCount must be the same value as VkSubmitInfo::signalSemaphoreCount, where VkSubmitInfo is in the pNext chain of this VkD3D12FenceSubmitInfoKHR structure" - }, - { - "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR" - }, - { - "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pWaitSemaphoreValues-parameter", - "text": " If waitSemaphoreValuesCount is not 0, and pWaitSemaphoreValues is not NULL, pWaitSemaphoreValues must be a valid pointer to an array of waitSemaphoreValuesCount uint64_t values" - }, - { - "vuid": "VUID-VkD3D12FenceSubmitInfoKHR-pSignalSemaphoreValues-parameter", - "text": " If signalSemaphoreValuesCount is not 0, and pSignalSemaphoreValues is not NULL, pSignalSemaphoreValues must be a valid pointer to an array of signalSemaphoreValuesCount uint64_t values" - } - ] - }, - "VkWin32KeyedMutexAcquireReleaseInfoKHR": { - "(VK_KHR_win32_keyed_mutex)": [ - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-00081", - "text": " Each member of pAcquireSyncs and pReleaseSyncs must be a device memory object imported by setting VkImportMemoryWin32HandleInfoKHR::handleType to VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireSyncs-parameter", - "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireKeys-parameter", - "text": " If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pAcquireTimeouts-parameter", - "text": " If acquireCount is not 0, pAcquireTimeouts must be a valid pointer to an array of acquireCount uint32_t values" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseSyncs-parameter", - "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-pReleaseKeys-parameter", - "text": " If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoKHR-commonparent", - "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkWin32KeyedMutexAcquireReleaseInfoNV": { - "(VK_NV_win32_keyed_mutex)": [ - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireSyncs-parameter", - "text": " If acquireCount is not 0, pAcquireSyncs must be a valid pointer to an array of acquireCount valid VkDeviceMemory handles" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireKeys-parameter", - "text": " If acquireCount is not 0, pAcquireKeys must be a valid pointer to an array of acquireCount uint64_t values" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pAcquireTimeoutMilliseconds-parameter", - "text": " If acquireCount is not 0, pAcquireTimeoutMilliseconds must be a valid pointer to an array of acquireCount uint32_t values" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseSyncs-parameter", - "text": " If releaseCount is not 0, pReleaseSyncs must be a valid pointer to an array of releaseCount valid VkDeviceMemory handles" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-pReleaseKeys-parameter", - "text": " If releaseCount is not 0, pReleaseKeys must be a valid pointer to an array of releaseCount uint64_t values" - }, - { - "vuid": "VUID-VkWin32KeyedMutexAcquireReleaseInfoNV-commonparent", - "text": " Both of the elements of pAcquireSyncs, and the elements of pReleaseSyncs that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkProtectedSubmitInfo": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkProtectedSubmitInfo-protectedSubmit-01816", - "text": " If the protected memory feature is not enabled, protectedSubmit must not be VK_TRUE" - }, - { - "vuid": "VUID-VkProtectedSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO" - } - ] - }, - "VkDeviceGroupSubmitInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-waitSemaphoreCount-00082", - "text": " waitSemaphoreCount must equal VkSubmitInfo::waitSemaphoreCount" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-commandBufferCount-00083", - "text": " commandBufferCount must equal VkSubmitInfo::commandBufferCount" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-signalSemaphoreCount-00084", - "text": " signalSemaphoreCount must equal VkSubmitInfo::signalSemaphoreCount" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-00085", - "text": " All elements of pWaitSemaphoreDeviceIndices and pSignalSemaphoreDeviceIndices must be valid device indices" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-00086", - "text": " All elements of pCommandBufferDeviceMasks must be valid device masks" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-pWaitSemaphoreDeviceIndices-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphoreDeviceIndices must be a valid pointer to an array of waitSemaphoreCount uint32_t values" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-pCommandBufferDeviceMasks-parameter", - "text": " If commandBufferCount is not 0, pCommandBufferDeviceMasks must be a valid pointer to an array of commandBufferCount uint32_t values" - }, - { - "vuid": "VUID-VkDeviceGroupSubmitInfo-pSignalSemaphoreDeviceIndices-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphoreDeviceIndices must be a valid pointer to an array of signalSemaphoreCount uint32_t values" - } - ] - }, - "VkPerformanceQuerySubmitInfoKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-counterPassIndex-03221", - "text": " counterPassIndex must be less than the number of counter passes required by any queries within the batch. The required number of counter passes for a performance query is obtained by calling vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" - }, - { - "vuid": "VUID-VkPerformanceQuerySubmitInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR" - } - ] - }, - "vkCmdExecuteCommands": { - "core": [ - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00088", - "text": " Each element of pCommandBuffers must have been allocated with a level of VK_COMMAND_BUFFER_LEVEL_SECONDARY" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00089", - "text": " Each element of pCommandBuffers must be in the pending or executable state" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00091", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not be in the pending state" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00092", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not have already been recorded to commandBuffer" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00093", - "text": " If any element of pCommandBuffers was not recorded with the VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT flag, it must not appear more than once in pCommandBuffers" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00094", - "text": " Each element of pCommandBuffers must have been allocated from a VkCommandPool that was created for the same queue family as the VkCommandPool from which commandBuffer was allocated" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-contents-00095", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, that render pass instance must have been begun with the contents parameter of vkCmdBeginRenderPass set to VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00096", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, each element of pCommandBuffers must have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00097", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::subpass set to the index of the subpass which the given command buffer will be executed in" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pInheritanceInfo-00098", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, the render passes specified in the pBeginInfo->pInheritanceInfo->renderPass members of the vkBeginCommandBuffer commands used to begin recording each element of pCommandBuffers must be compatible with the current render pass" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00099", - "text": " If vkCmdExecuteCommands is being called within a render pass instance, and any element of pCommandBuffers was recorded with VkCommandBufferInheritanceInfo::framebuffer not equal to VK_NULL_HANDLE, that VkFramebuffer must match the VkFramebuffer used in the current render pass instance" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00100", - "text": " If vkCmdExecuteCommands is not being called within a render pass instance, each element of pCommandBuffers must not have been recorded with the VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00101", - "text": " If the inherited queries feature is not enabled, commandBuffer must not have any queries active" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00102", - "text": " If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::occlusionQueryEnable set to VK_TRUE" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00103", - "text": " If commandBuffer has a VK_QUERY_TYPE_OCCLUSION query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::queryFlags having all bits set that are set for the query" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-00104", - "text": " If commandBuffer has a VK_QUERY_TYPE_PIPELINE_STATISTICS query active, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceInfo::pipelineStatistics having all bits set that are set in the VkQueryPool the query uses" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-00105", - "text": " Each element of pCommandBuffers must not begin any query types that are active in commandBuffer" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pCommandBuffers-parameter", - "text": " pCommandBuffers must be a valid pointer to an array of commandBufferCount valid VkCommandBuffer handles" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBufferCount-arraylength", - "text": " commandBufferCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commonparent", - "text": " Both of commandBuffer, and the elements of pCommandBuffers must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_QCOM_render_pass_transform)": [ - { - "vuid": "VUID-vkCmdExecuteCommands-pNext-02865", - "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM in the pNext chain of VkCommandBufferBeginInfo" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pNext-02866", - "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::transform identical to VkRenderPassTransformBeginInfoQCOM::transform" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-pNext-02867", - "text": " If vkCmdExecuteCommands is being called within a render pass instance that included VkRenderPassTransformBeginInfoQCOM in the pNext chain of VkRenderPassBeginInfo, then each element of pCommandBuffers must have been recorded with VkCommandBufferInheritanceRenderPassTransformInfoQCOM::renderArea identical to VkRenderPassBeginInfo::renderArea" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01820", - "text": " If commandBuffer is a protected command buffer, then each element of pCommandBuffers must be a protected command buffer" - }, - { - "vuid": "VUID-vkCmdExecuteCommands-commandBuffer-01821", - "text": " If commandBuffer is an unprotected command buffer, then each element of pCommandBuffers must be an unprotected command buffer" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdExecuteCommands-None-02286", - "text": " This command must not be recorded when transform feedback is active" - } - ] - }, - "VkDeviceGroupCommandBufferBeginInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00106", - "text": " deviceMask must be a valid device mask value" - }, - { - "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-deviceMask-00107", - "text": " deviceMask must not be zero" - }, - { - "vuid": "VUID-VkDeviceGroupCommandBufferBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO" - } - ] - }, - "vkCmdSetDeviceMask": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00108", - "text": " deviceMask must be a valid device mask value" - }, - { - "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00109", - "text": " deviceMask must not be zero" - }, - { - "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00110", - "text": " deviceMask must not include any set bits that were not in the VkDeviceGroupCommandBufferBeginInfo::deviceMask value when the command buffer began recording" - }, - { - "vuid": "VUID-vkCmdSetDeviceMask-deviceMask-00111", - "text": " If vkCmdSetDeviceMask is called inside a render pass instance, deviceMask must not include any set bits that were not in the VkDeviceGroupRenderPassBeginInfo::deviceMask value when the render pass instance began recording" - }, - { - "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDeviceMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" - } - ] - }, - "vkCreateFence": { - "core": [ - { - "vuid": "VUID-vkCreateFence-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateFence-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkFenceCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateFence-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateFence-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" - } - ] - }, - "VkFenceCreateInfo": { - "core": [ - { - "vuid": "VUID-VkFenceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FENCE_CREATE_INFO" - }, - { - "vuid": "VUID-VkFenceCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportFenceCreateInfo or VkExportFenceWin32HandleInfoKHR" - }, - { - "vuid": "VUID-VkFenceCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkFenceCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkFenceCreateFlagBits values" - } - ] - }, - "VkExportFenceCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_fence)": [ - { - "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-01446", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalFenceProperties" - }, - { - "vuid": "VUID-VkExportFenceCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO" - }, - { - "vuid": "VUID-VkExportFenceCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalFenceHandleTypeFlagBits values" - } - ] - }, - "VkExportFenceWin32HandleInfoKHR": { - "(VK_KHR_external_fence_win32)": [ - { - "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-handleTypes-01447", - "text": " If VkExportFenceCreateInfo::handleTypes does not include VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, a VkExportFenceWin32HandleInfoKHR structure must not be included in the pNext chain of VkFenceCreateInfo" - }, - { - "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkExportFenceWin32HandleInfoKHR-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" - } - ] - }, - "vkGetFenceWin32HandleKHR": { - "(VK_KHR_external_fence_win32)": [ - { - "vuid": "VUID-vkGetFenceWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetFenceWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkFenceGetWin32HandleInfoKHR structure" - }, - { - "vuid": "VUID-vkGetFenceWin32HandleKHR-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" - } - ] - }, - "VkFenceGetWin32HandleInfoKHR": { - "(VK_KHR_external_fence_win32)": [ - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01448", - "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when the fence’s current payload was created" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01449", - "text": " If handleType is defined as an NT handle, vkGetFenceWin32HandleKHR must be called no more than once for each valid unique combination of fence and handleType" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-01450", - "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01451", - "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-01452", - "text": " handleType must be defined as an NT handle or a global share handle" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-VkFenceGetWin32HandleInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" - } - ] - }, - "vkGetFenceFdKHR": { - "(VK_KHR_external_fence_fd)": [ - { - "vuid": "VUID-vkGetFenceFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetFenceFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkFenceGetFdInfoKHR structure" - }, - { - "vuid": "VUID-vkGetFenceFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to an int value" - } - ] - }, - "VkFenceGetFdInfoKHR": { - "(VK_KHR_external_fence_fd)": [ - { - "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01453", - "text": " handleType must have been included in VkExportFenceCreateInfo::handleTypes when fence’s current payload was created" - }, - { - "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01454", - "text": " If handleType refers to a handle type with copy payload transference semantics, fence must be signaled, or have an associated fence signal operation pending execution" - }, - { - "vuid": "VUID-VkFenceGetFdInfoKHR-fence-01455", - "text": " fence must not currently have its payload replaced by an imported payload as described below in Importing Fence Payloads unless that imported payload’s handle type was included in VkExternalFenceProperties::exportFromImportedHandleTypes for handleType" - }, - { - "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-01456", - "text": " handleType must be defined as a POSIX file descriptor handle" - }, - { - "vuid": "VUID-VkFenceGetFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR" - }, - { - "vuid": "VUID-VkFenceGetFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkFenceGetFdInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-VkFenceGetFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" - } - ] - }, - "vkDestroyFence": { - "core": [ - { - "vuid": "VUID-vkDestroyFence-fence-01120", - "text": " All queue submission commands that refer to fence must have completed execution" - }, - { - "vuid": "VUID-vkDestroyFence-fence-01121", - "text": " If VkAllocationCallbacks were provided when fence was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyFence-fence-01122", - "text": " If no VkAllocationCallbacks were provided when fence was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyFence-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyFence-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-vkDestroyFence-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyFence-fence-parent", - "text": " If fence is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetFenceStatus": { - "core": [ - { - "vuid": "VUID-vkGetFenceStatus-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetFenceStatus-fence-parameter", - "text": " fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-vkGetFenceStatus-fence-parent", - "text": " fence must have been created, allocated, or retrieved from device" - } - ] - }, - "vkResetFences": { - "core": [ - { - "vuid": "VUID-vkResetFences-pFences-01123", - "text": " Each element of pFences must not be currently associated with any queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-vkResetFences-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkResetFences-pFences-parameter", - "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" - }, - { - "vuid": "VUID-vkResetFences-fenceCount-arraylength", - "text": " fenceCount must be greater than 0" - }, - { - "vuid": "VUID-vkResetFences-pFences-parent", - "text": " Each element of pFences must have been created, allocated, or retrieved from device" - } - ] - }, - "vkWaitForFences": { - "core": [ - { - "vuid": "VUID-vkWaitForFences-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkWaitForFences-pFences-parameter", - "text": " pFences must be a valid pointer to an array of fenceCount valid VkFence handles" - }, - { - "vuid": "VUID-vkWaitForFences-fenceCount-arraylength", - "text": " fenceCount must be greater than 0" - }, - { - "vuid": "VUID-vkWaitForFences-pFences-parent", - "text": " Each element of pFences must have been created, allocated, or retrieved from device" - } - ] - }, - "vkRegisterDeviceEventEXT": { - "(VK_EXT_display_control)": [ - { - "vuid": "VUID-vkRegisterDeviceEventEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkRegisterDeviceEventEXT-pDeviceEventInfo-parameter", - "text": " pDeviceEventInfo must be a valid pointer to a valid VkDeviceEventInfoEXT structure" - }, - { - "vuid": "VUID-vkRegisterDeviceEventEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkRegisterDeviceEventEXT-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" - } - ] - }, - "VkDeviceEventInfoEXT": { - "(VK_EXT_display_control)": [ - { - "vuid": "VUID-VkDeviceEventInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT" - }, - { - "vuid": "VUID-VkDeviceEventInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDeviceEventInfoEXT-deviceEvent-parameter", - "text": " deviceEvent must be a valid VkDeviceEventTypeEXT value" - } - ] - }, - "vkRegisterDisplayEventEXT": { - "(VK_EXT_display_control)": [ - { - "vuid": "VUID-vkRegisterDisplayEventEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkRegisterDisplayEventEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkRegisterDisplayEventEXT-pDisplayEventInfo-parameter", - "text": " pDisplayEventInfo must be a valid pointer to a valid VkDisplayEventInfoEXT structure" - }, - { - "vuid": "VUID-vkRegisterDisplayEventEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkRegisterDisplayEventEXT-pFence-parameter", - "text": " pFence must be a valid pointer to a VkFence handle" - }, - { - "vuid": "VUID-vkRegisterDisplayEventEXT-commonparent", - "text": " Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice" - } - ] - }, - "VkDisplayEventInfoEXT": { - "(VK_EXT_display_control)": [ - { - "vuid": "VUID-VkDisplayEventInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT" - }, - { - "vuid": "VUID-VkDisplayEventInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDisplayEventInfoEXT-displayEvent-parameter", - "text": " displayEvent must be a valid VkDisplayEventTypeEXT value" - } - ] - }, - "vkImportFenceWin32HandleKHR": { - "(VK_KHR_external_fence_win32)": [ - { - "vuid": "VUID-vkImportFenceWin32HandleKHR-fence-04448", - "text": " fence must not be associated with any queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-vkImportFenceWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkImportFenceWin32HandleKHR-pImportFenceWin32HandleInfo-parameter", - "text": " pImportFenceWin32HandleInfo must be a valid pointer to a valid VkImportFenceWin32HandleInfoKHR structure" - } - ] - }, - "VkImportFenceWin32HandleInfoKHR": { - "(VK_KHR_external_fence_win32)": [ - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01457", - "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceWin32HandleInfoKHR table" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01459", - "text": " If handleType is not VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, name must be NULL" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01460", - "text": " If handleType is not 0 and handle is NULL, name must name a valid synchronization primitive of the type specified by handleType" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-01461", - "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01462", - "text": " If handle is not NULL, name must be NULL" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handle-01539", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-name-01540", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external fence handle types compatibility" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkFenceImportFlagBits values" - }, - { - "vuid": "VUID-VkImportFenceWin32HandleInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalFenceHandleTypeFlagBits value" - } - ] - }, - "vkImportFenceFdKHR": { - "(VK_KHR_external_fence_fd)": [ - { - "vuid": "VUID-vkImportFenceFdKHR-fence-01463", - "text": " fence must not be associated with any queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-vkImportFenceFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkImportFenceFdKHR-pImportFenceFdInfo-parameter", - "text": " pImportFenceFdInfo must be a valid pointer to a valid VkImportFenceFdInfoKHR structure" - } - ] - }, - "VkImportFenceFdInfoKHR": { - "(VK_KHR_external_fence_fd)": [ - { - "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-01464", - "text": " handleType must be a value included in the Handle Types Supported by VkImportFenceFdInfoKHR table" - }, - { - "vuid": "VUID-VkImportFenceFdInfoKHR-fd-01541", - "text": " fd must obey any requirements listed for handleType in external fence handle types compatibility" - }, - { - "vuid": "VUID-VkImportFenceFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR" - }, - { - "vuid": "VUID-VkImportFenceFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImportFenceFdInfoKHR-fence-parameter", - "text": " fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-VkImportFenceFdInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkFenceImportFlagBits values" - }, - { - "vuid": "VUID-VkImportFenceFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" - } - ] - }, - "vkCreateSemaphore": { - "core": [ - { - "vuid": "VUID-vkCreateSemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateSemaphore-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSemaphoreCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateSemaphore-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateSemaphore-pSemaphore-parameter", - "text": " pSemaphore must be a valid pointer to a VkSemaphore handle" - } - ] - }, - "VkSemaphoreCreateInfo": { - "core": [ - { - "vuid": "VUID-VkSemaphoreCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO" - }, - { - "vuid": "VUID-VkSemaphoreCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkExportSemaphoreCreateInfo, VkExportSemaphoreWin32HandleInfoKHR, or VkSemaphoreTypeCreateInfo" - }, - { - "vuid": "VUID-VkSemaphoreCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkSemaphoreCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "VkSemaphoreTypeCreateInfo": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkSemaphoreTypeCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO" - }, - { - "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-parameter", - "text": " semaphoreType must be a valid VkSemaphoreType value" - }, - { - "vuid": "VUID-VkSemaphoreTypeCreateInfo-timelineSemaphore-03252", - "text": " If the timelineSemaphore feature is not enabled, semaphoreType must not equal VK_SEMAPHORE_TYPE_TIMELINE" - }, - { - "vuid": "VUID-VkSemaphoreTypeCreateInfo-semaphoreType-03279", - "text": " If semaphoreType is VK_SEMAPHORE_TYPE_BINARY, initialValue must be zero" - } - ] - }, - "VkExportSemaphoreCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_semaphore)": [ - { - "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-01124", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalSemaphoreProperties" - }, - { - "vuid": "VUID-VkExportSemaphoreCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO" - }, - { - "vuid": "VUID-VkExportSemaphoreCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalSemaphoreHandleTypeFlagBits values" - } - ] - }, - "VkExportSemaphoreWin32HandleInfoKHR": { - "(VK_KHR_external_semaphore_win32)": [ - { - "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-handleTypes-01125", - "text": " If VkExportSemaphoreCreateInfo::handleTypes does not include VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, VkExportSemaphoreWin32HandleInfoKHR must not be included in the pNext chain of VkSemaphoreCreateInfo" - }, - { - "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkExportSemaphoreWin32HandleInfoKHR-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" - } - ] - }, - "vkGetSemaphoreWin32HandleKHR": { - "(VK_KHR_external_semaphore_win32)": [ - { - "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkSemaphoreGetWin32HandleInfoKHR structure" - }, - { - "vuid": "VUID-vkGetSemaphoreWin32HandleKHR-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" - } - ] - }, - "VkSemaphoreGetWin32HandleInfoKHR": { - "(VK_KHR_external_semaphore_win32)": [ - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01126", - "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when the semaphore’s current payload was created" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01127", - "text": " If handleType is defined as an NT handle, vkGetSemaphoreWin32HandleKHR must be called no more than once for each valid unique combination of semaphore and handleType" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-01128", - "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01129", - "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01130", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-01131", - "text": " handleType must be defined as an NT handle or a global share handle" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-VkSemaphoreGetWin32HandleInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" - } - ] - }, - "vkGetSemaphoreFdKHR": { - "(VK_KHR_external_semaphore_fd)": [ - { - "vuid": "VUID-vkGetSemaphoreFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetSemaphoreFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkSemaphoreGetFdInfoKHR structure" - }, - { - "vuid": "VUID-vkGetSemaphoreFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to an int value" - } - ] - }, - "VkSemaphoreGetFdInfoKHR": { - "(VK_KHR_external_semaphore_fd)": [ - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01132", - "text": " handleType must have been included in VkExportSemaphoreCreateInfo::handleTypes when semaphore’s current payload was created" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-01133", - "text": " semaphore must not currently have its payload replaced by an imported payload as described below in Importing Semaphore Payloads unless that imported payload’s handle type was included in VkExternalSemaphoreProperties::exportFromImportedHandleTypes for handleType" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01134", - "text": " If handleType refers to a handle type with copy payload transference semantics, as defined below in Importing Semaphore Payloads, there must be no queue waiting on semaphore" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01135", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must be signaled, or have an associated semaphore signal operation pending execution" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-01136", - "text": " handleType must be defined as a POSIX file descriptor handle" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" - } - ], - "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03253", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" - }, - { - "vuid": "VUID-VkSemaphoreGetFdInfoKHR-handleType-03254", - "text": " If handleType refers to a handle type with copy payload transference semantics, semaphore must have an associated semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" - } - ] - }, - "vkDestroySemaphore": { - "core": [ - { - "vuid": "VUID-vkDestroySemaphore-semaphore-01137", - "text": " All submitted batches that refer to semaphore must have completed execution" - }, - { - "vuid": "VUID-vkDestroySemaphore-semaphore-01138", - "text": " If VkAllocationCallbacks were provided when semaphore was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroySemaphore-semaphore-01139", - "text": " If no VkAllocationCallbacks were provided when semaphore was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroySemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroySemaphore-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-vkDestroySemaphore-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroySemaphore-semaphore-parent", - "text": " If semaphore is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetSemaphoreCounterValue": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-03255", - "text": " semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" - }, - { - "vuid": "VUID-vkGetSemaphoreCounterValue-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-vkGetSemaphoreCounterValue-pValue-parameter", - "text": " pValue must be a valid pointer to a uint64_t value" - }, - { - "vuid": "VUID-vkGetSemaphoreCounterValue-semaphore-parent", - "text": " semaphore must have been created, allocated, or retrieved from device" - } - ] - }, - "vkWaitSemaphores": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkWaitSemaphores-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkWaitSemaphores-pWaitInfo-parameter", - "text": " pWaitInfo must be a valid pointer to a valid VkSemaphoreWaitInfo structure" - } - ] - }, - "VkSemaphoreWaitInfo": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-03256", - "text": " All of the elements of pSemaphores must reference a semaphore that was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" - }, - { - "vuid": "VUID-VkSemaphoreWaitInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO" - }, - { - "vuid": "VUID-VkSemaphoreWaitInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkSemaphoreWaitInfo-flags-parameter", - "text": " flags must be a valid combination of VkSemaphoreWaitFlagBits values" - }, - { - "vuid": "VUID-VkSemaphoreWaitInfo-pSemaphores-parameter", - "text": " pSemaphores must be a valid pointer to an array of semaphoreCount valid VkSemaphore handles" - }, - { - "vuid": "VUID-VkSemaphoreWaitInfo-pValues-parameter", - "text": " pValues must be a valid pointer to an array of semaphoreCount uint64_t values" - }, - { - "vuid": "VUID-VkSemaphoreWaitInfo-semaphoreCount-arraylength", - "text": " semaphoreCount must be greater than 0" - } - ] - }, - "vkSignalSemaphore": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkSignalSemaphore-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkSignalSemaphore-pSignalInfo-parameter", - "text": " pSignalInfo must be a valid pointer to a valid VkSemaphoreSignalInfo structure" - } - ] - }, - "VkSemaphoreSignalInfo": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-03257", - "text": " semaphore must have been created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE" - }, - { - "vuid": "VUID-VkSemaphoreSignalInfo-value-03258", - "text": " value must have a value greater than the current value of the semaphore" - }, - { - "vuid": "VUID-VkSemaphoreSignalInfo-value-03259", - "text": " value must be less than the value of any pending semaphore signal operations" - }, - { - "vuid": "VUID-VkSemaphoreSignalInfo-value-03260", - "text": " value must have a value which does not differ from the current value of the semaphore or the value of any outstanding semaphore wait or signal operation on semaphore by more than maxTimelineSemaphoreValueDifference" - }, - { - "vuid": "VUID-VkSemaphoreSignalInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO" - }, - { - "vuid": "VUID-VkSemaphoreSignalInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkSemaphoreSignalInfo-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" - } - ] - }, - "vkImportSemaphoreWin32HandleKHR": { - "(VK_KHR_external_semaphore_win32)": [ - { - "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkImportSemaphoreWin32HandleKHR-pImportSemaphoreWin32HandleInfo-parameter", - "text": " pImportSemaphoreWin32HandleInfo must be a valid pointer to a valid VkImportSemaphoreWin32HandleInfoKHR structure" - } - ] - }, - "VkImportSemaphoreWin32HandleInfoKHR": { - "(VK_KHR_external_semaphore_win32)": [ - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01140", - "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreWin32HandleInfoKHR table" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01466", - "text": " If handleType is not VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, name must be NULL" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01467", - "text": " If handleType is not 0 and handle is NULL, name must name a valid synchronization primitive of the type specified by handleType" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-01468", - "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01469", - "text": " If handle is not NULL, name must be NULL" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handle-01542", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-name-01543", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external semaphore handle types compatibility" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03261", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which handle or name was exported" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkSemaphoreImportFlagBits values" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" - } - ], - "(VK_KHR_external_semaphore_win32)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-handleType-03262", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT or VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which handle or name was exported" - }, - { - "vuid": "VUID-VkImportSemaphoreWin32HandleInfoKHR-flags-03322", - "text": " If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which handle or name was exported must not be VK_SEMAPHORE_TYPE_TIMELINE" - } - ] - }, - "vkImportSemaphoreFdKHR": { - "(VK_KHR_external_semaphore_fd)": [ - { - "vuid": "VUID-vkImportSemaphoreFdKHR-semaphore-01142", - "text": " semaphore must not be associated with any queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-vkImportSemaphoreFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkImportSemaphoreFdKHR-pImportSemaphoreFdInfo-parameter", - "text": " pImportSemaphoreFdInfo must be a valid pointer to a valid VkImportSemaphoreFdInfoKHR structure" - } - ] - }, - "VkImportSemaphoreFdInfoKHR": { - "(VK_KHR_external_semaphore_fd)": [ - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-01143", - "text": " handleType must be a value included in the Handle Types Supported by VkImportSemaphoreFdInfoKHR table" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-fd-01544", - "text": " fd must obey any requirements listed for handleType in external semaphore handle types compatibility" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03263", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreCreateInfo::flags field must match that of the semaphore from which fd was exported" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-semaphore-parameter", - "text": " semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkSemaphoreImportFlagBits values" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" - } - ], - "(VK_KHR_external_semaphore_fd)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-handleType-03264", - "text": " If handleType is VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field must match that of the semaphore from which fd was exported" - }, - { - "vuid": "VUID-VkImportSemaphoreFdInfoKHR-flags-03323", - "text": " If flags contains VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, the VkSemaphoreTypeCreateInfo::semaphoreType field of the semaphore from which fd was exported must not be VK_SEMAPHORE_TYPE_TIMELINE" - } - ] - }, - "vkCreateEvent": { - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-vkCreateEvent-events-04468", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::events is VK_FALSE, then the implementation does not support events, and vkCreateEvent must not be used." - } - ], - "core": [ - { - "vuid": "VUID-vkCreateEvent-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateEvent-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkEventCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateEvent-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateEvent-pEvent-parameter", - "text": " pEvent must be a valid pointer to a VkEvent handle" - } - ] - }, - "VkEventCreateInfo": { - "core": [ - { - "vuid": "VUID-VkEventCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EVENT_CREATE_INFO" - }, - { - "vuid": "VUID-VkEventCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkEventCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkDestroyEvent": { - "core": [ - { - "vuid": "VUID-vkDestroyEvent-event-01145", - "text": " All submitted commands that refer to event must have completed execution" - }, - { - "vuid": "VUID-vkDestroyEvent-event-01146", - "text": " If VkAllocationCallbacks were provided when event was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyEvent-event-01147", - "text": " If no VkAllocationCallbacks were provided when event was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyEvent-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyEvent-event-parameter", - "text": " If event is not VK_NULL_HANDLE, event must be a valid VkEvent handle" - }, - { - "vuid": "VUID-vkDestroyEvent-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyEvent-event-parent", - "text": " If event is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetEventStatus": { - "core": [ - { - "vuid": "VUID-vkGetEventStatus-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetEventStatus-event-parameter", - "text": " event must be a valid VkEvent handle" - }, - { - "vuid": "VUID-vkGetEventStatus-event-parent", - "text": " event must have been created, allocated, or retrieved from device" - } - ] - }, - "vkSetEvent": { - "core": [ - { - "vuid": "VUID-vkSetEvent-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkSetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" - }, - { - "vuid": "VUID-vkSetEvent-event-parent", - "text": " event must have been created, allocated, or retrieved from device" - } - ] - }, - "vkResetEvent": { - "core": [ - { - "vuid": "VUID-vkResetEvent-event-01148", - "text": " event must not be waited on by a vkCmdWaitEvents command that is currently executing" - }, - { - "vuid": "VUID-vkResetEvent-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkResetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" - }, - { - "vuid": "VUID-vkResetEvent-event-parent", - "text": " event must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdSetEvent": { - "core": [ - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04090", - "text": " If the geometry shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04091", - "text": " If the tessellation shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdSetEvent-stageMask-4098", - "text": " Any pipeline stage included in pname:stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" - }, - { - "vuid": "VUID-vkCmdSetEvent-stageMask-01149", - "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" - }, - { - "vuid": "VUID-vkCmdSetEvent-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" - }, - { - "vuid": "VUID-vkCmdSetEvent-stageMask-parameter", - "text": " stageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-vkCmdSetEvent-stageMask-requiredbitmask", - "text": " stageMask must not be 0" - }, - { - "vuid": "VUID-vkCmdSetEvent-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetEvent-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdSetEvent-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdSetEvent-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04092", - "text": " If the conditional rendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04093", - "text": " If the fragment density map feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04094", - "text": " If the transform feedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04095", - "text": " If the mesh shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04096", - "text": " If the task shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdSetEvent-stageMask-04097", - "text": " If the shading rate image feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCmdSetEvent-commandBuffer-01152", - "text": " commandBuffer’s current device mask must include exactly one physical device" - } - ] - }, - "vkCmdResetEvent": { - "core": [ - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04090", - "text": " If the geometry shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04091", - "text": " If the tessellation shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdResetEvent-stageMask-4098", - "text": " Any pipeline stage included in pname:stageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" - }, - { - "vuid": "VUID-vkCmdResetEvent-stageMask-01153", - "text": " stageMask must not include VK_PIPELINE_STAGE_HOST_BIT" - }, - { - "vuid": "VUID-vkCmdResetEvent-event-01156", - "text": " When this command executes, event must not be waited on by a vkCmdWaitEvents command that is currently executing" - }, - { - "vuid": "VUID-vkCmdResetEvent-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdResetEvent-event-parameter", - "text": " event must be a valid VkEvent handle" - }, - { - "vuid": "VUID-vkCmdResetEvent-stageMask-parameter", - "text": " stageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-vkCmdResetEvent-stageMask-requiredbitmask", - "text": " stageMask must not be 0" - }, - { - "vuid": "VUID-vkCmdResetEvent-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdResetEvent-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdResetEvent-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdResetEvent-commonparent", - "text": " Both of commandBuffer, and event must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04092", - "text": " If the conditional rendering feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04093", - "text": " If the fragment density map feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04094", - "text": " If the transform feedback feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04095", - "text": " If the mesh shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04096", - "text": " If the task shaders feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdResetEvent-stageMask-04097", - "text": " If the shading rate image feature is not enabled, pname:stageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCmdResetEvent-commandBuffer-01157", - "text": " commandBuffer’s current device mask must include exactly one physical device" - } - ] - }, - "vkCmdWaitEvents": { - "core": [ - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04090", - "text": " If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04091", - "text": " If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-4098", - "text": " Any pipeline stage included in pname:srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04090", - "text": " If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04091", - "text": " If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-4098", - "text": " Any pipeline stage included in pname:dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcAccessMask-02815", - "text": " The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstAccessMask-02816", - "text": " The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02817", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-02818", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02819", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-02820", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-01158", - "text": " srcStageMask must be the bitwise OR of the stageMask parameter used in previous calls to vkCmdSetEvent with any of the members of pEvents and VK_PIPELINE_STAGE_HOST_BIT if any of the members of pEvents was set using vkSetEvent" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pEvents-01163", - "text": " If pEvents includes one or more events that will be signaled by vkSetEvent after commandBuffer has been submitted to a queue, then vkCmdWaitEvents must not be called inside a render pass instance" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcQueueFamilyIndex-02803", - "text": " The srcQueueFamilyIndex and dstQueueFamilyIndex members of any element of pBufferMemoryBarriers or pImageMemoryBarriers must be equal" - }, - { - "vuid": "VUID-vkCmdWaitEvents-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pEvents-parameter", - "text": " pEvents must be a valid pointer to an array of eventCount valid VkEvent handles" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-requiredbitmask", - "text": " srcStageMask must not be 0" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-requiredbitmask", - "text": " dstStageMask must not be 0" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pMemoryBarriers-parameter", - "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pBufferMemoryBarriers-parameter", - "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" - }, - { - "vuid": "VUID-vkCmdWaitEvents-pImageMemoryBarriers-parameter", - "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" - }, - { - "vuid": "VUID-vkCmdWaitEvents-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdWaitEvents-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdWaitEvents-eventCount-arraylength", - "text": " eventCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdWaitEvents-commonparent", - "text": " Both of commandBuffer, and the elements of pEvents must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04092", - "text": " If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04092", - "text": " If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04093", - "text": " If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04093", - "text": " If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04094", - "text": " If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04094", - "text": " If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04095", - "text": " If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04096", - "text": " If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04095", - "text": " If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04096", - "text": " If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdWaitEvents-srcStageMask-04097", - "text": " If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - }, - { - "vuid": "VUID-vkCmdWaitEvents-dstStageMask-04097", - "text": " If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCmdWaitEvents-commandBuffer-01167", - "text": " commandBuffer’s current device mask must include exactly one physical device" - } - ] - }, - "vkCmdPipelineBarrier": { - "core": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04090", - "text": " If the geometry shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04091", - "text": " If the tessellation shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-4098", - "text": " Any pipeline stage included in pname:srcStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04090", - "text": " If the geometry shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04091", - "text": " If the tessellation shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-4098", - "text": " Any pipeline stage included in pname:dstStageMask must be supported by the capabilities of the queue family specified by the queueFamilyIndex member of the VkCommandPoolCreateInfo structure that was used to create the VkCommandPool that commandBuffer was allocated from, as specified in the table of supported pipeline stages" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcAccessMask-02815", - "text": " The srcAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstAccessMask-02816", - "text": " The dstAccessMask member of each element of pMemoryBarriers must only include access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02817", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-02818", - "text": " For any element of pBufferMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02819", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its srcQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its srcAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-02820", - "text": " For any element of pImageMemoryBarriers, if its srcQueueFamilyIndex and dstQueueFamilyIndex members are equal, or if its dstQueueFamilyIndex is the queue family index that was used to create the command pool that commandBuffer was allocated from, then its dstAccessMask member must only contain access flags that are supported by one or more of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pDependencies-02285", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the render pass must have been created with at least one VkSubpassDependency instance in VkRenderPassCreateInfo::pDependencies that expresses a dependency from the current subpass to itself, with synchronization scopes and access scopes that are all supersets of the scopes defined in this command" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-bufferMemoryBarrierCount-01178", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, it must not include any buffer memory barriers" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-image-04073", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the image member of any image memory barrier included in this command must be an attachment used in the current subpass both as an input attachment, and as either a color or depth/stencil attachment" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-oldLayout-01181", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the oldLayout and newLayout members of any image memory barrier included in this command must be equal" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcQueueFamilyIndex-01182", - "text": " If fname:vkCmdPipelineBarrier is called within a render pass instance, the srcQueueFamilyIndex and dstQueueFamilyIndex members of any image memory barrier included in this command must be equal" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-requiredbitmask", - "text": " srcStageMask must not be 0" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-requiredbitmask", - "text": " dstStageMask must not be 0" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-parameter", - "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pMemoryBarriers-parameter", - "text": " If memoryBarrierCount is not 0, pMemoryBarriers must be a valid pointer to an array of memoryBarrierCount valid VkMemoryBarrier structures" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pBufferMemoryBarriers-parameter", - "text": " If bufferMemoryBarrierCount is not 0, pBufferMemoryBarriers must be a valid pointer to an array of bufferMemoryBarrierCount valid VkBufferMemoryBarrier structures" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-pImageMemoryBarriers-parameter", - "text": " If imageMemoryBarrierCount is not 0, pImageMemoryBarriers must be a valid pointer to an array of imageMemoryBarrierCount valid VkImageMemoryBarrier structures" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - } - ], - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04092", - "text": " If the conditional rendering feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04092", - "text": " If the conditional rendering feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04093", - "text": " If the fragment density map feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04093", - "text": " If the fragment density map feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04094", - "text": " If the transform feedback feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04094", - "text": " If the transform feedback feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04095", - "text": " If the mesh shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04096", - "text": " If the task shaders feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04095", - "text": " If the mesh shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04096", - "text": " If the task shaders feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-srcStageMask-04097", - "text": " If the shading rate image feature is not enabled, pname:srcStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - }, - { - "vuid": "VUID-vkCmdPipelineBarrier-dstStageMask-04097", - "text": " If the shading rate image feature is not enabled, pname:dstStageMask must not contain VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdPipelineBarrier-dependencyFlags-01186", - "text": " If fname:vkCmdPipelineBarrier is called outside of a render pass instance, VK_DEPENDENCY_VIEW_LOCAL_BIT must not be included in the dependency flags" - } - ] - }, - "VkMemoryBarrier": { - "core": [ - { - "vuid": "VUID-VkMemoryBarrier-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_BARRIER" - }, - { - "vuid": "VUID-VkMemoryBarrier-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkMemoryBarrier-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" - }, - { - "vuid": "VUID-VkMemoryBarrier-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" - } - ] - }, - "VkBufferMemoryBarrier": { - "core": [ - { - "vuid": "VUID-VkBufferMemoryBarrier-offset-01187", - "text": " offset must be less than the size of buffer" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-size-01188", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-size-01189", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to than the size of buffer minus offset" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01931", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - } - ], - "!(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-04086", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01190", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkBufferMemoryBarrier-srcQueueFamilyIndex-04087", - "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-04088", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is a special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-04089", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer" - }, - { - "vuid": "VUID-VkBufferMemoryBarrier-buffer-01191", - "text": " If buffer was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED" - } - ] - }, - "VkImageMemoryBarrier": { - "core": [ - { - "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01486", - "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01724", - "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01488", - "text": " subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-01725", - "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01932", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01208", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01209", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01210", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01211", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01212", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01213", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01197", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, oldLayout must be VK_IMAGE_LAYOUT_UNDEFINED or the current layout of the image subresources affected by the barrier" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-newLayout-01198", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, newLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkSampleLocationsInfoEXT" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-parameter", - "text": " oldLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-newLayout-parameter", - "text": " newLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01658", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-01659", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" - } - ], - "(VK_VERSION_1_2,VK_EXT_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04065", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04066", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04067", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR then image must have been created with at least one of VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_SAMPLED_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04068", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT set" - } - ], - "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-oldLayout-02088", - "text": " If srcQueueFamilyIndex and dstQueueFamilyIndex define a queue family ownership transfer or oldLayout and newLayout define a image layout transition, and oldLayout or newLayout is VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR then image must have been created with VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR set" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-image-02902", - "text": " If image has a color format, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-image-01671", - "text": " If image has a single-plane color format or is not disjoint, then the aspectMask member of subresourceRange must be VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01672", - "text": " If image has a multi-planar format and the image is disjoint, then the aspectMask member of subresourceRange must include either at least one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, and VK_IMAGE_ASPECT_PLANE_2_BIT; or must include VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01673", - "text": " If image has a multi-planar format with only two planes, then the aspectMask member of subresourceRange must not include VK_IMAGE_ASPECT_PLANE_2_BIT" - } - ], - "!(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-image-01207", - "text": " If image has a depth/stencil format with both depth and stencil components, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" - } - ], - "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-image-03319", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is enabled, then the aspectMask member of subresourceRange must include either or both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-03320", - "text": " If image has a depth/stencil format with both depth and stencil and the separateDepthStencilLayouts feature is not enabled, then the aspectMask member of subresourceRange must include both VK_IMAGE_ASPECT_DEPTH_BIT and VK_IMAGE_ASPECT_STENCIL_BIT" - } - ], - "!(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-image-04069", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must be valid queue families" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01199", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex must both be VK_QUEUE_FAMILY_IGNORED" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkImageMemoryBarrier-srcQueueFamilyIndex-04070", - "text": " If srcQueueFamilyIndex is not equal to dstQueueFamilyIndex, at least one must not be a special queue family reserved for external memory ownership transfers, as described in Queue Family Ownership Transfer" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-04071", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, and one of srcQueueFamilyIndex and dstQueueFamilyIndex is a special queue family values reserved for external memory transfers, the other must be VK_QUEUE_FAMILY_IGNORED" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-04072", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_EXCLUSIVE, and srcQueueFamilyIndex and dstQueueFamilyIndex are not equal, srcQueueFamilyIndex and dstQueueFamilyIndex must both be valid queue families, or one of the special queue family values reserved for external memory transfers, as described in Queue Family Ownership Transfer" - }, - { - "vuid": "VUID-VkImageMemoryBarrier-image-01381", - "text": " If image was created with a sharing mode of VK_SHARING_MODE_CONCURRENT, at least one of srcQueueFamilyIndex and dstQueueFamilyIndex must be VK_QUEUE_FAMILY_IGNORED" - } - ] - }, - "vkQueueWaitIdle": { - "core": [ - { - "vuid": "VUID-vkQueueWaitIdle-queue-parameter", - "text": " queue must be a valid VkQueue handle" - } - ] - }, - "vkDeviceWaitIdle": { - "core": [ - { - "vuid": "VUID-vkDeviceWaitIdle-device-parameter", - "text": " device must be a valid VkDevice handle" - } - ] - }, - "vkGetCalibratedTimestampsEXT": { - "(VK_EXT_calibrated_timestamps)": [ - { - "vuid": "VUID-vkGetCalibratedTimestampsEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestampInfos-parameter", - "text": " pTimestampInfos must be a valid pointer to an array of timestampCount valid VkCalibratedTimestampInfoEXT structures" - }, - { - "vuid": "VUID-vkGetCalibratedTimestampsEXT-pTimestamps-parameter", - "text": " pTimestamps must be a valid pointer to an array of timestampCount uint64_t values" - }, - { - "vuid": "VUID-vkGetCalibratedTimestampsEXT-pMaxDeviation-parameter", - "text": " pMaxDeviation must be a valid pointer to a uint64_t value" - }, - { - "vuid": "VUID-vkGetCalibratedTimestampsEXT-timestampCount-arraylength", - "text": " timestampCount must be greater than 0" - } - ] - }, - "VkCalibratedTimestampInfoEXT": { - "(VK_EXT_calibrated_timestamps)": [ - { - "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-02354", - "text": " timeDomain must be one of the VkTimeDomainEXT values returned by vkGetPhysicalDeviceCalibrateableTimeDomainsEXT" - }, - { - "vuid": "VUID-VkCalibratedTimestampInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT" - }, - { - "vuid": "VUID-VkCalibratedTimestampInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCalibratedTimestampInfoEXT-timeDomain-parameter", - "text": " timeDomain must be a valid VkTimeDomainEXT value" - } - ] - }, - "vkCreateRenderPass": { - "core": [ - { - "vuid": "VUID-vkCreateRenderPass-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateRenderPass-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateRenderPass-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateRenderPass-pRenderPass-parameter", - "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" - } - ] - }, - "VkRenderPassCreateInfo": { - "core": [ - { - "vuid": "VUID-VkRenderPassCreateInfo-attachment-00834", - "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any element of pSubpasses is not VK_ATTACHMENT_UNUSED, it must be less than attachmentCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-00836", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-02511", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00837", - "text": " For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-00838", - "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-srcSubpass-02517", - "text": " The srcSubpass member of each element of pDependencies must be less than subpassCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-dstSubpass-02518", - "text": " The dstSubpass member of each element of pDependencies must be less than subpassCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkRenderPassFragmentDensityMapCreateInfoEXT, VkRenderPassInputAttachmentAspectCreateInfo, or VkRenderPassMultiviewCreateInfo" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkRenderPassCreateFlagBits values" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription structures" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pSubpasses-parameter", - "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription structures" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pDependencies-parameter", - "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency structures" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-subpassCount-arraylength", - "text": " subpassCount must be greater than 0" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01566", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pAttachments-01567", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-01926", - "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the subpass member of each element of its pAspectReferences member must be less than subpassCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-01927", - "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, the inputAttachmentIndex member of each element of its pAspectReferences member must be less than the value of inputAttachmentCount in the member of pSubpasses identified by its subpass member" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-01963", - "text": " If the pNext chain includes a VkRenderPassInputAttachmentAspectCreateInfo structure, for any element of the pInputAttachments member of any element of pSubpasses where the attachment member is not VK_ATTACHMENT_UNUSED, the aspectMask member of the corresponding element of VkRenderPassInputAttachmentAspectCreateInfo::pAspectReferences must only include aspects that are present in images of the format specified by the element of pAttachments at attachment" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-01928", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and its subpassCount member is not zero, that member must be equal to the value of subpassCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-01929", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, if its dependencyCount member is not zero, it must be equal to dependencyCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-01930", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for each non-zero element of pViewOffsets, the srcSubpass and dstSubpass members of pDependencies at the same index must not be equal" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-02512", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, for any element of pDependencies with a dependencyFlags member that does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, the corresponding element of the pViewOffsets member of that VkRenderPassMultiviewCreateInfo instance must be 0" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-02513", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, elements of its pViewMasks member must either all be 0, or all not be 0" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-02514", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, the dependencyFlags member of each element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo-pNext-02515", - "text": " If the pNext chain includes a VkRenderPassMultiviewCreateInfo structure, and each element of its pViewMasks member is 0, correlatedViewMaskCount must be 0" - } - ] - }, - "VkRenderPassMultiviewCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-00841", - "text": " Each view index must not be set in more than one element of pCorrelationMasks" - }, - { - "vuid": "VUID-VkRenderPassMultiviewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO" - }, - { - "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewMasks-parameter", - "text": " If subpassCount is not 0, pViewMasks must be a valid pointer to an array of subpassCount uint32_t values" - }, - { - "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pViewOffsets-parameter", - "text": " If dependencyCount is not 0, pViewOffsets must be a valid pointer to an array of dependencyCount int32_t values" - }, - { - "vuid": "VUID-VkRenderPassMultiviewCreateInfo-pCorrelationMasks-parameter", - "text": " If correlationMaskCount is not 0, pCorrelationMasks must be a valid pointer to an array of correlationMaskCount uint32_t values" - } - ] - }, - "VkRenderPassFragmentDensityMapCreateInfoEXT": { - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02547", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must be less than VkRenderPassCreateInfo::attachmentCount" - }, - { - "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02548", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must not be an element of VkSubpassDescription::pInputAttachments, VkSubpassDescription::pColorAttachments, VkSubpassDescription::pResolveAttachments, VkSubpassDescription::pDepthStencilAttachment, or VkSubpassDescription::pPreserveAttachments for any subpass" - }, - { - "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02549", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, layout must be equal to VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT, or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02550", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a loadOp equal to VK_ATTACHMENT_LOAD_OP_LOAD or VK_ATTACHMENT_LOAD_OP_DONT_CARE" - }, - { - "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-02551", - "text": " If fragmentDensityMapAttachment is not VK_ATTACHMENT_UNUSED, fragmentDensityMapAttachment must reference an attachment with a storeOp equal to VK_ATTACHMENT_STORE_OP_DONT_CARE" - }, - { - "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkRenderPassFragmentDensityMapCreateInfoEXT-fragmentDensityMapAttachment-parameter", - "text": " fragmentDensityMapAttachment must be a valid VkAttachmentReference structure" - } - ] - }, - "VkAttachmentDescription": { - "core": [ - { - "vuid": "VUID-VkAttachmentDescription-finalLayout-00843", - "text": " finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03280", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03281", - "text": " If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03282", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03283", - "text": " If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-flags-parameter", - "text": " flags must be a valid combination of VkAttachmentDescriptionFlagBits values" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkAttachmentDescription-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-VkAttachmentDescription-loadOp-parameter", - "text": " loadOp must be a valid VkAttachmentLoadOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription-storeOp-parameter", - "text": " storeOp must be a valid VkAttachmentStoreOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription-stencilLoadOp-parameter", - "text": " stencilLoadOp must be a valid VkAttachmentLoadOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription-stencilStoreOp-parameter", - "text": " stencilStoreOp must be a valid VkAttachmentStoreOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription-initialLayout-parameter", - "text": " initialLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkAttachmentDescription-finalLayout-parameter", - "text": " finalLayout must be a valid VkImageLayout value" - } - ], - "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03284", - "text": " If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-separateDepthStencilLayouts-03285", - "text": " If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03286", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03287", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03288", - "text": " If format is a depth/stencil format which includes both depth and stencil aspects, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03289", - "text": " If format is a depth/stencil format which includes both depth and stencil aspects, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03290", - "text": " If format is a depth/stencil format which includes only the depth aspect, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03291", - "text": " If format is a depth/stencil format which includes only the depth aspect, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03292", - "text": " If format is a depth/stencil format which includes only the stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription-format-03293", - "text": " If format is a depth/stencil format which includes only the stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" - } - ] - }, - "VkRenderPassInputAttachmentAspectCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO" - }, - { - "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-pAspectReferences-parameter", - "text": " pAspectReferences must be a valid pointer to an array of aspectReferenceCount valid VkInputAttachmentAspectReference structures" - }, - { - "vuid": "VUID-VkRenderPassInputAttachmentAspectCreateInfo-aspectReferenceCount-arraylength", - "text": " aspectReferenceCount must be greater than 0" - } - ] - }, - "VkInputAttachmentAspectReference": { - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-01964", - "text": " aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT" - }, - { - "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" - }, - { - "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkInputAttachmentAspectReference-aspectMask-02250", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" - } - ] - }, - "VkSubpassDescription": { - "core": [ - { - "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-00844", - "text": " pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-VkSubpassDescription-colorAttachmentCount-00845", - "text": " colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments" - }, - { - "vuid": "VUID-VkSubpassDescription-loadOp-00846", - "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR" - }, - { - "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00847", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not be VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00848", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00849", - "text": " If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription-pResolveAttachments-00850", - "text": " If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have the same VkFormat as its corresponding color attachment" - }, - { - "vuid": "VUID-VkSubpassDescription-pColorAttachments-01417", - "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count" - }, - { - "vuid": "VUID-VkSubpassDescription-pInputAttachments-02647", - "text": " All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription-pColorAttachments-02648", - "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription-pResolveAttachments-02649", - "text": " All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-02650", - "text": " If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have a image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-01418", - "text": " If neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count" - }, - { - "vuid": "VUID-VkSubpassDescription-attachment-00853", - "text": " The attachment member of each element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-00854", - "text": " Each element of pPreserveAttachments must not also be an element of any other member of the subpass description" - }, - { - "vuid": "VUID-VkSubpassDescription-layout-02519", - "text": " If any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout" - }, - { - "vuid": "VUID-VkSubpassDescription-None-04437", - "text": " Each attachment must follow the image layout requirements specified for its attachment type" - }, - { - "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-04438", - "text": " pDepthStencilAttachment and pColorAttachments must not contain references to the same attachment" - }, - { - "vuid": "VUID-VkSubpassDescription-flags-parameter", - "text": " flags must be a valid combination of VkSubpassDescriptionFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDescription-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-VkSubpassDescription-pInputAttachments-parameter", - "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference structures" - }, - { - "vuid": "VUID-VkSubpassDescription-pColorAttachments-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" - }, - { - "vuid": "VUID-VkSubpassDescription-pResolveAttachments-parameter", - "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference structures" - }, - { - "vuid": "VUID-VkSubpassDescription-pDepthStencilAttachment-parameter", - "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference structure" - }, - { - "vuid": "VUID-VkSubpassDescription-pPreserveAttachments-parameter", - "text": " If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values" - } - ], - "(VK_AMD_mixed_attachment_samples)": [ - { - "vuid": "VUID-VkSubpassDescription-pColorAttachments-01506", - "text": " If the VK_AMD_mixed_attachment_samples extension is enabled, and all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED" - } - ], - "(VK_NVX_multiview_per_view_attributes)": [ - { - "vuid": "VUID-VkSubpassDescription-flags-00856", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX" - } - ], - "(VK_QCOM_render_pass_shader_resolve)": [ - { - "vuid": "VUID-VkSubpassDescription-flags-03341", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pResolveAttachments is not NULL, then each resolve attachment must be VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescription-flags-03342", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, and if pDepthStencilResolveAttachmentKHR is not NULL, then the depth/stencil resolve attachment must be VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescription-flags-03343", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM, then the subpass must be the last subpass in a subpass dependency chain" - }, - { - "vuid": "VUID-VkSubpassDescription-flags-03344", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, then the sample count of the input attachments must equal rasterizationSamples" - }, - { - "vuid": "VUID-VkSubpassDescription-flags-03345", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM, and if sampleShadingEnable is enabled (explicitly or implicitly) then minSampleShading must equal 0.0" - } - ], - "(VK_QCOM_render_pass_transform)": [ - { - "vuid": "VUID-VkSubpassDescription-pInputAttachments-02868", - "text": " If the render pass is created with VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM each of the elements of pInputAttachments must be VK_ATTACHMENT_UNUSED" - } - ] - }, - "VkAttachmentReference": { - "core": [ - { - "vuid": "VUID-VkAttachmentReference-layout-00857", - "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_PRESENT_SRC_KHR, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR" - }, - { - "vuid": "VUID-VkAttachmentReference-layout-parameter", - "text": " layout must be a valid VkImageLayout value" - } - ] - }, - "VkSubpassDependency": { - "core": [ - { - "vuid": "VUID-VkSubpassDependency-srcStageMask-00860", - "text": " If the geometry shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency-dstStageMask-00861", - "text": " If the geometry shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency-srcStageMask-00862", - "text": " If the tessellation shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency-dstStageMask-00863", - "text": " If the tessellation shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency-srcSubpass-00864", - "text": " srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order" - }, - { - "vuid": "VUID-VkSubpassDependency-srcSubpass-00865", - "text": " srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL" - }, - { - "vuid": "VUID-VkSubpassDependency-srcSubpass-00867", - "text": " If srcSubpass is equal to dstSubpass and not all of the stages in srcStageMask and dstStageMask are framebuffer-space stages, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask" - }, - { - "vuid": "VUID-VkSubpassDependency-srcAccessMask-00868", - "text": " Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-VkSubpassDependency-dstAccessMask-00869", - "text": " Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-VkSubpassDependency-srcSubpass-02243", - "text": " If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency-srcStageMask-requiredbitmask", - "text": " srcStageMask must not be 0" - }, - { - "vuid": "VUID-VkSubpassDependency-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency-dstStageMask-requiredbitmask", - "text": " dstStageMask must not be 0" - }, - { - "vuid": "VUID-VkSubpassDependency-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency-dependencyFlags-parameter", - "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkSubpassDependency-dependencyFlags-02520", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL" - }, - { - "vuid": "VUID-VkSubpassDependency-dependencyFlags-02521", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL" - }, - { - "vuid": "VUID-VkSubpassDependency-srcSubpass-00872", - "text": " If srcSubpass equals dstSubpass and that subpass has more than one bit set in the view mask, then dependencyFlags must include VK_DEPENDENCY_VIEW_LOCAL_BIT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkSubpassDependency-srcStageMask-02099", - "text": " If the mesh shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-VkSubpassDependency-srcStageMask-02100", - "text": " If the task shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - }, - { - "vuid": "VUID-VkSubpassDependency-dstStageMask-02101", - "text": " If the mesh shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-VkSubpassDependency-dstStageMask-02102", - "text": " If the task shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ] - }, - "vkCreateRenderPass2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-vkCreateRenderPass2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateRenderPass2-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkRenderPassCreateInfo2 structure" - }, - { - "vuid": "VUID-vkCreateRenderPass2-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateRenderPass2-pRenderPass-parameter", - "text": " pRenderPass must be a valid pointer to a VkRenderPass handle" - } - ] - }, - "VkRenderPassCreateInfo2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkRenderPassCreateInfo2-None-03049", - "text": " If any two subpasses operate on attachments with overlapping ranges of the same VkDeviceMemory object, and at least one subpass writes to that area of VkDeviceMemory, a subpass dependency must be included (either directly or via some intermediate subpasses) between them" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03050", - "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or the attachment indexed by any element of pPreserveAttachments in any given element of pSubpasses is bound to a range of a VkDeviceMemory object that overlaps with any other attachment in any subpass (including the same subpass), the VkAttachmentDescription2 structures describing them must include VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT in flags" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-attachment-03051", - "text": " If the attachment member of any element of pInputAttachments, pColorAttachments, pResolveAttachments or pDepthStencilAttachment, or any element of pPreserveAttachments in any given element of pSubpasses is not VK_ATTACHMENT_UNUSED, it must be less than attachmentCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02522", - "text": " For any member of pAttachments with a loadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-02523", - "text": " For any member of pAttachments with a stencilLoadOp equal to VK_ATTACHMENT_LOAD_OP_CLEAR, the first use of that attachment must not specify a layout equal to VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03054", - "text": " For any element of pDependencies, if the srcSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the srcStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the source subpass" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03055", - "text": " For any element of pDependencies, if the dstSubpass is not VK_SUBPASS_EXTERNAL, all stage flags included in the dstStageMask member of that dependency must be a pipeline stage supported by the pipeline identified by the pipelineBindPoint member of the destination subpass" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-03056", - "text": " The set of bits included in any element of pCorrelatedViewMasks must not overlap with the set of bits included in any other element of pCorrelatedViewMasks" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03057", - "text": " If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, correlatedViewMaskCount must be 0" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03058", - "text": " The VkSubpassDescription2::viewMask member of all elements of pSubpasses must either all be 0, or all not be 0" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-viewMask-03059", - "text": " If the VkSubpassDescription2::viewMask member of all elements of pSubpasses is 0, the dependencyFlags member of any element of pDependencies must not include VK_DEPENDENCY_VIEW_LOCAL_BIT" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-03060", - "text": " For any element of pDependencies where its srcSubpass member equals its dstSubpass member, if the viewMask member of the corresponding element of pSubpasses includes more than one bit, its dependencyFlags member must include VK_DEPENDENCY_VIEW_LOCAL_BIT" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-attachment-02525", - "text": " If the attachment member of any element of the pInputAttachments member of any element of pSubpasses is not VK_ATTACHMENT_UNUSED, the aspectMask member of that element of pInputAttachments must only include aspects that are present in images of the format specified by the element of pAttachments specified by attachment" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-srcSubpass-02526", - "text": " The srcSubpass member of each element of pDependencies must be less than subpassCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-dstSubpass-02527", - "text": " The dstSubpass member of each element of pDependencies must be less than subpassCount" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkRenderPassFragmentDensityMapCreateInfoEXT" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-flags-parameter", - "text": " flags must be a valid combination of VkRenderPassCreateFlagBits values" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkAttachmentDescription2 structures" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pSubpasses-parameter", - "text": " pSubpasses must be a valid pointer to an array of subpassCount valid VkSubpassDescription2 structures" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pDependencies-parameter", - "text": " If dependencyCount is not 0, pDependencies must be a valid pointer to an array of dependencyCount valid VkSubpassDependency2 structures" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pCorrelatedViewMasks-parameter", - "text": " If correlatedViewMaskCount is not 0, pCorrelatedViewMasks must be a valid pointer to an array of correlatedViewMaskCount uint32_t values" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-subpassCount-arraylength", - "text": " subpassCount must be greater than 0" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04585", - "text": " If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must not be used as any other attachment in the render pass" - }, - { - "vuid": "VUID-VkRenderPassCreateInfo2-pAttachments-04586", - "text": " If any element of pAttachments is used as a fragment shading rate attachment in any subpass, it must have an image format whose potential format features contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)+(VK_QCOM_render_pass_transform)": [ - { - "vuid": "VUID-VkRenderPassCreateInfo2-flags-04521", - "text": " If flags includes VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM, an element of pSubpasses includes an instance of VkFragmentShadingRateAttachmentInfoKHR in its pNext chain, and the pFragmentShadingRateAttachment member of that structure is not equal to NULL, the attachment member of pFragmentShadingRateAttachment must be VK_ATTACHMENT_UNUSED" - } - ] - }, - "VkAttachmentDescription2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkAttachmentDescription2-finalLayout-03061", - "text": " finalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03294", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03295", - "text": " If format is a depth/stencil format, initialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03296", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03297", - "text": " If format is a depth/stencil format, finalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2" - }, - { - "vuid": "VUID-VkAttachmentDescription2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkAttachmentDescriptionStencilLayout" - }, - { - "vuid": "VUID-VkAttachmentDescription2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkAttachmentDescription2-flags-parameter", - "text": " flags must be a valid combination of VkAttachmentDescriptionFlagBits values" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkAttachmentDescription2-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-VkAttachmentDescription2-loadOp-parameter", - "text": " loadOp must be a valid VkAttachmentLoadOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription2-storeOp-parameter", - "text": " storeOp must be a valid VkAttachmentStoreOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription2-stencilLoadOp-parameter", - "text": " stencilLoadOp must be a valid VkAttachmentLoadOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription2-stencilStoreOp-parameter", - "text": " stencilStoreOp must be a valid VkAttachmentStoreOp value" - }, - { - "vuid": "VUID-VkAttachmentDescription2-initialLayout-parameter", - "text": " initialLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkAttachmentDescription2-finalLayout-parameter", - "text": " finalLayout must be a valid VkImageLayout value" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03298", - "text": " If the separateDepthStencilLayouts feature is not enabled, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-separateDepthStencilLayouts-03299", - "text": " If the separateDepthStencilLayouts feature is not enabled, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03300", - "text": " If format is a color format, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03301", - "text": " If format is a color format, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03302", - "text": " If format is a depth/stencil format which includes both depth and stencil aspects, and initialLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03303", - "text": " If format is a depth/stencil format which includes both depth and stencil aspects, and finalLayout is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, the pNext chain must include a VkAttachmentDescriptionStencilLayout structure" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03304", - "text": " If format is a depth/stencil format which includes only the depth aspect, initialLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03305", - "text": " If format is a depth/stencil format which includes only the depth aspect, finalLayout must not be VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03306", - "text": " If format is a depth/stencil format which includes only the stencil aspect, initialLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescription2-format-03307", - "text": " If format is a depth/stencil format which includes only the stencil aspect, finalLayout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL" - } - ] - }, - "VkAttachmentDescriptionStencilLayout": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-03308", - "text": " stencilInitialLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03309", - "text": " stencilFinalLayout must not be VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL" - }, - { - "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-03310", - "text": " stencilFinalLayout must not be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" - }, - { - "vuid": "VUID-VkAttachmentDescriptionStencilLayout-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT" - }, - { - "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilInitialLayout-parameter", - "text": " stencilInitialLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkAttachmentDescriptionStencilLayout-stencilFinalLayout-parameter", - "text": " stencilFinalLayout must be a valid VkImageLayout value" - } - ] - }, - "VkSubpassDescription2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-03062", - "text": " pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-VkSubpassDescription2-colorAttachmentCount-03063", - "text": " colorAttachmentCount must be less than or equal to VkPhysicalDeviceLimits::maxColorAttachments" - }, - { - "vuid": "VUID-VkSubpassDescription2-loadOp-03064", - "text": " If the first use of an attachment in this render pass is as an input attachment, and the attachment is not also used as a color or depth/stencil attachment in the same subpass, then loadOp must not be VK_ATTACHMENT_LOAD_OP_CLEAR" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03065", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that does not have the value VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have the value VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03066", - "text": " If pResolveAttachments is not NULL, for each resolve attachment that is not VK_ATTACHMENT_UNUSED, the corresponding color attachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03067", - "text": " If pResolveAttachments is not NULL, each resolve attachment that is not VK_ATTACHMENT_UNUSED must have a sample count of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-03068", - "text": " Any given element of pResolveAttachments must have the same VkFormat as its corresponding color attachment" - }, - { - "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03069", - "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have the same sample count" - }, - { - "vuid": "VUID-VkSubpassDescription2-pInputAttachments-02897", - "text": " All attachments in pInputAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain at least VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription2-pColorAttachments-02898", - "text": " All attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-02899", - "text": " All attachments in pResolveAttachments that are not VK_ATTACHMENT_UNUSED must have image formats whose potential format features contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-02900", - "text": " If pDepthStencilAttachment is not NULL and the attachment is not VK_ATTACHMENT_UNUSED then it must have a image format whose potential format features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-03071", - "text": " If neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if pDepthStencilAttachment is not VK_ATTACHMENT_UNUSED and any attachments in pColorAttachments are not VK_ATTACHMENT_UNUSED, they must have the same sample count" - }, - { - "vuid": "VUID-VkSubpassDescription2-attachment-03073", - "text": " The attachment member of any element of pPreserveAttachments must not be VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-03074", - "text": " Any given element of pPreserveAttachments must not also be an element of any other member of the subpass description" - }, - { - "vuid": "VUID-VkSubpassDescription2-layout-02528", - "text": " If any attachment is used by more than one VkAttachmentReference member, then each use must use the same layout" - }, - { - "vuid": "VUID-VkSubpassDescription2-None-04439", - "text": " Attachments must follow the image layout requirements based on the type of attachment it is being used as" - }, - { - "vuid": "VUID-VkSubpassDescription2-attachment-02799", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must be a valid combination of VkImageAspectFlagBits" - }, - { - "vuid": "VUID-VkSubpassDescription2-attachment-02800", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not be 0" - }, - { - "vuid": "VUID-VkSubpassDescription2-attachment-02801", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_METADATA_BIT" - }, - { - "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-04440", - "text": " An attachment must not be used in both pDepthStencilAttachment and pColorAttachments" - }, - { - "vuid": "VUID-VkSubpassDescription2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2" - }, - { - "vuid": "VUID-VkSubpassDescription2-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkFragmentShadingRateAttachmentInfoKHR or VkSubpassDescriptionDepthStencilResolve" - }, - { - "vuid": "VUID-VkSubpassDescription2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkSubpassDescription2-flags-parameter", - "text": " flags must be a valid combination of VkSubpassDescriptionFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDescription2-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-VkSubpassDescription2-pInputAttachments-parameter", - "text": " If inputAttachmentCount is not 0, pInputAttachments must be a valid pointer to an array of inputAttachmentCount valid VkAttachmentReference2 structures" - }, - { - "vuid": "VUID-VkSubpassDescription2-pColorAttachments-parameter", - "text": " If colorAttachmentCount is not 0, pColorAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures" - }, - { - "vuid": "VUID-VkSubpassDescription2-pResolveAttachments-parameter", - "text": " If colorAttachmentCount is not 0, and pResolveAttachments is not NULL, pResolveAttachments must be a valid pointer to an array of colorAttachmentCount valid VkAttachmentReference2 structures" - }, - { - "vuid": "VUID-VkSubpassDescription2-pDepthStencilAttachment-parameter", - "text": " If pDepthStencilAttachment is not NULL, pDepthStencilAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" - }, - { - "vuid": "VUID-VkSubpassDescription2-pPreserveAttachments-parameter", - "text": " If preserveAttachmentCount is not 0, pPreserveAttachments must be a valid pointer to an array of preserveAttachmentCount uint32_t values" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_AMD_mixed_attachment_samples)": [ - { - "vuid": "VUID-VkSubpassDescription2-pColorAttachments-03070", - "text": " If the VK_AMD_mixed_attachment_samples extension is enabled, all attachments in pColorAttachments that are not VK_ATTACHMENT_UNUSED must have a sample count that is smaller than or equal to the sample count of pDepthStencilAttachment if it is not VK_ATTACHMENT_UNUSED" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NVX_multiview_per_view_attributes)": [ - { - "vuid": "VUID-VkSubpassDescription2-flags-03076", - "text": " If flags includes VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX, it must also include VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkSubpassDescription2-attachment-04563", - "text": " If the attachment member of any element of pInputAttachments is not VK_ATTACHMENT_UNUSED, then the aspectMask member must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" - } - ] - }, - "VkSubpassDescriptionDepthStencilResolve": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03177", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have the value VK_ATTACHMENT_UNUSED" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03178", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, depthResolveMode and stencilResolveMode must not both be VK_RESOLVE_MODE_NONE" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03179", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilAttachment must not have a sample count of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03180", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED, pDepthStencilResolveAttachment must have a sample count of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-02651", - "text": " If pDepthStencilResolveAttachment is not NULL and does not have the value VK_ATTACHMENT_UNUSED then it must have a format whose features contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03181", - "text": " If the VkFormat of pDepthStencilResolveAttachment has a depth component, then the VkFormat of pDepthStencilAttachment must have a depth component with the same number of bits and numerical type" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03182", - "text": " If the VkFormat of pDepthStencilResolveAttachment has a stencil component, then the VkFormat of pDepthStencilAttachment must have a stencil component with the same number of bits and numerical type" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-depthResolveMode-03183", - "text": " The value of depthResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedDepthResolveModes or VK_RESOLVE_MODE_NONE" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-stencilResolveMode-03184", - "text": " The value of stencilResolveMode must be one of the bits set in VkPhysicalDeviceDepthStencilResolveProperties::supportedStencilResolveModes or VK_RESOLVE_MODE_NONE" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03185", - "text": " If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE, and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_FALSE, then the values of depthResolveMode and stencilResolveMode must be identical" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-03186", - "text": " If the VkFormat of pDepthStencilResolveAttachment has both depth and stencil components, VkPhysicalDeviceDepthStencilResolveProperties::independentResolve is VK_FALSE and VkPhysicalDeviceDepthStencilResolveProperties::independentResolveNone is VK_TRUE, then the values of depthResolveMode and stencilResolveMode must be identical or one of them must be VK_RESOLVE_MODE_NONE" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-04588", - "text": " If the VkFormat of pDepthStencilResolveAttachment has a depth component, depthResolveMode must be a valid VkResolveModeFlagBits value" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-04589", - "text": " If the VkFormat of pDepthStencilResolveAttachment has a stencil component, stencilResolveMode must be a valid VkResolveModeFlagBits value" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE" - }, - { - "vuid": "VUID-VkSubpassDescriptionDepthStencilResolve-pDepthStencilResolveAttachment-parameter", - "text": " If pDepthStencilResolveAttachment is not NULL, pDepthStencilResolveAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" - } - ] - }, - "VkFragmentShadingRateAttachmentInfoKHR": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04524", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, its layout member must be equal to VK_IMAGE_LAYOUT_GENERAL or VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04525", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be a power of two value" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04526", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.width" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04527", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.width must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.width" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04528", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be a power of two value" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04529", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSize.height" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04530", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, shadingRateAttachmentTexelSize.height must be greater than or equal to minFragmentShadingRateAttachmentTexelSize.height" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04531", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.width and shadingRateAttachmentTexelSize.height must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-04532", - "text": " If pFragmentShadingRateAttachment is not NULL and its attachment member is not VK_ATTACHMENT_UNUSED, the quotient of shadingRateAttachmentTexelSize.height and shadingRateAttachmentTexelSize.width must be less than or equal to maxFragmentShadingRateAttachmentTexelSizeAspectRatio" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR" - }, - { - "vuid": "VUID-VkFragmentShadingRateAttachmentInfoKHR-pFragmentShadingRateAttachment-parameter", - "text": " pFragmentShadingRateAttachment must be a valid pointer to a valid VkAttachmentReference2 structure" - } - ] - }, - "VkAttachmentReference2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkAttachmentReference2-layout-03077", - "text": " If attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" - }, - { - "vuid": "VUID-VkAttachmentReference2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2" - }, - { - "vuid": "VUID-VkAttachmentReference2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkAttachmentReferenceStencilLayout" - }, - { - "vuid": "VUID-VkAttachmentReference2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkAttachmentReference2-layout-parameter", - "text": " layout must be a valid VkImageLayout value" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkAttachmentReference2-separateDepthStencilLayouts-03313", - "text": " If the separateDepthStencilLayouts feature is not enabled, and attachment is not VK_ATTACHMENT_UNUSED, layout must not be VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL," - } - ] - }, - "VkAttachmentReferenceStencilLayout": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-03318", - "text": " stencilLayout must not be VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_PREINITIALIZED, VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_PRESENT_SRC_KHR" - }, - { - "vuid": "VUID-VkAttachmentReferenceStencilLayout-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT" - }, - { - "vuid": "VUID-VkAttachmentReferenceStencilLayout-stencilLayout-parameter", - "text": " stencilLayout must be a valid VkImageLayout value" - } - ] - }, - "VkSubpassDependency2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkSubpassDependency2-srcStageMask-03080", - "text": " If the geometry shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstStageMask-03081", - "text": " If the geometry shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcStageMask-03082", - "text": " If the tessellation shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstStageMask-03083", - "text": " If the tessellation shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcSubpass-03084", - "text": " srcSubpass must be less than or equal to dstSubpass, unless one of them is VK_SUBPASS_EXTERNAL, to avoid cyclic dependencies and ensure a valid execution order" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcSubpass-03085", - "text": " srcSubpass and dstSubpass must not both be equal to VK_SUBPASS_EXTERNAL" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcSubpass-03087", - "text": " If srcSubpass is equal to dstSubpass and not all of the stages in srcStageMask and dstStageMask are framebuffer-space stages, the logically latest pipeline stage in srcStageMask must be logically earlier than or equal to the logically earliest pipeline stage in dstStageMask" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcAccessMask-03088", - "text": " Any access flag included in srcAccessMask must be supported by one of the pipeline stages in srcStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstAccessMask-03089", - "text": " Any access flag included in dstAccessMask must be supported by one of the pipeline stages in dstStageMask, as specified in the table of supported access types" - }, - { - "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03090", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, srcSubpass must not be equal to VK_SUBPASS_EXTERNAL" - }, - { - "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03091", - "text": " If dependencyFlags includes VK_DEPENDENCY_VIEW_LOCAL_BIT, dstSubpass must not be equal to VK_SUBPASS_EXTERNAL" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcSubpass-02245", - "text": " If srcSubpass equals dstSubpass, and srcStageMask and dstStageMask both include a framebuffer-space stage, then dependencyFlags must include VK_DEPENDENCY_BY_REGION_BIT" - }, - { - "vuid": "VUID-VkSubpassDependency2-viewOffset-02530", - "text": " If viewOffset is not equal to 0, srcSubpass must not be equal to dstSubpass" - }, - { - "vuid": "VUID-VkSubpassDependency2-dependencyFlags-03092", - "text": " If dependencyFlags does not include VK_DEPENDENCY_VIEW_LOCAL_BIT, viewOffset must be 0" - }, - { - "vuid": "VUID-VkSubpassDependency2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2" - }, - { - "vuid": "VUID-VkSubpassDependency2-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcStageMask-parameter", - "text": " srcStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcStageMask-requiredbitmask", - "text": " srcStageMask must not be 0" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstStageMask-parameter", - "text": " dstStageMask must be a valid combination of VkPipelineStageFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstStageMask-requiredbitmask", - "text": " dstStageMask must not be 0" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcAccessMask-parameter", - "text": " srcAccessMask must be a valid combination of VkAccessFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstAccessMask-parameter", - "text": " dstAccessMask must be a valid combination of VkAccessFlagBits values" - }, - { - "vuid": "VUID-VkSubpassDependency2-dependencyFlags-parameter", - "text": " dependencyFlags must be a valid combination of VkDependencyFlagBits values" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkSubpassDependency2-srcStageMask-02103", - "text": " If the mesh shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-VkSubpassDependency2-srcStageMask-02104", - "text": " If the task shaders feature is not enabled, srcStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstStageMask-02105", - "text": " If the mesh shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV" - }, - { - "vuid": "VUID-VkSubpassDependency2-dstStageMask-02106", - "text": " If the task shaders feature is not enabled, dstStageMask must not contain VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ] - }, - "vkDestroyRenderPass": { - "core": [ - { - "vuid": "VUID-vkDestroyRenderPass-renderPass-00873", - "text": " All submitted commands that refer to renderPass must have completed execution" - }, - { - "vuid": "VUID-vkDestroyRenderPass-renderPass-00874", - "text": " If VkAllocationCallbacks were provided when renderPass was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyRenderPass-renderPass-00875", - "text": " If no VkAllocationCallbacks were provided when renderPass was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyRenderPass-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyRenderPass-renderPass-parameter", - "text": " If renderPass is not VK_NULL_HANDLE, renderPass must be a valid VkRenderPass handle" - }, - { - "vuid": "VUID-vkDestroyRenderPass-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyRenderPass-renderPass-parent", - "text": " If renderPass is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateFramebuffer": { - "core": [ - { - "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-02777", - "text": " If pCreateInfo->flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, each element of pCreateInfo->pAttachments must have been created on device" - }, - { - "vuid": "VUID-vkCreateFramebuffer-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateFramebuffer-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkFramebufferCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateFramebuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateFramebuffer-pFramebuffer-parameter", - "text": " pFramebuffer must be a valid pointer to a VkFramebuffer handle" - } - ] - }, - "VkFramebufferCreateInfo": { - "core": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-attachmentCount-00876", - "text": " attachmentCount must be equal to the attachment count specified in renderPass" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-02778", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00877", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a color attachment or resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02633", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00879", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00880", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a VkFormat value that matches the VkFormat specified by the corresponding VkAttachmentDescription in renderPass" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00881", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with a samples value that matches the samples value specified by the corresponding VkAttachmentDescription in renderPass" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04533", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::width greater than or equal to width" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04534", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageCreateInfo::height greater than or equal to height" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04535", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have been created with a VkImageViewCreateInfo::subresourceRange.layerCount greater than or equal to layers" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00883", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must only specify a single mip level" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00884", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with the identity swizzle" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-width-00885", - "text": " width must be greater than 0" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-width-00886", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-height-00887", - "text": " height must be greater than 0" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-height-00888", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-layers-00889", - "text": " layers must be greater than 0" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-layers-00890", - "text": " layers must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferLayers" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04113", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkFramebufferAttachmentsCreateInfo" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkFramebufferCreateFlagBits values" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-commonparent", - "text": " Both of renderPass, and the elements of pAttachments that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02634", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a depth/stencil resolve attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02552", - "text": " Each element of pAttachments that is used as a fragment density map attachment by renderPass must not have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02553", - "text": " If renderPass has a fragment density map attachment and non-subsample image feature is not enabled, each element of pAttachments must have been created with a flags value including VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT unless that element is the fragment density map attachment" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02555", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a width at least as large as \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02556", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is referenced by fragmentDensityMapAttachment must have a height at least as large as \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04536", - "text": " If renderPass was specified with non-zero view masks, each element of pAttachments that is used as an input, color, resolve, or depth/stencil attachment by renderPass must have a layerCount greater than the index of the most significant bit set in any of those view masks" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02531", - "text": " If renderPass was specified with non-zero view masks, layers must be 1" - } - ], - "(VK_EXT_fragment_density_map)+!(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-02744", - "text": " An element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1" - } - ], - "(VK_EXT_fragment_density_map)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02746", - "text": " If renderPass was specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1 or greater than the index of the most significant bit set in any of those view masks" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-02747", - "text": " If renderPass was not specified with non-zero view masks, each element of pAttachments that is referenced by fragmentDensityMapAttachment must have a layerCount equal to 1" - } - ], - "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04537", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04538", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was not specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than layers" - } - ], - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04539", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a width at least as large as {lceil}width \\ texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04540", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, an element of pAttachments that is used as a fragment shading rate attachment must have a height at least as large as {lceil}height \\ texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04548", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have been created with a usage value including VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-pAttachments-00891", - "text": " If flags does not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of pAttachments that is a 2D or 2D array image view taken from a 3D image must not be a depth/stencil format" - } - ], - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03189", - "text": " If the imageless framebuffer feature is not enabled, flags must not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03190", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the pNext chain must include an instance of VkFramebufferAttachmentsCreateInfoKHR" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03191", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentImageInfoCount member of an instance of VkFramebufferAttachmentsCreateInfoKHR in the pNext chain must be equal to either zero or attachmentCount" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04541", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfoKHR in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in pRenderPass must be greater than or equal to width" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04542", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfoKHR in the pNext chain that is used as an input, color, resolve or depth/stencil attachment in pRenderPass must be greater than or equal to height" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03201", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a color attachment or resolve attachment by renderPass must include VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03202", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03204", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as an input attachment by renderPass must include VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03205", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, at least one element of the pViewFormats member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain must be equal to the corresponding value of VkAttachmentDescription::format used to create renderPass" - } - ], - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03196", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfoKHR in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{width}{maxFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03197", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that is referenced by VkRenderPassFragmentDensityMapCreateInfoEXT::fragmentDensityMapAttachment in renderPass must be greater than or equal to \\(\\left\\lceil{\\frac{height}{maxFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" - } - ], - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04543", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the width member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}width \\ texelWidth{rceil}, where texelWidth is the largest value of shadingRateAttachmentTexelSize.width in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04544", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the height member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as a fragment shading rate attachment must be greater than or equal to {lceil}height \\ texelHeight{rceil}, where texelHeight is the largest value of shadingRateAttachmentTexelSize.height in a VkFragmentShadingRateAttachmentInfoKHR which references that attachment" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04545", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of an instance of VkFramebufferAttachmentsCreateInfo in the pNext chain that is used as a fragment shading rate attachment must be either 1, or greater than or equal to layers" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04587", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and renderPass was specified with non-zero view masks, each element of pAttachments that is used as a fragment shading rate attachment by renderPass must have a layerCount that is either 1, or greater than the index of the most significant bit set in any of those view masks" - } - ], - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-03198", - "text": " If multiview is enabled for renderPass, and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in pRenderPass must be greater than the maximum bit index set in the view mask in the subpasses in which it is used in renderPass" - }, - { - "vuid": "VUID-VkFramebufferCreateInfo-renderPass-04546", - "text": " If multiview is not enabled for renderPass, and flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in pRenderPass must be greater than or equal to layers" - } - ], - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+!(VK_VERSION_1_1+VK_KHR_multiview)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04547", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the layerCount member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain used as an input, color, resolve, or depth/stencil attachment in pRenderPass must be greater than or equal to layers" - } - ], - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)+(VK_KHR_depth_stencil_resolve)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-03203", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a depth/stencil resolve attachment by renderPass must include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - } - ], - "(VK_KHR_fragment_shading_rate)+(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ - { - "vuid": "VUID-VkFramebufferCreateInfo-flags-04549", - "text": " If flags includes VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the usage member of any element of the pAttachmentImageInfos member of a VkFramebufferAttachmentsCreateInfo structure included in the pNext chain that refers to an attachment used as a fragment shading rate attachment by renderPass must include VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" - } - ] - }, - "VkFramebufferAttachmentsCreateInfo": { - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ - { - "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO" - }, - { - "vuid": "VUID-VkFramebufferAttachmentsCreateInfo-pAttachmentImageInfos-parameter", - "text": " If attachmentImageInfoCount is not 0, pAttachmentImageInfos must be a valid pointer to an array of attachmentImageInfoCount valid VkFramebufferAttachmentImageInfo structures" - } - ] - }, - "VkFramebufferAttachmentImageInfo": { - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ - { - "vuid": "VUID-VkFramebufferAttachmentImageInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO" - }, - { - "vuid": "VUID-VkFramebufferAttachmentImageInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkFramebufferAttachmentImageInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" - }, - { - "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-VkFramebufferAttachmentImageInfo-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-VkFramebufferAttachmentImageInfo-pViewFormats-parameter", - "text": " If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values" - } - ] - }, - "vkDestroyFramebuffer": { - "core": [ - { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00892", - "text": " All submitted commands that refer to framebuffer must have completed execution" - }, - { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00893", - "text": " If VkAllocationCallbacks were provided when framebuffer was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-00894", - "text": " If no VkAllocationCallbacks were provided when framebuffer was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyFramebuffer-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parameter", - "text": " If framebuffer is not VK_NULL_HANDLE, framebuffer must be a valid VkFramebuffer handle" - }, - { - "vuid": "VUID-vkDestroyFramebuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyFramebuffer-framebuffer-parent", - "text": " If framebuffer is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdBeginRenderPass": { - "core": [ - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00895", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00897", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00898", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00899", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_DST_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00900", - "text": " If any of the initialLayout members of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-srcStageMask-00901", - "text": " The srcStageMask and dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-framebuffer-02532", - "text": " For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-pRenderPassBegin-parameter", - "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-contents-parameter", - "text": " contents must be a valid VkSubpassContents value" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-00896", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-01758", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-vkCmdBeginRenderPass-initialLayout-02842", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass-stencilInitialLayout-02843", - "text": " If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - } - ] - }, - "vkCmdBeginRenderPass2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02779", - "text": " Both the framebuffer and renderPass members of pRenderPassBegin must have been created on the same VkDevice that commandBuffer was allocated on" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03094", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03096", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03097", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_SAMPLED_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03098", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_SRC_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03099", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_TRANSFER_DST_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-03100", - "text": " If any of the initialLayout members of the VkAttachmentDescription structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is not VK_IMAGE_LAYOUT_UNDEFINED, then each such initialLayout must be equal to the current layout of the corresponding attachment image subresource of the framebuffer specified in the framebuffer member of pRenderPassBegin" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-srcStageMask-03101", - "text": " The srcStageMask and dstStageMask members of any element of the pDependencies member of VkRenderPassCreateInfo used to create renderPass must be supported by the capabilities of the queue family identified by the queueFamilyIndex member of the VkCommandPoolCreateInfo used to create the command pool which commandBuffer was allocated from" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-framebuffer-02533", - "text": " For any attachment in framebuffer that is used by renderPass and is bound to memory locations that are also bound to another attachment used by renderPass, and if at least one of those uses causes either attachment to be written to, both attachments must have had the VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT set" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-pRenderPassBegin-parameter", - "text": " pRenderPassBegin must be a valid pointer to a valid VkRenderPassBeginInfo structure" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-pSubpassBeginInfo-parameter", - "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-vkCmdBeginRenderPass2-initialLayout-02844", - "text": " If any of the initialLayout or finalLayout member of the VkAttachmentDescription structures or the layout member of the VkAttachmentReference structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdBeginRenderPass2-stencilInitialLayout-02845", - "text": " If any of the stencilInitialLayout or stencilFinalLayout member of the VkAttachmentDescriptionStencilLayout structures or the stencilLayout member of the VkAttachmentReferenceStencilLayout structures specified when creating the render pass specified in the renderPass member of pRenderPassBegin is VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL, or VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL then the corresponding attachment image view of the framebuffer specified in the framebuffer member of pRenderPassBegin must have been created with a usage value including VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - } - ] - }, - "VkRenderPassBeginInfo": { - "core": [ - { - "vuid": "VUID-VkRenderPassBeginInfo-clearValueCount-00902", - "text": " clearValueCount must be greater than the largest attachment index in renderPass that specifies a loadOp (or stencilLoadOp, if the attachment has a depth/stencil format) of VK_ATTACHMENT_LOAD_OP_CLEAR" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-renderPass-00904", - "text": " renderPass must be compatible with the renderPass member of the VkFramebufferCreateInfo structure specified when creating framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupRenderPassBeginInfo, VkRenderPassAttachmentBeginInfo, VkRenderPassSampleLocationsBeginInfoEXT, or VkRenderPassTransformBeginInfoQCOM" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-parameter", - "text": " framebuffer must be a valid VkFramebuffer handle" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pClearValues-parameter", - "text": " If clearValueCount is not 0, pClearValues must be a valid pointer to an array of clearValueCount VkClearValue unions" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-commonparent", - "text": " Both of framebuffer, and renderPass must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "!(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02846", - "text": " renderArea.offset.x must be greater than or equal to 0" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02847", - "text": " renderArea.offset.y must be greater than or equal to 0" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02848", - "text": " renderArea.offset.x + renderArea.offset.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-renderArea-02849", - "text": " renderArea.offset.y + renderArea.offset.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02850", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x must be greater than or equal to 0" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02851", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y must be greater than or equal to 0" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02852", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.x + renderArea.offset.width must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02853", - "text": " If the pNext chain does not contain VkDeviceGroupRenderPassBeginInfo or its deviceRenderAreaCount member is equal to 0, renderArea.offset.y + renderArea.offset.height must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02854", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the offset.x member of each element of pDeviceRenderAreas must be greater than or equal to 0" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02855", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, the offset.y member of each element of pDeviceRenderAreas must be greater than or equal to 0" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02856", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.x + offset.width of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::width the framebuffer was created with" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02857", - "text": " If the pNext chain contains VkDeviceGroupRenderPassBeginInfo, offset.y + offset.height of each element of pDeviceRenderAreas must be less than or equal to VkFramebufferCreateInfo::height the framebuffer was created with" - } - ], - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03207", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that did not include VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, and the pNext chain includes a VkRenderPassAttachmentBeginInfo structure, its attachmentCount must be zero" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03208", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, the attachmentCount of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be equal to the value of VkFramebufferAttachmentsCreateInfo::attachmentImageInfoCount used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-02780", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must have been created on the same VkDevice as framebuffer and renderPass" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03209", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::flags equal to the flags member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-04627", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with an inherited usage equal to the usage member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03211", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a width equal to the width member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03212", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView with a height equal to the height member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03213", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::subresourceRange.layerCount equal to the layerCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03214", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageFormatListCreateInfo::viewFormatCount equal to the viewFormatCount member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03215", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a set of elements in VkImageFormatListCreateInfo::pViewFormats equal to the set of elements in the pViewFormats member of the corresponding element of VkFramebufferAttachmentsCreateInfo::pAttachmentImageInfos used to create framebuffer" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03216", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageViewCreateInfo::format equal to the corresponding value of VkAttachmentDescription::format in renderPass" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-framebuffer-03217", - "text": " If framebuffer was created with a VkFramebufferCreateInfo::flags value that included VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT, each element of the pAttachments member of a VkRenderPassAttachmentBeginInfo structure included in the pNext chain must be a VkImageView of an image created with a value of VkImageCreateInfo::samples equal to the corresponding value of VkAttachmentDescription::samples in renderPass" - } - ], - "(VK_QCOM_render_pass_transform)": [ - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02869", - "text": " If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.offset must equal (0,0)" - }, - { - "vuid": "VUID-VkRenderPassBeginInfo-pNext-02870", - "text": " If the pNext chain includes VkRenderPassTransformBeginInfoQCOM, renderArea.extent transformed by VkRenderPassTransformBeginInfoQCOM::transform must equal the framebuffer dimensions" - } - ] - }, - "VkRenderPassSampleLocationsBeginInfoEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT" - }, - { - "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pAttachmentInitialSampleLocations-parameter", - "text": " If attachmentInitialSampleLocationsCount is not 0, pAttachmentInitialSampleLocations must be a valid pointer to an array of attachmentInitialSampleLocationsCount valid VkAttachmentSampleLocationsEXT structures" - }, - { - "vuid": "VUID-VkRenderPassSampleLocationsBeginInfoEXT-pPostSubpassSampleLocations-parameter", - "text": " If postSubpassSampleLocationsCount is not 0, pPostSubpassSampleLocations must be a valid pointer to an array of postSubpassSampleLocationsCount valid VkSubpassSampleLocationsEXT structures" - } - ] - }, - "VkAttachmentSampleLocationsEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkAttachmentSampleLocationsEXT-attachmentIndex-01531", - "text": " attachmentIndex must be less than the attachmentCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with" - }, - { - "vuid": "VUID-VkAttachmentSampleLocationsEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" - } - ] - }, - "VkSubpassSampleLocationsEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkSubpassSampleLocationsEXT-subpassIndex-01532", - "text": " subpassIndex must be less than the subpassCount specified in VkRenderPassCreateInfo the render pass specified by VkRenderPassBeginInfo::renderPass was created with" - }, - { - "vuid": "VUID-VkSubpassSampleLocationsEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" - } - ] - }, - "VkRenderPassTransformBeginInfoQCOM": { - "(VK_QCOM_render_pass_transform)": [ - { - "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-transform-02871", - "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" - }, - { - "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-flags-02872", - "text": " The renderpass must have been created with VkRenderPassCreateInfo::flags containing VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM" - }, - { - "vuid": "VUID-VkRenderPassTransformBeginInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM" - } - ] - }, - "VkSubpassBeginInfo": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkSubpassBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO" - }, - { - "vuid": "VUID-VkSubpassBeginInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkSubpassBeginInfo-contents-parameter", - "text": " contents must be a valid VkSubpassContents value" - } - ] - }, - "VkDeviceGroupRenderPassBeginInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00905", - "text": " deviceMask must be a valid device mask value" - }, - { - "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00906", - "text": " deviceMask must not be zero" - }, - { - "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceMask-00907", - "text": " deviceMask must be a subset of the command buffer’s initial device mask" - }, - { - "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-deviceRenderAreaCount-00908", - "text": " deviceRenderAreaCount must either be zero or equal to the number of physical devices in the logical device" - }, - { - "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO" - }, - { - "vuid": "VUID-VkDeviceGroupRenderPassBeginInfo-pDeviceRenderAreas-parameter", - "text": " If deviceRenderAreaCount is not 0, pDeviceRenderAreas must be a valid pointer to an array of deviceRenderAreaCount VkRect2D structures" - } - ] - }, - "VkRenderPassAttachmentBeginInfo": { - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ - { - "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03218", - "text": " Each element of pAttachments must only specify a single mip level" - }, - { - "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-03219", - "text": " Each element of pAttachments must have been created with the identity swizzle" - }, - { - "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-04114", - "text": " Each element of pAttachments must have been created with VkImageViewCreateInfo::viewType not equal to VK_IMAGE_VIEW_TYPE_3D" - }, - { - "vuid": "VUID-VkRenderPassAttachmentBeginInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO" - }, - { - "vuid": "VUID-VkRenderPassAttachmentBeginInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkImageView handles" - } - ] - }, - "vkGetRenderAreaGranularity": { - "core": [ - { - "vuid": "VUID-vkGetRenderAreaGranularity-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" - }, - { - "vuid": "VUID-vkGetRenderAreaGranularity-pGranularity-parameter", - "text": " pGranularity must be a valid pointer to a VkExtent2D structure" - }, - { - "vuid": "VUID-vkGetRenderAreaGranularity-renderPass-parent", - "text": " renderPass must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdNextSubpass": { - "core": [ - { - "vuid": "VUID-vkCmdNextSubpass-None-00909", - "text": " The current subpass index must be less than the number of subpasses in the render pass minus one" - }, - { - "vuid": "VUID-vkCmdNextSubpass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdNextSubpass-contents-parameter", - "text": " contents must be a valid VkSubpassContents value" - }, - { - "vuid": "VUID-vkCmdNextSubpass-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdNextSubpass-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdNextSubpass-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdNextSubpass-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdNextSubpass-None-02349", - "text": " This command must not be recorded when transform feedback is active" - } - ] - }, - "vkCmdNextSubpass2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-vkCmdNextSubpass2-None-03102", - "text": " The current subpass index must be less than the number of subpasses in the render pass minus one" - }, - { - "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdNextSubpass2-pSubpassBeginInfo-parameter", - "text": " pSubpassBeginInfo must be a valid pointer to a valid VkSubpassBeginInfo structure" - }, - { - "vuid": "VUID-vkCmdNextSubpass2-pSubpassEndInfo-parameter", - "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure" - }, - { - "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdNextSubpass2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdNextSubpass2-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdNextSubpass2-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdNextSubpass2-None-02350", - "text": " This command must not be recorded when transform feedback is active" - } - ] - }, - "vkCmdEndRenderPass": { - "core": [ - { - "vuid": "VUID-vkCmdEndRenderPass-None-00910", - "text": " The current subpass index must be equal to the number of subpasses in the render pass minus one" - }, - { - "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdEndRenderPass-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdEndRenderPass-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdEndRenderPass-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdEndRenderPass-None-02351", - "text": " This command must not be recorded when transform feedback is active" - } - ] - }, - "vkCmdEndRenderPass2": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-vkCmdEndRenderPass2-None-03103", - "text": " The current subpass index must be equal to the number of subpasses in the render pass minus one" - }, - { - "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdEndRenderPass2-pSubpassEndInfo-parameter", - "text": " pSubpassEndInfo must be a valid pointer to a valid VkSubpassEndInfo structure" - }, - { - "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdEndRenderPass2-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdEndRenderPass2-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdEndRenderPass2-bufferlevel", - "text": " commandBuffer must be a primary VkCommandBuffer" - } - ], - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)+(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdEndRenderPass2-None-02352", - "text": " This command must not be recorded when transform feedback is active" - } - ] - }, - "VkSubpassEndInfo": { - "(VK_VERSION_1_2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkSubpassEndInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SUBPASS_END_INFO" - }, - { - "vuid": "VUID-VkSubpassEndInfo-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkCreateShaderModule": { - "core": [ - { - "vuid": "VUID-vkCreateShaderModule-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateShaderModule-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkShaderModuleCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateShaderModule-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateShaderModule-pShaderModule-parameter", - "text": " pShaderModule must be a valid pointer to a VkShaderModule handle" - } - ] - }, - "VkShaderModuleCreateInfo": { - "core": [ - { - "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01085", - "text": " codeSize must be greater than 0" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01089", - "text": " pCode must declare the Shader capability for SPIR-V code" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01090", - "text": " pCode must not declare any capability that is not supported by the API, as described by the Capabilities section of the SPIR-V Environment appendix" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01091", - "text": " If pCode declares any of the capabilities listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04146", - "text": " pCode must not declare any SPIR-V extension that is not supported by the API, as described by the Extension section of the SPIR-V Environment appendix" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-04147", - "text": " If pCode declares any of the SPIR-V extensions listed in the SPIR-V Environment appendix, one of the corresponding requirements must be satisfied" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkShaderModuleValidationCacheCreateInfoEXT" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-parameter", - "text": " pCode must be a valid pointer to an array of \\(\\textrm{codeSize} \\over 4\\) uint32_t values" - } - ], - "!(VK_NV_glsl_shader)": [ - { - "vuid": "VUID-VkShaderModuleCreateInfo-codeSize-01086", - "text": " codeSize must be a multiple of 4" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01087", - "text": " pCode must point to valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01088", - "text": " pCode must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix" - } - ], - "(VK_NV_glsl_shader)": [ - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01376", - "text": " If pCode is a pointer to SPIR-V code, codeSize must be a multiple of 4" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01377", - "text": " pCode must point to either valid SPIR-V code, formatted and packed as described by the Khronos SPIR-V Specification or valid GLSL code which must be written to the GL_KHR_vulkan_glsl extension specification" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01378", - "text": " If pCode is a pointer to SPIR-V code, that code must adhere to the validation rules described by the Validation Rules within a Module section of the SPIR-V Environment appendix" - }, - { - "vuid": "VUID-VkShaderModuleCreateInfo-pCode-01379", - "text": " If pCode is a pointer to GLSL code, it must be valid GLSL code written to the GL_KHR_vulkan_glsl GLSL extension specification" - } - ] - }, - "VkShaderModuleValidationCacheCreateInfoEXT": { - "(VK_EXT_validation_cache)": [ - { - "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkShaderModuleValidationCacheCreateInfoEXT-validationCache-parameter", - "text": " validationCache must be a valid VkValidationCacheEXT handle" - } - ] - }, - "vkDestroyShaderModule": { - "core": [ - { - "vuid": "VUID-vkDestroyShaderModule-shaderModule-01092", - "text": " If VkAllocationCallbacks were provided when shaderModule was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyShaderModule-shaderModule-01093", - "text": " If no VkAllocationCallbacks were provided when shaderModule was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyShaderModule-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyShaderModule-shaderModule-parameter", - "text": " If shaderModule is not VK_NULL_HANDLE, shaderModule must be a valid VkShaderModule handle" - }, - { - "vuid": "VUID-vkDestroyShaderModule-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyShaderModule-shaderModule-parent", - "text": " If shaderModule is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetPhysicalDeviceCooperativeMatrixPropertiesNV": { - "(VK_NV_cooperative_matrix)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceCooperativeMatrixPropertiesNV-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkCooperativeMatrixPropertiesNV structures" - } - ] - }, - "VkCooperativeMatrixPropertiesNV": { - "(VK_NV_cooperative_matrix)": [ - { - "vuid": "VUID-VkCooperativeMatrixPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV" - }, - { - "vuid": "VUID-VkCooperativeMatrixPropertiesNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCooperativeMatrixPropertiesNV-AType-parameter", - "text": " AType must be a valid VkComponentTypeNV value" - }, - { - "vuid": "VUID-VkCooperativeMatrixPropertiesNV-BType-parameter", - "text": " BType must be a valid VkComponentTypeNV value" - }, - { - "vuid": "VUID-VkCooperativeMatrixPropertiesNV-CType-parameter", - "text": " CType must be a valid VkComponentTypeNV value" - }, - { - "vuid": "VUID-VkCooperativeMatrixPropertiesNV-DType-parameter", - "text": " DType must be a valid VkComponentTypeNV value" - }, - { - "vuid": "VUID-VkCooperativeMatrixPropertiesNV-scope-parameter", - "text": " scope must be a valid VkScopeNV value" - } - ] - }, - "vkCreateValidationCacheEXT": { - "(VK_EXT_validation_cache)": [ - { - "vuid": "VUID-vkCreateValidationCacheEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateValidationCacheEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkValidationCacheCreateInfoEXT structure" - }, - { - "vuid": "VUID-vkCreateValidationCacheEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateValidationCacheEXT-pValidationCache-parameter", - "text": " pValidationCache must be a valid pointer to a VkValidationCacheEXT handle" - } - ] - }, - "VkValidationCacheCreateInfoEXT": { - "(VK_EXT_validation_cache)": [ - { - "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01534", - "text": " If initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetValidationCacheDataEXT when pInitialData was originally retrieved" - }, - { - "vuid": "VUID-VkValidationCacheCreateInfoEXT-initialDataSize-01535", - "text": " If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetValidationCacheDataEXT" - }, - { - "vuid": "VUID-VkValidationCacheCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkValidationCacheCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkValidationCacheCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkValidationCacheCreateInfoEXT-pInitialData-parameter", - "text": " If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes" - } - ] - }, - "vkMergeValidationCachesEXT": { - "(VK_EXT_validation_cache)": [ - { - "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-01536", - "text": " dstCache must not appear in the list of source caches" - }, - { - "vuid": "VUID-vkMergeValidationCachesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parameter", - "text": " dstCache must be a valid VkValidationCacheEXT handle" - }, - { - "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parameter", - "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkValidationCacheEXT handles" - }, - { - "vuid": "VUID-vkMergeValidationCachesEXT-srcCacheCount-arraylength", - "text": " srcCacheCount must be greater than 0" - }, - { - "vuid": "VUID-vkMergeValidationCachesEXT-dstCache-parent", - "text": " dstCache must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkMergeValidationCachesEXT-pSrcCaches-parent", - "text": " Each element of pSrcCaches must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetValidationCacheDataEXT": { - "(VK_EXT_validation_cache)": [ - { - "vuid": "VUID-vkGetValidationCacheDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parameter", - "text": " validationCache must be a valid VkValidationCacheEXT handle" - }, - { - "vuid": "VUID-vkGetValidationCacheDataEXT-pDataSize-parameter", - "text": " pDataSize must be a valid pointer to a size_t value" - }, - { - "vuid": "VUID-vkGetValidationCacheDataEXT-pData-parameter", - "text": " If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes" - }, - { - "vuid": "VUID-vkGetValidationCacheDataEXT-validationCache-parent", - "text": " validationCache must have been created, allocated, or retrieved from device" - } - ] - }, - "vkDestroyValidationCacheEXT": { - "(VK_EXT_validation_cache)": [ - { - "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01537", - "text": " If VkAllocationCallbacks were provided when validationCache was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-01538", - "text": " If no VkAllocationCallbacks were provided when validationCache was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyValidationCacheEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parameter", - "text": " If validationCache is not VK_NULL_HANDLE, validationCache must be a valid VkValidationCacheEXT handle" - }, - { - "vuid": "VUID-vkDestroyValidationCacheEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyValidationCacheEXT-validationCache-parent", - "text": " If validationCache is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateComputePipelines": { - "core": [ - { - "vuid": "VUID-vkCreateComputePipelines-flags-00695", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" - }, - { - "vuid": "VUID-vkCreateComputePipelines-flags-00696", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" - }, - { - "vuid": "VUID-vkCreateComputePipelines-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" - }, - { - "vuid": "VUID-vkCreateComputePipelines-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkComputePipelineCreateInfo structures" - }, - { - "vuid": "VUID-vkCreateComputePipelines-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateComputePipelines-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" - }, - { - "vuid": "VUID-vkCreateComputePipelines-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" - }, - { - "vuid": "VUID-vkCreateComputePipelines-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-vkCreateComputePipelines-pipelineCache-02873", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" - } - ] - }, - "VkComputePipelineCreateInfo": { - "core": [ - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-00697", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a compute VkPipeline" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-00698", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-00699", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-00700", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-stage-00701", - "text": " The stage member of stage must be VK_SHADER_STAGE_COMPUTE_BIT" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-stage-00702", - "text": " The shader code for the entry point identified by stage and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-layout-00703", - "text": " layout must be consistent with the layout of the compute shader specified in stage" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-layout-01687", - "text": " The number of resources in layout accessible to the compute shader stage must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCompilerControlCreateInfoAMD or VkPipelineCreationFeedbackCreateInfoEXT" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-stage-parameter", - "text": " stage must be a valid VkPipelineShaderStageCreateInfo structure" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_KHR_pipeline_library)": [ - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03364", - "text": " flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" - } - ], - "(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03365", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03366", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03367", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03368", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03369", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03370", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" - }, - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-03576", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" - } - ], - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkComputePipelineCreateInfo-flags-02874", - "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-VkComputePipelineCreateInfo-pipelineCreationCacheControl-02875", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" - } - ] - }, - "VkPipelineShaderStageCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00704", - "text": " If the geometry shaders feature is not enabled, stage must not be VK_SHADER_STAGE_GEOMETRY_BIT" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00705", - "text": " If the tessellation shaders feature is not enabled, stage must not be VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00706", - "text": " stage must not be VK_SHADER_STAGE_ALL_GRAPHICS, or VK_SHADER_STAGE_ALL" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-00707", - "text": " pName must be the name of an OpEntryPoint in module with an execution model that matches stage" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxClipDistances-00708", - "text": " If the identified entry point includes any variable in its interface that is declared with the ClipDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxClipDistances" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCullDistances-00709", - "text": " If the identified entry point includes any variable in its interface that is declared with the CullDistance BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxCullDistances" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxCombinedClipAndCullDistances-00710", - "text": " If the identified entry point includes any variables in its interface that are declared with the ClipDistance or CullDistance BuiltIn decoration, those variables must not have array sizes which sum to more than VkPhysicalDeviceLimits::maxCombinedClipAndCullDistances" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-maxSampleMaskWords-00711", - "text": " If the identified entry point includes any variable in its interface that is declared with the SampleMask BuiltIn decoration, that variable must not have an array size greater than VkPhysicalDeviceLimits::maxSampleMaskWords" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00712", - "text": " If stage is VK_SHADER_STAGE_VERTEX_BIT, the identified entry point must not include any input variable in its interface that is decorated with CullDistance" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00713", - "text": " If stage is VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT or VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, and the identified entry point has an OpExecutionMode instruction that specifies a patch size with OutputVertices, the patch size must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00714", - "text": " If stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction that specifies a maximum output vertex count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryOutputVertices" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00715", - "text": " If stage is VK_SHADER_STAGE_GEOMETRY_BIT, the identified entry point must have an OpExecutionMode instruction that specifies an invocation count that is greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxGeometryShaderInvocations" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02596", - "text": " If stage is a vertex processing stage, and the identified entry point writes to Layer for any primitive, it must write the same value to Layer for all vertices of a given primitive" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02597", - "text": " If stage is a vertex processing stage, and the identified entry point writes to ViewportIndex for any primitive, it must write the same value to ViewportIndex for all vertices of a given primitive" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00718", - "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, the identified entry point must not include any output variables in its interface decorated with CullDistance" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-00719", - "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragDepth in any execution path, it must write to FragDepth in all execution paths" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-04145", - "text": " The SPIR-V code that was used to create module must be valid as described by the Khronos SPIR-V Specification after applying the specializations provided in pSpecializationInfo, if any, and then converting all specialization constants into fixed constants." - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineShaderStageCreateFlagBits values" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-parameter", - "text": " stage must be a valid VkShaderStageFlagBits value" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-module-parameter", - "text": " module must be a valid VkShaderModule handle" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pName-parameter", - "text": " pName must be a null-terminated UTF-8 string" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pSpecializationInfo-parameter", - "text": " If pSpecializationInfo is not NULL, pSpecializationInfo must be a valid pointer to a valid VkSpecializationInfo structure" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02091", - "text": " If the mesh shader feature is not enabled, stage must not be VK_SHADER_STAGE_MESH_BIT_NV" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02092", - "text": " If the task shader feature is not enabled, stage must not be VK_SHADER_STAGE_TASK_BIT_NV" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02093", - "text": " If stage is VK_SHADER_STAGE_MESH_BIT_NV, the identified entry point must have an OpExecutionMode instruction that specifies a maximum output vertex count, OutputVertices, that is greater than 0 and less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputVertices" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-02094", - "text": " If stage is VK_SHADER_STAGE_MESH_BIT_NV, the identified entry point must have an OpExecutionMode instruction that specifies a maximum output primitive count, OutputPrimitivesNV, that is greater than 0 and less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxMeshOutputPrimitives" - } - ], - "(VK_EXT_shader_stencil_export)": [ - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-stage-01511", - "text": " If stage is VK_SHADER_STAGE_FRAGMENT_BIT, and the identified entry point writes to FragStencilRefEXT in any execution path, it must write to FragStencilRefEXT in all execution paths" - } - ], - "(VK_EXT_subgroup_size_control)": [ - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02784", - "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set, the subgroupSizeControl feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02785", - "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT flag set, the computeFullSubgroups feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02754", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, flags must not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02755", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the subgroupSizeControl feature must be enabled, and stage must be a valid bit specified in requiredSubgroupSizeStages" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02756", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain and stage is VK_SHADER_STAGE_COMPUTE_BIT, the local workgroup size of the shader must be less than or equal to the product of VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::requiredSubgroupSize and maxComputeWorkgroupSubgroups" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-pNext-02757", - "text": " If a VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, and flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT flag set, the local workgroup size in the X dimension of the pipeline must be a multiple of VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT::requiredSubgroupSize" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02758", - "text": " If flags has both the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT and VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flags set, the local workgroup size in the X dimension of the pipeline must be a multiple of maxSubgroupSize" - }, - { - "vuid": "VUID-VkPipelineShaderStageCreateInfo-flags-02759", - "text": " If flags has the VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT flag set and flags does not have the VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT flag set and no VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT structure is included in the pNext chain, the local workgroup size in the X dimension of the pipeline must be a multiple of subgroupSize" - } - ] - }, - "VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT": { - "(VK_EXT_subgroup_size_control)": [ - { - "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02760", - "text": " requiredSubgroupSize must be a power-of-two integer" - }, - { - "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02761", - "text": " requiredSubgroupSize must be greater or equal to minSubgroupSize" - }, - { - "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-requiredSubgroupSize-02762", - "text": " requiredSubgroupSize must be less than or equal to maxSubgroupSize" - }, - { - "vuid": "VUID-VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT" - } - ] - }, - "vkCreateGraphicsPipelines": { - "core": [ - { - "vuid": "VUID-vkCreateGraphicsPipelines-flags-00720", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-flags-00721", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkGraphicsPipelineCreateInfo structures" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" - }, - { - "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-vkCreateGraphicsPipelines-pipelineCache-02876", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" - } - ] - }, - "VkGraphicsPipelineCreateInfo": { - "core": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00722", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a graphics VkPipeline" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00723", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00724", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00725", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00726", - "text": " The stage member of each element of pStages must be unique" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00728", - "text": " The stage member of each element of pStages must not be VK_SHADER_STAGE_COMPUTE_BIT" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00729", - "text": " If pStages includes a tessellation control shader stage, it must include a tessellation evaluation shader stage" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00730", - "text": " If pStages includes a tessellation evaluation shader stage, it must include a tessellation control shader stage" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00731", - "text": " If pStages includes a tessellation control shader stage and a tessellation evaluation shader stage, pTessellationState must be a valid pointer to a valid VkPipelineTessellationStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00732", - "text": " If pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction that specifies the type of subdivision in the pipeline" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00733", - "text": " If pStages includes tessellation shader stages, and the shader code of both stages contain an OpExecutionMode instruction that specifies the type of subdivision in the pipeline, they must both specify the same subdivision mode" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00734", - "text": " If pStages includes tessellation shader stages, the shader code of at least one stage must contain an OpExecutionMode instruction that specifies the output patch size in the pipeline" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00735", - "text": " If pStages includes tessellation shader stages, and the shader code of both contain an OpExecutionMode instruction that specifies the out patch size in the pipeline, they must both specify the same patch size" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00736", - "text": " If pStages includes tessellation shader stages, the topology member of pInputAssembly must be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-topology-00737", - "text": " If the topology member of pInputAssembly is VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, pStages must include tessellation shader stages" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00738", - "text": " If pStages includes a geometry shader stage, and does not include any tessellation shader stages, its shader code must contain an OpExecutionMode instruction that specifies an input primitive type that is compatible with the primitive topology specified in pInputAssembly" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00739", - "text": " If pStages includes a geometry shader stage, and also includes tessellation shader stages, its shader code must contain an OpExecutionMode instruction that specifies an input primitive type that is compatible with the primitive topology that is output by the tessellation stages" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00740", - "text": " If pStages includes a fragment shader stage and a geometry shader stage, and the fragment shader code reads from an input variable that is decorated with PrimitiveID, then the geometry shader code must write to a matching output variable, decorated with PrimitiveID, in all execution paths" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00741", - "text": " If pStages includes a fragment shader stage, its shader code must not read from any input attachment that is defined as VK_ATTACHMENT_UNUSED in subpass" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-00742", - "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-blendEnable-02023", - "text": " If rasterization is not disabled and the subpass uses color attachments, then for each color attachment in the subpass the blendEnable member of the corresponding element of the pAttachment member of pColorBlendState must be VK_FALSE if the attached image’s format features does not contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-attachmentCount-00746", - "text": " If rasterization is not disabled and the subpass uses color attachments, the attachmentCount member of pColorBlendState must be equal to the colorAttachmentCount used to create subpass" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00749", - "text": " If the wide lines feature is not enabled, and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_WIDTH, the lineWidth member of pRasterizationState must be 1.0" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00750", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pViewportState must be a valid pointer to a valid VkPipelineViewportStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00751", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pMultisampleState must be a valid pointer to a valid VkPipelineMultisampleStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00752", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and subpass uses a depth/stencil attachment, pDepthStencilState must be a valid pointer to a valid VkPipelineDepthStencilStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-00753", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, and subpass uses color attachments, pColorBlendState must be a valid pointer to a valid VkPipelineColorBlendStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizerDiscardEnable-04493", - "text": " If the rasterizerDiscardEnable member of pRasterizationState is VK_FALSE, pColorBlendState->attachmentCount must be greater than the index of all color attachments that are not VK_ATTACHMENT_UNUSED for the subpass index in renderPass" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00754", - "text": " If the depth bias clamping feature is not enabled, no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BIAS, and the depthBiasEnable member of pRasterizationState is VK_TRUE, the depthBiasClamp member of pRasterizationState must be 0.0" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-00756", - "text": " layout must be consistent with all shaders specified in pStages" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00757", - "text": " If neither the VK_AMD_mixed_attachment_samples nor the VK_NV_framebuffer_mixed_samples extensions are enabled, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must be the same as the sample count for those subpass attachments" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00758", - "text": " If subpass does not use any color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must follow the rules for a zero-attachment subpass" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00759", - "text": " subpass must be a valid subpass within renderPass" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-01688", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02097", - "text": " If pStages includes a vertex shader stage, pVertexInputState must be a valid pointer to a valid VkPipelineVertexInputStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02098", - "text": " If pStages includes a vertex shader stage, pInputAssemblyState must be a valid pointer to a valid VkPipelineInputAssemblyStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkGraphicsPipelineShaderGroupsCreateInfoNV, VkPipelineCompilerControlCreateInfoAMD, VkPipelineCreationFeedbackCreateInfoEXT, VkPipelineDiscardRectangleStateCreateInfoEXT, VkPipelineFragmentShadingRateEnumStateCreateInfoNV, VkPipelineFragmentShadingRateStateCreateInfoKHR, or VkPipelineRepresentativeFragmentTestStateCreateInfoNV" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pRasterizationState-parameter", - "text": " pRasterizationState must be a valid pointer to a valid VkPipelineRasterizationStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-parameter", - "text": " If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-parameter", - "text": " renderPass must be a valid VkRenderPass handle" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-stageCount-arraylength", - "text": " stageCount must be greater than 0" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-commonparent", - "text": " Each of basePipelineHandle, layout, and renderPass that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "!(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-00727", - "text": " The stage member of one element of pStages must be VK_SHADER_STAGE_VERTEX_BIT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02095", - "text": " The geometric shader stages provided in pStages must be either from the mesh shading pipeline (stage is VK_SHADER_STAGE_TASK_BIT_NV or VK_SHADER_STAGE_MESH_BIT_NV) or from the primitive shading pipeline (stage is VK_SHADER_STAGE_VERTEX_BIT, VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT, or VK_SHADER_STAGE_GEOMETRY_BIT)" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-stage-02096", - "text": " The stage member of one element of pStages must be either VK_SHADER_STAGE_VERTEX_BIT or VK_SHADER_STAGE_MESH_BIT_NV" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00743", - "text": " If rasterization is not disabled and subpass uses a depth/stencil attachment in renderPass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the depthWriteEnable member of pDepthStencilState must be VK_FALSE" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-00744", - "text": " If rasterization is not disabled and subpass uses a depth/stencil attachment in renderPass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01756", - "text": " If rasterization is not disabled and subpass uses a depth/stencil attachment in renderPass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL in the VkAttachmentReference defined by subpass, the depthWriteEnable member of pDepthStencilState must be VK_FALSE" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01757", - "text": " If rasterization is not disabled and subpass uses a depth/stencil attachment in renderPass that has a layout of VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL or VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL in the VkAttachmentReference defined by subpass, the failOp, passOp and depthFailOp members of each of the front and back members of pDepthStencilState must be VK_STENCIL_OP_KEEP" - } - ], - "!(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00747", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00748", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04130", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT or VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, the pViewports member of pViewportState must be a valid pointer to an array of pViewportState->viewportCount valid VkViewport structures" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04131", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SCISSOR or VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, the pScissors member of pViewportState must be a valid pointer to an array of pViewportState->scissorCount VkRect2D structures" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03378", - "text": " If the extendedDynamicState feature is not enabled, there must be no element of the pDynamicStates member of pDynamicState set to VK_DYNAMIC_STATE_CULL_MODE_EXT, VK_DYNAMIC_STATE_FRONT_FACE_EXT, VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT, VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT, VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT, VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT, VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT, VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT, VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT, or VK_DYNAMIC_STATE_STENCIL_OP_EXT" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03379", - "text": " If VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then viewportCount must be zero" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03380", - "text": " If VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT is included in the pDynamicStates array then scissorCount must be zero" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04132", - "text": " If VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_VIEWPORT must not be present" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04133", - "text": " If VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT is included in the pDynamicStates array then VK_DYNAMIC_STATE_SCISSOR must not be present" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-00755", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive" - } - ], - "(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-02510", - "text": " If the VK_EXT_depth_range_unrestricted extension is not enabled and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DEPTH_BOUNDS, and the depthBoundsTestEnable member of pDepthStencilState is VK_TRUE, the minDepthBounds and maxDepthBounds members of pDepthStencilState must be between 0.0 and 1.0, inclusive" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01521", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.width must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.width as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01522", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationGridSize.height must evenly divide VkMultisamplePropertiesEXT::sampleLocationGridSize.height as returned by vkGetPhysicalDeviceMultisamplePropertiesEXT with a samples parameter equaling rasterizationSamples" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01523", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT, and the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, sampleLocationsInfo.sampleLocationsPerPixel must equal rasterizationSamples" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-sampleLocationsEnable-01524", - "text": " If the sampleLocationsEnable member of a VkPipelineSampleLocationsStateCreateInfoEXT structure included in the pNext chain of pMultisampleState is VK_TRUE, the fragment shader code must not statically use the extended instruction InterpolateAtSample" - } - ], - "(VK_AMD_mixed_attachment_samples)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01505", - "text": " If the VK_AMD_mixed_attachment_samples extension is enabled, and if subpass uses color and/or depth/stencil attachments, then the rasterizationSamples member of pMultisampleState must equal the maximum of the sample counts of those subpass attachments" - } - ], - "(VK_NV_framebuffer_mixed_samples)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01411", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if subpass has a depth/stencil attachment and depth test, stencil test, or depth bounds test are enabled, then the rasterizationSamples member of pMultisampleState must be the same as the sample count of the depth/stencil attachment" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-subpass-01412", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if subpass has any color attachments, then the rasterizationSamples member of pMultisampleState must be greater than or equal to the sample count for those subpass attachments" - } - ], - "(VK_NV_coverage_reduction_mode)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-coverageReductionMode-02722", - "text": " If the VK_NV_coverage_reduction_mode extension is enabled, the coverage reduction mode specified by VkPipelineCoverageReductionStateCreateInfoNV::coverageReductionMode, the rasterizationSamples member of pMultisampleState and the sample counts for the color and depth/stencil attachments (if the subpass has them) must be a valid combination returned by vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00760", - "text": " If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewTessellationShader is not enabled, then pStages must not include tessellation shaders" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00761", - "text": " If the renderPass has multiview enabled and subpass has more than one bit set in the view mask and multiviewGeometryShader is not enabled, then pStages must not include a geometry shader" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00762", - "text": " If the renderPass has multiview enabled and subpass has more than one bit set in the view mask, shaders in the pipeline must not write to the Layer built-in output" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-renderPass-00763", - "text": " If the renderPass has multiview enabled, then all shaders must not include variables decorated with the Layer built-in decoration in their interfaces" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-00764", - "text": " flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2,VK_KHR_create_renderpass2)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-01565", - "text": " If pStages includes a fragment shader stage and an input attachment was referenced by an aspectMask at renderPass creation time, its shader code must only read from the aspects that were specified for that input attachment" - } - ], - "(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-01715", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV, and the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure, included in the pNext chain of pViewportState, is VK_TRUE, the pViewportWScalings member of the VkPipelineViewportWScalingStateCreateInfoNV must be a pointer to an array of VkPipelineViewportWScalingStateCreateInfoNV::viewportCount valid VkViewportWScalingNV structures" - } - ], - "(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04056", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV, and if pViewportState->pNext chain includes a VkPipelineViewportExclusiveScissorStateCreateInfoNV structure, and if its exclusiveScissorCount member is not 0, then its pExclusiveScissors member must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04057", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV, and if pViewportState->pNext chain includes a VkPipelineViewportShadingRateImageStateCreateInfoNV structure, then its pShadingRatePalettes member must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" - } - ], - "(VK_EXT_discard_rectangles)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-04058", - "text": " If no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT, and if pNext chain includes a VkPipelineDiscardRectangleStateCreateInfoEXT structure, and if its discardRectangleCount member is not 0, then its pDiscardRectangles member must be a valid pointer to an array of discardRectangleCount VkRect2D structures" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02317", - "text": " The Xfb execution mode can be specified by only one shader stage in pStages" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pStages-02318", - "text": " If any shader stage in pStages specifies Xfb execution mode it must be the last vertex processing stage" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02319", - "text": " If a VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream value other than zero is specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with identical Stream values that match the rasterizationStream" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-rasterizationStream-02320", - "text": " If VkPipelineRasterizationStateStreamCreateInfoEXT::rasterizationStream is zero, or not specified, all variables in the output interface of the entry point being compiled decorated with Position, PointSize, ClipDistance, or CullDistance must be decorated with a Stream value of zero, or must not specify the Stream decoration" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-geometryStreams-02321", - "text": " If the last vertex processing stage is a geometry shader, and that geometry shader uses the GeometryStreams capability, then VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams feature must be enabled" - } - ], - "(VK_EXT_transform_feedback)+(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-02322", - "text": " If there are any mesh shader stages in the pipeline there must not be any shader stage in the pipeline with a Xfb execution mode" - } - ], - "(VK_EXT_line_rasterization)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-lineRasterizationMode-02766", - "text": " If the lineRasterizationMode member of a VkPipelineRasterizationLineStateCreateInfoEXT structure included in the pNext chain of pRasterizationState is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT or VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT and if rasterization is enabled, then the alphaToCoverageEnable, alphaToOneEnable, and sampleShadingEnable members of pMultisampleState must all be VK_FALSE" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-stippledLineEnable-02767", - "text": " If the stippledLineEnable member of VkPipelineRasterizationLineStateCreateInfoEXT is VK_TRUE and no element of the pDynamicStates member of pDynamicState is VK_DYNAMIC_STATE_LINE_STIPPLE_EXT, then the lineStippleFactor member of VkPipelineRasterizationLineStateCreateInfoEXT must be in the range [1,256]" - } - ], - "(VK_KHR_pipeline_library)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03371", - "text": " flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" - } - ], - "(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03372", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03373", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03374", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03375", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03376", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03377", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-03577", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicStates-03578", - "text": " All elements of the pDynamicStates member of pDynamicState must not be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR" - } - ], - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02877", - "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then the VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - } - ], - "(VK_NV_device_generated_commands)+(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-flags-02966", - "text": " If flags includes VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV, then all stages must not specify Xfb execution mode" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pipelineCreationCacheControl-02878", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" - } - ], - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04494", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be greater than or equal to 1" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04495", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be greater than or equal to 1" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04496", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be a power-of-two value" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04497", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be a power-of-two value" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04498", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width must be less than or equal to 4" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04499", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must be less than or equal to 4" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04500", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.width and VkPipelineFragmentShadingRateStateCreateInfoKHR::fragmentSize.height must both be equal to 1" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04501", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04502", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04503", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT is not included in pDynamicState->pDynamicStates, and VkPipelineViewportStateCreateInfo::viewportCount is greater than 1, entry points specified in pStages must not write to the PrimitiveShadingRateKHR built-in" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04504", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportIndex built-in, they must not also write to the PrimitiveShadingRateKHR built-in" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04506", - "text": " If the fragmentShadingRateNonTrivialCombinerOps limit is not supported and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateStateCreateInfoKHR::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" - } - ], - "(VK_KHR_fragment_shading_rate)+(VK_NV_viewport_array2)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-primitiveFragmentShadingRateWithMultipleViewports-04505", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, and entry points specified in pStages write to the ViewportMaskNV built-in, they must not also write to the PrimitiveShadingRateKHR built-in" - } - ], - "(VK_NV_fragment_shading_rate_enums)": [ - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04569", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the fragmentShadingRateEnums feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRateType must be equal to VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV." - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04570", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the pipelineFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must be equal to VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV." - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04571", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the primitiveFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-pDynamicState-04572", - "text": " If VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, and the attachmentFragmentShadingRate feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-fragmentShadingRateNonTrivialCombinerOps-04573", - "text": " If the fragmentShadingRateNonTrivialCombinerOps limit is not supported and VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR is not included in pDynamicState->pDynamicStates, elements of VkPipelineFragmentShadingRateEnumStateCreateInfoNV::combinerOps must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04574", - "text": " If the supersampleFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV." - }, - { - "vuid": "VUID-VkGraphicsPipelineCreateInfo-None-04575", - "text": " If the noInvocationFragmentShadingRates feature is not enabled, VkPipelineFragmentShadingRateEnumStateCreateInfoNV::shadingRate must not be equal to VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV." - } - ] - }, - "VkPipelineDynamicStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-01442", - "text": " Each element of pDynamicStates must be unique" - }, - { - "vuid": "VUID-VkPipelineDynamicStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineDynamicStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineDynamicStateCreateInfo-pDynamicStates-parameter", - "text": " If dynamicStateCount is not 0, pDynamicStates must be a valid pointer to an array of dynamicStateCount valid VkDynamicState values" - } - ] - }, - "VkGraphicsPipelineShaderGroupsCreateInfoNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02879", - "text": " groupCount must be at least 1 and as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-02880", - "text": " The sum of groupCount including those groups added from referenced pPipelines must also be as maximum VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxGraphicsShaderGroupCount" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02881", - "text": " The state of the first element of pGroups must match its equivalent within the parent’s VkGraphicsPipelineCreateInfo" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02882", - "text": " Each element of pGroups must in combination with the rest of the pipeline state yield a valid state configuration" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-02886", - "text": " Each element of pPipelines must have been created with identical state to the pipeline currently created except the state that can be overridden by VkGraphicsShaderGroupCreateInfoNV" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-deviceGeneratedCommands-02887", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-parameter", - "text": " pGroups must be a valid pointer to an array of groupCount valid VkGraphicsShaderGroupCreateInfoNV structures" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pPipelines-parameter", - "text": " If pipelineCount is not 0, pPipelines must be a valid pointer to an array of pipelineCount valid VkPipeline handles" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-groupCount-arraylength", - "text": " groupCount must be greater than 0" - } - ], - "(VK_NV_device_generated_commands)+!(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02883", - "text": " All elements of pGroups must use the same shader stage combinations" - } - ], - "(VK_NV_device_generated_commands)+(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02884", - "text": " All elements of pGroups must use the same shader stage combinations unless any mesh shader stage is used, then either combination of task and mesh or just mesh shader is valid" - }, - { - "vuid": "VUID-VkGraphicsPipelineShaderGroupsCreateInfoNV-pGroups-02885", - "text": " Mesh and regular primitive shading stages cannot be mixed across pGroups" - } - ] - }, - "VkGraphicsShaderGroupCreateInfoNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-02888", - "text": " For stageCount, the same restrictions as in VkGraphicsPipelineCreateInfo::stageCount apply" - }, - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-02889", - "text": " For pStages, the same restrictions as in VkGraphicsPipelineCreateInfo::pStages apply" - }, - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pVertexInputState-02890", - "text": " For pVertexInputState, the same restrictions as in VkGraphicsPipelineCreateInfo::pVertexInputState apply" - }, - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pTessellationState-02891", - "text": " For pTessellationState, the same restrictions as in VkGraphicsPipelineCreateInfo::pTessellationState apply" - }, - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" - }, - { - "vuid": "VUID-VkGraphicsShaderGroupCreateInfoNV-stageCount-arraylength", - "text": " stageCount must be greater than 0" - } - ] - }, - "vkDestroyPipeline": { - "core": [ - { - "vuid": "VUID-vkDestroyPipeline-pipeline-00765", - "text": " All submitted commands that refer to pipeline must have completed execution" - }, - { - "vuid": "VUID-vkDestroyPipeline-pipeline-00766", - "text": " If VkAllocationCallbacks were provided when pipeline was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyPipeline-pipeline-00767", - "text": " If no VkAllocationCallbacks were provided when pipeline was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyPipeline-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyPipeline-pipeline-parameter", - "text": " If pipeline is not VK_NULL_HANDLE, pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkDestroyPipeline-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyPipeline-pipeline-parent", - "text": " If pipeline is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreatePipelineCache": { - "core": [ - { - "vuid": "VUID-vkCreatePipelineCache-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreatePipelineCache-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPipelineCacheCreateInfo structure" - }, - { - "vuid": "VUID-vkCreatePipelineCache-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreatePipelineCache-pPipelineCache-parameter", - "text": " pPipelineCache must be a valid pointer to a VkPipelineCache handle" - } - ] - }, - "VkPipelineCacheCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00768", - "text": " If initialDataSize is not 0, it must be equal to the size of pInitialData, as returned by vkGetPipelineCacheData when pInitialData was originally retrieved" - }, - { - "vuid": "VUID-VkPipelineCacheCreateInfo-initialDataSize-00769", - "text": " If initialDataSize is not 0, pInitialData must have been retrieved from a previous call to vkGetPipelineCacheData" - }, - { - "vuid": "VUID-VkPipelineCacheCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineCacheCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineCacheCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCacheCreateFlagBits values" - }, - { - "vuid": "VUID-VkPipelineCacheCreateInfo-pInitialData-parameter", - "text": " If initialDataSize is not 0, pInitialData must be a valid pointer to an array of initialDataSize bytes" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-VkPipelineCacheCreateInfo-pipelineCreationCacheControl-02892", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT" - } - ] - }, - "vkMergePipelineCaches": { - "core": [ - { - "vuid": "VUID-vkMergePipelineCaches-dstCache-00770", - "text": " dstCache must not appear in the list of source caches" - }, - { - "vuid": "VUID-vkMergePipelineCaches-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkMergePipelineCaches-dstCache-parameter", - "text": " dstCache must be a valid VkPipelineCache handle" - }, - { - "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parameter", - "text": " pSrcCaches must be a valid pointer to an array of srcCacheCount valid VkPipelineCache handles" - }, - { - "vuid": "VUID-vkMergePipelineCaches-srcCacheCount-arraylength", - "text": " srcCacheCount must be greater than 0" - }, - { - "vuid": "VUID-vkMergePipelineCaches-dstCache-parent", - "text": " dstCache must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkMergePipelineCaches-pSrcCaches-parent", - "text": " Each element of pSrcCaches must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetPipelineCacheData": { - "core": [ - { - "vuid": "VUID-vkGetPipelineCacheData-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parameter", - "text": " pipelineCache must be a valid VkPipelineCache handle" - }, - { - "vuid": "VUID-vkGetPipelineCacheData-pDataSize-parameter", - "text": " pDataSize must be a valid pointer to a size_t value" - }, - { - "vuid": "VUID-vkGetPipelineCacheData-pData-parameter", - "text": " If the value referenced by pDataSize is not 0, and pData is not NULL, pData must be a valid pointer to an array of pDataSize bytes" - }, - { - "vuid": "VUID-vkGetPipelineCacheData-pipelineCache-parent", - "text": " pipelineCache must have been created, allocated, or retrieved from device" - } - ] - }, - "vkDestroyPipelineCache": { - "core": [ - { - "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00771", - "text": " If VkAllocationCallbacks were provided when pipelineCache was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-00772", - "text": " If no VkAllocationCallbacks were provided when pipelineCache was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyPipelineCache-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" - }, - { - "vuid": "VUID-vkDestroyPipelineCache-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyPipelineCache-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "VkSpecializationInfo": { - "core": [ - { - "vuid": "VUID-VkSpecializationInfo-offset-00773", - "text": " The offset member of each element of pMapEntries must be less than dataSize" - }, - { - "vuid": "VUID-VkSpecializationInfo-pMapEntries-00774", - "text": " The size member of each element of pMapEntries must be less than or equal to dataSize minus offset" - }, - { - "vuid": "VUID-VkSpecializationInfo-pMapEntries-parameter", - "text": " If mapEntryCount is not 0, pMapEntries must be a valid pointer to an array of mapEntryCount valid VkSpecializationMapEntry structures" - }, - { - "vuid": "VUID-VkSpecializationInfo-pData-parameter", - "text": " If dataSize is not 0, pData must be a valid pointer to an array of dataSize bytes" - } - ] - }, - "VkSpecializationMapEntry": { - "core": [ - { - "vuid": "VUID-VkSpecializationMapEntry-constantID-00776", - "text": " For a constantID specialization constant declared in a shader, size must match the byte size of the constantID. If the specialization constant is of type boolean, size must be the byte size of VkBool32" - } - ] - }, - "VkPipelineLibraryCreateInfoKHR": { - "(VK_KHR_pipeline_library)": [ - { - "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-03381", - "text": " Each element of pLibraries must have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" - }, - { - "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineLibraryCreateInfoKHR-pLibraries-parameter", - "text": " If libraryCount is not 0, pLibraries must be a valid pointer to an array of libraryCount valid VkPipeline handles" - } - ] - }, - "vkCmdBindPipeline": { - "core": [ - { - "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00777", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, the VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00778", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00779", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_COMPUTE, pipeline must be a compute pipeline" - }, - { - "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-00780", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_GRAPHICS, pipeline must be a graphics pipeline" - }, - { - "vuid": "VUID-vkCmdBindPipeline-pipeline-00781", - "text": " If the variable multisample rate feature is not supported, pipeline is a graphics pipeline, the current subpass uses no attachments, and this is not the first call to this function with a graphics pipeline after transitioning to the current subpass, then the sample count specified by this pipeline must match that set in the previous pipeline" - }, - { - "vuid": "VUID-vkCmdBindPipeline-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-vkCmdBindPipeline-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkCmdBindPipeline-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindPipeline-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdBindPipeline-commonparent", - "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdBindPipeline-variableSampleLocations-01525", - "text": " If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE, and pipeline is a graphics pipeline created with a VkPipelineSampleLocationsStateCreateInfoEXT structure having its sampleLocationsEnable member set to VK_TRUE but without VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT enabled then the current render pass instance must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sampleLocationsInfo specified in VkPipelineSampleLocationsStateCreateInfoEXT when the pipeline was created" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdBindPipeline-None-02323", - "text": " This command must not be recorded when transform feedback is active" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02391", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdBindPipeline-pipelineBindPoint-02392", - "text": " If pipelineBindPoint is VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, the pipeline must be a ray tracing pipeline" - } - ], - "(VK_KHR_pipeline_library)": [ - { - "vuid": "VUID-vkCmdBindPipeline-pipeline-03382", - "text": " The pipeline must not have been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR set" - } - ] - }, - "vkCmdBindPipelineShaderGroupNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02893", - "text": " groupIndex must be 0 or less than the effective VkGraphicsPipelineShaderGroupsCreateInfoNV::groupCount including the referenced pipelines" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-02894", - "text": " The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-groupIndex-02895", - "text": " The same restrictions as vkCmdBindPipeline apply as if the bound pipeline was created only with the Shader Group from the groupIndex information" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-deviceGeneratedCommands-02896", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdBindPipelineShaderGroupNV-commonparent", - "text": " Both of commandBuffer, and pipeline must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetPipelineExecutablePropertiesKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipelineExecutableInfo-03270", - "text": " pipelineExecutableInfo must be enabled" - }, - { - "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pipeline-03271", - "text": " pipeline member of pPipelineInfo must have been created with device" - }, - { - "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pPipelineInfo-parameter", - "text": " pPipelineInfo must be a valid pointer to a valid VkPipelineInfoKHR structure" - }, - { - "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pExecutableCount-parameter", - "text": " pExecutableCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPipelineExecutablePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pExecutableCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pExecutableCount VkPipelineExecutablePropertiesKHR structures" - } - ] - }, - "VkPipelineInfoKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-VkPipelineInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR" - }, - { - "vuid": "VUID-VkPipelineInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineInfoKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - } - ] - }, - "VkPipelineExecutablePropertiesKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-VkPipelineExecutablePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR" - }, - { - "vuid": "VUID-VkPipelineExecutablePropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPipelineExecutableStatisticsKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipelineExecutableInfo-03272", - "text": " pipelineExecutableInfo must be enabled" - }, - { - "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03273", - "text": " pipeline member of pExecutableInfo must have been created with device" - }, - { - "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pipeline-03274", - "text": " pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR set in the flags field of VkGraphicsPipelineCreateInfo or VkComputePipelineCreateInfo" - }, - { - "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pExecutableInfo-parameter", - "text": " pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure" - }, - { - "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatisticCount-parameter", - "text": " pStatisticCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPipelineExecutableStatisticsKHR-pStatistics-parameter", - "text": " If the value referenced by pStatisticCount is not 0, and pStatistics is not NULL, pStatistics must be a valid pointer to an array of pStatisticCount VkPipelineExecutableStatisticKHR structures" - } - ] - }, - "VkPipelineExecutableInfoKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-VkPipelineExecutableInfoKHR-executableIndex-03275", - "text": " executableIndex must be less than the number of executables associated with pipeline as returned in the pExecutableCount parameter of vkGetPipelineExecutablePropertiesKHR" - }, - { - "vuid": "VUID-VkPipelineExecutableInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR" - }, - { - "vuid": "VUID-VkPipelineExecutableInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineExecutableInfoKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - } - ] - }, - "VkPipelineExecutableStatisticKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-VkPipelineExecutableStatisticKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR" - }, - { - "vuid": "VUID-VkPipelineExecutableStatisticKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPipelineExecutableInternalRepresentationsKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipelineExecutableInfo-03276", - "text": " pipelineExecutableInfo must be enabled" - }, - { - "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03277", - "text": " pipeline member of pExecutableInfo must have been created with device" - }, - { - "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pipeline-03278", - "text": " pipeline member of pExecutableInfo must have been created with VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR set in the flags field of VkGraphicsPipelineCreateInfo or VkComputePipelineCreateInfo" - }, - { - "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pExecutableInfo-parameter", - "text": " pExecutableInfo must be a valid pointer to a valid VkPipelineExecutableInfoKHR structure" - }, - { - "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentationCount-parameter", - "text": " pInternalRepresentationCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPipelineExecutableInternalRepresentationsKHR-pInternalRepresentations-parameter", - "text": " If the value referenced by pInternalRepresentationCount is not 0, and pInternalRepresentations is not NULL, pInternalRepresentations must be a valid pointer to an array of pInternalRepresentationCount VkPipelineExecutableInternalRepresentationKHR structures" - } - ] - }, - "VkPipelineExecutableInternalRepresentationKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR" - }, - { - "vuid": "VUID-VkPipelineExecutableInternalRepresentationKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetShaderInfoAMD": { - "(VK_AMD_shader_info)": [ - { - "vuid": "VUID-vkGetShaderInfoAMD-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkGetShaderInfoAMD-shaderStage-parameter", - "text": " shaderStage must be a valid VkShaderStageFlagBits value" - }, - { - "vuid": "VUID-vkGetShaderInfoAMD-infoType-parameter", - "text": " infoType must be a valid VkShaderInfoTypeAMD value" - }, - { - "vuid": "VUID-vkGetShaderInfoAMD-pInfoSize-parameter", - "text": " pInfoSize must be a valid pointer to a size_t value" - }, - { - "vuid": "VUID-vkGetShaderInfoAMD-pInfo-parameter", - "text": " If the value referenced by pInfoSize is not 0, and pInfo is not NULL, pInfo must be a valid pointer to an array of pInfoSize bytes" - }, - { - "vuid": "VUID-vkGetShaderInfoAMD-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" - } - ] - }, - "VkPipelineCompilerControlCreateInfoAMD": { - "(VK_AMD_pipeline_compiler_control)": [ - { - "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD" - }, - { - "vuid": "VUID-VkPipelineCompilerControlCreateInfoAMD-compilerControlFlags-zerobitmask", - "text": " compilerControlFlags must be 0" - } - ] - }, - "vkCreateRayTracingPipelinesNV": { - "core": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03415", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03416", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-flags-03816", - "text": " flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-02903", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoNV structures" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesNV-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateRayTracingPipelinesKHR": { - "core": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03415", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and the basePipelineIndex member of that same element is not -1, basePipelineIndex must be less than the index into pCreateInfos that corresponds to that element" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03416", - "text": " If the flags member of any element of pCreateInfos contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, the base pipeline must have been created with the VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT flag set" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-rayTracingPipeline-03586", - "text": " The rayTracingPipeline feature must be enabled" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-flags-03816", - "text": " flags must not contain the VK_PIPELINE_CREATE_DISPATCH_BASE flag" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-02903", - "text": " If pipelineCache was created with VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT, host access to pipelineCache must be externally synchronized" - } - ], - "(VK_EXT_pipeline_creation_cache_control+VK_KHR_deferred_host_operations)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-03587", - "text": " If deferredOperation is not VK_NULL_HANDLE, the flags member of elements of pCreateInfos must not include VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parameter", - "text": " If pipelineCache is not VK_NULL_HANDLE, pipelineCache must be a valid VkPipelineCache handle" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of createInfoCount valid VkRayTracingPipelineCreateInfoKHR structures" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pPipelines-parameter", - "text": " pPipelines must be a valid pointer to an array of createInfoCount VkPipeline handles" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-createInfoCount-arraylength", - "text": " createInfoCount must be greater than 0" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkCreateRayTracingPipelinesKHR-pipelineCache-parent", - "text": " If pipelineCache is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "VkRayTracingPipelineCreateInfoNV": { - "core": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03421", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03422", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03423", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03424", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-03426", - "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03427", - "text": " layout must be consistent with all shaders specified in pStages" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-03428", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stage-03425", - "text": " The stage member of at least one element of pStages must be VK_SHADER_STAGE_RAYGEN_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-maxRecursionDepth-03457", - "text": " maxRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxRecursionDepth" - } - ], - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02904", - "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pipelineCreationCacheControl-02905", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-02957", - "text": " flags must not include both VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV and VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT at the same time" - } - ], - "(VK_KHR_pipeline_library)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03456", - "text": " flags must not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" - } - ], - "(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03458", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03459", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03460", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03461", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03462", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03463", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-03588", - "text": " flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineCreationFeedbackCreateInfoEXT" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pStages-parameter", - "text": " pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-pGroups-parameter", - "text": " pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoNV structures" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-stageCount-arraylength", - "text": " stageCount must be greater than 0" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-groupCount-arraylength", - "text": " groupCount must be greater than 0" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoNV-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkRayTracingPipelineCreateInfoKHR": { - "core": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03421", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is -1, basePipelineHandle must be a valid handle to a ray tracing VkPipeline" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03422", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is VK_NULL_HANDLE, basePipelineIndex must be a valid index into the calling command’s pCreateInfos parameter" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03423", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineIndex is not -1, basePipelineHandle must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03424", - "text": " If flags contains the VK_PIPELINE_CREATE_DERIVATIVE_BIT flag, and basePipelineHandle is not VK_NULL_HANDLE, basePipelineIndex must be -1" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-03426", - "text": " The shader code for the entry points identified by pStages, and the rest of the state identified by this structure must adhere to the pipeline linking rules described in the Shader Interfaces chapter" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03427", - "text": " layout must be consistent with all shaders specified in pStages" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-03428", - "text": " The number of resources in layout accessible to each shader stage that is used by the pipeline must be less than or equal to VkPhysicalDeviceLimits::maxPerStageResources" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-stage-03425", - "text": " If flags does not include VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, the stage member of at least one element of pStages, including those implicitly added by pLibraryInfo, must be VK_SHADER_STAGE_RAYGEN_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-maxPipelineRayRecursionDepth-03589", - "text": " maxPipelineRayRecursionDepth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayRecursionDepth" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03595", - "text": " If the VK_KHR_pipeline_library extension is not enabled, pLibraryInfo and pLibraryInterface must be NULL." - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03470", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the anyHitShader of that element must not be VK_SHADER_UNUSED_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03471", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, for any element of pGroups with a type of VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR or VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR, the closestHitShader of that element must not be VK_SHADER_UNUSED_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03596", - "text": " If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTraversalPrimitiveCulling-03597", - "text": " If the rayTraversalPrimitiveCulling feature is not enabled, flags must not include VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03598", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03599", - "text": " If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay is VK_TRUE and the pShaderGroupCaptureReplayHandle member of any element of pGroups is not NULL, flags must include VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03600", - "text": " If pLibraryInfo is not NULL and its libraryCount is 0, stageCount must not be 0" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03601", - "text": " If pLibraryInfo is not NULL and its libraryCount is 0, groupCount must not be 0" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicStates-03602", - "text": " Any element of the pDynamicStates member of pDynamicState must be VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR" - } - ], - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-02904", - "text": " flags must not include VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" - } - ], - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pipelineCreationCacheControl-02905", - "text": " If the pipelineCreationCacheControl feature is not enabled, flags must not include VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT or VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT" - } - ], - "(VK_KHR_pipeline_library)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03465", - "text": " If flags includes VK_PIPELINE_CREATE_LIBRARY_BIT_KHR, pLibraryInterface must not be NULL" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03590", - "text": " If pLibraryInfo is not NULL and its libraryCount member is greater than 0, its pLibraryInterface member must not be NULL" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraries-03591", - "text": " Each element of the pLibraries member of pLibraryInfo must have been created with the value of maxPipelineRayRecursionDepth equal to that in this pipeline" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03592", - "text": " If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with a layout that is compatible with the layout in this pipeline" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-03593", - "text": " If pLibraryInfo is not NULL, each element of its pLibraries member must have been created with values of the maxPipelineRayPayloadSize and maxPipelineRayHitAttributeSize members of pLibraryInterface equal to those in this pipeline" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-03594", - "text": " If flags includes VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR, each element of the pLibraries member of libraries must have been created with the VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR bit set" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineCreationFeedbackCreateInfoEXT" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkPipelineCreateFlagBits values" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pStages-parameter", - "text": " If stageCount is not 0, pStages must be a valid pointer to an array of stageCount valid VkPipelineShaderStageCreateInfo structures" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pGroups-parameter", - "text": " If groupCount is not 0, pGroups must be a valid pointer to an array of groupCount valid VkRayTracingShaderGroupCreateInfoKHR structures" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInfo-parameter", - "text": " If pLibraryInfo is not NULL, pLibraryInfo must be a valid pointer to a valid VkPipelineLibraryCreateInfoKHR structure" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pLibraryInterface-parameter", - "text": " If pLibraryInterface is not NULL, pLibraryInterface must be a valid pointer to a valid VkRayTracingPipelineInterfaceCreateInfoKHR structure" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-pDynamicState-parameter", - "text": " If pDynamicState is not NULL, pDynamicState must be a valid pointer to a valid VkPipelineDynamicStateCreateInfo structure" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-VkRayTracingPipelineCreateInfoKHR-commonparent", - "text": " Both of basePipelineHandle, and layout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkRayTracingShaderGroupCreateInfoNV": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02413", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then generalShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_NV, VK_SHADER_STAGE_MISS_BIT_NV, or VK_SHADER_STAGE_CALLABLE_BIT_NV" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02414", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_NV" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02415", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_NV" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-02416", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV then intersectionShader must be VK_SHADER_UNUSED_NV" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-closestHitShader-02417", - "text": " closestHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-anyHitShader-02418", - "text": " anyHitShader must be either VK_SHADER_UNUSED_NV or a valid index into VkRayTracingPipelineCreateInfoNV::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_NV" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoNV-type-parameter", - "text": " type must be a valid VkRayTracingShaderGroupTypeKHR value" - } - ] - }, - "VkRayTracingShaderGroupCreateInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03474", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then generalShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_RAYGEN_BIT_KHR, VK_SHADER_STAGE_MISS_BIT_KHR, or VK_SHADER_STAGE_CALLABLE_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03475", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR then closestHitShader, anyHitShader, and intersectionShader must be VK_SHADER_UNUSED_KHR" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03476", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR then intersectionShader must be a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_INTERSECTION_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-03477", - "text": " If type is VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR then intersectionShader must be VK_SHADER_UNUSED_KHR" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-closestHitShader-03478", - "text": " closestHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-anyHitShader-03479", - "text": " anyHitShader must be either VK_SHADER_UNUSED_KHR or a valid index into VkRayTracingPipelineCreateInfoKHR::pStages referring to a shader of VK_SHADER_STAGE_ANY_HIT_BIT_KHR" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03603", - "text": " If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then pShaderGroupCaptureReplayHandle must not be provided if it has not been provided on a previous call to ray tracing pipeline creation" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03604", - "text": " If VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_FALSE then the caller must guarantee that no ray tracing pipeline creation commands with pShaderGroupCaptureReplayHandle provided execute simultaneously with ray tracing pipeline creation commands without pShaderGroupCaptureReplayHandle provided" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkRayTracingShaderGroupCreateInfoKHR-type-parameter", - "text": " type must be a valid VkRayTracingShaderGroupTypeKHR value" - } - ] - }, - "VkRayTracingPipelineInterfaceCreateInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-maxPipelineRayHitAttributeSize-03605", - "text": " maxPipelineRayHitAttributeSize must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayHitAttributeSize" - }, - { - "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkRayTracingPipelineInterfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetRayTracingShaderGroupHandlesKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-04619", - "text": " pipeline must be a ray tracing pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-04050", - "text": " firstGroup must be less than the number of shader groups in pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-firstGroup-02419", - "text": " The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-02420", - "text": " dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleSize {times} groupCount" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-dataSize-arraylength", - "text": " dataSize must be greater than 0" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_pipeline_library)": [ - { - "vuid": "VUID-vkGetRayTracingShaderGroupHandlesKHR-pipeline-03482", - "text": " pipeline must have not been created with VK_PIPELINE_CREATE_LIBRARY_BIT_KHR" - } - ] - }, - "vkGetRayTracingCaptureReplayShaderGroupHandlesKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-04620", - "text": " pipeline must be a ray tracing pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-04051", - "text": " firstGroup must be less than the number of shader groups in pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-firstGroup-03483", - "text": " The sum of firstGroup and groupCount must be less than or equal to the number of shader groups in pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-03484", - "text": " dataSize must be at least VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleCaptureReplaySize {times} groupCount" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-rayTracingPipelineShaderGroupHandleCaptureReplay-03606", - "text": " VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineShaderGroupHandleCaptureReplay must be enabled to call this function" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-03607", - "text": " pipeline must have been created with a flags that included VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-dataSize-arraylength", - "text": " dataSize must be greater than 0" - }, - { - "vuid": "VUID-vkGetRayTracingCaptureReplayShaderGroupHandlesKHR-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCompileDeferredNV": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCompileDeferredNV-pipeline-04621", - "text": " pipeline must be a ray tracing pipeline" - }, - { - "vuid": "VUID-vkCompileDeferredNV-pipeline-02237", - "text": " pipeline must have been created with VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV" - }, - { - "vuid": "VUID-vkCompileDeferredNV-shader-02238", - "text": " shader must not have been called as a deferred compile before" - }, - { - "vuid": "VUID-vkCompileDeferredNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCompileDeferredNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkCompileDeferredNV-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetRayTracingShaderGroupStackSizeKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-04622", - "text": " pipeline must be a ray tracing pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-group-03608", - "text": " The value of group must be less than the number of shader groups in pipeline" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-03609", - "text": " The shader identified by groupShader in group must not be VK_SHADER_UNUSED_KHR" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-groupShader-parameter", - "text": " groupShader must be a valid VkShaderGroupShaderKHR value" - }, - { - "vuid": "VUID-vkGetRayTracingShaderGroupStackSizeKHR-pipeline-parent", - "text": " pipeline must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdSetRayTracingPipelineStackSizeKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-pipelineStackSize-03610", - "text": " pipelineStackSize must be large enough for any dynamic execution through the shaders in the ray tracing pipeline used by a subsequent trace call" - }, - { - "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdSetRayTracingPipelineStackSizeKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkPipelineCreationFeedbackCreateInfoEXT": { - "(VK_EXT_pipeline_creation_feedback)": [ - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02668", - "text": " When chained to VkGraphicsPipelineCreateInfo, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal VkGraphicsPipelineCreateInfo::stageCount" - }, - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02669", - "text": " When chained to VkComputePipelineCreateInfo, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal 1" - }, - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineCreationFeedback-parameter", - "text": " pPipelineCreationFeedback must be a valid pointer to a VkPipelineCreationFeedbackEXT structure" - }, - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pPipelineStageCreationFeedbacks-parameter", - "text": " pPipelineStageCreationFeedbacks must be a valid pointer to an array of pipelineStageCreationFeedbackCount VkPipelineCreationFeedbackEXT structures" - }, - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-arraylength", - "text": " pipelineStageCreationFeedbackCount must be greater than 0" - } - ], - "(VK_EXT_pipeline_creation_feedback)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02670", - "text": " When chained to VkRayTracingPipelineCreateInfoKHR, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal VkRayTracingPipelineCreateInfoKHR::stageCount" - } - ], - "(VK_EXT_pipeline_creation_feedback)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkPipelineCreationFeedbackCreateInfoEXT-pipelineStageCreationFeedbackCount-02969", - "text": " When chained to VkRayTracingPipelineCreateInfoNV, VkPipelineCreationFeedbackEXT::pipelineStageCreationFeedbackCount must equal VkRayTracingPipelineCreateInfoNV::stageCount" - } - ] - }, - "VkAllocationCallbacks": { - "core": [ - { - "vuid": "VUID-VkAllocationCallbacks-pfnAllocation-00632", - "text": " pfnAllocation must be a valid pointer to a valid user-defined PFN_vkAllocationFunction" - }, - { - "vuid": "VUID-VkAllocationCallbacks-pfnReallocation-00633", - "text": " pfnReallocation must be a valid pointer to a valid user-defined PFN_vkReallocationFunction" - }, - { - "vuid": "VUID-VkAllocationCallbacks-pfnFree-00634", - "text": " pfnFree must be a valid pointer to a valid user-defined PFN_vkFreeFunction" - }, - { - "vuid": "VUID-VkAllocationCallbacks-pfnInternalAllocation-00635", - "text": " If either of pfnInternalAllocation or pfnInternalFree is not NULL, both must be valid callbacks" - } - ] - }, - "vkGetPhysicalDeviceMemoryProperties": { - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties-pMemoryProperties-parameter", - "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties structure" - } - ] - }, - "vkGetPhysicalDeviceMemoryProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceMemoryProperties2-pMemoryProperties-parameter", - "text": " pMemoryProperties must be a valid pointer to a VkPhysicalDeviceMemoryProperties2 structure" - } - ] - }, - "VkPhysicalDeviceMemoryProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2" - }, - { - "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPhysicalDeviceMemoryBudgetPropertiesEXT" - }, - { - "vuid": "VUID-VkPhysicalDeviceMemoryProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkPhysicalDeviceMemoryBudgetPropertiesEXT": { - "(VK_EXT_memory_budget)": [ - { - "vuid": "VUID-VkPhysicalDeviceMemoryBudgetPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT" - } - ] - }, - "vkAllocateMemory": { - "core": [ - { - "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01713", - "text": " pAllocateInfo->allocationSize must be less than or equal to VkPhysicalDeviceMemoryProperties::memoryHeaps[memindex].size where memindex = VkPhysicalDeviceMemoryProperties::memoryTypes[pAllocateInfo->memoryTypeIndex].heapIndex as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from" - }, - { - "vuid": "VUID-vkAllocateMemory-pAllocateInfo-01714", - "text": " pAllocateInfo->memoryTypeIndex must be less than VkPhysicalDeviceMemoryProperties::memoryTypeCount as returned by vkGetPhysicalDeviceMemoryProperties for the VkPhysicalDevice that device was created from" - }, - { - "vuid": "VUID-vkAllocateMemory-maxMemoryAllocationCount-04101", - "text": " There must be less than VkPhysicalDeviceLimits::maxMemoryAllocationCount device memory allocations currently allocated on the device." - }, - { - "vuid": "VUID-vkAllocateMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAllocateMemory-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkMemoryAllocateInfo structure" - }, - { - "vuid": "VUID-vkAllocateMemory-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkAllocateMemory-pMemory-parameter", - "text": " pMemory must be a valid pointer to a VkDeviceMemory handle" - } - ], - "(VK_AMD_device_coherent_memory)": [ - { - "vuid": "VUID-vkAllocateMemory-deviceCoherentMemory-02790", - "text": " If the deviceCoherentMemory feature is not enabled, pAllocateInfo->memoryTypeIndex must not identify a memory type supporting VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD" - } - ] - }, - "VkMemoryAllocateInfo": { - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00638", - "text": " allocationSize must be greater than 0" - } - ], - "(VK_KHR_external_memory)+(VK_KHR_dedicated_allocation,VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-00639", - "text": " If the pNext chain includes a VkExportMemoryAllocateInfo structure, and any of the handle types specified in VkExportMemoryAllocateInfo::handleTypes require a dedicated allocation, as reported by vkGetPhysicalDeviceImageFormatProperties2 in VkExternalImageFormatProperties::externalMemoryProperties.externalMemoryFeatures or VkExternalBufferProperties::externalMemoryProperties.externalMemoryFeatures, the pNext chain must include a ifdef::VK_KHR_dedicated_allocation[VkMemoryDedicatedAllocateInfo]" - } - ], - "(VK_KHR_external_memory)+(VK_NV_external_memory)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-00640", - "text": " If the pNext chain includes a VkExportMemoryAllocateInfo structure, it must not include a VkExportMemoryAllocateInfoNV or VkExportMemoryWin32HandleInfoNV structure" - } - ], - "(VK_KHR_external_memory_win32+VK_NV_external_memory_win32)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-00641", - "text": " If the pNext chain includes a VkImportMemoryWin32HandleInfoKHR structure, it must not include a VkImportMemoryWin32HandleInfoNV structure" - } - ], - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01742", - "text": " If the parameters define an import operation, the external handle specified was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created." - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00648", - "text": " If the parameters define an import operation and the external handle is a POSIX file descriptor created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryFdPropertiesKHR" - } - ], - "(VK_KHR_external_memory+VK_KHR_device_group)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-None-00643", - "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the device mask specified by VkMemoryAllocateFlagsInfo must match that specified when the payload being imported was allocated." - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-None-00644", - "text": " If the parameters define an import operation and the external handle specified was created by the Vulkan API, the list of physical devices that comprise the logical device passed to vkAllocateMemory must match the list of physical devices that comprise the logical device on which the payload was originally allocated." - } - ], - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-00645", - "text": " If the parameters define an import operation and the external handle is an NT handle or a global share handle created outside of the Vulkan API, the value of memoryTypeIndex must be one of those returned by vkGetMemoryWin32HandlePropertiesKHR" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01743", - "text": " If the parameters define an import operation, the external handle was created by the Vulkan API, and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR or VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR, then the values of allocationSize and memoryTypeIndex must match those specified when the payload being imported was created." - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-00647", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, allocationSize must match the size specified when creating the Direct3D 12 heap from which the payload was extracted." - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01872", - "text": " If the protected memory feature is not enabled, the VkMemoryAllocateInfo::memoryTypeIndex must not indicate a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - } - ], - "(VK_EXT_external_memory_host)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-01744", - "text": " If the parameters define an import operation and the external handle is a host pointer, the value of memoryTypeIndex must be one of those returned by vkGetMemoryHostPointerPropertiesEXT" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-01745", - "text": " If the parameters define an import operation and the external handle is a host pointer, allocationSize must be an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" - } - ], - "(VK_EXT_external_memory_host)+(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02805", - "text": " If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkDedicatedAllocationMemoryAllocateInfoNV structure with either its image or buffer field set to a value other than VK_NULL_HANDLE" - } - ], - "(VK_EXT_external_memory_host)+(VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02806", - "text": " If the parameters define an import operation and the external handle is a host pointer, the pNext chain must not include a VkMemoryDedicatedAllocateInfo structure with either its image or buffer field set to a value other than VK_NULL_HANDLE" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-allocationSize-02383", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, allocationSize must be the size returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02384", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, and the pNext chain does not include a VkMemoryDedicatedAllocateInfo structure or VkMemoryDedicatedAllocateInfo::image is VK_NULL_HANDLE, the Android hardware buffer must have a AHardwareBuffer_Desc::format of AHARDWAREBUFFER_FORMAT_BLOB and a AHardwareBuffer_Desc::usage that includes AHARDWAREBUFFER_USAGE_GPU_DATA_BUFFER" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-memoryTypeIndex-02385", - "text": " If the parameters define an import operation and the external handle type is VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, memoryTypeIndex must be one of those returned by vkGetAndroidHardwareBufferPropertiesANDROID for the Android hardware buffer" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-01874", - "text": " If the parameters do not define an import operation, and the pNext chain includes a VkExportMemoryAllocateInfo structure with VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID included in its handleTypes member, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image not equal to VK_NULL_HANDLE, then allocationSize must be 0, otherwise allocationSize must be greater than 0" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02386", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the Android hardware buffer’s AHardwareBuffer::usage must include at least one of AHARDWAREBUFFER_USAGE_GPU_FRAMEBUFFER or AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02387", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo with image that is not VK_NULL_HANDLE, the format of image must be VK_FORMAT_UNDEFINED or the format returned by vkGetAndroidHardwareBufferPropertiesANDROID in VkAndroidHardwareBufferFormatPropertiesANDROID::format for the Android hardware buffer" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02388", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, the width, height, and array layer dimensions of image and the Android hardware buffer’s AHardwareBuffer_Desc must be identical" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02389", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage includes AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have a complete mipmap chain" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02586", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, and the Android hardware buffer’s AHardwareBuffer::usage does not include AHARDWAREBUFFER_USAGE_GPU_MIPMAP_COMPLETE, the image must have exactly one mipmap level" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-02390", - "text": " If the parameters define an import operation, the external handle is an Android hardware buffer, and the pNext chain includes a VkMemoryDedicatedAllocateInfo structure with image that is not VK_NULL_HANDLE, each bit set in the usage of image must be listed in AHardwareBuffer Usage Equivalence, and if there is a corresponding AHARDWAREBUFFER_USAGE bit listed that bit must be included in the Android hardware buffer’s AHardwareBuffer_Desc::usage" - } - ], - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03329", - "text": " If VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress is not zero, VkMemoryAllocateFlagsInfo::flags must include VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-flags-03330", - "text": " If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay feature must be enabled" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-flags-03331", - "text": " If VkMemoryAllocateFlagsInfo::flags includes VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT, the bufferDeviceAddress feature must be enabled" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-opaqueCaptureAddress-03333", - "text": " If the parameters define an import operation, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero" - } - ], - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)+(VK_EXT_external_memory_host)": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-03332", - "text": " If the pNext chain includes a VkImportMemoryHostPointerInfoEXT structure, VkMemoryOpaqueCaptureAddressAllocateInfo::opaqueCaptureAddress must be zero" - } - ], - "core": [ - { - "vuid": "VUID-VkMemoryAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationMemoryAllocateInfoNV, VkExportMemoryAllocateInfo, VkExportMemoryAllocateInfoNV, VkExportMemoryWin32HandleInfoKHR, VkExportMemoryWin32HandleInfoNV, VkImportAndroidHardwareBufferInfoANDROID, VkImportMemoryFdInfoKHR, VkImportMemoryHostPointerInfoEXT, VkImportMemoryWin32HandleInfoKHR, VkImportMemoryWin32HandleInfoNV, VkMemoryAllocateFlagsInfo, VkMemoryDedicatedAllocateInfo, VkMemoryOpaqueCaptureAddressAllocateInfo, or VkMemoryPriorityAllocateInfoEXT" - }, - { - "vuid": "VUID-VkMemoryAllocateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkMemoryDedicatedAllocateInfo": { - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01432", - "text": " At least one of image and buffer must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01434", - "text": " If image is not VK_NULL_HANDLE, image must have been created without VK_IMAGE_CREATE_SPARSE_BINDING_BIT set in VkImageCreateInfo::flags" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01436", - "text": " If buffer is not VK_NULL_HANDLE, buffer must have been created without VK_BUFFER_CREATE_SPARSE_BINDING_BIT set in VkBufferCreateInfo::flags" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-commonparent", - "text": " Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01433", - "text": " If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01435", - "text": " If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-02964", - "text": " If image is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-02965", - "text": " If buffer is not VK_NULL_HANDLE and the memory is not an imported Android Hardware Buffer, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01876", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01877", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, and the external handle was created by the Vulkan API, then the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01878", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" - }, - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-buffer-01879", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation with handle type VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkMemoryDedicatedAllocateInfo-image-01797", - "text": " If image is not VK_NULL_HANDLE, image must not have been created with VK_IMAGE_CREATE_DISJOINT_BIT set in VkImageCreateInfo::flags" - } - ] - }, - "VkDedicatedAllocationMemoryAllocateInfoNV": { - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00649", - "text": " At least one of image and buffer must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00650", - "text": " If image is not VK_NULL_HANDLE, the image must have been created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00651", - "text": " If buffer is not VK_NULL_HANDLE, the buffer must have been created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00652", - "text": " If image is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the image" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00653", - "text": " If buffer is not VK_NULL_HANDLE, VkMemoryAllocateInfo::allocationSize must equal the VkMemoryRequirements::size of the buffer" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-commonparent", - "text": " Both of buffer, and image that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_NV_dedicated_allocation)+(VK_KHR_external_memory_win32,VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-image-00654", - "text": " If image is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated image allocation and image must be identical to the image associated with the imported memory" - }, - { - "vuid": "VUID-VkDedicatedAllocationMemoryAllocateInfoNV-buffer-00655", - "text": " If buffer is not VK_NULL_HANDLE and VkMemoryAllocateInfo defines a memory import operation, the memory being imported must also be a dedicated buffer allocation and buffer must be identical to the buffer associated with the imported memory" - } - ] - }, - "VkMemoryPriorityAllocateInfoEXT": { - "(VK_EXT_memory_priority)": [ - { - "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-priority-02602", - "text": " priority must be between 0 and 1, inclusive" - }, - { - "vuid": "VUID-VkMemoryPriorityAllocateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT" - } - ] - }, - "VkExportMemoryAllocateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-00656", - "text": " The bits in handleTypes must be supported and compatible, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" - }, - { - "vuid": "VUID-VkExportMemoryAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO" - }, - { - "vuid": "VUID-VkExportMemoryAllocateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" - } - ] - }, - "VkExportMemoryWin32HandleInfoKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-handleTypes-00657", - "text": " If VkExportMemoryAllocateInfo::handleTypes does not include VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, a VkExportMemoryWin32HandleInfoKHR structure must not be included in the pNext chain of VkMemoryAllocateInfo" - }, - { - "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkExportMemoryWin32HandleInfoKHR-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" - } - ] - }, - "VkImportMemoryWin32HandleInfoKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00658", - "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-00659", - "text": " The memory from which handle was exported, or the memory named by name must have been created on the same underlying physical device as device" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00660", - "text": " If handleType is not 0, it must be defined as an NT handle or a global share handle" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01439", - "text": " If handleType is not VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, or VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, name must be NULL" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-01440", - "text": " If handleType is not 0 and handle is NULL, name must name a valid memory resource of the type specified by handleType" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-00661", - "text": " If handleType is not 0 and name is NULL, handle must be a valid handle of the type specified by handleType" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01441", - "text": " if handle is not NULL, name must be NULL" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handle-01518", - "text": " If handle is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-name-01519", - "text": " If name is not NULL, it must obey any requirements listed for handleType in external memory handle types compatibility" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "vkGetMemoryWin32HandleKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-vkGetMemoryWin32HandleKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleKHR-pGetWin32HandleInfo-parameter", - "text": " pGetWin32HandleInfo must be a valid pointer to a valid VkMemoryGetWin32HandleInfoKHR structure" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleKHR-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" - } - ] - }, - "VkMemoryGetWin32HandleInfoKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00662", - "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" - }, - { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00663", - "text": " If handleType is defined as an NT handle, vkGetMemoryWin32HandleKHR must be called no more than once for each valid unique combination of memory and handleType" - }, - { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-00664", - "text": " handleType must be defined as an NT handle or a global share handle" - }, - { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR" - }, - { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-VkMemoryGetWin32HandleInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "vkGetMemoryWin32HandlePropertiesKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handle-00665", - "text": " handle must be an external memory handle created outside of the Vulkan API" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-00666", - "text": " handleType must not be one of the handle types defined as opaque" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandlePropertiesKHR-pMemoryWin32HandleProperties-parameter", - "text": " pMemoryWin32HandleProperties must be a valid pointer to a VkMemoryWin32HandlePropertiesKHR structure" - } - ] - }, - "VkMemoryWin32HandlePropertiesKHR": { - "(VK_KHR_external_memory_win32)": [ - { - "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR" - }, - { - "vuid": "VUID-VkMemoryWin32HandlePropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkImportMemoryFdInfoKHR": { - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00667", - "text": " If handleType is not 0, it must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" - }, - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-00668", - "text": " The memory from which fd was exported must have been created on the same underlying physical device as device" - }, - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00669", - "text": " If handleType is not 0, it must be defined as a POSIX file descriptor handle" - }, - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-00670", - "text": " If handleType is not 0, fd must be a valid handle of the type specified by handleType" - }, - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01746", - "text": " The memory represented by fd must have been created from a physical device and driver that is compatible with device and handleType, as described in External memory handle types compatibility" - }, - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-fd-01520", - "text": " fd must obey any requirements listed for handleType in external memory handle types compatibility" - }, - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR" - }, - { - "vuid": "VUID-VkImportMemoryFdInfoKHR-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "vkGetMemoryFdKHR": { - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-vkGetMemoryFdKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryFdKHR-pGetFdInfo-parameter", - "text": " pGetFdInfo must be a valid pointer to a valid VkMemoryGetFdInfoKHR structure" - }, - { - "vuid": "VUID-vkGetMemoryFdKHR-pFd-parameter", - "text": " pFd must be a valid pointer to an int value" - } - ] - }, - "VkMemoryGetFdInfoKHR": { - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00671", - "text": " handleType must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" - }, - { - "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-00672", - "text": " handleType must be defined as a POSIX file descriptor handle" - }, - { - "vuid": "VUID-VkMemoryGetFdInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR" - }, - { - "vuid": "VUID-VkMemoryGetFdInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkMemoryGetFdInfoKHR-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-VkMemoryGetFdInfoKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "vkGetMemoryFdPropertiesKHR": { - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-fd-00673", - "text": " fd must be an external memory handle created outside of the Vulkan API" - }, - { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-00674", - "text": " handleType must not be VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR" - }, - { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - }, - { - "vuid": "VUID-vkGetMemoryFdPropertiesKHR-pMemoryFdProperties-parameter", - "text": " pMemoryFdProperties must be a valid pointer to a VkMemoryFdPropertiesKHR structure" - } - ] - }, - "VkMemoryFdPropertiesKHR": { - "(VK_KHR_external_memory_fd)": [ - { - "vuid": "VUID-VkMemoryFdPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR" - }, - { - "vuid": "VUID-VkMemoryFdPropertiesKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkImportMemoryHostPointerInfoEXT": { - "(VK_EXT_external_memory_host)": [ - { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01747", - "text": " If handleType is not 0, it must be supported for import, as reported in VkExternalMemoryProperties" - }, - { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01748", - "text": " If handleType is not 0, it must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" - }, - { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-pHostPointer-01749", - "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" - }, - { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01750", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" - }, - { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-01751", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to allocationSize number of bytes of host mapped foreign memory, where allocationSize is the member of the VkMemoryAllocateInfo structure this structure is chained to" - }, - { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT" - }, - { - "vuid": "VUID-VkImportMemoryHostPointerInfoEXT-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "vkGetMemoryHostPointerPropertiesEXT": { - "(VK_EXT_external_memory_host)": [ - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01752", - "text": " handleType must be VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT or VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT" - }, - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pHostPointer-01753", - "text": " pHostPointer must be a pointer aligned to an integer multiple of VkPhysicalDeviceExternalMemoryHostPropertiesEXT::minImportedHostPointerAlignment" - }, - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01754", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT, pHostPointer must be a pointer to host memory" - }, - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-01755", - "text": " If handleType is VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT, pHostPointer must be a pointer to host mapped foreign memory" - }, - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - }, - { - "vuid": "VUID-vkGetMemoryHostPointerPropertiesEXT-pMemoryHostPointerProperties-parameter", - "text": " pMemoryHostPointerProperties must be a valid pointer to a VkMemoryHostPointerPropertiesEXT structure" - } - ] - }, - "VkMemoryHostPointerPropertiesEXT": { - "(VK_EXT_external_memory_host)": [ - { - "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT" - }, - { - "vuid": "VUID-VkMemoryHostPointerPropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkImportAndroidHardwareBufferInfoANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01880", - "text": " If buffer is not NULL, Android hardware buffers must be supported for import, as reported by VkExternalImageFormatProperties or VkExternalBufferProperties" - }, - { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-01881", - "text": " If buffer is not NULL, it must be a valid Android hardware buffer object with AHardwareBuffer_Desc::usage compatible with Vulkan as described in Android Hardware Buffers" - }, - { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" - }, - { - "vuid": "VUID-VkImportAndroidHardwareBufferInfoANDROID-buffer-parameter", - "text": " buffer must be a valid pointer to an AHardwareBuffer value" - } - ] - }, - "vkGetMemoryAndroidHardwareBufferANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkMemoryGetAndroidHardwareBufferInfoANDROID structure" - }, - { - "vuid": "VUID-vkGetMemoryAndroidHardwareBufferANDROID-pBuffer-parameter", - "text": " pBuffer must be a valid pointer to a valid pointer to an AHardwareBuffer value" - } - ] - }, - "VkMemoryGetAndroidHardwareBufferInfoANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-handleTypes-01882", - "text": " VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must have been included in VkExportMemoryAllocateInfo::handleTypes when memory was created" - }, - { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-01883", - "text": " If the pNext chain of the VkMemoryAllocateInfo used to allocate memory included a VkMemoryDedicatedAllocateInfo with non-NULL image member, then that image must already be bound to memory" - }, - { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID" - }, - { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkMemoryGetAndroidHardwareBufferInfoANDROID-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - } - ] - }, - "vkGetAndroidHardwareBufferPropertiesANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-01884", - "text": " buffer must be a valid Android hardware buffer object with at least one of the AHARDWAREBUFFER_USAGE_GPU_* flags in its AHardwareBuffer_Desc::usage" - }, - { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-buffer-parameter", - "text": " buffer must be a valid pointer to a valid AHardwareBuffer value" - }, - { - "vuid": "VUID-vkGetAndroidHardwareBufferPropertiesANDROID-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkAndroidHardwareBufferPropertiesANDROID structure" - } - ] - }, - "VkAndroidHardwareBufferPropertiesANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID" - }, - { - "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkAndroidHardwareBufferFormatPropertiesANDROID" - }, - { - "vuid": "VUID-VkAndroidHardwareBufferPropertiesANDROID-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkAndroidHardwareBufferFormatPropertiesANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkAndroidHardwareBufferFormatPropertiesANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID" - } - ] - }, - "VkExportMemoryAllocateInfoNV": { - "(VK_NV_external_memory)": [ - { - "vuid": "VUID-VkExportMemoryAllocateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV" - }, - { - "vuid": "VUID-VkExportMemoryAllocateInfoNV-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" - } - ] - }, - "VkExportMemoryWin32HandleInfoNV": { - "(VK_NV_external_memory_win32)": [ - { - "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV" - }, - { - "vuid": "VUID-VkExportMemoryWin32HandleInfoNV-pAttributes-parameter", - "text": " If pAttributes is not NULL, pAttributes must be a valid pointer to a valid SECURITY_ATTRIBUTES value" - } - ] - }, - "VkImportMemoryWin32HandleInfoNV": { - "(VK_NV_external_memory_win32)": [ - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-01327", - "text": " handleType must not have more than one bit set" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handle-01328", - "text": " handle must be a valid handle to memory, obtained as specified by handleType" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV" - }, - { - "vuid": "VUID-VkImportMemoryWin32HandleInfoNV-handleType-parameter", - "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" - } - ] - }, - "vkGetMemoryWin32HandleNV": { - "(VK_NV_external_memory_win32)": [ - { - "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-01326", - "text": " handleType must be a flag specified in VkExportMemoryAllocateInfoNV::handleTypes when allocating memory" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-parameter", - "text": " handleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleNV-handleType-requiredbitmask", - "text": " handleType must not be 0" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleNV-pHandle-parameter", - "text": " pHandle must be a valid pointer to a HANDLE value" - }, - { - "vuid": "VUID-vkGetMemoryWin32HandleNV-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ] - }, - "VkMemoryAllocateFlagsInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00675", - "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must be a valid device mask" - }, - { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-deviceMask-00676", - "text": " If VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT is set, deviceMask must not be zero" - }, - { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO" - }, - { - "vuid": "VUID-VkMemoryAllocateFlagsInfo-flags-parameter", - "text": " flags must be a valid combination of VkMemoryAllocateFlagBits values" - } - ] - }, - "VkMemoryOpaqueCaptureAddressAllocateInfo": { - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkMemoryOpaqueCaptureAddressAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO" - } - ] - }, - "vkFreeMemory": { - "core": [ - { - "vuid": "VUID-vkFreeMemory-memory-00677", - "text": " All submitted commands that refer to memory (via images or buffers) must have completed execution" - }, - { - "vuid": "VUID-vkFreeMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkFreeMemory-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-vkFreeMemory-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkFreeMemory-memory-parent", - "text": " If memory is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkMapMemory": { - "core": [ - { - "vuid": "VUID-vkMapMemory-memory-00678", - "text": " memory must not be currently host mapped" - }, - { - "vuid": "VUID-vkMapMemory-offset-00679", - "text": " offset must be less than the size of memory" - }, - { - "vuid": "VUID-vkMapMemory-size-00680", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" - }, - { - "vuid": "VUID-vkMapMemory-size-00681", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of the memory minus offset" - }, - { - "vuid": "VUID-vkMapMemory-memory-00682", - "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT" - }, - { - "vuid": "VUID-vkMapMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkMapMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-vkMapMemory-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-vkMapMemory-ppData-parameter", - "text": " ppData must be a valid pointer to a pointer value" - }, - { - "vuid": "VUID-vkMapMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ], - "(VK_KHR_device_group)": [ - { - "vuid": "VUID-vkMapMemory-memory-00683", - "text": " memory must not have been allocated with multiple instances" - } - ] - }, - "vkFlushMappedMemoryRanges": { - "core": [ - { - "vuid": "VUID-vkFlushMappedMemoryRanges-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkFlushMappedMemoryRanges-pMemoryRanges-parameter", - "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" - }, - { - "vuid": "VUID-vkFlushMappedMemoryRanges-memoryRangeCount-arraylength", - "text": " memoryRangeCount must be greater than 0" - } - ] - }, - "vkInvalidateMappedMemoryRanges": { - "core": [ - { - "vuid": "VUID-vkInvalidateMappedMemoryRanges-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkInvalidateMappedMemoryRanges-pMemoryRanges-parameter", - "text": " pMemoryRanges must be a valid pointer to an array of memoryRangeCount valid VkMappedMemoryRange structures" - }, - { - "vuid": "VUID-vkInvalidateMappedMemoryRanges-memoryRangeCount-arraylength", - "text": " memoryRangeCount must be greater than 0" - } - ] - }, - "VkMappedMemoryRange": { - "core": [ - { - "vuid": "VUID-VkMappedMemoryRange-memory-00684", - "text": " memory must be currently host mapped" - }, - { - "vuid": "VUID-VkMappedMemoryRange-size-00685", - "text": " If size is not equal to VK_WHOLE_SIZE, offset and size must specify a range contained within the currently mapped range of memory" - }, - { - "vuid": "VUID-VkMappedMemoryRange-size-00686", - "text": " If size is equal to VK_WHOLE_SIZE, offset must be within the currently mapped range of memory" - }, - { - "vuid": "VUID-VkMappedMemoryRange-size-01389", - "text": " If size is equal to VK_WHOLE_SIZE, the end of the current mapping of memory must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize bytes from the beginning of the memory object" - }, - { - "vuid": "VUID-VkMappedMemoryRange-offset-00687", - "text": " offset must be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize" - }, - { - "vuid": "VUID-VkMappedMemoryRange-size-01390", - "text": " If size is not equal to VK_WHOLE_SIZE, size must either be a multiple of VkPhysicalDeviceLimits::nonCoherentAtomSize, or offset plus size must equal the size of memory" - }, - { - "vuid": "VUID-VkMappedMemoryRange-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE" - }, - { - "vuid": "VUID-VkMappedMemoryRange-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkMappedMemoryRange-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - } - ] - }, - "vkUnmapMemory": { - "core": [ - { - "vuid": "VUID-vkUnmapMemory-memory-00689", - "text": " memory must be currently host mapped" - }, - { - "vuid": "VUID-vkUnmapMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkUnmapMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-vkUnmapMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetDeviceMemoryCommitment": { - "core": [ - { - "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-00690", - "text": " memory must have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT" - }, - { - "vuid": "VUID-vkGetDeviceMemoryCommitment-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-vkGetDeviceMemoryCommitment-pCommittedMemoryInBytes-parameter", - "text": " pCommittedMemoryInBytes must be a valid pointer to a VkDeviceSize value" - }, - { - "vuid": "VUID-vkGetDeviceMemoryCommitment-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetDeviceGroupPeerMemoryFeatures": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-heapIndex-00691", - "text": " heapIndex must be less than memoryHeapCount" - }, - { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00692", - "text": " localDeviceIndex must be a valid device index" - }, - { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-remoteDeviceIndex-00693", - "text": " remoteDeviceIndex must be a valid device index" - }, - { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-localDeviceIndex-00694", - "text": " localDeviceIndex must not equal remoteDeviceIndex" - }, - { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceGroupPeerMemoryFeatures-pPeerMemoryFeatures-parameter", - "text": " pPeerMemoryFeatures must be a valid pointer to a VkPeerMemoryFeatureFlags value" - } - ] - }, - "vkGetDeviceMemoryOpaqueCaptureAddress": { - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-None-03334", - "text": " The bufferDeviceAddress feature must be enabled" - }, - { - "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-03335", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" - }, - { - "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceMemoryOpaqueCaptureAddress-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkDeviceMemoryOpaqueCaptureAddressInfo structure" - } - ] - }, - "VkDeviceMemoryOpaqueCaptureAddressInfo": { - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-03336", - "text": " memory must have been allocated with VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT" - }, - { - "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO" - }, - { - "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDeviceMemoryOpaqueCaptureAddressInfo-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - } - ] - }, - "vkCreateBuffer": { - "core": [ - { - "vuid": "VUID-vkCreateBuffer-flags-00911", - "text": " If the flags member of pCreateInfo includes VK_BUFFER_CREATE_SPARSE_BINDING_BIT, creating this VkBuffer must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" - }, - { - "vuid": "VUID-vkCreateBuffer-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateBuffer-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateBuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateBuffer-pBuffer-parameter", - "text": " pBuffer must be a valid pointer to a VkBuffer handle" - } - ] - }, - "VkBufferCreateInfo": { - "core": [ - { - "vuid": "VUID-VkBufferCreateInfo-size-00912", - "text": " size must be greater than 0" - }, - { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-00913", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" - }, - { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-00914", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" - }, - { - "vuid": "VUID-VkBufferCreateInfo-flags-00915", - "text": " If the sparse bindings feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" - }, - { - "vuid": "VUID-VkBufferCreateInfo-flags-00916", - "text": " If the sparse buffer residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkBufferCreateInfo-flags-00917", - "text": " If the sparse aliased residency feature is not enabled, flags must not contain VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" - }, - { - "vuid": "VUID-VkBufferCreateInfo-flags-00918", - "text": " If flags contains VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_BUFFER_CREATE_SPARSE_BINDING_BIT" - }, - { - "vuid": "VUID-VkBufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO" - }, - { - "vuid": "VUID-VkBufferCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBufferDeviceAddressCreateInfoEXT, VkBufferOpaqueCaptureAddressCreateInfo, VkDedicatedAllocationBufferCreateInfoNV, or VkExternalMemoryBufferCreateInfo" - }, - { - "vuid": "VUID-VkBufferCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkBufferCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkBufferCreateFlagBits values" - }, - { - "vuid": "VUID-VkBufferCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkBufferUsageFlagBits values" - }, - { - "vuid": "VUID-VkBufferCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" - } - ], - "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-01391", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkBufferCreateInfo-sharingMode-01419", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkBufferCreateInfo-pNext-00920", - "text": " If the pNext chain includes a VkExternalMemoryBufferCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalBufferProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalBufferProperties with pExternalBufferInfo->handleType equal to any one of the handle types specified in VkExternalMemoryBufferCreateInfo::handleTypes" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkBufferCreateInfo-flags-01887", - "text": " If the protected memory feature is not enabled, flags must not contain VK_BUFFER_CREATE_PROTECTED_BIT" - }, - { - "vuid": "VUID-VkBufferCreateInfo-None-01888", - "text": " If any of the bits VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT are set, VK_BUFFER_CREATE_PROTECTED_BIT must not also be set" - } - ], - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkBufferCreateInfo-pNext-01571", - "text": " If the pNext chain includes a VkDedicatedAllocationBufferCreateInfoNV structure, and the dedicatedAllocation member of the chained structure is VK_TRUE, then flags must not include VK_BUFFER_CREATE_SPARSE_BINDING_BIT, VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT, or VK_BUFFER_CREATE_SPARSE_ALIASED_BIT" - } - ], - "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_EXT_buffer_device_address)": [ - { - "vuid": "VUID-VkBufferCreateInfo-deviceAddress-02604", - "text": " If VkBufferDeviceAddressCreateInfoEXT::deviceAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" - } - ], - "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)+(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkBufferCreateInfo-opaqueCaptureAddress-03337", - "text": " If VkBufferOpaqueCaptureAddressCreateInfo::opaqueCaptureAddress is not zero, flags must include VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT" - } - ], - "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkBufferCreateInfo-flags-03338", - "text": " If flags includes VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT, the bufferDeviceAddressCaptureReplay or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressCaptureReplay feature must be enabled" - } - ] - }, - "VkDedicatedAllocationBufferCreateInfoNV": { - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkDedicatedAllocationBufferCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV" - } - ] - }, - "VkExternalMemoryBufferCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkExternalMemoryBufferCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO" - }, - { - "vuid": "VUID-VkExternalMemoryBufferCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" - } - ] - }, - "VkBufferOpaqueCaptureAddressCreateInfo": { - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkBufferOpaqueCaptureAddressCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO" - } - ] - }, - "VkBufferDeviceAddressCreateInfoEXT": { - "(VK_EXT_buffer_device_address)": [ - { - "vuid": "VUID-VkBufferDeviceAddressCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT" - } - ] - }, - "vkDestroyBuffer": { - "core": [ - { - "vuid": "VUID-vkDestroyBuffer-buffer-00922", - "text": " All submitted commands that refer to buffer, either directly or via a VkBufferView, must have completed execution" - }, - { - "vuid": "VUID-vkDestroyBuffer-buffer-00923", - "text": " If VkAllocationCallbacks were provided when buffer was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyBuffer-buffer-00924", - "text": " If no VkAllocationCallbacks were provided when buffer was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyBuffer-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyBuffer-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkDestroyBuffer-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyBuffer-buffer-parent", - "text": " If buffer is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateBufferView": { - "core": [ - { - "vuid": "VUID-vkCreateBufferView-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateBufferView-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkBufferViewCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateBufferView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateBufferView-pView-parameter", - "text": " pView must be a valid pointer to a VkBufferView handle" - } - ] - }, - "VkBufferViewCreateInfo": { - "core": [ - { - "vuid": "VUID-VkBufferViewCreateInfo-offset-00925", - "text": " offset must be less than the size of buffer" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-range-00928", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-range-00929", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be an integer multiple of the texel block size of format" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-range-00930", - "text": " If range is not equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}range / (texel block size){rfloor} {times} (texels per block)) where texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-offset-00931", - "text": " If range is not equal to VK_WHOLE_SIZE, the sum of offset and range must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-range-04059", - "text": " If range is equal to VK_WHOLE_SIZE, the number of texel buffer elements given by ({lfloor}(size - offset) / (texel block size){rfloor} {times} (texels per block)) where size is the size of buffer, and texel block size and texels per block are as defined in the Compatible Formats table for format, must be less than or equal to VkPhysicalDeviceLimits::maxTexelBufferElements" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00932", - "text": " buffer must have been created with a usage value containing at least one of VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT or VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00933", - "text": " If buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, format must be supported for uniform texel buffers, as specified by the VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00934", - "text": " If buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, format must be supported for storage texel buffers, as specified by the VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-00935", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" - } - ], - "!(VK_EXT_texel_buffer_alignment)": [ - { - "vuid": "VUID-VkBufferViewCreateInfo-offset-00926", - "text": " offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment" - } - ], - "(VK_EXT_texel_buffer_alignment)": [ - { - "vuid": "VUID-VkBufferViewCreateInfo-offset-02749", - "text": " If the texelBufferAlignment feature is not enabled, offset must be a multiple of VkPhysicalDeviceLimits::minTexelBufferOffsetAlignment" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-02750", - "text": " If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::storageTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::storageTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead" - }, - { - "vuid": "VUID-VkBufferViewCreateInfo-buffer-02751", - "text": " If the texelBufferAlignment feature is enabled and if buffer was created with usage containing VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT, offset must be a multiple of the lesser of VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::uniformTexelBufferOffsetAlignmentBytes or, if VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT::uniformTexelBufferOffsetSingleTexelAlignment is VK_TRUE, the size of a texel of the requested format. If the size of a texel is a multiple of three bytes, then the size of a single component of format is used instead" - } - ] - }, - "vkDestroyBufferView": { - "core": [ - { - "vuid": "VUID-vkDestroyBufferView-bufferView-00936", - "text": " All submitted commands that refer to bufferView must have completed execution" - }, - { - "vuid": "VUID-vkDestroyBufferView-bufferView-00937", - "text": " If VkAllocationCallbacks were provided when bufferView was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyBufferView-bufferView-00938", - "text": " If no VkAllocationCallbacks were provided when bufferView was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyBufferView-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyBufferView-bufferView-parameter", - "text": " If bufferView is not VK_NULL_HANDLE, bufferView must be a valid VkBufferView handle" - }, - { - "vuid": "VUID-vkDestroyBufferView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyBufferView-bufferView-parent", - "text": " If bufferView is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateImage": { - "core": [ - { - "vuid": "VUID-vkCreateImage-flags-00939", - "text": " If the flags member of pCreateInfo includes VK_IMAGE_CREATE_SPARSE_BINDING_BIT, creating this VkImage must not cause the total required sparse memory for all currently valid sparse resources on the device to exceed VkPhysicalDeviceLimits::sparseAddressSpaceSize" - }, - { - "vuid": "VUID-vkCreateImage-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateImage-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateImage-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateImage-pImage-parameter", - "text": " pImage must be a valid pointer to a VkImage handle" - } - ] - }, - "VkImageCreateInfo": { - "core": [ - { - "vuid": "VUID-VkImageCreateInfo-imageCreateMaxMipLevels-02251", - "text": " Each of the following values (as described in Image Creation Limits) must not be undefined imageCreateMaxMipLevels, imageCreateMaxArrayLayers, imageCreateMaxExtent, and imageCreateSampleCounts" - }, - { - "vuid": "VUID-VkImageCreateInfo-sharingMode-00941", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" - }, - { - "vuid": "VUID-VkImageCreateInfo-sharingMode-00942", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" - }, - { - "vuid": "VUID-VkImageCreateInfo-extent-00944", - "text": " extent.width must be greater than 0" - }, - { - "vuid": "VUID-VkImageCreateInfo-extent-00945", - "text": " extent.height must be greater than 0" - }, - { - "vuid": "VUID-VkImageCreateInfo-extent-00946", - "text": " extent.depth must be greater than 0" - }, - { - "vuid": "VUID-VkImageCreateInfo-mipLevels-00947", - "text": " mipLevels must be greater than 0" - }, - { - "vuid": "VUID-VkImageCreateInfo-arrayLayers-00948", - "text": " arrayLayers must be greater than 0" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-00949", - "text": " If flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-VkImageCreateInfo-extent-02252", - "text": " extent.width must be less than or equal to imageCreateMaxExtent.width (as defined in Image Creation Limits)" - }, - { - "vuid": "VUID-VkImageCreateInfo-extent-02253", - "text": " extent.height must be less than or equal to imageCreateMaxExtent.height (as defined in Image Creation Limits)" - }, - { - "vuid": "VUID-VkImageCreateInfo-extent-02254", - "text": " extent.depth must be less than or equal to imageCreateMaxExtent.depth (as defined in Image Creation Limits)" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00954", - "text": " If imageType is VK_IMAGE_TYPE_2D and flags contains VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, extent.width and extent.height must be equal and arrayLayers must be greater than or equal to 6" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00956", - "text": " If imageType is VK_IMAGE_TYPE_1D, both extent.height and extent.depth must be 1" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00957", - "text": " If imageType is VK_IMAGE_TYPE_2D, extent.depth must be 1" - }, - { - "vuid": "VUID-VkImageCreateInfo-mipLevels-00958", - "text": " mipLevels must be less than or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth" - }, - { - "vuid": "VUID-VkImageCreateInfo-mipLevels-02255", - "text": " mipLevels must be less than or equal to imageCreateMaxMipLevels (as defined in Image Creation Limits)" - }, - { - "vuid": "VUID-VkImageCreateInfo-arrayLayers-02256", - "text": " arrayLayers must be less than or equal to imageCreateMaxArrayLayers (as defined in Image Creation Limits)" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00961", - "text": " If imageType is VK_IMAGE_TYPE_3D, arrayLayers must be 1" - }, - { - "vuid": "VUID-VkImageCreateInfo-samples-02257", - "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, then imageType must be VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT, mipLevels must be equal to 1, and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false," - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-00963", - "text": " If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, then bits other than VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT must not be set" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-00964", - "text": " If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-00965", - "text": " If usage includes VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-00966", - "text": " If usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, usage must also contain at least one of VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-samples-02258", - "text": " samples must be a bit value that is set in imageCreateSampleCounts (as defined in Image Creation Limits)" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-00968", - "text": " If the multisampled storage images feature is not enabled, and usage contains VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-00969", - "text": " If the sparse bindings feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-01924", - "text": " If the sparse aliased residency feature is not enabled, flags must not contain VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-tiling-04121", - "text": " If tiling is VK_IMAGE_TILING_LINEAR, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00970", - "text": " If imageType is VK_IMAGE_TYPE_1D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00971", - "text": " If the sparse residency for 2D images feature is not enabled, and imageType is VK_IMAGE_TYPE_2D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00972", - "text": " If the sparse residency for 3D images feature is not enabled, and imageType is VK_IMAGE_TYPE_3D, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00973", - "text": " If the sparse residency for images with 2 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_2_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00974", - "text": " If the sparse residency for images with 4 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_4_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00975", - "text": " If the sparse residency for images with 8 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_8_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-00976", - "text": " If the sparse residency for images with 16 samples feature is not enabled, imageType is VK_IMAGE_TYPE_2D, and samples is VK_SAMPLE_COUNT_16_BIT, flags must not contain VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-00987", - "text": " If flags contains VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT, it must also contain VK_IMAGE_CREATE_SPARSE_BINDING_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-None-01925", - "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT must not also be set" - }, - { - "vuid": "VUID-VkImageCreateInfo-initialLayout-00993", - "text": " initialLayout must be VK_IMAGE_LAYOUT_UNDEFINED or VK_IMAGE_LAYOUT_PREINITIALIZED" - }, - { - "vuid": "VUID-VkImageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDedicatedAllocationImageCreateInfoNV, VkExternalFormatANDROID, VkExternalMemoryImageCreateInfo, VkExternalMemoryImageCreateInfoNV, VkImageDrmFormatModifierExplicitCreateInfoEXT, VkImageDrmFormatModifierListCreateInfoEXT, VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, or VkImageSwapchainCreateInfoKHR" - }, - { - "vuid": "VUID-VkImageCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageType-parameter", - "text": " imageType must be a valid VkImageType value" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkImageCreateInfo-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-VkImageCreateInfo-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-VkImageCreateInfo-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" - }, - { - "vuid": "VUID-VkImageCreateInfo-initialLayout-parameter", - "text": " initialLayout must be a valid VkImageLayout value" - } - ], - "!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkImageCreateInfo-sharingMode-01392", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkImageCreateInfo-sharingMode-01420", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" - } - ], - "!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImageCreateInfo-format-00943", - "text": " format must not be VK_FORMAT_UNDEFINED" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-01974", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure, and its externalFormat member is non-zero the format must be VK_FORMAT_UNDEFINED" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-01975", - "text": " If the pNext chain does not include a VkExternalFormatANDROID structure, or does and its externalFormat member is 0, the format must not be VK_FORMAT_UNDEFINED" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-02393", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, imageType must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-02394", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure whose handleTypes member includes VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID, mipLevels must either be 1 or equal to the number of levels in the complete mipmap chain based on extent.width, extent.height, and extent.depth" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-02396", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, flags must not include VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-02397", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, usage must not include any usages except VK_IMAGE_USAGE_SAMPLED_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-02398", - "text": " If the pNext chain includes a VkExternalFormatANDROID structure whose externalFormat member is not 0, tiling must be VK_IMAGE_TILING_OPTIMAL" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-02557", - "text": " If flags contains VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-VkImageCreateInfo-samples-02558", - "text": " If samples is not VK_SAMPLE_COUNT_1_BIT, usage must not contain VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-02559", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.width must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferWidth}{minFragmentDensityTexelSize_{width}}}\\right\\rceil\\)" - }, - { - "vuid": "VUID-VkImageCreateInfo-usage-02560", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, extent.height must be less than or equal to \\(\\left\\lceil{\\frac{maxFramebufferHeight}{minFragmentDensityTexelSize_{height}}}\\right\\rceil\\)" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02565", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, tiling must be VK_IMAGE_TILING_OPTIMAL" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02566", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, imageType must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02567", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, flags must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02568", - "text": " If flags contains VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT, mipLevels must be 1" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-00950", - "text": " If flags contains VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, imageType must be VK_IMAGE_TYPE_3D" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-01890", - "text": " If the protected memory feature is not enabled, flags must not contain VK_IMAGE_CREATE_PROTECTED_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-None-01891", - "text": " If any of the bits VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT are set, VK_IMAGE_CREATE_PROTECTED_BIT must not also be set" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_NV_external_memory)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-00988", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, it must not contain a VkExternalMemoryImageCreateInfo structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-00990", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfo structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatProperties::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceImageFormatProperties2 with format, imageType, tiling, usage, and flags equal to those in this structure, and with a VkPhysicalDeviceExternalImageFormatInfo structure included in the pNext chain, with a handleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfo::handleTypes" - } - ], - "(VK_NV_external_memory+VK_NV_external_memory_capabilities)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-00991", - "text": " If the pNext chain includes a VkExternalMemoryImageCreateInfoNV structure, its handleTypes member must only contain bits that are also in VkExternalImageFormatPropertiesNV::externalMemoryProperties.compatibleHandleTypes, as returned by vkGetPhysicalDeviceExternalImageFormatPropertiesNV with format, imageType, tiling, usage, and flags equal to those in this structure, and with externalHandleType equal to any one of the handle types specified in VkExternalMemoryImageCreateInfoNV::handleTypes" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkImageCreateInfo-physicalDeviceCount-01421", - "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02259", - "text": " If flags contains VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, then mipLevels must be one, arrayLayers must be one, imageType must be VK_IMAGE_TYPE_2D. and imageCreateMaybeLinear (as defined in Image Creation Limits) must be false" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-01572", - "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then format must be a block-compressed image format, an ETC compressed image format, or an ASTC compressed image format" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-01573", - "text": " If flags contains VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, then flags must also contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory,VK_NV_external_memory)": [ - { - "vuid": "VUID-VkImageCreateInfo-pNext-01443", - "text": " If the pNext chain includes a ifdef::VK_VERSION_1_1,VK_KHR_external_memory[VkExternalMemoryImageCreateInfo]" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageCreateInfo-format-02561", - "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, then mipLevels must be 1" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-02562", - "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, samples must be VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-02563", - "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, imageType must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-VkImageCreateInfo-imageCreateFormatFeatures-02260", - "text": " If format is a multi-planar format, and if imageCreateFormatFeatures (as defined in Image Creation Limits) does not contain VK_FORMAT_FEATURE_DISJOINT_BIT, then flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-01577", - "text": " If format is not a multi-planar format, and flags does not include VK_IMAGE_CREATE_ALIAS_BIT, flags must not contain VK_IMAGE_CREATE_DISJOINT_BIT" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_ycbcr_image_arrays)": [ - { - "vuid": "VUID-VkImageCreateInfo-format-02653", - "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, and the ycbcrImageArrays feature is not enabled, arrayLayers must be 1" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_ycbcr_image_arrays)": [ - { - "vuid": "VUID-VkImageCreateInfo-format-02564", - "text": " If the image format is one of those listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views, arrayLayers must be 1" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageCreateInfo-tiling-02261", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the pNext chain must include exactly one of VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structures" - }, - { - "vuid": "VUID-VkImageCreateInfo-pNext-02262", - "text": " If the pNext chain includes a VkImageDrmFormatModifierListCreateInfoEXT or VkImageDrmFormatModifierExplicitCreateInfoEXT structure, then tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" - }, - { - "vuid": "VUID-VkImageCreateInfo-tiling-02353", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-01533", - "text": " If flags contains VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT format must be a depth or depth/stencil format" - } - ], - "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [ - { - "vuid": "VUID-VkImageCreateInfo-format-02795", - "text": " If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-02796", - "text": " If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-02797", - "text": " If format is a depth-stencil format, usage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-02798", - "text": " If format is a depth-stencil format, usage does not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, and the pNext chain includes a VkImageStencilUsageCreateInfo structure, then its VkImageStencilUsageCreateInfo::stencilUsage member must also not include VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageCreateInfo-Format-02536", - "text": " If Format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.width must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferWidth" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-02537", - "text": " If format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage member including VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, extent.height must be less than or equal to VkPhysicalDeviceLimits::maxFramebufferHeight" - }, - { - "vuid": "VUID-VkImageCreateInfo-format-02538", - "text": " If the multisampled storage images feature is not enabled, format is a depth-stencil format and the pNext chain includes a VkImageStencilUsageCreateInfo structure with its stencilUsage including VK_IMAGE_USAGE_STORAGE_BIT, samples must be VK_SAMPLE_COUNT_1_BIT" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-VkImageCreateInfo-flags-02050", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, imageType must be VK_IMAGE_TYPE_2D or VK_IMAGE_TYPE_3D" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02051", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV, it must not contain VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT and the format must not be a depth/stencil format" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02052", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_2D, extent.width and extent.height must be greater than 1" - }, - { - "vuid": "VUID-VkImageCreateInfo-flags-02053", - "text": " If flags contains VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV and imageType is VK_IMAGE_TYPE_3D, extent.width, extent.height, and extent.depth must be greater than 1" - } - ], - "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkImageCreateInfo-imageType-02082", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, imageType must be VK_IMAGE_TYPE_2D" - }, - { - "vuid": "VUID-VkImageCreateInfo-samples-02083", - "text": " If usage includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, samples must be VK_SAMPLE_COUNT_1_BIT" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkImageCreateInfo-tiling-02084", - "text": " If usage includes VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, tiling must be VK_IMAGE_TILING_OPTIMAL" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkImageCreateInfo-imageView2DOn3DImage-04459", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageView2DOn3DImage is VK_FALSE, flags must not contain VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT." - }, - { - "vuid": "VUID-VkImageCreateInfo-multisampleArrayImage-04460", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::multisampleArrayImage is VK_FALSE, and samples is not VK_SAMPLE_COUNT_1_BIT, then arrayLayers must be 1." - } - ] - }, - "VkImageStencilUsageCreateInfo": { - "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [ - { - "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-02539", - "text": " If stencilUsage includes VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT, it must not include bits other than VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT or VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageStencilUsageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO" - }, - { - "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-parameter", - "text": " stencilUsage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-VkImageStencilUsageCreateInfo-stencilUsage-requiredbitmask", - "text": " stencilUsage must not be 0" - } - ] - }, - "VkDedicatedAllocationImageCreateInfoNV": { - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-dedicatedAllocation-00994", - "text": " If dedicatedAllocation is VK_TRUE, VkImageCreateInfo::flags must not include VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" - }, - { - "vuid": "VUID-VkDedicatedAllocationImageCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV" - } - ] - }, - "VkExternalMemoryImageCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkExternalMemoryImageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO" - }, - { - "vuid": "VUID-VkExternalMemoryImageCreateInfo-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBits values" - } - ] - }, - "VkExternalMemoryImageCreateInfoNV": { - "(VK_NV_external_memory)": [ - { - "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkExternalMemoryImageCreateInfoNV-handleTypes-parameter", - "text": " handleTypes must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" - } - ] - }, - "VkExternalFormatANDROID": { - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkExternalFormatANDROID-externalFormat-01894", - "text": " externalFormat must be 0 or a value returned in the externalFormat member of VkAndroidHardwareBufferFormatPropertiesANDROID by an earlier call to vkGetAndroidHardwareBufferPropertiesANDROID" - }, - { - "vuid": "VUID-VkExternalFormatANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID" - } - ] - }, - "VkImageSwapchainCreateInfoKHR": { - "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-00995", - "text": " If swapchain is not VK_NULL_HANDLE, the fields of VkImageCreateInfo must match the implied image creation parameters of the swapchain" - }, - { - "vuid": "VUID-VkImageSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkImageSwapchainCreateInfoKHR-swapchain-parameter", - "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" - } - ] - }, - "VkImageFormatListCreateInfo": { - "(VK_VERSION_1_2,VK_KHR_image_format_list)": [ - { - "vuid": "VUID-VkImageFormatListCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO" - }, - { - "vuid": "VUID-VkImageFormatListCreateInfo-pViewFormats-parameter", - "text": " If viewFormatCount is not 0, pViewFormats must be a valid pointer to an array of viewFormatCount valid VkFormat values" - } - ] - }, - "VkImageDrmFormatModifierListCreateInfoEXT": { - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-02263", - "text": " Each modifier in pDrmFormatModifiers must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-pDrmFormatModifiers-parameter", - "text": " pDrmFormatModifiers must be a valid pointer to an array of drmFormatModifierCount uint64_t values" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierListCreateInfoEXT-drmFormatModifierCount-arraylength", - "text": " drmFormatModifierCount must be greater than 0" - } - ] - }, - "VkImageDrmFormatModifierExplicitCreateInfoEXT": { - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifier-02264", - "text": " drmFormatModifier must be compatible with the parameters in VkImageCreateInfo and its pNext chain, as determined by querying VkPhysicalDeviceImageFormatInfo2 extended with VkPhysicalDeviceImageDrmFormatModifierInfoEXT" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-drmFormatModifierPlaneCount-02265", - "text": " drmFormatModifierPlaneCount must be equal to the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with VkImageCreateInfo::format and drmFormatModifier, as found by querying VkDrmFormatModifierPropertiesListEXT" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-size-02267", - "text": " For each element of pPlaneLayouts, size must be 0" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-arrayPitch-02268", - "text": " For each element of pPlaneLayouts, arrayPitch must be 0 if VkImageCreateInfo::arrayLayers is 1" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-depthPitch-02269", - "text": " For each element of pPlaneLayouts, depthPitch must be 0 if VkImageCreateInfo::extent.depth is 1" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierExplicitCreateInfoEXT-pPlaneLayouts-parameter", - "text": " If drmFormatModifierPlaneCount is not 0, pPlaneLayouts must be a valid pointer to an array of drmFormatModifierPlaneCount VkSubresourceLayout structures" - } - ] - }, - "vkGetImageSubresourceLayout": { - "!(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-vkGetImageSubresourceLayout-image-00996", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-vkGetImageSubresourceLayout-image-02270", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-tiling-02271", - "text": " If the tiling of the image is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT and the index i must be less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier" - } - ], - "core": [ - { - "vuid": "VUID-vkGetImageSubresourceLayout-aspectMask-00997", - "text": " The aspectMask member of pSubresource must only have a single bit set" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-mipLevel-01716", - "text": " The mipLevel member of pSubresource must be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-arrayLayer-01717", - "text": " The arrayLayer member of pSubresource must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-format-04461", - "text": " If format is a color format, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-format-04462", - "text": " If format has a depth component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_DEPTH_BIT" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-format-04463", - "text": " If format has a stencil component, the aspectMask member of pSubresource must contain VK_IMAGE_ASPECT_STENCIL_BIT" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-format-04464", - "text": " If format does not contain a stencil or depth component, the aspectMask member of pSubresource must not contain VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-pSubresource-parameter", - "text": " pSubresource must be a valid pointer to a valid VkImageSubresource structure" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-pLayout-parameter", - "text": " pLayout must be a valid pointer to a VkSubresourceLayout structure" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-image-parent", - "text": " image must have been created, allocated, or retrieved from device" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkGetImageSubresourceLayout-format-01581", - "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with two planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-vkGetImageSubresourceLayout-format-01582", - "text": " If the tiling of the image is VK_IMAGE_TILING_LINEAR and its format is a multi-planar format with three planes, the aspectMask member of pSubresource must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkGetImageSubresourceLayout-image-01895", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" - } - ] - }, - "VkImageSubresource": { - "core": [ - { - "vuid": "VUID-VkImageSubresource-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" - }, - { - "vuid": "VUID-VkImageSubresource-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" - } - ] - }, - "vkGetImageDrmFormatModifierPropertiesEXT": { - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-02272", - "text": " image must have been created with tiling equal to VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT" - }, - { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkImageDrmFormatModifierPropertiesEXT structure" - }, - { - "vuid": "VUID-vkGetImageDrmFormatModifierPropertiesEXT-image-parent", - "text": " image must have been created, allocated, or retrieved from device" - } - ] - }, - "VkImageDrmFormatModifierPropertiesEXT": { - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT" - }, - { - "vuid": "VUID-VkImageDrmFormatModifierPropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkDestroyImage": { - "core": [ - { - "vuid": "VUID-vkDestroyImage-image-01000", - "text": " All submitted commands that refer to image, either directly or via a VkImageView, must have completed execution" - }, - { - "vuid": "VUID-vkDestroyImage-image-01001", - "text": " If VkAllocationCallbacks were provided when image was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyImage-image-01002", - "text": " If no VkAllocationCallbacks were provided when image was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyImage-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyImage-image-parameter", - "text": " If image is not VK_NULL_HANDLE, image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkDestroyImage-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyImage-image-parent", - "text": " If image is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateImageView": { - "core": [ - { - "vuid": "VUID-vkCreateImageView-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateImageView-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImageViewCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateImageView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateImageView-pView-parameter", - "text": " pView must be a valid pointer to a VkImageView handle" - } - ] - }, - "VkImageViewCreateInfo": { - "core": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01003", - "text": " If image was not created with VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT then viewType must not be VK_IMAGE_VIEW_TYPE_CUBE or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-viewType-01004", - "text": " If the image cubemap arrays feature is not enabled, viewType must not be VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-04441", - "text": " image must have been created with a usage value containing at least one of the usages defined in the valid image usage list for image views" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-None-02273", - "text": " The format features of the resultant image view must contain at least one bit" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-usage-02274", - "text": " If usage contains VK_IMAGE_USAGE_SAMPLED_BIT, then the format features of the resultant image view must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-usage-02275", - "text": " If usage contains VK_IMAGE_USAGE_STORAGE_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-usage-02276", - "text": " If usage contains VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-usage-02277", - "text": " If usage contains VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT, then the image view’s format features must contain VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-usage-02652", - "text": " If usage contains VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT, then the image view’s format features must contain at least one of VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT or VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01478", - "text": " subresourceRange.baseMipLevel must be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01718", - "text": " If subresourceRange.levelCount is not VK_REMAINING_MIP_LEVELS, subresourceRange.baseMipLevel + subresourceRange.levelCount must be less than or equal to the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01020", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-subResourceRange-01021", - "text": " subresourceRange and viewType must be compatible with the image, as described in the compatibility table" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-viewType-02960", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be 6" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-viewType-02961", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.layerCount must be a multiple of 6" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-viewType-02962", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be 6" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-viewType-02963", - "text": " If viewType is VK_IMAGE_VIEW_TYPE_CUBE_ARRAY and subresourceRange.layerCount is VK_REMAINING_ARRAY_LAYERS, the remaining number of layers must be a multiple of 6" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkImageViewASTCDecodeModeEXT, VkImageViewUsageCreateInfo, or VkSamplerYcbcrConversionInfo" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkImageViewCreateFlagBits values" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-viewType-parameter", - "text": " viewType must be a valid VkImageViewType value" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-components-parameter", - "text": " components must be a valid VkComponentMapping structure" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-parameter", - "text": " subresourceRange must be a valid VkImageSubresourceRange structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01005", - "text": " If image was created with VK_IMAGE_TYPE_3D but without VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set then viewType must not be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01482", - "text": " If image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01483", - "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is not a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, or viewType is not VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-02724", - "text": " If image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.baseArrayLayer must be less than the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-02725", - "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, image is a 3D image created with VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT set, and viewType is VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY, subresourceRange.layerCount must be non-zero and subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the depth computed from baseMipLevel and extent.depth specified in VkImageCreateInfo when image was created, according to the formula defined in Image Miplevel Sizing" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-02571", - "text": " If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, subresourceRange.levelCount must be 1" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-flags-02572", - "text": " If dynamic fragment density map feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-flags-04116", - "text": " If flags does not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT and image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT, its flags must not contain any of VK_IMAGE_CREATE_PROTECTED_BIT, VK_IMAGE_CREATE_SPARSE_BINDING_BIT, VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT, or VK_IMAGE_CREATE_SPARSE_ALIASED_BIT" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01480", - "text": " subresourceRange.baseArrayLayer must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-subresourceRange-01719", - "text": " If subresourceRange.layerCount is not VK_REMAINING_ARRAY_LAYERS, subresourceRange.baseArrayLayer + subresourceRange.layerCount must be less than or equal to the arrayLayers specified in VkImageCreateInfo when image was created" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01018", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01759", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01760", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01761", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, but without the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, and if the format of the image is not a multi-planar format, format must be compatible with the format used to create image, as defined in Format Compatibility Classes" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01583", - "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, format must be compatible with, or must be an uncompressed format that is size-compatible with, the format used to create image" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01584", - "text": " If image was created with the VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT flag, the levelCount and layerCount members of subresourceRange must both be 1" - } - ], - "(VK_VERSION_1_2,VK_KHR_image_format_list)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-01585", - "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then format must be one of the formats in VkImageFormatListCreateInfo::pViewFormats" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-04082", - "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain of the VkImageCreateInfo structure used when creating image and VkImageFormatListCreateInfo::viewFormatCount is not zero then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-flags-04083", - "text": " If flags does not contain VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT and the pNext chain include a VkImageFormatListCreateInfo structure then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01586", - "text": " If image was created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, if the format of the image is a multi-planar format, and if subresourceRange.aspectMask is one of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT, then format must be compatible with the VkFormat for the plane of the image format indicated by subresourceRange.aspectMask, as defined in Compatible formats of planes of multi-planar formats" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-01762", - "text": " If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, or if the format of the image is a multi-planar format and if subresourceRange.aspectMask is VK_IMAGE_ASPECT_COLOR_BIT, format must be identical to the format used to create image" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-01970", - "text": " If the pNext chain includes a VkSamplerYcbcrConversionInfo structure with a conversion value other than VK_NULL_HANDLE, all members of components must have the identity swizzle" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-01019", - "text": " If image was not created with the VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT flag, format must be identical to the format used to create image" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-02399", - "text": " If image has an external format, format must be VK_FORMAT_UNDEFINED" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-02400", - "text": " If image has an external format, the pNext chain must include a VkSamplerYcbcrConversionInfo structure with a conversion object created with the same external format as image" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-02401", - "text": " If image has an external format, all members of components must be the identity swizzle" - } - ], - "(VK_KHR_fragment_shading_rate,VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-02086", - "text": " If image was created with usage containing VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, viewType must be VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-image-02087", - "text": " If the shadingRateImage feature is enabled, and If image was created with usage containing VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV, format must be VK_FORMAT_R8_UINT" - } - ], - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-usage-04550", - "text": " If the attachmentFragmentShadingRate feature is enabled, and the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, then the image view’s format features must contain VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-usage-04551", - "text": " If the attachmentFragmentShadingRate feature is enabled, the usage for the image view includes VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, and layeredShadingRateAttachments is VK_FALSE, subresourceRange.layerCount must be 1" - } - ], - "(VK_EXT_fragment_density_map)+(VK_EXT_fragment_density_map2)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-flags-03567", - "text": " If deferred fragment density map feature is not enabled, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-flags-03568", - "text": " If flags contains VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT, flags must not contain VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-image-03569", - "text": " If image was created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT and usage containing VK_IMAGE_USAGE_SAMPLED_BIT, subresourceRange.layerCount must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxSubsampledArrayLayers" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+!(VK_VERSION_1_2+VK_EXT_separate_stencil_usage)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02661", - "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance2)+(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02662", - "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, and image was not created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, its usage member must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02663", - "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo instance must not include any bits that were not set in the usage member of the VkImageStencilUsageCreateInfo structure used to create image" - }, - { - "vuid": "VUID-VkImageViewCreateInfo-pNext-02664", - "text": " If the pNext chain includes a VkImageViewUsageCreateInfo structure, image was created with a VkImageStencilUsageCreateInfo structure included in the pNext chain of VkImageCreateInfo, and subResourceRange.aspectMask includes bits other than VK_IMAGE_ASPECT_STENCIL_BIT, the usage member of the VkImageViewUsageCreateInfo structure must not include any bits that were not set in the usage member of the VkImageCreateInfo structure used to create image" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatSwizzle-04465", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatSwizzle is VK_FALSE, all elements of components must be VK_COMPONENT_SWIZZLE_IDENTITY." - }, - { - "vuid": "VUID-VkImageViewCreateInfo-imageViewFormatReinterpretation-04466", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::imageViewFormatReinterpretation is VK_FALSE, the VkFormat in format must not contain a different number of components, or a different number of bits in each component, than the format of the VkImage in image." - } - ] - }, - "VkImageViewUsageCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkImageViewUsageCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO" - }, - { - "vuid": "VUID-VkImageViewUsageCreateInfo-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-VkImageViewUsageCreateInfo-usage-requiredbitmask", - "text": " usage must not be 0" - } - ] - }, - "VkImageSubresourceRange": { - "core": [ - { - "vuid": "VUID-VkImageSubresourceRange-levelCount-01720", - "text": " If levelCount is not VK_REMAINING_MIP_LEVELS, it must be greater than 0" - }, - { - "vuid": "VUID-VkImageSubresourceRange-layerCount-01721", - "text": " If layerCount is not VK_REMAINING_ARRAY_LAYERS, it must be greater than 0" - }, - { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" - }, - { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-01670", - "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, then it must not include any of VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageSubresourceRange-aspectMask-02278", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" - } - ] - }, - "VkComponentMapping": { - "core": [ - { - "vuid": "VUID-VkComponentMapping-r-parameter", - "text": " r must be a valid VkComponentSwizzle value" - }, - { - "vuid": "VUID-VkComponentMapping-g-parameter", - "text": " g must be a valid VkComponentSwizzle value" - }, - { - "vuid": "VUID-VkComponentMapping-b-parameter", - "text": " b must be a valid VkComponentSwizzle value" - }, - { - "vuid": "VUID-VkComponentMapping-a-parameter", - "text": " a must be a valid VkComponentSwizzle value" - } - ] - }, - "VkImageViewASTCDecodeModeEXT": { - "(VK_EXT_astc_decode_mode)": [ - { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02230", - "text": " decodeMode must be one of VK_FORMAT_R16G16B16A16_SFLOAT, VK_FORMAT_R8G8B8A8_UNORM, or VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" - }, - { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02231", - "text": " If the decodeModeSharedExponent feature is not enabled, decodeMode must not be VK_FORMAT_E5B9G9R9_UFLOAT_PACK32" - }, - { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-02232", - "text": " If decodeMode is VK_FORMAT_R8G8B8A8_UNORM the image view must not include blocks using any of the ASTC HDR modes" - }, - { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-format-04084", - "text": " format of the image view must be one of the ASTC Compressed Image Formats" - }, - { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT" - }, - { - "vuid": "VUID-VkImageViewASTCDecodeModeEXT-decodeMode-parameter", - "text": " decodeMode must be a valid VkFormat value" - } - ] - }, - "vkDestroyImageView": { - "core": [ - { - "vuid": "VUID-vkDestroyImageView-imageView-01026", - "text": " All submitted commands that refer to imageView must have completed execution" - }, - { - "vuid": "VUID-vkDestroyImageView-imageView-01027", - "text": " If VkAllocationCallbacks were provided when imageView was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyImageView-imageView-01028", - "text": " If no VkAllocationCallbacks were provided when imageView was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyImageView-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyImageView-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" - }, - { - "vuid": "VUID-vkDestroyImageView-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyImageView-imageView-parent", - "text": " If imageView is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetImageViewHandleNVX": { - "(VK_NVX_image_view_handle)": [ - { - "vuid": "VUID-vkGetImageViewHandleNVX-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageViewHandleNVX-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageViewHandleInfoNVX structure" - } - ] - }, - "VkImageViewHandleInfoNVX": { - "(VK_NVX_image_view_handle)": [ - { - "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-02654", - "text": " descriptorType must be VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-02655", - "text": " sampler must be a valid VkSampler if descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02656", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_SAMPLED_BIT usage bit set" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-02657", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the image that imageView was created from must have been created with the VK_IMAGE_USAGE_STORAGE_BIT usage bit set" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-sampler-parameter", - "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" - }, - { - "vuid": "VUID-VkImageViewHandleInfoNVX-commonparent", - "text": " Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetImageViewAddressNVX": { - "(VK_NVX_image_view_handle)": [ - { - "vuid": "VUID-vkGetImageViewAddressNVX-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parameter", - "text": " imageView must be a valid VkImageView handle" - }, - { - "vuid": "VUID-vkGetImageViewAddressNVX-pProperties-parameter", - "text": " pProperties must be a valid pointer to a VkImageViewAddressPropertiesNVX structure" - }, - { - "vuid": "VUID-vkGetImageViewAddressNVX-imageView-parent", - "text": " imageView must have been created, allocated, or retrieved from device" - } - ] - }, - "VkImageViewAddressPropertiesNVX": { - "(VK_NVX_image_view_handle)": [ - { - "vuid": "VUID-VkImageViewAddressPropertiesNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX" - }, - { - "vuid": "VUID-VkImageViewAddressPropertiesNVX-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetBufferMemoryRequirements": { - "core": [ - { - "vuid": "VUID-vkGetBufferMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkGetBufferMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" - }, - { - "vuid": "VUID-vkGetBufferMemoryRequirements-buffer-parent", - "text": " buffer must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetImageMemoryRequirements": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkGetImageMemoryRequirements-image-01588", - "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT flag set" - } - ], - "(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkGetImageMemoryRequirements-image-04004", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" - } - ], - "core": [ - { - "vuid": "VUID-vkGetImageMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageMemoryRequirements-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkGetImageMemoryRequirements-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements structure" - }, - { - "vuid": "VUID-vkGetImageMemoryRequirements-image-parent", - "text": " image must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetBufferMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-vkGetBufferMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetBufferMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferMemoryRequirementsInfo2 structure" - }, - { - "vuid": "VUID-vkGetBufferMemoryRequirements2-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" - } - ] - }, - "VkBufferMemoryRequirementsInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkBufferMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2" - }, - { - "vuid": "VUID-VkBufferMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkBufferMemoryRequirementsInfo2-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - } - ] - }, - "vkGetImageMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-vkGetImageMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageMemoryRequirementsInfo2 structure" - }, - { - "vuid": "VUID-vkGetImageMemoryRequirements2-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" - } - ] - }, - "VkImageMemoryRequirementsInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01589", - "text": " If image was created with a multi-planar format and the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" - }, - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01590", - "text": " If image was not created with the VK_IMAGE_CREATE_DISJOINT_BIT flag, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02279", - "text": " If image was created with VK_IMAGE_CREATE_DISJOINT_BIT and with VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" - }, - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-02280", - "text": " If image was created with a single-plane format and with any tiling other than VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01591", - "text": " If image was created with a single-plane format, there must not be a VkImagePlaneMemoryRequirementsInfo included in the pNext chain of the VkImageMemoryRequirementsInfo2 structure" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-01897", - "text": " If image was created with the VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID external memory handle type, then image must be bound to memory" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2" - }, - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkImagePlaneMemoryRequirementsInfo" - }, - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkImageMemoryRequirementsInfo2-image-parameter", - "text": " image must be a valid VkImage handle" - } - ] - }, - "VkImagePlaneMemoryRequirementsInfo": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02281", - "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)" - }, - { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO" - }, - { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-parameter", - "text": " planeAspect must be a valid VkImageAspectFlagBits value" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImagePlaneMemoryRequirementsInfo-planeAspect-02282", - "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)" - } - ] - }, - "VkMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkMemoryRequirements2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2" - }, - { - "vuid": "VUID-VkMemoryRequirements2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkMemoryDedicatedRequirements" - }, - { - "vuid": "VUID-VkMemoryRequirements2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkMemoryDedicatedRequirements": { - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkMemoryDedicatedRequirements-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS" - } - ] - }, - "vkBindBufferMemory": { - "core": [ - { - "vuid": "VUID-vkBindBufferMemory-buffer-01029", - "text": " buffer must not already be backed by a memory object" - }, - { - "vuid": "VUID-vkBindBufferMemory-buffer-01030", - "text": " buffer must not have been created with any sparse memory binding flags" - }, - { - "vuid": "VUID-vkBindBufferMemory-memoryOffset-01031", - "text": " memoryOffset must be less than the size of memory" - }, - { - "vuid": "VUID-vkBindBufferMemory-memory-01035", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" - }, - { - "vuid": "VUID-vkBindBufferMemory-memoryOffset-01036", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" - }, - { - "vuid": "VUID-vkBindBufferMemory-size-01037", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" - }, - { - "vuid": "VUID-vkBindBufferMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkBindBufferMemory-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkBindBufferMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-vkBindBufferMemory-buffer-parent", - "text": " buffer must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkBindBufferMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-vkBindBufferMemory-buffer-01444", - "text": " If buffer requires a dedicated allocation(as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been created with VkMemoryDedicatedAllocateInfo::buffer equal to buffer" - }, - { - "vuid": "VUID-vkBindBufferMemory-memory-01508", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkBindBufferMemory-None-01898", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - }, - { - "vuid": "VUID-vkBindBufferMemory-None-01899", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - } - ], - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-vkBindBufferMemory-buffer-01038", - "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero" - } - ], - "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-vkBindBufferMemory-buffer-01039", - "text": " If buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-vkBindBufferMemory-memory-02726", - "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkBindBufferMemory-memory-02727", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkBindBufferMemory-memory-02985", - "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - }, - { - "vuid": "VUID-vkBindBufferMemory-memory-02986", - "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - } - ], - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-vkBindBufferMemory-bufferDeviceAddress-03339", - "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" - } - ] - }, - "vkBindBufferMemory2": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ - { - "vuid": "VUID-vkBindBufferMemory2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkBindBufferMemory2-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindBufferMemoryInfo structures" - }, - { - "vuid": "VUID-vkBindBufferMemory2-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" - } - ] - }, - "VkBindBufferMemoryInfo": { - "core": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01029", - "text": " buffer must not already be backed by a memory object" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01030", - "text": " buffer must not have been created with any sparse memory binding flags" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01031", - "text": " memoryOffset must be less than the size of memory" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-01035", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-memoryOffset-01036", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-size-01037", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetBufferMemoryRequirements with buffer must be less than or equal to the size of memory minus memoryOffset" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01444", - "text": " If buffer requires a dedicated allocation(as reported by vkGetBufferMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for buffer), memory must have been created with VkMemoryDedicatedAllocateInfo::buffer equal to buffer" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-01508", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::buffer was not VK_NULL_HANDLE, then buffer must equal VkMemoryDedicatedAllocateInfo::buffer, and memoryOffset must be zero" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-None-01898", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit set, the buffer must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-None-01899", - "text": " If buffer was created with the VK_BUFFER_CREATE_PROTECTED_BIT bit not set, the buffer must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - } - ], - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01038", - "text": " If buffer was created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::buffer equal to a buffer handle created with identical creation parameters to buffer and memoryOffset must be zero" - } - ], - "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-01039", - "text": " If buffer was not created with VkDedicatedAllocationBufferCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-02726", - "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-02727", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-02985", - "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-02986", - "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes when buffer was created" - } - ], - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-bufferDeviceAddress-03339", - "text": " If the VkPhysicalDeviceBufferDeviceAddressFeatures::bufferDeviceAddress feature is enabled and buffer was created with the VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT bit set, memory must have been allocated with the VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT bit set" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-pNext-01605", - "text": " If the pNext chain includes a VkBindBufferMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindBufferMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ - { - "vuid": "VUID-VkBindBufferMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkBindBufferMemoryDeviceGroupInfo" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-VkBindBufferMemoryInfo-commonparent", - "text": " Both of buffer, and memory must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkBindBufferMemoryDeviceGroupInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-deviceIndexCount-01606", - "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" - }, - { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-01607", - "text": " All elements of pDeviceIndices must be valid device indices" - }, - { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO" - }, - { - "vuid": "VUID-VkBindBufferMemoryDeviceGroupInfo-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" - } - ] - }, - "vkBindImageMemory": { - "core": [ - { - "vuid": "VUID-vkBindImageMemory-image-01044", - "text": " image must not already be backed by a memory object" - }, - { - "vuid": "VUID-vkBindImageMemory-image-01045", - "text": " image must not have been created with any sparse memory binding flags" - }, - { - "vuid": "VUID-vkBindImageMemory-memoryOffset-01046", - "text": " memoryOffset must be less than the size of memory" - }, - { - "vuid": "VUID-vkBindImageMemory-memory-01047", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" - }, - { - "vuid": "VUID-vkBindImageMemory-memoryOffset-01048", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" - }, - { - "vuid": "VUID-vkBindImageMemory-size-01049", - "text": " The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image" - }, - { - "vuid": "VUID-vkBindImageMemory-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkBindImageMemory-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkBindImageMemory-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-vkBindImageMemory-image-parent", - "text": " image must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkBindImageMemory-memory-parent", - "text": " memory must have been created, allocated, or retrieved from device" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-vkBindImageMemory-image-01445", - "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [ - { - "vuid": "VUID-vkBindImageMemory-memory-01509", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [ - { - "vuid": "VUID-vkBindImageMemory-memory-02628", - "text": " If the dedicated allocation image aliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" - }, - { - "vuid": "VUID-vkBindImageMemory-memory-02629", - "text": " If the dedicated allocation image aliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkBindImageMemory-None-01901", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - }, - { - "vuid": "VUID-vkBindImageMemory-None-01902", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - } - ], - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-vkBindImageMemory-image-01050", - "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero" - } - ], - "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-vkBindImageMemory-image-01051", - "text": " If image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-vkBindImageMemory-memory-02728", - "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkBindImageMemory-memory-02729", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkBindImageMemory-memory-02989", - "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - }, - { - "vuid": "VUID-vkBindImageMemory-memory-02990", - "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkBindImageMemory-image-01608", - "text": " image must not have been created with the VK_IMAGE_CREATE_DISJOINT_BIT set" - } - ] - }, - "vkBindImageMemory2": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkBindImageMemory2-pBindInfos-02858", - "text": " If any VkBindImageMemoryInfo::image was created with VK_IMAGE_CREATE_DISJOINT_BIT then all planes of VkBindImageMemoryInfo::image must be bound individually in separate pBindInfos" - }, - { - "vuid": "VUID-vkBindImageMemory2-pBindInfos-04006", - "text": " pBindInfos must not refer to the same image subresource more than once" - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ - { - "vuid": "VUID-vkBindImageMemory2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkBindImageMemory2-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindImageMemoryInfo structures" - }, - { - "vuid": "VUID-vkBindImageMemory2-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" - } - ] - }, - "VkBindImageMemoryInfo": { - "core": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-image-01044", - "text": " image must not already be backed by a memory object" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-image-01045", - "text": " image must not have been created with any sparse memory binding flags" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01046", - "text": " memoryOffset must be less than the size of memory" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-image-01445", - "text": " If image requires a dedicated allocation (as reported by vkGetImageMemoryRequirements2 in VkMemoryDedicatedRequirements::requiresDedicatedAllocation for image), memory must have been created with VkMemoryDedicatedAllocateInfo::image equal to image" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+!(VK_NV_dedicated_allocation_image_aliasing)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01509", - "text": " If the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" - } - ], - "(VK_VERSION_1_1,VK_KHR_dedicated_allocation)+(VK_NV_dedicated_allocation_image_aliasing)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02628", - "text": " If the dedicated allocation image aliasing feature is not enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then image must equal VkMemoryDedicatedAllocateInfo::image and memoryOffset must be zero" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02629", - "text": " If the dedicated allocation image aliasing feature is enabled, and the VkMemoryAllocateInfo provided when memory was allocated included a VkMemoryDedicatedAllocateInfo structure in its pNext chain, and VkMemoryDedicatedAllocateInfo::image was not VK_NULL_HANDLE, then memoryOffset must be zero, and image must be either equal to VkMemoryDedicatedAllocateInfo::image or an image that was created using the same parameters in VkImageCreateInfo, with the exception that extent and arrayLayers may differ subject to the following restrictions: every dimension in the extent parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created; and the arrayLayers parameter of the image being bound must be equal to or smaller than the original image for which the allocation was created" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-None-01901", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit set, the image must be bound to a memory object allocated with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-None-01902", - "text": " If image was created with the VK_IMAGE_CREATE_PROTECTED_BIT bit not set, the image must not be bound to a memory object created with a memory type that reports VK_MEMORY_PROPERTY_PROTECTED_BIT" - } - ], - "(VK_NV_dedicated_allocation)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-image-01050", - "text": " If image was created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must have been created with VkDedicatedAllocationMemoryAllocateInfoNV::image equal to an image handle created with identical creation parameters to image and memoryOffset must be zero" - } - ], - "(VK_NV_dedicated_allocation)+!(VK_VERSION_1_1,VK_KHR_dedicated_allocation)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-image-01051", - "text": " If image was not created with VkDedicatedAllocationImageCreateInfoNV::dedicatedAllocation equal to VK_TRUE, memory must not have been allocated dedicated for a specific buffer or image" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02728", - "text": " If the value of VkExportMemoryAllocateInfo::handleTypes used to allocate memory is not 0, it must include at least one of the handles set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02729", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02989", - "text": " If memory was created by a memory import operation, that is not VkImportAndroidHardwareBufferInfoANDROID with a non-NULL buffer value, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-02990", - "text": " If memory was created with the VkImportAndroidHardwareBufferInfoANDROID memory import operation with a non-NULL buffer value, VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01612", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-memoryOffset-01613", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with image" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01614", - "text": " The difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements with the same image" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01615", - "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01616", - "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01617", - "text": " If the pNext chain does not include a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01618", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, image must have been created with the VK_IMAGE_CREATE_DISJOINT_BIT bit set" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01619", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01620", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01621", - "text": " If the pNext chain includes a VkBindImagePlaneMemoryInfo structure, the difference of the size of memory and memoryOffset must be greater than or equal to the size member of the VkMemoryRequirements structure returned from a call to vkGetImageMemoryRequirements2 with the same image and where VkBindImagePlaneMemoryInfo::planeAspect corresponds to the VkImagePlaneMemoryRequirementsInfo::planeAspect in the VkImageMemoryRequirementsInfo2 structure’s pNext chain" - } - ], - "!(VK_VERSION_1_1+VK_KHR_swapchain)+!(VK_KHR_device_group+VK_KHR_swapchain)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-memory-01625", - "text": " memory must be a valid VkDeviceMemory handle" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01626", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all instances of memory specified by VkBindImageMemoryDeviceGroupInfo::pDeviceIndices must have been allocated" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01627", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, and VkBindImageMemoryDeviceGroupInfo::splitInstanceBindRegionCount is not zero, then image must have been created with the VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT bit set" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01628", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions must be valid rectangles contained within the dimensions of image" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01629", - "text": " If the pNext chain includes a VkBindImageMemoryDeviceGroupInfo structure, the union of the areas of all elements of VkBindImageMemoryDeviceGroupInfo::pSplitInstanceBindRegions that correspond to the same instance of image must cover the entire image" - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-image-01630", - "text": " If image was created with a valid swapchain handle in VkImageSwapchainCreateInfoKHR::swapchain, then the pNext chain must include a VkBindImageMemorySwapchainInfoKHR structure containing the same swapchain handle" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01631", - "text": " If the pNext chain includes a VkBindImageMemorySwapchainInfoKHR structure, memory must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-01632", - "text": " If the pNext chain does not include a VkBindImageMemorySwapchainInfoKHR structure, memory must be a valid VkDeviceMemory handle" - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)": [ - { - "vuid": "VUID-VkBindImageMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkBindImageMemoryDeviceGroupInfo, VkBindImageMemorySwapchainInfoKHR, or VkBindImagePlaneMemoryInfo" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkBindImageMemoryInfo-commonparent", - "text": " Both of image, and memory that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkBindImageMemoryDeviceGroupInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01633", - "text": " At least one of deviceIndexCount and splitInstanceBindRegionCount must be zero" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-deviceIndexCount-01634", - "text": " deviceIndexCount must either be zero or equal to the number of physical devices in the logical device" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-01635", - "text": " All elements of pDeviceIndices must be valid device indices" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-splitInstanceBindRegionCount-01636", - "text": " splitInstanceBindRegionCount must either be zero or equal to the number of physical devices in the logical device squared" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-01637", - "text": " Elements of pSplitInstanceBindRegions that correspond to the same instance of an image must not overlap" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01638", - "text": " The offset.x member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of all non-metadata aspects of the image" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-offset-01639", - "text": " The offset.y member of any element of pSplitInstanceBindRegions must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of all non-metadata aspects of the image" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01640", - "text": " The extent.width member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block width of all non-metadata aspects of the image, or else extent.width + offset.x must equal the width of the image subresource" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-extent-01641", - "text": " The extent.height member of any element of pSplitInstanceBindRegions must either be a multiple of the sparse image block height of all non-metadata aspects of the image, or else extent.height + offset.y must equal the width of the image subresource" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" - }, - { - "vuid": "VUID-VkBindImageMemoryDeviceGroupInfo-pSplitInstanceBindRegions-parameter", - "text": " If splitInstanceBindRegionCount is not 0, pSplitInstanceBindRegions must be a valid pointer to an array of splitInstanceBindRegionCount VkRect2D structures" - } - ] - }, - "VkBindImageMemorySwapchainInfoKHR": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-imageIndex-01644", - "text": " imageIndex must be less than the number of images in swapchain" - }, - { - "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR" - }, - { - "vuid": "VUID-VkBindImageMemorySwapchainInfoKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - } - ] - }, - "VkBindImagePlaneMemoryInfo": { - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02283", - "text": " If the image’s tiling is VK_IMAGE_TILING_LINEAR or VK_IMAGE_TILING_OPTIMAL, then planeAspect must be a single valid format plane for the image (that is, for a two-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT, and for a three-plane image planeAspect must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or VK_IMAGE_ASPECT_PLANE_2_BIT)" - }, - { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO" - }, - { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-parameter", - "text": " planeAspect must be a valid VkImageAspectFlagBits value" - } - ], - "(VK_VERSION_1_1,VK_KHR_bind_memory2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkBindImagePlaneMemoryInfo-planeAspect-02284", - "text": " If the image’s tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT, then planeAspect must be a single valid memory plane for the image (that is, aspectMask must specify a plane index that is less than the VkDrmFormatModifierPropertiesEXT::drmFormatModifierPlaneCount associated with the image’s format and VkImageDrmFormatModifierPropertiesEXT::drmFormatModifier)" - } - ] - }, - "vkCreateAccelerationStructureNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCreateAccelerationStructureNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureNV-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoNV structure" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureNV-pAccelerationStructure-parameter", - "text": " pAccelerationStructure must be a valid pointer to a VkAccelerationStructureNV handle" - } - ] - }, - "VkAccelerationStructureCreateInfoNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-compactedSize-02421", - "text": " If compactedSize is not 0 then both info.geometryCount and info.instanceCount must be 0" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoNV-info-parameter", - "text": " info must be a valid VkAccelerationStructureInfoNV structure" - } - ] - }, - "VkAccelerationStructureInfoNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureInfoNV-geometryCount-02422", - "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-instanceCount-02423", - "text": " instanceCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxInstanceCount" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-maxTriangleCount-02424", - "text": " The total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxTriangleCount" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-02425", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV then geometryCount must be 0" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-02426", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then instanceCount must be 0" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-02786", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV then the geometryType member of each geometry in pGeometries must be the same" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-flags-02592", - "text": " If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV bit set" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-scratch-02781", - "text": " scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-instanceData-02782", - "text": " If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-parameter", - "text": " type must be a valid VkAccelerationStructureTypeNV value" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsNV values" - }, - { - "vuid": "VUID-VkAccelerationStructureInfoNV-pGeometries-parameter", - "text": " If geometryCount is not 0, pGeometries must be a valid pointer to an array of geometryCount valid VkGeometryNV structures" - } - ], - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureInfoNV-type-04623", - "text": " type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - } - ] - }, - "vkCreateAccelerationStructureKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkCreateAccelerationStructureKHR-accelerationStructure-03611", - "text": " The accelerationStructure feature must be enabled" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureKHR-deviceAddress-03488", - "text": " If VkAccelerationStructureCreateInfoKHR::deviceAddress is not zero, the accelerationStructureCaptureReplay feature must be enabled" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureKHR-device-03489", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAccelerationStructureCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateAccelerationStructureKHR-pAccelerationStructure-parameter", - "text": " pAccelerationStructure must be a valid pointer to a VkAccelerationStructureKHR handle" - } - ] - }, - "VkAccelerationStructureCreateInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-deviceAddress-03612", - "text": " If deviceAddress is not zero, createFlags must include VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-03613", - "text": " If createFlags includes VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR, VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureCaptureReplay must be VK_TRUE" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03614", - "text": " buffer must have been created with a usage value containing VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-03615", - "text": " buffer must not have been created with VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03616", - "text": " The sum of offset and size must be less than the size of buffer" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-offset-03734", - "text": " offset must be a multiple of 256 bytes" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-createFlags-parameter", - "text": " createFlags must be a valid combination of VkAccelerationStructureCreateFlagBitsKHR values" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkAccelerationStructureCreateInfoKHR-type-parameter", - "text": " type must be a valid VkAccelerationStructureTypeKHR value" - } - ] - }, - "vkGetAccelerationStructureBuildSizesKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-rayTracingPipeline-03617", - "text": " The rayTracingPipeline or rayQuery feature must be enabled" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-03618", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03619", - "text": " If pBuildInfo->geometryCount is not 0, pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-03785", - "text": " If pBuildInfo->pGeometries or pBuildInfo->ppGeometries has a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each pMaxPrimitiveCounts[i] must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-buildType-parameter", - "text": " buildType must be a valid VkAccelerationStructureBuildTypeKHR value" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pBuildInfo-parameter", - "text": " pBuildInfo must be a valid pointer to a valid VkAccelerationStructureBuildGeometryInfoKHR structure" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pMaxPrimitiveCounts-parameter", - "text": " pMaxPrimitiveCounts must be a valid pointer to an array of pBuildInfo->geometryCount uint32_t values" - }, - { - "vuid": "VUID-vkGetAccelerationStructureBuildSizesKHR-pSizeInfo-parameter", - "text": " pSizeInfo must be a valid pointer to a VkAccelerationStructureBuildSizesInfoKHR structure" - } - ] - }, - "VkAccelerationStructureBuildSizesInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildSizesInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkGeometryNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkGeometryNV-geometryType-03503", - "text": " geometryType must be VK_GEOMETRY_TYPE_TRIANGLES_NV or VK_GEOMETRY_TYPE_AABBS_NV" - }, - { - "vuid": "VUID-VkGeometryNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_NV" - }, - { - "vuid": "VUID-VkGeometryNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkGeometryNV-geometryType-parameter", - "text": " geometryType must be a valid VkGeometryTypeKHR value" - }, - { - "vuid": "VUID-VkGeometryNV-geometry-parameter", - "text": " geometry must be a valid VkGeometryDataNV structure" - }, - { - "vuid": "VUID-VkGeometryNV-flags-parameter", - "text": " flags must be a valid combination of VkGeometryFlagBitsKHR values" - } - ] - }, - "VkGeometryDataNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkGeometryDataNV-triangles-parameter", - "text": " triangles must be a valid VkGeometryTrianglesNV structure" - }, - { - "vuid": "VUID-VkGeometryDataNV-aabbs-parameter", - "text": " aabbs must be a valid VkGeometryAABBNV structure" - } - ] - }, - "VkGeometryTrianglesNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02428", - "text": " vertexOffset must be less than the size of vertexData" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-vertexOffset-02429", - "text": " vertexOffset must be a multiple of the component size of vertexFormat" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-02430", - "text": " vertexFormat must be one of VK_FORMAT_R32G32B32_SFLOAT, VK_FORMAT_R32G32_SFLOAT, VK_FORMAT_R16G16B16_SFLOAT, VK_FORMAT_R16G16_SFLOAT, VK_FORMAT_R16G16_SNORM, or VK_FORMAT_R16G16B16_SNORM" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-vertexStride-03818", - "text": " vertexStride must be less than or equal to 232-1" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02431", - "text": " indexOffset must be less than the size of indexData" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexOffset-02432", - "text": " indexOffset must be a multiple of the element size of indexType" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexType-02433", - "text": " indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_NV" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexData-02434", - "text": " indexData must be VK_NULL_HANDLE if indexType is VK_INDEX_TYPE_NONE_NV" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexData-02435", - "text": " indexData must be a valid VkBuffer handle if indexType is not VK_INDEX_TYPE_NONE_NV" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexCount-02436", - "text": " indexCount must be 0 if indexType is VK_INDEX_TYPE_NONE_NV" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02437", - "text": " transformOffset must be less than the size of transformData" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-transformOffset-02438", - "text": " transformOffset must be a multiple of 16" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-vertexData-parameter", - "text": " If vertexData is not VK_NULL_HANDLE, vertexData must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-vertexFormat-parameter", - "text": " vertexFormat must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexData-parameter", - "text": " If indexData is not VK_NULL_HANDLE, indexData must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-transformData-parameter", - "text": " If transformData is not VK_NULL_HANDLE, transformData must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkGeometryTrianglesNV-commonparent", - "text": " Each of indexData, transformData, and vertexData that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkGeometryAABBNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkGeometryAABBNV-offset-02439", - "text": " offset must be less than the size of aabbData" - }, - { - "vuid": "VUID-VkGeometryAABBNV-offset-02440", - "text": " offset must be a multiple of 8" - }, - { - "vuid": "VUID-VkGeometryAABBNV-stride-02441", - "text": " stride must be a multiple of 8" - }, - { - "vuid": "VUID-VkGeometryAABBNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV" - }, - { - "vuid": "VUID-VkGeometryAABBNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkGeometryAABBNV-aabbData-parameter", - "text": " If aabbData is not VK_NULL_HANDLE, aabbData must be a valid VkBuffer handle" - } - ] - }, - "vkDestroyAccelerationStructureKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02442", - "text": " All submitted commands that refer to accelerationStructure must have completed execution" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02443", - "text": " If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-02444", - "text": " If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parameter", - "text": " If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureKHR-accelerationStructure-parent", - "text": " If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkDestroyAccelerationStructureNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03752", - "text": " All submitted commands that refer to accelerationStructure must have completed execution" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03753", - "text": " If VkAllocationCallbacks were provided when accelerationStructure was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-03754", - "text": " If no VkAllocationCallbacks were provided when accelerationStructure was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parameter", - "text": " If accelerationStructure is not VK_NULL_HANDLE, accelerationStructure must be a valid VkAccelerationStructureNV handle" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyAccelerationStructureNV-accelerationStructure-parent", - "text": " If accelerationStructure is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetAccelerationStructureMemoryRequirementsNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureMemoryRequirementsInfoNV structure" - }, - { - "vuid": "VUID-vkGetAccelerationStructureMemoryRequirementsNV-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2KHR structure" - } - ] - }, - "VkAccelerationStructureMemoryRequirementsInfoNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV" - }, - { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-type-parameter", - "text": " type must be a valid VkAccelerationStructureMemoryRequirementsTypeNV value" - }, - { - "vuid": "VUID-VkAccelerationStructureMemoryRequirementsInfoNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" - } - ] - }, - "vkBindAccelerationStructureMemoryNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkBindAccelerationStructureMemoryNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkBindAccelerationStructureMemoryNV-pBindInfos-parameter", - "text": " pBindInfos must be a valid pointer to an array of bindInfoCount valid VkBindAccelerationStructureMemoryInfoNV structures" - }, - { - "vuid": "VUID-vkBindAccelerationStructureMemoryNV-bindInfoCount-arraylength", - "text": " bindInfoCount must be greater than 0" - } - ] - }, - "VkBindAccelerationStructureMemoryInfoNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-03620", - "text": " accelerationStructure must not already be backed by a memory object" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03621", - "text": " memoryOffset must be less than the size of memory" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-03622", - "text": " memory must have been allocated using one of the memory types allowed in the memoryTypeBits member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memoryOffset-03623", - "text": " memoryOffset must be an integer multiple of the alignment member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-size-03624", - "text": " The size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with accelerationStructure and type of VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV must be less than or equal to the size of memory minus memoryOffset" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-memory-parameter", - "text": " memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-pDeviceIndices-parameter", - "text": " If deviceIndexCount is not 0, pDeviceIndices must be a valid pointer to an array of deviceIndexCount uint32_t values" - }, - { - "vuid": "VUID-VkBindAccelerationStructureMemoryInfoNV-commonparent", - "text": " Both of accelerationStructure, and memory must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetAccelerationStructureHandleNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-02240", - "text": " dataSize must be large enough to contain the result of the query, as described above" - }, - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-02787", - "text": " accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV" - }, - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureNV handle" - }, - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-dataSize-arraylength", - "text": " dataSize must be greater than 0" - }, - { - "vuid": "VUID-vkGetAccelerationStructureHandleNV-accelerationStructure-parent", - "text": " accelerationStructure must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetAccelerationStructureDeviceAddressKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-03504", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" - }, - { - "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetAccelerationStructureDeviceAddressKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureDeviceAddressInfoKHR structure" - } - ] - }, - "VkAccelerationStructureDeviceAddressInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureDeviceAddressInfoKHR-accelerationStructure-parameter", - "text": " accelerationStructure must be a valid VkAccelerationStructureKHR handle" - } - ] - }, - "vkCreateSampler": { - "core": [ - { - "vuid": "VUID-vkCreateSampler-maxSamplerAllocationCount-04110", - "text": " There must be less than VkPhysicalDeviceLimits::maxSamplerAllocationCount VkSampler objects currently created on the device." - }, - { - "vuid": "VUID-vkCreateSampler-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateSampler-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSamplerCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateSampler-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateSampler-pSampler-parameter", - "text": " pSampler must be a valid pointer to a VkSampler handle" - } - ] - }, - "VkSamplerCreateInfo": { - "core": [ - { - "vuid": "VUID-VkSamplerCreateInfo-mipLodBias-01069", - "text": " The absolute value of mipLodBias must be less than or equal to VkPhysicalDeviceLimits::maxSamplerLodBias" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-maxLod-01973", - "text": " maxLod must be greater than or equal to minLod" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01070", - "text": " If the anisotropic sampling feature is not enabled, anisotropyEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-anisotropyEnable-01071", - "text": " If anisotropyEnable is VK_TRUE, maxAnisotropy must be between 1.0 and VkPhysicalDeviceLimits::maxSamplerAnisotropy, inclusive" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01072", - "text": " If unnormalizedCoordinates is VK_TRUE, minFilter and magFilter must be equal" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01073", - "text": " If unnormalizedCoordinates is VK_TRUE, mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01074", - "text": " If unnormalizedCoordinates is VK_TRUE, minLod and maxLod must be zero" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01075", - "text": " If unnormalizedCoordinates is VK_TRUE, addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01076", - "text": " If unnormalizedCoordinates is VK_TRUE, anisotropyEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-unnormalizedCoordinates-01077", - "text": " If unnormalizedCoordinates is VK_TRUE, compareEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01078", - "text": " If any of addressModeU, addressModeV or addressModeW are VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, borderColor must be a valid VkBorderColor value" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01080", - "text": " If compareEnable is VK_TRUE, compareOp must be a valid VkCompareOp value" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkSamplerCustomBorderColorCreateInfoEXT, VkSamplerReductionModeCreateInfo, or VkSamplerYcbcrConversionInfo" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkSamplerCreateFlagBits values" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-magFilter-parameter", - "text": " magFilter must be a valid VkFilter value" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-minFilter-parameter", - "text": " minFilter must be a valid VkFilter value" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-mipmapMode-parameter", - "text": " mipmapMode must be a valid VkSamplerMipmapMode value" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-parameter", - "text": " addressModeU must be a valid VkSamplerAddressMode value" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-addressModeV-parameter", - "text": " addressModeV must be a valid VkSamplerAddressMode value" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-addressModeW-parameter", - "text": " addressModeW must be a valid VkSamplerAddressMode value" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-samplerMipLodBias-04467", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::samplerMipLodBias is VK_FALSE, mipLodBias must be zero." - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-minFilter-01645", - "text": " If sampler {YCbCr} conversion is enabled and the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, minFilter and magFilter must be equal to the sampler {YCbCr} conversion’s chromaFilter" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01646", - "text": " If sampler {YCbCr} conversion is enabled, addressModeU, addressModeV, and addressModeW must be VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, anisotropyEnable must be VK_FALSE, and unnormalizedCoordinates must be VK_FALSE" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-None-01647", - "text": " The sampler reduction mode must be set to VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE if sampler {YCbCr} conversion is enabled" - } - ], - "(VK_VERSION_1_2,VK_KHR_sampler_mirror_clamp_to_edge)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-addressModeU-01079", - "text": " If ifdef::VK_VERSION_1_2[samplerMirrorClampToEdge is not enabled, and if] the VK_KHR_sampler_mirror_clamp_to_edge extension is not enabled, addressModeU, addressModeV and addressModeW must not be VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-magFilter-01081", - "text": " If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, anisotropyEnable must be VK_FALSE" - } - ], - "(VK_IMG_filter_cubic+VK_EXT_sampler_filter_minmax)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-magFilter-01422", - "text": " If either magFilter or minFilter is VK_FILTER_CUBIC_EXT, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" - } - ], - "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-compareEnable-01423", - "text": " If compareEnable is VK_TRUE, the reductionMode member of VkSamplerReductionModeCreateInfo must be VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-flags-02574", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minFilter and magFilter must be equal" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-flags-02575", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then mipmapMode must be VK_SAMPLER_MIPMAP_MODE_NEAREST" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-flags-02576", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then minLod and maxLod must be zero" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-flags-02577", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then addressModeU and addressModeV must each be either VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE or VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-flags-02578", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then anisotropyEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-flags-02579", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then compareEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-flags-02580", - "text": " If flags includes VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT, then unnormalizedCoordinates must be VK_FALSE" - } - ], - "(VK_EXT_custom_border_color)": [ - { - "vuid": "VUID-VkSamplerCreateInfo-borderColor-04011", - "text": " If borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, then a VkSamplerCustomBorderColorCreateInfoEXT must be present in the pNext chain" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-customBorderColors-04085", - "text": " If the customBorderColors feature is not enabled, borderColor must not be VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT" - }, - { - "vuid": "VUID-VkSamplerCreateInfo-borderColor-04442", - "text": " If borderColor is one of VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT, and VkSamplerCustomBorderColorCreateInfoEXT::format is not VK_FORMAT_UNDEFINED, VkSamplerCustomBorderColorCreateInfoEXT::customBorderColor must be within the range of values representable in format." - }, - { - "vuid": "VUID-VkSamplerCreateInfo-None-04012", - "text": " The maximum number of samplers with custom border colors which can be simultaneously created on a device is implementation-dependent and specified by the maxCustomBorderColorSamplers member of the VkPhysicalDeviceCustomBorderColorPropertiesEXT structure" - } - ] - }, - "VkSamplerReductionModeCreateInfo": { - "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ - { - "vuid": "VUID-VkSamplerReductionModeCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO" - }, - { - "vuid": "VUID-VkSamplerReductionModeCreateInfo-reductionMode-parameter", - "text": " reductionMode must be a valid VkSamplerReductionMode value" - } - ] - }, - "vkDestroySampler": { - "core": [ - { - "vuid": "VUID-vkDestroySampler-sampler-01082", - "text": " All submitted commands that refer to sampler must have completed execution" - }, - { - "vuid": "VUID-vkDestroySampler-sampler-01083", - "text": " If VkAllocationCallbacks were provided when sampler was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroySampler-sampler-01084", - "text": " If no VkAllocationCallbacks were provided when sampler was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroySampler-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroySampler-sampler-parameter", - "text": " If sampler is not VK_NULL_HANDLE, sampler must be a valid VkSampler handle" - }, - { - "vuid": "VUID-vkDestroySampler-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroySampler-sampler-parent", - "text": " If sampler is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "VkSamplerYcbcrConversionInfo": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkSamplerYcbcrConversionInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionInfo-conversion-parameter", - "text": " conversion must be a valid VkSamplerYcbcrConversion handle" - } - ] - }, - "vkCreateSamplerYcbcrConversion": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-None-01648", - "text": " The sampler {YCbCr} conversion feature must be enabled" - }, - { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSamplerYcbcrConversionCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateSamplerYcbcrConversion-pYcbcrConversion-parameter", - "text": " pYcbcrConversion must be a valid pointer to a VkSamplerYcbcrConversion handle" - } - ] - }, - "VkSamplerYcbcrConversionCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+!(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04060", - "text": " format must represent unsigned normalized values (i.e. the format must be a UNORM format)" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01904", - "text": " If an external format conversion is being created, format must be VK_FORMAT_UNDEFINED" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-04061", - "text": " If an external format conversion is not being created, format must represent unsigned normalized values (i.e. the format must be a UNORM format)" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-01650", - "text": " The potential format features of the sampler {YCbCr} conversion must support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT or VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01651", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_COSITED_EVEN if the corresponding channels are downsampled" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-01652", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, xChromaOffset and yChromaOffset must not be VK_CHROMA_LOCATION_MIDPOINT if the corresponding channels are downsampled" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02581", - "text": " If the format has a _422 or _420 suffix, then components.g must be the identity swizzle" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02582", - "text": " If the format has a _422 or _420 suffix, then components.a must be the identity swizzle, VK_COMPONENT_SWIZZLE_ONE, or VK_COMPONENT_SWIZZLE_ZERO" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02583", - "text": " If the format has a _422 or _420 suffix, then components.r must be the identity swizzle or VK_COMPONENT_SWIZZLE_B" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02584", - "text": " If the format has a _422 or _420 suffix, then components.b must be the identity swizzle or VK_COMPONENT_SWIZZLE_R" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-02585", - "text": " If the format has a _422 or _420 suffix, and if either components.r or components.b is the identity swizzle, both values must be the identity swizzle" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-01655", - "text": " If ycbcrModel is not VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, then components.r, components.g, and components.b must correspond to channels of the format; that is, components.r, components.g, and components.b must not be VK_COMPONENT_SWIZZLE_ZERO or VK_COMPONENT_SWIZZLE_ONE, and must not correspond to a channel which contains zero or one as a consequence of conversion to RGBA" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-02748", - "text": " If ycbcrRange is VK_SAMPLER_YCBCR_RANGE_ITU_NARROW then the R, G and B channels obtained by applying the component swizzle to format must each have a bit-depth greater than or equal to 8" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-forceExplicitReconstruction-01656", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT forceExplicitReconstruction must be VK_FALSE" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-01657", - "text": " If the potential format features of the sampler {YCbCr} conversion do not support VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, chromaFilter must not be VK_FILTER_LINEAR" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkExternalFormatANDROID" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrModel-parameter", - "text": " ycbcrModel must be a valid VkSamplerYcbcrModelConversion value" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-ycbcrRange-parameter", - "text": " ycbcrRange must be a valid VkSamplerYcbcrRange value" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-components-parameter", - "text": " components must be a valid VkComponentMapping structure" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-xChromaOffset-parameter", - "text": " xChromaOffset must be a valid VkChromaLocation value" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-yChromaOffset-parameter", - "text": " yChromaOffset must be a valid VkChromaLocation value" - }, - { - "vuid": "VUID-VkSamplerYcbcrConversionCreateInfo-chromaFilter-parameter", - "text": " chromaFilter must be a valid VkFilter value" - } - ] - }, - "vkDestroySamplerYcbcrConversion": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parameter", - "text": " If ycbcrConversion is not VK_NULL_HANDLE, ycbcrConversion must be a valid VkSamplerYcbcrConversion handle" - }, - { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroySamplerYcbcrConversion-ycbcrConversion-parent", - "text": " If ycbcrConversion is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "VkSamplerCustomBorderColorCreateInfoEXT": { - "(VK_EXT_custom_border_color)": [ - { - "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04013", - "text": " If provided format is not VK_FORMAT_UNDEFINED then the VkSamplerCreateInfo::borderColor type must match the sampled type of the provided format, as shown in the SPIR-V Sampled Type column of the Interpretation of Numeric Format table" - }, - { - "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04014", - "text": " If the customBorderColorWithoutFormat feature is not enabled then format must not be VK_FORMAT_UNDEFINED" - }, - { - "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-04015", - "text": " If the sampler is used to sample an image view of VK_FORMAT_B4G4R4A4_UNORM_PACK16, VK_FORMAT_B5G6R5_UNORM_PACK16, or VK_FORMAT_B5G5R5A1_UNORM_PACK16 format then format must not be VK_FORMAT_UNDEFINED" - }, - { - "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkSamplerCustomBorderColorCreateInfoEXT-format-parameter", - "text": " format must be a valid VkFormat value" - } - ] - }, - "vkCreateDescriptorSetLayout": { - "core": [ - { - "vuid": "VUID-vkCreateDescriptorSetLayout-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateDescriptorSetLayout-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateDescriptorSetLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDescriptorSetLayout-pSetLayout-parameter", - "text": " pSetLayout must be a valid pointer to a VkDescriptorSetLayout handle" - } - ] - }, - "VkDescriptorSetLayoutCreateInfo": { - "core": [ - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-binding-00279", - "text": " The VkDescriptorSetLayoutBinding::binding members of the elements of the pBindings array must each have different values" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDescriptorSetLayoutBindingFlagsCreateInfo or VkMutableDescriptorTypeCreateInfoVALVE" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDescriptorSetLayoutCreateFlagBits values" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-pBindings-parameter", - "text": " If bindingCount is not 0, pBindings must be a valid pointer to an array of bindingCount valid VkDescriptorSetLayoutBinding structures" - } - ], - "(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00280", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-00281", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then the total number of elements of all bindings must be less than or equal to VkPhysicalDevicePushDescriptorPropertiesKHR::maxPushDescriptors" - } - ], - "(VK_KHR_push_descriptor)+(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-02208", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT" - } - ], - "(VK_KHR_push_descriptor)+(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04590", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04591", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, pBindings must not have a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-03000", - "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, flags must include VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-03001", - "text": " If any binding has the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT bit set, then all bindings must not have descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04592", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT, flags must not contain VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04593", - "text": " If any binding has a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, then a VkMutableDescriptorTypeCreateInfoVALVE must be present in the pNext chain" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-descriptorType-04594", - "text": " If a binding has a descriptorType value of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, then pImmutableSamplers must be NULL" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-mutableDescriptorType-04595", - "text": " If VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::mutableDescriptorType is not enabled, pBindings must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutCreateInfo-flags-04596", - "text": " If flags contains VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::mutableDescriptorType must be enabled" - } - ] - }, - "VkMutableDescriptorTypeCreateInfoVALVE": { - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkMutableDescriptorTypeCreateInfoVALVE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE" - }, - { - "vuid": "VUID-VkMutableDescriptorTypeCreateInfoVALVE-pMutableDescriptorTypeLists-parameter", - "text": " If mutableDescriptorTypeListCount is not 0, pMutableDescriptorTypeLists must be a valid pointer to an array of mutableDescriptorTypeListCount valid VkMutableDescriptorTypeListVALVE structures" - } - ] - }, - "VkMutableDescriptorTypeListVALVE": { - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-descriptorTypeCount-04597", - "text": " descriptorTypeCount must not be 0 if the corresponding binding is of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - }, - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04598", - "text": " pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid, unique VkDescriptorType values if the given binding is of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE type" - }, - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-descriptorTypeCount-04599", - "text": " descriptorTypeCount must be 0 if the corresponding binding is not of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - }, - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04600", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - }, - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04601", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" - }, - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04602", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC" - }, - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-parameter", - "text": " If descriptorTypeCount is not 0, pDescriptorTypes must be a valid pointer to an array of descriptorTypeCount valid VkDescriptorType values" - } - ], - "(VK_VALVE_mutable_descriptor_type)+(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkMutableDescriptorTypeListVALVE-pDescriptorTypes-04603", - "text": " pDescriptorTypes must not contain VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT" - } - ] - }, - "VkDescriptorSetLayoutBinding": { - "core": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-00282", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and descriptorCount is not 0 and pImmutableSamplers is not NULL, pImmutableSamplers must be a valid pointer to an array of descriptorCount valid VkSampler handles" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorCount-00283", - "text": " If descriptorCount is not 0, stageFlags must be a valid combination of VkShaderStageFlagBits values" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-01510", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and descriptorCount is not 0, then stageFlags must be 0 or VK_SHADER_STAGE_FRAGMENT_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" - } - ], - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04604", - "text": " If the inlineUniformBlock feature is not enabled, descriptorType must not be VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02209", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-02210", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxInlineUniformBlockSize" - } - ], - "(VK_EXT_custom_border_color)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-pImmutableSamplers-04009", - "text": " The sampler objects indicated by pImmutableSamplers must not have a borderColor with one of the values VK_BORDER_COLOR_FLOAT_CUSTOM_EXT or VK_BORDER_COLOR_INT_CUSTOM_EXT" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBinding-descriptorType-04605", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, then pImmutableSamplers must be NULL." - } - ] - }, - "VkDescriptorSetLayoutBindingFlagsCreateInfo": { - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-bindingCount-03002", - "text": " If bindingCount is not zero, bindingCount must equal VkDescriptorSetLayoutCreateInfo::bindingCount" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03004", - "text": " If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, then all other elements of VkDescriptorSetLayoutCreateInfo::pBindings must have a smaller value of binding" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformBufferUpdateAfterBind-03005", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingSampledImageUpdateAfterBind-03006", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingSampledImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, or VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageImageUpdateAfterBind-03007", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageImageUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageBufferUpdateAfterBind-03008", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUniformTexelBufferUpdateAfterBind-03009", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUniformTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingStorageTexelBufferUpdateAfterBind-03010", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingStorageTexelBufferUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-None-03011", - "text": " All bindings with descriptor type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingUpdateUnusedWhilePending-03012", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingUpdateUnusedWhilePending is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingPartiallyBound-03013", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingPartiallyBound is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingVariableDescriptorCount-03014", - "text": " If VkPhysicalDeviceDescriptorIndexingFeatures::descriptorBindingVariableDescriptorCount is not enabled, all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-03015", - "text": " If an element of pBindingFlags includes VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT, that element’s descriptorType must not be VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-pBindingFlags-parameter", - "text": " If bindingCount is not 0, pBindingFlags must be a valid pointer to an array of bindingCount valid combinations of VkDescriptorBindingFlagBits values" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-flags-03003", - "text": " If VkDescriptorSetLayoutCreateInfo::flags includes VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR, then all elements of pBindingFlags must not include VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT, VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT, or VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingInlineUniformBlockUpdateAfterBind-02211", - "text": " If VkPhysicalDeviceInlineUniformBlockFeaturesEXT::descriptorBindingInlineUniformBlockUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutBindingFlagsCreateInfo-descriptorBindingAccelerationStructureUpdateAfterBind-03570", - "text": " If VkPhysicalDeviceAccelerationStructureFeaturesKHR::descriptorBindingAccelerationStructureUpdateAfterBind is not enabled, all bindings with descriptor type VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR or VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV must not use VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT" - } - ] - }, - "vkGetDescriptorSetLayoutSupport": { - "(VK_VERSION_1_1,VK_KHR_maintenance3)": [ - { - "vuid": "VUID-vkGetDescriptorSetLayoutSupport-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorSetLayoutCreateInfo structure" - }, - { - "vuid": "VUID-vkGetDescriptorSetLayoutSupport-pSupport-parameter", - "text": " pSupport must be a valid pointer to a VkDescriptorSetLayoutSupport structure" - } - ] - }, - "VkDescriptorSetLayoutSupport": { - "(VK_VERSION_1_1,VK_KHR_maintenance3)": [ - { - "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutSupport-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountLayoutSupport" - }, - { - "vuid": "VUID-VkDescriptorSetLayoutSupport-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkDescriptorSetVariableDescriptorCountLayoutSupport": { - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountLayoutSupport-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT" - } - ] - }, - "vkDestroyDescriptorSetLayout": { - "core": [ - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00284", - "text": " If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-00285", - "text": " If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parameter", - "text": " If descriptorSetLayout is not VK_NULL_HANDLE, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" - }, - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyDescriptorSetLayout-descriptorSetLayout-parent", - "text": " If descriptorSetLayout is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreatePipelineLayout": { - "core": [ - { - "vuid": "VUID-vkCreatePipelineLayout-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreatePipelineLayout-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPipelineLayoutCreateInfo structure" - }, - { - "vuid": "VUID-vkCreatePipelineLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreatePipelineLayout-pPipelineLayout-parameter", - "text": " pPipelineLayout must be a valid pointer to a VkPipelineLayout handle" - } - ] - }, - "VkPipelineLayoutCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-setLayoutCount-00286", - "text": " setLayoutCount must be less than or equal to VkPhysicalDeviceLimits::maxBoundDescriptorSets" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-00292", - "text": " Any two elements of pPushConstantRanges must not include the same stage in stageFlags" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-parameter", - "text": " If setLayoutCount is not 0, pSetLayouts must be a valid pointer to an array of setLayoutCount valid VkDescriptorSetLayout handles" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pPushConstantRanges-parameter", - "text": " If pushConstantRangeCount is not 0, pPushConstantRanges must be a valid pointer to an array of pushConstantRangeCount valid VkPushConstantRange structures" - } - ], - "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00287", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00288", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00289", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00290", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00291", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01676", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01677", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01678", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01679", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01680", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01681", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01682", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01683", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-01684", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments" - } - ], - "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02212", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorInlineUniformBlocks" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02213", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetInlineUniformBlocks" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03016", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSamplers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03017", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorUniformBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03018", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03019", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorSampledImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03020", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorStorageImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03021", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxPerStageDescriptorInputAttachments" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03022", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSamplers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03023", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER and VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindUniformBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03024", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER and VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03025", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindSampledImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03026", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindStorageImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03027", - "text": " The total number of descriptors with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxPerStageDescriptorUpdateAfterBindInputAttachments" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03028", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSamplers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03029", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03030", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetUniformBuffersDynamic" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03031", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03032", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageBuffersDynamic" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03033", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetSampledImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03034", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetStorageImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03035", - "text": " The total number of descriptors in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceLimits::maxDescriptorSetInputAttachments" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03036", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_SAMPLER and VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSamplers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03037", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03038", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindUniformBuffersDynamic" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03039", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffers" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03040", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageBuffersDynamic" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03041", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, and VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindSampledImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03042", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, and VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindStorageImages" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-03043", - "text": " The total number of descriptors of the type VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceDescriptorIndexingProperties::maxDescriptorSetUpdateAfterBindInputAttachments" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02214", - "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorInlineUniformBlocks" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02215", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02216", - "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetInlineUniformBlocks" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02217", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceInlineUniformBlockPropertiesEXT::maxDescriptorSetUpdateAfterBindInlineUniformBlocks" - } - ], - "(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-00293", - "text": " pSetLayouts must not contain more than one descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" - } - ], - "(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03571", - "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorAccelerationStructures" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03572", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR to any given shader stage across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPerStageDescriptorUpdateAfterBindAccelerationStructures" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03573", - "text": " The total number of bindings in descriptor set layouts created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetAccelerationStructures" - }, - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-03574", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxDescriptorSetUpdateAfterBindAccelerationStructures" - } - ], - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-descriptorType-02381", - "text": " The total number of bindings with a descriptorType of VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV accessible across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxDescriptorSetAccelerationStructures" - } - ], - "(VK_EXT_fragment_density_map2)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pImmutableSamplers-03566", - "text": " The total number of pImmutableSamplers created with flags containing VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT or VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT across all shader stages and across all elements of pSetLayouts must be less than or equal to VkPhysicalDeviceFragmentDensityMap2PropertiesEXT::maxDescriptorSetSubsampledSamplers" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkPipelineLayoutCreateInfo-pSetLayouts-04606", - "text": " Any element of pSetLayouts must not have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE bit set" - } - ] - }, - "VkPushConstantRange": { - "core": [ - { - "vuid": "VUID-VkPushConstantRange-offset-00294", - "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" - }, - { - "vuid": "VUID-VkPushConstantRange-offset-00295", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-VkPushConstantRange-size-00296", - "text": " size must be greater than 0" - }, - { - "vuid": "VUID-VkPushConstantRange-size-00297", - "text": " size must be a multiple of 4" - }, - { - "vuid": "VUID-VkPushConstantRange-size-00298", - "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" - }, - { - "vuid": "VUID-VkPushConstantRange-stageFlags-parameter", - "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" - }, - { - "vuid": "VUID-VkPushConstantRange-stageFlags-requiredbitmask", - "text": " stageFlags must not be 0" - } - ] - }, - "vkDestroyPipelineLayout": { - "core": [ - { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00299", - "text": " If VkAllocationCallbacks were provided when pipelineLayout was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-00300", - "text": " If no VkAllocationCallbacks were provided when pipelineLayout was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-02004", - "text": " pipelineLayout must not have been passed to any vkCmd* command for any command buffers that are still in the recording state when vkDestroyPipelineLayout is called" - }, - { - "vuid": "VUID-vkDestroyPipelineLayout-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parameter", - "text": " If pipelineLayout is not VK_NULL_HANDLE, pipelineLayout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-vkDestroyPipelineLayout-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyPipelineLayout-pipelineLayout-parent", - "text": " If pipelineLayout is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreateDescriptorPool": { - "core": [ - { - "vuid": "VUID-vkCreateDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateDescriptorPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorPoolCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateDescriptorPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDescriptorPool-pDescriptorPool-parameter", - "text": " pDescriptorPool must be a valid pointer to a VkDescriptorPool handle" - } - ] - }, - "VkDescriptorPoolCreateInfo": { - "core": [ - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-maxSets-00301", - "text": " maxSets must be greater than 0" - }, - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO" - }, - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDescriptorPoolInlineUniformBlockCreateInfoEXT or VkMutableDescriptorTypeCreateInfoVALVE" - }, - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-parameter", - "text": " flags must be a valid combination of VkDescriptorPoolCreateFlagBits values" - }, - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-pPoolSizes-parameter", - "text": " pPoolSizes must be a valid pointer to an array of poolSizeCount valid VkDescriptorPoolSize structures" - }, - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-poolSizeCount-arraylength", - "text": " poolSizeCount must be greater than 0" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)+(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04607", - "text": " If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE bit set, then the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT bit must not be set" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-mutableDescriptorType-04608", - "text": " If VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::mutableDescriptorType is not enabled, pPoolSizes must not contain a descriptorType of VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - }, - { - "vuid": "VUID-VkDescriptorPoolCreateInfo-flags-04609", - "text": " If flags has the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE bit set, VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE::mutableDescriptorType must be enabled" - } - ] - }, - "VkDescriptorPoolInlineUniformBlockCreateInfoEXT": { - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkDescriptorPoolInlineUniformBlockCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT" - } - ] - }, - "VkDescriptorPoolSize": { - "core": [ - { - "vuid": "VUID-VkDescriptorPoolSize-descriptorCount-00302", - "text": " descriptorCount must be greater than 0" - }, - { - "vuid": "VUID-VkDescriptorPoolSize-type-parameter", - "text": " type must be a valid VkDescriptorType value" - } - ], - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkDescriptorPoolSize-type-02218", - "text": " If type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT then descriptorCount must be a multiple of 4" - } - ] - }, - "vkDestroyDescriptorPool": { - "core": [ - { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00303", - "text": " All submitted commands that refer to descriptorPool (via any allocated descriptor sets) must have completed execution" - }, - { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00304", - "text": " If VkAllocationCallbacks were provided when descriptorPool was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-00305", - "text": " If no VkAllocationCallbacks were provided when descriptorPool was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parameter", - "text": " If descriptorPool is not VK_NULL_HANDLE, descriptorPool must be a valid VkDescriptorPool handle" - }, - { - "vuid": "VUID-vkDestroyDescriptorPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyDescriptorPool-descriptorPool-parent", - "text": " If descriptorPool is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkAllocateDescriptorSets": { - "core": [ - { - "vuid": "VUID-vkAllocateDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo-parameter", - "text": " pAllocateInfo must be a valid pointer to a valid VkDescriptorSetAllocateInfo structure" - }, - { - "vuid": "VUID-vkAllocateDescriptorSets-pDescriptorSets-parameter", - "text": " pDescriptorSets must be a valid pointer to an array of pAllocateInfo->descriptorSetCount VkDescriptorSet handles" - }, - { - "vuid": "VUID-vkAllocateDescriptorSets-pAllocateInfo::descriptorSetCount-arraylength", - "text": " pAllocateInfo->descriptorSetCount must be greater than 0" - } - ] - }, - "VkDescriptorSetAllocateInfo": { - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-00306", - "text": " descriptorSetCount must not be greater than the number of sets that are currently available for allocation in descriptorPool" - }, - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-00307", - "text": " descriptorPool must have enough free descriptor capacity remaining to allocate the descriptor sets of the specified layouts" - } - ], - "(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-00308", - "text": " Each element of pSetLayouts must not have been created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR set" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-03044", - "text": " If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-04610", - "text": " If any element of pSetLayouts was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE bit set, descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE flag set" - } - ], - "core": [ - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO" - }, - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDescriptorSetVariableDescriptorCountAllocateInfo" - }, - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" - }, - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-pSetLayouts-parameter", - "text": " pSetLayouts must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSetLayout handles" - }, - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" - }, - { - "vuid": "VUID-VkDescriptorSetAllocateInfo-commonparent", - "text": " Both of descriptorPool, and the elements of pSetLayouts must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkDescriptorSetVariableDescriptorCountAllocateInfo": { - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-descriptorSetCount-03045", - "text": " If descriptorSetCount is not zero, descriptorSetCount must equal VkDescriptorSetAllocateInfo::descriptorSetCount" - }, - { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pSetLayouts-03046", - "text": " If VkDescriptorSetAllocateInfo::pSetLayouts[i] has a variable descriptor count binding, then pDescriptorCounts[i] must be less than or equal to the descriptor count specified for that binding when the descriptor set layout was created" - }, - { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO" - }, - { - "vuid": "VUID-VkDescriptorSetVariableDescriptorCountAllocateInfo-pDescriptorCounts-parameter", - "text": " If descriptorSetCount is not 0, pDescriptorCounts must be a valid pointer to an array of descriptorSetCount uint32_t values" - } - ] - }, - "vkFreeDescriptorSets": { - "core": [ - { - "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00309", - "text": " All submitted commands that refer to any element of pDescriptorSets must have completed execution" - }, - { - "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-00310", - "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount VkDescriptorSet handles, each element of which must either be a valid handle or VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-00312", - "text": " descriptorPool must have been created with the VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT flag" - }, - { - "vuid": "VUID-vkFreeDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" - }, - { - "vuid": "VUID-vkFreeDescriptorSets-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" - }, - { - "vuid": "VUID-vkFreeDescriptorSets-descriptorPool-parent", - "text": " descriptorPool must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkFreeDescriptorSets-pDescriptorSets-parent", - "text": " Each element of pDescriptorSets that is a valid handle must have been created, allocated, or retrieved from descriptorPool" - } - ] - }, - "vkResetDescriptorPool": { - "core": [ - { - "vuid": "VUID-vkResetDescriptorPool-descriptorPool-00313", - "text": " All uses of descriptorPool (via any allocated descriptor sets) must have completed execution" - }, - { - "vuid": "VUID-vkResetDescriptorPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parameter", - "text": " descriptorPool must be a valid VkDescriptorPool handle" - }, - { - "vuid": "VUID-vkResetDescriptorPool-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-vkResetDescriptorPool-descriptorPool-parent", - "text": " descriptorPool must have been created, allocated, or retrieved from device" - } - ] - }, - "vkUpdateDescriptorSets": { - "!(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-vkUpdateDescriptorSets-dstSet-00314", - "text": " The dstSet member of each element of pDescriptorWrites or pDescriptorCopies must not be used by any command that was recorded to a command buffer which is in the pending state" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-vkUpdateDescriptorSets-None-03047", - "text": " Descriptor bindings updated by this command which were created without the VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT or VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT bits set must not be used by any command that was recorded to a command buffer which is in the pending state" - } - ], - "core": [ - { - "vuid": "VUID-vkUpdateDescriptorSets-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorWrites-parameter", - "text": " If descriptorWriteCount is not 0, pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" - }, - { - "vuid": "VUID-vkUpdateDescriptorSets-pDescriptorCopies-parameter", - "text": " If descriptorCopyCount is not 0, pDescriptorCopies must be a valid pointer to an array of descriptorCopyCount valid VkCopyDescriptorSet structures" - } - ] - }, - "VkWriteDescriptorSet": { - "core": [ - { - "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00315", - "text": " dstBinding must be less than or equal to the maximum value of binding of all VkDescriptorSetLayoutBinding structures specified when dstSet’s descriptor set layout was created" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-dstBinding-00316", - "text": " dstBinding must be a binding with a non-zero descriptorCount" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00317", - "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical descriptorType and stageFlags" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-00318", - "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must all either use immutable samplers or must all not use immutable samplers" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00319", - "text": " descriptorType must match the type of dstBinding within dstSet" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-dstSet-00320", - "text": " dstSet must be a valid VkDescriptorSet handle" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-dstArrayElement-00321", - "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00322", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, pImageInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorImageInfo structures" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02994", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, each element of pTexelBufferView must be either a valid VkBufferView handle or VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02995", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER and the nullDescriptor feature is not enabled, each element of pTexelBufferView must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00324", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, pBufferInfo must be a valid pointer to an array of descriptorCount valid VkDescriptorBufferInfo structures" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00325", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was not allocated with a layout that included immutable samplers for dstBinding with descriptorType, the sampler member of each element of pImageInfo must be a valid VkSampler object" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02996", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must be either a valid VkImageView handle or VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02997", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT and the nullDescriptor feature is not enabled, the imageView member of each element of pImageInfo must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00327", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00328", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the offset member of each element of pBufferInfo must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00329", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER, VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, VK_DESCRIPTOR_TYPE_STORAGE_BUFFER, or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, and the buffer member of any element of pBufferInfo is the handle of a non-sparse buffer, then that buffer must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00330", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT set" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00331", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the buffer member of each element of pBufferInfo must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT set" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00332", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER or VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxUniformBufferRange" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00333", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_BUFFER or VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC, the range member of each element of pBufferInfo, or the effective range if range is VK_WHOLE_SIZE, must be less than or equal to VkPhysicalDeviceLimits::maxStorageBufferRange" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00334", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT set" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00335", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER, the VkBuffer that each element of pTexelBufferView was created from must have been created with VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT set" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00336", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE or VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with the identity swizzle" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00337", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE or VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_SAMPLED_BIT set" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04149", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Sampled Image" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04150", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER the imageLayout member of each element of pImageInfo must be a member of the list given in Combined Image Sampler" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04151", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT the imageLayout member of each element of pImageInfo must be a member of the list given in Input Attachment" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-04152", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE the imageLayout member of each element of pImageInfo must be a member of the list given in Storage Image" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00338", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT set" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-00339", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_STORAGE_IMAGE, the imageView member of each element of pImageInfo must have been created with VK_IMAGE_USAGE_STORAGE_BIT set" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02752", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkWriteDescriptorSetAccelerationStructureKHR, VkWriteDescriptorSetAccelerationStructureNV, or VkWriteDescriptorSetInlineUniformBlockEXT" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-arraylength", - "text": " descriptorCount must be greater than 0" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-commonparent", - "text": " Both of dstSet, and the elements of pTexelBufferView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02219", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02220", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02221", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, the pNext chain must include a VkWriteDescriptorSetInlineUniformBlockEXT structure whose dataSize member equals descriptorCount" - } - ], - "(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02382", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureKHR structure whose accelerationStructureCount member equals descriptorCount" - } - ], - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-03817", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV, the pNext chain must include a VkWriteDescriptorSetAccelerationStructureNV structure whose accelerationStructureCount member equals descriptorCount" - } - ], - "(VK_VULKAN_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01946", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE, then the imageView member of each pImageInfo element must have been created without a VkSamplerYcbcrConversionInfo structure in its pNext chain" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-02738", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and if any element of pImageInfo has a imageView member that was created with a VkSamplerYcbcrConversionInfo structure in its pNext chain, then dstSet must have been allocated with a layout that included immutable samplers for dstBinding, and the corresponding immutable sampler must have been created with an identically defined VkSamplerYcbcrConversionInfo object" - }, - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorType-01948", - "text": " If descriptorType is VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, and dstSet was allocated with a layout that included immutable samplers for dstBinding, then the imageView member of each element of pImageInfo which corresponds to an immutable sampler that enables sampler {YCbCr} conversion must have been created with a VkSamplerYcbcrConversionInfo structure in its pNext chain with an identically defined VkSamplerYcbcrConversionInfo to the corresponding immutable sampler" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-descriptorCount-03048", - "text": " All consecutive bindings updated via a single VkWriteDescriptorSet structure, except those with a descriptorCount of zero, must have identical VkDescriptorBindingFlagBits" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkWriteDescriptorSet-dstSet-04611", - "text": " If the VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, the new active descriptor type descriptorType must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding" - } - ] - }, - "VkDescriptorBufferInfo": { - "core": [ - { - "vuid": "VUID-VkDescriptorBufferInfo-offset-00340", - "text": " offset must be less than the size of buffer" - }, - { - "vuid": "VUID-VkDescriptorBufferInfo-range-00341", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be greater than 0" - }, - { - "vuid": "VUID-VkDescriptorBufferInfo-range-00342", - "text": " If range is not equal to VK_WHOLE_SIZE, range must be less than or equal to the size of buffer minus offset" - }, - { - "vuid": "VUID-VkDescriptorBufferInfo-buffer-02998", - "text": " If the nullDescriptor feature is not enabled, buffer must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkDescriptorBufferInfo-buffer-parameter", - "text": " If buffer is not VK_NULL_HANDLE, buffer must be a valid VkBuffer handle" - } - ], - "(VK_EXT_robustness2)": [ - { - "vuid": "VUID-VkDescriptorBufferInfo-buffer-02999", - "text": " If buffer is VK_NULL_HANDLE, offset must be zero and range must be VK_WHOLE_SIZE" - } - ] - }, - "VkDescriptorImageInfo": { - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkDescriptorImageInfo-imageView-00343", - "text": " imageView must not be 2D or 2D array image view created from a 3D image" - } - ], - "core": [ - { - "vuid": "VUID-VkDescriptorImageInfo-imageView-01976", - "text": " If imageView is created from a depth/stencil image, the aspectMask used to create the imageView must include either VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT but not both" - }, - { - "vuid": "VUID-VkDescriptorImageInfo-imageLayout-00344", - "text": " imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time this descriptor is accessed as defined by the image layout matching rules" - }, - { - "vuid": "VUID-VkDescriptorImageInfo-commonparent", - "text": " Both of imageView, and sampler that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkDescriptorImageInfo-sampler-01564", - "text": " If sampler is used and the VkFormat of the image is a multi-planar format, the image must have been created with VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, and the aspectMask of the imageView must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT or (for three-plane formats only) VK_IMAGE_ASPECT_PLANE_2_BIT" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkDescriptorImageInfo-mutableComparisonSamplers-04450", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::mutableComparisonSamplers is VK_FALSE, then sampler must have been created with VkSamplerCreateInfo::compareEnable set to VK_FALSE." - } - ] - }, - "VkWriteDescriptorSetInlineUniformBlockEXT": { - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-02222", - "text": " dataSize must be an integer multiple of 4" - }, - { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT" - }, - { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, - { - "vuid": "VUID-VkWriteDescriptorSetInlineUniformBlockEXT-dataSize-arraylength", - "text": " dataSize must be greater than 0" - } - ] - }, - "VkWriteDescriptorSetAccelerationStructureKHR": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-02236", - "text": " accelerationStructureCount must be equal to descriptorCount in the extended structure" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03579", - "text": " Each acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR and built with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureKHR handles" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" - } - ], - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureKHR-pAccelerationStructures-03580", - "text": " If the nullDescriptor feature is not enabled, each member of pAccelerationStructures must not be VK_NULL_HANDLE" - } - ] - }, - "VkWriteDescriptorSetAccelerationStructureNV": { - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-03747", - "text": " accelerationStructureCount must be equal to descriptorCount in the extended structure" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03748", - "text": " Each acceleration structure in pAccelerationStructures must have been created with VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-03749", - "text": " If the nullDescriptor feature is not enabled, each member of pAccelerationStructures must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid or VK_NULL_HANDLE VkAccelerationStructureNV handles" - }, - { - "vuid": "VUID-VkWriteDescriptorSetAccelerationStructureNV-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" - } - ] - }, - "VkCopyDescriptorSet": { - "core": [ - { - "vuid": "VUID-VkCopyDescriptorSet-srcBinding-00345", - "text": " srcBinding must be a valid binding within srcSet" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcArrayElement-00346", - "text": " The sum of srcArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by srcBinding, and all applicable consecutive bindings, as described by consecutive binding updates" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-dstBinding-00347", - "text": " dstBinding must be a valid binding within dstSet" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-dstArrayElement-00348", - "text": " The sum of dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding specified by dstBinding, and all applicable consecutive bindings, as described by consecutive binding updates" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02632", - "text": " The type of dstBinding within dstSet must be equal to the type of srcBinding within srcSet" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-00349", - "text": " If srcSet is equal to dstSet, then the source and destination ranges of descriptors must not overlap, where the ranges may include array elements from consecutive bindings as described by consecutive binding updates" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02753", - "text": " If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_SAMPLER, then dstSet must not have been allocated with a layout that included immutable samplers for dstBinding" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-parameter", - "text": " srcSet must be a valid VkDescriptorSet handle" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-dstSet-parameter", - "text": " dstSet must be a valid VkDescriptorSet handle" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-commonparent", - "text": " Both of dstSet, and srcSet must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02223", - "text": " If the descriptor type of the descriptor set binding specified by srcBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, srcArrayElement must be an integer multiple of 4" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-dstBinding-02224", - "text": " If the descriptor type of the descriptor set binding specified by dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcBinding-02225", - "text": " If the descriptor type of the descriptor set binding specified by either srcBinding or dstBinding is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" - } - ], - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01918", - "text": " If srcSet’s layout was created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet’s layout must also have been created with the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01919", - "text": " If srcSet’s layout was created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set, then dstSet’s layout must also have been created without the VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT flag set" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01920", - "text": " If the descriptor pool from which srcSet was allocated was created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created with the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-01921", - "text": " If the descriptor pool from which srcSet was allocated was created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set, then the descriptor pool from which dstSet was allocated must also have been created without the VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT flag set" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkCopyDescriptorSet-dstSet-04612", - "text": " If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, the new active descriptor type must exist in the corresponding pMutableDescriptorTypeLists list for dstBinding if the new active descriptor type is not VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-srcSet-04613", - "text": " If VkDescriptorSetLayoutBinding for srcSet at srcBinding is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE and the VkDescriptorSetLayoutBinding for dstSet at dstBinding is not VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, the active descriptor type for the source descriptor must match the descriptor type of dstBinding" - }, - { - "vuid": "VUID-VkCopyDescriptorSet-dstSet-04614", - "text": " If VkDescriptorSetLayoutBinding for dstSet at dstBinding is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, and the new active descriptor type is VK_DESCRIPTOR_TYPE_MUTABLE_VALVE, the pMutableDescriptorTypeLists for srcBinding and dstBinding must match exactly" - } - ] - }, - "vkCreateDescriptorUpdateTemplate": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ - { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDescriptorUpdateTemplateCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDescriptorUpdateTemplate-pDescriptorUpdateTemplate-parameter", - "text": " pDescriptorUpdateTemplate must be a valid pointer to a VkDescriptorUpdateTemplate handle" - } - ] - }, - "VkDescriptorUpdateTemplateCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00350", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must be a valid VkDescriptorSetLayout handle" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-pDescriptorUpdateEntries-parameter", - "text": " pDescriptorUpdateEntries must be a valid pointer to an array of descriptorUpdateEntryCount valid VkDescriptorUpdateTemplateEntry structures" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-parameter", - "text": " templateType must be a valid VkDescriptorUpdateTemplateType value" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-descriptorUpdateEntryCount-arraylength", - "text": " descriptorUpdateEntryCount must be greater than 0" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-commonparent", - "text": " Both of descriptorSetLayout, and pipelineLayout that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00351", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00352", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, pipelineLayout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-00353", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" - } - ], - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkDescriptorUpdateTemplateCreateInfo-templateType-04615", - "text": " If templateType is VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, descriptorSetLayout must not contain a binding with type VK_DESCRIPTOR_TYPE_MUTABLE_VALVE" - } - ] - }, - "VkDescriptorUpdateTemplateEntry": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ - { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstBinding-00354", - "text": " dstBinding must be a valid binding in the descriptor set layout implicitly specified when using a descriptor update template to update descriptors" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-dstArrayElement-00355", - "text": " dstArrayElement and descriptorCount must be less than or equal to the number of array elements in the descriptor set binding implicitly specified when using a descriptor update template to update descriptors, and all applicable consecutive bindings, as described by consecutive binding updates" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptorType-parameter", - "text": " descriptorType must be a valid VkDescriptorType value" - } - ], - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)+(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02226", - "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, dstArrayElement must be an integer multiple of 4" - }, - { - "vuid": "VUID-VkDescriptorUpdateTemplateEntry-descriptor-02227", - "text": " If descriptor type is VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT, descriptorCount must be an integer multiple of 4" - } - ] - }, - "vkDestroyDescriptorUpdateTemplate": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ - { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00356", - "text": " If VkAllocationCallbacks were provided when descriptorSetLayout was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorSetLayout-00357", - "text": " If no VkAllocationCallbacks were provided when descriptorSetLayout was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parameter", - "text": " If descriptorUpdateTemplate is not VK_NULL_HANDLE, descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" - }, - { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyDescriptorUpdateTemplate-descriptorUpdateTemplate-parent", - "text": " If descriptorUpdateTemplate is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkUpdateDescriptorSetWithTemplate": { - "(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ - { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-pData-01685", - "text": " pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplate" - }, - { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorSet-parameter", - "text": " descriptorSet must be a valid VkDescriptorSet handle" - }, - { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parameter", - "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" - }, - { - "vuid": "VUID-vkUpdateDescriptorSetWithTemplate-descriptorUpdateTemplate-parent", - "text": " descriptorUpdateTemplate must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdBindDescriptorSets": { - "core": [ - { - "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-00358", - "text": " Each element of pDescriptorSets must have been allocated with a VkDescriptorSetLayout that matches (is the same as, or identically defined as) the VkDescriptorSetLayout at set n in layout, where n is the sum of firstSet and the index into pDescriptorSets" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-dynamicOffsetCount-00359", - "text": " dynamicOffsetCount must be equal to the total number of dynamic descriptors in pDescriptorSets" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-firstSet-00360", - "text": " The sum of firstSet and descriptorSetCount must be less than or equal to VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-00361", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01971", - "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minUniformBufferOffsetAlignment" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-01972", - "text": " Each element of pDynamicOffsets which corresponds to a descriptor binding with type VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC must be a multiple of VkPhysicalDeviceLimits::minStorageBufferOffsetAlignment" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-01979", - "text": " For each dynamic uniform or storage buffer binding in pDescriptorSets, the sum of the effective offset, as defined above, and the range of the binding must be less than or equal to the size of the buffer" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-parameter", - "text": " pDescriptorSets must be a valid pointer to an array of descriptorSetCount valid VkDescriptorSet handles" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-pDynamicOffsets-parameter", - "text": " If dynamicOffsetCount is not 0, pDynamicOffsets must be a valid pointer to an array of dynamicOffsetCount uint32_t values" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-descriptorSetCount-arraylength", - "text": " descriptorSetCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdBindDescriptorSets-commonparent", - "text": " Each of commandBuffer, layout, and the elements of pDescriptorSets must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-vkCmdBindDescriptorSets-pDescriptorSets-04616", - "text": " Each element of pDescriptorSets must not have been allocated from a VkDescriptorPool with the VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE flag set" - } - ] - }, - "vkCmdPushDescriptorSetKHR": { - "(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-00363", - "text": " pipelineBindPoint must be supported by the commandBuffer’s parent VkCommandPool’s queue family" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00364", - "text": " set must be less than VkPipelineLayoutCreateInfo::setLayoutCount provided when layout was created" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-set-00365", - "text": " set must be the unique set number in the pipeline layout that uses a descriptor set layout that was created with VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-pDescriptorWrites-parameter", - "text": " pDescriptorWrites must be a valid pointer to an array of descriptorWriteCount valid VkWriteDescriptorSet structures" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-descriptorWriteCount-arraylength", - "text": " descriptorWriteCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetKHR-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdPushDescriptorSetWithTemplateKHR": { - "(VK_KHR_push_descriptor)+(VK_VERSION_1_1,VK_KHR_descriptor_update_template)": [ - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-00366", - "text": " The pipelineBindPoint specified during the creation of the descriptor update template must be supported by the commandBuffer’s parent VkCommandPool’s queue family" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-pData-01686", - "text": " pData must be a valid pointer to a memory containing one or more valid instances of VkDescriptorImageInfo, VkDescriptorBufferInfo, or VkBufferView in a layout defined by descriptorUpdateTemplate when it was created with vkCreateDescriptorUpdateTemplateKHR" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-descriptorUpdateTemplate-parameter", - "text": " descriptorUpdateTemplate must be a valid VkDescriptorUpdateTemplate handle" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdPushDescriptorSetWithTemplateKHR-commonparent", - "text": " Each of commandBuffer, descriptorUpdateTemplate, and layout must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdPushConstants": { - "core": [ - { - "vuid": "VUID-vkCmdPushConstants-offset-01795", - "text": " For each byte in the range specified by offset and size and for each shader stage in stageFlags, there must be a push constant range in layout that includes that byte and that stage" - }, - { - "vuid": "VUID-vkCmdPushConstants-offset-01796", - "text": " For each byte in the range specified by offset and size and for each push constant range that overlaps that byte, stageFlags must include all stages in that push constant range’s VkPushConstantRange::stageFlags" - }, - { - "vuid": "VUID-vkCmdPushConstants-offset-00368", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdPushConstants-size-00369", - "text": " size must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdPushConstants-offset-00370", - "text": " offset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" - }, - { - "vuid": "VUID-vkCmdPushConstants-size-00371", - "text": " size must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus offset" - }, - { - "vuid": "VUID-vkCmdPushConstants-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdPushConstants-layout-parameter", - "text": " layout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-vkCmdPushConstants-stageFlags-parameter", - "text": " stageFlags must be a valid combination of VkShaderStageFlagBits values" - }, - { - "vuid": "VUID-vkCmdPushConstants-stageFlags-requiredbitmask", - "text": " stageFlags must not be 0" - }, - { - "vuid": "VUID-vkCmdPushConstants-pValues-parameter", - "text": " pValues must be a valid pointer to an array of size bytes" - }, - { - "vuid": "VUID-vkCmdPushConstants-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdPushConstants-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdPushConstants-size-arraylength", - "text": " size must be greater than 0" - }, - { - "vuid": "VUID-vkCmdPushConstants-commonparent", - "text": " Both of commandBuffer, and layout must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkGetBufferDeviceAddress": { - "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-vkGetBufferDeviceAddress-bufferDeviceAddress-03324", - "text": " The bufferDeviceAddress or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddress feature must be enabled" - }, - { - "vuid": "VUID-vkGetBufferDeviceAddress-device-03325", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice or VkPhysicalDeviceBufferDeviceAddressFeaturesEXT::bufferDeviceAddressMultiDevice feature must be enabled" - }, - { - "vuid": "VUID-vkGetBufferDeviceAddress-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetBufferDeviceAddress-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure" - } - ] - }, - "VkBufferDeviceAddressInfo": { - "(VK_VERSION_1_2,VK_EXT_buffer_device_address,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02600", - "text": " If buffer is non-sparse and was not created with the VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT flag, then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-02601", - "text": " buffer must have been created with VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT" - }, - { - "vuid": "VUID-VkBufferDeviceAddressInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO" - }, - { - "vuid": "VUID-VkBufferDeviceAddressInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkBufferDeviceAddressInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - } - ] - }, - "vkGetBufferOpaqueCaptureAddress": { - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-None-03326", - "text": " The bufferDeviceAddress feature must be enabled" - }, - { - "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-03327", - "text": " If device was created with multiple physical devices, then the bufferDeviceAddressMultiDevice feature must be enabled" - }, - { - "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetBufferOpaqueCaptureAddress-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkBufferDeviceAddressInfo structure" - } - ] - }, - "BaryCoordNV": { - "(VK_NV_fragment_shader_barycentric)": [ - { - "vuid": "VUID-BaryCoordNV-BaryCoordNV-04154", - "text": " The BaryCoordNV decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordNV-BaryCoordNV-04155", - "text": " The variable decorated with BaryCoordNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordNV-BaryCoordNV-04156", - "text": " The variable decorated with BaryCoordNV must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordNoPerspAMD": { - "(VK_AMD_shader_explicit_vertex_parameter)": [ - { - "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04157", - "text": " The BaryCoordNoPerspAMD decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04158", - "text": " The variable decorated with BaryCoordNoPerspAMD must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordNoPerspAMD-BaryCoordNoPerspAMD-04159", - "text": " The variable decorated with BaryCoordNoPerspAMD must be declared as a two-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordNoPerspNV": { - "(VK_NV_fragment_shader_barycentric)": [ - { - "vuid": "VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04160", - "text": " The BaryCoordNoPerspNV decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04161", - "text": " The variable decorated with BaryCoordNoPerspNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordNoPerspNV-BaryCoordNoPerspNV-04162", - "text": " The variable decorated with BaryCoordNoPerspNV must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordNoPerspCentroidAMD": { - "(VK_AMD_shader_explicit_vertex_parameter)": [ - { - "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04163", - "text": " The BaryCoordNoPerspCentroidAMD decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04164", - "text": " The variable decorated with BaryCoordNoPerspCentroidAMD must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordNoPerspCentroidAMD-BaryCoordNoPerspCentroidAMD-04165", - "text": " The variable decorated with BaryCoordNoPerspCentroidAMD must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordNoPerspSampleAMD": { - "(VK_AMD_shader_explicit_vertex_parameter)": [ - { - "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04166", - "text": " The BaryCoordNoPerspSampleAMD decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04167", - "text": " The variable decorated with BaryCoordNoPerspSampleAMD must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordNoPerspSampleAMD-BaryCoordNoPerspSampleAMD-04168", - "text": " The variable decorated with BaryCoordNoPerspSampleAMD must be declared as a two-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordPullModelAMD": { - "(VK_AMD_shader_explicit_vertex_parameter)": [ - { - "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04169", - "text": " The BaryCoordPullModelAMD decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04170", - "text": " The variable decorated with BaryCoordPullModelAMD must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordPullModelAMD-BaryCoordPullModelAMD-04171", - "text": " The variable decorated with BaryCoordPullModelAMD must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordSmoothAMD": { - "(VK_AMD_shader_explicit_vertex_parameter)": [ - { - "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04172", - "text": " The BaryCoordSmoothAMD decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04173", - "text": " The variable decorated with BaryCoordSmoothAMD must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordSmoothAMD-BaryCoordSmoothAMD-04174", - "text": " The variable decorated with BaryCoordSmoothAMD must be declared as a two-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordSmoothCentroidAMD": { - "(VK_AMD_shader_explicit_vertex_parameter)": [ - { - "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04175", - "text": " The BaryCoordSmoothCentroidAMD decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04176", - "text": " The variable decorated with BaryCoordSmoothCentroidAMD must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordSmoothCentroidAMD-BaryCoordSmoothCentroidAMD-04177", - "text": " The variable decorated with BaryCoordSmoothCentroidAMD must be declared as a two-component vector of 32-bit floating-point values" - } - ] - }, - "BaryCoordSmoothSampleAMD": { - "(VK_AMD_shader_explicit_vertex_parameter)": [ - { - "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04178", - "text": " The BaryCoordSmoothSampleAMD decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04179", - "text": " The variable decorated with BaryCoordSmoothSampleAMD must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaryCoordSmoothSampleAMD-BaryCoordSmoothSampleAMD-04180", - "text": " The variable decorated with BaryCoordSmoothSampleAMD must be declared as a two-component vector of 32-bit floating-point values" - } - ] - }, - "BaseInstance": { - "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [ - { - "vuid": "VUID-BaseInstance-BaseInstance-04181", - "text": " The BaseInstance decoration must be used only within the Vertex {ExecutionModel}" - }, - { - "vuid": "VUID-BaseInstance-BaseInstance-04182", - "text": " The variable decorated with BaseInstance must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaseInstance-BaseInstance-04183", - "text": " The variable decorated with BaseInstance must be declared as a scalar 32-bit integer value" - } - ] - }, - "BaseVertex": { - "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [ - { - "vuid": "VUID-BaseVertex-BaseVertex-04184", - "text": " The BaseVertex decoration must be used only within the Vertex {ExecutionModel}" - }, - { - "vuid": "VUID-BaseVertex-BaseVertex-04185", - "text": " The variable decorated with BaseVertex must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-BaseVertex-BaseVertex-04186", - "text": " The variable decorated with BaseVertex must be declared as a scalar 32-bit integer value" - } - ] - }, - "ClipDistance": { - "core": [ - { - "vuid": "VUID-ClipDistance-ClipDistance-04187", - "text": " The ClipDistance decoration must be used only within the MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-ClipDistance-ClipDistance-04188", - "text": " The variable decorated with ClipDistance within the MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-ClipDistance-ClipDistance-04189", - "text": " The variable decorated with ClipDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-ClipDistance-ClipDistance-04190", - "text": " The variable decorated with ClipDistance within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared in a {StorageClass} other than Input or Output" - }, - { - "vuid": "VUID-ClipDistance-ClipDistance-04191", - "text": " The variable decorated with ClipDistance must be declared as an array of 32-bit floating-point values" - } - ] - }, - "ClipDistancePerViewNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04192", - "text": " The ClipDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel}" - }, - { - "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04193", - "text": " The variable decorated with ClipDistancePerViewNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04194", - "text": " The variable decorated with ClipDistancePerViewNV must also be decorated with the PerViewNV decoration." - }, - { - "vuid": "VUID-ClipDistancePerViewNV-ClipDistancePerViewNV-04195", - "text": " The variable decorated with ClipDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values" - } - ] - }, - "CullDistance": { - "core": [ - { - "vuid": "VUID-CullDistance-CullDistance-04196", - "text": " The CullDistance decoration must be used only within the MeshNV, Vertex, Fragment, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-CullDistance-CullDistance-04197", - "text": " The variable decorated with CullDistance within the MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-CullDistance-CullDistance-04198", - "text": " The variable decorated with CullDistance within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-CullDistance-CullDistance-04199", - "text": " The variable decorated with CullDistance within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" - }, - { - "vuid": "VUID-CullDistance-CullDistance-04200", - "text": " The variable decorated with CullDistance must be declared as an array of 32-bit floating-point values" - } - ] - }, - "CullDistancePerViewNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04201", - "text": " The CullDistancePerViewNV decoration must be used only within the MeshNV {ExecutionModel}" - }, - { - "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04202", - "text": " The variable decorated with CullDistancePerViewNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04203", - "text": " The variable decorated with CullDistancePerViewNV must also be decorated with the PerViewNV decoration." - }, - { - "vuid": "VUID-CullDistancePerViewNV-CullDistancePerViewNV-04204", - "text": " The variable decorated with CullDistancePerViewNV must be declared as a two-dimensional array of 32-bit floating-point values" - } - ] - }, - "DeviceIndex": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-DeviceIndex-DeviceIndex-04205", - "text": " The variable decorated with DeviceIndex must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-DeviceIndex-DeviceIndex-04206", - "text": " The variable decorated with DeviceIndex must be declared as a scalar 32-bit integer value" - } - ] - }, - "DrawIndex": { - "(VK_VERSION_1_1,VK_KHR_shader_draw_parameters)": [ - { - "vuid": "VUID-DrawIndex-DrawIndex-04207", - "text": " The DrawIndex decoration must be used only within the Vertex, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-DrawIndex-DrawIndex-04208", - "text": " The variable decorated with DrawIndex must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-DrawIndex-DrawIndex-04209", - "text": " The variable decorated with DrawIndex must be declared as a scalar 32-bit integer value" - } - ] - }, - "FragCoord": { - "core": [ - { - "vuid": "VUID-FragCoord-FragCoord-04210", - "text": " The FragCoord decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FragCoord-FragCoord-04211", - "text": " The variable decorated with FragCoord must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-FragCoord-FragCoord-04212", - "text": " The variable decorated with FragCoord must be declared as a four-component vector of 32-bit floating-point values" - } - ] - }, - "FragDepth": { - "core": [ - { - "vuid": "VUID-FragDepth-FragDepth-04213", - "text": " The FragDepth decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FragDepth-FragDepth-04214", - "text": " The variable decorated with FragDepth must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-FragDepth-FragDepth-04215", - "text": " The variable decorated with FragDepth must be declared as a scalar 32-bit floating-point value" - }, - { - "vuid": "VUID-FragDepth-FragDepth-04216", - "text": " If the shader dynamically writes to the variable decorated with FragDepth, the DepthReplacing {ExecutionMode} must be declared" - } - ] - }, - "FragInvocationCountEXT": { - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04217", - "text": " The FragInvocationCountEXT decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04218", - "text": " The variable decorated with FragInvocationCountEXT must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-FragInvocationCountEXT-FragInvocationCountEXT-04219", - "text": " The variable decorated with FragInvocationCountEXT must be declared as a scalar 32-bit integer value" - } - ] - }, - "FragSizeEXT": { - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-FragSizeEXT-FragSizeEXT-04220", - "text": " The FragSizeEXT decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FragSizeEXT-FragSizeEXT-04221", - "text": " The variable decorated with FragSizeEXT must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-FragSizeEXT-FragSizeEXT-04222", - "text": " The variable decorated with FragSizeEXT must be declared as a two-component vector of 32-bit integer values" - } - ] - }, - "FragStencilRefEXT": { - "(VK_EXT_shader_stencil_export)": [ - { - "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04223", - "text": " The FragStencilRefEXT decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04224", - "text": " The variable decorated with FragStencilRefEXT must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-FragStencilRefEXT-FragStencilRefEXT-04225", - "text": " The variable decorated with FragStencilRefEXT must be declared as a scalar integer value" - } - ] - }, - "FragmentSizeNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04226", - "text": " The FragmentSizeNV decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04227", - "text": " The variable decorated with FragmentSizeNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-FragmentSizeNV-FragmentSizeNV-04228", - "text": " The variable decorated with FragmentSizeNV must be declared as a two-component vector of 32-bit integer values" - } - ] - }, - "FrontFacing": { - "core": [ - { - "vuid": "VUID-FrontFacing-FrontFacing-04229", - "text": " The FrontFacing decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FrontFacing-FrontFacing-04230", - "text": " The variable decorated with FrontFacing must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-FrontFacing-FrontFacing-04231", - "text": " The variable decorated with FrontFacing must be declared as a boolean value" - } - ] - }, - "FullyCoveredEXT": { - "(VK_EXT_conservative_rasterization)": [ - { - "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04232", - "text": " The FullyCoveredEXT decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04233", - "text": " The variable decorated with FullyCoveredEXT must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-FullyCoveredEXT-FullyCoveredEXT-04234", - "text": " The variable decorated with FullyCoveredEXT must be declared as a boolean value" - } - ], - "(VK_EXT_conservative_rasterization)+(VK_EXT_post_depth_coverage)": [ - { - "vuid": "VUID-FullyCoveredEXT-conservativeRasterizationPostDepthCoverage-04235", - "text": " If VkPhysicalDeviceConservativeRasterizationPropertiesEXT::conservativeRasterizationPostDepthCoverage is not supported the PostDepthCoverage {ExecutionMode} must not be declared, when a variable with the FullyCoveredEXT decoration is declared" - } - ] - }, - "GlobalInvocationId": { - "core": [ - { - "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04236", - "text": " The GlobalInvocationId decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04237", - "text": " The variable decorated with GlobalInvocationId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-GlobalInvocationId-GlobalInvocationId-04238", - "text": " The variable decorated with GlobalInvocationId must be declared as a three-component vector of 32-bit integer values" - } - ] - }, - "HelperInvocation": { - "core": [ - { - "vuid": "VUID-HelperInvocation-HelperInvocation-04239", - "text": " The HelperInvocation decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-HelperInvocation-HelperInvocation-04240", - "text": " The variable decorated with HelperInvocation must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-HelperInvocation-HelperInvocation-04241", - "text": " The variable decorated with HelperInvocation must be declared as a boolean value" - } - ] - }, - "HitKindKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-HitKindKHR-HitKindKHR-04242", - "text": " The HitKindKHR decoration must be used only within the AnyHitKHR or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-HitKindKHR-HitKindKHR-04243", - "text": " The variable decorated with HitKindKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-HitKindKHR-HitKindKHR-04244", - "text": " The variable decorated with HitKindKHR must be declared as a scalar 32-bit integer value" - } - ] - }, - "HitTNV": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-HitTNV-HitTNV-04245", - "text": " The HitTNV decoration must be used only within the AnyHitNV or ClosestHitNV {ExecutionModel}" - }, - { - "vuid": "VUID-HitTNV-HitTNV-04246", - "text": " The variable decorated with HitTNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-HitTNV-HitTNV-04247", - "text": " The variable decorated with HitTNV must be declared as a scalar 32-bit floating-point value" - } - ] - }, - "IncomingRayFlagsKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04248", - "text": " The IncomingRayFlagsKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" - }, - { - "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04249", - "text": " The variable decorated with IncomingRayFlagsKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-IncomingRayFlagsKHR-IncomingRayFlagsKHR-04250", - "text": " The variable decorated with IncomingRayFlagsKHR must be declared as a scalar 32-bit integer value" - } - ] - }, - "InstanceCustomIndexKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04251", - "text": " The InstanceCustomIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04252", - "text": " The variable decorated with InstanceCustomIndexKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-InstanceCustomIndexKHR-InstanceCustomIndexKHR-04253", - "text": " The variable decorated with InstanceCustomIndexKHR must be declared as a scalar 32-bit integer value" - } - ] - }, - "InstanceId": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-InstanceId-InstanceId-04254", - "text": " The InstanceId decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-InstanceId-InstanceId-04255", - "text": " The variable decorated with InstanceId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-InstanceId-InstanceId-04256", - "text": " The variable decorated with InstanceId must be declared as a scalar 32-bit integer value" - } - ] - }, - "InvocationId": { - "core": [ - { - "vuid": "VUID-InvocationId-InvocationId-04257", - "text": " The InvocationId decoration must be used only within the TessellationControl or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-InvocationId-InvocationId-04258", - "text": " The variable decorated with InvocationId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-InvocationId-InvocationId-04259", - "text": " The variable decorated with InvocationId must be declared as a scalar 32-bit integer value" - } - ] - }, - "InvocationsPerPixelNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04260", - "text": " The InvocationsPerPixelNV decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04261", - "text": " The variable decorated with InvocationsPerPixelNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-InvocationsPerPixelNV-InvocationsPerPixelNV-04262", - "text": " The variable decorated with InvocationsPerPixelNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "InstanceIndex": { - "core": [ - { - "vuid": "VUID-InstanceIndex-InstanceIndex-04263", - "text": " The InstanceIndex decoration must be used only within the Vertex {ExecutionModel}" - }, - { - "vuid": "VUID-InstanceIndex-InstanceIndex-04264", - "text": " The variable decorated with InstanceIndex must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-InstanceIndex-InstanceIndex-04265", - "text": " The variable decorated with InstanceIndex must be declared as a scalar 32-bit integer value" - } - ] - }, - "LaunchIdKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04266", - "text": " The LaunchIdKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR {ExecutionModel}" - }, - { - "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04267", - "text": " The variable decorated with LaunchIdKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-LaunchIdKHR-LaunchIdKHR-04268", - "text": " The variable decorated with LaunchIdKHR must be declared as a three-component vector of 32-bit integer values" - } - ] - }, - "LaunchSizeKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04269", - "text": " The LaunchSizeKHR decoration must be used only within the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR {ExecutionModel}" - }, - { - "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04270", - "text": " The variable decorated with LaunchSizeKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-LaunchSizeKHR-LaunchSizeKHR-04271", - "text": " The variable decorated with LaunchSizeKHR must be declared as a three-component vector of 32-bit integer values" - } - ] - }, - "Layer": { - "core": [ - { - "vuid": "VUID-Layer-Layer-04272", - "text": " The Layer decoration must be used only within the MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-Layer-Layer-04274", - "text": " The variable decorated with Layer within the MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-Layer-Layer-04275", - "text": " The variable decorated with Layer within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-Layer-Layer-04276", - "text": " The variable decorated with Layer must be declared as a scalar 32-bit integer value" - } - ], - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-Layer-Layer-04273", - "text": " If the shaderOutputLayer feature is not enabled then the Layer decoration must be used only within the Geometry or Fragment {ExecutionModel}" - } - ] - }, - "LayerPerViewNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04277", - "text": " The LayerPerViewNV decoration must be used only within the MeshNV {ExecutionModel}" - }, - { - "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04278", - "text": " The variable decorated with LayerPerViewNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04279", - "text": " The variable decorated with LayerPerViewNV must also be decorated with the PerViewNV decoration." - }, - { - "vuid": "VUID-LayerPerViewNV-LayerPerViewNV-04280", - "text": " The variable decorated with LayerPerViewNV must be declared as an array of scalar 32-bit integer values" - } - ] - }, - "LocalInvocationId": { - "core": [ - { - "vuid": "VUID-LocalInvocationId-LocalInvocationId-04281", - "text": " The LocalInvocationId decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-LocalInvocationId-LocalInvocationId-04282", - "text": " The variable decorated with LocalInvocationId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-LocalInvocationId-LocalInvocationId-04283", - "text": " The variable decorated with LocalInvocationId must be declared as a three-component vector of 32-bit integer values" - } - ] - }, - "LocalInvocationIndex": { - "core": [ - { - "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04284", - "text": " The LocalInvocationIndex decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04285", - "text": " The variable decorated with LocalInvocationIndex must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-LocalInvocationIndex-LocalInvocationIndex-04286", - "text": " The variable decorated with LocalInvocationIndex must be declared as a scalar 32-bit integer value" - } - ] - }, - "MeshViewCountNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04287", - "text": " The MeshViewCountNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04288", - "text": " The variable decorated with MeshViewCountNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-MeshViewCountNV-MeshViewCountNV-04289", - "text": " The variable decorated with MeshViewCountNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "MeshViewIndicesNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04290", - "text": " The MeshViewIndicesNV decoration must be used only within the MeshNV or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04291", - "text": " The variable decorated with MeshViewIndicesNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-MeshViewIndicesNV-MeshViewIndicesNV-04292", - "text": " The variable decorated with MeshViewIndicesNV must be declared as an array of scalar 32-bit integer values" - } - ] - }, - "NumSubgroups": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-NumSubgroups-NumSubgroups-04293", - "text": " The NumSubgroups decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-NumSubgroups-NumSubgroups-04294", - "text": " The variable decorated with NumSubgroups must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-NumSubgroups-NumSubgroups-04295", - "text": " The variable decorated with NumSubgroups must be declared as a scalar 32-bit integer value" - } - ] - }, - "NumWorkgroups": { - "core": [ - { - "vuid": "VUID-NumWorkgroups-NumWorkgroups-04296", - "text": " The NumWorkgroups decoration must be used only within the GLCompute {ExecutionModel}" - }, - { - "vuid": "VUID-NumWorkgroups-NumWorkgroups-04297", - "text": " The variable decorated with NumWorkgroups must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-NumWorkgroups-NumWorkgroups-04298", - "text": " The variable decorated with NumWorkgroups must be declared as a three-component vector of 32-bit integer values" - } - ] - }, - "ObjectRayDirectionKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04299", - "text": " The ObjectRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04300", - "text": " The variable decorated with ObjectRayDirectionKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-ObjectRayDirectionKHR-ObjectRayDirectionKHR-04301", - "text": " The variable decorated with ObjectRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "ObjectRayOriginKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04302", - "text": " The ObjectRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04303", - "text": " The variable decorated with ObjectRayOriginKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-ObjectRayOriginKHR-ObjectRayOriginKHR-04304", - "text": " The variable decorated with ObjectRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "ObjectToWorldKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04305", - "text": " The ObjectToWorldKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04306", - "text": " The variable decorated with ObjectToWorldKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-ObjectToWorldKHR-ObjectToWorldKHR-04307", - "text": " The variable decorated with ObjectToWorldKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values" - } - ] - }, - "PatchVertices": { - "core": [ - { - "vuid": "VUID-PatchVertices-PatchVertices-04308", - "text": " The PatchVertices decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}" - }, - { - "vuid": "VUID-PatchVertices-PatchVertices-04309", - "text": " The variable decorated with PatchVertices must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-PatchVertices-PatchVertices-04310", - "text": " The variable decorated with PatchVertices must be declared as a scalar 32-bit integer value" - } - ] - }, - "PointCoord": { - "core": [ - { - "vuid": "VUID-PointCoord-PointCoord-04311", - "text": " The PointCoord decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-PointCoord-PointCoord-04312", - "text": " The variable decorated with PointCoord must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-PointCoord-PointCoord-04313", - "text": " The variable decorated with PointCoord must be declared as a two-component vector of 32-bit floating-point values" - } - ] - }, - "PointSize": { - "core": [ - { - "vuid": "VUID-PointSize-PointSize-04314", - "text": " The PointSize decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-PointSize-PointSize-04315", - "text": " The variable decorated with PointSize within the MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-PointSize-PointSize-04316", - "text": " The variable decorated with PointSize within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" - }, - { - "vuid": "VUID-PointSize-PointSize-04317", - "text": " The variable decorated with PointSize must be declared as a scalar 32-bit floating-point value" - } - ] - }, - "Position": { - "core": [ - { - "vuid": "VUID-Position-Position-04318", - "text": " The Position decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-Position-Position-04319", - "text": " The variable decorated with Position within MeshNV or Vertex {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-Position-Position-04320", - "text": " The variable decorated with Position within TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" - }, - { - "vuid": "VUID-Position-Position-04321", - "text": " The variable decorated with Position must be declared as a four-component vector of 32-bit floating-point values" - } - ] - }, - "PositionPerViewNV": { - "(VK_NVX_multiview_per_view_attributes)": [ - { - "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04322", - "text": " The PositionPerViewNV decoration must be used only within the MeshNV, Vertex, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04323", - "text": " The variable decorated with PositionPerViewNV within the Vertex, or MeshNV {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04324", - "text": " The variable decorated with PositionPerViewNV within the TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel} must not be declared using a {StorageClass} other than Input or Output" - }, - { - "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04325", - "text": " The variable decorated with PositionPerViewNV must be declared as an array of four-component vector of 32-bit floating-point values with at least as many elements as the maximum view in the subpass’s view mask plus one" - }, - { - "vuid": "VUID-PositionPerViewNV-PositionPerViewNV-04326", - "text": " The array variable decorated with PositionPerViewNV must only be indexed by a constant or specialization constant" - } - ] - }, - "PrimitiveCountNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04327", - "text": " The PrimitiveCountNV decoration must be used only within the MeshNV {ExecutionModel}" - }, - { - "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04328", - "text": " The variable decorated with PrimitiveCountNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-PrimitiveCountNV-PrimitiveCountNV-04329", - "text": " The variable decorated with PrimitiveCountNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "PrimitiveId": { - "core": [ - { - "vuid": "VUID-PrimitiveId-PrimitiveId-04330", - "text": " The PrimitiveId decoration must be used only within the MeshNV, IntersectionKHR, AnyHitKHR, ClosestHitKHR, TessellationControl, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-PrimitiveId-Fragment-04331", - "text": " If pipeline contains both the Fragment and Geometry {ExecutionModel} and a variable decorated with PrimitiveId is read from Fragment shader, then the Geometry shader must write to the output variables decorated with PrimitiveId in all execution paths" - }, - { - "vuid": "VUID-PrimitiveId-Fragment-04332", - "text": " If pipeline contains both the Fragment and MeshNV {ExecutionModel} and a variable decorated with PrimitiveId is read from Fragment shader, then the MeshNV shader must write to the output variables decorated with PrimitiveId in all execution paths" - }, - { - "vuid": "VUID-PrimitiveId-Fragment-04333", - "text": " If Fragment {ExecutionModel} contains a variable decorated with PrimitiveId either the Geometry or Tessellation capability must also be declared" - }, - { - "vuid": "VUID-PrimitiveId-PrimitiveId-04334", - "text": " The variable decorated with PrimitiveId within the TessellationControl, TessellationEvaluation, Fragment, IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel} must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-PrimitiveId-PrimitiveId-04335", - "text": " The variable decorated with PrimitiveId within the Geometry {ExecutionModel} must be declared using the Input or Output {StorageClass}" - }, - { - "vuid": "VUID-PrimitiveId-PrimitiveId-04336", - "text": " The variable decorated with PrimitiveId within the MeshNV {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-PrimitiveId-PrimitiveId-04337", - "text": " The variable decorated with PrimitiveId must be declared as a scalar 32-bit integer value" - } - ] - }, - "PrimitiveIndicesNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04338", - "text": " The PrimitiveIndicesNV decoration must be used only within the MeshNV {ExecutionModel}" - }, - { - "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04339", - "text": " The variable decorated with PrimitiveIndicesNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04340", - "text": " The variable decorated with PrimitiveIndicesNV must be declared as an array of scalar 32-bit integer values" - }, - { - "vuid": "VUID-PrimitiveIndicesNV-PrimitiveIndicesNV-04341", - "text": " All index values of the array decorated with PrimitiveIndicesNV must be in the range [0, N-1], where N is the value specified by the OutputVertices {ExecutionMode}" - }, - { - "vuid": "VUID-PrimitiveIndicesNV-OutputPoints-04342", - "text": " If the {ExecutionMode} is OutputPoints, then the array decorated with PrimitiveIndicesNV must be the size of the value specified by OutputPrimitivesNV" - }, - { - "vuid": "VUID-PrimitiveIndicesNV-OutputLinesNV-04343", - "text": " If the {ExecutionMode} is OutputLinesNV, then the array decorated with PrimitiveIndicesNV must be the size of two times the value specified by OutputPrimitivesNV" - }, - { - "vuid": "VUID-PrimitiveIndicesNV-OutputTrianglesNV-04344", - "text": " If the {ExecutionMode} is OutputTrianglesNV, then the array decorated with PrimitiveIndicesNV must be the size of three times the value specified by OutputPrimitivesNV" - } - ] - }, - "PrimitiveShadingRateKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04484", - "text": " The PrimitiveShadingRateKHR decoration must be used only within the MeshNV, Vertex, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04485", - "text": " The variable decorated with PrimitiveShadingRateKHR must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04486", - "text": " The variable decorated with PrimitiveShadingRateKHR must be declared as a scalar 32-bit integer value" - }, - { - "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04487", - "text": " The value written to PrimitiveShadingRateKHR must include no more than one of Vertical2Pixels and Vertical4Pixels" - }, - { - "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04488", - "text": " The value written to PrimitiveShadingRateKHR must include no more than one of Horizontal2Pixels and Horizontal4Pixels" - }, - { - "vuid": "VUID-PrimitiveShadingRateKHR-PrimitiveShadingRateKHR-04489", - "text": " The value written to PrimitiveShadingRateKHR must not have any bits set other than those defined by Fragment Shading Rate Flags enumerants in the SPIR-V specification" - } - ] - }, - "RayGeometryIndexKHR": { - "(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04345", - "text": " The RayGeometryIndexKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04346", - "text": " The variable decorated with RayGeometryIndexKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-RayGeometryIndexKHR-RayGeometryIndexKHR-04347", - "text": " The variable decorated with RayGeometryIndexKHR must be declared as a scalar 32-bit integer value" - } - ] - }, - "RayTmaxKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04348", - "text": " The RayTmaxKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" - }, - { - "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04349", - "text": " The variable decorated with RayTmaxKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-RayTmaxKHR-RayTmaxKHR-04350", - "text": " The variable decorated with RayTmaxKHR must be declared as a scalar 32-bit floating-point value" - } - ] - }, - "RayTminKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-RayTminKHR-RayTminKHR-04351", - "text": " The RayTminKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" - }, - { - "vuid": "VUID-RayTminKHR-RayTminKHR-04352", - "text": " The variable decorated with RayTminKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-RayTminKHR-RayTminKHR-04353", - "text": " The variable decorated with RayTminKHR must be declared as a scalar 32-bit floating-point value" - } - ] - }, - "SampleId": { - "core": [ - { - "vuid": "VUID-SampleId-SampleId-04354", - "text": " The SampleId decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-SampleId-SampleId-04355", - "text": " The variable decorated with SampleId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SampleId-SampleId-04356", - "text": " The variable decorated with SampleId must be declared as a scalar 32-bit integer value" - } - ] - }, - "SampleMask": { - "core": [ - { - "vuid": "VUID-SampleMask-SampleMask-04357", - "text": " The SampleMask decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-SampleMask-SampleMask-04358", - "text": " The variable decorated with SampleMask must be declared using the Input or Output {StorageClass}" - }, - { - "vuid": "VUID-SampleMask-SampleMask-04359", - "text": " The variable decorated with SampleMask must be declared as an array of 32-bit integer values" - } - ] - }, - "SamplePosition": { - "core": [ - { - "vuid": "VUID-SamplePosition-SamplePosition-04360", - "text": " The SamplePosition decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-SamplePosition-SamplePosition-04361", - "text": " The variable decorated with SamplePosition must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SamplePosition-SamplePosition-04362", - "text": " The variable decorated with SamplePosition must be declared as a two-component vector of 32-bit floating-point values" - } - ] - }, - "ShadingRateKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04490", - "text": " The ShadingRateKHR decoration must be used only within the Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04491", - "text": " The variable decorated with ShadingRateKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-ShadingRateKHR-ShadingRateKHR-04492", - "text": " The variable decorated with ShadingRateKHR must be declared as a scalar 32-bit integer value" - } - ] - }, - "SMCountNV": { - "(VK_NV_shader_sm_builtins)": [ - { - "vuid": "VUID-SMCountNV-SMCountNV-04363", - "text": " The variable decorated with SMCountNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SMCountNV-SMCountNV-04364", - "text": " The variable decorated with SMCountNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "SMIDNV": { - "(VK_NV_shader_sm_builtins)": [ - { - "vuid": "VUID-SMIDNV-SMIDNV-04365", - "text": " The variable decorated with SMIDNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SMIDNV-SMIDNV-04366", - "text": " The variable decorated with SMIDNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "SubgroupId": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-SubgroupId-SubgroupId-04367", - "text": " The SubgroupId decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-SubgroupId-SubgroupId-04368", - "text": " The variable decorated with SubgroupId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupId-SubgroupId-04369", - "text": " The variable decorated with SubgroupId must be declared as a scalar 32-bit integer value" - } - ] - }, - "SubgroupEqMask": { - "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [ - { - "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04370", - "text": " The variable decorated with SubgroupEqMask must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupEqMask-SubgroupEqMask-04371", - "text": " The variable decorated with SubgroupEqMask must be declared as a four-component vector of 32-bit integer values" - } - ] - }, - "SubgroupGeMask": { - "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [ - { - "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04372", - "text": " The variable decorated with SubgroupGeMask must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupGeMask-SubgroupGeMask-04373", - "text": " The variable decorated with SubgroupGeMask must be declared as a four-component vector of 32-bit integer values" - } - ] - }, - "SubgroupGtMask": { - "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [ - { - "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04374", - "text": " The variable decorated with SubgroupGtMask must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupGtMask-SubgroupGtMask-04375", - "text": " The variable decorated with SubgroupGtMask must be declared as a four-component vector of 32-bit integer values" - } - ] - }, - "SubgroupLeMask": { - "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [ - { - "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04376", - "text": " The variable decorated with SubgroupLeMask must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupLeMask-SubgroupLeMask-04377", - "text": " The variable decorated with SubgroupLeMask must be declared as a four-component vector of 32-bit integer values" - } - ] - }, - "SubgroupLtMask": { - "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [ - { - "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04378", - "text": " The variable decorated with SubgroupLtMask must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupLtMask-SubgroupLtMask-04379", - "text": " The variable decorated with SubgroupLtMask must be declared as a four-component vector of 32-bit integer values" - } - ] - }, - "SubgroupLocalInvocationId": { - "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [ - { - "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04380", - "text": " The variable decorated with SubgroupLocalInvocationId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupLocalInvocationId-SubgroupLocalInvocationId-04381", - "text": " The variable decorated with SubgroupLocalInvocationId must be declared as a scalar 32-bit integer value" - } - ] - }, - "SubgroupSize": { - "(VK_VERSION_1_1,VK_EXT_shader_subgroup_ballot)": [ - { - "vuid": "VUID-SubgroupSize-SubgroupSize-04382", - "text": " The variable decorated with SubgroupSize must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-SubgroupSize-SubgroupSize-04383", - "text": " The variable decorated with SubgroupSize must be declared as a scalar 32-bit integer value" - } - ] - }, - "TaskCountNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-TaskCountNV-TaskCountNV-04384", - "text": " The TaskCountNV decoration must be used only within the TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-TaskCountNV-TaskCountNV-04385", - "text": " The variable decorated with TaskCountNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-TaskCountNV-TaskCountNV-04386", - "text": " The variable decorated with TaskCountNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "TessCoord": { - "core": [ - { - "vuid": "VUID-TessCoord-TessCoord-04387", - "text": " The TessCoord decoration must be used only within the TessellationEvaluation {ExecutionModel}" - }, - { - "vuid": "VUID-TessCoord-TessCoord-04388", - "text": " The variable decorated with TessCoord must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-TessCoord-TessCoord-04389", - "text": " The variable decorated with TessCoord must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "TessLevelOuter": { - "core": [ - { - "vuid": "VUID-TessLevelOuter-TessLevelOuter-04390", - "text": " The TessLevelOuter decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}" - }, - { - "vuid": "VUID-TessLevelOuter-TessLevelOuter-04391", - "text": " The variable decorated with TessLevelOuter within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-TessLevelOuter-TessLevelOuter-04392", - "text": " The variable decorated with TessLevelOuter within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-TessLevelOuter-TessLevelOuter-04393", - "text": " The variable decorated with TessLevelOuter must be declared as an array of size four, containing 32-bit floating-point values" - } - ] - }, - "TessLevelInner": { - "core": [ - { - "vuid": "VUID-TessLevelInner-TessLevelInner-04394", - "text": " The TessLevelInner decoration must be used only within the TessellationControl or TessellationEvaluation {ExecutionModel}" - }, - { - "vuid": "VUID-TessLevelInner-TessLevelInner-04395", - "text": " The variable decorated with TessLevelInner within the TessellationControl {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-TessLevelInner-TessLevelInner-04396", - "text": " The variable decorated with TessLevelInner within the TessellationEvaluation {ExecutionModel} must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-TessLevelInner-TessLevelInner-04397", - "text": " The variable decorated with TessLevelInner must be declared as an array of size two, containing 32-bit floating-point values" - } - ] - }, - "VertexIndex": { - "core": [ - { - "vuid": "VUID-VertexIndex-VertexIndex-04398", - "text": " The VertexIndex decoration must be used only within the Vertex {ExecutionModel}" - }, - { - "vuid": "VUID-VertexIndex-VertexIndex-04399", - "text": " The variable decorated with VertexIndex must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-VertexIndex-VertexIndex-04400", - "text": " The variable decorated with VertexIndex must be declared as a scalar 32-bit integer value" - } - ] - }, - "ViewIndex": { - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-ViewIndex-ViewIndex-04401", - "text": " The ViewIndex decoration must not be used within the GLCompute {ExecutionModel}" - }, - { - "vuid": "VUID-ViewIndex-ViewIndex-04402", - "text": " The variable decorated with ViewIndex must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-ViewIndex-ViewIndex-04403", - "text": " The variable decorated with ViewIndex must be declared as a scalar 32-bit integer value" - } - ] - }, - "ViewportIndex": { - "core": [ - { - "vuid": "VUID-ViewportIndex-ViewportIndex-04404", - "text": " The ViewportIndex decoration must be used only within the MeshNV, Vertex, TessellationEvaluation, Geometry, or Fragment {ExecutionModel}" - }, - { - "vuid": "VUID-ViewportIndex-ViewportIndex-04406", - "text": " The variable decorated with ViewportIndex within the MeshNV, Vertex, TessellationEvaluation, or Geometry {ExecutionModel} must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-ViewportIndex-ViewportIndex-04407", - "text": " The variable decorated with ViewportIndex within the Fragment {ExecutionModel} must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-ViewportIndex-ViewportIndex-04408", - "text": " The variable decorated with ViewportIndex must be declared as a scalar 32-bit integer value" - } - ], - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-ViewportIndex-ViewportIndex-04405", - "text": " If the shaderOutputViewportIndex feature is not enabled then the ViewportIndex decoration must be used only within the Geometry or Fragment {ExecutionModel}" - } - ] - }, - "ViewportMaskNV": { - "(VK_NV_viewport_array2)": [ - { - "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04409", - "text": " The ViewportMaskNV decoration must be used only within the Vertex, MeshNV, TessellationEvaluation, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04410", - "text": " The variable decorated with ViewportMaskNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-ViewportMaskNV-ViewportMaskNV-04411", - "text": " The variable decorated with ViewportMaskNV must be declared as an array of 32-bit integer values" - } - ] - }, - "ViewportMaskPerViewNV": { - "(VK_NVX_multiview_per_view_attributes+VK_NV_viewport_array2)": [ - { - "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04412", - "text": " The ViewportMaskPerViewNV decoration must be used only within the Vertex, MeshNV, TessellationControl, TessellationEvaluation, or Geometry {ExecutionModel}" - }, - { - "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04413", - "text": " The variable decorated with ViewportMaskPerViewNV must be declared using the Output {StorageClass}" - }, - { - "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04414", - "text": " The variable decorated with ViewportMaskPerViewNV must be declared as an array of 32-bit integer values" - }, - { - "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04415", - "text": " The array decorated with ViewportMaskPerViewNV must be a size less than or equal to 32" - }, - { - "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04416", - "text": " The array decorated with ViewportMaskPerViewNV must be a size greater than the maximum view in the subpass’s view mask" - }, - { - "vuid": "VUID-ViewportMaskPerViewNV-ViewportMaskPerViewNV-04417", - "text": " The array variable decorated with ViewportMaskPerViewNV must only be indexed by a constant or specialization constant." - } - ] - }, - "WarpsPerSMNV": { - "(VK_NV_shader_sm_builtins)": [ - { - "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04418", - "text": " The variable decorated with WarpsPerSMNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-WarpsPerSMNV-WarpsPerSMNV-04419", - "text": " The variable decorated with WarpsPerSMNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "WarpIDNV": { - "(VK_NV_shader_sm_builtins)": [ - { - "vuid": "VUID-WarpIDNV-WarpIDNV-04420", - "text": " The variable decorated with WarpIDNV must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-WarpIDNV-WarpIDNV-04421", - "text": " The variable decorated with WarpIDNV must be declared as a scalar 32-bit integer value" - } - ] - }, - "WorkgroupId": { - "core": [ - { - "vuid": "VUID-WorkgroupId-WorkgroupId-04422", - "text": " The WorkgroupId decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-WorkgroupId-WorkgroupId-04423", - "text": " The variable decorated with WorkgroupId must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-WorkgroupId-WorkgroupId-04424", - "text": " The variable decorated with WorkgroupId must be declared as a three-component vector of 32-bit integer values" - } - ] - }, - "WorkgroupSize": { - "core": [ - { - "vuid": "VUID-WorkgroupSize-WorkgroupSize-04425", - "text": " The WorkgroupSize decoration must be used only within the GLCompute, MeshNV, or TaskNV {ExecutionModel}" - }, - { - "vuid": "VUID-WorkgroupSize-WorkgroupSize-04426", - "text": " The variable decorated with WorkgroupSize must be a specialization constant or a constant" - }, - { - "vuid": "VUID-WorkgroupSize-WorkgroupSize-04427", - "text": " The variable decorated with WorkgroupSize must be declared as a three-component vector of 32-bit integer values" - } - ] - }, - "WorldRayDirectionKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04428", - "text": " The WorldRayDirectionKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" - }, - { - "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04429", - "text": " The variable decorated with WorldRayDirectionKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-WorldRayDirectionKHR-WorldRayDirectionKHR-04430", - "text": " The variable decorated with WorldRayDirectionKHR must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "WorldRayOriginKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04431", - "text": " The WorldRayOriginKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, ClosestHitKHR, or MissKHR {ExecutionModel}" - }, - { - "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04432", - "text": " The variable decorated with WorldRayOriginKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-WorldRayOriginKHR-WorldRayOriginKHR-04433", - "text": " The variable decorated with WorldRayOriginKHR must be declared as a three-component vector of 32-bit floating-point values" - } - ] - }, - "WorldToObjectKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04434", - "text": " The WorldToObjectKHR decoration must be used only within the IntersectionKHR, AnyHitKHR, or ClosestHitKHR {ExecutionModel}" - }, - { - "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04435", - "text": " The variable decorated with WorldToObjectKHR must be declared using the Input {StorageClass}" - }, - { - "vuid": "VUID-WorldToObjectKHR-WorldToObjectKHR-04436", - "text": " The variable decorated with WorldToObjectKHR must be declared as a matrix with four columns of three-component vectors of 32-bit floating-point values" - } - ] - }, - "vkCreateQueryPool": { - "core": [ - { - "vuid": "VUID-vkCreateQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateQueryPool-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkQueryPoolCreateInfo structure" - }, - { - "vuid": "VUID-vkCreateQueryPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateQueryPool-pQueryPool-parameter", - "text": " pQueryPool must be a valid pointer to a VkQueryPool handle" - } - ] - }, - "VkQueryPoolCreateInfo": { - "core": [ - { - "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00791", - "text": " If the pipeline statistics queries feature is not enabled, queryType must not be VK_QUERY_TYPE_PIPELINE_STATISTICS" - }, - { - "vuid": "VUID-VkQueryPoolCreateInfo-queryType-00792", - "text": " If queryType is VK_QUERY_TYPE_PIPELINE_STATISTICS, pipelineStatistics must be a valid combination of VkQueryPipelineStatisticFlagBits values" - }, - { - "vuid": "VUID-VkQueryPoolCreateInfo-queryCount-02763", - "text": " queryCount must be greater than 0" - }, - { - "vuid": "VUID-VkQueryPoolCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO" - }, - { - "vuid": "VUID-VkQueryPoolCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkQueryPoolPerformanceCreateInfoKHR or VkQueryPoolPerformanceQueryCreateInfoINTEL" - }, - { - "vuid": "VUID-VkQueryPoolCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkQueryPoolCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkQueryPoolCreateInfo-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkQueryPoolCreateInfo-queryType-03222", - "text": " If queryType is VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the pNext chain must include a structure of type VkQueryPoolPerformanceCreateInfoKHR" - } - ] - }, - "VkQueryPoolPerformanceCreateInfoKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-queueFamilyIndex-03236", - "text": " queueFamilyIndex must be a valid queue family index of the device" - }, - { - "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-performanceCounterQueryPools-03237", - "text": " The performanceCounterQueryPools feature must be enabled" - }, - { - "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-03321", - "text": " Each element of pCounterIndices must be in the range of counters reported by vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR for the queue family specified in queueFamilyIndex" - }, - { - "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-pCounterIndices-parameter", - "text": " pCounterIndices must be a valid pointer to an array of counterIndexCount uint32_t values" - }, - { - "vuid": "VUID-VkQueryPoolPerformanceCreateInfoKHR-counterIndexCount-arraylength", - "text": " counterIndexCount must be greater than 0" - } - ] - }, - "vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pPerformanceQueryCreateInfo-parameter", - "text": " pPerformanceQueryCreateInfo must be a valid pointer to a valid VkQueryPoolPerformanceCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR-pNumPasses-parameter", - "text": " pNumPasses must be a valid pointer to a uint32_t value" - } - ] - }, - "vkDestroyQueryPool": { - "core": [ - { - "vuid": "VUID-vkDestroyQueryPool-queryPool-00793", - "text": " All submitted commands that refer to queryPool must have completed execution" - }, - { - "vuid": "VUID-vkDestroyQueryPool-queryPool-00794", - "text": " If VkAllocationCallbacks were provided when queryPool was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyQueryPool-queryPool-00795", - "text": " If no VkAllocationCallbacks were provided when queryPool was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyQueryPool-queryPool-parameter", - "text": " If queryPool is not VK_NULL_HANDLE, queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkDestroyQueryPool-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyQueryPool-queryPool-parent", - "text": " If queryPool is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdResetQueryPool": { - "core": [ - { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00796", - "text": " firstQuery must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-00797", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-None-02841", - "text": " All queries used by the command must not be active" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdResetQueryPool-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkCmdResetQueryPool-firstQuery-02862", - "text": " If queryPool was created with VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains begin commands for a query from the set of queries [firstQuery, firstQuery + queryCount - 1]" - } - ] - }, - "vkResetQueryPool": { - "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [ - { - "vuid": "VUID-vkResetQueryPool-None-02665", - "text": " The hostQueryReset feature must be enabled" - }, - { - "vuid": "VUID-vkResetQueryPool-firstQuery-02666", - "text": " firstQuery must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkResetQueryPool-firstQuery-02667", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" - }, - { - "vuid": "VUID-vkResetQueryPool-firstQuery-02741", - "text": " Submitted commands that refer to the range specified by firstQuery and queryCount in queryPool must have completed execution" - }, - { - "vuid": "VUID-vkResetQueryPool-firstQuery-02742", - "text": " The range of queries specified by firstQuery and queryCount in queryPool must not be in use by calls to vkGetQueryPoolResults or vkResetQueryPool in other threads" - }, - { - "vuid": "VUID-vkResetQueryPool-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkResetQueryPool-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkResetQueryPool-queryPool-parent", - "text": " queryPool must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdBeginQuery": { - "core": [ - { - "vuid": "VUID-vkCmdBeginQuery-queryPool-01922", - "text": " queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer" - }, - { - "vuid": "VUID-vkCmdBeginQuery-None-00807", - "text": " All queries used by the command must be unavailable" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryType-02804", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryType-00800", - "text": " If the precise occlusion queries feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" - }, - { - "vuid": "VUID-vkCmdBeginQuery-query-00802", - "text": " query must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryType-00803", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryType-00804", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryType-00805", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdBeginQuery-flags-parameter", - "text": " flags must be a valid combination of VkQueryControlFlagBits values" - }, - { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdBeginQuery-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdBeginQuery-commandBuffer-01885", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdBeginQuery-query-00808", - "text": " If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdBeginQuery-queryType-02327", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryType-02328", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkCmdBeginQuery-queryPool-03223", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryPool-03224", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryPool-03225", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance" - }, - { - "vuid": "VUID-vkCmdBeginQuery-queryPool-03226", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled" - }, - { - "vuid": "VUID-vkCmdBeginQuery-None-02863", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query" - } - ] - }, - "vkCmdBeginQueryIndexedEXT": { - "core": [ - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-01922", - "text": " queryPool must have been created with a queryType that differs from that of any queries that are active within commandBuffer" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-00807", - "text": " All queries used by the command must be unavailable" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02804", - "text": " The queryType used to create queryPool must not be VK_QUERY_TYPE_TIMESTAMP" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00800", - "text": " If the precise occlusion queries feature is not enabled, or the queryType used to create queryPool was not VK_QUERY_TYPE_OCCLUSION, flags must not contain VK_QUERY_CONTROL_PRECISE_BIT" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00802", - "text": " query must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00803", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_OCCLUSION, the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00804", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate graphics operations, the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-00805", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PIPELINE_STATISTICS and any of the pipelineStatistics indicate compute operations, the VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02338", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02339", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02340", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryType-02341", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT then VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackQueries must be supported" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-01885", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-query-00808", - "text": " If called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03223", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the profiling lock must have been held before vkBeginCommandBuffer was called on commandBuffer" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03224", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the query begin must be the first recorded command in commandBuffer" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03225", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the begin command must not be recorded within a render pass instance" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-03226", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and another query pool with a queryType VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR has been used within commandBuffer, its parent primary command buffer or secondary command buffer recorded within the same parent primary command buffer as commandBuffer, the performanceCounterMultipleQueryPools feature must be enabled" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-None-02863", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, this command must not be recorded in a command buffer that, either directly or through secondary command buffers, also contains a vkCmdResetQueryPool command affecting the same query" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-flags-parameter", - "text": " flags must be a valid combination of VkQueryControlFlagBits values" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdBeginQueryIndexedEXT-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdEndQuery": { - "core": [ - { - "vuid": "VUID-vkCmdEndQuery-None-01923", - "text": " All queries used by the command must be active" - }, - { - "vuid": "VUID-vkCmdEndQuery-query-00810", - "text": " query must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdEndQuery-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdEndQuery-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdEndQuery-commandBuffer-01886", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdEndQuery-query-00812", - "text": " If vkCmdEndQuery is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkCmdEndQuery-queryPool-03227", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, the vkCmdEndQuery must be the last recorded command in commandBuffer" - }, - { - "vuid": "VUID-vkCmdEndQuery-queryPool-03228", - "text": " If queryPool was created with a queryType of VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR and one or more of the counters used to create queryPool was VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, the vkCmdEndQuery must not be recorded within a render pass instance" - } - ] - }, - "vkCmdEndQueryIndexedEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-None-02342", - "text": " All queries used by the command must be active" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02343", - "text": " query must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02346", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index parameter must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02347", - "text": " If the queryType used to create queryPool was not VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT the index must be zero" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryType-02723", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT index must equal the index used to begin the query" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-commandBuffer-02344", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdEndQueryIndexedEXT-query-02345", - "text": " If vkCmdEndQueryIndexedEXT is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ] - }, - "vkGetQueryPoolResults": { - "core": [ - { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00813", - "text": " firstQuery must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-flags-02827", - "text": " If VK_QUERY_RESULT_64_BIT is not set in flags, then pData and stride must be multiples of 4" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-flags-00815", - "text": " If VK_QUERY_RESULT_64_BIT is set in flags then pData and stride must be multiples of 8" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-firstQuery-00816", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-dataSize-00817", - "text": " dataSize must be large enough to contain the result of each query, as described here" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-00818", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-flags-parameter", - "text": " flags must be a valid combination of VkQueryResultFlagBits values" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-dataSize-arraylength", - "text": " dataSize must be greater than 0" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryPool-parent", - "text": " queryPool must have been created, allocated, or retrieved from device" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkGetQueryPoolResults-flags-02828", - "text": " If VK_QUERY_RESULT_64_BIT is not set in flags and the queryType used to create queryPool was not VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of 4" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-03229", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then pData and stride must be multiples of the size of VkPerformanceCounterResultKHR" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-04519", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, then stride must be large enough to contain VkQueryPoolPerformanceCreateInfoKHR::counterIndexCount used to create queryPool times the size of VkPerformanceCounterResultKHR." - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-03230", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_PARTIAL_BIT or VK_QUERY_RESULT_64_BIT" - }, - { - "vuid": "VUID-vkGetQueryPoolResults-queryType-03231", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been recorded once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" - } - ] - }, - "vkCmdCopyQueryPoolResults": { - "core": [ - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstOffset-00819", - "text": " dstOffset must be less than the size of dstBuffer" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00820", - "text": " firstQuery must be less than the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-firstQuery-00821", - "text": " The sum of firstQuery and queryCount must be less than or equal to the number of queries in queryPool" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00822", - "text": " If VK_QUERY_RESULT_64_BIT is not set in flags then dstOffset and stride must be multiples of 4" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-00823", - "text": " If VK_QUERY_RESULT_64_BIT is set in flags then dstOffset and stride must be multiples of 8" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00824", - "text": " dstBuffer must have enough storage, from dstOffset, to contain the result of each query, as described here" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00825", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-00826", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-00827", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_TIMESTAMP, flags must not contain VK_QUERY_RESULT_PARTIAL_BIT" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-flags-parameter", - "text": " flags must be a valid combination of VkQueryResultFlagBits values" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-commonparent", - "text": " Each of commandBuffer, dstBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03232", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, VkPhysicalDevicePerformanceQueryPropertiesKHR::allowCommandBufferQueryCopies must be VK_TRUE" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03233", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, flags must not contain VK_QUERY_RESULT_WITH_AVAILABILITY_BIT, VK_QUERY_RESULT_PARTIAL_BIT or VK_QUERY_RESULT_64_BIT" - }, - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-03234", - "text": " If the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR, the queryPool must have been submitted once for each pass as retrieved via a call to vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR" - } - ], - "(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkCmdCopyQueryPoolResults-queryType-02734", - "text": " vkCmdCopyQueryPoolResults must not be called if the queryType used to create queryPool was VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL" - } - ] - }, - "vkCmdWriteTimestamp": { - "core": [ - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04074", - "text": " pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04075", - "text": " If the geometry shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04076", - "text": " If the tessellation shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-queryPool-01416", - "text": " queryPool must have been created with a queryType of VK_QUERY_TYPE_TIMESTAMP" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-queryPool-00828", - "text": " The query identified by queryPool and query must be unavailable" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-timestampValidBits-00829", - "text": " The command pool’s queue family must support a non-zero timestampValidBits" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-parameter", - "text": " pipelineStage must be a valid VkPipelineStageFlagBits value" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-commonparent", - "text": " Both of commandBuffer, and queryPool must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04077", - "text": " If the conditional rendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04078", - "text": " If the fragment density map feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04079", - "text": " If the transform feedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04080", - "text": " If the mesh shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV or VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdWriteTimestamp-pipelineStage-04081", - "text": " If the shading rate image feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdWriteTimestamp-None-00830", - "text": " All queries used by the command must be unavailable" - }, - { - "vuid": "VUID-vkCmdWriteTimestamp-query-00831", - "text": " If vkCmdWriteTimestamp is called within a render pass instance, the sum of query and the number of bits set in the current subpass’s view mask must be less than or equal to the number of queries in queryPool" - } - ] - }, - "vkAcquireProfilingLockKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkAcquireProfilingLockKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAcquireProfilingLockKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAcquireProfilingLockInfoKHR structure" - } - ] - }, - "VkAcquireProfilingLockInfoKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkAcquireProfilingLockInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR" - }, - { - "vuid": "VUID-VkAcquireProfilingLockInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAcquireProfilingLockInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkReleaseProfilingLockKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-vkReleaseProfilingLockKHR-device-03235", - "text": " The profiling lock of device must have been held via a previous successful call to vkAcquireProfilingLockKHR" - }, - { - "vuid": "VUID-vkReleaseProfilingLockKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - } - ] - }, - "vkInitializePerformanceApiINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkInitializePerformanceApiINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkInitializePerformanceApiINTEL-pInitializeInfo-parameter", - "text": " pInitializeInfo must be a valid pointer to a valid VkInitializePerformanceApiInfoINTEL structure" - } - ] - }, - "VkInitializePerformanceApiInfoINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL" - }, - { - "vuid": "VUID-VkInitializePerformanceApiInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkUninitializePerformanceApiINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkUninitializePerformanceApiINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" - } - ] - }, - "vkGetPerformanceParameterINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkGetPerformanceParameterINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetPerformanceParameterINTEL-parameter-parameter", - "text": " parameter must be a valid VkPerformanceParameterTypeINTEL value" - }, - { - "vuid": "VUID-vkGetPerformanceParameterINTEL-pValue-parameter", - "text": " pValue must be a valid pointer to a VkPerformanceValueINTEL structure" - } - ] - }, - "VkPerformanceValueINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkPerformanceValueINTEL-type-parameter", - "text": " type must be a valid VkPerformanceValueTypeINTEL value" - }, - { - "vuid": "VUID-VkPerformanceValueINTEL-valueString-parameter", - "text": " If type is VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL, the valueString member of data must be a null-terminated UTF-8 string" - } - ] - }, - "VkQueryPoolPerformanceQueryCreateInfoINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL" - }, - { - "vuid": "VUID-VkQueryPoolPerformanceQueryCreateInfoINTEL-performanceCountersSampling-parameter", - "text": " performanceCountersSampling must be a valid VkQueryPoolSamplingModeINTEL value" - } - ] - }, - "vkCmdSetPerformanceMarkerINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkPerformanceMarkerInfoINTEL structure" - }, - { - "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetPerformanceMarkerINTEL-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" - } - ] - }, - "VkPerformanceMarkerInfoINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkPerformanceMarkerInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL" - }, - { - "vuid": "VUID-VkPerformanceMarkerInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkCmdSetPerformanceStreamMarkerINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkPerformanceStreamMarkerInfoINTEL structure" - }, - { - "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetPerformanceStreamMarkerINTEL-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" - } - ] - }, - "VkPerformanceStreamMarkerInfoINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-marker-02735", - "text": " The value written by the application into marker must only used the valid bits as reported by vkGetPerformanceParameterINTEL with the VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL" - }, - { - "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL" - }, - { - "vuid": "VUID-VkPerformanceStreamMarkerInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkCmdSetPerformanceOverrideINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-02736", - "text": " pOverrideInfo must not be used with a VkPerformanceOverrideTypeINTEL that is not reported available by vkGetPerformanceParameterINTEL" - }, - { - "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-pOverrideInfo-parameter", - "text": " pOverrideInfo must be a valid pointer to a valid VkPerformanceOverrideInfoINTEL structure" - }, - { - "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetPerformanceOverrideINTEL-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" - } - ] - }, - "VkPerformanceOverrideInfoINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkPerformanceOverrideInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL" - }, - { - "vuid": "VUID-VkPerformanceOverrideInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPerformanceOverrideInfoINTEL-type-parameter", - "text": " type must be a valid VkPerformanceOverrideTypeINTEL value" - } - ] - }, - "vkAcquirePerformanceConfigurationINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pAcquireInfo-parameter", - "text": " pAcquireInfo must be a valid pointer to a valid VkPerformanceConfigurationAcquireInfoINTEL structure" - }, - { - "vuid": "VUID-vkAcquirePerformanceConfigurationINTEL-pConfiguration-parameter", - "text": " pConfiguration must be a valid pointer to a VkPerformanceConfigurationINTEL handle" - } - ] - }, - "VkPerformanceConfigurationAcquireInfoINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL" - }, - { - "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPerformanceConfigurationAcquireInfoINTEL-type-parameter", - "text": " type must be a valid VkPerformanceConfigurationTypeINTEL value" - } - ] - }, - "vkQueueSetPerformanceConfigurationINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-queue-parameter", - "text": " queue must be a valid VkQueue handle" - }, - { - "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-configuration-parameter", - "text": " configuration must be a valid VkPerformanceConfigurationINTEL handle" - }, - { - "vuid": "VUID-vkQueueSetPerformanceConfigurationINTEL-commonparent", - "text": " Both of configuration, and queue must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkReleasePerformanceConfigurationINTEL": { - "(VK_INTEL_performance_query)+(VK_INTEL_performance_query)": [ - { - "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-02737", - "text": " configuration must not be released before all command buffers submitted while the configuration was set are in pending state" - }, - { - "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parameter", - "text": " If configuration is not VK_NULL_HANDLE, configuration must be a valid VkPerformanceConfigurationINTEL handle" - }, - { - "vuid": "VUID-vkReleasePerformanceConfigurationINTEL-configuration-parent", - "text": " If configuration is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdClearColorImage": { - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdClearColorImage-image-01993", - "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdClearColorImage-image-00002", - "text": " image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdClearColorImage-image-00003", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-00004", - "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdClearColorImage-aspectMask-02498", - "text": " The VkImageSubresourceRange::aspectMask members of the elements of the pRanges array must each only include VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-vkCmdClearColorImage-baseMipLevel-01470", - "text": " The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearColorImage-pRanges-01692", - "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearColorImage-baseArrayLayer-01472", - "text": " The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearColorImage-pRanges-01693", - "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearColorImage-image-00007", - "text": " image must not have a compressed or depth/stencil format" - }, - { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdClearColorImage-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdClearColorImage-pColor-parameter", - "text": " pColor must be a valid pointer to a valid VkClearColorValue union" - }, - { - "vuid": "VUID-vkCmdClearColorImage-pRanges-parameter", - "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" - }, - { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdClearColorImage-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdClearColorImage-rangeCount-arraylength", - "text": " rangeCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdClearColorImage-commonparent", - "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdClearColorImage-image-01545", - "text": " image must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-00005", - "text": " imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdClearColorImage-imageLayout-01394", - "text": " imageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01805", - "text": " If commandBuffer is an unprotected command buffer, then image must not be a protected image" - }, - { - "vuid": "VUID-vkCmdClearColorImage-commandBuffer-01806", - "text": " If commandBuffer is a protected command buffer, then image must not be an unprotected image" - } - ] - }, - "vkCmdClearDepthStencilImage": { - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-01994", - "text": " The format features of image must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" - } - ], - "!(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-00009", - "text": " image must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - } - ], - "(VK_VERSION_1_2,VK_EXT_separate_stencil_usage)": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02658", - "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageStencilUsageCreateInfo::stencilUsage used to create image" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02659", - "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_STENCIL_BIT, and image was not created with separate stencil usage, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-02660", - "text": " If the aspect member of any element of pRanges includes VK_IMAGE_ASPECT_DEPTH_BIT, VK_IMAGE_USAGE_TRANSFER_DST_BIT must have been included in the VkImageCreateInfo::usage used to create image" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-00010", - "text": " If image is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00011", - "text": " imageLayout must specify the layout of the image subresource ranges of image specified in pRanges at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-00012", - "text": " imageLayout must be either of VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-aspectMask-02824", - "text": " The VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include bits other than VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-02825", - "text": " If the image’s format does not have a stencil component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_STENCIL_BIT bit" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-02826", - "text": " If the image’s format does not have a depth component, then the VkImageSubresourceRange::aspectMask member of each element of the pRanges array must not include the VK_IMAGE_ASPECT_DEPTH_BIT bit" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-baseMipLevel-01474", - "text": " The VkImageSubresourceRange::baseMipLevel members of the elements of the pRanges array must each be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01694", - "text": " For each VkImageSubresourceRange element of pRanges, if the levelCount member is not VK_REMAINING_MIP_LEVELS, then baseMipLevel + levelCount must be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-baseArrayLayer-01476", - "text": " The VkImageSubresourceRange::baseArrayLayer members of the elements of the pRanges array must each be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-01695", - "text": " For each VkImageSubresourceRange element of pRanges, if the layerCount member is not VK_REMAINING_ARRAY_LAYERS, then baseArrayLayer + layerCount must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-00014", - "text": " image must have a depth/stencil format" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-pDepthStencil-parameter", - "text": " pDepthStencil must be a valid pointer to a valid VkClearDepthStencilValue structure" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-pRanges-parameter", - "text": " pRanges must be a valid pointer to an array of rangeCount valid VkImageSubresourceRange structures" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-rangeCount-arraylength", - "text": " rangeCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-commonparent", - "text": " Both of commandBuffer, and image must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01807", - "text": " If commandBuffer is an unprotected command buffer, then image must not be a protected image" - }, - { - "vuid": "VUID-vkCmdClearDepthStencilImage-commandBuffer-01808", - "text": " If commandBuffer is a protected command buffer, then image must not be an unprotected image" - } - ] - }, - "vkCmdClearAttachments": { - "core": [ - { - "vuid": "VUID-vkCmdClearAttachments-aspectMask-02501", - "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_COLOR_BIT, then the colorAttachment member of that element must either refer to a color attachment which is VK_ATTACHMENT_UNUSED, or must be a valid color attachment" - }, - { - "vuid": "VUID-vkCmdClearAttachments-aspectMask-02502", - "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_DEPTH_BIT, then the current subpass' depth/stencil attachment must either be VK_ATTACHMENT_UNUSED, or must have a depth component" - }, - { - "vuid": "VUID-vkCmdClearAttachments-aspectMask-02503", - "text": " If the aspectMask member of any element of pAttachments contains VK_IMAGE_ASPECT_STENCIL_BIT, then the current subpass' depth/stencil attachment must either be VK_ATTACHMENT_UNUSED, or must have a stencil component" - }, - { - "vuid": "VUID-vkCmdClearAttachments-rect-02682", - "text": " The rect member of each element of pRects must have an extent.width greater than 0" - }, - { - "vuid": "VUID-vkCmdClearAttachments-rect-02683", - "text": " The rect member of each element of pRects must have an extent.height greater than 0" - }, - { - "vuid": "VUID-vkCmdClearAttachments-pRects-00016", - "text": " The rectangular region specified by each element of pRects must be contained within the render area of the current render pass instance" - }, - { - "vuid": "VUID-vkCmdClearAttachments-pRects-00017", - "text": " The layers specified by each element of pRects must be contained within every attachment that pAttachments refers to" - }, - { - "vuid": "VUID-vkCmdClearAttachments-layerCount-01934", - "text": " The layerCount member of each element of pRects must not be 0" - }, - { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdClearAttachments-pAttachments-parameter", - "text": " pAttachments must be a valid pointer to an array of attachmentCount valid VkClearAttachment structures" - }, - { - "vuid": "VUID-vkCmdClearAttachments-pRects-parameter", - "text": " pRects must be a valid pointer to an array of rectCount VkClearRect structures" - }, - { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdClearAttachments-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdClearAttachments-attachmentCount-arraylength", - "text": " attachmentCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdClearAttachments-rectCount-arraylength", - "text": " rectCount must be greater than 0" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02504", - "text": " If commandBuffer is an unprotected command buffer, then each attachment to be cleared must not be a protected image" - }, - { - "vuid": "VUID-vkCmdClearAttachments-commandBuffer-02505", - "text": " If commandBuffer is a protected command buffer, then each attachment to be cleared must not be an unprotected image" - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdClearAttachments-baseArrayLayer-00018", - "text": " If the render pass instance this is recorded in uses multiview, then baseArrayLayer must be zero and layerCount must be one" - } - ] - }, - "VkClearAttachment": { - "core": [ - { - "vuid": "VUID-VkClearAttachment-aspectMask-00019", - "text": " If aspectMask includes VK_IMAGE_ASPECT_COLOR_BIT, it must not include VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" - }, - { - "vuid": "VUID-VkClearAttachment-aspectMask-00020", - "text": " aspectMask must not include VK_IMAGE_ASPECT_METADATA_BIT" - }, - { - "vuid": "VUID-VkClearAttachment-clearValue-00021", - "text": " clearValue must be a valid VkClearValue union" - }, - { - "vuid": "VUID-VkClearAttachment-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" - }, - { - "vuid": "VUID-VkClearAttachment-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkClearAttachment-aspectMask-02246", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" - } - ] - }, - "VkClearDepthStencilValue": { - "(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkClearDepthStencilValue-depth-00022", - "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled depth must be between 0.0 and 1.0, inclusive" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkClearDepthStencilValue-depth-02506", - "text": " depth must be between 0.0 and 1.0, inclusive" - } - ] - }, - "vkCmdFillBuffer": { - "core": [ - { - "vuid": "VUID-vkCmdFillBuffer-dstOffset-00024", - "text": " dstOffset must be less than the size of dstBuffer" - }, - { - "vuid": "VUID-vkCmdFillBuffer-dstOffset-00025", - "text": " dstOffset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdFillBuffer-size-00026", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be greater than 0" - }, - { - "vuid": "VUID-vkCmdFillBuffer-size-00027", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be less than or equal to the size of dstBuffer minus dstOffset" - }, - { - "vuid": "VUID-vkCmdFillBuffer-size-00028", - "text": " If size is not equal to VK_WHOLE_SIZE, size must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00029", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdFillBuffer-dstBuffer-00031", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdFillBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics or compute operations" - }, - { - "vuid": "VUID-vkCmdFillBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdFillBuffer-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-00030", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics or compute operations" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01811", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdFillBuffer-commandBuffer-01812", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ] - }, - "vkCmdUpdateBuffer": { - "core": [ - { - "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00032", - "text": " dstOffset must be less than the size of dstBuffer" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00033", - "text": " dataSize must be less than or equal to the size of dstBuffer minus dstOffset" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00034", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-00035", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dstOffset-00036", - "text": " dstOffset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00037", - "text": " dataSize must be less than or equal to 65536" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-00038", - "text": " dataSize must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-dataSize-arraylength", - "text": " dataSize must be greater than 0" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01813", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdUpdateBuffer-commandBuffer-01814", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ] - }, - "vkCmdCopyBuffer": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01822", - "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01823", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-01824", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdCopyBuffer-srcOffset-00113", - "text": " The srcOffset member of each element of pRegions must be less than the size of srcBuffer" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-dstOffset-00114", - "text": " The dstOffset member of each element of pRegions must be less than the size of dstBuffer" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-size-00115", - "text": " The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-size-00116", - "text": " The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-pRegions-00117", - "text": " The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00118", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-00119", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00120", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-00121", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy structures" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdCopyBuffer-commonparent", - "text": " Each of commandBuffer, dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkBufferCopy": { - "core": [ - { - "vuid": "VUID-VkBufferCopy-size-01988", - "text": " The size must be greater than 0" - } - ] - }, - "vkCmdCopyBuffer2KHR": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-commandBuffer-01822", - "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-commandBuffer-01823", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-commandBuffer-01824", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-pCopyBufferInfo-parameter", - "text": " pCopyBufferInfo must be a valid pointer to a valid VkCopyBufferInfo2KHR structure" - }, - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyBuffer2KHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkCopyBufferInfo2KHR": { - "core": [ - { - "vuid": "VUID-VkCopyBufferInfo2KHR-srcOffset-00113", - "text": " The srcOffset member of each element of pRegions must be less than the size of srcBuffer" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-dstOffset-00114", - "text": " The dstOffset member of each element of pRegions must be less than the size of dstBuffer" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-size-00115", - "text": " The size member of each element of pRegions must be less than or equal to the size of srcBuffer minus srcOffset" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-size-00116", - "text": " The size member of each element of pRegions must be less than or equal to the size of dstBuffer minus dstOffset" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-pRegions-00117", - "text": " The union of the source regions, and the union of the destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-srcBuffer-00118", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-srcBuffer-00119", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-dstBuffer-00120", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-dstBuffer-00121", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkCopyBufferInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferCopy2KHR structures" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-VkCopyBufferInfo2KHR-commonparent", - "text": " Both of dstBuffer, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkBufferCopy2KHR": { - "core": [ - { - "vuid": "VUID-VkBufferCopy2KHR-size-01988", - "text": " The size must be greater than 0" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkBufferCopy2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR" - }, - { - "vuid": "VUID-VkBufferCopy2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkCmdCopyImage": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-01825", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-01826", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-01827", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdCopyImage-pRegions-00124", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-00126", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00128", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-00131", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00133", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-00136", - "text": " The sample count of srcImage and dstImage must match" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcSubresource-01696", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstSubresource-01697", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcSubresource-01698", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstSubresource-01699", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcOffset-01783", - "text": " The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstOffset-01784", - "text": " The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-vkCmdCopyImage-aspectMask-00142", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-aspectMask-00143", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcOffset-00144", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcOffset-00145", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-00146", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcOffset-00147", - "text": " For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01785", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01786", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01787", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01788", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstOffset-00150", - "text": " For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstOffset-00151", - "text": " For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-00152", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstOffset-00153", - "text": " For each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01727", - "text": " If srcImage is a blocked image, then for each element of pRegions, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01728", - "text": " If srcImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01729", - "text": " If srcImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01730", - "text": " If srcImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01731", - "text": " If dstImage is a blocked image, then for each element of pRegions, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01732", - "text": " If dstImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01733", - "text": " If dstImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01734", - "text": " If dstImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the depth of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdCopyImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageCopy structures" - }, - { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyImage-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdCopyImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdCopyImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01995", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01996", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-04443", - "text": " If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and and srcSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-04444", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and and dstSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01790", - "text": " If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01791", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01792", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdCopyImage-srcImage-00127", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-00132", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-00135", - "text": " The VkFormat of each of srcImage and dstImage must be compatible, as defined above" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01546", - "text": " If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01547", - "text": " If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01548", - "text": " If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be compatible, as defined above" - }, - { - "vuid": "VUID-vkCmdCopyImage-None-01549", - "text": " In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01551", - "text": " If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01552", - "text": " If srcImage has a VkFormat with two planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01553", - "text": " If srcImage has a VkFormat with three planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01554", - "text": " If dstImage has a VkFormat with two planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01555", - "text": " If dstImage has a VkFormat with three planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01556", - "text": " If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImage-01557", - "text": " If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-00129", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-00134", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdCopyImage-srcImageLayout-01917", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - }, - { - "vuid": "VUID-vkCmdCopyImage-dstImageLayout-01395", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdCopyImage-dstImage-02542", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdCopyImage-srcImage-00139", - "text": " If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1" - }, - { - "vuid": "VUID-vkCmdCopyImage-srcImage-01789", - "text": " If srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" - } - ] - }, - "VkImageCopy": { - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageCopy-aspectMask-00137", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageCopy-layerCount-00138", - "text": " The layerCount member of srcSubresource and dstSubresource must match" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageCopy-extent-00140", - "text": " The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D)" - } - ], - "core": [ - { - "vuid": "VUID-VkImageCopy-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" - }, - { - "vuid": "VUID-VkImageCopy-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "VkImageSubresourceLayers": { - "core": [ - { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00167", - "text": " If aspectMask contains VK_IMAGE_ASPECT_COLOR_BIT, it must not contain either of VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT" - }, - { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-00168", - "text": " aspectMask must not contain VK_IMAGE_ASPECT_METADATA_BIT" - }, - { - "vuid": "VUID-VkImageSubresourceLayers-layerCount-01700", - "text": " layerCount must be greater than 0" - }, - { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-parameter", - "text": " aspectMask must be a valid combination of VkImageAspectFlagBits values" - }, - { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-requiredbitmask", - "text": " aspectMask must not be 0" - } - ], - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkImageSubresourceLayers-aspectMask-02247", - "text": " aspectMask must not include VK_IMAGE_ASPECT_MEMORY_PLANE_i_BIT_EXT for any index i" - } - ] - }, - "vkCmdCopyImage2KHR": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyImage2KHR-commandBuffer-01825", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyImage2KHR-commandBuffer-01826", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyImage2KHR-commandBuffer-01827", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-vkCmdCopyImage2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyImage2KHR-pCopyImageInfo-parameter", - "text": " pCopyImageInfo must be a valid pointer to a valid VkCopyImageInfo2KHR structure" - }, - { - "vuid": "VUID-vkCmdCopyImage2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyImage2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyImage2KHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkCopyImageInfo2KHR": { - "core": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-pRegions-00124", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-00126", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImageLayout-00128", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-00131", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImageLayout-00133", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-00136", - "text": " The sample count of srcImage and dstImage must match" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcSubresource-01696", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstSubresource-01697", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcSubresource-01698", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstSubresource-01699", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcOffset-01783", - "text": " The srcOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstOffset-01784", - "text": " The dstOffset and extent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-aspectMask-00142", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-aspectMask-00143", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcOffset-00144", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcOffset-00145", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-00146", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcOffset-00147", - "text": " For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01785", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01786", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01787", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01788", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstOffset-00150", - "text": " For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstOffset-00151", - "text": " For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-00152", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstOffset-00153", - "text": " For each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01727", - "text": " If srcImage is a blocked image, then for each element of pRegions, all members of srcOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01728", - "text": " If srcImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + srcOffset.x) must equal the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01729", - "text": " If srcImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + srcOffset.y) must equal the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01730", - "text": " If srcImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + srcOffset.z) must equal the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01731", - "text": " If dstImage is a blocked image, then for each element of pRegions, all members of dstOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01732", - "text": " If dstImage is a blocked image, then for each element of pRegions, extent.width must be a multiple of the compressed texel block width or (extent.width + dstOffset.x) must equal the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01733", - "text": " If dstImage is a blocked image, then for each element of pRegions, extent.height must be a multiple of the compressed texel block height or (extent.height + dstOffset.y) must equal the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01734", - "text": " If dstImage is a blocked image, then for each element of pRegions, extent.depth must be a multiple of the compressed texel block depth or (extent.depth + dstOffset.z) must equal the depth of the specified dstSubresource of dstImage" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01995", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01996", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-04443", - "text": " If srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and and srcSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-04444", - "text": " If dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and and dstSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01790", - "text": " If srcImage and dstImage are both of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01791", - "text": " If srcImage is of type VK_IMAGE_TYPE_2D, and dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal srcSubresource.layerCount" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01792", - "text": " If dstImage is of type VK_IMAGE_TYPE_2D, and srcImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, extent.depth must equal dstSubresource.layerCount" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-00127", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-00132", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-00135", - "text": " The VkFormat of each of srcImage and dstImage must be compatible, as defined above" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01546", - "text": " If srcImage is non-sparse then the image or disjoint plane to be copied must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01547", - "text": " If dstImage is non-sparse then the image or disjoint plane that is the destination of the copy must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01548", - "text": " If the VkFormat of each of srcImage and dstImage is not a multi-planar format, the VkFormat of each of srcImage and dstImage must be compatible, as defined above" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-None-01549", - "text": " In a copy to or from a plane of a multi-planar image, the VkFormat of the image and plane must be compatible according to the description of compatible planes for the plane being copied" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01551", - "text": " If neither srcImage nor dstImage has a multi-planar image format then for each element of pRegions, srcSubresource.aspectMask and dstSubresource.aspectMask must match" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01552", - "text": " If srcImage has a VkFormat with two planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01553", - "text": " If srcImage has a VkFormat with three planes then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01554", - "text": " If dstImage has a VkFormat with two planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT or VK_IMAGE_ASPECT_PLANE_1_BIT" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01555", - "text": " If dstImage has a VkFormat with three planes then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01556", - "text": " If srcImage has a multi-planar image format and the dstImage does not have a multi-planar image format, then for each element of pRegions, dstSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-01557", - "text": " If dstImage has a multi-planar image format and the srcImage does not have a multi-planar image format, then for each element of pRegions, srcSubresource.aspectMask must be VK_IMAGE_ASPECT_COLOR_BIT" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImageLayout-00129", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImageLayout-00134", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImageLayout-01917", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImageLayout-01395", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-02542", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-00139", - "text": " If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-01789", - "text": " If srcImage or dstImage is of type VK_IMAGE_TYPE_2D, then for each element of pRegions, extent.depth must be 1" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkCopyImageInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageCopy2KHR structures" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-VkCopyImageInfo2KHR-commonparent", - "text": " Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkImageCopy2KHR": { - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkImageCopy2KHR-aspectMask-00137", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageCopy2KHR-layerCount-00138", - "text": " The layerCount member of srcSubresource and dstSubresource must match" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkImageCopy2KHR-extent-00140", - "text": " The number of slices of the extent (for 3D) or layers of the srcSubresource (for non-3D) must match the number of slices of the extent (for 3D) or layers of the dstSubresource (for non-3D)" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkImageCopy2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR" - }, - { - "vuid": "VUID-VkImageCopy2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImageCopy2KHR-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" - }, - { - "vuid": "VUID-VkImageCopy2KHR-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "vkCmdCopyBufferToImage": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01828", - "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01829", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-01830", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00172", - "text": " The image region specified by each element of pRegions must be a region that is contained within dstImage" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00171", - "text": " srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-00173", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00174", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-00176", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00177", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00178", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-00179", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00180", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01701", - "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageSubresource-01702", - "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-01793", - "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-04052", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-04053", - "text": " If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-04477", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT." - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-00197", - "text": " For each element of pRegions, imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-00198", - "text": " For each element of pRegions, imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-00199", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-00200", - "text": " For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-srcImage-00201", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-bufferRowLength-00203", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-bufferImageHeight-00204", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageOffset-00205", - "text": " If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-00206", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00207", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00208", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-imageExtent-00209", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-aspectMask-00211", - "text": " For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-baseArrayLayer-00213", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-01997", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-00181", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImageLayout-01396", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-dstImage-02543", - "text": " dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-None-00214", - "text": " For each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-00193", - "text": " If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01558", - "text": " If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-bufferOffset-01559", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage-aspectMask-01560", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)" - } - ] - }, - "vkCmdCopyImageToBuffer": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01831", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01832", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-01833", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00182", - "text": " The image region specified by each element of pRegions must be a region that is contained within srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00183", - "text": " dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-00184", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00186", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00187", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00191", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-00192", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00188", - "text": " srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00189", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01703", - "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageSubresource-01704", - "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-01794", - "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-04054", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-04055", - "text": " If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00197", - "text": " For each element of pRegions , imageOffset.x and (imageExtent.width + imageOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified imageSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00198", - "text": " For each element of pRegions , imageOffset.y and (imageExtent.height + imageOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified imageSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00199", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00200", - "text": " For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-00201", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-bufferRowLength-00203", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-bufferImageHeight-00204", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageOffset-00205", - "text": " If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-00206", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00207", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00208", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-imageExtent-00209", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-aspectMask-00211", - "text": " For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-baseArrayLayer-00213", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy structures" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-commonparent", - "text": " Each of commandBuffer, dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-01998", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-00190", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImageLayout-01397", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-srcImage-02544", - "text": " srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-00193", - "text": " If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01558", - "text": " If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-bufferOffset-01559", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer-aspectMask-01560", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)" - } - ] - }, - "VkBufferImageCopy": { - "core": [ - { - "vuid": "VUID-VkBufferImageCopy-bufferRowLength-00195", - "text": " bufferRowLength must be 0, or greater than or equal to the width member of imageExtent" - }, - { - "vuid": "VUID-VkBufferImageCopy-bufferImageHeight-00196", - "text": " bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent" - }, - { - "vuid": "VUID-VkBufferImageCopy-aspectMask-00212", - "text": " The aspectMask member of imageSubresource must only have a single bit set" - }, - { - "vuid": "VUID-VkBufferImageCopy-imageSubresource-parameter", - "text": " imageSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "vkCmdCopyBufferToImage2KHR": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01828", - "text": " If commandBuffer is an unprotected command buffer, then srcBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01829", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-01830", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-pCopyBufferToImageInfo-parameter", - "text": " pCopyBufferToImageInfo must be a valid pointer to a valid VkCopyBufferToImageInfo2KHR structure" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyBufferToImage2KHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkCopyBufferToImageInfo2KHR": { - "(VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-00172", - "text": " The image region specified by each element of pRegions must be a region that is contained within dstImage" - } - ], - "(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04565", - "text": " If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within dstImage" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04554", - "text": " If the image region specified by each element of pRegions does contain VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated destination region as described in Buffer and Image Addressing with Rotation must be contained within dstImage." - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04555", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must not be a blocked image." - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-04556", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the dstImage must be of type VK_IMAGE_TYPE_2D and must not be a multi-planar format." - } - ], - "core": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-00171", - "text": " srcBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-00173", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00174", - "text": " srcBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-00176", - "text": " If srcBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImage-00177", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImage-00178", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImage-00179", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-00180", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageSubresource-01701", - "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageSubresource-01702", - "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageOffset-01793", - "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04052", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImage-04053", - "text": " If dstImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-commandBuffer-04477", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT, for each element of pRegions, the aspectMask member of imageSubresource must not be VK_IMAGE_ASPECT_DEPTH_BIT or VK_IMAGE_ASPECT_STENCIL_BIT." - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00197", - "text": " For each element of pRegions" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00198", - "text": " For each element of pRegions" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-srcImage-00199", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00200", - "text": " For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-srcImage-00201", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-bufferRowLength-00203", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-bufferImageHeight-00204", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageOffset-00205", - "text": " If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-00206", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00207", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00208", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-imageExtent-00209", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-aspectMask-00211", - "text": " For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-baseArrayLayer-00213", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImage-01997", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_TRANSFER_DST_BIT" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-00181", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-01396", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImage-02543", - "text": " dstImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-None-00214", - "text": " For each element of pRegions whose imageSubresource contains a depth aspect, the data in srcBuffer must be in the range [0,1]" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-00193", - "text": " If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01558", - "text": " If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-bufferOffset-01559", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-aspectMask-01560", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-srcBuffer-parameter", - "text": " srcBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2KHR structures" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-VkCopyBufferToImageInfo2KHR-commonparent", - "text": " Both of dstImage, and srcBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdCopyImageToBuffer2KHR": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01831", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01832", - "text": " If commandBuffer is an unprotected command buffer, then dstBuffer must not be a protected buffer" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-01833", - "text": " If commandBuffer is a protected command buffer, then dstBuffer must not be an unprotected buffer" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-pCopyImageToBufferInfo-parameter", - "text": " pCopyImageToBufferInfo must be a valid pointer to a valid VkCopyImageToBufferInfo2KHR structure" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdCopyImageToBuffer2KHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkCopyImageToBufferInfo2KHR": { - "(VK_KHR_copy_commands2)+!(VK_QCOM_rotated_copy_commands)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-00182", - "text": " The image region specified by each element of pRegions must be a region that is contained within srcImage" - } - ], - "(VK_KHR_copy_commands2)+(VK_QCOM_rotated_copy_commands)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04566", - "text": " If the image region specified by each element of pRegions does not contain VkCopyCommandTransformInfoQCOM in its pNext chain, it must be a region that is contained within srcImage" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04557", - "text": " If the image region specified by each element of pRegions does contain VkCopyCommandTransformInfoQCOM in its pNext chain, the rotated source region as described in Buffer and Image Addressing with Rotation must be contained within srcImage." - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04558", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must not be a blocked image" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-04559", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type VK_IMAGE_TYPE_2D, and must not be a multi-planar format." - } - ], - "core": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-00183", - "text": " dstBuffer must be large enough to contain all buffer locations that are accessed according to Buffer and Image Addressing, for each element of pRegions" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-00184", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-00186", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-00187", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00191", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-00192", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-00188", - "text": " srcImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-00189", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageSubresource-01703", - "text": " The imageSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageSubresource-01704", - "text": " The imageSubresource.baseArrayLayer + imageSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageOffset-01794", - "text": " The imageOffset and imageExtent members of each element of pRegions must respect the image transfer granularity requirements of commandBuffer’s command pool’s queue family, as described in VkQueueFamilyProperties" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-commandBuffer-04054", - "text": " If the queue family used to create the VkCommandPool which commandBuffer was allocated from does not support VK_QUEUE_GRAPHICS_BIT or VK_QUEUE_COMPUTE_BIT, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-04055", - "text": " If srcImage has a depth/stencil format, the bufferOffset member of any element of pRegions must be a multiple of 4" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00197", - "text": " For each element of pRegions" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00198", - "text": " For each element of pRegions" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-00199", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, imageOffset.y must be 0 and imageExtent.height must be 1" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00200", - "text": " For each element of pRegions, imageOffset.z and (imageExtent.depth + imageOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-00201", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, imageOffset.z must be 0 and imageExtent.depth must be 1" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-bufferRowLength-00203", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferRowLength must be a multiple of the compressed texel block width" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-bufferImageHeight-00204", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferImageHeight must be a multiple of the compressed texel block height" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageOffset-00205", - "text": " If {imageparam} is a blocked image, for each element of pRegions, all members of imageOffset must be a multiple of the corresponding dimensions of the compressed texel block" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-00206", - "text": " If {imageparam} is a blocked image, for each element of pRegions, bufferOffset must be a multiple of the compressed texel block size in bytes" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00207", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.width must be a multiple of the compressed texel block width or (imageExtent.width + imageOffset.x) must equal the width of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00208", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.height must be a multiple of the compressed texel block height or (imageExtent.height + imageOffset.y) must equal the height of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-imageExtent-00209", - "text": " If {imageparam} is a blocked image, for each element of pRegions, imageExtent.depth must be a multiple of the compressed texel block depth or (imageExtent.depth + imageOffset.z) must equal the depth of the specified imageSubresource of {imageparam}" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-aspectMask-00211", - "text": " For each element of pRegions, imageSubresource.aspectMask must specify aspects present in {imageparam}" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-baseArrayLayer-00213", - "text": " If {imageparam} is of type VK_IMAGE_TYPE_3D, for each element of pRegions, imageSubresource.baseArrayLayer must be 0 and imageSubresource.layerCount must be 1" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-01998", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_TRANSFER_SRC_BIT" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-00190", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-01397", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, VK_IMAGE_LAYOUT_GENERAL, or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-02544", - "text": " srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "!(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-00193", - "text": " If {imageparam} does not have a depth/stencil format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01558", - "text": " If {imageparam} does not have either a depth/stencil or a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the format’s texel block size" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-bufferOffset-01559", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, bufferOffset must be a multiple of the element size of the compatible format for the format and the aspectMask of the imageSubresource as defined in Compatible formats of planes of multi-planar formats" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-aspectMask-01560", - "text": " If {imageparam} has a multi-planar format, then for each element of pRegions, imageSubresource.aspectMask must be VK_IMAGE_ASPECT_PLANE_0_BIT, VK_IMAGE_ASPECT_PLANE_1_BIT, or VK_IMAGE_ASPECT_PLANE_2_BIT (with VK_IMAGE_ASPECT_PLANE_2_BIT valid only for image formats with three planes)" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkBufferImageCopy2KHR structures" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-VkCopyImageToBufferInfo2KHR-commonparent", - "text": " Both of dstBuffer, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkBufferImageCopy2KHR": { - "core": [ - { - "vuid": "VUID-VkBufferImageCopy2KHR-bufferRowLength-00195", - "text": " bufferRowLength must be 0, or greater than or equal to the width member of imageExtent" - }, - { - "vuid": "VUID-VkBufferImageCopy2KHR-bufferImageHeight-00196", - "text": " bufferImageHeight must be 0, or greater than or equal to the height member of imageExtent" - }, - { - "vuid": "VUID-VkBufferImageCopy2KHR-aspectMask-00212", - "text": " The aspectMask member of imageSubresource must only have a single bit set" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkBufferImageCopy2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR" - }, - { - "vuid": "VUID-VkBufferImageCopy2KHR-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM" - }, - { - "vuid": "VUID-VkBufferImageCopy2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkBufferImageCopy2KHR-imageSubresource-parameter", - "text": " imageSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "VkCopyCommandTransformInfoQCOM": { - "(VK_QCOM_rotated_copy_commands)": [ - { - "vuid": "VUID-VkCopyCommandTransformInfoQCOM-transform-04560", - "text": " transform must be VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR, VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR, or VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR" - }, - { - "vuid": "VUID-VkCopyCommandTransformInfoQCOM-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM" - } - ] - }, - "vkCmdBlitImage": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-01834", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-01835", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-01836", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdBlitImage-pRegions-00215", - "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-pRegions-00216", - "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-pRegions-00217", - "text": " The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-01999", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00219", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00220", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00221", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-02000", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-00224", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-00225", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00226", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00229", - "text": " If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00230", - "text": " If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00231", - "text": " If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00232", - "text": " If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00233", - "text": " srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-00234", - "text": " dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-vkCmdBlitImage-filter-02001", - "text": " If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcSubresource-01705", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstSubresource-01706", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcSubresource-01707", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstSubresource-01708", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00240", - "text": " If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1." - }, - { - "vuid": "VUID-vkCmdBlitImage-aspectMask-00241", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-aspectMask-00242", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcOffset-00243", - "text": " For each element of pRegions, srcOffset[0].x and srcOffset[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcOffset-00244", - "text": " For each element of pRegions, srcOffset[0].y and srcOffset[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00245", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset[0].y must be 0 and srcOffset[1].y must be 1" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcOffset-00246", - "text": " For each element of pRegions, srcOffset[0].z and srcOffset[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-00247", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset[0].z must be 0 and srcOffset[1].z must be 1" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstOffset-00248", - "text": " For each element of pRegions, dstOffset[0].x and dstOffset[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstOffset-00249", - "text": " For each element of pRegions, dstOffset[0].y and dstOffset[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-00250", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset[0].y must be 0 and dstOffset[1].y must be 1" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstOffset-00251", - "text": " For each element of pRegions, dstOffset[0].z and dstOffset[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-00252", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset[0].z must be 0 and dstOffset[1].z must be 1" - }, - { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdBlitImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageBlit structures" - }, - { - "vuid": "VUID-vkCmdBlitImage-filter-parameter", - "text": " filter must be a valid VkFilter value" - }, - { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBlitImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBlitImage-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdBlitImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdBlitImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-vkCmdBlitImage-srcImage-01561", - "text": " srcImage must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImage-01562", - "text": " dstImage must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-00222", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-00227", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdBlitImage-srcImageLayout-01398", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-vkCmdBlitImage-dstImageLayout-01399", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdBlitImage-filter-02002", - "text": " If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdBlitImage-filter-00237", - "text": " If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdBlitImage-dstImage-02545", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ] - }, - "VkImageBlit": { - "core": [ - { - "vuid": "VUID-VkImageBlit-aspectMask-00238", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" - }, - { - "vuid": "VUID-VkImageBlit-layerCount-00239", - "text": " The layerCount member of srcSubresource and dstSubresource must match" - }, - { - "vuid": "VUID-VkImageBlit-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" - }, - { - "vuid": "VUID-VkImageBlit-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "vkCmdBlitImage2KHR": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdBlitImage2KHR-commandBuffer-01834", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdBlitImage2KHR-commandBuffer-01835", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdBlitImage2KHR-commandBuffer-01836", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-vkCmdBlitImage2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBlitImage2KHR-pBlitImageInfo-parameter", - "text": " pBlitImageInfo must be a valid pointer to a valid VkBlitImageInfo2KHR structure" - }, - { - "vuid": "VUID-vkCmdBlitImage2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBlitImage2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBlitImage2KHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkBlitImageInfo2KHR": { - "core": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-00215", - "text": " The source region specified by each element of pRegions must be a region that is contained within srcImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-00216", - "text": " The destination region specified by each element of pRegions must be a region that is contained within dstImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-00217", - "text": " The union of all destination regions, specified by the elements of pRegions, must not overlap in memory with any texel that may be sampled during the blit operation" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-01999", - "text": " The format features of srcImage must contain VK_FORMAT_FEATURE_BLIT_SRC_BIT" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00219", - "text": " srcImage must have been created with VK_IMAGE_USAGE_TRANSFER_SRC_BIT usage flag" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00220", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImageLayout-00221", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-02000", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_BLIT_DST_BIT" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-00224", - "text": " dstImage must have been created with VK_IMAGE_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-00225", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImageLayout-00226", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00229", - "text": " If either of srcImage or dstImage was created with a signed integer VkFormat, the other must also have been created with a signed integer VkFormat" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00230", - "text": " If either of srcImage or dstImage was created with an unsigned integer VkFormat, the other must also have been created with an unsigned integer VkFormat" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00231", - "text": " If either of srcImage or dstImage was created with a depth/stencil format, the other must have exactly the same format" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00232", - "text": " If srcImage was created with a depth/stencil format, filter must be VK_FILTER_NEAREST" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00233", - "text": " srcImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-00234", - "text": " dstImage must have been created with a samples value of VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-filter-02001", - "text": " If filter is VK_FILTER_LINEAR, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcSubresource-01705", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstSubresource-01706", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcSubresource-01707", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstSubresource-01708", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00240", - "text": " If either srcImage or dstImage is of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer and dstSubresource.baseArrayLayer must each be 0, and srcSubresource.layerCount and dstSubresource.layerCount must each be 1." - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-aspectMask-00241", - "text": " For each element of pRegions, srcSubresource.aspectMask must specify aspects present in srcImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-aspectMask-00242", - "text": " For each element of pRegions, dstSubresource.aspectMask must specify aspects present in dstImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcOffset-00243", - "text": " For each element of pRegions, srcOffset[0].x and srcOffset[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcOffset-00244", - "text": " For each element of pRegions, srcOffset[0].y and srcOffset[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00245", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset[0].y must be 0 and srcOffset[1].y must be 1" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcOffset-00246", - "text": " For each element of pRegions, srcOffset[0].z and srcOffset[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-00247", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset[0].z must be 0 and srcOffset[1].z must be 1" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstOffset-00248", - "text": " For each element of pRegions, dstOffset[0].x and dstOffset[1].x must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstOffset-00249", - "text": " For each element of pRegions, dstOffset[0].y and dstOffset[1].y must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-00250", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset[0].y must be 0 and dstOffset[1].y must be 1" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstOffset-00251", - "text": " For each element of pRegions, dstOffset[0].z and dstOffset[1].z must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-00252", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset[0].z must be 0 and dstOffset[1].z must be 1" - } - ], - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-01561", - "text": " srcImage must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-01562", - "text": " dstImage must not use a format listed in Formats requiring sampler Y′CBCR conversion for VK_IMAGE_ASPECT_COLOR_BIT image views" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImageLayout-00222", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImageLayout-00227", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImageLayout-01398", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImageLayout-01399", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-filter-02002", - "text": " If filter is VK_FILTER_CUBIC_EXT, then the format features of srcImage must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-filter-00237", - "text": " If filter is VK_FILTER_CUBIC_EXT, srcImage must be of type VK_IMAGE_TYPE_2D" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-02545", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "(VK_QCOM_rotated_copy_commands)": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-04561", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then srcImage and dstImage must not be a block-compressed image." - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-04562", - "text": " If any element of pRegions contains VkCopyCommandTransformInfoQCOM in its pNext chain, then the srcImage must be of type VK_IMAGE_TYPE_2D and must not be a multi-planar format." - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkBlitImageInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageBlit2KHR structures" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-filter-parameter", - "text": " filter must be a valid VkFilter value" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-VkBlitImageInfo2KHR-commonparent", - "text": " Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkImageBlit2KHR": { - "core": [ - { - "vuid": "VUID-VkImageBlit2KHR-aspectMask-00238", - "text": " The aspectMask member of srcSubresource and dstSubresource must match" - }, - { - "vuid": "VUID-VkImageBlit2KHR-layerCount-00239", - "text": " The layerCount member of srcSubresource and dstSubresource must match" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkImageBlit2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR" - }, - { - "vuid": "VUID-VkImageBlit2KHR-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkCopyCommandTransformInfoQCOM" - }, - { - "vuid": "VUID-VkImageBlit2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkImageBlit2KHR-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" - }, - { - "vuid": "VUID-VkImageBlit2KHR-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "vkCmdResolveImage": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-01837", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-01838", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-01839", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdResolveImage-pRegions-00255", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-00256", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-00257", - "text": " srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImage-00258", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImage-00259", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00260", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00262", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImage-02003", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-01386", - "text": " srcImage and dstImage must have been created with the same image format" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcSubresource-01709", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstSubresource-01710", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcSubresource-01711", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstSubresource-01712", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-04446", - "text": " If either srcImage or dstImage are of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-04447", - "text": " If either srcImage or dstImage are of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcOffset-00269", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcOffset-00270", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-00271", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcOffset-00272", - "text": " For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-00273", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstOffset-00274", - "text": " For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstOffset-00275", - "text": " For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImage-00276", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstOffset-00277", - "text": " For each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImage-00278", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" - }, - { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdResolveImage-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageResolve structures" - }, - { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdResolveImage-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdResolveImage-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdResolveImage-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdResolveImage-commonparent", - "text": " Each of commandBuffer, dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-00261", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-00263", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkCmdResolveImage-srcImageLayout-01400", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-vkCmdResolveImage-dstImageLayout-01401", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdResolveImage-dstImage-02546", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ] - }, - "VkImageResolve": { - "core": [ - { - "vuid": "VUID-VkImageResolve-aspectMask-00266", - "text": " The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-VkImageResolve-layerCount-00267", - "text": " The layerCount member of srcSubresource and dstSubresource must match" - }, - { - "vuid": "VUID-VkImageResolve-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" - }, - { - "vuid": "VUID-VkImageResolve-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "vkCmdWriteBufferMarkerAMD": { - "core": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04074", - "text": " pipelineStage must be a valid stage for the queue family that was used to create the command pool that commandBuffer was allocated from" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04075", - "text": " If the geometry shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04076", - "text": " If the tessellation shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01798", - "text": " dstOffset must be less than or equal to the size of dstBuffer minus 4" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01799", - "text": " dstBuffer must have been created with VK_BUFFER_USAGE_TRANSFER_DST_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-01800", - "text": " If dstBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstOffset-01801", - "text": " dstOffset must be a multiple of 4" - } - ], - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04077", - "text": " If the conditional rendering feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04078", - "text": " If the fragment density map feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04079", - "text": " If the transform feedback feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04080", - "text": " If the mesh shaders feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV or VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV" - } - ], - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-04081", - "text": " If the shading rate image feature is not enabled, pipelineStage must not be VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV" - } - ], - "(VK_AMD_buffer_marker)": [ - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-pipelineStage-parameter", - "text": " pipelineStage must be a valid VkPipelineStageFlagBits value" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-dstBuffer-parameter", - "text": " dstBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support transfer, graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdWriteBufferMarkerAMD-commonparent", - "text": " Both of commandBuffer, and dstBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdResolveImage2KHR": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdResolveImage2KHR-commandBuffer-01837", - "text": " If commandBuffer is an unprotected command buffer, then srcImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdResolveImage2KHR-commandBuffer-01838", - "text": " If commandBuffer is an unprotected command buffer, then dstImage must not be a protected image" - }, - { - "vuid": "VUID-vkCmdResolveImage2KHR-commandBuffer-01839", - "text": " If commandBuffer is a protected command buffer, then dstImage must not be an unprotected image" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-vkCmdResolveImage2KHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdResolveImage2KHR-pResolveImageInfo-parameter", - "text": " pResolveImageInfo must be a valid pointer to a valid VkResolveImageInfo2KHR structure" - }, - { - "vuid": "VUID-vkCmdResolveImage2KHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdResolveImage2KHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdResolveImage2KHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkResolveImageInfo2KHR": { - "core": [ - { - "vuid": "VUID-VkResolveImageInfo2KHR-pRegions-00255", - "text": " The union of all source regions, and the union of all destination regions, specified by the elements of pRegions, must not overlap in memory" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-00256", - "text": " If srcImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-00257", - "text": " srcImage must have a sample count equal to any valid sample count value other than VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImage-00258", - "text": " If dstImage is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImage-00259", - "text": " dstImage must have a sample count equal to VK_SAMPLE_COUNT_1_BIT" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImageLayout-00260", - "text": " srcImageLayout must specify the layout of the image subresources of srcImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImageLayout-00262", - "text": " dstImageLayout must specify the layout of the image subresources of dstImage specified in pRegions at the time this command is executed on a VkDevice" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImage-02003", - "text": " The format features of dstImage must contain VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-01386", - "text": " srcImage and dstImage must have been created with the same image format" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcSubresource-01709", - "text": " The srcSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstSubresource-01710", - "text": " The dstSubresource.mipLevel member of each element of pRegions must be less than the mipLevels specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcSubresource-01711", - "text": " The srcSubresource.baseArrayLayer + srcSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when srcImage was created" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstSubresource-01712", - "text": " The dstSubresource.baseArrayLayer + dstSubresource.layerCount of each element of pRegions must be less than or equal to the arrayLayers specified in VkImageCreateInfo when dstImage was created" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-04446", - "text": " If either srcImage or dstImage are of type VK_IMAGE_TYPE_3D, then for each element of pRegions, srcSubresource.baseArrayLayer must be 0 and srcSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-04447", - "text": " If either srcImage or dstImage are of type VK_IMAGE_TYPE_3D, then for each element of pRegions, dstSubresource.baseArrayLayer must be 0 and dstSubresource.layerCount must be 1" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcOffset-00269", - "text": " For each element of pRegions, srcOffset.x and (extent.width + srcOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcOffset-00270", - "text": " For each element of pRegions, srcOffset.y and (extent.height + srcOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-00271", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, srcOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcOffset-00272", - "text": " For each element of pRegions, srcOffset.z and (extent.depth + srcOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified srcSubresource of srcImage" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-00273", - "text": " If srcImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, srcOffset.z must be 0 and extent.depth must be 1" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstOffset-00274", - "text": " For each element of pRegions, dstOffset.x and (extent.width + dstOffset.x) must both be greater than or equal to 0 and less than or equal to the width of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstOffset-00275", - "text": " For each element of pRegions, dstOffset.y and (extent.height + dstOffset.y) must both be greater than or equal to 0 and less than or equal to the height of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImage-00276", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D, then for each element of pRegions, dstOffset.y must be 0 and extent.height must be 1" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstOffset-00277", - "text": " For each element of pRegions, dstOffset.z and (extent.depth + dstOffset.z) must both be greater than or equal to 0 and less than or equal to the depth of the specified dstSubresource of dstImage" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImage-00278", - "text": " If dstImage is of type VK_IMAGE_TYPE_1D or VK_IMAGE_TYPE_2D, then for each element of pRegions, dstOffset.z must be 0 and extent.depth must be 1" - } - ], - "!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImageLayout-00261", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImageLayout-00263", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImageLayout-01400", - "text": " srcImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImageLayout-01401", - "text": " dstImageLayout must be VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR, VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL or VK_IMAGE_LAYOUT_GENERAL" - } - ], - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImage-02546", - "text": " dstImage and srcImage must not have been created with flags containing VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkResolveImageInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImage-parameter", - "text": " srcImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-srcImageLayout-parameter", - "text": " srcImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImage-parameter", - "text": " dstImage must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-dstImageLayout-parameter", - "text": " dstImageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-pRegions-parameter", - "text": " pRegions must be a valid pointer to an array of regionCount valid VkImageResolve2KHR structures" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-regionCount-arraylength", - "text": " regionCount must be greater than 0" - }, - { - "vuid": "VUID-VkResolveImageInfo2KHR-commonparent", - "text": " Both of dstImage, and srcImage must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkImageResolve2KHR": { - "core": [ - { - "vuid": "VUID-VkImageResolve2KHR-aspectMask-00266", - "text": " The aspectMask member of srcSubresource and dstSubresource must only contain VK_IMAGE_ASPECT_COLOR_BIT" - }, - { - "vuid": "VUID-VkImageResolve2KHR-layerCount-00267", - "text": " The layerCount member of srcSubresource and dstSubresource must match" - } - ], - "(VK_KHR_copy_commands2)": [ - { - "vuid": "VUID-VkImageResolve2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR" - }, - { - "vuid": "VUID-VkImageResolve2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImageResolve2KHR-srcSubresource-parameter", - "text": " srcSubresource must be a valid VkImageSubresourceLayers structure" - }, - { - "vuid": "VUID-VkImageResolve2KHR-dstSubresource-parameter", - "text": " dstSubresource must be a valid VkImageSubresourceLayers structure" - } - ] - }, - "VkPipelineInputAssemblyStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00428", - "text": " If topology is VK_PRIMITIVE_TOPOLOGY_POINT_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, primitiveRestartEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00429", - "text": " If the geometry shaders feature is not enabled, topology must not be any of VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY, VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY or VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY" - }, - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-00430", - "text": " If the tessellation shaders feature is not enabled, topology must not be VK_PRIMITIVE_TOPOLOGY_PATCH_LIST" - }, - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-topology-parameter", - "text": " topology must be a valid VkPrimitiveTopology value" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkPipelineInputAssemblyStateCreateInfo-triangleFans-04452", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::triangleFans is VK_FALSE, topology must not be VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN." - } - ] - }, - "vkCmdSetPrimitiveTopologyEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-None-03347", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-primitiveTopology-parameter", - "text": " primitiveTopology must be a valid VkPrimitiveTopology value" - }, - { - "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetPrimitiveTopologyEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdBindIndexBuffer": { - "core": [ - { - "vuid": "VUID-vkCmdBindIndexBuffer-offset-00431", - "text": " offset must be less than the size of buffer" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-offset-00432", - "text": " The sum of offset and the address of the range of VkDeviceMemory object that is backing buffer, must be a multiple of the type indicated by indexType" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00433", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDEX_BUFFER_BIT flag" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-buffer-00434", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBindIndexBuffer-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_NV_ray_tracing,VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02507", - "text": " indexType must not be VK_INDEX_TYPE_NONE_KHR" - } - ], - "(VK_EXT_index_type_uint8)": [ - { - "vuid": "VUID-vkCmdBindIndexBuffer-indexType-02765", - "text": " If indexType is VK_INDEX_TYPE_UINT8_EXT, the indexTypeUint8 feature must be enabled" - } - ] - }, - "vkCmdDraw": { - "core": [ - { - "vuid": "VUID-vkCmdDraw-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDraw-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDraw-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDraw-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDraw-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDraw-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDraw-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDraw-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDraw-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDraw-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDraw-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDraw-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDraw-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDraw-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDraw-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDraw-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDraw-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDraw-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDraw-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDraw-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdDraw-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdDraw-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdDraw-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDraw-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDraw-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDraw-renderpass", - "text": " This command must only be called inside of a render pass instance" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDraw-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDraw-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDraw-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDraw-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDraw-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDraw-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDraw-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" - }, - { - "vuid": "VUID-vkCmdDraw-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" - }, - { - "vuid": "VUID-vkCmdDraw-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDraw-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDraw-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDraw-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDraw-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDraw-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDraw-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDraw-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDraw-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDraw-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDraw-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDraw-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDraw-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDraw-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDraw-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDraw-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ] - }, - "vkCmdDrawIndexed": { - "core": [ - { - "vuid": "VUID-vkCmdDrawIndexed-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-indexSize-00463", - "text": " (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-renderpass", - "text": " This command must only be called inside of a render pass instance" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawIndexed-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexed-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ] - }, - "vkCmdDrawIndirect": { - "core": [ - { - "vuid": "VUID-vkCmdDrawIndirect-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndirect-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndirect-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-offset-02710", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-02718", - "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-firstInstance-00478", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndirectCommand structures accessed by this command must be 0" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00476", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00487", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-drawCount-00488", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndirect-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndirect-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndirect-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawIndirect-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirect-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ] - }, - "VkDrawIndirectCommand": { - "core": [ - { - "vuid": "VUID-VkDrawIndirectCommand-None-00500", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-VkDrawIndirectCommand-firstInstance-00501", - "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" - } - ] - }, - "vkCmdDrawIndirectCount": { - "core": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-offset-02710", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02714", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02715", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-02716", - "text": " countBufferOffset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-02717", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129", - "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-stride-03110", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndirectCommand)" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03121", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-03122", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndirectCommand)) must be less than or equal to the size of buffer" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ], - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-None-04445", - "text": " If drawIndirectCount is not enabled this function must not be used" - } - ], - "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [ - { - "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDrawIndirectCount-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdDrawIndexedIndirect": { - "core": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-offset-02710", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02718", - "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-firstInstance-00530", - "text": " If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the VkDrawIndexedIndirectCommand structures accessed by this command must be 0" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00539", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ] - }, - "VkDrawIndexedIndirectCommand": { - "core": [ - { - "vuid": "VUID-VkDrawIndexedIndirectCommand-None-00552", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-VkDrawIndexedIndirectCommand-indexSize-00553", - "text": " (indexSize {times} (firstIndex + indexCount) + offset) must be less than or equal to the size of the bound index buffer, with indexSize being based on the type specified by indexType, where the index buffer, indexType, and offset are specified via vkCmdBindIndexBuffer" - }, - { - "vuid": "VUID-VkDrawIndexedIndirectCommand-firstInstance-00554", - "text": " If the drawIndirectFirstInstance feature is not enabled, firstInstance must be 0" - } - ] - }, - "vkCmdDrawIndexedIndirectCount": { - "core": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-offset-02710", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-02716", - "text": " countBufferOffset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02717", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129", - "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawIndexedIndirectCommand)" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03153", - "text": " If count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-03154", - "text": " If count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawIndexedIndirectCommand)) must be less than or equal to the size of buffer" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ], - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-None-04445", - "text": " If drawIndirectCount is not enabled this function must not be used" - } - ], - "(VK_VERSION_1_2,VK_KHR_draw_indirect_count)": [ - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDrawIndexedIndirectCount-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdDrawIndirectByteCountEXT": { - "core": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288", - "text": " The implementation must support VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-vertexStride-02289", - "text": " vertexStride must be greater than 0 and less than or equal to VkPhysicalDeviceLimits::maxTransformFeedbackBufferDataStride" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567", - "text": " If counterBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290", - "text": " counterBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBufferOffset-04568", - "text": " counterBufferOffset must be a multiple of 4" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-parameter", - "text": " counterBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDrawIndirectByteCountEXT-commonparent", - "text": " Both of commandBuffer, and counterBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdBeginConditionalRenderingEXT": { - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-None-01980", - "text": " Conditional rendering must not already be active" - }, - { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-pConditionalRenderingBegin-parameter", - "text": " pConditionalRenderingBegin must be a valid pointer to a valid VkConditionalRenderingBeginInfoEXT structure" - }, - { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBeginConditionalRenderingEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "VkConditionalRenderingBeginInfoEXT": { - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01981", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-01982", - "text": " buffer must have been created with the VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT bit set" - }, - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01983", - "text": " offset must be less than the size of buffer by at least 32 bits" - }, - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-offset-01984", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT" - }, - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkConditionalRenderingBeginInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkConditionalRenderingFlagBitsEXT values" - } - ] - }, - "vkCmdEndConditionalRenderingEXT": { - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01985", - "text": " Conditional rendering must be active" - }, - { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01986", - "text": " If conditional rendering was made active outside of a render pass instance, it must not be ended inside a render pass instance" - }, - { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-None-01987", - "text": " If conditional rendering was made active within a subpass it must be ended in the same subpass" - }, - { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdEndConditionalRenderingEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "vkCmdDrawMeshTasksNV": { - "core": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-taskCount-02119", - "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksNV-renderpass", - "text": " This command must only be called inside of a render pass instance" - } - ] - }, - "vkCmdDrawMeshTasksIndirectNV": { - "core": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-offset-02710", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02718", - "text": " If the multi-draw indirect feature is not enabled, drawCount must be 0 or 1" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02719", - "text": " drawCount must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02146", - "text": " If drawCount is greater than 1, stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02156", - "text": " If drawCount is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", - "text": " If drawCount is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectNV-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkDrawMeshTasksIndirectCommandNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkDrawMeshTasksIndirectCommandNV-taskCount-02175", - "text": " taskCount must be less than or equal to VkPhysicalDeviceMeshShaderPropertiesNV::maxDrawMeshTasksCount" - } - ] - }, - "vkCmdDrawMeshTasksIndirectCountNV": { - "core": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-offset-02710", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714", - "text": " If countBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715", - "text": " countBuffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-02716", - "text": " countBufferOffset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02717", - "text": " The count stored in countBuffer must be less than or equal to VkPhysicalDeviceLimits::maxDrawIndirectCount" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129", - "text": " (countBufferOffset + sizeof(uint32_t)) must be less than or equal to the size of countBuffer" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", - "text": " stride must be a multiple of 4 and must be greater than or equal to sizeof(VkDrawMeshTasksIndirectCommandNV)" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", - "text": " If maxDrawCount is greater than or equal to 1, (stride {times} (maxDrawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02191", - "text": " If the count stored in countBuffer is equal to 1, (offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02192", - "text": " If the count stored in countBuffer is greater than 1, (stride {times} (drawCount - 1) + offset + sizeof(VkDrawMeshTasksIndirectCommandNV)) must be less than or equal to the size of buffer" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ], - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04445", - "text": " If drawIndirectCount is not enabled this function must not be used" - } - ], - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-parameter", - "text": " countBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDrawMeshTasksIndirectCountNV-commonparent", - "text": " Each of buffer, commandBuffer, and countBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkPipelineVertexInputStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexBindingDescriptionCount-00613", - "text": " vertexBindingDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-vertexAttributeDescriptionCount-00614", - "text": " vertexAttributeDescriptionCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributes" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-binding-00615", - "text": " For every binding specified by each element of pVertexAttributeDescriptions, a VkVertexInputBindingDescription must exist in pVertexBindingDescriptions with the same value of binding" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-00616", - "text": " All elements of pVertexBindingDescriptions must describe distinct binding numbers" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-00617", - "text": " All elements of pVertexAttributeDescriptions must describe distinct attribute locations" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineVertexInputDivisorStateCreateInfoEXT" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexBindingDescriptions-parameter", - "text": " If vertexBindingDescriptionCount is not 0, pVertexBindingDescriptions must be a valid pointer to an array of vertexBindingDescriptionCount valid VkVertexInputBindingDescription structures" - }, - { - "vuid": "VUID-VkPipelineVertexInputStateCreateInfo-pVertexAttributeDescriptions-parameter", - "text": " If vertexAttributeDescriptionCount is not 0, pVertexAttributeDescriptions must be a valid pointer to an array of vertexAttributeDescriptionCount valid VkVertexInputAttributeDescription structures" - } - ] - }, - "VkVertexInputBindingDescription": { - "core": [ - { - "vuid": "VUID-VkVertexInputBindingDescription-binding-00618", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-VkVertexInputBindingDescription-stride-00619", - "text": " stride must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" - }, - { - "vuid": "VUID-VkVertexInputBindingDescription-inputRate-parameter", - "text": " inputRate must be a valid VkVertexInputRate value" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkVertexInputBindingDescription-stride-04456", - "text": " If the [VK_KHR_portability_subset] extension is enabled, stride must be a multiple of, and at least as large as, VkPhysicalDevicePortabilitySubsetPropertiesKHR::minVertexInputBindingStrideAlignment." - } - ] - }, - "VkVertexInputAttributeDescription": { - "core": [ - { - "vuid": "VUID-VkVertexInputAttributeDescription-location-00620", - "text": " location must be less than VkPhysicalDeviceLimits::maxVertexInputAttributes" - }, - { - "vuid": "VUID-VkVertexInputAttributeDescription-binding-00621", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-VkVertexInputAttributeDescription-offset-00622", - "text": " offset must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputAttributeOffset" - }, - { - "vuid": "VUID-VkVertexInputAttributeDescription-format-00623", - "text": " format must be allowed as a vertex buffer format, as specified by the VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT flag in VkFormatProperties::bufferFeatures returned by vkGetPhysicalDeviceFormatProperties" - }, - { - "vuid": "VUID-VkVertexInputAttributeDescription-format-parameter", - "text": " format must be a valid VkFormat value" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkVertexInputAttributeDescription-vertexAttributeAccessBeyondStride-04457", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::vertexAttributeAccessBeyondStride is VK_FALSE, the sum of offset plus the size of the vertex attribute data described by format must not be greater than stride in the VkVertexInputBindingDescription referenced in binding." - } - ] - }, - "vkCmdBindVertexBuffers": { - "core": [ - { - "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00624", - "text": " firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-firstBinding-00625", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-00626", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00627", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-00628", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04001", - "text": " If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid or VK_NULL_HANDLE VkBuffer handles" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-bindingCount-arraylength", - "text": " bindingCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_robustness2)": [ - { - "vuid": "VUID-vkCmdBindVertexBuffers-pBuffers-04002", - "text": " If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero" - } - ] - }, - "vkCmdBindVertexBuffers2EXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03355", - "text": " firstBinding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-firstBinding-03356", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pOffsets-03357", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pSizes-03358", - "text": " If pSizes is not NULL, all elements of pOffsets plus pSizes must be less than or equal to the size of the corresponding element in pBuffers" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03359", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT flag" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-03360", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04111", - "text": " If the nullDescriptor feature is not enabled, all elements of pBuffers must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-03361", - "text": " If the bound pipeline state object was created with the VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT dynamic state enabled then pStrides must not be NULL, otherwise pStrides must be NULL" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-03362", - "text": " If pStrides is not NULL each element of pStrides must be less than or equal to VkPhysicalDeviceLimits::maxVertexInputBindingStride" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-03363", - "text": " If pStrides is not NULL each element of pStrides must be greater than or equal to the maximum extent of of all vertex input attributes fetched from the corresponding binding, where the extent is calculated as the VkVertexInputAttributeDescription::offset plus VkVertexInputAttributeDescription::format size" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pSizes-parameter", - "text": " If pSizes is not NULL, pSizes must be a valid pointer to an array of bindingCount VkDeviceSize values" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pStrides-parameter", - "text": " If pStrides is not NULL, pStrides must be a valid pointer to an array of bindingCount VkDeviceSize values" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-bindingCount-arraylength", - "text": " If any of pSizes, or pStrides are not NULL, bindingCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_EXT_robustness2)": [ - { - "vuid": "VUID-vkCmdBindVertexBuffers2EXT-pBuffers-04112", - "text": " If an element of pBuffers is VK_NULL_HANDLE, then the corresponding element of pOffsets must be zero" - } - ] - }, - "VkPipelineVertexInputDivisorStateCreateInfoEXT": { - "(VK_EXT_vertex_attribute_divisor)": [ - { - "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-pVertexBindingDivisors-parameter", - "text": " pVertexBindingDivisors must be a valid pointer to an array of vertexBindingDivisorCount VkVertexInputBindingDivisorDescriptionEXT structures" - }, - { - "vuid": "VUID-VkPipelineVertexInputDivisorStateCreateInfoEXT-vertexBindingDivisorCount-arraylength", - "text": " vertexBindingDivisorCount must be greater than 0" - } - ] - }, - "VkVertexInputBindingDivisorDescriptionEXT": { - "(VK_EXT_vertex_attribute_divisor)": [ - { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-binding-01869", - "text": " binding must be less than VkPhysicalDeviceLimits::maxVertexInputBindings" - }, - { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateZeroDivisor-02228", - "text": " If the vertexAttributeInstanceRateZeroDivisor feature is not enabled, divisor must not be 0" - }, - { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-vertexAttributeInstanceRateDivisor-02229", - "text": " If the vertexAttributeInstanceRateDivisor feature is not enabled, divisor must be 1" - }, - { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-divisor-01870", - "text": " divisor must be a value between 0 and VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT::maxVertexAttribDivisor, inclusive" - }, - { - "vuid": "VUID-VkVertexInputBindingDivisorDescriptionEXT-inputRate-01871", - "text": " VkVertexInputBindingDescription::inputRate must be of type VK_VERTEX_INPUT_RATE_INSTANCE for this binding" - } - ] - }, - "VkPipelineTessellationStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-patchControlPoints-01214", - "text": " patchControlPoints must be greater than zero and less than or equal to VkPhysicalDeviceLimits::maxTessellationPatchSize" - }, - { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineTessellationDomainOriginStateCreateInfo" - }, - { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPipelineTessellationStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "VkPipelineTessellationDomainOriginStateCreateInfo": { - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineTessellationDomainOriginStateCreateInfo-domainOrigin-parameter", - "text": " domainOrigin must be a valid VkTessellationDomainOrigin value" - } - ] - }, - "vkCmdBindTransformFeedbackBuffersEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-transformFeedback-02355", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02356", - "text": " firstBinding must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-firstBinding-02357", - "text": " The sum of firstBinding and bindingCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02358", - "text": " All elements of pOffsets must be less than the size of the corresponding element in pBuffers" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02359", - "text": " All elements of pOffsets must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02360", - "text": " All elements of pBuffers must have been created with the VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT flag" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSize-02361", - "text": " If the optional pSize array is specified, each element of pSizes must either be VK_WHOLE_SIZE, or be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBufferSize" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pSizes-02362", - "text": " All elements of pSizes must be either VK_WHOLE_SIZE, or less than or equal to the size of the corresponding buffer in pBuffers" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-02363", - "text": " All elements of pOffsets plus pSizes, where the pSizes, element is not VK_WHOLE_SIZE, must be less than or equal to the size of the corresponding buffer in pBuffers" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-02364", - "text": " Each element of pBuffers that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-None-02365", - "text": " Transform feedback must not be active when the vkCmdBindTransformFeedbackBuffersEXT command is recorded" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pBuffers-parameter", - "text": " pBuffers must be a valid pointer to an array of bindingCount valid VkBuffer handles" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-pOffsets-parameter", - "text": " pOffsets must be a valid pointer to an array of bindingCount VkDeviceSize values" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-bindingCount-arraylength", - "text": " bindingCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdBindTransformFeedbackBuffersEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pBuffers must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdBeginTransformFeedbackEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-transformFeedback-02366", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02367", - "text": " Transform feedback must not be active" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02368", - "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-firstCounterBuffer-02369", - "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-counterBufferCount-02607", - "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-02370", - "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffer-02371", - "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBuffers-02372", - "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-04128", - "text": " The last vertex processing stage of the bound graphics pipeline must have been declared with the Xfb execution mode" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-pCounterBufferOffsets-parameter", - "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_EXT_transform_feedback)+(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdBeginTransformFeedbackEXT-None-02373", - "text": " Transform feedback must not be made active in a render pass instance with multiview enabled" - } - ] - }, - "vkCmdEndTransformFeedbackEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-transformFeedback-02374", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::transformFeedback must be enabled" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-None-02375", - "text": " Transform feedback must be active" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02376", - "text": " firstCounterBuffer must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-firstCounterBuffer-02377", - "text": " The sum of firstCounterBuffer and counterBufferCount must be less than or equal to VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackBuffers" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-counterBufferCount-02608", - "text": " If counterBufferCount is not 0, and pCounterBuffers is not NULL, pCounterBuffers must be a valid pointer to an array of counterBufferCount VkBuffer handles that are either valid or VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-02378", - "text": " For each buffer handle in the array, if it is not VK_NULL_HANDLE it must reference a buffer large enough to hold 4 bytes at the corresponding offset from the pCounterBufferOffsets array" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffer-02379", - "text": " If pCounterBuffer is NULL, then pCounterBufferOffsets must also be NULL" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBuffers-02380", - "text": " For each buffer handle in the pCounterBuffers array that is not VK_NULL_HANDLE it must have been created with a usage value containing VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-pCounterBufferOffsets-parameter", - "text": " If counterBufferCount is not 0, and pCounterBufferOffsets is not NULL, pCounterBufferOffsets must be a valid pointer to an array of counterBufferCount VkDeviceSize values" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-renderpass", - "text": " This command must only be called inside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdEndTransformFeedbackEXT-commonparent", - "text": " Both of commandBuffer, and the elements of pCounterBuffers that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkPipelineViewportSwizzleStateCreateInfoNV": { - "(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-01215", - "text": " viewportCount must be greater than or equal to the viewportCount set in VkPipelineViewportStateCreateInfo" - }, - { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-pViewportSwizzles-parameter", - "text": " pViewportSwizzles must be a valid pointer to an array of viewportCount valid VkViewportSwizzleNV structures" - }, - { - "vuid": "VUID-VkPipelineViewportSwizzleStateCreateInfoNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "VkViewportSwizzleNV": { - "(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-VkViewportSwizzleNV-x-parameter", - "text": " x must be a valid VkViewportCoordinateSwizzleNV value" - }, - { - "vuid": "VUID-VkViewportSwizzleNV-y-parameter", - "text": " y must be a valid VkViewportCoordinateSwizzleNV value" - }, - { - "vuid": "VUID-VkViewportSwizzleNV-z-parameter", - "text": " z must be a valid VkViewportCoordinateSwizzleNV value" - }, - { - "vuid": "VUID-VkViewportSwizzleNV-w-parameter", - "text": " w must be a valid VkViewportCoordinateSwizzleNV value" - } - ] - }, - "VkPipelineViewportWScalingStateCreateInfoNV": { - "(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineViewportWScalingStateCreateInfoNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "vkCmdSetViewportWScalingNV": { - "(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdSetViewportWScalingNV-firstViewport-01324", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, - { - "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetViewportWScalingNV-pViewportWScalings-parameter", - "text": " pViewportWScalings must be a valid pointer to an array of viewportCount VkViewportWScalingNV structures" - }, - { - "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetViewportWScalingNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetViewportWScalingNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "VkPipelineViewportStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01216", - "text": " If the multiple viewports feature is not enabled, viewportCount must not be greater than 1" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01217", - "text": " If the multiple viewports feature is not enabled, scissorCount must not be greater than 1" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-01218", - "text": " viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01219", - "text": " scissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-x-02821", - "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02822", - "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-offset-02823", - "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineViewportCoarseSampleOrderStateCreateInfoNV, VkPipelineViewportExclusiveScissorStateCreateInfoNV, VkPipelineViewportShadingRateImageStateCreateInfoNV, VkPipelineViewportSwizzleStateCreateInfoNV, or VkPipelineViewportWScalingStateCreateInfoNV" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - } - ], - "!(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-01220", - "text": " scissorCount and viewportCount must be identical" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-arraylength", - "text": " scissorCount must be greater than 0" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04134", - "text": " If the graphics pipeline is being created without VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT set then scissorCount and viewportCount must be identical" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportCount-04135", - "text": " If the graphics pipeline is being created with VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT set then viewportCount must be 0, otherwise it must be greater than 0" - }, - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-scissorCount-04136", - "text": " If the graphics pipeline is being created with VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT set then scissorCount must be 0, otherwise it must be greater than 0" - } - ], - "(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-VkPipelineViewportStateCreateInfo-viewportWScalingEnable-01726", - "text": " If the viewportWScalingEnable member of a VkPipelineViewportWScalingStateCreateInfoNV structure included in the pNext chain is VK_TRUE, the viewportCount member of the VkPipelineViewportWScalingStateCreateInfoNV structure must be greater than or equal to VkPipelineViewportStateCreateInfo::viewportCount" - } - ] - }, - "vkCmdSetViewportWithCountEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-None-03393", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-viewportCount-03394", - "text": " viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-viewportCount-03395", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" - }, - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-pViewports-parameter", - "text": " pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures" - }, - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetViewportWithCountEXT-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "vkCmdSetScissorWithCountEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-None-03396", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-scissorCount-03397", - "text": " scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-scissorCount-03398", - "text": " If the multiple viewports feature is not enabled, scissorCount must be 1" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-x-03399", - "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-offset-03400", - "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-offset-03401", - "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-pScissors-parameter", - "text": " pScissors must be a valid pointer to an array of scissorCount VkRect2D structures" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetScissorWithCountEXT-scissorCount-arraylength", - "text": " scissorCount must be greater than 0" - } - ] - }, - "vkCmdSetViewport": { - "core": [ - { - "vuid": "VUID-vkCmdSetViewport-firstViewport-01223", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, - { - "vuid": "VUID-vkCmdSetViewport-firstViewport-01224", - "text": " If the multiple viewports feature is not enabled, firstViewport must be 0" - }, - { - "vuid": "VUID-vkCmdSetViewport-viewportCount-01225", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" - }, - { - "vuid": "VUID-vkCmdSetViewport-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetViewport-pViewports-parameter", - "text": " pViewports must be a valid pointer to an array of viewportCount valid VkViewport structures" - }, - { - "vuid": "VUID-vkCmdSetViewport-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetViewport-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetViewport-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "VkViewport": { - "core": [ - { - "vuid": "VUID-VkViewport-width-01770", - "text": " width must be greater than 0.0" - }, - { - "vuid": "VUID-VkViewport-width-01771", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[0]" - }, - { - "vuid": "VUID-VkViewport-height-01773", - "text": " The absolute value of height must be less than or equal to VkPhysicalDeviceLimits::maxViewportDimensions[1]" - }, - { - "vuid": "VUID-VkViewport-x-01774", - "text": " x must be greater than or equal to viewportBoundsRange[0]" - }, - { - "vuid": "VUID-VkViewport-x-01232", - "text": " (x + width) must be less than or equal to viewportBoundsRange[1]" - }, - { - "vuid": "VUID-VkViewport-y-01775", - "text": " y must be greater than or equal to viewportBoundsRange[0]" - }, - { - "vuid": "VUID-VkViewport-y-01233", - "text": " (y + height) must be less than or equal to viewportBoundsRange[1]" - } - ], - "!(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [ - { - "vuid": "VUID-VkViewport-height-01772", - "text": " height must be greater than 0.0" - } - ], - "(VK_VERSION_1_1,VK_KHR_maintenance1,VK_AMD_negative_viewport_height)": [ - { - "vuid": "VUID-VkViewport-y-01776", - "text": " y must be less than or equal to viewportBoundsRange[1]" - }, - { - "vuid": "VUID-VkViewport-y-01777", - "text": " (y + height) must be greater than or equal to viewportBoundsRange[0]" - } - ], - "(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkViewport-minDepth-01234", - "text": " Unless VK_EXT_depth_range_unrestricted extension is enabled minDepth must be between 0.0 and 1.0, inclusive" - }, - { - "vuid": "VUID-VkViewport-maxDepth-01235", - "text": " Unless VK_EXT_depth_range_unrestricted extension is enabled maxDepth must be between 0.0 and 1.0, inclusive" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-VkViewport-minDepth-02540", - "text": " minDepth must be between 0.0 and 1.0, inclusive" - }, - { - "vuid": "VUID-VkViewport-maxDepth-02541", - "text": " maxDepth must be between 0.0 and 1.0, inclusive" - } - ] - }, - "VkPipelineRasterizationStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-depthClampEnable-00782", - "text": " If the depth clamping feature is not enabled, depthClampEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineRasterizationConservativeStateCreateInfoEXT, VkPipelineRasterizationDepthClipStateCreateInfoEXT, VkPipelineRasterizationLineStateCreateInfoEXT, VkPipelineRasterizationStateRasterizationOrderAMD, or VkPipelineRasterizationStateStreamCreateInfoEXT" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-parameter", - "text": " polygonMode must be a valid VkPolygonMode value" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-cullMode-parameter", - "text": " cullMode must be a valid combination of VkCullModeFlagBits values" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-frontFace-parameter", - "text": " frontFace must be a valid VkFrontFace value" - } - ], - "!(VK_NV_fill_rectangle)": [ - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01413", - "text": " If the non-solid fill modes feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL" - } - ], - "(VK_NV_fill_rectangle)": [ - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01507", - "text": " If the non-solid fill modes feature is not enabled, polygonMode must be VK_POLYGON_MODE_FILL or VK_POLYGON_MODE_FILL_RECTANGLE_NV" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-polygonMode-01414", - "text": " If the VK_NV_fill_rectangle extension is not enabled, polygonMode must not be VK_POLYGON_MODE_FILL_RECTANGLE_NV" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkPipelineRasterizationStateCreateInfo-pointPolygons-04458", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::pointPolygons is VK_FALSE, and rasterizerDiscardEnable is VK_FALSE, polygonMode must not be VK_POLYGON_MODE_POINT." - } - ] - }, - "VkPipelineRasterizationDepthClipStateCreateInfoEXT": { - "(VK_EXT_depth_clip_enable)": [ - { - "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineRasterizationDepthClipStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "VkPipelineMultisampleStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sampleShadingEnable-00784", - "text": " If the sample rate shading feature is not enabled, sampleShadingEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-alphaToOneEnable-00785", - "text": " If the alpha to one feature is not enabled, alphaToOneEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-minSampleShading-00786", - "text": " minSampleShading must be in the range [0,1]" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkPipelineCoverageModulationStateCreateInfoNV, VkPipelineCoverageReductionStateCreateInfoNV, VkPipelineCoverageToColorStateCreateInfoNV, or VkPipelineSampleLocationsStateCreateInfoEXT" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-parameter", - "text": " rasterizationSamples must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-pSampleMask-parameter", - "text": " If pSampleMask is not NULL, pSampleMask must be a valid pointer to an array of \\(\\lceil{\\mathit{rasterizationSamples} \\over 32}\\rceil\\) VkSampleMask values" - } - ], - "(VK_NV_framebuffer_mixed_samples)": [ - { - "vuid": "VUID-VkPipelineMultisampleStateCreateInfo-rasterizationSamples-01415", - "text": " If the VK_NV_framebuffer_mixed_samples extension is enabled, and if the subpass has any color attachments and rasterizationSamples is greater than the number of color samples, then sampleShadingEnable must be VK_FALSE" - } - ] - }, - "VkPipelineRasterizationStateStreamCreateInfoEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-geometryStreams-02324", - "text": " VkPhysicalDeviceTransformFeedbackFeaturesEXT::geometryStreams must be enabled" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02325", - "text": " rasterizationStream must be less than VkPhysicalDeviceTransformFeedbackPropertiesEXT::maxTransformFeedbackStreams" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-rasterizationStream-02326", - "text": " rasterizationStream must be zero if VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackRasterizationStreamSelect is VK_FALSE" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateStreamCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "VkPipelineRasterizationStateRasterizationOrderAMD": { - "(VK_AMD_rasterization_order)": [ - { - "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD" - }, - { - "vuid": "VUID-VkPipelineRasterizationStateRasterizationOrderAMD-rasterizationOrder-parameter", - "text": " rasterizationOrder must be a valid VkRasterizationOrderAMD value" - } - ] - }, - "VkPipelineSampleLocationsStateCreateInfoEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineSampleLocationsStateCreateInfoEXT-sampleLocationsInfo-parameter", - "text": " sampleLocationsInfo must be a valid VkSampleLocationsInfoEXT structure" - } - ] - }, - "VkSampleLocationsInfoEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-01526", - "text": " sampleLocationsPerPixel must be a bit value that is set in VkPhysicalDeviceSampleLocationsPropertiesEXT::sampleLocationSampleCounts" - }, - { - "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsCount-01527", - "text": " sampleLocationsCount must equal sampleLocationsPerPixel {times} sampleLocationGridSize.width {times} sampleLocationGridSize.height" - }, - { - "vuid": "VUID-VkSampleLocationsInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT" - }, - { - "vuid": "VUID-VkSampleLocationsInfoEXT-sampleLocationsPerPixel-parameter", - "text": " If sampleLocationsPerPixel is not 0, sampleLocationsPerPixel must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-VkSampleLocationsInfoEXT-pSampleLocations-parameter", - "text": " If sampleLocationsCount is not 0, pSampleLocations must be a valid pointer to an array of sampleLocationsCount VkSampleLocationEXT structures" - } - ] - }, - "vkCmdSetSampleLocationsEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-sampleLocationsPerPixel-01529", - "text": " The sampleLocationsPerPixel member of pSampleLocationsInfo must equal the rasterizationSamples member of the VkPipelineMultisampleStateCreateInfo structure the bound graphics pipeline has been created with" - }, - { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-variableSampleLocations-01530", - "text": " If VkPhysicalDeviceSampleLocationsPropertiesEXT::variableSampleLocations is VK_FALSE then the current render pass must have been begun by specifying a VkRenderPassSampleLocationsBeginInfoEXT structure whose pPostSubpassSampleLocations member contains an element with a subpassIndex matching the current subpass index and the sampleLocationsInfo member of that element must match the sample locations state pointed to by pSampleLocationsInfo" - }, - { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-pSampleLocationsInfo-parameter", - "text": " pSampleLocationsInfo must be a valid pointer to a valid VkSampleLocationsInfoEXT structure" - }, - { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetSampleLocationsEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkGetPhysicalDeviceFragmentShadingRatesKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRateCount-parameter", - "text": " pFragmentShadingRateCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFragmentShadingRatesKHR-pFragmentShadingRates-parameter", - "text": " If the value referenced by pFragmentShadingRateCount is not 0, and pFragmentShadingRates is not NULL, pFragmentShadingRates must be a valid pointer to an array of pFragmentShadingRateCount VkPhysicalDeviceFragmentShadingRateKHR structures" - } - ] - }, - "VkPhysicalDeviceFragmentShadingRateKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR" - }, - { - "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkPipelineFragmentShadingRateStateCreateInfoKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkPipelineFragmentShadingRateStateCreateInfoKHR-combinerOps-parameter", - "text": " Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value" - } - ] - }, - "vkCmdSetFragmentShadingRateKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04507", - "text": " If pipelineFragmentShadingRate is not enabled, pFragmentSize->width must be 1" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04508", - "text": " If pipelineFragmentShadingRate is not enabled, pFragmentSize->height must be 1" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pipelineFragmentShadingRate-04509", - "text": " One of pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate must be enabled" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-primitiveFragmentShadingRate-04510", - "text": " If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-attachmentFragmentShadingRate-04511", - "text": " If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-fragmentSizeNonTrivialCombinerOps-04512", - "text": " If the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04513", - "text": " pFragmentSize->width must be greater than or equal to 1" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04514", - "text": " pFragmentSize->height must be greater than or equal to 1" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04515", - "text": " pFragmentSize->width must be a power-of-two value" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04516", - "text": " pFragmentSize->height must be a power-of-two value" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04517", - "text": " pFragmentSize->width must be less than or equal to 4" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-04518", - "text": " pFragmentSize->height must be less than or equal to 4" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-pFragmentSize-parameter", - "text": " pFragmentSize must be a valid pointer to a valid VkExtent2D structure" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-combinerOps-parameter", - "text": " Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkPipelineFragmentShadingRateEnumStateCreateInfoNV": { - "(VK_NV_fragment_shading_rate_enums)": [ - { - "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-shadingRateType-parameter", - "text": " shadingRateType must be a valid VkFragmentShadingRateTypeNV value" - }, - { - "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-shadingRate-parameter", - "text": " shadingRate must be a valid VkFragmentShadingRateNV value" - }, - { - "vuid": "VUID-VkPipelineFragmentShadingRateEnumStateCreateInfoNV-combinerOps-parameter", - "text": " Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value" - } - ] - }, - "vkCmdSetFragmentShadingRateEnumNV": { - "(VK_NV_fragment_shading_rate_enums)": [ - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04576", - "text": " If pipelineFragmentShadingRate is not enabled, shadingRate must be VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-supersampleFragmentShadingRates-04577", - "text": " If supersampleFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV, VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV, or VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-noInvocationFragmentShadingRates-04578", - "text": " If noInvocationFragmentShadingRates is not enabled, shadingRate must not be VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentShadingRateEnums-04579", - "text": " fragmentShadingRateEnums must be enabled" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-pipelineFragmentShadingRate-04580", - "text": " One of pipelineFragmentShadingRate, primitiveFragmentShadingRate, or attachmentFragmentShadingRate must be enabled" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-primitiveFragmentShadingRate-04581", - "text": " If the primitiveFragmentShadingRate feature is not enabled, combinerOps[0] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-attachmentFragmentShadingRate-04582", - "text": " If the attachmentFragmentShadingRate feature is not enabled, combinerOps[1] must be VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-fragmentSizeNonTrivialCombinerOps-04583", - "text": " If the fragmentSizeNonTrivialCombinerOps limit is not supported, elements of combinerOps must be either VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR or VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-shadingRate-parameter", - "text": " shadingRate must be a valid VkFragmentShadingRateNV value" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-combinerOps-parameter", - "text": " Any given element of combinerOps must be a valid VkFragmentShadingRateCombinerOpKHR value" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetFragmentShadingRateEnumNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkPipelineViewportShadingRateImageStateCreateInfoNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02054", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 0 or 1" - }, - { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-02055", - "text": " viewportCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" - }, - { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-shadingRateImageEnable-02056", - "text": " If shadingRateImageEnable is VK_TRUE, viewportCount must be greater or equal to the viewportCount member of VkPipelineViewportStateCreateInfo" - }, - { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineViewportShadingRateImageStateCreateInfoNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "vkCmdBindShadingRateImageNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-None-02058", - "text": " The shading rate image feature must be enabled" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02059", - "text": " If imageView is not VK_NULL_HANDLE, it must be a valid VkImageView handle of type VK_IMAGE_VIEW_TYPE_2D or VK_IMAGE_VIEW_TYPE_2D_ARRAY" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02060", - "text": " If imageView is not VK_NULL_HANDLE, it must have a format of VK_FORMAT_R8_UINT" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02061", - "text": " If imageView is not VK_NULL_HANDLE, it must have been created with a usage value including VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-02062", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must match the actual VkImageLayout of each subresource accessible from imageView at the time the subresource is accessed" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-02063", - "text": " If imageView is not VK_NULL_HANDLE, imageLayout must be VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV or VK_IMAGE_LAYOUT_GENERAL" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageView-parameter", - "text": " If imageView is not VK_NULL_HANDLE, imageView must be a valid VkImageView handle" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-imageLayout-parameter", - "text": " imageLayout must be a valid VkImageLayout value" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdBindShadingRateImageNV-commonparent", - "text": " Both of commandBuffer, and imageView that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdSetViewportShadingRatePaletteNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-None-02064", - "text": " The shading rate image feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02067", - "text": " The sum of firstViewport and viewportCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-firstViewport-02068", - "text": " If the multiple viewports feature is not enabled, firstViewport must be 0" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-02069", - "text": " If the multiple viewports feature is not enabled, viewportCount must be 1" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-pShadingRatePalettes-parameter", - "text": " pShadingRatePalettes must be a valid pointer to an array of viewportCount valid VkShadingRatePaletteNV structures" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetViewportShadingRatePaletteNV-viewportCount-arraylength", - "text": " viewportCount must be greater than 0" - } - ] - }, - "VkShadingRatePaletteNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-02071", - "text": " shadingRatePaletteEntryCount must be between 1 and VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRatePaletteSize, inclusive" - }, - { - "vuid": "VUID-VkShadingRatePaletteNV-pShadingRatePaletteEntries-parameter", - "text": " pShadingRatePaletteEntries must be a valid pointer to an array of shadingRatePaletteEntryCount valid VkShadingRatePaletteEntryNV values" - }, - { - "vuid": "VUID-VkShadingRatePaletteNV-shadingRatePaletteEntryCount-arraylength", - "text": " shadingRatePaletteEntryCount must be greater than 0" - } - ] - }, - "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-02072", - "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" - }, - { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-02234", - "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members" - }, - { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-sampleOrderType-parameter", - "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" - }, - { - "vuid": "VUID-VkPipelineViewportCoarseSampleOrderStateCreateInfoNV-pCustomSampleOrders-parameter", - "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" - } - ] - }, - "VkCoarseSampleOrderCustomNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-02073", - "text": " shadingRate must be a shading rate that generates fragments with more than one pixel" - }, - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleCount-02074", - "text": " sampleCount must correspond to a sample count enumerated in VkSampleCountFlags whose corresponding bit is set in VkPhysicalDeviceLimits::framebufferNoAttachmentsSampleCounts" - }, - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02075", - "text": " sampleLocationCount must be equal to the product of sampleCount, the fragment width for shadingRate, and the fragment height for shadingRate" - }, - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-02076", - "text": " sampleLocationCount must be less than or equal to the value of VkPhysicalDeviceShadingRateImagePropertiesNV::shadingRateMaxCoarseSamples" - }, - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-02077", - "text": " The array pSampleLocations must contain exactly one entry for every combination of valid values for pixelX, pixelY, and sample in the structure VkCoarseSampleOrderCustomNV" - }, - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-shadingRate-parameter", - "text": " shadingRate must be a valid VkShadingRatePaletteEntryNV value" - }, - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-pSampleLocations-parameter", - "text": " pSampleLocations must be a valid pointer to an array of sampleLocationCount VkCoarseSampleLocationNV structures" - }, - { - "vuid": "VUID-VkCoarseSampleOrderCustomNV-sampleLocationCount-arraylength", - "text": " sampleLocationCount must be greater than 0" - } - ] - }, - "VkCoarseSampleLocationNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkCoarseSampleLocationNV-pixelX-02078", - "text": " pixelX must be less than the width (in pixels) of the fragment" - }, - { - "vuid": "VUID-VkCoarseSampleLocationNV-pixelY-02079", - "text": " pixelY must be less than the height (in pixels) of the fragment" - }, - { - "vuid": "VUID-VkCoarseSampleLocationNV-sample-02080", - "text": " sample must be less than the number of coverage samples in each pixel belonging to the fragment" - } - ] - }, - "vkCmdSetCoarseSampleOrderNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-02081", - "text": " If sampleOrderType is not VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV, customSamplerOrderCount must be 0" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-02235", - "text": " The array pCustomSampleOrders must not contain two structures with matching values for both the shadingRate and sampleCount members" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-sampleOrderType-parameter", - "text": " sampleOrderType must be a valid VkCoarseSampleOrderTypeNV value" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-pCustomSampleOrders-parameter", - "text": " If customSampleOrderCount is not 0, pCustomSampleOrders must be a valid pointer to an array of customSampleOrderCount valid VkCoarseSampleOrderCustomNV structures" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetCoarseSampleOrderNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkPipelineRasterizationLineStateCreateInfoEXT": { - "(VK_EXT_line_rasterization)": [ - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02768", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the rectangularLines feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02769", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the bresenhamLines feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-02770", - "text": " If lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the smoothLines feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02771", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the stippledRectangularLines feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02772", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the stippledBresenhamLines feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02773", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the stippledSmoothLines feature must be enabled" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-stippledLineEnable-02774", - "text": " If stippledLineEnable is VK_TRUE and lineRasterizationMode is VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the stippledRectangularLines feature must be enabled and VkPhysicalDeviceLimits::strictLines must be VK_TRUE" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineRasterizationLineStateCreateInfoEXT-lineRasterizationMode-parameter", - "text": " lineRasterizationMode must be a valid VkLineRasterizationModeEXT value" - } - ] - }, - "vkCmdSetLineWidth": { - "core": [ - { - "vuid": "VUID-vkCmdSetLineWidth-lineWidth-00788", - "text": " If the wide lines feature is not enabled, lineWidth must be 1.0" - }, - { - "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetLineWidth-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetLineStippleEXT": { - "(VK_EXT_line_rasterization)": [ - { - "vuid": "VUID-vkCmdSetLineStippleEXT-lineStippleFactor-02776", - "text": " lineStippleFactor must be in the range [1,256]" - }, - { - "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetLineStippleEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetFrontFaceEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetFrontFaceEXT-None-03383", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetFrontFaceEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetFrontFaceEXT-frontFace-parameter", - "text": " frontFace must be a valid VkFrontFace value" - }, - { - "vuid": "VUID-vkCmdSetFrontFaceEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetFrontFaceEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetCullModeEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetCullModeEXT-None-03384", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetCullModeEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetCullModeEXT-cullMode-parameter", - "text": " cullMode must be a valid combination of VkCullModeFlagBits values" - }, - { - "vuid": "VUID-vkCmdSetCullModeEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetCullModeEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetDepthBias": { - "core": [ - { - "vuid": "VUID-vkCmdSetDepthBias-depthBiasClamp-00790", - "text": " If the depth bias clamping feature is not enabled, depthBiasClamp must be 0.0" - }, - { - "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDepthBias-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkPipelineRasterizationConservativeStateCreateInfoEXT": { - "(VK_EXT_conservative_rasterization)": [ - { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-extraPrimitiveOverestimationSize-01769", - "text": " extraPrimitiveOverestimationSize must be in the range of 0.0 to VkPhysicalDeviceConservativeRasterizationPropertiesEXT::maxExtraPrimitiveOverestimationSize inclusive" - }, - { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineRasterizationConservativeStateCreateInfoEXT-conservativeRasterizationMode-parameter", - "text": " conservativeRasterizationMode must be a valid VkConservativeRasterizationModeEXT value" - } - ] - }, - "VkPipelineDiscardRectangleStateCreateInfoEXT": { - "(VK_EXT_discard_rectangles)": [ - { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleCount-00582", - "text": " discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles" - }, - { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineDiscardRectangleStateCreateInfoEXT-discardRectangleMode-parameter", - "text": " discardRectangleMode must be a valid VkDiscardRectangleModeEXT value" - } - ] - }, - "vkCmdSetDiscardRectangleEXT": { - "(VK_EXT_discard_rectangles)": [ - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-firstDiscardRectangle-00585", - "text": " The sum of firstDiscardRectangle and discardRectangleCount must be less than or equal to VkPhysicalDeviceDiscardRectanglePropertiesEXT::maxDiscardRectangles" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-x-00587", - "text": " The x and y member of offset in each VkRect2D element of pDiscardRectangles must be greater than or equal to 0" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00588", - "text": " Evaluation of (offset.x + extent.width) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-offset-00589", - "text": " Evaluation of (offset.y + extent.height) in each VkRect2D element of pDiscardRectangles must not cause a signed integer addition overflow" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-pDiscardRectangles-parameter", - "text": " pDiscardRectangles must be a valid pointer to an array of discardRectangleCount VkRect2D structures" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetDiscardRectangleEXT-discardRectangleCount-arraylength", - "text": " discardRectangleCount must be greater than 0" - } - ] - }, - "vkCmdSetScissor": { - "core": [ - { - "vuid": "VUID-vkCmdSetScissor-firstScissor-00592", - "text": " The sum of firstScissor and scissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, - { - "vuid": "VUID-vkCmdSetScissor-firstScissor-00593", - "text": " If the multiple viewports feature is not enabled, firstScissor must be 0" - }, - { - "vuid": "VUID-vkCmdSetScissor-scissorCount-00594", - "text": " If the multiple viewports feature is not enabled, scissorCount must be 1" - }, - { - "vuid": "VUID-vkCmdSetScissor-x-00595", - "text": " The x and y members of offset member of any element of pScissors must be greater than or equal to 0" - }, - { - "vuid": "VUID-vkCmdSetScissor-offset-00596", - "text": " Evaluation of (offset.x + extent.width) must not cause a signed integer addition overflow for any element of pScissors" - }, - { - "vuid": "VUID-vkCmdSetScissor-offset-00597", - "text": " Evaluation of (offset.y + extent.height) must not cause a signed integer addition overflow for any element of pScissors" - }, - { - "vuid": "VUID-vkCmdSetScissor-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetScissor-pScissors-parameter", - "text": " pScissors must be a valid pointer to an array of scissorCount VkRect2D structures" - }, - { - "vuid": "VUID-vkCmdSetScissor-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetScissor-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetScissor-scissorCount-arraylength", - "text": " scissorCount must be greater than 0" - } - ] - }, - "VkPipelineViewportExclusiveScissorStateCreateInfoNV": { - "(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02027", - "text": " If the multiple viewports feature is not enabled, exclusiveScissorCount must be 0 or 1" - }, - { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02028", - "text": " exclusiveScissorCount must be less than or equal to VkPhysicalDeviceLimits::maxViewports" - }, - { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-exclusiveScissorCount-02029", - "text": " exclusiveScissorCount must be 0 or greater than or equal to the viewportCount member of VkPipelineViewportStateCreateInfo" - }, - { - "vuid": "VUID-VkPipelineViewportExclusiveScissorStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV" - } - ] - }, - "vkCmdSetExclusiveScissorNV": { - "(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-None-02031", - "text": " The exclusive scissor feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02034", - "text": " The sum of firstExclusiveScissor and exclusiveScissorCount must be between 1 and VkPhysicalDeviceLimits::maxViewports, inclusive" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-firstExclusiveScissor-02035", - "text": " If the multiple viewports feature is not enabled, firstExclusiveScissor must be 0" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-02036", - "text": " If the multiple viewports feature is not enabled, exclusiveScissorCount must be 1" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-x-02037", - "text": " The x and y members of offset in each member of pExclusiveScissors must be greater than or equal to 0" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02038", - "text": " Evaluation of (offset.x + extent.width) for each member of pExclusiveScissors must not cause a signed integer addition overflow" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-offset-02039", - "text": " Evaluation of (offset.y + extent.height) for each member of pExclusiveScissors must not cause a signed integer addition overflow" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-pExclusiveScissors-parameter", - "text": " pExclusiveScissors must be a valid pointer to an array of exclusiveScissorCount VkRect2D structures" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - }, - { - "vuid": "VUID-vkCmdSetExclusiveScissorNV-exclusiveScissorCount-arraylength", - "text": " exclusiveScissorCount must be greater than 0" - } - ] - }, - "VkPipelineDepthStencilStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthBoundsTestEnable-00598", - "text": " If the depth bounds testing feature is not enabled, depthBoundsTestEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-depthCompareOp-parameter", - "text": " depthCompareOp must be a valid VkCompareOp value" - }, - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-front-parameter", - "text": " front must be a valid VkStencilOpState structure" - }, - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-back-parameter", - "text": " back must be a valid VkStencilOpState structure" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkPipelineDepthStencilStateCreateInfo-separateStencilMaskRef-04453", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::separateStencilMaskRef is VK_FALSE, and the value of VkPipelineDepthStencilStateCreateInfo::stencilTestEnable is VK_TRUE, and the value of VkPipelineRasterizationStateCreateInfo::cullMode is VK_CULL_MODE_NONE, the value of reference in each of the VkStencilOpState structs in front and back must be the same." - } - ] - }, - "vkCmdSetDepthBoundsTestEnableEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-None-03349", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDepthBoundsTestEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetDepthBounds": { - "(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-00600", - "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled minDepthBounds must be between 0.0 and 1.0, inclusive" - }, - { - "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-00601", - "text": " Unless the VK_EXT_depth_range_unrestricted extension is enabled maxDepthBounds must be between 0.0 and 1.0, inclusive" - } - ], - "!(VK_EXT_depth_range_unrestricted)": [ - { - "vuid": "VUID-vkCmdSetDepthBounds-minDepthBounds-02508", - "text": " minDepthBounds must be between 0.0 and 1.0, inclusive" - }, - { - "vuid": "VUID-vkCmdSetDepthBounds-maxDepthBounds-02509", - "text": " maxDepthBounds must be between 0.0 and 1.0, inclusive" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDepthBounds-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetStencilTestEnableEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetStencilTestEnableEXT-None-03350", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetStencilTestEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetStencilOpEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetStencilOpEXT-None-03351", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-faceMask-requiredbitmask", - "text": " faceMask must not be 0" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-failOp-parameter", - "text": " failOp must be a valid VkStencilOp value" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-passOp-parameter", - "text": " passOp must be a valid VkStencilOp value" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-depthFailOp-parameter", - "text": " depthFailOp must be a valid VkStencilOp value" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-compareOp-parameter", - "text": " compareOp must be a valid VkCompareOp value" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetStencilOpEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkStencilOpState": { - "core": [ - { - "vuid": "VUID-VkStencilOpState-failOp-parameter", - "text": " failOp must be a valid VkStencilOp value" - }, - { - "vuid": "VUID-VkStencilOpState-passOp-parameter", - "text": " passOp must be a valid VkStencilOp value" - }, - { - "vuid": "VUID-VkStencilOpState-depthFailOp-parameter", - "text": " depthFailOp must be a valid VkStencilOp value" - }, - { - "vuid": "VUID-VkStencilOpState-compareOp-parameter", - "text": " compareOp must be a valid VkCompareOp value" - } - ] - }, - "vkCmdSetStencilCompareMask": { - "core": [ - { - "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" - }, - { - "vuid": "VUID-vkCmdSetStencilCompareMask-faceMask-requiredbitmask", - "text": " faceMask must not be 0" - }, - { - "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetStencilCompareMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetStencilWriteMask": { - "core": [ - { - "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" - }, - { - "vuid": "VUID-vkCmdSetStencilWriteMask-faceMask-requiredbitmask", - "text": " faceMask must not be 0" - }, - { - "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetStencilWriteMask-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetStencilReference": { - "core": [ - { - "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetStencilReference-faceMask-parameter", - "text": " faceMask must be a valid combination of VkStencilFaceFlagBits values" - }, - { - "vuid": "VUID-vkCmdSetStencilReference-faceMask-requiredbitmask", - "text": " faceMask must not be 0" - }, - { - "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetStencilReference-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetDepthTestEnableEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetDepthTestEnableEXT-None-03352", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDepthTestEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetDepthCompareOpEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetDepthCompareOpEXT-None-03353", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDepthCompareOpEXT-depthCompareOp-parameter", - "text": " depthCompareOp must be a valid VkCompareOp value" - }, - { - "vuid": "VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDepthCompareOpEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "vkCmdSetDepthWriteEnableEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-None-03354", - "text": " The extendedDynamicState feature must be enabled" - }, - { - "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetDepthWriteEnableEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkPipelineRepresentativeFragmentTestStateCreateInfoNV": { - "(VK_NV_representative_fragment_test)": [ - { - "vuid": "VUID-VkPipelineRepresentativeFragmentTestStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV" - } - ] - }, - "VkPipelineCoverageToColorStateCreateInfoNV": { - "(VK_NV_fragment_coverage_to_color)": [ - { - "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-coverageToColorEnable-01404", - "text": " If coverageToColorEnable is VK_TRUE, then the render pass subpass indicated by VkGraphicsPipelineCreateInfo::renderPass and VkGraphicsPipelineCreateInfo::subpass must have a color attachment at the location selected by coverageToColorLocation, with a VkFormat of VK_FORMAT_R8_UINT, VK_FORMAT_R8_SINT, VK_FORMAT_R16_UINT, VK_FORMAT_R16_SINT, VK_FORMAT_R32_UINT, or VK_FORMAT_R32_SINT" - }, - { - "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineCoverageToColorStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "VkPipelineCoverageReductionStateCreateInfoNV": { - "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [ - { - "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineCoverageReductionStateCreateInfoNV-coverageReductionMode-parameter", - "text": " coverageReductionMode must be a valid VkCoverageReductionModeNV value" - } - ] - }, - "vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV": { - "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinationCount-parameter", - "text": " pCombinationCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV-pCombinations-parameter", - "text": " If the value referenced by pCombinationCount is not 0, and pCombinations is not NULL, pCombinations must be a valid pointer to an array of pCombinationCount VkFramebufferMixedSamplesCombinationNV structures" - } - ] - }, - "VkFramebufferMixedSamplesCombinationNV": { - "(VK_NV_framebuffer_mixed_samples)+(VK_NV_coverage_reduction_mode)": [ - { - "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV" - }, - { - "vuid": "VUID-VkFramebufferMixedSamplesCombinationNV-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkPipelineCoverageModulationStateCreateInfoNV": { - "(VK_NV_framebuffer_mixed_samples)": [ - { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationTableEnable-01405", - "text": " If coverageModulationTableEnable is VK_TRUE, coverageModulationTableCount must be equal to the number of rasterization samples divided by the number of color samples in the subpass" - }, - { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineCoverageModulationStateCreateInfoNV-coverageModulationMode-parameter", - "text": " coverageModulationMode must be a valid VkCoverageModulationModeNV value" - } - ] - }, - "VkPipelineColorBlendStateCreateInfo": { - "core": [ - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-00605", - "text": " If the independent blending feature is not enabled, all elements of pAttachments must be identical" - }, - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00606", - "text": " If the logic operations feature is not enabled, logicOpEnable must be VK_FALSE" - }, - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-logicOpEnable-00607", - "text": " If logicOpEnable is VK_TRUE, logicOp must be a valid VkLogicOp value" - }, - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO" - }, - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkPipelineColorBlendAdvancedStateCreateInfoEXT" - }, - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkPipelineColorBlendStateCreateInfo-pAttachments-parameter", - "text": " If attachmentCount is not 0, pAttachments must be a valid pointer to an array of attachmentCount valid VkPipelineColorBlendAttachmentState structures" - } - ] - }, - "VkPipelineColorBlendAttachmentState": { - "core": [ - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-00608", - "text": " If the dual source blending feature is not enabled, srcColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-00609", - "text": " If the dual source blending feature is not enabled, dstColorBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-00610", - "text": " If the dual source blending feature is not enabled, srcAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-00611", - "text": " If the dual source blending feature is not enabled, dstAlphaBlendFactor must not be VK_BLEND_FACTOR_SRC1_COLOR, VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR, VK_BLEND_FACTOR_SRC1_ALPHA, or VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcColorBlendFactor-parameter", - "text": " srcColorBlendFactor must be a valid VkBlendFactor value" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstColorBlendFactor-parameter", - "text": " dstColorBlendFactor must be a valid VkBlendFactor value" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-parameter", - "text": " colorBlendOp must be a valid VkBlendOp value" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-srcAlphaBlendFactor-parameter", - "text": " srcAlphaBlendFactor must be a valid VkBlendFactor value" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-dstAlphaBlendFactor-parameter", - "text": " dstAlphaBlendFactor must be a valid VkBlendFactor value" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-alphaBlendOp-parameter", - "text": " alphaBlendOp must be a valid VkBlendOp value" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorWriteMask-parameter", - "text": " colorWriteMask must be a valid combination of VkColorComponentFlagBits values" - } - ], - "(VK_EXT_blend_operation_advanced)": [ - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01406", - "text": " If either of colorBlendOp or alphaBlendOp is an advanced blend operation, then colorBlendOp must equal alphaBlendOp" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01407", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and colorBlendOp is an advanced blend operation, then colorBlendOp must be the same for all attachments" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendIndependentBlend-01408", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendIndependentBlend is VK_FALSE and alphaBlendOp is an advanced blend operation, then alphaBlendOp must be the same for all attachments" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-advancedBlendAllOperations-01409", - "text": " If VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendAllOperations is VK_FALSE, then colorBlendOp must not be VK_BLEND_OP_ZERO_EXT, VK_BLEND_OP_SRC_EXT, VK_BLEND_OP_DST_EXT, VK_BLEND_OP_SRC_OVER_EXT, VK_BLEND_OP_DST_OVER_EXT, VK_BLEND_OP_SRC_IN_EXT, VK_BLEND_OP_DST_IN_EXT, VK_BLEND_OP_SRC_OUT_EXT, VK_BLEND_OP_DST_OUT_EXT, VK_BLEND_OP_SRC_ATOP_EXT, VK_BLEND_OP_DST_ATOP_EXT, VK_BLEND_OP_XOR_EXT, VK_BLEND_OP_INVERT_EXT, VK_BLEND_OP_INVERT_RGB_EXT, VK_BLEND_OP_LINEARDODGE_EXT, VK_BLEND_OP_LINEARBURN_EXT, VK_BLEND_OP_VIVIDLIGHT_EXT, VK_BLEND_OP_LINEARLIGHT_EXT, VK_BLEND_OP_PINLIGHT_EXT, VK_BLEND_OP_HARDMIX_EXT, VK_BLEND_OP_PLUS_EXT, VK_BLEND_OP_PLUS_CLAMPED_EXT, VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT, VK_BLEND_OP_PLUS_DARKER_EXT, VK_BLEND_OP_MINUS_EXT, VK_BLEND_OP_MINUS_CLAMPED_EXT, VK_BLEND_OP_CONTRAST_EXT, VK_BLEND_OP_INVERT_OVG_EXT, VK_BLEND_OP_RED_EXT, VK_BLEND_OP_GREEN_EXT, or VK_BLEND_OP_BLUE_EXT" - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-colorBlendOp-01410", - "text": " If colorBlendOp or alphaBlendOp is an advanced blend operation, then colorAttachmentCount of the subpass this pipeline is compiled against must be less than or equal to VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT::advancedBlendMaxColorAttachments" - } - ], - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04454", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, srcColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA." - }, - { - "vuid": "VUID-VkPipelineColorBlendAttachmentState-constantAlphaColorBlendFactors-04455", - "text": " If the [VK_KHR_portability_subset] extension is enabled, and VkPhysicalDevicePortabilitySubsetFeaturesKHR::constantAlphaColorBlendFactors is VK_FALSE, dstColorBlendFactor must not be VK_BLEND_FACTOR_CONSTANT_ALPHA or VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA." - } - ] - }, - "vkCmdSetBlendConstants": { - "core": [ - { - "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetBlendConstants-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics operations" - } - ] - }, - "VkPipelineColorBlendAdvancedStateCreateInfoEXT": { - "(VK_EXT_blend_operation_advanced)": [ - { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-srcPremultiplied-01424", - "text": " If the non-premultiplied source color property is not supported, srcPremultiplied must be VK_TRUE" - }, - { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-dstPremultiplied-01425", - "text": " If the non-premultiplied destination color property is not supported, dstPremultiplied must be VK_TRUE" - }, - { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-01426", - "text": " If the correlated overlap property is not supported, blendOverlap must be VK_BLEND_OVERLAP_UNCORRELATED_EXT" - }, - { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPipelineColorBlendAdvancedStateCreateInfoEXT-blendOverlap-parameter", - "text": " blendOverlap must be a valid VkBlendOverlapEXT value" - } - ] - }, - "vkCmdDispatch": { - "core": [ - { - "vuid": "VUID-vkCmdDispatch-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDispatch-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDispatch-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDispatch-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDispatch-groupCountX-00386", - "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" - }, - { - "vuid": "VUID-vkCmdDispatch-groupCountY-00387", - "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" - }, - { - "vuid": "VUID-vkCmdDispatch-groupCountZ-00388", - "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" - }, - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdDispatch-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatch-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatch-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatch-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDispatch-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDispatch-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-02712", - "text": " If commandBuffer is a protected command buffer, any resource written to by the VkPipeline object bound to the pipeline bind point used by this command must not be an unprotected resource" - }, - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-02713", - "text": " If commandBuffer is a protected command buffer, pipeline stages other than the framebuffer-space and compute stages in the VkPipeline object bound to the pipeline bind point must not write to any resource" - }, - { - "vuid": "VUID-vkCmdDispatch-commandBuffer-04617", - "text": " If any of the shader stages of the VkPipeline bound to the pipeline bind point used by this command uses the RayQueryKHR capability, then commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDispatch-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDispatch-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDispatch-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDispatch-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDispatch-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ] - }, - "vkCmdDispatchIndirect": { - "core": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-buffer-02708", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-buffer-02709", - "text": " buffer must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-offset-02710", - "text": " offset must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-offset-00407", - "text": " The sum of offset and the size of VkDispatchIndirectCommand must be less than or equal to the size of buffer" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-commonparent", - "text": " Both of buffer, and commandBuffer must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-commandBuffer-02711", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDispatchIndirect-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ] - }, - "VkDispatchIndirectCommand": { - "core": [ - { - "vuid": "VUID-VkDispatchIndirectCommand-x-00417", - "text": " x must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" - }, - { - "vuid": "VUID-VkDispatchIndirectCommand-y-00418", - "text": " y must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" - }, - { - "vuid": "VUID-VkDispatchIndirectCommand-z-00419", - "text": " z must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" - } - ] - }, - "vkCmdDispatchBase": { - "core": [ - { - "vuid": "VUID-vkCmdDispatchBase-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdDispatchBase-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDispatchBase-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00421", - "text": " baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" - }, - { - "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00422", - "text": " baseGroupX must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" - }, - { - "vuid": "VUID-vkCmdDispatchBase-baseGroupZ-00423", - "text": " baseGroupZ must be less than VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" - }, - { - "vuid": "VUID-vkCmdDispatchBase-groupCountX-00424", - "text": " groupCountX must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] minus baseGroupX" - }, - { - "vuid": "VUID-vkCmdDispatchBase-groupCountY-00425", - "text": " groupCountY must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] minus baseGroupY" - }, - { - "vuid": "VUID-vkCmdDispatchBase-groupCountZ-00426", - "text": " groupCountZ must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] minus baseGroupZ" - }, - { - "vuid": "VUID-vkCmdDispatchBase-baseGroupX-00427", - "text": " If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatchBase-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatchBase-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdDispatchBase-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdDispatchBase-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdDispatchBase-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdDispatchBase-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDispatchBase-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDispatchBase-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdDispatchBase-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdDispatchBase-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDispatchBase-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdDispatchBase-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "vkCreateIndirectCommandsLayoutNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-deviceGeneratedCommands-02929", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - }, - { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkIndirectCommandsLayoutCreateInfoNV structure" - }, - { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateIndirectCommandsLayoutNV-pIndirectCommandsLayout-parameter", - "text": " pIndirectCommandsLayout must be a valid pointer to a VkIndirectCommandsLayoutNV handle" - } - ] - }, - "VkIndirectCommandsLayoutCreateInfoNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-02930", - "text": " The pipelineBindPoint must be VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-02931", - "text": " tokenCount must be greater than 0 and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenCount" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02932", - "text": " If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV it must be the first element of the array and there must be only a single element of such token type" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02933", - "text": " If pTokens contains an entry of VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV there must be only a single element of such token type" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02934", - "text": " All state tokens in pTokens must occur prior work provoking tokens (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV, VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV)" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-02935", - "text": " The content of pTokens must include one single work provoking token that is compatible with the pipelineBindPoint" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-02936", - "text": " streamCount must be greater than 0 and less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamCount" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-02937", - "text": " each element of pStreamStrides must be greater than `0`and less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsStreamStride. Furthermore the alignment of each token input must be ensured" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-parameter", - "text": " flags must be a valid combination of VkIndirectCommandsLayoutUsageFlagBitsNV values" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-flags-requiredbitmask", - "text": " flags must not be 0" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pTokens-parameter", - "text": " pTokens must be a valid pointer to an array of tokenCount valid VkIndirectCommandsLayoutTokenNV structures" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-pStreamStrides-parameter", - "text": " pStreamStrides must be a valid pointer to an array of streamCount uint32_t values" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-tokenCount-arraylength", - "text": " tokenCount must be greater than 0" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutCreateInfoNV-streamCount-arraylength", - "text": " streamCount must be greater than 0" - } - ] - }, - "vkDestroyIndirectCommandsLayoutNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02938", - "text": " All submitted commands that refer to indirectCommandsLayout must have completed execution" - }, - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02939", - "text": " If VkAllocationCallbacks were provided when indirectCommandsLayout was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-02940", - "text": " If no VkAllocationCallbacks were provided when indirectCommandsLayout was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-deviceGeneratedCommands-02941", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - }, - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parameter", - "text": " If indirectCommandsLayout is not VK_NULL_HANDLE, indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" - }, - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyIndirectCommandsLayoutNV-indirectCommandsLayout-parent", - "text": " If indirectCommandsLayout is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "VkIndirectCommandsStreamNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02942", - "text": " The buffer’s usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-VkIndirectCommandsStreamNV-offset-02943", - "text": " The offset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment" - }, - { - "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-02975", - "text": " If buffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkIndirectCommandsStreamNV-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - } - ] - }, - "VkBindShaderGroupIndirectCommandNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-None-02944", - "text": " The current bound graphics pipeline, as well as the pipelines it may reference, must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV" - }, - { - "vuid": "VUID-VkBindShaderGroupIndirectCommandNV-index-02945", - "text": " The index must be within range of the accessible shader groups of the current bound graphics pipeline. See vkCmdBindPipelineShaderGroupNV for further details" - } - ] - }, - "VkBindIndexBufferIndirectCommandNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02946", - "text": " The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_INDEX_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-bufferAddress-02947", - "text": " The bufferAddress must be aligned to the indexType used" - }, - { - "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-None-02948", - "text": " Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkBindIndexBufferIndirectCommandNV-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" - } - ] - }, - "VkBindVertexBufferIndirectCommandNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02949", - "text": " The buffer’s usage flag from which the address was acquired must have the VK_BUFFER_USAGE_VERTEX_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-VkBindVertexBufferIndirectCommandNV-None-02950", - "text": " Each element of the buffer from which the address was acquired and that is non-sparse must be bound completely and contiguously to a single VkDeviceMemory object" - } - ] - }, - "VkIndirectCommandsLayoutTokenNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-stream-02951", - "text": " stream must be smaller than VkIndirectCommandsLayoutCreateInfoNV::streamCount" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-offset-02952", - "text": " offset must be less than or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectCommandsTokenOffset" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02976", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV, vertexBindingUnit must stay within device supported limits for the appropriate commands" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02977", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantPipelineLayout must be valid" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02978", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be a multiple of 4" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02979", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be a multiple of 4" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02980", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantOffset must be less than VkPhysicalDeviceLimits::maxPushConstantsSize" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02981", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, pushconstantSize must be less than or equal to VkPhysicalDeviceLimits::maxPushConstantsSize minus pushconstantOffset" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02982", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each shader stage in pushconstantShaderStageFlags, there must be a push constant range in pushconstantPipelineLayout that includes that byte and that stage" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02983", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, for each byte in the range specified by pushconstantOffset and pushconstantSize and for each push constant range that overlaps that byte, pushconstantShaderStageFlags must include all stages in that push constant range’s VkPushConstantRange::pushconstantShaderStageFlags" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-02984", - "text": " If tokenType is VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV, indirectStateFlags must not be ´0´" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-tokenType-parameter", - "text": " tokenType must be a valid VkIndirectCommandsTokenTypeNV value" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantPipelineLayout-parameter", - "text": " If pushconstantPipelineLayout is not VK_NULL_HANDLE, pushconstantPipelineLayout must be a valid VkPipelineLayout handle" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pushconstantShaderStageFlags-parameter", - "text": " pushconstantShaderStageFlags must be a valid combination of VkShaderStageFlagBits values" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-indirectStateFlags-parameter", - "text": " indirectStateFlags must be a valid combination of VkIndirectStateFlagBitsNV values" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypes-parameter", - "text": " If indexTypeCount is not 0, pIndexTypes must be a valid pointer to an array of indexTypeCount valid VkIndexType values" - }, - { - "vuid": "VUID-VkIndirectCommandsLayoutTokenNV-pIndexTypeValues-parameter", - "text": " If indexTypeCount is not 0, pIndexTypeValues must be a valid pointer to an array of indexTypeCount uint32_t values" - } - ] - }, - "vkGetGeneratedCommandsMemoryRequirementsNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-deviceGeneratedCommands-02906", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - }, - { - "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkGeneratedCommandsMemoryRequirementsInfoNV structure" - }, - { - "vuid": "VUID-vkGetGeneratedCommandsMemoryRequirementsNV-pMemoryRequirements-parameter", - "text": " pMemoryRequirements must be a valid pointer to a VkMemoryRequirements2 structure" - } - ] - }, - "VkGeneratedCommandsMemoryRequirementsInfoNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-maxSequencesCount-02907", - "text": " maxSequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount" - }, - { - "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV" - }, - { - "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-indirectCommandsLayout-parameter", - "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" - }, - { - "vuid": "VUID-VkGeneratedCommandsMemoryRequirementsInfoNV-commonparent", - "text": " Both of indirectCommandsLayout, and pipeline must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdExecuteGeneratedCommandsNV": { - "core": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderPass-02684", - "text": " The current render pass must be compatible with the renderPass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-subpass-02685", - "text": " The subpass index of the current render pass must be equal to the subpass member of the VkGraphicsPipelineCreateInfo structure specified when creating the VkPipeline bound to VK_PIPELINE_BIND_POINT_GRAPHICS" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02686", - "text": " Every input attachment used by the current subpass must be bound to the pipeline via a descriptor set" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04584", - "text": " Image subresources used as attachments in the current render pass must not be accessed in any way other than as an attachment by this command, except for cases involving read-only access to depth/stencil attachments as described in the Render Pass chapter" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04007", - "text": " All vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must have either valid or VK_NULL_HANDLE buffers bound" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-04008", - "text": " If the nullDescriptor feature is not enabled, all vertex input bindings accessed via vertex input variables declared in the vertex shader entry point’s interface must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02721", - "text": " For a given vertex buffer binding, any attribute data fetched must be entirely contained within the corresponding vertex buffer binding, as described in Vertex Input Description" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-isPreprocessed-02908", - "text": " If isPreprocessed is VK_TRUE then vkCmdPreprocessGeneratedCommandsNV must have already been executed on the device, using the same pGeneratedCommandsInfo content as well as the content of the input buffers it references (all except VkGeneratedCommandsInfoNV::preprocessBuffer). Furthermore pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pipeline-02909", - "text": " VkGeneratedCommandsInfoNV::pipeline must match the current bound pipeline at VkGeneratedCommandsInfoNV::pipelineBindPoint" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-deviceGeneratedCommands-02911", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-02970", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-maxMultiviewInstanceIndex-02688", - "text": " If the draw is recorded in a render pass instance with multiview enabled, the maximum instance index must be less than or equal to VkPhysicalDeviceMultiviewProperties::maxMultiviewInstanceIndex" - } - ], - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-sampleLocationsEnable-02689", - "text": " If the bound graphics pipeline was created with VkPipelineSampleLocationsStateCreateInfoEXT::sampleLocationsEnable set to VK_TRUE and the current subpass has a depth/stencil attachment, then that attachment must have been created with the VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set" - } - ], - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03417", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the VkPipelineViewportStateCreateInfo::scissorCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-scissorCount-03418", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, then vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the scissorCount parameter of vkCmdSetScissorWithCountEXT must match the VkPipelineViewportStateCreateInfo::viewportCount of the pipeline" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-03419", - "text": " If the bound graphics pipeline state was created with both the VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic states enabled then both vkCmdSetViewportWithCountEXT and vkCmdSetScissorWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must match the scissorCount parameter of vkCmdSetScissorWithCountEXT" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveTopology-03420", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT dynamic state enabled then vkCmdSetPrimitiveTopologyEXT must have been called in the current command buffer prior to this draw command, and the primitiveTopology parameter of vkCmdSetPrimitiveTopologyEXT must be of the same topology class as the pipeline VkPipelineInputAssemblyStateCreateInfo::topology state" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_clip_space_w_scaling)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04137", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportWScalingStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04138", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportWScalingNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04139", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, but not the VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic state enabled, then the bound graphics pipeline must have been created with VkPipelineViewportShadingRateImageStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-viewportCount-04140", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT and VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states enabled then the viewportCount parameter in the last call to vkCmdSetViewportShadingRatePaletteNV must be greater than or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_viewport_swizzle)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04141", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportSwizzleStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportSwizzleStateCreateInfoNV::viewportCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_EXT_extended_dynamic_state)+(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-VkPipelineVieportCreateInfo-04142", - "text": " If the bound graphics pipeline state was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled and an instance of VkPipelineViewportExclusiveScissorStateCreateInfoNV chained from VkPipelineVieportCreateInfo, then the bound graphics pipeline must have been created with VkPipelineViewportExclusiveScissorStateCreateInfoNV::exclusiveScissorCount greater or equal to the viewportCount parameter in the last call to vkCmdSetViewportWithCountEXT" - } - ], - "(VK_KHR_fragment_shading_rate+VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-primitiveFragmentShadingRateWithMultipleViewports-04552", - "text": " If the primitiveFragmentShadingRateWithMultipleViewports limit is not supported, the bound graphics pipeline was created with the VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT dynamic state enabled, and any of the shader stages of the bound graphics pipeline write to the PrimitiveShadingRateKHR built-in, then vkCmdSetViewportWithCountEXT must have been called in the current command buffer prior to this draw command, and the viewportCount parameter of vkCmdSetViewportWithCountEXT must be 1" - } - ], - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-None-02910", - "text": " Transform feedback must not be active" - } - ], - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-pGeneratedCommandsInfo-parameter", - "text": " pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdExecuteGeneratedCommandsNV-renderpass", - "text": " This command must only be called inside of a render pass instance" - } - ] - }, - "VkGeneratedCommandsInfoNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-02912", - "text": " The provided pipeline must match the pipeline bound at execution time" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02913", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with multiple shader groups" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02914", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV, then the pipeline must have been created with VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV set in VkGraphicsPipelineCreateInfo::flags" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-02915", - "text": " If the indirectCommandsLayout uses a token of VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV, then the pipeline`s VkPipelineLayout must match the VkIndirectCommandsLayoutTokenNV::pushconstantPipelineLayout" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-02916", - "text": " streamCount must match the indirectCommandsLayout’s streamCount" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCount-02917", - "text": " sequencesCount must be less or equal to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::maxIndirectSequenceCount and VkGeneratedCommandsMemoryRequirementsInfoNV::maxSequencesCount that was used to determine the preprocessSize" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02918", - "text": " preprocessBuffer must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set in its usage flag" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessOffset-02919", - "text": " preprocessOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minIndirectCommandsBufferOffsetAlignment" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-02971", - "text": " If preprocessBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessSize-02920", - "text": " preprocessSize must be at least equal to the memory requirement`s size returned by vkGetGeneratedCommandsMemoryRequirementsNV using the matching inputs (indirectCommandsLayout, …​) as within this structure" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02921", - "text": " sequencesCountBuffer can be set if the actual used count of sequences is sourced from the provided buffer. In that case the sequencesCount serves as upper bound" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02922", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02923", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesCountBufferOffsetAlignment" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-02972", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02924", - "text": " If indirectCommandsLayout’s VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV is set, sequencesIndexBuffer must be set otherwise it must be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02925", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, its usage flag must have the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02926", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexOffset must be aligned to VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV::minSequencesIndexBufferOffsetAlignment" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-02973", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE and is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-pipelineBindPoint-parameter", - "text": " pipelineBindPoint must be a valid VkPipelineBindPoint value" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-pipeline-parameter", - "text": " pipeline must be a valid VkPipeline handle" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-indirectCommandsLayout-parameter", - "text": " indirectCommandsLayout must be a valid VkIndirectCommandsLayoutNV handle" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-pStreams-parameter", - "text": " pStreams must be a valid pointer to an array of streamCount valid VkIndirectCommandsStreamNV structures" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-preprocessBuffer-parameter", - "text": " preprocessBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesCountBuffer-parameter", - "text": " If sequencesCountBuffer is not VK_NULL_HANDLE, sequencesCountBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-sequencesIndexBuffer-parameter", - "text": " If sequencesIndexBuffer is not VK_NULL_HANDLE, sequencesIndexBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-streamCount-arraylength", - "text": " streamCount must be greater than 0" - }, - { - "vuid": "VUID-VkGeneratedCommandsInfoNV-commonparent", - "text": " Each of indirectCommandsLayout, pipeline, preprocessBuffer, sequencesCountBuffer, and sequencesIndexBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdPreprocessGeneratedCommandsNV": { - "(VK_NV_device_generated_commands)+(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-02974", - "text": " commandBuffer must not be a protected command buffer" - } - ], - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-02927", - "text": " pGeneratedCommandsInfo`s indirectCommandsLayout must have been created with the VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV bit set" - }, - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-deviceGeneratedCommands-02928", - "text": " The VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV::deviceGeneratedCommands feature must be enabled" - }, - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-pGeneratedCommandsInfo-parameter", - "text": " pGeneratedCommandsInfo must be a valid pointer to a valid VkGeneratedCommandsInfoNV structure" - }, - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - }, - { - "vuid": "VUID-vkCmdPreprocessGeneratedCommandsNV-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "vkGetPhysicalDeviceSparseImageFormatProperties": { - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-01094", - "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-type-parameter", - "text": " type must be a valid VkImageType value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties structures" - } - ] - }, - "vkGetPhysicalDeviceSparseImageFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pFormatInfo-parameter", - "text": " pFormatInfo must be a valid pointer to a valid VkPhysicalDeviceSparseImageFormatInfo2 structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSparseImageFormatProperties2-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkSparseImageFormatProperties2 structures" - } - ] - }, - "VkPhysicalDeviceSparseImageFormatInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-01095", - "text": " samples must be a bit value that is set in VkImageFormatProperties::sampleCounts returned by vkGetPhysicalDeviceImageFormatProperties with format, type, tiling, and usage equal to those in this command and flags equal to the value that is set in VkImageCreateInfo::flags when the image is created" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-type-parameter", - "text": " type must be a valid VkImageType value" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-VkPhysicalDeviceSparseImageFormatInfo2-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" - } - ] - }, - "VkSparseImageFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkSparseImageFormatProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2" - }, - { - "vuid": "VUID-VkSparseImageFormatProperties2-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetImageSparseMemoryRequirements": { - "core": [ - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirementCount-parameter", - "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-pSparseMemoryRequirements-parameter", - "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements structures" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements-image-parent", - "text": " image must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetImageSparseMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkImageSparseMemoryRequirementsInfo2 structure" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirementCount-parameter", - "text": " pSparseMemoryRequirementCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetImageSparseMemoryRequirements2-pSparseMemoryRequirements-parameter", - "text": " If the value referenced by pSparseMemoryRequirementCount is not 0, and pSparseMemoryRequirements is not NULL, pSparseMemoryRequirements must be a valid pointer to an array of pSparseMemoryRequirementCount VkSparseImageMemoryRequirements2 structures" - } - ] - }, - "VkImageSparseMemoryRequirementsInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2" - }, - { - "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImageSparseMemoryRequirementsInfo2-image-parameter", - "text": " image must be a valid VkImage handle" - } - ] - }, - "VkSparseImageMemoryRequirements2": { - "(VK_VERSION_1_1,VK_KHR_get_memory_requirements2)": [ - { - "vuid": "VUID-VkSparseImageMemoryRequirements2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2" - }, - { - "vuid": "VUID-VkSparseImageMemoryRequirements2-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkSparseMemoryBind": { - "core": [ - { - "vuid": "VUID-VkSparseMemoryBind-memory-01096", - "text": " If memory is not VK_NULL_HANDLE, memory and memoryOffset must match the memory requirements of the resource, as described in section Resource Memory Association" - }, - { - "vuid": "VUID-VkSparseMemoryBind-memory-01097", - "text": " If memory is not VK_NULL_HANDLE, memory must not have been created with a memory type that reports VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT bit set" - }, - { - "vuid": "VUID-VkSparseMemoryBind-size-01098", - "text": " size must be greater than 0" - }, - { - "vuid": "VUID-VkSparseMemoryBind-resourceOffset-01099", - "text": " resourceOffset must be less than the size of the resource" - }, - { - "vuid": "VUID-VkSparseMemoryBind-size-01100", - "text": " size must be less than or equal to the size of the resource minus resourceOffset" - }, - { - "vuid": "VUID-VkSparseMemoryBind-memoryOffset-01101", - "text": " memoryOffset must be less than the size of memory" - }, - { - "vuid": "VUID-VkSparseMemoryBind-size-01102", - "text": " size must be less than or equal to the size of memory minus memoryOffset" - }, - { - "vuid": "VUID-VkSparseMemoryBind-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-VkSparseMemoryBind-flags-parameter", - "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkSparseMemoryBind-memory-02730", - "text": " If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created" - }, - { - "vuid": "VUID-VkSparseMemoryBind-memory-02731", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryBufferCreateInfo::handleTypes or VkExternalMemoryImageCreateInfo::handleTypes when the resource was created" - } - ] - }, - "VkSparseBufferMemoryBindInfo": { - "core": [ - { - "vuid": "VUID-VkSparseBufferMemoryBindInfo-buffer-parameter", - "text": " buffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-VkSparseBufferMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" - }, - { - "vuid": "VUID-VkSparseBufferMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" - } - ] - }, - "VkSparseImageOpaqueMemoryBindInfo": { - "core": [ - { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-01103", - "text": " If the flags member of any element of pBinds contains VK_SPARSE_MEMORY_BIND_METADATA_BIT, the binding range defined must be within the mip tail region of the metadata aspect of image" - }, - { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseMemoryBind structures" - }, - { - "vuid": "VUID-VkSparseImageOpaqueMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" - } - ] - }, - "VkSparseImageMemoryBindInfo": { - "core": [ - { - "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01722", - "text": " The subresource.mipLevel member of each element of pBinds must be less than the mipLevels specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkSparseImageMemoryBindInfo-subresource-01723", - "text": " The subresource.arrayLayer member of each element of pBinds must be less than the arrayLayers specified in VkImageCreateInfo when image was created" - }, - { - "vuid": "VUID-VkSparseImageMemoryBindInfo-image-02901", - "text": " image must have been created with VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT set" - }, - { - "vuid": "VUID-VkSparseImageMemoryBindInfo-image-parameter", - "text": " image must be a valid VkImage handle" - }, - { - "vuid": "VUID-VkSparseImageMemoryBindInfo-pBinds-parameter", - "text": " pBinds must be a valid pointer to an array of bindCount valid VkSparseImageMemoryBind structures" - }, - { - "vuid": "VUID-VkSparseImageMemoryBindInfo-bindCount-arraylength", - "text": " bindCount must be greater than 0" - } - ] - }, - "VkSparseImageMemoryBind": { - "core": [ - { - "vuid": "VUID-VkSparseImageMemoryBind-memory-01104", - "text": " If the sparse aliased residency feature is not enabled, and if any other resources are bound to ranges of memory, the range of memory being bound must not overlap with those bound ranges" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-memory-01105", - "text": " memory and memoryOffset must match the memory requirements of the calling command’s image, as described in section Resource Memory Association" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-subresource-01106", - "text": " subresource must be a valid image subresource for image (see Image Views)" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-offset-01107", - "text": " offset.x must be a multiple of the sparse image block width (VkSparseImageFormatProperties::imageGranularity.width) of the image" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-extent-01108", - "text": " extent.width must either be a multiple of the sparse image block width of the image, or else (extent.width + offset.x) must equal the width of the image subresource" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-offset-01109", - "text": " offset.y must be a multiple of the sparse image block height (VkSparseImageFormatProperties::imageGranularity.height) of the image" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-extent-01110", - "text": " extent.height must either be a multiple of the sparse image block height of the image, or else (extent.height + offset.y) must equal the height of the image subresource" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-offset-01111", - "text": " offset.z must be a multiple of the sparse image block depth (VkSparseImageFormatProperties::imageGranularity.depth) of the image" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-extent-01112", - "text": " extent.depth must either be a multiple of the sparse image block depth of the image, or else (extent.depth + offset.z) must equal the depth of the image subresource" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-subresource-parameter", - "text": " subresource must be a valid VkImageSubresource structure" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-memory-parameter", - "text": " If memory is not VK_NULL_HANDLE, memory must be a valid VkDeviceMemory handle" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-flags-parameter", - "text": " flags must be a valid combination of VkSparseMemoryBindFlagBits values" - } - ], - "(VK_VERSION_1_1,VK_KHR_external_memory)": [ - { - "vuid": "VUID-VkSparseImageMemoryBind-memory-02732", - "text": " If memory was created with VkExportMemoryAllocateInfo::handleTypes not equal to 0, at least one handle type it contained must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when the image was created" - }, - { - "vuid": "VUID-VkSparseImageMemoryBind-memory-02733", - "text": " If memory was created by a memory import operation, the external handle type of the imported memory must also have been set in VkExternalMemoryImageCreateInfo::handleTypes when image was created" - } - ] - }, - "vkQueueBindSparse": { - "core": [ - { - "vuid": "VUID-vkQueueBindSparse-fence-01113", - "text": " If fence is not VK_NULL_HANDLE, fence must be unsignaled" - }, - { - "vuid": "VUID-vkQueueBindSparse-fence-01114", - "text": " If fence is not VK_NULL_HANDLE, fence must not be associated with any other queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-vkQueueBindSparse-pSignalSemaphores-01115", - "text": " Each element of the pSignalSemaphores member of each element of pBindInfo must be unsignaled when the semaphore signal operation it defines is executed on the device" - }, - { - "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01116", - "text": " When a semaphore wait operation referring to a binary semaphore defined by any element of the pWaitSemaphores member of any element of pBindInfo executes on queue, there must be no other queues waiting on the same semaphore" - }, - { - "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-01117", - "text": " All elements of the pWaitSemaphores member of all elements of pBindInfo member referring to a binary semaphore must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution" - }, - { - "vuid": "VUID-vkQueueBindSparse-queue-parameter", - "text": " queue must be a valid VkQueue handle" - }, - { - "vuid": "VUID-vkQueueBindSparse-pBindInfo-parameter", - "text": " If bindInfoCount is not 0, pBindInfo must be a valid pointer to an array of bindInfoCount valid VkBindSparseInfo structures" - }, - { - "vuid": "VUID-vkQueueBindSparse-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-vkQueueBindSparse-queuetype", - "text": " The queue must support sparse binding operations" - }, - { - "vuid": "VUID-vkQueueBindSparse-commonparent", - "text": " Both of fence, and queue that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkQueueBindSparse-pWaitSemaphores-03245", - "text": " All elements of the pWaitSemaphores member of all elements of pBindInfo created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" - } - ] - }, - "VkBindSparseInfo": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03246", - "text": " If any element of pWaitSemaphores or pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then the pNext chain must include a VkTimelineSemaphoreSubmitInfo structure" - }, - { - "vuid": "VUID-VkBindSparseInfo-pNext-03247", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pWaitSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its waitSemaphoreValueCount member must equal waitSemaphoreCount" - }, - { - "vuid": "VUID-VkBindSparseInfo-pNext-03248", - "text": " If the pNext chain of this structure includes a VkTimelineSemaphoreSubmitInfo structure and any element of pSignalSemaphores was created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE then its signalSemaphoreValueCount member must equal signalSemaphoreCount" - }, - { - "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03249", - "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value greater than the current value of the semaphore when the semaphore signal operation is executed" - }, - { - "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-03250", - "text": " For each element of pWaitSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pWaitSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" - }, - { - "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-03251", - "text": " For each element of pSignalSemaphores created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_TIMELINE the corresponding element of VkTimelineSemaphoreSubmitInfo::pSignalSemaphoreValues must have a value which does not differ from the current value of the semaphore or from the value of any outstanding semaphore wait or signal operation on that semaphore by more than maxTimelineSemaphoreValueDifference" - } - ], - "core": [ - { - "vuid": "VUID-VkBindSparseInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_BIND_SPARSE_INFO" - }, - { - "vuid": "VUID-VkBindSparseInfo-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupBindSparseInfo or VkTimelineSemaphoreSubmitInfo" - }, - { - "vuid": "VUID-VkBindSparseInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkBindSparseInfo-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" - }, - { - "vuid": "VUID-VkBindSparseInfo-pBufferBinds-parameter", - "text": " If bufferBindCount is not 0, pBufferBinds must be a valid pointer to an array of bufferBindCount valid VkSparseBufferMemoryBindInfo structures" - }, - { - "vuid": "VUID-VkBindSparseInfo-pImageOpaqueBinds-parameter", - "text": " If imageOpaqueBindCount is not 0, pImageOpaqueBinds must be a valid pointer to an array of imageOpaqueBindCount valid VkSparseImageOpaqueMemoryBindInfo structures" - }, - { - "vuid": "VUID-VkBindSparseInfo-pImageBinds-parameter", - "text": " If imageBindCount is not 0, pImageBinds must be a valid pointer to an array of imageBindCount valid VkSparseImageMemoryBindInfo structures" - }, - { - "vuid": "VUID-VkBindSparseInfo-pSignalSemaphores-parameter", - "text": " If signalSemaphoreCount is not 0, pSignalSemaphores must be a valid pointer to an array of signalSemaphoreCount valid VkSemaphore handles" - }, - { - "vuid": "VUID-VkBindSparseInfo-commonparent", - "text": " Both of the elements of pSignalSemaphores, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkDeviceGroupBindSparseInfo": { - "(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupBindSparseInfo-resourceDeviceIndex-01118", - "text": " resourceDeviceIndex and memoryDeviceIndex must both be valid device indices" - }, - { - "vuid": "VUID-VkDeviceGroupBindSparseInfo-memoryDeviceIndex-01119", - "text": " Each memory allocation bound in this batch must have allocated an instance for memoryDeviceIndex" - }, - { - "vuid": "VUID-VkDeviceGroupBindSparseInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO" - } - ] - }, - "vkCreateAndroidSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_android_surface)": [ - { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkAndroidSurfaceCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateAndroidSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkAndroidSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_android_surface)": [ - { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-window-01248", - "text": " window must point to a valid Android ANativeWindow" - }, - { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAndroidSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateWaylandSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ - { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkWaylandSurfaceCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateWaylandSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkWaylandSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ - { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-display-01304", - "text": " display must point to a valid Wayland wl_display" - }, - { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-surface-01305", - "text": " surface must point to a valid Wayland wl_surface" - }, - { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkWaylandSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateWin32SurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ - { - "vuid": "VUID-vkCreateWin32SurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateWin32SurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkWin32SurfaceCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateWin32SurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateWin32SurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkWin32SurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ - { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hinstance-01307", - "text": " hinstance must be a valid Win32 HINSTANCE" - }, - { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-hwnd-01308", - "text": " hwnd must be a valid Win32 HWND" - }, - { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkWin32SurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateXcbSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ - { - "vuid": "VUID-vkCreateXcbSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateXcbSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkXcbSurfaceCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateXcbSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateXcbSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkXcbSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ - { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-connection-01310", - "text": " connection must point to a valid X11 xcb_connection_t" - }, - { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-window-01311", - "text": " window must be a valid X11 xcb_window_t" - }, - { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkXcbSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateXlibSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ - { - "vuid": "VUID-vkCreateXlibSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateXlibSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkXlibSurfaceCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateXlibSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateXlibSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkXlibSurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ - { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-dpy-01313", - "text": " dpy must point to a valid Xlib Display" - }, - { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-window-01314", - "text": " window must be a valid Xlib Window" - }, - { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkXlibSurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateDirectFBSurfaceEXT": { - "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [ - { - "vuid": "VUID-vkCreateDirectFBSurfaceEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDirectFBSurfaceCreateInfoEXT structure" - }, - { - "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDirectFBSurfaceEXT-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkDirectFBSurfaceCreateInfoEXT": { - "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [ - { - "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-dfb-04117", - "text": " dfb must point to a valid DirectFB IDirectFB" - }, - { - "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-surface-04118", - "text": " surface must point to a valid DirectFB IDirectFBSurface" - }, - { - "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDirectFBSurfaceCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateImagePipeSurfaceFUCHSIA": { - "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ - { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkImagePipeSurfaceCreateInfoFUCHSIA structure" - }, - { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateImagePipeSurfaceFUCHSIA-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkImagePipeSurfaceCreateInfoFUCHSIA": { - "(VK_KHR_surface)+(VK_FUCHSIA_imagepipe_surface)": [ - { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-imagePipeHandle-00000", - "text": " imagePipeHandle must be a valid zx_handle_t" - }, - { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA" - }, - { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkImagePipeSurfaceCreateInfoFUCHSIA-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateStreamDescriptorSurfaceGGP": { - "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [ - { - "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkStreamDescriptorSurfaceCreateInfoGGP structure" - }, - { - "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateStreamDescriptorSurfaceGGP-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkStreamDescriptorSurfaceCreateInfoGGP": { - "(VK_KHR_surface)+(VK_GGP_stream_descriptor_surface)": [ - { - "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-streamDescriptor-02681", - "text": " streamDescriptor must be a valid GgpStreamDescriptor" - }, - { - "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP" - }, - { - "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkStreamDescriptorSurfaceCreateInfoGGP-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateIOSSurfaceMVK": { - "(VK_KHR_surface)+(VK_MVK_ios_surface)": [ - { - "vuid": "VUID-vkCreateIOSSurfaceMVK-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateIOSSurfaceMVK-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkIOSSurfaceCreateInfoMVK structure" - }, - { - "vuid": "VUID-vkCreateIOSSurfaceMVK-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateIOSSurfaceMVK-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkIOSSurfaceCreateInfoMVK": { - "(VK_KHR_surface)+(VK_MVK_ios_surface)": [ - { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-04143", - "text": " If pView is a CAMetalLayer object, it must be a valid CAMetalLayer." - }, - { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pView-01316", - "text": " If pView is a UIView object, it must be a valid UIView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateIOSSurfaceMVK must be called on the main thread." - }, - { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK" - }, - { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkIOSSurfaceCreateInfoMVK-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateMacOSSurfaceMVK": { - "(VK_KHR_surface)+(VK_MVK_macos_surface)": [ - { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkMacOSSurfaceCreateInfoMVK structure" - }, - { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateMacOSSurfaceMVK-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkMacOSSurfaceCreateInfoMVK": { - "(VK_KHR_surface)+(VK_MVK_macos_surface)": [ - { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-04144", - "text": " If pView is a CAMetalLayer object, it must be a valid CAMetalLayer." - }, - { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pView-01317", - "text": " If pView is an NSView object, it must be a valid NSView, must be backed by a CALayer object of type CAMetalLayer, and vkCreateMacOSSurfaceMVK must be called on the main thread." - }, - { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK" - }, - { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkMacOSSurfaceCreateInfoMVK-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateViSurfaceNN": { - "(VK_KHR_surface)+(VK_NN_vi_surface)": [ - { - "vuid": "VUID-vkCreateViSurfaceNN-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateViSurfaceNN-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkViSurfaceCreateInfoNN structure" - }, - { - "vuid": "VUID-vkCreateViSurfaceNN-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateViSurfaceNN-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkViSurfaceCreateInfoNN": { - "(VK_KHR_surface)+(VK_NN_vi_surface)": [ - { - "vuid": "VUID-VkViSurfaceCreateInfoNN-window-01318", - "text": " window must be a valid nn::vi::NativeWindowHandle" - }, - { - "vuid": "VUID-VkViSurfaceCreateInfoNN-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN" - }, - { - "vuid": "VUID-VkViSurfaceCreateInfoNN-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkViSurfaceCreateInfoNN-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkCreateMetalSurfaceEXT": { - "(VK_KHR_surface)+(VK_EXT_metal_surface)": [ - { - "vuid": "VUID-vkCreateMetalSurfaceEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateMetalSurfaceEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkMetalSurfaceCreateInfoEXT structure" - }, - { - "vuid": "VUID-vkCreateMetalSurfaceEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateMetalSurfaceEXT-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkMetalSurfaceCreateInfoEXT": { - "(VK_KHR_surface)+(VK_EXT_metal_surface)": [ - { - "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkMetalSurfaceCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkDestroySurfaceKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkDestroySurfaceKHR-surface-01266", - "text": " All VkSwapchainKHR objects created for surface must have been destroyed prior to destroying surface" - }, - { - "vuid": "VUID-vkDestroySurfaceKHR-surface-01267", - "text": " If VkAllocationCallbacks were provided when surface was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroySurfaceKHR-surface-01268", - "text": " If no VkAllocationCallbacks were provided when surface was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroySurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkDestroySurfaceKHR-surface-parameter", - "text": " If surface is not VK_NULL_HANDLE, surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkDestroySurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroySurfaceKHR-surface-parent", - "text": " If surface is a valid handle, it must have been created, allocated, or retrieved from instance" - } - ] - }, - "vkGetPhysicalDeviceDisplayPropertiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPropertiesKHR structures" - } - ] - }, - "vkGetPhysicalDeviceDisplayProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayProperties2KHR structures" - } - ] - }, - "VkDisplayProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-VkDisplayProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR" - }, - { - "vuid": "VUID-VkDisplayProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkAcquireXlibDisplayEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [ - { - "vuid": "VUID-vkAcquireXlibDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkAcquireXlibDisplayEXT-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" - }, - { - "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkAcquireXlibDisplayEXT-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" - } - ] - }, - "vkGetRandROutputDisplayEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_EXT_acquire_xlib_display)": [ - { - "vuid": "VUID-vkGetRandROutputDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetRandROutputDisplayEXT-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" - }, - { - "vuid": "VUID-vkGetRandROutputDisplayEXT-pDisplay-parameter", - "text": " pDisplay must be a valid pointer to a VkDisplayKHR handle" - } - ] - }, - "vkAcquireWinrtDisplayNV": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)": [ - { - "vuid": "VUID-vkAcquireWinrtDisplayNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkAcquireWinrtDisplayNV-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" - } - ] - }, - "vkGetWinrtDisplayNV": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)+(VK_NV_acquire_winrt_display)": [ - { - "vuid": "VUID-vkGetWinrtDisplayNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetWinrtDisplayNV-pDisplay-parameter", - "text": " pDisplay must be a valid pointer to a VkDisplayKHR handle" - } - ] - }, - "vkReleaseDisplayEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_direct_mode_display)": [ - { - "vuid": "VUID-vkReleaseDisplayEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkReleaseDisplayEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkReleaseDisplayEXT-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" - } - ] - }, - "vkGetPhysicalDeviceDisplayPlanePropertiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlanePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlanePropertiesKHR structures" - } - ] - }, - "vkGetPhysicalDeviceDisplayPlaneProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDisplayPlaneProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayPlaneProperties2KHR structures" - } - ] - }, - "VkDisplayPlaneProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-VkDisplayPlaneProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR" - }, - { - "vuid": "VUID-VkDisplayPlaneProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetDisplayPlaneSupportedDisplaysKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-planeIndex-01249", - "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" - }, - { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplayCount-parameter", - "text": " pDisplayCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetDisplayPlaneSupportedDisplaysKHR-pDisplays-parameter", - "text": " If the value referenced by pDisplayCount is not 0, and pDisplays is not NULL, pDisplays must be a valid pointer to an array of pDisplayCount VkDisplayKHR handles" - } - ] - }, - "vkGetDisplayModePropertiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModePropertiesKHR structures" - }, - { - "vuid": "VUID-vkGetDisplayModePropertiesKHR-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" - } - ] - }, - "vkGetDisplayModeProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkDisplayModeProperties2KHR structures" - }, - { - "vuid": "VUID-vkGetDisplayModeProperties2KHR-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" - } - ] - }, - "VkDisplayModeProperties2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-VkDisplayModeProperties2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR" - }, - { - "vuid": "VUID-VkDisplayModeProperties2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkDisplayModeParametersKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-VkDisplayModeParametersKHR-width-01990", - "text": " The width member of visibleRegion must be greater than 0" - }, - { - "vuid": "VUID-VkDisplayModeParametersKHR-height-01991", - "text": " The height member of visibleRegion must be greater than 0" - }, - { - "vuid": "VUID-VkDisplayModeParametersKHR-refreshRate-01992", - "text": " refreshRate must be greater than 0" - } - ] - }, - "vkCreateDisplayModeKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-vkCreateDisplayModeKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkCreateDisplayModeKHR-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkCreateDisplayModeKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDisplayModeCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateDisplayModeKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDisplayModeKHR-pMode-parameter", - "text": " pMode must be a valid pointer to a VkDisplayModeKHR handle" - }, - { - "vuid": "VUID-vkCreateDisplayModeKHR-display-parent", - "text": " display must have been created, allocated, or retrieved from physicalDevice" - } - ] - }, - "VkDisplayModeCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkDisplayModeCreateInfoKHR-parameters-parameter", - "text": " parameters must be a valid VkDisplayModeParametersKHR structure" - } - ] - }, - "vkGetDisplayPlaneCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-mode-parameter", - "text": " mode must be a valid VkDisplayModeKHR handle" - }, - { - "vuid": "VUID-vkGetDisplayPlaneCapabilitiesKHR-pCapabilities-parameter", - "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilitiesKHR structure" - } - ] - }, - "vkGetDisplayPlaneCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pDisplayPlaneInfo-parameter", - "text": " pDisplayPlaneInfo must be a valid pointer to a valid VkDisplayPlaneInfo2KHR structure" - }, - { - "vuid": "VUID-vkGetDisplayPlaneCapabilities2KHR-pCapabilities-parameter", - "text": " pCapabilities must be a valid pointer to a VkDisplayPlaneCapabilities2KHR structure" - } - ] - }, - "VkDisplayPlaneInfo2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-VkDisplayPlaneInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR" - }, - { - "vuid": "VUID-VkDisplayPlaneInfo2KHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDisplayPlaneInfo2KHR-mode-parameter", - "text": " mode must be a valid VkDisplayModeKHR handle" - } - ] - }, - "VkDisplayPlaneCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_KHR_get_display_properties2)": [ - { - "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR" - }, - { - "vuid": "VUID-VkDisplayPlaneCapabilities2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkDisplayPowerControlEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [ - { - "vuid": "VUID-vkDisplayPowerControlEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDisplayPowerControlEXT-display-parameter", - "text": " display must be a valid VkDisplayKHR handle" - }, - { - "vuid": "VUID-vkDisplayPowerControlEXT-pDisplayPowerInfo-parameter", - "text": " pDisplayPowerInfo must be a valid pointer to a valid VkDisplayPowerInfoEXT structure" - }, - { - "vuid": "VUID-vkDisplayPowerControlEXT-commonparent", - "text": " Both of device, and display must have been created, allocated, or retrieved from the same VkPhysicalDevice" - } - ] - }, - "VkDisplayPowerInfoEXT": { - "(VK_KHR_surface)+(VK_KHR_display)+(VK_EXT_display_control)": [ - { - "vuid": "VUID-VkDisplayPowerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT" - }, - { - "vuid": "VUID-VkDisplayPowerInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDisplayPowerInfoEXT-powerState-parameter", - "text": " powerState must be a valid VkDisplayPowerStateEXT value" - } - ] - }, - "vkCreateDisplayPlaneSurfaceKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDisplaySurfaceCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDisplayPlaneSurfaceKHR-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkDisplaySurfaceCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_display)": [ - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeIndex-01252", - "text": " planeIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-planeReorderPossible-01253", - "text": " If the planeReorderPossible member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display corresponding to displayMode is VK_TRUE then planeStackIndex must be less than the number of display planes supported by the device as determined by calling vkGetPhysicalDeviceDisplayPlanePropertiesKHR; otherwise planeStackIndex must equal the currentStackIndex member of VkDisplayPlanePropertiesKHR returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR for the display plane corresponding to displayMode" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01254", - "text": " If alphaMode is VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR then globalAlpha must be between 0 and 1, inclusive" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-01255", - "text": " alphaMode must be 0 or one of the bits present in the supportedAlpha member of VkDisplayPlaneCapabilitiesKHR returned by vkGetDisplayPlaneCapabilitiesKHR for the display plane corresponding to displayMode" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-width-01256", - "text": " The width and height members of imageExtent must be less than or equal to VkPhysicalDeviceLimits::maxImageDimension2D" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-displayMode-parameter", - "text": " displayMode must be a valid VkDisplayModeKHR handle" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-transform-parameter", - "text": " transform must be a valid VkSurfaceTransformFlagBitsKHR value" - }, - { - "vuid": "VUID-VkDisplaySurfaceCreateInfoKHR-alphaMode-parameter", - "text": " alphaMode must be a valid VkDisplayPlaneAlphaFlagBitsKHR value" - } - ] - }, - "vkCreateHeadlessSurfaceEXT": { - "(VK_KHR_surface)+(VK_EXT_headless_surface)": [ - { - "vuid": "VUID-vkCreateHeadlessSurfaceEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkHeadlessSurfaceCreateInfoEXT structure" - }, - { - "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateHeadlessSurfaceEXT-pSurface-parameter", - "text": " pSurface must be a valid pointer to a VkSurfaceKHR handle" - } - ] - }, - "VkHeadlessSurfaceCreateInfoEXT": { - "(VK_KHR_surface)+(VK_EXT_headless_surface)": [ - { - "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkHeadlessSurfaceCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkGetPhysicalDeviceSurfaceSupportKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-queueFamilyIndex-01269", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-pSupported-parameter", - "text": " pSupported must be a valid pointer to a VkBool32 value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceSupportKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPhysicalDeviceWaylandPresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_wayland_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-queueFamilyIndex-01306", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceWaylandPresentationSupportKHR-display-parameter", - "text": " display must be a valid pointer to a wl_display value" - } - ] - }, - "vkGetPhysicalDeviceWin32PresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_win32_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-queueFamilyIndex-01309", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceWin32PresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - } - ] - }, - "vkGetPhysicalDeviceXcbPresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_xcb_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-queueFamilyIndex-01312", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceXcbPresentationSupportKHR-connection-parameter", - "text": " connection must be a valid pointer to an xcb_connection_t value" - } - ] - }, - "vkGetPhysicalDeviceXlibPresentationSupportKHR": { - "(VK_KHR_surface)+(VK_KHR_xlib_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-queueFamilyIndex-01315", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceXlibPresentationSupportKHR-dpy-parameter", - "text": " dpy must be a valid pointer to a Display value" - } - ] - }, - "vkGetPhysicalDeviceDirectFBPresentationSupportEXT": { - "(VK_KHR_surface)+(VK_EXT_directfb_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-queueFamilyIndex-04119", - "text": " queueFamilyIndex must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the given physicalDevice" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceDirectFBPresentationSupportEXT-dfb-parameter", - "text": " dfb must be a valid pointer to an IDirectFB value" - } - ] - }, - "vkGetPhysicalDeviceSurfaceCapabilitiesKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilitiesKHR structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilitiesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPhysicalDeviceSurfaceCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pNext-02671", - "text": " If a VkSurfaceCapabilitiesFullScreenExclusiveEXT structure is included in the pNext chain of pSurfaceCapabilities, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain of pSurfaceInfo" - } - ], - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2KHR-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2KHR structure" - } - ] - }, - "VkPhysicalDeviceSurfaceInfo2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_win32_surface+VK_EXT_full_screen_exclusive)": [ - { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-02672", - "text": " If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain" - } - ], - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ - { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR" - }, - { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkSurfaceFullScreenExclusiveInfoEXT or VkSurfaceFullScreenExclusiveWin32InfoEXT" - }, - { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPhysicalDeviceSurfaceInfo2KHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - } - ] - }, - "VkSurfaceFullScreenExclusiveInfoEXT": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [ - { - "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT" - }, - { - "vuid": "VUID-VkSurfaceFullScreenExclusiveInfoEXT-fullScreenExclusive-parameter", - "text": " fullScreenExclusive must be a valid VkFullScreenExclusiveEXT value" - } - ] - }, - "VkSurfaceFullScreenExclusiveWin32InfoEXT": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)+(VK_KHR_win32_surface)": [ - { - "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-hmonitor-02673", - "text": " hmonitor must be a valid HMONITOR" - }, - { - "vuid": "VUID-VkSurfaceFullScreenExclusiveWin32InfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT" - } - ] - }, - "VkSurfaceCapabilities2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ - { - "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR" - }, - { - "vuid": "VUID-VkSurfaceCapabilities2KHR-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDisplayNativeHdrSurfaceCapabilitiesAMD, VkSharedPresentSurfaceCapabilitiesKHR, VkSurfaceCapabilitiesFullScreenExclusiveEXT, or VkSurfaceProtectedCapabilitiesKHR" - }, - { - "vuid": "VUID-VkSurfaceCapabilities2KHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkSurfaceProtectedCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_surface_protected_capabilities)": [ - { - "vuid": "VUID-VkSurfaceProtectedCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR" - } - ] - }, - "VkSharedPresentSurfaceCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkSharedPresentSurfaceCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR" - } - ] - }, - "VkDisplayNativeHdrSurfaceCapabilitiesAMD": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_AMD_display_native_hdr)": [ - { - "vuid": "VUID-VkDisplayNativeHdrSurfaceCapabilitiesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD" - } - ] - }, - "VkSurfaceCapabilitiesFullScreenExclusiveEXT": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)+(VK_EXT_full_screen_exclusive)": [ - { - "vuid": "VUID-VkSurfaceCapabilitiesFullScreenExclusiveEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT" - } - ] - }, - "vkGetPhysicalDeviceSurfaceCapabilities2EXT": { - "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-pSurfaceCapabilities-parameter", - "text": " pSurfaceCapabilities must be a valid pointer to a VkSurfaceCapabilities2EXT structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceCapabilities2EXT-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "VkSurfaceCapabilities2EXT": { - "(VK_KHR_surface)+(VK_EXT_display_surface_counter)": [ - { - "vuid": "VUID-VkSurfaceCapabilities2EXT-supportedSurfaceCounters-01246", - "text": " supportedSurfaceCounters must not include VK_SURFACE_COUNTER_VBLANK_BIT_EXT unless the surface queried is a display surface" - }, - { - "vuid": "VUID-VkSurfaceCapabilities2EXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT" - }, - { - "vuid": "VUID-VkSurfaceCapabilities2EXT-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPhysicalDeviceSurfaceFormatsKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-02739", - "text": " surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormatCount-parameter", - "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-pSurfaceFormats-parameter", - "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormatKHR structures" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormatsKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPhysicalDeviceSurfaceFormats2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-02740", - "text": " pSurfaceInfo->surface must be supported by physicalDevice, as reported by vkGetPhysicalDeviceSurfaceSupportKHR or an equivalent platform-specific mechanism" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormatCount-parameter", - "text": " pSurfaceFormatCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfaceFormats2KHR-pSurfaceFormats-parameter", - "text": " If the value referenced by pSurfaceFormatCount is not 0, and pSurfaceFormats is not NULL, pSurfaceFormats must be a valid pointer to an array of pSurfaceFormatCount VkSurfaceFormat2KHR structures" - } - ] - }, - "VkSurfaceFormat2KHR": { - "(VK_KHR_surface)+(VK_KHR_get_surface_capabilities2)": [ - { - "vuid": "VUID-VkSurfaceFormat2KHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR" - }, - { - "vuid": "VUID-VkSurfaceFormat2KHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPhysicalDeviceSurfacePresentModesKHR": { - "(VK_KHR_surface)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModeCount-parameter", - "text": " pPresentModeCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-pPresentModes-parameter", - "text": " If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPhysicalDeviceSurfacePresentModes2EXT": { - "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModeCount-parameter", - "text": " pPresentModeCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceSurfacePresentModes2EXT-pPresentModes-parameter", - "text": " If the value referenced by pPresentModeCount is not 0, and pPresentModes is not NULL, pPresentModes must be a valid pointer to an array of pPresentModeCount VkPresentModeKHR values" - } - ] - }, - "vkAcquireFullScreenExclusiveModeEXT": { - "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [ - { - "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02674", - "text": " swapchain must not be in the retired state" - }, - { - "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02675", - "text": " swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT" - }, - { - "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-02676", - "text": " swapchain must not currently have exclusive full-screen access" - }, - { - "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkAcquireFullScreenExclusiveModeEXT-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkReleaseFullScreenExclusiveModeEXT": { - "(VK_KHR_surface)+(VK_EXT_full_screen_exclusive)": [ - { - "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02677", - "text": " swapchain must not be in the retired state" - }, - { - "vuid": "VUID-vkReleaseFullScreenExclusiveModeEXT-swapchain-02678", - "text": " swapchain must be a swapchain created with a VkSurfaceFullScreenExclusiveInfoEXT structure, with fullScreenExclusive set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT" - } - ] - }, - "vkGetDeviceGroupPresentCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceGroupPresentCapabilitiesKHR-pDeviceGroupPresentCapabilities-parameter", - "text": " pDeviceGroupPresentCapabilities must be a valid pointer to a VkDeviceGroupPresentCapabilitiesKHR structure" - } - ] - }, - "VkDeviceGroupPresentCapabilitiesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR" - }, - { - "vuid": "VUID-VkDeviceGroupPresentCapabilitiesKHR-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetDeviceGroupSurfacePresentModesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-pModes-parameter", - "text": " pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value" - }, - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModesKHR-commonparent", - "text": " Both of device, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetDeviceGroupSurfacePresentModes2EXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_EXT_full_screen_exclusive)": [ - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pSurfaceInfo-parameter", - "text": " pSurfaceInfo must be a valid pointer to a valid VkPhysicalDeviceSurfaceInfo2KHR structure" - }, - { - "vuid": "VUID-vkGetDeviceGroupSurfacePresentModes2EXT-pModes-parameter", - "text": " pModes must be a valid pointer to a VkDeviceGroupPresentModeFlagsKHR value" - } - ] - }, - "vkGetPhysicalDevicePresentRectanglesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRectCount-parameter", - "text": " pRectCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-pRects-parameter", - "text": " If the value referenced by pRectCount is not 0, and pRects is not NULL, pRects must be a valid pointer to an array of pRectCount VkRect2D structures" - }, - { - "vuid": "VUID-vkGetPhysicalDevicePresentRectanglesKHR-commonparent", - "text": " Both of physicalDevice, and surface must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetRefreshCycleDurationGOOGLE": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ - { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-pDisplayTimingProperties-parameter", - "text": " pDisplayTimingProperties must be a valid pointer to a VkRefreshCycleDurationGOOGLE structure" - }, - { - "vuid": "VUID-vkGetRefreshCycleDurationGOOGLE-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetPastPresentationTimingGOOGLE": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ - { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimingCount-parameter", - "text": " pPresentationTimingCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-pPresentationTimings-parameter", - "text": " If the value referenced by pPresentationTimingCount is not 0, and pPresentationTimings is not NULL, pPresentationTimings must be a valid pointer to an array of pPresentationTimingCount VkPastPresentationTimingGOOGLE structures" - }, - { - "vuid": "VUID-vkGetPastPresentationTimingGOOGLE-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkGetSwapchainStatusKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-vkGetSwapchainStatusKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetSwapchainStatusKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkGetSwapchainStatusKHR-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkCreateSwapchainKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-vkCreateSwapchainKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateSwapchainKHR-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkSwapchainCreateInfoKHR structure" - }, - { - "vuid": "VUID-vkCreateSwapchainKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateSwapchainKHR-pSwapchain-parameter", - "text": " pSwapchain must be a valid pointer to a VkSwapchainKHR handle" - } - ] - }, - "VkSwapchainCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-01270", - "text": " surface must be a surface that is supported by the device as determined using vkGetPhysicalDeviceSurfaceSupportKHR" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01272", - "text": " minImageCount must be less than or equal to the value returned in the maxImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface if the returned maxImageCount is not zero" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01273", - "text": " imageFormat and imageColorSpace must match the format and colorSpace members, respectively, of one of the VkSurfaceFormatKHR structures returned by vkGetPhysicalDeviceSurfaceFormatsKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01274", - "text": " imageExtent must be between minImageExtent and maxImageExtent, inclusive, where minImageExtent and maxImageExtent are members of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageExtent-01689", - "text": " imageExtent members width and height must both be non-zero" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageArrayLayers-01275", - "text": " imageArrayLayers must be greater than 0 and less than or equal to the maxImageArrayLayers member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01277", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01278", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, queueFamilyIndexCount must be greater than 1" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-01279", - "text": " preTransform must be one of the bits present in the supportedTransforms member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-01280", - "text": " compositeAlpha must be one of the bits present in the supportedCompositeAlpha member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01281", - "text": " presentMode must be one of the VkPresentModeKHR values returned by vkGetPhysicalDeviceSurfacePresentModesKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-01933", - "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a non-retired swapchain associated with native window referred to by surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-01778", - "text": " The implied image creation parameters of the swapchain must be supported as reported by vkGetPhysicalDeviceImageFormatProperties" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupSwapchainCreateInfoKHR, VkImageFormatListCreateInfo, VkSurfaceFullScreenExclusiveInfoEXT, VkSurfaceFullScreenExclusiveWin32InfoEXT, VkSwapchainCounterCreateInfoEXT, or VkSwapchainDisplayNativeHdrCreateInfoAMD" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkSwapchainCreateFlagBitsKHR values" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-surface-parameter", - "text": " surface must be a valid VkSurfaceKHR handle" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageFormat-parameter", - "text": " imageFormat must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageColorSpace-parameter", - "text": " imageColorSpace must be a valid VkColorSpaceKHR value" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-parameter", - "text": " imageUsage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-requiredbitmask", - "text": " imageUsage must not be 0" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-parameter", - "text": " imageSharingMode must be a valid VkSharingMode value" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-preTransform-parameter", - "text": " preTransform must be a valid VkSurfaceTransformFlagBitsKHR value" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-compositeAlpha-parameter", - "text": " compositeAlpha must be a valid VkCompositeAlphaFlagBitsKHR value" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-parameter", - "text": " presentMode must be a valid VkPresentModeKHR value" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parameter", - "text": " If oldSwapchain is not VK_NULL_HANDLE, oldSwapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-oldSwapchain-parent", - "text": " If oldSwapchain is a valid handle, it must have been created, allocated, or retrieved from surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-commonparent", - "text": " Both of oldSwapchain, and surface that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01271", - "text": " minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01276", - "text": " imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-02839", - "text": " If presentMode is not VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR nor VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, then minImageCount must be greater than or equal to the value returned in the minImageCount member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for the surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-minImageCount-01383", - "text": " minImageCount must be 1 if presentMode is either VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-presentMode-01427", - "text": " If presentMode is VK_PRESENT_MODE_IMMEDIATE_KHR, VK_PRESENT_MODE_MAILBOX_KHR, VK_PRESENT_MODE_FIFO_KHR or VK_PRESENT_MODE_FIFO_RELAXED_KHR, imageUsage must be a subset of the supported usage flags present in the supportedUsageFlags member of the VkSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilitiesKHR for surface" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageUsage-01384", - "text": " If presentMode is VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR or VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR, imageUsage must be a subset of the supported usage flags present in the sharedPresentSupportedUsageFlags member of the VkSharedPresentSurfaceCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01393", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties for the physicalDevice that was used to create device" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-imageSharingMode-01428", - "text": " If imageSharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than pQueueFamilyPropertyCount returned by either vkGetPhysicalDeviceQueueFamilyProperties or vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-physicalDeviceCount-01429", - "text": " If the logical device was created with VkDeviceGroupDeviceCreateInfo::physicalDeviceCount equal to 1, flags must not contain VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_swapchain_mutable_format)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03168", - "text": " If flags contains VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR then the pNext chain must include a VkImageFormatListCreateInfo structure with a viewFormatCount greater than zero and pViewFormats must have an element equal to imageFormat" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-04099", - "text": " If a VkImageFormatListCreateInfo structure was included in the pNext chain and VkImageFormatListCreateInfo::viewFormatCount is not zero then all of the formats in VkImageFormatListCreateInfo::pViewFormats must be compatible with the format as described in the compatibility table" - }, - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-04100", - "text": " If flags does not contain VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR and the pNext chain include a VkImageFormatListCreateInfo structure then VkImageFormatListCreateInfo::viewFormatCount must be 0 or 1" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_surface_protected_capabilities)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-flags-03187", - "text": " If flags contains VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR, then VkSurfaceProtectedCapabilitiesKHR::supportsProtected must be VK_TRUE in the VkSurfaceProtectedCapabilitiesKHR structure returned by vkGetPhysicalDeviceSurfaceCapabilities2KHR for surface" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_full_screen_exclusive+VK_KHR_win32_surface)": [ - { - "vuid": "VUID-VkSwapchainCreateInfoKHR-pNext-02679", - "text": " If the pNext chain includes a VkSurfaceFullScreenExclusiveInfoEXT structure with its fullScreenExclusive member set to VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT, and surface was created using vkCreateWin32SurfaceKHR, a VkSurfaceFullScreenExclusiveWin32InfoEXT structure must be included in the pNext chain" - } - ] - }, - "VkDeviceGroupSwapchainCreateInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR" - }, - { - "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-parameter", - "text": " modes must be a valid combination of VkDeviceGroupPresentModeFlagBitsKHR values" - }, - { - "vuid": "VUID-VkDeviceGroupSwapchainCreateInfoKHR-modes-requiredbitmask", - "text": " modes must not be 0" - } - ] - }, - "VkSwapchainDisplayNativeHdrCreateInfoAMD": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [ - { - "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD" - }, - { - "vuid": "VUID-VkSwapchainDisplayNativeHdrCreateInfoAMD-localDimmingEnable-04449", - "text": " It is only valid to set localDimmingEnable to VK_TRUE if VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport is supported" - } - ] - }, - "vkSetLocalDimmingAMD": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_AMD_display_native_hdr)": [ - { - "vuid": "VUID-vkSetLocalDimmingAMD-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkSetLocalDimmingAMD-swapChain-parameter", - "text": " swapChain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkSetLocalDimmingAMD-commonparent", - "text": " Both of device, and swapChain must have been created, allocated, or retrieved from the same VkInstance" - }, - { - "vuid": "VUID-vkSetLocalDimmingAMD-localDimmingSupport-04618", - "text": " VkDisplayNativeHdrSurfaceCapabilitiesAMD::localDimmingSupport must be supported" - } - ] - }, - "VkSwapchainCounterCreateInfoEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [ - { - "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-01244", - "text": " The bits in surfaceCounters must be supported by VkSwapchainCreateInfoKHR::surface, as reported by vkGetPhysicalDeviceSurfaceCapabilities2EXT" - }, - { - "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkSwapchainCounterCreateInfoEXT-surfaceCounters-parameter", - "text": " surfaceCounters must be a valid combination of VkSurfaceCounterFlagBitsEXT values" - } - ] - }, - "vkGetSwapchainCounterEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_display_control)": [ - { - "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-01245", - "text": " One or more present commands on swapchain must have been processed by the presentation engine" - }, - { - "vuid": "VUID-vkGetSwapchainCounterEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetSwapchainCounterEXT-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkGetSwapchainCounterEXT-counter-parameter", - "text": " counter must be a valid VkSurfaceCounterFlagBitsEXT value" - }, - { - "vuid": "VUID-vkGetSwapchainCounterEXT-pCounterValue-parameter", - "text": " pCounterValue must be a valid pointer to a uint64_t value" - }, - { - "vuid": "VUID-vkGetSwapchainCounterEXT-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkDestroySwapchainKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01282", - "text": " All uses of presentable images acquired from swapchain must have completed execution" - }, - { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01283", - "text": " If VkAllocationCallbacks were provided when swapchain was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-01284", - "text": " If no VkAllocationCallbacks were provided when swapchain was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroySwapchainKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroySwapchainKHR-swapchain-parameter", - "text": " If swapchain is not VK_NULL_HANDLE, swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkDestroySwapchainKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroySwapchainKHR-commonparent", - "text": " Both of device, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkCreateSharedSwapchainsKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ - { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-pCreateInfos-parameter", - "text": " pCreateInfos must be a valid pointer to an array of swapchainCount valid VkSwapchainCreateInfoKHR structures" - }, - { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount VkSwapchainKHR handles" - }, - { - "vuid": "VUID-vkCreateSharedSwapchainsKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" - } - ] - }, - "vkGetSwapchainImagesKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-vkGetSwapchainImagesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetSwapchainImagesKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImageCount-parameter", - "text": " pSwapchainImageCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetSwapchainImagesKHR-pSwapchainImages-parameter", - "text": " If the value referenced by pSwapchainImageCount is not 0, and pSwapchainImages is not NULL, pSwapchainImages must be a valid pointer to an array of pSwapchainImageCount VkImage handles" - }, - { - "vuid": "VUID-vkGetSwapchainImagesKHR-commonparent", - "text": " Both of device, and swapchain must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "vkAcquireNextImageKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01285", - "text": " swapchain must not be in the retired state" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01286", - "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01779", - "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-fence-01287", - "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-01780", - "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-swapchain-01802", - "text": " If the number of currently acquired images is greater than the difference between the number of images in swapchain and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, timeout must not be UINT64_MAX" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-pImageIndex-parameter", - "text": " pImageIndex must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-parent", - "text": " If semaphore is a valid handle, it must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-fence-parent", - "text": " If fence is a valid handle, it must have been created, allocated, or retrieved from device" - }, - { - "vuid": "VUID-vkAcquireNextImageKHR-commonparent", - "text": " Both of device, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkAcquireNextImageKHR-semaphore-03265", - "text": " semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" - } - ] - }, - "vkAcquireNextImage2KHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-vkAcquireNextImage2KHR-swapchain-01803", - "text": " If the number of currently acquired images is greater than the difference between the number of images in the swapchain member of pAcquireInfo and the value of VkSurfaceCapabilitiesKHR::minImageCount as returned by a call to vkGetPhysicalDeviceSurfaceCapabilities2KHR with the surface used to create swapchain, the timeout member of pAcquireInfo must not be UINT64_MAX" - }, - { - "vuid": "VUID-vkAcquireNextImage2KHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkAcquireNextImage2KHR-pAcquireInfo-parameter", - "text": " pAcquireInfo must be a valid pointer to a valid VkAcquireNextImageInfoKHR structure" - }, - { - "vuid": "VUID-vkAcquireNextImage2KHR-pImageIndex-parameter", - "text": " pImageIndex must be a valid pointer to a uint32_t value" - } - ] - }, - "VkAcquireNextImageInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-01675", - "text": " swapchain must not be in the retired state" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01288", - "text": " If semaphore is not VK_NULL_HANDLE it must be unsignaled" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01781", - "text": " If semaphore is not VK_NULL_HANDLE it must not have any uncompleted signal or wait operations pending" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-01289", - "text": " If fence is not VK_NULL_HANDLE it must be unsignaled and must not be associated with any other queue command that has not yet completed execution on that queue" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-01782", - "text": " semaphore and fence must not both be equal to VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01290", - "text": " deviceMask must be a valid device mask" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-deviceMask-01291", - "text": " deviceMask must not be zero" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-swapchain-parameter", - "text": " swapchain must be a valid VkSwapchainKHR handle" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-parameter", - "text": " If semaphore is not VK_NULL_HANDLE, semaphore must be a valid VkSemaphore handle" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-fence-parameter", - "text": " If fence is not VK_NULL_HANDLE, fence must be a valid VkFence handle" - }, - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-commonparent", - "text": " Each of fence, semaphore, and swapchain that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkAcquireNextImageInfoKHR-semaphore-03266", - "text": " semaphore must have a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" - } - ] - }, - "vkQueuePresentKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01292", - "text": " Each element of pSwapchains member of pPresentInfo must be a swapchain that is created for a surface for which presentation is supported from queue as determined using a call to vkGetPhysicalDeviceSurfaceSupportKHR" - }, - { - "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01294", - "text": " When a semaphore wait operation referring to a binary semaphore defined by the elements of the pWaitSemaphores member of pPresentInfo executes on queue, there must be no other queues waiting on the same semaphore" - }, - { - "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-01295", - "text": " All elements of the pWaitSemaphores member of pPresentInfo must be semaphores that are signaled, or have semaphore signal operations previously submitted for execution" - }, - { - "vuid": "VUID-vkQueuePresentKHR-queue-parameter", - "text": " queue must be a valid VkQueue handle" - }, - { - "vuid": "VUID-vkQueuePresentKHR-pPresentInfo-parameter", - "text": " pPresentInfo must be a valid pointer to a valid VkPresentInfoKHR structure" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ - { - "vuid": "VUID-vkQueuePresentKHR-pSwapchains-01293", - "text": " If more than one member of pSwapchains was created from a display surface, all display surfaces referenced that refer to the same display must use the same display mode" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03267", - "text": " All elements of the pWaitSemaphores member of pPresentInfo must be created with a VkSemaphoreType of VK_SEMAPHORE_TYPE_BINARY" - }, - { - "vuid": "VUID-vkQueuePresentKHR-pWaitSemaphores-03268", - "text": " All elements of the pWaitSemaphores member of pPresentInfo must reference a semaphore signal operation that has been submitted for execution and any semaphore signal operations on which it depends (if any) must have also been submitted for execution" - } - ] - }, - "VkPresentInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+!(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01296", - "text": " Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR layout at the time the operation is executed on a VkDevice" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_shared_presentable_image)": [ - { - "vuid": "VUID-VkPresentInfoKHR-pImageIndices-01430", - "text": " Each element of pImageIndices must be the index of a presentable image acquired from the swapchain specified by the corresponding element of the pSwapchains array, and the presented image subresource must be in the VK_IMAGE_LAYOUT_PRESENT_SRC_KHR or VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR layout at the time the operation is executed on a VkDevice" - } - ], - "(VK_KHR_surface)+(VK_KHR_swapchain)": [ - { - "vuid": "VUID-VkPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_INFO_KHR" - }, - { - "vuid": "VUID-VkPresentInfoKHR-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkDeviceGroupPresentInfoKHR, VkDisplayPresentInfoKHR, VkPresentFrameTokenGGP, VkPresentRegionsKHR, or VkPresentTimesInfoGOOGLE" - }, - { - "vuid": "VUID-VkPresentInfoKHR-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPresentInfoKHR-pWaitSemaphores-parameter", - "text": " If waitSemaphoreCount is not 0, pWaitSemaphores must be a valid pointer to an array of waitSemaphoreCount valid VkSemaphore handles" - }, - { - "vuid": "VUID-VkPresentInfoKHR-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" - }, - { - "vuid": "VUID-VkPresentInfoKHR-pImageIndices-parameter", - "text": " pImageIndices must be a valid pointer to an array of swapchainCount uint32_t values" - }, - { - "vuid": "VUID-VkPresentInfoKHR-pResults-parameter", - "text": " If pResults is not NULL, pResults must be a valid pointer to an array of swapchainCount VkResult values" - }, - { - "vuid": "VUID-VkPresentInfoKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" - }, - { - "vuid": "VUID-VkPresentInfoKHR-commonparent", - "text": " Both of the elements of pSwapchains, and the elements of pWaitSemaphores that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "VkPresentRegionsKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ - { - "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-01260", - "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentRegionsKHR structure" - }, - { - "vuid": "VUID-VkPresentRegionsKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR" - }, - { - "vuid": "VUID-VkPresentRegionsKHR-pRegions-parameter", - "text": " If pRegions is not NULL, pRegions must be a valid pointer to an array of swapchainCount valid VkPresentRegionKHR structures" - }, - { - "vuid": "VUID-VkPresentRegionsKHR-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" - } - ] - }, - "VkPresentRegionKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ - { - "vuid": "VUID-VkPresentRegionKHR-pRectangles-parameter", - "text": " If rectangleCount is not 0, and pRectangles is not NULL, pRectangles must be a valid pointer to an array of rectangleCount valid VkRectLayerKHR structures" - } - ] - }, - "VkRectLayerKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_incremental_present)": [ - { - "vuid": "VUID-VkRectLayerKHR-offset-01261", - "text": " The sum of offset and extent must be no greater than the imageExtent member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR" - }, - { - "vuid": "VUID-VkRectLayerKHR-layer-01262", - "text": " layer must be less than the imageArrayLayers member of the VkSwapchainCreateInfoKHR structure passed to vkCreateSwapchainKHR" - } - ] - }, - "VkDisplayPresentInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_KHR_display_swapchain)": [ - { - "vuid": "VUID-VkDisplayPresentInfoKHR-srcRect-01257", - "text": " srcRect must specify a rectangular region that is a subset of the image being presented" - }, - { - "vuid": "VUID-VkDisplayPresentInfoKHR-dstRect-01258", - "text": " dstRect must specify a rectangular region that is a subset of the visibleRegion parameter of the display mode the swapchain being presented uses" - }, - { - "vuid": "VUID-VkDisplayPresentInfoKHR-persistentContent-01259", - "text": " If the persistentContent member of the VkDisplayPropertiesKHR structure returned by vkGetPhysicalDeviceDisplayPropertiesKHR for the display the present operation targets then persistent must be VK_FALSE" - }, - { - "vuid": "VUID-VkDisplayPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR" - } - ] - }, - "VkDeviceGroupPresentInfoKHR": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_VERSION_1_1,VK_KHR_device_group)": [ - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-swapchainCount-01297", - "text": " swapchainCount must equal 0 or VkPresentInfoKHR::swapchainCount" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01298", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01299", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR, then each element of pDeviceMasks must have exactly one bit set, and some physical device in the logical device must include that bit in its VkDeviceGroupPresentCapabilitiesKHR::presentMask" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01300", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR, then each element of pDeviceMasks must have a value for which all set bits are set in one of the elements of VkDeviceGroupPresentCapabilitiesKHR::presentMask" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01301", - "text": " If mode is VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR, then for each bit set in each element of pDeviceMasks, the corresponding element of VkDeviceGroupPresentCapabilitiesKHR::presentMask must be non-zero" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-01302", - "text": " The value of each element of pDeviceMasks must be equal to the device mask passed in VkAcquireNextImageInfoKHR::deviceMask when the image index was last acquired" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-01303", - "text": " mode must have exactly one bit set, and that bit must have been included in VkDeviceGroupSwapchainCreateInfoKHR::modes" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-pDeviceMasks-parameter", - "text": " If swapchainCount is not 0, pDeviceMasks must be a valid pointer to an array of swapchainCount uint32_t values" - }, - { - "vuid": "VUID-VkDeviceGroupPresentInfoKHR-mode-parameter", - "text": " mode must be a valid VkDeviceGroupPresentModeFlagBitsKHR value" - } - ] - }, - "VkPresentTimesInfoGOOGLE": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GOOGLE_display_timing)": [ - { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-01247", - "text": " swapchainCount must be the same value as VkPresentInfoKHR::swapchainCount, where VkPresentInfoKHR is included in the pNext chain of this VkPresentTimesInfoGOOGLE structure" - }, - { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE" - }, - { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-pTimes-parameter", - "text": " If pTimes is not NULL, pTimes must be a valid pointer to an array of swapchainCount VkPresentTimeGOOGLE structures" - }, - { - "vuid": "VUID-VkPresentTimesInfoGOOGLE-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" - } - ] - }, - "VkPresentFrameTokenGGP": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_GGP_frame_token)": [ - { - "vuid": "VUID-VkPresentFrameTokenGGP-frameToken-02680", - "text": " frameToken must be a valid GgpFrameToken" - }, - { - "vuid": "VUID-VkPresentFrameTokenGGP-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP" - } - ] - }, - "vkSetHdrMetadataEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [ - { - "vuid": "VUID-vkSetHdrMetadataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkSetHdrMetadataEXT-pSwapchains-parameter", - "text": " pSwapchains must be a valid pointer to an array of swapchainCount valid VkSwapchainKHR handles" - }, - { - "vuid": "VUID-vkSetHdrMetadataEXT-pMetadata-parameter", - "text": " pMetadata must be a valid pointer to an array of swapchainCount valid VkHdrMetadataEXT structures" - }, - { - "vuid": "VUID-vkSetHdrMetadataEXT-swapchainCount-arraylength", - "text": " swapchainCount must be greater than 0" - }, - { - "vuid": "VUID-vkSetHdrMetadataEXT-commonparent", - "text": " Both of device, and the elements of pSwapchains must have been created, allocated, or retrieved from the same VkInstance" - } - ] - }, - "VkHdrMetadataEXT": { - "(VK_KHR_surface)+(VK_KHR_swapchain)+(VK_EXT_hdr_metadata)": [ - { - "vuid": "VUID-VkHdrMetadataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_HDR_METADATA_EXT" - }, - { - "vuid": "VUID-VkHdrMetadataEXT-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkCreateDeferredOperationKHR": { - "(VK_KHR_deferred_host_operations)": [ - { - "vuid": "VUID-vkCreateDeferredOperationKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreateDeferredOperationKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDeferredOperationKHR-pDeferredOperation-parameter", - "text": " pDeferredOperation must be a valid pointer to a VkDeferredOperationKHR handle" - } - ] - }, - "vkDeferredOperationJoinKHR": { - "(VK_KHR_deferred_host_operations)": [ - { - "vuid": "VUID-vkDeferredOperationJoinKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parameter", - "text": " operation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkDeferredOperationJoinKHR-operation-parent", - "text": " operation must have been created, allocated, or retrieved from device" - } - ] - }, - "vkDestroyDeferredOperationKHR": { - "(VK_KHR_deferred_host_operations)": [ - { - "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03434", - "text": " If VkAllocationCallbacks were provided when operation was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03435", - "text": " If no VkAllocationCallbacks were provided when operation was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-03436", - "text": " operation must be completed" - }, - { - "vuid": "VUID-vkDestroyDeferredOperationKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parameter", - "text": " If operation is not VK_NULL_HANDLE, operation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkDestroyDeferredOperationKHR-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyDeferredOperationKHR-operation-parent", - "text": " If operation is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetDeferredOperationMaxConcurrencyKHR": { - "(VK_KHR_deferred_host_operations)": [ - { - "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parameter", - "text": " operation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkGetDeferredOperationMaxConcurrencyKHR-operation-parent", - "text": " operation must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetDeferredOperationResultKHR": { - "(VK_KHR_deferred_host_operations)": [ - { - "vuid": "VUID-vkGetDeferredOperationResultKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parameter", - "text": " operation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkGetDeferredOperationResultKHR-operation-parent", - "text": " operation must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCreatePrivateDataSlotEXT": { - "(VK_EXT_private_data)": [ - { - "vuid": "VUID-vkCreatePrivateDataSlotEXT-privateData-04564", - "text": " The privateData feature must be enabled" - }, - { - "vuid": "VUID-vkCreatePrivateDataSlotEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCreatePrivateDataSlotEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkPrivateDataSlotCreateInfoEXT structure" - }, - { - "vuid": "VUID-vkCreatePrivateDataSlotEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreatePrivateDataSlotEXT-pPrivateDataSlot-parameter", - "text": " pPrivateDataSlot must be a valid pointer to a VkPrivateDataSlotEXT handle" - } - ] - }, - "VkPrivateDataSlotCreateInfoEXT": { - "(VK_EXT_private_data)": [ - { - "vuid": "VUID-VkPrivateDataSlotCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkPrivateDataSlotCreateInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPrivateDataSlotCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - } - ] - }, - "vkDestroyPrivateDataSlotEXT": { - "(VK_EXT_private_data)": [ - { - "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04062", - "text": " If VkAllocationCallbacks were provided when privateDataSlot was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-04063", - "text": " If no VkAllocationCallbacks were provided when privateDataSlot was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyPrivateDataSlotEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parameter", - "text": " If privateDataSlot is not VK_NULL_HANDLE, privateDataSlot must be a valid VkPrivateDataSlotEXT handle" - }, - { - "vuid": "VUID-vkDestroyPrivateDataSlotEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyPrivateDataSlotEXT-privateDataSlot-parent", - "text": " If privateDataSlot is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkSetPrivateDataEXT": { - "(VK_EXT_private_data)": [ - { - "vuid": "VUID-vkSetPrivateDataEXT-objectHandle-04016", - "text": " objectHandle must be device or a child of device" - }, - { - "vuid": "VUID-vkSetPrivateDataEXT-objectHandle-04017", - "text": " objectHandle must be a valid handle to an object of type objectType" - }, - { - "vuid": "VUID-vkSetPrivateDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkSetPrivateDataEXT-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" - }, - { - "vuid": "VUID-vkSetPrivateDataEXT-privateDataSlot-parameter", - "text": " privateDataSlot must be a valid VkPrivateDataSlotEXT handle" - }, - { - "vuid": "VUID-vkSetPrivateDataEXT-privateDataSlot-parent", - "text": " privateDataSlot must have been created, allocated, or retrieved from device" - } - ] - }, - "vkGetPrivateDataEXT": { - "(VK_EXT_private_data)": [ - { - "vuid": "VUID-vkGetPrivateDataEXT-objectType-04018", - "text": " objectType must be VK_OBJECT_TYPE_DEVICE, or an object type whose parent is VkDevice" - }, - { - "vuid": "VUID-vkGetPrivateDataEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetPrivateDataEXT-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" - }, - { - "vuid": "VUID-vkGetPrivateDataEXT-privateDataSlot-parameter", - "text": " privateDataSlot must be a valid VkPrivateDataSlotEXT handle" - }, - { - "vuid": "VUID-vkGetPrivateDataEXT-pData-parameter", - "text": " pData must be a valid pointer to a uint64_t value" - }, - { - "vuid": "VUID-vkGetPrivateDataEXT-privateDataSlot-parent", - "text": " privateDataSlot must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCmdTraceRaysNV": { - "core": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-None-03429", - "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing shader pipeline" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-04624", - "text": " commandBuffer must not be a protected command buffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-maxRecursionDepth-03625", - "text": " This command must not cause a trace ray instruction to be executed from a shader invocation with a recursion depth greater than the value of maxRecursionDepth used to create the bound ray tracing pipeline" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-04042", - "text": " If raygenShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455", - "text": " raygenShaderBindingOffset must be less than the size of raygenShaderBindingTableBuffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02456", - "text": " raygenShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-04043", - "text": " If missShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457", - "text": " missShaderBindingOffset must be less than the size of missShaderBindingTableBuffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02458", - "text": " missShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-04044", - "text": " If hitShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459", - "text": " hitShaderBindingOffset must be less than the size of hitShaderBindingTableBuffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02460", - "text": " hitShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-04045", - "text": " If callableShaderBindingTableBuffer is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461", - "text": " callableShaderBindingOffset must be less than the size of callableShaderBindingTableBuffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02462", - "text": " callableShaderBindingOffset must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02463", - "text": " missShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02464", - "text": " hitShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02465", - "text": " callableShaderBindingStride must be a multiple of VkPhysicalDeviceRayTracingPropertiesNV::shaderGroupHandleSize" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingStride-02466", - "text": " missShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingStride-02467", - "text": " hitShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingStride-02468", - "text": " callableShaderBindingStride must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-width-02469", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0]" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-height-02470", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1]" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-depth-02471", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2]" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-raygenShaderBindingTableBuffer-parameter", - "text": " raygenShaderBindingTableBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-missShaderBindingTableBuffer-parameter", - "text": " If missShaderBindingTableBuffer is not VK_NULL_HANDLE, missShaderBindingTableBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-hitShaderBindingTableBuffer-parameter", - "text": " If hitShaderBindingTableBuffer is not VK_NULL_HANDLE, hitShaderBindingTableBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-callableShaderBindingTableBuffer-parameter", - "text": " If callableShaderBindingTableBuffer is not VK_NULL_HANDLE, callableShaderBindingTableBuffer must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdTraceRaysNV-commonparent", - "text": " Each of callableShaderBindingTableBuffer, commandBuffer, hitShaderBindingTableBuffer, missShaderBindingTableBuffer, and raygenShaderBindingTableBuffer that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdTraceRaysKHR": { - "core": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-03429", - "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing shader pipeline" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-maxPipelineRayRecursionDepth-03679", - "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03680", - "text": " If the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03681", - "text": " The buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pRayGenShaderBindingTable-03682", - "text": " pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-size-04023", - "text": " The size member of pRayGenShaderBindingTable must be equal to its stride member" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03683", - "text": " If the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03684", - "text": " The buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-03685", - "text": " pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-stride-03686", - "text": " The stride member of pMissShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-stride-04029", - "text": " The stride member of pMissShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03687", - "text": " If the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03688", - "text": " The buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03689", - "text": " pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-stride-03690", - "text": " The stride member of pHitShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-stride-04035", - "text": " The stride member of pHitShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03691", - "text": " If the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03692", - "text": " The buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-03693", - "text": " pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-stride-03694", - "text": " The stride member of pCallableShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-stride-04041", - "text": " The stride member of pCallableShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-03695", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, the deviceAddress member of pHitShaderBindingTable must not be zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-03696", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the deviceAddress member of pHitShaderBindingTable must not be zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-03697", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the deviceAddress member of pHitShaderBindingTable must not be zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-03511", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable must contain a valid miss shader" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-03512", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an any-hit shader must not be set to zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-03513", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute a closest hit shader must not be set to zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-03514", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an intersection shader must not be set to zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03720", - "text": " Any hit group entries in pHitShaderBindingTable accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-03721", - "text": " Any hit group entries in pHitShaderBindingTable accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-04625", - "text": " commandBuffer must not be a protected command buffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-width-03626", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-height-03627", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-depth-03628", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-width-03629", - "text": " width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pRaygenShaderBindingTable-parameter", - "text": " pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pMissShaderBindingTable-parameter", - "text": " pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pHitShaderBindingTable-parameter", - "text": " pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-pCallableShaderBindingTable-parameter", - "text": " pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdTraceRaysKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkStridedDeviceAddressRegionKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04631", - "text": " If size is not zero, all addresses between deviceAddress and deviceAddress + size - 1 must be in the buffer device address range of the same buffer" - }, - { - "vuid": "VUID-VkStridedDeviceAddressRegionKHR-size-04632", - "text": " If size is not zero, stride must be less than the size of the buffer from which deviceAddress was queried" - } - ] - }, - "vkCmdTraceRaysIndirectKHR": { - "core": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553", - "text": " If a VkSampler created with magFilter or minFilter equal to VK_FILTER_LINEAR and compareEnable equal to VK_FALSE is used to sample a VkImageView as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02691", - "text": " If a VkImageView is accessed using atomic operations as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02697", - "text": " For each set n that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a descriptor set must have been bound to n at the same pipeline bind point, with a VkPipelineLayout that is compatible for set n, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02698", - "text": " For each push constant that is statically used by the VkPipeline bound to the pipeline bind point used by this command, a push constant value must have been set for the same pipeline bind point, with a VkPipelineLayout that is compatible for push constants, with the VkPipelineLayout used to create the current VkPipeline, as described in Pipeline Layout Compatibility" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02699", - "text": " Descriptors in each bound descriptor set, specified via vkCmdBindDescriptorSets, must be valid if they are statically used by the VkPipeline bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02700", - "text": " A valid pipeline must be bound to the pipeline bind point used by this command" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command requires any dynamic state, that state must have been set for commandBuffer, and done so after any previously bound pipeline with the corresponding state not specified as dynamic" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02859", - "text": " There must not have been any calls to dynamic state setting commands for any state not specified as dynamic in the VkPipeline object bound to the pipeline bind point used by this command, since that pipeline was bound" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02702", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used to sample from any VkImage with a VkImageView of the type VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, VK_IMAGE_VIEW_TYPE_1D_ARRAY, VK_IMAGE_VIEW_TYPE_2D_ARRAY or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02703", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions with ImplicitLod, Dref or Proj in their name, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02704", - "text": " If the VkPipeline object bound to the pipeline bind point used by this command accesses a VkSampler object that uses unnormalized coordinates, that sampler must not be used with any of the SPIR-V OpImageSample* or OpImageSparseSample* instructions that includes a LOD bias or any offset values, in any shader stage" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02705", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a uniform buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02706", - "text": " If the robust buffer access feature is not enabled, and if the VkPipeline object bound to the pipeline bind point used by this command accesses a storage buffer, it must not access values outside of the range of the buffer as specified in the descriptor set bound to the same pipeline bind point" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-04115", - "text": " If a VkImageView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-OpImageWrite-04469", - "text": " If a VkBufferView is accessed using OpImageWrite as a result of this command, then the Type of the Texel operand of that instruction must have at least as many components as the image view’s format." - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-03429", - "text": " Any shader group handle referenced by this call must have been queried from the currently bound ray tracing shader pipeline" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-maxPipelineRayRecursionDepth-03679", - "text": " This command must not cause a shader call instruction to be executed from a shader invocation with a recursion depth greater than the value of maxPipelineRayRecursionDepth used to create the bound ray tracing pipeline" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03680", - "text": " If the buffer from which pRayGenShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03681", - "text": " The buffer from which the pRayGenShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRayGenShaderBindingTable-03682", - "text": " pRayGenShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-size-04023", - "text": " The size member of pRayGenShaderBindingTable must be equal to its stride member" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03683", - "text": " If the buffer from which pMissShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03684", - "text": " The buffer from which the pMissShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-03685", - "text": " pMissShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03686", - "text": " The stride member of pMissShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04029", - "text": " The stride member of pMissShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03687", - "text": " If the buffer from which pHitShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03688", - "text": " The buffer from which the pHitShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03689", - "text": " pHitShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03690", - "text": " The stride member of pHitShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04035", - "text": " The stride member of pHitShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03691", - "text": " If the buffer from which pCallableShaderBindingTable->deviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03692", - "text": " The buffer from which the pCallableShaderBindingTable->deviceAddress is queried must have been created with the VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-03693", - "text": " pCallableShaderBindingTable->deviceAddress must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupBaseAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-03694", - "text": " The stride member of pCallableShaderBindingTable must be a multiple of VkPhysicalDeviceRayTracingPipelinePropertiesKHR::shaderGroupHandleAlignment" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-stride-04041", - "text": " The stride member of pCallableShaderBindingTable must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxShaderGroupStride" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03695", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, the deviceAddress member of pHitShaderBindingTable must not be zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03696", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the deviceAddress member of pHitShaderBindingTable must not be zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03697", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the deviceAddress member of pHitShaderBindingTable must not be zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03511", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR, the shader group handle identified by pMissShaderBindingTable must contain a valid miss shader" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03512", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an any-hit shader must not be set to zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03513", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute a closest hit shader must not be set to zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-03514", - "text": " If the currently bound ray tracing pipeline was created with flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, entries in pHitShaderBindingTable accessed as a result of this command in order to execute an intersection shader must not be set to zero" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03720", - "text": " Any hit group entries in pHitShaderBindingTable accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-03721", - "text": " Any hit group entries in pHitShaderBindingTable accessed by this call from a geometry with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR must have been created with VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632", - "text": " If the buffer from which indirectDeviceAddress was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633", - "text": " The buffer from which indirectDeviceAddress was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03634", - "text": " indirectDeviceAddress must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635", - "text": " commandBuffer must not be a protected command buffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03636", - "text": " All device addresses between indirectDeviceAddress and indirectDeviceAddress + sizeof(VkTraceRaysIndirectCommandKHR) - 1 must be in the buffer device address range of the same buffer" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-rayTracingPipelineTraceRaysIndirect-03637", - "text": " the VkPhysicalDeviceRayTracingPipelineFeaturesKHR::rayTracingPipelineTraceRaysIndirect feature must be enabled" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02692", - "text": " If a VkImageView is sampled with VK_FILTER_CUBIC_EXT as a result of this command, then the image view’s format features must contain VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+!(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-None-02693", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must not have a VkImageViewType of VK_IMAGE_VIEW_TYPE_3D, VK_IMAGE_VIEW_TYPE_CUBE, or VK_IMAGE_VIEW_TYPE_CUBE_ARRAY" - } - ], - "(VK_IMG_filter_cubic,VK_EXT_filter_cubic)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT as a result of this command must have a VkImageViewType and format that supports cubic filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubic returned by vkGetPhysicalDeviceImageFormatProperties2" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695", - "text": " Any VkImageView being sampled with VK_FILTER_CUBIC_EXT with a reduction mode of either VK_SAMPLER_REDUCTION_MODE_MIN or VK_SAMPLER_REDUCTION_MODE_MAX as a result of this command must have a VkImageViewType and format that supports cubic filtering together with minmax filtering, as specified by VkFilterCubicImageViewImageFormatPropertiesEXT::filterCubicMinmax returned by vkGetPhysicalDeviceImageFormatProperties2" - } - ], - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-flags-02696", - "text": " Any VkImage created with a VkImageCreateInfo::flags containing VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV sampled as a result of this command must only be sampled using a VkSamplerAddressMode of VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE" - } - ], - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707", - "text": " If commandBuffer is an unprotected command buffer, any resource accessed by the VkPipeline object bound to the pipeline bind point used by this command must not be a protected resource" - } - ], - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04470", - "text": " If a VkImageView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04471", - "text": " If a VkImageView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04472", - "text": " If a VkBufferView with a VkFormat that has a 64-bit channel width is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 64." - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-SampledType-04473", - "text": " If a VkBufferView with a VkFormat that has a channel width less than 64-bit is accessed as a result of this command, the SampledType of the OpTypeImage operand of that instruction must have a Width of 32." - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04474", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkImage objects created with the VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-sparseImageInt64Atomics-04475", - "text": " If the sparseImageInt64Atomics feature is not enabled, VkBuffer objects created with the VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT flag must not be accessed by atomic instructions through an OpTypeImage with a SampledType with a Width of 64 by this command." - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pRaygenShaderBindingTable-parameter", - "text": " pRaygenShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pMissShaderBindingTable-parameter", - "text": " pMissShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pHitShaderBindingTable-parameter", - "text": " pHitShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-pCallableShaderBindingTable-parameter", - "text": " pCallableShaderBindingTable must be a valid pointer to a valid VkStridedDeviceAddressRegionKHR structure" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdTraceRaysIndirectKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkTraceRaysIndirectCommandKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing)+(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03638", - "text": " width must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[0] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[0]" - }, - { - "vuid": "VUID-VkTraceRaysIndirectCommandKHR-height-03639", - "text": " height must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[1] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[1]" - }, - { - "vuid": "VUID-VkTraceRaysIndirectCommandKHR-depth-03640", - "text": " depth must be less than or equal to VkPhysicalDeviceLimits::maxComputeWorkGroupCount[2] {times} VkPhysicalDeviceLimits::maxComputeWorkGroupSize[2]" - }, - { - "vuid": "VUID-VkTraceRaysIndirectCommandKHR-width-03641", - "text": " width {times} height {times} depth must be less than or equal to VkPhysicalDeviceRayTracingPipelinePropertiesKHR::maxRayDispatchInvocationCount" - } - ] - }, - "vkCmdBuildAccelerationStructureNV": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-geometryCount-02241", - "text": " geometryCount must be less than or equal to VkPhysicalDeviceRayTracingPropertiesNV::maxGeometryCount" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-02488", - "text": " dst must have been created with compatible VkAccelerationStructureInfoNV where VkAccelerationStructureInfoNV::type and VkAccelerationStructureInfoNV::flags are identical, VkAccelerationStructureInfoNV::instanceCount and VkAccelerationStructureInfoNV::geometryCount for dst are greater than or equal to the build size and each geometry in VkAccelerationStructureInfoNV::pGeometries for dst has greater than or equal to the number of vertices, indices, and AABBs" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02489", - "text": " If update is VK_TRUE, src must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02490", - "text": " If update is VK_TRUE, src must have been built before with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV set in VkAccelerationStructureInfoNV::flags" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02491", - "text": " If update is VK_FALSE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-02492", - "text": " If update is VK_TRUE, the size member of the VkMemoryRequirements structure returned from a call to vkGetAccelerationStructureMemoryRequirementsNV with VkAccelerationStructureMemoryRequirementsInfoNV::accelerationStructure set to dst and VkAccelerationStructureMemoryRequirementsInfoNV::type set to VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV must be less than or equal to the size of scratch minus scratchOffset" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-03522", - "text": " scratch must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-03523", - "text": " If instanceData is not VK_NULL_HANDLE, instanceData must have been created with VK_BUFFER_USAGE_RAY_TRACING_BIT_NV usage flag" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-accelerationStructureReference-03786", - "text": " Each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in instanceData must be a valid device address containing a value obtained from vkGetAccelerationStructureHandleNV" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03524", - "text": " If update is VK_TRUE, then objects that were previously active must not be made inactive as per Inactive Primitives and Instances" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03525", - "text": " If update is VK_TRUE, then objects that were previously inactive must not be made active as per Inactive Primitives and Instances" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-update-03526", - "text": " If update is VK_TRUE, the src and dst objects must either be the same object or not have any memory aliasing" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkAccelerationStructureInfoNV structure" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-instanceData-parameter", - "text": " If instanceData is not VK_NULL_HANDLE, instanceData must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureNV handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-src-parameter", - "text": " If src is not VK_NULL_HANDLE, src must be a valid VkAccelerationStructureNV handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-scratch-parameter", - "text": " scratch must be a valid VkBuffer handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructureNV-commonparent", - "text": " Each of commandBuffer, dst, instanceData, scratch, and src that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdBuildAccelerationStructuresKHR": { - "core": [ - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-mode-04628", - "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-srcAccelerationStructure-04629", - "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-04630", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03403", - "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03698", - "text": " The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03800", - "text": " The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03699", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03700", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03663", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03664", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-None-03407", - "text": " The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03701", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03702", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03703", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03704", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-scratchData-03705", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-dstAccelerationStructure-03706", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03666", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03667", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have been built before with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03668", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03758", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03759", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03760", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03761", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03762", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03763", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03764", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03765", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03766", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData member was NULL when srcAccelerationStructure was last built, then it must be NULL." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03767", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData member was not NULL when srcAccelerationStructure was last built, then it may not be NULL." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03768", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced index must be the same as the corresponding index value when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-primitiveCount-03769", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-firstVertex-03770", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03801", - "text": " For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding {maxinstancecheck} must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03707", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03708", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03709", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03671", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03672", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-geometry-03673", - "text": " The buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03674", - "text": " The buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03802", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03803", - "text": " For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03710", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03804", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03805", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03711", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03806", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03807", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03712", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03808", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03809", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03810", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03811", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03812", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03714", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03715", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03716", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03717", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03813", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03814", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03815", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-03675", - "text": " For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676", - "text": " Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter", - "text": " ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresKHR-infoCount-arraylength", - "text": " infoCount must be greater than 0" - } - ] - }, - "vkCmdBuildAccelerationStructuresIndirectKHR": { - "core": [ - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-mode-04628", - "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-srcAccelerationStructure-04629", - "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-04630", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03403", - "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03698", - "text": " The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03800", - "text": " The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03699", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03700", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03663", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03664", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-None-03407", - "text": " The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03701", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03702", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03703", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03704", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-scratchData-03705", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-dstAccelerationStructure-03706", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03666", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03667", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have been built before with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03668", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03758", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03759", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03760", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03761", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03762", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03763", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03764", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03765", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03766", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData member was NULL when srcAccelerationStructure was last built, then it must be NULL." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03767", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData member was not NULL when srcAccelerationStructure was last built, then it may not be NULL." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03768", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced index must be the same as the corresponding index value when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-primitiveCount-03769", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-firstVertex-03770", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03801", - "text": " For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding {maxinstancecheck} must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03707", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03708", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03709", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03671", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03672", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.deviceAddress and pInfos[i].scratchData.deviceAddress + N - 1 must be in the buffer device address range of the same buffer, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-geometry-03673", - "text": " The buffers from which the buffer device addresses for all of the geometry.triangles.vertexData, geometry.triangles.indexData, geometry.triangles.transformData, geometry.aabbs.data, and geometry.instances.data members of all pInfos[i].pGeometries and pInfos[i].ppGeometries must have been created with the VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR usage flag" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03674", - "text": " The buffer from which the buffer device address pInfos[i].scratchData.deviceAddress is queried must have been created with VK_BUFFER_USAGE_STORAGE_BUFFER_BIT usage flag" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03802", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03803", - "text": " For each element of pInfos, if scratchData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03710", - "text": " For each element of pInfos, its scratchData.deviceAddress member must be a multiple of VkPhysicalDeviceAccelerationStructurePropertiesKHR::minAccelerationStructureScratchOffsetAlignment" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03804", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03805", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.vertexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03711", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.deviceAddress must be aligned to the size in bytes of the smallest component of the format in vertexFormat" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03806", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03807", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, if geometry.triangles.indexData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03712", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, and with geometry.triangles.indexType not equal to VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.deviceAddress must be aligned to the size in bytes of the type in indexType" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03808", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03809", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03810", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.deviceAddress is not 0, it must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03811", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03812", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, if geometry.aabbs.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03714", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.deviceAddress must be aligned to 8 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03715", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_FALSE, geometry.instances.data.deviceAddress must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03716", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, geometry.instances.data.deviceAddress must be aligned to 8 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03717", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.arrayOfPointers is VK_TRUE, each element of geometry.instances.data.deviceAddress in device memory must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03813", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.deviceAddress must be a valid device address obtained from vkGetBufferDeviceAddress" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03814", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, if geometry.instances.data.deviceAddress is the address of a non-sparse buffer then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03815", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.deviceAddress must be a valid device address containing a value obtained from vkGetAccelerationStructureDeviceAddressKHR" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03645", - "text": " For any element of pIndirectDeviceAddresses, if the buffer from which it was queried is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03646", - "text": " For any element of pIndirectDeviceAddresses[i], all device addresses between pIndirectDeviceAddresses[i] and pIndirectDeviceAddresses[i] + (pInfos[i]→geometryCount {times} pIndirectStrides[i]) - 1 must be in the buffer device address range of the same buffer" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03647", - "text": " For any element of pIndirectDeviceAddresses, the buffer from which it was queried must have been created with the VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT bit set" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03648", - "text": " Each element of pIndirectDeviceAddresses must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-03787", - "text": " Each element of pIndirectStrides must be a multiple of 4" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-03649", - "text": " commandBuffer must not be a protected command buffer" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-accelerationStructureIndirectBuild-03650", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureIndirectBuild feature must be enabled" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-03651", - "text": " Each VkAccelerationStructureBuildRangeInfoKHR structure referenced by any element of pIndirectDeviceAddresses must be a valid VkAccelerationStructureBuildRangeInfoKHR structure" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-03652", - "text": " pInfos[i].dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and pMaxPrimitiveCounts = ppMaxPrimitiveCounts[i]" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-03653", - "text": " Each ppMaxPrimitiveCounts[i][j] must be greater than or equal to the the primitiveCount value specified by the VkAccelerationStructureBuildRangeInfoKHR structure located at pIndirectDeviceAddresses[i] + (j {times} pIndirectStrides[i])" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectDeviceAddresses-parameter", - "text": " pIndirectDeviceAddresses must be a valid pointer to an array of infoCount VkDeviceAddress values" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-pIndirectStrides-parameter", - "text": " pIndirectStrides must be a valid pointer to an array of infoCount uint32_t values" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-ppMaxPrimitiveCounts-parameter", - "text": " ppMaxPrimitiveCounts must be a valid pointer to an array of infoCount uint32_t values" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdBuildAccelerationStructuresIndirectKHR-infoCount-arraylength", - "text": " infoCount must be greater than 0" - } - ] - }, - "VkAccelerationStructureBuildGeometryInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03654", - "text": " type must not be VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-03788", - "text": " Only one of pGeometries or ppGeometries can be a valid pointer, the other must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03789", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, the geometryType member of elements of either pGeometries or ppGeometries must be VK_GEOMETRY_TYPE_INSTANCES_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03790", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, geometryCount must be 1" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03791", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR the geometryType member of elements of either pGeometries or ppGeometries must not be VK_GEOMETRY_TYPE_INSTANCES_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03792", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then the geometryType member of each geometry in either pGeometries or ppGeometries must be the same" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03793", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR then geometryCount must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxGeometryCount" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03794", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_AABBS_KHR, the total number of AABBs in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-03795", - "text": " If type is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR and the geometryType member of either pGeometries or ppGeometries is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the total number of triangles in all geometries must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxPrimitiveCount" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-03796", - "text": " If flags has the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR bit set, then it must not have the VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR bit set" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-type-parameter", - "text": " type must be a valid VkAccelerationStructureTypeKHR value" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-flags-parameter", - "text": " flags must be a valid combination of VkBuildAccelerationStructureFlagBitsKHR values" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-pGeometries-parameter", - "text": " If geometryCount is not 0, and pGeometries is not NULL, pGeometries must be a valid pointer to an array of geometryCount valid VkAccelerationStructureGeometryKHR structures" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-ppGeometries-parameter", - "text": " If geometryCount is not 0, and ppGeometries is not NULL, ppGeometries must be a valid pointer to an array of geometryCount valid pointers to valid VkAccelerationStructureGeometryKHR structures" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-scratchData-parameter", - "text": " scratchData must be a valid VkDeviceOrHostAddressKHR union" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildGeometryInfoKHR-commonparent", - "text": " Both of dstAccelerationStructure, and srcAccelerationStructure that are valid handles of non-ignored parameters must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "VkAccelerationStructureGeometryKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03541", - "text": " If geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03542", - "text": " If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-03543", - "text": " If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-geometryType-parameter", - "text": " geometryType must be a valid VkGeometryTypeKHR value" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-triangles-parameter", - "text": " If geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, the triangles member of geometry must be a valid VkAccelerationStructureGeometryTrianglesDataKHR structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-aabbs-parameter", - "text": " If geometryType is VK_GEOMETRY_TYPE_AABBS_KHR, the aabbs member of geometry must be a valid VkAccelerationStructureGeometryAabbsDataKHR structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-instances-parameter", - "text": " If geometryType is VK_GEOMETRY_TYPE_INSTANCES_KHR, the instances member of geometry must be a valid VkAccelerationStructureGeometryInstancesDataKHR structure" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryKHR-flags-parameter", - "text": " flags must be a valid combination of VkGeometryFlagBitsKHR values" - } - ] - }, - "VkAccelerationStructureGeometryTrianglesDataKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-maxVertex-03655", - "text": " maxVertex must be greater than 0" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03735", - "text": " vertexStride must be a multiple of the size in bytes of the smallest component of vertexFormat" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexStride-03819", - "text": " vertexStride must be less than or equal to 232-1" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-03797", - "text": " vertexFormat must support the VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR in VkFormatProperties::bufferFeatures as returned by vkGetPhysicalDeviceFormatProperties2" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-03798", - "text": " indexType must be VK_INDEX_TYPE_UINT16, VK_INDEX_TYPE_UINT32, or VK_INDEX_TYPE_NONE_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexFormat-parameter", - "text": " vertexFormat must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-vertexData-parameter", - "text": " vertexData must be a valid VkDeviceOrHostAddressConstKHR union" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexType-parameter", - "text": " indexType must be a valid VkIndexType value" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-indexData-parameter", - "text": " If indexData is not 0, indexData must be a valid VkDeviceOrHostAddressConstKHR union" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryTrianglesDataKHR-transformData-parameter", - "text": " If transformData is not 0, transformData must be a valid VkDeviceOrHostAddressConstKHR union" - } - ] - }, - "VkTransformMatrixKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkTransformMatrixKHR-matrix-03799", - "text": " The first three columns of matrix must define an invertible 3x3 matrix" - } - ] - }, - "VkAccelerationStructureGeometryAabbsDataKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03545", - "text": " stride must be a multiple of 8" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-stride-03820", - "text": " stride must be less than or equal to 232-1" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryAabbsDataKHR-data-parameter", - "text": " data must be a valid VkDeviceOrHostAddressConstKHR union" - } - ] - }, - "VkAabbPositionsKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAabbPositionsKHR-minX-03546", - "text": " minX must be less than or equal to maxX" - }, - { - "vuid": "VUID-VkAabbPositionsKHR-minY-03547", - "text": " minY must be less than or equal to maxY" - }, - { - "vuid": "VUID-VkAabbPositionsKHR-minZ-03548", - "text": " minZ must be less than or equal to maxZ" - } - ] - }, - "VkAccelerationStructureGeometryInstancesDataKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureGeometryInstancesDataKHR-data-parameter", - "text": " data must be a valid VkDeviceOrHostAddressConstKHR union" - } - ] - }, - "VkAccelerationStructureInstanceKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureInstanceKHR-flags-parameter", - "text": " flags must be a valid combination of VkGeometryInstanceFlagBitsKHR values" - } - ] - }, - "VkAccelerationStructureBuildRangeInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03656", - "text": " For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry uses indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::indexData must be a multiple of the element size of VkAccelerationStructureGeometryTrianglesDataKHR::indexType" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03657", - "text": " For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, if the geometry doesn’t use indices, the offset primitiveOffset from VkAccelerationStructureGeometryTrianglesDataKHR::vertexData must be a multiple of the component size of VkAccelerationStructureGeometryTrianglesDataKHR::vertexFormat" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-transformOffset-03658", - "text": " For geometries of type VK_GEOMETRY_TYPE_TRIANGLES_KHR, the offset transformOffset from VkAccelerationStructureGeometryTrianglesDataKHR::transformData must be a multiple of 16" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03659", - "text": " For geometries of type VK_GEOMETRY_TYPE_AABBS_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryAabbsDataKHR::data must be a multiple of 8" - }, - { - "vuid": "VUID-VkAccelerationStructureBuildRangeInfoKHR-primitiveOffset-03660", - "text": " For geometries of type VK_GEOMETRY_TYPE_INSTANCES_KHR, the offset primitiveOffset from VkAccelerationStructureGeometryInstancesDataKHR::data must be a multiple of 16" - } - ] - }, - "vkCmdWriteAccelerationStructuresPropertiesKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02493", - "text": " queryPool must have been created with a queryType matching queryType" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-02494", - "text": " The queries identified by queryPool and firstQuery must be unavailable" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-buffer-03736", - "text": " The buffer used to create each acceleration structure in pAccelerationStructures must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-commonparent", - "text": " Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431", - "text": " All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesKHR-queryType-03432", - "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" - } - ] - }, - "vkCmdWriteAccelerationStructuresPropertiesNV": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03755", - "text": " queryPool must have been created with a queryType matching queryType" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-03756", - "text": " The queries identified by queryPool and firstQuery must be unavailable" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructure-03757", - "text": " accelerationStructure must be bound completely and contiguously to a single VkDeviceMemory object via vkBindAccelerationStructureMemoryNV" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureNV handles" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryPool-parameter", - "text": " queryPool must be a valid VkQueryPool handle" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-commonparent", - "text": " Each of commandBuffer, queryPool, and the elements of pAccelerationStructures must have been created, allocated, or retrieved from the same VkDevice" - } - ], - "core": [ - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-accelerationStructures-03431", - "text": " All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR" - }, - { - "vuid": "VUID-vkCmdWriteAccelerationStructuresPropertiesNV-queryType-03432", - "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" - } - ] - }, - "vkCmdCopyAccelerationStructureNV": { - "core": [ - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-03410", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-03411", - "text": " If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03718", - "text": " The buffer used to create src must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-buffer-03719", - "text": " The buffer used to create dst must be bound to device memory" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureNV handle" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-src-parameter", - "text": " src must be a valid VkAccelerationStructureNV handle" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-renderpass", - "text": " This command must only be called outside of a render pass instance" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureNV-commonparent", - "text": " Each of commandBuffer, dst, and src must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdCopyAccelerationStructureKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03737", - "text": " The buffer used to create pInfo->src must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-buffer-03738", - "text": " The buffer used to create pInfo->dst must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkCopyAccelerationStructureInfoKHR": { - "core": [ - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-03410", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR or VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-03411", - "text": " If mode is VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR, src must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03718", - "text": " The buffer used to create src must be bound to device memory" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-buffer-03719", - "text": " The buffer used to create dst must be bound to device memory" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)+(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-src-parameter", - "text": " src must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureInfoKHR-commonparent", - "text": " Both of dst, and src must have been created, allocated, or retrieved from the same VkDevice" - } - ] - }, - "vkCmdCopyAccelerationStructureToMemoryKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03739", - "text": " pInfo->dst.deviceAddress must be a valid device address for a buffer bound to device memory." - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03740", - "text": " pInfo->dst.deviceAddress must be aligned to 256 bytes" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-03741", - "text": " If the buffer pointed to by pInfo->dst.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-None-03559", - "text": " The buffer used to create pInfo->src must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdCopyAccelerationStructureToMemoryKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkCopyAccelerationStructureToMemoryInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-03561", - "text": " The memory pointed to by dst must be at least as large as the serialization size of src, as reported by vkWriteAccelerationStructuresPropertiesKHR or vkCmdWriteAccelerationStructuresPropertiesKHR with a query type of VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-03412", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-src-parameter", - "text": " src must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-dst-parameter", - "text": " dst must be a valid VkDeviceOrHostAddressKHR union" - }, - { - "vuid": "VUID-VkCopyAccelerationStructureToMemoryInfoKHR-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" - } - ] - }, - "vkCmdCopyMemoryToAccelerationStructureKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03742", - "text": " pInfo->src.deviceAddress must be a valid device address for a buffer bound to device memory." - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03743", - "text": " pInfo->src.deviceAddress must be aligned to 256 bytes" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-03744", - "text": " If the buffer pointed to by pInfo->src.deviceAddress is non-sparse then it must be bound completely and contiguously to a single VkDeviceMemory object" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-buffer-03745", - "text": " The buffer used to create pInfo->dst must be bound to device memory" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support compute operations" - }, - { - "vuid": "VUID-vkCmdCopyMemoryToAccelerationStructureKHR-renderpass", - "text": " This command must only be called outside of a render pass instance" - } - ] - }, - "VkCopyMemoryToAccelerationStructureInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-03413", - "text": " mode must be VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR" - }, - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pInfo-03414", - "text": " The data in src must have a format compatible with the destination physical device as returned by vkGetDeviceAccelerationStructureCompatibilityKHR" - }, - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-03746", - "text": " dst must have been created with a size greater than or equal to that used to serialize the data in src" - }, - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR" - }, - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-src-parameter", - "text": " src must be a valid VkDeviceOrHostAddressConstKHR union" - }, - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-dst-parameter", - "text": " dst must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-VkCopyMemoryToAccelerationStructureInfoKHR-mode-parameter", - "text": " mode must be a valid VkCopyAccelerationStructureModeKHR value" - } - ] - }, - "vkGetDeviceAccelerationStructureCompatibilityKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-rayTracingPipeline-03661", - "text": " The rayTracingPipeline or rayQuery feature must be enabled" - }, - { - "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pVersionInfo-parameter", - "text": " pVersionInfo must be a valid pointer to a valid VkAccelerationStructureVersionInfoKHR structure" - }, - { - "vuid": "VUID-vkGetDeviceAccelerationStructureCompatibilityKHR-pCompatibility-parameter", - "text": " pCompatibility must be a valid pointer to a VkAccelerationStructureCompatibilityKHR value" - } - ] - }, - "VkAccelerationStructureVersionInfoKHR": { - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR" - }, - { - "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkAccelerationStructureVersionInfoKHR-pVersionData-parameter", - "text": " pVersionData must be a valid pointer to an array of 2*VK_UUID_SIZE uint8_t values" - } - ] - }, - "vkBuildAccelerationStructuresKHR": { - "core": [ - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-mode-04628", - "text": " The mode member of each element of pInfos must be a valid VkBuildAccelerationStructureModeKHR value" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-srcAccelerationStructure-04629", - "text": " If the srcAccelerationStructure member of any element of pInfos is not VK_NULL_HANDLE, the srcAccelerationStructure member must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-04630", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03403", - "text": " The srcAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03698", - "text": " The dstAccelerationStructure member of any element of pInfos must not be the same acceleration structure as the dstAccelerationStructure member of any other element of pInfos" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03800", - "text": " The dstAccelerationStructure member of any element of pInfos must be a valid VkAccelerationStructureKHR handle" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03699", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03700", - "text": " For each element of pInfos, if its type member is VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR, its dstAccelerationStructure member must have been created with a value of VkAccelerationStructureCreateInfoKHR::type equal to either VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR or VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03663", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, inactive primitives in its srcAccelerationStructure member must not be made active" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03664", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, active primitives in its srcAccelerationStructure member must not be made inactive" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-None-03407", - "text": " The dstAccelerationStructure member of any element of pInfos must not be referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03701", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any other element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, which is accessed by this command" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03702", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the dstAccelerationStructure member of any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03703", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any element of pInfos (including the same element), which is accessed by this command" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03704", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the scratchData member of any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-scratchData-03705", - "text": " The range of memory backing the scratchData member of any element of pInfos that is accessed by this command must not overlap the memory backing the srcAccelerationStructure member of any element of pInfos with a mode equal to VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR (including the same element), which is accessed by this command" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-dstAccelerationStructure-03706", - "text": " The range of memory backing the dstAccelerationStructure member of any element of pInfos that is accessed by this command must not overlap the memory backing any acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR in any other element of pInfos, which is accessed by this command" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03666", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03667", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure member must have been built before with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR set in VkAccelerationStructureBuildGeometryInfoKHR::flags" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03668", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its srcAccelerationStructure and dstAccelerationStructure members must either be the same VkAccelerationStructureKHR, or not have any memory aliasing" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03758", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its geometryCount member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03759", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its flags member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03760", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, its type member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03761", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its geometryType member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03762", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, its flags member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03763", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.vertexFormat member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03764", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.maxVertex member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03765", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, its geometry.triangles.indexType member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03766", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData member was NULL when srcAccelerationStructure was last built, then it must be NULL." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03767", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, if its geometry.triangles.transformData member was not NULL when srcAccelerationStructure was last built, then it may not be NULL." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03768", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, then for each VkAccelerationStructureGeometryKHR structure referred to by its pGeometries or ppGeometries members, if geometryType is VK_GEOMETRY_TYPE_TRIANGLES_KHR, and geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, then the value of each index referenced index must be the same as the corresponding index value when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-primitiveCount-03769", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, its primitiveCount member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-firstVertex-03770", - "text": " For each VkAccelerationStructureBuildRangeInfoKHR referenced by this command, if the corresponding geometry uses indices, its firstVertex member must have the same value which was specified when srcAccelerationStructure was last built." - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03801", - "text": " For each element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, the corresponding {maxinstancecheck} must be less than or equal to VkPhysicalDeviceAccelerationStructurePropertiesKHR::maxInstanceCount" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03675", - "text": " For each pInfos[i], dstAccelerationStructure must have been created with a value of VkAccelerationStructureCreateInfoKHR::size greater than or equal to the memory size required by the build operation, as returned by vkGetAccelerationStructureBuildSizesKHR with pBuildInfo = pInfos[i] and with each element of the pMaxPrimitiveCounts array greater than or equal to the equivalent ppBuildRangeInfos[i][j].primitiveCount values for j in [0,pInfos[i].geometryCount)" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-03676", - "text": " Each element of ppBuildRangeInfos[i] must be a valid pointer to an array of pInfos[i].geometryCount VkAccelerationStructureBuildRangeInfoKHR structures" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03722", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03723", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03724", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-accelerationStructureHostCommands-03581", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03725", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the buildScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03726", - "text": " If pInfos[i].mode is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR, all addresses between pInfos[i].scratchData.hostAddress and pInfos[i].scratchData.hostAddress + N - 1 must be valid host memory, where N is given by the updateScratchSize member of the VkAccelerationStructureBuildSizesInfoKHR structure returned from a call to vkGetAccelerationStructureBuildSizesKHR with an identical VkAccelerationStructureBuildGeometryInfoKHR structure and primitive count" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03771", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, geometry.triangles.vertexData.hostAddress must be a valid host address" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03772", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.indexType is not VK_INDEX_TYPE_NONE_KHR, geometry.triangles.indexData.hostAddress must be a valid host address" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03773", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_TRIANGLES_KHR, if geometry.triangles.transformData.hostAddress is not 0, it must be a valid host address" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03774", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_AABBS_KHR, geometry.aabbs.data.hostAddress must be a valid host address" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03778", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, geometry.instances.data.hostAddress must be a valid host address" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03779", - "text": " For any element of pInfos[i].pGeometries or pInfos[i].ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR, each VkAccelerationStructureInstanceKHR::accelerationStructureReference value in geometry.instances.data.hostAddress must be a valid VkAccelerationStructureKHR object" - } - ], - "(VK_KHR_device_group,VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03775", - "text": " For each element of pInfos, the buffer used to create its dstAccelerationStructure member must be bound to memory that was not allocated with multiple instances" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03776", - "text": " For each element of pInfos, if its mode member is VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR the buffer used to create its srcAccelerationStructure member must be bound to memory that was not allocated with multiple instances" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-03777", - "text": " For each element of pInfos, the buffer used to create each acceleration structure referenced by the geometry.instances.data member of any element of pGeometries or ppGeometries with a geometryType of VK_GEOMETRY_TYPE_INSTANCES_KHR must be bound to memory that was not allocated with multiple instances" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-pInfos-parameter", - "text": " pInfos must be a valid pointer to an array of infoCount valid VkAccelerationStructureBuildGeometryInfoKHR structures" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-ppBuildRangeInfos-parameter", - "text": " ppBuildRangeInfos must be a valid pointer to an array of infoCount VkAccelerationStructureBuildRangeInfoKHR structures" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-infoCount-arraylength", - "text": " infoCount must be greater than 0" - }, - { - "vuid": "VUID-vkBuildAccelerationStructuresKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCopyAccelerationStructureKHR": { - "core": [ - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03727", - "text": " The buffer used to create pInfo->src must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03728", - "text": " The buffer used to create pInfo->dst must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-accelerationStructureHostCommands-03582", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" - } - ], - "(VK_KHR_device_group,VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03780", - "text": " The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-buffer-03781", - "text": " The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureInfoKHR structure" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCopyMemoryToAccelerationStructureKHR": { - "core": [ - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03729", - "text": " pInfo->src.hostAddress must be a valid host pointer" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-03750", - "text": " pInfo->src.hostAddress must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03730", - "text": " The buffer used to create pInfo->dst must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-accelerationStructureHostCommands-03583", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" - } - ], - "(VK_KHR_device_group,VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-buffer-03782", - "text": " The buffer used to create pInfo->dst must be bound to memory that was not allocated with multiple instances" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyMemoryToAccelerationStructureInfoKHR structure" - }, - { - "vuid": "VUID-vkCopyMemoryToAccelerationStructureKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkCopyAccelerationStructureToMemoryKHR": { - "core": [ - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03677", - "text": " If deferredOperation is not VK_NULL_HANDLE, it must be a valid VkDeferredOperationKHR object" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-03678", - "text": " Any previous deferred operation that was associated with deferredOperation must be complete" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03731", - "text": " The buffer used to create pInfo->src must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03732", - "text": " pInfo->dst.hostAddress must be a valid host pointer" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-03751", - "text": " pInfo->dst.hostAddress must be aligned to 16 bytes" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-accelerationStructureHostCommands-03584", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" - } - ], - "(VK_KHR_device_group,VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-buffer-03783", - "text": " The buffer used to create pInfo->src must be bound to memory that was not allocated with multiple instances" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parameter", - "text": " If deferredOperation is not VK_NULL_HANDLE, deferredOperation must be a valid VkDeferredOperationKHR handle" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-pInfo-parameter", - "text": " pInfo must be a valid pointer to a valid VkCopyAccelerationStructureToMemoryInfoKHR structure" - }, - { - "vuid": "VUID-vkCopyAccelerationStructureToMemoryKHR-deferredOperation-parent", - "text": " If deferredOperation is a valid handle, it must have been created, allocated, or retrieved from device" - } - ] - }, - "vkWriteAccelerationStructuresPropertiesKHR": { - "core": [ - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructures-03431", - "text": " All acceleration structures in pAccelerationStructures must have been built with VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR if queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03432", - "text": " queryType must be VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR or VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03448", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03449", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR, then data must point to a VkDeviceSize" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03450", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then stride must be a multiple of the size of VkDeviceSize" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-03451", - "text": " If queryType is VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR, then data must point to a VkDeviceSize" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-03452", - "text": " dataSize must be greater than or equal to accelerationStructureCount*stride" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03733", - "text": " The buffer used to create each acceleration structure in pAccelerationStructures must be bound to host-visible device memory" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureHostCommands-03585", - "text": " The VkPhysicalDeviceAccelerationStructureFeaturesKHR::accelerationStructureHostCommands feature must be enabled" - } - ], - "(VK_KHR_device_group,VK_VERSION_1_1)": [ - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-buffer-03784", - "text": " The buffer used to create each acceleration structure in pAccelerationStructures must be bound to memory that was not allocated with multiple instances" - } - ], - "(VK_NV_ray_tracing,VK_KHR_ray_tracing_pipeline,VK_KHR_acceleration_structure)+(VK_KHR_acceleration_structure,VK_NV_ray_tracing)": [ - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parameter", - "text": " pAccelerationStructures must be a valid pointer to an array of accelerationStructureCount valid VkAccelerationStructureKHR handles" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-queryType-parameter", - "text": " queryType must be a valid VkQueryType value" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pData-parameter", - "text": " pData must be a valid pointer to an array of dataSize bytes" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-accelerationStructureCount-arraylength", - "text": " accelerationStructureCount must be greater than 0" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-dataSize-arraylength", - "text": " dataSize must be greater than 0" - }, - { - "vuid": "VUID-vkWriteAccelerationStructuresPropertiesKHR-pAccelerationStructures-parent", - "text": " Each element of pAccelerationStructures must have been created, allocated, or retrieved from device" - } - ] - }, - "vkEnumerateInstanceLayerProperties": { - "core": [ - { - "vuid": "VUID-vkEnumerateInstanceLayerProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkEnumerateInstanceLayerProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" - } - ] - }, - "vkEnumerateDeviceLayerProperties": { - "core": [ - { - "vuid": "VUID-vkEnumerateDeviceLayerProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkEnumerateDeviceLayerProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkEnumerateDeviceLayerProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkLayerProperties structures" - } - ] - }, - "vkEnumerateInstanceExtensionProperties": { - "core": [ - { - "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pLayerName-parameter", - "text": " If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string" - }, - { - "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkEnumerateInstanceExtensionProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" - } - ] - }, - "vkEnumerateDeviceExtensionProperties": { - "core": [ - { - "vuid": "VUID-vkEnumerateDeviceExtensionProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pLayerName-parameter", - "text": " If pLayerName is not NULL, pLayerName must be a null-terminated UTF-8 string" - }, - { - "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pPropertyCount-parameter", - "text": " pPropertyCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkEnumerateDeviceExtensionProperties-pProperties-parameter", - "text": " If the value referenced by pPropertyCount is not 0, and pProperties is not NULL, pProperties must be a valid pointer to an array of pPropertyCount VkExtensionProperties structures" - } - ] - }, - "vkGetPhysicalDeviceFeatures": { - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceFeatures-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFeatures-pFeatures-parameter", - "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures structure" - } - ] - }, - "vkGetPhysicalDeviceFeatures2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceFeatures2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFeatures2-pFeatures-parameter", - "text": " pFeatures must be a valid pointer to a VkPhysicalDeviceFeatures2 structure" - } - ] - }, - "VkPhysicalDeviceFeatures2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkPhysicalDeviceFeatures2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2" - } - ] - }, - "VkPhysicalDeviceVulkan11Features": { - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-VkPhysicalDeviceVulkan11Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES" - } - ] - }, - "VkPhysicalDeviceVulkan12Features": { - "(VK_VERSION_1_2)": [ - { - "vuid": "VUID-VkPhysicalDeviceVulkan12Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES" - } - ] - }, - "VkPhysicalDeviceVariablePointersFeatures": { - "(VK_VERSION_1_1,VK_KHR_variable_pointers)": [ - { - "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-variablePointers-01431", - "text": " If variablePointers is enabled then variablePointersStorageBuffer must also be enabled" - }, - { - "vuid": "VUID-VkPhysicalDeviceVariablePointersFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES" - } - ] - }, - "VkPhysicalDeviceMultiviewFeatures": { - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewGeometryShader-00580", - "text": " If multiviewGeometryShader is enabled then multiview must also be enabled" - }, - { - "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-multiviewTessellationShader-00581", - "text": " If multiviewTessellationShader is enabled then multiview must also be enabled" - }, - { - "vuid": "VUID-VkPhysicalDeviceMultiviewFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES" - } - ] - }, - "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT": { - "(VK_EXT_shader_atomic_float)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderAtomicFloatFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceShaderAtomicInt64Features": { - "(VK_VERSION_1_2,VK_KHR_shader_atomic_int64)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderAtomicInt64Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES" - } - ] - }, - "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT": { - "(VK_EXT_shader_image_atomic_int64)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT" - } - ] - }, - "VkPhysicalDevice8BitStorageFeatures": { - "(VK_VERSION_1_2,VK_KHR_8bit_storage)": [ - { - "vuid": "VUID-VkPhysicalDevice8BitStorageFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES" - } - ] - }, - "VkPhysicalDevice16BitStorageFeatures": { - "(VK_VERSION_1_1,VK_KHR_16bit_storage)": [ - { - "vuid": "VUID-VkPhysicalDevice16BitStorageFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES" - } - ] - }, - "VkPhysicalDeviceShaderFloat16Int8Features": { - "(VK_VERSION_1_2,VK_KHR_shader_float16_int8)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderFloat16Int8Features-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES" - } - ] - }, - "VkPhysicalDeviceShaderClockFeaturesKHR": { - "(VK_KHR_shader_clock)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderClockFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR" - } - ] - }, - "VkPhysicalDeviceSamplerYcbcrConversionFeatures": { - "(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkPhysicalDeviceSamplerYcbcrConversionFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES" - } - ] - }, - "VkPhysicalDeviceProtectedMemoryFeatures": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkPhysicalDeviceProtectedMemoryFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES" - } - ] - }, - "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT": { - "(VK_EXT_blend_operation_advanced)": [ - { - "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceConditionalRenderingFeaturesEXT": { - "(VK_EXT_conditional_rendering)": [ - { - "vuid": "VUID-VkPhysicalDeviceConditionalRenderingFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceShaderDrawParametersFeatures": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderDrawParametersFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES" - } - ] - }, - "VkPhysicalDeviceMeshShaderFeaturesNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkPhysicalDeviceMeshShaderFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceDescriptorIndexingFeatures": { - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES" - } - ] - }, - "VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT": { - "(VK_EXT_vertex_attribute_divisor)": [ - { - "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceASTCDecodeFeaturesEXT": { - "(VK_EXT_astc_decode_mode)": [ - { - "vuid": "VUID-VkPhysicalDeviceASTCDecodeFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceTransformFeedbackFeaturesEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-VkPhysicalDeviceTransformFeedbackFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceVulkanMemoryModelFeatures": { - "(VK_VERSION_1_2,VK_KHR_vulkan_memory_model)": [ - { - "vuid": "VUID-VkPhysicalDeviceVulkanMemoryModelFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES" - } - ] - }, - "VkPhysicalDeviceInlineUniformBlockFeaturesEXT": { - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV": { - "(VK_NV_representative_fragment_test)": [ - { - "vuid": "VUID-VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceExclusiveScissorFeaturesNV": { - "(VK_NV_scissor_exclusive)": [ - { - "vuid": "VUID-VkPhysicalDeviceExclusiveScissorFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceCornerSampledImageFeaturesNV": { - "(VK_NV_corner_sampled_image)": [ - { - "vuid": "VUID-VkPhysicalDeviceCornerSampledImageFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceComputeShaderDerivativesFeaturesNV": { - "(VK_NV_compute_shader_derivatives)": [ - { - "vuid": "VUID-VkPhysicalDeviceComputeShaderDerivativesFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV": { - "(VK_NV_fragment_shader_barycentric)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceShaderImageFootprintFeaturesNV": { - "(VK_NV_shader_image_footprint)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderImageFootprintFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceShadingRateImageFeaturesNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkPhysicalDeviceShadingRateImageFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceFragmentDensityMapFeaturesEXT": { - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT": { - "(VK_EXT_fragment_density_map2)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceScalarBlockLayoutFeatures": { - "(VK_VERSION_1_2,VK_EXT_scalar_block_layout)": [ - { - "vuid": "VUID-VkPhysicalDeviceScalarBlockLayoutFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES" - } - ] - }, - "VkPhysicalDeviceUniformBufferStandardLayoutFeatures": { - "(VK_VERSION_1_2,VK_KHR_uniform_buffer_standard_layout)": [ - { - "vuid": "VUID-VkPhysicalDeviceUniformBufferStandardLayoutFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES" - } - ] - }, - "VkPhysicalDeviceDepthClipEnableFeaturesEXT": { - "(VK_EXT_depth_clip_enable)": [ - { - "vuid": "VUID-VkPhysicalDeviceDepthClipEnableFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceMemoryPriorityFeaturesEXT": { - "(VK_EXT_memory_priority)": [ - { - "vuid": "VUID-VkPhysicalDeviceMemoryPriorityFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceBufferDeviceAddressFeatures": { - "(VK_VERSION_1_2,VK_KHR_buffer_device_address)": [ - { - "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES" - } - ] - }, - "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT": { - "(VK_EXT_buffer_device_address)": [ - { - "vuid": "VUID-VkPhysicalDeviceBufferDeviceAddressFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV": { - "(VK_NV_dedicated_allocation_image_aliasing)": [ - { - "vuid": "VUID-VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceImagelessFramebufferFeatures": { - "(VK_VERSION_1_2,VK_KHR_imageless_framebuffer)": [ - { - "vuid": "VUID-VkPhysicalDeviceImagelessFramebufferFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES" - } - ] - }, - "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT": { - "(VK_EXT_fragment_shader_interlock)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceCooperativeMatrixFeaturesNV": { - "(VK_NV_cooperative_matrix)": [ - { - "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT": { - "(VK_EXT_ycbcr_image_arrays)": [ - { - "vuid": "VUID-VkPhysicalDeviceYcbcrImageArraysFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures": { - "(VK_VERSION_1_1)+(VK_VERSION_1_2,VK_KHR_shader_subgroup_extended_types)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES" - } - ] - }, - "VkPhysicalDeviceHostQueryResetFeatures": { - "(VK_VERSION_1_2,VK_EXT_host_query_reset)": [ - { - "vuid": "VUID-VkPhysicalDeviceHostQueryResetFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES" - } - ] - }, - "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL": { - "(VK_INTEL_shader_integer_functions2)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL" - } - ] - }, - "VkPhysicalDeviceCoverageReductionModeFeaturesNV": { - "(VK_NV_coverage_reduction_mode)": [ - { - "vuid": "VUID-VkPhysicalDeviceCoverageReductionModeFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceTimelineSemaphoreFeatures": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES" - } - ] - }, - "VkPhysicalDeviceIndexTypeUint8FeaturesEXT": { - "(VK_EXT_index_type_uint8)": [ - { - "vuid": "VUID-VkPhysicalDeviceIndexTypeUint8FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV": { - "(VK_NV_shader_sm_builtins)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures": { - "(VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts)": [ - { - "vuid": "VUID-VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES" - } - ] - }, - "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR": { - "(VK_KHR_pipeline_executable_properties)": [ - { - "vuid": "VUID-VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR" - } - ] - }, - "VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT": { - "(VK_EXT_shader_demote_to_helper_invocation)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT": { - "(VK_EXT_texel_buffer_alignment)": [ - { - "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT": { - "(VK_EXT_texture_compression_astc_hdr)": [ - { - "vuid": "VUID-VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceLineRasterizationFeaturesEXT": { - "(VK_EXT_line_rasterization)": [ - { - "vuid": "VUID-VkPhysicalDeviceLineRasterizationFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceSubgroupSizeControlFeaturesEXT": { - "(VK_EXT_subgroup_size_control)": [ - { - "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceCoherentMemoryFeaturesAMD": { - "(VK_AMD_device_coherent_memory)": [ - { - "vuid": "VUID-VkPhysicalDeviceCoherentMemoryFeaturesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD" - } - ] - }, - "VkPhysicalDeviceAccelerationStructureFeaturesKHR": { - "(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkPhysicalDeviceAccelerationStructureFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR" - } - ] - }, - "VkPhysicalDeviceRayTracingPipelineFeaturesKHR": { - "(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-rayTracingPipelineShaderGroupHandleCaptureReplayMixed-03575", - "text": " If rayTracingPipelineShaderGroupHandleCaptureReplayMixed is VK_TRUE, rayTracingPipelineShaderGroupHandleCaptureReplay must also be VK_TRUE" - }, - { - "vuid": "VUID-VkPhysicalDeviceRayTracingPipelineFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR" - } - ] - }, - "VkPhysicalDeviceRayQueryFeaturesKHR": { - "(VK_KHR_ray_query)": [ - { - "vuid": "VUID-VkPhysicalDeviceRayQueryFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR" - } - ] - }, - "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT": { - "(VK_EXT_extended_dynamic_state)": [ - { - "vuid": "VUID-VkPhysicalDeviceExtendedDynamicStateFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceDiagnosticsConfigFeaturesNV": { - "(VK_NV_device_diagnostics_config)": [ - { - "vuid": "VUID-VkPhysicalDeviceDiagnosticsConfigFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV" - } - ] - }, - "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT": { - "(VK_EXT_device_memory_report)": [ - { - "vuid": "VUID-VkPhysicalDeviceDeviceMemoryReportFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT" - } - ] - }, - "VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT": { - "(VK_EXT_pipeline_creation_cache_control)": [ - { - "vuid": "VUID-VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT" - } - ] - }, - "VkPhysicalDevicePrivateDataFeaturesEXT": { - "(VK_EXT_private_data)": [ - { - "vuid": "VUID-VkPhysicalDevicePrivateDataFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceRobustness2FeaturesEXT": { - "(VK_EXT_robustness2)": [ - { - "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-robustBufferAccess2-04000", - "text": " If robustBufferAccess2 is enabled then robustBufferAccess must also be enabled" - }, - { - "vuid": "VUID-VkPhysicalDeviceRobustness2FeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceImageRobustnessFeaturesEXT": { - "(VK_EXT_image_robustness)": [ - { - "vuid": "VUID-VkPhysicalDeviceImageRobustnessFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR": { - "(VK_KHR_shader_terminate_invocation)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR" - } - ] - }, - "VkPhysicalDeviceCustomBorderColorFeaturesEXT": { - "(VK_EXT_custom_border_color)": [ - { - "vuid": "VUID-VkPhysicalDeviceCustomBorderColorFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT" - } - ] - }, - "VkPhysicalDevicePortabilitySubsetFeaturesKHR": { - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkPhysicalDevicePortabilitySubsetFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR" - } - ] - }, - "VkPhysicalDevicePerformanceQueryFeaturesKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkPhysicalDevicePerformanceQueryFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR" - } - ] - }, - "VkPhysicalDevice4444FormatsFeaturesEXT": { - "(VK_EXT_4444_formats)": [ - { - "vuid": "VUID-VkPhysicalDevice4444FormatsFeaturesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT" - } - ] - }, - "VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE": { - "(VK_VALVE_mutable_descriptor_type)": [ - { - "vuid": "VUID-VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE" - } - ] - }, - "VkPhysicalDeviceFragmentShadingRateFeaturesKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateFeaturesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR" - } - ] - }, - "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV": { - "(VK_NV_fragment_shading_rate_enums)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV" - } - ] - }, - "VkPhysicalDevicePushDescriptorPropertiesKHR": { - "(VK_KHR_push_descriptor)": [ - { - "vuid": "VUID-VkPhysicalDevicePushDescriptorPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR" - } - ] - }, - "VkPhysicalDeviceMultiviewProperties": { - "(VK_VERSION_1_1,VK_KHR_multiview)": [ - { - "vuid": "VUID-VkPhysicalDeviceMultiviewProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceFloatControlsProperties": { - "(VK_VERSION_1_2,VK_KHR_shader_float_controls)": [ - { - "vuid": "VUID-VkPhysicalDeviceFloatControlsProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceDiscardRectanglePropertiesEXT": { - "(VK_EXT_discard_rectangles)": [ - { - "vuid": "VUID-VkPhysicalDeviceDiscardRectanglePropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceSampleLocationsPropertiesEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkPhysicalDeviceSampleLocationsPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceExternalMemoryHostPropertiesEXT": { - "(VK_EXT_external_memory_host)": [ - { - "vuid": "VUID-VkPhysicalDeviceExternalMemoryHostPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX": { - "(VK_NVX_multiview_per_view_attributes)": [ - { - "vuid": "VUID-VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX" - } - ] - }, - "VkPhysicalDevicePointClippingProperties": { - "(VK_VERSION_1_1,VK_KHR_maintenance2)": [ - { - "vuid": "VUID-VkPhysicalDevicePointClippingProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceSubgroupProperties": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkPhysicalDeviceSubgroupProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceSubgroupSizeControlPropertiesEXT": { - "(VK_VERSION_1_1)+(VK_EXT_subgroup_size_control)": [ - { - "vuid": "VUID-VkPhysicalDeviceSubgroupSizeControlPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT": { - "(VK_EXT_blend_operation_advanced)": [ - { - "vuid": "VUID-VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT": { - "(VK_EXT_vertex_attribute_divisor)": [ - { - "vuid": "VUID-VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceSamplerFilterMinmaxProperties": { - "(VK_VERSION_1_2,VK_EXT_sampler_filter_minmax)": [ - { - "vuid": "VUID-VkPhysicalDeviceSamplerFilterMinmaxProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceProtectedMemoryProperties": { - "(VK_VERSION_1_1)": [ - { - "vuid": "VUID-VkPhysicalDeviceProtectedMemoryProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceMaintenance3Properties": { - "(VK_VERSION_1_1,VK_KHR_maintenance3)": [ - { - "vuid": "VUID-VkPhysicalDeviceMaintenance3Properties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceMeshShaderPropertiesNV": { - "(VK_NV_mesh_shader)": [ - { - "vuid": "VUID-VkPhysicalDeviceMeshShaderPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV" - } - ] - }, - "VkPhysicalDeviceDescriptorIndexingProperties": { - "(VK_VERSION_1_2,VK_EXT_descriptor_indexing)": [ - { - "vuid": "VUID-VkPhysicalDeviceDescriptorIndexingProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceInlineUniformBlockPropertiesEXT": { - "(VK_EXT_inline_uniform_block)": [ - { - "vuid": "VUID-VkPhysicalDeviceInlineUniformBlockPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceConservativeRasterizationPropertiesEXT": { - "(VK_EXT_conservative_rasterization)": [ - { - "vuid": "VUID-VkPhysicalDeviceConservativeRasterizationPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceFragmentDensityMapPropertiesEXT": { - "(VK_EXT_fragment_density_map)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentDensityMapPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT": { - "(VK_EXT_fragment_density_map2)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentDensityMap2PropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceShaderCorePropertiesAMD": { - "(VK_AMD_shader_core_properties)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderCorePropertiesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD" - } - ] - }, - "VkPhysicalDeviceShaderCoreProperties2AMD": { - "(VK_AMD_shader_core_properties2)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderCoreProperties2AMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD" - } - ] - }, - "VkPhysicalDeviceDepthStencilResolveProperties": { - "(VK_VERSION_1_2,VK_KHR_depth_stencil_resolve)": [ - { - "vuid": "VUID-VkPhysicalDeviceDepthStencilResolveProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES" - } - ] - }, - "VkPhysicalDevicePerformanceQueryPropertiesKHR": { - "(VK_KHR_performance_query)": [ - { - "vuid": "VUID-VkPhysicalDevicePerformanceQueryPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR" - } - ] - }, - "VkPhysicalDeviceShadingRateImagePropertiesNV": { - "(VK_NV_shading_rate_image)": [ - { - "vuid": "VUID-VkPhysicalDeviceShadingRateImagePropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV" - } - ] - }, - "VkPhysicalDeviceTransformFeedbackPropertiesEXT": { - "(VK_EXT_transform_feedback)": [ - { - "vuid": "VUID-VkPhysicalDeviceTransformFeedbackPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceRayTracingPropertiesNV": { - "(VK_NV_ray_tracing)": [ - { - "vuid": "VUID-VkPhysicalDeviceRayTracingPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV" - } - ] - }, - "VkPhysicalDeviceAccelerationStructurePropertiesKHR": { - "(VK_KHR_acceleration_structure)": [ - { - "vuid": "VUID-VkPhysicalDeviceAccelerationStructurePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR" - } - ] - }, - "VkPhysicalDeviceRayTracingPipelinePropertiesKHR": { - "(VK_KHR_ray_tracing_pipeline)": [ - { - "vuid": "VUID-VkPhysicalDeviceRayTracingPipelinePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR" - } - ] - }, - "VkPhysicalDeviceCooperativeMatrixPropertiesNV": { - "(VK_NV_cooperative_matrix)": [ - { - "vuid": "VUID-VkPhysicalDeviceCooperativeMatrixPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV" - } - ] - }, - "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV": { - "(VK_NV_shader_sm_builtins)": [ - { - "vuid": "VUID-VkPhysicalDeviceShaderSMBuiltinsPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV" - } - ] - }, - "VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT": { - "(VK_EXT_texel_buffer_alignment)": [ - { - "vuid": "VUID-VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceTimelineSemaphoreProperties": { - "(VK_VERSION_1_2,VK_KHR_timeline_semaphore)": [ - { - "vuid": "VUID-VkPhysicalDeviceTimelineSemaphoreProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceLineRasterizationPropertiesEXT": { - "(VK_EXT_line_rasterization)": [ - { - "vuid": "VUID-VkPhysicalDeviceLineRasterizationPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceRobustness2PropertiesEXT": { - "(VK_EXT_robustness2)": [ - { - "vuid": "VUID-VkPhysicalDeviceRobustness2PropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT" - } - ] - }, - "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV": { - "(VK_NV_device_generated_commands)": [ - { - "vuid": "VUID-VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV" - } - ] - }, - "VkPhysicalDevicePortabilitySubsetPropertiesKHR": { - "(VK_KHR_portability_subset)": [ - { - "vuid": "VUID-VkPhysicalDevicePortabilitySubsetPropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR" - } - ] - }, - "VkPhysicalDeviceFragmentShadingRatePropertiesKHR": { - "(VK_KHR_fragment_shading_rate)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentShadingRatePropertiesKHR-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR" - } - ] - }, - "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV": { - "(VK_NV_fragment_shading_rate_enums)": [ - { - "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV" - }, - { - "vuid": "VUID-VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV-maxFragmentShadingRateInvocationCount-parameter", - "text": " maxFragmentShadingRateInvocationCount must be a valid VkSampleCountFlagBits value" - } - ] - }, - "vkGetPhysicalDeviceMultisamplePropertiesEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-samples-parameter", - "text": " samples must be a valid VkSampleCountFlagBits value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceMultisamplePropertiesEXT-pMultisampleProperties-parameter", - "text": " pMultisampleProperties must be a valid pointer to a VkMultisamplePropertiesEXT structure" - } - ] - }, - "VkMultisamplePropertiesEXT": { - "(VK_EXT_sample_locations)": [ - { - "vuid": "VUID-VkMultisamplePropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT" - }, - { - "vuid": "VUID-VkMultisamplePropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "VkPhysicalDeviceCustomBorderColorPropertiesEXT": { - "(VK_EXT_custom_border_color)": [ - { - "vuid": "VUID-VkPhysicalDeviceCustomBorderColorPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT" - } - ] - }, - "vkGetPhysicalDeviceFormatProperties": { - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFormatProperties-pFormatProperties-parameter", - "text": " pFormatProperties must be a valid pointer to a VkFormatProperties structure" - } - ] - }, - "vkGetPhysicalDeviceFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceFormatProperties2-pFormatProperties-parameter", - "text": " pFormatProperties must be a valid pointer to a VkFormatProperties2 structure" - } - ] - }, - "VkFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkFormatProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2" - }, - { - "vuid": "VUID-VkFormatProperties2-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkDrmFormatModifierPropertiesListEXT" - }, - { - "vuid": "VUID-VkFormatProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkDrmFormatModifierPropertiesListEXT": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkDrmFormatModifierPropertiesListEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT" - } - ] - }, - "vkGetPhysicalDeviceImageFormatProperties": { - "(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-02248", - "text": " tiling must not be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT. (Use vkGetPhysicalDeviceImageFormatProperties2 instead)" - } - ], - "core": [ - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-type-parameter", - "text": " type must be a valid VkImageType value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties-pImageFormatProperties-parameter", - "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties structure" - } - ] - }, - "vkGetPhysicalDeviceExternalImageFormatPropertiesNV": { - "(VK_NV_external_memory_capabilities)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-type-parameter", - "text": " type must be a valid VkImageType value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-externalHandleType-parameter", - "text": " externalHandleType must be a valid combination of VkExternalMemoryHandleTypeFlagBitsNV values" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalImageFormatPropertiesNV-pExternalImageFormatProperties-parameter", - "text": " pExternalImageFormatProperties must be a valid pointer to a VkExternalImageFormatPropertiesNV structure" - } - ] - }, - "vkGetPhysicalDeviceImageFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pNext-01868", - "text": " If the pNext chain of pImageFormatProperties includes a VkAndroidHardwareBufferUsageANDROID structure, the pNext chain of pImageFormatInfo must include a VkPhysicalDeviceExternalImageFormatInfo structure with handleType set to VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatInfo-parameter", - "text": " pImageFormatInfo must be a valid pointer to a valid VkPhysicalDeviceImageFormatInfo2 structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceImageFormatProperties2-pImageFormatProperties-parameter", - "text": " pImageFormatProperties must be a valid pointer to a VkImageFormatProperties2 structure" - } - ] - }, - "VkPhysicalDeviceImageFormatInfo2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02249", - "text": " tiling must be VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT if and only if the pNext chain includes VkPhysicalDeviceImageDrmFormatModifierInfoEXT" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-02313", - "text": " If tiling is VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT and flags contains VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT, then the pNext chain must include a VkImageFormatListCreateInfo structure with non-zero viewFormatCount" - } - ], - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkImageFormatListCreateInfo, VkImageStencilUsageCreateInfo, VkPhysicalDeviceExternalImageFormatInfo, VkPhysicalDeviceImageDrmFormatModifierInfoEXT, or VkPhysicalDeviceImageViewImageFormatInfoEXT" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-format-parameter", - "text": " format must be a valid VkFormat value" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-type-parameter", - "text": " type must be a valid VkImageType value" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-tiling-parameter", - "text": " tiling must be a valid VkImageTiling value" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-parameter", - "text": " usage must be a valid combination of VkImageUsageFlagBits values" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageFormatInfo2-flags-parameter", - "text": " flags must be a valid combination of VkImageCreateFlagBits values" - } - ] - }, - "VkImageFormatProperties2": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)": [ - { - "vuid": "VUID-VkImageFormatProperties2-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2" - }, - { - "vuid": "VUID-VkImageFormatProperties2-pNext-pNext", - "text": " Each pNext member of any structure (including this one) in the pNext chain must be either NULL or a pointer to a valid instance of VkAndroidHardwareBufferUsageANDROID, VkExternalImageFormatProperties, VkFilterCubicImageViewImageFormatPropertiesEXT, VkSamplerYcbcrConversionImageFormatProperties, or VkTextureLODGatherFormatPropertiesAMD" - }, - { - "vuid": "VUID-VkImageFormatProperties2-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - } - ] - }, - "VkTextureLODGatherFormatPropertiesAMD": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_AMD_texture_gather_bias_lod)": [ - { - "vuid": "VUID-VkTextureLODGatherFormatPropertiesAMD-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD" - } - ] - }, - "VkPhysicalDeviceExternalImageFormatInfo": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [ - { - "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalImageFormatInfo-handleType-parameter", - "text": " If handleType is not 0, handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "VkExternalImageFormatProperties": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [ - { - "vuid": "VUID-VkExternalImageFormatProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES" - } - ] - }, - "VkPhysicalDeviceImageDrmFormatModifierInfoEXT": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_image_drm_format_modifier)": [ - { - "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02314", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then pQueueFamilyIndices must be a valid pointer to an array of queueFamilyIndexCount uint32_t values" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02315", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, then queueFamilyIndexCount must be greater than 1" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-02316", - "text": " If sharingMode is VK_SHARING_MODE_CONCURRENT, each element of pQueueFamilyIndices must be unique and must be less than the pQueueFamilyPropertyCount returned by vkGetPhysicalDeviceQueueFamilyProperties2 for the physicalDevice that was used to create device" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageDrmFormatModifierInfoEXT-sharingMode-parameter", - "text": " sharingMode must be a valid VkSharingMode value" - } - ] - }, - "VkSamplerYcbcrConversionImageFormatProperties": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_VERSION_1_1,VK_KHR_sampler_ycbcr_conversion)": [ - { - "vuid": "VUID-VkSamplerYcbcrConversionImageFormatProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES" - } - ] - }, - "VkAndroidHardwareBufferUsageANDROID": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_ANDROID_external_memory_android_hardware_buffer)": [ - { - "vuid": "VUID-VkAndroidHardwareBufferUsageANDROID-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID" - } - ] - }, - "VkPhysicalDeviceImageViewImageFormatInfoEXT": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT" - }, - { - "vuid": "VUID-VkPhysicalDeviceImageViewImageFormatInfoEXT-imageViewType-parameter", - "text": " imageViewType must be a valid VkImageViewType value" - } - ] - }, - "VkFilterCubicImageViewImageFormatPropertiesEXT": { - "(VK_VERSION_1_1,VK_KHR_get_physical_device_properties2)+(VK_EXT_filter_cubic)": [ - { - "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT" - }, - { - "vuid": "VUID-VkFilterCubicImageViewImageFormatPropertiesEXT-pNext-02627", - "text": " If the pNext chain of the VkImageFormatProperties2 structure includes a VkFilterCubicImageViewImageFormatPropertiesEXT structure, the pNext chain of the VkPhysicalDeviceImageFormatInfo2 structure must include a VkPhysicalDeviceImageViewImageFormatInfoEXT structure with an imageViewType that is compatible with imageType" - } - ] - }, - "vkGetPhysicalDeviceExternalBufferProperties": { - "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferInfo-parameter", - "text": " pExternalBufferInfo must be a valid pointer to a valid VkPhysicalDeviceExternalBufferInfo structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalBufferProperties-pExternalBufferProperties-parameter", - "text": " pExternalBufferProperties must be a valid pointer to a VkExternalBufferProperties structure" - } - ] - }, - "VkPhysicalDeviceExternalBufferInfo": { - "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [ - { - "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-flags-parameter", - "text": " flags must be a valid combination of VkBufferCreateFlagBits values" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-parameter", - "text": " usage must be a valid combination of VkBufferUsageFlagBits values" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-usage-requiredbitmask", - "text": " usage must not be 0" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalBufferInfo-handleType-parameter", - "text": " handleType must be a valid VkExternalMemoryHandleTypeFlagBits value" - } - ] - }, - "VkExternalBufferProperties": { - "(VK_VERSION_1_1,VK_KHR_external_memory_capabilities)": [ - { - "vuid": "VUID-VkExternalBufferProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES" - }, - { - "vuid": "VUID-VkExternalBufferProperties-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPhysicalDeviceExternalSemaphoreProperties": { - "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreInfo-parameter", - "text": " pExternalSemaphoreInfo must be a valid pointer to a valid VkPhysicalDeviceExternalSemaphoreInfo structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalSemaphoreProperties-pExternalSemaphoreProperties-parameter", - "text": " pExternalSemaphoreProperties must be a valid pointer to a VkExternalSemaphoreProperties structure" - } - ] - }, - "VkPhysicalDeviceExternalSemaphoreInfo": { - "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [ - { - "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-pNext-pNext", - "text": " pNext must be NULL or a pointer to a valid instance of VkSemaphoreTypeCreateInfo" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-sType-unique", - "text": " The sType value of each struct in the pNext chain must be unique" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalSemaphoreInfo-handleType-parameter", - "text": " handleType must be a valid VkExternalSemaphoreHandleTypeFlagBits value" - } - ] - }, - "VkExternalSemaphoreProperties": { - "(VK_VERSION_1_1,VK_KHR_external_semaphore_capabilities)": [ - { - "vuid": "VUID-VkExternalSemaphoreProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES" - }, - { - "vuid": "VUID-VkExternalSemaphoreProperties-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPhysicalDeviceExternalFenceProperties": { - "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceInfo-parameter", - "text": " pExternalFenceInfo must be a valid pointer to a valid VkPhysicalDeviceExternalFenceInfo structure" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceExternalFenceProperties-pExternalFenceProperties-parameter", - "text": " pExternalFenceProperties must be a valid pointer to a VkExternalFenceProperties structure" - } - ] - }, - "VkPhysicalDeviceExternalFenceInfo": { - "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [ - { - "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkPhysicalDeviceExternalFenceInfo-handleType-parameter", - "text": " handleType must be a valid VkExternalFenceHandleTypeFlagBits value" - } - ] - }, - "VkExternalFenceProperties": { - "(VK_VERSION_1_1,VK_KHR_external_fence_capabilities)": [ - { - "vuid": "VUID-VkExternalFenceProperties-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES" - }, - { - "vuid": "VUID-VkExternalFenceProperties-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPhysicalDeviceCalibrateableTimeDomainsEXT": { - "(VK_EXT_calibrated_timestamps)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomainCount-parameter", - "text": " pTimeDomainCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceCalibrateableTimeDomainsEXT-pTimeDomains-parameter", - "text": " If the value referenced by pTimeDomainCount is not 0, and pTimeDomains is not NULL, pTimeDomains must be a valid pointer to an array of pTimeDomainCount VkTimeDomainEXT values" - } - ] - }, - "vkSetDebugUtilsObjectNameEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02587", - "text": " pNameInfo->objectType must not be VK_OBJECT_TYPE_UNKNOWN" - }, - { - "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-02588", - "text": " pNameInfo->objectHandle must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkSetDebugUtilsObjectNameEXT-pNameInfo-parameter", - "text": " pNameInfo must be a valid pointer to a valid VkDebugUtilsObjectNameInfoEXT structure" - } - ] - }, - "VkDebugUtilsObjectNameInfoEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02589", - "text": " If objectType is VK_OBJECT_TYPE_UNKNOWN, objectHandle must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-02590", - "text": " If objectType is not VK_OBJECT_TYPE_UNKNOWN, objectHandle must be VK_NULL_HANDLE or a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" - }, - { - "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT" - }, - { - "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" - }, - { - "vuid": "VUID-VkDebugUtilsObjectNameInfoEXT-pObjectName-parameter", - "text": " If pObjectName is not NULL, pObjectName must be a null-terminated UTF-8 string" - } - ] - }, - "vkSetDebugUtilsObjectTagEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkSetDebugUtilsObjectTagEXT-pTagInfo-parameter", - "text": " pTagInfo must be a valid pointer to a valid VkDebugUtilsObjectTagInfoEXT structure" - } - ] - }, - "VkDebugUtilsObjectTagInfoEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-01908", - "text": " objectType must not be VK_OBJECT_TYPE_UNKNOWN" - }, - { - "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectHandle-01910", - "text": " objectHandle must be a valid Vulkan handle of the type associated with objectType as defined in the VkObjectType and Vulkan Handle Relationship table" - }, - { - "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT" - }, - { - "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkObjectType value" - }, - { - "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-pTag-parameter", - "text": " pTag must be a valid pointer to an array of tagSize bytes" - }, - { - "vuid": "VUID-VkDebugUtilsObjectTagInfoEXT-tagSize-arraylength", - "text": " tagSize must be greater than 0" - } - ] - }, - "vkQueueBeginDebugUtilsLabelEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" - }, - { - "vuid": "VUID-vkQueueBeginDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" - } - ] - }, - "VkDebugUtilsLabelEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-VkDebugUtilsLabelEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT" - }, - { - "vuid": "VUID-VkDebugUtilsLabelEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDebugUtilsLabelEXT-pLabelName-parameter", - "text": " pLabelName must be a null-terminated UTF-8 string" - } - ] - }, - "vkQueueEndDebugUtilsLabelEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-None-01911", - "text": " There must be an outstanding vkQueueBeginDebugUtilsLabelEXT command prior to the vkQueueEndDebugUtilsLabelEXT on the queue" - }, - { - "vuid": "VUID-vkQueueEndDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" - } - ] - }, - "vkQueueInsertDebugUtilsLabelEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-queue-parameter", - "text": " queue must be a valid VkQueue handle" - }, - { - "vuid": "VUID-vkQueueInsertDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" - } - ] - }, - "vkCmdBeginDebugUtilsLabelEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" - }, - { - "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdBeginDebugUtilsLabelEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "vkCmdEndDebugUtilsLabelEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01912", - "text": " There must be an outstanding vkCmdBeginDebugUtilsLabelEXT command prior to the vkCmdEndDebugUtilsLabelEXT on the queue that commandBuffer is submitted to" - }, - { - "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-01913", - "text": " If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdBeginDebugUtilsLabelEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdEndDebugUtilsLabelEXT" - }, - { - "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdEndDebugUtilsLabelEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "vkCmdInsertDebugUtilsLabelEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-pLabelInfo-parameter", - "text": " pLabelInfo must be a valid pointer to a valid VkDebugUtilsLabelEXT structure" - }, - { - "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdInsertDebugUtilsLabelEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "vkCreateDebugUtilsMessengerEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDebugUtilsMessengerCreateInfoEXT structure" - }, - { - "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDebugUtilsMessengerEXT-pMessenger-parameter", - "text": " pMessenger must be a valid pointer to a VkDebugUtilsMessengerEXT handle" - } - ] - }, - "VkDebugUtilsMessengerCreateInfoEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-01914", - "text": " pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-parameter", - "text": " messageSeverity must be a valid combination of VkDebugUtilsMessageSeverityFlagBitsEXT values" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageSeverity-requiredbitmask", - "text": " messageSeverity must not be 0" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-parameter", - "text": " messageType must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-messageType-requiredbitmask", - "text": " messageType must not be 0" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCreateInfoEXT-pfnUserCallback-parameter", - "text": " pfnUserCallback must be a valid PFN_vkDebugUtilsMessengerCallbackEXT value" - } - ] - }, - "VkDebugUtilsMessengerCallbackDataEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-flags-zerobitmask", - "text": " flags must be 0" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessageIdName-parameter", - "text": " If pMessageIdName is not NULL, pMessageIdName must be a null-terminated UTF-8 string" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pMessage-parameter", - "text": " pMessage must be a null-terminated UTF-8 string" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pQueueLabels-parameter", - "text": " If queueLabelCount is not 0, pQueueLabels must be a valid pointer to an array of queueLabelCount valid VkDebugUtilsLabelEXT structures" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pCmdBufLabels-parameter", - "text": " If cmdBufLabelCount is not 0, pCmdBufLabels must be a valid pointer to an array of cmdBufLabelCount valid VkDebugUtilsLabelEXT structures" - }, - { - "vuid": "VUID-VkDebugUtilsMessengerCallbackDataEXT-pObjects-parameter", - "text": " If objectCount is not 0, pObjects must be a valid pointer to an array of objectCount valid VkDebugUtilsObjectNameInfoEXT structures" - } - ] - }, - "vkSubmitDebugUtilsMessageEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-objectType-02591", - "text": " The objectType member of each element of pCallbackData->pObjects must not be VK_OBJECT_TYPE_UNKNOWN" - }, - { - "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageSeverity-parameter", - "text": " messageSeverity must be a valid VkDebugUtilsMessageSeverityFlagBitsEXT value" - }, - { - "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-parameter", - "text": " messageTypes must be a valid combination of VkDebugUtilsMessageTypeFlagBitsEXT values" - }, - { - "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-messageTypes-requiredbitmask", - "text": " messageTypes must not be 0" - }, - { - "vuid": "VUID-vkSubmitDebugUtilsMessageEXT-pCallbackData-parameter", - "text": " pCallbackData must be a valid pointer to a valid VkDebugUtilsMessengerCallbackDataEXT structure" - } - ] - }, - "vkDestroyDebugUtilsMessengerEXT": { - "(VK_EXT_debug_utils)": [ - { - "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01915", - "text": " If VkAllocationCallbacks were provided when messenger was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-01916", - "text": " If no VkAllocationCallbacks were provided when messenger was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parameter", - "text": " If messenger is not VK_NULL_HANDLE, messenger must be a valid VkDebugUtilsMessengerEXT handle" - }, - { - "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyDebugUtilsMessengerEXT-messenger-parent", - "text": " If messenger is a valid handle, it must have been created, allocated, or retrieved from instance" - } - ] - }, - "vkDebugMarkerSetObjectNameEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDebugMarkerSetObjectNameEXT-pNameInfo-parameter", - "text": " pNameInfo must be a valid pointer to a valid VkDebugMarkerObjectNameInfoEXT structure" - } - ] - }, - "VkDebugMarkerObjectNameInfoEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-01490", - "text": " objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT" - }, - { - "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01491", - "text": " object must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-object-01492", - "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" - }, - { - "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT" - }, - { - "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkDebugReportObjectTypeEXT value" - }, - { - "vuid": "VUID-VkDebugMarkerObjectNameInfoEXT-pObjectName-parameter", - "text": " pObjectName must be a null-terminated UTF-8 string" - } - ] - }, - "vkDebugMarkerSetObjectTagEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-device-parameter", - "text": " device must be a valid VkDevice handle" - }, - { - "vuid": "VUID-vkDebugMarkerSetObjectTagEXT-pTagInfo-parameter", - "text": " pTagInfo must be a valid pointer to a valid VkDebugMarkerObjectTagInfoEXT structure" - } - ] - }, - "VkDebugMarkerObjectTagInfoEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-01493", - "text": " objectType must not be VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT" - }, - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01494", - "text": " object must not be VK_NULL_HANDLE" - }, - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-object-01495", - "text": " object must be a Vulkan object of the type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" - }, - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT" - }, - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-objectType-parameter", - "text": " objectType must be a valid VkDebugReportObjectTypeEXT value" - }, - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-pTag-parameter", - "text": " pTag must be a valid pointer to an array of tagSize bytes" - }, - { - "vuid": "VUID-VkDebugMarkerObjectTagInfoEXT-tagSize-arraylength", - "text": " tagSize must be greater than 0" - } - ] - }, - "vkCmdDebugMarkerBeginEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDebugMarkerBeginEXT-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" - }, - { - "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDebugMarkerBeginEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "VkDebugMarkerMarkerInfoEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT" - }, - { - "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pNext-pNext", - "text": " pNext must be NULL" - }, - { - "vuid": "VUID-VkDebugMarkerMarkerInfoEXT-pMarkerName-parameter", - "text": " pMarkerName must be a null-terminated UTF-8 string" - } - ] - }, - "vkCmdDebugMarkerEndEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01239", - "text": " There must be an outstanding vkCmdDebugMarkerBeginEXT command prior to the vkCmdDebugMarkerEndEXT on the queue that commandBuffer is submitted to" - }, - { - "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-01240", - "text": " If commandBuffer is a secondary command buffer, there must be an outstanding vkCmdDebugMarkerBeginEXT command recorded to commandBuffer that has not previously been ended by a call to vkCmdDebugMarkerEndEXT" - }, - { - "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDebugMarkerEndEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "vkCmdDebugMarkerInsertEXT": { - "(VK_EXT_debug_marker)": [ - { - "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdDebugMarkerInsertEXT-pMarkerInfo-parameter", - "text": " pMarkerInfo must be a valid pointer to a valid VkDebugMarkerMarkerInfoEXT structure" - }, - { - "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdDebugMarkerInsertEXT-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, or compute operations" - } - ] - }, - "vkCreateDebugReportCallbackEXT": { - "(VK_EXT_debug_report)": [ - { - "vuid": "VUID-vkCreateDebugReportCallbackEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCreateInfo-parameter", - "text": " pCreateInfo must be a valid pointer to a valid VkDebugReportCallbackCreateInfoEXT structure" - }, - { - "vuid": "VUID-vkCreateDebugReportCallbackEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkCreateDebugReportCallbackEXT-pCallback-parameter", - "text": " pCallback must be a valid pointer to a VkDebugReportCallbackEXT handle" - } - ] - }, - "VkDebugReportCallbackCreateInfoEXT": { - "(VK_EXT_debug_report)": [ - { - "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT" - }, - { - "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-flags-parameter", - "text": " flags must be a valid combination of VkDebugReportFlagBitsEXT values" - }, - { - "vuid": "VUID-VkDebugReportCallbackCreateInfoEXT-pfnCallback-parameter", - "text": " pfnCallback must be a valid PFN_vkDebugReportCallbackEXT value" - } - ] - }, - "vkDebugReportMessageEXT": { - "(VK_EXT_debug_report)": [ - { - "vuid": "VUID-vkDebugReportMessageEXT-object-01241", - "text": " object must be a Vulkan object or VK_NULL_HANDLE" - }, - { - "vuid": "VUID-vkDebugReportMessageEXT-objectType-01498", - "text": " If objectType is not VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT and object is not VK_NULL_HANDLE, object must be a Vulkan object of the corresponding type associated with objectType as defined in VkDebugReportObjectTypeEXT and Vulkan Handle Relationship" - }, - { - "vuid": "VUID-vkDebugReportMessageEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkDebugReportMessageEXT-flags-parameter", - "text": " flags must be a valid combination of VkDebugReportFlagBitsEXT values" - }, - { - "vuid": "VUID-vkDebugReportMessageEXT-flags-requiredbitmask", - "text": " flags must not be 0" - }, - { - "vuid": "VUID-vkDebugReportMessageEXT-objectType-parameter", - "text": " objectType must be a valid VkDebugReportObjectTypeEXT value" - }, - { - "vuid": "VUID-vkDebugReportMessageEXT-pLayerPrefix-parameter", - "text": " pLayerPrefix must be a null-terminated UTF-8 string" - }, - { - "vuid": "VUID-vkDebugReportMessageEXT-pMessage-parameter", - "text": " pMessage must be a null-terminated UTF-8 string" - } - ] - }, - "vkDestroyDebugReportCallbackEXT": { - "(VK_EXT_debug_report)": [ - { - "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01242", - "text": " If VkAllocationCallbacks were provided when callback was created, a compatible set of callbacks must be provided here" - }, - { - "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-01243", - "text": " If no VkAllocationCallbacks were provided when callback was created, pAllocator must be NULL" - }, - { - "vuid": "VUID-vkDestroyDebugReportCallbackEXT-instance-parameter", - "text": " instance must be a valid VkInstance handle" - }, - { - "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parameter", - "text": " If callback is not VK_NULL_HANDLE, callback must be a valid VkDebugReportCallbackEXT handle" - }, - { - "vuid": "VUID-vkDestroyDebugReportCallbackEXT-pAllocator-parameter", - "text": " If pAllocator is not NULL, pAllocator must be a valid pointer to a valid VkAllocationCallbacks structure" - }, - { - "vuid": "VUID-vkDestroyDebugReportCallbackEXT-callback-parent", - "text": " If callback is a valid handle, it must have been created, allocated, or retrieved from instance" - } - ] - }, - "vkCmdSetCheckpointNV": { - "(VK_NV_device_diagnostic_checkpoints)": [ - { - "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-parameter", - "text": " commandBuffer must be a valid VkCommandBuffer handle" - }, - { - "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-recording", - "text": " commandBuffer must be in the recording state" - }, - { - "vuid": "VUID-vkCmdSetCheckpointNV-commandBuffer-cmdpool", - "text": " The VkCommandPool that commandBuffer was allocated from must support graphics, compute, or transfer operations" - } - ] - }, - "vkGetQueueCheckpointDataNV": { - "(VK_NV_device_diagnostic_checkpoints)": [ - { - "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-02025", - "text": " The device that queue belongs to must be in the lost state" - }, - { - "vuid": "VUID-vkGetQueueCheckpointDataNV-queue-parameter", - "text": " queue must be a valid VkQueue handle" - }, - { - "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointDataCount-parameter", - "text": " pCheckpointDataCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetQueueCheckpointDataNV-pCheckpointData-parameter", - "text": " If the value referenced by pCheckpointDataCount is not 0, and pCheckpointData is not NULL, pCheckpointData must be a valid pointer to an array of pCheckpointDataCount VkCheckpointDataNV structures" - } - ] - }, - "VkCheckpointDataNV": { - "(VK_NV_device_diagnostic_checkpoints)": [ - { - "vuid": "VUID-VkCheckpointDataNV-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV" - }, - { - "vuid": "VUID-VkCheckpointDataNV-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "vkGetPhysicalDeviceToolPropertiesEXT": { - "(VK_EXT_tooling_info)": [ - { - "vuid": "VUID-vkGetPhysicalDeviceToolPropertiesEXT-physicalDevice-parameter", - "text": " physicalDevice must be a valid VkPhysicalDevice handle" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolCount-parameter", - "text": " pToolCount must be a valid pointer to a uint32_t value" - }, - { - "vuid": "VUID-vkGetPhysicalDeviceToolPropertiesEXT-pToolProperties-parameter", - "text": " If the value referenced by pToolCount is not 0, and pToolProperties is not NULL, pToolProperties must be a valid pointer to an array of pToolCount VkPhysicalDeviceToolPropertiesEXT structures" - } - ] - }, - "VkPhysicalDeviceToolPropertiesEXT": { - "(VK_EXT_tooling_info)": [ - { - "vuid": "VUID-VkPhysicalDeviceToolPropertiesEXT-sType-sType", - "text": " sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT" - }, - { - "vuid": "VUID-VkPhysicalDeviceToolPropertiesEXT-pNext-pNext", - "text": " pNext must be NULL" - } - ] - }, - "StandaloneSpirv": { - "core": [ - { - "vuid": "VUID-StandaloneSpirv-None-04633", - "text": " Every entry point must have no return value and accept no arguments" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04634", - "text": " The static function-call graph for an entry point must not contain cycles; that is, static recursion is not allowed" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04635", - "text": " The Logical or PhysicalStorageBuffer64 addressing model must be selected" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04636", - "text": " Scope for execution must be limited to Workgroup or Subgroup" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04637", - "text": " If the Scope for execution is Workgroup, then it must only be used in the task, mesh, tessellation control, or compute execution models" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04638", - "text": " Scope for memory must be limited to Device, QueueFamily, Workgroup, ShaderCallKHR, Subgroup, or Invocation" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04639", - "text": " If the Scope for memory is Workgroup, then it must only be used in the task, mesh, or compute execution models" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04640", - "text": " If the Scope for memory is ShaderCallKHR, then it must only be used in ray generation, intersection, closest hit, any-hit, miss, and callable execution models" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04641", - "text": " If the Scope for memory is Invocation, then memory semantics must be None" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04642", - "text": " Scope for Non Uniform Group Operations must be limited to Subgroup" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04643", - "text": " Storage Class must be limited to UniformConstant, Input, Uniform, Output, Workgroup, Private, Function, PushConstant, Image, StorageBuffer, RayPayloadKHR, IncomingRayPayloadKHR, HitAttributeKHR, CallableDataKHR, IncomingCallableDataKHR, ShaderRecordBufferKHR, or PhysicalStorageBuffer" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04644", - "text": " If the Storage Class is Output, then it must not be used in the RayGenerationKHR, IntersectionKHR, AnyHitKHR, ClosestHitKHR, MissKHR, or CallableKHR execution models" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04645", - "text": " If the Storage Class is Workgroup, then it must only be used in the task, mesh, or compute execution models" - }, - { - "vuid": "VUID-StandaloneSpirv-OpAtomicStore-04646", - "text": " Acquire memory semantics must not be used with OpAtomicStore" - }, - { - "vuid": "VUID-StandaloneSpirv-OpAtomicLoad-04647", - "text": " Release memory semantics must not be used with OpAtomicLoad" - }, - { - "vuid": "VUID-StandaloneSpirv-OpAtomicStore-04648", - "text": " AcquireRelease memory semantics must not be used with OpAtomicStore or OpAtomicLoad" - }, - { - "vuid": "VUID-StandaloneSpirv-OpMemoryBarrier-04649", - "text": " OpMemoryBarrier must use one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics and must include at least one storage class" - }, - { - "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04650", - "text": " If the semantics for OpControlBarrier includes one of Acquire, Release, AcquireRelease, or SequentiallyConsistent memory semantics, then it must include at least one storage class" - }, - { - "vuid": "VUID-StandaloneSpirv-OpVariable-04651", - "text": " Any OpVariable with an Initializer operand must have Output, Private, or Function as its Storage Class operand" - }, - { - "vuid": "VUID-StandaloneSpirv-OpReadClockKHR-04652", - "text": " Scope for OpReadClockKHR must be limited to Subgroup or Device" - }, - { - "vuid": "VUID-StandaloneSpirv-OriginLowerLeft-04653", - "text": " The OriginLowerLeft execution mode must not be used; fragment entry points must declare OriginUpperLeft" - }, - { - "vuid": "VUID-StandaloneSpirv-PixelCenterInteger-04654", - "text": " The PixelCenterInteger execution mode must not be used (pixels are always centered at half-integer coordinates)" - }, - { - "vuid": "VUID-StandaloneSpirv-UniformConstant-04655", - "text": " Any variable in the UniformConstant storage class must be typed as either OpTypeImage, OpTypeSampler, OpTypeSampledImage, OpTypeAccelerationStructureKHR, or an array of one of these types" - }, - { - "vuid": "VUID-StandaloneSpirv-OpTypeImage-04656", - "text": " OpTypeImage must declare a scalar 32-bit float, 64-bit integer, or 32-bit integer type for the “Sampled Type” (RelaxedPrecision can be applied to a sampling instruction and to the variable holding the result of a sampling instruction)" - }, - { - "vuid": "VUID-StandaloneSpirv-OpTypeImage-04657", - "text": " OpTypeImage must have a “Sampled” operand of 1 (sampled image) or 2 (storage image)" - }, - { - "vuid": "VUID-StandaloneSpirv-OpImageTexelPointer-04658", - "text": " If an OpImageTexelPointer is used in an atomic operation, the image type of the image parameter to OpImageTexelPointer must have an image format of R64i, R64ui, R32f, R32i, or R32ui" - }, - { - "vuid": "VUID-StandaloneSpirv-OpImageQuerySizeLod-04659", - "text": " OpImageQuerySizeLod, and OpImageQueryLevels must only consume an “Image” operand whose type has its “Sampled” operand set to 1" - }, - { - "vuid": "VUID-StandaloneSpirv-SubpassData-04660", - "text": " The (u,v) coordinates used for a SubpassData must be the <id> of a constant vector (0,0), or if a layer coordinate is used, must be a vector that was formed with constant 0 for the u and v components" - }, - { - "vuid": "VUID-StandaloneSpirv-OpTypeImage-04661", - "text": " Objects of types OpTypeImage, OpTypeSampler, OpTypeSampledImage, and arrays of these types must not be stored to or modified" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04662", - "text": " Any image operation must use at most one of the Offset, ConstOffset, and ConstOffsets image operands" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04663", - "text": " Image operand Offset must only be used with OpImage*Gather instructions" - }, - { - "vuid": "VUID-StandaloneSpirv-OpImageGather-04664", - "text": " The “Component” operand of OpImageGather, and OpImageSparseGather must be the <id> of a constant instruction" - }, - { - "vuid": "VUID-StandaloneSpirv-OpTypeAccelerationStructureKHR-04665", - "text": " Objects of types OpTypeAccelerationStructureKHR and arrays of this type must not be stored to or modified" - }, - { - "vuid": "VUID-StandaloneSpirv-OpReportIntersectionKHR-04666", - "text": " The value of the “Hit Kind” operand of OpReportIntersectionKHR must be in the range [0,127]" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04667", - "text": " Structure types must not contain opaque types" - }, - { - "vuid": "VUID-StandaloneSpirv-BuiltIn-04668", - "text": " Any BuiltIn decoration not listed in Built-In Variables must not be used" - }, - { - "vuid": "VUID-StandaloneSpirv-GLSLShared-04669", - "text": " The GLSLShared and GLSLPacked decorations must not be used" - }, - { - "vuid": "VUID-StandaloneSpirv-Flat-04670", - "text": " The Flat, NoPerspective, Sample, and Centroid decorations must not be used on variables with storage class other than Input or on variables used in the interface of non-fragment shader entry points" - }, - { - "vuid": "VUID-StandaloneSpirv-Patch-04671", - "text": " The Patch decoration must not be used on variables in the interface of a vertex, geometry, or fragment shader stage’s entry point" - }, - { - "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04672", - "text": " The ViewportRelativeNV decoration must only be used on a variable decorated with Layer in the vertex, tessellation evaluation, or geometry shader stages" - }, - { - "vuid": "VUID-StandaloneSpirv-ViewportRelativeNV-04673", - "text": " The ViewportRelativeNV decoration must not be used unless a variable decorated with one of ViewportIndex or ViewportMaskNV is also statically used by the same OpEntryPoint" - }, - { - "vuid": "VUID-StandaloneSpirv-ViewportMaskNV-04674", - "text": " The ViewportMaskNV and ViewportIndex decorations must not both be statically used by one or more OpEntryPoint’s that form the vertex processing stages of a graphics pipeline" - }, - { - "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04675", - "text": " Only the round-to-nearest-even and the round-towards-zero rounding modes can be used for the FPRoundingMode decoration" - }, - { - "vuid": "VUID-StandaloneSpirv-FPRoundingMode-04676", - "text": " The FPRoundingMode decoration can only be used for the floating-point conversion instructions as described in the SPV_KHR_16bit_storage SPIR-V extension" - }, - { - "vuid": "VUID-StandaloneSpirv-Invariant-04677", - "text": " Variables decorated with Invariant and variables with structure types that have any members decorated with Invariant must be in the Output or Input storage class, Invariant used on an Input storage class variable or structure member has no effect" - }, - { - "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04678", - "text": " If the VulkanMemoryModel capability is not declared, the Volatile decoration must be used on any variable declaration that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader" - }, - { - "vuid": "VUID-StandaloneSpirv-VulkanMemoryModel-04679", - "text": " If the VulkanMemoryModel capability is declared, the OpLoad instruction must use the Volatile memory semantics when it accesses into any variable that includes one of the SMIDNV, WarpIDNV, SubgroupSize, SubgroupLocalInvocationId, SubgroupEqMask, SubgroupGeMask, SubgroupGtMask, SubgroupLeMask, or SubgroupLtMask BuiltIn decorations when used in the ray generation, closest hit, miss, intersection, or callable shaders, or with the RayTmaxKHR Builtin decoration when used in an intersection shader" - }, - { - "vuid": "VUID-StandaloneSpirv-OpTypeRuntimeArray-04680", - "text": " OpTypeRuntimeArray must only be used for the last member of an OpTypeStruct that is in the StorageBuffer or PhysicalStorageBuffer storage class decorated as Block, or that is in the Uniform storage class decorated as BufferBlock" - }, - { - "vuid": "VUID-StandaloneSpirv-Function-04681", - "text": " A type T that is an array sized with a specialization constant can be, or be contained in, the type of a Variable V only if: T is the (top-level) type of V; V is declared in the Function, Private, or Workgroup storage classes; V is an interface variable with an additional level of arrayness, as described in interface matching, in which case T is allowed to be the element type of the (top-level) type of V" - }, - { - "vuid": "VUID-StandaloneSpirv-OpControlBarrier-04682", - "text": " If OpControlBarrier is used in ray generation, intersection, any-hit, closest hit, miss, fragment, vertex, tessellation evaluation, or geometry shaders, the execution Scope must be Subgroup" - }, - { - "vuid": "VUID-StandaloneSpirv-LocalSize-04683", - "text": " For each compute shader entry point, either a LocalSize execution mode or an object decorated with the WorkgroupSize decoration must be specified" - }, - { - "vuid": "VUID-StandaloneSpirv-DerivativeGroupQuadsNV-04684", - "text": " For compute shaders using the DerivativeGroupQuadsNV execution mode, the first two dimensions of the local workgroup size must be a multiple of two" - }, - { - "vuid": "VUID-StandaloneSpirv-OpGroupNonUniformBallotBitCount-04685", - "text": " If OpGroupNonUniformBallotBitCount is used, the group operation must be limited to Reduce, InclusiveScan, or ExclusiveScan" - }, - { - "vuid": "VUID-StandaloneSpirv-None-04686", - "text": " The Pointer operand of all atomic instructions must have a Storage Class limited to Uniform, Workgroup, Image, StorageBuffer" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04687", - "text": " Output variables or block members decorated with Offset that have a 64-bit type, or a composite type containing a 64-bit type, must specify an Offset value aligned to a 8 byte boundary" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04688", - "text": " Any output block or block member decorated with Offset containing a 64-bit type consumes a multiple of 8 bytes" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04689", - "text": " The size of any output block containing any member decorated with Offset that is a 64-bit type must be a multiple of 8" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04690", - "text": " The first member of an output block that specifies a Offset decoration must specify a Offset value that is aligned to an 8 byte boundary if that block contains any member decorated with Offset and is a 64-bit type" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04691", - "text": " Output variables or block members decorated with Offset that have a 32-bit type, or a composite type contains a 32-bit type, must specify an Offset value aligned to a 4 byte boundary" - }, - { - "vuid": "VUID-StandaloneSpirv-Offset-04692", - "text": " Output variables, blocks or block members decorated with Offset must only contain base types that have components that are either 32-bit or 64-bit in size" - }, - { - "vuid": "VUID-StandaloneSpirv-XfbBuffer-04693", - "text": " All variables or block members in the output interface of the entry point being compiled decorated with a specific XfbBuffer value must all be decorated with identical XfbStride values" - }, - { - "vuid": "VUID-StandaloneSpirv-Stream-04694", - "text": " If any variables or block members in the output interface of the entry point being compiled are decorated with Stream, then all variables belonging to the same XfbBuffer must specify the same Stream value" - }, - { - "vuid": "VUID-StandaloneSpirv-Stream-04695", - "text": " Output variables, blocks or block members that are not decorated with Stream default to vertex stream zero" - }, - { - "vuid": "VUID-StandaloneSpirv-XfbBuffer-04696", - "text": " For any two variables or block members in the output interface of the entry point being compiled with the same XfbBuffer value, the ranges determined by the Offset decoration and the size of the type must not overlap" - }, - { - "vuid": "VUID-StandaloneSpirv-XfbBuffer-04697", - "text": " All block members in the output interface of the entry point being compiled that are in the same block and have a declared or inherited XfbBuffer decoration must specify the same XfbBuffer value" - }, - { - "vuid": "VUID-StandaloneSpirv-RayPayloadKHR-04698", - "text": " RayPayloadKHR storage class must only be used in ray generation, any-hit, closest hit or miss shaders" - }, - { - "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04699", - "text": " IncomingRayPayloadKHR storage class must only be used in closest hit, any-hit, or miss shaders" - }, - { - "vuid": "VUID-StandaloneSpirv-IncomingRayPayloadKHR-04700", - "text": " There must be at most one variable with the IncomingRayPayloadKHR storage class in the input interface of an entry point" - }, - { - "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04701", - "text": " HitAttributeKHR storage class must only be used in intersection, any-hit, or closest hit shaders" - }, - { - "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04702", - "text": " There must be at most one variable with the HitAttributeKHR storage class in the input interface of an entry point" - }, - { - "vuid": "VUID-StandaloneSpirv-HitAttributeKHR-04703", - "text": " A variable with HitAttributeKHR storage class must only be written to in an intersection shader" - }, - { - "vuid": "VUID-StandaloneSpirv-CallableDataKHR-04704", - "text": " CallableDataKHR storage class must only be used in ray generation, closest hit, miss, and callable shaders" - }, - { - "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04705", - "text": " IncomingCallableDataKHR storage class must only be used in callable shaders" - }, - { - "vuid": "VUID-StandaloneSpirv-IncomingCallableDataKHR-04706", - "text": " There must be at most one variable with the IncomingCallableDataKHR storage class in the input interface of an entry point" - }, - { - "vuid": "VUID-StandaloneSpirv-Base-04707", - "text": " The Base operand of OpPtrAccessChain must point to one of the following: Workgroup, if VariablePointers is enabled; StorageBuffer, if VariablePointers or VariablePointersStorageBuffer is enabled; PhysicalStorageBuffer, if the PhysicalStorageBuffer64 addressing model is enabled" - }, - { - "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04708", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled, all instructions that support memory access operands and that use a physical pointer must include the Aligned operand" - }, - { - "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04709", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled, any access chain instruction that accesses into a RowMajor matrix must only be used as the Pointer operand to OpLoad or OpStore" - }, - { - "vuid": "VUID-StandaloneSpirv-PhysicalStorageBuffer64-04710", - "text": " If the PhysicalStorageBuffer64 addressing model is enabled, OpConvertUToPtr and OpConvertPtrToU must use an integer type whose Width is 64" - }, - { - "vuid": "VUID-StandaloneSpirv-OpTypeForwardPointer-04711", - "text": " OpTypeForwardPointer must have a storage class of PhysicalStorageBuffer" - } - ] - } - } -} \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/vk.xml b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/vk.xml deleted file mode 100644 index 084823b9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/vk.xml +++ /dev/null @@ -1,15138 +0,0 @@ - - - -Copyright (c) 2015-2020 The Khronos Group Inc. - -SPDX-License-Identifier: Apache-2.0 OR MIT - - - -This file, vk.xml, is the Vulkan API Registry. It is a critically important -and normative part of the Vulkan Specification, including a canonical -machine-readable definition of the API, parameter and member validation -language incorporated into the Specification and reference pages, and other -material which is registered by Khronos, such as tags used by extension and -layer authors. The authoritative public version of vk.xml is maintained in -the default branch (currently named main) of the Khronos Vulkan GitHub -project. The authoritative private version is maintained in the default -branch of the member gitlab server. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #include "vk_platform.h" - - WSI extensions - - - - - - - - - - - In the current header structure, each platform's interfaces - are confined to a platform-specific header (vulkan_xlib.h, - vulkan_win32.h, etc.). These headers are not self-contained, - and should not include native headers (X11/Xlib.h, - windows.h, etc.). Code should either include vulkan.h after - defining the appropriate VK_USE_PLATFORM_platform - macros, or include the required native headers prior to - explicitly including the corresponding platform header. - - To accomplish this, the dependencies of native types require - native headers, but the XML defines the content for those - native headers as empty. The actual native header includes - can be restored by modifying the native header tags above - to #include the header file in the 'name' attribute. - - - - - - - - - - - - - - - - - - - - - - - - - #define VK_MAKE_VERSION(major, minor, patch) \ - ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) - #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) - #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) - #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) - - // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. -//#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 - // Vulkan 1.0 version number -#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 - // Vulkan 1.1 version number -#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 - // Vulkan 1.2 version number -#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)// Patch version should always be set to 0 - // Version of this file -#define VK_HEADER_VERSION 165 - // Complete version of this file -#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION) - - -#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; - - -#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) -#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; -#else - #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; -#endif -#endif - - -#define VK_NULL_HANDLE 0 - - struct ANativeWindow; - struct AHardwareBuffer; - -#ifdef __OBJC__ -@class CAMetalLayer; -#else -typedef void CAMetalLayer; -#endif - - typedef uint32_t VkSampleMask; - typedef uint32_t VkBool32; - typedef uint32_t VkFlags; - typedef uint64_t VkDeviceSize; - typedef uint64_t VkDeviceAddress; - - Basic C types, pulled in via vk_platform.h - - - - - - - - - - - - - - Bitmask types - typedef VkFlags VkFramebufferCreateFlags; - typedef VkFlags VkQueryPoolCreateFlags; - typedef VkFlags VkRenderPassCreateFlags; - typedef VkFlags VkSamplerCreateFlags; - typedef VkFlags VkPipelineLayoutCreateFlags; - typedef VkFlags VkPipelineCacheCreateFlags; - typedef VkFlags VkPipelineDepthStencilStateCreateFlags; - typedef VkFlags VkPipelineDynamicStateCreateFlags; - typedef VkFlags VkPipelineColorBlendStateCreateFlags; - typedef VkFlags VkPipelineMultisampleStateCreateFlags; - typedef VkFlags VkPipelineRasterizationStateCreateFlags; - typedef VkFlags VkPipelineViewportStateCreateFlags; - typedef VkFlags VkPipelineTessellationStateCreateFlags; - typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; - typedef VkFlags VkPipelineVertexInputStateCreateFlags; - typedef VkFlags VkPipelineShaderStageCreateFlags; - typedef VkFlags VkDescriptorSetLayoutCreateFlags; - typedef VkFlags VkBufferViewCreateFlags; - typedef VkFlags VkInstanceCreateFlags; - typedef VkFlags VkDeviceCreateFlags; - typedef VkFlags VkDeviceQueueCreateFlags; - typedef VkFlags VkQueueFlags; - typedef VkFlags VkMemoryPropertyFlags; - typedef VkFlags VkMemoryHeapFlags; - typedef VkFlags VkAccessFlags; - typedef VkFlags VkBufferUsageFlags; - typedef VkFlags VkBufferCreateFlags; - typedef VkFlags VkShaderStageFlags; - typedef VkFlags VkImageUsageFlags; - typedef VkFlags VkImageCreateFlags; - typedef VkFlags VkImageViewCreateFlags; - typedef VkFlags VkPipelineCreateFlags; - typedef VkFlags VkColorComponentFlags; - typedef VkFlags VkFenceCreateFlags; - When VkSemaphoreCreateFlagBits is first extended, need to add a requires= attribute for it to VkSemaphoreCreateFlags - typedef VkFlags VkSemaphoreCreateFlags; - typedef VkFlags VkFormatFeatureFlags; - typedef VkFlags VkQueryControlFlags; - typedef VkFlags VkQueryResultFlags; - typedef VkFlags VkShaderModuleCreateFlags; - typedef VkFlags VkEventCreateFlags; - typedef VkFlags VkCommandPoolCreateFlags; - typedef VkFlags VkCommandPoolResetFlags; - typedef VkFlags VkCommandBufferResetFlags; - typedef VkFlags VkCommandBufferUsageFlags; - typedef VkFlags VkQueryPipelineStatisticFlags; - typedef VkFlags VkMemoryMapFlags; - typedef VkFlags VkImageAspectFlags; - typedef VkFlags VkSparseMemoryBindFlags; - typedef VkFlags VkSparseImageFormatFlags; - typedef VkFlags VkSubpassDescriptionFlags; - typedef VkFlags VkPipelineStageFlags; - typedef VkFlags VkSampleCountFlags; - typedef VkFlags VkAttachmentDescriptionFlags; - typedef VkFlags VkStencilFaceFlags; - typedef VkFlags VkCullModeFlags; - typedef VkFlags VkDescriptorPoolCreateFlags; - typedef VkFlags VkDescriptorPoolResetFlags; - typedef VkFlags VkDependencyFlags; - typedef VkFlags VkSubgroupFeatureFlags; - typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV; - typedef VkFlags VkIndirectStateFlagsNV; - typedef VkFlags VkGeometryFlagsKHR; - - typedef VkFlags VkGeometryInstanceFlagsKHR; - - typedef VkFlags VkBuildAccelerationStructureFlagsKHR; - - typedef VkFlags VkPrivateDataSlotCreateFlagsEXT; - typedef VkFlags VkAccelerationStructureCreateFlagsKHR; - typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; - - typedef VkFlags VkPipelineCreationFeedbackFlagsEXT; - typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; - typedef VkFlags VkAcquireProfilingLockFlagsKHR; - typedef VkFlags VkSemaphoreWaitFlags; - - typedef VkFlags VkPipelineCompilerControlFlagsAMD; - typedef VkFlags VkShaderCorePropertiesFlagsAMD; - typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV; - - WSI extensions - typedef VkFlags VkCompositeAlphaFlagsKHR; - typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; - typedef VkFlags VkSurfaceTransformFlagsKHR; - typedef VkFlags VkSwapchainCreateFlagsKHR; - typedef VkFlags VkDisplayModeCreateFlagsKHR; - typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; - typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; - typedef VkFlags VkViSurfaceCreateFlagsNN; - typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; - typedef VkFlags VkWin32SurfaceCreateFlagsKHR; - typedef VkFlags VkXlibSurfaceCreateFlagsKHR; - typedef VkFlags VkXcbSurfaceCreateFlagsKHR; - typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT; - typedef VkFlags VkIOSSurfaceCreateFlagsMVK; - typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; - typedef VkFlags VkMetalSurfaceCreateFlagsEXT; - typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA; - typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP; - typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; - typedef VkFlags VkPeerMemoryFeatureFlags; - - typedef VkFlags VkMemoryAllocateFlags; - - typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; - - typedef VkFlags VkDebugReportFlagsEXT; - typedef VkFlags VkCommandPoolTrimFlags; - - typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; - typedef VkFlags VkExternalMemoryFeatureFlagsNV; - typedef VkFlags VkExternalMemoryHandleTypeFlags; - - typedef VkFlags VkExternalMemoryFeatureFlags; - - typedef VkFlags VkExternalSemaphoreHandleTypeFlags; - - typedef VkFlags VkExternalSemaphoreFeatureFlags; - - typedef VkFlags VkSemaphoreImportFlags; - - typedef VkFlags VkExternalFenceHandleTypeFlags; - - typedef VkFlags VkExternalFenceFeatureFlags; - - typedef VkFlags VkFenceImportFlags; - - typedef VkFlags VkSurfaceCounterFlagsEXT; - typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; - typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; - typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; - typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; - typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV; - typedef VkFlags VkValidationCacheCreateFlagsEXT; - typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; - typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; - typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; - typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; - typedef VkFlags VkDeviceMemoryReportFlagsEXT; - typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; - typedef VkFlags VkDescriptorBindingFlags; - - typedef VkFlags VkConditionalRenderingFlagsEXT; - typedef VkFlags VkResolveModeFlags; - - typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; - typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; - typedef VkFlags VkSwapchainImageUsageFlagsANDROID; - typedef VkFlags VkToolPurposeFlagsEXT; - - Types which can be void pointers or class pointers, selected at compile time - VK_DEFINE_HANDLE(VkInstance) - VK_DEFINE_HANDLE(VkPhysicalDevice) - VK_DEFINE_HANDLE(VkDevice) - VK_DEFINE_HANDLE(VkQueue) - VK_DEFINE_HANDLE(VkCommandBuffer) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) - - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT) - - WSI extensions - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) - VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) - - Types generated from corresponding enums tags below - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - When VkSemaphoreCreateFlagBits is first extended, need to add a type enum tag for it here - - Extensions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WSI extensions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Enumerated types in the header, but not used by the API - - - - - - - - The PFN_vk*Function types are used by VkAllocationCallbacks below - typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( - void* pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); - typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( - void* pUserData, - size_t size, - VkInternalAllocationType allocationType, - VkSystemAllocationScope allocationScope); - typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( - void* pUserData, - void* pOriginal, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); - typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( - void* pUserData, - size_t size, - size_t alignment, - VkSystemAllocationScope allocationScope); - typedef void (VKAPI_PTR *PFN_vkFreeFunction)( - void* pUserData, - void* pMemory); - - The PFN_vkVoidFunction type are used by VkGet*ProcAddr below - typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); - - The PFN_vkDebugReportCallbackEXT type are used by the DEBUG_REPORT extension - typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( - VkDebugReportFlagsEXT flags, - VkDebugReportObjectTypeEXT objectType, - uint64_t object, - size_t location, - int32_t messageCode, - const char* pLayerPrefix, - const char* pMessage, - void* pUserData); - - The PFN_vkDebugUtilsMessengerCallbackEXT type are used by the VK_EXT_debug_utils extension - typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, - void* pUserData); - - The PFN_vkDeviceMemoryReportCallbackEXT type is used by the VK_EXT_device_memory_report extension - typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)( - const VkDeviceMemoryReportCallbackDataEXT* pCallbackData, - void* pUserData); - - Struct types - - VkStructureType sType - struct VkBaseOutStructure* pNext - - - VkStructureType sType - const struct VkBaseInStructure* pNext - - - int32_t x - int32_t y - - - int32_t x - int32_t y - int32_t z - - - uint32_t width - uint32_t height - - - uint32_t width - uint32_t height - uint32_t depth - - - float x - float y - float width - float height - float minDepth - float maxDepth - - - VkOffset2D offset - VkExtent2D extent - - - VkRect2D rect - uint32_t baseArrayLayer - uint32_t layerCount - - - VkComponentSwizzle r - VkComponentSwizzle g - VkComponentSwizzle b - VkComponentSwizzle a - - - uint32_t apiVersion - uint32_t driverVersion - uint32_t vendorID - uint32_t deviceID - VkPhysicalDeviceType deviceType - char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE] - uint8_t pipelineCacheUUID[VK_UUID_SIZE] - VkPhysicalDeviceLimits limits - VkPhysicalDeviceSparseProperties sparseProperties - - - char extensionName[VK_MAX_EXTENSION_NAME_SIZE]extension name - uint32_t specVersionversion of the extension specification implemented - - - char layerName[VK_MAX_EXTENSION_NAME_SIZE]layer name - uint32_t specVersionversion of the layer specification implemented - uint32_t implementationVersionbuild or release version of the layer's library - char description[VK_MAX_DESCRIPTION_SIZE]Free-form description of the layer - - - VkStructureType sType - const void* pNext - const char* pApplicationName - uint32_t applicationVersion - const char* pEngineName - uint32_t engineVersion - uint32_t apiVersion - - - void* pUserData - PFN_vkAllocationFunction pfnAllocation - PFN_vkReallocationFunction pfnReallocation - PFN_vkFreeFunction pfnFree - PFN_vkInternalAllocationNotification pfnInternalAllocation - PFN_vkInternalFreeNotification pfnInternalFree - - - VkStructureType sType - const void* pNext - VkDeviceQueueCreateFlags flags - uint32_t queueFamilyIndex - uint32_t queueCount - const float* pQueuePriorities - - - VkStructureType sType - const void* pNext - VkDeviceCreateFlags flags - uint32_t queueCreateInfoCount - const VkDeviceQueueCreateInfo* pQueueCreateInfos - uint32_t enabledLayerCount - const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled - uint32_t enabledExtensionCount - const char* const* ppEnabledExtensionNames - const VkPhysicalDeviceFeatures* pEnabledFeatures - - - VkStructureType sType - const void* pNext - VkInstanceCreateFlags flags - const VkApplicationInfo* pApplicationInfo - uint32_t enabledLayerCount - const char* const* ppEnabledLayerNamesOrdered list of layer names to be enabled - uint32_t enabledExtensionCount - const char* const* ppEnabledExtensionNamesExtension names to be enabled - - - VkQueueFlags queueFlagsQueue flags - uint32_t queueCount - uint32_t timestampValidBits - VkExtent3D minImageTransferGranularityMinimum alignment requirement for image transfers - - - uint32_t memoryTypeCount - VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES] - uint32_t memoryHeapCount - VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS] - - - VkStructureType sType - const void* pNext - VkDeviceSize allocationSizeSize of memory allocation - uint32_t memoryTypeIndexIndex of the of the memory type to allocate from - - - VkDeviceSize sizeSpecified in bytes - VkDeviceSize alignmentSpecified in bytes - uint32_t memoryTypeBitsBitmask of the allowed memory type indices into memoryTypes[] for this object - - - VkImageAspectFlags aspectMask - VkExtent3D imageGranularity - VkSparseImageFormatFlags flags - - - VkSparseImageFormatProperties formatProperties - uint32_t imageMipTailFirstLod - VkDeviceSize imageMipTailSizeSpecified in bytes, must be a multiple of sparse block size in bytes / alignment - VkDeviceSize imageMipTailOffsetSpecified in bytes, must be a multiple of sparse block size in bytes / alignment - VkDeviceSize imageMipTailStrideSpecified in bytes, must be a multiple of sparse block size in bytes / alignment - - - VkMemoryPropertyFlags propertyFlagsMemory properties of this memory type - uint32_t heapIndexIndex of the memory heap allocations of this memory type are taken from - - - VkDeviceSize sizeAvailable memory in the heap - VkMemoryHeapFlags flagsFlags for the heap - - - VkStructureType sType - const void* pNext - VkDeviceMemory memoryMapped memory object - VkDeviceSize offsetOffset within the memory object where the range starts - VkDeviceSize sizeSize of the range within the memory object - - - VkFormatFeatureFlags linearTilingFeaturesFormat features in case of linear tiling - VkFormatFeatureFlags optimalTilingFeaturesFormat features in case of optimal tiling - VkFormatFeatureFlags bufferFeaturesFormat features supported by buffers - - - VkExtent3D maxExtentmax image dimensions for this resource type - uint32_t maxMipLevelsmax number of mipmap levels for this resource type - uint32_t maxArrayLayersmax array size for this resource type - VkSampleCountFlags sampleCountssupported sample counts for this resource type - VkDeviceSize maxResourceSizemax size (in bytes) of this resource type - - - VkBuffer bufferBuffer used for this descriptor slot. - VkDeviceSize offsetBase offset from buffer start in bytes to update in the descriptor set. - VkDeviceSize rangeSize in bytes of the buffer resource for this descriptor update. - - - VkSampler samplerSampler to write to the descriptor in case it is a SAMPLER or COMBINED_IMAGE_SAMPLER descriptor. Ignored otherwise. - VkImageView imageViewImage view to write to the descriptor in case it is a SAMPLED_IMAGE, STORAGE_IMAGE, COMBINED_IMAGE_SAMPLER, or INPUT_ATTACHMENT descriptor. Ignored otherwise. - VkImageLayout imageLayoutLayout the image is expected to be in when accessed using this descriptor (only used if imageView is not VK_NULL_HANDLE). - - - VkStructureType sType - const void* pNext - VkDescriptorSet dstSetDestination descriptor set - uint32_t dstBindingBinding within the destination descriptor set to write - uint32_t dstArrayElementArray element within the destination binding to write - uint32_t descriptorCountNumber of descriptors to write (determines the size of the array pointed by pDescriptors) - VkDescriptorType descriptorTypeDescriptor type to write (determines which members of the array pointed by pDescriptors are going to be used) - const VkDescriptorImageInfo* pImageInfoSampler, image view, and layout for SAMPLER, COMBINED_IMAGE_SAMPLER, {SAMPLED,STORAGE}_IMAGE, and INPUT_ATTACHMENT descriptor types. - const VkDescriptorBufferInfo* pBufferInfoRaw buffer, size, and offset for {UNIFORM,STORAGE}_BUFFER[_DYNAMIC] descriptor types. - const VkBufferView* pTexelBufferViewBuffer view to write to the descriptor for {UNIFORM,STORAGE}_TEXEL_BUFFER descriptor types. - - - VkStructureType sType - const void* pNext - VkDescriptorSet srcSetSource descriptor set - uint32_t srcBindingBinding within the source descriptor set to copy from - uint32_t srcArrayElementArray element within the source binding to copy from - VkDescriptorSet dstSetDestination descriptor set - uint32_t dstBindingBinding within the destination descriptor set to copy to - uint32_t dstArrayElementArray element within the destination binding to copy to - uint32_t descriptorCountNumber of descriptors to write (determines the size of the array pointed by pDescriptors) - - - VkStructureType sType - const void* pNext - VkBufferCreateFlags flagsBuffer creation flags - VkDeviceSize sizeSpecified in bytes - VkBufferUsageFlags usageBuffer usage flags - VkSharingMode sharingMode - uint32_t queueFamilyIndexCount - const uint32_t* pQueueFamilyIndices - - - VkStructureType sType - const void* pNext - VkBufferViewCreateFlagsflags - VkBuffer buffer - VkFormat formatOptionally specifies format of elements - VkDeviceSize offsetSpecified in bytes - VkDeviceSize rangeView size specified in bytes - - - VkImageAspectFlags aspectMask - uint32_t mipLevel - uint32_t arrayLayer - - - VkImageAspectFlags aspectMask - uint32_t mipLevel - uint32_t baseArrayLayer - uint32_t layerCount - - - VkImageAspectFlags aspectMask - uint32_t baseMipLevel - uint32_t levelCount - uint32_t baseArrayLayer - uint32_t layerCount - - - VkStructureType sType - const void* pNext - VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize - VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize - - - VkStructureType sType - const void* pNext - VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize - VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize - uint32_t srcQueueFamilyIndexQueue family to transition ownership from - uint32_t dstQueueFamilyIndexQueue family to transition ownership to - VkBuffer bufferBuffer to sync - VkDeviceSize offsetOffset within the buffer to sync - VkDeviceSize sizeAmount of bytes to sync - - - VkStructureType sType - const void* pNext - VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize - VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize - VkImageLayout oldLayoutCurrent layout of the image - VkImageLayout newLayoutNew layout to transition the image to - uint32_t srcQueueFamilyIndexQueue family to transition ownership from - uint32_t dstQueueFamilyIndexQueue family to transition ownership to - VkImage imageImage to sync - VkImageSubresourceRange subresourceRangeSubresource range to sync - - - VkStructureType sType - const void* pNext - VkImageCreateFlags flagsImage creation flags - VkImageType imageType - VkFormat format - VkExtent3D extent - uint32_t mipLevels - uint32_t arrayLayers - VkSampleCountFlagBits samples - VkImageTiling tiling - VkImageUsageFlags usageImage usage flags - VkSharingMode sharingModeCross-queue-family sharing mode - uint32_t queueFamilyIndexCountNumber of queue families to share across - const uint32_t* pQueueFamilyIndicesArray of queue family indices to share across - VkImageLayout initialLayoutInitial image layout for all subresources - - - VkDeviceSize offsetSpecified in bytes - VkDeviceSize sizeSpecified in bytes - VkDeviceSize rowPitchSpecified in bytes - VkDeviceSize arrayPitchSpecified in bytes - VkDeviceSize depthPitchSpecified in bytes - - - VkStructureType sType - const void* pNext - VkImageViewCreateFlags flags - VkImage image - VkImageViewType viewType - VkFormat format - VkComponentMapping components - VkImageSubresourceRange subresourceRange - - - VkDeviceSize srcOffsetSpecified in bytes - VkDeviceSize dstOffsetSpecified in bytes - VkDeviceSize sizeSpecified in bytes - - - VkDeviceSize resourceOffsetSpecified in bytes - VkDeviceSize sizeSpecified in bytes - VkDeviceMemory memory - VkDeviceSize memoryOffsetSpecified in bytes - VkSparseMemoryBindFlagsflags - - - VkImageSubresource subresource - VkOffset3D offset - VkExtent3D extent - VkDeviceMemory memory - VkDeviceSize memoryOffsetSpecified in bytes - VkSparseMemoryBindFlagsflags - - - VkBuffer buffer - uint32_t bindCount - const VkSparseMemoryBind* pBinds - - - VkImage image - uint32_t bindCount - const VkSparseMemoryBind* pBinds - - - VkImage image - uint32_t bindCount - const VkSparseImageMemoryBind* pBinds - - - VkStructureType sType - const void* pNext - uint32_t waitSemaphoreCount - const VkSemaphore* pWaitSemaphores - uint32_t bufferBindCount - const VkSparseBufferMemoryBindInfo* pBufferBinds - uint32_t imageOpaqueBindCount - const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds - uint32_t imageBindCount - const VkSparseImageMemoryBindInfo* pImageBinds - uint32_t signalSemaphoreCount - const VkSemaphore* pSignalSemaphores - - - VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffsetSpecified in pixels for both compressed and uncompressed images - VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffsetSpecified in pixels for both compressed and uncompressed images - VkExtent3D extentSpecified in pixels for both compressed and uncompressed images - - - VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images - VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images - - - VkDeviceSize bufferOffsetSpecified in bytes - uint32_t bufferRowLengthSpecified in texels - uint32_t bufferImageHeight - VkImageSubresourceLayers imageSubresource - VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images - VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images - - - VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffset - VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffset - VkExtent3D extent - - - VkStructureType sType - const void* pNext - VkShaderModuleCreateFlags flags - size_t codeSizeSpecified in bytes - const uint32_t* pCodeBinary code of size codeSize - - - uint32_t bindingBinding number for this entry - VkDescriptorType descriptorTypeType of the descriptors in this binding - uint32_t descriptorCountNumber of descriptors in this binding - VkShaderStageFlags stageFlagsShader stages this binding is visible to - const VkSampler* pImmutableSamplersImmutable samplers (used if descriptor type is SAMPLER or COMBINED_IMAGE_SAMPLER, is either NULL or contains count number of elements) - - - VkStructureType sType - const void* pNext - VkDescriptorSetLayoutCreateFlags flags - uint32_t bindingCountNumber of bindings in the descriptor set layout - const VkDescriptorSetLayoutBinding* pBindingsArray of descriptor set layout bindings - - - VkDescriptorType type - uint32_t descriptorCount - - - VkStructureType sType - const void* pNext - VkDescriptorPoolCreateFlags flags - uint32_t maxSets - uint32_t poolSizeCount - const VkDescriptorPoolSize* pPoolSizes - - - VkStructureType sType - const void* pNext - VkDescriptorPool descriptorPool - uint32_t descriptorSetCount - const VkDescriptorSetLayout* pSetLayouts - - - uint32_t constantIDThe SpecConstant ID specified in the BIL - uint32_t offsetOffset of the value in the data block - size_t sizeSize in bytes of the SpecConstant - - - uint32_t mapEntryCountNumber of entries in the map - const VkSpecializationMapEntry* pMapEntriesArray of map entries - size_t dataSizeSize in bytes of pData - const void* pDataPointer to SpecConstant data - - - VkStructureType sType - const void* pNext - VkPipelineShaderStageCreateFlags flags - VkShaderStageFlagBits stageShader stage - VkShaderModule moduleModule containing entry point - const char* pNameNull-terminated entry point name - const VkSpecializationInfo* pSpecializationInfo - - - VkStructureType sType - const void* pNext - VkPipelineCreateFlags flagsPipeline creation flags - VkPipelineShaderStageCreateInfo stage - VkPipelineLayout layoutInterface layout of the pipeline - VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - uint32_t bindingVertex buffer binding id - uint32_t strideDistance between vertices in bytes (0 = no advancement) - VkVertexInputRate inputRateThe rate at which the vertex data is consumed - - - uint32_t locationlocation of the shader vertex attrib - uint32_t bindingVertex buffer binding id - VkFormat formatformat of source data - uint32_t offsetOffset of first element in bytes from base of vertex - - - VkStructureType sType - const void* pNext - VkPipelineVertexInputStateCreateFlags flags - uint32_t vertexBindingDescriptionCountnumber of bindings - const VkVertexInputBindingDescription* pVertexBindingDescriptions - uint32_t vertexAttributeDescriptionCountnumber of attributes - const VkVertexInputAttributeDescription* pVertexAttributeDescriptions - - - VkStructureType sType - const void* pNext - VkPipelineInputAssemblyStateCreateFlags flags - VkPrimitiveTopology topology - VkBool32 primitiveRestartEnable - - - VkStructureType sType - const void* pNext - VkPipelineTessellationStateCreateFlags flags - uint32_t patchControlPoints - - - VkStructureType sType - const void* pNext - VkPipelineViewportStateCreateFlags flags - uint32_t viewportCount - const VkViewport* pViewports - uint32_t scissorCount - const VkRect2D* pScissors - - - VkStructureType sType - const void* pNext - VkPipelineRasterizationStateCreateFlags flags - VkBool32 depthClampEnable - VkBool32 rasterizerDiscardEnable - VkPolygonMode polygonModeoptional (GL45) - VkCullModeFlags cullMode - VkFrontFace frontFace - VkBool32 depthBiasEnable - float depthBiasConstantFactor - float depthBiasClamp - float depthBiasSlopeFactor - float lineWidth - - - VkStructureType sType - const void* pNext - VkPipelineMultisampleStateCreateFlags flags - VkSampleCountFlagBits rasterizationSamplesNumber of samples used for rasterization - VkBool32 sampleShadingEnableoptional (GL45) - float minSampleShadingoptional (GL45) - const VkSampleMask* pSampleMaskArray of sampleMask words - VkBool32 alphaToCoverageEnable - VkBool32 alphaToOneEnable - - - VkBool32 blendEnable - VkBlendFactor srcColorBlendFactor - VkBlendFactor dstColorBlendFactor - VkBlendOp colorBlendOp - VkBlendFactor srcAlphaBlendFactor - VkBlendFactor dstAlphaBlendFactor - VkBlendOp alphaBlendOp - VkColorComponentFlags colorWriteMask - - - VkStructureType sType - const void* pNext - VkPipelineColorBlendStateCreateFlags flags - VkBool32 logicOpEnable - VkLogicOp logicOp - uint32_t attachmentCount# of pAttachments - const VkPipelineColorBlendAttachmentState* pAttachments - float blendConstants[4] - - - VkStructureType sType - const void* pNext - VkPipelineDynamicStateCreateFlags flags - uint32_t dynamicStateCount - const VkDynamicState* pDynamicStates - - - VkStencilOp failOp - VkStencilOp passOp - VkStencilOp depthFailOp - VkCompareOp compareOp - uint32_t compareMask - uint32_t writeMask - uint32_t reference - - - VkStructureType sType - const void* pNext - VkPipelineDepthStencilStateCreateFlags flags - VkBool32 depthTestEnable - VkBool32 depthWriteEnable - VkCompareOp depthCompareOp - VkBool32 depthBoundsTestEnableoptional (depth_bounds_test) - VkBool32 stencilTestEnable - VkStencilOpState front - VkStencilOpState back - float minDepthBounds - float maxDepthBounds - - - VkStructureType sType - const void* pNext - VkPipelineCreateFlags flagsPipeline creation flags - uint32_t stageCount - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage - const VkPipelineVertexInputStateCreateInfo* pVertexInputState - const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState - const VkPipelineTessellationStateCreateInfo* pTessellationState - const VkPipelineViewportStateCreateInfo* pViewportState - const VkPipelineRasterizationStateCreateInfo* pRasterizationState - const VkPipelineMultisampleStateCreateInfo* pMultisampleState - const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState - const VkPipelineColorBlendStateCreateInfo* pColorBlendState - const VkPipelineDynamicStateCreateInfo* pDynamicState - VkPipelineLayout layoutInterface layout of the pipeline - VkRenderPass renderPass - uint32_t subpass - VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - VkStructureType sType - const void* pNext - VkPipelineCacheCreateFlags flags - size_t initialDataSizeSize of initial data to populate cache, in bytes - const void* pInitialDataInitial data to populate cache - - - VkShaderStageFlags stageFlagsWhich stages use the range - uint32_t offsetStart of the range, in bytes - uint32_t sizeSize of the range, in bytes - - - VkStructureType sType - const void* pNext - VkPipelineLayoutCreateFlags flags - uint32_t setLayoutCountNumber of descriptor sets interfaced by the pipeline - const VkDescriptorSetLayout* pSetLayoutsArray of setCount number of descriptor set layout objects defining the layout of the - uint32_t pushConstantRangeCountNumber of push-constant ranges used by the pipeline - const VkPushConstantRange* pPushConstantRangesArray of pushConstantRangeCount number of ranges used by various shader stages - - - VkStructureType sType - const void* pNext - VkSamplerCreateFlags flags - VkFilter magFilterFilter mode for magnification - VkFilter minFilterFilter mode for minifiation - VkSamplerMipmapMode mipmapModeMipmap selection mode - VkSamplerAddressMode addressModeU - VkSamplerAddressMode addressModeV - VkSamplerAddressMode addressModeW - float mipLodBias - VkBool32 anisotropyEnable - float maxAnisotropy - VkBool32 compareEnable - VkCompareOp compareOp - float minLod - float maxLod - VkBorderColor borderColor - VkBool32 unnormalizedCoordinates - - - VkStructureType sType - const void* pNext - VkCommandPoolCreateFlags flagsCommand pool creation flags - uint32_t queueFamilyIndex - - - VkStructureType sType - const void* pNext - VkCommandPool commandPool - VkCommandBufferLevel level - uint32_t commandBufferCount - - - VkStructureType sType - const void* pNext - VkRenderPass renderPassRender pass for secondary command buffers - uint32_t subpass - VkFramebuffer framebufferFramebuffer for secondary command buffers - VkBool32 occlusionQueryEnableWhether this secondary command buffer may be executed during an occlusion query - VkQueryControlFlags queryFlagsQuery flags used by this secondary command buffer, if executed during an occlusion query - VkQueryPipelineStatisticFlags pipelineStatisticsPipeline statistics that may be counted for this secondary command buffer - - - VkStructureType sType - const void* pNext - VkCommandBufferUsageFlags flagsCommand buffer usage flags - const VkCommandBufferInheritanceInfo* pInheritanceInfoPointer to inheritance info for secondary command buffers - - - VkStructureType sType - const void* pNext - VkRenderPass renderPass - VkFramebuffer framebuffer - VkRect2D renderArea - uint32_t clearValueCount - const VkClearValue* pClearValues - - - float float32[4] - int32_t int32[4] - uint32_t uint32[4] - - - float depth - uint32_t stencil - - - VkClearColorValue color - VkClearDepthStencilValue depthStencil - - - VkImageAspectFlags aspectMask - uint32_t colorAttachment - VkClearValue clearValue - - - VkAttachmentDescriptionFlags flags - VkFormat format - VkSampleCountFlagBits samples - VkAttachmentLoadOp loadOpLoad operation for color or depth data - VkAttachmentStoreOp storeOpStore operation for color or depth data - VkAttachmentLoadOp stencilLoadOpLoad operation for stencil data - VkAttachmentStoreOp stencilStoreOpStore operation for stencil data - VkImageLayout initialLayout - VkImageLayout finalLayout - - - uint32_t attachment - VkImageLayout layout - - - VkSubpassDescriptionFlags flags - VkPipelineBindPoint pipelineBindPointMust be VK_PIPELINE_BIND_POINT_GRAPHICS for now - uint32_t inputAttachmentCount - const VkAttachmentReference* pInputAttachments - uint32_t colorAttachmentCount - const VkAttachmentReference* pColorAttachments - const VkAttachmentReference* pResolveAttachments - const VkAttachmentReference* pDepthStencilAttachment - uint32_t preserveAttachmentCount - const uint32_t* pPreserveAttachments - - - uint32_t srcSubpass - uint32_t dstSubpass - VkPipelineStageFlags srcStageMask - VkPipelineStageFlags dstStageMask - VkAccessFlags srcAccessMaskMemory accesses from the source of the dependency to synchronize - VkAccessFlags dstAccessMaskMemory accesses from the destination of the dependency to synchronize - VkDependencyFlags dependencyFlags - - - VkStructureType sType - const void* pNext - VkRenderPassCreateFlags flags - uint32_t attachmentCount - const VkAttachmentDescription* pAttachments - uint32_t subpassCount - const VkSubpassDescription* pSubpasses - uint32_t dependencyCount - const VkSubpassDependency* pDependencies - - - VkStructureType sType - const void* pNext - VkEventCreateFlags flagsEvent creation flags - - - VkStructureType sType - const void* pNext - VkFenceCreateFlags flagsFence creation flags - - - VkBool32 robustBufferAccessout of bounds buffer accesses are well defined - VkBool32 fullDrawIndexUint32full 32-bit range of indices for indexed draw calls - VkBool32 imageCubeArrayimage views which are arrays of cube maps - VkBool32 independentBlendblending operations are controlled per-attachment - VkBool32 geometryShadergeometry stage - VkBool32 tessellationShadertessellation control and evaluation stage - VkBool32 sampleRateShadingper-sample shading and interpolation - VkBool32 dualSrcBlendblend operations which take two sources - VkBool32 logicOplogic operations - VkBool32 multiDrawIndirectmulti draw indirect - VkBool32 drawIndirectFirstInstanceindirect draws can use non-zero firstInstance - VkBool32 depthClampdepth clamping - VkBool32 depthBiasClampdepth bias clamping - VkBool32 fillModeNonSolidpoint and wireframe fill modes - VkBool32 depthBoundsdepth bounds test - VkBool32 wideLineslines with width greater than 1 - VkBool32 largePointspoints with size greater than 1 - VkBool32 alphaToOnethe fragment alpha component can be forced to maximum representable alpha value - VkBool32 multiViewportviewport arrays - VkBool32 samplerAnisotropyanisotropic sampler filtering - VkBool32 textureCompressionETC2ETC texture compression formats - VkBool32 textureCompressionASTC_LDRASTC LDR texture compression formats - VkBool32 textureCompressionBCBC1-7 texture compressed formats - VkBool32 occlusionQueryPreciseprecise occlusion queries returning actual sample counts - VkBool32 pipelineStatisticsQuerypipeline statistics query - VkBool32 vertexPipelineStoresAndAtomicsstores and atomic ops on storage buffers and images are supported in vertex, tessellation, and geometry stages - VkBool32 fragmentStoresAndAtomicsstores and atomic ops on storage buffers and images are supported in the fragment stage - VkBool32 shaderTessellationAndGeometryPointSizetessellation and geometry stages can export point size - VkBool32 shaderImageGatherExtendedimage gather with run-time values and independent offsets - VkBool32 shaderStorageImageExtendedFormatsthe extended set of formats can be used for storage images - VkBool32 shaderStorageImageMultisamplemultisample images can be used for storage images - VkBool32 shaderStorageImageReadWithoutFormatread from storage image does not require format qualifier - VkBool32 shaderStorageImageWriteWithoutFormatwrite to storage image does not require format qualifier - VkBool32 shaderUniformBufferArrayDynamicIndexingarrays of uniform buffers can be accessed with dynamically uniform indices - VkBool32 shaderSampledImageArrayDynamicIndexingarrays of sampled images can be accessed with dynamically uniform indices - VkBool32 shaderStorageBufferArrayDynamicIndexingarrays of storage buffers can be accessed with dynamically uniform indices - VkBool32 shaderStorageImageArrayDynamicIndexingarrays of storage images can be accessed with dynamically uniform indices - VkBool32 shaderClipDistanceclip distance in shaders - VkBool32 shaderCullDistancecull distance in shaders - VkBool32 shaderFloat6464-bit floats (doubles) in shaders - VkBool32 shaderInt6464-bit integers in shaders - VkBool32 shaderInt1616-bit integers in shaders - VkBool32 shaderResourceResidencyshader can use texture operations that return resource residency information (requires sparseNonResident support) - VkBool32 shaderResourceMinLodshader can use texture operations that specify minimum resource LOD - VkBool32 sparseBindingSparse resources support: Resource memory can be managed at opaque page level rather than object level - VkBool32 sparseResidencyBufferSparse resources support: GPU can access partially resident buffers - VkBool32 sparseResidencyImage2DSparse resources support: GPU can access partially resident 2D (non-MSAA non-depth/stencil) images - VkBool32 sparseResidencyImage3DSparse resources support: GPU can access partially resident 3D images - VkBool32 sparseResidency2SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 2 samples - VkBool32 sparseResidency4SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 4 samples - VkBool32 sparseResidency8SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 8 samples - VkBool32 sparseResidency16SamplesSparse resources support: GPU can access partially resident MSAA 2D images with 16 samples - VkBool32 sparseResidencyAliasedSparse resources support: GPU can correctly access data aliased into multiple locations (opt-in) - VkBool32 variableMultisampleRatemultisample rate must be the same for all pipelines in a subpass - VkBool32 inheritedQueriesQueries may be inherited from primary to secondary command buffers - - - VkBool32 residencyStandard2DBlockShapeSparse resources support: GPU will access all 2D (single sample) sparse resources using the standard sparse image block shapes (based on pixel format) - VkBool32 residencyStandard2DMultisampleBlockShapeSparse resources support: GPU will access all 2D (multisample) sparse resources using the standard sparse image block shapes (based on pixel format) - VkBool32 residencyStandard3DBlockShapeSparse resources support: GPU will access all 3D sparse resources using the standard sparse image block shapes (based on pixel format) - VkBool32 residencyAlignedMipSizeSparse resources support: Images with mip level dimensions that are NOT a multiple of the sparse image block dimensions will be placed in the mip tail - VkBool32 residencyNonResidentStrictSparse resources support: GPU can consistently access non-resident regions of a resource, all reads return as if data is 0, writes are discarded - - - resource maximum sizes - uint32_t maxImageDimension1Dmax 1D image dimension - uint32_t maxImageDimension2Dmax 2D image dimension - uint32_t maxImageDimension3Dmax 3D image dimension - uint32_t maxImageDimensionCubemax cubemap image dimension - uint32_t maxImageArrayLayersmax layers for image arrays - uint32_t maxTexelBufferElementsmax texel buffer size (fstexels) - uint32_t maxUniformBufferRangemax uniform buffer range (bytes) - uint32_t maxStorageBufferRangemax storage buffer range (bytes) - uint32_t maxPushConstantsSizemax size of the push constants pool (bytes) - memory limits - uint32_t maxMemoryAllocationCountmax number of device memory allocations supported - uint32_t maxSamplerAllocationCountmax number of samplers that can be allocated on a device - VkDeviceSize bufferImageGranularityGranularity (in bytes) at which buffers and images can be bound to adjacent memory for simultaneous usage - VkDeviceSize sparseAddressSpaceSizeTotal address space available for sparse allocations (bytes) - descriptor set limits - uint32_t maxBoundDescriptorSetsmax number of descriptors sets that can be bound to a pipeline - uint32_t maxPerStageDescriptorSamplersmax number of samplers allowed per-stage in a descriptor set - uint32_t maxPerStageDescriptorUniformBuffersmax number of uniform buffers allowed per-stage in a descriptor set - uint32_t maxPerStageDescriptorStorageBuffersmax number of storage buffers allowed per-stage in a descriptor set - uint32_t maxPerStageDescriptorSampledImagesmax number of sampled images allowed per-stage in a descriptor set - uint32_t maxPerStageDescriptorStorageImagesmax number of storage images allowed per-stage in a descriptor set - uint32_t maxPerStageDescriptorInputAttachmentsmax number of input attachments allowed per-stage in a descriptor set - uint32_t maxPerStageResourcesmax number of resources allowed by a single stage - uint32_t maxDescriptorSetSamplersmax number of samplers allowed in all stages in a descriptor set - uint32_t maxDescriptorSetUniformBuffersmax number of uniform buffers allowed in all stages in a descriptor set - uint32_t maxDescriptorSetUniformBuffersDynamicmax number of dynamic uniform buffers allowed in all stages in a descriptor set - uint32_t maxDescriptorSetStorageBuffersmax number of storage buffers allowed in all stages in a descriptor set - uint32_t maxDescriptorSetStorageBuffersDynamicmax number of dynamic storage buffers allowed in all stages in a descriptor set - uint32_t maxDescriptorSetSampledImagesmax number of sampled images allowed in all stages in a descriptor set - uint32_t maxDescriptorSetStorageImagesmax number of storage images allowed in all stages in a descriptor set - uint32_t maxDescriptorSetInputAttachmentsmax number of input attachments allowed in all stages in a descriptor set - vertex stage limits - uint32_t maxVertexInputAttributesmax number of vertex input attribute slots - uint32_t maxVertexInputBindingsmax number of vertex input binding slots - uint32_t maxVertexInputAttributeOffsetmax vertex input attribute offset added to vertex buffer offset - uint32_t maxVertexInputBindingStridemax vertex input binding stride - uint32_t maxVertexOutputComponentsmax number of output components written by vertex shader - tessellation control stage limits - uint32_t maxTessellationGenerationLevelmax level supported by tessellation primitive generator - uint32_t maxTessellationPatchSizemax patch size (vertices) - uint32_t maxTessellationControlPerVertexInputComponentsmax number of input components per-vertex in TCS - uint32_t maxTessellationControlPerVertexOutputComponentsmax number of output components per-vertex in TCS - uint32_t maxTessellationControlPerPatchOutputComponentsmax number of output components per-patch in TCS - uint32_t maxTessellationControlTotalOutputComponentsmax total number of per-vertex and per-patch output components in TCS - tessellation evaluation stage limits - uint32_t maxTessellationEvaluationInputComponentsmax number of input components per vertex in TES - uint32_t maxTessellationEvaluationOutputComponentsmax number of output components per vertex in TES - geometry stage limits - uint32_t maxGeometryShaderInvocationsmax invocation count supported in geometry shader - uint32_t maxGeometryInputComponentsmax number of input components read in geometry stage - uint32_t maxGeometryOutputComponentsmax number of output components written in geometry stage - uint32_t maxGeometryOutputVerticesmax number of vertices that can be emitted in geometry stage - uint32_t maxGeometryTotalOutputComponentsmax total number of components (all vertices) written in geometry stage - fragment stage limits - uint32_t maxFragmentInputComponentsmax number of input components read in fragment stage - uint32_t maxFragmentOutputAttachmentsmax number of output attachments written in fragment stage - uint32_t maxFragmentDualSrcAttachmentsmax number of output attachments written when using dual source blending - uint32_t maxFragmentCombinedOutputResourcesmax total number of storage buffers, storage images and output buffers - compute stage limits - uint32_t maxComputeSharedMemorySizemax total storage size of work group local storage (bytes) - uint32_t maxComputeWorkGroupCount[3]max num of compute work groups that may be dispatched by a single command (x,y,z) - uint32_t maxComputeWorkGroupInvocationsmax total compute invocations in a single local work group - uint32_t maxComputeWorkGroupSize[3]max local size of a compute work group (x,y,z) - uint32_t subPixelPrecisionBitsnumber bits of subpixel precision in screen x and y - uint32_t subTexelPrecisionBitsnumber bits of precision for selecting texel weights - uint32_t mipmapPrecisionBitsnumber bits of precision for selecting mipmap weights - uint32_t maxDrawIndexedIndexValuemax index value for indexed draw calls (for 32-bit indices) - uint32_t maxDrawIndirectCountmax draw count for indirect draw calls - float maxSamplerLodBiasmax absolute sampler LOD bias - float maxSamplerAnisotropymax degree of sampler anisotropy - uint32_t maxViewportsmax number of active viewports - uint32_t maxViewportDimensions[2]max viewport dimensions (x,y) - float viewportBoundsRange[2]viewport bounds range (min,max) - uint32_t viewportSubPixelBitsnumber bits of subpixel precision for viewport - size_t minMemoryMapAlignmentmin required alignment of pointers returned by MapMemory (bytes) - VkDeviceSize minTexelBufferOffsetAlignmentmin required alignment for texel buffer offsets (bytes) - VkDeviceSize minUniformBufferOffsetAlignmentmin required alignment for uniform buffer sizes and offsets (bytes) - VkDeviceSize minStorageBufferOffsetAlignmentmin required alignment for storage buffer offsets (bytes) - int32_t minTexelOffsetmin texel offset for OpTextureSampleOffset - uint32_t maxTexelOffsetmax texel offset for OpTextureSampleOffset - int32_t minTexelGatherOffsetmin texel offset for OpTextureGatherOffset - uint32_t maxTexelGatherOffsetmax texel offset for OpTextureGatherOffset - float minInterpolationOffsetfurthest negative offset for interpolateAtOffset - float maxInterpolationOffsetfurthest positive offset for interpolateAtOffset - uint32_t subPixelInterpolationOffsetBitsnumber of subpixel bits for interpolateAtOffset - uint32_t maxFramebufferWidthmax width for a framebuffer - uint32_t maxFramebufferHeightmax height for a framebuffer - uint32_t maxFramebufferLayersmax layer count for a layered framebuffer - VkSampleCountFlags framebufferColorSampleCountssupported color sample counts for a framebuffer - VkSampleCountFlags framebufferDepthSampleCountssupported depth sample counts for a framebuffer - VkSampleCountFlags framebufferStencilSampleCountssupported stencil sample counts for a framebuffer - VkSampleCountFlags framebufferNoAttachmentsSampleCountssupported sample counts for a subpass which uses no attachments - uint32_t maxColorAttachmentsmax number of color attachments per subpass - VkSampleCountFlags sampledImageColorSampleCountssupported color sample counts for a non-integer sampled image - VkSampleCountFlags sampledImageIntegerSampleCountssupported sample counts for an integer image - VkSampleCountFlags sampledImageDepthSampleCountssupported depth sample counts for a sampled image - VkSampleCountFlags sampledImageStencilSampleCountssupported stencil sample counts for a sampled image - VkSampleCountFlags storageImageSampleCountssupported sample counts for a storage image - uint32_t maxSampleMaskWordsmax number of sample mask words - VkBool32 timestampComputeAndGraphicstimestamps on graphics and compute queues - float timestampPeriodnumber of nanoseconds it takes for timestamp query value to increment by 1 - uint32_t maxClipDistancesmax number of clip distances - uint32_t maxCullDistancesmax number of cull distances - uint32_t maxCombinedClipAndCullDistancesmax combined number of user clipping - uint32_t discreteQueuePrioritiesdistinct queue priorities available - float pointSizeRange[2]range (min,max) of supported point sizes - float lineWidthRange[2]range (min,max) of supported line widths - float pointSizeGranularitygranularity of supported point sizes - float lineWidthGranularitygranularity of supported line widths - VkBool32 strictLinesline rasterization follows preferred rules - VkBool32 standardSampleLocationssupports standard sample locations for all supported sample counts - VkDeviceSize optimalBufferCopyOffsetAlignmentoptimal offset of buffer copies - VkDeviceSize optimalBufferCopyRowPitchAlignmentoptimal pitch of buffer copies - VkDeviceSize nonCoherentAtomSizeminimum size and alignment for non-coherent host-mapped device memory access - - - VkStructureType sType - const void* pNext - VkSemaphoreCreateFlags flagsSemaphore creation flags - - - VkStructureType sType - const void* pNext - VkQueryPoolCreateFlags flags - VkQueryType queryType - uint32_t queryCount - VkQueryPipelineStatisticFlags pipelineStatisticsOptional - - - VkStructureType sType - const void* pNext - VkFramebufferCreateFlags flags - VkRenderPass renderPass - uint32_t attachmentCount - const VkImageView* pAttachments - uint32_t width - uint32_t height - uint32_t layers - - - uint32_t vertexCount - uint32_t instanceCount - uint32_t firstVertex - uint32_t firstInstance - - - uint32_t indexCount - uint32_t instanceCount - uint32_t firstIndex - int32_t vertexOffset - uint32_t firstInstance - - - uint32_t x - uint32_t y - uint32_t z - - - VkStructureType sType - const void* pNext - uint32_t waitSemaphoreCount - const VkSemaphore* pWaitSemaphores - const VkPipelineStageFlags* pWaitDstStageMask - uint32_t commandBufferCount - const VkCommandBuffer* pCommandBuffers - uint32_t signalSemaphoreCount - const VkSemaphore* pSignalSemaphores - - WSI extensions - - VkDisplayKHR displayHandle of the display object - const char* displayNameName of the display - VkExtent2D physicalDimensionsIn millimeters? - VkExtent2D physicalResolutionMax resolution for CRT? - VkSurfaceTransformFlagsKHR supportedTransformsone or more bits from VkSurfaceTransformFlagsKHR - VkBool32 planeReorderPossibleVK_TRUE if the overlay plane's z-order can be changed on this display. - VkBool32 persistentContentVK_TRUE if this is a "smart" display that supports self-refresh/internal buffering. - - - VkDisplayKHR currentDisplayDisplay the plane is currently associated with. Will be VK_NULL_HANDLE if the plane is not in use. - uint32_t currentStackIndexCurrent z-order of the plane. - - - VkExtent2D visibleRegionVisible scanout region. - uint32_t refreshRateNumber of times per second the display is updated. - - - VkDisplayModeKHR displayModeHandle of this display mode. - VkDisplayModeParametersKHR parametersThe parameters this mode uses. - - - VkStructureType sType - const void* pNext - VkDisplayModeCreateFlagsKHR flags - VkDisplayModeParametersKHR parametersThe parameters this mode uses. - - - VkDisplayPlaneAlphaFlagsKHR supportedAlphaTypes of alpha blending supported, if any. - VkOffset2D minSrcPositionDoes the plane have any position and extent restrictions? - VkOffset2D maxSrcPosition - VkExtent2D minSrcExtent - VkExtent2D maxSrcExtent - VkOffset2D minDstPosition - VkOffset2D maxDstPosition - VkExtent2D minDstExtent - VkExtent2D maxDstExtent - - - VkStructureType sType - const void* pNext - VkDisplaySurfaceCreateFlagsKHR flags - VkDisplayModeKHR displayModeThe mode to use when displaying this surface - uint32_t planeIndexThe plane on which this surface appears. Must be between 0 and the value returned by vkGetPhysicalDeviceDisplayPlanePropertiesKHR() in pPropertyCount. - uint32_t planeStackIndexThe z-order of the plane. - VkSurfaceTransformFlagBitsKHR transformTransform to apply to the images as part of the scanout operation - float globalAlphaGlobal alpha value. Must be between 0 and 1, inclusive. Ignored if alphaMode is not VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR - VkDisplayPlaneAlphaFlagBitsKHR alphaModeWhat type of alpha blending to use. Must be a bit from vkGetDisplayPlanePropertiesKHR::supportedAlpha. - VkExtent2D imageExtentsize of the images to use with this surface - - - VkStructureType sType - const void* pNext - VkRect2D srcRectRectangle within the presentable image to read pixel data from when presenting to the display. - VkRect2D dstRectRectangle within the current display mode's visible region to display srcRectangle in. - VkBool32 persistentFor smart displays, use buffered mode. If the display properties member "persistentMode" is VK_FALSE, this member must always be VK_FALSE. - - - uint32_t minImageCountSupported minimum number of images for the surface - uint32_t maxImageCountSupported maximum number of images for the surface, 0 for unlimited - VkExtent2D currentExtentCurrent image width and height for the surface, (0, 0) if undefined - VkExtent2D minImageExtentSupported minimum image width and height for the surface - VkExtent2D maxImageExtentSupported maximum image width and height for the surface - uint32_t maxImageArrayLayersSupported maximum number of image layers for the surface - VkSurfaceTransformFlagsKHR supportedTransforms1 or more bits representing the transforms supported - VkSurfaceTransformFlagBitsKHR currentTransformThe surface's current transform relative to the device's natural orientation - VkCompositeAlphaFlagsKHR supportedCompositeAlpha1 or more bits representing the alpha compositing modes supported - VkImageUsageFlags supportedUsageFlagsSupported image usage flags for the surface - - - VkStructureType sType - const void* pNext - VkAndroidSurfaceCreateFlagsKHR flags - struct ANativeWindow* window - - - VkStructureType sType - const void* pNext - VkViSurfaceCreateFlagsNN flags - void* window - - - VkStructureType sType - const void* pNext - VkWaylandSurfaceCreateFlagsKHR flags - struct wl_display* display - struct wl_surface* surface - - - VkStructureType sType - const void* pNext - VkWin32SurfaceCreateFlagsKHR flags - HINSTANCE hinstance - HWND hwnd - - - VkStructureType sType - const void* pNext - VkXlibSurfaceCreateFlagsKHR flags - Display* dpy - Window window - - - VkStructureType sType - const void* pNext - VkXcbSurfaceCreateFlagsKHR flags - xcb_connection_t* connection - xcb_window_t window - - - VkStructureType sType - const void* pNext - VkDirectFBSurfaceCreateFlagsEXT flags - IDirectFB* dfb - IDirectFBSurface* surface - - - VkStructureType sType - const void* pNext - VkImagePipeSurfaceCreateFlagsFUCHSIA flags - zx_handle_t imagePipeHandle - - - VkStructureType sType - const void* pNext - VkStreamDescriptorSurfaceCreateFlagsGGP flags - GgpStreamDescriptor streamDescriptor - - - VkFormat formatSupported pair of rendering format - VkColorSpaceKHR colorSpaceand color space for the surface - - - VkStructureType sType - const void* pNext - VkSwapchainCreateFlagsKHR flags - VkSurfaceKHR surfaceThe swapchain's target surface - uint32_t minImageCountMinimum number of presentation images the application needs - VkFormat imageFormatFormat of the presentation images - VkColorSpaceKHR imageColorSpaceColorspace of the presentation images - VkExtent2D imageExtentDimensions of the presentation images - uint32_t imageArrayLayersDetermines the number of views for multiview/stereo presentation - VkImageUsageFlags imageUsageBits indicating how the presentation images will be used - VkSharingMode imageSharingModeSharing mode used for the presentation images - uint32_t queueFamilyIndexCountNumber of queue families having access to the images in case of concurrent sharing mode - const uint32_t* pQueueFamilyIndicesArray of queue family indices having access to the images in case of concurrent sharing mode - VkSurfaceTransformFlagBitsKHR preTransformThe transform, relative to the device's natural orientation, applied to the image content prior to presentation - VkCompositeAlphaFlagBitsKHR compositeAlphaThe alpha blending mode used when compositing this surface with other surfaces in the window system - VkPresentModeKHR presentModeWhich presentation mode to use for presents on this swap chain - VkBool32 clippedSpecifies whether presentable images may be affected by window clip regions - VkSwapchainKHR oldSwapchainExisting swap chain to replace, if any - - - VkStructureType sType - const void* pNext - uint32_t waitSemaphoreCountNumber of semaphores to wait for before presenting - const VkSemaphore* pWaitSemaphoresSemaphores to wait for before presenting - uint32_t swapchainCountNumber of swapchains to present in this call - const VkSwapchainKHR* pSwapchainsSwapchains to present an image from - const uint32_t* pImageIndicesIndices of which presentable images to present - VkResult* pResultsOptional (i.e. if non-NULL) VkResult for each swapchain - - - VkStructureType sType - const void* pNext - VkDebugReportFlagsEXT flagsIndicates which events call this callback - PFN_vkDebugReportCallbackEXT pfnCallbackFunction pointer of a callback function - void* pUserDataUser data provided to callback function - - - VkStructureType sTypeMust be VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT - const void* pNext - uint32_t disabledValidationCheckCountNumber of validation checks to disable - const VkValidationCheckEXT* pDisabledValidationChecksValidation checks to disable - - - VkStructureType sTypeMust be VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT - const void* pNext - uint32_t enabledValidationFeatureCountNumber of validation features to enable - const VkValidationFeatureEnableEXT* pEnabledValidationFeaturesValidation features to enable - uint32_t disabledValidationFeatureCountNumber of validation features to disable - const VkValidationFeatureDisableEXT* pDisabledValidationFeaturesValidation features to disable - - - VkStructureType sType - const void* pNext - VkRasterizationOrderAMD rasterizationOrderRasterization order to use for the pipeline - - - VkStructureType sType - const void* pNext - VkDebugReportObjectTypeEXT objectTypeThe type of the object - uint64_t objectThe handle of the object, cast to uint64_t - const char* pObjectNameName to apply to the object - - - VkStructureType sType - const void* pNext - VkDebugReportObjectTypeEXT objectTypeThe type of the object - uint64_t objectThe handle of the object, cast to uint64_t - uint64_t tagNameThe name of the tag to set on the object - size_t tagSizeThe length in bytes of the tag data - const void* pTagTag data to attach to the object - - - VkStructureType sType - const void* pNext - const char* pMarkerNameName of the debug marker - float color[4]Optional color for debug marker - - - VkStructureType sType - const void* pNext - VkBool32 dedicatedAllocationWhether this image uses a dedicated allocation - - - VkStructureType sType - const void* pNext - VkBool32 dedicatedAllocationWhether this buffer uses a dedicated allocation - - - VkStructureType sType - const void* pNext - VkImage imageImage that this allocation will be bound to - VkBuffer bufferBuffer that this allocation will be bound to - - - VkImageFormatProperties imageFormatProperties - VkExternalMemoryFeatureFlagsNV externalMemoryFeatures - VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes - VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlagsNV handleTypes - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlagsNV handleTypes - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlagsNV handleType - HANDLE handle - - - VkStructureType sType - const void* pNext - const SECURITY_ATTRIBUTES* pAttributes - DWORD dwAccess - - - VkStructureType sType - const void* pNext - uint32_t acquireCount - const VkDeviceMemory* pAcquireSyncs - const uint64_t* pAcquireKeys - const uint32_t* pAcquireTimeoutMilliseconds - uint32_t releaseCount - const VkDeviceMemory* pReleaseSyncs - const uint64_t* pReleaseKeys - - - VkStructureTypesType - void* pNext - VkBool32 deviceGeneratedCommands - - - VkStructureType sType - const void* pNext - uint32_t privateDataSlotRequestCount - - - VkStructureType sType - const void* pNext - VkPrivateDataSlotCreateFlagsEXT flags - - - VkStructureType sType - void* pNext - VkBool32 privateData - - - VkStructureType sType - void* pNext - uint32_t maxGraphicsShaderGroupCount - uint32_t maxIndirectSequenceCount - uint32_t maxIndirectCommandsTokenCount - uint32_t maxIndirectCommandsStreamCount - uint32_t maxIndirectCommandsTokenOffset - uint32_t maxIndirectCommandsStreamStride - uint32_t minSequencesCountBufferOffsetAlignment - uint32_t minSequencesIndexBufferOffsetAlignment - uint32_t minIndirectCommandsBufferOffsetAlignment - - - VkStructureType sType - const void* pNext - uint32_t stageCount - const VkPipelineShaderStageCreateInfo* pStages - const VkPipelineVertexInputStateCreateInfo* pVertexInputState - const VkPipelineTessellationStateCreateInfo* pTessellationState - - - VkStructureType sType - const void* pNext - uint32_t groupCount - const VkGraphicsShaderGroupCreateInfoNV* pGroups - uint32_t pipelineCount - const VkPipeline* pPipelines - - - uint32_t groupIndex - - - VkDeviceAddress bufferAddress - uint32_t size - VkIndexType indexType - - - VkDeviceAddress bufferAddress - uint32_t size - uint32_t stride - - - uint32_t data - - - VkBuffer buffer - VkDeviceSize offset - - - VkStructureType sType - const void* pNext - VkIndirectCommandsTokenTypeNV tokenType - uint32_t stream - uint32_t offset - uint32_t vertexBindingUnit - VkBool32 vertexDynamicStride - VkPipelineLayout pushconstantPipelineLayout - VkShaderStageFlags pushconstantShaderStageFlags - uint32_t pushconstantOffset - uint32_t pushconstantSize - VkIndirectStateFlagsNV indirectStateFlags - uint32_t indexTypeCount - const VkIndexType* pIndexTypes - const uint32_t* pIndexTypeValues - - - VkStructureType sType - const void* pNext - VkIndirectCommandsLayoutUsageFlagsNV flags - VkPipelineBindPoint pipelineBindPoint - uint32_t tokenCount - const VkIndirectCommandsLayoutTokenNV* pTokens - uint32_t streamCount - const uint32_t* pStreamStrides - - - VkStructureType sType - const void* pNext - VkPipelineBindPoint pipelineBindPoint - VkPipeline pipeline - VkIndirectCommandsLayoutNV indirectCommandsLayout - uint32_t streamCount - const VkIndirectCommandsStreamNV* pStreams - uint32_t sequencesCount - VkBuffer preprocessBuffer - VkDeviceSize preprocessOffset - VkDeviceSize preprocessSize - VkBuffer sequencesCountBuffer - VkDeviceSize sequencesCountOffset - VkBuffer sequencesIndexBuffer - VkDeviceSize sequencesIndexOffset - - - VkStructureType sType - const void* pNext - VkPipelineBindPoint pipelineBindPoint - VkPipeline pipeline - VkIndirectCommandsLayoutNV indirectCommandsLayout - uint32_t maxSequencesCount - - - VkStructureType sType - void* pNext - VkPhysicalDeviceFeatures features - - - - VkStructureType sType - void* pNext - VkPhysicalDeviceProperties properties - - - - VkStructureType sType - void* pNext - VkFormatProperties formatProperties - - - - VkStructureType sType - void* pNext - VkImageFormatProperties imageFormatProperties - - - - VkStructureType sType - const void* pNext - VkFormat format - VkImageType type - VkImageTiling tiling - VkImageUsageFlags usage - VkImageCreateFlags flags - - - - VkStructureType sType - void* pNext - VkQueueFamilyProperties queueFamilyProperties - - - - VkStructureType sType - void* pNext - VkPhysicalDeviceMemoryProperties memoryProperties - - - - VkStructureType sType - void* pNext - VkSparseImageFormatProperties properties - - - - VkStructureType sType - const void* pNext - VkFormat format - VkImageType type - VkSampleCountFlagBits samples - VkImageUsageFlags usage - VkImageTiling tiling - - - - VkStructureType sType - void* pNext - uint32_t maxPushDescriptors - - - uint8_t major - uint8_t minor - uint8_t subminor - uint8_t patch - - - - VkStructureType sType - void* pNext - VkDriverId driverID - char driverName[VK_MAX_DRIVER_NAME_SIZE] - char driverInfo[VK_MAX_DRIVER_INFO_SIZE] - VkConformanceVersion conformanceVersion - - - - VkStructureType sType - const void* pNext - uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount - const VkPresentRegionKHR* pRegionsThe regions that have changed - - - uint32_t rectangleCountNumber of rectangles in pRectangles - const VkRectLayerKHR* pRectanglesArray of rectangles that have changed in a swapchain's image(s) - - - VkOffset2D offsetupper-left corner of a rectangle that has not changed, in pixels of a presentation images - VkExtent2D extentDimensions of a rectangle that has not changed, in pixels of a presentation images - uint32_t layerLayer of a swapchain's image(s), for stereoscopic-3D images - - - VkStructureType sType - void* pNext - VkBool32 variablePointersStorageBuffer - VkBool32 variablePointers - - - - - - VkExternalMemoryFeatureFlags externalMemoryFeatures - VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes - VkExternalMemoryHandleTypeFlags compatibleHandleTypes - - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlagBits handleType - - - - VkStructureType sType - void* pNext - VkExternalMemoryProperties externalMemoryProperties - - - - VkStructureType sType - const void* pNext - VkBufferCreateFlags flags - VkBufferUsageFlags usage - VkExternalMemoryHandleTypeFlagBits handleType - - - - VkStructureType sType - void* pNext - VkExternalMemoryProperties externalMemoryProperties - - - - VkStructureType sType - void* pNext - uint8_t deviceUUID[VK_UUID_SIZE] - uint8_t driverUUID[VK_UUID_SIZE] - uint8_t deviceLUID[VK_LUID_SIZE] - uint32_t deviceNodeMask - VkBool32 deviceLUIDValid - - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlags handleTypes - - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlags handleTypes - - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlags handleTypes - - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlagBits handleType - HANDLE handle - LPCWSTR name - - - VkStructureType sType - const void* pNext - const SECURITY_ATTRIBUTES* pAttributes - DWORD dwAccess - LPCWSTR name - - - VkStructureType sType - void* pNext - uint32_t memoryTypeBits - - - VkStructureType sType - const void* pNext - VkDeviceMemory memory - VkExternalMemoryHandleTypeFlagBits handleType - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlagBits handleType - int fd - - - VkStructureType sType - void* pNext - uint32_t memoryTypeBits - - - VkStructureType sType - const void* pNext - VkDeviceMemory memory - VkExternalMemoryHandleTypeFlagBits handleType - - - VkStructureType sType - const void* pNext - uint32_t acquireCount - const VkDeviceMemory* pAcquireSyncs - const uint64_t* pAcquireKeys - const uint32_t* pAcquireTimeouts - uint32_t releaseCount - const VkDeviceMemory* pReleaseSyncs - const uint64_t* pReleaseKeys - - - VkStructureType sType - const void* pNext - VkExternalSemaphoreHandleTypeFlagBits handleType - - - - VkStructureType sType - void* pNext - VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes - VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes - VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures - - - - VkStructureType sType - const void* pNext - VkExternalSemaphoreHandleTypeFlags handleTypes - - - - VkStructureType sType - const void* pNext - VkSemaphore semaphore - VkSemaphoreImportFlags flags - VkExternalSemaphoreHandleTypeFlagBits handleType - HANDLE handle - LPCWSTR name - - - VkStructureType sType - const void* pNext - const SECURITY_ATTRIBUTES* pAttributes - DWORD dwAccess - LPCWSTR name - - - VkStructureType sType - const void* pNext - uint32_t waitSemaphoreValuesCount - const uint64_t* pWaitSemaphoreValues - uint32_t signalSemaphoreValuesCount - const uint64_t* pSignalSemaphoreValues - - - VkStructureType sType - const void* pNext - VkSemaphore semaphore - VkExternalSemaphoreHandleTypeFlagBits handleType - - - VkStructureType sType - const void* pNext - VkSemaphore semaphore - VkSemaphoreImportFlags flags - VkExternalSemaphoreHandleTypeFlagBits handleType - int fd - - - VkStructureType sType - const void* pNext - VkSemaphore semaphore - VkExternalSemaphoreHandleTypeFlagBits handleType - - - VkStructureType sType - const void* pNext - VkExternalFenceHandleTypeFlagBits handleType - - - - VkStructureType sType - void* pNext - VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes - VkExternalFenceHandleTypeFlags compatibleHandleTypes - VkExternalFenceFeatureFlags externalFenceFeatures - - - - VkStructureType sType - const void* pNext - VkExternalFenceHandleTypeFlags handleTypes - - - - VkStructureType sType - const void* pNext - VkFence fence - VkFenceImportFlags flags - VkExternalFenceHandleTypeFlagBits handleType - HANDLE handle - LPCWSTR name - - - VkStructureType sType - const void* pNext - const SECURITY_ATTRIBUTES* pAttributes - DWORD dwAccess - LPCWSTR name - - - VkStructureType sType - const void* pNext - VkFence fence - VkExternalFenceHandleTypeFlagBits handleType - - - VkStructureType sType - const void* pNext - VkFence fence - VkFenceImportFlags flags - VkExternalFenceHandleTypeFlagBits handleType - int fd - - - VkStructureType sType - const void* pNext - VkFence fence - VkExternalFenceHandleTypeFlagBits handleType - - - VkStructureType sType - void* pNext - VkBool32 multiviewMultiple views in a renderpass - VkBool32 multiviewGeometryShaderMultiple views in a renderpass w/ geometry shader - VkBool32 multiviewTessellationShaderMultiple views in a renderpass w/ tessellation shader - - - - VkStructureType sType - void* pNext - uint32_t maxMultiviewViewCountmax number of views in a subpass - uint32_t maxMultiviewInstanceIndexmax instance index for a draw in a multiview subpass - - - - VkStructureType sType - const void* pNext - uint32_t subpassCount - const uint32_t* pViewMasks - uint32_t dependencyCount - const int32_t* pViewOffsets - uint32_t correlationMaskCount - const uint32_t* pCorrelationMasks - - - - VkStructureType sType - void* pNext - uint32_t minImageCountSupported minimum number of images for the surface - uint32_t maxImageCountSupported maximum number of images for the surface, 0 for unlimited - VkExtent2D currentExtentCurrent image width and height for the surface, (0, 0) if undefined - VkExtent2D minImageExtentSupported minimum image width and height for the surface - VkExtent2D maxImageExtentSupported maximum image width and height for the surface - uint32_t maxImageArrayLayersSupported maximum number of image layers for the surface - VkSurfaceTransformFlagsKHR supportedTransforms1 or more bits representing the transforms supported - VkSurfaceTransformFlagBitsKHR currentTransformThe surface's current transform relative to the device's natural orientation - VkCompositeAlphaFlagsKHR supportedCompositeAlpha1 or more bits representing the alpha compositing modes supported - VkImageUsageFlags supportedUsageFlagsSupported image usage flags for the surface - VkSurfaceCounterFlagsEXT supportedSurfaceCounters - - - VkStructureType sType - const void* pNext - VkDisplayPowerStateEXT powerState - - - VkStructureType sType - const void* pNext - VkDeviceEventTypeEXT deviceEvent - - - VkStructureType sType - const void* pNext - VkDisplayEventTypeEXT displayEvent - - - VkStructureType sType - const void* pNext - VkSurfaceCounterFlagsEXT surfaceCounters - - - VkStructureType sType - void* pNext - uint32_t physicalDeviceCount - VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE] - VkBool32 subsetAllocation - - - - VkStructureType sType - const void* pNext - VkMemoryAllocateFlags flags - uint32_t deviceMask - - - - VkStructureType sType - const void* pNext - VkBuffer buffer - VkDeviceMemory memory - VkDeviceSize memoryOffset - - - - VkStructureType sType - const void* pNext - uint32_t deviceIndexCount - const uint32_t* pDeviceIndices - - - - VkStructureType sType - const void* pNext - VkImage image - VkDeviceMemory memory - VkDeviceSize memoryOffset - - - - VkStructureType sType - const void* pNext - uint32_t deviceIndexCount - const uint32_t* pDeviceIndices - uint32_t splitInstanceBindRegionCount - const VkRect2D* pSplitInstanceBindRegions - - - - VkStructureType sType - const void* pNext - uint32_t deviceMask - uint32_t deviceRenderAreaCount - const VkRect2D* pDeviceRenderAreas - - - - VkStructureType sType - const void* pNext - uint32_t deviceMask - - - - VkStructureType sType - const void* pNext - uint32_t waitSemaphoreCount - const uint32_t* pWaitSemaphoreDeviceIndices - uint32_t commandBufferCount - const uint32_t* pCommandBufferDeviceMasks - uint32_t signalSemaphoreCount - const uint32_t* pSignalSemaphoreDeviceIndices - - - - VkStructureType sType - const void* pNext - uint32_t resourceDeviceIndex - uint32_t memoryDeviceIndex - - - - VkStructureType sType - const void* pNext - uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE] - VkDeviceGroupPresentModeFlagsKHR modes - - - VkStructureType sType - const void* pNext - VkSwapchainKHR swapchain - - - VkStructureType sType - const void* pNext - VkSwapchainKHR swapchain - uint32_t imageIndex - - - VkStructureType sType - const void* pNext - VkSwapchainKHR swapchain - uint64_t timeout - VkSemaphore semaphore - VkFence fence - uint32_t deviceMask - - - VkStructureType sType - const void* pNext - uint32_t swapchainCount - const uint32_t* pDeviceMasks - VkDeviceGroupPresentModeFlagBitsKHR mode - - - VkStructureType sType - const void* pNext - uint32_t physicalDeviceCount - const VkPhysicalDevice* pPhysicalDevices - - - - VkStructureType sType - const void* pNext - VkDeviceGroupPresentModeFlagsKHR modes - - - uint32_t dstBindingBinding within the destination descriptor set to write - uint32_t dstArrayElementArray element within the destination binding to write - uint32_t descriptorCountNumber of descriptors to write - VkDescriptorType descriptorTypeDescriptor type to write - size_t offsetOffset into pData where the descriptors to update are stored - size_t strideStride between two descriptors in pData when writing more than one descriptor - - - - VkStructureType sType - const void* pNext - VkDescriptorUpdateTemplateCreateFlags flags - uint32_t descriptorUpdateEntryCountNumber of descriptor update entries to use for the update template - const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntriesDescriptor update entries for the template - VkDescriptorUpdateTemplateType templateType - VkDescriptorSetLayout descriptorSetLayout - VkPipelineBindPoint pipelineBindPoint - VkPipelineLayoutpipelineLayoutIf used for push descriptors, this is the only allowed layout - uint32_t set - - - - float x - float y - - - Display primary in chromaticity coordinates - VkStructureType sType - const void* pNext - From SMPTE 2086 - VkXYColorEXT displayPrimaryRedDisplay primary's Red - VkXYColorEXT displayPrimaryGreenDisplay primary's Green - VkXYColorEXT displayPrimaryBlueDisplay primary's Blue - VkXYColorEXT whitePointDisplay primary's Blue - float maxLuminanceDisplay maximum luminance - float minLuminanceDisplay minimum luminance - From CTA 861.3 - float maxContentLightLevelContent maximum luminance - float maxFrameAverageLightLevel - - - VkStructureType sType - void* pNext - VkBool32 localDimmingSupport - - - VkStructureType sType - const void* pNext - VkBool32 localDimmingEnable - - - uint64_t refreshDurationNumber of nanoseconds from the start of one refresh cycle to the next - - - uint32_t presentIDApplication-provided identifier, previously given to vkQueuePresentKHR - uint64_t desiredPresentTimeEarliest time an image should have been presented, previously given to vkQueuePresentKHR - uint64_t actualPresentTimeTime the image was actually displayed - uint64_t earliestPresentTimeEarliest time the image could have been displayed - uint64_t presentMarginHow early vkQueuePresentKHR was processed vs. how soon it needed to be and make earliestPresentTime - - - VkStructureType sType - const void* pNext - uint32_t swapchainCountCopy of VkPresentInfoKHR::swapchainCount - const VkPresentTimeGOOGLE* pTimesThe earliest times to present images - - - uint32_t presentIDApplication-provided identifier - uint64_t desiredPresentTimeEarliest time an image should be presented - - - VkStructureType sType - const void* pNext - VkIOSSurfaceCreateFlagsMVK flags - const void* pView - - - VkStructureType sType - const void* pNext - VkMacOSSurfaceCreateFlagsMVK flags - const void* pView - - - VkStructureType sType - const void* pNext - VkMetalSurfaceCreateFlagsEXT flags - const CAMetalLayer* pLayer - - - float xcoeff - float ycoeff - - - VkStructureType sType - const void* pNext - VkBool32 viewportWScalingEnable - uint32_t viewportCount - const VkViewportWScalingNV* pViewportWScalings - - - VkViewportCoordinateSwizzleNV x - VkViewportCoordinateSwizzleNV y - VkViewportCoordinateSwizzleNV z - VkViewportCoordinateSwizzleNV w - - - VkStructureType sType - const void* pNext - VkPipelineViewportSwizzleStateCreateFlagsNV flags - uint32_t viewportCount - const VkViewportSwizzleNV* pViewportSwizzles - - - VkStructureType sType - void* pNext - uint32_t maxDiscardRectanglesmax number of active discard rectangles - - - VkStructureType sType - const void* pNext - VkPipelineDiscardRectangleStateCreateFlagsEXT flags - VkDiscardRectangleModeEXT discardRectangleMode - uint32_t discardRectangleCount - const VkRect2D* pDiscardRectangles - - - VkStructureType sType - void* pNext - VkBool32 perViewPositionAllComponents - - - uint32_t subpass - uint32_t inputAttachmentIndex - VkImageAspectFlags aspectMask - - - - VkStructureType sType - const void* pNext - uint32_t aspectReferenceCount - const VkInputAttachmentAspectReference* pAspectReferences - - - - VkStructureType sType - const void* pNext - VkSurfaceKHR surface - - - VkStructureType sType - void* pNext - VkSurfaceCapabilitiesKHR surfaceCapabilities - - - VkStructureType sType - void* pNext - VkSurfaceFormatKHR surfaceFormat - - - VkStructureType sType - void* pNext - VkDisplayPropertiesKHR displayProperties - - - VkStructureType sType - void* pNext - VkDisplayPlanePropertiesKHR displayPlaneProperties - - - VkStructureType sType - void* pNext - VkDisplayModePropertiesKHR displayModeProperties - - - VkStructureType sType - const void* pNext - VkDisplayModeKHR mode - uint32_t planeIndex - - - VkStructureType sType - void* pNext - VkDisplayPlaneCapabilitiesKHR capabilities - - - VkStructureType sType - void* pNext - VkImageUsageFlags sharedPresentSupportedUsageFlagsSupported image usage flags if swapchain created using a shared present mode - - - VkStructureType sType - void* pNext - VkBool32 storageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock - VkBool32 uniformAndStorageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock and Block - VkBool32 storagePushConstant1616-bit integer/floating-point variables supported in PushConstant - VkBool32 storageInputOutput1616-bit integer/floating-point variables supported in shader inputs and outputs - - - - VkStructureType sType - void* pNext - uint32_t subgroupSizeThe size of a subgroup for this queue. - VkShaderStageFlags supportedStagesBitfield of what shader stages support subgroup operations - VkSubgroupFeatureFlags supportedOperationsBitfield of what subgroup operations are supported. - VkBool32 quadOperationsInAllStagesFlag to specify whether quad operations are available in all stages. - - - VkStructureType sType - void* pNext - VkBool32 shaderSubgroupExtendedTypesFlag to specify whether subgroup operations with extended types are supported - - - - VkStructureType sType - const void* pNext - VkBuffer buffer - - - - VkStructureType sType - const void* pNext - VkImage image - - - - VkStructureType sType - const void* pNext - VkImage image - - - - VkStructureType sType - void* pNext - VkMemoryRequirements memoryRequirements - - - - VkStructureType sType - void* pNext - VkSparseImageMemoryRequirements memoryRequirements - - - - VkStructureType sType - void* pNext - VkPointClippingBehavior pointClippingBehavior - - - - VkStructureType sType - void* pNext - VkBool32 prefersDedicatedAllocation - VkBool32 requiresDedicatedAllocation - - - - VkStructureType sType - const void* pNext - VkImage imageImage that this allocation will be bound to - VkBuffer bufferBuffer that this allocation will be bound to - - - - VkStructureType sType - const void* pNext - VkImageUsageFlags usage - - - - VkStructureType sType - const void* pNext - VkTessellationDomainOrigin domainOrigin - - - - VkStructureType sType - const void* pNext - VkSamplerYcbcrConversion conversion - - - - VkStructureType sType - const void* pNext - VkFormat format - VkSamplerYcbcrModelConversion ycbcrModel - VkSamplerYcbcrRange ycbcrRange - VkComponentMapping components - VkChromaLocation xChromaOffset - VkChromaLocation yChromaOffset - VkFilter chromaFilter - VkBool32 forceExplicitReconstruction - - - - VkStructureType sType - const void* pNext - VkImageAspectFlagBits planeAspect - - - - VkStructureType sType - const void* pNext - VkImageAspectFlagBits planeAspect - - - - VkStructureType sType - void* pNext - VkBool32 samplerYcbcrConversionSampler color conversion supported - - - - VkStructureType sType - void* pNext - uint32_t combinedImageSamplerDescriptorCount - - - - VkStructureType sType - void* pNext - VkBool32 supportsTextureGatherLODBiasAMD - - - VkStructureType sType - const void* pNext - VkBuffer buffer - VkDeviceSize offset - VkConditionalRenderingFlagsEXT flags - - - VkStructureType sType - const void* pNext - VkBool32 protectedSubmitSubmit protected command buffers - - - VkStructureType sType - void* pNext - VkBool32 protectedMemory - - - VkStructureType sType - void* pNext - VkBool32 protectedNoFault - - - VkStructureType sType - const void* pNext - VkDeviceQueueCreateFlags flags - uint32_t queueFamilyIndex - uint32_t queueIndex - - - VkStructureType sType - const void* pNext - VkPipelineCoverageToColorStateCreateFlagsNV flags - VkBool32 coverageToColorEnable - uint32_t coverageToColorLocation - - - VkStructureType sType - void* pNext - VkBool32 filterMinmaxSingleComponentFormats - VkBool32 filterMinmaxImageComponentMapping - - - - float x - float y - - - VkStructureType sType - const void* pNext - VkSampleCountFlagBits sampleLocationsPerPixel - VkExtent2D sampleLocationGridSize - uint32_t sampleLocationsCount - const VkSampleLocationEXT* pSampleLocations - - - uint32_t attachmentIndex - VkSampleLocationsInfoEXT sampleLocationsInfo - - - uint32_t subpassIndex - VkSampleLocationsInfoEXT sampleLocationsInfo - - - VkStructureType sType - const void* pNext - uint32_t attachmentInitialSampleLocationsCount - const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations - uint32_t postSubpassSampleLocationsCount - const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations - - - VkStructureType sType - const void* pNext - VkBool32 sampleLocationsEnable - VkSampleLocationsInfoEXT sampleLocationsInfo - - - VkStructureType sType - void* pNext - VkSampleCountFlags sampleLocationSampleCounts - VkExtent2D maxSampleLocationGridSize - float sampleLocationCoordinateRange[2] - uint32_t sampleLocationSubPixelBits - VkBool32 variableSampleLocations - - - VkStructureType sType - void* pNext - VkExtent2D maxSampleLocationGridSize - - - VkStructureType sType - const void* pNext - VkSamplerReductionMode reductionMode - - - - VkStructureType sType - void* pNext - VkBool32 advancedBlendCoherentOperations - - - VkStructureType sType - void* pNext - uint32_t advancedBlendMaxColorAttachments - VkBool32 advancedBlendIndependentBlend - VkBool32 advancedBlendNonPremultipliedSrcColor - VkBool32 advancedBlendNonPremultipliedDstColor - VkBool32 advancedBlendCorrelatedOverlap - VkBool32 advancedBlendAllOperations - - - VkStructureType sType - const void* pNext - VkBool32 srcPremultiplied - VkBool32 dstPremultiplied - VkBlendOverlapEXT blendOverlap - - - VkStructureType sType - void* pNext - VkBool32 inlineUniformBlock - VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind - - - VkStructureType sType - void* pNext - uint32_t maxInlineUniformBlockSize - uint32_t maxPerStageDescriptorInlineUniformBlocks - uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks - uint32_t maxDescriptorSetInlineUniformBlocks - uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks - - - VkStructureType sType - const void* pNext - uint32_t dataSize - const void* pData - - - VkStructureType sType - const void* pNext - uint32_t maxInlineUniformBlockBindings - - - VkStructureType sType - const void* pNext - VkPipelineCoverageModulationStateCreateFlagsNV flags - VkCoverageModulationModeNV coverageModulationMode - VkBool32 coverageModulationTableEnable - uint32_t coverageModulationTableCount - const float* pCoverageModulationTable - - - VkStructureType sType - const void* pNext - uint32_t viewFormatCount - const VkFormat* pViewFormats - - - - VkStructureType sType - const void* pNext - VkValidationCacheCreateFlagsEXT flags - size_t initialDataSize - const void* pInitialData - - - VkStructureType sType - const void* pNext - VkValidationCacheEXT validationCache - - - VkStructureType sType - void* pNext - uint32_t maxPerSetDescriptors - VkDeviceSize maxMemoryAllocationSize - - - - VkStructureType sType - void* pNext - VkBool32 supported - - - - VkStructureType sType - void* pNext - VkBool32 shaderDrawParameters - - - - VkStructureType sType - void* pNext - VkBool32 shaderFloat1616-bit floats (halfs) in shaders - VkBool32 shaderInt88-bit integers in shaders - - - - - VkStructureType sType - void* pNext - VkShaderFloatControlsIndependence denormBehaviorIndependence - VkShaderFloatControlsIndependence roundingModeIndependence - VkBool32 shaderSignedZeroInfNanPreserveFloat16An implementation can preserve signed zero, nan, inf - VkBool32 shaderSignedZeroInfNanPreserveFloat32An implementation can preserve signed zero, nan, inf - VkBool32 shaderSignedZeroInfNanPreserveFloat64An implementation can preserve signed zero, nan, inf - VkBool32 shaderDenormPreserveFloat16An implementation can preserve denormals - VkBool32 shaderDenormPreserveFloat32An implementation can preserve denormals - VkBool32 shaderDenormPreserveFloat64An implementation can preserve denormals - VkBool32 shaderDenormFlushToZeroFloat16An implementation can flush to zero denormals - VkBool32 shaderDenormFlushToZeroFloat32An implementation can flush to zero denormals - VkBool32 shaderDenormFlushToZeroFloat64An implementation can flush to zero denormals - VkBool32 shaderRoundingModeRTEFloat16An implementation can support RTE - VkBool32 shaderRoundingModeRTEFloat32An implementation can support RTE - VkBool32 shaderRoundingModeRTEFloat64An implementation can support RTE - VkBool32 shaderRoundingModeRTZFloat16An implementation can support RTZ - VkBool32 shaderRoundingModeRTZFloat32An implementation can support RTZ - VkBool32 shaderRoundingModeRTZFloat64An implementation can support RTZ - - - - VkStructureType sType - void* pNext - VkBool32 hostQueryReset - - - - uint64_t consumer - uint64_t producer - - - VkStructureType sType - const void* pNext - const void* handle - int stride - int format - int usage - VkNativeBufferUsage2ANDROID usage2 - - - VkStructureType sType - const void* pNext - VkSwapchainImageUsageFlagsANDROID usage - - - VkStructureType sType - const void* pNext - VkBool32 sharedImage - - - uint32_t numUsedVgprs - uint32_t numUsedSgprs - uint32_t ldsSizePerLocalWorkGroup - size_t ldsUsageSizeInBytes - size_t scratchMemUsageInBytes - - - VkShaderStageFlags shaderStageMask - VkShaderResourceUsageAMD resourceUsage - uint32_t numPhysicalVgprs - uint32_t numPhysicalSgprs - uint32_t numAvailableVgprs - uint32_t numAvailableSgprs - uint32_t computeWorkGroupSize[3] - - - VkStructureType sType - const void* pNext - VkQueueGlobalPriorityEXT globalPriority - - - VkStructureType sType - const void* pNext - VkObjectType objectType - uint64_t objectHandle - const char* pObjectName - - - VkStructureType sType - const void* pNext - VkObjectType objectType - uint64_t objectHandle - uint64_t tagName - size_t tagSize - const void* pTag - - - VkStructureType sType - const void* pNext - const char* pLabelName - float color[4] - - - VkStructureType sType - const void* pNext - VkDebugUtilsMessengerCreateFlagsEXT flags - VkDebugUtilsMessageSeverityFlagsEXT messageSeverity - VkDebugUtilsMessageTypeFlagsEXT messageType - PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback - void* pUserData - - - VkStructureType sType - const void* pNext - VkDebugUtilsMessengerCallbackDataFlagsEXT flags - const char* pMessageIdName - int32_t messageIdNumber - const char* pMessage - uint32_t queueLabelCount - const VkDebugUtilsLabelEXT* pQueueLabels - uint32_t cmdBufLabelCount - const VkDebugUtilsLabelEXT* pCmdBufLabels - uint32_t objectCount - const VkDebugUtilsObjectNameInfoEXT* pObjects - - - VkStructureType sType - void* pNext - VkBool32 deviceMemoryReport - - - VkStructureType sType - const void* pNext - VkDeviceMemoryReportFlagsEXT flags - PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback - void* pUserData - - - VkStructureType sType - const void* pNext - VkDeviceMemoryReportFlagsEXT flags - VkDeviceMemoryReportEventTypeEXT type - uint64_t memoryObjectId - VkDeviceSize size - VkObjectType objectType - uint64_t objectHandle - uint32_t heapIndex - - - VkStructureType sType - const void* pNext - VkExternalMemoryHandleTypeFlagBits handleType - void* pHostPointer - - - VkStructureType sType - void* pNext - uint32_t memoryTypeBits - - - VkStructureType sType - void* pNext - VkDeviceSize minImportedHostPointerAlignment - - - VkStructureType sType - void* pNext - float primitiveOverestimationSizeThe size in pixels the primitive is enlarged at each edge during conservative rasterization - float maxExtraPrimitiveOverestimationSizeThe maximum additional overestimation the client can specify in the pipeline state - float extraPrimitiveOverestimationSizeGranularityThe granularity of extra overestimation sizes the implementations supports between 0 and maxExtraOverestimationSize - VkBool32 primitiveUnderestimationtrue if the implementation supports conservative rasterization underestimation mode - VkBool32 conservativePointAndLineRasterizationtrue if conservative rasterization also applies to points and lines - VkBool32 degenerateTrianglesRasterizedtrue if degenerate triangles (those with zero area after snap) are rasterized - VkBool32 degenerateLinesRasterizedtrue if degenerate lines (those with zero length after snap) are rasterized - VkBool32 fullyCoveredFragmentShaderInputVariabletrue if the implementation supports the FullyCoveredEXT SPIR-V builtin fragment shader input variable - VkBool32 conservativeRasterizationPostDepthCoveragetrue if the implementation supports both conservative rasterization and post depth coverage sample coverage mask - - - VkStructureType sType - const void* pNext - VkTimeDomainEXT timeDomain - - - VkStructureType sType - void* pNext - uint32_t shaderEngineCountnumber of shader engines - uint32_t shaderArraysPerEngineCountnumber of shader arrays - uint32_t computeUnitsPerShaderArraynumber of physical CUs per shader array - uint32_t simdPerComputeUnitnumber of SIMDs per compute unit - uint32_t wavefrontsPerSimdnumber of wavefront slots in each SIMD - uint32_t wavefrontSizemaximum number of threads per wavefront - uint32_t sgprsPerSimdnumber of physical SGPRs per SIMD - uint32_t minSgprAllocationminimum number of SGPRs that can be allocated by a wave - uint32_t maxSgprAllocationnumber of available SGPRs - uint32_t sgprAllocationGranularitySGPRs are allocated in groups of this size - uint32_t vgprsPerSimdnumber of physical VGPRs per SIMD - uint32_t minVgprAllocationminimum number of VGPRs that can be allocated by a wave - uint32_t maxVgprAllocationnumber of available VGPRs - uint32_t vgprAllocationGranularityVGPRs are allocated in groups of this size - - - VkStructureType sType - void* pNextPointer to next structure - VkShaderCorePropertiesFlagsAMD shaderCoreFeaturesfeatures supported by the shader core - uint32_t activeComputeUnitCountnumber of active compute units across all shader engines/arrays - - - VkStructureType sType - const void* pNext - VkPipelineRasterizationConservativeStateCreateFlagsEXT flagsReserved - VkConservativeRasterizationModeEXT conservativeRasterizationModeConservative rasterization mode - float extraPrimitiveOverestimationSizeExtra overestimation to add to the primitive - - - VkStructureType sType - void* pNext - VkBool32 shaderInputAttachmentArrayDynamicIndexing - VkBool32 shaderUniformTexelBufferArrayDynamicIndexing - VkBool32 shaderStorageTexelBufferArrayDynamicIndexing - VkBool32 shaderUniformBufferArrayNonUniformIndexing - VkBool32 shaderSampledImageArrayNonUniformIndexing - VkBool32 shaderStorageBufferArrayNonUniformIndexing - VkBool32 shaderStorageImageArrayNonUniformIndexing - VkBool32 shaderInputAttachmentArrayNonUniformIndexing - VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing - VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing - VkBool32 descriptorBindingUniformBufferUpdateAfterBind - VkBool32 descriptorBindingSampledImageUpdateAfterBind - VkBool32 descriptorBindingStorageImageUpdateAfterBind - VkBool32 descriptorBindingStorageBufferUpdateAfterBind - VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind - VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind - VkBool32 descriptorBindingUpdateUnusedWhilePending - VkBool32 descriptorBindingPartiallyBound - VkBool32 descriptorBindingVariableDescriptorCount - VkBool32 runtimeDescriptorArray - - - - VkStructureType sType - void* pNext - uint32_t maxUpdateAfterBindDescriptorsInAllPools - VkBool32 shaderUniformBufferArrayNonUniformIndexingNative - VkBool32 shaderSampledImageArrayNonUniformIndexingNative - VkBool32 shaderStorageBufferArrayNonUniformIndexingNative - VkBool32 shaderStorageImageArrayNonUniformIndexingNative - VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative - VkBool32 robustBufferAccessUpdateAfterBind - VkBool32 quadDivergentImplicitLod - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments - uint32_t maxPerStageUpdateAfterBindResources - uint32_t maxDescriptorSetUpdateAfterBindSamplers - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic - uint32_t maxDescriptorSetUpdateAfterBindSampledImages - uint32_t maxDescriptorSetUpdateAfterBindStorageImages - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments - - - - VkStructureType sType - const void* pNext - uint32_t bindingCount - const VkDescriptorBindingFlags* pBindingFlags - - - - VkStructureType sType - const void* pNext - uint32_t descriptorSetCount - const uint32_t* pDescriptorCounts - - - - VkStructureType sType - void* pNext - uint32_t maxVariableDescriptorCount - - - - VkStructureType sType - const void* pNext - VkAttachmentDescriptionFlags flags - VkFormat format - VkSampleCountFlagBits samples - VkAttachmentLoadOp loadOpLoad operation for color or depth data - VkAttachmentStoreOp storeOpStore operation for color or depth data - VkAttachmentLoadOp stencilLoadOpLoad operation for stencil data - VkAttachmentStoreOp stencilStoreOpStore operation for stencil data - VkImageLayout initialLayout - VkImageLayout finalLayout - - - - VkStructureType sType - const void* pNext - uint32_t attachment - VkImageLayout layout - VkImageAspectFlags aspectMask - - - - VkStructureType sType - const void* pNext - VkSubpassDescriptionFlags flags - VkPipelineBindPoint pipelineBindPoint - uint32_t viewMask - uint32_t inputAttachmentCount - const VkAttachmentReference2* pInputAttachments - uint32_t colorAttachmentCount - const VkAttachmentReference2* pColorAttachments - const VkAttachmentReference2* pResolveAttachments - const VkAttachmentReference2* pDepthStencilAttachment - uint32_t preserveAttachmentCount - const uint32_t* pPreserveAttachments - - - - VkStructureType sType - const void* pNext - uint32_t srcSubpass - uint32_t dstSubpass - VkPipelineStageFlags srcStageMask - VkPipelineStageFlags dstStageMask - VkAccessFlags srcAccessMask - VkAccessFlags dstAccessMask - VkDependencyFlags dependencyFlags - int32_t viewOffset - - - - VkStructureType sType - const void* pNext - VkRenderPassCreateFlags flags - uint32_t attachmentCount - const VkAttachmentDescription2* pAttachments - uint32_t subpassCount - const VkSubpassDescription2* pSubpasses - uint32_t dependencyCount - const VkSubpassDependency2* pDependencies - uint32_t correlatedViewMaskCount - const uint32_t* pCorrelatedViewMasks - - - - VkStructureType sType - const void* pNext - VkSubpassContents contents - - - - VkStructureType sType - const void* pNext - - - - VkStructureType sType - void* pNext - VkBool32 timelineSemaphore - - - - VkStructureType sType - void* pNext - uint64_t maxTimelineSemaphoreValueDifference - - - - VkStructureType sType - const void* pNext - VkSemaphoreType semaphoreType - uint64_t initialValue - - - - VkStructureType sType - const void* pNext - uint32_t waitSemaphoreValueCount - const uint64_t* pWaitSemaphoreValues - uint32_t signalSemaphoreValueCount - const uint64_t* pSignalSemaphoreValues - - - - VkStructureType sType - const void* pNext - VkSemaphoreWaitFlags flags - uint32_t semaphoreCount - const VkSemaphore* pSemaphores - const uint64_t* pValues - - - - VkStructureType sType - const void* pNext - VkSemaphore semaphore - uint64_t value - - - - uint32_t binding - uint32_t divisor - - - VkStructureType sType - const void* pNext - uint32_t vertexBindingDivisorCount - const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors - - - VkStructureType sType - void* pNext - uint32_t maxVertexAttribDivisormax value of vertex attribute divisor - - - VkStructureType sType - void* pNext - uint32_t pciDomain - uint32_t pciBus - uint32_t pciDevice - uint32_t pciFunction - - - VkStructureType sType - const void* pNext - struct AHardwareBuffer* buffer - - - VkStructureType sType - void* pNext - uint64_t androidHardwareBufferUsage - - - VkStructureType sType - void* pNext - VkDeviceSize allocationSize - uint32_t memoryTypeBits - - - VkStructureType sType - const void* pNext - VkDeviceMemory memory - - - VkStructureType sType - void* pNext - VkFormat format - uint64_t externalFormat - VkFormatFeatureFlags formatFeatures - VkComponentMapping samplerYcbcrConversionComponents - VkSamplerYcbcrModelConversion suggestedYcbcrModel - VkSamplerYcbcrRange suggestedYcbcrRange - VkChromaLocation suggestedXChromaOffset - VkChromaLocation suggestedYChromaOffset - - - VkStructureType sType - const void* pNext - VkBool32 conditionalRenderingEnableWhether this secondary command buffer may be executed during an active conditional rendering - - - VkStructureType sType - void* pNext - uint64_t externalFormat - - - VkStructureType sType - void* pNext - VkBool32 storageBuffer8BitAccess8-bit integer variables supported in StorageBuffer - VkBool32 uniformAndStorageBuffer8BitAccess8-bit integer variables supported in StorageBuffer and Uniform - VkBool32 storagePushConstant88-bit integer variables supported in PushConstant - - - - VkStructureType sType - void* pNext - VkBool32 conditionalRendering - VkBool32 inheritedConditionalRendering - - - VkStructureType sType - void* pNext - VkBool32 vulkanMemoryModel - VkBool32 vulkanMemoryModelDeviceScope - VkBool32 vulkanMemoryModelAvailabilityVisibilityChains - - - - VkStructureType sType - void* pNext - VkBool32 shaderBufferInt64Atomics - VkBool32 shaderSharedInt64Atomics - - - - VkStructureType sType - void* pNext - VkBool32 shaderBufferFloat32Atomics - VkBool32 shaderBufferFloat32AtomicAdd - VkBool32 shaderBufferFloat64Atomics - VkBool32 shaderBufferFloat64AtomicAdd - VkBool32 shaderSharedFloat32Atomics - VkBool32 shaderSharedFloat32AtomicAdd - VkBool32 shaderSharedFloat64Atomics - VkBool32 shaderSharedFloat64AtomicAdd - VkBool32 shaderImageFloat32Atomics - VkBool32 shaderImageFloat32AtomicAdd - VkBool32 sparseImageFloat32Atomics - VkBool32 sparseImageFloat32AtomicAdd - - - VkStructureType sType - void* pNext - VkBool32 vertexAttributeInstanceRateDivisor - VkBool32 vertexAttributeInstanceRateZeroDivisor - - - VkStructureType sType - void* pNext - VkPipelineStageFlags checkpointExecutionStageMask - - - VkStructureType sType - void* pNext - VkPipelineStageFlagBits stage - void* pCheckpointMarker - - - VkStructureType sType - void* pNext - VkResolveModeFlags supportedDepthResolveModessupported depth resolve modes - VkResolveModeFlags supportedStencilResolveModessupported stencil resolve modes - VkBool32 independentResolveNonedepth and stencil resolve modes can be set independently if one of them is none - VkBool32 independentResolvedepth and stencil resolve modes can be set independently - - - - VkStructureType sType - const void* pNext - VkResolveModeFlagBits depthResolveModedepth resolve mode - VkResolveModeFlagBits stencilResolveModestencil resolve mode - const VkAttachmentReference2* pDepthStencilResolveAttachmentdepth/stencil resolve attachment - - - - VkStructureType sType - const void* pNext - VkFormat decodeMode - - - VkStructureType sType - void* pNext - VkBool32 decodeModeSharedExponent - - - VkStructureType sType - void* pNext - VkBool32 transformFeedback - VkBool32 geometryStreams - - - VkStructureType sType - void* pNext - uint32_t maxTransformFeedbackStreams - uint32_t maxTransformFeedbackBuffers - VkDeviceSize maxTransformFeedbackBufferSize - uint32_t maxTransformFeedbackStreamDataSize - uint32_t maxTransformFeedbackBufferDataSize - uint32_t maxTransformFeedbackBufferDataStride - VkBool32 transformFeedbackQueries - VkBool32 transformFeedbackStreamsLinesTriangles - VkBool32 transformFeedbackRasterizationStreamSelect - VkBool32 transformFeedbackDraw - - - VkStructureType sType - const void* pNext - VkPipelineRasterizationStateStreamCreateFlagsEXT flags - uint32_t rasterizationStream - - - VkStructureTypesType - void* pNext - VkBool32 representativeFragmentTest - - - VkStructureType sType - const void* pNext - VkBool32 representativeFragmentTestEnable - - - VkStructureType sType - void* pNext - VkBool32 exclusiveScissor - - - VkStructureType sType - const void* pNext - uint32_t exclusiveScissorCount - const VkRect2D* pExclusiveScissors - - - VkStructureType sType - void* pNext - VkBool32 cornerSampledImage - - - VkStructureType sType - void* pNext - VkBool32 computeDerivativeGroupQuads - VkBool32 computeDerivativeGroupLinear - - - VkStructureType sType - void* pNext - VkBool32 fragmentShaderBarycentric - - - VkStructureType sType - void* pNext - VkBool32 imageFootprint - - - VkStructureType sType - void* pNext - VkBool32 dedicatedAllocationImageAliasing - - - uint32_t shadingRatePaletteEntryCount - const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries - - - VkStructureType sType - const void* pNext - VkBool32 shadingRateImageEnable - uint32_t viewportCount - const VkShadingRatePaletteNV* pShadingRatePalettes - - - VkStructureType sType - void* pNext - VkBool32 shadingRateImage - VkBool32 shadingRateCoarseSampleOrder - - - VkStructureType sType - void* pNext - VkExtent2D shadingRateTexelSize - uint32_t shadingRatePaletteSize - uint32_t shadingRateMaxCoarseSamples - - - uint32_t pixelX - uint32_t pixelY - uint32_t sample - - - VkShadingRatePaletteEntryNV shadingRate - uint32_t sampleCount - uint32_t sampleLocationCount - const VkCoarseSampleLocationNV* pSampleLocations - - - VkStructureType sType - const void* pNext - VkCoarseSampleOrderTypeNV sampleOrderType - uint32_t customSampleOrderCount - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders - - - VkStructureType sType - void* pNext - VkBool32 taskShader - VkBool32 meshShader - - - VkStructureType sType - void* pNext - uint32_t maxDrawMeshTasksCount - uint32_t maxTaskWorkGroupInvocations - uint32_t maxTaskWorkGroupSize[3] - uint32_t maxTaskTotalMemorySize - uint32_t maxTaskOutputCount - uint32_t maxMeshWorkGroupInvocations - uint32_t maxMeshWorkGroupSize[3] - uint32_t maxMeshTotalMemorySize - uint32_t maxMeshOutputVertices - uint32_t maxMeshOutputPrimitives - uint32_t maxMeshMultiviewViewCount - uint32_t meshOutputPerVertexGranularity - uint32_t meshOutputPerPrimitiveGranularity - - - uint32_t taskCount - uint32_t firstTask - - - VkStructureType sType - const void* pNext - VkRayTracingShaderGroupTypeKHR type - uint32_t generalShader - uint32_t closestHitShader - uint32_t anyHitShader - uint32_t intersectionShader - - - VkStructureType sType - const void* pNext - VkRayTracingShaderGroupTypeKHR type - uint32_t generalShader - uint32_t closestHitShader - uint32_t anyHitShader - uint32_t intersectionShader - const void* pShaderGroupCaptureReplayHandle - - - VkStructureType sType - const void* pNext - VkPipelineCreateFlags flagsPipeline creation flags - uint32_t stageCount - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage - uint32_t groupCount - const VkRayTracingShaderGroupCreateInfoNV* pGroups - uint32_t maxRecursionDepth - VkPipelineLayout layoutInterface layout of the pipeline - VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - VkStructureType sType - const void* pNext - VkPipelineCreateFlags flagsPipeline creation flags - uint32_t stageCount - const VkPipelineShaderStageCreateInfo* pStagesOne entry for each active shader stage - uint32_t groupCount - const VkRayTracingShaderGroupCreateInfoKHR* pGroups - uint32_t maxPipelineRayRecursionDepth - const VkPipelineLibraryCreateInfoKHR* pLibraryInfo - const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface - const VkPipelineDynamicStateCreateInfo* pDynamicState - VkPipelineLayout layoutInterface layout of the pipeline - VkPipeline basePipelineHandleIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is nonzero, it specifies the handle of the base pipeline this is a derivative of - int32_t basePipelineIndexIf VK_PIPELINE_CREATE_DERIVATIVE_BIT is set and this value is not -1, it specifies an index into pCreateInfos of the base pipeline this is a derivative of - - - VkStructureType sType - const void* pNext - VkBuffer vertexData - VkDeviceSize vertexOffset - uint32_t vertexCount - VkDeviceSize vertexStride - VkFormat vertexFormat - VkBuffer indexData - VkDeviceSize indexOffset - uint32_t indexCount - VkIndexType indexType - VkBuffer transformDataOptional reference to array of floats representing a 3x4 row major affine transformation matrix. - VkDeviceSize transformOffset - - - VkStructureType sType - const void* pNext - VkBuffer aabbData - uint32_t numAABBs - uint32_t strideStride in bytes between AABBs - VkDeviceSize offsetOffset in bytes of the first AABB in aabbData - - - VkGeometryTrianglesNV triangles - VkGeometryAABBNV aabbs - - - VkStructureType sType - const void* pNext - VkGeometryTypeKHR geometryType - VkGeometryDataNV geometry - VkGeometryFlagsKHR flags - - - VkStructureType sType - const void* pNext - VkAccelerationStructureTypeNV type - VkBuildAccelerationStructureFlagsNVflags - uint32_t instanceCount - uint32_t geometryCount - const VkGeometryNV* pGeometries - - - VkStructureType sType - const void* pNext - VkDeviceSize compactedSize - VkAccelerationStructureInfoNV info - - - VkStructureType sType - const void* pNext - VkAccelerationStructureNV accelerationStructure - VkDeviceMemory memory - VkDeviceSize memoryOffset - uint32_t deviceIndexCount - const uint32_t* pDeviceIndices - - - VkStructureType sType - const void* pNext - uint32_t accelerationStructureCount - const VkAccelerationStructureKHR* pAccelerationStructures - - - VkStructureType sType - const void* pNext - uint32_t accelerationStructureCount - const VkAccelerationStructureNV* pAccelerationStructures - - - VkStructureType sType - const void* pNext - VkAccelerationStructureMemoryRequirementsTypeNV type - VkAccelerationStructureNV accelerationStructure - - - VkStructureType sType - void* pNext - VkBool32 accelerationStructure - VkBool32 accelerationStructureCaptureReplay - VkBool32 accelerationStructureIndirectBuild - VkBool32 accelerationStructureHostCommands - VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind - - - VkStructureType sType - void* pNext - VkBool32 rayTracingPipeline - VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay - VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed - VkBool32 rayTracingPipelineTraceRaysIndirect - VkBool32 rayTraversalPrimitiveCulling - - - VkStructureType sType - void* pNext - VkBool32 rayQuery - - - VkStructureType sType - void* pNext - uint64_t maxGeometryCount - uint64_t maxInstanceCount - uint64_t maxPrimitiveCount - uint32_t maxPerStageDescriptorAccelerationStructures - uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures - uint32_t maxDescriptorSetAccelerationStructures - uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures - uint32_t minAccelerationStructureScratchOffsetAlignment - - - VkStructureType sType - void* pNext - uint32_t shaderGroupHandleSize - uint32_t maxRayRecursionDepth - uint32_t maxShaderGroupStride - uint32_t shaderGroupBaseAlignment - uint32_t shaderGroupHandleCaptureReplaySize - uint32_t maxRayDispatchInvocationCount - uint32_t shaderGroupHandleAlignment - uint32_t maxRayHitAttributeSize - - - VkStructureType sType - void* pNext - uint32_t shaderGroupHandleSize - uint32_t maxRecursionDepth - uint32_t maxShaderGroupStride - uint32_t shaderGroupBaseAlignment - uint64_t maxGeometryCount - uint64_t maxInstanceCount - uint64_t maxTriangleCount - uint32_t maxDescriptorSetAccelerationStructures - - - VkDeviceAddress deviceAddress - VkDeviceSize stride - VkDeviceSize size - - - uint32_t width - uint32_t height - uint32_t depth - - - VkStructureType sType - void* pNext - uint32_t drmFormatModifierCount - VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties - - - uint64_t drmFormatModifier - uint32_t drmFormatModifierPlaneCount - VkFormatFeatureFlags drmFormatModifierTilingFeatures - - - VkStructureType sType - const void* pNext - uint64_t drmFormatModifier - VkSharingMode sharingMode - uint32_t queueFamilyIndexCount - const uint32_t* pQueueFamilyIndices - - - VkStructureType sType - const void* pNext - uint32_t drmFormatModifierCount - const uint64_t* pDrmFormatModifiers - - - VkStructureType sType - const void* pNext - uint64_t drmFormatModifier - uint32_t drmFormatModifierPlaneCount - const VkSubresourceLayout* pPlaneLayouts - - - VkStructureType sType - void* pNext - uint64_t drmFormatModifier - - - VkStructureType sType - const void* pNext - VkImageUsageFlags stencilUsage - - - - VkStructureType sType - const void* pNext - VkMemoryOverallocationBehaviorAMD overallocationBehavior - - - VkStructureType sType - void* pNext - VkBool32 fragmentDensityMap - VkBool32 fragmentDensityMapDynamic - VkBool32 fragmentDensityMapNonSubsampledImages - - - VkStructureType sType - void* pNext - VkBool32 fragmentDensityMapDeferred - - - VkStructureType sType - void* pNext - VkExtent2D minFragmentDensityTexelSize - VkExtent2D maxFragmentDensityTexelSize - VkBool32 fragmentDensityInvocations - - - VkStructureType sType - void* pNext - VkBool32 subsampledLoads - VkBool32 subsampledCoarseReconstructionEarlyAccess - uint32_t maxSubsampledArrayLayers - uint32_t maxDescriptorSetSubsampledSamplers - - - VkStructureType sType - const void* pNext - VkAttachmentReference fragmentDensityMapAttachment - - - VkStructureType sType - void* pNext - VkBool32 scalarBlockLayout - - - - VkStructureType sType - const void* pNext - VkBool32 supportsProtectedRepresents if surface can be protected - - - VkStructureType sType - void* pNext - VkBool32 uniformBufferStandardLayout - - - - VkStructureType sType - void* pNext - VkBool32 depthClipEnable - - - VkStructureType sType - const void* pNext - VkPipelineRasterizationDepthClipStateCreateFlagsEXT flagsReserved - VkBool32 depthClipEnable - - - VkStructureType sType - void* pNext - VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS] - VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS] - - - VkStructureType sType - void* pNext - VkBool32 memoryPriority - - - VkStructureType sType - const void* pNext - float priority - - - VkStructureType sType - void* pNext - VkBool32 bufferDeviceAddress - VkBool32 bufferDeviceAddressCaptureReplay - VkBool32 bufferDeviceAddressMultiDevice - - - - VkStructureType sType - void* pNext - VkBool32 bufferDeviceAddress - VkBool32 bufferDeviceAddressCaptureReplay - VkBool32 bufferDeviceAddressMultiDevice - - - - VkStructureType sType - const void* pNext - VkBuffer buffer - - - - - VkStructureType sType - const void* pNext - uint64_t opaqueCaptureAddress - - - - VkStructureType sType - const void* pNext - VkDeviceAddress deviceAddress - - - VkStructureType sType - void* pNext - VkImageViewType imageViewType - - - VkStructureType sType - void* pNext - VkBool32 filterCubicThe combinations of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT - VkBool32 filterCubicMinmaxThe combination of format, image type (and image view type if provided) can be filtered with VK_FILTER_CUBIC_EXT and ReductionMode of Min or Max - - - VkStructureType sType - void* pNext - VkBool32 imagelessFramebuffer - - - - VkStructureType sType - const void* pNext - uint32_t attachmentImageInfoCount - const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos - - - - VkStructureType sType - const void* pNext - VkImageCreateFlags flagsImage creation flags - VkImageUsageFlags usageImage usage flags - uint32_t width - uint32_t height - uint32_t layerCount - uint32_t viewFormatCount - const VkFormat* pViewFormats - - - - VkStructureType sType - const void* pNext - uint32_t attachmentCount - const VkImageView* pAttachments - - - - VkStructureType sType - void* pNext - VkBool32 textureCompressionASTC_HDR - - - VkStructureType sType - void* pNext - VkBool32 cooperativeMatrix - VkBool32 cooperativeMatrixRobustBufferAccess - - - VkStructureType sType - void* pNext - VkShaderStageFlags cooperativeMatrixSupportedStages - - - VkStructureType sType - void* pNext - uint32_t MSize - uint32_t NSize - uint32_t KSize - VkComponentTypeNV AType - VkComponentTypeNV BType - VkComponentTypeNV CType - VkComponentTypeNV DType - VkScopeNV scope - - - VkStructureType sType - void* pNext - VkBool32 ycbcrImageArrays - - - VkStructureType sType - const void* pNext - VkImageView imageView - VkDescriptorType descriptorType - VkSampler sampler - - - VkStructureType sType - void* pNext - VkDeviceAddress deviceAddress - VkDeviceSize size - - - VkStructureType sType - const void* pNext - GgpFrameToken frameToken - - - VkPipelineCreationFeedbackFlagsEXT flags - uint64_t duration - - - VkStructureType sType - const void* pNext - VkPipelineCreationFeedbackEXT* pPipelineCreationFeedbackOutput pipeline creation feedback. - uint32_t pipelineStageCreationFeedbackCount - VkPipelineCreationFeedbackEXT* pPipelineStageCreationFeedbacksOne entry for each shader stage specified in the parent Vk*PipelineCreateInfo struct - - - VkStructureType sType - void* pNext - VkFullScreenExclusiveEXT fullScreenExclusive - - - VkStructureType sType - const void* pNext - HMONITOR hmonitor - - - VkStructureType sType - void* pNext - VkBool32 fullScreenExclusiveSupported - - - VkStructureType sType - void* pNext - VkBool32 performanceCounterQueryPoolsperformance counters supported in query pools - VkBool32 performanceCounterMultipleQueryPoolsperformance counters from multiple query pools can be accessed in the same primary command buffer - - - VkStructureType sType - void* pNext - VkBool32 allowCommandBufferQueryCopiesFlag to specify whether performance queries are allowed to be used in vkCmdCopyQueryPoolResults - - - VkStructureType sType - const void* pNext - VkPerformanceCounterUnitKHR unit - VkPerformanceCounterScopeKHR scope - VkPerformanceCounterStorageKHR storage - uint8_t uuid[VK_UUID_SIZE] - - - VkStructureType sType - const void* pNext - VkPerformanceCounterDescriptionFlagsKHR flags - char name[VK_MAX_DESCRIPTION_SIZE] - char category[VK_MAX_DESCRIPTION_SIZE] - char description[VK_MAX_DESCRIPTION_SIZE] - - - VkStructureType sType - const void* pNext - uint32_t queueFamilyIndex - uint32_t counterIndexCount - const uint32_t* pCounterIndices - - - int32_t int32 - int64_t int64 - uint32_t uint32 - uint64_t uint64 - float float32 - double float64 - - - VkStructureType sType - const void* pNext - VkAcquireProfilingLockFlagsKHR flagsAcquire profiling lock flags - uint64_t timeout - - - VkStructureType sType - const void* pNext - uint32_t counterPassIndexIndex for which counter pass to submit - - - VkStructureType sType - const void* pNext - VkHeadlessSurfaceCreateFlagsEXT flags - - - VkStructureTypesType - void* pNext - VkBool32 coverageReductionMode - - - VkStructureType sType - const void* pNext - VkPipelineCoverageReductionStateCreateFlagsNV flags - VkCoverageReductionModeNV coverageReductionMode - - - VkStructureType sType - void* pNext - VkCoverageReductionModeNV coverageReductionMode - VkSampleCountFlagBits rasterizationSamples - VkSampleCountFlags depthStencilSamples - VkSampleCountFlags colorSamples - - - VkStructureType sType - void* pNext - VkBool32 shaderIntegerFunctions2 - - - uint32_t value32 - uint64_t value64 - float valueFloat - VkBool32 valueBool - const char* valueString - - - VkPerformanceValueTypeINTEL type - VkPerformanceValueDataINTEL data - - - VkStructureType sType - const void* pNext - void* pUserData - - - VkStructureType sType - const void* pNext - VkQueryPoolSamplingModeINTEL performanceCountersSampling - - - - VkStructureType sType - const void* pNext - uint64_t marker - - - VkStructureType sType - const void* pNext - uint32_t marker - - - VkStructureType sType - const void* pNext - VkPerformanceOverrideTypeINTEL type - VkBool32 enable - uint64_t parameter - - - VkStructureType sType - const void* pNext - VkPerformanceConfigurationTypeINTEL type - - - VkStructureType sType - void* pNext - VkBool32 shaderSubgroupClock - VkBool32 shaderDeviceClock - - - VkStructureType sType - void* pNext - VkBool32 indexTypeUint8 - - - VkStructureType sType - void* pNext - uint32_t shaderSMCount - uint32_t shaderWarpsPerSM - - - VkStructureTypesType - void* pNext - VkBool32 shaderSMBuiltins - - - VkStructureType sType - void* pNextPointer to next structure - VkBool32 fragmentShaderSampleInterlock - VkBool32 fragmentShaderPixelInterlock - VkBool32 fragmentShaderShadingRateInterlock - - - VkStructureTypesType - void* pNext - VkBool32 separateDepthStencilLayouts - - - - VkStructureTypesType - void* pNext - VkImageLayout stencilLayout - - - - VkStructureTypesType - void* pNext - VkImageLayout stencilInitialLayout - VkImageLayout stencilFinalLayout - - - - VkStructureType sType - void* pNext - VkBool32 pipelineExecutableInfo - - - VkStructureType sType - const void* pNext - VkPipeline pipeline - - - VkStructureType sType - void* pNext - VkShaderStageFlags stages - char name[VK_MAX_DESCRIPTION_SIZE] - char description[VK_MAX_DESCRIPTION_SIZE] - uint32_t subgroupSize - - - VkStructureType sType - const void* pNext - VkPipeline pipeline - uint32_t executableIndex - - - VkBool32 b32 - int64_t i64 - uint64_t u64 - double f64 - - - VkStructureType sType - void* pNext - char name[VK_MAX_DESCRIPTION_SIZE] - char description[VK_MAX_DESCRIPTION_SIZE] - VkPipelineExecutableStatisticFormatKHR format - VkPipelineExecutableStatisticValueKHR value - - - VkStructureType sType - void* pNext - char name[VK_MAX_DESCRIPTION_SIZE] - char description[VK_MAX_DESCRIPTION_SIZE] - VkBool32 isText - size_t dataSize - void* pData - - - VkStructureType sType - void* pNext - VkBool32 shaderDemoteToHelperInvocation - - - VkStructureType sType - void* pNext - VkBool32 texelBufferAlignment - - - VkStructureType sType - void* pNext - VkDeviceSize storageTexelBufferOffsetAlignmentBytes - VkBool32 storageTexelBufferOffsetSingleTexelAlignment - VkDeviceSize uniformTexelBufferOffsetAlignmentBytes - VkBool32 uniformTexelBufferOffsetSingleTexelAlignment - - - VkStructureType sType - void* pNext - VkBool32 subgroupSizeControl - VkBool32 computeFullSubgroups - - - VkStructureType sType - void* pNext - uint32_t minSubgroupSizeThe minimum subgroup size supported by this device - uint32_t maxSubgroupSizeThe maximum subgroup size supported by this device - uint32_t maxComputeWorkgroupSubgroupsThe maximum number of subgroups supported in a workgroup - VkShaderStageFlags requiredSubgroupSizeStagesThe shader stages that support specifying a subgroup size - - - VkStructureType sType - void* pNext - uint32_t requiredSubgroupSize - - - VkStructureType sType - const void* pNext - uint64_t opaqueCaptureAddress - - - - VkStructureType sType - const void* pNext - VkDeviceMemory memory - - - - VkStructureType sType - void* pNext - VkBool32 rectangularLines - VkBool32 bresenhamLines - VkBool32 smoothLines - VkBool32 stippledRectangularLines - VkBool32 stippledBresenhamLines - VkBool32 stippledSmoothLines - - - VkStructureType sType - void* pNext - uint32_t lineSubPixelPrecisionBits - - - VkStructureType sType - const void* pNext - VkLineRasterizationModeEXT lineRasterizationMode - VkBool32 stippledLineEnable - uint32_t lineStippleFactor - uint16_t lineStipplePattern - - - VkStructureType sType - void* pNext - VkBool32 pipelineCreationCacheControl - - - VkStructureTypesType - void* pNext - VkBool32 storageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock - VkBool32 uniformAndStorageBuffer16BitAccess16-bit integer/floating-point variables supported in BufferBlock and Block - VkBool32 storagePushConstant1616-bit integer/floating-point variables supported in PushConstant - VkBool32 storageInputOutput1616-bit integer/floating-point variables supported in shader inputs and outputs - VkBool32 multiviewMultiple views in a renderpass - VkBool32 multiviewGeometryShaderMultiple views in a renderpass w/ geometry shader - VkBool32 multiviewTessellationShaderMultiple views in a renderpass w/ tessellation shader - VkBool32 variablePointersStorageBuffer - VkBool32 variablePointers - VkBool32 protectedMemory - VkBool32 samplerYcbcrConversionSampler color conversion supported - VkBool32 shaderDrawParameters - - - VkStructureTypesType - void* pNext - uint8_t deviceUUID[VK_UUID_SIZE] - uint8_t driverUUID[VK_UUID_SIZE] - uint8_t deviceLUID[VK_LUID_SIZE] - uint32_t deviceNodeMask - VkBool32 deviceLUIDValid - uint32_t subgroupSizeThe size of a subgroup for this queue. - VkShaderStageFlags subgroupSupportedStagesBitfield of what shader stages support subgroup operations - VkSubgroupFeatureFlags subgroupSupportedOperationsBitfield of what subgroup operations are supported. - VkBool32 subgroupQuadOperationsInAllStagesFlag to specify whether quad operations are available in all stages. - VkPointClippingBehavior pointClippingBehavior - uint32_t maxMultiviewViewCountmax number of views in a subpass - uint32_t maxMultiviewInstanceIndexmax instance index for a draw in a multiview subpass - VkBool32 protectedNoFault - uint32_t maxPerSetDescriptors - VkDeviceSize maxMemoryAllocationSize - - - VkStructureTypesType - void* pNext - VkBool32 samplerMirrorClampToEdge - VkBool32 drawIndirectCount - VkBool32 storageBuffer8BitAccess8-bit integer variables supported in StorageBuffer - VkBool32 uniformAndStorageBuffer8BitAccess8-bit integer variables supported in StorageBuffer and Uniform - VkBool32 storagePushConstant88-bit integer variables supported in PushConstant - VkBool32 shaderBufferInt64Atomics - VkBool32 shaderSharedInt64Atomics - VkBool32 shaderFloat1616-bit floats (halfs) in shaders - VkBool32 shaderInt88-bit integers in shaders - VkBool32 descriptorIndexing - VkBool32 shaderInputAttachmentArrayDynamicIndexing - VkBool32 shaderUniformTexelBufferArrayDynamicIndexing - VkBool32 shaderStorageTexelBufferArrayDynamicIndexing - VkBool32 shaderUniformBufferArrayNonUniformIndexing - VkBool32 shaderSampledImageArrayNonUniformIndexing - VkBool32 shaderStorageBufferArrayNonUniformIndexing - VkBool32 shaderStorageImageArrayNonUniformIndexing - VkBool32 shaderInputAttachmentArrayNonUniformIndexing - VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing - VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing - VkBool32 descriptorBindingUniformBufferUpdateAfterBind - VkBool32 descriptorBindingSampledImageUpdateAfterBind - VkBool32 descriptorBindingStorageImageUpdateAfterBind - VkBool32 descriptorBindingStorageBufferUpdateAfterBind - VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind - VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind - VkBool32 descriptorBindingUpdateUnusedWhilePending - VkBool32 descriptorBindingPartiallyBound - VkBool32 descriptorBindingVariableDescriptorCount - VkBool32 runtimeDescriptorArray - VkBool32 samplerFilterMinmax - VkBool32 scalarBlockLayout - VkBool32 imagelessFramebuffer - VkBool32 uniformBufferStandardLayout - VkBool32 shaderSubgroupExtendedTypes - VkBool32 separateDepthStencilLayouts - VkBool32 hostQueryReset - VkBool32 timelineSemaphore - VkBool32 bufferDeviceAddress - VkBool32 bufferDeviceAddressCaptureReplay - VkBool32 bufferDeviceAddressMultiDevice - VkBool32 vulkanMemoryModel - VkBool32 vulkanMemoryModelDeviceScope - VkBool32 vulkanMemoryModelAvailabilityVisibilityChains - VkBool32 shaderOutputViewportIndex - VkBool32 shaderOutputLayer - VkBool32 subgroupBroadcastDynamicId - - - VkStructureTypesType - void* pNext - VkDriverId driverID - char driverName[VK_MAX_DRIVER_NAME_SIZE] - char driverInfo[VK_MAX_DRIVER_INFO_SIZE] - VkConformanceVersion conformanceVersion - VkShaderFloatControlsIndependencedenormBehaviorIndependence - VkShaderFloatControlsIndependenceroundingModeIndependence - VkBool32 shaderSignedZeroInfNanPreserveFloat16An implementation can preserve signed zero, nan, inf - VkBool32 shaderSignedZeroInfNanPreserveFloat32An implementation can preserve signed zero, nan, inf - VkBool32 shaderSignedZeroInfNanPreserveFloat64An implementation can preserve signed zero, nan, inf - VkBool32 shaderDenormPreserveFloat16An implementation can preserve denormals - VkBool32 shaderDenormPreserveFloat32An implementation can preserve denormals - VkBool32 shaderDenormPreserveFloat64An implementation can preserve denormals - VkBool32 shaderDenormFlushToZeroFloat16An implementation can flush to zero denormals - VkBool32 shaderDenormFlushToZeroFloat32An implementation can flush to zero denormals - VkBool32 shaderDenormFlushToZeroFloat64An implementation can flush to zero denormals - VkBool32 shaderRoundingModeRTEFloat16An implementation can support RTE - VkBool32 shaderRoundingModeRTEFloat32An implementation can support RTE - VkBool32 shaderRoundingModeRTEFloat64An implementation can support RTE - VkBool32 shaderRoundingModeRTZFloat16An implementation can support RTZ - VkBool32 shaderRoundingModeRTZFloat32An implementation can support RTZ - VkBool32 shaderRoundingModeRTZFloat64An implementation can support RTZ - uint32_t maxUpdateAfterBindDescriptorsInAllPools - VkBool32 shaderUniformBufferArrayNonUniformIndexingNative - VkBool32 shaderSampledImageArrayNonUniformIndexingNative - VkBool32 shaderStorageBufferArrayNonUniformIndexingNative - VkBool32 shaderStorageImageArrayNonUniformIndexingNative - VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative - VkBool32 robustBufferAccessUpdateAfterBind - VkBool32 quadDivergentImplicitLod - uint32_t maxPerStageDescriptorUpdateAfterBindSamplers - uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers - uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers - uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages - uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages - uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments - uint32_t maxPerStageUpdateAfterBindResources - uint32_t maxDescriptorSetUpdateAfterBindSamplers - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers - uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers - uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic - uint32_t maxDescriptorSetUpdateAfterBindSampledImages - uint32_t maxDescriptorSetUpdateAfterBindStorageImages - uint32_t maxDescriptorSetUpdateAfterBindInputAttachments - VkResolveModeFlags supportedDepthResolveModessupported depth resolve modes - VkResolveModeFlags supportedStencilResolveModessupported stencil resolve modes - VkBool32 independentResolveNonedepth and stencil resolve modes can be set independently if one of them is none - VkBool32 independentResolvedepth and stencil resolve modes can be set independently - VkBool32 filterMinmaxSingleComponentFormats - VkBool32 filterMinmaxImageComponentMapping - uint64_t maxTimelineSemaphoreValueDifference - VkSampleCountFlags framebufferIntegerColorSampleCounts - - - VkStructureType sType - const void* pNext - VkPipelineCompilerControlFlagsAMD compilerControlFlags - - - VkStructureType sType - void* pNext - VkBool32 deviceCoherentMemory - - - VkStructureType sType - void* pNext - char name[VK_MAX_EXTENSION_NAME_SIZE] - char version[VK_MAX_EXTENSION_NAME_SIZE] - VkToolPurposeFlagsEXT purposes - char description[VK_MAX_DESCRIPTION_SIZE] - char layer[VK_MAX_EXTENSION_NAME_SIZE] - - - VkStructureType sType - const void* pNext - VkClearColorValue customBorderColor - VkFormat format - - - VkStructureType sType - void* pNext - uint32_t maxCustomBorderColorSamplers - - - VkStructureType sType - void* pNext - VkBool32 customBorderColors - VkBool32 customBorderColorWithoutFormat - - - VkDeviceAddress deviceAddress - void* hostAddress - - - VkDeviceAddress deviceAddress - const void* hostAddress - - - VkStructureType sType - const void* pNext - VkFormat vertexFormat - VkDeviceOrHostAddressConstKHR vertexData - VkDeviceSize vertexStride - uint32_t maxVertex - VkIndexType indexType - VkDeviceOrHostAddressConstKHR indexData - VkDeviceOrHostAddressConstKHR transformData - - - VkStructureType sType - const void* pNext - VkDeviceOrHostAddressConstKHR data - VkDeviceSize stride - - - VkStructureType sType - const void* pNext - VkBool32 arrayOfPointers - VkDeviceOrHostAddressConstKHR data - - - VkAccelerationStructureGeometryTrianglesDataKHR triangles - VkAccelerationStructureGeometryAabbsDataKHR aabbs - VkAccelerationStructureGeometryInstancesDataKHR instances - - - VkStructureType sType - const void* pNext - VkGeometryTypeKHR geometryType - VkAccelerationStructureGeometryDataKHR geometry - VkGeometryFlagsKHR flags - - - VkStructureType sType - const void* pNext - VkAccelerationStructureTypeKHR type - VkBuildAccelerationStructureFlagsKHR flags - VkBuildAccelerationStructureModeKHR mode - VkAccelerationStructureKHR srcAccelerationStructure - VkAccelerationStructureKHR dstAccelerationStructure - uint32_t geometryCount - const VkAccelerationStructureGeometryKHR* pGeometries - const VkAccelerationStructureGeometryKHR* const* ppGeometries - VkDeviceOrHostAddressKHR scratchData - - - uint32_t primitiveCount - uint32_t primitiveOffset - uint32_t firstVertex - uint32_t transformOffset - - - VkStructureType sType - const void* pNext - VkAccelerationStructureCreateFlagsKHR createFlags - VkBuffer buffer - VkDeviceSize offsetSpecified in bytes - VkDeviceSize size - VkAccelerationStructureTypeKHR type - VkDeviceAddress deviceAddress - - - float minX - float minY - float minZ - float maxX - float maxY - float maxZ - - - - float matrix[3][4] - - - - The bitfields in this structure are non-normative since bitfield ordering is implementation-defined in C. The specification defines the normative layout. - VkTransformMatrixKHR transform - uint32_t instanceCustomIndex:24 - uint32_t mask:8 - uint32_t instanceShaderBindingTableRecordOffset:24 - VkGeometryInstanceFlagsKHR flags:8 - uint64_t accelerationStructureReference - - - - VkStructureType sType - const void* pNext - VkAccelerationStructureKHR accelerationStructure - - - VkStructureType sType - const void* pNext - const uint8_t* pVersionData - - - VkStructureType sType - const void* pNext - VkAccelerationStructureKHR src - VkAccelerationStructureKHR dst - VkCopyAccelerationStructureModeKHR mode - - - VkStructureType sType - const void* pNext - VkAccelerationStructureKHR src - VkDeviceOrHostAddressKHR dst - VkCopyAccelerationStructureModeKHR mode - - - VkStructureType sType - const void* pNext - VkDeviceOrHostAddressConstKHR src - VkAccelerationStructureKHR dst - VkCopyAccelerationStructureModeKHR mode - - - VkStructureType sType - const void* pNext - uint32_t maxPipelineRayPayloadSize - uint32_t maxPipelineRayHitAttributeSize - - - VkStructureType sType - const void* pNext - uint32_t libraryCount - const VkPipeline* pLibraries - - - VkStructureType sType - void* pNext - VkBool32 extendedDynamicState - - - VkStructureType sType - void* pNextPointer to next structure - VkSurfaceTransformFlagBitsKHR transform - - - VkStructureType sType - const void* pNext - VkSurfaceTransformFlagBitsKHR transform - - - VkStructureType sType - void* pNextPointer to next structure - VkSurfaceTransformFlagBitsKHR transform - VkRect2D renderArea - - - VkStructureTypesType - void* pNext - VkBool32 diagnosticsConfig - - - VkStructureType sType - const void* pNext - VkDeviceDiagnosticsConfigFlagsNV flags - - - VkStructureType sType - void* pNext - VkBool32 robustBufferAccess2 - VkBool32 robustImageAccess2 - VkBool32 nullDescriptor - - - VkStructureType sType - void* pNext - VkDeviceSize robustStorageBufferAccessSizeAlignment - VkDeviceSize robustUniformBufferAccessSizeAlignment - - - VkStructureType sType - void* pNext - VkBool32 robustImageAccess - - - VkStructureType sType - void* pNext - VkBool32 constantAlphaColorBlendFactors - VkBool32 events - VkBool32 imageViewFormatReinterpretation - VkBool32 imageViewFormatSwizzle - VkBool32 imageView2DOn3DImage - VkBool32 multisampleArrayImage - VkBool32 mutableComparisonSamplers - VkBool32 pointPolygons - VkBool32 samplerMipLodBias - VkBool32 separateStencilMaskRef - VkBool32 shaderSampleRateInterpolationFunctions - VkBool32 tessellationIsolines - VkBool32 tessellationPointMode - VkBool32 triangleFans - VkBool32 vertexAttributeAccessBeyondStride - - - VkStructureType sType - void* pNext - uint32_t minVertexInputBindingStrideAlignment - - - VkStructureType sType - void* pNext - VkBool32 formatA4R4G4B4 - VkBool32 formatA4B4G4R4 - - - VkStructureType sType - const void* pNext - VkDeviceSize srcOffsetSpecified in bytes - VkDeviceSize dstOffsetSpecified in bytes - VkDeviceSize sizeSpecified in bytes - - - VkStructureType sType - const void* pNext - VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffsetSpecified in pixels for both compressed and uncompressed images - VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffsetSpecified in pixels for both compressed and uncompressed images - VkExtent3D extentSpecified in pixels for both compressed and uncompressed images - - - VkStructureType sType - const void* pNext - VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffsets[2]Specified in pixels for both compressed and uncompressed images - VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffsets[2]Specified in pixels for both compressed and uncompressed images - - - VkStructureType sType - const void* pNext - VkDeviceSize bufferOffsetSpecified in bytes - uint32_t bufferRowLengthSpecified in texels - uint32_t bufferImageHeight - VkImageSubresourceLayers imageSubresource - VkOffset3D imageOffsetSpecified in pixels for both compressed and uncompressed images - VkExtent3D imageExtentSpecified in pixels for both compressed and uncompressed images - - - VkStructureType sType - const void* pNext - VkImageSubresourceLayers srcSubresource - VkOffset3D srcOffset - VkImageSubresourceLayers dstSubresource - VkOffset3D dstOffset - VkExtent3D extent - - - VkStructureType sType - const void* pNext - VkBuffer srcBuffer - VkBuffer dstBuffer - uint32_t regionCount - const VkBufferCopy2KHR* pRegions - - - VkStructureType sType - const void* pNext - VkImage srcImage - VkImageLayout srcImageLayout - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkImageCopy2KHR* pRegions - - - VkStructureType sType - const void* pNext - VkImage srcImage - VkImageLayout srcImageLayout - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkImageBlit2KHR* pRegions - VkFilter filter - - - VkStructureType sType - const void* pNext - VkBuffer srcBuffer - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkBufferImageCopy2KHR* pRegions - - - VkStructureType sType - const void* pNext - VkImage srcImage - VkImageLayout srcImageLayout - VkBuffer dstBuffer - uint32_t regionCount - const VkBufferImageCopy2KHR* pRegions - - - VkStructureType sType - const void* pNext - VkImage srcImage - VkImageLayout srcImageLayout - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkImageResolve2KHR* pRegions - - - VkStructureType sType - void* pNext - VkBool32 shaderImageInt64Atomics - VkBool32 sparseImageInt64Atomics - - - VkStructureType sType - const void* pNext - const VkAttachmentReference2* pFragmentShadingRateAttachment - VkExtent2D shadingRateAttachmentTexelSize - - - VkStructureType sType - const void* pNext - VkExtent2D fragmentSize - VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - VkStructureType sType - void* pNext - VkBool32 pipelineFragmentShadingRate - VkBool32 primitiveFragmentShadingRate - VkBool32 attachmentFragmentShadingRate - - - VkStructureType sType - void* pNext - VkExtent2D minFragmentShadingRateAttachmentTexelSize - VkExtent2D maxFragmentShadingRateAttachmentTexelSize - uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio - VkBool32 primitiveFragmentShadingRateWithMultipleViewports - VkBool32 layeredShadingRateAttachments - VkBool32 fragmentShadingRateNonTrivialCombinerOps - VkExtent2D maxFragmentSize - uint32_t maxFragmentSizeAspectRatio - uint32_t maxFragmentShadingRateCoverageSamples - VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples - VkBool32 fragmentShadingRateWithShaderDepthStencilWrites - VkBool32 fragmentShadingRateWithSampleMask - VkBool32 fragmentShadingRateWithShaderSampleMask - VkBool32 fragmentShadingRateWithConservativeRasterization - VkBool32 fragmentShadingRateWithFragmentShaderInterlock - VkBool32 fragmentShadingRateWithCustomSampleLocations - VkBool32 fragmentShadingRateStrictMultiplyCombiner - - - VkStructureType sType - void* pNext - VkSampleCountFlags sampleCounts - VkExtent2D fragmentSize - - - VkStructureTypesType - void* pNext - VkBool32 shaderTerminateInvocation - - - VkStructureType sType - void* pNext - VkBool32 fragmentShadingRateEnums - VkBool32 supersampleFragmentShadingRates - VkBool32 noInvocationFragmentShadingRates - - - VkStructureType sType - void* pNext - VkSampleCountFlagBits maxFragmentShadingRateInvocationCount - - - VkStructureType sType - const void* pNext - VkFragmentShadingRateTypeNV shadingRateType - VkFragmentShadingRateNV shadingRate - VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - VkStructureType sType - const void* pNext - VkDeviceSize accelerationStructureSize - VkDeviceSize updateScratchSize - VkDeviceSize buildScratchSize - - - VkStructureType sType - void* pNext - VkBool32 mutableDescriptorType - - - uint32_t descriptorTypeCount - const VkDescriptorType* pDescriptorTypes - - - VkStructureType sType - const void* pNext - uint32_t mutableDescriptorTypeListCount - const VkMutableDescriptorTypeListVALVE* pMutableDescriptorTypeLists - - - - Vulkan enumerant (token) definitions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Unlike OpenGL, most tokens in Vulkan are actual typed enumerants in - their own numeric namespaces. The "name" attribute is the C enum - type name, and is pulled in from a type tag definition above - (slightly clunky, but retains the type / enum distinction). "type" - attributes of "enum" or "bitmask" indicate that these values should - be generated inside an appropriate definition. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - value="4" reserved for VK_KHR_sampler_mirror_clamp_to_edge - enum VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE; do not - alias! - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Return codes (positive values) - - - - - - - Error codes (negative values) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Flags - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - When VkSemaphoreCreateFlagBits is first extended, need to add a bitmask enums tag for it here - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - WSI Extensions - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Vendor IDs are now represented as enums instead of the old - <vendorids> tag, allowing them to be included in the - API headers. - - - - - - - - - - Driver IDs are now represented as enums instead of the old - <driverids> tag, allowing them to be included in the - API headers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VkResult vkCreateInstance - const VkInstanceCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkInstance* pInstance - - - void vkDestroyInstance - VkInstance instance - const VkAllocationCallbacks* pAllocator - - all sname:VkPhysicalDevice objects enumerated from pname:instance - - - - VkResult vkEnumeratePhysicalDevices - VkInstance instance - uint32_t* pPhysicalDeviceCount - VkPhysicalDevice* pPhysicalDevices - - - PFN_vkVoidFunction vkGetDeviceProcAddr - VkDevice device - const char* pName - - - PFN_vkVoidFunction vkGetInstanceProcAddr - VkInstance instance - const char* pName - - - void vkGetPhysicalDeviceProperties - VkPhysicalDevice physicalDevice - VkPhysicalDeviceProperties* pProperties - - - void vkGetPhysicalDeviceQueueFamilyProperties - VkPhysicalDevice physicalDevice - uint32_t* pQueueFamilyPropertyCount - VkQueueFamilyProperties* pQueueFamilyProperties - - - void vkGetPhysicalDeviceMemoryProperties - VkPhysicalDevice physicalDevice - VkPhysicalDeviceMemoryProperties* pMemoryProperties - - - void vkGetPhysicalDeviceFeatures - VkPhysicalDevice physicalDevice - VkPhysicalDeviceFeatures* pFeatures - - - void vkGetPhysicalDeviceFormatProperties - VkPhysicalDevice physicalDevice - VkFormat format - VkFormatProperties* pFormatProperties - - - VkResult vkGetPhysicalDeviceImageFormatProperties - VkPhysicalDevice physicalDevice - VkFormat format - VkImageType type - VkImageTiling tiling - VkImageUsageFlags usage - VkImageCreateFlags flags - VkImageFormatProperties* pImageFormatProperties - - - VkResult vkCreateDevice - VkPhysicalDevice physicalDevice - const VkDeviceCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkDevice* pDevice - - - void vkDestroyDevice - VkDevice device - const VkAllocationCallbacks* pAllocator - - all sname:VkQueue objects received from pname:device - - - - VkResult vkEnumerateInstanceVersion - uint32_t* pApiVersion - - - VkResult vkEnumerateInstanceLayerProperties - uint32_t* pPropertyCount - VkLayerProperties* pProperties - - - VkResult vkEnumerateInstanceExtensionProperties - const char* pLayerName - uint32_t* pPropertyCount - VkExtensionProperties* pProperties - - - VkResult vkEnumerateDeviceLayerProperties - VkPhysicalDevice physicalDevice - uint32_t* pPropertyCount - VkLayerProperties* pProperties - - - VkResult vkEnumerateDeviceExtensionProperties - VkPhysicalDevice physicalDevice - const char* pLayerName - uint32_t* pPropertyCount - VkExtensionProperties* pProperties - - - void vkGetDeviceQueue - VkDevice device - uint32_t queueFamilyIndex - uint32_t queueIndex - VkQueue* pQueue - - - VkResult vkQueueSubmit - VkQueue queue - uint32_t submitCount - const VkSubmitInfo* pSubmits - VkFence fence - - - VkResult vkQueueWaitIdle - VkQueue queue - - - VkResult vkDeviceWaitIdle - VkDevice device - - all sname:VkQueue objects created from pname:device - - - - VkResult vkAllocateMemory - VkDevice device - const VkMemoryAllocateInfo* pAllocateInfo - const VkAllocationCallbacks* pAllocator - VkDeviceMemory* pMemory - - - void vkFreeMemory - VkDevice device - VkDeviceMemory memory - const VkAllocationCallbacks* pAllocator - - - VkResult vkMapMemory - VkDevice device - VkDeviceMemory memory - VkDeviceSize offset - VkDeviceSize size - VkMemoryMapFlags flags - void** ppData - - - void vkUnmapMemory - VkDevice device - VkDeviceMemory memory - - - VkResult vkFlushMappedMemoryRanges - VkDevice device - uint32_t memoryRangeCount - const VkMappedMemoryRange* pMemoryRanges - - - VkResult vkInvalidateMappedMemoryRanges - VkDevice device - uint32_t memoryRangeCount - const VkMappedMemoryRange* pMemoryRanges - - - void vkGetDeviceMemoryCommitment - VkDevice device - VkDeviceMemory memory - VkDeviceSize* pCommittedMemoryInBytes - - - void vkGetBufferMemoryRequirements - VkDevice device - VkBuffer buffer - VkMemoryRequirements* pMemoryRequirements - - - VkResult vkBindBufferMemory - VkDevice device - VkBuffer buffer - VkDeviceMemory memory - VkDeviceSize memoryOffset - - - void vkGetImageMemoryRequirements - VkDevice device - VkImage image - VkMemoryRequirements* pMemoryRequirements - - - VkResult vkBindImageMemory - VkDevice device - VkImage image - VkDeviceMemory memory - VkDeviceSize memoryOffset - - - void vkGetImageSparseMemoryRequirements - VkDevice device - VkImage image - uint32_t* pSparseMemoryRequirementCount - VkSparseImageMemoryRequirements* pSparseMemoryRequirements - - - void vkGetPhysicalDeviceSparseImageFormatProperties - VkPhysicalDevice physicalDevice - VkFormat format - VkImageType type - VkSampleCountFlagBits samples - VkImageUsageFlags usage - VkImageTiling tiling - uint32_t* pPropertyCount - VkSparseImageFormatProperties* pProperties - - - VkResult vkQueueBindSparse - VkQueue queue - uint32_t bindInfoCount - const VkBindSparseInfo* pBindInfo - VkFence fence - - - VkResult vkCreateFence - VkDevice device - const VkFenceCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkFence* pFence - - - void vkDestroyFence - VkDevice device - VkFence fence - const VkAllocationCallbacks* pAllocator - - - VkResult vkResetFences - VkDevice device - uint32_t fenceCount - const VkFence* pFences - - - VkResult vkGetFenceStatus - VkDevice device - VkFence fence - - - VkResult vkWaitForFences - VkDevice device - uint32_t fenceCount - const VkFence* pFences - VkBool32 waitAll - uint64_t timeout - - - VkResult vkCreateSemaphore - VkDevice device - const VkSemaphoreCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSemaphore* pSemaphore - - - void vkDestroySemaphore - VkDevice device - VkSemaphore semaphore - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateEvent - VkDevice device - const VkEventCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkEvent* pEvent - - - void vkDestroyEvent - VkDevice device - VkEvent event - const VkAllocationCallbacks* pAllocator - - - VkResult vkGetEventStatus - VkDevice device - VkEvent event - - - VkResult vkSetEvent - VkDevice device - VkEvent event - - - VkResult vkResetEvent - VkDevice device - VkEvent event - - - VkResult vkCreateQueryPool - VkDevice device - const VkQueryPoolCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkQueryPool* pQueryPool - - - void vkDestroyQueryPool - VkDevice device - VkQueryPool queryPool - const VkAllocationCallbacks* pAllocator - - - VkResult vkGetQueryPoolResults - VkDevice device - VkQueryPool queryPool - uint32_t firstQuery - uint32_t queryCount - size_t dataSize - void* pData - VkDeviceSize stride - VkQueryResultFlags flags - - - void vkResetQueryPool - VkDevice device - VkQueryPool queryPool - uint32_t firstQuery - uint32_t queryCount - - - - VkResult vkCreateBuffer - VkDevice device - const VkBufferCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkBuffer* pBuffer - - - void vkDestroyBuffer - VkDevice device - VkBuffer buffer - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateBufferView - VkDevice device - const VkBufferViewCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkBufferView* pView - - - void vkDestroyBufferView - VkDevice device - VkBufferView bufferView - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateImage - VkDevice device - const VkImageCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkImage* pImage - - - void vkDestroyImage - VkDevice device - VkImage image - const VkAllocationCallbacks* pAllocator - - - void vkGetImageSubresourceLayout - VkDevice device - VkImage image - const VkImageSubresource* pSubresource - VkSubresourceLayout* pLayout - - - VkResult vkCreateImageView - VkDevice device - const VkImageViewCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkImageView* pView - - - void vkDestroyImageView - VkDevice device - VkImageView imageView - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateShaderModule - VkDevice device - const VkShaderModuleCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkShaderModule* pShaderModule - - - void vkDestroyShaderModule - VkDevice device - VkShaderModule shaderModule - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreatePipelineCache - VkDevice device - const VkPipelineCacheCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkPipelineCache* pPipelineCache - - - void vkDestroyPipelineCache - VkDevice device - VkPipelineCache pipelineCache - const VkAllocationCallbacks* pAllocator - - - VkResult vkGetPipelineCacheData - VkDevice device - VkPipelineCache pipelineCache - size_t* pDataSize - void* pData - - - VkResult vkMergePipelineCaches - VkDevice device - VkPipelineCache dstCache - uint32_t srcCacheCount - const VkPipelineCache* pSrcCaches - - - VkResult vkCreateGraphicsPipelines - VkDevice device - VkPipelineCache pipelineCache - uint32_t createInfoCount - const VkGraphicsPipelineCreateInfo* pCreateInfos - const VkAllocationCallbacks* pAllocator - VkPipeline* pPipelines - - - VkResult vkCreateComputePipelines - VkDevice device - VkPipelineCache pipelineCache - uint32_t createInfoCount - const VkComputePipelineCreateInfo* pCreateInfos - const VkAllocationCallbacks* pAllocator - VkPipeline* pPipelines - - - void vkDestroyPipeline - VkDevice device - VkPipeline pipeline - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreatePipelineLayout - VkDevice device - const VkPipelineLayoutCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkPipelineLayout* pPipelineLayout - - - void vkDestroyPipelineLayout - VkDevice device - VkPipelineLayout pipelineLayout - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateSampler - VkDevice device - const VkSamplerCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSampler* pSampler - - - void vkDestroySampler - VkDevice device - VkSampler sampler - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateDescriptorSetLayout - VkDevice device - const VkDescriptorSetLayoutCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkDescriptorSetLayout* pSetLayout - - - void vkDestroyDescriptorSetLayout - VkDevice device - VkDescriptorSetLayout descriptorSetLayout - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateDescriptorPool - VkDevice device - const VkDescriptorPoolCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkDescriptorPool* pDescriptorPool - - - void vkDestroyDescriptorPool - VkDevice device - VkDescriptorPool descriptorPool - const VkAllocationCallbacks* pAllocator - - - VkResult vkResetDescriptorPool - VkDevice device - VkDescriptorPool descriptorPool - VkDescriptorPoolResetFlags flags - - any sname:VkDescriptorSet objects allocated from pname:descriptorPool - - - - VkResult vkAllocateDescriptorSets - VkDevice device - const VkDescriptorSetAllocateInfo* pAllocateInfo - VkDescriptorSet* pDescriptorSets - - - VkResult vkFreeDescriptorSets - VkDevice device - VkDescriptorPool descriptorPool - uint32_t descriptorSetCount - const VkDescriptorSet* pDescriptorSets - - - void vkUpdateDescriptorSets - VkDevice device - uint32_t descriptorWriteCount - const VkWriteDescriptorSet* pDescriptorWrites - uint32_t descriptorCopyCount - const VkCopyDescriptorSet* pDescriptorCopies - - - VkResult vkCreateFramebuffer - VkDevice device - const VkFramebufferCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkFramebuffer* pFramebuffer - - - void vkDestroyFramebuffer - VkDevice device - VkFramebuffer framebuffer - const VkAllocationCallbacks* pAllocator - - - VkResult vkCreateRenderPass - VkDevice device - const VkRenderPassCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkRenderPass* pRenderPass - - - void vkDestroyRenderPass - VkDevice device - VkRenderPass renderPass - const VkAllocationCallbacks* pAllocator - - - void vkGetRenderAreaGranularity - VkDevice device - VkRenderPass renderPass - VkExtent2D* pGranularity - - - VkResult vkCreateCommandPool - VkDevice device - const VkCommandPoolCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkCommandPool* pCommandPool - - - void vkDestroyCommandPool - VkDevice device - VkCommandPool commandPool - const VkAllocationCallbacks* pAllocator - - - VkResult vkResetCommandPool - VkDevice device - VkCommandPool commandPool - VkCommandPoolResetFlags flags - - - VkResult vkAllocateCommandBuffers - VkDevice device - const VkCommandBufferAllocateInfo* pAllocateInfo - VkCommandBuffer* pCommandBuffers - - - void vkFreeCommandBuffers - VkDevice device - VkCommandPool commandPool - uint32_t commandBufferCount - const VkCommandBuffer* pCommandBuffers - - - VkResult vkBeginCommandBuffer - VkCommandBuffer commandBuffer - const VkCommandBufferBeginInfo* pBeginInfo - - the sname:VkCommandPool that pname:commandBuffer was allocated from - - - - VkResult vkEndCommandBuffer - VkCommandBuffer commandBuffer - - the sname:VkCommandPool that pname:commandBuffer was allocated from - - - - VkResult vkResetCommandBuffer - VkCommandBuffer commandBuffer - VkCommandBufferResetFlags flags - - - void vkCmdBindPipeline - VkCommandBuffer commandBuffer - VkPipelineBindPoint pipelineBindPoint - VkPipeline pipeline - - - void vkCmdSetViewport - VkCommandBuffer commandBuffer - uint32_t firstViewport - uint32_t viewportCount - const VkViewport* pViewports - - - void vkCmdSetScissor - VkCommandBuffer commandBuffer - uint32_t firstScissor - uint32_t scissorCount - const VkRect2D* pScissors - - - void vkCmdSetLineWidth - VkCommandBuffer commandBuffer - float lineWidth - - - void vkCmdSetDepthBias - VkCommandBuffer commandBuffer - float depthBiasConstantFactor - float depthBiasClamp - float depthBiasSlopeFactor - - - void vkCmdSetBlendConstants - VkCommandBuffer commandBuffer - const float blendConstants[4] - - - void vkCmdSetDepthBounds - VkCommandBuffer commandBuffer - float minDepthBounds - float maxDepthBounds - - - void vkCmdSetStencilCompareMask - VkCommandBuffer commandBuffer - VkStencilFaceFlags faceMask - uint32_t compareMask - - - void vkCmdSetStencilWriteMask - VkCommandBuffer commandBuffer - VkStencilFaceFlags faceMask - uint32_t writeMask - - - void vkCmdSetStencilReference - VkCommandBuffer commandBuffer - VkStencilFaceFlags faceMask - uint32_t reference - - - void vkCmdBindDescriptorSets - VkCommandBuffer commandBuffer - VkPipelineBindPoint pipelineBindPoint - VkPipelineLayout layout - uint32_t firstSet - uint32_t descriptorSetCount - const VkDescriptorSet* pDescriptorSets - uint32_t dynamicOffsetCount - const uint32_t* pDynamicOffsets - - - void vkCmdBindIndexBuffer - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - VkIndexType indexType - - - void vkCmdBindVertexBuffers - VkCommandBuffer commandBuffer - uint32_t firstBinding - uint32_t bindingCount - const VkBuffer* pBuffers - const VkDeviceSize* pOffsets - - - void vkCmdDraw - VkCommandBuffer commandBuffer - uint32_t vertexCount - uint32_t instanceCount - uint32_t firstVertex - uint32_t firstInstance - - - void vkCmdDrawIndexed - VkCommandBuffer commandBuffer - uint32_t indexCount - uint32_t instanceCount - uint32_t firstIndex - int32_t vertexOffset - uint32_t firstInstance - - - void vkCmdDrawIndirect - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - uint32_t drawCount - uint32_t stride - - - void vkCmdDrawIndexedIndirect - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - uint32_t drawCount - uint32_t stride - - - void vkCmdDispatch - VkCommandBuffer commandBuffer - uint32_t groupCountX - uint32_t groupCountY - uint32_t groupCountZ - - - void vkCmdDispatchIndirect - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - - - void vkCmdCopyBuffer - VkCommandBuffer commandBuffer - VkBuffer srcBuffer - VkBuffer dstBuffer - uint32_t regionCount - const VkBufferCopy* pRegions - - - void vkCmdCopyImage - VkCommandBuffer commandBuffer - VkImage srcImage - VkImageLayout srcImageLayout - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkImageCopy* pRegions - - - void vkCmdBlitImage - VkCommandBuffer commandBuffer - VkImage srcImage - VkImageLayout srcImageLayout - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkImageBlit* pRegions - VkFilter filter - - - void vkCmdCopyBufferToImage - VkCommandBuffer commandBuffer - VkBuffer srcBuffer - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkBufferImageCopy* pRegions - - - void vkCmdCopyImageToBuffer - VkCommandBuffer commandBuffer - VkImage srcImage - VkImageLayout srcImageLayout - VkBuffer dstBuffer - uint32_t regionCount - const VkBufferImageCopy* pRegions - - - void vkCmdUpdateBuffer - VkCommandBuffer commandBuffer - VkBuffer dstBuffer - VkDeviceSize dstOffset - VkDeviceSize dataSize - const void* pData - - - void vkCmdFillBuffer - VkCommandBuffer commandBuffer - VkBuffer dstBuffer - VkDeviceSize dstOffset - VkDeviceSize size - uint32_t data - - - void vkCmdClearColorImage - VkCommandBuffer commandBuffer - VkImage image - VkImageLayout imageLayout - const VkClearColorValue* pColor - uint32_t rangeCount - const VkImageSubresourceRange* pRanges - - - void vkCmdClearDepthStencilImage - VkCommandBuffer commandBuffer - VkImage image - VkImageLayout imageLayout - const VkClearDepthStencilValue* pDepthStencil - uint32_t rangeCount - const VkImageSubresourceRange* pRanges - - - void vkCmdClearAttachments - VkCommandBuffer commandBuffer - uint32_t attachmentCount - const VkClearAttachment* pAttachments - uint32_t rectCount - const VkClearRect* pRects - - - void vkCmdResolveImage - VkCommandBuffer commandBuffer - VkImage srcImage - VkImageLayout srcImageLayout - VkImage dstImage - VkImageLayout dstImageLayout - uint32_t regionCount - const VkImageResolve* pRegions - - - void vkCmdSetEvent - VkCommandBuffer commandBuffer - VkEvent event - VkPipelineStageFlags stageMask - - - void vkCmdResetEvent - VkCommandBuffer commandBuffer - VkEvent event - VkPipelineStageFlags stageMask - - - void vkCmdWaitEvents - VkCommandBuffer commandBuffer - uint32_t eventCount - const VkEvent* pEvents - VkPipelineStageFlags srcStageMask - VkPipelineStageFlags dstStageMask - uint32_t memoryBarrierCount - const VkMemoryBarrier* pMemoryBarriers - uint32_t bufferMemoryBarrierCount - const VkBufferMemoryBarrier* pBufferMemoryBarriers - uint32_t imageMemoryBarrierCount - const VkImageMemoryBarrier* pImageMemoryBarriers - - - void vkCmdPipelineBarrier - VkCommandBuffer commandBuffer - VkPipelineStageFlags srcStageMask - VkPipelineStageFlags dstStageMask - VkDependencyFlags dependencyFlags - uint32_t memoryBarrierCount - const VkMemoryBarrier* pMemoryBarriers - uint32_t bufferMemoryBarrierCount - const VkBufferMemoryBarrier* pBufferMemoryBarriers - uint32_t imageMemoryBarrierCount - const VkImageMemoryBarrier* pImageMemoryBarriers - - - void vkCmdBeginQuery - VkCommandBuffer commandBuffer - VkQueryPool queryPool - uint32_t query - VkQueryControlFlags flags - - - void vkCmdEndQuery - VkCommandBuffer commandBuffer - VkQueryPool queryPool - uint32_t query - - - void vkCmdBeginConditionalRenderingEXT - VkCommandBuffer commandBuffer - const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin - - - void vkCmdEndConditionalRenderingEXT - VkCommandBuffer commandBuffer - - - void vkCmdResetQueryPool - VkCommandBuffer commandBuffer - VkQueryPool queryPool - uint32_t firstQuery - uint32_t queryCount - - - void vkCmdWriteTimestamp - VkCommandBuffer commandBuffer - VkPipelineStageFlagBits pipelineStage - VkQueryPool queryPool - uint32_t query - - - void vkCmdCopyQueryPoolResults - VkCommandBuffer commandBuffer - VkQueryPool queryPool - uint32_t firstQuery - uint32_t queryCount - VkBuffer dstBuffer - VkDeviceSize dstOffset - VkDeviceSize stride - VkQueryResultFlags flags - - - void vkCmdPushConstants - VkCommandBuffer commandBuffer - VkPipelineLayout layout - VkShaderStageFlags stageFlags - uint32_t offset - uint32_t size - const void* pValues - - - void vkCmdBeginRenderPass - VkCommandBuffer commandBuffer - const VkRenderPassBeginInfo* pRenderPassBegin - VkSubpassContents contents - - - void vkCmdNextSubpass - VkCommandBuffer commandBuffer - VkSubpassContents contents - - - void vkCmdEndRenderPass - VkCommandBuffer commandBuffer - - - void vkCmdExecuteCommands - VkCommandBuffer commandBuffer - uint32_t commandBufferCount - const VkCommandBuffer* pCommandBuffers - - - VkResult vkCreateAndroidSurfaceKHR - VkInstance instance - const VkAndroidSurfaceCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkGetPhysicalDeviceDisplayPropertiesKHR - VkPhysicalDevice physicalDevice - uint32_t* pPropertyCount - VkDisplayPropertiesKHR* pProperties - - - VkResult vkGetPhysicalDeviceDisplayPlanePropertiesKHR - VkPhysicalDevice physicalDevice - uint32_t* pPropertyCount - VkDisplayPlanePropertiesKHR* pProperties - - - VkResult vkGetDisplayPlaneSupportedDisplaysKHR - VkPhysicalDevice physicalDevice - uint32_t planeIndex - uint32_t* pDisplayCount - VkDisplayKHR* pDisplays - - - VkResult vkGetDisplayModePropertiesKHR - VkPhysicalDevice physicalDevice - VkDisplayKHR display - uint32_t* pPropertyCount - VkDisplayModePropertiesKHR* pProperties - - - VkResult vkCreateDisplayModeKHR - VkPhysicalDevice physicalDevice - VkDisplayKHR display - const VkDisplayModeCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkDisplayModeKHR* pMode - - - VkResult vkGetDisplayPlaneCapabilitiesKHR - VkPhysicalDevice physicalDevice - VkDisplayModeKHR mode - uint32_t planeIndex - VkDisplayPlaneCapabilitiesKHR* pCapabilities - - - VkResult vkCreateDisplayPlaneSurfaceKHR - VkInstance instance - const VkDisplaySurfaceCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkCreateSharedSwapchainsKHR - VkDevice device - uint32_t swapchainCount - const VkSwapchainCreateInfoKHR* pCreateInfos - const VkAllocationCallbacks* pAllocator - VkSwapchainKHR* pSwapchains - - - void vkDestroySurfaceKHR - VkInstance instance - VkSurfaceKHR surface - const VkAllocationCallbacks* pAllocator - - - VkResult vkGetPhysicalDeviceSurfaceSupportKHR - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - VkSurfaceKHR surface - VkBool32* pSupported - - - VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR - VkPhysicalDevice physicalDevice - VkSurfaceKHR surface - VkSurfaceCapabilitiesKHR* pSurfaceCapabilities - - - VkResult vkGetPhysicalDeviceSurfaceFormatsKHR - VkPhysicalDevice physicalDevice - VkSurfaceKHR surface - uint32_t* pSurfaceFormatCount - VkSurfaceFormatKHR* pSurfaceFormats - - - VkResult vkGetPhysicalDeviceSurfacePresentModesKHR - VkPhysicalDevice physicalDevice - VkSurfaceKHR surface - uint32_t* pPresentModeCount - VkPresentModeKHR* pPresentModes - - - VkResult vkCreateSwapchainKHR - VkDevice device - const VkSwapchainCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSwapchainKHR* pSwapchain - - - void vkDestroySwapchainKHR - VkDevice device - VkSwapchainKHR swapchain - const VkAllocationCallbacks* pAllocator - - - VkResult vkGetSwapchainImagesKHR - VkDevice device - VkSwapchainKHR swapchain - uint32_t* pSwapchainImageCount - VkImage* pSwapchainImages - - - VkResult vkAcquireNextImageKHR - VkDevice device - VkSwapchainKHR swapchain - uint64_t timeout - VkSemaphore semaphore - VkFence fence - uint32_t* pImageIndex - - - VkResult vkQueuePresentKHR - VkQueue queue - const VkPresentInfoKHR* pPresentInfo - - - VkResult vkCreateViSurfaceNN - VkInstance instance - const VkViSurfaceCreateInfoNN* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkCreateWaylandSurfaceKHR - VkInstance instance - const VkWaylandSurfaceCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkBool32 vkGetPhysicalDeviceWaylandPresentationSupportKHR - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - struct wl_display* display - - - VkResult vkCreateWin32SurfaceKHR - VkInstance instance - const VkWin32SurfaceCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkBool32 vkGetPhysicalDeviceWin32PresentationSupportKHR - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - - - VkResult vkCreateXlibSurfaceKHR - VkInstance instance - const VkXlibSurfaceCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkBool32 vkGetPhysicalDeviceXlibPresentationSupportKHR - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - Display* dpy - VisualID visualID - - - VkResult vkCreateXcbSurfaceKHR - VkInstance instance - const VkXcbSurfaceCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkBool32 vkGetPhysicalDeviceXcbPresentationSupportKHR - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - xcb_connection_t* connection - xcb_visualid_t visual_id - - - VkResult vkCreateDirectFBSurfaceEXT - VkInstance instance - const VkDirectFBSurfaceCreateInfoEXT* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkBool32 vkGetPhysicalDeviceDirectFBPresentationSupportEXT - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - IDirectFB* dfb - - - VkResult vkCreateImagePipeSurfaceFUCHSIA - VkInstance instance - const VkImagePipeSurfaceCreateInfoFUCHSIA* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkCreateStreamDescriptorSurfaceGGP - VkInstance instance - const VkStreamDescriptorSurfaceCreateInfoGGP* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkCreateDebugReportCallbackEXT - VkInstance instance - const VkDebugReportCallbackCreateInfoEXT* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkDebugReportCallbackEXT* pCallback - - - void vkDestroyDebugReportCallbackEXT - VkInstance instance - VkDebugReportCallbackEXT callback - const VkAllocationCallbacks* pAllocator - - - void vkDebugReportMessageEXT - VkInstance instance - VkDebugReportFlagsEXT flags - VkDebugReportObjectTypeEXT objectType - uint64_t object - size_t location - int32_t messageCode - const char* pLayerPrefix - const char* pMessage - - - VkResult vkDebugMarkerSetObjectNameEXT - VkDevice device - const VkDebugMarkerObjectNameInfoEXT* pNameInfo - - - VkResult vkDebugMarkerSetObjectTagEXT - VkDevice device - const VkDebugMarkerObjectTagInfoEXT* pTagInfo - - - void vkCmdDebugMarkerBeginEXT - VkCommandBuffer commandBuffer - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo - - - void vkCmdDebugMarkerEndEXT - VkCommandBuffer commandBuffer - - - void vkCmdDebugMarkerInsertEXT - VkCommandBuffer commandBuffer - const VkDebugMarkerMarkerInfoEXT* pMarkerInfo - - - VkResult vkGetPhysicalDeviceExternalImageFormatPropertiesNV - VkPhysicalDevice physicalDevice - VkFormat format - VkImageType type - VkImageTiling tiling - VkImageUsageFlags usage - VkImageCreateFlags flags - VkExternalMemoryHandleTypeFlagsNV externalHandleType - VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties - - - VkResult vkGetMemoryWin32HandleNV - VkDevice device - VkDeviceMemory memory - VkExternalMemoryHandleTypeFlagsNV handleType - HANDLE* pHandle - - - void vkCmdExecuteGeneratedCommandsNV - VkCommandBuffer commandBuffer - VkBool32 isPreprocessed - const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo - - - void vkCmdPreprocessGeneratedCommandsNV - VkCommandBuffer commandBuffer - const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo - - - void vkCmdBindPipelineShaderGroupNV - VkCommandBuffer commandBuffer - VkPipelineBindPoint pipelineBindPoint - VkPipeline pipeline - uint32_t groupIndex - - - void vkGetGeneratedCommandsMemoryRequirementsNV - VkDevice device - const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo - VkMemoryRequirements2* pMemoryRequirements - - - VkResult vkCreateIndirectCommandsLayoutNV - VkDevice device - const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkIndirectCommandsLayoutNV* pIndirectCommandsLayout - - - void vkDestroyIndirectCommandsLayoutNV - VkDevice device - VkIndirectCommandsLayoutNV indirectCommandsLayout - const VkAllocationCallbacks* pAllocator - - - void vkGetPhysicalDeviceFeatures2 - VkPhysicalDevice physicalDevice - VkPhysicalDeviceFeatures2* pFeatures - - - - void vkGetPhysicalDeviceProperties2 - VkPhysicalDevice physicalDevice - VkPhysicalDeviceProperties2* pProperties - - - - void vkGetPhysicalDeviceFormatProperties2 - VkPhysicalDevice physicalDevice - VkFormat format - VkFormatProperties2* pFormatProperties - - - - VkResult vkGetPhysicalDeviceImageFormatProperties2 - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo - VkImageFormatProperties2* pImageFormatProperties - - - - void vkGetPhysicalDeviceQueueFamilyProperties2 - VkPhysicalDevice physicalDevice - uint32_t* pQueueFamilyPropertyCount - VkQueueFamilyProperties2* pQueueFamilyProperties - - - - void vkGetPhysicalDeviceMemoryProperties2 - VkPhysicalDevice physicalDevice - VkPhysicalDeviceMemoryProperties2* pMemoryProperties - - - - void vkGetPhysicalDeviceSparseImageFormatProperties2 - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo - uint32_t* pPropertyCount - VkSparseImageFormatProperties2* pProperties - - - - void vkCmdPushDescriptorSetKHR - VkCommandBuffer commandBuffer - VkPipelineBindPoint pipelineBindPoint - VkPipelineLayout layout - uint32_t set - uint32_t descriptorWriteCount - const VkWriteDescriptorSet* pDescriptorWrites - - - void vkTrimCommandPool - VkDevice device - VkCommandPool commandPool - VkCommandPoolTrimFlags flags - - - - void vkGetPhysicalDeviceExternalBufferProperties - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo - VkExternalBufferProperties* pExternalBufferProperties - - - - VkResult vkGetMemoryWin32HandleKHR - VkDevice device - const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo - HANDLE* pHandle - - - VkResult vkGetMemoryWin32HandlePropertiesKHR - VkDevice device - VkExternalMemoryHandleTypeFlagBits handleType - HANDLE handle - VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties - - - VkResult vkGetMemoryFdKHR - VkDevice device - const VkMemoryGetFdInfoKHR* pGetFdInfo - int* pFd - - - VkResult vkGetMemoryFdPropertiesKHR - VkDevice device - VkExternalMemoryHandleTypeFlagBits handleType - int fd - VkMemoryFdPropertiesKHR* pMemoryFdProperties - - - void vkGetPhysicalDeviceExternalSemaphoreProperties - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo - VkExternalSemaphoreProperties* pExternalSemaphoreProperties - - - - VkResult vkGetSemaphoreWin32HandleKHR - VkDevice device - const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo - HANDLE* pHandle - - - VkResult vkImportSemaphoreWin32HandleKHR - VkDevice device - const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo - - - VkResult vkGetSemaphoreFdKHR - VkDevice device - const VkSemaphoreGetFdInfoKHR* pGetFdInfo - int* pFd - - - VkResult vkImportSemaphoreFdKHR - VkDevice device - const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo - - - void vkGetPhysicalDeviceExternalFenceProperties - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo - VkExternalFenceProperties* pExternalFenceProperties - - - - VkResult vkGetFenceWin32HandleKHR - VkDevice device - const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo - HANDLE* pHandle - - - VkResult vkImportFenceWin32HandleKHR - VkDevice device - const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo - - - VkResult vkGetFenceFdKHR - VkDevice device - const VkFenceGetFdInfoKHR* pGetFdInfo - int* pFd - - - VkResult vkImportFenceFdKHR - VkDevice device - const VkImportFenceFdInfoKHR* pImportFenceFdInfo - - - VkResult vkReleaseDisplayEXT - VkPhysicalDevice physicalDevice - VkDisplayKHR display - - - VkResult vkAcquireXlibDisplayEXT - VkPhysicalDevice physicalDevice - Display* dpy - VkDisplayKHR display - - - VkResult vkGetRandROutputDisplayEXT - VkPhysicalDevice physicalDevice - Display* dpy - RROutput rrOutput - VkDisplayKHR* pDisplay - - - VkResult vkAcquireWinrtDisplayNV - VkPhysicalDevice physicalDevice - VkDisplayKHR display - - - VkResult vkGetWinrtDisplayNV - VkPhysicalDevice physicalDevice - uint32_t deviceRelativeId - VkDisplayKHR* pDisplay - - - VkResult vkDisplayPowerControlEXT - VkDevice device - VkDisplayKHR display - const VkDisplayPowerInfoEXT* pDisplayPowerInfo - - - VkResult vkRegisterDeviceEventEXT - VkDevice device - const VkDeviceEventInfoEXT* pDeviceEventInfo - const VkAllocationCallbacks* pAllocator - VkFence* pFence - - - VkResult vkRegisterDisplayEventEXT - VkDevice device - VkDisplayKHR display - const VkDisplayEventInfoEXT* pDisplayEventInfo - const VkAllocationCallbacks* pAllocator - VkFence* pFence - - - VkResult vkGetSwapchainCounterEXT - VkDevice device - VkSwapchainKHR swapchain - VkSurfaceCounterFlagBitsEXT counter - uint64_t* pCounterValue - - - VkResult vkGetPhysicalDeviceSurfaceCapabilities2EXT - VkPhysicalDevice physicalDevice - VkSurfaceKHR surface - VkSurfaceCapabilities2EXT* pSurfaceCapabilities - - - VkResult vkEnumeratePhysicalDeviceGroups - VkInstance instance - uint32_t* pPhysicalDeviceGroupCount - VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties - - - - void vkGetDeviceGroupPeerMemoryFeatures - VkDevice device - uint32_t heapIndex - uint32_t localDeviceIndex - uint32_t remoteDeviceIndex - VkPeerMemoryFeatureFlags* pPeerMemoryFeatures - - - - VkResult vkBindBufferMemory2 - VkDevice device - uint32_t bindInfoCount - const VkBindBufferMemoryInfo* pBindInfos - - - - VkResult vkBindImageMemory2 - VkDevice device - uint32_t bindInfoCount - const VkBindImageMemoryInfo* pBindInfos - - - - void vkCmdSetDeviceMask - VkCommandBuffer commandBuffer - uint32_t deviceMask - - - - VkResult vkGetDeviceGroupPresentCapabilitiesKHR - VkDevice device - VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities - - - VkResult vkGetDeviceGroupSurfacePresentModesKHR - VkDevice device - VkSurfaceKHR surface - VkDeviceGroupPresentModeFlagsKHR* pModes - - - VkResult vkAcquireNextImage2KHR - VkDevice device - const VkAcquireNextImageInfoKHR* pAcquireInfo - uint32_t* pImageIndex - - - void vkCmdDispatchBase - VkCommandBuffer commandBuffer - uint32_t baseGroupX - uint32_t baseGroupY - uint32_t baseGroupZ - uint32_t groupCountX - uint32_t groupCountY - uint32_t groupCountZ - - - - VkResult vkGetPhysicalDevicePresentRectanglesKHR - VkPhysicalDevice physicalDevice - VkSurfaceKHR surface - uint32_t* pRectCount - VkRect2D* pRects - - - VkResult vkCreateDescriptorUpdateTemplate - VkDevice device - const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate - - - - void vkDestroyDescriptorUpdateTemplate - VkDevice device - VkDescriptorUpdateTemplate descriptorUpdateTemplate - const VkAllocationCallbacks* pAllocator - - - - void vkUpdateDescriptorSetWithTemplate - VkDevice device - VkDescriptorSet descriptorSet - VkDescriptorUpdateTemplate descriptorUpdateTemplate - const void* pData - - - - void vkCmdPushDescriptorSetWithTemplateKHR - VkCommandBuffer commandBuffer - VkDescriptorUpdateTemplate descriptorUpdateTemplate - VkPipelineLayout layout - uint32_t set - const void* pData - - - void vkSetHdrMetadataEXT - VkDevice device - uint32_t swapchainCount - const VkSwapchainKHR* pSwapchains - const VkHdrMetadataEXT* pMetadata - - - VkResult vkGetSwapchainStatusKHR - VkDevice device - VkSwapchainKHR swapchain - - - VkResult vkGetRefreshCycleDurationGOOGLE - VkDevice device - VkSwapchainKHR swapchain - VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties - - - VkResult vkGetPastPresentationTimingGOOGLE - VkDevice device - VkSwapchainKHR swapchain - uint32_t* pPresentationTimingCount - VkPastPresentationTimingGOOGLE* pPresentationTimings - - - VkResult vkCreateIOSSurfaceMVK - VkInstance instance - const VkIOSSurfaceCreateInfoMVK* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkCreateMacOSSurfaceMVK - VkInstance instance - const VkMacOSSurfaceCreateInfoMVK* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkCreateMetalSurfaceEXT - VkInstance instance - const VkMetalSurfaceCreateInfoEXT* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - void vkCmdSetViewportWScalingNV - VkCommandBuffer commandBuffer - uint32_t firstViewport - uint32_t viewportCount - const VkViewportWScalingNV* pViewportWScalings - - - void vkCmdSetDiscardRectangleEXT - VkCommandBuffer commandBuffer - uint32_t firstDiscardRectangle - uint32_t discardRectangleCount - const VkRect2D* pDiscardRectangles - - - void vkCmdSetSampleLocationsEXT - VkCommandBuffer commandBuffer - const VkSampleLocationsInfoEXT* pSampleLocationsInfo - - - void vkGetPhysicalDeviceMultisamplePropertiesEXT - VkPhysicalDevice physicalDevice - VkSampleCountFlagBits samples - VkMultisamplePropertiesEXT* pMultisampleProperties - - - VkResult vkGetPhysicalDeviceSurfaceCapabilities2KHR - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - VkSurfaceCapabilities2KHR* pSurfaceCapabilities - - - VkResult vkGetPhysicalDeviceSurfaceFormats2KHR - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - uint32_t* pSurfaceFormatCount - VkSurfaceFormat2KHR* pSurfaceFormats - - - VkResult vkGetPhysicalDeviceDisplayProperties2KHR - VkPhysicalDevice physicalDevice - uint32_t* pPropertyCount - VkDisplayProperties2KHR* pProperties - - - VkResult vkGetPhysicalDeviceDisplayPlaneProperties2KHR - VkPhysicalDevice physicalDevice - uint32_t* pPropertyCount - VkDisplayPlaneProperties2KHR* pProperties - - - VkResult vkGetDisplayModeProperties2KHR - VkPhysicalDevice physicalDevice - VkDisplayKHR display - uint32_t* pPropertyCount - VkDisplayModeProperties2KHR* pProperties - - - VkResult vkGetDisplayPlaneCapabilities2KHR - VkPhysicalDevice physicalDevice - const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo - VkDisplayPlaneCapabilities2KHR* pCapabilities - - - void vkGetBufferMemoryRequirements2 - VkDevice device - const VkBufferMemoryRequirementsInfo2* pInfo - VkMemoryRequirements2* pMemoryRequirements - - - - void vkGetImageMemoryRequirements2 - VkDevice device - const VkImageMemoryRequirementsInfo2* pInfo - VkMemoryRequirements2* pMemoryRequirements - - - - void vkGetImageSparseMemoryRequirements2 - VkDevice device - const VkImageSparseMemoryRequirementsInfo2* pInfo - uint32_t* pSparseMemoryRequirementCount - VkSparseImageMemoryRequirements2* pSparseMemoryRequirements - - - - VkResult vkCreateSamplerYcbcrConversion - VkDevice device - const VkSamplerYcbcrConversionCreateInfo* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSamplerYcbcrConversion* pYcbcrConversion - - - - void vkDestroySamplerYcbcrConversion - VkDevice device - VkSamplerYcbcrConversion ycbcrConversion - const VkAllocationCallbacks* pAllocator - - - - void vkGetDeviceQueue2 - VkDevice device - const VkDeviceQueueInfo2* pQueueInfo - VkQueue* pQueue - - - VkResult vkCreateValidationCacheEXT - VkDevice device - const VkValidationCacheCreateInfoEXT* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkValidationCacheEXT* pValidationCache - - - void vkDestroyValidationCacheEXT - VkDevice device - VkValidationCacheEXT validationCache - const VkAllocationCallbacks* pAllocator - - - VkResult vkGetValidationCacheDataEXT - VkDevice device - VkValidationCacheEXT validationCache - size_t* pDataSize - void* pData - - - VkResult vkMergeValidationCachesEXT - VkDevice device - VkValidationCacheEXT dstCache - uint32_t srcCacheCount - const VkValidationCacheEXT* pSrcCaches - - - void vkGetDescriptorSetLayoutSupport - VkDevice device - const VkDescriptorSetLayoutCreateInfo* pCreateInfo - VkDescriptorSetLayoutSupport* pSupport - - - - VkResult vkGetSwapchainGrallocUsageANDROID - VkDevice device - VkFormat format - VkImageUsageFlags imageUsage - int* grallocUsage - - - VkResult vkGetSwapchainGrallocUsage2ANDROID - VkDevice device - VkFormat format - VkImageUsageFlags imageUsage - VkSwapchainImageUsageFlagsANDROID swapchainImageUsage - uint64_t* grallocConsumerUsage - uint64_t* grallocProducerUsage - - - VkResult vkAcquireImageANDROID - VkDevice device - VkImage image - int nativeFenceFd - VkSemaphore semaphore - VkFence fence - - - VkResult vkQueueSignalReleaseImageANDROID - VkQueue queue - uint32_t waitSemaphoreCount - const VkSemaphore* pWaitSemaphores - VkImage image - int* pNativeFenceFd - - - VkResult vkGetShaderInfoAMD - VkDevice device - VkPipeline pipeline - VkShaderStageFlagBits shaderStage - VkShaderInfoTypeAMD infoType - size_t* pInfoSize - void* pInfo - - - void vkSetLocalDimmingAMD - VkDevice device - VkSwapchainKHR swapChain - VkBool32 localDimmingEnable - - - VkResult vkGetPhysicalDeviceCalibrateableTimeDomainsEXT - VkPhysicalDevice physicalDevice - uint32_t* pTimeDomainCount - VkTimeDomainEXT* pTimeDomains - - - VkResult vkGetCalibratedTimestampsEXT - VkDevice device - uint32_t timestampCount - const VkCalibratedTimestampInfoEXT* pTimestampInfos - uint64_t* pTimestamps - uint64_t* pMaxDeviation - - - VkResult vkSetDebugUtilsObjectNameEXT - VkDevice device - const VkDebugUtilsObjectNameInfoEXT* pNameInfo - - - VkResult vkSetDebugUtilsObjectTagEXT - VkDevice device - const VkDebugUtilsObjectTagInfoEXT* pTagInfo - - - void vkQueueBeginDebugUtilsLabelEXT - VkQueue queue - const VkDebugUtilsLabelEXT* pLabelInfo - - - void vkQueueEndDebugUtilsLabelEXT - VkQueue queue - - - void vkQueueInsertDebugUtilsLabelEXT - VkQueue queue - const VkDebugUtilsLabelEXT* pLabelInfo - - - void vkCmdBeginDebugUtilsLabelEXT - VkCommandBuffer commandBuffer - const VkDebugUtilsLabelEXT* pLabelInfo - - - void vkCmdEndDebugUtilsLabelEXT - VkCommandBuffer commandBuffer - - - void vkCmdInsertDebugUtilsLabelEXT - VkCommandBuffer commandBuffer - const VkDebugUtilsLabelEXT* pLabelInfo - - - VkResult vkCreateDebugUtilsMessengerEXT - VkInstance instance - const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkDebugUtilsMessengerEXT* pMessenger - - - void vkDestroyDebugUtilsMessengerEXT - VkInstance instance - VkDebugUtilsMessengerEXT messenger - const VkAllocationCallbacks* pAllocator - - - void vkSubmitDebugUtilsMessageEXT - VkInstance instance - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity - VkDebugUtilsMessageTypeFlagsEXT messageTypes - const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData - - - VkResult vkGetMemoryHostPointerPropertiesEXT - VkDevice device - VkExternalMemoryHandleTypeFlagBits handleType - const void* pHostPointer - VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties - - - void vkCmdWriteBufferMarkerAMD - VkCommandBuffer commandBuffer - VkPipelineStageFlagBits pipelineStage - VkBuffer dstBuffer - VkDeviceSize dstOffset - uint32_t marker - - - VkResult vkCreateRenderPass2 - VkDevice device - const VkRenderPassCreateInfo2* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkRenderPass* pRenderPass - - - - void vkCmdBeginRenderPass2 - VkCommandBuffer commandBuffer - const VkRenderPassBeginInfo* pRenderPassBegin - const VkSubpassBeginInfo* pSubpassBeginInfo - - - - void vkCmdNextSubpass2 - VkCommandBuffer commandBuffer - const VkSubpassBeginInfo* pSubpassBeginInfo - const VkSubpassEndInfo* pSubpassEndInfo - - - - void vkCmdEndRenderPass2 - VkCommandBuffer commandBuffer - const VkSubpassEndInfo* pSubpassEndInfo - - - - VkResult vkGetSemaphoreCounterValue - VkDevice device - VkSemaphore semaphore - uint64_t* pValue - - - - VkResult vkWaitSemaphores - VkDevice device - const VkSemaphoreWaitInfo* pWaitInfo - uint64_t timeout - - - - VkResult vkSignalSemaphore - VkDevice device - const VkSemaphoreSignalInfo* pSignalInfo - - - - VkResult vkGetAndroidHardwareBufferPropertiesANDROID - VkDevice device - const struct AHardwareBuffer* buffer - VkAndroidHardwareBufferPropertiesANDROID* pProperties - - - VkResult vkGetMemoryAndroidHardwareBufferANDROID - VkDevice device - const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo - struct AHardwareBuffer** pBuffer - - - void vkCmdDrawIndirectCount - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - VkBuffer countBuffer - VkDeviceSize countBufferOffset - uint32_t maxDrawCount - uint32_t stride - - - - - void vkCmdDrawIndexedIndirectCount - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - VkBuffer countBuffer - VkDeviceSize countBufferOffset - uint32_t maxDrawCount - uint32_t stride - - - - - void vkCmdSetCheckpointNV - VkCommandBuffer commandBuffer - const void* pCheckpointMarker - - - void vkGetQueueCheckpointDataNV - VkQueue queue - uint32_t* pCheckpointDataCount - VkCheckpointDataNV* pCheckpointData - - - void vkCmdBindTransformFeedbackBuffersEXT - VkCommandBuffer commandBuffer - uint32_t firstBinding - uint32_t bindingCount - const VkBuffer* pBuffers - const VkDeviceSize* pOffsets - const VkDeviceSize* pSizes - - - void vkCmdBeginTransformFeedbackEXT - VkCommandBuffer commandBuffer - uint32_t firstCounterBuffer - uint32_t counterBufferCount - const VkBuffer* pCounterBuffers - const VkDeviceSize* pCounterBufferOffsets - - - void vkCmdEndTransformFeedbackEXT - VkCommandBuffer commandBuffer - uint32_t firstCounterBuffer - uint32_t counterBufferCount - const VkBuffer* pCounterBuffers - const VkDeviceSize* pCounterBufferOffsets - - - void vkCmdBeginQueryIndexedEXT - VkCommandBuffer commandBuffer - VkQueryPool queryPool - uint32_t query - VkQueryControlFlags flags - uint32_t index - - - void vkCmdEndQueryIndexedEXT - VkCommandBuffer commandBuffer - VkQueryPool queryPool - uint32_t query - uint32_t index - - - void vkCmdDrawIndirectByteCountEXT - VkCommandBuffer commandBuffer - uint32_t instanceCount - uint32_t firstInstance - VkBuffer counterBuffer - VkDeviceSize counterBufferOffset - uint32_t counterOffset - uint32_t vertexStride - - - void vkCmdSetExclusiveScissorNV - VkCommandBuffer commandBuffer - uint32_t firstExclusiveScissor - uint32_t exclusiveScissorCount - const VkRect2D* pExclusiveScissors - - - void vkCmdBindShadingRateImageNV - VkCommandBuffer commandBuffer - VkImageView imageView - VkImageLayout imageLayout - - - void vkCmdSetViewportShadingRatePaletteNV - VkCommandBuffer commandBuffer - uint32_t firstViewport - uint32_t viewportCount - const VkShadingRatePaletteNV* pShadingRatePalettes - - - void vkCmdSetCoarseSampleOrderNV - VkCommandBuffer commandBuffer - VkCoarseSampleOrderTypeNV sampleOrderType - uint32_t customSampleOrderCount - const VkCoarseSampleOrderCustomNV* pCustomSampleOrders - - - void vkCmdDrawMeshTasksNV - VkCommandBuffer commandBuffer - uint32_t taskCount - uint32_t firstTask - - - void vkCmdDrawMeshTasksIndirectNV - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - uint32_t drawCount - uint32_t stride - - - void vkCmdDrawMeshTasksIndirectCountNV - VkCommandBuffer commandBuffer - VkBuffer buffer - VkDeviceSize offset - VkBuffer countBuffer - VkDeviceSize countBufferOffset - uint32_t maxDrawCount - uint32_t stride - - - VkResult vkCompileDeferredNV - VkDevice device - VkPipeline pipeline - uint32_t shader - - - VkResult vkCreateAccelerationStructureNV - VkDevice device - const VkAccelerationStructureCreateInfoNV* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkAccelerationStructureNV* pAccelerationStructure - - - void vkDestroyAccelerationStructureKHR - VkDevice device - VkAccelerationStructureKHR accelerationStructure - const VkAllocationCallbacks* pAllocator - - - void vkDestroyAccelerationStructureNV - VkDevice device - VkAccelerationStructureNV accelerationStructure - const VkAllocationCallbacks* pAllocator - - - void vkGetAccelerationStructureMemoryRequirementsNV - VkDevice device - const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo - VkMemoryRequirements2KHR* pMemoryRequirements - - - VkResult vkBindAccelerationStructureMemoryNV - VkDevice device - uint32_t bindInfoCount - const VkBindAccelerationStructureMemoryInfoNV* pBindInfos - - - void vkCmdCopyAccelerationStructureNV - VkCommandBuffer commandBuffer - VkAccelerationStructureNV dst - VkAccelerationStructureNV src - VkCopyAccelerationStructureModeKHR mode - - - void vkCmdCopyAccelerationStructureKHR - VkCommandBuffer commandBuffer - const VkCopyAccelerationStructureInfoKHR* pInfo - - - VkResult vkCopyAccelerationStructureKHR - VkDevice device - VkDeferredOperationKHR deferredOperation - const VkCopyAccelerationStructureInfoKHR* pInfo - - - void vkCmdCopyAccelerationStructureToMemoryKHR - VkCommandBuffer commandBuffer - const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo - - - VkResult vkCopyAccelerationStructureToMemoryKHR - VkDevice device - VkDeferredOperationKHR deferredOperation - const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo - - - void vkCmdCopyMemoryToAccelerationStructureKHR - VkCommandBuffer commandBuffer - const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo - - - VkResult vkCopyMemoryToAccelerationStructureKHR - VkDevice device - VkDeferredOperationKHR deferredOperation - const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo - - - void vkCmdWriteAccelerationStructuresPropertiesKHR - VkCommandBuffer commandBuffer - uint32_t accelerationStructureCount - const VkAccelerationStructureKHR* pAccelerationStructures - VkQueryType queryType - VkQueryPool queryPool - uint32_t firstQuery - - - void vkCmdWriteAccelerationStructuresPropertiesNV - VkCommandBuffer commandBuffer - uint32_t accelerationStructureCount - const VkAccelerationStructureNV* pAccelerationStructures - VkQueryType queryType - VkQueryPool queryPool - uint32_t firstQuery - - - void vkCmdBuildAccelerationStructureNV - VkCommandBuffer commandBuffer - const VkAccelerationStructureInfoNV* pInfo - VkBuffer instanceData - VkDeviceSize instanceOffset - VkBool32 update - VkAccelerationStructureNV dst - VkAccelerationStructureNV src - VkBuffer scratch - VkDeviceSize scratchOffset - - - VkResult vkWriteAccelerationStructuresPropertiesKHR - VkDevice device - uint32_t accelerationStructureCount - const VkAccelerationStructureKHR* pAccelerationStructures - VkQueryType queryType - size_t dataSize - void* pData - size_t stride - - - void vkCmdTraceRaysKHR - VkCommandBuffer commandBuffer - const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable - const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable - const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable - const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable - uint32_t width - uint32_t height - uint32_t depth - - - void vkCmdTraceRaysNV - VkCommandBuffer commandBuffer - VkBuffer raygenShaderBindingTableBuffer - VkDeviceSize raygenShaderBindingOffset - VkBuffer missShaderBindingTableBuffer - VkDeviceSize missShaderBindingOffset - VkDeviceSize missShaderBindingStride - VkBuffer hitShaderBindingTableBuffer - VkDeviceSize hitShaderBindingOffset - VkDeviceSize hitShaderBindingStride - VkBuffer callableShaderBindingTableBuffer - VkDeviceSize callableShaderBindingOffset - VkDeviceSize callableShaderBindingStride - uint32_t width - uint32_t height - uint32_t depth - - - VkResult vkGetRayTracingShaderGroupHandlesKHR - VkDevice device - VkPipeline pipeline - uint32_t firstGroup - uint32_t groupCount - size_t dataSize - void* pData - - - - VkResult vkGetRayTracingCaptureReplayShaderGroupHandlesKHR - VkDevice device - VkPipeline pipeline - uint32_t firstGroup - uint32_t groupCount - size_t dataSize - void* pData - - - VkResult vkGetAccelerationStructureHandleNV - VkDevice device - VkAccelerationStructureNV accelerationStructure - size_t dataSize - void* pData - - - VkResult vkCreateRayTracingPipelinesNV - VkDevice device - VkPipelineCache pipelineCache - uint32_t createInfoCount - const VkRayTracingPipelineCreateInfoNV* pCreateInfos - const VkAllocationCallbacks* pAllocator - VkPipeline* pPipelines - - - VkResult vkCreateRayTracingPipelinesKHR - VkDevice device - VkDeferredOperationKHR deferredOperation - VkPipelineCache pipelineCache - uint32_t createInfoCount - const VkRayTracingPipelineCreateInfoKHR* pCreateInfos - const VkAllocationCallbacks* pAllocator - VkPipeline* pPipelines - - - VkResult vkGetPhysicalDeviceCooperativeMatrixPropertiesNV - VkPhysicalDevice physicalDevice - uint32_t* pPropertyCount - VkCooperativeMatrixPropertiesNV* pProperties - - - void vkCmdTraceRaysIndirectKHR - VkCommandBuffer commandBuffer - const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable - const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable - const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable - const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable - VkDeviceAddress indirectDeviceAddress - - - void vkGetDeviceAccelerationStructureCompatibilityKHR - VkDevice device - const VkAccelerationStructureVersionInfoKHR* pVersionInfo - VkAccelerationStructureCompatibilityKHR* pCompatibility - - - VkDeviceSize vkGetRayTracingShaderGroupStackSizeKHR - VkDevice device - VkPipeline pipeline - uint32_t group - VkShaderGroupShaderKHR groupShader - - - void vkCmdSetRayTracingPipelineStackSizeKHR - VkCommandBuffer commandBuffer - uint32_t pipelineStackSize - - - uint32_t vkGetImageViewHandleNVX - VkDevice device - const VkImageViewHandleInfoNVX* pInfo - - - VkResult vkGetImageViewAddressNVX - VkDevice device - VkImageView imageView - VkImageViewAddressPropertiesNVX* pProperties - - - VkResult vkGetPhysicalDeviceSurfacePresentModes2EXT - VkPhysicalDevice physicalDevice - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - uint32_t* pPresentModeCount - VkPresentModeKHR* pPresentModes - - - VkResult vkGetDeviceGroupSurfacePresentModes2EXT - VkDevice device - const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo - VkDeviceGroupPresentModeFlagsKHR* pModes - - - VkResult vkAcquireFullScreenExclusiveModeEXT - VkDevice device - VkSwapchainKHR swapchain - - - VkResult vkReleaseFullScreenExclusiveModeEXT - VkDevice device - VkSwapchainKHR swapchain - - - VkResult vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR - VkPhysicalDevice physicalDevice - uint32_t queueFamilyIndex - uint32_t* pCounterCount - VkPerformanceCounterKHR* pCounters - VkPerformanceCounterDescriptionKHR* pCounterDescriptions - - - void vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR - VkPhysicalDevice physicalDevice - const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo - uint32_t* pNumPasses - - - VkResult vkAcquireProfilingLockKHR - VkDevice device - const VkAcquireProfilingLockInfoKHR* pInfo - - - void vkReleaseProfilingLockKHR - VkDevice device - - - VkResult vkGetImageDrmFormatModifierPropertiesEXT - VkDevice device - VkImage image - VkImageDrmFormatModifierPropertiesEXT* pProperties - - - uint64_t vkGetBufferOpaqueCaptureAddress - VkDevice device - const VkBufferDeviceAddressInfo* pInfo - - - - VkDeviceAddress vkGetBufferDeviceAddress - VkDevice device - const VkBufferDeviceAddressInfo* pInfo - - - - - VkResult vkCreateHeadlessSurfaceEXT - VkInstance instance - const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkSurfaceKHR* pSurface - - - VkResult vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV - VkPhysicalDevice physicalDevice - uint32_t* pCombinationCount - VkFramebufferMixedSamplesCombinationNV* pCombinations - - - VkResult vkInitializePerformanceApiINTEL - VkDevice device - const VkInitializePerformanceApiInfoINTEL* pInitializeInfo - - - void vkUninitializePerformanceApiINTEL - VkDevice device - - - VkResult vkCmdSetPerformanceMarkerINTEL - VkCommandBuffer commandBuffer - const VkPerformanceMarkerInfoINTEL* pMarkerInfo - - - VkResult vkCmdSetPerformanceStreamMarkerINTEL - VkCommandBuffer commandBuffer - const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo - - - VkResult vkCmdSetPerformanceOverrideINTEL - VkCommandBuffer commandBuffer - const VkPerformanceOverrideInfoINTEL* pOverrideInfo - - - VkResult vkAcquirePerformanceConfigurationINTEL - VkDevice device - const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo - VkPerformanceConfigurationINTEL* pConfiguration - - - VkResult vkReleasePerformanceConfigurationINTEL - VkDevice device - VkPerformanceConfigurationINTEL configuration - - - VkResult vkQueueSetPerformanceConfigurationINTEL - VkQueue queue - VkPerformanceConfigurationINTEL configuration - - - VkResult vkGetPerformanceParameterINTEL - VkDevice device - VkPerformanceParameterTypeINTEL parameter - VkPerformanceValueINTEL* pValue - - - uint64_t vkGetDeviceMemoryOpaqueCaptureAddress - VkDevice device - const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo - - - - VkResult vkGetPipelineExecutablePropertiesKHR - VkDevice device - const VkPipelineInfoKHR* pPipelineInfo - uint32_t* pExecutableCount - VkPipelineExecutablePropertiesKHR* pProperties - - - VkResult vkGetPipelineExecutableStatisticsKHR - VkDevice device - const VkPipelineExecutableInfoKHR* pExecutableInfo - uint32_t* pStatisticCount - VkPipelineExecutableStatisticKHR* pStatistics - - - VkResult vkGetPipelineExecutableInternalRepresentationsKHR - VkDevice device - const VkPipelineExecutableInfoKHR* pExecutableInfo - uint32_t* pInternalRepresentationCount - VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations - - - void vkCmdSetLineStippleEXT - VkCommandBuffer commandBuffer - uint32_t lineStippleFactor - uint16_t lineStipplePattern - - - VkResult vkGetPhysicalDeviceToolPropertiesEXT - VkPhysicalDevice physicalDevice - uint32_t* pToolCount - VkPhysicalDeviceToolPropertiesEXT* pToolProperties - - - VkResult vkCreateAccelerationStructureKHR - VkDevice device - const VkAccelerationStructureCreateInfoKHR* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkAccelerationStructureKHR* pAccelerationStructure - - - void vkCmdBuildAccelerationStructuresKHR - VkCommandBuffer commandBuffer - uint32_t infoCount - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos - const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos - - - void vkCmdBuildAccelerationStructuresIndirectKHR - VkCommandBuffer commandBuffer - uint32_t infoCount - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos - const VkDeviceAddress* pIndirectDeviceAddresses - const uint32_t* pIndirectStrides - const uint32_t* const* ppMaxPrimitiveCounts - - - VkResult vkBuildAccelerationStructuresKHR - VkDevice device - VkDeferredOperationKHR deferredOperation - uint32_t infoCount - const VkAccelerationStructureBuildGeometryInfoKHR* pInfos - const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos - - - VkDeviceAddress vkGetAccelerationStructureDeviceAddressKHR - VkDevice device - const VkAccelerationStructureDeviceAddressInfoKHR* pInfo - - - VkResult vkCreateDeferredOperationKHR - VkDevice device - const VkAllocationCallbacks* pAllocator - VkDeferredOperationKHR* pDeferredOperation - - - void vkDestroyDeferredOperationKHR - VkDevice device - VkDeferredOperationKHR operation - const VkAllocationCallbacks* pAllocator - - - uint32_t vkGetDeferredOperationMaxConcurrencyKHR - VkDevice device - VkDeferredOperationKHR operation - - - VkResult vkGetDeferredOperationResultKHR - VkDevice device - VkDeferredOperationKHR operation - - - VkResult vkDeferredOperationJoinKHR - VkDevice device - VkDeferredOperationKHR operation - - - void vkCmdSetCullModeEXT - VkCommandBuffer commandBuffer - VkCullModeFlags cullMode - - - void vkCmdSetFrontFaceEXT - VkCommandBuffer commandBuffer - VkFrontFace frontFace - - - void vkCmdSetPrimitiveTopologyEXT - VkCommandBuffer commandBuffer - VkPrimitiveTopology primitiveTopology - - - void vkCmdSetViewportWithCountEXT - VkCommandBuffer commandBuffer - uint32_t viewportCount - const VkViewport* pViewports - - - void vkCmdSetScissorWithCountEXT - VkCommandBuffer commandBuffer - uint32_t scissorCount - const VkRect2D* pScissors - - - void vkCmdBindVertexBuffers2EXT - VkCommandBuffer commandBuffer - uint32_t firstBinding - uint32_t bindingCount - const VkBuffer* pBuffers - const VkDeviceSize* pOffsets - const VkDeviceSize* pSizes - const VkDeviceSize* pStrides - - - void vkCmdSetDepthTestEnableEXT - VkCommandBuffer commandBuffer - VkBool32 depthTestEnable - - - void vkCmdSetDepthWriteEnableEXT - VkCommandBuffer commandBuffer - VkBool32 depthWriteEnable - - - void vkCmdSetDepthCompareOpEXT - VkCommandBuffer commandBuffer - VkCompareOp depthCompareOp - - - void vkCmdSetDepthBoundsTestEnableEXT - VkCommandBuffer commandBuffer - VkBool32 depthBoundsTestEnable - - - void vkCmdSetStencilTestEnableEXT - VkCommandBuffer commandBuffer - VkBool32 stencilTestEnable - - - void vkCmdSetStencilOpEXT - VkCommandBuffer commandBuffer - VkStencilFaceFlags faceMask - VkStencilOp failOp - VkStencilOp passOp - VkStencilOp depthFailOp - VkCompareOp compareOp - - - VkResult vkCreatePrivateDataSlotEXT - VkDevice device - const VkPrivateDataSlotCreateInfoEXT* pCreateInfo - const VkAllocationCallbacks* pAllocator - VkPrivateDataSlotEXT* pPrivateDataSlot - - - void vkDestroyPrivateDataSlotEXT - VkDevice device - VkPrivateDataSlotEXT privateDataSlot - const VkAllocationCallbacks* pAllocator - - - VkResult vkSetPrivateDataEXT - VkDevice device - VkObjectType objectType - uint64_t objectHandle - VkPrivateDataSlotEXT privateDataSlot - uint64_t data - - - void vkGetPrivateDataEXT - VkDevice device - VkObjectType objectType - uint64_t objectHandle - VkPrivateDataSlotEXT privateDataSlot - uint64_t* pData - - - void vkCmdCopyBuffer2KHR - VkCommandBuffer commandBuffer - const VkCopyBufferInfo2KHR* pCopyBufferInfo - - - void vkCmdCopyImage2KHR - VkCommandBuffer commandBuffer - const VkCopyImageInfo2KHR* pCopyImageInfo - - - void vkCmdBlitImage2KHR - VkCommandBuffer commandBuffer - const VkBlitImageInfo2KHR* pBlitImageInfo - - - void vkCmdCopyBufferToImage2KHR - VkCommandBuffer commandBuffer - const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo - - - void vkCmdCopyImageToBuffer2KHR - VkCommandBuffer commandBuffer - const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo - - - void vkCmdResolveImage2KHR - VkCommandBuffer commandBuffer - const VkResolveImageInfo2KHR* pResolveImageInfo - - - void vkCmdSetFragmentShadingRateKHR - VkCommandBuffer commandBuffer - const VkExtent2D* pFragmentSize - const VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - VkResult vkGetPhysicalDeviceFragmentShadingRatesKHR - VkPhysicalDevice physicalDevice - uint32_t* pFragmentShadingRateCount - VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates - - - void vkCmdSetFragmentShadingRateEnumNV - VkCommandBuffer commandBuffer - VkFragmentShadingRateNV shadingRate - const VkFragmentShadingRateCombinerOpKHR combinerOps[2] - - - void vkGetAccelerationStructureBuildSizesKHR - VkDevice device - VkAccelerationStructureBuildTypeKHR buildType - const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo - const uint32_t* pMaxPrimitiveCounts - VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - offset 1 reserved for the old VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHX enum - offset 2 reserved for the old VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHX enum - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Additional dependent types / tokens extending enumerants, not explicitly mentioned - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Additional dependent types / tokens extending enumerants, not explicitly mentioned - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This duplicates definitions in VK_KHR_device_group below - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - VK_ANDROID_native_buffer is used between the Android Vulkan loader and drivers to implement the WSI extensions. It isn't exposed to applications and uses types that aren't part of Android's stable public API, so it is left disabled to keep it out of the standard Vulkan headers. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - This duplicates definitions in other extensions, below - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - enum offset=0 was mistakenly used for the 1.1 core enum - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES - (value=1000094000). Fortunately, no conflict resulted. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - These enums are present only to inform downstream - consumers like KTX2. There is no actual Vulkan extension - corresponding to the enums. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/vkconventions.py b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/vkconventions.py deleted file mode 100644 index e12e0ff6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Vulkan-Headers/registry/vkconventions.py +++ /dev/null @@ -1,261 +0,0 @@ -#!/usr/bin/python3 -i -# -# Copyright (c) 2013-2020 The Khronos Group Inc. -# -# SPDX-License-Identifier: Apache-2.0 - -# Working-group-specific style conventions, -# used in generation. - -import re -import os - -from conventions import ConventionsBase - - -# Modified from default implementation - see category_requires_validation() below -CATEGORIES_REQUIRING_VALIDATION = set(('handle', 'enum', 'bitmask')) - -# Tokenize into "words" for structure types, approximately per spec "Implicit Valid Usage" section 2.7.2 -# This first set is for things we recognize explicitly as words, -# as exceptions to the general regex. -# Ideally these would be listed in the spec as exceptions, as OpenXR does. -SPECIAL_WORDS = set(( - '16Bit', # VkPhysicalDevice16BitStorageFeatures - '8Bit', # VkPhysicalDevice8BitStorageFeaturesKHR - 'AABB', # VkGeometryAABBNV - 'ASTC', # VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT - 'D3D12', # VkD3D12FenceSubmitInfoKHR - 'Float16', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR - 'ImagePipe', # VkImagePipeSurfaceCreateInfoFUCHSIA - 'Int64', # VkPhysicalDeviceShaderAtomicInt64FeaturesKHR - 'Int8', # VkPhysicalDeviceShaderFloat16Int8FeaturesKHR - 'MacOS', # VkMacOSSurfaceCreateInfoMVK - 'Uint8', # VkPhysicalDeviceIndexTypeUint8FeaturesEXT - 'Win32', # VkWin32SurfaceCreateInfoKHR -)) -# A regex to match any of the SPECIAL_WORDS -EXCEPTION_PATTERN = r'(?P{})'.format( - '|'.join('(%s)' % re.escape(w) for w in SPECIAL_WORDS)) -MAIN_RE = re.compile( - # the negative lookahead is to prevent the all-caps pattern from being too greedy. - r'({}|([0-9]+)|([A-Z][a-z]+)|([A-Z][A-Z]*(?![a-z])))'.format(EXCEPTION_PATTERN)) - - -class VulkanConventions(ConventionsBase): - @property - def null(self): - """Preferred spelling of NULL.""" - return '`NULL`' - - @property - def struct_macro(self): - """Get the appropriate format macro for a structure. - - Primarily affects generated valid usage statements. - """ - - return 'slink:' - - @property - def constFlagBits(self): - """Returns True if static const flag bits should be generated, False if an enumerated type should be generated.""" - return False - - @property - def structtype_member_name(self): - """Return name of the structure type member""" - return 'sType' - - @property - def nextpointer_member_name(self): - """Return name of the structure pointer chain member""" - return 'pNext' - - @property - def valid_pointer_prefix(self): - """Return prefix to pointers which must themselves be valid""" - return 'valid' - - def is_structure_type_member(self, paramtype, paramname): - """Determine if member type and name match the structure type member.""" - return paramtype == 'VkStructureType' and paramname == self.structtype_member_name - - def is_nextpointer_member(self, paramtype, paramname): - """Determine if member type and name match the next pointer chain member.""" - return paramtype == 'void' and paramname == self.nextpointer_member_name - - def generate_structure_type_from_name(self, structname): - """Generate a structure type name, like VK_STRUCTURE_TYPE_CREATE_INSTANCE_INFO""" - structure_type_parts = [] - # Tokenize into "words" - for elem in MAIN_RE.findall(structname): - word = elem[0] - if word == 'Vk': - structure_type_parts.append('VK_STRUCTURE_TYPE') - else: - structure_type_parts.append(word.upper()) - return '_'.join(structure_type_parts) - - @property - def warning_comment(self): - """Return warning comment to be placed in header of generated Asciidoctor files""" - return '// WARNING: DO NOT MODIFY! This file is automatically generated from the vk.xml registry' - - @property - def file_suffix(self): - """Return suffix of generated Asciidoctor files""" - return '.txt' - - def api_name(self, spectype='api'): - """Return API or specification name for citations in ref pages.ref - pages should link to for - - spectype is the spec this refpage is for: 'api' is the Vulkan API - Specification. Defaults to 'api'. If an unrecognized spectype is - given, returns None. - """ - if spectype == 'api' or spectype is None: - return 'Vulkan' - else: - return None - - @property - def api_prefix(self): - """Return API token prefix""" - return 'VK_' - - @property - def write_contacts(self): - """Return whether contact list should be written to extension appendices""" - return True - - @property - def write_refpage_include(self): - """Return whether refpage include should be written to extension appendices""" - return True - - @property - def member_used_for_unique_vuid(self): - """Return the member name used in the VUID-...-...-unique ID.""" - return self.structtype_member_name - - def is_externsync_command(self, protoname): - """Returns True if the protoname element is an API command requiring - external synchronization - """ - return protoname is not None and 'vkCmd' in protoname - - def is_api_name(self, name): - """Returns True if name is in the reserved API namespace. - For Vulkan, these are names with a case-insensitive 'vk' prefix, or - a 'PFN_vk' function pointer type prefix. - """ - return name[0:2].lower() == 'vk' or name[0:6] == 'PFN_vk' - - def specURL(self, spectype='api'): - """Return public registry URL which ref pages should link to for the - current all-extensions HTML specification, so xrefs in the - asciidoc source that aren't to ref pages can link into it - instead. N.b. this may need to change on a per-refpage basis if - there are multiple documents involved. - """ - return 'https://www.khronos.org/registry/vulkan/specs/1.2-extensions/html/vkspec.html' - - @property - def xml_api_name(self): - """Return the name used in the default API XML registry for the default API""" - return 'vulkan' - - @property - def registry_path(self): - """Return relpath to the default API XML registry in this project.""" - return 'xml/vk.xml' - - @property - def specification_path(self): - """Return relpath to the Asciidoctor specification sources in this project.""" - return '{generated}/meta' - - @property - def special_use_section_anchor(self): - """Return asciidoctor anchor name in the API Specification of the - section describing extension special uses in detail.""" - return 'extendingvulkan-compatibility-specialuse' - - @property - def extra_refpage_headers(self): - """Return any extra text to add to refpage headers.""" - return 'include::{config}/attribs.txt[]' - - @property - def extension_index_prefixes(self): - """Return a list of extension prefixes used to group extension refpages.""" - return ['VK_KHR', 'VK_EXT', 'VK'] - - @property - def unified_flag_refpages(self): - """Return True if Flags/FlagBits refpages are unified, False if - they're separate. - """ - return False - - @property - def spec_reflow_path(self): - """Return the path to the spec source folder to reflow""" - return os.getcwd() - - @property - def spec_no_reflow_dirs(self): - """Return a set of directories not to automatically descend into - when reflowing spec text - """ - return ('scripts', 'style') - - @property - def zero(self): - return '`0`' - - def category_requires_validation(self, category): - """Return True if the given type 'category' always requires validation. - - Overridden because Vulkan doesn't require "valid" text for basetype in the spec right now.""" - return category in CATEGORIES_REQUIRING_VALIDATION - - @property - def should_skip_checking_codes(self): - """Return True if more than the basic validation of return codes should - be skipped for a command. - - Vulkan mostly relies on the validation layers rather than API - builtin error checking, so these checks are not appropriate. - - For example, passing in a VkFormat parameter will not potentially - generate a VK_ERROR_FORMAT_NOT_SUPPORTED code.""" - - return True - - def extension_include_string(self, ext): - """Return format string for include:: line for an extension appendix - file. ext is an object with the following members: - - name - extension string string - - vendor - vendor portion of name - - barename - remainder of name""" - - return 'include::{{appendices}}/{name}{suffix}[]'.format( - name=ext.name, suffix=self.file_suffix) - - @property - def refpage_generated_include_path(self): - """Return path relative to the generated reference pages, to the - generated API include files.""" - return "{generated}" - - def valid_flag_bit(self, bitpos): - """Return True if bitpos is an allowed numeric bit position for - an API flag bit. - - Vulkan uses 32 bit Vk*Flags types, and assumes C compilers may - cause Vk*FlagBits values with bit 31 set to result in a 64 bit - enumerated type, so disallows such flags.""" - return bitpos >= 0 and bitpos < 31 diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/project.pbxproj b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/project.pbxproj deleted file mode 100644 index 25152aa1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/project.pbxproj +++ /dev/null @@ -1,497 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 7B8B6CBE24452690001C08D6 /* mojoshader_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CB824452690001C08D6 /* mojoshader_common.c */; }; - 7B8B6CBF24452690001C08D6 /* mojoshader_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CB824452690001C08D6 /* mojoshader_common.c */; }; - 7B8B6CC224452690001C08D6 /* mojoshader.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CBA24452690001C08D6 /* mojoshader.c */; }; - 7B8B6CC324452690001C08D6 /* mojoshader.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CBA24452690001C08D6 /* mojoshader.c */; }; - 7B8B6CC424452690001C08D6 /* mojoshader_effects.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CBB24452690001C08D6 /* mojoshader_effects.c */; }; - 7B8B6CC524452690001C08D6 /* mojoshader_effects.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CBB24452690001C08D6 /* mojoshader_effects.c */; }; - 7B8B6CC9244526A7001C08D6 /* mojoshader_profile_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CC6244526A7001C08D6 /* mojoshader_profile_common.c */; }; - 7B8B6CCA244526A7001C08D6 /* mojoshader_profile_common.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B8B6CC6244526A7001C08D6 /* mojoshader_profile_common.c */; }; - 7BF820702445254300736AB0 /* FNA3D.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF820682445254300736AB0 /* FNA3D.c */; }; - 7BF820712445254300736AB0 /* FNA3D.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF820682445254300736AB0 /* FNA3D.c */; }; - 7BF820782445254300736AB0 /* FNA3D_Image.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF8206C2445254300736AB0 /* FNA3D_Image.c */; }; - 7BF820792445254300736AB0 /* FNA3D_Image.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF8206C2445254300736AB0 /* FNA3D_Image.c */; }; - 7BF8207C2445254300736AB0 /* FNA3D_PipelineCache.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF8206E2445254300736AB0 /* FNA3D_PipelineCache.c */; }; - 7BF8207D2445254300736AB0 /* FNA3D_PipelineCache.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF8206E2445254300736AB0 /* FNA3D_PipelineCache.c */; }; - 7BF94B9A275C042200050413 /* FNA3D_Driver_Vulkan.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF94B99275C042200050413 /* FNA3D_Driver_Vulkan.c */; }; - 7BF94B9B275C042200050413 /* FNA3D_Driver_Vulkan.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF94B99275C042200050413 /* FNA3D_Driver_Vulkan.c */; }; - 7BF94B9D275C044E00050413 /* mojoshader_vulkan.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF94B9C275C044E00050413 /* mojoshader_vulkan.c */; }; - 7BF94B9E275C044E00050413 /* mojoshader_vulkan.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF94B9C275C044E00050413 /* mojoshader_vulkan.c */; }; - 7BF94BA0275C046100050413 /* mojoshader_profile_spirv.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF94B9F275C046100050413 /* mojoshader_profile_spirv.c */; }; - 7BF94BA1275C046100050413 /* mojoshader_profile_spirv.c in Sources */ = {isa = PBXBuildFile; fileRef = 7BF94B9F275C046100050413 /* mojoshader_profile_spirv.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 7B1CDD432190C0A200175C7B /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B7E140B2190E0CB00616654 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 7B1CDD452190C0A200175C7B /* libFNA3D.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFNA3D.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B7E140D2190E0CB00616654 /* libFNA3D.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libFNA3D.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B8B6CB824452690001C08D6 /* mojoshader_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mojoshader_common.c; path = ../MojoShader/mojoshader_common.c; sourceTree = ""; }; - 7B8B6CBA24452690001C08D6 /* mojoshader.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mojoshader.c; path = ../MojoShader/mojoshader.c; sourceTree = ""; }; - 7B8B6CBB24452690001C08D6 /* mojoshader_effects.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mojoshader_effects.c; path = ../MojoShader/mojoshader_effects.c; sourceTree = ""; }; - 7B8B6CC6244526A7001C08D6 /* mojoshader_profile_common.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mojoshader_profile_common.c; path = ../MojoShader/profiles/mojoshader_profile_common.c; sourceTree = ""; }; - 7BF820652445251D00736AB0 /* FNA3D_SysRenderer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FNA3D_SysRenderer.h; path = ../include/FNA3D_SysRenderer.h; sourceTree = ""; }; - 7BF820662445251D00736AB0 /* FNA3D_Image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FNA3D_Image.h; path = ../include/FNA3D_Image.h; sourceTree = ""; }; - 7BF820672445251D00736AB0 /* FNA3D.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FNA3D.h; path = ../include/FNA3D.h; sourceTree = ""; }; - 7BF820682445254300736AB0 /* FNA3D.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FNA3D.c; path = ../src/FNA3D.c; sourceTree = ""; }; - 7BF8206C2445254300736AB0 /* FNA3D_Image.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FNA3D_Image.c; path = ../src/FNA3D_Image.c; sourceTree = ""; }; - 7BF8206E2445254300736AB0 /* FNA3D_PipelineCache.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FNA3D_PipelineCache.c; path = ../src/FNA3D_PipelineCache.c; sourceTree = ""; }; - 7BF94B99275C042200050413 /* FNA3D_Driver_Vulkan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = FNA3D_Driver_Vulkan.c; path = ../src/FNA3D_Driver_Vulkan.c; sourceTree = ""; }; - 7BF94B9C275C044E00050413 /* mojoshader_vulkan.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mojoshader_vulkan.c; path = ../MojoShader/mojoshader_vulkan.c; sourceTree = ""; }; - 7BF94B9F275C046100050413 /* mojoshader_profile_spirv.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = mojoshader_profile_spirv.c; path = ../MojoShader/profiles/mojoshader_profile_spirv.c; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7B1CDD422190C0A200175C7B /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B7E140A2190E0CB00616654 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7B1CDD3C2190C0A200175C7B = { - isa = PBXGroup; - children = ( - 7B8B6CB624452656001C08D6 /* MojoShader */, - 7B1CDDA72190C52900175C7B /* Public Headers */, - 7B1CDDA62190C50300175C7B /* Library Source */, - 7B1CDD462190C0A200175C7B /* Products */, - ); - sourceTree = ""; - }; - 7B1CDD462190C0A200175C7B /* Products */ = { - isa = PBXGroup; - children = ( - 7B1CDD452190C0A200175C7B /* libFNA3D.a */, - 7B7E140D2190E0CB00616654 /* libFNA3D.a */, - ); - name = Products; - sourceTree = ""; - }; - 7B1CDDA62190C50300175C7B /* Library Source */ = { - isa = PBXGroup; - children = ( - 7BF94B99275C042200050413 /* FNA3D_Driver_Vulkan.c */, - 7BF8206C2445254300736AB0 /* FNA3D_Image.c */, - 7BF8206E2445254300736AB0 /* FNA3D_PipelineCache.c */, - 7BF820682445254300736AB0 /* FNA3D.c */, - ); - name = "Library Source"; - sourceTree = ""; - }; - 7B1CDDA72190C52900175C7B /* Public Headers */ = { - isa = PBXGroup; - children = ( - 7BF820652445251D00736AB0 /* FNA3D_SysRenderer.h */, - 7BF820662445251D00736AB0 /* FNA3D_Image.h */, - 7BF820672445251D00736AB0 /* FNA3D.h */, - ); - name = "Public Headers"; - sourceTree = ""; - }; - 7B8B6CB624452656001C08D6 /* MojoShader */ = { - isa = PBXGroup; - children = ( - 7BF94B9F275C046100050413 /* mojoshader_profile_spirv.c */, - 7BF94B9C275C044E00050413 /* mojoshader_vulkan.c */, - 7B8B6CC6244526A7001C08D6 /* mojoshader_profile_common.c */, - 7B8B6CB824452690001C08D6 /* mojoshader_common.c */, - 7B8B6CBB24452690001C08D6 /* mojoshader_effects.c */, - 7B8B6CBA24452690001C08D6 /* mojoshader.c */, - ); - name = MojoShader; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7B1CDD442190C0A200175C7B /* FNA3D */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7B1CDD4E2190C0A200175C7B /* Build configuration list for PBXNativeTarget "FNA3D" */; - buildPhases = ( - 7B1CDD412190C0A200175C7B /* Sources */, - 7B1CDD422190C0A200175C7B /* Frameworks */, - 7B1CDD432190C0A200175C7B /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = FNA3D; - productName = "FAudio-iOS"; - productReference = 7B1CDD452190C0A200175C7B /* libFNA3D.a */; - productType = "com.apple.product-type.library.static"; - }; - 7B7E140C2190E0CB00616654 /* FNA3D-tv */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7B7E14132190E0CB00616654 /* Build configuration list for PBXNativeTarget "FNA3D-tv" */; - buildPhases = ( - 7B7E14092190E0CB00616654 /* Sources */, - 7B7E140A2190E0CB00616654 /* Frameworks */, - 7B7E140B2190E0CB00616654 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "FNA3D-tv"; - productName = "FAudio-tv"; - productReference = 7B7E140D2190E0CB00616654 /* libFNA3D.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7B1CDD3D2190C0A200175C7B /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1010; - ORGANIZATIONNAME = ""; - TargetAttributes = { - 7B1CDD442190C0A200175C7B = { - CreatedOnToolsVersion = 10.1; - }; - 7B7E140C2190E0CB00616654 = { - CreatedOnToolsVersion = 10.1; - }; - }; - }; - buildConfigurationList = 7B1CDD402190C0A200175C7B /* Build configuration list for PBXProject "FNA3D" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7B1CDD3C2190C0A200175C7B; - productRefGroup = 7B1CDD462190C0A200175C7B /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7B1CDD442190C0A200175C7B /* FNA3D */, - 7B7E140C2190E0CB00616654 /* FNA3D-tv */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 7B1CDD412190C0A200175C7B /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7BF94BA0275C046100050413 /* mojoshader_profile_spirv.c in Sources */, - 7B8B6CC9244526A7001C08D6 /* mojoshader_profile_common.c in Sources */, - 7BF94B9A275C042200050413 /* FNA3D_Driver_Vulkan.c in Sources */, - 7B8B6CC224452690001C08D6 /* mojoshader.c in Sources */, - 7B8B6CC424452690001C08D6 /* mojoshader_effects.c in Sources */, - 7BF94B9D275C044E00050413 /* mojoshader_vulkan.c in Sources */, - 7BF820702445254300736AB0 /* FNA3D.c in Sources */, - 7B8B6CBE24452690001C08D6 /* mojoshader_common.c in Sources */, - 7BF8207C2445254300736AB0 /* FNA3D_PipelineCache.c in Sources */, - 7BF820782445254300736AB0 /* FNA3D_Image.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7B7E14092190E0CB00616654 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7BF94BA1275C046100050413 /* mojoshader_profile_spirv.c in Sources */, - 7B8B6CCA244526A7001C08D6 /* mojoshader_profile_common.c in Sources */, - 7BF94B9B275C042200050413 /* FNA3D_Driver_Vulkan.c in Sources */, - 7B8B6CC324452690001C08D6 /* mojoshader.c in Sources */, - 7B8B6CC524452690001C08D6 /* mojoshader_effects.c in Sources */, - 7BF94B9E275C044E00050413 /* mojoshader_vulkan.c in Sources */, - 7BF820712445254300736AB0 /* FNA3D.c in Sources */, - 7B8B6CBF24452690001C08D6 /* mojoshader_common.c in Sources */, - 7BF8207D2445254300736AB0 /* FNA3D_PipelineCache.c in Sources */, - 7BF820792445254300736AB0 /* FNA3D_Image.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7B1CDD4C2190C0A200175C7B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - FNA3D_DRIVER_VULKAN, - MOJOSHADER_NO_VERSION_INCLUDE, - MOJOSHADER_USE_SDL_STDLIB, - MOJOSHADER_EFFECT_SUPPORT, - MOJOSHADER_DEPTH_CLIPPING, - MOJOSHADER_FLIP_RENDERTARGET, - MOJOSHADER_XNA4_VERTEX_TEXTURES, - "COMPILER_SUPPORT=0", - "SUPPORT_PROFILE_ARB1=0", - "SUPPORT_PROFILE_ARB1_NV=0", - "SUPPORT_PROFILE_BYTECODE=0", - "SUPPORT_PROFILE_D3D=0", - "SUPPORT_PROFILE_GLSPIRV=0", - "SUPPORT_PROFILE_METAL=0", - "SUPPORT_PROFILE_SPIRV=1", - "SUPPORT_PROFILE_HLSL=0", - "SUPPORT_PROFILE_GLSL=0", - "SUPPORT_PROFILE_GLSL120=0", - "SUPPORT_PROFILE_GLSLES=0", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - ../../SDL2/include, - ../mojoshader/, - "../Vulkan-Headers/include", - ); - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvos appletvsimulator"; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 7B1CDD4D2190C0A200175C7B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - FNA3D_DRIVER_VULKAN, - MOJOSHADER_NO_VERSION_INCLUDE, - MOJOSHADER_USE_SDL_STDLIB, - MOJOSHADER_EFFECT_SUPPORT, - MOJOSHADER_DEPTH_CLIPPING, - MOJOSHADER_FLIP_RENDERTARGET, - MOJOSHADER_XNA4_VERTEX_TEXTURES, - "COMPILER_SUPPORT=0", - "SUPPORT_PROFILE_ARB1=0", - "SUPPORT_PROFILE_ARB1_NV=0", - "SUPPORT_PROFILE_BYTECODE=0", - "SUPPORT_PROFILE_D3D=0", - "SUPPORT_PROFILE_GLSPIRV=0", - "SUPPORT_PROFILE_METAL=0", - "SUPPORT_PROFILE_SPIRV=1", - "SUPPORT_PROFILE_HLSL=0", - "SUPPORT_PROFILE_GLSL=0", - "SUPPORT_PROFILE_GLSL120=0", - "SUPPORT_PROFILE_GLSLES=0", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - ../../SDL2/include, - ../mojoshader/, - "../Vulkan-Headers/include", - ); - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos appletvos appletvsimulator"; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7B1CDD4F2190C0A200175C7B /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7B1CDD502190C0A200175C7B /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 7B7E14142190E0CB00616654 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = FNA3D; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 7B7E14152190E0CB00616654 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = FNA3D; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7B1CDD402190C0A200175C7B /* Build configuration list for PBXProject "FNA3D" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B1CDD4C2190C0A200175C7B /* Debug */, - 7B1CDD4D2190C0A200175C7B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7B1CDD4E2190C0A200175C7B /* Build configuration list for PBXNativeTarget "FNA3D" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B1CDD4F2190C0A200175C7B /* Debug */, - 7B1CDD502190C0A200175C7B /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7B7E14132190E0CB00616654 /* Build configuration list for PBXNativeTarget "FNA3D-tv" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B7E14142190E0CB00616654 /* Debug */, - 7B7E14152190E0CB00616654 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7B1CDD3D2190C0A200175C7B /* Project object */; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/xcshareddata/xcschemes/FNA3D-tv.xcscheme b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/xcshareddata/xcschemes/FNA3D-tv.xcscheme deleted file mode 100644 index 74ede444..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/xcshareddata/xcschemes/FNA3D-tv.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/xcshareddata/xcschemes/FNA3D.xcscheme b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/xcshareddata/xcschemes/FNA3D.xcscheme deleted file mode 100644 index 4c1c8968..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/FNA3D.xcodeproj/xcshareddata/xcschemes/FNA3D.xcscheme +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/README b/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/README deleted file mode 100644 index 334294cd..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/Xcode-iOS/README +++ /dev/null @@ -1,18 +0,0 @@ -Building FNA3D for iOS/tvOS ---------------------------- -FNA3D uses Xcode to build on iOS and tvOS. - -Dependencies ------------- -Before building, download SDL2's source code from SDL's website: - -http://libsdl.org/download-2.0.php - -After extracting the zip file, be sure to rename the directory to remove the -version number (for example, 'SDL2-2.0.8' should be 'SDL2'). - -Compiling ---------- -1. Build SDL2/Xcode-iOS/SDL/SDL.xcodeproj -2. Build FNA3D.xcodeproj -3. Grab libFNA3D.a and libSDL2.a, ship it! \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D.h deleted file mode 100644 index 498b9232..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D.h +++ /dev/null @@ -1,1530 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FNA3D_H -#define FNA3D_H - -#ifdef _WIN32 -#define FNA3DAPI __declspec(dllexport) -#define FNA3DCALL __cdecl -#else -#define FNA3DAPI -#define FNA3DCALL -#endif - -/* -Wpedantic nameless union/struct silencing */ -#ifndef FNA3DNAMELESS -#ifdef __GNUC__ -#define FNA3DNAMELESS __extension__ -#else -#define FNA3DNAMELESS -#endif /* __GNUC__ */ -#endif /* FNA3DNAMELESS */ - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Type Declarations */ - -typedef struct FNA3D_Device FNA3D_Device; -typedef struct FNA3D_Texture FNA3D_Texture; -typedef struct FNA3D_Buffer FNA3D_Buffer; -typedef struct FNA3D_Renderbuffer FNA3D_Renderbuffer; -typedef struct FNA3D_Effect FNA3D_Effect; -typedef struct FNA3D_Query FNA3D_Query; - -/* Enumerations, should match XNA 4.0 */ - -typedef enum FNA3D_PresentInterval -{ - /* For the default presentation interval, we try to use an OS-provided - * feature (if available) to sync when meeting the target framerate - * while tearing if the program misses vblank. - */ - FNA3D_PRESENTINTERVAL_DEFAULT, - FNA3D_PRESENTINTERVAL_ONE, - FNA3D_PRESENTINTERVAL_TWO, - FNA3D_PRESENTINTERVAL_IMMEDIATE -} FNA3D_PresentInterval; - -typedef enum FNA3D_DisplayOrientation -{ - FNA3D_DISPLAYORIENTATION_DEFAULT, - FNA3D_DISPLAYORIENTATION_LANDSCAPELEFT, - FNA3D_DISPLAYORIENTATION_LANDSCAPERIGHT, - FNA3D_DISPLAYORIENTATION_PORTRAIT -} FNA3D_DisplayOrientation; - -typedef enum FNA3D_RenderTargetUsage -{ - FNA3D_RENDERTARGETUSAGE_DISCARDCONTENTS, - FNA3D_RENDERTARGETUSAGE_PRESERVECONTENTS, - FNA3D_RENDERTARGETUSAGE_PLATFORMCONTENTS -} FNA3D_RenderTargetUsage; - -typedef enum FNA3D_ClearOptions -{ - FNA3D_CLEAROPTIONS_TARGET = 1, - FNA3D_CLEAROPTIONS_DEPTHBUFFER = 2, - FNA3D_CLEAROPTIONS_STENCIL = 4 -} FNA3D_ClearOptions; - -typedef enum FNA3D_PrimitiveType -{ - FNA3D_PRIMITIVETYPE_TRIANGLELIST, - FNA3D_PRIMITIVETYPE_TRIANGLESTRIP, - FNA3D_PRIMITIVETYPE_LINELIST, - FNA3D_PRIMITIVETYPE_LINESTRIP, - FNA3D_PRIMITIVETYPE_POINTLIST_EXT -} FNA3D_PrimitiveType; - -typedef enum FNA3D_IndexElementSize -{ - FNA3D_INDEXELEMENTSIZE_16BIT, - FNA3D_INDEXELEMENTSIZE_32BIT -} FNA3D_IndexElementSize; - -typedef enum FNA3D_SurfaceFormat -{ - FNA3D_SURFACEFORMAT_COLOR, - FNA3D_SURFACEFORMAT_BGR565, - FNA3D_SURFACEFORMAT_BGRA5551, - FNA3D_SURFACEFORMAT_BGRA4444, - FNA3D_SURFACEFORMAT_DXT1, - FNA3D_SURFACEFORMAT_DXT3, - FNA3D_SURFACEFORMAT_DXT5, - FNA3D_SURFACEFORMAT_NORMALIZEDBYTE2, - FNA3D_SURFACEFORMAT_NORMALIZEDBYTE4, - FNA3D_SURFACEFORMAT_RGBA1010102, - FNA3D_SURFACEFORMAT_RG32, - FNA3D_SURFACEFORMAT_RGBA64, - FNA3D_SURFACEFORMAT_ALPHA8, - FNA3D_SURFACEFORMAT_SINGLE, - FNA3D_SURFACEFORMAT_VECTOR2, - FNA3D_SURFACEFORMAT_VECTOR4, - FNA3D_SURFACEFORMAT_HALFSINGLE, - FNA3D_SURFACEFORMAT_HALFVECTOR2, - FNA3D_SURFACEFORMAT_HALFVECTOR4, - FNA3D_SURFACEFORMAT_HDRBLENDABLE, - FNA3D_SURFACEFORMAT_COLORBGRA_EXT, - FNA3D_SURFACEFORMAT_COLORSRGB_EXT, - FNA3D_SURFACEFORMAT_DXT5SRGB_EXT, - FNA3D_SURFACEFORMAT_BC7_EXT, - FNA3D_SURFACEFORMAT_BC7SRGB_EXT, -} FNA3D_SurfaceFormat; - -typedef enum FNA3D_DepthFormat -{ - FNA3D_DEPTHFORMAT_NONE, - FNA3D_DEPTHFORMAT_D16, - FNA3D_DEPTHFORMAT_D24, - FNA3D_DEPTHFORMAT_D24S8 -} FNA3D_DepthFormat; - -typedef enum FNA3D_CubeMapFace -{ - FNA3D_CUBEMAPFACE_POSITIVEX, - FNA3D_CUBEMAPFACE_NEGATIVEX, - FNA3D_CUBEMAPFACE_POSITIVEY, - FNA3D_CUBEMAPFACE_NEGATIVEY, - FNA3D_CUBEMAPFACE_POSITIVEZ, - FNA3D_CUBEMAPFACE_NEGATIVEZ -} FNA3D_CubeMapFace; - -typedef enum FNA3D_BufferUsage -{ - FNA3D_BUFFERUSAGE_NONE, - FNA3D_BUFFERUSAGE_WRITEONLY -} FNA3D_BufferUsage; - -typedef enum FNA3D_SetDataOptions -{ - FNA3D_SETDATAOPTIONS_NONE, - FNA3D_SETDATAOPTIONS_DISCARD, - FNA3D_SETDATAOPTIONS_NOOVERWRITE -} FNA3D_SetDataOptions; - -typedef enum FNA3D_Blend -{ - FNA3D_BLEND_ONE, - FNA3D_BLEND_ZERO, - FNA3D_BLEND_SOURCECOLOR, - FNA3D_BLEND_INVERSESOURCECOLOR, - FNA3D_BLEND_SOURCEALPHA, - FNA3D_BLEND_INVERSESOURCEALPHA, - FNA3D_BLEND_DESTINATIONCOLOR, - FNA3D_BLEND_INVERSEDESTINATIONCOLOR, - FNA3D_BLEND_DESTINATIONALPHA, - FNA3D_BLEND_INVERSEDESTINATIONALPHA, - FNA3D_BLEND_BLENDFACTOR, - FNA3D_BLEND_INVERSEBLENDFACTOR, - FNA3D_BLEND_SOURCEALPHASATURATION -} FNA3D_Blend; - -typedef enum FNA3D_BlendFunction -{ - FNA3D_BLENDFUNCTION_ADD, - FNA3D_BLENDFUNCTION_SUBTRACT, - FNA3D_BLENDFUNCTION_REVERSESUBTRACT, - FNA3D_BLENDFUNCTION_MAX, - FNA3D_BLENDFUNCTION_MIN -} FNA3D_BlendFunction; - -typedef enum FNA3D_ColorWriteChannels -{ - FNA3D_COLORWRITECHANNELS_NONE = 0, - FNA3D_COLORWRITECHANNELS_RED = 1, - FNA3D_COLORWRITECHANNELS_GREEN = 2, - FNA3D_COLORWRITECHANNELS_BLUE = 4, - FNA3D_COLORWRITECHANNELS_ALPHA = 8, - FNA3D_COLORWRITECHANNELS_ALL = 15 -} FNA3D_ColorWriteChannels; - -typedef enum FNA3D_StencilOperation -{ - FNA3D_STENCILOPERATION_KEEP, - FNA3D_STENCILOPERATION_ZERO, - FNA3D_STENCILOPERATION_REPLACE, - FNA3D_STENCILOPERATION_INCREMENT, - FNA3D_STENCILOPERATION_DECREMENT, - FNA3D_STENCILOPERATION_INCREMENTSATURATION, - FNA3D_STENCILOPERATION_DECREMENTSATURATION, - FNA3D_STENCILOPERATION_INVERT -} FNA3D_StencilOperation; - -typedef enum FNA3D_CompareFunction -{ - FNA3D_COMPAREFUNCTION_ALWAYS, - FNA3D_COMPAREFUNCTION_NEVER, - FNA3D_COMPAREFUNCTION_LESS, - FNA3D_COMPAREFUNCTION_LESSEQUAL, - FNA3D_COMPAREFUNCTION_EQUAL, - FNA3D_COMPAREFUNCTION_GREATEREQUAL, - FNA3D_COMPAREFUNCTION_GREATER, - FNA3D_COMPAREFUNCTION_NOTEQUAL -} FNA3D_CompareFunction; - -typedef enum FNA3D_CullMode -{ - FNA3D_CULLMODE_NONE, - FNA3D_CULLMODE_CULLCLOCKWISEFACE, - FNA3D_CULLMODE_CULLCOUNTERCLOCKWISEFACE -} FNA3D_CullMode; - -typedef enum FNA3D_FillMode -{ - FNA3D_FILLMODE_SOLID, - FNA3D_FILLMODE_WIREFRAME -} FNA3D_FillMode; - -typedef enum FNA3D_TextureAddressMode -{ - FNA3D_TEXTUREADDRESSMODE_WRAP, - FNA3D_TEXTUREADDRESSMODE_CLAMP, - FNA3D_TEXTUREADDRESSMODE_MIRROR -} FNA3D_TextureAddressMode; - -typedef enum FNA3D_TextureFilter -{ - FNA3D_TEXTUREFILTER_LINEAR, - FNA3D_TEXTUREFILTER_POINT, - FNA3D_TEXTUREFILTER_ANISOTROPIC, - FNA3D_TEXTUREFILTER_LINEAR_MIPPOINT, - FNA3D_TEXTUREFILTER_POINT_MIPLINEAR, - FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPLINEAR, - FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPPOINT, - FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPLINEAR, - FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPPOINT -} FNA3D_TextureFilter; - -typedef enum FNA3D_VertexElementFormat -{ - FNA3D_VERTEXELEMENTFORMAT_SINGLE, - FNA3D_VERTEXELEMENTFORMAT_VECTOR2, - FNA3D_VERTEXELEMENTFORMAT_VECTOR3, - FNA3D_VERTEXELEMENTFORMAT_VECTOR4, - FNA3D_VERTEXELEMENTFORMAT_COLOR, - FNA3D_VERTEXELEMENTFORMAT_BYTE4, - FNA3D_VERTEXELEMENTFORMAT_SHORT2, - FNA3D_VERTEXELEMENTFORMAT_SHORT4, - FNA3D_VERTEXELEMENTFORMAT_NORMALIZEDSHORT2, - FNA3D_VERTEXELEMENTFORMAT_NORMALIZEDSHORT4, - FNA3D_VERTEXELEMENTFORMAT_HALFVECTOR2, - FNA3D_VERTEXELEMENTFORMAT_HALFVECTOR4 -} FNA3D_VertexElementFormat; - -typedef enum FNA3D_VertexElementUsage -{ - FNA3D_VERTEXELEMENTUSAGE_POSITION, - FNA3D_VERTEXELEMENTUSAGE_COLOR, - FNA3D_VERTEXELEMENTUSAGE_TEXTURECOORDINATE, - FNA3D_VERTEXELEMENTUSAGE_NORMAL, - FNA3D_VERTEXELEMENTUSAGE_BINORMAL, - FNA3D_VERTEXELEMENTUSAGE_TANGENT, - FNA3D_VERTEXELEMENTUSAGE_BLENDINDICES, - FNA3D_VERTEXELEMENTUSAGE_BLENDWEIGHT, - FNA3D_VERTEXELEMENTUSAGE_DEPTH, - FNA3D_VERTEXELEMENTUSAGE_FOG, - FNA3D_VERTEXELEMENTUSAGE_POINTSIZE, - FNA3D_VERTEXELEMENTUSAGE_SAMPLE, - FNA3D_VERTEXELEMENTUSAGE_TESSELATEFACTOR -} FNA3D_VertexElementUsage; - -/* Structures, should match XNA 4.0 */ - -typedef struct FNA3D_Color -{ - uint8_t r; - uint8_t g; - uint8_t b; - uint8_t a; -} FNA3D_Color; - -typedef struct FNA3D_Rect -{ - int32_t x; - int32_t y; - int32_t w; - int32_t h; -} FNA3D_Rect; - -typedef struct FNA3D_Vec4 -{ - float x; - float y; - float z; - float w; -} FNA3D_Vec4; - -typedef struct FNA3D_Viewport -{ - int32_t x; - int32_t y; - int32_t w; - int32_t h; - float minDepth; - float maxDepth; -} FNA3D_Viewport; - -typedef struct FNA3D_PresentationParameters -{ - int32_t backBufferWidth; - int32_t backBufferHeight; - FNA3D_SurfaceFormat backBufferFormat; - int32_t multiSampleCount; - void* deviceWindowHandle; - uint8_t isFullScreen; - FNA3D_DepthFormat depthStencilFormat; - FNA3D_PresentInterval presentationInterval; - FNA3D_DisplayOrientation displayOrientation; - FNA3D_RenderTargetUsage renderTargetUsage; -} FNA3D_PresentationParameters; - -typedef struct FNA3D_BlendState -{ - FNA3D_Blend colorSourceBlend; - FNA3D_Blend colorDestinationBlend; - FNA3D_BlendFunction colorBlendFunction; - FNA3D_Blend alphaSourceBlend; - FNA3D_Blend alphaDestinationBlend; - FNA3D_BlendFunction alphaBlendFunction; - FNA3D_ColorWriteChannels colorWriteEnable; - FNA3D_ColorWriteChannels colorWriteEnable1; - FNA3D_ColorWriteChannels colorWriteEnable2; - FNA3D_ColorWriteChannels colorWriteEnable3; - FNA3D_Color blendFactor; - int32_t multiSampleMask; -} FNA3D_BlendState; - -typedef struct FNA3D_DepthStencilState -{ - uint8_t depthBufferEnable; - uint8_t depthBufferWriteEnable; - FNA3D_CompareFunction depthBufferFunction; - uint8_t stencilEnable; - int32_t stencilMask; - int32_t stencilWriteMask; - uint8_t twoSidedStencilMode; - FNA3D_StencilOperation stencilFail; - FNA3D_StencilOperation stencilDepthBufferFail; - FNA3D_StencilOperation stencilPass; - FNA3D_CompareFunction stencilFunction; - FNA3D_StencilOperation ccwStencilFail; - FNA3D_StencilOperation ccwStencilDepthBufferFail; - FNA3D_StencilOperation ccwStencilPass; - FNA3D_CompareFunction ccwStencilFunction; - int32_t referenceStencil; -} FNA3D_DepthStencilState; - -typedef struct FNA3D_RasterizerState -{ - FNA3D_FillMode fillMode; - FNA3D_CullMode cullMode; - float depthBias; - float slopeScaleDepthBias; - uint8_t scissorTestEnable; - uint8_t multiSampleAntiAlias; -} FNA3D_RasterizerState; - -typedef struct FNA3D_SamplerState -{ - FNA3D_TextureFilter filter; - FNA3D_TextureAddressMode addressU; - FNA3D_TextureAddressMode addressV; - FNA3D_TextureAddressMode addressW; - float mipMapLevelOfDetailBias; - int32_t maxAnisotropy; - int32_t maxMipLevel; -} FNA3D_SamplerState; - -typedef struct FNA3D_VertexElement -{ - int32_t offset; - FNA3D_VertexElementFormat vertexElementFormat; - FNA3D_VertexElementUsage vertexElementUsage; - int32_t usageIndex; -} FNA3D_VertexElement; - -typedef struct FNA3D_VertexDeclaration -{ - int32_t vertexStride; - int32_t elementCount; - FNA3D_VertexElement *elements; -} FNA3D_VertexDeclaration; - -typedef struct FNA3D_VertexBufferBinding -{ - FNA3D_Buffer *vertexBuffer; - FNA3D_VertexDeclaration vertexDeclaration; - int32_t vertexOffset; - int32_t instanceFrequency; -} FNA3D_VertexBufferBinding; - -typedef struct FNA3D_RenderTargetBinding -{ - /* Basic target information */ - #define FNA3D_RENDERTARGET_TYPE_2D 0 - #define FNA3D_RENDERTARGET_TYPE_CUBE 1 - uint8_t type; - FNA3DNAMELESS union - { - struct - { - int32_t width; - int32_t height; - } twod; - struct - { - int32_t size; - FNA3D_CubeMapFace face; - } cube; - }; - - /* If this is >1, you MUST call ResolveTarget after rendering! */ - int32_t levelCount; - - /* If this is >1, colorBuffer MUST be non-NULL! */ - int32_t multiSampleCount; - - /* Destination texture. This MUST be non-NULL! */ - FNA3D_Texture *texture; - - /* If this is non-NULL, you MUST call ResolveTarget after rendering! */ - FNA3D_Renderbuffer *colorBuffer; -} FNA3D_RenderTargetBinding; - -/* Version API */ - -#define FNA3D_ABI_VERSION 0 -#define FNA3D_MAJOR_VERSION 22 -#define FNA3D_MINOR_VERSION 8 -#define FNA3D_PATCH_VERSION 0 - -#define FNA3D_COMPILED_VERSION ( \ - (FNA3D_ABI_VERSION * 100 * 100 * 100) + \ - (FNA3D_MAJOR_VERSION * 100 * 100) + \ - (FNA3D_MINOR_VERSION * 100) + \ - (FNA3D_PATCH_VERSION) \ -) - -FNA3DAPI uint32_t FNA3D_LinkedVersion(void); - -/* Functions */ - -/* Logging */ - -typedef void (FNA3DCALL * FNA3D_LogFunc)(const char *msg); - -/* Reroutes FNA3D's logging to custom logging functions. - * - * info: Basic logs that might be useful to have stored for support. - * warn: Something went wrong, but it's really just annoying, not fatal. - * error: You better have this stored somewhere because it's crashing now! - */ -FNA3DAPI void FNA3D_HookLogFunctions( - FNA3D_LogFunc info, - FNA3D_LogFunc warn, - FNA3D_LogFunc error -); - -/* Init/Quit */ - -/* Selects the most suitable graphics rendering backend for the system, then - * provides the application with context-sensitive bitflags for the OS window. - * - * Returns a bitflag value, typically SDL_WindowFlags masks. - */ -FNA3DAPI uint32_t FNA3D_PrepareWindowAttributes(void); - -/* After your device is created, call this to check for high-DPI support. - * - * Note that this will NOT work if it's called after the window is created but - * before the device! Not all platforms create drawable surfaces at the same - * time as the window! - * - * window: The OS window handle, typically an SDL_Window*. - * w: Filled with the width of the window's drawable canvas. - * h: Filled with the height of the window's drawable canvas. - */ -FNA3DAPI void FNA3D_GetDrawableSize(void* window, int32_t *w, int32_t *h); - -/* Creates a rendering context for use on the calling thread. - * - * presentationParameters: The initial device/backbuffer settings. - * debugMode: Enable debugging and backend validation features - * at the cost of reduced overall performance. - * - * Returns a device ready for use. Be sure to only call device functions from - * the thread that it was created on! - */ -FNA3DAPI FNA3D_Device* FNA3D_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -); - -/* Destroys a rendering context previously returned by FNA3D_CreateDevice. */ -FNA3DAPI void FNA3D_DestroyDevice(FNA3D_Device *device); - -/* Presentation */ - -/* Presents the backbuffer to the window. - * - * sourceRectangle: The region of the buffer to present (or NULL). - * destinationRectangle: The region of the window to update (or NULL). - * overrideWindowHandle: The OS window handle (not really "overridden"). - */ -FNA3DAPI void FNA3D_SwapBuffers( - FNA3D_Device *device, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -); - -/* Drawing */ - -/* Clears the active draw buffers of any previous contents. - * - * options: Bitflags to specify color/depth/stencil buffers for clearing. - * color: The new value of the cleared color buffer. It is STRONGLY - * recommended to use 0.0f and 1.0f for all color channels! - * depth: The new value of the cleared depth buffer. - * stencil: The new value of the cleared stencil buffer. - */ -FNA3DAPI void FNA3D_Clear( - FNA3D_Device *device, - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -); - -/* Draws data from vertex/index buffers. - * - * primitiveType: The primitive topology of the vertex data. - * baseVertex: The starting offset to read from the vertex buffer. - * minVertexIndex: The lowest index value expected from the index buffer. - * numVertices: The highest offset expected from the index buffer. - * startIndex: The starting offset to read from the index buffer. - * primitiveCount: The number of primitives to draw. - * indices: The index buffer to bind for this draw call. - * indexElementSize: The size of the index type for this index buffer. - */ -FNA3DAPI void FNA3D_DrawIndexedPrimitives( - FNA3D_Device *device, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -); - -/* Draws data from vertex/index buffers with instancing enabled. - * - * primitiveType: The primitive topology of the vertex data. - * baseVertex: The starting offset to read from the vertex buffer. - * minVertexIndex: The lowest index value expected from the index buffer. - * numVertices: The highest offset expected from the index buffer. - * startIndex: The starting offset to read from the index buffer. - * primitiveCount: The number of primitives to draw. - * instanceCount: The number of instances that will be drawn. - * indices: The index buffer to bind for this draw call. - * indexElementSize: The size of the index type for this index buffer. - */ -FNA3DAPI void FNA3D_DrawInstancedPrimitives( - FNA3D_Device *device, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -); - -/* Draws data from vertex buffers. - * primitiveType: The primitive topology of the vertex data. - * vertexStart: The starting offset to read from the vertex buffer. - * primitiveCount: The number of primitives to draw. - */ -FNA3DAPI void FNA3D_DrawPrimitives( - FNA3D_Device *device, - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -); - -/* Mutable Render States */ - -/* Sets the view dimensions for rendering, relative to the active render target. - * It is required to call this at least once after calling SetRenderTargets, as - * the renderer may need to adjust these dimensions to fit the backend's - * potentially goofy coordinate systems. - * - * viewport: The new view dimensions for future draw calls. - */ -FNA3DAPI void FNA3D_SetViewport(FNA3D_Device *device, FNA3D_Viewport *viewport); - -/* Sets the scissor box for rendering, relative to the active render target. - * It is required to call this at least once after calling SetRenderTargets, as - * the renderer may need to adjust these dimensions to fit the backend's - * potentially goofy coordinate systems. - * - * scissor: The new scissor box for future draw calls. - */ -FNA3DAPI void FNA3D_SetScissorRect(FNA3D_Device *device, FNA3D_Rect *scissor); - -/* Gets the blending factor used for current draw calls. - * - * blendFactor: Filled with color being used as the device blend factor. - */ -FNA3DAPI void FNA3D_GetBlendFactor( - FNA3D_Device *device, - FNA3D_Color *blendFactor -); - -/* Sets the blending factor used for future draw calls. - * - * blendFactor: The color to use as the device blend factor. - */ -FNA3DAPI void FNA3D_SetBlendFactor( - FNA3D_Device *device, - FNA3D_Color *blendFactor -); - -/* Gets the mask from which multisample fragment data is sampled from. - * - * Returns the coverage mask used to determine sample locations. - */ -FNA3DAPI int32_t FNA3D_GetMultiSampleMask(FNA3D_Device *device); - -/* Sets the mask with which multisample fragment data will be sampled from. - * - * mask: The new coverage mask to use for determining sample locations. - */ -FNA3DAPI void FNA3D_SetMultiSampleMask(FNA3D_Device *device, int32_t mask); - -/* Gets the reference value used for certain types of stencil testing. - * - * Returns the stencil reference value. - */ -FNA3DAPI int32_t FNA3D_GetReferenceStencil(FNA3D_Device *device); - -/* Sets the reference value used for certain types of stencil testing. - * - * ref: The new stencil reference value. - */ -FNA3DAPI void FNA3D_SetReferenceStencil(FNA3D_Device *device, int32_t ref); - -/* Immutable Render States */ - -/* Applies a blending state to use for future draw calls. This only needs to be - * called when the state actually changes. Redundant calls may negatively affect - * performance! - * - * blendState: The new parameters to use for color blending. - */ -FNA3DAPI void FNA3D_SetBlendState( - FNA3D_Device *device, - FNA3D_BlendState *blendState -); - -/* Applies depth/stencil states to use for future draw calls. This only needs to - * be called when the states actually change. Redundant calls may negatively - * affect performance! - * - * depthStencilState: The new parameters to use for depth/stencil work. - */ -FNA3DAPI void FNA3D_SetDepthStencilState( - FNA3D_Device *device, - FNA3D_DepthStencilState *depthStencilState -); - -/* Applies the rasterizing state to use for future draw calls. - * It's generally a good idea to call this for each draw call, but if you really - * wanted to you could try reducing it to when the state changes and when the - * render target state changes. - * - * rasterizerState: The new parameters to use for rasterization work. - */ -FNA3DAPI void FNA3D_ApplyRasterizerState( - FNA3D_Device *device, - FNA3D_RasterizerState *rasterizerState -); - -/* Updates a sampler slot with new texture/sampler data for future draw calls. - * This should only be called on slots that have modified texture/sampler state. - * Redundant calls may negatively affect performance! - * - * index: The sampler slot to update. - * texture: The texture bound to this sampler. - * sampler: The new parameters to use for this slot's texture sampling. - */ -FNA3DAPI void FNA3D_VerifySampler( - FNA3D_Device *device, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -); - -/* Updates a vertex sampler slot with new texture/sampler data for future draw - * calls. This should only be called on slots that have modified texture/sampler - * state. Redundant calls may negatively affect performance! - * - * index: The vertex sampler slot to update. - * texture: The texture bound to this sampler. - * sampler: The new parameters to use for this slot's texture sampling. - */ -FNA3DAPI void FNA3D_VerifyVertexSampler( - FNA3D_Device *device, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -); - -/* Updates the vertex attribute state to read from a set of vertex buffers. This - * should be the very last thing you call before making a draw call, as this - * does all the final prep work for the shader program before it's ready to use. - * - * bindings: The vertex buffers and their attribute data. - * numBindings: The number of elements in the bindings array. - * bindingsUpdated: If the bindings array hasn't changed since the last - * update, this can be false. We'll only update the shader - * state, updating vertex attribute data only if we 100% - * have to, for a tiny performance improvement. - * baseVertex: This should be the same as the `baseVertex` parameter - * from your Draw*Primitives call, if applicable. Not every - * rendering backend has native base vertex support, so we - * work around it by passing this here. - */ -FNA3DAPI void FNA3D_ApplyVertexBufferBindings( - FNA3D_Device *device, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -); - -/* Render Targets */ - -/* Sets the color/depth/stencil buffers to write future draw calls to. - * - * renderTargets: The targets to write to, or NULL for the backbuffer. - * numRenderTargets: The size of the renderTargets array (can be 0). - * depthStencilBuffer: The depth/stencil renderbuffer (can be NULL). - * depthFormat: The format of the depth/stencil renderbuffer. - * preserveTargetContents: - * Set this to 1 to store the color/depth/stencil contents - * for future use. Most of the time you'll want to - * keep this at 0 to not waste GPU bandwidth. - */ -FNA3DAPI void FNA3D_SetRenderTargets( - FNA3D_Device *device, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -); - -/* After unsetting a render target, call this to resolve multisample targets or - * generate mipmap data for the final texture. - * - * target: The render target to resolve once rendering is complete. - */ -FNA3DAPI void FNA3D_ResolveTarget( - FNA3D_Device *device, - FNA3D_RenderTargetBinding *target -); - -/* Backbuffer Functions */ - -/* After modifying the OS window state, call this to reset the backbuffer to - * match your window changes. - * - * presentationParameters: The new settings for the backbuffer. - */ -FNA3DAPI void FNA3D_ResetBackbuffer( - FNA3D_Device *device, - FNA3D_PresentationParameters *presentationParameters -); - -/* Read the backbuffer's contents directly into client memory. This function is - * basically one giant CPU/GPU sync point, do NOT ever call this during any - * performance-critical situation! Just use it for screenshots. - * - * x: The x offset of the backbuffer region to read. - * y: The y offset of the backbuffer region to read. - * w: The width of the backbuffer region to read. - * h: The height of the backbuffer region to read. - * data: The pointer to read the backbuffer data into. - * dataLength: The size of the backbuffer data in bytes. - */ -FNA3DAPI void FNA3D_ReadBackbuffer( - FNA3D_Device *device, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - void* data, - int32_t dataLength -); - -/* Gets the current dimensions of the backbuffer. - * - * w: Filled with the backbuffer's width. - * h: Filled with the backbuffer's height. - */ -FNA3DAPI void FNA3D_GetBackbufferSize( - FNA3D_Device *device, - int32_t *w, - int32_t *h -); - -/* Gets the current pixel format of the backbuffer. - * - * Returns the backbuffer's pixel format. - */ -FNA3DAPI FNA3D_SurfaceFormat FNA3D_GetBackbufferSurfaceFormat( - FNA3D_Device *device -); - -/* Gets the format of the backbuffer's depth/stencil buffer. - * - * Returns the backbuffer's depth/stencil format. - */ -FNA3DAPI FNA3D_DepthFormat FNA3D_GetBackbufferDepthFormat(FNA3D_Device *device); - -/* Gets the multisample sample count of the backbuffer. - * - * Returns the backbuffer's multisample sample count. - */ -FNA3DAPI int32_t FNA3D_GetBackbufferMultiSampleCount(FNA3D_Device *device); - -/* Textures */ - -/* Creates a 2D texture to be applied to VerifySampler. - * - * format: The pixel format of the texture data. - * width: The width of the texture image. - * height: The height of the texture image. - * levelCount: The number of mipmap levels to allocate. - * isRenderTarget: Set this to 1 when using this with SetRenderTargets. - * - * Returns an allocated FNA3D_Texture* object. Note that the contents of the - * texture are undefined, so you must call SetData at least once before drawing! - */ -FNA3DAPI FNA3D_Texture* FNA3D_CreateTexture2D( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget -); - -/* Creates a 3D texture to be applied to VerifySampler. - * - * format: The pixel format of the texture data. - * width: The width of the texture image. - * height: The height of the texture image. - * depth: The depth of the texture image. - * levelCount: The number of mipmap levels to allocate. - * - * Returns an allocated FNA3D_Texture* object. Note that the contents of the - * texture are undefined, so you must call SetData at least once before drawing! - */ -FNA3DAPI FNA3D_Texture* FNA3D_CreateTexture3D( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount -); - -/* Creates a texture cube to be applied to VerifySampler. - * - * format: The pixel format of the texture data. - * size: The length of a single edge of the texture cube. - * levelCount: The number of mipmap levels to allocate. - * isRenderTarget: Set this to 1 when using this with SetRenderTargets. - * - * Returns an allocated FNA3D_Texture* object. Note that the contents of the - * texture are undefined, so you must call SetData at least once before drawing! - */ -FNA3DAPI FNA3D_Texture* FNA3D_CreateTextureCube( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget -); - -/* Sends a texture to be destroyed by the renderer. Note that we call it - * "AddDispose" because it may not be immediately destroyed by the renderer if - * this is not called from the main thread (for example, if a garbage collector - * deletes the resource instead of the programmer). - * - * texture: The FNA3D_Texture to be destroyed. - */ -FNA3DAPI void FNA3D_AddDisposeTexture( - FNA3D_Device *device, - FNA3D_Texture *texture -); - -/* Uploads image data to a 2D texture object. - * - * texture: The texture to be updated. - * x: The x offset of the subregion being updated. - * y: The y offset of the subregion being updated. - * w: The width of the subregion being updated. - * h: The height of the subregion being updated. - * level: The mipmap level being updated. - * data: A pointer to the image data. - * dataLength: The size of the image data in bytes. - */ -FNA3DAPI void FNA3D_SetTextureData2D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -); - -/* Uploads image data to a 3D texture object. - * - * texture: The texture to be updated. - * x: The x offset of the subregion being updated. - * y: The y offset of the subregion being updated. - * z: The z offset of the subregion being updated. - * w: The width of the subregion being updated. - * h: The height of the subregion being updated. - * d: The depth of the subregion being updated. - * level: The mipmap level being updated. - * data: A pointer to the image data. - * dataLength: The size of the image data in bytes. - */ -FNA3DAPI void FNA3D_SetTextureData3D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -); - -/* Uploads image data to a single face of a texture cube object. - * - * texture: The texture to be updated. - * x: The x offset of the subregion being updated. - * y: The y offset of the subregion being updated. - * w: The width of the subregion being updated. - * h: The height of the subregion being updated. - * cubeMapFace: The face of the cube being updated. - * level: The mipmap level being updated. - * data: A pointer to the image data. - * dataLength: The size of the image data in bytes. - */ -FNA3DAPI void FNA3D_SetTextureDataCube( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -); - -/* Uploads YUV image data to three ALPHA8 texture objects. - * - * y: The texture storing the Y data. - * u: The texture storing the U (Cb) data. - * v: The texture storing the V (Cr) data. - * yWidth: The width of the Y plane. - * yHeight: The height of the Y plane. - * uvWidth: The width of the U/V planes. - * uvHeight: The height of the U/V planes. - * data: A pointer to the raw YUV image data. - * dataLength: The size of the image data in bytes. - */ -FNA3DAPI void FNA3D_SetTextureDataYUV( - FNA3D_Device *device, - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -); - -/* Pulls image data from a 2D texture into client memory. Like any GetData, - * this is generally asking for a massive CPU/GPU sync point, don't call this - * unless there's absolutely no other way to use the image data! - * - * texture: The texture object being read. - * x: The x offset of the subregion being read. - * y: The y offset of the subregion being read. - * w: The width of the subregion being read. - * h: The height of the subregion being read. - * level: The mipmap level being read. - * data: The pointer being filled with the image data. - * dataLength: The size of the image data in bytes. - */ -FNA3DAPI void FNA3D_GetTextureData2D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -); - -/* Pulls image data from a 3D texture into client memory. Like any GetData, - * this is generally asking for a massive CPU/GPU sync point, don't call this - * unless there's absolutely no other way to use the image data! - * - * texture: The texture object being read. - * x: The x offset of the subregion being read. - * y: The y offset of the subregion being read. - * z: The z offset of the subregion being read. - * w: The width of the subregion being read. - * h: The height of the subregion being read. - * d: The depth of the subregion being read. - * level: The mipmap level being read. - * data: The pointer being filled with the image data. - * dataLength: The size of the image data in bytes. - */ -FNA3DAPI void FNA3D_GetTextureData3D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -); - -/* Pulls image data from a single face of a texture cube object into client - * memory. Like any GetData, this is generally asking for a massive CPU/GPU sync - * point, don't call this unless there's absolutely no other way to use the - * image data! - * - * texture: The texture object being read. - * x: The x offset of the subregion being read. - * y: The y offset of the subregion being read. - * w: The width of the subregion being read. - * h: The height of the subregion being read. - * cubeMapFace: The face of the cube being read. - * level: The mipmap level being read. - * data: The pointer being filled with the image data. - * dataLength: The size of the image data in bytes. - */ -FNA3DAPI void FNA3D_GetTextureDataCube( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -); - -/* Renderbuffers */ - -/* Creates a color buffer to be used by SetRenderTargets/ResolveTarget. - * - * width: The width of the color buffer. - * height: The height of the color buffer. - * format: The pixel format of the color buffer. - * multiSampleCount: The MSAA value for the color buffer. - * texture: The texture that this buffer will be resolving to. - * - * Returns a color FNA3D_Renderbuffer object. - */ -FNA3DAPI FNA3D_Renderbuffer* FNA3D_GenColorRenderbuffer( - FNA3D_Device *device, - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture -); - -/* Creates a depth/stencil buffer to be used by SetRenderTargets. - * - * width: The width of the depth/stencil buffer. - * height: The height of the depth/stencil buffer. - * format: The storage format of the depth/stencil buffer. - * multiSampleCount: The MSAA value for the depth/stencil buffer. - * - * Returns a depth/stencil FNA3D_Renderbuffer object. - */ -FNA3DAPI FNA3D_Renderbuffer* FNA3D_GenDepthStencilRenderbuffer( - FNA3D_Device *device, - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount -); - -/* Sends a renderbuffer to be destroyed by the renderer. Note that we call it - * "AddDispose" because it may not be immediately destroyed by the renderer if - * this is not called from the main thread (for example, if a garbage collector - * deletes the resource instead of the programmer). - * - * renderbuffer: The FNA3D_Renderbuffer to be destroyed. - */ -FNA3DAPI void FNA3D_AddDisposeRenderbuffer( - FNA3D_Device *device, - FNA3D_Renderbuffer *renderbuffer -); - -/* Vertex Buffers */ - -/* Creates a vertex buffer to be used by Draw*Primitives. - * - * dynamic: Set to 1 if this buffer will be updated frequently. - * usage: Set to WRITEONLY if you do not intend to call GetData. - * sizeInBytes: The length of the vertex buffer. - * - * Returns an allocated FNA3D_Buffer* object. Note that the contents of the - * buffer are undefined, so you must call SetData at least once before drawing! - */ -FNA3DAPI FNA3D_Buffer* FNA3D_GenVertexBuffer( - FNA3D_Device *device, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -); - -/* Sends a vertex buffer to be destroyed by the renderer. Note that we call it - * "AddDispose" because it may not be immediately destroyed by the renderer if - * this is not called from the main thread (for example, if a garbage collector - * deletes the resource instead of the programmer). - * - * buffer: The FNA3D_Buffer to be destroyed. - */ -FNA3DAPI void FNA3D_AddDisposeVertexBuffer( - FNA3D_Device *device, - FNA3D_Buffer *buffer -); - -/* Sets a region of the vertex buffer with client data. - * - * buffer: The vertex buffer to be updated. - * offsetInBytes: The starting offset of the buffer to write into. - * data: The client data to write into the buffer. - * elementCount: The number of elements from the client buffer to write. - * elementSizeInBytes: The size of each element in the client buffer. - * vertexStride: Try to set this to the same value as elementSizeInBytes. - * XNA has this ridiculous thing where if vertexStride is - * greater than elementSizeInBytes, it tries to do partial - * updates of each vertex with the client data's smaller - * elements. It's... just, really bad. Don't try to use it. - * You probably just want '1' for both parameters, so that - * elementCount can just be the buffer length in bytes. - * options: Try not to call NONE if this is a dynamic buffer! - */ -FNA3DAPI void FNA3D_SetVertexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -); - -/* Pulls data from a region of the vertex buffer into a client pointer. - * - * buffer: The vertex buffer to be read from. - * offsetInBytes: The starting offset of the buffer to write into. - * data: The client data to write into from the buffer. - * elementCount: The number of elements from the client buffer to read. - * elementSizeInBytes: The size of each element in the client buffer. - * vertexStride: Try to set this to the same value as elementSizeInBytes. - * XNA has this ridiculous thing where if vertexStride is - * greater than elementSizeInBytes, it tries to do partial - * updates of each vertex with the client data's smaller - * elements. It's... just, really bad. Don't try to use it. - * You probably just want '1' for both parameters, so that - * elementCount can just be the buffer length in bytes. - */ -FNA3DAPI void FNA3D_GetVertexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -); - -/* Index Buffers */ - -/* Creates an index buffer to be used by Draw*Primitives. - * - * dynamic: Set to 1 if this buffer will be updated frequently. - * usage: Set to WRITEONLY if you do not intend to call GetData. - * sizeInBytes: The length of the vertex buffer. - * - * Returns an allocated FNA3D_Buffer* object. Note that the contents of the - * buffer are undefined, so you must call SetData at least once before drawing! - */ -FNA3DAPI FNA3D_Buffer* FNA3D_GenIndexBuffer( - FNA3D_Device *device, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -); - -/* Sends an index buffer to be destroyed by the renderer. Note that we call it - * "AddDispose" because it may not be immediately destroyed by the renderer if - * this is not called from the main thread (for example, if a garbage collector - * deletes the resource instead of the programmer). - * - * buffer: The FNA3D_Buffer to be destroyed. - */ -FNA3DAPI void FNA3D_AddDisposeIndexBuffer( - FNA3D_Device *device, - FNA3D_Buffer *buffer -); - -/* Sets a region of the index buffer with client data. - * - * buffer: The index buffer to be updated. - * offsetInBytes: The starting offset of the buffer to write into. - * data: The client data to write into the buffer. - * dataLength: The size (in bytes) of the client data. - * options: Try not to call NONE if this is a dynamic buffer! - */ -FNA3DAPI void FNA3D_SetIndexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -); - -/* Pulls data from a region of the index buffer into a client pointer. - * - * buffer: The index buffer to be read from. - * offsetInBytes: The starting offset of the buffer to read from. - * data: The pointer to read buffer data into. - * dataLength: The size (in bytes) of the client data. - */ -FNA3DAPI void FNA3D_GetIndexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength -); - -/* Effects */ - -/* When using this API, be sure to include mojoshader.h! */ -#ifndef _INCL_MOJOSHADER_H_ -typedef struct MOJOSHADER_effect MOJOSHADER_effect; -typedef struct MOJOSHADER_effectTechnique MOJOSHADER_effectTechnique; -typedef struct MOJOSHADER_effectStateChanges MOJOSHADER_effectStateChanges; -#endif /* _INCL_MOJOSHADER_H_ */ - -/* Parses and compiles a Direct3D 9 Effects Framework binary. - * - * effectCode: The D3D9 Effect binary blob. - * effectCodeLength: The size (in bytes) of the blob. - * effect: Filled with the compiled FNA3D_Effect*. - * effectData: Filled with the parsed Effect Framework data. This - * pointer is valid until the effect is disposed. - */ -FNA3DAPI void FNA3D_CreateEffect( - FNA3D_Device *device, - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -); - -/* Copies a compiled Effect, including its current technique/parameter data. - * - * cloneSource: The FNA3D_Effect to copy. - * effect: Filled with the new compiled FNA3D_Effect*. - * effectData: Filled with the copied Effect Framework data. - */ -FNA3DAPI void FNA3D_CloneEffect( - FNA3D_Device *device, - FNA3D_Effect *cloneSource, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -); - -/* Sends an Effect to be destroyed by the renderer. Note that we call it - * "AddDispose" because it may not be immediately destroyed by the renderer if - * this is not called from the main thread (for example, if a garbage collector - * deletes the resource instead of the programmer). - * - * effect: The FNA3D_Effect to be destroyed. - */ -FNA3DAPI void FNA3D_AddDisposeEffect( - FNA3D_Device *device, - FNA3D_Effect *effect -); - -/* Sets the active technique on the Effect. - * - * effect: The Effect to be modified. - * technique: The technique to be used by future ApplyEffect calls. - */ -FNA3DAPI void FNA3D_SetEffectTechnique( - FNA3D_Device *device, - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -); - -/* Applies an effect pass from a given Effect, setting the active shader program - * and committing any parameter data changes to be used by future draw calls. - * - * effect: The Effect to be applied. - * pass: The current technique's pass index to be applied. - * stateChanges: Structure to be filled with any render state changes - * made by the Effect. This must be valid for the entire - * duration that this Effect is being applied. - */ -FNA3DAPI void FNA3D_ApplyEffect( - FNA3D_Device *device, - FNA3D_Effect *effect, - uint32_t pass, - MOJOSHADER_effectStateChanges *stateChanges -); - -/* Applies an effect pass from a given Effect, setting the active shader program - * and committing and parameter data changes to be used by future draw calls, - * while also caching the current program object to be stored once this Effect's - * pass has been completed. - * - * effect: The Effect to be applied. - * stateChanges: Structure to be filled with any render state changes - * made by the Effect. This must be valid for the entire - * duration that this Effect is being applied. - */ -FNA3DAPI void FNA3D_BeginPassRestore( - FNA3D_Device *device, - FNA3D_Effect *effect, - MOJOSHADER_effectStateChanges *stateChanges -); - -/* Ends a pass started by BeginPassRestore, unsetting the current Effect and - * restoring the previous shader state from before BeginPassRestore was called. - * - * effect: The Effect that was applied at BeginPassRestore. - */ -FNA3DAPI void FNA3D_EndPassRestore( - FNA3D_Device *device, - FNA3D_Effect *effect -); - -/* Queries */ - -/* Creates an object used to run occlusion queries. - * - * Returns an FNA3D_Query object. - */ -FNA3DAPI FNA3D_Query* FNA3D_CreateQuery(FNA3D_Device *device); - -/* Sends a query object to be destroyed by the renderer. Note that we call it - * "AddDispose" because it may not be immediately destroyed by the renderer if - * this is not called from the main thread (for example, if a garbage collector - * deletes the resource instead of the programmer). - * - * query: The FNA3D_Query to be destroyed. - */ -FNA3DAPI void FNA3D_AddDisposeQuery(FNA3D_Device *device, FNA3D_Query *query); - -/* Marks the start of when a query object should count pixels written. - * - * query: The FNA3D_Query to start. - */ -FNA3DAPI void FNA3D_QueryBegin(FNA3D_Device *device, FNA3D_Query *query); - -/* Marks the end of when a query object should count pixels written. Note that - * this does NOT mean the query has finished executing, you will need to poll - * QueryComplete before checking the pixel count. - * - * query: The FNA3D_Query to stop. - */ -FNA3DAPI void FNA3D_QueryEnd(FNA3D_Device *device, FNA3D_Query *query); - -/* Call this until the function returns 1 to safely query for pixel counts. - * - * query: The FNA3D_Query to sync with. - * - * Returns 1 when complete, 0 when still in execution. - */ -FNA3DAPI uint8_t FNA3D_QueryComplete(FNA3D_Device *device, FNA3D_Query *query); - -/* Query the pixels counted between the begin/end markers set for the object. - * - * query: The FNA3D_Query to poll for pixel count - * - * Returns the pixels written during the begin/end period. - */ -FNA3DAPI int32_t FNA3D_QueryPixelCount( - FNA3D_Device *device, - FNA3D_Query *query -); - -/* Feature Queries */ - -/* Returns 1 if the renderer natively supports DXT1 texture data. */ -FNA3DAPI uint8_t FNA3D_SupportsDXT1(FNA3D_Device *device); - -/* Returns 1 if the renderer natively supports S3TC texture data. */ -FNA3DAPI uint8_t FNA3D_SupportsS3TC(FNA3D_Device *device); - -/* Returns 1 if the renderer natively supports BC7 texture data. */ -FNA3DAPI uint8_t FNA3D_SupportsBC7(FNA3D_Device *device); - -/* Returns 1 if the renderer natively supports hardware instancing. */ -FNA3DAPI uint8_t FNA3D_SupportsHardwareInstancing(FNA3D_Device *device); - -/* Returns 1 if the renderer natively supports asynchronous buffer writing. */ -FNA3DAPI uint8_t FNA3D_SupportsNoOverwrite(FNA3D_Device *device); - -/* Returns 1 if the renderer natively supports SRGB render targets. */ -FNA3DAPI uint8_t FNA3D_SupportsSRGBRenderTargets(FNA3D_Device *device); - -/* Returns the number of sampler slots supported by the renderer. */ -FNA3DAPI void FNA3D_GetMaxTextureSlots( - FNA3D_Device *device, - int32_t *textures, - int32_t *vertexTextures -); - -/* Returns the highest multisample count supported for anti-aliasing. - * - * format: The pixel format to query for MSAA support. - * multiSampleCount: The max MSAA value requested for this format. - * - * Returns a hardware-specific version of min(preferred, possible). - */ -FNA3DAPI int32_t FNA3D_GetMaxMultiSampleCount( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount -); - -/* Debugging */ - -/* Sets an arbitrary string constant to be stored in a rendering API trace, - * useful for labeling call streams for debugging purposes. - * - * text: The string constant to mark in the API call stream. - */ -FNA3DAPI void FNA3D_SetStringMarker(FNA3D_Device *device, const char *text); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FNA3D_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D_Image.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D_Image.h deleted file mode 100644 index c679ba20..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D_Image.h +++ /dev/null @@ -1,148 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FNA3D_IMAGE_H -#define FNA3D_IMAGE_H - -#ifdef _WIN32 -#define FNA3DAPI __declspec(dllexport) -#define FNA3DCALL __cdecl -#else -#define FNA3DAPI -#define FNA3DCALL -#endif - -#include - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* Image Read API */ - -typedef int32_t (FNA3DCALL * FNA3D_Image_ReadFunc)( - void* context, - char *data, - int32_t size -); -typedef void (FNA3DCALL * FNA3D_Image_SkipFunc)( - void* context, - int32_t n -); -typedef int32_t (FNA3DCALL * FNA3D_Image_EOFFunc)(void* context); - -/* Decodes PNG/JPG/GIF data into raw RGBA8 texture data. - * - * readFunc: Callback used to pull data from the stream. - * skipFunc: Callback used to seek around a stream. - * eofFunc: Callback used to check that we're reached the end of a stream. - * context: User pointer passed back to the above callbacks. - * w: Filled with the width of the image. - * h: Filled with the height of the image. - * len: Filled with the size (in bytes) of the return value. - * forceW: Forced width of the returned image (-1 to ignore). - * forceH: Forced height of the returned image (-1 to ignore). - * zoom: When forcing dimensions, enable this to crop instead of stretch. - * - * Returns a block of memory suitable for use with FNA3D_SetTextureData2D. - * Be sure to free the memory with FNA3D_Image_Free after use! - */ -FNA3DAPI uint8_t* FNA3D_Image_Load( - FNA3D_Image_ReadFunc readFunc, - FNA3D_Image_SkipFunc skipFunc, - FNA3D_Image_EOFFunc eofFunc, - void* context, - int32_t *w, - int32_t *h, - int32_t *len, - int32_t forceW, - int32_t forceH, - uint8_t zoom -); - -/* Frees memory returned by FNA3D_Image_Load. (Do NOT free the memory yourself!) - * - * mem: A pointer previously returned by FNA3D_Image_Load. - */ -FNA3DAPI void FNA3D_Image_Free(uint8_t *mem); - -/* Image Write API */ - -typedef void (FNA3DCALL * FNA3D_Image_WriteFunc)( - void* context, - void* data, - int32_t size -); - -/* Encodes RGBA8 image data into PNG data. - * - * writeFunc: Callback used to write data to a stream. - * context: User pointer passed back to the above callback. - * srcW: The original width of the image data. - * srcH: The original height of the image data. - * dstW: The requested width of the PNG data. - * dstH: The requested height of the PNG data. - * data: The raw RGBA8 image data. - */ -FNA3DAPI void FNA3D_Image_SavePNG( - FNA3D_Image_WriteFunc writeFunc, - void* context, - int32_t srcW, - int32_t srcH, - int32_t dstW, - int32_t dstH, - uint8_t *data -); - -/* Encodes RGBA8 image data into JPG data, discarding the alpha channel. - * - * writeFunc: Callback used to write data to a stream. - * context: User pointer passed back to the above callback. - * srcW: The original width of the image data. - * srcH: The original height of the image data. - * dstW: The requested width of the JPG data. - * dstH: The requested height of the JPG data. - * data: The raw RGBA8 image data. - * quality: The JPG compression quality (0 - 100). - */ -FNA3DAPI void FNA3D_Image_SaveJPG( - FNA3D_Image_WriteFunc writeFunc, - void* context, - int32_t srcW, - int32_t srcH, - int32_t dstW, - int32_t dstH, - uint8_t *data, - int32_t quality -); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FNA3D_IMAGE_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D_SysRenderer.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D_SysRenderer.h deleted file mode 100644 index b27f68be..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/include/FNA3D_SysRenderer.h +++ /dev/null @@ -1,155 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FNA3D_SYSRENDERER_H -#define FNA3D_SYSRENDERER_H - -#ifdef __cplusplus -extern "C" { -#endif /* __cplusplus */ - -/* This header exposes an in-progress extension to access the rendering context - * of the active FNA3D backend, as well as push texture objects to the backend. - * - * In general you do NOT want to use anything in here, in fact this whole - * extension is skipped unless you explicitly include the header in your - * application. - */ - -#define FNA3D_SYSRENDERER_VERSION_EXT 0 - -typedef enum FNA3D_SysRendererTypeEXT -{ - FNA3D_RENDERER_TYPE_OPENGL_EXT, - FNA3D_RENDERER_TYPE_VULKAN_EXT, - FNA3D_RENDERER_TYPE_D3D11_EXT, - FNA3D_RENDERER_TYPE_METAL_EXT /* REMOVED, DO NOT USE */ -} FNA3D_SysRendererTypeEXT; - -typedef struct FNA3D_SysRendererEXT -{ - uint32_t version; - FNA3D_SysRendererTypeEXT rendererType; - - union - { -#if FNA3D_DRIVER_D3D11 - struct - { - void *device; /* ID3D11Device */ - void *context; /* ID3D11DeviceContext */ - } d3d11; -#endif /* FNA3D_DRIVER_D3D11 */ -#if FNA3D_DRIVER_METAL - struct - { - void *device; /* MTLDevice */ - void *view; /* SDL_MetalView */ - } metal; -#endif /* FNA3D_DRIVER_METAL */ -#if FNA3D_DRIVER_OPENGL - struct - { - void *context; /* SDL_GLContext */ - } opengl; -#endif /* FNA3D_DRIVER_OPENGL */ -#if FNA3D_DRIVER_VULKAN - struct - { - VkInstance instance; - VkPhysicalDevice physicalDevice; - VkDevice logicalDevice; - uint32_t queueFamilyIndex; - } vulkan; -#endif /* FNA3D_DRIVER_VULKAN */ - uint8_t filler[64]; - } renderer; -} FNA3D_SysRendererEXT; - -typedef struct FNA3D_SysTextureEXT -{ - uint32_t version; - FNA3D_SysRendererTypeEXT rendererType; - - union - { -#if FNA3D_DRIVER_D3D11 - struct - { - void *handle; /* ID3D11Resource* */ - void *shaderView; /* ID3D11ShaderResourceView* */ - } d3d11; -#endif /* FNA3D_DRIVER_D3D11 */ -#if FNA3D_DRIVER_METAL - struct - { - void *handle; /* MTLTexture */ - } metal; -#endif /* FNA3D_DRIVER_METAL */ -#if FNA3D_DRIVER_OPENGL - struct - { - uint32_t handle; - uint32_t target; /* GLenum */ - } opengl; -#endif /* FNA3D_DRIVER_OPENGL */ -#if FNA3D_DRIVER_VULKAN - -#if defined(__LP64__) || defined(_WIN64) || defined(__x86_64__) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) -#define FNA3D_VULKAN_HANDLE_TYPE void* -#else -#define FNA3D_VULKAN_HANDLE_TYPE uint64_t -#endif - - struct - { - FNA3D_VULKAN_HANDLE_TYPE image; /* VkImage */ - FNA3D_VULKAN_HANDLE_TYPE view; /* VkImageView */ - } vulkan; -#endif /* FNA3D_DRIVER_VULKAN */ - uint8_t filler[64]; - } texture; -} FNA3D_SysTextureEXT; - -/* Export the internal rendering context. */ -FNA3DAPI void FNA3D_GetSysRendererEXT( - FNA3D_Device *device, - FNA3D_SysRendererEXT *sysrenderer -); - -/* Import a texture reference that is marked as internal */ -FNA3DAPI FNA3D_Texture* FNA3D_CreateSysTextureEXT( - FNA3D_Device *device, - FNA3D_SysTextureEXT *systexture -); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* FNA3D_SYSRENDERER_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/replay/README b/RE/Commit2/ThirdParty/fna/lib/FNA3D/replay/README deleted file mode 100644 index cf3b44c0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/replay/README +++ /dev/null @@ -1,25 +0,0 @@ -This is the replay tool for FNA3D trace files. - -About ------ -Traces are made with a custom FNA3D binary that writes the entire call stream, -including texture and buffer data, and contains no backend information of any -kind. This ensures that traces made from any platform can be played back on -every other platform, and can be rendered with any backend that FNA3D provides. - -How to Use ----------- -To enable tracing, set -DTRACING_SUPPORT=ON when configuring via CMake. If you -use one of the premade projects, simply add FNA3D_TRACING to the defines. - -Place the FNA3D library where appropriate, then run your application for as long -as is appropriate. Note that you will want both a lot of disk space as well as -good disk performance, as these files get large VERY quickly! Once the file is -made, you can play it back with `fna3d_replay`. - -Found an issue? ---------------- -Like with FNA3D, tracing issues should be reported via GitHub, but if you want -to diagnose crashes yourself, the easiest way is to simply printf the `mark` -value right before the big giant switch statement, then you can work your way -from there once you know which API call caused the problem. diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/replay/replay.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/replay/replay.c deleted file mode 100644 index e97cc749..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/replay/replay.c +++ /dev/null @@ -1,1318 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include -#include -#include - -#define MARK_CREATEDEVICE 0 -#define MARK_DESTROYDEVICE 1 -#define MARK_SWAPBUFFERS 2 -#define MARK_CLEAR 3 -#define MARK_DRAWINDEXEDPRIMITIVES 4 -#define MARK_DRAWINSTANCEDPRIMITIVES 5 -#define MARK_DRAWPRIMITIVES 6 -#define MARK_SETVIEWPORT 7 -#define MARK_SETSCISSORRECT 8 -#define MARK_SETBLENDFACTOR 9 -#define MARK_SETMULTISAMPLEMASK 10 -#define MARK_SETREFERENCESTENCIL 11 -#define MARK_SETBLENDSTATE 12 -#define MARK_SETDEPTHSTENCILSTATE 13 -#define MARK_APPLYRASTERIZERSTATE 14 -#define MARK_VERIFYSAMPLER 15 -#define MARK_VERIFYVERTEXSAMPLER 16 -#define MARK_APPLYVERTEXBUFFERBINDINGS 17 -#define MARK_SETRENDERTARGETS 18 -#define MARK_RESOLVETARGET 19 -#define MARK_RESETBACKBUFFER 20 -#define MARK_READBACKBUFFER 21 -#define MARK_CREATETEXTURE2D 22 -#define MARK_CREATETEXTURE3D 23 -#define MARK_CREATETEXTURECUBE 24 -#define MARK_ADDDISPOSETEXTURE 25 -#define MARK_SETTEXTUREDATA2D 26 -#define MARK_SETTEXTUREDATA3D 27 -#define MARK_SETTEXTUREDATACUBE 28 -#define MARK_SETTEXTUREDATAYUV 29 -#define MARK_GETTEXTUREDATA2D 30 -#define MARK_GETTEXTUREDATA3D 31 -#define MARK_GETTEXTUREDATACUBE 32 -#define MARK_GENCOLORRENDERBUFFER 33 -#define MARK_GENDEPTHSTENCILRENDERBUFFER 34 -#define MARK_ADDDISPOSERENDERBUFFER 35 -#define MARK_GENVERTEXBUFFER 36 -#define MARK_ADDDISPOSEVERTEXBUFFER 37 -#define MARK_SETVERTEXBUFFERDATA 38 -#define MARK_GETVERTEXBUFFERDATA 39 -#define MARK_GENINDEXBUFFER 40 -#define MARK_ADDDISPOSEINDEXBUFFER 41 -#define MARK_SETINDEXBUFFERDATA 42 -#define MARK_GETINDEXBUFFERDATA 43 -#define MARK_CREATEEFFECT 44 -#define MARK_CLONEEFFECT 45 -#define MARK_ADDDISPOSEEFFECT 46 -#define MARK_SETEFFECTTECHNIQUE 47 -#define MARK_APPLYEFFECT 48 -#define MARK_BEGINPASSRESTORE 49 -#define MARK_ENDPASSRESTORE 50 -#define MARK_CREATEQUERY 51 -#define MARK_ADDDISPOSEQUERY 52 -#define MARK_QUERYBEGIN 53 -#define MARK_QUERYEND 54 -#define MARK_QUERYPIXELCOUNT 55 -#define MARK_SETSTRINGMARKER 56 - -static uint8_t replay(const char *filename, uint8_t forceDebugMode) -{ - #define READ(val) ops->read(ops, &val, sizeof(val), 1) - - SDL_WindowFlags flags; - SDL_RWops *ops; - SDL_Event evt; - uint8_t mark, run; - - /* CreateDevice, ResetBackbuffer */ - FNA3D_Device *device; - FNA3D_PresentationParameters presentationParameters; - uint8_t debugMode; - - /* SwapBuffers */ - uint8_t hasSource, hasDestination; - FNA3D_Rect sourceRectangle; - FNA3D_Rect destinationRectangle; - - /* Clear */ - FNA3D_ClearOptions options; - FNA3D_Vec4 color; - float depth; - int32_t stencil; - - /* Draw*Primitives */ - FNA3D_PrimitiveType primitiveType; - int32_t baseVertex; - int32_t minVertexIndex; - int32_t numVertices; - int32_t startIndex; - int32_t primitiveCount; - int32_t instanceCount; - FNA3D_IndexElementSize indexElementSize; - int32_t vertexStart; - - /* SetViewport */ - FNA3D_Viewport viewport; - - /* SetScissorRect */ - FNA3D_Rect scissor; - - /* SetBlendFactor */ - FNA3D_Color blendFactor; - - /* SetMultiSampleMask */ - int32_t mask; - - /* SetReferenceStencil */ - int32_t ref; - - /* SetBlendState */ - FNA3D_BlendState blendState; - - /* SetDepthStencilState */ - FNA3D_DepthStencilState depthStencilState; - - /* ApplyRasterizerState */ - FNA3D_RasterizerState rasterizerState; - - /* Verify*Sampler */ - int32_t index; - FNA3D_SamplerState sampler; - - /* ApplyVertexBufferBindings */ - FNA3D_VertexBufferBinding *bindings; - FNA3D_VertexBufferBinding *binding; - FNA3D_VertexElement *elem; - int32_t numBindings; - uint8_t bindingsUpdated; - int32_t vi, vj; - - /* SetRenderTargets */ - FNA3D_RenderTargetBinding *renderTargets; - FNA3D_RenderTargetBinding *target; - int32_t numRenderTargets; - FNA3D_Renderbuffer *depthStencilBuffer; - FNA3D_DepthFormat depthFormat; - uint8_t preserveTargetContents; - int32_t ri; - - /* ResolveTarget */ - FNA3D_RenderTargetBinding resolveTarget; - - /* Gen*Renderbuffer */ - int32_t multiSampleCount; - - /* *BufferData */ - int32_t offsetInBytes; - int32_t elementCount; - int32_t elementSizeInBytes; - int32_t vertexStride; - FNA3D_SetDataOptions dataOptions; - - /* SetEffectTechnique */ - int32_t technique; - - /* ApplyEffect */ - uint32_t pass; - MOJOSHADER_effectStateChanges changes; - - /* Miscellaneous allocations, dimensions, blah blah... */ - int32_t x, y, z, w, h, d, level, levelCount, sizeInBytes, dataLength; - FNA3D_CubeMapFace cubeMapFace; - FNA3D_SurfaceFormat format; - FNA3D_BufferUsage usage; - uint8_t isRenderTarget, dynamic; - uint8_t nonNull; - void* miscBuffer; - - /* Objects */ - FNA3D_Texture *texture; - FNA3D_Renderbuffer *renderbuffer; - FNA3D_Buffer *buffer; - FNA3D_Effect *effect; - MOJOSHADER_effect *effectData; - FNA3D_Query *query; - - /* Trace Objects */ - FNA3D_Texture **traceTexture = NULL; - uint64_t traceTextureCount = 0; - FNA3D_Renderbuffer **traceRenderbuffer = NULL; - uint64_t traceRenderbufferCount = 0; - FNA3D_Buffer **traceVertexBuffer = NULL; - uint64_t traceVertexBufferCount = 0; - FNA3D_Buffer **traceIndexBuffer = NULL; - uint64_t traceIndexBufferCount = 0; - FNA3D_Effect **traceEffect = NULL; - MOJOSHADER_effect **traceEffectData = NULL; - uint64_t traceEffectCount = 0; - FNA3D_Query **traceQuery = NULL; - uint64_t traceQueryCount = 0; - uint64_t i, j, k; - #define REGISTER_OBJECT(array, type, object) \ - for (i = 0; i < trace##array##Count; i += 1) \ - { \ - if (trace##array[i] == NULL) \ - { \ - trace##array[i] = object; \ - break; \ - } \ - } \ - if (i == trace##array##Count) \ - { \ - trace##array##Count += 1; \ - trace##array = SDL_realloc( \ - trace##array, \ - sizeof(FNA3D_##type*) * trace##array##Count \ - ); \ - trace##array[i] = object; \ - } - - /* Check for the trace file */ - ops = SDL_RWFromFile(filename, "rb"); - if (ops == NULL) - { - SDL_Log("%s not found!", filename); - return 0; - } - - /* Beginning of the file should be a CreateDevice call */ - READ(mark); - if (mark != MARK_CREATEDEVICE) - { - SDL_Log("%s is a bad trace!", filename); - ops->close(ops); - return 0; - } - READ(presentationParameters.backBufferWidth); - READ(presentationParameters.backBufferHeight); - READ(presentationParameters.backBufferFormat); - READ(presentationParameters.multiSampleCount); - READ(presentationParameters.isFullScreen); - READ(presentationParameters.depthStencilFormat); - READ(presentationParameters.presentationInterval); - READ(presentationParameters.displayOrientation); - READ(presentationParameters.renderTargetUsage); - READ(debugMode); - - /* Create a window alongside the device */ - flags = SDL_WINDOW_SHOWN | FNA3D_PrepareWindowAttributes(); - if (presentationParameters.isFullScreen) - { - flags |= SDL_WINDOW_FULLSCREEN_DESKTOP; - } - presentationParameters.deviceWindowHandle = SDL_CreateWindow( - "FNA3D Replay", - SDL_WINDOWPOS_CENTERED, - SDL_WINDOWPOS_CENTERED, - presentationParameters.backBufferWidth, - presentationParameters.backBufferHeight, - flags - ); - device = FNA3D_CreateDevice(&presentationParameters, debugMode || forceDebugMode); - - /* Go through all the calls, let vsync do the timing if applicable */ - run = 1; - READ(mark); - while (run && mark != MARK_DESTROYDEVICE) - { - switch (mark) - { - case MARK_SWAPBUFFERS: - READ(hasSource); - if (hasSource) - { - READ(sourceRectangle.x); - READ(sourceRectangle.y); - READ(sourceRectangle.w); - READ(sourceRectangle.h); - } - READ(hasDestination); - if (hasDestination) - { - READ(destinationRectangle.x); - READ(destinationRectangle.y); - READ(destinationRectangle.w); - READ(destinationRectangle.h); - } - FNA3D_SwapBuffers( - device, - hasSource ? &sourceRectangle : NULL, - hasDestination ? &destinationRectangle : NULL, - presentationParameters.deviceWindowHandle - ); - while (SDL_PollEvent(&evt) > 0) - { - if (evt.type == SDL_QUIT) - { - run = 0; - } - } - break; - case MARK_CLEAR: - READ(options); - READ(color.x); - READ(color.y); - READ(color.z); - READ(color.w); - READ(depth); - READ(stencil); - FNA3D_Clear(device, options, &color, depth, stencil); - break; - case MARK_DRAWINDEXEDPRIMITIVES: - READ(primitiveType); - READ(baseVertex); - READ(minVertexIndex); - READ(numVertices); - READ(startIndex); - READ(primitiveCount); - READ(i); - READ(indexElementSize); - FNA3D_DrawIndexedPrimitives( - device, - primitiveType, - baseVertex, - minVertexIndex, - numVertices, - startIndex, - primitiveCount, - traceIndexBuffer[i], - indexElementSize - ); - break; - case MARK_DRAWINSTANCEDPRIMITIVES: - READ(primitiveType); - READ(baseVertex); - READ(minVertexIndex); - READ(numVertices); - READ(startIndex); - READ(primitiveCount); - READ(instanceCount); - READ(i); - READ(indexElementSize); - FNA3D_DrawInstancedPrimitives( - device, - primitiveType, - baseVertex, - minVertexIndex, - numVertices, - startIndex, - primitiveCount, - instanceCount, - traceIndexBuffer[i], - indexElementSize - ); - break; - case MARK_DRAWPRIMITIVES: - READ(primitiveType); - READ(vertexStart); - READ(primitiveCount); - FNA3D_DrawPrimitives( - device, - primitiveType, - vertexStart, - primitiveCount - ); - break; - case MARK_SETVIEWPORT: - READ(viewport.x); - READ(viewport.y); - READ(viewport.w); - READ(viewport.h); - READ(viewport.minDepth); - READ(viewport.maxDepth); - FNA3D_SetViewport(device, &viewport); - break; - case MARK_SETSCISSORRECT: - READ(scissor.x); - READ(scissor.y); - READ(scissor.w); - READ(scissor.h); - FNA3D_SetScissorRect(device, &scissor); - break; - case MARK_SETBLENDFACTOR: - READ(blendFactor.r); - READ(blendFactor.g); - READ(blendFactor.b); - READ(blendFactor.a); - FNA3D_SetBlendFactor(device, &blendFactor); - break; - case MARK_SETMULTISAMPLEMASK: - READ(mask); - FNA3D_SetMultiSampleMask(device, mask); - break; - case MARK_SETREFERENCESTENCIL: - READ(ref); - FNA3D_SetReferenceStencil(device, ref); - break; - case MARK_SETBLENDSTATE: - READ(blendState.colorSourceBlend); - READ(blendState.colorDestinationBlend); - READ(blendState.colorBlendFunction); - READ(blendState.alphaSourceBlend); - READ(blendState.alphaDestinationBlend); - READ(blendState.alphaBlendFunction); - READ(blendState.colorWriteEnable); - READ(blendState.colorWriteEnable1); - READ(blendState.colorWriteEnable2); - READ(blendState.colorWriteEnable3); - READ(blendState.blendFactor.r); - READ(blendState.blendFactor.g); - READ(blendState.blendFactor.b); - READ(blendState.blendFactor.a); - READ(blendState.multiSampleMask); - FNA3D_SetBlendState(device, &blendState); - break; - case MARK_SETDEPTHSTENCILSTATE: - READ(depthStencilState.depthBufferEnable); - READ(depthStencilState.depthBufferWriteEnable); - READ(depthStencilState.depthBufferFunction); - READ(depthStencilState.stencilEnable); - READ(depthStencilState.stencilMask); - READ(depthStencilState.stencilWriteMask); - READ(depthStencilState.twoSidedStencilMode); - READ(depthStencilState.stencilFail); - READ(depthStencilState.stencilDepthBufferFail); - READ(depthStencilState.stencilPass); - READ(depthStencilState.stencilFunction); - READ(depthStencilState.ccwStencilFail); - READ(depthStencilState.ccwStencilDepthBufferFail); - READ(depthStencilState.ccwStencilPass); - READ(depthStencilState.ccwStencilFunction); - READ(depthStencilState.referenceStencil); - FNA3D_SetDepthStencilState(device, &depthStencilState); - break; - case MARK_APPLYRASTERIZERSTATE: - READ(rasterizerState.fillMode); - READ(rasterizerState.cullMode); - READ(rasterizerState.depthBias); - READ(rasterizerState.slopeScaleDepthBias); - READ(rasterizerState.scissorTestEnable); - READ(rasterizerState.multiSampleAntiAlias); - FNA3D_ApplyRasterizerState(device, &rasterizerState); - break; - case MARK_VERIFYSAMPLER: - READ(index); - READ(i); - READ(sampler.filter); - READ(sampler.addressU); - READ(sampler.addressV); - READ(sampler.addressW); - READ(sampler.mipMapLevelOfDetailBias); - READ(sampler.maxAnisotropy); - READ(sampler.maxMipLevel); - FNA3D_VerifySampler( - device, - index, - traceTexture[i], - &sampler - ); - break; - case MARK_VERIFYVERTEXSAMPLER: - READ(index); - READ(i); - READ(sampler.filter); - READ(sampler.addressU); - READ(sampler.addressV); - READ(sampler.addressW); - READ(sampler.mipMapLevelOfDetailBias); - READ(sampler.maxAnisotropy); - READ(sampler.maxMipLevel); - FNA3D_VerifyVertexSampler( - device, - index, - traceTexture[i], - &sampler - ); - break; - case MARK_APPLYVERTEXBUFFERBINDINGS: - READ(numBindings); - bindings = (FNA3D_VertexBufferBinding*) SDL_malloc( - sizeof(FNA3D_VertexBufferBinding) * - numBindings - ); - for (vi = 0; vi < numBindings; vi += 1) - { - binding = &bindings[vi]; - READ(i); - binding->vertexBuffer = traceVertexBuffer[i]; - READ(binding->vertexDeclaration.vertexStride); - READ(binding->vertexDeclaration.elementCount); - binding->vertexDeclaration.elements = (FNA3D_VertexElement*) SDL_malloc( - sizeof(FNA3D_VertexElement) * - binding->vertexDeclaration.elementCount - ); - for (vj = 0; vj < binding->vertexDeclaration.elementCount; vj += 1) - { - elem = &binding->vertexDeclaration.elements[vj]; - READ(elem->offset); - READ(elem->vertexElementFormat); - READ(elem->vertexElementUsage); - READ(elem->usageIndex); - } - READ(binding->vertexOffset); - READ(binding->instanceFrequency); - } - READ(bindingsUpdated); - READ(baseVertex); - FNA3D_ApplyVertexBufferBindings( - device, - bindings, - numBindings, - bindingsUpdated, - baseVertex - ); - for (vi = 0; vi < numBindings; vi += 1) - { - binding = &bindings[vi]; - SDL_free(binding->vertexDeclaration.elements); - } - SDL_free(bindings); - break; - case MARK_SETRENDERTARGETS: - READ(numRenderTargets); - if (numRenderTargets == 0) - { - renderTargets = NULL; - } - else - { - renderTargets = (FNA3D_RenderTargetBinding*) SDL_malloc( - sizeof(FNA3D_RenderTargetBinding) * - numRenderTargets - ); - for (ri = 0; ri < numRenderTargets; ri += 1) - { - target = &renderTargets[ri]; - READ(target->type); - if (target->type == FNA3D_RENDERTARGET_TYPE_2D) - { - READ(target->twod.width); - READ(target->twod.height); - } - else - { - SDL_assert(target->type == FNA3D_RENDERTARGET_TYPE_CUBE); - READ(target->cube.size); - READ(target->cube.face); - } - - READ(target->levelCount); - READ(target->multiSampleCount); - - READ(nonNull); - if (nonNull) - { - READ(i); - target->texture = traceTexture[i]; - } - else - { - target->texture = NULL; - } - - READ(nonNull); - if (nonNull) - { - READ(i); - target->colorBuffer = traceRenderbuffer[i]; - } - else - { - target->colorBuffer = NULL; - } - } - } - - READ(nonNull); - if (nonNull) - { - READ(i); - depthStencilBuffer = traceRenderbuffer[i]; - } - else - { - depthStencilBuffer = NULL; - } - - READ(depthFormat); - READ(preserveTargetContents); - - FNA3D_SetRenderTargets( - device, - renderTargets, - numRenderTargets, - depthStencilBuffer, - depthFormat, - preserveTargetContents - ); - - SDL_free(renderTargets); - break; - case MARK_RESOLVETARGET: - READ(resolveTarget.type); - if (resolveTarget.type == FNA3D_RENDERTARGET_TYPE_2D) - { - READ(resolveTarget.twod.width); - READ(resolveTarget.twod.height); - } - else - { - SDL_assert(resolveTarget.type == FNA3D_RENDERTARGET_TYPE_CUBE); - READ(resolveTarget.cube.size); - READ(resolveTarget.cube.face); - } - - READ(resolveTarget.levelCount); - READ(resolveTarget.multiSampleCount); - - READ(nonNull); - if (nonNull) - { - READ(i); - resolveTarget.texture = traceTexture[i]; - } - else - { - resolveTarget.texture = NULL; - } - - READ(nonNull); - if (nonNull) - { - READ(i); - resolveTarget.colorBuffer = traceRenderbuffer[i]; - } - else - { - resolveTarget.colorBuffer = NULL; - } - - FNA3D_ResolveTarget(device, &resolveTarget); - break; - case MARK_RESETBACKBUFFER: - READ(presentationParameters.backBufferWidth); - READ(presentationParameters.backBufferHeight); - READ(presentationParameters.backBufferFormat); - READ(presentationParameters.multiSampleCount); - READ(presentationParameters.isFullScreen); - READ(presentationParameters.depthStencilFormat); - READ(presentationParameters.presentationInterval); - READ(presentationParameters.displayOrientation); - READ(presentationParameters.renderTargetUsage); - SDL_SetWindowFullscreen( - presentationParameters.deviceWindowHandle, - presentationParameters.isFullScreen ? - SDL_WINDOW_FULLSCREEN_DESKTOP : - 0 - ); - SDL_SetWindowSize( - presentationParameters.deviceWindowHandle, - presentationParameters.backBufferWidth, - presentationParameters.backBufferHeight - ); - FNA3D_ResetBackbuffer(device, &presentationParameters); - break; - case MARK_READBACKBUFFER: - READ(x); - READ(y); - READ(w); - READ(h); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - FNA3D_ReadBackbuffer( - device, - x, - y, - w, - h, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_CREATETEXTURE2D: - READ(format); - READ(w); - READ(h); - READ(levelCount); - READ(isRenderTarget); - texture = FNA3D_CreateTexture2D( - device, - format, - w, - h, - levelCount, - isRenderTarget - ); - REGISTER_OBJECT(Texture, Texture, texture) - break; - case MARK_CREATETEXTURE3D: - READ(format); - READ(w); - READ(h); - READ(d); - READ(levelCount); - texture = FNA3D_CreateTexture3D( - device, - format, - w, - h, - d, - levelCount - ); - REGISTER_OBJECT(Texture, Texture, texture) - break; - case MARK_CREATETEXTURECUBE: - READ(format); - READ(w); - READ(levelCount); - READ(isRenderTarget); - texture = FNA3D_CreateTextureCube( - device, - format, - w, - levelCount, - isRenderTarget - ); - REGISTER_OBJECT(Texture, Texture, texture) - break; - case MARK_ADDDISPOSETEXTURE: - READ(i); - FNA3D_AddDisposeTexture(device, traceTexture[i]); - traceTexture[i] = NULL; - break; - case MARK_SETTEXTUREDATA2D: - READ(i); - READ(x); - READ(y); - READ(w); - READ(h); - READ(level); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - ops->read(ops, miscBuffer, dataLength, 1); - FNA3D_SetTextureData2D( - device, - traceTexture[i], - x, - y, - w, - h, - level, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_SETTEXTUREDATA3D: - READ(i); - READ(x); - READ(y); - READ(z); - READ(w); - READ(h); - READ(d); - READ(level); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - ops->read(ops, miscBuffer, dataLength, 1); - FNA3D_SetTextureData3D( - device, - traceTexture[i], - x, - y, - z, - w, - h, - d, - level, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_SETTEXTUREDATACUBE: - READ(i); - READ(x); - READ(y); - READ(w); - READ(h); - READ(cubeMapFace); - READ(level); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - ops->read(ops, miscBuffer, dataLength, 1); - FNA3D_SetTextureDataCube( - device, - traceTexture[i], - x, - y, - w, - h, - cubeMapFace, - level, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_SETTEXTUREDATAYUV: - READ(i); - READ(j); - READ(k); - READ(x); - READ(y); - READ(w); - READ(h); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - ops->read(ops, miscBuffer, dataLength, 1); - FNA3D_SetTextureDataYUV( - device, - traceTexture[i], - traceTexture[j], - traceTexture[k], - x, - y, - w, - h, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_GETTEXTUREDATA2D: - READ(i); - READ(x); - READ(y); - READ(w); - READ(h); - READ(level); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - FNA3D_GetTextureData2D( - device, - traceTexture[i], - x, - y, - w, - h, - level, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_GETTEXTUREDATA3D: - READ(i); - READ(x); - READ(y); - READ(z); - READ(w); - READ(h); - READ(d); - READ(level); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - FNA3D_GetTextureData3D( - device, - traceTexture[i], - x, - y, - z, - w, - h, - d, - level, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_GETTEXTUREDATACUBE: - READ(i); - READ(x); - READ(y); - READ(w); - READ(h); - READ(cubeMapFace); - READ(level); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - FNA3D_GetTextureDataCube( - device, - traceTexture[i], - x, - y, - w, - h, - cubeMapFace, - level, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_GENCOLORRENDERBUFFER: - READ(w); - READ(h); - READ(format); - READ(multiSampleCount); - READ(nonNull); - if (nonNull) - { - READ(i); - texture = traceTexture[i]; - } - else - { - texture = NULL; - } - renderbuffer = FNA3D_GenColorRenderbuffer( - device, - w, - h, - format, - multiSampleCount, - texture - ); - REGISTER_OBJECT(Renderbuffer, Renderbuffer, renderbuffer) - break; - case MARK_GENDEPTHSTENCILRENDERBUFFER: - READ(w); - READ(h); - READ(depthFormat); - READ(multiSampleCount); - renderbuffer = FNA3D_GenDepthStencilRenderbuffer( - device, - w, - h, - depthFormat, - multiSampleCount - ); - REGISTER_OBJECT(Renderbuffer, Renderbuffer, renderbuffer) - break; - case MARK_ADDDISPOSERENDERBUFFER: - READ(i); - FNA3D_AddDisposeRenderbuffer( - device, - traceRenderbuffer[i] - ); - traceRenderbuffer[i] = NULL; - break; - case MARK_GENVERTEXBUFFER: - READ(dynamic); - READ(usage); - READ(sizeInBytes); - buffer = FNA3D_GenVertexBuffer( - device, - dynamic, - usage, - sizeInBytes - ); - REGISTER_OBJECT(VertexBuffer, Buffer, buffer) - break; - case MARK_ADDDISPOSEVERTEXBUFFER: - READ(i); - FNA3D_AddDisposeVertexBuffer( - device, - traceVertexBuffer[i] - ); - traceVertexBuffer[i] = NULL; - break; - case MARK_SETVERTEXBUFFERDATA: - READ(i); - READ(offsetInBytes); - READ(elementCount); - READ(elementSizeInBytes); - READ(vertexStride); - READ(dataOptions); - miscBuffer = SDL_malloc(vertexStride * elementCount); - ops->read(ops, miscBuffer, vertexStride * elementCount, 1); - FNA3D_SetVertexBufferData( - device, - traceVertexBuffer[i], - offsetInBytes, - miscBuffer, - elementCount, - elementSizeInBytes, - vertexStride, - dataOptions - ); - SDL_free(miscBuffer); - break; - case MARK_GETVERTEXBUFFERDATA: - READ(i); - READ(offsetInBytes); - READ(elementCount); - READ(elementSizeInBytes); - READ(vertexStride); - miscBuffer = SDL_malloc(vertexStride * elementCount); - FNA3D_GetVertexBufferData( - device, - traceVertexBuffer[i], - offsetInBytes, - miscBuffer, - elementCount, - elementSizeInBytes, - vertexStride - ); - SDL_free(miscBuffer); - break; - case MARK_GENINDEXBUFFER: - READ(dynamic); - READ(usage); - READ(sizeInBytes); - buffer = FNA3D_GenIndexBuffer( - device, - dynamic, - usage, - sizeInBytes - ); - REGISTER_OBJECT(IndexBuffer, Buffer, buffer) - break; - case MARK_ADDDISPOSEINDEXBUFFER: - READ(i); - FNA3D_AddDisposeIndexBuffer( - device, - traceIndexBuffer[i] - ); - traceIndexBuffer[i] = NULL; - break; - case MARK_SETINDEXBUFFERDATA: - READ(i); - READ(offsetInBytes); - READ(dataLength); - READ(dataOptions); - miscBuffer = SDL_malloc(dataLength); - ops->read(ops, miscBuffer, dataLength, 1); - FNA3D_SetIndexBufferData( - device, - traceIndexBuffer[i], - offsetInBytes, - miscBuffer, - dataLength, - dataOptions - ); - SDL_free(miscBuffer); - break; - case MARK_GETINDEXBUFFERDATA: - READ(i); - READ(offsetInBytes); - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - FNA3D_GetIndexBufferData( - device, - traceIndexBuffer[i], - offsetInBytes, - miscBuffer, - dataLength - ); - SDL_free(miscBuffer); - break; - case MARK_CREATEEFFECT: - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - ops->read(ops, miscBuffer, dataLength, 1); - FNA3D_CreateEffect( - device, - (uint8_t*) miscBuffer, - dataLength, - &effect, - &effectData - ); - SDL_free(miscBuffer); - for (i = 0; i < traceEffectCount; i += 1) - { - if (traceEffect[i] == NULL) - { - traceEffect[i] = effect; - traceEffectData[i] = effectData; - break; - } - } - if (i == traceEffectCount) - { - traceEffectCount += 1; - traceEffect = SDL_realloc( - traceEffect, - sizeof(FNA3D_Effect*) * traceEffectCount - ); - traceEffectData = SDL_realloc( - traceEffectData, - sizeof(MOJOSHADER_effect*) * traceEffectCount - ); - traceEffect[i] = effect; - traceEffectData[i] = effectData; - } - break; - case MARK_CLONEEFFECT: - READ(i); - FNA3D_CloneEffect( - device, - traceEffect[i], - &effect, - &effectData - ); - for (i = 0; i < traceEffectCount; i += 1) - { - if (traceEffect[i] == NULL) - { - traceEffect[i] = effect; - traceEffectData[i] = effectData; - break; - } - } - if (i == traceEffectCount) - { - traceEffectCount += 1; - traceEffect = SDL_realloc( - traceEffect, - sizeof(FNA3D_Effect*) * traceEffectCount - ); - traceEffectData = SDL_realloc( - traceEffectData, - sizeof(MOJOSHADER_effect*) * traceEffectCount - ); - traceEffect[i] = effect; - traceEffectData[i] = effectData; - } - break; - case MARK_ADDDISPOSEEFFECT: - READ(i); - FNA3D_AddDisposeEffect(device, traceEffect[i]); - traceEffect[i] = NULL; - traceEffectData[i] = NULL; - break; - case MARK_SETEFFECTTECHNIQUE: - READ(i); - READ(technique); - FNA3D_SetEffectTechnique( - device, - traceEffect[i], - &traceEffectData[i]->techniques[technique] - ); - break; - case MARK_APPLYEFFECT: - READ(i); - READ(pass); - effectData = traceEffectData[i]; - for (vi = 0; vi < effectData->param_count; vi += 1) - { - ops->read( - ops, - effectData->params[vi].value.values, - effectData->params[vi].value.value_count * 4, - 1 - ); - } - FNA3D_ApplyEffect( - device, - traceEffect[i], - pass, - &changes - ); - break; - case MARK_BEGINPASSRESTORE: - READ(i); - FNA3D_BeginPassRestore( - device, - traceEffect[i], - &changes - ); - break; - case MARK_ENDPASSRESTORE: - READ(i); - FNA3D_EndPassRestore(device, traceEffect[i]); - break; - case MARK_CREATEQUERY: - query = FNA3D_CreateQuery(device); - REGISTER_OBJECT(Query, Query, query) - break; - case MARK_ADDDISPOSEQUERY: - READ(i); - FNA3D_AddDisposeQuery(device, traceQuery[i]); - traceQuery[i] = NULL; - break; - case MARK_QUERYBEGIN: - READ(i); - FNA3D_QueryBegin(device, traceQuery[i]); - break; - case MARK_QUERYEND: - READ(i); - FNA3D_QueryEnd(device, traceQuery[i]); - break; - case MARK_QUERYPIXELCOUNT: - READ(i); - while (!FNA3D_QueryComplete(device, traceQuery[i])) - { - SDL_Delay(0); - } - FNA3D_QueryBegin(device, traceQuery[i]); - break; - case MARK_SETSTRINGMARKER: - READ(dataLength); - miscBuffer = SDL_malloc(dataLength); - ops->read(ops, miscBuffer, dataLength, 1); - FNA3D_SetStringMarker(device, (char*) miscBuffer); - SDL_free(miscBuffer); - break; - case MARK_CREATEDEVICE: - case MARK_DESTROYDEVICE: - SDL_assert(0 && "Unexpected mark!"); - break; - default: - SDL_assert(0 && "Unrecognized mark!"); - break; - } - READ(mark); - } - - /* Clean up. We out. */ - ops->close(ops); - #define FREE_TRACES(type) \ - if (trace##type##Count > 0) \ - { \ - for (i = 0; i < trace##type##Count; i += 1) \ - { \ - if (trace##type[i] != NULL) \ - { \ - FNA3D_AddDispose##type( \ - device, \ - trace##type[i] \ - ); \ - } \ - } \ - SDL_free(trace##type); \ - trace##type = NULL; \ - trace##type##Count = 0; \ - } - FREE_TRACES(Texture) - FREE_TRACES(Renderbuffer) - FREE_TRACES(VertexBuffer) - FREE_TRACES(IndexBuffer) - FREE_TRACES(Effect) - FREE_TRACES(Query) - if (traceEffectData != NULL) - { - SDL_free(traceEffectData); - traceEffectData = NULL; - } - #undef FREE_TRACES - FNA3D_DestroyDevice(device); - SDL_DestroyWindow(presentationParameters.deviceWindowHandle); - return !run; - - #undef REGISTER_OBJECT - #undef READ -} - -int main(int argc, char **argv) -{ - int i; - int replayArgIndex = 1; - uint8_t forceDebugMode = 0; - - SDL_Init(SDL_INIT_VIDEO); - - /* Make sure we don't recursively trace... */ - SDL_SetHint("FNA3D_DISABLE_TRACING", "1"); - - if (argc > 1) - { - if (SDL_strcmp(argv[1], "-debug") == 0) - { - forceDebugMode = 1; - replayArgIndex += 1; - } - } - - if (replayArgIndex == argc) - { - replay("FNA3D_Trace.bin", forceDebugMode); - } - else - { - for (i = replayArgIndex; i < argc; i += 1) - { - if (replay(argv[i], forceDebugMode)) - { - break; - } - } - } - - SDL_Quit(); - return 0; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D.c deleted file mode 100644 index a5240e0e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D.c +++ /dev/null @@ -1,1523 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FNA3D_Driver.h" -#include "FNA3D_Tracing.h" - -#include - -#if !SDL_VERSION_ATLEAST(2, 0, 12) -#error "SDL version older than 2.0.12" -#endif /* !SDL_VERSION_ATLEAST */ - -/* Drivers */ - -static const FNA3D_Driver *drivers[] = { -#if FNA3D_DRIVER_D3D11 - &D3D11Driver, -#endif -#if FNA3D_DRIVER_OPENGL - &OpenGLDriver, -#endif -#if FNA3D_DRIVER_VULKAN /* TODO: Bump this to the top when Vulkan is done! */ - &VulkanDriver, -#endif -#if FNA3D_DRIVER_GNMX - &GNMXDriver, -#endif - NULL -}; - -/* Logging */ - -static void FNA3D_Default_LogInfo(const char *msg) -{ - SDL_LogInfo( - SDL_LOG_CATEGORY_APPLICATION, - "%s", - msg - ); -} - -static void FNA3D_Default_LogWarn(const char *msg) -{ - SDL_LogWarn( - SDL_LOG_CATEGORY_APPLICATION, - "%s", - msg - ); -} - -static void FNA3D_Default_LogError(const char *msg) -{ - SDL_LogError( - SDL_LOG_CATEGORY_APPLICATION, - "%s", - msg - ); -} - -static FNA3D_LogFunc FNA3D_LogInfoFunc = FNA3D_Default_LogInfo; -static FNA3D_LogFunc FNA3D_LogWarnFunc = FNA3D_Default_LogWarn; -static FNA3D_LogFunc FNA3D_LogErrorFunc = FNA3D_Default_LogError; - -#define MAX_MESSAGE_SIZE 1024 - -void FNA3D_LogInfo(const char *fmt, ...) -{ - char msg[MAX_MESSAGE_SIZE]; - va_list ap; - va_start(ap, fmt); - SDL_vsnprintf(msg, sizeof(msg), fmt, ap); - va_end(ap); - FNA3D_LogInfoFunc(msg); -} - -void FNA3D_LogWarn(const char *fmt, ...) -{ - char msg[MAX_MESSAGE_SIZE]; - va_list ap; - va_start(ap, fmt); - SDL_vsnprintf(msg, sizeof(msg), fmt, ap); - va_end(ap); - FNA3D_LogWarnFunc(msg); -} - -void FNA3D_LogError(const char *fmt, ...) -{ - char msg[MAX_MESSAGE_SIZE]; - va_list ap; - va_start(ap, fmt); - SDL_vsnprintf(msg, sizeof(msg), fmt, ap); - va_end(ap); - FNA3D_LogErrorFunc(msg); -} - -#undef MAX_MESSAGE_SIZE - -void FNA3D_HookLogFunctions( - FNA3D_LogFunc info, - FNA3D_LogFunc warn, - FNA3D_LogFunc error -) { - FNA3D_LogInfoFunc = info; - FNA3D_LogWarnFunc = warn; - FNA3D_LogErrorFunc = error; -} - -/* Version API */ - -uint32_t FNA3D_LinkedVersion(void) -{ - return FNA3D_COMPILED_VERSION; -} - -/* Driver Functions */ - -static int32_t selectedDriver = -1; - -uint32_t FNA3D_PrepareWindowAttributes(void) -{ - uint32_t result = 0; - uint32_t i; - const char *hint = SDL_GetHint("FNA3D_FORCE_DRIVER"); - for (i = 0; drivers[i] != NULL; i += 1) - { - if (hint != NULL) - { - if (SDL_strcmp(hint, drivers[i]->Name) != 0) - { - continue; - } - } - if (drivers[i]->PrepareWindowAttributes(&result)) - { - break; - } - } - if (drivers[i] == NULL) - { - FNA3D_LogError("No supported FNA3D driver found!"); - } - else - { - selectedDriver = i; - } - return result; -} - -FNA3DAPI void FNA3D_GetDrawableSize(void* window, int32_t *w, int32_t *h) -{ - if (selectedDriver < 0) - { - FNA3D_LogError("Call FNA3D_PrepareWindowAttributes first!"); - return; - } - - drivers[selectedDriver]->GetDrawableSize(window, w, h); -} - -/* Init/Quit */ - -FNA3D_Device* FNA3D_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -) { - TRACE_CREATEDEVICE - if (selectedDriver < 0) - { - FNA3D_LogError("Call FNA3D_PrepareWindowAttributes first!"); - return NULL; - } - - return drivers[selectedDriver]->CreateDevice( - presentationParameters, - debugMode - ); -} - -void FNA3D_DestroyDevice(FNA3D_Device *device) -{ - TRACE_DESTROYDEVICE - if (device == NULL) - { - return; - } - - device->DestroyDevice(device); -} - -/* Presentation */ - -void FNA3D_SwapBuffers( - FNA3D_Device *device, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -) { - TRACE_SWAPBUFFERS - if (device == NULL) - { - return; - } - device->SwapBuffers( - device->driverData, - sourceRectangle, - destinationRectangle, - overrideWindowHandle - ); -} - -/* Drawing */ - -void FNA3D_Clear( - FNA3D_Device *device, - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -) { - TRACE_CLEAR - if (device == NULL) - { - return; - } - device->Clear(device->driverData, options, color, depth, stencil); -} - -void FNA3D_DrawIndexedPrimitives( - FNA3D_Device *device, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - TRACE_DRAWINDEXEDPRIMITIVES - if (device == NULL) - { - return; - } - device->DrawIndexedPrimitives( - device->driverData, - primitiveType, - baseVertex, - minVertexIndex, - numVertices, - startIndex, - primitiveCount, - indices, - indexElementSize - ); -} - -void FNA3D_DrawInstancedPrimitives( - FNA3D_Device *device, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - TRACE_DRAWINSTANCEDPRIMITIVES - if (device == NULL) - { - return; - } - device->DrawInstancedPrimitives( - device->driverData, - primitiveType, - baseVertex, - minVertexIndex, - numVertices, - startIndex, - primitiveCount, - instanceCount, - indices, - indexElementSize - ); -} - -void FNA3D_DrawPrimitives( - FNA3D_Device *device, - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -) { - TRACE_DRAWPRIMITIVES - if (device == NULL) - { - return; - } - device->DrawPrimitives( - device->driverData, - primitiveType, - vertexStart, - primitiveCount - ); -} - -/* Mutable Render States */ - -void FNA3D_SetViewport(FNA3D_Device *device, FNA3D_Viewport *viewport) -{ - TRACE_SETVIEWPORT - if (device == NULL) - { - return; - } - device->SetViewport(device->driverData, viewport); -} - -void FNA3D_SetScissorRect(FNA3D_Device *device, FNA3D_Rect *scissor) -{ - TRACE_SETSCISSORRECT - if (device == NULL) - { - return; - } - device->SetScissorRect(device->driverData, scissor); -} - -void FNA3D_GetBlendFactor( - FNA3D_Device *device, - FNA3D_Color *blendFactor -) { - /* Not traced! */ - if (device == NULL) - { - return; - } - device->GetBlendFactor(device->driverData, blendFactor); -} - -void FNA3D_SetBlendFactor( - FNA3D_Device *device, - FNA3D_Color *blendFactor -) { - TRACE_SETBLENDFACTOR - if (device == NULL) - { - return; - } - device->SetBlendFactor(device->driverData, blendFactor); -} - -int32_t FNA3D_GetMultiSampleMask(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->GetMultiSampleMask(device->driverData); -} - -void FNA3D_SetMultiSampleMask(FNA3D_Device *device, int32_t mask) -{ - TRACE_SETMULTISAMPLEMASK - if (device == NULL) - { - return; - } - device->SetMultiSampleMask(device->driverData, mask); -} - -int32_t FNA3D_GetReferenceStencil(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->GetReferenceStencil(device->driverData); -} - -void FNA3D_SetReferenceStencil(FNA3D_Device *device, int32_t ref) -{ - TRACE_SETREFERENCESTENCIL - if (device == NULL) - { - return; - } - device->SetReferenceStencil(device->driverData, ref); -} - -/* Immutable Render States */ - -void FNA3D_SetBlendState( - FNA3D_Device *device, - FNA3D_BlendState *blendState -) { - TRACE_SETBLENDSTATE - if (device == NULL) - { - return; - } - device->SetBlendState(device->driverData, blendState); -} - -void FNA3D_SetDepthStencilState( - FNA3D_Device *device, - FNA3D_DepthStencilState *depthStencilState -) { - TRACE_SETDEPTHSTENCILSTATE - if (device == NULL) - { - return; - } - device->SetDepthStencilState(device->driverData, depthStencilState); -} - -void FNA3D_ApplyRasterizerState( - FNA3D_Device *device, - FNA3D_RasterizerState *rasterizerState -) { - TRACE_APPLYRASTERIZERSTATE - if (device == NULL) - { - return; - } - device->ApplyRasterizerState(device->driverData, rasterizerState); -} - -void FNA3D_VerifySampler( - FNA3D_Device *device, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - TRACE_VERIFYSAMPLER - if (device == NULL) - { - return; - } - device->VerifySampler(device->driverData, index, texture, sampler); -} - -void FNA3D_VerifyVertexSampler( - FNA3D_Device *device, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - TRACE_VERIFYVERTEXSAMPLER - if (device == NULL) - { - return; - } - device->VerifyVertexSampler(device->driverData, index, texture, sampler); -} - -void FNA3D_ApplyVertexBufferBindings( - FNA3D_Device *device, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -) { - TRACE_APPLYVERTEXBUFFERBINDINGS - if (device == NULL) - { - return; - } - device->ApplyVertexBufferBindings( - device->driverData, - bindings, - numBindings, - bindingsUpdated, - baseVertex - ); -} - -/* Render Targets */ - -void FNA3D_SetRenderTargets( - FNA3D_Device *device, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -) { - TRACE_SETRENDERTARGETS - if (device == NULL) - { - return; - } - device->SetRenderTargets( - device->driverData, - renderTargets, - numRenderTargets, - depthStencilBuffer, - depthFormat, - preserveTargetContents - ); -} - -void FNA3D_ResolveTarget( - FNA3D_Device *device, - FNA3D_RenderTargetBinding *target -) { - TRACE_RESOLVETARGET - if (device == NULL) - { - return; - } - device->ResolveTarget(device->driverData, target); -} - -/* Backbuffer Functions */ - -void FNA3D_ResetBackbuffer( - FNA3D_Device *device, - FNA3D_PresentationParameters *presentationParameters -) { - TRACE_RESETBACKBUFFER - if (device == NULL) - { - return; - } - device->ResetBackbuffer(device->driverData, presentationParameters); -} - -void FNA3D_ReadBackbuffer( - FNA3D_Device *device, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - void* data, - int32_t dataLength -) { - TRACE_READBACKBUFFER - if (device == NULL) - { - return; - } - device->ReadBackbuffer( - device->driverData, - x, - y, - w, - h, - data, - dataLength - ); -} - -void FNA3D_GetBackbufferSize( - FNA3D_Device *device, - int32_t *w, - int32_t *h -) { - /* Not traced! */ - if (device == NULL) - { - *w = 0; - *h = 0; - return; - } - device->GetBackbufferSize(device->driverData, w, h); -} - -FNA3D_SurfaceFormat FNA3D_GetBackbufferSurfaceFormat(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return FNA3D_SURFACEFORMAT_COLOR; - } - return device->GetBackbufferSurfaceFormat(device->driverData); -} - -FNA3D_DepthFormat FNA3D_GetBackbufferDepthFormat(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return FNA3D_DEPTHFORMAT_NONE; - } - return device->GetBackbufferDepthFormat(device->driverData); -} - -int32_t FNA3D_GetBackbufferMultiSampleCount(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->GetBackbufferMultiSampleCount(device->driverData); -} - -/* Textures */ - -FNA3D_Texture* FNA3D_CreateTexture2D( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Texture *result; - if (device == NULL) - { - return NULL; - } - result = device->CreateTexture2D( - device->driverData, - format, - width, - height, - levelCount, - isRenderTarget - ); - TRACE_CREATETEXTURE2D - return result; -} - -FNA3D_Texture* FNA3D_CreateTexture3D( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Texture *result; - if (device == NULL) - { - return NULL; - } - result = device->CreateTexture3D( - device->driverData, - format, - width, - height, - depth, - levelCount - ); - TRACE_CREATETEXTURE3D - return result; -} - -FNA3D_Texture* FNA3D_CreateTextureCube( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Texture *result; - if (device == NULL) - { - return NULL; - } - result = device->CreateTextureCube( - device->driverData, - format, - size, - levelCount, - isRenderTarget - ); - TRACE_CREATETEXTURECUBE - return result; -} - -void FNA3D_AddDisposeTexture( - FNA3D_Device *device, - FNA3D_Texture *texture -) { - TRACE_ADDDISPOSETEXTURE - if (device == NULL || texture == NULL) - { - return; - } - device->AddDisposeTexture(device->driverData, texture); -} - -void FNA3D_SetTextureData2D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - TRACE_SETTEXTUREDATA2D - if (device == NULL) - { - return; - } - device->SetTextureData2D( - device->driverData, - texture, - x, - y, - w, - h, - level, - data, - dataLength - ); -} - -void FNA3D_SetTextureData3D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - TRACE_SETTEXTUREDATA3D - if (device == NULL) - { - return; - } - device->SetTextureData3D( - device->driverData, - texture, - x, - y, - z, - w, - h, - d, - level, - data, - dataLength - ); -} - -void FNA3D_SetTextureDataCube( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - TRACE_SETTEXTUREDATACUBE - if (device == NULL) - { - return; - } - device->SetTextureDataCube( - device->driverData, - texture, - x, - y, - w, - h, - cubeMapFace, - level, - data, - dataLength - ); -} - -void FNA3D_SetTextureDataYUV( - FNA3D_Device *device, - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -) { - TRACE_SETTEXTUREDATAYUV - if (device == NULL) - { - return; - } - device->SetTextureDataYUV( - device->driverData, - y, - u, - v, - yWidth, - yHeight, - uvWidth, - uvHeight, - data, - dataLength - ); -} - -void FNA3D_GetTextureData2D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - TRACE_GETTEXTUREDATA2D - if (device == NULL) - { - return; - } - device->GetTextureData2D( - device->driverData, - texture, - x, - y, - w, - h, - level, - data, - dataLength - ); -} - -void FNA3D_GetTextureData3D( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - TRACE_SETTEXTUREDATA3D - if (device == NULL) - { - return; - } - device->GetTextureData3D( - device->driverData, - texture, - x, - y, - z, - w, - h, - d, - level, - data, - dataLength - ); -} - -void FNA3D_GetTextureDataCube( - FNA3D_Device *device, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - TRACE_GETTEXTUREDATACUBE - if (device == NULL) - { - return; - } - device->GetTextureDataCube( - device->driverData, - texture, - x, - y, - w, - h, - cubeMapFace, - level, - data, - dataLength - ); -} - -/* Renderbuffers */ - -FNA3D_Renderbuffer* FNA3D_GenColorRenderbuffer( - FNA3D_Device *device, - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Renderbuffer *result; - if (device == NULL) - { - return NULL; - } - result = device->GenColorRenderbuffer( - device->driverData, - width, - height, - format, - multiSampleCount, - texture - ); - TRACE_GENCOLORRENDERBUFFER - return result; -} - -FNA3D_Renderbuffer* FNA3D_GenDepthStencilRenderbuffer( - FNA3D_Device *device, - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Renderbuffer *result; - if (device == NULL) - { - return NULL; - } - result = device->GenDepthStencilRenderbuffer( - device->driverData, - width, - height, - format, - multiSampleCount - ); - TRACE_GENDEPTHSTENCILRENDERBUFFER - return result; -} - -void FNA3D_AddDisposeRenderbuffer( - FNA3D_Device *device, - FNA3D_Renderbuffer *renderbuffer -) { - TRACE_ADDDISPOSERENDERBUFFER - if (device == NULL || renderbuffer == NULL) - { - return; - } - device->AddDisposeRenderbuffer( - device->driverData, - renderbuffer - ); -} - -/* Vertex Buffers */ - -FNA3D_Buffer* FNA3D_GenVertexBuffer( - FNA3D_Device *device, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Buffer *result; - if (device == NULL) - { - return NULL; - } - result = device->GenVertexBuffer( - device->driverData, - dynamic, - usage, - sizeInBytes - ); - TRACE_GENVERTEXBUFFER - return result; -} - -void FNA3D_AddDisposeVertexBuffer( - FNA3D_Device *device, - FNA3D_Buffer *buffer -) { - TRACE_ADDDISPOSEVERTEXBUFFER - if (device == NULL || buffer == NULL) - { - return; - } - device->AddDisposeVertexBuffer(device->driverData, buffer); -} - -void FNA3D_SetVertexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -) { - TRACE_SETVERTEXBUFFERDATA - if (device == NULL) - { - return; - } - device->SetVertexBufferData( - device->driverData, - buffer, - offsetInBytes, - data, - elementCount, - elementSizeInBytes, - vertexStride, - options - ); -} - -void FNA3D_GetVertexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -) { - TRACE_GETVERTEXBUFFERDATA - if (device == NULL) - { - return; - } - device->GetVertexBufferData( - device->driverData, - buffer, - offsetInBytes, - data, - elementCount, - elementSizeInBytes, - vertexStride - ); -} - -/* Index Buffers */ - -FNA3D_Buffer* FNA3D_GenIndexBuffer( - FNA3D_Device *device, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Buffer *result; - if (device == NULL) - { - return NULL; - } - result = device->GenIndexBuffer( - device->driverData, - dynamic, - usage, - sizeInBytes - ); - TRACE_GENINDEXBUFFER - return result; -} - -void FNA3D_AddDisposeIndexBuffer( - FNA3D_Device *device, - FNA3D_Buffer *buffer -) { - TRACE_ADDDISPOSEINDEXBUFFER - if (device == NULL || buffer == NULL) - { - return; - } - device->AddDisposeIndexBuffer(device->driverData, buffer); -} - -void FNA3D_SetIndexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -) { - TRACE_SETINDEXBUFFERDATA - if (device == NULL) - { - return; - } - device->SetIndexBufferData( - device->driverData, - buffer, - offsetInBytes, - data, - dataLength, - options - ); -} - -void FNA3D_GetIndexBufferData( - FNA3D_Device *device, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength -) { - TRACE_GETINDEXBUFFERDATA - if (device == NULL) - { - return; - } - device->GetIndexBufferData( - device->driverData, - buffer, - offsetInBytes, - data, - dataLength - ); -} - -/* Effects */ - -void FNA3D_CreateEffect( - FNA3D_Device *device, - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - if (device == NULL) - { - *effect = NULL; - *effectData = NULL; - return; - } - device->CreateEffect( - device->driverData, - effectCode, - effectCodeLength, - effect, - effectData - ); - TRACE_CREATEEFFECT -} - -void FNA3D_CloneEffect( - FNA3D_Device *device, - FNA3D_Effect *cloneSource, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - if (device == NULL) - { - *effect = NULL; - *effectData = NULL; - return; - } - device->CloneEffect( - device->driverData, - cloneSource, - effect, - effectData - ); - TRACE_CLONEEFFECT -} - -void FNA3D_AddDisposeEffect( - FNA3D_Device *device, - FNA3D_Effect *effect -) { - TRACE_ADDDISPOSEEFFECT - if (device == NULL || effect == NULL) - { - return; - } - device->AddDisposeEffect(device->driverData, effect); -} - -void FNA3D_SetEffectTechnique( - FNA3D_Device *device, - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -) { - TRACE_SETEFFECTTECHNIQUE - if (device == NULL) - { - return; - } - device->SetEffectTechnique(device->driverData, effect, technique); -} - -void FNA3D_ApplyEffect( - FNA3D_Device *device, - FNA3D_Effect *effect, - uint32_t pass, - MOJOSHADER_effectStateChanges *stateChanges -) { - TRACE_APPLYEFFECT - if (device == NULL) - { - return; - } - device->ApplyEffect( - device->driverData, - effect, - pass, - stateChanges - ); -} - -void FNA3D_BeginPassRestore( - FNA3D_Device *device, - FNA3D_Effect *effect, - MOJOSHADER_effectStateChanges *stateChanges -) { - TRACE_BEGINPASSRESTORE - if (device == NULL) - { - return; - } - device->BeginPassRestore( - device->driverData, - effect, - stateChanges - ); -} - -void FNA3D_EndPassRestore( - FNA3D_Device *device, - FNA3D_Effect *effect -) { - TRACE_ENDPASSRESTORE - if (device == NULL) - { - return; - } - device->EndPassRestore(device->driverData, effect); -} - -/* Queries */ - -FNA3D_Query* FNA3D_CreateQuery(FNA3D_Device *device) -{ - /* We're stuck tracing _after_ the call instead of _before_, because - * of threading issues. This can cause timing issues! - */ - FNA3D_Query *result; - if (device == NULL) - { - return NULL; - } - result = device->CreateQuery(device->driverData); - TRACE_CREATEQUERY - return result; -} - -void FNA3D_AddDisposeQuery(FNA3D_Device *device, FNA3D_Query *query) -{ - TRACE_ADDDISPOSEQUERY - if (device == NULL || query == NULL) - { - return; - } - device->AddDisposeQuery(device->driverData, query); -} - -void FNA3D_QueryBegin(FNA3D_Device *device, FNA3D_Query *query) -{ - TRACE_QUERYBEGIN - if (device == NULL) - { - return; - } - device->QueryBegin(device->driverData, query); -} - -void FNA3D_QueryEnd(FNA3D_Device *device, FNA3D_Query *query) -{ - TRACE_QUERYEND - if (device == NULL) - { - return; - } - device->QueryEnd(device->driverData, query); -} - -uint8_t FNA3D_QueryComplete(FNA3D_Device *device, FNA3D_Query *query) -{ - /* Not traced! */ - if (device == NULL) - { - return 1; - } - return device->QueryComplete(device->driverData, query); -} - -int32_t FNA3D_QueryPixelCount( - FNA3D_Device *device, - FNA3D_Query *query -) { - TRACE_QUERYPIXELCOUNT - if (device == NULL) - { - return 0; - } - return device->QueryPixelCount(device->driverData, query); -} - -/* Feature Queries */ - -uint8_t FNA3D_SupportsDXT1(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->SupportsDXT1(device->driverData); -} - -uint8_t FNA3D_SupportsS3TC(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->SupportsS3TC(device->driverData); -} - -uint8_t FNA3D_SupportsBC7(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->SupportsBC7(device->driverData); -} - -uint8_t FNA3D_SupportsHardwareInstancing(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->SupportsHardwareInstancing(device->driverData); -} - -uint8_t FNA3D_SupportsNoOverwrite(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->SupportsNoOverwrite(device->driverData); -} - - -uint8_t FNA3D_SupportsSRGBRenderTargets(FNA3D_Device *device) -{ - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->SupportsSRGBRenderTargets(device->driverData); -} - -void FNA3D_GetMaxTextureSlots( - FNA3D_Device *device, - int32_t *textures, - int32_t *vertexTextures -) { - /* Not traced! */ - if (device == NULL) - { - return; - } - device->GetMaxTextureSlots( - device->driverData, - textures, - vertexTextures - ); -} - -int32_t FNA3D_GetMaxMultiSampleCount( - FNA3D_Device *device, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount -) { - /* Not traced! */ - if (device == NULL) - { - return 0; - } - return device->GetMaxMultiSampleCount( - device->driverData, - format, - multiSampleCount - ); -} - -/* Debugging */ - -void FNA3D_SetStringMarker(FNA3D_Device *device, const char *text) -{ - TRACE_SETSTRINGMARKER - if (device == NULL) - { - return; - } - device->SetStringMarker(device->driverData, text); -} - -/* External Interop */ - -void FNA3D_GetSysRendererEXT( - FNA3D_Device *device, - FNA3D_SysRendererEXT *sysrenderer -) { -#ifdef FNA3D_TRACING - SDL_assert(0 && "Tracing does not support SysRendererEXT!"); -#endif - if ( device == NULL || - sysrenderer == NULL || - sysrenderer->version != FNA3D_SYSRENDERER_VERSION_EXT ) - { - return; - } - device->GetSysRenderer( - device->driverData, - sysrenderer - ); -} - -FNA3D_Texture* FNA3D_CreateSysTextureEXT( - FNA3D_Device *device, - FNA3D_SysTextureEXT *systexture -) { -#ifdef FNA3D_TRACING - SDL_assert(0 && "Tracing does not support SysTextureEXT!"); -#endif - if ( device == NULL || - systexture == NULL || - systexture->version != FNA3D_SYSRENDERER_VERSION_EXT ) - { - return NULL; - } - return device->CreateSysTexture( - device->driverData, - systexture - ); -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver.h deleted file mode 100644 index 70bbc43d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver.h +++ /dev/null @@ -1,828 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FNA3D_DRIVER_H -#define FNA3D_DRIVER_H - -#include "mojoshader.h" -#include "FNA3D.h" -#include "FNA3D_SysRenderer.h" - -/* Windows/Visual Studio cruft */ -#ifdef _WIN32 -#define inline __inline -#endif - -/* Logging */ - -extern void FNA3D_LogInfo(const char *fmt, ...); -extern void FNA3D_LogWarn(const char *fmt, ...); -extern void FNA3D_LogError(const char *fmt, ...); - -/* Internal Helper Utilities */ - -#define LinkedList_Add(start, toAdd, curr) \ - toAdd->next = NULL; \ - if (start == NULL) \ - { \ - start = toAdd; \ - } \ - else \ - { \ - curr = start; \ - while (curr->next != NULL) \ - { \ - curr = curr->next; \ - } \ - curr->next = toAdd; \ - } - -/* This macro does NOT destroy `toRemove`! - * It only removes the element from the list. - */ -#define LinkedList_Remove(start, toRemove, curr, prev) \ - curr = start; \ - while (curr != NULL) \ - { \ - if (curr == toRemove) \ - { \ - if (curr == start) \ - { \ - start = curr->next; \ - } \ - else \ - { \ - prev->next = curr->next; \ - } \ - break; \ - } \ - prev = curr; \ - curr = curr->next; \ - } \ - if (curr == NULL) \ - { \ - SDL_assert(0 && "LinkedList element not found!"); \ - } \ - -static inline int32_t Texture_GetBlockSize( - FNA3D_SurfaceFormat format -) { - switch (format) - { - case FNA3D_SURFACEFORMAT_DXT1: - case FNA3D_SURFACEFORMAT_DXT3: - case FNA3D_SURFACEFORMAT_DXT5: - case FNA3D_SURFACEFORMAT_DXT5SRGB_EXT: - case FNA3D_SURFACEFORMAT_BC7_EXT: - case FNA3D_SURFACEFORMAT_BC7SRGB_EXT: - return 4; - case FNA3D_SURFACEFORMAT_ALPHA8: - case FNA3D_SURFACEFORMAT_BGR565: - case FNA3D_SURFACEFORMAT_BGRA4444: - case FNA3D_SURFACEFORMAT_BGRA5551: - case FNA3D_SURFACEFORMAT_HALFSINGLE: - case FNA3D_SURFACEFORMAT_NORMALIZEDBYTE2: - case FNA3D_SURFACEFORMAT_COLOR: - case FNA3D_SURFACEFORMAT_SINGLE: - case FNA3D_SURFACEFORMAT_RG32: - case FNA3D_SURFACEFORMAT_HALFVECTOR2: - case FNA3D_SURFACEFORMAT_NORMALIZEDBYTE4: - case FNA3D_SURFACEFORMAT_RGBA1010102: - case FNA3D_SURFACEFORMAT_COLORBGRA_EXT: - case FNA3D_SURFACEFORMAT_COLORSRGB_EXT: - case FNA3D_SURFACEFORMAT_HALFVECTOR4: - case FNA3D_SURFACEFORMAT_RGBA64: - case FNA3D_SURFACEFORMAT_VECTOR2: - case FNA3D_SURFACEFORMAT_HDRBLENDABLE: - case FNA3D_SURFACEFORMAT_VECTOR4: - return 1; - default: - FNA3D_LogError( - "Unrecognized SurfaceFormat!" - ); - return 0; - } -} - -static inline int32_t Texture_GetFormatSize( - FNA3D_SurfaceFormat format -) { - switch (format) - { - case FNA3D_SURFACEFORMAT_DXT1: - return 8; - case FNA3D_SURFACEFORMAT_DXT3: - case FNA3D_SURFACEFORMAT_DXT5: - case FNA3D_SURFACEFORMAT_DXT5SRGB_EXT: - case FNA3D_SURFACEFORMAT_BC7_EXT: - case FNA3D_SURFACEFORMAT_BC7SRGB_EXT: - return 16; - case FNA3D_SURFACEFORMAT_ALPHA8: - return 1; - case FNA3D_SURFACEFORMAT_BGR565: - case FNA3D_SURFACEFORMAT_BGRA4444: - case FNA3D_SURFACEFORMAT_BGRA5551: - case FNA3D_SURFACEFORMAT_HALFSINGLE: - case FNA3D_SURFACEFORMAT_NORMALIZEDBYTE2: - return 2; - case FNA3D_SURFACEFORMAT_COLOR: - case FNA3D_SURFACEFORMAT_SINGLE: - case FNA3D_SURFACEFORMAT_RG32: - case FNA3D_SURFACEFORMAT_HALFVECTOR2: - case FNA3D_SURFACEFORMAT_NORMALIZEDBYTE4: - case FNA3D_SURFACEFORMAT_RGBA1010102: - case FNA3D_SURFACEFORMAT_COLORBGRA_EXT: - case FNA3D_SURFACEFORMAT_COLORSRGB_EXT: - return 4; - case FNA3D_SURFACEFORMAT_HALFVECTOR4: - case FNA3D_SURFACEFORMAT_RGBA64: - case FNA3D_SURFACEFORMAT_VECTOR2: - case FNA3D_SURFACEFORMAT_HDRBLENDABLE: - return 8; - case FNA3D_SURFACEFORMAT_VECTOR4: - return 16; - default: - FNA3D_LogError( - "Unrecognized SurfaceFormat!" - ); - return 0; - } -} - -static inline int32_t PrimitiveVerts( - FNA3D_PrimitiveType primitiveType, - int32_t primitiveCount -) { - switch (primitiveType) - { - case FNA3D_PRIMITIVETYPE_TRIANGLELIST: - return primitiveCount * 3; - case FNA3D_PRIMITIVETYPE_TRIANGLESTRIP: - return primitiveCount + 2; - case FNA3D_PRIMITIVETYPE_LINELIST: - return primitiveCount * 2; - case FNA3D_PRIMITIVETYPE_LINESTRIP: - return primitiveCount + 1; - case FNA3D_PRIMITIVETYPE_POINTLIST_EXT: - return primitiveCount; - default: - FNA3D_LogError( - "Unrecognized primitive type!" - ); - return 0; - } -} - -static inline MOJOSHADER_usage VertexAttribUsage( - FNA3D_VertexElementUsage usage -) { - switch (usage) - { - case FNA3D_VERTEXELEMENTUSAGE_POSITION: - return MOJOSHADER_USAGE_POSITION; - case FNA3D_VERTEXELEMENTUSAGE_COLOR: - return MOJOSHADER_USAGE_COLOR; - case FNA3D_VERTEXELEMENTUSAGE_TEXTURECOORDINATE: - return MOJOSHADER_USAGE_TEXCOORD; - case FNA3D_VERTEXELEMENTUSAGE_NORMAL: - return MOJOSHADER_USAGE_NORMAL; - case FNA3D_VERTEXELEMENTUSAGE_BINORMAL: - return MOJOSHADER_USAGE_BINORMAL; - case FNA3D_VERTEXELEMENTUSAGE_TANGENT: - return MOJOSHADER_USAGE_TANGENT; - case FNA3D_VERTEXELEMENTUSAGE_BLENDINDICES: - return MOJOSHADER_USAGE_BLENDINDICES; - case FNA3D_VERTEXELEMENTUSAGE_BLENDWEIGHT: - return MOJOSHADER_USAGE_BLENDWEIGHT; - case FNA3D_VERTEXELEMENTUSAGE_FOG: - return MOJOSHADER_USAGE_FOG; - case FNA3D_VERTEXELEMENTUSAGE_POINTSIZE: - return MOJOSHADER_USAGE_POINTSIZE; - case FNA3D_VERTEXELEMENTUSAGE_SAMPLE: - return MOJOSHADER_USAGE_SAMPLE; - case FNA3D_VERTEXELEMENTUSAGE_TESSELATEFACTOR: - return MOJOSHADER_USAGE_TESSFACTOR; - default: - FNA3D_LogError( - "Unrecognized VertexElementUsage!" - ); - return (MOJOSHADER_usage) 0; - } -} - -static inline int32_t IndexSize(FNA3D_IndexElementSize size) -{ - return (size == FNA3D_INDEXELEMENTSIZE_16BIT) ? 2 : 4; -} - -static inline int32_t BytesPerRow( - int32_t width, - FNA3D_SurfaceFormat format -) { - int32_t blocksPerRow = width; - int32_t blockSize = Texture_GetBlockSize(format); - - if (blockSize > 1) - { - blocksPerRow = (width + blockSize - 1) / blockSize; - } - - return blocksPerRow * Texture_GetFormatSize(format); -} - -static inline int32_t BytesPerImage( - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format -) { - int32_t blocksPerRow = width; - int32_t blocksPerColumn = height; - int32_t blockSize = Texture_GetBlockSize(format); - - if (blockSize > 1) - { - blocksPerRow = (width + blockSize - 1) / blockSize; - blocksPerColumn = (height + blockSize - 1) / blockSize; - } - - return blocksPerRow * blocksPerColumn * Texture_GetFormatSize(format); -} - -/* XNA GraphicsDevice Limits */ - -#define MAX_TEXTURE_SAMPLERS 16 -#define MAX_VERTEXTEXTURE_SAMPLERS 4 -#define MAX_TOTAL_SAMPLERS (MAX_TEXTURE_SAMPLERS + MAX_VERTEXTEXTURE_SAMPLERS) - -#define MAX_VERTEX_ATTRIBUTES 16 -#define MAX_BOUND_VERTEX_BUFFERS 16 - -#define MAX_RENDERTARGET_BINDINGS 4 - -/* FNA3D_Device Definition */ - -typedef struct FNA3D_Renderer FNA3D_Renderer; - -struct FNA3D_Device -{ - /* Quit */ - - void (*DestroyDevice)(FNA3D_Device *device); - - /* Presentation */ - - void (*SwapBuffers)( - FNA3D_Renderer *driverData, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle - ); - - /* Drawing */ - - void (*Clear)( - FNA3D_Renderer *driverData, - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil - ); - - void (*DrawIndexedPrimitives)( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize - ); - void (*DrawInstancedPrimitives)( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize - ); - void (*DrawPrimitives)( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount - ); - - /* Mutable Render States */ - - void (*SetViewport)(FNA3D_Renderer *driverData, FNA3D_Viewport *viewport); - void (*SetScissorRect)(FNA3D_Renderer *driverData, FNA3D_Rect *scissor); - - void (*GetBlendFactor)( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor - ); - void (*SetBlendFactor)( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor - ); - - int32_t (*GetMultiSampleMask)(FNA3D_Renderer *driverData); - void (*SetMultiSampleMask)(FNA3D_Renderer *driverData, int32_t mask); - - int32_t (*GetReferenceStencil)(FNA3D_Renderer *driverData); - void (*SetReferenceStencil)(FNA3D_Renderer *driverData, int32_t ref); - - /* Immutable Render States */ - - void (*SetBlendState)( - FNA3D_Renderer *driverData, - FNA3D_BlendState *blendState - ); - void (*SetDepthStencilState)( - FNA3D_Renderer *driverData, - FNA3D_DepthStencilState *depthStencilState - ); - void (*ApplyRasterizerState)( - FNA3D_Renderer *driverData, - FNA3D_RasterizerState *rasterizerState - ); - void (*VerifySampler)( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler - ); - void (*VerifyVertexSampler)( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler - ); - - void (*ApplyVertexBufferBindings)( - FNA3D_Renderer *driverData, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex - ); - - /* Render Targets */ - - void (*SetRenderTargets)( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents - ); - - void (*ResolveTarget)( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *target - ); - - /* Backbuffer Functions */ - - void (*ResetBackbuffer)( - FNA3D_Renderer *driverData, - FNA3D_PresentationParameters *presentationParameters - ); - - void (*ReadBackbuffer)( - FNA3D_Renderer *driverData, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - void* data, - int32_t dataLength - ); - - void (*GetBackbufferSize)( - FNA3D_Renderer *driverData, - int32_t *w, - int32_t *h - ); - - FNA3D_SurfaceFormat (*GetBackbufferSurfaceFormat)(FNA3D_Renderer *driverData); - - FNA3D_DepthFormat (*GetBackbufferDepthFormat)(FNA3D_Renderer *driverData); - - int32_t (*GetBackbufferMultiSampleCount)(FNA3D_Renderer *driverData); - - /* Textures */ - - FNA3D_Texture* (*CreateTexture2D)( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget - ); - FNA3D_Texture* (*CreateTexture3D)( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount - ); - FNA3D_Texture* (*CreateTextureCube)( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget - ); - void (*AddDisposeTexture)( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture - ); - void (*SetTextureData2D)( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength - ); - void (*SetTextureData3D)( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength - ); - void (*SetTextureDataCube)( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength - ); - void (*SetTextureDataYUV)( - FNA3D_Renderer *driverData, - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength - ); - void (*GetTextureData2D)( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength - ); - void (*GetTextureData3D)( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength - ); - void (*GetTextureDataCube)( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength - ); - - /* Renderbuffers */ - - FNA3D_Renderbuffer* (*GenColorRenderbuffer)( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture - ); - FNA3D_Renderbuffer* (*GenDepthStencilRenderbuffer)( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount - ); - void (*AddDisposeRenderbuffer)( - FNA3D_Renderer *driverData, - FNA3D_Renderbuffer *renderbuffer - ); - - /* Vertex Buffers */ - - FNA3D_Buffer* (*GenVertexBuffer)( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes - ); - void (*AddDisposeVertexBuffer)( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer - ); - void (*SetVertexBufferData)( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options - ); - void (*GetVertexBufferData)( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride - ); - - /* Index Buffers */ - - FNA3D_Buffer* (*GenIndexBuffer)( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes - ); - void (*AddDisposeIndexBuffer)( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer - ); - void (*SetIndexBufferData)( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options - ); - void (*GetIndexBufferData)( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength - ); - - /* Effects */ - - void (*CreateEffect)( - FNA3D_Renderer *driverData, - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect **effect, - MOJOSHADER_effect **result - ); - void (*CloneEffect)( - FNA3D_Renderer *driverData, - FNA3D_Effect *cloneSource, - FNA3D_Effect **effect, - MOJOSHADER_effect **result - ); - void (*AddDisposeEffect)( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect - ); - void (*SetEffectTechnique)( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique - ); - void (*ApplyEffect)( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - uint32_t pass, - MOJOSHADER_effectStateChanges *stateChanges - ); - void (*BeginPassRestore)( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectStateChanges *stateChanges - ); - void (*EndPassRestore)( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect - ); - - /* Queries */ - - FNA3D_Query* (*CreateQuery)(FNA3D_Renderer *driverData); - void (*AddDisposeQuery)(FNA3D_Renderer *driverData, FNA3D_Query *query); - void (*QueryBegin)(FNA3D_Renderer *driverData, FNA3D_Query *query); - void (*QueryEnd)(FNA3D_Renderer *driverData, FNA3D_Query *query); - uint8_t (*QueryComplete)(FNA3D_Renderer *driverData, FNA3D_Query *query); - int32_t (*QueryPixelCount)( - FNA3D_Renderer *driverData, - FNA3D_Query *query - ); - - /* Feature Queries */ - - uint8_t (*SupportsDXT1)(FNA3D_Renderer *driverData); - uint8_t (*SupportsS3TC)(FNA3D_Renderer *driverData); - uint8_t (*SupportsBC7)(FNA3D_Renderer *driverData); - uint8_t (*SupportsHardwareInstancing)(FNA3D_Renderer *driverData); - uint8_t (*SupportsNoOverwrite)(FNA3D_Renderer *driverData); - uint8_t (*SupportsSRGBRenderTargets)(FNA3D_Renderer *driverData); - - void (*GetMaxTextureSlots)( - FNA3D_Renderer *driverData, - int32_t *textures, - int32_t *vertexTextures - ); - int32_t (*GetMaxMultiSampleCount)( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount - ); - - /* Debugging */ - - void (*SetStringMarker)(FNA3D_Renderer *driverData, const char *text); - - /* External Interop */ - - void (*GetSysRenderer)( - FNA3D_Renderer *driverData, - FNA3D_SysRendererEXT *renderer - ); - - FNA3D_Texture* (*CreateSysTexture)( - FNA3D_Renderer *driverData, - FNA3D_SysTextureEXT *externalTextureInfo - ); - - /* Opaque pointer for the Driver */ - FNA3D_Renderer *driverData; -}; - -#define ASSIGN_DRIVER_FUNC(func, name) \ - result->func = name##_##func; -#define ASSIGN_DRIVER(name) \ - ASSIGN_DRIVER_FUNC(DestroyDevice, name) \ - ASSIGN_DRIVER_FUNC(SwapBuffers, name) \ - ASSIGN_DRIVER_FUNC(Clear, name) \ - ASSIGN_DRIVER_FUNC(DrawIndexedPrimitives, name) \ - ASSIGN_DRIVER_FUNC(DrawInstancedPrimitives, name) \ - ASSIGN_DRIVER_FUNC(DrawPrimitives, name) \ - ASSIGN_DRIVER_FUNC(SetViewport, name) \ - ASSIGN_DRIVER_FUNC(SetScissorRect, name) \ - ASSIGN_DRIVER_FUNC(GetBlendFactor, name) \ - ASSIGN_DRIVER_FUNC(SetBlendFactor, name) \ - ASSIGN_DRIVER_FUNC(GetMultiSampleMask, name) \ - ASSIGN_DRIVER_FUNC(SetMultiSampleMask, name) \ - ASSIGN_DRIVER_FUNC(GetReferenceStencil, name) \ - ASSIGN_DRIVER_FUNC(SetReferenceStencil, name) \ - ASSIGN_DRIVER_FUNC(SetBlendState, name) \ - ASSIGN_DRIVER_FUNC(SetDepthStencilState, name) \ - ASSIGN_DRIVER_FUNC(ApplyRasterizerState, name) \ - ASSIGN_DRIVER_FUNC(VerifySampler, name) \ - ASSIGN_DRIVER_FUNC(VerifyVertexSampler, name) \ - ASSIGN_DRIVER_FUNC(ApplyVertexBufferBindings, name) \ - ASSIGN_DRIVER_FUNC(SetRenderTargets, name) \ - ASSIGN_DRIVER_FUNC(ResolveTarget, name) \ - ASSIGN_DRIVER_FUNC(ResetBackbuffer, name) \ - ASSIGN_DRIVER_FUNC(ReadBackbuffer, name) \ - ASSIGN_DRIVER_FUNC(GetBackbufferSize, name) \ - ASSIGN_DRIVER_FUNC(GetBackbufferSurfaceFormat, name) \ - ASSIGN_DRIVER_FUNC(GetBackbufferDepthFormat, name) \ - ASSIGN_DRIVER_FUNC(GetBackbufferMultiSampleCount, name) \ - ASSIGN_DRIVER_FUNC(CreateTexture2D, name) \ - ASSIGN_DRIVER_FUNC(CreateTexture3D, name) \ - ASSIGN_DRIVER_FUNC(CreateTextureCube, name) \ - ASSIGN_DRIVER_FUNC(AddDisposeTexture, name) \ - ASSIGN_DRIVER_FUNC(SetTextureData2D, name) \ - ASSIGN_DRIVER_FUNC(SetTextureData3D, name) \ - ASSIGN_DRIVER_FUNC(SetTextureDataCube, name) \ - ASSIGN_DRIVER_FUNC(SetTextureDataYUV, name) \ - ASSIGN_DRIVER_FUNC(GetTextureData2D, name) \ - ASSIGN_DRIVER_FUNC(GetTextureData3D, name) \ - ASSIGN_DRIVER_FUNC(GetTextureDataCube, name) \ - ASSIGN_DRIVER_FUNC(GenColorRenderbuffer, name) \ - ASSIGN_DRIVER_FUNC(GenDepthStencilRenderbuffer, name) \ - ASSIGN_DRIVER_FUNC(AddDisposeRenderbuffer, name) \ - ASSIGN_DRIVER_FUNC(GenVertexBuffer, name) \ - ASSIGN_DRIVER_FUNC(GenIndexBuffer, name) \ - ASSIGN_DRIVER_FUNC(AddDisposeVertexBuffer, name) \ - ASSIGN_DRIVER_FUNC(SetVertexBufferData, name) \ - ASSIGN_DRIVER_FUNC(GetVertexBufferData, name) \ - ASSIGN_DRIVER_FUNC(AddDisposeIndexBuffer, name) \ - ASSIGN_DRIVER_FUNC(SetIndexBufferData, name) \ - ASSIGN_DRIVER_FUNC(GetIndexBufferData, name) \ - ASSIGN_DRIVER_FUNC(CreateEffect, name) \ - ASSIGN_DRIVER_FUNC(CloneEffect, name) \ - ASSIGN_DRIVER_FUNC(AddDisposeEffect, name) \ - ASSIGN_DRIVER_FUNC(SetEffectTechnique, name) \ - ASSIGN_DRIVER_FUNC(ApplyEffect, name) \ - ASSIGN_DRIVER_FUNC(BeginPassRestore, name) \ - ASSIGN_DRIVER_FUNC(EndPassRestore, name) \ - ASSIGN_DRIVER_FUNC(CreateQuery, name) \ - ASSIGN_DRIVER_FUNC(AddDisposeQuery, name) \ - ASSIGN_DRIVER_FUNC(QueryBegin, name) \ - ASSIGN_DRIVER_FUNC(QueryEnd, name) \ - ASSIGN_DRIVER_FUNC(QueryComplete, name) \ - ASSIGN_DRIVER_FUNC(QueryPixelCount, name) \ - ASSIGN_DRIVER_FUNC(SupportsDXT1, name) \ - ASSIGN_DRIVER_FUNC(SupportsS3TC, name) \ - ASSIGN_DRIVER_FUNC(SupportsBC7, name) \ - ASSIGN_DRIVER_FUNC(SupportsHardwareInstancing, name) \ - ASSIGN_DRIVER_FUNC(SupportsNoOverwrite, name) \ - ASSIGN_DRIVER_FUNC(SupportsSRGBRenderTargets, name) \ - ASSIGN_DRIVER_FUNC(GetMaxTextureSlots, name) \ - ASSIGN_DRIVER_FUNC(GetMaxMultiSampleCount, name) \ - ASSIGN_DRIVER_FUNC(SetStringMarker, name) \ - ASSIGN_DRIVER_FUNC(GetSysRenderer, name) \ - ASSIGN_DRIVER_FUNC(CreateSysTexture, name) - -typedef struct FNA3D_Driver -{ - const char *Name; - uint8_t (*PrepareWindowAttributes)(uint32_t *flags); - void (*GetDrawableSize)(void* window, int32_t *w, int32_t *h); - FNA3D_Device* (*CreateDevice)( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode - ); -} FNA3D_Driver; - -extern FNA3D_Driver VulkanDriver; -extern FNA3D_Driver D3D11Driver; -extern FNA3D_Driver OpenGLDriver; -extern FNA3D_Driver GNMXDriver; - -#endif /* FNA3D_DRIVER_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11.c deleted file mode 100644 index 87aa2cf2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11.c +++ /dev/null @@ -1,5724 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#if FNA3D_DRIVER_D3D11 - -#include "FNA3D_Driver.h" -#include "FNA3D_PipelineCache.h" -#include "FNA3D_Driver_D3D11.h" -#include "FNA3D_Driver_D3D11_shaders.h" - -#include -#ifdef FNA3D_DXVK_NATIVE -#include -#else -#include -#endif /* FNA3D_DXVK_NATIVE */ - -/* D3D11 Libraries */ - -#if defined(_WIN32) -#define D3D11_DLL "d3d11.dll" -#define DXGI_DLL "dxgi.dll" -#elif defined(__APPLE__) -#define D3D11_DLL "libdxvk_d3d11.dylib" -#define DXGI_DLL "libdxvk_dxgi.dylib" -#else -#define D3D11_DLL "libdxvk_d3d11.so" -#define DXGI_DLL "libdxvk_dxgi.so" -#endif - -#ifdef __WINRT__ -#include -#include -#else -#include -#endif - -#define ERROR_CHECK(msg) \ - if (FAILED(res)) \ - { \ - D3D11_INTERNAL_LogError(renderer->device, msg, res); \ - } -#define ERROR_CHECK_RETURN(msg, ret) \ - if (FAILED(res)) \ - { \ - D3D11_INTERNAL_LogError(renderer->device, msg, res); \ - return ret; \ - } -#define ERROR_CHECK_UNLOCK_RETURN(msg, ret) \ - if (FAILED(res)) \ - { \ - D3D11_INTERNAL_LogError(renderer->device, msg, res); \ - SDL_UnlockMutex(renderer->ctxLock); \ - return ret; \ - } - -/* Internal Structures */ - -typedef struct D3D11Texture /* Cast FNA3D_Texture* to this! */ -{ - /* D3D Handles */ - ID3D11Resource *handle; /* ID3D11Texture2D or ID3D11Texture3D */ - ID3D11ShaderResourceView *shaderView; - - /* Basic Info */ - int32_t levelCount; - uint8_t isRenderTarget; - FNA3D_SurfaceFormat format; - - /* Dimensions */ - uint8_t rtType; - FNA3DNAMELESS union - { - struct - { - int32_t width; - int32_t height; - ID3D11RenderTargetView *rtView; - } twod; - struct - { - int32_t width; - int32_t height; - int32_t depth; - } threed; - struct - { - int32_t size; - ID3D11RenderTargetView **rtViews; - } cube; - }; - ID3D11Resource *staging; /* ID3D11Texture2D or ID3D11Texture3D */ -} D3D11Texture; - -static D3D11Texture NullTexture = -{ - NULL, - NULL, - 1, - 0, - FNA3D_SURFACEFORMAT_COLOR, - 0, - { - { 0, 0 } - }, - NULL -}; - -typedef struct D3D11Renderbuffer /* Cast FNA3D_Renderbuffer* to this! */ -{ - ID3D11Texture2D *handle; - int32_t multiSampleCount; - - #define RENDERBUFFER_COLOR 0 - #define RENDERBUFFER_DEPTH 1 - uint8_t type; - FNA3DNAMELESS union - { - struct - { - FNA3D_SurfaceFormat format; - ID3D11RenderTargetView *rtView; - } color; - struct - { - FNA3D_DepthFormat format; - ID3D11DepthStencilView *dsView; - } depth; - }; -} D3D11Renderbuffer; - -typedef struct D3D11Buffer /* Cast FNA3D_Buffer* to this! */ -{ - ID3D11Buffer *handle; - uint8_t dynamic; - int32_t size; -} D3D11Buffer; - -typedef struct D3D11Effect /* Cast FNA3D_Effect* to this! */ -{ - MOJOSHADER_effect *effect; -} D3D11Effect; - -typedef struct D3D11Query /* Cast FNA3D_Query* to this! */ -{ - ID3D11Query *handle; -} D3D11Query; - -typedef struct D3D11Backbuffer -{ - #define BACKBUFFER_TYPE_NULL 0 - #define BACKBUFFER_TYPE_D3D11 1 - uint8_t type; - - int32_t width; - int32_t height; - FNA3D_DepthFormat depthFormat; - int32_t multiSampleCount; - ID3D11Texture2D* depthStencilBuffer; - ID3D11DepthStencilView* depthStencilView; - ID3D11Texture2D* stagingBuffer; - struct - { - /* Color */ - FNA3D_SurfaceFormat surfaceFormat; - ID3D11Texture2D *colorBuffer; - ID3D11RenderTargetView *colorView; - ID3D11ShaderResourceView *shaderView; - - /* Multisample */ - ID3D11Texture2D *resolveBuffer; - } d3d11; -} D3D11Backbuffer; - -typedef struct D3D11SwapchainData -{ - IDXGISwapChain *swapchain; - ID3D11RenderTargetView *swapchainRTView; - void *windowHandle; -} D3D11SwapchainData; - -#define WINDOW_SWAPCHAIN_DATA "FNA3D_D3D11Swapchain" - -typedef struct D3D11Renderer /* Cast FNA3D_Renderer* to this! */ -{ - /* Persistent D3D11 Objects */ - ID3D11Device *device; - ID3D11DeviceContext *context; - void* d3d11_dll; - void* dxgi_dll; - void* factory; /* IDXGIFactory1 or IDXGIFactory2 */ - IDXGIAdapter1 *adapter; - ID3DUserDefinedAnnotation *annotation; - SDL_mutex *ctxLock; - SDL_iconv_t iconv; - - /* Window surfaces */ - D3D11SwapchainData** swapchainDatas; - int32_t swapchainDataCount; - int32_t swapchainDataCapacity; - - /* The Faux-Backbuffer */ - D3D11Backbuffer *backbuffer; - uint8_t backbufferSizeChanged; - FNA3D_Rect prevSrcRect; - FNA3D_Rect prevDstRect; - struct - { - ID3D11VertexShader* vertexShader; - ID3D11PixelShader* pixelShader; - ID3D11SamplerState* samplerState; - ID3D11Buffer* vertexBuffer; - ID3D11Buffer* indexBuffer; - ID3D11InputLayout* inputLayout; - ID3D11RasterizerState* rasterizerState; - ID3D11BlendState* blendState; - } fauxBackbufferResources; - - /* Capabilities */ - uint8_t debugMode; - uint32_t supportsDxt1; - uint32_t supportsS3tc; - uint32_t supportsBc7; - uint8_t supportsSRGBRenderTarget; - int32_t maxMultiSampleCount; - D3D_FEATURE_LEVEL featureLevel; - - /* Presentation */ - uint8_t syncInterval; - - /* Blend State */ - ID3D11BlendState *blendState; - FNA3D_Color blendFactor; - int32_t multiSampleMask; - - /* Depth Stencil State */ - ID3D11DepthStencilState *depthStencilState; - int32_t stencilRef; - - /* Rasterizer State */ - FNA3D_Viewport viewport; - FNA3D_Rect scissorRect; - ID3D11RasterizerState *rasterizerState; - - /* Textures */ - D3D11Texture *textures[MAX_TOTAL_SAMPLERS]; - ID3D11SamplerState *samplers[MAX_TOTAL_SAMPLERS]; - - /* Input Assembly */ - ID3D11InputLayout *inputLayout; - FNA3D_PrimitiveType topology; - ID3D11Buffer *vertexBuffers[MAX_BOUND_VERTEX_BUFFERS]; - uint32_t vertexBufferOffsets[MAX_BOUND_VERTEX_BUFFERS]; - uint32_t vertexBufferStrides[MAX_BOUND_VERTEX_BUFFERS]; - ID3D11Buffer *indexBuffer; - FNA3D_IndexElementSize indexElementSize; - - /* Resource Caches */ - PackedStateArray blendStateCache; - PackedStateArray depthStencilStateCache; - PackedStateArray rasterizerStateCache; - PackedStateArray samplerStateCache; - PackedVertexBufferBindingsArray inputLayoutCache; - - /* Render Targets */ - int32_t numRenderTargets; - ID3D11RenderTargetView *renderTargetViews[MAX_RENDERTARGET_BINDINGS]; - ID3D11DepthStencilView *depthStencilView; - FNA3D_DepthFormat currentDepthFormat; - - /* MojoShader Interop */ - MOJOSHADER_d3d11Context *shaderContext; - MOJOSHADER_effect *currentEffect; - const MOJOSHADER_effectTechnique *currentTechnique; - uint32_t currentPass; - uint8_t effectApplied; -} D3D11Renderer; - -/* XNA->D3D11 Translation Arrays */ - -static DXGI_FORMAT XNAToD3D_TextureFormat[] = -{ - DXGI_FORMAT_R8G8B8A8_UNORM, /* SurfaceFormat.Color */ - DXGI_FORMAT_B5G6R5_UNORM, /* SurfaceFormat.Bgr565 */ - DXGI_FORMAT_B5G5R5A1_UNORM, /* SurfaceFormat.Bgra5551 */ - DXGI_FORMAT_B4G4R4A4_UNORM, /* SurfaceFormat.Bgra4444 */ - DXGI_FORMAT_BC1_UNORM, /* SurfaceFormat.Dxt1 */ - DXGI_FORMAT_BC2_UNORM, /* SurfaceFormat.Dxt3 */ - DXGI_FORMAT_BC3_UNORM, /* SurfaceFormat.Dxt5 */ - DXGI_FORMAT_R8G8_SNORM, /* SurfaceFormat.NormalizedByte2 */ - DXGI_FORMAT_R8G8B8A8_SNORM, /* SurfaceFormat.NormalizedByte4 */ - DXGI_FORMAT_R10G10B10A2_UNORM, /* SurfaceFormat.Rgba1010102 */ - DXGI_FORMAT_R16G16_UNORM, /* SurfaceFormat.Rg32 */ - DXGI_FORMAT_R16G16B16A16_UNORM, /* SurfaceFormat.Rgba64 */ - DXGI_FORMAT_A8_UNORM, /* SurfaceFormat.Alpha8 */ - DXGI_FORMAT_R32_FLOAT, /* SurfaceFormat.Single */ - DXGI_FORMAT_R32G32_FLOAT, /* SurfaceFormat.Vector2 */ - DXGI_FORMAT_R32G32B32A32_FLOAT, /* SurfaceFormat.Vector4 */ - DXGI_FORMAT_R16_FLOAT, /* SurfaceFormat.HalfSingle */ - DXGI_FORMAT_R16G16_FLOAT, /* SurfaceFormat.HalfVector2 */ - DXGI_FORMAT_R16G16B16A16_FLOAT, /* SurfaceFormat.HalfVector4 */ - DXGI_FORMAT_R16G16B16A16_FLOAT, /* SurfaceFormat.HdrBlendable */ - DXGI_FORMAT_B8G8R8A8_UNORM, /* SurfaceFormat.ColorBgraEXT */ - DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,/* SurfaceFormat.ColorSrgbEXT */ - DXGI_FORMAT_BC3_UNORM_SRGB, /* SurfaceFormat.Dxt5SrgbEXT */ - DXGI_FORMAT_BC7_UNORM, /* SurfaceFormat.BC7EXT */ - DXGI_FORMAT_BC7_UNORM_SRGB, /* SurfaceFormat.BC7SrgbEXT */ -}; - -static DXGI_FORMAT XNAToD3D_DepthFormat[] = -{ - DXGI_FORMAT_UNKNOWN, /* DepthFormat.None */ - DXGI_FORMAT_D16_UNORM, /* DepthFormat.Depth16 */ - DXGI_FORMAT_D24_UNORM_S8_UINT, /* DepthFormat.Depth24 */ - DXGI_FORMAT_D24_UNORM_S8_UINT /* DepthFormat.Depth24Stencil8 */ -}; - -static LPCSTR XNAToD3D_VertexAttribSemanticName[] = -{ - "POSITION", /* VertexElementUsage.Position */ - "COLOR", /* VertexElementUsage.Color */ - "TEXCOORD", /* VertexElementUsage.TextureCoordinate */ - "NORMAL", /* VertexElementUsage.Normal */ - "BINORMAL", /* VertexElementUsage.Binormal */ - "TANGENT", /* VertexElementUsage.Tangent */ - "BLENDINDICES", /* VertexElementUsage.BlendIndices */ - "BLENDWEIGHT", /* VertexElementUsage.BlendWeight */ - "SV_DEPTH", /* VertexElementUsage.Depth */ - "FOG", /* VertexElementUsage.Fog */ - "PSIZE", /* VertexElementUsage.PointSize */ - "SV_SampleIndex", /* VertexElementUsage.Sample */ - "TESSFACTOR" /* VertexElementUsage.TessellateFactor */ -}; - -static DXGI_FORMAT XNAToD3D_VertexAttribFormat[] = -{ - DXGI_FORMAT_R32_FLOAT, /* VertexElementFormat.Single */ - DXGI_FORMAT_R32G32_FLOAT, /* VertexElementFormat.Vector2 */ - DXGI_FORMAT_R32G32B32_FLOAT, /* VertexElementFormat.Vector3 */ - DXGI_FORMAT_R32G32B32A32_FLOAT, /* VertexElementFormat.Vector4 */ - DXGI_FORMAT_R8G8B8A8_UNORM, /* VertexElementFormat.Color */ - DXGI_FORMAT_R8G8B8A8_UINT, /* VertexElementFormat.Byte4 */ - DXGI_FORMAT_R16G16_SINT, /* VertexElementFormat.Short2 */ - DXGI_FORMAT_R16G16B16A16_SINT, /* VertexElementFormat.Short4 */ - DXGI_FORMAT_R16G16_SNORM, /* VertexElementFormat.NormalizedShort2 */ - DXGI_FORMAT_R16G16B16A16_SNORM, /* VertexElementFormat.NormalizedShort4 */ - DXGI_FORMAT_R16G16_FLOAT, /* VertexElementFormat.HalfVector2 */ - DXGI_FORMAT_R16G16B16A16_FLOAT /* VertexElementFormat.HalfVector4 */ -}; - -static DXGI_FORMAT XNAToD3D_IndexType[] = -{ - DXGI_FORMAT_R16_UINT, /* IndexElementSize.SixteenBits */ - DXGI_FORMAT_R32_UINT /* IndexElementSize.ThirtyTwoBits */ -}; - -static D3D11_BLEND XNAToD3D_BlendMode[] = -{ - D3D11_BLEND_ONE, /* Blend.One */ - D3D11_BLEND_ZERO, /* Blend.Zero */ - D3D11_BLEND_SRC_COLOR, /* Blend.SourceColor */ - D3D11_BLEND_INV_SRC_COLOR, /* Blend.InverseSourceColor */ - D3D11_BLEND_SRC_ALPHA, /* Blend.SourceAlpha */ - D3D11_BLEND_INV_SRC_ALPHA, /* Blend.InverseSourceAlpha */ - D3D11_BLEND_DEST_COLOR, /* Blend.DestinationColor */ - D3D11_BLEND_INV_DEST_COLOR, /* Blend.InverseDestinationColor */ - D3D11_BLEND_DEST_ALPHA, /* Blend.DestinationAlpha */ - D3D11_BLEND_INV_DEST_ALPHA, /* Blend.InverseDestinationAlpha */ - D3D11_BLEND_BLEND_FACTOR, /* Blend.BlendFactor */ - D3D11_BLEND_INV_BLEND_FACTOR, /* Blend.InverseBlendFactor */ - D3D11_BLEND_SRC_ALPHA_SAT /* Blend.SourceAlphaSaturation */ -}; - -static D3D11_BLEND XNAToD3D_BlendModeAlpha[] = -{ - D3D11_BLEND_ONE, /* Blend.One */ - D3D11_BLEND_ZERO, /* Blend.Zero */ - D3D11_BLEND_SRC_ALPHA, /* Blend.SourceColor */ - D3D11_BLEND_INV_SRC_ALPHA, /* Blend.InverseSourceColor */ - D3D11_BLEND_SRC_ALPHA, /* Blend.SourceAlpha */ - D3D11_BLEND_INV_SRC_ALPHA, /* Blend.InverseSourceAlpha */ - D3D11_BLEND_DEST_ALPHA, /* Blend.DestinationColor */ - D3D11_BLEND_INV_DEST_ALPHA, /* Blend.InverseDestinationColor */ - D3D11_BLEND_DEST_ALPHA, /* Blend.DestinationAlpha */ - D3D11_BLEND_INV_DEST_ALPHA, /* Blend.InverseDestinationAlpha */ - D3D11_BLEND_BLEND_FACTOR, /* Blend.BlendFactor */ - D3D11_BLEND_INV_BLEND_FACTOR, /* Blend.InverseBlendFactor */ - D3D11_BLEND_SRC_ALPHA_SAT /* Blend.SourceAlphaSaturation */ -}; - -static D3D11_BLEND_OP XNAToD3D_BlendOperation[] = -{ - D3D11_BLEND_OP_ADD, /* BlendFunction.Add */ - D3D11_BLEND_OP_SUBTRACT, /* BlendFunction.Subtract */ - D3D11_BLEND_OP_REV_SUBTRACT, /* BlendFunction.ReverseSubtract */ - D3D11_BLEND_OP_MAX, /* BlendFunction.Max */ - D3D11_BLEND_OP_MIN /* BlendFunction.Min */ -}; - -static D3D11_COMPARISON_FUNC XNAToD3D_CompareFunc[] = -{ - D3D11_COMPARISON_ALWAYS, /* CompareFunction.Always */ - D3D11_COMPARISON_NEVER, /* CompareFunction.Never */ - D3D11_COMPARISON_LESS, /* CompareFunction.Less */ - D3D11_COMPARISON_LESS_EQUAL, /* CompareFunction.LessEqual */ - D3D11_COMPARISON_EQUAL, /* CompareFunction.Equal */ - D3D11_COMPARISON_GREATER_EQUAL, /* CompareFunction.GreaterEqual */ - D3D11_COMPARISON_GREATER, /* CompareFunction.Greater */ - D3D11_COMPARISON_NOT_EQUAL /* CompareFunction.NotEqual */ -}; - -static D3D11_STENCIL_OP XNAToD3D_StencilOp[] = -{ - D3D11_STENCIL_OP_KEEP, /* StencilOperation.Keep */ - D3D11_STENCIL_OP_ZERO, /* StencilOperation.Zero */ - D3D11_STENCIL_OP_REPLACE, /* StencilOperation.Replace */ - D3D11_STENCIL_OP_INCR, /* StencilOperation.Increment */ - D3D11_STENCIL_OP_DECR, /* StencilOperation.Decrement */ - D3D11_STENCIL_OP_INCR_SAT, /* StencilOperation.IncrementSaturation */ - D3D11_STENCIL_OP_DECR_SAT, /* StencilOperation.DecrementSaturation */ - D3D11_STENCIL_OP_INVERT /* StencilOperation.Invert */ -}; - -static D3D11_FILL_MODE XNAToD3D_FillMode[] = -{ - D3D11_FILL_SOLID, /* FillMode.Solid */ - D3D11_FILL_WIREFRAME /* FillMode.WireFrame */ -}; - -static float XNAToD3D_DepthBiasScale[] = -{ - 0.0f, /* DepthFormat.None */ - (float) ((1 << 16) - 1), /* DepthFormat.Depth16 */ - (float) ((1 << 24) - 1), /* DepthFormat.Depth24 */ - (float) ((1 << 24) - 1) /* DepthFormat.Depth24Stencil8 */ -}; - -static D3D11_CULL_MODE XNAToD3D_CullMode[] = -{ - D3D11_CULL_NONE, /* CullMode.None */ - D3D11_CULL_BACK, /* CullMode.CullClockwiseFace */ - D3D11_CULL_FRONT /* CullMode.CullCounterClockwiseFace */ -}; - -static D3D11_TEXTURE_ADDRESS_MODE XNAToD3D_Wrap[] = -{ - D3D11_TEXTURE_ADDRESS_WRAP, /* TextureAddressMode.Wrap */ - D3D11_TEXTURE_ADDRESS_CLAMP, /* TextureAddressMode.Clamp */ - D3D11_TEXTURE_ADDRESS_MIRROR /* TextureAddressMode.Mirror */ -}; - -static D3D11_FILTER XNAToD3D_Filter[] = -{ - D3D11_FILTER_MIN_MAG_MIP_LINEAR, /* TextureFilter.Linear */ - D3D11_FILTER_MIN_MAG_MIP_POINT, /* TextureFilter.Point */ - D3D11_FILTER_ANISOTROPIC, /* TextureFilter.Anisotropic */ - D3D11_FILTER_MIN_MAG_LINEAR_MIP_POINT, /* TextureFilter.LinearMipPoint */ - D3D11_FILTER_MIN_MAG_POINT_MIP_LINEAR, /* TextureFilter.PointMipLinear */ - D3D11_FILTER_MIN_LINEAR_MAG_POINT_MIP_LINEAR, /* TextureFilter.MinLinearMagPointMipLinear */ - D3D11_FILTER_MIN_LINEAR_MAG_MIP_POINT, /* TextureFilter.MinLinearMagPointMipPoint */ - D3D11_FILTER_MIN_POINT_MAG_MIP_LINEAR, /* TextureFilter.MinPointMagLinearMipLinear */ - D3D11_FILTER_MIN_POINT_MAG_LINEAR_MIP_POINT /* TextureFilter.MinPointMagLinearMipPoint */ -}; - -static D3D_PRIMITIVE_TOPOLOGY XNAToD3D_Primitive[] = -{ - D3D_PRIMITIVE_TOPOLOGY_TRIANGLELIST, /* PrimitiveType.TriangleList */ - D3D_PRIMITIVE_TOPOLOGY_TRIANGLESTRIP, /* PrimitiveType.TriangleStrip */ - D3D_PRIMITIVE_TOPOLOGY_LINELIST, /* PrimitiveType.LineList */ - D3D_PRIMITIVE_TOPOLOGY_LINESTRIP, /* PrimitiveType.LineStrip */ - D3D_PRIMITIVE_TOPOLOGY_POINTLIST /* PrimitiveType.PointListEXT */ -}; - -/* Helper Functions */ - -static void D3D11_INTERNAL_LogError( - ID3D11Device *device, - const char *msg, - HRESULT res -) { - #define MAX_ERROR_LEN 1024 /* FIXME: Arbitrary! */ - - /* Buffer for text, ensure space for \0 terminator after buffer */ - char wszMsgBuff[MAX_ERROR_LEN + 1]; - DWORD dwChars; /* Number of chars returned. */ - - if (res == DXGI_ERROR_DEVICE_REMOVED) - { - res = ID3D11Device_GetDeviceRemovedReason(device); - } - - /* Try to get the message from the system errors. */ -#ifdef _WIN32 - dwChars = FormatMessage( - FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, - NULL, - res, - 0, - wszMsgBuff, - MAX_ERROR_LEN, - NULL - ); -#else - /* FIXME: Do we have error strings in dxvk-native? -flibit */ - dwChars = 0; -#endif - - /* No message? Screw it, just post the code. */ - if (dwChars == 0) - { - FNA3D_LogError("%s! Error Code: 0x%08X", msg, res); - return; - } - - /* Ensure valid range */ - dwChars = SDL_min(dwChars, MAX_ERROR_LEN); - - /* Trim whitespace from tail of message */ - while (dwChars > 0) - { - if (wszMsgBuff[dwChars - 1] <= ' ') - { - dwChars--; - } - else - { - break; - } - } - - /* Ensure null-terminated string */ - wszMsgBuff[dwChars] = '\0'; - - FNA3D_LogError("%s! Error Code: %s (0x%08X)", msg, wszMsgBuff, res); -} - -static inline uint32_t D3D11_INTERNAL_CalcSubresource( - uint32_t mipLevel, - uint32_t arraySlice, - uint32_t numLevels -) { - return mipLevel + (arraySlice * numLevels); -} - -static uint8_t D3D11_INTERNAL_BlendEquals( - FNA3D_Color *a, - FNA3D_Color *b -) { - return SDL_memcmp(a, b, sizeof(FNA3D_Color)) == 0; -} - -/* Pipeline State Object Caching */ - -static ID3D11BlendState* D3D11_INTERNAL_FetchBlendState( - D3D11Renderer *renderer, - FNA3D_BlendState *state -) { - PackedState packedState; - D3D11_BLEND_DESC desc = {0}; - ID3D11BlendState *result; - HRESULT res; - - /* Can we just reuse an existing state? */ - packedState = GetPackedBlendState(*state); - result = (ID3D11BlendState*) PackedStateArray_Fetch( - renderer->blendStateCache, - packedState - ); - if (result != NULL) - { - /* The state is already cached! */ - return result; - } - - /* We need to make a new blend state... */ - desc.AlphaToCoverageEnable = 0; - desc.IndependentBlendEnable = 0; - desc.RenderTarget[0].BlendEnable = !( - state->colorSourceBlend == FNA3D_BLEND_ONE && - state->colorDestinationBlend == FNA3D_BLEND_ZERO && - state->alphaSourceBlend == FNA3D_BLEND_ONE && - state->alphaDestinationBlend == FNA3D_BLEND_ZERO - ); - if (desc.RenderTarget[0].BlendEnable) - { - desc.RenderTarget[0].BlendOp = XNAToD3D_BlendOperation[ - state->colorBlendFunction - ]; - desc.RenderTarget[0].BlendOpAlpha = XNAToD3D_BlendOperation[ - state->alphaBlendFunction - ]; - desc.RenderTarget[0].DestBlend = XNAToD3D_BlendMode[ - state->colorDestinationBlend - ]; - desc.RenderTarget[0].DestBlendAlpha = XNAToD3D_BlendModeAlpha[ - state->alphaDestinationBlend - ]; - desc.RenderTarget[0].SrcBlend = XNAToD3D_BlendMode[ - state->colorSourceBlend - ]; - desc.RenderTarget[0].SrcBlendAlpha = XNAToD3D_BlendModeAlpha[ - state->alphaSourceBlend - ]; - } - - /* All other states should match for all targets... */ - desc.RenderTarget[1] = desc.RenderTarget[0]; - desc.RenderTarget[2] = desc.RenderTarget[0]; - desc.RenderTarget[3] = desc.RenderTarget[0]; - - /* ... except RenderTargetWriteMask. */ - desc.RenderTarget[0].RenderTargetWriteMask = ( - (uint32_t) state->colorWriteEnable - ); - desc.RenderTarget[1].RenderTargetWriteMask = ( - (uint32_t) state->colorWriteEnable1 - ); - desc.RenderTarget[2].RenderTargetWriteMask = ( - (uint32_t) state->colorWriteEnable2 - ); - desc.RenderTarget[3].RenderTargetWriteMask = ( - (uint32_t) state->colorWriteEnable3 - ); - - /* Bake the state! */ - res = ID3D11Device_CreateBlendState( - renderer->device, - &desc, - &result - ); - ERROR_CHECK_RETURN("Blend state creation failed", NULL) - PackedStateArray_Insert( - &renderer->blendStateCache, - packedState, - result - ); - - /* Return the state! */ - return result; -} - -static ID3D11DepthStencilState* D3D11_INTERNAL_FetchDepthStencilState( - D3D11Renderer *renderer, - FNA3D_DepthStencilState *state -) { - PackedState packedState; - D3D11_DEPTH_STENCIL_DESC desc; - D3D11_DEPTH_STENCILOP_DESC front, back; - ID3D11DepthStencilState *result; - HRESULT res; - - /* Can we just reuse an existing state? */ - packedState = GetPackedDepthStencilState(*state); - result = (ID3D11DepthStencilState*) PackedStateArray_Fetch( - renderer->depthStencilStateCache, - packedState - ); - if (result != NULL) - { - /* The state is already cached! */ - return result; - } - - /* We have to make a new depth stencil state... */ - desc.DepthEnable = state->depthBufferEnable; - desc.DepthWriteMask = ( - state->depthBufferEnable && state->depthBufferWriteEnable ? - D3D11_DEPTH_WRITE_MASK_ALL : - D3D11_DEPTH_WRITE_MASK_ZERO - ); - desc.DepthFunc = XNAToD3D_CompareFunc[ - state->depthBufferFunction - ]; - desc.StencilEnable = state->stencilEnable; - desc.StencilReadMask = (uint8_t) state->stencilMask; - desc.StencilWriteMask = (uint8_t) state->stencilWriteMask; - front.StencilDepthFailOp = XNAToD3D_StencilOp[ - state->stencilDepthBufferFail - ]; - front.StencilFailOp = XNAToD3D_StencilOp[ - state->stencilFail - ]; - front.StencilFunc = XNAToD3D_CompareFunc[ - state->stencilFunction - ]; - front.StencilPassOp = XNAToD3D_StencilOp[ - state->stencilPass - ]; - if (state->twoSidedStencilMode) - { - back.StencilDepthFailOp = XNAToD3D_StencilOp[ - state->ccwStencilDepthBufferFail - ]; - back.StencilFailOp = XNAToD3D_StencilOp[ - state->ccwStencilFail - ]; - back.StencilFunc = XNAToD3D_CompareFunc[ - state->ccwStencilFunction - ]; - back.StencilPassOp = XNAToD3D_StencilOp[ - state->ccwStencilPass - ]; - } - else - { - back = front; - } - desc.FrontFace = front; - desc.BackFace = back; - - /* Bake the state! */ - res = ID3D11Device_CreateDepthStencilState( - renderer->device, - &desc, - &result - ); - ERROR_CHECK_RETURN("Depth-stencil state creation failed", NULL) - PackedStateArray_Insert( - &renderer->depthStencilStateCache, - packedState, - result - ); - - /* Return the state! */ - return result; -} - -static ID3D11RasterizerState* D3D11_INTERNAL_FetchRasterizerState( - D3D11Renderer *renderer, - FNA3D_RasterizerState *state -) { - PackedState packedState; - float depthBias; - D3D11_RASTERIZER_DESC desc; - ID3D11RasterizerState *result; - HRESULT res; - - depthBias = state->depthBias * XNAToD3D_DepthBiasScale[ - renderer->currentDepthFormat - ]; - - /* Can we just reuse an existing state? */ - packedState = GetPackedRasterizerState(*state, depthBias); - result = (ID3D11RasterizerState*) PackedStateArray_Fetch( - renderer->rasterizerStateCache, - packedState - ); - if (result != NULL) - { - /* The state is already cached! */ - return result; - } - - /* We have to make a new rasterizer state... */ - desc.AntialiasedLineEnable = 0; - desc.CullMode = XNAToD3D_CullMode[state->cullMode]; - desc.DepthBias = (int32_t) depthBias; - desc.DepthBiasClamp = D3D11_FLOAT32_MAX; - desc.DepthClipEnable = 1; - desc.FillMode = XNAToD3D_FillMode[state->fillMode]; - desc.FrontCounterClockwise = 1; - desc.MultisampleEnable = state->multiSampleAntiAlias; - desc.ScissorEnable = state->scissorTestEnable; - desc.SlopeScaledDepthBias = state->slopeScaleDepthBias; - - /* Bake the state! */ - res = ID3D11Device_CreateRasterizerState( - renderer->device, - &desc, - &result - ); - ERROR_CHECK_RETURN("Rasterizer state creation failed", NULL) - PackedStateArray_Insert( - &renderer->rasterizerStateCache, - packedState, - result - ); - - /* Return the state! */ - return result; -} - -static ID3D11SamplerState* D3D11_INTERNAL_FetchSamplerState( - D3D11Renderer *renderer, - FNA3D_SamplerState *state -) { - PackedState packedState; - D3D11_SAMPLER_DESC desc; - ID3D11SamplerState *result; - HRESULT res; - - /* Can we just reuse an existing state? */ - packedState = GetPackedSamplerState(*state); - result = (ID3D11SamplerState*) PackedStateArray_Fetch( - renderer->samplerStateCache, - packedState - ); - if (result != NULL) - { - /* The state is already cached! */ - return result; - } - - /* We have to make a new sampler state... */ - desc.AddressU = XNAToD3D_Wrap[state->addressU]; - desc.AddressV = XNAToD3D_Wrap[state->addressV]; - desc.AddressW = XNAToD3D_Wrap[state->addressW]; - desc.BorderColor[0] = 1.0f; - desc.BorderColor[1] = 1.0f; - desc.BorderColor[2] = 1.0f; - desc.BorderColor[3] = 1.0f; - desc.ComparisonFunc = D3D11_COMPARISON_NEVER; - desc.Filter = XNAToD3D_Filter[state->filter]; - desc.MaxAnisotropy = (uint32_t) state->maxAnisotropy; - desc.MaxLOD = D3D11_FLOAT32_MAX; - desc.MinLOD = (float) state->maxMipLevel; - desc.MipLODBias = state->mipMapLevelOfDetailBias; - - /* Bake the state! */ - res = ID3D11Device_CreateSamplerState( - renderer->device, - &desc, - &result - ); - ERROR_CHECK_RETURN("Sampler state creation failed", NULL) - PackedStateArray_Insert( - &renderer->samplerStateCache, - packedState, - result - ); - - /* Return the state! */ - return result; -} - -static ID3D11InputLayout* D3D11_INTERNAL_FetchBindingsInputLayout( - D3D11Renderer *renderer, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint32_t *hash -) { - int32_t numElements, i, j, k, index, attribLoc, bindingsIndex; - FNA3D_VertexElementUsage usage; - uint8_t attrUse[MOJOSHADER_USAGE_TOTAL][16]; - D3D11_INPUT_ELEMENT_DESC elements[16]; /* D3DCAPS9 MaxStreams <= 16 */ - D3D11_INPUT_ELEMENT_DESC *d3dElement; - MOJOSHADER_d3d11Shader *vertexShader, *blah; - void *bytecode; - int32_t bytecodeLength; - HRESULT res; - ID3D11InputLayout *result; - - /* We need the vertex shader... */ - MOJOSHADER_d3d11GetBoundShaders(renderer->shaderContext, &vertexShader, &blah); - - /* Can we just reuse an existing input layout? */ - result = (ID3D11InputLayout*) PackedVertexBufferBindingsArray_Fetch( - renderer->inputLayoutCache, - bindings, - numBindings, - vertexShader, - &bindingsIndex, - hash - ); - if (result != NULL) - { - /* This input layout has already been cached! */ - return result; - } - - /* We have to make a new input layout... */ - - /* There's this weird case where you can have overlapping - * vertex usage/index combinations. It seems like the first - * attrib gets priority, so whenever a duplicate attribute - * exists, give it the next available index. If that fails, we - * have to crash :/ - * -flibit - */ - SDL_zero(attrUse); - - /* Determine how many elements are actually in use */ - numElements = 0; - for (i = 0; i < numBindings; i += 1) - { - /* Describe vertex attributes */ - const FNA3D_VertexBufferBinding *binding = &bindings[i]; - for (j = 0; j < binding->vertexDeclaration.elementCount; j += 1) - { - const FNA3D_VertexElement *element = &binding->vertexDeclaration.elements[j]; - usage = element->vertexElementUsage; - index = element->usageIndex; - - if (attrUse[usage][index]) - { - index = -1; - for (k = 0; k < 16; k += 1) - { - if (!attrUse[usage][k]) - { - index = k; - break; - } - } - if (index < 0) - { - FNA3D_LogError( - "Vertex usage collision!" - ); - } - } - attrUse[usage][index] = 1; - attribLoc = MOJOSHADER_d3d11GetVertexAttribLocation( - vertexShader, - VertexAttribUsage(usage), - index - ); - if (attribLoc == -1) - { - /* Stream not in use! */ - continue; - } - - numElements += 1; - - d3dElement = &elements[attribLoc]; - d3dElement->SemanticName = XNAToD3D_VertexAttribSemanticName[usage]; - d3dElement->SemanticIndex = index; - d3dElement->Format = XNAToD3D_VertexAttribFormat[ - element->vertexElementFormat - ]; - d3dElement->InputSlot = i; - d3dElement->AlignedByteOffset = element->offset; - d3dElement->InputSlotClass = ( - binding->instanceFrequency > 0 ? - D3D11_INPUT_PER_INSTANCE_DATA : - D3D11_INPUT_PER_VERTEX_DATA - ); - d3dElement->InstanceDataStepRate = ( - binding->instanceFrequency > 0 ? - binding->instanceFrequency : - 0 - ); - } - } - - MOJOSHADER_d3d11CompileVertexShader( - renderer->shaderContext, - (unsigned long long) *hash, - elements, - numElements, - &bytecode, - &bytecodeLength - ); - res = ID3D11Device_CreateInputLayout( - renderer->device, - elements, - numElements, - bytecode, - bytecodeLength, - &result - ); - - /* Check for errors now that elements is freed */ - ERROR_CHECK_RETURN("Could not compile input layout", NULL) - - /* Return the new input layout! */ - PackedVertexBufferBindingsArray_Insert( - &renderer->inputLayoutCache, - bindings, - numBindings, - vertexShader, - result - ); - return result; -} - -/* Forward Declarations */ - -static void D3D11_INTERNAL_DisposeBackbuffer(D3D11Renderer *renderer); - -static void D3D11_SetRenderTargets( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -); -static void D3D11_GetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -); - -static void D3D11_GetDrawableSize(void *window, int32_t *w, int32_t *h); - -static void* D3D11_PLATFORM_LoadD3D11(); -static void D3D11_PLATFORM_UnloadD3D11(void* module); -static PFN_D3D11_CREATE_DEVICE D3D11_PLATFORM_GetCreateDeviceFunc(void* module); - -static HRESULT D3D11_PLATFORM_CreateDXGIFactory( - void** module, - void** factory -); -static void D3D11_PLATFORM_UnloadDXGI(void* module); -static void D3D11_PLATFORM_GetDefaultAdapter( - void* factory, - IDXGIAdapter1 **adapter -); - -static void D3D11_PLATFORM_CreateSwapChain( - D3D11Renderer *renderer, - FNA3D_SurfaceFormat backBufferFormat, - void* windowHandle -); -static HRESULT D3D11_PLATFORM_ResizeSwapChain( - D3D11Renderer *renderer, - D3D11SwapchainData *swapchain -); -static void D3D11_INTERNAL_UpdateSwapchainRT( - D3D11Renderer *renderer, - D3D11SwapchainData *swapchainData, - DXGI_FORMAT format -); - -/* Renderer Implementation */ - -/* Quit */ - -static void D3D11_DestroyDevice(FNA3D_Device *device) -{ - D3D11Renderer* renderer = (D3D11Renderer*) device->driverData; - D3D11SwapchainData *swapchainData; - int32_t i; - - /* Unbind all render objects */ - ID3D11DeviceContext_ClearState(renderer->context); - - /* Release faux backbuffer blit resources */ - ID3D11BlendState_Release(renderer->fauxBackbufferResources.blendState); - ID3D11Buffer_Release(renderer->fauxBackbufferResources.indexBuffer); - ID3D11InputLayout_Release(renderer->fauxBackbufferResources.inputLayout); - ID3D11PixelShader_Release(renderer->fauxBackbufferResources.pixelShader); - ID3D11SamplerState_Release(renderer->fauxBackbufferResources.samplerState); - ID3D11RasterizerState_Release(renderer->fauxBackbufferResources.rasterizerState); - ID3D11VertexShader_Release(renderer->fauxBackbufferResources.vertexShader); - ID3D11Buffer_Release(renderer->fauxBackbufferResources.vertexBuffer); - - /* Release faux backbuffer */ - D3D11_INTERNAL_DisposeBackbuffer(renderer); - SDL_free(renderer->backbuffer); - renderer->backbuffer = NULL; - - /* Release swapchain */ - for (i = 0; i < renderer->swapchainDataCount; i += 1) - { - swapchainData = renderer->swapchainDatas[i]; - ID3D11RenderTargetView_Release(swapchainData->swapchainRTView); - IDXGISwapChain_Release(swapchainData->swapchain); - SDL_SetWindowData( - (SDL_Window*) swapchainData->windowHandle, - WINDOW_SWAPCHAIN_DATA, - NULL - ); - SDL_free(renderer->swapchainDatas[i]); - } - SDL_free(renderer->swapchainDatas); - - /* Release blend states */ - for (i = 0; i < renderer->blendStateCache.count; i += 1) - { - ID3D11BlendState_Release( - (ID3D11BlendState*) renderer->blendStateCache.elements[i].value - ); - } - SDL_free(renderer->blendStateCache.elements); - - /* Release depth stencil states */ - for (i = 0; i < renderer->depthStencilStateCache.count; i += 1) - { - ID3D11DepthStencilState_Release( - (ID3D11DepthStencilState*) renderer->depthStencilStateCache.elements[i].value - ); - } - SDL_free(renderer->depthStencilStateCache.elements); - - /* Release rasterizer states */ - for (i = 0; i < renderer->rasterizerStateCache.count; i += 1) - { - ID3D11RasterizerState_Release( - (ID3D11RasterizerState*) renderer->rasterizerStateCache.elements[i].value - ); - } - SDL_free(renderer->rasterizerStateCache.elements); - - /* Release sampler states */ - for (i = 0; i < renderer->samplerStateCache.count; i += 1) - { - ID3D11SamplerState_Release( - (ID3D11SamplerState*) renderer->samplerStateCache.elements[i].value - ); - } - SDL_free(renderer->samplerStateCache.elements); - - /* Release input layouts */ - for (i = 0; i < renderer->inputLayoutCache.count; i += 1) - { - ID3D11InputLayout_Release( - (ID3D11InputLayout*) renderer->inputLayoutCache.elements[i].value - ); - } - SDL_free(renderer->inputLayoutCache.elements); - - /* Release the annotation/iconv, if applicable */ - if (renderer->annotation != NULL) - { - ID3DUserDefinedAnnotation_Release(renderer->annotation); - } - if (renderer->iconv != NULL) - { - SDL_iconv_close(renderer->iconv); - } - - /* Release the factory */ - IUnknown_Release((IUnknown*) renderer->factory); - - /* Release the MojoShader context */ - MOJOSHADER_d3d11DestroyContext(renderer->shaderContext); - - /* Release the device */ - ID3D11DeviceContext_Release(renderer->context); - ID3D11Device_Release(renderer->device); - - /* Release the DLLs */ - D3D11_PLATFORM_UnloadD3D11(renderer->d3d11_dll); - D3D11_PLATFORM_UnloadDXGI(renderer->dxgi_dll); - - SDL_DestroyMutex(renderer->ctxLock); - SDL_free(renderer); - SDL_free(device); -} - -/* Presentation */ - -static void D3D11_INTERNAL_UpdateFauxBackbufferVertexBuffer( - D3D11Renderer *renderer, - FNA3D_Rect *srcRect, - FNA3D_Rect *dstRect, - int32_t drawableWidth, - int32_t drawableHeight -) { - float backbufferWidth = (float) renderer->backbuffer->width; - float backbufferHeight = (float) renderer->backbuffer->height; - float sx0, sy0, sx1, sy1; - float dx0, dy0, dx1, dy1; - float data[16]; - D3D11_MAPPED_SUBRESOURCE mappedBuffer; - HRESULT res; - - /* Cache the new info */ - renderer->backbufferSizeChanged = 0; - renderer->prevSrcRect = *srcRect; - renderer->prevDstRect = *dstRect; - - /* Scale the texture coordinates to (0, 1) */ - sx0 = srcRect->x / backbufferWidth; - sy0 = srcRect->y / backbufferHeight; - sx1 = (srcRect->x + srcRect->w) / backbufferWidth; - sy1 = (srcRect->y + srcRect->h) / backbufferHeight; - - /* Scale the position coordinates to (-1, 1) */ - dx0 = (dstRect->x / (float) drawableWidth) * 2.0f - 1.0f; - dy0 = (dstRect->y / (float) drawableHeight) * 2.0f - 1.0f; - dx1 = ((dstRect->x + dstRect->w) / (float) drawableWidth) * 2.0f - 1.0f; - dy1 = ((dstRect->y + dstRect->h) / (float) drawableHeight) * 2.0f - 1.0f; - - /* Stuff the data into an array */ - data[0] = dx0; - data[1] = dy0; - data[2] = sx0; - data[3] = sy0; - - data[4] = dx1; - data[5] = dy0; - data[6] = sx1; - data[7] = sy0; - - data[8] = dx1; - data[9] = dy1; - data[10] = sx1; - data[11] = sy1; - - data[12] = dx0; - data[13] = dy1; - data[14] = sx0; - data[15] = sy1; - - /* Copy the data into the buffer */ - mappedBuffer.pData = NULL; - mappedBuffer.DepthPitch = 0; - mappedBuffer.RowPitch = 0; - SDL_LockMutex(renderer->ctxLock); - res = ID3D11DeviceContext_Map( - renderer->context, - (ID3D11Resource*) renderer->fauxBackbufferResources.vertexBuffer, - 0, - D3D11_MAP_WRITE_DISCARD, - 0, - &mappedBuffer - ); - ERROR_CHECK_UNLOCK_RETURN("Could not map backbuffer vertex buffer for writing",) - SDL_memcpy(mappedBuffer.pData, data, sizeof(data)); - ID3D11DeviceContext_Unmap( - renderer->context, - (ID3D11Resource*) renderer->fauxBackbufferResources.vertexBuffer, - 0 - ); - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_INTERNAL_BlitFauxBackbuffer( - D3D11Renderer *renderer, - D3D11SwapchainData *swapchainData, - int32_t drawableWidth, - int32_t drawableHeight -) { - DXGI_SWAP_CHAIN_DESC swapchainDesc; - D3D11_VIEWPORT tempViewport; - const uint32_t vertexStride = 16; - const uint32_t offsets[] = { 0 }; - float blendFactor[] = { 1.0f, 1.0f, 1.0f, 1.0f }; - ID3D11VertexShader *oldVertexShader; - ID3D11PixelShader *oldPixelShader; - ID3D11ClassInstance *whatever; - uint32_t noReallyWhatever = 0; - D3D11_VIEWPORT origViewport = - { - (float) renderer->viewport.x, - (float) renderer->viewport.y, - (float) renderer->viewport.w, - (float) renderer->viewport.h, - renderer->viewport.minDepth, - renderer->viewport.maxDepth - }; - - SDL_LockMutex(renderer->ctxLock); - - /* HACK ahead: During a window resize operation, the swapchain size does not necessarily - * match the size of the drawable. As a result, we need to set our viewport to match the - * size of the swapchain instead of the size of the drawable. - * If we don't do this, during the resize the damaged area will contain garbage pixels and - * the framebuffer will be drawn at the incorrect size as well. - * The result of this hack is that the framebuffer is scaled up to match whatever the size - * of the drawable happens to be (this will introduce some blurring, and does not match - * the behavior of OpenGL/Vulkan - just show black pixels in the damaged area - but is - * better than the alternatives.) - * The ideal solution would be to resize the swapchain to fit, but resizing a swapchain - * requires us to first release any references to its backbuffers, so attempting to - * resize it here will always fail. - */ - IDXGISwapChain_GetDesc(swapchainData->swapchain, &swapchainDesc); - tempViewport.TopLeftX = 0; - tempViewport.TopLeftY = 0; - tempViewport.Width = (float) swapchainDesc.BufferDesc.Width; - tempViewport.Height = (float) swapchainDesc.BufferDesc.Height; - tempViewport.MinDepth = 0; - tempViewport.MaxDepth = 1; - - /* Push the current shader state */ - ID3D11DeviceContext_VSGetShader( - renderer->context, - &oldVertexShader, - &whatever, - &noReallyWhatever - ); - ID3D11DeviceContext_PSGetShader( - renderer->context, - &oldPixelShader, - &whatever, - &noReallyWhatever - ); - - /* Bind the swapchain render target */ - ID3D11DeviceContext_OMSetRenderTargets( - renderer->context, - 1, - &swapchainData->swapchainRTView, - NULL - ); - - /* Bind the vertex and index buffers */ - ID3D11DeviceContext_IASetVertexBuffers( - renderer->context, - 0, - 1, - &renderer->fauxBackbufferResources.vertexBuffer, - &vertexStride, - offsets - ); - ID3D11DeviceContext_IASetIndexBuffer( - renderer->context, - renderer->fauxBackbufferResources.indexBuffer, - DXGI_FORMAT_R16_UINT, - 0 - ); - - /* Set the rest of the pipeline state */ - ID3D11DeviceContext_RSSetViewports( - renderer->context, - 1, - &tempViewport - ); - ID3D11DeviceContext_OMSetBlendState( - renderer->context, - renderer->fauxBackbufferResources.blendState, - blendFactor, - 0xffffffff - ); - ID3D11DeviceContext_OMSetDepthStencilState( - renderer->context, - NULL, - 0 - ); - ID3D11DeviceContext_RSSetState( - renderer->context, - renderer->fauxBackbufferResources.rasterizerState - ); - ID3D11DeviceContext_IASetInputLayout( - renderer->context, - renderer->fauxBackbufferResources.inputLayout - ); - ID3D11DeviceContext_VSSetShader( - renderer->context, - renderer->fauxBackbufferResources.vertexShader, - NULL, - 0 - ); - ID3D11DeviceContext_PSSetShader( - renderer->context, - renderer->fauxBackbufferResources.pixelShader, - NULL, - 0 - ); - ID3D11DeviceContext_PSSetShaderResources( - renderer->context, - 0, - 1, - &renderer->backbuffer->d3d11.shaderView - ); - ID3D11DeviceContext_PSSetSamplers( - renderer->context, - 0, - 1, - &renderer->fauxBackbufferResources.samplerState - ); - if (renderer->topology != FNA3D_PRIMITIVETYPE_TRIANGLELIST) - { - renderer->topology = FNA3D_PRIMITIVETYPE_TRIANGLELIST; - ID3D11DeviceContext_IASetPrimitiveTopology( - renderer->context, - D3D11_PRIMITIVE_TOPOLOGY_TRIANGLELIST - ); - } - - /* Draw the faux backbuffer! */ - ID3D11DeviceContext_DrawIndexed(renderer->context, 6, 0, 0); - - /* Restore the old state */ - blendFactor[0] = renderer->blendFactor.r / 255.0f; - blendFactor[1] = renderer->blendFactor.g / 255.0f; - blendFactor[2] = renderer->blendFactor.b / 255.0f; - blendFactor[3] = renderer->blendFactor.a / 255.0f; - ID3D11DeviceContext_RSSetViewports( - renderer->context, - 1, - &origViewport - ); - ID3D11DeviceContext_OMSetBlendState( - renderer->context, - renderer->blendState, - blendFactor, - renderer->multiSampleMask - ); - ID3D11DeviceContext_OMSetDepthStencilState( - renderer->context, - renderer->depthStencilState, - renderer->stencilRef - ); - ID3D11DeviceContext_RSSetState( - renderer->context, - renderer->rasterizerState - ); - ID3D11DeviceContext_IASetInputLayout( - renderer->context, - renderer->inputLayout - ); - ID3D11DeviceContext_VSSetShader( - renderer->context, - oldVertexShader, - NULL, - 0 - ); - ID3D11DeviceContext_PSSetShader( - renderer->context, - oldPixelShader, - NULL, - 0 - ); - if (oldVertexShader != NULL) - { - ID3D11VertexShader_Release(oldVertexShader); - } - if (oldPixelShader != NULL) - { - ID3D11PixelShader_Release(oldPixelShader); - } - ID3D11DeviceContext_IASetVertexBuffers( - renderer->context, - 0, - MAX_BOUND_VERTEX_BUFFERS, - renderer->vertexBuffers, - renderer->vertexBufferStrides, - renderer->vertexBufferOffsets - ); - ID3D11DeviceContext_IASetIndexBuffer( - renderer->context, - renderer->indexBuffer, - XNAToD3D_IndexType[renderer->indexElementSize], - 0 - ); - ID3D11DeviceContext_PSSetShaderResources( - renderer->context, - 0, - 1, - &renderer->textures[0]->shaderView - ); - ID3D11DeviceContext_PSSetSamplers( - renderer->context, - 0, - 1, - &renderer->samplers[0] - ); - - /* Bind the faux-backbuffer */ - D3D11_SetRenderTargets( - (FNA3D_Renderer*) renderer, - NULL, - 0, - NULL, - FNA3D_DEPTHFORMAT_NONE, - 0 - ); - - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_SwapBuffers( - FNA3D_Renderer *driverData, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - int32_t drawableWidth, drawableHeight; - FNA3D_Rect srcRect, dstRect; - D3D11SwapchainData *swapchainData; - - /* Only the faux-backbuffer supports presenting - * specific regions given to Present(). - * -flibit - */ - if (renderer->backbuffer->type == BACKBUFFER_TYPE_D3D11) - { - /* Determine the regions to present */ - D3D11_GetDrawableSize( - overrideWindowHandle, - &drawableWidth, - &drawableHeight - ); - if (sourceRectangle != NULL) - { - srcRect.x = sourceRectangle->x; - srcRect.y = sourceRectangle->y; - srcRect.w = sourceRectangle->w; - srcRect.h = sourceRectangle->h; - } - else - { - srcRect.x = 0; - srcRect.y = 0; - srcRect.w = renderer->backbuffer->width; - srcRect.h = renderer->backbuffer->height; - } - if (destinationRectangle != NULL) - { - dstRect.x = destinationRectangle->x; - dstRect.y = destinationRectangle->y; - dstRect.w = destinationRectangle->w; - dstRect.h = destinationRectangle->h; - } - else - { - dstRect.x = 0; - dstRect.y = 0; - dstRect.w = drawableWidth; - dstRect.h = drawableHeight; - } - - /* Update the cached vertex buffer, if needed */ - if ( renderer->backbufferSizeChanged || - renderer->prevSrcRect.x != srcRect.x || - renderer->prevSrcRect.y != srcRect.y || - renderer->prevSrcRect.w != srcRect.w || - renderer->prevSrcRect.h != srcRect.h || - renderer->prevDstRect.x != dstRect.x || - renderer->prevDstRect.y != dstRect.y || - renderer->prevDstRect.w != dstRect.w || - renderer->prevDstRect.h != dstRect.h ) - { - D3D11_INTERNAL_UpdateFauxBackbufferVertexBuffer( - renderer, - &srcRect, - &dstRect, - drawableWidth, - drawableHeight - ); - } - } - - swapchainData = (D3D11SwapchainData*) SDL_GetWindowData( - (SDL_Window*) overrideWindowHandle, - WINDOW_SWAPCHAIN_DATA - ); - if (swapchainData == NULL) - { - D3D11_PLATFORM_CreateSwapChain( - renderer, - FNA3D_SURFACEFORMAT_COLOR, /* FIXME: Is there something we can use here? */ - (SDL_Window*) overrideWindowHandle - ); - swapchainData = (D3D11SwapchainData*) SDL_GetWindowData( - (SDL_Window*) overrideWindowHandle, - WINDOW_SWAPCHAIN_DATA - ); - D3D11_INTERNAL_UpdateSwapchainRT( - renderer, - swapchainData, - DXGI_FORMAT_R8G8B8A8_UNORM /* FIXME: No really where can we get this */ - ); - } - - SDL_LockMutex(renderer->ctxLock); - - if (renderer->backbuffer->type == BACKBUFFER_TYPE_D3D11) - { - /* Resolve the faux-backbuffer if needed */ - if (renderer->backbuffer->multiSampleCount > 1) - { - ID3D11DeviceContext_ResolveSubresource( - renderer->context, - (ID3D11Resource*) renderer->backbuffer->d3d11.resolveBuffer, - 0, - (ID3D11Resource*) renderer->backbuffer->d3d11.colorBuffer, - 0, - XNAToD3D_TextureFormat[renderer->backbuffer->d3d11.surfaceFormat] - ); - } - - /* "Blit" the faux-backbuffer to the swapchain image */ - D3D11_INTERNAL_BlitFauxBackbuffer( - renderer, - swapchainData, - drawableWidth, - drawableHeight - ); - } - - /* Present! */ - IDXGISwapChain_Present(swapchainData->swapchain, renderer->syncInterval, 0); - - /* An overlay program may seize our context and render with it, so - * unlock _after_ we present so the device context is safe in that time - */ - SDL_UnlockMutex(renderer->ctxLock); -} - -/* Drawing */ - -static void D3D11_Clear( - FNA3D_Renderer *driverData, - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - int32_t i; - uint32_t dsClearFlags; - float clearColor[4] = {color->x, color->y, color->z, color->w}; - - SDL_LockMutex(renderer->ctxLock); - - /* Clear color? */ - if (options & FNA3D_CLEAROPTIONS_TARGET) - { - for (i = 0; i < renderer->numRenderTargets; i += 1) - { - /* Clear! */ - ID3D11DeviceContext_ClearRenderTargetView( - renderer->context, - renderer->renderTargetViews[i], - clearColor - ); - } - } - - /* Clear depth/stencil? */ - dsClearFlags = 0; - if (options & FNA3D_CLEAROPTIONS_DEPTHBUFFER) - { - dsClearFlags |= D3D11_CLEAR_DEPTH; - } - if (options & FNA3D_CLEAROPTIONS_STENCIL) - { - dsClearFlags |= D3D11_CLEAR_STENCIL; - } - if (dsClearFlags != 0 && renderer->depthStencilView != NULL) - { - /* Clear! */ - ID3D11DeviceContext_ClearDepthStencilView( - renderer->context, - renderer->depthStencilView, - dsClearFlags, - depth, - (uint8_t) stencil - ); - } - - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_DrawIndexedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dIndices = (D3D11Buffer*) indices; - - SDL_LockMutex(renderer->ctxLock); - - /* Bind index buffer */ - if ( renderer->indexBuffer != d3dIndices->handle || - renderer->indexElementSize != indexElementSize ) - { - renderer->indexBuffer = d3dIndices->handle; - renderer->indexElementSize = indexElementSize; - ID3D11DeviceContext_IASetIndexBuffer( - renderer->context, - d3dIndices->handle, - XNAToD3D_IndexType[indexElementSize], - 0 - ); - } - - /* Set up draw state */ - if (renderer->topology != primitiveType) - { - renderer->topology = primitiveType; - ID3D11DeviceContext_IASetPrimitiveTopology( - renderer->context, - XNAToD3D_Primitive[primitiveType] - ); - } - - /* Draw! */ - ID3D11DeviceContext_DrawIndexed( - renderer->context, - PrimitiveVerts(primitiveType, primitiveCount), - (uint32_t) startIndex, - baseVertex - ); - - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_DrawInstancedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dIndices = (D3D11Buffer*) indices; - - SDL_LockMutex(renderer->ctxLock); - - /* Bind index buffer */ - if ( renderer->indexBuffer != d3dIndices->handle || - renderer->indexElementSize != indexElementSize ) - { - renderer->indexBuffer = d3dIndices->handle; - renderer->indexElementSize = indexElementSize; - ID3D11DeviceContext_IASetIndexBuffer( - renderer->context, - d3dIndices->handle, - XNAToD3D_IndexType[indexElementSize], - 0 - ); - } - - /* Set up draw state */ - if (renderer->topology != primitiveType) - { - renderer->topology = primitiveType; - ID3D11DeviceContext_IASetPrimitiveTopology( - renderer->context, - XNAToD3D_Primitive[primitiveType] - ); - } - - /* Draw! */ - ID3D11DeviceContext_DrawIndexedInstanced( - renderer->context, - PrimitiveVerts(primitiveType, primitiveCount), - instanceCount, - (uint32_t) startIndex, - baseVertex, - 0 - ); - - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_DrawPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - - SDL_LockMutex(renderer->ctxLock); - - /* Bind draw state */ - if (renderer->topology != primitiveType) - { - renderer->topology = primitiveType; - ID3D11DeviceContext_IASetPrimitiveTopology( - renderer->context, - XNAToD3D_Primitive[primitiveType] - ); - } - - /* Draw! */ - ID3D11DeviceContext_Draw( - renderer->context, - (uint32_t) PrimitiveVerts(primitiveType, primitiveCount), - (uint32_t) vertexStart - ); - - SDL_UnlockMutex(renderer->ctxLock); -} - -/* Mutable Render States */ - -static void D3D11_SetViewport(FNA3D_Renderer *driverData, FNA3D_Viewport *viewport) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11_VIEWPORT vp = - { - (float) viewport->x, - (float) viewport->y, - (float) viewport->w, - (float) viewport->h, - viewport->minDepth, - viewport->maxDepth - }; - - if ( renderer->viewport.x != viewport->x || - renderer->viewport.y != viewport->y || - renderer->viewport.w != viewport->w || - renderer->viewport.h != viewport->h || - renderer->viewport.minDepth != viewport->minDepth || - renderer->viewport.maxDepth != viewport->maxDepth ) - { - SDL_LockMutex(renderer->ctxLock); - SDL_memcpy(&renderer->viewport, viewport, sizeof(FNA3D_Viewport)); - ID3D11DeviceContext_RSSetViewports( - renderer->context, - 1, - &vp - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static void D3D11_SetScissorRect(FNA3D_Renderer *driverData, FNA3D_Rect *scissor) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11_RECT rect = - { - scissor->x, - scissor->y, - scissor->x + scissor->w, - scissor->y + scissor->h - }; - - if ( renderer->scissorRect.x != scissor->x || - renderer->scissorRect.y != scissor->y || - renderer->scissorRect.w != scissor->w || - renderer->scissorRect.h != scissor->h ) - { - SDL_LockMutex(renderer->ctxLock); - SDL_memcpy(&renderer->scissorRect, scissor, sizeof(FNA3D_Rect)); - ID3D11DeviceContext_RSSetScissorRects( - renderer->context, - 1, - &rect - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static void D3D11_GetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - *blendFactor = renderer->blendFactor; -} - -static void D3D11_SetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - float factor[4]; - if (!D3D11_INTERNAL_BlendEquals(&renderer->blendFactor, blendFactor)) - { - factor[0] = blendFactor->r / 255.0f; - factor[1] = blendFactor->g / 255.0f; - factor[2] = blendFactor->b / 255.0f; - factor[3] = blendFactor->a / 255.0f; - renderer->blendFactor = *blendFactor; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_OMSetBlendState( - renderer->context, - renderer->blendState, - factor, - renderer->multiSampleMask - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static int32_t D3D11_GetMultiSampleMask(FNA3D_Renderer *driverData) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - return renderer->multiSampleMask; -} - -static void D3D11_SetMultiSampleMask(FNA3D_Renderer *driverData, int32_t mask) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - float factor[4]; - if (renderer->multiSampleMask != mask) - { - renderer->multiSampleMask = mask; - factor[0] = renderer->blendFactor.r / 255.0f; - factor[1] = renderer->blendFactor.g / 255.0f; - factor[2] = renderer->blendFactor.b / 255.0f; - factor[3] = renderer->blendFactor.a / 255.0f; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_OMSetBlendState( - renderer->context, - renderer->blendState, - factor, - renderer->multiSampleMask - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static int32_t D3D11_GetReferenceStencil(FNA3D_Renderer *driverData) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - return renderer->stencilRef; -} - -static void D3D11_SetReferenceStencil(FNA3D_Renderer *driverData, int32_t ref) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - if (renderer->stencilRef != ref) - { - renderer->stencilRef = ref; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_OMSetDepthStencilState( - renderer->context, - renderer->depthStencilState, - (uint32_t) renderer->stencilRef - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -/* Immutable Render States */ - -static void D3D11_SetBlendState( - FNA3D_Renderer *driverData, - FNA3D_BlendState *blendState -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - ID3D11BlendState *bs = D3D11_INTERNAL_FetchBlendState(renderer, blendState); - float factor[4]; - - if ( renderer->blendState != bs || - !D3D11_INTERNAL_BlendEquals(&renderer->blendFactor, &blendState->blendFactor) || - renderer->multiSampleMask != blendState->multiSampleMask ) - { - renderer->blendState = bs; - factor[0] = blendState->blendFactor.r / 255.0f; - factor[1] = blendState->blendFactor.g / 255.0f; - factor[2] = blendState->blendFactor.b / 255.0f; - factor[3] = blendState->blendFactor.a / 255.0f; - renderer->blendFactor = blendState->blendFactor; - renderer->multiSampleMask = blendState->multiSampleMask; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_OMSetBlendState( - renderer->context, - bs, - factor, - (uint32_t) renderer->multiSampleMask - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static void D3D11_SetDepthStencilState( - FNA3D_Renderer *driverData, - FNA3D_DepthStencilState *depthStencilState -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - ID3D11DepthStencilState *ds = D3D11_INTERNAL_FetchDepthStencilState( - renderer, - depthStencilState - ); - - if ( renderer->depthStencilState != ds || - renderer->stencilRef != depthStencilState->referenceStencil ) - { - renderer->depthStencilState = ds; - renderer->stencilRef = depthStencilState->referenceStencil; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_OMSetDepthStencilState( - renderer->context, - ds, - (uint32_t) renderer->stencilRef - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static void D3D11_ApplyRasterizerState( - FNA3D_Renderer *driverData, - FNA3D_RasterizerState *rasterizerState -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - ID3D11RasterizerState *rs = D3D11_INTERNAL_FetchRasterizerState( - renderer, - rasterizerState - ); - - if (renderer->rasterizerState != rs) - { - renderer->rasterizerState = rs; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_RSSetState( - renderer->context, - rs - ); - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static void D3D11_VerifySampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *d3dTexture = (D3D11Texture*) texture; - ID3D11SamplerState *d3dSamplerState; - - if (texture == NULL) - { - if (renderer->textures[index] != &NullTexture) - { - renderer->textures[index] = &NullTexture; - renderer->samplers[index] = NULL; - SDL_LockMutex(renderer->ctxLock); - if (index < MAX_TEXTURE_SAMPLERS) - { - ID3D11DeviceContext_PSSetShaderResources( - renderer->context, - index, - 1, - &NullTexture.shaderView - ); - ID3D11DeviceContext_PSSetSamplers( - renderer->context, - index, - 1, - &renderer->samplers[index] - ); - } - else - { - ID3D11DeviceContext_VSSetShaderResources( - renderer->context, - index - MAX_TEXTURE_SAMPLERS, - 1, - &NullTexture.shaderView - ); - ID3D11DeviceContext_VSSetSamplers( - renderer->context, - index - MAX_TEXTURE_SAMPLERS, - 1, - &renderer->samplers[index] - ); - } - SDL_UnlockMutex(renderer->ctxLock); - } - return; - } - - /* Bind the correct texture */ - if (d3dTexture != renderer->textures[index]) - { - renderer->textures[index] = d3dTexture; - SDL_LockMutex(renderer->ctxLock); - if (index < MAX_TEXTURE_SAMPLERS) - { - ID3D11DeviceContext_PSSetShaderResources( - renderer->context, - index, - 1, - &d3dTexture->shaderView - ); - } - else - { - ID3D11DeviceContext_VSSetShaderResources( - renderer->context, - index - MAX_TEXTURE_SAMPLERS, - 1, - &d3dTexture->shaderView - ); - } - SDL_UnlockMutex(renderer->ctxLock); - } - - /* Update the sampler state, if needed */ - d3dSamplerState = D3D11_INTERNAL_FetchSamplerState( - renderer, - sampler - ); - if (d3dSamplerState != renderer->samplers[index]) - { - renderer->samplers[index] = d3dSamplerState; - SDL_LockMutex(renderer->ctxLock); - if (index < MAX_TEXTURE_SAMPLERS) - { - ID3D11DeviceContext_PSSetSamplers( - renderer->context, - index, - 1, - &d3dSamplerState - ); - } - else - { - ID3D11DeviceContext_VSSetSamplers( - renderer->context, - index - MAX_TEXTURE_SAMPLERS, - 1, - &d3dSamplerState - ); - } - SDL_UnlockMutex(renderer->ctxLock); - } -} - -static void D3D11_VerifyVertexSampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - D3D11_VerifySampler( - driverData, - MAX_TEXTURE_SAMPLERS + index, - texture, - sampler - ); -} - -static void D3D11_ApplyVertexBufferBindings( - FNA3D_Renderer *driverData, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *vertexBuffer; - ID3D11InputLayout *inputLayout; - int32_t i, stride, offset; - uint32_t hash; - - SDL_LockMutex(renderer->ctxLock); - - if (!bindingsUpdated && !renderer->effectApplied) - { - SDL_UnlockMutex(renderer->ctxLock); - return; - } - - /* Translate the bindings array into an input layout */ - inputLayout = D3D11_INTERNAL_FetchBindingsInputLayout( - renderer, - bindings, - numBindings, - &hash - ); - - if (renderer->inputLayout != inputLayout) - { - renderer->inputLayout = inputLayout; - ID3D11DeviceContext_IASetInputLayout( - renderer->context, - inputLayout - ); - } - - /* Bind the vertex buffers */ - for (i = 0; i < numBindings; i += 1) - { - vertexBuffer = (D3D11Buffer*) bindings[i].vertexBuffer; - stride = bindings[i].vertexDeclaration.vertexStride; - offset = bindings[i].vertexOffset * stride; - SDL_assert(vertexBuffer != NULL); - if ( renderer->vertexBuffers[i] != vertexBuffer->handle || - renderer->vertexBufferStrides[i] != stride || - renderer->vertexBufferOffsets[i] != offset ) - { - ID3D11DeviceContext_IASetVertexBuffers( - renderer->context, - i, - 1, - &vertexBuffer->handle, - (uint32_t*) &stride, - (uint32_t*) &offset - ); - - renderer->vertexBuffers[i] = vertexBuffer->handle; - renderer->vertexBufferOffsets[i] = offset; - renderer->vertexBufferStrides[i] = stride; - } - } - - MOJOSHADER_d3d11ProgramReady( - renderer->shaderContext, - (unsigned long long) hash - ); - renderer->effectApplied = 0; - - SDL_UnlockMutex(renderer->ctxLock); -} - -/* Render Targets */ - -static void D3D11_INTERNAL_DiscardTargetTextures( - D3D11Renderer *renderer, - ID3D11RenderTargetView **views, - int32_t numViews -) { - /* For textures that are still bound while this target is about to - * become active, rebind. D3D11 implicitly unsets these to prevent - * simultaneous read/write, but we still have to be explicit to avoid - * warnings from the debug layer. - * -flibit - */ - int32_t i, j, k; - uint8_t bound; - for (i = 0; i < numViews; i += 1) - { - const ID3D11RenderTargetView *view = views[i]; - for (j = 0; j < MAX_TOTAL_SAMPLERS; j += 1) - { - const D3D11Texture *texture = renderer->textures[j]; - if (!texture->isRenderTarget) - { - continue; - } - if (texture->rtType == FNA3D_RENDERTARGET_TYPE_2D) - { - bound = (texture->twod.rtView == view); - } - else - { - bound = 0; - for (k = 0; k < 6; k += 1) - { - if (texture->cube.rtViews[k] == view) - { - bound = 1; - break; - } - } - } - if (bound) - { - if (j < MAX_TEXTURE_SAMPLERS) - { - ID3D11DeviceContext_PSSetShaderResources( - renderer->context, - j, - 1, - &NullTexture.shaderView - ); - ID3D11DeviceContext_PSSetSamplers( - renderer->context, - j, - 1, - &renderer->samplers[j] - ); - } - else - { - ID3D11DeviceContext_VSSetShaderResources( - renderer->context, - j - MAX_TEXTURE_SAMPLERS, - 1, - &NullTexture.shaderView - ); - ID3D11DeviceContext_VSSetSamplers( - renderer->context, - j - MAX_TEXTURE_SAMPLERS, - 1, - &renderer->samplers[j] - ); - } - } - } - } -} - -static void D3D11_INTERNAL_RestoreTargetTextures(D3D11Renderer *renderer) -{ - /* For textures that were bound while this target was active, rebind. - * D3D11 implicitly unsets these to prevent simultaneous read/write. - * -flibit - */ - int32_t i, j, k; - uint8_t bound; - for (i = 0; i < renderer->numRenderTargets; i += 1) - { - const ID3D11RenderTargetView *view = renderer->renderTargetViews[i]; - for (j = 0; j < MAX_TOTAL_SAMPLERS; j += 1) - { - const D3D11Texture *texture = renderer->textures[j]; - if (!texture->isRenderTarget) - { - continue; - } - if (texture->rtType == FNA3D_RENDERTARGET_TYPE_2D) - { - bound = (texture->twod.rtView == view); - } - else - { - bound = 0; - for (k = 0; k < 6; k += 1) - { - if (texture->cube.rtViews[k] == view) - { - bound = 1; - break; - } - } - } - if (bound) - { - if (j < MAX_TEXTURE_SAMPLERS) - { - ID3D11DeviceContext_PSSetShaderResources( - renderer->context, - j, - 1, - &texture->shaderView - ); - ID3D11DeviceContext_PSSetSamplers( - renderer->context, - j, - 1, - &renderer->samplers[j] - ); - } - else - { - ID3D11DeviceContext_VSSetShaderResources( - renderer->context, - j - MAX_TEXTURE_SAMPLERS, - 1, - &texture->shaderView - ); - ID3D11DeviceContext_VSSetSamplers( - renderer->context, - j - MAX_TEXTURE_SAMPLERS, - 1, - &renderer->samplers[j] - ); - } - } - } - } -} - -static void D3D11_SetRenderTargets( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *tex; - D3D11Renderbuffer *rb; - ID3D11RenderTargetView *views[MAX_RENDERTARGET_BINDINGS]; - int32_t i; - - /* Bind the backbuffer, if applicable */ - if (numRenderTargets <= 0) - { - if (renderer->backbuffer->type == BACKBUFFER_TYPE_D3D11) - { - views[0] = renderer->backbuffer->d3d11.colorView; - } - else - { - /* This path is only possible with a single window, 0 is safe */ - views[0] = renderer->swapchainDatas[0]->swapchainRTView; - } - - renderer->currentDepthFormat = renderer->backbuffer->depthFormat; - renderer->depthStencilView = renderer->backbuffer->depthStencilView; - - SDL_LockMutex(renderer->ctxLock); - /* No need to discard textures, this is a backbuffer bind */ - ID3D11DeviceContext_OMSetRenderTargets( - renderer->context, - 1, - views, - renderer->depthStencilView - ); - D3D11_INTERNAL_RestoreTargetTextures(renderer); - SDL_UnlockMutex(renderer->ctxLock); - - renderer->renderTargetViews[0] = views[0]; - for (i = 1; i < MAX_RENDERTARGET_BINDINGS; i += 1) - { - renderer->renderTargetViews[i] = NULL; - } - renderer->numRenderTargets = 1; - return; - } - - /* Update color buffers */ - for (i = 0; i < numRenderTargets; i += 1) - { - if (renderTargets[i].colorBuffer != NULL) - { - rb = (D3D11Renderbuffer*) renderTargets[i].colorBuffer; - views[i] = rb->color.rtView; - } - else - { - tex = (D3D11Texture*) renderTargets[i].texture; - if (tex->rtType == FNA3D_RENDERTARGET_TYPE_2D) - { - views[i] = tex->twod.rtView; - } - else if (tex->rtType == FNA3D_RENDERTARGET_TYPE_CUBE) - { - views[i] = tex->cube.rtViews[ - renderTargets[i].cube.face - ]; - } - } - } - while (i < MAX_RENDERTARGET_BINDINGS) - { - views[i++] = NULL; - } - - /* Update depth stencil buffer */ - renderer->depthStencilView = ( - depthStencilBuffer == NULL ? - NULL : - ((D3D11Renderbuffer*) depthStencilBuffer)->depth.dsView - ); - renderer->currentDepthFormat = ( - depthStencilBuffer == NULL ? - FNA3D_DEPTHFORMAT_NONE : - depthFormat - ); - - /* Actually set the render targets, finally. */ - SDL_LockMutex(renderer->ctxLock); - D3D11_INTERNAL_DiscardTargetTextures(renderer, views, numRenderTargets); - ID3D11DeviceContext_OMSetRenderTargets( - renderer->context, - numRenderTargets, - views, - renderer->depthStencilView - ); - D3D11_INTERNAL_RestoreTargetTextures(renderer); - SDL_UnlockMutex(renderer->ctxLock); - - /* Remember color attachments */ - SDL_memcpy(renderer->renderTargetViews, views, sizeof(views)); - renderer->numRenderTargets = numRenderTargets; -} - -static void D3D11_ResolveTarget( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *target -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *tex = (D3D11Texture*) target->texture; - D3D11Renderbuffer *rb = (D3D11Renderbuffer*) target->colorBuffer; - uint32_t slice = 0; - - SDL_LockMutex(renderer->ctxLock); - - if (target->multiSampleCount > 0) - { - if (target->type == FNA3D_RENDERTARGET_TYPE_CUBE) - { - slice = target->cube.face; - } - ID3D11DeviceContext_ResolveSubresource( - renderer->context, - (ID3D11Resource*) tex->handle, - D3D11_INTERNAL_CalcSubresource(0, slice, tex->levelCount), - (ID3D11Resource*) rb->handle, - 0, - XNAToD3D_TextureFormat[tex->format] - ); - } - - /* If the target has mipmaps, regenerate them now */ - if (target->levelCount > 1) - { - ID3D11DeviceContext_GenerateMips( - renderer->context, - tex->shaderView - ); - } - - SDL_UnlockMutex(renderer->ctxLock); -} - -/* Backbuffer Functions */ - -static void D3D11_INTERNAL_UpdateSwapchainRT( - D3D11Renderer *renderer, - D3D11SwapchainData *swapchainData, - DXGI_FORMAT format -) { - HRESULT res; - ID3D11Texture2D *swapchainTexture; - D3D11_RENDER_TARGET_VIEW_DESC swapchainViewDesc; - - /* Create a render target view for the swapchain */ - swapchainViewDesc.Format = (format == DXGI_FORMAT_R8G8B8A8_UNORM_SRGB) - ? DXGI_FORMAT_R8G8B8A8_UNORM_SRGB - : DXGI_FORMAT_R8G8B8A8_UNORM; - swapchainViewDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; - swapchainViewDesc.Texture2D.MipSlice = 0; - - res = IDXGISwapChain_GetBuffer( - swapchainData->swapchain, - 0, - &D3D_IID_ID3D11Texture2D, - (void**) &swapchainTexture - ); - ERROR_CHECK_RETURN("Could not get buffer from swapchain",) - - res = ID3D11Device_CreateRenderTargetView( - renderer->device, - (ID3D11Resource*) swapchainTexture, - &swapchainViewDesc, - &swapchainData->swapchainRTView - ); - ERROR_CHECK_RETURN("Swapchain RT view creation failed",) - - /* Cleanup is required for any GetBuffer call! */ - ID3D11Texture2D_Release(swapchainTexture); - swapchainTexture = NULL; -} - -static void D3D11_INTERNAL_CreateBackbuffer( - D3D11Renderer *renderer, - FNA3D_PresentationParameters *parameters -) { - uint8_t useFauxBackbuffer; - HRESULT res; - D3D11_TEXTURE2D_DESC colorBufferDesc; - D3D11_RENDER_TARGET_VIEW_DESC colorViewDesc; - D3D11_SHADER_RESOURCE_VIEW_DESC shaderViewDesc; - D3D11_TEXTURE2D_DESC depthStencilDesc; - D3D11_DEPTH_STENCIL_VIEW_DESC depthStencilViewDesc; - D3D11SwapchainData *swapchainData; - FNA3D_SurfaceFormat actualFnaFormat = parameters->backBufferFormat; - DXGI_FORMAT actualDxgiFormat = XNAToD3D_TextureFormat[actualFnaFormat]; - - if ((actualDxgiFormat == DXGI_FORMAT_R8G8B8A8_UNORM_SRGB) && !renderer->supportsSRGBRenderTarget) - { - FNA3D_LogWarn("Could not create an SRGB swapchain because this renderer does not support it. Silently falling back to UNORM."); - actualFnaFormat = FNA3D_SURFACEFORMAT_COLOR; - actualDxgiFormat = DXGI_FORMAT_R8G8B8A8_UNORM; - } - - /* Dispose of the existing backbuffer in preparation for the new one. */ - if (renderer->backbuffer != NULL) - { - D3D11_INTERNAL_DisposeBackbuffer(renderer); - } - - /* Create or update the swapchain */ - if (parameters->deviceWindowHandle != NULL) - { - swapchainData = (D3D11SwapchainData*) SDL_GetWindowData( - (SDL_Window*) parameters->deviceWindowHandle, - WINDOW_SWAPCHAIN_DATA - ); - if (swapchainData == NULL) - { - D3D11_PLATFORM_CreateSwapChain( - renderer, - actualFnaFormat, - parameters->deviceWindowHandle - ); - swapchainData = (D3D11SwapchainData*) SDL_GetWindowData( - (SDL_Window*) parameters->deviceWindowHandle, - WINDOW_SWAPCHAIN_DATA - ); - } - else - { - /* Resize the swapchain to the new window size */ - ID3D11RenderTargetView_Release(swapchainData->swapchainRTView); - res = D3D11_PLATFORM_ResizeSwapChain(renderer, swapchainData); - ERROR_CHECK_RETURN("Could not resize swapchain",) - } - useFauxBackbuffer = renderer->swapchainDataCount > 1; - } - else - { - /* Nothing to update, skip everything involving this */ - swapchainData = NULL; - useFauxBackbuffer = 1; - } - - /* Determine if we should use the faux backbuffer. */ - if (!useFauxBackbuffer) - { - int32_t drawX, drawY; - D3D11_GetDrawableSize( - (SDL_Window*) parameters->deviceWindowHandle, - &drawX, - &drawY - ); - useFauxBackbuffer = ( drawX != parameters->backBufferWidth || - drawY != parameters->backBufferHeight ); - useFauxBackbuffer = ( useFauxBackbuffer || - parameters->multiSampleCount > 0 ); - } - - if (useFauxBackbuffer) - { - if ( renderer->backbuffer == NULL || - renderer->backbuffer->type == BACKBUFFER_TYPE_NULL) - { - /* We need to create a whole new backbuffer struct.*/ - if (renderer->backbuffer != NULL) - { - SDL_free(renderer->backbuffer); - } - renderer->backbuffer = (D3D11Backbuffer*) SDL_malloc( - sizeof(D3D11Backbuffer) - ); - SDL_zerop(renderer->backbuffer); - renderer->backbuffer->type = BACKBUFFER_TYPE_D3D11; - } - - renderer->backbufferSizeChanged = 1; - renderer->backbuffer->width = parameters->backBufferWidth; - renderer->backbuffer->height = parameters->backBufferHeight; - renderer->backbuffer->d3d11.surfaceFormat = actualFnaFormat; - renderer->backbuffer->depthFormat = parameters->depthStencilFormat; - renderer->backbuffer->multiSampleCount = parameters->multiSampleCount; - - /* Create a color buffer at the new resolution */ - colorBufferDesc.Width = renderer->backbuffer->width; - colorBufferDesc.Height = renderer->backbuffer->height; - colorBufferDesc.MipLevels = 1; - colorBufferDesc.ArraySize = 1; - colorBufferDesc.Format = actualDxgiFormat; - colorBufferDesc.SampleDesc.Count = ( - renderer->backbuffer->multiSampleCount > 1 ? - renderer->backbuffer->multiSampleCount : - 1 - ); - colorBufferDesc.SampleDesc.Quality = 0; - colorBufferDesc.Usage = D3D11_USAGE_DEFAULT; - colorBufferDesc.BindFlags = D3D11_BIND_RENDER_TARGET; - if (renderer->backbuffer->multiSampleCount <= 1) - { - colorBufferDesc.BindFlags |= D3D11_BIND_SHADER_RESOURCE; - } - colorBufferDesc.CPUAccessFlags = 0; - colorBufferDesc.MiscFlags = 0; - res = ID3D11Device_CreateTexture2D( - renderer->device, - &colorBufferDesc, - NULL, - &renderer->backbuffer->d3d11.colorBuffer - ); - ERROR_CHECK_RETURN("Backbuffer color buffer creation failed", ) - - /* Create new color buffer view */ - colorViewDesc.Format = colorBufferDesc.Format; - if (renderer->backbuffer->multiSampleCount > 1) - { - colorViewDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DMS; - } - else - { - colorViewDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; - colorViewDesc.Texture2D.MipSlice = 0; - } - res = ID3D11Device_CreateRenderTargetView( - renderer->device, - (ID3D11Resource*) renderer->backbuffer->d3d11.colorBuffer, - &colorViewDesc, - &renderer->backbuffer->d3d11.colorView - ); - ERROR_CHECK_RETURN("Backbuffer color buffer RT view creation failed", ) - - /* Create new resolve texture, if applicable */ - if (renderer->backbuffer->multiSampleCount > 1) - { - colorBufferDesc.Width = renderer->backbuffer->width; - colorBufferDesc.Height = renderer->backbuffer->height; - colorBufferDesc.MipLevels = 1; - colorBufferDesc.ArraySize = 1; - colorBufferDesc.Format = actualDxgiFormat; - colorBufferDesc.SampleDesc.Count = 1; - colorBufferDesc.SampleDesc.Quality = 0; - colorBufferDesc.Usage = D3D11_USAGE_DEFAULT; - colorBufferDesc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - colorBufferDesc.CPUAccessFlags = 0; - colorBufferDesc.MiscFlags = 0; - res = ID3D11Device_CreateTexture2D( - renderer->device, - &colorBufferDesc, - NULL, - &renderer->backbuffer->d3d11.resolveBuffer - ); - ERROR_CHECK_RETURN("Backbuffer multisample resolve buffer creation failed", ) - } - - /* Create new shader resource view */ - shaderViewDesc.Format = colorBufferDesc.Format; - shaderViewDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURE2D; - shaderViewDesc.Texture2D.MipLevels = 1; - shaderViewDesc.Texture2D.MostDetailedMip = 0; - res = ID3D11Device_CreateShaderResourceView( - renderer->device, - (ID3D11Resource*) ( - (renderer->backbuffer->multiSampleCount > 1) ? - renderer->backbuffer->d3d11.resolveBuffer : - renderer->backbuffer->d3d11.colorBuffer - ), - &shaderViewDesc, - &renderer->backbuffer->d3d11.shaderView - ); - ERROR_CHECK_RETURN("Backbuffer shader view creation failed", ) - } - else - { - if ( renderer->backbuffer == NULL || - renderer->backbuffer->type == BACKBUFFER_TYPE_D3D11 ) - { - if (renderer->backbuffer != NULL) - { - SDL_free(renderer->backbuffer); - } - renderer->backbuffer = (D3D11Backbuffer*) SDL_malloc( - sizeof(D3D11Backbuffer) - ); - SDL_zerop(renderer->backbuffer); - renderer->backbuffer->type = BACKBUFFER_TYPE_NULL; - } - - renderer->backbuffer->width = parameters->backBufferWidth; - renderer->backbuffer->height = parameters->backBufferHeight; - renderer->backbuffer->depthFormat = parameters->depthStencilFormat; - renderer->backbuffer->d3d11.surfaceFormat = actualFnaFormat; - renderer->backbuffer->multiSampleCount = 0; - } - - /* Create a depth/stencil buffer, if applicable */ - if (renderer->backbuffer->depthFormat != FNA3D_DEPTHFORMAT_NONE) - { - depthStencilDesc.Width = renderer->backbuffer->width; - depthStencilDesc.Height = renderer->backbuffer->height; - depthStencilDesc.MipLevels = 1; - depthStencilDesc.ArraySize = 1; - depthStencilDesc.Format = XNAToD3D_DepthFormat[renderer->backbuffer->depthFormat]; - depthStencilDesc.SampleDesc.Count = ( - renderer->backbuffer->multiSampleCount > 1 ? - renderer->backbuffer->multiSampleCount : - 1 - ); - depthStencilDesc.SampleDesc.Quality = 0; - depthStencilDesc.Usage = D3D11_USAGE_DEFAULT; - depthStencilDesc.BindFlags = D3D11_BIND_DEPTH_STENCIL; - depthStencilDesc.CPUAccessFlags = 0; - depthStencilDesc.MiscFlags = 0; - res = ID3D11Device_CreateTexture2D( - renderer->device, - &depthStencilDesc, - NULL, - &renderer->backbuffer->depthStencilBuffer - ); - ERROR_CHECK_RETURN("Backbuffer depth-stencil buffer creation failed", ) - - /* Update the depth-stencil view */ - depthStencilViewDesc.Format = depthStencilDesc.Format; - depthStencilViewDesc.Flags = 0; - if (renderer->backbuffer->multiSampleCount > 1) - { - depthStencilViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2DMS; - } - else - { - depthStencilViewDesc.ViewDimension = D3D11_DSV_DIMENSION_TEXTURE2D; - depthStencilViewDesc.Texture2D.MipSlice = 0; - - } - res = ID3D11Device_CreateDepthStencilView( - renderer->device, - (ID3D11Resource*) renderer->backbuffer->depthStencilBuffer, - &depthStencilViewDesc, - &renderer->backbuffer->depthStencilView - ); - ERROR_CHECK_RETURN("Backbuffer depth-stencil view creation failed", ) - } - - if (swapchainData != NULL) - { - D3D11_INTERNAL_UpdateSwapchainRT( - renderer, - swapchainData, - actualDxgiFormat - ); - } - - /* This is the default render target */ - D3D11_SetRenderTargets( - (FNA3D_Renderer*) renderer, - NULL, - 0, - NULL, - FNA3D_DEPTHFORMAT_NONE, - 0 - ); -} - -static void D3D11_INTERNAL_DisposeBackbuffer(D3D11Renderer *renderer) -{ - if (renderer->backbuffer->type == BACKBUFFER_TYPE_D3D11) - { - if (renderer->backbuffer->d3d11.colorBuffer != NULL) - { - ID3D11RenderTargetView_Release(renderer->backbuffer->d3d11.colorView); - renderer->backbuffer->d3d11.colorView = NULL; - - ID3D11ShaderResourceView_Release(renderer->backbuffer->d3d11.shaderView); - renderer->backbuffer->d3d11.shaderView = NULL; - - ID3D11Texture2D_Release(renderer->backbuffer->d3d11.colorBuffer); - renderer->backbuffer->d3d11.colorBuffer = NULL; - } - - if (renderer->backbuffer->d3d11.resolveBuffer != NULL) - { - ID3D11Texture2D_Release(renderer->backbuffer->d3d11.resolveBuffer); - renderer->backbuffer->d3d11.resolveBuffer = NULL; - } - } - - if (renderer->backbuffer->depthStencilBuffer != NULL) - { - ID3D11DepthStencilView_Release(renderer->backbuffer->depthStencilView); - renderer->backbuffer->depthStencilView = NULL; - - ID3D11Texture2D_Release(renderer->backbuffer->depthStencilBuffer); - renderer->backbuffer->depthStencilBuffer = NULL; - } - - if (renderer->backbuffer->stagingBuffer != NULL) - { - ID3D11Texture2D_Release(renderer->backbuffer->stagingBuffer); - renderer->backbuffer->stagingBuffer = NULL; - } -} - -static void D3D11_INTERNAL_SetPresentationInterval( - D3D11Renderer *renderer, - FNA3D_PresentInterval presentInterval -) { - if ( presentInterval == FNA3D_PRESENTINTERVAL_DEFAULT || - presentInterval == FNA3D_PRESENTINTERVAL_ONE ) - { - renderer->syncInterval = 1; - } - else if (presentInterval == FNA3D_PRESENTINTERVAL_TWO) - { - renderer->syncInterval = 2; - } - else if (presentInterval == FNA3D_PRESENTINTERVAL_IMMEDIATE) - { - renderer->syncInterval = 0; - } - else - { - FNA3D_LogError( - "Unrecognized PresentInterval: %d", - presentInterval - ); - } -} - -static void D3D11_ResetBackbuffer( - FNA3D_Renderer *driverData, - FNA3D_PresentationParameters *presentationParameters -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11_INTERNAL_CreateBackbuffer( - renderer, - presentationParameters - ); - D3D11_INTERNAL_SetPresentationInterval( - renderer, - presentationParameters->presentationInterval - ); -} - -static void D3D11_ReadBackbuffer( - FNA3D_Renderer *driverData, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - HRESULT res; - D3D11Texture backbufferTexture; - ID3D11Texture2D *swapchainBuffer = NULL; - - if (renderer->backbuffer->multiSampleCount > 1) - { - /* We have to resolve the backbuffer first. */ - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_ResolveSubresource( - renderer->context, - (ID3D11Resource*) renderer->backbuffer->d3d11.resolveBuffer, - 0, - (ID3D11Resource*) renderer->backbuffer->d3d11.colorBuffer, - 0, - XNAToD3D_TextureFormat[renderer->backbuffer->d3d11.surfaceFormat] - ); - SDL_UnlockMutex(renderer->ctxLock); - } - - /* Create a pseudo-texture we can feed to GetTextureData2D. - * These are the only members we need to initialize. - * -caleb - */ - backbufferTexture.twod.width = renderer->backbuffer->width; - backbufferTexture.twod.height = renderer->backbuffer->height; - backbufferTexture.levelCount = 1; - backbufferTexture.staging = (ID3D11Resource*) renderer->backbuffer->stagingBuffer; - - if (renderer->backbuffer->type == BACKBUFFER_TYPE_D3D11) - { - backbufferTexture.handle = ( - renderer->backbuffer->multiSampleCount > 1 ? - (ID3D11Resource*) renderer->backbuffer->d3d11.resolveBuffer : - (ID3D11Resource*) renderer->backbuffer->d3d11.colorBuffer - ); - backbufferTexture.format = renderer->backbuffer->d3d11.surfaceFormat; - } - else - { - /* This is only possible with a single window/swapchain, 0 should be safe */ - res = IDXGISwapChain_GetBuffer( - renderer->swapchainDatas[0]->swapchain, - 0, - &D3D_IID_ID3D11Texture2D, - (void**) &swapchainBuffer - ); - ERROR_CHECK_RETURN("Could not get buffer from swapchain", ) - - backbufferTexture.handle = (ID3D11Resource*) swapchainBuffer; - backbufferTexture.format = FNA3D_SURFACEFORMAT_COLOR; - } - - D3D11_GetTextureData2D( - driverData, - (FNA3D_Texture*) &backbufferTexture, - x, - y, - w, - h, - 0, - data, - dataLength - ); - - if (swapchainBuffer != NULL) - { - /* Cleanup is required for any GetBuffer call! */ - ID3D11Texture2D_Release(swapchainBuffer); - swapchainBuffer = NULL; - } -} - -static void D3D11_GetBackbufferSize( - FNA3D_Renderer *driverData, - int32_t *w, - int32_t *h -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - *w = renderer->backbuffer->width; - *h = renderer->backbuffer->height; -} - -static FNA3D_SurfaceFormat D3D11_GetBackbufferSurfaceFormat( - FNA3D_Renderer *driverData -) { - /* Copying OpenGL here. -caleb */ - return FNA3D_SURFACEFORMAT_COLOR; -} - -static FNA3D_DepthFormat D3D11_GetBackbufferDepthFormat( - FNA3D_Renderer *driverData -) { - return ((D3D11Renderer*) driverData)->backbuffer->depthFormat; -} - -static int32_t D3D11_GetBackbufferMultiSampleCount( - FNA3D_Renderer *driverData -) { - return ((D3D11Renderer*) driverData)->backbuffer->multiSampleCount; -} - -/* Textures */ - -static FNA3D_Texture* D3D11_CreateTexture2D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *result; - ID3D11Texture2D *texture; - D3D11_TEXTURE2D_DESC desc; - D3D11_RENDER_TARGET_VIEW_DESC rtViewDesc; - HRESULT res; - - /* Initialize descriptor */ - desc.Width = width; - desc.Height = height; - desc.MipLevels = levelCount; - desc.ArraySize = 1; - desc.Format = XNAToD3D_TextureFormat[format]; - desc.SampleDesc.Count = 1; - desc.SampleDesc.Quality = 0; - desc.Usage = D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - desc.CPUAccessFlags = 0; - desc.MiscFlags = 0; - - if (isRenderTarget) - { - desc.BindFlags |= D3D11_BIND_RENDER_TARGET; - desc.MiscFlags = D3D11_RESOURCE_MISC_GENERATE_MIPS; - } - - /* Create the texture */ - res = ID3D11Device_CreateTexture2D( - renderer->device, - &desc, - NULL, - &texture - ); - ERROR_CHECK_RETURN("Texture2D creation failed", NULL) - - /* Initialize D3D11Texture */ - result = (D3D11Texture*) SDL_malloc(sizeof(D3D11Texture)); - SDL_memset(result, '\0', sizeof(D3D11Texture)); - result->handle = (ID3D11Resource*) texture; - result->levelCount = levelCount; - result->isRenderTarget = isRenderTarget; - result->format = format; - result->twod.width = width; - result->twod.height = height; - - /* Create the shader resource view */ - res = ID3D11Device_CreateShaderResourceView( - renderer->device, - result->handle, - NULL, - &result->shaderView - ); - ERROR_CHECK_RETURN("Texture2D shader view creation failed", NULL) - - /* Create the render target view, if applicable */ - if (isRenderTarget) - { - result->rtType = FNA3D_RENDERTARGET_TYPE_2D; - rtViewDesc.Format = desc.Format; - rtViewDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2D; - rtViewDesc.Texture2D.MipSlice = 0; - res = ID3D11Device_CreateRenderTargetView( - renderer->device, - result->handle, - &rtViewDesc, - &result->twod.rtView - ); - ERROR_CHECK_RETURN("Texture2D render target creation failed", NULL) - } - - return (FNA3D_Texture*) result; -} - -static FNA3D_Texture* D3D11_CreateTexture3D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *result; - ID3D11Texture3D *texture; - D3D11_TEXTURE3D_DESC desc; - HRESULT res; - - /* Initialize descriptor */ - desc.Width = width; - desc.Height = height; - desc.Depth = depth; - desc.MipLevels = levelCount; - desc.Format = XNAToD3D_TextureFormat[format]; - desc.Usage = D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - desc.CPUAccessFlags = 0; - desc.MiscFlags = 0; - - /* Create the texture */ - res = ID3D11Device_CreateTexture3D( - renderer->device, - &desc, - NULL, - &texture - ); - ERROR_CHECK_RETURN("Texture3D creation failed", NULL) - - /* Initialize D3D11Texture */ - result = (D3D11Texture*) SDL_malloc(sizeof(D3D11Texture)); - SDL_memset(result, '\0', sizeof(D3D11Texture)); - result->handle = (ID3D11Resource*) texture; - result->levelCount = levelCount; - result->isRenderTarget = 0; - result->format = format; - result->threed.width = width; - result->threed.height = height; - result->threed.depth = depth; - - /* Create the shader resource view */ - res = ID3D11Device_CreateShaderResourceView( - renderer->device, - result->handle, - NULL, - &result->shaderView - ); - ERROR_CHECK_RETURN("Texture3D shader view creation failed", NULL) - - return (FNA3D_Texture*) result; -} - -static FNA3D_Texture* D3D11_CreateTextureCube( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *result; - ID3D11Texture2D *texture; - D3D11_TEXTURE2D_DESC desc; - D3D11_SHADER_RESOURCE_VIEW_DESC srvDesc; - D3D11_RENDER_TARGET_VIEW_DESC rtViewDesc; - int32_t i; - HRESULT res; - - /* Initialize descriptor */ - desc.Width = size; - desc.Height = size; - desc.MipLevels = levelCount; - desc.ArraySize = 6; - desc.Format = XNAToD3D_TextureFormat[format]; - desc.SampleDesc.Count = 1; - desc.SampleDesc.Quality = 0; - desc.Usage = D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_SHADER_RESOURCE; - desc.CPUAccessFlags = 0; - desc.MiscFlags = D3D11_RESOURCE_MISC_TEXTURECUBE; - - if (isRenderTarget) - { - desc.BindFlags |= D3D11_BIND_RENDER_TARGET; - desc.MiscFlags |= D3D11_RESOURCE_MISC_GENERATE_MIPS; - } - - /* Create the texture */ - res = ID3D11Device_CreateTexture2D( - renderer->device, - &desc, - NULL, - &texture - ); - ERROR_CHECK_RETURN("TextureCube creation failed", NULL) - - /* Initialize D3D11Texture */ - result = (D3D11Texture*) SDL_malloc(sizeof(D3D11Texture)); - SDL_memset(result, '\0', sizeof(D3D11Texture)); - result->handle = (ID3D11Resource*) texture; - result->levelCount = levelCount; - result->isRenderTarget = isRenderTarget; - result->format = format; - result->cube.size = size; - - /* Create the shader resource view */ - srvDesc.Format = desc.Format; - srvDesc.ViewDimension = D3D11_SRV_DIMENSION_TEXTURECUBE; - srvDesc.TextureCube.MipLevels = levelCount; - srvDesc.TextureCube.MostDetailedMip = 0; - res = ID3D11Device_CreateShaderResourceView( - renderer->device, - result->handle, - &srvDesc, - &result->shaderView - ); - ERROR_CHECK_RETURN("TextureCube shader view creation failed", NULL) - - /* Create the render target view, if applicable */ - if (isRenderTarget) - { - result->rtType = FNA3D_RENDERTARGET_TYPE_CUBE; - result->cube.rtViews = (ID3D11RenderTargetView**) SDL_malloc( - 6 * sizeof(ID3D11RenderTargetView*) - ); - rtViewDesc.Format = desc.Format; - rtViewDesc.ViewDimension = D3D11_RTV_DIMENSION_TEXTURE2DARRAY; - rtViewDesc.Texture2DArray.ArraySize = 1; /* One slice per view */ - rtViewDesc.Texture2DArray.MipSlice = 0; - for (i = 0; i < 6; i += 1) - { - rtViewDesc.Texture2DArray.FirstArraySlice = i; - res = ID3D11Device_CreateRenderTargetView( - renderer->device, - result->handle, - &rtViewDesc, - &result->cube.rtViews[i] - ); - ERROR_CHECK_RETURN("TextureCube render target view creation failed", NULL) - } - } - - return (FNA3D_Texture*) result; -} - -static void D3D11_AddDisposeTexture( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *tex = (D3D11Texture*) texture; - int32_t i, j; - - /* Unbind the texture */ - for (i = 0; i < MAX_TOTAL_SAMPLERS; i += 1) - { - if (renderer->textures[i] == tex) - { - renderer->textures[i] = &NullTexture; - } - } - - /* Unbind and release the render target views, if applicable */ - if (tex->isRenderTarget) - { - for (i = 0; i < renderer->numRenderTargets; i += 1) - { - if (tex->rtType == FNA3D_RENDERTARGET_TYPE_2D) - { - if (tex->twod.rtView == renderer->renderTargetViews[i]) - { - renderer->renderTargetViews[i] = NULL; - } - } - else if (tex->rtType == FNA3D_RENDERTARGET_TYPE_CUBE) - { - for (j = 0; j < 6; j += 1) - { - if (tex->cube.rtViews[j] == renderer->renderTargetViews[i]) - { - renderer->renderTargetViews[i] = NULL; - } - } - } - } - - if (tex->rtType == FNA3D_RENDERTARGET_TYPE_2D) - { - ID3D11RenderTargetView_Release(tex->twod.rtView); - } - else if (tex->rtType == FNA3D_RENDERTARGET_TYPE_CUBE) - { - for (i = 0; i < 6; i += 1) - { - ID3D11RenderTargetView_Release(tex->cube.rtViews[i]); - } - SDL_free(tex->cube.rtViews); - } - } - - /* Release the shader resource view and texture */ - ID3D11ShaderResourceView_Release(tex->shaderView); - IUnknown_Release(tex->handle); - - SDL_free(texture); -} - -static void D3D11_SetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *d3dTexture = (D3D11Texture*) texture; - D3D11_BOX dstBox; - - int32_t blockSize = Texture_GetBlockSize(d3dTexture->format); - - if (blockSize > 1) - { - w = (w + blockSize - 1) & ~(blockSize - 1); - h = (h + blockSize - 1) & ~(blockSize - 1); - } - - dstBox.left = x; - dstBox.top = y; - dstBox.front = 0; - dstBox.right = x + w; - dstBox.bottom = y + h; - dstBox.back = 1; - - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - d3dTexture->handle, - D3D11_INTERNAL_CalcSubresource(level, 0, d3dTexture->levelCount), - &dstBox, - data, - BytesPerRow(w, d3dTexture->format), - 0 - ); - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_SetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *d3dTexture = (D3D11Texture*) texture; - D3D11_BOX dstBox; - - int32_t blockSize = Texture_GetBlockSize(d3dTexture->format); - - if (blockSize > 1) - { - w = (w + blockSize - 1) & ~(blockSize - 1); - h = (h + blockSize - 1) & ~(blockSize - 1); - } - - dstBox.left = x; - dstBox.top = y; - dstBox.front = z; - dstBox.right = x + w; - dstBox.bottom = y + h; - dstBox.back = z + d; - - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - d3dTexture->handle, - D3D11_INTERNAL_CalcSubresource(level, 0, d3dTexture->levelCount), - &dstBox, - data, - BytesPerRow(w, d3dTexture->format), - BytesPerImage(w, h, d3dTexture->format) - ); - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_SetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *d3dTexture = (D3D11Texture*) texture; - D3D11_BOX dstBox; - - int32_t blockSize = Texture_GetBlockSize(d3dTexture->format); - - if (blockSize > 1) - { - w = (w + blockSize - 1) & ~(blockSize - 1); - h = (h + blockSize - 1) & ~(blockSize - 1); - } - - dstBox.left = x; - dstBox.top = y; - dstBox.front = 0; - dstBox.right = x + w; - dstBox.bottom = y + h; - dstBox.back = 1; - - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - d3dTexture->handle, - D3D11_INTERNAL_CalcSubresource( - level, - cubeMapFace, - d3dTexture->levelCount - ), - &dstBox, - data, - BytesPerRow(w, d3dTexture->format), - BytesPerImage(w, h, d3dTexture->format) - ); - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_SetTextureDataYUV( - FNA3D_Renderer *driverData, - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *d3dY = (D3D11Texture*) y; - D3D11Texture *d3dU = (D3D11Texture*) u; - D3D11Texture *d3dV = (D3D11Texture*) v; - D3D11_BOX yBox = {0, 0, 0, yWidth, yHeight, 1}; - D3D11_BOX uvBox = {0, 0, 0, uvWidth, uvHeight, 1}; - int32_t yRow, uvRow; - uint8_t *dataPtr = (uint8_t*) data; - - yRow = BytesPerRow(yWidth, FNA3D_SURFACEFORMAT_ALPHA8); - uvRow = BytesPerRow(uvWidth, FNA3D_SURFACEFORMAT_ALPHA8); - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - d3dY->handle, - 0, - &yBox, - dataPtr, - yRow, - 0 - ); - dataPtr += yWidth * yHeight; - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - d3dU->handle, - 0, - &uvBox, - dataPtr, - uvRow, - 0 - ); - dataPtr += uvWidth * uvHeight; - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - d3dV->handle, - 0, - &uvBox, - dataPtr, - uvRow, - 0 - ); - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_GetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *tex = (D3D11Texture*) texture; - D3D11_TEXTURE2D_DESC stagingDesc; - ID3D11Resource *stagingTexture; - uint32_t subresourceIndex = D3D11_INTERNAL_CalcSubresource( - level, - 0, - tex->levelCount - ); - int32_t texW = tex->twod.width >> level; - int32_t texH = tex->twod.height >> level; - D3D11_BOX srcBox = {0, 0, 0, texW, texH, 1}; - D3D11_MAPPED_SUBRESOURCE subresource; - uint8_t *dataPtr = (uint8_t*) data; - int32_t row; - int32_t formatSize = Texture_GetFormatSize(tex->format); - HRESULT res; - - if (Texture_GetBlockSize(tex->format) != 1) - { - FNA3D_LogError( - "GetData with compressed textures unsupported!" - ); - return; - } - - /* Create staging texture if needed */ - if (tex->isRenderTarget) - { - stagingTexture = tex->staging; - } - else - { - stagingTexture = NULL; - } - if (stagingTexture == NULL) - { - stagingDesc.Width = tex->twod.width; - stagingDesc.Height = tex->twod.height; - stagingDesc.MipLevels = tex->levelCount; - stagingDesc.ArraySize = 1; - stagingDesc.Format = XNAToD3D_TextureFormat[tex->format]; - stagingDesc.SampleDesc.Count = 1; - stagingDesc.SampleDesc.Quality = 0; - stagingDesc.Usage = D3D11_USAGE_STAGING; - stagingDesc.BindFlags = 0; - stagingDesc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; - stagingDesc.MiscFlags = 0; - - res = ID3D11Device_CreateTexture2D( - renderer->device, - &stagingDesc, - NULL, - (ID3D11Texture2D**) &stagingTexture - ); - ERROR_CHECK_RETURN("Texture2D staging buffer creation failed",) - - /* Targets will probably call this a lot, so try to keep this all the time */ - if (tex->isRenderTarget) - { - tex->staging = stagingTexture; - } - } - - SDL_LockMutex(renderer->ctxLock); - - /* Copy data into staging texture */ - ID3D11DeviceContext_CopySubresourceRegion( - renderer->context, - stagingTexture, - subresourceIndex, - 0, - 0, - 0, - tex->handle, - subresourceIndex, - &srcBox - ); - - /* Read from the staging texture */ - res = ID3D11DeviceContext_Map( - renderer->context, - stagingTexture, - subresourceIndex, - D3D11_MAP_READ, - 0, - &subresource - ); - ERROR_CHECK_UNLOCK_RETURN("Could not map Texture2D for reading",) - for (row = y; row < y + h; row += 1) - { - SDL_memcpy( - dataPtr, - (uint8_t*) subresource.pData + (row * subresource.RowPitch) + (x * formatSize), - formatSize * w - ); - dataPtr += formatSize * w; - } - ID3D11DeviceContext_Unmap( - renderer->context, - stagingTexture, - subresourceIndex - ); - - SDL_UnlockMutex(renderer->ctxLock); - - if (!tex->isRenderTarget) - { - ID3D11Resource_Release(stagingTexture); - } -} - -static void D3D11_GetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - FNA3D_LogError( - "GetTextureData3D is unsupported!" - ); -} - -static void D3D11_GetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Texture *tex = (D3D11Texture*) texture; - D3D11_TEXTURE2D_DESC stagingDesc; - ID3D11Resource *stagingTexture; - uint32_t srcSubresourceIndex = D3D11_INTERNAL_CalcSubresource( - level, - cubeMapFace, - tex->levelCount - ); - uint32_t dstSubresourceIndex = D3D11_INTERNAL_CalcSubresource( - level, - 0, - tex->levelCount - ); - int32_t texSize = tex->cube.size >> level; - D3D11_BOX srcBox = {0, 0, 0, texSize, texSize, 1}; - D3D11_MAPPED_SUBRESOURCE subresource; - uint8_t *dataPtr = (uint8_t*) data; - int32_t row; - int32_t formatSize = Texture_GetFormatSize(tex->format); - HRESULT res; - - if (Texture_GetBlockSize(tex->format) != 1) - { - FNA3D_LogError( - "GetData with compressed textures unsupported!" - ); - return; - } - - /* Create staging texture if needed */ - if (tex->isRenderTarget) - { - stagingTexture = tex->staging; - } - else - { - stagingTexture = NULL; - } - if (stagingTexture == NULL) - { - stagingDesc.Width = tex->cube.size; - stagingDesc.Height = tex->cube.size; - stagingDesc.MipLevels = tex->levelCount; - stagingDesc.ArraySize = 1; - stagingDesc.Format = XNAToD3D_TextureFormat[tex->format]; - stagingDesc.SampleDesc.Count = 1; - stagingDesc.SampleDesc.Quality = 0; - stagingDesc.Usage = D3D11_USAGE_STAGING; - stagingDesc.BindFlags = 0; - stagingDesc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; - stagingDesc.MiscFlags = 0; - - res = ID3D11Device_CreateTexture2D( - renderer->device, - &stagingDesc, - NULL, - (ID3D11Texture2D**) &stagingTexture - ); - ERROR_CHECK_RETURN("TextureCube staging buffer creation failed",) - - /* Targets will probably call this a lot, so try to keep this all the time */ - if (tex->isRenderTarget) - { - tex->staging = stagingTexture; - } - } - - SDL_LockMutex(renderer->ctxLock); - - /* Copy data into staging texture */ - ID3D11DeviceContext_CopySubresourceRegion( - renderer->context, - stagingTexture, - dstSubresourceIndex, - 0, - 0, - 0, - tex->handle, - srcSubresourceIndex, - &srcBox - ); - - /* Read from the staging texture */ - res = ID3D11DeviceContext_Map( - renderer->context, - stagingTexture, - dstSubresourceIndex, - D3D11_MAP_READ, - 0, - &subresource - ); - ERROR_CHECK_UNLOCK_RETURN("Could not map TextureCube for reading",) - for (row = y; row < y + h; row += 1) - { - SDL_memcpy( - dataPtr, - (uint8_t*) subresource.pData + (row * subresource.RowPitch) + (x * formatSize), - formatSize * w - ); - dataPtr += formatSize * w; - } - ID3D11DeviceContext_Unmap( - renderer->context, - stagingTexture, - dstSubresourceIndex - ); - - SDL_UnlockMutex(renderer->ctxLock); - - if (!tex->isRenderTarget) - { - ID3D11Resource_Release(stagingTexture); - } -} - -/* Renderbuffers */ - -static FNA3D_Renderbuffer* D3D11_GenColorRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11_TEXTURE2D_DESC desc; - D3D11Renderbuffer *result; - HRESULT res; - - /* Initialize the renderbuffer */ - result = (D3D11Renderbuffer*) SDL_malloc(sizeof(D3D11Renderbuffer)); - SDL_memset(result, '\0', sizeof(D3D11Renderbuffer)); - result->multiSampleCount = multiSampleCount; - result->type = RENDERBUFFER_COLOR; - result->color.format = format; - - /* Create the backing texture */ - desc.Width = width; - desc.Height = height; - desc.MipLevels = 1; - desc.ArraySize = 1; - desc.Format = XNAToD3D_TextureFormat[format]; - desc.SampleDesc.Count = (multiSampleCount > 1 ? multiSampleCount : 1); - desc.SampleDesc.Quality = ( - multiSampleCount > 1 ? D3D11_STANDARD_MULTISAMPLE_PATTERN : 0 - ); - desc.Usage = D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_RENDER_TARGET; - desc.CPUAccessFlags = 0; - desc.MiscFlags = 0; - - res = ID3D11Device_CreateTexture2D( - renderer->device, - &desc, - NULL, - &result->handle - ); - ERROR_CHECK_RETURN("Color renderbuffer creation failed", NULL) - - /* Create the render target view */ - res = ID3D11Device_CreateRenderTargetView( - renderer->device, - (ID3D11Resource*) result->handle, - NULL, - &result->color.rtView - ); - ERROR_CHECK_RETURN("Color renderbuffer RT view creation failed", NULL) - - return (FNA3D_Renderbuffer*) result; -} - -static FNA3D_Renderbuffer* D3D11_GenDepthStencilRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11_TEXTURE2D_DESC desc; - D3D11Renderbuffer *result; - HRESULT res; - - /* Initialize the renderbuffer */ - result = (D3D11Renderbuffer*) SDL_malloc(sizeof(D3D11Renderbuffer)); - SDL_memset(result, '\0', sizeof(D3D11Renderbuffer)); - result->multiSampleCount = multiSampleCount; - result->type = RENDERBUFFER_DEPTH; - result->depth.format = format; - - /* Create the backing texture */ - desc.Width = width; - desc.Height = height; - desc.MipLevels = 1; - desc.ArraySize = 1; - desc.Format = XNAToD3D_DepthFormat[format]; - desc.SampleDesc.Count = (multiSampleCount > 1 ? multiSampleCount : 1); - desc.SampleDesc.Quality = ( - multiSampleCount > 1 ? D3D11_STANDARD_MULTISAMPLE_PATTERN : 0 - ); - desc.Usage = D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_DEPTH_STENCIL; - desc.CPUAccessFlags = 0; - desc.MiscFlags = 0; - - res = ID3D11Device_CreateTexture2D( - renderer->device, - &desc, - NULL, - &result->handle - ); - ERROR_CHECK_RETURN("Depth-stencil renderbuffer creation failed", NULL) - - /* Create the render target view */ - res = ID3D11Device_CreateDepthStencilView( - renderer->device, - (ID3D11Resource*) result->handle, - NULL, - &result->depth.dsView - ); - ERROR_CHECK_RETURN("Depth-stencil renderbuffer RT view creation failed", NULL) - - return (FNA3D_Renderbuffer*) result; -} - -static void D3D11_AddDisposeRenderbuffer( - FNA3D_Renderer *driverData, - FNA3D_Renderbuffer *renderbuffer -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Renderbuffer *d3dRenderbuffer = (D3D11Renderbuffer*) renderbuffer; - int32_t i; - - if (d3dRenderbuffer->type == RENDERBUFFER_DEPTH) - { - if (d3dRenderbuffer->depth.dsView == renderer->depthStencilView) - { - renderer->depthStencilView = NULL; - } - ID3D11DepthStencilView_Release(d3dRenderbuffer->depth.dsView); - d3dRenderbuffer->depth.dsView = NULL; - } - else - { - for (i = 0; i < MAX_RENDERTARGET_BINDINGS; i += 1) - { - if (d3dRenderbuffer->color.rtView == renderer->renderTargetViews[i]) - { - renderer->renderTargetViews[i] = NULL; - } - } - ID3D11RenderTargetView_Release(d3dRenderbuffer->color.rtView); - } - - ID3D11Texture2D_Release(d3dRenderbuffer->handle); - d3dRenderbuffer->handle = NULL; - SDL_free(renderbuffer); -} - -/* Vertex Buffers */ - -static FNA3D_Buffer* D3D11_GenVertexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *result = (D3D11Buffer*) SDL_malloc(sizeof(D3D11Buffer)); - D3D11_BUFFER_DESC desc; - HRESULT res; - - /* Initialize the descriptor */ - desc.ByteWidth = sizeInBytes; - desc.Usage = dynamic ? D3D11_USAGE_DYNAMIC : D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_VERTEX_BUFFER; - desc.CPUAccessFlags = dynamic ? D3D11_CPU_ACCESS_WRITE : 0; - desc.MiscFlags = 0; - desc.StructureByteStride = 0; - - /* Make the buffer */ - res = ID3D11Device_CreateBuffer( - renderer->device, - &desc, - NULL, - &result->handle - ); - ERROR_CHECK_RETURN("Vertex buffer creation failed", NULL) - - /* Return the result */ - result->dynamic = dynamic; - result->size = desc.ByteWidth; - return (FNA3D_Buffer*) result; -} - -static void D3D11_AddDisposeVertexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dBuffer = (D3D11Buffer*) buffer; - ID3D11Buffer *nullVertexBuffers[] = {NULL}; - uint32_t whatever[1] = {0}; - int32_t i; - - for (i = 0; i < MAX_BOUND_VERTEX_BUFFERS; i += 1) - { - if (renderer->vertexBuffers[i] == d3dBuffer->handle) - { - renderer->vertexBuffers[i] = NULL; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_IASetVertexBuffers( - renderer->context, - i, - 1, - nullVertexBuffers, - whatever, - whatever - ); - SDL_UnlockMutex(renderer->ctxLock); - } - } - - ID3D11Buffer_Release(d3dBuffer->handle); - SDL_free(buffer); -} - -static void D3D11_SetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dBuffer = (D3D11Buffer*) buffer; - D3D11_MAPPED_SUBRESOURCE subres = {0, 0, 0}; - int32_t dataLen = vertexStride * elementCount; - D3D11_BOX dstBox = {offsetInBytes, 0, 0, offsetInBytes + dataLen, 1, 1}; - HRESULT res; - - SDL_LockMutex(renderer->ctxLock); - if (d3dBuffer->dynamic) - { - if ( renderer->debugMode && - options == FNA3D_SETDATAOPTIONS_NONE && - dataLen < d3dBuffer->size ) - { - FNA3D_LogWarn( - "Dynamic buffer using SetDataOptions.None, expect bad performance and broken output!" - ); - } - - res = ID3D11DeviceContext_Map( - renderer->context, - (ID3D11Resource*) d3dBuffer->handle, - 0, - options == FNA3D_SETDATAOPTIONS_NOOVERWRITE ? - D3D11_MAP_WRITE_NO_OVERWRITE : - D3D11_MAP_WRITE_DISCARD, - 0, - &subres - ); - ERROR_CHECK_UNLOCK_RETURN("Could not map vertex buffer for writing",) - SDL_memcpy( - (uint8_t*) subres.pData + offsetInBytes, - data, - dataLen - ); - ID3D11DeviceContext_Unmap( - renderer->context, - (ID3D11Resource*) d3dBuffer->handle, - 0 - ); - } - else - { - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - (ID3D11Resource*) d3dBuffer->handle, - 0, - &dstBox, - data, - dataLen, - dataLen - ); - } - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_GetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dBuffer = (D3D11Buffer*) buffer; - D3D11_BUFFER_DESC desc; - ID3D11Resource *stagingBuffer; - int32_t dataLength = vertexStride * elementCount; - uint8_t *src, *dst; - int32_t i; - D3D11_MAPPED_SUBRESOURCE subres; - D3D11_BOX srcBox = {offsetInBytes, 0, 0, offsetInBytes + dataLength, 1, 1}; - HRESULT res; - - /* Create staging buffer */ - desc.ByteWidth = d3dBuffer->size; - desc.Usage = D3D11_USAGE_STAGING; - desc.BindFlags = 0; - desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; - desc.MiscFlags = 0; - desc.StructureByteStride = 0; - res = ID3D11Device_CreateBuffer( - renderer->device, - &desc, - NULL, - (ID3D11Buffer**) &stagingBuffer - ); - ERROR_CHECK_RETURN("Could not create vertex buffer staging buffer",) - - SDL_LockMutex(renderer->ctxLock); - - /* Copy data into staging buffer */ - ID3D11DeviceContext_CopySubresourceRegion( - renderer->context, - stagingBuffer, - 0, - 0, - 0, - 0, - (ID3D11Resource*) d3dBuffer->handle, - 0, - &srcBox - ); - - /* Read from the staging buffer */ - res = ID3D11DeviceContext_Map( - renderer->context, - stagingBuffer, - 0, - D3D11_MAP_READ, - 0, - &subres - ); - ERROR_CHECK_UNLOCK_RETURN("Could not map vertex buffer for reading",) - if (elementSizeInBytes < vertexStride) - { - dst = (uint8_t*) data; - src = (uint8_t*) subres.pData; - for (i = 0; i < elementCount; i += 1) - { - SDL_memcpy(dst, src, elementSizeInBytes); - dst += elementSizeInBytes; - src += vertexStride; - } - } - else - { - SDL_memcpy( - data, - subres.pData, - dataLength - ); - } - ID3D11DeviceContext_Unmap( - renderer->context, - stagingBuffer, - 0 - ); - - SDL_UnlockMutex(renderer->ctxLock); - - ID3D11Resource_Release(stagingBuffer); -} - -/* Index Buffers */ - -static FNA3D_Buffer* D3D11_GenIndexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *result = (D3D11Buffer*) SDL_malloc(sizeof(D3D11Buffer)); - D3D11_BUFFER_DESC desc; - HRESULT res; - - /* Initialize the descriptor */ - desc.ByteWidth = sizeInBytes; - desc.Usage = dynamic ? D3D11_USAGE_DYNAMIC : D3D11_USAGE_DEFAULT; - desc.BindFlags = D3D11_BIND_INDEX_BUFFER; - desc.CPUAccessFlags = dynamic ? D3D11_CPU_ACCESS_WRITE : 0; - desc.MiscFlags = 0; - desc.StructureByteStride = 0; - - /* Make the buffer */ - res = ID3D11Device_CreateBuffer( - renderer->device, - &desc, - NULL, - &result->handle - ); - ERROR_CHECK_RETURN("Index buffer creation failed", NULL) - - /* Return the result */ - result->dynamic = dynamic; - result->size = desc.ByteWidth; - return (FNA3D_Buffer*) result; -} - -static void D3D11_AddDisposeIndexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dBuffer = (D3D11Buffer*) buffer; - - if (d3dBuffer->handle == renderer->indexBuffer) - { - renderer->indexBuffer = NULL; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_IASetIndexBuffer( - renderer->context, - NULL, - DXGI_FORMAT_R16_UINT, - 0 - ); - SDL_UnlockMutex(renderer->ctxLock); - } - - ID3D11Buffer_Release(d3dBuffer->handle); - SDL_free(buffer); -} - -static void D3D11_SetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dBuffer = (D3D11Buffer*) buffer; - D3D11_MAPPED_SUBRESOURCE subres = {0, 0, 0}; - D3D11_BOX dstBox = {offsetInBytes, 0, 0, offsetInBytes + dataLength, 1, 1}; - HRESULT res; - - SDL_LockMutex(renderer->ctxLock); - if (d3dBuffer->dynamic) - { - if ( renderer->debugMode && - options == FNA3D_SETDATAOPTIONS_NONE && - dataLength < d3dBuffer->size ) - { - FNA3D_LogWarn( - "Dynamic buffer using SetDataOptions.None, expect bad performance and broken output!" - ); - } - - res = ID3D11DeviceContext_Map( - renderer->context, - (ID3D11Resource*) d3dBuffer->handle, - 0, - options == FNA3D_SETDATAOPTIONS_NOOVERWRITE ? - D3D11_MAP_WRITE_NO_OVERWRITE : - D3D11_MAP_WRITE_DISCARD, - 0, - &subres - ); - ERROR_CHECK_UNLOCK_RETURN("Could not map index buffer for writing",) - SDL_memcpy( - (uint8_t*) subres.pData + offsetInBytes, - data, - dataLength - ); - ID3D11DeviceContext_Unmap( - renderer->context, - (ID3D11Resource*) d3dBuffer->handle, - 0 - ); - } - else - { - ID3D11DeviceContext_UpdateSubresource( - renderer->context, - (ID3D11Resource*) d3dBuffer->handle, - 0, - &dstBox, - data, - dataLength, - dataLength - ); - } - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_GetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Buffer *d3dBuffer = (D3D11Buffer*) buffer; - D3D11_BUFFER_DESC desc; - ID3D11Resource *stagingBuffer; - D3D11_MAPPED_SUBRESOURCE subres; - D3D11_BOX srcBox = {offsetInBytes, 0, 0, offsetInBytes + dataLength, 1, 1}; - HRESULT res; - - /* Create staging buffer */ - desc.ByteWidth = d3dBuffer->size; - desc.Usage = D3D11_USAGE_STAGING; - desc.BindFlags = 0; - desc.CPUAccessFlags = D3D11_CPU_ACCESS_READ; - desc.MiscFlags = 0; - desc.StructureByteStride = 0; - res = ID3D11Device_CreateBuffer( - renderer->device, - &desc, - NULL, - (ID3D11Buffer**) &stagingBuffer - ); - ERROR_CHECK_RETURN("Index buffer staging buffer creation failed",) - - SDL_LockMutex(renderer->ctxLock); - - /* Copy data into staging buffer */ - ID3D11DeviceContext_CopySubresourceRegion( - renderer->context, - stagingBuffer, - 0, - 0, - 0, - 0, - (ID3D11Resource*) d3dBuffer->handle, - 0, - &srcBox - ); - - /* Read from the staging buffer */ - res = ID3D11DeviceContext_Map( - renderer->context, - stagingBuffer, - 0, - D3D11_MAP_READ, - 0, - &subres - ); - ERROR_CHECK_UNLOCK_RETURN("Could not map index buffer for reading",) - SDL_memcpy( - data, - subres.pData, - dataLength - ); - ID3D11DeviceContext_Unmap( - renderer->context, - stagingBuffer, - 0 - ); - - SDL_UnlockMutex(renderer->ctxLock); - - ID3D11Resource_Release(stagingBuffer); -} - -/* Effects */ - -static void D3D11_INTERNAL_DeleteShader(const void *ctx, void* shader) -{ - MOJOSHADER_d3d11Shader *d3dShader = (MOJOSHADER_d3d11Shader*) shader; - const MOJOSHADER_parseData *pd; - D3D11Renderer *renderer; - PackedVertexBufferBindingsArray *arr; - int32_t i; - - pd = MOJOSHADER_d3d11GetShaderParseData(d3dShader); - renderer = (D3D11Renderer*) pd->malloc_data; - arr = &renderer->inputLayoutCache; - - /* Run through input layout cache in reverse order, to minimize the - * damage of doing memmove a bunch of times - */ - for (i = arr->count - 1; i >= 0; i -= 1) - { - const PackedVertexBufferBindingsMap *elem = &arr->elements[i]; - if (elem->key.vertexShader == shader) - { - ID3D11InputLayout_Release( - (ID3D11InputLayout*) elem->value - ); - SDL_memmove( - arr->elements + i, - arr->elements + i + 1, - sizeof(PackedVertexBufferBindingsMap) * (arr->count - i - 1) - ); - arr->count -= 1; - } - } - - MOJOSHADER_d3d11DeleteShader(renderer->shaderContext, d3dShader); -} - -static void D3D11_CreateEffect( - FNA3D_Renderer *driverData, - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - int32_t i; - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - MOJOSHADER_effectShaderContext shaderBackend; - D3D11Effect *result; - - shaderBackend.shaderContext = renderer->shaderContext; - shaderBackend.compileShader = (MOJOSHADER_compileShaderFunc) MOJOSHADER_d3d11CompileShader; - shaderBackend.shaderAddRef = (MOJOSHADER_shaderAddRefFunc) MOJOSHADER_d3d11ShaderAddRef; - shaderBackend.deleteShader = D3D11_INTERNAL_DeleteShader; - shaderBackend.getParseData = (MOJOSHADER_getParseDataFunc) MOJOSHADER_d3d11GetShaderParseData; - shaderBackend.bindShaders = (MOJOSHADER_bindShadersFunc) MOJOSHADER_d3d11BindShaders; - shaderBackend.getBoundShaders = (MOJOSHADER_getBoundShadersFunc) MOJOSHADER_d3d11GetBoundShaders; - shaderBackend.mapUniformBufferMemory = (MOJOSHADER_mapUniformBufferMemoryFunc) MOJOSHADER_d3d11MapUniformBufferMemory; - shaderBackend.unmapUniformBufferMemory = (MOJOSHADER_unmapUniformBufferMemoryFunc) MOJOSHADER_d3d11UnmapUniformBufferMemory; - shaderBackend.getError = (MOJOSHADER_getErrorFunc) MOJOSHADER_d3d11GetError; - shaderBackend.m = NULL; - shaderBackend.f = NULL; - shaderBackend.malloc_data = driverData; - - *effectData = MOJOSHADER_compileEffect( - effectCode, - effectCodeLength, - NULL, - 0, - NULL, - 0, - &shaderBackend - ); - - for (i = 0; i < (*effectData)->error_count; i += 1) - { - FNA3D_LogError( - "MOJOSHADER_compileEffect Error: %s", - (*effectData)->errors[i].error - ); - } - - result = (D3D11Effect*) SDL_malloc(sizeof(D3D11Effect)); - result->effect = *effectData; - *effect = (FNA3D_Effect*) result; -} - -static void D3D11_CloneEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *cloneSource, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Effect *d3dCloneSource = (D3D11Effect*) cloneSource; - D3D11Effect *result; - - *effectData = MOJOSHADER_cloneEffect(d3dCloneSource->effect); - if (*effectData == NULL) - { - FNA3D_LogError( - "%s", MOJOSHADER_d3d11GetError(renderer->shaderContext) - ); - } - - result = (D3D11Effect*) SDL_malloc(sizeof(D3D11Effect)); - result->effect = *effectData; - *effect = (FNA3D_Effect*) result; -} - -static void D3D11_AddDisposeEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - MOJOSHADER_effect *effectData = ((D3D11Effect*) effect)->effect; - - SDL_LockMutex(renderer->ctxLock); - if (effectData == renderer->currentEffect) - { - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectEnd(renderer->currentEffect); - renderer->currentEffect = NULL; - renderer->currentTechnique = NULL; - renderer->currentPass = 0; - renderer->effectApplied = 1; - } - MOJOSHADER_deleteEffect(effectData); - SDL_UnlockMutex(renderer->ctxLock); - SDL_free(effect); -} - -static void D3D11_SetEffectTechnique( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -) { - /* FIXME: Why doesn't this function do anything? */ - D3D11Effect *d3dEffect = (D3D11Effect*) effect; - MOJOSHADER_effectSetTechnique(d3dEffect->effect, technique); -} - -static void D3D11_ApplyEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - uint32_t pass, - MOJOSHADER_effectStateChanges *stateChanges -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - MOJOSHADER_effect *effectData = ((D3D11Effect*) effect)->effect; - const MOJOSHADER_effectTechnique *technique = effectData->current_technique; - uint32_t whatever; - - SDL_LockMutex(renderer->ctxLock); - renderer->effectApplied = 1; - if (effectData == renderer->currentEffect) - { - if ( technique == renderer->currentTechnique && - pass == renderer->currentPass ) - { - MOJOSHADER_effectCommitChanges( - renderer->currentEffect - ); - SDL_UnlockMutex(renderer->ctxLock); - return; - } - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectBeginPass(renderer->currentEffect, pass); - renderer->currentTechnique = technique; - renderer->currentPass = pass; - SDL_UnlockMutex(renderer->ctxLock); - return; - } - else if (renderer->currentEffect != NULL) - { - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectEnd(renderer->currentEffect); - } - MOJOSHADER_effectBegin( - effectData, - &whatever, - 0, - stateChanges - ); - MOJOSHADER_effectBeginPass(effectData, pass); - SDL_UnlockMutex(renderer->ctxLock); - renderer->currentEffect = effectData; - renderer->currentTechnique = technique; - renderer->currentPass = pass; -} - -static void D3D11_BeginPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectStateChanges *stateChanges -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - MOJOSHADER_effect *effectData = ((D3D11Effect*) effect)->effect; - uint32_t whatever; - SDL_LockMutex(renderer->ctxLock); - MOJOSHADER_effectBegin( - effectData, - &whatever, - 1, - stateChanges - ); - MOJOSHADER_effectBeginPass(effectData, 0); - renderer->effectApplied = 1; - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_EndPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - MOJOSHADER_effect *effectData = ((D3D11Effect*) effect)->effect; - SDL_LockMutex(renderer->ctxLock); - MOJOSHADER_effectEndPass(effectData); - MOJOSHADER_effectEnd(effectData); - renderer->effectApplied = 1; - SDL_UnlockMutex(renderer->ctxLock); -} - -/* Queries */ - -static FNA3D_Query* D3D11_CreateQuery(FNA3D_Renderer *driverData) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Query *query = (D3D11Query*) SDL_malloc(sizeof(D3D11Query)); - D3D11_QUERY_DESC desc; - HRESULT res; - - desc.Query = D3D11_QUERY_OCCLUSION; - desc.MiscFlags = 0; - - res = ID3D11Device_CreateQuery( - renderer->device, - &desc, - &query->handle - ); - ERROR_CHECK_RETURN("Query creation failed", NULL) - - return (FNA3D_Query*) query; -} - -static void D3D11_AddDisposeQuery( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - D3D11Query *d3dQuery = (D3D11Query*) query; - ID3D11Query_Release(d3dQuery->handle); - SDL_free(query); -} - -static void D3D11_QueryBegin(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Query *d3dQuery = (D3D11Query*) query; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_Begin( - renderer->context, - (ID3D11Asynchronous*) d3dQuery->handle - ); - SDL_UnlockMutex(renderer->ctxLock); -} - -static void D3D11_QueryEnd(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Query *d3dQuery = (D3D11Query*) query; - SDL_LockMutex(renderer->ctxLock); - ID3D11DeviceContext_End( - renderer->context, - (ID3D11Asynchronous*) d3dQuery->handle - ); - SDL_UnlockMutex(renderer->ctxLock); -} - -static uint8_t D3D11_QueryComplete( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Query *d3dQuery = (D3D11Query*) query; - uint8_t result; - SDL_LockMutex(renderer->ctxLock); - result = ID3D11DeviceContext_GetData( - renderer->context, - (ID3D11Asynchronous*) d3dQuery->handle, - NULL, - 0, - 0 - ) == S_OK; - SDL_UnlockMutex(renderer->ctxLock); - return result; -} - -static int32_t D3D11_QueryPixelCount( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - D3D11Query *d3dQuery = (D3D11Query*) query; - uint64_t result; - HRESULT res; - - SDL_LockMutex(renderer->ctxLock); - res = ID3D11DeviceContext_GetData( - renderer->context, - (ID3D11Asynchronous*) d3dQuery->handle, - &result, - sizeof(result), - 0 - ); - ERROR_CHECK("QueryPixelCount failed") - SDL_UnlockMutex(renderer->ctxLock); - - return (int32_t) result; -} - -/* Feature Queries */ - -static uint8_t D3D11_SupportsDXT1(FNA3D_Renderer *driverData) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - return renderer->supportsDxt1; -} - -static uint8_t D3D11_SupportsS3TC(FNA3D_Renderer *driverData) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - return renderer->supportsS3tc; -} - -static uint8_t D3D11_SupportsBC7(FNA3D_Renderer *driverData) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - return renderer->supportsBc7; -} - -static uint8_t D3D11_SupportsHardwareInstancing(FNA3D_Renderer *driverData) -{ - return 1; -} - -static uint8_t D3D11_SupportsNoOverwrite(FNA3D_Renderer *driverData) -{ - return 1; -} - -static uint8_t D3D11_SupportsSRGBRenderTargets(FNA3D_Renderer *driverData) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - return renderer->supportsSRGBRenderTarget; -} - -static void D3D11_GetMaxTextureSlots( - FNA3D_Renderer *driverData, - int32_t *textures, - int32_t *vertexTextures -) { - *textures = D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; - *vertexTextures = D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT; -} - -static int32_t D3D11_GetMaxMultiSampleCount( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - uint32_t levels; - do - { - /* FIXME: This returns a result code, but the - * docs don't say if/when it can fail... - */ - ID3D11Device_CheckMultisampleQualityLevels( - renderer->device, - XNAToD3D_TextureFormat[format], - multiSampleCount, - &levels - ); - if (levels > 0) - { - break; - } - multiSampleCount >>= 1; - } while (multiSampleCount > 0); - return multiSampleCount; -} - -/* Debugging */ - -static void D3D11_SetStringMarker(FNA3D_Renderer *driverData, const char *text) -{ - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - wchar_t wstr[256]; - wchar_t *out = wstr; - size_t inlen, outlen, result; - - if (renderer->iconv == NULL) - { - renderer->iconv = SDL_iconv_open("WCHAR_T", "UTF-8"); - SDL_assert(renderer->iconv); - } - - /* Convert... */ - inlen = SDL_strlen(text) + 1; - outlen = sizeof(wstr); - result = SDL_iconv( - renderer->iconv, - &text, - &inlen, - (char**) &out, - &outlen - ); - - /* Check... */ - switch (result) - { - case SDL_ICONV_ERROR: - case SDL_ICONV_E2BIG: - case SDL_ICONV_EILSEQ: - case SDL_ICONV_EINVAL: - FNA3D_LogWarn("Failed to convert string marker to wchar_t!"); - return; - default: - break; - } - - /* Mark, finally. */ - ID3DUserDefinedAnnotation_SetMarker(renderer->annotation, wstr); -} - -/* External Interop */ - -static void D3D11_GetSysRenderer( - FNA3D_Renderer *driverData, - FNA3D_SysRendererEXT *sysrenderer -) { - D3D11Renderer *renderer = (D3D11Renderer*) driverData; - - sysrenderer->rendererType = FNA3D_RENDERER_TYPE_D3D11_EXT; - sysrenderer->renderer.d3d11.device = renderer->device; - sysrenderer->renderer.d3d11.context = renderer->context; -} - -static FNA3D_Texture* D3D11_CreateSysTexture( - FNA3D_Renderer *driverData, - FNA3D_SysTextureEXT *systexture -) { - D3D11Texture *result; - - if (systexture->rendererType != FNA3D_RENDERER_TYPE_D3D11_EXT) - { - return NULL; - } - - result = (D3D11Texture*) SDL_malloc(sizeof(D3D11Texture)); - SDL_zerop(result); - - result->handle = (ID3D11Resource*) systexture->texture.d3d11.handle; - result->shaderView = (ID3D11ShaderResourceView*) systexture->texture.d3d11.shaderView; - - /* Everything else either happens to be 0 or is unused anyway! */ - - IUnknown_AddRef(result->handle); - ID3D11ShaderResourceView_AddRef(result->shaderView); - return (FNA3D_Texture*) result; -} - -/* Driver */ - -static uint8_t D3D11_PrepareWindowAttributes(uint32_t *flags) -{ - void* module; - PFN_D3D11_CREATE_DEVICE D3D11CreateDeviceFunc; - MOJOSHADER_d3d11Context *shaderContext; - D3D_FEATURE_LEVEL levels[] = - { - D3D_FEATURE_LEVEL_11_1, - D3D_FEATURE_LEVEL_11_0, - D3D_FEATURE_LEVEL_10_1, - D3D_FEATURE_LEVEL_10_0 - }; - HRESULT res; - - /* Check to see if we can compile HLSL */ - shaderContext = MOJOSHADER_d3d11CreateContext( - NULL, - NULL, - NULL, - NULL, - NULL - ); - if (shaderContext == NULL) - { - return 0; - } - MOJOSHADER_d3d11DestroyContext(shaderContext); - - module = D3D11_PLATFORM_LoadD3D11(); - if (module == NULL) - { - return 0; - } - D3D11CreateDeviceFunc = D3D11_PLATFORM_GetCreateDeviceFunc(module); - if (D3D11CreateDeviceFunc == NULL) - { - SDL_UnloadObject(module); - return 0; - } - - res = D3D11CreateDeviceFunc( - NULL, - D3D_DRIVER_TYPE_HARDWARE, - NULL, - D3D11_CREATE_DEVICE_BGRA_SUPPORT, - levels, - SDL_arraysize(levels), - D3D11_SDK_VERSION, - NULL, - NULL, - NULL - ); - - if (FAILED(res)) - { - FNA3D_LogWarn("Creating device with feature level 11_1 failed. Lowering feature level.", res); - res = D3D11CreateDeviceFunc( - NULL, - D3D_DRIVER_TYPE_HARDWARE, - NULL, - D3D11_CREATE_DEVICE_BGRA_SUPPORT, - &levels[1], - SDL_arraysize(levels) - 1, - D3D11_SDK_VERSION, - NULL, - NULL, - NULL - ); - } - - D3D11_PLATFORM_UnloadD3D11(module); - - if (FAILED(res)) - { - FNA3D_LogWarn("D3D11 is unsupported! Error Code: %08X", res); - return 0; - } - - /* No window flags required */ - SDL_SetHint(SDL_HINT_VIDEO_EXTERNAL_CONTEXT, "1"); -#ifdef FNA3D_DXVK_NATIVE - /* ... unless this is DXVK */ - *flags = SDL_WINDOW_VULKAN; -#endif /* FNA3D_DXVK_NATIVE */ - return 1; -} - -static void D3D11_GetDrawableSize(void* window, int32_t *w, int32_t *h) -{ -#ifdef FNA3D_DXVK_NATIVE - SDL_Vulkan_GetDrawableSize((SDL_Window*) window, w, h); -#else - SDL_GetWindowSize((SDL_Window*) window, w, h); -#endif /* FNA3D_DXVK_NATIVE */ -} - -static void D3D11_INTERNAL_InitializeFauxBackbufferResources( - D3D11Renderer *renderer, - uint8_t scaleNearest -) { - D3D11_INPUT_ELEMENT_DESC ePosition; - D3D11_INPUT_ELEMENT_DESC eTexcoord; - D3D11_INPUT_ELEMENT_DESC elements[2]; - D3D11_SAMPLER_DESC samplerDesc; - D3D11_BUFFER_DESC vbufDesc; - uint16_t indices[] = - { - 0, 1, 3, - 1, 2, 3 - }; - D3D11_SUBRESOURCE_DATA indicesData; - D3D11_BUFFER_DESC ibufDesc; - D3D11_RASTERIZER_DESC rastDesc; - D3D11_BLEND_DESC blendDesc; - HRESULT res; - - /* Compile the shader binaries */ - res = ID3D11Device_CreateVertexShader( - renderer->device, - FAUX_BLIT_VERTEX_SHADER, - sizeof(FAUX_BLIT_VERTEX_SHADER), - NULL, - &renderer->fauxBackbufferResources.vertexShader - ); - ERROR_CHECK_RETURN("Backbuffer vshader creation failed",) - res = ID3D11Device_CreatePixelShader( - renderer->device, - FAUX_BLIT_PIXEL_SHADER, - sizeof(FAUX_BLIT_PIXEL_SHADER), - NULL, - &renderer->fauxBackbufferResources.pixelShader - ); - ERROR_CHECK_RETURN("Backbuffer pshader creation failed",) - - /* Create the vertex shader input layout */ - ePosition.SemanticName = "SV_POSITION"; - ePosition.SemanticIndex = 0; - ePosition.Format = DXGI_FORMAT_R32G32_FLOAT; - ePosition.InputSlot = 0; - ePosition.AlignedByteOffset = 0; - ePosition.InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA; - ePosition.InstanceDataStepRate = 0; - - eTexcoord.SemanticName = "TEXCOORD"; - eTexcoord.SemanticIndex = 0; - eTexcoord.Format = DXGI_FORMAT_R32G32_FLOAT; - eTexcoord.InputSlot = 0; - eTexcoord.AlignedByteOffset = sizeof(float) * 2; - eTexcoord.InputSlotClass = D3D11_INPUT_PER_VERTEX_DATA; - eTexcoord.InstanceDataStepRate = 0; - - elements[0] = ePosition; - elements[1] = eTexcoord; - res = ID3D11Device_CreateInputLayout( - renderer->device, - elements, - 2, - FAUX_BLIT_VERTEX_SHADER, - sizeof(FAUX_BLIT_VERTEX_SHADER), - &renderer->fauxBackbufferResources.inputLayout - ); - ERROR_CHECK_RETURN("Backbuffer input layout creation failed",) - - /* Create the faux backbuffer sampler state */ - samplerDesc.Filter = ( - scaleNearest ? - D3D11_FILTER_MIN_MAG_MIP_POINT : - D3D11_FILTER_MIN_MAG_MIP_LINEAR - ); - samplerDesc.AddressU = D3D11_TEXTURE_ADDRESS_CLAMP; - samplerDesc.AddressV = D3D11_TEXTURE_ADDRESS_CLAMP; - samplerDesc.AddressW = D3D11_TEXTURE_ADDRESS_CLAMP; - samplerDesc.MipLODBias = 0; - samplerDesc.MaxAnisotropy = 1; - samplerDesc.ComparisonFunc = D3D11_COMPARISON_ALWAYS; - samplerDesc.MinLOD = 0; - samplerDesc.MaxLOD = 0; - res = ID3D11Device_CreateSamplerState( - renderer->device, - &samplerDesc, - &renderer->fauxBackbufferResources.samplerState - ); - ERROR_CHECK_RETURN("Backbuffer sampler state creation failed",) - - /* Create the faux backbuffer vertex buffer */ - vbufDesc.ByteWidth = 16 * sizeof(float); - vbufDesc.Usage = D3D11_USAGE_DYNAMIC; - vbufDesc.BindFlags = D3D11_BIND_VERTEX_BUFFER; - vbufDesc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE; - vbufDesc.MiscFlags = 0; - vbufDesc.StructureByteStride = 0; - res = ID3D11Device_CreateBuffer( - renderer->device, - &vbufDesc, - NULL, - &renderer->fauxBackbufferResources.vertexBuffer - ); - ERROR_CHECK_RETURN("Backbuffer vertex buffer creation failed",) - - /* Initialize faux backbuffer index data */ - indicesData.pSysMem = &indices[0]; - indicesData.SysMemPitch = 0; - indicesData.SysMemSlicePitch = 0; - - /* Create the faux backbuffer index buffer */ - ibufDesc.ByteWidth = 6 * sizeof(uint16_t); - ibufDesc.Usage = D3D11_USAGE_IMMUTABLE; - ibufDesc.BindFlags = D3D11_BIND_INDEX_BUFFER; - ibufDesc.CPUAccessFlags = 0; - ibufDesc.MiscFlags = 0; - ibufDesc.StructureByteStride = 0; - res = ID3D11Device_CreateBuffer( - renderer->device, - &ibufDesc, - &indicesData, - &renderer->fauxBackbufferResources.indexBuffer - ); - ERROR_CHECK_RETURN("Backbuffer index buffer creation failed",) - - /* Create the faux backbuffer rasterizer state */ - rastDesc.AntialiasedLineEnable = 0; - rastDesc.CullMode = D3D11_CULL_NONE; - rastDesc.DepthBias = 0; - rastDesc.DepthBiasClamp = 0; - rastDesc.DepthClipEnable = 1; - rastDesc.FillMode = D3D11_FILL_SOLID; - rastDesc.FrontCounterClockwise = 0; - rastDesc.MultisampleEnable = 0; - rastDesc.ScissorEnable = 0; - rastDesc.SlopeScaledDepthBias = 0; - res = ID3D11Device_CreateRasterizerState( - renderer->device, - &rastDesc, - &renderer->fauxBackbufferResources.rasterizerState - ); - ERROR_CHECK_RETURN("Backbuffer rasterizer state creation failed",) - - /* Create the faux backbuffer blend state */ - SDL_zero(blendDesc); - blendDesc.AlphaToCoverageEnable = 0; - blendDesc.IndependentBlendEnable = 0; - blendDesc.RenderTarget[0].BlendEnable = 0; - blendDesc.RenderTarget[0].SrcBlend = D3D11_BLEND_ONE; - blendDesc.RenderTarget[0].DestBlend = D3D11_BLEND_ZERO; - blendDesc.RenderTarget[0].BlendOp = D3D11_BLEND_OP_ADD; - blendDesc.RenderTarget[0].SrcBlendAlpha = D3D11_BLEND_ONE; - blendDesc.RenderTarget[0].DestBlendAlpha = D3D11_BLEND_ZERO; - blendDesc.RenderTarget[0].BlendOpAlpha = D3D11_BLEND_OP_ADD; - blendDesc.RenderTarget[0].RenderTargetWriteMask = D3D11_COLOR_WRITE_ENABLE_ALL; - res = ID3D11Device_CreateBlendState( - renderer->device, - &blendDesc, - &renderer->fauxBackbufferResources.blendState - ); - ERROR_CHECK_RETURN("Backbuffer blend state creation failed",) -} - -static FNA3D_Device* D3D11_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -) { - FNA3D_Device *result; - D3D11Renderer *renderer; - DXGI_ADAPTER_DESC1 adapterDesc; - PFN_D3D11_CREATE_DEVICE D3D11CreateDeviceFunc; - D3D_FEATURE_LEVEL levels[] = - { - D3D_FEATURE_LEVEL_11_1, - D3D_FEATURE_LEVEL_11_0, - D3D_FEATURE_LEVEL_10_1, - D3D_FEATURE_LEVEL_10_0 - }; - uint32_t flags, supportsDxt3, supportsDxt5, supportsSrgb; - int32_t i; - HRESULT res; - - /* Allocate and zero out the renderer */ - renderer = (D3D11Renderer*) SDL_malloc(sizeof(D3D11Renderer)); - SDL_memset(renderer, '\0', sizeof(D3D11Renderer)); - - /* Load CreateDXGIFactory1 */ - res = D3D11_PLATFORM_CreateDXGIFactory( - &renderer->dxgi_dll, - &renderer->factory - ); - ERROR_CHECK_RETURN("Could not create DXGIFactory", NULL) - D3D11_PLATFORM_GetDefaultAdapter( - renderer->factory, - &renderer->adapter - ); - - IDXGIAdapter1_GetDesc1(renderer->adapter, &adapterDesc); - - /* Load D3D11CreateDevice */ - renderer->d3d11_dll = D3D11_PLATFORM_LoadD3D11(); - if (renderer->d3d11_dll == NULL) - { - FNA3D_LogError("Could not find " D3D11_DLL); - return NULL; - } - D3D11CreateDeviceFunc = D3D11_PLATFORM_GetCreateDeviceFunc( - renderer->d3d11_dll - ); - if (D3D11CreateDeviceFunc == NULL) - { - FNA3D_LogError("Could not load function D3D11CreateDevice!"); - return NULL; - } - - /* Create the D3D11Device */ - flags = D3D11_CREATE_DEVICE_BGRA_SUPPORT; - if (debugMode) - { - flags |= D3D11_CREATE_DEVICE_DEBUG; - } - - /* We attempt to create a device a maximum of four times: - * - * - Feature levels 11_1 and 11_0 - * - Debug and Non-Debug mode - * - * We have to test 11_1 explicitly because unlike the rest of the array - * it fails without testing the others, probably because the enum is - * unrecognized by older Windows releases. - * - * As you'd expect, we only try debug mode if it was requested by the - * application. But, regardless of mode, we check all the feature levels - * before trying a different mode, because inverting the test matrix - * would break if, for example, a debug app did have the debug layer but - * didn't have 11_1. - * - * So, the final order of the worst case scenario: - * 1. Debug 11_1 - * 2. Debug 11_0 - * 3. Normal 11_1 <- Release builds should start here - * 4. Normal 11_0 - * - * -flibit - */ -try_create_device: - for (i = 0; i < 2; i += 1) - { - res = D3D11CreateDeviceFunc( - (IDXGIAdapter*) renderer->adapter, - D3D_DRIVER_TYPE_UNKNOWN, /* Must be UNKNOWN if adapter is non-null according to spec */ - NULL, - flags, - &levels[i], - SDL_arraysize(levels) - i, - D3D11_SDK_VERSION, - &renderer->device, - &renderer->featureLevel, - &renderer->context - ); - if (SUCCEEDED(res)) - { - /* It worked! */ - if (i == 1) - { - FNA3D_LogWarn("Feature level 11_1 was not available, fell back to 11_0!"); - } - break; - } - } - if (FAILED(res) && debugMode) - { - /* Creating a debug mode device will fail on some systems due to the necessary - * debug infrastructure not being available. Remove the debug flag and retry. - */ - FNA3D_LogWarn("Creating device in debug mode failed with error %08X. Trying non-debug.", res); - flags ^= D3D11_CREATE_DEVICE_DEBUG; - debugMode = 0; - goto try_create_device; - } - - ERROR_CHECK_RETURN("Could not create D3D11Device", NULL) - - /* Print driver info */ - FNA3D_LogInfo("FNA3D Driver: D3D11"); - FNA3D_LogInfo("D3D11 Adapter: %S", adapterDesc.Description); - - /* Determine DXT/S3TC support. - * Note that we do NOT error check the return values! - */ - ID3D11Device_CheckFormatSupport( - renderer->device, - XNAToD3D_TextureFormat[FNA3D_SURFACEFORMAT_DXT1], - &renderer->supportsDxt1 - ); - ID3D11Device_CheckFormatSupport( - renderer->device, - XNAToD3D_TextureFormat[FNA3D_SURFACEFORMAT_DXT3], - &supportsDxt3 - ); - ID3D11Device_CheckFormatSupport( - renderer->device, - XNAToD3D_TextureFormat[FNA3D_SURFACEFORMAT_DXT5], - &supportsDxt5 - ); - ID3D11Device_CheckFormatSupport( - renderer->device, - XNAToD3D_TextureFormat[FNA3D_SURFACEFORMAT_BC7_EXT], - &renderer->supportsBc7 - ); - renderer->supportsS3tc = (supportsDxt3 || supportsDxt5); - ID3D11Device_CheckFormatSupport( - renderer->device, - XNAToD3D_TextureFormat[FNA3D_SURFACEFORMAT_COLORSRGB_EXT], - &supportsSrgb - ); - renderer->supportsSRGBRenderTarget = supportsSrgb; - - /* Initialize MojoShader context */ - renderer->shaderContext = MOJOSHADER_d3d11CreateContext( - renderer->device, - renderer->context, - NULL, - NULL, - renderer - ); - - /* Initialize texture and sampler collections */ - for (i = 0; i < MAX_TOTAL_SAMPLERS; i += 1) - { - renderer->textures[i] = &NullTexture; - renderer->samplers[i] = NULL; - } - - /* Initialize SetStringMarker support, if available */ - if (renderer->featureLevel == D3D_FEATURE_LEVEL_11_1) - { - res = ID3D11DeviceContext_QueryInterface( - renderer->context, - &D3D_IID_ID3DUserDefinedAnnotation, - (void**) &renderer->annotation - ); - ERROR_CHECK("Could not get UserDefinedAnnotation") - } - else - { - FNA3D_LogInfo("SetStringMarker not supported!"); - } - - /* Initialize renderer members not covered by SDL_memset('\0') */ - renderer->debugMode = flags & D3D11_CREATE_DEVICE_DEBUG; - renderer->blendFactor.r = 0xFF; - renderer->blendFactor.g = 0xFF; - renderer->blendFactor.b = 0xFF; - renderer->blendFactor.a = 0xFF; - renderer->multiSampleMask = -1; /* AKA 0xFFFFFFFF, ugh -flibit */ - renderer->topology = (FNA3D_PrimitiveType) -1; /* Force an update */ - - /* Initialize the faux backbuffer */ - renderer->swapchainDataCapacity = 1; - renderer->swapchainDataCount = 0; - renderer->swapchainDatas = SDL_malloc(renderer->swapchainDataCapacity * sizeof(D3D11SwapchainData*)); - D3D11_INTERNAL_CreateBackbuffer(renderer, presentationParameters); - - /* Create any pipeline resources required for the faux backbuffer */ - D3D11_INTERNAL_InitializeFauxBackbufferResources( - renderer, - SDL_GetHintBoolean("FNA3D_BACKBUFFER_SCALE_NEAREST", SDL_FALSE) - ); - - /* Set presentation interval */ - D3D11_INTERNAL_SetPresentationInterval( - renderer, - presentationParameters->presentationInterval - ); - - /* A mutex, for ID3D11Context */ - renderer->ctxLock = SDL_CreateMutex(); - - /* Create and return the FNA3D_Device */ - result = (FNA3D_Device*) SDL_malloc(sizeof(FNA3D_Device)); - result->driverData = (FNA3D_Renderer*) renderer; - ASSIGN_DRIVER(D3D11) - return result; -} - -#ifdef __WINRT__ - -/* WinRT Platform Implementation */ - -static void* D3D11_PLATFORM_LoadD3D11() -{ - return (size_t) 69420; -} - -static void D3D11_PLATFORM_UnloadD3D11(void* module) -{ - /* No-op */ -} - -static PFN_D3D11_CREATE_DEVICE D3D11_PLATFORM_GetCreateDeviceFunc(void* module) -{ - return D3D11CreateDevice; -} - -static HRESULT D3D11_PLATFORM_CreateDXGIFactory( - void** module, - void** factory -) { - return CreateDXGIFactory1( - &D3D_IID_IDXGIFactory2, - factory - ); -} - -static void D3D11_PLATFORM_UnloadDXGI(void* module) -{ - /* No-op */ -} - -static void D3D11_PLATFORM_GetDefaultAdapter( - void* factory, - IDXGIAdapter1 **adapter -) { - IDXGIFactory2_EnumAdapters1( - (IDXGIFactory2*) factory, - 0, - adapter - ); -} - -static void D3D11_PLATFORM_CreateSwapChain( - D3D11Renderer *renderer, - FNA3D_SurfaceFormat backBufferFormat, - void *windowHandle -) { - IDXGISwapChain *swapchain; - D3D11SwapchainData *swapchainData; - DXGI_SWAP_CHAIN_DESC1 swapchainDesc; - HRESULT res; - SDL_SysWMinfo info; - - SDL_VERSION(&info.version); - SDL_GetWindowWMInfo((SDL_Window*) windowHandle, &info); - - /* Initialize swapchain descriptor */ - swapchainDesc.Width = 0; - swapchainDesc.Height = 0; - swapchainDesc.Format = XNAToD3D_TextureFormat[backBufferFormat]; - swapchainDesc.Stereo = 0; - swapchainDesc.SampleDesc.Count = 1; - swapchainDesc.SampleDesc.Quality = 0; - swapchainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - swapchainDesc.BufferCount = 3; - swapchainDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; - swapchainDesc.SwapEffect = DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL; - swapchainDesc.AlphaMode = DXGI_ALPHA_MODE_UNSPECIFIED; - swapchainDesc.Flags = 0; - - /* Create the swap chain! */ - res = IDXGIFactory2_CreateSwapChainForCoreWindow( - (IDXGIFactory2*) renderer->factory, - (IUnknown*) renderer->device, - (IUnknown*) info.info.winrt.window, - &swapchainDesc, - NULL, - (IDXGISwapChain1**) &swapchain - ); - ERROR_CHECK("Could not create swapchain") - - swapchainData = (D3D11SwapchainData*) SDL_malloc(sizeof(D3D11SwapchainData)); - swapchainData->swapchain = swapchain; - swapchainData->windowHandle = windowHandle; - swapchainData->swapchainRTView = NULL; - SDL_SetWindowData((SDL_Window*) windowHandle, WINDOW_SWAPCHAIN_DATA, swapchainData); - if (renderer->swapchainDataCount >= renderer->swapchainDataCapacity) - { - renderer->swapchainDataCapacity *= 2; - renderer->swapchainDatas = SDL_realloc( - renderer->swapchainDatas, - renderer->swapchainDataCapacity * sizeof(D3D11SwapchainData*) - ); - } - renderer->swapchainDatas[renderer->swapchainDataCount] = swapchainData; - renderer->swapchainDataCount += 1; -} - -static HRESULT D3D11_PLATFORM_ResizeSwapChain( - D3D11Renderer *renderer, - D3D11SwapchainData *swapchainData -) { - /* FIXME: MASSIVE XBOX REGRESSION!!! - * An update to the Xbox OS went out on August 2021, and immediately - * broke a ton of games including ID@Xbox titles. Some were even pulled - * from the Microsoft Store! - * - * Reports were filed but Microsoft pretty plainly said it wasn't a - * priority to fix the issue (read: breaking userspace is not a big deal - * anymore?), but we found out that it's just that their latest DXGI is - * broken and doesn't check the window size, instead clamping input to - * be >= 8. If we trust the window size is correct we can pass those - * values instead of passing (0, 0) like we're supposed to be able to. - * - * -flibit - */ - int w, h; - SDL_GetWindowSize((SDL_Window*) swapchainData->windowHandle, &w, &h); - return IDXGISwapChain_ResizeBuffers( - swapchainData->swapchain, - 0, /* keep # of buffers the same */ - w, - h, - DXGI_FORMAT_UNKNOWN, /* keep the old format */ - 0 - ); -} - -#else - -/* Win32 Platform Implementation */ - -static void* D3D11_PLATFORM_LoadD3D11() -{ - return SDL_LoadObject(D3D11_DLL); -} - -static void D3D11_PLATFORM_UnloadD3D11(void* module) -{ - SDL_UnloadObject(module); -} - -static PFN_D3D11_CREATE_DEVICE D3D11_PLATFORM_GetCreateDeviceFunc(void* module) -{ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" - return (PFN_D3D11_CREATE_DEVICE) SDL_LoadFunction( - module, - "D3D11CreateDevice" - ); -#pragma GCC diagnostic pop -} - -static HRESULT D3D11_PLATFORM_CreateDXGIFactory( - void** module, - void** factory -) { - typedef HRESULT(WINAPI *PFN_CREATE_DXGI_FACTORY)(const GUID *riid, void **ppFactory); - PFN_CREATE_DXGI_FACTORY CreateDXGIFactoryFunc; - - /* Load DXGI... */ - *module = SDL_LoadObject(DXGI_DLL); - if (*module == NULL) - { - FNA3D_LogError("Could not find " DXGI_DLL); - return -1; - } - - /* Load CreateFactory... */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" - CreateDXGIFactoryFunc = (PFN_CREATE_DXGI_FACTORY) SDL_LoadFunction( - *module, - "CreateDXGIFactory1" - ); -#pragma GCC diagnostic pop - if (CreateDXGIFactoryFunc == NULL) - { - FNA3D_LogError("Could not load function CreateDXGIFactory1!"); - return -1; - } - - /* ... Create, finally. */ - return CreateDXGIFactoryFunc( - &D3D_IID_IDXGIFactory1, - factory - ); -} - -static void D3D11_PLATFORM_UnloadDXGI(void* module) -{ - SDL_UnloadObject(module); -} - -static void D3D11_PLATFORM_GetDefaultAdapter( - void* factory, - IDXGIAdapter1 **adapter -) { - void* factory6; - HRESULT res; - res = IDXGIFactory1_QueryInterface( - (IDXGIFactory1*) factory, - &D3D_IID_IDXGIFactory6, - (void**) &factory6 - ); - if (SUCCEEDED(res)) - { - IDXGIFactory6_EnumAdapterByGpuPreference( - (IDXGIFactory6*) factory6, - 0, - DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE, - &D3D_IID_IDXGIAdapter1, - (void**) adapter - ); - } - else - { - IDXGIFactory1_EnumAdapters1( - (IDXGIFactory1*) factory, - 0, - adapter - ); - } -} - -static void ResolveSwapChainModeDescription( - IUnknown* device, - IDXGIAdapter* adapter, - IDXGIFactory1 *factory, - HWND window, - DXGI_MODE_DESC* modeDescription, - DXGI_MODE_DESC* swapChainDescription -) { -#ifdef FNA3D_DXVK_NATIVE - IDXGIOutput *output; - IDXGIAdapter_EnumOutputs( - adapter, - 0, - &output - ); - IDXGIOutput_FindClosestMatchingMode( - output, - modeDescription, - swapChainDescription, - device - ); -#else - HMONITOR monitor; - int iAdapter = 0, iOutput; - IDXGIAdapter1* pAdapter; - IDXGIOutput *output; - DXGI_OUTPUT_DESC description; - - /* Find the output (on any adapter) attached to the monitor that holds our window */ - monitor = MonitorFromWindow(window, MONITOR_DEFAULTTOPRIMARY); - while (SUCCEEDED(IDXGIFactory1_EnumAdapters1(factory, iAdapter++, &pAdapter))) - { - iOutput = 0; - while (SUCCEEDED(IDXGIAdapter_EnumOutputs(pAdapter, iOutput++, &output))) - { - IDXGIOutput_GetDesc(output, &description); - if (description.Monitor == monitor) - { - if (SUCCEEDED(IDXGIOutput_FindClosestMatchingMode(output, modeDescription, swapChainDescription, device))) - { - IDXGIOutput_Release(output); - IDXGIAdapter1_Release(pAdapter); - return; - } - } - IDXGIOutput_Release(output); - } - IDXGIAdapter1_Release(pAdapter); - } -#endif /* FNA3D_DXVK_NATIVE */ -} - -static void D3D11_PLATFORM_CreateSwapChain( - D3D11Renderer *renderer, - FNA3D_SurfaceFormat backBufferFormat, - void *windowHandle -) { - IDXGIFactory1* pParent; - DXGI_SWAP_CHAIN_DESC swapchainDesc; - DXGI_MODE_DESC swapchainBufferDesc; - IDXGISwapChain *swapchain; - D3D11SwapchainData *swapchainData; - HWND dxgiHandle; - HRESULT res; - -#ifdef FNA3D_DXVK_NATIVE - dxgiHandle = (HWND) windowHandle; -#else - SDL_SysWMinfo info; - SDL_VERSION(&info.version); - SDL_GetWindowWMInfo((SDL_Window*) windowHandle, &info); - dxgiHandle = info.info.win.window; -#endif /* FNA3D_DXVK_NATIVE */ - - /* Initialize swapchain buffer descriptor */ - swapchainBufferDesc.Width = 0; - swapchainBufferDesc.Height = 0; - swapchainBufferDesc.RefreshRate.Numerator = 0; - swapchainBufferDesc.RefreshRate.Denominator = 0; - swapchainBufferDesc.Format = XNAToD3D_TextureFormat[backBufferFormat]; - swapchainBufferDesc.ScanlineOrdering = DXGI_MODE_SCANLINE_ORDER_UNSPECIFIED; - swapchainBufferDesc.Scaling = DXGI_MODE_SCALING_UNSPECIFIED; - - ResolveSwapChainModeDescription( - (IUnknown*) renderer->device, - (IDXGIAdapter*) renderer->adapter, - (IDXGIFactory1*) renderer->factory, - dxgiHandle, - &swapchainBufferDesc, - &swapchainDesc.BufferDesc - ); - - /* Initialize the swapchain descriptor */ - swapchainDesc.BufferDesc = swapchainBufferDesc; - swapchainDesc.SampleDesc.Count = 1; - swapchainDesc.SampleDesc.Quality = 0; - swapchainDesc.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; - swapchainDesc.BufferCount = 3; - swapchainDesc.OutputWindow = dxgiHandle; - swapchainDesc.Windowed = 1; - swapchainDesc.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; - swapchainDesc.Flags = 0; - - /* Create the swapchain! */ - res = IDXGIFactory1_CreateSwapChain( - (IDXGIFactory1*) renderer->factory, - (IUnknown*) renderer->device, - &swapchainDesc, - &swapchain - ); - ERROR_CHECK("Could not create swapchain") - - /* - * The swapchain's parent is a separate factory from the factory that - * we used to create the swapchain, and only that parent can be used to - * set the window association. Trying to set an association on our factory - * will silently fail and doesn't even verify arguments or return errors. - * See https://gamedev.net/forums/topic/634235-dxgidisabling-altenter/4999955/ - */ - res = IDXGISwapChain_GetParent( - swapchain, - &D3D_IID_IDXGIFactory1, - (void**) &pParent - ); - if (FAILED(res)) - { - FNA3D_LogWarn( - "Could not get swapchain parent! Error Code: %08X", - res - ); - } - else - { - /* Disable DXGI window crap */ - res = IDXGIFactory1_MakeWindowAssociation( - pParent, - dxgiHandle, - DXGI_MWA_NO_WINDOW_CHANGES - ); - if (FAILED(res)) - { - FNA3D_LogWarn( - "MakeWindowAssociation failed! Error Code: %08X", - res - ); - } - } - - swapchainData = (D3D11SwapchainData*) SDL_malloc(sizeof(D3D11SwapchainData)); - swapchainData->swapchain = swapchain; - swapchainData->windowHandle = windowHandle; - swapchainData->swapchainRTView = NULL; - SDL_SetWindowData((SDL_Window*) windowHandle, WINDOW_SWAPCHAIN_DATA, swapchainData); - if (renderer->swapchainDataCount >= renderer->swapchainDataCapacity) - { - renderer->swapchainDataCapacity *= 2; - renderer->swapchainDatas = SDL_realloc( - renderer->swapchainDatas, - renderer->swapchainDataCapacity * sizeof(D3D11SwapchainData*) - ); - } - renderer->swapchainDatas[renderer->swapchainDataCount] = swapchainData; - renderer->swapchainDataCount += 1; -} - -static HRESULT D3D11_PLATFORM_ResizeSwapChain( - D3D11Renderer *renderer, - D3D11SwapchainData *swapchainData -) { - return IDXGISwapChain_ResizeBuffers( - swapchainData->swapchain, - 0, /* keep # of buffers the same */ - 0, /* get width from window */ - 0, /* get height from window */ - DXGI_FORMAT_UNKNOWN, /* keep the old format */ - 0 - ); -} - -#endif - -FNA3D_Driver D3D11Driver = { - "D3D11", - D3D11_PrepareWindowAttributes, - D3D11_GetDrawableSize, - D3D11_CreateDevice -}; - -#else - -extern int this_tu_is_empty; - -#endif /* FNA3D_DRIVER_D3D11 */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11.h deleted file mode 100644 index 00a2e11e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11.h +++ /dev/null @@ -1,310 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FNA3D_DRIVER_D3D11_H -#define FNA3D_DRIVER_D3D11_H - -#define D3D11_NO_HELPERS -#define CINTERFACE -#define COBJMACROS -#include - -/* IID Imports from https://magnumdb.com */ - -static const IID D3D_IID_IDXGIFactory1 = {0x770aae78,0xf26f,0x4dba,{0xa8,0x29,0x25,0x3c,0x83,0xd1,0xb3,0x87}}; -static const IID D3D_IID_IDXGIFactory2 = {0x50c83a1c,0xe072,0x4c48,{0x87,0xb0,0x36,0x30,0xfa,0x36,0xa6,0xd0}}; -static const IID D3D_IID_IDXGIFactory6 = {0xc1b6694f,0xff09,0x44a9,{0xb0,0x3c,0x77,0x90,0x0a,0x0a,0x1d,0x17}}; -static const IID D3D_IID_IDXGIAdapter1 = {0x29038f61,0x3839,0x4626,{0x91,0xfd,0x08,0x68,0x79,0x01,0x1a,0x05}}; -static const IID D3D_IID_ID3D11Texture2D = {0x6f15aaf2,0xd208,0x4e89,{0x9a,0xb4,0x48,0x95,0x35,0xd3,0x4f,0x9c}}; -static const IID D3D_IID_ID3DUserDefinedAnnotation = {0xb2daad8b,0x03d4,0x4dbf,{0x95,0xeb,0x32,0xab,0x4b,0x63,0xd0,0xab}}; - -/* VS2010 / DirectX SDK Fallback Defines */ - -#ifndef DXGI_FORMAT_B4G4R4A4_UNORM -#define DXGI_FORMAT_B4G4R4A4_UNORM (DXGI_FORMAT) 115 -#endif - -#ifndef D3D_FEATURE_LEVEL_11_1 -#define D3D_FEATURE_LEVEL_11_1 (D3D_FEATURE_LEVEL) 0xb100 -#endif - -/* D3D Function Typedefs */ - -typedef HRESULT(WINAPI *PFN_D3DCOMPILE)( - LPCVOID pSrcData, - SIZE_T SrcDataSize, - LPCSTR pSourceName, - const D3D_SHADER_MACRO *pDefines, - ID3DInclude *pInclude, - LPCSTR pEntrypoint, - LPCSTR pTarget, - UINT Flags1, - UINT Flags2, - ID3DBlob **ppCode, - ID3DBlob **ppErrorMsgs -); - -/* ID3DUserDefinedAnnotation */ -/* From d3d11_1.h, cleaned up a bit... */ - -typedef struct ID3DUserDefinedAnnotation ID3DUserDefinedAnnotation; -typedef struct ID3DUserDefinedAnnotationVtbl -{ - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ID3DUserDefinedAnnotation * This, - REFIID riid, - void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ID3DUserDefinedAnnotation * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ID3DUserDefinedAnnotation * This); - - INT ( STDMETHODCALLTYPE *BeginEvent )( - ID3DUserDefinedAnnotation * This, - LPCWSTR Name); - - INT ( STDMETHODCALLTYPE *EndEvent )( - ID3DUserDefinedAnnotation * This); - - void ( STDMETHODCALLTYPE *SetMarker )( - ID3DUserDefinedAnnotation * This, - LPCWSTR Name); - - BOOL ( STDMETHODCALLTYPE *GetStatus )( - ID3DUserDefinedAnnotation * This); -} ID3DUserDefinedAnnotationVtbl; - -struct ID3DUserDefinedAnnotation -{ - struct ID3DUserDefinedAnnotationVtbl *lpVtbl; -}; - -#define ID3DUserDefinedAnnotation_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ID3DUserDefinedAnnotation_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ID3DUserDefinedAnnotation_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - -#define ID3DUserDefinedAnnotation_BeginEvent(This,Name) \ - ( (This)->lpVtbl -> BeginEvent(This,Name) ) - -#define ID3DUserDefinedAnnotation_EndEvent(This) \ - ( (This)->lpVtbl -> EndEvent(This) ) - -#define ID3DUserDefinedAnnotation_SetMarker(This,Name) \ - ( (This)->lpVtbl -> SetMarker(This,Name) ) - -#define ID3DUserDefinedAnnotation_GetStatus(This) \ - ( (This)->lpVtbl -> GetStatus(This) ) - -/* IDXGIFactory6 */ -/* From igdx1_6.h, cleaned up a bit... */ - -typedef enum -{ - DXGI_FEATURE_PRESENT_ALLOW_TEARING = 0 -} DXGI_FEATURE; - -typedef enum -{ - DXGI_GPU_PREFERENCE_UNSPECIFIED = 0, - DXGI_GPU_PREFERENCE_MINIMUM_POWER = ( DXGI_GPU_PREFERENCE_UNSPECIFIED + 1 ) , - DXGI_GPU_PREFERENCE_HIGH_PERFORMANCE = ( DXGI_GPU_PREFERENCE_MINIMUM_POWER + 1 ) -} DXGI_GPU_PREFERENCE; - -typedef struct IDXGIFactory6 IDXGIFactory6; -typedef struct IDXGIFactory6Vtbl -{ - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - IDXGIFactory6 * This, - REFIID riid, - void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - IDXGIFactory6 * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - IDXGIFactory6 * This); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateData )( - IDXGIFactory6 * This, - REFGUID Name, - UINT DataSize, - const void *pData); - - HRESULT ( STDMETHODCALLTYPE *SetPrivateDataInterface )( - IDXGIFactory6 * This, - REFGUID Name, - const IUnknown *pUnknown); - - HRESULT ( STDMETHODCALLTYPE *GetPrivateData )( - IDXGIFactory6 * This, - REFGUID Name, - UINT *pDataSize, - void *pData); - - HRESULT ( STDMETHODCALLTYPE *GetParent )( - IDXGIFactory6 * This, - REFIID riid, - void **ppParent); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters )( - IDXGIFactory6 * This, - UINT Adapter, - IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *MakeWindowAssociation )( - IDXGIFactory6 * This, - HWND WindowHandle, - UINT Flags); - - HRESULT ( STDMETHODCALLTYPE *GetWindowAssociation )( - IDXGIFactory6 * This, - HWND *pWindowHandle); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChain )( - IDXGIFactory6 * This, - IUnknown *pDevice, - DXGI_SWAP_CHAIN_DESC *pDesc, - IDXGISwapChain **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateSoftwareAdapter )( - IDXGIFactory6 * This, - HMODULE Module, - IDXGIAdapter **ppAdapter); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapters1 )( - IDXGIFactory6 * This, - UINT Adapter, - IDXGIAdapter1 **ppAdapter); - - BOOL ( STDMETHODCALLTYPE *IsCurrent )( - IDXGIFactory6 * This); - - BOOL ( STDMETHODCALLTYPE *IsWindowedStereoEnabled )( - IDXGIFactory6 * This); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForHwnd )( - IDXGIFactory6 * This, - IUnknown *pDevice, - HWND hWnd, - void *pDesc, - void *pFullscreenDesc, - void *pRestrictToOutput, - void **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForCoreWindow )( - IDXGIFactory6 * This, - IUnknown *pDevice, - IUnknown *pWindow, - void *pDesc, - void *pRestrictToOutput, - void **ppSwapChain); - - HRESULT ( STDMETHODCALLTYPE *GetSharedResourceAdapterLuid )( - IDXGIFactory6 * This, - HANDLE hResource, - LUID *pLuid); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusWindow )( - IDXGIFactory6 * This, - HWND WindowHandle, - UINT wMsg, - DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterStereoStatusEvent )( - IDXGIFactory6 * This, - HANDLE hEvent, - DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterStereoStatus )( - IDXGIFactory6 * This, - DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusWindow )( - IDXGIFactory6 * This, - HWND WindowHandle, - UINT wMsg, - DWORD *pdwCookie); - - HRESULT ( STDMETHODCALLTYPE *RegisterOcclusionStatusEvent )( - IDXGIFactory6 * This, - HANDLE hEvent, - DWORD *pdwCookie); - - void ( STDMETHODCALLTYPE *UnregisterOcclusionStatus )( - IDXGIFactory6 * This, - DWORD dwCookie); - - HRESULT ( STDMETHODCALLTYPE *CreateSwapChainForComposition )( - IDXGIFactory6 * This, - IUnknown *pDevice, - void *pDesc, - void *pRestrictToOutput, - void **ppSwapChain); - - UINT ( STDMETHODCALLTYPE *GetCreationFlags )( - IDXGIFactory6 * This); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapterByLuid )( - IDXGIFactory6 * This, - LUID AdapterLuid, - REFIID riid, - void **ppvAdapter); - - HRESULT ( STDMETHODCALLTYPE *EnumWarpAdapter )( - IDXGIFactory6 * This, - REFIID riid, - void **ppvAdapter); - - HRESULT ( STDMETHODCALLTYPE *CheckFeatureSupport )( - IDXGIFactory6 * This, - DXGI_FEATURE Feature, - void *pFeatureSupportData, - UINT FeatureSupportDataSize); - - HRESULT ( STDMETHODCALLTYPE *EnumAdapterByGpuPreference )( - IDXGIFactory6 * This, - UINT Adapter, - DXGI_GPU_PREFERENCE GpuPreference, - REFIID riid, - void **ppvAdapter); -} IDXGIFactory6Vtbl; - -struct IDXGIFactory6 -{ - struct IDXGIFactory6Vtbl *lpVtbl; -}; - -#define IDXGIFactory6_EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter) \ - ( (This)->lpVtbl -> EnumAdapterByGpuPreference(This,Adapter,GpuPreference,riid,ppvAdapter) ) - -#endif /* FNA3D_DRIVER_D3D11_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11_shaders.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11_shaders.h deleted file mode 100644 index a0466d5b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_D3D11_shaders.h +++ /dev/null @@ -1,342 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* - * Shader Source - */ - -#if 0 -void main( - inout float4 position : SV_POSITION, - inout float2 texcoord : TEXCOORD0 -) { - position.y *= -1; - position.zw = float2(0.0f, 1.0f); -} - -Texture2D Texture : register(t0); -sampler TextureSampler : register(s0); -float4 main( - float4 position : SV_POSITION, - float2 texcoord : TEXCOORD0 -) : SV_TARGET { - return Texture.Sample(TextureSampler, texcoord); -} -#endif - -/* - * Compiled Vertex Shader - */ - -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// -// fxc /T vs_4_0 vertex.fx /Fh vertex.h -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_POSITION 0 xyzw 0 NONE float xy -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_POSITION 0 xyzw 0 POS float xyzw -// TEXCOORD 0 xy 1 NONE float xy -// -vs_4_0 -dcl_input v0.xy -dcl_input v1.xy -dcl_output_siv o0.xyzw, position -dcl_output o1.xy -mul o0.xy, v0.xyxx, l(1.000000, -1.000000, 0.000000, 0.000000) -mov o0.zw, l(0,0,0,1.000000) -mov o1.xy, v1.xyxx -ret -// Approximately 4 instruction slots used -#endif - -static const uint8_t FAUX_BLIT_VERTEX_SHADER[] = -{ - 68, 88, 66, 67, 66, 43, - 199, 206, 109, 8, 43, 130, - 109, 130, 80, 112, 243, 115, - 14, 92, 1, 0, 0, 0, - 92, 2, 0, 0, 5, 0, - 0, 0, 52, 0, 0, 0, - 140, 0, 0, 0, 228, 0, - 0, 0, 60, 1, 0, 0, - 224, 1, 0, 0, 82, 68, - 69, 70, 80, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 254, 255, 0, 1, 0, 0, - 28, 0, 0, 0, 77, 105, - 99, 114, 111, 115, 111, 102, - 116, 32, 40, 82, 41, 32, - 72, 76, 83, 76, 32, 83, - 104, 97, 100, 101, 114, 32, - 67, 111, 109, 112, 105, 108, - 101, 114, 32, 57, 46, 50, - 57, 46, 57, 53, 50, 46, - 51, 49, 49, 49, 0, 171, - 171, 171, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 3, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 79, 83, 71, 78, 80, 0, - 0, 0, 2, 0, 0, 0, - 8, 0, 0, 0, 56, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 68, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 1, 0, 0, 0, - 3, 12, 0, 0, 83, 86, - 95, 80, 79, 83, 73, 84, - 73, 79, 78, 0, 84, 69, - 88, 67, 79, 79, 82, 68, - 0, 171, 171, 171, 83, 72, - 68, 82, 156, 0, 0, 0, - 64, 0, 1, 0, 39, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 0, 0, - 0, 0, 95, 0, 0, 3, - 50, 16, 16, 0, 1, 0, - 0, 0, 103, 0, 0, 4, - 242, 32, 16, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 50, 32, - 16, 0, 1, 0, 0, 0, - 56, 0, 0, 10, 50, 32, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 0, 0, - 0, 0, 2, 64, 0, 0, - 0, 0, 128, 63, 0, 0, - 128, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 54, 0, - 0, 8, 194, 32, 16, 0, - 0, 0, 0, 0, 2, 64, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 128, 63, - 54, 0, 0, 5, 50, 32, - 16, 0, 1, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 62, 0, 0, 1, - 83, 84, 65, 84, 116, 0, - 0, 0, 4, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 4, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 1, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0 -}; - -/* - * Compiled Pixel Shader - */ - -#if 0 -// -// Generated by Microsoft (R) HLSL Shader Compiler 9.29.952.3111 -// -// -// fxc /T ps_4_0 pixel.fx /Fh pixel.h -// -// -// Resource Bindings: -// -// Name Type Format Dim Slot Elements -// ------------------------------ ---------- ------- ----------- ---- -------- -// TextureSampler sampler NA NA 0 1 -// Texture texture float4 2d 0 1 -// -// -// -// Input signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_POSITION 0 xyzw 0 POS float -// TEXCOORD 0 xy 1 NONE float xy -// -// -// Output signature: -// -// Name Index Mask Register SysValue Format Used -// -------------------- ----- ------ -------- -------- ------ ------ -// SV_TARGET 0 xyzw 0 TARGET float xyzw -// -ps_4_0 -dcl_sampler s0, mode_default -dcl_resource_texture2d (float,float,float,float) t0 -dcl_input_ps linear v1.xy -dcl_output o0.xyzw -sample o0.xyzw, v1.xyxx, t0.xyzw, s0 -ret -// Approximately 2 instruction slots used -#endif - -static const uint8_t FAUX_BLIT_PIXEL_SHADER[] = -{ - 68, 88, 66, 67, 22, 207, - 143, 212, 239, 10, 84, 153, - 80, 214, 26, 89, 62, 50, - 215, 238, 1, 0, 0, 0, - 84, 2, 0, 0, 5, 0, - 0, 0, 52, 0, 0, 0, - 224, 0, 0, 0, 56, 1, - 0, 0, 108, 1, 0, 0, - 216, 1, 0, 0, 82, 68, - 69, 70, 164, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 2, 0, 0, 0, - 28, 0, 0, 0, 0, 4, - 255, 255, 0, 1, 0, 0, - 115, 0, 0, 0, 92, 0, - 0, 0, 3, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 1, 0, 0, 0, - 107, 0, 0, 0, 2, 0, - 0, 0, 5, 0, 0, 0, - 4, 0, 0, 0, 255, 255, - 255, 255, 0, 0, 0, 0, - 1, 0, 0, 0, 13, 0, - 0, 0, 84, 101, 120, 116, - 117, 114, 101, 83, 97, 109, - 112, 108, 101, 114, 0, 84, - 101, 120, 116, 117, 114, 101, - 0, 77, 105, 99, 114, 111, - 115, 111, 102, 116, 32, 40, - 82, 41, 32, 72, 76, 83, - 76, 32, 83, 104, 97, 100, - 101, 114, 32, 67, 111, 109, - 112, 105, 108, 101, 114, 32, - 57, 46, 50, 57, 46, 57, - 53, 50, 46, 51, 49, 49, - 49, 0, 73, 83, 71, 78, - 80, 0, 0, 0, 2, 0, - 0, 0, 8, 0, 0, 0, - 56, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 3, 0, 0, 0, 0, 0, - 0, 0, 15, 0, 0, 0, - 68, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 3, 0, 0, 0, 1, 0, - 0, 0, 3, 3, 0, 0, - 83, 86, 95, 80, 79, 83, - 73, 84, 73, 79, 78, 0, - 84, 69, 88, 67, 79, 79, - 82, 68, 0, 171, 171, 171, - 79, 83, 71, 78, 44, 0, - 0, 0, 1, 0, 0, 0, - 8, 0, 0, 0, 32, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 3, 0, - 0, 0, 0, 0, 0, 0, - 15, 0, 0, 0, 83, 86, - 95, 84, 65, 82, 71, 69, - 84, 0, 171, 171, 83, 72, - 68, 82, 100, 0, 0, 0, - 64, 0, 0, 0, 25, 0, - 0, 0, 90, 0, 0, 3, - 0, 96, 16, 0, 0, 0, - 0, 0, 88, 24, 0, 4, - 0, 112, 16, 0, 0, 0, - 0, 0, 85, 85, 0, 0, - 98, 16, 0, 3, 50, 16, - 16, 0, 1, 0, 0, 0, - 101, 0, 0, 3, 242, 32, - 16, 0, 0, 0, 0, 0, - 69, 0, 0, 9, 242, 32, - 16, 0, 0, 0, 0, 0, - 70, 16, 16, 0, 1, 0, - 0, 0, 70, 126, 16, 0, - 0, 0, 0, 0, 0, 96, - 16, 0, 0, 0, 0, 0, - 62, 0, 0, 1, 83, 84, - 65, 84, 116, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 2, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 1, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, - 0, 0 -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL.c deleted file mode 100644 index 1aef9ebb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL.c +++ /dev/null @@ -1,6191 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#if FNA3D_DRIVER_OPENGL - -#include "FNA3D_Driver.h" -#include "FNA3D_Driver_OpenGL.h" - -#include - -/* We only use this to detect UIKit, for backbuffer creation */ -#ifdef SDL_VIDEO_DRIVER_UIKIT -#include -#endif /* SDL_VIDEO_DRIVER_UIKIT */ - -/* Internal Structures */ - -typedef struct FNA3D_Command FNA3D_Command; /* See Threading Support section */ - -typedef struct OpenGLTexture OpenGLTexture; -typedef struct OpenGLRenderbuffer OpenGLRenderbuffer; -typedef struct OpenGLBuffer OpenGLBuffer; -typedef struct OpenGLEffect OpenGLEffect; -typedef struct OpenGLQuery OpenGLQuery; - -struct OpenGLTexture /* Cast from FNA3D_Texture* */ -{ - uint32_t handle; - GLenum target; - uint8_t hasMipmaps; - FNA3D_TextureAddressMode wrapS; - FNA3D_TextureAddressMode wrapT; - FNA3D_TextureAddressMode wrapR; - FNA3D_TextureFilter filter; - float anisotropy; - int32_t maxMipmapLevel; - float lodBias; - FNA3D_SurfaceFormat format; - FNA3DNAMELESS union - { - struct - { - int32_t width; - int32_t height; - } twod; - struct - { - int32_t size; - } cube; - }; - OpenGLTexture *next; /* linked list */ - uint8_t external; -}; - -static OpenGLTexture NullTexture = -{ - 0, - GL_TEXTURE_2D, - 0, - FNA3D_TEXTUREADDRESSMODE_WRAP, - FNA3D_TEXTUREADDRESSMODE_WRAP, - FNA3D_TEXTUREADDRESSMODE_WRAP, - FNA3D_TEXTUREFILTER_LINEAR, - 0.0f, - 0, - 0.0f, - FNA3D_SURFACEFORMAT_COLOR, - { - { 0, 0 } - }, - NULL -}; - -struct OpenGLBuffer /* Cast from FNA3D_Buffer* */ -{ - GLuint handle; - intptr_t size; - GLenum dynamic; - OpenGLBuffer *next; /* linked list */ -}; - -struct OpenGLRenderbuffer /* Cast from FNA3D_Renderbuffer* */ -{ - GLuint handle; - FNA3D_SurfaceFormat format; - OpenGLRenderbuffer *next; /* linked list */ -}; - -struct OpenGLEffect /* Cast from FNA3D_Effect* */ -{ - MOJOSHADER_effect *effect; - OpenGLEffect *next; /* linked list */ -}; - -struct OpenGLQuery /* Cast from FNA3D_Query* */ -{ - GLuint handle; - OpenGLQuery *next; /* linked list */ -}; - -typedef struct OpenGLBackbuffer -{ - #define BACKBUFFER_TYPE_NULL 0 - #define BACKBUFFER_TYPE_OPENGL 1 - uint8_t type; - - uint8_t isSrgb; - int32_t width; - int32_t height; - FNA3D_DepthFormat depthFormat; - int32_t multiSampleCount; - struct - { - GLuint handle; - - GLuint texture; - GLuint colorAttachment; - GLuint depthStencilAttachment; - } opengl; -} OpenGLBackbuffer; - -typedef struct OpenGLVertexAttribute -{ - uint32_t currentBuffer; - void *currentPointer; - FNA3D_VertexElementFormat currentFormat; - uint8_t currentNormalized; - uint32_t currentStride; -} OpenGLVertexAttribute; - -typedef struct OpenGLRenderer /* Cast from FNA3D_Renderer* */ -{ - /* Associated FNA3D_Device */ - FNA3D_Device *parentDevice; - - /* Context */ - SDL_GLContext context; - uint8_t useES3; - uint8_t useCoreProfile; - - /* FIXME: https://github.com/KhronosGroup/EGL-Registry/pull/113 */ - uint8_t isEGL; - - /* The Faux-Backbuffer */ - OpenGLBackbuffer *backbuffer; - FNA3D_DepthFormat windowDepthFormat; - GLenum backbufferScaleMode; - GLuint realBackbufferFBO; - GLuint realBackbufferRBO; - uint8_t srgbEnabled; - - /* VAO for Core Profile */ - GLuint vao; - - /* Capabilities */ - uint8_t supports_s3tc; - uint8_t supports_dxt1; - uint8_t supports_anisotropic_filtering; - uint8_t supports_srgb_rendertarget; - uint8_t supports_bc7; - int32_t maxMultiSampleCount; - int32_t maxMultiSampleCountFormat[21]; - int32_t windowSampleCount; - - /* Blend State */ - uint8_t alphaBlendEnable; - FNA3D_Color blendColor; - FNA3D_BlendFunction blendOp; - FNA3D_BlendFunction blendOpAlpha; - FNA3D_Blend srcBlend; - FNA3D_Blend dstBlend; - FNA3D_Blend srcBlendAlpha; - FNA3D_Blend dstBlendAlpha; - FNA3D_ColorWriteChannels colorWriteEnable; - FNA3D_ColorWriteChannels colorWriteEnable1; - FNA3D_ColorWriteChannels colorWriteEnable2; - FNA3D_ColorWriteChannels colorWriteEnable3; - int32_t multiSampleMask; - - /* Depth Stencil State */ - uint8_t zEnable; - uint8_t zWriteEnable; - FNA3D_CompareFunction depthFunc; - uint8_t stencilEnable; - int32_t stencilWriteMask; - uint8_t separateStencilEnable; - int32_t stencilRef; - int32_t stencilMask; - FNA3D_CompareFunction stencilFunc; - FNA3D_StencilOperation stencilFail; - FNA3D_StencilOperation stencilZFail; - FNA3D_StencilOperation stencilPass; - FNA3D_CompareFunction ccwStencilFunc; - FNA3D_StencilOperation ccwStencilFail; - FNA3D_StencilOperation ccwStencilZFail; - FNA3D_StencilOperation ccwStencilPass; - - /* Rasterizer State */ - uint8_t scissorTestEnable; - FNA3D_CullMode cullFrontFace; - FNA3D_FillMode fillMode; - float depthBias; - float slopeScaleDepthBias; - uint8_t multiSampleEnable; - - /* Viewport */ - FNA3D_Viewport viewport; - FNA3D_Rect scissorRect; - float depthRangeMin; - float depthRangeMax; - - /* Textures */ - int32_t numTextureSlots; - int32_t numVertexTextureSlots; - int32_t vertexSamplerStart; - OpenGLTexture *textures[MAX_TEXTURE_SAMPLERS + MAX_VERTEXTEXTURE_SAMPLERS]; - - /* Buffer Binding Cache */ - GLuint currentVertexBuffer; - GLuint currentIndexBuffer; - - /* ld, or LastDrawn, vertex attributes */ - int32_t ldBaseVertex; - - /* Render Targets */ - int32_t numAttachments; - GLuint currentReadFramebuffer; - GLuint currentDrawFramebuffer; - GLuint targetFramebuffer; - GLuint resolveFramebufferRead; - GLuint resolveFramebufferDraw; - GLuint currentAttachments[MAX_RENDERTARGET_BINDINGS]; - GLenum currentAttachmentTypes[MAX_RENDERTARGET_BINDINGS]; - int32_t currentDrawBuffers; - GLenum drawBuffersArray[MAX_RENDERTARGET_BINDINGS + 2]; - GLuint currentRenderbuffer; - FNA3D_DepthFormat currentDepthStencilFormat; - GLuint attachments[MAX_RENDERTARGET_BINDINGS]; - GLenum attachmentTypes[MAX_RENDERTARGET_BINDINGS]; - - /* Clear Cache */ - FNA3D_Vec4 currentClearColor; - float currentClearDepth; - int32_t currentClearStencil; - - /* Vertex Attributes */ - int32_t numVertexAttributes; - OpenGLVertexAttribute attributes[MAX_VERTEX_ATTRIBUTES]; - uint8_t attributeEnabled[MAX_VERTEX_ATTRIBUTES]; - uint8_t previousAttributeEnabled[MAX_VERTEX_ATTRIBUTES]; - int32_t attributeDivisor[MAX_VERTEX_ATTRIBUTES]; - int32_t previousAttributeDivisor[MAX_VERTEX_ATTRIBUTES]; - - /* MojoShader Interop */ - const char *shaderProfile; - MOJOSHADER_glContext *shaderContext; - MOJOSHADER_effect *currentEffect; - const MOJOSHADER_effectTechnique *currentTechnique; - uint32_t currentPass; - uint8_t renderTargetBound; - uint8_t effectApplied; - - /* Point Sprite Toggle */ - uint8_t togglePointSprite; - - /* Threading */ - SDL_threadID threadID; - FNA3D_Command *commands; - SDL_mutex *commandsLock; - OpenGLTexture *disposeTextures; - SDL_mutex *disposeTexturesLock; - OpenGLRenderbuffer *disposeRenderbuffers; - SDL_mutex *disposeRenderbuffersLock; - OpenGLBuffer *disposeVertexBuffers; - SDL_mutex *disposeVertexBuffersLock; - OpenGLBuffer *disposeIndexBuffers; - SDL_mutex *disposeIndexBuffersLock; - OpenGLEffect *disposeEffects; - SDL_mutex *disposeEffectsLock; - OpenGLQuery *disposeQueries; - SDL_mutex *disposeQueriesLock; - - /* GL entry points */ - glfntype_glGetString glGetString; /* Loaded early! */ - #define GL_EXT(ext) \ - uint8_t supports_##ext; - #define GL_PROC(ext, ret, func, parms) \ - glfntype_##func func; - #define GL_PROC_EXT(ext, fallback, ret, func, parms) \ - glfntype_##func func; - #include "FNA3D_Driver_OpenGL_glfuncs.h" -} OpenGLRenderer; - -/* XNA->OpenGL Translation Arrays */ - -static int32_t XNAToGL_TextureFormat[] = -{ - GL_RGBA, /* SurfaceFormat.Color */ - GL_RGB, /* SurfaceFormat.Bgr565 */ - GL_BGRA, /* SurfaceFormat.Bgra5551 */ - GL_BGRA, /* SurfaceFormat.Bgra4444 */ - GL_COMPRESSED_TEXTURE_FORMATS, /* SurfaceFormat.Dxt1 */ - GL_COMPRESSED_TEXTURE_FORMATS, /* SurfaceFormat.Dxt3 */ - GL_COMPRESSED_TEXTURE_FORMATS, /* SurfaceFormat.Dxt5 */ - GL_RG, /* SurfaceFormat.NormalizedByte2 */ - GL_RGBA, /* SurfaceFormat.NormalizedByte4 */ - GL_RGBA, /* SurfaceFormat.Rgba1010102 */ - GL_RG, /* SurfaceFormat.Rg32 */ - GL_RGBA, /* SurfaceFormat.Rgba64 */ - GL_ALPHA, /* SurfaceFormat.Alpha8 */ - GL_RED, /* SurfaceFormat.Single */ - GL_RG, /* SurfaceFormat.Vector2 */ - GL_RGBA, /* SurfaceFormat.Vector4 */ - GL_RED, /* SurfaceFormat.HalfSingle */ - GL_RG, /* SurfaceFormat.HalfVector2 */ - GL_RGBA, /* SurfaceFormat.HalfVector4 */ - GL_RGBA, /* SurfaceFormat.HdrBlendable */ - GL_BGRA, /* SurfaceFormat.ColorBgraEXT */ - GL_RGBA, /* SurfaceFormat.ColorSrgbEXT */ - GL_COMPRESSED_TEXTURE_FORMATS, /* SurfaceFormat.Dxt5SrgbEXT */ - GL_COMPRESSED_TEXTURE_FORMATS, /* SurfaceFormat.Bc7EXT */ - GL_COMPRESSED_TEXTURE_FORMATS, /* SurfaceFormat.Bc7SrgbEXT */ -}; - -static int32_t XNAToGL_TextureInternalFormat[] = -{ - GL_RGBA8, /* SurfaceFormat.Color */ - GL_RGB8, /* SurfaceFormat.Bgr565 */ - GL_RGB5_A1, /* SurfaceFormat.Bgra5551 */ - GL_RGBA4, /* SurfaceFormat.Bgra4444 */ - GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, /* SurfaceFormat.Dxt1 */ - GL_COMPRESSED_RGBA_S3TC_DXT3_EXT, /* SurfaceFormat.Dxt3 */ - GL_COMPRESSED_RGBA_S3TC_DXT5_EXT, /* SurfaceFormat.Dxt5 */ - GL_RG8, /* SurfaceFormat.NormalizedByte2 */ - GL_RGBA8, /* SurfaceFormat.NormalizedByte4 */ - GL_RGB10_A2_EXT, /* SurfaceFormat.Rgba1010102 */ - GL_RG16, /* SurfaceFormat.Rg32 */ - GL_RGBA16, /* SurfaceFormat.Rgba64 */ - GL_ALPHA, /* SurfaceFormat.Alpha8 */ - GL_R32F, /* SurfaceFormat.Single */ - GL_RG32F, /* SurfaceFormat.Vector2 */ - GL_RGBA32F, /* SurfaceFormat.Vector4 */ - GL_R16F, /* SurfaceFormat.HalfSingle */ - GL_RG16F, /* SurfaceFormat.HalfVector2 */ - GL_RGBA16F, /* SurfaceFormat.HalfVector4 */ - GL_RGBA16F, /* SurfaceFormat.HdrBlendable */ - GL_RGBA8, /* SurfaceFormat.ColorBgraEXT */ - GL_SRGB_ALPHA_EXT, /* SurfaceFormat.ColorSrgbEXT */ - GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, /* SurfaceFormat.Dxt5SrgbEXT */ - GL_COMPRESSED_RGBA_BPTC_UNORM_EXT, /* SurfaceFormat.BC7EXT */ - GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,/* SurfaceFormat.BC7SrgbEXT */ -}; - -static int32_t XNAToGL_TextureDataType[] = -{ - GL_UNSIGNED_BYTE, /* SurfaceFormat.Color */ - GL_UNSIGNED_SHORT_5_6_5, /* SurfaceFormat.Bgr565 */ - GL_UNSIGNED_SHORT_5_5_5_1_REV, /* SurfaceFormat.Bgra5551 */ - GL_UNSIGNED_SHORT_4_4_4_4_REV, /* SurfaceFormat.Bgra4444 */ - GL_ZERO, /* NOPE */ - GL_ZERO, /* NOPE */ - GL_ZERO, /* NOPE */ - GL_BYTE, /* SurfaceFormat.NormalizedByte2 */ - GL_BYTE, /* SurfaceFormat.NormalizedByte4 */ - GL_UNSIGNED_INT_2_10_10_10_REV, /* SurfaceFormat.Rgba1010102 */ - GL_UNSIGNED_SHORT, /* SurfaceFormat.Rg32 */ - GL_UNSIGNED_SHORT, /* SurfaceFormat.Rgba64 */ - GL_UNSIGNED_BYTE, /* SurfaceFormat.Alpha8 */ - GL_FLOAT, /* SurfaceFormat.Single */ - GL_FLOAT, /* SurfaceFormat.Vector2 */ - GL_FLOAT, /* SurfaceFormat.Vector4 */ - GL_HALF_FLOAT, /* SurfaceFormat.HalfSingle */ - GL_HALF_FLOAT, /* SurfaceFormat.HalfVector2 */ - GL_HALF_FLOAT, /* SurfaceFormat.HalfVector4 */ - GL_HALF_FLOAT, /* SurfaceFormat.HdrBlendable */ - GL_UNSIGNED_BYTE, /* SurfaceFormat.ColorBgraEXT */ - GL_UNSIGNED_BYTE, /* SurfaceFormat.ColorSrgbEXT */ - GL_ZERO, /* NOPE */ - GL_ZERO, /* NOPE */ - GL_ZERO, /* NOPE */ -}; - -static int32_t XNAToGL_BlendMode[] = -{ - GL_ONE, /* Blend.One */ - GL_ZERO, /* Blend.Zero */ - GL_SRC_COLOR, /* Blend.SourceColor */ - GL_ONE_MINUS_SRC_COLOR, /* Blend.InverseSourceColor */ - GL_SRC_ALPHA, /* Blend.SourceAlpha */ - GL_ONE_MINUS_SRC_ALPHA, /* Blend.InverseSourceAlpha */ - GL_DST_COLOR, /* Blend.DestinationColor */ - GL_ONE_MINUS_DST_COLOR, /* Blend.InverseDestinationColor */ - GL_DST_ALPHA, /* Blend.DestinationAlpha */ - GL_ONE_MINUS_DST_ALPHA, /* Blend.InverseDestinationAlpha */ - GL_CONSTANT_COLOR, /* Blend.BlendFactor */ - GL_ONE_MINUS_CONSTANT_COLOR, /* Blend.InverseBlendFactor */ - GL_SRC_ALPHA_SATURATE /* Blend.SourceAlphaSaturation */ -}; - -static int32_t XNAToGL_BlendEquation[] = -{ - GL_FUNC_ADD, /* BlendFunction.Add */ - GL_FUNC_SUBTRACT, /* BlendFunction.Subtract */ - GL_FUNC_REVERSE_SUBTRACT, /* BlendFunction.ReverseSubtract */ - GL_MAX, /* BlendFunction.Max */ - GL_MIN /* BlendFunction.Min */ -}; - -static int32_t XNAToGL_CompareFunc[] = -{ - GL_ALWAYS, /* CompareFunction.Always */ - GL_NEVER, /* CompareFunction.Never */ - GL_LESS, /* CompareFunction.Less */ - GL_LEQUAL, /* CompareFunction.LessEqual */ - GL_EQUAL, /* CompareFunction.Equal */ - GL_GEQUAL, /* CompareFunction.GreaterEqual */ - GL_GREATER, /* CompareFunction.Greater */ - GL_NOTEQUAL /* CompareFunction.NotEqual */ -}; - -static int32_t XNAToGL_GLStencilOp[] = -{ - GL_KEEP, /* StencilOperation.Keep */ - GL_ZERO, /* StencilOperation.Zero */ - GL_REPLACE, /* StencilOperation.Replace */ - GL_INCR_WRAP, /* StencilOperation.Increment */ - GL_DECR_WRAP, /* StencilOperation.Decrement */ - GL_INCR, /* StencilOperation.IncrementSaturation */ - GL_DECR, /* StencilOperation.DecrementSaturation */ - GL_INVERT /* StencilOperation.Invert */ -}; - -static int32_t XNAToGL_FrontFace[] = -{ - GL_ZERO, /* NOPE */ - GL_CW, /* CullMode.CullClockwiseFace */ - GL_CCW /* CullMode.CullCounterClockwiseFace */ -}; - -static int32_t XNAToGL_GLFillMode[] = -{ - GL_FILL, /* FillMode.Solid */ - GL_LINE /* FillMode.WireFrame */ -}; - -static int32_t XNAToGL_Wrap[] = -{ - GL_REPEAT, /* TextureAddressMode.Wrap */ - GL_CLAMP_TO_EDGE, /* TextureAddressMode.Clamp */ - GL_MIRRORED_REPEAT /* TextureAddressMode.Mirror */ -}; - -static int32_t XNAToGL_MagFilter[] = -{ - GL_LINEAR, /* TextureFilter.Linear */ - GL_NEAREST, /* TextureFilter.Point */ - GL_LINEAR, /* TextureFilter.Anisotropic */ - GL_LINEAR, /* TextureFilter.LinearMipPoint */ - GL_NEAREST, /* TextureFilter.PointMipLinear */ - GL_NEAREST, /* TextureFilter.MinLinearMagPointMipLinear */ - GL_NEAREST, /* TextureFilter.MinLinearMagPointMipPoint */ - GL_LINEAR, /* TextureFilter.MinPointMagLinearMipLinear */ - GL_LINEAR /* TextureFilter.MinPointMagLinearMipPoint */ -}; - -static int32_t XNAToGL_MinMipFilter[] = -{ - GL_LINEAR_MIPMAP_LINEAR, /* TextureFilter.Linear */ - GL_NEAREST_MIPMAP_NEAREST, /* TextureFilter.Point */ - GL_LINEAR_MIPMAP_LINEAR, /* TextureFilter.Anisotropic */ - GL_LINEAR_MIPMAP_NEAREST, /* TextureFilter.LinearMipPoint */ - GL_NEAREST_MIPMAP_LINEAR, /* TextureFilter.PointMipLinear */ - GL_LINEAR_MIPMAP_LINEAR, /* TextureFilter.MinLinearMagPointMipLinear */ - GL_LINEAR_MIPMAP_NEAREST, /* TextureFilter.MinLinearMagPointMipPoint */ - GL_NEAREST_MIPMAP_LINEAR, /* TextureFilter.MinPointMagLinearMipLinear */ - GL_NEAREST_MIPMAP_NEAREST /* TextureFilter.MinPointMagLinearMipPoint */ -}; - -static int32_t XNAToGL_MinFilter[] = -{ - GL_LINEAR, /* TextureFilter.Linear */ - GL_NEAREST, /* TextureFilter.Point */ - GL_LINEAR, /* TextureFilter.Anisotropic */ - GL_LINEAR, /* TextureFilter.LinearMipPoint */ - GL_NEAREST, /* TextureFilter.PointMipLinear */ - GL_LINEAR, /* TextureFilter.MinLinearMagPointMipLinear */ - GL_LINEAR, /* TextureFilter.MinLinearMagPointMipPoint */ - GL_NEAREST, /* TextureFilter.MinPointMagLinearMipLinear */ - GL_NEAREST /* TextureFilter.MinPointMagLinearMipPoint */ -}; - -#if 0 /* Unused */ -static int32_t XNAToGL_DepthStencilAttachment[] = -{ - GL_ZERO, /* NOPE */ - GL_DEPTH_ATTACHMENT, /* DepthFormat.Depth16 */ - GL_DEPTH_ATTACHMENT, /* DepthFormat.Depth24 */ - GL_DEPTH_STENCIL_ATTACHMENT /* DepthFormat.Depth24Stencil8 */ -}; -#endif - -static int32_t XNAToGL_DepthStorage[] = -{ - GL_ZERO, /* NOPE */ - GL_DEPTH_COMPONENT16, /* DepthFormat.Depth16 */ - GL_DEPTH_COMPONENT24, /* DepthFormat.Depth24 */ - GL_DEPTH24_STENCIL8 /* DepthFormat.Depth24Stencil8 */ -}; - -static float XNAToGL_DepthBiasScale[] = -{ - 0.0f, /* DepthFormat.None */ - (float) ((1 << 16) - 1), /* DepthFormat.Depth16 */ - (float) ((1 << 24) - 1), /* DepthFormat.Depth24 */ - (float) ((1 << 24) - 1) /* DepthFormat.Depth24Stencil8 */ -}; - -static int32_t XNAToGL_VertexAttribSize[] = -{ - 1, /* VertexElementFormat.Single */ - 2, /* VertexElementFormat.Vector2 */ - 3, /* VertexElementFormat.Vector3 */ - 4, /* VertexElementFormat.Vector4 */ - 4, /* VertexElementFormat.Color */ - 4, /* VertexElementFormat.Byte4 */ - 2, /* VertexElementFormat.Short2 */ - 4, /* VertexElementFormat.Short4 */ - 2, /* VertexElementFormat.NormalizedShort2 */ - 4, /* VertexElementFormat.NormalizedShort4 */ - 2, /* VertexElementFormat.HalfVector2 */ - 4 /* VertexElementFormat.HalfVector4 */ -}; - -static int32_t XNAToGL_VertexAttribType[] = -{ - GL_FLOAT, /* VertexElementFormat.Single */ - GL_FLOAT, /* VertexElementFormat.Vector2 */ - GL_FLOAT, /* VertexElementFormat.Vector3 */ - GL_FLOAT, /* VertexElementFormat.Vector4 */ - GL_UNSIGNED_BYTE, /* VertexElementFormat.Color */ - GL_UNSIGNED_BYTE, /* VertexElementFormat.Byte4 */ - GL_SHORT, /* VertexElementFormat.Short2 */ - GL_SHORT, /* VertexElementFormat.Short4 */ - GL_SHORT, /* VertexElementFormat.NormalizedShort2 */ - GL_SHORT, /* VertexElementFormat.NormalizedShort4 */ - GL_HALF_FLOAT, /* VertexElementFormat.HalfVector2 */ - GL_HALF_FLOAT /* VertexElementFormat.HalfVector4 */ -}; - -static uint8_t XNAToGL_VertexAttribNormalized(FNA3D_VertexElement *element) -{ - return ( element->vertexElementUsage == FNA3D_VERTEXELEMENTUSAGE_COLOR || - element->vertexElementFormat == FNA3D_VERTEXELEMENTFORMAT_COLOR || - element->vertexElementFormat == FNA3D_VERTEXELEMENTFORMAT_NORMALIZEDSHORT2 || - element->vertexElementFormat == FNA3D_VERTEXELEMENTFORMAT_NORMALIZEDSHORT4 ); -} - -static int32_t XNAToGL_IndexType[] = -{ - GL_UNSIGNED_SHORT, /* IndexElementSize.SixteenBits */ - GL_UNSIGNED_INT /* IndexElementSize.ThirtyTwoBits */ -}; - -static int32_t XNAToGL_Primitive[] = -{ - GL_TRIANGLES, /* PrimitiveType.TriangleList */ - GL_TRIANGLE_STRIP, /* PrimitiveType.TriangleStrip */ - GL_LINES, /* PrimitiveType.LineList */ - GL_LINE_STRIP, /* PrimitiveType.LineStrip */ - GL_POINTS /* PrimitiveType.PointListEXT */ -}; - -/* Threading Support */ - -struct FNA3D_Command -{ - #define FNA3D_COMMAND_CREATEEFFECT 0 - #define FNA3D_COMMAND_CLONEEFFECT 1 - #define FNA3D_COMMAND_GENVERTEXBUFFER 2 - #define FNA3D_COMMAND_GENINDEXBUFFER 3 - #define FNA3D_COMMAND_SETVERTEXBUFFERDATA 4 - #define FNA3D_COMMAND_SETINDEXBUFFERDATA 5 - #define FNA3D_COMMAND_GETVERTEXBUFFERDATA 6 - #define FNA3D_COMMAND_GETINDEXBUFFERDATA 7 - #define FNA3D_COMMAND_CREATETEXTURE2D 8 - #define FNA3D_COMMAND_CREATETEXTURE3D 9 - #define FNA3D_COMMAND_CREATETEXTURECUBE 10 - #define FNA3D_COMMAND_SETTEXTUREDATA2D 11 - #define FNA3D_COMMAND_SETTEXTUREDATA3D 12 - #define FNA3D_COMMAND_SETTEXTUREDATACUBE 13 - #define FNA3D_COMMAND_GETTEXTUREDATA2D 14 - #define FNA3D_COMMAND_GETTEXTUREDATA3D 15 - #define FNA3D_COMMAND_GETTEXTUREDATACUBE 16 - #define FNA3D_COMMAND_GENCOLORRENDERBUFFER 17 - #define FNA3D_COMMAND_GENDEPTHRENDERBUFFER 18 - uint8_t type; - FNA3DNAMELESS union - { - struct - { - uint8_t *effectCode; - uint32_t effectCodeLength; - FNA3D_Effect **effect; - MOJOSHADER_effect **effectData; - } createEffect; - - struct - { - FNA3D_Effect *cloneSource; - FNA3D_Effect **effect; - MOJOSHADER_effect **effectData; - } cloneEffect; - - struct - { - uint8_t dynamic; - FNA3D_BufferUsage usage; - int32_t sizeInBytes; - FNA3D_Buffer *retval; - } genVertexBuffer; - - struct - { - uint8_t dynamic; - FNA3D_BufferUsage usage; - int32_t sizeInBytes; - FNA3D_Buffer *retval; - } genIndexBuffer; - - struct - { - FNA3D_Buffer *buffer; - int32_t offsetInBytes; - void* data; - int32_t elementCount; - int32_t elementSizeInBytes; - int32_t vertexStride; - FNA3D_SetDataOptions options; - } setVertexBufferData; - - struct - { - FNA3D_Buffer *buffer; - int32_t offsetInBytes; - void* data; - int32_t dataLength; - FNA3D_SetDataOptions options; - } setIndexBufferData; - - struct - { - FNA3D_Buffer *buffer; - int32_t offsetInBytes; - void* data; - int32_t elementCount; - int32_t elementSizeInBytes; - int32_t vertexStride; - } getVertexBufferData; - - struct - { - FNA3D_Buffer *buffer; - int32_t offsetInBytes; - void* data; - int32_t dataLength; - } getIndexBufferData; - - struct - { - FNA3D_SurfaceFormat format; - int32_t width; - int32_t height; - int32_t levelCount; - uint8_t isRenderTarget; - FNA3D_Texture *retval; - } createTexture2D; - - struct - { - FNA3D_SurfaceFormat format; - int32_t width; - int32_t height; - int32_t depth; - int32_t levelCount; - FNA3D_Texture *retval; - } createTexture3D; - - struct - { - FNA3D_SurfaceFormat format; - int32_t size; - int32_t levelCount; - uint8_t isRenderTarget; - FNA3D_Texture *retval; - } createTextureCube; - - struct - { - FNA3D_Texture *texture; - int32_t x; - int32_t y; - int32_t w; - int32_t h; - int32_t level; - void* data; - int32_t dataLength; - } setTextureData2D; - - struct - { - FNA3D_Texture *texture; - int32_t x; - int32_t y; - int32_t z; - int32_t w; - int32_t h; - int32_t d; - int32_t level; - void* data; - int32_t dataLength; - } setTextureData3D; - - struct - { - FNA3D_Texture *texture; - int32_t x; - int32_t y; - int32_t w; - int32_t h; - FNA3D_CubeMapFace cubeMapFace; - int32_t level; - void* data; - int32_t dataLength; - } setTextureDataCube; - - struct - { - FNA3D_Texture *texture; - int32_t x; - int32_t y; - int32_t w; - int32_t h; - int32_t level; - void* data; - int32_t dataLength; - } getTextureData2D; - - struct - { - FNA3D_Texture *texture; - int32_t x; - int32_t y; - int32_t z; - int32_t w; - int32_t h; - int32_t d; - int32_t level; - void* data; - int32_t dataLength; - } getTextureData3D; - - struct - { - FNA3D_Texture *texture; - int32_t x; - int32_t y; - int32_t w; - int32_t h; - FNA3D_CubeMapFace cubeMapFace; - int32_t level; - void* data; - int32_t dataLength; - } getTextureDataCube; - - struct - { - int32_t width; - int32_t height; - FNA3D_SurfaceFormat format; - int32_t multiSampleCount; - FNA3D_Texture *texture; - FNA3D_Renderbuffer *retval; - } genColorRenderbuffer; - - struct - { - int32_t width; - int32_t height; - FNA3D_DepthFormat format; - int32_t multiSampleCount; - FNA3D_Renderbuffer *retval; - } genDepthStencilRenderbuffer; - }; - SDL_sem *semaphore; - FNA3D_Command *next; -}; - -static void FNA3D_ExecuteCommand( - FNA3D_Device *device, - FNA3D_Command *cmd -) { - switch (cmd->type) - { - case FNA3D_COMMAND_CREATEEFFECT: - device->CreateEffect( - device->driverData, - cmd->createEffect.effectCode, - cmd->createEffect.effectCodeLength, - cmd->createEffect.effect, - cmd->createEffect.effectData - ); - break; - case FNA3D_COMMAND_CLONEEFFECT: - device->CloneEffect( - device->driverData, - cmd->cloneEffect.cloneSource, - cmd->cloneEffect.effect, - cmd->cloneEffect.effectData - ); - break; - case FNA3D_COMMAND_GENVERTEXBUFFER: - cmd->genVertexBuffer.retval = device->GenVertexBuffer( - device->driverData, - cmd->genVertexBuffer.dynamic, - cmd->genVertexBuffer.usage, - cmd->genVertexBuffer.sizeInBytes - ); - break; - case FNA3D_COMMAND_GENINDEXBUFFER: - cmd->genIndexBuffer.retval = device->GenIndexBuffer( - device->driverData, - cmd->genIndexBuffer.dynamic, - cmd->genIndexBuffer.usage, - cmd->genIndexBuffer.sizeInBytes - ); - break; - case FNA3D_COMMAND_SETVERTEXBUFFERDATA: - device->SetVertexBufferData( - device->driverData, - cmd->setVertexBufferData.buffer, - cmd->setVertexBufferData.offsetInBytes, - cmd->setVertexBufferData.data, - cmd->setVertexBufferData.elementCount, - cmd->setVertexBufferData.elementSizeInBytes, - cmd->setVertexBufferData.vertexStride, - cmd->setVertexBufferData.options - ); - break; - case FNA3D_COMMAND_SETINDEXBUFFERDATA: - device->SetIndexBufferData( - device->driverData, - cmd->setIndexBufferData.buffer, - cmd->setIndexBufferData.offsetInBytes, - cmd->setIndexBufferData.data, - cmd->setIndexBufferData.dataLength, - cmd->setIndexBufferData.options - ); - break; - case FNA3D_COMMAND_GETVERTEXBUFFERDATA: - device->GetVertexBufferData( - device->driverData, - cmd->getVertexBufferData.buffer, - cmd->getVertexBufferData.offsetInBytes, - cmd->getVertexBufferData.data, - cmd->getVertexBufferData.elementCount, - cmd->getVertexBufferData.elementSizeInBytes, - cmd->getVertexBufferData.vertexStride - ); - break; - case FNA3D_COMMAND_GETINDEXBUFFERDATA: - device->GetIndexBufferData( - device->driverData, - cmd->getIndexBufferData.buffer, - cmd->getIndexBufferData.offsetInBytes, - cmd->getIndexBufferData.data, - cmd->getIndexBufferData.dataLength - ); - break; - case FNA3D_COMMAND_CREATETEXTURE2D: - cmd->createTexture2D.retval = device->CreateTexture2D( - device->driverData, - cmd->createTexture2D.format, - cmd->createTexture2D.width, - cmd->createTexture2D.height, - cmd->createTexture2D.levelCount, - cmd->createTexture2D.isRenderTarget - ); - break; - case FNA3D_COMMAND_CREATETEXTURE3D: - cmd->createTexture3D.retval = device->CreateTexture3D( - device->driverData, - cmd->createTexture3D.format, - cmd->createTexture3D.width, - cmd->createTexture3D.height, - cmd->createTexture3D.depth, - cmd->createTexture3D.levelCount - ); - break; - case FNA3D_COMMAND_CREATETEXTURECUBE: - cmd->createTextureCube.retval = device->CreateTextureCube( - device->driverData, - cmd->createTextureCube.format, - cmd->createTextureCube.size, - cmd->createTextureCube.levelCount, - cmd->createTextureCube.isRenderTarget - ); - break; - case FNA3D_COMMAND_SETTEXTUREDATA2D: - device->SetTextureData2D( - device->driverData, - cmd->setTextureData2D.texture, - cmd->setTextureData2D.x, - cmd->setTextureData2D.y, - cmd->setTextureData2D.w, - cmd->setTextureData2D.h, - cmd->setTextureData2D.level, - cmd->setTextureData2D.data, - cmd->setTextureData2D.dataLength - ); - break; - case FNA3D_COMMAND_SETTEXTUREDATA3D: - device->SetTextureData3D( - device->driverData, - cmd->setTextureData3D.texture, - cmd->setTextureData3D.x, - cmd->setTextureData3D.y, - cmd->setTextureData3D.z, - cmd->setTextureData3D.w, - cmd->setTextureData3D.h, - cmd->setTextureData3D.d, - cmd->setTextureData3D.level, - cmd->setTextureData3D.data, - cmd->setTextureData3D.dataLength - ); - break; - case FNA3D_COMMAND_SETTEXTUREDATACUBE: - device->SetTextureDataCube( - device->driverData, - cmd->setTextureDataCube.texture, - cmd->setTextureDataCube.x, - cmd->setTextureDataCube.y, - cmd->setTextureDataCube.w, - cmd->setTextureDataCube.h, - cmd->setTextureDataCube.cubeMapFace, - cmd->setTextureDataCube.level, - cmd->setTextureDataCube.data, - cmd->setTextureDataCube.dataLength - ); - break; - case FNA3D_COMMAND_GETTEXTUREDATA2D: - device->GetTextureData2D( - device->driverData, - cmd->getTextureData2D.texture, - cmd->getTextureData2D.x, - cmd->getTextureData2D.y, - cmd->getTextureData2D.w, - cmd->getTextureData2D.h, - cmd->getTextureData2D.level, - cmd->getTextureData2D.data, - cmd->getTextureData2D.dataLength - ); - break; - case FNA3D_COMMAND_GETTEXTUREDATA3D: - device->GetTextureData3D( - device->driverData, - cmd->getTextureData3D.texture, - cmd->getTextureData3D.x, - cmd->getTextureData3D.y, - cmd->getTextureData3D.z, - cmd->getTextureData3D.w, - cmd->getTextureData3D.h, - cmd->getTextureData3D.d, - cmd->getTextureData3D.level, - cmd->getTextureData3D.data, - cmd->getTextureData3D.dataLength - ); - break; - case FNA3D_COMMAND_GETTEXTUREDATACUBE: - device->GetTextureDataCube( - device->driverData, - cmd->getTextureDataCube.texture, - cmd->getTextureDataCube.x, - cmd->getTextureDataCube.y, - cmd->getTextureDataCube.w, - cmd->getTextureDataCube.h, - cmd->getTextureDataCube.cubeMapFace, - cmd->getTextureDataCube.level, - cmd->getTextureDataCube.data, - cmd->getTextureDataCube.dataLength - ); - break; - case FNA3D_COMMAND_GENCOLORRENDERBUFFER: - cmd->genColorRenderbuffer.retval = device->GenColorRenderbuffer( - device->driverData, - cmd->genColorRenderbuffer.width, - cmd->genColorRenderbuffer.height, - cmd->genColorRenderbuffer.format, - cmd->genColorRenderbuffer.multiSampleCount, - cmd->genColorRenderbuffer.texture - ); - break; - case FNA3D_COMMAND_GENDEPTHRENDERBUFFER: - cmd->genDepthStencilRenderbuffer.retval = device->GenDepthStencilRenderbuffer( - device->driverData, - cmd->genDepthStencilRenderbuffer.width, - cmd->genDepthStencilRenderbuffer.height, - cmd->genDepthStencilRenderbuffer.format, - cmd->genDepthStencilRenderbuffer.multiSampleCount - ); - break; - default: - FNA3D_LogError( - "Cannot execute unknown command (value = %d)", - cmd->type - ); - break; - } -} - -/* Inline Functions */ - -static inline void BindReadFramebuffer(OpenGLRenderer *renderer, GLuint handle) -{ - if (handle != renderer->currentReadFramebuffer) - { - renderer->glBindFramebuffer(GL_READ_FRAMEBUFFER, handle); - renderer->currentReadFramebuffer = handle; - } -} - -static inline void BindDrawFramebuffer(OpenGLRenderer *renderer, GLuint handle) -{ - if (handle != renderer->currentDrawFramebuffer) - { - renderer->glBindFramebuffer(GL_DRAW_FRAMEBUFFER, handle); - renderer->currentDrawFramebuffer = handle; - } -} - -static inline void BindFramebuffer(OpenGLRenderer *renderer, GLuint handle) -{ - if ( renderer->currentReadFramebuffer != handle && - renderer->currentDrawFramebuffer != handle ) - { - renderer->glBindFramebuffer(GL_FRAMEBUFFER, handle); - renderer->currentReadFramebuffer = handle; - renderer->currentDrawFramebuffer = handle; - } - else if (renderer->currentReadFramebuffer != handle) - { - renderer->glBindFramebuffer(GL_READ_FRAMEBUFFER, handle); - renderer->currentReadFramebuffer = handle; - } - else if (renderer->currentDrawFramebuffer != handle) - { - renderer->glBindFramebuffer(GL_DRAW_FRAMEBUFFER, handle); - renderer->currentDrawFramebuffer = handle; - } -} - -static inline void BindTexture(OpenGLRenderer *renderer, OpenGLTexture* tex) -{ - if (tex->target != renderer->textures[0]->target) - { - renderer->glBindTexture(renderer->textures[0]->target, 0); - } - if (renderer->textures[0] != tex) - { - renderer->glBindTexture(tex->target, tex->handle); - } - renderer->textures[0] = tex; -} - -static inline void BindVertexBuffer(OpenGLRenderer *renderer, GLuint handle) -{ - if (handle != renderer->currentVertexBuffer) - { - renderer->glBindBuffer(GL_ARRAY_BUFFER, handle); - renderer->currentVertexBuffer = handle; - } -} - -static inline void BindIndexBuffer(OpenGLRenderer *renderer, GLuint handle) -{ - if (handle != renderer->currentIndexBuffer) - { - renderer->glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, handle); - renderer->currentIndexBuffer = handle; - } -} - -static inline void ToggleGLState( - OpenGLRenderer *renderer, - GLenum feature, - uint8_t enable -) { - if (enable) - { - renderer->glEnable(feature); - } - else - { - renderer->glDisable(feature); - } -} - -static inline void ApplySRGBFlag(OpenGLRenderer *renderer, uint8_t state) -{ - if (state == renderer->srgbEnabled) - { - return; - } - - renderer->srgbEnabled = state; - ToggleGLState(renderer, GL_FRAMEBUFFER_SRGB_EXT, state); -} - -static inline void ForceToMainThread( - OpenGLRenderer *renderer, - FNA3D_Command *command -) { - FNA3D_Command *curr; - command->semaphore = SDL_CreateSemaphore(0); - - SDL_LockMutex(renderer->commandsLock); - LinkedList_Add(renderer->commands, command, curr); - SDL_UnlockMutex(renderer->commandsLock); - - SDL_SemWait(command->semaphore); - SDL_DestroySemaphore(command->semaphore); -} - -/* Forward Declarations for Internal Functions */ - -static void OPENGL_INTERNAL_CreateBackbuffer( - OpenGLRenderer *renderer, - FNA3D_PresentationParameters *parameters -); -static void OPENGL_INTERNAL_DisposeBackbuffer(OpenGLRenderer *renderer); -static void OPENGL_INTERNAL_DestroyTexture( - OpenGLRenderer *renderer, - OpenGLTexture *texture -); -static void OPENGL_INTERNAL_DestroyRenderbuffer( - OpenGLRenderer *renderer, - OpenGLRenderbuffer *renderbuffer -); -static void OPENGL_INTERNAL_DestroyVertexBuffer( - OpenGLRenderer *renderer, - OpenGLBuffer *buffer -); -static void OPENGL_INTERNAL_DestroyIndexBuffer( - OpenGLRenderer *renderer, - OpenGLBuffer *buffer -); -static void OPENGL_INTERNAL_DestroyEffect( - OpenGLRenderer *renderer, - OpenGLEffect *effect -); -static void OPENGL_INTERNAL_DestroyQuery( - OpenGLRenderer *renderer, - OpenGLQuery *query -); -static void OPENGL_GetBackbufferSize( - FNA3D_Renderer *driverData, - int32_t *w, - int32_t *h -); - -/* Renderer Implementation */ - -/* Quit */ - -static void OPENGL_DestroyDevice(FNA3D_Device *device) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) device->driverData; - - if (renderer->useCoreProfile) - { - renderer->glBindVertexArray(0); - renderer->glDeleteVertexArrays(1, &renderer->vao); - } - - renderer->glDeleteFramebuffers(1, &renderer->resolveFramebufferRead); - renderer->resolveFramebufferRead = 0; - renderer->glDeleteFramebuffers(1, &renderer->resolveFramebufferDraw); - renderer->resolveFramebufferDraw = 0; - renderer->glDeleteFramebuffers(1, &renderer->targetFramebuffer); - renderer->targetFramebuffer = 0; - - if (renderer->backbuffer->type == BACKBUFFER_TYPE_OPENGL) - { - OPENGL_INTERNAL_DisposeBackbuffer(renderer); - } - SDL_free(renderer->backbuffer); - renderer->backbuffer = NULL; - - MOJOSHADER_glMakeContextCurrent(NULL); - MOJOSHADER_glDestroyContext(renderer->shaderContext); - - SDL_DestroyMutex(renderer->commandsLock); - SDL_DestroyMutex(renderer->disposeTexturesLock); - SDL_DestroyMutex(renderer->disposeRenderbuffersLock); - SDL_DestroyMutex(renderer->disposeVertexBuffersLock); - SDL_DestroyMutex(renderer->disposeIndexBuffersLock); - SDL_DestroyMutex(renderer->disposeEffectsLock); - SDL_DestroyMutex(renderer->disposeQueriesLock); - - SDL_GL_DeleteContext(renderer->context); - - SDL_free(renderer); - SDL_free(device); -} - -/* Presentation */ - -static inline void ExecuteCommands(OpenGLRenderer *renderer) -{ - FNA3D_Command *cmd, *next; - - SDL_LockMutex(renderer->commandsLock); - cmd = renderer->commands; - while (cmd != NULL) - { - FNA3D_ExecuteCommand( - renderer->parentDevice, - cmd - ); - next = cmd->next; - SDL_SemPost(cmd->semaphore); - cmd = next; - } - renderer->commands = NULL; /* No heap memory to free! -caleb */ - SDL_UnlockMutex(renderer->commandsLock); -} - -static inline void DisposeResources(OpenGLRenderer *renderer) -{ - OpenGLTexture *tex, *texNext; - OpenGLEffect *eff, *effNext; - OpenGLBuffer *buf, *bufNext; - OpenGLRenderbuffer *ren, *renNext; - OpenGLQuery *qry, *qryNext; - - /* All heap allocations are freed by func! -caleb */ - #define DISPOSE(prefix, list, func) \ - SDL_LockMutex(list##Lock); \ - prefix = list; \ - while (prefix != NULL) \ - { \ - prefix##Next = prefix->next; \ - OPENGL_INTERNAL_##func(renderer, prefix); \ - prefix = prefix##Next; \ - } \ - list = NULL; \ - SDL_UnlockMutex(list##Lock); - - DISPOSE(tex, renderer->disposeTextures, DestroyTexture) - DISPOSE(ren, renderer->disposeRenderbuffers, DestroyRenderbuffer) - DISPOSE(buf, renderer->disposeVertexBuffers, DestroyVertexBuffer) - DISPOSE(buf, renderer->disposeIndexBuffers, DestroyIndexBuffer) - DISPOSE(eff, renderer->disposeEffects, DestroyEffect) - DISPOSE(qry, renderer->disposeQueries, DestroyQuery) - - #undef DISPOSE -} - -static void OPENGL_SwapBuffers( - FNA3D_Renderer *driverData, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -) { - int32_t srcX, srcY, srcW, srcH; - int32_t dstX, dstY, dstW, dstH; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - - /* Only the faux-backbuffer supports presenting - * specific regions given to Present(). - * -flibit - */ - if (renderer->backbuffer->type == BACKBUFFER_TYPE_OPENGL) - { - if (sourceRectangle != NULL) - { - srcX = sourceRectangle->x; - srcY = sourceRectangle->y; - srcW = sourceRectangle->w; - srcH = sourceRectangle->h; - } - else - { - srcX = 0; - srcY = 0; - srcW = renderer->backbuffer->width; - srcH = renderer->backbuffer->height; - } - if (destinationRectangle != NULL) - { - dstX = destinationRectangle->x; - dstY = destinationRectangle->y; - dstW = destinationRectangle->w; - dstH = destinationRectangle->h; - } - else - { - dstX = 0; - dstY = 0; - SDL_GL_GetDrawableSize( - (SDL_Window*) overrideWindowHandle, - &dstW, - &dstH - ); - } - - if (renderer->scissorTestEnable) - { - renderer->glDisable(GL_SCISSOR_TEST); - } - - if ( renderer->backbuffer->multiSampleCount > 0 && - (srcX != dstX || srcY != dstY || srcW != dstW || srcH != dstH) ) - { - /* We have to resolve the renderbuffer to a texture first. - * For whatever reason, we can't blit a multisample renderbuffer - * to the backbuffer. Not sure why, but oh well. - * -flibit - */ - if (renderer->backbuffer->opengl.texture == 0) - { - renderer->glGenTextures(1, &renderer->backbuffer->opengl.texture); - renderer->glBindTexture(GL_TEXTURE_2D, renderer->backbuffer->opengl.texture); - renderer->glTexImage2D( - GL_TEXTURE_2D, - 0, - GL_RGBA, - renderer->backbuffer->width, - renderer->backbuffer->height, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - NULL - ); - renderer->glBindTexture( - renderer->textures[0]->target, - renderer->textures[0]->handle - ); - } - BindFramebuffer(renderer, renderer->resolveFramebufferDraw); - renderer->glFramebufferTexture2D( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_TEXTURE_2D, - renderer->backbuffer->opengl.texture, - 0 - ); - BindReadFramebuffer(renderer, renderer->backbuffer->opengl.handle); - renderer->glBlitFramebuffer( - 0, 0, renderer->backbuffer->width, renderer->backbuffer->height, - 0, 0, renderer->backbuffer->width, renderer->backbuffer->height, - GL_COLOR_BUFFER_BIT, - GL_LINEAR - ); - /* Invalidate the MSAA faux-backbuffer */ - if (renderer->supports_ARB_invalidate_subdata) - { - renderer->glInvalidateFramebuffer( - GL_READ_FRAMEBUFFER, - renderer->numAttachments + 2, - renderer->drawBuffersArray - ); - } - BindReadFramebuffer(renderer, renderer->resolveFramebufferDraw); - } - else - { - BindReadFramebuffer(renderer, renderer->backbuffer->opengl.handle); - } - BindDrawFramebuffer(renderer, renderer->realBackbufferFBO); - - renderer->glBlitFramebuffer( - srcX, srcY, srcW, srcH, - dstX, dstY, dstW, dstH, - GL_COLOR_BUFFER_BIT, - renderer->backbufferScaleMode - ); - /* Invalidate the faux-backbuffer */ - if (renderer->supports_ARB_invalidate_subdata) - { - renderer->glInvalidateFramebuffer( - GL_READ_FRAMEBUFFER, - renderer->numAttachments + 2, - renderer->drawBuffersArray - ); - } - - BindFramebuffer(renderer, renderer->realBackbufferFBO); - - if (renderer->scissorTestEnable) - { - renderer->glEnable(GL_SCISSOR_TEST); - } - - SDL_GL_SwapWindow((SDL_Window*) overrideWindowHandle); - - BindFramebuffer(renderer, renderer->backbuffer->opengl.handle); - } - else - { - /* Nothing left to do, just swap! */ - SDL_GL_SwapWindow((SDL_Window*) overrideWindowHandle); - } - - /* Run any threaded commands */ - ExecuteCommands(renderer); - - /* Destroy any disposed resources */ - DisposeResources(renderer); -} - -/* Drawing */ - -static void OPENGL_Clear( - FNA3D_Renderer *driverData, - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - uint8_t clearTarget, clearDepth, clearStencil; - GLenum clearMask; - - /* glClear depends on the scissor rectangle! */ - if (renderer->scissorTestEnable) - { - renderer->glDisable(GL_SCISSOR_TEST); - } - - clearTarget = (options & FNA3D_CLEAROPTIONS_TARGET) != 0; - clearDepth = (options & FNA3D_CLEAROPTIONS_DEPTHBUFFER) != 0; - clearStencil = (options & FNA3D_CLEAROPTIONS_STENCIL) != 0; - - /* Get the clear mask, set the clear properties if needed */ - clearMask = GL_ZERO; - if (clearTarget) - { - clearMask |= GL_COLOR_BUFFER_BIT; - if ( color->x != renderer->currentClearColor.x || - color->y != renderer->currentClearColor.y || - color->z != renderer->currentClearColor.z || - color->w != renderer->currentClearColor.w ) - { - renderer->glClearColor( - color->x, - color->y, - color->z, - color->w - ); - renderer->currentClearColor = *color; - } - /* glClear depends on the color write mask! */ - if (renderer->colorWriteEnable != FNA3D_COLORWRITECHANNELS_ALL) - { - /* FIXME: ColorWriteChannels1/2/3? -flibit */ - renderer->glColorMask(1, 1, 1, 1); - } - } - if (clearDepth) - { - clearMask |= GL_DEPTH_BUFFER_BIT; - if (depth != renderer->currentClearDepth) - { - if (renderer->supports_DoublePrecisionDepth) - { - renderer->glClearDepth((double) depth); - } - else - { - renderer->glClearDepthf(depth); - } - renderer->currentClearDepth = depth; - } - /* glClear depends on the depth write mask! */ - if (!renderer->zWriteEnable) - { - renderer->glDepthMask(1); - } - } - if (clearStencil) - { - clearMask |= GL_STENCIL_BUFFER_BIT; - if (stencil != renderer->currentClearStencil) - { - renderer->glClearStencil(stencil); - renderer->currentClearStencil = stencil; - } - /* glClear depends on the stencil write mask! */ - if (renderer->stencilWriteMask != -1) - { - /* AKA 0xFFFFFFFF, ugh -flibit */ - renderer->glStencilMask(-1); - } - } - - /* CLEAR! */ - renderer->glClear(clearMask); - - /* Clean up after ourselves. */ - if (renderer->scissorTestEnable) - { - renderer->glEnable(GL_SCISSOR_TEST); - } - if (clearTarget && renderer->colorWriteEnable != FNA3D_COLORWRITECHANNELS_ALL) - { - /* FIXME: ColorWriteChannels1/2/3? -flibit */ - renderer->glColorMask( - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_RED) != 0, - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_GREEN) != 0, - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_BLUE) != 0, - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_ALPHA) != 0 - ); - } - if (clearDepth && !renderer->zWriteEnable) - { - renderer->glDepthMask(0); - } - if (clearStencil && renderer->stencilWriteMask != -1) /* AKA 0xFFFFFFFF, ugh -flibit */ - { - renderer->glStencilMask(renderer->stencilWriteMask); - } -} - -static void OPENGL_DrawIndexedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - uint8_t tps; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *buffer = (OpenGLBuffer*) indices; - - BindIndexBuffer(renderer, buffer->handle); - - tps = ( renderer->togglePointSprite && - primitiveType == FNA3D_PRIMITIVETYPE_POINTLIST_EXT ); - if (tps) - { - renderer->glEnable(GL_POINT_SPRITE); - renderer->glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE); - } - - /* Draw! */ - if (renderer->supports_ARB_draw_elements_base_vertex) - { - renderer->glDrawRangeElementsBaseVertex( - XNAToGL_Primitive[primitiveType], - minVertexIndex, - minVertexIndex + numVertices - 1, - PrimitiveVerts(primitiveType, primitiveCount), - XNAToGL_IndexType[indexElementSize], - (void*) (size_t) (startIndex * IndexSize(indexElementSize)), - baseVertex - ); - } - else - { - renderer->glDrawRangeElements( - XNAToGL_Primitive[primitiveType], - minVertexIndex, - minVertexIndex + numVertices - 1, - PrimitiveVerts(primitiveType, primitiveCount), - XNAToGL_IndexType[indexElementSize], - (void*) (size_t) (startIndex * IndexSize(indexElementSize)) - ); - } - - if (tps) - { - renderer->glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE); - renderer->glDisable(GL_POINT_SPRITE); - } -} - -static void OPENGL_DrawInstancedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - /* Note that minVertexIndex and numVertices are NOT used! */ - - uint8_t tps; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *buffer = (OpenGLBuffer*) indices; - - SDL_assert(renderer->supports_ARB_draw_instanced); - - BindIndexBuffer(renderer, buffer->handle); - - tps = ( renderer->togglePointSprite && - primitiveType == FNA3D_PRIMITIVETYPE_POINTLIST_EXT ); - if (tps) - { - renderer->glEnable(GL_POINT_SPRITE); - renderer->glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE); - } - - /* Draw! */ - if (renderer->supports_ARB_draw_elements_base_vertex) - { - renderer->glDrawElementsInstancedBaseVertex( - XNAToGL_Primitive[primitiveType], - PrimitiveVerts(primitiveType, primitiveCount), - XNAToGL_IndexType[indexElementSize], - (void*) (size_t) (startIndex * IndexSize(indexElementSize)), - instanceCount, - baseVertex - ); - } - else - { - renderer->glDrawElementsInstanced( - XNAToGL_Primitive[primitiveType], - PrimitiveVerts(primitiveType, primitiveCount), - XNAToGL_IndexType[indexElementSize], - (void*) (size_t) (startIndex * IndexSize(indexElementSize)), - instanceCount - ); - } - - if (tps) - { - renderer->glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE); - renderer->glDisable(GL_POINT_SPRITE); - } -} - -static void OPENGL_DrawPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -) { - uint8_t tps; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - - tps = ( renderer->togglePointSprite && - primitiveType == FNA3D_PRIMITIVETYPE_POINTLIST_EXT ); - if (tps) - { - renderer->glEnable(GL_POINT_SPRITE); - renderer->glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE); - } - - /* Draw! */ - renderer->glDrawArrays( - XNAToGL_Primitive[primitiveType], - vertexStart, - PrimitiveVerts(primitiveType, primitiveCount) - ); - - if (tps) - { - renderer->glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_FALSE); - renderer->glDisable(GL_POINT_SPRITE); - } -} - -/* Mutable Render States */ - -static void OPENGL_SetViewport(FNA3D_Renderer *driverData, FNA3D_Viewport *viewport) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - int32_t bbw, bbh; - FNA3D_Viewport vp = *viewport; - - /* Flip viewport when target is not bound */ - if (!renderer->renderTargetBound) - { - OPENGL_GetBackbufferSize(driverData, &bbw, &bbh); - vp.y = bbh - viewport->y - viewport->h; - } - - if ( vp.x != renderer->viewport.x || - vp.y != renderer->viewport.y || - vp.w != renderer->viewport.w || - vp.h != renderer->viewport.h ) - { - renderer->viewport = vp; - renderer->glViewport( - vp.x, - vp.y, - vp.w, - vp.h - ); - } - - if ( viewport->minDepth != renderer->depthRangeMin || - viewport->maxDepth != renderer->depthRangeMax ) - { - renderer->depthRangeMin = viewport->minDepth; - renderer->depthRangeMax = viewport->maxDepth; - - if (renderer->supports_DoublePrecisionDepth) - { - renderer->glDepthRange( - (double) viewport->minDepth, - (double) viewport->maxDepth - ); - } - else - { - renderer->glDepthRangef( - viewport->minDepth, - viewport->maxDepth - ); - } - } -} - -static void OPENGL_SetScissorRect(FNA3D_Renderer *driverData, FNA3D_Rect *scissor) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - int32_t bbw, bbh; - FNA3D_Rect sr = *scissor; - - /* Flip rectangle when target is not bound */ - if (!renderer->renderTargetBound) - { - OPENGL_GetBackbufferSize(driverData, &bbw, &bbh); - sr.y = bbh - scissor->y - scissor->h; - } - - if ( sr.x != renderer->scissorRect.x || - sr.y != renderer->scissorRect.y || - sr.w != renderer->scissorRect.w || - sr.h != renderer->scissorRect.h ) - { - renderer->scissorRect = sr; - renderer->glScissor( - sr.x, - sr.y, - sr.w, - sr.h - ); - } -} - -static void OPENGL_GetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - SDL_memcpy(blendFactor, &renderer->blendColor, sizeof(FNA3D_Color)); -} - -static void OPENGL_SetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - if ( renderer->blendColor.r != blendFactor->r || - renderer->blendColor.g != blendFactor->g || - renderer->blendColor.b != blendFactor->b || - renderer->blendColor.a != blendFactor->a ) - { - renderer->blendColor.r = blendFactor->r; - renderer->blendColor.g = blendFactor->g; - renderer->blendColor.b = blendFactor->b; - renderer->blendColor.a = blendFactor->a; - renderer->glBlendColor( - renderer->blendColor.r / 255.0f, - renderer->blendColor.g / 255.0f, - renderer->blendColor.b / 255.0f, - renderer->blendColor.a / 255.0f - ); - } -} - -static int32_t OPENGL_GetMultiSampleMask(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - SDL_assert(renderer->supports_ARB_texture_multisample); - return renderer->multiSampleMask; -} - -static void OPENGL_SetMultiSampleMask(FNA3D_Renderer *driverData, int32_t mask) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - SDL_assert(renderer->supports_ARB_texture_multisample); - if (mask != renderer->multiSampleMask) - { - if (mask == -1) - { - renderer->glDisable(GL_SAMPLE_MASK); - } - else - { - if (renderer->multiSampleMask == -1) - { - renderer->glEnable(GL_SAMPLE_MASK); - } - /* FIXME: Index...? -flibit */ - renderer->glSampleMaski(0, (GLuint) mask); - } - renderer->multiSampleMask = mask; - } -} - -static int32_t OPENGL_GetReferenceStencil(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return renderer->stencilRef; -} - -static void OPENGL_SetReferenceStencil(FNA3D_Renderer *driverData, int32_t ref) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - if (ref != renderer->stencilRef) - { - renderer->stencilRef = ref; - if (renderer->separateStencilEnable) - { - renderer->glStencilFuncSeparate( - GL_FRONT, - XNAToGL_CompareFunc[renderer->stencilFunc], - renderer->stencilRef, - renderer->stencilMask - ); - renderer->glStencilFuncSeparate( - GL_BACK, - XNAToGL_CompareFunc[renderer->stencilFunc], - renderer->stencilRef, - renderer->stencilMask - ); - } - else - { - renderer->glStencilFunc( - XNAToGL_CompareFunc[renderer->stencilFunc], - renderer->stencilRef, - renderer->stencilMask - ); - } - } -} - -/* Immutable Render States */ - -static void OPENGL_SetBlendState( - FNA3D_Renderer *driverData, - FNA3D_BlendState *blendState -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - - uint8_t newEnable = !( - blendState->colorSourceBlend == FNA3D_BLEND_ONE && - blendState->colorDestinationBlend == FNA3D_BLEND_ZERO && - blendState->alphaSourceBlend == FNA3D_BLEND_ONE && - blendState->alphaDestinationBlend == FNA3D_BLEND_ZERO - ); - - if (newEnable != renderer->alphaBlendEnable) - { - renderer->alphaBlendEnable = newEnable; - ToggleGLState(renderer, GL_BLEND, renderer->alphaBlendEnable); - } - - if (renderer->alphaBlendEnable) - { - if ( blendState->blendFactor.r != renderer->blendColor.r || - blendState->blendFactor.g != renderer->blendColor.g || - blendState->blendFactor.b != renderer->blendColor.b || - blendState->blendFactor.a != renderer->blendColor.a ) - { - renderer->blendColor = blendState->blendFactor; - renderer->glBlendColor( - renderer->blendColor.r / 255.0f, - renderer->blendColor.g / 255.0f, - renderer->blendColor.b / 255.0f, - renderer->blendColor.a / 255.0f - ); - } - - if ( blendState->colorSourceBlend != renderer->srcBlend || - blendState->colorDestinationBlend != renderer->dstBlend || - blendState->alphaSourceBlend != renderer->srcBlendAlpha || - blendState->alphaDestinationBlend != renderer->dstBlendAlpha ) - { - renderer->srcBlend = blendState->colorSourceBlend; - renderer->dstBlend = blendState->colorDestinationBlend; - renderer->srcBlendAlpha = blendState->alphaSourceBlend; - renderer->dstBlendAlpha = blendState->alphaDestinationBlend; - renderer->glBlendFuncSeparate( - XNAToGL_BlendMode[renderer->srcBlend], - XNAToGL_BlendMode[renderer->dstBlend], - XNAToGL_BlendMode[renderer->srcBlendAlpha], - XNAToGL_BlendMode[renderer->dstBlendAlpha] - ); - } - - if ( blendState->colorBlendFunction != renderer->blendOp || - blendState->alphaBlendFunction != renderer->blendOpAlpha ) - { - renderer->blendOp = blendState->colorBlendFunction; - renderer->blendOpAlpha = blendState->alphaBlendFunction; - renderer->glBlendEquationSeparate( - XNAToGL_BlendEquation[renderer->blendOp], - XNAToGL_BlendEquation[renderer->blendOpAlpha] - ); - } - } - - if (blendState->colorWriteEnable != renderer->colorWriteEnable) - { - renderer->colorWriteEnable = blendState->colorWriteEnable; - renderer->glColorMask( - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_RED) != 0, - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_GREEN) != 0, - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_BLUE) != 0, - (renderer->colorWriteEnable & FNA3D_COLORWRITECHANNELS_ALPHA) != 0 - ); - } - - /* FIXME: So how exactly do we factor in - * COLORWRITEENABLE for buffer 0? Do we just assume that - * the default is just buffer 0, and all other calls - * update the other write masks afterward? Or do we - * assume that COLORWRITEENABLE only touches 0, and the - * other 3 buffers are left alone unless we don't have - * EXT_draw_buffers2? - * -flibit - */ - if (blendState->colorWriteEnable1 != renderer->colorWriteEnable1) - { - SDL_assert(renderer->supports_EXT_draw_buffers2); - renderer->colorWriteEnable1 = blendState->colorWriteEnable1; - renderer->glColorMaski( - 1, - (renderer->colorWriteEnable1 & FNA3D_COLORWRITECHANNELS_RED) != 0, - (renderer->colorWriteEnable1 & FNA3D_COLORWRITECHANNELS_GREEN) != 0, - (renderer->colorWriteEnable1 & FNA3D_COLORWRITECHANNELS_BLUE) != 0, - (renderer->colorWriteEnable1 & FNA3D_COLORWRITECHANNELS_ALPHA) != 0 - ); - } - if (blendState->colorWriteEnable2 != renderer->colorWriteEnable2) - { - SDL_assert(renderer->supports_EXT_draw_buffers2); - renderer->colorWriteEnable2 = blendState->colorWriteEnable2; - renderer->glColorMaski( - 2, - (renderer->colorWriteEnable2 & FNA3D_COLORWRITECHANNELS_RED) != 0, - (renderer->colorWriteEnable2 & FNA3D_COLORWRITECHANNELS_GREEN) != 0, - (renderer->colorWriteEnable2 & FNA3D_COLORWRITECHANNELS_BLUE) != 0, - (renderer->colorWriteEnable2 & FNA3D_COLORWRITECHANNELS_ALPHA) != 0 - ); - } - if (blendState->colorWriteEnable3 != renderer->colorWriteEnable3) - { - SDL_assert(renderer->supports_EXT_draw_buffers2); - renderer->colorWriteEnable3 = blendState->colorWriteEnable3; - renderer->glColorMaski( - 3, - (renderer->colorWriteEnable3 & FNA3D_COLORWRITECHANNELS_RED) != 0, - (renderer->colorWriteEnable3 & FNA3D_COLORWRITECHANNELS_GREEN) != 0, - (renderer->colorWriteEnable3 & FNA3D_COLORWRITECHANNELS_BLUE) != 0, - (renderer->colorWriteEnable3 & FNA3D_COLORWRITECHANNELS_ALPHA) != 0 - ); - } - - if (blendState->multiSampleMask != renderer->multiSampleMask) - { - SDL_assert(renderer->supports_ARB_texture_multisample); - if (blendState->multiSampleMask == -1) - { - renderer->glDisable(GL_SAMPLE_MASK); - } - else - { - if (renderer->multiSampleMask == -1) - { - renderer->glEnable(GL_SAMPLE_MASK); - } - /* FIXME: index...? -flibit */ - renderer->glSampleMaski(0, (uint32_t) blendState->multiSampleMask); - } - renderer->multiSampleMask = blendState->multiSampleMask; - } -} - -static void OPENGL_SetDepthStencilState( - FNA3D_Renderer *driverData, - FNA3D_DepthStencilState *depthStencilState -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - - if (depthStencilState->depthBufferEnable != renderer->zEnable) - { - renderer->zEnable = depthStencilState->depthBufferEnable; - ToggleGLState(renderer, GL_DEPTH_TEST, renderer->zEnable); - } - - if (renderer->zEnable) - { - if (depthStencilState->depthBufferWriteEnable != renderer->zWriteEnable) - { - renderer->zWriteEnable = depthStencilState->depthBufferWriteEnable; - renderer->glDepthMask(renderer->zWriteEnable); - } - - if (depthStencilState->depthBufferFunction != renderer->depthFunc) - { - renderer->depthFunc = depthStencilState->depthBufferFunction; - renderer->glDepthFunc(XNAToGL_CompareFunc[renderer->depthFunc]); - } - } - - if (depthStencilState->stencilEnable != renderer->stencilEnable) - { - renderer->stencilEnable = depthStencilState->stencilEnable; - ToggleGLState(renderer, GL_STENCIL_TEST, renderer->stencilEnable); - } - - if (renderer->stencilEnable) - { - if (depthStencilState->stencilWriteMask != renderer->stencilWriteMask) - { - renderer->stencilWriteMask = depthStencilState->stencilWriteMask; - renderer->glStencilMask(renderer->stencilWriteMask); - } - - /* TODO: Can we split up StencilFunc/StencilOp nicely? -flibit */ - if ( depthStencilState->twoSidedStencilMode != renderer->separateStencilEnable || - depthStencilState->referenceStencil != renderer->stencilRef || - depthStencilState->stencilMask != renderer->stencilMask || - depthStencilState->stencilFunction != renderer->stencilFunc || - depthStencilState->ccwStencilFunction != renderer->ccwStencilFunc || - depthStencilState->stencilFail != renderer->stencilFail || - depthStencilState->stencilDepthBufferFail != renderer->stencilZFail || - depthStencilState->stencilPass != renderer->stencilPass || - depthStencilState->ccwStencilFail != renderer->ccwStencilFail || - depthStencilState->ccwStencilDepthBufferFail != renderer->ccwStencilZFail || - depthStencilState->ccwStencilPass != renderer->ccwStencilPass ) - { - renderer->separateStencilEnable = depthStencilState->twoSidedStencilMode; - renderer->stencilRef = depthStencilState->referenceStencil; - renderer->stencilMask = depthStencilState->stencilMask; - renderer->stencilFunc = depthStencilState->stencilFunction; - renderer->stencilFail = depthStencilState->stencilFail; - renderer->stencilZFail = depthStencilState->stencilDepthBufferFail; - renderer->stencilPass = depthStencilState->stencilPass; - if (renderer->separateStencilEnable) - { - renderer->ccwStencilFunc = depthStencilState->ccwStencilFunction; - renderer->ccwStencilFail = depthStencilState->ccwStencilFail; - renderer->ccwStencilZFail = depthStencilState->ccwStencilDepthBufferFail; - renderer->ccwStencilPass = depthStencilState->ccwStencilPass; - renderer->glStencilFuncSeparate( - GL_FRONT, - XNAToGL_CompareFunc[renderer->stencilFunc], - renderer->stencilRef, - renderer->stencilMask - ); - renderer->glStencilFuncSeparate( - GL_BACK, - XNAToGL_CompareFunc[renderer->ccwStencilFunc], - renderer->stencilRef, - renderer->stencilMask - ); - renderer->glStencilOpSeparate( - GL_FRONT, - XNAToGL_GLStencilOp[renderer->stencilFail], - XNAToGL_GLStencilOp[renderer->stencilZFail], - XNAToGL_GLStencilOp[renderer->stencilPass] - ); - renderer->glStencilOpSeparate( - GL_BACK, - XNAToGL_GLStencilOp[renderer->ccwStencilFail], - XNAToGL_GLStencilOp[renderer->ccwStencilZFail], - XNAToGL_GLStencilOp[renderer->ccwStencilPass] - ); - } - else - { - renderer->glStencilFunc( - XNAToGL_CompareFunc[renderer->stencilFunc], - renderer->stencilRef, - renderer->stencilMask - ); - renderer->glStencilOp( - XNAToGL_GLStencilOp[renderer->stencilFail], - XNAToGL_GLStencilOp[renderer->stencilZFail], - XNAToGL_GLStencilOp[renderer->stencilPass] - ); - } - } - } -} - -static void OPENGL_ApplyRasterizerState( - FNA3D_Renderer *driverData, - FNA3D_RasterizerState *rasterizerState -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - FNA3D_CullMode actualMode; - float realDepthBias; - - if (rasterizerState->scissorTestEnable != renderer->scissorTestEnable) - { - renderer->scissorTestEnable = rasterizerState->scissorTestEnable; - ToggleGLState(renderer, GL_SCISSOR_TEST, renderer->scissorTestEnable); - } - - if (renderer->renderTargetBound) - { - actualMode = rasterizerState->cullMode; - } - else - { - /* When not rendering offscreen the faces change order. */ - if (rasterizerState->cullMode == FNA3D_CULLMODE_NONE) - { - actualMode = rasterizerState->cullMode; - } - else - { - actualMode = ( - rasterizerState->cullMode == FNA3D_CULLMODE_CULLCLOCKWISEFACE ? - FNA3D_CULLMODE_CULLCOUNTERCLOCKWISEFACE : - FNA3D_CULLMODE_CULLCLOCKWISEFACE - ); - } - } - if (actualMode != renderer->cullFrontFace) - { - if ((actualMode == FNA3D_CULLMODE_NONE) != (renderer->cullFrontFace == FNA3D_CULLMODE_NONE)) - { - ToggleGLState(renderer, GL_CULL_FACE, actualMode != FNA3D_CULLMODE_NONE); - } - renderer->cullFrontFace = actualMode; - if (renderer->cullFrontFace != FNA3D_CULLMODE_NONE) - { - renderer->glFrontFace(XNAToGL_FrontFace[renderer->cullFrontFace]); - } - } - - if (rasterizerState->fillMode != renderer->fillMode) - { - renderer->fillMode = rasterizerState->fillMode; - renderer->glPolygonMode( - GL_FRONT_AND_BACK, - XNAToGL_GLFillMode[renderer->fillMode] - ); - } - - realDepthBias = rasterizerState->depthBias * XNAToGL_DepthBiasScale[ - renderer->renderTargetBound ? - renderer->currentDepthStencilFormat : - renderer->backbuffer->depthFormat - ]; - if ( realDepthBias != renderer->depthBias || - rasterizerState->slopeScaleDepthBias != renderer->slopeScaleDepthBias ) - { - if ( realDepthBias == 0.0f && - rasterizerState->slopeScaleDepthBias == 0.0f) - { - /* We're changing to disabled bias, disable! */ - renderer->glDisable(GL_POLYGON_OFFSET_FILL); - } - else - { - if (renderer->depthBias == 0.0f && renderer->slopeScaleDepthBias == 0.0f) - { - /* We're changing away from disabled bias, enable! */ - renderer->glEnable(GL_POLYGON_OFFSET_FILL); - } - renderer->glPolygonOffset( - rasterizerState->slopeScaleDepthBias, - realDepthBias - ); - } - renderer->depthBias = realDepthBias; - renderer->slopeScaleDepthBias = rasterizerState->slopeScaleDepthBias; - } - - /* If you're reading this, you have a user with broken MSAA! - * Here's the deal: On all modern drivers this should work, - * but there was a period of time where, for some reason, - * IHVs all took a nap and decided that they didn't have to - * respect GL_MULTISAMPLE toggles. A couple sources: - * - * https://developer.apple.com/library/content/documentation/GraphicsImaging/Conceptual/OpenGL-MacProgGuide/opengl_fsaa/opengl_fsaa.html - * - * https://www.opengl.org/discussion_boards/showthread.php/172025-glDisable(GL_MULTISAMPLE)-has-no-effect - * - * So yeah. Have em update their driver. If they're on Intel, - * tell them to install Linux. Yes, really. - * -flibit - */ - if (rasterizerState->multiSampleAntiAlias != renderer->multiSampleEnable) - { - renderer->multiSampleEnable = rasterizerState->multiSampleAntiAlias; - ToggleGLState(renderer, GL_MULTISAMPLE, renderer->multiSampleEnable); - } -} - -static void OPENGL_VerifySampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *tex = (OpenGLTexture*) texture; - - if (texture == NULL) - { - if (renderer->textures[index] != &NullTexture) - { - if (index != 0) - { - renderer->glActiveTexture(GL_TEXTURE0 + index); - } - renderer->glBindTexture(renderer->textures[index]->target, 0); - if (index != 0) - { - /* Keep this state sane. -flibit */ - renderer->glActiveTexture(GL_TEXTURE0); - } - renderer->textures[index] = &NullTexture; - } - return; - } - - if ( tex == renderer->textures[index] && - sampler->addressU == tex->wrapS && - sampler->addressV == tex->wrapT && - sampler->addressW == tex->wrapR && - sampler->filter == tex->filter && - sampler->maxAnisotropy == tex->anisotropy && - sampler->maxMipLevel == tex->maxMipmapLevel && - sampler->mipMapLevelOfDetailBias == tex->lodBias ) - { - /* Nothing's changing, forget it. */ - return; - } - - /* Set the active texture slot */ - if (index != 0) - { - renderer->glActiveTexture(GL_TEXTURE0 + index); - } - - /* Bind the correct texture */ - if (tex != renderer->textures[index]) - { - if (tex->target != renderer->textures[index]->target) - { - /* If we're changing targets, unbind the old texture first! */ - renderer->glBindTexture(renderer->textures[index]->target, 0); - } - renderer->glBindTexture(tex->target, tex->handle); - renderer->textures[index] = tex; - } - - /* Apply the sampler states to the GL texture */ - if (sampler->addressU != tex->wrapS) - { - tex->wrapS = sampler->addressU; - renderer->glTexParameteri( - tex->target, - GL_TEXTURE_WRAP_S, - XNAToGL_Wrap[tex->wrapS] - ); - } - if (sampler->addressV != tex->wrapT) - { - tex->wrapT = sampler->addressV; - renderer->glTexParameteri( - tex->target, - GL_TEXTURE_WRAP_T, - XNAToGL_Wrap[tex->wrapT] - ); - } - if (sampler->addressW != tex->wrapR) - { - tex->wrapR = sampler->addressW; - renderer->glTexParameteri( - tex->target, - GL_TEXTURE_WRAP_R, - XNAToGL_Wrap[tex->wrapR] - ); - } - if ( sampler->filter != tex->filter || - sampler->maxAnisotropy != tex->anisotropy ) - { - tex->filter = sampler->filter; - tex->anisotropy = (float) sampler->maxAnisotropy; - renderer->glTexParameteri( - tex->target, - GL_TEXTURE_MAG_FILTER, - XNAToGL_MagFilter[tex->filter] - ); - renderer->glTexParameteri( - tex->target, - GL_TEXTURE_MIN_FILTER, - tex->hasMipmaps ? - XNAToGL_MinMipFilter[tex->filter] : - XNAToGL_MinFilter[tex->filter] - ); - if (renderer->supports_anisotropic_filtering) - { - renderer->glTexParameterf( - tex->target, - GL_TEXTURE_MAX_ANISOTROPY_EXT, - (tex->filter == FNA3D_TEXTUREFILTER_ANISOTROPIC) ? - SDL_max(tex->anisotropy, 1.0f) : - 1.0f - ); - } - } - if (sampler->maxMipLevel != tex->maxMipmapLevel) - { - tex->maxMipmapLevel = sampler->maxMipLevel; - renderer->glTexParameteri( - tex->target, - GL_TEXTURE_BASE_LEVEL, - tex->maxMipmapLevel - ); - } - if (sampler->mipMapLevelOfDetailBias != tex->lodBias && !renderer->useES3) - { - tex->lodBias = sampler->mipMapLevelOfDetailBias; - renderer->glTexParameterf( - tex->target, - GL_TEXTURE_LOD_BIAS, - tex->lodBias - ); - } - - if (index != 0) - { - /* Keep this state sane. -flibit */ - renderer->glActiveTexture(GL_TEXTURE0); - } -} - -static void OPENGL_VerifyVertexSampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OPENGL_VerifySampler( - driverData, - index + renderer->vertexSamplerStart, - texture, - sampler - ); -} - -static inline void OPENGL_INTERNAL_FlushGLVertexAttributes(OpenGLRenderer *renderer) -{ - int32_t i, divisor; - for (i = 0; i < renderer->numVertexAttributes; i += 1) - { - if (renderer->attributeEnabled[i]) - { - renderer->attributeEnabled[i] = 0; - if (!renderer->previousAttributeEnabled[i]) - { - renderer->glEnableVertexAttribArray(i); - renderer->previousAttributeEnabled[i] = 1; - } - } - else if (renderer->previousAttributeEnabled[i]) - { - renderer->glDisableVertexAttribArray(i); - renderer->previousAttributeEnabled[i] = 0; - } - - divisor = renderer->attributeDivisor[i]; - if (divisor != renderer->previousAttributeDivisor[i]) - { - renderer->glVertexAttribDivisor(i, divisor); - renderer->previousAttributeDivisor[i] = divisor; - } - } -} - -static void OPENGL_ApplyVertexBufferBindings( - FNA3D_Renderer *driverData, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -) { - uint8_t *basePtr, *ptr; - uint8_t normalized; - int32_t i, j, k; - int32_t usage, index, attribLoc; - uint8_t attrUse[MOJOSHADER_USAGE_TOTAL][16]; - FNA3D_VertexElement *element; - FNA3D_VertexDeclaration *vertexDeclaration; - OpenGLVertexAttribute *attr; - OpenGLBuffer *buffer; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - - if (renderer->supports_ARB_draw_elements_base_vertex) - { - baseVertex = 0; - } - - if ( bindingsUpdated || - baseVertex != renderer->ldBaseVertex || - renderer->effectApplied ) - { - /* There's this weird case where you can have overlapping - * vertex usage/index combinations. It seems like the first - * attrib gets priority, so whenever a duplicate attribute - * exists, give it the next available index. If that fails, we - * have to crash :/ - * -flibit - */ - SDL_memset(attrUse, '\0', sizeof(attrUse)); - for (i = 0; i < numBindings; i += 1) - { - buffer = (OpenGLBuffer*) bindings[i].vertexBuffer; - BindVertexBuffer(renderer, buffer->handle); - vertexDeclaration = &bindings[i].vertexDeclaration; - basePtr = (uint8_t*) (size_t) ( - vertexDeclaration->vertexStride * - (bindings[i].vertexOffset + baseVertex) - ); - for (j = 0; j < vertexDeclaration->elementCount; j += 1) - { - element = &vertexDeclaration->elements[j]; - usage = element->vertexElementUsage; - index = element->usageIndex; - if (attrUse[usage][index]) - { - index = -1; - for (k = 0; k < 16; k += 1) - { - if (!attrUse[usage][k]) - { - index = k; - break; - } - } - if (index < 0) - { - FNA3D_LogError( - "Vertex usage collision!" - ); - } - } - attrUse[usage][index] = 1; - attribLoc = MOJOSHADER_glGetVertexAttribLocation( - VertexAttribUsage(usage), - index - ); - if (attribLoc == -1) - { - /* Stream not in use! */ - continue; - } - renderer->attributeEnabled[attribLoc] = 1; - attr = &renderer->attributes[attribLoc]; - ptr = basePtr + element->offset; - normalized = XNAToGL_VertexAttribNormalized(element); - if ( attr->currentBuffer != buffer->handle || - attr->currentPointer != ptr || - attr->currentFormat != element->vertexElementFormat || - attr->currentNormalized != normalized || - attr->currentStride != vertexDeclaration->vertexStride ) - { - renderer->glVertexAttribPointer( - attribLoc, - XNAToGL_VertexAttribSize[element->vertexElementFormat], - XNAToGL_VertexAttribType[element->vertexElementFormat], - normalized, - vertexDeclaration->vertexStride, - ptr - ); - attr->currentBuffer = buffer->handle; - attr->currentPointer = ptr; - attr->currentFormat = element->vertexElementFormat; - attr->currentNormalized = normalized; - attr->currentStride = vertexDeclaration->vertexStride; - } - if (renderer->supports_ARB_instanced_arrays) - { - renderer->attributeDivisor[attribLoc] = bindings[i].instanceFrequency; - } - } - } - OPENGL_INTERNAL_FlushGLVertexAttributes(renderer); - - renderer->ldBaseVertex = baseVertex; - renderer->effectApplied = 0; - } - - MOJOSHADER_glProgramReady(); - MOJOSHADER_glProgramViewportInfo( - renderer->viewport.w, renderer->viewport.h, - renderer->backbuffer->width, renderer->backbuffer->height, - renderer->renderTargetBound - ); -} - -/* Render Targets */ - -static void OPENGL_SetRenderTargets( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLRenderbuffer *rb = (OpenGLRenderbuffer*) depthStencilBuffer; - uint8_t isSrgb = 0; - FNA3D_RenderTargetBinding *rt; - int32_t i; - GLuint handle; - - /* Bind the right framebuffer, if needed */ - if (numRenderTargets <= 0) - { - BindFramebuffer( - renderer, - renderer->backbuffer->type == BACKBUFFER_TYPE_OPENGL ? - renderer->backbuffer->opengl.handle : - renderer->realBackbufferFBO - ); - renderer->renderTargetBound = 0; - ApplySRGBFlag(renderer, renderer->backbuffer->isSrgb); - return; - } - else - { - BindFramebuffer(renderer, renderer->targetFramebuffer); - renderer->renderTargetBound = 1; - } - - for (i = 0; i < numRenderTargets; i += 1) - { - rt = &renderTargets[i]; - if (rt->colorBuffer != NULL) - { - renderer->attachments[i] = ((OpenGLRenderbuffer*) rt->colorBuffer)->handle; - renderer->attachmentTypes[i] = GL_RENDERBUFFER; - isSrgb |= (((OpenGLRenderbuffer*)rt->colorBuffer)->format == FNA3D_SURFACEFORMAT_COLORSRGB_EXT); - } - else - { - renderer->attachments[i] = ((OpenGLTexture*) rt->texture)->handle; - if (rt->type == FNA3D_RENDERTARGET_TYPE_2D) - { - renderer->attachmentTypes[i] = GL_TEXTURE_2D; - } - else - { - renderer->attachmentTypes[i] = GL_TEXTURE_CUBE_MAP_POSITIVE_X + rt->cube.face; - } - isSrgb |= (((OpenGLTexture*) rt->texture)->format == FNA3D_SURFACEFORMAT_COLORSRGB_EXT); - } - } - - ApplySRGBFlag(renderer, isSrgb); - - /* Update the color attachments, DrawBuffers state */ - for (i = 0; i < numRenderTargets; i += 1) - { - const uint8_t handleChange = renderer->attachments[i] != renderer->currentAttachments[i]; - const uint8_t typeChange = renderer->attachmentTypes[i] != renderer->currentAttachmentTypes[i]; - const uint8_t renderbuffersInvolved = ( - renderer->attachmentTypes[i] == GL_RENDERBUFFER || - renderer->currentAttachmentTypes[i] == GL_RENDERBUFFER - ); - - /* Only detach the previous attachment here if all of the following are met: - * - There must be an attachment to unset in the first place - * - The type of the attachment index must be changing in some way - * - Either the handles must be different, or a renderbuffer is involved - * and therefore a GL handle collision has occurred (WTF) - */ - if ( typeChange && - renderer->currentAttachments[i] != 0 && - (handleChange || renderbuffersInvolved) ) - { - if (renderer->currentAttachmentTypes[i] == GL_RENDERBUFFER) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0 + i, - GL_RENDERBUFFER, - 0 - ); - } - else - { - renderer->glFramebufferTexture2D( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0 + i, - renderer->currentAttachmentTypes[i], - 0, - 0 - ); - } - } - - if (handleChange || typeChange) - { - if (renderer->attachmentTypes[i] == GL_RENDERBUFFER) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0 + i, - GL_RENDERBUFFER, - renderer->attachments[i] - ); - } - else - { - renderer->glFramebufferTexture2D( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0 + i, - renderer->attachmentTypes[i], - renderer->attachments[i], - 0 - ); - } - renderer->currentAttachments[i] = renderer->attachments[i]; - renderer->currentAttachmentTypes[i] = renderer->attachmentTypes[i]; - } - } - while (i < renderer->numAttachments) - { - if (renderer->currentAttachments[i] != 0) - { - if (renderer->currentAttachmentTypes[i] == GL_RENDERBUFFER) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0 + i, - GL_RENDERBUFFER, - 0 - ); - } - else - { - renderer->glFramebufferTexture2D( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0 + i, - renderer->currentAttachmentTypes[i], - 0, - 0 - ); - } - renderer->currentAttachments[i] = 0; - renderer->currentAttachmentTypes[i] = GL_TEXTURE_2D; - } - i += 1; - } - if (numRenderTargets != renderer->currentDrawBuffers) - { - renderer->glDrawBuffers(numRenderTargets, renderer->drawBuffersArray); - renderer->currentDrawBuffers = numRenderTargets; - } - - /* Update the depth/stencil attachment */ - /* FIXME: Notice that we do separate attach calls for the stencil. - * We _should_ be able to do a single attach for depthstencil, but - * some drivers (like Mesa) cannot into GL_DEPTH_STENCIL_ATTACHMENT. - * Use XNAToGL.DepthStencilAttachment when this isn't a problem. - * -flibit - */ - if (depthStencilBuffer == NULL) - { - handle = 0; - } - else - { - handle = rb->handle; - } - if (handle != renderer->currentRenderbuffer) - { - if (renderer->currentDepthStencilFormat == FNA3D_DEPTHFORMAT_D24S8) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_STENCIL_ATTACHMENT, - GL_RENDERBUFFER, - 0 - ); - } - renderer->currentDepthStencilFormat = depthFormat; - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_DEPTH_ATTACHMENT, - GL_RENDERBUFFER, - handle - ); - if (renderer->currentDepthStencilFormat == FNA3D_DEPTHFORMAT_D24S8) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_STENCIL_ATTACHMENT, - GL_RENDERBUFFER, - handle - ); - } - renderer->currentRenderbuffer = handle; - } -} - -static void OPENGL_ResolveTarget( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *target -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - GLuint prevBuffer; - OpenGLTexture *prevTex; - OpenGLTexture *rtTex = (OpenGLTexture*) target->texture; - int32_t width, height; - GLenum textureTarget; - - if (target->type == FNA3D_RENDERTARGET_TYPE_2D) - { - textureTarget = GL_TEXTURE_2D; - width = target->twod.width; - height = target->twod.height; - } - else - { - textureTarget = GL_TEXTURE_CUBE_MAP_POSITIVE_X + target->cube.face; - width = target->cube.size; - height = target->cube.size; - } - - if (target->multiSampleCount > 0) - { - prevBuffer = renderer->currentDrawFramebuffer; - - /* Set up the texture framebuffer */ - BindFramebuffer(renderer, renderer->resolveFramebufferDraw); - renderer->glFramebufferTexture2D( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - textureTarget, - rtTex->handle, - 0 - ); - - /* Set up the renderbuffer framebuffer */ - BindFramebuffer(renderer, renderer->resolveFramebufferRead); - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_RENDERBUFFER, - ((OpenGLRenderbuffer*) target->colorBuffer)->handle - ); - - /* Blit! */ - if (renderer->scissorTestEnable) - { - renderer->glDisable(GL_SCISSOR_TEST); - } - BindDrawFramebuffer(renderer, renderer->resolveFramebufferDraw); - renderer->glBlitFramebuffer( - 0, 0, width, height, - 0, 0, width, height, - GL_COLOR_BUFFER_BIT, - GL_LINEAR - ); - /* Invalidate the MSAA buffer */ - if (renderer->supports_ARB_invalidate_subdata) - { - renderer->glInvalidateFramebuffer( - GL_READ_FRAMEBUFFER, - renderer->numAttachments + 2, - renderer->drawBuffersArray - ); - } - if (renderer->scissorTestEnable) - { - renderer->glEnable(GL_SCISSOR_TEST); - } - - BindFramebuffer(renderer, prevBuffer); - } - - /* If the target has mipmaps, regenerate them now */ - if (target->levelCount > 1) - { - prevTex = renderer->textures[0]; - BindTexture(renderer, rtTex); - renderer->glGenerateMipmap(textureTarget); - BindTexture(renderer, prevTex); - } -} - -/* Backbuffer Functions */ - -static void OPENGL_INTERNAL_CreateBackbuffer( - OpenGLRenderer *renderer, - FNA3D_PresentationParameters *parameters -) { - int32_t useFauxBackbuffer; - int32_t drawX, drawY; - SDL_GL_GetDrawableSize( - (SDL_Window*) parameters->deviceWindowHandle, - &drawX, - &drawY - ); - useFauxBackbuffer = ( drawX != parameters->backBufferWidth || - drawY != parameters->backBufferHeight ); - useFauxBackbuffer = ( useFauxBackbuffer || - (parameters->multiSampleCount > 0) ); - - if (useFauxBackbuffer) - { - if ( renderer->backbuffer == NULL || - renderer->backbuffer->type == BACKBUFFER_TYPE_NULL ) - { - if (!renderer->supports_EXT_framebuffer_blit) - { - FNA3D_LogError( - "Your hardware does not support the faux-backbuffer!" - "\n\nKeep the window/backbuffer resolution the same." - ); - return; - } - if (renderer->backbuffer != NULL) - { - SDL_free(renderer->backbuffer); - } - renderer->backbuffer = (OpenGLBackbuffer*) SDL_malloc( - sizeof(OpenGLBackbuffer) - ); - renderer->backbuffer->type = BACKBUFFER_TYPE_OPENGL; - - renderer->backbuffer->width = parameters->backBufferWidth; - renderer->backbuffer->height = parameters->backBufferHeight; - renderer->backbuffer->depthFormat = parameters->depthStencilFormat; - renderer->backbuffer->isSrgb = parameters->backBufferFormat == FNA3D_SURFACEFORMAT_COLORSRGB_EXT; - renderer->backbuffer->multiSampleCount = parameters->multiSampleCount; - renderer->backbuffer->opengl.texture = 0; - - /* Generate and bind the FBO. */ - renderer->glGenFramebuffers( - 1, - &renderer->backbuffer->opengl.handle - ); - BindFramebuffer( - renderer, - renderer->backbuffer->opengl.handle - ); - - /* Create and attach the color buffer */ - renderer->glGenRenderbuffers( - 1, - &renderer->backbuffer->opengl.colorAttachment - ); - renderer->glBindRenderbuffer( - GL_RENDERBUFFER, - renderer->backbuffer->opengl.colorAttachment - ); - if (renderer->backbuffer->multiSampleCount > 0) - { - renderer->glRenderbufferStorageMultisample( - GL_RENDERBUFFER, - renderer->backbuffer->multiSampleCount, - GL_RGBA8, - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - else - { - renderer->glRenderbufferStorage( - GL_RENDERBUFFER, - GL_RGBA8, - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_RENDERBUFFER, - renderer->backbuffer->opengl.colorAttachment - ); - - if (renderer->backbuffer->depthFormat == FNA3D_DEPTHFORMAT_NONE) - { - /* Don't bother creating a DS buffer */ - renderer->backbuffer->opengl.depthStencilAttachment = 0; - - /* Keep this state sane. */ - renderer->glBindRenderbuffer( - GL_RENDERBUFFER, - renderer->realBackbufferRBO - ); - - return; - } - - renderer->glGenRenderbuffers( - 1, - &renderer->backbuffer->opengl.depthStencilAttachment - ); - renderer->glBindRenderbuffer( - GL_RENDERBUFFER, - renderer->backbuffer->opengl.depthStencilAttachment - ); - if (renderer->backbuffer->multiSampleCount > 0) - { - renderer->glRenderbufferStorageMultisample( - GL_RENDERBUFFER, - renderer->backbuffer->multiSampleCount, - XNAToGL_DepthStorage[ - renderer->backbuffer->depthFormat - ], - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - else - { - renderer->glRenderbufferStorage( - GL_RENDERBUFFER, - XNAToGL_DepthStorage[ - renderer->backbuffer->depthFormat - ], - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_DEPTH_ATTACHMENT, - GL_RENDERBUFFER, - renderer->backbuffer->opengl.depthStencilAttachment - ); - if (renderer->backbuffer->depthFormat == FNA3D_DEPTHFORMAT_D24S8) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_STENCIL_ATTACHMENT, - GL_RENDERBUFFER, - renderer->backbuffer->opengl.depthStencilAttachment - ); - } - - /* Keep this state sane. */ - renderer->glBindRenderbuffer( - GL_RENDERBUFFER, - renderer->realBackbufferRBO - ); - } - else - { - renderer->backbuffer->width = parameters->backBufferWidth; - renderer->backbuffer->height = parameters->backBufferHeight; - renderer->backbuffer->isSrgb = parameters->backBufferFormat == FNA3D_SURFACEFORMAT_COLORSRGB_EXT; - renderer->backbuffer->multiSampleCount = parameters->multiSampleCount; - if (renderer->backbuffer->opengl.texture != 0) - { - renderer->glDeleteTextures( - 1, - &renderer->backbuffer->opengl.texture - ); - renderer->backbuffer->opengl.texture = 0; - } - - if (renderer->renderTargetBound) - { - renderer->glBindFramebuffer( - GL_FRAMEBUFFER, - renderer->backbuffer->opengl.handle - ); - } - - /* Detach color attachment */ - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_RENDERBUFFER, - 0 - ); - - /* Detach depth/stencil attachment, if applicable */ - if (renderer->backbuffer->opengl.depthStencilAttachment != 0) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_DEPTH_ATTACHMENT, - GL_RENDERBUFFER, - 0 - ); - if (renderer->backbuffer->depthFormat == FNA3D_DEPTHFORMAT_D24S8) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_STENCIL_ATTACHMENT, - GL_RENDERBUFFER, - 0 - ); - } - } - - /* Update our color attachment to the new resolution. */ - renderer->glBindRenderbuffer( - GL_RENDERBUFFER, - renderer->backbuffer->opengl.colorAttachment - ); - if (renderer->backbuffer->multiSampleCount > 0) - { - renderer->glRenderbufferStorageMultisample( - GL_RENDERBUFFER, - renderer->backbuffer->multiSampleCount, - GL_RGBA8, - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - else - { - renderer->glRenderbufferStorage( - GL_RENDERBUFFER, - GL_RGBA8, - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_RENDERBUFFER, - renderer->backbuffer->opengl.colorAttachment - ); - - /* Generate/Delete depth/stencil attachment, if needed */ - if (parameters->depthStencilFormat == FNA3D_DEPTHFORMAT_NONE) - { - if (renderer->backbuffer->opengl.depthStencilAttachment != 0) - { - renderer->glDeleteRenderbuffers( - 1, - &renderer->backbuffer->opengl.depthStencilAttachment - ); - renderer->backbuffer->opengl.depthStencilAttachment = 0; - } - } - else if (renderer->backbuffer->opengl.depthStencilAttachment == 0) - { - renderer->glGenRenderbuffers( - 1, - &renderer->backbuffer->opengl.depthStencilAttachment - ); - } - - /* Update the depth/stencil buffer, if applicable */ - renderer->backbuffer->depthFormat = parameters->depthStencilFormat; - if (renderer->backbuffer->opengl.depthStencilAttachment != 0) - { - renderer->glBindRenderbuffer( - GL_RENDERBUFFER, - renderer->backbuffer->opengl.depthStencilAttachment - ); - if (renderer->backbuffer->multiSampleCount > 0) - { - renderer->glRenderbufferStorageMultisample( - GL_RENDERBUFFER, - renderer->backbuffer->multiSampleCount, - XNAToGL_DepthStorage[renderer->backbuffer->depthFormat], - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - else - { - renderer->glRenderbufferStorage( - GL_RENDERBUFFER, - XNAToGL_DepthStorage[renderer->backbuffer->depthFormat], - renderer->backbuffer->width, - renderer->backbuffer->height - ); - } - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_DEPTH_ATTACHMENT, - GL_RENDERBUFFER, - renderer->backbuffer->opengl.depthStencilAttachment - ); - if (renderer->backbuffer->depthFormat == FNA3D_DEPTHFORMAT_D24S8) - { - renderer->glFramebufferRenderbuffer( - GL_FRAMEBUFFER, - GL_STENCIL_ATTACHMENT, - GL_RENDERBUFFER, - renderer->backbuffer->opengl.depthStencilAttachment - ); - } - } - - if (renderer->renderTargetBound) - { - renderer->glBindFramebuffer( - GL_FRAMEBUFFER, - renderer->targetFramebuffer - ); - } - - /* Keep this state sane. */ - renderer->glBindRenderbuffer( - GL_RENDERBUFFER, - renderer->realBackbufferRBO - ); - } - } - else - { - if ( renderer->backbuffer == NULL || - renderer->backbuffer->type == BACKBUFFER_TYPE_OPENGL ) - { - if (renderer->backbuffer != NULL) - { - OPENGL_INTERNAL_DisposeBackbuffer(renderer); - SDL_free(renderer->backbuffer); - } - renderer->backbuffer = (OpenGLBackbuffer*) SDL_malloc( - sizeof(OpenGLBackbuffer) - ); - renderer->backbuffer->type = BACKBUFFER_TYPE_NULL; - } - renderer->backbuffer->width = parameters->backBufferWidth; - renderer->backbuffer->height = parameters->backBufferHeight; - renderer->backbuffer->depthFormat = renderer->windowDepthFormat; - renderer->backbuffer->isSrgb = parameters->backBufferFormat == FNA3D_SURFACEFORMAT_COLORSRGB_EXT; - renderer->backbuffer->multiSampleCount = 0; - } - - if (renderer->backbuffer) - { - ApplySRGBFlag(renderer, renderer->backbuffer->isSrgb); - } -} - -static void OPENGL_INTERNAL_DisposeBackbuffer(OpenGLRenderer *renderer) -{ - #define GLBACKBUFFER renderer->backbuffer->opengl - - BindFramebuffer(renderer, renderer->realBackbufferFBO); - renderer->glDeleteFramebuffers(1, &GLBACKBUFFER.handle); - renderer->glDeleteRenderbuffers(1, &GLBACKBUFFER.colorAttachment); - if (GLBACKBUFFER.depthStencilAttachment != 0) - { - renderer->glDeleteRenderbuffers(1, &GLBACKBUFFER.depthStencilAttachment); - } - if (GLBACKBUFFER.texture != 0) - { - renderer->glDeleteTextures(1, &GLBACKBUFFER.texture); - } - GLBACKBUFFER.handle = 0; - - #undef GLBACKBUFFER -} - -static uint8_t OPENGL_INTERNAL_ReadTargetIfApplicable( - FNA3D_Renderer *driverData, - FNA3D_Texture* textureIn, - int32_t level, - void* data, - int32_t subX, - int32_t subY, - int32_t subW, - int32_t subH -) { - GLuint prevReadBuffer, prevWriteBuffer; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *texture = (OpenGLTexture*) textureIn; - uint8_t texUnbound = ( renderer->currentDrawBuffers != 1 || - renderer->currentAttachments[0] != texture->handle ); - if (texUnbound && !renderer->useES3) - { - return 0; - } - - prevReadBuffer = renderer->currentReadFramebuffer; - prevWriteBuffer = renderer->currentDrawFramebuffer; - if (texUnbound) - { - BindFramebuffer(renderer, renderer->resolveFramebufferRead); - renderer->glFramebufferTexture2D( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_TEXTURE_2D, - texture->handle, - level - ); - } - else - { - BindReadFramebuffer(renderer, renderer->targetFramebuffer); - } - - /* glReadPixels should be faster than reading - * back from the render target if we are already bound. - */ - renderer->glReadPixels( - subX, - subY, - subW, - subH, - GL_RGBA, /* FIXME: Assumption! */ - GL_UNSIGNED_BYTE, - data - ); - - if (texUnbound) - { - if (prevReadBuffer == prevWriteBuffer) - { - BindFramebuffer(renderer, prevReadBuffer); - } - else - { - BindReadFramebuffer(renderer, prevReadBuffer); - BindDrawFramebuffer(renderer, prevWriteBuffer); - } - } - else - { - BindReadFramebuffer(renderer, prevReadBuffer); - } - return 1; -} - -static void OPENGL_INTERNAL_SetPresentationInterval( - FNA3D_PresentInterval presentInterval, - uint8_t isEGL -) { - int32_t enableLateSwapTear; - - if ( presentInterval == FNA3D_PRESENTINTERVAL_DEFAULT || - presentInterval == FNA3D_PRESENTINTERVAL_ONE ) - { - enableLateSwapTear = ( - !isEGL && - SDL_GetHintBoolean("FNA3D_ENABLE_LATESWAPTEAR", 0) - ); - if (!enableLateSwapTear) - { - SDL_GL_SetSwapInterval(1); - } - else - { - if (SDL_GL_SetSwapInterval(-1) != -1) - { - FNA3D_LogInfo( - "Using EXT_swap_control_tear VSync!" - ); - } - else - { - FNA3D_LogInfo( - "EXT_swap_control_tear unsupported." - " Fall back to standard VSync." - ); - SDL_ClearError(); - SDL_GL_SetSwapInterval(1); - } - } - } - else if (presentInterval == FNA3D_PRESENTINTERVAL_IMMEDIATE) - { - SDL_GL_SetSwapInterval(0); - } - else if (presentInterval == FNA3D_PRESENTINTERVAL_TWO) - { - SDL_GL_SetSwapInterval(2); - } - else - { - FNA3D_LogError( - "Unrecognized PresentInterval: %d", - presentInterval - ); - } -} - -static void OPENGL_ResetBackbuffer( - FNA3D_Renderer *driverData, - FNA3D_PresentationParameters *presentationParameters -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OPENGL_INTERNAL_CreateBackbuffer(renderer, presentationParameters); - OPENGL_INTERNAL_SetPresentationInterval( - presentationParameters->presentationInterval, - renderer->isEGL - ); -} - -static void OPENGL_ReadBackbuffer( - FNA3D_Renderer *driverData, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - void* data, - int32_t dataLength -) { - GLuint prevReadBuffer, prevDrawBuffer; - int32_t pitch, row; - uint8_t *temp; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - uint8_t *dataPtr = (uint8_t*) data; - - prevReadBuffer = renderer->currentReadFramebuffer; - - if (renderer->backbuffer->multiSampleCount > 0) - { - /* We have to resolve the renderbuffer to a texture first. */ - prevDrawBuffer = renderer->currentDrawFramebuffer; - - if (renderer->backbuffer->opengl.texture == 0) - { - renderer->glGenTextures( - 1, - &renderer->backbuffer->opengl.texture - ); - renderer->glBindTexture( - GL_TEXTURE_2D, - renderer->backbuffer->opengl.texture - ); - renderer->glTexImage2D( - GL_TEXTURE_2D, - 0, - GL_RGBA, - renderer->backbuffer->width, - renderer->backbuffer->height, - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - NULL - ); - renderer->glBindTexture( - renderer->textures[0]->target, - renderer->textures[0]->handle - ); - } - BindFramebuffer(renderer, renderer->resolveFramebufferDraw); - renderer->glFramebufferTexture2D( - GL_FRAMEBUFFER, - GL_COLOR_ATTACHMENT0, - GL_TEXTURE_2D, - renderer->backbuffer->opengl.texture, - 0 - ); - BindReadFramebuffer(renderer, renderer->backbuffer->opengl.handle); - renderer->glBlitFramebuffer( - 0, 0, renderer->backbuffer->width, renderer->backbuffer->height, - 0, 0, renderer->backbuffer->width, renderer->backbuffer->height, - GL_COLOR_BUFFER_BIT, - GL_LINEAR - ); - /* Don't invalidate the backbuffer here! */ - BindDrawFramebuffer(renderer, prevDrawBuffer); - BindReadFramebuffer(renderer, renderer->resolveFramebufferDraw); - } - else - { - BindReadFramebuffer( - renderer, - (renderer->backbuffer->type == BACKBUFFER_TYPE_OPENGL) ? - renderer->backbuffer->opengl.handle : - 0 - ); - } - - renderer->glReadPixels( - x, - y, - w, - h, - GL_RGBA, - GL_UNSIGNED_BYTE, - data - ); - - BindReadFramebuffer(renderer, prevReadBuffer); - - /* Now we get to do a software-based flip! Yes, really! -flibit */ - pitch = w * 4; - temp = (uint8_t*) SDL_malloc(pitch); - for (row = 0; row < h / 2; row += 1) - { - /* Top to temp, bottom to top, temp to bottom */ - SDL_memcpy(temp, dataPtr + (row * pitch), pitch); - SDL_memcpy(dataPtr + (row * pitch), dataPtr + ((h - row - 1) * pitch), pitch); - SDL_memcpy(dataPtr + ((h - row - 1) * pitch), temp, pitch); - } - SDL_free(temp); -} - -static void OPENGL_GetBackbufferSize( - FNA3D_Renderer *driverData, - int32_t *w, - int32_t *h -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - *w = renderer->backbuffer->width; - *h = renderer->backbuffer->height; -} - -static FNA3D_SurfaceFormat OPENGL_GetBackbufferSurfaceFormat( - FNA3D_Renderer *driverData -) { - return FNA3D_SURFACEFORMAT_COLOR; -} - -static FNA3D_DepthFormat OPENGL_GetBackbufferDepthFormat( - FNA3D_Renderer *driverData -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return renderer->backbuffer->depthFormat; -} - -static int32_t OPENGL_GetBackbufferMultiSampleCount(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return renderer->backbuffer->multiSampleCount; -} - -/* Textures */ - -static inline OpenGLTexture* OPENGL_INTERNAL_CreateTexture( - OpenGLRenderer *renderer, - GLenum target, - FNA3D_SurfaceFormat format, - int32_t levelCount -) { - OpenGLTexture* result = (OpenGLTexture*) SDL_malloc( - sizeof(OpenGLTexture) - ); - - renderer->glGenTextures(1, &result->handle); - result->target = target; - result->hasMipmaps = (levelCount > 1); - result->wrapS = FNA3D_TEXTUREADDRESSMODE_WRAP; - result->wrapT = FNA3D_TEXTUREADDRESSMODE_WRAP; - result->wrapR = FNA3D_TEXTUREADDRESSMODE_WRAP; - result->filter = FNA3D_TEXTUREFILTER_LINEAR; - result->anisotropy = 4.0f; - result->maxMipmapLevel = 0; - result->lodBias = 0.0f; - result->format = format; - result->next = NULL; - result->external = 0; - - BindTexture(renderer, result); - renderer->glTexParameteri( - result->target, - GL_TEXTURE_WRAP_S, - XNAToGL_Wrap[result->wrapS] - ); - renderer->glTexParameteri( - result->target, - GL_TEXTURE_WRAP_T, - XNAToGL_Wrap[result->wrapT] - ); - renderer->glTexParameteri( - result->target, - GL_TEXTURE_WRAP_R, - XNAToGL_Wrap[result->wrapR] - ); - renderer->glTexParameteri( - result->target, - GL_TEXTURE_MAG_FILTER, - XNAToGL_MagFilter[result->filter] - ); - renderer->glTexParameteri( - result->target, - GL_TEXTURE_MIN_FILTER, - result->hasMipmaps ? - XNAToGL_MinMipFilter[result->filter] : - XNAToGL_MinFilter[result->filter] - ); - if (renderer->supports_anisotropic_filtering) - { - renderer->glTexParameterf( - result->target, - GL_TEXTURE_MAX_ANISOTROPY_EXT, - (result->filter == FNA3D_TEXTUREFILTER_ANISOTROPIC) ? - SDL_max(result->anisotropy, 1.0f) : - 1.0f - ); - } - renderer->glTexParameteri( - result->target, - GL_TEXTURE_BASE_LEVEL, - result->maxMipmapLevel - ); - if (!renderer->useES3) - { - renderer->glTexParameterf( - result->target, - GL_TEXTURE_LOD_BIAS, - result->lodBias - ); - } - return result; -} - -static inline int32_t OPENGL_INTERNAL_Texture_GetPixelStoreAlignment( - FNA3D_SurfaceFormat format -) { - /* https://github.com/FNA-XNA/FNA/pull/238 - * https://www.khronos.org/registry/OpenGL/specs/gl/glspec21.pdf - * OpenGL 2.1 Specification, section 3.6.1, table 3.1 specifies that - * the pixelstorei alignment cannot exceed 8 - */ - return SDL_min(8, Texture_GetFormatSize(format)); -} - -static FNA3D_Texture* OPENGL_CreateTexture2D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *result; - GLenum glFormat, glInternalFormat, glType; - int32_t levelWidth, levelHeight, i; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_CREATETEXTURE2D; - cmd.createTexture2D.format = format; - cmd.createTexture2D.width = width; - cmd.createTexture2D.height = height; - cmd.createTexture2D.levelCount = levelCount; - cmd.createTexture2D.isRenderTarget = isRenderTarget; - ForceToMainThread(renderer, &cmd); - return cmd.createTexture2D.retval; - } - - result = (OpenGLTexture*) OPENGL_INTERNAL_CreateTexture( - renderer, - GL_TEXTURE_2D, - format, - levelCount - ); - - result->twod.width = width; - result->twod.height = height; - - glFormat = XNAToGL_TextureFormat[format]; - glInternalFormat = XNAToGL_TextureInternalFormat[format]; - if (glFormat == GL_COMPRESSED_TEXTURE_FORMATS) - { - for (i = 0; i < levelCount; i += 1) - { - levelWidth = SDL_max(width >> i, 1); - levelHeight = SDL_max(height >> i, 1); - renderer->glCompressedTexImage2D( - GL_TEXTURE_2D, - i, - glInternalFormat, - levelWidth, - levelHeight, - 0, - ((levelWidth + 3) / 4) * ((levelHeight + 3) / 4) * Texture_GetFormatSize(format), - NULL - ); - } - } - else - { - glType = XNAToGL_TextureDataType[format]; - for (i = 0; i < levelCount; i += 1) - { - renderer->glTexImage2D( - GL_TEXTURE_2D, - i, - glInternalFormat, - SDL_max(width >> i, 1), - SDL_max(height >> i, 1), - 0, - glFormat, - glType, - NULL - ); - } - } - - return (FNA3D_Texture*) result; -} - -static FNA3D_Texture* OPENGL_CreateTexture3D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *result; - GLenum glFormat, glInternalFormat, glType; - int32_t i; - FNA3D_Command cmd; - - SDL_assert(renderer->supports_3DTexture); - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_CREATETEXTURE3D; - cmd.createTexture3D.format = format; - cmd.createTexture3D.width = width; - cmd.createTexture3D.height = height; - cmd.createTexture3D.depth = depth; - cmd.createTexture3D.levelCount = levelCount; - ForceToMainThread(renderer, &cmd); - return cmd.createTexture3D.retval; - } - - result = OPENGL_INTERNAL_CreateTexture( - renderer, - GL_TEXTURE_3D, - format, - levelCount - ); - - glFormat = XNAToGL_TextureFormat[format]; - glInternalFormat = XNAToGL_TextureInternalFormat[format]; - glType = XNAToGL_TextureDataType[format]; - for (i = 0; i < levelCount; i += 1) - { - renderer->glTexImage3D( - GL_TEXTURE_3D, - i, - glInternalFormat, - SDL_max(width >> i, 1), - SDL_max(height >> i, 1), - SDL_max(depth >> i, 1), - 0, - glFormat, - glType, - NULL - ); - } - return (FNA3D_Texture*) result; -} - -static FNA3D_Texture* OPENGL_CreateTextureCube( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *result; - GLenum glFormat, glInternalFormat; - int32_t levelSize, i, l; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_CREATETEXTURECUBE; - cmd.createTextureCube.format = format; - cmd.createTextureCube.size = size; - cmd.createTextureCube.levelCount = levelCount; - cmd.createTextureCube.isRenderTarget = isRenderTarget; - ForceToMainThread(renderer, &cmd); - return cmd.createTextureCube.retval; - } - - result = OPENGL_INTERNAL_CreateTexture( - renderer, - GL_TEXTURE_CUBE_MAP, - format, - levelCount - ); - - result->cube.size = size; - - glFormat = XNAToGL_TextureFormat[format]; - glInternalFormat = XNAToGL_TextureInternalFormat[format]; - if (glFormat == GL_COMPRESSED_TEXTURE_FORMATS) - { - for (i = 0; i < 6; i += 1) - { - for (l = 0; l < levelCount; l += 1) - { - levelSize = SDL_max(size >> l, 1); - renderer->glCompressedTexImage2D( - GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, - l, - glInternalFormat, - levelSize, - levelSize, - 0, - ((levelSize + 3) / 4) * ((levelSize + 3) / 4) * Texture_GetFormatSize(format), - NULL - ); - } - } - } - else - { - GLenum glType = XNAToGL_TextureDataType[format]; - for (i = 0; i < 6; i += 1) - { - for (l = 0; l < levelCount; l += 1) - { - levelSize = SDL_max(size >> l, 1); - renderer->glTexImage2D( - GL_TEXTURE_CUBE_MAP_POSITIVE_X + i, - l, - glInternalFormat, - levelSize, - levelSize, - 0, - glFormat, - glType, - NULL - ); - } - } - } - - return (FNA3D_Texture*) result; -} - -static void OPENGL_INTERNAL_DestroyTexture( - OpenGLRenderer *renderer, - OpenGLTexture *texture -) { - int32_t i; - for (i = 0; i < renderer->numAttachments; i += 1) - { - if (texture->handle == renderer->currentAttachments[i]) - { - /* Force an attachment update, this no longer exists! */ - renderer->currentAttachments[i] = UINT32_MAX; - } - } - for (i = 0; i < renderer->numTextureSlots + renderer->numVertexTextureSlots; i += 1) - { - if (renderer->textures[i] == texture) - { - /* Remove this texture from the sampler cache */ - renderer->textures[i] = &NullTexture; - } - } - if (!texture->external) - { - renderer->glDeleteTextures(1, &texture->handle); - } - SDL_free(texture); -} - -static void OPENGL_AddDisposeTexture( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *glTexture = (OpenGLTexture*) texture; - OpenGLTexture *curr; - - if (renderer->threadID == SDL_ThreadID()) - { - OPENGL_INTERNAL_DestroyTexture(renderer, glTexture); - } - else - { - SDL_LockMutex(renderer->disposeTexturesLock); - LinkedList_Add(renderer->disposeTextures, glTexture, curr); - SDL_UnlockMutex(renderer->disposeTexturesLock); - } -} - -static void OPENGL_SetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *glTexture = (OpenGLTexture*) texture; - GLenum glFormat; - int32_t packSize; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_SETTEXTUREDATA2D; - cmd.setTextureData2D.texture = texture; - cmd.setTextureData2D.x = x; - cmd.setTextureData2D.y = y; - cmd.setTextureData2D.w = w; - cmd.setTextureData2D.h = h; - cmd.setTextureData2D.level = level; - cmd.setTextureData2D.data = data; - cmd.setTextureData2D.dataLength = dataLength; - ForceToMainThread(renderer, &cmd); - return; - } - - BindTexture(renderer, glTexture); - - glFormat = XNAToGL_TextureFormat[glTexture->format]; - if (glFormat == GL_COMPRESSED_TEXTURE_FORMATS) - { - /* Note that we're using glInternalFormat, not glFormat. - * In this case, they should actually be the same thing, - * but we use glFormat somewhat differently for - * compressed textures. - * -flibit - */ - renderer->glCompressedTexSubImage2D( - GL_TEXTURE_2D, - level, - x, - y, - w, - h, - XNAToGL_TextureInternalFormat[glTexture->format], - dataLength, - data - ); - } - else - { - /* Set pixel alignment to match texel size in bytes. */ - packSize = OPENGL_INTERNAL_Texture_GetPixelStoreAlignment(glTexture->format); - if (packSize != 4) - { - renderer->glPixelStorei( - GL_UNPACK_ALIGNMENT, - packSize - ); - } - - renderer->glTexSubImage2D( - GL_TEXTURE_2D, - level, - x, - y, - w, - h, - glFormat, - XNAToGL_TextureDataType[glTexture->format], - data - ); - - /* Keep this state sane -flibit */ - if (packSize != 4) - { - renderer->glPixelStorei( - GL_UNPACK_ALIGNMENT, - 4 - ); - } - } -} - -static void OPENGL_SetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *glTexture = (OpenGLTexture*) texture; - FNA3D_Command cmd; - - SDL_assert(renderer->supports_3DTexture); - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_SETTEXTUREDATA3D; - cmd.setTextureData3D.texture = texture; - cmd.setTextureData3D.x = x; - cmd.setTextureData3D.y = y; - cmd.setTextureData3D.z = z; - cmd.setTextureData3D.w = w; - cmd.setTextureData3D.h = h; - cmd.setTextureData3D.d = d; - cmd.setTextureData3D.level = level; - cmd.setTextureData3D.data = data; - cmd.setTextureData3D.dataLength = dataLength; - ForceToMainThread(renderer, &cmd); - return; - } - - BindTexture(renderer, glTexture); - - renderer->glTexSubImage3D( - GL_TEXTURE_3D, - level, - x, - y, - z, - w, - h, - d, - XNAToGL_TextureFormat[glTexture->format], - XNAToGL_TextureDataType[glTexture->format], - data - ); -} - -static void OPENGL_SetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *glTexture = (OpenGLTexture*) texture; - GLenum glFormat; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_SETTEXTUREDATACUBE; - cmd.setTextureDataCube.texture = texture; - cmd.setTextureDataCube.x = x; - cmd.setTextureDataCube.y = y; - cmd.setTextureDataCube.w = w; - cmd.setTextureDataCube.h = h; - cmd.setTextureDataCube.cubeMapFace = cubeMapFace; - cmd.setTextureDataCube.level = level; - cmd.setTextureDataCube.data = data; - cmd.setTextureDataCube.dataLength = dataLength; - ForceToMainThread(renderer, &cmd); - return; - } - - BindTexture(renderer, glTexture); - - glFormat = XNAToGL_TextureFormat[glTexture->format]; - if (glFormat == GL_COMPRESSED_TEXTURE_FORMATS) - { - /* Note that we're using glInternalFormat, not glFormat. - * In this case, they should actually be the same thing, - * but we use glFormat somewhat differently for - * compressed textures. - * -flibit - */ - renderer->glCompressedTexSubImage2D( - GL_TEXTURE_CUBE_MAP_POSITIVE_X + cubeMapFace, - level, - x, - y, - w, - h, - XNAToGL_TextureInternalFormat[glTexture->format], - dataLength, - data - ); - } - else - { - renderer->glTexSubImage2D( - GL_TEXTURE_CUBE_MAP_POSITIVE_X + cubeMapFace, - level, - x, - y, - w, - h, - glFormat, - XNAToGL_TextureDataType[glTexture->format], - data - ); - } -} - -static void OPENGL_SetTextureDataYUV( - FNA3D_Renderer *driverData, - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - uint8_t *dataPtr = (uint8_t*) data; - - renderer->glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - BindTexture(renderer, (OpenGLTexture*) y); - renderer->glTexSubImage2D( - GL_TEXTURE_2D, - 0, - 0, - 0, - yWidth, - yHeight, - GL_ALPHA, - GL_UNSIGNED_BYTE, - dataPtr - ); - dataPtr += yWidth * yHeight; - BindTexture(renderer, (OpenGLTexture*) u); - renderer->glTexSubImage2D( - GL_TEXTURE_2D, - 0, - 0, - 0, - uvWidth, - uvHeight, - GL_ALPHA, - GL_UNSIGNED_BYTE, - dataPtr - ); - dataPtr += uvWidth * uvHeight; - BindTexture(renderer, (OpenGLTexture*) v); - renderer->glTexSubImage2D( - GL_TEXTURE_2D, - 0, - 0, - 0, - uvWidth, - uvHeight, - GL_ALPHA, - GL_UNSIGNED_BYTE, - dataPtr - ); - renderer->glPixelStorei(GL_UNPACK_ALIGNMENT, 4); -} - -static void OPENGL_GetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *glTexture; - GLenum glFormat; - int32_t glFormatSize; - uint8_t *texData; - int32_t row; - int32_t textureWidth, textureHeight; - uint8_t *dataPtr = (uint8_t*) data; - FNA3D_Command cmd; - - SDL_assert(renderer->supports_NonES3); - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GETTEXTUREDATA2D; - cmd.getTextureData2D.texture = texture; - cmd.getTextureData2D.x = x; - cmd.getTextureData2D.y = y; - cmd.getTextureData2D.w = w; - cmd.getTextureData2D.h = h; - cmd.getTextureData2D.level = level; - cmd.getTextureData2D.data = data; - cmd.getTextureData2D.dataLength = dataLength; - ForceToMainThread(renderer, &cmd); - return; - } - - if (level == 0 && OPENGL_INTERNAL_ReadTargetIfApplicable( - driverData, - texture, - level, - data, - x, - y, - w, - h - )) { - return; - } - - glTexture = (OpenGLTexture*) texture; - textureWidth = glTexture->twod.width >> level; - textureHeight = glTexture->twod.height >> level; - BindTexture(renderer, glTexture); - glFormat = XNAToGL_TextureFormat[glTexture->format]; - if (glFormat == GL_COMPRESSED_TEXTURE_FORMATS) - { - FNA3D_LogError( - "GetData with compressed textures unsupported!" - ); - return; - } - else if ( x == 0 && - y == 0 && - w == textureWidth && - h == textureHeight ) - { - /* Just throw the whole texture into the user array. */ - renderer->glGetTexImage( - GL_TEXTURE_2D, - level, - glFormat, - XNAToGL_TextureDataType[glTexture->format], - data - ); - } - else - { - glFormatSize = Texture_GetFormatSize(glTexture->format); - - /* Get the whole texture... */ - texData = (uint8_t*) SDL_malloc( - textureWidth * - textureHeight * - glFormatSize - ); - - renderer->glGetTexImage( - GL_TEXTURE_2D, - level, - glFormat, - XNAToGL_TextureDataType[glTexture->format], - texData - ); - - /* Now, blit the rect region into the user array. */ - for (row = y; row < y + h; row += 1) - { - SDL_memcpy( - dataPtr, - texData + (((row * textureWidth) + x) * glFormatSize), - glFormatSize * w - ); - dataPtr += glFormatSize * w; - } - SDL_free(texData); - } -} - -static void OPENGL_GetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - SDL_assert(renderer->supports_NonES3); - - FNA3D_LogError( - "GetTextureData3D is unsupported!" - ); -} - -static void OPENGL_GetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLTexture *glTexture; - GLenum glFormat; - int32_t glFormatSize; - uint8_t *texData; - int32_t row; - int32_t textureSize; - uint8_t *dataPtr = (uint8_t*) data; - FNA3D_Command cmd; - - SDL_assert(renderer->supports_NonES3); - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GETTEXTUREDATACUBE; - cmd.getTextureDataCube.texture = texture; - cmd.getTextureDataCube.x = x; - cmd.getTextureDataCube.y = y; - cmd.getTextureDataCube.w = w; - cmd.getTextureDataCube.h = h; - cmd.getTextureDataCube.cubeMapFace = cubeMapFace; - cmd.getTextureDataCube.level = level; - cmd.getTextureDataCube.data = data; - cmd.getTextureDataCube.dataLength = dataLength; - ForceToMainThread(renderer, &cmd); - return; - } - - glTexture = (OpenGLTexture*) texture; - textureSize = glTexture->cube.size >> level; - BindTexture(renderer, glTexture); - glFormat = XNAToGL_TextureFormat[glTexture->format]; - if (glFormat == GL_COMPRESSED_TEXTURE_FORMATS) - { - FNA3D_LogError( - "GetData with compressed textures unsupported!" - ); - return; - } - else if ( x == 0 && - y == 0 && - w == textureSize && - h == textureSize ) - { - /* Just throw the whole texture into the user array. */ - renderer->glGetTexImage( - GL_TEXTURE_CUBE_MAP_POSITIVE_X + cubeMapFace, - level, - glFormat, - XNAToGL_TextureDataType[glTexture->format], - data - ); - } - else - { - glFormatSize = Texture_GetFormatSize(glTexture->format); - - /* Get the whole texture... */ - texData = (uint8_t*) SDL_malloc( - textureSize * - textureSize * - glFormatSize - ); - - renderer->glGetTexImage( - GL_TEXTURE_CUBE_MAP_POSITIVE_X + cubeMapFace, - level, - glFormat, - XNAToGL_TextureDataType[glTexture->format], - texData - ); - - /* Now, blit the rect region into the user array. */ - for (row = y; row < y + h; row += 1) - { - SDL_memcpy( - dataPtr, - texData + (((row * textureSize) + x) * glFormatSize), - glFormatSize * w - ); - dataPtr += glFormatSize * w; - } - SDL_free(texData); - } -} - -/* Renderbuffers */ - -static FNA3D_Renderbuffer* OPENGL_GenColorRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLRenderbuffer *renderbuffer; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GENCOLORRENDERBUFFER; - cmd.genColorRenderbuffer.width = width; - cmd.genColorRenderbuffer.height = height; - cmd.genColorRenderbuffer.format = format; - cmd.genColorRenderbuffer.multiSampleCount = multiSampleCount; - cmd.genColorRenderbuffer.texture = texture; - ForceToMainThread(renderer, &cmd); - return cmd.genColorRenderbuffer.retval; - } - - renderbuffer = (OpenGLRenderbuffer*) SDL_malloc( - sizeof(OpenGLRenderbuffer) - ); - renderbuffer->next = NULL; - renderbuffer->format = format; - - renderer->glGenRenderbuffers(1, &renderbuffer->handle); - renderer->glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer->handle); - if (multiSampleCount > 0) - { - renderer->glRenderbufferStorageMultisample( - GL_RENDERBUFFER, - multiSampleCount, - XNAToGL_TextureInternalFormat[format], - width, - height - ); - } - else - { - renderer->glRenderbufferStorage( - GL_RENDERBUFFER, - XNAToGL_TextureInternalFormat[format], - width, - height - ); - } - renderer->glBindRenderbuffer(GL_RENDERBUFFER, renderer->realBackbufferRBO); - - return (FNA3D_Renderbuffer*) renderbuffer; -} - -static FNA3D_Renderbuffer* OPENGL_GenDepthStencilRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLRenderbuffer *renderbuffer; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GENDEPTHRENDERBUFFER; - cmd.genDepthStencilRenderbuffer.width = width; - cmd.genDepthStencilRenderbuffer.height = height; - cmd.genDepthStencilRenderbuffer.format = format; - cmd.genDepthStencilRenderbuffer.multiSampleCount = multiSampleCount; - ForceToMainThread(renderer, &cmd); - return cmd.genDepthStencilRenderbuffer.retval; - } - - renderbuffer = (OpenGLRenderbuffer*) SDL_malloc( - sizeof(OpenGLRenderbuffer) - ); - renderbuffer->next = NULL; - - renderer->glGenRenderbuffers(1, &renderbuffer->handle); - renderer->glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer->handle); - if (multiSampleCount > 0) - { - renderer->glRenderbufferStorageMultisample( - GL_RENDERBUFFER, - multiSampleCount, - XNAToGL_DepthStorage[format], - width, - height - ); - } - else - { - renderer->glRenderbufferStorage( - GL_RENDERBUFFER, - XNAToGL_DepthStorage[format], - width, - height - ); - } - renderer->glBindRenderbuffer(GL_RENDERBUFFER, renderer->realBackbufferRBO); - - return (FNA3D_Renderbuffer*) renderbuffer; -} - -static void OPENGL_INTERNAL_DestroyRenderbuffer( - OpenGLRenderer *renderer, - OpenGLRenderbuffer *renderbuffer -) { - /* Check color attachments */ - int32_t i; - for (i = 0; i < renderer->numAttachments; i += 1) - { - if (renderbuffer->handle == renderer->currentAttachments[i]) - { - /* Force an attachment update, this no longer exists! */ - renderer->currentAttachments[i] = UINT32_MAX; - } - } - - /* Check depth/stencil attachment */ - if (renderbuffer->handle == renderer->currentRenderbuffer) - { - /* Force a renderbuffer update, this no longer exists! */ - renderer->currentRenderbuffer = UINT32_MAX; - } - - /* Finally. */ - renderer->glDeleteRenderbuffers(1, &renderbuffer->handle); - SDL_free(renderbuffer); -} - -static void OPENGL_AddDisposeRenderbuffer( - FNA3D_Renderer *driverData, - FNA3D_Renderbuffer *renderbuffer -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLRenderbuffer *buffer = (OpenGLRenderbuffer*) renderbuffer; - OpenGLRenderbuffer *curr; - - if (renderer->threadID == SDL_ThreadID()) - { - OPENGL_INTERNAL_DestroyRenderbuffer(renderer, buffer); - } - else - { - SDL_LockMutex(renderer->disposeRenderbuffersLock); - LinkedList_Add(renderer->disposeRenderbuffers, buffer, curr); - SDL_UnlockMutex(renderer->disposeRenderbuffersLock); - } -} - -/* Vertex Buffers */ - -static FNA3D_Buffer* OPENGL_GenVertexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *result = NULL; - GLuint handle; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GENVERTEXBUFFER; - cmd.genVertexBuffer.dynamic = dynamic; - cmd.genVertexBuffer.usage = usage; - cmd.genVertexBuffer.sizeInBytes = sizeInBytes; - ForceToMainThread(renderer, &cmd); - return cmd.genVertexBuffer.retval; - } - - renderer->glGenBuffers(1, &handle); - - result = (OpenGLBuffer*) SDL_malloc(sizeof(OpenGLBuffer)); - result->handle = handle; - result->size = (intptr_t) sizeInBytes; - result->dynamic = (dynamic ? GL_STREAM_DRAW : GL_STATIC_DRAW); - result->next = NULL; - - BindVertexBuffer(renderer, handle); - renderer->glBufferData( - GL_ARRAY_BUFFER, - result->size, - NULL, - result->dynamic - ); - - return (FNA3D_Buffer*) result; -} - -static void OPENGL_INTERNAL_DestroyVertexBuffer( - OpenGLRenderer *renderer, - OpenGLBuffer *buffer -) { - int32_t i; - - if (buffer->handle == renderer->currentVertexBuffer) - { - renderer->glBindBuffer(GL_ARRAY_BUFFER, 0); - renderer->currentVertexBuffer = 0; - } - for (i = 0; i < renderer->numVertexAttributes; i += 1) - { - if (buffer->handle == renderer->attributes[i].currentBuffer) - { - /* Force the next vertex attrib update! */ - renderer->attributes[i].currentBuffer = UINT32_MAX; - } - } - renderer->glDeleteBuffers(1, &buffer->handle); - - SDL_free(buffer); -} - -static void OPENGL_AddDisposeVertexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *glBuffer = (OpenGLBuffer*) buffer; - OpenGLBuffer *curr; - - if (renderer->threadID == SDL_ThreadID()) - { - OPENGL_INTERNAL_DestroyVertexBuffer(renderer, glBuffer); - } - else - { - SDL_LockMutex(renderer->disposeVertexBuffersLock); - LinkedList_Add(renderer->disposeVertexBuffers, glBuffer, curr); - SDL_UnlockMutex(renderer->disposeVertexBuffersLock); - } -} - -static void OPENGL_SetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *glBuffer = (OpenGLBuffer*) buffer; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_SETVERTEXBUFFERDATA; - cmd.setVertexBufferData.buffer = buffer; - cmd.setVertexBufferData.offsetInBytes = offsetInBytes; - cmd.setVertexBufferData.data = data; - cmd.setVertexBufferData.elementCount = elementCount; - cmd.setVertexBufferData.elementSizeInBytes = elementSizeInBytes; - cmd.setVertexBufferData.vertexStride = vertexStride; - cmd.setVertexBufferData.options = options; - ForceToMainThread(renderer, &cmd); - return; - } - - BindVertexBuffer(renderer, glBuffer->handle); - - /* FIXME: Staging buffer for elementSizeInBytes < vertexStride! */ - - if (options == FNA3D_SETDATAOPTIONS_DISCARD) - { - renderer->glBufferData( - GL_ARRAY_BUFFER, - glBuffer->size, - NULL, - glBuffer->dynamic - ); - } - - renderer->glBufferSubData( - GL_ARRAY_BUFFER, - (GLintptr) offsetInBytes, - (GLsizeiptr) (elementCount * vertexStride), - data - ); -} - -static void OPENGL_GetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *glBuffer = (OpenGLBuffer*) buffer; - uint8_t *dataBytes, *cpy, *src, *dst; - uint8_t useStagingBuffer; - int32_t i; - FNA3D_Command cmd; - - SDL_assert(renderer->supports_NonES3); - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GETVERTEXBUFFERDATA; - cmd.getVertexBufferData.buffer = buffer; - cmd.getVertexBufferData.offsetInBytes = offsetInBytes; - cmd.getVertexBufferData.data = data; - cmd.getVertexBufferData.elementCount = elementCount; - cmd.getVertexBufferData.elementSizeInBytes = elementSizeInBytes; - cmd.getVertexBufferData.vertexStride = vertexStride; - ForceToMainThread(renderer, &cmd); - return; - } - - dataBytes = (uint8_t*) data; - useStagingBuffer = elementSizeInBytes < vertexStride; - if (useStagingBuffer) - { - cpy = (uint8_t*) SDL_malloc(elementCount * vertexStride); - } - else - { - cpy = dataBytes; - } - - BindVertexBuffer(renderer, glBuffer->handle); - - renderer->glGetBufferSubData( - GL_ARRAY_BUFFER, - (GLintptr) offsetInBytes, - (GLsizeiptr) (elementCount * vertexStride), - cpy - ); - - if (useStagingBuffer) - { - src = cpy; - dst = dataBytes; - for (i = 0; i < elementCount; i += 1) - { - SDL_memcpy(dst, src, elementSizeInBytes); - dst += elementSizeInBytes; - src += vertexStride; - } - SDL_free(cpy); - } -} - -/* Index Buffers */ - -static FNA3D_Buffer* OPENGL_GenIndexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *result = NULL; - GLuint handle; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GENINDEXBUFFER; - cmd.genIndexBuffer.dynamic = dynamic; - cmd.genIndexBuffer.usage = usage; - cmd.genIndexBuffer.sizeInBytes = sizeInBytes; - ForceToMainThread(renderer, &cmd); - return cmd.genIndexBuffer.retval; - } - - renderer->glGenBuffers(1, &handle); - - result = (OpenGLBuffer*) SDL_malloc(sizeof(OpenGLBuffer)); - result->handle = handle; - result->size = (intptr_t) sizeInBytes; - result->dynamic = (dynamic ? GL_STREAM_DRAW : GL_STATIC_DRAW); - result->next = NULL; - - BindIndexBuffer(renderer, handle); - renderer->glBufferData( - GL_ELEMENT_ARRAY_BUFFER, - result->size, - NULL, - result->dynamic - ); - - return (FNA3D_Buffer*) result; -} - -static void OPENGL_INTERNAL_DestroyIndexBuffer( - OpenGLRenderer *renderer, - OpenGLBuffer *buffer -) { - if (buffer->handle == renderer->currentIndexBuffer) - { - renderer->glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); - renderer->currentIndexBuffer = 0; - } - renderer->glDeleteBuffers(1, &buffer->handle); - SDL_free(buffer); -} - -static void OPENGL_AddDisposeIndexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *glBuffer = (OpenGLBuffer*) buffer; - OpenGLBuffer *curr; - - if (renderer->threadID == SDL_ThreadID()) - { - OPENGL_INTERNAL_DestroyIndexBuffer(renderer, glBuffer); - } - else - { - SDL_LockMutex(renderer->disposeIndexBuffersLock); - LinkedList_Add(renderer->disposeIndexBuffers, glBuffer, curr); - SDL_UnlockMutex(renderer->disposeIndexBuffersLock); - } -} - -static void OPENGL_SetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *glBuffer = (OpenGLBuffer*) buffer; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_SETINDEXBUFFERDATA; - cmd.setIndexBufferData.buffer = buffer; - cmd.setIndexBufferData.offsetInBytes = offsetInBytes; - cmd.setIndexBufferData.data = data; - cmd.setIndexBufferData.dataLength = dataLength; - cmd.setIndexBufferData.options = options; - ForceToMainThread(renderer, &cmd); - return; - } - - BindIndexBuffer(renderer, glBuffer->handle); - - if (options == FNA3D_SETDATAOPTIONS_DISCARD) - { - renderer->glBufferData( - GL_ELEMENT_ARRAY_BUFFER, - glBuffer->size, - NULL, - glBuffer->dynamic - ); - } - - renderer->glBufferSubData( - GL_ELEMENT_ARRAY_BUFFER, - (GLintptr) offsetInBytes, - (GLsizeiptr) dataLength, - data - ); -} - -static void OPENGL_GetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLBuffer *glBuffer = (OpenGLBuffer*) buffer; - FNA3D_Command cmd; - - SDL_assert(renderer->supports_NonES3); - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_GETINDEXBUFFERDATA; - cmd.getIndexBufferData.buffer = buffer; - cmd.getIndexBufferData.offsetInBytes = offsetInBytes; - cmd.getIndexBufferData.data = data; - cmd.getIndexBufferData.dataLength = dataLength; - ForceToMainThread(renderer, &cmd); - return; - } - - BindIndexBuffer(renderer, glBuffer->handle); - - renderer->glGetBufferSubData( - GL_ELEMENT_ARRAY_BUFFER, - (GLintptr) offsetInBytes, - (GLsizeiptr) dataLength, - data - ); -} - -/* Effects */ - -static void* MOJOSHADERCALL OPENGL_INTERNAL_CompileShader( - const void *ctx, - const char *mainfn, - const unsigned char *tokenbuf, - const unsigned int bufsize, - const MOJOSHADER_swizzle *swiz, - const unsigned int swizcount, - const MOJOSHADER_samplerMap *smap, - const unsigned int smapcount -) { - return MOJOSHADER_glCompileShader( - tokenbuf, - bufsize, - swiz, - swizcount, - smap, - smapcount - ); -} - -static void MOJOSHADERCALL OPENGL_INTERNAL_DeleteShader( - const void *ctx, - void *shader -) { - MOJOSHADER_glShader *glShader = (MOJOSHADER_glShader*) shader; - MOJOSHADER_glDeleteShader(glShader); -} - -static void MOJOSHADERCALL OPENGL_INTERNAL_BindShaders( - const void *ctx, - void *vshader, - void *pshader -) { - MOJOSHADER_glShader *glVShader = (MOJOSHADER_glShader*) vshader; - MOJOSHADER_glShader *glPShader = (MOJOSHADER_glShader*) pshader; - - MOJOSHADER_glBindShaders(glVShader, glPShader); -} - -static void MOJOSHADERCALL OPENGL_INTERNAL_GetBoundShaders( - const void *ctx, - void **vshader, - void **pshader -) { - MOJOSHADER_glShader **glVShader = (MOJOSHADER_glShader**) vshader; - MOJOSHADER_glShader **glPShader = (MOJOSHADER_glShader**) pshader; - MOJOSHADER_glGetBoundShaders(glVShader, glPShader); -} - -static void MOJOSHADERCALL OPENGL_INTERNAL_MapUniformBufferMemory( - const void *ctx, - float **vsf, int **vsi, unsigned char **vsb, - float **psf, int **psi, unsigned char **psb -) { - MOJOSHADER_glMapUniformBufferMemory(vsf, vsi, vsb, psf, psi, psb); -} - -static void MOJOSHADERCALL OPENGL_INTERNAL_UnmapUniformBufferMemory( - const void *ctx -) { - MOJOSHADER_glUnmapUniformBufferMemory(); -} - -static const char* MOJOSHADERCALL OPENGL_INTERNAL_GetShaderError(const void *ctx) -{ - return MOJOSHADER_glGetError(); -} - -static void OPENGL_CreateEffect( - FNA3D_Renderer *driverData, - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLEffect *result; - int32_t i; - FNA3D_Command cmd; - MOJOSHADER_effectShaderContext shaderBackend; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_CREATEEFFECT; - cmd.createEffect.effectCode = effectCode; - cmd.createEffect.effectCodeLength = effectCodeLength; - cmd.createEffect.effect = effect; - cmd.createEffect.effectData = effectData; - ForceToMainThread(renderer, &cmd); - return; - } - - shaderBackend.shaderContext = renderer->shaderContext; - shaderBackend.compileShader = OPENGL_INTERNAL_CompileShader; - shaderBackend.shaderAddRef = (MOJOSHADER_shaderAddRefFunc) MOJOSHADER_glShaderAddRef; - shaderBackend.deleteShader = OPENGL_INTERNAL_DeleteShader; - shaderBackend.getParseData = (MOJOSHADER_getParseDataFunc) MOJOSHADER_glGetShaderParseData; - shaderBackend.bindShaders = OPENGL_INTERNAL_BindShaders; - shaderBackend.getBoundShaders = OPENGL_INTERNAL_GetBoundShaders; - shaderBackend.mapUniformBufferMemory = OPENGL_INTERNAL_MapUniformBufferMemory; - shaderBackend.unmapUniformBufferMemory = OPENGL_INTERNAL_UnmapUniformBufferMemory; - shaderBackend.getError = OPENGL_INTERNAL_GetShaderError; - shaderBackend.m = NULL; - shaderBackend.f = NULL; - shaderBackend.malloc_data = renderer; - - *effectData = MOJOSHADER_compileEffect( - effectCode, - effectCodeLength, - NULL, - 0, - NULL, - 0, - &shaderBackend - ); - - for (i = 0; i < (*effectData)->error_count; i += 1) - { - FNA3D_LogError( - "MOJOSHADER_compileEffect Error: %s", - (*effectData)->errors[i].error - ); - } - - result = (OpenGLEffect*) SDL_malloc(sizeof(OpenGLEffect)); - result->effect = *effectData; - result->next = NULL; - *effect = (FNA3D_Effect*) result; -} - -static void OPENGL_CloneEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *cloneSource, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLEffect *glCloneSource = (OpenGLEffect*) cloneSource; - OpenGLEffect *result; - FNA3D_Command cmd; - - if (renderer->threadID != SDL_ThreadID()) - { - cmd.type = FNA3D_COMMAND_CLONEEFFECT; - cmd.cloneEffect.cloneSource = cloneSource; - cmd.cloneEffect.effect = effect; - cmd.cloneEffect.effectData = effectData; - ForceToMainThread(renderer, &cmd); - return; - } - - *effectData = MOJOSHADER_cloneEffect(glCloneSource->effect); - if (*effectData == NULL) - { - FNA3D_LogError( - "%s", MOJOSHADER_glGetError() - ); - } - - result = (OpenGLEffect*) SDL_malloc(sizeof(OpenGLEffect)); - result->effect = *effectData; - result->next = NULL; - *effect = (FNA3D_Effect*) result; -} - -static void OPENGL_INTERNAL_DestroyEffect( - OpenGLRenderer *renderer, - OpenGLEffect *effect -) { - MOJOSHADER_effect *glEffect = effect->effect; - if (glEffect == renderer->currentEffect) - { - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectEnd(renderer->currentEffect); - renderer->currentEffect = NULL; - renderer->currentTechnique = NULL; - renderer->currentPass = 0; - renderer->effectApplied = 1; - } - MOJOSHADER_deleteEffect(glEffect); - SDL_free(effect); -} - -static void OPENGL_AddDisposeEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLEffect *fnaEffect = (OpenGLEffect*) effect; - OpenGLEffect *curr; - - if (renderer->threadID == SDL_ThreadID()) - { - OPENGL_INTERNAL_DestroyEffect(renderer, fnaEffect); - } - else - { - SDL_LockMutex(renderer->disposeEffectsLock); - LinkedList_Add(renderer->disposeEffects, fnaEffect, curr); - SDL_UnlockMutex(renderer->disposeEffectsLock); - } -} - -static void OPENGL_SetEffectTechnique( - FNA3D_Renderer *renderer, - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -) { - /* FIXME: Why doesn't this function do anything? */ - OpenGLEffect *fnaEffect = (OpenGLEffect*) effect; - MOJOSHADER_effectSetTechnique(fnaEffect->effect, technique); -} - -static void OPENGL_ApplyEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - uint32_t pass, - MOJOSHADER_effectStateChanges *stateChanges -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLEffect *fnaEffect = (OpenGLEffect*) effect; - MOJOSHADER_effect *effectData = fnaEffect->effect; - const MOJOSHADER_effectTechnique *technique = fnaEffect->effect->current_technique; - uint32_t whatever; - - renderer->effectApplied = 1; - if (effectData == renderer->currentEffect) - { - if ( technique == renderer->currentTechnique && - pass == renderer->currentPass ) - { - MOJOSHADER_effectCommitChanges( - renderer->currentEffect - ); - return; - } - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectBeginPass(renderer->currentEffect, pass); - renderer->currentTechnique = technique; - renderer->currentPass = pass; - return; - } - else if (renderer->currentEffect != NULL) - { - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectEnd(renderer->currentEffect); - } - MOJOSHADER_effectBegin( - effectData, - &whatever, - 0, - stateChanges - ); - MOJOSHADER_effectBeginPass(effectData, pass); - renderer->currentEffect = effectData; - renderer->currentTechnique = technique; - renderer->currentPass = pass; -} - -static void OPENGL_BeginPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectStateChanges *stateChanges -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - MOJOSHADER_effect *effectData = ((OpenGLEffect*) effect)->effect; - uint32_t whatever; - - MOJOSHADER_effectBegin( - effectData, - &whatever, - 1, - stateChanges - ); - MOJOSHADER_effectBeginPass(effectData, 0); - renderer->effectApplied = 1; -} - -static void OPENGL_EndPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - MOJOSHADER_effect *effectData = ((OpenGLEffect*) effect)->effect; - - MOJOSHADER_effectEndPass(effectData); - MOJOSHADER_effectEnd(effectData); - renderer->effectApplied = 1; -} - -/* Queries */ - -static FNA3D_Query* OPENGL_CreateQuery(FNA3D_Renderer *driverData) -{ - OpenGLQuery *result; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - SDL_assert(renderer->supports_ARB_occlusion_query); - - result = (OpenGLQuery*) SDL_malloc(sizeof(OpenGLQuery)); - renderer->glGenQueries(1, &result->handle); - result->next = NULL; - - return (FNA3D_Query*) result; -} - -static void OPENGL_INTERNAL_DestroyQuery( - OpenGLRenderer *renderer, - OpenGLQuery *query -) { - renderer->glDeleteQueries( - 1, - &query->handle - ); - SDL_free(query); -} - -static void OPENGL_AddDisposeQuery( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLQuery *glQuery = (OpenGLQuery*) query; - OpenGLQuery *curr; - - SDL_assert(renderer->supports_ARB_occlusion_query); - - if (renderer->threadID == SDL_ThreadID()) - { - OPENGL_INTERNAL_DestroyQuery(renderer, glQuery); - } - else - { - SDL_LockMutex(renderer->disposeQueriesLock); - LinkedList_Add(renderer->disposeQueries, glQuery, curr); - SDL_UnlockMutex(renderer->disposeQueriesLock); - } -} - -static void OPENGL_QueryBegin(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLQuery *glQuery = (OpenGLQuery*) query; - - SDL_assert(renderer->supports_ARB_occlusion_query); - - renderer->glBeginQuery( - GL_SAMPLES_PASSED, - glQuery->handle - ); -} - -static void OPENGL_QueryEnd(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - - SDL_assert(renderer->supports_ARB_occlusion_query); - - /* May need to check active queries...? */ - renderer->glEndQuery( - GL_SAMPLES_PASSED - ); -} - -static uint8_t OPENGL_QueryComplete( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - GLuint result; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLQuery *glQuery = (OpenGLQuery*) query; - - SDL_assert(renderer->supports_ARB_occlusion_query); - - renderer->glGetQueryObjectuiv( - glQuery->handle, - GL_QUERY_RESULT_AVAILABLE, - &result - ); - return result != 0; -} - -static int32_t OPENGL_QueryPixelCount( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - GLuint result; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - OpenGLQuery *glQuery = (OpenGLQuery*) query; - - SDL_assert(renderer->supports_ARB_occlusion_query); - - renderer->glGetQueryObjectuiv( - glQuery->handle, - GL_QUERY_RESULT, - &result - ); - return (int32_t) result; -} - -/* Feature Queries */ - -static uint8_t OPENGL_SupportsDXT1(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return renderer->supports_dxt1; -} - -static uint8_t OPENGL_SupportsS3TC(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return renderer->supports_s3tc; -} - -static uint8_t OPENGL_SupportsBC7(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return renderer->supports_bc7; -} - -static uint8_t OPENGL_SupportsHardwareInstancing(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return ( renderer->supports_ARB_draw_instanced && - renderer->supports_ARB_instanced_arrays ); -} - -static uint8_t OPENGL_SupportsNoOverwrite(FNA3D_Renderer *driverData) -{ - return 0; -} - -static uint8_t OPENGL_SupportsSRGBRenderTargets(FNA3D_Renderer *driverData) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - return renderer->supports_srgb_rendertarget; -} - -static void OPENGL_GetMaxTextureSlots( - FNA3D_Renderer *driverData, - int32_t *textures, - int32_t *vertexTextures -) { - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - *textures = renderer->numTextureSlots; - *vertexTextures = renderer->numVertexTextureSlots; -} - -static int32_t OPENGL_GetMaxMultiSampleCount( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount -) { - int32_t maxSamples; - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - - if (renderer->supports_ARB_internalformat_query) - { - maxSamples = renderer->maxMultiSampleCountFormat[format]; - } - else - { - /* This number isn't very good, but it's all we have... */ - maxSamples = renderer->maxMultiSampleCount; - } - if (renderer->windowSampleCount > 0) - { - /* Desperate attempt to align multisample count with the window - * sample count, otherwise glBlitFramebuffer will return - * GL_INVALID_OPERATION - */ - maxSamples = SDL_min(maxSamples, renderer->windowSampleCount); - } - return SDL_min(maxSamples, multiSampleCount); -} - -/* Debugging */ - -static void OPENGL_SetStringMarker(FNA3D_Renderer *driverData, const char *text) -{ - OpenGLRenderer *renderer = (OpenGLRenderer*) driverData; - if (renderer->supports_GREMEDY_string_marker) - { - renderer->glStringMarkerGREMEDY(SDL_strlen(text), text); - } -} - -static const char *debugSourceStr[] = { - "GL_DEBUG_SOURCE_API", - "GL_DEBUG_SOURCE_WINDOW_SYSTEM", - "GL_DEBUG_SOURCE_SHADER_COMPILER", - "GL_DEBUG_SOURCE_THIRD_PARTY", - "GL_DEBUG_SOURCE_APPLICATION", - "GL_DEBUG_SOURCE_OTHER" -}; -static const char *debugTypeStr[] = { - "GL_DEBUG_TYPE_ERROR", - "GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR", - "GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR", - "GL_DEBUG_TYPE_PORTABILITY", - "GL_DEBUG_TYPE_PERFORMANCE", - "GL_DEBUG_TYPE_OTHER" -}; -static const char *debugSeverityStr[] = { - "GL_DEBUG_SEVERITY_HIGH", - "GL_DEBUG_SEVERITY_MEDIUM", - "GL_DEBUG_SEVERITY_LOW", - "GL_DEBUG_SEVERITY_NOTIFICATION" -}; - -static void GLAPIENTRY DebugCall( - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *message, - const void *userParam -) { - if (type == GL_DEBUG_TYPE_ERROR) - { - FNA3D_LogError( - "%s\n\tSource: %s\n\tType: %s\n\tSeverity: %s", - message, - debugSourceStr[source - GL_DEBUG_SOURCE_API], - debugTypeStr[type - GL_DEBUG_TYPE_ERROR], - debugSeverityStr[severity - GL_DEBUG_SEVERITY_HIGH] - ); - } - else - { - FNA3D_LogWarn( - "%s\n\tSource: %s\n\tType: %s\n\tSeverity: %s", - message, - debugSourceStr[source - GL_DEBUG_SOURCE_API], - debugTypeStr[type - GL_DEBUG_TYPE_ERROR], - debugSeverityStr[severity - GL_DEBUG_SEVERITY_HIGH] - ); - } -} - -/* External Interop */ - -static void OPENGL_GetSysRenderer( - FNA3D_Renderer* driverData, - FNA3D_SysRendererEXT *sysrenderer -) { - OpenGLRenderer* renderer = (OpenGLRenderer*) driverData; - - sysrenderer->rendererType = FNA3D_RENDERER_TYPE_OPENGL_EXT; - sysrenderer->renderer.opengl.context = renderer->context; -} - -static FNA3D_Texture* OPENGL_CreateSysTexture( - FNA3D_Renderer* driverData, - FNA3D_SysTextureEXT *systexture -) { - OpenGLTexture* result; - - if (systexture->rendererType != FNA3D_RENDERER_TYPE_OPENGL_EXT) - { - return NULL; - } - - result = (OpenGLTexture*) SDL_malloc( - sizeof(OpenGLTexture) - ); - - SDL_zerop(result); - - result->handle = systexture->texture.opengl.handle; - result->target = (GLenum) systexture->texture.opengl.target; - result->external = 1; - - return (FNA3D_Texture*) result; -} - -/* Load GL Entry Points */ - -static inline void LoadEntryPoints( - OpenGLRenderer *renderer, - const char *driverInfo, - uint8_t debugMode -) { - int32_t i; - const char *baseErrorString = ( - renderer->useES3 ? - "OpenGL ES 3.0 support is required!" : - "OpenGL 2.1 support is required!" - ); - - #define GL_EXT(ext) \ - renderer->supports_##ext = 1; - #define GL_PROC(ext, ret, func, parms) \ - renderer->func = (glfntype_##func) SDL_GL_GetProcAddress(#func); \ - if (renderer->func == NULL) \ - { \ - renderer->supports_##ext = 0; \ - } - #define GL_PROC_EXT(ext, fallback, ret, func, parms) \ - renderer->func = (glfntype_##func) SDL_GL_GetProcAddress(#func); \ - if (renderer->func == NULL) \ - { \ - renderer->func = (glfntype_##func) SDL_GL_GetProcAddress(#func #fallback); \ - if (renderer->func == NULL) \ - { \ - renderer->supports_##ext = 0; \ - } \ - } -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" - #include "FNA3D_Driver_OpenGL_glfuncs.h" -#pragma GCC diagnostic pop - - /* Weeding out the GeForce FX cards... */ - if (!renderer->supports_BaseGL) - { - FNA3D_LogError( - "%s\n%s", - baseErrorString, - driverInfo - ); - return; - } - - /* No depth precision whatsoever? Something's busted. */ - if ( !renderer->supports_DoublePrecisionDepth && - !renderer->supports_OES_single_precision ) - { - FNA3D_LogError( - "%s\n%s", - baseErrorString, - driverInfo - ); - return; - } - - /* If you asked for core profile, you better have it! */ - if (renderer->useCoreProfile && !renderer->supports_CoreGL) - { - FNA3D_LogError( - "OpenGL 3.2 Core support is required!\n%s", - driverInfo - ); - return; - } - - /* Some stuff is okay for ES3, not for desktop. */ - if (renderer->useES3) - { - if (!renderer->supports_3DTexture) - { - FNA3D_LogWarn( - "3D textures unsupported, beware..." - ); - } - if (!renderer->supports_ARB_occlusion_query) - { - FNA3D_LogWarn( - "Occlusion queries unsupported, beware..." - ); - } - if (!renderer->supports_ARB_invalidate_subdata) - { -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" - renderer->glInvalidateFramebuffer = - (glfntype_glInvalidateFramebuffer) SDL_GL_GetProcAddress( - "glDiscardFramebufferEXT" - ); -#pragma GCC diagnostic pop - renderer->supports_ARB_invalidate_subdata = - renderer->glInvalidateFramebuffer != NULL; - } - } - else - { - if ( !renderer->supports_3DTexture || - !renderer->supports_ARB_occlusion_query || - !renderer->supports_NonES3 ) - { - FNA3D_LogError( - "%s\n%s", - baseErrorString, - driverInfo - ); - return; - } - } - - /* AKA: The shitty TexEnvi check */ - if ( !renderer->useES3 && - !renderer->useCoreProfile && - !renderer->supports_NonES3NonCore ) - { - FNA3D_LogError( - "%s\n%s", - baseErrorString, - driverInfo - ); - return; - } - - /* ColorMask is an absolute mess */ - if (!renderer->supports_EXT_draw_buffers2) - { - #define LOAD_COLORMASK(suffix) \ - renderer->glColorMaski = (glfntype_glColorMaski) \ - SDL_GL_GetProcAddress("glColorMask" #suffix); -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" - LOAD_COLORMASK(IndexedEXT) - if (renderer->glColorMaski == NULL) LOAD_COLORMASK(iOES) - if (renderer->glColorMaski == NULL) LOAD_COLORMASK(iEXT) -#pragma GCC diagnostic pop - if (renderer->glColorMaski != NULL) - { - renderer->supports_EXT_draw_buffers2 = 1; - } - #undef LOAD_COLORMASK - } - - /* Possibly bogus if a game never uses render targets? */ - if (!renderer->supports_ARB_framebuffer_object) - { - FNA3D_LogError( - "OpenGL framebuffer support is required!\n%s", - driverInfo - ); - return; - } - - /* Check this before KHR_debug inits, to prevent complaints about - * unsupported render formats from showing up - */ - if (renderer->supports_ARB_internalformat_query) - { - for (i = 0; i < 21; i += 1) - { - renderer->glGetInternalformativ( - GL_RENDERBUFFER, - XNAToGL_TextureInternalFormat[i], - GL_SAMPLES, - 1, - &renderer->maxMultiSampleCountFormat[i] - ); - } - } - - /* Everything below this check is for debug contexts */ - if (!debugMode) - { - return; - } - - if (renderer->supports_KHR_debug) - { - renderer->glDebugMessageControl( - GL_DONT_CARE, - GL_DONT_CARE, - GL_DONT_CARE, - 0, - NULL, - GL_TRUE - ); - renderer->glDebugMessageControl( - GL_DONT_CARE, - GL_DEBUG_TYPE_OTHER, - GL_DEBUG_SEVERITY_LOW, - 0, - NULL, - GL_FALSE - ); - renderer->glDebugMessageControl( - GL_DONT_CARE, - GL_DEBUG_TYPE_OTHER, - GL_DEBUG_SEVERITY_NOTIFICATION, - 0, - NULL, - GL_FALSE - ); - renderer->glDebugMessageCallback(DebugCall, NULL); - } - else - { - FNA3D_LogWarn( - "ARB_debug_output/KHR_debug not supported!" - ); - } - - if (!renderer->supports_GREMEDY_string_marker) - { - FNA3D_LogWarn( - "GREMEDY_string_marker not supported!" - ); - } -} - -static void* MOJOSHADERCALL GLGetProcAddress(const char *ep, void* d) -{ - return SDL_GL_GetProcAddress(ep); -} - -static inline void CheckExtensions( - const char *ext, - uint8_t *supportsS3tc, - uint8_t *supportsDxt1, - uint8_t *supportsAnisotropicFiltering, - uint8_t *supportsSRGBRenderTargets, - uint8_t *supportsBC7 -) { - uint8_t s3tc = ( - SDL_strstr(ext, "GL_EXT_texture_compression_s3tc") || - SDL_strstr(ext, "GL_OES_texture_compression_S3TC") || - SDL_strstr(ext, "GL_EXT_texture_compression_dxt3") || - SDL_strstr(ext, "GL_EXT_texture_compression_dxt5") - ); - uint8_t bc7 = ( - SDL_strstr(ext, "GL_ARB_texture_compression_bptc") != NULL - ); - uint8_t anisotropicFiltering = ( - SDL_strstr(ext, "GL_EXT_texture_filter_anisotropic") || - SDL_strstr(ext, "GL_ARB_texture_filter_anisotropic") - ); - uint8_t srgbFrameBuffer = ( - SDL_strstr(ext, "GL_EXT_framebuffer_sRGB") != NULL - ); - - if (s3tc) - { - *supportsS3tc = 1; - } - if (s3tc || SDL_strstr(ext, "GL_EXT_texture_compression_dxt1")) - { - *supportsDxt1 = 1; - } - if (anisotropicFiltering) - { - *supportsAnisotropicFiltering = 1; - } - if (srgbFrameBuffer) - { - *supportsSRGBRenderTargets = 1; - } - if (bc7) - { - *supportsBC7 = 1; - } -} - -/* Driver */ - -static uint8_t OPENGL_PrepareWindowAttributes(uint32_t *flags) -{ - uint8_t forceES3, forceCore, forceCompat; - const char *osVersion; - int32_t depthSize, stencilSize; - const char *depthFormatHint; - - /* GLContext environment variables */ - forceES3 = SDL_GetHintBoolean("FNA3D_OPENGL_FORCE_ES3", 0); - forceCore = SDL_GetHintBoolean("FNA3D_OPENGL_FORCE_CORE_PROFILE", 0); - forceCompat = SDL_GetHintBoolean("FNA3D_OPENGL_FORCE_COMPATIBILITY_PROFILE", 0); - - /* Some platforms are GLES only */ - osVersion = SDL_GetPlatform(); - forceES3 |= ( - (SDL_strcmp(osVersion, "WinRT") == 0) || - (SDL_strcmp(osVersion, "iOS") == 0) || - (SDL_strcmp(osVersion, "tvOS") == 0) || - (SDL_strcmp(osVersion, "Stadia") == 0) || - (SDL_strcmp(osVersion, "Android") == 0) || - (SDL_strcmp(osVersion, "Emscripten") == 0) - ); - - /* Window depth format */ - depthSize = 24; - stencilSize = 8; - depthFormatHint = SDL_GetHint("FNA3D_OPENGL_WINDOW_DEPTHSTENCILFORMAT"); - if (depthFormatHint != NULL) - { - if (SDL_strcmp(depthFormatHint, "None") == 0) - { - depthSize = 0; - stencilSize = 0; - } - else if (SDL_strcmp(depthFormatHint, "Depth16") == 0) - { - depthSize = 16; - stencilSize = 0; - } - else if (SDL_strcmp(depthFormatHint, "Depth24") == 0) - { - depthSize = 24; - stencilSize = 0; - } - else if (SDL_strcmp(depthFormatHint, "Depth24Stencil8") == 0) - { - depthSize = 24; - stencilSize = 8; - } - } - - /* Set context attributes */ - SDL_GL_SetAttribute(SDL_GL_RED_SIZE, 8); - SDL_GL_SetAttribute(SDL_GL_GREEN_SIZE, 8); - SDL_GL_SetAttribute(SDL_GL_BLUE_SIZE, 8); - SDL_GL_SetAttribute(SDL_GL_ALPHA_SIZE, 8); - SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, depthSize); - SDL_GL_SetAttribute(SDL_GL_STENCIL_SIZE, stencilSize); - SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); - if (forceES3) - { - SDL_GL_SetAttribute(SDL_GL_RETAINED_BACKING, 0); - SDL_GL_SetAttribute(SDL_GL_ACCELERATED_VISUAL, 1); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 0); - SDL_GL_SetAttribute( - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_CONTEXT_PROFILE_ES - ); - } - else if (forceCore) - { - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 4); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 6); - SDL_GL_SetAttribute( - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_CONTEXT_PROFILE_CORE - ); - } - else if (forceCompat) - { - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 2); - SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 1); - SDL_GL_SetAttribute( - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_CONTEXT_PROFILE_COMPATIBILITY - ); - } - - /* If there's no GL library, bail! - * Only do this after all the flags above are set, as they may affect - * which GL library actually gets loaded (desktop vs ES, for example). - * -flibit - */ - if (SDL_GL_LoadLibrary(NULL) < 0) - { - return 0; - } - - *flags = SDL_WINDOW_OPENGL; - return 1; -} - -void OPENGL_GetDrawableSize(void* window, int32_t *w, int32_t *h) -{ - /* When using OpenGL, iOS and tvOS require an active GL context to get - * the drawable size of the screen. - */ -#if defined(__IPHONEOS__) || defined(__TVOS__) - SDL_GLContext tempContext = SDL_GL_CreateContext(window); -#endif - - SDL_GL_GetDrawableSize((SDL_Window*) window, w, h); - -#if defined(__IPHONEOS__) || defined(__TVOS__) - SDL_GL_DeleteContext(tempContext); -#endif -} - -FNA3D_Device* OPENGL_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -) { - int32_t flags; - int32_t depthSize, stencilSize; - const char *rendererStr, *versionStr, *vendorStr; - char driverInfo[256]; - int32_t i; - int32_t numExtensions, numSamplers, numAttributes, numAttachments; - OpenGLRenderer *renderer; - FNA3D_Device *result; -#ifdef SDL_VIDEO_DRIVER_UIKIT - SDL_SysWMinfo wmInfo; -#endif /* SDL_VIDEO_DRIVER_UIKIT */ - - /* Create the FNA3D_Device */ - result = (FNA3D_Device*) SDL_malloc(sizeof(FNA3D_Device)); - ASSIGN_DRIVER(OPENGL) - - /* Init the OpenGLRenderer */ - renderer = (OpenGLRenderer*) SDL_malloc(sizeof(OpenGLRenderer)); - SDL_memset(renderer, '\0', sizeof(OpenGLRenderer)); - - /* The FNA3D_Device and OpenGLRenderer need to reference each other */ - renderer->parentDevice = result; - result->driverData = (FNA3D_Renderer*) renderer; - - /* Debug context support */ - if (debugMode && SDL_strcmp("Emscripten", SDL_GetPlatform()) != 0) - { - SDL_GL_SetAttribute( - SDL_GL_CONTEXT_FLAGS, - SDL_GL_CONTEXT_DEBUG_FLAG - ); - } - - /* Create OpenGL context */ - renderer->context = SDL_GL_CreateContext( - (SDL_Window*) presentationParameters->deviceWindowHandle - ); - - /* Check for a possible ES/Core context */ - SDL_GL_GetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, &flags); - renderer->useES3 = (flags & SDL_GL_CONTEXT_PROFILE_ES) != 0; - renderer->useCoreProfile = (flags & SDL_GL_CONTEXT_PROFILE_CORE) != 0; - - /* Check for EGL-based contexts */ - renderer->isEGL = ( renderer->useES3 || - SDL_strcmp(SDL_GetCurrentVideoDriver(), "wayland") == 0 ); - - /* Check for a possible debug context */ - SDL_GL_GetAttribute(SDL_GL_CONTEXT_FLAGS, &flags); - debugMode = (flags & SDL_GL_CONTEXT_DEBUG_FLAG) != 0; - - /* Check the window's depth/stencil format */ - SDL_GL_GetAttribute(SDL_GL_DEPTH_SIZE, &depthSize); - SDL_GL_GetAttribute(SDL_GL_STENCIL_SIZE, &stencilSize); - if (depthSize == 0 && stencilSize == 0) - { - renderer->windowDepthFormat = FNA3D_DEPTHFORMAT_NONE; - } - else if (depthSize == 16 && stencilSize == 0) - { - renderer->windowDepthFormat = FNA3D_DEPTHFORMAT_D16; - } - else if (depthSize == 24 && stencilSize == 0) - { - renderer->windowDepthFormat = FNA3D_DEPTHFORMAT_D24; - } - else if (depthSize == 24 && stencilSize == 8) - { - renderer->windowDepthFormat = FNA3D_DEPTHFORMAT_D24S8; - } - else if (depthSize == 32 && stencilSize == 8) - { - /* There's like a 99% chance this is GDI, expect a - * NoSuitableGraphicsDevice soon after this line... - */ - FNA3D_LogWarn("Non-standard D32S8 window depth format!"); - renderer->windowDepthFormat = FNA3D_DEPTHFORMAT_D24S8; - } - else - { - FNA3D_LogError( - "Unrecognized window depth/stencil format: %d %d", - depthSize, - stencilSize - ); - renderer->windowDepthFormat = FNA3D_DEPTHFORMAT_D24S8; - } - - /* Lastly, check for backbuffer multisampling. This is extremely rare, - * but Xwayland may try to introduce it (maybe because of DPI scaling?) - */ - SDL_GL_GetAttribute(SDL_GL_MULTISAMPLESAMPLES, &renderer->windowSampleCount); - if (renderer->windowSampleCount > 1) - { - FNA3D_LogWarn("Window surface is multisampled! This is an OS bug!"); - } - - /* Set the swap interval now that we know enough about the GL context */ - OPENGL_INTERNAL_SetPresentationInterval( - presentationParameters->presentationInterval, - renderer->isEGL - ); - - /* UIKit needs special treatment for backbuffer behavior */ -#ifdef SDL_VIDEO_DRIVER_UIKIT - SDL_VERSION(&wmInfo.version); - SDL_GetWindowWMInfo( - (SDL_Window*) presentationParameters->deviceWindowHandle, - &wmInfo - ); - if (wmInfo.subsystem == SDL_SYSWM_UIKIT) - { - renderer->realBackbufferFBO = wmInfo.info.uikit.framebuffer; - renderer->realBackbufferRBO = wmInfo.info.uikit.colorbuffer; - } -#endif /* SDL_VIDEO_DRIVER_UIKIT */ - - /* Print GL information */ -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" - renderer->glGetString = (glfntype_glGetString) SDL_GL_GetProcAddress("glGetString"); -#pragma GCC diagnostic pop - if (!renderer->glGetString) - { - FNA3D_LogError("GRAPHICS DRIVER IS EXTREMELY BROKEN!"); - SDL_assert(0 && "GRAPHICS DRIVER IS EXTREMELY BROKEN!"); - } - rendererStr = (const char*) renderer->glGetString(GL_RENDERER); - versionStr = (const char*) renderer->glGetString(GL_VERSION); - vendorStr = (const char*) renderer->glGetString(GL_VENDOR); - - FNA3D_LogInfo("FNA3D Driver: OpenGL"); - FNA3D_LogInfo("OpenGL Renderer: %s", rendererStr); - FNA3D_LogInfo("OpenGL Driver: %s", versionStr); - FNA3D_LogInfo("OpenGL Vendor: %s", vendorStr); - - /* Initialize entry points */ - SDL_snprintf( - driverInfo, sizeof(driverInfo), - "OpenGL Renderer: %s\nOpenGL Driver: %s\nOpenGL Vendor: %s", - rendererStr, versionStr, vendorStr - ); - LoadEntryPoints(renderer, driverInfo, debugMode); - - /* Initialize shader context */ - renderer->shaderProfile = SDL_GetHint("FNA3D_MOJOSHADER_PROFILE"); - if (renderer->shaderProfile == NULL || renderer->shaderProfile[0] == '\0') - { - renderer->shaderProfile = MOJOSHADER_glBestProfile( - GLGetProcAddress, - NULL, - NULL, - NULL, - NULL - ); - - /* SPIR-V is very new and not really necessary. */ - if ( (SDL_strcmp(renderer->shaderProfile, "glspirv") == 0) && - !renderer->useCoreProfile ) - { - renderer->shaderProfile = "glsl120"; - } - } - renderer->shaderContext = MOJOSHADER_glCreateContext( - renderer->shaderProfile, - GLGetProcAddress, - NULL, - NULL, - NULL, - renderer - ); - MOJOSHADER_glMakeContextCurrent(renderer->shaderContext); - FNA3D_LogInfo("MojoShader Profile: %s", renderer->shaderProfile); - - /* Some users might want pixely upscaling... */ - renderer->backbufferScaleMode = SDL_GetHintBoolean( - "FNA3D_BACKBUFFER_SCALE_NEAREST", 0 - ) ? GL_NEAREST : GL_LINEAR; - - /* Load the extension list, initialize extension-dependent components */ - renderer->supports_s3tc = 0; - renderer->supports_dxt1 = 0; - renderer->supports_anisotropic_filtering = 0; - renderer->supports_srgb_rendertarget = 0; - renderer->supports_bc7 = 0; - if (renderer->useCoreProfile) - { - renderer->glGetIntegerv(GL_NUM_EXTENSIONS, &numExtensions); - for (i = 0; i < numExtensions; i += 1) - { - CheckExtensions( - (const char*) renderer->glGetStringi(GL_EXTENSIONS, i), - &renderer->supports_s3tc, - &renderer->supports_dxt1, - &renderer->supports_anisotropic_filtering, - &renderer->supports_srgb_rendertarget, - &renderer->supports_bc7 - ); - - if (renderer->supports_s3tc && renderer->supports_dxt1 && renderer->supports_srgb_rendertarget && renderer->supports_bc7) - { - /* No need to look further. */ - break; - } - } - } - else - { - CheckExtensions( - (const char*) renderer->glGetString(GL_EXTENSIONS), - &renderer->supports_s3tc, - &renderer->supports_dxt1, - &renderer->supports_anisotropic_filtering, - &renderer->supports_srgb_rendertarget, - &renderer->supports_bc7 - ); - } - - /* Check the max multisample count, override parameters if necessary */ - if (renderer->supports_EXT_framebuffer_multisample) - { - renderer->glGetIntegerv( - GL_MAX_SAMPLES, - &renderer->maxMultiSampleCount - ); - } - if (renderer->supports_ARB_internalformat_query) - { - presentationParameters->multiSampleCount = SDL_min( - presentationParameters->multiSampleCount, - renderer->maxMultiSampleCountFormat[presentationParameters->backBufferFormat] - ); - } - else - { - /* This number isn't very good, but it's all we have... */ - presentationParameters->multiSampleCount = SDL_min( - presentationParameters->multiSampleCount, - renderer->maxMultiSampleCount - ); - } - - /* Initialize the faux backbuffer */ - OPENGL_INTERNAL_CreateBackbuffer(renderer, presentationParameters); - - /* Initialize texture collection array */ - renderer->glGetIntegerv(GL_MAX_TEXTURE_IMAGE_UNITS, &numSamplers); - numSamplers = SDL_min( - numSamplers, - MAX_TEXTURE_SAMPLERS + MAX_VERTEXTEXTURE_SAMPLERS - ); - renderer->numTextureSlots = SDL_min( - numSamplers, - MAX_TEXTURE_SAMPLERS - ); - renderer->numVertexTextureSlots = SDL_min( - SDL_max(numSamplers - MAX_TEXTURE_SAMPLERS, 0), - MAX_VERTEXTEXTURE_SAMPLERS - ); - renderer->vertexSamplerStart = numSamplers - renderer->numVertexTextureSlots; - for (i = 0; i < numSamplers; i += 1) - { - renderer->textures[i] = &NullTexture; - } - - /* Initialize vertex attribute state arrays */ - renderer->ldBaseVertex = -1; - renderer->glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &numAttributes); - numAttributes = SDL_min(numAttributes, MAX_VERTEX_ATTRIBUTES); - for (i = 0; i < numAttributes; i += 1) - { - renderer->attributes[i].currentBuffer = 0; - renderer->attributes[i].currentPointer = NULL; - renderer->attributes[i].currentFormat = FNA3D_VERTEXELEMENTFORMAT_SINGLE; - renderer->attributes[i].currentNormalized = 0; - renderer->attributes[i].currentStride = 0; - - renderer->attributeEnabled[i] = 0; - renderer->previousAttributeEnabled[i] = 0; - renderer->attributeDivisor[i] = 0; - renderer->previousAttributeDivisor[i] = 0; - } - renderer->numVertexAttributes = numAttributes; - - /* Initialize render target FBO and state arrays */ - renderer->glGetIntegerv(GL_MAX_DRAW_BUFFERS, &numAttachments); - numAttachments = SDL_min(numAttachments, MAX_RENDERTARGET_BINDINGS); - for (i = 0; i < numAttachments; i += 1) - { - renderer->attachments[i] = 0; - renderer->attachmentTypes[i] = 0; - renderer->currentAttachments[i] = 0; - renderer->currentAttachmentTypes[i] = GL_TEXTURE_2D; - renderer->drawBuffersArray[i] = GL_COLOR_ATTACHMENT0 + i; - } - renderer->numAttachments = numAttachments; - - renderer->drawBuffersArray[numAttachments] = GL_DEPTH_ATTACHMENT; - renderer->drawBuffersArray[numAttachments + 1] = GL_STENCIL_ATTACHMENT; - renderer->glGenFramebuffers(1, &renderer->targetFramebuffer); - renderer->glGenFramebuffers(1, &renderer->resolveFramebufferRead); - renderer->glGenFramebuffers(1, &renderer->resolveFramebufferDraw); - - if (renderer->useCoreProfile) - { - /* Generate and bind a VAO, to shut Core up */ - renderer->glGenVertexArrays(1, &renderer->vao); - renderer->glBindVertexArray(renderer->vao); - } - else if (!renderer->useES3) - { - /* Compatibility contexts require that point sprites be enabled - * explicitly. However, drivers (and the Steam overlay) are - * really fucking bad at not knowing that point sprite state - * should only affect point rendering. So, here we are. - * -flibit - */ - const char *os = SDL_GetPlatform(); - if ( (SDL_strcmp(os, "Mac OS X") == 0) || /* Mainly Intel */ - (SDL_strcmp(os, "Linux") == 0) ) /* Mainly Gallium */ - { - renderer->togglePointSprite = 1; - } - else - { - renderer->glEnable(GL_POINT_SPRITE); - renderer->glTexEnvi(GL_POINT_SPRITE, GL_COORD_REPLACE, GL_TRUE); - } - } - - /* Initialize renderer members not covered by SDL_memset('\0') */ - renderer->dstBlend = FNA3D_BLEND_ZERO; /* ZERO is really 1. -caleb */ - renderer->dstBlendAlpha = FNA3D_BLEND_ZERO; /* ZERO is really 1. -caleb */ - renderer->colorWriteEnable = FNA3D_COLORWRITECHANNELS_ALL; - renderer->colorWriteEnable1 = FNA3D_COLORWRITECHANNELS_ALL; - renderer->colorWriteEnable2 = FNA3D_COLORWRITECHANNELS_ALL; - renderer->colorWriteEnable3 = FNA3D_COLORWRITECHANNELS_ALL; - renderer->multiSampleMask = -1; /* AKA 0xFFFFFFFF, ugh -flibit */ - renderer->stencilWriteMask = -1; /* AKA 0xFFFFFFFF, ugh -flibit */ - renderer->stencilMask = -1; /* AKA 0xFFFFFFFF, ugh -flibit */ - renderer->multiSampleEnable = 1; - renderer->depthRangeMax = 1.0f; - renderer->currentClearDepth = 1.0f; - - /* The creation thread will be the "main" thread */ - renderer->threadID = SDL_ThreadID(); - renderer->commandsLock = SDL_CreateMutex(); - renderer->disposeTexturesLock = SDL_CreateMutex(); - renderer->disposeRenderbuffersLock = SDL_CreateMutex(); - renderer->disposeVertexBuffersLock = SDL_CreateMutex(); - renderer->disposeIndexBuffersLock = SDL_CreateMutex(); - renderer->disposeEffectsLock = SDL_CreateMutex(); - renderer->disposeQueriesLock = SDL_CreateMutex(); - - /* Return the FNA3D_Device */ - return result; -} - -FNA3D_Driver OpenGLDriver = { - "OpenGL", - OPENGL_PrepareWindowAttributes, - OPENGL_GetDrawableSize, - OPENGL_CreateDevice -}; - -#else - -extern int this_tu_is_empty; - -#endif /* FNA3D_DRIVER_OPENGL */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL.h deleted file mode 100644 index 5413eadd..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL.h +++ /dev/null @@ -1,318 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FNA3D_DRIVER_OPENGL_H -#define FNA3D_DRIVER_OPENGL_H - -#include - -/* Types */ -typedef unsigned int GLenum; -typedef unsigned int GLbitfield; -typedef void GLvoid; -typedef unsigned int GLuint; -typedef int GLint; -typedef unsigned char GLubyte; -typedef int GLsizei; -typedef float GLfloat; -typedef float GLclampf; -typedef double GLdouble; -typedef char GLchar; -typedef uintptr_t GLsizeiptr; -typedef intptr_t GLintptr; -typedef unsigned char GLboolean; - -/* Hint */ -#define GL_DONT_CARE 0x1100 - -/* 0/1 */ -#define GL_ZERO 0x0000 -#define GL_ONE 0x0001 - -/* True/False */ -#define GL_FALSE 0x0000 -#define GL_TRUE 0x0001 - -/* Types */ -#define GL_BYTE 0x1400 -#define GL_UNSIGNED_BYTE 0x1401 -#define GL_SHORT 0x1402 -#define GL_UNSIGNED_SHORT 0x1403 -#define GL_UNSIGNED_INT 0x1405 -#define GL_FLOAT 0x1406 -#define GL_HALF_FLOAT 0x140B -#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 -#define GL_UNSIGNED_SHORT_5_5_5_1_REV 0x8366 -#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 -#define GL_UNSIGNED_SHORT_5_6_5 0x8363 -#define GL_UNSIGNED_INT_24_8 0x84FA - -/* Strings */ -#define GL_VENDOR 0x1F00 -#define GL_RENDERER 0x1F01 -#define GL_VERSION 0x1F02 -#define GL_EXTENSIONS 0x1F03 - -/* Clear Mask */ -#define GL_COLOR_BUFFER_BIT 0x4000 -#define GL_DEPTH_BUFFER_BIT 0x0100 -#define GL_STENCIL_BUFFER_BIT 0x0400 - -/* Enable Caps */ -#define GL_SCISSOR_TEST 0x0C11 -#define GL_DEPTH_TEST 0x0B71 -#define GL_STENCIL_TEST 0x0B90 - -/* Points */ -#define GL_POINT_SPRITE 0x8861 -#define GL_COORD_REPLACE 0x8862 - -/* Polygons */ -#define GL_LINE 0x1B01 -#define GL_FILL 0x1B02 -#define GL_CW 0x0900 -#define GL_CCW 0x0901 -#define GL_FRONT 0x0404 -#define GL_BACK 0x0405 -#define GL_FRONT_AND_BACK 0x0408 -#define GL_CULL_FACE 0x0B44 -#define GL_POLYGON_OFFSET_FILL 0x8037 - -/* Texture Type */ -#define GL_TEXTURE_2D 0x0DE1 -#define GL_TEXTURE_3D 0x806F -#define GL_TEXTURE_CUBE_MAP 0x8513 -#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 - -/* Blend Mode */ -#define GL_BLEND 0x0BE2 -#define GL_SRC_COLOR 0x0300 -#define GL_ONE_MINUS_SRC_COLOR 0x0301 -#define GL_SRC_ALPHA 0x0302 -#define GL_ONE_MINUS_SRC_ALPHA 0x0303 -#define GL_DST_ALPHA 0x0304 -#define GL_ONE_MINUS_DST_ALPHA 0x0305 -#define GL_DST_COLOR 0x0306 -#define GL_ONE_MINUS_DST_COLOR 0x0307 -#define GL_SRC_ALPHA_SATURATE 0x0308 -#define GL_CONSTANT_COLOR 0x8001 -#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 - -/* Equations */ -#define GL_MIN 0x8007 -#define GL_MAX 0x8008 -#define GL_FUNC_ADD 0x8006 -#define GL_FUNC_SUBTRACT 0x800A -#define GL_FUNC_REVERSE_SUBTRACT 0x800B - -/* Comparisons */ -#define GL_NEVER 0x0200 -#define GL_LESS 0x0201 -#define GL_EQUAL 0x0202 -#define GL_LEQUAL 0x0203 -#define GL_GREATER 0x0204 -#define GL_NOTEQUAL 0x0205 -#define GL_GEQUAL 0x0206 -#define GL_ALWAYS 0x0207 - -/* Stencil Operations */ -#define GL_INVERT 0x150A -#define GL_KEEP 0x1E00 -#define GL_REPLACE 0x1E01 -#define GL_INCR 0x1E02 -#define GL_DECR 0x1E03 -#define GL_INCR_WRAP 0x8507 -#define GL_DECR_WRAP 0x8508 - -/* Wrap Modes */ -#define GL_REPEAT 0x2901 -#define GL_CLAMP_TO_EDGE 0x812F -#define GL_MIRRORED_REPEAT 0x8370 - -/* Filters */ -#define GL_NEAREST 0x2600 -#define GL_LINEAR 0x2601 -#define GL_NEAREST_MIPMAP_NEAREST 0x2700 -#define GL_NEAREST_MIPMAP_LINEAR 0x2702 -#define GL_LINEAR_MIPMAP_NEAREST 0x2701 -#define GL_LINEAR_MIPMAP_LINEAR 0x2703 - -/* Attachments */ -#define GL_COLOR_ATTACHMENT0 0x8CE0 -#define GL_DEPTH_ATTACHMENT 0x8D00 -#define GL_STENCIL_ATTACHMENT 0x8D20 -#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A - -/* Texture Formats */ -#define GL_RED 0x1903 -#define GL_ALPHA 0x1906 -#define GL_RGB 0x1907 -#define GL_RGBA 0x1908 -#define GL_RGB8 0x8051 -#define GL_RGBA8 0x8058 -#define GL_RGBA4 0x8056 -#define GL_RGB5_A1 0x8057 -#define GL_RGB10_A2_EXT 0x8059 -#define GL_RGBA16 0x805B -#define GL_BGRA 0x80E1 -#define GL_DEPTH_COMPONENT16 0x81A5 -#define GL_DEPTH_COMPONENT24 0x81A6 -#define GL_RG 0x8227 -#define GL_RG8 0x822B -#define GL_RG16 0x822C -#define GL_R16F 0x822D -#define GL_R32F 0x822E -#define GL_RG16F 0x822F -#define GL_RG32F 0x8230 -#define GL_RGBA32F 0x8814 -#define GL_RGBA16F 0x881A -#define GL_DEPTH24_STENCIL8 0x88F0 -#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 -#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 -#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 -#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 -#define GL_SRGB_EXT 0x8C40 -#define GL_SRGB8_EXT 0x8C41 -#define GL_SRGB_ALPHA_EXT 0x8C42 -#define GL_SRGB8_ALPHA8_EXT 0x8C43 -#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F -#define GL_COMPRESSED_RGBA_BPTC_UNORM_EXT 0x8E8C -#define GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT 0x8E8D - -/* EXT_framebuffer_sRGB */ -#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 -#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA - -/* Texture Internal Formats */ -#define GL_DEPTH_COMPONENT 0x1902 -#define GL_DEPTH_STENCIL 0x84F9 - -/* Textures */ -#define GL_TEXTURE_WRAP_S 0x2802 -#define GL_TEXTURE_WRAP_T 0x2803 -#define GL_TEXTURE_WRAP_R 0x8072 -#define GL_TEXTURE_MAG_FILTER 0x2800 -#define GL_TEXTURE_MIN_FILTER 0x2801 -#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE -#define GL_TEXTURE_BASE_LEVEL 0x813C -#define GL_TEXTURE_MAX_LEVEL 0x813D -#define GL_TEXTURE_LOD_BIAS 0x8501 -#define GL_UNPACK_ALIGNMENT 0x0CF5 - -/* Multitexture */ -#define GL_TEXTURE0 0x84C0 -#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 -#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C - -/* Buffer objects */ -#define GL_ARRAY_BUFFER 0x8892 -#define GL_ELEMENT_ARRAY_BUFFER 0x8893 -#define GL_STREAM_DRAW 0x88E0 -#define GL_STATIC_DRAW 0x88E4 -#define GL_MAX_VERTEX_ATTRIBS 0x8869 - -/* Render targets */ -#define GL_FRAMEBUFFER 0x8D40 -#define GL_READ_FRAMEBUFFER 0x8CA8 -#define GL_DRAW_FRAMEBUFFER 0x8CA9 -#define GL_RENDERBUFFER 0x8D41 -#define GL_MAX_DRAW_BUFFERS 0x8824 - -/* Draw Primitives */ -#define GL_POINTS 0x0000 -#define GL_LINES 0x0001 -#define GL_LINE_STRIP 0x0003 -#define GL_TRIANGLES 0x0004 -#define GL_TRIANGLE_STRIP 0x0005 - -/* Query Objects */ -#define GL_QUERY_RESULT 0x8866 -#define GL_QUERY_RESULT_AVAILABLE 0x8867 -#define GL_SAMPLES_PASSED 0x8914 - -/* Multisampling */ -#define GL_MULTISAMPLE 0x809D -#define GL_MAX_SAMPLES 0x8D57 -#define GL_SAMPLE_MASK 0x8E51 -#define GL_SAMPLES 0x80A9 - -/* 3.2 Core Profile */ -#define GL_NUM_EXTENSIONS 0x821D - -/* Debug Source */ -#define GL_DEBUG_SOURCE_API 0x8246 -#define GL_DEBUG_SOURCE_WINDOW_SYSTEM 0x8247 -#define GL_DEBUG_SOURCE_SHADER_COMPILER 0x8248 -#define GL_DEBUG_SOURCE_THIRD_PARTY 0x8249 -#define GL_DEBUG_SOURCE_APPLICATION 0x824A -#define GL_DEBUG_SOURCE_OTHER 0x824B - -/* Debug Type */ -#define GL_DEBUG_TYPE_ERROR 0x824C -#define GL_DEBUG_TYPE_DEPRECATED_BEHAVIOR 0x824D -#define GL_DEBUG_TYPE_UNDEFINED_BEHAVIOR 0x824E -#define GL_DEBUG_TYPE_PORTABILITY 0x824F -#define GL_DEBUG_TYPE_PERFORMANCE 0x8250 -#define GL_DEBUG_TYPE_OTHER 0x8251 - -/* Debug Severity */ -#define GL_DEBUG_SEVERITY_HIGH 0x9146 -#define GL_DEBUG_SEVERITY_MEDIUM 0x9147 -#define GL_DEBUG_SEVERITY_LOW 0x9148 -#define GL_DEBUG_SEVERITY_NOTIFICATION 0x826B - -/* In case this needs to be exported in a certain way... */ -#ifdef _WIN32 /* Windows OpenGL uses stdcall */ -#define GLAPIENTRY __stdcall -#else -#define GLAPIENTRY -#endif - -/* Debug callback typedef */ -typedef void (GLAPIENTRY *DEBUGPROC)( - GLenum source, - GLenum type, - GLuint id, - GLenum severity, - GLsizei length, - const GLchar *message, - const void *userParam -); - -/* Function typedefs */ -#define GL_EXT(ext) -#define GL_PROC(ext, ret, func, parms) \ - typedef ret (GLAPIENTRY *glfntype_##func) parms; -#define GL_PROC_EXT(ext, fallbacl, ret, func, parms) \ - typedef ret (GLAPIENTRY *glfntype_##func) parms; -#include "FNA3D_Driver_OpenGL_glfuncs.h" - -/* glGetString is a bit different since we load it early */ -typedef const GLubyte* (GLAPIENTRY *glfntype_glGetString)(GLenum a); - -#endif /* FNA3D_DRIVER_OPENGL_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL_glfuncs.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL_glfuncs.h deleted file mode 100644 index 3fda58ca..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_OpenGL_glfuncs.h +++ /dev/null @@ -1,186 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* Extensions used by FNA3D */ -GL_EXT(BaseGL) -GL_EXT(CoreGL) -GL_EXT(3DTexture) -GL_EXT(DoublePrecisionDepth) -GL_EXT(OES_single_precision) -GL_EXT(ARB_occlusion_query) -GL_EXT(NonES3) -GL_EXT(NonES3NonCore) -GL_EXT(ARB_framebuffer_object) -GL_EXT(EXT_framebuffer_blit) -GL_EXT(EXT_framebuffer_multisample) -GL_EXT(ARB_internalformat_query) -GL_EXT(ARB_invalidate_subdata) -GL_EXT(ARB_draw_instanced) -GL_EXT(ARB_instanced_arrays) -GL_EXT(ARB_draw_elements_base_vertex) -GL_EXT(EXT_draw_buffers2) -GL_EXT(ARB_texture_multisample) -GL_EXT(KHR_debug) -GL_EXT(GREMEDY_string_marker) - -/* Basic entry points. If you don't have these, you're screwed. */ -GL_PROC(BaseGL, void, glActiveTexture, (GLenum a)) -GL_PROC(BaseGL, void, glBindBuffer, (GLenum a, GLuint b)) -GL_PROC(BaseGL, void, glBindTexture, (GLenum a, GLuint b)) -GL_PROC(BaseGL, void, glBlendColor, (GLfloat a, GLfloat b, GLfloat c, GLfloat d)) -GL_PROC(BaseGL, void, glBlendEquationSeparate, (GLenum a, GLenum b)) -GL_PROC(BaseGL, void, glBlendFuncSeparate, (GLenum a, GLenum b, GLenum c, GLenum d)) -GL_PROC(BaseGL, void, glBufferData, (GLenum a, GLsizeiptr b, const GLvoid *c, GLenum d)) -GL_PROC(BaseGL, void, glBufferSubData, (GLenum a, GLintptr b, GLsizeiptr c, const GLvoid *d)) -GL_PROC(BaseGL, void, glClear, (GLbitfield a)) -GL_PROC(BaseGL, void, glClearColor, (GLclampf a, GLclampf b, GLclampf c, GLclampf d)) -GL_PROC(BaseGL, void, glClearStencil, (GLint s)) -GL_PROC(BaseGL, void, glColorMask, (GLboolean a, GLboolean b, GLboolean c, GLboolean d)) -GL_PROC(BaseGL, void, glDeleteBuffers, (GLsizei a, const GLuint *b)) -GL_PROC(BaseGL, void, glDeleteTextures, (GLsizei a, const GLuint *b)) -GL_PROC(BaseGL, void, glDepthFunc, (GLenum a)) -GL_PROC(BaseGL, void, glDepthMask, (GLboolean a)) -GL_PROC(BaseGL, void, glDisable, (GLenum a)) -GL_PROC(BaseGL, void, glDisableVertexAttribArray, (GLint a)) -GL_PROC(BaseGL, void, glDrawArrays, (GLenum a, GLint b, GLsizei c)) -GL_PROC(BaseGL, void, glDrawBuffers, (GLsizei a, const GLenum *b)) -GL_PROC(BaseGL, void, glDrawRangeElements, (GLenum a, GLuint b, GLuint c, GLsizei d, GLenum e, const GLvoid *f)) -GL_PROC(BaseGL, void, glEnable, (GLenum a)) -GL_PROC(BaseGL, void, glEnableVertexAttribArray, (GLint a)) -GL_PROC(BaseGL, void, glFrontFace, (GLenum a)) -GL_PROC(BaseGL, void, glGenBuffers, (GLint a, GLuint *b)) -GL_PROC(BaseGL, void, glGenTextures, (GLsizei a, GLuint *b)) -GL_PROC(BaseGL, void, glGetIntegerv, (GLenum a, GLint *b)) -GL_PROC(BaseGL, void, glPixelStorei, (GLenum a, GLint b)) -GL_PROC(BaseGL, void, glPolygonOffset, (GLfloat a, GLfloat b)) -GL_PROC(BaseGL, void, glReadPixels, (GLint a, GLint b, GLsizei c, GLsizei d, GLenum e, GLenum f, const GLvoid *g)) -GL_PROC(BaseGL, void, glScissor, (GLint a, GLint b, GLint c, GLint d)) -GL_PROC(BaseGL, void, glStencilFunc, (GLenum a, GLint b, GLint c)) -GL_PROC(BaseGL, void, glStencilFuncSeparate, (GLenum a, GLenum b, GLenum c, GLenum d)) -GL_PROC(BaseGL, void, glStencilOp, (GLenum a, GLenum b, GLenum c)) -GL_PROC(BaseGL, void, glStencilOpSeparate, (GLenum a, GLenum b, GLenum c, GLenum d)) -GL_PROC(BaseGL, void, glStencilMask, (GLint a)) -GL_PROC(BaseGL, void, glCompressedTexImage2D, (GLenum a, GLint b, GLenum c, GLsizei d, GLsizei e, GLint f, GLsizei g, const GLvoid *h)) -GL_PROC(BaseGL, void, glCompressedTexSubImage2D, (GLenum a, GLint b, GLint c, GLint d, GLsizei e, GLsizei f, GLenum g, GLsizei h, const GLvoid *i)) -GL_PROC(BaseGL, void, glTexImage2D, (GLenum a, GLint b, GLint c, GLsizei d, GLsizei e, GLint f, GLenum g, GLenum h, const GLvoid *i)) -GL_PROC(BaseGL, void, glTexParameterf, (GLenum a, GLenum b, GLfloat c)) -GL_PROC(BaseGL, void, glTexParameteri, (GLenum a, GLenum b, GLint c)) -GL_PROC(BaseGL, void, glTexSubImage2D, (GLenum a, GLint b, GLint c, GLint d, GLsizei e, GLsizei f, GLenum g, GLenum h, const GLvoid *i)) -GL_PROC(BaseGL, void, glVertexAttribPointer, (GLuint a, GLint b, GLenum c, GLboolean d, GLsizei e, const GLvoid *f)) -GL_PROC(BaseGL, void, glViewport, (GLint a, GLint b, GLsizei c, GLsizei d)) - -/* Core Profile functions, only screwed if you attempt a core profile mask */ -GL_PROC(CoreGL, void, glBindVertexArray, (GLuint a)) -GL_PROC(CoreGL, void, glDeleteVertexArrays, (GLsizei a, const GLuint *b)) -GL_PROC(CoreGL, void, glGenVertexArrays, (GLsizei a, GLuint *b)) -GL_PROC(CoreGL, const GLubyte*, glGetStringi, (GLenum a, GLuint b)) - -/* Base vertex support makes life WAY easier for batching */ -GL_PROC_EXT(ARB_draw_elements_base_vertex, OES, void, glDrawElementsInstancedBaseVertex, (GLenum a, GLsizei b, GLenum c, const GLvoid *d, GLsizei e, GLint f)) -GL_PROC_EXT(ARB_draw_elements_base_vertex, OES, void, glDrawRangeElementsBaseVertex, (GLenum a, GLuint b, GLuint c, GLsizei d, GLenum e, const GLvoid *f, GLint g)) - -/* These are in every desktop driver and _should_ be in every ES3 driver */ -GL_PROC_EXT(3DTexture, OES, void, glTexImage3D, (GLenum a, GLint b, GLint c, GLsizei d, GLsizei e, GLsizei f, GLint g, GLenum h, GLenum i, const GLvoid *j)) -GL_PROC_EXT(3DTexture, OES, void, glTexSubImage3D, (GLenum a, GLint b, GLint c, GLint d, GLint e, GLsizei f, GLsizei g, GLsizei h, GLenum i, GLenum j, const GLvoid *k)) - -/* For some bizarre reason ES doesn't have double-precision depth range in any spec? */ -GL_PROC(DoublePrecisionDepth, void, glClearDepth, (GLdouble a)) -GL_PROC(DoublePrecisionDepth, void, glDepthRange, (GLdouble a, GLdouble b)) -GL_PROC_EXT(OES_single_precision, OES, void, glClearDepthf, (GLfloat a)) -GL_PROC_EXT(OES_single_precision, OES, void, glDepthRangef, (GLfloat a, GLfloat b)) - -/* This should be in every desktop GL driver, but ES might not have it! */ -GL_PROC(ARB_occlusion_query, void, glBeginQuery, (GLenum a, GLuint b)) -GL_PROC(ARB_occlusion_query, void, glDeleteQueries, (GLsizei a, const GLuint *b)) -GL_PROC(ARB_occlusion_query, void, glEndQuery, (GLenum a)) -GL_PROC(ARB_occlusion_query, void, glGenQueries, (GLsizei a, GLuint *b)) -GL_PROC(ARB_occlusion_query, void, glGetQueryObjectuiv, (GLuint a, GLenum b, GLuint *c)) - -/* These do NOT exist in OpenGL ES. You probably shouldn't ship these anyway. */ -GL_PROC(NonES3, void, glGetBufferSubData, (GLenum a, GLintptr b, GLsizeiptr c, GLvoid *d)) -GL_PROC(NonES3, void, glGetTexImage, (GLenum a, GLint b, GLenum c, GLenum d, GLvoid *e)) -GL_PROC(NonES3, void, glPolygonMode, (GLenum a, GLenum b)) - -/* This is a terrible function for point sprites, don't worry about it */ -GL_PROC(NonES3NonCore, void, glTexEnvi, (GLenum a, GLenum b, GLint c)) - -/* Needed for render targets. We're flexible, but not _that_ flexible. */ -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glBindFramebuffer, (GLenum a, GLuint b)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glBindRenderbuffer, (GLenum a, GLuint b)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glDeleteFramebuffers, (GLsizei a, const GLuint *b)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glDeleteRenderbuffers, (GLsizei a, const GLuint *b)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glFramebufferRenderbuffer, (GLenum a, GLenum b, GLenum c, GLuint d)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glFramebufferTexture2D, (GLenum a, GLenum b, GLenum c, GLuint d, GLint e)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glGenerateMipmap, (GLenum a)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glGenFramebuffers, (GLsizei a, GLuint *b)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glGenRenderbuffers, (GLsizei a, GLuint *b)) -GL_PROC_EXT(ARB_framebuffer_object, EXT, void, glRenderbufferStorage, (GLenum a, GLenum b, GLsizei c, GLsizei d)) - -/* Needed for the faux-backbuffer, this is technically ARB_framebuffer_object */ -GL_PROC_EXT(EXT_framebuffer_blit, EXT, void, glBlitFramebuffer, (GLint a, GLint b, GLint c, GLint d, GLint e, GLint f, GLint g, GLint h, GLbitfield i, GLenum j)) - -/* Multisampling is nice to have, but isn't used all the time, technically ARB_framebuffer_object */ -GL_PROC_EXT(EXT_framebuffer_multisample, EXT, void, glRenderbufferStorageMultisample, (GLenum a, GLsizei b, GLenum c, GLsizei d, GLsizei e)) -GL_PROC(ARB_internalformat_query, void, glGetInternalformativ, (GLenum a, GLenum b, GLenum c, GLsizei d, GLint *e)) - -/* This is mostly needed by ES3, where loads/stores are a huge slowdown */ -GL_PROC(ARB_invalidate_subdata, void, glInvalidateFramebuffer, (GLenum a, GLsizei b, const GLenum *c)) - -/* Hardware instancing is nice to have, but isn't used all the time */ -GL_PROC(ARB_draw_instanced, void, glDrawElementsInstanced, (GLenum a, GLsizei b, GLenum c, const GLvoid *d, GLsizei e)) -GL_PROC(ARB_instanced_arrays, void, glVertexAttribDivisor, (GLuint a, GLuint b)) - -/* Indexed color mask is a weird thing. - * IndexedEXT was introduced in EXT_draw_buffers2, then - * it was introduced in GL 3.0 as "ColorMaski" with no - * extension at all, and OpenGL ES introduced it as - * ColorMaskiEXT via EXT_draw_buffers_indexed and AGAIN - * as ColorMaskiOES via OES_draw_buffers_indexed at the - * exact same time. WTF. - * -flibit - */ -GL_PROC(EXT_draw_buffers2, void, glColorMaski, (GLuint a, GLboolean b, GLboolean c, GLboolean d, GLboolean e)) - -/* Probably used by nobody, honestly */ -GL_PROC(ARB_texture_multisample, void, glSampleMaski, (GLuint a, GLuint b)) - -/* "NOTE: when implemented in an OpenGL ES context, all entry points defined - * by this extension must have a "KHR" suffix. When implemented in an - * OpenGL context, all entry points must have NO suffix, as shown below." - * https://www.khronos.org/registry/OpenGL/extensions/KHR/KHR_debug.txt - */ -GL_PROC_EXT(KHR_debug, KHR, void, glDebugMessageCallback, (DEBUGPROC a, const GLvoid *b)) -GL_PROC_EXT(KHR_debug, KHR, void, glDebugMessageControl, (GLenum a, GLenum b, GLenum c, GLsizei d, const GLuint *e, GLboolean f)) - -/* Nice feature for apitrace */ -GL_PROC(GREMEDY_string_marker, void, glStringMarkerGREMEDY, (GLsizei a, const GLchar *b)) - -/* Redefine these every time you include this header! */ -#undef GL_EXT -#undef GL_PROC -#undef GL_PROC_EXT - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_Vulkan.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_Vulkan.c deleted file mode 100644 index a2a4e769..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_Vulkan.c +++ /dev/null @@ -1,12970 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#if FNA3D_DRIVER_VULKAN - -/* Needed for VK_KHR_portability_subset */ -#define VK_ENABLE_BETA_EXTENSIONS - -#define VK_NO_PROTOTYPES -#include "vulkan/vulkan.h" - -#include "FNA3D_Driver.h" -#include "FNA3D_PipelineCache.h" - -#include -#include - -#define VULKAN_INTERNAL_clamp(val, min, max) SDL_max(min, SDL_min(val, max)) - -/* Global Vulkan Loader Entry Points */ - -static PFN_vkGetInstanceProcAddr vkGetInstanceProcAddr = NULL; - -#define VULKAN_GLOBAL_FUNCTION(name) \ - static PFN_##name name = NULL; -#include "FNA3D_Driver_Vulkan_vkfuncs.h" - -/* Vulkan Extensions */ - -typedef struct VulkanExtensions -{ - /* These extensions are required! */ - - /* Globally supported */ - uint8_t KHR_swapchain; - /* Core since 1.1 */ - uint8_t KHR_maintenance1; - uint8_t KHR_dedicated_allocation; - uint8_t KHR_get_memory_requirements2; - - /* These extensions are optional! */ - - /* Core since 1.2, but requires annoying paperwork to implement */ - uint8_t KHR_driver_properties; - /* EXT, probably not going to be Core */ - uint8_t EXT_vertex_attribute_divisor; - /* Only required for special implementations (i.e. MoltenVK) */ - uint8_t KHR_portability_subset; - /* Vendor-specific extensions */ - uint8_t GGP_frame_token; -} VulkanExtensions; - -static inline uint8_t CheckDeviceExtensions( - VkExtensionProperties *extensions, - uint32_t numExtensions, - VulkanExtensions *supports -) { - uint32_t i; - - SDL_memset(supports, '\0', sizeof(VulkanExtensions)); - for (i = 0; i < numExtensions; i += 1) - { - const char *name = extensions[i].extensionName; - #define CHECK(ext) \ - if (SDL_strcmp(name, "VK_" #ext) == 0) \ - { \ - supports->ext = 1; \ - } - CHECK(KHR_swapchain) - else CHECK(KHR_maintenance1) - else CHECK(KHR_dedicated_allocation) - else CHECK(KHR_get_memory_requirements2) - else CHECK(KHR_driver_properties) - else CHECK(EXT_vertex_attribute_divisor) - else CHECK(KHR_portability_subset) - else CHECK(GGP_frame_token) - #undef CHECK - } - - return ( supports->KHR_swapchain && - supports->KHR_maintenance1 && - supports->KHR_dedicated_allocation && - supports->KHR_get_memory_requirements2 ); -} - -static inline uint32_t GetDeviceExtensionCount(VulkanExtensions *supports) -{ - return ( - supports->KHR_swapchain + - supports->KHR_maintenance1 + - supports->KHR_dedicated_allocation + - supports->KHR_get_memory_requirements2 + - supports->KHR_driver_properties + - supports->EXT_vertex_attribute_divisor + - supports->KHR_portability_subset + - supports->GGP_frame_token - ); -} - -static inline void CreateDeviceExtensionArray( - VulkanExtensions *supports, - const char **extensions -) { - uint8_t cur = 0; - #define CHECK(ext) \ - if (supports->ext) \ - { \ - extensions[cur++] = "VK_" #ext; \ - } - CHECK(KHR_swapchain) - CHECK(KHR_maintenance1) - CHECK(KHR_dedicated_allocation) - CHECK(KHR_get_memory_requirements2) - CHECK(KHR_driver_properties) - CHECK(EXT_vertex_attribute_divisor) - CHECK(KHR_portability_subset) - CHECK(GGP_frame_token) - #undef CHECK -} - -/* Constants/Limits */ - -#define TEXTURE_COUNT MAX_TOTAL_SAMPLERS -#define MAX_MULTISAMPLE_MASK_SIZE 2 -#define MAX_QUERIES 16 -#define MAX_UNIFORM_DESCRIPTOR_SETS 1024 -#define STARTING_ALLOCATION_SIZE 64000000 /* 64MB */ -#define ALLOCATION_INCREMENT 16000000 /* 16MB */ -#define MAX_ALLOCATION_SIZE 256000000 /* 256MB */ -#define FAST_TRANSFER_SIZE 64000000 /* 64MB */ - -/* Should be equivalent to the number of values in FNA3D_PrimitiveType */ -#define PRIMITIVE_TYPES_COUNT 5 - -#define STARTING_SAMPLER_DESCRIPTOR_POOL_SIZE 16 -#define STARTING_TRANSFER_BUFFER_SIZE 8000000 /* 8MB */ - -#define DEFAULT_PIPELINE_CACHE_FILE_NAME "FNA3D_Vulkan_PipelineCache.blob" - -#define WINDOW_SWAPCHAIN_DATA "FNA3D_VulkanSwapchain" - -#define IDENTITY_SWIZZLE \ -{ \ - VK_COMPONENT_SWIZZLE_IDENTITY, \ - VK_COMPONENT_SWIZZLE_IDENTITY, \ - VK_COMPONENT_SWIZZLE_IDENTITY, \ - VK_COMPONENT_SWIZZLE_IDENTITY \ -} - -static const VkComponentMapping RGBA_SWIZZLE = -{ - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_G, - VK_COMPONENT_SWIZZLE_B, - VK_COMPONENT_SWIZZLE_A -}; - -static const uint8_t DEVICE_PRIORITY[] = -{ - 0, /* VK_PHYSICAL_DEVICE_TYPE_OTHER */ - 3, /* VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU */ - 4, /* VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU */ - 2, /* VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU */ - 1 /* VK_PHYSICAL_DEVICE_TYPE_CPU */ -}; - -/* Enumerations */ - -typedef enum VulkanResourceAccessType -{ - /* Reads */ - RESOURCE_ACCESS_NONE, /* For initialization */ - RESOURCE_ACCESS_INDEX_BUFFER, - RESOURCE_ACCESS_VERTEX_BUFFER, - RESOURCE_ACCESS_VERTEX_SHADER_READ_UNIFORM_BUFFER, - RESOURCE_ACCESS_VERTEX_SHADER_READ_SAMPLED_IMAGE, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_UNIFORM_BUFFER, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_SAMPLED_IMAGE, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_COLOR_ATTACHMENT, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_DEPTH_STENCIL_ATTACHMENT, - RESOURCE_ACCESS_COLOR_ATTACHMENT_READ, - RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ, - RESOURCE_ACCESS_TRANSFER_READ, - RESOURCE_ACCESS_HOST_READ, - RESOURCE_ACCESS_PRESENT, - RESOURCE_ACCESS_END_OF_READ, - - /* Writes */ - RESOURCE_ACCESS_VERTEX_SHADER_WRITE, - RESOURCE_ACCESS_FRAGMENT_SHADER_WRITE, - RESOURCE_ACCESS_COLOR_ATTACHMENT_WRITE, - RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE, - RESOURCE_ACCESS_TRANSFER_WRITE, - RESOURCE_ACCESS_HOST_WRITE, - - /* Read-Writes */ - RESOURCE_ACCESS_COLOR_ATTACHMENT_READ_WRITE, - RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_WRITE, - RESOURCE_ACCESS_MEMORY_TRANSFER_READ_WRITE, - RESOURCE_ACCESS_GENERAL, - - /* Count */ - RESOURCE_ACCESS_TYPES_COUNT -} VulkanResourceAccessType; - -typedef enum CreateSwapchainResult -{ - CREATE_SWAPCHAIN_FAIL, - CREATE_SWAPCHAIN_SUCCESS, - CREATE_SWAPCHAIN_SURFACE_ZERO, -} CreateSwapchainResult; - -/* Image Barriers */ - -typedef struct VulkanResourceAccessInfo -{ - VkPipelineStageFlags stageMask; - VkAccessFlags accessMask; - VkImageLayout imageLayout; -} VulkanResourceAccessInfo; - -static const VulkanResourceAccessInfo AccessMap[RESOURCE_ACCESS_TYPES_COUNT] = -{ - /* RESOURCE_ACCESS_NONE */ - { - 0, - 0, - VK_IMAGE_LAYOUT_UNDEFINED - }, - - /* RESOURCE_ACCESS_INDEX_BUFFER */ - { - VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, - VK_ACCESS_INDEX_READ_BIT, - VK_IMAGE_LAYOUT_UNDEFINED - }, - - /* RESOURCE_ACCESS_VERTEX_BUFFER */ - { - VK_PIPELINE_STAGE_VERTEX_INPUT_BIT, - VK_ACCESS_INDEX_READ_BIT, - VK_IMAGE_LAYOUT_UNDEFINED - }, - - /* RESOURCE_ACCESS_VERTEX_SHADER_READ_UNIFORM_BUFFER */ - { - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - VK_ACCESS_SHADER_READ_BIT, - VK_IMAGE_LAYOUT_UNDEFINED - }, - - /* RESOURCE_ACCESS_VERTEX_SHADER_READ_SAMPLED_IMAGE */ - { - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - VK_ACCESS_SHADER_READ_BIT, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL - }, - - /* RESOURCE_ACCESS_FRAGMENT_SHADER_READ_UNIFORM_BUFFER */ - { - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - VK_ACCESS_UNIFORM_READ_BIT, - VK_IMAGE_LAYOUT_UNDEFINED - }, - - /* RESOURCE_ACCESS_FRAGMENT_SHADER_READ_SAMPLED_IMAGE */ - { - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - VK_ACCESS_SHADER_READ_BIT, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL - }, - - /* RESOURCE_ACCESS_FRAGMENT_SHADER_READ_COLOR_ATTACHMENT */ - { - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, - VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL - }, - - /* RESOURCE_ACCESS_FRAGMENT_SHADER_READ_DEPTH_STENCIL_ATTACHMENT */ - { - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL - }, - - /* RESOURCE_ACCESS_COLOR_ATTACHMENT_READ */ - { - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL - }, - - /* RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ */ - { - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL - }, - - /* RESOURCE_ACCESS_TRANSFER_READ */ - { - VK_PIPELINE_STAGE_TRANSFER_BIT, - VK_ACCESS_TRANSFER_READ_BIT, - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL - }, - - /* RESOURCE_ACCESS_HOST_READ */ - { - VK_PIPELINE_STAGE_HOST_BIT, - VK_ACCESS_HOST_READ_BIT, - VK_IMAGE_LAYOUT_GENERAL - }, - - /* RESOURCE_ACCESS_PRESENT */ - { - 0, - 0, - VK_IMAGE_LAYOUT_PRESENT_SRC_KHR - }, - - /* RESOURCE_ACCESS_END_OF_READ */ - { - 0, - 0, - VK_IMAGE_LAYOUT_UNDEFINED - }, - - /* RESOURCE_ACCESS_VERTEX_SHADER_WRITE */ - { - VK_PIPELINE_STAGE_VERTEX_SHADER_BIT, - VK_ACCESS_SHADER_WRITE_BIT, - VK_IMAGE_LAYOUT_GENERAL - }, - - /* RESOURCE_ACCESS_FRAGMENT_SHADER_WRITE */ - { - VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, - VK_ACCESS_SHADER_WRITE_BIT, - VK_IMAGE_LAYOUT_GENERAL - }, - - /* RESOURCE_ACCESS_COLOR_ATTACHMENT_WRITE */ - { - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL - }, - - /* RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE */ - { - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL - }, - - /* RESOURCE_ACCESS_TRANSFER_WRITE */ - { - VK_PIPELINE_STAGE_TRANSFER_BIT, - VK_ACCESS_TRANSFER_WRITE_BIT, - VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL - }, - - /* RESOURCE_ACCESS_HOST_WRITE */ - { - VK_PIPELINE_STAGE_HOST_BIT, - VK_ACCESS_HOST_WRITE_BIT, - VK_IMAGE_LAYOUT_GENERAL - }, - - /* RESOURCE_ACCESS_COLOR_ATTACHMENT_READ_WRITE */ - { - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL - }, - - /* RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_WRITE */ - { - VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT, - VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT, - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL - }, - - /* RESOURCE_ACCESS_MEMORY_TRANSFER_READ_WRITE */ - { - VK_PIPELINE_STAGE_TRANSFER_BIT, - VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT, - VK_IMAGE_LAYOUT_UNDEFINED - }, - - /* RESOURCE_ACCESS_GENERAL */ - { - VK_PIPELINE_STAGE_ALL_COMMANDS_BIT, - VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT, - VK_IMAGE_LAYOUT_GENERAL - } -}; - -/* Shader Resources */ - -typedef struct ShaderResources -{ - VkDescriptorPool *samplerDescriptorPools; - uint32_t samplerDescriptorPoolCount; - uint32_t nextPoolSize; - - VkDescriptorSetLayout samplerLayout; - uint8_t *samplerBindingIndices; - uint32_t samplerCount; - - VkDescriptorSet *inactiveDescriptorSets; - uint32_t inactiveDescriptorSetCount; - uint32_t inactiveDescriptorSetCapacity; - - VkDescriptorSet uniformDescriptorSet; - VkDescriptorBufferInfo uniformBufferInfo; - - /* VK_NULL_HANDLE unless samplerCount is 0 */ - VkDescriptorSet dummySamplerDescriptorSet; -} ShaderResources; - -typedef struct ShaderResourcesHashMap -{ - MOJOSHADER_vkShader *key; - ShaderResources *value; -} ShaderResourcesHashMap; - -typedef struct ShaderResourcesHashArray -{ - ShaderResourcesHashMap *elements; - int32_t count; - int32_t capacity; -} ShaderResourcesHashArray; - -#define NUM_SHADER_RESOURCES_BUCKETS 1031 - -typedef struct ShaderResourcesHashTable -{ - ShaderResourcesHashArray buckets[NUM_SHADER_RESOURCES_BUCKETS]; -} ShaderResourcesHashTable; - -static inline ShaderResources *ShaderResourcesHashTable_Fetch( - ShaderResourcesHashTable *table, - MOJOSHADER_vkShader *key -) { - int32_t i; - uint64_t hashcode = (uint64_t) (size_t) key; - ShaderResourcesHashArray *arr = &table->buckets[hashcode % NUM_SHADER_RESOURCES_BUCKETS]; - - for (i = 0; i < arr->count; i += 1) - { - const MOJOSHADER_vkShader *e = arr->elements[i].key; - if (key == e) - { - return arr->elements[i].value; - } - } - - return NULL; -} - -static inline void ShaderResourcesHashTable_Insert( - ShaderResourcesHashTable *table, - MOJOSHADER_vkShader *key, - ShaderResources *value -) { - uint64_t hashcode = (uint64_t) (size_t) key; - ShaderResourcesHashArray *arr = &table->buckets[hashcode % NUM_SHADER_RESOURCES_BUCKETS]; - - ShaderResourcesHashMap map; - map.key = key; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 2, ShaderResourcesHashMap) - - arr->elements[arr->count] = map; - arr->count += 1; -} - -/* Internal Structures */ - -typedef struct SwapChainSupportDetails -{ - VkSurfaceCapabilitiesKHR capabilities; - VkSurfaceFormatKHR *formats; - uint32_t formatsLength; - VkPresentModeKHR *presentModes; - uint32_t presentModesLength; -} SwapChainSupportDetails; - -/* FIXME: This could be packed better */ -typedef struct PipelineHash -{ - PackedState blendState; - PackedState rasterizerState; - PackedState depthStencilState; - uint32_t vertexBufferBindingsIndex; - FNA3D_PrimitiveType primitiveType; - VkSampleMask sampleMask; - MOJOSHADER_vkShader *vertShader; - MOJOSHADER_vkShader *fragShader; - /* Pipelines have to be compatible with a render pass */ - VkRenderPass renderPass; -} PipelineHash; - -typedef struct PipelineHashMap -{ - PipelineHash key; - VkPipeline value; -} PipelineHashMap; - -typedef struct PipelineHashArray -{ - PipelineHashMap *elements; - int32_t count; - int32_t capacity; -} PipelineHashArray; - -#define NUM_PIPELINE_HASH_BUCKETS 1031 - -typedef struct PipelineHashTable -{ - PipelineHashArray buckets[NUM_PIPELINE_HASH_BUCKETS]; -} PipelineHashTable; - -static inline uint64_t PipelineHashTable_GetHashCode(PipelineHash hash) -{ - /* The algorithm for this hashing function - * is taken from Josh Bloch's "Effective Java". - * (https://stackoverflow.com/a/113600/12492383) - */ - const uint64_t HASH_FACTOR = 97; - uint64_t result = 1; - result = result * HASH_FACTOR + hash.blendState.a; - result = result * HASH_FACTOR + hash.blendState.b; - result = result * HASH_FACTOR + hash.rasterizerState.a; - result = result * HASH_FACTOR + hash.rasterizerState.b; - result = result * HASH_FACTOR + hash.depthStencilState.a; - result = result * HASH_FACTOR + hash.depthStencilState.b; - result = result * HASH_FACTOR + hash.vertexBufferBindingsIndex; - result = result * HASH_FACTOR + hash.primitiveType; - result = result * HASH_FACTOR + hash.sampleMask; - result = result * HASH_FACTOR + (uint64_t) (size_t) hash.vertShader; - result = result * HASH_FACTOR + (uint64_t) (size_t) hash.fragShader; - result = result * HASH_FACTOR + (uint64_t) (size_t) hash.renderPass; - return result; -} - -static inline VkPipeline PipelineHashTable_Fetch( - PipelineHashTable *table, - PipelineHash key -) { - int32_t i; - uint64_t hashcode = PipelineHashTable_GetHashCode(key); - PipelineHashArray *arr = &table->buckets[hashcode % NUM_PIPELINE_HASH_BUCKETS]; - - for (i = 0; i < arr->count; i += 1) - { - const PipelineHash *e = &arr->elements[i].key; - if ( key.blendState.a == e->blendState.a && - key.blendState.b == e->blendState.b && - key.rasterizerState.a == e->rasterizerState.a && - key.rasterizerState.b == e->rasterizerState.b && - key.depthStencilState.a == e->depthStencilState.a && - key.depthStencilState.b == e->depthStencilState.b && - key.vertexBufferBindingsIndex == e->vertexBufferBindingsIndex && - key.primitiveType == e->primitiveType && - key.sampleMask == e->sampleMask && - key.vertShader == e->vertShader && - key.fragShader == e->fragShader && - key.renderPass == e->renderPass ) - { - return arr->elements[i].value; - } - } - - return VK_NULL_HANDLE; -} - -static inline void PipelineHashTable_Insert( - PipelineHashTable *table, - PipelineHash key, - VkPipeline value -) { - uint64_t hashcode = PipelineHashTable_GetHashCode(key); - PipelineHashArray *arr = &table->buckets[hashcode % NUM_PIPELINE_HASH_BUCKETS]; - PipelineHashMap map; - map.key = key; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 2, PipelineHashMap) - - arr->elements[arr->count] = map; - arr->count += 1; -} - -typedef struct RenderPassHash -{ - VkFormat colorAttachmentFormatOne; - VkFormat colorAttachmentFormatTwo; - VkFormat colorAttachmentFormatThree; - VkFormat colorAttachmentFormatFour; - VkFormat depthStencilAttachmentFormat; - uint32_t width; - uint32_t height; - uint32_t multiSampleCount; - uint8_t clearColor; - uint8_t clearDepth; - uint8_t clearStencil; - uint8_t preserveTargetContents; -} RenderPassHash; - -typedef struct RenderPassHashMap -{ - RenderPassHash key; - VkRenderPass value; -} RenderPassHashMap; - -typedef struct RenderPassHashArray -{ - RenderPassHashMap *elements; - int32_t count; - int32_t capacity; -} RenderPassHashArray; - -static inline VkRenderPass RenderPassHashArray_Fetch( - RenderPassHashArray *arr, - RenderPassHash key -) { - int32_t i; - - for (i = 0; i < arr->count; i += 1) - { - const RenderPassHash *e = &arr->elements[i].key; - if ( key.colorAttachmentFormatOne == e->colorAttachmentFormatOne && - key.colorAttachmentFormatTwo == e->colorAttachmentFormatTwo && - key.colorAttachmentFormatThree == e->colorAttachmentFormatThree && - key.colorAttachmentFormatFour == e->colorAttachmentFormatFour && - key.depthStencilAttachmentFormat == e->depthStencilAttachmentFormat && - key.width == e->width && - key.height == e->height && - key.multiSampleCount == e->multiSampleCount && - key.clearColor == e->clearColor && - key.clearDepth == e->clearDepth && - key.clearStencil == e->clearStencil && - key.preserveTargetContents == e->preserveTargetContents ) - { - return arr->elements[i].value; - } - } - - return VK_NULL_HANDLE; -} - -static inline void RenderPassHashArray_Insert( - RenderPassHashArray *arr, - RenderPassHash key, - VkRenderPass value -) { - RenderPassHashMap map; - - map.key = key; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 4, RenderPassHashMap) - - arr->elements[arr->count] = map; - arr->count += 1; -} - -typedef struct FramebufferHash -{ - VkImageView colorAttachmentViews[MAX_RENDERTARGET_BINDINGS]; - VkImageView colorMultiSampleAttachmentViews[MAX_RENDERTARGET_BINDINGS]; - VkImageView depthStencilAttachmentView; - uint32_t width; - uint32_t height; -} FramebufferHash; - -typedef struct FramebufferHashMap -{ - FramebufferHash key; - VkFramebuffer value; -} FramebufferHashMap; - -typedef struct FramebufferHashArray -{ - FramebufferHashMap *elements; - int32_t count; - int32_t capacity; -} FramebufferHashArray; - -static inline VkFramebuffer FramebufferHashArray_Fetch( - FramebufferHashArray *arr, - FramebufferHash key -) { - int32_t i; - - for (i = 0; i < arr->count; i += 1) - { - const FramebufferHash *e = &arr->elements[i].key; - if ( SDL_memcmp(key.colorAttachmentViews, e->colorAttachmentViews, sizeof(key.colorAttachmentViews)) == 0 && - SDL_memcmp(key.colorAttachmentViews, e->colorAttachmentViews, sizeof(key.colorAttachmentViews)) == 0 && - key.depthStencilAttachmentView == e->depthStencilAttachmentView && - key.width == e->width && - key.height == e->height ) - { - return arr->elements[i].value; - } - } - - return VK_NULL_HANDLE; -} - -static inline void FramebufferHashArray_Insert( - FramebufferHashArray *arr, - FramebufferHash key, - VkFramebuffer value -) { - FramebufferHashMap map; - map.key = key; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 4, FramebufferHashMap) - - arr->elements[arr->count] = map; - arr->count += 1; -} - -static inline void FramebufferHashArray_Remove( - FramebufferHashArray *arr, - uint32_t index -) { - if (index != arr->count - 1) - { - arr->elements[index] = arr->elements[arr->count - 1]; - } - - arr->count -= 1; -} - -typedef struct SamplerStateHashMap -{ - PackedState key; - VkSampler value; -} SamplerStateHashMap; - -typedef struct SamplerStateHashArray -{ - SamplerStateHashMap *elements; - int32_t count; - int32_t capacity; -} SamplerStateHashArray; - -static inline VkSampler SamplerStateHashArray_Fetch( - SamplerStateHashArray *arr, - PackedState key -) { - int32_t i; - - for (i = 0; i < arr->count; i += 1) - { - if ( key.a == arr->elements[i].key.a && - key.b == arr->elements[i].key.b ) - { - return arr->elements[i].value; - } - } - - return VK_NULL_HANDLE; -} - -static inline void SamplerStateHashArray_Insert( - SamplerStateHashArray *arr, - PackedState key, - VkSampler value -) { - SamplerStateHashMap map; - map.key.a = key.a; - map.key.b = key.b; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 4, SamplerStateHashMap) - - arr->elements[arr->count] = map; - arr->count += 1; -} - -typedef struct DescriptorSetLayoutHash -{ - VkDescriptorType descriptorType; - uint16_t bitmask; - VkShaderStageFlagBits stageFlag; -} DescriptorSetLayoutHash; - -typedef struct DescriptorSetLayoutHashMap -{ - DescriptorSetLayoutHash key; - VkDescriptorSetLayout value; -} DescriptorSetLayoutHashMap; - -typedef struct DescriptorSetLayoutHashArray -{ - DescriptorSetLayoutHashMap *elements; - int32_t count; - int32_t capacity; -} DescriptorSetLayoutHashArray; - -#define NUM_DESCRIPTOR_SET_LAYOUT_BUCKETS 1031 - -typedef struct DescriptorSetLayoutHashTable -{ - DescriptorSetLayoutHashArray buckets[NUM_DESCRIPTOR_SET_LAYOUT_BUCKETS]; -} DescriptorSetLayoutHashTable; - -static inline uint64_t DescriptorSetLayoutHashTable_GetHashCode(DescriptorSetLayoutHash key) -{ - const uint64_t HASH_FACTOR = 97; - uint64_t result = 1; - result = result * HASH_FACTOR + key.descriptorType; - result = result * HASH_FACTOR + key.bitmask; - result = result * HASH_FACTOR + key.stageFlag; - return result; -} - -static inline VkDescriptorSetLayout DescriptorSetLayoutHashTable_Fetch( - DescriptorSetLayoutHashTable *table, - DescriptorSetLayoutHash key -) { - int32_t i; - uint64_t hashcode = DescriptorSetLayoutHashTable_GetHashCode(key); - DescriptorSetLayoutHashArray *arr = &table->buckets[hashcode % NUM_DESCRIPTOR_SET_LAYOUT_BUCKETS]; - - for (i = 0; i < arr->count; i += 1) - { - const DescriptorSetLayoutHash *e = &arr->elements[i].key; - if ( key.descriptorType == e->descriptorType && - key.bitmask == e->bitmask && - key.stageFlag == e->stageFlag ) - { - return arr->elements[i].value; - } - } - - return VK_NULL_HANDLE; -} - -static inline void DescriptorSetLayoutHashTable_Insert( - DescriptorSetLayoutHashTable *table, - DescriptorSetLayoutHash key, - VkDescriptorSetLayout value -) { - uint64_t hashcode = DescriptorSetLayoutHashTable_GetHashCode(key); - DescriptorSetLayoutHashArray *arr = &table->buckets[hashcode % NUM_DESCRIPTOR_SET_LAYOUT_BUCKETS]; - - DescriptorSetLayoutHashMap map; - map.key = key; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 4, DescriptorSetLayoutHashMap); - - arr->elements[arr->count] = map; - arr->count += 1; -} - -typedef struct PipelineLayoutHash -{ - VkDescriptorSetLayout vertexSamplerLayout; - VkDescriptorSetLayout fragSamplerLayout; - VkDescriptorSetLayout vertexUniformLayout; - VkDescriptorSetLayout fragUniformLayout; -} PipelineLayoutHash; - -typedef struct PipelineLayoutHashMap -{ - PipelineLayoutHash key; - VkPipelineLayout value; -} PipelineLayoutHashMap; - -typedef struct PipelineLayoutHashArray -{ - PipelineLayoutHashMap *elements; - int32_t count; - int32_t capacity; -} PipelineLayoutHashArray; - -#define NUM_PIPELINE_LAYOUT_BUCKETS 1031 - -typedef struct PipelineLayoutHashTable -{ - PipelineLayoutHashArray buckets[NUM_PIPELINE_LAYOUT_BUCKETS]; -} PipelineLayoutHashTable; - -static inline uint64_t PipelineLayoutHashTable_GetHashCode(PipelineLayoutHash key) -{ - const uint64_t HASH_FACTOR = 97; - uint64_t result = 1; - result = result * HASH_FACTOR + (uint64_t) key.vertexSamplerLayout; - result = result * HASH_FACTOR + (uint64_t) key.fragSamplerLayout; - result = result * HASH_FACTOR + (uint64_t) key.vertexUniformLayout; - result = result * HASH_FACTOR + (uint64_t) key.fragUniformLayout; - return result; -} - -static inline VkPipelineLayout PipelineLayoutHashArray_Fetch( - PipelineLayoutHashTable *table, - PipelineLayoutHash key -) { - int32_t i; - uint64_t hashcode = PipelineLayoutHashTable_GetHashCode(key); - PipelineLayoutHashArray *arr = &table->buckets[hashcode % NUM_PIPELINE_LAYOUT_BUCKETS]; - - for (i = 0; i < arr->count; i += 1) - { - const PipelineLayoutHash *e = &arr->elements[i].key; - if ( key.vertexSamplerLayout == e->vertexSamplerLayout && - key.fragSamplerLayout == e->fragSamplerLayout && - key.vertexUniformLayout == e->vertexUniformLayout && - key.fragUniformLayout == e->fragUniformLayout ) - { - return arr->elements[i].value; - } - } - - return VK_NULL_HANDLE; -} - -static inline void PipelineLayoutHashArray_Insert( - PipelineLayoutHashTable *table, - PipelineLayoutHash key, - VkPipelineLayout value -) { - uint64_t hashcode = PipelineLayoutHashTable_GetHashCode(key); - PipelineLayoutHashArray *arr = &table->buckets[hashcode % NUM_PIPELINE_HASH_BUCKETS]; - - PipelineLayoutHashMap map; - map.key = key; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 4, PipelineLayoutHashMap) - - arr->elements[arr->count] = map; - arr->count += 1; -} - -typedef struct VulkanSwapchainData -{ - /* Window surface */ - VkSurfaceKHR surface; - VkSurfaceFormatKHR surfaceFormat; - void *windowHandle; - - /* Swapchain for window surface */ - VkSwapchainKHR swapchain; - VkFormat swapchainFormat; - VkComponentMapping swapchainSwizzle; - VkPresentModeKHR presentMode; - - /* Swapchain images */ - VkExtent2D extent; - VkImage *images; - VkImageView *views; - VulkanResourceAccessType *resourceAccessTypes; - uint32_t imageCount; - - /* Synchronization */ - VkSemaphore imageAvailableSemaphore; - VkSemaphore renderFinishedSemaphore; - VkFence fence; /* owned by command buffer container */ -} VulkanSwapchainData; - -typedef struct VulkanMemoryAllocation VulkanMemoryAllocation; -typedef struct VulkanBuffer VulkanBuffer; -typedef struct VulkanTexture VulkanTexture; - -typedef struct VulkanMemoryFreeRegion -{ - VulkanMemoryAllocation *allocation; - VkDeviceSize offset; - VkDeviceSize size; - uint32_t allocationIndex; - uint32_t sortedIndex; -} VulkanMemoryFreeRegion; - -typedef struct VulkanMemoryUsedRegion -{ - VulkanMemoryAllocation *allocation; - VkDeviceSize offset; - VkDeviceSize size; - VkDeviceSize resourceOffset; /* differs from offset based on alignment */ - VkDeviceSize resourceSize; /* differs from size based on alignment */ - VkDeviceSize alignment; - uint8_t isBuffer; - /* used to copy resource */ - FNA3DNAMELESS union - { - VulkanBuffer *vulkanBuffer; - VulkanTexture *vulkanTexture; - }; -} VulkanMemoryUsedRegion; - -typedef struct VulkanMemorySubAllocator -{ - uint32_t memoryTypeIndex; - VkDeviceSize nextAllocationSize; - VulkanMemoryAllocation **allocations; - uint32_t allocationCount; - VulkanMemoryFreeRegion **sortedFreeRegions; - uint32_t sortedFreeRegionCount; - uint32_t sortedFreeRegionCapacity; -} VulkanMemorySubAllocator; - -struct VulkanMemoryAllocation -{ - VulkanMemorySubAllocator *allocator; - VkDeviceMemory memory; - VkDeviceSize size; - VulkanMemoryUsedRegion **usedRegions; - uint32_t usedRegionCount; - uint32_t usedRegionCapacity; - VulkanMemoryFreeRegion **freeRegions; - uint32_t freeRegionCount; - uint32_t freeRegionCapacity; - uint8_t dedicated; - uint8_t availableForAllocation; - VkDeviceSize freeSpace; - VkDeviceSize usedSpace; - uint8_t *mapPointer; - SDL_mutex *mapLock; -}; - -typedef struct VulkanMemoryAllocator -{ - VulkanMemorySubAllocator subAllocators[VK_MAX_MEMORY_TYPES]; -} VulkanMemoryAllocator; - -struct VulkanTexture /* Cast from FNA3D_Texture* */ -{ - VulkanMemoryUsedRegion *usedRegion; - VkImage image; - VkImageView view; - VkImageView rtViews[6]; - VkExtent2D dimensions; - uint32_t depth; - uint8_t external; - VkFormat surfaceFormat; - uint32_t layerCount; - uint32_t levelCount; - uint8_t isRenderTarget; - VulkanResourceAccessType resourceAccessType; - VkImageCreateInfo imageCreateInfo; /* used for resource copy */ - VkImageViewCreateInfo viewCreateInfo; /* used for resource copy */ - FNA3DNAMELESS union - { - FNA3D_SurfaceFormat colorFormat; - FNA3D_DepthFormat depthStencilFormat; - }; -}; - -static VulkanTexture NullTexture = -{ - (VulkanMemoryUsedRegion*) 0, - (VkImage) 0, - (VkImageView) 0, - { 0, 0, 0, 0, 0, 0 }, - {0, 0}, - 0, - 0, - VK_FORMAT_UNDEFINED, - 0, - RESOURCE_ACCESS_NONE -}; - -struct VulkanBuffer -{ - VkDeviceSize size; - VulkanMemoryUsedRegion *usedRegion; - VkBuffer buffer; - VulkanResourceAccessType resourceAccessType; - VkBufferCreateInfo bufferCreateInfo; /* used for resource copy */ - VkBufferUsageFlags usage; - uint8_t preferDeviceLocal; - uint8_t isTransferBuffer; - uint8_t bound; -}; - -/* To properly support SETDATAOPTIONS_DISCARD the "buffer handle" - * we return is actually a container pointing to a buffer. - * This lets us change out the internal buffer without affecting - * the client or requiring a stall. - * The "discarded" buffers are kept around to avoid memory fragmentation - * being created by buffers that frequently discard. - */ -typedef struct VulkanBufferContainer -{ - VulkanBuffer *vulkanBuffer; - - /* These are all the buffers that have been used by this container. - * If a buffer is bound and then updated with Discard, a new buffer - * will be added to this list. - * These can be reused after they are submitted and command processing is complete. - */ - VulkanBuffer **buffers; - uint32_t bufferCount; - uint32_t bufferCapacity; -} VulkanBufferContainer; - -typedef struct VulkanColorBuffer -{ - VulkanTexture *handle; - VulkanTexture *multiSampleTexture; - uint32_t multiSampleCount; -} VulkanColorBuffer; - -typedef struct VulkanDepthStencilBuffer -{ - VulkanTexture *handle; -} VulkanDepthStencilBuffer; - -typedef struct VulkanRenderbuffer /* Cast from FNA3D_Renderbuffer* */ -{ - VulkanColorBuffer *colorBuffer; - VulkanDepthStencilBuffer *depthBuffer; -} VulkanRenderbuffer; - -typedef struct VulkanEffect /* Cast from FNA3D_Effect* */ -{ - MOJOSHADER_effect *effect; -} VulkanEffect; - -typedef struct VulkanQuery /* Cast from FNA3D_Query* */ -{ - uint32_t index; -} VulkanQuery; - -typedef struct DescriptorSetData -{ - VkDescriptorSet descriptorSet; - ShaderResources *parent; -} DescriptorSetData; - -typedef struct VulkanTransferBuffer -{ - VulkanBuffer *buffer; - VkDeviceSize offset; -} VulkanTransferBuffer; - -typedef struct VulkanTransferBufferPool -{ - VulkanTransferBuffer *fastTransferBuffer; - uint8_t fastTransferBufferAvailable; - - VulkanTransferBuffer **availableSlowTransferBuffers; - uint32_t availableSlowTransferBufferCount; - uint32_t availableSlowTransferBufferCapacity; -} VulkanTransferBufferPool; - -/* Command buffers have various resources associated with them - * that can be freed after the command buffer is fully processed. - */ -typedef struct VulkanCommandBufferContainer -{ - VkCommandBuffer commandBuffer; - VkFence inFlightFence; - - DescriptorSetData *usedDescriptorSetDatas; - uint32_t usedDescriptorSetDataCount; - uint32_t usedDescriptorSetDataCapacity; - - VulkanTransferBuffer **transferBuffers; - uint32_t transferBufferCount; - uint32_t transferBufferCapacity; - - VulkanBuffer **boundBuffers; - uint32_t boundBufferCount; - uint32_t boundBufferCapacity; - - VulkanRenderbuffer **renderbuffersToDestroy; - uint32_t renderbuffersToDestroyCount; - uint32_t renderbuffersToDestroyCapacity; - - VulkanBuffer **buffersToDestroy; - uint32_t buffersToDestroyCount; - uint32_t buffersToDestroyCapacity; - - VulkanEffect **effectsToDestroy; - uint32_t effectsToDestroyCount; - uint32_t effectsToDestroyCapacity; - - VulkanTexture **texturesToDestroy; - uint32_t texturesToDestroyCount; - uint32_t texturesToDestroyCapacity; -} VulkanCommandBufferContainer; - -typedef struct VulkanRenderer -{ - FNA3D_Device *parentDevice; - VkInstance instance; - VkPhysicalDevice physicalDevice; - VkPhysicalDeviceProperties2 physicalDeviceProperties; - VkPhysicalDeviceDriverPropertiesKHR physicalDeviceDriverProperties; - VkDevice logicalDevice; - - uint32_t queueFamilyIndex; - VkQueue unifiedQueue; - - VulkanSwapchainData** swapchainDatas; - uint32_t swapchainDataCount; - uint32_t swapchainDataCapacity; - - PackedVertexBufferBindingsArray vertexBufferBindingsCache; - VkPipelineCache pipelineCache; - - VkRenderPass renderPass; - VkPipeline currentPipeline; - VkPipelineLayout currentPipelineLayout; - int32_t currentVertexBufferBindingsIndex; - - /* Command Buffers */ - VkCommandPool commandPool; - - VulkanCommandBufferContainer **inactiveCommandBufferContainers; - uint32_t inactiveCommandBufferContainerCount; - uint32_t inactiveCommandBufferContainerCapacity; - - VulkanCommandBufferContainer **submittedCommandBufferContainers; - uint32_t submittedCommandBufferContainerCount; - uint32_t submittedCommandBufferContainerCapacity; - - uint32_t currentCommandCount; - VulkanCommandBufferContainer *currentCommandBufferContainer; - uint32_t numActiveCommands; - - /* Special command buffer for performing defrag copies */ - VulkanCommandBufferContainer *defragCommandBufferContainer; - - VulkanTransferBufferPool transferBufferPool; - - /* Queries */ - VkQueryPool queryPool; - int8_t freeQueryIndexStack[MAX_QUERIES]; - int8_t freeQueryIndexStackHead; - - int8_t backBufferIsSRGB; - FNA3D_PresentInterval presentInterval; - - VulkanColorBuffer fauxBackbufferColor; - VulkanTexture *fauxBackbufferMultiSampleColor; - VulkanDepthStencilBuffer fauxBackbufferDepthStencil; - VkFramebuffer fauxBackbufferFramebuffer; - uint32_t fauxBackbufferWidth; - uint32_t fauxBackbufferHeight; - uint32_t fauxBackbufferMultiSampleCount; - - VulkanTexture *colorAttachments[MAX_RENDERTARGET_BINDINGS]; - VulkanTexture *colorMultiSampleAttachments[MAX_RENDERTARGET_BINDINGS]; - FNA3D_CubeMapFace attachmentCubeFaces[MAX_RENDERTARGET_BINDINGS]; - uint32_t multiSampleCount; - uint32_t colorAttachmentCount; - - VulkanTexture *depthStencilAttachment; - FNA3D_DepthFormat currentDepthFormat; - - FNA3D_Viewport viewport; - FNA3D_Rect scissorRect; - - VkSampleMask multiSampleMask[MAX_MULTISAMPLE_MASK_SIZE]; - FNA3D_BlendState blendState; - - FNA3D_DepthStencilState depthStencilState; - FNA3D_RasterizerState rasterizerState; - FNA3D_PrimitiveType currentPrimitiveType; - - VulkanMemoryAllocator *memoryAllocator; - VkPhysicalDeviceMemoryProperties memoryProperties; - VkDeviceSize maxDeviceLocalHeapUsage; - VkDeviceSize deviceLocalHeapUsage; - - uint32_t numVertexBindings; - FNA3D_VertexBufferBinding vertexBindings[MAX_BOUND_VERTEX_BUFFERS]; - FNA3D_VertexElement vertexElements[MAX_BOUND_VERTEX_BUFFERS][MAX_VERTEX_ATTRIBUTES]; - VkBuffer boundVertexBuffers[MAX_BOUND_VERTEX_BUFFERS]; - VkDeviceSize boundVertexBufferOffsets[MAX_BOUND_VERTEX_BUFFERS]; - - int32_t stencilRef; - - int32_t numTextureSlots; - int32_t numVertexTextureSlots; - - VulkanTexture *textures[TEXTURE_COUNT]; - VkSampler samplers[TEXTURE_COUNT]; - uint8_t textureNeedsUpdate[TEXTURE_COUNT]; - uint8_t samplerNeedsUpdate[TEXTURE_COUNT]; - - VulkanBuffer *dummyVertUniformBuffer; - VulkanBuffer *dummyFragUniformBuffer; - - VkSampler dummyVertSamplerState; - VkSampler dummyVertSampler3DState; - VkSampler dummyVertSamplerCubeState; - VkSampler dummyFragSamplerState; - VkSampler dummyFragSampler3DState; - VkSampler dummyFragSamplerCubeState; - - VulkanTexture *dummyVertTexture; - VulkanTexture *dummyVertTexture3D; - VulkanTexture *dummyVertTextureCube; - VulkanTexture *dummyFragTexture; - VulkanTexture *dummyFragTexture3D; - VulkanTexture *dummyFragTextureCube; - - VkDescriptorPool uniformBufferDescriptorPool; - VkDescriptorSetLayout vertexUniformBufferDescriptorSetLayout; - VkDescriptorSetLayout fragUniformBufferDescriptorSetLayout; - VkDescriptorSet dummyVertexUniformBufferDescriptorSet; - VkDescriptorSet dummyFragUniformBufferDescriptorSet; - - uint8_t vertexSamplerDescriptorSetDataNeedsUpdate; - uint8_t fragSamplerDescriptorSetDataNeedsUpdate; - - VkDescriptorSet currentVertexSamplerDescriptorSet; - VkDescriptorSet currentFragSamplerDescriptorSet; - - ShaderResourcesHashTable shaderResourcesHashTable; - DescriptorSetLayoutHashTable descriptorSetLayoutTable; - PipelineLayoutHashTable pipelineLayoutTable; - PipelineHashTable pipelineHashTable; - RenderPassHashArray renderPassArray; - FramebufferHashArray framebufferArray; - SamplerStateHashArray samplerStateArray; - - VkSemaphore defragSemaphore; - - uint8_t bufferDefragInProgress; - uint8_t needDefrag; - uint32_t defragTimer; - uint8_t resourceFreed; - - VkBuffer *defragmentedBuffersToDestroy; - uint32_t defragmentedBuffersToDestroyCount; - uint32_t defragmentedBuffersToDestroyCapacity; - - VkImage *defragmentedImagesToDestroy; - uint32_t defragmentedImagesToDestroyCount; - uint32_t defragmentedImagesToDestroyCapacity; - - VkImageView *defragmentedImageViewsToDestroy; - uint32_t defragmentedImageViewsToDestroyCount; - uint32_t defragmentedImageViewsToDestroyCapacity; - - VulkanMemoryUsedRegion **usedRegionsToDestroy; - uint32_t usedRegionsToDestroyCount; - uint32_t usedRegionsToDestroyCapacity; - - /* MojoShader Interop */ - MOJOSHADER_vkContext *mojoshaderContext; - MOJOSHADER_effect *currentEffect; - const MOJOSHADER_effectTechnique *currentTechnique; - uint32_t currentPass; - - VkShaderModule currentVertShader; - VkShaderModule currentFragShader; - - uint8_t renderPassInProgress; - uint8_t needNewRenderPass; - uint8_t renderTargetBound; - uint8_t needNewPipeline; - - uint8_t shouldClearColorOnBeginPass; - uint8_t shouldClearDepthOnBeginPass; - uint8_t shouldClearStencilOnBeginPass; - uint8_t preserveTargetContents; - uint8_t drawCallMadeThisPass; - - VkClearColorValue clearColorValue; - VkClearDepthStencilValue clearDepthStencilValue; - - /* Depth Formats (may not match the format implied by the name!) */ - VkFormat D16Format; - VkFormat D24Format; - VkFormat D24S8Format; - - /* Capabilities */ - uint8_t supportsDxt1; - uint8_t supportsS3tc; - uint8_t supportsBc7; - uint8_t supportsDebugUtils; - uint8_t supportsSRGBRenderTarget; - uint8_t debugMode; - VulkanExtensions supports; - - uint8_t submitCounter; /* used so we don't clobber data being used by GPU */ - - /* Threading */ - SDL_mutex *commandLock; - SDL_mutex *passLock; - SDL_mutex *disposeLock; - SDL_mutex *allocatorLock; - SDL_mutex *transferLock; - - #define VULKAN_INSTANCE_FUNCTION(name) \ - PFN_##name name; - #define VULKAN_DEVICE_FUNCTION(name) \ - PFN_##name name; - #include "FNA3D_Driver_Vulkan_vkfuncs.h" -} VulkanRenderer; - -typedef struct VulkanCleanupData -{ - VulkanRenderer *renderer; - VulkanCommandBufferContainer *vulkanCommandBufferContainer; -} VulkanCleanupData; - -/* Command Buffer Recording Macro */ - -#define RECORD_CMD(cmdCall) \ - SDL_LockMutex(renderer->commandLock); \ - if (renderer->currentCommandBufferContainer == NULL) \ - { \ - VULKAN_INTERNAL_BeginCommandBuffer(renderer); \ - } \ - cmdCall; \ - renderer->numActiveCommands += 1; \ - SDL_UnlockMutex(renderer->commandLock); - -/* XNA->Vulkan Translation Arrays */ - -static VkIndexType XNAToVK_IndexType[] = -{ - VK_INDEX_TYPE_UINT16, /* FNA3D_INDEXELEMENTSIZE_16BIT */ - VK_INDEX_TYPE_UINT32 /* FNA3D_INDEXELEMENTSIZE_32BIT */ -}; - -static inline VkSampleCountFlagBits XNAToVK_SampleCount(int32_t sampleCount) -{ - if (sampleCount <= 1) - { - return VK_SAMPLE_COUNT_1_BIT; - } - else if (sampleCount == 2) - { - return VK_SAMPLE_COUNT_2_BIT; - } - else if (sampleCount <= 4) - { - return VK_SAMPLE_COUNT_4_BIT; - } - else if (sampleCount <= 8) - { - return VK_SAMPLE_COUNT_8_BIT; - } - else if (sampleCount <= 16) - { - return VK_SAMPLE_COUNT_16_BIT; - } - else if (sampleCount <= 32) - { - return VK_SAMPLE_COUNT_32_BIT; - } - else if (sampleCount <= 64) - { - return VK_SAMPLE_COUNT_64_BIT; - } - else - { - FNA3D_LogWarn("Unexpected sample count: %d", sampleCount); - return VK_SAMPLE_COUNT_1_BIT; - } -} - -static VkComponentMapping XNAToVK_SurfaceSwizzle[] = -{ - IDENTITY_SWIZZLE, /* SurfaceFormat.Color */ - { /* SurfaceFormat.Bgr565 */ - VK_COMPONENT_SWIZZLE_B, - VK_COMPONENT_SWIZZLE_G, - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_ONE - }, - IDENTITY_SWIZZLE, /* SurfaceFormat.Bgra5551 */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Bgra4444 */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Dxt1 */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Dxt3 */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Dxt5 */ - { /* SurfaceFormat.NormalizedByte2 */ - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_G, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE - }, - IDENTITY_SWIZZLE, /* SurfaceFormat.NormalizedByte4 */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Rgba1010102 */ - { /* SurfaceFormat.Rg32 */ - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_G, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE - }, - IDENTITY_SWIZZLE, /* SurfaceFormat.Rgba64 */ - { /* SurfaceFormat.Alpha8 */ - VK_COMPONENT_SWIZZLE_ZERO, - VK_COMPONENT_SWIZZLE_ZERO, - VK_COMPONENT_SWIZZLE_ZERO, - VK_COMPONENT_SWIZZLE_R - }, - { /* SurfaceFormat.Single */ - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE - }, - { /* SurfaceFormat.Vector2 */ - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_G, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE - }, - IDENTITY_SWIZZLE, /* SurfaceFormat.Vector4 */ - { /* SurfaceFormat.HalfSingle */ - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE - }, - { /* SurfaceFormat.HalfVector2 */ - VK_COMPONENT_SWIZZLE_R, - VK_COMPONENT_SWIZZLE_G, - VK_COMPONENT_SWIZZLE_ONE, - VK_COMPONENT_SWIZZLE_ONE - }, - IDENTITY_SWIZZLE, /* SurfaceFormat.HalfVector4 */ - IDENTITY_SWIZZLE, /* SurfaceFormat.HdrBlendable */ - IDENTITY_SWIZZLE, /* SurfaceFormat.ColorBgraEXT */ - IDENTITY_SWIZZLE, /* SurfaceFormat.ColorSrgbEXT */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Dxt5SrgbEXT */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Bc7EXT */ - IDENTITY_SWIZZLE, /* SurfaceFormat.Bc7SrgbEXT */ -}; - -static VkFormat XNAToVK_SurfaceFormat[] = -{ - VK_FORMAT_R8G8B8A8_UNORM, /* SurfaceFormat.Color */ - VK_FORMAT_R5G6B5_UNORM_PACK16, /* SurfaceFormat.Bgr565 */ - VK_FORMAT_A1R5G5B5_UNORM_PACK16, /* SurfaceFormat.Bgra5551 */ - VK_FORMAT_B4G4R4A4_UNORM_PACK16, /* SurfaceFormat.Bgra4444 */ - VK_FORMAT_BC1_RGBA_UNORM_BLOCK, /* SurfaceFormat.Dxt1 */ - VK_FORMAT_BC2_UNORM_BLOCK, /* SurfaceFormat.Dxt3 */ - VK_FORMAT_BC3_UNORM_BLOCK, /* SurfaceFormat.Dxt5 */ - VK_FORMAT_R8G8_SNORM, /* SurfaceFormat.NormalizedByte2 */ - VK_FORMAT_R8G8B8A8_SNORM, /* SurfaceFormat.NormalizedByte4 */ - VK_FORMAT_A2R10G10B10_UNORM_PACK32, /* SurfaceFormat.Rgba1010102 */ - VK_FORMAT_R16G16_UNORM, /* SurfaceFormat.Rg32 */ - VK_FORMAT_R16G16B16A16_UNORM, /* SurfaceFormat.Rgba64 */ - VK_FORMAT_R8_UNORM, /* SurfaceFormat.Alpha8 */ - VK_FORMAT_R32_SFLOAT, /* SurfaceFormat.Single */ - VK_FORMAT_R32G32_SFLOAT, /* SurfaceFormat.Vector2 */ - VK_FORMAT_R32G32B32A32_SFLOAT, /* SurfaceFormat.Vector4 */ - VK_FORMAT_R16_SFLOAT, /* SurfaceFormat.HalfSingle */ - VK_FORMAT_R16G16_SFLOAT, /* SurfaceFormat.HalfVector2 */ - VK_FORMAT_R16G16B16A16_SFLOAT, /* SurfaceFormat.HalfVector4 */ - VK_FORMAT_R16G16B16A16_SFLOAT, /* SurfaceFormat.HdrBlendable */ - VK_FORMAT_B8G8R8A8_UNORM, /* SurfaceFormat.ColorBgraEXT */ - VK_FORMAT_R8G8B8A8_SRGB, /* SurfaceFormat.ColorSrgbEXT */ - VK_FORMAT_BC3_SRGB_BLOCK, /* SurfaceFormat.Dxt5SrgbEXT */ - VK_FORMAT_BC7_UNORM_BLOCK, /* SurfaceFormat.Bc7EXT */ - VK_FORMAT_BC7_SRGB_BLOCK, /* SurfaceFormat.Bc7SrgbEXT */ -}; - -static inline VkFormat XNAToVK_DepthFormat( - VulkanRenderer *renderer, - FNA3D_DepthFormat format -) { - switch (format) - { - case FNA3D_DEPTHFORMAT_D16: - return renderer->D16Format; - case FNA3D_DEPTHFORMAT_D24: - return renderer->D24Format; - case FNA3D_DEPTHFORMAT_D24S8: - return renderer->D24S8Format; - default: - return VK_FORMAT_UNDEFINED; - } -} - -static inline float XNAToVK_DepthBiasScale(VkFormat format) -{ - switch (format) - { - case VK_FORMAT_D16_UNORM: - return (float) ((1 << 16) - 1); - - case VK_FORMAT_D24_UNORM_S8_UINT: - return (float) ((1 << 24) - 1); - - case VK_FORMAT_D32_SFLOAT: - case VK_FORMAT_D32_SFLOAT_S8_UINT: - return (float) ((1 << 23) - 1); - - default: - return 0.0f; - } -} - -static inline uint8_t DepthFormatContainsStencil(VkFormat format) -{ - switch (format) - { - case VK_FORMAT_D16_UNORM: - case VK_FORMAT_D32_SFLOAT: - return 0; - case VK_FORMAT_D24_UNORM_S8_UINT: - case VK_FORMAT_D32_SFLOAT_S8_UINT: - return 1; - default: - SDL_assert(0 && "Invalid depth pixel format"); - return 0; - } -} - -static inline uint8_t IsDepthFormat(VkFormat format) -{ - return - format == VK_FORMAT_D16_UNORM || - format == VK_FORMAT_D16_UNORM_S8_UINT || - format == VK_FORMAT_D24_UNORM_S8_UINT || - format == VK_FORMAT_D32_SFLOAT || - format == VK_FORMAT_D32_SFLOAT_S8_UINT; -} - -static VkBlendFactor XNAToVK_BlendFactor[] = -{ - VK_BLEND_FACTOR_ONE, /* FNA3D_BLEND_ONE */ - VK_BLEND_FACTOR_ZERO, /* FNA3D_BLEND_ZERO */ - VK_BLEND_FACTOR_SRC_COLOR, /* FNA3D_BLEND_SOURCECOLOR */ - VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR, /* FNA3D_BLEND_INVERSESOURCECOLOR */ - VK_BLEND_FACTOR_SRC_ALPHA, /* FNA3D_BLEND_SOURCEALPHA */ - VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA, /* FNA3D_BLEND_INVERSESOURCEALPHA */ - VK_BLEND_FACTOR_DST_COLOR, /* FNA3D_BLEND_DESTINATIONCOLOR */ - VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR, /* FNA3D_BLEND_INVERSEDESTINATIONCOLOR */ - VK_BLEND_FACTOR_DST_ALPHA, /* FNA3D_BLEND_DESTINATIONALPHA */ - VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA, /* FNA3D_BLEND_INVERSEDESTINATIONALPHA */ - VK_BLEND_FACTOR_CONSTANT_COLOR, /* FNA3D_BLEND_BLENDFACTOR */ - VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, /* FNA3D_BLEND_INVERSEBLENDFACTOR */ - VK_BLEND_FACTOR_SRC_ALPHA_SATURATE /* FNA3D_BLEND_SOURCEALPHASATURATION */ -}; - -static VkBlendOp XNAToVK_BlendOp[] = -{ - VK_BLEND_OP_ADD, /* FNA3D_BLENDFUNCTION_ADD */ - VK_BLEND_OP_SUBTRACT, /* FNA3D_BLENDFUNCTION_SUBTRACT */ - VK_BLEND_OP_REVERSE_SUBTRACT, /* FNA3D_BLENDFUNCTION_REVERSESUBTRACT */ - VK_BLEND_OP_MAX, /* FNA3D_BLENDFUNCTION_MAX */ - VK_BLEND_OP_MIN /* FNA3D_BLENDFUNCTION_MIN */ -}; - -static VkPolygonMode XNAToVK_PolygonMode[] = -{ - VK_POLYGON_MODE_FILL, /* FNA3D_FILLMODE_SOLID */ - VK_POLYGON_MODE_LINE /* FNA3D_FILLMODE_WIREFRAME */ -}; - -static VkCullModeFlags XNAToVK_CullMode[] = -{ - VK_CULL_MODE_NONE, /* FNA3D_CULLMODE_NONE */ - VK_CULL_MODE_FRONT_BIT, /* FNA3D_CULLMODE_CULLCLOCKWISEFACE */ - VK_CULL_MODE_BACK_BIT /* FNA3D_CULLMODE_CULLCOUNTERCLOCKWISEFACE */ -}; - -static VkPrimitiveTopology XNAToVK_Topology[] = -{ - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST, /* FNA3D_PRIMITIVETYPE_TRIANGLELIST */ - VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP, /* FNA3D_PRIMITIVETYPE_TRIANGLESTRIP */ - VK_PRIMITIVE_TOPOLOGY_LINE_LIST, /* FNA3D_PRIMITIVETYPE_LINELIST */ - VK_PRIMITIVE_TOPOLOGY_LINE_STRIP, /* FNA3D_PRIMITIVETYPE_LINESTRIP */ - VK_PRIMITIVE_TOPOLOGY_POINT_LIST /* FNA3D_PRIMITIVETYPE_POINTLIST_EXT */ -}; - -static VkSamplerAddressMode XNAToVK_SamplerAddressMode[] = -{ - VK_SAMPLER_ADDRESS_MODE_REPEAT, /* FNA3D_TEXTUREADDRESSMODE_WRAP */ - VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE, /* FNA3D_TEXTUREADDRESSMODE_CLAMP */ - VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT /* FNA3D_TEXTUREADDRESSMODE_MIRROR */ -}; - -static VkFilter XNAToVK_MagFilter[] = -{ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_LINEAR */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_POINT */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_ANISOTROPIC */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_LINEAR_MIPPOINT */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_POINT_MIPLINEAR */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPLINEAR */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPPOINT */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPLINEAR */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPPOINT */ -}; - -static VkSamplerMipmapMode XNAToVK_MipFilter[] = -{ - VK_SAMPLER_MIPMAP_MODE_LINEAR, /* FNA3D_TEXTUREFILTER_LINEAR */ - VK_SAMPLER_MIPMAP_MODE_NEAREST, /* FNA3D_TEXTUREFILTER_POINT */ - VK_SAMPLER_MIPMAP_MODE_LINEAR, /* FNA3D_TEXTUREFILTER_ANISOTROPIC */ - VK_SAMPLER_MIPMAP_MODE_NEAREST, /* FNA3D_TEXTUREFILTER_LINEAR_MIPPOINT */ - VK_SAMPLER_MIPMAP_MODE_LINEAR, /* FNA3D_TEXTUREFILTER_POINT_MIPLINEAR */ - VK_SAMPLER_MIPMAP_MODE_LINEAR, /* FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPLINEAR */ - VK_SAMPLER_MIPMAP_MODE_NEAREST, /* FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPPOINT */ - VK_SAMPLER_MIPMAP_MODE_LINEAR, /* FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPLINEAR */ - VK_SAMPLER_MIPMAP_MODE_NEAREST, /* FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPPOINT */ -}; - -static VkFilter XNAToVK_MinFilter[] = -{ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_LINEAR */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_POINT */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_ANISOTROPIC */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_LINEAR_MIPPOINT */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_POINT_MIPLINEAR */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPLINEAR */ - VK_FILTER_LINEAR, /* FNA3D_TEXTUREFILTER_MINLINEAR_MAGPOINT_MIPPOINT */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPLINEAR */ - VK_FILTER_NEAREST, /* FNA3D_TEXTUREFILTER_MINPOINT_MAGLINEAR_MIPPOINT */ -}; - -static VkCompareOp XNAToVK_CompareOp[] = -{ - VK_COMPARE_OP_ALWAYS, /* FNA3D_COMPAREFUNCTION_ALWAYS */ - VK_COMPARE_OP_NEVER, /* FNA3D_COMPAREFUNCTION_NEVER */ - VK_COMPARE_OP_LESS, /* FNA3D_COMPAREFUNCTION_LESS */ - VK_COMPARE_OP_LESS_OR_EQUAL, /* FNA3D_COMPAREFUNCTION_LESSEQUAL */ - VK_COMPARE_OP_EQUAL, /* FNA3D_COMPAREFUNCTION_EQUAL */ - VK_COMPARE_OP_GREATER_OR_EQUAL, /* FNA3D_COMPAREFUNCTION_GREATEREQUAL */ - VK_COMPARE_OP_GREATER, /* FNA3D_COMPAREFUNCTION_GREATER */ - VK_COMPARE_OP_NOT_EQUAL /* FNA3D_COMPAREFUNCTION_NOTEQUAL */ -}; - -static VkStencilOp XNAToVK_StencilOp[] = -{ - VK_STENCIL_OP_KEEP, /* FNA3D_STENCILOPERATION_KEEP */ - VK_STENCIL_OP_ZERO, /* FNA3D_STENCILOPERATION_ZERO */ - VK_STENCIL_OP_REPLACE, /* FNA3D_STENCILOPERATION_REPLACE */ - VK_STENCIL_OP_INCREMENT_AND_WRAP, /* FNA3D_STENCILOPERATION_INCREMENT */ - VK_STENCIL_OP_DECREMENT_AND_WRAP, /* FNA3D_STENCILOPERATION_DECREMENT */ - VK_STENCIL_OP_INCREMENT_AND_CLAMP, /* FNA3D_STENCILOPERATION_INCREMENTSATURATION */ - VK_STENCIL_OP_DECREMENT_AND_CLAMP, /* FNA3D_STENCILOPERATION_DECREMENTSATURATION */ - VK_STENCIL_OP_INVERT /* FNA3D_STENCILOPERATION_INVERT */ -}; - -static VkFormat XNAToVK_VertexAttribType[] = -{ - VK_FORMAT_R32_SFLOAT, /* FNA3D_VERTEXELEMENTFORMAT_SINGLE */ - VK_FORMAT_R32G32_SFLOAT, /* FNA3D_VERTEXELEMENTFORMAT_VECTOR2 */ - VK_FORMAT_R32G32B32_SFLOAT, /* FNA3D_VERTEXELEMENTFORMAT_VECTOR3 */ - VK_FORMAT_R32G32B32A32_SFLOAT, /* FNA3D_VERTEXELEMENTFORMAT_VECTOR4 */ - VK_FORMAT_R8G8B8A8_UNORM, /* FNA3D_VERTEXELEMENTFORMAT_COLOR */ - VK_FORMAT_R8G8B8A8_USCALED, /* FNA3D_VERTEXELEMENTFORMAT_BYTE4 */ - VK_FORMAT_R16G16_SSCALED, /* FNA3D_VERTEXELEMENTFORMAT_SHORT2 */ - VK_FORMAT_R16G16B16A16_SSCALED, /* FNA3D_VERTEXELEMENTFORMAT_SHORT4 */ - VK_FORMAT_R16G16_SNORM, /* FNA3D_VERTEXELEMENTFORMAT_NORMALIZEDSHORT2 */ - VK_FORMAT_R16G16B16A16_SNORM, /* FNA3D_VERTEXELEMENTFORMAT_NORMALIZEDSHORT4 */ - VK_FORMAT_R16G16_SFLOAT, /* FNA3D_VERTEXELEMENTFORMAT_HALFVECTOR2 */ - VK_FORMAT_R16G16B16A16_SFLOAT /* FNA3D_VERTEXELEMENTFORMAT_HALFVECTOR4 */ -}; - -/* Error Handling */ - -static inline const char* VkErrorMessages(VkResult code) -{ - #define ERR_TO_STR(e) \ - case e: return #e; - switch (code) - { - ERR_TO_STR(VK_ERROR_OUT_OF_HOST_MEMORY) - ERR_TO_STR(VK_ERROR_OUT_OF_DEVICE_MEMORY) - ERR_TO_STR(VK_ERROR_FRAGMENTED_POOL) - ERR_TO_STR(VK_ERROR_OUT_OF_POOL_MEMORY) - ERR_TO_STR(VK_ERROR_INITIALIZATION_FAILED) - ERR_TO_STR(VK_ERROR_LAYER_NOT_PRESENT) - ERR_TO_STR(VK_ERROR_EXTENSION_NOT_PRESENT) - ERR_TO_STR(VK_ERROR_FEATURE_NOT_PRESENT) - ERR_TO_STR(VK_ERROR_TOO_MANY_OBJECTS) - ERR_TO_STR(VK_ERROR_DEVICE_LOST) - ERR_TO_STR(VK_ERROR_INCOMPATIBLE_DRIVER) - ERR_TO_STR(VK_ERROR_OUT_OF_DATE_KHR) - ERR_TO_STR(VK_ERROR_SURFACE_LOST_KHR) - ERR_TO_STR(VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT) - ERR_TO_STR(VK_SUBOPTIMAL_KHR) - default: return "Unhandled VkResult!"; - } - #undef ERR_TO_STR -} - -#define VULKAN_ERROR_CHECK(res, fn, ret) \ - if (res != VK_SUCCESS) \ - { \ - FNA3D_LogError("%s %s", #fn, VkErrorMessages(res)); \ - return ret; \ - } - -/* Forward Declarations */ - -static void VULKAN_GetBackbufferSize( - FNA3D_Renderer *driverData, - int32_t *w, - int32_t *h -); - -static void VULKAN_GetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -); - -static void VULKAN_INTERNAL_BufferMemoryBarrier( - VulkanRenderer *renderer, - VulkanResourceAccessType nextResourceAccessType, - VkBuffer buffer, - VulkanResourceAccessType *resourceAccessType -); - -static void VULKAN_INTERNAL_ImageMemoryBarrier( - VulkanRenderer *renderer, - VulkanResourceAccessType nextAccess, - VkImageAspectFlags aspectMask, - uint32_t baseLayer, - uint32_t layerCount, - uint32_t baseLevel, - uint32_t levelCount, - uint8_t discardContents, - VkImage image, - VulkanResourceAccessType *resourceAccessType -); - -static void VULKAN_INTERNAL_MarkBufferAsBound( - VulkanRenderer *renderer, - VulkanBuffer *vulkanBuffer -); - -static void VULKAN_INTERNAL_MarkBufferForDestroy( - VulkanRenderer *renderer, - VulkanBuffer *vulkanBuffer -); - -static CreateSwapchainResult VULKAN_INTERNAL_CreateSwapchain(VulkanRenderer* renderer, void* windowHandle); -static void VULKAN_INTERNAL_RecreateSwapchain(VulkanRenderer *renderer, void *windowHandle); - -static void VULKAN_INTERNAL_MaybeEndRenderPass(VulkanRenderer *renderer); - -static void VULKAN_INTERNAL_FlushCommands(VulkanRenderer *renderer, uint8_t sync); - -/* Vulkan: Internal Implementation */ - -/* Vulkan: Extensions */ - -static inline uint8_t SupportsInstanceExtension( - const char *ext, - VkExtensionProperties *availableExtensions, - uint32_t numAvailableExtensions -) { - uint32_t i; - for (i = 0; i < numAvailableExtensions; i += 1) - { - if (SDL_strcmp(ext, availableExtensions[i].extensionName) == 0) - { - return 1; - } - } - return 0; -} - -static uint8_t VULKAN_INTERNAL_CheckInstanceExtensions( - const char **requiredExtensions, - uint32_t requiredExtensionsLength, - uint8_t *supportsDebugUtils -) { - uint32_t extensionCount, i; - VkExtensionProperties *availableExtensions; - uint8_t allExtensionsSupported = 1; - - vkEnumerateInstanceExtensionProperties( - NULL, - &extensionCount, - NULL - ); - availableExtensions = SDL_malloc( - extensionCount * sizeof(VkExtensionProperties) - ); - vkEnumerateInstanceExtensionProperties( - NULL, - &extensionCount, - availableExtensions - ); - - for (i = 0; i < requiredExtensionsLength; i += 1) - { - if (!SupportsInstanceExtension( - requiredExtensions[i], - availableExtensions, - extensionCount - )) { - allExtensionsSupported = 0; - break; - } - } - - /* This is optional, but nice to have! */ - *supportsDebugUtils = SupportsInstanceExtension( - VK_EXT_DEBUG_UTILS_EXTENSION_NAME, - availableExtensions, - extensionCount - ); - - SDL_free(availableExtensions); - return allExtensionsSupported; -} - -static uint8_t VULKAN_INTERNAL_CheckDeviceExtensions( - VulkanRenderer *renderer, - VkPhysicalDevice physicalDevice, - VulkanExtensions *physicalDeviceExtensions -) { - uint32_t extensionCount; - VkExtensionProperties *availableExtensions; - uint8_t allExtensionsSupported; - - renderer->vkEnumerateDeviceExtensionProperties( - physicalDevice, - NULL, - &extensionCount, - NULL - ); - availableExtensions = (VkExtensionProperties*) SDL_malloc( - extensionCount * sizeof(VkExtensionProperties) - ); - renderer->vkEnumerateDeviceExtensionProperties( - physicalDevice, - NULL, - &extensionCount, - availableExtensions - ); - - allExtensionsSupported = CheckDeviceExtensions( - availableExtensions, - extensionCount, - physicalDeviceExtensions - ); - - SDL_free(availableExtensions); - return allExtensionsSupported; -} - -/* Vulkan: Validation Layers */ - -static uint8_t VULKAN_INTERNAL_CheckValidationLayers( - const char** validationLayers, - uint32_t validationLayersLength -) { - uint32_t layerCount; - VkLayerProperties *availableLayers; - uint32_t i, j; - uint8_t layerFound; - - vkEnumerateInstanceLayerProperties(&layerCount, NULL); - availableLayers = (VkLayerProperties*) SDL_malloc( - layerCount * sizeof(VkLayerProperties) - ); - vkEnumerateInstanceLayerProperties(&layerCount, availableLayers); - - for (i = 0; i < validationLayersLength; i += 1) - { - layerFound = 0; - - for (j = 0; j < layerCount; j += 1) - { - if (SDL_strcmp(validationLayers[i], availableLayers[j].layerName) == 0) - { - layerFound = 1; - break; - } - } - - if (!layerFound) - { - break; - } - } - - SDL_free(availableLayers); - return layerFound; -} - -/* Vulkan: Device Feature Queries */ - -static uint8_t VULKAN_INTERNAL_QuerySwapChainSupport( - VulkanRenderer *renderer, - VkPhysicalDevice physicalDevice, - VkSurfaceKHR surface, - SwapChainSupportDetails *outputDetails -) { - VkResult result; - VkBool32 supportsPresent; - - renderer->vkGetPhysicalDeviceSurfaceSupportKHR( - physicalDevice, - renderer->queueFamilyIndex, - surface, - &supportsPresent - ); - - if (!supportsPresent) - { - FNA3D_LogWarn("This surface does not support presenting!"); - return 0; - } - - /* Initialize these in case anything fails */ - outputDetails->formatsLength = 0; - outputDetails->presentModesLength = 0; - - /* Run the device surface queries */ - result = renderer->vkGetPhysicalDeviceSurfaceCapabilitiesKHR( - physicalDevice, - surface, - &outputDetails->capabilities - ); - VULKAN_ERROR_CHECK(result, vkGetPhysicalDeviceSurfaceCapabilitiesKHR, 0) - - if (!(outputDetails->capabilities.supportedCompositeAlpha & VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR)) - { - FNA3D_LogWarn("Opaque presentation unsupported! Expect weird transparency bugs!"); - } - - result = renderer->vkGetPhysicalDeviceSurfaceFormatsKHR( - physicalDevice, - surface, - &outputDetails->formatsLength, - NULL - ); - VULKAN_ERROR_CHECK(result, vkGetPhysicalDeviceSurfaceFormatsKHR, 0) - result = renderer->vkGetPhysicalDeviceSurfacePresentModesKHR( - physicalDevice, - surface, - &outputDetails->presentModesLength, - NULL - ); - VULKAN_ERROR_CHECK(result, vkGetPhysicalDeviceSurfacePresentModesKHR, 0) - - /* Generate the arrays, if applicable */ - if (outputDetails->formatsLength != 0) - { - outputDetails->formats = (VkSurfaceFormatKHR*) SDL_malloc( - sizeof(VkSurfaceFormatKHR) * outputDetails->formatsLength - ); - - if (!outputDetails->formats) - { - SDL_OutOfMemory(); - return 0; - } - - result = renderer->vkGetPhysicalDeviceSurfaceFormatsKHR( - physicalDevice, - surface, - &outputDetails->formatsLength, - outputDetails->formats - ); - if (result != VK_SUCCESS) - { - FNA3D_LogError( - "vkGetPhysicalDeviceSurfaceFormatsKHR: %s", - VkErrorMessages(result) - ); - - SDL_free(outputDetails->formats); - return 0; - } - } - if (outputDetails->presentModesLength != 0) - { - outputDetails->presentModes = (VkPresentModeKHR*) SDL_malloc( - sizeof(VkPresentModeKHR) * outputDetails->presentModesLength - ); - - if (!outputDetails->presentModes) - { - SDL_OutOfMemory(); - return 0; - } - - result = renderer->vkGetPhysicalDeviceSurfacePresentModesKHR( - physicalDevice, - surface, - &outputDetails->presentModesLength, - outputDetails->presentModes - ); - if (result != VK_SUCCESS) - { - FNA3D_LogError( - "vkGetPhysicalDeviceSurfacePresentModesKHR: %s", - VkErrorMessages(result) - ); - - SDL_free(outputDetails->formats); - SDL_free(outputDetails->presentModes); - return 0; - } - } - - /* If we made it here, all the queries were successfull. This does NOT - * necessarily mean there are any supported formats or present modes! - */ - return 1; -} - -static uint8_t VULKAN_INTERNAL_ChooseSwapSurfaceFormat( - VkFormat desiredFormat, - VkSurfaceFormatKHR *availableFormats, - uint32_t availableFormatsLength, - VkSurfaceFormatKHR *outputFormat -) { - uint32_t i; - for (i = 0; i < availableFormatsLength; i += 1) - { - if ( availableFormats[i].format == desiredFormat && - availableFormats[i].colorSpace == VK_COLOR_SPACE_SRGB_NONLINEAR_KHR ) - { - *outputFormat = availableFormats[i]; - return 1; - } - } - return 0; -} - -static uint8_t VULKAN_INTERNAL_ChooseSwapPresentMode( - FNA3D_PresentInterval desiredPresentInterval, - VkPresentModeKHR *availablePresentModes, - uint32_t availablePresentModesLength, - VkPresentModeKHR *outputPresentMode -) { - #define CHECK_MODE(m) \ - for (i = 0; i < availablePresentModesLength; i += 1) \ - { \ - if (availablePresentModes[i] == m) \ - { \ - *outputPresentMode = m; \ - FNA3D_LogInfo("Using " #m "!"); \ - return 1; \ - } \ - } \ - FNA3D_LogInfo(#m " unsupported."); - - uint32_t i; - if ( desiredPresentInterval == FNA3D_PRESENTINTERVAL_DEFAULT || - desiredPresentInterval == FNA3D_PRESENTINTERVAL_ONE ) - { - if (SDL_GetHintBoolean("FNA3D_ENABLE_LATESWAPTEAR", 0)) - { - CHECK_MODE(VK_PRESENT_MODE_FIFO_RELAXED_KHR) - } - else if (SDL_GetHintBoolean("FNA3D_VULKAN_FORCE_MAILBOX_VSYNC", 0)) - { - CHECK_MODE(VK_PRESENT_MODE_MAILBOX_KHR) - } - else - { - *outputPresentMode = VK_PRESENT_MODE_FIFO_KHR; - return 1; - } - } - else if (desiredPresentInterval == FNA3D_PRESENTINTERVAL_IMMEDIATE) - { - CHECK_MODE(VK_PRESENT_MODE_IMMEDIATE_KHR) - - /* Some implementations have mailbox in place of immediate. */ - FNA3D_LogInfo("Fall back to VK_PRESENT_MODE_MAILBOX_KHR."); - CHECK_MODE(VK_PRESENT_MODE_MAILBOX_KHR) - } - else if (desiredPresentInterval == FNA3D_PRESENTINTERVAL_TWO) - { - FNA3D_LogError("FNA3D_PRESENTINTERVAL_TWO not supported in Vulkan"); - return 0; - } - else - { - FNA3D_LogError( - "Unrecognized PresentInterval: %d", - desiredPresentInterval - ); - return 0; - } - - #undef CHECK_MODE - - FNA3D_LogInfo("Fall back to VK_PRESENT_MODE_FIFO_KHR."); - *outputPresentMode = VK_PRESENT_MODE_FIFO_KHR; - return 1; -} - -static uint8_t VULKAN_INTERNAL_FindMemoryType( - VulkanRenderer *renderer, - uint32_t typeFilter, - VkMemoryPropertyFlags requiredProperties, - VkMemoryPropertyFlags ignoredProperties, - uint32_t *memoryTypeIndex -) { - uint32_t i; - - for (i = *memoryTypeIndex; i < renderer->memoryProperties.memoryTypeCount; i += 1) - { - if ( (typeFilter & (1 << i)) && - (renderer->memoryProperties.memoryTypes[i].propertyFlags & requiredProperties) == requiredProperties && - (renderer->memoryProperties.memoryTypes[i].propertyFlags & ignoredProperties) == 0 ) - { - *memoryTypeIndex = i; - return 1; - } - } - - FNA3D_LogWarn( - "Failed to find memory type %X, required %X, ignored %X", - typeFilter, - requiredProperties, - ignoredProperties - ); - return 0; -} - -static uint8_t VULKAN_INTERNAL_IsDeviceSuitable( - VulkanRenderer *renderer, - VkPhysicalDevice physicalDevice, - VulkanExtensions *physicalDeviceExtensions, - VkSurfaceKHR surface, - uint32_t *queueFamilyIndex, - uint8_t *deviceRank -) { - uint32_t queueFamilyCount, queueFamilyRank, queueFamilyBest; - SwapChainSupportDetails swapchainSupportDetails; - VkQueueFamilyProperties *queueProps; - VkBool32 supportsPresent; - uint8_t querySuccess; - VkPhysicalDeviceProperties deviceProperties; - uint32_t i; - - /* Get the device rank before doing any checks, in case one fails. - * Note: If no dedicated device exists, one that supports our features - * would be fine - */ - renderer->vkGetPhysicalDeviceProperties( - physicalDevice, - &deviceProperties - ); - if (*deviceRank < DEVICE_PRIORITY[deviceProperties.deviceType]) - { - /* This device outranks the best device we've found so far! - * This includes a dedicated GPU that has less features than an - * integrated GPU, because this is a freak case that is almost - * never intentionally desired by the end user - */ - *deviceRank = DEVICE_PRIORITY[deviceProperties.deviceType]; - } - else if (*deviceRank > DEVICE_PRIORITY[deviceProperties.deviceType]) - { - /* Device is outranked by a previous device, don't even try to - * run a query and reset the rank to avoid overwrites - */ - *deviceRank = 0; - return 0; - } - - if (!VULKAN_INTERNAL_CheckDeviceExtensions( - renderer, - physicalDevice, - physicalDeviceExtensions - )) { - return 0; - } - - renderer->vkGetPhysicalDeviceQueueFamilyProperties( - physicalDevice, - &queueFamilyCount, - NULL - ); - - queueProps = (VkQueueFamilyProperties*) SDL_stack_alloc( - VkQueueFamilyProperties, - queueFamilyCount - ); - renderer->vkGetPhysicalDeviceQueueFamilyProperties( - physicalDevice, - &queueFamilyCount, - queueProps - ); - - queueFamilyBest = 0; - *queueFamilyIndex = UINT32_MAX; - for (i = 0; i < queueFamilyCount; i += 1) - { - renderer->vkGetPhysicalDeviceSurfaceSupportKHR( - physicalDevice, - i, - surface, - &supportsPresent - ); - if ( !supportsPresent || - !(queueProps[i].queueFlags & VK_QUEUE_GRAPHICS_BIT) ) - { - /* Not a graphics family, ignore. */ - continue; - } - - /* The queue family bitflags are kind of annoying. - * - * We of course need a graphics family, but we ideally want the - * _primary_ graphics family. The spec states that at least one - * graphics family must also be a compute family, so generally - * drivers make that the first one. But hey, maybe something - * genuinely can't do compute or something, and FNA doesn't - * need it, so we'll be open to a non-compute queue family. - * - * Additionally, it's common to see the primary queue family - * have the transfer bit set, which is great! But this is - * actually optional; it's impossible to NOT have transfers in - * graphics/compute but it _is_ possible for a graphics/compute - * family, even the primary one, to just decide not to set the - * bitflag. Admittedly, a driver may want to isolate transfer - * queues to a dedicated family so that queues made solely for - * transfers can have an optimized DMA queue. - * - * That, or the driver author got lazy and decided not to set - * the bit. Looking at you, Android. - * - * -flibit - */ - if (queueProps[i].queueFlags & VK_QUEUE_COMPUTE_BIT) - { - if (queueProps[i].queueFlags & VK_QUEUE_TRANSFER_BIT) - { - /* Has all attribs! */ - queueFamilyRank = 3; - } - else - { - /* Probably has a DMA transfer queue family */ - queueFamilyRank = 2; - } - } - else - { - /* Just a graphics family, probably has something better */ - queueFamilyRank = 1; - } - if (queueFamilyRank > queueFamilyBest) - { - *queueFamilyIndex = i; - queueFamilyBest = queueFamilyRank; - } - } - - SDL_stack_free(queueProps); - - if (*queueFamilyIndex == UINT32_MAX) - { - /* Somehow no graphics queues existed. Compute-only device? */ - return 0; - } - - /* FIXME: Need better structure for checking vs storing support details */ - querySuccess = VULKAN_INTERNAL_QuerySwapChainSupport( - renderer, - physicalDevice, - surface, - &swapchainSupportDetails - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - - return ( querySuccess && - swapchainSupportDetails.formatsLength > 0 && - swapchainSupportDetails.presentModesLength > 0 ); -} - -/* Vulkan: vkInstance/vkDevice Creation */ - -static VkBool32 VKAPI_PTR VULKAN_INTERNAL_DebugCallback( - VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, - VkDebugUtilsMessageTypeFlagsEXT messageTypes, - const VkDebugUtilsMessengerCallbackDataEXT *pCallbackData, - void* pUserData -) { - void (*logFunc)(const char *fmt, ...); - if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT) - { - logFunc = FNA3D_LogError; - } - else if (messageSeverity >= VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT) - { - logFunc = FNA3D_LogWarn; - } - else - { - logFunc = FNA3D_LogInfo; - } - logFunc("VULKAN DEBUG: %s", pCallbackData->pMessage); - return VK_FALSE; -} - -static uint8_t VULKAN_INTERNAL_CreateInstance( - VulkanRenderer *renderer, - FNA3D_PresentationParameters *presentationParameters -) { - VkResult vulkanResult; - VkApplicationInfo appInfo; - const char **instanceExtensionNames; - uint32_t instanceExtensionCount; - VkInstanceCreateInfo createInfo; - VkDebugUtilsMessengerCreateInfoEXT debugMessengerCreateInfo; - static const char *layerNames[] = { "VK_LAYER_KHRONOS_validation" }; - - appInfo.sType = VK_STRUCTURE_TYPE_APPLICATION_INFO; - appInfo.pNext = NULL; - appInfo.pApplicationName = NULL; - appInfo.applicationVersion = 0; - appInfo.pEngineName = "FNA3D"; - appInfo.engineVersion = FNA3D_COMPILED_VERSION; - appInfo.apiVersion = VK_MAKE_VERSION(1, 0, 0); - - if (!SDL_Vulkan_GetInstanceExtensions( - (SDL_Window*) presentationParameters->deviceWindowHandle, - &instanceExtensionCount, - NULL - )) { - FNA3D_LogWarn( - "SDL_Vulkan_GetInstanceExtensions(): getExtensionCount: %s", - SDL_GetError() - ); - - return 0; - } - - /* Extra space for the following extensions: - * VK_KHR_get_physical_device_properties2 - * VK_EXT_debug_utils - */ - instanceExtensionNames = SDL_stack_alloc( - const char*, - instanceExtensionCount + 2 - ); - - if (!SDL_Vulkan_GetInstanceExtensions( - (SDL_Window*) presentationParameters->deviceWindowHandle, - &instanceExtensionCount, - instanceExtensionNames - )) { - FNA3D_LogWarn( - "SDL_Vulkan_GetInstanceExtensions(): %s", - SDL_GetError() - ); - goto create_instance_fail; - } - - /* Core since 1.1 */ - instanceExtensionNames[instanceExtensionCount++] = - VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME; - - if (!VULKAN_INTERNAL_CheckInstanceExtensions( - instanceExtensionNames, - instanceExtensionCount, - &renderer->supportsDebugUtils - )) { - FNA3D_LogWarn( - "Required Vulkan instance extensions not supported" - ); - goto create_instance_fail; - } - - if (renderer->debugMode) - { - if (renderer->supportsDebugUtils) - { - /* Append the debug extension to the end */ - instanceExtensionNames[instanceExtensionCount++] = - VK_EXT_DEBUG_UTILS_EXTENSION_NAME; - - debugMessengerCreateInfo.sType = - VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT; - debugMessengerCreateInfo.pNext = NULL; - debugMessengerCreateInfo.flags = 0; - debugMessengerCreateInfo.messageSeverity = ( - VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT - ); - debugMessengerCreateInfo.messageType = ( - VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT | - VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT - ); - debugMessengerCreateInfo.pfnUserCallback = VULKAN_INTERNAL_DebugCallback; - debugMessengerCreateInfo.pUserData = NULL; - } - else - { - FNA3D_LogWarn( - "%s is not supported!", - VK_EXT_DEBUG_UTILS_EXTENSION_NAME - ); - } - } - - createInfo.sType = VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO; - createInfo.pNext = NULL; - createInfo.flags = 0; - createInfo.pApplicationInfo = &appInfo; - createInfo.ppEnabledLayerNames = layerNames; - createInfo.enabledExtensionCount = instanceExtensionCount; - createInfo.ppEnabledExtensionNames = instanceExtensionNames; - if (renderer->debugMode) - { - createInfo.enabledLayerCount = SDL_arraysize(layerNames); - if (VULKAN_INTERNAL_CheckValidationLayers( - layerNames, - createInfo.enabledLayerCount - )) { - FNA3D_LogInfo("Vulkan validation enabled! Expect debug-level performance!"); - } - else - { - FNA3D_LogWarn("Validation layers not found, continuing without validation"); - createInfo.enabledLayerCount = 0; - } - - if (renderer->supportsDebugUtils) - { - createInfo.pNext = &debugMessengerCreateInfo; - } - } - else - { - createInfo.enabledLayerCount = 0; - } - - vulkanResult = vkCreateInstance(&createInfo, NULL, &renderer->instance); - if (vulkanResult != VK_SUCCESS) - { - FNA3D_LogWarn( - "vkCreateInstance failed: %s", - VkErrorMessages(vulkanResult) - ); - goto create_instance_fail; - } - - SDL_stack_free((char*) instanceExtensionNames); - return 1; - -create_instance_fail: - SDL_stack_free((char*) instanceExtensionNames); - return 0; -} - -static uint8_t VULKAN_INTERNAL_DeterminePhysicalDevice(VulkanRenderer *renderer, VkSurfaceKHR surface) -{ - VkResult vulkanResult; - VkPhysicalDevice *physicalDevices; - VulkanExtensions *physicalDeviceExtensions; - uint32_t physicalDeviceCount, i, suitableIndex; - uint32_t queueFamilyIndex, suitableQueueFamilyIndex; - VkDeviceSize deviceLocalHeapSize; - const char *deviceLocalHeapUsageFactorStr; - float deviceLocalHeapUsageFactor = 1.0f; - uint8_t deviceRank, highestRank; - - vulkanResult = renderer->vkEnumeratePhysicalDevices( - renderer->instance, - &physicalDeviceCount, - NULL - ); - VULKAN_ERROR_CHECK(vulkanResult, vkEnumeratePhysicalDevices, 0) - - if (physicalDeviceCount == 0) - { - FNA3D_LogWarn("Failed to find any GPUs with Vulkan support"); - return 0; - } - - physicalDevices = SDL_stack_alloc(VkPhysicalDevice, physicalDeviceCount); - physicalDeviceExtensions = SDL_stack_alloc(VulkanExtensions, physicalDeviceCount); - - vulkanResult = renderer->vkEnumeratePhysicalDevices( - renderer->instance, - &physicalDeviceCount, - physicalDevices - ); - - /* This should be impossible to hit, but from what I can tell this can - * be triggerd not because the array is too small, but because there - * were drivers that turned out to be bogus, so this is the loader's way - * of telling us that the list is now smaller than expected :shrug: - */ - if (vulkanResult == VK_INCOMPLETE) - { - FNA3D_LogWarn("vkEnumeratePhysicalDevices returned VK_INCOMPLETE, will keep trying anyway..."); - vulkanResult = VK_SUCCESS; - } - - if (vulkanResult != VK_SUCCESS) - { - FNA3D_LogWarn( - "vkEnumeratePhysicalDevices failed: %s", - VkErrorMessages(vulkanResult) - ); - SDL_stack_free(physicalDevices); - SDL_stack_free(physicalDeviceExtensions); - return 0; - } - - /* Any suitable device will do, but we'd like the best */ - suitableIndex = -1; - highestRank = 0; - for (i = 0; i < physicalDeviceCount; i += 1) - { - deviceRank = highestRank; - if (VULKAN_INTERNAL_IsDeviceSuitable( - renderer, - physicalDevices[i], - &physicalDeviceExtensions[i], - surface, - &queueFamilyIndex, - &deviceRank - )) { - /* Use this for rendering. - * Note that this may override a previous device that - * supports rendering, but shares the same device rank. - */ - suitableIndex = i; - suitableQueueFamilyIndex = queueFamilyIndex; - highestRank = deviceRank; - } - else if (deviceRank > highestRank) - { - /* In this case, we found a... "realer?" GPU, - * but it doesn't actually support our Vulkan. - * We should disqualify all devices below as a - * result, because if we don't we end up - * ignoring real hardware and risk using - * something like LLVMpipe instead! - * -flibit - */ - suitableIndex = -1; - highestRank = deviceRank; - } - } - - if (suitableIndex != -1) - { - renderer->supports = physicalDeviceExtensions[suitableIndex]; - renderer->physicalDevice = physicalDevices[suitableIndex]; - renderer->queueFamilyIndex = suitableQueueFamilyIndex; - } - else - { - SDL_stack_free(physicalDevices); - SDL_stack_free(physicalDeviceExtensions); - return 0; - } - - renderer->physicalDeviceProperties.sType = - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2; - if (renderer->supports.KHR_driver_properties) - { - renderer->physicalDeviceDriverProperties.sType = - VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR; - renderer->physicalDeviceDriverProperties.pNext = NULL; - - renderer->physicalDeviceProperties.pNext = - &renderer->physicalDeviceDriverProperties; - } - else - { - renderer->physicalDeviceProperties.pNext = NULL; - } - - renderer->vkGetPhysicalDeviceProperties2KHR( - renderer->physicalDevice, - &renderer->physicalDeviceProperties - ); - - renderer->vkGetPhysicalDeviceMemoryProperties( - renderer->physicalDevice, - &renderer->memoryProperties - ); - - deviceLocalHeapUsageFactorStr = SDL_GetHint("FNA3D_VULKAN_DEVICE_LOCAL_HEAP_USAGE_FACTOR"); - if (deviceLocalHeapUsageFactorStr != NULL) - { - double factor = SDL_atof(deviceLocalHeapUsageFactorStr); - if (factor > 0.0 && factor < 1.0) - { - deviceLocalHeapUsageFactor = factor; - } - - deviceLocalHeapSize = 0; - for (i = 0; i < renderer->memoryProperties.memoryHeapCount; i += 1) - { - if ( renderer->memoryProperties.memoryHeaps[i].flags & - VK_MEMORY_HEAP_DEVICE_LOCAL_BIT ) - { - if (renderer->memoryProperties.memoryHeaps[i].size > deviceLocalHeapSize) - { - deviceLocalHeapSize = renderer->memoryProperties.memoryHeaps[i].size; - } - } - } - - renderer->maxDeviceLocalHeapUsage = deviceLocalHeapSize * deviceLocalHeapUsageFactor; - } - else - { - /* Don't even attempt to track this, let the driver do the work */ - renderer->maxDeviceLocalHeapUsage = UINT64_MAX; - } - - renderer->deviceLocalHeapUsage = 0; - - SDL_stack_free(physicalDevices); - SDL_stack_free(physicalDeviceExtensions); - return 1; -} - -static uint8_t VULKAN_INTERNAL_CreateLogicalDevice(VulkanRenderer *renderer) -{ - VkResult vulkanResult; - VkDeviceCreateInfo deviceCreateInfo; - VkPhysicalDeviceFeatures deviceFeatures; - VkPhysicalDevicePortabilitySubsetFeaturesKHR portabilityFeatures; - const char **deviceExtensions; - - VkDeviceQueueCreateInfo queueCreateInfo; - float queuePriority = 1.0f; - - queueCreateInfo.sType = - VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO; - queueCreateInfo.pNext = NULL; - queueCreateInfo.flags = 0; - queueCreateInfo.queueFamilyIndex = renderer->queueFamilyIndex; - queueCreateInfo.queueCount = 1; - queueCreateInfo.pQueuePriorities = &queuePriority; - - /* specifying used device features */ - - SDL_zero(deviceFeatures); - deviceFeatures.occlusionQueryPrecise = VK_TRUE; - deviceFeatures.fillModeNonSolid = VK_TRUE; - deviceFeatures.samplerAnisotropy = VK_TRUE; - - /* Creating the logical device */ - - deviceCreateInfo.sType = VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO; - if (renderer->supports.KHR_portability_subset) - { - portabilityFeatures.sType = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR; - portabilityFeatures.pNext = NULL; - portabilityFeatures.constantAlphaColorBlendFactors = VK_FALSE; - portabilityFeatures.events = VK_FALSE; - portabilityFeatures.imageViewFormatReinterpretation = VK_FALSE; - portabilityFeatures.imageViewFormatSwizzle = VK_TRUE; - portabilityFeatures.imageView2DOn3DImage = VK_FALSE; - portabilityFeatures.multisampleArrayImage = VK_FALSE; - portabilityFeatures.mutableComparisonSamplers = VK_FALSE; - portabilityFeatures.pointPolygons = VK_FALSE; - portabilityFeatures.samplerMipLodBias = VK_FALSE; /* Technically should be true, but eh */ - portabilityFeatures.separateStencilMaskRef = VK_FALSE; - portabilityFeatures.shaderSampleRateInterpolationFunctions = VK_FALSE; - portabilityFeatures.tessellationIsolines = VK_FALSE; - portabilityFeatures.tessellationPointMode = VK_FALSE; - portabilityFeatures.triangleFans = VK_FALSE; - portabilityFeatures.vertexAttributeAccessBeyondStride = VK_FALSE; - deviceCreateInfo.pNext = &portabilityFeatures; - } - else - { - deviceCreateInfo.pNext = NULL; - } - deviceCreateInfo.flags = 0; - deviceCreateInfo.queueCreateInfoCount = 1; - deviceCreateInfo.pQueueCreateInfos = &queueCreateInfo; - deviceCreateInfo.enabledLayerCount = 0; - deviceCreateInfo.ppEnabledLayerNames = NULL; - deviceCreateInfo.enabledExtensionCount = GetDeviceExtensionCount( - &renderer->supports - ); - deviceExtensions = SDL_stack_alloc( - const char*, - deviceCreateInfo.enabledExtensionCount - ); - CreateDeviceExtensionArray(&renderer->supports, deviceExtensions); - deviceCreateInfo.ppEnabledExtensionNames = deviceExtensions; - deviceCreateInfo.pEnabledFeatures = &deviceFeatures; - - vulkanResult = renderer->vkCreateDevice( - renderer->physicalDevice, - &deviceCreateInfo, - NULL, - &renderer->logicalDevice - ); - SDL_stack_free(deviceExtensions); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateDevice, 0) - - /* Load vkDevice entry points */ - - #define VULKAN_DEVICE_FUNCTION(name) \ - renderer->name = (PFN_##name) \ - renderer->vkGetDeviceProcAddr( \ - renderer->logicalDevice, \ - #name \ - ); - #include "FNA3D_Driver_Vulkan_vkfuncs.h" - - renderer->vkGetDeviceQueue( - renderer->logicalDevice, - renderer->queueFamilyIndex, - 0, - &renderer->unifiedQueue - ); - - return 1; -} - -/* Vulkan: Command Buffers */ - -static VulkanCommandBufferContainer* VULKAN_INTERNAL_AllocateCommandBuffer( - VulkanRenderer *renderer, - uint8_t fenceSignaled -) { - VkCommandBufferAllocateInfo allocateInfo; - VkFenceCreateInfo fenceCreateInfo; - VkResult result; - VulkanCommandBufferContainer *vulkanCommandBufferContainer = SDL_malloc(sizeof(VulkanCommandBufferContainer)); - - allocateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO; - allocateInfo.pNext = NULL; - allocateInfo.commandPool = renderer->commandPool; - allocateInfo.commandBufferCount = 1; - allocateInfo.level = VK_COMMAND_BUFFER_LEVEL_PRIMARY; - - result = renderer->vkAllocateCommandBuffers( - renderer->logicalDevice, - &allocateInfo, - &vulkanCommandBufferContainer->commandBuffer - ); - VULKAN_ERROR_CHECK(result, vkAllocateCommandBuffers, NULL) - - fenceCreateInfo.sType = VK_STRUCTURE_TYPE_FENCE_CREATE_INFO; - fenceCreateInfo.pNext = NULL; - fenceCreateInfo.flags = fenceSignaled ? VK_FENCE_CREATE_SIGNALED_BIT : 0; - - renderer->vkCreateFence( - renderer->logicalDevice, - &fenceCreateInfo, - NULL, - &vulkanCommandBufferContainer->inFlightFence - ); - - /* Transfer buffer tracking */ - - vulkanCommandBufferContainer->transferBufferCapacity = 0; - vulkanCommandBufferContainer->transferBufferCount = 0; - vulkanCommandBufferContainer->transferBuffers = NULL; - - /* Descriptor set tracking */ - - vulkanCommandBufferContainer->usedDescriptorSetDataCapacity = 16; - vulkanCommandBufferContainer->usedDescriptorSetDataCount = 0; - vulkanCommandBufferContainer->usedDescriptorSetDatas = SDL_malloc( - vulkanCommandBufferContainer->usedDescriptorSetDataCapacity * sizeof(DescriptorSetData) - ); - - /* Bound buffer tracking */ - - vulkanCommandBufferContainer->boundBufferCapacity = 4; - vulkanCommandBufferContainer->boundBufferCount = 0; - vulkanCommandBufferContainer->boundBuffers = SDL_malloc( - vulkanCommandBufferContainer->boundBufferCapacity * sizeof(VulkanBuffer*) - ); - - /* Destroyed resources tracking */ - - vulkanCommandBufferContainer->renderbuffersToDestroyCapacity = 16; - vulkanCommandBufferContainer->renderbuffersToDestroyCount = 0; - - vulkanCommandBufferContainer->renderbuffersToDestroy = (VulkanRenderbuffer**) SDL_malloc( - sizeof(VulkanRenderbuffer*) * - vulkanCommandBufferContainer->renderbuffersToDestroyCapacity - ); - - vulkanCommandBufferContainer->buffersToDestroyCapacity = 16; - vulkanCommandBufferContainer->buffersToDestroyCount = 0; - - vulkanCommandBufferContainer->buffersToDestroy = (VulkanBuffer**) SDL_malloc( - sizeof(VulkanBuffer*) * - vulkanCommandBufferContainer->buffersToDestroyCapacity - ); - - vulkanCommandBufferContainer->effectsToDestroyCapacity = 16; - vulkanCommandBufferContainer->effectsToDestroyCount = 0; - - vulkanCommandBufferContainer->effectsToDestroy = (VulkanEffect**) SDL_malloc( - sizeof(VulkanEffect*) * - vulkanCommandBufferContainer->effectsToDestroyCapacity - ); - - vulkanCommandBufferContainer->texturesToDestroyCapacity = 16; - vulkanCommandBufferContainer->texturesToDestroyCount = 0; - - vulkanCommandBufferContainer->texturesToDestroy = (VulkanTexture**) SDL_malloc( - sizeof(VulkanTexture*) * - vulkanCommandBufferContainer->texturesToDestroyCapacity - ); - - return vulkanCommandBufferContainer; -} - -static void VULKAN_INTERNAL_BeginCommandBuffer(VulkanRenderer *renderer) -{ - VkCommandBufferBeginInfo beginInfo; - VkResult result; - - beginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - beginInfo.pNext = NULL; - beginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - beginInfo.pInheritanceInfo = NULL; - - SDL_LockMutex(renderer->commandLock); - - /* If we are out of unused command buffers, allocate some more */ - if (renderer->inactiveCommandBufferContainerCount == 0) - { - renderer->inactiveCommandBufferContainers[renderer->inactiveCommandBufferContainerCount] = - VULKAN_INTERNAL_AllocateCommandBuffer(renderer, 0); - - renderer->inactiveCommandBufferContainerCount += 1; - } - - renderer->currentCommandBufferContainer = - renderer->inactiveCommandBufferContainers[renderer->inactiveCommandBufferContainerCount - 1]; - - renderer->inactiveCommandBufferContainerCount -= 1; - - result = renderer->vkBeginCommandBuffer( - renderer->currentCommandBufferContainer->commandBuffer, - &beginInfo - ); - - SDL_UnlockMutex(renderer->commandLock); - - VULKAN_ERROR_CHECK(result, vkBeginCommandBuffer,) -} - -static void VULKAN_INTERNAL_EndCommandBuffer( - VulkanRenderer *renderer, - uint8_t startNext, - uint8_t allowFlush -) { - VkResult result; - - if (renderer->renderPassInProgress) - { - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - renderer->needNewRenderPass = 1; - } - - SDL_LockMutex(renderer->commandLock); - - result = renderer->vkEndCommandBuffer( - renderer->currentCommandBufferContainer->commandBuffer - ); - - SDL_UnlockMutex(renderer->commandLock); - - VULKAN_ERROR_CHECK(result, vkEndCommandBuffer,) - - renderer->currentCommandBufferContainer = NULL; - renderer->numActiveCommands = 0; - - if (allowFlush) - { - /* TODO: Figure out how to properly submit commands mid-frame */ - } - - if (startNext) - { - VULKAN_INTERNAL_BeginCommandBuffer(renderer); - } -} - -/* Vulkan: Memory Allocation */ - -static inline VkDeviceSize VULKAN_INTERNAL_NextHighestAlignment( - VkDeviceSize n, - VkDeviceSize align -) { - return align * ((n + align - 1) / align); -} - -static void VULKAN_INTERNAL_MakeMemoryUnavailable( - VulkanRenderer* renderer, - VulkanMemoryAllocation *allocation -) { - uint32_t i, j; - VulkanMemoryFreeRegion *freeRegion; - - allocation->availableForAllocation = 0; - - for (i = 0; i < allocation->freeRegionCount; i += 1) - { - freeRegion = allocation->freeRegions[i]; - - /* close the gap in the sorted list */ - if (allocation->allocator->sortedFreeRegionCount > 1) - { - for (j = freeRegion->sortedIndex; j < allocation->allocator->sortedFreeRegionCount - 1; j += 1) - { - allocation->allocator->sortedFreeRegions[j] = - allocation->allocator->sortedFreeRegions[j + 1]; - - allocation->allocator->sortedFreeRegions[j]->sortedIndex = j; - } - } - - allocation->allocator->sortedFreeRegionCount -= 1; - } -} - -static void VULKAN_INTERNAL_RemoveMemoryFreeRegion( - VulkanRenderer *renderer, - VulkanMemoryFreeRegion *freeRegion -) { - uint32_t i; - - SDL_LockMutex(renderer->allocatorLock); - - if (freeRegion->allocation->availableForAllocation) - { - /* close the gap in the sorted list */ - if (freeRegion->allocation->allocator->sortedFreeRegionCount > 1) - { - for (i = freeRegion->sortedIndex; i < freeRegion->allocation->allocator->sortedFreeRegionCount - 1; i += 1) - { - freeRegion->allocation->allocator->sortedFreeRegions[i] = - freeRegion->allocation->allocator->sortedFreeRegions[i + 1]; - - freeRegion->allocation->allocator->sortedFreeRegions[i]->sortedIndex = i; - } - } - - freeRegion->allocation->allocator->sortedFreeRegionCount -= 1; - } - - /* close the gap in the buffer list */ - if (freeRegion->allocation->freeRegionCount > 1 && freeRegion->allocationIndex != freeRegion->allocation->freeRegionCount - 1) - { - freeRegion->allocation->freeRegions[freeRegion->allocationIndex] = - freeRegion->allocation->freeRegions[freeRegion->allocation->freeRegionCount - 1]; - - freeRegion->allocation->freeRegions[freeRegion->allocationIndex]->allocationIndex = - freeRegion->allocationIndex; - } - - freeRegion->allocation->freeRegionCount -= 1; - - freeRegion->allocation->freeSpace -= freeRegion->size; - - SDL_free(freeRegion); - - SDL_UnlockMutex(renderer->allocatorLock); -} - -static void VULKAN_INTERNAL_NewMemoryFreeRegion( - VulkanRenderer *renderer, - VulkanMemoryAllocation *allocation, - VkDeviceSize offset, - VkDeviceSize size -) { - VulkanMemoryFreeRegion *newFreeRegion; - VkDeviceSize newOffset, newSize; - int32_t insertionIndex = 0; - int32_t i; - - SDL_LockMutex(renderer->allocatorLock); - - /* look for an adjacent region to merge */ - for (i = allocation->freeRegionCount - 1; i >= 0; i -= 1) - { - /* check left side */ - if (allocation->freeRegions[i]->offset + allocation->freeRegions[i]->size == offset) - { - newOffset = allocation->freeRegions[i]->offset; - newSize = allocation->freeRegions[i]->size + size; - - VULKAN_INTERNAL_RemoveMemoryFreeRegion(renderer, allocation->freeRegions[i]); - VULKAN_INTERNAL_NewMemoryFreeRegion(renderer, allocation, newOffset, newSize); - - SDL_UnlockMutex(renderer->allocatorLock); - return; - } - - /* check right side */ - if (allocation->freeRegions[i]->offset == offset + size) - { - newOffset = offset; - newSize = allocation->freeRegions[i]->size + size; - - VULKAN_INTERNAL_RemoveMemoryFreeRegion(renderer, allocation->freeRegions[i]); - VULKAN_INTERNAL_NewMemoryFreeRegion(renderer, allocation, newOffset, newSize); - - SDL_UnlockMutex(renderer->allocatorLock); - return; - } - } - - /* region is not contiguous with another free region, make a new one */ - allocation->freeRegionCount += 1; - if (allocation->freeRegionCount > allocation->freeRegionCapacity) - { - allocation->freeRegionCapacity *= 2; - allocation->freeRegions = SDL_realloc( - allocation->freeRegions, - sizeof(VulkanMemoryFreeRegion*) * allocation->freeRegionCapacity - ); - } - - newFreeRegion = SDL_malloc(sizeof(VulkanMemoryFreeRegion)); - newFreeRegion->offset = offset; - newFreeRegion->size = size; - newFreeRegion->allocation = allocation; - - allocation->freeSpace += size; - - allocation->freeRegions[allocation->freeRegionCount - 1] = newFreeRegion; - newFreeRegion->allocationIndex = allocation->freeRegionCount - 1; - - if (allocation->availableForAllocation) - { - for (i = 0; i < allocation->allocator->sortedFreeRegionCount; i += 1) - { - if (allocation->allocator->sortedFreeRegions[i]->size < size) - { - /* this is where the new region should go */ - break; - } - - insertionIndex += 1; - } - - if (allocation->allocator->sortedFreeRegionCount + 1 > allocation->allocator->sortedFreeRegionCapacity) - { - allocation->allocator->sortedFreeRegionCapacity *= 2; - allocation->allocator->sortedFreeRegions = SDL_realloc( - allocation->allocator->sortedFreeRegions, - sizeof(VulkanMemoryFreeRegion*) * allocation->allocator->sortedFreeRegionCapacity - ); - } - - /* perform insertion sort */ - if (allocation->allocator->sortedFreeRegionCount > 0 && insertionIndex != allocation->allocator->sortedFreeRegionCount) - { - for (i = allocation->allocator->sortedFreeRegionCount; i > insertionIndex && i > 0; i -= 1) - { - allocation->allocator->sortedFreeRegions[i] = allocation->allocator->sortedFreeRegions[i - 1]; - allocation->allocator->sortedFreeRegions[i]->sortedIndex = i; - } - } - - allocation->allocator->sortedFreeRegionCount += 1; - allocation->allocator->sortedFreeRegions[insertionIndex] = newFreeRegion; - newFreeRegion->sortedIndex = insertionIndex; - } - - SDL_UnlockMutex(renderer->allocatorLock); -} - -static VulkanMemoryUsedRegion* VULKAN_INTERNAL_NewMemoryUsedRegion( - VulkanRenderer *renderer, - VulkanMemoryAllocation *allocation, - VkDeviceSize offset, - VkDeviceSize size, - VkDeviceSize resourceOffset, - VkDeviceSize resourceSize, - VkDeviceSize alignment -) { - VulkanMemoryUsedRegion *memoryUsedRegion; - - SDL_LockMutex(renderer->allocatorLock); - - if (allocation->usedRegionCount == allocation->usedRegionCapacity) - { - allocation->usedRegionCapacity *= 2; - allocation->usedRegions = SDL_realloc( - allocation->usedRegions, - allocation->usedRegionCapacity * sizeof(VulkanMemoryUsedRegion*) - ); - } - - memoryUsedRegion = SDL_malloc(sizeof(VulkanMemoryUsedRegion)); - memoryUsedRegion->allocation = allocation; - memoryUsedRegion->offset = offset; - memoryUsedRegion->size = size; - memoryUsedRegion->resourceOffset = resourceOffset; - memoryUsedRegion->resourceSize = resourceSize; - memoryUsedRegion->alignment = alignment; - - allocation->usedSpace += size; - - allocation->usedRegions[allocation->usedRegionCount] = memoryUsedRegion; - allocation->usedRegionCount += 1; - - SDL_UnlockMutex(renderer->allocatorLock); - - return memoryUsedRegion; -} - -static void VULKAN_INTERNAL_RemoveMemoryUsedRegion( - VulkanRenderer *renderer, - VulkanMemoryUsedRegion *usedRegion -) { - uint32_t i; - - SDL_LockMutex(renderer->allocatorLock); - - for (i = 0; i < usedRegion->allocation->usedRegionCount; i += 1) - { - if (usedRegion->allocation->usedRegions[i] == usedRegion) - { - /* plug the hole */ - if (i != usedRegion->allocation->usedRegionCount - 1) - { - usedRegion->allocation->usedRegions[i] = usedRegion->allocation->usedRegions[usedRegion->allocation->usedRegionCount - 1]; - } - - break; - } - } - - usedRegion->allocation->usedSpace -= usedRegion->size; - - usedRegion->allocation->usedRegionCount -= 1; - - VULKAN_INTERNAL_NewMemoryFreeRegion( - renderer, - usedRegion->allocation, - usedRegion->offset, - usedRegion->size - ); - - if (!usedRegion->allocation->dedicated) - { - renderer->needDefrag = 1; - } - - SDL_free(usedRegion); - - renderer->resourceFreed = 1; - SDL_UnlockMutex(renderer->allocatorLock); -} - -static uint8_t VULKAN_INTERNAL_FindBufferMemoryRequirements( - VulkanRenderer *renderer, - VkBuffer buffer, - VkMemoryPropertyFlags requiredMemoryProperties, - VkMemoryPropertyFlags ignoredMemoryProperties, - VkMemoryRequirements2KHR *pMemoryRequirements, - uint32_t *pMemoryTypeIndex -) { - VkBufferMemoryRequirementsInfo2KHR bufferRequirementsInfo; - bufferRequirementsInfo.sType = - VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR; - bufferRequirementsInfo.pNext = NULL; - bufferRequirementsInfo.buffer = buffer; - - renderer->vkGetBufferMemoryRequirements2KHR( - renderer->logicalDevice, - &bufferRequirementsInfo, - pMemoryRequirements - ); - - return VULKAN_INTERNAL_FindMemoryType( - renderer, - pMemoryRequirements->memoryRequirements.memoryTypeBits, - requiredMemoryProperties, - ignoredMemoryProperties, - pMemoryTypeIndex - ); -} - -static uint8_t VULKAN_INTERNAL_FindImageMemoryRequirements( - VulkanRenderer *renderer, - VkImage image, - VkMemoryPropertyFlags requiredMemoryPropertyFlags, - VkMemoryPropertyFlags ignoredMemoryPropertyFlags, - VkMemoryRequirements2KHR *pMemoryRequirements, - uint32_t *pMemoryTypeIndex -) { - VkImageMemoryRequirementsInfo2KHR imageRequirementsInfo; - imageRequirementsInfo.sType = - VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR; - imageRequirementsInfo.pNext = NULL; - imageRequirementsInfo.image = image; - - renderer->vkGetImageMemoryRequirements2KHR( - renderer->logicalDevice, - &imageRequirementsInfo, - pMemoryRequirements - ); - - return VULKAN_INTERNAL_FindMemoryType( - renderer, - pMemoryRequirements->memoryRequirements.memoryTypeBits, - requiredMemoryPropertyFlags, - ignoredMemoryPropertyFlags, - pMemoryTypeIndex - ); -} - -static void VULKAN_INTERNAL_DeallocateMemory( - VulkanRenderer *renderer, - VulkanMemorySubAllocator *allocator, - uint32_t allocationIndex -) { - uint32_t i; - uint8_t isDeviceLocal = - (renderer->memoryProperties.memoryTypes[allocator->memoryTypeIndex].propertyFlags & - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0; - - VulkanMemoryAllocation *allocation = allocator->allocations[allocationIndex]; - - SDL_LockMutex(renderer->allocatorLock); - - for (i = 0; i < allocation->freeRegionCount; i += 1) - { - VULKAN_INTERNAL_RemoveMemoryFreeRegion( - renderer, - allocation->freeRegions[i] - ); - } - SDL_free(allocation->freeRegions); - - /* no need to iterate used regions because deallocate - * only happens when there are 0 used regions - */ - SDL_free(allocation->usedRegions); - - renderer->vkFreeMemory( - renderer->logicalDevice, - allocation->memory, - NULL - ); - - if (isDeviceLocal) - { - renderer->deviceLocalHeapUsage -= allocation->size; - } - - SDL_DestroyMutex(allocation->mapLock); - SDL_free(allocation); - - if (allocationIndex != allocator->allocationCount - 1) - { - allocator->allocations[allocationIndex] = allocator->allocations[allocator->allocationCount - 1]; - } - - allocator->allocationCount -= 1; - - SDL_UnlockMutex(renderer->allocatorLock); -} - -static uint8_t VULKAN_INTERNAL_AllocateMemory( - VulkanRenderer *renderer, - VkBuffer buffer, - VkImage image, - uint32_t memoryTypeIndex, - VkDeviceSize allocationSize, - uint8_t dedicated, - uint8_t isHostVisible, - VulkanMemoryAllocation **pMemoryAllocation -) { - VulkanMemoryAllocation *allocation; - VulkanMemorySubAllocator *allocator = &renderer->memoryAllocator->subAllocators[memoryTypeIndex]; - VkMemoryAllocateInfo allocInfo; - VkMemoryDedicatedAllocateInfoKHR dedicatedInfo; - VkResult result; - - allocInfo.sType = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO; - allocInfo.memoryTypeIndex = memoryTypeIndex; - allocInfo.allocationSize = allocationSize; - - allocation = SDL_malloc(sizeof(VulkanMemoryAllocation)); - allocation->size = allocationSize; - allocation->freeSpace = 0; /* added by FreeRegions */ - allocation->usedSpace = 0; /* added by UsedRegions */ - allocation->mapLock = SDL_CreateMutex(); - - allocator->allocationCount += 1; - allocator->allocations = SDL_realloc( - allocator->allocations, - sizeof(VulkanMemoryAllocation*) * allocator->allocationCount - ); - - allocator->allocations[ - allocator->allocationCount - 1 - ] = allocation; - - if (dedicated) - { - dedicatedInfo.sType = - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR; - dedicatedInfo.pNext = NULL; - dedicatedInfo.buffer = buffer; - dedicatedInfo.image = image; - - allocInfo.pNext = &dedicatedInfo; - allocation->dedicated = 1; - allocation->availableForAllocation = 0; - } - else - { - allocInfo.pNext = NULL; - allocation->dedicated = 0; - allocation->availableForAllocation = 1; - } - - allocation->usedRegions = SDL_malloc(sizeof(VulkanMemoryUsedRegion*)); - allocation->usedRegionCount = 0; - allocation->usedRegionCapacity = 1; - - allocation->freeRegions = SDL_malloc(sizeof(VulkanMemoryFreeRegion*)); - allocation->freeRegionCount = 0; - allocation->freeRegionCapacity = 1; - - allocation->allocator = allocator; - - result = renderer->vkAllocateMemory( - renderer->logicalDevice, - &allocInfo, - NULL, - &allocation->memory - ); - - if (result != VK_SUCCESS) - { - /* Uh oh, we couldn't allocate, time to clean up */ - SDL_free(allocation->freeRegions); - - allocator->allocationCount -= 1; - allocator->allocations = SDL_realloc( - allocator->allocations, - sizeof(VulkanMemoryAllocation*) * allocator->allocationCount - ); - - SDL_free(allocation); - - FNA3D_LogWarn("vkAllocateMemory: %s", VkErrorMessages(result)); - return 0; - } - - /* persistent mapping for host memory */ - if (isHostVisible) - { - result = renderer->vkMapMemory( - renderer->logicalDevice, - allocation->memory, - 0, - VK_WHOLE_SIZE, - 0, - (void**) &allocation->mapPointer - ); - VULKAN_ERROR_CHECK(result, vkMapMemory, 0) - } - else - { - allocation->mapPointer = NULL; - } - - VULKAN_INTERNAL_NewMemoryFreeRegion( - renderer, - allocation, - 0, - allocation->size - ); - - *pMemoryAllocation = allocation; - return 1; -} - -static uint8_t VULKAN_INTERNAL_BindBufferMemory( - VulkanRenderer *renderer, - VulkanMemoryUsedRegion *usedRegion, - VkDeviceSize alignedOffset, - VkBuffer buffer -) { - VkResult vulkanResult; - - SDL_LockMutex(usedRegion->allocation->mapLock); - - vulkanResult = renderer->vkBindBufferMemory( - renderer->logicalDevice, - buffer, - usedRegion->allocation->memory, - alignedOffset - ); - - SDL_UnlockMutex(usedRegion->allocation->mapLock); - - VULKAN_ERROR_CHECK(vulkanResult, vkBindBufferMemory, 0) - - return 1; -} - -static uint8_t VULKAN_INTERNAL_BindImageMemory( - VulkanRenderer *renderer, - VulkanMemoryUsedRegion *usedRegion, - VkDeviceSize alignedOffset, - VkImage image -) { - VkResult vulkanResult; - - SDL_LockMutex(usedRegion->allocation->mapLock); - - vulkanResult = renderer->vkBindImageMemory( - renderer->logicalDevice, - image, - usedRegion->allocation->memory, - alignedOffset - ); - - SDL_UnlockMutex(usedRegion->allocation->mapLock); - - VULKAN_ERROR_CHECK(vulkanResult, vkBindBufferMemory, 0) - - return 1; -} - -static uint8_t VULKAN_INTERNAL_BindResourceMemory( - VulkanRenderer* renderer, - uint32_t memoryTypeIndex, - VkMemoryRequirements2KHR* memoryRequirements, - VkMemoryDedicatedRequirementsKHR* dedicatedRequirements, - uint8_t forceDedicated, - VkDeviceSize resourceSize, /* may be different from requirements size! */ - VkBuffer buffer, /* may be VK_NULL_HANDLE */ - VkImage image, /* may be VK_NULL_HANDLE */ - VulkanMemoryUsedRegion** pMemoryUsedRegion -) { - VulkanMemoryAllocation *allocation; - VulkanMemorySubAllocator *allocator; - VulkanMemoryFreeRegion *region; - VulkanMemoryUsedRegion *usedRegion; - - VkDeviceSize requiredSize, allocationSize; - VkDeviceSize alignedOffset; - uint32_t newRegionSize, newRegionOffset; - uint8_t shouldAllocDedicated = - forceDedicated || - dedicatedRequirements->prefersDedicatedAllocation || - dedicatedRequirements->requiresDedicatedAllocation; - uint8_t isDeviceLocal, isHostVisible, allocationResult; - - isHostVisible = - (renderer->memoryProperties.memoryTypes[memoryTypeIndex].propertyFlags & - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT) != 0; - - isDeviceLocal = - (renderer->memoryProperties.memoryTypes[memoryTypeIndex].propertyFlags & - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT) != 0; - - allocator = &renderer->memoryAllocator->subAllocators[memoryTypeIndex]; - requiredSize = memoryRequirements->memoryRequirements.size; - - if ( (buffer == VK_NULL_HANDLE && image == VK_NULL_HANDLE) || - (buffer != VK_NULL_HANDLE && image != VK_NULL_HANDLE) ) - { - FNA3D_LogError("BindResourceMemory must be given either a VulkanBuffer or a VulkanTexture"); - return 0; - } - - SDL_LockMutex(renderer->allocatorLock); - - /* find the largest free region and use it */ - if (!shouldAllocDedicated && allocator->sortedFreeRegionCount > 0) - { - region = allocator->sortedFreeRegions[0]; - allocation = region->allocation; - - alignedOffset = VULKAN_INTERNAL_NextHighestAlignment( - region->offset, - memoryRequirements->memoryRequirements.alignment - ); - - if (alignedOffset + requiredSize <= region->offset + region->size) - { - usedRegion = VULKAN_INTERNAL_NewMemoryUsedRegion( - renderer, - allocation, - region->offset, - requiredSize + (alignedOffset - region->offset), - alignedOffset, - resourceSize, - memoryRequirements->memoryRequirements.alignment - ); - - usedRegion->isBuffer = buffer != VK_NULL_HANDLE; - - newRegionSize = region->size - ((alignedOffset - region->offset) + requiredSize); - newRegionOffset = alignedOffset + requiredSize; - - /* remove and add modified region to re-sort */ - VULKAN_INTERNAL_RemoveMemoryFreeRegion(renderer, region); - - /* if size is 0, no need to re-insert */ - if (newRegionSize != 0) - { - VULKAN_INTERNAL_NewMemoryFreeRegion( - renderer, - allocation, - newRegionOffset, - newRegionSize - ); - } - - SDL_UnlockMutex(renderer->allocatorLock); - - if (buffer != VK_NULL_HANDLE) - { - if (!VULKAN_INTERNAL_BindBufferMemory( - renderer, - usedRegion, - alignedOffset, - buffer - )) { - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - usedRegion - ); - - return 0; - } - } - else if (image != VK_NULL_HANDLE) - { - if (!VULKAN_INTERNAL_BindImageMemory( - renderer, - usedRegion, - alignedOffset, - image - )) { - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - usedRegion - ); - - return 0; - } - } - - *pMemoryUsedRegion = usedRegion; - return 1; - } - } - - /* No suitable free regions exist, allocate a new memory region */ - - if (shouldAllocDedicated) - { - allocationSize = requiredSize; - } - else if (requiredSize > allocator->nextAllocationSize) - { - /* allocate a page of required size aligned to ALLOCATION_INCREMENT increments */ - allocationSize = - VULKAN_INTERNAL_NextHighestAlignment(requiredSize, ALLOCATION_INCREMENT); - } - else - { - allocationSize = allocator->nextAllocationSize; - } - - if ( isDeviceLocal && - (renderer->deviceLocalHeapUsage + allocationSize > renderer->maxDeviceLocalHeapUsage) ) - { - /* we are oversubscribing device local memory */ - SDL_UnlockMutex(renderer->allocatorLock); - return 2; - } - - allocationResult = VULKAN_INTERNAL_AllocateMemory( - renderer, - buffer, - image, - memoryTypeIndex, - allocationSize, - shouldAllocDedicated, - isHostVisible, - &allocation - ); - - /* Uh oh, we're out of memory */ - if (allocationResult == 0) - { - SDL_UnlockMutex(renderer->allocatorLock); - - /* Responsibility of the caller to handle being out of memory */ - FNA3D_LogWarn("Failed to allocate memory!"); - return 2; - } - - if (isDeviceLocal) - { - renderer->deviceLocalHeapUsage += allocationSize; - } - - usedRegion = VULKAN_INTERNAL_NewMemoryUsedRegion( - renderer, - allocation, - 0, - requiredSize, - 0, - resourceSize, - memoryRequirements->memoryRequirements.alignment - ); - - usedRegion->isBuffer = buffer != VK_NULL_HANDLE; - - region = allocation->freeRegions[0]; - - newRegionOffset = region->offset + requiredSize; - newRegionSize = region->size - requiredSize; - - VULKAN_INTERNAL_RemoveMemoryFreeRegion(renderer, region); - - if (newRegionSize != 0) - { - VULKAN_INTERNAL_NewMemoryFreeRegion( - renderer, - allocation, - newRegionOffset, - newRegionSize - ); - } - - SDL_UnlockMutex(renderer->allocatorLock); - - if (buffer != VK_NULL_HANDLE) - { - if (!VULKAN_INTERNAL_BindBufferMemory( - renderer, - usedRegion, - 0, - buffer - )) { - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - usedRegion - ); - - return 0; - } - } - else if (image != VK_NULL_HANDLE) - { - if (!VULKAN_INTERNAL_BindImageMemory( - renderer, - usedRegion, - 0, - image - )) { - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - usedRegion - ); - - return 0; - } - } - - *pMemoryUsedRegion = usedRegion; - return 1; -} - -static uint8_t VULKAN_INTERNAL_BindMemoryForImage( - VulkanRenderer* renderer, - VkImage image, - uint8_t isRenderTarget, - VulkanMemoryUsedRegion** usedRegion -) { - uint8_t bindResult = 0; - uint32_t memoryTypeIndex = 0; - VkMemoryPropertyFlags requiredMemoryPropertyFlags; - VkMemoryPropertyFlags ignoredMemoryPropertyFlags; - VkMemoryDedicatedRequirementsKHR dedicatedRequirements = - { - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR, - NULL - }; - VkMemoryRequirements2KHR memoryRequirements = - { - VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR, - &dedicatedRequirements - }; - - /* Prefer GPU allocation */ - requiredMemoryPropertyFlags = VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - ignoredMemoryPropertyFlags = 0; - - while (VULKAN_INTERNAL_FindImageMemoryRequirements( - renderer, - image, - requiredMemoryPropertyFlags, - ignoredMemoryPropertyFlags, - &memoryRequirements, - &memoryTypeIndex - )) { - bindResult = VULKAN_INTERNAL_BindResourceMemory( - renderer, - memoryTypeIndex, - &memoryRequirements, - &dedicatedRequirements, - isRenderTarget, - memoryRequirements.memoryRequirements.size, - VK_NULL_HANDLE, - image, - usedRegion - ); - - if (bindResult == 1) - { - break; - } - else /* Bind failed, try the next device-local heap */ - { - memoryTypeIndex += 1; - } - } - - /* Bind _still_ failed, try again without device local */ - if (bindResult != 1) - { - memoryTypeIndex = 0; - requiredMemoryPropertyFlags = 0; - ignoredMemoryPropertyFlags = VK_MEMORY_HEAP_DEVICE_LOCAL_BIT; - - if (isRenderTarget) - { - FNA3D_LogWarn("RenderTarget is allocated in host memory, pre-allocate your targets!"); - } - - FNA3D_LogWarn("Out of device local memory, falling back to host memory"); - - while (VULKAN_INTERNAL_FindImageMemoryRequirements( - renderer, - image, - requiredMemoryPropertyFlags, - ignoredMemoryPropertyFlags, - &memoryRequirements, - &memoryTypeIndex - )) { - bindResult = VULKAN_INTERNAL_BindResourceMemory( - renderer, - memoryTypeIndex, - &memoryRequirements, - &dedicatedRequirements, - isRenderTarget, - memoryRequirements.memoryRequirements.size, - VK_NULL_HANDLE, - image, - usedRegion - ); - - if (bindResult == 1) - { - break; - } - else /* Bind failed, try the next heap */ - { - memoryTypeIndex += 1; - } - } - } - - return bindResult; -} - -static uint8_t VULKAN_INTERNAL_BindMemoryForBuffer( - VulkanRenderer* renderer, - VkBuffer buffer, - VkDeviceSize size, - uint8_t preferDeviceLocal, - uint8_t isTransferBuffer, - VulkanMemoryUsedRegion** usedRegion -) { - uint8_t bindResult = 0; - uint32_t memoryTypeIndex = 0; - VkMemoryPropertyFlags requiredMemoryPropertyFlags; - VkMemoryPropertyFlags ignoredMemoryPropertyFlags; - VkMemoryDedicatedRequirementsKHR dedicatedRequirements = - { - VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR, - NULL - }; - VkMemoryRequirements2KHR memoryRequirements = - { - VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR, - &dedicatedRequirements - }; - - requiredMemoryPropertyFlags = - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | - VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; - - if (preferDeviceLocal) - { - requiredMemoryPropertyFlags |= - VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT; - } - ignoredMemoryPropertyFlags = 0; - - while (VULKAN_INTERNAL_FindBufferMemoryRequirements( - renderer, - buffer, - requiredMemoryPropertyFlags, - ignoredMemoryPropertyFlags, - &memoryRequirements, - &memoryTypeIndex - )) { - bindResult = VULKAN_INTERNAL_BindResourceMemory( - renderer, - memoryTypeIndex, - &memoryRequirements, - &dedicatedRequirements, - isTransferBuffer, - size, - buffer, - VK_NULL_HANDLE, - usedRegion - ); - - if (bindResult == 1) - { - break; - } - else /* Bind failed, try the next device-local heap */ - { - memoryTypeIndex += 1; - } - } - - /* Bind failed, try again if originally preferred device local */ - if (bindResult != 1 && preferDeviceLocal) - { - memoryTypeIndex = 0; - requiredMemoryPropertyFlags = - VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | - VK_MEMORY_PROPERTY_HOST_COHERENT_BIT; - - while (VULKAN_INTERNAL_FindBufferMemoryRequirements( - renderer, - buffer, - requiredMemoryPropertyFlags, - ignoredMemoryPropertyFlags, - &memoryRequirements, - &memoryTypeIndex - )) { - bindResult = VULKAN_INTERNAL_BindResourceMemory( - renderer, - memoryTypeIndex, - &memoryRequirements, - &dedicatedRequirements, - isTransferBuffer, - size, - buffer, - VK_NULL_HANDLE, - usedRegion - ); - - if (bindResult == 1) - { - break; - } - else /* Bind failed, try the next heap */ - { - memoryTypeIndex += 1; - } - } - } - - return bindResult; -} - -static uint8_t VULKAN_INTERNAL_FindAllocationToDefragment( - VulkanRenderer *renderer, - VulkanMemorySubAllocator *allocator, - uint32_t *allocationIndexToDefrag -) { - uint32_t i, j; - - for (i = 0; i < VK_MAX_MEMORY_TYPES; i += 1) - { - *allocator = renderer->memoryAllocator->subAllocators[i]; - - for (j = 0; j < allocator->allocationCount; j += 1) - { - if (allocator->allocations[j]->freeRegionCount > 1) - { - *allocationIndexToDefrag = j; - return 1; - } - } - } - - return 0; -} - -static uint8_t VULKAN_INTERNAL_DefragmentMemory( - VulkanRenderer *renderer -) { - VulkanMemorySubAllocator allocator; - VulkanMemoryAllocation *allocation; - uint32_t allocationIndexToDefrag; - VulkanMemoryUsedRegion *currentRegion; - VulkanMemoryUsedRegion *newRegion; - VkBuffer copyBuffer; - VkBufferCopy bufferCopy; - VkImage copyImage; - VkImageCopy *imageCopyRegions; - VkImageAspectFlags aspectFlags; - VkCommandBufferBeginInfo beginInfo; - VkPipelineStageFlags waitFlags = VK_PIPELINE_STAGE_ALL_COMMANDS_BIT; - VkSubmitInfo submitInfo; - VkResult result; - uint32_t i, level; - VulkanResourceAccessType copyResourceAccessType = RESOURCE_ACCESS_NONE; - - SDL_LockMutex(renderer->commandLock); - SDL_LockMutex(renderer->allocatorLock); - - renderer->needDefrag = 0; - - beginInfo.sType = VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO; - beginInfo.pNext = NULL; - beginInfo.flags = VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT; - beginInfo.pInheritanceInfo = NULL; - - renderer->vkBeginCommandBuffer( - renderer->defragCommandBufferContainer->commandBuffer, - &beginInfo - ); - - if (VULKAN_INTERNAL_FindAllocationToDefragment( - renderer, - &allocator, - &allocationIndexToDefrag - )) { - renderer->currentCommandBufferContainer = renderer->defragCommandBufferContainer; /* FIXME: this is a kludge!! */ - - allocation = allocator.allocations[allocationIndexToDefrag]; - - VULKAN_INTERNAL_MakeMemoryUnavailable( - renderer, - allocation - ); - - for (i = 0; i < allocation->usedRegionCount; i += 1) - { - currentRegion = allocation->usedRegions[i]; - copyResourceAccessType = RESOURCE_ACCESS_NONE; - - if (currentRegion->isBuffer) - { - currentRegion->vulkanBuffer->bufferCreateInfo.usage |= VK_BUFFER_USAGE_TRANSFER_DST_BIT; - - result = renderer->vkCreateBuffer( - renderer->logicalDevice, - ¤tRegion->vulkanBuffer->bufferCreateInfo, - NULL, - ©Buffer - ); - VULKAN_ERROR_CHECK(result, vkCreateBuffer, 0) - - if ( - VULKAN_INTERNAL_BindMemoryForBuffer( - renderer, - copyBuffer, - currentRegion->resourceSize, - currentRegion->vulkanBuffer->preferDeviceLocal, - 0, - &newRegion - ) != 1) - { - /* Out of memory, abort */ - renderer->vkDestroyBuffer( - renderer->logicalDevice, - copyBuffer, - NULL - ); - break; - } - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - currentRegion->vulkanBuffer->buffer, - ¤tRegion->vulkanBuffer->resourceAccessType - ); - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - copyBuffer, - ©ResourceAccessType - ); - - bufferCopy.srcOffset = 0; - bufferCopy.dstOffset = 0; - bufferCopy.size = currentRegion->resourceSize; - - renderer->vkCmdCopyBuffer( - renderer->defragCommandBufferContainer->commandBuffer, - currentRegion->vulkanBuffer->buffer, - copyBuffer, - 1, - &bufferCopy - ); - - if (renderer->defragmentedBuffersToDestroyCount >= renderer->defragmentedBuffersToDestroyCapacity) - { - renderer->defragmentedBuffersToDestroyCapacity *= 2; - renderer->defragmentedBuffersToDestroy = SDL_realloc( - renderer->defragmentedBuffersToDestroy, - sizeof(VkBuffer) * renderer->defragmentedBuffersToDestroyCapacity - ); - } - - if (renderer->usedRegionsToDestroyCount >= renderer->usedRegionsToDestroyCapacity) - { - renderer->usedRegionsToDestroyCapacity *= 2; - renderer->usedRegionsToDestroy = SDL_realloc( - renderer->usedRegionsToDestroy, - sizeof(VulkanMemoryUsedRegion*) * renderer->usedRegionsToDestroyCapacity - ); - } - - renderer->defragmentedBuffersToDestroy[ - renderer->defragmentedBuffersToDestroyCount - ] = currentRegion->vulkanBuffer->buffer; - - renderer->defragmentedBuffersToDestroyCount += 1; - - renderer->usedRegionsToDestroy[ - renderer->usedRegionsToDestroyCount - ] = currentRegion; - - renderer->usedRegionsToDestroyCount += 1; - - newRegion->isBuffer = 1; - newRegion->vulkanBuffer = currentRegion->vulkanBuffer; - newRegion->vulkanBuffer->usedRegion = newRegion; /* lol */ - newRegion->vulkanBuffer->buffer = copyBuffer; - newRegion->vulkanBuffer->resourceAccessType = copyResourceAccessType; - - /* Binding prevents data race when using SetBufferData with Discard option */ - VULKAN_INTERNAL_MarkBufferAsBound(renderer, newRegion->vulkanBuffer); - - renderer->needDefrag = 1; - renderer->bufferDefragInProgress = 1; - } - else - { - result = renderer->vkCreateImage( - renderer->logicalDevice, - ¤tRegion->vulkanTexture->imageCreateInfo, - NULL, - ©Image - ); - - VULKAN_ERROR_CHECK(result, vkCreateImage, 0) - - if (VULKAN_INTERNAL_BindMemoryForImage( - renderer, - copyImage, - 0, - &newRegion - ) != 1) - { - /* Out of memory, abort */ - renderer->vkDestroyImage( - renderer->logicalDevice, - copyImage, - NULL - ); - - break; - } - - if (IsDepthFormat(currentRegion->vulkanTexture->surfaceFormat)) - { - aspectFlags = VK_IMAGE_ASPECT_DEPTH_BIT; - - if (DepthFormatContainsStencil(currentRegion->vulkanTexture->surfaceFormat)) - { - aspectFlags |= VK_IMAGE_ASPECT_STENCIL_BIT; - } - } - else - { - aspectFlags = VK_IMAGE_ASPECT_COLOR_BIT; - } - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - aspectFlags, - 0, - currentRegion->vulkanTexture->layerCount, - 0, - currentRegion->vulkanTexture->levelCount, - 0, - currentRegion->vulkanTexture->image, - ¤tRegion->vulkanTexture->resourceAccessType - ); - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - aspectFlags, - 0, - currentRegion->vulkanTexture->layerCount, - 0, - currentRegion->vulkanTexture->levelCount, - 0, - copyImage, - ©ResourceAccessType - ); - - imageCopyRegions = SDL_stack_alloc(VkImageCopy, currentRegion->vulkanTexture->levelCount); - - for (level = 0; level < currentRegion->vulkanTexture->levelCount; level += 1) - { - imageCopyRegions[level].srcOffset.x = 0; - imageCopyRegions[level].srcOffset.y = 0; - imageCopyRegions[level].srcOffset.z = 0; - imageCopyRegions[level].srcSubresource.aspectMask = aspectFlags; - imageCopyRegions[level].srcSubresource.baseArrayLayer = 0; - imageCopyRegions[level].srcSubresource.layerCount = currentRegion->vulkanTexture->layerCount; - imageCopyRegions[level].srcSubresource.mipLevel = level; - imageCopyRegions[level].extent.width = currentRegion->vulkanTexture->dimensions.width >> level; - imageCopyRegions[level].extent.height = currentRegion->vulkanTexture->dimensions.height >> level; - imageCopyRegions[level].extent.depth = currentRegion->vulkanTexture->depth; - imageCopyRegions[level].dstOffset.x = 0; - imageCopyRegions[level].dstOffset.y = 0; - imageCopyRegions[level].dstOffset.z = 0; - imageCopyRegions[level].dstSubresource.aspectMask = aspectFlags; - imageCopyRegions[level].dstSubresource.baseArrayLayer = 0; - imageCopyRegions[level].dstSubresource.layerCount = currentRegion->vulkanTexture->layerCount; - imageCopyRegions[level].dstSubresource.mipLevel = level; - } - - renderer->vkCmdCopyImage( - renderer->defragCommandBufferContainer->commandBuffer, - currentRegion->vulkanTexture->image, - AccessMap[currentRegion->vulkanTexture->resourceAccessType].imageLayout, - copyImage, - AccessMap[copyResourceAccessType].imageLayout, - currentRegion->vulkanTexture->levelCount, - imageCopyRegions - ); - - SDL_stack_free(imageCopyRegions); - - if (renderer->defragmentedImagesToDestroyCount >= renderer->defragmentedImagesToDestroyCapacity) - { - renderer->defragmentedImagesToDestroyCapacity *= 2; - renderer->defragmentedImagesToDestroy = SDL_realloc( - renderer->defragmentedImagesToDestroy, - sizeof(VkImage) * renderer->defragmentedImagesToDestroyCapacity - ); - } - - if (renderer->defragmentedImageViewsToDestroyCount >= renderer->defragmentedImageViewsToDestroyCapacity) - { - renderer->defragmentedImageViewsToDestroyCapacity *= 2; - renderer->defragmentedImageViewsToDestroy = SDL_realloc( - renderer->defragmentedImageViewsToDestroy, - sizeof(VkImageView) * renderer->defragmentedImageViewsToDestroyCapacity - ); - } - - if (renderer->usedRegionsToDestroyCount >= renderer->usedRegionsToDestroyCapacity) - { - renderer->usedRegionsToDestroyCapacity *= 2; - renderer->usedRegionsToDestroy = SDL_realloc( - renderer->usedRegionsToDestroy, - sizeof(VulkanMemoryUsedRegion*) * renderer->usedRegionsToDestroyCapacity - ); - } - - renderer->defragmentedImagesToDestroy[ - renderer->defragmentedImagesToDestroyCount - ] = currentRegion->vulkanTexture->image; - - renderer->defragmentedImagesToDestroyCount += 1; - - renderer->defragmentedImageViewsToDestroy[ - renderer->defragmentedImageViewsToDestroyCount - ] = currentRegion->vulkanTexture->view; - - renderer->defragmentedImageViewsToDestroyCount += 1; - - renderer->usedRegionsToDestroy[ - renderer->usedRegionsToDestroyCount - ] = currentRegion; - - renderer->usedRegionsToDestroyCount += 1; - - currentRegion->vulkanTexture->viewCreateInfo.image = copyImage; - - renderer->vkCreateImageView( - renderer->logicalDevice, - ¤tRegion->vulkanTexture->viewCreateInfo, - NULL, - ¤tRegion->vulkanTexture->view - ); - - newRegion->isBuffer = 0; - - newRegion->vulkanTexture = currentRegion->vulkanTexture; - newRegion->vulkanTexture->usedRegion = newRegion; /* lol */ - newRegion->vulkanTexture->image = copyImage; - newRegion->vulkanTexture->resourceAccessType = copyResourceAccessType; - - renderer->needDefrag = 1; - } - } - } - - renderer->vkEndCommandBuffer( - renderer->defragCommandBufferContainer->commandBuffer - ); - - submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - submitInfo.pNext = NULL; - submitInfo.commandBufferCount = 1; - submitInfo.pCommandBuffers = &renderer->defragCommandBufferContainer->commandBuffer; - submitInfo.waitSemaphoreCount = 1; - submitInfo.pWaitSemaphores = &renderer->defragSemaphore; - submitInfo.pWaitDstStageMask = &waitFlags; - submitInfo.signalSemaphoreCount = 0; - submitInfo.pSignalSemaphores = NULL; - - result = renderer->vkResetFences( - renderer->logicalDevice, - 1, - &renderer->defragCommandBufferContainer->inFlightFence - ); - VULKAN_ERROR_CHECK(result, vkResetFences, 0) - - result = renderer->vkQueueSubmit( - renderer->unifiedQueue, - 1, - &submitInfo, - renderer->defragCommandBufferContainer->inFlightFence - ); - VULKAN_ERROR_CHECK(result, vkQueueSubmit, 0) - - renderer->currentCommandBufferContainer = NULL; - renderer->numActiveCommands = 0; - - renderer->defragTimer = 0; - - SDL_UnlockMutex(renderer->commandLock); - SDL_UnlockMutex(renderer->allocatorLock); - - return 1; -} - -/* Vulkan: Resource Disposal */ - -static void VULKAN_INTERNAL_DestroyBuffer( - VulkanRenderer *renderer, - VulkanBuffer *buffer -) { - uint32_t i, j; - - renderer->vkDestroyBuffer( - renderer->logicalDevice, - buffer->buffer, - NULL - ); - - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - buffer->usedRegion - ); - - /* Don't unbind destroyed buffers! */ - for (i = 0; i < renderer->submittedCommandBufferContainerCount; i += 1) - { - for (j = 0; j < renderer->submittedCommandBufferContainers[i]->boundBufferCount; j += 1) - { - if (buffer == renderer->submittedCommandBufferContainers[i]->boundBuffers[j]) - { - renderer->submittedCommandBufferContainers[i]->boundBuffers[j] = NULL; - } - } - } - - SDL_free(buffer); -} - -static void VULKAN_INTERNAL_DestroyImageView( - VulkanRenderer* renderer, - VkImageView imageView -) { - renderer->vkDestroyImageView( - renderer->logicalDevice, - imageView, - NULL - ); -} - -/* When a render target image view is destroyed we need to invalidate - * the framebuffers that reference it */ -static void VULKAN_INTERNAL_RemoveViewFramebuffer( - VulkanRenderer *renderer, - VkImageView imageView -) { - int32_t i, j; - - for (i = renderer->framebufferArray.count - 1; i >= 0; i -= 1) - { - if (renderer->framebufferArray.elements[i].key.depthStencilAttachmentView == imageView) - { - renderer->vkDestroyFramebuffer( - renderer->logicalDevice, - renderer->framebufferArray.elements[i].value, - NULL - ); - - FramebufferHashArray_Remove( - &renderer->framebufferArray, - i - ); - } - else - { - for (j = 0; j < MAX_RENDERTARGET_BINDINGS; j += 1) - { - if ( - renderer->framebufferArray.elements[i].key.colorAttachmentViews[j] == imageView || - renderer->framebufferArray.elements[i].key.colorMultiSampleAttachmentViews[j] == imageView - ) - { - renderer->vkDestroyFramebuffer( - renderer->logicalDevice, - renderer->framebufferArray.elements[i].value, - NULL - ); - - FramebufferHashArray_Remove( - &renderer->framebufferArray, - i - ); - - break; - } - } - } - } - - VULKAN_INTERNAL_DestroyImageView( - renderer, - imageView - ); -} - -static void VULKAN_INTERNAL_DestroyTexture( - VulkanRenderer *renderer, - VulkanTexture *texture -) { - int32_t i; - - if (texture->external) - { - SDL_free(texture); - return; - } - - VULKAN_INTERNAL_DestroyImageView( - renderer, - texture->view - ); - - if (texture->isRenderTarget) - { - if (texture->rtViews[0] != texture->view) - { - VULKAN_INTERNAL_RemoveViewFramebuffer( - renderer, - texture->rtViews[0] - ); - } - - if (texture->rtViews[1] != VK_NULL_HANDLE) - { - /* Free all the other cube RT views */ - for (i = 1; i < 6; i += 1) - { - VULKAN_INTERNAL_RemoveViewFramebuffer( - renderer, - texture->rtViews[i] - ); - } - } - } - - renderer->vkDestroyImage( - renderer->logicalDevice, - texture->image, - NULL - ); - - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - texture->usedRegion - ); - - SDL_free(texture); -} - -static void VULKAN_INTERNAL_DestroyRenderbuffer( - VulkanRenderer *renderer, - VulkanRenderbuffer *renderbuffer -) { - uint8_t isDepthStencil = (renderbuffer->colorBuffer == NULL); - - if (isDepthStencil) - { - VULKAN_INTERNAL_DestroyTexture( - renderer, - renderbuffer->depthBuffer->handle - ); - SDL_free(renderbuffer->depthBuffer); - } - else - { - if (renderbuffer->colorBuffer->multiSampleTexture != NULL) - { - VULKAN_INTERNAL_DestroyTexture( - renderer, - renderbuffer->colorBuffer->multiSampleTexture - ); - } - - /* The image is owned by the texture it's from, - * so we don't free it here. - */ - SDL_free(renderbuffer->colorBuffer); - } - - SDL_free(renderbuffer); -} - -static void VULKAN_INTERNAL_DestroyEffect( - VulkanRenderer *renderer, - VulkanEffect *vulkanEffect -) { - MOJOSHADER_effect *effectData = vulkanEffect->effect; - - if (effectData == renderer->currentEffect) - { - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectEnd(renderer->currentEffect); - renderer->currentEffect = NULL; - renderer->currentTechnique = NULL; - renderer->currentPass = 0; - } - MOJOSHADER_deleteEffect(effectData); - SDL_free(vulkanEffect); -} - -static void VULKAN_INTERNAL_PerformDeferredDestroys( - VulkanRenderer *renderer, - VulkanCommandBufferContainer *vulkanCommandBufferContainer -) { - uint32_t i; - - /* Destroy submitted resources */ - - for (i = 0; i < vulkanCommandBufferContainer->renderbuffersToDestroyCount; i += 1) - { - VULKAN_INTERNAL_DestroyRenderbuffer( - renderer, - vulkanCommandBufferContainer->renderbuffersToDestroy[i] - ); - } - vulkanCommandBufferContainer->renderbuffersToDestroyCount = 0; - - for (i = 0; i < vulkanCommandBufferContainer->buffersToDestroyCount; i += 1) - { - VULKAN_INTERNAL_DestroyBuffer( - renderer, - vulkanCommandBufferContainer->buffersToDestroy[i] - ); - } - vulkanCommandBufferContainer->buffersToDestroyCount = 0; - - for (i = 0; i < vulkanCommandBufferContainer->effectsToDestroyCount; i += 1) - { - VULKAN_INTERNAL_DestroyEffect( - renderer, - vulkanCommandBufferContainer->effectsToDestroy[i] - ); - } - vulkanCommandBufferContainer->effectsToDestroyCount = 0; - - for (i = 0; i < vulkanCommandBufferContainer->texturesToDestroyCount; i += 1) - { - VULKAN_INTERNAL_DestroyTexture( - renderer, - vulkanCommandBufferContainer->texturesToDestroy[i] - ); - } - vulkanCommandBufferContainer->texturesToDestroyCount = 0; -} - -/* Vulkan: Memory Barriers */ - -static void VULKAN_INTERNAL_BufferMemoryBarrier( - VulkanRenderer *renderer, - VulkanResourceAccessType nextResourceAccessType, - VkBuffer buffer, - VulkanResourceAccessType *resourceAccessType -) { - VkPipelineStageFlags srcStages = 0; - VkPipelineStageFlags dstStages = 0; - VkBufferMemoryBarrier memoryBarrier; - VulkanResourceAccessType prevAccess, nextAccess; - const VulkanResourceAccessInfo *prevAccessInfo, *nextAccessInfo; - - if (*resourceAccessType == nextResourceAccessType) - { - return; - } - - SDL_LockMutex(renderer->passLock); - - memoryBarrier.sType = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER; - memoryBarrier.pNext = NULL; - memoryBarrier.srcAccessMask = 0; - memoryBarrier.dstAccessMask = 0; - memoryBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - memoryBarrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - memoryBarrier.buffer = buffer; - memoryBarrier.offset = 0; - memoryBarrier.size = VK_WHOLE_SIZE; - - prevAccess = *resourceAccessType; - prevAccessInfo = &AccessMap[prevAccess]; - - srcStages |= prevAccessInfo->stageMask; - - if (prevAccess > RESOURCE_ACCESS_END_OF_READ) - { - memoryBarrier.srcAccessMask |= prevAccessInfo->accessMask; - } - - nextAccess = nextResourceAccessType; - nextAccessInfo = &AccessMap[nextAccess]; - - dstStages |= nextAccessInfo->stageMask; - - if (memoryBarrier.srcAccessMask != 0) - { - memoryBarrier.dstAccessMask |= nextAccessInfo->accessMask; - } - - if (srcStages == 0) - { - srcStages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; - } - if (dstStages == 0) - { - dstStages = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; - } - - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - renderer->needNewRenderPass = 1; - - RECORD_CMD(renderer->vkCmdPipelineBarrier( - renderer->currentCommandBufferContainer->commandBuffer, - srcStages, - dstStages, - 0, - 0, - NULL, - 1, - &memoryBarrier, - 0, - NULL - )); - - *resourceAccessType = nextResourceAccessType; - - SDL_UnlockMutex(renderer->passLock); -} - -static void VULKAN_INTERNAL_ImageMemoryBarrier( - VulkanRenderer *renderer, - VulkanResourceAccessType nextAccess, - VkImageAspectFlags aspectMask, - uint32_t baseLayer, - uint32_t layerCount, - uint32_t baseLevel, - uint32_t levelCount, - uint8_t discardContents, - VkImage image, - VulkanResourceAccessType *resourceAccessType -) { - VkPipelineStageFlags srcStages = 0; - VkPipelineStageFlags dstStages = 0; - VkImageMemoryBarrier memoryBarrier; - VulkanResourceAccessType prevAccess; - const VulkanResourceAccessInfo *pPrevAccessInfo, *pNextAccessInfo; - - if (*resourceAccessType == nextAccess) - { - return; - } - - SDL_LockMutex(renderer->passLock); - - memoryBarrier.sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER; - memoryBarrier.pNext = NULL; - memoryBarrier.srcAccessMask = 0; - memoryBarrier.dstAccessMask = 0; - memoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; - memoryBarrier.newLayout = VK_IMAGE_LAYOUT_UNDEFINED; - memoryBarrier.srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - memoryBarrier.dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED; - memoryBarrier.image = image; - memoryBarrier.subresourceRange.aspectMask = aspectMask; - memoryBarrier.subresourceRange.baseArrayLayer = baseLayer; - memoryBarrier.subresourceRange.layerCount = layerCount; - memoryBarrier.subresourceRange.baseMipLevel = baseLevel; - memoryBarrier.subresourceRange.levelCount = levelCount; - - prevAccess = *resourceAccessType; - pPrevAccessInfo = &AccessMap[prevAccess]; - - srcStages |= pPrevAccessInfo->stageMask; - - if (prevAccess > RESOURCE_ACCESS_END_OF_READ) - { - memoryBarrier.srcAccessMask |= pPrevAccessInfo->accessMask; - } - - if (discardContents) - { - memoryBarrier.oldLayout = VK_IMAGE_LAYOUT_UNDEFINED; - } - else - { - memoryBarrier.oldLayout = pPrevAccessInfo->imageLayout; - } - - pNextAccessInfo = &AccessMap[nextAccess]; - - dstStages |= pNextAccessInfo->stageMask; - - memoryBarrier.dstAccessMask |= pNextAccessInfo->accessMask; - memoryBarrier.newLayout = pNextAccessInfo->imageLayout; - - if (srcStages == 0) - { - srcStages = VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; - } - if (dstStages == 0) - { - dstStages = VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT; - } - - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - renderer->needNewRenderPass = 1; - - RECORD_CMD(renderer->vkCmdPipelineBarrier( - renderer->currentCommandBufferContainer->commandBuffer, - srcStages, - dstStages, - 0, - 0, - NULL, - 0, - NULL, - 1, - &memoryBarrier - )); - - *resourceAccessType = nextAccess; - - SDL_UnlockMutex(renderer->passLock); -} - -/* Allocator functions */ - -static VulkanBuffer* VULKAN_INTERNAL_CreateBuffer( - VulkanRenderer *renderer, - VkDeviceSize size, - VulkanResourceAccessType resourceAccessType, - VkBufferUsageFlags usage, - uint8_t preferDeviceLocal, - uint8_t isTransferBuffer -) { - VkBufferCreateInfo bufferCreateInfo; - VkResult vulkanResult; - uint8_t bindResult = 0; - VulkanBuffer *buffer = SDL_malloc(sizeof(VulkanBuffer)); - - buffer->size = size; - buffer->resourceAccessType = resourceAccessType; - buffer->usage = usage | VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT; - buffer->preferDeviceLocal = preferDeviceLocal; - buffer->isTransferBuffer = isTransferBuffer; - buffer->bound = 0; - - bufferCreateInfo.sType = VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO; - bufferCreateInfo.pNext = NULL; - bufferCreateInfo.flags = 0; - bufferCreateInfo.size = buffer->size; - bufferCreateInfo.usage = buffer->usage; - bufferCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - bufferCreateInfo.queueFamilyIndexCount = 1; - bufferCreateInfo.pQueueFamilyIndices = &renderer->queueFamilyIndex; - - vulkanResult = renderer->vkCreateBuffer( - renderer->logicalDevice, - &bufferCreateInfo, - NULL, - &buffer->buffer - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateBuffer, 0) - - buffer->bufferCreateInfo = bufferCreateInfo; - - bindResult = VULKAN_INTERNAL_BindMemoryForBuffer( - renderer, - buffer->buffer, - buffer->size, - buffer->preferDeviceLocal, - buffer->isTransferBuffer, - &buffer->usedRegion - ); - - /* Binding failed, bail out! */ - if (bindResult != 1) - { - renderer->vkDestroyBuffer( - renderer->logicalDevice, - buffer->buffer, - NULL); - - return NULL; - } - - buffer->usedRegion->vulkanBuffer = buffer; /* lol */ - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - buffer->resourceAccessType, - buffer->buffer, - &buffer->resourceAccessType - ); - - return buffer; -} - -/* Transfer buffer functions */ - -static VulkanTransferBuffer* VULKAN_INTERNAL_AcquireTransferBuffer( - VulkanRenderer *renderer, - VulkanCommandBufferContainer *commandBufferContainer, - VkDeviceSize requiredSize, - VkDeviceSize alignment -) { - VulkanTransferBuffer *transferBuffer; - uint32_t i; - VkDeviceSize size; - VkDeviceSize offset; - - /* Search the command buffer's current transfer buffers */ - - for (i = 0; i < commandBufferContainer->transferBufferCount; i += 1) - { - transferBuffer = commandBufferContainer->transferBuffers[i]; - offset = transferBuffer->offset + alignment - (transferBuffer->offset % alignment); - - if (offset + requiredSize <= transferBuffer->buffer->size) - { - transferBuffer->offset = offset; - return transferBuffer; - } - } - - /* Nothing fits so let's get a transfer buffer from the pool */ - - if (commandBufferContainer->transferBufferCount == commandBufferContainer->transferBufferCapacity) - { - commandBufferContainer->transferBufferCapacity += 1; - commandBufferContainer->transferBuffers = SDL_realloc( - commandBufferContainer->transferBuffers, - commandBufferContainer->transferBufferCapacity * sizeof(VulkanTransferBuffer*) - ); - } - - /* Is the fast transfer buffer available? */ - if ( renderer->transferBufferPool.fastTransferBufferAvailable && - requiredSize < FAST_TRANSFER_SIZE ) - { - transferBuffer = renderer->transferBufferPool.fastTransferBuffer; - renderer->transferBufferPool.fastTransferBufferAvailable = 0; - - commandBufferContainer->transferBuffers[commandBufferContainer->transferBufferCount] = transferBuffer; - commandBufferContainer->transferBufferCount += 1; - - /* If the fast transfer buffer is available, the offset is always zero */ - return transferBuffer; - } - - /* Nope, let's get a slow buffer */ - for (i = 0; i < renderer->transferBufferPool.availableSlowTransferBufferCount; i += 1) - { - transferBuffer = renderer->transferBufferPool.availableSlowTransferBuffers[i]; - offset = transferBuffer->offset + alignment - (transferBuffer->offset % alignment); - - if (offset + requiredSize <= transferBuffer->buffer->size) - { - commandBufferContainer->transferBuffers[commandBufferContainer->transferBufferCount] = transferBuffer; - commandBufferContainer->transferBufferCount += 1; - - renderer->transferBufferPool.availableSlowTransferBuffers[i] = renderer->transferBufferPool.availableSlowTransferBuffers[renderer->transferBufferPool.availableSlowTransferBufferCount - 1]; - renderer->transferBufferPool.availableSlowTransferBufferCount -= 1; - - transferBuffer->offset = offset; - return transferBuffer; - } - } - - /* Nothing fits still, so let's create a new transfer buffer */ - - size = STARTING_TRANSFER_BUFFER_SIZE; - - while (size < requiredSize) - { - size *= 2; - } - - transferBuffer = SDL_malloc(sizeof(VulkanTransferBuffer)); - transferBuffer->offset = 0; - transferBuffer->buffer = VULKAN_INTERNAL_CreateBuffer( - renderer, - size, - RESOURCE_ACCESS_MEMORY_TRANSFER_READ_WRITE, - VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, - 0, - 1 - ); - - if (transferBuffer == NULL) - { - FNA3D_LogError("Failed to allocate transfer buffer!"); - return NULL; - } - - if (commandBufferContainer->transferBufferCount == commandBufferContainer->transferBufferCapacity) - { - commandBufferContainer->transferBufferCapacity += 1; - commandBufferContainer->transferBuffers = SDL_realloc( - commandBufferContainer->transferBuffers, - commandBufferContainer->transferBufferCapacity * sizeof(VulkanTransferBuffer*) - ); - } - - commandBufferContainer->transferBuffers[commandBufferContainer->transferBufferCount] = transferBuffer; - commandBufferContainer->transferBufferCount += 1; - - return transferBuffer; -} - -static void VULKAN_INTERNAL_CopyToTransferBuffer( - VulkanRenderer *renderer, - void* data, - uint32_t uploadLength, - uint32_t copyLength, - VulkanBuffer **pTransferBuffer, - VkDeviceSize *pOffset, - VkDeviceSize alignment -) { - VulkanTransferBuffer *transferBuffer; - uint8_t *transferBufferPointer; - VkDeviceSize fmtAlignment = VULKAN_INTERNAL_NextHighestAlignment( - alignment, - renderer->physicalDeviceProperties.properties.limits.optimalBufferCopyOffsetAlignment - ); - - transferBuffer = VULKAN_INTERNAL_AcquireTransferBuffer( - renderer, - renderer->currentCommandBufferContainer, - uploadLength, - fmtAlignment - ); - - transferBufferPointer = - transferBuffer->buffer->usedRegion->allocation->mapPointer + - transferBuffer->buffer->usedRegion->resourceOffset + - transferBuffer->offset; - - SDL_memcpy( - transferBufferPointer, - data, - copyLength - ); - - *pTransferBuffer = transferBuffer->buffer; - *pOffset = transferBuffer->offset; - - transferBuffer->offset += copyLength; -} - -static void VULKAN_INTERNAL_PrepareCopyFromTransferBuffer( - VulkanRenderer *renderer, - VkDeviceSize dataLength, - VkDeviceSize alignment, - VulkanTransferBuffer **pTransferBuffer, - void **pTransferBufferPointer -) { - VkDeviceSize fmtAlignment = VULKAN_INTERNAL_NextHighestAlignment( - alignment, - renderer->physicalDeviceProperties.properties.limits.optimalBufferCopyOffsetAlignment - ); - - VulkanTransferBuffer *transferBuffer = VULKAN_INTERNAL_AcquireTransferBuffer( - renderer, - renderer->currentCommandBufferContainer, - dataLength, - fmtAlignment - ); - - *pTransferBuffer = transferBuffer; - *pTransferBufferPointer = - transferBuffer->buffer->usedRegion->allocation->mapPointer + - transferBuffer->buffer->usedRegion->resourceOffset + - transferBuffer->offset; -} - -/* Vulkan: Descriptor Set Logic */ - -static uint8_t VULKAN_INTERNAL_CreateDescriptorPool( - VulkanRenderer *renderer, - VkDescriptorType descriptorType, - uint32_t descriptorSetCount, - uint32_t descriptorCount, - VkDescriptorPool *pDescriptorPool -) { - VkResult vulkanResult; - - VkDescriptorPoolSize descriptorPoolSize; - VkDescriptorPoolCreateInfo descriptorPoolInfo; - - descriptorPoolSize.type = descriptorType; - descriptorPoolSize.descriptorCount = descriptorCount; - - descriptorPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - descriptorPoolInfo.pNext = NULL; - descriptorPoolInfo.flags = 0; - descriptorPoolInfo.maxSets = descriptorSetCount; - descriptorPoolInfo.poolSizeCount = 1; - descriptorPoolInfo.pPoolSizes = &descriptorPoolSize; - - vulkanResult = renderer->vkCreateDescriptorPool( - renderer->logicalDevice, - &descriptorPoolInfo, - NULL, - pDescriptorPool - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateDescriptorPool, 0) - - return 1; -} - -static uint8_t VULKAN_INTERNAL_AllocateDescriptorSets( - VulkanRenderer *renderer, - VkDescriptorPool descriptorPool, - VkDescriptorSetLayout descriptorSetLayout, - uint32_t descriptorSetCount, - VkDescriptorSet *descriptorSetArray -) { - VkResult vulkanResult; - uint32_t i; - VkDescriptorSetAllocateInfo descriptorSetAllocateInfo; - VkDescriptorSetLayout *descriptorSetLayouts = SDL_stack_alloc(VkDescriptorSetLayout, descriptorSetCount); - - for (i = 0; i < descriptorSetCount; i += 1) - { - descriptorSetLayouts[i] = descriptorSetLayout; - } - - descriptorSetAllocateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; - descriptorSetAllocateInfo.pNext = NULL; - descriptorSetAllocateInfo.descriptorPool = descriptorPool; - descriptorSetAllocateInfo.descriptorSetCount = descriptorSetCount; - descriptorSetAllocateInfo.pSetLayouts = descriptorSetLayouts; - - vulkanResult = renderer->vkAllocateDescriptorSets( - renderer->logicalDevice, - &descriptorSetAllocateInfo, - descriptorSetArray - ); - - SDL_stack_free(descriptorSetLayouts); - - VULKAN_ERROR_CHECK(vulkanResult, vkAllocateDescriptorSets, 0) - - return 1; -} - -static uint16_t VULKAN_INTERNAL_FetchSamplerBitmask( - MOJOSHADER_vkShader *shader -) { - const MOJOSHADER_parseData *parseData = MOJOSHADER_vkGetShaderParseData(shader); - uint16_t bitmask = 0; - uint8_t i; - - for (i = 0; i < parseData->sampler_count; i += 1) - { - bitmask |= (1 << parseData->samplers[i].index); - } - - return bitmask; -} - -static VkDescriptorSetLayout VULKAN_INTERNAL_FetchSamplerDescriptorSetLayout( - VulkanRenderer *renderer, - MOJOSHADER_vkShader *shader, - VkShaderStageFlagBits stageFlag -) { - DescriptorSetLayoutHash descriptorSetLayoutHash; - VkDescriptorSetLayout descriptorSetLayout; - - VkDescriptorSetLayoutBinding setLayoutBindings[MAX_TEXTURE_SAMPLERS]; - VkDescriptorSetLayoutCreateInfo setLayoutCreateInfo; - - uint32_t samplerCount = MOJOSHADER_vkGetShaderParseData(shader)->sampler_count; - MOJOSHADER_sampler *samplerInfos = MOJOSHADER_vkGetShaderParseData(shader)->samplers; - - VkResult vulkanResult; - uint32_t i; - - descriptorSetLayoutHash.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - descriptorSetLayoutHash.stageFlag = stageFlag; - descriptorSetLayoutHash.bitmask = VULKAN_INTERNAL_FetchSamplerBitmask(shader); - - descriptorSetLayout = DescriptorSetLayoutHashTable_Fetch(&renderer->descriptorSetLayoutTable, descriptorSetLayoutHash); - - if (descriptorSetLayout != VK_NULL_HANDLE) - { - return descriptorSetLayout; - } - - if (samplerCount == 0) /* dummy sampler case */ - { - setLayoutBindings[0].binding = 0; - setLayoutBindings[0].descriptorCount = 1; - setLayoutBindings[0].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - setLayoutBindings[0].stageFlags = stageFlag; - setLayoutBindings[0].pImmutableSamplers = NULL; - } - else - { - for (i = 0; i < samplerCount; i += 1) - { - setLayoutBindings[i].binding = samplerInfos[i].index; - setLayoutBindings[i].descriptorCount = 1; - setLayoutBindings[i].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - setLayoutBindings[i].stageFlags = stageFlag; - setLayoutBindings[i].pImmutableSamplers = NULL; - } - } - - setLayoutCreateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; - setLayoutCreateInfo.pNext = NULL; - setLayoutCreateInfo.flags = 0; - setLayoutCreateInfo.bindingCount = SDL_max(samplerCount, 1); - setLayoutCreateInfo.pBindings = setLayoutBindings; - - vulkanResult = renderer->vkCreateDescriptorSetLayout( - renderer->logicalDevice, - &setLayoutCreateInfo, - NULL, - &descriptorSetLayout - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateDescriptorSetLayout, VK_NULL_HANDLE) - - DescriptorSetLayoutHashTable_Insert( - &renderer->descriptorSetLayoutTable, - descriptorSetLayoutHash, - descriptorSetLayout - ); - - return descriptorSetLayout; -} - -static void ShaderResources_Destroy( - VulkanRenderer *renderer, - ShaderResources *shaderResources -) { - uint32_t i, j; - VulkanCommandBufferContainer *commandBufferContainer; - for (i = 0; i < shaderResources->samplerDescriptorPoolCount; i += 1) - { - renderer->vkDestroyDescriptorPool( - renderer->logicalDevice, - shaderResources->samplerDescriptorPools[i], - NULL - ); - } - - /* Don't return descriptor sets allocated from this shader resource to the inactive pool! */ - for (i = 0; i < renderer->submittedCommandBufferContainerCount; i += 1) - { - commandBufferContainer = renderer->submittedCommandBufferContainers[i]; - - for (j = 0; j < commandBufferContainer->usedDescriptorSetDataCount; j += 1) - { - if (commandBufferContainer->usedDescriptorSetDatas[j].parent == shaderResources) - { - commandBufferContainer->usedDescriptorSetDatas[j].descriptorSet = VK_NULL_HANDLE; - } - } - } - - SDL_free(shaderResources->samplerDescriptorPools); - SDL_free(shaderResources->samplerBindingIndices); - SDL_free(shaderResources->inactiveDescriptorSets); - - SDL_free(shaderResources); -} - -static ShaderResources *ShaderResources_Init( - VulkanRenderer *renderer, - MOJOSHADER_vkShader *shader, - VkShaderStageFlagBits shaderStageFlag -) { - uint32_t i; - VkBuffer vUniform, fUniform; - VkWriteDescriptorSet writeDescriptorSet; - VkDescriptorImageInfo imageInfo; - unsigned long long vOff, fOff, vSize, fSize; - uint32_t descriptorPoolSize = STARTING_SAMPLER_DESCRIPTOR_POOL_SIZE; - ShaderResources *shaderResources = SDL_malloc(sizeof(ShaderResources)); - - /* - * Lock to prevent mojoshader resources - * from being overwritten during initialization - */ - SDL_LockMutex(renderer->passLock); - - shaderResources->samplerLayout = VULKAN_INTERNAL_FetchSamplerDescriptorSetLayout(renderer, shader, shaderStageFlag); - shaderResources->samplerCount = MOJOSHADER_vkGetShaderParseData(shader)->sampler_count; - - shaderResources->samplerDescriptorPools = SDL_malloc(sizeof(VkDescriptorPool)); - shaderResources->samplerDescriptorPoolCount = 1; - - if (shaderResources->samplerCount == 0) - { - descriptorPoolSize = 1; - } - - VULKAN_INTERNAL_CreateDescriptorPool( - renderer, - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - descriptorPoolSize, - descriptorPoolSize * SDL_max(shaderResources->samplerCount, 1), /* in case of dummy data */ - &shaderResources->samplerDescriptorPools[0] - ); - - shaderResources->nextPoolSize = STARTING_SAMPLER_DESCRIPTOR_POOL_SIZE * 2; - - shaderResources->samplerBindingIndices = SDL_malloc(sizeof(uint8_t) * shaderResources->samplerCount); - - for (i = 0; i < shaderResources->samplerCount; i += 1) - { - shaderResources->samplerBindingIndices[i] = MOJOSHADER_vkGetShaderParseData(shader)->samplers[i].index; - } - - if (shaderResources->samplerCount > 0) - { - shaderResources->inactiveDescriptorSetCapacity = STARTING_SAMPLER_DESCRIPTOR_POOL_SIZE; - shaderResources->inactiveDescriptorSetCount = STARTING_SAMPLER_DESCRIPTOR_POOL_SIZE - 1; - shaderResources->inactiveDescriptorSets = SDL_malloc(sizeof(VkDescriptorSet) * STARTING_SAMPLER_DESCRIPTOR_POOL_SIZE); - - VULKAN_INTERNAL_AllocateDescriptorSets( - renderer, - shaderResources->samplerDescriptorPools[0], - shaderResources->samplerLayout, - STARTING_SAMPLER_DESCRIPTOR_POOL_SIZE, - shaderResources->inactiveDescriptorSets - ); - } - else - { - shaderResources->inactiveDescriptorSetCapacity = 0; - shaderResources->inactiveDescriptorSetCount = 0; - shaderResources->inactiveDescriptorSets = NULL; - - /* Set up the dummy descriptor set */ - VULKAN_INTERNAL_AllocateDescriptorSets( - renderer, - shaderResources->samplerDescriptorPools[0], - shaderResources->samplerLayout, - 1, - &shaderResources->dummySamplerDescriptorSet - ); - - imageInfo.imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - - if (shaderStageFlag == VK_SHADER_STAGE_VERTEX_BIT) - { - imageInfo.imageView = renderer->dummyVertTexture->view; - imageInfo.sampler = renderer->dummyVertSamplerState; - } - else - { - imageInfo.imageView = renderer->dummyFragTexture->view; - imageInfo.sampler = renderer->dummyFragSamplerState; - } - - writeDescriptorSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - writeDescriptorSet.pNext = NULL; - writeDescriptorSet.descriptorCount = 1; - writeDescriptorSet.descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - writeDescriptorSet.dstArrayElement = 0; - writeDescriptorSet.dstBinding = 0; - writeDescriptorSet.dstSet = shaderResources->dummySamplerDescriptorSet; - writeDescriptorSet.pBufferInfo = NULL; - writeDescriptorSet.pImageInfo = &imageInfo; - writeDescriptorSet.pTexelBufferView = NULL; - - renderer->vkUpdateDescriptorSets( - renderer->logicalDevice, - 1, - &writeDescriptorSet, - 0, - NULL - ); - } - - MOJOSHADER_vkGetUniformBuffers( - renderer->mojoshaderContext, - &vUniform, &vOff, &vSize, - &fUniform, &fOff, &fSize - ); - - if (shaderStageFlag == VK_SHADER_STAGE_VERTEX_BIT) - { - VULKAN_INTERNAL_AllocateDescriptorSets( - renderer, - renderer->uniformBufferDescriptorPool, - renderer->vertexUniformBufferDescriptorSetLayout, - 1, - &shaderResources->uniformDescriptorSet - ); - - shaderResources->uniformBufferInfo.buffer = vUniform; - shaderResources->uniformBufferInfo.offset = 0; - shaderResources->uniformBufferInfo.range = vSize; - } - else - { - VULKAN_INTERNAL_AllocateDescriptorSets( - renderer, - renderer->uniformBufferDescriptorPool, - renderer->fragUniformBufferDescriptorSetLayout, - 1, - &shaderResources->uniformDescriptorSet - ); - - shaderResources->uniformBufferInfo.buffer = fUniform; - shaderResources->uniformBufferInfo.offset = 0; - shaderResources->uniformBufferInfo.range = fSize; - } - - if (shaderResources->uniformBufferInfo.buffer != VK_NULL_HANDLE) - { - writeDescriptorSet.sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - writeDescriptorSet.pNext = NULL; - writeDescriptorSet.descriptorCount = 1; - writeDescriptorSet.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; - writeDescriptorSet.dstArrayElement = 0; - writeDescriptorSet.dstBinding = 0; - writeDescriptorSet.dstSet = shaderResources->uniformDescriptorSet; - writeDescriptorSet.pBufferInfo = &shaderResources->uniformBufferInfo; - writeDescriptorSet.pImageInfo = NULL; - - renderer->vkUpdateDescriptorSets( - renderer->logicalDevice, - 1, - &writeDescriptorSet, - 0, - NULL - ); - } - - SDL_UnlockMutex(renderer->passLock); - - return shaderResources; -} - -static ShaderResources* VULKAN_INTERNAL_FetchShaderResources( - VulkanRenderer *renderer, - MOJOSHADER_vkShader *shader, - VkShaderStageFlagBits shaderStageFlag -) { - ShaderResources *shaderResources = ShaderResourcesHashTable_Fetch(&renderer->shaderResourcesHashTable, shader); - - if (shaderResources == VK_NULL_HANDLE) - { - shaderResources = ShaderResources_Init(renderer, shader, shaderStageFlag); - ShaderResourcesHashTable_Insert(&renderer->shaderResourcesHashTable, shader, shaderResources); - } - - return shaderResources; -} - -/* Fetches or creates a new descriptor set based on data */ -static VkDescriptorSet ShaderResources_FetchDescriptorSet( - VulkanRenderer *renderer, - ShaderResources *shaderResources -) { - VkDescriptorSet newDescriptorSet; - - /* If no inactive descriptor sets remain, create a new pool and allocate new inactive sets */ - - if (shaderResources->inactiveDescriptorSetCount == 0) - { - shaderResources->samplerDescriptorPoolCount += 1; - shaderResources->samplerDescriptorPools = SDL_realloc( - shaderResources->samplerDescriptorPools, - sizeof(VkDescriptorPool) * shaderResources->samplerDescriptorPoolCount - ); - - VULKAN_INTERNAL_CreateDescriptorPool( - renderer, - VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER, - shaderResources->nextPoolSize, - shaderResources->nextPoolSize * SDL_max(shaderResources->samplerCount, 1), /* dont want 0 in case of dummy data */ - &shaderResources->samplerDescriptorPools[shaderResources->samplerDescriptorPoolCount - 1] - ); - - shaderResources->inactiveDescriptorSetCapacity += shaderResources->nextPoolSize; - - shaderResources->inactiveDescriptorSets = SDL_realloc( - shaderResources->inactiveDescriptorSets, - sizeof(VkDescriptorSet) * shaderResources->inactiveDescriptorSetCapacity - ); - - VULKAN_INTERNAL_AllocateDescriptorSets( - renderer, - shaderResources->samplerDescriptorPools[shaderResources->samplerDescriptorPoolCount - 1], - shaderResources->samplerLayout, - shaderResources->nextPoolSize, - shaderResources->inactiveDescriptorSets - ); - - shaderResources->inactiveDescriptorSetCount = shaderResources->nextPoolSize; - - shaderResources->nextPoolSize *= 2; - } - - newDescriptorSet = shaderResources->inactiveDescriptorSets[shaderResources->inactiveDescriptorSetCount - 1]; - shaderResources->inactiveDescriptorSetCount -= 1; - - return newDescriptorSet; -} - -static void VULKAN_INTERNAL_RegisterUsedDescriptorSet( - VulkanRenderer *renderer, - ShaderResources *parent, - VkDescriptorSet descriptorSet -) { - VulkanCommandBufferContainer *commandBufferContainer = renderer->currentCommandBufferContainer; - - if (commandBufferContainer->usedDescriptorSetDataCount >= commandBufferContainer->usedDescriptorSetDataCapacity) - { - commandBufferContainer->usedDescriptorSetDataCapacity *= 2; - commandBufferContainer->usedDescriptorSetDatas = SDL_realloc( - commandBufferContainer->usedDescriptorSetDatas, - commandBufferContainer->usedDescriptorSetDataCapacity * sizeof(DescriptorSetData) - ); - } - - commandBufferContainer->usedDescriptorSetDatas[commandBufferContainer->usedDescriptorSetDataCount].descriptorSet = descriptorSet; - commandBufferContainer->usedDescriptorSetDatas[commandBufferContainer->usedDescriptorSetDataCount].parent = parent; - commandBufferContainer->usedDescriptorSetDataCount += 1; -} - -/* Must take an array of descriptor sets of size 4 */ -static void VULKAN_INTERNAL_FetchDescriptorSetDataAndOffsets( - VulkanRenderer *renderer, - ShaderResources *vertShaderResources, - ShaderResources *fragShaderResources, - VkDescriptorSet *descriptorSets, - uint32_t *dynamicOffsets -) { - VkBuffer vUniform, fUniform; - unsigned long long vOff, fOff, vSize, fSize; /* MojoShader type */ - - MOJOSHADER_vkShader *vertShader, *fragShader; - MOJOSHADER_samplerType samplerType; - VkWriteDescriptorSet writeDescriptorSets[MAX_TEXTURE_SAMPLERS]; - VkDescriptorImageInfo imageInfos[MAX_TEXTURE_SAMPLERS]; - - uint32_t i; - - MOJOSHADER_vkGetBoundShaders(renderer->mojoshaderContext, &vertShader, &fragShader); - - if (renderer->vertexSamplerDescriptorSetDataNeedsUpdate) - { - if (vertShaderResources->samplerCount == 0) - { - renderer->currentVertexSamplerDescriptorSet = vertShaderResources->dummySamplerDescriptorSet; - } - else - { - renderer->currentVertexSamplerDescriptorSet = ShaderResources_FetchDescriptorSet( - renderer, - vertShaderResources - ); - - for (i = 0; i < vertShaderResources->samplerCount; i += 1) - { - if (renderer->textures[MAX_TEXTURE_SAMPLERS + vertShaderResources->samplerBindingIndices[i]] != &NullTexture) - { - imageInfos[i].imageView = renderer->textures[MAX_TEXTURE_SAMPLERS + vertShaderResources->samplerBindingIndices[i]]->view; - imageInfos[i].sampler = renderer->samplers[MAX_TEXTURE_SAMPLERS + vertShaderResources->samplerBindingIndices[i]]; - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - } - else - { - samplerType = MOJOSHADER_vkGetShaderParseData(vertShader)->samplers[i].type; - if (samplerType == MOJOSHADER_SAMPLER_2D) - { - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - imageInfos[i].imageView = renderer->dummyVertTexture->view; - imageInfos[i].sampler = renderer->dummyVertSamplerState; - } - else if (samplerType == MOJOSHADER_SAMPLER_VOLUME) - { - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - imageInfos[i].imageView = renderer->dummyVertTexture3D->view; - imageInfos[i].sampler = renderer->dummyVertSampler3DState; - } - else if (samplerType == MOJOSHADER_SAMPLER_CUBE) - { - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - imageInfos[i].imageView = renderer->dummyVertTextureCube->view; - imageInfos[i].sampler = renderer->dummyVertSamplerCubeState; - } - } - - writeDescriptorSets[i].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - writeDescriptorSets[i].pNext = NULL; - writeDescriptorSets[i].descriptorCount = 1; - writeDescriptorSets[i].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - writeDescriptorSets[i].dstArrayElement = 0; - writeDescriptorSets[i].dstBinding = vertShaderResources->samplerBindingIndices[i]; - writeDescriptorSets[i].dstSet = renderer->currentVertexSamplerDescriptorSet; - writeDescriptorSets[i].pBufferInfo = NULL; - writeDescriptorSets[i].pImageInfo = &imageInfos[i]; - writeDescriptorSets[i].pTexelBufferView = NULL; - } - - renderer->vkUpdateDescriptorSets( - renderer->logicalDevice, - vertShaderResources->samplerCount, - writeDescriptorSets, - 0, - NULL - ); - - VULKAN_INTERNAL_RegisterUsedDescriptorSet( - renderer, - vertShaderResources, - renderer->currentVertexSamplerDescriptorSet - ); - } - } - - if (renderer->fragSamplerDescriptorSetDataNeedsUpdate) - { - if (fragShaderResources->samplerCount == 0) - { - renderer->currentFragSamplerDescriptorSet = fragShaderResources->dummySamplerDescriptorSet; - } - else - { - renderer->currentFragSamplerDescriptorSet = ShaderResources_FetchDescriptorSet( - renderer, - fragShaderResources - ); - - for (i = 0; i < fragShaderResources->samplerCount; i += 1) - { - if (renderer->textures[fragShaderResources->samplerBindingIndices[i]] != &NullTexture) - { - imageInfos[i].imageView = renderer->textures[fragShaderResources->samplerBindingIndices[i]]->view; - imageInfos[i].sampler = renderer->samplers[fragShaderResources->samplerBindingIndices[i]]; - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - } - else - { - - samplerType = MOJOSHADER_vkGetShaderParseData(fragShader)->samplers[i].type; - if (samplerType == MOJOSHADER_SAMPLER_2D) - { - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - imageInfos[i].imageView = renderer->dummyFragTexture->view; - imageInfos[i].sampler = renderer->dummyFragSamplerState; - } - else if (samplerType == MOJOSHADER_SAMPLER_VOLUME) - { - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - imageInfos[i].imageView = renderer->dummyFragTexture3D->view; - imageInfos[i].sampler = renderer->dummyFragSampler3DState; - } - else if (samplerType == MOJOSHADER_SAMPLER_CUBE) - { - imageInfos[i].imageLayout = VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL; - imageInfos[i].imageView = renderer->dummyFragTextureCube->view; - imageInfos[i].sampler = renderer->dummyFragSamplerCubeState; - } - } - - writeDescriptorSets[i].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - writeDescriptorSets[i].pNext = NULL; - writeDescriptorSets[i].descriptorCount = 1; - writeDescriptorSets[i].descriptorType = VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER; - writeDescriptorSets[i].dstArrayElement = 0; - writeDescriptorSets[i].dstBinding = fragShaderResources->samplerBindingIndices[i]; - writeDescriptorSets[i].dstSet = renderer->currentFragSamplerDescriptorSet; - writeDescriptorSets[i].pBufferInfo = NULL; - writeDescriptorSets[i].pImageInfo = &imageInfos[i]; - writeDescriptorSets[i].pTexelBufferView = NULL; - } - - renderer->vkUpdateDescriptorSets( - renderer->logicalDevice, - fragShaderResources->samplerCount, - writeDescriptorSets, - 0, - NULL - ); - - VULKAN_INTERNAL_RegisterUsedDescriptorSet( - renderer, - fragShaderResources, - renderer->currentFragSamplerDescriptorSet - ); - } - } - - renderer->vertexSamplerDescriptorSetDataNeedsUpdate = 0; - renderer->fragSamplerDescriptorSetDataNeedsUpdate = 0; - - descriptorSets[0] = renderer->currentVertexSamplerDescriptorSet; - descriptorSets[1] = renderer->currentFragSamplerDescriptorSet; - descriptorSets[2] = vertShaderResources->uniformDescriptorSet; - descriptorSets[3] = fragShaderResources->uniformDescriptorSet; - - MOJOSHADER_vkGetUniformBuffers( - renderer->mojoshaderContext, - &vUniform, &vOff, &vSize, - &fUniform, &fOff, &fSize - ); - - dynamicOffsets[0] = vOff; - dynamicOffsets[1] = fOff; -} - -/* Vulkan: Command Submission */ - -static void VULKAN_INTERNAL_SwapChainBlit( - VulkanRenderer *renderer, - VulkanSwapchainData *swapchainData, - FNA3D_Rect * sourceRectangle, - FNA3D_Rect *destinationRectangle, - uint32_t swapchainImageIndex -) { - FNA3D_Rect srcRect; - FNA3D_Rect dstRect; - VkImageBlit blit; - - if (sourceRectangle != NULL) - { - srcRect = *sourceRectangle; - } - else - { - srcRect.x = 0; - srcRect.y = 0; - srcRect.w = renderer->fauxBackbufferWidth; - srcRect.h = renderer->fauxBackbufferHeight; - } - - if (destinationRectangle != NULL) - { - dstRect = *destinationRectangle; - } - else - { - dstRect.x = 0; - dstRect.y = 0; - dstRect.w = swapchainData->extent.width; - dstRect.h = swapchainData->extent.height; - } - - /* Blit the framebuffer! */ - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 0, - renderer->fauxBackbufferColor.handle->image, - &renderer->fauxBackbufferColor.handle->resourceAccessType - ); - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 0, - swapchainData->images[swapchainImageIndex], - &swapchainData->resourceAccessTypes[swapchainImageIndex] - ); - - blit.srcOffsets[0].x = srcRect.x; - blit.srcOffsets[0].y = srcRect.y; - blit.srcOffsets[0].z = 0; - blit.srcOffsets[1].x = srcRect.x + srcRect.w; - blit.srcOffsets[1].y = srcRect.y + srcRect.h; - blit.srcOffsets[1].z = 1; - - blit.srcSubresource.mipLevel = 0; - blit.srcSubresource.baseArrayLayer = 0; - blit.srcSubresource.layerCount = 1; - blit.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - - blit.dstOffsets[0].x = dstRect.x; - blit.dstOffsets[0].y = dstRect.y; - blit.dstOffsets[0].z = 0; - blit.dstOffsets[1].x = dstRect.x + dstRect.w; - blit.dstOffsets[1].y = dstRect.y + dstRect.h; - blit.dstOffsets[1].z = 1; - - blit.dstSubresource.mipLevel = 0; - blit.dstSubresource.baseArrayLayer = 0; - blit.dstSubresource.layerCount = 1; - blit.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - - RECORD_CMD(renderer->vkCmdBlitImage( - renderer->currentCommandBufferContainer->commandBuffer, - renderer->fauxBackbufferColor.handle->image, - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - swapchainData->images[swapchainImageIndex], - VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - 1, - &blit, - VK_FILTER_LINEAR - )); - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_PRESENT, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 0, - swapchainData->images[swapchainImageIndex], - &swapchainData->resourceAccessTypes[swapchainImageIndex] - ); - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_COLOR_ATTACHMENT_READ_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 0, - renderer->fauxBackbufferColor.handle->image, - &renderer->fauxBackbufferColor.handle->resourceAccessType - ); -} - -static void VULKAN_INTERNAL_CleanCommandBuffer( - VulkanRenderer *renderer, - VulkanCommandBufferContainer *vulkanCommandBufferContainer -) { - VulkanTransferBuffer* transferBuffer; - DescriptorSetData *descriptorSetData; - uint32_t i; - - /* Reset bound buffers */ - for (i = 0; i < vulkanCommandBufferContainer->boundBufferCount; i += 1) - { - if (vulkanCommandBufferContainer->boundBuffers[i] != NULL) - { - vulkanCommandBufferContainer->boundBuffers[i]->bound = 0; - } - } - vulkanCommandBufferContainer->boundBufferCount = 0; - - /* Destroy resources marked for destruction */ - VULKAN_INTERNAL_PerformDeferredDestroys(renderer, vulkanCommandBufferContainer); - - /* Return the transfer buffers to the pool */ - for (i = 0; i < vulkanCommandBufferContainer->transferBufferCount; i += 1) - { - transferBuffer = vulkanCommandBufferContainer->transferBuffers[i]; - transferBuffer->offset = 0; - - if (transferBuffer == renderer->transferBufferPool.fastTransferBuffer) - { - renderer->transferBufferPool.fastTransferBufferAvailable = 1; - } - else - { - if (renderer->transferBufferPool.availableSlowTransferBufferCount == renderer->transferBufferPool.availableSlowTransferBufferCapacity) - { - renderer->transferBufferPool.availableSlowTransferBufferCapacity += 1; - renderer->transferBufferPool.availableSlowTransferBuffers = SDL_realloc( - renderer->transferBufferPool.availableSlowTransferBuffers, - renderer->transferBufferPool.availableSlowTransferBufferCapacity * sizeof(VulkanTransferBuffer*) - ); - } - - renderer->transferBufferPool.availableSlowTransferBuffers[renderer->transferBufferPool.availableSlowTransferBufferCount] = transferBuffer; - renderer->transferBufferPool.availableSlowTransferBufferCount += 1; - } - } - vulkanCommandBufferContainer->transferBufferCount = 0; - - /* Mark used descriptor sets as inactive */ - for (i = 0; i < vulkanCommandBufferContainer->usedDescriptorSetDataCount; i += 1) - { - descriptorSetData = &vulkanCommandBufferContainer->usedDescriptorSetDatas[i]; - - if (descriptorSetData->descriptorSet != VK_NULL_HANDLE) - { - descriptorSetData->parent->inactiveDescriptorSets[descriptorSetData->parent->inactiveDescriptorSetCount] = descriptorSetData->descriptorSet; - descriptorSetData->parent->inactiveDescriptorSetCount += 1; - } - } - vulkanCommandBufferContainer->usedDescriptorSetDataCount = 0; - - /* Reset the command buffer */ - SDL_LockMutex(renderer->commandLock); - renderer->vkResetCommandBuffer( - vulkanCommandBufferContainer->commandBuffer, - VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT - ); - SDL_UnlockMutex(renderer->commandLock); - - /* Remove this command buffer from the submitted list */ - for (i = 0; i < renderer->submittedCommandBufferContainerCount; i += 1) - { - if (renderer->submittedCommandBufferContainers[i] == vulkanCommandBufferContainer) - { - renderer->submittedCommandBufferContainers[i] = renderer->submittedCommandBufferContainers[renderer->submittedCommandBufferContainerCount - 1]; - renderer->submittedCommandBufferContainerCount -= 1; - break; - } - } - - /* Add this command buffer to the inactive list */ - if (renderer->inactiveCommandBufferContainerCount + 1 > renderer->inactiveCommandBufferContainerCapacity) - { - renderer->inactiveCommandBufferContainerCapacity = renderer->inactiveCommandBufferContainerCount + 1; - renderer->inactiveCommandBufferContainers = SDL_realloc( - renderer->inactiveCommandBufferContainers, - renderer->inactiveCommandBufferContainerCapacity * sizeof(VulkanCommandBufferContainer*) - ); - } - - renderer->inactiveCommandBufferContainers[renderer->inactiveCommandBufferContainerCount] = vulkanCommandBufferContainer; - renderer->inactiveCommandBufferContainerCount += 1; -} - -static void VULKAN_INTERNAL_CleanDefrag(VulkanRenderer *renderer) -{ - uint32_t i; - - SDL_LockMutex(renderer->allocatorLock); - - /* Destroy old resources that were copied on defragment */ - - for (i = 0; i < renderer->defragmentedBuffersToDestroyCount; i += 1) - { - renderer->vkDestroyBuffer( - renderer->logicalDevice, - renderer->defragmentedBuffersToDestroy[i], - NULL - ); - } - - renderer->defragmentedBuffersToDestroyCount = 0; - - for (i = 0; i < renderer->defragmentedImagesToDestroyCount; i += 1) - { - renderer->vkDestroyImage( - renderer->logicalDevice, - renderer->defragmentedImagesToDestroy[i], - NULL - ); - } - - renderer->defragmentedImagesToDestroyCount = 0; - - for (i = 0; i < renderer->defragmentedImageViewsToDestroyCount; i += 1) - { - VULKAN_INTERNAL_DestroyImageView( - renderer, - renderer->defragmentedImageViewsToDestroy[i] - ); - } - - renderer->defragmentedImageViewsToDestroyCount = 0; - - for (i = 0; i < renderer->usedRegionsToDestroyCount; i += 1) - { - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - renderer->usedRegionsToDestroy[i] - ); - } - - renderer->usedRegionsToDestroyCount = 0; - - SDL_UnlockMutex(renderer->allocatorLock); -} - -static void VULKAN_INTERNAL_SubmitCommands( - VulkanRenderer *renderer, - uint8_t present, - FNA3D_Rect *sourceRectangle, /* ignored if present is false */ - FNA3D_Rect *destinationRectangle, /* ignored if present is false */ - void *windowHandle /* ignored if present is false */ -) { - VkSemaphore semaphores[2]; - VkFence fences[2]; - uint32_t fenceCount = 0; - VkSubmitInfo submitInfo; - VkResult result; - VkResult acquireResult = VK_SUCCESS; - VkResult presentResult = VK_SUCCESS; - uint8_t commandBufferCleaned = 0; - uint8_t acquireSuccess = 0; - uint8_t performDefrag = 0; - uint8_t createSwapchainResult = 0; - uint8_t validSwapchainExists = 0; - VulkanSwapchainData *swapchainData = NULL; - uint32_t swapchainImageIndex; - VulkanCommandBufferContainer *containerToSubmit; - int32_t i, j; - VulkanMemorySubAllocator *allocator; - - SDL_DisplayMode mode; - VkPipelineStageFlags waitStages = VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT; - VkPresentInfoKHR presentInfo; - struct - { - VkStructureType sType; - const void *pNext; - uint64_t frameToken; - } presentInfoGGP; - - /* Must end render pass before ending command buffer */ - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - if (present) - { - SDL_GetCurrentDisplayMode( - SDL_GetWindowDisplayIndex( - (SDL_Window*) windowHandle - ), - &mode - ); - if (mode.refresh_rate == 0) - { - /* Needs to be _something_ */ - mode.refresh_rate = 60; - } - - swapchainData = (VulkanSwapchainData*) SDL_GetWindowData(windowHandle, WINDOW_SWAPCHAIN_DATA); - - if (swapchainData == NULL) - { - createSwapchainResult = VULKAN_INTERNAL_CreateSwapchain(renderer, windowHandle); - - if (createSwapchainResult == CREATE_SWAPCHAIN_FAIL) - { - FNA3D_LogError("Failed to create swapchain for window handle: %p", windowHandle); - } - else if (createSwapchainResult == CREATE_SWAPCHAIN_SURFACE_ZERO) - { - FNA3D_LogInfo("Surface for window handle: %p is size zero, canceling present", windowHandle); - } - else - { - swapchainData = (VulkanSwapchainData*) SDL_GetWindowData(windowHandle, WINDOW_SWAPCHAIN_DATA); - validSwapchainExists = 1; - } - } - else - { - validSwapchainExists = 1; - } - - if (validSwapchainExists) - { - /* Begin next frame */ - acquireResult = renderer->vkAcquireNextImageKHR( - renderer->logicalDevice, - swapchainData->swapchain, - 10000000000 / mode.refresh_rate, /* ~10 frames, so we'll progress even if throttled to zero. */ - swapchainData->imageAvailableSemaphore, - VK_NULL_HANDLE, - &swapchainImageIndex - ); - - if (acquireResult == VK_SUCCESS || acquireResult == VK_SUBOPTIMAL_KHR) - { - VULKAN_INTERNAL_SwapChainBlit( - renderer, - swapchainData, - sourceRectangle, - destinationRectangle, - swapchainImageIndex - ); - - acquireSuccess = 1; - } - } - } - - containerToSubmit = renderer->currentCommandBufferContainer; - VULKAN_INTERNAL_EndCommandBuffer(renderer, 0, 0); - - fences[fenceCount] = renderer->defragCommandBufferContainer->inFlightFence; - fenceCount += 1; - - if (validSwapchainExists && swapchainData->fence != VK_NULL_HANDLE) - { - fences[fenceCount] = swapchainData->fence; - fenceCount += 1; - } - - /* Wait for the defrag to complete */ - result = renderer->vkWaitForFences( - renderer->logicalDevice, - fenceCount, - fences, - VK_TRUE, - UINT64_MAX - ); - - /* This may return an error on exit, so just quietly bail if waiting - * fails for any reason - */ - if (result != VK_SUCCESS) - { - FNA3D_LogWarn("vkWaitForFences: %s", VkErrorMessages(result)); - return; - } - - if (validSwapchainExists) - { - swapchainData->fence = VK_NULL_HANDLE; - } - - VULKAN_INTERNAL_CleanDefrag(renderer); - - /* Check if we can perform any cleanups */ - for (i = renderer->submittedCommandBufferContainerCount - 1; i >= 0; i -= 1) - { - /* If we set a timeout of 0, we can query the command buffer state */ - result = renderer->vkWaitForFences( - renderer->logicalDevice, - 1, - &renderer->submittedCommandBufferContainers[i]->inFlightFence, - VK_TRUE, - 0 - ); - - if (result == VK_SUCCESS) - { - VULKAN_INTERNAL_CleanCommandBuffer( - renderer, - renderer->submittedCommandBufferContainers[i] - ); - - commandBufferCleaned = 1; - } - } - - if (commandBufferCleaned) - { - /* free empty allocations */ - SDL_LockMutex(renderer->allocatorLock); - - for (i = 0; i < VK_MAX_MEMORY_TYPES; i += 1) - { - allocator = &renderer->memoryAllocator->subAllocators[i]; - - for (j = allocator->allocationCount - 1; j >= 0; j -= 1) - { - if (allocator->allocations[j]->usedRegionCount == 0) - { - VULKAN_INTERNAL_DeallocateMemory( - renderer, - allocator, - j - ); - } - } - } - - SDL_UnlockMutex(renderer->allocatorLock); - } - - renderer->bufferDefragInProgress = 0; - - /* Decide if we will be defragmenting */ - if (renderer->resourceFreed) - { - renderer->defragTimer = 0; - } - renderer->resourceFreed = 0; - - if (renderer->needDefrag) - { - renderer->defragTimer += 1; - - if (renderer->defragTimer > 5) - { - performDefrag = 1; - } - } - - /* Prepare command submission */ - submitInfo.sType = VK_STRUCTURE_TYPE_SUBMIT_INFO; - submitInfo.pNext = NULL; - submitInfo.commandBufferCount = 1; - submitInfo.pCommandBuffers = &containerToSubmit->commandBuffer; - submitInfo.signalSemaphoreCount = 0; - - if (present && acquireSuccess) - { - submitInfo.waitSemaphoreCount = 1; - submitInfo.pWaitSemaphores = &swapchainData->imageAvailableSemaphore; - submitInfo.pWaitDstStageMask = &waitStages; - semaphores[submitInfo.signalSemaphoreCount] = swapchainData->renderFinishedSemaphore; - submitInfo.signalSemaphoreCount += 1; - } - else - { - submitInfo.waitSemaphoreCount = 0; - submitInfo.pWaitSemaphores = NULL; - submitInfo.pWaitDstStageMask = NULL; - } - - if (performDefrag) - { - semaphores[submitInfo.signalSemaphoreCount] = renderer->defragSemaphore; - submitInfo.signalSemaphoreCount += 1; - } - - submitInfo.pSignalSemaphores = semaphores; - - renderer->vkResetFences( - renderer->logicalDevice, - 1, - &containerToSubmit->inFlightFence - ); - - /* Submit the commands, finally. */ - result = renderer->vkQueueSubmit( - renderer->unifiedQueue, - 1, - &submitInfo, - containerToSubmit->inFlightFence - ); - VULKAN_ERROR_CHECK(result, vkQueueSubmit,) - - if (validSwapchainExists) - { - swapchainData->fence = containerToSubmit->inFlightFence; - } - - if (renderer->submittedCommandBufferContainerCount >= renderer->submittedCommandBufferContainerCapacity) - { - renderer->submittedCommandBufferContainerCapacity *= 2; - renderer->submittedCommandBufferContainers = SDL_realloc( - renderer->submittedCommandBufferContainers, - renderer->submittedCommandBufferContainerCapacity * sizeof(VulkanCommandBufferContainer*) - ); - } - - renderer->submittedCommandBufferContainers[renderer->submittedCommandBufferContainerCount] = containerToSubmit; - renderer->submittedCommandBufferContainerCount += 1; - - /* Rotate the UBOs */ - MOJOSHADER_vkEndFrame(renderer->mojoshaderContext); - - /* Present, if applicable */ - if (present && acquireSuccess) - { - if (renderer->supports.GGP_frame_token) - { - const void* token = SDL_GetWindowData( - (SDL_Window*) windowHandle, - "GgpFrameToken" - ); - presentInfoGGP.sType = VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP; - presentInfoGGP.pNext = NULL; - presentInfoGGP.frameToken = (uint64_t) (size_t) token; - presentInfo.pNext = &presentInfoGGP; - } - else - { - presentInfo.pNext = NULL; - } - presentInfo.sType = VK_STRUCTURE_TYPE_PRESENT_INFO_KHR; - presentInfo.pNext = NULL; - presentInfo.waitSemaphoreCount = 1; - presentInfo.pWaitSemaphores = - &swapchainData->renderFinishedSemaphore; - presentInfo.swapchainCount = 1; - presentInfo.pSwapchains = &swapchainData->swapchain; - presentInfo.pImageIndices = &swapchainImageIndex; - presentInfo.pResults = NULL; - - presentResult = renderer->vkQueuePresentKHR( - renderer->unifiedQueue, - &presentInfo - ); - } - - /* Now that commands are totally done, check if we need new swapchain */ - if (present) - { - if ( !validSwapchainExists || - acquireResult == VK_ERROR_OUT_OF_DATE_KHR || - acquireResult == VK_SUBOPTIMAL_KHR || - presentResult == VK_ERROR_OUT_OF_DATE_KHR || - presentResult == VK_SUBOPTIMAL_KHR ) - { - VULKAN_INTERNAL_RecreateSwapchain(renderer, windowHandle); - } - - /* This can technically happen anywhere, but this is the nicest - * place for it to happen so we try to log it here. - */ - if ( acquireResult == VK_ERROR_DEVICE_LOST || - presentResult == VK_ERROR_DEVICE_LOST ) - { - FNA3D_LogError("Vulkan device was lost!"); - } - - if (!acquireSuccess) - { - FNA3D_LogInfo("Failed to acquire swapchain image, not presenting"); - } - } - - if (performDefrag) - { - VULKAN_INTERNAL_DefragmentMemory(renderer); - } - - /* Activate the next command buffer */ - VULKAN_INTERNAL_BeginCommandBuffer(renderer); -} - -static void VULKAN_INTERNAL_FlushCommands(VulkanRenderer *renderer, uint8_t sync) -{ - VkResult result; - - SDL_LockMutex(renderer->passLock); - SDL_LockMutex(renderer->commandLock); - SDL_LockMutex(renderer->transferLock); - - VULKAN_INTERNAL_SubmitCommands(renderer, 0, NULL, NULL, NULL); - - if (sync) - { - result = renderer->vkDeviceWaitIdle(renderer->logicalDevice); - - if (result != VK_SUCCESS) - { - FNA3D_LogWarn("vkDeviceWaitIdle: %s", VkErrorMessages(result)); - } - - renderer->bufferDefragInProgress = 0; - } - - SDL_UnlockMutex(renderer->passLock); - SDL_UnlockMutex(renderer->commandLock); - SDL_UnlockMutex(renderer->transferLock); -} - -static void VULKAN_INTERNAL_FlushCommandsAndPresent( - VulkanRenderer *renderer, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -) { - SDL_LockMutex(renderer->passLock); - SDL_LockMutex(renderer->commandLock); - SDL_LockMutex(renderer->transferLock); - - VULKAN_INTERNAL_SubmitCommands( - renderer, - 1, - sourceRectangle, - destinationRectangle, - overrideWindowHandle - ); - - SDL_UnlockMutex(renderer->passLock); - SDL_UnlockMutex(renderer->commandLock); - SDL_UnlockMutex(renderer->transferLock); -} - -/* Vulkan: Swapchain */ - -static CreateSwapchainResult VULKAN_INTERNAL_CreateSwapchain( - VulkanRenderer *renderer, - void *windowHandle -) { - VkResult vulkanResult; - uint32_t i; - VulkanSwapchainData *swapchainData; - VkSwapchainCreateInfoKHR swapchainCreateInfo; - VkImageViewCreateInfo imageViewCreateInfo; - VkSemaphoreCreateInfo semaphoreCreateInfo; - SwapChainSupportDetails swapchainSupportDetails; - uint8_t swapchainSupport; - int32_t drawableWidth, drawableHeight; - - swapchainData = SDL_malloc(sizeof(VulkanSwapchainData)); - swapchainData->windowHandle = windowHandle; - - /* Each swapchain must have its own surface. */ - if (!SDL_Vulkan_CreateSurface( - (SDL_Window*) windowHandle, - renderer->instance, - &swapchainData->surface - )) { - SDL_free(swapchainData); - FNA3D_LogError( - "SDL_Vulkan_CreateSurface failed: %s", - SDL_GetError() - ); - return CREATE_SWAPCHAIN_FAIL; - } - - swapchainSupport = VULKAN_INTERNAL_QuerySwapChainSupport( - renderer, - renderer->physicalDevice, - swapchainData->surface, - &swapchainSupportDetails - ); - - if (swapchainSupport == 0) - { - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - FNA3D_LogError("Surface does not support swapchain creation!"); - return CREATE_SWAPCHAIN_FAIL; - } - - swapchainData->swapchainFormat = renderer->backBufferIsSRGB - ? VK_FORMAT_R8G8B8A8_SRGB - : VK_FORMAT_R8G8B8A8_UNORM; - swapchainData->swapchainSwizzle.r = VK_COMPONENT_SWIZZLE_IDENTITY; - swapchainData->swapchainSwizzle.g = VK_COMPONENT_SWIZZLE_IDENTITY; - swapchainData->swapchainSwizzle.b = VK_COMPONENT_SWIZZLE_IDENTITY; - swapchainData->swapchainSwizzle.a = VK_COMPONENT_SWIZZLE_IDENTITY; - - if (!VULKAN_INTERNAL_ChooseSwapSurfaceFormat( - swapchainData->swapchainFormat, - swapchainSupportDetails.formats, - swapchainSupportDetails.formatsLength, - &swapchainData->surfaceFormat - )) { - FNA3D_LogWarn("RGBA8 swapchain unsupported, falling back to BGRA8 with swizzle"); - swapchainData->swapchainFormat = renderer->backBufferIsSRGB - ? VK_FORMAT_B8G8R8A8_SRGB - : VK_FORMAT_B8G8R8A8_UNORM; - swapchainData->swapchainSwizzle.r = VK_COMPONENT_SWIZZLE_B; - swapchainData->swapchainSwizzle.g = VK_COMPONENT_SWIZZLE_G; - swapchainData->swapchainSwizzle.b = VK_COMPONENT_SWIZZLE_R; - swapchainData->swapchainSwizzle.a = VK_COMPONENT_SWIZZLE_A; - - if (!VULKAN_INTERNAL_ChooseSwapSurfaceFormat( - swapchainData->swapchainFormat, - swapchainSupportDetails.formats, - swapchainSupportDetails.formatsLength, - &swapchainData->surfaceFormat - )) { - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - FNA3D_LogError("Device does not support swap chain format"); - return CREATE_SWAPCHAIN_FAIL; - } - } - - if (!VULKAN_INTERNAL_ChooseSwapPresentMode( - renderer->presentInterval, - swapchainSupportDetails.presentModes, - swapchainSupportDetails.presentModesLength, - &swapchainData->presentMode - )) { - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - FNA3D_LogError("Device does not support swap chain present mode"); - return CREATE_SWAPCHAIN_FAIL; - } - - SDL_Vulkan_GetDrawableSize( - (SDL_Window*) windowHandle, - &drawableWidth, - &drawableHeight - ); - - if ( drawableWidth < swapchainSupportDetails.capabilities.minImageExtent.width || - drawableWidth > swapchainSupportDetails.capabilities.maxImageExtent.width || - drawableHeight < swapchainSupportDetails.capabilities.minImageExtent.height || - drawableHeight > swapchainSupportDetails.capabilities.maxImageExtent.height ) - { - FNA3D_LogWarn("Drawable size not possible for this VkSurface!"); - - if ( swapchainSupportDetails.capabilities.currentExtent.width == 0 || - swapchainSupportDetails.capabilities.currentExtent.height == 0) - { - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - return CREATE_SWAPCHAIN_SURFACE_ZERO; - } - - if (swapchainSupportDetails.capabilities.currentExtent.width != UINT32_MAX) - { - FNA3D_LogWarn("Falling back to an acceptable swapchain extent."); - drawableWidth = VULKAN_INTERNAL_clamp( - drawableWidth, - swapchainSupportDetails.capabilities.minImageExtent.width, - swapchainSupportDetails.capabilities.maxImageExtent.width - ); - drawableHeight = VULKAN_INTERNAL_clamp( - drawableHeight, - swapchainSupportDetails.capabilities.minImageExtent.height, - swapchainSupportDetails.capabilities.maxImageExtent.height - ); - } - else - { - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - FNA3D_LogError("No fallback swapchain size available!"); - return CREATE_SWAPCHAIN_FAIL; - } - } - - swapchainData->extent.width = drawableWidth; - swapchainData->extent.height = drawableHeight; - - swapchainData->imageCount = swapchainSupportDetails.capabilities.minImageCount + 1; - - if ( swapchainSupportDetails.capabilities.maxImageCount > 0 && - swapchainData->imageCount > swapchainSupportDetails.capabilities.maxImageCount ) - { - swapchainData->imageCount = swapchainSupportDetails.capabilities.maxImageCount; - } - - if (swapchainData->presentMode == VK_PRESENT_MODE_MAILBOX_KHR) - { - /* Required for proper triple-buffering. - * Note that this is below the above maxImageCount check! - * If the driver advertises MAILBOX but does not support 3 swap - * images, it's not real mailbox support, so let it fail hard. - * -flibit - */ - swapchainData->imageCount = SDL_max(swapchainData->imageCount, 3); - } - - swapchainCreateInfo.sType = VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR; - swapchainCreateInfo.pNext = NULL; - swapchainCreateInfo.flags = 0; - swapchainCreateInfo.surface = swapchainData->surface; - swapchainCreateInfo.minImageCount = swapchainData->imageCount; - swapchainCreateInfo.imageFormat = swapchainData->surfaceFormat.format; - swapchainCreateInfo.imageColorSpace = swapchainData->surfaceFormat.colorSpace; - swapchainCreateInfo.imageExtent = swapchainData->extent; - swapchainCreateInfo.imageArrayLayers = 1; - swapchainCreateInfo.imageUsage = VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT; - swapchainCreateInfo.imageSharingMode = VK_SHARING_MODE_EXCLUSIVE; - swapchainCreateInfo.queueFamilyIndexCount = 0; - swapchainCreateInfo.pQueueFamilyIndices = NULL; - swapchainCreateInfo.preTransform = swapchainSupportDetails.capabilities.currentTransform; - swapchainCreateInfo.compositeAlpha = VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR; - swapchainCreateInfo.presentMode = swapchainData->presentMode; - swapchainCreateInfo.clipped = VK_TRUE; - swapchainCreateInfo.oldSwapchain = VK_NULL_HANDLE; - - vulkanResult = renderer->vkCreateSwapchainKHR( - renderer->logicalDevice, - &swapchainCreateInfo, - NULL, - &swapchainData->swapchain - ); - - VULKAN_ERROR_CHECK(vulkanResult, vkCreateSwapchainKHR, CREATE_SWAPCHAIN_FAIL) - - renderer->vkGetSwapchainImagesKHR( - renderer->logicalDevice, - swapchainData->swapchain, - &swapchainData->imageCount, - NULL - ); - - swapchainData->images = (VkImage*) SDL_malloc( - sizeof(VkImage) * swapchainData->imageCount - ); - if (!swapchainData->images) - { - SDL_OutOfMemory(); - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - return CREATE_SWAPCHAIN_FAIL; - } - - swapchainData->views = (VkImageView*) SDL_malloc( - sizeof(VkImageView) * swapchainData->imageCount - ); - if (!swapchainData->views) - { - SDL_OutOfMemory(); - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - return CREATE_SWAPCHAIN_FAIL; - } - - swapchainData->resourceAccessTypes = (VulkanResourceAccessType*) SDL_malloc( - sizeof(VulkanResourceAccessType) * swapchainData->imageCount - ); - if (!swapchainData->resourceAccessTypes) - { - SDL_OutOfMemory(); - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - return CREATE_SWAPCHAIN_FAIL; - } - - renderer->vkGetSwapchainImagesKHR( - renderer->logicalDevice, - swapchainData->swapchain, - &swapchainData->imageCount, - swapchainData->images - ); - - imageViewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - imageViewCreateInfo.pNext = NULL; - imageViewCreateInfo.flags = 0; - imageViewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2D; - imageViewCreateInfo.format = swapchainData->surfaceFormat.format; - imageViewCreateInfo.components = swapchainData->swapchainSwizzle; - imageViewCreateInfo.subresourceRange.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - imageViewCreateInfo.subresourceRange.baseMipLevel = 0; - imageViewCreateInfo.subresourceRange.levelCount = 1; - imageViewCreateInfo.subresourceRange.baseArrayLayer = 0; - imageViewCreateInfo.subresourceRange.layerCount = 1; - for (i = 0; i < swapchainData->imageCount; i += 1) - { - imageViewCreateInfo.image = swapchainData->images[i]; - - vulkanResult = renderer->vkCreateImageView( - renderer->logicalDevice, - &imageViewCreateInfo, - NULL, - &swapchainData->views[i] - ); - - if (vulkanResult != VK_SUCCESS) - { - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - SDL_free(swapchainData); - FNA3D_LogError("vkCreateImageView: %s", VkErrorMessages(vulkanResult)); - return CREATE_SWAPCHAIN_FAIL; - } - - swapchainData->resourceAccessTypes[i] = RESOURCE_ACCESS_NONE; - } - - semaphoreCreateInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; - semaphoreCreateInfo.pNext = NULL; - semaphoreCreateInfo.flags = 0; - - renderer->vkCreateSemaphore( - renderer->logicalDevice, - &semaphoreCreateInfo, - NULL, - &swapchainData->imageAvailableSemaphore - ); - - renderer->vkCreateSemaphore( - renderer->logicalDevice, - &semaphoreCreateInfo, - NULL, - &swapchainData->renderFinishedSemaphore - ); - - swapchainData->fence = VK_NULL_HANDLE; - - SDL_SetWindowData(windowHandle, WINDOW_SWAPCHAIN_DATA, swapchainData); - - if (renderer->swapchainDataCount >= renderer->swapchainDataCapacity) - { - renderer->swapchainDataCapacity *= 2; - renderer->swapchainDatas = SDL_realloc( - renderer->swapchainDatas, - renderer->swapchainDataCapacity * sizeof(VulkanSwapchainData*) - ); - } - renderer->swapchainDatas[renderer->swapchainDataCount] = swapchainData; - renderer->swapchainDataCount += 1; - - if (swapchainSupportDetails.formatsLength > 0) - { - SDL_free(swapchainSupportDetails.formats); - } - if (swapchainSupportDetails.presentModesLength > 0) - { - SDL_free(swapchainSupportDetails.presentModes); - } - - return CREATE_SWAPCHAIN_SUCCESS; -} - -static void VULKAN_INTERNAL_DestroySwapchain( - VulkanRenderer *renderer, - void *windowHandle -) { - uint32_t i; - VulkanSwapchainData *swapchainData; - - swapchainData = (VulkanSwapchainData*) SDL_GetWindowData(windowHandle, WINDOW_SWAPCHAIN_DATA); - - if (swapchainData == NULL) - { - return; - } - - for (i = 0; i < renderer->framebufferArray.count; i += 1) - { - renderer->vkDestroyFramebuffer( - renderer->logicalDevice, - renderer->framebufferArray.elements[i].value, - NULL - ); - } - SDL_free(renderer->framebufferArray.elements); - renderer->framebufferArray.elements = NULL; - renderer->framebufferArray.count = 0; - renderer->framebufferArray.capacity = 0; - - for (i = 0; i < swapchainData->imageCount; i += 1) - { - renderer->vkDestroyImageView( - renderer->logicalDevice, - swapchainData->views[i], - NULL - ); - } - - SDL_free(swapchainData->images); - SDL_free(swapchainData->views); - SDL_free(swapchainData->resourceAccessTypes); - - renderer->vkDestroySwapchainKHR( - renderer->logicalDevice, - swapchainData->swapchain, - NULL - ); - - renderer->vkDestroySurfaceKHR( - renderer->instance, - swapchainData->surface, - NULL - ); - - renderer->vkDestroySemaphore( - renderer->logicalDevice, - swapchainData->imageAvailableSemaphore, - NULL - ); - - renderer->vkDestroySemaphore( - renderer->logicalDevice, - swapchainData->renderFinishedSemaphore, - NULL - ); - - for (i = 0; i < renderer->swapchainDataCount; i += 1) - { - if (windowHandle == renderer->swapchainDatas[i]->windowHandle) - { - renderer->swapchainDatas[i] = renderer->swapchainDatas[renderer->swapchainDataCount - 1]; - renderer->swapchainDataCount -= 1; - break; - } - } - - SDL_SetWindowData(windowHandle, WINDOW_SWAPCHAIN_DATA, NULL); - SDL_free(swapchainData); -} - -static void VULKAN_INTERNAL_RecreateSwapchain( - VulkanRenderer *renderer, - void *windowHandle -) { - CreateSwapchainResult createSwapchainResult; - - renderer->vkDeviceWaitIdle(renderer->logicalDevice); - - VULKAN_INTERNAL_DestroySwapchain(renderer, windowHandle); - createSwapchainResult = VULKAN_INTERNAL_CreateSwapchain(renderer, windowHandle); - - if (createSwapchainResult == CREATE_SWAPCHAIN_FAIL) - { - return; - } - - renderer->vkDeviceWaitIdle(renderer->logicalDevice); -} - -/* Vulkan: Buffer Objects */ - -static void VULKAN_INTERNAL_MarkBufferForDestroy( - VulkanRenderer *renderer, - VulkanBuffer *vulkanBuffer -) { - /* Queue buffer for destruction */ - SDL_LockMutex(renderer->commandLock); - if (renderer->currentCommandBufferContainer->buffersToDestroyCount + 1 >= renderer->currentCommandBufferContainer->buffersToDestroyCapacity) - { - renderer->currentCommandBufferContainer->buffersToDestroyCapacity *= 2; - - renderer->currentCommandBufferContainer->buffersToDestroy = SDL_realloc( - renderer->currentCommandBufferContainer->buffersToDestroy, - sizeof(VulkanBuffer*) * renderer->currentCommandBufferContainer->buffersToDestroyCapacity - ); - } - - renderer->currentCommandBufferContainer->buffersToDestroy[ - renderer->currentCommandBufferContainer->buffersToDestroyCount - ] = vulkanBuffer; - renderer->currentCommandBufferContainer->buffersToDestroyCount += 1; - SDL_UnlockMutex(renderer->commandLock); -} - -static void VULKAN_INTERNAL_MarkBufferAsBound( - VulkanRenderer *renderer, - VulkanBuffer *vulkanBuffer -) { - if (vulkanBuffer->bound) - { - return; - } - - vulkanBuffer->bound = 1; - - if (renderer->currentCommandBufferContainer->boundBufferCount >= renderer->currentCommandBufferContainer->boundBufferCapacity) - { - renderer->currentCommandBufferContainer->boundBufferCapacity *= 2; - renderer->currentCommandBufferContainer->boundBuffers = SDL_realloc( - renderer->currentCommandBufferContainer->boundBuffers, - renderer->currentCommandBufferContainer->boundBufferCapacity * sizeof(VulkanBuffer*) - ); - } - - renderer->currentCommandBufferContainer->boundBuffers[renderer->currentCommandBufferContainer->boundBufferCount] = vulkanBuffer; - renderer->currentCommandBufferContainer->boundBufferCount += 1; -} - -/* This function is EXTREMELY sensitive. Change this at your own peril. -cosmonaut */ -static void VULKAN_INTERNAL_SetBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanBufferContainer *vulkanBufferContainer = (VulkanBufferContainer*) buffer; - VulkanBuffer *vulkanBuffer = vulkanBufferContainer->vulkanBuffer; - VulkanBuffer *transferBuffer; - VkDeviceSize transferOffset; - VkBufferCopy bufferCopy; - uint32_t i; - - if ( options == FNA3D_SETDATAOPTIONS_NONE && - dataLength == vulkanBuffer->size ) - { - /* Setting the whole buffer is basically just discard */ - options = FNA3D_SETDATAOPTIONS_DISCARD; - } - - if (options == FNA3D_SETDATAOPTIONS_NONE) - { - /* If NONE is set, we need to do a buffered copy. - * The barriers will synchronize on the GPU so the data isn't overwritten - * before it needs to be used. - */ - - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - SDL_LockMutex(renderer->passLock); - SDL_LockMutex(renderer->transferLock); - - VULKAN_INTERNAL_CopyToTransferBuffer( - renderer, - data, - dataLength, - dataLength, - &transferBuffer, - &transferOffset, - renderer->physicalDeviceProperties.properties.limits.optimalBufferCopyOffsetAlignment - ); - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - transferBuffer->buffer, - &transferBuffer->resourceAccessType - ); - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - vulkanBuffer->buffer, - &vulkanBuffer->resourceAccessType - ); - - bufferCopy.srcOffset = transferOffset; - bufferCopy.dstOffset = offsetInBytes; - bufferCopy.size = (VkDeviceSize)dataLength; - - RECORD_CMD(renderer->vkCmdCopyBuffer( - renderer->currentCommandBufferContainer->commandBuffer, - transferBuffer->buffer, - vulkanBuffer->buffer, - 1, - &bufferCopy - )); - - SDL_UnlockMutex(renderer->transferLock); - SDL_UnlockMutex(renderer->passLock); - } - else - { - if (options == FNA3D_SETDATAOPTIONS_DISCARD && vulkanBuffer->bound) - { - /* If DISCARD is set and the buffer was bound, - * we have to replace the buffer pointer. - */ - - /* If a previously-discarded buffer is available, we can use that. */ - for (i = 0; i < vulkanBufferContainer->bufferCount; i += 1) - { - if (!vulkanBufferContainer->buffers[i]->bound) - { - vulkanBufferContainer->vulkanBuffer = vulkanBufferContainer->buffers[i]; - break; - } - } - - /* If no buffer is available, generate a new one. */ - if (i == vulkanBufferContainer->bufferCount) - { - vulkanBufferContainer->vulkanBuffer = VULKAN_INTERNAL_CreateBuffer( - renderer, - vulkanBuffer->size, - vulkanBuffer->resourceAccessType, - vulkanBuffer->usage, - vulkanBuffer->preferDeviceLocal, - vulkanBuffer->isTransferBuffer - ); - - if (vulkanBufferContainer->bufferCount >= vulkanBufferContainer->bufferCapacity) - { - vulkanBufferContainer->bufferCapacity += 1; - vulkanBufferContainer->buffers = SDL_realloc( - vulkanBufferContainer->buffers, - vulkanBufferContainer->bufferCapacity * sizeof(VulkanBuffer*) - ); - } - - vulkanBufferContainer->buffers[vulkanBufferContainer->bufferCount] = - vulkanBufferContainer->vulkanBuffer; - vulkanBufferContainer->bufferCount += 1; - } - - vulkanBuffer = vulkanBufferContainer->vulkanBuffer; - } - - /* If this is a defrag frame and NoOverwrite is set, wait for defrag to avoid data race */ - if (options == FNA3D_SETDATAOPTIONS_NOOVERWRITE && renderer->bufferDefragInProgress) - { - renderer->vkWaitForFences( - renderer->logicalDevice, - 1, - &renderer->defragCommandBufferContainer->inFlightFence, - VK_TRUE, - UINT64_MAX - ); - - renderer->bufferDefragInProgress = 0; - } - - SDL_memcpy( - vulkanBuffer->usedRegion->allocation->mapPointer + vulkanBuffer->usedRegion->resourceOffset + offsetInBytes, - data, - dataLength - ); - } -} - -static uint8_t VULKAN_INTERNAL_CreateTexture( - VulkanRenderer *renderer, - uint32_t width, - uint32_t height, - uint32_t depth, - uint8_t isCube, - uint8_t isRenderTarget, - VkSampleCountFlagBits samples, - uint32_t levelCount, - VkFormat format, - VkComponentMapping swizzle, - VkImageAspectFlags aspectMask, - VkImageType imageType, - VkImageUsageFlags usage, - VulkanTexture *texture -) { - VkResult result; - uint8_t bindResult = 0; - VkImageCreateInfo imageCreateInfo; - VkImageViewCreateInfo imageViewCreateInfo; - uint8_t layerCount = isCube ? 6 : 1; - uint32_t i; - - imageCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO; - imageCreateInfo.pNext = NULL; - imageCreateInfo.flags = isCube ? VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT : 0; - imageCreateInfo.imageType = imageType; - imageCreateInfo.format = format; - imageCreateInfo.extent.width = width; - imageCreateInfo.extent.height = height; - imageCreateInfo.extent.depth = depth; - imageCreateInfo.mipLevels = levelCount; - imageCreateInfo.arrayLayers = layerCount; - imageCreateInfo.samples = samples; - imageCreateInfo.tiling = VK_IMAGE_TILING_OPTIMAL; - imageCreateInfo.usage = usage; - imageCreateInfo.sharingMode = VK_SHARING_MODE_EXCLUSIVE; - imageCreateInfo.queueFamilyIndexCount = 0; - imageCreateInfo.pQueueFamilyIndices = NULL; - imageCreateInfo.initialLayout = VK_IMAGE_LAYOUT_UNDEFINED; - - result = renderer->vkCreateImage( - renderer->logicalDevice, - &imageCreateInfo, - NULL, - &texture->image - ); - VULKAN_ERROR_CHECK(result, vkCreateImage, 0) - - texture->isRenderTarget = isRenderTarget; - texture->imageCreateInfo = imageCreateInfo; - - bindResult = VULKAN_INTERNAL_BindMemoryForImage( - renderer, - texture->image, - isRenderTarget, - &texture->usedRegion - ); - - /* Binding failed, bail out! */ - if (bindResult != 1) - { - renderer->vkDestroyImage( - renderer->logicalDevice, - texture->image, - NULL - ); - - return bindResult; - } - - texture->usedRegion->vulkanTexture = texture; /* lol */ - - imageViewCreateInfo.sType = VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO; - imageViewCreateInfo.pNext = NULL; - imageViewCreateInfo.flags = 0; - imageViewCreateInfo.image = texture->image; - imageViewCreateInfo.format = format; - imageViewCreateInfo.components = swizzle; - imageViewCreateInfo.subresourceRange.aspectMask = aspectMask; - imageViewCreateInfo.subresourceRange.baseMipLevel = 0; - imageViewCreateInfo.subresourceRange.levelCount = levelCount; - imageViewCreateInfo.subresourceRange.baseArrayLayer = 0; - imageViewCreateInfo.subresourceRange.layerCount = layerCount; - - if (isCube) - { - imageViewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_CUBE; - } - else if (imageType == VK_IMAGE_TYPE_2D) - { - imageViewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2D; - } - else if (imageType == VK_IMAGE_TYPE_3D) - { - imageViewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_3D; - } - else - { - FNA3D_LogError("Invalid image type: %u", imageType); - } - - result = renderer->vkCreateImageView( - renderer->logicalDevice, - &imageViewCreateInfo, - NULL, - &texture->view - ); - VULKAN_ERROR_CHECK(result, vkCreateImageView, 0) - - texture->viewCreateInfo = imageViewCreateInfo; - - /* FIXME: Reduce this memset to the minimum necessary for init! */ - SDL_memset(texture->rtViews, '\0', sizeof(texture->rtViews)); - if (isRenderTarget) - { - if (!isCube && levelCount == 1) - { - /* Framebuffer views don't like swizzling */ - imageViewCreateInfo.components.r = VK_COMPONENT_SWIZZLE_IDENTITY; - imageViewCreateInfo.components.g = VK_COMPONENT_SWIZZLE_IDENTITY; - imageViewCreateInfo.components.b = VK_COMPONENT_SWIZZLE_IDENTITY; - imageViewCreateInfo.components.a = VK_COMPONENT_SWIZZLE_IDENTITY; - - result = renderer->vkCreateImageView( - renderer->logicalDevice, - &imageViewCreateInfo, - NULL, - &texture->rtViews[0] - ); - VULKAN_ERROR_CHECK(result, vkCreateImageView, 0) - } - else - { - /* Create a framebuffer-compatible view for each layer */ - for (i = 0; i < layerCount; i += 1) - { - imageViewCreateInfo.viewType = VK_IMAGE_VIEW_TYPE_2D; - imageViewCreateInfo.subresourceRange.levelCount = 1; - imageViewCreateInfo.subresourceRange.layerCount = 1; - imageViewCreateInfo.subresourceRange.baseArrayLayer = i; - imageViewCreateInfo.components.r = VK_COMPONENT_SWIZZLE_IDENTITY; - imageViewCreateInfo.components.g = VK_COMPONENT_SWIZZLE_IDENTITY; - imageViewCreateInfo.components.b = VK_COMPONENT_SWIZZLE_IDENTITY; - imageViewCreateInfo.components.a = VK_COMPONENT_SWIZZLE_IDENTITY; - - result = renderer->vkCreateImageView( - renderer->logicalDevice, - &imageViewCreateInfo, - NULL, - &texture->rtViews[i] - ); - VULKAN_ERROR_CHECK(result, vkCreateImageView, 0) - } - } - } - - texture->dimensions.width = width; - texture->dimensions.height = height; - texture->depth = depth; - texture->surfaceFormat = format; - texture->levelCount = levelCount; - texture->layerCount = layerCount; - texture->resourceAccessType = RESOURCE_ACCESS_NONE; - texture->external = 0; - - return 1; -} - -static void VULKAN_INTERNAL_GetTextureData( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - int32_t layer, - void* data, - int32_t dataLength -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *vulkanTexture = (VulkanTexture*) texture; - VulkanTransferBuffer *transferBuffer; - VulkanResourceAccessType prevResourceAccess; - VkBufferImageCopy imageCopy; - uint8_t *dataPtr = (uint8_t*) data; - uint8_t *transferBufferPointer; - - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - SDL_LockMutex(renderer->passLock); - SDL_LockMutex(renderer->transferLock); - - VULKAN_INTERNAL_PrepareCopyFromTransferBuffer( - renderer, - dataLength, - (VkDeviceSize)Texture_GetFormatSize(vulkanTexture->colorFormat), - &transferBuffer, - (void**) &transferBufferPointer - ); - - /* Cache this so we can restore it later */ - prevResourceAccess = vulkanTexture->resourceAccessType; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - vulkanTexture->layerCount, - 0, - vulkanTexture->levelCount, - 0, - vulkanTexture->image, - &vulkanTexture->resourceAccessType - ); - - /* Save texture data to transfer buffer */ - - imageCopy.imageExtent.width = w; - imageCopy.imageExtent.height = h; - imageCopy.imageExtent.depth = 1; - imageCopy.imageOffset.x = x; - imageCopy.imageOffset.y = y; - imageCopy.imageOffset.z = 0; - imageCopy.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - imageCopy.imageSubresource.baseArrayLayer = layer; - imageCopy.imageSubresource.layerCount = 1; - imageCopy.imageSubresource.mipLevel = level; - imageCopy.bufferOffset = transferBuffer->offset; - imageCopy.bufferRowLength = w; - imageCopy.bufferImageHeight = h; - - RECORD_CMD(renderer->vkCmdCopyImageToBuffer( - renderer->currentCommandBufferContainer->commandBuffer, - vulkanTexture->image, - AccessMap[vulkanTexture->resourceAccessType].imageLayout, - transferBuffer->buffer->buffer, - 1, - &imageCopy - )); - - /* Restore the image layout and wait for completion of the render pass */ - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - prevResourceAccess, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - vulkanTexture->layerCount, - 0, - vulkanTexture->levelCount, - 0, - vulkanTexture->image, - &vulkanTexture->resourceAccessType - ); - - VULKAN_INTERNAL_FlushCommands(renderer, 1); - - /* Read from transfer buffer */ - - SDL_memcpy( - dataPtr, - transferBufferPointer, - BytesPerImage(w, h, vulkanTexture->colorFormat) - ); - - SDL_UnlockMutex(renderer->transferLock); - SDL_UnlockMutex(renderer->passLock); -} - -/* Vulkan: Mutable State Commands */ - -static void VULKAN_INTERNAL_SetViewportCommand(VulkanRenderer *renderer) -{ - VkViewport vulkanViewport; - - /* Flipping the viewport for compatibility with D3D */ - vulkanViewport.x = (float) renderer->viewport.x; - vulkanViewport.width = (float) renderer->viewport.w; - vulkanViewport.minDepth = renderer->viewport.minDepth; - vulkanViewport.maxDepth = renderer->viewport.maxDepth; -#ifdef __APPLE__ - /* For MoltenVK we just disable viewport flipping, bypassing the Vulkan spec */ - vulkanViewport.y = (float) renderer->viewport.y; - vulkanViewport.height = (float) renderer->viewport.h; -#else - /* For everyone else, we have KHR_maintenance1 to do the flipping for us */ - vulkanViewport.y = (float) (renderer->viewport.y + renderer->viewport.h); - vulkanViewport.height = (float) -renderer->viewport.h; -#endif - - RECORD_CMD(renderer->vkCmdSetViewport( - renderer->currentCommandBufferContainer->commandBuffer, - 0, - 1, - &vulkanViewport - )); -} - -static void VULKAN_INTERNAL_SetScissorRectCommand(VulkanRenderer *renderer) -{ - VkOffset2D offset; - VkExtent2D extent; - VkRect2D vulkanScissorRect; - - if (renderer->renderPassInProgress) - { - if (!renderer->rasterizerState.scissorTestEnable) - { - offset.x = 0; - offset.y = 0; - extent = renderer->colorAttachments[0]->dimensions; - } - else - { - offset.x = renderer->scissorRect.x; - offset.y = renderer->scissorRect.y; - extent.width = renderer->scissorRect.w; - extent.height = renderer->scissorRect.h; - } - - vulkanScissorRect.offset = offset; - vulkanScissorRect.extent = extent; - - RECORD_CMD(renderer->vkCmdSetScissor( - renderer->currentCommandBufferContainer->commandBuffer, - 0, - 1, - &vulkanScissorRect - )); - } -} - -static void VULKAN_INTERNAL_SetStencilReferenceValueCommand( - VulkanRenderer *renderer -) { - if (renderer->renderPassInProgress) - { - RECORD_CMD(renderer->vkCmdSetStencilReference( - renderer->currentCommandBufferContainer->commandBuffer, - VK_STENCIL_FRONT_AND_BACK, - renderer->stencilRef - )); - } -} - -static void VULKAN_INTERNAL_SetDepthBiasCommand(VulkanRenderer *renderer) -{ - if (renderer->renderPassInProgress) - { - RECORD_CMD(renderer->vkCmdSetDepthBias( - renderer->currentCommandBufferContainer->commandBuffer, - renderer->rasterizerState.depthBias, - 0.0f, /* no clamp */ - renderer->rasterizerState.slopeScaleDepthBias - )); - } -} - -/* Vulkan: Pipeline State Objects */ - -static VkPipelineLayout VULKAN_INTERNAL_FetchPipelineLayout( - VulkanRenderer *renderer, - MOJOSHADER_vkShader *vertShader, - MOJOSHADER_vkShader *fragShader -) { - VkDescriptorSetLayout setLayouts[4]; - - PipelineLayoutHash pipelineLayoutHash; - VkPipelineLayoutCreateInfo layoutCreateInfo; - VkPipelineLayout layout; - VkResult vulkanResult; - - pipelineLayoutHash.vertexSamplerLayout = VULKAN_INTERNAL_FetchSamplerDescriptorSetLayout(renderer, vertShader, VK_SHADER_STAGE_VERTEX_BIT); - pipelineLayoutHash.fragSamplerLayout = VULKAN_INTERNAL_FetchSamplerDescriptorSetLayout(renderer, fragShader, VK_SHADER_STAGE_FRAGMENT_BIT); - pipelineLayoutHash.vertexUniformLayout = renderer->vertexUniformBufferDescriptorSetLayout; - pipelineLayoutHash.fragUniformLayout = renderer->fragUniformBufferDescriptorSetLayout; - - layout = PipelineLayoutHashArray_Fetch( - &renderer->pipelineLayoutTable, - pipelineLayoutHash - ); - - if (layout != VK_NULL_HANDLE) - { - return layout; - } - - setLayouts[0] = pipelineLayoutHash.vertexSamplerLayout; - setLayouts[1] = pipelineLayoutHash.fragSamplerLayout; - setLayouts[2] = renderer->vertexUniformBufferDescriptorSetLayout; - setLayouts[3] = renderer->fragUniformBufferDescriptorSetLayout; - - layoutCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO; - layoutCreateInfo.pNext = NULL; - layoutCreateInfo.flags = 0; - layoutCreateInfo.setLayoutCount = 4; - layoutCreateInfo.pSetLayouts = setLayouts; - layoutCreateInfo.pushConstantRangeCount = 0; - layoutCreateInfo.pPushConstantRanges = NULL; - - vulkanResult = renderer->vkCreatePipelineLayout( - renderer->logicalDevice, - &layoutCreateInfo, - NULL, - &layout - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreatePipelineLayout, VK_NULL_HANDLE) - - PipelineLayoutHashArray_Insert( - &renderer->pipelineLayoutTable, - pipelineLayoutHash, - layout - ); - return layout; -} - -static void VULKAN_INTERNAL_GenerateVertexInputInfo( - VulkanRenderer *renderer, - VkVertexInputBindingDescription *bindingDescriptions, - VkVertexInputAttributeDescription* attributeDescriptions, - uint32_t *attributeDescriptionCount, - VkVertexInputBindingDivisorDescriptionEXT *divisorDescriptions, - uint32_t *divisorDescriptionCount -) { - MOJOSHADER_vkShader *vertexShader, *blah; - uint8_t attrUse[MOJOSHADER_USAGE_TOTAL][16]; - uint32_t attributeDescriptionCounter = 0; - uint32_t divisorDescriptionCounter = 0; - int32_t i, j, k; - FNA3D_VertexDeclaration vertexDeclaration; - FNA3D_VertexElement element; - FNA3D_VertexElementUsage usage; - int32_t index, attribLoc; - VkVertexInputAttributeDescription vInputAttribDescription; - VkVertexInputBindingDescription vertexInputBindingDescription; - VkVertexInputBindingDivisorDescriptionEXT divisorDescription; - - MOJOSHADER_vkGetBoundShaders(renderer->mojoshaderContext, &vertexShader, &blah); - - SDL_memset(attrUse, '\0', sizeof(attrUse)); - for (i = 0; i < (int32_t) renderer->numVertexBindings; i += 1) - { - vertexDeclaration = - renderer->vertexBindings[i].vertexDeclaration; - - for (j = 0; j < vertexDeclaration.elementCount; j += 1) - { - element = vertexDeclaration.elements[j]; - usage = element.vertexElementUsage; - index = element.usageIndex; - - if (attrUse[usage][index]) - { - index = -1; - - for (k = 0; k < MAX_VERTEX_ATTRIBUTES; k += 1) - { - if (!attrUse[usage][k]) - { - index = k; - break; - } - } - - if (index < 0) - { - FNA3D_LogError( - "Vertex usage collision!" - ); - } - } - - attrUse[usage][index] = 1; - - attribLoc = MOJOSHADER_vkGetVertexAttribLocation( - vertexShader, - VertexAttribUsage(usage), - index - ); - - if (attribLoc == -1) - { - /* Stream not in use! */ - continue; - } - - vInputAttribDescription.location = attribLoc; - vInputAttribDescription.format = XNAToVK_VertexAttribType[ - element.vertexElementFormat - ]; - vInputAttribDescription.offset = element.offset; - vInputAttribDescription.binding = i; - - attributeDescriptions[attributeDescriptionCounter] = - vInputAttribDescription; - attributeDescriptionCounter += 1; - } - - vertexInputBindingDescription.binding = i; - vertexInputBindingDescription.stride = - vertexDeclaration.vertexStride; - - if (renderer->vertexBindings[i].instanceFrequency > 0) - { - vertexInputBindingDescription.inputRate = - VK_VERTEX_INPUT_RATE_INSTANCE; - - divisorDescription.binding = i; - divisorDescription.divisor = - renderer->vertexBindings[i].instanceFrequency; - - divisorDescriptions[divisorDescriptionCounter] = - divisorDescription; - divisorDescriptionCounter += 1; - } - else - { - vertexInputBindingDescription.inputRate = - VK_VERTEX_INPUT_RATE_VERTEX; - } - - bindingDescriptions[i] = vertexInputBindingDescription; - } - - *attributeDescriptionCount = attributeDescriptionCounter; - *divisorDescriptionCount = divisorDescriptionCounter; -} - -static VkPipeline VULKAN_INTERNAL_FetchPipeline(VulkanRenderer *renderer) -{ - VkResult vulkanResult; - VkPipeline pipeline; - VkPipelineViewportStateCreateInfo viewportStateInfo; - VkPipelineInputAssemblyStateCreateInfo inputAssemblyInfo; - VkVertexInputBindingDescription *bindingDescriptions; - VkVertexInputAttributeDescription *attributeDescriptions; - uint32_t attributeDescriptionCount; - VkVertexInputBindingDivisorDescriptionEXT *divisorDescriptions; - uint32_t divisorDescriptionCount; - VkPipelineVertexInputStateCreateInfo vertexInputInfo; - VkPipelineVertexInputDivisorStateCreateInfoEXT divisorStateInfo; - VkPipelineRasterizationStateCreateInfo rasterizerInfo; - VkPipelineMultisampleStateCreateInfo multisamplingInfo; - VkPipelineColorBlendAttachmentState colorBlendAttachments[MAX_RENDERTARGET_BINDINGS]; - VkPipelineColorBlendStateCreateInfo colorBlendStateInfo; - VkStencilOpState frontStencilState, backStencilState; - VkPipelineDepthStencilStateCreateInfo depthStencilStateInfo; - static const VkDynamicState dynamicStates[] = - { - VK_DYNAMIC_STATE_VIEWPORT, - VK_DYNAMIC_STATE_SCISSOR, - VK_DYNAMIC_STATE_BLEND_CONSTANTS, - VK_DYNAMIC_STATE_STENCIL_REFERENCE, - VK_DYNAMIC_STATE_DEPTH_BIAS - }; - VkPipelineDynamicStateCreateInfo dynamicStateInfo; - MOJOSHADER_vkShader *vertShader, *fragShader; - VkPipelineShaderStageCreateInfo stageInfos[2]; - VkGraphicsPipelineCreateInfo pipelineCreateInfo; - - PipelineHash hash; - hash.blendState = GetPackedBlendState(renderer->blendState); - hash.rasterizerState = GetPackedRasterizerState( - renderer->rasterizerState, - renderer->rasterizerState.depthBias * XNAToVK_DepthBiasScale( - XNAToVK_DepthFormat( - renderer, - renderer->currentDepthFormat - ) - ) - ); - hash.depthStencilState = GetPackedDepthStencilState( - renderer->depthStencilState - ); - hash.vertexBufferBindingsIndex = renderer->currentVertexBufferBindingsIndex; - hash.primitiveType = renderer->currentPrimitiveType; - hash.sampleMask = renderer->multiSampleMask[0]; - MOJOSHADER_vkGetBoundShaders(renderer->mojoshaderContext, &vertShader, &fragShader); - hash.vertShader = vertShader; - hash.fragShader = fragShader; - hash.renderPass = renderer->renderPass; - - renderer->currentPipelineLayout = VULKAN_INTERNAL_FetchPipelineLayout( - renderer, - vertShader, - fragShader - ); - - pipeline = PipelineHashTable_Fetch(&renderer->pipelineHashTable, hash); - if (pipeline != VK_NULL_HANDLE) - { - return pipeline; - } - - /* Viewport / Scissor */ - - /* NOTE: because viewport and scissor are dynamic, - * values must be set using the command buffer - */ - viewportStateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO; - viewportStateInfo.pNext = NULL; - viewportStateInfo.flags = 0; - viewportStateInfo.viewportCount = 1; - viewportStateInfo.pViewports = NULL; - viewportStateInfo.scissorCount = 1; - viewportStateInfo.pScissors = NULL; - - /* Input Assembly */ - - inputAssemblyInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO; - inputAssemblyInfo.pNext = NULL; - inputAssemblyInfo.flags = 0; - inputAssemblyInfo.topology = XNAToVK_Topology[ - renderer->currentPrimitiveType - ]; - inputAssemblyInfo.primitiveRestartEnable = VK_FALSE; - - /* Vertex Input */ - - bindingDescriptions = (VkVertexInputBindingDescription*) SDL_malloc( - renderer->numVertexBindings * - sizeof(VkVertexInputBindingDescription) - ); - attributeDescriptions = (VkVertexInputAttributeDescription*) SDL_malloc( - renderer->numVertexBindings * - MAX_VERTEX_ATTRIBUTES * - sizeof(VkVertexInputAttributeDescription) - ); - divisorDescriptions = (VkVertexInputBindingDivisorDescriptionEXT*) SDL_malloc( - renderer->numVertexBindings * - sizeof(VkVertexInputBindingDivisorDescriptionEXT) - ); - - VULKAN_INTERNAL_GenerateVertexInputInfo( - renderer, - bindingDescriptions, - attributeDescriptions, - &attributeDescriptionCount, - divisorDescriptions, - &divisorDescriptionCount - ); - - vertexInputInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO; - if (divisorDescriptionCount > 0) - { - divisorStateInfo.sType = - VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT; - divisorStateInfo.pNext = NULL; - divisorStateInfo.vertexBindingDivisorCount = - divisorDescriptionCount; - divisorStateInfo.pVertexBindingDivisors = divisorDescriptions; - vertexInputInfo.pNext = &divisorStateInfo; - } - else - { - vertexInputInfo.pNext = NULL; - } - - vertexInputInfo.flags = 0; - vertexInputInfo.vertexBindingDescriptionCount = - renderer->numVertexBindings; - vertexInputInfo.pVertexBindingDescriptions = bindingDescriptions; - vertexInputInfo.vertexAttributeDescriptionCount = - attributeDescriptionCount; - vertexInputInfo.pVertexAttributeDescriptions = attributeDescriptions; - - /* Rasterizer */ - - rasterizerInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO; - rasterizerInfo.pNext = NULL; - rasterizerInfo.flags = 0; - rasterizerInfo.depthClampEnable = VK_FALSE; - rasterizerInfo.rasterizerDiscardEnable = VK_FALSE; - rasterizerInfo.polygonMode = XNAToVK_PolygonMode[ - renderer->rasterizerState.fillMode - ]; - rasterizerInfo.cullMode = XNAToVK_CullMode[ - renderer->rasterizerState.cullMode - ]; - /* This is reversed because we are flipping the viewport -cosmonaut */ - rasterizerInfo.frontFace = VK_FRONT_FACE_CLOCKWISE; - rasterizerInfo.depthBiasEnable = VK_TRUE; - rasterizerInfo.depthBiasConstantFactor = 0.0f; - rasterizerInfo.depthBiasClamp = 0.0f; - rasterizerInfo.depthBiasSlopeFactor = 0.0f; - rasterizerInfo.lineWidth = 1.0f; - - /* Multisample */ - - multisamplingInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO; - multisamplingInfo.pNext = NULL; - multisamplingInfo.flags = 0; - multisamplingInfo.rasterizationSamples = XNAToVK_SampleCount( - renderer->multiSampleCount - ); - multisamplingInfo.sampleShadingEnable = VK_FALSE; - multisamplingInfo.minSampleShading = 1.0f; - multisamplingInfo.pSampleMask = renderer->multiSampleMask; - multisamplingInfo.alphaToCoverageEnable = VK_FALSE; - multisamplingInfo.alphaToOneEnable = VK_FALSE; - - /* Blend */ - - colorBlendAttachments[0].blendEnable = !( - renderer->blendState.colorSourceBlend == FNA3D_BLEND_ONE && - renderer->blendState.colorDestinationBlend == FNA3D_BLEND_ZERO && - renderer->blendState.alphaSourceBlend == FNA3D_BLEND_ONE && - renderer->blendState.alphaDestinationBlend == FNA3D_BLEND_ZERO - ); - if (colorBlendAttachments[0].blendEnable) - { - colorBlendAttachments[0].srcColorBlendFactor = XNAToVK_BlendFactor[ - renderer->blendState.colorSourceBlend - ]; - colorBlendAttachments[0].srcAlphaBlendFactor = XNAToVK_BlendFactor[ - renderer->blendState.alphaSourceBlend - ]; - colorBlendAttachments[0].dstColorBlendFactor = XNAToVK_BlendFactor[ - renderer->blendState.colorDestinationBlend - ]; - colorBlendAttachments[0].dstAlphaBlendFactor = XNAToVK_BlendFactor[ - renderer->blendState.alphaDestinationBlend - ]; - - colorBlendAttachments[0].colorBlendOp = XNAToVK_BlendOp[ - renderer->blendState.colorBlendFunction - ]; - colorBlendAttachments[0].alphaBlendOp = XNAToVK_BlendOp[ - renderer->blendState.alphaBlendFunction - ]; - } - else - { - colorBlendAttachments[0].srcColorBlendFactor = VK_BLEND_FACTOR_ONE; - colorBlendAttachments[0].srcAlphaBlendFactor = VK_BLEND_FACTOR_ONE; - colorBlendAttachments[0].dstColorBlendFactor = VK_BLEND_FACTOR_ZERO; - colorBlendAttachments[0].dstAlphaBlendFactor = VK_BLEND_FACTOR_ZERO; - colorBlendAttachments[0].colorBlendOp = VK_BLEND_OP_ADD; - colorBlendAttachments[0].alphaBlendOp = VK_BLEND_OP_ADD; - } - colorBlendAttachments[1] = colorBlendAttachments[0]; - colorBlendAttachments[2] = colorBlendAttachments[0]; - colorBlendAttachments[3] = colorBlendAttachments[0]; - - colorBlendAttachments[0].colorWriteMask = - renderer->blendState.colorWriteEnable; - colorBlendAttachments[1].colorWriteMask = - renderer->blendState.colorWriteEnable1; - colorBlendAttachments[2].colorWriteMask = - renderer->blendState.colorWriteEnable2; - colorBlendAttachments[3].colorWriteMask = - renderer->blendState.colorWriteEnable3; - - colorBlendStateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO; - colorBlendStateInfo.pNext = NULL; - colorBlendStateInfo.flags = 0; - colorBlendStateInfo.logicOpEnable = VK_FALSE; - colorBlendStateInfo.logicOp = VK_LOGIC_OP_COPY; - colorBlendStateInfo.attachmentCount = renderer->colorAttachmentCount; - colorBlendStateInfo.pAttachments = colorBlendAttachments; - colorBlendStateInfo.blendConstants[0] = 0.0f; - colorBlendStateInfo.blendConstants[1] = 0.0f; - colorBlendStateInfo.blendConstants[2] = 0.0f; - colorBlendStateInfo.blendConstants[3] = 0.0f; - - /* Stencil */ - - frontStencilState.failOp = XNAToVK_StencilOp[ - renderer->depthStencilState.stencilFail - ]; - frontStencilState.passOp = XNAToVK_StencilOp[ - renderer->depthStencilState.stencilPass - ]; - frontStencilState.depthFailOp = XNAToVK_StencilOp[ - renderer->depthStencilState.stencilDepthBufferFail - ]; - frontStencilState.compareOp = XNAToVK_CompareOp[ - renderer->depthStencilState.stencilFunction - ]; - frontStencilState.compareMask = renderer->depthStencilState.stencilMask; - frontStencilState.writeMask = renderer->depthStencilState.stencilWriteMask; - frontStencilState.reference = renderer->depthStencilState.referenceStencil; - - if (renderer->depthStencilState.twoSidedStencilMode) - { - backStencilState.failOp = XNAToVK_StencilOp[ - renderer->depthStencilState.ccwStencilFail - ]; - backStencilState.passOp = XNAToVK_StencilOp[ - renderer->depthStencilState.ccwStencilPass - ]; - backStencilState.depthFailOp = XNAToVK_StencilOp[ - renderer->depthStencilState.ccwStencilDepthBufferFail - ]; - backStencilState.compareOp = XNAToVK_CompareOp[ - renderer->depthStencilState.ccwStencilFunction - ]; - backStencilState.compareMask = renderer->depthStencilState.stencilMask; - backStencilState.writeMask = renderer->depthStencilState.stencilWriteMask; - backStencilState.reference = renderer->depthStencilState.referenceStencil; - } - else - { - backStencilState = frontStencilState; - } - - /* Depth Stencil */ - - depthStencilStateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO; - depthStencilStateInfo.pNext = NULL; - depthStencilStateInfo.flags = 0; /* Unused */ - depthStencilStateInfo.depthTestEnable = - renderer->depthStencilState.depthBufferEnable; - depthStencilStateInfo.depthWriteEnable = - renderer->depthStencilState.depthBufferWriteEnable; - depthStencilStateInfo.depthCompareOp = XNAToVK_CompareOp[ - renderer->depthStencilState.depthBufferFunction - ]; - depthStencilStateInfo.depthBoundsTestEnable = 0; /* Unused */ - depthStencilStateInfo.stencilTestEnable = - renderer->depthStencilState.stencilEnable; - depthStencilStateInfo.front = frontStencilState; - depthStencilStateInfo.back = backStencilState; - depthStencilStateInfo.minDepthBounds = 0; /* Unused */ - depthStencilStateInfo.maxDepthBounds = 0; /* Unused */ - - /* Dynamic State */ - - dynamicStateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO; - dynamicStateInfo.pNext = NULL; - dynamicStateInfo.flags = 0; - dynamicStateInfo.dynamicStateCount = SDL_arraysize(dynamicStates); - dynamicStateInfo.pDynamicStates = dynamicStates; - - /* Shaders */ - - stageInfos[0].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; - stageInfos[0].pNext = NULL; - stageInfos[0].flags = 0; - stageInfos[0].stage = VK_SHADER_STAGE_VERTEX_BIT; - stageInfos[0].pName = MOJOSHADER_vkGetShaderParseData(vertShader)->mainfn; - stageInfos[0].pSpecializationInfo = NULL; - - stageInfos[1].sType = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO; - stageInfos[1].pNext = NULL; - stageInfos[1].flags = 0; - stageInfos[1].stage = VK_SHADER_STAGE_FRAGMENT_BIT; - stageInfos[1].pName = MOJOSHADER_vkGetShaderParseData(fragShader)->mainfn; - stageInfos[1].pSpecializationInfo = NULL; - - MOJOSHADER_vkGetShaderModules( - renderer->mojoshaderContext, - &stageInfos[0].module, - &stageInfos[1].module - ); - - /* Pipeline */ - - pipelineCreateInfo.sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO; - pipelineCreateInfo.pNext = NULL; - pipelineCreateInfo.flags = 0; - pipelineCreateInfo.stageCount = 2; - pipelineCreateInfo.pStages = stageInfos; - pipelineCreateInfo.pVertexInputState = &vertexInputInfo; - pipelineCreateInfo.pInputAssemblyState = &inputAssemblyInfo; - pipelineCreateInfo.pTessellationState = NULL; - pipelineCreateInfo.pViewportState = &viewportStateInfo; - pipelineCreateInfo.pRasterizationState = &rasterizerInfo; - pipelineCreateInfo.pMultisampleState = &multisamplingInfo; - pipelineCreateInfo.pDepthStencilState = &depthStencilStateInfo; - pipelineCreateInfo.pColorBlendState = &colorBlendStateInfo; - pipelineCreateInfo.pDynamicState = &dynamicStateInfo; - pipelineCreateInfo.layout = renderer->currentPipelineLayout; - pipelineCreateInfo.renderPass = renderer->renderPass; - pipelineCreateInfo.subpass = 0; - pipelineCreateInfo.basePipelineHandle = VK_NULL_HANDLE; - pipelineCreateInfo.basePipelineIndex = 0; - - vulkanResult = renderer->vkCreateGraphicsPipelines( - renderer->logicalDevice, - renderer->pipelineCache, - 1, - &pipelineCreateInfo, - NULL, - &pipeline - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateGraphicsPipelines, VK_NULL_HANDLE) - - SDL_free(bindingDescriptions); - SDL_free(attributeDescriptions); - SDL_free(divisorDescriptions); - - PipelineHashTable_Insert(&renderer->pipelineHashTable, hash, pipeline); - return pipeline; -} - -static void VULKAN_INTERNAL_BindPipeline(VulkanRenderer *renderer) -{ - VkShaderModule vertShader, fragShader; - MOJOSHADER_vkGetShaderModules(renderer->mojoshaderContext, &vertShader, &fragShader); - - if ( renderer->needNewPipeline || - renderer->currentVertShader != vertShader || - renderer->currentFragShader != fragShader ) - { - VkPipeline pipeline = VULKAN_INTERNAL_FetchPipeline(renderer); - - if (pipeline != renderer->currentPipeline) - { - RECORD_CMD(renderer->vkCmdBindPipeline( - renderer->currentCommandBufferContainer->commandBuffer, - VK_PIPELINE_BIND_POINT_GRAPHICS, - pipeline - )); - renderer->currentPipeline = pipeline; - renderer->fragSamplerDescriptorSetDataNeedsUpdate = 1; - renderer->vertexSamplerDescriptorSetDataNeedsUpdate = 1; - } - - renderer->needNewPipeline = 0; - renderer->currentVertShader = vertShader; - renderer->currentFragShader = fragShader; - } -} - -/* Vulkan: The Faux-Backbuffer */ - -static uint8_t VULKAN_INTERNAL_CreateFauxBackbuffer( - VulkanRenderer *renderer, - FNA3D_PresentationParameters *presentationParameters -) { - VkFormat vulkanDepthStencilFormat; - VkImageAspectFlags depthAspectFlags = VK_IMAGE_ASPECT_DEPTH_BIT; - VkFormat format; - VkComponentMapping swizzle; - - renderer->backBufferIsSRGB = presentationParameters->backBufferFormat == FNA3D_SURFACEFORMAT_COLORSRGB_EXT; - renderer->presentInterval = presentationParameters->presentationInterval; - - format = renderer->backBufferIsSRGB - ? VK_FORMAT_R8G8B8A8_SRGB - : VK_FORMAT_R8G8B8A8_UNORM; - - swizzle.r = VK_COMPONENT_SWIZZLE_IDENTITY; - swizzle.g = VK_COMPONENT_SWIZZLE_IDENTITY; - swizzle.b = VK_COMPONENT_SWIZZLE_IDENTITY; - swizzle.a = VK_COMPONENT_SWIZZLE_IDENTITY; - - renderer->fauxBackbufferColor.handle = (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); - - if (!VULKAN_INTERNAL_CreateTexture( - renderer, - presentationParameters->backBufferWidth, - presentationParameters->backBufferHeight, - 1, - 0, - 1, - VK_SAMPLE_COUNT_1_BIT, - 1, - format, - swizzle, - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_TYPE_2D, - /* FIXME: Transfer bit probably only needs to be set on 0? */ - ( - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_SRC_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT - ), - renderer->fauxBackbufferColor.handle - )) { - FNA3D_LogError("Failed to create faux backbuffer colorbuffer"); - return 0; - } - renderer->fauxBackbufferColor.handle->colorFormat = - presentationParameters->backBufferFormat; - - renderer->fauxBackbufferWidth = presentationParameters->backBufferWidth; - renderer->fauxBackbufferHeight = presentationParameters->backBufferHeight; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_COLOR_ATTACHMENT_READ_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - renderer->fauxBackbufferColor.handle->layerCount, - 0, - renderer->fauxBackbufferColor.handle->levelCount, - 0, - renderer->fauxBackbufferColor.handle->image, - &renderer->fauxBackbufferColor.handle->resourceAccessType - ); - - renderer->fauxBackbufferMultiSampleCount = - presentationParameters->multiSampleCount; - renderer->fauxBackbufferMultiSampleColor = NULL; - - if (renderer->fauxBackbufferMultiSampleCount > 0) - { - renderer->fauxBackbufferMultiSampleColor = (VulkanTexture*) SDL_malloc( - sizeof(VulkanTexture) - ); - - VULKAN_INTERNAL_CreateTexture( - renderer, - presentationParameters->backBufferWidth, - presentationParameters->backBufferHeight, - 1, - 0, - 1, - XNAToVK_SampleCount(presentationParameters->multiSampleCount), - 1, - format, - swizzle, - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_TYPE_2D, - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, - renderer->fauxBackbufferMultiSampleColor - ); - /* FIXME: Swapchain format may not be an FNA3D_SurfaceFormat! */ - renderer->fauxBackbufferMultiSampleColor->colorFormat = FNA3D_SURFACEFORMAT_COLOR; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_COLOR_ATTACHMENT_READ_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - renderer->fauxBackbufferMultiSampleColor->layerCount, - 0, - renderer->fauxBackbufferMultiSampleColor->levelCount, - 0, - renderer->fauxBackbufferMultiSampleColor->image, - &renderer->fauxBackbufferMultiSampleColor->resourceAccessType - ); - } - - /* Create faux backbuffer depth stencil image */ - - renderer->fauxBackbufferDepthStencil.handle = NULL; - if (presentationParameters->depthStencilFormat != FNA3D_DEPTHFORMAT_NONE) - { - renderer->fauxBackbufferDepthStencil.handle = (VulkanTexture*) SDL_malloc( - sizeof(VulkanTexture) - ); - - vulkanDepthStencilFormat = XNAToVK_DepthFormat( - renderer, - presentationParameters->depthStencilFormat - ); - - if (DepthFormatContainsStencil(vulkanDepthStencilFormat)) - { - depthAspectFlags |= VK_IMAGE_ASPECT_STENCIL_BIT; - } - - if (!VULKAN_INTERNAL_CreateTexture( - renderer, - presentationParameters->backBufferWidth, - presentationParameters->backBufferHeight, - 1, - 0, - 1, - XNAToVK_SampleCount( - presentationParameters->multiSampleCount - ), - 1, - vulkanDepthStencilFormat, - RGBA_SWIZZLE, - depthAspectFlags, - VK_IMAGE_TYPE_2D, - ( - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT - ), - renderer->fauxBackbufferDepthStencil.handle - )) { - FNA3D_LogError("Failed to create depth stencil image"); - return 0; - } - renderer->fauxBackbufferDepthStencil.handle->depthStencilFormat = - presentationParameters->depthStencilFormat; - - /* Layout transition if required */ - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_WRITE, - depthAspectFlags, - 0, - renderer->fauxBackbufferDepthStencil.handle->layerCount, - 0, - renderer->fauxBackbufferDepthStencil.handle->levelCount, - 0, - renderer->fauxBackbufferDepthStencil.handle->image, - &renderer->fauxBackbufferDepthStencil.handle->resourceAccessType - ); - - if (!renderer->renderTargetBound) - { - renderer->depthStencilAttachment = - renderer->fauxBackbufferDepthStencil.handle; - } - } - - if (!renderer->renderTargetBound) - { - renderer->colorAttachments[0] = - renderer->fauxBackbufferColor.handle; - renderer->colorAttachmentCount = 1; - - if (renderer->fauxBackbufferMultiSampleCount > 0) - { - renderer->colorMultiSampleAttachments[0] = - renderer->fauxBackbufferMultiSampleColor; - renderer->multiSampleCount = - renderer->fauxBackbufferMultiSampleCount; - } - } - - return 1; -} - -static void VULKAN_INTERNAL_DestroyFauxBackbuffer(VulkanRenderer *renderer) -{ - renderer->vkDestroyFramebuffer( - renderer->logicalDevice, - renderer->fauxBackbufferFramebuffer, - NULL - ); - - VULKAN_INTERNAL_DestroyTexture( - renderer, - renderer->fauxBackbufferColor.handle - ); - - if (renderer->fauxBackbufferMultiSampleColor != NULL) - { - VULKAN_INTERNAL_DestroyTexture( - renderer, - renderer->fauxBackbufferMultiSampleColor - ); - } - - if (renderer->fauxBackbufferDepthStencil.handle != NULL) - { - VULKAN_INTERNAL_DestroyTexture( - renderer, - renderer->fauxBackbufferDepthStencil.handle - ); - } -} - -/* Vulkan: Render Passes */ - -static VkRenderPass VULKAN_INTERNAL_FetchRenderPass(VulkanRenderer *renderer) -{ - VkResult vulkanResult; - VkRenderPass renderPass; - VkAttachmentDescription attachmentDescriptions[2 * MAX_RENDERTARGET_BINDINGS + 1]; - uint32_t attachmentDescriptionsCount = 0; - uint32_t i; - VkAttachmentReference colorAttachmentReferences[MAX_RENDERTARGET_BINDINGS]; - uint32_t colorAttachmentReferenceCount = 0; - VkAttachmentReference resolveReferences[MAX_RENDERTARGET_BINDINGS + 1]; - uint32_t resolveReferenceCount = 0; - VkAttachmentReference depthStencilAttachmentReference; - VkSubpassDescription subpass; - VkRenderPassCreateInfo renderPassCreateInfo; - - RenderPassHash hash; - hash.colorAttachmentFormatOne = renderer->colorAttachments[0]->surfaceFormat; - hash.colorAttachmentFormatTwo = renderer->colorAttachments[1] != NULL ? - renderer->colorAttachments[1]->surfaceFormat : - VK_FORMAT_UNDEFINED; - hash.colorAttachmentFormatThree = renderer->colorAttachments[2] != NULL ? - renderer->colorAttachments[2]->surfaceFormat : - VK_FORMAT_UNDEFINED; - hash.colorAttachmentFormatFour = renderer->colorAttachments[3] != NULL ? - renderer->colorAttachments[3]->surfaceFormat : - VK_FORMAT_UNDEFINED; - hash.depthStencilAttachmentFormat = renderer->depthStencilAttachment != NULL ? - renderer->depthStencilAttachment->surfaceFormat : - VK_FORMAT_UNDEFINED; - hash.clearColor = renderer->shouldClearColorOnBeginPass; - hash.clearDepth = renderer->shouldClearDepthOnBeginPass; - hash.clearStencil = renderer->shouldClearStencilOnBeginPass; - hash.preserveTargetContents = renderer->preserveTargetContents; - - hash.width = renderer->colorAttachments[0]->dimensions.width; - hash.height = renderer->colorAttachments[0]->dimensions.height; - hash.multiSampleCount = renderer->multiSampleCount; - - /* The render pass is already cached, can return it */ - renderPass = RenderPassHashArray_Fetch( - &renderer->renderPassArray, - hash - ); - if (renderPass != VK_NULL_HANDLE) - { - return renderPass; - } - - /* - * FIXME: We have to always store just in case changing render state - * breaks the render pass. Otherwise we risk discarding necessary data. - * The only way to avoid this would be to buffer draw calls so we can - * ensure that only the final render pass before switching render targets - * may be discarded. - */ - - for (i = 0; i < renderer->colorAttachmentCount; i += 1) - { - if (renderer->multiSampleCount > 0) - { - /* Resolve attachment and multisample attachment */ - - attachmentDescriptions[attachmentDescriptionsCount].flags = 0; - attachmentDescriptions[attachmentDescriptionsCount].format = - renderer->colorAttachments[i]->surfaceFormat; - attachmentDescriptions[attachmentDescriptionsCount].samples = - VK_SAMPLE_COUNT_1_BIT; - attachmentDescriptions[attachmentDescriptionsCount].loadOp = - hash.clearColor ? - VK_ATTACHMENT_LOAD_OP_CLEAR : - VK_ATTACHMENT_LOAD_OP_LOAD; - attachmentDescriptions[attachmentDescriptionsCount].storeOp = - VK_ATTACHMENT_STORE_OP_STORE; - attachmentDescriptions[attachmentDescriptionsCount].stencilLoadOp = - VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachmentDescriptions[attachmentDescriptionsCount].stencilStoreOp = - VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachmentDescriptions[attachmentDescriptionsCount].initialLayout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - attachmentDescriptions[attachmentDescriptionsCount].finalLayout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - resolveReferences[resolveReferenceCount].attachment = - attachmentDescriptionsCount; - resolveReferences[resolveReferenceCount].layout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - attachmentDescriptionsCount += 1; - resolveReferenceCount += 1; - - attachmentDescriptions[attachmentDescriptionsCount].flags = 0; - attachmentDescriptions[attachmentDescriptionsCount].format = - renderer->colorMultiSampleAttachments[i]->surfaceFormat; - attachmentDescriptions[attachmentDescriptionsCount].samples = - XNAToVK_SampleCount(renderer->multiSampleCount); - attachmentDescriptions[attachmentDescriptionsCount].loadOp = - hash.clearColor ? - VK_ATTACHMENT_LOAD_OP_CLEAR : - VK_ATTACHMENT_LOAD_OP_LOAD; - attachmentDescriptions[attachmentDescriptionsCount].storeOp = - VK_ATTACHMENT_STORE_OP_STORE; - /* - * Once above FIXME is resolved: - * hash.preserveTargetContents ? - * VK_ATTACHMENT_STORE_OP_STORE : - * VK_ATTACHMENT_STORE_OP_DONT_CARE; - */ - attachmentDescriptions[attachmentDescriptionsCount].stencilLoadOp = - VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachmentDescriptions[attachmentDescriptionsCount].stencilStoreOp = - VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachmentDescriptions[attachmentDescriptionsCount].initialLayout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - attachmentDescriptions[attachmentDescriptionsCount].finalLayout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - colorAttachmentReferences[colorAttachmentReferenceCount].attachment = - attachmentDescriptionsCount; - colorAttachmentReferences[colorAttachmentReferenceCount].layout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - attachmentDescriptionsCount += 1; - colorAttachmentReferenceCount += 1; - } - else - { - /* Regular old attachment */ - - attachmentDescriptions[attachmentDescriptionsCount].flags = 0; - attachmentDescriptions[attachmentDescriptionsCount].format = - renderer->colorAttachments[i]->surfaceFormat; - attachmentDescriptions[attachmentDescriptionsCount].samples = - VK_SAMPLE_COUNT_1_BIT; - attachmentDescriptions[attachmentDescriptionsCount].loadOp = - hash.clearColor ? - VK_ATTACHMENT_LOAD_OP_CLEAR : - VK_ATTACHMENT_LOAD_OP_LOAD; - attachmentDescriptions[attachmentDescriptionsCount].storeOp = - VK_ATTACHMENT_STORE_OP_STORE; - attachmentDescriptions[attachmentDescriptionsCount].stencilLoadOp = - VK_ATTACHMENT_LOAD_OP_DONT_CARE; - attachmentDescriptions[attachmentDescriptionsCount].stencilStoreOp = - VK_ATTACHMENT_STORE_OP_DONT_CARE; - attachmentDescriptions[attachmentDescriptionsCount].initialLayout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - attachmentDescriptions[attachmentDescriptionsCount].finalLayout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - attachmentDescriptionsCount += 1; - - colorAttachmentReferences[colorAttachmentReferenceCount].attachment = i; - colorAttachmentReferences[colorAttachmentReferenceCount].layout = - VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL; - - colorAttachmentReferenceCount += 1; - } - } - - subpass.pipelineBindPoint = VK_PIPELINE_BIND_POINT_GRAPHICS; - subpass.flags = 0; - subpass.inputAttachmentCount = 0; - subpass.pInputAttachments = NULL; - subpass.colorAttachmentCount = renderer->colorAttachmentCount; - subpass.pColorAttachments = colorAttachmentReferences; - subpass.preserveAttachmentCount = 0; - subpass.pPreserveAttachments = NULL; - - if (renderer->depthStencilAttachment == NULL) - { - subpass.pDepthStencilAttachment = NULL; - } - else - { - attachmentDescriptions[attachmentDescriptionsCount].flags = 0; - attachmentDescriptions[attachmentDescriptionsCount].format = - renderer->depthStencilAttachment->surfaceFormat; - attachmentDescriptions[attachmentDescriptionsCount].samples = - XNAToVK_SampleCount(renderer->multiSampleCount); - attachmentDescriptions[attachmentDescriptionsCount].loadOp = - hash.clearDepth ? - VK_ATTACHMENT_LOAD_OP_CLEAR : - VK_ATTACHMENT_LOAD_OP_LOAD; - attachmentDescriptions[attachmentDescriptionsCount].storeOp = - VK_ATTACHMENT_STORE_OP_STORE; - /* - * Once above FIXME is resolved: - * hash.preserveTargetContents ? - * VK_ATTACHMENT_STORE_OP_STORE : - * VK_ATTACHMENT_STORE_OP_DONT_CARE; - */ - attachmentDescriptions[attachmentDescriptionsCount].stencilLoadOp = - hash.clearStencil ? - VK_ATTACHMENT_LOAD_OP_CLEAR : - VK_ATTACHMENT_LOAD_OP_LOAD; - attachmentDescriptions[attachmentDescriptionsCount].stencilStoreOp = - VK_ATTACHMENT_STORE_OP_STORE; - /* - * Once above FIXME is resolved: - * hash.preserveTargetContents ? - * VK_ATTACHMENT_STORE_OP_STORE : - * VK_ATTACHMENT_STORE_OP_DONT_CARE; - */ - attachmentDescriptions[attachmentDescriptionsCount].initialLayout = - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - attachmentDescriptions[attachmentDescriptionsCount].finalLayout = - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - - depthStencilAttachmentReference.attachment = - attachmentDescriptionsCount; - depthStencilAttachmentReference.layout = - VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL; - - subpass.pDepthStencilAttachment = - &depthStencilAttachmentReference; - - attachmentDescriptionsCount += 1; - } - - if (renderer->multiSampleCount > 0) - { - subpass.pResolveAttachments = resolveReferences; - } - else - { - subpass.pResolveAttachments = NULL; - } - - renderPassCreateInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO; - renderPassCreateInfo.pNext = NULL; - renderPassCreateInfo.flags = 0; - renderPassCreateInfo.attachmentCount = attachmentDescriptionsCount; - renderPassCreateInfo.pAttachments = attachmentDescriptions; - renderPassCreateInfo.subpassCount = 1; - renderPassCreateInfo.pSubpasses = &subpass; - renderPassCreateInfo.dependencyCount = 0; - renderPassCreateInfo.pDependencies = NULL; - - vulkanResult = renderer->vkCreateRenderPass( - renderer->logicalDevice, - &renderPassCreateInfo, - NULL, - &renderPass - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateRenderPass, VK_NULL_HANDLE) - - RenderPassHashArray_Insert( - &renderer->renderPassArray, - hash, - renderPass - ); - return renderPass; -} - -static VkFramebuffer VULKAN_INTERNAL_FetchFramebuffer( - VulkanRenderer *renderer, - VkRenderPass renderPass -) { - VkFramebuffer framebuffer; - VkImageView imageViewAttachments[2 * MAX_RENDERTARGET_BINDINGS + 1]; - uint32_t i, attachmentCount; - VkFramebufferCreateInfo framebufferInfo; - VkResult vulkanResult; - - FramebufferHash hash; - for (i = 0; i < MAX_RENDERTARGET_BINDINGS; i += 1) - { - hash.colorAttachmentViews[i] = ( - renderer->colorAttachments[i] != NULL ? - renderer->colorAttachments[i]->rtViews[ - renderer->attachmentCubeFaces[i] - ] : - VK_NULL_HANDLE - ); - hash.colorMultiSampleAttachmentViews[i] = ( - renderer->colorMultiSampleAttachments[i] != NULL ? - renderer->colorMultiSampleAttachments[i]->rtViews[ - renderer->attachmentCubeFaces[i] - ] : - VK_NULL_HANDLE - ); - } - hash.depthStencilAttachmentView = ( - renderer->depthStencilAttachment != NULL ? - renderer->depthStencilAttachment->rtViews[0] : - VK_NULL_HANDLE - ); - hash.width = renderer->colorAttachments[0]->dimensions.width; - hash.height = renderer->colorAttachments[0]->dimensions.height; - - /* Framebuffer is cached, can return it */ - framebuffer = FramebufferHashArray_Fetch( - &renderer->framebufferArray, - hash - ); - if (framebuffer != VK_NULL_HANDLE) - { - return framebuffer; - } - - /* Otherwise make a new one */ - - attachmentCount = 0; - - for (i = 0; i < renderer->colorAttachmentCount; i += 1) - { - imageViewAttachments[attachmentCount] = - renderer->colorAttachments[i]->rtViews[ - renderer->attachmentCubeFaces[i] - ]; - attachmentCount += 1; - - if (renderer->multiSampleCount > 0) - { - imageViewAttachments[attachmentCount] = - renderer->colorMultiSampleAttachments[i]->rtViews[ - renderer->attachmentCubeFaces[i] - ]; - attachmentCount += 1; - } - } - if (renderer->depthStencilAttachment != NULL) - { - imageViewAttachments[attachmentCount] = - renderer->depthStencilAttachment->rtViews[0]; - attachmentCount += 1; - } - - framebufferInfo.sType = VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO; - framebufferInfo.pNext = NULL; - framebufferInfo.flags = 0; - framebufferInfo.renderPass = renderPass; - framebufferInfo.attachmentCount = attachmentCount; - framebufferInfo.pAttachments = imageViewAttachments; - framebufferInfo.width = renderer->colorAttachments[0]->dimensions.width; - framebufferInfo.height = renderer->colorAttachments[0]->dimensions.height; - framebufferInfo.layers = 1; - - vulkanResult = renderer->vkCreateFramebuffer( - renderer->logicalDevice, - &framebufferInfo, - NULL, - &framebuffer - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateFramebuffer, VK_NULL_HANDLE) - - FramebufferHashArray_Insert( - &renderer->framebufferArray, - hash, - framebuffer - ); - return framebuffer; -} - -static void VULKAN_INTERNAL_MaybeEndRenderPass( - VulkanRenderer *renderer -) { - SDL_LockMutex(renderer->passLock); - - if (renderer->renderPassInProgress) - { - RECORD_CMD(renderer->vkCmdEndRenderPass(renderer->currentCommandBufferContainer->commandBuffer)); - - renderer->renderPassInProgress = 0; - renderer->needNewRenderPass = 1; - renderer->drawCallMadeThisPass = 0; - renderer->currentPipeline = VK_NULL_HANDLE; - renderer->needNewPipeline = 1; - - /* Unlocking long-term lock */ - SDL_UnlockMutex(renderer->passLock); - } - - SDL_UnlockMutex(renderer->passLock); -} - -static void VULKAN_INTERNAL_BeginRenderPass( - VulkanRenderer *renderer -) { - VkRenderPassBeginInfo renderPassBeginInfo; - VkFramebuffer framebuffer; - VkImageAspectFlags depthAspectFlags; - float blendConstants[4]; - VkClearValue clearValues[2 * MAX_RENDERTARGET_BINDINGS + 1]; - VkClearColorValue clearColorValue; - uint32_t clearValueCount = 0; - uint32_t i; - - if (!renderer->needNewRenderPass) - { - return; - } - - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - SDL_LockMutex(renderer->passLock); - - renderer->renderPass = VULKAN_INTERNAL_FetchRenderPass(renderer); - framebuffer = VULKAN_INTERNAL_FetchFramebuffer( - renderer, - renderer->renderPass - ); - - renderer->needNewPipeline = 1; - - renderPassBeginInfo.sType = VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO; - renderPassBeginInfo.pNext = NULL; - renderPassBeginInfo.renderPass = renderer->renderPass; - renderPassBeginInfo.framebuffer = framebuffer; - renderPassBeginInfo.renderArea.offset.x = 0; - renderPassBeginInfo.renderArea.offset.y = 0; - renderPassBeginInfo.renderArea.extent.width = - renderer->colorAttachments[0]->dimensions.width; - renderPassBeginInfo.renderArea.extent.height = - renderer->colorAttachments[0]->dimensions.height; - - for (i = 0; i < MAX_RENDERTARGET_BINDINGS; i += 1) - { - if (renderer->colorAttachments[i] != NULL) - { - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_COLOR_ATTACHMENT_READ_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - renderer->colorAttachments[i]->layerCount, - 0, - 1, - 0, - renderer->colorAttachments[i]->image, - &renderer->colorAttachments[i]->resourceAccessType - ); - - /* - * In MRT scenarios we need to provide as many clearValue structs - * as RTs in the current framebuffer even if they aren't cleared - */ - - if (renderer->shouldClearColorOnBeginPass) - { - clearColorValue = renderer->clearColorValue; - } - else - { - clearColorValue.float32[0] = 0; - clearColorValue.float32[1] = 0; - clearColorValue.float32[2] = 0; - clearColorValue.float32[3] = 0; - } - - clearValues[clearValueCount].color.float32[0] = clearColorValue.float32[0]; - clearValues[clearValueCount].color.float32[1] = clearColorValue.float32[1]; - clearValues[clearValueCount].color.float32[2] = clearColorValue.float32[2]; - clearValues[clearValueCount].color.float32[3] = clearColorValue.float32[3]; - clearValueCount += 1; - - if (renderer->colorMultiSampleAttachments[i] != NULL) - { - clearValues[clearValueCount].color.float32[0] = clearColorValue.float32[0]; - clearValues[clearValueCount].color.float32[1] = clearColorValue.float32[1]; - clearValues[clearValueCount].color.float32[2] = clearColorValue.float32[2]; - clearValues[clearValueCount].color.float32[3] = clearColorValue.float32[3]; - clearValueCount += 1; - } - } - } - - if (renderer->depthStencilAttachment != NULL) - { - depthAspectFlags = VK_IMAGE_ASPECT_DEPTH_BIT; - if (DepthFormatContainsStencil( - renderer->depthStencilAttachment->surfaceFormat - )) { - depthAspectFlags |= VK_IMAGE_ASPECT_STENCIL_BIT; - } - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_WRITE, - depthAspectFlags, - 0, - renderer->depthStencilAttachment->layerCount, - 0, - 1, - 0, - renderer->depthStencilAttachment->image, - &renderer->depthStencilAttachment->resourceAccessType - ); - - if (renderer->shouldClearDepthOnBeginPass || renderer->shouldClearStencilOnBeginPass) - { - clearValues[clearValueCount].depthStencil.depth = renderer->clearDepthStencilValue.depth; - clearValues[clearValueCount].depthStencil.stencil = renderer->clearDepthStencilValue.stencil; - clearValueCount += 1; - } - } - - renderPassBeginInfo.clearValueCount = clearValueCount; - renderPassBeginInfo.pClearValues = clearValues; - - RECORD_CMD(renderer->vkCmdBeginRenderPass( - renderer->currentCommandBufferContainer->commandBuffer, - &renderPassBeginInfo, - VK_SUBPASS_CONTENTS_INLINE - )); - - renderer->renderPassInProgress = 1; - - VULKAN_INTERNAL_SetViewportCommand(renderer); - VULKAN_INTERNAL_SetScissorRectCommand(renderer); - VULKAN_INTERNAL_SetStencilReferenceValueCommand(renderer); - VULKAN_INTERNAL_SetDepthBiasCommand(renderer); - - blendConstants[0] = renderer->blendState.blendFactor.r / 255.0f; - blendConstants[1] = renderer->blendState.blendFactor.g / 255.0f; - blendConstants[2] = renderer->blendState.blendFactor.b / 255.0f; - blendConstants[3] = renderer->blendState.blendFactor.a / 255.0f; - - RECORD_CMD(renderer->vkCmdSetBlendConstants( - renderer->currentCommandBufferContainer->commandBuffer, - blendConstants - )); - - /* Reset bindings for the current frame in flight */ - - for (i = 0; i < MAX_TOTAL_SAMPLERS; i += 1) - { - if (renderer->textures[i] != &NullTexture) - { - renderer->textureNeedsUpdate[i] = 1; - } - if (renderer->samplers[i] != VK_NULL_HANDLE) - { - renderer->samplerNeedsUpdate[i] = 1; - } - } - - renderer->currentPipeline = VK_NULL_HANDLE; - renderer->needNewPipeline = 1; - - renderer->needNewRenderPass = 0; - renderer->shouldClearColorOnBeginPass = 0; - renderer->shouldClearDepthOnBeginPass = 0; - renderer->shouldClearStencilOnBeginPass = 0; -} - -static void VULKAN_INTERNAL_BeginRenderPassClear( - VulkanRenderer *renderer, - FNA3D_Vec4 *color, - float depth, - int32_t stencil, - uint8_t clearColor, - uint8_t clearDepth, - uint8_t clearStencil -) { - if (!clearColor && !clearDepth && !clearStencil) - { - return; - } - - renderer->shouldClearColorOnBeginPass |= clearColor; - renderer->shouldClearDepthOnBeginPass |= clearDepth; - renderer->shouldClearStencilOnBeginPass |= clearStencil; - - if (clearColor) - { - renderer->clearColorValue.float32[0] = color->x; - renderer->clearColorValue.float32[1] = color->y; - renderer->clearColorValue.float32[2] = color->z; - renderer->clearColorValue.float32[3] = color->w; - } - - if (clearDepth) - { - if (depth < 0.0f) - { - depth = 0.0f; - } - else if (depth > 1.0f) - { - depth = 1.0f; - } - - renderer->clearDepthStencilValue.depth = depth; - } - - if (clearStencil) - { - renderer->clearDepthStencilValue.stencil = stencil; - } - - renderer->needNewRenderPass = 1; -} - -static void VULKAN_INTERNAL_MidRenderPassClear( - VulkanRenderer *renderer, - FNA3D_Vec4 *color, - float depth, - int32_t stencil, - uint8_t clearColor, - uint8_t clearDepth, - uint8_t clearStencil -) { - VkClearAttachment clearAttachments[2 * MAX_RENDERTARGET_BINDINGS + 1]; - VkClearRect clearRect; - VkClearValue clearValue = - {{{ - color->x, - color->y, - color->z, - color->w - }}}; - uint8_t shouldClearDepthStencil = ( - (clearDepth || clearStencil) && - renderer->depthStencilAttachment != NULL - ); - uint32_t i, attachmentCount; - - if (!clearColor && !shouldClearDepthStencil) - { - return; - } - - attachmentCount = 0; - - clearRect.baseArrayLayer = 0; - clearRect.layerCount = 1; - clearRect.rect.offset.x = 0; - clearRect.rect.offset.y = 0; - clearRect.rect.extent.width = renderer->colorAttachments[0]->dimensions.width; - clearRect.rect.extent.height = renderer->colorAttachments[0]->dimensions.height; - - if (clearColor) - { - for (i = 0; i < renderer->colorAttachmentCount; i += 1) - { - clearAttachments[attachmentCount].aspectMask = - VK_IMAGE_ASPECT_COLOR_BIT; - clearAttachments[attachmentCount].colorAttachment = - attachmentCount; - clearAttachments[attachmentCount].clearValue = - clearValue; - attachmentCount += 1; - - /* Do NOT clear the multisample image here! - * Vulkan treats them both as the same color attachment. - * Vulkan is a very good and not confusing at all API. - */ - } - } - - if (shouldClearDepthStencil) - { - clearAttachments[attachmentCount].aspectMask = 0; - clearAttachments[attachmentCount].colorAttachment = 0; - if (clearDepth) - { - if (depth < 0.0f) - { - depth = 0.0f; - } - else if (depth > 1.0f) - { - depth = 1.0f; - } - clearAttachments[attachmentCount].aspectMask |= VK_IMAGE_ASPECT_DEPTH_BIT; - clearAttachments[attachmentCount].clearValue.depthStencil.depth = depth; - } - else - { - clearAttachments[attachmentCount].clearValue.depthStencil.depth = 0.0f; - } - if (clearStencil) - { - clearAttachments[attachmentCount].aspectMask |= VK_IMAGE_ASPECT_STENCIL_BIT; - clearAttachments[attachmentCount].clearValue.depthStencil.stencil = stencil; - } - else - { - clearAttachments[attachmentCount].clearValue.depthStencil.stencil = 0; - } - - attachmentCount += 1; - } - - RECORD_CMD(renderer->vkCmdClearAttachments( - renderer->currentCommandBufferContainer->commandBuffer, - attachmentCount, - clearAttachments, - 1, - &clearRect - )); -} - -/* Vulkan: Sampler State */ - -static VkSampler VULKAN_INTERNAL_FetchSamplerState( - VulkanRenderer *renderer, - FNA3D_SamplerState *samplerState, - uint32_t levelCount -) { - VkSamplerCreateInfo createInfo; - VkSampler state; - VkResult result; - - PackedState hash = GetPackedSamplerState(*samplerState); - state = SamplerStateHashArray_Fetch( - &renderer->samplerStateArray, - hash - ); - if (state != VK_NULL_HANDLE) - { - return state; - } - - createInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; - createInfo.pNext = NULL; - createInfo.flags = 0; - createInfo.magFilter = XNAToVK_MagFilter[samplerState->filter]; - createInfo.minFilter = XNAToVK_MinFilter[samplerState->filter]; - createInfo.mipmapMode = XNAToVK_MipFilter[samplerState->filter]; - createInfo.addressModeU = XNAToVK_SamplerAddressMode[ - samplerState->addressU - ]; - createInfo.addressModeV = XNAToVK_SamplerAddressMode[ - samplerState->addressV - ]; - createInfo.addressModeW = XNAToVK_SamplerAddressMode[ - samplerState->addressW - ]; - createInfo.mipLodBias = samplerState->mipMapLevelOfDetailBias; - createInfo.anisotropyEnable = (samplerState->filter == FNA3D_TEXTUREFILTER_ANISOTROPIC); - createInfo.maxAnisotropy = SDL_min( - (float) SDL_max(1, samplerState->maxAnisotropy), - renderer->physicalDeviceProperties.properties.limits.maxSamplerAnisotropy - ); - createInfo.compareEnable = 0; - createInfo.compareOp = 0; - createInfo.minLod = (float) samplerState->maxMipLevel; - createInfo.maxLod = VK_LOD_CLAMP_NONE; - createInfo.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK; - createInfo.unnormalizedCoordinates = 0; - - result = renderer->vkCreateSampler( - renderer->logicalDevice, - &createInfo, - NULL, - &state - ); - VULKAN_ERROR_CHECK(result, vkCreateSampler, 0) - - SamplerStateHashArray_Insert( - &renderer->samplerStateArray, - hash, - state - ); - - return state; -} - -/* Renderer Implementation */ - -/* Quit */ - -static void VULKAN_DestroyDevice(FNA3D_Device *device) -{ - VulkanRenderer *renderer = (VulkanRenderer*) device->driverData; - ShaderResources *shaderResources; - PipelineHashArray hashArray; - VulkanMemorySubAllocator *allocator; - VulkanCommandBufferContainer *vulkanCommandBufferContainer; - VkFence *fences; - uint32_t fenceCount; - int32_t i, j, k; - VkResult pipelineCacheResult; - size_t pipelineCacheSize; - uint8_t *pipelineCacheData; - SDL_RWops *pipelineCacheFile; - const char *pipelineCacheFileName; - - VULKAN_INTERNAL_FlushCommands(renderer, 1); - - fences = SDL_stack_alloc(VkFence, renderer->submittedCommandBufferContainerCount); - fenceCount = renderer->submittedCommandBufferContainerCount; - - for (i = 0; i < renderer->submittedCommandBufferContainerCount; i += 1) - { - fences[i] = renderer->submittedCommandBufferContainers[i]->inFlightFence; - } - - renderer->vkWaitForFences( - renderer->logicalDevice, - fenceCount, - fences, - VK_TRUE, - UINT64_MAX - ); - - for (i = renderer->submittedCommandBufferContainerCount - 1; i >= 0; i -= 1) - { - VULKAN_INTERNAL_CleanCommandBuffer(renderer, renderer->submittedCommandBufferContainers[i]); - } - - SDL_stack_free(fences); - - /* Save the pipeline cache to disk */ - - pipelineCacheResult = renderer->vkGetPipelineCacheData( - renderer->logicalDevice, - renderer->pipelineCache, - &pipelineCacheSize, - NULL - ); - - if (pipelineCacheResult == VK_SUCCESS) - { - pipelineCacheFileName = SDL_GetHint("FNA3D_VULKAN_PIPELINE_CACHE_FILE_NAME"); - if (pipelineCacheFileName == NULL) - { - pipelineCacheFileName = DEFAULT_PIPELINE_CACHE_FILE_NAME; - } - if (pipelineCacheFileName[0] == '\0') - { - /* For intentionally empty file names, assume caching is disabled */ - pipelineCacheFile = NULL; - } - else - { - pipelineCacheFile = SDL_RWFromFile(pipelineCacheFileName, "wb"); - } - - if (pipelineCacheFile != NULL) - { - pipelineCacheData = SDL_malloc(pipelineCacheSize); - - renderer->vkGetPipelineCacheData( - renderer->logicalDevice, - renderer->pipelineCache, - &pipelineCacheSize, - pipelineCacheData - ); - - pipelineCacheFile->write( - pipelineCacheFile, - pipelineCacheData, - sizeof(uint8_t), - pipelineCacheSize - ); - pipelineCacheFile->close(pipelineCacheFile); - - SDL_free(pipelineCacheData); - } - else - { - FNA3D_LogWarn("Could not open pipeline cache file for writing!"); - } - } - else - { - FNA3D_LogWarn("vkGetPipelineCacheData: %s", VkErrorMessages(pipelineCacheResult)); - FNA3D_LogWarn("Error getting data from pipeline cache, aborting save!"); - } - - /* Clean up! */ - - VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyVertUniformBuffer); - VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->dummyFragUniformBuffer); - - VULKAN_INTERNAL_DestroyTexture(renderer, renderer->dummyVertTexture); - VULKAN_INTERNAL_DestroyTexture(renderer, renderer->dummyVertTexture3D); - VULKAN_INTERNAL_DestroyTexture(renderer, renderer->dummyVertTextureCube); - - VULKAN_INTERNAL_DestroyTexture(renderer, renderer->dummyFragTexture); - VULKAN_INTERNAL_DestroyTexture(renderer, renderer->dummyFragTexture3D); - VULKAN_INTERNAL_DestroyTexture(renderer, renderer->dummyFragTextureCube); - - MOJOSHADER_vkDestroyContext(renderer->mojoshaderContext); - VULKAN_INTERNAL_DestroyFauxBackbuffer(renderer); - - renderer->vkDestroySemaphore( - renderer->logicalDevice, - renderer->defragSemaphore, - NULL - ); - - renderer->vkDestroyQueryPool( - renderer->logicalDevice, - renderer->queryPool, - NULL - ); - - if (renderer->inactiveCommandBufferContainerCount + 1 > renderer->inactiveCommandBufferContainerCapacity) - { - renderer->inactiveCommandBufferContainerCapacity = renderer->inactiveCommandBufferContainerCount + 1; - renderer->inactiveCommandBufferContainers = SDL_realloc( - renderer->inactiveCommandBufferContainers, - renderer->inactiveCommandBufferContainerCapacity * sizeof(VulkanCommandBufferContainer*) - ); - } - - renderer->inactiveCommandBufferContainers[renderer->inactiveCommandBufferContainerCount] = renderer->currentCommandBufferContainer; - renderer->inactiveCommandBufferContainerCount += 1; - - renderer->inactiveCommandBufferContainerCapacity += 1; - renderer->inactiveCommandBufferContainers = SDL_realloc( - renderer->inactiveCommandBufferContainers, - sizeof(VulkanCommandBufferContainer*) * renderer->inactiveCommandBufferContainerCapacity - ); - - renderer->inactiveCommandBufferContainers[renderer->inactiveCommandBufferContainerCount] = renderer->defragCommandBufferContainer; - renderer->inactiveCommandBufferContainerCount += 1; - - for (i = 0; i < renderer->inactiveCommandBufferContainerCount; i += 1) - { - vulkanCommandBufferContainer = renderer->inactiveCommandBufferContainers[i]; - - renderer->vkDestroyFence( - renderer->logicalDevice, - vulkanCommandBufferContainer->inFlightFence, - NULL - ); - - SDL_free(vulkanCommandBufferContainer->transferBuffers); - SDL_free(vulkanCommandBufferContainer->usedDescriptorSetDatas); - SDL_free(vulkanCommandBufferContainer->boundBuffers); - - SDL_free(vulkanCommandBufferContainer->renderbuffersToDestroy); - SDL_free(vulkanCommandBufferContainer->buffersToDestroy); - SDL_free(vulkanCommandBufferContainer->effectsToDestroy); - SDL_free(vulkanCommandBufferContainer->texturesToDestroy); - - SDL_free(vulkanCommandBufferContainer); - } - - renderer->vkDestroyCommandPool( - renderer->logicalDevice, - renderer->commandPool, - NULL - ); - - VULKAN_INTERNAL_DestroyBuffer(renderer, renderer->transferBufferPool.fastTransferBuffer->buffer); - SDL_free(renderer->transferBufferPool.fastTransferBuffer); - - for (i = 0; i < renderer->transferBufferPool.availableSlowTransferBufferCount; i += 1) - { - VULKAN_INTERNAL_DestroyBuffer( - renderer, - renderer->transferBufferPool.availableSlowTransferBuffers[i]->buffer - ); - - SDL_free(renderer->transferBufferPool.availableSlowTransferBuffers[i]); - } - SDL_free(renderer->transferBufferPool.availableSlowTransferBuffers); - - for (i = 0; i < NUM_PIPELINE_HASH_BUCKETS; i += 1) - { - hashArray = renderer->pipelineHashTable.buckets[i]; - for (j = 0; j < hashArray.count; j += 1) - { - renderer->vkDestroyPipeline( - renderer->logicalDevice, - renderer->pipelineHashTable.buckets[i].elements[j].value, - NULL - ); - } - if (hashArray.elements != NULL) - { - SDL_free(hashArray.elements); - } - } - - for (i = 0; i < NUM_SHADER_RESOURCES_BUCKETS; i += 1) - { - for (j = 0; j < renderer->shaderResourcesHashTable.buckets[i].count; j += 1) - { - shaderResources = renderer->shaderResourcesHashTable.buckets[i].elements[j].value; - ShaderResources_Destroy(renderer, shaderResources); - } - - SDL_free(renderer->shaderResourcesHashTable.buckets[i].elements); - } - - renderer->vkDestroyDescriptorPool( - renderer->logicalDevice, - renderer->uniformBufferDescriptorPool, - NULL - ); - - for (i = 0; i < NUM_DESCRIPTOR_SET_LAYOUT_BUCKETS; i += 1) - { - for (j = 0; j < renderer->descriptorSetLayoutTable.buckets[i].count; j += 1) - { - renderer->vkDestroyDescriptorSetLayout( - renderer->logicalDevice, - renderer->descriptorSetLayoutTable.buckets[i].elements[j].value, - NULL - ); - } - - SDL_free(renderer->descriptorSetLayoutTable.buckets[i].elements); - } - - renderer->vkDestroyDescriptorSetLayout( - renderer->logicalDevice, - renderer->vertexUniformBufferDescriptorSetLayout, - NULL - ); - - renderer->vkDestroyDescriptorSetLayout( - renderer->logicalDevice, - renderer->fragUniformBufferDescriptorSetLayout, - NULL - ); - - for (i = 0; i < NUM_PIPELINE_LAYOUT_BUCKETS; i += 1) - { - for (j = 0; j < renderer->pipelineLayoutTable.buckets[i].count; j += 1) - { - renderer->vkDestroyPipelineLayout( - renderer->logicalDevice, - renderer->pipelineLayoutTable.buckets[i].elements[j].value, - NULL - ); - } - - SDL_free(renderer->pipelineLayoutTable.buckets[i].elements); - } - - renderer->vkDestroyPipelineCache( - renderer->logicalDevice, - renderer->pipelineCache, - NULL - ); - - for (i = 0; i < renderer->renderPassArray.count; i += 1) - { - renderer->vkDestroyRenderPass( - renderer->logicalDevice, - renderer->renderPassArray.elements[i].value, - NULL - ); - } - - for (i = 0; i < renderer->samplerStateArray.count; i += 1) - { - renderer->vkDestroySampler( - renderer->logicalDevice, - renderer->samplerStateArray.elements[i].value, - NULL - ); - } - - renderer->vkDestroySampler( - renderer->logicalDevice, - renderer->dummyVertSamplerState, - NULL - ); - renderer->vkDestroySampler( - renderer->logicalDevice, - renderer->dummyVertSampler3DState, - NULL - ); - renderer->vkDestroySampler( - renderer->logicalDevice, - renderer->dummyVertSamplerCubeState, - NULL - ); - - renderer->vkDestroySampler( - renderer->logicalDevice, - renderer->dummyFragSamplerState, - NULL - ); - renderer->vkDestroySampler( - renderer->logicalDevice, - renderer->dummyFragSampler3DState, - NULL - ); - renderer->vkDestroySampler( - renderer->logicalDevice, - renderer->dummyFragSamplerCubeState, - NULL - ); - - for (j = renderer->swapchainDataCount - 1; j >= 0; j -= 1) - { - VULKAN_INTERNAL_DestroySwapchain(renderer, renderer->swapchainDatas[j]->windowHandle); - } - SDL_free(renderer->swapchainDatas); - - for (i = 0; i < VK_MAX_MEMORY_TYPES; i += 1) - { - allocator = &renderer->memoryAllocator->subAllocators[i]; - - for (j = allocator->allocationCount - 1; j >= 0; j -= 1) - { - for (k = allocator->allocations[j]->usedRegionCount - 1; k >= 0; k -= 1) - { - VULKAN_INTERNAL_RemoveMemoryUsedRegion( - renderer, - allocator->allocations[j]->usedRegions[k] - ); - } - - VULKAN_INTERNAL_DeallocateMemory( - renderer, - allocator, - j - ); - } - - if (renderer->memoryAllocator->subAllocators[i].allocations != NULL) - { - SDL_free(renderer->memoryAllocator->subAllocators[i].allocations); - } - - SDL_free(renderer->memoryAllocator->subAllocators[i].sortedFreeRegions); - } - - SDL_free(renderer->memoryAllocator); - - SDL_DestroyMutex(renderer->commandLock); - SDL_DestroyMutex(renderer->passLock); - SDL_DestroyMutex(renderer->disposeLock); - SDL_DestroyMutex(renderer->allocatorLock); - SDL_DestroyMutex(renderer->transferLock); - - SDL_free(renderer->inactiveCommandBufferContainers); - SDL_free(renderer->submittedCommandBufferContainers); - - renderer->vkDestroyDevice(renderer->logicalDevice, NULL); - renderer->vkDestroyInstance(renderer->instance, NULL); - - SDL_free(renderer->defragmentedBuffersToDestroy); - SDL_free(renderer->defragmentedImagesToDestroy); - SDL_free(renderer->defragmentedImageViewsToDestroy); - SDL_free(renderer->usedRegionsToDestroy); - - SDL_free(renderer->renderPassArray.elements); - SDL_free(renderer->samplerStateArray.elements); - SDL_free(renderer->vertexBufferBindingsCache.elements); - - SDL_free(renderer); - SDL_free(device); -} - -/* Presentation */ - -static void VULKAN_SwapBuffers( - FNA3D_Renderer *driverData, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - - /* Perform any pending clears before presenting */ - if ( renderer->shouldClearColorOnBeginPass || - renderer->shouldClearDepthOnBeginPass || - renderer->shouldClearStencilOnBeginPass ) - { - VULKAN_INTERNAL_BeginRenderPass(renderer); - } - - VULKAN_INTERNAL_FlushCommandsAndPresent( - renderer, - sourceRectangle, - destinationRectangle, - overrideWindowHandle - ); - - renderer->needNewRenderPass = 1; -} - -/* Drawing */ - -static void VULKAN_Clear( - FNA3D_Renderer *driverData, - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - uint8_t clearColor = (options & FNA3D_CLEAROPTIONS_TARGET) == FNA3D_CLEAROPTIONS_TARGET; - uint8_t clearDepth = (options & FNA3D_CLEAROPTIONS_DEPTHBUFFER) == FNA3D_CLEAROPTIONS_DEPTHBUFFER; - uint8_t clearStencil = (options & FNA3D_CLEAROPTIONS_STENCIL) == FNA3D_CLEAROPTIONS_STENCIL; - - if (renderer->renderPassInProgress && renderer->drawCallMadeThisPass && !renderer->needNewRenderPass) - { - VULKAN_INTERNAL_MidRenderPassClear( - renderer, - color, - depth, - stencil, - clearColor, - clearDepth, - clearStencil - ); - } - else - { - VULKAN_INTERNAL_BeginRenderPassClear( - renderer, - color, - depth, - stencil, - clearColor, - clearDepth, - clearStencil - ); - } -} - -static void VULKAN_DrawInstancedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanBuffer *indexBuffer = ((VulkanBufferContainer*) indices)->vulkanBuffer; - VkDescriptorSet descriptorSets[4]; - MOJOSHADER_vkShader *vertShader, *fragShader; - ShaderResources *vertShaderResources, *fragShaderResources; - uint32_t dynamicOffsets[2]; - - /* Note that minVertexIndex/numVertices are NOT used! */ - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_INDEX_BUFFER, - indexBuffer->buffer, - &indexBuffer->resourceAccessType - ); - - VULKAN_INTERNAL_MarkBufferAsBound(renderer, indexBuffer); - - if (primitiveType != renderer->currentPrimitiveType) - { - renderer->currentPrimitiveType = primitiveType; - renderer->needNewRenderPass = 1; - } - - VULKAN_INTERNAL_BeginRenderPass(renderer); - VULKAN_INTERNAL_BindPipeline(renderer); - - if (renderer->numVertexBindings > 0) - { - /* FIXME: State shadowing for vertex buffers? -flibit */ - RECORD_CMD(renderer->vkCmdBindVertexBuffers( - renderer->currentCommandBufferContainer->commandBuffer, - 0, - renderer->numVertexBindings, - renderer->boundVertexBuffers, - renderer->boundVertexBufferOffsets - )); - } - /* FIXME: State shadowing for index buffers? -flibit */ - RECORD_CMD(renderer->vkCmdBindIndexBuffer( - renderer->currentCommandBufferContainer->commandBuffer, - indexBuffer->buffer, - 0, - XNAToVK_IndexType[indexElementSize] - )); - - MOJOSHADER_vkGetBoundShaders(renderer->mojoshaderContext, &vertShader, &fragShader); - vertShaderResources = VULKAN_INTERNAL_FetchShaderResources( - renderer, - vertShader, - VK_SHADER_STAGE_VERTEX_BIT - ); - fragShaderResources = VULKAN_INTERNAL_FetchShaderResources( - renderer, - fragShader, - VK_SHADER_STAGE_FRAGMENT_BIT - ); - - if ( renderer->vertexSamplerDescriptorSetDataNeedsUpdate || - renderer->fragSamplerDescriptorSetDataNeedsUpdate ) - { - VULKAN_INTERNAL_FetchDescriptorSetDataAndOffsets( - renderer, - vertShaderResources, - fragShaderResources, - descriptorSets, - dynamicOffsets - ); - - RECORD_CMD(renderer->vkCmdBindDescriptorSets( - renderer->currentCommandBufferContainer->commandBuffer, - VK_PIPELINE_BIND_POINT_GRAPHICS, - renderer->currentPipelineLayout, - 0, - 4, - descriptorSets, - 2, - dynamicOffsets - )); - } - - - RECORD_CMD(renderer->vkCmdDrawIndexed( - renderer->currentCommandBufferContainer->commandBuffer, - PrimitiveVerts(primitiveType, primitiveCount), - instanceCount, - startIndex, - baseVertex, - 0 - )); - - renderer->drawCallMadeThisPass = 1; -} - -static void VULKAN_DrawIndexedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - VULKAN_DrawInstancedPrimitives( - driverData, - primitiveType, - baseVertex, - minVertexIndex, - numVertices, - startIndex, - primitiveCount, - 1, - indices, - indexElementSize - ); -} - -static void VULKAN_DrawPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VkDescriptorSet descriptorSets[4]; - MOJOSHADER_vkShader *vertShader, *fragShader; - ShaderResources *vertShaderResources, *fragShaderResources; - uint32_t dynamicOffsets[2]; - - if (primitiveType != renderer->currentPrimitiveType) - { - renderer->currentPrimitiveType = primitiveType; - renderer->needNewRenderPass = 1; - } - VULKAN_INTERNAL_BeginRenderPass(renderer); - VULKAN_INTERNAL_BindPipeline(renderer); - - if (renderer->numVertexBindings > 0) - { - /* FIXME: State shadowing for vertex buffers? -flibit */ - RECORD_CMD(renderer->vkCmdBindVertexBuffers( - renderer->currentCommandBufferContainer->commandBuffer, - 0, - renderer->numVertexBindings, - renderer->boundVertexBuffers, - renderer->boundVertexBufferOffsets - )); - } - - MOJOSHADER_vkGetBoundShaders(renderer->mojoshaderContext, &vertShader, &fragShader); - vertShaderResources = VULKAN_INTERNAL_FetchShaderResources( - renderer, - vertShader, - VK_SHADER_STAGE_VERTEX_BIT - ); - fragShaderResources = VULKAN_INTERNAL_FetchShaderResources( - renderer, - fragShader, - VK_SHADER_STAGE_FRAGMENT_BIT - ); - - if ( renderer->vertexSamplerDescriptorSetDataNeedsUpdate || - renderer->fragSamplerDescriptorSetDataNeedsUpdate ) - { - VULKAN_INTERNAL_FetchDescriptorSetDataAndOffsets( - renderer, - vertShaderResources, - fragShaderResources, - descriptorSets, - dynamicOffsets - ); - - RECORD_CMD(renderer->vkCmdBindDescriptorSets( - renderer->currentCommandBufferContainer->commandBuffer, - VK_PIPELINE_BIND_POINT_GRAPHICS, - renderer->currentPipelineLayout, - 0, - 4, - descriptorSets, - 2, - dynamicOffsets - )); - } - - RECORD_CMD(renderer->vkCmdDraw( - renderer->currentCommandBufferContainer->commandBuffer, - PrimitiveVerts(primitiveType, primitiveCount), - 1, - vertexStart, - 0 - )); - - renderer->drawCallMadeThisPass = 1; -} - -/* Mutable Render States */ - -static void VULKAN_SetViewport( - FNA3D_Renderer *driverData, - FNA3D_Viewport *viewport -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - - if ( viewport->x != renderer->viewport.x || - viewport->y != renderer->viewport.y || - viewport->w != renderer->viewport.w || - viewport->h != renderer->viewport.h || - viewport->minDepth != renderer->viewport.minDepth || - viewport->maxDepth != renderer->viewport.maxDepth ) - { - renderer->viewport = *viewport; - VULKAN_INTERNAL_SetViewportCommand(renderer); - } -} - -static void VULKAN_SetScissorRect( - FNA3D_Renderer *driverData, - FNA3D_Rect *scissor -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - - if ( scissor->x != renderer->scissorRect.x || - scissor->y != renderer->scissorRect.y || - scissor->w != renderer->scissorRect.w || - scissor->h != renderer->scissorRect.h ) - { - renderer->scissorRect = *scissor; - VULKAN_INTERNAL_SetScissorRectCommand(renderer); - } -} - -static void VULKAN_GetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - SDL_memcpy( - blendFactor, - &renderer->blendState.blendFactor, - sizeof(FNA3D_Color) - ); -} - -static void VULKAN_SetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - const float blendConstants[] = - { - blendFactor->r, - blendFactor->g, - blendFactor->b, - blendFactor->a - }; - - if ( blendFactor->r != renderer->blendState.blendFactor.r || - blendFactor->g != renderer->blendState.blendFactor.g || - blendFactor->b != renderer->blendState.blendFactor.b || - blendFactor->a != renderer->blendState.blendFactor.a ) - { - renderer->blendState.blendFactor = *blendFactor; - renderer->needNewPipeline = 1; - - RECORD_CMD(renderer->vkCmdSetBlendConstants( - renderer->currentCommandBufferContainer->commandBuffer, - blendConstants - )); - } -} - -static int32_t VULKAN_GetMultiSampleMask(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->multiSampleMask[0]; -} - -static void VULKAN_SetMultiSampleMask(FNA3D_Renderer *driverData, int32_t mask) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - if (renderer->debugMode && renderer->multiSampleCount> 32) { - FNA3D_LogWarn( - "Using a 32-bit multisample mask for a 64-sample rasterizer." - " Last 32 bits of the mask will all be 1." - ); - } - if (renderer->multiSampleMask[0] != mask) - { - renderer->multiSampleMask[0] = mask; - renderer->needNewPipeline = 1; - } -} - -static int32_t VULKAN_GetReferenceStencil(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->stencilRef; -} - -static void VULKAN_SetReferenceStencil(FNA3D_Renderer *driverData, int32_t ref) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - if (renderer->stencilRef != ref) - { - renderer->stencilRef = ref; - VULKAN_INTERNAL_SetStencilReferenceValueCommand(renderer); - } -} - -/* Immutable Render States */ - -static void VULKAN_SetBlendState( - FNA3D_Renderer *driverData, - FNA3D_BlendState *blendState -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - - VULKAN_SetBlendFactor( - driverData, - &blendState->blendFactor - ); - - VULKAN_SetMultiSampleMask( - driverData, - blendState->multiSampleMask - ); - - if (SDL_memcmp(&renderer->blendState, blendState, sizeof(FNA3D_BlendState)) != 0) - { - SDL_memcpy(&renderer->blendState, blendState, sizeof(FNA3D_BlendState)); - renderer->needNewPipeline = 1; - } -} - -static void VULKAN_SetDepthStencilState( - FNA3D_Renderer *driverData, - FNA3D_DepthStencilState *depthStencilState -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - - /* TODO: Arrange these checks in an optimized priority */ - if ( renderer->depthStencilState.depthBufferEnable != depthStencilState->depthBufferEnable || - renderer->depthStencilState.depthBufferWriteEnable != depthStencilState->depthBufferWriteEnable || - renderer->depthStencilState.depthBufferFunction != depthStencilState->depthBufferFunction || - renderer->depthStencilState.stencilEnable != depthStencilState->stencilEnable || - renderer->depthStencilState.stencilMask != depthStencilState->stencilMask || - renderer->depthStencilState.stencilWriteMask != depthStencilState->stencilWriteMask || - renderer->depthStencilState.twoSidedStencilMode != depthStencilState->twoSidedStencilMode || - renderer->depthStencilState.stencilFail != depthStencilState->stencilFail || - renderer->depthStencilState.stencilDepthBufferFail != depthStencilState->stencilDepthBufferFail || - renderer->depthStencilState.stencilPass != depthStencilState->stencilPass || - renderer->depthStencilState.stencilFunction != depthStencilState->stencilFunction || - renderer->depthStencilState.ccwStencilFail != depthStencilState->ccwStencilFail || - renderer->depthStencilState.ccwStencilDepthBufferFail != depthStencilState->ccwStencilDepthBufferFail || - renderer->depthStencilState.ccwStencilPass != depthStencilState->ccwStencilPass || - renderer->depthStencilState.ccwStencilFunction != depthStencilState->ccwStencilFunction || - renderer->depthStencilState.referenceStencil != depthStencilState->referenceStencil ) - { - renderer->needNewPipeline = 1; - - SDL_memcpy( - &renderer->depthStencilState, - depthStencilState, - sizeof(FNA3D_DepthStencilState) - ); - } - - /* Dynamic state */ - VULKAN_SetReferenceStencil( - driverData, - depthStencilState->referenceStencil - ); -} - -static void VULKAN_ApplyRasterizerState( - FNA3D_Renderer *driverData, - FNA3D_RasterizerState *rasterizerState -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - float realDepthBias; - - if (rasterizerState->scissorTestEnable != renderer->rasterizerState.scissorTestEnable) - { - renderer->rasterizerState.scissorTestEnable = rasterizerState->scissorTestEnable; - VULKAN_INTERNAL_SetScissorRectCommand(renderer); - renderer->needNewPipeline = 1; - } - - realDepthBias = rasterizerState->depthBias * XNAToVK_DepthBiasScale( - XNAToVK_DepthFormat( - renderer, - renderer->currentDepthFormat - ) - ); - - if ( realDepthBias != renderer->rasterizerState.depthBias || - rasterizerState->slopeScaleDepthBias != renderer->rasterizerState.slopeScaleDepthBias ) - { - renderer->rasterizerState.depthBias = realDepthBias; - renderer->rasterizerState.slopeScaleDepthBias = rasterizerState->slopeScaleDepthBias; - VULKAN_INTERNAL_SetDepthBiasCommand(renderer); - renderer->needNewPipeline = 1; - } - - if ( rasterizerState->cullMode != renderer->rasterizerState.cullMode || - rasterizerState->fillMode != renderer->rasterizerState.fillMode || - rasterizerState->multiSampleAntiAlias != renderer->rasterizerState.multiSampleAntiAlias ) - { - renderer->rasterizerState.cullMode = rasterizerState->cullMode; - renderer->rasterizerState.fillMode = rasterizerState->fillMode; - renderer->rasterizerState.multiSampleAntiAlias = rasterizerState->multiSampleAntiAlias; - renderer->needNewPipeline = 1; - } -} - -static void VULKAN_VerifySampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *vulkanTexture = (VulkanTexture*) texture; - VkSampler vkSamplerState; - VulkanResourceAccessType resourceAccessType; - - if (texture == NULL) - { - if (renderer->textures[index] != &NullTexture) - { - renderer->textures[index] = &NullTexture; - renderer->textureNeedsUpdate[index] = 1; - } - - if (renderer->samplers[index] == VK_NULL_HANDLE) - { - vkSamplerState = VULKAN_INTERNAL_FetchSamplerState( - renderer, - sampler, - 0 - ); - - renderer->samplers[index] = vkSamplerState; - renderer->samplerNeedsUpdate[index] = 1; - } - - return; - } - - if (!vulkanTexture->external) - { - if (index >= MAX_TEXTURE_SAMPLERS) - { - resourceAccessType = RESOURCE_ACCESS_VERTEX_SHADER_READ_SAMPLED_IMAGE; - } - else - { - resourceAccessType = RESOURCE_ACCESS_FRAGMENT_SHADER_READ_SAMPLED_IMAGE; - } - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - resourceAccessType, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - vulkanTexture->layerCount, - 0, - vulkanTexture->levelCount, - 0, - vulkanTexture->image, - &vulkanTexture->resourceAccessType - ); - } - - if (vulkanTexture != renderer->textures[index]) - { - renderer->textures[index] = vulkanTexture; - renderer->textureNeedsUpdate[index] = 1; - - if (index >= MAX_TEXTURE_SAMPLERS) - { - renderer->vertexSamplerDescriptorSetDataNeedsUpdate = 1; - } - else - { - renderer->fragSamplerDescriptorSetDataNeedsUpdate = 1; - } - } - - vkSamplerState = VULKAN_INTERNAL_FetchSamplerState( - renderer, - sampler, - vulkanTexture->levelCount - ); - - if (vkSamplerState != renderer->samplers[index]) - { - renderer->samplers[index] = vkSamplerState; - renderer->samplerNeedsUpdate[index] = 1; - - if (index >= MAX_TEXTURE_SAMPLERS) - { - renderer->vertexSamplerDescriptorSetDataNeedsUpdate = 1; - } - else - { - renderer->fragSamplerDescriptorSetDataNeedsUpdate = 1; - } - } -} - -static void VULKAN_VerifyVertexSampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - VULKAN_VerifySampler( - driverData, - MAX_TEXTURE_SAMPLERS + index, - texture, - sampler - ); -} - -static void VULKAN_ApplyVertexBufferBindings( - FNA3D_Renderer *driverData, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - MOJOSHADER_vkShader *vertexShader, *blah; - int32_t i, bindingsIndex; - uint32_t hash; - void* bindingsResult; - FNA3D_VertexBufferBinding *src, *dst; - VulkanBuffer *vertexBuffer; - VkDeviceSize offset; - - /* Check VertexBufferBindings */ - MOJOSHADER_vkGetBoundShaders(renderer->mojoshaderContext, &vertexShader, &blah); - bindingsResult = PackedVertexBufferBindingsArray_Fetch( - renderer->vertexBufferBindingsCache, - bindings, - numBindings, - vertexShader, - &bindingsIndex, - &hash - ); - if (bindingsResult == NULL) - { - PackedVertexBufferBindingsArray_Insert( - &renderer->vertexBufferBindingsCache, - bindings, - numBindings, - vertexShader, - (void*) 69420 - ); - } - - if (bindingsUpdated) - { - renderer->numVertexBindings = numBindings; - for (i = 0; i < renderer->numVertexBindings; i += 1) - { - src = &bindings[i]; - dst = &renderer->vertexBindings[i]; - dst->vertexBuffer = src->vertexBuffer; - dst->vertexOffset = src->vertexOffset; - dst->instanceFrequency = src->instanceFrequency; - dst->vertexDeclaration.vertexStride = src->vertexDeclaration.vertexStride; - dst->vertexDeclaration.elementCount = src->vertexDeclaration.elementCount; - SDL_memcpy( - dst->vertexDeclaration.elements, - src->vertexDeclaration.elements, - sizeof(FNA3D_VertexElement) * src->vertexDeclaration.elementCount - ); - } - } - - if (bindingsIndex != renderer->currentVertexBufferBindingsIndex) - { - renderer->currentVertexBufferBindingsIndex = bindingsIndex; - renderer->needNewPipeline = 1; - } - - for (i = 0; i < numBindings; i += 1) - { - vertexBuffer = ((VulkanBufferContainer*) bindings[i].vertexBuffer)->vulkanBuffer; - if (vertexBuffer == NULL) - { - continue; - } - - offset = - bindings[i].vertexOffset * - bindings[i].vertexDeclaration.vertexStride - ; - - renderer->boundVertexBuffers[i] = vertexBuffer->buffer; - renderer->boundVertexBufferOffsets[i] = offset; - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_VERTEX_BUFFER, - vertexBuffer->buffer, - &vertexBuffer->resourceAccessType - ); - - VULKAN_INTERNAL_MarkBufferAsBound(renderer, vertexBuffer); - } -} - -/* Render Targets */ - -static void VULKAN_SetRenderTargets( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanColorBuffer *cb; - VulkanTexture *tex; - int32_t i; - - /* Perform any pending clears before switching render targets */ - if ( renderer->shouldClearColorOnBeginPass || - renderer->shouldClearDepthOnBeginPass || - renderer->shouldClearStencilOnBeginPass ) - { - VULKAN_INTERNAL_BeginRenderPass(renderer); - } - - renderer->preserveTargetContents = preserveTargetContents; - - for (i = 0; i < MAX_RENDERTARGET_BINDINGS; i += 1) - { - renderer->colorAttachments[i] = NULL; - renderer->colorMultiSampleAttachments[i] = NULL; - } - renderer->depthStencilAttachment = NULL; - renderer->multiSampleCount = renderer->fauxBackbufferMultiSampleCount; - - if (numRenderTargets <= 0) - { - renderer->colorAttachments[0] = renderer->fauxBackbufferColor.handle; - renderer->attachmentCubeFaces[0] = (FNA3D_CubeMapFace) 0; - renderer->colorAttachmentCount = 1; - - if (renderer->fauxBackbufferMultiSampleCount > 1) - { - renderer->colorMultiSampleAttachments[0] = - renderer->fauxBackbufferMultiSampleColor; - } - renderer->depthStencilAttachment = - renderer->fauxBackbufferDepthStencil.handle; - - renderer->renderTargetBound = 0; - } - else - { - for (i = 0; i < numRenderTargets; i += 1) - { - renderer->attachmentCubeFaces[i] = ( - renderTargets[i].type == FNA3D_RENDERTARGET_TYPE_CUBE ? - renderTargets[i].cube.face : - (FNA3D_CubeMapFace) 0 - ); - - if (renderTargets[i].colorBuffer != NULL) - { - cb = ((VulkanRenderbuffer*) renderTargets[i].colorBuffer)->colorBuffer; - renderer->colorAttachments[i] = cb->handle; - renderer->multiSampleCount = cb->multiSampleCount; - - if (cb->multiSampleCount > 0) - { - renderer->colorMultiSampleAttachments[i] = cb->multiSampleTexture; - } - } - else - { - tex = (VulkanTexture*) renderTargets[i].texture; - renderer->colorAttachments[i] = tex; - renderer->multiSampleCount = 0; - } - } - - renderer->colorAttachmentCount = numRenderTargets; - - /* update depth stencil buffer */ - - if (depthStencilBuffer != NULL) - { - renderer->depthStencilAttachment = ((VulkanRenderbuffer*) depthStencilBuffer)->depthBuffer->handle; - renderer->currentDepthFormat = depthFormat; - } - else - { - renderer->depthStencilAttachment = NULL; - } - - renderer->renderTargetBound = 1; - } - - renderer->needNewRenderPass = 1; -} - -static void VULKAN_ResolveTarget( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *target -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *vulkanTexture = (VulkanTexture*) target->texture; - int32_t layerCount = (target->type == FNA3D_RENDERTARGET_TYPE_CUBE) ? 6 : 1; - int32_t level; - VulkanResourceAccessType *origAccessType; - VkImageBlit blit; - - /* The target is resolved during the render pass. */ - - /* If the target has mipmaps, regenerate them now */ - if (target->levelCount > 1) - { - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - /* Store the original image layout... */ - origAccessType = SDL_stack_alloc( - VulkanResourceAccessType, - target->levelCount - ); - for (level = 0; level < target->levelCount; level += 1) - { - origAccessType[level] = vulkanTexture->resourceAccessType; - } - - /* Blit each mip sequentially. Barriers, barriers everywhere! */ - for (level = 1; level < target->levelCount; level += 1) - { - blit.srcOffsets[0].x = 0; - blit.srcOffsets[0].y = 0; - blit.srcOffsets[0].z = 0; - - blit.srcOffsets[1].x = vulkanTexture->dimensions.width >> (level - 1); - blit.srcOffsets[1].y = vulkanTexture->dimensions.height >> (level - 1); - blit.srcOffsets[1].z = 1; - - blit.dstOffsets[0].x = 0; - blit.dstOffsets[0].y = 0; - blit.dstOffsets[0].z = 0; - - blit.dstOffsets[1].x = vulkanTexture->dimensions.width >> level; - blit.dstOffsets[1].y = vulkanTexture->dimensions.height >> level; - blit.dstOffsets[1].z = 1; - - blit.srcSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - blit.srcSubresource.baseArrayLayer = 0; - blit.srcSubresource.layerCount = layerCount; - blit.srcSubresource.mipLevel = level - 1; - - blit.dstSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - blit.dstSubresource.baseArrayLayer = 0; - blit.dstSubresource.layerCount = layerCount; - blit.dstSubresource.mipLevel = level; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - layerCount, - level - 1, - 1, - 0, - vulkanTexture->image, - &origAccessType[level - 1] - ); - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - layerCount, - level, - 1, - 1, - vulkanTexture->image, - &origAccessType[level] - ); - - RECORD_CMD(renderer->vkCmdBlitImage( - renderer->currentCommandBufferContainer->commandBuffer, - vulkanTexture->image, - VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, - vulkanTexture->image, - VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, - 1, - &blit, - VK_FILTER_LINEAR - )); - } - - /* Revert to the old image layout. - * Not as graceful as a single barrier call, but oh well - */ - for (level = 0; level < target->levelCount; level += 1) - { - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - vulkanTexture->resourceAccessType, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - layerCount, - level, - 1, - 0, - vulkanTexture->image, - &origAccessType[level] - ); - } - - SDL_stack_free(origAccessType); - } -} - -/* Backbuffer Functions */ - -static void VULKAN_ResetBackbuffer( - FNA3D_Renderer *driverData, - FNA3D_PresentationParameters *presentationParameters -) { - int32_t i; - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - uint8_t recreateSwapchains = - (presentationParameters->backBufferWidth != renderer->fauxBackbufferWidth || - presentationParameters->backBufferHeight != renderer->fauxBackbufferHeight); - - VULKAN_INTERNAL_FlushCommands(renderer, 1); - - VULKAN_INTERNAL_DestroyFauxBackbuffer(renderer); - VULKAN_INTERNAL_CreateFauxBackbuffer( - renderer, - presentationParameters - ); - - VULKAN_INTERNAL_FlushCommands(renderer, 1); - - if (recreateSwapchains) - { - for (i = renderer->swapchainDataCount - 1; i >= 0; i -= 1) - { - VULKAN_INTERNAL_RecreateSwapchain(renderer, renderer->swapchainDatas[i]->windowHandle); - } - } -} - -static void VULKAN_ReadBackbuffer( - FNA3D_Renderer *driverData, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - void* data, - int32_t dataLength -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - - VULKAN_GetTextureData2D( - driverData, - (FNA3D_Texture*) renderer->fauxBackbufferColor.handle, - x, - y, - w, - h, - 0, - data, - dataLength - ); -} - -static void VULKAN_GetBackbufferSize( - FNA3D_Renderer *driverData, - int32_t *w, - int32_t *h -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - *w = renderer->fauxBackbufferWidth; - *h = renderer->fauxBackbufferHeight; -} - -static FNA3D_SurfaceFormat VULKAN_GetBackbufferSurfaceFormat( - FNA3D_Renderer *driverData -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->fauxBackbufferColor.handle->colorFormat; -} - -static FNA3D_DepthFormat VULKAN_GetBackbufferDepthFormat( - FNA3D_Renderer *driverData -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - if (renderer->fauxBackbufferDepthStencil.handle == NULL) - { - return FNA3D_DEPTHFORMAT_NONE; - } - return renderer->fauxBackbufferDepthStencil.handle->depthStencilFormat; -} - -static int32_t VULKAN_GetBackbufferMultiSampleCount(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->fauxBackbufferMultiSampleCount; -} - -/* Textures */ - -static FNA3D_Texture* VULKAN_CreateTexture2D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *result; - uint32_t usageFlags = ( - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_TRANSFER_SRC_BIT - ); - - result = (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); - - if (isRenderTarget) - { - usageFlags |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - } - - VULKAN_INTERNAL_CreateTexture( - renderer, - width, - height, - 1, - 0, - isRenderTarget, - VK_SAMPLE_COUNT_1_BIT, - levelCount, - XNAToVK_SurfaceFormat[format], - XNAToVK_SurfaceSwizzle[format], - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_TYPE_2D, - usageFlags, - result - ); - result->colorFormat = format; - - return (FNA3D_Texture*) result; -} - -static FNA3D_Texture* VULKAN_CreateTexture3D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *result; - uint32_t usageFlags = ( - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_TRANSFER_SRC_BIT - ); - - result = (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); - - VULKAN_INTERNAL_CreateTexture( - renderer, - width, - height, - depth, - 0, - 0, - VK_SAMPLE_COUNT_1_BIT, - levelCount, - XNAToVK_SurfaceFormat[format], - XNAToVK_SurfaceSwizzle[format], - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_TYPE_3D, - usageFlags, - result - ); - result->colorFormat = format; - - return (FNA3D_Texture*) result; -} - -static FNA3D_Texture* VULKAN_CreateTextureCube( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *result; - uint32_t usageFlags = ( - VK_IMAGE_USAGE_SAMPLED_BIT | - VK_IMAGE_USAGE_TRANSFER_DST_BIT | - VK_IMAGE_USAGE_TRANSFER_SRC_BIT - ); - - result = (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); - - if (isRenderTarget) - { - usageFlags |= VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT; - } - - VULKAN_INTERNAL_CreateTexture( - renderer, - size, - size, - 1, - 1, - isRenderTarget, - VK_SAMPLE_COUNT_1_BIT, - levelCount, - XNAToVK_SurfaceFormat[format], - XNAToVK_SurfaceSwizzle[format], - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_TYPE_2D, - usageFlags, - result - ); - result->colorFormat = format; - - return (FNA3D_Texture*) result; -} - -static void VULKAN_AddDisposeTexture( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *vulkanTexture = (VulkanTexture*) texture; - uint32_t i; - - for (i = 0; i < MAX_RENDERTARGET_BINDINGS; i += 1) - { - if (renderer->colorAttachments[i] != NULL) - { - if (vulkanTexture->view == renderer->colorAttachments[i]->rtViews[renderer->attachmentCubeFaces[i]]) - { - renderer->colorAttachments[i] = NULL; - } - } - } - - for (i = 0; i < TEXTURE_COUNT; i += 1) - { - if (vulkanTexture == renderer->textures[i]) - { - renderer->textures[i] = &NullTexture; - renderer->textureNeedsUpdate[i] = 1; - } - } - - /* Queue texture for destruction */ - SDL_LockMutex(renderer->commandLock); - if (renderer->currentCommandBufferContainer->texturesToDestroyCount + 1 >= renderer->currentCommandBufferContainer->texturesToDestroyCapacity) - { - renderer->currentCommandBufferContainer->texturesToDestroyCapacity *= 2; - - renderer->currentCommandBufferContainer->texturesToDestroy = SDL_realloc( - renderer->currentCommandBufferContainer->texturesToDestroy, - sizeof(VulkanTexture*) * renderer->currentCommandBufferContainer->texturesToDestroyCapacity - ); - } - renderer->currentCommandBufferContainer->texturesToDestroy[renderer->currentCommandBufferContainer->texturesToDestroyCount] = vulkanTexture; - renderer->currentCommandBufferContainer->texturesToDestroyCount += 1; - SDL_UnlockMutex(renderer->commandLock); -} - -static void VULKAN_INTERNAL_SetTextureData( - VulkanRenderer *renderer, - VulkanTexture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - int32_t layer, - void *data, - int32_t dataLength -) { - VkBufferImageCopy imageCopy; - int32_t uploadLength = BytesPerImage(w, h, texture->colorFormat) * d; - int32_t copyLength = SDL_min(dataLength, uploadLength); - VulkanBuffer *transferBuffer; - VkDeviceSize offset; - int32_t bufferRowLength = w; - int32_t bufferImageHeight = h; - int32_t blockSize = Texture_GetBlockSize(texture->colorFormat); - - if (dataLength > uploadLength) - { - FNA3D_LogWarn( - "dataLength %i too long for texture upload, w: %i, h: %i, max upload length: %i", - dataLength, - w, - h, - uploadLength - ); - } - - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - SDL_LockMutex(renderer->passLock); - SDL_LockMutex(renderer->transferLock); - - VULKAN_INTERNAL_CopyToTransferBuffer( - renderer, - data, - uploadLength, - copyLength, - &transferBuffer, - &offset, - (VkDeviceSize)Texture_GetFormatSize(texture->colorFormat) - ); - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - transferBuffer->buffer, - &transferBuffer->resourceAccessType - ); - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - texture->layerCount, - 0, - texture->levelCount, - 0, - texture->image, - &texture->resourceAccessType - ); - - /* Block compressed texture buffers must be at least 1 block in width and height */ - bufferRowLength = SDL_max(blockSize, w); - bufferImageHeight = SDL_max(blockSize, h); - - imageCopy.imageExtent.width = w; - imageCopy.imageExtent.height = h; - imageCopy.imageExtent.depth = d; - imageCopy.imageOffset.x = x; - imageCopy.imageOffset.y = y; - imageCopy.imageOffset.z = z; - imageCopy.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - imageCopy.imageSubresource.baseArrayLayer = layer; - imageCopy.imageSubresource.layerCount = 1; - imageCopy.imageSubresource.mipLevel = level; - imageCopy.bufferOffset = offset; - imageCopy.bufferRowLength = bufferRowLength; - imageCopy.bufferImageHeight = bufferImageHeight; - - RECORD_CMD(renderer->vkCmdCopyBufferToImage( - renderer->currentCommandBufferContainer->commandBuffer, - transferBuffer->buffer, - texture->image, - AccessMap[texture->resourceAccessType].imageLayout, - 1, - &imageCopy - )); - - SDL_UnlockMutex(renderer->transferLock); - SDL_UnlockMutex(renderer->passLock); -} - -static void VULKAN_SetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - VULKAN_INTERNAL_SetTextureData( - (VulkanRenderer*) driverData, - (VulkanTexture*) texture, - x, - y, - 0, - w, - h, - 1, - level, - 0, - data, - dataLength - ); -} - -static void VULKAN_SetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - VULKAN_INTERNAL_SetTextureData( - (VulkanRenderer*) driverData, - (VulkanTexture*) texture, - x, - y, - z, - w, - h, - d, - level, - 0, - data, - dataLength - ); -} - -static void VULKAN_SetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - VULKAN_INTERNAL_SetTextureData( - (VulkanRenderer*) driverData, - (VulkanTexture*) texture, - x, - y, - 0, - w, - h, - 1, - level, - cubeMapFace, - data, - dataLength - ); -} - -static void VULKAN_SetTextureDataYUV( - FNA3D_Renderer *driverData, - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *tex; - VulkanBuffer *transferBuffer; - int32_t yDataLength = BytesPerImage(yWidth, yHeight, FNA3D_SURFACEFORMAT_ALPHA8); - int32_t uvDataLength = BytesPerImage(uvWidth, uvHeight, FNA3D_SURFACEFORMAT_ALPHA8); - int32_t uploadLength = yDataLength + uvDataLength * 2; - int32_t copyLength = SDL_min(dataLength, uploadLength); - VkBufferImageCopy imageCopy; - VkDeviceSize offset; - - if (dataLength > uploadLength) - { - FNA3D_LogWarn( - "dataLength %i too long for texture upload, max upload length: %i", - dataLength, - uploadLength - ); - } - - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - SDL_LockMutex(renderer->passLock); - SDL_LockMutex(renderer->transferLock); - - VULKAN_INTERNAL_CopyToTransferBuffer( - renderer, - data, - uploadLength, - copyLength, - &transferBuffer, - &offset, - (VkDeviceSize)Texture_GetFormatSize(FNA3D_SURFACEFORMAT_ALPHA8) - ); - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - transferBuffer->buffer, - &transferBuffer->resourceAccessType - ); - - /* Initialize values that are the same for Y, U, and V */ - - imageCopy.imageExtent.depth = 1; - imageCopy.imageOffset.x = 0; - imageCopy.imageOffset.y = 0; - imageCopy.imageOffset.z = 0; - imageCopy.imageSubresource.aspectMask = VK_IMAGE_ASPECT_COLOR_BIT; - imageCopy.imageSubresource.baseArrayLayer = 0; - imageCopy.imageSubresource.layerCount = 1; - imageCopy.imageSubresource.mipLevel = 0; - - /* Y */ - - tex = (VulkanTexture*) y; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - tex->layerCount, - 0, - tex->levelCount, - 0, - tex->image, - &tex->resourceAccessType - ); - - imageCopy.imageExtent.width = yWidth; - imageCopy.imageExtent.height = yHeight; - imageCopy.bufferOffset = offset; - imageCopy.bufferRowLength = yWidth; - imageCopy.bufferImageHeight = yHeight; - - RECORD_CMD(renderer->vkCmdCopyBufferToImage( - renderer->currentCommandBufferContainer->commandBuffer, - transferBuffer->buffer, - tex->image, - AccessMap[tex->resourceAccessType].imageLayout, - 1, - &imageCopy - )); - - /* These apply to both U and V */ - - imageCopy.imageExtent.width = uvWidth; - imageCopy.imageExtent.height = uvHeight; - imageCopy.bufferRowLength = uvWidth; - imageCopy.bufferImageHeight = uvHeight; - - /* U */ - - imageCopy.bufferOffset = offset + yDataLength; - - tex = (VulkanTexture*) u; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - tex->layerCount, - 0, - tex->levelCount, - 0, - tex->image, - &tex->resourceAccessType - ); - - RECORD_CMD(renderer->vkCmdCopyBufferToImage( - renderer->currentCommandBufferContainer->commandBuffer, - transferBuffer->buffer, - tex->image, - AccessMap[tex->resourceAccessType].imageLayout, - 1, - &imageCopy - )); - - /* V */ - - imageCopy.bufferOffset = offset + yDataLength + uvDataLength; - - tex = (VulkanTexture*) v; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - tex->layerCount, - 0, - tex->levelCount, - 0, - tex->image, - &tex->resourceAccessType - ); - - RECORD_CMD(renderer->vkCmdCopyBufferToImage( - renderer->currentCommandBufferContainer->commandBuffer, - transferBuffer->buffer, - tex->image, - AccessMap[tex->resourceAccessType].imageLayout, - 1, - &imageCopy - )); - - SDL_UnlockMutex(renderer->transferLock); - SDL_UnlockMutex(renderer->passLock); -} - -static void VULKAN_GetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - VULKAN_INTERNAL_GetTextureData( - driverData, - texture, - x, - y, - w, - h, - level, - 0, - data, - dataLength - ); -} - -static void VULKAN_GetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - FNA3D_LogError( - "GetTextureData3D is unsupported!" - ); -} - -static void VULKAN_GetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - VULKAN_INTERNAL_GetTextureData( - driverData, - texture, - x, - y, - w, - h, - level, - cubeMapFace, - data, - dataLength - ); -} - -/* Renderbuffers */ - -static FNA3D_Renderbuffer* VULKAN_GenColorRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanTexture *vlkTexture = (VulkanTexture*) texture; - VulkanRenderbuffer *renderbuffer; - - /* Create and return the renderbuffer */ - renderbuffer = (VulkanRenderbuffer*) SDL_malloc(sizeof(VulkanRenderbuffer)); - renderbuffer->depthBuffer = NULL; - renderbuffer->colorBuffer = (VulkanColorBuffer*) SDL_malloc( - sizeof(VulkanColorBuffer) - ); - renderbuffer->colorBuffer->handle = vlkTexture; - renderbuffer->colorBuffer->multiSampleTexture = NULL; - renderbuffer->colorBuffer->multiSampleCount = 0; - - if (multiSampleCount > 1) - { - renderbuffer->colorBuffer->multiSampleTexture = - (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); - VULKAN_INTERNAL_CreateTexture( - renderer, - width, - height, - 1, - 0, - 1, - XNAToVK_SampleCount(multiSampleCount), - 1, - XNAToVK_SurfaceFormat[format], - XNAToVK_SurfaceSwizzle[format], - VK_IMAGE_ASPECT_COLOR_BIT, - VK_IMAGE_TYPE_2D, - VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, - renderbuffer->colorBuffer->multiSampleTexture - ); - renderbuffer->colorBuffer->multiSampleTexture->colorFormat = format; - - renderbuffer->colorBuffer->multiSampleCount = multiSampleCount; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_COLOR_ATTACHMENT_READ_WRITE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - renderbuffer->colorBuffer->multiSampleTexture->layerCount, - 0, - renderbuffer->colorBuffer->multiSampleTexture->levelCount, - 0, - renderbuffer->colorBuffer->multiSampleTexture->image, - &renderbuffer->colorBuffer->multiSampleTexture->resourceAccessType - ); - } - - return (FNA3D_Renderbuffer*) renderbuffer; -} - -static FNA3D_Renderbuffer* VULKAN_GenDepthStencilRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanRenderbuffer *renderbuffer; - VkImageAspectFlags depthAspectFlags = VK_IMAGE_ASPECT_DEPTH_BIT; - VkFormat depthFormat = XNAToVK_DepthFormat(renderer, format); - - if (DepthFormatContainsStencil(depthFormat)) - { - depthAspectFlags |= VK_IMAGE_ASPECT_STENCIL_BIT; - } - - renderbuffer = (VulkanRenderbuffer*) SDL_malloc( - sizeof(VulkanRenderbuffer) - ); - renderbuffer->colorBuffer = NULL; - renderbuffer->depthBuffer = (VulkanDepthStencilBuffer*) SDL_malloc( - sizeof(VulkanDepthStencilBuffer) - ); - - renderbuffer->depthBuffer->handle = (VulkanTexture*) SDL_malloc( - sizeof(VulkanTexture) - ); - if (!VULKAN_INTERNAL_CreateTexture( - renderer, - width, - height, - 1, - 0, - 1, - XNAToVK_SampleCount(multiSampleCount), - 1, - depthFormat, - RGBA_SWIZZLE, - depthAspectFlags, - VK_IMAGE_TYPE_2D, - VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT, - renderbuffer->depthBuffer->handle - )) { - FNA3D_LogError("Failed to create depth stencil image"); - return NULL; - } - renderbuffer->depthBuffer->handle->depthStencilFormat = format; - - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_WRITE, - depthAspectFlags, - 0, - renderbuffer->depthBuffer->handle->layerCount, - 0, - renderbuffer->depthBuffer->handle->levelCount, - 0, - renderbuffer->depthBuffer->handle->image, - &renderbuffer->depthBuffer->handle->resourceAccessType - ); - - return (FNA3D_Renderbuffer*) renderbuffer; -} - -static void VULKAN_AddDisposeRenderbuffer( - FNA3D_Renderer *driverData, - FNA3D_Renderbuffer *renderbuffer -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanRenderbuffer *vlkRenderBuffer = (VulkanRenderbuffer*) renderbuffer; - uint8_t isDepthStencil = (vlkRenderBuffer->colorBuffer == NULL); - uint32_t i; - - if (isDepthStencil) - { - if (renderer->depthStencilAttachment == vlkRenderBuffer->depthBuffer->handle) - { - renderer->depthStencilAttachment = NULL; - } - } - else - { - /* Iterate through color attachments */ - for (i = 0; i < MAX_RENDERTARGET_BINDINGS; i += 1) - { - if (renderer->colorAttachments[i] == vlkRenderBuffer->colorBuffer->handle) - { - renderer->colorAttachments[i] = NULL; - } - - } - } - - SDL_LockMutex(renderer->commandLock); - if (renderer->currentCommandBufferContainer->renderbuffersToDestroyCount + 1 >= renderer->currentCommandBufferContainer->renderbuffersToDestroyCapacity) - { - renderer->currentCommandBufferContainer->renderbuffersToDestroyCapacity *= 2; - - renderer->currentCommandBufferContainer->renderbuffersToDestroy = SDL_realloc( - renderer->currentCommandBufferContainer->renderbuffersToDestroy, - sizeof(VulkanRenderbuffer*) * renderer->currentCommandBufferContainer->renderbuffersToDestroyCapacity - ); - } - - renderer->currentCommandBufferContainer->renderbuffersToDestroy[renderer->currentCommandBufferContainer->renderbuffersToDestroyCount] = vlkRenderBuffer; - renderer->currentCommandBufferContainer->renderbuffersToDestroyCount += 1; - SDL_UnlockMutex(renderer->commandLock); -} - -/* Buffers */ - -static VulkanBufferContainer* VULKAN_INTERNAL_CreateBufferContainer( - VulkanRenderer *renderer, - VulkanBuffer *initialBuffer -) { - VulkanBufferContainer *bufferContainer = SDL_malloc(sizeof(VulkanBufferContainer)); - - bufferContainer->bufferCapacity = 1; - bufferContainer->bufferCount = 1; - bufferContainer->buffers = SDL_malloc(sizeof(VulkanBuffer*)); - bufferContainer->buffers[0] = initialBuffer; - - bufferContainer->vulkanBuffer = initialBuffer; - return bufferContainer; -} - -static FNA3D_Buffer* VULKAN_GenVertexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - return (FNA3D_Buffer*) VULKAN_INTERNAL_CreateBufferContainer( - (VulkanRenderer*) driverData, - VULKAN_INTERNAL_CreateBuffer( - (VulkanRenderer*) driverData, - sizeInBytes, - RESOURCE_ACCESS_VERTEX_BUFFER, - VK_BUFFER_USAGE_VERTEX_BUFFER_BIT, - 0, - 0 - ) - ); -} - -static void VULKAN_INTERNAL_DestroyBufferContainer( - VulkanRenderer *renderer, - VulkanBufferContainer *bufferContainer -) { - uint32_t i; - - for (i = 0; i < bufferContainer->bufferCount; i += 1) - { - VULKAN_INTERNAL_MarkBufferForDestroy(renderer, bufferContainer->buffers[i]); - } - - SDL_free(bufferContainer->buffers); - SDL_free(bufferContainer); -} - -static void VULKAN_AddDisposeVertexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { - VULKAN_INTERNAL_DestroyBufferContainer( - (VulkanRenderer*) driverData, - (VulkanBufferContainer*) buffer - ); -} - -static void VULKAN_SetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -) { - /* FIXME: use transfer buffer for elementSizeInBytes < vertexStride */ - VULKAN_INTERNAL_SetBufferData( - driverData, - buffer, - offsetInBytes, - data, - elementCount * vertexStride, - options - ); -} - -static void VULKAN_GetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanBuffer *vulkanBuffer = ((VulkanBufferContainer*) buffer)->vulkanBuffer; - uint8_t *dataBytes, *cpy, *src, *dst; - uint8_t useTransferBuffer; - int32_t i; - - dataBytes = (uint8_t*) data; - useTransferBuffer = elementSizeInBytes < vertexStride; - - if (useTransferBuffer) - { - cpy = (uint8_t*) SDL_malloc(elementCount * vertexStride); - } - else - { - cpy = dataBytes; - } - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - vulkanBuffer->buffer, - &vulkanBuffer->resourceAccessType - ); - - SDL_memcpy( - cpy, - vulkanBuffer->usedRegion->allocation->mapPointer + vulkanBuffer->usedRegion->resourceOffset + offsetInBytes, - elementCount * vertexStride - ); - - if (useTransferBuffer) - { - src = cpy; - dst = dataBytes; - for (i = 0; i < elementCount; i += 1) - { - SDL_memcpy(dst, src, elementSizeInBytes); - dst += elementSizeInBytes; - src += vertexStride; - } - SDL_free(cpy); - } - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_VERTEX_BUFFER, - vulkanBuffer->buffer, - &vulkanBuffer->resourceAccessType - ); -} - -static FNA3D_Buffer* VULKAN_GenIndexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - return (FNA3D_Buffer*) VULKAN_INTERNAL_CreateBufferContainer( - (VulkanRenderer*) driverData, - VULKAN_INTERNAL_CreateBuffer( - (VulkanRenderer*) driverData, - sizeInBytes, - RESOURCE_ACCESS_INDEX_BUFFER, - VK_BUFFER_USAGE_INDEX_BUFFER_BIT, - 0, - 0 - ) - ); -} - -static void VULKAN_AddDisposeIndexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { - VULKAN_INTERNAL_DestroyBufferContainer( - (VulkanRenderer*) driverData, - (VulkanBufferContainer*) buffer - ); -} - -static void VULKAN_SetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -) { - VULKAN_INTERNAL_SetBufferData( - driverData, - buffer, - offsetInBytes, - data, - dataLength, - options - ); -} - -static void VULKAN_GetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanBuffer *vulkanBuffer = ((VulkanBufferContainer*) buffer)->vulkanBuffer; - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_TRANSFER_READ, - vulkanBuffer->buffer, - &vulkanBuffer->resourceAccessType - ); - - SDL_memcpy( - data, - vulkanBuffer->usedRegion->allocation->mapPointer + vulkanBuffer->usedRegion->resourceOffset + offsetInBytes, - dataLength - ); - - VULKAN_INTERNAL_BufferMemoryBarrier( - renderer, - RESOURCE_ACCESS_INDEX_BUFFER, - vulkanBuffer->buffer, - &vulkanBuffer->resourceAccessType - ); -} - -/* Effects */ - -static inline void ShaderResourcesHashTable_Remove( - VulkanRenderer *renderer, - MOJOSHADER_vkShader *key -) { - int32_t i; - uint64_t hashcode = (uint64_t) (size_t) key; - ShaderResourcesHashArray *arr = - &renderer->shaderResourcesHashTable.buckets[hashcode % NUM_SHADER_RESOURCES_BUCKETS]; - ShaderResourcesHashMap *element; - - for (i = arr->count - 1; i >= 0; i -= 1) - { - element = &arr->elements[i]; - if (element->key == key) - { - ShaderResources_Destroy(renderer, element->value); - - SDL_memmove( - arr->elements + i, - arr->elements + i + 1, - sizeof(ShaderResourcesHashMap) * (arr->count - i - 1) - ); - - arr->count -= 1; - } - } -} - -static void VULKAN_INTERNAL_DeleteShader(const void *shaderContext, void* shader) -{ - MOJOSHADER_vkShader *vkShader = (MOJOSHADER_vkShader*) shader; - const MOJOSHADER_parseData *pd; - VulkanRenderer *renderer; - PipelineHashArray *pipelineHashArray; - int32_t i, j; - - pd = MOJOSHADER_vkGetShaderParseData(vkShader); - renderer = (VulkanRenderer*) pd->malloc_data; - - ShaderResourcesHashTable_Remove(renderer, vkShader); - - /* invalidate any pipeline containing shader */ - for (i = 0; i < NUM_PIPELINE_HASH_BUCKETS; i += 1) - { - pipelineHashArray = &renderer->pipelineHashTable.buckets[i]; - for (j = pipelineHashArray->count - 1; j >= 0; j -= 1) - { - if ( pipelineHashArray->elements[j].key.vertShader == vkShader || - pipelineHashArray->elements[j].key.fragShader == vkShader ) - { - renderer->vkDestroyPipeline( - renderer->logicalDevice, - pipelineHashArray->elements[j].value, - NULL - ); - - SDL_memmove( - pipelineHashArray->elements + j, - pipelineHashArray->elements + j + 1, - sizeof(PipelineHashMap) * (pipelineHashArray->count - j - 1) - ); - - pipelineHashArray->count -= 1; - } - } - } - - MOJOSHADER_vkDeleteShader(renderer->mojoshaderContext, vkShader); -} - -static void VULKAN_CreateEffect( - FNA3D_Renderer *driverData, - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - MOJOSHADER_effectShaderContext shaderBackend; - VulkanEffect *result; - int32_t i; - - shaderBackend.shaderContext = renderer->mojoshaderContext; - shaderBackend.compileShader = (MOJOSHADER_compileShaderFunc) MOJOSHADER_vkCompileShader; - shaderBackend.shaderAddRef = (MOJOSHADER_shaderAddRefFunc) MOJOSHADER_vkShaderAddRef; - shaderBackend.deleteShader = VULKAN_INTERNAL_DeleteShader; - shaderBackend.getParseData = (MOJOSHADER_getParseDataFunc) MOJOSHADER_vkGetShaderParseData; - shaderBackend.bindShaders = (MOJOSHADER_bindShadersFunc) MOJOSHADER_vkBindShaders; - shaderBackend.getBoundShaders = (MOJOSHADER_getBoundShadersFunc) MOJOSHADER_vkGetBoundShaders; - shaderBackend.mapUniformBufferMemory = (MOJOSHADER_mapUniformBufferMemoryFunc) MOJOSHADER_vkMapUniformBufferMemory; - shaderBackend.unmapUniformBufferMemory = (MOJOSHADER_unmapUniformBufferMemoryFunc) MOJOSHADER_vkUnmapUniformBufferMemory; - shaderBackend.getError = (MOJOSHADER_getErrorFunc) MOJOSHADER_vkGetError; - shaderBackend.m = NULL; - shaderBackend.f = NULL; - shaderBackend.malloc_data = driverData; - - *effectData = MOJOSHADER_compileEffect( - effectCode, - effectCodeLength, - NULL, - 0, - NULL, - 0, - &shaderBackend - ); - - for (i = 0; i < (*effectData)->error_count; i += 1) - { - FNA3D_LogError( - "MOJOSHADER_compileEffect Error: %s", - (*effectData)->errors[i].error - ); - } - - result = (VulkanEffect*) SDL_malloc(sizeof(VulkanEffect)); - result->effect = *effectData; - *effect = (FNA3D_Effect*) result; -} - -static void VULKAN_CloneEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *cloneSource, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanEffect *vulkanCloneSource = (VulkanEffect*) cloneSource; - VulkanEffect *result; - - *effectData = MOJOSHADER_cloneEffect(vulkanCloneSource->effect); - if (*effectData == NULL) - { - FNA3D_LogError(MOJOSHADER_vkGetError(renderer->mojoshaderContext)); - } - - result = (VulkanEffect*) SDL_malloc(sizeof(VulkanEffect)); - result->effect = *effectData; - *effect = (FNA3D_Effect*) result; -} - -static void VULKAN_AddDisposeEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanEffect *vulkanEffect = (VulkanEffect*) effect; - - SDL_LockMutex(renderer->commandLock); - if (renderer->currentCommandBufferContainer->effectsToDestroyCount + 1 >= renderer->currentCommandBufferContainer->effectsToDestroyCapacity) - { - renderer->currentCommandBufferContainer->effectsToDestroyCapacity *= 2; - - renderer->currentCommandBufferContainer->effectsToDestroy = SDL_realloc( - renderer->currentCommandBufferContainer->effectsToDestroy, - sizeof(VulkanEffect*) * renderer->currentCommandBufferContainer->effectsToDestroyCapacity - ); - } - - renderer->currentCommandBufferContainer->effectsToDestroy[renderer->currentCommandBufferContainer->effectsToDestroyCount] = vulkanEffect; - renderer->currentCommandBufferContainer->effectsToDestroyCount += 1; - SDL_UnlockMutex(renderer->commandLock); -} - -static void VULKAN_SetEffectTechnique( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -) { - VulkanEffect *vkEffect = (VulkanEffect*) effect; - MOJOSHADER_effectSetTechnique(vkEffect->effect, technique); -} - -static void VULKAN_ApplyEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - uint32_t pass, - MOJOSHADER_effectStateChanges *stateChanges -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanEffect *fnaEffect = (VulkanEffect*) effect; - MOJOSHADER_effect *effectData = fnaEffect->effect; - const MOJOSHADER_effectTechnique *technique = fnaEffect->effect->current_technique; - uint32_t numPasses; - - /* - * Lock to prevent mojoshader from overwriting resource data - * while resources are initialized - */ - SDL_LockMutex(renderer->passLock); - - renderer->vertexSamplerDescriptorSetDataNeedsUpdate = 1; - renderer->fragSamplerDescriptorSetDataNeedsUpdate = 1; - renderer->needNewPipeline = 1; - - if (effectData == renderer->currentEffect) - { - if ( technique == renderer->currentTechnique && - pass == renderer->currentPass ) - { - MOJOSHADER_effectCommitChanges( - renderer->currentEffect - ); - - SDL_UnlockMutex(renderer->passLock); - return; - } - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectBeginPass(renderer->currentEffect, pass); - renderer->currentTechnique = technique; - renderer->currentPass = pass; - - SDL_UnlockMutex(renderer->passLock); - return; - } - else if (renderer->currentEffect != NULL) - { - MOJOSHADER_effectEndPass(renderer->currentEffect); - MOJOSHADER_effectEnd(renderer->currentEffect); - } - - MOJOSHADER_effectBegin( - effectData, - &numPasses, - 0, - stateChanges - ); - - MOJOSHADER_effectBeginPass(effectData, pass); - renderer->currentEffect = effectData; - renderer->currentTechnique = technique; - renderer->currentPass = pass; - - SDL_UnlockMutex(renderer->passLock); -} - -static void VULKAN_BeginPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectStateChanges *stateChanges -) { - MOJOSHADER_effect *effectData = ((VulkanEffect *) effect)->effect; - uint32_t whatever; - - MOJOSHADER_effectBegin( - effectData, - &whatever, - 1, - stateChanges - ); - MOJOSHADER_effectBeginPass(effectData, 0); -} - -static void VULKAN_EndPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { - MOJOSHADER_effect *effectData = ((VulkanEffect *) effect)->effect; - MOJOSHADER_effectEndPass(effectData); - MOJOSHADER_effectEnd(effectData); -} - -/* Queries */ - -static FNA3D_Query* VULKAN_CreateQuery(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer *) driverData; - VulkanQuery *query = (VulkanQuery*) SDL_malloc(sizeof(VulkanQuery)); - - if (renderer->freeQueryIndexStackHead == -1) - { - FNA3D_LogError( - "Query limit of %d has been exceeded!", - MAX_QUERIES - ); - return NULL; - } - - query->index = renderer->freeQueryIndexStackHead; - renderer->freeQueryIndexStackHead = renderer->freeQueryIndexStack[renderer->freeQueryIndexStackHead]; - return (FNA3D_Query *) query; -} - -static void VULKAN_AddDisposeQuery( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanQuery *vulkanQuery = (VulkanQuery*) query; - - /* Push the now-free index to the stack */ - SDL_LockMutex(renderer->disposeLock); - renderer->freeQueryIndexStack[vulkanQuery->index] = - renderer->freeQueryIndexStackHead; - renderer->freeQueryIndexStackHead = vulkanQuery->index; - SDL_UnlockMutex(renderer->disposeLock); - - SDL_free(vulkanQuery); -} - -static void VULKAN_QueryBegin(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanQuery *vulkanQuery = (VulkanQuery*) query; - - /* Need to do this between passes */ - VULKAN_INTERNAL_MaybeEndRenderPass(renderer); - - RECORD_CMD(renderer->vkCmdResetQueryPool( - renderer->currentCommandBufferContainer->commandBuffer, - renderer->queryPool, - vulkanQuery->index, - 1 - )); - - RECORD_CMD(renderer->vkCmdBeginQuery( - renderer->currentCommandBufferContainer->commandBuffer, - renderer->queryPool, - vulkanQuery->index, - VK_QUERY_CONTROL_PRECISE_BIT - )); -} - -static void VULKAN_QueryEnd(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanQuery *vulkanQuery = (VulkanQuery*) query; - - /* Assume that the user is calling this in - * the same pass as they started it - */ - - RECORD_CMD(renderer->vkCmdEndQuery( - renderer->currentCommandBufferContainer->commandBuffer, - renderer->queryPool, - vulkanQuery->index - )); -} - -static uint8_t VULKAN_QueryComplete( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanQuery *vulkanQuery = (VulkanQuery*) query; - VkResult vulkanResult; - uint32_t queryResult; - - vulkanResult = renderer->vkGetQueryPoolResults( - renderer->logicalDevice, - renderer->queryPool, - vulkanQuery->index, - 1, - sizeof(queryResult), - &queryResult, - 0, - 0 - ); - - return vulkanResult == VK_SUCCESS; -} - -static int32_t VULKAN_QueryPixelCount( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VulkanQuery *vulkanQuery = (VulkanQuery*) query; - VkResult vulkanResult; - uint32_t queryResult; - - vulkanResult = renderer->vkGetQueryPoolResults( - renderer->logicalDevice, - renderer->queryPool, - vulkanQuery->index, - 1, - sizeof(queryResult), - &queryResult, - 0, - 0 - ); - VULKAN_ERROR_CHECK(vulkanResult, vkGetQueryPoolResults, 0) - - /* FIXME maybe signed/unsigned integer problems? */ - return queryResult; -} - -/* Feature Queries */ - -static uint8_t VULKAN_SupportsDXT1(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->supportsDxt1; -} - -static uint8_t VULKAN_SupportsS3TC(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->supportsS3tc; -} - -static uint8_t VULKAN_SupportsBC7(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->supportsBc7; -} - -static uint8_t VULKAN_SupportsHardwareInstancing(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->supports.EXT_vertex_attribute_divisor; -} - -static uint8_t VULKAN_SupportsNoOverwrite(FNA3D_Renderer *driverData) -{ - return 1; -} - -static uint8_t VULKAN_SupportsSRGBRenderTargets(FNA3D_Renderer *driverData) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - return renderer->supportsSRGBRenderTarget; -} - -static void VULKAN_GetMaxTextureSlots( - FNA3D_Renderer *driverData, - int32_t *textures, - int32_t *vertexTextures -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - *textures = renderer->numTextureSlots; - *vertexTextures = renderer->numVertexTextureSlots; -} - -static int32_t VULKAN_GetMaxMultiSampleCount( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount -) { - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VkSampleCountFlags flags = renderer->physicalDeviceProperties.properties.limits.framebufferColorSampleCounts; - int32_t maxSupported = 1; - - if (flags & VK_SAMPLE_COUNT_64_BIT) - { - maxSupported = 64; - } - else if (flags & VK_SAMPLE_COUNT_32_BIT) - { - maxSupported = 32; - } - else if (flags & VK_SAMPLE_COUNT_16_BIT) - { - maxSupported = 16; - } - else if (flags & VK_SAMPLE_COUNT_8_BIT) - { - maxSupported = 8; - } - else if (flags & VK_SAMPLE_COUNT_4_BIT) - { - maxSupported = 4; - } - else if (flags & VK_SAMPLE_COUNT_2_BIT) - { - maxSupported = 2; - } - - return SDL_min(multiSampleCount, maxSupported); -} - -/* Debugging */ - -static void VULKAN_SetStringMarker(FNA3D_Renderer *driverData, const char *text) -{ - VulkanRenderer *renderer = (VulkanRenderer*) driverData; - VkDebugUtilsLabelEXT labelInfo; - - if (renderer->supportsDebugUtils) - { - labelInfo.sType = VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT; - labelInfo.pNext = NULL; - labelInfo.pLabelName = text; - - RECORD_CMD(renderer->vkCmdInsertDebugUtilsLabelEXT( - renderer->currentCommandBufferContainer->commandBuffer, - &labelInfo - )); - } -} - -/* External Interop */ - -static void VULKAN_GetSysRenderer( - FNA3D_Renderer *driverData, - FNA3D_SysRendererEXT *sysrenderer -) { - VulkanRenderer* renderer = (VulkanRenderer*) driverData; - - sysrenderer->rendererType = FNA3D_RENDERER_TYPE_VULKAN_EXT; - sysrenderer->renderer.vulkan.instance = renderer->instance; - sysrenderer->renderer.vulkan.physicalDevice = renderer->physicalDevice; - sysrenderer->renderer.vulkan.logicalDevice = renderer->logicalDevice; - sysrenderer->renderer.vulkan.queueFamilyIndex = renderer->queueFamilyIndex; -} - -static FNA3D_Texture* VULKAN_CreateSysTexture( - FNA3D_Renderer *driverData, - FNA3D_SysTextureEXT *systexture -) { - VulkanTexture *texture; - - if (systexture->rendererType != FNA3D_RENDERER_TYPE_VULKAN_EXT) - { - return NULL; - } - - texture = (VulkanTexture*) SDL_malloc(sizeof(VulkanTexture)); - - texture->image = (VkImage) systexture->texture.vulkan.image; - texture->view = (VkImageView) systexture->texture.vulkan.view; - texture->external = 1; - - /* unused by external */ - texture->usedRegion = NULL; - texture->colorFormat = 0; - texture->depth = 0; - texture->depthStencilFormat = 0; - texture->dimensions.width = 0; - texture->dimensions.height = 0; - texture->layerCount = 0; - texture->levelCount = 0; - texture->resourceAccessType = RESOURCE_ACCESS_NONE; - texture->rtViews[0] = VK_NULL_HANDLE; - texture->rtViews[1] = VK_NULL_HANDLE; - texture->rtViews[2] = VK_NULL_HANDLE; - texture->rtViews[3] = VK_NULL_HANDLE; - texture->rtViews[4] = VK_NULL_HANDLE; - texture->rtViews[5] = VK_NULL_HANDLE; - texture->surfaceFormat = 0; - - return (FNA3D_Texture*) texture; -} - -/* Driver */ - -static uint8_t VULKAN_PrepareWindowAttributes(uint32_t *flags) -{ - SDL_Window *dummyWindowHandle; - VkSurfaceKHR surface; - FNA3D_PresentationParameters presentationParameters; - VulkanRenderer *renderer; - uint8_t result; - - /* Required for MoltenVK support */ - SDL_setenv("MVK_CONFIG_FULL_IMAGE_VIEW_SWIZZLE", "1", 1); - SDL_setenv("MVK_CONFIG_SHADER_CONVERSION_FLIP_VERTEX_Y", "0", 1); - - if (SDL_Vulkan_LoadLibrary(NULL) < 0) - { - FNA3D_LogWarn("Vulkan: SDL_Vulkan_LoadLibrary failed!"); - return 0; - } - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wpedantic" - vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) SDL_Vulkan_GetVkGetInstanceProcAddr(); -#pragma GCC diagnostic pop - if (vkGetInstanceProcAddr == NULL) - { - FNA3D_LogWarn( - "SDL_Vulkan_GetVkGetInstanceProcAddr(): %s", - SDL_GetError() - ); - return 0; - } - - #define VULKAN_GLOBAL_FUNCTION(name) \ - name = (PFN_##name) vkGetInstanceProcAddr(VK_NULL_HANDLE, #name); \ - if (name == NULL) \ - { \ - FNA3D_LogWarn("vkGetInstanceProcAddr(VK_NULL_HANDLE, \"" #name "\") failed"); \ - return 0; \ - } - #include "FNA3D_Driver_Vulkan_vkfuncs.h" - - /* Test if we can create a vulkan device */ - - /* Create a dummy window, otherwise we cannot query swapchain support */ - dummyWindowHandle = SDL_CreateWindow( - "FNA3D Vulkan", - 0, 0, - 128, 128, - SDL_WINDOW_VULKAN | SDL_WINDOW_HIDDEN - ); - - if (dummyWindowHandle == NULL) - { - FNA3D_LogWarn("Vulkan: Could not create dummy window"); - return 0; - } - - presentationParameters.deviceWindowHandle = dummyWindowHandle; - - /* partially set up VulkanRenderer so we can fall back in case of device non-compliance */ - renderer = (VulkanRenderer*) SDL_malloc(sizeof(VulkanRenderer)); - SDL_memset(renderer, '\0', sizeof(VulkanRenderer)); - - if (!VULKAN_INTERNAL_CreateInstance(renderer, &presentationParameters)) - { - SDL_DestroyWindow(dummyWindowHandle); - SDL_free(renderer); - FNA3D_LogWarn("Vulkan: Could not create Vulkan instance"); - return 0; - } - - if (!SDL_Vulkan_CreateSurface( - (SDL_Window*) presentationParameters.deviceWindowHandle, - renderer->instance, - &surface - )) { - SDL_DestroyWindow(dummyWindowHandle); - SDL_free(renderer); - FNA3D_LogWarn( - "SDL_Vulkan_CreateSurface failed: %s", - SDL_GetError() - ); - return 0; - } - - #define VULKAN_INSTANCE_FUNCTION(name) \ - renderer->name = (PFN_##name) vkGetInstanceProcAddr(renderer->instance, #name); - #include "FNA3D_Driver_Vulkan_vkfuncs.h" - - result = VULKAN_INTERNAL_DeterminePhysicalDevice(renderer, surface); - - renderer->vkDestroySurfaceKHR( - renderer->instance, - surface, - NULL - ); - renderer->vkDestroyInstance(renderer->instance, NULL); - SDL_DestroyWindow(dummyWindowHandle); - SDL_free(renderer); - - if (!result) - { - FNA3D_LogWarn("Vulkan: Failed to determine a suitable physical device"); - } - else - { - *flags = SDL_WINDOW_VULKAN; - } - return result; -} - -static void VULKAN_GetDrawableSize(void* window, int32_t *w, int32_t *h) -{ - SDL_Vulkan_GetDrawableSize((SDL_Window*) window, w, h); -} - -static FNA3D_Device* VULKAN_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -) { - uint32_t i; - VkResult vulkanResult; - - /* Variables: Create the FNA3D_Device */ - FNA3D_Device *result; - VulkanRenderer *renderer; - - /* Variables: Choose depth formats */ - VkImageFormatProperties imageFormatProperties; - - /* Variables: Create command pool and command buffer */ - VkCommandPoolCreateInfo commandPoolCreateInfo; - - /* Variables: Create semaphores */ - VkSemaphoreCreateInfo semaphoreInfo; - - /* Variables: Create pipeline cache */ - VkPipelineCacheCreateInfo pipelineCacheCreateInfo; - const char *pipelineCacheFileName; - size_t pipelineCacheSize; - uint8_t *pipelineCacheBytes; - - /* Variables: Create descriptor set layouts */ - VkDescriptorSetLayoutBinding layoutBinding; - VkDescriptorSetLayoutCreateInfo layoutCreateInfo; - - /* Variables: Check for DXT1/S3TC Support */ - VkFormatProperties formatPropsBC1, formatPropsBC2, formatPropsBC3, formatPropsBC7; - - /* Variables: Check for SRGB Render Target Support */ - VkFormatProperties formatPropsSrgbRT; - - /* Variables: Create query pool */ - VkQueryPoolCreateInfo queryPoolCreateInfo; - - /* Variables: Create dummy data */ - VkSamplerCreateInfo samplerCreateInfo; - - /* Variables: Create UBO pool and dummy UBO descriptor sets */ - VkDescriptorPoolSize descriptorPoolSize; - VkDescriptorPoolCreateInfo descriptorPoolInfo; - VkDescriptorSetAllocateInfo descriptorSetAllocateInfo; - VkWriteDescriptorSet writeDescriptorSets[2]; - VkDescriptorBufferInfo bufferInfos[2]; - - /* Variables: Create dummy surface for initialization */ - VkSurfaceKHR surface; - - /* - * Create the FNA3D_Device - */ - - result = (FNA3D_Device*) SDL_malloc(sizeof(FNA3D_Device)); - ASSIGN_DRIVER(VULKAN) - - renderer = (VulkanRenderer*) SDL_malloc(sizeof(VulkanRenderer)); - SDL_memset(renderer, '\0', sizeof(VulkanRenderer)); - renderer->debugMode = debugMode; - renderer->parentDevice = result; - result->driverData = (FNA3D_Renderer*) renderer; - - /* - * Create the vkInstance - */ - - if (!VULKAN_INTERNAL_CreateInstance(renderer, presentationParameters)) - { - FNA3D_LogError("Error creating vulkan instance"); - return NULL; - } - - /* - * Create the dummy surface - */ - - if (!SDL_Vulkan_CreateSurface( - (SDL_Window*) presentationParameters->deviceWindowHandle, - renderer->instance, - &surface - )) { - FNA3D_LogError( - "SDL_Vulkan_CreateSurface failed: %s", - SDL_GetError() - ); - return NULL; - } - - /* - * Get vkInstance entry points - */ - - #define VULKAN_INSTANCE_FUNCTION(name) \ - renderer->name = (PFN_##name) vkGetInstanceProcAddr(renderer->instance, #name); - #include "FNA3D_Driver_Vulkan_vkfuncs.h" - - /* - * Choose/Create vkDevice - */ - - if (!VULKAN_INTERNAL_DeterminePhysicalDevice(renderer, surface)) - { - FNA3D_LogError("Failed to determine a suitable physical device"); - return NULL; - } - - renderer->vkDestroySurfaceKHR(renderer->instance, surface, NULL); - - FNA3D_LogInfo("FNA3D Driver: Vulkan"); - FNA3D_LogInfo( - "Vulkan Device: %s", - renderer->physicalDeviceProperties.properties.deviceName - ); - if (renderer->supports.KHR_driver_properties) - { - FNA3D_LogInfo( - "Vulkan Driver: %s %s", - renderer->physicalDeviceDriverProperties.driverName, - renderer->physicalDeviceDriverProperties.driverInfo - ); - FNA3D_LogInfo( - "Vulkan Conformance: %u.%u.%u", - renderer->physicalDeviceDriverProperties.conformanceVersion.major, - renderer->physicalDeviceDriverProperties.conformanceVersion.minor, - renderer->physicalDeviceDriverProperties.conformanceVersion.patch - ); - } - else - { - FNA3D_LogInfo("KHR_driver_properties unsupported! Bother your vendor about this!"); - } - - if (!VULKAN_INTERNAL_CreateLogicalDevice(renderer)) - { - FNA3D_LogError("Failed to create logical device"); - return NULL; - } - - /* - * Initialize memory allocator - */ - - renderer->memoryAllocator = (VulkanMemoryAllocator*) SDL_malloc( - sizeof(VulkanMemoryAllocator) - ); - - for (i = 0; i < VK_MAX_MEMORY_TYPES; i += 1) - { - renderer->memoryAllocator->subAllocators[i].memoryTypeIndex = i; - renderer->memoryAllocator->subAllocators[i].nextAllocationSize = STARTING_ALLOCATION_SIZE; - renderer->memoryAllocator->subAllocators[i].allocations = NULL; - renderer->memoryAllocator->subAllocators[i].allocationCount = 0; - renderer->memoryAllocator->subAllocators[i].sortedFreeRegions = SDL_malloc( - sizeof(VulkanMemoryFreeRegion*) * 4 - ); - renderer->memoryAllocator->subAllocators[i].sortedFreeRegionCount = 0; - renderer->memoryAllocator->subAllocators[i].sortedFreeRegionCapacity = 4; - } - - /* - * Initialize buffer space - */ - - renderer->transferBufferPool.fastTransferBuffer = SDL_malloc(sizeof(VulkanTransferBuffer)); - renderer->transferBufferPool.fastTransferBuffer->offset = 0; - renderer->transferBufferPool.fastTransferBuffer->buffer = VULKAN_INTERNAL_CreateBuffer( - renderer, - FAST_TRANSFER_SIZE, - RESOURCE_ACCESS_MEMORY_TRANSFER_READ_WRITE, - VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT, - 1, - 1 - ); - renderer->transferBufferPool.fastTransferBufferAvailable = 1; - - renderer->transferBufferPool.availableSlowTransferBufferCapacity = 4; - renderer->transferBufferPool.availableSlowTransferBufferCount = 0; - renderer->transferBufferPool.availableSlowTransferBuffers = SDL_malloc( - renderer->transferBufferPool.availableSlowTransferBufferCapacity * sizeof(VulkanTransferBuffer*) - ); - - /* - * Choose depth formats - */ - - vulkanResult = renderer->vkGetPhysicalDeviceImageFormatProperties( - renderer->physicalDevice, - VK_FORMAT_D16_UNORM, - VK_IMAGE_TYPE_2D, - VK_IMAGE_TILING_OPTIMAL, - VK_IMAGE_ASPECT_DEPTH_BIT, - 0, - &imageFormatProperties - ); - - if (vulkanResult == VK_ERROR_FORMAT_NOT_SUPPORTED) - { - renderer->D16Format = VK_FORMAT_D32_SFLOAT; - } - else - { - renderer->D16Format = VK_FORMAT_D16_UNORM; - } - - /* Vulkan doesn't even have plain D24 in the spec! */ - renderer->D24Format = VK_FORMAT_D32_SFLOAT; - - vulkanResult = renderer->vkGetPhysicalDeviceImageFormatProperties( - renderer->physicalDevice, - VK_FORMAT_D24_UNORM_S8_UINT, - VK_IMAGE_TYPE_2D, - VK_IMAGE_TILING_OPTIMAL, - VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT, - 0, - &imageFormatProperties - ); - - if (vulkanResult == VK_ERROR_FORMAT_NOT_SUPPORTED) - { - renderer->D24S8Format = VK_FORMAT_D32_SFLOAT_S8_UINT; - } - else - { - renderer->D24S8Format = VK_FORMAT_D24_UNORM_S8_UINT; - } - - /* - * Create MojoShader context - */ - - renderer->mojoshaderContext = MOJOSHADER_vkCreateContext( - &renderer->instance, - &renderer->physicalDevice, - &renderer->logicalDevice, - (PFN_MOJOSHADER_vkGetInstanceProcAddr) vkGetInstanceProcAddr, - (PFN_MOJOSHADER_vkGetDeviceProcAddr) renderer->vkGetDeviceProcAddr, - renderer->queueFamilyIndex, - renderer->physicalDeviceProperties.properties.limits.maxUniformBufferRange, - renderer->physicalDeviceProperties.properties.limits.minUniformBufferOffsetAlignment, - NULL, - NULL, - renderer - ); - if (renderer->mojoshaderContext == NULL) - { - FNA3D_LogError("Failed to create MojoShader context"); - return NULL; - } - - semaphoreInfo.sType = VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO; - semaphoreInfo.pNext = NULL; - semaphoreInfo.flags = 0; - - vulkanResult = renderer->vkCreateSemaphore( - renderer->logicalDevice, - &semaphoreInfo, - NULL, - &renderer->defragSemaphore - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateSemaphore, NULL) - - /* - * Create command pool and buffers - */ - - commandPoolCreateInfo.sType = VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO; - commandPoolCreateInfo.pNext = NULL; - commandPoolCreateInfo.flags = VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT; - commandPoolCreateInfo.queueFamilyIndex = renderer->queueFamilyIndex; - vulkanResult = renderer->vkCreateCommandPool( - renderer->logicalDevice, - &commandPoolCreateInfo, - NULL, - &renderer->commandPool - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateCommandPool, NULL) - - renderer->inactiveCommandBufferContainerCapacity = 1; - renderer->inactiveCommandBufferContainers = SDL_malloc(sizeof(VulkanCommandBufferContainer*)); - renderer->inactiveCommandBufferContainerCount = 0; - renderer->currentCommandCount = 0; - - renderer->submittedCommandBufferContainerCapacity = 1; - renderer->submittedCommandBufferContainers = SDL_malloc(sizeof(VulkanCommandBufferContainer*)); - renderer->submittedCommandBufferContainerCount = 0; - - renderer->defragCommandBufferContainer = VULKAN_INTERNAL_AllocateCommandBuffer(renderer, 1); - - VULKAN_INTERNAL_BeginCommandBuffer(renderer); - - /* - * Create the initial faux-backbuffer - */ - - if (!VULKAN_INTERNAL_CreateFauxBackbuffer(renderer, presentationParameters)) - { - FNA3D_LogError("Failed to create faux backbuffer"); - return NULL; - } - - /* - * Create initial swapchain - */ - - renderer->swapchainDataCapacity = 1; - renderer->swapchainDataCount = 0; - renderer->swapchainDatas = SDL_malloc(renderer->swapchainDataCapacity * sizeof(VulkanSwapchainData*)); - - if (VULKAN_INTERNAL_CreateSwapchain(renderer, presentationParameters->deviceWindowHandle) != CREATE_SWAPCHAIN_SUCCESS) - { - FNA3D_LogError("Failed to create swap chain"); - return NULL; - } - - /* - * Create the pipeline cache - */ - - pipelineCacheCreateInfo.sType = VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO; - pipelineCacheCreateInfo.pNext = NULL; - pipelineCacheCreateInfo.flags = 0; - - pipelineCacheFileName = SDL_GetHint("FNA3D_VULKAN_PIPELINE_CACHE_FILE_NAME"); - if (pipelineCacheFileName == NULL) - { - pipelineCacheFileName = DEFAULT_PIPELINE_CACHE_FILE_NAME; - } - if (pipelineCacheFileName[0] == '\0') - { - /* For intentionally empty file names, assume caching is disabled */ - pipelineCacheBytes = NULL; - } - else - { -#if SDL_VERSION_ATLEAST(2, 0, 10) - pipelineCacheBytes = SDL_LoadFile(pipelineCacheFileName, &pipelineCacheSize); -#else - pipelineCacheBytes = SDL_LoadFile_RW(SDL_RWFromFile(pipelineCacheFileName, "rb"), &pipelineCacheSize, 1); -#endif /* SDL_VERSION_ATLEAST(2, 0, 10) */ - } - - if (pipelineCacheBytes != NULL) - { - FNA3D_LogInfo("Pipeline cache found, loading..."); - pipelineCacheCreateInfo.pInitialData = pipelineCacheBytes; - pipelineCacheCreateInfo.initialDataSize = pipelineCacheSize; - } - else - { - pipelineCacheCreateInfo.initialDataSize = 0; - pipelineCacheCreateInfo.pInitialData = NULL; - } - - vulkanResult = renderer->vkCreatePipelineCache( - renderer->logicalDevice, - &pipelineCacheCreateInfo, - NULL, - &renderer->pipelineCache - ); - - if (pipelineCacheBytes != NULL) - { - SDL_free(pipelineCacheBytes); - - /* The pipeline cache was invalid, try again with no input data */ - if (vulkanResult != VK_SUCCESS) - { - FNA3D_LogWarn("Pipeline cache preload failed, ignoring"); - pipelineCacheCreateInfo.initialDataSize = 0; - pipelineCacheCreateInfo.pInitialData = NULL; - vulkanResult = renderer->vkCreatePipelineCache( - renderer->logicalDevice, - &pipelineCacheCreateInfo, - NULL, - &renderer->pipelineCache - ); - } - } - - VULKAN_ERROR_CHECK(vulkanResult, vkCreatePipelineCache, NULL) - - /* - * Define sampler counts - */ - - renderer->numTextureSlots = SDL_min( - renderer->physicalDeviceProperties.properties.limits.maxPerStageDescriptorSamplers, - MAX_TEXTURE_SAMPLERS - ); - renderer->numVertexTextureSlots = SDL_min( - renderer->physicalDeviceProperties.properties.limits.maxPerStageDescriptorSamplers, - MAX_VERTEXTEXTURE_SAMPLERS - ); - - /* Define vertex UBO set layout */ - layoutBinding.binding = 0; - layoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; - layoutBinding.descriptorCount = 1; - layoutBinding.stageFlags = VK_SHADER_STAGE_VERTEX_BIT; - layoutBinding.pImmutableSamplers = NULL; - - layoutCreateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; - layoutCreateInfo.pNext = NULL; - layoutCreateInfo.flags = 0; - layoutCreateInfo.bindingCount = 1; - layoutCreateInfo.pBindings = &layoutBinding; - - vulkanResult = renderer->vkCreateDescriptorSetLayout( - renderer->logicalDevice, - &layoutCreateInfo, - NULL, - &renderer->vertexUniformBufferDescriptorSetLayout - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateDescriptorSetLayout, NULL) - - /* Define frag UBO set layout */ - layoutBinding.binding = 0; - layoutBinding.descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; - layoutBinding.descriptorCount = 1; - layoutBinding.stageFlags = VK_SHADER_STAGE_FRAGMENT_BIT; - layoutBinding.pImmutableSamplers = NULL; - - layoutCreateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO; - layoutCreateInfo.pNext = NULL; - layoutCreateInfo.flags = 0; - layoutCreateInfo.bindingCount = 1; - layoutCreateInfo.pBindings = &layoutBinding; - - vulkanResult = renderer->vkCreateDescriptorSetLayout( - renderer->logicalDevice, - &layoutCreateInfo, - NULL, - &renderer->fragUniformBufferDescriptorSetLayout - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateDescriptorSetLayout, NULL) - - renderer->vertexSamplerDescriptorSetDataNeedsUpdate = 1; - renderer->fragSamplerDescriptorSetDataNeedsUpdate = 1; - - /* - * Init various renderer properties - */ - - renderer->currentDepthFormat = presentationParameters->depthStencilFormat; - renderer->currentPipeline = VK_NULL_HANDLE; - renderer->needNewRenderPass = 1; - renderer->needNewPipeline = 1; - - /* - * Check for DXT1/S3TC support - */ - - renderer->vkGetPhysicalDeviceFormatProperties( - renderer->physicalDevice, - XNAToVK_SurfaceFormat[FNA3D_SURFACEFORMAT_DXT1], - &formatPropsBC1 - ); - renderer->vkGetPhysicalDeviceFormatProperties( - renderer->physicalDevice, - XNAToVK_SurfaceFormat[FNA3D_SURFACEFORMAT_DXT3], - &formatPropsBC2 - ); - renderer->vkGetPhysicalDeviceFormatProperties( - renderer->physicalDevice, - XNAToVK_SurfaceFormat[FNA3D_SURFACEFORMAT_DXT5], - &formatPropsBC3 - ); - renderer->vkGetPhysicalDeviceFormatProperties( - renderer->physicalDevice, - XNAToVK_SurfaceFormat[FNA3D_SURFACEFORMAT_COLORSRGB_EXT], - &formatPropsSrgbRT - ); - renderer->vkGetPhysicalDeviceFormatProperties( - renderer->physicalDevice, - XNAToVK_SurfaceFormat[FNA3D_SURFACEFORMAT_BC7_EXT], - &formatPropsBC7 - ); - - #define SUPPORTED_FORMAT(fmt) \ - ((fmt.optimalTilingFeatures & VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT) && \ - (fmt.optimalTilingFeatures & VK_FORMAT_FEATURE_TRANSFER_DST_BIT)) - renderer->supportsDxt1 = SUPPORTED_FORMAT(formatPropsBC1); - renderer->supportsS3tc = ( - SUPPORTED_FORMAT(formatPropsBC2) || - SUPPORTED_FORMAT(formatPropsBC3) - ); - renderer->supportsBc7 = SUPPORTED_FORMAT(formatPropsBC7); - - renderer->supportsSRGBRenderTarget = ( - SUPPORTED_FORMAT(formatPropsSrgbRT) && (formatPropsSrgbRT.optimalTilingFeatures & VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT) - ); - - /* - * Initialize renderer members not covered by SDL_memset('\0') - */ - - SDL_memset( - renderer->multiSampleMask, - -1, - sizeof(renderer->multiSampleMask) /* AKA 0xFFFFFFFF */ - ); - for (i = 0; i < MAX_BOUND_VERTEX_BUFFERS; i += 1) - { - renderer->vertexBindings[i].vertexDeclaration.elements = - renderer->vertexElements[i]; - } - - /* - * Create query pool - */ - - queryPoolCreateInfo.sType = VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO; - queryPoolCreateInfo.pNext = NULL; - queryPoolCreateInfo.flags = 0; - queryPoolCreateInfo.queryType = VK_QUERY_TYPE_OCCLUSION; - queryPoolCreateInfo.queryCount = MAX_QUERIES; - queryPoolCreateInfo.pipelineStatistics = 0; - vulkanResult = renderer->vkCreateQueryPool( - renderer->logicalDevice, - &queryPoolCreateInfo, - NULL, - &renderer->queryPool - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateQueryPool, NULL) - - /* Set up the stack, the value at each index is the next available - * index, or -1 if no such index exists. - */ - for (i = 0; i < MAX_QUERIES - 1; i += 1) - { - renderer->freeQueryIndexStack[i] = i + 1; - } - renderer->freeQueryIndexStack[MAX_QUERIES - 1] = -1; - - /* Initialize hash tables */ - - for (i = 0; i < NUM_SHADER_RESOURCES_BUCKETS; i += 1) - { - renderer->shaderResourcesHashTable.buckets[i].elements = NULL; - renderer->shaderResourcesHashTable.buckets[i].count = 0; - renderer->shaderResourcesHashTable.buckets[i].capacity = 0; - } - - for (i = 0; i < NUM_DESCRIPTOR_SET_LAYOUT_BUCKETS; i += 1) - { - renderer->descriptorSetLayoutTable.buckets[i].elements = NULL; - renderer->descriptorSetLayoutTable.buckets[i].count = 0; - renderer->descriptorSetLayoutTable.buckets[i].capacity = 0; - } - /* - * Create dummy data - */ - - renderer->dummyVertTexture = (VulkanTexture*) VULKAN_CreateTexture2D( - (FNA3D_Renderer*) renderer, - FNA3D_SURFACEFORMAT_COLOR, - 1, - 1, - 1, - 1 - ); - renderer->dummyVertTexture3D = (VulkanTexture*) VULKAN_CreateTexture3D( - (FNA3D_Renderer*) renderer, - FNA3D_SURFACEFORMAT_COLOR, - 1, - 1, - 1, - 1 - ); - renderer->dummyVertTextureCube = (VulkanTexture*) VULKAN_CreateTextureCube( - (FNA3D_Renderer*) renderer, - FNA3D_SURFACEFORMAT_COLOR, - 1, - 1, - 0 - ); - renderer->dummyFragTexture = (VulkanTexture*) VULKAN_CreateTexture2D( - (FNA3D_Renderer*) renderer, - FNA3D_SURFACEFORMAT_COLOR, - 1, - 1, - 1, - 1 - ); - renderer->dummyFragTexture3D = (VulkanTexture*) VULKAN_CreateTexture3D( - (FNA3D_Renderer*) renderer, - FNA3D_SURFACEFORMAT_COLOR, - 1, - 1, - 1, - 1 - ); - renderer->dummyFragTextureCube = (VulkanTexture*) VULKAN_CreateTextureCube( - (FNA3D_Renderer*) renderer, - FNA3D_SURFACEFORMAT_COLOR, - 1, - 1, - 0 - ); - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_VERTEX_SHADER_READ_SAMPLED_IMAGE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 1, - renderer->dummyVertTexture->image, - &renderer->dummyVertTexture->resourceAccessType - ); - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_VERTEX_SHADER_READ_SAMPLED_IMAGE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 1, - renderer->dummyVertTexture3D->image, - &renderer->dummyVertTexture3D->resourceAccessType - ); - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_VERTEX_SHADER_READ_SAMPLED_IMAGE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 6, - 0, - 1, - 1, - renderer->dummyVertTextureCube->image, - &renderer->dummyVertTextureCube->resourceAccessType - ); - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_SAMPLED_IMAGE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 1, - renderer->dummyFragTexture->image, - &renderer->dummyFragTexture->resourceAccessType - ); - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_SAMPLED_IMAGE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 1, - 0, - 1, - 1, - renderer->dummyFragTexture3D->image, - &renderer->dummyFragTexture3D->resourceAccessType - ); - VULKAN_INTERNAL_ImageMemoryBarrier( - renderer, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_SAMPLED_IMAGE, - VK_IMAGE_ASPECT_COLOR_BIT, - 0, - 6, - 0, - 1, - 1, - renderer->dummyFragTextureCube->image, - &renderer->dummyFragTextureCube->resourceAccessType - ); - - renderer->dummyVertUniformBuffer = (VulkanBuffer*) VULKAN_INTERNAL_CreateBuffer( - renderer, - 1, - RESOURCE_ACCESS_VERTEX_SHADER_READ_UNIFORM_BUFFER, - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, - 0, - 0 - ); - SDL_memset( - renderer->dummyVertUniformBuffer->usedRegion->allocation->mapPointer + - renderer->dummyVertUniformBuffer->usedRegion->resourceOffset, - 0, - 1 - ); - - renderer->dummyFragUniformBuffer = (VulkanBuffer*) VULKAN_INTERNAL_CreateBuffer( - renderer, - 1, - RESOURCE_ACCESS_FRAGMENT_SHADER_READ_UNIFORM_BUFFER, - VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT, - 0, - 0 - ); - SDL_memset( - renderer->dummyFragUniformBuffer->usedRegion->allocation->mapPointer + - renderer->dummyVertUniformBuffer->usedRegion->resourceOffset, - 0, - 1 - ); - - samplerCreateInfo.sType = VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO; - samplerCreateInfo.pNext = NULL; - samplerCreateInfo.flags = 0; - samplerCreateInfo.magFilter = VK_FILTER_LINEAR; - samplerCreateInfo.minFilter = VK_FILTER_LINEAR; - samplerCreateInfo.mipmapMode = VK_SAMPLER_MIPMAP_MODE_NEAREST; - samplerCreateInfo.addressModeU = VK_SAMPLER_ADDRESS_MODE_REPEAT; - samplerCreateInfo.addressModeV = VK_SAMPLER_ADDRESS_MODE_REPEAT; - samplerCreateInfo.addressModeW = VK_SAMPLER_ADDRESS_MODE_REPEAT; - samplerCreateInfo.mipLodBias = 0; - samplerCreateInfo.anisotropyEnable = 0; - samplerCreateInfo.maxAnisotropy = 1; - samplerCreateInfo.compareEnable = 0; - samplerCreateInfo.compareOp = 0; - samplerCreateInfo.minLod = 0; - samplerCreateInfo.maxLod = 1; - samplerCreateInfo.borderColor = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK; - samplerCreateInfo.unnormalizedCoordinates = 0; - renderer->vkCreateSampler( - renderer->logicalDevice, - &samplerCreateInfo, - NULL, - &renderer->dummyVertSamplerState - ); - renderer->vkCreateSampler( - renderer->logicalDevice, - &samplerCreateInfo, - NULL, - &renderer->dummyVertSampler3DState - ); - renderer->vkCreateSampler( - renderer->logicalDevice, - &samplerCreateInfo, - NULL, - &renderer->dummyVertSamplerCubeState - ); - renderer->vkCreateSampler( - renderer->logicalDevice, - &samplerCreateInfo, - NULL, - &renderer->dummyFragSamplerState - ); - renderer->vkCreateSampler( - renderer->logicalDevice, - &samplerCreateInfo, - NULL, - &renderer->dummyFragSampler3DState - ); - renderer->vkCreateSampler( - renderer->logicalDevice, - &samplerCreateInfo, - NULL, - &renderer->dummyFragSamplerCubeState - ); - - descriptorPoolSize.type = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; - descriptorPoolSize.descriptorCount = MAX_UNIFORM_DESCRIPTOR_SETS; - - descriptorPoolInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO; - descriptorPoolInfo.pNext = NULL; - descriptorPoolInfo.flags = 0; - descriptorPoolInfo.maxSets = MAX_UNIFORM_DESCRIPTOR_SETS; - descriptorPoolInfo.poolSizeCount = 1; - descriptorPoolInfo.pPoolSizes = &descriptorPoolSize; - - vulkanResult = renderer->vkCreateDescriptorPool( - renderer->logicalDevice, - &descriptorPoolInfo, - NULL, - &renderer->uniformBufferDescriptorPool - ); - VULKAN_ERROR_CHECK(vulkanResult, vkCreateDescriptorPool, 0) - - descriptorSetAllocateInfo.sType = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO; - descriptorSetAllocateInfo.pNext = NULL; - descriptorSetAllocateInfo.descriptorPool = renderer->uniformBufferDescriptorPool; - descriptorSetAllocateInfo.descriptorSetCount = 1; - descriptorSetAllocateInfo.pSetLayouts = &renderer->vertexUniformBufferDescriptorSetLayout; - - vulkanResult = renderer->vkAllocateDescriptorSets( - renderer->logicalDevice, - &descriptorSetAllocateInfo, - &renderer->dummyVertexUniformBufferDescriptorSet - ); - VULKAN_ERROR_CHECK(vulkanResult, vkAllocateDescriptorSets, 0) - - descriptorSetAllocateInfo.pSetLayouts = &renderer->fragUniformBufferDescriptorSetLayout; - - vulkanResult = renderer->vkAllocateDescriptorSets( - renderer->logicalDevice, - &descriptorSetAllocateInfo, - &renderer->dummyFragUniformBufferDescriptorSet - ); - VULKAN_ERROR_CHECK(vulkanResult, vkAllocateDescriptorSets, 0) - - bufferInfos[0].buffer = renderer->dummyVertUniformBuffer->buffer; - bufferInfos[0].offset = 0; - bufferInfos[0].range = renderer->dummyVertUniformBuffer->size; - - writeDescriptorSets[0].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - writeDescriptorSets[0].pNext = NULL; - writeDescriptorSets[0].descriptorCount = 1; - writeDescriptorSets[0].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; - writeDescriptorSets[0].dstArrayElement = 0; - writeDescriptorSets[0].dstBinding = 0; - writeDescriptorSets[0].dstSet = renderer->dummyVertexUniformBufferDescriptorSet; - writeDescriptorSets[0].pBufferInfo = &bufferInfos[0]; - writeDescriptorSets[0].pImageInfo = NULL; - writeDescriptorSets[0].pTexelBufferView = NULL; - - bufferInfos[1].buffer = renderer->dummyFragUniformBuffer->buffer; - bufferInfos[1].offset = 0; - bufferInfos[1].range = renderer->dummyFragUniformBuffer->size; - - writeDescriptorSets[1].sType = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET; - writeDescriptorSets[1].pNext = NULL; - writeDescriptorSets[1].descriptorCount = 1; - writeDescriptorSets[1].descriptorType = VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC; - writeDescriptorSets[1].dstArrayElement = 0; - writeDescriptorSets[1].dstBinding = 0; - writeDescriptorSets[1].dstSet = renderer->dummyFragUniformBufferDescriptorSet; - writeDescriptorSets[1].pBufferInfo = &bufferInfos[1]; - writeDescriptorSets[1].pImageInfo = NULL; - writeDescriptorSets[1].pTexelBufferView = NULL; - - renderer->vkUpdateDescriptorSets( - renderer->logicalDevice, - 2, - writeDescriptorSets, - 0, - NULL - ); - - /* init texture storage */ - - for (i = 0; i < MAX_TEXTURE_SAMPLERS; i += 1) - { - renderer->textures[i] = &NullTexture; - renderer->samplers[i] = renderer->dummyFragSamplerState; - } - - for (i = 0; i < MAX_VERTEXTEXTURE_SAMPLERS; i += 1) - { - renderer->textures[MAX_TEXTURE_SAMPLERS + i] = &NullTexture; - renderer->samplers[MAX_TEXTURE_SAMPLERS + i] = renderer->dummyVertSamplerState; - } - - renderer->bufferDefragInProgress = 0; - renderer->needDefrag = 0; - renderer->defragTimer = 0; - renderer->resourceFreed = 0; - - renderer->defragmentedBuffersToDestroyCapacity = 16; - renderer->defragmentedBuffersToDestroyCount = 0; - - renderer->defragmentedBuffersToDestroy = (VkBuffer*) SDL_malloc( - sizeof(VkBuffer) * - renderer->defragmentedBuffersToDestroyCapacity - ); - - renderer->defragmentedImagesToDestroyCapacity = 16; - renderer->defragmentedImagesToDestroyCount = 0; - - renderer->defragmentedImagesToDestroy = (VkImage*) SDL_malloc( - sizeof(VkImage) * - renderer->defragmentedImagesToDestroyCapacity - ); - - renderer->defragmentedImageViewsToDestroyCapacity = 16; - renderer->defragmentedImageViewsToDestroyCount = 0; - - renderer->defragmentedImageViewsToDestroy = (VkImageView*) SDL_malloc( - sizeof(VkImageView) * - renderer->defragmentedImageViewsToDestroyCapacity - ); - - renderer->usedRegionsToDestroyCapacity = 16; - renderer->usedRegionsToDestroyCount = 0; - - renderer->usedRegionsToDestroy = (VulkanMemoryUsedRegion**) SDL_malloc( - sizeof(VulkanMemoryUsedRegion*) * - renderer->usedRegionsToDestroyCapacity - ); - - renderer->commandLock = SDL_CreateMutex(); - renderer->passLock = SDL_CreateMutex(); - renderer->disposeLock = SDL_CreateMutex(); - renderer->allocatorLock = SDL_CreateMutex(); - renderer->transferLock = SDL_CreateMutex(); - - return result; -} - -FNA3D_Driver VulkanDriver = { - "Vulkan", - VULKAN_PrepareWindowAttributes, - VULKAN_GetDrawableSize, - VULKAN_CreateDevice -}; - -#else - -extern int this_tu_is_empty; - -#endif /* FNA3D_DRIVER_VULKAN */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_Vulkan_vkfuncs.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_Vulkan_vkfuncs.h deleted file mode 100644 index fa3b9f5f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_Vulkan_vkfuncs.h +++ /dev/null @@ -1,180 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -/* - * Global functions from the Vulkan Loader - */ - -#ifndef VULKAN_GLOBAL_FUNCTION -#define VULKAN_GLOBAL_FUNCTION(name) -#endif -VULKAN_GLOBAL_FUNCTION(vkCreateInstance) -VULKAN_GLOBAL_FUNCTION(vkEnumerateInstanceExtensionProperties) -VULKAN_GLOBAL_FUNCTION(vkEnumerateInstanceLayerProperties) - -/* - * vkInstance, created by global vkCreateInstance function - */ - -#ifndef VULKAN_INSTANCE_FUNCTION -#define VULKAN_INSTANCE_FUNCTION(name) -#endif - -/* Vulkan 1.0 */ -VULKAN_INSTANCE_FUNCTION(vkGetDeviceProcAddr) -VULKAN_INSTANCE_FUNCTION(vkCreateDevice) -VULKAN_INSTANCE_FUNCTION(vkDestroyInstance) -VULKAN_INSTANCE_FUNCTION(vkEnumerateDeviceExtensionProperties) -VULKAN_INSTANCE_FUNCTION(vkEnumeratePhysicalDevices) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceFeatures) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceQueueFamilyProperties) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceFormatProperties) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceImageFormatProperties) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceMemoryProperties) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceProperties) - -/* VK_KHR_get_physical_device_properties2 */ -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceProperties2KHR) - -/* VK_KHR_surface */ -VULKAN_INSTANCE_FUNCTION(vkDestroySurfaceKHR) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceCapabilitiesKHR) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceFormatsKHR) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfacePresentModesKHR) -VULKAN_INSTANCE_FUNCTION(vkGetPhysicalDeviceSurfaceSupportKHR) - -/* VK_EXT_debug_utils, Optional debug feature used by SetStringMarker */ -VULKAN_INSTANCE_FUNCTION(vkCmdInsertDebugUtilsLabelEXT) - -/* - * vkDevice, created by a vkInstance - */ - -#ifndef VULKAN_DEVICE_FUNCTION -#define VULKAN_DEVICE_FUNCTION(name) -#endif - -/* Vulkan 1.0 */ -VULKAN_DEVICE_FUNCTION(vkAllocateCommandBuffers) -VULKAN_DEVICE_FUNCTION(vkAllocateDescriptorSets) -VULKAN_DEVICE_FUNCTION(vkAllocateMemory) -VULKAN_DEVICE_FUNCTION(vkBeginCommandBuffer) -VULKAN_DEVICE_FUNCTION(vkBindBufferMemory) -VULKAN_DEVICE_FUNCTION(vkBindImageMemory) -VULKAN_DEVICE_FUNCTION(vkCmdBeginRenderPass) -VULKAN_DEVICE_FUNCTION(vkCmdBindDescriptorSets) -VULKAN_DEVICE_FUNCTION(vkCmdBindIndexBuffer) -VULKAN_DEVICE_FUNCTION(vkCmdBindPipeline) -VULKAN_DEVICE_FUNCTION(vkCmdBindVertexBuffers) -VULKAN_DEVICE_FUNCTION(vkCmdBlitImage) -VULKAN_DEVICE_FUNCTION(vkCmdClearAttachments) -VULKAN_DEVICE_FUNCTION(vkCmdClearColorImage) -VULKAN_DEVICE_FUNCTION(vkCmdClearDepthStencilImage) -VULKAN_DEVICE_FUNCTION(vkCmdCopyBuffer) -VULKAN_DEVICE_FUNCTION(vkCmdCopyImage) -VULKAN_DEVICE_FUNCTION(vkCmdCopyBufferToImage) -VULKAN_DEVICE_FUNCTION(vkCmdCopyImageToBuffer) -VULKAN_DEVICE_FUNCTION(vkCmdDraw) -VULKAN_DEVICE_FUNCTION(vkCmdDrawIndexed) -VULKAN_DEVICE_FUNCTION(vkCmdEndRenderPass) -VULKAN_DEVICE_FUNCTION(vkCmdPipelineBarrier) -VULKAN_DEVICE_FUNCTION(vkCmdResolveImage) -VULKAN_DEVICE_FUNCTION(vkCmdSetBlendConstants) -VULKAN_DEVICE_FUNCTION(vkCmdSetDepthBias) -VULKAN_DEVICE_FUNCTION(vkCmdSetScissor) -VULKAN_DEVICE_FUNCTION(vkCmdSetStencilReference) -VULKAN_DEVICE_FUNCTION(vkCmdSetViewport) -VULKAN_DEVICE_FUNCTION(vkCreateBuffer) -VULKAN_DEVICE_FUNCTION(vkCreateCommandPool) -VULKAN_DEVICE_FUNCTION(vkCreateDescriptorPool) -VULKAN_DEVICE_FUNCTION(vkCreateDescriptorSetLayout) -VULKAN_DEVICE_FUNCTION(vkCreateFence) -VULKAN_DEVICE_FUNCTION(vkCreateFramebuffer) -VULKAN_DEVICE_FUNCTION(vkCreateGraphicsPipelines) -VULKAN_DEVICE_FUNCTION(vkCreateImage) -VULKAN_DEVICE_FUNCTION(vkCreateImageView) -VULKAN_DEVICE_FUNCTION(vkCreatePipelineCache) -VULKAN_DEVICE_FUNCTION(vkCreatePipelineLayout) -VULKAN_DEVICE_FUNCTION(vkCreateRenderPass) -VULKAN_DEVICE_FUNCTION(vkCreateSampler) -VULKAN_DEVICE_FUNCTION(vkCreateSemaphore) -VULKAN_DEVICE_FUNCTION(vkCreateShaderModule) -VULKAN_DEVICE_FUNCTION(vkCreateQueryPool) -VULKAN_DEVICE_FUNCTION(vkDestroyBuffer) -VULKAN_DEVICE_FUNCTION(vkDestroyCommandPool) -VULKAN_DEVICE_FUNCTION(vkDestroyDescriptorPool) -VULKAN_DEVICE_FUNCTION(vkDestroyDescriptorSetLayout) -VULKAN_DEVICE_FUNCTION(vkDestroyDevice) -VULKAN_DEVICE_FUNCTION(vkDestroyFence) -VULKAN_DEVICE_FUNCTION(vkDestroyFramebuffer) -VULKAN_DEVICE_FUNCTION(vkDestroyImage) -VULKAN_DEVICE_FUNCTION(vkDestroyImageView) -VULKAN_DEVICE_FUNCTION(vkDestroyPipeline) -VULKAN_DEVICE_FUNCTION(vkDestroyPipelineCache) -VULKAN_DEVICE_FUNCTION(vkDestroyPipelineLayout) -VULKAN_DEVICE_FUNCTION(vkDestroyRenderPass) -VULKAN_DEVICE_FUNCTION(vkDestroySampler) -VULKAN_DEVICE_FUNCTION(vkDestroySemaphore) -VULKAN_DEVICE_FUNCTION(vkDestroyQueryPool) -VULKAN_DEVICE_FUNCTION(vkDeviceWaitIdle) -VULKAN_DEVICE_FUNCTION(vkEndCommandBuffer) -VULKAN_DEVICE_FUNCTION(vkFreeCommandBuffers) -VULKAN_DEVICE_FUNCTION(vkFreeMemory) -VULKAN_DEVICE_FUNCTION(vkGetDeviceQueue) -VULKAN_DEVICE_FUNCTION(vkGetPipelineCacheData) -VULKAN_DEVICE_FUNCTION(vkGetFenceStatus) -VULKAN_DEVICE_FUNCTION(vkMapMemory) -VULKAN_DEVICE_FUNCTION(vkQueueSubmit) -VULKAN_DEVICE_FUNCTION(vkQueueWaitIdle) -VULKAN_DEVICE_FUNCTION(vkResetCommandBuffer) -VULKAN_DEVICE_FUNCTION(vkResetCommandPool) -VULKAN_DEVICE_FUNCTION(vkResetDescriptorPool) -VULKAN_DEVICE_FUNCTION(vkResetFences) -VULKAN_DEVICE_FUNCTION(vkUnmapMemory) -VULKAN_DEVICE_FUNCTION(vkUpdateDescriptorSets) -VULKAN_DEVICE_FUNCTION(vkWaitForFences) -VULKAN_DEVICE_FUNCTION(vkCmdResetQueryPool) -VULKAN_DEVICE_FUNCTION(vkCmdBeginQuery) -VULKAN_DEVICE_FUNCTION(vkCmdEndQuery) -VULKAN_DEVICE_FUNCTION(vkGetQueryPoolResults) - -/* VK_KHR_swapchain */ -VULKAN_DEVICE_FUNCTION(vkAcquireNextImageKHR) -VULKAN_DEVICE_FUNCTION(vkCreateSwapchainKHR) -VULKAN_DEVICE_FUNCTION(vkDestroySwapchainKHR) -VULKAN_DEVICE_FUNCTION(vkQueuePresentKHR) -VULKAN_DEVICE_FUNCTION(vkGetSwapchainImagesKHR) - -/* VK_KHR_get_memory_requirements2 */ -VULKAN_DEVICE_FUNCTION(vkGetBufferMemoryRequirements2KHR) -VULKAN_DEVICE_FUNCTION(vkGetImageMemoryRequirements2KHR) - -/* - * Redefine these every time you include this header! - */ -#undef VULKAN_GLOBAL_FUNCTION -#undef VULKAN_INSTANCE_FUNCTION -#undef VULKAN_DEVICE_FUNCTION diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_template.txt b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_template.txt deleted file mode 100644 index 965f2437..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Driver_template.txt +++ /dev/null @@ -1,908 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#if FNA3D_DRIVER_TEMPLATE - -#include "FNA3D_Driver.h" - -#include - -/* Internal Structures */ - -typedef struct TemplateTexture /* Cast FNA3D_Texture* to this! */ -{ - uint8_t filler; -} TemplateTexture; - -typedef struct TemplateRenderbuffer /* Cast FNA3D_Renderbuffer* to this! */ -{ - uint8_t filler; -} TemplateRenderbuffer; - -typedef struct TemplateBuffer /* Cast FNA3D_Buffer* to this! */ -{ - intptr_t size; -} TemplateBuffer; - -typedef struct TemplateEffect /* Cast FNA3D_Effect* to this! */ -{ - MOJOSHADER_effect *effect; -} TemplateEffect; - -typedef struct TemplateQuery /* Cast FNA3D_Query* to this! */ -{ - uint8_t filler; -} TemplateQuery; - -typedef struct TemplateRenderer /* Cast FNA3D_Renderer* to this! */ -{ - uint8_t filler; -} TemplateRenderer; - -/* XNA->Template Translation Arrays */ - -static TEMPLATE_SURFACE_FORMAT_TYPE XNAToTMP_TextureFormat[] = -{ - 0, /* SurfaceFormat.Color */ - 0, /* SurfaceFormat.Bgr565 */ - 0, /* SurfaceFormat.Bgra5551 */ - 0, /* SurfaceFormat.Bgra4444 */ - 0, /* SurfaceFormat.Dxt1 */ - 0, /* SurfaceFormat.Dxt3 */ - 0, /* SurfaceFormat.Dxt5 */ - 0, /* SurfaceFormat.NormalizedByte2 */ - 0, /* SurfaceFormat.NormalizedByte4 */ - 0, /* SurfaceFormat.Rgba1010102 */ - 0, /* SurfaceFormat.Rg32 */ - 0, /* SurfaceFormat.Rgba64 */ - 0, /* SurfaceFormat.Alpha8 */ - 0, /* SurfaceFormat.Single */ - 0, /* SurfaceFormat.Vector2 */ - 0, /* SurfaceFormat.Vector4 */ - 0, /* SurfaceFormat.HalfSingle */ - 0, /* SurfaceFormat.HalfVector2 */ - 0, /* SurfaceFormat.HalfVector4 */ - 0, /* SurfaceFormat.HdrBlendable */ - 0, /* SurfaceFormat.ColorBgraEXT */ - 0, /* SurfaceFormat.ColorSrgbEXT */ - 0, /* SurfaceFormat.Dxt5SrgbEXT */ - 0, /* SurfaceFormat.Bc7EXT */ - 0, /* SurfaceFormat.Bc7SrgbEXT */ -}; - -static TEMPLATE_DEPTH_FORMAT_TYPE XNAToTMP_DepthFormat[] = -{ - 0, /* DepthFormat.None */ - 0, /* DepthFormat.Depth16 */ - 0, /* DepthFormat.Depth24 */ - 0 /* DepthFormat.Depth24Stencil8 */ -}; - -static TEMPLATE_VERTEX_FORMAT_TYPE XNAToTMP_VertexAttribType[] = -{ - 0, /* VertexElementFormat.Single */ - 0, /* VertexElementFormat.Vector2 */ - 0, /* VertexElementFormat.Vector3 */ - 0, /* VertexElementFormat.Vector4 */ - 0, /* VertexElementFormat.Color */ - 0, /* VertexElementFormat.Byte4 */ - 0, /* VertexElementFormat.Short2 */ - 0, /* VertexElementFormat.Short4 */ - 0, /* VertexElementFormat.NormalizedShort2 */ - 0, /* VertexElementFormat.NormalizedShort4 */ - 0, /* VertexElementFormat.HalfVector2 */ - 0 /* VertexElementFormat.HalfVector4 */ -}; - -static TEMPLATE_INDEX_TYPE XNAToTMP_IndexType[] = -{ - 0, /* IndexElementSize.SixteenBits */ - 0 /* IndexElementSize.ThirtyTwoBits */ -}; - -static TEMPLATE_BLEND_MODE_TYPE XNAToTMP_BlendMode[] = -{ - 0, /* Blend.One */ - 0, /* Blend.Zero */ - 0, /* Blend.SourceColor */ - 0, /* Blend.InverseSourceColor */ - 0, /* Blend.SourceAlpha */ - 0, /* Blend.InverseSourceAlpha */ - 0, /* Blend.DestinationColor */ - 0, /* Blend.InverseDestinationColor */ - 0, /* Blend.DestinationAlpha */ - 0, /* Blend.InverseDestinationAlpha */ - 0, /* Blend.BlendFactor */ - 0, /* Blend.InverseBlendFactor */ - 0 /* Blend.SourceAlphaSaturation */ -}; - -static TEMPLATE_BLEND_OPERATION_TYPE XNAToTMP_BlendOperation[] = -{ - 0, /* BlendFunction.Add */ - 0, /* BlendFunction.Subtract */ - 0, /* BlendFunction.ReverseSubtract */ - 0, /* BlendFunction.Max */ - 0 /* BlendFunction.Min */ -}; - -static TEMPLATE_COMPARE_FUNCTION_TYPE XNAToTMP_CompareFunc[] = -{ - 0, /* CompareFunction.Always */ - 0, /* CompareFunction.Never */ - 0, /* CompareFunction.Less */ - 0, /* CompareFunction.LessEqual */ - 0, /* CompareFunction.Equal */ - 0, /* CompareFunction.GreaterEqual */ - 0, /* CompareFunction.Greater */ - 0 /* CompareFunction.NotEqual */ -}; - -static TEMPLATE_STENCIL_OPERATION_TYPE XNAToTMP_StencilOp[] = -{ - 0, /* StencilOperation.Keep */ - 0, /* StencilOperation.Zero */ - 0, /* StencilOperation.Replace */ - 0, /* StencilOperation.Increment */ - 0, /* StencilOperation.Decrement */ - 0, /* StencilOperation.IncrementSaturation */ - 0, /* StencilOperation.DecrementSaturation */ - 0 /* StencilOperation.Invert */ -}; - -static TEMPLATE_FILL_MODE_TYPE XNAToTMP_FillMode[] = -{ - 0, /* FillMode.Solid */ - 0, /* FillMode.WireFrame */ -}; - -static float XNAToTMP_DepthBiasScale[] = -{ - 0.0f, /* DepthFormat.None */ - (float) ((1 << 16) - 1), /* DepthFormat.Depth16 */ - (float) ((1 << 24) - 1), /* DepthFormat.Depth24 */ - (float) ((1 << 24) - 1) /* DepthFormat.Depth24Stencil8 */ -}; - -static TEMPLATE_CULL_MODE_TYPE XNAToTMP_CullingEnabled[] = -{ - 0, /* CullMode.None */ - 0, /* CullMode.CullClockwiseFace */ - 0 /* CullMode.CullCounterClockwiseFace */ -}; - -static TEMPLATE_TEXTURE_ADDRESS_MODE_TYPE XNAToTMP_Wrap[] = -{ - 0, /* TextureAddressMode.Wrap */ - 0, /* TextureAddressMode.Clamp */ - 0 /* TextureAddressMode.Mirror */ -}; - -static TEMPLATE_TEXTURE_FILTER_TYPE XNAToTMP_MagFilter[] = -{ - 0, /* TextureFilter.Linear */ - 0, /* TextureFilter.Point */ - 0, /* TextureFilter.Anisotropic */ - 0, /* TextureFilter.LinearMipPoint */ - 0, /* TextureFilter.PointMipLinear */ - 0, /* TextureFilter.MinLinearMagPointMipLinear */ - 0, /* TextureFilter.MinLinearMagPointMipPoint */ - 0, /* TextureFilter.MinPointMagLinearMipLinear */ - 0 /* TextureFilter.MinPointMagLinearMipPoint */ -}; - -static TEMPLATE_TEXTURE_MIP_FILTER_TYPE XNAToTMP_MipFilter[] = -{ - 0, /* TextureFilter.Linear */ - 0, /* TextureFilter.Point */ - 0, /* TextureFilter.Anisotropic */ - 0, /* TextureFilter.LinearMipPoint */ - 0, /* TextureFilter.PointMipLinear */ - 0, /* TextureFilter.MinLinearMagPointMipLinear */ - 0, /* TextureFilter.MinLinearMagPointMipPoint */ - 0, /* TextureFilter.MinPointMagLinearMipLinear */ - 0 /* TextureFilter.MinPointMagLinearMipPoint */ -}; - -static TEMPLATE_TEXTURE_FILTER_TYPE XNAToTMP_MinFilter[] = -{ - 0, /* TextureFilter.Linear */ - 0, /* TextureFilter.Point */ - 0, /* TextureFilter.Anisotropic */ - 0, /* TextureFilter.LinearMipPoint */ - 0, /* TextureFilter.PointMipLinear */ - 0, /* TextureFilter.MinLinearMagPointMipLinear */ - 0, /* TextureFilter.MinLinearMagPointMipPoint */ - 0, /* TextureFilter.MinPointMagLinearMipLinear */ - 0 /* TextureFilter.MinPointMagLinearMipPoint */ -}; - -static TEMPLATE_PRIMITIVE_TYPE XNAToTMP_Primitive[] = -{ - 0, /* PrimitiveType.TriangleList */ - 0, /* PrimitiveType.TriangleStrip */ - 0, /* PrimitiveType.LineList */ - 0, /* PrimitiveType.LineStrip */ - 0 /* PrimitiveType.PointListEXT */ -}; - -/* Renderer Implementation */ - -/* Quit */ - -static void TEMPLATE_DestroyDevice(FNA3D_Device *device) -{ - TemplateRenderer* renderer = (TemplateRenderer*) device->driverData; - SDL_free(renderer); - SDL_free(device); -} - -/* Presentation */ - -static void TEMPLATE_SwapBuffers( - FNA3D_Renderer *driverData, - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -) { -} - -/* Drawing */ - -static void TEMPLATE_Clear( - FNA3D_Renderer *driverData, - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -) { -} - -static void TEMPLATE_DrawIndexedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { -} - -static void TEMPLATE_DrawInstancedPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { -} - -static void TEMPLATE_DrawPrimitives( - FNA3D_Renderer *driverData, - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -) { -} - -/* Mutable Render States */ - -static void TEMPLATE_SetViewport(FNA3D_Renderer *driverData, FNA3D_Viewport *viewport) -{ -} - -static void TEMPLATE_SetScissorRect(FNA3D_Renderer *driverData, FNA3D_Rect *scissor) -{ -} - -static void TEMPLATE_GetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { -} - -static void TEMPLATE_SetBlendFactor( - FNA3D_Renderer *driverData, - FNA3D_Color *blendFactor -) { -} - -static int32_t TEMPLATE_GetMultiSampleMask(FNA3D_Renderer *driverData) -{ - return 0; -} - -static void TEMPLATE_SetMultiSampleMask(FNA3D_Renderer *driverData, int32_t mask) -{ -} - -static int32_t TEMPLATE_GetReferenceStencil(FNA3D_Renderer *driverData) -{ - return 0; -} - -static void TEMPLATE_SetReferenceStencil(FNA3D_Renderer *driverData, int32_t ref) -{ -} - -/* Immutable Render States */ - -static void TEMPLATE_SetBlendState( - FNA3D_Renderer *driverData, - FNA3D_BlendState *blendState -) { -} - -static void TEMPLATE_SetDepthStencilState( - FNA3D_Renderer *driverData, - FNA3D_DepthStencilState *depthStencilState -) { -} - -static void TEMPLATE_ApplyRasterizerState( - FNA3D_Renderer *driverData, - FNA3D_RasterizerState *rasterizerState -) { -} - -static void TEMPLATE_VerifySampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { -} - -static void TEMPLATE_VerifyVertexSampler( - FNA3D_Renderer *driverData, - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { -} - -/* Vertex State */ - -static void TEMPLATE_ApplyVertexBufferBindings( - FNA3D_Renderer *driverData, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -) { -} - -/* Render Targets */ - -static void TEMPLATE_SetRenderTargets( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -) { -} - -static void TEMPLATE_ResolveTarget( - FNA3D_Renderer *driverData, - FNA3D_RenderTargetBinding *target -) { -} - -/* Backbuffer Functions */ - -static void TEMPLATE_ResetBackbuffer( - FNA3D_Renderer *driverData, - FNA3D_PresentationParameters *presentationParameters -) { -} - -static void TEMPLATE_ReadBackbuffer( - FNA3D_Renderer *driverData, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - void* data, - int32_t dataLength -) { -} - -static void TEMPLATE_GetBackbufferSize( - FNA3D_Renderer *driverData, - int32_t *w, - int32_t *h -) { -} - -static FNA3D_SurfaceFormat TEMPLATE_GetBackbufferSurfaceFormat( - FNA3D_Renderer *driverData -) { - return FNA3D_SURFACEFORMAT_COLOR; -} - -static FNA3D_DepthFormat TEMPLATE_GetBackbufferDepthFormat( - FNA3D_Renderer *driverData -) { - return FNA3D_DEPTHFORMAT_NONE; -} - -static int32_t TEMPLATE_GetBackbufferMultiSampleCount( - FNA3D_Renderer *driverData -) { - return 0; -} - -/* Textures */ - -static FNA3D_Texture* TEMPLATE_CreateTexture2D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget -) { - return NULL; -} - -static FNA3D_Texture* TEMPLATE_CreateTexture3D( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount -) { - return NULL; -} - -static FNA3D_Texture* TEMPLATE_CreateTextureCube( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget -) { - return NULL; -} - -static void TEMPLATE_AddDisposeTexture( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture -) { -} - -static void TEMPLATE_SetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { -} - -static void TEMPLATE_SetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { -} - -static void TEMPLATE_SetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { -} - -static void TEMPLATE_SetTextureDataYUV( - FNA3D_Renderer *driverData, - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -) { -} - -static void TEMPLATE_GetTextureData2D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { -} - -static void TEMPLATE_GetTextureData3D( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { -} - -static void TEMPLATE_GetTextureDataCube( - FNA3D_Renderer *driverData, - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { -} - -/* Renderbuffers */ - -static FNA3D_Renderbuffer* TEMPLATE_GenColorRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture -) { - return NULL; -} - -static FNA3D_Renderbuffer* TEMPLATE_GenDepthStencilRenderbuffer( - FNA3D_Renderer *driverData, - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount -) { - return NULL; -} - -static void TEMPLATE_AddDisposeRenderbuffer( - FNA3D_Renderer *driverData, - FNA3D_Renderbuffer *renderbuffer -) { -} - -/* Vertex Buffers */ - -static FNA3D_Buffer* TEMPLATE_GenVertexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - return NULL; -} - -static void TEMPLATE_AddDisposeVertexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { -} - -static void TEMPLATE_SetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -) { -} - -static void TEMPLATE_GetVertexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -) { -} - -/* Index Buffers */ - -static FNA3D_Buffer* TEMPLATE_GenIndexBuffer( - FNA3D_Renderer *driverData, - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes -) { - return NULL; -} - -static void TEMPLATE_AddDisposeIndexBuffer( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer -) { -} - -static void TEMPLATE_SetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -) { -} - -static void TEMPLATE_GetIndexBufferData( - FNA3D_Renderer *driverData, - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength -) { -} - -/* Effects */ - -static void TEMPLATE_CreateEffect( - FNA3D_Renderer *driverData, - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - *effect = NULL; - *effectData = NULL; -} - -static void TEMPLATE_CloneEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *cloneSource, - FNA3D_Effect **effect, - MOJOSHADER_effect **effectData -) { - *effect = NULL; - *effectData = NULL; -} - -static void TEMPLATE_AddDisposeEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { -} - -static void TEMPLATE_SetEffectTechnique( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -) { -} - -static void TEMPLATE_ApplyEffect( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - uint32_t pass, - MOJOSHADER_effectStateChanges *stateChanges -) { -} - -static void TEMPLATE_BeginPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect, - MOJOSHADER_effectStateChanges *stateChanges -) { -} - -static void TEMPLATE_EndPassRestore( - FNA3D_Renderer *driverData, - FNA3D_Effect *effect -) { -} - -/* Queries */ - -static FNA3D_Query* TEMPLATE_CreateQuery(FNA3D_Renderer *driverData) -{ - return NULL; -} - -static void TEMPLATE_AddDisposeQuery( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { -} - -static void TEMPLATE_QueryBegin(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ -} - -static void TEMPLATE_QueryEnd(FNA3D_Renderer *driverData, FNA3D_Query *query) -{ -} - -static uint8_t TEMPLATE_QueryComplete( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - return 1; -} - -static int32_t TEMPLATE_QueryPixelCount( - FNA3D_Renderer *driverData, - FNA3D_Query *query -) { - return 0; -} - -/* Feature Queries */ - -static uint8_t TEMPLATE_SupportsDXT1(FNA3D_Renderer *driverData) -{ - return 0; -} - -static uint8_t TEMPLATE_SupportsS3TC(FNA3D_Renderer *driverData) -{ - return 0; -} - -static uint8_t TEMPLATE_SupportsBC7(FNA3D_Renderer *driverData) -{ - return 0; -} - -static uint8_t TEMPLATE_SupportsHardwareInstancing(FNA3D_Renderer *driverData) -{ - return 0; -} - -static uint8_t TEMPLATE_SupportsNoOverwrite(FNA3D_Renderer *driverData) -{ - return 0; -} - -static uint8_t TEMPLATE_SupportsSRGBRenderTargets(FNA3D_Renderer *driverData) -{ - return 0; -} - -static void TEMPLATE_GetMaxTextureSlots( - FNA3D_Renderer *driverData, - int32_t *textures, - int32_t *vertexTextures -) { -} - -static int32_t TEMPLATE_GetMaxMultiSampleCount( - FNA3D_Renderer *driverData, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount -) { - return 0; -} - -/* Debugging */ - -static void TEMPLATE_SetStringMarker(FNA3D_Renderer *driverData, const char *text) -{ -} - -/* External Interop */ - -static void TEMPLATE_GetSysRenderer( - FNA3D_Renderer *driverData, - FNA3D_SysRendererEXT *sysrenderer -) { -} - -static FNA3D_Texture* TEMPLATE_CreateSysTexture( - FNA3D_Renderer *driverData, - FNA3D_SysTextureEXT *systexture -) { - return NULL; -} - -/* Driver */ - -static uint8_t TEMPLATE_PrepareWindowAttributes(uint32_t *flags) -{ - return 0; /* Set this to 1 when the driver is usable! */ -} - -static void TEMPLATE_GetDrawableSize(void* window, int32_t *w, int32_t *h) -{ -} - -static FNA3D_Device* TEMPLATE_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -) { - FNA3D_Device *result = (FNA3D_Device*) SDL_malloc(sizeof(FNA3D_Device)); - TemplateRenderer *renderer = (TemplateRenderer*) SDL_malloc( - sizeof(TemplateRenderer) - ); - result->driverData = (FNA3D_Renderer*) renderer; - ASSIGN_DRIVER(TEMPLATE) - return result; -} - -FNA3D_Driver TemplateDriver = { - "Template", - TEMPLATE_PrepareWindowAttributes, - TEMPLATE_GetDrawableSize, - TEMPLATE_CreateDevice -}; - -#else - -extern int this_tu_is_empty; - -#endif /* FNA3D_DRIVER_TEMPLATE */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Image.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Image.c deleted file mode 100644 index 9d331ce4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Image.c +++ /dev/null @@ -1,476 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FNA3D_Image.h" - -#include - -extern void FNA3D_LogWarn(const char *fmt, ...); - -#pragma GCC diagnostic push -#pragma GCC diagnostic ignored "-Wunused-but-set-variable" -#pragma GCC diagnostic ignored "-Wunused-function" -#ifndef __clang__ -#pragma GCC diagnostic ignored "-Wmisleading-indentation" -#endif - -#ifndef __STDC_WANT_SECURE_LIB__ -#define __STDC_WANT_SECURE_LIB__ 1 -#endif -#define sprintf_s SDL_snprintf - -#define abs SDL_abs -#define ceilf SDL_ceilf -#define floorf SDL_floorf -#define ldexp SDL_scalbn -#define pow SDL_pow -#define strtol SDL_strtol - -#ifdef memcmp -#undef memcmp -#endif -#define memcmp SDL_memcmp -#ifdef memcpy -#undef memcpy -#endif -#define memcpy SDL_memcpy -#ifdef memmove -#undef memmove -#endif -#define memmove SDL_memmove -#ifdef memset -#undef memset -#endif -#define memset SDL_memset -#ifdef strcmp -#undef strcmp -#endif -#define strcmp SDL_strcmp -#ifdef strlen -#undef strlen -#endif -#define strlen SDL_strlen -#ifdef strncmp -#undef strncmp -#endif -#define strncmp SDL_strncmp - -/* These are per the Texture2D.FromStream spec */ -#define STBI_ONLY_GIF -#define STBI_ONLY_PNG -#define STBI_ONLY_JPEG - -/* These are per the Texture2D.SaveAs* spec */ -#define STBIW_ONLY_PNG -#define STBIW_ONLY_JPEG - -#if !SDL_VERSION_ATLEAST(2, 0, 13) -static void * -SDL_SIMDRealloc(void *mem, const size_t len) -{ - const size_t alignment = SDL_SIMDGetAlignment(); - const size_t padding = alignment - (len % alignment); - const size_t padded = (padding != alignment) ? (len + padding) : len; - Uint8 *retval = (Uint8*) mem; - void *oldmem = mem; - size_t memdiff, ptrdiff; - Uint8 *ptr; - - if (mem) { - void **realptr = (void **) mem; - realptr--; - mem = *(((void **) mem) - 1); - - /* Check the delta between the real pointer and user pointer */ - memdiff = ((size_t) oldmem) - ((size_t) mem); - } - - ptr = (Uint8 *) SDL_realloc(mem, padded + alignment + sizeof (void *)); - - if (ptr == mem) { - return retval; /* Pointer didn't change, nothing to do */ - } - if (ptr == NULL) { - return NULL; /* Out of memory, bail! */ - } - - /* Store the actual malloc pointer right before our aligned pointer. */ - retval = ptr + sizeof (void *); - retval += alignment - (((size_t) retval) % alignment); - - /* Make sure the delta is the same! */ - if (mem) { - ptrdiff = ((size_t) retval) - ((size_t) ptr); - if (memdiff != ptrdiff) { /* Delta has changed, copy to new offset! */ - oldmem = (void*) (((size_t) ptr) + memdiff); - - /* Even though the data past the old `len` is undefined, this is the - * only length value we have, and it guarantees that we copy all the - * previous memory anyhow. - */ - SDL_memmove(retval, oldmem, len); - } - } - - /* Actually store the malloc pointer, finally. */ - *(((void **) retval) - 1) = ptr; - return retval; -} -#endif - -#define STBI_NO_STDIO -#define STB_IMAGE_STATIC -#define STBI_ASSERT SDL_assert -#define STBI_MALLOC SDL_SIMDAlloc -#define STBI_REALLOC SDL_SIMDRealloc -#define STBI_FREE SDL_SIMDFree -#define STB_IMAGE_IMPLEMENTATION -#ifdef __MINGW32__ -#define STBI_NO_THREAD_LOCALS /* FIXME: Port to SDL_TLS -flibit */ -#endif -#include "stb_image.h" - -#define MINIZ_NO_STDIO -#define MINIZ_NO_TIME -#define MINIZ_SDL_MALLOC -#define MZ_ASSERT(x) SDL_assert(x) -#include "miniz.h" - -/* Thanks Daniel Gibson! */ -static unsigned char* dgibson_stbi_zlib_compress( - unsigned char *data, - int data_len, - int *out_len, - int quality -) { - mz_ulong buflen = mz_compressBound(data_len); - unsigned char *buf = SDL_malloc(buflen); - - if ( buf == NULL || - mz_compress2(buf, &buflen, data, data_len, quality) != 0 ) - { - SDL_free(buf); - return NULL; - } - *out_len = buflen; - return buf; -} - -#define STBI_WRITE_NO_STDIO -#define STB_IMAGE_WRITE_STATIC -#define STBIW_ASSERT SDL_assert -#define STBIW_MALLOC SDL_malloc -#define STBIW_REALLOC SDL_realloc -#define STBIW_FREE SDL_free -#define STBIW_ZLIB_COMPRESS dgibson_stbi_zlib_compress -#define STB_IMAGE_WRITE_IMPLEMENTATION -#include "stb_image_write.h" - -#pragma GCC diagnostic pop - -/* Image Read API */ - -uint8_t* FNA3D_Image_Load( - FNA3D_Image_ReadFunc readFunc, - FNA3D_Image_SkipFunc skipFunc, - FNA3D_Image_EOFFunc eofFunc, - void* context, - int32_t *w, - int32_t *h, - int32_t *len, - int32_t forceW, - int32_t forceH, - uint8_t zoom -) { - uint8_t *result; - uint8_t *pixels; - int32_t format; - float scale; - SDL_Rect crop; - uint8_t scaleWidth; - SDL_Surface *surface, *newSurface; - stbi_io_callbacks cb; - int32_t i; - - cb.read = readFunc; - cb.skip = skipFunc; - cb.eof = eofFunc; - result = stbi_load_from_callbacks( - &cb, - context, - w, - h, - &format, - STBI_rgb_alpha - ); - - if (result == NULL) - { - FNA3D_LogWarn("Image loading failed: %s", stbi_failure_reason()); - } - - if (forceW != -1 && forceH != -1) - { - surface = SDL_CreateRGBSurfaceFrom( - result, - *w, - *h, - 8 * 4, - (*w) * 4, - 0x000000FF, - 0x0000FF00, - 0x00FF0000, - 0xFF000000 - ); - surface->flags |= SDL_SIMD_ALIGNED; - - if (zoom) - { - scaleWidth = surface->w < surface->h; - } - else - { - scaleWidth = surface->w > surface->h; - } - - if (scaleWidth) - { - scale = forceW / (float) surface->w; - } - else - { - scale = forceH / (float) surface->h; - } - - if (zoom) - { - *w = forceW; - *h = forceH; - if (scaleWidth) - { - crop.x = 0; - crop.y = (int) (surface->h / 2 - (forceH / scale) / 2); - crop.w = surface->w; - crop.h = (int) (forceH / scale); - } - else - { - crop.x = (int) (surface->w / 2 - (forceW / scale) / 2); - crop.y = 0; - crop.w = (int) (forceW / scale); - crop.h = surface->h; - } - } - else - { - *w = (int) (surface->w * scale); - *h = (int) (surface->h * scale); - } - - /* Alloc surface, blit! */ - newSurface = SDL_CreateRGBSurface( - 0, - *w, - *h, - 32, - 0x000000FF, - 0x0000FF00, - 0x00FF0000, - 0xFF000000 - ); - SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE); - if (zoom) - { - SDL_BlitScaled( - surface, - &crop, - newSurface, - NULL - ); - } - else - { - SDL_BlitScaled( - surface, - NULL, - newSurface, - NULL - ); - } - SDL_FreeSurface(surface); - SDL_free(result); - - /* We're going to cheat and let the client take the memory! */ - result = (uint8_t*) newSurface->pixels; - newSurface->flags |= SDL_PREALLOC; - SDL_FreeSurface(newSurface); - } - - /* Ensure that the alpha pixels are... well, actual alpha. - * You think this looks stupid, but be assured: Your paint program is - * almost certainly even stupider. - * -flibit - */ - pixels = result; - *len = (*w) * (*h) * 4; - for (i = 0; i < *len; i += 4, pixels += 4) - { - if (pixels[3] == 0) - { - pixels[0] = 0; - pixels[1] = 0; - pixels[2] = 0; - } - } - - return result; -} - -void FNA3D_Image_Free(uint8_t *mem) -{ - SDL_SIMDFree(mem); -} - -/* Image Write API */ - -void FNA3D_Image_SavePNG( - FNA3D_Image_WriteFunc writeFunc, - void* context, - int32_t srcW, - int32_t srcH, - int32_t dstW, - int32_t dstH, - uint8_t *data -) { - SDL_Surface *surface, *scaledSurface = NULL; - uint8_t *pixels; - uint8_t scale = (srcW != dstW) || (srcH != dstH); - - /* Only blit to scale, the format is already correct */ - if (scale) - { - surface = SDL_CreateRGBSurfaceFrom( - data, - srcW, - srcH, - 8 * 4, - srcW * 4, - 0x000000FF, - 0x0000FF00, - 0x00FF0000, - 0xFF000000 - ); - scaledSurface = SDL_CreateRGBSurface( - 0, - dstW, - dstH, - 32, - 0x000000FF, - 0x0000FF00, - 0x00FF0000, - 0xFF000000 - ); - SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE); - SDL_BlitScaled(surface, NULL, scaledSurface, NULL); - SDL_FreeSurface(surface); - pixels = (uint8_t*) scaledSurface->pixels; - } - else - { - pixels = data; - } - - /* Write the image data, finally. */ - stbi_write_png_to_func( - writeFunc, - context, - dstW, - dstH, - 4, - pixels, - dstW * 4 - ); - - /* Clean up. We out. */ - if (scale) - { - SDL_FreeSurface(scaledSurface); - } -} - -void FNA3D_Image_SaveJPG( - FNA3D_Image_WriteFunc writeFunc, - void* context, - int32_t srcW, - int32_t srcH, - int32_t dstW, - int32_t dstH, - uint8_t *data, - int32_t quality -) { - /* Get an RGB24 surface at the specified width/height */ - SDL_Surface *surface = SDL_CreateRGBSurfaceFrom( - data, - srcW, - srcH, - 8 * 4, - srcW * 4, - 0x000000FF, - 0x0000FF00, - 0x00FF0000, - 0xFF000000 - ); - SDL_Surface *convertSurface = SDL_CreateRGBSurface( - 0, - dstW, - dstH, - 24, - 0x000000FF, - 0x0000FF00, - 0x00FF0000, - 0x00000000 - ); - SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_NONE); - SDL_BlitScaled(surface, NULL, convertSurface, NULL); - SDL_FreeSurface(surface); - surface = convertSurface; - - /* Write the image, finally. */ - stbi_write_jpg_to_func( - writeFunc, - context, - dstW, - dstH, - 3, - surface->pixels, - quality - ); - - /* Clean up. We out. */ - SDL_FreeSurface(surface); -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_PipelineCache.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_PipelineCache.c deleted file mode 100644 index 501de9eb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_PipelineCache.c +++ /dev/null @@ -1,259 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "FNA3D_PipelineCache.h" - -#include - -/* Packed Pipeline States */ - -PackedState GetPackedBlendState(FNA3D_BlendState blendState) -{ - PackedState result; - int32_t funcs = ( - blendState.alphaBlendFunction << 4 - | blendState.colorBlendFunction << 0 - ); - int32_t blendsAndColorWritesChannels = ( - blendState.alphaDestinationBlend << 28 - | blendState.alphaSourceBlend << 24 - | blendState.colorDestinationBlend << 20 - | blendState.colorSourceBlend << 16 - | blendState.colorWriteEnable << 12 - | blendState.colorWriteEnable1 << 8 - | blendState.colorWriteEnable2 << 4 - | blendState.colorWriteEnable3 << 0 - ); - int32_t blendFactorPacked = ( - blendState.blendFactor.r << 0 - | blendState.blendFactor.g << 8 - | blendState.blendFactor.b << 16 - | blendState.blendFactor.a << 24 - ); - result.a = ( - (uint64_t) funcs << 32 | - (uint64_t) blendsAndColorWritesChannels - ); - result.b = ( - (uint64_t) blendState.multiSampleMask << 32 | - (uint64_t) blendFactorPacked - ); - return result; -} - -PackedState GetPackedDepthStencilState(FNA3D_DepthStencilState dsState) -{ - PackedState result; - int32_t packedProperties = ( - dsState.depthBufferEnable << 30 - | dsState.depthBufferWriteEnable << 29 - | dsState.stencilEnable << 28 - | dsState.twoSidedStencilMode << 27 - | dsState.depthBufferFunction << 24 - | dsState.stencilFunction << 21 - | dsState.ccwStencilFunction << 18 - | dsState.stencilPass << 15 - | dsState.stencilFail << 12 - | dsState.stencilDepthBufferFail << 9 - | dsState.ccwStencilPass << 6 - | dsState.ccwStencilFail << 3 - | dsState.ccwStencilDepthBufferFail - ); - result.a = ( - (uint64_t) dsState.stencilMask << 32 | - (uint64_t) packedProperties - ); - result.b = ( - (uint64_t) dsState.referenceStencil << 32 | - (uint64_t) dsState.stencilWriteMask - ); - return result; -} - -#define FLOAT_TO_UINT64(f) (uint64_t) *((uint32_t*) &f) - -PackedState GetPackedRasterizerState(FNA3D_RasterizerState rastState, float bias) -{ - PackedState result; - int32_t packedProperties = ( - rastState.multiSampleAntiAlias << 4 - | rastState.scissorTestEnable << 3 - | rastState.fillMode << 2 - | rastState.cullMode - ); - result.a = (uint64_t) packedProperties; - result.b = ( - FLOAT_TO_UINT64(rastState.slopeScaleDepthBias) << 32 | - FLOAT_TO_UINT64(bias) - ); - return result; -} - -PackedState GetPackedSamplerState(FNA3D_SamplerState samplerState) -{ - PackedState result; - int32_t packedProperties = ( - samplerState.filter << 6 - | samplerState.addressU << 4 - | samplerState.addressV << 2 - | samplerState.addressW - ); - result.a = ( - (uint64_t) samplerState.maxAnisotropy << 32 | - (uint64_t) packedProperties - ); - result.b = ( - (uint64_t) samplerState.maxMipLevel << 32 | - FLOAT_TO_UINT64(samplerState.mipMapLevelOfDetailBias) - ); - return result; -} - -#undef FLOAT_TO_UINT64 - -void* PackedStateArray_Fetch(PackedStateArray arr, PackedState key) -{ - int32_t i; - - for (i = 0; i < arr.count; i += 1) - { - if ( key.a == arr.elements[i].key.a && - key.b == arr.elements[i].key.b ) - { - return arr.elements[i].value; - } - } - - return NULL; -} - -void PackedStateArray_Insert(PackedStateArray *arr, PackedState key, void* value) -{ - PackedStateMap map; - map.key.a = key.a; - map.key.b = key.b; - map.value = value; - - EXPAND_ARRAY_IF_NEEDED(arr, 4, PackedStateMap) - - arr->elements[arr->count] = map; - arr->count += 1; -} - -/* Vertex Buffer Bindings */ - -static inline uint32_t GetPackedVertexElement(FNA3D_VertexElement element) -{ - /* FIXME: Backport this to FNA! */ - - /* Technically element.offset is an int32, but geez, - * if you're using more than 2^20 bytes, you've got - * bigger problems to worry about. - * -caleb - */ - return ( - element.offset << 12 - | element.vertexElementFormat << 8 - | element.vertexElementUsage << 4 - | element.usageIndex - ); -} - -static uint32_t HashVertexBufferBindings( - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings -) { - int32_t i, j; - uint32_t hash = numBindings; - - /* The algorithm for this hashing function - * is taken from Josh Bloch's "Effective Java". - * (https://stackoverflow.com/a/113600/12492383) - */ - const uint32_t HASH_FACTOR = 37; - for (i = 0; i < numBindings; i += 1) - { - for (j = 0; j < bindings[i].vertexDeclaration.elementCount; j += 1) - { - hash = hash * HASH_FACTOR + GetPackedVertexElement( - bindings[i].vertexDeclaration.elements[j] - ); - } - hash = hash * HASH_FACTOR + bindings[i].vertexDeclaration.vertexStride; - hash = hash * HASH_FACTOR + bindings[i].instanceFrequency; - } - - return hash; -} - -void* PackedVertexBufferBindingsArray_Fetch( - PackedVertexBufferBindingsArray arr, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - void* vertexShader, - int32_t *outIndex, - uint32_t *outHash -) { - int32_t i; - PackedVertexBufferBindings other; - uint32_t hash = HashVertexBufferBindings(bindings, numBindings); - void* result = NULL; - - for (i = 0; i < arr.count; i += 1) - { - other = arr.elements[i].key; - if (vertexShader == other.vertexShader && hash == other.hash) - { - result = arr.elements[i].value; - break; - } - } - - *outIndex = i; - *outHash = hash; - return result; -} - -void PackedVertexBufferBindingsArray_Insert( - PackedVertexBufferBindingsArray *arr, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - void* vertexShader, - void* value -) { - PackedVertexBufferBindingsMap map; - - EXPAND_ARRAY_IF_NEEDED(arr, 4, PackedVertexBufferBindingsMap) - - map.key.vertexShader = vertexShader; - map.key.hash = HashVertexBufferBindings(bindings, numBindings); - map.value = value; - - arr->elements[arr->count] = map; - arr->count += 1; -} - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_PipelineCache.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_PipelineCache.h deleted file mode 100644 index a9244142..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_PipelineCache.h +++ /dev/null @@ -1,119 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef FNA3D_PIPELINECACHE_H -#define FNA3D_PIPELINECACHE_H - -#include "FNA3D_Driver.h" - -/* Packed Pipeline States */ - -typedef struct PackedState -{ - uint64_t a; - uint64_t b; -} PackedState; - -typedef struct PackedStateMap -{ - PackedState key; - void* value; -} PackedStateMap; - -typedef struct PackedStateArray -{ - PackedStateMap *elements; - int32_t count; - int32_t capacity; -} PackedStateArray; - -PackedState GetPackedBlendState(FNA3D_BlendState blendState); -PackedState GetPackedDepthStencilState(FNA3D_DepthStencilState dsState); -PackedState GetPackedRasterizerState(FNA3D_RasterizerState rastState, float bias); -PackedState GetPackedSamplerState(FNA3D_SamplerState samplerState); -void* PackedStateArray_Fetch(PackedStateArray arr, PackedState key); -void PackedStateArray_Insert(PackedStateArray *arr, PackedState key, void* value); - -/* Vertex Buffer Bindings */ - -typedef struct PackedVertexBufferBindings -{ - void* vertexShader; - uint32_t hash; -} PackedVertexBufferBindings; - -typedef struct PackedVertexBufferBindingsMap -{ - PackedVertexBufferBindings key; - void* value; -} PackedVertexBufferBindingsMap; - -/* FIXME: Can we make this common to both packed and vertex structs? */ -typedef struct VertexBufferBindingsArray -{ - PackedVertexBufferBindingsMap *elements; - int32_t count; - int32_t capacity; -} PackedVertexBufferBindingsArray; - -void* PackedVertexBufferBindingsArray_Fetch( - PackedVertexBufferBindingsArray arr, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - void* vertexShader, - int32_t *outIndex, - uint32_t *outHash -); -void PackedVertexBufferBindingsArray_Insert( - PackedVertexBufferBindingsArray *arr, - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - void* vertexShader, - void* value -); - -/* Macros */ - -#define EXPAND_ARRAY_IF_NEEDED(arr, initialValue, type) \ - if (arr->count == arr->capacity) \ - { \ - if (arr->capacity == 0) \ - { \ - arr->capacity = initialValue; \ - } \ - else \ - { \ - arr->capacity *= 2; \ - } \ - arr->elements = (type*) SDL_realloc( \ - arr->elements, \ - arr->capacity * sizeof(type) \ - ); \ - } - -#endif /* FNA3D_PIPELINECACHE_H */ - -/* vim: set noexpandtab shiftwidth=8 tabstop=8: */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Tracing.c b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Tracing.c deleted file mode 100644 index 6373cf77..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Tracing.c +++ /dev/null @@ -1,1558 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "mojoshader.h" -#include "FNA3D_Tracing.h" - -#ifdef FNA3D_TRACING - -#include - -static const uint8_t MARK_CREATEDEVICE = 0; -static const uint8_t MARK_DESTROYDEVICE = 1; -static const uint8_t MARK_SWAPBUFFERS = 2; -static const uint8_t MARK_CLEAR = 3; -static const uint8_t MARK_DRAWINDEXEDPRIMITIVES = 4; -static const uint8_t MARK_DRAWINSTANCEDPRIMITIVES = 5; -static const uint8_t MARK_DRAWPRIMITIVES = 6; -static const uint8_t MARK_SETVIEWPORT = 7; -static const uint8_t MARK_SETSCISSORRECT = 8; -static const uint8_t MARK_SETBLENDFACTOR = 9; -static const uint8_t MARK_SETMULTISAMPLEMASK = 10; -static const uint8_t MARK_SETREFERENCESTENCIL = 11; -static const uint8_t MARK_SETBLENDSTATE = 12; -static const uint8_t MARK_SETDEPTHSTENCILSTATE = 13; -static const uint8_t MARK_APPLYRASTERIZERSTATE = 14; -static const uint8_t MARK_VERIFYSAMPLER = 15; -static const uint8_t MARK_VERIFYVERTEXSAMPLER = 16; -static const uint8_t MARK_APPLYVERTEXBUFFERBINDINGS = 17; -static const uint8_t MARK_SETRENDERTARGETS = 18; -static const uint8_t MARK_RESOLVETARGET = 19; -static const uint8_t MARK_RESETBACKBUFFER = 20; -static const uint8_t MARK_READBACKBUFFER = 21; -static const uint8_t MARK_CREATETEXTURE2D = 22; -static const uint8_t MARK_CREATETEXTURE3D = 23; -static const uint8_t MARK_CREATETEXTURECUBE = 24; -static const uint8_t MARK_ADDDISPOSETEXTURE = 25; -static const uint8_t MARK_SETTEXTUREDATA2D = 26; -static const uint8_t MARK_SETTEXTUREDATA3D = 27; -static const uint8_t MARK_SETTEXTUREDATACUBE = 28; -static const uint8_t MARK_SETTEXTUREDATAYUV = 29; -static const uint8_t MARK_GETTEXTUREDATA2D = 30; -static const uint8_t MARK_GETTEXTUREDATA3D = 31; -static const uint8_t MARK_GETTEXTUREDATACUBE = 32; -static const uint8_t MARK_GENCOLORRENDERBUFFER = 33; -static const uint8_t MARK_GENDEPTHSTENCILRENDERBUFFER = 34; -static const uint8_t MARK_ADDDISPOSERENDERBUFFER = 35; -static const uint8_t MARK_GENVERTEXBUFFER = 36; -static const uint8_t MARK_ADDDISPOSEVERTEXBUFFER = 37; -static const uint8_t MARK_SETVERTEXBUFFERDATA = 38; -static const uint8_t MARK_GETVERTEXBUFFERDATA = 39; -static const uint8_t MARK_GENINDEXBUFFER = 40; -static const uint8_t MARK_ADDDISPOSEINDEXBUFFER = 41; -static const uint8_t MARK_SETINDEXBUFFERDATA = 42; -static const uint8_t MARK_GETINDEXBUFFERDATA = 43; -static const uint8_t MARK_CREATEEFFECT = 44; -static const uint8_t MARK_CLONEEFFECT = 45; -static const uint8_t MARK_ADDDISPOSEEFFECT = 46; -static const uint8_t MARK_SETEFFECTTECHNIQUE = 47; -static const uint8_t MARK_APPLYEFFECT = 48; -static const uint8_t MARK_BEGINPASSRESTORE = 49; -static const uint8_t MARK_ENDPASSRESTORE = 50; -static const uint8_t MARK_CREATEQUERY = 51; -static const uint8_t MARK_ADDDISPOSEQUERY = 52; -static const uint8_t MARK_QUERYBEGIN = 53; -static const uint8_t MARK_QUERYEND = 54; -static const uint8_t MARK_QUERYPIXELCOUNT = 55; -static const uint8_t MARK_SETSTRINGMARKER = 56; - -#define TRACE_OBJECT(array, type) \ - static FNA3D_##type **trace##array = NULL; \ - static uint64_t trace##array##Count = 0; \ - static uint64_t FNA3D_Trace_Fetch##array(FNA3D_##type *object) \ - { \ - uint64_t i; \ - for (i = 0; i < trace##array##Count; i += 1) \ - { \ - if (object == trace##array[i]) \ - { \ - return i; \ - } \ - } \ - SDL_assert(0 && "Trace object is missing!"); \ - return 0; \ - } \ - static void FNA3D_Trace_Register##array(FNA3D_##type *object) \ - { \ - uint64_t i; \ - for (i = 0; i < trace##array##Count; i += 1) \ - { \ - if (trace##array[i] == NULL) \ - { \ - trace##array[i] = object; \ - return; \ - } \ - } \ - trace##array##Count += 1; \ - trace##array = SDL_realloc( \ - trace##array, \ - sizeof(FNA3D_##type*) * trace##array##Count \ - ); \ - trace##array[i] = object; \ - } -TRACE_OBJECT(Texture, Texture) -TRACE_OBJECT(Renderbuffer, Renderbuffer) -TRACE_OBJECT(VertexBuffer, Buffer) -TRACE_OBJECT(IndexBuffer, Buffer) -TRACE_OBJECT(Query, Query) -static FNA3D_Effect **traceEffect = NULL; -static MOJOSHADER_effect **traceEffectData = NULL; -static uint64_t traceEffectCount = 0; -static uint64_t FNA3D_Trace_FetchEffect(FNA3D_Effect *effect) -{ - uint64_t i; - for (i = 0; i < traceEffectCount; i += 1) - { - if (effect == traceEffect[i]) - { - return i; - } - } - SDL_assert(0 && "Trace object is missing!"); - return 0; -} -void FNA3D_Trace_RegisterEffect(FNA3D_Effect *effect, MOJOSHADER_effect *effectData) -{ - uint64_t i; - for (i = 0; i < traceEffectCount; i += 1) - { - if (traceEffect[i] == NULL) - { - traceEffect[i] = effect; - traceEffectData[i] = effectData; - return; - } - } - traceEffectCount += 1; - traceEffect = SDL_realloc( - traceEffect, - sizeof(FNA3D_Effect*) * traceEffectCount - ); - traceEffectData = SDL_realloc( - traceEffectData, - sizeof(MOJOSHADER_effect*) * traceEffectCount - ); - traceEffect[i] = effect; - traceEffectData[i] = effectData; -} -#undef TRACE_OBJECT - -#define CHECK_AND_FLUSH_BUFFER(len) \ - if (len > traceBufferSize) \ - { \ - traceBuffer = SDL_realloc(traceBuffer, len); \ - traceBufferSize = len; \ - } \ - if (traceBufferCurrentSize + len > traceBufferSize) \ - { \ - FNA3D_Trace_FlushMemory(); \ - } -#define WRITE(val) \ - CHECK_AND_FLUSH_BUFFER(sizeof(val)) \ - SDL_memcpy((uint8_t*) traceBuffer + traceBufferCurrentSize, &val, sizeof(val)); \ - traceBufferCurrentSize += sizeof(val); -#define WRITEMEM(ptr, len) \ - CHECK_AND_FLUSH_BUFFER(len) \ - SDL_memcpy((uint8_t*) traceBuffer + traceBufferCurrentSize, ptr, len); \ - traceBufferCurrentSize += len; - -static SDL_bool traceEnabled = SDL_FALSE; -static void* windowHandle = NULL; -static SDL_mutex *traceLock = NULL; - -static void* traceBuffer = NULL; -static uint32_t traceBufferCurrentSize = 0; -static uint32_t traceBufferSize = 64000000; /* 64MB */ - -static void FNA3D_Trace_FlushMemory() -{ - SDL_RWops* traceFile = SDL_RWFromFile("FNA3D_Trace.bin", "ab"); - traceFile->write(traceFile, traceBuffer, traceBufferCurrentSize, 1); - traceFile->close(traceFile); - traceBufferCurrentSize = 0; -} - -void FNA3D_Trace_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -) { - SDL_RWops* traceFile; - traceEnabled = !SDL_GetHintBoolean("FNA3D_DISABLE_TRACING", SDL_FALSE); - if (!traceEnabled) - { - SDL_Log("FNA3D tracing disabled!"); - return; - } - SDL_Log("FNA3D tracing started!"); - traceFile = SDL_RWFromFile("FNA3D_Trace.bin", "wb"); - traceFile->close(traceFile); - traceBuffer = SDL_malloc(traceBufferSize); - traceLock = SDL_CreateMutex(); - WRITE(MARK_CREATEDEVICE); - WRITE(presentationParameters->backBufferWidth); - WRITE(presentationParameters->backBufferHeight); - WRITE(presentationParameters->backBufferFormat); - WRITE(presentationParameters->multiSampleCount); - windowHandle = presentationParameters->deviceWindowHandle; - WRITE(presentationParameters->isFullScreen); - WRITE(presentationParameters->depthStencilFormat); - WRITE(presentationParameters->presentationInterval); - WRITE(presentationParameters->displayOrientation); - WRITE(presentationParameters->renderTargetUsage); - WRITE(debugMode); -} - -void FNA3D_Trace_DestroyDevice(void) -{ - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_DESTROYDEVICE); - - #define FREE_TRACES(array) \ - if (trace##array != NULL) \ - { \ - SDL_free(trace##array); \ - trace##array = NULL; \ - } \ - trace##array##Count = 0; - FREE_TRACES(Texture) - FREE_TRACES(Renderbuffer) - FREE_TRACES(VertexBuffer) - FREE_TRACES(IndexBuffer) - FREE_TRACES(Query) - if (traceEffect != NULL) - { - SDL_free(traceEffect); - traceEffect = NULL; - } - if (traceEffectData != NULL) - { - SDL_free(traceEffectData); - traceEffectData = NULL; - } - traceEffectCount = 0; - #undef FREE_TRACES - FNA3D_Trace_FlushMemory(); - SDL_free(traceBuffer); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SwapBuffers( - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -) { - uint8_t hasSource = sourceRectangle != NULL; - uint8_t hasDestination = destinationRectangle != NULL; - - if (!traceEnabled) - { - return; - } - - SDL_assert( overrideWindowHandle == NULL || - overrideWindowHandle == windowHandle ); - - SDL_LockMutex(traceLock); - - WRITE(MARK_SWAPBUFFERS); - WRITE(hasSource); - if (hasSource) - { - WRITE(sourceRectangle->x); - WRITE(sourceRectangle->y); - WRITE(sourceRectangle->w); - WRITE(sourceRectangle->h); - } - WRITE(hasDestination); - if (hasDestination) - { - WRITE(destinationRectangle->x); - WRITE(destinationRectangle->y); - WRITE(destinationRectangle->w); - WRITE(destinationRectangle->h); - } - - FNA3D_Trace_FlushMemory(); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_Clear( - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_CLEAR); - WRITE(options); - WRITE(color->x); - WRITE(color->y); - WRITE(color->z); - WRITE(color->w); - WRITE(depth); - WRITE(stencil); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_DrawIndexedPrimitives( - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchIndexBuffer(indices); - WRITE(MARK_DRAWINDEXEDPRIMITIVES); - WRITE(primitiveType); - WRITE(baseVertex); - WRITE(minVertexIndex); - WRITE(numVertices); - WRITE(startIndex); - WRITE(primitiveCount); - WRITE(obj); - WRITE(indexElementSize); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_DrawInstancedPrimitives( - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchIndexBuffer(indices); - WRITE(MARK_DRAWINSTANCEDPRIMITIVES); - WRITE(primitiveType); - WRITE(baseVertex); - WRITE(minVertexIndex); - WRITE(numVertices); - WRITE(startIndex); - WRITE(primitiveCount); - WRITE(instanceCount); - WRITE(obj); - WRITE(indexElementSize); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_DrawPrimitives( - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_DRAWPRIMITIVES); - WRITE(primitiveType); - WRITE(vertexStart); - WRITE(primitiveCount); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetViewport(FNA3D_Viewport *viewport) -{ - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETVIEWPORT); - WRITE(viewport->x); - WRITE(viewport->y); - WRITE(viewport->w); - WRITE(viewport->h); - WRITE(viewport->minDepth); - WRITE(viewport->maxDepth); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetScissorRect(FNA3D_Rect *scissor) -{ - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETSCISSORRECT); - WRITE(scissor->x); - WRITE(scissor->y); - WRITE(scissor->w); - WRITE(scissor->h); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetBlendFactor( - FNA3D_Color *blendFactor -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETBLENDFACTOR); - WRITE(blendFactor->r); - WRITE(blendFactor->g); - WRITE(blendFactor->b); - WRITE(blendFactor->a); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetMultiSampleMask(int32_t mask) -{ - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETMULTISAMPLEMASK); - WRITE(mask); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetReferenceStencil(int32_t ref) -{ - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETREFERENCESTENCIL); - WRITE(ref); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetBlendState( - FNA3D_BlendState *blendState -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETBLENDSTATE); - WRITE(blendState->colorSourceBlend); - WRITE(blendState->colorDestinationBlend); - WRITE(blendState->colorBlendFunction); - WRITE(blendState->alphaSourceBlend); - WRITE(blendState->alphaDestinationBlend); - WRITE(blendState->alphaBlendFunction); - WRITE(blendState->colorWriteEnable); - WRITE(blendState->colorWriteEnable1); - WRITE(blendState->colorWriteEnable2); - WRITE(blendState->colorWriteEnable3); - WRITE(blendState->blendFactor.r); - WRITE(blendState->blendFactor.g); - WRITE(blendState->blendFactor.b); - WRITE(blendState->blendFactor.a); - WRITE(blendState->multiSampleMask); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetDepthStencilState( - FNA3D_DepthStencilState *depthStencilState -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETDEPTHSTENCILSTATE); - WRITE(depthStencilState->depthBufferEnable); - WRITE(depthStencilState->depthBufferWriteEnable); - WRITE(depthStencilState->depthBufferFunction); - WRITE(depthStencilState->stencilEnable); - WRITE(depthStencilState->stencilMask); - WRITE(depthStencilState->stencilWriteMask); - WRITE(depthStencilState->twoSidedStencilMode); - WRITE(depthStencilState->stencilFail); - WRITE(depthStencilState->stencilDepthBufferFail); - WRITE(depthStencilState->stencilPass); - WRITE(depthStencilState->stencilFunction); - WRITE(depthStencilState->ccwStencilFail); - WRITE(depthStencilState->ccwStencilDepthBufferFail); - WRITE(depthStencilState->ccwStencilPass); - WRITE(depthStencilState->ccwStencilFunction); - WRITE(depthStencilState->referenceStencil); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_ApplyRasterizerState( - FNA3D_RasterizerState *rasterizerState -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_APPLYRASTERIZERSTATE); - WRITE(rasterizerState->fillMode); - WRITE(rasterizerState->cullMode); - WRITE(rasterizerState->depthBias); - WRITE(rasterizerState->slopeScaleDepthBias); - WRITE(rasterizerState->scissorTestEnable); - WRITE(rasterizerState->multiSampleAntiAlias); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_VerifySampler( - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_VERIFYSAMPLER); - WRITE(index); - WRITE(obj); - WRITE(sampler->filter); - WRITE(sampler->addressU); - WRITE(sampler->addressV); - WRITE(sampler->addressW); - WRITE(sampler->mipMapLevelOfDetailBias); - WRITE(sampler->maxAnisotropy); - WRITE(sampler->maxMipLevel); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_VerifyVertexSampler( - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_VERIFYVERTEXSAMPLER); - WRITE(index); - WRITE(obj); - WRITE(sampler->filter); - WRITE(sampler->addressU); - WRITE(sampler->addressV); - WRITE(sampler->addressW); - WRITE(sampler->mipMapLevelOfDetailBias); - WRITE(sampler->maxAnisotropy); - WRITE(sampler->maxMipLevel); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_ApplyVertexBufferBindings( - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -) { - uint64_t obj; - int32_t i, j; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_APPLYVERTEXBUFFERBINDINGS); - WRITE(numBindings); - for (i = 0; i < numBindings; i += 1) - { - const FNA3D_VertexBufferBinding *binding = &bindings[i]; - obj = FNA3D_Trace_FetchVertexBuffer(binding->vertexBuffer); - WRITE(obj); - WRITE(binding->vertexDeclaration.vertexStride); - WRITE(binding->vertexDeclaration.elementCount); - for (j = 0; j < binding->vertexDeclaration.elementCount; j += 1) - { - const FNA3D_VertexElement *elem = - &binding->vertexDeclaration.elements[j]; - WRITE(elem->offset); - WRITE(elem->vertexElementFormat); - WRITE(elem->vertexElementUsage); - WRITE(elem->usageIndex); - } - WRITE(binding->vertexOffset); - WRITE(binding->instanceFrequency); - } - WRITE(bindingsUpdated); - WRITE(baseVertex); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetRenderTargets( - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -) { - uint64_t obj; - int32_t i; - uint8_t nonNull; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_SETRENDERTARGETS); - WRITE(numRenderTargets); - for (i = 0; i < numRenderTargets; i += 1) - { - const FNA3D_RenderTargetBinding *binding = &renderTargets[i]; - WRITE(binding->type); - if (binding->type == FNA3D_RENDERTARGET_TYPE_2D) - { - WRITE(binding->twod.width); - WRITE(binding->twod.height); - } - else - { - SDL_assert(binding->type == FNA3D_RENDERTARGET_TYPE_CUBE); - WRITE(binding->cube.size); - WRITE(binding->cube.face); - } - - WRITE(binding->levelCount); - WRITE(binding->multiSampleCount); - - nonNull = binding->texture != NULL; - WRITE(nonNull); - if (nonNull) - { - obj = FNA3D_Trace_FetchTexture(binding->texture); - WRITE(obj); - } - - nonNull = binding->colorBuffer != NULL; - WRITE(nonNull); - if (nonNull) - { - obj = FNA3D_Trace_FetchRenderbuffer(binding->colorBuffer); - WRITE(obj); - } - } - - nonNull = depthStencilBuffer != NULL; - WRITE(nonNull); - if (nonNull) - { - obj = FNA3D_Trace_FetchRenderbuffer(depthStencilBuffer); - WRITE(obj); - } - - WRITE(depthFormat); - WRITE(preserveTargetContents); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_ResolveTarget( - FNA3D_RenderTargetBinding *target -) { - uint64_t obj; - uint8_t nonNull; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_RESOLVETARGET); - WRITE(target->type); - if (target->type == FNA3D_RENDERTARGET_TYPE_2D) - { - WRITE(target->twod.width); - WRITE(target->twod.height); - } - else - { - SDL_assert(target->type == FNA3D_RENDERTARGET_TYPE_CUBE); - WRITE(target->cube.size); - WRITE(target->cube.face); - } - - WRITE(target->levelCount); - WRITE(target->multiSampleCount); - - nonNull = target->texture != NULL; - WRITE(nonNull); - if (nonNull) - { - obj = FNA3D_Trace_FetchTexture(target->texture); - WRITE(obj); - } - - nonNull = target->colorBuffer != NULL; - WRITE(nonNull); - if (nonNull) - { - obj = FNA3D_Trace_FetchRenderbuffer(target->colorBuffer); - WRITE(obj); - } - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_ResetBackbuffer( - FNA3D_PresentationParameters *presentationParameters -) { - if (!traceEnabled) - { - return; - } - - SDL_assert(presentationParameters->deviceWindowHandle == windowHandle); - - SDL_LockMutex(traceLock); - WRITE(MARK_RESETBACKBUFFER); - WRITE(presentationParameters->backBufferWidth); - WRITE(presentationParameters->backBufferHeight); - WRITE(presentationParameters->backBufferFormat); - WRITE(presentationParameters->multiSampleCount); - WRITE(presentationParameters->isFullScreen); - WRITE(presentationParameters->depthStencilFormat); - WRITE(presentationParameters->presentationInterval); - WRITE(presentationParameters->displayOrientation); - WRITE(presentationParameters->renderTargetUsage); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_ReadBackbuffer( - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t dataLength -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - WRITE(MARK_READBACKBUFFER); - WRITE(x); - WRITE(y); - WRITE(w); - WRITE(h); - WRITE(dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_CreateTexture2D( - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget, - FNA3D_Texture *retval -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterTexture(retval); - WRITE(MARK_CREATETEXTURE2D); - WRITE(format); - WRITE(width); - WRITE(height); - WRITE(levelCount); - WRITE(isRenderTarget); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_CreateTexture3D( - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount, - FNA3D_Texture *retval -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterTexture(retval); - WRITE(MARK_CREATETEXTURE3D); - WRITE(format); - WRITE(width); - WRITE(height); - WRITE(depth); - WRITE(levelCount); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_CreateTextureCube( - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget, - FNA3D_Texture *retval -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterTexture(retval); - WRITE(MARK_CREATETEXTURECUBE); - WRITE(format); - WRITE(size); - WRITE(levelCount); - WRITE(isRenderTarget); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_AddDisposeTexture( - FNA3D_Texture *texture -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - traceTexture[obj] = NULL; - WRITE(MARK_ADDDISPOSETEXTURE); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetTextureData2D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_SETTEXTUREDATA2D); - WRITE(obj); - WRITE(x); - WRITE(y); - WRITE(w); - WRITE(h); - WRITE(level); - WRITE(dataLength); - WRITEMEM(data, dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetTextureData3D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_SETTEXTUREDATA3D); - WRITE(obj); - WRITE(x); - WRITE(y); - WRITE(z); - WRITE(w); - WRITE(h); - WRITE(d); - WRITE(level); - WRITE(dataLength); - WRITEMEM(data, dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetTextureDataCube( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_SETTEXTUREDATACUBE); - WRITE(obj); - WRITE(x); - WRITE(y); - WRITE(w); - WRITE(h); - WRITE(cubeMapFace); - WRITE(level); - WRITE(dataLength); - WRITEMEM(data, dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetTextureDataYUV( - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -) { - uint64_t objY, objU, objV; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - objY = FNA3D_Trace_FetchTexture(y); - objU = FNA3D_Trace_FetchTexture(u); - objV = FNA3D_Trace_FetchTexture(v); - WRITE(MARK_SETTEXTUREDATAYUV); - WRITE(objY); - WRITE(objU); - WRITE(objV); - WRITE(yWidth); - WRITE(yHeight); - WRITE(uvWidth); - WRITE(uvHeight); - WRITE(dataLength); - WRITEMEM(data, dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GetTextureData2D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - int32_t dataLength -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_GETTEXTUREDATA2D); - WRITE(obj); - WRITE(x); - WRITE(y); - WRITE(w); - WRITE(h); - WRITE(level); - WRITE(dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GetTextureData3D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - int32_t dataLength -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_GETTEXTUREDATA3D); - WRITE(obj); - WRITE(x); - WRITE(y); - WRITE(z); - WRITE(w); - WRITE(h); - WRITE(d); - WRITE(level); - WRITE(dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GetTextureDataCube( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - int32_t dataLength -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(MARK_GETTEXTUREDATACUBE); - WRITE(obj); - WRITE(x); - WRITE(y); - WRITE(w); - WRITE(h); - WRITE(cubeMapFace); - WRITE(level); - WRITE(dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GenColorRenderbuffer( - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture, - FNA3D_Renderbuffer *retval -) { - uint64_t obj; - uint8_t nonNull; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterRenderbuffer(retval); - WRITE(MARK_GENCOLORRENDERBUFFER); - WRITE(width); - WRITE(height); - WRITE(format); - WRITE(multiSampleCount); - nonNull = texture != NULL; - WRITE(nonNull); - if (nonNull) - { - obj = FNA3D_Trace_FetchTexture(texture); - WRITE(obj); - } - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GenDepthStencilRenderbuffer( - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount, - FNA3D_Renderbuffer *retval -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterRenderbuffer(retval); - WRITE(MARK_GENDEPTHSTENCILRENDERBUFFER); - WRITE(width); - WRITE(height); - WRITE(format); - WRITE(multiSampleCount); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_AddDisposeRenderbuffer( - FNA3D_Renderbuffer *renderbuffer -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchRenderbuffer(renderbuffer); - traceRenderbuffer[obj] = NULL; - WRITE(MARK_ADDDISPOSERENDERBUFFER); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GenVertexBuffer( - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes, - FNA3D_Buffer *retval -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterVertexBuffer(retval); - WRITE(MARK_GENVERTEXBUFFER); - WRITE(dynamic); - WRITE(usage); - WRITE(sizeInBytes); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_AddDisposeVertexBuffer( - FNA3D_Buffer *buffer -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchVertexBuffer(buffer); - traceVertexBuffer[obj] = NULL; - WRITE(MARK_ADDDISPOSEVERTEXBUFFER); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetVertexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchVertexBuffer(buffer); - WRITE(MARK_SETVERTEXBUFFERDATA); - WRITE(obj); - WRITE(offsetInBytes); - WRITE(elementCount); - WRITE(elementSizeInBytes); - WRITE(vertexStride); - WRITE(options); - WRITEMEM(data, vertexStride * elementCount); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GetVertexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchVertexBuffer(buffer); - WRITE(MARK_GETVERTEXBUFFERDATA); - WRITE(obj); - WRITE(offsetInBytes); - WRITE(elementCount); - WRITE(elementSizeInBytes); - WRITE(vertexStride); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GenIndexBuffer( - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes, - FNA3D_Buffer *retval -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterIndexBuffer(retval); - WRITE(MARK_GENINDEXBUFFER); - WRITE(dynamic); - WRITE(usage); - WRITE(sizeInBytes); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_AddDisposeIndexBuffer( - FNA3D_Buffer *buffer -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchIndexBuffer(buffer); - traceIndexBuffer[obj] = NULL; - WRITE(MARK_ADDDISPOSEINDEXBUFFER); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetIndexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchIndexBuffer(buffer); - WRITE(MARK_SETINDEXBUFFERDATA); - WRITE(obj); - WRITE(offsetInBytes); - WRITE(dataLength); - WRITE(options); - WRITEMEM(data, dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_GetIndexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - int32_t dataLength -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchIndexBuffer(buffer); - WRITE(MARK_GETINDEXBUFFERDATA); - WRITE(obj); - WRITE(offsetInBytes); - WRITE(dataLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_CreateEffect( - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect *retval, - MOJOSHADER_effect *retvalData -) { - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterEffect(retval, retvalData); - WRITE(MARK_CREATEEFFECT); - WRITE(effectCodeLength); - WRITEMEM(effectCode, effectCodeLength); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_CloneEffect( - FNA3D_Effect *cloneSource, - FNA3D_Effect *retval, - MOJOSHADER_effect *retvalData -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterEffect(retval, retvalData); - obj = FNA3D_Trace_FetchEffect(cloneSource); - WRITE(MARK_CLONEEFFECT); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_AddDisposeEffect( - FNA3D_Effect *effect -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchEffect(effect); - traceEffect[obj] = NULL; - traceEffectData[obj] = NULL; - WRITE(MARK_ADDDISPOSEEFFECT); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetEffectTechnique( - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -) { - uint64_t obj; - int32_t i; - MOJOSHADER_effect *effectData; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchEffect(effect); - effectData = traceEffectData[obj]; - WRITE(MARK_SETEFFECTTECHNIQUE); - WRITE(obj); - for (i = 0; i < effectData->technique_count; i += 1) - { - if (technique == &effectData->techniques[i]) - { - break; - } - } - WRITE(i); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_ApplyEffect( - FNA3D_Effect *effect, - uint32_t pass -) { - uint64_t obj; - MOJOSHADER_effect *effectData; - int i; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchEffect(effect); - effectData = traceEffectData[obj]; - WRITE(MARK_APPLYEFFECT); - WRITE(obj); - WRITE(pass); - for (i = 0; i < effectData->param_count; i += 1) - { - WRITEMEM(effectData->params[i].value.values, effectData->params[i].value.value_count * 4); - } - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_BeginPassRestore( - FNA3D_Effect *effect -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchEffect(effect); - WRITE(MARK_BEGINPASSRESTORE); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_EndPassRestore( - FNA3D_Effect *effect -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchEffect(effect); - WRITE(MARK_ENDPASSRESTORE); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_CreateQuery(FNA3D_Query *retval) -{ - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - FNA3D_Trace_RegisterQuery(retval); - WRITE(MARK_CREATEQUERY); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_AddDisposeQuery(FNA3D_Query *query) -{ - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchQuery(query); - traceQuery[obj] = NULL; - WRITE(MARK_ADDDISPOSEQUERY); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_QueryBegin(FNA3D_Query *query) -{ - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchQuery(query); - WRITE(MARK_QUERYBEGIN); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_QueryEnd(FNA3D_Query *query) -{ - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchQuery(query); - WRITE(MARK_QUERYEND); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_QueryPixelCount( - FNA3D_Query *query -) { - uint64_t obj; - if (!traceEnabled) - { - return; - } - SDL_LockMutex(traceLock); - obj = FNA3D_Trace_FetchQuery(query); - WRITE(MARK_QUERYPIXELCOUNT); - WRITE(obj); - SDL_UnlockMutex(traceLock); -} - -void FNA3D_Trace_SetStringMarker(const char *text) -{ - int32_t len; - - if (!traceEnabled) - { - return; - } - - SDL_LockMutex(traceLock); - len = (int32_t) SDL_strlen(text) + 1; - WRITE(MARK_SETSTRINGMARKER); - WRITE(len); - WRITEMEM(text, len); - SDL_UnlockMutex(traceLock); -} - -#undef WRITE - -#else - -extern int this_tu_is_empty; - -#endif /* FNA3D_TRACING */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Tracing.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Tracing.h deleted file mode 100644 index 83e1b270..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/FNA3D_Tracing.h +++ /dev/null @@ -1,500 +0,0 @@ -/* FNA3D - 3D Graphics Library for FNA - * - * Copyright (c) 2020-2022 Ethan Lee - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifdef FNA3D_TRACING - -#include "FNA3D.h" - -void FNA3D_Trace_CreateDevice( - FNA3D_PresentationParameters *presentationParameters, - uint8_t debugMode -); - -void FNA3D_Trace_DestroyDevice(void); - -void FNA3D_Trace_SwapBuffers( - FNA3D_Rect *sourceRectangle, - FNA3D_Rect *destinationRectangle, - void* overrideWindowHandle -); - -void FNA3D_Trace_Clear( - FNA3D_ClearOptions options, - FNA3D_Vec4 *color, - float depth, - int32_t stencil -); - -void FNA3D_Trace_DrawIndexedPrimitives( - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -); - -void FNA3D_Trace_DrawInstancedPrimitives( - FNA3D_PrimitiveType primitiveType, - int32_t baseVertex, - int32_t minVertexIndex, - int32_t numVertices, - int32_t startIndex, - int32_t primitiveCount, - int32_t instanceCount, - FNA3D_Buffer *indices, - FNA3D_IndexElementSize indexElementSize -); - -void FNA3D_Trace_DrawPrimitives( - FNA3D_PrimitiveType primitiveType, - int32_t vertexStart, - int32_t primitiveCount -); - -void FNA3D_Trace_SetViewport(FNA3D_Viewport *viewport); - -void FNA3D_Trace_SetScissorRect(FNA3D_Rect *scissor); - -void FNA3D_Trace_SetBlendFactor( - FNA3D_Color *blendFactor -); - -void FNA3D_Trace_SetMultiSampleMask(int32_t mask); - -void FNA3D_Trace_SetReferenceStencil(int32_t ref); - -void FNA3D_Trace_SetBlendState( - FNA3D_BlendState *blendState -); - -void FNA3D_Trace_SetDepthStencilState( - FNA3D_DepthStencilState *depthStencilState -); - -void FNA3D_Trace_ApplyRasterizerState( - FNA3D_RasterizerState *rasterizerState -); - -void FNA3D_Trace_VerifySampler( - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -); - -void FNA3D_Trace_VerifyVertexSampler( - int32_t index, - FNA3D_Texture *texture, - FNA3D_SamplerState *sampler -); - -void FNA3D_Trace_ApplyVertexBufferBindings( - FNA3D_VertexBufferBinding *bindings, - int32_t numBindings, - uint8_t bindingsUpdated, - int32_t baseVertex -); - -void FNA3D_Trace_SetRenderTargets( - FNA3D_RenderTargetBinding *renderTargets, - int32_t numRenderTargets, - FNA3D_Renderbuffer *depthStencilBuffer, - FNA3D_DepthFormat depthFormat, - uint8_t preserveTargetContents -); - -void FNA3D_Trace_ResolveTarget( - FNA3D_RenderTargetBinding *target -); - -void FNA3D_Trace_ResetBackbuffer( - FNA3D_PresentationParameters *presentationParameters -); - -void FNA3D_Trace_ReadBackbuffer( - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t dataLength -); - -void FNA3D_Trace_CreateTexture2D( - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t levelCount, - uint8_t isRenderTarget, - FNA3D_Texture *retval -); - -void FNA3D_Trace_CreateTexture3D( - FNA3D_SurfaceFormat format, - int32_t width, - int32_t height, - int32_t depth, - int32_t levelCount, - FNA3D_Texture *retval -); - -void FNA3D_Trace_CreateTextureCube( - FNA3D_SurfaceFormat format, - int32_t size, - int32_t levelCount, - uint8_t isRenderTarget, - FNA3D_Texture *retval -); - -void FNA3D_Trace_AddDisposeTexture( - FNA3D_Texture *texture -); - -void FNA3D_Trace_SetTextureData2D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - void* data, - int32_t dataLength -); - -void FNA3D_Trace_SetTextureData3D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - void* data, - int32_t dataLength -); - -void FNA3D_Trace_SetTextureDataCube( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - void* data, - int32_t dataLength -); - -void FNA3D_Trace_SetTextureDataYUV( - FNA3D_Texture *y, - FNA3D_Texture *u, - FNA3D_Texture *v, - int32_t yWidth, - int32_t yHeight, - int32_t uvWidth, - int32_t uvHeight, - void* data, - int32_t dataLength -); - -void FNA3D_Trace_GetTextureData2D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - int32_t level, - int32_t dataLength -); - -void FNA3D_Trace_GetTextureData3D( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t z, - int32_t w, - int32_t h, - int32_t d, - int32_t level, - int32_t dataLength -); - -void FNA3D_Trace_GetTextureDataCube( - FNA3D_Texture *texture, - int32_t x, - int32_t y, - int32_t w, - int32_t h, - FNA3D_CubeMapFace cubeMapFace, - int32_t level, - int32_t dataLength -); - -void FNA3D_Trace_GenColorRenderbuffer( - int32_t width, - int32_t height, - FNA3D_SurfaceFormat format, - int32_t multiSampleCount, - FNA3D_Texture *texture, - FNA3D_Renderbuffer *retval -); - -void FNA3D_Trace_GenDepthStencilRenderbuffer( - int32_t width, - int32_t height, - FNA3D_DepthFormat format, - int32_t multiSampleCount, - FNA3D_Renderbuffer *retval -); - -void FNA3D_Trace_AddDisposeRenderbuffer( - FNA3D_Renderbuffer *renderbuffer -); - -void FNA3D_Trace_GenVertexBuffer( - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes, - FNA3D_Buffer *retval -); - -void FNA3D_Trace_AddDisposeVertexBuffer( - FNA3D_Buffer *buffer -); - -void FNA3D_Trace_SetVertexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride, - FNA3D_SetDataOptions options -); - -void FNA3D_Trace_GetVertexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - int32_t elementCount, - int32_t elementSizeInBytes, - int32_t vertexStride -); - -void FNA3D_Trace_GenIndexBuffer( - uint8_t dynamic, - FNA3D_BufferUsage usage, - int32_t sizeInBytes, - FNA3D_Buffer *retval -); - -void FNA3D_Trace_AddDisposeIndexBuffer( - FNA3D_Buffer *buffer -); - -void FNA3D_Trace_SetIndexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - void* data, - int32_t dataLength, - FNA3D_SetDataOptions options -); - -void FNA3D_Trace_GetIndexBufferData( - FNA3D_Buffer *buffer, - int32_t offsetInBytes, - int32_t dataLength -); - -void FNA3D_Trace_CreateEffect( - uint8_t *effectCode, - uint32_t effectCodeLength, - FNA3D_Effect *retval, - MOJOSHADER_effect *retvalData -); - -void FNA3D_Trace_CloneEffect( - FNA3D_Effect *cloneSource, - FNA3D_Effect *retval, - MOJOSHADER_effect *retvalData -); - -void FNA3D_Trace_AddDisposeEffect( - FNA3D_Effect *effect -); - -void FNA3D_Trace_SetEffectTechnique( - FNA3D_Effect *effect, - MOJOSHADER_effectTechnique *technique -); - -void FNA3D_Trace_ApplyEffect( - FNA3D_Effect *effect, - uint32_t pass -); - -void FNA3D_Trace_BeginPassRestore( - FNA3D_Effect *effect -); - -void FNA3D_Trace_EndPassRestore( - FNA3D_Effect *effect -); - -void FNA3D_Trace_CreateQuery(FNA3D_Query *retval); - -void FNA3D_Trace_AddDisposeQuery(FNA3D_Query *query); - -void FNA3D_Trace_QueryBegin(FNA3D_Query *query); - -void FNA3D_Trace_QueryEnd(FNA3D_Query *query); - -void FNA3D_Trace_QueryPixelCount( - FNA3D_Query *query -); - -void FNA3D_Trace_SetStringMarker(const char *text); - -#define TRACE_CREATEDEVICE FNA3D_Trace_CreateDevice(presentationParameters, debugMode); -#define TRACE_DESTROYDEVICE FNA3D_Trace_DestroyDevice(); -#define TRACE_SWAPBUFFERS FNA3D_Trace_SwapBuffers(sourceRectangle, destinationRectangle, overrideWindowHandle); -#define TRACE_CLEAR FNA3D_Trace_Clear(options, color, depth, stencil); -#define TRACE_DRAWINDEXEDPRIMITIVES FNA3D_Trace_DrawIndexedPrimitives(primitiveType, baseVertex, minVertexIndex, numVertices, startIndex, primitiveCount, indices, indexElementSize); -#define TRACE_DRAWINSTANCEDPRIMITIVES FNA3D_Trace_DrawInstancedPrimitives(primitiveType, baseVertex, minVertexIndex, numVertices, startIndex, primitiveCount, instanceCount, indices, indexElementSize); -#define TRACE_DRAWPRIMITIVES FNA3D_Trace_DrawPrimitives(primitiveType, vertexStart, primitiveCount); -#define TRACE_SETVIEWPORT FNA3D_Trace_SetViewport(viewport); -#define TRACE_SETSCISSORRECT FNA3D_Trace_SetScissorRect(scissor); -#define TRACE_SETBLENDFACTOR FNA3D_Trace_SetBlendFactor(blendFactor); -#define TRACE_SETMULTISAMPLEMASK FNA3D_Trace_SetMultiSampleMask(mask); -#define TRACE_SETREFERENCESTENCIL FNA3D_Trace_SetReferenceStencil(ref); -#define TRACE_SETBLENDSTATE FNA3D_Trace_SetBlendState(blendState); -#define TRACE_SETDEPTHSTENCILSTATE FNA3D_Trace_SetDepthStencilState(depthStencilState); -#define TRACE_APPLYRASTERIZERSTATE FNA3D_Trace_ApplyRasterizerState(rasterizerState); -#define TRACE_VERIFYSAMPLER FNA3D_Trace_VerifySampler(index, texture, sampler); -#define TRACE_VERIFYVERTEXSAMPLER FNA3D_Trace_VerifyVertexSampler(index, texture, sampler); -#define TRACE_APPLYVERTEXBUFFERBINDINGS FNA3D_Trace_ApplyVertexBufferBindings(bindings, numBindings, bindingsUpdated, baseVertex); -#define TRACE_SETRENDERTARGETS FNA3D_Trace_SetRenderTargets(renderTargets, numRenderTargets, depthStencilBuffer, depthFormat, preserveTargetContents); -#define TRACE_RESOLVETARGET FNA3D_Trace_ResolveTarget(target); -#define TRACE_RESETBACKBUFFER FNA3D_Trace_ResetBackbuffer(presentationParameters); -#define TRACE_READBACKBUFFER FNA3D_Trace_ReadBackbuffer(x, y, w, h, dataLength); -#define TRACE_CREATETEXTURE2D FNA3D_Trace_CreateTexture2D(format, width, height, levelCount, isRenderTarget, result); -#define TRACE_CREATETEXTURE3D FNA3D_Trace_CreateTexture3D(format, width, height, depth, levelCount, result); -#define TRACE_CREATETEXTURECUBE FNA3D_Trace_CreateTextureCube(format, size, levelCount, isRenderTarget, result); -#define TRACE_ADDDISPOSETEXTURE FNA3D_Trace_AddDisposeTexture(texture); -#define TRACE_SETTEXTUREDATA2D FNA3D_Trace_SetTextureData2D(texture, x, y, w, h, level, data, dataLength); -#define TRACE_SETTEXTUREDATA3D FNA3D_Trace_SetTextureData3D(texture, x, y, z, w, h, d, level, data, dataLength); -#define TRACE_SETTEXTUREDATACUBE FNA3D_Trace_SetTextureDataCube(texture, x, y, w, h, cubeMapFace, level, data, dataLength); -#define TRACE_SETTEXTUREDATAYUV FNA3D_Trace_SetTextureDataYUV(y, u, v, yWidth, yHeight, uvWidth, uvHeight, data, dataLength); -#define TRACE_GETTEXTUREDATA2D FNA3D_Trace_GetTextureData2D(texture, x, y, w, h, level, dataLength); -#define TRACE_GETTEXTUREDATA3D FNA3D_Trace_GetTextureData3D(texture, x, y, z, w, h, d, level, dataLength); -#define TRACE_GETTEXTUREDATACUBE FNA3D_Trace_GetTextureDataCube(texture, x, y, w, h, cubeMapFace, level, dataLength); -#define TRACE_GENCOLORRENDERBUFFER FNA3D_Trace_GenColorRenderbuffer(width, height, format, multiSampleCount, texture, result); -#define TRACE_GENDEPTHSTENCILRENDERBUFFER FNA3D_Trace_GenDepthStencilRenderbuffer(width, height, format, multiSampleCount, result); -#define TRACE_ADDDISPOSERENDERBUFFER FNA3D_Trace_AddDisposeRenderbuffer(renderbuffer); -#define TRACE_GENVERTEXBUFFER FNA3D_Trace_GenVertexBuffer(dynamic, usage, sizeInBytes, result); -#define TRACE_ADDDISPOSEVERTEXBUFFER FNA3D_Trace_AddDisposeVertexBuffer(buffer); -#define TRACE_SETVERTEXBUFFERDATA FNA3D_Trace_SetVertexBufferData(buffer, offsetInBytes, data, elementCount, elementSizeInBytes, vertexStride, options); -#define TRACE_GETVERTEXBUFFERDATA FNA3D_Trace_GetVertexBufferData(buffer, offsetInBytes, elementCount, elementSizeInBytes, vertexStride); -#define TRACE_GENINDEXBUFFER FNA3D_Trace_GenIndexBuffer(dynamic, usage, sizeInBytes, result); -#define TRACE_ADDDISPOSEINDEXBUFFER FNA3D_Trace_AddDisposeIndexBuffer(buffer); -#define TRACE_SETINDEXBUFFERDATA FNA3D_Trace_SetIndexBufferData(buffer, offsetInBytes, data, dataLength, options); -#define TRACE_GETINDEXBUFFERDATA FNA3D_Trace_GetIndexBufferData(buffer, offsetInBytes, dataLength); -#define TRACE_CREATEEFFECT FNA3D_Trace_CreateEffect(effectCode, effectCodeLength, *effect, *effectData); -#define TRACE_CLONEEFFECT FNA3D_Trace_CloneEffect(cloneSource, *effect, *effectData); -#define TRACE_ADDDISPOSEEFFECT FNA3D_Trace_AddDisposeEffect(effect); -#define TRACE_SETEFFECTTECHNIQUE FNA3D_Trace_SetEffectTechnique(effect, technique); -#define TRACE_APPLYEFFECT FNA3D_Trace_ApplyEffect(effect, pass); -#define TRACE_BEGINPASSRESTORE FNA3D_Trace_BeginPassRestore(effect); -#define TRACE_ENDPASSRESTORE FNA3D_Trace_EndPassRestore(effect); -#define TRACE_CREATEQUERY FNA3D_Trace_CreateQuery(result); -#define TRACE_ADDDISPOSEQUERY FNA3D_Trace_AddDisposeQuery(query); -#define TRACE_QUERYBEGIN FNA3D_Trace_QueryBegin(query); -#define TRACE_QUERYEND FNA3D_Trace_QueryEnd(query); -#define TRACE_QUERYPIXELCOUNT FNA3D_Trace_QueryPixelCount(query); -#define TRACE_SETSTRINGMARKER FNA3D_Trace_SetStringMarker(text); - -#else - -#define TRACE_CREATEDEVICE -#define TRACE_DESTROYDEVICE -#define TRACE_SWAPBUFFERS -#define TRACE_CLEAR -#define TRACE_DRAWINDEXEDPRIMITIVES -#define TRACE_DRAWINSTANCEDPRIMITIVES -#define TRACE_DRAWPRIMITIVES -#define TRACE_SETVIEWPORT -#define TRACE_SETSCISSORRECT -#define TRACE_SETBLENDFACTOR -#define TRACE_SETMULTISAMPLEMASK -#define TRACE_SETREFERENCESTENCIL -#define TRACE_SETBLENDSTATE -#define TRACE_SETDEPTHSTENCILSTATE -#define TRACE_APPLYRASTERIZERSTATE -#define TRACE_VERIFYSAMPLER -#define TRACE_VERIFYVERTEXSAMPLER -#define TRACE_APPLYVERTEXBUFFERBINDINGS -#define TRACE_SETRENDERTARGETS -#define TRACE_RESOLVETARGET -#define TRACE_RESETBACKBUFFER -#define TRACE_READBACKBUFFER -#define TRACE_CREATETEXTURE2D -#define TRACE_CREATETEXTURE3D -#define TRACE_CREATETEXTURECUBE -#define TRACE_ADDDISPOSETEXTURE -#define TRACE_SETTEXTUREDATA2D -#define TRACE_SETTEXTUREDATA3D -#define TRACE_SETTEXTUREDATACUBE -#define TRACE_SETTEXTUREDATAYUV -#define TRACE_GETTEXTUREDATA2D -#define TRACE_GETTEXTUREDATA3D -#define TRACE_GETTEXTUREDATACUBE -#define TRACE_GENCOLORRENDERBUFFER -#define TRACE_GENDEPTHSTENCILRENDERBUFFER -#define TRACE_ADDDISPOSERENDERBUFFER -#define TRACE_GENVERTEXBUFFER -#define TRACE_ADDDISPOSEVERTEXBUFFER -#define TRACE_SETVERTEXBUFFERDATA -#define TRACE_GETVERTEXBUFFERDATA -#define TRACE_GENINDEXBUFFER -#define TRACE_ADDDISPOSEINDEXBUFFER -#define TRACE_SETINDEXBUFFERDATA -#define TRACE_GETINDEXBUFFERDATA -#define TRACE_CREATEEFFECT -#define TRACE_CLONEEFFECT -#define TRACE_ADDDISPOSEEFFECT -#define TRACE_SETEFFECTTECHNIQUE -#define TRACE_APPLYEFFECT -#define TRACE_BEGINPASSRESTORE -#define TRACE_ENDPASSRESTORE -#define TRACE_CREATEQUERY -#define TRACE_ADDDISPOSEQUERY -#define TRACE_QUERYBEGIN -#define TRACE_QUERYEND -#define TRACE_QUERYPIXELCOUNT -#define TRACE_SETSTRINGMARKER - -#endif /* FNA3D_TRACING */ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/miniz.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/miniz.h deleted file mode 100644 index 7705eef1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/miniz.h +++ /dev/null @@ -1,4942 +0,0 @@ -/* miniz.c v1.15 - public domain deflate/inflate, zlib-subset, ZIP reading/writing/appending, PNG writing - See "unlicense" statement at the end of this file. - Rich Geldreich , last updated Oct. 13, 2013 - Implements RFC 1950: http://www.ietf.org/rfc/rfc1950.txt and RFC 1951: http://www.ietf.org/rfc/rfc1951.txt - - Most API's defined in miniz.c are optional. For example, to disable the archive related functions just define - MINIZ_NO_ARCHIVE_APIS, or to get rid of all stdio usage define MINIZ_NO_STDIO (see the list below for more macros). - - * Change History - 10/13/13 v1.15 r4 - Interim bugfix release while I work on the next major release with Zip64 support (almost there!): - - Critical fix for the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY bug (thanks kahmyong.moon@hp.com) which could cause locate files to not find files. This bug - would only have occured in earlier versions if you explicitly used this flag, OR if you used mz_zip_extract_archive_file_to_heap() or mz_zip_add_mem_to_archive_file_in_place() - (which used this flag). If you can't switch to v1.15 but want to fix this bug, just remove the uses of this flag from both helper funcs (and of course don't use the flag). - - Bugfix in mz_zip_reader_extract_to_mem_no_alloc() from kymoon when pUser_read_buf is not NULL and compressed size is > uncompressed size - - Fixing mz_zip_reader_extract_*() funcs so they don't try to extract compressed data from directory entries, to account for weird zipfiles which contain zero-size compressed data on dir entries. - Hopefully this fix won't cause any issues on weird zip archives, because it assumes the low 16-bits of zip external attributes are DOS attributes (which I believe they always are in practice). - - Fixing mz_zip_reader_is_file_a_directory() so it doesn't check the internal attributes, just the filename and external attributes - - mz_zip_reader_init_file() - missing MZ_FCLOSE() call if the seek failed - - Added cmake support for Linux builds which builds all the examples, tested with clang v3.3 and gcc v4.6. - - Clang fix for tdefl_write_image_to_png_file_in_memory() from toffaletti - - Merged MZ_FORCEINLINE fix from hdeanclark - - Fix include before config #ifdef, thanks emil.brink - - Added tdefl_write_image_to_png_file_in_memory_ex(): supports Y flipping (super useful for OpenGL apps), and explicit control over the compression level (so you can - set it to 1 for real-time compression). - - Merged in some compiler fixes from paulharris's github repro. - - Retested this build under Windows (VS 2010, including static analysis), tcc 0.9.26, gcc v4.6 and clang v3.3. - - Added example6.c, which dumps an image of the mandelbrot set to a PNG file. - - Modified example2 to help test the MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY flag more. - - In r3: Bugfix to mz_zip_writer_add_file() found during merge: Fix possible src file fclose() leak if alignment bytes+local header file write faiiled - - In r4: Minor bugfix to mz_zip_writer_add_from_zip_reader(): Was pushing the wrong central dir header offset, appears harmless in this release, but it became a problem in the zip64 branch - 5/20/12 v1.14 - MinGW32/64 GCC 4.6.1 compiler fixes: added MZ_FORCEINLINE, #include (thanks fermtect). - 5/19/12 v1.13 - From jason@cornsyrup.org and kelwert@mtu.edu - Fix mz_crc32() so it doesn't compute the wrong CRC-32's when mz_ulong is 64-bit. - - Temporarily/locally slammed in "typedef unsigned long mz_ulong" and re-ran a randomized regression test on ~500k files. - - Eliminated a bunch of warnings when compiling with GCC 32-bit/64. - - Ran all examples, miniz.c, and tinfl.c through MSVC 2008's /analyze (static analysis) option and fixed all warnings (except for the silly - "Use of the comma-operator in a tested expression.." analysis warning, which I purposely use to work around a MSVC compiler warning). - - Created 32-bit and 64-bit Codeblocks projects/workspace. Built and tested Linux executables. The codeblocks workspace is compatible with Linux+Win32/x64. - - Added miniz_tester solution/project, which is a useful little app derived from LZHAM's tester app that I use as part of the regression test. - - Ran miniz.c and tinfl.c through another series of regression testing on ~500,000 files and archives. - - Modified example5.c so it purposely disables a bunch of high-level functionality (MINIZ_NO_STDIO, etc.). (Thanks to corysama for the MINIZ_NO_STDIO bug report.) - - Fix ftell() usage in examples so they exit with an error on files which are too large (a limitation of the examples, not miniz itself). - 4/12/12 v1.12 - More comments, added low-level example5.c, fixed a couple minor level_and_flags issues in the archive API's. - level_and_flags can now be set to MZ_DEFAULT_COMPRESSION. Thanks to Bruce Dawson for the feedback/bug report. - 5/28/11 v1.11 - Added statement from unlicense.org - 5/27/11 v1.10 - Substantial compressor optimizations: - - Level 1 is now ~4x faster than before. The L1 compressor's throughput now varies between 70-110MB/sec. on a - - Core i7 (actual throughput varies depending on the type of data, and x64 vs. x86). - - Improved baseline L2-L9 compression perf. Also, greatly improved compression perf. issues on some file types. - - Refactored the compression code for better readability and maintainability. - - Added level 10 compression level (L10 has slightly better ratio than level 9, but could have a potentially large - drop in throughput on some files). - 5/15/11 v1.09 - Initial stable release. - - * Low-level Deflate/Inflate implementation notes: - - Compression: Use the "tdefl" API's. The compressor supports raw, static, and dynamic blocks, lazy or - greedy parsing, match length filtering, RLE-only, and Huffman-only streams. It performs and compresses - approximately as well as zlib. - - Decompression: Use the "tinfl" API's. The entire decompressor is implemented as a single function - coroutine: see tinfl_decompress(). It supports decompression into a 32KB (or larger power of 2) wrapping buffer, or into a memory - block large enough to hold the entire file. - - The low-level tdefl/tinfl API's do not make any use of dynamic memory allocation. - - * zlib-style API notes: - - miniz.c implements a fairly large subset of zlib. There's enough functionality present for it to be a drop-in - zlib replacement in many apps: - The z_stream struct, optional memory allocation callbacks - deflateInit/deflateInit2/deflate/deflateReset/deflateEnd/deflateBound - inflateInit/inflateInit2/inflate/inflateEnd - compress, compress2, compressBound, uncompress - CRC-32, Adler-32 - Using modern, minimal code size, CPU cache friendly routines. - Supports raw deflate streams or standard zlib streams with adler-32 checking. - - Limitations: - The callback API's are not implemented yet. No support for gzip headers or zlib static dictionaries. - I've tried to closely emulate zlib's various flavors of stream flushing and return status codes, but - there are no guarantees that miniz.c pulls this off perfectly. - - * PNG writing: See the tdefl_write_image_to_png_file_in_memory() function, originally written by - Alex Evans. Supports 1-4 bytes/pixel images. - - * ZIP archive API notes: - - The ZIP archive API's where designed with simplicity and efficiency in mind, with just enough abstraction to - get the job done with minimal fuss. There are simple API's to retrieve file information, read files from - existing archives, create new archives, append new files to existing archives, or clone archive data from - one archive to another. It supports archives located in memory or the heap, on disk (using stdio.h), - or you can specify custom file read/write callbacks. - - - Archive reading: Just call this function to read a single file from a disk archive: - - void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, - size_t *pSize, mz_uint zip_flags); - - For more complex cases, use the "mz_zip_reader" functions. Upon opening an archive, the entire central - directory is located and read as-is into memory, and subsequent file access only occurs when reading individual files. - - - Archives file scanning: The simple way is to use this function to scan a loaded archive for a specific file: - - int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); - - The locate operation can optionally check file comments too, which (as one example) can be used to identify - multiple versions of the same file in an archive. This function uses a simple linear search through the central - directory, so it's not very fast. - - Alternately, you can iterate through all the files in an archive (using mz_zip_reader_get_num_files()) and - retrieve detailed info on each file by calling mz_zip_reader_file_stat(). - - - Archive creation: Use the "mz_zip_writer" functions. The ZIP writer immediately writes compressed file data - to disk and builds an exact image of the central directory in memory. The central directory image is written - all at once at the end of the archive file when the archive is finalized. - - The archive writer can optionally align each file's local header and file data to any power of 2 alignment, - which can be useful when the archive will be read from optical media. Also, the writer supports placing - arbitrary data blobs at the very beginning of ZIP archives. Archives written using either feature are still - readable by any ZIP tool. - - - Archive appending: The simple way to add a single file to an archive is to call this function: - - mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, - const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); - - The archive will be created if it doesn't already exist, otherwise it'll be appended to. - Note the appending is done in-place and is not an atomic operation, so if something goes wrong - during the operation it's possible the archive could be left without a central directory (although the local - file headers and file data will be fine, so the archive will be recoverable). - - For more complex archive modification scenarios: - 1. The safest way is to use a mz_zip_reader to read the existing archive, cloning only those bits you want to - preserve into a new archive using using the mz_zip_writer_add_from_zip_reader() function (which compiles the - compressed file data as-is). When you're done, delete the old archive and rename the newly written archive, and - you're done. This is safe but requires a bunch of temporary disk space or heap memory. - - 2. Or, you can convert an mz_zip_reader in-place to an mz_zip_writer using mz_zip_writer_init_from_reader(), - append new files as needed, then finalize the archive which will write an updated central directory to the - original archive. (This is basically what mz_zip_add_mem_to_archive_file_in_place() does.) There's a - possibility that the archive's central directory could be lost with this method if anything goes wrong, though. - - - ZIP archive support limitations: - No zip64 or spanning support. Extraction functions can only handle unencrypted, stored or deflated files. - Requires streams capable of seeking. - - * This is a header file library, like stb_image.c. To get only a header file, either cut and paste the - below header, or create miniz.h, #define MINIZ_HEADER_FILE_ONLY, and then include miniz.c from it. - - * Important: For best perf. be sure to customize the below macros for your target platform: - #define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 - #define MINIZ_LITTLE_ENDIAN 1 - #define MINIZ_HAS_64BIT_REGISTERS 1 - - * On platforms using glibc, Be sure to "#define _LARGEFILE64_SOURCE 1" before including miniz.c to ensure miniz - uses the 64-bit variants: fopen64(), stat64(), etc. Otherwise you won't be able to process large files - (i.e. 32-bit stat() fails for me on files > 0x7FFFFFFF bytes). -*/ - -#ifndef MINIZ_HEADER_INCLUDED -#define MINIZ_HEADER_INCLUDED - -/*#include */ - -// Defines to completely disable specific portions of miniz.c: -// If all macros here are defined the only functionality remaining will be CRC-32, adler-32, tinfl, and tdefl. - -// Define MINIZ_NO_STDIO to disable all usage and any functions which rely on stdio for file I/O. -#define MINIZ_NO_STDIO - -// If MINIZ_NO_TIME is specified then the ZIP archive functions will not be able to get the current time, or -// get/set file times, and the C run-time funcs that get/set times won't be called. -// The current downside is the times written to your archives will be from 1979. -#define MINIZ_NO_TIME - -// Define MINIZ_NO_ARCHIVE_APIS to disable all ZIP archive API's. -#define MINIZ_NO_ARCHIVE_APIS - -// Define MINIZ_NO_ARCHIVE_APIS to disable all writing related ZIP archive API's. -#define MINIZ_NO_ARCHIVE_WRITING_APIS - -// Define MINIZ_NO_ZLIB_APIS to remove all ZLIB-style compression/decompression API's. -// #define MINIZ_NO_ZLIB_APIS flibitChange from SDL_image! - -// Define MINIZ_NO_ZLIB_COMPATIBLE_NAME to disable zlib names, to prevent conflicts against stock zlib. -#define MINIZ_NO_ZLIB_COMPATIBLE_NAMES - -// Define MINIZ_NO_MALLOC to disable all calls to malloc, free, and realloc. -// Note if MINIZ_NO_MALLOC is defined then the user must always provide custom user alloc/free/realloc -// callbacks to the zlib and archive API's, and a few stand-alone helper API's which don't provide custom user -// functions (such as tdefl_compress_mem_to_heap() and tinfl_decompress_mem_to_heap()) won't work. -//#define MINIZ_NO_MALLOC -#define MINIZ_SDL_MALLOC - -// Define MINIZ_STATIC_FUNCTIONS to make all functions static. You probably -// want this if you're using miniz in a library -#define MINIZ_STATIC_FUNCTIONS - -#if defined(__TINYC__) && (defined(__linux) || defined(__linux__)) - // TODO: Work around "error: include file 'sys\utime.h' when compiling with tcc on Linux - #define MINIZ_NO_TIME -#endif - -#if !defined(MINIZ_NO_TIME) && !defined(MINIZ_NO_ARCHIVE_APIS) - #include -#endif - -#if defined(_M_IX86) || defined(_M_X64) || defined(__i386__) || defined(__i386) || defined(__i486__) || defined(__i486) || defined(i386) || defined(__ia64__) || defined(__x86_64__) -// MINIZ_X86_OR_X64_CPU is only used to help set the below macros. -#define MINIZ_X86_OR_X64_CPU 1 -#endif - -#if (__BYTE_ORDER__==__ORDER_LITTLE_ENDIAN__) || MINIZ_X86_OR_X64_CPU -// Set MINIZ_LITTLE_ENDIAN to 1 if the processor is little endian. -#define MINIZ_LITTLE_ENDIAN 1 -#endif - -#if MINIZ_X86_OR_X64_CPU -// Set MINIZ_USE_UNALIGNED_LOADS_AND_STORES to 1 on CPU's that permit efficient integer loads and stores from unaligned addresses. -#define MINIZ_USE_UNALIGNED_LOADS_AND_STORES 1 -#endif - -#if defined(_M_X64) || defined(_WIN64) || defined(__MINGW64__) || defined(_LP64) || defined(__LP64__) || defined(__ia64__) || defined(__x86_64__) -// Set MINIZ_HAS_64BIT_REGISTERS to 1 if operations on 64-bit integers are reasonably fast (and don't involve compiler generated calls to helper functions). -#define MINIZ_HAS_64BIT_REGISTERS 1 -#endif - -#ifdef MINIZ_STATIC_FUNCTIONS -#define MINIZ_STATIC static -#else -#define MINIZ_STATIC -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -// ------------------- zlib-style API Definitions. - -// For more compatibility with zlib, miniz.c uses unsigned long for some parameters/struct members. Beware: mz_ulong can be either 32 or 64-bits! -typedef unsigned long mz_ulong; - -// mz_free() internally uses the MZ_FREE() macro (which by default calls free() unless you've modified the MZ_MALLOC macro) to release a block allocated from the heap. -MINIZ_STATIC void mz_free(void *p); - -#define MZ_ADLER32_INIT (1) -// mz_adler32() returns the initial adler-32 value to use when called with ptr==NULL. -MINIZ_STATIC mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len); - -#define MZ_CRC32_INIT (0) -// mz_crc32() returns the initial CRC-32 value to use when called with ptr==NULL. -MINIZ_STATIC mz_ulong mz_crc32(mz_ulong crc, const unsigned char *ptr, size_t buf_len); - -// Compression strategies. -enum { MZ_DEFAULT_STRATEGY = 0, MZ_FILTERED = 1, MZ_HUFFMAN_ONLY = 2, MZ_RLE = 3, MZ_FIXED = 4 }; - -// Method -#define MZ_DEFLATED 8 - -#ifndef MINIZ_NO_ZLIB_APIS - -// Heap allocation callbacks. -// Note that mz_alloc_func parameter types purpsosely differ from zlib's: items/size is size_t, not unsigned long. -typedef void *(*mz_alloc_func)(void *opaque, size_t items, size_t size); -typedef void (*mz_free_func)(void *opaque, void *address); -typedef void *(*mz_realloc_func)(void *opaque, void *address, size_t items, size_t size); - -#define MZ_VERSION "9.1.15" -#define MZ_VERNUM 0x91F0 -#define MZ_VER_MAJOR 9 -#define MZ_VER_MINOR 1 -#define MZ_VER_REVISION 15 -#define MZ_VER_SUBREVISION 0 - -// Flush values. For typical usage you only need MZ_NO_FLUSH and MZ_FINISH. The other values are for advanced use (refer to the zlib docs). -enum { MZ_NO_FLUSH = 0, MZ_PARTIAL_FLUSH = 1, MZ_SYNC_FLUSH = 2, MZ_FULL_FLUSH = 3, MZ_FINISH = 4, MZ_BLOCK = 5 }; - -// Return status codes. MZ_PARAM_ERROR is non-standard. -enum { MZ_OK = 0, MZ_STREAM_END = 1, MZ_NEED_DICT = 2, MZ_ERRNO = -1, MZ_STREAM_ERROR = -2, MZ_DATA_ERROR = -3, MZ_MEM_ERROR = -4, MZ_BUF_ERROR = -5, MZ_VERSION_ERROR = -6, MZ_PARAM_ERROR = -10000 }; - -// Compression levels: 0-9 are the standard zlib-style levels, 10 is best possible compression (not zlib compatible, and may be very slow), MZ_DEFAULT_COMPRESSION=MZ_DEFAULT_LEVEL. -enum { MZ_NO_COMPRESSION = 0, MZ_BEST_SPEED = 1, MZ_BEST_COMPRESSION = 9, MZ_UBER_COMPRESSION = 10, MZ_DEFAULT_LEVEL = 6, MZ_DEFAULT_COMPRESSION = -1 }; - -// Window bits -#define MZ_DEFAULT_WINDOW_BITS 15 - -struct mz_internal_state; - -// Compression/decompression stream struct. -typedef struct mz_stream_s -{ - const unsigned char *next_in; // pointer to next byte to read - unsigned int avail_in; // number of bytes available at next_in - mz_ulong total_in; // total number of bytes consumed so far - - unsigned char *next_out; // pointer to next byte to write - unsigned int avail_out; // number of bytes that can be written to next_out - mz_ulong total_out; // total number of bytes produced so far - - char *msg; // error msg (unused) - struct mz_internal_state *state; // internal state, allocated by zalloc/zfree - - mz_alloc_func zalloc; // optional heap allocation function (defaults to malloc) - mz_free_func zfree; // optional heap free function (defaults to free) - void *opaque; // heap alloc function user pointer - - int data_type; // data_type (unused) - mz_ulong adler; // adler32 of the source or uncompressed data - mz_ulong reserved; // not used -} mz_stream; - -typedef mz_stream *mz_streamp; - -// Returns the version string of miniz.c. -MINIZ_STATIC const char *mz_version(void); - -// mz_deflateInit() initializes a compressor with default options: -// Parameters: -// pStream must point to an initialized mz_stream struct. -// level must be between [MZ_NO_COMPRESSION, MZ_BEST_COMPRESSION]. -// level 1 enables a specially optimized compression function that's been optimized purely for performance, not ratio. -// (This special func. is currently only enabled when MINIZ_USE_UNALIGNED_LOADS_AND_STORES and MINIZ_LITTLE_ENDIAN are defined.) -// Return values: -// MZ_OK on success. -// MZ_STREAM_ERROR if the stream is bogus. -// MZ_PARAM_ERROR if the input parameters are bogus. -// MZ_MEM_ERROR on out of memory. -MINIZ_STATIC int mz_deflateInit(mz_streamp pStream, int level); - -// mz_deflateInit2() is like mz_deflate(), except with more control: -// Additional parameters: -// method must be MZ_DEFLATED -// window_bits must be MZ_DEFAULT_WINDOW_BITS (to wrap the deflate stream with zlib header/adler-32 footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate/no header or footer) -// mem_level must be between [1, 9] (it's checked but ignored by miniz.c) -MINIZ_STATIC int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy); - -// Quickly resets a compressor without having to reallocate anything. Same as calling mz_deflateEnd() followed by mz_deflateInit()/mz_deflateInit2(). -MINIZ_STATIC int mz_deflateReset(mz_streamp pStream); - -// mz_deflate() compresses the input to output, consuming as much of the input and producing as much output as possible. -// Parameters: -// pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. -// flush may be MZ_NO_FLUSH, MZ_PARTIAL_FLUSH/MZ_SYNC_FLUSH, MZ_FULL_FLUSH, or MZ_FINISH. -// Return values: -// MZ_OK on success (when flushing, or if more input is needed but not available, and/or there's more output to be written but the output buffer is full). -// MZ_STREAM_END if all input has been consumed and all output bytes have been written. Don't call mz_deflate() on the stream anymore. -// MZ_STREAM_ERROR if the stream is bogus. -// MZ_PARAM_ERROR if one of the parameters is invalid. -// MZ_BUF_ERROR if no forward progress is possible because the input and/or output buffers are empty. (Fill up the input buffer or free up some output space and try again.) -MINIZ_STATIC int mz_deflate(mz_streamp pStream, int flush); - -// mz_deflateEnd() deinitializes a compressor: -// Return values: -// MZ_OK on success. -// MZ_STREAM_ERROR if the stream is bogus. -MINIZ_STATIC int mz_deflateEnd(mz_streamp pStream); - -// mz_deflateBound() returns a (very) conservative upper bound on the amount of data that could be generated by deflate(), assuming flush is set to only MZ_NO_FLUSH or MZ_FINISH. -MINIZ_STATIC mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len); - -// Single-call compression functions mz_compress() and mz_compress2(): -// Returns MZ_OK on success, or one of the error codes from mz_deflate() on failure. -MINIZ_STATIC int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len); -MINIZ_STATIC int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level); - -// mz_compressBound() returns a (very) conservative upper bound on the amount of data that could be generated by calling mz_compress(). -MINIZ_STATIC mz_ulong mz_compressBound(mz_ulong source_len); - -// Initializes a decompressor. -MINIZ_STATIC int mz_inflateInit(mz_streamp pStream); - -// mz_inflateInit2() is like mz_inflateInit() with an additional option that controls the window size and whether or not the stream has been wrapped with a zlib header/footer: -// window_bits must be MZ_DEFAULT_WINDOW_BITS (to parse zlib header/footer) or -MZ_DEFAULT_WINDOW_BITS (raw deflate). -MINIZ_STATIC int mz_inflateInit2(mz_streamp pStream, int window_bits); - -// Decompresses the input stream to the output, consuming only as much of the input as needed, and writing as much to the output as possible. -// Parameters: -// pStream is the stream to read from and write to. You must initialize/update the next_in, avail_in, next_out, and avail_out members. -// flush may be MZ_NO_FLUSH, MZ_SYNC_FLUSH, or MZ_FINISH. -// On the first call, if flush is MZ_FINISH it's assumed the input and output buffers are both sized large enough to decompress the entire stream in a single call (this is slightly faster). -// MZ_FINISH implies that there are no more source bytes available beside what's already in the input buffer, and that the output buffer is large enough to hold the rest of the decompressed data. -// Return values: -// MZ_OK on success. Either more input is needed but not available, and/or there's more output to be written but the output buffer is full. -// MZ_STREAM_END if all needed input has been consumed and all output bytes have been written. For zlib streams, the adler-32 of the decompressed data has also been verified. -// MZ_STREAM_ERROR if the stream is bogus. -// MZ_DATA_ERROR if the deflate stream is invalid. -// MZ_PARAM_ERROR if one of the parameters is invalid. -// MZ_BUF_ERROR if no forward progress is possible because the input buffer is empty but the inflater needs more input to continue, or if the output buffer is not large enough. Call mz_inflate() again -// with more input data, or with more room in the output buffer (except when using single call decompression, described above). -MINIZ_STATIC int mz_inflate(mz_streamp pStream, int flush); - -// Deinitializes a decompressor. -MINIZ_STATIC int mz_inflateEnd(mz_streamp pStream); - -// Single-call decompression. -// Returns MZ_OK on success, or one of the error codes from mz_inflate() on failure. -MINIZ_STATIC int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len); - -// Returns a string description of the specified error code, or NULL if the error code is invalid. -MINIZ_STATIC const char *mz_error(int err); - -// Redefine zlib-compatible names to miniz equivalents, so miniz.c can be used as a drop-in replacement for the subset of zlib that miniz.c supports. -// Define MINIZ_NO_ZLIB_COMPATIBLE_NAMES to disable zlib-compatibility if you use zlib in the same project. -#ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES - typedef unsigned char Byte; - typedef unsigned int uInt; - typedef mz_ulong uLong; - typedef Byte Bytef; - typedef uInt uIntf; - typedef char charf; - typedef int intf; - typedef void *voidpf; - typedef uLong uLongf; - typedef void *voidp; - typedef void *const voidpc; - #define Z_NULL 0 - #define Z_NO_FLUSH MZ_NO_FLUSH - #define Z_PARTIAL_FLUSH MZ_PARTIAL_FLUSH - #define Z_SYNC_FLUSH MZ_SYNC_FLUSH - #define Z_FULL_FLUSH MZ_FULL_FLUSH - #define Z_FINISH MZ_FINISH - #define Z_BLOCK MZ_BLOCK - #define Z_OK MZ_OK - #define Z_STREAM_END MZ_STREAM_END - #define Z_NEED_DICT MZ_NEED_DICT - #define Z_ERRNO MZ_ERRNO - #define Z_STREAM_ERROR MZ_STREAM_ERROR - #define Z_DATA_ERROR MZ_DATA_ERROR - #define Z_MEM_ERROR MZ_MEM_ERROR - #define Z_BUF_ERROR MZ_BUF_ERROR - #define Z_VERSION_ERROR MZ_VERSION_ERROR - #define Z_PARAM_ERROR MZ_PARAM_ERROR - #define Z_NO_COMPRESSION MZ_NO_COMPRESSION - #define Z_BEST_SPEED MZ_BEST_SPEED - #define Z_BEST_COMPRESSION MZ_BEST_COMPRESSION - #define Z_DEFAULT_COMPRESSION MZ_DEFAULT_COMPRESSION - #define Z_DEFAULT_STRATEGY MZ_DEFAULT_STRATEGY - #define Z_FILTERED MZ_FILTERED - #define Z_HUFFMAN_ONLY MZ_HUFFMAN_ONLY - #define Z_RLE MZ_RLE - #define Z_FIXED MZ_FIXED - #define Z_DEFLATED MZ_DEFLATED - #define Z_DEFAULT_WINDOW_BITS MZ_DEFAULT_WINDOW_BITS - #define alloc_func mz_alloc_func - #define free_func mz_free_func - #define internal_state mz_internal_state - #define z_stream mz_stream - #define deflateInit mz_deflateInit - #define deflateInit2 mz_deflateInit2 - #define deflateReset mz_deflateReset - #define deflate mz_deflate - #define deflateEnd mz_deflateEnd - #define deflateBound mz_deflateBound - #define compress mz_compress - #define compress2 mz_compress2 - #define compressBound mz_compressBound - #define inflateInit mz_inflateInit - #define inflateInit2 mz_inflateInit2 - #define inflate mz_inflate - #define inflateEnd mz_inflateEnd - #define uncompress mz_uncompress - #define crc32 mz_crc32 - #define adler32 mz_adler32 - #define MAX_WBITS 15 - #define MAX_MEM_LEVEL 9 - #define zError mz_error - #define ZLIB_VERSION MZ_VERSION - #define ZLIB_VERNUM MZ_VERNUM - #define ZLIB_VER_MAJOR MZ_VER_MAJOR - #define ZLIB_VER_MINOR MZ_VER_MINOR - #define ZLIB_VER_REVISION MZ_VER_REVISION - #define ZLIB_VER_SUBREVISION MZ_VER_SUBREVISION - #define zlibVersion mz_version - #define zlib_version mz_version() -#endif // #ifndef MINIZ_NO_ZLIB_COMPATIBLE_NAMES - -#endif // MINIZ_NO_ZLIB_APIS - -// ------------------- Types and macros - -typedef unsigned char mz_uint8; -typedef signed short mz_int16; -typedef unsigned short mz_uint16; -typedef unsigned int mz_uint32; -typedef unsigned int mz_uint; -typedef long long mz_int64; -typedef unsigned long long mz_uint64; -typedef int mz_bool; - -#define MZ_FALSE (0) -#define MZ_TRUE (1) - -// An attempt to work around MSVC's spammy "warning C4127: conditional expression is constant" message. -#ifdef _MSC_VER - #define MZ_MACRO_END while (0, 0) -#else - #define MZ_MACRO_END while (0) -#endif - -// ------------------- ZIP archive reading/writing - -#ifndef MINIZ_NO_ARCHIVE_APIS - -enum -{ - MZ_ZIP_MAX_IO_BUF_SIZE = 64*1024, - MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE = 260, - MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE = 256 -}; - -typedef struct -{ - mz_uint32 m_file_index; - mz_uint32 m_central_dir_ofs; - mz_uint16 m_version_made_by; - mz_uint16 m_version_needed; - mz_uint16 m_bit_flag; - mz_uint16 m_method; -#ifndef MINIZ_NO_TIME - time_t m_time; -#endif - mz_uint32 m_crc32; - mz_uint64 m_comp_size; - mz_uint64 m_uncomp_size; - mz_uint16 m_internal_attr; - mz_uint32 m_external_attr; - mz_uint64 m_local_header_ofs; - mz_uint32 m_comment_size; - char m_filename[MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE]; - char m_comment[MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE]; -} mz_zip_archive_file_stat; - -typedef size_t (*mz_file_read_func)(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n); -typedef size_t (*mz_file_write_func)(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n); - -struct mz_zip_internal_state_tag; -typedef struct mz_zip_internal_state_tag mz_zip_internal_state; - -typedef enum -{ - MZ_ZIP_MODE_INVALID = 0, - MZ_ZIP_MODE_READING = 1, - MZ_ZIP_MODE_WRITING = 2, - MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED = 3 -} mz_zip_mode; - -typedef struct mz_zip_archive_tag -{ - mz_uint64 m_archive_size; - mz_uint64 m_central_directory_file_ofs; - mz_uint m_total_files; - mz_zip_mode m_zip_mode; - - mz_uint m_file_offset_alignment; - - mz_alloc_func m_pAlloc; - mz_free_func m_pFree; - mz_realloc_func m_pRealloc; - void *m_pAlloc_opaque; - - mz_file_read_func m_pRead; - mz_file_write_func m_pWrite; - void *m_pIO_opaque; - - mz_zip_internal_state *m_pState; - -} mz_zip_archive; - -typedef enum -{ - MZ_ZIP_FLAG_CASE_SENSITIVE = 0x0100, - MZ_ZIP_FLAG_IGNORE_PATH = 0x0200, - MZ_ZIP_FLAG_COMPRESSED_DATA = 0x0400, - MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY = 0x0800 -} mz_zip_flags; - -// ZIP archive reading - -// Inits a ZIP archive reader. -// These functions read and validate the archive's central directory. -MINIZ_STATIC mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint32 flags); -MINIZ_STATIC mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint32 flags); - -#ifndef MINIZ_NO_STDIO -MINIZ_STATIC mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags); -#endif - -// Returns the total number of files in the archive. -MINIZ_STATIC mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip); - -// Returns detailed information about an archive file entry. -MINIZ_STATIC mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat); - -// Determines if an archive file entry is a directory entry. -MINIZ_STATIC mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index); -MINIZ_STATIC mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index); - -// Retrieves the filename of an archive file entry. -// Returns the number of bytes written to pFilename, or if filename_buf_size is 0 this function returns the number of bytes needed to fully store the filename. -MINIZ_STATIC mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size); - -// Attempts to locates a file in the archive's central directory. -// Valid flags: MZ_ZIP_FLAG_CASE_SENSITIVE, MZ_ZIP_FLAG_IGNORE_PATH -// Returns -1 if the file cannot be found. -MINIZ_STATIC int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags); - -// Extracts a archive file to a memory buffer using no memory allocation. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size); - -// Extracts a archive file to a memory buffer. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags); - -// Extracts a archive file to a dynamically allocated heap buffer. -MINIZ_STATIC void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags); -MINIZ_STATIC void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags); - -// Extracts a archive file using a callback function to output the file's data. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags); - -#ifndef MINIZ_NO_STDIO -// Extracts a archive file to a disk file and sets its last accessed and modified times. -// This function only extracts files, not archive directory records. -MINIZ_STATIC mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags); -MINIZ_STATIC mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags); -#endif - -// Ends archive reading, freeing all allocations, and closing the input archive file if mz_zip_reader_init_file() was used. -MINIZ_STATIC mz_bool mz_zip_reader_end(mz_zip_archive *pZip); - -// ZIP archive writing - -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -// Inits a ZIP archive writer. -MINIZ_STATIC mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size); -MINIZ_STATIC mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size); - -#ifndef MINIZ_NO_STDIO -MINIZ_STATIC mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning); -#endif - -// Converts a ZIP archive reader object into a writer object, to allow efficient in-place file appends to occur on an existing archive. -// For archives opened using mz_zip_reader_init_file, pFilename must be the archive's filename so it can be reopened for writing. If the file can't be reopened, mz_zip_reader_end() will be called. -// For archives opened using mz_zip_reader_init_mem, the memory block must be growable using the realloc callback (which defaults to realloc unless you've overridden it). -// Finally, for archives opened using mz_zip_reader_init, the mz_zip_archive's user provided m_pWrite function cannot be NULL. -// Note: In-place archive modification is not recommended unless you know what you're doing, because if execution stops or something goes wrong before -// the archive is finalized the file's central directory will be hosed. -MINIZ_STATIC mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename); - -// Adds the contents of a memory buffer to an archive. These functions record the current local time into the archive. -// To add a directory entry, call this method with an archive name ending in a forwardslash with empty buffer. -// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. -MINIZ_STATIC mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags); -MINIZ_STATIC mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32); - -#ifndef MINIZ_NO_STDIO -// Adds the contents of a disk file to an archive. This function also records the disk file's modified time into the archive. -// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. -MINIZ_STATIC mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); -#endif - -// Adds a file to an archive by fully cloning the data from another archive. -// This function fully clones the source file's compressed data (no recompression), along with its full filename, extra data, and comment fields. -MINIZ_STATIC mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint file_index); - -// Finalizes the archive by writing the central directory records followed by the end of central directory record. -// After an archive is finalized, the only valid call on the mz_zip_archive struct is mz_zip_writer_end(). -// An archive must be manually finalized by calling this function for it to be valid. -MINIZ_STATIC mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip); -MINIZ_STATIC mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf, size_t *pSize); - -// Ends archive writing, freeing all allocations, and closing the output file if mz_zip_writer_init_file() was used. -// Note for the archive to be valid, it must have been finalized before ending. -MINIZ_STATIC mz_bool mz_zip_writer_end(mz_zip_archive *pZip); - -// Misc. high-level helper functions: - -// mz_zip_add_mem_to_archive_file_in_place() efficiently (but not atomically) appends a memory blob to a ZIP archive. -// level_and_flags - compression level (0-10, see MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc.) logically OR'd with zero or more mz_zip_flags, or just set to MZ_DEFAULT_COMPRESSION. -MINIZ_STATIC mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags); - -// Reads a single file from an archive into a heap block. -// Returns NULL on failure. -MINIZ_STATIC void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint zip_flags); - -#endif // #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -#endif // #ifndef MINIZ_NO_ARCHIVE_APIS - -// ------------------- Low-level Decompression API Definitions - -// Decompression flags used by tinfl_decompress(). -// TINFL_FLAG_PARSE_ZLIB_HEADER: If set, the input has a valid zlib header and ends with an adler32 checksum (it's a valid zlib stream). Otherwise, the input is a raw deflate stream. -// TINFL_FLAG_HAS_MORE_INPUT: If set, there are more input bytes available beyond the end of the supplied input buffer. If clear, the input buffer contains all remaining input. -// TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF: If set, the output buffer is large enough to hold the entire decompressed stream. If clear, the output buffer is at least the size of the dictionary (typically 32KB). -// TINFL_FLAG_COMPUTE_ADLER32: Force adler-32 checksum computation of the decompressed bytes. -enum -{ - TINFL_FLAG_PARSE_ZLIB_HEADER = 1, - TINFL_FLAG_HAS_MORE_INPUT = 2, - TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF = 4, - TINFL_FLAG_COMPUTE_ADLER32 = 8 -}; - -// High level decompression functions: -// tinfl_decompress_mem_to_heap() decompresses a block in memory to a heap block allocated via malloc(). -// On entry: -// pSrc_buf, src_buf_len: Pointer and size of the Deflate or zlib source data to decompress. -// On return: -// Function returns a pointer to the decompressed data, or NULL on failure. -// *pOut_len will be set to the decompressed data's size, which could be larger than src_buf_len on uncompressible data. -// The caller must call mz_free() on the returned block when it's no longer needed. -MINIZ_STATIC void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags); - -// tinfl_decompress_mem_to_mem() decompresses a block in memory to another block in memory. -// Returns TINFL_DECOMPRESS_MEM_TO_MEM_FAILED on failure, or the number of bytes written on success. -#define TINFL_DECOMPRESS_MEM_TO_MEM_FAILED ((size_t)(-1)) -MINIZ_STATIC size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags); - -// tinfl_decompress_mem_to_callback() decompresses a block in memory to an internal 32KB buffer, and a user provided callback function will be called to flush the buffer. -// Returns 1 on success or 0 on failure. -typedef int (*tinfl_put_buf_func_ptr)(const void* pBuf, int len, void *pUser); -MINIZ_STATIC int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); - -struct tinfl_decompressor_tag; typedef struct tinfl_decompressor_tag tinfl_decompressor; - -// Max size of LZ dictionary. -#define TINFL_LZ_DICT_SIZE 32768 - -// Return status. -typedef enum -{ - TINFL_STATUS_BAD_PARAM = -3, - TINFL_STATUS_ADLER32_MISMATCH = -2, - TINFL_STATUS_FAILED = -1, - TINFL_STATUS_DONE = 0, - TINFL_STATUS_NEEDS_MORE_INPUT = 1, - TINFL_STATUS_HAS_MORE_OUTPUT = 2 -} tinfl_status; - -// Initializes the decompressor to its initial state. -#define tinfl_init(r) do { (r)->m_state = 0; } MZ_MACRO_END -#define tinfl_get_adler32(r) (r)->m_check_adler32 - -// Main low-level decompressor coroutine function. This is the only function actually needed for decompression. All the other functions are just high-level helpers for improved usability. -// This is a universal API, i.e. it can be used as a building block to build any desired higher level decompression API. In the limit case, it can be called once per every byte input or output. -MINIZ_STATIC tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags); - -// Internal/private bits follow. -enum -{ - TINFL_MAX_HUFF_TABLES = 3, TINFL_MAX_HUFF_SYMBOLS_0 = 288, TINFL_MAX_HUFF_SYMBOLS_1 = 32, TINFL_MAX_HUFF_SYMBOLS_2 = 19, - TINFL_FAST_LOOKUP_BITS = 10, TINFL_FAST_LOOKUP_SIZE = 1 << TINFL_FAST_LOOKUP_BITS -}; - -typedef struct -{ - mz_uint8 m_code_size[TINFL_MAX_HUFF_SYMBOLS_0]; - mz_int16 m_look_up[TINFL_FAST_LOOKUP_SIZE], m_tree[TINFL_MAX_HUFF_SYMBOLS_0 * 2]; -} tinfl_huff_table; - -#if MINIZ_HAS_64BIT_REGISTERS - #define TINFL_USE_64BIT_BITBUF 1 -#endif - -#if TINFL_USE_64BIT_BITBUF - typedef mz_uint64 tinfl_bit_buf_t; - #define TINFL_BITBUF_SIZE (64) -#else - typedef mz_uint32 tinfl_bit_buf_t; - #define TINFL_BITBUF_SIZE (32) -#endif - -struct tinfl_decompressor_tag -{ - mz_uint32 m_state, m_num_bits, m_zhdr0, m_zhdr1, m_z_adler32, m_final, m_type, m_check_adler32, m_dist, m_counter, m_num_extra, m_table_sizes[TINFL_MAX_HUFF_TABLES]; - tinfl_bit_buf_t m_bit_buf; - size_t m_dist_from_out_buf_start; - tinfl_huff_table m_tables[TINFL_MAX_HUFF_TABLES]; - mz_uint8 m_raw_header[4], m_len_codes[TINFL_MAX_HUFF_SYMBOLS_0 + TINFL_MAX_HUFF_SYMBOLS_1 + 137]; -}; - -// ------------------- Low-level Compression API Definitions - -// Set TDEFL_LESS_MEMORY to 1 to use less memory (compression will be slightly slower, and raw/dynamic blocks will be output more frequently). -#define TDEFL_LESS_MEMORY 0 - -// tdefl_init() compression flags logically OR'd together (low 12 bits contain the max. number of probes per dictionary search): -// TDEFL_DEFAULT_MAX_PROBES: The compressor defaults to 128 dictionary probes per dictionary search. 0=Huffman only, 1=Huffman+LZ (fastest/crap compression), 4095=Huffman+LZ (slowest/best compression). -enum -{ - TDEFL_HUFFMAN_ONLY = 0, TDEFL_DEFAULT_MAX_PROBES = 128, TDEFL_MAX_PROBES_MASK = 0xFFF -}; - -// TDEFL_WRITE_ZLIB_HEADER: If set, the compressor outputs a zlib header before the deflate data, and the Adler-32 of the source data at the end. Otherwise, you'll get raw deflate data. -// TDEFL_COMPUTE_ADLER32: Always compute the adler-32 of the input data (even when not writing zlib headers). -// TDEFL_GREEDY_PARSING_FLAG: Set to use faster greedy parsing, instead of more efficient lazy parsing. -// TDEFL_NONDETERMINISTIC_PARSING_FLAG: Enable to decrease the compressor's initialization time to the minimum, but the output may vary from run to run given the same input (depending on the contents of memory). -// TDEFL_RLE_MATCHES: Only look for RLE matches (matches with a distance of 1) -// TDEFL_FILTER_MATCHES: Discards matches <= 5 chars if enabled. -// TDEFL_FORCE_ALL_STATIC_BLOCKS: Disable usage of optimized Huffman tables. -// TDEFL_FORCE_ALL_RAW_BLOCKS: Only use raw (uncompressed) deflate blocks. -// The low 12 bits are reserved to control the max # of hash probes per dictionary lookup (see TDEFL_MAX_PROBES_MASK). -enum -{ - TDEFL_WRITE_ZLIB_HEADER = 0x01000, - TDEFL_COMPUTE_ADLER32 = 0x02000, - TDEFL_GREEDY_PARSING_FLAG = 0x04000, - TDEFL_NONDETERMINISTIC_PARSING_FLAG = 0x08000, - TDEFL_RLE_MATCHES = 0x10000, - TDEFL_FILTER_MATCHES = 0x20000, - TDEFL_FORCE_ALL_STATIC_BLOCKS = 0x40000, - TDEFL_FORCE_ALL_RAW_BLOCKS = 0x80000 -}; - -// High level compression functions: -// tdefl_compress_mem_to_heap() compresses a block in memory to a heap block allocated via malloc(). -// On entry: -// pSrc_buf, src_buf_len: Pointer and size of source block to compress. -// flags: The max match finder probes (default is 128) logically OR'd against the above flags. Higher probes are slower but improve compression. -// On return: -// Function returns a pointer to the compressed data, or NULL on failure. -// *pOut_len will be set to the compressed data's size, which could be larger than src_buf_len on uncompressible data. -// The caller must free() the returned block when it's no longer needed. -MINIZ_STATIC void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags); - -// tdefl_compress_mem_to_mem() compresses a block in memory to another block in memory. -// Returns 0 on failure. -MINIZ_STATIC size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags); - -// Compresses an image to a compressed PNG file in memory. -// On entry: -// pImage, w, h, and num_chans describe the image to compress. num_chans may be 1, 2, 3, or 4. -// The image pitch in bytes per scanline will be w*num_chans. The leftmost pixel on the top scanline is stored first in memory. -// level may range from [0,10], use MZ_NO_COMPRESSION, MZ_BEST_SPEED, MZ_BEST_COMPRESSION, etc. or a decent default is MZ_DEFAULT_LEVEL -// If flip is true, the image will be flipped on the Y axis (useful for OpenGL apps). -// On return: -// Function returns a pointer to the compressed data, or NULL on failure. -// *pLen_out will be set to the size of the PNG image file. -// The caller must mz_free() the returned heap block (which will typically be larger than *pLen_out) when it's no longer needed. -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out, mz_uint level, mz_bool flip); -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out); - -// Output stream interface. The compressor uses this interface to write compressed data. It'll typically be called TDEFL_OUT_BUF_SIZE at a time. -typedef mz_bool (*tdefl_put_buf_func_ptr)(const void* pBuf, int len, void *pUser); - -// tdefl_compress_mem_to_output() compresses a block to an output stream. The above helpers use this function internally. -MINIZ_STATIC mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); - -enum { TDEFL_MAX_HUFF_TABLES = 3, TDEFL_MAX_HUFF_SYMBOLS_0 = 288, TDEFL_MAX_HUFF_SYMBOLS_1 = 32, TDEFL_MAX_HUFF_SYMBOLS_2 = 19, TDEFL_LZ_DICT_SIZE = 32768, TDEFL_LZ_DICT_SIZE_MASK = TDEFL_LZ_DICT_SIZE - 1, TDEFL_MIN_MATCH_LEN = 3, TDEFL_MAX_MATCH_LEN = 258 }; - -// TDEFL_OUT_BUF_SIZE MUST be large enough to hold a single entire compressed output block (using static/fixed Huffman codes). -#if TDEFL_LESS_MEMORY -enum { TDEFL_LZ_CODE_BUF_SIZE = 24 * 1024, TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13 ) / 10, TDEFL_MAX_HUFF_SYMBOLS = 288, TDEFL_LZ_HASH_BITS = 12, TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS }; -#else -enum { TDEFL_LZ_CODE_BUF_SIZE = 64 * 1024, TDEFL_OUT_BUF_SIZE = (TDEFL_LZ_CODE_BUF_SIZE * 13 ) / 10, TDEFL_MAX_HUFF_SYMBOLS = 288, TDEFL_LZ_HASH_BITS = 15, TDEFL_LEVEL1_HASH_SIZE_MASK = 4095, TDEFL_LZ_HASH_SHIFT = (TDEFL_LZ_HASH_BITS + 2) / 3, TDEFL_LZ_HASH_SIZE = 1 << TDEFL_LZ_HASH_BITS }; -#endif - -// The low-level tdefl functions below may be used directly if the above helper functions aren't flexible enough. The low-level functions don't make any heap allocations, unlike the above helper functions. -typedef enum -{ - TDEFL_STATUS_BAD_PARAM = -2, - TDEFL_STATUS_PUT_BUF_FAILED = -1, - TDEFL_STATUS_OKAY = 0, - TDEFL_STATUS_DONE = 1, -} tdefl_status; - -// Must map to MZ_NO_FLUSH, MZ_SYNC_FLUSH, etc. enums -typedef enum -{ - TDEFL_NO_FLUSH = 0, - TDEFL_SYNC_FLUSH = 2, - TDEFL_FULL_FLUSH = 3, - TDEFL_FINISH = 4 -} tdefl_flush; - -// tdefl's compression state structure. -typedef struct -{ - tdefl_put_buf_func_ptr m_pPut_buf_func; - void *m_pPut_buf_user; - mz_uint m_flags, m_max_probes[2]; - int m_greedy_parsing; - mz_uint m_adler32, m_lookahead_pos, m_lookahead_size, m_dict_size; - mz_uint8 *m_pLZ_code_buf, *m_pLZ_flags, *m_pOutput_buf, *m_pOutput_buf_end; - mz_uint m_num_flags_left, m_total_lz_bytes, m_lz_code_buf_dict_pos, m_bits_in, m_bit_buffer; - mz_uint m_saved_match_dist, m_saved_match_len, m_saved_lit, m_output_flush_ofs, m_output_flush_remaining, m_finished, m_block_index, m_wants_to_finish; - tdefl_status m_prev_return_status; - const void *m_pIn_buf; - void *m_pOut_buf; - size_t *m_pIn_buf_size, *m_pOut_buf_size; - tdefl_flush m_flush; - const mz_uint8 *m_pSrc; - size_t m_src_buf_left, m_out_buf_ofs; - mz_uint8 m_dict[TDEFL_LZ_DICT_SIZE + TDEFL_MAX_MATCH_LEN - 1]; - mz_uint16 m_huff_count[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint16 m_huff_codes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_huff_code_sizes[TDEFL_MAX_HUFF_TABLES][TDEFL_MAX_HUFF_SYMBOLS]; - mz_uint8 m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE]; - mz_uint16 m_next[TDEFL_LZ_DICT_SIZE]; - mz_uint16 m_hash[TDEFL_LZ_HASH_SIZE]; - mz_uint8 m_output_buf[TDEFL_OUT_BUF_SIZE]; -} tdefl_compressor; - -// Initializes the compressor. -// There is no corresponding deinit() function because the tdefl API's do not dynamically allocate memory. -// pBut_buf_func: If NULL, output data will be supplied to the specified callback. In this case, the user should call the tdefl_compress_buffer() API for compression. -// If pBut_buf_func is NULL the user should always call the tdefl_compress() API. -// flags: See the above enums (TDEFL_HUFFMAN_ONLY, TDEFL_WRITE_ZLIB_HEADER, etc.) -MINIZ_STATIC tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags); - -// Compresses a block of data, consuming as much of the specified input buffer as possible, and writing as much compressed data to the specified output buffer as possible. -MINIZ_STATIC tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush); - -// tdefl_compress_buffer() is only usable when the tdefl_init() is called with a non-NULL tdefl_put_buf_func_ptr. -// tdefl_compress_buffer() always consumes the entire input buffer. -MINIZ_STATIC tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush); - -MINIZ_STATIC tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d); -MINIZ_STATIC mz_uint32 tdefl_get_adler32(tdefl_compressor *d); - -// Can't use tdefl_create_comp_flags_from_zip_params if MINIZ_NO_ZLIB_APIS isn't defined, because it uses some of its macros. -#ifndef MINIZ_NO_ZLIB_APIS -// Create tdefl_compress() flags given zlib-style compression parameters. -// level may range from [0,10] (where 10 is absolute max compression, but may be much slower on some files) -// window_bits may be -15 (raw deflate) or 15 (zlib) -// strategy may be either MZ_DEFAULT_STRATEGY, MZ_FILTERED, MZ_HUFFMAN_ONLY, MZ_RLE, or MZ_FIXED -MINIZ_STATIC mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy); -#endif // #ifndef MINIZ_NO_ZLIB_APIS - -#ifdef __cplusplus -} -#endif - -#endif // MINIZ_HEADER_INCLUDED - -// ------------------- End of Header: Implementation follows. (If you only want the header, define MINIZ_HEADER_FILE_ONLY.) - -#ifndef MINIZ_HEADER_FILE_ONLY - -typedef unsigned char mz_validate_uint16[sizeof(mz_uint16)==2 ? 1 : -1]; -typedef unsigned char mz_validate_uint32[sizeof(mz_uint32)==4 ? 1 : -1]; -typedef unsigned char mz_validate_uint64[sizeof(mz_uint64)==8 ? 1 : -1]; - -/*#include */ - -#ifndef MZ_ASSERT -#include -#define MZ_ASSERT(x) assert(x) -#endif - -#ifdef MINIZ_NO_MALLOC - #define MZ_MALLOC(x) NULL - #define MZ_FREE(x) (void)x, ((void)0) - #define MZ_REALLOC(p, x) NULL -#elif defined(MINIZ_SDL_MALLOC) - #define MZ_MALLOC(x) SDL_malloc(x) - #define MZ_FREE(x) SDL_free(x) - #define MZ_REALLOC(p, x) SDL_realloc(p, x) -#else - #define MZ_MALLOC(x) malloc(x) - #define MZ_FREE(x) free(x) - #define MZ_REALLOC(p, x) realloc(p, x) -#endif - -#define MZ_MAX(a,b) (((a)>(b))?(a):(b)) -#define MZ_MIN(a,b) (((a)<(b))?(a):(b)) -#define MZ_CLEAR_OBJ(obj) memset(&(obj), 0, sizeof(obj)) - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - #define MZ_READ_LE16(p) *((const mz_uint16 *)(p)) - #define MZ_READ_LE32(p) *((const mz_uint32 *)(p)) -#else - #define MZ_READ_LE16(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U)) - #define MZ_READ_LE32(p) ((mz_uint32)(((const mz_uint8 *)(p))[0]) | ((mz_uint32)(((const mz_uint8 *)(p))[1]) << 8U) | ((mz_uint32)(((const mz_uint8 *)(p))[2]) << 16U) | ((mz_uint32)(((const mz_uint8 *)(p))[3]) << 24U)) -#endif - -#ifdef _MSC_VER - #define MZ_FORCEINLINE __forceinline -#elif defined(__GNUC__) - #define MZ_FORCEINLINE inline __attribute__((__always_inline__)) -#else - #define MZ_FORCEINLINE inline -#endif - -#ifdef __cplusplus - extern "C" { -#endif - -// ------------------- zlib-style API's - -mz_ulong mz_adler32(mz_ulong adler, const unsigned char *ptr, size_t buf_len) -{ - mz_uint32 i, s1 = (mz_uint32)(adler & 0xffff), s2 = (mz_uint32)(adler >> 16); size_t block_len = buf_len % 5552; - if (!ptr) return MZ_ADLER32_INIT; - while (buf_len) { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) { - s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1; - } - for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552; - } - return (s2 << 16) + s1; -} - -// Karl Malbrain's compact CRC-32. See "A compact CCITT crc16 and crc32 C implementation that balances processor cache usage against speed": http://www.geocities.com/malbrain/ -mz_ulong mz_crc32(mz_ulong crc, const mz_uint8 *ptr, size_t buf_len) -{ - static const mz_uint32 s_crc32[16] = { 0, 0x1db71064, 0x3b6e20c8, 0x26d930ac, 0x76dc4190, 0x6b6b51f4, 0x4db26158, 0x5005713c, - 0xedb88320, 0xf00f9344, 0xd6d6a3e8, 0xcb61b38c, 0x9b64c2b0, 0x86d3d2d4, 0xa00ae278, 0xbdbdf21c }; - mz_uint32 crcu32 = (mz_uint32)crc; - if (!ptr) return MZ_CRC32_INIT; - crcu32 = ~crcu32; while (buf_len--) { mz_uint8 b = *ptr++; crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b & 0xF)]; crcu32 = (crcu32 >> 4) ^ s_crc32[(crcu32 & 0xF) ^ (b >> 4)]; } - return ~crcu32; -} - -MINIZ_STATIC void mz_free(void *p) -{ - MZ_FREE(p); -} - -#ifndef MINIZ_NO_ZLIB_APIS - -static void *def_alloc_func(void *opaque, size_t items, size_t size) { (void)opaque, (void)items, (void)size; return MZ_MALLOC(items * size); } -static void def_free_func(void *opaque, void *address) { (void)opaque, (void)address; MZ_FREE(address); } -static void *def_realloc_func(void *opaque, void *address, size_t items, size_t size) { (void)opaque, (void)address, (void)items, (void)size; return MZ_REALLOC(address, items * size); } - -const char *mz_version(void) -{ - return MZ_VERSION; -} - -int mz_deflateInit(mz_streamp pStream, int level) -{ - return mz_deflateInit2(pStream, level, MZ_DEFLATED, MZ_DEFAULT_WINDOW_BITS, 9, MZ_DEFAULT_STRATEGY); -} - -int mz_deflateInit2(mz_streamp pStream, int level, int method, int window_bits, int mem_level, int strategy) -{ - tdefl_compressor *pComp; - mz_uint comp_flags = TDEFL_COMPUTE_ADLER32 | tdefl_create_comp_flags_from_zip_params(level, window_bits, strategy); - - if (!pStream) return MZ_STREAM_ERROR; - if ((method != MZ_DEFLATED) || ((mem_level < 1) || (mem_level > 9)) || ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS))) return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = MZ_ADLER32_INIT; - pStream->msg = NULL; - pStream->reserved = 0; - pStream->total_in = 0; - pStream->total_out = 0; - if (!pStream->zalloc) pStream->zalloc = def_alloc_func; - if (!pStream->zfree) pStream->zfree = def_free_func; - - pComp = (tdefl_compressor *)pStream->zalloc(pStream->opaque, 1, sizeof(tdefl_compressor)); - if (!pComp) - return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pComp; - - if (tdefl_init(pComp, NULL, NULL, comp_flags) != TDEFL_STATUS_OKAY) - { - mz_deflateEnd(pStream); - return MZ_PARAM_ERROR; - } - - return MZ_OK; -} - -int mz_deflateReset(mz_streamp pStream) -{ - if ((!pStream) || (!pStream->state) || (!pStream->zalloc) || (!pStream->zfree)) return MZ_STREAM_ERROR; - pStream->total_in = pStream->total_out = 0; - tdefl_init((tdefl_compressor*)pStream->state, NULL, NULL, ((tdefl_compressor*)pStream->state)->m_flags); - return MZ_OK; -} - -int mz_deflate(mz_streamp pStream, int flush) -{ - size_t in_bytes, out_bytes; - mz_ulong orig_total_in, orig_total_out; - int mz_status = MZ_OK; - - if ((!pStream) || (!pStream->state) || (flush < 0) || (flush > MZ_FINISH) || (!pStream->next_out)) return MZ_STREAM_ERROR; - if (!pStream->avail_out) return MZ_BUF_ERROR; - - if (flush == MZ_PARTIAL_FLUSH) flush = MZ_SYNC_FLUSH; - - if (((tdefl_compressor*)pStream->state)->m_prev_return_status == TDEFL_STATUS_DONE) - return (flush == MZ_FINISH) ? MZ_STREAM_END : MZ_BUF_ERROR; - - orig_total_in = pStream->total_in; orig_total_out = pStream->total_out; - for ( ; ; ) - { - tdefl_status defl_status; - in_bytes = pStream->avail_in; out_bytes = pStream->avail_out; - - defl_status = tdefl_compress((tdefl_compressor*)pStream->state, pStream->next_in, &in_bytes, pStream->next_out, &out_bytes, (tdefl_flush)flush); - pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; pStream->adler = tdefl_get_adler32((tdefl_compressor*)pStream->state); - - pStream->next_out += (mz_uint)out_bytes; pStream->avail_out -= (mz_uint)out_bytes; - pStream->total_out += (mz_uint)out_bytes; - - if (defl_status < 0) - { - mz_status = MZ_STREAM_ERROR; - break; - } - else if (defl_status == TDEFL_STATUS_DONE) - { - mz_status = MZ_STREAM_END; - break; - } - else if (!pStream->avail_out) - break; - else if ((!pStream->avail_in) && (flush != MZ_FINISH)) - { - if ((flush) || (pStream->total_in != orig_total_in) || (pStream->total_out != orig_total_out)) - break; - return MZ_BUF_ERROR; // Can't make forward progress without some input. - } - } - return mz_status; -} - -int mz_deflateEnd(mz_streamp pStream) -{ - if (!pStream) return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} - -mz_ulong mz_deflateBound(mz_streamp pStream, mz_ulong source_len) -{ - (void)pStream; - // This is really over conservative. (And lame, but it's actually pretty tricky to compute a true upper bound given the way tdefl's blocking works.) - return MZ_MAX(128 + (source_len * 110) / 100, 128 + source_len + ((source_len / (31 * 1024)) + 1) * 5); -} - -int mz_compress2(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len, int level) -{ - int status; - mz_stream stream; - memset(&stream, 0, sizeof(stream)); - - // In case mz_ulong is 64-bits (argh I hate longs). - if ((source_len | *pDest_len) > 0xFFFFFFFFU) return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_deflateInit(&stream, level); - if (status != MZ_OK) return status; - - status = mz_deflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_deflateEnd(&stream); - return (status == MZ_OK) ? MZ_BUF_ERROR : status; - } - - *pDest_len = stream.total_out; - return mz_deflateEnd(&stream); -} - -int mz_compress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - return mz_compress2(pDest, pDest_len, pSource, source_len, MZ_DEFAULT_COMPRESSION); -} - -mz_ulong mz_compressBound(mz_ulong source_len) -{ - return mz_deflateBound(NULL, source_len); -} - -typedef struct -{ - tinfl_decompressor m_decomp; - mz_uint m_dict_ofs, m_dict_avail, m_first_call, m_has_flushed; int m_window_bits; - mz_uint8 m_dict[TINFL_LZ_DICT_SIZE]; - tinfl_status m_last_status; -} inflate_state; - -int mz_inflateInit2(mz_streamp pStream, int window_bits) -{ - inflate_state *pDecomp; - if (!pStream) return MZ_STREAM_ERROR; - if ((window_bits != MZ_DEFAULT_WINDOW_BITS) && (-window_bits != MZ_DEFAULT_WINDOW_BITS)) return MZ_PARAM_ERROR; - - pStream->data_type = 0; - pStream->adler = 0; - pStream->msg = NULL; - pStream->total_in = 0; - pStream->total_out = 0; - pStream->reserved = 0; - if (!pStream->zalloc) pStream->zalloc = def_alloc_func; - if (!pStream->zfree) pStream->zfree = def_free_func; - - pDecomp = (inflate_state*)pStream->zalloc(pStream->opaque, 1, sizeof(inflate_state)); - if (!pDecomp) return MZ_MEM_ERROR; - - pStream->state = (struct mz_internal_state *)pDecomp; - - tinfl_init(&pDecomp->m_decomp); - pDecomp->m_dict_ofs = 0; - pDecomp->m_dict_avail = 0; - pDecomp->m_last_status = TINFL_STATUS_NEEDS_MORE_INPUT; - pDecomp->m_first_call = 1; - pDecomp->m_has_flushed = 0; - pDecomp->m_window_bits = window_bits; - - return MZ_OK; -} - -int mz_inflateInit(mz_streamp pStream) -{ - return mz_inflateInit2(pStream, MZ_DEFAULT_WINDOW_BITS); -} - -int mz_inflate(mz_streamp pStream, int flush) -{ - inflate_state* pState; - mz_uint n, first_call, decomp_flags = TINFL_FLAG_COMPUTE_ADLER32; - size_t in_bytes, out_bytes, orig_avail_in; - tinfl_status status; - - if ((!pStream) || (!pStream->state)) return MZ_STREAM_ERROR; - if (flush == MZ_PARTIAL_FLUSH) flush = MZ_SYNC_FLUSH; - if ((flush) && (flush != MZ_SYNC_FLUSH) && (flush != MZ_FINISH)) return MZ_STREAM_ERROR; - - pState = (inflate_state*)pStream->state; - if (pState->m_window_bits > 0) decomp_flags |= TINFL_FLAG_PARSE_ZLIB_HEADER; - orig_avail_in = pStream->avail_in; - - first_call = pState->m_first_call; pState->m_first_call = 0; - if (pState->m_last_status < 0) return MZ_DATA_ERROR; - - if (pState->m_has_flushed && (flush != MZ_FINISH)) return MZ_STREAM_ERROR; - pState->m_has_flushed |= (flush == MZ_FINISH); - - if ((flush == MZ_FINISH) && (first_call)) - { - // MZ_FINISH on the first call implies that the input and output buffers are large enough to hold the entire compressed/decompressed file. - decomp_flags |= TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF; - in_bytes = pStream->avail_in; out_bytes = pStream->avail_out; - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pStream->next_out, pStream->next_out, &out_bytes, decomp_flags); - pState->m_last_status = status; - pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes; pStream->total_in += (mz_uint)in_bytes; - pStream->adler = tinfl_get_adler32(&pState->m_decomp); - pStream->next_out += (mz_uint)out_bytes; pStream->avail_out -= (mz_uint)out_bytes; pStream->total_out += (mz_uint)out_bytes; - - if (status < 0) - return MZ_DATA_ERROR; - else if (status != TINFL_STATUS_DONE) - { - pState->m_last_status = TINFL_STATUS_FAILED; - return MZ_BUF_ERROR; - } - return MZ_STREAM_END; - } - // flush != MZ_FINISH then we must assume there's more input. - if (flush != MZ_FINISH) decomp_flags |= TINFL_FLAG_HAS_MORE_INPUT; - - if (pState->m_dict_avail) - { - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; pStream->avail_out -= n; pStream->total_out += n; - pState->m_dict_avail -= n; pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - return ((pState->m_last_status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; - } - - for ( ; ; ) - { - in_bytes = pStream->avail_in; - out_bytes = TINFL_LZ_DICT_SIZE - pState->m_dict_ofs; - - status = tinfl_decompress(&pState->m_decomp, pStream->next_in, &in_bytes, pState->m_dict, pState->m_dict + pState->m_dict_ofs, &out_bytes, decomp_flags); - pState->m_last_status = status; - - pStream->next_in += (mz_uint)in_bytes; pStream->avail_in -= (mz_uint)in_bytes; - pStream->total_in += (mz_uint)in_bytes; pStream->adler = tinfl_get_adler32(&pState->m_decomp); - - pState->m_dict_avail = (mz_uint)out_bytes; - - n = MZ_MIN(pState->m_dict_avail, pStream->avail_out); - memcpy(pStream->next_out, pState->m_dict + pState->m_dict_ofs, n); - pStream->next_out += n; pStream->avail_out -= n; pStream->total_out += n; - pState->m_dict_avail -= n; pState->m_dict_ofs = (pState->m_dict_ofs + n) & (TINFL_LZ_DICT_SIZE - 1); - - if (status < 0) - return MZ_DATA_ERROR; // Stream is corrupted (there could be some uncompressed data left in the output dictionary - oh well). - else if ((status == TINFL_STATUS_NEEDS_MORE_INPUT) && (!orig_avail_in)) - return MZ_BUF_ERROR; // Signal caller that we can't make forward progress without supplying more input or by setting flush to MZ_FINISH. - else if (flush == MZ_FINISH) - { - // The output buffer MUST be large to hold the remaining uncompressed data when flush==MZ_FINISH. - if (status == TINFL_STATUS_DONE) - return pState->m_dict_avail ? MZ_BUF_ERROR : MZ_STREAM_END; - // status here must be TINFL_STATUS_HAS_MORE_OUTPUT, which means there's at least 1 more byte on the way. If there's no more room left in the output buffer then something is wrong. - else if (!pStream->avail_out) - return MZ_BUF_ERROR; - } - else if ((status == TINFL_STATUS_DONE) || (!pStream->avail_in) || (!pStream->avail_out) || (pState->m_dict_avail)) - break; - } - - return ((status == TINFL_STATUS_DONE) && (!pState->m_dict_avail)) ? MZ_STREAM_END : MZ_OK; -} - -int mz_inflateEnd(mz_streamp pStream) -{ - if (!pStream) - return MZ_STREAM_ERROR; - if (pStream->state) - { - pStream->zfree(pStream->opaque, pStream->state); - pStream->state = NULL; - } - return MZ_OK; -} - -int mz_uncompress(unsigned char *pDest, mz_ulong *pDest_len, const unsigned char *pSource, mz_ulong source_len) -{ - mz_stream stream; - int status; - memset(&stream, 0, sizeof(stream)); - - // In case mz_ulong is 64-bits (argh I hate longs). - if ((source_len | *pDest_len) > 0xFFFFFFFFU) return MZ_PARAM_ERROR; - - stream.next_in = pSource; - stream.avail_in = (mz_uint32)source_len; - stream.next_out = pDest; - stream.avail_out = (mz_uint32)*pDest_len; - - status = mz_inflateInit(&stream); - if (status != MZ_OK) - return status; - - status = mz_inflate(&stream, MZ_FINISH); - if (status != MZ_STREAM_END) - { - mz_inflateEnd(&stream); - return ((status == MZ_BUF_ERROR) && (!stream.avail_in)) ? MZ_DATA_ERROR : status; - } - *pDest_len = stream.total_out; - - return mz_inflateEnd(&stream); -} - -const char *mz_error(int err) -{ - static struct { int m_err; const char *m_pDesc; } s_error_descs[] = - { - { MZ_OK, "" }, { MZ_STREAM_END, "stream end" }, { MZ_NEED_DICT, "need dictionary" }, { MZ_ERRNO, "file error" }, { MZ_STREAM_ERROR, "stream error" }, - { MZ_DATA_ERROR, "data error" }, { MZ_MEM_ERROR, "out of memory" }, { MZ_BUF_ERROR, "buf error" }, { MZ_VERSION_ERROR, "version error" }, { MZ_PARAM_ERROR, "parameter error" } - }; - mz_uint i; for (i = 0; i < sizeof(s_error_descs) / sizeof(s_error_descs[0]); ++i) if (s_error_descs[i].m_err == err) return s_error_descs[i].m_pDesc; - return NULL; -} - -#endif //MINIZ_NO_ZLIB_APIS - -// ------------------- Low-level Decompression (completely independent from all compression API's) - -#define TINFL_MEMCPY(d, s, l) memcpy(d, s, l) -#define TINFL_MEMSET(p, c, l) memset(p, c, l) - -#define TINFL_CR_BEGIN switch(r->m_state) { case 0: -#define TINFL_CR_RETURN(state_index, result) do { status = result; r->m_state = state_index; goto common_exit; case state_index:; } MZ_MACRO_END -#define TINFL_CR_RETURN_FOREVER(state_index, result) do { for ( ; ; ) { TINFL_CR_RETURN(state_index, result); } } MZ_MACRO_END -#define TINFL_CR_FINISH } - -// TODO: If the caller has indicated that there's no more input, and we attempt to read beyond the input buf, then something is wrong with the input because the inflator never -// reads ahead more than it needs to. Currently TINFL_GET_BYTE() pads the end of the stream with 0's in this scenario. -#define TINFL_GET_BYTE(state_index, c) do { \ - if (pIn_buf_cur >= pIn_buf_end) { \ - for ( ; ; ) { \ - if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) { \ - TINFL_CR_RETURN(state_index, TINFL_STATUS_NEEDS_MORE_INPUT); \ - if (pIn_buf_cur < pIn_buf_end) { \ - c = *pIn_buf_cur++; \ - break; \ - } \ - } else { \ - c = 0; \ - break; \ - } \ - } \ - } else c = *pIn_buf_cur++; } MZ_MACRO_END - -#define TINFL_NEED_BITS(state_index, n) do { mz_uint c; TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; } while (num_bits < (mz_uint)(n)) -#define TINFL_SKIP_BITS(state_index, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END -#define TINFL_GET_BITS(state_index, b, n) do { if (num_bits < (mz_uint)(n)) { TINFL_NEED_BITS(state_index, n); } b = bit_buf & ((1 << (n)) - 1); bit_buf >>= (n); num_bits -= (n); } MZ_MACRO_END - -// TINFL_HUFF_BITBUF_FILL() is only used rarely, when the number of bytes remaining in the input buffer falls below 2. -// It reads just enough bytes from the input stream that are needed to decode the next Huffman code (and absolutely no more). It works by trying to fully decode a -// Huffman code by using whatever bits are currently present in the bit buffer. If this fails, it reads another byte, and tries again until it succeeds or until the -// bit buffer contains >=15 bits (deflate's max. Huffman code size). -#define TINFL_HUFF_BITBUF_FILL(state_index, pHuff) \ - do { \ - temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]; \ - if (temp >= 0) { \ - code_len = temp >> 9; \ - if ((code_len) && (num_bits >= code_len)) \ - break; \ - } else if (num_bits > TINFL_FAST_LOOKUP_BITS) { \ - code_len = TINFL_FAST_LOOKUP_BITS; \ - do { \ - temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; \ - } while ((temp < 0) && (num_bits >= (code_len + 1))); if (temp >= 0) break; \ - } TINFL_GET_BYTE(state_index, c); bit_buf |= (((tinfl_bit_buf_t)c) << num_bits); num_bits += 8; \ - } while (num_bits < 15); - -// TINFL_HUFF_DECODE() decodes the next Huffman coded symbol. It's more complex than you would initially expect because the zlib API expects the decompressor to never read -// beyond the final byte of the deflate stream. (In other words, when this macro wants to read another byte from the input, it REALLY needs another byte in order to fully -// decode the next Huffman code.) Handling this properly is particularly important on raw deflate (non-zlib) streams, which aren't followed by a byte aligned adler-32. -// The slow path is only executed at the very end of the input buffer. -#define TINFL_HUFF_DECODE(state_index, sym, pHuff) do { \ - int temp; mz_uint code_len, c; \ - if (num_bits < 15) { \ - if ((pIn_buf_end - pIn_buf_cur) < 2) { \ - TINFL_HUFF_BITBUF_FILL(state_index, pHuff); \ - } else { \ - bit_buf |= (((tinfl_bit_buf_t)pIn_buf_cur[0]) << num_bits) | (((tinfl_bit_buf_t)pIn_buf_cur[1]) << (num_bits + 8)); pIn_buf_cur += 2; num_bits += 16; \ - } \ - } \ - if ((temp = (pHuff)->m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) \ - code_len = temp >> 9, temp &= 511; \ - else { \ - code_len = TINFL_FAST_LOOKUP_BITS; do { temp = (pHuff)->m_tree[~temp + ((bit_buf >> code_len++) & 1)]; } while (temp < 0); \ - } sym = temp; bit_buf >>= code_len; num_bits -= code_len; } MZ_MACRO_END - -tinfl_status tinfl_decompress(tinfl_decompressor *r, const mz_uint8 *pIn_buf_next, size_t *pIn_buf_size, mz_uint8 *pOut_buf_start, mz_uint8 *pOut_buf_next, size_t *pOut_buf_size, const mz_uint32 decomp_flags) -{ - static const int s_length_base[31] = { 3,4,5,6,7,8,9,10,11,13, 15,17,19,23,27,31,35,43,51,59, 67,83,99,115,131,163,195,227,258,0,0 }; - static const int s_length_extra[31]= { 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; - static const int s_dist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, 257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; - static const int s_dist_extra[32] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; - static const mz_uint8 s_length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; - static const int s_min_table_sizes[3] = { 257, 1, 4 }; - - tinfl_status status = TINFL_STATUS_FAILED; mz_uint32 num_bits, dist, counter, num_extra; tinfl_bit_buf_t bit_buf; - const mz_uint8 *pIn_buf_cur = pIn_buf_next, *const pIn_buf_end = pIn_buf_next + *pIn_buf_size; - mz_uint8 *pOut_buf_cur = pOut_buf_next, *const pOut_buf_end = pOut_buf_next + *pOut_buf_size; - size_t out_buf_size_mask = (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF) ? (size_t)-1 : ((pOut_buf_next - pOut_buf_start) + *pOut_buf_size) - 1, dist_from_out_buf_start; - - // Ensure the output buffer's size is a power of 2, unless the output buffer is large enough to hold the entire output file (in which case it doesn't matter). - if (((out_buf_size_mask + 1) & out_buf_size_mask) || (pOut_buf_next < pOut_buf_start)) { *pIn_buf_size = *pOut_buf_size = 0; return TINFL_STATUS_BAD_PARAM; } - - num_bits = r->m_num_bits; bit_buf = r->m_bit_buf; dist = r->m_dist; counter = r->m_counter; num_extra = r->m_num_extra; dist_from_out_buf_start = r->m_dist_from_out_buf_start; - TINFL_CR_BEGIN - - bit_buf = num_bits = dist = counter = num_extra = r->m_zhdr0 = r->m_zhdr1 = 0; r->m_z_adler32 = r->m_check_adler32 = 1; - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - TINFL_GET_BYTE(1, r->m_zhdr0); TINFL_GET_BYTE(2, r->m_zhdr1); - counter = (((r->m_zhdr0 * 256 + r->m_zhdr1) % 31 != 0) || (r->m_zhdr1 & 32) || ((r->m_zhdr0 & 15) != 8)); - if (!(decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) counter |= (((1U << (8U + (r->m_zhdr0 >> 4))) > 32768U) || ((out_buf_size_mask + 1) < (size_t)(1U << (8U + (r->m_zhdr0 >> 4))))); - if (counter) { TINFL_CR_RETURN_FOREVER(36, TINFL_STATUS_FAILED); } - } - - do - { - TINFL_GET_BITS(3, r->m_final, 3); r->m_type = r->m_final >> 1; - if (r->m_type == 0) - { - TINFL_SKIP_BITS(5, num_bits & 7); - for (counter = 0; counter < 4; ++counter) { if (num_bits) TINFL_GET_BITS(6, r->m_raw_header[counter], 8); else TINFL_GET_BYTE(7, r->m_raw_header[counter]); } - if ((counter = (r->m_raw_header[0] | (r->m_raw_header[1] << 8))) != (mz_uint)(0xFFFF ^ (r->m_raw_header[2] | (r->m_raw_header[3] << 8)))) { TINFL_CR_RETURN_FOREVER(39, TINFL_STATUS_FAILED); } - while ((counter) && (num_bits)) - { - TINFL_GET_BITS(51, dist, 8); - while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(52, TINFL_STATUS_HAS_MORE_OUTPUT); } - *pOut_buf_cur++ = (mz_uint8)dist; - counter--; - } - while (counter) - { - size_t n; while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(9, TINFL_STATUS_HAS_MORE_OUTPUT); } - while (pIn_buf_cur >= pIn_buf_end) - { - if (decomp_flags & TINFL_FLAG_HAS_MORE_INPUT) - { - TINFL_CR_RETURN(38, TINFL_STATUS_NEEDS_MORE_INPUT); - } - else - { - TINFL_CR_RETURN_FOREVER(40, TINFL_STATUS_FAILED); - } - } - n = MZ_MIN(MZ_MIN((size_t)(pOut_buf_end - pOut_buf_cur), (size_t)(pIn_buf_end - pIn_buf_cur)), counter); - TINFL_MEMCPY(pOut_buf_cur, pIn_buf_cur, n); pIn_buf_cur += n; pOut_buf_cur += n; counter -= (mz_uint)n; - } - } - else if (r->m_type == 3) - { - TINFL_CR_RETURN_FOREVER(10, TINFL_STATUS_FAILED); - } - else - { - if (r->m_type == 1) - { - mz_uint8 *p = r->m_tables[0].m_code_size; mz_uint i; - r->m_table_sizes[0] = 288; r->m_table_sizes[1] = 32; TINFL_MEMSET(r->m_tables[1].m_code_size, 5, 32); - for ( i = 0; i <= 143; ++i) *p++ = 8; for ( ; i <= 255; ++i) *p++ = 9; for ( ; i <= 279; ++i) *p++ = 7; for ( ; i <= 287; ++i) *p++ = 8; - } - else - { - for (counter = 0; counter < 3; counter++) { TINFL_GET_BITS(11, r->m_table_sizes[counter], "\05\05\04"[counter]); r->m_table_sizes[counter] += s_min_table_sizes[counter]; } - MZ_CLEAR_OBJ(r->m_tables[2].m_code_size); for (counter = 0; counter < r->m_table_sizes[2]; counter++) { mz_uint s; TINFL_GET_BITS(14, s, 3); r->m_tables[2].m_code_size[s_length_dezigzag[counter]] = (mz_uint8)s; } - r->m_table_sizes[2] = 19; - } - for ( ; (int)r->m_type >= 0; r->m_type--) - { - int tree_next, tree_cur; tinfl_huff_table *pTable; - mz_uint i, j, used_syms, total, sym_index, next_code[17], total_syms[16]; pTable = &r->m_tables[r->m_type]; MZ_CLEAR_OBJ(total_syms); MZ_CLEAR_OBJ(pTable->m_look_up); MZ_CLEAR_OBJ(pTable->m_tree); - for (i = 0; i < r->m_table_sizes[r->m_type]; ++i) total_syms[pTable->m_code_size[i]]++; - used_syms = 0, total = 0; next_code[0] = next_code[1] = 0; - for (i = 1; i <= 15; ++i) { used_syms += total_syms[i]; next_code[i + 1] = (total = ((total + total_syms[i]) << 1)); } - if ((65536 != total) && (used_syms > 1)) - { - TINFL_CR_RETURN_FOREVER(35, TINFL_STATUS_FAILED); - } - for (tree_next = -1, sym_index = 0; sym_index < r->m_table_sizes[r->m_type]; ++sym_index) - { - mz_uint rev_code = 0, l, cur_code, code_size = pTable->m_code_size[sym_index]; if (!code_size) continue; - cur_code = next_code[code_size]++; for (l = code_size; l > 0; l--, cur_code >>= 1) rev_code = (rev_code << 1) | (cur_code & 1); - if (code_size <= TINFL_FAST_LOOKUP_BITS) { mz_int16 k = (mz_int16)((code_size << 9) | sym_index); while (rev_code < TINFL_FAST_LOOKUP_SIZE) { pTable->m_look_up[rev_code] = k; rev_code += (1 << code_size); } continue; } - if (0 == (tree_cur = pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)])) { pTable->m_look_up[rev_code & (TINFL_FAST_LOOKUP_SIZE - 1)] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } - rev_code >>= (TINFL_FAST_LOOKUP_BITS - 1); - for (j = code_size; j > (TINFL_FAST_LOOKUP_BITS + 1); j--) - { - tree_cur -= ((rev_code >>= 1) & 1); - if (!pTable->m_tree[-tree_cur - 1]) { pTable->m_tree[-tree_cur - 1] = (mz_int16)tree_next; tree_cur = tree_next; tree_next -= 2; } else tree_cur = pTable->m_tree[-tree_cur - 1]; - } - tree_cur -= ((rev_code >>= 1) & 1); pTable->m_tree[-tree_cur - 1] = (mz_int16)sym_index; - } - if (r->m_type == 2) - { - for (counter = 0; counter < (r->m_table_sizes[0] + r->m_table_sizes[1]); ) - { - mz_uint s; TINFL_HUFF_DECODE(16, dist, &r->m_tables[2]); if (dist < 16) { r->m_len_codes[counter++] = (mz_uint8)dist; continue; } - if ((dist == 16) && (!counter)) - { - TINFL_CR_RETURN_FOREVER(17, TINFL_STATUS_FAILED); - } - num_extra = "\02\03\07"[dist - 16]; TINFL_GET_BITS(18, s, num_extra); s += "\03\03\013"[dist - 16]; - TINFL_MEMSET(r->m_len_codes + counter, (dist == 16) ? r->m_len_codes[counter - 1] : 0, s); counter += s; - } - if ((r->m_table_sizes[0] + r->m_table_sizes[1]) != counter) - { - TINFL_CR_RETURN_FOREVER(21, TINFL_STATUS_FAILED); - } - TINFL_MEMCPY(r->m_tables[0].m_code_size, r->m_len_codes, r->m_table_sizes[0]); TINFL_MEMCPY(r->m_tables[1].m_code_size, r->m_len_codes + r->m_table_sizes[0], r->m_table_sizes[1]); - } - } - for ( ; ; ) - { - mz_uint8 *pSrc; - for ( ; ; ) - { - if (((pIn_buf_end - pIn_buf_cur) < 4) || ((pOut_buf_end - pOut_buf_cur) < 2)) - { - TINFL_HUFF_DECODE(23, counter, &r->m_tables[0]); - if (counter >= 256) - break; - while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(24, TINFL_STATUS_HAS_MORE_OUTPUT); } - *pOut_buf_cur++ = (mz_uint8)counter; - } - else - { - int sym2; mz_uint code_len; -#if TINFL_USE_64BIT_BITBUF - if (num_bits < 30) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE32(pIn_buf_cur)) << num_bits); pIn_buf_cur += 4; num_bits += 32; } -#else - if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0); - } - counter = sym2; bit_buf >>= code_len; num_bits -= code_len; - if (counter & 256) - break; - -#if !TINFL_USE_64BIT_BITBUF - if (num_bits < 15) { bit_buf |= (((tinfl_bit_buf_t)MZ_READ_LE16(pIn_buf_cur)) << num_bits); pIn_buf_cur += 2; num_bits += 16; } -#endif - if ((sym2 = r->m_tables[0].m_look_up[bit_buf & (TINFL_FAST_LOOKUP_SIZE - 1)]) >= 0) - code_len = sym2 >> 9; - else - { - code_len = TINFL_FAST_LOOKUP_BITS; do { sym2 = r->m_tables[0].m_tree[~sym2 + ((bit_buf >> code_len++) & 1)]; } while (sym2 < 0); - } - bit_buf >>= code_len; num_bits -= code_len; - - pOut_buf_cur[0] = (mz_uint8)counter; - if (sym2 & 256) - { - pOut_buf_cur++; - counter = sym2; - break; - } - pOut_buf_cur[1] = (mz_uint8)sym2; - pOut_buf_cur += 2; - } - } - if ((counter &= 511) == 256) break; - - num_extra = s_length_extra[counter - 257]; counter = s_length_base[counter - 257]; - if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(25, extra_bits, num_extra); counter += extra_bits; } - - TINFL_HUFF_DECODE(26, dist, &r->m_tables[1]); - num_extra = s_dist_extra[dist]; dist = s_dist_base[dist]; - if (num_extra) { mz_uint extra_bits; TINFL_GET_BITS(27, extra_bits, num_extra); dist += extra_bits; } - - dist_from_out_buf_start = pOut_buf_cur - pOut_buf_start; - if ((dist > dist_from_out_buf_start) && (decomp_flags & TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF)) - { - TINFL_CR_RETURN_FOREVER(37, TINFL_STATUS_FAILED); - } - - pSrc = pOut_buf_start + ((dist_from_out_buf_start - dist) & out_buf_size_mask); - - if ((MZ_MAX(pOut_buf_cur, pSrc) + counter) > pOut_buf_end) - { - while (counter--) - { - while (pOut_buf_cur >= pOut_buf_end) { TINFL_CR_RETURN(53, TINFL_STATUS_HAS_MORE_OUTPUT); } - *pOut_buf_cur++ = pOut_buf_start[(dist_from_out_buf_start++ - dist) & out_buf_size_mask]; - } - continue; - } -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES - else if ((counter >= 9) && (counter <= dist)) - { - const mz_uint8 *pSrc_end = pSrc + (counter & ~7); - do - { - ((mz_uint32 *)pOut_buf_cur)[0] = ((const mz_uint32 *)pSrc)[0]; - ((mz_uint32 *)pOut_buf_cur)[1] = ((const mz_uint32 *)pSrc)[1]; - pOut_buf_cur += 8; - } while ((pSrc += 8) < pSrc_end); - if ((counter &= 7) < 3) - { - if (counter) - { - pOut_buf_cur[0] = pSrc[0]; - if (counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - continue; - } - } -#endif - do - { - pOut_buf_cur[0] = pSrc[0]; - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur[2] = pSrc[2]; - pOut_buf_cur += 3; pSrc += 3; - } while ((int)(counter -= 3) > 2); - if ((int)counter > 0) - { - pOut_buf_cur[0] = pSrc[0]; - if ((int)counter > 1) - pOut_buf_cur[1] = pSrc[1]; - pOut_buf_cur += counter; - } - } - } - } while (!(r->m_final & 1)); - if (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) - { - TINFL_SKIP_BITS(32, num_bits & 7); for (counter = 0; counter < 4; ++counter) { mz_uint s; if (num_bits) TINFL_GET_BITS(41, s, 8); else TINFL_GET_BYTE(42, s); r->m_z_adler32 = (r->m_z_adler32 << 8) | s; } - } - TINFL_CR_RETURN_FOREVER(34, TINFL_STATUS_DONE); - TINFL_CR_FINISH - -common_exit: - r->m_num_bits = num_bits; r->m_bit_buf = bit_buf; r->m_dist = dist; r->m_counter = counter; r->m_num_extra = num_extra; r->m_dist_from_out_buf_start = dist_from_out_buf_start; - *pIn_buf_size = pIn_buf_cur - pIn_buf_next; *pOut_buf_size = pOut_buf_cur - pOut_buf_next; - if ((decomp_flags & (TINFL_FLAG_PARSE_ZLIB_HEADER | TINFL_FLAG_COMPUTE_ADLER32)) && (status >= 0)) - { - const mz_uint8 *ptr = pOut_buf_next; size_t buf_len = *pOut_buf_size; - mz_uint32 i, s1 = r->m_check_adler32 & 0xffff, s2 = r->m_check_adler32 >> 16; size_t block_len = buf_len % 5552; - while (buf_len) - { - for (i = 0; i + 7 < block_len; i += 8, ptr += 8) - { - s1 += ptr[0], s2 += s1; s1 += ptr[1], s2 += s1; s1 += ptr[2], s2 += s1; s1 += ptr[3], s2 += s1; - s1 += ptr[4], s2 += s1; s1 += ptr[5], s2 += s1; s1 += ptr[6], s2 += s1; s1 += ptr[7], s2 += s1; - } - for ( ; i < block_len; ++i) s1 += *ptr++, s2 += s1; - s1 %= 65521U, s2 %= 65521U; buf_len -= block_len; block_len = 5552; - } - r->m_check_adler32 = (s2 << 16) + s1; if ((status == TINFL_STATUS_DONE) && (decomp_flags & TINFL_FLAG_PARSE_ZLIB_HEADER) && (r->m_check_adler32 != r->m_z_adler32)) status = TINFL_STATUS_ADLER32_MISMATCH; - } - return status; -} - -// Higher level helper functions. -void *tinfl_decompress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tinfl_decompressor decomp; void *pBuf = NULL, *pNew_buf; size_t src_buf_ofs = 0, out_buf_capacity = 0; - *pOut_len = 0; - tinfl_init(&decomp); - for ( ; ; ) - { - size_t src_buf_size = src_buf_len - src_buf_ofs, dst_buf_size = out_buf_capacity - *pOut_len, new_out_buf_capacity; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf + src_buf_ofs, &src_buf_size, (mz_uint8*)pBuf, pBuf ? (mz_uint8*)pBuf + *pOut_len : NULL, &dst_buf_size, - (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - if ((status < 0) || (status == TINFL_STATUS_NEEDS_MORE_INPUT)) - { - MZ_FREE(pBuf); *pOut_len = 0; return NULL; - } - src_buf_ofs += src_buf_size; - *pOut_len += dst_buf_size; - if (status == TINFL_STATUS_DONE) break; - new_out_buf_capacity = out_buf_capacity * 2; if (new_out_buf_capacity < 128) new_out_buf_capacity = 128; - pNew_buf = MZ_REALLOC(pBuf, new_out_buf_capacity); - if (!pNew_buf) - { - MZ_FREE(pBuf); *pOut_len = 0; return NULL; - } - pBuf = pNew_buf; out_buf_capacity = new_out_buf_capacity; - } - return pBuf; -} - -size_t tinfl_decompress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tinfl_decompressor decomp; tinfl_status status; tinfl_init(&decomp); - status = tinfl_decompress(&decomp, (const mz_uint8*)pSrc_buf, &src_buf_len, (mz_uint8*)pOut_buf, (mz_uint8*)pOut_buf, &out_buf_len, (flags & ~TINFL_FLAG_HAS_MORE_INPUT) | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF); - return (status != TINFL_STATUS_DONE) ? TINFL_DECOMPRESS_MEM_TO_MEM_FAILED : out_buf_len; -} - -int tinfl_decompress_mem_to_callback(const void *pIn_buf, size_t *pIn_buf_size, tinfl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - int result = 0; - tinfl_decompressor decomp; - mz_uint8 *pDict = (mz_uint8*)MZ_MALLOC(TINFL_LZ_DICT_SIZE); size_t in_buf_ofs = 0, dict_ofs = 0; - if (!pDict) - return TINFL_STATUS_FAILED; - tinfl_init(&decomp); - for ( ; ; ) - { - size_t in_buf_size = *pIn_buf_size - in_buf_ofs, dst_buf_size = TINFL_LZ_DICT_SIZE - dict_ofs; - tinfl_status status = tinfl_decompress(&decomp, (const mz_uint8*)pIn_buf + in_buf_ofs, &in_buf_size, pDict, pDict + dict_ofs, &dst_buf_size, - (flags & ~(TINFL_FLAG_HAS_MORE_INPUT | TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF))); - in_buf_ofs += in_buf_size; - if ((dst_buf_size) && (!(*pPut_buf_func)(pDict + dict_ofs, (int)dst_buf_size, pPut_buf_user))) - break; - if (status != TINFL_STATUS_HAS_MORE_OUTPUT) - { - result = (status == TINFL_STATUS_DONE); - break; - } - dict_ofs = (dict_ofs + dst_buf_size) & (TINFL_LZ_DICT_SIZE - 1); - } - MZ_FREE(pDict); - *pIn_buf_size = in_buf_ofs; - return result; -} - -// ------------------- Low-level Compression (independent from all decompression API's) - -// Purposely making these tables static for faster init and thread safety. -static const mz_uint16 s_tdefl_len_sym[256] = { - 257,258,259,260,261,262,263,264,265,265,266,266,267,267,268,268,269,269,269,269,270,270,270,270,271,271,271,271,272,272,272,272, - 273,273,273,273,273,273,273,273,274,274,274,274,274,274,274,274,275,275,275,275,275,275,275,275,276,276,276,276,276,276,276,276, - 277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,277,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278,278, - 279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,279,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280,280, - 281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281,281, - 282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282,282, - 283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283,283, - 284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,284,285 }; - -static const mz_uint8 s_tdefl_len_extra[256] = { - 0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, - 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0 }; - -static const mz_uint8 s_tdefl_small_dist_sym[512] = { - 0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17 }; - -static const mz_uint8 s_tdefl_small_dist_extra[512] = { - 0,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,5,5,5, - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, - 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, - 7,7,7,7,7,7,7,7 }; - -static const mz_uint8 s_tdefl_large_dist_sym[128] = { - 0,0,18,19,20,20,21,21,22,22,22,22,23,23,23,23,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26, - 26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28, - 28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29 }; - -static const mz_uint8 s_tdefl_large_dist_extra[128] = { - 0,0,8,8,9,9,9,9,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13 }; - -// Radix sorts tdefl_sym_freq[] array by 16-bit key m_key. Returns ptr to sorted values. -typedef struct { mz_uint16 m_key, m_sym_index; } tdefl_sym_freq; -static tdefl_sym_freq* tdefl_radix_sort_syms(mz_uint num_syms, tdefl_sym_freq* pSyms0, tdefl_sym_freq* pSyms1) -{ - mz_uint32 total_passes = 2, pass_shift, pass, i, hist[256 * 2]; tdefl_sym_freq* pCur_syms = pSyms0, *pNew_syms = pSyms1; MZ_CLEAR_OBJ(hist); - for (i = 0; i < num_syms; i++) { mz_uint freq = pSyms0[i].m_key; hist[freq & 0xFF]++; hist[256 + ((freq >> 8) & 0xFF)]++; } - while ((total_passes > 1) && (num_syms == hist[(total_passes - 1) * 256])) total_passes--; - for (pass_shift = 0, pass = 0; pass < total_passes; pass++, pass_shift += 8) - { - const mz_uint32* pHist = &hist[pass << 8]; - mz_uint offsets[256], cur_ofs = 0; - for (i = 0; i < 256; i++) { offsets[i] = cur_ofs; cur_ofs += pHist[i]; } - for (i = 0; i < num_syms; i++) pNew_syms[offsets[(pCur_syms[i].m_key >> pass_shift) & 0xFF]++] = pCur_syms[i]; - { tdefl_sym_freq* t = pCur_syms; pCur_syms = pNew_syms; pNew_syms = t; } - } - return pCur_syms; -} - -// tdefl_calculate_minimum_redundancy() originally written by: Alistair Moffat, alistair@cs.mu.oz.au, Jyrki Katajainen, jyrki@diku.dk, November 1996. -static void tdefl_calculate_minimum_redundancy(tdefl_sym_freq *A, int n) -{ - int root, leaf, next, avbl, used, dpth; - if (n==0) return; else if (n==1) { A[0].m_key = 1; return; } - A[0].m_key += A[1].m_key; root = 0; leaf = 2; - for (next=1; next < n-1; next++) - { - if (leaf>=n || A[root].m_key=n || (root=0; next--) A[next].m_key = A[A[next].m_key].m_key+1; - avbl = 1; used = dpth = 0; root = n-2; next = n-1; - while (avbl>0) - { - while (root>=0 && (int)A[root].m_key==dpth) { used++; root--; } - while (avbl>used) { A[next--].m_key = (mz_uint16)(dpth); avbl--; } - avbl = 2*used; dpth++; used = 0; - } -} - -// Limits canonical Huffman code table's max code size. -enum { TDEFL_MAX_SUPPORTED_HUFF_CODESIZE = 32 }; -static void tdefl_huffman_enforce_max_code_size(int *pNum_codes, int code_list_len, int max_code_size) -{ - int i; mz_uint32 total = 0; if (code_list_len <= 1) return; - for (i = max_code_size + 1; i <= TDEFL_MAX_SUPPORTED_HUFF_CODESIZE; i++) pNum_codes[max_code_size] += pNum_codes[i]; - for (i = max_code_size; i > 0; i--) total += (((mz_uint32)pNum_codes[i]) << (max_code_size - i)); - while (total != (1UL << max_code_size)) - { - pNum_codes[max_code_size]--; - for (i = max_code_size - 1; i > 0; i--) if (pNum_codes[i]) { pNum_codes[i]--; pNum_codes[i + 1] += 2; break; } - total--; - } -} - -static void tdefl_optimize_huffman_table(tdefl_compressor *d, int table_num, int table_len, int code_size_limit, int static_table) -{ - int i, j, l, num_codes[1 + TDEFL_MAX_SUPPORTED_HUFF_CODESIZE]; mz_uint next_code[TDEFL_MAX_SUPPORTED_HUFF_CODESIZE + 1]; MZ_CLEAR_OBJ(num_codes); - if (static_table) - { - for (i = 0; i < table_len; i++) num_codes[d->m_huff_code_sizes[table_num][i]]++; - } - else - { - tdefl_sym_freq syms0[TDEFL_MAX_HUFF_SYMBOLS], syms1[TDEFL_MAX_HUFF_SYMBOLS], *pSyms; - int num_used_syms = 0; - const mz_uint16 *pSym_count = &d->m_huff_count[table_num][0]; - for (i = 0; i < table_len; i++) if (pSym_count[i]) { syms0[num_used_syms].m_key = (mz_uint16)pSym_count[i]; syms0[num_used_syms++].m_sym_index = (mz_uint16)i; } - - pSyms = tdefl_radix_sort_syms(num_used_syms, syms0, syms1); tdefl_calculate_minimum_redundancy(pSyms, num_used_syms); - - for (i = 0; i < num_used_syms; i++) num_codes[pSyms[i].m_key]++; - - tdefl_huffman_enforce_max_code_size(num_codes, num_used_syms, code_size_limit); - - MZ_CLEAR_OBJ(d->m_huff_code_sizes[table_num]); MZ_CLEAR_OBJ(d->m_huff_codes[table_num]); - for (i = 1, j = num_used_syms; i <= code_size_limit; i++) - for (l = num_codes[i]; l > 0; l--) d->m_huff_code_sizes[table_num][pSyms[--j].m_sym_index] = (mz_uint8)(i); - } - - next_code[1] = 0; for (j = 0, i = 2; i <= code_size_limit; i++) next_code[i] = j = ((j + num_codes[i - 1]) << 1); - - for (i = 0; i < table_len; i++) - { - mz_uint rev_code = 0, code, code_size; if ((code_size = d->m_huff_code_sizes[table_num][i]) == 0) continue; - code = next_code[code_size]++; for (l = code_size; l > 0; l--, code >>= 1) rev_code = (rev_code << 1) | (code & 1); - d->m_huff_codes[table_num][i] = (mz_uint16)rev_code; - } -} - -#define TDEFL_PUT_BITS(b, l) do { \ - mz_uint bits = b; mz_uint len = l; MZ_ASSERT(bits <= ((1U << len) - 1U)); \ - d->m_bit_buffer |= (bits << d->m_bits_in); d->m_bits_in += len; \ - while (d->m_bits_in >= 8) { \ - if (d->m_pOutput_buf < d->m_pOutput_buf_end) \ - *d->m_pOutput_buf++ = (mz_uint8)(d->m_bit_buffer); \ - d->m_bit_buffer >>= 8; \ - d->m_bits_in -= 8; \ - } \ -} MZ_MACRO_END - -#define TDEFL_RLE_PREV_CODE_SIZE() { if (rle_repeat_count) { \ - if (rle_repeat_count < 3) { \ - d->m_huff_count[2][prev_code_size] = (mz_uint16)(d->m_huff_count[2][prev_code_size] + rle_repeat_count); \ - while (rle_repeat_count--) packed_code_sizes[num_packed_code_sizes++] = prev_code_size; \ - } else { \ - d->m_huff_count[2][16] = (mz_uint16)(d->m_huff_count[2][16] + 1); packed_code_sizes[num_packed_code_sizes++] = 16; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_repeat_count - 3); \ -} rle_repeat_count = 0; } } - -#define TDEFL_RLE_ZERO_CODE_SIZE() { if (rle_z_count) { \ - if (rle_z_count < 3) { \ - d->m_huff_count[2][0] = (mz_uint16)(d->m_huff_count[2][0] + rle_z_count); while (rle_z_count--) packed_code_sizes[num_packed_code_sizes++] = 0; \ - } else if (rle_z_count <= 10) { \ - d->m_huff_count[2][17] = (mz_uint16)(d->m_huff_count[2][17] + 1); packed_code_sizes[num_packed_code_sizes++] = 17; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 3); \ - } else { \ - d->m_huff_count[2][18] = (mz_uint16)(d->m_huff_count[2][18] + 1); packed_code_sizes[num_packed_code_sizes++] = 18; packed_code_sizes[num_packed_code_sizes++] = (mz_uint8)(rle_z_count - 11); \ -} rle_z_count = 0; } } - -static mz_uint8 s_tdefl_packed_code_size_syms_swizzle[] = { 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 }; - -static void tdefl_start_dynamic_block(tdefl_compressor *d) -{ - int num_lit_codes, num_dist_codes, num_bit_lengths; mz_uint i, total_code_sizes_to_pack, num_packed_code_sizes, rle_z_count, rle_repeat_count, packed_code_sizes_index; - mz_uint8 code_sizes_to_pack[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], packed_code_sizes[TDEFL_MAX_HUFF_SYMBOLS_0 + TDEFL_MAX_HUFF_SYMBOLS_1], prev_code_size = 0xFF; - - d->m_huff_count[0][256] = 1; - - tdefl_optimize_huffman_table(d, 0, TDEFL_MAX_HUFF_SYMBOLS_0, 15, MZ_FALSE); - tdefl_optimize_huffman_table(d, 1, TDEFL_MAX_HUFF_SYMBOLS_1, 15, MZ_FALSE); - - for (num_lit_codes = 286; num_lit_codes > 257; num_lit_codes--) if (d->m_huff_code_sizes[0][num_lit_codes - 1]) break; - for (num_dist_codes = 30; num_dist_codes > 1; num_dist_codes--) if (d->m_huff_code_sizes[1][num_dist_codes - 1]) break; - - memcpy(code_sizes_to_pack, &d->m_huff_code_sizes[0][0], num_lit_codes); - memcpy(code_sizes_to_pack + num_lit_codes, &d->m_huff_code_sizes[1][0], num_dist_codes); - total_code_sizes_to_pack = num_lit_codes + num_dist_codes; num_packed_code_sizes = 0; rle_z_count = 0; rle_repeat_count = 0; - - memset(&d->m_huff_count[2][0], 0, sizeof(d->m_huff_count[2][0]) * TDEFL_MAX_HUFF_SYMBOLS_2); - for (i = 0; i < total_code_sizes_to_pack; i++) - { - mz_uint8 code_size = code_sizes_to_pack[i]; - if (!code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - if (++rle_z_count == 138) { TDEFL_RLE_ZERO_CODE_SIZE(); } - } - else - { - TDEFL_RLE_ZERO_CODE_SIZE(); - if (code_size != prev_code_size) - { - TDEFL_RLE_PREV_CODE_SIZE(); - d->m_huff_count[2][code_size] = (mz_uint16)(d->m_huff_count[2][code_size] + 1); packed_code_sizes[num_packed_code_sizes++] = code_size; - } - else if (++rle_repeat_count == 6) - { - TDEFL_RLE_PREV_CODE_SIZE(); - } - } - prev_code_size = code_size; - } - if (rle_repeat_count) { TDEFL_RLE_PREV_CODE_SIZE(); } else { TDEFL_RLE_ZERO_CODE_SIZE(); } - - tdefl_optimize_huffman_table(d, 2, TDEFL_MAX_HUFF_SYMBOLS_2, 7, MZ_FALSE); - - TDEFL_PUT_BITS(2, 2); - - TDEFL_PUT_BITS(num_lit_codes - 257, 5); - TDEFL_PUT_BITS(num_dist_codes - 1, 5); - - for (num_bit_lengths = 18; num_bit_lengths >= 0; num_bit_lengths--) if (d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[num_bit_lengths]]) break; - num_bit_lengths = MZ_MAX(4, (num_bit_lengths + 1)); TDEFL_PUT_BITS(num_bit_lengths - 4, 4); - for (i = 0; (int)i < num_bit_lengths; i++) TDEFL_PUT_BITS(d->m_huff_code_sizes[2][s_tdefl_packed_code_size_syms_swizzle[i]], 3); - - for (packed_code_sizes_index = 0; packed_code_sizes_index < num_packed_code_sizes; ) - { - mz_uint code = packed_code_sizes[packed_code_sizes_index++]; MZ_ASSERT(code < TDEFL_MAX_HUFF_SYMBOLS_2); - TDEFL_PUT_BITS(d->m_huff_codes[2][code], d->m_huff_code_sizes[2][code]); - if (code >= 16) TDEFL_PUT_BITS(packed_code_sizes[packed_code_sizes_index++], "\02\03\07"[code - 16]); - } -} - -static void tdefl_start_static_block(tdefl_compressor *d) -{ - mz_uint i; - mz_uint8 *p = &d->m_huff_code_sizes[0][0]; - - for (i = 0; i <= 143; ++i) *p++ = 8; - for ( ; i <= 255; ++i) *p++ = 9; - for ( ; i <= 279; ++i) *p++ = 7; - for ( ; i <= 287; ++i) *p++ = 8; - - memset(d->m_huff_code_sizes[1], 5, 32); - - tdefl_optimize_huffman_table(d, 0, 288, 15, MZ_TRUE); - tdefl_optimize_huffman_table(d, 1, 32, 15, MZ_TRUE); - - TDEFL_PUT_BITS(1, 2); -} - -static const mz_uint mz_bitmasks[17] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000F, 0x001F, 0x003F, 0x007F, 0x00FF, 0x01FF, 0x03FF, 0x07FF, 0x0FFF, 0x1FFF, 0x3FFF, 0x7FFF, 0xFFFF }; - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS -static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) -{ - mz_uint flags; - mz_uint8 *pLZ_codes; - mz_uint8 *pOutput_buf = d->m_pOutput_buf; - mz_uint8 *pLZ_code_buf_end = d->m_pLZ_code_buf; - mz_uint64 bit_buffer = d->m_bit_buffer; - mz_uint bits_in = d->m_bits_in; - -#define TDEFL_PUT_BITS_FAST(b, l) { bit_buffer |= (((mz_uint64)(b)) << bits_in); bits_in += (l); } - - flags = 1; - for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < pLZ_code_buf_end; flags >>= 1) - { - if (flags == 1) - flags = *pLZ_codes++ | 0x100; - - if (flags & 1) - { - mz_uint s0, s1, n0, n1, sym, num_extra_bits; - mz_uint match_len = pLZ_codes[0], match_dist = *(const mz_uint16 *)(pLZ_codes + 1); pLZ_codes += 3; - - MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS_FAST(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); - - // This sequence coaxes MSVC into using cmov's vs. jmp's. - s0 = s_tdefl_small_dist_sym[match_dist & 511]; - n0 = s_tdefl_small_dist_extra[match_dist & 511]; - s1 = s_tdefl_large_dist_sym[match_dist >> 8]; - n1 = s_tdefl_large_dist_extra[match_dist >> 8]; - sym = (match_dist < 512) ? s0 : s1; - num_extra_bits = (match_dist < 512) ? n0 : n1; - - MZ_ASSERT(d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS_FAST(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); - } - else - { - mz_uint lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - - if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) - { - flags >>= 1; - lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - - if (((flags & 2) == 0) && (pLZ_codes < pLZ_code_buf_end)) - { - flags >>= 1; - lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS_FAST(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - } - } - } - - if (pOutput_buf >= d->m_pOutput_buf_end) - return MZ_FALSE; - - *(mz_uint64*)pOutput_buf = bit_buffer; - pOutput_buf += (bits_in >> 3); - bit_buffer >>= (bits_in & ~7); - bits_in &= 7; - } - -#undef TDEFL_PUT_BITS_FAST - - d->m_pOutput_buf = pOutput_buf; - d->m_bits_in = 0; - d->m_bit_buffer = 0; - - while (bits_in) - { - mz_uint32 n = MZ_MIN(bits_in, 16); - TDEFL_PUT_BITS((mz_uint)bit_buffer & mz_bitmasks[n], n); - bit_buffer >>= n; - bits_in -= n; - } - - TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); - - return (d->m_pOutput_buf < d->m_pOutput_buf_end); -} -#else -static mz_bool tdefl_compress_lz_codes(tdefl_compressor *d) -{ - mz_uint flags; - mz_uint8 *pLZ_codes; - - flags = 1; - for (pLZ_codes = d->m_lz_code_buf; pLZ_codes < d->m_pLZ_code_buf; flags >>= 1) - { - if (flags == 1) - flags = *pLZ_codes++ | 0x100; - if (flags & 1) - { - mz_uint sym, num_extra_bits; - mz_uint match_len = pLZ_codes[0], match_dist = (pLZ_codes[1] | (pLZ_codes[2] << 8)); pLZ_codes += 3; - - MZ_ASSERT(d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(d->m_huff_codes[0][s_tdefl_len_sym[match_len]], d->m_huff_code_sizes[0][s_tdefl_len_sym[match_len]]); - TDEFL_PUT_BITS(match_len & mz_bitmasks[s_tdefl_len_extra[match_len]], s_tdefl_len_extra[match_len]); - - if (match_dist < 512) - { - sym = s_tdefl_small_dist_sym[match_dist]; num_extra_bits = s_tdefl_small_dist_extra[match_dist]; - } - else - { - sym = s_tdefl_large_dist_sym[match_dist >> 8]; num_extra_bits = s_tdefl_large_dist_extra[match_dist >> 8]; - } - MZ_ASSERT(d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(d->m_huff_codes[1][sym], d->m_huff_code_sizes[1][sym]); - TDEFL_PUT_BITS(match_dist & mz_bitmasks[num_extra_bits], num_extra_bits); - } - else - { - mz_uint lit = *pLZ_codes++; - MZ_ASSERT(d->m_huff_code_sizes[0][lit]); - TDEFL_PUT_BITS(d->m_huff_codes[0][lit], d->m_huff_code_sizes[0][lit]); - } - } - - TDEFL_PUT_BITS(d->m_huff_codes[0][256], d->m_huff_code_sizes[0][256]); - - return (d->m_pOutput_buf < d->m_pOutput_buf_end); -} -#endif // MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN && MINIZ_HAS_64BIT_REGISTERS - -static mz_bool tdefl_compress_block(tdefl_compressor *d, mz_bool static_block) -{ - if (static_block) - tdefl_start_static_block(d); - else - tdefl_start_dynamic_block(d); - return tdefl_compress_lz_codes(d); -} - -static int tdefl_flush_block(tdefl_compressor *d, int flush) -{ - mz_uint saved_bit_buf, saved_bits_in; - mz_uint8 *pSaved_output_buf; - mz_bool comp_block_succeeded = MZ_FALSE; - int n, use_raw_block = ((d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS) != 0) && (d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size; - mz_uint8 *pOutput_buf_start = ((d->m_pPut_buf_func == NULL) && ((*d->m_pOut_buf_size - d->m_out_buf_ofs) >= TDEFL_OUT_BUF_SIZE)) ? ((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs) : d->m_output_buf; - - d->m_pOutput_buf = pOutput_buf_start; - d->m_pOutput_buf_end = d->m_pOutput_buf + TDEFL_OUT_BUF_SIZE - 16; - - MZ_ASSERT(!d->m_output_flush_remaining); - d->m_output_flush_ofs = 0; - d->m_output_flush_remaining = 0; - - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> d->m_num_flags_left); - d->m_pLZ_code_buf -= (d->m_num_flags_left == 8); - - if ((d->m_flags & TDEFL_WRITE_ZLIB_HEADER) && (!d->m_block_index)) - { - TDEFL_PUT_BITS(0x78, 8); TDEFL_PUT_BITS(0x01, 8); - } - - TDEFL_PUT_BITS(flush == TDEFL_FINISH, 1); - - pSaved_output_buf = d->m_pOutput_buf; saved_bit_buf = d->m_bit_buffer; saved_bits_in = d->m_bits_in; - - if (!use_raw_block) - comp_block_succeeded = tdefl_compress_block(d, (d->m_flags & TDEFL_FORCE_ALL_STATIC_BLOCKS) || (d->m_total_lz_bytes < 48)); - - // If the block gets expanded, forget the current contents of the output buffer and send a raw block instead. - if ( ((use_raw_block) || ((d->m_total_lz_bytes) && ((d->m_pOutput_buf - pSaved_output_buf + 1U) >= d->m_total_lz_bytes))) && - ((d->m_lookahead_pos - d->m_lz_code_buf_dict_pos) <= d->m_dict_size) ) - { - mz_uint i; d->m_pOutput_buf = pSaved_output_buf; d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - TDEFL_PUT_BITS(0, 2); - if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); } - for (i = 2; i; --i, d->m_total_lz_bytes ^= 0xFFFF) - { - TDEFL_PUT_BITS(d->m_total_lz_bytes & 0xFFFF, 16); - } - for (i = 0; i < d->m_total_lz_bytes; ++i) - { - TDEFL_PUT_BITS(d->m_dict[(d->m_lz_code_buf_dict_pos + i) & TDEFL_LZ_DICT_SIZE_MASK], 8); - } - } - // Check for the extremely unlikely (if not impossible) case of the compressed block not fitting into the output buffer when using dynamic codes. - else if (!comp_block_succeeded) - { - d->m_pOutput_buf = pSaved_output_buf; d->m_bit_buffer = saved_bit_buf, d->m_bits_in = saved_bits_in; - tdefl_compress_block(d, MZ_TRUE); - } - - if (flush) - { - if (flush == TDEFL_FINISH) - { - if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); } - if (d->m_flags & TDEFL_WRITE_ZLIB_HEADER) { mz_uint i, a = d->m_adler32; for (i = 0; i < 4; i++) { TDEFL_PUT_BITS((a >> 24) & 0xFF, 8); a <<= 8; } } - } - else - { - mz_uint i, z = 0; TDEFL_PUT_BITS(0, 3); if (d->m_bits_in) { TDEFL_PUT_BITS(0, 8 - d->m_bits_in); } for (i = 2; i; --i, z ^= 0xFFFF) { TDEFL_PUT_BITS(z & 0xFFFF, 16); } - } - } - - MZ_ASSERT(d->m_pOutput_buf < d->m_pOutput_buf_end); - - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; d->m_pLZ_flags = d->m_lz_code_buf; d->m_num_flags_left = 8; d->m_lz_code_buf_dict_pos += d->m_total_lz_bytes; d->m_total_lz_bytes = 0; d->m_block_index++; - - if ((n = (int)(d->m_pOutput_buf - pOutput_buf_start)) != 0) - { - if (d->m_pPut_buf_func) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - if (!(*d->m_pPut_buf_func)(d->m_output_buf, n, d->m_pPut_buf_user)) - return (d->m_prev_return_status = TDEFL_STATUS_PUT_BUF_FAILED); - } - else if (pOutput_buf_start == d->m_output_buf) - { - int bytes_to_copy = (int)MZ_MIN((size_t)n, (size_t)(*d->m_pOut_buf_size - d->m_out_buf_ofs)); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf, bytes_to_copy); - d->m_out_buf_ofs += bytes_to_copy; - if ((n -= bytes_to_copy) != 0) - { - d->m_output_flush_ofs = bytes_to_copy; - d->m_output_flush_remaining = n; - } - } - else - { - d->m_out_buf_ofs += n; - } - } - - return d->m_output_flush_remaining; -} - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES -#define TDEFL_READ_UNALIGNED_WORD(p) *(const mz_uint16*)(p) -static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) -{ - mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; - mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; - const mz_uint16 *s = (const mz_uint16*)(d->m_dict + pos), *p, *q; - mz_uint16 c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]), s01 = TDEFL_READ_UNALIGNED_WORD(s); - MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); if (max_match_len <= match_len) return; - for ( ; ; ) - { - for ( ; ; ) - { - if (--num_probes_left == 0) return; - #define TDEFL_PROBE \ - next_probe_pos = d->m_next[probe_pos]; \ - if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) return; \ - probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ - if (TDEFL_READ_UNALIGNED_WORD(&d->m_dict[probe_pos + match_len - 1]) == c01) break; - TDEFL_PROBE; TDEFL_PROBE; TDEFL_PROBE; - } - if (!dist) break; q = (const mz_uint16*)(d->m_dict + probe_pos); if (TDEFL_READ_UNALIGNED_WORD(q) != s01) continue; p = s; probe_len = 32; - do { } while ( (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && - (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (--probe_len > 0) ); - if (!probe_len) - { - *pMatch_dist = dist; *pMatch_len = MZ_MIN(max_match_len, TDEFL_MAX_MATCH_LEN); break; - } - else if ((probe_len = ((mz_uint)(p - s) * 2) + (mz_uint)(*(const mz_uint8*)p == *(const mz_uint8*)q)) > match_len) - { - *pMatch_dist = dist; if ((*pMatch_len = match_len = MZ_MIN(max_match_len, probe_len)) == max_match_len) break; - c01 = TDEFL_READ_UNALIGNED_WORD(&d->m_dict[pos + match_len - 1]); - } - } -} -#else -static MZ_FORCEINLINE void tdefl_find_match(tdefl_compressor *d, mz_uint lookahead_pos, mz_uint max_dist, mz_uint max_match_len, mz_uint *pMatch_dist, mz_uint *pMatch_len) -{ - mz_uint dist, pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK, match_len = *pMatch_len, probe_pos = pos, next_probe_pos, probe_len; - mz_uint num_probes_left = d->m_max_probes[match_len >= 32]; - const mz_uint8 *s = d->m_dict + pos, *p, *q; - mz_uint8 c0 = d->m_dict[pos + match_len], c1 = d->m_dict[pos + match_len - 1]; - MZ_ASSERT(max_match_len <= TDEFL_MAX_MATCH_LEN); if (max_match_len <= match_len) return; - for ( ; ; ) - { - for ( ; ; ) - { - if (--num_probes_left == 0) return; - #define TDEFL_PROBE \ - next_probe_pos = d->m_next[probe_pos]; \ - if ((!next_probe_pos) || ((dist = (mz_uint16)(lookahead_pos - next_probe_pos)) > max_dist)) return; \ - probe_pos = next_probe_pos & TDEFL_LZ_DICT_SIZE_MASK; \ - if ((d->m_dict[probe_pos + match_len] == c0) && (d->m_dict[probe_pos + match_len - 1] == c1)) break; - TDEFL_PROBE; TDEFL_PROBE; TDEFL_PROBE; - } - if (!dist) break; p = s; q = d->m_dict + probe_pos; for (probe_len = 0; probe_len < max_match_len; probe_len++) if (*p++ != *q++) break; - if (probe_len > match_len) - { - *pMatch_dist = dist; if ((*pMatch_len = match_len = probe_len) == max_match_len) return; - c0 = d->m_dict[pos + match_len]; c1 = d->m_dict[pos + match_len - 1]; - } - } -} -#endif // #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN -static mz_bool tdefl_compress_fast(tdefl_compressor *d) -{ - // Faster, minimally featured LZRW1-style match+parse loop with better register utilization. Intended for applications where raw throughput is valued more highly than ratio. - mz_uint lookahead_pos = d->m_lookahead_pos, lookahead_size = d->m_lookahead_size, dict_size = d->m_dict_size, total_lz_bytes = d->m_total_lz_bytes, num_flags_left = d->m_num_flags_left; - mz_uint8 *pLZ_code_buf = d->m_pLZ_code_buf, *pLZ_flags = d->m_pLZ_flags; - mz_uint cur_pos = lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - - while ((d->m_src_buf_left) || ((d->m_flush) && (lookahead_size))) - { - const mz_uint TDEFL_COMP_FAST_LOOKAHEAD_SIZE = 4096; - mz_uint dst_pos = (lookahead_pos + lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(d->m_src_buf_left, TDEFL_COMP_FAST_LOOKAHEAD_SIZE - lookahead_size); - d->m_src_buf_left -= num_bytes_to_process; - lookahead_size += num_bytes_to_process; - - while (num_bytes_to_process) - { - mz_uint32 n = MZ_MIN(TDEFL_LZ_DICT_SIZE - dst_pos, num_bytes_to_process); - memcpy(d->m_dict + dst_pos, d->m_pSrc, n); - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - memcpy(d->m_dict + TDEFL_LZ_DICT_SIZE + dst_pos, d->m_pSrc, MZ_MIN(n, (TDEFL_MAX_MATCH_LEN - 1) - dst_pos)); - d->m_pSrc += n; - dst_pos = (dst_pos + n) & TDEFL_LZ_DICT_SIZE_MASK; - num_bytes_to_process -= n; - } - - dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - lookahead_size, dict_size); - if ((!d->m_flush) && (lookahead_size < TDEFL_COMP_FAST_LOOKAHEAD_SIZE)) break; - - while (lookahead_size >= 4) - { - mz_uint cur_match_dist, cur_match_len = 1; - mz_uint8 *pCur_dict = d->m_dict + cur_pos; - mz_uint first_trigram = (*(const mz_uint32 *)pCur_dict) & 0xFFFFFF; - mz_uint hash = (first_trigram ^ (first_trigram >> (24 - (TDEFL_LZ_HASH_BITS - 8)))) & TDEFL_LEVEL1_HASH_SIZE_MASK; - mz_uint probe_pos = d->m_hash[hash]; - d->m_hash[hash] = (mz_uint16)lookahead_pos; - - if (((cur_match_dist = (mz_uint16)(lookahead_pos - probe_pos)) <= dict_size) && ((*(const mz_uint32 *)(d->m_dict + (probe_pos &= TDEFL_LZ_DICT_SIZE_MASK)) & 0xFFFFFF) == first_trigram)) - { - const mz_uint16 *p = (const mz_uint16 *)pCur_dict; - const mz_uint16 *q = (const mz_uint16 *)(d->m_dict + probe_pos); - mz_uint32 probe_len = 32; - do { } while ( (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && - (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (TDEFL_READ_UNALIGNED_WORD(++p) == TDEFL_READ_UNALIGNED_WORD(++q)) && (--probe_len > 0) ); - cur_match_len = ((mz_uint)(p - (const mz_uint16 *)pCur_dict) * 2) + (mz_uint)(*(const mz_uint8 *)p == *(const mz_uint8 *)q); - if (!probe_len) - cur_match_len = cur_match_dist ? TDEFL_MAX_MATCH_LEN : 0; - - if ((cur_match_len < TDEFL_MIN_MATCH_LEN) || ((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U*1024U))) - { - cur_match_len = 1; - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - else - { - mz_uint32 s0, s1; - cur_match_len = MZ_MIN(cur_match_len, lookahead_size); - - MZ_ASSERT((cur_match_len >= TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 1) && (cur_match_dist <= TDEFL_LZ_DICT_SIZE)); - - cur_match_dist--; - - pLZ_code_buf[0] = (mz_uint8)(cur_match_len - TDEFL_MIN_MATCH_LEN); - *(mz_uint16 *)(&pLZ_code_buf[1]) = (mz_uint16)cur_match_dist; - pLZ_code_buf += 3; - *pLZ_flags = (mz_uint8)((*pLZ_flags >> 1) | 0x80); - - s0 = s_tdefl_small_dist_sym[cur_match_dist & 511]; - s1 = s_tdefl_large_dist_sym[cur_match_dist >> 8]; - d->m_huff_count[1][(cur_match_dist < 512) ? s0 : s1]++; - - d->m_huff_count[0][s_tdefl_len_sym[cur_match_len - TDEFL_MIN_MATCH_LEN]]++; - } - } - else - { - *pLZ_code_buf++ = (mz_uint8)first_trigram; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - d->m_huff_count[0][(mz_uint8)first_trigram]++; - } - - if (--num_flags_left == 0) { num_flags_left = 8; pLZ_flags = pLZ_code_buf++; } - - total_lz_bytes += cur_match_len; - lookahead_pos += cur_match_len; - dict_size = MZ_MIN(dict_size + cur_match_len, TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + cur_match_len) & TDEFL_LZ_DICT_SIZE_MASK; - MZ_ASSERT(lookahead_size >= cur_match_len); - lookahead_size -= cur_match_len; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; pLZ_code_buf = d->m_pLZ_code_buf; pLZ_flags = d->m_pLZ_flags; num_flags_left = d->m_num_flags_left; - } - } - - while (lookahead_size) - { - mz_uint8 lit = d->m_dict[cur_pos]; - - total_lz_bytes++; - *pLZ_code_buf++ = lit; - *pLZ_flags = (mz_uint8)(*pLZ_flags >> 1); - if (--num_flags_left == 0) { num_flags_left = 8; pLZ_flags = pLZ_code_buf++; } - - d->m_huff_count[0][lit]++; - - lookahead_pos++; - dict_size = MZ_MIN(dict_size + 1, TDEFL_LZ_DICT_SIZE); - cur_pos = (cur_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; - lookahead_size--; - - if (pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) - { - int n; - d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - total_lz_bytes = d->m_total_lz_bytes; pLZ_code_buf = d->m_pLZ_code_buf; pLZ_flags = d->m_pLZ_flags; num_flags_left = d->m_num_flags_left; - } - } - } - - d->m_lookahead_pos = lookahead_pos; d->m_lookahead_size = lookahead_size; d->m_dict_size = dict_size; - d->m_total_lz_bytes = total_lz_bytes; d->m_pLZ_code_buf = pLZ_code_buf; d->m_pLZ_flags = pLZ_flags; d->m_num_flags_left = num_flags_left; - return MZ_TRUE; -} -#endif // MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - -static MZ_FORCEINLINE void tdefl_record_literal(tdefl_compressor *d, mz_uint8 lit) -{ - d->m_total_lz_bytes++; - *d->m_pLZ_code_buf++ = lit; - *d->m_pLZ_flags = (mz_uint8)(*d->m_pLZ_flags >> 1); if (--d->m_num_flags_left == 0) { d->m_num_flags_left = 8; d->m_pLZ_flags = d->m_pLZ_code_buf++; } - d->m_huff_count[0][lit]++; -} - -static MZ_FORCEINLINE void tdefl_record_match(tdefl_compressor *d, mz_uint match_len, mz_uint match_dist) -{ - mz_uint32 s0, s1; - - MZ_ASSERT((match_len >= TDEFL_MIN_MATCH_LEN) && (match_dist >= 1) && (match_dist <= TDEFL_LZ_DICT_SIZE)); - - d->m_total_lz_bytes += match_len; - - d->m_pLZ_code_buf[0] = (mz_uint8)(match_len - TDEFL_MIN_MATCH_LEN); - - match_dist -= 1; - d->m_pLZ_code_buf[1] = (mz_uint8)(match_dist & 0xFF); - d->m_pLZ_code_buf[2] = (mz_uint8)(match_dist >> 8); d->m_pLZ_code_buf += 3; - - *d->m_pLZ_flags = (mz_uint8)((*d->m_pLZ_flags >> 1) | 0x80); if (--d->m_num_flags_left == 0) { d->m_num_flags_left = 8; d->m_pLZ_flags = d->m_pLZ_code_buf++; } - - s0 = s_tdefl_small_dist_sym[match_dist & 511]; s1 = s_tdefl_large_dist_sym[(match_dist >> 8) & 127]; - d->m_huff_count[1][(match_dist < 512) ? s0 : s1]++; - - if (match_len >= TDEFL_MIN_MATCH_LEN) d->m_huff_count[0][s_tdefl_len_sym[match_len - TDEFL_MIN_MATCH_LEN]]++; -} - -static mz_bool tdefl_compress_normal(tdefl_compressor *d) -{ - const mz_uint8 *pSrc = d->m_pSrc; size_t src_buf_left = d->m_src_buf_left; - tdefl_flush flush = d->m_flush; - - while ((src_buf_left) || ((flush) && (d->m_lookahead_size))) - { - mz_uint len_to_move, cur_match_dist, cur_match_len, cur_pos; - // Update dictionary and hash chains. Keeps the lookahead size equal to TDEFL_MAX_MATCH_LEN. - if ((d->m_lookahead_size + d->m_dict_size) >= (TDEFL_MIN_MATCH_LEN - 1)) - { - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK, ins_pos = d->m_lookahead_pos + d->m_lookahead_size - 2; - mz_uint hash = (d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK]; - mz_uint num_bytes_to_process = (mz_uint)MZ_MIN(src_buf_left, TDEFL_MAX_MATCH_LEN - d->m_lookahead_size); - const mz_uint8 *pSrc_end = pSrc + num_bytes_to_process; - src_buf_left -= num_bytes_to_process; - d->m_lookahead_size += num_bytes_to_process; - while (pSrc != pSrc_end) - { - mz_uint8 c = *pSrc++; d->m_dict[dst_pos] = c; if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - hash = ((hash << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos); - dst_pos = (dst_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK; ins_pos++; - } - } - else - { - while ((src_buf_left) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - { - mz_uint8 c = *pSrc++; - mz_uint dst_pos = (d->m_lookahead_pos + d->m_lookahead_size) & TDEFL_LZ_DICT_SIZE_MASK; - src_buf_left--; - d->m_dict[dst_pos] = c; - if (dst_pos < (TDEFL_MAX_MATCH_LEN - 1)) - d->m_dict[TDEFL_LZ_DICT_SIZE + dst_pos] = c; - if ((++d->m_lookahead_size + d->m_dict_size) >= TDEFL_MIN_MATCH_LEN) - { - mz_uint ins_pos = d->m_lookahead_pos + (d->m_lookahead_size - 1) - 2; - mz_uint hash = ((d->m_dict[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] << (TDEFL_LZ_HASH_SHIFT * 2)) ^ (d->m_dict[(ins_pos + 1) & TDEFL_LZ_DICT_SIZE_MASK] << TDEFL_LZ_HASH_SHIFT) ^ c) & (TDEFL_LZ_HASH_SIZE - 1); - d->m_next[ins_pos & TDEFL_LZ_DICT_SIZE_MASK] = d->m_hash[hash]; d->m_hash[hash] = (mz_uint16)(ins_pos); - } - } - } - d->m_dict_size = MZ_MIN(TDEFL_LZ_DICT_SIZE - d->m_lookahead_size, d->m_dict_size); - if ((!flush) && (d->m_lookahead_size < TDEFL_MAX_MATCH_LEN)) - break; - - // Simple lazy/greedy parsing state machine. - len_to_move = 1; cur_match_dist = 0; cur_match_len = d->m_saved_match_len ? d->m_saved_match_len : (TDEFL_MIN_MATCH_LEN - 1); cur_pos = d->m_lookahead_pos & TDEFL_LZ_DICT_SIZE_MASK; - if (d->m_flags & (TDEFL_RLE_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS)) - { - if ((d->m_dict_size) && (!(d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) - { - mz_uint8 c = d->m_dict[(cur_pos - 1) & TDEFL_LZ_DICT_SIZE_MASK]; - cur_match_len = 0; while (cur_match_len < d->m_lookahead_size) { if (d->m_dict[cur_pos + cur_match_len] != c) break; cur_match_len++; } - if (cur_match_len < TDEFL_MIN_MATCH_LEN) cur_match_len = 0; else cur_match_dist = 1; - } - } - else - { - tdefl_find_match(d, d->m_lookahead_pos, d->m_dict_size, d->m_lookahead_size, &cur_match_dist, &cur_match_len); - } - if (((cur_match_len == TDEFL_MIN_MATCH_LEN) && (cur_match_dist >= 8U*1024U)) || (cur_pos == cur_match_dist) || ((d->m_flags & TDEFL_FILTER_MATCHES) && (cur_match_len <= 5))) - { - cur_match_dist = cur_match_len = 0; - } - if (d->m_saved_match_len) - { - if (cur_match_len > d->m_saved_match_len) - { - tdefl_record_literal(d, (mz_uint8)d->m_saved_lit); - if (cur_match_len >= 128) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - d->m_saved_match_len = 0; len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[cur_pos]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len; - } - } - else - { - tdefl_record_match(d, d->m_saved_match_len, d->m_saved_match_dist); - len_to_move = d->m_saved_match_len - 1; d->m_saved_match_len = 0; - } - } - else if (!cur_match_dist) - tdefl_record_literal(d, d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]); - else if ((d->m_greedy_parsing) || (d->m_flags & TDEFL_RLE_MATCHES) || (cur_match_len >= 128)) - { - tdefl_record_match(d, cur_match_len, cur_match_dist); - len_to_move = cur_match_len; - } - else - { - d->m_saved_lit = d->m_dict[MZ_MIN(cur_pos, sizeof(d->m_dict) - 1)]; d->m_saved_match_dist = cur_match_dist; d->m_saved_match_len = cur_match_len; - } - // Move the lookahead forward by len_to_move bytes. - d->m_lookahead_pos += len_to_move; - MZ_ASSERT(d->m_lookahead_size >= len_to_move); - d->m_lookahead_size -= len_to_move; - d->m_dict_size = MZ_MIN(d->m_dict_size + len_to_move, TDEFL_LZ_DICT_SIZE); - // Check if it's time to flush the current LZ codes to the internal output buffer. - if ( (d->m_pLZ_code_buf > &d->m_lz_code_buf[TDEFL_LZ_CODE_BUF_SIZE - 8]) || - ( (d->m_total_lz_bytes > 31*1024) && (((((mz_uint)(d->m_pLZ_code_buf - d->m_lz_code_buf) * 115) >> 7) >= d->m_total_lz_bytes) || (d->m_flags & TDEFL_FORCE_ALL_RAW_BLOCKS))) ) - { - int n; - d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left; - if ((n = tdefl_flush_block(d, 0)) != 0) - return (n < 0) ? MZ_FALSE : MZ_TRUE; - } - } - - d->m_pSrc = pSrc; d->m_src_buf_left = src_buf_left; - return MZ_TRUE; -} - -static tdefl_status tdefl_flush_output_buffer(tdefl_compressor *d) -{ - if (d->m_pIn_buf_size) - { - *d->m_pIn_buf_size = d->m_pSrc - (const mz_uint8 *)d->m_pIn_buf; - } - - if (d->m_pOut_buf_size) - { - size_t n = MZ_MIN(*d->m_pOut_buf_size - d->m_out_buf_ofs, d->m_output_flush_remaining); - memcpy((mz_uint8 *)d->m_pOut_buf + d->m_out_buf_ofs, d->m_output_buf + d->m_output_flush_ofs, n); - d->m_output_flush_ofs += (mz_uint)n; - d->m_output_flush_remaining -= (mz_uint)n; - d->m_out_buf_ofs += n; - - *d->m_pOut_buf_size = d->m_out_buf_ofs; - } - - return (d->m_finished && !d->m_output_flush_remaining) ? TDEFL_STATUS_DONE : TDEFL_STATUS_OKAY; -} - -tdefl_status tdefl_compress(tdefl_compressor *d, const void *pIn_buf, size_t *pIn_buf_size, void *pOut_buf, size_t *pOut_buf_size, tdefl_flush flush) -{ - if (!d) - { - if (pIn_buf_size) *pIn_buf_size = 0; - if (pOut_buf_size) *pOut_buf_size = 0; - return TDEFL_STATUS_BAD_PARAM; - } - - d->m_pIn_buf = pIn_buf; d->m_pIn_buf_size = pIn_buf_size; - d->m_pOut_buf = pOut_buf; d->m_pOut_buf_size = pOut_buf_size; - d->m_pSrc = (const mz_uint8 *)(pIn_buf); d->m_src_buf_left = pIn_buf_size ? *pIn_buf_size : 0; - d->m_out_buf_ofs = 0; - d->m_flush = flush; - - if ( ((d->m_pPut_buf_func != NULL) == ((pOut_buf != NULL) || (pOut_buf_size != NULL))) || (d->m_prev_return_status != TDEFL_STATUS_OKAY) || - (d->m_wants_to_finish && (flush != TDEFL_FINISH)) || (pIn_buf_size && *pIn_buf_size && !pIn_buf) || (pOut_buf_size && *pOut_buf_size && !pOut_buf) ) - { - if (pIn_buf_size) *pIn_buf_size = 0; - if (pOut_buf_size) *pOut_buf_size = 0; - return (d->m_prev_return_status = TDEFL_STATUS_BAD_PARAM); - } - d->m_wants_to_finish |= (flush == TDEFL_FINISH); - - if ((d->m_output_flush_remaining) || (d->m_finished)) - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); - -#if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - if (((d->m_flags & TDEFL_MAX_PROBES_MASK) == 1) && - ((d->m_flags & TDEFL_GREEDY_PARSING_FLAG) != 0) && - ((d->m_flags & (TDEFL_FILTER_MATCHES | TDEFL_FORCE_ALL_RAW_BLOCKS | TDEFL_RLE_MATCHES)) == 0)) - { - if (!tdefl_compress_fast(d)) - return d->m_prev_return_status; - } - else -#endif // #if MINIZ_USE_UNALIGNED_LOADS_AND_STORES && MINIZ_LITTLE_ENDIAN - { - if (!tdefl_compress_normal(d)) - return d->m_prev_return_status; - } - - if ((d->m_flags & (TDEFL_WRITE_ZLIB_HEADER | TDEFL_COMPUTE_ADLER32)) && (pIn_buf)) - d->m_adler32 = (mz_uint32)mz_adler32(d->m_adler32, (const mz_uint8 *)pIn_buf, d->m_pSrc - (const mz_uint8 *)pIn_buf); - - if ((flush) && (!d->m_lookahead_size) && (!d->m_src_buf_left) && (!d->m_output_flush_remaining)) - { - if (tdefl_flush_block(d, flush) < 0) - return d->m_prev_return_status; - d->m_finished = (flush == TDEFL_FINISH); - if (flush == TDEFL_FULL_FLUSH) { MZ_CLEAR_OBJ(d->m_hash); MZ_CLEAR_OBJ(d->m_next); d->m_dict_size = 0; } - } - - return (d->m_prev_return_status = tdefl_flush_output_buffer(d)); -} - -tdefl_status tdefl_compress_buffer(tdefl_compressor *d, const void *pIn_buf, size_t in_buf_size, tdefl_flush flush) -{ - MZ_ASSERT(d->m_pPut_buf_func); return tdefl_compress(d, pIn_buf, &in_buf_size, NULL, NULL, flush); -} - -tdefl_status tdefl_init(tdefl_compressor *d, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - d->m_pPut_buf_func = pPut_buf_func; d->m_pPut_buf_user = pPut_buf_user; - d->m_flags = (mz_uint)(flags); d->m_max_probes[0] = 1 + ((flags & 0xFFF) + 2) / 3; d->m_greedy_parsing = (flags & TDEFL_GREEDY_PARSING_FLAG) != 0; - d->m_max_probes[1] = 1 + (((flags & 0xFFF) >> 2) + 2) / 3; - if (!(flags & TDEFL_NONDETERMINISTIC_PARSING_FLAG)) MZ_CLEAR_OBJ(d->m_hash); - d->m_lookahead_pos = d->m_lookahead_size = d->m_dict_size = d->m_total_lz_bytes = d->m_lz_code_buf_dict_pos = d->m_bits_in = 0; - d->m_output_flush_ofs = d->m_output_flush_remaining = d->m_finished = d->m_block_index = d->m_bit_buffer = d->m_wants_to_finish = 0; - d->m_pLZ_code_buf = d->m_lz_code_buf + 1; d->m_pLZ_flags = d->m_lz_code_buf; d->m_num_flags_left = 8; - d->m_pOutput_buf = d->m_output_buf; d->m_pOutput_buf_end = d->m_output_buf; d->m_prev_return_status = TDEFL_STATUS_OKAY; - d->m_saved_match_dist = d->m_saved_match_len = d->m_saved_lit = 0; d->m_adler32 = 1; - d->m_pIn_buf = NULL; d->m_pOut_buf = NULL; - d->m_pIn_buf_size = NULL; d->m_pOut_buf_size = NULL; - d->m_flush = TDEFL_NO_FLUSH; d->m_pSrc = NULL; d->m_src_buf_left = 0; d->m_out_buf_ofs = 0; - memset(&d->m_huff_count[0][0], 0, sizeof(d->m_huff_count[0][0]) * TDEFL_MAX_HUFF_SYMBOLS_0); - memset(&d->m_huff_count[1][0], 0, sizeof(d->m_huff_count[1][0]) * TDEFL_MAX_HUFF_SYMBOLS_1); - return TDEFL_STATUS_OKAY; -} - -tdefl_status tdefl_get_prev_return_status(tdefl_compressor *d) -{ - return d->m_prev_return_status; -} - -mz_uint32 tdefl_get_adler32(tdefl_compressor *d) -{ - return d->m_adler32; -} - -mz_bool tdefl_compress_mem_to_output(const void *pBuf, size_t buf_len, tdefl_put_buf_func_ptr pPut_buf_func, void *pPut_buf_user, int flags) -{ - tdefl_compressor *pComp; mz_bool succeeded; if (((buf_len) && (!pBuf)) || (!pPut_buf_func)) return MZ_FALSE; - pComp = (tdefl_compressor*)MZ_MALLOC(sizeof(tdefl_compressor)); if (!pComp) return MZ_FALSE; - succeeded = (tdefl_init(pComp, pPut_buf_func, pPut_buf_user, flags) == TDEFL_STATUS_OKAY); - succeeded = succeeded && (tdefl_compress_buffer(pComp, pBuf, buf_len, TDEFL_FINISH) == TDEFL_STATUS_DONE); - MZ_FREE(pComp); return succeeded; -} - -typedef struct -{ - size_t m_size, m_capacity; - mz_uint8 *m_pBuf; - mz_bool m_expandable; -} tdefl_output_buffer; - -static mz_bool tdefl_output_buffer_putter(const void *pBuf, int len, void *pUser) -{ - tdefl_output_buffer *p = (tdefl_output_buffer *)pUser; - size_t new_size = p->m_size + len; - if (new_size > p->m_capacity) - { - size_t new_capacity = p->m_capacity; mz_uint8 *pNew_buf; if (!p->m_expandable) return MZ_FALSE; - do { new_capacity = MZ_MAX(128U, new_capacity << 1U); } while (new_size > new_capacity); - pNew_buf = (mz_uint8*)MZ_REALLOC(p->m_pBuf, new_capacity); if (!pNew_buf) return MZ_FALSE; - p->m_pBuf = pNew_buf; p->m_capacity = new_capacity; - } - memcpy((mz_uint8*)p->m_pBuf + p->m_size, pBuf, len); p->m_size = new_size; - return MZ_TRUE; -} - -void *tdefl_compress_mem_to_heap(const void *pSrc_buf, size_t src_buf_len, size_t *pOut_len, int flags) -{ - tdefl_output_buffer out_buf; MZ_CLEAR_OBJ(out_buf); - if (!pOut_len) return MZ_FALSE; else *pOut_len = 0; - out_buf.m_expandable = MZ_TRUE; - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) return NULL; - *pOut_len = out_buf.m_size; return out_buf.m_pBuf; -} - -size_t tdefl_compress_mem_to_mem(void *pOut_buf, size_t out_buf_len, const void *pSrc_buf, size_t src_buf_len, int flags) -{ - tdefl_output_buffer out_buf; MZ_CLEAR_OBJ(out_buf); - if (!pOut_buf) return 0; - out_buf.m_pBuf = (mz_uint8*)pOut_buf; out_buf.m_capacity = out_buf_len; - if (!tdefl_compress_mem_to_output(pSrc_buf, src_buf_len, tdefl_output_buffer_putter, &out_buf, flags)) return 0; - return out_buf.m_size; -} - -#ifndef MINIZ_NO_ZLIB_APIS -static const mz_uint s_tdefl_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - -// level may actually range from [0,10] (10 is a "hidden" max level, where we want a bit more compression and it's fine if throughput to fall off a cliff on some files). -mz_uint tdefl_create_comp_flags_from_zip_params(int level, int window_bits, int strategy) -{ - mz_uint comp_flags = s_tdefl_num_probes[(level >= 0) ? MZ_MIN(10, level) : MZ_DEFAULT_LEVEL] | ((level <= 3) ? TDEFL_GREEDY_PARSING_FLAG : 0); - if (window_bits > 0) comp_flags |= TDEFL_WRITE_ZLIB_HEADER; - - if (!level) comp_flags |= TDEFL_FORCE_ALL_RAW_BLOCKS; - else if (strategy == MZ_FILTERED) comp_flags |= TDEFL_FILTER_MATCHES; - else if (strategy == MZ_HUFFMAN_ONLY) comp_flags &= ~TDEFL_MAX_PROBES_MASK; - else if (strategy == MZ_FIXED) comp_flags |= TDEFL_FORCE_ALL_STATIC_BLOCKS; - else if (strategy == MZ_RLE) comp_flags |= TDEFL_RLE_MATCHES; - - return comp_flags; -} -#endif //MINIZ_NO_ZLIB_APIS - -#ifdef _MSC_VER -#pragma warning (push) -#pragma warning (disable:4204) // nonstandard extension used : non-constant aggregate initializer (also supported by GNU C and C99, so no big deal) -#endif - -// Simple PNG writer function by Alex Evans, 2011. Released into the public domain: https://gist.github.com/908299, more context at -// http://altdevblogaday.org/2011/04/06/a-smaller-jpg-encoder/. -// This is actually a modification of Alex's original code so PNG files generated by this function pass pngcheck. -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory_ex(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out, mz_uint level, mz_bool flip) -{ - // Using a local copy of this array here in case MINIZ_NO_ZLIB_APIS was defined. - static const mz_uint s_tdefl_png_num_probes[11] = { 0, 1, 6, 32, 16, 32, 128, 256, 512, 768, 1500 }; - tdefl_compressor *pComp = (tdefl_compressor *)MZ_MALLOC(sizeof(tdefl_compressor)); tdefl_output_buffer out_buf; int i, y, z; mz_uint32 c; *pLen_out = 0; - if (!pComp) return NULL; - MZ_CLEAR_OBJ(out_buf); out_buf.m_expandable = MZ_TRUE; out_buf.m_capacity = 57+MZ_MAX(64, (1+bpl)*h); if (NULL == (out_buf.m_pBuf = (mz_uint8*)MZ_MALLOC(out_buf.m_capacity))) { MZ_FREE(pComp); return NULL; } - // write dummy header - for (z = 41; z; --z) tdefl_output_buffer_putter(&z, 1, &out_buf); - // compress image data - tdefl_init(pComp, tdefl_output_buffer_putter, &out_buf, s_tdefl_png_num_probes[MZ_MIN(10, level)] | TDEFL_WRITE_ZLIB_HEADER); - for (y = 0; y < h; ++y) { tdefl_compress_buffer(pComp, &z, 1, TDEFL_NO_FLUSH); tdefl_compress_buffer(pComp, (mz_uint8*)pImage + (flip ? (h - 1 - y) : y) * bpl, bpl, TDEFL_NO_FLUSH); } - if (tdefl_compress_buffer(pComp, NULL, 0, TDEFL_FINISH) != TDEFL_STATUS_DONE) { MZ_FREE(pComp); MZ_FREE(out_buf.m_pBuf); return NULL; } - // write real header - *pLen_out = out_buf.m_size-41; - { - static const mz_uint8 chans[] = {0x00, 0x00, 0x04, 0x02, 0x06}; - mz_uint8 pnghdr[41]={0x89,0x50,0x4e,0x47,0x0d,0x0a,0x1a,0x0a,0x00,0x00,0x00,0x0d,0x49,0x48,0x44,0x52, - 0, 0, 0/*[18]*/, 0/*[19]*/, 0, 0, 0/*[22]*/, 0/*[23]*/, 8, 0/*[25]*/, 0,0,0,0,0,0,0, - 0/*[33]*/, 0/*[34]*/, 0/*[35]*/, 0/*[36]*/, 0x49, 0x44, 0x41, 0x54}; - pnghdr[18] = (mz_uint8)(w>>8); - pnghdr[19] = (mz_uint8)w; - pnghdr[22] = (mz_uint8)(h>>8); - pnghdr[23] = (mz_uint8)h; - pnghdr[25] = chans[num_chans]; - pnghdr[33] = (mz_uint8)(*pLen_out>>24); - pnghdr[34] = (mz_uint8)(*pLen_out>>16); - pnghdr[35] = (mz_uint8)(*pLen_out>>8); - pnghdr[36] = (mz_uint8)*pLen_out; - c=(mz_uint32)mz_crc32(MZ_CRC32_INIT,pnghdr+12,17); for (i=0; i<4; ++i, c<<=8) ((mz_uint8*)(pnghdr+29))[i]=(mz_uint8)(c>>24); - memcpy(out_buf.m_pBuf, pnghdr, 41); - } - // write footer (IDAT CRC-32, followed by IEND chunk) - if (!tdefl_output_buffer_putter("\0\0\0\0\0\0\0\0\x49\x45\x4e\x44\xae\x42\x60\x82", 16, &out_buf)) { *pLen_out = 0; MZ_FREE(pComp); MZ_FREE(out_buf.m_pBuf); return NULL; } - c = (mz_uint32)mz_crc32(MZ_CRC32_INIT,out_buf.m_pBuf+41-4, *pLen_out+4); for (i=0; i<4; ++i, c<<=8) (out_buf.m_pBuf+out_buf.m_size-16)[i] = (mz_uint8)(c >> 24); - // compute final size of file, grab compressed data buffer and return - *pLen_out += 57; MZ_FREE(pComp); return out_buf.m_pBuf; -} -MINIZ_STATIC void *tdefl_write_image_to_png_file_in_memory(const void *pImage, int w, int h, int num_chans, int bpl, size_t *pLen_out) -{ - // Level 6 corresponds to TDEFL_DEFAULT_MAX_PROBES or MZ_DEFAULT_LEVEL (but we can't depend on MZ_DEFAULT_LEVEL being available in case the zlib API's where #defined out) - return tdefl_write_image_to_png_file_in_memory_ex(pImage, w, h, num_chans, bpl, pLen_out, 6, MZ_FALSE); -} - -#ifdef _MSC_VER -#pragma warning (pop) -#endif - -// ------------------- .ZIP archive reading - -#ifndef MINIZ_NO_ARCHIVE_APIS - -#ifdef MINIZ_NO_STDIO - #define MZ_FILE void * -#else - #include - #include - - #if defined(_MSC_VER) || defined(__MINGW64__) - static FILE *mz_fopen(const char *pFilename, const char *pMode) - { - FILE* pFile = NULL; - fopen_s(&pFile, pFilename, pMode); - return pFile; - } - static FILE *mz_freopen(const char *pPath, const char *pMode, FILE *pStream) - { - FILE* pFile = NULL; - if (freopen_s(&pFile, pPath, pMode, pStream)) - return NULL; - return pFile; - } - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN mz_fopen - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 _ftelli64 - #define MZ_FSEEK64 _fseeki64 - #define MZ_FILE_STAT_STRUCT _stat - #define MZ_FILE_STAT _stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN mz_freopen - #define MZ_DELETE_FILE remove - #elif defined(__MINGW32__) - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftello64 - #define MZ_FSEEK64 fseeko64 - #define MZ_FILE_STAT_STRUCT _stat - #define MZ_FILE_STAT _stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(f, m, s) freopen(f, m, s) - #define MZ_DELETE_FILE remove - #elif defined(__TINYC__) - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftell - #define MZ_FSEEK64 fseek - #define MZ_FILE_STAT_STRUCT stat - #define MZ_FILE_STAT stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(f, m, s) freopen(f, m, s) - #define MZ_DELETE_FILE remove - #elif defined(__GNUC__) && _LARGEFILE64_SOURCE - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen64(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftello64 - #define MZ_FSEEK64 fseeko64 - #define MZ_FILE_STAT_STRUCT stat64 - #define MZ_FILE_STAT stat64 - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(p, m, s) freopen64(p, m, s) - #define MZ_DELETE_FILE remove - #else - #ifndef MINIZ_NO_TIME - #include - #endif - #define MZ_FILE FILE - #define MZ_FOPEN(f, m) fopen(f, m) - #define MZ_FCLOSE fclose - #define MZ_FREAD fread - #define MZ_FWRITE fwrite - #define MZ_FTELL64 ftello - #define MZ_FSEEK64 fseeko - #define MZ_FILE_STAT_STRUCT stat - #define MZ_FILE_STAT stat - #define MZ_FFLUSH fflush - #define MZ_FREOPEN(f, m, s) freopen(f, m, s) - #define MZ_DELETE_FILE remove - #endif // #ifdef _MSC_VER -#endif // #ifdef MINIZ_NO_STDIO - -#define MZ_TOLOWER(c) ((((c) >= 'A') && ((c) <= 'Z')) ? ((c) - 'A' + 'a') : (c)) - -// Various ZIP archive enums. To completely avoid cross platform compiler alignment and platform endian issues, miniz.c doesn't use structs for any of this stuff. -enum -{ - // ZIP archive identifiers and record sizes - MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG = 0x06054b50, MZ_ZIP_CENTRAL_DIR_HEADER_SIG = 0x02014b50, MZ_ZIP_LOCAL_DIR_HEADER_SIG = 0x04034b50, - MZ_ZIP_LOCAL_DIR_HEADER_SIZE = 30, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE = 46, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE = 22, - // Central directory header record offsets - MZ_ZIP_CDH_SIG_OFS = 0, MZ_ZIP_CDH_VERSION_MADE_BY_OFS = 4, MZ_ZIP_CDH_VERSION_NEEDED_OFS = 6, MZ_ZIP_CDH_BIT_FLAG_OFS = 8, - MZ_ZIP_CDH_METHOD_OFS = 10, MZ_ZIP_CDH_FILE_TIME_OFS = 12, MZ_ZIP_CDH_FILE_DATE_OFS = 14, MZ_ZIP_CDH_CRC32_OFS = 16, - MZ_ZIP_CDH_COMPRESSED_SIZE_OFS = 20, MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS = 24, MZ_ZIP_CDH_FILENAME_LEN_OFS = 28, MZ_ZIP_CDH_EXTRA_LEN_OFS = 30, - MZ_ZIP_CDH_COMMENT_LEN_OFS = 32, MZ_ZIP_CDH_DISK_START_OFS = 34, MZ_ZIP_CDH_INTERNAL_ATTR_OFS = 36, MZ_ZIP_CDH_EXTERNAL_ATTR_OFS = 38, MZ_ZIP_CDH_LOCAL_HEADER_OFS = 42, - // Local directory header offsets - MZ_ZIP_LDH_SIG_OFS = 0, MZ_ZIP_LDH_VERSION_NEEDED_OFS = 4, MZ_ZIP_LDH_BIT_FLAG_OFS = 6, MZ_ZIP_LDH_METHOD_OFS = 8, MZ_ZIP_LDH_FILE_TIME_OFS = 10, - MZ_ZIP_LDH_FILE_DATE_OFS = 12, MZ_ZIP_LDH_CRC32_OFS = 14, MZ_ZIP_LDH_COMPRESSED_SIZE_OFS = 18, MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS = 22, - MZ_ZIP_LDH_FILENAME_LEN_OFS = 26, MZ_ZIP_LDH_EXTRA_LEN_OFS = 28, - // End of central directory offsets - MZ_ZIP_ECDH_SIG_OFS = 0, MZ_ZIP_ECDH_NUM_THIS_DISK_OFS = 4, MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS = 6, MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS = 8, - MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS = 10, MZ_ZIP_ECDH_CDIR_SIZE_OFS = 12, MZ_ZIP_ECDH_CDIR_OFS_OFS = 16, MZ_ZIP_ECDH_COMMENT_SIZE_OFS = 20, -}; - -typedef struct -{ - void *m_p; - size_t m_size, m_capacity; - mz_uint m_element_size; -} mz_zip_array; - -struct mz_zip_internal_state_tag -{ - mz_zip_array m_central_dir; - mz_zip_array m_central_dir_offsets; - mz_zip_array m_sorted_central_dir_offsets; - MZ_FILE *m_pFile; - void *m_pMem; - size_t m_mem_size; - size_t m_mem_capacity; -}; - -#define MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(array_ptr, element_size) (array_ptr)->m_element_size = element_size -#define MZ_ZIP_ARRAY_ELEMENT(array_ptr, element_type, index) ((element_type *)((array_ptr)->m_p))[index] - -static MZ_FORCEINLINE void mz_zip_array_clear(mz_zip_archive *pZip, mz_zip_array *pArray) -{ - pZip->m_pFree(pZip->m_pAlloc_opaque, pArray->m_p); - memset(pArray, 0, sizeof(mz_zip_array)); -} - -static mz_bool mz_zip_array_ensure_capacity(mz_zip_archive *pZip, mz_zip_array *pArray, size_t min_new_capacity, mz_uint growing) -{ - void *pNew_p; size_t new_capacity = min_new_capacity; MZ_ASSERT(pArray->m_element_size); if (pArray->m_capacity >= min_new_capacity) return MZ_TRUE; - if (growing) { new_capacity = MZ_MAX(1, pArray->m_capacity); while (new_capacity < min_new_capacity) new_capacity *= 2; } - if (NULL == (pNew_p = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pArray->m_p, pArray->m_element_size, new_capacity))) return MZ_FALSE; - pArray->m_p = pNew_p; pArray->m_capacity = new_capacity; - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_reserve(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_capacity, mz_uint growing) -{ - if (new_capacity > pArray->m_capacity) { if (!mz_zip_array_ensure_capacity(pZip, pArray, new_capacity, growing)) return MZ_FALSE; } - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_resize(mz_zip_archive *pZip, mz_zip_array *pArray, size_t new_size, mz_uint growing) -{ - if (new_size > pArray->m_capacity) { if (!mz_zip_array_ensure_capacity(pZip, pArray, new_size, growing)) return MZ_FALSE; } - pArray->m_size = new_size; - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_ensure_room(mz_zip_archive *pZip, mz_zip_array *pArray, size_t n) -{ - return mz_zip_array_reserve(pZip, pArray, pArray->m_size + n, MZ_TRUE); -} - -static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, mz_zip_array *pArray, const void *pElements, size_t n) -{ - size_t orig_size = pArray->m_size; if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) return MZ_FALSE; - memcpy((mz_uint8*)pArray->m_p + orig_size * pArray->m_element_size, pElements, n * pArray->m_element_size); - return MZ_TRUE; -} - -#ifndef MINIZ_NO_TIME -static time_t mz_zip_dos_to_time_t(int dos_time, int dos_date) -{ - struct tm tm; - memset(&tm, 0, sizeof(tm)); tm.tm_isdst = -1; - tm.tm_year = ((dos_date >> 9) & 127) + 1980 - 1900; tm.tm_mon = ((dos_date >> 5) & 15) - 1; tm.tm_mday = dos_date & 31; - tm.tm_hour = (dos_time >> 11) & 31; tm.tm_min = (dos_time >> 5) & 63; tm.tm_sec = (dos_time << 1) & 62; - return mktime(&tm); -} - -static void mz_zip_time_to_dos_time(time_t time, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date) -{ -#ifdef _MSC_VER - struct tm tm_struct; - struct tm *tm = &tm_struct; - errno_t err = localtime_s(tm, &time); - if (err) - { - *pDOS_date = 0; *pDOS_time = 0; - return; - } -#else - struct tm *tm = localtime(&time); -#endif - *pDOS_time = (mz_uint16)(((tm->tm_hour) << 11) + ((tm->tm_min) << 5) + ((tm->tm_sec) >> 1)); - *pDOS_date = (mz_uint16)(((tm->tm_year + 1900 - 1980) << 9) + ((tm->tm_mon + 1) << 5) + tm->tm_mday); -} -#endif - -#ifndef MINIZ_NO_STDIO -static mz_bool mz_zip_get_file_modified_time(const char *pFilename, mz_uint16 *pDOS_time, mz_uint16 *pDOS_date) -{ -#ifdef MINIZ_NO_TIME - (void)pFilename; *pDOS_date = *pDOS_time = 0; -#else - struct MZ_FILE_STAT_STRUCT file_stat; - // On Linux with x86 glibc, this call will fail on large files (>= 0x80000000 bytes) unless you compiled with _LARGEFILE64_SOURCE. Argh. - if (MZ_FILE_STAT(pFilename, &file_stat) != 0) - return MZ_FALSE; - mz_zip_time_to_dos_time(file_stat.st_mtime, pDOS_time, pDOS_date); -#endif // #ifdef MINIZ_NO_TIME - return MZ_TRUE; -} - -#ifndef MINIZ_NO_TIME -static mz_bool mz_zip_set_file_times(const char *pFilename, time_t access_time, time_t modified_time) -{ - struct utimbuf t; t.actime = access_time; t.modtime = modified_time; - return !utime(pFilename, &t); -} -#endif // #ifndef MINIZ_NO_TIME -#endif // #ifndef MINIZ_NO_STDIO - -static mz_bool mz_zip_reader_init_internal(mz_zip_archive *pZip, mz_uint32 flags) -{ - (void)flags; - if ((!pZip) || (pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) - return MZ_FALSE; - - if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func; - if (!pZip->m_pFree) pZip->m_pFree = def_free_func; - if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func; - - pZip->m_zip_mode = MZ_ZIP_MODE_READING; - pZip->m_archive_size = 0; - pZip->m_central_directory_file_ofs = 0; - pZip->m_total_files = 0; - - if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) - return MZ_FALSE; - memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); - return MZ_TRUE; -} - -static MZ_FORCEINLINE mz_bool mz_zip_reader_filename_less(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, mz_uint r_index) -{ - const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; - const mz_uint8 *pR = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, r_index)); - mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS), r_len = MZ_READ_LE16(pR + MZ_ZIP_CDH_FILENAME_LEN_OFS); - mz_uint8 l = 0, r = 0; - pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; pR += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - pE = pL + MZ_MIN(l_len, r_len); - while (pL < pE) - { - if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) - break; - pL++; pR++; - } - return (pL == pE) ? (l_len < r_len) : (l < r); -} - -#define MZ_SWAP_UINT32(a, b) do { mz_uint32 t = a; a = b; b = t; } MZ_MACRO_END - -// Heap sort of lowercased filenames, used to help accelerate plain central directory searches by mz_zip_reader_locate_file(). (Could also use qsort(), but it could allocate memory.) -static void mz_zip_reader_sort_central_dir_offsets_by_filename(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState = pZip->m_pState; - const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; - const mz_zip_array *pCentral_dir = &pState->m_central_dir; - mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); - const int size = pZip->m_total_files; - int start = (size - 2) >> 1, end; - while (start >= 0) - { - int child, root = start; - for ( ; ; ) - { - if ((child = (root << 1) + 1) >= size) - break; - child += (((child + 1) < size) && (mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1]))); - if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) - break; - MZ_SWAP_UINT32(pIndices[root], pIndices[child]); root = child; - } - start--; - } - - end = size - 1; - while (end > 0) - { - int child, root = 0; - MZ_SWAP_UINT32(pIndices[end], pIndices[0]); - for ( ; ; ) - { - if ((child = (root << 1) + 1) >= end) - break; - child += (((child + 1) < end) && mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[child], pIndices[child + 1])); - if (!mz_zip_reader_filename_less(pCentral_dir, pCentral_dir_offsets, pIndices[root], pIndices[child])) - break; - MZ_SWAP_UINT32(pIndices[root], pIndices[child]); root = child; - } - end--; - } -} - -static mz_bool mz_zip_reader_read_central_dir(mz_zip_archive *pZip, mz_uint32 flags) -{ - mz_uint cdir_size, num_this_disk, cdir_disk_index; - mz_uint64 cdir_ofs; - mz_int64 cur_file_ofs; - const mz_uint8 *p; - mz_uint32 buf_u32[4096 / sizeof(mz_uint32)]; mz_uint8 *pBuf = (mz_uint8 *)buf_u32; - mz_bool sort_central_dir = ((flags & MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY) == 0); - // Basic sanity checks - reject files which are too small, and check the first 4 bytes of the file to make sure a local header is there. - if (pZip->m_archive_size < MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; - // Find the end of central directory record by scanning the file from the end towards the beginning. - cur_file_ofs = MZ_MAX((mz_int64)pZip->m_archive_size - (mz_int64)sizeof(buf_u32), 0); - for ( ; ; ) - { - int i, n = (int)MZ_MIN(sizeof(buf_u32), pZip->m_archive_size - cur_file_ofs); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, n) != (mz_uint)n) - return MZ_FALSE; - for (i = n - 4; i >= 0; --i) - if (MZ_READ_LE32(pBuf + i) == MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) - break; - if (i >= 0) - { - cur_file_ofs += i; - break; - } - if ((!cur_file_ofs) || ((pZip->m_archive_size - cur_file_ofs) >= (0xFFFF + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE))) - return MZ_FALSE; - cur_file_ofs = MZ_MAX(cur_file_ofs - (sizeof(buf_u32) - 3), 0); - } - // Read and verify the end of central directory record. - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if ((MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_SIG_OFS) != MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG) || - ((pZip->m_total_files = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS)) != MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS))) - return MZ_FALSE; - - num_this_disk = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_THIS_DISK_OFS); - cdir_disk_index = MZ_READ_LE16(pBuf + MZ_ZIP_ECDH_NUM_DISK_CDIR_OFS); - if (((num_this_disk | cdir_disk_index) != 0) && ((num_this_disk != 1) || (cdir_disk_index != 1))) - return MZ_FALSE; - - if ((cdir_size = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_SIZE_OFS)) < pZip->m_total_files * MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) - return MZ_FALSE; - - cdir_ofs = MZ_READ_LE32(pBuf + MZ_ZIP_ECDH_CDIR_OFS_OFS); - if ((cdir_ofs + (mz_uint64)cdir_size) > pZip->m_archive_size) - return MZ_FALSE; - - pZip->m_central_directory_file_ofs = cdir_ofs; - - if (pZip->m_total_files) - { - mz_uint i, n; - - // Read the entire central directory into a heap block, and allocate another heap block to hold the unsorted central dir file record offsets, and another to hold the sorted indices. - if ((!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir, cdir_size, MZ_FALSE)) || - (!mz_zip_array_resize(pZip, &pZip->m_pState->m_central_dir_offsets, pZip->m_total_files, MZ_FALSE))) - return MZ_FALSE; - - if (sort_central_dir) - { - if (!mz_zip_array_resize(pZip, &pZip->m_pState->m_sorted_central_dir_offsets, pZip->m_total_files, MZ_FALSE)) - return MZ_FALSE; - } - - if (pZip->m_pRead(pZip->m_pIO_opaque, cdir_ofs, pZip->m_pState->m_central_dir.m_p, cdir_size) != cdir_size) - return MZ_FALSE; - - // Now create an index into the central directory file records, do some basic sanity checking on each record, and check for zip64 entries (which are not yet supported). - p = (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p; - for (n = cdir_size, i = 0; i < pZip->m_total_files; ++i) - { - mz_uint total_header_size, comp_size, decomp_size, disk_index; - if ((n < MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) || (MZ_READ_LE32(p) != MZ_ZIP_CENTRAL_DIR_HEADER_SIG)) - return MZ_FALSE; - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, i) = (mz_uint32)(p - (const mz_uint8 *)pZip->m_pState->m_central_dir.m_p); - if (sort_central_dir) - MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_sorted_central_dir_offsets, mz_uint32, i) = i; - comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - decomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - if (((!MZ_READ_LE32(p + MZ_ZIP_CDH_METHOD_OFS)) && (decomp_size != comp_size)) || (decomp_size && !comp_size) || (decomp_size == 0xFFFFFFFF) || (comp_size == 0xFFFFFFFF)) - return MZ_FALSE; - disk_index = MZ_READ_LE16(p + MZ_ZIP_CDH_DISK_START_OFS); - if ((disk_index != num_this_disk) && (disk_index != 1)) - return MZ_FALSE; - if (((mz_uint64)MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS) + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + comp_size) > pZip->m_archive_size) - return MZ_FALSE; - if ((total_header_size = MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS)) > n) - return MZ_FALSE; - n -= total_header_size; p += total_header_size; - } - } - - if (sort_central_dir) - mz_zip_reader_sort_central_dir_offsets_by_filename(pZip); - - return MZ_TRUE; -} - -mz_bool mz_zip_reader_init(mz_zip_archive *pZip, mz_uint64 size, mz_uint32 flags) -{ - if ((!pZip) || (!pZip->m_pRead)) - return MZ_FALSE; - if (!mz_zip_reader_init_internal(pZip, flags)) - return MZ_FALSE; - pZip->m_archive_size = size; - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end(pZip); - return MZ_FALSE; - } - return MZ_TRUE; -} - -static size_t mz_zip_mem_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - size_t s = (file_ofs >= pZip->m_archive_size) ? 0 : (size_t)MZ_MIN(pZip->m_archive_size - file_ofs, n); - memcpy(pBuf, (const mz_uint8 *)pZip->m_pState->m_pMem + file_ofs, s); - return s; -} - -mz_bool mz_zip_reader_init_mem(mz_zip_archive *pZip, const void *pMem, size_t size, mz_uint32 flags) -{ - if (!mz_zip_reader_init_internal(pZip, flags)) - return MZ_FALSE; - pZip->m_archive_size = size; - pZip->m_pRead = mz_zip_mem_read_func; - pZip->m_pIO_opaque = pZip; -#ifdef __cplusplus - pZip->m_pState->m_pMem = const_cast(pMem); -#else - pZip->m_pState->m_pMem = (void *)pMem; -#endif - pZip->m_pState->m_mem_size = size; - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end(pZip); - return MZ_FALSE; - } - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_read_func(void *pOpaque, mz_uint64 file_ofs, void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); - if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) - return 0; - return MZ_FREAD(pBuf, 1, n, pZip->m_pState->m_pFile); -} - -mz_bool mz_zip_reader_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint32 flags) -{ - mz_uint64 file_size; - MZ_FILE *pFile = MZ_FOPEN(pFilename, "rb"); - if (!pFile) - return MZ_FALSE; - if (MZ_FSEEK64(pFile, 0, SEEK_END)) - { - MZ_FCLOSE(pFile); - return MZ_FALSE; - } - file_size = MZ_FTELL64(pFile); - if (!mz_zip_reader_init_internal(pZip, flags)) - { - MZ_FCLOSE(pFile); - return MZ_FALSE; - } - pZip->m_pRead = mz_zip_file_read_func; - pZip->m_pIO_opaque = pZip; - pZip->m_pState->m_pFile = pFile; - pZip->m_archive_size = file_size; - if (!mz_zip_reader_read_central_dir(pZip, flags)) - { - mz_zip_reader_end(pZip); - return MZ_FALSE; - } - return MZ_TRUE; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_uint mz_zip_reader_get_num_files(mz_zip_archive *pZip) -{ - return pZip ? pZip->m_total_files : 0; -} - -static MZ_FORCEINLINE const mz_uint8 *mz_zip_reader_get_cdh(mz_zip_archive *pZip, mz_uint file_index) -{ - if ((!pZip) || (!pZip->m_pState) || (file_index >= pZip->m_total_files) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return NULL; - return &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); -} - -mz_bool mz_zip_reader_is_file_encrypted(mz_zip_archive *pZip, mz_uint file_index) -{ - mz_uint m_bit_flag; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if (!p) - return MZ_FALSE; - m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - return (m_bit_flag & 1); -} - -mz_bool mz_zip_reader_is_file_a_directory(mz_zip_archive *pZip, mz_uint file_index) -{ - mz_uint filename_len, external_attr; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if (!p) - return MZ_FALSE; - - // First see if the filename ends with a '/' character. - filename_len = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - if (filename_len) - { - if (*(p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_len - 1) == '/') - return MZ_TRUE; - } - - // Bugfix: This code was also checking if the internal attribute was non-zero, which wasn't correct. - // Most/all zip writers (hopefully) set DOS file/directory attributes in the low 16-bits, so check for the DOS directory flag and ignore the source OS ID in the created by field. - // FIXME: Remove this check? Is it necessary - we already check the filename. - external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); - if ((external_attr & 0x10) != 0) - return MZ_TRUE; - - return MZ_FALSE; -} - -mz_bool mz_zip_reader_file_stat(mz_zip_archive *pZip, mz_uint file_index, mz_zip_archive_file_stat *pStat) -{ - mz_uint n; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if ((!p) || (!pStat)) - return MZ_FALSE; - - // Unpack the central directory record. - pStat->m_file_index = file_index; - pStat->m_central_dir_ofs = MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index); - pStat->m_version_made_by = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_MADE_BY_OFS); - pStat->m_version_needed = MZ_READ_LE16(p + MZ_ZIP_CDH_VERSION_NEEDED_OFS); - pStat->m_bit_flag = MZ_READ_LE16(p + MZ_ZIP_CDH_BIT_FLAG_OFS); - pStat->m_method = MZ_READ_LE16(p + MZ_ZIP_CDH_METHOD_OFS); -#ifndef MINIZ_NO_TIME - pStat->m_time = mz_zip_dos_to_time_t(MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_TIME_OFS), MZ_READ_LE16(p + MZ_ZIP_CDH_FILE_DATE_OFS)); -#endif - pStat->m_crc32 = MZ_READ_LE32(p + MZ_ZIP_CDH_CRC32_OFS); - pStat->m_comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - pStat->m_uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - pStat->m_internal_attr = MZ_READ_LE16(p + MZ_ZIP_CDH_INTERNAL_ATTR_OFS); - pStat->m_external_attr = MZ_READ_LE32(p + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS); - pStat->m_local_header_ofs = MZ_READ_LE32(p + MZ_ZIP_CDH_LOCAL_HEADER_OFS); - - // Copy as much of the filename and comment as possible. - n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILENAME_SIZE - 1); - memcpy(pStat->m_filename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); pStat->m_filename[n] = '\0'; - - n = MZ_READ_LE16(p + MZ_ZIP_CDH_COMMENT_LEN_OFS); n = MZ_MIN(n, MZ_ZIP_MAX_ARCHIVE_FILE_COMMENT_SIZE - 1); - pStat->m_comment_size = n; - memcpy(pStat->m_comment, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(p + MZ_ZIP_CDH_EXTRA_LEN_OFS), n); pStat->m_comment[n] = '\0'; - - return MZ_TRUE; -} - -mz_uint mz_zip_reader_get_filename(mz_zip_archive *pZip, mz_uint file_index, char *pFilename, mz_uint filename_buf_size) -{ - mz_uint n; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - if (!p) { if (filename_buf_size) pFilename[0] = '\0'; return 0; } - n = MZ_READ_LE16(p + MZ_ZIP_CDH_FILENAME_LEN_OFS); - if (filename_buf_size) - { - n = MZ_MIN(n, filename_buf_size - 1); - memcpy(pFilename, p + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n); - pFilename[n] = '\0'; - } - return n + 1; -} - -static MZ_FORCEINLINE mz_bool mz_zip_reader_string_equal(const char *pA, const char *pB, mz_uint len, mz_uint flags) -{ - mz_uint i; - if (flags & MZ_ZIP_FLAG_CASE_SENSITIVE) - return 0 == memcmp(pA, pB, len); - for (i = 0; i < len; ++i) - if (MZ_TOLOWER(pA[i]) != MZ_TOLOWER(pB[i])) - return MZ_FALSE; - return MZ_TRUE; -} - -static MZ_FORCEINLINE int mz_zip_reader_filename_compare(const mz_zip_array *pCentral_dir_array, const mz_zip_array *pCentral_dir_offsets, mz_uint l_index, const char *pR, mz_uint r_len) -{ - const mz_uint8 *pL = &MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_array, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(pCentral_dir_offsets, mz_uint32, l_index)), *pE; - mz_uint l_len = MZ_READ_LE16(pL + MZ_ZIP_CDH_FILENAME_LEN_OFS); - mz_uint8 l = 0, r = 0; - pL += MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - pE = pL + MZ_MIN(l_len, r_len); - while (pL < pE) - { - if ((l = MZ_TOLOWER(*pL)) != (r = MZ_TOLOWER(*pR))) - break; - pL++; pR++; - } - return (pL == pE) ? (int)(l_len - r_len) : (l - r); -} - -static int mz_zip_reader_locate_file_binary_search(mz_zip_archive *pZip, const char *pFilename) -{ - mz_zip_internal_state *pState = pZip->m_pState; - const mz_zip_array *pCentral_dir_offsets = &pState->m_central_dir_offsets; - const mz_zip_array *pCentral_dir = &pState->m_central_dir; - mz_uint32 *pIndices = &MZ_ZIP_ARRAY_ELEMENT(&pState->m_sorted_central_dir_offsets, mz_uint32, 0); - const int size = pZip->m_total_files; - const mz_uint filename_len = (mz_uint)strlen(pFilename); - int l = 0, h = size - 1; - while (l <= h) - { - int m = (l + h) >> 1, file_index = pIndices[m], comp = mz_zip_reader_filename_compare(pCentral_dir, pCentral_dir_offsets, file_index, pFilename, filename_len); - if (!comp) - return file_index; - else if (comp < 0) - l = m + 1; - else - h = m - 1; - } - return -1; -} - -int mz_zip_reader_locate_file(mz_zip_archive *pZip, const char *pName, const char *pComment, mz_uint flags) -{ - mz_uint file_index; size_t name_len, comment_len; - if ((!pZip) || (!pZip->m_pState) || (!pName) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return -1; - if (((flags & (MZ_ZIP_FLAG_IGNORE_PATH | MZ_ZIP_FLAG_CASE_SENSITIVE)) == 0) && (!pComment) && (pZip->m_pState->m_sorted_central_dir_offsets.m_size)) - return mz_zip_reader_locate_file_binary_search(pZip, pName); - name_len = strlen(pName); if (name_len > 0xFFFF) return -1; - comment_len = pComment ? strlen(pComment) : 0; if (comment_len > 0xFFFF) return -1; - for (file_index = 0; file_index < pZip->m_total_files; file_index++) - { - const mz_uint8 *pHeader = &MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir, mz_uint8, MZ_ZIP_ARRAY_ELEMENT(&pZip->m_pState->m_central_dir_offsets, mz_uint32, file_index)); - mz_uint filename_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_FILENAME_LEN_OFS); - const char *pFilename = (const char *)pHeader + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE; - if (filename_len < name_len) - continue; - if (comment_len) - { - mz_uint file_extra_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_EXTRA_LEN_OFS), file_comment_len = MZ_READ_LE16(pHeader + MZ_ZIP_CDH_COMMENT_LEN_OFS); - const char *pFile_comment = pFilename + filename_len + file_extra_len; - if ((file_comment_len != comment_len) || (!mz_zip_reader_string_equal(pComment, pFile_comment, file_comment_len, flags))) - continue; - } - if ((flags & MZ_ZIP_FLAG_IGNORE_PATH) && (filename_len)) - { - int ofs = filename_len - 1; - do - { - if ((pFilename[ofs] == '/') || (pFilename[ofs] == '\\') || (pFilename[ofs] == ':')) - break; - } while (--ofs >= 0); - ofs++; - pFilename += ofs; filename_len -= ofs; - } - if ((filename_len == name_len) && (mz_zip_reader_string_equal(pName, pFilename, filename_len, flags))) - return file_index; - } - return -1; -} - -mz_bool mz_zip_reader_extract_to_mem_no_alloc(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) -{ - int status = TINFL_STATUS_DONE; - mz_uint64 needed_size, cur_file_ofs, comp_remaining, out_buf_ofs = 0, read_buf_size, read_buf_ofs = 0, read_buf_avail; - mz_zip_archive_file_stat file_stat; - void *pRead_buf; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - tinfl_decompressor inflator; - - if ((buf_size) && (!pBuf)) - return MZ_FALSE; - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - // Empty file, or a directory (but not always a directory - I've seen odd zips with directories that have compressed data which inflates to 0 bytes) - if (!file_stat.m_comp_size) - return MZ_TRUE; - - // Entry is a subdirectory (I've seen old zips with dir entries which have compressed deflate data which inflates to 0 bytes, but these entries claim to uncompress to 512 bytes in the headers). - // I'm torn how to handle this case - should it fail instead? - if (mz_zip_reader_is_file_a_directory(pZip, file_index)) - return MZ_TRUE; - - // Encryption and patch files are not supported. - if (file_stat.m_bit_flag & (1 | 32)) - return MZ_FALSE; - - // This function only supports stored and deflate. - if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) - return MZ_FALSE; - - // Ensure supplied output buffer is large enough. - needed_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? file_stat.m_comp_size : file_stat.m_uncomp_size; - if (buf_size < needed_size) - return MZ_FALSE; - - // Read and parse the local directory entry. - cur_file_ofs = file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return MZ_FALSE; - - cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) - return MZ_FALSE; - - if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) - { - // The file is stored or the caller has requested the compressed data. - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pBuf, (size_t)needed_size) != needed_size) - return MZ_FALSE; - return ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) != 0) || (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) == file_stat.m_crc32); - } - - // Decompress the file either directly from memory or from a file input buffer. - tinfl_init(&inflator); - - if (pZip->m_pState->m_pMem) - { - // Read directly from the archive in memory. - pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; - read_buf_size = read_buf_avail = file_stat.m_comp_size; - comp_remaining = 0; - } - else if (pUser_read_buf) - { - // Use a user provided read buffer. - if (!user_read_buf_size) - return MZ_FALSE; - pRead_buf = (mz_uint8 *)pUser_read_buf; - read_buf_size = user_read_buf_size; - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - else - { - // Temporarily allocate a read buffer. - read_buf_size = MZ_MIN(file_stat.m_comp_size, MZ_ZIP_MAX_IO_BUF_SIZE); -#ifdef _MSC_VER - if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF)) -#else - if (((sizeof(size_t) == sizeof(mz_uint32))) && (read_buf_size > 0x7FFFFFFF)) -#endif - return MZ_FALSE; - if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) - return MZ_FALSE; - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - - do - { - size_t in_buf_size, out_buf_size = (size_t)(file_stat.m_uncomp_size - out_buf_ofs); - if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - cur_file_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - read_buf_ofs = 0; - } - in_buf_size = (size_t)read_buf_avail; - status = tinfl_decompress(&inflator, (mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pBuf, (mz_uint8 *)pBuf + out_buf_ofs, &out_buf_size, TINFL_FLAG_USING_NON_WRAPPING_OUTPUT_BUF | (comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0)); - read_buf_avail -= in_buf_size; - read_buf_ofs += in_buf_size; - out_buf_ofs += out_buf_size; - } while (status == TINFL_STATUS_NEEDS_MORE_INPUT); - - if (status == TINFL_STATUS_DONE) - { - // Make sure the entire file was decompressed, and check its CRC. - if ((out_buf_ofs != file_stat.m_uncomp_size) || (mz_crc32(MZ_CRC32_INIT, (const mz_uint8 *)pBuf, (size_t)file_stat.m_uncomp_size) != file_stat.m_crc32)) - status = TINFL_STATUS_FAILED; - } - - if ((!pZip->m_pState->m_pMem) && (!pUser_read_buf)) - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - - return status == TINFL_STATUS_DONE; -} - -mz_bool mz_zip_reader_extract_file_to_mem_no_alloc(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags, void *pUser_read_buf, size_t user_read_buf_size) -{ - int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); - if (file_index < 0) - return MZ_FALSE; - return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, pUser_read_buf, user_read_buf_size); -} - -mz_bool mz_zip_reader_extract_to_mem(mz_zip_archive *pZip, mz_uint file_index, void *pBuf, size_t buf_size, mz_uint flags) -{ - return mz_zip_reader_extract_to_mem_no_alloc(pZip, file_index, pBuf, buf_size, flags, NULL, 0); -} - -mz_bool mz_zip_reader_extract_file_to_mem(mz_zip_archive *pZip, const char *pFilename, void *pBuf, size_t buf_size, mz_uint flags) -{ - return mz_zip_reader_extract_file_to_mem_no_alloc(pZip, pFilename, pBuf, buf_size, flags, NULL, 0); -} - -void *mz_zip_reader_extract_to_heap(mz_zip_archive *pZip, mz_uint file_index, size_t *pSize, mz_uint flags) -{ - mz_uint64 comp_size, uncomp_size, alloc_size; - const mz_uint8 *p = mz_zip_reader_get_cdh(pZip, file_index); - void *pBuf; - - if (pSize) - *pSize = 0; - if (!p) - return NULL; - - comp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - uncomp_size = MZ_READ_LE32(p + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS); - - alloc_size = (flags & MZ_ZIP_FLAG_COMPRESSED_DATA) ? comp_size : uncomp_size; -#ifdef _MSC_VER - if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF)) -#else - if (((sizeof(size_t) == sizeof(mz_uint32))) && (alloc_size > 0x7FFFFFFF)) -#endif - return NULL; - if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)alloc_size))) - return NULL; - - if (!mz_zip_reader_extract_to_mem(pZip, file_index, pBuf, (size_t)alloc_size, flags)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return NULL; - } - - if (pSize) *pSize = (size_t)alloc_size; - return pBuf; -} - -void *mz_zip_reader_extract_file_to_heap(mz_zip_archive *pZip, const char *pFilename, size_t *pSize, mz_uint flags) -{ - int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); - if (file_index < 0) - { - if (pSize) *pSize = 0; - return MZ_FALSE; - } - return mz_zip_reader_extract_to_heap(pZip, file_index, pSize, flags); -} - -mz_bool mz_zip_reader_extract_to_callback(mz_zip_archive *pZip, mz_uint file_index, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) -{ - int status = TINFL_STATUS_DONE; mz_uint file_crc32 = MZ_CRC32_INIT; - mz_uint64 read_buf_size, read_buf_ofs = 0, read_buf_avail, comp_remaining, out_buf_ofs = 0, cur_file_ofs; - mz_zip_archive_file_stat file_stat; - void *pRead_buf = NULL; void *pWrite_buf = NULL; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - - // Empty file, or a directory (but not always a directory - I've seen odd zips with directories that have compressed data which inflates to 0 bytes) - if (!file_stat.m_comp_size) - return MZ_TRUE; - - // Entry is a subdirectory (I've seen old zips with dir entries which have compressed deflate data which inflates to 0 bytes, but these entries claim to uncompress to 512 bytes in the headers). - // I'm torn how to handle this case - should it fail instead? - if (mz_zip_reader_is_file_a_directory(pZip, file_index)) - return MZ_TRUE; - - // Encryption and patch files are not supported. - if (file_stat.m_bit_flag & (1 | 32)) - return MZ_FALSE; - - // This function only supports stored and deflate. - if ((!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (file_stat.m_method != 0) && (file_stat.m_method != MZ_DEFLATED)) - return MZ_FALSE; - - // Read and parse the local directory entry. - cur_file_ofs = file_stat.m_local_header_ofs; - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return MZ_FALSE; - - cur_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - if ((cur_file_ofs + file_stat.m_comp_size) > pZip->m_archive_size) - return MZ_FALSE; - - // Decompress the file either directly from memory or from a file input buffer. - if (pZip->m_pState->m_pMem) - { - pRead_buf = (mz_uint8 *)pZip->m_pState->m_pMem + cur_file_ofs; - read_buf_size = read_buf_avail = file_stat.m_comp_size; - comp_remaining = 0; - } - else - { - read_buf_size = MZ_MIN(file_stat.m_comp_size, MZ_ZIP_MAX_IO_BUF_SIZE); - if (NULL == (pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)read_buf_size))) - return MZ_FALSE; - read_buf_avail = 0; - comp_remaining = file_stat.m_comp_size; - } - - if ((flags & MZ_ZIP_FLAG_COMPRESSED_DATA) || (!file_stat.m_method)) - { - // The file is stored or the caller has requested the compressed data. - if (pZip->m_pState->m_pMem) - { -#ifdef _MSC_VER - if (((0, sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > 0xFFFFFFFF)) -#else - if (((sizeof(size_t) == sizeof(mz_uint32))) && (file_stat.m_comp_size > 0xFFFFFFFF)) -#endif - return MZ_FALSE; - if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)file_stat.m_comp_size) != file_stat.m_comp_size) - status = TINFL_STATUS_FAILED; - else if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)file_stat.m_comp_size); - cur_file_ofs += file_stat.m_comp_size; - out_buf_ofs += file_stat.m_comp_size; - comp_remaining = 0; - } - else - { - while (comp_remaining) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - - if (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - file_crc32 = (mz_uint32)mz_crc32(file_crc32, (const mz_uint8 *)pRead_buf, (size_t)read_buf_avail); - - if (pCallback(pOpaque, out_buf_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - cur_file_ofs += read_buf_avail; - out_buf_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - } - } - } - else - { - tinfl_decompressor inflator; - tinfl_init(&inflator); - - if (NULL == (pWrite_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, TINFL_LZ_DICT_SIZE))) - status = TINFL_STATUS_FAILED; - else - { - do - { - mz_uint8 *pWrite_buf_cur = (mz_uint8 *)pWrite_buf + (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - size_t in_buf_size, out_buf_size = TINFL_LZ_DICT_SIZE - (out_buf_ofs & (TINFL_LZ_DICT_SIZE - 1)); - if ((!read_buf_avail) && (!pZip->m_pState->m_pMem)) - { - read_buf_avail = MZ_MIN(read_buf_size, comp_remaining); - if (pZip->m_pRead(pZip->m_pIO_opaque, cur_file_ofs, pRead_buf, (size_t)read_buf_avail) != read_buf_avail) - { - status = TINFL_STATUS_FAILED; - break; - } - cur_file_ofs += read_buf_avail; - comp_remaining -= read_buf_avail; - read_buf_ofs = 0; - } - - in_buf_size = (size_t)read_buf_avail; - status = tinfl_decompress(&inflator, (const mz_uint8 *)pRead_buf + read_buf_ofs, &in_buf_size, (mz_uint8 *)pWrite_buf, pWrite_buf_cur, &out_buf_size, comp_remaining ? TINFL_FLAG_HAS_MORE_INPUT : 0); - read_buf_avail -= in_buf_size; - read_buf_ofs += in_buf_size; - - if (out_buf_size) - { - if (pCallback(pOpaque, out_buf_ofs, pWrite_buf_cur, out_buf_size) != out_buf_size) - { - status = TINFL_STATUS_FAILED; - break; - } - file_crc32 = (mz_uint32)mz_crc32(file_crc32, pWrite_buf_cur, out_buf_size); - if ((out_buf_ofs += out_buf_size) > file_stat.m_uncomp_size) - { - status = TINFL_STATUS_FAILED; - break; - } - } - } while ((status == TINFL_STATUS_NEEDS_MORE_INPUT) || (status == TINFL_STATUS_HAS_MORE_OUTPUT)); - } - } - - if ((status == TINFL_STATUS_DONE) && (!(flags & MZ_ZIP_FLAG_COMPRESSED_DATA))) - { - // Make sure the entire file was decompressed, and check its CRC. - if ((out_buf_ofs != file_stat.m_uncomp_size) || (file_crc32 != file_stat.m_crc32)) - status = TINFL_STATUS_FAILED; - } - - if (!pZip->m_pState->m_pMem) - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - if (pWrite_buf) - pZip->m_pFree(pZip->m_pAlloc_opaque, pWrite_buf); - - return status == TINFL_STATUS_DONE; -} - -mz_bool mz_zip_reader_extract_file_to_callback(mz_zip_archive *pZip, const char *pFilename, mz_file_write_func pCallback, void *pOpaque, mz_uint flags) -{ - int file_index = mz_zip_reader_locate_file(pZip, pFilename, NULL, flags); - if (file_index < 0) - return MZ_FALSE; - return mz_zip_reader_extract_to_callback(pZip, file_index, pCallback, pOpaque, flags); -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_write_callback(void *pOpaque, mz_uint64 ofs, const void *pBuf, size_t n) -{ - (void)ofs; return MZ_FWRITE(pBuf, 1, n, (MZ_FILE*)pOpaque); -} - -mz_bool mz_zip_reader_extract_to_file(mz_zip_archive *pZip, mz_uint file_index, const char *pDst_filename, mz_uint flags) -{ - mz_bool status; - mz_zip_archive_file_stat file_stat; - MZ_FILE *pFile; - if (!mz_zip_reader_file_stat(pZip, file_index, &file_stat)) - return MZ_FALSE; - pFile = MZ_FOPEN(pDst_filename, "wb"); - if (!pFile) - return MZ_FALSE; - status = mz_zip_reader_extract_to_callback(pZip, file_index, mz_zip_file_write_callback, pFile, flags); - if (MZ_FCLOSE(pFile) == EOF) - return MZ_FALSE; -#ifndef MINIZ_NO_TIME - if (status) - mz_zip_set_file_times(pDst_filename, file_stat.m_time, file_stat.m_time); -#endif - return status; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_bool mz_zip_reader_end(mz_zip_archive *pZip) -{ - if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return MZ_FALSE; - - if (pZip->m_pState) - { - mz_zip_internal_state *pState = pZip->m_pState; pZip->m_pState = NULL; - mz_zip_array_clear(pZip, &pState->m_central_dir); - mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); - mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); - -#ifndef MINIZ_NO_STDIO - if (pState->m_pFile) - { - MZ_FCLOSE(pState->m_pFile); - pState->m_pFile = NULL; - } -#endif // #ifndef MINIZ_NO_STDIO - - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - } - pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; - - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_reader_extract_file_to_file(mz_zip_archive *pZip, const char *pArchive_filename, const char *pDst_filename, mz_uint flags) -{ - int file_index = mz_zip_reader_locate_file(pZip, pArchive_filename, NULL, flags); - if (file_index < 0) - return MZ_FALSE; - return mz_zip_reader_extract_to_file(pZip, file_index, pDst_filename, flags); -} -#endif - -// ------------------- .ZIP archive writing - -#ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -static void mz_write_le16(mz_uint8 *p, mz_uint16 v) { p[0] = (mz_uint8)v; p[1] = (mz_uint8)(v >> 8); } -static void mz_write_le32(mz_uint8 *p, mz_uint32 v) { p[0] = (mz_uint8)v; p[1] = (mz_uint8)(v >> 8); p[2] = (mz_uint8)(v >> 16); p[3] = (mz_uint8)(v >> 24); } -#define MZ_WRITE_LE16(p, v) mz_write_le16((mz_uint8 *)(p), (mz_uint16)(v)) -#define MZ_WRITE_LE32(p, v) mz_write_le32((mz_uint8 *)(p), (mz_uint32)(v)) - -mz_bool mz_zip_writer_init(mz_zip_archive *pZip, mz_uint64 existing_size) -{ - if ((!pZip) || (pZip->m_pState) || (!pZip->m_pWrite) || (pZip->m_zip_mode != MZ_ZIP_MODE_INVALID)) - return MZ_FALSE; - - if (pZip->m_file_offset_alignment) - { - // Ensure user specified file offset alignment is a power of 2. - if (pZip->m_file_offset_alignment & (pZip->m_file_offset_alignment - 1)) - return MZ_FALSE; - } - - if (!pZip->m_pAlloc) pZip->m_pAlloc = def_alloc_func; - if (!pZip->m_pFree) pZip->m_pFree = def_free_func; - if (!pZip->m_pRealloc) pZip->m_pRealloc = def_realloc_func; - - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; - pZip->m_archive_size = existing_size; - pZip->m_central_directory_file_ofs = 0; - pZip->m_total_files = 0; - - if (NULL == (pZip->m_pState = (mz_zip_internal_state *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(mz_zip_internal_state)))) - return MZ_FALSE; - memset(pZip->m_pState, 0, sizeof(mz_zip_internal_state)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir, sizeof(mz_uint8)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_central_dir_offsets, sizeof(mz_uint32)); - MZ_ZIP_ARRAY_SET_ELEMENT_SIZE(&pZip->m_pState->m_sorted_central_dir_offsets, sizeof(mz_uint32)); - return MZ_TRUE; -} - -static size_t mz_zip_heap_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_zip_internal_state *pState = pZip->m_pState; - mz_uint64 new_size = MZ_MAX(file_ofs + n, pState->m_mem_size); -#ifdef _MSC_VER - if ((!n) || ((0, sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF))) -#else - if ((!n) || ((sizeof(size_t) == sizeof(mz_uint32)) && (new_size > 0x7FFFFFFF))) -#endif - return 0; - if (new_size > pState->m_mem_capacity) - { - void *pNew_block; - size_t new_capacity = MZ_MAX(64, pState->m_mem_capacity); while (new_capacity < new_size) new_capacity *= 2; - if (NULL == (pNew_block = pZip->m_pRealloc(pZip->m_pAlloc_opaque, pState->m_pMem, 1, new_capacity))) - return 0; - pState->m_pMem = pNew_block; pState->m_mem_capacity = new_capacity; - } - memcpy((mz_uint8 *)pState->m_pMem + file_ofs, pBuf, n); - pState->m_mem_size = (size_t)new_size; - return n; -} - -mz_bool mz_zip_writer_init_heap(mz_zip_archive *pZip, size_t size_to_reserve_at_beginning, size_t initial_allocation_size) -{ - pZip->m_pWrite = mz_zip_heap_write_func; - pZip->m_pIO_opaque = pZip; - if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning)) - return MZ_FALSE; - if (0 != (initial_allocation_size = MZ_MAX(initial_allocation_size, size_to_reserve_at_beginning))) - { - if (NULL == (pZip->m_pState->m_pMem = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, initial_allocation_size))) - { - mz_zip_writer_end(pZip); - return MZ_FALSE; - } - pZip->m_pState->m_mem_capacity = initial_allocation_size; - } - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -static size_t mz_zip_file_write_func(void *pOpaque, mz_uint64 file_ofs, const void *pBuf, size_t n) -{ - mz_zip_archive *pZip = (mz_zip_archive *)pOpaque; - mz_int64 cur_ofs = MZ_FTELL64(pZip->m_pState->m_pFile); - if (((mz_int64)file_ofs < 0) || (((cur_ofs != (mz_int64)file_ofs)) && (MZ_FSEEK64(pZip->m_pState->m_pFile, (mz_int64)file_ofs, SEEK_SET)))) - return 0; - return MZ_FWRITE(pBuf, 1, n, pZip->m_pState->m_pFile); -} - -mz_bool mz_zip_writer_init_file(mz_zip_archive *pZip, const char *pFilename, mz_uint64 size_to_reserve_at_beginning) -{ - MZ_FILE *pFile; - pZip->m_pWrite = mz_zip_file_write_func; - pZip->m_pIO_opaque = pZip; - if (!mz_zip_writer_init(pZip, size_to_reserve_at_beginning)) - return MZ_FALSE; - if (NULL == (pFile = MZ_FOPEN(pFilename, "wb"))) - { - mz_zip_writer_end(pZip); - return MZ_FALSE; - } - pZip->m_pState->m_pFile = pFile; - if (size_to_reserve_at_beginning) - { - mz_uint64 cur_ofs = 0; char buf[4096]; MZ_CLEAR_OBJ(buf); - do - { - size_t n = (size_t)MZ_MIN(sizeof(buf), size_to_reserve_at_beginning); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_ofs, buf, n) != n) - { - mz_zip_writer_end(pZip); - return MZ_FALSE; - } - cur_ofs += n; size_to_reserve_at_beginning -= n; - } while (size_to_reserve_at_beginning); - } - return MZ_TRUE; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_bool mz_zip_writer_init_from_reader(mz_zip_archive *pZip, const char *pFilename) -{ - mz_zip_internal_state *pState; - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_READING)) - return MZ_FALSE; - // No sense in trying to write to an archive that's already at the support max size - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + MZ_ZIP_LOCAL_DIR_HEADER_SIZE) > 0xFFFFFFFF)) - return MZ_FALSE; - - pState = pZip->m_pState; - - if (pState->m_pFile) - { -#ifdef MINIZ_NO_STDIO - pFilename; return MZ_FALSE; -#else - // Archive is being read from stdio - try to reopen as writable. - if (pZip->m_pIO_opaque != pZip) - return MZ_FALSE; - if (!pFilename) - return MZ_FALSE; - pZip->m_pWrite = mz_zip_file_write_func; - if (NULL == (pState->m_pFile = MZ_FREOPEN(pFilename, "r+b", pState->m_pFile))) - { - // The mz_zip_archive is now in a bogus state because pState->m_pFile is NULL, so just close it. - mz_zip_reader_end(pZip); - return MZ_FALSE; - } -#endif // #ifdef MINIZ_NO_STDIO - } - else if (pState->m_pMem) - { - // Archive lives in a memory block. Assume it's from the heap that we can resize using the realloc callback. - if (pZip->m_pIO_opaque != pZip) - return MZ_FALSE; - pState->m_mem_capacity = pState->m_mem_size; - pZip->m_pWrite = mz_zip_heap_write_func; - } - // Archive is being read via a user provided read function - make sure the user has specified a write function too. - else if (!pZip->m_pWrite) - return MZ_FALSE; - - // Start writing new files at the archive's current central directory location. - pZip->m_archive_size = pZip->m_central_directory_file_ofs; - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING; - pZip->m_central_directory_file_ofs = 0; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_add_mem(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, mz_uint level_and_flags) -{ - return mz_zip_writer_add_mem_ex(pZip, pArchive_name, pBuf, buf_size, NULL, 0, level_and_flags, 0, 0); -} - -typedef struct -{ - mz_zip_archive *m_pZip; - mz_uint64 m_cur_archive_file_ofs; - mz_uint64 m_comp_size; -} mz_zip_writer_add_state; - -static mz_bool mz_zip_writer_add_put_buf_callback(const void* pBuf, int len, void *pUser) -{ - mz_zip_writer_add_state *pState = (mz_zip_writer_add_state *)pUser; - if ((int)pState->m_pZip->m_pWrite(pState->m_pZip->m_pIO_opaque, pState->m_cur_archive_file_ofs, pBuf, len) != len) - return MZ_FALSE; - pState->m_cur_archive_file_ofs += len; - pState->m_comp_size += len; - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_create_local_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date) -{ - (void)pZip; - memset(pDst, 0, MZ_ZIP_LOCAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_SIG_OFS, MZ_ZIP_LOCAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_VERSION_NEEDED_OFS, method ? 20 : 0); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_BIT_FLAG_OFS, bit_flags); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_METHOD_OFS, method); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_TIME_OFS, dos_time); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILE_DATE_OFS, dos_date); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_CRC32_OFS, uncomp_crc32); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_COMPRESSED_SIZE_OFS, comp_size); - MZ_WRITE_LE32(pDst + MZ_ZIP_LDH_DECOMPRESSED_SIZE_OFS, uncomp_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_FILENAME_LEN_OFS, filename_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_LDH_EXTRA_LEN_OFS, extra_size); - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_create_central_dir_header(mz_zip_archive *pZip, mz_uint8 *pDst, mz_uint16 filename_size, mz_uint16 extra_size, mz_uint16 comment_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, mz_uint64 local_header_ofs, mz_uint32 ext_attributes) -{ - (void)pZip; - memset(pDst, 0, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_SIG_OFS, MZ_ZIP_CENTRAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_VERSION_NEEDED_OFS, method ? 20 : 0); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_BIT_FLAG_OFS, bit_flags); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_METHOD_OFS, method); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_TIME_OFS, dos_time); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILE_DATE_OFS, dos_date); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_CRC32_OFS, uncomp_crc32); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS, comp_size); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_DECOMPRESSED_SIZE_OFS, uncomp_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_FILENAME_LEN_OFS, filename_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_EXTRA_LEN_OFS, extra_size); - MZ_WRITE_LE16(pDst + MZ_ZIP_CDH_COMMENT_LEN_OFS, comment_size); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_EXTERNAL_ATTR_OFS, ext_attributes); - MZ_WRITE_LE32(pDst + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_header_ofs); - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_add_to_central_dir(mz_zip_archive *pZip, const char *pFilename, mz_uint16 filename_size, const void *pExtra, mz_uint16 extra_size, const void *pComment, mz_uint16 comment_size, mz_uint64 uncomp_size, mz_uint64 comp_size, mz_uint32 uncomp_crc32, mz_uint16 method, mz_uint16 bit_flags, mz_uint16 dos_time, mz_uint16 dos_date, mz_uint64 local_header_ofs, mz_uint32 ext_attributes) -{ - mz_zip_internal_state *pState = pZip->m_pState; - mz_uint32 central_dir_ofs = (mz_uint32)pState->m_central_dir.m_size; - size_t orig_central_dir_size = pState->m_central_dir.m_size; - mz_uint8 central_dir_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; - - // No zip64 support yet - if ((local_header_ofs > 0xFFFFFFFF) || (((mz_uint64)pState->m_central_dir.m_size + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + filename_size + extra_size + comment_size) > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_writer_create_central_dir_header(pZip, central_dir_header, filename_size, extra_size, comment_size, uncomp_size, comp_size, uncomp_crc32, method, bit_flags, dos_time, dos_date, local_header_ofs, ext_attributes)) - return MZ_FALSE; - - if ((!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_dir_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pFilename, filename_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pExtra, extra_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pComment, comment_size)) || - (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, ¢ral_dir_ofs, 1))) - { - // Try to push the central directory array back into its original state. - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return MZ_FALSE; - } - - return MZ_TRUE; -} - -static mz_bool mz_zip_writer_validate_archive_name(const char *pArchive_name) -{ - // Basic ZIP archive filename validity checks: Valid filenames cannot start with a forward slash, cannot contain a drive letter, and cannot use DOS-style backward slashes. - if (*pArchive_name == '/') - return MZ_FALSE; - while (*pArchive_name) - { - if ((*pArchive_name == '\\') || (*pArchive_name == ':')) - return MZ_FALSE; - pArchive_name++; - } - return MZ_TRUE; -} - -static mz_uint mz_zip_writer_compute_padding_needed_for_file_alignment(mz_zip_archive *pZip) -{ - mz_uint32 n; - if (!pZip->m_file_offset_alignment) - return 0; - n = (mz_uint32)(pZip->m_archive_size & (pZip->m_file_offset_alignment - 1)); - return (pZip->m_file_offset_alignment - n) & (pZip->m_file_offset_alignment - 1); -} - -static mz_bool mz_zip_writer_write_zeros(mz_zip_archive *pZip, mz_uint64 cur_file_ofs, mz_uint32 n) -{ - char buf[4096]; - memset(buf, 0, MZ_MIN(sizeof(buf), n)); - while (n) - { - mz_uint32 s = MZ_MIN(sizeof(buf), n); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_file_ofs, buf, s) != s) - return MZ_FALSE; - cur_file_ofs += s; n -= s; - } - return MZ_TRUE; -} - -mz_bool mz_zip_writer_add_mem_ex(mz_zip_archive *pZip, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags, mz_uint64 uncomp_size, mz_uint32 uncomp_crc32) -{ - mz_uint16 method = 0, dos_time = 0, dos_date = 0; - mz_uint level, ext_attributes = 0, num_alignment_padding_bytes; - mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, comp_size = 0; - size_t archive_name_size; - mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; - tdefl_compressor *pComp = NULL; - mz_bool store_data_uncompressed; - mz_zip_internal_state *pState; - - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - level = level_and_flags & 0xF; - store_data_uncompressed = ((!level) || (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)); - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || ((buf_size) && (!pBuf)) || (!pArchive_name) || ((comment_size) && (!pComment)) || (pZip->m_total_files == 0xFFFF) || (level > MZ_UBER_COMPRESSION)) - return MZ_FALSE; - - pState = pZip->m_pState; - - if ((!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) && (uncomp_size)) - return MZ_FALSE; - // No zip64 support yet - if ((buf_size > 0xFFFFFFFF) || (uncomp_size > 0xFFFFFFFF)) - return MZ_FALSE; - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return MZ_FALSE; - -#ifndef MINIZ_NO_TIME - { - time_t cur_time; time(&cur_time); - mz_zip_time_to_dos_time(cur_time, &dos_time, &dos_date); - } -#endif // #ifndef MINIZ_NO_TIME - - archive_name_size = strlen(pArchive_name); - if (archive_name_size > 0xFFFF) - return MZ_FALSE; - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - // no zip64 support yet - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + comment_size + archive_name_size) > 0xFFFFFFFF)) - return MZ_FALSE; - - if ((archive_name_size) && (pArchive_name[archive_name_size - 1] == '/')) - { - // Set DOS Subdirectory attribute bit. - ext_attributes |= 0x10; - // Subdirectories cannot contain data. - if ((buf_size) || (uncomp_size)) - return MZ_FALSE; - } - - // Try to do any allocations before writing to the archive, so if an allocation fails the file remains unmodified. (A good idea if we're doing an in-place modification.) - if ((!mz_zip_array_ensure_room(pZip, &pState->m_central_dir, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + archive_name_size + comment_size)) || (!mz_zip_array_ensure_room(pZip, &pState->m_central_dir_offsets, 1))) - return MZ_FALSE; - - if ((!store_data_uncompressed) && (buf_size)) - { - if (NULL == (pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)))) - return MZ_FALSE; - } - - if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header))) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - local_dir_header_ofs += num_alignment_padding_bytes; - if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); } - cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header); - - MZ_CLEAR_OBJ(local_dir_header); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - cur_archive_file_ofs += archive_name_size; - - if (!(level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA)) - { - uncomp_crc32 = (mz_uint32)mz_crc32(MZ_CRC32_INIT, (const mz_uint8*)pBuf, buf_size); - uncomp_size = buf_size; - if (uncomp_size <= 3) - { - level = 0; - store_data_uncompressed = MZ_TRUE; - } - } - - if (store_data_uncompressed) - { - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pBuf, buf_size) != buf_size) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - - cur_archive_file_ofs += buf_size; - comp_size = buf_size; - - if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA) - method = MZ_DEFLATED; - } - else if (buf_size) - { - mz_zip_writer_add_state state; - - state.m_pZip = pZip; - state.m_cur_archive_file_ofs = cur_archive_file_ofs; - state.m_comp_size = 0; - - if ((tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) || - (tdefl_compress_buffer(pComp, pBuf, buf_size, TDEFL_FINISH) != TDEFL_STATUS_DONE)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - return MZ_FALSE; - } - - comp_size = state.m_comp_size; - cur_archive_file_ofs = state.m_cur_archive_file_ofs; - - method = MZ_DEFLATED; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - pComp = NULL; - - // no zip64 support yet - if ((comp_size > 0xFFFFFFFF) || (cur_archive_file_ofs > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date)) - return MZ_FALSE; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return MZ_FALSE; - - if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, comment_size, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date, local_dir_header_ofs, ext_attributes)) - return MZ_FALSE; - - pZip->m_total_files++; - pZip->m_archive_size = cur_archive_file_ofs; - - return MZ_TRUE; -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_writer_add_file(mz_zip_archive *pZip, const char *pArchive_name, const char *pSrc_filename, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) -{ - mz_uint uncomp_crc32 = MZ_CRC32_INIT, level, num_alignment_padding_bytes; - mz_uint16 method = 0, dos_time = 0, dos_date = 0, ext_attributes = 0; - mz_uint64 local_dir_header_ofs = pZip->m_archive_size, cur_archive_file_ofs = pZip->m_archive_size, uncomp_size = 0, comp_size = 0; - size_t archive_name_size; - mz_uint8 local_dir_header[MZ_ZIP_LOCAL_DIR_HEADER_SIZE]; - MZ_FILE *pSrc_file = NULL; - - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - level = level_and_flags & 0xF; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) || (!pArchive_name) || ((comment_size) && (!pComment)) || (level > MZ_UBER_COMPRESSION)) - return MZ_FALSE; - if (level_and_flags & MZ_ZIP_FLAG_COMPRESSED_DATA) - return MZ_FALSE; - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return MZ_FALSE; - - archive_name_size = strlen(pArchive_name); - if (archive_name_size > 0xFFFF) - return MZ_FALSE; - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - // no zip64 support yet - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE + comment_size + archive_name_size) > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_get_file_modified_time(pSrc_filename, &dos_time, &dos_date)) - return MZ_FALSE; - - pSrc_file = MZ_FOPEN(pSrc_filename, "rb"); - if (!pSrc_file) - return MZ_FALSE; - MZ_FSEEK64(pSrc_file, 0, SEEK_END); - uncomp_size = MZ_FTELL64(pSrc_file); - MZ_FSEEK64(pSrc_file, 0, SEEK_SET); - - if (uncomp_size > 0xFFFFFFFF) - { - // No zip64 support yet - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - if (uncomp_size <= 3) - level = 0; - - if (!mz_zip_writer_write_zeros(pZip, cur_archive_file_ofs, num_alignment_padding_bytes + sizeof(local_dir_header))) - { - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - local_dir_header_ofs += num_alignment_padding_bytes; - if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); } - cur_archive_file_ofs += num_alignment_padding_bytes + sizeof(local_dir_header); - - MZ_CLEAR_OBJ(local_dir_header); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pArchive_name, archive_name_size) != archive_name_size) - { - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - cur_archive_file_ofs += archive_name_size; - - if (uncomp_size) - { - mz_uint64 uncomp_remaining = uncomp_size; - void *pRead_buf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, MZ_ZIP_MAX_IO_BUF_SIZE); - if (!pRead_buf) - { - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - if (!level) - { - while (uncomp_remaining) - { - mz_uint n = (mz_uint)MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, uncomp_remaining); - if ((MZ_FREAD(pRead_buf, 1, n, pSrc_file) != n) || (pZip->m_pWrite(pZip->m_pIO_opaque, cur_archive_file_ofs, pRead_buf, n) != n)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, n); - uncomp_remaining -= n; - cur_archive_file_ofs += n; - } - comp_size = uncomp_size; - } - else - { - mz_bool result = MZ_FALSE; - mz_zip_writer_add_state state; - tdefl_compressor *pComp = (tdefl_compressor *)pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, sizeof(tdefl_compressor)); - if (!pComp) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - state.m_pZip = pZip; - state.m_cur_archive_file_ofs = cur_archive_file_ofs; - state.m_comp_size = 0; - - if (tdefl_init(pComp, mz_zip_writer_add_put_buf_callback, &state, tdefl_create_comp_flags_from_zip_params(level, -15, MZ_DEFAULT_STRATEGY)) != TDEFL_STATUS_OKAY) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - for ( ; ; ) - { - size_t in_buf_size = (mz_uint32)MZ_MIN(uncomp_remaining, MZ_ZIP_MAX_IO_BUF_SIZE); - tdefl_status status; - - if (MZ_FREAD(pRead_buf, 1, in_buf_size, pSrc_file) != in_buf_size) - break; - - uncomp_crc32 = (mz_uint32)mz_crc32(uncomp_crc32, (const mz_uint8 *)pRead_buf, in_buf_size); - uncomp_remaining -= in_buf_size; - - status = tdefl_compress_buffer(pComp, pRead_buf, in_buf_size, uncomp_remaining ? TDEFL_NO_FLUSH : TDEFL_FINISH); - if (status == TDEFL_STATUS_DONE) - { - result = MZ_TRUE; - break; - } - else if (status != TDEFL_STATUS_OKAY) - break; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pComp); - - if (!result) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - MZ_FCLOSE(pSrc_file); - return MZ_FALSE; - } - - comp_size = state.m_comp_size; - cur_archive_file_ofs = state.m_cur_archive_file_ofs; - - method = MZ_DEFLATED; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pRead_buf); - } - - MZ_FCLOSE(pSrc_file); pSrc_file = NULL; - - // no zip64 support yet - if ((comp_size > 0xFFFFFFFF) || (cur_archive_file_ofs > 0xFFFFFFFF)) - return MZ_FALSE; - - if (!mz_zip_writer_create_local_dir_header(pZip, local_dir_header, (mz_uint16)archive_name_size, 0, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date)) - return MZ_FALSE; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, local_dir_header_ofs, local_dir_header, sizeof(local_dir_header)) != sizeof(local_dir_header)) - return MZ_FALSE; - - if (!mz_zip_writer_add_to_central_dir(pZip, pArchive_name, (mz_uint16)archive_name_size, NULL, 0, pComment, comment_size, uncomp_size, comp_size, uncomp_crc32, method, 0, dos_time, dos_date, local_dir_header_ofs, ext_attributes)) - return MZ_FALSE; - - pZip->m_total_files++; - pZip->m_archive_size = cur_archive_file_ofs; - - return MZ_TRUE; -} -#endif // #ifndef MINIZ_NO_STDIO - -mz_bool mz_zip_writer_add_from_zip_reader(mz_zip_archive *pZip, mz_zip_archive *pSource_zip, mz_uint file_index) -{ - mz_uint n, bit_flags, num_alignment_padding_bytes; - mz_uint64 comp_bytes_remaining, local_dir_header_ofs; - mz_uint64 cur_src_file_ofs, cur_dst_file_ofs; - mz_uint32 local_header_u32[(MZ_ZIP_LOCAL_DIR_HEADER_SIZE + sizeof(mz_uint32) - 1) / sizeof(mz_uint32)]; mz_uint8 *pLocal_header = (mz_uint8 *)local_header_u32; - mz_uint8 central_header[MZ_ZIP_CENTRAL_DIR_HEADER_SIZE]; - size_t orig_central_dir_size; - mz_zip_internal_state *pState; - void *pBuf; const mz_uint8 *pSrc_central_header; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) - return MZ_FALSE; - if (NULL == (pSrc_central_header = mz_zip_reader_get_cdh(pSource_zip, file_index))) - return MZ_FALSE; - pState = pZip->m_pState; - - num_alignment_padding_bytes = mz_zip_writer_compute_padding_needed_for_file_alignment(pZip); - - // no zip64 support yet - if ((pZip->m_total_files == 0xFFFF) || ((pZip->m_archive_size + num_alignment_padding_bytes + MZ_ZIP_LOCAL_DIR_HEADER_SIZE + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE) > 0xFFFFFFFF)) - return MZ_FALSE; - - cur_src_file_ofs = MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS); - cur_dst_file_ofs = pZip->m_archive_size; - - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - if (MZ_READ_LE32(pLocal_header) != MZ_ZIP_LOCAL_DIR_HEADER_SIG) - return MZ_FALSE; - cur_src_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; - - if (!mz_zip_writer_write_zeros(pZip, cur_dst_file_ofs, num_alignment_padding_bytes)) - return MZ_FALSE; - cur_dst_file_ofs += num_alignment_padding_bytes; - local_dir_header_ofs = cur_dst_file_ofs; - if (pZip->m_file_offset_alignment) { MZ_ASSERT((local_dir_header_ofs & (pZip->m_file_offset_alignment - 1)) == 0); } - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pLocal_header, MZ_ZIP_LOCAL_DIR_HEADER_SIZE) != MZ_ZIP_LOCAL_DIR_HEADER_SIZE) - return MZ_FALSE; - cur_dst_file_ofs += MZ_ZIP_LOCAL_DIR_HEADER_SIZE; - - n = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_EXTRA_LEN_OFS); - comp_bytes_remaining = n + MZ_READ_LE32(pSrc_central_header + MZ_ZIP_CDH_COMPRESSED_SIZE_OFS); - - if (NULL == (pBuf = pZip->m_pAlloc(pZip->m_pAlloc_opaque, 1, (size_t)MZ_MAX(sizeof(mz_uint32) * 4, MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, comp_bytes_remaining))))) - return MZ_FALSE; - - while (comp_bytes_remaining) - { - n = (mz_uint)MZ_MIN(MZ_ZIP_MAX_IO_BUF_SIZE, comp_bytes_remaining); - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - cur_src_file_ofs += n; - - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - cur_dst_file_ofs += n; - - comp_bytes_remaining -= n; - } - - bit_flags = MZ_READ_LE16(pLocal_header + MZ_ZIP_LDH_BIT_FLAG_OFS); - if (bit_flags & 8) - { - // Copy data descriptor - if (pSource_zip->m_pRead(pSource_zip->m_pIO_opaque, cur_src_file_ofs, pBuf, sizeof(mz_uint32) * 4) != sizeof(mz_uint32) * 4) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - - n = sizeof(mz_uint32) * ((MZ_READ_LE32(pBuf) == 0x08074b50) ? 4 : 3); - if (pZip->m_pWrite(pZip->m_pIO_opaque, cur_dst_file_ofs, pBuf, n) != n) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - return MZ_FALSE; - } - - cur_src_file_ofs += n; - cur_dst_file_ofs += n; - } - pZip->m_pFree(pZip->m_pAlloc_opaque, pBuf); - - // no zip64 support yet - if (cur_dst_file_ofs > 0xFFFFFFFF) - return MZ_FALSE; - - orig_central_dir_size = pState->m_central_dir.m_size; - - memcpy(central_header, pSrc_central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE); - MZ_WRITE_LE32(central_header + MZ_ZIP_CDH_LOCAL_HEADER_OFS, local_dir_header_ofs); - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, central_header, MZ_ZIP_CENTRAL_DIR_HEADER_SIZE)) - return MZ_FALSE; - - n = MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_FILENAME_LEN_OFS) + MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_EXTRA_LEN_OFS) + MZ_READ_LE16(pSrc_central_header + MZ_ZIP_CDH_COMMENT_LEN_OFS); - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir, pSrc_central_header + MZ_ZIP_CENTRAL_DIR_HEADER_SIZE, n)) - { - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return MZ_FALSE; - } - - if (pState->m_central_dir.m_size > 0xFFFFFFFF) - return MZ_FALSE; - n = (mz_uint32)orig_central_dir_size; - if (!mz_zip_array_push_back(pZip, &pState->m_central_dir_offsets, &n, 1)) - { - mz_zip_array_resize(pZip, &pState->m_central_dir, orig_central_dir_size, MZ_FALSE); - return MZ_FALSE; - } - - pZip->m_total_files++; - pZip->m_archive_size = cur_dst_file_ofs; - - return MZ_TRUE; -} - -mz_bool mz_zip_writer_finalize_archive(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState; - mz_uint64 central_dir_ofs, central_dir_size; - mz_uint8 hdr[MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE]; - - if ((!pZip) || (!pZip->m_pState) || (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING)) - return MZ_FALSE; - - pState = pZip->m_pState; - - // no zip64 support yet - if ((pZip->m_total_files > 0xFFFF) || ((pZip->m_archive_size + pState->m_central_dir.m_size + MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIZE) > 0xFFFFFFFF)) - return MZ_FALSE; - - central_dir_ofs = 0; - central_dir_size = 0; - if (pZip->m_total_files) - { - // Write central directory - central_dir_ofs = pZip->m_archive_size; - central_dir_size = pState->m_central_dir.m_size; - pZip->m_central_directory_file_ofs = central_dir_ofs; - if (pZip->m_pWrite(pZip->m_pIO_opaque, central_dir_ofs, pState->m_central_dir.m_p, (size_t)central_dir_size) != central_dir_size) - return MZ_FALSE; - pZip->m_archive_size += central_dir_size; - } - - // Write end of central directory record - MZ_CLEAR_OBJ(hdr); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_SIG_OFS, MZ_ZIP_END_OF_CENTRAL_DIR_HEADER_SIG); - MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_NUM_ENTRIES_ON_DISK_OFS, pZip->m_total_files); - MZ_WRITE_LE16(hdr + MZ_ZIP_ECDH_CDIR_TOTAL_ENTRIES_OFS, pZip->m_total_files); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_SIZE_OFS, central_dir_size); - MZ_WRITE_LE32(hdr + MZ_ZIP_ECDH_CDIR_OFS_OFS, central_dir_ofs); - - if (pZip->m_pWrite(pZip->m_pIO_opaque, pZip->m_archive_size, hdr, sizeof(hdr)) != sizeof(hdr)) - return MZ_FALSE; -#ifndef MINIZ_NO_STDIO - if ((pState->m_pFile) && (MZ_FFLUSH(pState->m_pFile) == EOF)) - return MZ_FALSE; -#endif // #ifndef MINIZ_NO_STDIO - - pZip->m_archive_size += sizeof(hdr); - - pZip->m_zip_mode = MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED; - return MZ_TRUE; -} - -mz_bool mz_zip_writer_finalize_heap_archive(mz_zip_archive *pZip, void **pBuf, size_t *pSize) -{ - if ((!pZip) || (!pZip->m_pState) || (!pBuf) || (!pSize)) - return MZ_FALSE; - if (pZip->m_pWrite != mz_zip_heap_write_func) - return MZ_FALSE; - if (!mz_zip_writer_finalize_archive(pZip)) - return MZ_FALSE; - - *pBuf = pZip->m_pState->m_pMem; - *pSize = pZip->m_pState->m_mem_size; - pZip->m_pState->m_pMem = NULL; - pZip->m_pState->m_mem_size = pZip->m_pState->m_mem_capacity = 0; - return MZ_TRUE; -} - -mz_bool mz_zip_writer_end(mz_zip_archive *pZip) -{ - mz_zip_internal_state *pState; - mz_bool status = MZ_TRUE; - if ((!pZip) || (!pZip->m_pState) || (!pZip->m_pAlloc) || (!pZip->m_pFree) || ((pZip->m_zip_mode != MZ_ZIP_MODE_WRITING) && (pZip->m_zip_mode != MZ_ZIP_MODE_WRITING_HAS_BEEN_FINALIZED))) - return MZ_FALSE; - - pState = pZip->m_pState; - pZip->m_pState = NULL; - mz_zip_array_clear(pZip, &pState->m_central_dir); - mz_zip_array_clear(pZip, &pState->m_central_dir_offsets); - mz_zip_array_clear(pZip, &pState->m_sorted_central_dir_offsets); - -#ifndef MINIZ_NO_STDIO - if (pState->m_pFile) - { - MZ_FCLOSE(pState->m_pFile); - pState->m_pFile = NULL; - } -#endif // #ifndef MINIZ_NO_STDIO - - if ((pZip->m_pWrite == mz_zip_heap_write_func) && (pState->m_pMem)) - { - pZip->m_pFree(pZip->m_pAlloc_opaque, pState->m_pMem); - pState->m_pMem = NULL; - } - - pZip->m_pFree(pZip->m_pAlloc_opaque, pState); - pZip->m_zip_mode = MZ_ZIP_MODE_INVALID; - return status; -} - -#ifndef MINIZ_NO_STDIO -mz_bool mz_zip_add_mem_to_archive_file_in_place(const char *pZip_filename, const char *pArchive_name, const void *pBuf, size_t buf_size, const void *pComment, mz_uint16 comment_size, mz_uint level_and_flags) -{ - mz_bool status, created_new_archive = MZ_FALSE; - mz_zip_archive zip_archive; - struct MZ_FILE_STAT_STRUCT file_stat; - MZ_CLEAR_OBJ(zip_archive); - if ((int)level_and_flags < 0) - level_and_flags = MZ_DEFAULT_LEVEL; - if ((!pZip_filename) || (!pArchive_name) || ((buf_size) && (!pBuf)) || ((comment_size) && (!pComment)) || ((level_and_flags & 0xF) > MZ_UBER_COMPRESSION)) - return MZ_FALSE; - if (!mz_zip_writer_validate_archive_name(pArchive_name)) - return MZ_FALSE; - if (MZ_FILE_STAT(pZip_filename, &file_stat) != 0) - { - // Create a new archive. - if (!mz_zip_writer_init_file(&zip_archive, pZip_filename, 0)) - return MZ_FALSE; - created_new_archive = MZ_TRUE; - } - else - { - // Append to an existing archive. - if (!mz_zip_reader_init_file(&zip_archive, pZip_filename, level_and_flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY)) - return MZ_FALSE; - if (!mz_zip_writer_init_from_reader(&zip_archive, pZip_filename)) - { - mz_zip_reader_end(&zip_archive); - return MZ_FALSE; - } - } - status = mz_zip_writer_add_mem_ex(&zip_archive, pArchive_name, pBuf, buf_size, pComment, comment_size, level_and_flags, 0, 0); - // Always finalize, even if adding failed for some reason, so we have a valid central directory. (This may not always succeed, but we can try.) - if (!mz_zip_writer_finalize_archive(&zip_archive)) - status = MZ_FALSE; - if (!mz_zip_writer_end(&zip_archive)) - status = MZ_FALSE; - if ((!status) && (created_new_archive)) - { - // It's a new archive and something went wrong, so just delete it. - int ignoredStatus = MZ_DELETE_FILE(pZip_filename); - (void)ignoredStatus; - } - return status; -} - -void *mz_zip_extract_archive_file_to_heap(const char *pZip_filename, const char *pArchive_name, size_t *pSize, mz_uint flags) -{ - int file_index; - mz_zip_archive zip_archive; - void *p = NULL; - - if (pSize) - *pSize = 0; - - if ((!pZip_filename) || (!pArchive_name)) - return NULL; - - MZ_CLEAR_OBJ(zip_archive); - if (!mz_zip_reader_init_file(&zip_archive, pZip_filename, flags | MZ_ZIP_FLAG_DO_NOT_SORT_CENTRAL_DIRECTORY)) - return NULL; - - if ((file_index = mz_zip_reader_locate_file(&zip_archive, pArchive_name, NULL, flags)) >= 0) - p = mz_zip_reader_extract_to_heap(&zip_archive, file_index, pSize, flags); - - mz_zip_reader_end(&zip_archive); - return p; -} - -#endif // #ifndef MINIZ_NO_STDIO - -#endif // #ifndef MINIZ_NO_ARCHIVE_WRITING_APIS - -#endif // #ifndef MINIZ_NO_ARCHIVE_APIS - -#ifdef __cplusplus -} -#endif - -#endif // MINIZ_HEADER_FILE_ONLY - -/* - This is free and unencumbered software released into the public domain. - - Anyone is free to copy, modify, publish, use, compile, sell, or - distribute this software, either in source code form or as a compiled - binary, for any purpose, commercial or non-commercial, and by any - means. - - In jurisdictions that recognize copyright laws, the author or authors - of this software dedicate any and all copyright interest in the - software to the public domain. We make this dedication for the benefit - of the public at large and to the detriment of our heirs and - successors. We intend this dedication to be an overt act of - relinquishment in perpetuity of all present and future rights to this - software under copyright law. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. - IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR - OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, - ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - - For more information, please refer to -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/stb_image.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/stb_image.h deleted file mode 100644 index 915f7e22..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/stb_image.h +++ /dev/null @@ -1,7768 +0,0 @@ -/* stb_image - v2.26 - public domain image loader - http://nothings.org/stb - no warranty implied; use at your own risk - - Do this: - #define STB_IMAGE_IMPLEMENTATION - before you include this file in *one* C or C++ file to create the implementation. - - // i.e. it should look like this: - #include ... - #include ... - #include ... - #define STB_IMAGE_IMPLEMENTATION - #include "stb_image.h" - - You can #define STBI_ASSERT(x) before the #include to avoid using assert.h. - And #define STBI_MALLOC, STBI_REALLOC, and STBI_FREE to avoid using malloc,realloc,free - - - QUICK NOTES: - Primarily of interest to game developers and other people who can - avoid problematic images and only need the trivial interface - - JPEG baseline & progressive (12 bpc/arithmetic not supported, same as stock IJG lib) - PNG 1/2/4/8/16-bit-per-channel - - TGA (not sure what subset, if a subset) - BMP non-1bpp, non-RLE - PSD (composited view only, no extra channels, 8/16 bit-per-channel) - - GIF (*comp always reports as 4-channel) - HDR (radiance rgbE format) - PIC (Softimage PIC) - PNM (PPM and PGM binary only) - - Animated GIF still needs a proper API, but here's one way to do it: - http://gist.github.com/urraka/685d9a6340b26b830d49 - - - decode from memory or through FILE (define STBI_NO_STDIO to remove code) - - decode from arbitrary I/O callbacks - - SIMD acceleration on x86/x64 (SSE2) and ARM (NEON) - - Full documentation under "DOCUMENTATION" below. - - -LICENSE - - See end of file for license information. - -RECENT REVISION HISTORY: - - 2.26 (2020-07-13) many minor fixes - 2.25 (2020-02-02) fix warnings - 2.24 (2020-02-02) fix warnings; thread-local failure_reason and flip_vertically - 2.23 (2019-08-11) fix clang static analysis warning - 2.22 (2019-03-04) gif fixes, fix warnings - 2.21 (2019-02-25) fix typo in comment - 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs - 2.19 (2018-02-11) fix warning - 2.18 (2018-01-30) fix warnings - 2.17 (2018-01-29) bugfix, 1-bit BMP, 16-bitness query, fix warnings - 2.16 (2017-07-23) all functions have 16-bit variants; optimizations; bugfixes - 2.15 (2017-03-18) fix png-1,2,4; all Imagenet JPGs; no runtime SSE detection on GCC - 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs - 2.13 (2016-12-04) experimental 16-bit API, only for PNG so far; fixes - 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes - 2.11 (2016-04-02) 16-bit PNGS; enable SSE2 in non-gcc x64 - RGB-format JPEG; remove white matting in PSD; - allocate large structures on the stack; - correct channel count for PNG & BMP - 2.10 (2016-01-22) avoid warning introduced in 2.09 - 2.09 (2016-01-16) 16-bit TGA; comments in PNM files; STBI_REALLOC_SIZED - - See end of file for full revision history. - - - ============================ Contributors ========================= - - Image formats Extensions, features - Sean Barrett (jpeg, png, bmp) Jetro Lauha (stbi_info) - Nicolas Schulz (hdr, psd) Martin "SpartanJ" Golini (stbi_info) - Jonathan Dummer (tga) James "moose2000" Brown (iPhone PNG) - Jean-Marc Lienher (gif) Ben "Disch" Wenger (io callbacks) - Tom Seddon (pic) Omar Cornut (1/2/4-bit PNG) - Thatcher Ulrich (psd) Nicolas Guillemot (vertical flip) - Ken Miller (pgm, ppm) Richard Mitton (16-bit PSD) - github:urraka (animated gif) Junggon Kim (PNM comments) - Christopher Forseth (animated gif) Daniel Gibson (16-bit TGA) - socks-the-fox (16-bit PNG) - Jeremy Sawicki (handle all ImageNet JPGs) - Optimizations & bugfixes Mikhail Morozov (1-bit BMP) - Fabian "ryg" Giesen Anael Seghezzi (is-16-bit query) - Arseny Kapoulkine - John-Mark Allen - Carmelo J Fdez-Aguera - - Bug & warning fixes - Marc LeBlanc David Woo Guillaume George Martins Mozeiko - Christpher Lloyd Jerry Jansson Joseph Thomson Blazej Dariusz Roszkowski - Phil Jordan Dave Moore Roy Eltham - Hayaki Saito Nathan Reed Won Chun - Luke Graham Johan Duparc Nick Verigakis the Horde3D community - Thomas Ruf Ronny Chevalier github:rlyeh - Janez Zemva John Bartholomew Michal Cichon github:romigrou - Jonathan Blow Ken Hamada Tero Hanninen github:svdijk - Laurent Gomila Cort Stratton github:snagar - Aruelien Pocheville Sergio Gonzalez Thibault Reuille github:Zelex - Cass Everitt Ryamond Barbiero github:grim210 - Paul Du Bois Engin Manap Aldo Culquicondor github:sammyhw - Philipp Wiesemann Dale Weiler Oriol Ferrer Mesia github:phprus - Josh Tobin Matthew Gregan github:poppolopoppo - Julian Raschke Gregory Mullen Christian Floisand github:darealshinji - Baldur Karlsson Kevin Schmidt JR Smith github:Michaelangel007 - Brad Weinberger Matvey Cherevko [reserved] - Luca Sas Alexander Veselov Zack Middleton [reserved] - Ryan C. Gordon [reserved] [reserved] - DO NOT ADD YOUR NAME HERE - - To add your name to the credits, pick a random blank space in the middle and fill it. - 80% of merge conflicts on stb PRs are due to people adding their name at the end - of the credits. -*/ - -#ifndef STBI_INCLUDE_STB_IMAGE_H -#define STBI_INCLUDE_STB_IMAGE_H - -// DOCUMENTATION -// -// Limitations: -// - no 12-bit-per-channel JPEG -// - no JPEGs with arithmetic coding -// - GIF always returns *comp=4 -// -// Basic usage (see HDR discussion below for HDR usage): -// int x,y,n; -// unsigned char *data = stbi_load(filename, &x, &y, &n, 0); -// // ... process data if not NULL ... -// // ... x = width, y = height, n = # 8-bit components per pixel ... -// // ... replace '0' with '1'..'4' to force that many components per pixel -// // ... but 'n' will always be the number that it would have been if you said 0 -// stbi_image_free(data) -// -// Standard parameters: -// int *x -- outputs image width in pixels -// int *y -- outputs image height in pixels -// int *channels_in_file -- outputs # of image components in image file -// int desired_channels -- if non-zero, # of image components requested in result -// -// The return value from an image loader is an 'unsigned char *' which points -// to the pixel data, or NULL on an allocation failure or if the image is -// corrupt or invalid. The pixel data consists of *y scanlines of *x pixels, -// with each pixel consisting of N interleaved 8-bit components; the first -// pixel pointed to is top-left-most in the image. There is no padding between -// image scanlines or between pixels, regardless of format. The number of -// components N is 'desired_channels' if desired_channels is non-zero, or -// *channels_in_file otherwise. If desired_channels is non-zero, -// *channels_in_file has the number of components that _would_ have been -// output otherwise. E.g. if you set desired_channels to 4, you will always -// get RGBA output, but you can check *channels_in_file to see if it's trivially -// opaque because e.g. there were only 3 channels in the source image. -// -// An output image with N components has the following components interleaved -// in this order in each pixel: -// -// N=#comp components -// 1 grey -// 2 grey, alpha -// 3 red, green, blue -// 4 red, green, blue, alpha -// -// If image loading fails for any reason, the return value will be NULL, -// and *x, *y, *channels_in_file will be unchanged. The function -// stbi_failure_reason() can be queried for an extremely brief, end-user -// unfriendly explanation of why the load failed. Define STBI_NO_FAILURE_STRINGS -// to avoid compiling these strings at all, and STBI_FAILURE_USERMSG to get slightly -// more user-friendly ones. -// -// Paletted PNG, BMP, GIF, and PIC images are automatically depalettized. -// -// =========================================================================== -// -// UNICODE: -// -// If compiling for Windows and you wish to use Unicode filenames, compile -// with -// #define STBI_WINDOWS_UTF8 -// and pass utf8-encoded filenames. Call stbi_convert_wchar_to_utf8 to convert -// Windows wchar_t filenames to utf8. -// -// =========================================================================== -// -// Philosophy -// -// stb libraries are designed with the following priorities: -// -// 1. easy to use -// 2. easy to maintain -// 3. good performance -// -// Sometimes I let "good performance" creep up in priority over "easy to maintain", -// and for best performance I may provide less-easy-to-use APIs that give higher -// performance, in addition to the easy-to-use ones. Nevertheless, it's important -// to keep in mind that from the standpoint of you, a client of this library, -// all you care about is #1 and #3, and stb libraries DO NOT emphasize #3 above all. -// -// Some secondary priorities arise directly from the first two, some of which -// provide more explicit reasons why performance can't be emphasized. -// -// - Portable ("ease of use") -// - Small source code footprint ("easy to maintain") -// - No dependencies ("ease of use") -// -// =========================================================================== -// -// I/O callbacks -// -// I/O callbacks allow you to read from arbitrary sources, like packaged -// files or some other source. Data read from callbacks are processed -// through a small internal buffer (currently 128 bytes) to try to reduce -// overhead. -// -// The three functions you must define are "read" (reads some bytes of data), -// "skip" (skips some bytes of data), "eof" (reports if the stream is at the end). -// -// =========================================================================== -// -// SIMD support -// -// The JPEG decoder will try to automatically use SIMD kernels on x86 when -// supported by the compiler. For ARM Neon support, you must explicitly -// request it. -// -// (The old do-it-yourself SIMD API is no longer supported in the current -// code.) -// -// On x86, SSE2 will automatically be used when available based on a run-time -// test; if not, the generic C versions are used as a fall-back. On ARM targets, -// the typical path is to have separate builds for NEON and non-NEON devices -// (at least this is true for iOS and Android). Therefore, the NEON support is -// toggled by a build flag: define STBI_NEON to get NEON loops. -// -// If for some reason you do not want to use any of SIMD code, or if -// you have issues compiling it, you can disable it entirely by -// defining STBI_NO_SIMD. -// -// =========================================================================== -// -// HDR image support (disable by defining STBI_NO_HDR) -// -// stb_image supports loading HDR images in general, and currently the Radiance -// .HDR file format specifically. You can still load any file through the existing -// interface; if you attempt to load an HDR file, it will be automatically remapped -// to LDR, assuming gamma 2.2 and an arbitrary scale factor defaulting to 1; -// both of these constants can be reconfigured through this interface: -// -// stbi_hdr_to_ldr_gamma(2.2f); -// stbi_hdr_to_ldr_scale(1.0f); -// -// (note, do not use _inverse_ constants; stbi_image will invert them -// appropriately). -// -// Additionally, there is a new, parallel interface for loading files as -// (linear) floats to preserve the full dynamic range: -// -// float *data = stbi_loadf(filename, &x, &y, &n, 0); -// -// If you load LDR images through this interface, those images will -// be promoted to floating point values, run through the inverse of -// constants corresponding to the above: -// -// stbi_ldr_to_hdr_scale(1.0f); -// stbi_ldr_to_hdr_gamma(2.2f); -// -// Finally, given a filename (or an open file or memory block--see header -// file for details) containing image data, you can query for the "most -// appropriate" interface to use (that is, whether the image is HDR or -// not), using: -// -// stbi_is_hdr(char *filename); -// -// =========================================================================== -// -// iPhone PNG support: -// -// By default we convert iphone-formatted PNGs back to RGB, even though -// they are internally encoded differently. You can disable this conversion -// by calling stbi_convert_iphone_png_to_rgb(0), in which case -// you will always just get the native iphone "format" through (which -// is BGR stored in RGB). -// -// Call stbi_set_unpremultiply_on_load(1) as well to force a divide per -// pixel to remove any premultiplied alpha *only* if the image file explicitly -// says there's premultiplied data (currently only happens in iPhone images, -// and only if iPhone convert-to-rgb processing is on). -// -// =========================================================================== -// -// ADDITIONAL CONFIGURATION -// -// - You can suppress implementation of any of the decoders to reduce -// your code footprint by #defining one or more of the following -// symbols before creating the implementation. -// -// STBI_NO_JPEG -// STBI_NO_PNG -// STBI_NO_BMP -// STBI_NO_PSD -// STBI_NO_TGA -// STBI_NO_GIF -// STBI_NO_HDR -// STBI_NO_PIC -// STBI_NO_PNM (.ppm and .pgm) -// -// - You can request *only* certain decoders and suppress all other ones -// (this will be more forward-compatible, as addition of new decoders -// doesn't require you to disable them explicitly): -// -// STBI_ONLY_JPEG -// STBI_ONLY_PNG -// STBI_ONLY_BMP -// STBI_ONLY_PSD -// STBI_ONLY_TGA -// STBI_ONLY_GIF -// STBI_ONLY_HDR -// STBI_ONLY_PIC -// STBI_ONLY_PNM (.ppm and .pgm) -// -// - If you use STBI_NO_PNG (or _ONLY_ without PNG), and you still -// want the zlib decoder to be available, #define STBI_SUPPORT_ZLIB -// -// - If you define STBI_MAX_DIMENSIONS, stb_image will reject images greater -// than that size (in either width or height) without further processing. -// This is to let programs in the wild set an upper bound to prevent -// denial-of-service attacks on untrusted data, as one could generate a -// valid image of gigantic dimensions and force stb_image to allocate a -// huge block of memory and spend disproportionate time decoding it. By -// default this is set to (1 << 24), which is 16777216, but that's still -// very big. - -#ifndef STBI_NO_STDIO -#include -#endif // STBI_NO_STDIO - -#define STBI_VERSION 1 - -enum -{ - STBI_default = 0, // only used for desired_channels - - STBI_grey = 1, - STBI_grey_alpha = 2, - STBI_rgb = 3, - STBI_rgb_alpha = 4 -}; - -#ifdef FNA3D_CHANGE -#include -#endif -typedef unsigned char stbi_uc; -typedef unsigned short stbi_us; - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef STBIDEF -#ifdef STB_IMAGE_STATIC -#define STBIDEF static -#else -#define STBIDEF extern -#endif -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// PRIMARY API - works on images of any type -// - -// -// load image by filename, open file, or memory buffer -// - -typedef struct -{ - int (*read) (void *user,char *data,int size); // fill 'data' with 'size' bytes. return number of bytes actually read - void (*skip) (void *user,int n); // skip the next 'n' bytes, or 'unget' the last -n bytes if negative - int (*eof) (void *user); // returns nonzero if we are at end of file/data -} stbi_io_callbacks; - -//////////////////////////////////// -// -// 8-bits-per-channel interface -// - -STBIDEF stbi_uc *stbi_load_from_memory (stbi_uc const *buffer, int len , int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk , void *user, int *x, int *y, int *channels_in_file, int desired_channels); - -#ifndef STBI_NO_STDIO -STBIDEF stbi_uc *stbi_load (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_uc *stbi_load_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); -// for stbi_load_from_file, file pointer is left pointing immediately after image -#endif - -#ifndef STBI_NO_GIF -STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp); -#endif - -#ifdef STBI_WINDOWS_UTF8 -STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); -#endif - -//////////////////////////////////// -// -// 16-bits-per-channel interface -// - -STBIDEF stbi_us *stbi_load_16_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); - -#ifndef STBI_NO_STDIO -STBIDEF stbi_us *stbi_load_16 (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); -STBIDEF stbi_us *stbi_load_from_file_16(FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); -#endif - -//////////////////////////////////// -// -// float-per-channel interface -// -#ifndef STBI_NO_LINEAR - STBIDEF float *stbi_loadf_from_memory (stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels); - STBIDEF float *stbi_loadf_from_callbacks (stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels); - - #ifndef STBI_NO_STDIO - STBIDEF float *stbi_loadf (char const *filename, int *x, int *y, int *channels_in_file, int desired_channels); - STBIDEF float *stbi_loadf_from_file (FILE *f, int *x, int *y, int *channels_in_file, int desired_channels); - #endif -#endif - -#ifndef STBI_NO_HDR - STBIDEF void stbi_hdr_to_ldr_gamma(float gamma); - STBIDEF void stbi_hdr_to_ldr_scale(float scale); -#endif // STBI_NO_HDR - -#ifndef STBI_NO_LINEAR - STBIDEF void stbi_ldr_to_hdr_gamma(float gamma); - STBIDEF void stbi_ldr_to_hdr_scale(float scale); -#endif // STBI_NO_LINEAR - -// stbi_is_hdr is always defined, but always returns false if STBI_NO_HDR -STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user); -STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len); -#ifndef STBI_NO_STDIO -STBIDEF int stbi_is_hdr (char const *filename); -STBIDEF int stbi_is_hdr_from_file(FILE *f); -#endif // STBI_NO_STDIO - - -// get a VERY brief reason for failure -// on most compilers (and ALL modern mainstream compilers) this is threadsafe -STBIDEF const char *stbi_failure_reason (void); - -// free the loaded image -- this is just free() -STBIDEF void stbi_image_free (void *retval_from_stbi_load); - -// get image dimensions & components without fully decoding -STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp); -STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp); -STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len); -STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *clbk, void *user); - -#ifndef STBI_NO_STDIO -STBIDEF int stbi_info (char const *filename, int *x, int *y, int *comp); -STBIDEF int stbi_info_from_file (FILE *f, int *x, int *y, int *comp); -STBIDEF int stbi_is_16_bit (char const *filename); -STBIDEF int stbi_is_16_bit_from_file(FILE *f); -#endif - - - -// for image formats that explicitly notate that they have premultiplied alpha, -// we just return the colors as stored in the file. set this flag to force -// unpremultiplication. results are undefined if the unpremultiply overflow. -STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply); - -// indicate whether we should process iphone images back to canonical format, -// or just pass them through "as-is" -STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert); - -// flip the image vertically, so the first pixel in the output array is the bottom left -STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip); - -// as above, but only applies to images loaded on the thread that calls the function -// this function is only available if your compiler supports thread-local variables; -// calling it will fail to link if your compiler doesn't -STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip); - -// ZLIB client - used by PNG, available for other purposes - -STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen); -STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header); -STBIDEF char *stbi_zlib_decode_malloc(const char *buffer, int len, int *outlen); -STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); - -STBIDEF char *stbi_zlib_decode_noheader_malloc(const char *buffer, int len, int *outlen); -STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen); - - -#ifdef __cplusplus -} -#endif - -// -// -//// end header file ///////////////////////////////////////////////////// -#endif // STBI_INCLUDE_STB_IMAGE_H - -#ifdef STB_IMAGE_IMPLEMENTATION - -#if defined(STBI_ONLY_JPEG) || defined(STBI_ONLY_PNG) || defined(STBI_ONLY_BMP) \ - || defined(STBI_ONLY_TGA) || defined(STBI_ONLY_GIF) || defined(STBI_ONLY_PSD) \ - || defined(STBI_ONLY_HDR) || defined(STBI_ONLY_PIC) || defined(STBI_ONLY_PNM) \ - || defined(STBI_ONLY_ZLIB) - #ifndef STBI_ONLY_JPEG - #define STBI_NO_JPEG - #endif - #ifndef STBI_ONLY_PNG - #define STBI_NO_PNG - #endif - #ifndef STBI_ONLY_BMP - #define STBI_NO_BMP - #endif - #ifndef STBI_ONLY_PSD - #define STBI_NO_PSD - #endif - #ifndef STBI_ONLY_TGA - #define STBI_NO_TGA - #endif - #ifndef STBI_ONLY_GIF - #define STBI_NO_GIF - #endif - #ifndef STBI_ONLY_HDR - #define STBI_NO_HDR - #endif - #ifndef STBI_ONLY_PIC - #define STBI_NO_PIC - #endif - #ifndef STBI_ONLY_PNM - #define STBI_NO_PNM - #endif -#endif - -#if defined(STBI_NO_PNG) && !defined(STBI_SUPPORT_ZLIB) && !defined(STBI_NO_ZLIB) -#define STBI_NO_ZLIB -#endif - - -#ifdef FNA3D_CHANGE -#include -#include // ptrdiff_t on osx -#include -#include -#include - -#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) -#include // ldexp, pow -#endif -#else -#include -#endif - -#ifndef STBI_NO_STDIO -#include -#endif - -#ifndef STBI_ASSERT -#include -#define STBI_ASSERT(x) assert(x) -#endif - -#ifdef __cplusplus -#define STBI_EXTERN extern "C" -#else -#define STBI_EXTERN extern -#endif - - -#ifndef _MSC_VER - #ifdef __cplusplus - #define stbi_inline inline - #else - #define stbi_inline - #endif -#else - #define stbi_inline __forceinline -#endif - -#ifndef STBI_NO_THREAD_LOCALS - #if defined(__cplusplus) && __cplusplus >= 201103L - #define STBI_THREAD_LOCAL thread_local - #elif defined(__GNUC__) && __GNUC__ < 5 - #define STBI_THREAD_LOCAL __thread - #elif defined(_MSC_VER) - #define STBI_THREAD_LOCAL __declspec(thread) - #elif defined (__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && !defined(__STDC_NO_THREADS__) - #define STBI_THREAD_LOCAL _Thread_local - #endif - - #ifndef STBI_THREAD_LOCAL - #if defined(__GNUC__) - #define STBI_THREAD_LOCAL __thread - #endif - #endif -#endif - -#ifdef _MSC_VER -typedef unsigned short stbi__uint16; -typedef signed short stbi__int16; -typedef unsigned int stbi__uint32; -typedef signed int stbi__int32; -#else -#include -typedef uint16_t stbi__uint16; -typedef int16_t stbi__int16; -typedef uint32_t stbi__uint32; -typedef int32_t stbi__int32; -#endif - -// should produce compiler error if size is wrong -typedef unsigned char validate_uint32[sizeof(stbi__uint32)==4 ? 1 : -1]; - -#ifdef _MSC_VER -#define STBI_NOTUSED(v) (void)(v) -#else -#define STBI_NOTUSED(v) (void)sizeof(v) -#endif - -#ifdef _MSC_VER -#define STBI_HAS_LROTL -#endif - -#ifdef STBI_HAS_LROTL - #define stbi_lrot(x,y) _lrotl(x,y) -#else - #define stbi_lrot(x,y) (((x) << (y)) | ((x) >> (32 - (y)))) -#endif - -#if defined(STBI_MALLOC) && defined(STBI_FREE) && (defined(STBI_REALLOC) || defined(STBI_REALLOC_SIZED)) -// ok -#elif !defined(STBI_MALLOC) && !defined(STBI_FREE) && !defined(STBI_REALLOC) && !defined(STBI_REALLOC_SIZED) -// ok -#else -#error "Must define all or none of STBI_MALLOC, STBI_FREE, and STBI_REALLOC (or STBI_REALLOC_SIZED)." -#endif - -#ifndef STBI_MALLOC -#define STBI_MALLOC(sz) malloc(sz) -#define STBI_REALLOC(p,newsz) realloc(p,newsz) -#define STBI_FREE(p) free(p) -#endif - -#ifndef STBI_REALLOC_SIZED -#define STBI_REALLOC_SIZED(p,oldsz,newsz) STBI_REALLOC(p,newsz) -#endif - -// x86/x64 detection -#if defined(__x86_64__) || defined(_M_X64) -#define STBI__X64_TARGET -#elif defined(__i386) || defined(_M_IX86) -#define STBI__X86_TARGET -#endif - -#if defined(__GNUC__) && defined(STBI__X86_TARGET) && !defined(__SSE2__) && !defined(STBI_NO_SIMD) -// gcc doesn't support sse2 intrinsics unless you compile with -msse2, -// which in turn means it gets to use SSE2 everywhere. This is unfortunate, -// but previous attempts to provide the SSE2 functions with runtime -// detection caused numerous issues. The way architecture extensions are -// exposed in GCC/Clang is, sadly, not really suited for one-file libs. -// New behavior: if compiled with -msse2, we use SSE2 without any -// detection; if not, we don't use it at all. -#define STBI_NO_SIMD -#endif - -#if defined(__MINGW32__) && defined(STBI__X86_TARGET) && !defined(STBI_MINGW_ENABLE_SSE2) && !defined(STBI_NO_SIMD) -// Note that __MINGW32__ doesn't actually mean 32-bit, so we have to avoid STBI__X64_TARGET -// -// 32-bit MinGW wants ESP to be 16-byte aligned, but this is not in the -// Windows ABI and VC++ as well as Windows DLLs don't maintain that invariant. -// As a result, enabling SSE2 on 32-bit MinGW is dangerous when not -// simultaneously enabling "-mstackrealign". -// -// See https://github.com/nothings/stb/issues/81 for more information. -// -// So default to no SSE2 on 32-bit MinGW. If you've read this far and added -// -mstackrealign to your build settings, feel free to #define STBI_MINGW_ENABLE_SSE2. -#define STBI_NO_SIMD -#endif - -#if !defined(STBI_NO_SIMD) && (defined(STBI__X86_TARGET) || defined(STBI__X64_TARGET)) -#define STBI_SSE2 -#include - -#ifdef _MSC_VER - -#if _MSC_VER >= 1400 // not VC6 -#include // __cpuid -static int stbi__cpuid3(void) -{ - int info[4]; - __cpuid(info,1); - return info[3]; -} -#else -static int stbi__cpuid3(void) -{ - int res; - __asm { - mov eax,1 - cpuid - mov res,edx - } - return res; -} -#endif - -#define STBI_SIMD_ALIGN(type, name) __declspec(align(16)) type name - -#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) -static int stbi__sse2_available(void) -{ - int info3 = stbi__cpuid3(); - return ((info3 >> 26) & 1) != 0; -} -#endif - -#else // assume GCC-style if not VC++ -#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) - -#if !defined(STBI_NO_JPEG) && defined(STBI_SSE2) -static int stbi__sse2_available(void) -{ - // If we're even attempting to compile this on GCC/Clang, that means - // -msse2 is on, which means the compiler is allowed to use SSE2 - // instructions at will, and so are we. - return 1; -} -#endif - -#endif -#endif - -// ARM NEON -#if defined(STBI_NO_SIMD) && defined(STBI_NEON) -#undef STBI_NEON -#endif - -#ifdef STBI_NEON -#include -// assume GCC or Clang on ARM targets -#define STBI_SIMD_ALIGN(type, name) type name __attribute__((aligned(16))) -#endif - -#ifndef STBI_SIMD_ALIGN -#define STBI_SIMD_ALIGN(type, name) type name -#endif - -#ifndef STBI_MAX_DIMENSIONS -#define STBI_MAX_DIMENSIONS (1 << 24) -#endif - -/////////////////////////////////////////////// -// -// stbi__context struct and start_xxx functions - -// stbi__context structure is our basic context used by all images, so it -// contains all the IO context, plus some basic image information -typedef struct -{ - stbi__uint32 img_x, img_y; - int img_n, img_out_n; - - stbi_io_callbacks io; - void *io_user_data; - - int read_from_callbacks; - int buflen; - stbi_uc buffer_start[128]; - int callback_already_read; - - stbi_uc *img_buffer, *img_buffer_end; - stbi_uc *img_buffer_original, *img_buffer_original_end; -} stbi__context; - - -static void stbi__refill_buffer(stbi__context *s); - -// initialize a memory-decode context -static void stbi__start_mem(stbi__context *s, stbi_uc const *buffer, int len) -{ - s->io.read = NULL; - s->read_from_callbacks = 0; - s->callback_already_read = 0; - s->img_buffer = s->img_buffer_original = (stbi_uc *) buffer; - s->img_buffer_end = s->img_buffer_original_end = (stbi_uc *) buffer+len; -} - -// initialize a callback-based context -static void stbi__start_callbacks(stbi__context *s, stbi_io_callbacks *c, void *user) -{ - s->io = *c; - s->io_user_data = user; - s->buflen = sizeof(s->buffer_start); - s->read_from_callbacks = 1; - s->callback_already_read = 0; - s->img_buffer = s->img_buffer_original = s->buffer_start; - stbi__refill_buffer(s); - s->img_buffer_original_end = s->img_buffer_end; -} - -#ifndef STBI_NO_STDIO - -static int stbi__stdio_read(void *user, char *data, int size) -{ - return (int) fread(data,1,size,(FILE*) user); -} - -static void stbi__stdio_skip(void *user, int n) -{ - int ch; - fseek((FILE*) user, n, SEEK_CUR); - ch = fgetc((FILE*) user); /* have to read a byte to reset feof()'s flag */ - if (ch != EOF) { - ungetc(ch, (FILE *) user); /* push byte back onto stream if valid. */ - } -} - -static int stbi__stdio_eof(void *user) -{ - return feof((FILE*) user) || ferror((FILE *) user); -} - -static stbi_io_callbacks stbi__stdio_callbacks = -{ - stbi__stdio_read, - stbi__stdio_skip, - stbi__stdio_eof, -}; - -static void stbi__start_file(stbi__context *s, FILE *f) -{ - stbi__start_callbacks(s, &stbi__stdio_callbacks, (void *) f); -} - -//static void stop_file(stbi__context *s) { } - -#endif // !STBI_NO_STDIO - -static void stbi__rewind(stbi__context *s) -{ - // conceptually rewind SHOULD rewind to the beginning of the stream, - // but we just rewind to the beginning of the initial buffer, because - // we only use it after doing 'test', which only ever looks at at most 92 bytes - s->img_buffer = s->img_buffer_original; - s->img_buffer_end = s->img_buffer_original_end; -} - -enum -{ - STBI_ORDER_RGB, - STBI_ORDER_BGR -}; - -typedef struct -{ - int bits_per_channel; - int num_channels; - int channel_order; -} stbi__result_info; - -#ifndef STBI_NO_JPEG -static int stbi__jpeg_test(stbi__context *s); -static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PNG -static int stbi__png_test(stbi__context *s); -static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp); -static int stbi__png_is16(stbi__context *s); -#endif - -#ifndef STBI_NO_BMP -static int stbi__bmp_test(stbi__context *s); -static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_TGA -static int stbi__tga_test(stbi__context *s); -static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PSD -static int stbi__psd_test(stbi__context *s); -static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc); -static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp); -static int stbi__psd_is16(stbi__context *s); -#endif - -#ifndef STBI_NO_HDR -static int stbi__hdr_test(stbi__context *s); -static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PIC -static int stbi__pic_test(stbi__context *s); -static void *stbi__pic_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_GIF -static int stbi__gif_test(stbi__context *s); -static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp); -static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -#ifndef STBI_NO_PNM -static int stbi__pnm_test(stbi__context *s); -static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri); -static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp); -#endif - -static -#ifdef STBI_THREAD_LOCAL -STBI_THREAD_LOCAL -#endif -const char *stbi__g_failure_reason; - -STBIDEF const char *stbi_failure_reason(void) -{ - return stbi__g_failure_reason; -} - -#ifndef STBI_NO_FAILURE_STRINGS -static int stbi__err(const char *str) -{ - stbi__g_failure_reason = str; - return 0; -} -#endif - -static void *stbi__malloc(size_t size) -{ - return STBI_MALLOC(size); -} - -// stb_image uses ints pervasively, including for offset calculations. -// therefore the largest decoded image size we can support with the -// current code, even on 64-bit targets, is INT_MAX. this is not a -// significant limitation for the intended use case. -// -// we do, however, need to make sure our size calculations don't -// overflow. hence a few helper functions for size calculations that -// multiply integers together, making sure that they're non-negative -// and no overflow occurs. - -// return 1 if the sum is valid, 0 on overflow. -// negative terms are considered invalid. -static int stbi__addsizes_valid(int a, int b) -{ - if (b < 0) return 0; - // now 0 <= b <= INT_MAX, hence also - // 0 <= INT_MAX - b <= INTMAX. - // And "a + b <= INT_MAX" (which might overflow) is the - // same as a <= INT_MAX - b (no overflow) - return a <= INT_MAX - b; -} - -// returns 1 if the product is valid, 0 on overflow. -// negative factors are considered invalid. -static int stbi__mul2sizes_valid(int a, int b) -{ - if (a < 0 || b < 0) return 0; - if (b == 0) return 1; // mul-by-0 is always safe - // portable way to check for no overflows in a*b - return a <= INT_MAX/b; -} - -#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) -// returns 1 if "a*b + add" has no negative terms/factors and doesn't overflow -static int stbi__mad2sizes_valid(int a, int b, int add) -{ - return stbi__mul2sizes_valid(a, b) && stbi__addsizes_valid(a*b, add); -} -#endif - -// returns 1 if "a*b*c + add" has no negative terms/factors and doesn't overflow -static int stbi__mad3sizes_valid(int a, int b, int c, int add) -{ - return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && - stbi__addsizes_valid(a*b*c, add); -} - -// returns 1 if "a*b*c*d + add" has no negative terms/factors and doesn't overflow -#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) -static int stbi__mad4sizes_valid(int a, int b, int c, int d, int add) -{ - return stbi__mul2sizes_valid(a, b) && stbi__mul2sizes_valid(a*b, c) && - stbi__mul2sizes_valid(a*b*c, d) && stbi__addsizes_valid(a*b*c*d, add); -} -#endif - -#if !defined(STBI_NO_JPEG) || !defined(STBI_NO_PNG) || !defined(STBI_NO_TGA) || !defined(STBI_NO_HDR) -// mallocs with size overflow checking -static void *stbi__malloc_mad2(int a, int b, int add) -{ - if (!stbi__mad2sizes_valid(a, b, add)) return NULL; - return stbi__malloc(a*b + add); -} -#endif - -static void *stbi__malloc_mad3(int a, int b, int c, int add) -{ - if (!stbi__mad3sizes_valid(a, b, c, add)) return NULL; - return stbi__malloc(a*b*c + add); -} - -#if !defined(STBI_NO_LINEAR) || !defined(STBI_NO_HDR) -static void *stbi__malloc_mad4(int a, int b, int c, int d, int add) -{ - if (!stbi__mad4sizes_valid(a, b, c, d, add)) return NULL; - return stbi__malloc(a*b*c*d + add); -} -#endif - -// stbi__err - error -// stbi__errpf - error returning pointer to float -// stbi__errpuc - error returning pointer to unsigned char - -#ifdef STBI_NO_FAILURE_STRINGS - #define stbi__err(x,y) 0 -#elif defined(STBI_FAILURE_USERMSG) - #define stbi__err(x,y) stbi__err(y) -#else - #define stbi__err(x,y) stbi__err(x) -#endif - -#define stbi__errpf(x,y) ((float *)(size_t) (stbi__err(x,y)?NULL:NULL)) -#define stbi__errpuc(x,y) ((unsigned char *)(size_t) (stbi__err(x,y)?NULL:NULL)) - -STBIDEF void stbi_image_free(void *retval_from_stbi_load) -{ - STBI_FREE(retval_from_stbi_load); -} - -#ifndef STBI_NO_LINEAR -static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp); -#endif - -#ifndef STBI_NO_HDR -static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp); -#endif - -static int stbi__vertically_flip_on_load_global = 0; - -STBIDEF void stbi_set_flip_vertically_on_load(int flag_true_if_should_flip) -{ - stbi__vertically_flip_on_load_global = flag_true_if_should_flip; -} - -#ifndef STBI_THREAD_LOCAL -#define stbi__vertically_flip_on_load stbi__vertically_flip_on_load_global -#else -static STBI_THREAD_LOCAL int stbi__vertically_flip_on_load_local, stbi__vertically_flip_on_load_set; - -STBIDEF void stbi_set_flip_vertically_on_load_thread(int flag_true_if_should_flip) -{ - stbi__vertically_flip_on_load_local = flag_true_if_should_flip; - stbi__vertically_flip_on_load_set = 1; -} - -#define stbi__vertically_flip_on_load (stbi__vertically_flip_on_load_set \ - ? stbi__vertically_flip_on_load_local \ - : stbi__vertically_flip_on_load_global) -#endif // STBI_THREAD_LOCAL - -static void *stbi__load_main(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) -{ - memset(ri, 0, sizeof(*ri)); // make sure it's initialized if we add new fields - ri->bits_per_channel = 8; // default is 8 so most paths don't have to be changed - ri->channel_order = STBI_ORDER_RGB; // all current input & output are this, but this is here so we can add BGR order - ri->num_channels = 0; - - #ifndef STBI_NO_JPEG - if (stbi__jpeg_test(s)) return stbi__jpeg_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_PNG - if (stbi__png_test(s)) return stbi__png_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_BMP - if (stbi__bmp_test(s)) return stbi__bmp_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_GIF - if (stbi__gif_test(s)) return stbi__gif_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_PSD - if (stbi__psd_test(s)) return stbi__psd_load(s,x,y,comp,req_comp, ri, bpc); - #else - STBI_NOTUSED(bpc); - #endif - #ifndef STBI_NO_PIC - if (stbi__pic_test(s)) return stbi__pic_load(s,x,y,comp,req_comp, ri); - #endif - #ifndef STBI_NO_PNM - if (stbi__pnm_test(s)) return stbi__pnm_load(s,x,y,comp,req_comp, ri); - #endif - - #ifndef STBI_NO_HDR - if (stbi__hdr_test(s)) { - float *hdr = stbi__hdr_load(s, x,y,comp,req_comp, ri); - return stbi__hdr_to_ldr(hdr, *x, *y, req_comp ? req_comp : *comp); - } - #endif - - #ifndef STBI_NO_TGA - // test tga last because it's a crappy test! - if (stbi__tga_test(s)) - return stbi__tga_load(s,x,y,comp,req_comp, ri); - #endif - - return stbi__errpuc("unknown image type", "Image not of any known type, or corrupt"); -} - -static stbi_uc *stbi__convert_16_to_8(stbi__uint16 *orig, int w, int h, int channels) -{ - int i; - int img_len = w * h * channels; - stbi_uc *reduced; - - reduced = (stbi_uc *) stbi__malloc(img_len); - if (reduced == NULL) return stbi__errpuc("outofmem", "Out of memory"); - - for (i = 0; i < img_len; ++i) - reduced[i] = (stbi_uc)((orig[i] >> 8) & 0xFF); // top half of each byte is sufficient approx of 16->8 bit scaling - - STBI_FREE(orig); - return reduced; -} - -static stbi__uint16 *stbi__convert_8_to_16(stbi_uc *orig, int w, int h, int channels) -{ - int i; - int img_len = w * h * channels; - stbi__uint16 *enlarged; - - enlarged = (stbi__uint16 *) stbi__malloc(img_len*2); - if (enlarged == NULL) return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); - - for (i = 0; i < img_len; ++i) - enlarged[i] = (stbi__uint16)((orig[i] << 8) + orig[i]); // replicate to high and low byte, maps 0->0, 255->0xffff - - STBI_FREE(orig); - return enlarged; -} - -static void stbi__vertical_flip(void *image, int w, int h, int bytes_per_pixel) -{ - int row; - size_t bytes_per_row = (size_t)w * bytes_per_pixel; - stbi_uc temp[2048]; - stbi_uc *bytes = (stbi_uc *)image; - - for (row = 0; row < (h>>1); row++) { - stbi_uc *row0 = bytes + row*bytes_per_row; - stbi_uc *row1 = bytes + (h - row - 1)*bytes_per_row; - // swap row0 with row1 - size_t bytes_left = bytes_per_row; - while (bytes_left) { - size_t bytes_copy = (bytes_left < sizeof(temp)) ? bytes_left : sizeof(temp); - memcpy(temp, row0, bytes_copy); - memcpy(row0, row1, bytes_copy); - memcpy(row1, temp, bytes_copy); - row0 += bytes_copy; - row1 += bytes_copy; - bytes_left -= bytes_copy; - } - } -} - -#ifndef STBI_NO_GIF -static void stbi__vertical_flip_slices(void *image, int w, int h, int z, int bytes_per_pixel) -{ - int slice; - int slice_size = w * h * bytes_per_pixel; - - stbi_uc *bytes = (stbi_uc *)image; - for (slice = 0; slice < z; ++slice) { - stbi__vertical_flip(bytes, w, h, bytes_per_pixel); - bytes += slice_size; - } -} -#endif - -static unsigned char *stbi__load_and_postprocess_8bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) -{ - stbi__result_info ri; - void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 8); - - if (result == NULL) - return NULL; - - // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. - STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); - - if (ri.bits_per_channel != 8) { - result = stbi__convert_16_to_8((stbi__uint16 *) result, *x, *y, req_comp == 0 ? *comp : req_comp); - ri.bits_per_channel = 8; - } - - // @TODO: move stbi__convert_format to here - - if (stbi__vertically_flip_on_load) { - int channels = req_comp ? req_comp : *comp; - stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi_uc)); - } - - return (unsigned char *) result; -} - -static stbi__uint16 *stbi__load_and_postprocess_16bit(stbi__context *s, int *x, int *y, int *comp, int req_comp) -{ - stbi__result_info ri; - void *result = stbi__load_main(s, x, y, comp, req_comp, &ri, 16); - - if (result == NULL) - return NULL; - - // it is the responsibility of the loaders to make sure we get either 8 or 16 bit. - STBI_ASSERT(ri.bits_per_channel == 8 || ri.bits_per_channel == 16); - - if (ri.bits_per_channel != 16) { - result = stbi__convert_8_to_16((stbi_uc *) result, *x, *y, req_comp == 0 ? *comp : req_comp); - ri.bits_per_channel = 16; - } - - // @TODO: move stbi__convert_format16 to here - // @TODO: special case RGB-to-Y (and RGBA-to-YA) for 8-bit-to-16-bit case to keep more precision - - if (stbi__vertically_flip_on_load) { - int channels = req_comp ? req_comp : *comp; - stbi__vertical_flip(result, *x, *y, channels * sizeof(stbi__uint16)); - } - - return (stbi__uint16 *) result; -} - -#if !defined(STBI_NO_HDR) && !defined(STBI_NO_LINEAR) -static void stbi__float_postprocess(float *result, int *x, int *y, int *comp, int req_comp) -{ - if (stbi__vertically_flip_on_load && result != NULL) { - int channels = req_comp ? req_comp : *comp; - stbi__vertical_flip(result, *x, *y, channels * sizeof(float)); - } -} -#endif - -#ifndef STBI_NO_STDIO - -#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) -STBI_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); -STBI_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); -#endif - -#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) -STBIDEF int stbi_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) -{ - return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); -} -#endif - -static FILE *stbi__fopen(char const *filename, char const *mode) -{ - FILE *f; -#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) - wchar_t wMode[64]; - wchar_t wFilename[1024]; - if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename))) - return 0; - - if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode))) - return 0; - -#if _MSC_VER >= 1400 - if (0 != _wfopen_s(&f, wFilename, wMode)) - f = 0; -#else - f = _wfopen(wFilename, wMode); -#endif - -#elif defined(_MSC_VER) && _MSC_VER >= 1400 - if (0 != fopen_s(&f, filename, mode)) - f=0; -#else - f = fopen(filename, mode); -#endif - return f; -} - - -STBIDEF stbi_uc *stbi_load(char const *filename, int *x, int *y, int *comp, int req_comp) -{ - FILE *f = stbi__fopen(filename, "rb"); - unsigned char *result; - if (!f) return stbi__errpuc("can't fopen", "Unable to open file"); - result = stbi_load_from_file(f,x,y,comp,req_comp); - fclose(f); - return result; -} - -STBIDEF stbi_uc *stbi_load_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) -{ - unsigned char *result; - stbi__context s; - stbi__start_file(&s,f); - result = stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); - if (result) { - // need to 'unget' all the characters in the IO buffer - fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); - } - return result; -} - -STBIDEF stbi__uint16 *stbi_load_from_file_16(FILE *f, int *x, int *y, int *comp, int req_comp) -{ - stbi__uint16 *result; - stbi__context s; - stbi__start_file(&s,f); - result = stbi__load_and_postprocess_16bit(&s,x,y,comp,req_comp); - if (result) { - // need to 'unget' all the characters in the IO buffer - fseek(f, - (int) (s.img_buffer_end - s.img_buffer), SEEK_CUR); - } - return result; -} - -STBIDEF stbi_us *stbi_load_16(char const *filename, int *x, int *y, int *comp, int req_comp) -{ - FILE *f = stbi__fopen(filename, "rb"); - stbi__uint16 *result; - if (!f) return (stbi_us *) stbi__errpuc("can't fopen", "Unable to open file"); - result = stbi_load_from_file_16(f,x,y,comp,req_comp); - fclose(f); - return result; -} - - -#endif //!STBI_NO_STDIO - -STBIDEF stbi_us *stbi_load_16_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *channels_in_file, int desired_channels) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); -} - -STBIDEF stbi_us *stbi_load_16_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *channels_in_file, int desired_channels) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *)clbk, user); - return stbi__load_and_postprocess_16bit(&s,x,y,channels_in_file,desired_channels); -} - -STBIDEF stbi_uc *stbi_load_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); -} - -STBIDEF stbi_uc *stbi_load_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); - return stbi__load_and_postprocess_8bit(&s,x,y,comp,req_comp); -} - -#ifndef STBI_NO_GIF -STBIDEF stbi_uc *stbi_load_gif_from_memory(stbi_uc const *buffer, int len, int **delays, int *x, int *y, int *z, int *comp, int req_comp) -{ - unsigned char *result; - stbi__context s; - stbi__start_mem(&s,buffer,len); - - result = (unsigned char*) stbi__load_gif_main(&s, delays, x, y, z, comp, req_comp); - if (stbi__vertically_flip_on_load) { - stbi__vertical_flip_slices( result, *x, *y, *z, *comp ); - } - - return result; -} -#endif - -#ifndef STBI_NO_LINEAR -static float *stbi__loadf_main(stbi__context *s, int *x, int *y, int *comp, int req_comp) -{ - unsigned char *data; - #ifndef STBI_NO_HDR - if (stbi__hdr_test(s)) { - stbi__result_info ri; - float *hdr_data = stbi__hdr_load(s,x,y,comp,req_comp, &ri); - if (hdr_data) - stbi__float_postprocess(hdr_data,x,y,comp,req_comp); - return hdr_data; - } - #endif - data = stbi__load_and_postprocess_8bit(s, x, y, comp, req_comp); - if (data) - return stbi__ldr_to_hdr(data, *x, *y, req_comp ? req_comp : *comp); - return stbi__errpf("unknown image type", "Image not of any known type, or corrupt"); -} - -STBIDEF float *stbi_loadf_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__loadf_main(&s,x,y,comp,req_comp); -} - -STBIDEF float *stbi_loadf_from_callbacks(stbi_io_callbacks const *clbk, void *user, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); - return stbi__loadf_main(&s,x,y,comp,req_comp); -} - -#ifndef STBI_NO_STDIO -STBIDEF float *stbi_loadf(char const *filename, int *x, int *y, int *comp, int req_comp) -{ - float *result; - FILE *f = stbi__fopen(filename, "rb"); - if (!f) return stbi__errpf("can't fopen", "Unable to open file"); - result = stbi_loadf_from_file(f,x,y,comp,req_comp); - fclose(f); - return result; -} - -STBIDEF float *stbi_loadf_from_file(FILE *f, int *x, int *y, int *comp, int req_comp) -{ - stbi__context s; - stbi__start_file(&s,f); - return stbi__loadf_main(&s,x,y,comp,req_comp); -} -#endif // !STBI_NO_STDIO - -#endif // !STBI_NO_LINEAR - -// these is-hdr-or-not is defined independent of whether STBI_NO_LINEAR is -// defined, for API simplicity; if STBI_NO_LINEAR is defined, it always -// reports false! - -STBIDEF int stbi_is_hdr_from_memory(stbi_uc const *buffer, int len) -{ - #ifndef STBI_NO_HDR - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__hdr_test(&s); - #else - STBI_NOTUSED(buffer); - STBI_NOTUSED(len); - return 0; - #endif -} - -#ifndef STBI_NO_STDIO -STBIDEF int stbi_is_hdr (char const *filename) -{ - FILE *f = stbi__fopen(filename, "rb"); - int result=0; - if (f) { - result = stbi_is_hdr_from_file(f); - fclose(f); - } - return result; -} - -STBIDEF int stbi_is_hdr_from_file(FILE *f) -{ - #ifndef STBI_NO_HDR - long pos = ftell(f); - int res; - stbi__context s; - stbi__start_file(&s,f); - res = stbi__hdr_test(&s); - fseek(f, pos, SEEK_SET); - return res; - #else - STBI_NOTUSED(f); - return 0; - #endif -} -#endif // !STBI_NO_STDIO - -STBIDEF int stbi_is_hdr_from_callbacks(stbi_io_callbacks const *clbk, void *user) -{ - #ifndef STBI_NO_HDR - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) clbk, user); - return stbi__hdr_test(&s); - #else - STBI_NOTUSED(clbk); - STBI_NOTUSED(user); - return 0; - #endif -} - -#ifndef STBI_NO_LINEAR -static float stbi__l2h_gamma=2.2f, stbi__l2h_scale=1.0f; - -STBIDEF void stbi_ldr_to_hdr_gamma(float gamma) { stbi__l2h_gamma = gamma; } -STBIDEF void stbi_ldr_to_hdr_scale(float scale) { stbi__l2h_scale = scale; } -#endif - -static float stbi__h2l_gamma_i=1.0f/2.2f, stbi__h2l_scale_i=1.0f; - -STBIDEF void stbi_hdr_to_ldr_gamma(float gamma) { stbi__h2l_gamma_i = 1/gamma; } -STBIDEF void stbi_hdr_to_ldr_scale(float scale) { stbi__h2l_scale_i = 1/scale; } - - -////////////////////////////////////////////////////////////////////////////// -// -// Common code used by all image loaders -// - -enum -{ - STBI__SCAN_load=0, - STBI__SCAN_type, - STBI__SCAN_header -}; - -static void stbi__refill_buffer(stbi__context *s) -{ - int n = (s->io.read)(s->io_user_data,(char*)s->buffer_start,s->buflen); - s->callback_already_read += (int) (s->img_buffer - s->img_buffer_original); - if (n == 0) { - // at end of file, treat same as if from memory, but need to handle case - // where s->img_buffer isn't pointing to safe memory, e.g. 0-byte file - s->read_from_callbacks = 0; - s->img_buffer = s->buffer_start; - s->img_buffer_end = s->buffer_start+1; - *s->img_buffer = 0; - } else { - s->img_buffer = s->buffer_start; - s->img_buffer_end = s->buffer_start + n; - } -} - -stbi_inline static stbi_uc stbi__get8(stbi__context *s) -{ - if (s->img_buffer < s->img_buffer_end) - return *s->img_buffer++; - if (s->read_from_callbacks) { - stbi__refill_buffer(s); - return *s->img_buffer++; - } - return 0; -} - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_HDR) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) -// nothing -#else -stbi_inline static int stbi__at_eof(stbi__context *s) -{ - if (s->io.read) { - if (!(s->io.eof)(s->io_user_data)) return 0; - // if feof() is true, check if buffer = end - // special case: we've only got the special 0 character at the end - if (s->read_from_callbacks == 0) return 1; - } - - return s->img_buffer >= s->img_buffer_end; -} -#endif - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) -// nothing -#else -static void stbi__skip(stbi__context *s, int n) -{ - if (n == 0) return; // already there! - if (n < 0) { - s->img_buffer = s->img_buffer_end; - return; - } - if (s->io.read) { - int blen = (int) (s->img_buffer_end - s->img_buffer); - if (blen < n) { - s->img_buffer = s->img_buffer_end; - (s->io.skip)(s->io_user_data, n - blen); - return; - } - } - s->img_buffer += n; -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_TGA) && defined(STBI_NO_HDR) && defined(STBI_NO_PNM) -// nothing -#else -static int stbi__getn(stbi__context *s, stbi_uc *buffer, int n) -{ - if (s->io.read) { - int blen = (int) (s->img_buffer_end - s->img_buffer); - if (blen < n) { - int res, count; - - memcpy(buffer, s->img_buffer, blen); - - count = (s->io.read)(s->io_user_data, (char*) buffer + blen, n - blen); - res = (count == (n-blen)); - s->img_buffer = s->img_buffer_end; - return res; - } - } - - if (s->img_buffer+n <= s->img_buffer_end) { - memcpy(buffer, s->img_buffer, n); - s->img_buffer += n; - return 1; - } else - return 0; -} -#endif - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) -// nothing -#else -static int stbi__get16be(stbi__context *s) -{ - int z = stbi__get8(s); - return (z << 8) + stbi__get8(s); -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) && defined(STBI_NO_PIC) -// nothing -#else -static stbi__uint32 stbi__get32be(stbi__context *s) -{ - stbi__uint32 z = stbi__get16be(s); - return (z << 16) + stbi__get16be(s); -} -#endif - -#if defined(STBI_NO_BMP) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) -// nothing -#else -static int stbi__get16le(stbi__context *s) -{ - int z = stbi__get8(s); - return z + (stbi__get8(s) << 8); -} -#endif - -#ifndef STBI_NO_BMP -static stbi__uint32 stbi__get32le(stbi__context *s) -{ - stbi__uint32 z = stbi__get16le(s); - return z + (stbi__get16le(s) << 16); -} -#endif - -#define STBI__BYTECAST(x) ((stbi_uc) ((x) & 255)) // truncate int to byte without warnings - -#if defined(STBI_NO_JPEG) && defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) -// nothing -#else -////////////////////////////////////////////////////////////////////////////// -// -// generic converter from built-in img_n to req_comp -// individual types do this automatically as much as possible (e.g. jpeg -// does all cases internally since it needs to colorspace convert anyway, -// and it never has alpha, so very few cases ). png can automatically -// interleave an alpha=255 channel, but falls back to this for other cases -// -// assume data buffer is malloced, so malloc a new one and free that one -// only failure mode is malloc failing - -static stbi_uc stbi__compute_y(int r, int g, int b) -{ - return (stbi_uc) (((r*77) + (g*150) + (29*b)) >> 8); -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_BMP) && defined(STBI_NO_PSD) && defined(STBI_NO_TGA) && defined(STBI_NO_GIF) && defined(STBI_NO_PIC) && defined(STBI_NO_PNM) -// nothing -#else -static unsigned char *stbi__convert_format(unsigned char *data, int img_n, int req_comp, unsigned int x, unsigned int y) -{ - int i,j; - unsigned char *good; - - if (req_comp == img_n) return data; - STBI_ASSERT(req_comp >= 1 && req_comp <= 4); - - good = (unsigned char *) stbi__malloc_mad3(req_comp, x, y, 0); - if (good == NULL) { - STBI_FREE(data); - return stbi__errpuc("outofmem", "Out of memory"); - } - - for (j=0; j < (int) y; ++j) { - unsigned char *src = data + j * x * img_n ; - unsigned char *dest = good + j * x * req_comp; - - #define STBI__COMBO(a,b) ((a)*8+(b)) - #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) - // convert source image with img_n components to one with req_comp components; - // avoid switch per pixel, so use switch per scanline and massive macros - switch (STBI__COMBO(img_n, req_comp)) { - STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=255; } break; - STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=255; } break; - STBI__CASE(2,1) { dest[0]=src[0]; } break; - STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; - STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=255; } break; - STBI__CASE(3,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; - STBI__CASE(3,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = 255; } break; - STBI__CASE(4,1) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); } break; - STBI__CASE(4,2) { dest[0]=stbi__compute_y(src[0],src[1],src[2]); dest[1] = src[3]; } break; - STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; - default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return stbi__errpuc("unsupported", "Unsupported format conversion"); - } - #undef STBI__CASE - } - - STBI_FREE(data); - return good; -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) -// nothing -#else -static stbi__uint16 stbi__compute_y_16(int r, int g, int b) -{ - return (stbi__uint16) (((r*77) + (g*150) + (29*b)) >> 8); -} -#endif - -#if defined(STBI_NO_PNG) && defined(STBI_NO_PSD) -// nothing -#else -static stbi__uint16 *stbi__convert_format16(stbi__uint16 *data, int img_n, int req_comp, unsigned int x, unsigned int y) -{ - int i,j; - stbi__uint16 *good; - - if (req_comp == img_n) return data; - STBI_ASSERT(req_comp >= 1 && req_comp <= 4); - - good = (stbi__uint16 *) stbi__malloc(req_comp * x * y * 2); - if (good == NULL) { - STBI_FREE(data); - return (stbi__uint16 *) stbi__errpuc("outofmem", "Out of memory"); - } - - for (j=0; j < (int) y; ++j) { - stbi__uint16 *src = data + j * x * img_n ; - stbi__uint16 *dest = good + j * x * req_comp; - - #define STBI__COMBO(a,b) ((a)*8+(b)) - #define STBI__CASE(a,b) case STBI__COMBO(a,b): for(i=x-1; i >= 0; --i, src += a, dest += b) - // convert source image with img_n components to one with req_comp components; - // avoid switch per pixel, so use switch per scanline and massive macros - switch (STBI__COMBO(img_n, req_comp)) { - STBI__CASE(1,2) { dest[0]=src[0]; dest[1]=0xffff; } break; - STBI__CASE(1,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(1,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=0xffff; } break; - STBI__CASE(2,1) { dest[0]=src[0]; } break; - STBI__CASE(2,3) { dest[0]=dest[1]=dest[2]=src[0]; } break; - STBI__CASE(2,4) { dest[0]=dest[1]=dest[2]=src[0]; dest[3]=src[1]; } break; - STBI__CASE(3,4) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2];dest[3]=0xffff; } break; - STBI__CASE(3,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; - STBI__CASE(3,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = 0xffff; } break; - STBI__CASE(4,1) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); } break; - STBI__CASE(4,2) { dest[0]=stbi__compute_y_16(src[0],src[1],src[2]); dest[1] = src[3]; } break; - STBI__CASE(4,3) { dest[0]=src[0];dest[1]=src[1];dest[2]=src[2]; } break; - default: STBI_ASSERT(0); STBI_FREE(data); STBI_FREE(good); return (stbi__uint16*) stbi__errpuc("unsupported", "Unsupported format conversion"); - } - #undef STBI__CASE - } - - STBI_FREE(data); - return good; -} -#endif - -#ifndef STBI_NO_LINEAR -static float *stbi__ldr_to_hdr(stbi_uc *data, int x, int y, int comp) -{ - int i,k,n; - float *output; - if (!data) return NULL; - output = (float *) stbi__malloc_mad4(x, y, comp, sizeof(float), 0); - if (output == NULL) { STBI_FREE(data); return stbi__errpf("outofmem", "Out of memory"); } - // compute number of non-alpha components - if (comp & 1) n = comp; else n = comp-1; - for (i=0; i < x*y; ++i) { - for (k=0; k < n; ++k) { - output[i*comp + k] = (float) (pow(data[i*comp+k]/255.0f, stbi__l2h_gamma) * stbi__l2h_scale); - } - } - if (n < comp) { - for (i=0; i < x*y; ++i) { - output[i*comp + n] = data[i*comp + n]/255.0f; - } - } - STBI_FREE(data); - return output; -} -#endif - -#ifndef STBI_NO_HDR -#define stbi__float2int(x) ((int) (x)) -static stbi_uc *stbi__hdr_to_ldr(float *data, int x, int y, int comp) -{ - int i,k,n; - stbi_uc *output; - if (!data) return NULL; - output = (stbi_uc *) stbi__malloc_mad3(x, y, comp, 0); - if (output == NULL) { STBI_FREE(data); return stbi__errpuc("outofmem", "Out of memory"); } - // compute number of non-alpha components - if (comp & 1) n = comp; else n = comp-1; - for (i=0; i < x*y; ++i) { - for (k=0; k < n; ++k) { - float z = (float) pow(data[i*comp+k]*stbi__h2l_scale_i, stbi__h2l_gamma_i) * 255 + 0.5f; - if (z < 0) z = 0; - if (z > 255) z = 255; - output[i*comp + k] = (stbi_uc) stbi__float2int(z); - } - if (k < comp) { - float z = data[i*comp+k] * 255 + 0.5f; - if (z < 0) z = 0; - if (z > 255) z = 255; - output[i*comp + k] = (stbi_uc) stbi__float2int(z); - } - } - STBI_FREE(data); - return output; -} -#endif - -////////////////////////////////////////////////////////////////////////////// -// -// "baseline" JPEG/JFIF decoder -// -// simple implementation -// - doesn't support delayed output of y-dimension -// - simple interface (only one output format: 8-bit interleaved RGB) -// - doesn't try to recover corrupt jpegs -// - doesn't allow partial loading, loading multiple at once -// - still fast on x86 (copying globals into locals doesn't help x86) -// - allocates lots of intermediate memory (full size of all components) -// - non-interleaved case requires this anyway -// - allows good upsampling (see next) -// high-quality -// - upsampled channels are bilinearly interpolated, even across blocks -// - quality integer IDCT derived from IJG's 'slow' -// performance -// - fast huffman; reasonable integer IDCT -// - some SIMD kernels for common paths on targets with SSE2/NEON -// - uses a lot of intermediate memory, could cache poorly - -#ifndef STBI_NO_JPEG - -// huffman decoding acceleration -#define FAST_BITS 9 // larger handles more cases; smaller stomps less cache - -typedef struct -{ - stbi_uc fast[1 << FAST_BITS]; - // weirdly, repacking this into AoS is a 10% speed loss, instead of a win - stbi__uint16 code[256]; - stbi_uc values[256]; - stbi_uc size[257]; - unsigned int maxcode[18]; - int delta[17]; // old 'firstsymbol' - old 'firstcode' -} stbi__huffman; - -typedef struct -{ - stbi__context *s; - stbi__huffman huff_dc[4]; - stbi__huffman huff_ac[4]; - stbi__uint16 dequant[4][64]; - stbi__int16 fast_ac[4][1 << FAST_BITS]; - -// sizes for components, interleaved MCUs - int img_h_max, img_v_max; - int img_mcu_x, img_mcu_y; - int img_mcu_w, img_mcu_h; - -// definition of jpeg image component - struct - { - int id; - int h,v; - int tq; - int hd,ha; - int dc_pred; - - int x,y,w2,h2; - stbi_uc *data; - void *raw_data, *raw_coeff; - stbi_uc *linebuf; - short *coeff; // progressive only - int coeff_w, coeff_h; // number of 8x8 coefficient blocks - } img_comp[4]; - - stbi__uint32 code_buffer; // jpeg entropy-coded buffer - int code_bits; // number of valid bits - unsigned char marker; // marker seen while filling entropy buffer - int nomore; // flag if we saw a marker so must stop - - int progressive; - int spec_start; - int spec_end; - int succ_high; - int succ_low; - int eob_run; - int jfif; - int app14_color_transform; // Adobe APP14 tag - int rgb; - - int scan_n, order[4]; - int restart_interval, todo; - -// kernels - void (*idct_block_kernel)(stbi_uc *out, int out_stride, short data[64]); - void (*YCbCr_to_RGB_kernel)(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step); - stbi_uc *(*resample_row_hv_2_kernel)(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs); -} stbi__jpeg; - -static int stbi__build_huffman(stbi__huffman *h, int *count) -{ - int i,j,k=0; - unsigned int code; - // build size list for each symbol (from JPEG spec) - for (i=0; i < 16; ++i) - for (j=0; j < count[i]; ++j) - h->size[k++] = (stbi_uc) (i+1); - h->size[k] = 0; - - // compute actual symbols (from jpeg spec) - code = 0; - k = 0; - for(j=1; j <= 16; ++j) { - // compute delta to add to code to compute symbol id - h->delta[j] = k - code; - if (h->size[k] == j) { - while (h->size[k] == j) - h->code[k++] = (stbi__uint16) (code++); - if (code-1 >= (1u << j)) return stbi__err("bad code lengths","Corrupt JPEG"); - } - // compute largest code + 1 for this size, preshifted as needed later - h->maxcode[j] = code << (16-j); - code <<= 1; - } - h->maxcode[j] = 0xffffffff; - - // build non-spec acceleration table; 255 is flag for not-accelerated - memset(h->fast, 255, 1 << FAST_BITS); - for (i=0; i < k; ++i) { - int s = h->size[i]; - if (s <= FAST_BITS) { - int c = h->code[i] << (FAST_BITS-s); - int m = 1 << (FAST_BITS-s); - for (j=0; j < m; ++j) { - h->fast[c+j] = (stbi_uc) i; - } - } - } - return 1; -} - -// build a table that decodes both magnitude and value of small ACs in -// one go. -static void stbi__build_fast_ac(stbi__int16 *fast_ac, stbi__huffman *h) -{ - int i; - for (i=0; i < (1 << FAST_BITS); ++i) { - stbi_uc fast = h->fast[i]; - fast_ac[i] = 0; - if (fast < 255) { - int rs = h->values[fast]; - int run = (rs >> 4) & 15; - int magbits = rs & 15; - int len = h->size[fast]; - - if (magbits && len + magbits <= FAST_BITS) { - // magnitude code followed by receive_extend code - int k = ((i << len) & ((1 << FAST_BITS) - 1)) >> (FAST_BITS - magbits); - int m = 1 << (magbits - 1); - if (k < m) k += (~0U << magbits) + 1; - // if the result is small enough, we can fit it in fast_ac table - if (k >= -128 && k <= 127) - fast_ac[i] = (stbi__int16) ((k * 256) + (run * 16) + (len + magbits)); - } - } - } -} - -static void stbi__grow_buffer_unsafe(stbi__jpeg *j) -{ - do { - unsigned int b = j->nomore ? 0 : stbi__get8(j->s); - if (b == 0xff) { - int c = stbi__get8(j->s); - while (c == 0xff) c = stbi__get8(j->s); // consume fill bytes - if (c != 0) { - j->marker = (unsigned char) c; - j->nomore = 1; - return; - } - } - j->code_buffer |= b << (24 - j->code_bits); - j->code_bits += 8; - } while (j->code_bits <= 24); -} - -// (1 << n) - 1 -static const stbi__uint32 stbi__bmask[17]={0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535}; - -// decode a jpeg huffman value from the bitstream -stbi_inline static int stbi__jpeg_huff_decode(stbi__jpeg *j, stbi__huffman *h) -{ - unsigned int temp; - int c,k; - - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - - // look at the top FAST_BITS and determine what symbol ID it is, - // if the code is <= FAST_BITS - c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); - k = h->fast[c]; - if (k < 255) { - int s = h->size[k]; - if (s > j->code_bits) - return -1; - j->code_buffer <<= s; - j->code_bits -= s; - return h->values[k]; - } - - // naive test is to shift the code_buffer down so k bits are - // valid, then test against maxcode. To speed this up, we've - // preshifted maxcode left so that it has (16-k) 0s at the - // end; in other words, regardless of the number of bits, it - // wants to be compared against something shifted to have 16; - // that way we don't need to shift inside the loop. - temp = j->code_buffer >> 16; - for (k=FAST_BITS+1 ; ; ++k) - if (temp < h->maxcode[k]) - break; - if (k == 17) { - // error! code not found - j->code_bits -= 16; - return -1; - } - - if (k > j->code_bits) - return -1; - - // convert the huffman code to the symbol id - c = ((j->code_buffer >> (32 - k)) & stbi__bmask[k]) + h->delta[k]; - STBI_ASSERT((((j->code_buffer) >> (32 - h->size[c])) & stbi__bmask[h->size[c]]) == h->code[c]); - - // convert the id to a symbol - j->code_bits -= k; - j->code_buffer <<= k; - return h->values[c]; -} - -// bias[n] = (-1<code_bits < n) stbi__grow_buffer_unsafe(j); - - sgn = (stbi__int32)j->code_buffer >> 31; // sign bit is always in MSB - k = stbi_lrot(j->code_buffer, n); - if (n < 0 || n >= (int) (sizeof(stbi__bmask)/sizeof(*stbi__bmask))) return 0; - j->code_buffer = k & ~stbi__bmask[n]; - k &= stbi__bmask[n]; - j->code_bits -= n; - return k + (stbi__jbias[n] & ~sgn); -} - -// get some unsigned bits -stbi_inline static int stbi__jpeg_get_bits(stbi__jpeg *j, int n) -{ - unsigned int k; - if (j->code_bits < n) stbi__grow_buffer_unsafe(j); - k = stbi_lrot(j->code_buffer, n); - j->code_buffer = k & ~stbi__bmask[n]; - k &= stbi__bmask[n]; - j->code_bits -= n; - return k; -} - -stbi_inline static int stbi__jpeg_get_bit(stbi__jpeg *j) -{ - unsigned int k; - if (j->code_bits < 1) stbi__grow_buffer_unsafe(j); - k = j->code_buffer; - j->code_buffer <<= 1; - --j->code_bits; - return k & 0x80000000; -} - -// given a value that's at position X in the zigzag stream, -// where does it appear in the 8x8 matrix coded as row-major? -static const stbi_uc stbi__jpeg_dezigzag[64+15] = -{ - 0, 1, 8, 16, 9, 2, 3, 10, - 17, 24, 32, 25, 18, 11, 4, 5, - 12, 19, 26, 33, 40, 48, 41, 34, - 27, 20, 13, 6, 7, 14, 21, 28, - 35, 42, 49, 56, 57, 50, 43, 36, - 29, 22, 15, 23, 30, 37, 44, 51, - 58, 59, 52, 45, 38, 31, 39, 46, - 53, 60, 61, 54, 47, 55, 62, 63, - // let corrupt input sample past end - 63, 63, 63, 63, 63, 63, 63, 63, - 63, 63, 63, 63, 63, 63, 63 -}; - -// decode one 64-entry block-- -static int stbi__jpeg_decode_block(stbi__jpeg *j, short data[64], stbi__huffman *hdc, stbi__huffman *hac, stbi__int16 *fac, int b, stbi__uint16 *dequant) -{ - int diff,dc,k; - int t; - - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - t = stbi__jpeg_huff_decode(j, hdc); - if (t < 0) return stbi__err("bad huffman code","Corrupt JPEG"); - - // 0 all the ac values now so we can do it 32-bits at a time - memset(data,0,64*sizeof(data[0])); - - diff = t ? stbi__extend_receive(j, t) : 0; - dc = j->img_comp[b].dc_pred + diff; - j->img_comp[b].dc_pred = dc; - data[0] = (short) (dc * dequant[0]); - - // decode AC components, see JPEG spec - k = 1; - do { - unsigned int zig; - int c,r,s; - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); - r = fac[c]; - if (r) { // fast-AC path - k += (r >> 4) & 15; // run - s = r & 15; // combined length - j->code_buffer <<= s; - j->code_bits -= s; - // decode into unzigzag'd location - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) ((r >> 8) * dequant[zig]); - } else { - int rs = stbi__jpeg_huff_decode(j, hac); - if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); - s = rs & 15; - r = rs >> 4; - if (s == 0) { - if (rs != 0xf0) break; // end block - k += 16; - } else { - k += r; - // decode into unzigzag'd location - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) (stbi__extend_receive(j,s) * dequant[zig]); - } - } - } while (k < 64); - return 1; -} - -static int stbi__jpeg_decode_block_prog_dc(stbi__jpeg *j, short data[64], stbi__huffman *hdc, int b) -{ - int diff,dc; - int t; - if (j->spec_end != 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - - if (j->succ_high == 0) { - // first scan for DC coefficient, must be first - memset(data,0,64*sizeof(data[0])); // 0 all the ac values now - t = stbi__jpeg_huff_decode(j, hdc); - if (t == -1) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - diff = t ? stbi__extend_receive(j, t) : 0; - - dc = j->img_comp[b].dc_pred + diff; - j->img_comp[b].dc_pred = dc; - data[0] = (short) (dc << j->succ_low); - } else { - // refinement scan for DC coefficient - if (stbi__jpeg_get_bit(j)) - data[0] += (short) (1 << j->succ_low); - } - return 1; -} - -// @OPTIMIZE: store non-zigzagged during the decode passes, -// and only de-zigzag when dequantizing -static int stbi__jpeg_decode_block_prog_ac(stbi__jpeg *j, short data[64], stbi__huffman *hac, stbi__int16 *fac) -{ - int k; - if (j->spec_start == 0) return stbi__err("can't merge dc and ac", "Corrupt JPEG"); - - if (j->succ_high == 0) { - int shift = j->succ_low; - - if (j->eob_run) { - --j->eob_run; - return 1; - } - - k = j->spec_start; - do { - unsigned int zig; - int c,r,s; - if (j->code_bits < 16) stbi__grow_buffer_unsafe(j); - c = (j->code_buffer >> (32 - FAST_BITS)) & ((1 << FAST_BITS)-1); - r = fac[c]; - if (r) { // fast-AC path - k += (r >> 4) & 15; // run - s = r & 15; // combined length - j->code_buffer <<= s; - j->code_bits -= s; - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) ((r >> 8) << shift); - } else { - int rs = stbi__jpeg_huff_decode(j, hac); - if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); - s = rs & 15; - r = rs >> 4; - if (s == 0) { - if (r < 15) { - j->eob_run = (1 << r); - if (r) - j->eob_run += stbi__jpeg_get_bits(j, r); - --j->eob_run; - break; - } - k += 16; - } else { - k += r; - zig = stbi__jpeg_dezigzag[k++]; - data[zig] = (short) (stbi__extend_receive(j,s) << shift); - } - } - } while (k <= j->spec_end); - } else { - // refinement scan for these AC coefficients - - short bit = (short) (1 << j->succ_low); - - if (j->eob_run) { - --j->eob_run; - for (k = j->spec_start; k <= j->spec_end; ++k) { - short *p = &data[stbi__jpeg_dezigzag[k]]; - if (*p != 0) - if (stbi__jpeg_get_bit(j)) - if ((*p & bit)==0) { - if (*p > 0) - *p += bit; - else - *p -= bit; - } - } - } else { - k = j->spec_start; - do { - int r,s; - int rs = stbi__jpeg_huff_decode(j, hac); // @OPTIMIZE see if we can use the fast path here, advance-by-r is so slow, eh - if (rs < 0) return stbi__err("bad huffman code","Corrupt JPEG"); - s = rs & 15; - r = rs >> 4; - if (s == 0) { - if (r < 15) { - j->eob_run = (1 << r) - 1; - if (r) - j->eob_run += stbi__jpeg_get_bits(j, r); - r = 64; // force end of block - } else { - // r=15 s=0 should write 16 0s, so we just do - // a run of 15 0s and then write s (which is 0), - // so we don't have to do anything special here - } - } else { - if (s != 1) return stbi__err("bad huffman code", "Corrupt JPEG"); - // sign bit - if (stbi__jpeg_get_bit(j)) - s = bit; - else - s = -bit; - } - - // advance by r - while (k <= j->spec_end) { - short *p = &data[stbi__jpeg_dezigzag[k++]]; - if (*p != 0) { - if (stbi__jpeg_get_bit(j)) - if ((*p & bit)==0) { - if (*p > 0) - *p += bit; - else - *p -= bit; - } - } else { - if (r == 0) { - *p = (short) s; - break; - } - --r; - } - } - } while (k <= j->spec_end); - } - } - return 1; -} - -// take a -128..127 value and stbi__clamp it and convert to 0..255 -stbi_inline static stbi_uc stbi__clamp(int x) -{ - // trick to use a single test to catch both cases - if ((unsigned int) x > 255) { - if (x < 0) return 0; - if (x > 255) return 255; - } - return (stbi_uc) x; -} - -#define stbi__f2f(x) ((int) (((x) * 4096 + 0.5))) -#define stbi__fsh(x) ((x) * 4096) - -// derived from jidctint -- DCT_ISLOW -#define STBI__IDCT_1D(s0,s1,s2,s3,s4,s5,s6,s7) \ - int t0,t1,t2,t3,p1,p2,p3,p4,p5,x0,x1,x2,x3; \ - p2 = s2; \ - p3 = s6; \ - p1 = (p2+p3) * stbi__f2f(0.5411961f); \ - t2 = p1 + p3*stbi__f2f(-1.847759065f); \ - t3 = p1 + p2*stbi__f2f( 0.765366865f); \ - p2 = s0; \ - p3 = s4; \ - t0 = stbi__fsh(p2+p3); \ - t1 = stbi__fsh(p2-p3); \ - x0 = t0+t3; \ - x3 = t0-t3; \ - x1 = t1+t2; \ - x2 = t1-t2; \ - t0 = s7; \ - t1 = s5; \ - t2 = s3; \ - t3 = s1; \ - p3 = t0+t2; \ - p4 = t1+t3; \ - p1 = t0+t3; \ - p2 = t1+t2; \ - p5 = (p3+p4)*stbi__f2f( 1.175875602f); \ - t0 = t0*stbi__f2f( 0.298631336f); \ - t1 = t1*stbi__f2f( 2.053119869f); \ - t2 = t2*stbi__f2f( 3.072711026f); \ - t3 = t3*stbi__f2f( 1.501321110f); \ - p1 = p5 + p1*stbi__f2f(-0.899976223f); \ - p2 = p5 + p2*stbi__f2f(-2.562915447f); \ - p3 = p3*stbi__f2f(-1.961570560f); \ - p4 = p4*stbi__f2f(-0.390180644f); \ - t3 += p1+p4; \ - t2 += p2+p3; \ - t1 += p2+p4; \ - t0 += p1+p3; - -static void stbi__idct_block(stbi_uc *out, int out_stride, short data[64]) -{ - int i,val[64],*v=val; - stbi_uc *o; - short *d = data; - - // columns - for (i=0; i < 8; ++i,++d, ++v) { - // if all zeroes, shortcut -- this avoids dequantizing 0s and IDCTing - if (d[ 8]==0 && d[16]==0 && d[24]==0 && d[32]==0 - && d[40]==0 && d[48]==0 && d[56]==0) { - // no shortcut 0 seconds - // (1|2|3|4|5|6|7)==0 0 seconds - // all separate -0.047 seconds - // 1 && 2|3 && 4|5 && 6|7: -0.047 seconds - int dcterm = d[0]*4; - v[0] = v[8] = v[16] = v[24] = v[32] = v[40] = v[48] = v[56] = dcterm; - } else { - STBI__IDCT_1D(d[ 0],d[ 8],d[16],d[24],d[32],d[40],d[48],d[56]) - // constants scaled things up by 1<<12; let's bring them back - // down, but keep 2 extra bits of precision - x0 += 512; x1 += 512; x2 += 512; x3 += 512; - v[ 0] = (x0+t3) >> 10; - v[56] = (x0-t3) >> 10; - v[ 8] = (x1+t2) >> 10; - v[48] = (x1-t2) >> 10; - v[16] = (x2+t1) >> 10; - v[40] = (x2-t1) >> 10; - v[24] = (x3+t0) >> 10; - v[32] = (x3-t0) >> 10; - } - } - - for (i=0, v=val, o=out; i < 8; ++i,v+=8,o+=out_stride) { - // no fast case since the first 1D IDCT spread components out - STBI__IDCT_1D(v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7]) - // constants scaled things up by 1<<12, plus we had 1<<2 from first - // loop, plus horizontal and vertical each scale by sqrt(8) so together - // we've got an extra 1<<3, so 1<<17 total we need to remove. - // so we want to round that, which means adding 0.5 * 1<<17, - // aka 65536. Also, we'll end up with -128 to 127 that we want - // to encode as 0..255 by adding 128, so we'll add that before the shift - x0 += 65536 + (128<<17); - x1 += 65536 + (128<<17); - x2 += 65536 + (128<<17); - x3 += 65536 + (128<<17); - // tried computing the shifts into temps, or'ing the temps to see - // if any were out of range, but that was slower - o[0] = stbi__clamp((x0+t3) >> 17); - o[7] = stbi__clamp((x0-t3) >> 17); - o[1] = stbi__clamp((x1+t2) >> 17); - o[6] = stbi__clamp((x1-t2) >> 17); - o[2] = stbi__clamp((x2+t1) >> 17); - o[5] = stbi__clamp((x2-t1) >> 17); - o[3] = stbi__clamp((x3+t0) >> 17); - o[4] = stbi__clamp((x3-t0) >> 17); - } -} - -#ifdef STBI_SSE2 -// sse2 integer IDCT. not the fastest possible implementation but it -// produces bit-identical results to the generic C version so it's -// fully "transparent". -static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) -{ - // This is constructed to match our regular (generic) integer IDCT exactly. - __m128i row0, row1, row2, row3, row4, row5, row6, row7; - __m128i tmp; - - // dot product constant: even elems=x, odd elems=y - #define dct_const(x,y) _mm_setr_epi16((x),(y),(x),(y),(x),(y),(x),(y)) - - // out(0) = c0[even]*x + c0[odd]*y (c0, x, y 16-bit, out 32-bit) - // out(1) = c1[even]*x + c1[odd]*y - #define dct_rot(out0,out1, x,y,c0,c1) \ - __m128i c0##lo = _mm_unpacklo_epi16((x),(y)); \ - __m128i c0##hi = _mm_unpackhi_epi16((x),(y)); \ - __m128i out0##_l = _mm_madd_epi16(c0##lo, c0); \ - __m128i out0##_h = _mm_madd_epi16(c0##hi, c0); \ - __m128i out1##_l = _mm_madd_epi16(c0##lo, c1); \ - __m128i out1##_h = _mm_madd_epi16(c0##hi, c1) - - // out = in << 12 (in 16-bit, out 32-bit) - #define dct_widen(out, in) \ - __m128i out##_l = _mm_srai_epi32(_mm_unpacklo_epi16(_mm_setzero_si128(), (in)), 4); \ - __m128i out##_h = _mm_srai_epi32(_mm_unpackhi_epi16(_mm_setzero_si128(), (in)), 4) - - // wide add - #define dct_wadd(out, a, b) \ - __m128i out##_l = _mm_add_epi32(a##_l, b##_l); \ - __m128i out##_h = _mm_add_epi32(a##_h, b##_h) - - // wide sub - #define dct_wsub(out, a, b) \ - __m128i out##_l = _mm_sub_epi32(a##_l, b##_l); \ - __m128i out##_h = _mm_sub_epi32(a##_h, b##_h) - - // butterfly a/b, add bias, then shift by "s" and pack - #define dct_bfly32o(out0, out1, a,b,bias,s) \ - { \ - __m128i abiased_l = _mm_add_epi32(a##_l, bias); \ - __m128i abiased_h = _mm_add_epi32(a##_h, bias); \ - dct_wadd(sum, abiased, b); \ - dct_wsub(dif, abiased, b); \ - out0 = _mm_packs_epi32(_mm_srai_epi32(sum_l, s), _mm_srai_epi32(sum_h, s)); \ - out1 = _mm_packs_epi32(_mm_srai_epi32(dif_l, s), _mm_srai_epi32(dif_h, s)); \ - } - - // 8-bit interleave step (for transposes) - #define dct_interleave8(a, b) \ - tmp = a; \ - a = _mm_unpacklo_epi8(a, b); \ - b = _mm_unpackhi_epi8(tmp, b) - - // 16-bit interleave step (for transposes) - #define dct_interleave16(a, b) \ - tmp = a; \ - a = _mm_unpacklo_epi16(a, b); \ - b = _mm_unpackhi_epi16(tmp, b) - - #define dct_pass(bias,shift) \ - { \ - /* even part */ \ - dct_rot(t2e,t3e, row2,row6, rot0_0,rot0_1); \ - __m128i sum04 = _mm_add_epi16(row0, row4); \ - __m128i dif04 = _mm_sub_epi16(row0, row4); \ - dct_widen(t0e, sum04); \ - dct_widen(t1e, dif04); \ - dct_wadd(x0, t0e, t3e); \ - dct_wsub(x3, t0e, t3e); \ - dct_wadd(x1, t1e, t2e); \ - dct_wsub(x2, t1e, t2e); \ - /* odd part */ \ - dct_rot(y0o,y2o, row7,row3, rot2_0,rot2_1); \ - dct_rot(y1o,y3o, row5,row1, rot3_0,rot3_1); \ - __m128i sum17 = _mm_add_epi16(row1, row7); \ - __m128i sum35 = _mm_add_epi16(row3, row5); \ - dct_rot(y4o,y5o, sum17,sum35, rot1_0,rot1_1); \ - dct_wadd(x4, y0o, y4o); \ - dct_wadd(x5, y1o, y5o); \ - dct_wadd(x6, y2o, y5o); \ - dct_wadd(x7, y3o, y4o); \ - dct_bfly32o(row0,row7, x0,x7,bias,shift); \ - dct_bfly32o(row1,row6, x1,x6,bias,shift); \ - dct_bfly32o(row2,row5, x2,x5,bias,shift); \ - dct_bfly32o(row3,row4, x3,x4,bias,shift); \ - } - - __m128i rot0_0 = dct_const(stbi__f2f(0.5411961f), stbi__f2f(0.5411961f) + stbi__f2f(-1.847759065f)); - __m128i rot0_1 = dct_const(stbi__f2f(0.5411961f) + stbi__f2f( 0.765366865f), stbi__f2f(0.5411961f)); - __m128i rot1_0 = dct_const(stbi__f2f(1.175875602f) + stbi__f2f(-0.899976223f), stbi__f2f(1.175875602f)); - __m128i rot1_1 = dct_const(stbi__f2f(1.175875602f), stbi__f2f(1.175875602f) + stbi__f2f(-2.562915447f)); - __m128i rot2_0 = dct_const(stbi__f2f(-1.961570560f) + stbi__f2f( 0.298631336f), stbi__f2f(-1.961570560f)); - __m128i rot2_1 = dct_const(stbi__f2f(-1.961570560f), stbi__f2f(-1.961570560f) + stbi__f2f( 3.072711026f)); - __m128i rot3_0 = dct_const(stbi__f2f(-0.390180644f) + stbi__f2f( 2.053119869f), stbi__f2f(-0.390180644f)); - __m128i rot3_1 = dct_const(stbi__f2f(-0.390180644f), stbi__f2f(-0.390180644f) + stbi__f2f( 1.501321110f)); - - // rounding biases in column/row passes, see stbi__idct_block for explanation. - __m128i bias_0 = _mm_set1_epi32(512); - __m128i bias_1 = _mm_set1_epi32(65536 + (128<<17)); - - // load - row0 = _mm_load_si128((const __m128i *) (data + 0*8)); - row1 = _mm_load_si128((const __m128i *) (data + 1*8)); - row2 = _mm_load_si128((const __m128i *) (data + 2*8)); - row3 = _mm_load_si128((const __m128i *) (data + 3*8)); - row4 = _mm_load_si128((const __m128i *) (data + 4*8)); - row5 = _mm_load_si128((const __m128i *) (data + 5*8)); - row6 = _mm_load_si128((const __m128i *) (data + 6*8)); - row7 = _mm_load_si128((const __m128i *) (data + 7*8)); - - // column pass - dct_pass(bias_0, 10); - - { - // 16bit 8x8 transpose pass 1 - dct_interleave16(row0, row4); - dct_interleave16(row1, row5); - dct_interleave16(row2, row6); - dct_interleave16(row3, row7); - - // transpose pass 2 - dct_interleave16(row0, row2); - dct_interleave16(row1, row3); - dct_interleave16(row4, row6); - dct_interleave16(row5, row7); - - // transpose pass 3 - dct_interleave16(row0, row1); - dct_interleave16(row2, row3); - dct_interleave16(row4, row5); - dct_interleave16(row6, row7); - } - - // row pass - dct_pass(bias_1, 17); - - { - // pack - __m128i p0 = _mm_packus_epi16(row0, row1); // a0a1a2a3...a7b0b1b2b3...b7 - __m128i p1 = _mm_packus_epi16(row2, row3); - __m128i p2 = _mm_packus_epi16(row4, row5); - __m128i p3 = _mm_packus_epi16(row6, row7); - - // 8bit 8x8 transpose pass 1 - dct_interleave8(p0, p2); // a0e0a1e1... - dct_interleave8(p1, p3); // c0g0c1g1... - - // transpose pass 2 - dct_interleave8(p0, p1); // a0c0e0g0... - dct_interleave8(p2, p3); // b0d0f0h0... - - // transpose pass 3 - dct_interleave8(p0, p2); // a0b0c0d0... - dct_interleave8(p1, p3); // a4b4c4d4... - - // store - _mm_storel_epi64((__m128i *) out, p0); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p0, 0x4e)); out += out_stride; - _mm_storel_epi64((__m128i *) out, p2); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p2, 0x4e)); out += out_stride; - _mm_storel_epi64((__m128i *) out, p1); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p1, 0x4e)); out += out_stride; - _mm_storel_epi64((__m128i *) out, p3); out += out_stride; - _mm_storel_epi64((__m128i *) out, _mm_shuffle_epi32(p3, 0x4e)); - } - -#undef dct_const -#undef dct_rot -#undef dct_widen -#undef dct_wadd -#undef dct_wsub -#undef dct_bfly32o -#undef dct_interleave8 -#undef dct_interleave16 -#undef dct_pass -} - -#endif // STBI_SSE2 - -#ifdef STBI_NEON - -// NEON integer IDCT. should produce bit-identical -// results to the generic C version. -static void stbi__idct_simd(stbi_uc *out, int out_stride, short data[64]) -{ - int16x8_t row0, row1, row2, row3, row4, row5, row6, row7; - - int16x4_t rot0_0 = vdup_n_s16(stbi__f2f(0.5411961f)); - int16x4_t rot0_1 = vdup_n_s16(stbi__f2f(-1.847759065f)); - int16x4_t rot0_2 = vdup_n_s16(stbi__f2f( 0.765366865f)); - int16x4_t rot1_0 = vdup_n_s16(stbi__f2f( 1.175875602f)); - int16x4_t rot1_1 = vdup_n_s16(stbi__f2f(-0.899976223f)); - int16x4_t rot1_2 = vdup_n_s16(stbi__f2f(-2.562915447f)); - int16x4_t rot2_0 = vdup_n_s16(stbi__f2f(-1.961570560f)); - int16x4_t rot2_1 = vdup_n_s16(stbi__f2f(-0.390180644f)); - int16x4_t rot3_0 = vdup_n_s16(stbi__f2f( 0.298631336f)); - int16x4_t rot3_1 = vdup_n_s16(stbi__f2f( 2.053119869f)); - int16x4_t rot3_2 = vdup_n_s16(stbi__f2f( 3.072711026f)); - int16x4_t rot3_3 = vdup_n_s16(stbi__f2f( 1.501321110f)); - -#define dct_long_mul(out, inq, coeff) \ - int32x4_t out##_l = vmull_s16(vget_low_s16(inq), coeff); \ - int32x4_t out##_h = vmull_s16(vget_high_s16(inq), coeff) - -#define dct_long_mac(out, acc, inq, coeff) \ - int32x4_t out##_l = vmlal_s16(acc##_l, vget_low_s16(inq), coeff); \ - int32x4_t out##_h = vmlal_s16(acc##_h, vget_high_s16(inq), coeff) - -#define dct_widen(out, inq) \ - int32x4_t out##_l = vshll_n_s16(vget_low_s16(inq), 12); \ - int32x4_t out##_h = vshll_n_s16(vget_high_s16(inq), 12) - -// wide add -#define dct_wadd(out, a, b) \ - int32x4_t out##_l = vaddq_s32(a##_l, b##_l); \ - int32x4_t out##_h = vaddq_s32(a##_h, b##_h) - -// wide sub -#define dct_wsub(out, a, b) \ - int32x4_t out##_l = vsubq_s32(a##_l, b##_l); \ - int32x4_t out##_h = vsubq_s32(a##_h, b##_h) - -// butterfly a/b, then shift using "shiftop" by "s" and pack -#define dct_bfly32o(out0,out1, a,b,shiftop,s) \ - { \ - dct_wadd(sum, a, b); \ - dct_wsub(dif, a, b); \ - out0 = vcombine_s16(shiftop(sum_l, s), shiftop(sum_h, s)); \ - out1 = vcombine_s16(shiftop(dif_l, s), shiftop(dif_h, s)); \ - } - -#define dct_pass(shiftop, shift) \ - { \ - /* even part */ \ - int16x8_t sum26 = vaddq_s16(row2, row6); \ - dct_long_mul(p1e, sum26, rot0_0); \ - dct_long_mac(t2e, p1e, row6, rot0_1); \ - dct_long_mac(t3e, p1e, row2, rot0_2); \ - int16x8_t sum04 = vaddq_s16(row0, row4); \ - int16x8_t dif04 = vsubq_s16(row0, row4); \ - dct_widen(t0e, sum04); \ - dct_widen(t1e, dif04); \ - dct_wadd(x0, t0e, t3e); \ - dct_wsub(x3, t0e, t3e); \ - dct_wadd(x1, t1e, t2e); \ - dct_wsub(x2, t1e, t2e); \ - /* odd part */ \ - int16x8_t sum15 = vaddq_s16(row1, row5); \ - int16x8_t sum17 = vaddq_s16(row1, row7); \ - int16x8_t sum35 = vaddq_s16(row3, row5); \ - int16x8_t sum37 = vaddq_s16(row3, row7); \ - int16x8_t sumodd = vaddq_s16(sum17, sum35); \ - dct_long_mul(p5o, sumodd, rot1_0); \ - dct_long_mac(p1o, p5o, sum17, rot1_1); \ - dct_long_mac(p2o, p5o, sum35, rot1_2); \ - dct_long_mul(p3o, sum37, rot2_0); \ - dct_long_mul(p4o, sum15, rot2_1); \ - dct_wadd(sump13o, p1o, p3o); \ - dct_wadd(sump24o, p2o, p4o); \ - dct_wadd(sump23o, p2o, p3o); \ - dct_wadd(sump14o, p1o, p4o); \ - dct_long_mac(x4, sump13o, row7, rot3_0); \ - dct_long_mac(x5, sump24o, row5, rot3_1); \ - dct_long_mac(x6, sump23o, row3, rot3_2); \ - dct_long_mac(x7, sump14o, row1, rot3_3); \ - dct_bfly32o(row0,row7, x0,x7,shiftop,shift); \ - dct_bfly32o(row1,row6, x1,x6,shiftop,shift); \ - dct_bfly32o(row2,row5, x2,x5,shiftop,shift); \ - dct_bfly32o(row3,row4, x3,x4,shiftop,shift); \ - } - - // load - row0 = vld1q_s16(data + 0*8); - row1 = vld1q_s16(data + 1*8); - row2 = vld1q_s16(data + 2*8); - row3 = vld1q_s16(data + 3*8); - row4 = vld1q_s16(data + 4*8); - row5 = vld1q_s16(data + 5*8); - row6 = vld1q_s16(data + 6*8); - row7 = vld1q_s16(data + 7*8); - - // add DC bias - row0 = vaddq_s16(row0, vsetq_lane_s16(1024, vdupq_n_s16(0), 0)); - - // column pass - dct_pass(vrshrn_n_s32, 10); - - // 16bit 8x8 transpose - { -// these three map to a single VTRN.16, VTRN.32, and VSWP, respectively. -// whether compilers actually get this is another story, sadly. -#define dct_trn16(x, y) { int16x8x2_t t = vtrnq_s16(x, y); x = t.val[0]; y = t.val[1]; } -#define dct_trn32(x, y) { int32x4x2_t t = vtrnq_s32(vreinterpretq_s32_s16(x), vreinterpretq_s32_s16(y)); x = vreinterpretq_s16_s32(t.val[0]); y = vreinterpretq_s16_s32(t.val[1]); } -#define dct_trn64(x, y) { int16x8_t x0 = x; int16x8_t y0 = y; x = vcombine_s16(vget_low_s16(x0), vget_low_s16(y0)); y = vcombine_s16(vget_high_s16(x0), vget_high_s16(y0)); } - - // pass 1 - dct_trn16(row0, row1); // a0b0a2b2a4b4a6b6 - dct_trn16(row2, row3); - dct_trn16(row4, row5); - dct_trn16(row6, row7); - - // pass 2 - dct_trn32(row0, row2); // a0b0c0d0a4b4c4d4 - dct_trn32(row1, row3); - dct_trn32(row4, row6); - dct_trn32(row5, row7); - - // pass 3 - dct_trn64(row0, row4); // a0b0c0d0e0f0g0h0 - dct_trn64(row1, row5); - dct_trn64(row2, row6); - dct_trn64(row3, row7); - -#undef dct_trn16 -#undef dct_trn32 -#undef dct_trn64 - } - - // row pass - // vrshrn_n_s32 only supports shifts up to 16, we need - // 17. so do a non-rounding shift of 16 first then follow - // up with a rounding shift by 1. - dct_pass(vshrn_n_s32, 16); - - { - // pack and round - uint8x8_t p0 = vqrshrun_n_s16(row0, 1); - uint8x8_t p1 = vqrshrun_n_s16(row1, 1); - uint8x8_t p2 = vqrshrun_n_s16(row2, 1); - uint8x8_t p3 = vqrshrun_n_s16(row3, 1); - uint8x8_t p4 = vqrshrun_n_s16(row4, 1); - uint8x8_t p5 = vqrshrun_n_s16(row5, 1); - uint8x8_t p6 = vqrshrun_n_s16(row6, 1); - uint8x8_t p7 = vqrshrun_n_s16(row7, 1); - - // again, these can translate into one instruction, but often don't. -#define dct_trn8_8(x, y) { uint8x8x2_t t = vtrn_u8(x, y); x = t.val[0]; y = t.val[1]; } -#define dct_trn8_16(x, y) { uint16x4x2_t t = vtrn_u16(vreinterpret_u16_u8(x), vreinterpret_u16_u8(y)); x = vreinterpret_u8_u16(t.val[0]); y = vreinterpret_u8_u16(t.val[1]); } -#define dct_trn8_32(x, y) { uint32x2x2_t t = vtrn_u32(vreinterpret_u32_u8(x), vreinterpret_u32_u8(y)); x = vreinterpret_u8_u32(t.val[0]); y = vreinterpret_u8_u32(t.val[1]); } - - // sadly can't use interleaved stores here since we only write - // 8 bytes to each scan line! - - // 8x8 8-bit transpose pass 1 - dct_trn8_8(p0, p1); - dct_trn8_8(p2, p3); - dct_trn8_8(p4, p5); - dct_trn8_8(p6, p7); - - // pass 2 - dct_trn8_16(p0, p2); - dct_trn8_16(p1, p3); - dct_trn8_16(p4, p6); - dct_trn8_16(p5, p7); - - // pass 3 - dct_trn8_32(p0, p4); - dct_trn8_32(p1, p5); - dct_trn8_32(p2, p6); - dct_trn8_32(p3, p7); - - // store - vst1_u8(out, p0); out += out_stride; - vst1_u8(out, p1); out += out_stride; - vst1_u8(out, p2); out += out_stride; - vst1_u8(out, p3); out += out_stride; - vst1_u8(out, p4); out += out_stride; - vst1_u8(out, p5); out += out_stride; - vst1_u8(out, p6); out += out_stride; - vst1_u8(out, p7); - -#undef dct_trn8_8 -#undef dct_trn8_16 -#undef dct_trn8_32 - } - -#undef dct_long_mul -#undef dct_long_mac -#undef dct_widen -#undef dct_wadd -#undef dct_wsub -#undef dct_bfly32o -#undef dct_pass -} - -#endif // STBI_NEON - -#define STBI__MARKER_none 0xff -// if there's a pending marker from the entropy stream, return that -// otherwise, fetch from the stream and get a marker. if there's no -// marker, return 0xff, which is never a valid marker value -static stbi_uc stbi__get_marker(stbi__jpeg *j) -{ - stbi_uc x; - if (j->marker != STBI__MARKER_none) { x = j->marker; j->marker = STBI__MARKER_none; return x; } - x = stbi__get8(j->s); - if (x != 0xff) return STBI__MARKER_none; - while (x == 0xff) - x = stbi__get8(j->s); // consume repeated 0xff fill bytes - return x; -} - -// in each scan, we'll have scan_n components, and the order -// of the components is specified by order[] -#define STBI__RESTART(x) ((x) >= 0xd0 && (x) <= 0xd7) - -// after a restart interval, stbi__jpeg_reset the entropy decoder and -// the dc prediction -static void stbi__jpeg_reset(stbi__jpeg *j) -{ - j->code_bits = 0; - j->code_buffer = 0; - j->nomore = 0; - j->img_comp[0].dc_pred = j->img_comp[1].dc_pred = j->img_comp[2].dc_pred = j->img_comp[3].dc_pred = 0; - j->marker = STBI__MARKER_none; - j->todo = j->restart_interval ? j->restart_interval : 0x7fffffff; - j->eob_run = 0; - // no more than 1<<31 MCUs if no restart_interal? that's plenty safe, - // since we don't even allow 1<<30 pixels -} - -static int stbi__parse_entropy_coded_data(stbi__jpeg *z) -{ - stbi__jpeg_reset(z); - if (!z->progressive) { - if (z->scan_n == 1) { - int i,j; - STBI_SIMD_ALIGN(short, data[64]); - int n = z->order[0]; - // non-interleaved data, we just need to process one block at a time, - // in trivial scanline order - // number of blocks to do just depends on how many actual "pixels" this - // component has, independent of interleaved MCU blocking and such - int w = (z->img_comp[n].x+7) >> 3; - int h = (z->img_comp[n].y+7) >> 3; - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) { - int ha = z->img_comp[n].ha; - if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; - z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); - // every data block is an MCU, so countdown the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - // if it's NOT a restart, then just bail, so we get corrupt data - // rather than no data - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } else { // interleaved - int i,j,k,x,y; - STBI_SIMD_ALIGN(short, data[64]); - for (j=0; j < z->img_mcu_y; ++j) { - for (i=0; i < z->img_mcu_x; ++i) { - // scan an interleaved mcu... process scan_n components in order - for (k=0; k < z->scan_n; ++k) { - int n = z->order[k]; - // scan out an mcu's worth of this component; that's just determined - // by the basic H and V specified for the component - for (y=0; y < z->img_comp[n].v; ++y) { - for (x=0; x < z->img_comp[n].h; ++x) { - int x2 = (i*z->img_comp[n].h + x)*8; - int y2 = (j*z->img_comp[n].v + y)*8; - int ha = z->img_comp[n].ha; - if (!stbi__jpeg_decode_block(z, data, z->huff_dc+z->img_comp[n].hd, z->huff_ac+ha, z->fast_ac[ha], n, z->dequant[z->img_comp[n].tq])) return 0; - z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*y2+x2, z->img_comp[n].w2, data); - } - } - } - // after all interleaved components, that's an interleaved MCU, - // so now count down the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } - } else { - if (z->scan_n == 1) { - int i,j; - int n = z->order[0]; - // non-interleaved data, we just need to process one block at a time, - // in trivial scanline order - // number of blocks to do just depends on how many actual "pixels" this - // component has, independent of interleaved MCU blocking and such - int w = (z->img_comp[n].x+7) >> 3; - int h = (z->img_comp[n].y+7) >> 3; - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) { - short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); - if (z->spec_start == 0) { - if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) - return 0; - } else { - int ha = z->img_comp[n].ha; - if (!stbi__jpeg_decode_block_prog_ac(z, data, &z->huff_ac[ha], z->fast_ac[ha])) - return 0; - } - // every data block is an MCU, so countdown the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } else { // interleaved - int i,j,k,x,y; - for (j=0; j < z->img_mcu_y; ++j) { - for (i=0; i < z->img_mcu_x; ++i) { - // scan an interleaved mcu... process scan_n components in order - for (k=0; k < z->scan_n; ++k) { - int n = z->order[k]; - // scan out an mcu's worth of this component; that's just determined - // by the basic H and V specified for the component - for (y=0; y < z->img_comp[n].v; ++y) { - for (x=0; x < z->img_comp[n].h; ++x) { - int x2 = (i*z->img_comp[n].h + x); - int y2 = (j*z->img_comp[n].v + y); - short *data = z->img_comp[n].coeff + 64 * (x2 + y2 * z->img_comp[n].coeff_w); - if (!stbi__jpeg_decode_block_prog_dc(z, data, &z->huff_dc[z->img_comp[n].hd], n)) - return 0; - } - } - } - // after all interleaved components, that's an interleaved MCU, - // so now count down the restart interval - if (--z->todo <= 0) { - if (z->code_bits < 24) stbi__grow_buffer_unsafe(z); - if (!STBI__RESTART(z->marker)) return 1; - stbi__jpeg_reset(z); - } - } - } - return 1; - } - } -} - -static void stbi__jpeg_dequantize(short *data, stbi__uint16 *dequant) -{ - int i; - for (i=0; i < 64; ++i) - data[i] *= dequant[i]; -} - -static void stbi__jpeg_finish(stbi__jpeg *z) -{ - if (z->progressive) { - // dequantize and idct the data - int i,j,n; - for (n=0; n < z->s->img_n; ++n) { - int w = (z->img_comp[n].x+7) >> 3; - int h = (z->img_comp[n].y+7) >> 3; - for (j=0; j < h; ++j) { - for (i=0; i < w; ++i) { - short *data = z->img_comp[n].coeff + 64 * (i + j * z->img_comp[n].coeff_w); - stbi__jpeg_dequantize(data, z->dequant[z->img_comp[n].tq]); - z->idct_block_kernel(z->img_comp[n].data+z->img_comp[n].w2*j*8+i*8, z->img_comp[n].w2, data); - } - } - } - } -} - -static int stbi__process_marker(stbi__jpeg *z, int m) -{ - int L; - switch (m) { - case STBI__MARKER_none: // no marker found - return stbi__err("expected marker","Corrupt JPEG"); - - case 0xDD: // DRI - specify restart interval - if (stbi__get16be(z->s) != 4) return stbi__err("bad DRI len","Corrupt JPEG"); - z->restart_interval = stbi__get16be(z->s); - return 1; - - case 0xDB: // DQT - define quantization table - L = stbi__get16be(z->s)-2; - while (L > 0) { - int q = stbi__get8(z->s); - int p = q >> 4, sixteen = (p != 0); - int t = q & 15,i; - if (p != 0 && p != 1) return stbi__err("bad DQT type","Corrupt JPEG"); - if (t > 3) return stbi__err("bad DQT table","Corrupt JPEG"); - - for (i=0; i < 64; ++i) - z->dequant[t][stbi__jpeg_dezigzag[i]] = (stbi__uint16)(sixteen ? stbi__get16be(z->s) : stbi__get8(z->s)); - L -= (sixteen ? 129 : 65); - } - return L==0; - - case 0xC4: // DHT - define huffman table - L = stbi__get16be(z->s)-2; - while (L > 0) { - stbi_uc *v; - int sizes[16],i,n=0; - int q = stbi__get8(z->s); - int tc = q >> 4; - int th = q & 15; - if (tc > 1 || th > 3) return stbi__err("bad DHT header","Corrupt JPEG"); - for (i=0; i < 16; ++i) { - sizes[i] = stbi__get8(z->s); - n += sizes[i]; - } - L -= 17; - if (tc == 0) { - if (!stbi__build_huffman(z->huff_dc+th, sizes)) return 0; - v = z->huff_dc[th].values; - } else { - if (!stbi__build_huffman(z->huff_ac+th, sizes)) return 0; - v = z->huff_ac[th].values; - } - for (i=0; i < n; ++i) - v[i] = stbi__get8(z->s); - if (tc != 0) - stbi__build_fast_ac(z->fast_ac[th], z->huff_ac + th); - L -= n; - } - return L==0; - } - - // check for comment block or APP blocks - if ((m >= 0xE0 && m <= 0xEF) || m == 0xFE) { - L = stbi__get16be(z->s); - if (L < 2) { - if (m == 0xFE) - return stbi__err("bad COM len","Corrupt JPEG"); - else - return stbi__err("bad APP len","Corrupt JPEG"); - } - L -= 2; - - if (m == 0xE0 && L >= 5) { // JFIF APP0 segment - static const unsigned char tag[5] = {'J','F','I','F','\0'}; - int ok = 1; - int i; - for (i=0; i < 5; ++i) - if (stbi__get8(z->s) != tag[i]) - ok = 0; - L -= 5; - if (ok) - z->jfif = 1; - } else if (m == 0xEE && L >= 12) { // Adobe APP14 segment - static const unsigned char tag[6] = {'A','d','o','b','e','\0'}; - int ok = 1; - int i; - for (i=0; i < 6; ++i) - if (stbi__get8(z->s) != tag[i]) - ok = 0; - L -= 6; - if (ok) { - stbi__get8(z->s); // version - stbi__get16be(z->s); // flags0 - stbi__get16be(z->s); // flags1 - z->app14_color_transform = stbi__get8(z->s); // color transform - L -= 6; - } - } - - stbi__skip(z->s, L); - return 1; - } - - return stbi__err("unknown marker","Corrupt JPEG"); -} - -// after we see SOS -static int stbi__process_scan_header(stbi__jpeg *z) -{ - int i; - int Ls = stbi__get16be(z->s); - z->scan_n = stbi__get8(z->s); - if (z->scan_n < 1 || z->scan_n > 4 || z->scan_n > (int) z->s->img_n) return stbi__err("bad SOS component count","Corrupt JPEG"); - if (Ls != 6+2*z->scan_n) return stbi__err("bad SOS len","Corrupt JPEG"); - for (i=0; i < z->scan_n; ++i) { - int id = stbi__get8(z->s), which; - int q = stbi__get8(z->s); - for (which = 0; which < z->s->img_n; ++which) - if (z->img_comp[which].id == id) - break; - if (which == z->s->img_n) return 0; // no match - z->img_comp[which].hd = q >> 4; if (z->img_comp[which].hd > 3) return stbi__err("bad DC huff","Corrupt JPEG"); - z->img_comp[which].ha = q & 15; if (z->img_comp[which].ha > 3) return stbi__err("bad AC huff","Corrupt JPEG"); - z->order[i] = which; - } - - { - int aa; - z->spec_start = stbi__get8(z->s); - z->spec_end = stbi__get8(z->s); // should be 63, but might be 0 - aa = stbi__get8(z->s); - z->succ_high = (aa >> 4); - z->succ_low = (aa & 15); - if (z->progressive) { - if (z->spec_start > 63 || z->spec_end > 63 || z->spec_start > z->spec_end || z->succ_high > 13 || z->succ_low > 13) - return stbi__err("bad SOS", "Corrupt JPEG"); - } else { - if (z->spec_start != 0) return stbi__err("bad SOS","Corrupt JPEG"); - if (z->succ_high != 0 || z->succ_low != 0) return stbi__err("bad SOS","Corrupt JPEG"); - z->spec_end = 63; - } - } - - return 1; -} - -static int stbi__free_jpeg_components(stbi__jpeg *z, int ncomp, int why) -{ - int i; - for (i=0; i < ncomp; ++i) { - if (z->img_comp[i].raw_data) { - STBI_FREE(z->img_comp[i].raw_data); - z->img_comp[i].raw_data = NULL; - z->img_comp[i].data = NULL; - } - if (z->img_comp[i].raw_coeff) { - STBI_FREE(z->img_comp[i].raw_coeff); - z->img_comp[i].raw_coeff = 0; - z->img_comp[i].coeff = 0; - } - if (z->img_comp[i].linebuf) { - STBI_FREE(z->img_comp[i].linebuf); - z->img_comp[i].linebuf = NULL; - } - } - return why; -} - -static int stbi__process_frame_header(stbi__jpeg *z, int scan) -{ - stbi__context *s = z->s; - int Lf,p,i,q, h_max=1,v_max=1,c; - Lf = stbi__get16be(s); if (Lf < 11) return stbi__err("bad SOF len","Corrupt JPEG"); // JPEG - p = stbi__get8(s); if (p != 8) return stbi__err("only 8-bit","JPEG format not supported: 8-bit only"); // JPEG baseline - s->img_y = stbi__get16be(s); if (s->img_y == 0) return stbi__err("no header height", "JPEG format not supported: delayed height"); // Legal, but we don't handle it--but neither does IJG - s->img_x = stbi__get16be(s); if (s->img_x == 0) return stbi__err("0 width","Corrupt JPEG"); // JPEG requires - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - c = stbi__get8(s); - if (c != 3 && c != 1 && c != 4) return stbi__err("bad component count","Corrupt JPEG"); - s->img_n = c; - for (i=0; i < c; ++i) { - z->img_comp[i].data = NULL; - z->img_comp[i].linebuf = NULL; - } - - if (Lf != 8+3*s->img_n) return stbi__err("bad SOF len","Corrupt JPEG"); - - z->rgb = 0; - for (i=0; i < s->img_n; ++i) { - static const unsigned char rgb[3] = { 'R', 'G', 'B' }; - z->img_comp[i].id = stbi__get8(s); - if (s->img_n == 3 && z->img_comp[i].id == rgb[i]) - ++z->rgb; - q = stbi__get8(s); - z->img_comp[i].h = (q >> 4); if (!z->img_comp[i].h || z->img_comp[i].h > 4) return stbi__err("bad H","Corrupt JPEG"); - z->img_comp[i].v = q & 15; if (!z->img_comp[i].v || z->img_comp[i].v > 4) return stbi__err("bad V","Corrupt JPEG"); - z->img_comp[i].tq = stbi__get8(s); if (z->img_comp[i].tq > 3) return stbi__err("bad TQ","Corrupt JPEG"); - } - - if (scan != STBI__SCAN_load) return 1; - - if (!stbi__mad3sizes_valid(s->img_x, s->img_y, s->img_n, 0)) return stbi__err("too large", "Image too large to decode"); - - for (i=0; i < s->img_n; ++i) { - if (z->img_comp[i].h > h_max) h_max = z->img_comp[i].h; - if (z->img_comp[i].v > v_max) v_max = z->img_comp[i].v; - } - - // compute interleaved mcu info - z->img_h_max = h_max; - z->img_v_max = v_max; - z->img_mcu_w = h_max * 8; - z->img_mcu_h = v_max * 8; - // these sizes can't be more than 17 bits - z->img_mcu_x = (s->img_x + z->img_mcu_w-1) / z->img_mcu_w; - z->img_mcu_y = (s->img_y + z->img_mcu_h-1) / z->img_mcu_h; - - for (i=0; i < s->img_n; ++i) { - // number of effective pixels (e.g. for non-interleaved MCU) - z->img_comp[i].x = (s->img_x * z->img_comp[i].h + h_max-1) / h_max; - z->img_comp[i].y = (s->img_y * z->img_comp[i].v + v_max-1) / v_max; - // to simplify generation, we'll allocate enough memory to decode - // the bogus oversized data from using interleaved MCUs and their - // big blocks (e.g. a 16x16 iMCU on an image of width 33); we won't - // discard the extra data until colorspace conversion - // - // img_mcu_x, img_mcu_y: <=17 bits; comp[i].h and .v are <=4 (checked earlier) - // so these muls can't overflow with 32-bit ints (which we require) - z->img_comp[i].w2 = z->img_mcu_x * z->img_comp[i].h * 8; - z->img_comp[i].h2 = z->img_mcu_y * z->img_comp[i].v * 8; - z->img_comp[i].coeff = 0; - z->img_comp[i].raw_coeff = 0; - z->img_comp[i].linebuf = NULL; - z->img_comp[i].raw_data = stbi__malloc_mad2(z->img_comp[i].w2, z->img_comp[i].h2, 15); - if (z->img_comp[i].raw_data == NULL) - return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); - // align blocks for idct using mmx/sse - z->img_comp[i].data = (stbi_uc*) (((size_t) z->img_comp[i].raw_data + 15) & ~15); - if (z->progressive) { - // w2, h2 are multiples of 8 (see above) - z->img_comp[i].coeff_w = z->img_comp[i].w2 / 8; - z->img_comp[i].coeff_h = z->img_comp[i].h2 / 8; - z->img_comp[i].raw_coeff = stbi__malloc_mad3(z->img_comp[i].w2, z->img_comp[i].h2, sizeof(short), 15); - if (z->img_comp[i].raw_coeff == NULL) - return stbi__free_jpeg_components(z, i+1, stbi__err("outofmem", "Out of memory")); - z->img_comp[i].coeff = (short*) (((size_t) z->img_comp[i].raw_coeff + 15) & ~15); - } - } - - return 1; -} - -// use comparisons since in some cases we handle more than one case (e.g. SOF) -#define stbi__DNL(x) ((x) == 0xdc) -#define stbi__SOI(x) ((x) == 0xd8) -#define stbi__EOI(x) ((x) == 0xd9) -#define stbi__SOF(x) ((x) == 0xc0 || (x) == 0xc1 || (x) == 0xc2) -#define stbi__SOS(x) ((x) == 0xda) - -#define stbi__SOF_progressive(x) ((x) == 0xc2) - -static int stbi__decode_jpeg_header(stbi__jpeg *z, int scan) -{ - int m; - z->jfif = 0; - z->app14_color_transform = -1; // valid values are 0,1,2 - z->marker = STBI__MARKER_none; // initialize cached marker to empty - m = stbi__get_marker(z); - if (!stbi__SOI(m)) return stbi__err("no SOI","Corrupt JPEG"); - if (scan == STBI__SCAN_type) return 1; - m = stbi__get_marker(z); - while (!stbi__SOF(m)) { - if (!stbi__process_marker(z,m)) return 0; - m = stbi__get_marker(z); - while (m == STBI__MARKER_none) { - // some files have extra padding after their blocks, so ok, we'll scan - if (stbi__at_eof(z->s)) return stbi__err("no SOF", "Corrupt JPEG"); - m = stbi__get_marker(z); - } - } - z->progressive = stbi__SOF_progressive(m); - if (!stbi__process_frame_header(z, scan)) return 0; - return 1; -} - -// decode image to YCbCr format -static int stbi__decode_jpeg_image(stbi__jpeg *j) -{ - int m; - for (m = 0; m < 4; m++) { - j->img_comp[m].raw_data = NULL; - j->img_comp[m].raw_coeff = NULL; - } - j->restart_interval = 0; - if (!stbi__decode_jpeg_header(j, STBI__SCAN_load)) return 0; - m = stbi__get_marker(j); - while (!stbi__EOI(m)) { - if (stbi__SOS(m)) { - if (!stbi__process_scan_header(j)) return 0; - if (!stbi__parse_entropy_coded_data(j)) return 0; - if (j->marker == STBI__MARKER_none ) { - // handle 0s at the end of image data from IP Kamera 9060 - while (!stbi__at_eof(j->s)) { - int x = stbi__get8(j->s); - if (x == 255) { - j->marker = stbi__get8(j->s); - break; - } - } - // if we reach eof without hitting a marker, stbi__get_marker() below will fail and we'll eventually return 0 - } - } else if (stbi__DNL(m)) { - int Ld = stbi__get16be(j->s); - stbi__uint32 NL = stbi__get16be(j->s); - if (Ld != 4) return stbi__err("bad DNL len", "Corrupt JPEG"); - if (NL != j->s->img_y) return stbi__err("bad DNL height", "Corrupt JPEG"); - } else { - if (!stbi__process_marker(j, m)) return 0; - } - m = stbi__get_marker(j); - } - if (j->progressive) - stbi__jpeg_finish(j); - return 1; -} - -// static jfif-centered resampling (across block boundaries) - -typedef stbi_uc *(*resample_row_func)(stbi_uc *out, stbi_uc *in0, stbi_uc *in1, - int w, int hs); - -#define stbi__div4(x) ((stbi_uc) ((x) >> 2)) - -static stbi_uc *resample_row_1(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - STBI_NOTUSED(out); - STBI_NOTUSED(in_far); - STBI_NOTUSED(w); - STBI_NOTUSED(hs); - return in_near; -} - -static stbi_uc* stbi__resample_row_v_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate two samples vertically for every one in input - int i; - STBI_NOTUSED(hs); - for (i=0; i < w; ++i) - out[i] = stbi__div4(3*in_near[i] + in_far[i] + 2); - return out; -} - -static stbi_uc* stbi__resample_row_h_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate two samples horizontally for every one in input - int i; - stbi_uc *input = in_near; - - if (w == 1) { - // if only one sample, can't do any interpolation - out[0] = out[1] = input[0]; - return out; - } - - out[0] = input[0]; - out[1] = stbi__div4(input[0]*3 + input[1] + 2); - for (i=1; i < w-1; ++i) { - int n = 3*input[i]+2; - out[i*2+0] = stbi__div4(n+input[i-1]); - out[i*2+1] = stbi__div4(n+input[i+1]); - } - out[i*2+0] = stbi__div4(input[w-2]*3 + input[w-1] + 2); - out[i*2+1] = input[w-1]; - - STBI_NOTUSED(in_far); - STBI_NOTUSED(hs); - - return out; -} - -#define stbi__div16(x) ((stbi_uc) ((x) >> 4)) - -static stbi_uc *stbi__resample_row_hv_2(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate 2x2 samples for every one in input - int i,t0,t1; - if (w == 1) { - out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); - return out; - } - - t1 = 3*in_near[0] + in_far[0]; - out[0] = stbi__div4(t1+2); - for (i=1; i < w; ++i) { - t0 = t1; - t1 = 3*in_near[i]+in_far[i]; - out[i*2-1] = stbi__div16(3*t0 + t1 + 8); - out[i*2 ] = stbi__div16(3*t1 + t0 + 8); - } - out[w*2-1] = stbi__div4(t1+2); - - STBI_NOTUSED(hs); - - return out; -} - -#if defined(STBI_SSE2) || defined(STBI_NEON) -static stbi_uc *stbi__resample_row_hv_2_simd(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // need to generate 2x2 samples for every one in input - int i=0,t0,t1; - - if (w == 1) { - out[0] = out[1] = stbi__div4(3*in_near[0] + in_far[0] + 2); - return out; - } - - t1 = 3*in_near[0] + in_far[0]; - // process groups of 8 pixels for as long as we can. - // note we can't handle the last pixel in a row in this loop - // because we need to handle the filter boundary conditions. - for (; i < ((w-1) & ~7); i += 8) { -#if defined(STBI_SSE2) - // load and perform the vertical filtering pass - // this uses 3*x + y = 4*x + (y - x) - __m128i zero = _mm_setzero_si128(); - __m128i farb = _mm_loadl_epi64((__m128i *) (in_far + i)); - __m128i nearb = _mm_loadl_epi64((__m128i *) (in_near + i)); - __m128i farw = _mm_unpacklo_epi8(farb, zero); - __m128i nearw = _mm_unpacklo_epi8(nearb, zero); - __m128i diff = _mm_sub_epi16(farw, nearw); - __m128i nears = _mm_slli_epi16(nearw, 2); - __m128i curr = _mm_add_epi16(nears, diff); // current row - - // horizontal filter works the same based on shifted vers of current - // row. "prev" is current row shifted right by 1 pixel; we need to - // insert the previous pixel value (from t1). - // "next" is current row shifted left by 1 pixel, with first pixel - // of next block of 8 pixels added in. - __m128i prv0 = _mm_slli_si128(curr, 2); - __m128i nxt0 = _mm_srli_si128(curr, 2); - __m128i prev = _mm_insert_epi16(prv0, t1, 0); - __m128i next = _mm_insert_epi16(nxt0, 3*in_near[i+8] + in_far[i+8], 7); - - // horizontal filter, polyphase implementation since it's convenient: - // even pixels = 3*cur + prev = cur*4 + (prev - cur) - // odd pixels = 3*cur + next = cur*4 + (next - cur) - // note the shared term. - __m128i bias = _mm_set1_epi16(8); - __m128i curs = _mm_slli_epi16(curr, 2); - __m128i prvd = _mm_sub_epi16(prev, curr); - __m128i nxtd = _mm_sub_epi16(next, curr); - __m128i curb = _mm_add_epi16(curs, bias); - __m128i even = _mm_add_epi16(prvd, curb); - __m128i odd = _mm_add_epi16(nxtd, curb); - - // interleave even and odd pixels, then undo scaling. - __m128i int0 = _mm_unpacklo_epi16(even, odd); - __m128i int1 = _mm_unpackhi_epi16(even, odd); - __m128i de0 = _mm_srli_epi16(int0, 4); - __m128i de1 = _mm_srli_epi16(int1, 4); - - // pack and write output - __m128i outv = _mm_packus_epi16(de0, de1); - _mm_storeu_si128((__m128i *) (out + i*2), outv); -#elif defined(STBI_NEON) - // load and perform the vertical filtering pass - // this uses 3*x + y = 4*x + (y - x) - uint8x8_t farb = vld1_u8(in_far + i); - uint8x8_t nearb = vld1_u8(in_near + i); - int16x8_t diff = vreinterpretq_s16_u16(vsubl_u8(farb, nearb)); - int16x8_t nears = vreinterpretq_s16_u16(vshll_n_u8(nearb, 2)); - int16x8_t curr = vaddq_s16(nears, diff); // current row - - // horizontal filter works the same based on shifted vers of current - // row. "prev" is current row shifted right by 1 pixel; we need to - // insert the previous pixel value (from t1). - // "next" is current row shifted left by 1 pixel, with first pixel - // of next block of 8 pixels added in. - int16x8_t prv0 = vextq_s16(curr, curr, 7); - int16x8_t nxt0 = vextq_s16(curr, curr, 1); - int16x8_t prev = vsetq_lane_s16(t1, prv0, 0); - int16x8_t next = vsetq_lane_s16(3*in_near[i+8] + in_far[i+8], nxt0, 7); - - // horizontal filter, polyphase implementation since it's convenient: - // even pixels = 3*cur + prev = cur*4 + (prev - cur) - // odd pixels = 3*cur + next = cur*4 + (next - cur) - // note the shared term. - int16x8_t curs = vshlq_n_s16(curr, 2); - int16x8_t prvd = vsubq_s16(prev, curr); - int16x8_t nxtd = vsubq_s16(next, curr); - int16x8_t even = vaddq_s16(curs, prvd); - int16x8_t odd = vaddq_s16(curs, nxtd); - - // undo scaling and round, then store with even/odd phases interleaved - uint8x8x2_t o; - o.val[0] = vqrshrun_n_s16(even, 4); - o.val[1] = vqrshrun_n_s16(odd, 4); - vst2_u8(out + i*2, o); -#endif - - // "previous" value for next iter - t1 = 3*in_near[i+7] + in_far[i+7]; - } - - t0 = t1; - t1 = 3*in_near[i] + in_far[i]; - out[i*2] = stbi__div16(3*t1 + t0 + 8); - - for (++i; i < w; ++i) { - t0 = t1; - t1 = 3*in_near[i]+in_far[i]; - out[i*2-1] = stbi__div16(3*t0 + t1 + 8); - out[i*2 ] = stbi__div16(3*t1 + t0 + 8); - } - out[w*2-1] = stbi__div4(t1+2); - - STBI_NOTUSED(hs); - - return out; -} -#endif - -static stbi_uc *stbi__resample_row_generic(stbi_uc *out, stbi_uc *in_near, stbi_uc *in_far, int w, int hs) -{ - // resample with nearest-neighbor - int i,j; - STBI_NOTUSED(in_far); - for (i=0; i < w; ++i) - for (j=0; j < hs; ++j) - out[i*hs+j] = in_near[i]; - return out; -} - -// this is a reduced-precision calculation of YCbCr-to-RGB introduced -// to make sure the code produces the same results in both SIMD and scalar -#define stbi__float2fixed(x) (((int) ((x) * 4096.0f + 0.5f)) << 8) -static void stbi__YCbCr_to_RGB_row(stbi_uc *out, const stbi_uc *y, const stbi_uc *pcb, const stbi_uc *pcr, int count, int step) -{ - int i; - for (i=0; i < count; ++i) { - int y_fixed = (y[i] << 20) + (1<<19); // rounding - int r,g,b; - int cr = pcr[i] - 128; - int cb = pcb[i] - 128; - r = y_fixed + cr* stbi__float2fixed(1.40200f); - g = y_fixed + (cr*-stbi__float2fixed(0.71414f)) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); - b = y_fixed + cb* stbi__float2fixed(1.77200f); - r >>= 20; - g >>= 20; - b >>= 20; - if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } - if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } - if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } - out[0] = (stbi_uc)r; - out[1] = (stbi_uc)g; - out[2] = (stbi_uc)b; - out[3] = 255; - out += step; - } -} - -#if defined(STBI_SSE2) || defined(STBI_NEON) -static void stbi__YCbCr_to_RGB_simd(stbi_uc *out, stbi_uc const *y, stbi_uc const *pcb, stbi_uc const *pcr, int count, int step) -{ - int i = 0; - -#ifdef STBI_SSE2 - // step == 3 is pretty ugly on the final interleave, and i'm not convinced - // it's useful in practice (you wouldn't use it for textures, for example). - // so just accelerate step == 4 case. - if (step == 4) { - // this is a fairly straightforward implementation and not super-optimized. - __m128i signflip = _mm_set1_epi8(-0x80); - __m128i cr_const0 = _mm_set1_epi16( (short) ( 1.40200f*4096.0f+0.5f)); - __m128i cr_const1 = _mm_set1_epi16( - (short) ( 0.71414f*4096.0f+0.5f)); - __m128i cb_const0 = _mm_set1_epi16( - (short) ( 0.34414f*4096.0f+0.5f)); - __m128i cb_const1 = _mm_set1_epi16( (short) ( 1.77200f*4096.0f+0.5f)); - __m128i y_bias = _mm_set1_epi8((char) (unsigned char) 128); - __m128i xw = _mm_set1_epi16(255); // alpha channel - - for (; i+7 < count; i += 8) { - // load - __m128i y_bytes = _mm_loadl_epi64((__m128i *) (y+i)); - __m128i cr_bytes = _mm_loadl_epi64((__m128i *) (pcr+i)); - __m128i cb_bytes = _mm_loadl_epi64((__m128i *) (pcb+i)); - __m128i cr_biased = _mm_xor_si128(cr_bytes, signflip); // -128 - __m128i cb_biased = _mm_xor_si128(cb_bytes, signflip); // -128 - - // unpack to short (and left-shift cr, cb by 8) - __m128i yw = _mm_unpacklo_epi8(y_bias, y_bytes); - __m128i crw = _mm_unpacklo_epi8(_mm_setzero_si128(), cr_biased); - __m128i cbw = _mm_unpacklo_epi8(_mm_setzero_si128(), cb_biased); - - // color transform - __m128i yws = _mm_srli_epi16(yw, 4); - __m128i cr0 = _mm_mulhi_epi16(cr_const0, crw); - __m128i cb0 = _mm_mulhi_epi16(cb_const0, cbw); - __m128i cb1 = _mm_mulhi_epi16(cbw, cb_const1); - __m128i cr1 = _mm_mulhi_epi16(crw, cr_const1); - __m128i rws = _mm_add_epi16(cr0, yws); - __m128i gwt = _mm_add_epi16(cb0, yws); - __m128i bws = _mm_add_epi16(yws, cb1); - __m128i gws = _mm_add_epi16(gwt, cr1); - - // descale - __m128i rw = _mm_srai_epi16(rws, 4); - __m128i bw = _mm_srai_epi16(bws, 4); - __m128i gw = _mm_srai_epi16(gws, 4); - - // back to byte, set up for transpose - __m128i brb = _mm_packus_epi16(rw, bw); - __m128i gxb = _mm_packus_epi16(gw, xw); - - // transpose to interleave channels - __m128i t0 = _mm_unpacklo_epi8(brb, gxb); - __m128i t1 = _mm_unpackhi_epi8(brb, gxb); - __m128i o0 = _mm_unpacklo_epi16(t0, t1); - __m128i o1 = _mm_unpackhi_epi16(t0, t1); - - // store - _mm_storeu_si128((__m128i *) (out + 0), o0); - _mm_storeu_si128((__m128i *) (out + 16), o1); - out += 32; - } - } -#endif - -#ifdef STBI_NEON - // in this version, step=3 support would be easy to add. but is there demand? - if (step == 4) { - // this is a fairly straightforward implementation and not super-optimized. - uint8x8_t signflip = vdup_n_u8(0x80); - int16x8_t cr_const0 = vdupq_n_s16( (short) ( 1.40200f*4096.0f+0.5f)); - int16x8_t cr_const1 = vdupq_n_s16( - (short) ( 0.71414f*4096.0f+0.5f)); - int16x8_t cb_const0 = vdupq_n_s16( - (short) ( 0.34414f*4096.0f+0.5f)); - int16x8_t cb_const1 = vdupq_n_s16( (short) ( 1.77200f*4096.0f+0.5f)); - - for (; i+7 < count; i += 8) { - // load - uint8x8_t y_bytes = vld1_u8(y + i); - uint8x8_t cr_bytes = vld1_u8(pcr + i); - uint8x8_t cb_bytes = vld1_u8(pcb + i); - int8x8_t cr_biased = vreinterpret_s8_u8(vsub_u8(cr_bytes, signflip)); - int8x8_t cb_biased = vreinterpret_s8_u8(vsub_u8(cb_bytes, signflip)); - - // expand to s16 - int16x8_t yws = vreinterpretq_s16_u16(vshll_n_u8(y_bytes, 4)); - int16x8_t crw = vshll_n_s8(cr_biased, 7); - int16x8_t cbw = vshll_n_s8(cb_biased, 7); - - // color transform - int16x8_t cr0 = vqdmulhq_s16(crw, cr_const0); - int16x8_t cb0 = vqdmulhq_s16(cbw, cb_const0); - int16x8_t cr1 = vqdmulhq_s16(crw, cr_const1); - int16x8_t cb1 = vqdmulhq_s16(cbw, cb_const1); - int16x8_t rws = vaddq_s16(yws, cr0); - int16x8_t gws = vaddq_s16(vaddq_s16(yws, cb0), cr1); - int16x8_t bws = vaddq_s16(yws, cb1); - - // undo scaling, round, convert to byte - uint8x8x4_t o; - o.val[0] = vqrshrun_n_s16(rws, 4); - o.val[1] = vqrshrun_n_s16(gws, 4); - o.val[2] = vqrshrun_n_s16(bws, 4); - o.val[3] = vdup_n_u8(255); - - // store, interleaving r/g/b/a - vst4_u8(out, o); - out += 8*4; - } - } -#endif - - for (; i < count; ++i) { - int y_fixed = (y[i] << 20) + (1<<19); // rounding - int r,g,b; - int cr = pcr[i] - 128; - int cb = pcb[i] - 128; - r = y_fixed + cr* stbi__float2fixed(1.40200f); - g = y_fixed + cr*-stbi__float2fixed(0.71414f) + ((cb*-stbi__float2fixed(0.34414f)) & 0xffff0000); - b = y_fixed + cb* stbi__float2fixed(1.77200f); - r >>= 20; - g >>= 20; - b >>= 20; - if ((unsigned) r > 255) { if (r < 0) r = 0; else r = 255; } - if ((unsigned) g > 255) { if (g < 0) g = 0; else g = 255; } - if ((unsigned) b > 255) { if (b < 0) b = 0; else b = 255; } - out[0] = (stbi_uc)r; - out[1] = (stbi_uc)g; - out[2] = (stbi_uc)b; - out[3] = 255; - out += step; - } -} -#endif - -// set up the kernels -static void stbi__setup_jpeg(stbi__jpeg *j) -{ - j->idct_block_kernel = stbi__idct_block; - j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_row; - j->resample_row_hv_2_kernel = stbi__resample_row_hv_2; - -#ifdef STBI_SSE2 - if (stbi__sse2_available()) { - j->idct_block_kernel = stbi__idct_simd; - j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; - j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; - } -#endif - -#ifdef STBI_NEON - j->idct_block_kernel = stbi__idct_simd; - j->YCbCr_to_RGB_kernel = stbi__YCbCr_to_RGB_simd; - j->resample_row_hv_2_kernel = stbi__resample_row_hv_2_simd; -#endif -} - -// clean up the temporary component buffers -static void stbi__cleanup_jpeg(stbi__jpeg *j) -{ - stbi__free_jpeg_components(j, j->s->img_n, 0); -} - -typedef struct -{ - resample_row_func resample; - stbi_uc *line0,*line1; - int hs,vs; // expansion factor in each axis - int w_lores; // horizontal pixels pre-expansion - int ystep; // how far through vertical expansion we are - int ypos; // which pre-expansion row we're on -} stbi__resample; - -// fast 0..255 * 0..255 => 0..255 rounded multiplication -static stbi_uc stbi__blinn_8x8(stbi_uc x, stbi_uc y) -{ - unsigned int t = x*y + 128; - return (stbi_uc) ((t + (t >>8)) >> 8); -} - -static stbi_uc *load_jpeg_image(stbi__jpeg *z, int *out_x, int *out_y, int *comp, int req_comp) -{ - int n, decode_n, is_rgb; - z->s->img_n = 0; // make stbi__cleanup_jpeg safe - - // validate req_comp - if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); - - // load a jpeg image from whichever source, but leave in YCbCr format - if (!stbi__decode_jpeg_image(z)) { stbi__cleanup_jpeg(z); return NULL; } - - // determine actual number of components to generate - n = req_comp ? req_comp : z->s->img_n >= 3 ? 3 : 1; - - is_rgb = z->s->img_n == 3 && (z->rgb == 3 || (z->app14_color_transform == 0 && !z->jfif)); - - if (z->s->img_n == 3 && n < 3 && !is_rgb) - decode_n = 1; - else - decode_n = z->s->img_n; - - // resample and color-convert - { - int k; - unsigned int i,j; - stbi_uc *output; - stbi_uc *coutput[4] = { NULL, NULL, NULL, NULL }; - - stbi__resample res_comp[4]; - - for (k=0; k < decode_n; ++k) { - stbi__resample *r = &res_comp[k]; - - // allocate line buffer big enough for upsampling off the edges - // with upsample factor of 4 - z->img_comp[k].linebuf = (stbi_uc *) stbi__malloc(z->s->img_x + 3); - if (!z->img_comp[k].linebuf) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } - - r->hs = z->img_h_max / z->img_comp[k].h; - r->vs = z->img_v_max / z->img_comp[k].v; - r->ystep = r->vs >> 1; - r->w_lores = (z->s->img_x + r->hs-1) / r->hs; - r->ypos = 0; - r->line0 = r->line1 = z->img_comp[k].data; - - if (r->hs == 1 && r->vs == 1) r->resample = resample_row_1; - else if (r->hs == 1 && r->vs == 2) r->resample = stbi__resample_row_v_2; - else if (r->hs == 2 && r->vs == 1) r->resample = stbi__resample_row_h_2; - else if (r->hs == 2 && r->vs == 2) r->resample = z->resample_row_hv_2_kernel; - else r->resample = stbi__resample_row_generic; - } - - // can't error after this so, this is safe - output = (stbi_uc *) stbi__malloc_mad3(n, z->s->img_x, z->s->img_y, 1); - if (!output) { stbi__cleanup_jpeg(z); return stbi__errpuc("outofmem", "Out of memory"); } - - // now go ahead and resample - for (j=0; j < z->s->img_y; ++j) { - stbi_uc *out = output + n * z->s->img_x * j; - for (k=0; k < decode_n; ++k) { - stbi__resample *r = &res_comp[k]; - int y_bot = r->ystep >= (r->vs >> 1); - coutput[k] = r->resample(z->img_comp[k].linebuf, - y_bot ? r->line1 : r->line0, - y_bot ? r->line0 : r->line1, - r->w_lores, r->hs); - if (++r->ystep >= r->vs) { - r->ystep = 0; - r->line0 = r->line1; - if (++r->ypos < z->img_comp[k].y) - r->line1 += z->img_comp[k].w2; - } - } - if (n >= 3) { - stbi_uc *y = coutput[0]; - if (z->s->img_n == 3) { - if (is_rgb) { - for (i=0; i < z->s->img_x; ++i) { - out[0] = y[i]; - out[1] = coutput[1][i]; - out[2] = coutput[2][i]; - out[3] = 255; - out += n; - } - } else { - z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); - } - } else if (z->s->img_n == 4) { - if (z->app14_color_transform == 0) { // CMYK - for (i=0; i < z->s->img_x; ++i) { - stbi_uc m = coutput[3][i]; - out[0] = stbi__blinn_8x8(coutput[0][i], m); - out[1] = stbi__blinn_8x8(coutput[1][i], m); - out[2] = stbi__blinn_8x8(coutput[2][i], m); - out[3] = 255; - out += n; - } - } else if (z->app14_color_transform == 2) { // YCCK - z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); - for (i=0; i < z->s->img_x; ++i) { - stbi_uc m = coutput[3][i]; - out[0] = stbi__blinn_8x8(255 - out[0], m); - out[1] = stbi__blinn_8x8(255 - out[1], m); - out[2] = stbi__blinn_8x8(255 - out[2], m); - out += n; - } - } else { // YCbCr + alpha? Ignore the fourth channel for now - z->YCbCr_to_RGB_kernel(out, y, coutput[1], coutput[2], z->s->img_x, n); - } - } else - for (i=0; i < z->s->img_x; ++i) { - out[0] = out[1] = out[2] = y[i]; - out[3] = 255; // not used if n==3 - out += n; - } - } else { - if (is_rgb) { - if (n == 1) - for (i=0; i < z->s->img_x; ++i) - *out++ = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); - else { - for (i=0; i < z->s->img_x; ++i, out += 2) { - out[0] = stbi__compute_y(coutput[0][i], coutput[1][i], coutput[2][i]); - out[1] = 255; - } - } - } else if (z->s->img_n == 4 && z->app14_color_transform == 0) { - for (i=0; i < z->s->img_x; ++i) { - stbi_uc m = coutput[3][i]; - stbi_uc r = stbi__blinn_8x8(coutput[0][i], m); - stbi_uc g = stbi__blinn_8x8(coutput[1][i], m); - stbi_uc b = stbi__blinn_8x8(coutput[2][i], m); - out[0] = stbi__compute_y(r, g, b); - out[1] = 255; - out += n; - } - } else if (z->s->img_n == 4 && z->app14_color_transform == 2) { - for (i=0; i < z->s->img_x; ++i) { - out[0] = stbi__blinn_8x8(255 - coutput[0][i], coutput[3][i]); - out[1] = 255; - out += n; - } - } else { - stbi_uc *y = coutput[0]; - if (n == 1) - for (i=0; i < z->s->img_x; ++i) out[i] = y[i]; - else - for (i=0; i < z->s->img_x; ++i) { *out++ = y[i]; *out++ = 255; } - } - } - } - stbi__cleanup_jpeg(z); - *out_x = z->s->img_x; - *out_y = z->s->img_y; - if (comp) *comp = z->s->img_n >= 3 ? 3 : 1; // report original components, not output - return output; - } -} - -static void *stbi__jpeg_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - unsigned char* result; - stbi__jpeg* j = (stbi__jpeg*) stbi__malloc(sizeof(stbi__jpeg)); - STBI_NOTUSED(ri); - j->s = s; - stbi__setup_jpeg(j); - result = load_jpeg_image(j, x,y,comp,req_comp); - STBI_FREE(j); - return result; -} - -static int stbi__jpeg_test(stbi__context *s) -{ - int r; - stbi__jpeg* j = (stbi__jpeg*)stbi__malloc(sizeof(stbi__jpeg)); - j->s = s; - stbi__setup_jpeg(j); - r = stbi__decode_jpeg_header(j, STBI__SCAN_type); - stbi__rewind(s); - STBI_FREE(j); - return r; -} - -static int stbi__jpeg_info_raw(stbi__jpeg *j, int *x, int *y, int *comp) -{ - if (!stbi__decode_jpeg_header(j, STBI__SCAN_header)) { - stbi__rewind( j->s ); - return 0; - } - if (x) *x = j->s->img_x; - if (y) *y = j->s->img_y; - if (comp) *comp = j->s->img_n >= 3 ? 3 : 1; - return 1; -} - -static int stbi__jpeg_info(stbi__context *s, int *x, int *y, int *comp) -{ - int result; - stbi__jpeg* j = (stbi__jpeg*) (stbi__malloc(sizeof(stbi__jpeg))); - j->s = s; - result = stbi__jpeg_info_raw(j, x, y, comp); - STBI_FREE(j); - return result; -} -#endif - -// public domain zlib decode v0.2 Sean Barrett 2006-11-18 -// simple implementation -// - all input must be provided in an upfront buffer -// - all output is written to a single output buffer (can malloc/realloc) -// performance -// - fast huffman - -#ifndef STBI_NO_ZLIB - -// fast-way is faster to check than jpeg huffman, but slow way is slower -#define STBI__ZFAST_BITS 9 // accelerate all cases in default tables -#define STBI__ZFAST_MASK ((1 << STBI__ZFAST_BITS) - 1) - -// zlib-style huffman encoding -// (jpegs packs from left, zlib from right, so can't share code) -typedef struct -{ - stbi__uint16 fast[1 << STBI__ZFAST_BITS]; - stbi__uint16 firstcode[16]; - int maxcode[17]; - stbi__uint16 firstsymbol[16]; - stbi_uc size[288]; - stbi__uint16 value[288]; -} stbi__zhuffman; - -stbi_inline static int stbi__bitreverse16(int n) -{ - n = ((n & 0xAAAA) >> 1) | ((n & 0x5555) << 1); - n = ((n & 0xCCCC) >> 2) | ((n & 0x3333) << 2); - n = ((n & 0xF0F0) >> 4) | ((n & 0x0F0F) << 4); - n = ((n & 0xFF00) >> 8) | ((n & 0x00FF) << 8); - return n; -} - -stbi_inline static int stbi__bit_reverse(int v, int bits) -{ - STBI_ASSERT(bits <= 16); - // to bit reverse n bits, reverse 16 and shift - // e.g. 11 bits, bit reverse and shift away 5 - return stbi__bitreverse16(v) >> (16-bits); -} - -static int stbi__zbuild_huffman(stbi__zhuffman *z, const stbi_uc *sizelist, int num) -{ - int i,k=0; - int code, next_code[16], sizes[17]; - - // DEFLATE spec for generating codes - memset(sizes, 0, sizeof(sizes)); - memset(z->fast, 0, sizeof(z->fast)); - for (i=0; i < num; ++i) - ++sizes[sizelist[i]]; - sizes[0] = 0; - for (i=1; i < 16; ++i) - if (sizes[i] > (1 << i)) - return stbi__err("bad sizes", "Corrupt PNG"); - code = 0; - for (i=1; i < 16; ++i) { - next_code[i] = code; - z->firstcode[i] = (stbi__uint16) code; - z->firstsymbol[i] = (stbi__uint16) k; - code = (code + sizes[i]); - if (sizes[i]) - if (code-1 >= (1 << i)) return stbi__err("bad codelengths","Corrupt PNG"); - z->maxcode[i] = code << (16-i); // preshift for inner loop - code <<= 1; - k += sizes[i]; - } - z->maxcode[16] = 0x10000; // sentinel - for (i=0; i < num; ++i) { - int s = sizelist[i]; - if (s) { - int c = next_code[s] - z->firstcode[s] + z->firstsymbol[s]; - stbi__uint16 fastv = (stbi__uint16) ((s << 9) | i); - z->size [c] = (stbi_uc ) s; - z->value[c] = (stbi__uint16) i; - if (s <= STBI__ZFAST_BITS) { - int j = stbi__bit_reverse(next_code[s],s); - while (j < (1 << STBI__ZFAST_BITS)) { - z->fast[j] = fastv; - j += (1 << s); - } - } - ++next_code[s]; - } - } - return 1; -} - -// zlib-from-memory implementation for PNG reading -// because PNG allows splitting the zlib stream arbitrarily, -// and it's annoying structurally to have PNG call ZLIB call PNG, -// we require PNG read all the IDATs and combine them into a single -// memory buffer - -typedef struct -{ - stbi_uc *zbuffer, *zbuffer_end; - int num_bits; - stbi__uint32 code_buffer; - - char *zout; - char *zout_start; - char *zout_end; - int z_expandable; - - stbi__zhuffman z_length, z_distance; -} stbi__zbuf; - -stbi_inline static int stbi__zeof(stbi__zbuf *z) -{ - return (z->zbuffer >= z->zbuffer_end); -} - -stbi_inline static stbi_uc stbi__zget8(stbi__zbuf *z) -{ - return stbi__zeof(z) ? 0 : *z->zbuffer++; -} - -static void stbi__fill_bits(stbi__zbuf *z) -{ - do { - if (z->code_buffer >= (1U << z->num_bits)) { - z->zbuffer = z->zbuffer_end; /* treat this as EOF so we fail. */ - return; - } - z->code_buffer |= (unsigned int) stbi__zget8(z) << z->num_bits; - z->num_bits += 8; - } while (z->num_bits <= 24); -} - -stbi_inline static unsigned int stbi__zreceive(stbi__zbuf *z, int n) -{ - unsigned int k; - if (z->num_bits < n) stbi__fill_bits(z); - k = z->code_buffer & ((1 << n) - 1); - z->code_buffer >>= n; - z->num_bits -= n; - return k; -} - -static int stbi__zhuffman_decode_slowpath(stbi__zbuf *a, stbi__zhuffman *z) -{ - int b,s,k; - // not resolved by fast table, so compute it the slow way - // use jpeg approach, which requires MSbits at top - k = stbi__bit_reverse(a->code_buffer, 16); - for (s=STBI__ZFAST_BITS+1; ; ++s) - if (k < z->maxcode[s]) - break; - if (s >= 16) return -1; // invalid code! - // code size is s, so: - b = (k >> (16-s)) - z->firstcode[s] + z->firstsymbol[s]; - if (b >= sizeof (z->size)) return -1; // some data was corrupt somewhere! - if (z->size[b] != s) return -1; // was originally an assert, but report failure instead. - a->code_buffer >>= s; - a->num_bits -= s; - return z->value[b]; -} - -stbi_inline static int stbi__zhuffman_decode(stbi__zbuf *a, stbi__zhuffman *z) -{ - int b,s; - if (a->num_bits < 16) { - if (stbi__zeof(a)) { - return -1; /* report error for unexpected end of data. */ - } - stbi__fill_bits(a); - } - b = z->fast[a->code_buffer & STBI__ZFAST_MASK]; - if (b) { - s = b >> 9; - a->code_buffer >>= s; - a->num_bits -= s; - return b & 511; - } - return stbi__zhuffman_decode_slowpath(a, z); -} - -static int stbi__zexpand(stbi__zbuf *z, char *zout, int n) // need to make room for n bytes -{ - char *q; - unsigned int cur, limit, old_limit; - z->zout = zout; - if (!z->z_expandable) return stbi__err("output buffer limit","Corrupt PNG"); - cur = (unsigned int) (z->zout - z->zout_start); - limit = old_limit = (unsigned) (z->zout_end - z->zout_start); - if (UINT_MAX - cur < (unsigned) n) return stbi__err("outofmem", "Out of memory"); - while (cur + n > limit) { - if(limit > UINT_MAX / 2) return stbi__err("outofmem", "Out of memory"); - limit *= 2; - } - q = (char *) STBI_REALLOC_SIZED(z->zout_start, old_limit, limit); - STBI_NOTUSED(old_limit); - if (q == NULL) return stbi__err("outofmem", "Out of memory"); - z->zout_start = q; - z->zout = q + cur; - z->zout_end = q + limit; - return 1; -} - -static const int stbi__zlength_base[31] = { - 3,4,5,6,7,8,9,10,11,13, - 15,17,19,23,27,31,35,43,51,59, - 67,83,99,115,131,163,195,227,258,0,0 }; - -static const int stbi__zlength_extra[31]= -{ 0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0 }; - -static const int stbi__zdist_base[32] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193, -257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0}; - -static const int stbi__zdist_extra[32] = -{ 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13}; - -static int stbi__parse_huffman_block(stbi__zbuf *a) -{ - char *zout = a->zout; - for(;;) { - int z = stbi__zhuffman_decode(a, &a->z_length); - if (z < 256) { - if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); // error in huffman codes - if (zout >= a->zout_end) { - if (!stbi__zexpand(a, zout, 1)) return 0; - zout = a->zout; - } - *zout++ = (char) z; - } else { - stbi_uc *p; - int len,dist; - if (z == 256) { - a->zout = zout; - return 1; - } - z -= 257; - len = stbi__zlength_base[z]; - if (stbi__zlength_extra[z]) len += stbi__zreceive(a, stbi__zlength_extra[z]); - z = stbi__zhuffman_decode(a, &a->z_distance); - if (z < 0) return stbi__err("bad huffman code","Corrupt PNG"); - dist = stbi__zdist_base[z]; - if (stbi__zdist_extra[z]) dist += stbi__zreceive(a, stbi__zdist_extra[z]); - if (zout - a->zout_start < dist) return stbi__err("bad dist","Corrupt PNG"); - if (zout + len > a->zout_end) { - if (!stbi__zexpand(a, zout, len)) return 0; - zout = a->zout; - } - p = (stbi_uc *) (zout - dist); - if (dist == 1) { // run of one byte; common in images. - stbi_uc v = *p; - if (len) { do *zout++ = v; while (--len); } - } else { - if (len) { do *zout++ = *p++; while (--len); } - } - } - } -} - -static int stbi__compute_huffman_codes(stbi__zbuf *a) -{ - static const stbi_uc length_dezigzag[19] = { 16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15 }; - stbi__zhuffman z_codelength; - stbi_uc lencodes[286+32+137];//padding for maximum single op - stbi_uc codelength_sizes[19]; - int i,n; - - int hlit = stbi__zreceive(a,5) + 257; - int hdist = stbi__zreceive(a,5) + 1; - int hclen = stbi__zreceive(a,4) + 4; - int ntot = hlit + hdist; - - memset(codelength_sizes, 0, sizeof(codelength_sizes)); - for (i=0; i < hclen; ++i) { - int s = stbi__zreceive(a,3); - codelength_sizes[length_dezigzag[i]] = (stbi_uc) s; - } - if (!stbi__zbuild_huffman(&z_codelength, codelength_sizes, 19)) return 0; - - n = 0; - while (n < ntot) { - int c = stbi__zhuffman_decode(a, &z_codelength); - if (c < 0 || c >= 19) return stbi__err("bad codelengths", "Corrupt PNG"); - if (c < 16) - lencodes[n++] = (stbi_uc) c; - else { - stbi_uc fill = 0; - if (c == 16) { - c = stbi__zreceive(a,2)+3; - if (n == 0) return stbi__err("bad codelengths", "Corrupt PNG"); - fill = lencodes[n-1]; - } else if (c == 17) { - c = stbi__zreceive(a,3)+3; - } else if (c == 18) { - c = stbi__zreceive(a,7)+11; - } else { - return stbi__err("bad codelengths", "Corrupt PNG"); - } - if (ntot - n < c) return stbi__err("bad codelengths", "Corrupt PNG"); - memset(lencodes+n, fill, c); - n += c; - } - } - if (n != ntot) return stbi__err("bad codelengths","Corrupt PNG"); - if (!stbi__zbuild_huffman(&a->z_length, lencodes, hlit)) return 0; - if (!stbi__zbuild_huffman(&a->z_distance, lencodes+hlit, hdist)) return 0; - return 1; -} - -static int stbi__parse_uncompressed_block(stbi__zbuf *a) -{ - stbi_uc header[4]; - int len,nlen,k; - if (a->num_bits & 7) - stbi__zreceive(a, a->num_bits & 7); // discard - // drain the bit-packed data into header - k = 0; - while (a->num_bits > 0) { - header[k++] = (stbi_uc) (a->code_buffer & 255); // suppress MSVC run-time check - a->code_buffer >>= 8; - a->num_bits -= 8; - } - if (a->num_bits < 0) return stbi__err("zlib corrupt","Corrupt PNG"); - // now fill header the normal way - while (k < 4) - header[k++] = stbi__zget8(a); - len = header[1] * 256 + header[0]; - nlen = header[3] * 256 + header[2]; - if (nlen != (len ^ 0xffff)) return stbi__err("zlib corrupt","Corrupt PNG"); - if (a->zbuffer + len > a->zbuffer_end) return stbi__err("read past buffer","Corrupt PNG"); - if (a->zout + len > a->zout_end) - if (!stbi__zexpand(a, a->zout, len)) return 0; - memcpy(a->zout, a->zbuffer, len); - a->zbuffer += len; - a->zout += len; - return 1; -} - -static int stbi__parse_zlib_header(stbi__zbuf *a) -{ - int cmf = stbi__zget8(a); - int cm = cmf & 15; - /* int cinfo = cmf >> 4; */ - int flg = stbi__zget8(a); - if (stbi__zeof(a)) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec - if ((cmf*256+flg) % 31 != 0) return stbi__err("bad zlib header","Corrupt PNG"); // zlib spec - if (flg & 32) return stbi__err("no preset dict","Corrupt PNG"); // preset dictionary not allowed in png - if (cm != 8) return stbi__err("bad compression","Corrupt PNG"); // DEFLATE required for png - // window = 1 << (8 + cinfo)... but who cares, we fully buffer output - return 1; -} - -static const stbi_uc stbi__zdefault_length[288] = -{ - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, - 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9, - 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8 -}; -static const stbi_uc stbi__zdefault_distance[32] = -{ - 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5 -}; -/* -Init algorithm: -{ - int i; // use <= to match clearly with spec - for (i=0; i <= 143; ++i) stbi__zdefault_length[i] = 8; - for ( ; i <= 255; ++i) stbi__zdefault_length[i] = 9; - for ( ; i <= 279; ++i) stbi__zdefault_length[i] = 7; - for ( ; i <= 287; ++i) stbi__zdefault_length[i] = 8; - - for (i=0; i <= 31; ++i) stbi__zdefault_distance[i] = 5; -} -*/ - -static int stbi__parse_zlib(stbi__zbuf *a, int parse_header) -{ - int final, type; - if (parse_header) - if (!stbi__parse_zlib_header(a)) return 0; - a->num_bits = 0; - a->code_buffer = 0; - do { - final = stbi__zreceive(a,1); - type = stbi__zreceive(a,2); - if (type == 0) { - if (!stbi__parse_uncompressed_block(a)) return 0; - } else if (type == 3) { - return 0; - } else { - if (type == 1) { - // use fixed code lengths - if (!stbi__zbuild_huffman(&a->z_length , stbi__zdefault_length , 288)) return 0; - if (!stbi__zbuild_huffman(&a->z_distance, stbi__zdefault_distance, 32)) return 0; - } else { - if (!stbi__compute_huffman_codes(a)) return 0; - } - if (!stbi__parse_huffman_block(a)) return 0; - } - } while (!final); - return 1; -} - -static int stbi__do_zlib(stbi__zbuf *a, char *obuf, int olen, int exp, int parse_header) -{ - a->zout_start = obuf; - a->zout = obuf; - a->zout_end = obuf + olen; - a->z_expandable = exp; - - return stbi__parse_zlib(a, parse_header); -} - -STBIDEF char *stbi_zlib_decode_malloc_guesssize(const char *buffer, int len, int initial_size, int *outlen) -{ - stbi__zbuf a; - char *p = (char *) stbi__malloc(initial_size); - if (p == NULL) return NULL; - a.zbuffer = (stbi_uc *) buffer; - a.zbuffer_end = (stbi_uc *) buffer + len; - if (stbi__do_zlib(&a, p, initial_size, 1, 1)) { - if (outlen) *outlen = (int) (a.zout - a.zout_start); - return a.zout_start; - } else { - STBI_FREE(a.zout_start); - return NULL; - } -} - -STBIDEF char *stbi_zlib_decode_malloc(char const *buffer, int len, int *outlen) -{ - return stbi_zlib_decode_malloc_guesssize(buffer, len, 16384, outlen); -} - -STBIDEF char *stbi_zlib_decode_malloc_guesssize_headerflag(const char *buffer, int len, int initial_size, int *outlen, int parse_header) -{ - stbi__zbuf a; - char *p = (char *) stbi__malloc(initial_size); - if (p == NULL) return NULL; - a.zbuffer = (stbi_uc *) buffer; - a.zbuffer_end = (stbi_uc *) buffer + len; - if (stbi__do_zlib(&a, p, initial_size, 1, parse_header)) { - if (outlen) *outlen = (int) (a.zout - a.zout_start); - return a.zout_start; - } else { - STBI_FREE(a.zout_start); - return NULL; - } -} - -STBIDEF int stbi_zlib_decode_buffer(char *obuffer, int olen, char const *ibuffer, int ilen) -{ - stbi__zbuf a; - a.zbuffer = (stbi_uc *) ibuffer; - a.zbuffer_end = (stbi_uc *) ibuffer + ilen; - if (stbi__do_zlib(&a, obuffer, olen, 0, 1)) - return (int) (a.zout - a.zout_start); - else - return -1; -} - -STBIDEF char *stbi_zlib_decode_noheader_malloc(char const *buffer, int len, int *outlen) -{ - stbi__zbuf a; - char *p = (char *) stbi__malloc(16384); - if (p == NULL) return NULL; - a.zbuffer = (stbi_uc *) buffer; - a.zbuffer_end = (stbi_uc *) buffer+len; - if (stbi__do_zlib(&a, p, 16384, 1, 0)) { - if (outlen) *outlen = (int) (a.zout - a.zout_start); - return a.zout_start; - } else { - STBI_FREE(a.zout_start); - return NULL; - } -} - -STBIDEF int stbi_zlib_decode_noheader_buffer(char *obuffer, int olen, const char *ibuffer, int ilen) -{ - stbi__zbuf a; - a.zbuffer = (stbi_uc *) ibuffer; - a.zbuffer_end = (stbi_uc *) ibuffer + ilen; - if (stbi__do_zlib(&a, obuffer, olen, 0, 0)) - return (int) (a.zout - a.zout_start); - else - return -1; -} -#endif - -// public domain "baseline" PNG decoder v0.10 Sean Barrett 2006-11-18 -// simple implementation -// - only 8-bit samples -// - no CRC checking -// - allocates lots of intermediate memory -// - avoids problem of streaming data between subsystems -// - avoids explicit window management -// performance -// - uses stb_zlib, a PD zlib implementation with fast huffman decoding - -#ifndef STBI_NO_PNG -typedef struct -{ - stbi__uint32 length; - stbi__uint32 type; -} stbi__pngchunk; - -static stbi__pngchunk stbi__get_chunk_header(stbi__context *s) -{ - stbi__pngchunk c; - c.length = stbi__get32be(s); - c.type = stbi__get32be(s); - return c; -} - -static int stbi__check_png_header(stbi__context *s) -{ - static const stbi_uc png_sig[8] = { 137,80,78,71,13,10,26,10 }; - int i; - for (i=0; i < 8; ++i) - if (stbi__get8(s) != png_sig[i]) return stbi__err("bad png sig","Not a PNG"); - return 1; -} - -typedef struct -{ - stbi__context *s; - stbi_uc *idata, *expanded, *out; - int depth; -} stbi__png; - - -enum { - STBI__F_none=0, - STBI__F_sub=1, - STBI__F_up=2, - STBI__F_avg=3, - STBI__F_paeth=4, - // synthetic filters used for first scanline to avoid needing a dummy row of 0s - STBI__F_avg_first, - STBI__F_paeth_first -}; - -static stbi_uc first_row_filter[5] = -{ - STBI__F_none, - STBI__F_sub, - STBI__F_none, - STBI__F_avg_first, - STBI__F_paeth_first -}; - -static int stbi__paeth(int a, int b, int c) -{ - int p = a + b - c; - int pa = abs(p-a); - int pb = abs(p-b); - int pc = abs(p-c); - if (pa <= pb && pa <= pc) return a; - if (pb <= pc) return b; - return c; -} - -static const stbi_uc stbi__depth_scale_table[9] = { 0, 0xff, 0x55, 0, 0x11, 0,0,0, 0x01 }; - -// create the png data from post-deflated data -static int stbi__create_png_image_raw(stbi__png *a, stbi_uc *raw, stbi__uint32 raw_len, int out_n, stbi__uint32 x, stbi__uint32 y, int depth, int color) -{ - int bytes = (depth == 16? 2 : 1); - stbi__context *s = a->s; - stbi__uint32 i,j,stride = x*out_n*bytes; - stbi__uint32 img_len, img_width_bytes; - int k; - int img_n = s->img_n; // copy it into a local for later - - int output_bytes = out_n*bytes; - int filter_bytes = img_n*bytes; - int width = x; - - STBI_ASSERT(out_n == s->img_n || out_n == s->img_n+1); - a->out = (stbi_uc *) stbi__malloc_mad3(x, y, output_bytes, 0); // extra bytes to write off the end into - if (!a->out) return stbi__err("outofmem", "Out of memory"); - - if (!stbi__mad3sizes_valid(img_n, x, depth, 7)) return stbi__err("too large", "Corrupt PNG"); - img_width_bytes = (((img_n * x * depth) + 7) >> 3); - img_len = (img_width_bytes + 1) * y; - - // we used to check for exact match between raw_len and img_len on non-interlaced PNGs, - // but issue #276 reported a PNG in the wild that had extra data at the end (all zeros), - // so just check for raw_len < img_len always. - if (raw_len < img_len) return stbi__err("not enough pixels","Corrupt PNG"); - - for (j=0; j < y; ++j) { - stbi_uc *cur = a->out + stride*j; - stbi_uc *prior; - int filter = *raw++; - - if (filter > 4) - return stbi__err("invalid filter","Corrupt PNG"); - - if (depth < 8) { - if (img_width_bytes > x) return stbi__err("invalid width","Corrupt PNG"); - cur += x*out_n - img_width_bytes; // store output to the rightmost img_len bytes, so we can decode in place - filter_bytes = 1; - width = img_width_bytes; - } - prior = cur - stride; // bugfix: need to compute this after 'cur +=' computation above - - // if first row, use special filter that doesn't sample previous row - if (j == 0) filter = first_row_filter[filter]; - - // handle first byte explicitly - for (k=0; k < filter_bytes; ++k) { - switch (filter) { - case STBI__F_none : cur[k] = raw[k]; break; - case STBI__F_sub : cur[k] = raw[k]; break; - case STBI__F_up : cur[k] = STBI__BYTECAST(raw[k] + prior[k]); break; - case STBI__F_avg : cur[k] = STBI__BYTECAST(raw[k] + (prior[k]>>1)); break; - case STBI__F_paeth : cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(0,prior[k],0)); break; - case STBI__F_avg_first : cur[k] = raw[k]; break; - case STBI__F_paeth_first: cur[k] = raw[k]; break; - } - } - - if (depth == 8) { - if (img_n != out_n) - cur[img_n] = 255; // first pixel - raw += img_n; - cur += out_n; - prior += out_n; - } else if (depth == 16) { - if (img_n != out_n) { - cur[filter_bytes] = 255; // first pixel top byte - cur[filter_bytes+1] = 255; // first pixel bottom byte - } - raw += filter_bytes; - cur += output_bytes; - prior += output_bytes; - } else { - raw += 1; - cur += 1; - prior += 1; - } - - // this is a little gross, so that we don't switch per-pixel or per-component - if (depth < 8 || img_n == out_n) { - int nk = (width - 1)*filter_bytes; - #define STBI__CASE(f) \ - case f: \ - for (k=0; k < nk; ++k) - switch (filter) { - // "none" filter turns into a memcpy here; make that explicit. - case STBI__F_none: memcpy(cur, raw, nk); break; - STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k-filter_bytes]); } break; - STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; - STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k-filter_bytes])>>1)); } break; - STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],prior[k],prior[k-filter_bytes])); } break; - STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k-filter_bytes] >> 1)); } break; - STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k-filter_bytes],0,0)); } break; - } - #undef STBI__CASE - raw += nk; - } else { - STBI_ASSERT(img_n+1 == out_n); - #define STBI__CASE(f) \ - case f: \ - for (i=x-1; i >= 1; --i, cur[filter_bytes]=255,raw+=filter_bytes,cur+=output_bytes,prior+=output_bytes) \ - for (k=0; k < filter_bytes; ++k) - switch (filter) { - STBI__CASE(STBI__F_none) { cur[k] = raw[k]; } break; - STBI__CASE(STBI__F_sub) { cur[k] = STBI__BYTECAST(raw[k] + cur[k- output_bytes]); } break; - STBI__CASE(STBI__F_up) { cur[k] = STBI__BYTECAST(raw[k] + prior[k]); } break; - STBI__CASE(STBI__F_avg) { cur[k] = STBI__BYTECAST(raw[k] + ((prior[k] + cur[k- output_bytes])>>1)); } break; - STBI__CASE(STBI__F_paeth) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],prior[k],prior[k- output_bytes])); } break; - STBI__CASE(STBI__F_avg_first) { cur[k] = STBI__BYTECAST(raw[k] + (cur[k- output_bytes] >> 1)); } break; - STBI__CASE(STBI__F_paeth_first) { cur[k] = STBI__BYTECAST(raw[k] + stbi__paeth(cur[k- output_bytes],0,0)); } break; - } - #undef STBI__CASE - - // the loop above sets the high byte of the pixels' alpha, but for - // 16 bit png files we also need the low byte set. we'll do that here. - if (depth == 16) { - cur = a->out + stride*j; // start at the beginning of the row again - for (i=0; i < x; ++i,cur+=output_bytes) { - cur[filter_bytes+1] = 255; - } - } - } - } - - // we make a separate pass to expand bits to pixels; for performance, - // this could run two scanlines behind the above code, so it won't - // intefere with filtering but will still be in the cache. - if (depth < 8) { - for (j=0; j < y; ++j) { - stbi_uc *cur = a->out + stride*j; - stbi_uc *in = a->out + stride*j + x*out_n - img_width_bytes; - // unpack 1/2/4-bit into a 8-bit buffer. allows us to keep the common 8-bit path optimal at minimal cost for 1/2/4-bit - // png guarante byte alignment, if width is not multiple of 8/4/2 we'll decode dummy trailing data that will be skipped in the later loop - stbi_uc scale = (color == 0) ? stbi__depth_scale_table[depth] : 1; // scale grayscale values to 0..255 range - - // note that the final byte might overshoot and write more data than desired. - // we can allocate enough data that this never writes out of memory, but it - // could also overwrite the next scanline. can it overwrite non-empty data - // on the next scanline? yes, consider 1-pixel-wide scanlines with 1-bit-per-pixel. - // so we need to explicitly clamp the final ones - - if (depth == 4) { - for (k=x*img_n; k >= 2; k-=2, ++in) { - *cur++ = scale * ((*in >> 4) ); - *cur++ = scale * ((*in ) & 0x0f); - } - if (k > 0) *cur++ = scale * ((*in >> 4) ); - } else if (depth == 2) { - for (k=x*img_n; k >= 4; k-=4, ++in) { - *cur++ = scale * ((*in >> 6) ); - *cur++ = scale * ((*in >> 4) & 0x03); - *cur++ = scale * ((*in >> 2) & 0x03); - *cur++ = scale * ((*in ) & 0x03); - } - if (k > 0) *cur++ = scale * ((*in >> 6) ); - if (k > 1) *cur++ = scale * ((*in >> 4) & 0x03); - if (k > 2) *cur++ = scale * ((*in >> 2) & 0x03); - } else if (depth == 1) { - for (k=x*img_n; k >= 8; k-=8, ++in) { - *cur++ = scale * ((*in >> 7) ); - *cur++ = scale * ((*in >> 6) & 0x01); - *cur++ = scale * ((*in >> 5) & 0x01); - *cur++ = scale * ((*in >> 4) & 0x01); - *cur++ = scale * ((*in >> 3) & 0x01); - *cur++ = scale * ((*in >> 2) & 0x01); - *cur++ = scale * ((*in >> 1) & 0x01); - *cur++ = scale * ((*in ) & 0x01); - } - if (k > 0) *cur++ = scale * ((*in >> 7) ); - if (k > 1) *cur++ = scale * ((*in >> 6) & 0x01); - if (k > 2) *cur++ = scale * ((*in >> 5) & 0x01); - if (k > 3) *cur++ = scale * ((*in >> 4) & 0x01); - if (k > 4) *cur++ = scale * ((*in >> 3) & 0x01); - if (k > 5) *cur++ = scale * ((*in >> 2) & 0x01); - if (k > 6) *cur++ = scale * ((*in >> 1) & 0x01); - } - if (img_n != out_n) { - int q; - // insert alpha = 255 - cur = a->out + stride*j; - if (img_n == 1) { - for (q=x-1; q >= 0; --q) { - cur[q*2+1] = 255; - cur[q*2+0] = cur[q]; - } - } else { - STBI_ASSERT(img_n == 3); - for (q=x-1; q >= 0; --q) { - cur[q*4+3] = 255; - cur[q*4+2] = cur[q*3+2]; - cur[q*4+1] = cur[q*3+1]; - cur[q*4+0] = cur[q*3+0]; - } - } - } - } - } else if (depth == 16) { - // force the image data from big-endian to platform-native. - // this is done in a separate pass due to the decoding relying - // on the data being untouched, but could probably be done - // per-line during decode if care is taken. - stbi_uc *cur = a->out; - stbi__uint16 *cur16 = (stbi__uint16*)cur; - - for(i=0; i < x*y*out_n; ++i,cur16++,cur+=2) { - *cur16 = (cur[0] << 8) | cur[1]; - } - } - - return 1; -} - -static int stbi__create_png_image(stbi__png *a, stbi_uc *image_data, stbi__uint32 image_data_len, int out_n, int depth, int color, int interlaced) -{ - int bytes = (depth == 16 ? 2 : 1); - int out_bytes = out_n * bytes; - stbi_uc *final; - int p; - if (!interlaced) - return stbi__create_png_image_raw(a, image_data, image_data_len, out_n, a->s->img_x, a->s->img_y, depth, color); - - // de-interlacing - final = (stbi_uc *) stbi__malloc_mad3(a->s->img_x, a->s->img_y, out_bytes, 0); - for (p=0; p < 7; ++p) { - int xorig[] = { 0,4,0,2,0,1,0 }; - int yorig[] = { 0,0,4,0,2,0,1 }; - int xspc[] = { 8,8,4,4,2,2,1 }; - int yspc[] = { 8,8,8,4,4,2,2 }; - int i,j,x,y; - // pass1_x[4] = 0, pass1_x[5] = 1, pass1_x[12] = 1 - x = (a->s->img_x - xorig[p] + xspc[p]-1) / xspc[p]; - y = (a->s->img_y - yorig[p] + yspc[p]-1) / yspc[p]; - if (x && y) { - stbi__uint32 img_len = ((((a->s->img_n * x * depth) + 7) >> 3) + 1) * y; - if (!stbi__create_png_image_raw(a, image_data, image_data_len, out_n, x, y, depth, color)) { - STBI_FREE(final); - return 0; - } - for (j=0; j < y; ++j) { - for (i=0; i < x; ++i) { - int out_y = j*yspc[p]+yorig[p]; - int out_x = i*xspc[p]+xorig[p]; - memcpy(final + out_y*a->s->img_x*out_bytes + out_x*out_bytes, - a->out + (j*x+i)*out_bytes, out_bytes); - } - } - STBI_FREE(a->out); - image_data += img_len; - image_data_len -= img_len; - } - } - a->out = final; - - return 1; -} - -static int stbi__compute_transparency(stbi__png *z, stbi_uc tc[3], int out_n) -{ - stbi__context *s = z->s; - stbi__uint32 i, pixel_count = s->img_x * s->img_y; - stbi_uc *p = z->out; - - // compute color-based transparency, assuming we've - // already got 255 as the alpha value in the output - STBI_ASSERT(out_n == 2 || out_n == 4); - - if (out_n == 2) { - for (i=0; i < pixel_count; ++i) { - p[1] = (p[0] == tc[0] ? 0 : 255); - p += 2; - } - } else { - for (i=0; i < pixel_count; ++i) { - if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) - p[3] = 0; - p += 4; - } - } - return 1; -} - -static int stbi__compute_transparency16(stbi__png *z, stbi__uint16 tc[3], int out_n) -{ - stbi__context *s = z->s; - stbi__uint32 i, pixel_count = s->img_x * s->img_y; - stbi__uint16 *p = (stbi__uint16*) z->out; - - // compute color-based transparency, assuming we've - // already got 65535 as the alpha value in the output - STBI_ASSERT(out_n == 2 || out_n == 4); - - if (out_n == 2) { - for (i = 0; i < pixel_count; ++i) { - p[1] = (p[0] == tc[0] ? 0 : 65535); - p += 2; - } - } else { - for (i = 0; i < pixel_count; ++i) { - if (p[0] == tc[0] && p[1] == tc[1] && p[2] == tc[2]) - p[3] = 0; - p += 4; - } - } - return 1; -} - -static int stbi__expand_png_palette(stbi__png *a, stbi_uc *palette, int len, int pal_img_n) -{ - stbi__uint32 i, pixel_count = a->s->img_x * a->s->img_y; - stbi_uc *p, *temp_out, *orig = a->out; - - p = (stbi_uc *) stbi__malloc_mad2(pixel_count, pal_img_n, 0); - if (p == NULL) return stbi__err("outofmem", "Out of memory"); - - // between here and free(out) below, exitting would leak - temp_out = p; - - if (pal_img_n == 3) { - for (i=0; i < pixel_count; ++i) { - int n = orig[i]*4; - p[0] = palette[n ]; - p[1] = palette[n+1]; - p[2] = palette[n+2]; - p += 3; - } - } else { - for (i=0; i < pixel_count; ++i) { - int n = orig[i]*4; - p[0] = palette[n ]; - p[1] = palette[n+1]; - p[2] = palette[n+2]; - p[3] = palette[n+3]; - p += 4; - } - } - STBI_FREE(a->out); - a->out = temp_out; - - STBI_NOTUSED(len); - - return 1; -} - -static int stbi__unpremultiply_on_load = 0; -static int stbi__de_iphone_flag = 0; - -STBIDEF void stbi_set_unpremultiply_on_load(int flag_true_if_should_unpremultiply) -{ - stbi__unpremultiply_on_load = flag_true_if_should_unpremultiply; -} - -STBIDEF void stbi_convert_iphone_png_to_rgb(int flag_true_if_should_convert) -{ - stbi__de_iphone_flag = flag_true_if_should_convert; -} - -static void stbi__de_iphone(stbi__png *z) -{ - stbi__context *s = z->s; - stbi__uint32 i, pixel_count = s->img_x * s->img_y; - stbi_uc *p = z->out; - - if (s->img_out_n == 3) { // convert bgr to rgb - for (i=0; i < pixel_count; ++i) { - stbi_uc t = p[0]; - p[0] = p[2]; - p[2] = t; - p += 3; - } - } else { - STBI_ASSERT(s->img_out_n == 4); - if (stbi__unpremultiply_on_load) { - // convert bgr to rgb and unpremultiply - for (i=0; i < pixel_count; ++i) { - stbi_uc a = p[3]; - stbi_uc t = p[0]; - if (a) { - stbi_uc half = a / 2; - p[0] = (p[2] * 255 + half) / a; - p[1] = (p[1] * 255 + half) / a; - p[2] = ( t * 255 + half) / a; - } else { - p[0] = p[2]; - p[2] = t; - } - p += 4; - } - } else { - // convert bgr to rgb - for (i=0; i < pixel_count; ++i) { - stbi_uc t = p[0]; - p[0] = p[2]; - p[2] = t; - p += 4; - } - } - } -} - -#define STBI__PNG_TYPE(a,b,c,d) (((unsigned) (a) << 24) + ((unsigned) (b) << 16) + ((unsigned) (c) << 8) + (unsigned) (d)) - -static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp) -{ - stbi_uc palette[1024], pal_img_n=0; - stbi_uc has_trans=0, tc[3]={0}; - stbi__uint16 tc16[3]; - stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0; - int first=1,k,interlace=0, color=0, is_iphone=0; - stbi__context *s = z->s; - - z->expanded = NULL; - z->idata = NULL; - z->out = NULL; - - if (!stbi__check_png_header(s)) return 0; - - if (scan == STBI__SCAN_type) return 1; - - for (;;) { - stbi__pngchunk c = stbi__get_chunk_header(s); - switch (c.type) { - case STBI__PNG_TYPE('C','g','B','I'): - is_iphone = 1; - stbi__skip(s, c.length); - break; - case STBI__PNG_TYPE('I','H','D','R'): { - int comp,filter; - if (!first) return stbi__err("multiple IHDR","Corrupt PNG"); - first = 0; - if (c.length != 13) return stbi__err("bad IHDR len","Corrupt PNG"); - s->img_x = stbi__get32be(s); - s->img_y = stbi__get32be(s); - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - z->depth = stbi__get8(s); if (z->depth != 1 && z->depth != 2 && z->depth != 4 && z->depth != 8 && z->depth != 16) return stbi__err("1/2/4/8/16-bit only","PNG not supported: 1/2/4/8/16-bit only"); - color = stbi__get8(s); if (color > 6) return stbi__err("bad ctype","Corrupt PNG"); - if (color == 3 && z->depth == 16) return stbi__err("bad ctype","Corrupt PNG"); - if (color == 3) pal_img_n = 3; else if (color & 1) return stbi__err("bad ctype","Corrupt PNG"); - comp = stbi__get8(s); if (comp) return stbi__err("bad comp method","Corrupt PNG"); - filter= stbi__get8(s); if (filter) return stbi__err("bad filter method","Corrupt PNG"); - interlace = stbi__get8(s); if (interlace>1) return stbi__err("bad interlace method","Corrupt PNG"); - if (!s->img_x || !s->img_y) return stbi__err("0-pixel image","Corrupt PNG"); - if (!pal_img_n) { - s->img_n = (color & 2 ? 3 : 1) + (color & 4 ? 1 : 0); - if ((1 << 30) / s->img_x / s->img_n < s->img_y) return stbi__err("too large", "Image too large to decode"); - if (scan == STBI__SCAN_header) return 1; - } else { - // if paletted, then pal_n is our final components, and - // img_n is # components to decompress/filter. - s->img_n = 1; - if ((1 << 30) / s->img_x / 4 < s->img_y) return stbi__err("too large","Corrupt PNG"); - // if SCAN_header, have to scan to see if we have a tRNS - } - break; - } - - case STBI__PNG_TYPE('P','L','T','E'): { - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (c.length > 256*3) return stbi__err("invalid PLTE","Corrupt PNG"); - pal_len = c.length / 3; - if (pal_len * 3 != c.length) return stbi__err("invalid PLTE","Corrupt PNG"); - for (i=0; i < pal_len; ++i) { - palette[i*4+0] = stbi__get8(s); - palette[i*4+1] = stbi__get8(s); - palette[i*4+2] = stbi__get8(s); - palette[i*4+3] = 255; - } - break; - } - - case STBI__PNG_TYPE('t','R','N','S'): { - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (z->idata) return stbi__err("tRNS after IDAT","Corrupt PNG"); - if (pal_img_n) { - if (scan == STBI__SCAN_header) { s->img_n = 4; return 1; } - if (pal_len == 0) return stbi__err("tRNS before PLTE","Corrupt PNG"); - if (c.length > pal_len) return stbi__err("bad tRNS len","Corrupt PNG"); - pal_img_n = 4; - for (i=0; i < c.length; ++i) - palette[i*4+3] = stbi__get8(s); - } else { - if (!(s->img_n & 1)) return stbi__err("tRNS with alpha","Corrupt PNG"); - if (c.length != (stbi__uint32) s->img_n*2) return stbi__err("bad tRNS len","Corrupt PNG"); - has_trans = 1; - if (z->depth == 16) { - for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is - } else { - for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger - } - } - break; - } - - case STBI__PNG_TYPE('I','D','A','T'): { - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (pal_img_n && !pal_len) return stbi__err("no PLTE","Corrupt PNG"); - if (scan == STBI__SCAN_header) { s->img_n = pal_img_n; return 1; } - if ((int)(ioff + c.length) < (int)ioff) return 0; - if (ioff + c.length > idata_limit) { - stbi__uint32 idata_limit_old = idata_limit; - stbi_uc *p; - if (idata_limit == 0) idata_limit = c.length > 4096 ? c.length : 4096; - while (ioff + c.length > idata_limit) - idata_limit *= 2; - STBI_NOTUSED(idata_limit_old); - p = (stbi_uc *) STBI_REALLOC_SIZED(z->idata, idata_limit_old, idata_limit); if (p == NULL) return stbi__err("outofmem", "Out of memory"); - z->idata = p; - } - if (!stbi__getn(s, z->idata+ioff,c.length)) return stbi__err("outofdata","Corrupt PNG"); - ioff += c.length; - break; - } - - case STBI__PNG_TYPE('I','E','N','D'): { - stbi__uint32 raw_len, bpl; - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if (scan != STBI__SCAN_load) return 1; - if (z->idata == NULL) return stbi__err("no IDAT","Corrupt PNG"); - // initial guess for decoded data size to avoid unnecessary reallocs - bpl = (s->img_x * z->depth + 7) / 8; // bytes per line, per component - raw_len = bpl * s->img_y * s->img_n /* pixels */ + s->img_y /* filter mode per row */; - z->expanded = (stbi_uc *) stbi_zlib_decode_malloc_guesssize_headerflag((char *) z->idata, ioff, raw_len, (int *) &raw_len, !is_iphone); - if (z->expanded == NULL) return 0; // zlib should set error - STBI_FREE(z->idata); z->idata = NULL; - if ((req_comp == s->img_n+1 && req_comp != 3 && !pal_img_n) || has_trans) - s->img_out_n = s->img_n+1; - else - s->img_out_n = s->img_n; - if (!stbi__create_png_image(z, z->expanded, raw_len, s->img_out_n, z->depth, color, interlace)) return 0; - if (has_trans) { - if (z->depth == 16) { - if (!stbi__compute_transparency16(z, tc16, s->img_out_n)) return 0; - } else { - if (!stbi__compute_transparency(z, tc, s->img_out_n)) return 0; - } - } - if (is_iphone && stbi__de_iphone_flag && s->img_out_n > 2) - stbi__de_iphone(z); - if (pal_img_n) { - // pal_img_n == 3 or 4 - s->img_n = pal_img_n; // record the actual colors we had - s->img_out_n = pal_img_n; - if (req_comp >= 3) s->img_out_n = req_comp; - if (!stbi__expand_png_palette(z, palette, pal_len, s->img_out_n)) - return 0; - } else if (has_trans) { - // non-paletted image with tRNS -> source image has (constant) alpha - ++s->img_n; - } - STBI_FREE(z->expanded); z->expanded = NULL; - // end of PNG chunk, read and skip CRC - stbi__get32be(s); - return 1; - } - - default: - // if critical, fail - if (first) return stbi__err("first not IHDR", "Corrupt PNG"); - if ((c.type & (1 << 29)) == 0) { - #ifndef STBI_NO_FAILURE_STRINGS - // not threadsafe - static char invalid_chunk[] = "XXXX PNG chunk not known"; - invalid_chunk[0] = STBI__BYTECAST(c.type >> 24); - invalid_chunk[1] = STBI__BYTECAST(c.type >> 16); - invalid_chunk[2] = STBI__BYTECAST(c.type >> 8); - invalid_chunk[3] = STBI__BYTECAST(c.type >> 0); - #endif - return stbi__err(invalid_chunk, "PNG not supported: unknown PNG chunk type"); - } - stbi__skip(s, c.length); - break; - } - // end of PNG chunk, read and skip CRC - stbi__get32be(s); - } -} - -static void *stbi__do_png(stbi__png *p, int *x, int *y, int *n, int req_comp, stbi__result_info *ri) -{ - void *result=NULL; - if (req_comp < 0 || req_comp > 4) return stbi__errpuc("bad req_comp", "Internal error"); - if (stbi__parse_png_file(p, STBI__SCAN_load, req_comp)) { - if (p->depth <= 8) - ri->bits_per_channel = 8; - else if (p->depth == 16) - ri->bits_per_channel = 16; - else - return stbi__errpuc("bad bits_per_channel", "PNG not supported: unsupported color depth"); - result = p->out; - p->out = NULL; - if (req_comp && req_comp != p->s->img_out_n) { - if (ri->bits_per_channel == 8) - result = stbi__convert_format((unsigned char *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); - else - result = stbi__convert_format16((stbi__uint16 *) result, p->s->img_out_n, req_comp, p->s->img_x, p->s->img_y); - p->s->img_out_n = req_comp; - if (result == NULL) return result; - } - *x = p->s->img_x; - *y = p->s->img_y; - if (n) *n = p->s->img_n; - } - STBI_FREE(p->out); p->out = NULL; - STBI_FREE(p->expanded); p->expanded = NULL; - STBI_FREE(p->idata); p->idata = NULL; - - return result; -} - -static void *stbi__png_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi__png p; - p.s = s; - return stbi__do_png(&p, x,y,comp,req_comp, ri); -} - -static int stbi__png_test(stbi__context *s) -{ - int r; - r = stbi__check_png_header(s); - stbi__rewind(s); - return r; -} - -static int stbi__png_info_raw(stbi__png *p, int *x, int *y, int *comp) -{ - if (!stbi__parse_png_file(p, STBI__SCAN_header, 0)) { - stbi__rewind( p->s ); - return 0; - } - if (x) *x = p->s->img_x; - if (y) *y = p->s->img_y; - if (comp) *comp = p->s->img_n; - return 1; -} - -static int stbi__png_info(stbi__context *s, int *x, int *y, int *comp) -{ - stbi__png p; - p.s = s; - return stbi__png_info_raw(&p, x, y, comp); -} - -static int stbi__png_is16(stbi__context *s) -{ - stbi__png p; - p.s = s; - if (!stbi__png_info_raw(&p, NULL, NULL, NULL)) - return 0; - if (p.depth != 16) { - stbi__rewind(p.s); - return 0; - } - return 1; -} -#endif - -// Microsoft/Windows BMP image - -#ifndef STBI_NO_BMP -static int stbi__bmp_test_raw(stbi__context *s) -{ - int r; - int sz; - if (stbi__get8(s) != 'B') return 0; - if (stbi__get8(s) != 'M') return 0; - stbi__get32le(s); // discard filesize - stbi__get16le(s); // discard reserved - stbi__get16le(s); // discard reserved - stbi__get32le(s); // discard data offset - sz = stbi__get32le(s); - r = (sz == 12 || sz == 40 || sz == 56 || sz == 108 || sz == 124); - return r; -} - -static int stbi__bmp_test(stbi__context *s) -{ - int r = stbi__bmp_test_raw(s); - stbi__rewind(s); - return r; -} - - -// returns 0..31 for the highest set bit -static int stbi__high_bit(unsigned int z) -{ - int n=0; - if (z == 0) return -1; - if (z >= 0x10000) { n += 16; z >>= 16; } - if (z >= 0x00100) { n += 8; z >>= 8; } - if (z >= 0x00010) { n += 4; z >>= 4; } - if (z >= 0x00004) { n += 2; z >>= 2; } - if (z >= 0x00002) { n += 1;/* >>= 1;*/ } - return n; -} - -static int stbi__bitcount(unsigned int a) -{ - a = (a & 0x55555555) + ((a >> 1) & 0x55555555); // max 2 - a = (a & 0x33333333) + ((a >> 2) & 0x33333333); // max 4 - a = (a + (a >> 4)) & 0x0f0f0f0f; // max 8 per 4, now 8 bits - a = (a + (a >> 8)); // max 16 per 8 bits - a = (a + (a >> 16)); // max 32 per 8 bits - return a & 0xff; -} - -// extract an arbitrarily-aligned N-bit value (N=bits) -// from v, and then make it 8-bits long and fractionally -// extend it to full full range. -static int stbi__shiftsigned(unsigned int v, int shift, int bits) -{ - static unsigned int mul_table[9] = { - 0, - 0xff/*0b11111111*/, 0x55/*0b01010101*/, 0x49/*0b01001001*/, 0x11/*0b00010001*/, - 0x21/*0b00100001*/, 0x41/*0b01000001*/, 0x81/*0b10000001*/, 0x01/*0b00000001*/, - }; - static unsigned int shift_table[9] = { - 0, 0,0,1,0,2,4,6,0, - }; - if (shift < 0) - v <<= -shift; - else - v >>= shift; - STBI_ASSERT(v < 256); - v >>= (8-bits); - STBI_ASSERT(bits >= 0 && bits <= 8); - return (int) ((unsigned) v * mul_table[bits]) >> shift_table[bits]; -} - -typedef struct -{ - int bpp, offset, hsz; - unsigned int mr,mg,mb,ma, all_a; - int extra_read; -} stbi__bmp_data; - -static void *stbi__bmp_parse_header(stbi__context *s, stbi__bmp_data *info) -{ - int hsz; - if (stbi__get8(s) != 'B' || stbi__get8(s) != 'M') return stbi__errpuc("not BMP", "Corrupt BMP"); - stbi__get32le(s); // discard filesize - stbi__get16le(s); // discard reserved - stbi__get16le(s); // discard reserved - info->offset = stbi__get32le(s); - info->hsz = hsz = stbi__get32le(s); - info->mr = info->mg = info->mb = info->ma = 0; - info->extra_read = 14; - - if (info->offset < 0) return stbi__errpuc("bad BMP", "bad BMP"); - - if (hsz != 12 && hsz != 40 && hsz != 56 && hsz != 108 && hsz != 124) return stbi__errpuc("unknown BMP", "BMP type not supported: unknown"); - if (hsz == 12) { - s->img_x = stbi__get16le(s); - s->img_y = stbi__get16le(s); - } else { - s->img_x = stbi__get32le(s); - s->img_y = stbi__get32le(s); - } - if (stbi__get16le(s) != 1) return stbi__errpuc("bad BMP", "bad BMP"); - info->bpp = stbi__get16le(s); - if (hsz != 12) { - int compress = stbi__get32le(s); - if (compress == 1 || compress == 2) return stbi__errpuc("BMP RLE", "BMP type not supported: RLE"); - stbi__get32le(s); // discard sizeof - stbi__get32le(s); // discard hres - stbi__get32le(s); // discard vres - stbi__get32le(s); // discard colorsused - stbi__get32le(s); // discard max important - if (hsz == 40 || hsz == 56) { - if (hsz == 56) { - stbi__get32le(s); - stbi__get32le(s); - stbi__get32le(s); - stbi__get32le(s); - } - if (info->bpp == 16 || info->bpp == 32) { - if (compress == 0) { - if (info->bpp == 32) { - info->mr = 0xffu << 16; - info->mg = 0xffu << 8; - info->mb = 0xffu << 0; - info->ma = 0xffu << 24; - info->all_a = 0; // if all_a is 0 at end, then we loaded alpha channel but it was all 0 - } else { - info->mr = 31u << 10; - info->mg = 31u << 5; - info->mb = 31u << 0; - } - } else if (compress == 3) { - info->mr = stbi__get32le(s); - info->mg = stbi__get32le(s); - info->mb = stbi__get32le(s); - info->extra_read += 12; - // not documented, but generated by photoshop and handled by mspaint - if (info->mr == info->mg && info->mg == info->mb) { - // ?!?!? - return stbi__errpuc("bad BMP", "bad BMP"); - } - } else - return stbi__errpuc("bad BMP", "bad BMP"); - } - } else { - int i; - if (hsz != 108 && hsz != 124) - return stbi__errpuc("bad BMP", "bad BMP"); - info->mr = stbi__get32le(s); - info->mg = stbi__get32le(s); - info->mb = stbi__get32le(s); - info->ma = stbi__get32le(s); - stbi__get32le(s); // discard color space - for (i=0; i < 12; ++i) - stbi__get32le(s); // discard color space parameters - if (hsz == 124) { - stbi__get32le(s); // discard rendering intent - stbi__get32le(s); // discard offset of profile data - stbi__get32le(s); // discard size of profile data - stbi__get32le(s); // discard reserved - } - } - } - return (void *) 1; -} - - -static void *stbi__bmp_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi_uc *out; - unsigned int mr=0,mg=0,mb=0,ma=0, all_a; - stbi_uc pal[256][4]; - int psize=0,i,j,width; - int flip_vertically, pad, target; - stbi__bmp_data info; - STBI_NOTUSED(ri); - - info.all_a = 255; - if (stbi__bmp_parse_header(s, &info) == NULL) - return NULL; // error code already set - - flip_vertically = ((int) s->img_y) > 0; - s->img_y = abs((int) s->img_y); - - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - mr = info.mr; - mg = info.mg; - mb = info.mb; - ma = info.ma; - all_a = info.all_a; - - if (info.hsz == 12) { - if (info.bpp < 24) - psize = (info.offset - info.extra_read - 24) / 3; - } else { - if (info.bpp < 16) - psize = (info.offset - info.extra_read - info.hsz) >> 2; - } - if (psize == 0) { - STBI_ASSERT(info.offset == s->callback_already_read + (int) (s->img_buffer - s->img_buffer_original)); - if (info.offset != s->callback_already_read + (s->img_buffer - s->buffer_start)) { - return stbi__errpuc("bad offset", "Corrupt BMP"); - } - } - - if (info.bpp == 24 && ma == 0xff000000) - s->img_n = 3; - else - s->img_n = ma ? 4 : 3; - if (req_comp && req_comp >= 3) // we can directly decode 3 or 4 - target = req_comp; - else - target = s->img_n; // if they want monochrome, we'll post-convert - - // sanity-check size - if (!stbi__mad3sizes_valid(target, s->img_x, s->img_y, 0)) - return stbi__errpuc("too large", "Corrupt BMP"); - - out = (stbi_uc *) stbi__malloc_mad3(target, s->img_x, s->img_y, 0); - if (!out) return stbi__errpuc("outofmem", "Out of memory"); - if (info.bpp < 16) { - int z=0; - if (psize == 0 || psize > 256) { STBI_FREE(out); return stbi__errpuc("invalid", "Corrupt BMP"); } - for (i=0; i < psize; ++i) { - pal[i][2] = stbi__get8(s); - pal[i][1] = stbi__get8(s); - pal[i][0] = stbi__get8(s); - if (info.hsz != 12) stbi__get8(s); - pal[i][3] = 255; - } - stbi__skip(s, info.offset - info.extra_read - info.hsz - psize * (info.hsz == 12 ? 3 : 4)); - if (info.bpp == 1) width = (s->img_x + 7) >> 3; - else if (info.bpp == 4) width = (s->img_x + 1) >> 1; - else if (info.bpp == 8) width = s->img_x; - else { STBI_FREE(out); return stbi__errpuc("bad bpp", "Corrupt BMP"); } - pad = (-width)&3; - if (info.bpp == 1) { - for (j=0; j < (int) s->img_y; ++j) { - int bit_offset = 7, v = stbi__get8(s); - for (i=0; i < (int) s->img_x; ++i) { - int color = (v>>bit_offset)&0x1; - out[z++] = pal[color][0]; - out[z++] = pal[color][1]; - out[z++] = pal[color][2]; - if (target == 4) out[z++] = 255; - if (i+1 == (int) s->img_x) break; - if((--bit_offset) < 0) { - bit_offset = 7; - v = stbi__get8(s); - } - } - stbi__skip(s, pad); - } - } else { - for (j=0; j < (int) s->img_y; ++j) { - for (i=0; i < (int) s->img_x; i += 2) { - int v=stbi__get8(s),v2=0; - if (info.bpp == 4) { - v2 = v & 15; - v >>= 4; - } - out[z++] = pal[v][0]; - out[z++] = pal[v][1]; - out[z++] = pal[v][2]; - if (target == 4) out[z++] = 255; - if (i+1 == (int) s->img_x) break; - v = (info.bpp == 8) ? stbi__get8(s) : v2; - out[z++] = pal[v][0]; - out[z++] = pal[v][1]; - out[z++] = pal[v][2]; - if (target == 4) out[z++] = 255; - } - stbi__skip(s, pad); - } - } - } else { - int rshift=0,gshift=0,bshift=0,ashift=0,rcount=0,gcount=0,bcount=0,acount=0; - int z = 0; - int easy=0; - stbi__skip(s, info.offset - info.extra_read - info.hsz); - if (info.bpp == 24) width = 3 * s->img_x; - else if (info.bpp == 16) width = 2*s->img_x; - else /* bpp = 32 and pad = 0 */ width=0; - pad = (-width) & 3; - if (info.bpp == 24) { - easy = 1; - } else if (info.bpp == 32) { - if (mb == 0xff && mg == 0xff00 && mr == 0x00ff0000 && ma == 0xff000000) - easy = 2; - } - if (!easy) { - if (!mr || !mg || !mb) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } - // right shift amt to put high bit in position #7 - rshift = stbi__high_bit(mr)-7; rcount = stbi__bitcount(mr); - gshift = stbi__high_bit(mg)-7; gcount = stbi__bitcount(mg); - bshift = stbi__high_bit(mb)-7; bcount = stbi__bitcount(mb); - ashift = stbi__high_bit(ma)-7; acount = stbi__bitcount(ma); - if (rcount > 8 || gcount > 8 || bcount > 8 || acount > 8) { STBI_FREE(out); return stbi__errpuc("bad masks", "Corrupt BMP"); } - } - for (j=0; j < (int) s->img_y; ++j) { - if (easy) { - for (i=0; i < (int) s->img_x; ++i) { - unsigned char a; - out[z+2] = stbi__get8(s); - out[z+1] = stbi__get8(s); - out[z+0] = stbi__get8(s); - z += 3; - a = (easy == 2 ? stbi__get8(s) : 255); - all_a |= a; - if (target == 4) out[z++] = a; - } - } else { - int bpp = info.bpp; - for (i=0; i < (int) s->img_x; ++i) { - stbi__uint32 v = (bpp == 16 ? (stbi__uint32) stbi__get16le(s) : stbi__get32le(s)); - unsigned int a; - out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mr, rshift, rcount)); - out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mg, gshift, gcount)); - out[z++] = STBI__BYTECAST(stbi__shiftsigned(v & mb, bshift, bcount)); - a = (ma ? stbi__shiftsigned(v & ma, ashift, acount) : 255); - all_a |= a; - if (target == 4) out[z++] = STBI__BYTECAST(a); - } - } - stbi__skip(s, pad); - } - } - - // if alpha channel is all 0s, replace with all 255s - if (target == 4 && all_a == 0) - for (i=4*s->img_x*s->img_y-1; i >= 0; i -= 4) - out[i] = 255; - - if (flip_vertically) { - stbi_uc t; - for (j=0; j < (int) s->img_y>>1; ++j) { - stbi_uc *p1 = out + j *s->img_x*target; - stbi_uc *p2 = out + (s->img_y-1-j)*s->img_x*target; - for (i=0; i < (int) s->img_x*target; ++i) { - t = p1[i]; p1[i] = p2[i]; p2[i] = t; - } - } - } - - if (req_comp && req_comp != target) { - out = stbi__convert_format(out, target, req_comp, s->img_x, s->img_y); - if (out == NULL) return out; // stbi__convert_format frees input on failure - } - - *x = s->img_x; - *y = s->img_y; - if (comp) *comp = s->img_n; - return out; -} -#endif - -// Targa Truevision - TGA -// by Jonathan Dummer -#ifndef STBI_NO_TGA -// returns STBI_rgb or whatever, 0 on error -static int stbi__tga_get_comp(int bits_per_pixel, int is_grey, int* is_rgb16) -{ - // only RGB or RGBA (incl. 16bit) or grey allowed - if (is_rgb16) *is_rgb16 = 0; - switch(bits_per_pixel) { - case 8: return STBI_grey; - case 16: if(is_grey) return STBI_grey_alpha; - // fallthrough - case 15: if(is_rgb16) *is_rgb16 = 1; - return STBI_rgb; - case 24: // fallthrough - case 32: return bits_per_pixel/8; - default: return 0; - } -} - -static int stbi__tga_info(stbi__context *s, int *x, int *y, int *comp) -{ - int tga_w, tga_h, tga_comp, tga_image_type, tga_bits_per_pixel, tga_colormap_bpp; - int sz, tga_colormap_type; - stbi__get8(s); // discard Offset - tga_colormap_type = stbi__get8(s); // colormap type - if( tga_colormap_type > 1 ) { - stbi__rewind(s); - return 0; // only RGB or indexed allowed - } - tga_image_type = stbi__get8(s); // image type - if ( tga_colormap_type == 1 ) { // colormapped (paletted) image - if (tga_image_type != 1 && tga_image_type != 9) { - stbi__rewind(s); - return 0; - } - stbi__skip(s,4); // skip index of first colormap entry and number of entries - sz = stbi__get8(s); // check bits per palette color entry - if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) { - stbi__rewind(s); - return 0; - } - stbi__skip(s,4); // skip image x and y origin - tga_colormap_bpp = sz; - } else { // "normal" image w/o colormap - only RGB or grey allowed, +/- RLE - if ( (tga_image_type != 2) && (tga_image_type != 3) && (tga_image_type != 10) && (tga_image_type != 11) ) { - stbi__rewind(s); - return 0; // only RGB or grey allowed, +/- RLE - } - stbi__skip(s,9); // skip colormap specification and image x/y origin - tga_colormap_bpp = 0; - } - tga_w = stbi__get16le(s); - if( tga_w < 1 ) { - stbi__rewind(s); - return 0; // test width - } - tga_h = stbi__get16le(s); - if( tga_h < 1 ) { - stbi__rewind(s); - return 0; // test height - } - tga_bits_per_pixel = stbi__get8(s); // bits per pixel - stbi__get8(s); // ignore alpha bits - if (tga_colormap_bpp != 0) { - if((tga_bits_per_pixel != 8) && (tga_bits_per_pixel != 16)) { - // when using a colormap, tga_bits_per_pixel is the size of the indexes - // I don't think anything but 8 or 16bit indexes makes sense - stbi__rewind(s); - return 0; - } - tga_comp = stbi__tga_get_comp(tga_colormap_bpp, 0, NULL); - } else { - tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3) || (tga_image_type == 11), NULL); - } - if(!tga_comp) { - stbi__rewind(s); - return 0; - } - if (x) *x = tga_w; - if (y) *y = tga_h; - if (comp) *comp = tga_comp; - return 1; // seems to have passed everything -} - -static int stbi__tga_test(stbi__context *s) -{ - int res = 0; - int sz, tga_color_type; - stbi__get8(s); // discard Offset - tga_color_type = stbi__get8(s); // color type - if ( tga_color_type > 1 ) goto errorEnd; // only RGB or indexed allowed - sz = stbi__get8(s); // image type - if ( tga_color_type == 1 ) { // colormapped (paletted) image - if (sz != 1 && sz != 9) goto errorEnd; // colortype 1 demands image type 1 or 9 - stbi__skip(s,4); // skip index of first colormap entry and number of entries - sz = stbi__get8(s); // check bits per palette color entry - if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; - stbi__skip(s,4); // skip image x and y origin - } else { // "normal" image w/o colormap - if ( (sz != 2) && (sz != 3) && (sz != 10) && (sz != 11) ) goto errorEnd; // only RGB or grey allowed, +/- RLE - stbi__skip(s,9); // skip colormap specification and image x/y origin - } - if ( stbi__get16le(s) < 1 ) goto errorEnd; // test width - if ( stbi__get16le(s) < 1 ) goto errorEnd; // test height - sz = stbi__get8(s); // bits per pixel - if ( (tga_color_type == 1) && (sz != 8) && (sz != 16) ) goto errorEnd; // for colormapped images, bpp is size of an index - if ( (sz != 8) && (sz != 15) && (sz != 16) && (sz != 24) && (sz != 32) ) goto errorEnd; - - res = 1; // if we got this far, everything's good and we can return 1 instead of 0 - -errorEnd: - stbi__rewind(s); - return res; -} - -// read 16bit value and convert to 24bit RGB -static void stbi__tga_read_rgb16(stbi__context *s, stbi_uc* out) -{ - stbi__uint16 px = (stbi__uint16)stbi__get16le(s); - stbi__uint16 fiveBitMask = 31; - // we have 3 channels with 5bits each - int r = (px >> 10) & fiveBitMask; - int g = (px >> 5) & fiveBitMask; - int b = px & fiveBitMask; - // Note that this saves the data in RGB(A) order, so it doesn't need to be swapped later - out[0] = (stbi_uc)((r * 255)/31); - out[1] = (stbi_uc)((g * 255)/31); - out[2] = (stbi_uc)((b * 255)/31); - - // some people claim that the most significant bit might be used for alpha - // (possibly if an alpha-bit is set in the "image descriptor byte") - // but that only made 16bit test images completely translucent.. - // so let's treat all 15 and 16bit TGAs as RGB with no alpha. -} - -static void *stbi__tga_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - // read in the TGA header stuff - int tga_offset = stbi__get8(s); - int tga_indexed = stbi__get8(s); - int tga_image_type = stbi__get8(s); - int tga_is_RLE = 0; - int tga_palette_start = stbi__get16le(s); - int tga_palette_len = stbi__get16le(s); - int tga_palette_bits = stbi__get8(s); - int tga_x_origin = stbi__get16le(s); - int tga_y_origin = stbi__get16le(s); - int tga_width = stbi__get16le(s); - int tga_height = stbi__get16le(s); - int tga_bits_per_pixel = stbi__get8(s); - int tga_comp, tga_rgb16=0; - int tga_inverted = stbi__get8(s); - // int tga_alpha_bits = tga_inverted & 15; // the 4 lowest bits - unused (useless?) - // image data - unsigned char *tga_data; - unsigned char *tga_palette = NULL; - int i, j; - unsigned char raw_data[4] = {0}; - int RLE_count = 0; - int RLE_repeating = 0; - int read_next_pixel = 1; - STBI_NOTUSED(ri); - STBI_NOTUSED(tga_x_origin); // @TODO - STBI_NOTUSED(tga_y_origin); // @TODO - - if (tga_height > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (tga_width > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - // do a tiny bit of precessing - if ( tga_image_type >= 8 ) - { - tga_image_type -= 8; - tga_is_RLE = 1; - } - tga_inverted = 1 - ((tga_inverted >> 5) & 1); - - // If I'm paletted, then I'll use the number of bits from the palette - if ( tga_indexed ) tga_comp = stbi__tga_get_comp(tga_palette_bits, 0, &tga_rgb16); - else tga_comp = stbi__tga_get_comp(tga_bits_per_pixel, (tga_image_type == 3), &tga_rgb16); - - if(!tga_comp) // shouldn't really happen, stbi__tga_test() should have ensured basic consistency - return stbi__errpuc("bad format", "Can't find out TGA pixelformat"); - - // tga info - *x = tga_width; - *y = tga_height; - if (comp) *comp = tga_comp; - - if (!stbi__mad3sizes_valid(tga_width, tga_height, tga_comp, 0)) - return stbi__errpuc("too large", "Corrupt TGA"); - - tga_data = (unsigned char*)stbi__malloc_mad3(tga_width, tga_height, tga_comp, 0); - if (!tga_data) return stbi__errpuc("outofmem", "Out of memory"); - - // skip to the data's starting position (offset usually = 0) - stbi__skip(s, tga_offset ); - - if ( !tga_indexed && !tga_is_RLE && !tga_rgb16 ) { - for (i=0; i < tga_height; ++i) { - int row = tga_inverted ? tga_height -i - 1 : i; - stbi_uc *tga_row = tga_data + row*tga_width*tga_comp; - stbi__getn(s, tga_row, tga_width * tga_comp); - } - } else { - // do I need to load a palette? - if ( tga_indexed) - { - if (tga_palette_len == 0) { /* you have to have at least one entry! */ - STBI_FREE(tga_data); - return stbi__errpuc("bad palette", "Corrupt TGA"); - } - - // any data to skip? (offset usually = 0) - stbi__skip(s, tga_palette_start ); - // load the palette - tga_palette = (unsigned char*)stbi__malloc_mad2(tga_palette_len, tga_comp, 0); - if (!tga_palette) { - STBI_FREE(tga_data); - return stbi__errpuc("outofmem", "Out of memory"); - } - if (tga_rgb16) { - stbi_uc *pal_entry = tga_palette; - STBI_ASSERT(tga_comp == STBI_rgb); - for (i=0; i < tga_palette_len; ++i) { - stbi__tga_read_rgb16(s, pal_entry); - pal_entry += tga_comp; - } - } else if (!stbi__getn(s, tga_palette, tga_palette_len * tga_comp)) { - STBI_FREE(tga_data); - STBI_FREE(tga_palette); - return stbi__errpuc("bad palette", "Corrupt TGA"); - } - } - // load the data - for (i=0; i < tga_width * tga_height; ++i) - { - // if I'm in RLE mode, do I need to get a RLE stbi__pngchunk? - if ( tga_is_RLE ) - { - if ( RLE_count == 0 ) - { - // yep, get the next byte as a RLE command - int RLE_cmd = stbi__get8(s); - RLE_count = 1 + (RLE_cmd & 127); - RLE_repeating = RLE_cmd >> 7; - read_next_pixel = 1; - } else if ( !RLE_repeating ) - { - read_next_pixel = 1; - } - } else - { - read_next_pixel = 1; - } - // OK, if I need to read a pixel, do it now - if ( read_next_pixel ) - { - // load however much data we did have - if ( tga_indexed ) - { - // read in index, then perform the lookup - int pal_idx = (tga_bits_per_pixel == 8) ? stbi__get8(s) : stbi__get16le(s); - if ( pal_idx >= tga_palette_len ) { - // invalid index - pal_idx = 0; - } - pal_idx *= tga_comp; - for (j = 0; j < tga_comp; ++j) { - raw_data[j] = tga_palette[pal_idx+j]; - } - } else if(tga_rgb16) { - STBI_ASSERT(tga_comp == STBI_rgb); - stbi__tga_read_rgb16(s, raw_data); - } else { - // read in the data raw - for (j = 0; j < tga_comp; ++j) { - raw_data[j] = stbi__get8(s); - } - } - // clear the reading flag for the next pixel - read_next_pixel = 0; - } // end of reading a pixel - - // copy data - for (j = 0; j < tga_comp; ++j) - tga_data[i*tga_comp+j] = raw_data[j]; - - // in case we're in RLE mode, keep counting down - --RLE_count; - } - // do I need to invert the image? - if ( tga_inverted ) - { - for (j = 0; j*2 < tga_height; ++j) - { - int index1 = j * tga_width * tga_comp; - int index2 = (tga_height - 1 - j) * tga_width * tga_comp; - for (i = tga_width * tga_comp; i > 0; --i) - { - unsigned char temp = tga_data[index1]; - tga_data[index1] = tga_data[index2]; - tga_data[index2] = temp; - ++index1; - ++index2; - } - } - } - // clear my palette, if I had one - if ( tga_palette != NULL ) - { - STBI_FREE( tga_palette ); - } - } - - // swap RGB - if the source data was RGB16, it already is in the right order - if (tga_comp >= 3 && !tga_rgb16) - { - unsigned char* tga_pixel = tga_data; - for (i=0; i < tga_width * tga_height; ++i) - { - unsigned char temp = tga_pixel[0]; - tga_pixel[0] = tga_pixel[2]; - tga_pixel[2] = temp; - tga_pixel += tga_comp; - } - } - - // convert to target component count - if (req_comp && req_comp != tga_comp) - tga_data = stbi__convert_format(tga_data, tga_comp, req_comp, tga_width, tga_height); - - // the things I do to get rid of an error message, and yet keep - // Microsoft's C compilers happy... [8^( - tga_palette_start = tga_palette_len = tga_palette_bits = - tga_x_origin = tga_y_origin = 0; - STBI_NOTUSED(tga_palette_start); - // OK, done - return tga_data; -} -#endif - -// ************************************************************************************************* -// Photoshop PSD loader -- PD by Thatcher Ulrich, integration by Nicolas Schulz, tweaked by STB - -#ifndef STBI_NO_PSD -static int stbi__psd_test(stbi__context *s) -{ - int r = (stbi__get32be(s) == 0x38425053); - stbi__rewind(s); - return r; -} - -static int stbi__psd_decode_rle(stbi__context *s, stbi_uc *p, int pixelCount) -{ - int count, nleft, len; - - count = 0; - while ((nleft = pixelCount - count) > 0) { - len = stbi__get8(s); - if (len == 128) { - // No-op. - } else if (len < 128) { - // Copy next len+1 bytes literally. - len++; - if (len > nleft) return 0; // corrupt data - count += len; - while (len) { - *p = stbi__get8(s); - p += 4; - len--; - } - } else if (len > 128) { - stbi_uc val; - // Next -len+1 bytes in the dest are replicated from next source byte. - // (Interpret len as a negative 8-bit int.) - len = 257 - len; - if (len > nleft) return 0; // corrupt data - val = stbi__get8(s); - count += len; - while (len) { - *p = val; - p += 4; - len--; - } - } - } - - return 1; -} - -static void *stbi__psd_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri, int bpc) -{ - int pixelCount; - int channelCount, compression; - int channel, i; - int bitdepth; - int w,h; - stbi_uc *out; - STBI_NOTUSED(ri); - - // Check identifier - if (stbi__get32be(s) != 0x38425053) // "8BPS" - return stbi__errpuc("not PSD", "Corrupt PSD image"); - - // Check file type version. - if (stbi__get16be(s) != 1) - return stbi__errpuc("wrong version", "Unsupported version of PSD image"); - - // Skip 6 reserved bytes. - stbi__skip(s, 6 ); - - // Read the number of channels (R, G, B, A, etc). - channelCount = stbi__get16be(s); - if (channelCount < 0 || channelCount > 16) - return stbi__errpuc("wrong channel count", "Unsupported number of channels in PSD image"); - - // Read the rows and columns of the image. - h = stbi__get32be(s); - w = stbi__get32be(s); - - if (h > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (w > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - // Make sure the depth is 8 bits. - bitdepth = stbi__get16be(s); - if (bitdepth != 8 && bitdepth != 16) - return stbi__errpuc("unsupported bit depth", "PSD bit depth is not 8 or 16 bit"); - - // Make sure the color mode is RGB. - // Valid options are: - // 0: Bitmap - // 1: Grayscale - // 2: Indexed color - // 3: RGB color - // 4: CMYK color - // 7: Multichannel - // 8: Duotone - // 9: Lab color - if (stbi__get16be(s) != 3) - return stbi__errpuc("wrong color format", "PSD is not in RGB color format"); - - // Skip the Mode Data. (It's the palette for indexed color; other info for other modes.) - stbi__skip(s,stbi__get32be(s) ); - - // Skip the image resources. (resolution, pen tool paths, etc) - stbi__skip(s, stbi__get32be(s) ); - - // Skip the reserved data. - stbi__skip(s, stbi__get32be(s) ); - - // Find out if the data is compressed. - // Known values: - // 0: no compression - // 1: RLE compressed - compression = stbi__get16be(s); - if (compression > 1) - return stbi__errpuc("bad compression", "PSD has an unknown compression format"); - - // Check size - if (!stbi__mad3sizes_valid(4, w, h, 0)) - return stbi__errpuc("too large", "Corrupt PSD"); - - // Create the destination image. - - if (!compression && bitdepth == 16 && bpc == 16) { - out = (stbi_uc *) stbi__malloc_mad3(8, w, h, 0); - ri->bits_per_channel = 16; - } else - out = (stbi_uc *) stbi__malloc(4 * w*h); - - if (!out) return stbi__errpuc("outofmem", "Out of memory"); - pixelCount = w*h; - - // Initialize the data to zero. - //memset( out, 0, pixelCount * 4 ); - - // Finally, the image data. - if (compression) { - // RLE as used by .PSD and .TIFF - // Loop until you get the number of unpacked bytes you are expecting: - // Read the next source byte into n. - // If n is between 0 and 127 inclusive, copy the next n+1 bytes literally. - // Else if n is between -127 and -1 inclusive, copy the next byte -n+1 times. - // Else if n is 128, noop. - // Endloop - - // The RLE-compressed data is preceded by a 2-byte data count for each row in the data, - // which we're going to just skip. - stbi__skip(s, h * channelCount * 2 ); - - // Read the RLE data by channel. - for (channel = 0; channel < 4; channel++) { - stbi_uc *p; - - p = out+channel; - if (channel >= channelCount) { - // Fill this channel with default data. - for (i = 0; i < pixelCount; i++, p += 4) - *p = (channel == 3 ? 255 : 0); - } else { - // Read the RLE data. - if (!stbi__psd_decode_rle(s, p, pixelCount)) { - STBI_FREE(out); - return stbi__errpuc("corrupt", "bad RLE data"); - } - } - } - - } else { - // We're at the raw image data. It's each channel in order (Red, Green, Blue, Alpha, ...) - // where each channel consists of an 8-bit (or 16-bit) value for each pixel in the image. - - // Read the data by channel. - for (channel = 0; channel < 4; channel++) { - if (channel >= channelCount) { - // Fill this channel with default data. - if (bitdepth == 16 && bpc == 16) { - stbi__uint16 *q = ((stbi__uint16 *) out) + channel; - stbi__uint16 val = channel == 3 ? 65535 : 0; - for (i = 0; i < pixelCount; i++, q += 4) - *q = val; - } else { - stbi_uc *p = out+channel; - stbi_uc val = channel == 3 ? 255 : 0; - for (i = 0; i < pixelCount; i++, p += 4) - *p = val; - } - } else { - if (ri->bits_per_channel == 16) { // output bpc - stbi__uint16 *q = ((stbi__uint16 *) out) + channel; - for (i = 0; i < pixelCount; i++, q += 4) - *q = (stbi__uint16) stbi__get16be(s); - } else { - stbi_uc *p = out+channel; - if (bitdepth == 16) { // input bpc - for (i = 0; i < pixelCount; i++, p += 4) - *p = (stbi_uc) (stbi__get16be(s) >> 8); - } else { - for (i = 0; i < pixelCount; i++, p += 4) - *p = stbi__get8(s); - } - } - } - } - } - - // remove weird white matte from PSD - if (channelCount >= 4) { - if (ri->bits_per_channel == 16) { - for (i=0; i < w*h; ++i) { - stbi__uint16 *pixel = (stbi__uint16 *) out + 4*i; - if (pixel[3] != 0 && pixel[3] != 65535) { - float a = pixel[3] / 65535.0f; - float ra = 1.0f / a; - float inv_a = 65535.0f * (1 - ra); - pixel[0] = (stbi__uint16) (pixel[0]*ra + inv_a); - pixel[1] = (stbi__uint16) (pixel[1]*ra + inv_a); - pixel[2] = (stbi__uint16) (pixel[2]*ra + inv_a); - } - } - } else { - for (i=0; i < w*h; ++i) { - unsigned char *pixel = out + 4*i; - if (pixel[3] != 0 && pixel[3] != 255) { - float a = pixel[3] / 255.0f; - float ra = 1.0f / a; - float inv_a = 255.0f * (1 - ra); - pixel[0] = (unsigned char) (pixel[0]*ra + inv_a); - pixel[1] = (unsigned char) (pixel[1]*ra + inv_a); - pixel[2] = (unsigned char) (pixel[2]*ra + inv_a); - } - } - } - } - - // convert to desired output format - if (req_comp && req_comp != 4) { - if (ri->bits_per_channel == 16) - out = (stbi_uc *) stbi__convert_format16((stbi__uint16 *) out, 4, req_comp, w, h); - else - out = stbi__convert_format(out, 4, req_comp, w, h); - if (out == NULL) return out; // stbi__convert_format frees input on failure - } - - if (comp) *comp = 4; - *y = h; - *x = w; - - return out; -} -#endif - -// ************************************************************************************************* -// Softimage PIC loader -// by Tom Seddon -// -// See http://softimage.wiki.softimage.com/index.php/INFO:_PIC_file_format -// See http://ozviz.wasp.uwa.edu.au/~pbourke/dataformats/softimagepic/ - -#ifndef STBI_NO_PIC -static int stbi__pic_is4(stbi__context *s,const char *str) -{ - int i; - for (i=0; i<4; ++i) - if (stbi__get8(s) != (stbi_uc)str[i]) - return 0; - - return 1; -} - -static int stbi__pic_test_core(stbi__context *s) -{ - int i; - - if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) - return 0; - - for(i=0;i<84;++i) - stbi__get8(s); - - if (!stbi__pic_is4(s,"PICT")) - return 0; - - return 1; -} - -typedef struct -{ - stbi_uc size,type,channel; -} stbi__pic_packet; - -static stbi_uc *stbi__readval(stbi__context *s, int channel, stbi_uc *dest) -{ - int mask=0x80, i; - - for (i=0; i<4; ++i, mask>>=1) { - if (channel & mask) { - if (stbi__at_eof(s)) return stbi__errpuc("bad file","PIC file too short"); - dest[i]=stbi__get8(s); - } - } - - return dest; -} - -static void stbi__copyval(int channel,stbi_uc *dest,const stbi_uc *src) -{ - int mask=0x80,i; - - for (i=0;i<4; ++i, mask>>=1) - if (channel&mask) - dest[i]=src[i]; -} - -static stbi_uc *stbi__pic_load_core(stbi__context *s,int width,int height,int *comp, stbi_uc *result) -{ - int act_comp=0,num_packets=0,y,chained; - stbi__pic_packet packets[10]; - - // this will (should...) cater for even some bizarre stuff like having data - // for the same channel in multiple packets. - do { - stbi__pic_packet *packet; - - if (num_packets==sizeof(packets)/sizeof(packets[0])) - return stbi__errpuc("bad format","too many packets"); - - packet = &packets[num_packets++]; - - chained = stbi__get8(s); - packet->size = stbi__get8(s); - packet->type = stbi__get8(s); - packet->channel = stbi__get8(s); - - act_comp |= packet->channel; - - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (reading packets)"); - if (packet->size != 8) return stbi__errpuc("bad format","packet isn't 8bpp"); - } while (chained); - - *comp = (act_comp & 0x10 ? 4 : 3); // has alpha channel? - - for(y=0; ytype) { - default: - return stbi__errpuc("bad format","packet has bad compression type"); - - case 0: {//uncompressed - int x; - - for(x=0;xchannel,dest)) - return 0; - break; - } - - case 1://Pure RLE - { - int left=width, i; - - while (left>0) { - stbi_uc count,value[4]; - - count=stbi__get8(s); - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pure read count)"); - - if (count > left) - count = (stbi_uc) left; - - if (!stbi__readval(s,packet->channel,value)) return 0; - - for(i=0; ichannel,dest,value); - left -= count; - } - } - break; - - case 2: {//Mixed RLE - int left=width; - while (left>0) { - int count = stbi__get8(s), i; - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (mixed read count)"); - - if (count >= 128) { // Repeated - stbi_uc value[4]; - - if (count==128) - count = stbi__get16be(s); - else - count -= 127; - if (count > left) - return stbi__errpuc("bad file","scanline overrun"); - - if (!stbi__readval(s,packet->channel,value)) - return 0; - - for(i=0;ichannel,dest,value); - } else { // Raw - ++count; - if (count>left) return stbi__errpuc("bad file","scanline overrun"); - - for(i=0;ichannel,dest)) - return 0; - } - left-=count; - } - break; - } - } - } - } - - return result; -} - -static void *stbi__pic_load(stbi__context *s,int *px,int *py,int *comp,int req_comp, stbi__result_info *ri) -{ - stbi_uc *result; - int i, x,y, internal_comp; - STBI_NOTUSED(ri); - - if (!comp) comp = &internal_comp; - - for (i=0; i<92; ++i) - stbi__get8(s); - - x = stbi__get16be(s); - y = stbi__get16be(s); - - if (y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - if (stbi__at_eof(s)) return stbi__errpuc("bad file","file too short (pic header)"); - if (!stbi__mad3sizes_valid(x, y, 4, 0)) return stbi__errpuc("too large", "PIC image too large to decode"); - - stbi__get32be(s); //skip `ratio' - stbi__get16be(s); //skip `fields' - stbi__get16be(s); //skip `pad' - - // intermediate buffer is RGBA - result = (stbi_uc *) stbi__malloc_mad3(x, y, 4, 0); - memset(result, 0xff, x*y*4); - - if (!stbi__pic_load_core(s,x,y,comp, result)) { - STBI_FREE(result); - result=0; - } - *px = x; - *py = y; - if (req_comp == 0) req_comp = *comp; - result=stbi__convert_format(result,4,req_comp,x,y); - - return result; -} - -static int stbi__pic_test(stbi__context *s) -{ - int r = stbi__pic_test_core(s); - stbi__rewind(s); - return r; -} -#endif - -// ************************************************************************************************* -// GIF loader -- public domain by Jean-Marc Lienher -- simplified/shrunk by stb - -#ifndef STBI_NO_GIF -typedef struct -{ - stbi__int16 prefix; - stbi_uc first; - stbi_uc suffix; -} stbi__gif_lzw; - -typedef struct -{ - int w,h; - stbi_uc *out; // output buffer (always 4 components) - stbi_uc *background; // The current "background" as far as a gif is concerned - stbi_uc *history; - int flags, bgindex, ratio, transparent, eflags; - stbi_uc pal[256][4]; - stbi_uc lpal[256][4]; - stbi__gif_lzw codes[8192]; - stbi_uc *color_table; - int parse, step; - int lflags; - int start_x, start_y; - int max_x, max_y; - int cur_x, cur_y; - int line_size; - int delay; -} stbi__gif; - -static int stbi__gif_test_raw(stbi__context *s) -{ - int sz; - if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') return 0; - sz = stbi__get8(s); - if (sz != '9' && sz != '7') return 0; - if (stbi__get8(s) != 'a') return 0; - return 1; -} - -static int stbi__gif_test(stbi__context *s) -{ - int r = stbi__gif_test_raw(s); - stbi__rewind(s); - return r; -} - -static void stbi__gif_parse_colortable(stbi__context *s, stbi_uc pal[256][4], int num_entries, int transp) -{ - int i; - for (i=0; i < num_entries; ++i) { - pal[i][2] = stbi__get8(s); - pal[i][1] = stbi__get8(s); - pal[i][0] = stbi__get8(s); - pal[i][3] = transp == i ? 0 : 255; - } -} - -static int stbi__gif_header(stbi__context *s, stbi__gif *g, int *comp, int is_info) -{ - stbi_uc version; - if (stbi__get8(s) != 'G' || stbi__get8(s) != 'I' || stbi__get8(s) != 'F' || stbi__get8(s) != '8') - return stbi__err("not GIF", "Corrupt GIF"); - - version = stbi__get8(s); - if (version != '7' && version != '9') return stbi__err("not GIF", "Corrupt GIF"); - if (stbi__get8(s) != 'a') return stbi__err("not GIF", "Corrupt GIF"); - - stbi__g_failure_reason = ""; - g->w = stbi__get16le(s); - g->h = stbi__get16le(s); - g->flags = stbi__get8(s); - g->bgindex = stbi__get8(s); - g->ratio = stbi__get8(s); - g->transparent = -1; - - if (g->w > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - if (g->h > STBI_MAX_DIMENSIONS) return stbi__err("too large","Very large image (corrupt?)"); - - if (comp != 0) *comp = 4; // can't actually tell whether it's 3 or 4 until we parse the comments - - if (is_info) return 1; - - if (g->flags & 0x80) - stbi__gif_parse_colortable(s,g->pal, 2 << (g->flags & 7), -1); - - return 1; -} - -static int stbi__gif_info_raw(stbi__context *s, int *x, int *y, int *comp) -{ - stbi__gif* g = (stbi__gif*) stbi__malloc(sizeof(stbi__gif)); - if (!stbi__gif_header(s, g, comp, 1)) { - STBI_FREE(g); - stbi__rewind( s ); - return 0; - } - if (x) *x = g->w; - if (y) *y = g->h; - STBI_FREE(g); - return 1; -} - -static void stbi__out_gif_code(stbi__gif *g, stbi__uint16 code) -{ - stbi_uc *p, *c; - int idx; - - // recurse to decode the prefixes, since the linked-list is backwards, - // and working backwards through an interleaved image would be nasty - if (g->codes[code].prefix >= 0) - stbi__out_gif_code(g, g->codes[code].prefix); - - if (g->cur_y >= g->max_y) return; - - idx = g->cur_x + g->cur_y; - p = &g->out[idx]; - g->history[idx / 4] = 1; - - c = &g->color_table[g->codes[code].suffix * 4]; - if (c[3] > 128) { // don't render transparent pixels; - p[0] = c[2]; - p[1] = c[1]; - p[2] = c[0]; - p[3] = c[3]; - } - g->cur_x += 4; - - if (g->cur_x >= g->max_x) { - g->cur_x = g->start_x; - g->cur_y += g->step; - - while (g->cur_y >= g->max_y && g->parse > 0) { - g->step = (1 << g->parse) * g->line_size; - g->cur_y = g->start_y + (g->step >> 1); - --g->parse; - } - } -} - -static stbi_uc *stbi__process_gif_raster(stbi__context *s, stbi__gif *g) -{ - stbi_uc lzw_cs; - stbi__int32 len, init_code; - stbi__uint32 first; - stbi__int32 codesize, codemask, avail, oldcode, bits, valid_bits, clear; - stbi__gif_lzw *p; - - lzw_cs = stbi__get8(s); - if (lzw_cs > 12) return NULL; - clear = 1 << lzw_cs; - first = 1; - codesize = lzw_cs + 1; - codemask = (1 << codesize) - 1; - bits = 0; - valid_bits = 0; - for (init_code = 0; init_code < clear; init_code++) { - g->codes[init_code].prefix = -1; - g->codes[init_code].first = (stbi_uc) init_code; - g->codes[init_code].suffix = (stbi_uc) init_code; - } - - // support no starting clear code - avail = clear+2; - oldcode = -1; - - len = 0; - for(;;) { - if (valid_bits < codesize) { - if (len == 0) { - len = stbi__get8(s); // start new block - if (len == 0) - return g->out; - } - --len; - bits |= (stbi__int32) stbi__get8(s) << valid_bits; - valid_bits += 8; - } else { - stbi__int32 code = bits & codemask; - bits >>= codesize; - valid_bits -= codesize; - // @OPTIMIZE: is there some way we can accelerate the non-clear path? - if (code == clear) { // clear code - codesize = lzw_cs + 1; - codemask = (1 << codesize) - 1; - avail = clear + 2; - oldcode = -1; - first = 0; - } else if (code == clear + 1) { // end of stream code - stbi__skip(s, len); - while ((len = stbi__get8(s)) > 0) - stbi__skip(s,len); - return g->out; - } else if (code <= avail) { - if (first) { - return stbi__errpuc("no clear code", "Corrupt GIF"); - } - - if (oldcode >= 0) { - p = &g->codes[avail++]; - if (avail > 8192) { - return stbi__errpuc("too many codes", "Corrupt GIF"); - } - - p->prefix = (stbi__int16) oldcode; - p->first = g->codes[oldcode].first; - p->suffix = (code == avail) ? p->first : g->codes[code].first; - } else if (code == avail) - return stbi__errpuc("illegal code in raster", "Corrupt GIF"); - - stbi__out_gif_code(g, (stbi__uint16) code); - - if ((avail & codemask) == 0 && avail <= 0x0FFF) { - codesize++; - codemask = (1 << codesize) - 1; - } - - oldcode = code; - } else { - return stbi__errpuc("illegal code in raster", "Corrupt GIF"); - } - } - } -} - -// this function is designed to support animated gifs, although stb_image doesn't support it -// two back is the image from two frames ago, used for a very specific disposal format -static stbi_uc *stbi__gif_load_next(stbi__context *s, stbi__gif *g, int *comp, int req_comp, stbi_uc *two_back) -{ - int dispose; - int first_frame; - int pi; - int pcount; - STBI_NOTUSED(req_comp); - - // on first frame, any non-written pixels get the background colour (non-transparent) - first_frame = 0; - if (g->out == 0) { - if (!stbi__gif_header(s, g, comp,0)) return 0; // stbi__g_failure_reason set by stbi__gif_header - if (!stbi__mad3sizes_valid(4, g->w, g->h, 0)) - return stbi__errpuc("too large", "GIF image is too large"); - pcount = g->w * g->h; - g->out = (stbi_uc *) stbi__malloc(4 * pcount); - g->background = (stbi_uc *) stbi__malloc(4 * pcount); - g->history = (stbi_uc *) stbi__malloc(pcount); - if (!g->out || !g->background || !g->history) - return stbi__errpuc("outofmem", "Out of memory"); - - // image is treated as "transparent" at the start - ie, nothing overwrites the current background; - // background colour is only used for pixels that are not rendered first frame, after that "background" - // color refers to the color that was there the previous frame. - memset(g->out, 0x00, 4 * pcount); - memset(g->background, 0x00, 4 * pcount); // state of the background (starts transparent) - memset(g->history, 0x00, pcount); // pixels that were affected previous frame - first_frame = 1; - } else { - // second frame - how do we dispose of the previous one? - dispose = (g->eflags & 0x1C) >> 2; - pcount = g->w * g->h; - - if ((dispose == 3) && (two_back == 0)) { - dispose = 2; // if I don't have an image to revert back to, default to the old background - } - - if (dispose == 3) { // use previous graphic - for (pi = 0; pi < pcount; ++pi) { - if (g->history[pi]) { - memcpy( &g->out[pi * 4], &two_back[pi * 4], 4 ); - } - } - } else if (dispose == 2) { - // restore what was changed last frame to background before that frame; - for (pi = 0; pi < pcount; ++pi) { - if (g->history[pi]) { - memcpy( &g->out[pi * 4], &g->background[pi * 4], 4 ); - } - } - } else { - // This is a non-disposal case eithe way, so just - // leave the pixels as is, and they will become the new background - // 1: do not dispose - // 0: not specified. - } - - // background is what out is after the undoing of the previou frame; - memcpy( g->background, g->out, 4 * g->w * g->h ); - } - - // clear my history; - memset( g->history, 0x00, g->w * g->h ); // pixels that were affected previous frame - - for (;;) { - int tag = stbi__get8(s); - switch (tag) { - case 0x2C: /* Image Descriptor */ - { - stbi__int32 x, y, w, h; - stbi_uc *o; - - x = stbi__get16le(s); - y = stbi__get16le(s); - w = stbi__get16le(s); - h = stbi__get16le(s); - if (((x + w) > (g->w)) || ((y + h) > (g->h))) - return stbi__errpuc("bad Image Descriptor", "Corrupt GIF"); - - g->line_size = g->w * 4; - g->start_x = x * 4; - g->start_y = y * g->line_size; - g->max_x = g->start_x + w * 4; - g->max_y = g->start_y + h * g->line_size; - g->cur_x = g->start_x; - g->cur_y = g->start_y; - - // if the width of the specified rectangle is 0, that means - // we may not see *any* pixels or the image is malformed; - // to make sure this is caught, move the current y down to - // max_y (which is what out_gif_code checks). - if (w == 0) - g->cur_y = g->max_y; - - g->lflags = stbi__get8(s); - - if (g->lflags & 0x40) { - g->step = 8 * g->line_size; // first interlaced spacing - g->parse = 3; - } else { - g->step = g->line_size; - g->parse = 0; - } - - if (g->lflags & 0x80) { - stbi__gif_parse_colortable(s,g->lpal, 2 << (g->lflags & 7), g->eflags & 0x01 ? g->transparent : -1); - g->color_table = (stbi_uc *) g->lpal; - } else if (g->flags & 0x80) { - g->color_table = (stbi_uc *) g->pal; - } else - return stbi__errpuc("missing color table", "Corrupt GIF"); - - o = stbi__process_gif_raster(s, g); - if (!o) return NULL; - - // if this was the first frame, - pcount = g->w * g->h; - if (first_frame && (g->bgindex > 0)) { - // if first frame, any pixel not drawn to gets the background color - for (pi = 0; pi < pcount; ++pi) { - if (g->history[pi] == 0) { - g->pal[g->bgindex][3] = 255; // just in case it was made transparent, undo that; It will be reset next frame if need be; - memcpy( &g->out[pi * 4], &g->pal[g->bgindex], 4 ); - } - } - } - - return o; - } - - case 0x21: // Comment Extension. - { - int len; - int ext = stbi__get8(s); - if (ext == 0xF9) { // Graphic Control Extension. - len = stbi__get8(s); - if (len == 4) { - g->eflags = stbi__get8(s); - g->delay = 10 * stbi__get16le(s); // delay - 1/100th of a second, saving as 1/1000ths. - - // unset old transparent - if (g->transparent >= 0) { - g->pal[g->transparent][3] = 255; - } - if (g->eflags & 0x01) { - g->transparent = stbi__get8(s); - if (g->transparent >= 0) { - g->pal[g->transparent][3] = 0; - } - } else { - // don't need transparent - stbi__skip(s, 1); - g->transparent = -1; - } - } else { - stbi__skip(s, len); - break; - } - } - while ((len = stbi__get8(s)) != 0) { - stbi__skip(s, len); - } - break; - } - - case 0x3B: // gif stream termination code - return (stbi_uc *) s; // using '1' causes warning on some compilers - - default: - return stbi__errpuc("unknown code", "Corrupt GIF"); - } - } -} - -static void *stbi__load_gif_main(stbi__context *s, int **delays, int *x, int *y, int *z, int *comp, int req_comp) -{ - if (stbi__gif_test(s)) { - int layers = 0; - stbi_uc *u = 0; - stbi_uc *out = 0; - stbi_uc *two_back = 0; - stbi__gif g; - int stride; - int out_size = 0; - int delays_size = 0; - memset(&g, 0, sizeof(g)); - if (delays) { - *delays = 0; - } - - do { - u = stbi__gif_load_next(s, &g, comp, req_comp, two_back); - if (u == (stbi_uc *) s) u = 0; // end of animated gif marker - - if (u) { - *x = g.w; - *y = g.h; - ++layers; - stride = g.w * g.h * 4; - - if (out) { - void *tmp = (stbi_uc*) STBI_REALLOC_SIZED( out, out_size, layers * stride ); - if (NULL == tmp) { - STBI_FREE(g.out); - STBI_FREE(g.history); - STBI_FREE(g.background); - return stbi__errpuc("outofmem", "Out of memory"); - } - else { - out = (stbi_uc*) tmp; - out_size = layers * stride; - } - - if (delays) { - *delays = (int*) STBI_REALLOC_SIZED( *delays, delays_size, sizeof(int) * layers ); - delays_size = layers * sizeof(int); - } - } else { - out = (stbi_uc*)stbi__malloc( layers * stride ); - out_size = layers * stride; - if (delays) { - *delays = (int*) stbi__malloc( layers * sizeof(int) ); - delays_size = layers * sizeof(int); - } - } - memcpy( out + ((layers - 1) * stride), u, stride ); - if (layers >= 2) { - two_back = out - 2 * stride; - } - - if (delays) { - (*delays)[layers - 1U] = g.delay; - } - } - } while (u != 0); - - // free temp buffer; - STBI_FREE(g.out); - STBI_FREE(g.history); - STBI_FREE(g.background); - - // do the final conversion after loading everything; - if (req_comp && req_comp != 4) - out = stbi__convert_format(out, 4, req_comp, layers * g.w, g.h); - - *z = layers; - return out; - } else { - return stbi__errpuc("not GIF", "Image was not as a gif type."); - } -} - -static void *stbi__gif_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi_uc *u = 0; - stbi__gif g; - memset(&g, 0, sizeof(g)); - STBI_NOTUSED(ri); - - u = stbi__gif_load_next(s, &g, comp, req_comp, 0); - if (u == (stbi_uc *) s) u = 0; // end of animated gif marker - if (u) { - *x = g.w; - *y = g.h; - - // moved conversion to after successful load so that the same - // can be done for multiple frames. - if (req_comp && req_comp != 4) - u = stbi__convert_format(u, 4, req_comp, g.w, g.h); - } else if (g.out) { - // if there was an error and we allocated an image buffer, free it! - STBI_FREE(g.out); - } - - // free buffers needed for multiple frame loading; - STBI_FREE(g.history); - STBI_FREE(g.background); - - return u; -} - -static int stbi__gif_info(stbi__context *s, int *x, int *y, int *comp) -{ - return stbi__gif_info_raw(s,x,y,comp); -} -#endif - -// ************************************************************************************************* -// Radiance RGBE HDR loader -// originally by Nicolas Schulz -#ifndef STBI_NO_HDR -static int stbi__hdr_test_core(stbi__context *s, const char *signature) -{ - int i; - for (i=0; signature[i]; ++i) - if (stbi__get8(s) != signature[i]) - return 0; - stbi__rewind(s); - return 1; -} - -static int stbi__hdr_test(stbi__context* s) -{ - int r = stbi__hdr_test_core(s, "#?RADIANCE\n"); - stbi__rewind(s); - if(!r) { - r = stbi__hdr_test_core(s, "#?RGBE\n"); - stbi__rewind(s); - } - return r; -} - -#define STBI__HDR_BUFLEN 1024 -static char *stbi__hdr_gettoken(stbi__context *z, char *buffer) -{ - int len=0; - char c = '\0'; - - c = (char) stbi__get8(z); - - while (!stbi__at_eof(z) && c != '\n') { - buffer[len++] = c; - if (len == STBI__HDR_BUFLEN-1) { - // flush to end of line - while (!stbi__at_eof(z) && stbi__get8(z) != '\n') - ; - break; - } - c = (char) stbi__get8(z); - } - - buffer[len] = 0; - return buffer; -} - -static void stbi__hdr_convert(float *output, stbi_uc *input, int req_comp) -{ - if ( input[3] != 0 ) { - float f1; - // Exponent - f1 = (float) ldexp(1.0f, input[3] - (int)(128 + 8)); - if (req_comp <= 2) - output[0] = (input[0] + input[1] + input[2]) * f1 / 3; - else { - output[0] = input[0] * f1; - output[1] = input[1] * f1; - output[2] = input[2] * f1; - } - if (req_comp == 2) output[1] = 1; - if (req_comp == 4) output[3] = 1; - } else { - switch (req_comp) { - case 4: output[3] = 1; /* fallthrough */ - case 3: output[0] = output[1] = output[2] = 0; - break; - case 2: output[1] = 1; /* fallthrough */ - case 1: output[0] = 0; - break; - } - } -} - -static float *stbi__hdr_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - char buffer[STBI__HDR_BUFLEN]; - char *token; - int valid = 0; - int width, height; - stbi_uc *scanline; - float *hdr_data; - int len; - unsigned char count, value; - int i, j, k, c1,c2, z; - const char *headerToken; - STBI_NOTUSED(ri); - - // Check identifier - headerToken = stbi__hdr_gettoken(s,buffer); - if (strcmp(headerToken, "#?RADIANCE") != 0 && strcmp(headerToken, "#?RGBE") != 0) - return stbi__errpf("not HDR", "Corrupt HDR image"); - - // Parse header - for(;;) { - token = stbi__hdr_gettoken(s,buffer); - if (token[0] == 0) break; - if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; - } - - if (!valid) return stbi__errpf("unsupported format", "Unsupported HDR format"); - - // Parse width and height - // can't use sscanf() if we're not using stdio! - token = stbi__hdr_gettoken(s,buffer); - if (strncmp(token, "-Y ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); - token += 3; - height = (int) strtol(token, &token, 10); - while (*token == ' ') ++token; - if (strncmp(token, "+X ", 3)) return stbi__errpf("unsupported data layout", "Unsupported HDR format"); - token += 3; - width = (int) strtol(token, NULL, 10); - - if (height > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); - if (width > STBI_MAX_DIMENSIONS) return stbi__errpf("too large","Very large image (corrupt?)"); - - *x = width; - *y = height; - - if (comp) *comp = 3; - if (req_comp == 0) req_comp = 3; - - if (!stbi__mad4sizes_valid(width, height, req_comp, sizeof(float), 0)) - return stbi__errpf("too large", "HDR image is too large"); - - // Read data - hdr_data = (float *) stbi__malloc_mad4(width, height, req_comp, sizeof(float), 0); - if (!hdr_data) - return stbi__errpf("outofmem", "Out of memory"); - - // Load image data - // image data is stored as some number of sca - if ( width < 8 || width >= 32768) { - // Read flat data - for (j=0; j < height; ++j) { - for (i=0; i < width; ++i) { - stbi_uc rgbe[4]; - main_decode_loop: - stbi__getn(s, rgbe, 4); - stbi__hdr_convert(hdr_data + j * width * req_comp + i * req_comp, rgbe, req_comp); - } - } - } else { - // Read RLE-encoded data - scanline = NULL; - - for (j = 0; j < height; ++j) { - c1 = stbi__get8(s); - c2 = stbi__get8(s); - len = stbi__get8(s); - if (c1 != 2 || c2 != 2 || (len & 0x80)) { - // not run-length encoded, so we have to actually use THIS data as a decoded - // pixel (note this can't be a valid pixel--one of RGB must be >= 128) - stbi_uc rgbe[4]; - rgbe[0] = (stbi_uc) c1; - rgbe[1] = (stbi_uc) c2; - rgbe[2] = (stbi_uc) len; - rgbe[3] = (stbi_uc) stbi__get8(s); - stbi__hdr_convert(hdr_data, rgbe, req_comp); - i = 1; - j = 0; - STBI_FREE(scanline); - goto main_decode_loop; // yes, this makes no sense - } - len <<= 8; - len |= stbi__get8(s); - if (len != width) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("invalid decoded scanline length", "corrupt HDR"); } - if (scanline == NULL) { - scanline = (stbi_uc *) stbi__malloc_mad2(width, 4, 0); - if (!scanline) { - STBI_FREE(hdr_data); - return stbi__errpf("outofmem", "Out of memory"); - } - } - - for (k = 0; k < 4; ++k) { - int nleft; - i = 0; - while ((nleft = width - i) > 0) { - count = stbi__get8(s); - if (count > 128) { - // Run - value = stbi__get8(s); - count -= 128; - if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } - for (z = 0; z < count; ++z) - scanline[i++ * 4 + k] = value; - } else { - // Dump - if (count > nleft) { STBI_FREE(hdr_data); STBI_FREE(scanline); return stbi__errpf("corrupt", "bad RLE data in HDR"); } - for (z = 0; z < count; ++z) - scanline[i++ * 4 + k] = stbi__get8(s); - } - } - } - for (i=0; i < width; ++i) - stbi__hdr_convert(hdr_data+(j*width + i)*req_comp, scanline + i*4, req_comp); - } - if (scanline) - STBI_FREE(scanline); - } - - return hdr_data; -} - -static int stbi__hdr_info(stbi__context *s, int *x, int *y, int *comp) -{ - char buffer[STBI__HDR_BUFLEN]; - char *token; - int valid = 0; - int dummy; - - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - - if (stbi__hdr_test(s) == 0) { - stbi__rewind( s ); - return 0; - } - - for(;;) { - token = stbi__hdr_gettoken(s,buffer); - if (token[0] == 0) break; - if (strcmp(token, "FORMAT=32-bit_rle_rgbe") == 0) valid = 1; - } - - if (!valid) { - stbi__rewind( s ); - return 0; - } - token = stbi__hdr_gettoken(s,buffer); - if (strncmp(token, "-Y ", 3)) { - stbi__rewind( s ); - return 0; - } - token += 3; - *y = (int) strtol(token, &token, 10); - while (*token == ' ') ++token; - if (strncmp(token, "+X ", 3)) { - stbi__rewind( s ); - return 0; - } - token += 3; - *x = (int) strtol(token, NULL, 10); - *comp = 3; - return 1; -} -#endif // STBI_NO_HDR - -#ifndef STBI_NO_BMP -static int stbi__bmp_info(stbi__context *s, int *x, int *y, int *comp) -{ - void *p; - stbi__bmp_data info; - - info.all_a = 255; - p = stbi__bmp_parse_header(s, &info); - stbi__rewind( s ); - if (p == NULL) - return 0; - if (x) *x = s->img_x; - if (y) *y = s->img_y; - if (comp) { - if (info.bpp == 24 && info.ma == 0xff000000) - *comp = 3; - else - *comp = info.ma ? 4 : 3; - } - return 1; -} -#endif - -#ifndef STBI_NO_PSD -static int stbi__psd_info(stbi__context *s, int *x, int *y, int *comp) -{ - int channelCount, dummy, depth; - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - if (stbi__get32be(s) != 0x38425053) { - stbi__rewind( s ); - return 0; - } - if (stbi__get16be(s) != 1) { - stbi__rewind( s ); - return 0; - } - stbi__skip(s, 6); - channelCount = stbi__get16be(s); - if (channelCount < 0 || channelCount > 16) { - stbi__rewind( s ); - return 0; - } - *y = stbi__get32be(s); - *x = stbi__get32be(s); - depth = stbi__get16be(s); - if (depth != 8 && depth != 16) { - stbi__rewind( s ); - return 0; - } - if (stbi__get16be(s) != 3) { - stbi__rewind( s ); - return 0; - } - *comp = 4; - return 1; -} - -static int stbi__psd_is16(stbi__context *s) -{ - int channelCount, depth; - if (stbi__get32be(s) != 0x38425053) { - stbi__rewind( s ); - return 0; - } - if (stbi__get16be(s) != 1) { - stbi__rewind( s ); - return 0; - } - stbi__skip(s, 6); - channelCount = stbi__get16be(s); - if (channelCount < 0 || channelCount > 16) { - stbi__rewind( s ); - return 0; - } - (void) stbi__get32be(s); - (void) stbi__get32be(s); - depth = stbi__get16be(s); - if (depth != 16) { - stbi__rewind( s ); - return 0; - } - return 1; -} -#endif - -#ifndef STBI_NO_PIC -static int stbi__pic_info(stbi__context *s, int *x, int *y, int *comp) -{ - int act_comp=0,num_packets=0,chained,dummy; - stbi__pic_packet packets[10]; - - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - - if (!stbi__pic_is4(s,"\x53\x80\xF6\x34")) { - stbi__rewind(s); - return 0; - } - - stbi__skip(s, 88); - - *x = stbi__get16be(s); - *y = stbi__get16be(s); - if (stbi__at_eof(s)) { - stbi__rewind( s); - return 0; - } - if ( (*x) != 0 && (1 << 28) / (*x) < (*y)) { - stbi__rewind( s ); - return 0; - } - - stbi__skip(s, 8); - - do { - stbi__pic_packet *packet; - - if (num_packets==sizeof(packets)/sizeof(packets[0])) - return 0; - - packet = &packets[num_packets++]; - chained = stbi__get8(s); - packet->size = stbi__get8(s); - packet->type = stbi__get8(s); - packet->channel = stbi__get8(s); - act_comp |= packet->channel; - - if (stbi__at_eof(s)) { - stbi__rewind( s ); - return 0; - } - if (packet->size != 8) { - stbi__rewind( s ); - return 0; - } - } while (chained); - - *comp = (act_comp & 0x10 ? 4 : 3); - - return 1; -} -#endif - -// ************************************************************************************************* -// Portable Gray Map and Portable Pixel Map loader -// by Ken Miller -// -// PGM: http://netpbm.sourceforge.net/doc/pgm.html -// PPM: http://netpbm.sourceforge.net/doc/ppm.html -// -// Known limitations: -// Does not support comments in the header section -// Does not support ASCII image data (formats P2 and P3) -// Does not support 16-bit-per-channel - -#ifndef STBI_NO_PNM - -static int stbi__pnm_test(stbi__context *s) -{ - char p, t; - p = (char) stbi__get8(s); - t = (char) stbi__get8(s); - if (p != 'P' || (t != '5' && t != '6')) { - stbi__rewind( s ); - return 0; - } - return 1; -} - -static void *stbi__pnm_load(stbi__context *s, int *x, int *y, int *comp, int req_comp, stbi__result_info *ri) -{ - stbi_uc *out; - STBI_NOTUSED(ri); - - if (!stbi__pnm_info(s, (int *)&s->img_x, (int *)&s->img_y, (int *)&s->img_n)) - return 0; - - if (s->img_y > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - if (s->img_x > STBI_MAX_DIMENSIONS) return stbi__errpuc("too large","Very large image (corrupt?)"); - - *x = s->img_x; - *y = s->img_y; - if (comp) *comp = s->img_n; - - if (!stbi__mad3sizes_valid(s->img_n, s->img_x, s->img_y, 0)) - return stbi__errpuc("too large", "PNM too large"); - - out = (stbi_uc *) stbi__malloc_mad3(s->img_n, s->img_x, s->img_y, 0); - if (!out) return stbi__errpuc("outofmem", "Out of memory"); - stbi__getn(s, out, s->img_n * s->img_x * s->img_y); - - if (req_comp && req_comp != s->img_n) { - out = stbi__convert_format(out, s->img_n, req_comp, s->img_x, s->img_y); - if (out == NULL) return out; // stbi__convert_format frees input on failure - } - return out; -} - -static int stbi__pnm_isspace(char c) -{ - return c == ' ' || c == '\t' || c == '\n' || c == '\v' || c == '\f' || c == '\r'; -} - -static void stbi__pnm_skip_whitespace(stbi__context *s, char *c) -{ - for (;;) { - while (!stbi__at_eof(s) && stbi__pnm_isspace(*c)) - *c = (char) stbi__get8(s); - - if (stbi__at_eof(s) || *c != '#') - break; - - while (!stbi__at_eof(s) && *c != '\n' && *c != '\r' ) - *c = (char) stbi__get8(s); - } -} - -static int stbi__pnm_isdigit(char c) -{ - return c >= '0' && c <= '9'; -} - -static int stbi__pnm_getinteger(stbi__context *s, char *c) -{ - int value = 0; - - while (!stbi__at_eof(s) && stbi__pnm_isdigit(*c)) { - value = value*10 + (*c - '0'); - *c = (char) stbi__get8(s); - } - - return value; -} - -static int stbi__pnm_info(stbi__context *s, int *x, int *y, int *comp) -{ - int maxv, dummy; - char c, p, t; - - if (!x) x = &dummy; - if (!y) y = &dummy; - if (!comp) comp = &dummy; - - stbi__rewind(s); - - // Get identifier - p = (char) stbi__get8(s); - t = (char) stbi__get8(s); - if (p != 'P' || (t != '5' && t != '6')) { - stbi__rewind(s); - return 0; - } - - *comp = (t == '6') ? 3 : 1; // '5' is 1-component .pgm; '6' is 3-component .ppm - - c = (char) stbi__get8(s); - stbi__pnm_skip_whitespace(s, &c); - - *x = stbi__pnm_getinteger(s, &c); // read width - stbi__pnm_skip_whitespace(s, &c); - - *y = stbi__pnm_getinteger(s, &c); // read height - stbi__pnm_skip_whitespace(s, &c); - - maxv = stbi__pnm_getinteger(s, &c); // read max value - - if (maxv > 255) - return stbi__err("max value > 255", "PPM image not 8-bit"); - else - return 1; -} -#endif - -static int stbi__info_main(stbi__context *s, int *x, int *y, int *comp) -{ - #ifndef STBI_NO_JPEG - if (stbi__jpeg_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PNG - if (stbi__png_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_GIF - if (stbi__gif_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_BMP - if (stbi__bmp_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PSD - if (stbi__psd_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PIC - if (stbi__pic_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_PNM - if (stbi__pnm_info(s, x, y, comp)) return 1; - #endif - - #ifndef STBI_NO_HDR - if (stbi__hdr_info(s, x, y, comp)) return 1; - #endif - - // test tga last because it's a crappy test! - #ifndef STBI_NO_TGA - if (stbi__tga_info(s, x, y, comp)) - return 1; - #endif - return stbi__err("unknown image type", "Image not of any known type, or corrupt"); -} - -static int stbi__is_16_main(stbi__context *s) -{ - #ifndef STBI_NO_PNG - if (stbi__png_is16(s)) return 1; - #endif - - #ifndef STBI_NO_PSD - if (stbi__psd_is16(s)) return 1; - #endif - - return 0; -} - -#ifndef STBI_NO_STDIO -STBIDEF int stbi_info(char const *filename, int *x, int *y, int *comp) -{ - FILE *f = stbi__fopen(filename, "rb"); - int result; - if (!f) return stbi__err("can't fopen", "Unable to open file"); - result = stbi_info_from_file(f, x, y, comp); - fclose(f); - return result; -} - -STBIDEF int stbi_info_from_file(FILE *f, int *x, int *y, int *comp) -{ - int r; - stbi__context s; - long pos = ftell(f); - stbi__start_file(&s, f); - r = stbi__info_main(&s,x,y,comp); - fseek(f,pos,SEEK_SET); - return r; -} - -STBIDEF int stbi_is_16_bit(char const *filename) -{ - FILE *f = stbi__fopen(filename, "rb"); - int result; - if (!f) return stbi__err("can't fopen", "Unable to open file"); - result = stbi_is_16_bit_from_file(f); - fclose(f); - return result; -} - -STBIDEF int stbi_is_16_bit_from_file(FILE *f) -{ - int r; - stbi__context s; - long pos = ftell(f); - stbi__start_file(&s, f); - r = stbi__is_16_main(&s); - fseek(f,pos,SEEK_SET); - return r; -} -#endif // !STBI_NO_STDIO - -STBIDEF int stbi_info_from_memory(stbi_uc const *buffer, int len, int *x, int *y, int *comp) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__info_main(&s,x,y,comp); -} - -STBIDEF int stbi_info_from_callbacks(stbi_io_callbacks const *c, void *user, int *x, int *y, int *comp) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); - return stbi__info_main(&s,x,y,comp); -} - -STBIDEF int stbi_is_16_bit_from_memory(stbi_uc const *buffer, int len) -{ - stbi__context s; - stbi__start_mem(&s,buffer,len); - return stbi__is_16_main(&s); -} - -STBIDEF int stbi_is_16_bit_from_callbacks(stbi_io_callbacks const *c, void *user) -{ - stbi__context s; - stbi__start_callbacks(&s, (stbi_io_callbacks *) c, user); - return stbi__is_16_main(&s); -} - -#endif // STB_IMAGE_IMPLEMENTATION - -/* - revision history: - 2.20 (2019-02-07) support utf8 filenames in Windows; fix warnings and platform ifdefs - 2.19 (2018-02-11) fix warning - 2.18 (2018-01-30) fix warnings - 2.17 (2018-01-29) change sbti__shiftsigned to avoid clang -O2 bug - 1-bit BMP - *_is_16_bit api - avoid warnings - 2.16 (2017-07-23) all functions have 16-bit variants; - STBI_NO_STDIO works again; - compilation fixes; - fix rounding in unpremultiply; - optimize vertical flip; - disable raw_len validation; - documentation fixes - 2.15 (2017-03-18) fix png-1,2,4 bug; now all Imagenet JPGs decode; - warning fixes; disable run-time SSE detection on gcc; - uniform handling of optional "return" values; - thread-safe initialization of zlib tables - 2.14 (2017-03-03) remove deprecated STBI_JPEG_OLD; fixes for Imagenet JPGs - 2.13 (2016-11-29) add 16-bit API, only supported for PNG right now - 2.12 (2016-04-02) fix typo in 2.11 PSD fix that caused crashes - 2.11 (2016-04-02) allocate large structures on the stack - remove white matting for transparent PSD - fix reported channel count for PNG & BMP - re-enable SSE2 in non-gcc 64-bit - support RGB-formatted JPEG - read 16-bit PNGs (only as 8-bit) - 2.10 (2016-01-22) avoid warning introduced in 2.09 by STBI_REALLOC_SIZED - 2.09 (2016-01-16) allow comments in PNM files - 16-bit-per-pixel TGA (not bit-per-component) - info() for TGA could break due to .hdr handling - info() for BMP to shares code instead of sloppy parse - can use STBI_REALLOC_SIZED if allocator doesn't support realloc - code cleanup - 2.08 (2015-09-13) fix to 2.07 cleanup, reading RGB PSD as RGBA - 2.07 (2015-09-13) fix compiler warnings - partial animated GIF support - limited 16-bpc PSD support - #ifdef unused functions - bug with < 92 byte PIC,PNM,HDR,TGA - 2.06 (2015-04-19) fix bug where PSD returns wrong '*comp' value - 2.05 (2015-04-19) fix bug in progressive JPEG handling, fix warning - 2.04 (2015-04-15) try to re-enable SIMD on MinGW 64-bit - 2.03 (2015-04-12) extra corruption checking (mmozeiko) - stbi_set_flip_vertically_on_load (nguillemot) - fix NEON support; fix mingw support - 2.02 (2015-01-19) fix incorrect assert, fix warning - 2.01 (2015-01-17) fix various warnings; suppress SIMD on gcc 32-bit without -msse2 - 2.00b (2014-12-25) fix STBI_MALLOC in progressive JPEG - 2.00 (2014-12-25) optimize JPG, including x86 SSE2 & NEON SIMD (ryg) - progressive JPEG (stb) - PGM/PPM support (Ken Miller) - STBI_MALLOC,STBI_REALLOC,STBI_FREE - GIF bugfix -- seemingly never worked - STBI_NO_*, STBI_ONLY_* - 1.48 (2014-12-14) fix incorrectly-named assert() - 1.47 (2014-12-14) 1/2/4-bit PNG support, both direct and paletted (Omar Cornut & stb) - optimize PNG (ryg) - fix bug in interlaced PNG with user-specified channel count (stb) - 1.46 (2014-08-26) - fix broken tRNS chunk (colorkey-style transparency) in non-paletted PNG - 1.45 (2014-08-16) - fix MSVC-ARM internal compiler error by wrapping malloc - 1.44 (2014-08-07) - various warning fixes from Ronny Chevalier - 1.43 (2014-07-15) - fix MSVC-only compiler problem in code changed in 1.42 - 1.42 (2014-07-09) - don't define _CRT_SECURE_NO_WARNINGS (affects user code) - fixes to stbi__cleanup_jpeg path - added STBI_ASSERT to avoid requiring assert.h - 1.41 (2014-06-25) - fix search&replace from 1.36 that messed up comments/error messages - 1.40 (2014-06-22) - fix gcc struct-initialization warning - 1.39 (2014-06-15) - fix to TGA optimization when req_comp != number of components in TGA; - fix to GIF loading because BMP wasn't rewinding (whoops, no GIFs in my test suite) - add support for BMP version 5 (more ignored fields) - 1.38 (2014-06-06) - suppress MSVC warnings on integer casts truncating values - fix accidental rename of 'skip' field of I/O - 1.37 (2014-06-04) - remove duplicate typedef - 1.36 (2014-06-03) - convert to header file single-file library - if de-iphone isn't set, load iphone images color-swapped instead of returning NULL - 1.35 (2014-05-27) - various warnings - fix broken STBI_SIMD path - fix bug where stbi_load_from_file no longer left file pointer in correct place - fix broken non-easy path for 32-bit BMP (possibly never used) - TGA optimization by Arseny Kapoulkine - 1.34 (unknown) - use STBI_NOTUSED in stbi__resample_row_generic(), fix one more leak in tga failure case - 1.33 (2011-07-14) - make stbi_is_hdr work in STBI_NO_HDR (as specified), minor compiler-friendly improvements - 1.32 (2011-07-13) - support for "info" function for all supported filetypes (SpartanJ) - 1.31 (2011-06-20) - a few more leak fixes, bug in PNG handling (SpartanJ) - 1.30 (2011-06-11) - added ability to load files via callbacks to accomidate custom input streams (Ben Wenger) - removed deprecated format-specific test/load functions - removed support for installable file formats (stbi_loader) -- would have been broken for IO callbacks anyway - error cases in bmp and tga give messages and don't leak (Raymond Barbiero, grisha) - fix inefficiency in decoding 32-bit BMP (David Woo) - 1.29 (2010-08-16) - various warning fixes from Aurelien Pocheville - 1.28 (2010-08-01) - fix bug in GIF palette transparency (SpartanJ) - 1.27 (2010-08-01) - cast-to-stbi_uc to fix warnings - 1.26 (2010-07-24) - fix bug in file buffering for PNG reported by SpartanJ - 1.25 (2010-07-17) - refix trans_data warning (Won Chun) - 1.24 (2010-07-12) - perf improvements reading from files on platforms with lock-heavy fgetc() - minor perf improvements for jpeg - deprecated type-specific functions so we'll get feedback if they're needed - attempt to fix trans_data warning (Won Chun) - 1.23 fixed bug in iPhone support - 1.22 (2010-07-10) - removed image *writing* support - stbi_info support from Jetro Lauha - GIF support from Jean-Marc Lienher - iPhone PNG-extensions from James Brown - warning-fixes from Nicolas Schulz and Janez Zemva (i.stbi__err. Janez (U+017D)emva) - 1.21 fix use of 'stbi_uc' in header (reported by jon blow) - 1.20 added support for Softimage PIC, by Tom Seddon - 1.19 bug in interlaced PNG corruption check (found by ryg) - 1.18 (2008-08-02) - fix a threading bug (local mutable static) - 1.17 support interlaced PNG - 1.16 major bugfix - stbi__convert_format converted one too many pixels - 1.15 initialize some fields for thread safety - 1.14 fix threadsafe conversion bug - header-file-only version (#define STBI_HEADER_FILE_ONLY before including) - 1.13 threadsafe - 1.12 const qualifiers in the API - 1.11 Support installable IDCT, colorspace conversion routines - 1.10 Fixes for 64-bit (don't use "unsigned long") - optimized upsampling by Fabian "ryg" Giesen - 1.09 Fix format-conversion for PSD code (bad global variables!) - 1.08 Thatcher Ulrich's PSD code integrated by Nicolas Schulz - 1.07 attempt to fix C++ warning/errors again - 1.06 attempt to fix C++ warning/errors again - 1.05 fix TGA loading to return correct *comp and use good luminance calc - 1.04 default float alpha is 1, not 255; use 'void *' for stbi_image_free - 1.03 bugfixes to STBI_NO_STDIO, STBI_NO_HDR - 1.02 support for (subset of) HDR files, float interface for preferred access to them - 1.01 fix bug: possible bug in handling right-side up bmps... not sure - fix bug: the stbi__bmp_load() and stbi__tga_load() functions didn't work at all - 1.00 interface to zlib that skips zlib header - 0.99 correct handling of alpha in palette - 0.98 TGA loader by lonesock; dynamically add loaders (untested) - 0.97 jpeg errors on too large a file; also catch another malloc failure - 0.96 fix detection of invalid v value - particleman@mollyrocket forum - 0.95 during header scan, seek to markers in case of padding - 0.94 STBI_NO_STDIO to disable stdio usage; rename all #defines the same - 0.93 handle jpegtran output; verbose errors - 0.92 read 4,8,16,24,32-bit BMP files of several formats - 0.91 output 24-bit Windows 3.0 BMP files - 0.90 fix a few more warnings; bump version number to approach 1.0 - 0.61 bugfixes due to Marc LeBlanc, Christopher Lloyd - 0.60 fix compiling as c++ - 0.59 fix warnings: merge Dave Moore's -Wall fixes - 0.58 fix bug: zlib uncompressed mode len/nlen was wrong endian - 0.57 fix bug: jpg last huffman symbol before marker was >9 bits but less than 16 available - 0.56 fix bug: zlib uncompressed mode len vs. nlen - 0.55 fix bug: restart_interval not initialized to 0 - 0.54 allow NULL for 'int *comp' - 0.53 fix bug in png 3->4; speedup png decoding - 0.52 png handles req_comp=3,4 directly; minor cleanup; jpeg comments - 0.51 obey req_comp requests, 1-component jpegs return as 1-component, - on 'test' only check type, not whether we support this variant - 0.50 (2006-11-19) - first released version -*/ - - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/stb_image_write.h b/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/stb_image_write.h deleted file mode 100644 index a0f87527..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/src/stb_image_write.h +++ /dev/null @@ -1,1757 +0,0 @@ -/* stb_image_write - v1.15 - public domain - http://nothings.org/stb - writes out PNG/BMP/TGA/JPEG/HDR images to C stdio - Sean Barrett 2010-2015 - no warranty implied; use at your own risk - - Before #including, - - #define STB_IMAGE_WRITE_IMPLEMENTATION - - in the file that you want to have the implementation. - - Will probably not work correctly with strict-aliasing optimizations. - -ABOUT: - - This header file is a library for writing images to C stdio or a callback. - - The PNG output is not optimal; it is 20-50% larger than the file - written by a decent optimizing implementation; though providing a custom - zlib compress function (see STBIW_ZLIB_COMPRESS) can mitigate that. - This library is designed for source code compactness and simplicity, - not optimal image file size or run-time performance. - -BUILDING: - - You can #define STBIW_ASSERT(x) before the #include to avoid using assert.h. - You can #define STBIW_MALLOC(), STBIW_REALLOC(), and STBIW_FREE() to replace - malloc,realloc,free. - You can #define STBIW_MEMMOVE() to replace memmove() - You can #define STBIW_ZLIB_COMPRESS to use a custom zlib-style compress function - for PNG compression (instead of the builtin one), it must have the following signature: - unsigned char * my_compress(unsigned char *data, int data_len, int *out_len, int quality); - The returned data will be freed with STBIW_FREE() (free() by default), - so it must be heap allocated with STBIW_MALLOC() (malloc() by default), - -UNICODE: - - If compiling for Windows and you wish to use Unicode filenames, compile - with - #define STBIW_WINDOWS_UTF8 - and pass utf8-encoded filenames. Call stbiw_convert_wchar_to_utf8 to convert - Windows wchar_t filenames to utf8. - -USAGE: - - There are five functions, one for each image file format: - - int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes); - int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data); - int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data); - int stbi_write_jpg(char const *filename, int w, int h, int comp, const void *data, int quality); - int stbi_write_hdr(char const *filename, int w, int h, int comp, const float *data); - - void stbi_flip_vertically_on_write(int flag); // flag is non-zero to flip data vertically - - There are also five equivalent functions that use an arbitrary write function. You are - expected to open/close your file-equivalent before and after calling these: - - int stbi_write_png_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data, int stride_in_bytes); - int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); - int stbi_write_tga_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); - int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const float *data); - int stbi_write_jpg_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int quality); - - where the callback is: - void stbi_write_func(void *context, void *data, int size); - - You can configure it with these global variables: - int stbi_write_tga_with_rle; // defaults to true; set to 0 to disable RLE - int stbi_write_png_compression_level; // defaults to 8; set to higher for more compression - int stbi_write_force_png_filter; // defaults to -1; set to 0..5 to force a filter mode - - - You can define STBI_WRITE_NO_STDIO to disable the file variant of these - functions, so the library will not use stdio.h at all. However, this will - also disable HDR writing, because it requires stdio for formatted output. - - Each function returns 0 on failure and non-0 on success. - - The functions create an image file defined by the parameters. The image - is a rectangle of pixels stored from left-to-right, top-to-bottom. - Each pixel contains 'comp' channels of data stored interleaved with 8-bits - per channel, in the following order: 1=Y, 2=YA, 3=RGB, 4=RGBA. (Y is - monochrome color.) The rectangle is 'w' pixels wide and 'h' pixels tall. - The *data pointer points to the first byte of the top-left-most pixel. - For PNG, "stride_in_bytes" is the distance in bytes from the first byte of - a row of pixels to the first byte of the next row of pixels. - - PNG creates output files with the same number of components as the input. - The BMP format expands Y to RGB in the file format and does not - output alpha. - - PNG supports writing rectangles of data even when the bytes storing rows of - data are not consecutive in memory (e.g. sub-rectangles of a larger image), - by supplying the stride between the beginning of adjacent rows. The other - formats do not. (Thus you cannot write a native-format BMP through the BMP - writer, both because it is in BGR order and because it may have padding - at the end of the line.) - - PNG allows you to set the deflate compression level by setting the global - variable 'stbi_write_png_compression_level' (it defaults to 8). - - HDR expects linear float data. Since the format is always 32-bit rgb(e) - data, alpha (if provided) is discarded, and for monochrome data it is - replicated across all three channels. - - TGA supports RLE or non-RLE compressed data. To use non-RLE-compressed - data, set the global variable 'stbi_write_tga_with_rle' to 0. - - JPEG does ignore alpha channels in input data; quality is between 1 and 100. - Higher quality looks better but results in a bigger image. - JPEG baseline (no JPEG progressive). - -CREDITS: - - - Sean Barrett - PNG/BMP/TGA - Baldur Karlsson - HDR - Jean-Sebastien Guay - TGA monochrome - Tim Kelsey - misc enhancements - Alan Hickman - TGA RLE - Emmanuel Julien - initial file IO callback implementation - Jon Olick - original jo_jpeg.cpp code - Daniel Gibson - integrate JPEG, allow external zlib - Aarni Koskela - allow choosing PNG filter - Ethan Lee - STBIW_NO/ONLY_* to suppress building encoders - - bugfixes: - github:Chribba - Guillaume Chereau - github:jry2 - github:romigrou - Sergio Gonzalez - Jonas Karlsson - Filip Wasil - Thatcher Ulrich - github:poppolopoppo - Patrick Boettcher - github:xeekworx - Cap Petschulat - Simon Rodriguez - Ivan Tikhonov - github:ignotion - Adam Schackart - -LICENSE - - See end of file for license information. - -*/ - -#ifndef INCLUDE_STB_IMAGE_WRITE_H -#define INCLUDE_STB_IMAGE_WRITE_H - -#ifdef FNA3D_CHANGE -#include -#endif - -#if defined(STBIW_ONLY_PNG) || defined(STBIW_ONLY_BMP) || defined(STBIW_ONLY_TGA) \ - || defined(STBIW_ONLY_HDR) || defined(STBIW_ONLY_JPEG) - #ifndef STBIW_ONLY_PNG - #define STBIW_NO_PNG - #endif - #ifndef STBIW_ONLY_BMP - #define STBIW_NO_BMP - #endif - #ifndef STBIW_ONLY_TGA - #define STBIW_NO_TGA - #endif - #ifndef STBIW_ONLY_HDR - #define STBIW_NO_HDR - #endif - #ifndef STBIW_ONLY_JPEG - #define STBIW_NO_JPEG - #endif -#endif - -// if STB_IMAGE_WRITE_STATIC causes problems, try defining STBIWDEF to 'inline' or 'static inline' -#ifndef STBIWDEF -#ifdef STB_IMAGE_WRITE_STATIC -#define STBIWDEF static -#else -#ifdef __cplusplus -#define STBIWDEF extern "C" -#else -#define STBIWDEF extern -#endif -#endif -#endif - -#ifndef STB_IMAGE_WRITE_STATIC // C++ forbids static forward declarations -#ifndef STBIW_NO_TGA -extern int stbi_write_tga_with_rle; -#endif -#ifndef STBIW_NO_PNG -extern int stbi_write_png_compression_level; -extern int stbi_write_force_png_filter; -#endif -#endif - -#ifndef STBI_WRITE_NO_STDIO -#ifndef STBIW_NO_PNG -STBIWDEF int stbi_write_png(char const *filename, int w, int h, int comp, const void *data, int stride_in_bytes); -#endif -#ifndef STBIW_NO_BMP -STBIWDEF int stbi_write_bmp(char const *filename, int w, int h, int comp, const void *data); -#endif -#ifndef STBIW_NO_TGA -STBIWDEF int stbi_write_tga(char const *filename, int w, int h, int comp, const void *data); -#endif -#ifndef STBIW_NO_HDR -STBIWDEF int stbi_write_hdr(char const *filename, int w, int h, int comp, const float *data); -#endif -#ifndef STBIW_NO_JPEG -STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp, const void *data, int quality); -#endif - -#ifdef STBI_WINDOWS_UTF8 -STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input); -#endif -#endif - -typedef void stbi_write_func(void *context, void *data, int size); - -#ifndef STBIW_NO_PNG -STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data, int stride_in_bytes); -#endif -#ifndef STBIW_NO_BMP -STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); -#endif -#ifndef STBIW_NO_TGA -STBIWDEF int stbi_write_tga_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const void *data); -#endif -#ifndef STBIW_NO_HDR -STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int w, int h, int comp, const float *data); -#endif -#ifndef STBIW_NO_JPEG -STBIWDEF int stbi_write_jpg_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int quality); -#endif - -STBIWDEF void stbi_flip_vertically_on_write(int flip_boolean); - -#endif//INCLUDE_STB_IMAGE_WRITE_H - -#ifdef STB_IMAGE_WRITE_IMPLEMENTATION - -#ifdef _WIN32 - #ifndef _CRT_SECURE_NO_WARNINGS - #define _CRT_SECURE_NO_WARNINGS - #endif - #ifndef _CRT_NONSTDC_NO_DEPRECATE - #define _CRT_NONSTDC_NO_DEPRECATE - #endif -#endif - -#ifndef STBI_WRITE_NO_STDIO -#include -#endif // STBI_WRITE_NO_STDIO - -#ifdef FNA3D_CHANGE -#include -#include -#include -#include -#endif - -#if defined(STBIW_MALLOC) && defined(STBIW_FREE) && (defined(STBIW_REALLOC) || defined(STBIW_REALLOC_SIZED)) -// ok -#elif !defined(STBIW_MALLOC) && !defined(STBIW_FREE) && !defined(STBIW_REALLOC) && !defined(STBIW_REALLOC_SIZED) -// ok -#else -#error "Must define all or none of STBIW_MALLOC, STBIW_FREE, and STBIW_REALLOC (or STBIW_REALLOC_SIZED)." -#endif - -#ifndef STBIW_MALLOC -#define STBIW_MALLOC(sz) malloc(sz) -#define STBIW_REALLOC(p,newsz) realloc(p,newsz) -#define STBIW_FREE(p) free(p) -#endif - -#ifndef STBIW_REALLOC_SIZED -#define STBIW_REALLOC_SIZED(p,oldsz,newsz) STBIW_REALLOC(p,newsz) -#endif - - -#ifndef STBIW_MEMMOVE -#define STBIW_MEMMOVE(a,b,sz) memmove(a,b,sz) -#endif - - -#ifndef STBIW_ASSERT -#include -#define STBIW_ASSERT(x) assert(x) -#endif - -#define STBIW_UCHAR(x) (unsigned char) ((x) & 0xff) - -#ifdef STB_IMAGE_WRITE_STATIC -#ifndef STBIW_NO_TGA -static int stbi_write_tga_with_rle = 1; -#endif -#ifndef STBIW_NO_PNG -static int stbi_write_png_compression_level = 8; -static int stbi_write_force_png_filter = -1; -#endif -#else -#ifndef STBIW_NO_TGA -int stbi_write_tga_with_rle = 1; -#endif -#ifndef STBIW_NO_PNG -int stbi_write_png_compression_level = 8; -int stbi_write_force_png_filter = -1; -#endif -#endif - -static int stbi__flip_vertically_on_write = 0; - -STBIWDEF void stbi_flip_vertically_on_write(int flag) -{ - stbi__flip_vertically_on_write = flag; -} - -typedef struct -{ - stbi_write_func *func; - void *context; - unsigned char buffer[64]; - int buf_used; -} stbi__write_context; - -// initialize a callback-based context -static void stbi__start_write_callbacks(stbi__write_context *s, stbi_write_func *c, void *context) -{ - s->func = c; - s->context = context; -} - -#ifndef STBI_WRITE_NO_STDIO - -static void stbi__stdio_write(void *context, void *data, int size) -{ - fwrite(data,1,size,(FILE*) context); -} - -#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) -#ifdef __cplusplus -#define STBIW_EXTERN extern "C" -#else -#define STBIW_EXTERN extern -#endif -STBIW_EXTERN __declspec(dllimport) int __stdcall MultiByteToWideChar(unsigned int cp, unsigned long flags, const char *str, int cbmb, wchar_t *widestr, int cchwide); -STBIW_EXTERN __declspec(dllimport) int __stdcall WideCharToMultiByte(unsigned int cp, unsigned long flags, const wchar_t *widestr, int cchwide, char *str, int cbmb, const char *defchar, int *used_default); - -STBIWDEF int stbiw_convert_wchar_to_utf8(char *buffer, size_t bufferlen, const wchar_t* input) -{ - return WideCharToMultiByte(65001 /* UTF8 */, 0, input, -1, buffer, (int) bufferlen, NULL, NULL); -} -#endif - -static FILE *stbiw__fopen(char const *filename, char const *mode) -{ - FILE *f; -#if defined(_MSC_VER) && defined(STBI_WINDOWS_UTF8) - wchar_t wMode[64]; - wchar_t wFilename[1024]; - if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, filename, -1, wFilename, sizeof(wFilename))) - return 0; - - if (0 == MultiByteToWideChar(65001 /* UTF8 */, 0, mode, -1, wMode, sizeof(wMode))) - return 0; - -#if _MSC_VER >= 1400 - if (0 != _wfopen_s(&f, wFilename, wMode)) - f = 0; -#else - f = _wfopen(wFilename, wMode); -#endif - -#elif defined(_MSC_VER) && _MSC_VER >= 1400 - if (0 != fopen_s(&f, filename, mode)) - f=0; -#else - f = fopen(filename, mode); -#endif - return f; -} - -static int stbi__start_write_file(stbi__write_context *s, const char *filename) -{ - FILE *f = stbiw__fopen(filename, "wb"); - stbi__start_write_callbacks(s, stbi__stdio_write, (void *) f); - return f != NULL; -} - -static void stbi__end_write_file(stbi__write_context *s) -{ - fclose((FILE *)s->context); -} - -#endif // !STBI_WRITE_NO_STDIO - -typedef unsigned int stbiw_uint32; -typedef int stb_image_write_test[sizeof(stbiw_uint32)==4 ? 1 : -1]; - -static void stbiw__writefv(stbi__write_context *s, const char *fmt, va_list v) -{ - while (*fmt) { - switch (*fmt++) { - case ' ': break; - case '1': { unsigned char x = STBIW_UCHAR(va_arg(v, int)); - s->func(s->context,&x,1); - break; } - case '2': { int x = va_arg(v,int); - unsigned char b[2]; - b[0] = STBIW_UCHAR(x); - b[1] = STBIW_UCHAR(x>>8); - s->func(s->context,b,2); - break; } - case '4': { stbiw_uint32 x = va_arg(v,int); - unsigned char b[4]; - b[0]=STBIW_UCHAR(x); - b[1]=STBIW_UCHAR(x>>8); - b[2]=STBIW_UCHAR(x>>16); - b[3]=STBIW_UCHAR(x>>24); - s->func(s->context,b,4); - break; } - default: - STBIW_ASSERT(0); - return; - } - } -} - -static void stbiw__writef(stbi__write_context *s, const char *fmt, ...) -{ - va_list v; - va_start(v, fmt); - stbiw__writefv(s, fmt, v); - va_end(v); -} - -static void stbiw__write_flush(stbi__write_context *s) -{ - if (s->buf_used) { - s->func(s->context, &s->buffer, s->buf_used); - s->buf_used = 0; - } -} - -static void stbiw__putc(stbi__write_context *s, unsigned char c) -{ - s->func(s->context, &c, 1); -} - -static void stbiw__write1(stbi__write_context *s, unsigned char a) -{ - if (s->buf_used + 1 > sizeof(s->buffer)) - stbiw__write_flush(s); - s->buffer[s->buf_used++] = a; -} - -static void stbiw__write3(stbi__write_context *s, unsigned char a, unsigned char b, unsigned char c) -{ - int n; - if (s->buf_used + 3 > sizeof(s->buffer)) - stbiw__write_flush(s); - n = s->buf_used; - s->buf_used = n+3; - s->buffer[n+0] = a; - s->buffer[n+1] = b; - s->buffer[n+2] = c; -} - -static void stbiw__write_pixel(stbi__write_context *s, int rgb_dir, int comp, int write_alpha, int expand_mono, unsigned char *d) -{ - unsigned char bg[3] = { 255, 0, 255}, px[3]; - int k; - - if (write_alpha < 0) - stbiw__write1(s, d[comp - 1]); - - switch (comp) { - case 2: // 2 pixels = mono + alpha, alpha is written separately, so same as 1-channel case - case 1: - if (expand_mono) - stbiw__write3(s, d[0], d[0], d[0]); // monochrome bmp - else - stbiw__write1(s, d[0]); // monochrome TGA - break; - case 4: - if (!write_alpha) { - // composite against pink background - for (k = 0; k < 3; ++k) - px[k] = bg[k] + ((d[k] - bg[k]) * d[3]) / 255; - stbiw__write3(s, px[1 - rgb_dir], px[1], px[1 + rgb_dir]); - break; - } - /* FALLTHROUGH */ - case 3: - stbiw__write3(s, d[1 - rgb_dir], d[1], d[1 + rgb_dir]); - break; - } - if (write_alpha > 0) - stbiw__write1(s, d[comp - 1]); -} - -static void stbiw__write_pixels(stbi__write_context *s, int rgb_dir, int vdir, int x, int y, int comp, void *data, int write_alpha, int scanline_pad, int expand_mono) -{ - stbiw_uint32 zero = 0; - int i,j, j_end; - - if (y <= 0) - return; - - if (stbi__flip_vertically_on_write) - vdir *= -1; - - if (vdir < 0) { - j_end = -1; j = y-1; - } else { - j_end = y; j = 0; - } - - for (; j != j_end; j += vdir) { - for (i=0; i < x; ++i) { - unsigned char *d = (unsigned char *) data + (j*x+i)*comp; - stbiw__write_pixel(s, rgb_dir, comp, write_alpha, expand_mono, d); - } - stbiw__write_flush(s); - s->func(s->context, &zero, scanline_pad); - } -} - -static int stbiw__outfile(stbi__write_context *s, int rgb_dir, int vdir, int x, int y, int comp, int expand_mono, void *data, int alpha, int pad, const char *fmt, ...) -{ - if (y < 0 || x < 0) { - return 0; - } else { - va_list v; - va_start(v, fmt); - stbiw__writefv(s, fmt, v); - va_end(v); - stbiw__write_pixels(s,rgb_dir,vdir,x,y,comp,data,alpha,pad, expand_mono); - return 1; - } -} - -#ifndef STBIW_NO_BMP -static int stbi_write_bmp_core(stbi__write_context *s, int x, int y, int comp, const void *data) -{ - int pad = (-x*3) & 3; - return stbiw__outfile(s,-1,-1,x,y,comp,1,(void *) data,0,pad, - "11 4 22 4" "4 44 22 444444", - 'B', 'M', 14+40+(x*3+pad)*y, 0,0, 14+40, // file header - 40, x,y, 1,24, 0,0,0,0,0,0); // bitmap header -} - -STBIWDEF int stbi_write_bmp_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data) -{ - stbi__write_context s = { 0 }; - stbi__start_write_callbacks(&s, func, context); - return stbi_write_bmp_core(&s, x, y, comp, data); -} - -#ifndef STBI_WRITE_NO_STDIO -STBIWDEF int stbi_write_bmp(char const *filename, int x, int y, int comp, const void *data) -{ - stbi__write_context s = { 0 }; - if (stbi__start_write_file(&s,filename)) { - int r = stbi_write_bmp_core(&s, x, y, comp, data); - stbi__end_write_file(&s); - return r; - } else - return 0; -} -#endif //!STBI_WRITE_NO_STDIO -#endif //!STBIW_NO_BMP - -#ifndef STBIW_NO_TGA -static int stbi_write_tga_core(stbi__write_context *s, int x, int y, int comp, void *data) -{ - int has_alpha = (comp == 2 || comp == 4); - int colorbytes = has_alpha ? comp-1 : comp; - int format = colorbytes < 2 ? 3 : 2; // 3 color channels (RGB/RGBA) = 2, 1 color channel (Y/YA) = 3 - - if (y < 0 || x < 0) - return 0; - - if (!stbi_write_tga_with_rle) { - return stbiw__outfile(s, -1, -1, x, y, comp, 0, (void *) data, has_alpha, 0, - "111 221 2222 11", 0, 0, format, 0, 0, 0, 0, 0, x, y, (colorbytes + has_alpha) * 8, has_alpha * 8); - } else { - int i,j,k; - int jend, jdir; - - stbiw__writef(s, "111 221 2222 11", 0,0,format+8, 0,0,0, 0,0,x,y, (colorbytes + has_alpha) * 8, has_alpha * 8); - - if (stbi__flip_vertically_on_write) { - j = 0; - jend = y; - jdir = 1; - } else { - j = y-1; - jend = -1; - jdir = -1; - } - for (; j != jend; j += jdir) { - unsigned char *row = (unsigned char *) data + j * x * comp; - int len; - - for (i = 0; i < x; i += len) { - unsigned char *begin = row + i * comp; - int diff = 1; - len = 1; - - if (i < x - 1) { - ++len; - diff = memcmp(begin, row + (i + 1) * comp, comp); - if (diff) { - const unsigned char *prev = begin; - for (k = i + 2; k < x && len < 128; ++k) { - if (memcmp(prev, row + k * comp, comp)) { - prev += comp; - ++len; - } else { - --len; - break; - } - } - } else { - for (k = i + 2; k < x && len < 128; ++k) { - if (!memcmp(begin, row + k * comp, comp)) { - ++len; - } else { - break; - } - } - } - } - - if (diff) { - unsigned char header = STBIW_UCHAR(len - 1); - stbiw__write1(s, header); - for (k = 0; k < len; ++k) { - stbiw__write_pixel(s, -1, comp, has_alpha, 0, begin + k * comp); - } - } else { - unsigned char header = STBIW_UCHAR(len - 129); - stbiw__write1(s, header); - stbiw__write_pixel(s, -1, comp, has_alpha, 0, begin); - } - } - } - stbiw__write_flush(s); - } - return 1; -} - -STBIWDEF int stbi_write_tga_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data) -{ - stbi__write_context s = { 0 }; - stbi__start_write_callbacks(&s, func, context); - return stbi_write_tga_core(&s, x, y, comp, (void *) data); -} - -#ifndef STBI_WRITE_NO_STDIO -STBIWDEF int stbi_write_tga(char const *filename, int x, int y, int comp, const void *data) -{ - stbi__write_context s = { 0 }; - if (stbi__start_write_file(&s,filename)) { - int r = stbi_write_tga_core(&s, x, y, comp, (void *) data); - stbi__end_write_file(&s); - return r; - } else - return 0; -} -#endif //!STBI_WRITE_NO_STDIO -#endif //!STBIW_NO_TGA - -// ************************************************************************************************* -// Radiance RGBE HDR writer -// by Baldur Karlsson - -#define stbiw__max(a, b) ((a) > (b) ? (a) : (b)) - -#ifndef STBIW_NO_HDR -static void stbiw__linear_to_rgbe(unsigned char *rgbe, float *linear) -{ - int exponent; - float maxcomp = stbiw__max(linear[0], stbiw__max(linear[1], linear[2])); - - if (maxcomp < 1e-32f) { - rgbe[0] = rgbe[1] = rgbe[2] = rgbe[3] = 0; - } else { - float normalize = (float) frexp(maxcomp, &exponent) * 256.0f/maxcomp; - - rgbe[0] = (unsigned char)(linear[0] * normalize); - rgbe[1] = (unsigned char)(linear[1] * normalize); - rgbe[2] = (unsigned char)(linear[2] * normalize); - rgbe[3] = (unsigned char)(exponent + 128); - } -} - -static void stbiw__write_run_data(stbi__write_context *s, int length, unsigned char databyte) -{ - unsigned char lengthbyte = STBIW_UCHAR(length+128); - STBIW_ASSERT(length+128 <= 255); - s->func(s->context, &lengthbyte, 1); - s->func(s->context, &databyte, 1); -} - -static void stbiw__write_dump_data(stbi__write_context *s, int length, unsigned char *data) -{ - unsigned char lengthbyte = STBIW_UCHAR(length); - STBIW_ASSERT(length <= 128); // inconsistent with spec but consistent with official code - s->func(s->context, &lengthbyte, 1); - s->func(s->context, data, length); -} - -static void stbiw__write_hdr_scanline(stbi__write_context *s, int width, int ncomp, unsigned char *scratch, float *scanline) -{ - unsigned char scanlineheader[4] = { 2, 2, 0, 0 }; - unsigned char rgbe[4]; - float linear[3]; - int x; - - scanlineheader[2] = (width&0xff00)>>8; - scanlineheader[3] = (width&0x00ff); - - /* skip RLE for images too small or large */ - if (width < 8 || width >= 32768) { - for (x=0; x < width; x++) { - switch (ncomp) { - case 4: /* fallthrough */ - case 3: linear[2] = scanline[x*ncomp + 2]; - linear[1] = scanline[x*ncomp + 1]; - linear[0] = scanline[x*ncomp + 0]; - break; - default: - linear[0] = linear[1] = linear[2] = scanline[x*ncomp + 0]; - break; - } - stbiw__linear_to_rgbe(rgbe, linear); - s->func(s->context, rgbe, 4); - } - } else { - int c,r; - /* encode into scratch buffer */ - for (x=0; x < width; x++) { - switch(ncomp) { - case 4: /* fallthrough */ - case 3: linear[2] = scanline[x*ncomp + 2]; - linear[1] = scanline[x*ncomp + 1]; - linear[0] = scanline[x*ncomp + 0]; - break; - default: - linear[0] = linear[1] = linear[2] = scanline[x*ncomp + 0]; - break; - } - stbiw__linear_to_rgbe(rgbe, linear); - scratch[x + width*0] = rgbe[0]; - scratch[x + width*1] = rgbe[1]; - scratch[x + width*2] = rgbe[2]; - scratch[x + width*3] = rgbe[3]; - } - - s->func(s->context, scanlineheader, 4); - - /* RLE each component separately */ - for (c=0; c < 4; c++) { - unsigned char *comp = &scratch[width*c]; - - x = 0; - while (x < width) { - // find first run - r = x; - while (r+2 < width) { - if (comp[r] == comp[r+1] && comp[r] == comp[r+2]) - break; - ++r; - } - if (r+2 >= width) - r = width; - // dump up to first run - while (x < r) { - int len = r-x; - if (len > 128) len = 128; - stbiw__write_dump_data(s, len, &comp[x]); - x += len; - } - // if there's a run, output it - if (r+2 < width) { // same test as what we break out of in search loop, so only true if we break'd - // find next byte after run - while (r < width && comp[r] == comp[x]) - ++r; - // output run up to r - while (x < r) { - int len = r-x; - if (len > 127) len = 127; - stbiw__write_run_data(s, len, comp[x]); - x += len; - } - } - } - } - } -} - -static int stbi_write_hdr_core(stbi__write_context *s, int x, int y, int comp, float *data) -{ - if (y <= 0 || x <= 0 || data == NULL) - return 0; - else { - // Each component is stored separately. Allocate scratch space for full output scanline. - unsigned char *scratch = (unsigned char *) STBIW_MALLOC(x*4); - int i, len; - char buffer[128]; - char header[] = "#?RADIANCE\n# Written by stb_image_write.h\nFORMAT=32-bit_rle_rgbe\n"; - s->func(s->context, header, sizeof(header)-1); - -#ifdef __STDC_WANT_SECURE_LIB__ - len = sprintf_s(buffer, sizeof(buffer), "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x); -#else - len = sprintf(buffer, "EXPOSURE= 1.0000000000000\n\n-Y %d +X %d\n", y, x); -#endif - s->func(s->context, buffer, len); - - for(i=0; i < y; i++) - stbiw__write_hdr_scanline(s, x, comp, scratch, data + comp*x*(stbi__flip_vertically_on_write ? y-1-i : i)); - STBIW_FREE(scratch); - return 1; - } -} - -STBIWDEF int stbi_write_hdr_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const float *data) -{ - stbi__write_context s = { 0 }; - stbi__start_write_callbacks(&s, func, context); - return stbi_write_hdr_core(&s, x, y, comp, (float *) data); -} - -#ifndef STBI_WRITE_NO_STDIO -STBIWDEF int stbi_write_hdr(char const *filename, int x, int y, int comp, const float *data) -{ - stbi__write_context s = { 0 }; - if (stbi__start_write_file(&s,filename)) { - int r = stbi_write_hdr_core(&s, x, y, comp, (float *) data); - stbi__end_write_file(&s); - return r; - } else - return 0; -} -#endif //!STBI_WRITE_NO_STDIO -#endif //!STBIW_NO_HDR - - -////////////////////////////////////////////////////////////////////////////// -// -// PNG writer -// - -#ifndef STBIW_NO_PNG - -#ifndef STBIW_ZLIB_COMPRESS -// stretchy buffer; stbiw__sbpush() == vector<>::push_back() -- stbiw__sbcount() == vector<>::size() -#define stbiw__sbraw(a) ((int *) (void *) (a) - 2) -#define stbiw__sbm(a) stbiw__sbraw(a)[0] -#define stbiw__sbn(a) stbiw__sbraw(a)[1] - -#define stbiw__sbneedgrow(a,n) ((a)==0 || stbiw__sbn(a)+n >= stbiw__sbm(a)) -#define stbiw__sbmaybegrow(a,n) (stbiw__sbneedgrow(a,(n)) ? stbiw__sbgrow(a,n) : 0) -#define stbiw__sbgrow(a,n) stbiw__sbgrowf((void **) &(a), (n), sizeof(*(a))) - -#define stbiw__sbpush(a, v) (stbiw__sbmaybegrow(a,1), (a)[stbiw__sbn(a)++] = (v)) -#define stbiw__sbcount(a) ((a) ? stbiw__sbn(a) : 0) -#define stbiw__sbfree(a) ((a) ? STBIW_FREE(stbiw__sbraw(a)),0 : 0) - -static void *stbiw__sbgrowf(void **arr, int increment, int itemsize) -{ - int m = *arr ? 2*stbiw__sbm(*arr)+increment : increment+1; - void *p = STBIW_REALLOC_SIZED(*arr ? stbiw__sbraw(*arr) : 0, *arr ? (stbiw__sbm(*arr)*itemsize + sizeof(int)*2) : 0, itemsize * m + sizeof(int)*2); - STBIW_ASSERT(p); - if (p) { - if (!*arr) ((int *) p)[1] = 0; - *arr = (void *) ((int *) p + 2); - stbiw__sbm(*arr) = m; - } - return *arr; -} - -static unsigned char *stbiw__zlib_flushf(unsigned char *data, unsigned int *bitbuffer, int *bitcount) -{ - while (*bitcount >= 8) { - stbiw__sbpush(data, STBIW_UCHAR(*bitbuffer)); - *bitbuffer >>= 8; - *bitcount -= 8; - } - return data; -} - -static int stbiw__zlib_bitrev(int code, int codebits) -{ - int res=0; - while (codebits--) { - res = (res << 1) | (code & 1); - code >>= 1; - } - return res; -} - -static unsigned int stbiw__zlib_countm(unsigned char *a, unsigned char *b, int limit) -{ - int i; - for (i=0; i < limit && i < 258; ++i) - if (a[i] != b[i]) break; - return i; -} - -static unsigned int stbiw__zhash(unsigned char *data) -{ - stbiw_uint32 hash = data[0] + (data[1] << 8) + (data[2] << 16); - hash ^= hash << 3; - hash += hash >> 5; - hash ^= hash << 4; - hash += hash >> 17; - hash ^= hash << 25; - hash += hash >> 6; - return hash; -} - -#define stbiw__zlib_flush() (out = stbiw__zlib_flushf(out, &bitbuf, &bitcount)) -#define stbiw__zlib_add(code,codebits) \ - (bitbuf |= (code) << bitcount, bitcount += (codebits), stbiw__zlib_flush()) -#define stbiw__zlib_huffa(b,c) stbiw__zlib_add(stbiw__zlib_bitrev(b,c),c) -// default huffman tables -#define stbiw__zlib_huff1(n) stbiw__zlib_huffa(0x30 + (n), 8) -#define stbiw__zlib_huff2(n) stbiw__zlib_huffa(0x190 + (n)-144, 9) -#define stbiw__zlib_huff3(n) stbiw__zlib_huffa(0 + (n)-256,7) -#define stbiw__zlib_huff4(n) stbiw__zlib_huffa(0xc0 + (n)-280,8) -#define stbiw__zlib_huff(n) ((n) <= 143 ? stbiw__zlib_huff1(n) : (n) <= 255 ? stbiw__zlib_huff2(n) : (n) <= 279 ? stbiw__zlib_huff3(n) : stbiw__zlib_huff4(n)) -#define stbiw__zlib_huffb(n) ((n) <= 143 ? stbiw__zlib_huff1(n) : stbiw__zlib_huff2(n)) - -#define stbiw__ZHASH 16384 - -#endif // STBIW_ZLIB_COMPRESS - -STBIWDEF unsigned char * stbi_zlib_compress(unsigned char *data, int data_len, int *out_len, int quality) -{ -#ifdef STBIW_ZLIB_COMPRESS - // user provided a zlib compress implementation, use that - return STBIW_ZLIB_COMPRESS(data, data_len, out_len, quality); -#else // use builtin - static unsigned short lengthc[] = { 3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258, 259 }; - static unsigned char lengtheb[]= { 0,0,0,0,0,0,0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0 }; - static unsigned short distc[] = { 1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577, 32768 }; - static unsigned char disteb[] = { 0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13 }; - unsigned int bitbuf=0; - int i,j, bitcount=0; - unsigned char *out = NULL; - unsigned char ***hash_table = (unsigned char***) STBIW_MALLOC(stbiw__ZHASH * sizeof(unsigned char**)); - if (hash_table == NULL) - return NULL; - if (quality < 5) quality = 5; - - stbiw__sbpush(out, 0x78); // DEFLATE 32K window - stbiw__sbpush(out, 0x5e); // FLEVEL = 1 - stbiw__zlib_add(1,1); // BFINAL = 1 - stbiw__zlib_add(1,2); // BTYPE = 1 -- fixed huffman - - for (i=0; i < stbiw__ZHASH; ++i) - hash_table[i] = NULL; - - i=0; - while (i < data_len-3) { - // hash next 3 bytes of data to be compressed - int h = stbiw__zhash(data+i)&(stbiw__ZHASH-1), best=3; - unsigned char *bestloc = 0; - unsigned char **hlist = hash_table[h]; - int n = stbiw__sbcount(hlist); - for (j=0; j < n; ++j) { - if (hlist[j]-data > i-32768) { // if entry lies within window - int d = stbiw__zlib_countm(hlist[j], data+i, data_len-i); - if (d >= best) { best=d; bestloc=hlist[j]; } - } - } - // when hash table entry is too long, delete half the entries - if (hash_table[h] && stbiw__sbn(hash_table[h]) == 2*quality) { - STBIW_MEMMOVE(hash_table[h], hash_table[h]+quality, sizeof(hash_table[h][0])*quality); - stbiw__sbn(hash_table[h]) = quality; - } - stbiw__sbpush(hash_table[h],data+i); - - if (bestloc) { - // "lazy matching" - check match at *next* byte, and if it's better, do cur byte as literal - h = stbiw__zhash(data+i+1)&(stbiw__ZHASH-1); - hlist = hash_table[h]; - n = stbiw__sbcount(hlist); - for (j=0; j < n; ++j) { - if (hlist[j]-data > i-32767) { - int e = stbiw__zlib_countm(hlist[j], data+i+1, data_len-i-1); - if (e > best) { // if next match is better, bail on current match - bestloc = NULL; - break; - } - } - } - } - - if (bestloc) { - int d = (int) (data+i - bestloc); // distance back - STBIW_ASSERT(d <= 32767 && best <= 258); - for (j=0; best > lengthc[j+1]-1; ++j); - stbiw__zlib_huff(j+257); - if (lengtheb[j]) stbiw__zlib_add(best - lengthc[j], lengtheb[j]); - for (j=0; d > distc[j+1]-1; ++j); - stbiw__zlib_add(stbiw__zlib_bitrev(j,5),5); - if (disteb[j]) stbiw__zlib_add(d - distc[j], disteb[j]); - i += best; - } else { - stbiw__zlib_huffb(data[i]); - ++i; - } - } - // write out final bytes - for (;i < data_len; ++i) - stbiw__zlib_huffb(data[i]); - stbiw__zlib_huff(256); // end of block - // pad with 0 bits to byte boundary - while (bitcount) - stbiw__zlib_add(0,1); - - for (i=0; i < stbiw__ZHASH; ++i) - (void) stbiw__sbfree(hash_table[i]); - STBIW_FREE(hash_table); - - { - // compute adler32 on input - unsigned int s1=1, s2=0; - int blocklen = (int) (data_len % 5552); - j=0; - while (j < data_len) { - for (i=0; i < blocklen; ++i) { s1 += data[j+i]; s2 += s1; } - s1 %= 65521; s2 %= 65521; - j += blocklen; - blocklen = 5552; - } - stbiw__sbpush(out, STBIW_UCHAR(s2 >> 8)); - stbiw__sbpush(out, STBIW_UCHAR(s2)); - stbiw__sbpush(out, STBIW_UCHAR(s1 >> 8)); - stbiw__sbpush(out, STBIW_UCHAR(s1)); - } - *out_len = stbiw__sbn(out); - // make returned pointer freeable - STBIW_MEMMOVE(stbiw__sbraw(out), out, *out_len); - return (unsigned char *) stbiw__sbraw(out); -#endif // STBIW_ZLIB_COMPRESS -} - -static unsigned int stbiw__crc32(unsigned char *buffer, int len) -{ -#ifdef STBIW_CRC32 - return STBIW_CRC32(buffer, len); -#else - static unsigned int crc_table[256] = - { - 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3, - 0x0eDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91, - 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE, 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, - 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5, - 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B, - 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, - 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F, - 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924, 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, - 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433, - 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01, - 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457, - 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65, - 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2, 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, - 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9, - 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F, - 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, - 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683, - 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8, 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, - 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7, - 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5, - 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B, - 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79, - 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236, 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, - 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D, - 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713, - 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, - 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777, - 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C, 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, - 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB, - 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9, - 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF, - 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D - }; - - unsigned int crc = ~0u; - int i; - for (i=0; i < len; ++i) - crc = (crc >> 8) ^ crc_table[buffer[i] ^ (crc & 0xff)]; - return ~crc; -#endif -} - -#define stbiw__wpng4(o,a,b,c,d) ((o)[0]=STBIW_UCHAR(a),(o)[1]=STBIW_UCHAR(b),(o)[2]=STBIW_UCHAR(c),(o)[3]=STBIW_UCHAR(d),(o)+=4) -#define stbiw__wp32(data,v) stbiw__wpng4(data, (v)>>24,(v)>>16,(v)>>8,(v)); -#define stbiw__wptag(data,s) stbiw__wpng4(data, s[0],s[1],s[2],s[3]) - -static void stbiw__wpcrc(unsigned char **data, int len) -{ - unsigned int crc = stbiw__crc32(*data - len - 4, len+4); - stbiw__wp32(*data, crc); -} - -static unsigned char stbiw__paeth(int a, int b, int c) -{ - int p = a + b - c, pa = abs(p-a), pb = abs(p-b), pc = abs(p-c); - if (pa <= pb && pa <= pc) return STBIW_UCHAR(a); - if (pb <= pc) return STBIW_UCHAR(b); - return STBIW_UCHAR(c); -} - -// @OPTIMIZE: provide an option that always forces left-predict or paeth predict -static void stbiw__encode_png_line(unsigned char *pixels, int stride_bytes, int width, int height, int y, int n, int filter_type, signed char *line_buffer) -{ - static int mapping[] = { 0,1,2,3,4 }; - static int firstmap[] = { 0,1,0,5,6 }; - int *mymap = (y != 0) ? mapping : firstmap; - int i; - int type = mymap[filter_type]; - unsigned char *z = pixels + stride_bytes * (stbi__flip_vertically_on_write ? height-1-y : y); - int signed_stride = stbi__flip_vertically_on_write ? -stride_bytes : stride_bytes; - - if (type==0) { - memcpy(line_buffer, z, width*n); - return; - } - - // first loop isn't optimized since it's just one pixel - for (i = 0; i < n; ++i) { - switch (type) { - case 1: line_buffer[i] = z[i]; break; - case 2: line_buffer[i] = z[i] - z[i-signed_stride]; break; - case 3: line_buffer[i] = z[i] - (z[i-signed_stride]>>1); break; - case 4: line_buffer[i] = (signed char) (z[i] - stbiw__paeth(0,z[i-signed_stride],0)); break; - case 5: line_buffer[i] = z[i]; break; - case 6: line_buffer[i] = z[i]; break; - } - } - switch (type) { - case 1: for (i=n; i < width*n; ++i) line_buffer[i] = z[i] - z[i-n]; break; - case 2: for (i=n; i < width*n; ++i) line_buffer[i] = z[i] - z[i-signed_stride]; break; - case 3: for (i=n; i < width*n; ++i) line_buffer[i] = z[i] - ((z[i-n] + z[i-signed_stride])>>1); break; - case 4: for (i=n; i < width*n; ++i) line_buffer[i] = z[i] - stbiw__paeth(z[i-n], z[i-signed_stride], z[i-signed_stride-n]); break; - case 5: for (i=n; i < width*n; ++i) line_buffer[i] = z[i] - (z[i-n]>>1); break; - case 6: for (i=n; i < width*n; ++i) line_buffer[i] = z[i] - stbiw__paeth(z[i-n], 0,0); break; - } -} - -STBIWDEF unsigned char *stbi_write_png_to_mem(const unsigned char *pixels, int stride_bytes, int x, int y, int n, int *out_len) -{ - int force_filter = stbi_write_force_png_filter; - int ctype[5] = { -1, 0, 4, 2, 6 }; - unsigned char sig[8] = { 137,80,78,71,13,10,26,10 }; - unsigned char *out,*o, *filt, *zlib; - signed char *line_buffer; - int j,zlen; - - if (stride_bytes == 0) - stride_bytes = x * n; - - if (force_filter >= 5) { - force_filter = -1; - } - - filt = (unsigned char *) STBIW_MALLOC((x*n+1) * y); if (!filt) return 0; - line_buffer = (signed char *) STBIW_MALLOC(x * n); if (!line_buffer) { STBIW_FREE(filt); return 0; } - for (j=0; j < y; ++j) { - int filter_type; - if (force_filter > -1) { - filter_type = force_filter; - stbiw__encode_png_line((unsigned char*)(pixels), stride_bytes, x, y, j, n, force_filter, line_buffer); - } else { // Estimate the best filter by running through all of them: - int best_filter = 0, best_filter_val = 0x7fffffff, est, i; - for (filter_type = 0; filter_type < 5; filter_type++) { - stbiw__encode_png_line((unsigned char*)(pixels), stride_bytes, x, y, j, n, filter_type, line_buffer); - - // Estimate the entropy of the line using this filter; the less, the better. - est = 0; - for (i = 0; i < x*n; ++i) { - est += abs((signed char) line_buffer[i]); - } - if (est < best_filter_val) { - best_filter_val = est; - best_filter = filter_type; - } - } - if (filter_type != best_filter) { // If the last iteration already got us the best filter, don't redo it - stbiw__encode_png_line((unsigned char*)(pixels), stride_bytes, x, y, j, n, best_filter, line_buffer); - filter_type = best_filter; - } - } - // when we get here, filter_type contains the filter type, and line_buffer contains the data - filt[j*(x*n+1)] = (unsigned char) filter_type; - STBIW_MEMMOVE(filt+j*(x*n+1)+1, line_buffer, x*n); - } - STBIW_FREE(line_buffer); - zlib = stbi_zlib_compress(filt, y*( x*n+1), &zlen, stbi_write_png_compression_level); - STBIW_FREE(filt); - if (!zlib) return 0; - - // each tag requires 12 bytes of overhead - out = (unsigned char *) STBIW_MALLOC(8 + 12+13 + 12+zlen + 12); - if (!out) return 0; - *out_len = 8 + 12+13 + 12+zlen + 12; - - o=out; - STBIW_MEMMOVE(o,sig,8); o+= 8; - stbiw__wp32(o, 13); // header length - stbiw__wptag(o, "IHDR"); - stbiw__wp32(o, x); - stbiw__wp32(o, y); - *o++ = 8; - *o++ = STBIW_UCHAR(ctype[n]); - *o++ = 0; - *o++ = 0; - *o++ = 0; - stbiw__wpcrc(&o,13); - - stbiw__wp32(o, zlen); - stbiw__wptag(o, "IDAT"); - STBIW_MEMMOVE(o, zlib, zlen); - o += zlen; - STBIW_FREE(zlib); - stbiw__wpcrc(&o, zlen); - - stbiw__wp32(o,0); - stbiw__wptag(o, "IEND"); - stbiw__wpcrc(&o,0); - - STBIW_ASSERT(o == out + *out_len); - - return out; -} - -#ifndef STBI_WRITE_NO_STDIO -STBIWDEF int stbi_write_png(char const *filename, int x, int y, int comp, const void *data, int stride_bytes) -{ - FILE *f; - int len; - unsigned char *png = stbi_write_png_to_mem((const unsigned char *) data, stride_bytes, x, y, comp, &len); - if (png == NULL) return 0; - - f = stbiw__fopen(filename, "wb"); - if (!f) { STBIW_FREE(png); return 0; } - fwrite(png, 1, len, f); - fclose(f); - STBIW_FREE(png); - return 1; -} -#endif //!STBIW_NO_STDIO - -STBIWDEF int stbi_write_png_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int stride_bytes) -{ - int len; - unsigned char *png = stbi_write_png_to_mem((const unsigned char *) data, stride_bytes, x, y, comp, &len); - if (png == NULL) return 0; - func(context, png, len); - STBIW_FREE(png); - return 1; -} -#endif //!STBIW_NO_PNG - - -/* *************************************************************************** - * - * JPEG writer - * - * This is based on Jon Olick's jo_jpeg.cpp: - * public domain Simple, Minimalistic JPEG writer - http://www.jonolick.com/code.html - */ - -#ifndef STBIW_NO_JPEG -static const unsigned char stbiw__jpg_ZigZag[] = { 0,1,5,6,14,15,27,28,2,4,7,13,16,26,29,42,3,8,12,17,25,30,41,43,9,11,18, - 24,31,40,44,53,10,19,23,32,39,45,52,54,20,22,33,38,46,51,55,60,21,34,37,47,50,56,59,61,35,36,48,49,57,58,62,63 }; - -static void stbiw__jpg_writeBits(stbi__write_context *s, int *bitBufP, int *bitCntP, const unsigned short *bs) { - int bitBuf = *bitBufP, bitCnt = *bitCntP; - bitCnt += bs[1]; - bitBuf |= bs[0] << (24 - bitCnt); - while(bitCnt >= 8) { - unsigned char c = (bitBuf >> 16) & 255; - stbiw__putc(s, c); - if(c == 255) { - stbiw__putc(s, 0); - } - bitBuf <<= 8; - bitCnt -= 8; - } - *bitBufP = bitBuf; - *bitCntP = bitCnt; -} - -static void stbiw__jpg_DCT(float *d0p, float *d1p, float *d2p, float *d3p, float *d4p, float *d5p, float *d6p, float *d7p) { - float d0 = *d0p, d1 = *d1p, d2 = *d2p, d3 = *d3p, d4 = *d4p, d5 = *d5p, d6 = *d6p, d7 = *d7p; - float z1, z2, z3, z4, z5, z11, z13; - - float tmp0 = d0 + d7; - float tmp7 = d0 - d7; - float tmp1 = d1 + d6; - float tmp6 = d1 - d6; - float tmp2 = d2 + d5; - float tmp5 = d2 - d5; - float tmp3 = d3 + d4; - float tmp4 = d3 - d4; - - // Even part - float tmp10 = tmp0 + tmp3; // phase 2 - float tmp13 = tmp0 - tmp3; - float tmp11 = tmp1 + tmp2; - float tmp12 = tmp1 - tmp2; - - d0 = tmp10 + tmp11; // phase 3 - d4 = tmp10 - tmp11; - - z1 = (tmp12 + tmp13) * 0.707106781f; // c4 - d2 = tmp13 + z1; // phase 5 - d6 = tmp13 - z1; - - // Odd part - tmp10 = tmp4 + tmp5; // phase 2 - tmp11 = tmp5 + tmp6; - tmp12 = tmp6 + tmp7; - - // The rotator is modified from fig 4-8 to avoid extra negations. - z5 = (tmp10 - tmp12) * 0.382683433f; // c6 - z2 = tmp10 * 0.541196100f + z5; // c2-c6 - z4 = tmp12 * 1.306562965f + z5; // c2+c6 - z3 = tmp11 * 0.707106781f; // c4 - - z11 = tmp7 + z3; // phase 5 - z13 = tmp7 - z3; - - *d5p = z13 + z2; // phase 6 - *d3p = z13 - z2; - *d1p = z11 + z4; - *d7p = z11 - z4; - - *d0p = d0; *d2p = d2; *d4p = d4; *d6p = d6; -} - -static void stbiw__jpg_calcBits(int val, unsigned short bits[2]) { - int tmp1 = val < 0 ? -val : val; - val = val < 0 ? val-1 : val; - bits[1] = 1; - while(tmp1 >>= 1) { - ++bits[1]; - } - bits[0] = val & ((1<0)&&(DU[end0pos]==0); --end0pos) { - } - // end0pos = first element in reverse order !=0 - if(end0pos == 0) { - stbiw__jpg_writeBits(s, bitBuf, bitCnt, EOB); - return DU[0]; - } - for(i = 1; i <= end0pos; ++i) { - int startpos = i; - int nrzeroes; - unsigned short bits[2]; - for (; DU[i]==0 && i<=end0pos; ++i) { - } - nrzeroes = i-startpos; - if ( nrzeroes >= 16 ) { - int lng = nrzeroes>>4; - int nrmarker; - for (nrmarker=1; nrmarker <= lng; ++nrmarker) - stbiw__jpg_writeBits(s, bitBuf, bitCnt, M16zeroes); - nrzeroes &= 15; - } - stbiw__jpg_calcBits(DU[i], bits); - stbiw__jpg_writeBits(s, bitBuf, bitCnt, HTAC[(nrzeroes<<4)+bits[1]]); - stbiw__jpg_writeBits(s, bitBuf, bitCnt, bits); - } - if(end0pos != 63) { - stbiw__jpg_writeBits(s, bitBuf, bitCnt, EOB); - } - return DU[0]; -} - -static int stbi_write_jpg_core(stbi__write_context *s, int width, int height, int comp, const void* data, int quality) { - // Constants that don't pollute global namespace - static const unsigned char std_dc_luminance_nrcodes[] = {0,0,1,5,1,1,1,1,1,1,0,0,0,0,0,0,0}; - static const unsigned char std_dc_luminance_values[] = {0,1,2,3,4,5,6,7,8,9,10,11}; - static const unsigned char std_ac_luminance_nrcodes[] = {0,0,2,1,3,3,2,4,3,5,5,4,4,0,0,1,0x7d}; - static const unsigned char std_ac_luminance_values[] = { - 0x01,0x02,0x03,0x00,0x04,0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,0x91,0xa1,0x08, - 0x23,0x42,0xb1,0xc1,0x15,0x52,0xd1,0xf0,0x24,0x33,0x62,0x72,0x82,0x09,0x0a,0x16,0x17,0x18,0x19,0x1a,0x25,0x26,0x27,0x28, - 0x29,0x2a,0x34,0x35,0x36,0x37,0x38,0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58,0x59, - 0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x83,0x84,0x85,0x86,0x87,0x88,0x89, - 0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4,0xb5,0xb6, - 0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda,0xe1,0xe2, - 0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf1,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa - }; - static const unsigned char std_dc_chrominance_nrcodes[] = {0,0,3,1,1,1,1,1,1,1,1,1,0,0,0,0,0}; - static const unsigned char std_dc_chrominance_values[] = {0,1,2,3,4,5,6,7,8,9,10,11}; - static const unsigned char std_ac_chrominance_nrcodes[] = {0,0,2,1,2,4,4,3,4,7,5,4,4,0,1,2,0x77}; - static const unsigned char std_ac_chrominance_values[] = { - 0x00,0x01,0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13,0x22,0x32,0x81,0x08,0x14,0x42,0x91, - 0xa1,0xb1,0xc1,0x09,0x23,0x33,0x52,0xf0,0x15,0x62,0x72,0xd1,0x0a,0x16,0x24,0x34,0xe1,0x25,0xf1,0x17,0x18,0x19,0x1a,0x26, - 0x27,0x28,0x29,0x2a,0x35,0x36,0x37,0x38,0x39,0x3a,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4a,0x53,0x54,0x55,0x56,0x57,0x58, - 0x59,0x5a,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6a,0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7a,0x82,0x83,0x84,0x85,0x86,0x87, - 0x88,0x89,0x8a,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9a,0xa2,0xa3,0xa4,0xa5,0xa6,0xa7,0xa8,0xa9,0xaa,0xb2,0xb3,0xb4, - 0xb5,0xb6,0xb7,0xb8,0xb9,0xba,0xc2,0xc3,0xc4,0xc5,0xc6,0xc7,0xc8,0xc9,0xca,0xd2,0xd3,0xd4,0xd5,0xd6,0xd7,0xd8,0xd9,0xda, - 0xe2,0xe3,0xe4,0xe5,0xe6,0xe7,0xe8,0xe9,0xea,0xf2,0xf3,0xf4,0xf5,0xf6,0xf7,0xf8,0xf9,0xfa - }; - // Huffman tables - static const unsigned short YDC_HT[256][2] = { {0,2},{2,3},{3,3},{4,3},{5,3},{6,3},{14,4},{30,5},{62,6},{126,7},{254,8},{510,9}}; - static const unsigned short UVDC_HT[256][2] = { {0,2},{1,2},{2,2},{6,3},{14,4},{30,5},{62,6},{126,7},{254,8},{510,9},{1022,10},{2046,11}}; - static const unsigned short YAC_HT[256][2] = { - {10,4},{0,2},{1,2},{4,3},{11,4},{26,5},{120,7},{248,8},{1014,10},{65410,16},{65411,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {12,4},{27,5},{121,7},{502,9},{2038,11},{65412,16},{65413,16},{65414,16},{65415,16},{65416,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {28,5},{249,8},{1015,10},{4084,12},{65417,16},{65418,16},{65419,16},{65420,16},{65421,16},{65422,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {58,6},{503,9},{4085,12},{65423,16},{65424,16},{65425,16},{65426,16},{65427,16},{65428,16},{65429,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {59,6},{1016,10},{65430,16},{65431,16},{65432,16},{65433,16},{65434,16},{65435,16},{65436,16},{65437,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {122,7},{2039,11},{65438,16},{65439,16},{65440,16},{65441,16},{65442,16},{65443,16},{65444,16},{65445,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {123,7},{4086,12},{65446,16},{65447,16},{65448,16},{65449,16},{65450,16},{65451,16},{65452,16},{65453,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {250,8},{4087,12},{65454,16},{65455,16},{65456,16},{65457,16},{65458,16},{65459,16},{65460,16},{65461,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {504,9},{32704,15},{65462,16},{65463,16},{65464,16},{65465,16},{65466,16},{65467,16},{65468,16},{65469,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {505,9},{65470,16},{65471,16},{65472,16},{65473,16},{65474,16},{65475,16},{65476,16},{65477,16},{65478,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {506,9},{65479,16},{65480,16},{65481,16},{65482,16},{65483,16},{65484,16},{65485,16},{65486,16},{65487,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {1017,10},{65488,16},{65489,16},{65490,16},{65491,16},{65492,16},{65493,16},{65494,16},{65495,16},{65496,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {1018,10},{65497,16},{65498,16},{65499,16},{65500,16},{65501,16},{65502,16},{65503,16},{65504,16},{65505,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {2040,11},{65506,16},{65507,16},{65508,16},{65509,16},{65510,16},{65511,16},{65512,16},{65513,16},{65514,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {65515,16},{65516,16},{65517,16},{65518,16},{65519,16},{65520,16},{65521,16},{65522,16},{65523,16},{65524,16},{0,0},{0,0},{0,0},{0,0},{0,0}, - {2041,11},{65525,16},{65526,16},{65527,16},{65528,16},{65529,16},{65530,16},{65531,16},{65532,16},{65533,16},{65534,16},{0,0},{0,0},{0,0},{0,0},{0,0} - }; - static const unsigned short UVAC_HT[256][2] = { - {0,2},{1,2},{4,3},{10,4},{24,5},{25,5},{56,6},{120,7},{500,9},{1014,10},{4084,12},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {11,4},{57,6},{246,8},{501,9},{2038,11},{4085,12},{65416,16},{65417,16},{65418,16},{65419,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {26,5},{247,8},{1015,10},{4086,12},{32706,15},{65420,16},{65421,16},{65422,16},{65423,16},{65424,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {27,5},{248,8},{1016,10},{4087,12},{65425,16},{65426,16},{65427,16},{65428,16},{65429,16},{65430,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {58,6},{502,9},{65431,16},{65432,16},{65433,16},{65434,16},{65435,16},{65436,16},{65437,16},{65438,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {59,6},{1017,10},{65439,16},{65440,16},{65441,16},{65442,16},{65443,16},{65444,16},{65445,16},{65446,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {121,7},{2039,11},{65447,16},{65448,16},{65449,16},{65450,16},{65451,16},{65452,16},{65453,16},{65454,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {122,7},{2040,11},{65455,16},{65456,16},{65457,16},{65458,16},{65459,16},{65460,16},{65461,16},{65462,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {249,8},{65463,16},{65464,16},{65465,16},{65466,16},{65467,16},{65468,16},{65469,16},{65470,16},{65471,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {503,9},{65472,16},{65473,16},{65474,16},{65475,16},{65476,16},{65477,16},{65478,16},{65479,16},{65480,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {504,9},{65481,16},{65482,16},{65483,16},{65484,16},{65485,16},{65486,16},{65487,16},{65488,16},{65489,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {505,9},{65490,16},{65491,16},{65492,16},{65493,16},{65494,16},{65495,16},{65496,16},{65497,16},{65498,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {506,9},{65499,16},{65500,16},{65501,16},{65502,16},{65503,16},{65504,16},{65505,16},{65506,16},{65507,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {2041,11},{65508,16},{65509,16},{65510,16},{65511,16},{65512,16},{65513,16},{65514,16},{65515,16},{65516,16},{0,0},{0,0},{0,0},{0,0},{0,0},{0,0}, - {16352,14},{65517,16},{65518,16},{65519,16},{65520,16},{65521,16},{65522,16},{65523,16},{65524,16},{65525,16},{0,0},{0,0},{0,0},{0,0},{0,0}, - {1018,10},{32707,15},{65526,16},{65527,16},{65528,16},{65529,16},{65530,16},{65531,16},{65532,16},{65533,16},{65534,16},{0,0},{0,0},{0,0},{0,0},{0,0} - }; - static const int YQT[] = {16,11,10,16,24,40,51,61,12,12,14,19,26,58,60,55,14,13,16,24,40,57,69,56,14,17,22,29,51,87,80,62,18,22, - 37,56,68,109,103,77,24,35,55,64,81,104,113,92,49,64,78,87,103,121,120,101,72,92,95,98,112,100,103,99}; - static const int UVQT[] = {17,18,24,47,99,99,99,99,18,21,26,66,99,99,99,99,24,26,56,99,99,99,99,99,47,66,99,99,99,99,99,99, - 99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99,99}; - static const float aasf[] = { 1.0f * 2.828427125f, 1.387039845f * 2.828427125f, 1.306562965f * 2.828427125f, 1.175875602f * 2.828427125f, - 1.0f * 2.828427125f, 0.785694958f * 2.828427125f, 0.541196100f * 2.828427125f, 0.275899379f * 2.828427125f }; - - int row, col, i, k, subsample; - float fdtbl_Y[64], fdtbl_UV[64]; - unsigned char YTable[64], UVTable[64]; - - if(!data || !width || !height || comp > 4 || comp < 1) { - return 0; - } - - quality = quality ? quality : 90; - subsample = quality <= 90 ? 1 : 0; - quality = quality < 1 ? 1 : quality > 100 ? 100 : quality; - quality = quality < 50 ? 5000 / quality : 200 - quality * 2; - - for(i = 0; i < 64; ++i) { - int uvti, yti = (YQT[i]*quality+50)/100; - YTable[stbiw__jpg_ZigZag[i]] = (unsigned char) (yti < 1 ? 1 : yti > 255 ? 255 : yti); - uvti = (UVQT[i]*quality+50)/100; - UVTable[stbiw__jpg_ZigZag[i]] = (unsigned char) (uvti < 1 ? 1 : uvti > 255 ? 255 : uvti); - } - - for(row = 0, k = 0; row < 8; ++row) { - for(col = 0; col < 8; ++col, ++k) { - fdtbl_Y[k] = 1 / (YTable [stbiw__jpg_ZigZag[k]] * aasf[row] * aasf[col]); - fdtbl_UV[k] = 1 / (UVTable[stbiw__jpg_ZigZag[k]] * aasf[row] * aasf[col]); - } - } - - // Write Headers - { - static const unsigned char head0[] = { 0xFF,0xD8,0xFF,0xE0,0,0x10,'J','F','I','F',0,1,1,0,0,1,0,1,0,0,0xFF,0xDB,0,0x84,0 }; - static const unsigned char head2[] = { 0xFF,0xDA,0,0xC,3,1,0,2,0x11,3,0x11,0,0x3F,0 }; - const unsigned char head1[] = { 0xFF,0xC0,0,0x11,8,(unsigned char)(height>>8),STBIW_UCHAR(height),(unsigned char)(width>>8),STBIW_UCHAR(width), - 3,1,(unsigned char)(subsample?0x22:0x11),0,2,0x11,1,3,0x11,1,0xFF,0xC4,0x01,0xA2,0 }; - s->func(s->context, (void*)head0, sizeof(head0)); - s->func(s->context, (void*)YTable, sizeof(YTable)); - stbiw__putc(s, 1); - s->func(s->context, UVTable, sizeof(UVTable)); - s->func(s->context, (void*)head1, sizeof(head1)); - s->func(s->context, (void*)(std_dc_luminance_nrcodes+1), sizeof(std_dc_luminance_nrcodes)-1); - s->func(s->context, (void*)std_dc_luminance_values, sizeof(std_dc_luminance_values)); - stbiw__putc(s, 0x10); // HTYACinfo - s->func(s->context, (void*)(std_ac_luminance_nrcodes+1), sizeof(std_ac_luminance_nrcodes)-1); - s->func(s->context, (void*)std_ac_luminance_values, sizeof(std_ac_luminance_values)); - stbiw__putc(s, 1); // HTUDCinfo - s->func(s->context, (void*)(std_dc_chrominance_nrcodes+1), sizeof(std_dc_chrominance_nrcodes)-1); - s->func(s->context, (void*)std_dc_chrominance_values, sizeof(std_dc_chrominance_values)); - stbiw__putc(s, 0x11); // HTUACinfo - s->func(s->context, (void*)(std_ac_chrominance_nrcodes+1), sizeof(std_ac_chrominance_nrcodes)-1); - s->func(s->context, (void*)std_ac_chrominance_values, sizeof(std_ac_chrominance_values)); - s->func(s->context, (void*)head2, sizeof(head2)); - } - - // Encode 8x8 macroblocks - { - static const unsigned short fillBits[] = {0x7F, 7}; - int DCY=0, DCU=0, DCV=0; - int bitBuf=0, bitCnt=0; - // comp == 2 is grey+alpha (alpha is ignored) - int ofsG = comp > 2 ? 1 : 0, ofsB = comp > 2 ? 2 : 0; - const unsigned char *dataR = (const unsigned char *)data; - const unsigned char *dataG = dataR + ofsG; - const unsigned char *dataB = dataR + ofsB; - int x, y, pos; - if(subsample) { - for(y = 0; y < height; y += 16) { - for(x = 0; x < width; x += 16) { - float Y[256], U[256], V[256]; - for(row = y, pos = 0; row < y+16; ++row) { - // row >= height => use last input row - int clamped_row = (row < height) ? row : height - 1; - int base_p = (stbi__flip_vertically_on_write ? (height-1-clamped_row) : clamped_row)*width*comp; - for(col = x; col < x+16; ++col, ++pos) { - // if col >= width => use pixel from last input column - int p = base_p + ((col < width) ? col : (width-1))*comp; - float r = dataR[p], g = dataG[p], b = dataB[p]; - Y[pos]= +0.29900f*r + 0.58700f*g + 0.11400f*b - 128; - U[pos]= -0.16874f*r - 0.33126f*g + 0.50000f*b; - V[pos]= +0.50000f*r - 0.41869f*g - 0.08131f*b; - } - } - DCY = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, Y+0, 16, fdtbl_Y, DCY, YDC_HT, YAC_HT); - DCY = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, Y+8, 16, fdtbl_Y, DCY, YDC_HT, YAC_HT); - DCY = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, Y+128, 16, fdtbl_Y, DCY, YDC_HT, YAC_HT); - DCY = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, Y+136, 16, fdtbl_Y, DCY, YDC_HT, YAC_HT); - - // subsample U,V - { - float subU[64], subV[64]; - int yy, xx; - for(yy = 0, pos = 0; yy < 8; ++yy) { - for(xx = 0; xx < 8; ++xx, ++pos) { - int j = yy*32+xx*2; - subU[pos] = (U[j+0] + U[j+1] + U[j+16] + U[j+17]) * 0.25f; - subV[pos] = (V[j+0] + V[j+1] + V[j+16] + V[j+17]) * 0.25f; - } - } - DCU = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, subU, 8, fdtbl_UV, DCU, UVDC_HT, UVAC_HT); - DCV = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, subV, 8, fdtbl_UV, DCV, UVDC_HT, UVAC_HT); - } - } - } - } else { - for(y = 0; y < height; y += 8) { - for(x = 0; x < width; x += 8) { - float Y[64], U[64], V[64]; - for(row = y, pos = 0; row < y+8; ++row) { - // row >= height => use last input row - int clamped_row = (row < height) ? row : height - 1; - int base_p = (stbi__flip_vertically_on_write ? (height-1-clamped_row) : clamped_row)*width*comp; - for(col = x; col < x+8; ++col, ++pos) { - // if col >= width => use pixel from last input column - int p = base_p + ((col < width) ? col : (width-1))*comp; - float r = dataR[p], g = dataG[p], b = dataB[p]; - Y[pos]= +0.29900f*r + 0.58700f*g + 0.11400f*b - 128; - U[pos]= -0.16874f*r - 0.33126f*g + 0.50000f*b; - V[pos]= +0.50000f*r - 0.41869f*g - 0.08131f*b; - } - } - - DCY = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, Y, 8, fdtbl_Y, DCY, YDC_HT, YAC_HT); - DCU = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, U, 8, fdtbl_UV, DCU, UVDC_HT, UVAC_HT); - DCV = stbiw__jpg_processDU(s, &bitBuf, &bitCnt, V, 8, fdtbl_UV, DCV, UVDC_HT, UVAC_HT); - } - } - } - - // Do the bit alignment of the EOI marker - stbiw__jpg_writeBits(s, &bitBuf, &bitCnt, fillBits); - } - - // EOI - stbiw__putc(s, 0xFF); - stbiw__putc(s, 0xD9); - - return 1; -} - -STBIWDEF int stbi_write_jpg_to_func(stbi_write_func *func, void *context, int x, int y, int comp, const void *data, int quality) -{ - stbi__write_context s = { 0 }; - stbi__start_write_callbacks(&s, func, context); - return stbi_write_jpg_core(&s, x, y, comp, (void *) data, quality); -} - - -#ifndef STBI_WRITE_NO_STDIO -STBIWDEF int stbi_write_jpg(char const *filename, int x, int y, int comp, const void *data, int quality) -{ - stbi__write_context s = { 0 }; - if (stbi__start_write_file(&s,filename)) { - int r = stbi_write_jpg_core(&s, x, y, comp, data, quality); - stbi__end_write_file(&s); - return r; - } else - return 0; -} -#endif //!STBIW_NO_STDIO -#endif //!STBIW_NO_JPEG - -#endif // STB_IMAGE_WRITE_IMPLEMENTATION - -/* Revision history - 1.14 (2020-02-02) updated JPEG writer to downsample chroma channels - 1.13 - 1.12 - 1.11 (2019-08-11) - - 1.10 (2019-02-07) - support utf8 filenames in Windows; fix warnings and platform ifdefs - 1.09 (2018-02-11) - fix typo in zlib quality API, improve STB_I_W_STATIC in C++ - 1.08 (2018-01-29) - add stbi__flip_vertically_on_write, external zlib, zlib quality, choose PNG filter - 1.07 (2017-07-24) - doc fix - 1.06 (2017-07-23) - writing JPEG (using Jon Olick's code) - 1.05 ??? - 1.04 (2017-03-03) - monochrome BMP expansion - 1.03 ??? - 1.02 (2016-04-02) - avoid allocating large structures on the stack - 1.01 (2016-01-16) - STBIW_REALLOC_SIZED: support allocators with no realloc support - avoid race-condition in crc initialization - minor compile issues - 1.00 (2015-09-14) - installable file IO function - 0.99 (2015-09-13) - warning fixes; TGA rle support - 0.98 (2015-04-08) - added STBIW_MALLOC, STBIW_ASSERT etc - 0.97 (2015-01-18) - fixed HDR asserts, rewrote HDR rle logic - 0.96 (2015-01-17) - add HDR output - fix monochrome BMP - 0.95 (2014-08-17) - add monochrome TGA output - 0.94 (2014-05-31) - rename private functions to avoid conflicts with stb_image.h - 0.93 (2014-05-27) - warning fixes - 0.92 (2010-08-01) - casts to unsigned char to fix warnings - 0.91 (2010-07-17) - first public release - 0.90 first internal release -*/ - -/* ------------------------------------------------------------------------------- -This software is available under 2 licenses -- choose whichever you prefer. ------------------------------------------------------------------------------- -ALTERNATIVE A - MIT License -Copyright (c) 2017 Sean Barrett -Permission is hereby granted, free of charge, to any person obtaining a copy of -this software and associated documentation files (the "Software"), to deal in -the Software without restriction, including without limitation the rights to -use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies -of the Software, and to permit persons to whom the Software is furnished to do -so, subject to the following conditions: -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. ------------------------------------------------------------------------------- -ALTERNATIVE B - Public Domain (www.unlicense.org) -This is free and unencumbered software released into the public domain. -Anyone is free to copy, modify, publish, use, compile, sell, or distribute this -software, either in source code form or as a compiled binary, for any purpose, -commercial or non-commercial, and by any means. -In jurisdictions that recognize copyright laws, the author or authors of this -software dedicate any and all copyright interest in the software to the public -domain. We make this dedication for the benefit of the public at large and to -the detriment of our heirs and successors. We intend this dedication to be an -overt act of relinquishment in perpetuity of all present and future rights to -this software under copyright law. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN -ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ------------------------------------------------------------------------------- -*/ diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/FNA3D.sln b/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/FNA3D.sln deleted file mode 100644 index 1ead996c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/FNA3D.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.29806.167 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FNA3D", "FNA3D.vcxproj", "{7BED816B-7214-42F6-AF4B-4C59CB207630}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {7BED816B-7214-42F6-AF4B-4C59CB207630}.Debug|x64.ActiveCfg = Debug|x64 - {7BED816B-7214-42F6-AF4B-4C59CB207630}.Debug|x64.Build.0 = Debug|x64 - {7BED816B-7214-42F6-AF4B-4C59CB207630}.Release|x64.ActiveCfg = Release|x64 - {7BED816B-7214-42F6-AF4B-4C59CB207630}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {BAAFAAAE-FEC3-48E2-B8CD-699C0ABB4E90} - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/FNA3D.vcxproj b/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/FNA3D.vcxproj deleted file mode 100644 index 12ac8362..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/FNA3D.vcxproj +++ /dev/null @@ -1,110 +0,0 @@ - - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - {7bed816b-7214-42f6-af4b-4c59cb207630} - DynamicLibrary - FNA3D - en-US - 14.0 - true - Windows Store - 10.0.10240.0 - 10.0.10240.0 - 10.0 - - - - DynamicLibrary - true - v141 - - - DynamicLibrary - false - true - v141 - - - - - - - - - - - - - - - - false - false - ..\..\SDL2\include;..\MojoShader;..\include;$(IncludePath) - ..\..\SDL2\VisualC-WinRT\$(Platform)\$(Configuration)\SDL-UWP;$(LibraryPath) - - - false - false - ..\..\SDL2\include;..\MojoShader;..\include;$(IncludePath) - ..\..\SDL2\VisualC-WinRT\$(Platform)\$(Configuration)\SDL-UWP;$(LibraryPath) - - - - NotUsing - false - _WINDLL;_CRT_SECURE_NO_WARNINGS;FNA3D_DRIVER_D3D11;MOJOSHADER_NO_VERSION_INCLUDE;MOJOSHADER_USE_SDL_STDLIB;MOJOSHADER_EFFECT_SUPPORT;MOJOSHADER_DEPTH_CLIPPING;MOJOSHADER_FLIP_RENDERTARGET;MOJOSHADER_XNA4_VERTEX_TEXTURES;SUPPORT_PROFILE_ARB1=0;SUPPORT_PROFILE_ARB1_NV=0;SUPPORT_PROFILE_BYTECODE=0;SUPPORT_PROFILE_D3D=0;SUPPORT_PROFILE_GLSL=0;SUPPORT_PROFILE_GLSL120=0;SUPPORT_PROFILE_GLSLES=0;SUPPORT_PROFILE_METAL=0;SUPPORT_PROFILE_SPIRV=0;SUPPORT_PROFILE_GLSPIRV=0;%(PreprocessorDefinitions) - - - Console - false - false - WindowsApp.lib;SDL2.lib;%(AdditionalDependencies) - - - - - NotUsing - false - _WINDLL;_CRT_SECURE_NO_WARNINGS;FNA3D_DRIVER_D3D11;MOJOSHADER_NO_VERSION_INCLUDE;MOJOSHADER_USE_SDL_STDLIB;MOJOSHADER_EFFECT_SUPPORT;MOJOSHADER_DEPTH_CLIPPING;MOJOSHADER_FLIP_RENDERTARGET;MOJOSHADER_XNA4_VERTEX_TEXTURES;SUPPORT_PROFILE_ARB1=0;SUPPORT_PROFILE_ARB1_NV=0;SUPPORT_PROFILE_BYTECODE=0;SUPPORT_PROFILE_D3D=0;SUPPORT_PROFILE_GLSL=0;SUPPORT_PROFILE_GLSL120=0;SUPPORT_PROFILE_GLSLES=0;SUPPORT_PROFILE_METAL=0;SUPPORT_PROFILE_SPIRV=0;SUPPORT_PROFILE_GLSPIRV=0;%(PreprocessorDefinitions) - - - Console - false - false - WindowsApp.lib;SDL2.lib;%(AdditionalDependencies) - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/README b/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/README deleted file mode 100644 index 2604a465..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc-winrt/README +++ /dev/null @@ -1,19 +0,0 @@ -Building FNA3D for UWP ----------------------- -FNA3D uses Visual Studio 2017 to build on Xbox One. - -Dependencies ------------- -Before building, download SDL2's source code from SDL's website: - -http://libsdl.org/download-2.0.php - -Extract the ZIP file's SDL2 directory (called something like 'SDL2-2.0.8') as -a sibling to your FNA3D checkout and rename it to 'SDL2', so that you have -directories named 'FNA3D' and 'SDL2' next to each other. - -Compiling ---------- -1. Build SDL2/VisualC-WinRT/UWP_VS2015/SDL-UWP.sln -2. Build FNA3D.sln -3. Grab FNA3D.dll and SDL2.dll, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.sln b/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.sln deleted file mode 100644 index 9bc91b16..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FNA3D", "FNA3D.vcxproj", "{6DB15344-E000-45CB-A48A-1D72F7D6E945}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|Win32.ActiveCfg = Debug|Win32 - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|Win32.Build.0 = Debug|Win32 - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|Win32.ActiveCfg = Release|Win32 - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|Win32.Build.0 = Release|Win32 - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x64.ActiveCfg = Debug|x64 - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Debug|x64.Build.0 = Debug|x64 - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x64.ActiveCfg = Release|x64 - {6DB15344-E000-45CB-A48A-1D72F7D6E945}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.vcxproj b/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.vcxproj deleted file mode 100644 index 06a8d6be..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.vcxproj +++ /dev/null @@ -1,132 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {6DB15344-E000-45CB-A48A-1D72F7D6E945} - FNA3D - - - - DynamicLibrary - true - MultiByte - - - DynamicLibrary - false - true - MultiByte - - - - - - - - - - ..\..\SDL2\include;..\MojoShader;..\include;$(DXSDK_DIR)\Include;..\Vulkan-Headers\include;$(IncludePath) - ..\..\SDL2\lib\$(PlatformShortName);$(LibraryPath) - - - - Level3 - Disabled - FNA3D_DRIVER_OPENGL;FNA3D_DRIVER_D3D11;FNA3D_DRIVER_VULKAN;MOJOSHADER_NO_VERSION_INCLUDE;MOJOSHADER_USE_SDL_STDLIB;MOJOSHADER_EFFECT_SUPPORT;MOJOSHADER_DEPTH_CLIPPING;MOJOSHADER_FLIP_RENDERTARGET;MOJOSHADER_XNA4_VERTEX_TEXTURES;SUPPORT_PROFILE_ARB1=0;SUPPORT_PROFILE_ARB1_NV=0;SUPPORT_PROFILE_BYTECODE=0;SUPPORT_PROFILE_D3D=0;SUPPORT_PROFILE_METAL=0;%(PreprocessorDefinitions) - - - true - SDL2.lib;%(AdditionalDependencies) - - - - - Level3 - MaxSpeed - FNA3D_DRIVER_OPENGL;FNA3D_DRIVER_D3D11;FNA3D_DRIVER_VULKAN;MOJOSHADER_NO_VERSION_INCLUDE;MOJOSHADER_USE_SDL_STDLIB;MOJOSHADER_EFFECT_SUPPORT;MOJOSHADER_DEPTH_CLIPPING;MOJOSHADER_FLIP_RENDERTARGET;MOJOSHADER_XNA4_VERTEX_TEXTURES;SUPPORT_PROFILE_ARB1=0;SUPPORT_PROFILE_ARB1_NV=0;SUPPORT_PROFILE_BYTECODE=0;SUPPORT_PROFILE_D3D=0;SUPPORT_PROFILE_METAL=0;%(PreprocessorDefinitions) - true - true - - - true - true - SDL2.lib;%(AdditionalDependencies) - - - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - CompileAsCpp - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.vcxproj.filters b/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.vcxproj.filters deleted file mode 100644 index 17b9eecb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/FNA3D.vcxproj.filters +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - mojoshader - - - mojoshader - - - mojoshader - - - mojoshader - - - mojoshader - - - mojoshader - - - mojoshader - - - mojoshader - - - mojoshader - - - - - mojoshader - - - mojoshader - - - - mojoshader - - - - - - - - - - - - - - - - - - {622c740d-4374-4129-8a11-23bf8075b42c} - - - \ No newline at end of file diff --git a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/README b/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/README deleted file mode 100644 index 74414452..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/FNA3D/visualc/README +++ /dev/null @@ -1,20 +0,0 @@ -Building FNA3D for Windows --------------------------- -FNA3D uses Visual Studio 2010 to build on Windows. - -TODO: REMOVE C RUNTIME DEPENDENCY! - -Dependencies ------------- -Before building, download SDL2's VC development libraries from SDL's website: - -http://libsdl.org/download-2.0.php - -Extract the ZIP file's SDL2 directory (called something like 'SDL2-2.0.8') as -a sibling to your FNA3D checkout and rename it to 'SDL2', so that you have -directories named 'FNA3D' and 'SDL2' next to each other. - -Compiling ---------- -1. Build FNA3D.sln -2. Grab the output DLL along with SDL2.dll, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.github/FUNDING.yml b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.github/FUNDING.yml deleted file mode 100644 index aef30d32..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [flibitijibibo] diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.gitignore b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.gitignore deleted file mode 100644 index ddb8b566..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -bin/ -obj/ -*.pidb -*.userprefs -*.suo diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.gitlab-ci.yml b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.gitlab-ci.yml deleted file mode 100644 index 83255e85..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/.gitlab-ci.yml +++ /dev/null @@ -1,58 +0,0 @@ -stages: - - build - - package - - deploy - -build_net461: - image: mono - stage: build - only: - - schedules - script: - - ./gitlab-ci/build-net461.sh - artifacts: - paths: - - bin/ - tags: - - docker - -build_netcore: - image: microsoft/dotnet:2.1-sdk - stage: build - only: - - schedules - script: - - ./gitlab-ci/build-netcore.sh - artifacts: - paths: - - bin/ - tags: - - docker - -package_nuget: - image: mono - stage: package - only: - - schedules - script: - - ./gitlab-ci/package.sh - dependencies: - - build_net461 - - build_netcore - artifacts: - paths: - - '*.nupkg' - -deploy_nuget: - image: mono - stage: deploy - only: - - schedules - script: - - ./gitlab-ci/deploy.sh - dependencies: - - package_nuget - environment: - name: nuget - url: http://nuget.org/ - diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/LICENSE b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/LICENSE deleted file mode 100644 index 7e8803e4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/Makefile b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/Makefile deleted file mode 100644 index c2fc0b0b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/Makefile +++ /dev/null @@ -1,33 +0,0 @@ -# Makefile for SDL2# -# Written by Ethan "flibitijibibo" Lee - -# Source Lists -SRC = \ - src/SDL2.cs \ - src/SDL2_gfx.cs \ - src/SDL2_image.cs \ - src/SDL2_mixer.cs \ - src/SDL2_ttf.cs - -# Targets - -debug: clean-debug - mkdir -p bin/Debug - cp app.config bin/Debug/SDL2-CS.dll.config - mcs /unsafe -debug -out:bin/Debug/SDL2-CS.dll -target:library $(SRC) - -clean-debug: - rm -rf bin/Debug - -release: clean-release - mkdir -p bin/Release - cp app.config bin/Release/SDL2-CS.dll.config - mcs /unsafe -optimize -out:bin/Release/SDL2-CS.dll -target:library $(SRC) - -clean-release: - rm -rf bin/Release - -clean: clean-debug clean-release - rm -rf bin - -all: debug release diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/README b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/README deleted file mode 100644 index 3b0ad71a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/README +++ /dev/null @@ -1,43 +0,0 @@ -This is SDL2#, a C# wrapper for SDL2. - -Project Website: https://github.com/flibitijibibo/SDL2-CS - -License -------- -SDL2 and SDL2# are released under the zlib license. See LICENSE for details. - -About SDL2 ----------- -For more information about SDL2, visit the SDL wiki: - -http://wiki.libsdl.org/moin.fcg/FrontPage - -About the C# Wrapper --------------------- -The C# wrapper was written to be used for FNA's platform support. However, this -is written in a way that can be used for any general C# application. - -The wrapper provides bindings for the following libraries: -- SDL2 -- SDL2_gfx -- SDL2_image -- SDL2_mixer -- SDL2_ttf - -Note that SDL2# will not provide every single SDL2 function. This is due to -limitations in the C# language that would cause major conflicts with the native -SDL2 library and its extensions. - -SDL2# is a pure port of the C headers. The naming schemes for this library will -be exactly as they are done in the C library, with little-to-no concern for -"appropriate" C# style. The namespace indicates that this is SDL2, the class -names will indicate which library file the function/type/value exists in, and -everything else will be as close to the C version as technically possible. - -About the Visual Studio Debugger --------------------------------- -When running C# applications under the Visual Studio debugger, native code that -names threads with the 0x406D1388 exception will silently exit. To prevent this -exception from being thrown by SDL, add this line before your SDL_Init call: - -SDL.SDL_SetHint(SDL.SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING, "1"); diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.Core.csproj b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.Core.csproj deleted file mode 100644 index 03319e2e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.Core.csproj +++ /dev/null @@ -1,31 +0,0 @@ - - - net40;netstandard2.0 - x64 - - - false - SDL2-CS - SDL2 - true - false - - - $(SolutionDir)SDL2-CS.Settings.props - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.csproj b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.csproj deleted file mode 100644 index 87c515df..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.csproj +++ /dev/null @@ -1,102 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {85480198-8711-4355-830E-72FD794AD3F6} - Library - SDL2 - SDL2-CS - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - x86 - false - true - - - none - true - bin\Release - prompt - 4 - x86 - false - true - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - true - - - none - true - bin\Release - prompt - 4 - true - false - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - x64 - true - false - - - none - true - bin\Release - prompt - 4 - x64 - false - true - - - - $(SolutionDir)SDL2-CS.Settings.props - - - - - - - - - - - - - - - - $(TargetFileName).config - PreserveNewest - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.sln b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.sln deleted file mode 100644 index cf0ccf56..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/SDL2-CS.sln +++ /dev/null @@ -1,32 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SDL2-CS", "SDL2-CS.csproj", "{85480198-8711-4355-830E-72FD794AD3F6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {85480198-8711-4355-830E-72FD794AD3F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {85480198-8711-4355-830E-72FD794AD3F6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {85480198-8711-4355-830E-72FD794AD3F6}.Debug|x64.ActiveCfg = Debug|x64 - {85480198-8711-4355-830E-72FD794AD3F6}.Debug|x64.Build.0 = Debug|x64 - {85480198-8711-4355-830E-72FD794AD3F6}.Debug|x86.ActiveCfg = Debug|x86 - {85480198-8711-4355-830E-72FD794AD3F6}.Debug|x86.Build.0 = Debug|x86 - {85480198-8711-4355-830E-72FD794AD3F6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {85480198-8711-4355-830E-72FD794AD3F6}.Release|Any CPU.Build.0 = Release|Any CPU - {85480198-8711-4355-830E-72FD794AD3F6}.Release|x64.ActiveCfg = Release|x64 - {85480198-8711-4355-830E-72FD794AD3F6}.Release|x64.Build.0 = Release|x64 - {85480198-8711-4355-830E-72FD794AD3F6}.Release|x86.ActiveCfg = Release|x86 - {85480198-8711-4355-830E-72FD794AD3F6}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = SDL2-CS.csproj - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/app.config b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/app.config deleted file mode 100644 index 55d49921..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/app.config +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/SDL2-CS.nuspec b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/SDL2-CS.nuspec deleted file mode 100644 index 718dc264..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/SDL2-CS.nuspec +++ /dev/null @@ -1,23 +0,0 @@ - - - - SDL2-CS-Rolling - 2000.1.1 - flibitijibibo - beannaich - https://github.com/flibitijibibo/SDL2-CS/blob/master/LICENSE - https://github.com/flibitijibibo/SDL2-CS - false - SDL2# - C# Wrapper for SDL2 - Copyright 2013-2021 - SDL2# SDL2 SDL - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/build-net461.sh b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/build-net461.sh deleted file mode 100644 index 64d606fa..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/build-net461.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -msbuild /p:Configuration=Release SDL2-CS.csproj diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/build-netcore.sh b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/build-netcore.sh deleted file mode 100644 index 814fb560..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/build-netcore.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash - -dotnet build -c Release SDL2-CS.Core.csproj diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/deploy.sh b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/deploy.sh deleted file mode 100644 index a7113d42..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/deploy.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -nuget setApiKey $NUGET_API_KEY -verbosity quiet - -for package in `find *.nupkg`; do - nuget push $package -source https://nuget.org/ -done diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/package.sh b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/package.sh deleted file mode 100644 index e2c0439a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/gitlab-ci/package.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash - -set -e - -version=`date +"%Y.%m.%d"` - -nuspec="gitlab-ci/SDL2-CS.nuspec" - -nuget pack $nuspec -Version $version diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2.cs b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2.cs deleted file mode 100644 index 9e9dc7f3..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2.cs +++ /dev/null @@ -1,8912 +0,0 @@ -#region License -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ -#endregion - -#region Using Statements -using System; -using System.Diagnostics; -using System.Runtime.InteropServices; -using System.Text; -#endregion - -namespace SDL2 -{ - public static class SDL - { - #region SDL2# Variables - - private const string nativeLibName = "SDL2"; - - #endregion - - #region UTF8 Marshaling - - /* Used for stack allocated string marshaling. */ - internal static int Utf8Size(string str) - { - if (str == null) - { - return 0; - } - return (str.Length * 4) + 1; - } - internal static unsafe byte* Utf8Encode(string str, byte* buffer, int bufferSize) - { - if (str == null) - { - return (byte*) 0; - } - fixed (char* strPtr = str) - { - Encoding.UTF8.GetBytes(strPtr, str.Length + 1, buffer, bufferSize); - } - return buffer; - } - - /* Used for heap allocated string marshaling. - * Returned byte* must be free'd with FreeHGlobal. - */ - internal static unsafe byte* Utf8EncodeHeap(string str) - { - if (str == null) - { - return (byte*) 0; - } - - int bufferSize = Utf8Size(str); - byte* buffer = (byte*) Marshal.AllocHGlobal(bufferSize); - fixed (char* strPtr = str) - { - Encoding.UTF8.GetBytes(strPtr, str.Length + 1, buffer, bufferSize); - } - return buffer; - } - - /* This is public because SDL_DropEvent needs it! */ - public static unsafe string UTF8_ToManaged(IntPtr s, bool freePtr = false) - { - if (s == IntPtr.Zero) - { - return null; - } - - /* We get to do strlen ourselves! */ - byte* ptr = (byte*) s; - while (*ptr != 0) - { - ptr++; - } - - /* TODO: This #ifdef is only here because the equivalent - * .NET 2.0 constructor appears to be less efficient? - * Here's the pretty version, maybe steal this instead: - * - string result = new string( - (sbyte*) s, // Also, why sbyte??? - 0, - (int) (ptr - (byte*) s), - System.Text.Encoding.UTF8 - ); - * See the CoreCLR source for more info. - * -flibit - */ -#if NETSTANDARD2_0 - /* Modern C# lets you just send the byte*, nice! */ - string result = System.Text.Encoding.UTF8.GetString( - (byte*) s, - (int) (ptr - (byte*) s) - ); -#else - /* Old C# requires an extra memcpy, bleh! */ - int len = (int) (ptr - (byte*) s); - if (len == 0) - { - return string.Empty; - } - char* chars = stackalloc char[len]; - int strLen = System.Text.Encoding.UTF8.GetChars((byte*) s, len, chars, len); - string result = new string(chars, 0, strLen); -#endif - - /* Some SDL functions will malloc, we have to free! */ - if (freePtr) - { - SDL_free(s); - } - return result; - } - - #endregion - - #region SDL_stdinc.h - - public static uint SDL_FOURCC(byte A, byte B, byte C, byte D) - { - return (uint) (A | (B << 8) | (C << 16) | (D << 24)); - } - - public enum SDL_bool - { - SDL_FALSE = 0, - SDL_TRUE = 1 - } - - /* malloc/free are used by the marshaler! -flibit */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr SDL_malloc(IntPtr size); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - internal static extern void SDL_free(IntPtr memblock); - - /* Buffer.BlockCopy is not available in every runtime yet. Also, - * using memcpy directly can be a compatibility issue in other - * strange ways. So, we expose this to get around all that. - * -flibit - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_memcpy(IntPtr dst, IntPtr src, IntPtr len); - - #endregion - - #region SDL_rwops.h - - public const int RW_SEEK_SET = 0; - public const int RW_SEEK_CUR = 1; - public const int RW_SEEK_END = 2; - - public const UInt32 SDL_RWOPS_UNKNOWN = 0; /* Unknown stream type */ - public const UInt32 SDL_RWOPS_WINFILE = 1; /* Win32 file */ - public const UInt32 SDL_RWOPS_STDFILE = 2; /* Stdio file */ - public const UInt32 SDL_RWOPS_JNIFILE = 3; /* Android asset */ - public const UInt32 SDL_RWOPS_MEMORY = 4; /* Memory stream */ - public const UInt32 SDL_RWOPS_MEMORY_RO = 5; /* Read-Only memory stream */ - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate long SDLRWopsSizeCallback(IntPtr context); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate long SDLRWopsSeekCallback( - IntPtr context, - long offset, - int whence - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate IntPtr SDLRWopsReadCallback( - IntPtr context, - IntPtr ptr, - IntPtr size, - IntPtr maxnum - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate IntPtr SDLRWopsWriteCallback( - IntPtr context, - IntPtr ptr, - IntPtr size, - IntPtr num - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int SDLRWopsCloseCallback( - IntPtr context - ); - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_RWops - { - public IntPtr size; - public IntPtr seek; - public IntPtr read; - public IntPtr write; - public IntPtr close; - - public UInt32 type; - - /* NOTE: This isn't the full structure since - * the native SDL_RWops contains a hidden union full of - * internal information and platform-specific stuff depending - * on what conditions the native library was built with - */ - } - - /* IntPtr refers to an SDL_RWops* */ - [DllImport(nativeLibName, EntryPoint = "SDL_RWFromFile", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_SDL_RWFromFile( - byte* file, - byte* mode - ); - public static unsafe IntPtr SDL_RWFromFile( - string file, - string mode - ) { - byte* utf8File = Utf8EncodeHeap(file); - byte* utf8Mode = Utf8EncodeHeap(mode); - IntPtr rwOps = INTERNAL_SDL_RWFromFile( - utf8File, - utf8Mode - ); - Marshal.FreeHGlobal((IntPtr) utf8Mode); - Marshal.FreeHGlobal((IntPtr) utf8File); - return rwOps; - } - - /* IntPtr refers to an SDL_RWops* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_AllocRW(); - - /* area refers to an SDL_RWops* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeRW(IntPtr area); - - /* fp refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RWFromFP(IntPtr fp, SDL_bool autoclose); - - /* mem refers to a void*, IntPtr to an SDL_RWops* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RWFromMem(IntPtr mem, int size); - - /* mem refers to a const void*, IntPtr to an SDL_RWops* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RWFromConstMem(IntPtr mem, int size); - - /* context refers to an SDL_RWops*. - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_RWsize(IntPtr context); - - /* context refers to an SDL_RWops*. - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_RWseek( - IntPtr context, - long offset, - int whence - ); - - /* context refers to an SDL_RWops*. - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_RWtell(IntPtr context); - - /* context refers to an SDL_RWops*, ptr refers to a void*. - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_RWread( - IntPtr context, - IntPtr ptr, - IntPtr size, - IntPtr maxnum - ); - - /* context refers to an SDL_RWops*, ptr refers to a const void*. - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_RWwrite( - IntPtr context, - IntPtr ptr, - IntPtr size, - IntPtr maxnum - ); - - /* Read endian functions */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_ReadU8(IntPtr src); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt16 SDL_ReadLE16(IntPtr src); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt16 SDL_ReadBE16(IntPtr src); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_ReadLE32(IntPtr src); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_ReadBE32(IntPtr src); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt64 SDL_ReadLE64(IntPtr src); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt64 SDL_ReadBE64(IntPtr src); - - /* Write endian functions */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WriteU8(IntPtr dst, byte value); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WriteLE16(IntPtr dst, UInt16 value); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WriteBE16(IntPtr dst, UInt16 value); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WriteLE32(IntPtr dst, UInt32 value); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WriteBE32(IntPtr dst, UInt32 value); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WriteLE64(IntPtr dst, UInt64 value); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WriteBE64(IntPtr dst, UInt64 value); - - /* context refers to an SDL_RWops* - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_RWclose(IntPtr context); - - /* datasize refers to a size_t* - * IntPtr refers to a void* - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_LoadFile", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_SDL_LoadFile(byte* file, out IntPtr datasize); - public static unsafe IntPtr SDL_LoadFile(string file, out IntPtr datasize) - { - byte* utf8File = Utf8EncodeHeap(file); - IntPtr result = INTERNAL_SDL_LoadFile(utf8File, out datasize); - Marshal.FreeHGlobal((IntPtr) utf8File); - return result; - } - - #endregion - - #region SDL_main.h - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetMainReady(); - - /* This is used as a function pointer to a C main() function */ - public delegate int SDL_main_func(int argc, IntPtr argv); - - /* Use this function with UWP to call your C# Main() function! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_WinRTRunApp( - SDL_main_func mainFunction, - IntPtr reserved - ); - - /* Use this function with GDK/GDKX to call your C# Main() function! - * Only available in SDL 2.24.0 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GDKRunApp( - SDL_main_func mainFunction, - IntPtr reserved - ); - - /* Use this function with iOS to call your C# Main() function! - * Only available in SDL 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UIKitRunApp( - int argc, - IntPtr argv, - SDL_main_func mainFunction - ); - - #endregion - - #region SDL.h - - public const uint SDL_INIT_TIMER = 0x00000001; - public const uint SDL_INIT_AUDIO = 0x00000010; - public const uint SDL_INIT_VIDEO = 0x00000020; - public const uint SDL_INIT_JOYSTICK = 0x00000200; - public const uint SDL_INIT_HAPTIC = 0x00001000; - public const uint SDL_INIT_GAMECONTROLLER = 0x00002000; - public const uint SDL_INIT_EVENTS = 0x00004000; - public const uint SDL_INIT_SENSOR = 0x00008000; - public const uint SDL_INIT_NOPARACHUTE = 0x00100000; - public const uint SDL_INIT_EVERYTHING = ( - SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | - SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | - SDL_INIT_GAMECONTROLLER | SDL_INIT_SENSOR - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_Init(uint flags); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_InitSubSystem(uint flags); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Quit(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_QuitSubSystem(uint flags); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WasInit(uint flags); - - #endregion - - #region SDL_platform.h - - [DllImport(nativeLibName, EntryPoint = "SDL_GetPlatform", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetPlatform(); - public static string SDL_GetPlatform() - { - return UTF8_ToManaged(INTERNAL_SDL_GetPlatform()); - } - - #endregion - - #region SDL_hints.h - - public const string SDL_HINT_FRAMEBUFFER_ACCELERATION = - "SDL_FRAMEBUFFER_ACCELERATION"; - public const string SDL_HINT_RENDER_DRIVER = - "SDL_RENDER_DRIVER"; - public const string SDL_HINT_RENDER_OPENGL_SHADERS = - "SDL_RENDER_OPENGL_SHADERS"; - public const string SDL_HINT_RENDER_DIRECT3D_THREADSAFE = - "SDL_RENDER_DIRECT3D_THREADSAFE"; - public const string SDL_HINT_RENDER_VSYNC = - "SDL_RENDER_VSYNC"; - public const string SDL_HINT_VIDEO_X11_XVIDMODE = - "SDL_VIDEO_X11_XVIDMODE"; - public const string SDL_HINT_VIDEO_X11_XINERAMA = - "SDL_VIDEO_X11_XINERAMA"; - public const string SDL_HINT_VIDEO_X11_XRANDR = - "SDL_VIDEO_X11_XRANDR"; - public const string SDL_HINT_GRAB_KEYBOARD = - "SDL_GRAB_KEYBOARD"; - public const string SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = - "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"; - public const string SDL_HINT_IDLE_TIMER_DISABLED = - "SDL_IOS_IDLE_TIMER_DISABLED"; - public const string SDL_HINT_ORIENTATIONS = - "SDL_IOS_ORIENTATIONS"; - public const string SDL_HINT_XINPUT_ENABLED = - "SDL_XINPUT_ENABLED"; - public const string SDL_HINT_GAMECONTROLLERCONFIG = - "SDL_GAMECONTROLLERCONFIG"; - public const string SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = - "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"; - public const string SDL_HINT_ALLOW_TOPMOST = - "SDL_ALLOW_TOPMOST"; - public const string SDL_HINT_TIMER_RESOLUTION = - "SDL_TIMER_RESOLUTION"; - public const string SDL_HINT_RENDER_SCALE_QUALITY = - "SDL_RENDER_SCALE_QUALITY"; - - /* Only available in SDL 2.0.1 or higher. */ - public const string SDL_HINT_VIDEO_HIGHDPI_DISABLED = - "SDL_VIDEO_HIGHDPI_DISABLED"; - - /* Only available in SDL 2.0.2 or higher. */ - public const string SDL_HINT_CTRL_CLICK_EMULATE_RIGHT_CLICK = - "SDL_CTRL_CLICK_EMULATE_RIGHT_CLICK"; - public const string SDL_HINT_VIDEO_WIN_D3DCOMPILER = - "SDL_VIDEO_WIN_D3DCOMPILER"; - public const string SDL_HINT_MOUSE_RELATIVE_MODE_WARP = - "SDL_MOUSE_RELATIVE_MODE_WARP"; - public const string SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = - "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"; - public const string SDL_HINT_VIDEO_ALLOW_SCREENSAVER = - "SDL_VIDEO_ALLOW_SCREENSAVER"; - public const string SDL_HINT_ACCELEROMETER_AS_JOYSTICK = - "SDL_ACCELEROMETER_AS_JOYSTICK"; - public const string SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES = - "SDL_VIDEO_MAC_FULLSCREEN_SPACES"; - - /* Only available in SDL 2.0.3 or higher. */ - public const string SDL_HINT_WINRT_PRIVACY_POLICY_URL = - "SDL_WINRT_PRIVACY_POLICY_URL"; - public const string SDL_HINT_WINRT_PRIVACY_POLICY_LABEL = - "SDL_WINRT_PRIVACY_POLICY_LABEL"; - public const string SDL_HINT_WINRT_HANDLE_BACK_BUTTON = - "SDL_WINRT_HANDLE_BACK_BUTTON"; - - /* Only available in SDL 2.0.4 or higher. */ - public const string SDL_HINT_NO_SIGNAL_HANDLERS = - "SDL_NO_SIGNAL_HANDLERS"; - public const string SDL_HINT_IME_INTERNAL_EDITING = - "SDL_IME_INTERNAL_EDITING"; - public const string SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = - "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH"; - public const string SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = - "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"; - public const string SDL_HINT_THREAD_STACK_SIZE = - "SDL_THREAD_STACK_SIZE"; - public const string SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = - "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"; - public const string SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP = - "SDL_WINDOWS_ENABLE_MESSAGELOOP"; - public const string SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = - "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"; - public const string SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = - "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"; - public const string SDL_HINT_MAC_BACKGROUND_APP = - "SDL_MAC_BACKGROUND_APP"; - public const string SDL_HINT_VIDEO_X11_NET_WM_PING = - "SDL_VIDEO_X11_NET_WM_PING"; - public const string SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = - "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"; - public const string SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = - "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"; - - /* Only available in 2.0.5 or higher. */ - public const string SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH = - "SDL_MOUSE_FOCUS_CLICKTHROUGH"; - public const string SDL_HINT_BMP_SAVE_LEGACY_FORMAT = - "SDL_BMP_SAVE_LEGACY_FORMAT"; - public const string SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING = - "SDL_WINDOWS_DISABLE_THREAD_NAMING"; - public const string SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION = - "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"; - - /* Only available in 2.0.6 or higher. */ - public const string SDL_HINT_AUDIO_RESAMPLING_MODE = - "SDL_AUDIO_RESAMPLING_MODE"; - public const string SDL_HINT_RENDER_LOGICAL_SIZE_MODE = - "SDL_RENDER_LOGICAL_SIZE_MODE"; - public const string SDL_HINT_MOUSE_NORMAL_SPEED_SCALE = - "SDL_MOUSE_NORMAL_SPEED_SCALE"; - public const string SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE = - "SDL_MOUSE_RELATIVE_SPEED_SCALE"; - public const string SDL_HINT_TOUCH_MOUSE_EVENTS = - "SDL_TOUCH_MOUSE_EVENTS"; - public const string SDL_HINT_WINDOWS_INTRESOURCE_ICON = - "SDL_WINDOWS_INTRESOURCE_ICON"; - public const string SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL = - "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"; - - /* Only available in 2.0.8 or higher. */ - public const string SDL_HINT_IOS_HIDE_HOME_INDICATOR = - "SDL_IOS_HIDE_HOME_INDICATOR"; - public const string SDL_HINT_TV_REMOTE_AS_JOYSTICK = - "SDL_TV_REMOTE_AS_JOYSTICK"; - public const string SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR = - "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"; - - /* Only available in 2.0.9 or higher. */ - public const string SDL_HINT_MOUSE_DOUBLE_CLICK_TIME = - "SDL_MOUSE_DOUBLE_CLICK_TIME"; - public const string SDL_HINT_MOUSE_DOUBLE_CLICK_RADIUS = - "SDL_MOUSE_DOUBLE_CLICK_RADIUS"; - public const string SDL_HINT_JOYSTICK_HIDAPI = - "SDL_JOYSTICK_HIDAPI"; - public const string SDL_HINT_JOYSTICK_HIDAPI_PS4 = - "SDL_JOYSTICK_HIDAPI_PS4"; - public const string SDL_HINT_JOYSTICK_HIDAPI_PS4_RUMBLE = - "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"; - public const string SDL_HINT_JOYSTICK_HIDAPI_STEAM = - "SDL_JOYSTICK_HIDAPI_STEAM"; - public const string SDL_HINT_JOYSTICK_HIDAPI_SWITCH = - "SDL_JOYSTICK_HIDAPI_SWITCH"; - public const string SDL_HINT_JOYSTICK_HIDAPI_XBOX = - "SDL_JOYSTICK_HIDAPI_XBOX"; - public const string SDL_HINT_ENABLE_STEAM_CONTROLLERS = - "SDL_ENABLE_STEAM_CONTROLLERS"; - public const string SDL_HINT_ANDROID_TRAP_BACK_BUTTON = - "SDL_ANDROID_TRAP_BACK_BUTTON"; - - /* Only available in 2.0.10 or higher. */ - public const string SDL_HINT_MOUSE_TOUCH_EVENTS = - "SDL_MOUSE_TOUCH_EVENTS"; - public const string SDL_HINT_GAMECONTROLLERCONFIG_FILE = - "SDL_GAMECONTROLLERCONFIG_FILE"; - public const string SDL_HINT_ANDROID_BLOCK_ON_PAUSE = - "SDL_ANDROID_BLOCK_ON_PAUSE"; - public const string SDL_HINT_RENDER_BATCHING = - "SDL_RENDER_BATCHING"; - public const string SDL_HINT_EVENT_LOGGING = - "SDL_EVENT_LOGGING"; - public const string SDL_HINT_WAVE_RIFF_CHUNK_SIZE = - "SDL_WAVE_RIFF_CHUNK_SIZE"; - public const string SDL_HINT_WAVE_TRUNCATION = - "SDL_WAVE_TRUNCATION"; - public const string SDL_HINT_WAVE_FACT_CHUNK = - "SDL_WAVE_FACT_CHUNK"; - - /* Only available in 2.0.11 or higher. */ - public const string SDL_HINT_VIDO_X11_WINDOW_VISUALID = - "SDL_VIDEO_X11_WINDOW_VISUALID"; - public const string SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS = - "SDL_GAMECONTROLLER_USE_BUTTON_LABELS"; - public const string SDL_HINT_VIDEO_EXTERNAL_CONTEXT = - "SDL_VIDEO_EXTERNAL_CONTEXT"; - public const string SDL_HINT_JOYSTICK_HIDAPI_GAMECUBE = - "SDL_JOYSTICK_HIDAPI_GAMECUBE"; - public const string SDL_HINT_DISPLAY_USABLE_BOUNDS = - "SDL_DISPLAY_USABLE_BOUNDS"; - public const string SDL_HINT_VIDEO_X11_FORCE_EGL = - "SDL_VIDEO_X11_FORCE_EGL"; - public const string SDL_HINT_GAMECONTROLLERTYPE = - "SDL_GAMECONTROLLERTYPE"; - - /* Only available in 2.0.14 or higher. */ - public const string SDL_HINT_JOYSTICK_HIDAPI_CORRELATE_XINPUT = - "SDL_JOYSTICK_HIDAPI_CORRELATE_XINPUT"; /* NOTE: This was removed in 2.0.16. */ - public const string SDL_HINT_JOYSTICK_RAWINPUT = - "SDL_JOYSTICK_RAWINPUT"; - public const string SDL_HINT_AUDIO_DEVICE_APP_NAME = - "SDL_AUDIO_DEVICE_APP_NAME"; - public const string SDL_HINT_AUDIO_DEVICE_STREAM_NAME = - "SDL_AUDIO_DEVICE_STREAM_NAME"; - public const string SDL_HINT_PREFERRED_LOCALES = - "SDL_PREFERRED_LOCALES"; - public const string SDL_HINT_THREAD_PRIORITY_POLICY = - "SDL_THREAD_PRIORITY_POLICY"; - public const string SDL_HINT_EMSCRIPTEN_ASYNCIFY = - "SDL_EMSCRIPTEN_ASYNCIFY"; - public const string SDL_HINT_LINUX_JOYSTICK_DEADZONES = - "SDL_LINUX_JOYSTICK_DEADZONES"; - public const string SDL_HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO = - "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO"; - public const string SDL_HINT_JOYSTICK_HIDAPI_PS5 = - "SDL_JOYSTICK_HIDAPI_PS5"; - public const string SDL_HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL = - "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL"; - public const string SDL_HINT_JOYSTICK_THREAD = - "SDL_JOYSTICK_THREAD"; - public const string SDL_HINT_AUTO_UPDATE_JOYSTICKS = - "SDL_AUTO_UPDATE_JOYSTICKS"; - public const string SDL_HINT_AUTO_UPDATE_SENSORS = - "SDL_AUTO_UPDATE_SENSORS"; - public const string SDL_HINT_MOUSE_RELATIVE_SCALING = - "SDL_MOUSE_RELATIVE_SCALING"; - public const string SDL_HINT_JOYSTICK_HIDAPI_PS5_RUMBLE = - "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE"; - - /* Only available in 2.0.16 or higher. */ - public const string SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS = - "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS"; - public const string SDL_HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL = - "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"; - public const string SDL_HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED = - "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED"; - public const string SDL_HINT_WINDOWS_USE_D3D9EX = - "SDL_WINDOWS_USE_D3D9EX"; - public const string SDL_HINT_JOYSTICK_HIDAPI_JOY_CONS = - "SDL_JOYSTICK_HIDAPI_JOY_CONS"; - public const string SDL_HINT_JOYSTICK_HIDAPI_STADIA = - "SDL_JOYSTICK_HIDAPI_STADIA"; - public const string SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED = - "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED"; - public const string SDL_HINT_ALLOW_ALT_TAB_WHILE_GRABBED = - "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"; - public const string SDL_HINT_KMSDRM_REQUIRE_DRM_MASTER = - "SDL_KMSDRM_REQUIRE_DRM_MASTER"; - public const string SDL_HINT_AUDIO_DEVICE_STREAM_ROLE = - "SDL_AUDIO_DEVICE_STREAM_ROLE"; - public const string SDL_HINT_X11_FORCE_OVERRIDE_REDIRECT = - "SDL_X11_FORCE_OVERRIDE_REDIRECT"; - public const string SDL_HINT_JOYSTICK_HIDAPI_LUNA = - "SDL_JOYSTICK_HIDAPI_LUNA"; - public const string SDL_HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT = - "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT"; - public const string SDL_HINT_AUDIO_INCLUDE_MONITORS = - "SDL_AUDIO_INCLUDE_MONITORS"; - public const string SDL_HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR = - "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"; - - /* Only available in 2.0.18 or higher. */ - public const string SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY = - "SDL_VIDEO_EGL_ALLOW_TRANSPARENCY"; - public const string SDL_HINT_APP_NAME = - "SDL_APP_NAME"; - public const string SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME = - "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME"; - public const string SDL_HINT_IME_SHOW_UI = - "SDL_IME_SHOW_UI"; - public const string SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN = - "SDL_WINDOW_NO_ACTIVATION_WHEN_SHOWN"; - public const string SDL_HINT_POLL_SENTINEL = - "SDL_POLL_SENTINEL"; - public const string SDL_HINT_JOYSTICK_DEVICE = - "SDL_JOYSTICK_DEVICE"; - public const string SDL_HINT_LINUX_JOYSTICK_CLASSIC = - "SDL_LINUX_JOYSTICK_CLASSIC"; - - /* Only available in 2.0.20 or higher. */ - public const string SDL_HINT_RENDER_LINE_METHOD = - "SDL_RENDER_LINE_METHOD"; - - /* Only available in 2.0.22 or higher. */ - public const string SDL_HINT_FORCE_RAISEWINDOW = - "SDL_HINT_FORCE_RAISEWINDOW"; - public const string SDL_HINT_IME_SUPPORT_EXTENDED_TEXT = - "SDL_IME_SUPPORT_EXTENDED_TEXT"; - public const string SDL_HINT_JOYSTICK_GAMECUBE_RUMBLE_BRAKE = - "SDL_JOYSTICK_GAMECUBE_RUMBLE_BRAKE"; - public const string SDL_HINT_JOYSTICK_ROG_CHAKRAM = - "SDL_JOYSTICK_ROG_CHAKRAM"; - public const string SDL_HINT_MOUSE_RELATIVE_MODE_CENTER = - "SDL_MOUSE_RELATIVE_MODE_CENTER"; - public const string SDL_HINT_MOUSE_AUTO_CAPTURE = - "SDL_MOUSE_AUTO_CAPTURE"; - public const string SDL_HINT_VITA_TOUCH_MOUSE_DEVICE = - "SDL_HINT_VITA_TOUCH_MOUSE_DEVICE"; - public const string SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR = - "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR"; - public const string SDL_HINT_VIDEO_FOREIGN_WINDOW_OPENGL = - "SDL_VIDEO_FOREIGN_WINDOW_OPENGL"; - public const string SDL_HINT_VIDEO_FOREIGN_WINDOW_VULKAN = - "SDL_VIDEO_FOREIGN_WINDOW_VULKAN"; - public const string SDL_HINT_X11_WINDOW_TYPE = - "SDL_X11_WINDOW_TYPE"; - public const string SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE = - "SDL_QUIT_ON_LAST_WINDOW_CLOSE"; - - public enum SDL_HintPriority - { - SDL_HINT_DEFAULT, - SDL_HINT_NORMAL, - SDL_HINT_OVERRIDE - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ClearHints(); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetHint", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_SDL_GetHint(byte* name); - public static unsafe string SDL_GetHint(string name) - { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - return UTF8_ToManaged( - INTERNAL_SDL_GetHint( - Utf8Encode(name, utf8Name, utf8NameBufSize) - ) - ); - } - - [DllImport(nativeLibName, EntryPoint = "SDL_SetHint", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_bool INTERNAL_SDL_SetHint( - byte* name, - byte* value - ); - public static unsafe SDL_bool SDL_SetHint(string name, string value) - { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - - int utf8ValueBufSize = Utf8Size(value); - byte* utf8Value = stackalloc byte[utf8ValueBufSize]; - - return INTERNAL_SDL_SetHint( - Utf8Encode(name, utf8Name, utf8NameBufSize), - Utf8Encode(value, utf8Value, utf8ValueBufSize) - ); - } - - [DllImport(nativeLibName, EntryPoint = "SDL_SetHintWithPriority", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_bool INTERNAL_SDL_SetHintWithPriority( - byte* name, - byte* value, - SDL_HintPriority priority - ); - public static unsafe SDL_bool SDL_SetHintWithPriority( - string name, - string value, - SDL_HintPriority priority - ) { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - - int utf8ValueBufSize = Utf8Size(value); - byte* utf8Value = stackalloc byte[utf8ValueBufSize]; - - return INTERNAL_SDL_SetHintWithPriority( - Utf8Encode(name, utf8Name, utf8NameBufSize), - Utf8Encode(value, utf8Value, utf8ValueBufSize), - priority - ); - } - - /* Only available in 2.0.5 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetHintBoolean", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_bool INTERNAL_SDL_GetHintBoolean( - byte* name, - SDL_bool default_value - ); - public static unsafe SDL_bool SDL_GetHintBoolean( - string name, - SDL_bool default_value - ) { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - return INTERNAL_SDL_GetHintBoolean( - Utf8Encode(name, utf8Name, utf8NameBufSize), - default_value - ); - } - - #endregion - - #region SDL_error.h - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ClearError(); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetError", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetError(); - public static string SDL_GetError() - { - return UTF8_ToManaged(INTERNAL_SDL_GetError()); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_SetError", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_SetError(byte* fmtAndArglist); - public static unsafe void SDL_SetError(string fmtAndArglist) - { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_SetError( - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* IntPtr refers to a char*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetErrorMsg(IntPtr errstr, int maxlength); - - #endregion - - #region SDL_log.h - - public enum SDL_LogCategory - { - SDL_LOG_CATEGORY_APPLICATION, - SDL_LOG_CATEGORY_ERROR, - SDL_LOG_CATEGORY_ASSERT, - SDL_LOG_CATEGORY_SYSTEM, - SDL_LOG_CATEGORY_AUDIO, - SDL_LOG_CATEGORY_VIDEO, - SDL_LOG_CATEGORY_RENDER, - SDL_LOG_CATEGORY_INPUT, - SDL_LOG_CATEGORY_TEST, - - /* Reserved for future SDL library use */ - SDL_LOG_CATEGORY_RESERVED1, - SDL_LOG_CATEGORY_RESERVED2, - SDL_LOG_CATEGORY_RESERVED3, - SDL_LOG_CATEGORY_RESERVED4, - SDL_LOG_CATEGORY_RESERVED5, - SDL_LOG_CATEGORY_RESERVED6, - SDL_LOG_CATEGORY_RESERVED7, - SDL_LOG_CATEGORY_RESERVED8, - SDL_LOG_CATEGORY_RESERVED9, - SDL_LOG_CATEGORY_RESERVED10, - - /* Beyond this point is reserved for application use, e.g. - enum { - MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, - MYAPP_CATEGORY_AWESOME2, - MYAPP_CATEGORY_AWESOME3, - ... - }; - */ - SDL_LOG_CATEGORY_CUSTOM - } - - public enum SDL_LogPriority - { - SDL_LOG_PRIORITY_VERBOSE = 1, - SDL_LOG_PRIORITY_DEBUG, - SDL_LOG_PRIORITY_INFO, - SDL_LOG_PRIORITY_WARN, - SDL_LOG_PRIORITY_ERROR, - SDL_LOG_PRIORITY_CRITICAL, - SDL_NUM_LOG_PRIORITIES - } - - /* userdata refers to a void*, message to a const char* */ - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void SDL_LogOutputFunction( - IntPtr userdata, - int category, - SDL_LogPriority priority, - IntPtr message - ); - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_Log", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_Log(byte* fmtAndArglist); - public static unsafe void SDL_Log(string fmtAndArglist) - { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_Log( - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogVerbose", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogVerbose( - int category, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogVerbose( - int category, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogVerbose( - category, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogDebug", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogDebug( - int category, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogDebug( - int category, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogDebug( - category, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogInfo", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogInfo( - int category, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogInfo( - int category, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogInfo( - category, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogWarn", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogWarn( - int category, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogWarn( - int category, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogWarn( - category, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogError", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogError( - int category, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogError( - int category, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogError( - category, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogCritical", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogCritical( - int category, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogCritical( - int category, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogCritical( - category, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogMessage", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogMessage( - int category, - SDL_LogPriority priority, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogMessage( - int category, - SDL_LogPriority priority, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogMessage( - category, - priority, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - /* Use string.Format for arglists */ - [DllImport(nativeLibName, EntryPoint = "SDL_LogMessageV", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_LogMessageV( - int category, - SDL_LogPriority priority, - byte* fmtAndArglist - ); - public static unsafe void SDL_LogMessageV( - int category, - SDL_LogPriority priority, - string fmtAndArglist - ) { - int utf8FmtAndArglistBufSize = Utf8Size(fmtAndArglist); - byte* utf8FmtAndArglist = stackalloc byte[utf8FmtAndArglistBufSize]; - INTERNAL_SDL_LogMessageV( - category, - priority, - Utf8Encode(fmtAndArglist, utf8FmtAndArglist, utf8FmtAndArglistBufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_LogPriority SDL_LogGetPriority( - int category - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogSetPriority( - int category, - SDL_LogPriority priority - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogSetAllPriority( - SDL_LogPriority priority - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogResetPriorities(); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern void SDL_LogGetOutputFunction( - out IntPtr callback, - out IntPtr userdata - ); - public static void SDL_LogGetOutputFunction( - out SDL_LogOutputFunction callback, - out IntPtr userdata - ) { - IntPtr result = IntPtr.Zero; - SDL_LogGetOutputFunction( - out result, - out userdata - ); - if (result != IntPtr.Zero) - { - callback = (SDL_LogOutputFunction) Marshal.GetDelegateForFunctionPointer( - result, - typeof(SDL_LogOutputFunction) - ); - } - else - { - callback = null; - } - } - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogSetOutputFunction( - SDL_LogOutputFunction callback, - IntPtr userdata - ); - - #endregion - - #region SDL_messagebox.h - - [Flags] - public enum SDL_MessageBoxFlags : uint - { - SDL_MESSAGEBOX_ERROR = 0x00000010, - SDL_MESSAGEBOX_WARNING = 0x00000020, - SDL_MESSAGEBOX_INFORMATION = 0x00000040 - } - - [Flags] - public enum SDL_MessageBoxButtonFlags : uint - { - SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, - SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 - } - - [StructLayout(LayoutKind.Sequential)] - private struct INTERNAL_SDL_MessageBoxButtonData - { - public SDL_MessageBoxButtonFlags flags; - public int buttonid; - public IntPtr text; /* The UTF-8 button text */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxButtonData - { - public SDL_MessageBoxButtonFlags flags; - public int buttonid; - public string text; /* The UTF-8 button text */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxColor - { - public byte r, g, b; - } - - public enum SDL_MessageBoxColorType - { - SDL_MESSAGEBOX_COLOR_BACKGROUND, - SDL_MESSAGEBOX_COLOR_TEXT, - SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, - SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, - SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, - SDL_MESSAGEBOX_COLOR_MAX - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxColorScheme - { - [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.Struct, SizeConst = (int)SDL_MessageBoxColorType.SDL_MESSAGEBOX_COLOR_MAX)] - public SDL_MessageBoxColor[] colors; - } - - [StructLayout(LayoutKind.Sequential)] - private struct INTERNAL_SDL_MessageBoxData - { - public SDL_MessageBoxFlags flags; - public IntPtr window; /* Parent window, can be NULL */ - public IntPtr title; /* UTF-8 title */ - public IntPtr message; /* UTF-8 message text */ - public int numbuttons; - public IntPtr buttons; - public IntPtr colorScheme; /* Can be NULL to use system settings */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxData - { - public SDL_MessageBoxFlags flags; - public IntPtr window; /* Parent window, can be NULL */ - public string title; /* UTF-8 title */ - public string message; /* UTF-8 message text */ - public int numbuttons; - public SDL_MessageBoxButtonData[] buttons; - public SDL_MessageBoxColorScheme? colorScheme; /* Can be NULL to use system settings */ - } - - [DllImport(nativeLibName, EntryPoint = "SDL_ShowMessageBox", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_SDL_ShowMessageBox([In()] ref INTERNAL_SDL_MessageBoxData messageboxdata, out int buttonid); - - /* Ripped from Jameson's LpUtf8StrMarshaler */ - private static IntPtr INTERNAL_AllocUTF8(string str) - { - if (string.IsNullOrEmpty(str)) - { - return IntPtr.Zero; - } - byte[] bytes = System.Text.Encoding.UTF8.GetBytes(str + '\0'); - IntPtr mem = SDL.SDL_malloc((IntPtr) bytes.Length); - Marshal.Copy(bytes, 0, mem, bytes.Length); - return mem; - } - - public static unsafe int SDL_ShowMessageBox([In()] ref SDL_MessageBoxData messageboxdata, out int buttonid) - { - var data = new INTERNAL_SDL_MessageBoxData() - { - flags = messageboxdata.flags, - window = messageboxdata.window, - title = INTERNAL_AllocUTF8(messageboxdata.title), - message = INTERNAL_AllocUTF8(messageboxdata.message), - numbuttons = messageboxdata.numbuttons, - }; - - var buttons = new INTERNAL_SDL_MessageBoxButtonData[messageboxdata.numbuttons]; - for (int i = 0; i < messageboxdata.numbuttons; i++) - { - buttons[i] = new INTERNAL_SDL_MessageBoxButtonData() - { - flags = messageboxdata.buttons[i].flags, - buttonid = messageboxdata.buttons[i].buttonid, - text = INTERNAL_AllocUTF8(messageboxdata.buttons[i].text), - }; - } - - if (messageboxdata.colorScheme != null) - { - data.colorScheme = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SDL_MessageBoxColorScheme))); - Marshal.StructureToPtr(messageboxdata.colorScheme.Value, data.colorScheme, false); - } - - int result; - fixed (INTERNAL_SDL_MessageBoxButtonData* buttonsPtr = &buttons[0]) - { - data.buttons = (IntPtr)buttonsPtr; - result = INTERNAL_SDL_ShowMessageBox(ref data, out buttonid); - } - - Marshal.FreeHGlobal(data.colorScheme); - for (int i = 0; i < messageboxdata.numbuttons; i++) - { - SDL_free(buttons[i].text); - } - SDL_free(data.message); - SDL_free(data.title); - - return result; - } - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, EntryPoint = "SDL_ShowSimpleMessageBox", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_SDL_ShowSimpleMessageBox( - SDL_MessageBoxFlags flags, - byte* title, - byte* message, - IntPtr window - ); - public static unsafe int SDL_ShowSimpleMessageBox( - SDL_MessageBoxFlags flags, - string title, - string message, - IntPtr window - ) { - int utf8TitleBufSize = Utf8Size(title); - byte* utf8Title = stackalloc byte[utf8TitleBufSize]; - - int utf8MessageBufSize = Utf8Size(message); - byte* utf8Message = stackalloc byte[utf8MessageBufSize]; - - return INTERNAL_SDL_ShowSimpleMessageBox( - flags, - Utf8Encode(title, utf8Title, utf8TitleBufSize), - Utf8Encode(message, utf8Message, utf8MessageBufSize), - window - ); - } - - #endregion - - #region SDL_version.h, SDL_revision.h - - /* Similar to the headers, this is the version we're expecting to be - * running with. You will likely want to check this somewhere in your - * program! - */ - public const int SDL_MAJOR_VERSION = 2; - public const int SDL_MINOR_VERSION = 0; - public const int SDL_PATCHLEVEL = 22; - - public static readonly int SDL_COMPILEDVERSION = SDL_VERSIONNUM( - SDL_MAJOR_VERSION, - SDL_MINOR_VERSION, - SDL_PATCHLEVEL - ); - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_version - { - public byte major; - public byte minor; - public byte patch; - } - - public static void SDL_VERSION(out SDL_version x) - { - x.major = SDL_MAJOR_VERSION; - x.minor = SDL_MINOR_VERSION; - x.patch = SDL_PATCHLEVEL; - } - - public static int SDL_VERSIONNUM(int X, int Y, int Z) - { - return (X * 1000) + (Y * 100) + Z; - } - - public static bool SDL_VERSION_ATLEAST(int X, int Y, int Z) - { - return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetVersion(out SDL_version ver); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetRevision", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetRevision(); - public static string SDL_GetRevision() - { - return UTF8_ToManaged(INTERNAL_SDL_GetRevision()); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRevisionNumber(); - - #endregion - - #region SDL_video.h - - public enum SDL_GLattr - { - SDL_GL_RED_SIZE, - SDL_GL_GREEN_SIZE, - SDL_GL_BLUE_SIZE, - SDL_GL_ALPHA_SIZE, - SDL_GL_BUFFER_SIZE, - SDL_GL_DOUBLEBUFFER, - SDL_GL_DEPTH_SIZE, - SDL_GL_STENCIL_SIZE, - SDL_GL_ACCUM_RED_SIZE, - SDL_GL_ACCUM_GREEN_SIZE, - SDL_GL_ACCUM_BLUE_SIZE, - SDL_GL_ACCUM_ALPHA_SIZE, - SDL_GL_STEREO, - SDL_GL_MULTISAMPLEBUFFERS, - SDL_GL_MULTISAMPLESAMPLES, - SDL_GL_ACCELERATED_VISUAL, - SDL_GL_RETAINED_BACKING, - SDL_GL_CONTEXT_MAJOR_VERSION, - SDL_GL_CONTEXT_MINOR_VERSION, - SDL_GL_CONTEXT_EGL, - SDL_GL_CONTEXT_FLAGS, - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_SHARE_WITH_CURRENT_CONTEXT, - SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR, - SDL_GL_CONTEXT_RESET_NOTIFICATION, /* Requires >= 2.0.6 */ - SDL_GL_CONTEXT_NO_ERROR, /* Requires >= 2.0.6 */ - } - - [Flags] - public enum SDL_GLprofile - { - SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, - SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, - SDL_GL_CONTEXT_PROFILE_ES = 0x0004 - } - - [Flags] - public enum SDL_GLcontext - { - SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, - SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, - SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, - SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 - } - - public enum SDL_WindowEventID : byte - { - SDL_WINDOWEVENT_NONE, - SDL_WINDOWEVENT_SHOWN, - SDL_WINDOWEVENT_HIDDEN, - SDL_WINDOWEVENT_EXPOSED, - SDL_WINDOWEVENT_MOVED, - SDL_WINDOWEVENT_RESIZED, - SDL_WINDOWEVENT_SIZE_CHANGED, - SDL_WINDOWEVENT_MINIMIZED, - SDL_WINDOWEVENT_MAXIMIZED, - SDL_WINDOWEVENT_RESTORED, - SDL_WINDOWEVENT_ENTER, - SDL_WINDOWEVENT_LEAVE, - SDL_WINDOWEVENT_FOCUS_GAINED, - SDL_WINDOWEVENT_FOCUS_LOST, - SDL_WINDOWEVENT_CLOSE, - /* Only available in 2.0.5 or higher. */ - SDL_WINDOWEVENT_TAKE_FOCUS, - SDL_WINDOWEVENT_HIT_TEST, - /* Only available in 2.0.18 or higher. */ - SDL_WINDOWEVENT_ICCPROF_CHANGED, - SDL_WINDOWEVENT_DISPLAY_CHANGED - } - - public enum SDL_DisplayEventID : byte - { - SDL_DISPLAYEVENT_NONE, - SDL_DISPLAYEVENT_ORIENTATION, - SDL_DISPLAYEVENT_CONNECTED, /* Requires >= 2.0.14 */ - SDL_DISPLAYEVENT_DISCONNECTED /* Requires >= 2.0.14 */ - } - - public enum SDL_DisplayOrientation - { - SDL_ORIENTATION_UNKNOWN, - SDL_ORIENTATION_LANDSCAPE, - SDL_ORIENTATION_LANDSCAPE_FLIPPED, - SDL_ORIENTATION_PORTRAIT, - SDL_ORIENTATION_PORTRAIT_FLIPPED - } - - /* Only available in 2.0.16 or higher. */ - public enum SDL_FlashOperation - { - SDL_FLASH_CANCEL, - SDL_FLASH_BRIEFLY, - SDL_FLASH_UNTIL_FOCUSED - } - - [Flags] - public enum SDL_WindowFlags : uint - { - SDL_WINDOW_FULLSCREEN = 0x00000001, - SDL_WINDOW_OPENGL = 0x00000002, - SDL_WINDOW_SHOWN = 0x00000004, - SDL_WINDOW_HIDDEN = 0x00000008, - SDL_WINDOW_BORDERLESS = 0x00000010, - SDL_WINDOW_RESIZABLE = 0x00000020, - SDL_WINDOW_MINIMIZED = 0x00000040, - SDL_WINDOW_MAXIMIZED = 0x00000080, - SDL_WINDOW_MOUSE_GRABBED = 0x00000100, - SDL_WINDOW_INPUT_FOCUS = 0x00000200, - SDL_WINDOW_MOUSE_FOCUS = 0x00000400, - SDL_WINDOW_FULLSCREEN_DESKTOP = - (SDL_WINDOW_FULLSCREEN | 0x00001000), - SDL_WINDOW_FOREIGN = 0x00000800, - SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /* Requires >= 2.0.1 */ - SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /* Requires >= 2.0.4 */ - SDL_WINDOW_ALWAYS_ON_TOP = 0x00008000, /* Requires >= 2.0.5 */ - SDL_WINDOW_SKIP_TASKBAR = 0x00010000, /* Requires >= 2.0.5 */ - SDL_WINDOW_UTILITY = 0x00020000, /* Requires >= 2.0.5 */ - SDL_WINDOW_TOOLTIP = 0x00040000, /* Requires >= 2.0.5 */ - SDL_WINDOW_POPUP_MENU = 0x00080000, /* Requires >= 2.0.5 */ - SDL_WINDOW_KEYBOARD_GRABBED = 0x00100000, /* Requires >= 2.0.16 */ - SDL_WINDOW_VULKAN = 0x10000000, /* Requires >= 2.0.6 */ - SDL_WINDOW_METAL = 0x2000000, /* Requires >= 2.0.14 */ - - SDL_WINDOW_INPUT_GRABBED = - SDL_WINDOW_MOUSE_GRABBED, - } - - /* Only available in 2.0.4 or higher. */ - public enum SDL_HitTestResult - { - SDL_HITTEST_NORMAL, /* Region is normal. No special properties. */ - SDL_HITTEST_DRAGGABLE, /* Region can drag entire window. */ - SDL_HITTEST_RESIZE_TOPLEFT, - SDL_HITTEST_RESIZE_TOP, - SDL_HITTEST_RESIZE_TOPRIGHT, - SDL_HITTEST_RESIZE_RIGHT, - SDL_HITTEST_RESIZE_BOTTOMRIGHT, - SDL_HITTEST_RESIZE_BOTTOM, - SDL_HITTEST_RESIZE_BOTTOMLEFT, - SDL_HITTEST_RESIZE_LEFT - } - - public const int SDL_WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000; - public const int SDL_WINDOWPOS_CENTERED_MASK = 0x2FFF0000; - public const int SDL_WINDOWPOS_UNDEFINED = 0x1FFF0000; - public const int SDL_WINDOWPOS_CENTERED = 0x2FFF0000; - - public static int SDL_WINDOWPOS_UNDEFINED_DISPLAY(int X) - { - return (SDL_WINDOWPOS_UNDEFINED_MASK | X); - } - - public static bool SDL_WINDOWPOS_ISUNDEFINED(int X) - { - return (X & 0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK; - } - - public static int SDL_WINDOWPOS_CENTERED_DISPLAY(int X) - { - return (SDL_WINDOWPOS_CENTERED_MASK | X); - } - - public static bool SDL_WINDOWPOS_ISCENTERED(int X) - { - return (X & 0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_DisplayMode - { - public uint format; - public int w; - public int h; - public int refresh_rate; - public IntPtr driverdata; // void* - } - - /* win refers to an SDL_Window*, area to a const SDL_Point*, data to a void*. - * Only available in 2.0.4 or higher. - */ - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate SDL_HitTestResult SDL_HitTest(IntPtr win, IntPtr area, IntPtr data); - - /* IntPtr refers to an SDL_Window* */ - [DllImport(nativeLibName, EntryPoint = "SDL_CreateWindow", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_SDL_CreateWindow( - byte* title, - int x, - int y, - int w, - int h, - SDL_WindowFlags flags - ); - public static unsafe IntPtr SDL_CreateWindow( - string title, - int x, - int y, - int w, - int h, - SDL_WindowFlags flags - ) { - int utf8TitleBufSize = Utf8Size(title); - byte* utf8Title = stackalloc byte[utf8TitleBufSize]; - return INTERNAL_SDL_CreateWindow( - Utf8Encode(title, utf8Title, utf8TitleBufSize), - x, y, w, h, - flags - ); - } - - /* window refers to an SDL_Window*, renderer to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_CreateWindowAndRenderer( - int width, - int height, - SDL_WindowFlags window_flags, - out IntPtr window, - out IntPtr renderer - ); - - /* data refers to some native window type, IntPtr to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateWindowFrom(IntPtr data); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DestroyWindow(IntPtr window); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DisableScreenSaver(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_EnableScreenSaver(); - - /* IntPtr refers to an SDL_DisplayMode. Just use closest. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetClosestDisplayMode( - int displayIndex, - ref SDL_DisplayMode mode, - out SDL_DisplayMode closest - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetCurrentDisplayMode( - int displayIndex, - out SDL_DisplayMode mode - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetCurrentVideoDriver", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetCurrentVideoDriver(); - public static string SDL_GetCurrentVideoDriver() - { - return UTF8_ToManaged(INTERNAL_SDL_GetCurrentVideoDriver()); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDesktopDisplayMode( - int displayIndex, - out SDL_DisplayMode mode - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetDisplayName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetDisplayName(int index); - public static string SDL_GetDisplayName(int index) - { - return UTF8_ToManaged(INTERNAL_SDL_GetDisplayName(index)); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDisplayBounds( - int displayIndex, - out SDL_Rect rect - ); - - /* Only available in 2.0.4 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDisplayDPI( - int displayIndex, - out float ddpi, - out float hdpi, - out float vdpi - ); - - /* Only available in 2.0.9 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_DisplayOrientation SDL_GetDisplayOrientation( - int displayIndex - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDisplayMode( - int displayIndex, - int modeIndex, - out SDL_DisplayMode mode - ); - - /* Only available in 2.0.5 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDisplayUsableBounds( - int displayIndex, - out SDL_Rect rect - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumDisplayModes( - int displayIndex - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumVideoDisplays(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumVideoDrivers(); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetVideoDriver", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetVideoDriver( - int index - ); - public static string SDL_GetVideoDriver(int index) - { - return UTF8_ToManaged(INTERNAL_SDL_GetVideoDriver(index)); - } - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern float SDL_GetWindowBrightness( - IntPtr window - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowOpacity( - IntPtr window, - float opacity - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowOpacity( - IntPtr window, - out float out_opacity - ); - - /* modal_window and parent_window refer to an SDL_Window*s - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowModalFor( - IntPtr modal_window, - IntPtr parent_window - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowInputFocus(IntPtr window); - - /* window refers to an SDL_Window*, IntPtr to a void* */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetWindowData", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_SDL_GetWindowData( - IntPtr window, - byte* name - ); - public static unsafe IntPtr SDL_GetWindowData( - IntPtr window, - string name - ) { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - return INTERNAL_SDL_GetWindowData( - window, - Utf8Encode(name, utf8Name, utf8NameBufSize) - ); - } - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowDisplayIndex( - IntPtr window - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowDisplayMode( - IntPtr window, - out SDL_DisplayMode mode - ); - - /* IntPtr refers to a void* - * window refers to an SDL_Window* - * mode refers to a size_t* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetWindowICCProfile( - IntPtr window, - out IntPtr mode - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_GetWindowFlags(IntPtr window); - - /* IntPtr refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetWindowFromID(uint id); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowGammaRamp( - IntPtr window, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] red, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] green, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] blue - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetWindowGrab(IntPtr window); - - /* window refers to an SDL_Window* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetWindowKeyboardGrab(IntPtr window); - - /* window refers to an SDL_Window* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetWindowMouseGrab(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_GetWindowID(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_GetWindowPixelFormat( - IntPtr window - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowMaximumSize( - IntPtr window, - out int max_w, - out int max_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowMinimumSize( - IntPtr window, - out int min_w, - out int min_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowPosition( - IntPtr window, - out int x, - out int y - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowSize( - IntPtr window, - out int w, - out int h - ); - - /* IntPtr refers to an SDL_Surface*, window to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetWindowSurface(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetWindowTitle", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetWindowTitle( - IntPtr window - ); - public static string SDL_GetWindowTitle(IntPtr window) - { - return UTF8_ToManaged( - INTERNAL_SDL_GetWindowTitle(window) - ); - } - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_BindTexture( - IntPtr texture, - out float texw, - out float texh - ); - - /* IntPtr and window refer to an SDL_GLContext and SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_CreateContext(IntPtr window); - - /* context refers to an SDL_GLContext */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_DeleteContext(IntPtr context); - - [DllImport(nativeLibName, EntryPoint = "SDL_GL_LoadLibrary", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_SDL_GL_LoadLibrary(byte* path); - public static unsafe int SDL_GL_LoadLibrary(string path) - { - byte* utf8Path = Utf8EncodeHeap(path); - int result = INTERNAL_SDL_GL_LoadLibrary( - utf8Path - ); - Marshal.FreeHGlobal((IntPtr) utf8Path); - return result; - } - - /* IntPtr refers to a function pointer, proc to a const char* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_GetProcAddress(IntPtr proc); - - /* IntPtr refers to a function pointer */ - public static unsafe IntPtr SDL_GL_GetProcAddress(string proc) - { - int utf8ProcBufSize = Utf8Size(proc); - byte* utf8Proc = stackalloc byte[utf8ProcBufSize]; - return SDL_GL_GetProcAddress( - (IntPtr) Utf8Encode(proc, utf8Proc, utf8ProcBufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_UnloadLibrary(); - - [DllImport(nativeLibName, EntryPoint = "SDL_GL_ExtensionSupported", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_bool INTERNAL_SDL_GL_ExtensionSupported( - byte* extension - ); - public static unsafe SDL_bool SDL_GL_ExtensionSupported(string extension) - { - int utf8ExtensionBufSize = Utf8Size(extension); - byte* utf8Extension = stackalloc byte[utf8ExtensionBufSize]; - return INTERNAL_SDL_GL_ExtensionSupported( - Utf8Encode(extension, utf8Extension, utf8ExtensionBufSize) - ); - } - - /* Only available in SDL 2.0.2 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_ResetAttributes(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_GetAttribute( - SDL_GLattr attr, - out int value - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_GetSwapInterval(); - - /* window and context refer to an SDL_Window* and SDL_GLContext */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_MakeCurrent( - IntPtr window, - IntPtr context - ); - - /* IntPtr refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_GetCurrentWindow(); - - /* IntPtr refers to an SDL_Context */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_GetCurrentContext(); - - /* window refers to an SDL_Window*. - * Only available in SDL 2.0.1 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_GetDrawableSize( - IntPtr window, - out int w, - out int h - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_SetAttribute( - SDL_GLattr attr, - int value - ); - - public static int SDL_GL_SetAttribute( - SDL_GLattr attr, - SDL_GLprofile profile - ) { - return SDL_GL_SetAttribute(attr, (int)profile); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_SetSwapInterval(int interval); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_SwapWindow(IntPtr window); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_UnbindTexture(IntPtr texture); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_HideWindow(IntPtr window); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsScreenSaverEnabled(); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MaximizeWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MinimizeWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RaiseWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RestoreWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowBrightness( - IntPtr window, - float brightness - ); - - /* IntPtr and userdata are void*, window is an SDL_Window* */ - [DllImport(nativeLibName, EntryPoint = "SDL_SetWindowData", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_SDL_SetWindowData( - IntPtr window, - byte* name, - IntPtr userdata - ); - public static unsafe IntPtr SDL_SetWindowData( - IntPtr window, - string name, - IntPtr userdata - ) { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - return INTERNAL_SDL_SetWindowData( - window, - Utf8Encode(name, utf8Name, utf8NameBufSize), - userdata - ); - } - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowDisplayMode( - IntPtr window, - ref SDL_DisplayMode mode - ); - - /* window refers to an SDL_Window* */ - /* NULL overload - use the window's dimensions and the desktop's format and refresh rate */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowDisplayMode( - IntPtr window, - IntPtr mode - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowFullscreen( - IntPtr window, - uint flags - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowGammaRamp( - IntPtr window, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] red, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] green, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] blue - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowGrab( - IntPtr window, - SDL_bool grabbed - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowKeyboardGrab( - IntPtr window, - SDL_bool grabbed - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowMouseGrab( - IntPtr window, - SDL_bool grabbed - ); - - - /* window refers to an SDL_Window*, icon to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowIcon( - IntPtr window, - IntPtr icon - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowMaximumSize( - IntPtr window, - int max_w, - int max_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowMinimumSize( - IntPtr window, - int min_w, - int min_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowPosition( - IntPtr window, - int x, - int y - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowSize( - IntPtr window, - int w, - int h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowBordered( - IntPtr window, - SDL_bool bordered - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowBordersSize( - IntPtr window, - out int top, - out int left, - out int bottom, - out int right - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowResizable( - IntPtr window, - SDL_bool resizable - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowAlwaysOnTop( - IntPtr window, - SDL_bool on_top - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, EntryPoint = "SDL_SetWindowTitle", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe void INTERNAL_SDL_SetWindowTitle( - IntPtr window, - byte* title - ); - public static unsafe void SDL_SetWindowTitle( - IntPtr window, - string title - ) { - int utf8TitleBufSize = Utf8Size(title); - byte* utf8Title = stackalloc byte[utf8TitleBufSize]; - INTERNAL_SDL_SetWindowTitle( - window, - Utf8Encode(title, utf8Title, utf8TitleBufSize) - ); - } - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ShowWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateWindowSurface(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateWindowSurfaceRects( - IntPtr window, - [In] SDL_Rect[] rects, - int numrects - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_VideoInit", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_SDL_VideoInit( - byte* driver_name - ); - public static unsafe int SDL_VideoInit(string driver_name) - { - int utf8DriverNameBufSize = Utf8Size(driver_name); - byte* utf8DriverName = stackalloc byte[utf8DriverNameBufSize]; - return INTERNAL_SDL_VideoInit( - Utf8Encode(driver_name, utf8DriverName, utf8DriverNameBufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_VideoQuit(); - - /* window refers to an SDL_Window*, callback_data to a void* - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowHitTest( - IntPtr window, - SDL_HitTest callback, - IntPtr callback_data - ); - - /* IntPtr refers to an SDL_Window* - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetGrabbedWindow(); - - /* window refers to an SDL_Window* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowMouseRect( - IntPtr window, - ref SDL_Rect rect - ); - - /* window refers to an SDL_Window* - * rect refers to an SDL_Rect* - * This overload allows for IntPtr.Zero (null) to be passed for rect. - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowMouseRect( - IntPtr window, - IntPtr rect - ); - - /* window refers to an SDL_Window* - * IntPtr refers to an SDL_Rect* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetWindowMouseRect( - IntPtr window - ); - - /* window refers to an SDL_Window* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_FlashWindow( - IntPtr window, - SDL_FlashOperation operation - ); - - #endregion - - #region SDL_blendmode.h - - [Flags] - public enum SDL_BlendMode - { - SDL_BLENDMODE_NONE = 0x00000000, - SDL_BLENDMODE_BLEND = 0x00000001, - SDL_BLENDMODE_ADD = 0x00000002, - SDL_BLENDMODE_MOD = 0x00000004, - SDL_BLENDMODE_MUL = 0x00000008, /* >= 2.0.11 */ - SDL_BLENDMODE_INVALID = 0x7FFFFFFF - } - - public enum SDL_BlendOperation - { - SDL_BLENDOPERATION_ADD = 0x1, - SDL_BLENDOPERATION_SUBTRACT = 0x2, - SDL_BLENDOPERATION_REV_SUBTRACT = 0x3, - SDL_BLENDOPERATION_MINIMUM = 0x4, - SDL_BLENDOPERATION_MAXIMUM = 0x5 - } - - public enum SDL_BlendFactor - { - SDL_BLENDFACTOR_ZERO = 0x1, - SDL_BLENDFACTOR_ONE = 0x2, - SDL_BLENDFACTOR_SRC_COLOR = 0x3, - SDL_BLENDFACTOR_ONE_MINUS_SRC_COLOR = 0x4, - SDL_BLENDFACTOR_SRC_ALPHA = 0x5, - SDL_BLENDFACTOR_ONE_MINUS_SRC_ALPHA = 0x6, - SDL_BLENDFACTOR_DST_COLOR = 0x7, - SDL_BLENDFACTOR_ONE_MINUS_DST_COLOR = 0x8, - SDL_BLENDFACTOR_DST_ALPHA = 0x9, - SDL_BLENDFACTOR_ONE_MINUS_DST_ALPHA = 0xA - } - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_BlendMode SDL_ComposeCustomBlendMode( - SDL_BlendFactor srcColorFactor, - SDL_BlendFactor dstColorFactor, - SDL_BlendOperation colorOperation, - SDL_BlendFactor srcAlphaFactor, - SDL_BlendFactor dstAlphaFactor, - SDL_BlendOperation alphaOperation - ); - - #endregion - - #region SDL_vulkan.h - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_Vulkan_LoadLibrary", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_SDL_Vulkan_LoadLibrary( - byte* path - ); - public static unsafe int SDL_Vulkan_LoadLibrary(string path) - { - byte* utf8Path = Utf8EncodeHeap(path); - int result = INTERNAL_SDL_Vulkan_LoadLibrary( - utf8Path - ); - Marshal.FreeHGlobal((IntPtr) utf8Path); - return result; - } - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_Vulkan_GetVkGetInstanceProcAddr(); - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Vulkan_UnloadLibrary(); - - /* window refers to an SDL_Window*, pNames to a const char**. - * Only available in 2.0.6 or higher. - * This overload allows for IntPtr.Zero (null) to be passed for pNames. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_Vulkan_GetInstanceExtensions( - IntPtr window, - out uint pCount, - IntPtr pNames - ); - - /* window refers to an SDL_Window*, pNames to a const char**. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_Vulkan_GetInstanceExtensions( - IntPtr window, - out uint pCount, - IntPtr[] pNames - ); - - /* window refers to an SDL_Window. - * instance refers to a VkInstance. - * surface refers to a VkSurfaceKHR. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_Vulkan_CreateSurface( - IntPtr window, - IntPtr instance, - out ulong surface - ); - - /* window refers to an SDL_Window*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Vulkan_GetDrawableSize( - IntPtr window, - out int w, - out int h - ); - - #endregion - - #region SDL_metal.h - - /* Only available in 2.0.11 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_Metal_CreateView( - IntPtr window - ); - - /* Only available in 2.0.11 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Metal_DestroyView( - IntPtr view - ); - - /* view refers to an SDL_MetalView. - * Only available in 2.0.14 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_Metal_GetLayer( - IntPtr view - ); - - /* window refers to an SDL_Window*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Metal_GetDrawableSize( - IntPtr window, - out int w, - out int h - ); - - #endregion - - #region SDL_render.h - - [Flags] - public enum SDL_RendererFlags : uint - { - SDL_RENDERER_SOFTWARE = 0x00000001, - SDL_RENDERER_ACCELERATED = 0x00000002, - SDL_RENDERER_PRESENTVSYNC = 0x00000004, - SDL_RENDERER_TARGETTEXTURE = 0x00000008 - } - - [Flags] - public enum SDL_RendererFlip - { - SDL_FLIP_NONE = 0x00000000, - SDL_FLIP_HORIZONTAL = 0x00000001, - SDL_FLIP_VERTICAL = 0x00000002 - } - - public enum SDL_TextureAccess - { - SDL_TEXTUREACCESS_STATIC, - SDL_TEXTUREACCESS_STREAMING, - SDL_TEXTUREACCESS_TARGET - } - - [Flags] - public enum SDL_TextureModulate - { - SDL_TEXTUREMODULATE_NONE = 0x00000000, - SDL_TEXTUREMODULATE_HORIZONTAL = 0x00000001, - SDL_TEXTUREMODULATE_VERTICAL = 0x00000002 - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_RendererInfo - { - public IntPtr name; // const char* - public uint flags; - public uint num_texture_formats; - public fixed uint texture_formats[16]; - public int max_texture_width; - public int max_texture_height; - } - - /* Only available in 2.0.11 or higher. */ - public enum SDL_ScaleMode - { - SDL_ScaleModeNearest, - SDL_ScaleModeLinear, - SDL_ScaleModeBest - } - - /* Only available in 2.0.18 or higher. */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Vertex - { - public SDL_FPoint position; - public SDL_Color color; - public SDL_FPoint tex_coord; - } - - /* IntPtr refers to an SDL_Renderer*, window to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRenderer( - IntPtr window, - int index, - SDL_RendererFlags flags - ); - - /* IntPtr refers to an SDL_Renderer*, surface to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateSoftwareRenderer(IntPtr surface); - - /* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateTexture( - IntPtr renderer, - uint format, - int access, - int w, - int h - ); - - /* IntPtr refers to an SDL_Texture* - * renderer refers to an SDL_Renderer* - * surface refers to an SDL_Surface* - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateTextureFromSurface( - IntPtr renderer, - IntPtr surface - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DestroyRenderer(IntPtr renderer); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DestroyTexture(IntPtr texture); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumRenderDrivers(); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRenderDrawBlendMode( - IntPtr renderer, - out SDL_BlendMode blendMode - ); - - /* texture refers to an SDL_Texture* - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureScaleMode( - IntPtr texture, - SDL_ScaleMode scaleMode - ); - - /* texture refers to an SDL_Texture* - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetTextureScaleMode( - IntPtr texture, - out SDL_ScaleMode scaleMode - ); - - /* texture refers to an SDL_Texture* - * userdata refers to a void* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureUserData( - IntPtr texture, - IntPtr userdata - ); - - /* IntPtr refers to a void*, texture refers to an SDL_Texture* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetTextureUserData(IntPtr texture); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRenderDrawColor( - IntPtr renderer, - out byte r, - out byte g, - out byte b, - out byte a - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRenderDriverInfo( - int index, - out SDL_RendererInfo info - ); - - /* IntPtr refers to an SDL_Renderer*, window to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetRenderer(IntPtr window); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRendererInfo( - IntPtr renderer, - out SDL_RendererInfo info - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRendererOutputSize( - IntPtr renderer, - out int w, - out int h - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetTextureAlphaMod( - IntPtr texture, - out byte alpha - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetTextureBlendMode( - IntPtr texture, - out SDL_BlendMode blendMode - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetTextureColorMod( - IntPtr texture, - out byte r, - out byte g, - out byte b - ); - - /* texture refers to an SDL_Texture*, pixels to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockTexture( - IntPtr texture, - ref SDL_Rect rect, - out IntPtr pixels, - out int pitch - ); - - /* texture refers to an SDL_Texture*, pixels to a void*. - * Internally, this function contains logic to use default values when - * the rectangle is passed as NULL. - * This overload allows for IntPtr.Zero to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockTexture( - IntPtr texture, - IntPtr rect, - out IntPtr pixels, - out int pitch - ); - - /* texture refers to an SDL_Texture*, surface to an SDL_Surface* - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockTextureToSurface( - IntPtr texture, - ref SDL_Rect rect, - out IntPtr surface - ); - - /* texture refers to an SDL_Texture*, surface to an SDL_Surface* - * Internally, this function contains logic to use default values when - * the rectangle is passed as NULL. - * This overload allows for IntPtr.Zero to be passed for rect. - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockTextureToSurface( - IntPtr texture, - IntPtr rect, - out IntPtr surface - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_QueryTexture( - IntPtr texture, - out uint format, - out int access, - out int w, - out int h - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderClear(IntPtr renderer); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_Rect dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_Rect dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both SDL_Rects. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_Rect dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_Rect dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_Rect dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * srcrect and dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * srcrect and center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_Rect dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * dstrect and center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for all - * three parameters. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawLine( - IntPtr renderer, - int x1, - int y1, - int x2, - int y2 - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawLines( - IntPtr renderer, - [In] SDL_Point[] points, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawPoint( - IntPtr renderer, - int x, - int y - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawPoints( - IntPtr renderer, - [In] SDL_Point[] points, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRect( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer*, rect to an SDL_Rect*. - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRect( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRects( - IntPtr renderer, - [In] SDL_Rect[] rects, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRect( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer*, rect to an SDL_Rect*. - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRect( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRects( - IntPtr renderer, - [In] SDL_Rect[] rects, - int count - ); - - #region Floating Point Render Functions - - /* This region only available in SDL 2.0.10 or higher. */ - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyF( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_FRect dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyF( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_FRect dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyF( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both SDL_Rects. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyF( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_FRect dstrect, - double angle, - ref SDL_FPoint center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_FRect dstrect, - double angle, - ref SDL_FPoint center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyExF( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect, - double angle, - ref SDL_FPoint center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyExF( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_FRect dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * srcrect and dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyExF( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect, - double angle, - ref SDL_FPoint center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * srcrect and center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyExF( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_FRect dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * dstrect and center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyExF( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for all - * three parameters. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyExF( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer* - * texture refers to an SDL_Texture* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderGeometry( - IntPtr renderer, - IntPtr texture, - [In] SDL_Vertex[] vertices, - int num_vertices, - [In] int[] indices, - int num_indices - ); - - /* renderer refers to an SDL_Renderer* - * texture refers to an SDL_Texture* - * indices refers to a void* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderGeometryRaw( - IntPtr renderer, - IntPtr texture, - [In] float[] xy, - int xy_stride, - [In] int[] color, - int color_stride, - [In] float[] uv, - int uv_stride, - int num_vertices, - IntPtr indices, - int num_indices, - int size_indices - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawPointF( - IntPtr renderer, - float x, - float y - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawPointsF( - IntPtr renderer, - [In] SDL_FPoint[] points, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawLineF( - IntPtr renderer, - float x1, - float y1, - float x2, - float y2 - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawLinesF( - IntPtr renderer, - [In] SDL_FPoint[] points, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRectF( - IntPtr renderer, - ref SDL_FRect rect - ); - - /* renderer refers to an SDL_Renderer*, rect to an SDL_Rect*. - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRectF( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRectsF( - IntPtr renderer, - [In] SDL_FRect[] rects, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRectF( - IntPtr renderer, - ref SDL_FRect rect - ); - - /* renderer refers to an SDL_Renderer*, rect to an SDL_Rect*. - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRectF( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRectsF( - IntPtr renderer, - [In] SDL_FRect[] rects, - int count - ); - - #endregion - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderGetClipRect( - IntPtr renderer, - out SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderGetLogicalSize( - IntPtr renderer, - out int w, - out int h - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderGetScale( - IntPtr renderer, - out float scaleX, - out float scaleY - ); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderWindowToLogical( - IntPtr renderer, - int windowX, - int windowY, - out float logicalX, - out float logicalY - ); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderLogicalToWindow( - IntPtr renderer, - float logicalX, - float logicalY, - out int windowX, - out int windowY - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderGetViewport( - IntPtr renderer, - out SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderPresent(IntPtr renderer); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderReadPixels( - IntPtr renderer, - ref SDL_Rect rect, - uint format, - IntPtr pixels, - int pitch - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetClipRect( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetClipRect( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetLogicalSize( - IntPtr renderer, - int w, - int h - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetScale( - IntPtr renderer, - float scaleX, - float scaleY - ); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetIntegerScale( - IntPtr renderer, - SDL_bool enable - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetViewport( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRenderDrawBlendMode( - IntPtr renderer, - SDL_BlendMode blendMode - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRenderDrawColor( - IntPtr renderer, - byte r, - byte g, - byte b, - byte a - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRenderTarget( - IntPtr renderer, - IntPtr texture - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureAlphaMod( - IntPtr texture, - byte alpha - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureBlendMode( - IntPtr texture, - SDL_BlendMode blendMode - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureColorMod( - IntPtr texture, - byte r, - byte g, - byte b - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockTexture(IntPtr texture); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateTexture( - IntPtr texture, - ref SDL_Rect rect, - IntPtr pixels, - int pitch - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateTexture( - IntPtr texture, - IntPtr rect, - IntPtr pixels, - int pitch - ); - - /* texture refers to an SDL_Texture* - * Only available in 2.0.1 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateYUVTexture( - IntPtr texture, - ref SDL_Rect rect, - IntPtr yPlane, - int yPitch, - IntPtr uPlane, - int uPitch, - IntPtr vPlane, - int vPitch - ); - - /* texture refers to an SDL_Texture*. - * yPlane and uvPlane refer to const Uint*. - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateNVTexture( - IntPtr texture, - ref SDL_Rect rect, - IntPtr yPlane, - int yPitch, - IntPtr uvPlane, - int uvPitch - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RenderTargetSupported( - IntPtr renderer - ); - - /* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetRenderTarget(IntPtr renderer); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.8 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RenderGetMetalLayer( - IntPtr renderer - ); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.8 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RenderGetMetalCommandEncoder( - IntPtr renderer - ); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetVSync(IntPtr renderer, int vsync); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RenderIsClipEnabled(IntPtr renderer); - - /* renderer refers to an SDL_Renderer* - * Only available in 2.0.10 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFlush(IntPtr renderer); - - #endregion - - #region SDL_pixels.h - - public static uint SDL_DEFINE_PIXELFOURCC(byte A, byte B, byte C, byte D) - { - return SDL_FOURCC(A, B, C, D); - } - - public static uint SDL_DEFINE_PIXELFORMAT( - SDL_PixelType type, - uint order, - SDL_PackedLayout layout, - byte bits, - byte bytes - ) { - return (uint) ( - (1 << 28) | - (((byte) type) << 24) | - (((byte) order) << 20) | - (((byte) layout) << 16) | - (bits << 8) | - (bytes) - ); - } - - public static byte SDL_PIXELFLAG(uint X) - { - return (byte) ((X >> 28) & 0x0F); - } - - public static byte SDL_PIXELTYPE(uint X) - { - return (byte) ((X >> 24) & 0x0F); - } - - public static byte SDL_PIXELORDER(uint X) - { - return (byte) ((X >> 20) & 0x0F); - } - - public static byte SDL_PIXELLAYOUT(uint X) - { - return (byte) ((X >> 16) & 0x0F); - } - - public static byte SDL_BITSPERPIXEL(uint X) - { - return (byte) ((X >> 8) & 0xFF); - } - - public static byte SDL_BYTESPERPIXEL(uint X) - { - if (SDL_ISPIXELFORMAT_FOURCC(X)) - { - if ( (X == SDL_PIXELFORMAT_YUY2) || - (X == SDL_PIXELFORMAT_UYVY) || - (X == SDL_PIXELFORMAT_YVYU) ) - { - return 2; - } - return 1; - } - return (byte) (X & 0xFF); - } - - public static bool SDL_ISPIXELFORMAT_INDEXED(uint format) - { - if (SDL_ISPIXELFORMAT_FOURCC(format)) - { - return false; - } - SDL_PixelType pType = - (SDL_PixelType) SDL_PIXELTYPE(format); - return ( - pType == SDL_PixelType.SDL_PIXELTYPE_INDEX1 || - pType == SDL_PixelType.SDL_PIXELTYPE_INDEX4 || - pType == SDL_PixelType.SDL_PIXELTYPE_INDEX8 - ); - } - - public static bool SDL_ISPIXELFORMAT_PACKED(uint format) - { - if (SDL_ISPIXELFORMAT_FOURCC(format)) - { - return false; - } - SDL_PixelType pType = - (SDL_PixelType) SDL_PIXELTYPE(format); - return ( - pType == SDL_PixelType.SDL_PIXELTYPE_PACKED8 || - pType == SDL_PixelType.SDL_PIXELTYPE_PACKED16 || - pType == SDL_PixelType.SDL_PIXELTYPE_PACKED32 - ); - } - - public static bool SDL_ISPIXELFORMAT_ARRAY(uint format) - { - if (SDL_ISPIXELFORMAT_FOURCC(format)) - { - return false; - } - SDL_PixelType pType = - (SDL_PixelType) SDL_PIXELTYPE(format); - return ( - pType == SDL_PixelType.SDL_PIXELTYPE_ARRAYU8 || - pType == SDL_PixelType.SDL_PIXELTYPE_ARRAYU16 || - pType == SDL_PixelType.SDL_PIXELTYPE_ARRAYU32 || - pType == SDL_PixelType.SDL_PIXELTYPE_ARRAYF16 || - pType == SDL_PixelType.SDL_PIXELTYPE_ARRAYF32 - ); - } - - public static bool SDL_ISPIXELFORMAT_ALPHA(uint format) - { - if (SDL_ISPIXELFORMAT_PACKED(format)) - { - SDL_PackedOrder pOrder = - (SDL_PackedOrder) SDL_PIXELORDER(format); - return ( - pOrder == SDL_PackedOrder.SDL_PACKEDORDER_ARGB || - pOrder == SDL_PackedOrder.SDL_PACKEDORDER_RGBA || - pOrder == SDL_PackedOrder.SDL_PACKEDORDER_ABGR || - pOrder == SDL_PackedOrder.SDL_PACKEDORDER_BGRA - ); - } - else if (SDL_ISPIXELFORMAT_ARRAY(format)) - { - SDL_ArrayOrder aOrder = - (SDL_ArrayOrder) SDL_PIXELORDER(format); - return ( - aOrder == SDL_ArrayOrder.SDL_ARRAYORDER_ARGB || - aOrder == SDL_ArrayOrder.SDL_ARRAYORDER_RGBA || - aOrder == SDL_ArrayOrder.SDL_ARRAYORDER_ABGR || - aOrder == SDL_ArrayOrder.SDL_ARRAYORDER_BGRA - ); - } - return false; - } - - public static bool SDL_ISPIXELFORMAT_FOURCC(uint format) - { - return (format == 0) && (SDL_PIXELFLAG(format) != 1); - } - - public enum SDL_PixelType - { - SDL_PIXELTYPE_UNKNOWN, - SDL_PIXELTYPE_INDEX1, - SDL_PIXELTYPE_INDEX4, - SDL_PIXELTYPE_INDEX8, - SDL_PIXELTYPE_PACKED8, - SDL_PIXELTYPE_PACKED16, - SDL_PIXELTYPE_PACKED32, - SDL_PIXELTYPE_ARRAYU8, - SDL_PIXELTYPE_ARRAYU16, - SDL_PIXELTYPE_ARRAYU32, - SDL_PIXELTYPE_ARRAYF16, - SDL_PIXELTYPE_ARRAYF32 - } - - public enum SDL_BitmapOrder - { - SDL_BITMAPORDER_NONE, - SDL_BITMAPORDER_4321, - SDL_BITMAPORDER_1234 - } - - public enum SDL_PackedOrder - { - SDL_PACKEDORDER_NONE, - SDL_PACKEDORDER_XRGB, - SDL_PACKEDORDER_RGBX, - SDL_PACKEDORDER_ARGB, - SDL_PACKEDORDER_RGBA, - SDL_PACKEDORDER_XBGR, - SDL_PACKEDORDER_BGRX, - SDL_PACKEDORDER_ABGR, - SDL_PACKEDORDER_BGRA - } - - public enum SDL_ArrayOrder - { - SDL_ARRAYORDER_NONE, - SDL_ARRAYORDER_RGB, - SDL_ARRAYORDER_RGBA, - SDL_ARRAYORDER_ARGB, - SDL_ARRAYORDER_BGR, - SDL_ARRAYORDER_BGRA, - SDL_ARRAYORDER_ABGR - } - - public enum SDL_PackedLayout - { - SDL_PACKEDLAYOUT_NONE, - SDL_PACKEDLAYOUT_332, - SDL_PACKEDLAYOUT_4444, - SDL_PACKEDLAYOUT_1555, - SDL_PACKEDLAYOUT_5551, - SDL_PACKEDLAYOUT_565, - SDL_PACKEDLAYOUT_8888, - SDL_PACKEDLAYOUT_2101010, - SDL_PACKEDLAYOUT_1010102 - } - - public static readonly uint SDL_PIXELFORMAT_UNKNOWN = 0; - public static readonly uint SDL_PIXELFORMAT_INDEX1LSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_INDEX1, - (uint) SDL_BitmapOrder.SDL_BITMAPORDER_4321, - 0, - 1, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX1MSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_INDEX1, - (uint) SDL_BitmapOrder.SDL_BITMAPORDER_1234, - 0, - 1, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX4LSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_INDEX4, - (uint) SDL_BitmapOrder.SDL_BITMAPORDER_4321, - 0, - 4, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX4MSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_INDEX4, - (uint) SDL_BitmapOrder.SDL_BITMAPORDER_1234, - 0, - 4, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX8 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_INDEX8, - 0, - 0, - 8, 1 - ); - public static readonly uint SDL_PIXELFORMAT_RGB332 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED8, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XRGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_332, - 8, 1 - ); - public static readonly uint SDL_PIXELFORMAT_XRGB444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XRGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_4444, - 12, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGB444 = - SDL_PIXELFORMAT_XRGB444; - public static readonly uint SDL_PIXELFORMAT_XBGR444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XBGR, - SDL_PackedLayout.SDL_PACKEDLAYOUT_4444, - 12, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGR444 = - SDL_PIXELFORMAT_XBGR444; - public static readonly uint SDL_PIXELFORMAT_XRGB1555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XRGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_1555, - 15, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGB555 = - SDL_PIXELFORMAT_XRGB1555; - public static readonly uint SDL_PIXELFORMAT_XBGR1555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_INDEX1, - (uint) SDL_BitmapOrder.SDL_BITMAPORDER_4321, - SDL_PackedLayout.SDL_PACKEDLAYOUT_1555, - 15, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGR555 = - SDL_PIXELFORMAT_XBGR1555; - public static readonly uint SDL_PIXELFORMAT_ARGB4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_ARGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGBA4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_RGBA, - SDL_PackedLayout.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_ABGR4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_ABGR, - SDL_PackedLayout.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGRA4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_BGRA, - SDL_PackedLayout.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_ARGB1555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_ARGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_1555, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGBA5551 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_RGBA, - SDL_PackedLayout.SDL_PACKEDLAYOUT_5551, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_ABGR1555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_ABGR, - SDL_PackedLayout.SDL_PACKEDLAYOUT_1555, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGRA5551 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_BGRA, - SDL_PackedLayout.SDL_PACKEDLAYOUT_5551, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGB565 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XRGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_565, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGR565 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED16, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XBGR, - SDL_PackedLayout.SDL_PACKEDLAYOUT_565, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGB24 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_ARRAYU8, - (uint) SDL_ArrayOrder.SDL_ARRAYORDER_RGB, - 0, - 24, 3 - ); - public static readonly uint SDL_PIXELFORMAT_BGR24 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_ARRAYU8, - (uint) SDL_ArrayOrder.SDL_ARRAYORDER_BGR, - 0, - 24, 3 - ); - public static readonly uint SDL_PIXELFORMAT_XRGB888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XRGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_RGB888 = - SDL_PIXELFORMAT_XRGB888; - public static readonly uint SDL_PIXELFORMAT_RGBX8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_RGBX, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_XBGR888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_XBGR, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_BGR888 = - SDL_PIXELFORMAT_XBGR888; - public static readonly uint SDL_PIXELFORMAT_BGRX8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_BGRX, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_ARGB8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_ARGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_RGBA8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_RGBA, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_ABGR8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_ABGR, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_BGRA8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_BGRA, - SDL_PackedLayout.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_ARGB2101010 = - SDL_DEFINE_PIXELFORMAT( - SDL_PixelType.SDL_PIXELTYPE_PACKED32, - (uint) SDL_PackedOrder.SDL_PACKEDORDER_ARGB, - SDL_PackedLayout.SDL_PACKEDLAYOUT_2101010, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_YV12 = - SDL_DEFINE_PIXELFOURCC( - (byte) 'Y', (byte) 'V', (byte) '1', (byte) '2' - ); - public static readonly uint SDL_PIXELFORMAT_IYUV = - SDL_DEFINE_PIXELFOURCC( - (byte) 'I', (byte) 'Y', (byte) 'U', (byte) 'V' - ); - public static readonly uint SDL_PIXELFORMAT_YUY2 = - SDL_DEFINE_PIXELFOURCC( - (byte) 'Y', (byte) 'U', (byte) 'Y', (byte) '2' - ); - public static readonly uint SDL_PIXELFORMAT_UYVY = - SDL_DEFINE_PIXELFOURCC( - (byte) 'U', (byte) 'Y', (byte) 'V', (byte) 'Y' - ); - public static readonly uint SDL_PIXELFORMAT_YVYU = - SDL_DEFINE_PIXELFOURCC( - (byte) 'Y', (byte) 'V', (byte) 'Y', (byte) 'U' - ); - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Color - { - public byte r; - public byte g; - public byte b; - public byte a; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Palette - { - public int ncolors; - public IntPtr colors; - public int version; - public int refcount; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_PixelFormat - { - public uint format; - public IntPtr palette; // SDL_Palette* - public byte BitsPerPixel; - public byte BytesPerPixel; - public uint Rmask; - public uint Gmask; - public uint Bmask; - public uint Amask; - public byte Rloss; - public byte Gloss; - public byte Bloss; - public byte Aloss; - public byte Rshift; - public byte Gshift; - public byte Bshift; - public byte Ashift; - public int refcount; - public IntPtr next; // SDL_PixelFormat* - } - - /* IntPtr refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_AllocFormat(uint pixel_format); - - /* IntPtr refers to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_AllocPalette(int ncolors); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_CalculateGammaRamp( - float gamma, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] ramp - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeFormat(IntPtr format); - - /* palette refers to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreePalette(IntPtr palette); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetPixelFormatName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetPixelFormatName( - uint format - ); - public static string SDL_GetPixelFormatName(uint format) - { - return UTF8_ToManaged( - INTERNAL_SDL_GetPixelFormatName(format) - ); - } - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetRGB( - uint pixel, - IntPtr format, - out byte r, - out byte g, - out byte b - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetRGBA( - uint pixel, - IntPtr format, - out byte r, - out byte g, - out byte b, - out byte a - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_MapRGB( - IntPtr format, - byte r, - byte g, - byte b - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_MapRGBA( - IntPtr format, - byte r, - byte g, - byte b, - byte a - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_MasksToPixelFormatEnum( - int bpp, - uint Rmask, - uint Gmask, - uint Bmask, - uint Amask - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_PixelFormatEnumToMasks( - uint format, - out int bpp, - out uint Rmask, - out uint Gmask, - out uint Bmask, - out uint Amask - ); - - /* palette refers to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetPaletteColors( - IntPtr palette, - [In] SDL_Color[] colors, - int firstcolor, - int ncolors - ); - - /* format and palette refer to an SDL_PixelFormat* and SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetPixelFormatPalette( - IntPtr format, - IntPtr palette - ); - - #endregion - - #region SDL_rect.h - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Point - { - public int x; - public int y; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Rect - { - public int x; - public int y; - public int w; - public int h; - } - - /* Only available in 2.0.10 or higher. */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_FPoint - { - public float x; - public float y; - } - - /* Only available in 2.0.10 or higher. */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_FRect - { - public float x; - public float y; - public float w; - public float h; - } - - /* Only available in 2.0.4 or higher. */ - public static SDL_bool SDL_PointInRect(ref SDL_Point p, ref SDL_Rect r) - { - return ( (p.x >= r.x) && - (p.x < (r.x + r.w)) && - (p.y >= r.y) && - (p.y < (r.y + r.h)) ) ? - SDL_bool.SDL_TRUE : - SDL_bool.SDL_FALSE; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_EnclosePoints( - [In] SDL_Point[] points, - int count, - ref SDL_Rect clip, - out SDL_Rect result - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasIntersection( - ref SDL_Rect A, - ref SDL_Rect B - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IntersectRect( - ref SDL_Rect A, - ref SDL_Rect B, - out SDL_Rect result - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IntersectRectAndLine( - ref SDL_Rect rect, - ref int X1, - ref int Y1, - ref int X2, - ref int Y2 - ); - - public static SDL_bool SDL_RectEmpty(ref SDL_Rect r) - { - return ((r.w <= 0) || (r.h <= 0)) ? - SDL_bool.SDL_TRUE : - SDL_bool.SDL_FALSE; - } - - public static SDL_bool SDL_RectEquals( - ref SDL_Rect a, - ref SDL_Rect b - ) { - return ( (a.x == b.x) && - (a.y == b.y) && - (a.w == b.w) && - (a.h == b.h) ) ? - SDL_bool.SDL_TRUE : - SDL_bool.SDL_FALSE; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnionRect( - ref SDL_Rect A, - ref SDL_Rect B, - out SDL_Rect result - ); - - #endregion - - #region SDL_shape.h - - public const int SDL_NONSHAPEABLE_WINDOW = -1; - public const int SDL_INVALID_SHAPE_ARGUMENT = -2; - public const int SDL_WINDOW_LACKS_SHAPE = -3; - - [DllImport(nativeLibName, EntryPoint = "SDL_CreateShapedWindow", CallingConvention = CallingConvention.Cdecl)] - private static unsafe extern IntPtr INTERNAL_SDL_CreateShapedWindow( - byte* title, - uint x, - uint y, - uint w, - uint h, - SDL_WindowFlags flags - ); - - public static unsafe IntPtr SDL_CreateShapedWindow(string title, uint x, uint y, uint w, uint h, SDL_WindowFlags flags) - { - byte* utf8Title = Utf8EncodeHeap(title); - IntPtr result = INTERNAL_SDL_CreateShapedWindow(utf8Title, x, y, w, h, flags); - Marshal.FreeHGlobal((IntPtr)utf8Title); - return result; - } - - [DllImport(nativeLibName, EntryPoint = "SDL_IsShapedWindow", CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsShapedWindow(IntPtr window); - - public enum WindowShapeMode - { - ShapeModeDefault, - ShapeModeBinarizeAlpha, - ShapeModeReverseBinarizeAlpha, - ShapeModeColorKey - } - - public static bool SDL_SHAPEMODEALPHA(WindowShapeMode mode) - { - switch (mode) - { - case WindowShapeMode.ShapeModeDefault: - case WindowShapeMode.ShapeModeBinarizeAlpha: - case WindowShapeMode.ShapeModeReverseBinarizeAlpha: - return true; - default: - return false; - } - } - - [StructLayout(LayoutKind.Explicit)] - public struct SDL_WindowShapeParams - { - [FieldOffset(0)] - public byte binarizationCutoff; - [FieldOffset(0)] - public SDL_Color colorKey; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_WindowShapeMode - { - public WindowShapeMode mode; - public SDL_WindowShapeParams parameters; - } - - [DllImport(nativeLibName, EntryPoint = "SDL_SetWindowShape", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowShape( - IntPtr window, - IntPtr shape, - ref SDL_WindowShapeMode shape_mode - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetShapedWindowMode", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetShapedWindowMode( - IntPtr window, - out SDL_WindowShapeMode shape_mode - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetShapedWindowMode", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetShapedWindowMode( - IntPtr window, - IntPtr shape_mode - ); - - #endregion - - #region SDL_surface.h - - public const uint SDL_SWSURFACE = 0x00000000; - public const uint SDL_PREALLOC = 0x00000001; - public const uint SDL_RLEACCEL = 0x00000002; - public const uint SDL_DONTFREE = 0x00000004; - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Surface - { - public uint flags; - public IntPtr format; // SDL_PixelFormat* - public int w; - public int h; - public int pitch; - public IntPtr pixels; // void* - public IntPtr userdata; // void* - public int locked; - public IntPtr list_blitmap; // void* - public SDL_Rect clip_rect; - public IntPtr map; // SDL_BlitMap* - public int refcount; - } - - /* surface refers to an SDL_Surface* */ - public static bool SDL_MUSTLOCK(IntPtr surface) - { - SDL_Surface sur; - sur = (SDL_Surface) Marshal.PtrToStructure( - surface, - typeof(SDL_Surface) - ); - return (sur.flags & SDL_RLEACCEL) != 0; - } - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both SDL_Rects. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both SDL_Rects. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst are void* pointers */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_ConvertPixels( - int width, - int height, - uint src_format, - IntPtr src, - int src_pitch, - uint dst_format, - IntPtr dst, - int dst_pitch - ); - - /* src and dst are void* pointers - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_PremultiplyAlpha( - int width, - int height, - uint src_format, - IntPtr src, - int src_pitch, - uint dst_format, - IntPtr dst, - int dst_pitch - ); - - /* IntPtr refers to an SDL_Surface* - * src refers to an SDL_Surface* - * fmt refers to an SDL_PixelFormat* - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_ConvertSurface( - IntPtr src, - IntPtr fmt, - uint flags - ); - - /* IntPtr refers to an SDL_Surface*, src to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_ConvertSurfaceFormat( - IntPtr src, - uint pixel_format, - uint flags - ); - - /* IntPtr refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRGBSurface( - uint flags, - int width, - int height, - int depth, - uint Rmask, - uint Gmask, - uint Bmask, - uint Amask - ); - - /* IntPtr refers to an SDL_Surface*, pixels to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRGBSurfaceFrom( - IntPtr pixels, - int width, - int height, - int depth, - int pitch, - uint Rmask, - uint Gmask, - uint Bmask, - uint Amask - ); - - /* IntPtr refers to an SDL_Surface* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRGBSurfaceWithFormat( - uint flags, - int width, - int height, - int depth, - uint format - ); - - /* IntPtr refers to an SDL_Surface*, pixels to a void* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRGBSurfaceWithFormatFrom( - IntPtr pixels, - int width, - int height, - int depth, - int pitch, - uint format - ); - - /* dst refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_FillRect( - IntPtr dst, - ref SDL_Rect rect, - uint color - ); - - /* dst refers to an SDL_Surface*. - * This overload allows passing NULL to rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_FillRect( - IntPtr dst, - IntPtr rect, - uint color - ); - - /* dst refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_FillRects( - IntPtr dst, - [In] SDL_Rect[] rects, - int count, - uint color - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeSurface(IntPtr surface); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetClipRect( - IntPtr surface, - out SDL_Rect rect - ); - - /* surface refers to an SDL_Surface*. - * Only available in 2.0.9 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasColorKey(IntPtr surface); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetColorKey( - IntPtr surface, - out uint key - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSurfaceAlphaMod( - IntPtr surface, - out byte alpha - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSurfaceBlendMode( - IntPtr surface, - out SDL_BlendMode blendMode - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSurfaceColorMod( - IntPtr surface, - out byte r, - out byte g, - out byte b - ); - - /* These are for SDL_LoadBMP, which is a macro in the SDL headers. */ - /* IntPtr refers to an SDL_Surface* */ - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_LoadBMP_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_LoadBMP_RW( - IntPtr src, - int freesrc - ); - public static IntPtr SDL_LoadBMP(string file) - { - IntPtr rwops = SDL_RWFromFile(file, "rb"); - return INTERNAL_SDL_LoadBMP_RW(rwops, 1); - } - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockSurface(IntPtr surface); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LowerBlit( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LowerBlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* These are for SDL_SaveBMP, which is a macro in the SDL headers. */ - /* IntPtr refers to an SDL_Surface* */ - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_SaveBMP_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_SDL_SaveBMP_RW( - IntPtr surface, - IntPtr src, - int freesrc - ); - public static int SDL_SaveBMP(IntPtr surface, string file) - { - IntPtr rwops = SDL_RWFromFile(file, "wb"); - return INTERNAL_SDL_SaveBMP_RW(surface, rwops, 1); - } - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_SetClipRect( - IntPtr surface, - ref SDL_Rect rect - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetColorKey( - IntPtr surface, - int flag, - uint key - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceAlphaMod( - IntPtr surface, - byte alpha - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceBlendMode( - IntPtr surface, - SDL_BlendMode blendMode - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceColorMod( - IntPtr surface, - byte r, - byte g, - byte b - ); - - /* surface refers to an SDL_Surface*, palette to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfacePalette( - IntPtr surface, - IntPtr palette - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceRLE( - IntPtr surface, - int flag - ); - - /* surface refers to an SDL_Surface*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasSurfaceRLE( - IntPtr surface - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SoftStretch( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SoftStretchLinear( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockSurface(IntPtr surface); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpperBlit( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpperBlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* surface and IntPtr refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_DuplicateSurface(IntPtr surface); - - #endregion - - #region SDL_clipboard.h - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasClipboardText(); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetClipboardText", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetClipboardText(); - public static string SDL_GetClipboardText() - { - return UTF8_ToManaged(INTERNAL_SDL_GetClipboardText(), true); - } - - [DllImport(nativeLibName, EntryPoint = "SDL_SetClipboardText", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_SDL_SetClipboardText( - byte* text - ); - public static unsafe int SDL_SetClipboardText( - string text - ) { - byte* utf8Text = Utf8EncodeHeap(text); - int result = INTERNAL_SDL_SetClipboardText( - utf8Text - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - #endregion - - #region SDL_events.h - - /* General keyboard/mouse state definitions. */ - public const byte SDL_PRESSED = 1; - public const byte SDL_RELEASED = 0; - - /* Default size is according to SDL2 default. */ - public const int SDL_TEXTEDITINGEVENT_TEXT_SIZE = 32; - public const int SDL_TEXTINPUTEVENT_TEXT_SIZE = 32; - - /* The types of events that can be delivered. */ - public enum SDL_EventType : uint - { - SDL_FIRSTEVENT = 0, - - /* Application events */ - SDL_QUIT = 0x100, - - /* iOS/Android/WinRT app events */ - SDL_APP_TERMINATING, - SDL_APP_LOWMEMORY, - SDL_APP_WILLENTERBACKGROUND, - SDL_APP_DIDENTERBACKGROUND, - SDL_APP_WILLENTERFOREGROUND, - SDL_APP_DIDENTERFOREGROUND, - - /* Only available in SDL 2.0.14 or higher. */ - SDL_LOCALECHANGED, - - /* Display events */ - /* Only available in SDL 2.0.9 or higher. */ - SDL_DISPLAYEVENT = 0x150, - - /* Window events */ - SDL_WINDOWEVENT = 0x200, - SDL_SYSWMEVENT, - - /* Keyboard events */ - SDL_KEYDOWN = 0x300, - SDL_KEYUP, - SDL_TEXTEDITING, - SDL_TEXTINPUT, - SDL_KEYMAPCHANGED, - SDL_TEXTEDITING_EXT, - - /* Mouse events */ - SDL_MOUSEMOTION = 0x400, - SDL_MOUSEBUTTONDOWN, - SDL_MOUSEBUTTONUP, - SDL_MOUSEWHEEL, - - /* Joystick events */ - SDL_JOYAXISMOTION = 0x600, - SDL_JOYBALLMOTION, - SDL_JOYHATMOTION, - SDL_JOYBUTTONDOWN, - SDL_JOYBUTTONUP, - SDL_JOYDEVICEADDED, - SDL_JOYDEVICEREMOVED, - - /* Game controller events */ - SDL_CONTROLLERAXISMOTION = 0x650, - SDL_CONTROLLERBUTTONDOWN, - SDL_CONTROLLERBUTTONUP, - SDL_CONTROLLERDEVICEADDED, - SDL_CONTROLLERDEVICEREMOVED, - SDL_CONTROLLERDEVICEREMAPPED, - SDL_CONTROLLERTOUCHPADDOWN, /* Requires >= 2.0.14 */ - SDL_CONTROLLERTOUCHPADMOTION, /* Requires >= 2.0.14 */ - SDL_CONTROLLERTOUCHPADUP, /* Requires >= 2.0.14 */ - SDL_CONTROLLERSENSORUPDATE, /* Requires >= 2.0.14 */ - - /* Touch events */ - SDL_FINGERDOWN = 0x700, - SDL_FINGERUP, - SDL_FINGERMOTION, - - /* Gesture events */ - SDL_DOLLARGESTURE = 0x800, - SDL_DOLLARRECORD, - SDL_MULTIGESTURE, - - /* Clipboard events */ - SDL_CLIPBOARDUPDATE = 0x900, - - /* Drag and drop events */ - SDL_DROPFILE = 0x1000, - /* Only available in 2.0.4 or higher. */ - SDL_DROPTEXT, - SDL_DROPBEGIN, - SDL_DROPCOMPLETE, - - /* Audio hotplug events */ - /* Only available in SDL 2.0.4 or higher. */ - SDL_AUDIODEVICEADDED = 0x1100, - SDL_AUDIODEVICEREMOVED, - - /* Sensor events */ - /* Only available in SDL 2.0.9 or higher. */ - SDL_SENSORUPDATE = 0x1200, - - /* Render events */ - /* Only available in SDL 2.0.2 or higher. */ - SDL_RENDER_TARGETS_RESET = 0x2000, - /* Only available in SDL 2.0.4 or higher. */ - SDL_RENDER_DEVICE_RESET, - - /* Internal events */ - /* Only available in 2.0.18 or higher. */ - SDL_POLLSENTINEL = 0x7F00, - - /* Events SDL_USEREVENT through SDL_LASTEVENT are for - * your use, and should be allocated with - * SDL_RegisterEvents() - */ - SDL_USEREVENT = 0x8000, - - /* The last event, used for bouding arrays. */ - SDL_LASTEVENT = 0xFFFF - } - - /* Only available in 2.0.4 or higher. */ - public enum SDL_MouseWheelDirection : uint - { - SDL_MOUSEWHEEL_NORMAL, - SDL_MOUSEWHEEL_FLIPPED - } - - /* Fields shared by every event */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_GenericEvent - { - public SDL_EventType type; - public UInt32 timestamp; - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - [StructLayout(LayoutKind.Sequential)] - public struct SDL_DisplayEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 display; - public SDL_DisplayEventID displayEvent; // event, lolC# - private byte padding1; - private byte padding2; - private byte padding3; - public Int32 data1; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Window state change event data (event.window.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_WindowEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public SDL_WindowEventID windowEvent; // event, lolC# - private byte padding1; - private byte padding2; - private byte padding3; - public Int32 data1; - public Int32 data2; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Keyboard button event structure (event.key.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_KeyboardEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public byte state; - public byte repeat; /* non-zero if this is a repeat */ - private byte padding2; - private byte padding3; - public SDL_Keysym keysym; - } -#pragma warning restore 0169 - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_TextEditingEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public fixed byte text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; - public Int32 start; - public Int32 length; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_TextEditingExtEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public IntPtr text; /* char*, free with SDL_free */ - public Int32 start; - public Int32 length; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_TextInputEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public fixed byte text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Mouse motion event structure (event.motion.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MouseMotionEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public UInt32 which; - public byte state; /* bitmask of buttons */ - private byte padding1; - private byte padding2; - private byte padding3; - public Int32 x; - public Int32 y; - public Int32 xrel; - public Int32 yrel; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Mouse button event structure (event.button.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MouseButtonEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public UInt32 which; - public byte button; /* button id */ - public byte state; /* SDL_PRESSED or SDL_RELEASED */ - public byte clicks; /* 1 for single-click, 2 for double-click, etc. */ - private byte padding1; - public Int32 x; - public Int32 y; - } -#pragma warning restore 0169 - - /* Mouse wheel event structure (event.wheel.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MouseWheelEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public UInt32 which; - public Int32 x; /* amount scrolled horizontally */ - public Int32 y; /* amount scrolled vertically */ - public UInt32 direction; /* Set to one of the SDL_MOUSEWHEEL_* defines */ - public float preciseX; /* Requires >= 2.0.18 */ - public float preciseY; /* Requires >= 2.0.18 */ - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick axis motion event structure (event.jaxis.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyAxisEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte axis; - private byte padding1; - private byte padding2; - private byte padding3; - public Int16 axisValue; /* value, lolC# */ - public UInt16 padding4; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick trackball motion event structure (event.jball.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyBallEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte ball; - private byte padding1; - private byte padding2; - private byte padding3; - public Int16 xrel; - public Int16 yrel; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick hat position change event struct (event.jhat.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyHatEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte hat; /* index of the hat */ - public byte hatValue; /* value, lolC# */ - private byte padding1; - private byte padding2; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick button event structure (event.jbutton.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyButtonEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte button; - public byte state; /* SDL_PRESSED or SDL_RELEASED */ - private byte padding1; - private byte padding2; - } -#pragma warning restore 0169 - - /* Joystick device event structure (event.jdevice.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyDeviceEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Game controller axis motion event (event.caxis.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerAxisEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte axis; - private byte padding1; - private byte padding2; - private byte padding3; - public Int16 axisValue; /* value, lolC# */ - private UInt16 padding4; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Game controller button event (event.cbutton.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerButtonEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte button; - public byte state; - private byte padding1; - private byte padding2; - } -#pragma warning restore 0169 - - /* Game controller device event (event.cdevice.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerDeviceEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* joystick id for ADDED, - * else instance id - */ - } - - /* Game controller touchpad event structure (event.ctouchpad.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerTouchpadEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public Int32 touchpad; - public Int32 finger; - public float x; - public float y; - public float pressure; - } - - /* Game controller sensor event structure (event.csensor.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerSensorEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public Int32 sensor; - public float data1; - public float data2; - public float data3; - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Audio device event (event.adevice.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_AudioDeviceEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 which; - public byte iscapture; - private byte padding1; - private byte padding2; - private byte padding3; - } -#pragma warning restore 0169 - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_TouchFingerEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int64 touchId; // SDL_TouchID - public Int64 fingerId; // SDL_GestureID - public float x; - public float y; - public float dx; - public float dy; - public float pressure; - public uint windowID; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MultiGestureEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int64 touchId; // SDL_TouchID - public float dTheta; - public float dDist; - public float x; - public float y; - public UInt16 numFingers; - public UInt16 padding; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_DollarGestureEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int64 touchId; // SDL_TouchID - public Int64 gestureId; // SDL_GestureID - public UInt32 numFingers; - public float error; - public float x; - public float y; - } - - /* File open request by system (event.drop.*), enabled by - * default - */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_DropEvent - { - public SDL_EventType type; - public UInt32 timestamp; - - /* char* filename, to be freed. - * Access the variable EXACTLY ONCE like this: - * string s = SDL.UTF8_ToManaged(evt.drop.file, true); - */ - public IntPtr file; - public UInt32 windowID; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_SensorEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; - public fixed float data[6]; - } - - /* The "quit requested" event */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_QuitEvent - { - public SDL_EventType type; - public UInt32 timestamp; - } - - /* A user defined event (event.user.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_UserEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public Int32 code; - public IntPtr data1; /* user-defined */ - public IntPtr data2; /* user-defined */ - } - - /* A video driver dependent event (event.syswm.*), disabled */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_SysWMEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public IntPtr msg; /* SDL_SysWMmsg*, system-dependent*/ - } - - /* General event structure */ - // C# doesn't do unions, so we do this ugly thing. */ - [StructLayout(LayoutKind.Explicit)] - public unsafe struct SDL_Event - { - [FieldOffset(0)] - public SDL_EventType type; - [FieldOffset(0)] - public SDL_EventType typeFSharp; - [FieldOffset(0)] - public SDL_DisplayEvent display; - [FieldOffset(0)] - public SDL_WindowEvent window; - [FieldOffset(0)] - public SDL_KeyboardEvent key; - [FieldOffset(0)] - public SDL_TextEditingEvent edit; - [FieldOffset(0)] - public SDL_TextEditingExtEvent editExt; - [FieldOffset(0)] - public SDL_TextInputEvent text; - [FieldOffset(0)] - public SDL_MouseMotionEvent motion; - [FieldOffset(0)] - public SDL_MouseButtonEvent button; - [FieldOffset(0)] - public SDL_MouseWheelEvent wheel; - [FieldOffset(0)] - public SDL_JoyAxisEvent jaxis; - [FieldOffset(0)] - public SDL_JoyBallEvent jball; - [FieldOffset(0)] - public SDL_JoyHatEvent jhat; - [FieldOffset(0)] - public SDL_JoyButtonEvent jbutton; - [FieldOffset(0)] - public SDL_JoyDeviceEvent jdevice; - [FieldOffset(0)] - public SDL_ControllerAxisEvent caxis; - [FieldOffset(0)] - public SDL_ControllerButtonEvent cbutton; - [FieldOffset(0)] - public SDL_ControllerDeviceEvent cdevice; - [FieldOffset(0)] - public SDL_ControllerTouchpadEvent ctouchpad; - [FieldOffset(0)] - public SDL_ControllerSensorEvent csensor; - [FieldOffset(0)] - public SDL_AudioDeviceEvent adevice; - [FieldOffset(0)] - public SDL_SensorEvent sensor; - [FieldOffset(0)] - public SDL_QuitEvent quit; - [FieldOffset(0)] - public SDL_UserEvent user; - [FieldOffset(0)] - public SDL_SysWMEvent syswm; - [FieldOffset(0)] - public SDL_TouchFingerEvent tfinger; - [FieldOffset(0)] - public SDL_MultiGestureEvent mgesture; - [FieldOffset(0)] - public SDL_DollarGestureEvent dgesture; - [FieldOffset(0)] - public SDL_DropEvent drop; - [FieldOffset(0)] - private fixed byte padding[56]; - } - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int SDL_EventFilter( - IntPtr userdata, // void* - IntPtr sdlevent // SDL_Event* event, lolC# - ); - - /* Pump the event loop, getting events from the input devices*/ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_PumpEvents(); - - public enum SDL_eventaction - { - SDL_ADDEVENT, - SDL_PEEKEVENT, - SDL_GETEVENT - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_PeepEvents( - [Out] SDL_Event[] events, - int numevents, - SDL_eventaction action, - SDL_EventType minType, - SDL_EventType maxType - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe int SDL_PeepEvents( - SDL_Event* events, - int numevents, - SDL_eventaction action, - SDL_EventType minType, - SDL_EventType maxType - ); - - /* Checks to see if certain events are in the event queue */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasEvent(SDL_EventType type); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasEvents( - SDL_EventType minType, - SDL_EventType maxType - ); - - /* Clears events from the event queue */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FlushEvent(SDL_EventType type); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FlushEvents( - SDL_EventType min, - SDL_EventType max - ); - - /* Polls for currently pending events */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_PollEvent(out SDL_Event _event); - - /* Waits indefinitely for the next event */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_WaitEvent(out SDL_Event _event); - - /* Waits until the specified timeout (in ms) for the next event - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_WaitEventTimeout(out SDL_Event _event, int timeout); - - /* Add an event to the event queue */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_PushEvent(ref SDL_Event _event); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetEventFilter( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - private static extern SDL_bool SDL_GetEventFilter( - out IntPtr filter, - out IntPtr userdata - ); - public static SDL_bool SDL_GetEventFilter( - out SDL_EventFilter filter, - out IntPtr userdata - ) { - IntPtr result = IntPtr.Zero; - SDL_bool retval = SDL_GetEventFilter(out result, out userdata); - if (result != IntPtr.Zero) - { - filter = (SDL_EventFilter) Marshal.GetDelegateForFunctionPointer( - result, - typeof(SDL_EventFilter) - ); - } - else - { - filter = null; - } - return retval; - } - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_AddEventWatch( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DelEventWatch( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FilterEvents( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* These are for SDL_EventState() */ - public const int SDL_QUERY = -1; - public const int SDL_IGNORE = 0; - public const int SDL_DISABLE = 0; - public const int SDL_ENABLE = 1; - - /* This function allows you to enable/disable certain events */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_EventState(SDL_EventType type, int state); - - /* Get the state of an event */ - public static byte SDL_GetEventState(SDL_EventType type) - { - return SDL_EventState(type, SDL_QUERY); - } - - /* Allocate a set of user-defined events */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_RegisterEvents(int numevents); - #endregion - - #region SDL_scancode.h - - /* Scancodes based off USB keyboard page (0x07) */ - public enum SDL_Scancode - { - SDL_SCANCODE_UNKNOWN = 0, - - SDL_SCANCODE_A = 4, - SDL_SCANCODE_B = 5, - SDL_SCANCODE_C = 6, - SDL_SCANCODE_D = 7, - SDL_SCANCODE_E = 8, - SDL_SCANCODE_F = 9, - SDL_SCANCODE_G = 10, - SDL_SCANCODE_H = 11, - SDL_SCANCODE_I = 12, - SDL_SCANCODE_J = 13, - SDL_SCANCODE_K = 14, - SDL_SCANCODE_L = 15, - SDL_SCANCODE_M = 16, - SDL_SCANCODE_N = 17, - SDL_SCANCODE_O = 18, - SDL_SCANCODE_P = 19, - SDL_SCANCODE_Q = 20, - SDL_SCANCODE_R = 21, - SDL_SCANCODE_S = 22, - SDL_SCANCODE_T = 23, - SDL_SCANCODE_U = 24, - SDL_SCANCODE_V = 25, - SDL_SCANCODE_W = 26, - SDL_SCANCODE_X = 27, - SDL_SCANCODE_Y = 28, - SDL_SCANCODE_Z = 29, - - SDL_SCANCODE_1 = 30, - SDL_SCANCODE_2 = 31, - SDL_SCANCODE_3 = 32, - SDL_SCANCODE_4 = 33, - SDL_SCANCODE_5 = 34, - SDL_SCANCODE_6 = 35, - SDL_SCANCODE_7 = 36, - SDL_SCANCODE_8 = 37, - SDL_SCANCODE_9 = 38, - SDL_SCANCODE_0 = 39, - - SDL_SCANCODE_RETURN = 40, - SDL_SCANCODE_ESCAPE = 41, - SDL_SCANCODE_BACKSPACE = 42, - SDL_SCANCODE_TAB = 43, - SDL_SCANCODE_SPACE = 44, - - SDL_SCANCODE_MINUS = 45, - SDL_SCANCODE_EQUALS = 46, - SDL_SCANCODE_LEFTBRACKET = 47, - SDL_SCANCODE_RIGHTBRACKET = 48, - SDL_SCANCODE_BACKSLASH = 49, - SDL_SCANCODE_NONUSHASH = 50, - SDL_SCANCODE_SEMICOLON = 51, - SDL_SCANCODE_APOSTROPHE = 52, - SDL_SCANCODE_GRAVE = 53, - SDL_SCANCODE_COMMA = 54, - SDL_SCANCODE_PERIOD = 55, - SDL_SCANCODE_SLASH = 56, - - SDL_SCANCODE_CAPSLOCK = 57, - - SDL_SCANCODE_F1 = 58, - SDL_SCANCODE_F2 = 59, - SDL_SCANCODE_F3 = 60, - SDL_SCANCODE_F4 = 61, - SDL_SCANCODE_F5 = 62, - SDL_SCANCODE_F6 = 63, - SDL_SCANCODE_F7 = 64, - SDL_SCANCODE_F8 = 65, - SDL_SCANCODE_F9 = 66, - SDL_SCANCODE_F10 = 67, - SDL_SCANCODE_F11 = 68, - SDL_SCANCODE_F12 = 69, - - SDL_SCANCODE_PRINTSCREEN = 70, - SDL_SCANCODE_SCROLLLOCK = 71, - SDL_SCANCODE_PAUSE = 72, - SDL_SCANCODE_INSERT = 73, - SDL_SCANCODE_HOME = 74, - SDL_SCANCODE_PAGEUP = 75, - SDL_SCANCODE_DELETE = 76, - SDL_SCANCODE_END = 77, - SDL_SCANCODE_PAGEDOWN = 78, - SDL_SCANCODE_RIGHT = 79, - SDL_SCANCODE_LEFT = 80, - SDL_SCANCODE_DOWN = 81, - SDL_SCANCODE_UP = 82, - - SDL_SCANCODE_NUMLOCKCLEAR = 83, - SDL_SCANCODE_KP_DIVIDE = 84, - SDL_SCANCODE_KP_MULTIPLY = 85, - SDL_SCANCODE_KP_MINUS = 86, - SDL_SCANCODE_KP_PLUS = 87, - SDL_SCANCODE_KP_ENTER = 88, - SDL_SCANCODE_KP_1 = 89, - SDL_SCANCODE_KP_2 = 90, - SDL_SCANCODE_KP_3 = 91, - SDL_SCANCODE_KP_4 = 92, - SDL_SCANCODE_KP_5 = 93, - SDL_SCANCODE_KP_6 = 94, - SDL_SCANCODE_KP_7 = 95, - SDL_SCANCODE_KP_8 = 96, - SDL_SCANCODE_KP_9 = 97, - SDL_SCANCODE_KP_0 = 98, - SDL_SCANCODE_KP_PERIOD = 99, - - SDL_SCANCODE_NONUSBACKSLASH = 100, - SDL_SCANCODE_APPLICATION = 101, - SDL_SCANCODE_POWER = 102, - SDL_SCANCODE_KP_EQUALS = 103, - SDL_SCANCODE_F13 = 104, - SDL_SCANCODE_F14 = 105, - SDL_SCANCODE_F15 = 106, - SDL_SCANCODE_F16 = 107, - SDL_SCANCODE_F17 = 108, - SDL_SCANCODE_F18 = 109, - SDL_SCANCODE_F19 = 110, - SDL_SCANCODE_F20 = 111, - SDL_SCANCODE_F21 = 112, - SDL_SCANCODE_F22 = 113, - SDL_SCANCODE_F23 = 114, - SDL_SCANCODE_F24 = 115, - SDL_SCANCODE_EXECUTE = 116, - SDL_SCANCODE_HELP = 117, - SDL_SCANCODE_MENU = 118, - SDL_SCANCODE_SELECT = 119, - SDL_SCANCODE_STOP = 120, - SDL_SCANCODE_AGAIN = 121, - SDL_SCANCODE_UNDO = 122, - SDL_SCANCODE_CUT = 123, - SDL_SCANCODE_COPY = 124, - SDL_SCANCODE_PASTE = 125, - SDL_SCANCODE_FIND = 126, - SDL_SCANCODE_MUTE = 127, - SDL_SCANCODE_VOLUMEUP = 128, - SDL_SCANCODE_VOLUMEDOWN = 129, - /* not sure whether there's a reason to enable these */ - /* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */ - /* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */ - /* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */ - SDL_SCANCODE_KP_COMMA = 133, - SDL_SCANCODE_KP_EQUALSAS400 = 134, - - SDL_SCANCODE_INTERNATIONAL1 = 135, - SDL_SCANCODE_INTERNATIONAL2 = 136, - SDL_SCANCODE_INTERNATIONAL3 = 137, - SDL_SCANCODE_INTERNATIONAL4 = 138, - SDL_SCANCODE_INTERNATIONAL5 = 139, - SDL_SCANCODE_INTERNATIONAL6 = 140, - SDL_SCANCODE_INTERNATIONAL7 = 141, - SDL_SCANCODE_INTERNATIONAL8 = 142, - SDL_SCANCODE_INTERNATIONAL9 = 143, - SDL_SCANCODE_LANG1 = 144, - SDL_SCANCODE_LANG2 = 145, - SDL_SCANCODE_LANG3 = 146, - SDL_SCANCODE_LANG4 = 147, - SDL_SCANCODE_LANG5 = 148, - SDL_SCANCODE_LANG6 = 149, - SDL_SCANCODE_LANG7 = 150, - SDL_SCANCODE_LANG8 = 151, - SDL_SCANCODE_LANG9 = 152, - - SDL_SCANCODE_ALTERASE = 153, - SDL_SCANCODE_SYSREQ = 154, - SDL_SCANCODE_CANCEL = 155, - SDL_SCANCODE_CLEAR = 156, - SDL_SCANCODE_PRIOR = 157, - SDL_SCANCODE_RETURN2 = 158, - SDL_SCANCODE_SEPARATOR = 159, - SDL_SCANCODE_OUT = 160, - SDL_SCANCODE_OPER = 161, - SDL_SCANCODE_CLEARAGAIN = 162, - SDL_SCANCODE_CRSEL = 163, - SDL_SCANCODE_EXSEL = 164, - - SDL_SCANCODE_KP_00 = 176, - SDL_SCANCODE_KP_000 = 177, - SDL_SCANCODE_THOUSANDSSEPARATOR = 178, - SDL_SCANCODE_DECIMALSEPARATOR = 179, - SDL_SCANCODE_CURRENCYUNIT = 180, - SDL_SCANCODE_CURRENCYSUBUNIT = 181, - SDL_SCANCODE_KP_LEFTPAREN = 182, - SDL_SCANCODE_KP_RIGHTPAREN = 183, - SDL_SCANCODE_KP_LEFTBRACE = 184, - SDL_SCANCODE_KP_RIGHTBRACE = 185, - SDL_SCANCODE_KP_TAB = 186, - SDL_SCANCODE_KP_BACKSPACE = 187, - SDL_SCANCODE_KP_A = 188, - SDL_SCANCODE_KP_B = 189, - SDL_SCANCODE_KP_C = 190, - SDL_SCANCODE_KP_D = 191, - SDL_SCANCODE_KP_E = 192, - SDL_SCANCODE_KP_F = 193, - SDL_SCANCODE_KP_XOR = 194, - SDL_SCANCODE_KP_POWER = 195, - SDL_SCANCODE_KP_PERCENT = 196, - SDL_SCANCODE_KP_LESS = 197, - SDL_SCANCODE_KP_GREATER = 198, - SDL_SCANCODE_KP_AMPERSAND = 199, - SDL_SCANCODE_KP_DBLAMPERSAND = 200, - SDL_SCANCODE_KP_VERTICALBAR = 201, - SDL_SCANCODE_KP_DBLVERTICALBAR = 202, - SDL_SCANCODE_KP_COLON = 203, - SDL_SCANCODE_KP_HASH = 204, - SDL_SCANCODE_KP_SPACE = 205, - SDL_SCANCODE_KP_AT = 206, - SDL_SCANCODE_KP_EXCLAM = 207, - SDL_SCANCODE_KP_MEMSTORE = 208, - SDL_SCANCODE_KP_MEMRECALL = 209, - SDL_SCANCODE_KP_MEMCLEAR = 210, - SDL_SCANCODE_KP_MEMADD = 211, - SDL_SCANCODE_KP_MEMSUBTRACT = 212, - SDL_SCANCODE_KP_MEMMULTIPLY = 213, - SDL_SCANCODE_KP_MEMDIVIDE = 214, - SDL_SCANCODE_KP_PLUSMINUS = 215, - SDL_SCANCODE_KP_CLEAR = 216, - SDL_SCANCODE_KP_CLEARENTRY = 217, - SDL_SCANCODE_KP_BINARY = 218, - SDL_SCANCODE_KP_OCTAL = 219, - SDL_SCANCODE_KP_DECIMAL = 220, - SDL_SCANCODE_KP_HEXADECIMAL = 221, - - SDL_SCANCODE_LCTRL = 224, - SDL_SCANCODE_LSHIFT = 225, - SDL_SCANCODE_LALT = 226, - SDL_SCANCODE_LGUI = 227, - SDL_SCANCODE_RCTRL = 228, - SDL_SCANCODE_RSHIFT = 229, - SDL_SCANCODE_RALT = 230, - SDL_SCANCODE_RGUI = 231, - - SDL_SCANCODE_MODE = 257, - - /* These come from the USB consumer page (0x0C) */ - SDL_SCANCODE_AUDIONEXT = 258, - SDL_SCANCODE_AUDIOPREV = 259, - SDL_SCANCODE_AUDIOSTOP = 260, - SDL_SCANCODE_AUDIOPLAY = 261, - SDL_SCANCODE_AUDIOMUTE = 262, - SDL_SCANCODE_MEDIASELECT = 263, - SDL_SCANCODE_WWW = 264, - SDL_SCANCODE_MAIL = 265, - SDL_SCANCODE_CALCULATOR = 266, - SDL_SCANCODE_COMPUTER = 267, - SDL_SCANCODE_AC_SEARCH = 268, - SDL_SCANCODE_AC_HOME = 269, - SDL_SCANCODE_AC_BACK = 270, - SDL_SCANCODE_AC_FORWARD = 271, - SDL_SCANCODE_AC_STOP = 272, - SDL_SCANCODE_AC_REFRESH = 273, - SDL_SCANCODE_AC_BOOKMARKS = 274, - - /* These come from other sources, and are mostly mac related */ - SDL_SCANCODE_BRIGHTNESSDOWN = 275, - SDL_SCANCODE_BRIGHTNESSUP = 276, - SDL_SCANCODE_DISPLAYSWITCH = 277, - SDL_SCANCODE_KBDILLUMTOGGLE = 278, - SDL_SCANCODE_KBDILLUMDOWN = 279, - SDL_SCANCODE_KBDILLUMUP = 280, - SDL_SCANCODE_EJECT = 281, - SDL_SCANCODE_SLEEP = 282, - - SDL_SCANCODE_APP1 = 283, - SDL_SCANCODE_APP2 = 284, - - /* These come from the USB consumer page (0x0C) */ - SDL_SCANCODE_AUDIOREWIND = 285, - SDL_SCANCODE_AUDIOFASTFORWARD = 286, - - /* This is not a key, simply marks the number of scancodes - * so that you know how big to make your arrays. */ - SDL_NUM_SCANCODES = 512 - } - - #endregion - - #region SDL_keycode.h - - public const int SDLK_SCANCODE_MASK = (1 << 30); - public static SDL_Keycode SDL_SCANCODE_TO_KEYCODE(SDL_Scancode X) - { - return (SDL_Keycode)((int)X | SDLK_SCANCODE_MASK); - } - - public enum SDL_Keycode - { - SDLK_UNKNOWN = 0, - - SDLK_RETURN = '\r', - SDLK_ESCAPE = 27, // '\033' - SDLK_BACKSPACE = '\b', - SDLK_TAB = '\t', - SDLK_SPACE = ' ', - SDLK_EXCLAIM = '!', - SDLK_QUOTEDBL = '"', - SDLK_HASH = '#', - SDLK_PERCENT = '%', - SDLK_DOLLAR = '$', - SDLK_AMPERSAND = '&', - SDLK_QUOTE = '\'', - SDLK_LEFTPAREN = '(', - SDLK_RIGHTPAREN = ')', - SDLK_ASTERISK = '*', - SDLK_PLUS = '+', - SDLK_COMMA = ',', - SDLK_MINUS = '-', - SDLK_PERIOD = '.', - SDLK_SLASH = '/', - SDLK_0 = '0', - SDLK_1 = '1', - SDLK_2 = '2', - SDLK_3 = '3', - SDLK_4 = '4', - SDLK_5 = '5', - SDLK_6 = '6', - SDLK_7 = '7', - SDLK_8 = '8', - SDLK_9 = '9', - SDLK_COLON = ':', - SDLK_SEMICOLON = ';', - SDLK_LESS = '<', - SDLK_EQUALS = '=', - SDLK_GREATER = '>', - SDLK_QUESTION = '?', - SDLK_AT = '@', - /* - Skip uppercase letters - */ - SDLK_LEFTBRACKET = '[', - SDLK_BACKSLASH = '\\', - SDLK_RIGHTBRACKET = ']', - SDLK_CARET = '^', - SDLK_UNDERSCORE = '_', - SDLK_BACKQUOTE = '`', - SDLK_a = 'a', - SDLK_b = 'b', - SDLK_c = 'c', - SDLK_d = 'd', - SDLK_e = 'e', - SDLK_f = 'f', - SDLK_g = 'g', - SDLK_h = 'h', - SDLK_i = 'i', - SDLK_j = 'j', - SDLK_k = 'k', - SDLK_l = 'l', - SDLK_m = 'm', - SDLK_n = 'n', - SDLK_o = 'o', - SDLK_p = 'p', - SDLK_q = 'q', - SDLK_r = 'r', - SDLK_s = 's', - SDLK_t = 't', - SDLK_u = 'u', - SDLK_v = 'v', - SDLK_w = 'w', - SDLK_x = 'x', - SDLK_y = 'y', - SDLK_z = 'z', - - SDLK_CAPSLOCK = (int)SDL_Scancode.SDL_SCANCODE_CAPSLOCK | SDLK_SCANCODE_MASK, - - SDLK_F1 = (int)SDL_Scancode.SDL_SCANCODE_F1 | SDLK_SCANCODE_MASK, - SDLK_F2 = (int)SDL_Scancode.SDL_SCANCODE_F2 | SDLK_SCANCODE_MASK, - SDLK_F3 = (int)SDL_Scancode.SDL_SCANCODE_F3 | SDLK_SCANCODE_MASK, - SDLK_F4 = (int)SDL_Scancode.SDL_SCANCODE_F4 | SDLK_SCANCODE_MASK, - SDLK_F5 = (int)SDL_Scancode.SDL_SCANCODE_F5 | SDLK_SCANCODE_MASK, - SDLK_F6 = (int)SDL_Scancode.SDL_SCANCODE_F6 | SDLK_SCANCODE_MASK, - SDLK_F7 = (int)SDL_Scancode.SDL_SCANCODE_F7 | SDLK_SCANCODE_MASK, - SDLK_F8 = (int)SDL_Scancode.SDL_SCANCODE_F8 | SDLK_SCANCODE_MASK, - SDLK_F9 = (int)SDL_Scancode.SDL_SCANCODE_F9 | SDLK_SCANCODE_MASK, - SDLK_F10 = (int)SDL_Scancode.SDL_SCANCODE_F10 | SDLK_SCANCODE_MASK, - SDLK_F11 = (int)SDL_Scancode.SDL_SCANCODE_F11 | SDLK_SCANCODE_MASK, - SDLK_F12 = (int)SDL_Scancode.SDL_SCANCODE_F12 | SDLK_SCANCODE_MASK, - - SDLK_PRINTSCREEN = (int)SDL_Scancode.SDL_SCANCODE_PRINTSCREEN | SDLK_SCANCODE_MASK, - SDLK_SCROLLLOCK = (int)SDL_Scancode.SDL_SCANCODE_SCROLLLOCK | SDLK_SCANCODE_MASK, - SDLK_PAUSE = (int)SDL_Scancode.SDL_SCANCODE_PAUSE | SDLK_SCANCODE_MASK, - SDLK_INSERT = (int)SDL_Scancode.SDL_SCANCODE_INSERT | SDLK_SCANCODE_MASK, - SDLK_HOME = (int)SDL_Scancode.SDL_SCANCODE_HOME | SDLK_SCANCODE_MASK, - SDLK_PAGEUP = (int)SDL_Scancode.SDL_SCANCODE_PAGEUP | SDLK_SCANCODE_MASK, - SDLK_DELETE = 127, - SDLK_END = (int)SDL_Scancode.SDL_SCANCODE_END | SDLK_SCANCODE_MASK, - SDLK_PAGEDOWN = (int)SDL_Scancode.SDL_SCANCODE_PAGEDOWN | SDLK_SCANCODE_MASK, - SDLK_RIGHT = (int)SDL_Scancode.SDL_SCANCODE_RIGHT | SDLK_SCANCODE_MASK, - SDLK_LEFT = (int)SDL_Scancode.SDL_SCANCODE_LEFT | SDLK_SCANCODE_MASK, - SDLK_DOWN = (int)SDL_Scancode.SDL_SCANCODE_DOWN | SDLK_SCANCODE_MASK, - SDLK_UP = (int)SDL_Scancode.SDL_SCANCODE_UP | SDLK_SCANCODE_MASK, - - SDLK_NUMLOCKCLEAR = (int)SDL_Scancode.SDL_SCANCODE_NUMLOCKCLEAR | SDLK_SCANCODE_MASK, - SDLK_KP_DIVIDE = (int)SDL_Scancode.SDL_SCANCODE_KP_DIVIDE | SDLK_SCANCODE_MASK, - SDLK_KP_MULTIPLY = (int)SDL_Scancode.SDL_SCANCODE_KP_MULTIPLY | SDLK_SCANCODE_MASK, - SDLK_KP_MINUS = (int)SDL_Scancode.SDL_SCANCODE_KP_MINUS | SDLK_SCANCODE_MASK, - SDLK_KP_PLUS = (int)SDL_Scancode.SDL_SCANCODE_KP_PLUS | SDLK_SCANCODE_MASK, - SDLK_KP_ENTER = (int)SDL_Scancode.SDL_SCANCODE_KP_ENTER | SDLK_SCANCODE_MASK, - SDLK_KP_1 = (int)SDL_Scancode.SDL_SCANCODE_KP_1 | SDLK_SCANCODE_MASK, - SDLK_KP_2 = (int)SDL_Scancode.SDL_SCANCODE_KP_2 | SDLK_SCANCODE_MASK, - SDLK_KP_3 = (int)SDL_Scancode.SDL_SCANCODE_KP_3 | SDLK_SCANCODE_MASK, - SDLK_KP_4 = (int)SDL_Scancode.SDL_SCANCODE_KP_4 | SDLK_SCANCODE_MASK, - SDLK_KP_5 = (int)SDL_Scancode.SDL_SCANCODE_KP_5 | SDLK_SCANCODE_MASK, - SDLK_KP_6 = (int)SDL_Scancode.SDL_SCANCODE_KP_6 | SDLK_SCANCODE_MASK, - SDLK_KP_7 = (int)SDL_Scancode.SDL_SCANCODE_KP_7 | SDLK_SCANCODE_MASK, - SDLK_KP_8 = (int)SDL_Scancode.SDL_SCANCODE_KP_8 | SDLK_SCANCODE_MASK, - SDLK_KP_9 = (int)SDL_Scancode.SDL_SCANCODE_KP_9 | SDLK_SCANCODE_MASK, - SDLK_KP_0 = (int)SDL_Scancode.SDL_SCANCODE_KP_0 | SDLK_SCANCODE_MASK, - SDLK_KP_PERIOD = (int)SDL_Scancode.SDL_SCANCODE_KP_PERIOD | SDLK_SCANCODE_MASK, - - SDLK_APPLICATION = (int)SDL_Scancode.SDL_SCANCODE_APPLICATION | SDLK_SCANCODE_MASK, - SDLK_POWER = (int)SDL_Scancode.SDL_SCANCODE_POWER | SDLK_SCANCODE_MASK, - SDLK_KP_EQUALS = (int)SDL_Scancode.SDL_SCANCODE_KP_EQUALS | SDLK_SCANCODE_MASK, - SDLK_F13 = (int)SDL_Scancode.SDL_SCANCODE_F13 | SDLK_SCANCODE_MASK, - SDLK_F14 = (int)SDL_Scancode.SDL_SCANCODE_F14 | SDLK_SCANCODE_MASK, - SDLK_F15 = (int)SDL_Scancode.SDL_SCANCODE_F15 | SDLK_SCANCODE_MASK, - SDLK_F16 = (int)SDL_Scancode.SDL_SCANCODE_F16 | SDLK_SCANCODE_MASK, - SDLK_F17 = (int)SDL_Scancode.SDL_SCANCODE_F17 | SDLK_SCANCODE_MASK, - SDLK_F18 = (int)SDL_Scancode.SDL_SCANCODE_F18 | SDLK_SCANCODE_MASK, - SDLK_F19 = (int)SDL_Scancode.SDL_SCANCODE_F19 | SDLK_SCANCODE_MASK, - SDLK_F20 = (int)SDL_Scancode.SDL_SCANCODE_F20 | SDLK_SCANCODE_MASK, - SDLK_F21 = (int)SDL_Scancode.SDL_SCANCODE_F21 | SDLK_SCANCODE_MASK, - SDLK_F22 = (int)SDL_Scancode.SDL_SCANCODE_F22 | SDLK_SCANCODE_MASK, - SDLK_F23 = (int)SDL_Scancode.SDL_SCANCODE_F23 | SDLK_SCANCODE_MASK, - SDLK_F24 = (int)SDL_Scancode.SDL_SCANCODE_F24 | SDLK_SCANCODE_MASK, - SDLK_EXECUTE = (int)SDL_Scancode.SDL_SCANCODE_EXECUTE | SDLK_SCANCODE_MASK, - SDLK_HELP = (int)SDL_Scancode.SDL_SCANCODE_HELP | SDLK_SCANCODE_MASK, - SDLK_MENU = (int)SDL_Scancode.SDL_SCANCODE_MENU | SDLK_SCANCODE_MASK, - SDLK_SELECT = (int)SDL_Scancode.SDL_SCANCODE_SELECT | SDLK_SCANCODE_MASK, - SDLK_STOP = (int)SDL_Scancode.SDL_SCANCODE_STOP | SDLK_SCANCODE_MASK, - SDLK_AGAIN = (int)SDL_Scancode.SDL_SCANCODE_AGAIN | SDLK_SCANCODE_MASK, - SDLK_UNDO = (int)SDL_Scancode.SDL_SCANCODE_UNDO | SDLK_SCANCODE_MASK, - SDLK_CUT = (int)SDL_Scancode.SDL_SCANCODE_CUT | SDLK_SCANCODE_MASK, - SDLK_COPY = (int)SDL_Scancode.SDL_SCANCODE_COPY | SDLK_SCANCODE_MASK, - SDLK_PASTE = (int)SDL_Scancode.SDL_SCANCODE_PASTE | SDLK_SCANCODE_MASK, - SDLK_FIND = (int)SDL_Scancode.SDL_SCANCODE_FIND | SDLK_SCANCODE_MASK, - SDLK_MUTE = (int)SDL_Scancode.SDL_SCANCODE_MUTE | SDLK_SCANCODE_MASK, - SDLK_VOLUMEUP = (int)SDL_Scancode.SDL_SCANCODE_VOLUMEUP | SDLK_SCANCODE_MASK, - SDLK_VOLUMEDOWN = (int)SDL_Scancode.SDL_SCANCODE_VOLUMEDOWN | SDLK_SCANCODE_MASK, - SDLK_KP_COMMA = (int)SDL_Scancode.SDL_SCANCODE_KP_COMMA | SDLK_SCANCODE_MASK, - SDLK_KP_EQUALSAS400 = - (int)SDL_Scancode.SDL_SCANCODE_KP_EQUALSAS400 | SDLK_SCANCODE_MASK, - - SDLK_ALTERASE = (int)SDL_Scancode.SDL_SCANCODE_ALTERASE | SDLK_SCANCODE_MASK, - SDLK_SYSREQ = (int)SDL_Scancode.SDL_SCANCODE_SYSREQ | SDLK_SCANCODE_MASK, - SDLK_CANCEL = (int)SDL_Scancode.SDL_SCANCODE_CANCEL | SDLK_SCANCODE_MASK, - SDLK_CLEAR = (int)SDL_Scancode.SDL_SCANCODE_CLEAR | SDLK_SCANCODE_MASK, - SDLK_PRIOR = (int)SDL_Scancode.SDL_SCANCODE_PRIOR | SDLK_SCANCODE_MASK, - SDLK_RETURN2 = (int)SDL_Scancode.SDL_SCANCODE_RETURN2 | SDLK_SCANCODE_MASK, - SDLK_SEPARATOR = (int)SDL_Scancode.SDL_SCANCODE_SEPARATOR | SDLK_SCANCODE_MASK, - SDLK_OUT = (int)SDL_Scancode.SDL_SCANCODE_OUT | SDLK_SCANCODE_MASK, - SDLK_OPER = (int)SDL_Scancode.SDL_SCANCODE_OPER | SDLK_SCANCODE_MASK, - SDLK_CLEARAGAIN = (int)SDL_Scancode.SDL_SCANCODE_CLEARAGAIN | SDLK_SCANCODE_MASK, - SDLK_CRSEL = (int)SDL_Scancode.SDL_SCANCODE_CRSEL | SDLK_SCANCODE_MASK, - SDLK_EXSEL = (int)SDL_Scancode.SDL_SCANCODE_EXSEL | SDLK_SCANCODE_MASK, - - SDLK_KP_00 = (int)SDL_Scancode.SDL_SCANCODE_KP_00 | SDLK_SCANCODE_MASK, - SDLK_KP_000 = (int)SDL_Scancode.SDL_SCANCODE_KP_000 | SDLK_SCANCODE_MASK, - SDLK_THOUSANDSSEPARATOR = - (int)SDL_Scancode.SDL_SCANCODE_THOUSANDSSEPARATOR | SDLK_SCANCODE_MASK, - SDLK_DECIMALSEPARATOR = - (int)SDL_Scancode.SDL_SCANCODE_DECIMALSEPARATOR | SDLK_SCANCODE_MASK, - SDLK_CURRENCYUNIT = (int)SDL_Scancode.SDL_SCANCODE_CURRENCYUNIT | SDLK_SCANCODE_MASK, - SDLK_CURRENCYSUBUNIT = - (int)SDL_Scancode.SDL_SCANCODE_CURRENCYSUBUNIT | SDLK_SCANCODE_MASK, - SDLK_KP_LEFTPAREN = (int)SDL_Scancode.SDL_SCANCODE_KP_LEFTPAREN | SDLK_SCANCODE_MASK, - SDLK_KP_RIGHTPAREN = (int)SDL_Scancode.SDL_SCANCODE_KP_RIGHTPAREN | SDLK_SCANCODE_MASK, - SDLK_KP_LEFTBRACE = (int)SDL_Scancode.SDL_SCANCODE_KP_LEFTBRACE | SDLK_SCANCODE_MASK, - SDLK_KP_RIGHTBRACE = (int)SDL_Scancode.SDL_SCANCODE_KP_RIGHTBRACE | SDLK_SCANCODE_MASK, - SDLK_KP_TAB = (int)SDL_Scancode.SDL_SCANCODE_KP_TAB | SDLK_SCANCODE_MASK, - SDLK_KP_BACKSPACE = (int)SDL_Scancode.SDL_SCANCODE_KP_BACKSPACE | SDLK_SCANCODE_MASK, - SDLK_KP_A = (int)SDL_Scancode.SDL_SCANCODE_KP_A | SDLK_SCANCODE_MASK, - SDLK_KP_B = (int)SDL_Scancode.SDL_SCANCODE_KP_B | SDLK_SCANCODE_MASK, - SDLK_KP_C = (int)SDL_Scancode.SDL_SCANCODE_KP_C | SDLK_SCANCODE_MASK, - SDLK_KP_D = (int)SDL_Scancode.SDL_SCANCODE_KP_D | SDLK_SCANCODE_MASK, - SDLK_KP_E = (int)SDL_Scancode.SDL_SCANCODE_KP_E | SDLK_SCANCODE_MASK, - SDLK_KP_F = (int)SDL_Scancode.SDL_SCANCODE_KP_F | SDLK_SCANCODE_MASK, - SDLK_KP_XOR = (int)SDL_Scancode.SDL_SCANCODE_KP_XOR | SDLK_SCANCODE_MASK, - SDLK_KP_POWER = (int)SDL_Scancode.SDL_SCANCODE_KP_POWER | SDLK_SCANCODE_MASK, - SDLK_KP_PERCENT = (int)SDL_Scancode.SDL_SCANCODE_KP_PERCENT | SDLK_SCANCODE_MASK, - SDLK_KP_LESS = (int)SDL_Scancode.SDL_SCANCODE_KP_LESS | SDLK_SCANCODE_MASK, - SDLK_KP_GREATER = (int)SDL_Scancode.SDL_SCANCODE_KP_GREATER | SDLK_SCANCODE_MASK, - SDLK_KP_AMPERSAND = (int)SDL_Scancode.SDL_SCANCODE_KP_AMPERSAND | SDLK_SCANCODE_MASK, - SDLK_KP_DBLAMPERSAND = - (int)SDL_Scancode.SDL_SCANCODE_KP_DBLAMPERSAND | SDLK_SCANCODE_MASK, - SDLK_KP_VERTICALBAR = - (int)SDL_Scancode.SDL_SCANCODE_KP_VERTICALBAR | SDLK_SCANCODE_MASK, - SDLK_KP_DBLVERTICALBAR = - (int)SDL_Scancode.SDL_SCANCODE_KP_DBLVERTICALBAR | SDLK_SCANCODE_MASK, - SDLK_KP_COLON = (int)SDL_Scancode.SDL_SCANCODE_KP_COLON | SDLK_SCANCODE_MASK, - SDLK_KP_HASH = (int)SDL_Scancode.SDL_SCANCODE_KP_HASH | SDLK_SCANCODE_MASK, - SDLK_KP_SPACE = (int)SDL_Scancode.SDL_SCANCODE_KP_SPACE | SDLK_SCANCODE_MASK, - SDLK_KP_AT = (int)SDL_Scancode.SDL_SCANCODE_KP_AT | SDLK_SCANCODE_MASK, - SDLK_KP_EXCLAM = (int)SDL_Scancode.SDL_SCANCODE_KP_EXCLAM | SDLK_SCANCODE_MASK, - SDLK_KP_MEMSTORE = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMSTORE | SDLK_SCANCODE_MASK, - SDLK_KP_MEMRECALL = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMRECALL | SDLK_SCANCODE_MASK, - SDLK_KP_MEMCLEAR = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMCLEAR | SDLK_SCANCODE_MASK, - SDLK_KP_MEMADD = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMADD | SDLK_SCANCODE_MASK, - SDLK_KP_MEMSUBTRACT = - (int)SDL_Scancode.SDL_SCANCODE_KP_MEMSUBTRACT | SDLK_SCANCODE_MASK, - SDLK_KP_MEMMULTIPLY = - (int)SDL_Scancode.SDL_SCANCODE_KP_MEMMULTIPLY | SDLK_SCANCODE_MASK, - SDLK_KP_MEMDIVIDE = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMDIVIDE | SDLK_SCANCODE_MASK, - SDLK_KP_PLUSMINUS = (int)SDL_Scancode.SDL_SCANCODE_KP_PLUSMINUS | SDLK_SCANCODE_MASK, - SDLK_KP_CLEAR = (int)SDL_Scancode.SDL_SCANCODE_KP_CLEAR | SDLK_SCANCODE_MASK, - SDLK_KP_CLEARENTRY = (int)SDL_Scancode.SDL_SCANCODE_KP_CLEARENTRY | SDLK_SCANCODE_MASK, - SDLK_KP_BINARY = (int)SDL_Scancode.SDL_SCANCODE_KP_BINARY | SDLK_SCANCODE_MASK, - SDLK_KP_OCTAL = (int)SDL_Scancode.SDL_SCANCODE_KP_OCTAL | SDLK_SCANCODE_MASK, - SDLK_KP_DECIMAL = (int)SDL_Scancode.SDL_SCANCODE_KP_DECIMAL | SDLK_SCANCODE_MASK, - SDLK_KP_HEXADECIMAL = - (int)SDL_Scancode.SDL_SCANCODE_KP_HEXADECIMAL | SDLK_SCANCODE_MASK, - - SDLK_LCTRL = (int)SDL_Scancode.SDL_SCANCODE_LCTRL | SDLK_SCANCODE_MASK, - SDLK_LSHIFT = (int)SDL_Scancode.SDL_SCANCODE_LSHIFT | SDLK_SCANCODE_MASK, - SDLK_LALT = (int)SDL_Scancode.SDL_SCANCODE_LALT | SDLK_SCANCODE_MASK, - SDLK_LGUI = (int)SDL_Scancode.SDL_SCANCODE_LGUI | SDLK_SCANCODE_MASK, - SDLK_RCTRL = (int)SDL_Scancode.SDL_SCANCODE_RCTRL | SDLK_SCANCODE_MASK, - SDLK_RSHIFT = (int)SDL_Scancode.SDL_SCANCODE_RSHIFT | SDLK_SCANCODE_MASK, - SDLK_RALT = (int)SDL_Scancode.SDL_SCANCODE_RALT | SDLK_SCANCODE_MASK, - SDLK_RGUI = (int)SDL_Scancode.SDL_SCANCODE_RGUI | SDLK_SCANCODE_MASK, - - SDLK_MODE = (int)SDL_Scancode.SDL_SCANCODE_MODE | SDLK_SCANCODE_MASK, - - SDLK_AUDIONEXT = (int)SDL_Scancode.SDL_SCANCODE_AUDIONEXT | SDLK_SCANCODE_MASK, - SDLK_AUDIOPREV = (int)SDL_Scancode.SDL_SCANCODE_AUDIOPREV | SDLK_SCANCODE_MASK, - SDLK_AUDIOSTOP = (int)SDL_Scancode.SDL_SCANCODE_AUDIOSTOP | SDLK_SCANCODE_MASK, - SDLK_AUDIOPLAY = (int)SDL_Scancode.SDL_SCANCODE_AUDIOPLAY | SDLK_SCANCODE_MASK, - SDLK_AUDIOMUTE = (int)SDL_Scancode.SDL_SCANCODE_AUDIOMUTE | SDLK_SCANCODE_MASK, - SDLK_MEDIASELECT = (int)SDL_Scancode.SDL_SCANCODE_MEDIASELECT | SDLK_SCANCODE_MASK, - SDLK_WWW = (int)SDL_Scancode.SDL_SCANCODE_WWW | SDLK_SCANCODE_MASK, - SDLK_MAIL = (int)SDL_Scancode.SDL_SCANCODE_MAIL | SDLK_SCANCODE_MASK, - SDLK_CALCULATOR = (int)SDL_Scancode.SDL_SCANCODE_CALCULATOR | SDLK_SCANCODE_MASK, - SDLK_COMPUTER = (int)SDL_Scancode.SDL_SCANCODE_COMPUTER | SDLK_SCANCODE_MASK, - SDLK_AC_SEARCH = (int)SDL_Scancode.SDL_SCANCODE_AC_SEARCH | SDLK_SCANCODE_MASK, - SDLK_AC_HOME = (int)SDL_Scancode.SDL_SCANCODE_AC_HOME | SDLK_SCANCODE_MASK, - SDLK_AC_BACK = (int)SDL_Scancode.SDL_SCANCODE_AC_BACK | SDLK_SCANCODE_MASK, - SDLK_AC_FORWARD = (int)SDL_Scancode.SDL_SCANCODE_AC_FORWARD | SDLK_SCANCODE_MASK, - SDLK_AC_STOP = (int)SDL_Scancode.SDL_SCANCODE_AC_STOP | SDLK_SCANCODE_MASK, - SDLK_AC_REFRESH = (int)SDL_Scancode.SDL_SCANCODE_AC_REFRESH | SDLK_SCANCODE_MASK, - SDLK_AC_BOOKMARKS = (int)SDL_Scancode.SDL_SCANCODE_AC_BOOKMARKS | SDLK_SCANCODE_MASK, - - SDLK_BRIGHTNESSDOWN = - (int)SDL_Scancode.SDL_SCANCODE_BRIGHTNESSDOWN | SDLK_SCANCODE_MASK, - SDLK_BRIGHTNESSUP = (int)SDL_Scancode.SDL_SCANCODE_BRIGHTNESSUP | SDLK_SCANCODE_MASK, - SDLK_DISPLAYSWITCH = (int)SDL_Scancode.SDL_SCANCODE_DISPLAYSWITCH | SDLK_SCANCODE_MASK, - SDLK_KBDILLUMTOGGLE = - (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMTOGGLE | SDLK_SCANCODE_MASK, - SDLK_KBDILLUMDOWN = (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMDOWN | SDLK_SCANCODE_MASK, - SDLK_KBDILLUMUP = (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMUP | SDLK_SCANCODE_MASK, - SDLK_EJECT = (int)SDL_Scancode.SDL_SCANCODE_EJECT | SDLK_SCANCODE_MASK, - SDLK_SLEEP = (int)SDL_Scancode.SDL_SCANCODE_SLEEP | SDLK_SCANCODE_MASK, - SDLK_APP1 = (int)SDL_Scancode.SDL_SCANCODE_APP1 | SDLK_SCANCODE_MASK, - SDLK_APP2 = (int)SDL_Scancode.SDL_SCANCODE_APP2 | SDLK_SCANCODE_MASK, - - SDLK_AUDIOREWIND = (int)SDL_Scancode.SDL_SCANCODE_AUDIOREWIND | SDLK_SCANCODE_MASK, - SDLK_AUDIOFASTFORWARD = (int)SDL_Scancode.SDL_SCANCODE_AUDIOFASTFORWARD | SDLK_SCANCODE_MASK - } - - /* Key modifiers (bitfield) */ - [Flags] - public enum SDL_Keymod : ushort - { - KMOD_NONE = 0x0000, - KMOD_LSHIFT = 0x0001, - KMOD_RSHIFT = 0x0002, - KMOD_LCTRL = 0x0040, - KMOD_RCTRL = 0x0080, - KMOD_LALT = 0x0100, - KMOD_RALT = 0x0200, - KMOD_LGUI = 0x0400, - KMOD_RGUI = 0x0800, - KMOD_NUM = 0x1000, - KMOD_CAPS = 0x2000, - KMOD_MODE = 0x4000, - KMOD_SCROLL = 0x8000, - - /* These are defines in the SDL headers */ - KMOD_CTRL = (KMOD_LCTRL | KMOD_RCTRL), - KMOD_SHIFT = (KMOD_LSHIFT | KMOD_RSHIFT), - KMOD_ALT = (KMOD_LALT | KMOD_RALT), - KMOD_GUI = (KMOD_LGUI | KMOD_RGUI), - - KMOD_RESERVED = KMOD_SCROLL - } - - #endregion - - #region SDL_keyboard.h - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Keysym - { - public SDL_Scancode scancode; - public SDL_Keycode sym; - public SDL_Keymod mod; /* UInt16 */ - public UInt32 unicode; /* Deprecated */ - } - - /* Get the window which has kbd focus */ - /* Return type is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetKeyboardFocus(); - - /* Get a snapshot of the keyboard state. */ - /* Return value is a pointer to a UInt8 array */ - /* Numkeys returns the size of the array if non-null */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetKeyboardState(out int numkeys); - - /* Get the current key modifier state for the keyboard. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Keymod SDL_GetModState(); - - /* Set the current key modifier state */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetModState(SDL_Keymod modstate); - - /* Get the key code corresponding to the given scancode - * with the current keyboard layout. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode scancode); - - /* Get the scancode for the given keycode */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Scancode SDL_GetScancodeFromKey(SDL_Keycode key); - - /* Wrapper for SDL_GetScancodeName */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetScancodeName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetScancodeName(SDL_Scancode scancode); - public static string SDL_GetScancodeName(SDL_Scancode scancode) - { - return UTF8_ToManaged( - INTERNAL_SDL_GetScancodeName(scancode) - ); - } - - /* Get a scancode from a human-readable name */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetScancodeFromName", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_Scancode INTERNAL_SDL_GetScancodeFromName( - byte* name - ); - public static unsafe SDL_Scancode SDL_GetScancodeFromName(string name) - { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - return INTERNAL_SDL_GetScancodeFromName( - Utf8Encode(name, utf8Name, utf8NameBufSize) - ); - } - - /* Wrapper for SDL_GetKeyName */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetKeyName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetKeyName(SDL_Keycode key); - public static string SDL_GetKeyName(SDL_Keycode key) - { - return UTF8_ToManaged(INTERNAL_SDL_GetKeyName(key)); - } - - /* Get a key code from a human-readable name */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetKeyFromName", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_Keycode INTERNAL_SDL_GetKeyFromName( - byte* name - ); - public static unsafe SDL_Keycode SDL_GetKeyFromName(string name) - { - int utf8NameBufSize = Utf8Size(name); - byte* utf8Name = stackalloc byte[utf8NameBufSize]; - return INTERNAL_SDL_GetKeyFromName( - Utf8Encode(name, utf8Name, utf8NameBufSize) - ); - } - - /* Start accepting Unicode text input events, show keyboard */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_StartTextInput(); - - /* Check if unicode input events are enabled */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsTextInputActive(); - - /* Stop receiving any text input events, hide onscreen kbd */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_StopTextInput(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ClearComposition(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsTextInputShown(); - - /* Set the rectangle used for text input, hint for IME */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetTextInputRect(ref SDL_Rect rect); - - /* Does the platform support an on-screen keyboard? */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasScreenKeyboardSupport(); - - /* Is the on-screen keyboard shown for a given window? */ - /* window is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsScreenKeyboardShown(IntPtr window); - - #endregion - - #region SDL_mouse.c - - /* Note: SDL_Cursor is a typedef normally. We'll treat it as - * an IntPtr, because C# doesn't do typedefs. Yay! - */ - - /* System cursor types */ - public enum SDL_SystemCursor - { - SDL_SYSTEM_CURSOR_ARROW, // Arrow - SDL_SYSTEM_CURSOR_IBEAM, // I-beam - SDL_SYSTEM_CURSOR_WAIT, // Wait - SDL_SYSTEM_CURSOR_CROSSHAIR, // Crosshair - SDL_SYSTEM_CURSOR_WAITARROW, // Small wait cursor (or Wait if not available) - SDL_SYSTEM_CURSOR_SIZENWSE, // Double arrow pointing northwest and southeast - SDL_SYSTEM_CURSOR_SIZENESW, // Double arrow pointing northeast and southwest - SDL_SYSTEM_CURSOR_SIZEWE, // Double arrow pointing west and east - SDL_SYSTEM_CURSOR_SIZENS, // Double arrow pointing north and south - SDL_SYSTEM_CURSOR_SIZEALL, // Four pointed arrow pointing north, south, east, and west - SDL_SYSTEM_CURSOR_NO, // Slashed circle or crossbones - SDL_SYSTEM_CURSOR_HAND, // Hand - SDL_NUM_SYSTEM_CURSORS - } - - /* Get the window which currently has mouse focus */ - /* Return value is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetMouseFocus(); - - /* Get the current state of the mouse */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(out int x, out int y); - - /* Get the current state of the mouse */ - /* This overload allows for passing NULL to x */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(IntPtr x, out int y); - - /* Get the current state of the mouse */ - /* This overload allows for passing NULL to y */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(out int x, IntPtr y); - - /* Get the current state of the mouse */ - /* This overload allows for passing NULL to both x and y */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(IntPtr x, IntPtr y); - - /* Get the current state of the mouse, in relation to the desktop. - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(out int x, out int y); - - /* Get the current state of the mouse, in relation to the desktop. - * Only available in 2.0.4 or higher. - * This overload allows for passing NULL to x. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(IntPtr x, out int y); - - /* Get the current state of the mouse, in relation to the desktop. - * Only available in 2.0.4 or higher. - * This overload allows for passing NULL to y. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(out int x, IntPtr y); - - /* Get the current state of the mouse, in relation to the desktop. - * Only available in 2.0.4 or higher. - * This overload allows for passing NULL to both x and y - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(IntPtr x, IntPtr y); - - /* Get the mouse state with relative coords*/ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetRelativeMouseState(out int x, out int y); - - /* Set the mouse cursor's position (within a window) */ - /* window is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_WarpMouseInWindow(IntPtr window, int x, int y); - - /* Set the mouse cursor's position in global screen space. - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_WarpMouseGlobal(int x, int y); - - /* Enable/Disable relative mouse mode (grabs mouse, rel coords) */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRelativeMouseMode(SDL_bool enabled); - - /* Capture the mouse, to track input outside an SDL window. - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_CaptureMouse(SDL_bool enabled); - - /* Query if the relative mouse mode is enabled */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetRelativeMouseMode(); - - /* Create a cursor from bitmap data (amd mask) in MSB format. - * data and mask are byte arrays, and w must be a multiple of 8. - * return value is an SDL_Cursor pointer. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateCursor( - IntPtr data, - IntPtr mask, - int w, - int h, - int hot_x, - int hot_y - ); - - /* Create a cursor from an SDL_Surface. - * IntPtr refers to an SDL_Cursor*, surface to an SDL_Surface* - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateColorCursor( - IntPtr surface, - int hot_x, - int hot_y - ); - - /* Create a cursor from a system cursor id. - * return value is an SDL_Cursor pointer - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateSystemCursor(SDL_SystemCursor id); - - /* Set the active cursor. - * cursor is an SDL_Cursor pointer - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetCursor(IntPtr cursor); - - /* Return the active cursor - * return value is an SDL_Cursor pointer - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetCursor(); - - /* Frees a cursor created with one of the CreateCursor functions. - * cursor in an SDL_Cursor pointer - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeCursor(IntPtr cursor); - - /* Toggle whether or not the cursor is shown */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_ShowCursor(int toggle); - - public static uint SDL_BUTTON(uint X) - { - // If only there were a better way of doing this in C# - return (uint) (1 << ((int) X - 1)); - } - - public const uint SDL_BUTTON_LEFT = 1; - public const uint SDL_BUTTON_MIDDLE = 2; - public const uint SDL_BUTTON_RIGHT = 3; - public const uint SDL_BUTTON_X1 = 4; - public const uint SDL_BUTTON_X2 = 5; - public static readonly UInt32 SDL_BUTTON_LMASK = SDL_BUTTON(SDL_BUTTON_LEFT); - public static readonly UInt32 SDL_BUTTON_MMASK = SDL_BUTTON(SDL_BUTTON_MIDDLE); - public static readonly UInt32 SDL_BUTTON_RMASK = SDL_BUTTON(SDL_BUTTON_RIGHT); - public static readonly UInt32 SDL_BUTTON_X1MASK = SDL_BUTTON(SDL_BUTTON_X1); - public static readonly UInt32 SDL_BUTTON_X2MASK = SDL_BUTTON(SDL_BUTTON_X2); - - #endregion - - #region SDL_touch.h - - public const uint SDL_TOUCH_MOUSEID = uint.MaxValue; - - public struct SDL_Finger - { - public long id; // SDL_FingerID - public float x; - public float y; - public float pressure; - } - - /* Only available in 2.0.10 or higher. */ - public enum SDL_TouchDeviceType - { - SDL_TOUCH_DEVICE_INVALID = -1, - SDL_TOUCH_DEVICE_DIRECT, /* touch screen with window-relative coordinates */ - SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE, /* trackpad with absolute device coordinates */ - SDL_TOUCH_DEVICE_INDIRECT_RELATIVE /* trackpad with screen cursor-relative coordinates */ - } - - /** - * \brief Get the number of registered touch devices. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumTouchDevices(); - - /** - * \brief Get the touch ID with the given index, or 0 if the index is invalid. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_GetTouchDevice(int index); - - /** - * \brief Get the number of active fingers for a given touch device. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumTouchFingers(long touchID); - - /** - * \brief Get the finger object of the given touch, with the given index. - * Returns pointer to SDL_Finger. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetTouchFinger(long touchID, int index); - - /* Only available in 2.0.10 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_TouchDeviceType SDL_GetTouchDeviceType(Int64 touchID); - - /* Only available in 2.0.22 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetTouchName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetTouchName(int index); - - /* Only available in 2.0.22 or higher. */ - public static string SDL_GetTouchName(int index) - { - return UTF8_ToManaged(INTERNAL_SDL_GetTouchName(index)); - } - - #endregion - - #region SDL_joystick.h - - public const byte SDL_HAT_CENTERED = 0x00; - public const byte SDL_HAT_UP = 0x01; - public const byte SDL_HAT_RIGHT = 0x02; - public const byte SDL_HAT_DOWN = 0x04; - public const byte SDL_HAT_LEFT = 0x08; - public const byte SDL_HAT_RIGHTUP = SDL_HAT_RIGHT | SDL_HAT_UP; - public const byte SDL_HAT_RIGHTDOWN = SDL_HAT_RIGHT | SDL_HAT_DOWN; - public const byte SDL_HAT_LEFTUP = SDL_HAT_LEFT | SDL_HAT_UP; - public const byte SDL_HAT_LEFTDOWN = SDL_HAT_LEFT | SDL_HAT_DOWN; - - public enum SDL_JoystickPowerLevel - { - SDL_JOYSTICK_POWER_UNKNOWN = -1, - SDL_JOYSTICK_POWER_EMPTY, - SDL_JOYSTICK_POWER_LOW, - SDL_JOYSTICK_POWER_MEDIUM, - SDL_JOYSTICK_POWER_FULL, - SDL_JOYSTICK_POWER_WIRED, - SDL_JOYSTICK_POWER_MAX - } - - public enum SDL_JoystickType - { - SDL_JOYSTICK_TYPE_UNKNOWN, - SDL_JOYSTICK_TYPE_GAMECONTROLLER, - SDL_JOYSTICK_TYPE_WHEEL, - SDL_JOYSTICK_TYPE_ARCADE_STICK, - SDL_JOYSTICK_TYPE_FLIGHT_STICK, - SDL_JOYSTICK_TYPE_DANCE_PAD, - SDL_JOYSTICK_TYPE_GUITAR, - SDL_JOYSTICK_TYPE_DRUM_KIT, - SDL_JOYSTICK_TYPE_ARCADE_PAD - } - - /* Only available in 2.0.14 or higher. */ - public const float SDL_IPHONE_MAX_GFORCE = 5.0f; - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.9 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickRumble( - IntPtr joystick, - UInt16 low_frequency_rumble, - UInt16 high_frequency_rumble, - UInt32 duration_ms - ); - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickRumbleTriggers( - IntPtr joystick, - UInt16 left_rumble, - UInt16 right_rumble, - UInt32 duration_ms - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_JoystickClose(IntPtr joystick); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickEventState(int state); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern short SDL_JoystickGetAxis( - IntPtr joystick, - int axis - ); - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_JoystickGetAxisInitialState( - IntPtr joystick, - int axis, - out ushort state - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickGetBall( - IntPtr joystick, - int ball, - out int dx, - out int dy - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_JoystickGetButton( - IntPtr joystick, - int button - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_JoystickGetHat( - IntPtr joystick, - int hat - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, EntryPoint = "SDL_JoystickName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_JoystickName( - IntPtr joystick - ); - public static string SDL_JoystickName(IntPtr joystick) - { - return UTF8_ToManaged( - INTERNAL_SDL_JoystickName(joystick) - ); - } - - [DllImport(nativeLibName, EntryPoint = "SDL_JoystickNameForIndex", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_JoystickNameForIndex( - int device_index - ); - public static string SDL_JoystickNameForIndex(int device_index) - { - return UTF8_ToManaged( - INTERNAL_SDL_JoystickNameForIndex(device_index) - ); - } - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumAxes(IntPtr joystick); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumBalls(IntPtr joystick); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumButtons(IntPtr joystick); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumHats(IntPtr joystick); - - /* IntPtr refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_JoystickOpen(int device_index); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_JoystickUpdate(); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_NumJoysticks(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Guid SDL_JoystickGetDeviceGUID( - int device_index - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Guid SDL_JoystickGetGUID( - IntPtr joystick - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_JoystickGetGUIDString( - Guid guid, - byte[] pszGUID, - int cbGUID - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_JoystickGetGUIDFromString", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe Guid INTERNAL_SDL_JoystickGetGUIDFromString( - byte* pchGUID - ); - public static unsafe Guid SDL_JoystickGetGUIDFromString(string pchGuid) - { - int utf8PchGuidBufSize = Utf8Size(pchGuid); - byte* utf8PchGuid = stackalloc byte[utf8PchGuidBufSize]; - return INTERNAL_SDL_JoystickGetGUIDFromString( - Utf8Encode(pchGuid, utf8PchGuid, utf8PchGuidBufSize) - ); - } - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_JoystickGetDeviceVendor(int device_index); - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_JoystickGetDeviceProduct(int device_index); - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_JoystickGetDeviceProductVersion(int device_index); - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_JoystickType SDL_JoystickGetDeviceType(int device_index); - - /* int refers to an SDL_JoystickID. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickGetDeviceInstanceID(int device_index); - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_JoystickGetVendor(IntPtr joystick); - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_JoystickGetProduct(IntPtr joystick); - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_JoystickGetProductVersion(IntPtr joystick); - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_JoystickGetSerial", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_JoystickGetSerial( - IntPtr joystick - ); - public static string SDL_JoystickGetSerial( - IntPtr joystick - ) { - return UTF8_ToManaged( - INTERNAL_SDL_JoystickGetSerial(joystick) - ); - } - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_JoystickType SDL_JoystickGetType(IntPtr joystick); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_JoystickGetAttached(IntPtr joystick); - - /* int refers to an SDL_JoystickID, joystick to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickInstanceID(IntPtr joystick); - - /* joystick refers to an SDL_Joystick*. - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_JoystickPowerLevel SDL_JoystickCurrentPowerLevel( - IntPtr joystick - ); - - /* int refers to an SDL_JoystickID, IntPtr to an SDL_Joystick*. - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_JoystickFromInstanceID(int instance_id); - - /* Only available in 2.0.7 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LockJoysticks(); - - /* Only available in 2.0.7 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockJoysticks(); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_JoystickFromPlayerIndex(int player_index); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_JoystickSetPlayerIndex( - IntPtr joystick, - int player_index - ); - - /* Int32 refers to an SDL_JoystickType. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickAttachVirtual( - Int32 type, - int naxes, - int nbuttons, - int nhats - ); - - /* Only available in 2.0.14 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickDetachVirtual(int device_index); - - /* Only available in 2.0.14 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_JoystickIsVirtual(int device_index); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickSetVirtualAxis( - IntPtr joystick, - int axis, - Int16 value - ); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickSetVirtualButton( - IntPtr joystick, - int button, - byte value - ); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickSetVirtualHat( - IntPtr joystick, - int hat, - byte value - ); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_JoystickHasLED(IntPtr joystick); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_JoystickHasRumble(IntPtr joystick); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_JoystickHasRumbleTriggers(IntPtr joystick); - - /* IntPtr refers to an SDL_Joystick*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickSetLED( - IntPtr joystick, - byte red, - byte green, - byte blue - ); - - /* joystick refers to an SDL_Joystick*. - * data refers to a const void*. - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickSendEffect( - IntPtr joystick, - IntPtr data, - int size - ); - - #endregion - - #region SDL_gamecontroller.h - - public enum SDL_GameControllerBindType - { - SDL_CONTROLLER_BINDTYPE_NONE, - SDL_CONTROLLER_BINDTYPE_BUTTON, - SDL_CONTROLLER_BINDTYPE_AXIS, - SDL_CONTROLLER_BINDTYPE_HAT - } - - public enum SDL_GameControllerAxis - { - SDL_CONTROLLER_AXIS_INVALID = -1, - SDL_CONTROLLER_AXIS_LEFTX, - SDL_CONTROLLER_AXIS_LEFTY, - SDL_CONTROLLER_AXIS_RIGHTX, - SDL_CONTROLLER_AXIS_RIGHTY, - SDL_CONTROLLER_AXIS_TRIGGERLEFT, - SDL_CONTROLLER_AXIS_TRIGGERRIGHT, - SDL_CONTROLLER_AXIS_MAX - } - - public enum SDL_GameControllerButton - { - SDL_CONTROLLER_BUTTON_INVALID = -1, - SDL_CONTROLLER_BUTTON_A, - SDL_CONTROLLER_BUTTON_B, - SDL_CONTROLLER_BUTTON_X, - SDL_CONTROLLER_BUTTON_Y, - SDL_CONTROLLER_BUTTON_BACK, - SDL_CONTROLLER_BUTTON_GUIDE, - SDL_CONTROLLER_BUTTON_START, - SDL_CONTROLLER_BUTTON_LEFTSTICK, - SDL_CONTROLLER_BUTTON_RIGHTSTICK, - SDL_CONTROLLER_BUTTON_LEFTSHOULDER, - SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, - SDL_CONTROLLER_BUTTON_DPAD_UP, - SDL_CONTROLLER_BUTTON_DPAD_DOWN, - SDL_CONTROLLER_BUTTON_DPAD_LEFT, - SDL_CONTROLLER_BUTTON_DPAD_RIGHT, - SDL_CONTROLLER_BUTTON_MISC1, - SDL_CONTROLLER_BUTTON_PADDLE1, - SDL_CONTROLLER_BUTTON_PADDLE2, - SDL_CONTROLLER_BUTTON_PADDLE3, - SDL_CONTROLLER_BUTTON_PADDLE4, - SDL_CONTROLLER_BUTTON_TOUCHPAD, - SDL_CONTROLLER_BUTTON_MAX, - } - - public enum SDL_GameControllerType - { - SDL_CONTROLLER_TYPE_UNKNOWN = 0, - SDL_CONTROLLER_TYPE_XBOX360, - SDL_CONTROLLER_TYPE_XBOXONE, - SDL_CONTROLLER_TYPE_PS3, - SDL_CONTROLLER_TYPE_PS4, - SDL_CONTROLLER_TYPE_NINTENDO_SWITCH_PRO, - SDL_CONTROLLER_TYPE_VIRTUAL, /* Requires >= 2.0.14 */ - SDL_CONTROLLER_TYPE_PS5, /* Requires >= 2.0.14 */ - SDL_CONTROLLER_TYPE_AMAZON_LUNA, /* Requires >= 2.0.16 */ - SDL_CONTROLLER_TYPE_GOOGLE_STADIA /* Requires >= 2.0.16 */ - } - - // FIXME: I'd rather this somehow be private... - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_GameControllerButtonBind_hat - { - public int hat; - public int hat_mask; - } - - // FIXME: I'd rather this somehow be private... - [StructLayout(LayoutKind.Explicit)] - public struct INTERNAL_GameControllerButtonBind_union - { - [FieldOffset(0)] - public int button; - [FieldOffset(0)] - public int axis; - [FieldOffset(0)] - public INTERNAL_GameControllerButtonBind_hat hat; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_GameControllerButtonBind - { - public SDL_GameControllerBindType bindType; - public INTERNAL_GameControllerButtonBind_union value; - } - - /* This exists to deal with C# being stupid about blittable types. */ - [StructLayout(LayoutKind.Sequential)] - private struct INTERNAL_SDL_GameControllerButtonBind - { - public int bindType; - /* Largest data type in the union is two ints in size */ - public int unionVal0; - public int unionVal1; - } - - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerAddMapping", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_SDL_GameControllerAddMapping( - byte* mappingString - ); - public static unsafe int SDL_GameControllerAddMapping( - string mappingString - ) { - byte* utf8MappingString = Utf8EncodeHeap(mappingString); - int result = INTERNAL_SDL_GameControllerAddMapping( - utf8MappingString - ); - Marshal.FreeHGlobal((IntPtr) utf8MappingString); - return result; - } - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerNumMappings(); - - /* Only available in 2.0.6 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerMappingForIndex", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerMappingForIndex(int mapping_index); - public static string SDL_GameControllerMappingForIndex(int mapping_index) - { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerMappingForIndex( - mapping_index - ), - true - ); - } - - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerAddMappingsFromRW", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_SDL_GameControllerAddMappingsFromRW( - IntPtr rw, - int freerw - ); - public static int SDL_GameControllerAddMappingsFromFile(string file) - { - IntPtr rwops = SDL_RWFromFile(file, "rb"); - return INTERNAL_SDL_GameControllerAddMappingsFromRW(rwops, 1); - } - - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerMappingForGUID", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerMappingForGUID( - Guid guid - ); - public static string SDL_GameControllerMappingForGUID(Guid guid) - { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerMappingForGUID(guid), - true - ); - } - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerMapping", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerMapping( - IntPtr gamecontroller - ); - public static string SDL_GameControllerMapping( - IntPtr gamecontroller - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerMapping( - gamecontroller - ), - true - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsGameController(int joystick_index); - - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerNameForIndex", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerNameForIndex( - int joystick_index - ); - public static string SDL_GameControllerNameForIndex( - int joystick_index - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerNameForIndex(joystick_index) - ); - } - - /* Only available in 2.0.9 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerMappingForDeviceIndex", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerMappingForDeviceIndex( - int joystick_index - ); - public static string SDL_GameControllerMappingForDeviceIndex( - int joystick_index - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerMappingForDeviceIndex(joystick_index), - true - ); - } - - /* IntPtr refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GameControllerOpen(int joystick_index); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerName( - IntPtr gamecontroller - ); - public static string SDL_GameControllerName( - IntPtr gamecontroller - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerName(gamecontroller) - ); - } - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_GameControllerGetVendor( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_GameControllerGetProduct( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.6 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern ushort SDL_GameControllerGetProductVersion( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetSerial", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerGetSerial( - IntPtr gamecontroller - ); - public static string SDL_GameControllerGetSerial( - IntPtr gamecontroller - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerGetSerial(gamecontroller) - ); - } - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerGetAttached( - IntPtr gamecontroller - ); - - /* IntPtr refers to an SDL_Joystick* - * gamecontroller refers to an SDL_GameController* - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GameControllerGetJoystick( - IntPtr gamecontroller - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerEventState(int state); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GameControllerUpdate(); - - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetAxisFromString", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_GameControllerAxis INTERNAL_SDL_GameControllerGetAxisFromString( - byte* pchString - ); - public static unsafe SDL_GameControllerAxis SDL_GameControllerGetAxisFromString( - string pchString - ) { - int utf8PchStringBufSize = Utf8Size(pchString); - byte* utf8PchString = stackalloc byte[utf8PchStringBufSize]; - return INTERNAL_SDL_GameControllerGetAxisFromString( - Utf8Encode(pchString, utf8PchString, utf8PchStringBufSize) - ); - } - - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetStringForAxis", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerGetStringForAxis( - SDL_GameControllerAxis axis - ); - public static string SDL_GameControllerGetStringForAxis( - SDL_GameControllerAxis axis - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerGetStringForAxis( - axis - ) - ); - } - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetBindForAxis", CallingConvention = CallingConvention.Cdecl)] - private static extern INTERNAL_SDL_GameControllerButtonBind INTERNAL_SDL_GameControllerGetBindForAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ); - public static SDL_GameControllerButtonBind SDL_GameControllerGetBindForAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ) { - // This is guaranteed to never be null - INTERNAL_SDL_GameControllerButtonBind dumb = INTERNAL_SDL_GameControllerGetBindForAxis( - gamecontroller, - axis - ); - SDL_GameControllerButtonBind result = new SDL_GameControllerButtonBind(); - result.bindType = (SDL_GameControllerBindType) dumb.bindType; - result.value.hat.hat = dumb.unionVal0; - result.value.hat.hat_mask = dumb.unionVal1; - return result; - } - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern short SDL_GameControllerGetAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetButtonFromString", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe SDL_GameControllerButton INTERNAL_SDL_GameControllerGetButtonFromString( - byte* pchString - ); - public static unsafe SDL_GameControllerButton SDL_GameControllerGetButtonFromString( - string pchString - ) { - int utf8PchStringBufSize = Utf8Size(pchString); - byte* utf8PchString = stackalloc byte[utf8PchStringBufSize]; - return INTERNAL_SDL_GameControllerGetButtonFromString( - Utf8Encode(pchString, utf8PchString, utf8PchStringBufSize) - ); - } - - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetStringForButton", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerGetStringForButton( - SDL_GameControllerButton button - ); - public static string SDL_GameControllerGetStringForButton( - SDL_GameControllerButton button - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerGetStringForButton(button) - ); - } - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetBindForButton", CallingConvention = CallingConvention.Cdecl)] - private static extern INTERNAL_SDL_GameControllerButtonBind INTERNAL_SDL_GameControllerGetBindForButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ); - public static SDL_GameControllerButtonBind SDL_GameControllerGetBindForButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ) { - // This is guaranteed to never be null - INTERNAL_SDL_GameControllerButtonBind dumb = INTERNAL_SDL_GameControllerGetBindForButton( - gamecontroller, - button - ); - SDL_GameControllerButtonBind result = new SDL_GameControllerButtonBind(); - result.bindType = (SDL_GameControllerBindType) dumb.bindType; - result.value.hat.hat = dumb.unionVal0; - result.value.hat.hat_mask = dumb.unionVal1; - return result; - } - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_GameControllerGetButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.9 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerRumble( - IntPtr gamecontroller, - UInt16 low_frequency_rumble, - UInt16 high_frequency_rumble, - UInt32 duration_ms - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerRumbleTriggers( - IntPtr gamecontroller, - UInt16 left_rumble, - UInt16 right_rumble, - UInt32 duration_ms - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GameControllerClose( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetAppleSFSymbolsNameForButton", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerGetAppleSFSymbolsNameForButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ); - public static string SDL_GameControllerGetAppleSFSymbolsNameForButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerGetAppleSFSymbolsNameForButton(gamecontroller, button) - ); - } - - /* gamecontroller refers to an SDL_GameController* - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerGetAppleSFSymbolsNameForAxis", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GameControllerGetAppleSFSymbolsNameForAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ); - public static string SDL_GameControllerGetAppleSFSymbolsNameForAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GameControllerGetAppleSFSymbolsNameForAxis(gamecontroller, axis) - ); - } - - /* int refers to an SDL_JoystickID, IntPtr to an SDL_GameController*. - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GameControllerFromInstanceID(int joyid); - - /* Only available in 2.0.11 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_GameControllerType SDL_GameControllerTypeForIndex( - int joystick_index - ); - - /* IntPtr refers to an SDL_GameController*. - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_GameControllerType SDL_GameControllerGetType( - IntPtr gamecontroller - ); - - /* IntPtr refers to an SDL_GameController*. - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GameControllerFromPlayerIndex( - int player_index - ); - - /* IntPtr refers to an SDL_GameController*. - * Only available in 2.0.11 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GameControllerSetPlayerIndex( - IntPtr gamecontroller, - int player_index - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerHasLED( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerHasRumble( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerHasRumbleTriggers( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerSetLED( - IntPtr gamecontroller, - byte red, - byte green, - byte blue - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerHasAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerHasButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerGetNumTouchpads( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerGetNumTouchpadFingers( - IntPtr gamecontroller, - int touchpad - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerGetTouchpadFinger( - IntPtr gamecontroller, - int touchpad, - int finger, - out byte state, - out float x, - out float y, - out float pressure - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerHasSensor( - IntPtr gamecontroller, - SDL_SensorType type - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerSetSensorEnabled( - IntPtr gamecontroller, - SDL_SensorType type, - SDL_bool enabled - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerIsSensorEnabled( - IntPtr gamecontroller, - SDL_SensorType type - ); - - /* gamecontroller refers to an SDL_GameController*. - * data refers to a float*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerGetSensorData( - IntPtr gamecontroller, - SDL_SensorType type, - IntPtr data, - int num_values - ); - - /* gamecontroller refers to an SDL_GameController*. - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern float SDL_GameControllerGetSensorDataRate( - IntPtr gamecontroller, - SDL_SensorType type - ); - - /* gamecontroller refers to an SDL_GameController*. - * data refers to a const void*. - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerSendEffect( - IntPtr gamecontroller, - IntPtr data, - int size - ); - - #endregion - - #region SDL_haptic.h - - /* SDL_HapticEffect type */ - public const ushort SDL_HAPTIC_CONSTANT = (1 << 0); - public const ushort SDL_HAPTIC_SINE = (1 << 1); - public const ushort SDL_HAPTIC_LEFTRIGHT = (1 << 2); - public const ushort SDL_HAPTIC_TRIANGLE = (1 << 3); - public const ushort SDL_HAPTIC_SAWTOOTHUP = (1 << 4); - public const ushort SDL_HAPTIC_SAWTOOTHDOWN = (1 << 5); - public const ushort SDL_HAPTIC_SPRING = (1 << 7); - public const ushort SDL_HAPTIC_DAMPER = (1 << 8); - public const ushort SDL_HAPTIC_INERTIA = (1 << 9); - public const ushort SDL_HAPTIC_FRICTION = (1 << 10); - public const ushort SDL_HAPTIC_CUSTOM = (1 << 11); - public const ushort SDL_HAPTIC_GAIN = (1 << 12); - public const ushort SDL_HAPTIC_AUTOCENTER = (1 << 13); - public const ushort SDL_HAPTIC_STATUS = (1 << 14); - public const ushort SDL_HAPTIC_PAUSE = (1 << 15); - - /* SDL_HapticDirection type */ - public const byte SDL_HAPTIC_POLAR = 0; - public const byte SDL_HAPTIC_CARTESIAN = 1; - public const byte SDL_HAPTIC_SPHERICAL = 2; - public const byte SDL_HAPTIC_STEERING_AXIS = 3; /* Requires >= 2.0.14 */ - - /* SDL_HapticRunEffect */ - public const uint SDL_HAPTIC_INFINITY = 4294967295U; - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_HapticDirection - { - public byte type; - public fixed int dir[3]; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticConstant - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Constant - public short level; - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticPeriodic - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Periodic - public ushort period; - public short magnitude; - public short offset; - public ushort phase; - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_HapticCondition - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Condition - public fixed ushort right_sat[3]; - public fixed ushort left_sat[3]; - public fixed short right_coeff[3]; - public fixed short left_coeff[3]; - public fixed ushort deadband[3]; - public fixed short center[3]; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticRamp - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Ramp - public short start; - public short end; - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticLeftRight - { - // Header - public ushort type; - // Replay - public uint length; - // Rumble - public ushort large_magnitude; - public ushort small_magnitude; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticCustom - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Custom - public byte channels; - public ushort period; - public ushort samples; - public IntPtr data; // Uint16* - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Explicit)] - public struct SDL_HapticEffect - { - [FieldOffset(0)] - public ushort type; - [FieldOffset(0)] - public SDL_HapticConstant constant; - [FieldOffset(0)] - public SDL_HapticPeriodic periodic; - [FieldOffset(0)] - public SDL_HapticCondition condition; - [FieldOffset(0)] - public SDL_HapticRamp ramp; - [FieldOffset(0)] - public SDL_HapticLeftRight leftright; - [FieldOffset(0)] - public SDL_HapticCustom custom; - } - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_HapticClose(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_HapticDestroyEffect( - IntPtr haptic, - int effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticEffectSupported( - IntPtr haptic, - ref SDL_HapticEffect effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticGetEffectStatus( - IntPtr haptic, - int effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticIndex(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, EntryPoint = "SDL_HapticName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_HapticName(int device_index); - public static string SDL_HapticName(int device_index) - { - return UTF8_ToManaged(INTERNAL_SDL_HapticName(device_index)); - } - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNewEffect( - IntPtr haptic, - ref SDL_HapticEffect effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNumAxes(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNumEffects(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNumEffectsPlaying(IntPtr haptic); - - /* IntPtr refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_HapticOpen(int device_index); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticOpened(int device_index); - - /* IntPtr refers to an SDL_Haptic*, joystick to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_HapticOpenFromJoystick( - IntPtr joystick - ); - - /* IntPtr refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_HapticOpenFromMouse(); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticPause(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_HapticQuery(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumbleInit(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumblePlay( - IntPtr haptic, - float strength, - uint length - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumbleStop(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumbleSupported(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRunEffect( - IntPtr haptic, - int effect, - uint iterations - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticSetAutocenter( - IntPtr haptic, - int autocenter - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticSetGain( - IntPtr haptic, - int gain - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticStopAll(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticStopEffect( - IntPtr haptic, - int effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticUnpause(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticUpdateEffect( - IntPtr haptic, - int effect, - ref SDL_HapticEffect data - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickIsHaptic(IntPtr joystick); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_MouseIsHaptic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_NumHaptics(); - - #endregion - - #region SDL_sensor.h - - /* This region is only available in 2.0.9 or higher. */ - - public enum SDL_SensorType - { - SDL_SENSOR_INVALID = -1, - SDL_SENSOR_UNKNOWN, - SDL_SENSOR_ACCEL, - SDL_SENSOR_GYRO - } - - public const float SDL_STANDARD_GRAVITY = 9.80665f; - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_NumSensors(); - - [DllImport(nativeLibName, EntryPoint = "SDL_SensorGetDeviceName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_SensorGetDeviceName(int device_index); - public static string SDL_SensorGetDeviceName(int device_index) - { - return UTF8_ToManaged(INTERNAL_SDL_SensorGetDeviceName(device_index)); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_SensorType SDL_SensorGetDeviceType(int device_index); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SensorGetDeviceNonPortableType(int device_index); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Int32 SDL_SensorGetDeviceInstanceID(int device_index); - - /* IntPtr refers to an SDL_Sensor* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_SensorOpen(int device_index); - - /* IntPtr refers to an SDL_Sensor* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_SensorFromInstanceID( - Int32 instance_id - ); - - /* sensor refers to an SDL_Sensor* */ - [DllImport(nativeLibName, EntryPoint = "SDL_SensorGetName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_SensorGetName(IntPtr sensor); - public static string SDL_SensorGetName(IntPtr sensor) - { - return UTF8_ToManaged(INTERNAL_SDL_SensorGetName(sensor)); - } - - /* sensor refers to an SDL_Sensor* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_SensorType SDL_SensorGetType(IntPtr sensor); - - /* sensor refers to an SDL_Sensor* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SensorGetNonPortableType(IntPtr sensor); - - /* sensor refers to an SDL_Sensor* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Int32 SDL_SensorGetInstanceID(IntPtr sensor); - - /* sensor refers to an SDL_Sensor* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SensorGetData( - IntPtr sensor, - float[] data, - int num_values - ); - - /* sensor refers to an SDL_Sensor* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SensorClose(IntPtr sensor); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SensorUpdate(); - - /* Only available in 2.0.14 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LockSensors(); - - /* Only available in 2.0.14 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockSensors(); - - #endregion - - #region SDL_audio.h - - public const ushort SDL_AUDIO_MASK_BITSIZE = 0xFF; - public const ushort SDL_AUDIO_MASK_DATATYPE = (1 << 8); - public const ushort SDL_AUDIO_MASK_ENDIAN = (1 << 12); - public const ushort SDL_AUDIO_MASK_SIGNED = (1 << 15); - - public static ushort SDL_AUDIO_BITSIZE(ushort x) - { - return (ushort) (x & SDL_AUDIO_MASK_BITSIZE); - } - - public static bool SDL_AUDIO_ISFLOAT(ushort x) - { - return (x & SDL_AUDIO_MASK_DATATYPE) != 0; - } - - public static bool SDL_AUDIO_ISBIGENDIAN(ushort x) - { - return (x & SDL_AUDIO_MASK_ENDIAN) != 0; - } - - public static bool SDL_AUDIO_ISSIGNED(ushort x) - { - return (x & SDL_AUDIO_MASK_SIGNED) != 0; - } - - public static bool SDL_AUDIO_ISINT(ushort x) - { - return (x & SDL_AUDIO_MASK_DATATYPE) == 0; - } - - public static bool SDL_AUDIO_ISLITTLEENDIAN(ushort x) - { - return (x & SDL_AUDIO_MASK_ENDIAN) == 0; - } - - public static bool SDL_AUDIO_ISUNSIGNED(ushort x) - { - return (x & SDL_AUDIO_MASK_SIGNED) == 0; - } - - public const ushort AUDIO_U8 = 0x0008; - public const ushort AUDIO_S8 = 0x8008; - public const ushort AUDIO_U16LSB = 0x0010; - public const ushort AUDIO_S16LSB = 0x8010; - public const ushort AUDIO_U16MSB = 0x1010; - public const ushort AUDIO_S16MSB = 0x9010; - public const ushort AUDIO_U16 = AUDIO_U16LSB; - public const ushort AUDIO_S16 = AUDIO_S16LSB; - public const ushort AUDIO_S32LSB = 0x8020; - public const ushort AUDIO_S32MSB = 0x9020; - public const ushort AUDIO_S32 = AUDIO_S32LSB; - public const ushort AUDIO_F32LSB = 0x8120; - public const ushort AUDIO_F32MSB = 0x9120; - public const ushort AUDIO_F32 = AUDIO_F32LSB; - - public static readonly ushort AUDIO_U16SYS = - BitConverter.IsLittleEndian ? AUDIO_U16LSB : AUDIO_U16MSB; - public static readonly ushort AUDIO_S16SYS = - BitConverter.IsLittleEndian ? AUDIO_S16LSB : AUDIO_S16MSB; - public static readonly ushort AUDIO_S32SYS = - BitConverter.IsLittleEndian ? AUDIO_S32LSB : AUDIO_S32MSB; - public static readonly ushort AUDIO_F32SYS = - BitConverter.IsLittleEndian ? AUDIO_F32LSB : AUDIO_F32MSB; - - public const uint SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001; - public const uint SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000002; - public const uint SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000004; - public const uint SDL_AUDIO_ALLOW_SAMPLES_CHANGE = 0x00000008; - public const uint SDL_AUDIO_ALLOW_ANY_CHANGE = ( - SDL_AUDIO_ALLOW_FREQUENCY_CHANGE | - SDL_AUDIO_ALLOW_FORMAT_CHANGE | - SDL_AUDIO_ALLOW_CHANNELS_CHANGE | - SDL_AUDIO_ALLOW_SAMPLES_CHANGE - ); - - public const int SDL_MIX_MAXVOLUME = 128; - - public enum SDL_AudioStatus - { - SDL_AUDIO_STOPPED, - SDL_AUDIO_PLAYING, - SDL_AUDIO_PAUSED - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_AudioSpec - { - public int freq; - public ushort format; // SDL_AudioFormat - public byte channels; - public byte silence; - public ushort samples; - public uint size; - public SDL_AudioCallback callback; - public IntPtr userdata; // void* - } - - /* userdata refers to a void*, stream to a Uint8 */ - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void SDL_AudioCallback( - IntPtr userdata, - IntPtr stream, - int len - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_AudioInit", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_SDL_AudioInit( - byte* driver_name - ); - public static unsafe int SDL_AudioInit(string driver_name) - { - int utf8DriverNameBufSize = Utf8Size(driver_name); - byte* utf8DriverName = stackalloc byte[utf8DriverNameBufSize]; - return INTERNAL_SDL_AudioInit( - Utf8Encode(driver_name, utf8DriverName, utf8DriverNameBufSize) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_AudioQuit(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_CloseAudio(); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_CloseAudioDevice(uint dev); - - /* audio_buf refers to a malloc()'d buffer from SDL_LoadWAV */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeWAV(IntPtr audio_buf); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetAudioDeviceName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetAudioDeviceName( - int index, - int iscapture - ); - public static string SDL_GetAudioDeviceName( - int index, - int iscapture - ) { - return UTF8_ToManaged( - INTERNAL_SDL_GetAudioDeviceName(index, iscapture) - ); - } - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_AudioStatus SDL_GetAudioDeviceStatus( - uint dev - ); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetAudioDriver", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetAudioDriver(int index); - public static string SDL_GetAudioDriver(int index) - { - return UTF8_ToManaged( - INTERNAL_SDL_GetAudioDriver(index) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_AudioStatus SDL_GetAudioStatus(); - - [DllImport(nativeLibName, EntryPoint = "SDL_GetCurrentAudioDriver", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetCurrentAudioDriver(); - public static string SDL_GetCurrentAudioDriver() - { - return UTF8_ToManaged(INTERNAL_SDL_GetCurrentAudioDriver()); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumAudioDevices(int iscapture); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumAudioDrivers(); - - /* audio_buf refers to a malloc()'d buffer, IntPtr to an SDL_AudioSpec* */ - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_LoadWAV_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_LoadWAV_RW( - IntPtr src, - int freesrc, - out SDL_AudioSpec spec, - out IntPtr audio_buf, - out uint audio_len - ); - public static IntPtr SDL_LoadWAV( - string file, - out SDL_AudioSpec spec, - out IntPtr audio_buf, - out uint audio_len - ) { - IntPtr rwops = SDL_RWFromFile(file, "rb"); - return INTERNAL_SDL_LoadWAV_RW( - rwops, - 1, - out spec, - out audio_buf, - out audio_len - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LockAudio(); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LockAudioDevice(uint dev); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MixAudio( - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 2)] - byte[] dst, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 2)] - byte[] src, - uint len, - int volume - ); - - /* format refers to an SDL_AudioFormat */ - /* This overload allows raw pointers to be passed for dst and src. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MixAudioFormat( - IntPtr dst, - IntPtr src, - ushort format, - uint len, - int volume - ); - - /* format refers to an SDL_AudioFormat */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MixAudioFormat( - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 3)] - byte[] dst, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 3)] - byte[] src, - ushort format, - uint len, - int volume - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_OpenAudio( - ref SDL_AudioSpec desired, - out SDL_AudioSpec obtained - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_OpenAudio( - ref SDL_AudioSpec desired, - IntPtr obtained - ); - - /* uint refers to an SDL_AudioDeviceID */ - /* This overload allows for IntPtr.Zero (null) to be passed for device. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe uint SDL_OpenAudioDevice( - IntPtr device, - int iscapture, - ref SDL_AudioSpec desired, - out SDL_AudioSpec obtained, - int allowed_changes - ); - - /* uint refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, EntryPoint = "SDL_OpenAudioDevice", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe uint INTERNAL_SDL_OpenAudioDevice( - byte* device, - int iscapture, - ref SDL_AudioSpec desired, - out SDL_AudioSpec obtained, - int allowed_changes - ); - public static unsafe uint SDL_OpenAudioDevice( - string device, - int iscapture, - ref SDL_AudioSpec desired, - out SDL_AudioSpec obtained, - int allowed_changes - ) { - int utf8DeviceBufSize = Utf8Size(device); - byte* utf8Device = stackalloc byte[utf8DeviceBufSize]; - return INTERNAL_SDL_OpenAudioDevice( - Utf8Encode(device, utf8Device, utf8DeviceBufSize), - iscapture, - ref desired, - out obtained, - allowed_changes - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_PauseAudio(int pause_on); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_PauseAudioDevice( - uint dev, - int pause_on - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockAudio(); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockAudioDevice(uint dev); - - /* dev refers to an SDL_AudioDeviceID, data to a void* - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_QueueAudio( - uint dev, - IntPtr data, - UInt32 len - ); - - /* dev refers to an SDL_AudioDeviceID, data to a void* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_DequeueAudio( - uint dev, - IntPtr data, - uint len - ); - - /* dev refers to an SDL_AudioDeviceID - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetQueuedAudioSize(uint dev); - - /* dev refers to an SDL_AudioDeviceID - * Only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ClearQueuedAudio(uint dev); - - /* src_format and dst_format refer to SDL_AudioFormats. - * IntPtr refers to an SDL_AudioStream*. - * Only available in 2.0.7 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_NewAudioStream( - ushort src_format, - byte src_channels, - int src_rate, - ushort dst_format, - byte dst_channels, - int dst_rate - ); - - /* stream refers to an SDL_AudioStream*, buf to a void*. - * Only available in 2.0.7 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AudioStreamPut( - IntPtr stream, - IntPtr buf, - int len - ); - - /* stream refers to an SDL_AudioStream*, buf to a void*. - * Only available in 2.0.7 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AudioStreamGet( - IntPtr stream, - IntPtr buf, - int len - ); - - /* stream refers to an SDL_AudioStream*. - * Only available in 2.0.7 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AudioStreamAvailable(IntPtr stream); - - /* stream refers to an SDL_AudioStream*. - * Only available in 2.0.7 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_AudioStreamClear(IntPtr stream); - - /* stream refers to an SDL_AudioStream*. - * Only available in 2.0.7 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeAudioStream(IntPtr stream); - - /* Only available in 2.0.16 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetAudioDeviceSpec( - int index, - int iscapture, - out SDL_AudioSpec spec - ); - - #endregion - - #region SDL_timer.h - - /* System timers rely on different OS mechanisms depending on - * which operating system SDL2 is compiled against. - */ - - /* Compare tick values, return true if A has passed B. Introduced in SDL 2.0.1, - * but does not require it (it was a macro). - */ - public static bool SDL_TICKS_PASSED(UInt32 A, UInt32 B) - { - return ((Int32)(B - A) <= 0); - } - - /* Delays the thread's processing based on the milliseconds parameter */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Delay(UInt32 ms); - - /* Returns the milliseconds that have passed since SDL was initialized */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetTicks(); - - /* Returns the milliseconds that have passed since SDL was initialized - * Only available in 2.0.18 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt64 SDL_GetTicks64(); - - /* Get the current value of the high resolution counter */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt64 SDL_GetPerformanceCounter(); - - /* Get the count per second of the high resolution counter */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt64 SDL_GetPerformanceFrequency(); - - /* param refers to a void* */ - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate UInt32 SDL_TimerCallback(UInt32 interval, IntPtr param); - - /* int refers to an SDL_TimerID, param to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AddTimer( - UInt32 interval, - SDL_TimerCallback callback, - IntPtr param - ); - - /* id refers to an SDL_TimerID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RemoveTimer(int id); - - #endregion - - #region SDL_system.h - - /* Windows */ - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate IntPtr SDL_WindowsMessageHook( - IntPtr userdata, - IntPtr hWnd, - uint message, - ulong wParam, - long lParam - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowsMessageHook( - SDL_WindowsMessageHook callback, - IntPtr userdata - ); - - /* renderer refers to an SDL_Renderer* - * IntPtr refers to an IDirect3DDevice9* - * Only available in 2.0.1 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RenderGetD3D9Device(IntPtr renderer); - - /* renderer refers to an SDL_Renderer* - * IntPtr refers to an ID3D11Device* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RenderGetD3D11Device(IntPtr renderer); - - /* iOS */ - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void SDL_iPhoneAnimationCallback(IntPtr p); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_iPhoneSetAnimationCallback( - IntPtr window, /* SDL_Window* */ - int interval, - SDL_iPhoneAnimationCallback callback, - IntPtr callbackParam - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_iPhoneSetEventPump(SDL_bool enabled); - - /* Android */ - - public const int SDL_ANDROID_EXTERNAL_STORAGE_READ = 0x01; - public const int SDL_ANDROID_EXTERNAL_STORAGE_WRITE = 0x02; - - /* IntPtr refers to a JNIEnv* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_AndroidGetJNIEnv(); - - /* IntPtr refers to a jobject */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_AndroidGetActivity(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsAndroidTV(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsChromebook(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsDeXMode(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_AndroidBackButton(); - - [DllImport(nativeLibName, EntryPoint = "SDL_AndroidGetInternalStoragePath", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_AndroidGetInternalStoragePath(); - - public static string SDL_AndroidGetInternalStoragePath() - { - return UTF8_ToManaged( - INTERNAL_SDL_AndroidGetInternalStoragePath() - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AndroidGetExternalStorageState(); - - [DllImport(nativeLibName, EntryPoint = "SDL_AndroidGetExternalStoragePath", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_AndroidGetExternalStoragePath(); - - public static string SDL_AndroidGetExternalStoragePath() - { - return UTF8_ToManaged( - INTERNAL_SDL_AndroidGetExternalStoragePath() - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetAndroidSDKVersion(); - - /* Only available in 2.0.14 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_AndroidRequestPermission", CallingConvention = CallingConvention.Cdecl)] - private static unsafe extern SDL_bool INTERNAL_SDL_AndroidRequestPermission( - byte* permission - ); - public static unsafe SDL_bool SDL_AndroidRequestPermission( - string permission - ) { - byte* permissionPtr = Utf8EncodeHeap(permission); - SDL_bool result = INTERNAL_SDL_AndroidRequestPermission( - permissionPtr - ); - Marshal.FreeHGlobal((IntPtr) permissionPtr); - return result; - } - - /* Only available in 2.0.16 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_AndroidShowToast", CallingConvention = CallingConvention.Cdecl)] - private static unsafe extern int INTERNAL_SDL_AndroidShowToast( - byte* message, - int duration, - int gravity, - int xOffset, - int yOffset - ); - public static unsafe int SDL_AndroidShowToast( - string message, - int duration, - int gravity, - int xOffset, - int yOffset - ) { - byte* messagePtr = Utf8EncodeHeap(message); - int result = INTERNAL_SDL_AndroidShowToast( - messagePtr, - duration, - gravity, - xOffset, - yOffset - ); - Marshal.FreeHGlobal((IntPtr) messagePtr); - return result; - } - - /* WinRT */ - - public enum SDL_WinRT_DeviceFamily - { - SDL_WINRT_DEVICEFAMILY_UNKNOWN, - SDL_WINRT_DEVICEFAMILY_DESKTOP, - SDL_WINRT_DEVICEFAMILY_MOBILE, - SDL_WINRT_DEVICEFAMILY_XBOX - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_WinRT_DeviceFamily SDL_WinRTGetDeviceFamily(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsTablet(); - - #endregion - - #region SDL_syswm.h - - public enum SDL_SYSWM_TYPE - { - SDL_SYSWM_UNKNOWN, - SDL_SYSWM_WINDOWS, - SDL_SYSWM_X11, - SDL_SYSWM_DIRECTFB, - SDL_SYSWM_COCOA, - SDL_SYSWM_UIKIT, - SDL_SYSWM_WAYLAND, - SDL_SYSWM_MIR, - SDL_SYSWM_WINRT, - SDL_SYSWM_ANDROID, - SDL_SYSWM_VIVANTE, - SDL_SYSWM_OS2, - SDL_SYSWM_HAIKU, - SDL_SYSWM_KMSDRM /* requires >= 2.0.16 */ - } - - // FIXME: I wish these weren't public... - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_windows_wminfo - { - public IntPtr window; // Refers to an HWND - public IntPtr hdc; // Refers to an HDC - public IntPtr hinstance; // Refers to an HINSTANCE - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_winrt_wminfo - { - public IntPtr window; // Refers to an IInspectable* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_x11_wminfo - { - public IntPtr display; // Refers to a Display* - public IntPtr window; // Refers to a Window (XID, use ToInt64!) - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_directfb_wminfo - { - public IntPtr dfb; // Refers to an IDirectFB* - public IntPtr window; // Refers to an IDirectFBWindow* - public IntPtr surface; // Refers to an IDirectFBSurface* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_cocoa_wminfo - { - public IntPtr window; // Refers to an NSWindow* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_uikit_wminfo - { - public IntPtr window; // Refers to a UIWindow* - public uint framebuffer; - public uint colorbuffer; - public uint resolveFramebuffer; - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_wayland_wminfo - { - public IntPtr display; // Refers to a wl_display* - public IntPtr surface; // Refers to a wl_surface* - public IntPtr shell_surface; // Refers to a wl_shell_surface* - public IntPtr egl_window; // Refers to an egl_window*, requires >= 2.0.16 - public IntPtr xdg_surface; // Refers to an xdg_surface*, requires >= 2.0.16 - public IntPtr xdg_toplevel; // Referes to an xdg_toplevel*, requires >= 2.0.18 - public IntPtr xdg_popup; - public IntPtr xdg_positioner; - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_mir_wminfo - { - public IntPtr connection; // Refers to a MirConnection* - public IntPtr surface; // Refers to a MirSurface* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_android_wminfo - { - public IntPtr window; // Refers to an ANativeWindow - public IntPtr surface; // Refers to an EGLSurface - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_vivante_wminfo - { - public IntPtr display; // Refers to an EGLNativeDisplayType - public IntPtr window; // Refers to an EGLNativeWindowType - } - - /* Only available in 2.0.14 or higher. */ - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_os2_wminfo - { - public IntPtr hwnd; // Refers to an HWND - public IntPtr hwndFrame; // Refers to an HWND - } - - /* Only available in 2.0.16 or higher. */ - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_kmsdrm_wminfo - { - int dev_index; - int drm_fd; - IntPtr gbm_dev; // Refers to a gbm_device* - } - - [StructLayout(LayoutKind.Explicit)] - public struct INTERNAL_SysWMDriverUnion - { - [FieldOffset(0)] - public INTERNAL_windows_wminfo win; - [FieldOffset(0)] - public INTERNAL_winrt_wminfo winrt; - [FieldOffset(0)] - public INTERNAL_x11_wminfo x11; - [FieldOffset(0)] - public INTERNAL_directfb_wminfo dfb; - [FieldOffset(0)] - public INTERNAL_cocoa_wminfo cocoa; - [FieldOffset(0)] - public INTERNAL_uikit_wminfo uikit; - [FieldOffset(0)] - public INTERNAL_wayland_wminfo wl; - [FieldOffset(0)] - public INTERNAL_mir_wminfo mir; - [FieldOffset(0)] - public INTERNAL_android_wminfo android; - [FieldOffset(0)] - public INTERNAL_os2_wminfo os2; - [FieldOffset(0)] - public INTERNAL_vivante_wminfo vivante; - [FieldOffset(0)] - public INTERNAL_kmsdrm_wminfo ksmdrm; - // private int dummy; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_SysWMinfo - { - public SDL_version version; - public SDL_SYSWM_TYPE subsystem; - public INTERNAL_SysWMDriverUnion info; - } - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetWindowWMInfo( - IntPtr window, - ref SDL_SysWMinfo info - ); - - #endregion - - #region SDL_filesystem.h - - /* Only available in 2.0.1 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetBasePath", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_GetBasePath(); - public static string SDL_GetBasePath() - { - return UTF8_ToManaged(INTERNAL_SDL_GetBasePath(), true); - } - - /* Only available in 2.0.1 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_GetPrefPath", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_SDL_GetPrefPath( - byte* org, - byte* app - ); - public static unsafe string SDL_GetPrefPath(string org, string app) - { - int utf8OrgBufSize = Utf8Size(org); - byte* utf8Org = stackalloc byte[utf8OrgBufSize]; - - int utf8AppBufSize = Utf8Size(app); - byte* utf8App = stackalloc byte[utf8AppBufSize]; - - return UTF8_ToManaged( - INTERNAL_SDL_GetPrefPath( - Utf8Encode(org, utf8Org, utf8OrgBufSize), - Utf8Encode(app, utf8App, utf8AppBufSize) - ), - true - ); - } - - #endregion - - #region SDL_power.h - - public enum SDL_PowerState - { - SDL_POWERSTATE_UNKNOWN = 0, - SDL_POWERSTATE_ON_BATTERY, - SDL_POWERSTATE_NO_BATTERY, - SDL_POWERSTATE_CHARGING, - SDL_POWERSTATE_CHARGED - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_PowerState SDL_GetPowerInfo( - out int secs, - out int pct - ); - - #endregion - - #region SDL_cpuinfo.h - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetCPUCount(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetCPUCacheLineSize(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasRDTSC(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasAltiVec(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasMMX(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_Has3DNow(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasSSE(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasSSE2(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasSSE3(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasSSE41(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasSSE42(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasAVX(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasAVX2(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasAVX512F(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasNEON(); - - /* Only available in 2.0.1 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSystemRAM(); - - /* Only available in SDL 2.0.10 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_SIMDGetAlignment(); - - /* Only available in SDL 2.0.10 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_SIMDAlloc(uint len); - - /* Only available in SDL 2.0.14 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_SIMDRealloc(IntPtr ptr, uint len); - - /* Only available in SDL 2.0.10 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SIMDFree(IntPtr ptr); - - /* Only available in SDL 2.0.11 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_HasARMSIMD(); - - #endregion - - #region SDL_locale.h - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Locale - { - IntPtr language; - IntPtr country; - } - - /* IntPtr refers to an SDL_Locale*. - * Only available in 2.0.14 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetPreferredLocales(); - - #endregion - - #region SDL_misc.h - - /* Only available in 2.0.14 or higher. */ - [DllImport(nativeLibName, EntryPoint = "SDL_OpenURL", CallingConvention = CallingConvention.Cdecl)] - private static unsafe extern int INTERNAL_SDL_OpenURL(byte* url); - public static unsafe int SDL_OpenURL(string url) - { - byte* urlPtr = Utf8EncodeHeap(url); - int result = INTERNAL_SDL_OpenURL(urlPtr); - Marshal.FreeHGlobal((IntPtr) urlPtr); - return result; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_gfx.cs b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_gfx.cs deleted file mode 100644 index 78032c98..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_gfx.cs +++ /dev/null @@ -1,390 +0,0 @@ -#region License -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace SDL2 -{ - public static class SDL_gfx - { - #region SDL2# Variables - - /* Used by DllImport to load the native library. */ - private const string nativeLibName = "SDL2_gfx"; - - #endregion - - public const double M_PI = 3.1415926535897932384626433832795; - - #region SDL2_gfxPrimitives.h - - public const uint SDL2_GFXPRIMITIVES_MAJOR = 1; - public const uint SDL2_GFXPRIMITIVES_MINOR = 0; - public const uint SDL2_GFXPRIMITIVES_MICRO = 1; - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int pixelColor(IntPtr renderer, short x, short y, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int pixelRGBA(IntPtr renderer, short x, short y, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int hlineColor(IntPtr renderer, short x1, short x2, short y, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int hlineRGBA(IntPtr renderer, short x1, short x2, short y, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int vlineColor(IntPtr renderer, short x, short y1, short y2, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int vlineRGBA(IntPtr renderer, short x, short y1, short y2, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int rectangleColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int rectangleRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int roundedRectangleColor(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int roundedRectangleRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int boxColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int boxRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int roundedBoxColor(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int roundedBoxRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short rad, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int lineColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int lineRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aalineColor(IntPtr renderer, short x1, short y1, short x2, short y2, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aalineRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int thickLineColor(IntPtr renderer, short x1, short y1, short x2, short y2, byte width, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int thickLineRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, byte width, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int circleColor(IntPtr renderer, short x, short y, short rad, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int circleRGBA(IntPtr renderer, short x, short y, short rad, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int arcColor(IntPtr renderer, short x, short y, short rad, short start, short end, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int arcRGBA(IntPtr renderer, short x, short y, short rad, short start, short end, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aacircleColor(IntPtr renderer, short x, short y, short rad, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aacircleRGBA(IntPtr renderer, short x, short y, short rad, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledCircleColor(IntPtr renderer, short x, short y, short rad, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledCircleRGBA(IntPtr renderer, short x, short y, short rad, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int ellipseColor(IntPtr renderer, short x, short y, short rx, short ry, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int ellipseRGBA(IntPtr renderer, short x, short y, short rx, short ry, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aaellipseColor(IntPtr renderer, short x, short y, short rx, short ry, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aaellipseRGBA(IntPtr renderer, short x, short y, short rx, short ry, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledEllipseColor(IntPtr renderer, short x, short y, short rx, short ry, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledEllipseRGBA(IntPtr renderer, short x, short y, short rx, short ry, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int pieColor(IntPtr renderer, short x, short y, short rad, short start, short end, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int pieRGBA(IntPtr renderer, short x, short y, short rad, short start, short end, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledPieColor(IntPtr renderer, short x, short y, short rad, short start, short end, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledPieRGBA(IntPtr renderer, short x, short y, short rad, short start, short end, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int trigonColor(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int trigonRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aatrigonColor(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aatrigonRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledTrigonColor(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledTrigonRGBA(IntPtr renderer, short x1, short y1, short x2, short y2, short x3, short y3, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int polygonColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int polygonRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aapolygonColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int aapolygonRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledPolygonColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int filledPolygonRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int texturedPolygon(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, IntPtr texture, int texture_dx, int texture_dy); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int bezierColor(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, int s, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int bezierRGBA(IntPtr renderer, [In] short[] vx, [In] short[] vy, int n, int s, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void gfxPrimitivesSetFont([In] byte[] fontdata, uint cw, uint ch); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void gfxPrimitivesSetFontRotation(uint rotation); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int characterColor(IntPtr renderer, short x, short y, char c, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int characterRGBA(IntPtr renderer, short x, short y, char c, byte r, byte g, byte b, byte a); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stringColor(IntPtr renderer, short x, short y, string s, uint color); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int stringRGBA(IntPtr renderer, short x, short y, string s, byte r, byte g, byte b, byte a); - - #endregion - - #region SDL2_rotozoom.h - - public const int SMOOTHING_OFF = 0; - public const int SMOOTHING_ON = 1; - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr rotozoomSurface(IntPtr src, double angle, double zoom, int smooth); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr rotozoomSurfaceXY(IntPtr src, double angle, double zoomx, double zoomy, int smooth); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void rotozoomSurfaceSize(int width, int height, double angle, double zoom, out int dstwidth, out int dstheight); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void rotozoomSurfaceSizeXY(int width, int height, double angle, double zoomx, double zoomy, out int dstwidth, out int dstheight); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr zoomSurface(IntPtr src, double zoomx, double zoomy, int smooth); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void zoomSurfaceSize(int width, int height, double zoomx, double zoomy, out int dstwidth, out int dstheight); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr shrinkSurface(IntPtr src, int factorx, int factory); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr rotateSurface90Degrees(IntPtr src, int numClockwiseTurns); - - #endregion - - #region SDL2_framerate.h - - public const int FPS_UPPER_LIMIT = 200; - public const int FPS_LOWER_LIMIT = 1; - public const int FPS_DEFAULT = 30; - - [StructLayout(LayoutKind.Sequential)] - public struct FPSmanager - { - public uint framecount; - public float rateticks; - public uint baseticks; - public uint lastticks; - public uint rate; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_initFramerate(ref FPSmanager manager); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_setFramerate(ref FPSmanager manager, uint rate); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_getFramerate(ref FPSmanager manager); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_getFramecount(ref FPSmanager manager); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_framerateDelay(ref FPSmanager manager); - - #endregion - - #region SDL2_imageFilter.h - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterMMXdetect(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_imageFilterMMXoff(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_imageFilterMMXon(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterAdd([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterMean([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterSub([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterAbsDiff([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterMult([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterMultNor([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterMultDivby2([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterMultDivby4([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterBitAnd([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterBitOr([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterDiv([In] byte[] src1, [In] byte[] src2, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterBitNegation([In] byte[] src1, [Out] byte[] dest, uint length); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterAddByte([In] byte[] src1, [Out] byte[] dest, uint length, byte c); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterAddUint([In] byte[] src1, [Out] byte[] dest, uint length, uint c); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterAddByteToHalf([In] byte[] src1, [Out] byte[] dest, uint length, byte c); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterSubByte([In] byte[] src1, [Out] byte[] dest, uint length, byte c); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterSubUint([In] byte[] src1, [Out] byte[] dest, uint length, uint c); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterShiftRight([In] byte[] src1, [Out] byte[] dest, uint length, byte n); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterShiftRightUint([In] byte[] src1, [Out] byte[] dest, uint length, byte n); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterMultByByte([In] byte[] src1, [Out] byte[] dest, uint length, byte c); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterShiftRightAndMultByByte([In] byte[] src1, [Out] byte[] dest, uint length, byte n, byte c); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterShiftLeftByte([In] byte[] src1, [Out] byte[] dest, uint length, byte n); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterShiftLeftUint([In] byte[] src1, [Out] byte[] dest, uint length, byte n); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterShiftLeft([In] byte[] src1, [Out] byte[] dest, uint length, byte n); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterBinarizeUsingThreshold([In] byte[] src1, [Out] byte[] dest, uint length, byte t); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterClipToRange([In] byte[] src1, [Out] byte[] dest, uint length, byte tmin, byte tmax); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_imageFilterNormalizeLinear([In] byte[] src1, [Out] byte[] dest, uint length, int cmin, int cmax, int nmin, int nmax); - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_image.cs b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_image.cs deleted file mode 100644 index 0afec657..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_image.cs +++ /dev/null @@ -1,317 +0,0 @@ -#region License -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace SDL2 -{ - public static class SDL_image - { - #region SDL2# Variables - - /* Used by DllImport to load the native library. */ - private const string nativeLibName = "SDL2_image"; - - #endregion - - #region SDL_image.h - - /* Similar to the headers, this is the version we're expecting to be - * running with. You will likely want to check this somewhere in your - * program! - */ - public const int SDL_IMAGE_MAJOR_VERSION = 2; - public const int SDL_IMAGE_MINOR_VERSION = 0; - public const int SDL_IMAGE_PATCHLEVEL = 6; - - [Flags] - public enum IMG_InitFlags - { - IMG_INIT_JPG = 0x00000001, - IMG_INIT_PNG = 0x00000002, - IMG_INIT_TIF = 0x00000004, - IMG_INIT_WEBP = 0x00000008 - } - - public static void SDL_IMAGE_VERSION(out SDL.SDL_version X) - { - X.major = SDL_IMAGE_MAJOR_VERSION; - X.minor = SDL_IMAGE_MINOR_VERSION; - X.patch = SDL_IMAGE_PATCHLEVEL; - } - - [DllImport(nativeLibName, EntryPoint = "IMG_Linked_Version", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_IMG_Linked_Version(); - public static SDL.SDL_version IMG_Linked_Version() - { - SDL.SDL_version result; - IntPtr result_ptr = INTERNAL_IMG_Linked_Version(); - result = (SDL.SDL_version) Marshal.PtrToStructure( - result_ptr, - typeof(SDL.SDL_version) - ); - return result; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int IMG_Init(IMG_InitFlags flags); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void IMG_Quit(); - - /* IntPtr refers to an SDL_Surface* */ - [DllImport(nativeLibName, EntryPoint = "IMG_Load", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_IMG_Load( - byte* file - ); - public static unsafe IntPtr IMG_Load(string file) - { - byte* utf8File = SDL.Utf8EncodeHeap(file); - IntPtr handle = INTERNAL_IMG_Load( - utf8File - ); - Marshal.FreeHGlobal((IntPtr) utf8File); - return handle; - } - - /* src refers to an SDL_RWops*, IntPtr to an SDL_Surface* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr IMG_Load_RW( - IntPtr src, - int freesrc - ); - - /* src refers to an SDL_RWops*, IntPtr to an SDL_Surface* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "IMG_LoadTyped_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_IMG_LoadTyped_RW( - IntPtr src, - int freesrc, - byte* type - ); - public static unsafe IntPtr IMG_LoadTyped_RW( - IntPtr src, - int freesrc, - string type - ) { - int utf8TypeBufSize = SDL.Utf8Size(type); - byte* utf8Type = stackalloc byte[utf8TypeBufSize]; - return INTERNAL_IMG_LoadTyped_RW( - src, - freesrc, - SDL.Utf8Encode(type, utf8Type, utf8TypeBufSize) - ); - } - - /* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */ - [DllImport(nativeLibName, EntryPoint = "IMG_LoadTexture", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_IMG_LoadTexture( - IntPtr renderer, - byte* file - ); - public static unsafe IntPtr IMG_LoadTexture( - IntPtr renderer, - string file - ) { - byte* utf8File = SDL.Utf8EncodeHeap(file); - IntPtr handle = INTERNAL_IMG_LoadTexture( - renderer, - utf8File - ); - Marshal.FreeHGlobal((IntPtr) utf8File); - return handle; - } - - /* renderer refers to an SDL_Renderer*. - * src refers to an SDL_RWops*. - * IntPtr to an SDL_Texture*. - */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr IMG_LoadTexture_RW( - IntPtr renderer, - IntPtr src, - int freesrc - ); - - /* renderer refers to an SDL_Renderer*. - * src refers to an SDL_RWops*. - * IntPtr to an SDL_Texture*. - */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "IMG_LoadTextureTyped_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_IMG_LoadTextureTyped_RW( - IntPtr renderer, - IntPtr src, - int freesrc, - byte* type - ); - public static unsafe IntPtr IMG_LoadTextureTyped_RW( - IntPtr renderer, - IntPtr src, - int freesrc, - string type - ) { - byte* utf8Type = SDL.Utf8EncodeHeap(type); - IntPtr handle = INTERNAL_IMG_LoadTextureTyped_RW( - renderer, - src, - freesrc, - utf8Type - ); - Marshal.FreeHGlobal((IntPtr) utf8Type); - return handle; - } - - /* IntPtr refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr IMG_ReadXPMFromArray( - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.LPStr)] - string[] xpm - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, EntryPoint = "IMG_SavePNG", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_IMG_SavePNG( - IntPtr surface, - byte* file - ); - public static unsafe int IMG_SavePNG(IntPtr surface, string file) - { - byte* utf8File = SDL.Utf8EncodeHeap(file); - int result = INTERNAL_IMG_SavePNG( - surface, - utf8File - ); - Marshal.FreeHGlobal((IntPtr) utf8File); - return result; - } - - /* surface refers to an SDL_Surface*, dst to an SDL_RWops* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int IMG_SavePNG_RW( - IntPtr surface, - IntPtr dst, - int freedst - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, EntryPoint = "IMG_SaveJPG", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_IMG_SaveJPG( - IntPtr surface, - byte* file, - int quality - ); - public static unsafe int IMG_SaveJPG(IntPtr surface, string file, int quality) - { - byte* utf8File = SDL.Utf8EncodeHeap(file); - int result = INTERNAL_IMG_SaveJPG( - surface, - utf8File, - quality - ); - Marshal.FreeHGlobal((IntPtr) utf8File); - return result; - } - - /* surface refers to an SDL_Surface*, dst to an SDL_RWops* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int IMG_SaveJPG_RW( - IntPtr surface, - IntPtr dst, - int freedst, - int quality - ); - - public static string IMG_GetError() - { - return SDL.SDL_GetError(); - } - - public static void IMG_SetError(string fmtAndArglist) - { - SDL.SDL_SetError(fmtAndArglist); - } - - #region Animated Image Support - - /* This region is only available in 2.0.6 or higher. */ - - public struct IMG_Animation - { - public int w; - public int h; - public IntPtr frames; /* SDL_Surface** */ - public IntPtr delays; /* int* */ - } - - /* IntPtr refers to an IMG_Animation* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr IMG_LoadAnimation( - [In()] [MarshalAs(UnmanagedType.LPStr)] - string file - ); - - /* IntPtr refers to an IMG_Animation*, src to an SDL_RWops* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr IMG_LoadAnimation_RW( - IntPtr src, - int freesrc - ); - - /* IntPtr refers to an IMG_Animation*, src to an SDL_RWops* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr IMG_LoadAnimationTyped_RW( - IntPtr src, - int freesrc, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string type - ); - - /* anim refers to an IMG_Animation* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void IMG_FreeAnimation(IntPtr anim); - - /* IntPtr refers to an IMG_Animation*, src to an SDL_RWops* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr IMG_LoadGIFAnimation_RW(IntPtr src); - - #endregion - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_mixer.cs b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_mixer.cs deleted file mode 100644 index 69b128bd..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_mixer.cs +++ /dev/null @@ -1,666 +0,0 @@ -#region License -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace SDL2 -{ - public static class SDL_mixer - { - #region SDL2# Variables - - /* Used by DllImport to load the native library. */ - private const string nativeLibName = "SDL2_mixer"; - - #endregion - - #region SDL_mixer.h - - /* Similar to the headers, this is the version we're expecting to be - * running with. You will likely want to check this somewhere in your - * program! - */ - public const int SDL_MIXER_MAJOR_VERSION = 2; - public const int SDL_MIXER_MINOR_VERSION = 0; - public const int SDL_MIXER_PATCHLEVEL = 5; - - /* In C, you can redefine this value before including SDL_mixer.h. - * We're not going to allow this in SDL2#, since the value of this - * variable is persistent and not dependent on preprocessor ordering. - */ - public const int MIX_CHANNELS = 8; - - public static readonly int MIX_DEFAULT_FREQUENCY = 44100; - public static readonly ushort MIX_DEFAULT_FORMAT = - BitConverter.IsLittleEndian ? SDL.AUDIO_S16LSB : SDL.AUDIO_S16MSB; - public static readonly int MIX_DEFAULT_CHANNELS = 2; - public static readonly byte MIX_MAX_VOLUME = 128; - - [Flags] - public enum MIX_InitFlags - { - MIX_INIT_FLAC = 0x00000001, - MIX_INIT_MOD = 0x00000002, - MIX_INIT_MP3 = 0x00000008, - MIX_INIT_OGG = 0x00000010, - MIX_INIT_MID = 0x00000020, - MIX_INIT_OPUS = 0x00000040 - } - - public struct MIX_Chunk - { - public int allocated; - public IntPtr abuf; /* Uint8* */ - public uint alen; - public byte volume; - } - - public enum Mix_Fading - { - MIX_NO_FADING, - MIX_FADING_OUT, - MIX_FADING_IN - } - - public enum Mix_MusicType - { - MUS_NONE, - MUS_CMD, - MUS_WAV, - MUS_MOD, - MUS_MID, - MUS_OGG, - MUS_MP3, - MUS_MP3_MAD_UNUSED, - MUS_FLAC, - MUS_MODPLUG_UNUSED, - MUS_OPUS - } - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void MixFuncDelegate( - IntPtr udata, // void* - IntPtr stream, // Uint8* - int len - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void Mix_EffectFunc_t( - int chan, - IntPtr stream, // void* - int len, - IntPtr udata // void* - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void Mix_EffectDone_t( - int chan, - IntPtr udata // void* - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void MusicFinishedDelegate(); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void ChannelFinishedDelegate(int channel); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int SoundFontDelegate( - IntPtr a, // const char* - IntPtr b // void* - ); - - public static void SDL_MIXER_VERSION(out SDL.SDL_version X) - { - X.major = SDL_MIXER_MAJOR_VERSION; - X.minor = SDL_MIXER_MINOR_VERSION; - X.patch = SDL_MIXER_PATCHLEVEL; - } - - [DllImport(nativeLibName, EntryPoint = "MIX_Linked_Version", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_MIX_Linked_Version(); - public static SDL.SDL_version MIX_Linked_Version() - { - SDL.SDL_version result; - IntPtr result_ptr = INTERNAL_MIX_Linked_Version(); - result = (SDL.SDL_version) Marshal.PtrToStructure( - result_ptr, - typeof(SDL.SDL_version) - ); - return result; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_Init(MIX_InitFlags flags); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_Quit(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_OpenAudio( - int frequency, - ushort format, - int channels, - int chunksize - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_AllocateChannels(int numchans); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_QuerySpec( - out int frequency, - out ushort format, - out int channels - ); - - /* src refers to an SDL_RWops*, IntPtr to a Mix_Chunk* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr Mix_LoadWAV_RW( - IntPtr src, - int freesrc - ); - - /* IntPtr refers to a Mix_Chunk* */ - /* This is an RWops macro in the C header. */ - public static IntPtr Mix_LoadWAV(string file) - { - IntPtr rwops = SDL.SDL_RWFromFile(file, "rb"); - return Mix_LoadWAV_RW(rwops, 1); - } - - /* IntPtr refers to a Mix_Music* */ - [DllImport(nativeLibName, EntryPoint = "Mix_LoadMUS", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_Mix_LoadMUS( - byte* file - ); - public static unsafe IntPtr Mix_LoadMUS(string file) - { - byte* utf8File = SDL.Utf8EncodeHeap(file); - IntPtr handle = INTERNAL_Mix_LoadMUS( - utf8File - ); - Marshal.FreeHGlobal((IntPtr) utf8File); - return handle; - } - - /* IntPtr refers to a Mix_Chunk* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr Mix_QuickLoad_WAV( - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1)] - byte[] mem - ); - - /* IntPtr refers to a Mix_Chunk* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr Mix_QuickLoad_RAW( - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 1)] - byte[] mem, - uint len - ); - - /* chunk refers to a Mix_Chunk* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_FreeChunk(IntPtr chunk); - - /* music refers to a Mix_Music* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_FreeMusic(IntPtr music); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GetNumChunkDecoders(); - - [DllImport(nativeLibName, EntryPoint = "Mix_GetChunkDecoder", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_Mix_GetChunkDecoder(int index); - public static string Mix_GetChunkDecoder(int index) - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetChunkDecoder(index) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GetNumMusicDecoders(); - - [DllImport(nativeLibName, EntryPoint = "Mix_GetMusicDecoder", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_Mix_GetMusicDecoder(int index); - public static string Mix_GetMusicDecoder(int index) - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetMusicDecoder(index) - ); - } - - /* music refers to a Mix_Music* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Mix_MusicType Mix_GetMusicType(IntPtr music); - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "Mix_GetMusicTitle", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr INTERNAL_Mix_GetMusicTitle(IntPtr music); - public static string Mix_GetMusicTitle(IntPtr music) - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetMusicTitle(music) - ); - } - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "Mix_GetMusicTitleTag", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr INTERNAL_Mix_GetMusicTitleTag(IntPtr music); - public static string Mix_GetMusicTitleTag(IntPtr music) - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetMusicTitleTag(music) - ); - } - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "Mix_GetMusicArtistTag", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr INTERNAL_Mix_GetMusicArtistTag(IntPtr music); - public static string Mix_GetMusicArtistTag(IntPtr music) - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetMusicArtistTag(music) - ); - } - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "Mix_GetMusicAlbumTag", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr INTERNAL_Mix_GetMusicAlbumTag(IntPtr music); - public static string Mix_GetMusicAlbumTag(IntPtr music) - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetMusicAlbumTag(music) - ); - } - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "Mix_GetMusicCopyrightTag", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr INTERNAL_Mix_GetMusicCopyrightTag(IntPtr music); - public static string Mix_GetMusicCopyrightTag(IntPtr music) - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetMusicCopyrightTag(music) - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_SetPostMix( - MixFuncDelegate mix_func, - IntPtr arg // void* - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_HookMusic( - MixFuncDelegate mix_func, - IntPtr arg // void* - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_HookMusicFinished( - MusicFinishedDelegate music_finished - ); - - /* IntPtr refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr Mix_GetMusicHookData(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_ChannelFinished( - ChannelFinishedDelegate channel_finished - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_RegisterEffect( - int chan, - Mix_EffectFunc_t f, - Mix_EffectDone_t d, - IntPtr arg // void* - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_UnregisterEffect( - int channel, - Mix_EffectFunc_t f - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_UnregisterAllEffects(int channel); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_SetPanning( - int channel, - byte left, - byte right - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_SetPosition( - int channel, - short angle, - byte distance - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_SetDistance(int channel, byte distance); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_SetReverseStereo(int channel, int flip); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_ReserveChannels(int num); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GroupChannel(int which, int tag); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GroupChannels(int from, int to, int tag); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GroupAvailable(int tag); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GroupCount(int tag); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GroupOldest(int tag); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GroupNewer(int tag); - - /* chunk refers to a Mix_Chunk* */ - public static int Mix_PlayChannel( - int channel, - IntPtr chunk, - int loops - ) { - return Mix_PlayChannelTimed(channel, chunk, loops, -1); - } - - /* chunk refers to a Mix_Chunk* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_PlayChannelTimed( - int channel, - IntPtr chunk, - int loops, - int ticks - ); - - /* music refers to a Mix_Music* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_PlayMusic(IntPtr music, int loops); - - /* music refers to a Mix_Music* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_FadeInMusic( - IntPtr music, - int loops, - int ms - ); - - /* music refers to a Mix_Music* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_FadeInMusicPos( - IntPtr music, - int loops, - int ms, - double position - ); - - /* chunk refers to a Mix_Chunk* */ - public static int Mix_FadeInChannel( - int channel, - IntPtr chunk, - int loops, - int ms - ) { - return Mix_FadeInChannelTimed(channel, chunk, loops, ms, -1); - } - - /* chunk refers to a Mix_Chunk* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_FadeInChannelTimed( - int channel, - IntPtr chunk, - int loops, - int ms, - int ticks - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_Volume(int channel, int volume); - - /* chunk refers to a Mix_Chunk* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_VolumeChunk( - IntPtr chunk, - int volume - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_VolumeMusic(int volume); - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GetVolumeMusicStream(IntPtr music); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_HaltChannel(int channel); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_HaltGroup(int tag); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_HaltMusic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_ExpireChannel(int channel, int ticks); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_FadeOutChannel(int which, int ms); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_FadeOutGroup(int tag, int ms); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_FadeOutMusic(int ms); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Mix_Fading Mix_FadingMusic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Mix_Fading Mix_FadingChannel(int which); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_Pause(int channel); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_Resume(int channel); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_Paused(int channel); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_PauseMusic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_ResumeMusic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_RewindMusic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_PausedMusic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_SetMusicPosition(double position); - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern double Mix_GetMusicPosition(IntPtr music); - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern double Mix_MusicDuration(IntPtr music); - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern double Mix_GetMusicLoopStartTime(IntPtr music); - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern double Mix_GetMusicLoopEndTime(IntPtr music); - - /* music refers to a Mix_Music* - * Only available in 2.0.5 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern double Mix_GetMusicLoopLengthTime(IntPtr music); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_Playing(int channel); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_PlayingMusic(); - - [DllImport(nativeLibName, EntryPoint = "Mix_SetMusicCMD", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_Mix_SetMusicCMD( - byte* command - ); - public static unsafe int Mix_SetMusicCMD(string command) - { - byte* utf8Cmd = SDL.Utf8EncodeHeap(command); - int result = INTERNAL_Mix_SetMusicCMD( - utf8Cmd - ); - Marshal.FreeHGlobal((IntPtr) utf8Cmd); - return result; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_SetSynchroValue(int value); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_GetSynchroValue(); - - [DllImport(nativeLibName, EntryPoint = "Mix_SetSoundFonts", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_Mix_SetSoundFonts( - byte* paths - ); - public static unsafe int Mix_SetSoundFonts(string paths) - { - byte* utf8Paths = SDL.Utf8EncodeHeap(paths); - int result = INTERNAL_Mix_SetSoundFonts( - utf8Paths - ); - Marshal.FreeHGlobal((IntPtr) utf8Paths); - return result; - } - - [DllImport(nativeLibName, EntryPoint = "Mix_GetSoundFonts", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_Mix_GetSoundFonts(); - public static string Mix_GetSoundFonts() - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetSoundFonts() - ); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_EachSoundFont( - SoundFontDelegate function, - IntPtr data // void* - ); - - /* Only available in 2.0.5 or later. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int Mix_SetTimidityCfg( - [In()] [MarshalAs(UnmanagedType.LPStr)] - string path - ); - - /* Only available in 2.0.5 or later. */ - [DllImport(nativeLibName, EntryPoint = "Mix_GetTimidityCfg", CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr INTERNAL_Mix_GetTimidityCfg(); - public static string Mix_GetTimidityCfg() - { - return SDL.UTF8_ToManaged( - INTERNAL_Mix_GetTimidityCfg() - ); - } - - /* IntPtr refers to a Mix_Chunk* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr Mix_GetChunk(int channel); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void Mix_CloseAudio(); - - public static string Mix_GetError() - { - return SDL.SDL_GetError(); - } - - public static void Mix_SetError(string fmtAndArglist) - { - SDL.SDL_SetError(fmtAndArglist); - } - - public static void Mix_ClearError() - { - SDL.SDL_ClearError(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_ttf.cs b/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_ttf.cs deleted file mode 100644 index 4bbadb84..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/SDL2-CS/src/SDL2_ttf.cs +++ /dev/null @@ -1,769 +0,0 @@ -#region License -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace SDL2 -{ - public static class SDL_ttf - { - #region SDL2# Variables - - /* Used by DllImport to load the native library. */ - private const string nativeLibName = "SDL2_ttf"; - - #endregion - - #region SDL_ttf.h - - /* Similar to the headers, this is the version we're expecting to be - * running with. You will likely want to check this somewhere in your - * program! - */ - public const int SDL_TTF_MAJOR_VERSION = 2; - public const int SDL_TTF_MINOR_VERSION = 0; - public const int SDL_TTF_PATCHLEVEL = 16; - - public const int UNICODE_BOM_NATIVE = 0xFEFF; - public const int UNICODE_BOM_SWAPPED = 0xFFFE; - - public const int TTF_STYLE_NORMAL = 0x00; - public const int TTF_STYLE_BOLD = 0x01; - public const int TTF_STYLE_ITALIC = 0x02; - public const int TTF_STYLE_UNDERLINE = 0x04; - public const int TTF_STYLE_STRIKETHROUGH = 0x08; - - public const int TTF_HINTING_NORMAL = 0; - public const int TTF_HINTING_LIGHT = 1; - public const int TTF_HINTING_MONO = 2; - public const int TTF_HINTING_NONE = 3; - public const int TTF_HINTING_LIGHT_SUBPIXEL = 4; /* >= 2.0.16 */ - - public static void SDL_TTF_VERSION(out SDL.SDL_version X) - { - X.major = SDL_TTF_MAJOR_VERSION; - X.minor = SDL_TTF_MINOR_VERSION; - X.patch = SDL_TTF_PATCHLEVEL; - } - - [DllImport(nativeLibName, EntryPoint = "TTF_LinkedVersion", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_TTF_LinkedVersion(); - public static SDL.SDL_version TTF_LinkedVersion() - { - SDL.SDL_version result; - IntPtr result_ptr = INTERNAL_TTF_LinkedVersion(); - result = (SDL.SDL_version) Marshal.PtrToStructure( - result_ptr, - typeof(SDL.SDL_version) - ); - return result; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void TTF_ByteSwappedUNICODE(int swapped); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_Init(); - - /* IntPtr refers to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_OpenFont", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_TTF_OpenFont( - byte* file, - int ptsize - ); - public static unsafe IntPtr TTF_OpenFont(string file, int ptsize) - { - byte* utf8File = SDL.Utf8EncodeHeap(file); - IntPtr handle = INTERNAL_TTF_OpenFont( - utf8File, - ptsize - ); - Marshal.FreeHGlobal((IntPtr) utf8File); - return handle; - } - - /* src refers to an SDL_RWops*, IntPtr to a TTF_Font* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_OpenFontRW( - IntPtr src, - int freesrc, - int ptsize - ); - - /* IntPtr refers to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_OpenFontIndex", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_TTF_OpenFontIndex( - byte* file, - int ptsize, - long index - ); - public static unsafe IntPtr TTF_OpenFontIndex( - string file, - int ptsize, - long index - ) { - byte* utf8File = SDL.Utf8EncodeHeap(file); - IntPtr handle = INTERNAL_TTF_OpenFontIndex( - utf8File, - ptsize, - index - ); - Marshal.FreeHGlobal((IntPtr) utf8File); - return handle; - } - - /* src refers to an SDL_RWops*, IntPtr to a TTF_Font* */ - /* THIS IS A PUBLIC RWops FUNCTION! */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_OpenFontIndexRW( - IntPtr src, - int freesrc, - int ptsize, - long index - ); - - /* font refers to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_SetFontSize( - IntPtr font, - int ptsize - ); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GetFontStyle(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void TTF_SetFontStyle(IntPtr font, int style); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GetFontOutline(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void TTF_SetFontOutline(IntPtr font, int outline); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GetFontHinting(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void TTF_SetFontHinting(IntPtr font, int hinting); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_FontHeight(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_FontAscent(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_FontDescent(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_FontLineSkip(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GetFontKerning(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void TTF_SetFontKerning(IntPtr font, int allowed); - - /* font refers to a TTF_Font*. - * IntPtr is actually a C long! This ignores Win64! - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_FontFaces(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_FontFaceIsFixedWidth(IntPtr font); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_FontFaceFamilyName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_TTF_FontFaceFamilyName( - IntPtr font - ); - public static string TTF_FontFaceFamilyName(IntPtr font) - { - return SDL.UTF8_ToManaged( - INTERNAL_TTF_FontFaceFamilyName(font) - ); - } - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_FontFaceStyleName", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_TTF_FontFaceStyleName( - IntPtr font - ); - public static string TTF_FontFaceStyleName(IntPtr font) - { - return SDL.UTF8_ToManaged( - INTERNAL_TTF_FontFaceStyleName(font) - ); - } - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GlyphIsProvided(IntPtr font, ushort ch); - - /* font refers to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GlyphIsProvided32(IntPtr font, uint ch); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GlyphMetrics( - IntPtr font, - ushort ch, - out int minx, - out int maxx, - out int miny, - out int maxy, - out int advance - ); - - /* font refers to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GlyphMetrics32( - IntPtr font, - uint ch, - out int minx, - out int maxx, - out int miny, - out int maxy, - out int advance - ); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_SizeText( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - out int w, - out int h - ); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_SizeUTF8", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe int INTERNAL_TTF_SizeUTF8( - IntPtr font, - byte* text, - out int w, - out int h - ); - public static unsafe int TTF_SizeUTF8( - IntPtr font, - string text, - out int w, - out int h - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - int result = INTERNAL_TTF_SizeUTF8( - font, - utf8Text, - out w, - out h - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_SizeUNICODE( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - out int w, - out int h - ); - - /* font refers to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_MeasureText( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - int measure_width, - out int extent, - out int count - ); - - /* font refers to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "TTF_MeasureUTF8", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe int INTERNAL_TTF_MeasureUTF8( - IntPtr font, - byte* text, - int measure_width, - out int extent, - out int count - ); - public static unsafe int TTF_MeasureUTF8( - IntPtr font, - string text, - int measure_width, - out int extent, - out int count - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - int result = INTERNAL_TTF_MeasureUTF8( - font, - utf8Text, - measure_width, - out extent, - out count - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* font refers to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_MeasureUNICODE( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - int measure_width, - out int extent, - out int count - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderText_Solid( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - SDL.SDL_Color fg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Solid", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Solid( - IntPtr font, - byte* text, - SDL.SDL_Color fg - ); - public static unsafe IntPtr TTF_RenderUTF8_Solid( - IntPtr font, - string text, - SDL.SDL_Color fg - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - IntPtr result = INTERNAL_TTF_RenderUTF8_Solid( - font, - utf8Text, - fg - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderUNICODE_Solid( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - SDL.SDL_Color fg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderText_Solid_Wrapped( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - SDL.SDL_Color fg, - uint wrapLength - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Solid_Wrapped", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Solid_Wrapped( - IntPtr font, - byte* text, - SDL.SDL_Color fg, - uint wrapLength - ); - public static unsafe IntPtr TTF_RenderUTF8_Solid_Wrapped( - IntPtr font, - string text, - SDL.SDL_Color fg, - uint wrapLength - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - IntPtr result = INTERNAL_TTF_RenderUTF8_Solid_Wrapped( - font, - utf8Text, - fg, - wrapLength - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderUNICODE_Solid_Wrapped( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - SDL.SDL_Color fg, - uint wrapLength - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderGlyph_Solid( - IntPtr font, - ushort ch, - SDL.SDL_Color fg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderGlyph32_Solid( - IntPtr font, - uint ch, - SDL.SDL_Color fg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderText_Shaded( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - SDL.SDL_Color fg, - SDL.SDL_Color bg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Shaded", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Shaded( - IntPtr font, - byte* text, - SDL.SDL_Color fg, - SDL.SDL_Color bg - ); - public static unsafe IntPtr TTF_RenderUTF8_Shaded( - IntPtr font, - string text, - SDL.SDL_Color fg, - SDL.SDL_Color bg - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - IntPtr result = INTERNAL_TTF_RenderUTF8_Shaded( - font, - utf8Text, - fg, - bg - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderUNICODE_Shaded( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - SDL.SDL_Color fg, - SDL.SDL_Color bg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderText_Shaded_Wrapped( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - SDL.SDL_Color fg, - SDL.SDL_Color bg, - uint wrapLength - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Shaded_Wrapped", CallingConvention = CallingConvention.Cdecl)] - public static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Shaded_Wrapped( - IntPtr font, - byte* text, - SDL.SDL_Color fg, - SDL.SDL_Color bg, - uint wrapLength - ); - public static unsafe IntPtr TTF_RenderUTF8_Shaded_Wrapped( - IntPtr font, - string text, - SDL.SDL_Color fg, - SDL.SDL_Color bg, - uint wrapLength - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - IntPtr result = INTERNAL_TTF_RenderUTF8_Shaded_Wrapped( - font, - utf8Text, - fg, - bg, - wrapLength - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderUNICODE_Shaded_Wrapped( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - SDL.SDL_Color fg, - SDL.SDL_Color bg, - uint wrapLength - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderGlyph_Shaded( - IntPtr font, - ushort ch, - SDL.SDL_Color fg, - SDL.SDL_Color bg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderGlyph32_Shaded( - IntPtr font, - uint ch, - SDL.SDL_Color fg, - SDL.SDL_Color bg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderText_Blended( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - SDL.SDL_Color fg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Blended", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Blended( - IntPtr font, - byte* text, - SDL.SDL_Color fg - ); - public static unsafe IntPtr TTF_RenderUTF8_Blended( - IntPtr font, - string text, - SDL.SDL_Color fg - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - IntPtr result = INTERNAL_TTF_RenderUTF8_Blended( - font, - utf8Text, - fg - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderUNICODE_Blended( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - SDL.SDL_Color fg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderText_Blended_Wrapped( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPStr)] - string text, - SDL.SDL_Color fg, - uint wrapped - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, EntryPoint = "TTF_RenderUTF8_Blended_Wrapped", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe IntPtr INTERNAL_TTF_RenderUTF8_Blended_Wrapped( - IntPtr font, - byte* text, - SDL.SDL_Color fg, - uint wrapped - ); - public static unsafe IntPtr TTF_RenderUTF8_Blended_Wrapped( - IntPtr font, - string text, - SDL.SDL_Color fg, - uint wrapped - ) { - byte* utf8Text = SDL.Utf8EncodeHeap(text); - IntPtr result = INTERNAL_TTF_RenderUTF8_Blended_Wrapped( - font, - utf8Text, - fg, - wrapped - ); - Marshal.FreeHGlobal((IntPtr) utf8Text); - return result; - } - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderUNICODE_Blended_Wrapped( - IntPtr font, - [In()] [MarshalAs(UnmanagedType.LPWStr)] - string text, - SDL.SDL_Color fg, - uint wrapped - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderGlyph_Blended( - IntPtr font, - ushort ch, - SDL.SDL_Color fg - ); - - /* IntPtr refers to an SDL_Surface*, font to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr TTF_RenderGlyph32_Blended( - IntPtr font, - uint ch, - SDL.SDL_Color fg - ); - - /* Only available in 2.0.16 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_SetDirection(int direction); - - /* Only available in 2.0.16 or higher. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_SetScript(int script); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void TTF_CloseFont(IntPtr font); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void TTF_Quit(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_WasInit(); - - /* font refers to a TTF_Font* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetFontKerningSize( - IntPtr font, - int prev_index, - int index - ); - - /* font refers to a TTF_Font* - * Only available in 2.0.15 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GetFontKerningSizeGlyphs( - IntPtr font, - ushort previous_ch, - ushort ch - ); - - /* font refers to a TTF_Font* - * Only available in 2.0.16 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int TTF_GetFontKerningSizeGlyphs32( - IntPtr font, - ushort previous_ch, - ushort ch - ); - - public static string TTF_GetError() - { - return SDL.SDL_GetError(); - } - - public static void TTF_SetError(string fmtAndArglist) - { - SDL.SDL_SetError(fmtAndArglist); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/.github/FUNDING.yml b/RE/Commit2/ThirdParty/fna/lib/Theorafile/.github/FUNDING.yml deleted file mode 100644 index aef30d32..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/.github/FUNDING.yml +++ /dev/null @@ -1 +0,0 @@ -github: [flibitijibibo] diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/.gitignore b/RE/Commit2/ThirdParty/fna/lib/Theorafile/.gitignore deleted file mode 100644 index c30f457c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -.DS_Store -xcuserdata/ -*.xcworkspace/ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/Makefile b/RE/Commit2/ThirdParty/fna/lib/Theorafile/Makefile deleted file mode 100644 index 1f0724fc..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/Makefile +++ /dev/null @@ -1,101 +0,0 @@ -# Makefile for Theorafile -# Written by Ethan "flibitijibibo" Lee - -# Detect cross targets -TRIPLET=$(shell $(CC) -dumpmachine) -WINDOWS_TARGET=0 -APPLE_TARGET=0 -ifeq ($(OS), Windows_NT) # cygwin/msys2 - WINDOWS_TARGET=1 -endif -ifneq (,$(findstring w64-mingw32,$(TRIPLET))) - WINDOWS_TARGET=1 -endif -ifneq (,$(findstring w64-windows,$(TRIPLET))) - WINDOWS_TARGET=1 -endif -ifneq (,$(findstring apple-darwin,$(TRIPLET))) - APPLE_TARGET=1 -endif -ifneq (,$(findstring x86_64,$(TRIPLET))) - DEFINES += -DOC_X86_ASM -DOC_X86_64_ASM -endif -ifneq (,$(findstring i686,$(TRIPLET))) - DEFINES += -DOC_X86_ASM -endif - -# Compiler -ifeq ($(WINDOWS_TARGET),1) - TARGET = dll - LDFLAGS += -static-libgcc -else ifeq ($(APPLE_TARGET),1) - CC += -mmacosx-version-min=10.9 - TARGET = dylib - CFLAGS += -fpic -fPIC - LDFLAGS += -install_name @rpath/libtheorafile.dylib -else - TARGET = so - CFLAGS += -fpic -fPIC -endif - -CFLAGS += -O3 - -SRCDIR = $(dir $(MAKEFILE_LIST)) - -vpath %.c $(SRCDIR) - -# Includes -INCLUDES = -I$(SRCDIR) -I$(SRCDIR)/lib -I$(SRCDIR)/lib/ogg -I$(SRCDIR)/lib/vorbis -I$(SRCDIR)/lib/theora - -# Source -TFSRC = \ - theorafile.c \ - lib/ogg/bitwise.c \ - lib/ogg/framing.c \ - lib/vorbis/analysis.c \ - lib/vorbis/bitrate.c \ - lib/vorbis/block.c \ - lib/vorbis/codebook.c \ - lib/vorbis/envelope.c \ - lib/vorbis/floor0.c \ - lib/vorbis/floor1.c \ - lib/vorbis/vinfo.c \ - lib/vorbis/lookup.c \ - lib/vorbis/lpc.c \ - lib/vorbis/lsp.c \ - lib/vorbis/mapping0.c \ - lib/vorbis/mdct.c \ - lib/vorbis/psy.c \ - lib/vorbis/registry.c \ - lib/vorbis/res0.c \ - lib/vorbis/sharedbook.c \ - lib/vorbis/smallft.c \ - lib/vorbis/synthesis.c \ - lib/vorbis/window.c \ - lib/theora/apiwrapper.c \ - lib/theora/bitpack.c \ - lib/theora/decapiwrapper.c \ - lib/theora/decinfo.c \ - lib/theora/decode.c \ - lib/theora/dequant.c \ - lib/theora/fragment.c \ - lib/theora/huffdec.c \ - lib/theora/idct.c \ - lib/theora/tinfo.c \ - lib/theora/internal.c \ - lib/theora/quant.c \ - lib/theora/state.c \ - lib/theora/x86/mmxfrag.c \ - lib/theora/x86/mmxidct.c \ - lib/theora/x86/mmxstate.c \ - lib/theora/x86/x86state.c - -# Targets -all: $(TFSRC) - $(CC) $(CFLAGS) -shared -o libtheorafile.$(TARGET) $^ $(INCLUDES) $(DEFINES) -lm $(LDFLAGS) - -clean: - rm -f libtheorafile.$(TARGET) - -test: - $(CC) -g -o theorafile-test sdl2test/sdl2test.c $(TFSRC) $(INCLUDES) $(DEFINES) `sdl2-config --cflags --libs` -lm diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/README b/RE/Commit2/ThirdParty/fna/lib/Theorafile/README deleted file mode 100644 index 520caf3f..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/README +++ /dev/null @@ -1,33 +0,0 @@ -This is Theorafile, a library for quickly and easily decoding Ogg Theora videos. - -Project Website: https://github.com/FNA-XNA/Theorafile - -License -------- -Theorafile is released under the zlib license. - -libogg/libvorbis/libtheora are released under the BSD license. - -See the licenses/ folder for details. - -About Theorafile ----------------- -Theorafile was written to be used for FNA's VideoPlayer. We access this library -via Theorafile#, which you can find in the 'csharp/' directory. - -Dependencies ------------- -Theorafile depends solely on the C runtime. libogg, libvorbis, and libtheoradec -are statically linked into Theorafile. - -Theorafile's "sdl2test" test program requires SDL2. - -Building Theorafile -------------------- -For *nix platforms, just type `make` in the root directory! - -For Windows, see the 'visualc/' directory. - -For Xbox One, see the 'visualc-winrt/' directory. - -For iOS/tvOS, see the 'Xcode-iOS/' directory. diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/Xcode-iOS/README b/RE/Commit2/ThirdParty/fna/lib/Theorafile/Xcode-iOS/README deleted file mode 100644 index 0fec70ae..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/Xcode-iOS/README +++ /dev/null @@ -1,8 +0,0 @@ -Building Theorafile for iOS/tvOS --------------------------------- -Theorafile uses Xcode to build on iOS and tvOS. - -Compiling ---------- -1. Build theorafile.xcodeproj -2. Grab the output libtheorafile.a, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/Xcode-iOS/theorafile.xcodeproj/project.pbxproj b/RE/Commit2/ThirdParty/fna/lib/Theorafile/Xcode-iOS/theorafile.xcodeproj/project.pbxproj deleted file mode 100644 index c34028f2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/Xcode-iOS/theorafile.xcodeproj/project.pbxproj +++ /dev/null @@ -1,783 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 50; - objects = { - -/* Begin PBXBuildFile section */ - 7B2FB809219117A40087816E /* theorafile.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB807219117A40087816E /* theorafile.c */; }; - 7B2FBA1921911F170087816E /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A221911F170087816E /* framing.c */; }; - 7B2FBA1A21911F170087816E /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A421911F170087816E /* bitwise.c */; }; - 7B2FBA1B21911F170087816E /* vinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A621911F170087816E /* vinfo.c */; }; - 7B2FBA1C21911F170087816E /* res0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A821911F170087816E /* res0.c */; }; - 7B2FBA1D21911F170087816E /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A921911F170087816E /* block.c */; }; - 7B2FBA1E21911F170087816E /* lookup.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9AA21911F170087816E /* lookup.c */; }; - 7B2FBA1F21911F170087816E /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C021911F170087816E /* mdct.c */; }; - 7B2FBA2021911F170087816E /* envelope.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C221911F170087816E /* envelope.c */; }; - 7B2FBA2121911F170087816E /* analysis.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C421911F170087816E /* analysis.c */; }; - 7B2FBA2221911F170087816E /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C521911F170087816E /* codebook.c */; }; - 7B2FBA2321911F170087816E /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C621911F170087816E /* floor0.c */; }; - 7B2FBA2421911F170087816E /* bitrate.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C921911F170087816E /* bitrate.c */; }; - 7B2FBA2521911F170087816E /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9D321911F170087816E /* psy.c */; }; - 7B2FBA2621911F170087816E /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9D721911F170087816E /* smallft.c */; }; - 7B2FBA2721911F170087816E /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9DA21911F170087816E /* sharedbook.c */; }; - 7B2FBA2821911F170087816E /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9DB21911F170087816E /* floor1.c */; }; - 7B2FBA2921911F170087816E /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9DD21911F170087816E /* synthesis.c */; }; - 7B2FBA2A21911F170087816E /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E121911F170087816E /* mapping0.c */; }; - 7B2FBA2B21911F170087816E /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E321911F170087816E /* lpc.c */; }; - 7B2FBA2C21911F170087816E /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E521911F170087816E /* lsp.c */; }; - 7B2FBA2D21911F170087816E /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E621911F170087816E /* registry.c */; }; - 7B2FBA2E21911F170087816E /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E721911F170087816E /* window.c */; }; - 7B2FBA2F21911F170087816E /* fragment.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9EC21911F170087816E /* fragment.c */; }; - 7B2FBA3021911F170087816E /* tinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9EE21911F170087816E /* tinfo.c */; }; - 7B2FBA3121911F170087816E /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F121911F170087816E /* cpu.c */; }; - 7B2FBA3221911F170087816E /* state.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F521911F170087816E /* state.c */; }; - 7B2FBA3321911F170087816E /* decinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F721911F170087816E /* decinfo.c */; }; - 7B2FBA3421911F170087816E /* decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F921911F170087816E /* decode.c */; }; - 7B2FBA3521911F170087816E /* dequant.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9FA21911F170087816E /* dequant.c */; }; - 7B2FBA3621911F170087816E /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9FC21911F170087816E /* internal.c */; }; - 7B2FBA3721911F170087816E /* apiwrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9FE21911F170087816E /* apiwrapper.c */; }; - 7B2FBA3C21911F170087816E /* decapiwrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0721911F170087816E /* decapiwrapper.c */; }; - 7B2FBA3D21911F170087816E /* bitpack.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0921911F170087816E /* bitpack.c */; }; - 7B2FBA3E21911F170087816E /* idct.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0A21911F170087816E /* idct.c */; }; - 7B2FBA3F21911F170087816E /* quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0B21911F170087816E /* quant.c */; }; - 7B2FBA4421911F170087816E /* huffdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA1621911F170087816E /* huffdec.c */; }; - 7BFBC8EA219367B900837E89 /* framing.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A221911F170087816E /* framing.c */; }; - 7BFBC8EB219367B900837E89 /* bitwise.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A421911F170087816E /* bitwise.c */; }; - 7BFBC8EC219367B900837E89 /* analysis.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C421911F170087816E /* analysis.c */; }; - 7BFBC8ED219367B900837E89 /* bitrate.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C921911F170087816E /* bitrate.c */; }; - 7BFBC8EE219367B900837E89 /* block.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A921911F170087816E /* block.c */; }; - 7BFBC8EF219367B900837E89 /* codebook.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C521911F170087816E /* codebook.c */; }; - 7BFBC8F0219367B900837E89 /* envelope.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C221911F170087816E /* envelope.c */; }; - 7BFBC8F1219367B900837E89 /* floor0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C621911F170087816E /* floor0.c */; }; - 7BFBC8F2219367B900837E89 /* floor1.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9DB21911F170087816E /* floor1.c */; }; - 7BFBC8F3219367B900837E89 /* lookup.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9AA21911F170087816E /* lookup.c */; }; - 7BFBC8F4219367B900837E89 /* lpc.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E321911F170087816E /* lpc.c */; }; - 7BFBC8F5219367B900837E89 /* lsp.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E521911F170087816E /* lsp.c */; }; - 7BFBC8F6219367B900837E89 /* mapping0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E121911F170087816E /* mapping0.c */; }; - 7BFBC8F7219367B900837E89 /* mdct.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9C021911F170087816E /* mdct.c */; }; - 7BFBC8F8219367B900837E89 /* psy.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9D321911F170087816E /* psy.c */; }; - 7BFBC8F9219367B900837E89 /* registry.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E621911F170087816E /* registry.c */; }; - 7BFBC8FA219367B900837E89 /* res0.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A821911F170087816E /* res0.c */; }; - 7BFBC8FB219367B900837E89 /* sharedbook.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9DA21911F170087816E /* sharedbook.c */; }; - 7BFBC8FC219367B900837E89 /* smallft.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9D721911F170087816E /* smallft.c */; }; - 7BFBC8FD219367B900837E89 /* synthesis.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9DD21911F170087816E /* synthesis.c */; }; - 7BFBC8FE219367B900837E89 /* vinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9A621911F170087816E /* vinfo.c */; }; - 7BFBC8FF219367B900837E89 /* window.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9E721911F170087816E /* window.c */; }; - 7BFBC900219367B900837E89 /* fragment.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9EC21911F170087816E /* fragment.c */; }; - 7BFBC901219367B900837E89 /* tinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9EE21911F170087816E /* tinfo.c */; }; - 7BFBC902219367B900837E89 /* cpu.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F121911F170087816E /* cpu.c */; }; - 7BFBC903219367B900837E89 /* state.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F521911F170087816E /* state.c */; }; - 7BFBC904219367B900837E89 /* decinfo.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F721911F170087816E /* decinfo.c */; }; - 7BFBC905219367B900837E89 /* decode.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9F921911F170087816E /* decode.c */; }; - 7BFBC906219367B900837E89 /* dequant.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9FA21911F170087816E /* dequant.c */; }; - 7BFBC907219367B900837E89 /* internal.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9FC21911F170087816E /* internal.c */; }; - 7BFBC908219367B900837E89 /* apiwrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB9FE21911F170087816E /* apiwrapper.c */; }; - 7BFBC909219367B900837E89 /* decapiwrapper.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0721911F170087816E /* decapiwrapper.c */; }; - 7BFBC90A219367B900837E89 /* bitpack.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0921911F170087816E /* bitpack.c */; }; - 7BFBC90B219367B900837E89 /* idct.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0A21911F170087816E /* idct.c */; }; - 7BFBC90C219367B900837E89 /* quant.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA0B21911F170087816E /* quant.c */; }; - 7BFBC90D219367B900837E89 /* huffdec.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FBA1621911F170087816E /* huffdec.c */; }; - 7BFBC90E219367B900837E89 /* theorafile.c in Sources */ = {isa = PBXBuildFile; fileRef = 7B2FB807219117A40087816E /* theorafile.c */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 7B2FB6AE2191169C0087816E /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7BFBC87D219366FA00837E89 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = "include/$(PRODUCT_NAME)"; - dstSubfolderSpec = 16; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 7B2FB6B02191169C0087816E /* libtheorafile.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libtheorafile.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 7B2FB807219117A40087816E /* theorafile.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = theorafile.c; path = ../theorafile.c; sourceTree = ""; }; - 7B2FB808219117A40087816E /* theorafile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = theorafile.h; path = ../theorafile.h; sourceTree = ""; }; - 7B2FB9A121911F170087816E /* ogg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ogg.h; sourceTree = ""; }; - 7B2FB9A221911F170087816E /* framing.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = framing.c; sourceTree = ""; }; - 7B2FB9A321911F170087816E /* os_types.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os_types.h; sourceTree = ""; }; - 7B2FB9A421911F170087816E /* bitwise.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitwise.c; sourceTree = ""; }; - 7B2FB9A621911F170087816E /* vinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = vinfo.c; sourceTree = ""; }; - 7B2FB9A721911F170087816E /* smallft.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = smallft.h; sourceTree = ""; }; - 7B2FB9A821911F170087816E /* res0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = res0.c; sourceTree = ""; }; - 7B2FB9A921911F170087816E /* block.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = block.c; sourceTree = ""; }; - 7B2FB9AA21911F170087816E /* lookup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lookup.c; sourceTree = ""; }; - 7B2FB9AC21911F170087816E /* psych_44.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = psych_44.h; sourceTree = ""; }; - 7B2FB9AD21911F170087816E /* setup_11.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_11.h; sourceTree = ""; }; - 7B2FB9AE21911F170087816E /* setup_44u.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_44u.h; sourceTree = ""; }; - 7B2FB9AF21911F170087816E /* setup_8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_8.h; sourceTree = ""; }; - 7B2FB9B021911F170087816E /* residue_8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = residue_8.h; sourceTree = ""; }; - 7B2FB9B121911F170087816E /* residue_44p51.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = residue_44p51.h; sourceTree = ""; }; - 7B2FB9B221911F170087816E /* residue_44.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = residue_44.h; sourceTree = ""; }; - 7B2FB9B321911F170087816E /* setup_16.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_16.h; sourceTree = ""; }; - 7B2FB9B421911F170087816E /* setup_22.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_22.h; sourceTree = ""; }; - 7B2FB9B521911F170087816E /* psych_16.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = psych_16.h; sourceTree = ""; }; - 7B2FB9B621911F170087816E /* psych_8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = psych_8.h; sourceTree = ""; }; - 7B2FB9B721911F170087816E /* setup_44p51.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_44p51.h; sourceTree = ""; }; - 7B2FB9B821911F170087816E /* floor_all.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = floor_all.h; sourceTree = ""; }; - 7B2FB9B921911F170087816E /* setup_32.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_32.h; sourceTree = ""; }; - 7B2FB9BA21911F170087816E /* residue_44u.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = residue_44u.h; sourceTree = ""; }; - 7B2FB9BB21911F170087816E /* setup_44.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_44.h; sourceTree = ""; }; - 7B2FB9BC21911F170087816E /* residue_16.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = residue_16.h; sourceTree = ""; }; - 7B2FB9BD21911F170087816E /* psych_11.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = psych_11.h; sourceTree = ""; }; - 7B2FB9BE21911F170087816E /* setup_X.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = setup_X.h; sourceTree = ""; }; - 7B2FB9BF21911F170087816E /* misc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = misc.h; sourceTree = ""; }; - 7B2FB9C021911F170087816E /* mdct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mdct.c; sourceTree = ""; }; - 7B2FB9C121911F170087816E /* os.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = os.h; sourceTree = ""; }; - 7B2FB9C221911F170087816E /* envelope.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = envelope.c; sourceTree = ""; }; - 7B2FB9C321911F170087816E /* window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = window.h; sourceTree = ""; }; - 7B2FB9C421911F170087816E /* analysis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = analysis.c; sourceTree = ""; }; - 7B2FB9C521911F170087816E /* codebook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = codebook.c; sourceTree = ""; }; - 7B2FB9C621911F170087816E /* floor0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = floor0.c; sourceTree = ""; }; - 7B2FB9C721911F170087816E /* backends.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = backends.h; sourceTree = ""; }; - 7B2FB9C821911F170087816E /* lsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lsp.h; sourceTree = ""; }; - 7B2FB9C921911F170087816E /* bitrate.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitrate.c; sourceTree = ""; }; - 7B2FB9CA21911F170087816E /* registry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = registry.h; sourceTree = ""; }; - 7B2FB9CD21911F170087816E /* res_books_uncoupled.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = res_books_uncoupled.h; sourceTree = ""; }; - 7B2FB9CF21911F170087816E /* res_books_51.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = res_books_51.h; sourceTree = ""; }; - 7B2FB9D021911F170087816E /* res_books_stereo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = res_books_stereo.h; sourceTree = ""; }; - 7B2FB9D221911F170087816E /* floor_books.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = floor_books.h; sourceTree = ""; }; - 7B2FB9D321911F170087816E /* psy.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = psy.c; sourceTree = ""; }; - 7B2FB9D421911F170087816E /* lpc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lpc.h; sourceTree = ""; }; - 7B2FB9D521911F170087816E /* highlevel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = highlevel.h; sourceTree = ""; }; - 7B2FB9D621911F170087816E /* codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec.h; sourceTree = ""; }; - 7B2FB9D721911F170087816E /* smallft.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = smallft.c; sourceTree = ""; }; - 7B2FB9D821911F170087816E /* lookup_data.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lookup_data.h; sourceTree = ""; }; - 7B2FB9D921911F170087816E /* scales.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = scales.h; sourceTree = ""; }; - 7B2FB9DA21911F170087816E /* sharedbook.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = sharedbook.c; sourceTree = ""; }; - 7B2FB9DB21911F170087816E /* floor1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = floor1.c; sourceTree = ""; }; - 7B2FB9DC21911F170087816E /* lookup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = lookup.h; sourceTree = ""; }; - 7B2FB9DD21911F170087816E /* synthesis.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = synthesis.c; sourceTree = ""; }; - 7B2FB9DE21911F170087816E /* envelope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = envelope.h; sourceTree = ""; }; - 7B2FB9DF21911F170087816E /* masking.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = masking.h; sourceTree = ""; }; - 7B2FB9E021911F170087816E /* mdct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = mdct.h; sourceTree = ""; }; - 7B2FB9E121911F170087816E /* mapping0.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = mapping0.c; sourceTree = ""; }; - 7B2FB9E221911F170087816E /* psy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = psy.h; sourceTree = ""; }; - 7B2FB9E321911F170087816E /* lpc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lpc.c; sourceTree = ""; }; - 7B2FB9E421911F170087816E /* bitrate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitrate.h; sourceTree = ""; }; - 7B2FB9E521911F170087816E /* lsp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = lsp.c; sourceTree = ""; }; - 7B2FB9E621911F170087816E /* registry.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = registry.c; sourceTree = ""; }; - 7B2FB9E721911F170087816E /* window.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = window.c; sourceTree = ""; }; - 7B2FB9E821911F170087816E /* codec_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec_internal.h; sourceTree = ""; }; - 7B2FB9E921911F170087816E /* codebook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codebook.h; sourceTree = ""; }; - 7B2FB9EC21911F170087816E /* fragment.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = fragment.c; sourceTree = ""; }; - 7B2FB9ED21911F170087816E /* apiwrapper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = apiwrapper.h; sourceTree = ""; }; - 7B2FB9EE21911F170087816E /* tinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = tinfo.c; sourceTree = ""; }; - 7B2FB9EF21911F170087816E /* internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = internal.h; sourceTree = ""; }; - 7B2FB9F021911F170087816E /* theora.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = theora.h; sourceTree = ""; }; - 7B2FB9F121911F170087816E /* cpu.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cpu.c; sourceTree = ""; }; - 7B2FB9F221911F170087816E /* dct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dct.h; sourceTree = ""; }; - 7B2FB9F321911F170087816E /* quant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = quant.h; sourceTree = ""; }; - 7B2FB9F421911F170087816E /* ocintrin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ocintrin.h; sourceTree = ""; }; - 7B2FB9F521911F170087816E /* state.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = state.c; sourceTree = ""; }; - 7B2FB9F621911F170087816E /* bitpack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bitpack.h; sourceTree = ""; }; - 7B2FB9F721911F170087816E /* decinfo.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decinfo.c; sourceTree = ""; }; - 7B2FB9F821911F170087816E /* huffdec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = huffdec.h; sourceTree = ""; }; - 7B2FB9F921911F170087816E /* decode.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decode.c; sourceTree = ""; }; - 7B2FB9FA21911F170087816E /* dequant.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = dequant.c; sourceTree = ""; }; - 7B2FB9FB21911F170087816E /* theoradec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = theoradec.h; sourceTree = ""; }; - 7B2FB9FC21911F170087816E /* internal.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = internal.c; sourceTree = ""; }; - 7B2FB9FD21911F170087816E /* codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = codec.h; sourceTree = ""; }; - 7B2FB9FE21911F170087816E /* apiwrapper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = apiwrapper.c; sourceTree = ""; }; - 7B2FBA0721911F170087816E /* decapiwrapper.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decapiwrapper.c; sourceTree = ""; }; - 7B2FBA0821911F170087816E /* cpu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cpu.h; sourceTree = ""; }; - 7B2FBA0921911F170087816E /* bitpack.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bitpack.c; sourceTree = ""; }; - 7B2FBA0A21911F170087816E /* idct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = idct.c; sourceTree = ""; }; - 7B2FBA0B21911F170087816E /* quant.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = quant.c; sourceTree = ""; }; - 7B2FBA0C21911F170087816E /* huffman.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = huffman.h; sourceTree = ""; }; - 7B2FBA1521911F170087816E /* theoraenc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = theoraenc.h; sourceTree = ""; }; - 7B2FBA1621911F170087816E /* huffdec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = huffdec.c; sourceTree = ""; }; - 7B2FBA1721911F170087816E /* decint.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = decint.h; sourceTree = ""; }; - 7B2FBA1821911F170087816E /* dequant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dequant.h; sourceTree = ""; }; - 7BFBC87F219366FA00837E89 /* libtheorafile-tv.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libtheorafile-tv.a"; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7B2FB6AD2191169C0087816E /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7BFBC87C219366FA00837E89 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7B2FB6A72191169C0087816E = { - isa = PBXGroup; - children = ( - 7B2FB762219117860087816E /* Library Source */, - 7B2FB6B12191169C0087816E /* Products */, - ); - sourceTree = ""; - }; - 7B2FB6B12191169C0087816E /* Products */ = { - isa = PBXGroup; - children = ( - 7B2FB6B02191169C0087816E /* libtheorafile.a */, - 7BFBC87F219366FA00837E89 /* libtheorafile-tv.a */, - ); - name = Products; - sourceTree = ""; - }; - 7B2FB762219117860087816E /* Library Source */ = { - isa = PBXGroup; - children = ( - 7B2FB99F21911F170087816E /* lib */, - 7B2FB807219117A40087816E /* theorafile.c */, - 7B2FB808219117A40087816E /* theorafile.h */, - ); - name = "Library Source"; - sourceTree = ""; - }; - 7B2FB99F21911F170087816E /* lib */ = { - isa = PBXGroup; - children = ( - 7B2FB9A021911F170087816E /* ogg */, - 7B2FB9A521911F170087816E /* vorbis */, - 7B2FB9EB21911F170087816E /* theora */, - ); - name = lib; - path = ../lib; - sourceTree = ""; - }; - 7B2FB9A021911F170087816E /* ogg */ = { - isa = PBXGroup; - children = ( - 7B2FB9A121911F170087816E /* ogg.h */, - 7B2FB9A221911F170087816E /* framing.c */, - 7B2FB9A321911F170087816E /* os_types.h */, - 7B2FB9A421911F170087816E /* bitwise.c */, - ); - path = ogg; - sourceTree = ""; - }; - 7B2FB9A521911F170087816E /* vorbis */ = { - isa = PBXGroup; - children = ( - 7B2FB9C421911F170087816E /* analysis.c */, - 7B2FB9C721911F170087816E /* backends.h */, - 7B2FB9C921911F170087816E /* bitrate.c */, - 7B2FB9E421911F170087816E /* bitrate.h */, - 7B2FB9A921911F170087816E /* block.c */, - 7B2FB9CB21911F170087816E /* books */, - 7B2FB9C521911F170087816E /* codebook.c */, - 7B2FB9E921911F170087816E /* codebook.h */, - 7B2FB9E821911F170087816E /* codec_internal.h */, - 7B2FB9D621911F170087816E /* codec.h */, - 7B2FB9C221911F170087816E /* envelope.c */, - 7B2FB9DE21911F170087816E /* envelope.h */, - 7B2FB9C621911F170087816E /* floor0.c */, - 7B2FB9DB21911F170087816E /* floor1.c */, - 7B2FB9D521911F170087816E /* highlevel.h */, - 7B2FB9D821911F170087816E /* lookup_data.h */, - 7B2FB9AA21911F170087816E /* lookup.c */, - 7B2FB9DC21911F170087816E /* lookup.h */, - 7B2FB9E321911F170087816E /* lpc.c */, - 7B2FB9D421911F170087816E /* lpc.h */, - 7B2FB9E521911F170087816E /* lsp.c */, - 7B2FB9C821911F170087816E /* lsp.h */, - 7B2FB9E121911F170087816E /* mapping0.c */, - 7B2FB9DF21911F170087816E /* masking.h */, - 7B2FB9C021911F170087816E /* mdct.c */, - 7B2FB9E021911F170087816E /* mdct.h */, - 7B2FB9BF21911F170087816E /* misc.h */, - 7B2FB9AB21911F170087816E /* modes */, - 7B2FB9C121911F170087816E /* os.h */, - 7B2FB9D321911F170087816E /* psy.c */, - 7B2FB9E221911F170087816E /* psy.h */, - 7B2FB9E621911F170087816E /* registry.c */, - 7B2FB9CA21911F170087816E /* registry.h */, - 7B2FB9A821911F170087816E /* res0.c */, - 7B2FB9D921911F170087816E /* scales.h */, - 7B2FB9DA21911F170087816E /* sharedbook.c */, - 7B2FB9D721911F170087816E /* smallft.c */, - 7B2FB9A721911F170087816E /* smallft.h */, - 7B2FB9DD21911F170087816E /* synthesis.c */, - 7B2FB9A621911F170087816E /* vinfo.c */, - 7B2FB9E721911F170087816E /* window.c */, - 7B2FB9C321911F170087816E /* window.h */, - ); - path = vorbis; - sourceTree = ""; - }; - 7B2FB9AB21911F170087816E /* modes */ = { - isa = PBXGroup; - children = ( - 7B2FB9AC21911F170087816E /* psych_44.h */, - 7B2FB9AD21911F170087816E /* setup_11.h */, - 7B2FB9AE21911F170087816E /* setup_44u.h */, - 7B2FB9AF21911F170087816E /* setup_8.h */, - 7B2FB9B021911F170087816E /* residue_8.h */, - 7B2FB9B121911F170087816E /* residue_44p51.h */, - 7B2FB9B221911F170087816E /* residue_44.h */, - 7B2FB9B321911F170087816E /* setup_16.h */, - 7B2FB9B421911F170087816E /* setup_22.h */, - 7B2FB9B521911F170087816E /* psych_16.h */, - 7B2FB9B621911F170087816E /* psych_8.h */, - 7B2FB9B721911F170087816E /* setup_44p51.h */, - 7B2FB9B821911F170087816E /* floor_all.h */, - 7B2FB9B921911F170087816E /* setup_32.h */, - 7B2FB9BA21911F170087816E /* residue_44u.h */, - 7B2FB9BB21911F170087816E /* setup_44.h */, - 7B2FB9BC21911F170087816E /* residue_16.h */, - 7B2FB9BD21911F170087816E /* psych_11.h */, - 7B2FB9BE21911F170087816E /* setup_X.h */, - ); - path = modes; - sourceTree = ""; - }; - 7B2FB9CB21911F170087816E /* books */ = { - isa = PBXGroup; - children = ( - 7B2FB9CC21911F170087816E /* uncoupled */, - 7B2FB9CE21911F170087816E /* coupled */, - 7B2FB9D121911F170087816E /* floor */, - ); - path = books; - sourceTree = ""; - }; - 7B2FB9CC21911F170087816E /* uncoupled */ = { - isa = PBXGroup; - children = ( - 7B2FB9CD21911F170087816E /* res_books_uncoupled.h */, - ); - path = uncoupled; - sourceTree = ""; - }; - 7B2FB9CE21911F170087816E /* coupled */ = { - isa = PBXGroup; - children = ( - 7B2FB9CF21911F170087816E /* res_books_51.h */, - 7B2FB9D021911F170087816E /* res_books_stereo.h */, - ); - path = coupled; - sourceTree = ""; - }; - 7B2FB9D121911F170087816E /* floor */ = { - isa = PBXGroup; - children = ( - 7B2FB9D221911F170087816E /* floor_books.h */, - ); - path = floor; - sourceTree = ""; - }; - 7B2FB9EB21911F170087816E /* theora */ = { - isa = PBXGroup; - children = ( - 7B2FB9EC21911F170087816E /* fragment.c */, - 7B2FB9ED21911F170087816E /* apiwrapper.h */, - 7B2FB9EE21911F170087816E /* tinfo.c */, - 7B2FB9EF21911F170087816E /* internal.h */, - 7B2FB9F021911F170087816E /* theora.h */, - 7B2FB9F121911F170087816E /* cpu.c */, - 7B2FB9F221911F170087816E /* dct.h */, - 7B2FB9F321911F170087816E /* quant.h */, - 7B2FB9F421911F170087816E /* ocintrin.h */, - 7B2FB9F521911F170087816E /* state.c */, - 7B2FB9F621911F170087816E /* bitpack.h */, - 7B2FB9F721911F170087816E /* decinfo.c */, - 7B2FB9F821911F170087816E /* huffdec.h */, - 7B2FB9F921911F170087816E /* decode.c */, - 7B2FB9FA21911F170087816E /* dequant.c */, - 7B2FB9FB21911F170087816E /* theoradec.h */, - 7B2FB9FC21911F170087816E /* internal.c */, - 7B2FB9FD21911F170087816E /* codec.h */, - 7B2FB9FE21911F170087816E /* apiwrapper.c */, - 7B2FBA0721911F170087816E /* decapiwrapper.c */, - 7B2FBA0821911F170087816E /* cpu.h */, - 7B2FBA0921911F170087816E /* bitpack.c */, - 7B2FBA0A21911F170087816E /* idct.c */, - 7B2FBA0B21911F170087816E /* quant.c */, - 7B2FBA0C21911F170087816E /* huffman.h */, - 7B2FBA1521911F170087816E /* theoraenc.h */, - 7B2FBA1621911F170087816E /* huffdec.c */, - 7B2FBA1721911F170087816E /* decint.h */, - 7B2FBA1821911F170087816E /* dequant.h */, - ); - path = theora; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7B2FB6AF2191169C0087816E /* theorafile */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7B2FB6B92191169C0087816E /* Build configuration list for PBXNativeTarget "theorafile" */; - buildPhases = ( - 7B2FB6AC2191169C0087816E /* Sources */, - 7B2FB6AD2191169C0087816E /* Frameworks */, - 7B2FB6AE2191169C0087816E /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = theorafile; - productName = Theorafile; - productReference = 7B2FB6B02191169C0087816E /* libtheorafile.a */; - productType = "com.apple.product-type.library.static"; - }; - 7BFBC87E219366FA00837E89 /* theorafile-tv */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7BFBC887219366FA00837E89 /* Build configuration list for PBXNativeTarget "theorafile-tv" */; - buildPhases = ( - 7BFBC87B219366FA00837E89 /* Sources */, - 7BFBC87C219366FA00837E89 /* Frameworks */, - 7BFBC87D219366FA00837E89 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "theorafile-tv"; - productName = "theorafile-tv"; - productReference = 7BFBC87F219366FA00837E89 /* libtheorafile-tv.a */; - productType = "com.apple.product-type.library.static"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7B2FB6A82191169C0087816E /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 1010; - TargetAttributes = { - 7B2FB6AF2191169C0087816E = { - CreatedOnToolsVersion = 10.1; - }; - 7BFBC87E219366FA00837E89 = { - CreatedOnToolsVersion = 10.1; - }; - }; - }; - buildConfigurationList = 7B2FB6AB2191169C0087816E /* Build configuration list for PBXProject "theorafile" */; - compatibilityVersion = "Xcode 9.3"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - ); - mainGroup = 7B2FB6A72191169C0087816E; - productRefGroup = 7B2FB6B12191169C0087816E /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7B2FB6AF2191169C0087816E /* theorafile */, - 7BFBC87E219366FA00837E89 /* theorafile-tv */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 7B2FB6AC2191169C0087816E /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7B2FBA1E21911F170087816E /* lookup.c in Sources */, - 7B2FBA1C21911F170087816E /* res0.c in Sources */, - 7B2FBA1921911F170087816E /* framing.c in Sources */, - 7B2FBA2C21911F170087816E /* lsp.c in Sources */, - 7B2FBA2221911F170087816E /* codebook.c in Sources */, - 7B2FBA3621911F170087816E /* internal.c in Sources */, - 7B2FBA2621911F170087816E /* smallft.c in Sources */, - 7B2FBA3221911F170087816E /* state.c in Sources */, - 7B2FB809219117A40087816E /* theorafile.c in Sources */, - 7B2FBA2F21911F170087816E /* fragment.c in Sources */, - 7B2FBA1D21911F170087816E /* block.c in Sources */, - 7B2FBA3E21911F170087816E /* idct.c in Sources */, - 7B2FBA2D21911F170087816E /* registry.c in Sources */, - 7B2FBA2521911F170087816E /* psy.c in Sources */, - 7B2FBA2821911F170087816E /* floor1.c in Sources */, - 7B2FBA3F21911F170087816E /* quant.c in Sources */, - 7B2FBA1B21911F170087816E /* vinfo.c in Sources */, - 7B2FBA2E21911F170087816E /* window.c in Sources */, - 7B2FBA3121911F170087816E /* cpu.c in Sources */, - 7B2FBA3521911F170087816E /* dequant.c in Sources */, - 7B2FBA3C21911F170087816E /* decapiwrapper.c in Sources */, - 7B2FBA2A21911F170087816E /* mapping0.c in Sources */, - 7B2FBA1A21911F170087816E /* bitwise.c in Sources */, - 7B2FBA3321911F170087816E /* decinfo.c in Sources */, - 7B2FBA2121911F170087816E /* analysis.c in Sources */, - 7B2FBA3421911F170087816E /* decode.c in Sources */, - 7B2FBA2B21911F170087816E /* lpc.c in Sources */, - 7B2FBA3721911F170087816E /* apiwrapper.c in Sources */, - 7B2FBA2421911F170087816E /* bitrate.c in Sources */, - 7B2FBA1F21911F170087816E /* mdct.c in Sources */, - 7B2FBA4421911F170087816E /* huffdec.c in Sources */, - 7B2FBA3021911F170087816E /* tinfo.c in Sources */, - 7B2FBA3D21911F170087816E /* bitpack.c in Sources */, - 7B2FBA2021911F170087816E /* envelope.c in Sources */, - 7B2FBA2321911F170087816E /* floor0.c in Sources */, - 7B2FBA2921911F170087816E /* synthesis.c in Sources */, - 7B2FBA2721911F170087816E /* sharedbook.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 7BFBC87B219366FA00837E89 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7BFBC8EA219367B900837E89 /* framing.c in Sources */, - 7BFBC8EB219367B900837E89 /* bitwise.c in Sources */, - 7BFBC8EC219367B900837E89 /* analysis.c in Sources */, - 7BFBC8ED219367B900837E89 /* bitrate.c in Sources */, - 7BFBC8EE219367B900837E89 /* block.c in Sources */, - 7BFBC8EF219367B900837E89 /* codebook.c in Sources */, - 7BFBC8F0219367B900837E89 /* envelope.c in Sources */, - 7BFBC8F1219367B900837E89 /* floor0.c in Sources */, - 7BFBC8F2219367B900837E89 /* floor1.c in Sources */, - 7BFBC8F3219367B900837E89 /* lookup.c in Sources */, - 7BFBC8F4219367B900837E89 /* lpc.c in Sources */, - 7BFBC8F5219367B900837E89 /* lsp.c in Sources */, - 7BFBC8F6219367B900837E89 /* mapping0.c in Sources */, - 7BFBC8F7219367B900837E89 /* mdct.c in Sources */, - 7BFBC8F8219367B900837E89 /* psy.c in Sources */, - 7BFBC8F9219367B900837E89 /* registry.c in Sources */, - 7BFBC8FA219367B900837E89 /* res0.c in Sources */, - 7BFBC8FB219367B900837E89 /* sharedbook.c in Sources */, - 7BFBC8FC219367B900837E89 /* smallft.c in Sources */, - 7BFBC8FD219367B900837E89 /* synthesis.c in Sources */, - 7BFBC8FE219367B900837E89 /* vinfo.c in Sources */, - 7BFBC8FF219367B900837E89 /* window.c in Sources */, - 7BFBC900219367B900837E89 /* fragment.c in Sources */, - 7BFBC901219367B900837E89 /* tinfo.c in Sources */, - 7BFBC902219367B900837E89 /* cpu.c in Sources */, - 7BFBC903219367B900837E89 /* state.c in Sources */, - 7BFBC904219367B900837E89 /* decinfo.c in Sources */, - 7BFBC905219367B900837E89 /* decode.c in Sources */, - 7BFBC906219367B900837E89 /* dequant.c in Sources */, - 7BFBC907219367B900837E89 /* internal.c in Sources */, - 7BFBC908219367B900837E89 /* apiwrapper.c in Sources */, - 7BFBC909219367B900837E89 /* decapiwrapper.c in Sources */, - 7BFBC90A219367B900837E89 /* bitpack.c in Sources */, - 7BFBC90B219367B900837E89 /* idct.c in Sources */, - 7BFBC90C219367B900837E89 /* quant.c in Sources */, - 7BFBC90D219367B900837E89 /* huffdec.c in Sources */, - 7BFBC90E219367B900837E89 /* theorafile.c in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7B2FB6B72191169C0087816E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - TVOS_DEPLOYMENT_TARGET = 9.0; - }; - name = Debug; - }; - 7B2FB6B82191169C0087816E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = iphoneos; - TVOS_DEPLOYMENT_TARGET = 9.0; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7B2FB6BA2191169C0087816E /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - HEADER_SEARCH_PATHS = ../lib; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 7B2FB6BB2191169C0087816E /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - HEADER_SEARCH_PATHS = ../lib; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 7BFBC885219366FA00837E89 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - HEADER_SEARCH_PATHS = ../lib; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Debug; - }; - 7BFBC886219366FA00837E89 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - HEADER_SEARCH_PATHS = ../lib; - OTHER_LDFLAGS = "-ObjC"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SKIP_INSTALL = YES; - TARGETED_DEVICE_FAMILY = 3; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7B2FB6AB2191169C0087816E /* Build configuration list for PBXProject "theorafile" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B2FB6B72191169C0087816E /* Debug */, - 7B2FB6B82191169C0087816E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7B2FB6B92191169C0087816E /* Build configuration list for PBXNativeTarget "theorafile" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7B2FB6BA2191169C0087816E /* Debug */, - 7B2FB6BB2191169C0087816E /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7BFBC887219366FA00837E89 /* Build configuration list for PBXNativeTarget "theorafile-tv" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7BFBC885219366FA00837E89 /* Debug */, - 7BFBC886219366FA00837E89 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7B2FB6A82191169C0087816E /* Project object */; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/LICENSE b/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/LICENSE deleted file mode 100644 index 7334f69b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -/* Theorafile# - C# Wrapper for Theorafile - * - * Copyright (c) 2017-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Makefile b/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Makefile deleted file mode 100644 index 862b0a0a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Makefile +++ /dev/null @@ -1,9 +0,0 @@ -# Makefile for Theorafile# -# Written by Ethan "flibitijibibo" Lee - -build: clean - mkdir bin - mcs /unsafe -debug -out:bin/Theorafile-CS.dll -target:library Theorafile.cs - -clean: - rm -rf bin diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/README b/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/README deleted file mode 100644 index 066c76d9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/README +++ /dev/null @@ -1,17 +0,0 @@ -This is Theorafile#, a C# wrapper for Theorafile, a library for quickly and -easily decoding Ogg Theora videos. - -Project Website: https://github.com/FNA-XNA/Theorafile - -License -------- -Theorafile# is released under the zlib license. See LICENSE for details. - -About Theorafile# ------------------ -Theorafile# was written to be used for FNA's VideoPlayer. We wrap this around -Theorafile compiled as a shared library. - -Building Theorafile# --------------------- -Just type `make` in the root directory! diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.Core.csproj b/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.Core.csproj deleted file mode 100644 index 38f3046d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.Core.csproj +++ /dev/null @@ -1,16 +0,0 @@ - - - net40;netstandard2.0 - x64 - - - false - Theorafile-CS - Theorafile - true - false - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.csproj b/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.csproj deleted file mode 100644 index 45109665..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.csproj +++ /dev/null @@ -1,39 +0,0 @@ - - - - Debug - x86 - 9.0.21022 - 2.0 - {47CF0C2E-3710-4188-BB11-30D248B2B5FB} - Library - Theorafile - Theorafile-CS - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - x86 - false - true - - - none - false - bin\Release - prompt - 4 - x86 - false - true - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.sln b/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.sln deleted file mode 100644 index 1d3a0c6a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile-CS.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual Studio 2010 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Theorafile-CS", "Theorafile-CS.csproj", "{47CF0C2E-3710-4188-BB11-30D248B2B5FB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x86 = Debug|x86 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {47CF0C2E-3710-4188-BB11-30D248B2B5FB}.Debug|x86.ActiveCfg = Debug|x86 - {47CF0C2E-3710-4188-BB11-30D248B2B5FB}.Debug|x86.Build.0 = Debug|x86 - {47CF0C2E-3710-4188-BB11-30D248B2B5FB}.Release|x86.ActiveCfg = Release|x86 - {47CF0C2E-3710-4188-BB11-30D248B2B5FB}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(MonoDevelopProperties) = preSolution - StartupItem = Theorafile-CS.csproj - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile.cs b/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile.cs deleted file mode 100644 index 89a2cdae..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/csharp/Theorafile.cs +++ /dev/null @@ -1,273 +0,0 @@ -/* Theorafile# - C# Wrapper for Theorafile - * - * Copyright (c) 2017-2021 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#region Using Statements -using System; -using System.Runtime.InteropServices; -using System.Text; -#endregion - -public static class Theorafile -{ - #region Native Library Name - - const string nativeLibName = "libtheorafile"; - - #endregion - - #region UTF8 Marshaling - - /* Used for heap allocated string marshaling - * Returned byte* must be free'd with FreeHGlobal. - */ - private static unsafe byte* Utf8Encode(string str) - { - int bufferSize = (str.Length * 4) + 1; - byte* buffer = (byte*) Marshal.AllocHGlobal(bufferSize); - fixed (char* strPtr = str) - { - Encoding.UTF8.GetBytes( - strPtr, - str.Length + 1, - buffer, - bufferSize - ); - } - return buffer; - } - - #endregion - - #region C stdio Macros - - // Used by ov_callbacks, seek_func - public enum SeekWhence : int - { - // Add TF_ prefix to prevent C macro conflicts - TF_SEEK_SET = 0, - TF_SEEK_CUR = 1, - TF_SEEK_END = 2 - } - - #endregion - - #region Theorafile Delegates - - /* IntPtr refers to a size_t */ - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate IntPtr read_func( - IntPtr ptr, // Refers to a void* - IntPtr size, // Refers to a size_t - IntPtr nmemb, // Refers to a size_t - IntPtr datasource // Refers to a void* - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int seek_func( - IntPtr datasource, // Refers to a void* - long offset, // Refers to an ogg_int64_t - SeekWhence whence - ); - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int close_func( - IntPtr datasource // Refers to a void* - ); - - #endregion - - #region libtheora Enumerations - - public enum th_pixel_fmt - { - TH_PF_420, - TH_PF_RSVD, - TH_PF_422, - TH_PF_444, - TH_PF_NFORMATS - } - - #endregion - - #region Theorafile Structures - - [StructLayout(LayoutKind.Sequential)] - public struct tf_callbacks - { - public read_func read_func; - public seek_func seek_func; - public close_func close_func; - } - - #endregion - - #region Theorafile Implementation - - [DllImport(nativeLibName, EntryPoint = "tf_open_callbacks", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_tf_open_callbacks( - IntPtr datasource, - IntPtr file, - tf_callbacks io - ); - public static int tf_open_callbacks( - IntPtr datasource, - out IntPtr file, - tf_callbacks io - ) { - file = AllocTheoraFile(); - return INTERNAL_tf_open_callbacks(datasource, file, io); - } - - [DllImport(nativeLibName, EntryPoint = "tf_fopen", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_tf_fopen( - byte* fname, - IntPtr file - ); - [DllImport(nativeLibName, EntryPoint = "tf_fopen", CallingConvention = CallingConvention.Cdecl)] - private static extern unsafe int INTERNAL_tf_fopen( - [MarshalAs(UnmanagedType.LPStr)] string fname, - IntPtr file - ); - public static unsafe int tf_fopen(string fname, out IntPtr file) - { - file = AllocTheoraFile(); - - int result; - if (Environment.OSVersion.Platform == PlatformID.Win32NT) - { - /* Windows fopen doesn't like UTF8, use LPCSTR and pray */ - result = INTERNAL_tf_fopen(fname, file); - } - else - { - byte* utf8Fname = Utf8Encode(fname); - result = INTERNAL_tf_fopen(utf8Fname, file); - Marshal.FreeHGlobal((IntPtr) utf8Fname); - } - return result; - } - - [DllImport(nativeLibName, EntryPoint = "tf_close", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_tf_close(IntPtr file); - public static int tf_close(ref IntPtr file) - { - int result = INTERNAL_tf_close(file); - Marshal.FreeHGlobal(file); - file = IntPtr.Zero; - return result; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int tf_hasaudio(IntPtr file); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int tf_hasvideo(IntPtr file); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void tf_videoinfo( - IntPtr file, - out int width, - out int height, - out double fps, - out th_pixel_fmt fmt - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void tf_audioinfo( - IntPtr file, - out int channels, - out int samplerate - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int tf_setaudiotrack(IntPtr file, int track); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int tf_setvideotrack(IntPtr file, int track); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int tf_eos(IntPtr file); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void tf_reset(IntPtr file); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int tf_readvideo(IntPtr file, IntPtr buffer, int numframes); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int tf_readaudio(IntPtr file, IntPtr buffer, int length); - - #endregion - - #region OggTheora_File Allocator - - /* Notice that we did not implement an OggTheora_File struct, but are - * instead using a pointer natively malloc'd. - * - * C# Interop for Xiph structs is basically impossible to do, so - * we just alloc what _should_ be the full size of the structure for - * the OS and architecture, then pass that around as if that's a real - * struct. The size is just what you get from sizeof(OggTheora_File). - * - * Don't get mad at me, get mad at C#. - * - * -flibit - */ - - private static IntPtr AllocTheoraFile() - { - // Do not attempt to understand these numbers at all costs! - const int size32 = 1160; - const int size64Unix = 1472; - const int size64Windows = 1328; - - PlatformID platform = Environment.OSVersion.Platform; - if (IntPtr.Size == 4) - { - /* Technically this could be a little bit smaller, but - * some 32-bit architectures may be higher even on Unix - * targets (like ARMv7). - * -flibit - */ - return Marshal.AllocHGlobal(size32); - } - if (IntPtr.Size == 8) - { - if (platform == PlatformID.Unix) - { - return Marshal.AllocHGlobal(size64Unix); - } - else if (platform == PlatformID.Win32NT) - { - return Marshal.AllocHGlobal(size64Windows); - } - throw new NotSupportedException("Unhandled platform!"); - } - throw new NotSupportedException("Unhandled architecture!"); - } - - #endregion -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/README b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/README deleted file mode 100644 index 9345beee..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/README +++ /dev/null @@ -1,9 +0,0 @@ -This is a local copy of the Xiph libs used by Theorafile, with all the unused -files stripped out. Below are the notes for each library. - -libogg: Version 1.3.3 - - os_types.h falls back to stdint for unrecognized platforms -libvorbis: Version 1.3.6 - - info.c has been renamed to vinfo.c -libtheora: Version 1.1.1 - - info.c has been renamed to tinfo.c diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/bitwise.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/bitwise.c deleted file mode 100644 index fa2b5720..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/bitwise.c +++ /dev/null @@ -1,1088 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE Ogg CONTAINER SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2014 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: packing variable sized words into an octet stream - last mod: $Id$ - - ********************************************************************/ - -/* We're 'LSb' endian; if we write a word but read individual bits, - then we'll read the lsb first */ - -#include -#include -#include -#include - -#define BUFFER_INCREMENT 256 - -static const unsigned long mask[]= -{0x00000000,0x00000001,0x00000003,0x00000007,0x0000000f, - 0x0000001f,0x0000003f,0x0000007f,0x000000ff,0x000001ff, - 0x000003ff,0x000007ff,0x00000fff,0x00001fff,0x00003fff, - 0x00007fff,0x0000ffff,0x0001ffff,0x0003ffff,0x0007ffff, - 0x000fffff,0x001fffff,0x003fffff,0x007fffff,0x00ffffff, - 0x01ffffff,0x03ffffff,0x07ffffff,0x0fffffff,0x1fffffff, - 0x3fffffff,0x7fffffff,0xffffffff }; - -static const unsigned int mask8B[]= -{0x00,0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff}; - -void oggpack_writeinit(oggpack_buffer *b){ - memset(b,0,sizeof(*b)); - b->ptr=b->buffer=_ogg_malloc(BUFFER_INCREMENT); - b->buffer[0]='\0'; - b->storage=BUFFER_INCREMENT; -} - -void oggpackB_writeinit(oggpack_buffer *b){ - oggpack_writeinit(b); -} - -int oggpack_writecheck(oggpack_buffer *b){ - if(!b->ptr || !b->storage)return -1; - return 0; -} - -int oggpackB_writecheck(oggpack_buffer *b){ - return oggpack_writecheck(b); -} - -void oggpack_writetrunc(oggpack_buffer *b,long bits){ - long bytes=bits>>3; - if(b->ptr){ - bits-=bytes*8; - b->ptr=b->buffer+bytes; - b->endbit=bits; - b->endbyte=bytes; - *b->ptr&=mask[bits]; - } -} - -void oggpackB_writetrunc(oggpack_buffer *b,long bits){ - long bytes=bits>>3; - if(b->ptr){ - bits-=bytes*8; - b->ptr=b->buffer+bytes; - b->endbit=bits; - b->endbyte=bytes; - *b->ptr&=mask8B[bits]; - } -} - -/* Takes only up to 32 bits. */ -void oggpack_write(oggpack_buffer *b,unsigned long value,int bits){ - if(bits<0 || bits>32) goto err; - if(b->endbyte>=b->storage-4){ - void *ret; - if(!b->ptr)return; - if(b->storage>LONG_MAX-BUFFER_INCREMENT) goto err; - ret=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); - if(!ret) goto err; - b->buffer=ret; - b->storage+=BUFFER_INCREMENT; - b->ptr=b->buffer+b->endbyte; - } - - value&=mask[bits]; - bits+=b->endbit; - - b->ptr[0]|=value<endbit; - - if(bits>=8){ - b->ptr[1]=(unsigned char)(value>>(8-b->endbit)); - if(bits>=16){ - b->ptr[2]=(unsigned char)(value>>(16-b->endbit)); - if(bits>=24){ - b->ptr[3]=(unsigned char)(value>>(24-b->endbit)); - if(bits>=32){ - if(b->endbit) - b->ptr[4]=(unsigned char)(value>>(32-b->endbit)); - else - b->ptr[4]=0; - } - } - } - } - - b->endbyte+=bits/8; - b->ptr+=bits/8; - b->endbit=bits&7; - return; - err: - oggpack_writeclear(b); -} - -/* Takes only up to 32 bits. */ -void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits){ - if(bits<0 || bits>32) goto err; - if(b->endbyte>=b->storage-4){ - void *ret; - if(!b->ptr)return; - if(b->storage>LONG_MAX-BUFFER_INCREMENT) goto err; - ret=_ogg_realloc(b->buffer,b->storage+BUFFER_INCREMENT); - if(!ret) goto err; - b->buffer=ret; - b->storage+=BUFFER_INCREMENT; - b->ptr=b->buffer+b->endbyte; - } - - value=(value&mask[bits])<<(32-bits); - bits+=b->endbit; - - b->ptr[0]|=value>>(24+b->endbit); - - if(bits>=8){ - b->ptr[1]=(unsigned char)(value>>(16+b->endbit)); - if(bits>=16){ - b->ptr[2]=(unsigned char)(value>>(8+b->endbit)); - if(bits>=24){ - b->ptr[3]=(unsigned char)(value>>(b->endbit)); - if(bits>=32){ - if(b->endbit) - b->ptr[4]=(unsigned char)(value<<(8-b->endbit)); - else - b->ptr[4]=0; - } - } - } - } - - b->endbyte+=bits/8; - b->ptr+=bits/8; - b->endbit=bits&7; - return; - err: - oggpack_writeclear(b); -} - -void oggpack_writealign(oggpack_buffer *b){ - int bits=8-b->endbit; - if(bits<8) - oggpack_write(b,0,bits); -} - -void oggpackB_writealign(oggpack_buffer *b){ - int bits=8-b->endbit; - if(bits<8) - oggpackB_write(b,0,bits); -} - -static void oggpack_writecopy_helper(oggpack_buffer *b, - void *source, - long bits, - void (*w)(oggpack_buffer *, - unsigned long, - int), - int msb){ - unsigned char *ptr=(unsigned char *)source; - - long bytes=bits/8; - long pbytes=(b->endbit+bits)/8; - bits-=bytes*8; - - /* expand storage up-front */ - if(b->endbyte+pbytes>=b->storage){ - void *ret; - if(!b->ptr) goto err; - if(b->storage>b->endbyte+pbytes+BUFFER_INCREMENT) goto err; - b->storage=b->endbyte+pbytes+BUFFER_INCREMENT; - ret=_ogg_realloc(b->buffer,b->storage); - if(!ret) goto err; - b->buffer=ret; - b->ptr=b->buffer+b->endbyte; - } - - /* copy whole octets */ - if(b->endbit){ - int i; - /* unaligned copy. Do it the hard way. */ - for(i=0;iptr,source,bytes); - b->ptr+=bytes; - b->endbyte+=bytes; - *b->ptr=0; - } - - /* copy trailing bits */ - if(bits){ - if(msb) - w(b,(unsigned long)(ptr[bytes]>>(8-bits)),bits); - else - w(b,(unsigned long)(ptr[bytes]),bits); - } - return; - err: - oggpack_writeclear(b); -} - -void oggpack_writecopy(oggpack_buffer *b,void *source,long bits){ - oggpack_writecopy_helper(b,source,bits,oggpack_write,0); -} - -void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits){ - oggpack_writecopy_helper(b,source,bits,oggpackB_write,1); -} - -void oggpack_reset(oggpack_buffer *b){ - if(!b->ptr)return; - b->ptr=b->buffer; - b->buffer[0]=0; - b->endbit=b->endbyte=0; -} - -void oggpackB_reset(oggpack_buffer *b){ - oggpack_reset(b); -} - -void oggpack_writeclear(oggpack_buffer *b){ - if(b->buffer)_ogg_free(b->buffer); - memset(b,0,sizeof(*b)); -} - -void oggpackB_writeclear(oggpack_buffer *b){ - oggpack_writeclear(b); -} - -void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){ - memset(b,0,sizeof(*b)); - b->buffer=b->ptr=buf; - b->storage=bytes; -} - -void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes){ - oggpack_readinit(b,buf,bytes); -} - -/* Read in bits without advancing the bitptr; bits <= 32 */ -long oggpack_look(oggpack_buffer *b,int bits){ - unsigned long ret; - unsigned long m; - - if(bits<0 || bits>32) return -1; - m=mask[bits]; - bits+=b->endbit; - - if(b->endbyte >= b->storage-4){ - /* not the main path */ - if(b->endbyte > b->storage-((bits+7)>>3)) return -1; - /* special case to avoid reading b->ptr[0], which might be past the end of - the buffer; also skips some useless accounting */ - else if(!bits)return(0L); - } - - ret=b->ptr[0]>>b->endbit; - if(bits>8){ - ret|=b->ptr[1]<<(8-b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(16-b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(24-b->endbit); - if(bits>32 && b->endbit) - ret|=b->ptr[4]<<(32-b->endbit); - } - } - } - return(m&ret); -} - -/* Read in bits without advancing the bitptr; bits <= 32 */ -long oggpackB_look(oggpack_buffer *b,int bits){ - unsigned long ret; - int m=32-bits; - - if(m<0 || m>32) return -1; - bits+=b->endbit; - - if(b->endbyte >= b->storage-4){ - /* not the main path */ - if(b->endbyte > b->storage-((bits+7)>>3)) return -1; - /* special case to avoid reading b->ptr[0], which might be past the end of - the buffer; also skips some useless accounting */ - else if(!bits)return(0L); - } - - ret=b->ptr[0]<<(24+b->endbit); - if(bits>8){ - ret|=b->ptr[1]<<(16+b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(8+b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(b->endbit); - if(bits>32 && b->endbit) - ret|=b->ptr[4]>>(8-b->endbit); - } - } - } - return ((ret&0xffffffff)>>(m>>1))>>((m+1)>>1); -} - -long oggpack_look1(oggpack_buffer *b){ - if(b->endbyte>=b->storage)return(-1); - return((b->ptr[0]>>b->endbit)&1); -} - -long oggpackB_look1(oggpack_buffer *b){ - if(b->endbyte>=b->storage)return(-1); - return((b->ptr[0]>>(7-b->endbit))&1); -} - -void oggpack_adv(oggpack_buffer *b,int bits){ - bits+=b->endbit; - - if(b->endbyte > b->storage-((bits+7)>>3)) goto overflow; - - b->ptr+=bits/8; - b->endbyte+=bits/8; - b->endbit=bits&7; - return; - - overflow: - b->ptr=NULL; - b->endbyte=b->storage; - b->endbit=1; -} - -void oggpackB_adv(oggpack_buffer *b,int bits){ - oggpack_adv(b,bits); -} - -void oggpack_adv1(oggpack_buffer *b){ - if(++(b->endbit)>7){ - b->endbit=0; - b->ptr++; - b->endbyte++; - } -} - -void oggpackB_adv1(oggpack_buffer *b){ - oggpack_adv1(b); -} - -/* bits <= 32 */ -long oggpack_read(oggpack_buffer *b,int bits){ - long ret; - unsigned long m; - - if(bits<0 || bits>32) goto err; - m=mask[bits]; - bits+=b->endbit; - - if(b->endbyte >= b->storage-4){ - /* not the main path */ - if(b->endbyte > b->storage-((bits+7)>>3)) goto overflow; - /* special case to avoid reading b->ptr[0], which might be past the end of - the buffer; also skips some useless accounting */ - else if(!bits)return(0L); - } - - ret=b->ptr[0]>>b->endbit; - if(bits>8){ - ret|=b->ptr[1]<<(8-b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(16-b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(24-b->endbit); - if(bits>32 && b->endbit){ - ret|=b->ptr[4]<<(32-b->endbit); - } - } - } - } - ret&=m; - b->ptr+=bits/8; - b->endbyte+=bits/8; - b->endbit=bits&7; - return ret; - - overflow: - err: - b->ptr=NULL; - b->endbyte=b->storage; - b->endbit=1; - return -1L; -} - -/* bits <= 32 */ -long oggpackB_read(oggpack_buffer *b,int bits){ - long ret; - long m=32-bits; - - if(m<0 || m>32) goto err; - bits+=b->endbit; - - if(b->endbyte+4>=b->storage){ - /* not the main path */ - if(b->endbyte > b->storage-((bits+7)>>3)) goto overflow; - /* special case to avoid reading b->ptr[0], which might be past the end of - the buffer; also skips some useless accounting */ - else if(!bits)return(0L); - } - - ret=b->ptr[0]<<(24+b->endbit); - if(bits>8){ - ret|=b->ptr[1]<<(16+b->endbit); - if(bits>16){ - ret|=b->ptr[2]<<(8+b->endbit); - if(bits>24){ - ret|=b->ptr[3]<<(b->endbit); - if(bits>32 && b->endbit) - ret|=b->ptr[4]>>(8-b->endbit); - } - } - } - ret=((ret&0xffffffffUL)>>(m>>1))>>((m+1)>>1); - - b->ptr+=bits/8; - b->endbyte+=bits/8; - b->endbit=bits&7; - return ret; - - overflow: - err: - b->ptr=NULL; - b->endbyte=b->storage; - b->endbit=1; - return -1L; -} - -long oggpack_read1(oggpack_buffer *b){ - long ret; - - if(b->endbyte >= b->storage) goto overflow; - ret=(b->ptr[0]>>b->endbit)&1; - - b->endbit++; - if(b->endbit>7){ - b->endbit=0; - b->ptr++; - b->endbyte++; - } - return ret; - - overflow: - b->ptr=NULL; - b->endbyte=b->storage; - b->endbit=1; - return -1L; -} - -long oggpackB_read1(oggpack_buffer *b){ - long ret; - - if(b->endbyte >= b->storage) goto overflow; - ret=(b->ptr[0]>>(7-b->endbit))&1; - - b->endbit++; - if(b->endbit>7){ - b->endbit=0; - b->ptr++; - b->endbyte++; - } - return ret; - - overflow: - b->ptr=NULL; - b->endbyte=b->storage; - b->endbit=1; - return -1L; -} - -long oggpack_bytes(oggpack_buffer *b){ - return(b->endbyte+(b->endbit+7)/8); -} - -long oggpack_bits(oggpack_buffer *b){ - return(b->endbyte*8+b->endbit); -} - -long oggpackB_bytes(oggpack_buffer *b){ - return oggpack_bytes(b); -} - -long oggpackB_bits(oggpack_buffer *b){ - return oggpack_bits(b); -} - -unsigned char *oggpack_get_buffer(oggpack_buffer *b){ - return(b->buffer); -} - -unsigned char *oggpackB_get_buffer(oggpack_buffer *b){ - return oggpack_get_buffer(b); -} - -/* Self test of the bitwise routines; everything else is based on - them, so they damned well better be solid. */ - -#ifdef _V_SELFTEST -#include - -static int ilog(unsigned int v){ - int ret=0; - while(v){ - ret++; - v>>=1; - } - return(ret); -} - -oggpack_buffer o; -oggpack_buffer r; - -void report(char *in){ - fprintf(stderr,"%s",in); - exit(1); -} - -void cliptest(unsigned long *b,int vals,int bits,int *comp,int compsize){ - long bytes,i; - unsigned char *buffer; - - oggpack_reset(&o); - for(i=0;i -#include -#include -#include - -/* A complete description of Ogg framing exists in docs/framing.html */ - -int ogg_page_version(const ogg_page *og){ - return((int)(og->header[4])); -} - -int ogg_page_continued(const ogg_page *og){ - return((int)(og->header[5]&0x01)); -} - -int ogg_page_bos(const ogg_page *og){ - return((int)(og->header[5]&0x02)); -} - -int ogg_page_eos(const ogg_page *og){ - return((int)(og->header[5]&0x04)); -} - -ogg_int64_t ogg_page_granulepos(const ogg_page *og){ - unsigned char *page=og->header; - ogg_int64_t granulepos=page[13]&(0xff); - granulepos= (granulepos<<8)|(page[12]&0xff); - granulepos= (granulepos<<8)|(page[11]&0xff); - granulepos= (granulepos<<8)|(page[10]&0xff); - granulepos= (granulepos<<8)|(page[9]&0xff); - granulepos= (granulepos<<8)|(page[8]&0xff); - granulepos= (granulepos<<8)|(page[7]&0xff); - granulepos= (granulepos<<8)|(page[6]&0xff); - return(granulepos); -} - -int ogg_page_serialno(const ogg_page *og){ - return(og->header[14] | - (og->header[15]<<8) | - (og->header[16]<<16) | - (og->header[17]<<24)); -} - -long ogg_page_pageno(const ogg_page *og){ - return(og->header[18] | - (og->header[19]<<8) | - (og->header[20]<<16) | - (og->header[21]<<24)); -} - - - -/* returns the number of packets that are completed on this page (if - the leading packet is begun on a previous page, but ends on this - page, it's counted */ - -/* NOTE: - If a page consists of a packet begun on a previous page, and a new - packet begun (but not completed) on this page, the return will be: - ogg_page_packets(page) ==1, - ogg_page_continued(page) !=0 - - If a page happens to be a single packet that was begun on a - previous page, and spans to the next page (in the case of a three or - more page packet), the return will be: - ogg_page_packets(page) ==0, - ogg_page_continued(page) !=0 -*/ - -int ogg_page_packets(const ogg_page *og){ - int i,n=og->header[26],count=0; - for(i=0;iheader[27+i]<255)count++; - return(count); -} - - -#if 0 -/* helper to initialize lookup for direct-table CRC (illustrative; we - use the static init below) */ - -static ogg_uint32_t _ogg_crc_entry(unsigned long index){ - int i; - unsigned long r; - - r = index << 24; - for (i=0; i<8; i++) - if (r & 0x80000000UL) - r = (r << 1) ^ 0x04c11db7; /* The same as the ethernet generator - polynomial, although we use an - unreflected alg and an init/final - of 0, not 0xffffffff */ - else - r<<=1; - return (r & 0xffffffffUL); -} -#endif - -static const ogg_uint32_t crc_lookup[256]={ - 0x00000000,0x04c11db7,0x09823b6e,0x0d4326d9, - 0x130476dc,0x17c56b6b,0x1a864db2,0x1e475005, - 0x2608edb8,0x22c9f00f,0x2f8ad6d6,0x2b4bcb61, - 0x350c9b64,0x31cd86d3,0x3c8ea00a,0x384fbdbd, - 0x4c11db70,0x48d0c6c7,0x4593e01e,0x4152fda9, - 0x5f15adac,0x5bd4b01b,0x569796c2,0x52568b75, - 0x6a1936c8,0x6ed82b7f,0x639b0da6,0x675a1011, - 0x791d4014,0x7ddc5da3,0x709f7b7a,0x745e66cd, - 0x9823b6e0,0x9ce2ab57,0x91a18d8e,0x95609039, - 0x8b27c03c,0x8fe6dd8b,0x82a5fb52,0x8664e6e5, - 0xbe2b5b58,0xbaea46ef,0xb7a96036,0xb3687d81, - 0xad2f2d84,0xa9ee3033,0xa4ad16ea,0xa06c0b5d, - 0xd4326d90,0xd0f37027,0xddb056fe,0xd9714b49, - 0xc7361b4c,0xc3f706fb,0xceb42022,0xca753d95, - 0xf23a8028,0xf6fb9d9f,0xfbb8bb46,0xff79a6f1, - 0xe13ef6f4,0xe5ffeb43,0xe8bccd9a,0xec7dd02d, - 0x34867077,0x30476dc0,0x3d044b19,0x39c556ae, - 0x278206ab,0x23431b1c,0x2e003dc5,0x2ac12072, - 0x128e9dcf,0x164f8078,0x1b0ca6a1,0x1fcdbb16, - 0x018aeb13,0x054bf6a4,0x0808d07d,0x0cc9cdca, - 0x7897ab07,0x7c56b6b0,0x71159069,0x75d48dde, - 0x6b93dddb,0x6f52c06c,0x6211e6b5,0x66d0fb02, - 0x5e9f46bf,0x5a5e5b08,0x571d7dd1,0x53dc6066, - 0x4d9b3063,0x495a2dd4,0x44190b0d,0x40d816ba, - 0xaca5c697,0xa864db20,0xa527fdf9,0xa1e6e04e, - 0xbfa1b04b,0xbb60adfc,0xb6238b25,0xb2e29692, - 0x8aad2b2f,0x8e6c3698,0x832f1041,0x87ee0df6, - 0x99a95df3,0x9d684044,0x902b669d,0x94ea7b2a, - 0xe0b41de7,0xe4750050,0xe9362689,0xedf73b3e, - 0xf3b06b3b,0xf771768c,0xfa325055,0xfef34de2, - 0xc6bcf05f,0xc27dede8,0xcf3ecb31,0xcbffd686, - 0xd5b88683,0xd1799b34,0xdc3abded,0xd8fba05a, - 0x690ce0ee,0x6dcdfd59,0x608edb80,0x644fc637, - 0x7a089632,0x7ec98b85,0x738aad5c,0x774bb0eb, - 0x4f040d56,0x4bc510e1,0x46863638,0x42472b8f, - 0x5c007b8a,0x58c1663d,0x558240e4,0x51435d53, - 0x251d3b9e,0x21dc2629,0x2c9f00f0,0x285e1d47, - 0x36194d42,0x32d850f5,0x3f9b762c,0x3b5a6b9b, - 0x0315d626,0x07d4cb91,0x0a97ed48,0x0e56f0ff, - 0x1011a0fa,0x14d0bd4d,0x19939b94,0x1d528623, - 0xf12f560e,0xf5ee4bb9,0xf8ad6d60,0xfc6c70d7, - 0xe22b20d2,0xe6ea3d65,0xeba91bbc,0xef68060b, - 0xd727bbb6,0xd3e6a601,0xdea580d8,0xda649d6f, - 0xc423cd6a,0xc0e2d0dd,0xcda1f604,0xc960ebb3, - 0xbd3e8d7e,0xb9ff90c9,0xb4bcb610,0xb07daba7, - 0xae3afba2,0xaafbe615,0xa7b8c0cc,0xa379dd7b, - 0x9b3660c6,0x9ff77d71,0x92b45ba8,0x9675461f, - 0x8832161a,0x8cf30bad,0x81b02d74,0x857130c3, - 0x5d8a9099,0x594b8d2e,0x5408abf7,0x50c9b640, - 0x4e8ee645,0x4a4ffbf2,0x470cdd2b,0x43cdc09c, - 0x7b827d21,0x7f436096,0x7200464f,0x76c15bf8, - 0x68860bfd,0x6c47164a,0x61043093,0x65c52d24, - 0x119b4be9,0x155a565e,0x18197087,0x1cd86d30, - 0x029f3d35,0x065e2082,0x0b1d065b,0x0fdc1bec, - 0x3793a651,0x3352bbe6,0x3e119d3f,0x3ad08088, - 0x2497d08d,0x2056cd3a,0x2d15ebe3,0x29d4f654, - 0xc5a92679,0xc1683bce,0xcc2b1d17,0xc8ea00a0, - 0xd6ad50a5,0xd26c4d12,0xdf2f6bcb,0xdbee767c, - 0xe3a1cbc1,0xe760d676,0xea23f0af,0xeee2ed18, - 0xf0a5bd1d,0xf464a0aa,0xf9278673,0xfde69bc4, - 0x89b8fd09,0x8d79e0be,0x803ac667,0x84fbdbd0, - 0x9abc8bd5,0x9e7d9662,0x933eb0bb,0x97ffad0c, - 0xafb010b1,0xab710d06,0xa6322bdf,0xa2f33668, - 0xbcb4666d,0xb8757bda,0xb5365d03,0xb1f740b4}; - -/* init the encode/decode logical stream state */ - -int ogg_stream_init(ogg_stream_state *os,int serialno){ - if(os){ - memset(os,0,sizeof(*os)); - os->body_storage=16*1024; - os->lacing_storage=1024; - - os->body_data=_ogg_malloc(os->body_storage*sizeof(*os->body_data)); - os->lacing_vals=_ogg_malloc(os->lacing_storage*sizeof(*os->lacing_vals)); - os->granule_vals=_ogg_malloc(os->lacing_storage*sizeof(*os->granule_vals)); - - if(!os->body_data || !os->lacing_vals || !os->granule_vals){ - ogg_stream_clear(os); - return -1; - } - - os->serialno=serialno; - - return(0); - } - return(-1); -} - -/* async/delayed error detection for the ogg_stream_state */ -int ogg_stream_check(ogg_stream_state *os){ - if(!os || !os->body_data) return -1; - return 0; -} - -/* _clear does not free os, only the non-flat storage within */ -int ogg_stream_clear(ogg_stream_state *os){ - if(os){ - if(os->body_data)_ogg_free(os->body_data); - if(os->lacing_vals)_ogg_free(os->lacing_vals); - if(os->granule_vals)_ogg_free(os->granule_vals); - - memset(os,0,sizeof(*os)); - } - return(0); -} - -int ogg_stream_destroy(ogg_stream_state *os){ - if(os){ - ogg_stream_clear(os); - _ogg_free(os); - } - return(0); -} - -/* Helpers for ogg_stream_encode; this keeps the structure and - what's happening fairly clear */ - -static int _os_body_expand(ogg_stream_state *os,long needed){ - if(os->body_storage-needed<=os->body_fill){ - long body_storage; - void *ret; - if(os->body_storage>LONG_MAX-needed){ - ogg_stream_clear(os); - return -1; - } - body_storage=os->body_storage+needed; - if(body_storagebody_data,body_storage*sizeof(*os->body_data)); - if(!ret){ - ogg_stream_clear(os); - return -1; - } - os->body_storage=body_storage; - os->body_data=ret; - } - return 0; -} - -static int _os_lacing_expand(ogg_stream_state *os,long needed){ - if(os->lacing_storage-needed<=os->lacing_fill){ - long lacing_storage; - void *ret; - if(os->lacing_storage>LONG_MAX-needed){ - ogg_stream_clear(os); - return -1; - } - lacing_storage=os->lacing_storage+needed; - if(lacing_storagelacing_vals,lacing_storage*sizeof(*os->lacing_vals)); - if(!ret){ - ogg_stream_clear(os); - return -1; - } - os->lacing_vals=ret; - ret=_ogg_realloc(os->granule_vals,lacing_storage* - sizeof(*os->granule_vals)); - if(!ret){ - ogg_stream_clear(os); - return -1; - } - os->granule_vals=ret; - os->lacing_storage=lacing_storage; - } - return 0; -} - -/* checksum the page */ -/* Direct table CRC; note that this will be faster in the future if we - perform the checksum simultaneously with other copies */ - -void ogg_page_checksum_set(ogg_page *og){ - if(og){ - ogg_uint32_t crc_reg=0; - int i; - - /* safety; needed for API behavior, but not framing code */ - og->header[22]=0; - og->header[23]=0; - og->header[24]=0; - og->header[25]=0; - - for(i=0;iheader_len;i++) - crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->header[i]]; - for(i=0;ibody_len;i++) - crc_reg=(crc_reg<<8)^crc_lookup[((crc_reg >> 24)&0xff)^og->body[i]]; - - og->header[22]=(unsigned char)(crc_reg&0xff); - og->header[23]=(unsigned char)((crc_reg>>8)&0xff); - og->header[24]=(unsigned char)((crc_reg>>16)&0xff); - og->header[25]=(unsigned char)((crc_reg>>24)&0xff); - } -} - -/* submit data to the internal buffer of the framing engine */ -int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, int count, - long e_o_s, ogg_int64_t granulepos){ - - long bytes = 0, lacing_vals; - int i; - - if(ogg_stream_check(os)) return -1; - if(!iov) return 0; - - for (i = 0; i < count; ++i){ - if(iov[i].iov_len>LONG_MAX) return -1; - if(bytes>LONG_MAX-(long)iov[i].iov_len) return -1; - bytes += (long)iov[i].iov_len; - } - lacing_vals=bytes/255+1; - - if(os->body_returned){ - /* advance packet data according to the body_returned pointer. We - had to keep it around to return a pointer into the buffer last - call */ - - os->body_fill-=os->body_returned; - if(os->body_fill) - memmove(os->body_data,os->body_data+os->body_returned, - os->body_fill); - os->body_returned=0; - } - - /* make sure we have the buffer storage */ - if(_os_body_expand(os,bytes) || _os_lacing_expand(os,lacing_vals)) - return -1; - - /* Copy in the submitted packet. Yes, the copy is a waste; this is - the liability of overly clean abstraction for the time being. It - will actually be fairly easy to eliminate the extra copy in the - future */ - - for (i = 0; i < count; ++i) { - memcpy(os->body_data+os->body_fill, iov[i].iov_base, iov[i].iov_len); - os->body_fill += (int)iov[i].iov_len; - } - - /* Store lacing vals for this packet */ - for(i=0;ilacing_vals[os->lacing_fill+i]=255; - os->granule_vals[os->lacing_fill+i]=os->granulepos; - } - os->lacing_vals[os->lacing_fill+i]=bytes%255; - os->granulepos=os->granule_vals[os->lacing_fill+i]=granulepos; - - /* flag the first segment as the beginning of the packet */ - os->lacing_vals[os->lacing_fill]|= 0x100; - - os->lacing_fill+=lacing_vals; - - /* for the sake of completeness */ - os->packetno++; - - if(e_o_s)os->e_o_s=1; - - return(0); -} - -int ogg_stream_packetin(ogg_stream_state *os,ogg_packet *op){ - ogg_iovec_t iov; - iov.iov_base = op->packet; - iov.iov_len = op->bytes; - return ogg_stream_iovecin(os, &iov, 1, op->e_o_s, op->granulepos); -} - -/* Conditionally flush a page; force==0 will only flush nominal-size - pages, force==1 forces us to flush a page regardless of page size - so long as there's any data available at all. */ -static int ogg_stream_flush_i(ogg_stream_state *os,ogg_page *og, int force, int nfill){ - int i; - int vals=0; - int maxvals=(os->lacing_fill>255?255:os->lacing_fill); - int bytes=0; - long acc=0; - ogg_int64_t granule_pos=-1; - - if(ogg_stream_check(os)) return(0); - if(maxvals==0) return(0); - - /* construct a page */ - /* decide how many segments to include */ - - /* If this is the initial header case, the first page must only include - the initial header packet */ - if(os->b_o_s==0){ /* 'initial header page' case */ - granule_pos=0; - for(vals=0;valslacing_vals[vals]&0x0ff)<255){ - vals++; - break; - } - } - }else{ - - /* The extra packets_done, packet_just_done logic here attempts to do two things: - 1) Don't unneccessarily span pages. - 2) Unless necessary, don't flush pages if there are less than four packets on - them; this expands page size to reduce unneccessary overhead if incoming packets - are large. - These are not necessary behaviors, just 'always better than naive flushing' - without requiring an application to explicitly request a specific optimized - behavior. We'll want an explicit behavior setup pathway eventually as well. */ - - int packets_done=0; - int packet_just_done=0; - for(vals=0;valsnfill && packet_just_done>=4){ - force=1; - break; - } - acc+=os->lacing_vals[vals]&0x0ff; - if((os->lacing_vals[vals]&0xff)<255){ - granule_pos=os->granule_vals[vals]; - packet_just_done=++packets_done; - }else - packet_just_done=0; - } - if(vals==255)force=1; - } - - if(!force) return(0); - - /* construct the header in temp storage */ - memcpy(os->header,"OggS",4); - - /* stream structure version */ - os->header[4]=0x00; - - /* continued packet flag? */ - os->header[5]=0x00; - if((os->lacing_vals[0]&0x100)==0)os->header[5]|=0x01; - /* first page flag? */ - if(os->b_o_s==0)os->header[5]|=0x02; - /* last page flag? */ - if(os->e_o_s && os->lacing_fill==vals)os->header[5]|=0x04; - os->b_o_s=1; - - /* 64 bits of PCM position */ - for(i=6;i<14;i++){ - os->header[i]=(unsigned char)(granule_pos&0xff); - granule_pos>>=8; - } - - /* 32 bits of stream serial number */ - { - long serialno=os->serialno; - for(i=14;i<18;i++){ - os->header[i]=(unsigned char)(serialno&0xff); - serialno>>=8; - } - } - - /* 32 bits of page counter (we have both counter and page header - because this val can roll over) */ - if(os->pageno==-1)os->pageno=0; /* because someone called - stream_reset; this would be a - strange thing to do in an - encode stream, but it has - plausible uses */ - { - long pageno=os->pageno++; - for(i=18;i<22;i++){ - os->header[i]=(unsigned char)(pageno&0xff); - pageno>>=8; - } - } - - /* zero for computation; filled in later */ - os->header[22]=0; - os->header[23]=0; - os->header[24]=0; - os->header[25]=0; - - /* segment table */ - os->header[26]=(unsigned char)(vals&0xff); - for(i=0;iheader[i+27]=(unsigned char)(os->lacing_vals[i]&0xff); - - /* set pointers in the ogg_page struct */ - og->header=os->header; - og->header_len=os->header_fill=vals+27; - og->body=os->body_data+os->body_returned; - og->body_len=bytes; - - /* advance the lacing data and set the body_returned pointer */ - - os->lacing_fill-=vals; - memmove(os->lacing_vals,os->lacing_vals+vals,os->lacing_fill*sizeof(*os->lacing_vals)); - memmove(os->granule_vals,os->granule_vals+vals,os->lacing_fill*sizeof(*os->granule_vals)); - os->body_returned+=bytes; - - /* calculate the checksum */ - - ogg_page_checksum_set(og); - - /* done */ - return(1); -} - -/* This will flush remaining packets into a page (returning nonzero), - even if there is not enough data to trigger a flush normally - (undersized page). If there are no packets or partial packets to - flush, ogg_stream_flush returns 0. Note that ogg_stream_flush will - try to flush a normal sized page like ogg_stream_pageout; a call to - ogg_stream_flush does not guarantee that all packets have flushed. - Only a return value of 0 from ogg_stream_flush indicates all packet - data is flushed into pages. - - since ogg_stream_flush will flush the last page in a stream even if - it's undersized, you almost certainly want to use ogg_stream_pageout - (and *not* ogg_stream_flush) unless you specifically need to flush - a page regardless of size in the middle of a stream. */ - -int ogg_stream_flush(ogg_stream_state *os,ogg_page *og){ - return ogg_stream_flush_i(os,og,1,4096); -} - -/* Like the above, but an argument is provided to adjust the nominal - page size for applications which are smart enough to provide their - own delay based flushing */ - -int ogg_stream_flush_fill(ogg_stream_state *os,ogg_page *og, int nfill){ - return ogg_stream_flush_i(os,og,1,nfill); -} - -/* This constructs pages from buffered packet segments. The pointers -returned are to static buffers; do not free. The returned buffers are -good only until the next call (using the same ogg_stream_state) */ - -int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og){ - int force=0; - if(ogg_stream_check(os)) return 0; - - if((os->e_o_s&&os->lacing_fill) || /* 'were done, now flush' case */ - (os->lacing_fill&&!os->b_o_s)) /* 'initial header page' case */ - force=1; - - return(ogg_stream_flush_i(os,og,force,4096)); -} - -/* Like the above, but an argument is provided to adjust the nominal -page size for applications which are smart enough to provide their -own delay based flushing */ - -int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill){ - int force=0; - if(ogg_stream_check(os)) return 0; - - if((os->e_o_s&&os->lacing_fill) || /* 'were done, now flush' case */ - (os->lacing_fill&&!os->b_o_s)) /* 'initial header page' case */ - force=1; - - return(ogg_stream_flush_i(os,og,force,nfill)); -} - -int ogg_stream_eos(ogg_stream_state *os){ - if(ogg_stream_check(os)) return 1; - return os->e_o_s; -} - -/* DECODING PRIMITIVES: packet streaming layer **********************/ - -/* This has two layers to place more of the multi-serialno and paging - control in the application's hands. First, we expose a data buffer - using ogg_sync_buffer(). The app either copies into the - buffer, or passes it directly to read(), etc. We then call - ogg_sync_wrote() to tell how many bytes we just added. - - Pages are returned (pointers into the buffer in ogg_sync_state) - by ogg_sync_pageout(). The page is then submitted to - ogg_stream_pagein() along with the appropriate - ogg_stream_state* (ie, matching serialno). We then get raw - packets out calling ogg_stream_packetout() with a - ogg_stream_state. */ - -/* initialize the struct to a known state */ -int ogg_sync_init(ogg_sync_state *oy){ - if(oy){ - oy->storage = -1; /* used as a readiness flag */ - memset(oy,0,sizeof(*oy)); - } - return(0); -} - -/* clear non-flat storage within */ -int ogg_sync_clear(ogg_sync_state *oy){ - if(oy){ - if(oy->data)_ogg_free(oy->data); - memset(oy,0,sizeof(*oy)); - } - return(0); -} - -int ogg_sync_destroy(ogg_sync_state *oy){ - if(oy){ - ogg_sync_clear(oy); - _ogg_free(oy); - } - return(0); -} - -int ogg_sync_check(ogg_sync_state *oy){ - if(oy->storage<0) return -1; - return 0; -} - -char *ogg_sync_buffer(ogg_sync_state *oy, long size){ - if(ogg_sync_check(oy)) return NULL; - - /* first, clear out any space that has been previously returned */ - if(oy->returned){ - oy->fill-=oy->returned; - if(oy->fill>0) - memmove(oy->data,oy->data+oy->returned,oy->fill); - oy->returned=0; - } - - if(size>oy->storage-oy->fill){ - /* We need to extend the internal buffer */ - long newsize=size+oy->fill+4096; /* an extra page to be nice */ - void *ret; - - if(oy->data) - ret=_ogg_realloc(oy->data,newsize); - else - ret=_ogg_malloc(newsize); - if(!ret){ - ogg_sync_clear(oy); - return NULL; - } - oy->data=ret; - oy->storage=newsize; - } - - /* expose a segment at least as large as requested at the fill mark */ - return((char *)oy->data+oy->fill); -} - -int ogg_sync_wrote(ogg_sync_state *oy, long bytes){ - if(ogg_sync_check(oy))return -1; - if(oy->fill+bytes>oy->storage)return -1; - oy->fill+=bytes; - return(0); -} - -/* sync the stream. This is meant to be useful for finding page - boundaries. - - return values for this: - -n) skipped n bytes - 0) page not ready; more data (no bytes skipped) - n) page synced at current location; page length n bytes - -*/ - -long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og){ - unsigned char *page=oy->data+oy->returned; - unsigned char *next; - long bytes=oy->fill-oy->returned; - - if(ogg_sync_check(oy))return 0; - - if(oy->headerbytes==0){ - int headerbytes,i; - if(bytes<27)return(0); /* not enough for a header */ - - /* verify capture pattern */ - if(memcmp(page,"OggS",4))goto sync_fail; - - headerbytes=page[26]+27; - if(bytesbodybytes+=page[27+i]; - oy->headerbytes=headerbytes; - } - - if(oy->bodybytes+oy->headerbytes>bytes)return(0); - - /* The whole test page is buffered. Verify the checksum */ - { - /* Grab the checksum bytes, set the header field to zero */ - char chksum[4]; - ogg_page log; - - memcpy(chksum,page+22,4); - memset(page+22,0,4); - - /* set up a temp page struct and recompute the checksum */ - log.header=page; - log.header_len=oy->headerbytes; - log.body=page+oy->headerbytes; - log.body_len=oy->bodybytes; - ogg_page_checksum_set(&log); - - /* Compare */ - if(memcmp(chksum,page+22,4)){ - /* D'oh. Mismatch! Corrupt page (or miscapture and not a page - at all) */ - /* replace the computed checksum with the one actually read in */ - memcpy(page+22,chksum,4); - - /* Bad checksum. Lose sync */ - goto sync_fail; - } - } - - /* yes, have a whole page all ready to go */ - { - unsigned char *page=oy->data+oy->returned; - long bytes; - - if(og){ - og->header=page; - og->header_len=oy->headerbytes; - og->body=page+oy->headerbytes; - og->body_len=oy->bodybytes; - } - - oy->unsynced=0; - oy->returned+=(bytes=oy->headerbytes+oy->bodybytes); - oy->headerbytes=0; - oy->bodybytes=0; - return(bytes); - } - - sync_fail: - - oy->headerbytes=0; - oy->bodybytes=0; - - /* search for possible capture */ - next=memchr(page+1,'O',bytes-1); - if(!next) - next=oy->data+oy->fill; - - oy->returned=(int)(next-oy->data); - return((long)-(next-page)); -} - -/* sync the stream and get a page. Keep trying until we find a page. - Suppress 'sync errors' after reporting the first. - - return values: - -1) recapture (hole in data) - 0) need more data - 1) page returned - - Returns pointers into buffered data; invalidated by next call to - _stream, _clear, _init, or _buffer */ - -int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og){ - - if(ogg_sync_check(oy))return 0; - - /* all we need to do is verify a page at the head of the stream - buffer. If it doesn't verify, we look for the next potential - frame */ - - for(;;){ - long ret=ogg_sync_pageseek(oy,og); - if(ret>0){ - /* have a page */ - return(1); - } - if(ret==0){ - /* need more data */ - return(0); - } - - /* head did not start a synced page... skipped some bytes */ - if(!oy->unsynced){ - oy->unsynced=1; - return(-1); - } - - /* loop. keep looking */ - - } -} - -/* add the incoming page to the stream state; we decompose the page - into packet segments here as well. */ - -int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og){ - unsigned char *header=og->header; - unsigned char *body=og->body; - long bodysize=og->body_len; - int segptr=0; - - int version=ogg_page_version(og); - int continued=ogg_page_continued(og); - int bos=ogg_page_bos(og); - int eos=ogg_page_eos(og); - ogg_int64_t granulepos=ogg_page_granulepos(og); - int serialno=ogg_page_serialno(og); - long pageno=ogg_page_pageno(og); - int segments=header[26]; - - if(ogg_stream_check(os)) return -1; - - /* clean up 'returned data' */ - { - long lr=os->lacing_returned; - long br=os->body_returned; - - /* body data */ - if(br){ - os->body_fill-=br; - if(os->body_fill) - memmove(os->body_data,os->body_data+br,os->body_fill); - os->body_returned=0; - } - - if(lr){ - /* segment table */ - if(os->lacing_fill-lr){ - memmove(os->lacing_vals,os->lacing_vals+lr, - (os->lacing_fill-lr)*sizeof(*os->lacing_vals)); - memmove(os->granule_vals,os->granule_vals+lr, - (os->lacing_fill-lr)*sizeof(*os->granule_vals)); - } - os->lacing_fill-=lr; - os->lacing_packet-=lr; - os->lacing_returned=0; - } - } - - /* check the serial number */ - if(serialno!=os->serialno)return(-1); - if(version>0)return(-1); - - if(_os_lacing_expand(os,segments+1)) return -1; - - /* are we in sequence? */ - if(pageno!=os->pageno){ - int i; - - /* unroll previous partial packet (if any) */ - for(i=os->lacing_packet;ilacing_fill;i++) - os->body_fill-=os->lacing_vals[i]&0xff; - os->lacing_fill=os->lacing_packet; - - /* make a note of dropped data in segment table */ - if(os->pageno!=-1){ - os->lacing_vals[os->lacing_fill++]=0x400; - os->lacing_packet++; - } - } - - /* are we a 'continued packet' page? If so, we may need to skip - some segments */ - if(continued){ - if(os->lacing_fill<1 || - (os->lacing_vals[os->lacing_fill-1]&0xff)<255 || - os->lacing_vals[os->lacing_fill-1]==0x400){ - bos=0; - for(;segptrbody_data+os->body_fill,body,bodysize); - os->body_fill+=bodysize; - } - - { - int saved=-1; - while(segptrlacing_vals[os->lacing_fill]=val; - os->granule_vals[os->lacing_fill]=-1; - - if(bos){ - os->lacing_vals[os->lacing_fill]|=0x100; - bos=0; - } - - if(val<255)saved=os->lacing_fill; - - os->lacing_fill++; - segptr++; - - if(val<255)os->lacing_packet=os->lacing_fill; - } - - /* set the granulepos on the last granuleval of the last full packet */ - if(saved!=-1){ - os->granule_vals[saved]=granulepos; - } - - } - - if(eos){ - os->e_o_s=1; - if(os->lacing_fill>0) - os->lacing_vals[os->lacing_fill-1]|=0x200; - } - - os->pageno=pageno+1; - - return(0); -} - -/* clear things to an initial state. Good to call, eg, before seeking */ -int ogg_sync_reset(ogg_sync_state *oy){ - if(ogg_sync_check(oy))return -1; - - oy->fill=0; - oy->returned=0; - oy->unsynced=0; - oy->headerbytes=0; - oy->bodybytes=0; - return(0); -} - -int ogg_stream_reset(ogg_stream_state *os){ - if(ogg_stream_check(os)) return -1; - - os->body_fill=0; - os->body_returned=0; - - os->lacing_fill=0; - os->lacing_packet=0; - os->lacing_returned=0; - - os->header_fill=0; - - os->e_o_s=0; - os->b_o_s=0; - os->pageno=-1; - os->packetno=0; - os->granulepos=0; - - return(0); -} - -int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno){ - if(ogg_stream_check(os)) return -1; - ogg_stream_reset(os); - os->serialno=serialno; - return(0); -} - -static int _packetout(ogg_stream_state *os,ogg_packet *op,int adv){ - - /* The last part of decode. We have the stream broken into packet - segments. Now we need to group them into packets (or return the - out of sync markers) */ - - int ptr=os->lacing_returned; - - if(os->lacing_packet<=ptr)return(0); - - if(os->lacing_vals[ptr]&0x400){ - /* we need to tell the codec there's a gap; it might need to - handle previous packet dependencies. */ - os->lacing_returned++; - os->packetno++; - return(-1); - } - - if(!op && !adv)return(1); /* just using peek as an inexpensive way - to ask if there's a whole packet - waiting */ - - /* Gather the whole packet. We'll have no holes or a partial packet */ - { - int size=os->lacing_vals[ptr]&0xff; - long bytes=size; - int eos=os->lacing_vals[ptr]&0x200; /* last packet of the stream? */ - int bos=os->lacing_vals[ptr]&0x100; /* first packet of the stream? */ - - while(size==255){ - int val=os->lacing_vals[++ptr]; - size=val&0xff; - if(val&0x200)eos=0x200; - bytes+=size; - } - - if(op){ - op->e_o_s=eos; - op->b_o_s=bos; - op->packet=os->body_data+os->body_returned; - op->packetno=os->packetno; - op->granulepos=os->granule_vals[ptr]; - op->bytes=bytes; - } - - if(adv){ - os->body_returned+=bytes; - os->lacing_returned=ptr+1; - os->packetno++; - } - } - return(1); -} - -int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op){ - if(ogg_stream_check(os)) return 0; - return _packetout(os,op,1); -} - -int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op){ - if(ogg_stream_check(os)) return 0; - return _packetout(os,op,0); -} - -void ogg_packet_clear(ogg_packet *op) { - _ogg_free(op->packet); - memset(op, 0, sizeof(*op)); -} - -#ifdef _V_SELFTEST -#include - -ogg_stream_state os_en, os_de; -ogg_sync_state oy; - -void checkpacket(ogg_packet *op,long len, int no, long pos){ - long j; - static int sequence=0; - static int lastno=0; - - if(op->bytes!=len){ - fprintf(stderr,"incorrect packet length (%ld != %ld)!\n",op->bytes,len); - exit(1); - } - if(op->granulepos!=pos){ - fprintf(stderr,"incorrect packet granpos (%ld != %ld)!\n",(long)op->granulepos,pos); - exit(1); - } - - /* packet number just follows sequence/gap; adjust the input number - for that */ - if(no==0){ - sequence=0; - }else{ - sequence++; - if(no>lastno+1) - sequence++; - } - lastno=no; - if(op->packetno!=sequence){ - fprintf(stderr,"incorrect packet sequence %ld != %d\n", - (long)(op->packetno),sequence); - exit(1); - } - - /* Test data */ - for(j=0;jbytes;j++) - if(op->packet[j]!=((j+no)&0xff)){ - fprintf(stderr,"body data mismatch (1) at pos %ld: %x!=%lx!\n\n", - j,op->packet[j],(j+no)&0xff); - exit(1); - } -} - -void check_page(unsigned char *data,const int *header,ogg_page *og){ - long j; - /* Test data */ - for(j=0;jbody_len;j++) - if(og->body[j]!=data[j]){ - fprintf(stderr,"body data mismatch (2) at pos %ld: %x!=%x!\n\n", - j,data[j],og->body[j]); - exit(1); - } - - /* Test header */ - for(j=0;jheader_len;j++){ - if(og->header[j]!=header[j]){ - fprintf(stderr,"header content mismatch at pos %ld:\n",j); - for(j=0;jheader[j]); - fprintf(stderr,"\n"); - exit(1); - } - } - if(og->header_len!=header[26]+27){ - fprintf(stderr,"header length incorrect! (%ld!=%d)\n", - og->header_len,header[26]+27); - exit(1); - } -} - -void print_header(ogg_page *og){ - int j; - fprintf(stderr,"\nHEADER:\n"); - fprintf(stderr," capture: %c %c %c %c version: %d flags: %x\n", - og->header[0],og->header[1],og->header[2],og->header[3], - (int)og->header[4],(int)og->header[5]); - - fprintf(stderr," granulepos: %d serialno: %d pageno: %ld\n", - (og->header[9]<<24)|(og->header[8]<<16)| - (og->header[7]<<8)|og->header[6], - (og->header[17]<<24)|(og->header[16]<<16)| - (og->header[15]<<8)|og->header[14], - ((long)(og->header[21])<<24)|(og->header[20]<<16)| - (og->header[19]<<8)|og->header[18]); - - fprintf(stderr," checksum: %02x:%02x:%02x:%02x\n segments: %d (", - (int)og->header[22],(int)og->header[23], - (int)og->header[24],(int)og->header[25], - (int)og->header[26]); - - for(j=27;jheader_len;j++) - fprintf(stderr,"%d ",(int)og->header[j]); - fprintf(stderr,")\n\n"); -} - -void copy_page(ogg_page *og){ - unsigned char *temp=_ogg_malloc(og->header_len); - memcpy(temp,og->header,og->header_len); - og->header=temp; - - temp=_ogg_malloc(og->body_len); - memcpy(temp,og->body,og->body_len); - og->body=temp; -} - -void free_page(ogg_page *og){ - _ogg_free (og->header); - _ogg_free (og->body); -} - -void error(void){ - fprintf(stderr,"error!\n"); - exit(1); -} - -/* 17 only */ -const int head1_0[] = {0x4f,0x67,0x67,0x53,0,0x06, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0x15,0xed,0xec,0x91, - 1, - 17}; - -/* 17, 254, 255, 256, 500, 510, 600 byte, pad */ -const int head1_1[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0x59,0x10,0x6c,0x2c, - 1, - 17}; -const int head2_1[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x18,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x89,0x33,0x85,0xce, - 13, - 254,255,0,255,1,255,245,255,255,0, - 255,255,90}; - -/* nil packets; beginning,middle,end */ -const int head1_2[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; -const int head2_2[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x28,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x5c,0x3f,0x66,0xcb, - 17, - 17,254,255,0,0,255,1,0,255,245,255,255,0, - 255,255,90,0}; - -/* large initial packet */ -const int head1_3[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0x01,0x27,0x31,0xaa, - 18, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10}; - -const int head2_3[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x7f,0x4e,0x8a,0xd2, - 4, - 255,4,255,0}; - - -/* continuing packet test */ -const int head1_4[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_4[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0xf8,0x3c,0x19,0x79, - 255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; - -const int head3_4[] = {0x4f,0x67,0x67,0x53,0,0x05, - 0x07,0x0c,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0x38,0xe6,0xb6,0x28, - 6, - 255,220,255,4,255,0}; - - -/* spill expansion test */ -const int head1_4b[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_4b[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0xce,0x8f,0x17,0x1a, - 23, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255,255,10,255,4,255,0,0}; - - -const int head3_4b[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x14,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0x9b,0xb2,0x50,0xa1, - 1, - 0}; - -/* page with the 255 segment limit */ -const int head1_5[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_5[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0xfc,0x03,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0xed,0x2a,0x2e,0xa7, - 255, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10}; - -const int head3_5[] = {0x4f,0x67,0x67,0x53,0,0x04, - 0x07,0x00,0x04,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0x6c,0x3b,0x82,0x3d, - 1, - 50}; - - -/* packet that overspans over an entire page */ -const int head1_6[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_6[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x68,0x22,0x7c,0x3d, - 255, - 100, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; - -const int head3_6[] = {0x4f,0x67,0x67,0x53,0,0x01, - 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0xf4,0x87,0xba,0xf3, - 255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255}; - -const int head4_6[] = {0x4f,0x67,0x67,0x53,0,0x05, - 0x07,0x10,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,3,0,0,0, - 0xf7,0x2f,0x6c,0x60, - 5, - 254,255,4,255,0}; - -/* packet that overspans over an entire page */ -const int head1_7[] = {0x4f,0x67,0x67,0x53,0,0x02, - 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,0,0,0,0, - 0xff,0x7b,0x23,0x17, - 1, - 0}; - -const int head2_7[] = {0x4f,0x67,0x67,0x53,0,0x00, - 0x07,0x04,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,1,0,0,0, - 0x68,0x22,0x7c,0x3d, - 255, - 100, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255,255,255, - 255,255,255,255,255,255}; - -const int head3_7[] = {0x4f,0x67,0x67,0x53,0,0x05, - 0x07,0x08,0x00,0x00,0x00,0x00,0x00,0x00, - 0x01,0x02,0x03,0x04,2,0,0,0, - 0xd4,0xe0,0x60,0xe5, - 1, - 0}; - -int compare_packet(const ogg_packet *op1, const ogg_packet *op2){ - if(op1->packet!=op2->packet){ - fprintf(stderr,"op1->packet != op2->packet\n"); - return(1); - } - if(op1->bytes!=op2->bytes){ - fprintf(stderr,"op1->bytes != op2->bytes\n"); - return(1); - } - if(op1->b_o_s!=op2->b_o_s){ - fprintf(stderr,"op1->b_o_s != op2->b_o_s\n"); - return(1); - } - if(op1->e_o_s!=op2->e_o_s){ - fprintf(stderr,"op1->e_o_s != op2->e_o_s\n"); - return(1); - } - if(op1->granulepos!=op2->granulepos){ - fprintf(stderr,"op1->granulepos != op2->granulepos\n"); - return(1); - } - if(op1->packetno!=op2->packetno){ - fprintf(stderr,"op1->packetno != op2->packetno\n"); - return(1); - } - return(0); -} - -void test_pack(const int *pl, const int **headers, int byteskip, - int pageskip, int packetskip){ - unsigned char *data=_ogg_malloc(1024*1024); /* for scripted test cases only */ - long inptr=0; - long outptr=0; - long deptr=0; - long depacket=0; - long granule_pos=7,pageno=0; - int i,j,packets,pageout=pageskip; - int eosflag=0; - int bosflag=0; - - int byteskipcount=0; - - ogg_stream_reset(&os_en); - ogg_stream_reset(&os_de); - ogg_sync_reset(&oy); - - for(packets=0;packetsbyteskip){ - memcpy(next,og.header,byteskipcount-byteskip); - next+=byteskipcount-byteskip; - byteskipcount=byteskip; - } - - byteskipcount+=og.body_len; - if(byteskipcount>byteskip){ - memcpy(next,og.body,byteskipcount-byteskip); - next+=byteskipcount-byteskip; - byteskipcount=byteskip; - } - - ogg_sync_wrote(&oy,next-buf); - - while(1){ - int ret=ogg_sync_pageout(&oy,&og_de); - if(ret==0)break; - if(ret<0)continue; - /* got a page. Happy happy. Verify that it's good. */ - - fprintf(stderr,"(%d), ",pageout); - - check_page(data+deptr,headers[pageout],&og_de); - deptr+=og_de.body_len; - pageout++; - - /* submit it to deconstitution */ - ogg_stream_pagein(&os_de,&og_de); - - /* packets out? */ - while(ogg_stream_packetpeek(&os_de,&op_de2)>0){ - ogg_stream_packetpeek(&os_de,NULL); - ogg_stream_packetout(&os_de,&op_de); /* just catching them all */ - - /* verify peek and out match */ - if(compare_packet(&op_de,&op_de2)){ - fprintf(stderr,"packetout != packetpeek! pos=%ld\n", - depacket); - exit(1); - } - - /* verify the packet! */ - /* check data */ - if(memcmp(data+depacket,op_de.packet,op_de.bytes)){ - fprintf(stderr,"packet data mismatch in decode! pos=%ld\n", - depacket); - exit(1); - } - /* check bos flag */ - if(bosflag==0 && op_de.b_o_s==0){ - fprintf(stderr,"b_o_s flag not set on packet!\n"); - exit(1); - } - if(bosflag && op_de.b_o_s){ - fprintf(stderr,"b_o_s flag incorrectly set on packet!\n"); - exit(1); - } - bosflag=1; - depacket+=op_de.bytes; - - /* check eos flag */ - if(eosflag){ - fprintf(stderr,"Multiple decoded packets with eos flag!\n"); - exit(1); - } - - if(op_de.e_o_s)eosflag=1; - - /* check granulepos flag */ - if(op_de.granulepos!=-1){ - fprintf(stderr," granule:%ld ",(long)op_de.granulepos); - } - } - } - } - } - } - } - _ogg_free(data); - if(headers[pageno]!=NULL){ - fprintf(stderr,"did not write last page!\n"); - exit(1); - } - if(headers[pageout]!=NULL){ - fprintf(stderr,"did not decode last page!\n"); - exit(1); - } - if(inptr!=outptr){ - fprintf(stderr,"encoded page data incomplete!\n"); - exit(1); - } - if(inptr!=deptr){ - fprintf(stderr,"decoded page data incomplete!\n"); - exit(1); - } - if(inptr!=depacket){ - fprintf(stderr,"decoded packet data incomplete!\n"); - exit(1); - } - if(!eosflag){ - fprintf(stderr,"Never got a packet with EOS set!\n"); - exit(1); - } - fprintf(stderr,"ok.\n"); -} - -int main(void){ - - ogg_stream_init(&os_en,0x04030201); - ogg_stream_init(&os_de,0x04030201); - ogg_sync_init(&oy); - - /* Exercise each code path in the framing code. Also verify that - the checksums are working. */ - - { - /* 17 only */ - const int packets[]={17, -1}; - const int *headret[]={head1_0,NULL}; - - fprintf(stderr,"testing single page encoding... "); - test_pack(packets,headret,0,0,0); - } - - { - /* 17, 254, 255, 256, 500, 510, 600 byte, pad */ - const int packets[]={17, 254, 255, 256, 500, 510, 600, -1}; - const int *headret[]={head1_1,head2_1,NULL}; - - fprintf(stderr,"testing basic page encoding... "); - test_pack(packets,headret,0,0,0); - } - - { - /* nil packets; beginning,middle,end */ - const int packets[]={0,17, 254, 255, 0, 256, 0, 500, 510, 600, 0, -1}; - const int *headret[]={head1_2,head2_2,NULL}; - - fprintf(stderr,"testing basic nil packets... "); - test_pack(packets,headret,0,0,0); - } - - { - /* large initial packet */ - const int packets[]={4345,259,255,-1}; - const int *headret[]={head1_3,head2_3,NULL}; - - fprintf(stderr,"testing initial-packet lacing > 4k... "); - test_pack(packets,headret,0,0,0); - } - - { - /* continuing packet test; with page spill expansion, we have to - overflow the lacing table. */ - const int packets[]={0,65500,259,255,-1}; - const int *headret[]={head1_4,head2_4,head3_4,NULL}; - - fprintf(stderr,"testing single packet page span... "); - test_pack(packets,headret,0,0,0); - } - - { - /* spill expand packet test */ - const int packets[]={0,4345,259,255,0,0,-1}; - const int *headret[]={head1_4b,head2_4b,head3_4b,NULL}; - - fprintf(stderr,"testing page spill expansion... "); - test_pack(packets,headret,0,0,0); - } - - /* page with the 255 segment limit */ - { - - const int packets[]={0,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,50,-1}; - const int *headret[]={head1_5,head2_5,head3_5,NULL}; - - fprintf(stderr,"testing max packet segments... "); - test_pack(packets,headret,0,0,0); - } - - { - /* packet that overspans over an entire page */ - const int packets[]={0,100,130049,259,255,-1}; - const int *headret[]={head1_6,head2_6,head3_6,head4_6,NULL}; - - fprintf(stderr,"testing very large packets... "); - test_pack(packets,headret,0,0,0); - } - - { - /* test for the libogg 1.1.1 resync in large continuation bug - found by Josh Coalson) */ - const int packets[]={0,100,130049,259,255,-1}; - const int *headret[]={head1_6,head2_6,head3_6,head4_6,NULL}; - - fprintf(stderr,"testing continuation resync in very large packets... "); - test_pack(packets,headret,100,2,3); - } - - { - /* term only page. why not? */ - const int packets[]={0,100,64770,-1}; - const int *headret[]={head1_7,head2_7,head3_7,NULL}; - - fprintf(stderr,"testing zero data page (1 nil packet)... "); - test_pack(packets,headret,0,0,0); - } - - - - { - /* build a bunch of pages for testing */ - unsigned char *data=_ogg_malloc(1024*1024); - int pl[]={0, 1,1,98,4079, 1,1,2954,2057, 76,34,912,0,234,1000,1000, 1000,300,-1}; - int inptr=0,i,j; - ogg_page og[5]; - - ogg_stream_reset(&os_en); - - for(i=0;pl[i]!=-1;i++){ - ogg_packet op; - int len=pl[i]; - - op.packet=data+inptr; - op.bytes=len; - op.e_o_s=(pl[i+1]<0?1:0); - op.granulepos=(i+1)*1000; - - for(j=0;j0)error(); - - /* Test fractional page inputs: incomplete fixed header */ - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+3, - 20); - ogg_sync_wrote(&oy,20); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - /* Test fractional page inputs: incomplete header */ - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+23, - 5); - ogg_sync_wrote(&oy,5); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - /* Test fractional page inputs: incomplete body */ - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+28, - og[1].header_len-28); - ogg_sync_wrote(&oy,og[1].header_len-28); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body,1000); - ogg_sync_wrote(&oy,1000); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body+1000, - og[1].body_len-1000); - ogg_sync_wrote(&oy,og[1].body_len-1000); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Test fractional page inputs: page + incomplete capture */ - { - ogg_page og_de; - fprintf(stderr,"Testing sync on 1+partial inputs... "); - ogg_sync_reset(&oy); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - og[1].header_len); - ogg_sync_wrote(&oy,og[1].header_len); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - 20); - ogg_sync_wrote(&oy,20); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header+20, - og[1].header_len-20); - ogg_sync_wrote(&oy,og[1].header_len-20); - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Test recapture: garbage + page */ - { - ogg_page og_de; - fprintf(stderr,"Testing search for capture... "); - ogg_sync_reset(&oy); - - /* 'garbage' */ - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - og[1].header_len); - ogg_sync_wrote(&oy,og[1].header_len); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, - 20); - ogg_sync_wrote(&oy,20); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header+20, - og[2].header_len-20); - ogg_sync_wrote(&oy,og[2].header_len-20); - memcpy(ogg_sync_buffer(&oy,og[2].body_len),og[2].body, - og[2].body_len); - ogg_sync_wrote(&oy,og[2].body_len); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Test recapture: page + garbage + page */ - { - ogg_page og_de; - fprintf(stderr,"Testing recapture... "); - ogg_sync_reset(&oy); - - memcpy(ogg_sync_buffer(&oy,og[1].header_len),og[1].header, - og[1].header_len); - ogg_sync_wrote(&oy,og[1].header_len); - - memcpy(ogg_sync_buffer(&oy,og[1].body_len),og[1].body, - og[1].body_len); - ogg_sync_wrote(&oy,og[1].body_len); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, - og[2].header_len); - ogg_sync_wrote(&oy,og[2].header_len); - - memcpy(ogg_sync_buffer(&oy,og[2].header_len),og[2].header, - og[2].header_len); - ogg_sync_wrote(&oy,og[2].header_len); - - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - memcpy(ogg_sync_buffer(&oy,og[2].body_len),og[2].body, - og[2].body_len-5); - ogg_sync_wrote(&oy,og[2].body_len-5); - - memcpy(ogg_sync_buffer(&oy,og[3].header_len),og[3].header, - og[3].header_len); - ogg_sync_wrote(&oy,og[3].header_len); - - memcpy(ogg_sync_buffer(&oy,og[3].body_len),og[3].body, - og[3].body_len); - ogg_sync_wrote(&oy,og[3].body_len); - - if(ogg_sync_pageout(&oy,&og_de)>0)error(); - if(ogg_sync_pageout(&oy,&og_de)<=0)error(); - - fprintf(stderr,"ok.\n"); - } - - /* Free page data that was previously copied */ - { - for(i=0;i<5;i++){ - free_page(&og[i]); - } - } - } - - return(0); -} - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/ogg.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/ogg.h deleted file mode 100644 index 7609fc24..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/ogg.h +++ /dev/null @@ -1,210 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel libogg include - last mod: $Id$ - - ********************************************************************/ -#ifndef _OGG_H -#define _OGG_H - -#ifdef __cplusplus -extern "C" { -#endif - -#include -#include - -typedef struct { - void *iov_base; - size_t iov_len; -} ogg_iovec_t; - -typedef struct { - long endbyte; - int endbit; - - unsigned char *buffer; - unsigned char *ptr; - long storage; -} oggpack_buffer; - -/* ogg_page is used to encapsulate the data in one Ogg bitstream page *****/ - -typedef struct { - unsigned char *header; - long header_len; - unsigned char *body; - long body_len; -} ogg_page; - -/* ogg_stream_state contains the current encode/decode state of a logical - Ogg bitstream **********************************************************/ - -typedef struct { - unsigned char *body_data; /* bytes from packet bodies */ - long body_storage; /* storage elements allocated */ - long body_fill; /* elements stored; fill mark */ - long body_returned; /* elements of fill returned */ - - - int *lacing_vals; /* The values that will go to the segment table */ - ogg_int64_t *granule_vals; /* granulepos values for headers. Not compact - this way, but it is simple coupled to the - lacing fifo */ - long lacing_storage; - long lacing_fill; - long lacing_packet; - long lacing_returned; - - unsigned char header[282]; /* working space for header encode */ - int header_fill; - - int e_o_s; /* set when we have buffered the last packet in the - logical bitstream */ - int b_o_s; /* set after we've written the initial page - of a logical bitstream */ - long serialno; - long pageno; - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ - ogg_int64_t granulepos; - -} ogg_stream_state; - -/* ogg_packet is used to encapsulate the data and metadata belonging - to a single raw Ogg/Vorbis packet *************************************/ - -typedef struct { - unsigned char *packet; - long bytes; - long b_o_s; - long e_o_s; - - ogg_int64_t granulepos; - - ogg_int64_t packetno; /* sequence number for decode; the framing - knows where there's a hole in the data, - but we need coupling so that the codec - (which is in a separate abstraction - layer) also knows about the gap */ -} ogg_packet; - -typedef struct { - unsigned char *data; - int storage; - int fill; - int returned; - - int unsynced; - int headerbytes; - int bodybytes; -} ogg_sync_state; - -/* Ogg BITSTREAM PRIMITIVES: bitstream ************************/ - -extern void oggpack_writeinit(oggpack_buffer *b); -extern int oggpack_writecheck(oggpack_buffer *b); -extern void oggpack_writetrunc(oggpack_buffer *b,long bits); -extern void oggpack_writealign(oggpack_buffer *b); -extern void oggpack_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpack_reset(oggpack_buffer *b); -extern void oggpack_writeclear(oggpack_buffer *b); -extern void oggpack_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpack_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpack_look(oggpack_buffer *b,int bits); -extern long oggpack_look1(oggpack_buffer *b); -extern void oggpack_adv(oggpack_buffer *b,int bits); -extern void oggpack_adv1(oggpack_buffer *b); -extern long oggpack_read(oggpack_buffer *b,int bits); -extern long oggpack_read1(oggpack_buffer *b); -extern long oggpack_bytes(oggpack_buffer *b); -extern long oggpack_bits(oggpack_buffer *b); -extern unsigned char *oggpack_get_buffer(oggpack_buffer *b); - -extern void oggpackB_writeinit(oggpack_buffer *b); -extern int oggpackB_writecheck(oggpack_buffer *b); -extern void oggpackB_writetrunc(oggpack_buffer *b,long bits); -extern void oggpackB_writealign(oggpack_buffer *b); -extern void oggpackB_writecopy(oggpack_buffer *b,void *source,long bits); -extern void oggpackB_reset(oggpack_buffer *b); -extern void oggpackB_writeclear(oggpack_buffer *b); -extern void oggpackB_readinit(oggpack_buffer *b,unsigned char *buf,int bytes); -extern void oggpackB_write(oggpack_buffer *b,unsigned long value,int bits); -extern long oggpackB_look(oggpack_buffer *b,int bits); -extern long oggpackB_look1(oggpack_buffer *b); -extern void oggpackB_adv(oggpack_buffer *b,int bits); -extern void oggpackB_adv1(oggpack_buffer *b); -extern long oggpackB_read(oggpack_buffer *b,int bits); -extern long oggpackB_read1(oggpack_buffer *b); -extern long oggpackB_bytes(oggpack_buffer *b); -extern long oggpackB_bits(oggpack_buffer *b); -extern unsigned char *oggpackB_get_buffer(oggpack_buffer *b); - -/* Ogg BITSTREAM PRIMITIVES: encoding **************************/ - -extern int ogg_stream_packetin(ogg_stream_state *os, ogg_packet *op); -extern int ogg_stream_iovecin(ogg_stream_state *os, ogg_iovec_t *iov, - int count, long e_o_s, ogg_int64_t granulepos); -extern int ogg_stream_pageout(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_pageout_fill(ogg_stream_state *os, ogg_page *og, int nfill); -extern int ogg_stream_flush(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_flush_fill(ogg_stream_state *os, ogg_page *og, int nfill); - -/* Ogg BITSTREAM PRIMITIVES: decoding **************************/ - -extern int ogg_sync_init(ogg_sync_state *oy); -extern int ogg_sync_clear(ogg_sync_state *oy); -extern int ogg_sync_reset(ogg_sync_state *oy); -extern int ogg_sync_destroy(ogg_sync_state *oy); -extern int ogg_sync_check(ogg_sync_state *oy); - -extern char *ogg_sync_buffer(ogg_sync_state *oy, long size); -extern int ogg_sync_wrote(ogg_sync_state *oy, long bytes); -extern long ogg_sync_pageseek(ogg_sync_state *oy,ogg_page *og); -extern int ogg_sync_pageout(ogg_sync_state *oy, ogg_page *og); -extern int ogg_stream_pagein(ogg_stream_state *os, ogg_page *og); -extern int ogg_stream_packetout(ogg_stream_state *os,ogg_packet *op); -extern int ogg_stream_packetpeek(ogg_stream_state *os,ogg_packet *op); - -/* Ogg BITSTREAM PRIMITIVES: general ***************************/ - -extern int ogg_stream_init(ogg_stream_state *os,int serialno); -extern int ogg_stream_clear(ogg_stream_state *os); -extern int ogg_stream_reset(ogg_stream_state *os); -extern int ogg_stream_reset_serialno(ogg_stream_state *os,int serialno); -extern int ogg_stream_destroy(ogg_stream_state *os); -extern int ogg_stream_check(ogg_stream_state *os); -extern int ogg_stream_eos(ogg_stream_state *os); - -extern void ogg_page_checksum_set(ogg_page *og); - -extern int ogg_page_version(const ogg_page *og); -extern int ogg_page_continued(const ogg_page *og); -extern int ogg_page_bos(const ogg_page *og); -extern int ogg_page_eos(const ogg_page *og); -extern ogg_int64_t ogg_page_granulepos(const ogg_page *og); -extern int ogg_page_serialno(const ogg_page *og); -extern long ogg_page_pageno(const ogg_page *og); -extern int ogg_page_packets(const ogg_page *og); - -extern void ogg_packet_clear(ogg_packet *op); - - -#ifdef __cplusplus -} -#endif - -#endif /* _OGG_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/os_types.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/os_types.h deleted file mode 100644 index 88f05d23..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/ogg/os_types.h +++ /dev/null @@ -1,155 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2002 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - last mod: $Id$ - - ********************************************************************/ -#ifndef _OS_TYPES_H -#define _OS_TYPES_H - -/* make it easy on the folks that want to compile the libs with a - different malloc than stdlib */ -#define _ogg_malloc malloc -#define _ogg_calloc calloc -#define _ogg_realloc realloc -#define _ogg_free free - -#if defined(_WIN32) - -# if defined(__CYGWIN__) -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# elif defined(__MINGW32__) -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - typedef unsigned long long ogg_uint64_t; -# elif defined(__MWERKS__) - typedef long long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; -# else -# if defined(_MSC_VER) && (_MSC_VER >= 1800) /* MSVC 2013 and newer */ -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; -# else - /* MSVC/Borland */ - typedef __int64 ogg_int64_t; - typedef __int32 ogg_int32_t; - typedef unsigned __int32 ogg_uint32_t; - typedef __int16 ogg_int16_t; - typedef unsigned __int16 ogg_uint16_t; -# endif -# endif - -#elif (defined(__APPLE__) && defined(__MACH__)) /* MacOS X Framework build */ - -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined(__HAIKU__) - - /* Haiku */ -# include - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(__BEOS__) - - /* Be */ -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - -#elif defined (__EMX__) - - /* OS/2 GCC */ - typedef short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined (DJGPP) - - /* DJGPP */ - typedef short ogg_int16_t; - typedef int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long ogg_int64_t; - -#elif defined(R5900) - - /* PS2 EE */ - typedef long ogg_int64_t; - typedef int ogg_int32_t; - typedef unsigned ogg_uint32_t; - typedef short ogg_int16_t; - -#elif defined(__SYMBIAN32__) - - /* Symbian GCC */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#elif defined(__TMS320C6X__) - - /* TI C64x compiler */ - typedef signed short ogg_int16_t; - typedef unsigned short ogg_uint16_t; - typedef signed int ogg_int32_t; - typedef unsigned int ogg_uint32_t; - typedef long long int ogg_int64_t; - -#else - -/* Theorafile change! We assume you have stdint... */ -# include - typedef int16_t ogg_int16_t; - typedef uint16_t ogg_uint16_t; - typedef int32_t ogg_int32_t; - typedef uint32_t ogg_uint32_t; - typedef int64_t ogg_int64_t; - typedef uint64_t ogg_uint64_t; - -#endif - -#endif /* _OS_TYPES_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/apiwrapper.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/apiwrapper.c deleted file mode 100644 index dc959b8d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/apiwrapper.c +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: apiwrapper.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#include -#include -#include "apiwrapper.h" - - - -const char *theora_version_string(void){ - return th_version_string(); -} - -ogg_uint32_t theora_version_number(void){ - return th_version_number(); -} - -void theora_info_init(theora_info *_ci){ - memset(_ci,0,sizeof(*_ci)); -} - -void theora_info_clear(theora_info *_ci){ - th_api_wrapper *api; - api=(th_api_wrapper *)_ci->codec_setup; - memset(_ci,0,sizeof(*_ci)); - if(api!=NULL){ - if(api->clear!=NULL)(*api->clear)(api); - _ogg_free(api); - } -} - -void theora_clear(theora_state *_th){ - /*Provide compatibility with mixed encoder and decoder shared lib versions.*/ - if(_th->internal_decode!=NULL){ - (*((oc_state_dispatch_vtable *)_th->internal_decode)->clear)(_th); - } - if(_th->internal_encode!=NULL){ - (*((oc_state_dispatch_vtable *)_th->internal_encode)->clear)(_th); - } - if(_th->i!=NULL)theora_info_clear(_th->i); - memset(_th,0,sizeof(*_th)); -} - -int theora_control(theora_state *_th,int _req,void *_buf,size_t _buf_sz){ - /*Provide compatibility with mixed encoder and decoder shared lib versions.*/ - if(_th->internal_decode!=NULL){ - return (*((oc_state_dispatch_vtable *)_th->internal_decode)->control)(_th, - _req,_buf,_buf_sz); - } - else if(_th->internal_encode!=NULL){ - return (*((oc_state_dispatch_vtable *)_th->internal_encode)->control)(_th, - _req,_buf,_buf_sz); - } - else return TH_EINVAL; -} - -ogg_int64_t theora_granule_frame(theora_state *_th,ogg_int64_t _gp){ - /*Provide compatibility with mixed encoder and decoder shared lib versions.*/ - if(_th->internal_decode!=NULL){ - return (*((oc_state_dispatch_vtable *)_th->internal_decode)->granule_frame)( - _th,_gp); - } - else if(_th->internal_encode!=NULL){ - return (*((oc_state_dispatch_vtable *)_th->internal_encode)->granule_frame)( - _th,_gp); - } - else return -1; -} - -double theora_granule_time(theora_state *_th, ogg_int64_t _gp){ - /*Provide compatibility with mixed encoder and decoder shared lib versions.*/ - if(_th->internal_decode!=NULL){ - return (*((oc_state_dispatch_vtable *)_th->internal_decode)->granule_time)( - _th,_gp); - } - else if(_th->internal_encode!=NULL){ - return (*((oc_state_dispatch_vtable *)_th->internal_encode)->granule_time)( - _th,_gp); - } - else return -1; -} - -void oc_theora_info2th_info(th_info *_info,const theora_info *_ci){ - _info->version_major=_ci->version_major; - _info->version_minor=_ci->version_minor; - _info->version_subminor=_ci->version_subminor; - _info->frame_width=_ci->width; - _info->frame_height=_ci->height; - _info->pic_width=_ci->frame_width; - _info->pic_height=_ci->frame_height; - _info->pic_x=_ci->offset_x; - _info->pic_y=_ci->offset_y; - _info->fps_numerator=_ci->fps_numerator; - _info->fps_denominator=_ci->fps_denominator; - _info->aspect_numerator=_ci->aspect_numerator; - _info->aspect_denominator=_ci->aspect_denominator; - switch(_ci->colorspace){ - case OC_CS_ITU_REC_470M:_info->colorspace=TH_CS_ITU_REC_470M;break; - case OC_CS_ITU_REC_470BG:_info->colorspace=TH_CS_ITU_REC_470BG;break; - default:_info->colorspace=TH_CS_UNSPECIFIED;break; - } - switch(_ci->pixelformat){ - case OC_PF_420:_info->pixel_fmt=TH_PF_420;break; - case OC_PF_422:_info->pixel_fmt=TH_PF_422;break; - case OC_PF_444:_info->pixel_fmt=TH_PF_444;break; - default:_info->pixel_fmt=TH_PF_RSVD; - } - _info->target_bitrate=_ci->target_bitrate; - _info->quality=_ci->quality; - _info->keyframe_granule_shift=_ci->keyframe_frequency_force>0? - OC_MINI(31,oc_ilog(_ci->keyframe_frequency_force-1)):0; -} - -int theora_packet_isheader(ogg_packet *_op){ - return th_packet_isheader(_op); -} - -int theora_packet_iskeyframe(ogg_packet *_op){ - return th_packet_iskeyframe(_op); -} - -int theora_granule_shift(theora_info *_ci){ - /*This breaks when keyframe_frequency_force is not positive or is larger than - 2**31 (if your int is more than 32 bits), but that's what the original - function does.*/ - return oc_ilog(_ci->keyframe_frequency_force-1); -} - -void theora_comment_init(theora_comment *_tc){ - th_comment_init((th_comment *)_tc); -} - -char *theora_comment_query(theora_comment *_tc,char *_tag,int _count){ - return th_comment_query((th_comment *)_tc,_tag,_count); -} - -int theora_comment_query_count(theora_comment *_tc,char *_tag){ - return th_comment_query_count((th_comment *)_tc,_tag); -} - -void theora_comment_clear(theora_comment *_tc){ - th_comment_clear((th_comment *)_tc); -} - -void theora_comment_add(theora_comment *_tc,char *_comment){ - th_comment_add((th_comment *)_tc,_comment); -} - -void theora_comment_add_tag(theora_comment *_tc, char *_tag, char *_value){ - th_comment_add_tag((th_comment *)_tc,_tag,_value); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/apiwrapper.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/apiwrapper.h deleted file mode 100644 index 93454d7b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/apiwrapper.h +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: apiwrapper.h 13596 2007-08-23 20:05:38Z tterribe $ - - ********************************************************************/ - -#if !defined(_apiwrapper_H) -# define _apiwrapper_H (1) -# include -# include -# include "theora/theoradec.h" -# include "theora/theoraenc.h" -# include "internal.h" - -typedef struct th_api_wrapper th_api_wrapper; -typedef struct th_api_info th_api_info; - -/*Provide an entry point for the codec setup to clear itself in case we ever - want to break pieces off into a common base library shared by encoder and - decoder. - In addition, this makes several other pieces of the API wrapper cleaner.*/ -typedef void (*oc_setup_clear_func)(void *_ts); - -/*Generally only one of these pointers will be non-NULL in any given instance. - Technically we do not even really need this struct, since we should be able - to figure out which one from "context", but doing it this way makes sure we - don't flub it up.*/ -struct th_api_wrapper{ - oc_setup_clear_func clear; - th_setup_info *setup; - th_dec_ctx *decode; - th_enc_ctx *encode; -}; - -struct th_api_info{ - th_api_wrapper api; - theora_info info; -}; - - -void oc_theora_info2th_info(th_info *_info,const theora_info *_ci); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/bitpack.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/bitpack.c deleted file mode 100644 index 8195003b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/bitpack.c +++ /dev/null @@ -1,111 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggTheora SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: packing variable sized words into an octet stream - last mod: $Id: bitpack.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ -#include -#include -#include "bitpack.h" - -/*We're 'MSb' endian; if we write a word but read individual bits, - then we'll read the MSb first.*/ - -void oc_pack_readinit(oc_pack_buf *_b,unsigned char *_buf,long _bytes){ - memset(_b,0,sizeof(*_b)); - _b->ptr=_buf; - _b->stop=_buf+_bytes; -} - -static oc_pb_window oc_pack_refill(oc_pack_buf *_b,int _bits){ - const unsigned char *ptr; - const unsigned char *stop; - oc_pb_window window; - int available; - window=_b->window; - available=_b->bits; - ptr=_b->ptr; - stop=_b->stop; - while(available<=OC_PB_WINDOW_SIZE-8&&ptrptr=ptr; - if(_bits>available){ - if(ptr>=stop){ - _b->eof=1; - available=OC_LOTS_OF_BITS; - } - else window|=*ptr>>(available&7); - } - _b->bits=available; - return window; -} - -int oc_pack_look1(oc_pack_buf *_b){ - oc_pb_window window; - int available; - window=_b->window; - available=_b->bits; - if(available<1)_b->window=window=oc_pack_refill(_b,1); - return window>>OC_PB_WINDOW_SIZE-1; -} - -void oc_pack_adv1(oc_pack_buf *_b){ - _b->window<<=1; - _b->bits--; -} - -/*Here we assume that 0<=_bits&&_bits<=32.*/ -long oc_pack_read(oc_pack_buf *_b,int _bits){ - oc_pb_window window; - int available; - long result; - window=_b->window; - available=_b->bits; - if(_bits==0)return 0; - if(available<_bits){ - window=oc_pack_refill(_b,_bits); - available=_b->bits; - } - result=window>>OC_PB_WINDOW_SIZE-_bits; - available-=_bits; - window<<=1; - window<<=_bits-1; - _b->bits=available; - _b->window=window; - return result; -} - -int oc_pack_read1(oc_pack_buf *_b){ - oc_pb_window window; - int available; - int result; - window=_b->window; - available=_b->bits; - if(available<1){ - window=oc_pack_refill(_b,1); - available=_b->bits; - } - result=window>>OC_PB_WINDOW_SIZE-1; - available--; - window<<=1; - _b->bits=available; - _b->window=window; - return result; -} - -long oc_pack_bytes_left(oc_pack_buf *_b){ - if(_b->eof)return -1; - return _b->stop-_b->ptr+(_b->bits>>3); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/bitpack.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/bitpack.h deleted file mode 100644 index a020a292..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/bitpack.h +++ /dev/null @@ -1,59 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggTheora SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: packing variable sized words into an octet stream - last mod: $Id: bitwise.c 7675 2004-09-01 00:34:39Z xiphmont $ - - ********************************************************************/ -#if !defined(_bitpack_H) -# define _bitpack_H (1) -# include - - - -typedef unsigned long oc_pb_window; -typedef struct oc_pack_buf oc_pack_buf; - - - -# define OC_PB_WINDOW_SIZE ((int)sizeof(oc_pb_window)*CHAR_BIT) -/*This is meant to be a large, positive constant that can still be efficiently - loaded as an immediate (on platforms like ARM, for example). - Even relatively modest values like 100 would work fine.*/ -# define OC_LOTS_OF_BITS (0x40000000) - - - -struct oc_pack_buf{ - oc_pb_window window; - const unsigned char *ptr; - const unsigned char *stop; - int bits; - int eof; -}; - -void oc_pack_readinit(oc_pack_buf *_b,unsigned char *_buf,long _bytes); -int oc_pack_look1(oc_pack_buf *_b); -void oc_pack_adv1(oc_pack_buf *_b); -/*Here we assume 0<=_bits&&_bits<=32.*/ -long oc_pack_read(oc_pack_buf *_b,int _bits); -int oc_pack_read1(oc_pack_buf *_b); -/* returns -1 for read beyond EOF, or the number of whole bytes available */ -long oc_pack_bytes_left(oc_pack_buf *_b); - -/*These two functions are implemented locally in huffdec.c*/ -/*Read in bits without advancing the bitptr. - Here we assume 0<=_bits&&_bits<=32.*/ -/*static int oc_pack_look(oc_pack_buf *_b,int _bits);*/ -/*static void oc_pack_adv(oc_pack_buf *_b,int _bits);*/ - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/codec.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/codec.h deleted file mode 100644 index 5c266963..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/codec.h +++ /dev/null @@ -1,591 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $ - - ********************************************************************/ - -/**\mainpage - * - * \section intro Introduction - * - * This is the documentation for libtheora C API. - * The current reference - * implementation for Theora, a free, - * patent-unencumbered video codec. - * Theora is derived from On2's VP3 codec with additional features and - * integration with Ogg multimedia formats by - * the Xiph.Org Foundation. - * Complete documentation of the format itself is available in - * the Theora - * specification. - * - * \subsection Organization - * - * The functions documented here are actually subdivided into three - * separate libraries: - * - libtheoraenc contains the encoder interface, - * described in \ref encfuncs. - * - libtheoradec contains the decoder interface and - * routines shared with the encoder. - * You must also link to this if you link to libtheoraenc. - * The routines in this library are described in \ref decfuncs and - * \ref basefuncs. - * - libtheora contains the \ref oldfuncs. - * - * New code should link to libtheoradec and, if using encoder - * features, libtheoraenc. Together these two export both - * the standard and the legacy API, so this is all that is needed by - * any code. The older libtheora library is provided just for - * compatibility with older build configurations. - * - * In general the recommended 1.x API symbols can be distinguished - * by their th_ or TH_ namespace prefix. - * The older, legacy API uses theora_ or OC_ - * prefixes instead. - */ - -/**\file - * The shared libtheoradec and libtheoraenc C API. - * You don't need to include this directly.*/ - -#if !defined(_O_THEORA_CODEC_H_) -# define _O_THEORA_CODEC_H_ (1) -# include - -#if defined(__cplusplus) -extern "C" { -#endif - - - -/**\name Return codes*/ -/*@{*/ -/**An invalid pointer was provided.*/ -#define TH_EFAULT (-1) -/**An invalid argument was provided.*/ -#define TH_EINVAL (-10) -/**The contents of the header were incomplete, invalid, or unexpected.*/ -#define TH_EBADHEADER (-20) -/**The header does not belong to a Theora stream.*/ -#define TH_ENOTFORMAT (-21) -/**The bitstream version is too high.*/ -#define TH_EVERSION (-22) -/**The specified function is not implemented.*/ -#define TH_EIMPL (-23) -/**There were errors in the video data packet.*/ -#define TH_EBADPACKET (-24) -/**The decoded packet represented a dropped frame. - The player can continue to display the current frame, as the contents of the - decoded frame buffer have not changed.*/ -#define TH_DUPFRAME (1) -/*@}*/ - -/**The currently defined color space tags. - * See the Theora - * specification, Chapter 4, for exact details on the meaning - * of each of these color spaces.*/ -typedef enum{ - /**The color space was not specified at the encoder. - It may be conveyed by an external means.*/ - TH_CS_UNSPECIFIED, - /**A color space designed for NTSC content.*/ - TH_CS_ITU_REC_470M, - /**A color space designed for PAL/SECAM content.*/ - TH_CS_ITU_REC_470BG, - /**The total number of currently defined color spaces.*/ - TH_CS_NSPACES -}th_colorspace; - -/**The currently defined pixel format tags. - * See the Theora - * specification, Section 4.4, for details on the precise sample - * locations.*/ -typedef enum{ - /**Chroma decimation by 2 in both the X and Y directions (4:2:0). - The Cb and Cr chroma planes are half the width and half the - height of the luma plane.*/ - TH_PF_420, - /**Currently reserved.*/ - TH_PF_RSVD, - /**Chroma decimation by 2 in the X direction (4:2:2). - The Cb and Cr chroma planes are half the width of the luma plane, but full - height.*/ - TH_PF_422, - /**No chroma decimation (4:4:4). - The Cb and Cr chroma planes are full width and full height.*/ - TH_PF_444, - /**The total number of currently defined pixel formats.*/ - TH_PF_NFORMATS -}th_pixel_fmt; - - - -/**A buffer for a single color plane in an uncompressed image. - * This contains the image data in a left-to-right, top-down format. - * Each row of pixels is stored contiguously in memory, but successive - * rows need not be. - * Use \a stride to compute the offset of the next row. - * The encoder accepts both positive \a stride values (top-down in memory) - * and negative (bottom-up in memory). - * The decoder currently always generates images with positive strides.*/ -typedef struct{ - /**The width of this plane.*/ - int width; - /**The height of this plane.*/ - int height; - /**The offset in bytes between successive rows.*/ - int stride; - /**A pointer to the beginning of the first row.*/ - unsigned char *data; -}th_img_plane; - -/**A complete image buffer for an uncompressed frame. - * The chroma planes may be decimated by a factor of two in either - * direction, as indicated by th_info#pixel_fmt. - * The width and height of the Y' plane must be multiples of 16. - * They may need to be cropped for display, using the rectangle - * specified by th_info#pic_x, th_info#pic_y, th_info#pic_width, - * and th_info#pic_height. - * All samples are 8 bits. - * \note The term YUV often used to describe a colorspace is ambiguous. - * The exact parameters of the RGB to YUV conversion process aside, in - * many contexts the U and V channels actually have opposite meanings. - * To avoid this confusion, we are explicit: the name of the color - * channels are Y'CbCr, and they appear in that order, always. - * The prime symbol denotes that the Y channel is non-linear. - * Cb and Cr stand for "Chroma blue" and "Chroma red", respectively.*/ -typedef th_img_plane th_ycbcr_buffer[3]; - -/**Theora bitstream information. - * This contains the basic playback parameters for a stream, and corresponds to - * the initial 'info' header packet. - * To initialize an encoder, the application fills in this structure and - * passes it to th_encode_alloc(). - * A default encoding mode is chosen based on the values of the #quality and - * #target_bitrate fields. - * On decode, it is filled in by th_decode_headerin(), and then passed to - * th_decode_alloc(). - * - * Encoded Theora frames must be a multiple of 16 in size; - * this is what the #frame_width and #frame_height members represent. - * To handle arbitrary picture sizes, a crop rectangle is specified in the - * #pic_x, #pic_y, #pic_width and #pic_height members. - * - * All frame buffers contain pointers to the full, padded frame. - * However, the current encoder will not reference pixels outside of - * the cropped picture region, and the application does not need to fill them - * in. - * The decoder will allocate storage for a full frame, but the - * application should not rely on the padding containing sensible - * data. - * - * It is also generally recommended that the offsets and sizes should still be - * multiples of 2 to avoid chroma sampling shifts when chroma is sub-sampled. - * See the Theora - * specification, Section 4.4, for more details. - * - * Frame rate, in frames per second, is stored as a rational fraction, as is - * the pixel aspect ratio. - * Note that this refers to the aspect ratio of the individual pixels, not of - * the overall frame itself. - * The frame aspect ratio can be computed from pixel aspect ratio using the - * image dimensions.*/ -typedef struct{ - /**\name Theora version - * Bitstream version information.*/ - /*@{*/ - unsigned char version_major; - unsigned char version_minor; - unsigned char version_subminor; - /*@}*/ - /**The encoded frame width. - * This must be a multiple of 16, and less than 1048576.*/ - ogg_uint32_t frame_width; - /**The encoded frame height. - * This must be a multiple of 16, and less than 1048576.*/ - ogg_uint32_t frame_height; - /**The displayed picture width. - * This must be no larger than width.*/ - ogg_uint32_t pic_width; - /**The displayed picture height. - * This must be no larger than height.*/ - ogg_uint32_t pic_height; - /**The X offset of the displayed picture. - * This must be no larger than #frame_width-#pic_width or 255, whichever is - * smaller.*/ - ogg_uint32_t pic_x; - /**The Y offset of the displayed picture. - * This must be no larger than #frame_height-#pic_height, and - * #frame_height-#pic_height-#pic_y must be no larger than 255. - * This slightly funny restriction is due to the fact that the offset is - * specified from the top of the image for consistency with the standard - * graphics left-handed coordinate system used throughout this API, while - * it is stored in the encoded stream as an offset from the bottom.*/ - ogg_uint32_t pic_y; - /**\name Frame rate - * The frame rate, as a fraction. - * If either is 0, the frame rate is undefined.*/ - /*@{*/ - ogg_uint32_t fps_numerator; - ogg_uint32_t fps_denominator; - /*@}*/ - /**\name Aspect ratio - * The aspect ratio of the pixels. - * If either value is zero, the aspect ratio is undefined. - * If not specified by any external means, 1:1 should be assumed. - * The aspect ratio of the full picture can be computed as - * \code - * aspect_numerator*pic_width/(aspect_denominator*pic_height). - * \endcode */ - /*@{*/ - ogg_uint32_t aspect_numerator; - ogg_uint32_t aspect_denominator; - /*@}*/ - /**The color space.*/ - th_colorspace colorspace; - /**The pixel format.*/ - th_pixel_fmt pixel_fmt; - /**The target bit-rate in bits per second. - If initializing an encoder with this struct, set this field to a non-zero - value to activate CBR encoding by default.*/ - int target_bitrate; - /**The target quality level. - Valid values range from 0 to 63, inclusive, with higher values giving - higher quality. - If initializing an encoder with this struct, and #target_bitrate is set - to zero, VBR encoding at this quality will be activated by default.*/ - /*Currently this is set so that a qi of 0 corresponds to distortions of 24 - times the JND, and each increase by 16 halves that value. - This gives us fine discrimination at low qualities, yet effective rate - control at high qualities. - The qi value 63 is special, however. - For this, the highest quality, we use one half of a JND for our threshold. - Due to the lower bounds placed on allowable quantizers in Theora, we will - not actually be able to achieve quality this good, but this should - provide as close to visually lossless quality as Theora is capable of. - We could lift the quantizer restrictions without breaking VP3.1 - compatibility, but this would result in quantized coefficients that are - too large for the current bitstream to be able to store. - We'd have to redesign the token syntax to store these large coefficients, - which would make transcoding complex.*/ - int quality; - /**The amount to shift to extract the last keyframe number from the granule - * position. - * This can be at most 31. - * th_info_init() will set this to a default value (currently 6, - * which is good for streaming applications), but you can set it to 0 to - * make every frame a keyframe. - * The maximum distance between key frames is - * 1<<#keyframe_granule_shift. - * The keyframe frequency can be more finely controlled with - * #TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE, which can also be adjusted - * during encoding (for example, to force the next frame to be a keyframe), - * but it cannot be set larger than the amount permitted by this field after - * the headers have been output.*/ - int keyframe_granule_shift; -}th_info; - -/**The comment information. - * - * This structure holds the in-stream metadata corresponding to - * the 'comment' header packet. - * The comment header is meant to be used much like someone jotting a quick - * note on the label of a video. - * It should be a short, to the point text note that can be more than a couple - * words, but not more than a short paragraph. - * - * The metadata is stored as a series of (tag, value) pairs, in - * length-encoded string vectors. - * The first occurrence of the '=' character delimits the tag and value. - * A particular tag may occur more than once, and order is significant. - * The character set encoding for the strings is always UTF-8, but the tag - * names are limited to ASCII, and treated as case-insensitive. - * See the Theora - * specification, Section 6.3.3 for details. - * - * In filling in this structure, th_decode_headerin() will null-terminate - * the user_comment strings for safety. - * However, the bitstream format itself treats them as 8-bit clean vectors, - * possibly containing null characters, and so the length array should be - * treated as their authoritative length. - */ -typedef struct th_comment{ - /**The array of comment string vectors.*/ - char **user_comments; - /**An array of the corresponding length of each vector, in bytes.*/ - int *comment_lengths; - /**The total number of comment strings.*/ - int comments; - /**The null-terminated vendor string. - This identifies the software used to encode the stream.*/ - char *vendor; -}th_comment; - - - -/**A single base matrix.*/ -typedef unsigned char th_quant_base[64]; - -/**A set of \a qi ranges.*/ -typedef struct{ - /**The number of ranges in the set.*/ - int nranges; - /**The size of each of the #nranges ranges. - These must sum to 63.*/ - const int *sizes; - /**#nranges +1 base matrices. - Matrices \a i and i+1 form the endpoints of range \a i.*/ - const th_quant_base *base_matrices; -}th_quant_ranges; - -/**A complete set of quantization parameters. - The quantizer for each coefficient is calculated as: - \code - Q=MAX(MIN(qmin[qti][ci!=0],scale[ci!=0][qi]*base[qti][pli][qi][ci]/100), - 1024). - \endcode - - \a qti is the quantization type index: 0 for intra, 1 for inter. - ci!=0 is 0 for the DC coefficient and 1 for AC coefficients. - \a qi is the quality index, ranging between 0 (low quality) and 63 (high - quality). - \a pli is the color plane index: 0 for Y', 1 for Cb, 2 for Cr. - \a ci is the DCT coefficient index. - Coefficient indices correspond to the normal 2D DCT block - ordering--row-major with low frequencies first--\em not zig-zag order. - - Minimum quantizers are constant, and are given by: - \code - qmin[2][2]={{4,2},{8,4}}. - \endcode - - Parameters that can be stored in the bitstream are as follows: - - The two scale matrices ac_scale and dc_scale. - \code - scale[2][64]={dc_scale,ac_scale}. - \endcode - - The base matrices for each \a qi, \a qti and \a pli (up to 384 in all). - In order to avoid storing a full 384 base matrices, only a sparse set of - matrices are stored, and the rest are linearly interpolated. - This is done as follows. - For each \a qti and \a pli, a series of \a n \a qi ranges is defined. - The size of each \a qi range can vary arbitrarily, but they must sum to - 63. - Then, n+1 matrices are specified, one for each endpoint of the - ranges. - For interpolation purposes, each range's endpoints are the first \a qi - value it contains and one past the last \a qi value it contains. - Fractional values are rounded to the nearest integer, with ties rounded - away from zero. - - Base matrices are stored by reference, so if the same matrices are used - multiple times, they will only appear once in the bitstream. - The bitstream is also capable of omitting an entire set of ranges and - its associated matrices if they are the same as either the previous - set (indexed in row-major order) or if the inter set is the same as the - intra set. - - - Loop filter limit values. - The same limits are used for the loop filter in all color planes, despite - potentially differing levels of quantization in each. - - For the current encoder, scale[ci!=0][qi] must be no greater - than scale[ci!=0][qi-1] and base[qti][pli][qi][ci] must - be no greater than base[qti][pli][qi-1][ci]. - These two conditions ensure that the actual quantizer for a given \a qti, - \a pli, and \a ci does not increase as \a qi increases. - This is not required by the decoder.*/ -typedef struct{ - /**The DC scaling factors.*/ - ogg_uint16_t dc_scale[64]; - /**The AC scaling factors.*/ - ogg_uint16_t ac_scale[64]; - /**The loop filter limit values.*/ - unsigned char loop_filter_limits[64]; - /**The \a qi ranges for each \a ci and \a pli.*/ - th_quant_ranges qi_ranges[2][3]; -}th_quant_info; - - - -/**The number of Huffman tables used by Theora.*/ -#define TH_NHUFFMAN_TABLES (80) -/**The number of DCT token values in each table.*/ -#define TH_NDCT_TOKENS (32) - -/**A Huffman code for a Theora DCT token. - * Each set of Huffman codes in a given table must form a complete, prefix-free - * code. - * There is no requirement that all the tokens in a table have a valid code, - * but the current encoder is not optimized to take advantage of this. - * If each of the five grouops of 16 tables does not contain at least one table - * with a code for every token, then the encoder may fail to encode certain - * frames. - * The complete table in the first group of 16 does not have to be in the same - * place as the complete table in the other groups, but the complete tables in - * the remaining four groups must all be in the same place.*/ -typedef struct{ - /**The bit pattern for the code, with the LSbit of the pattern aligned in - * the LSbit of the word.*/ - ogg_uint32_t pattern; - /**The number of bits in the code. - * This must be between 0 and 32, inclusive.*/ - int nbits; -}th_huff_code; - - - -/**\defgroup basefuncs Functions Shared by Encode and Decode*/ -/*@{*/ -/**\name Basic shared functions*/ -/*@{*/ -/**Retrieves a human-readable string to identify the library vendor and - * version. - * \return the version string.*/ -extern const char *th_version_string(void); -/**Retrieves the library version number. - * This is the highest bitstream version that the encoder library will produce, - * or that the decoder library can decode. - * This number is composed of a 16-bit major version, 8-bit minor version - * and 8 bit sub-version, composed as follows: - * \code - * (VERSION_MAJOR<<16)+(VERSION_MINOR<<8)+(VERSION_SUBMINOR) - * \endcode - * \return the version number.*/ -extern ogg_uint32_t th_version_number(void); -/**Converts a granule position to an absolute frame index, starting at - * 0. - * The granule position is interpreted in the context of a given - * #th_enc_ctx or #th_dec_ctx handle (either will suffice). - * \param _encdec A previously allocated #th_enc_ctx or #th_dec_ctx - * handle. - * \param _granpos The granule position to convert. - * \returns The absolute frame index corresponding to \a _granpos. - * \retval -1 The given granule position was invalid (i.e. negative).*/ -extern ogg_int64_t th_granule_frame(void *_encdec,ogg_int64_t _granpos); -/**Converts a granule position to an absolute time in seconds. - * The granule position is interpreted in the context of a given - * #th_enc_ctx or #th_dec_ctx handle (either will suffice). - * \param _encdec A previously allocated #th_enc_ctx or #th_dec_ctx - * handle. - * \param _granpos The granule position to convert. - * \return The absolute time in seconds corresponding to \a _granpos. - * This is the "end time" for the frame, or the latest time it should - * be displayed. - * It is not the presentation time. - * \retval -1 The given granule position was invalid (i.e. negative).*/ -extern double th_granule_time(void *_encdec,ogg_int64_t _granpos); -/**Determines whether a Theora packet is a header or not. - * This function does no verification beyond checking the packet type bit, so - * it should not be used for bitstream identification; use - * th_decode_headerin() for that. - * As per the Theora specification, an empty (0-byte) packet is treated as a - * data packet (a delta frame with no coded blocks). - * \param _op An ogg_packet containing encoded Theora data. - * \retval 1 The packet is a header packet - * \retval 0 The packet is a video data packet.*/ -extern int th_packet_isheader(ogg_packet *_op); -/**Determines whether a theora packet is a key frame or not. - * This function does no verification beyond checking the packet type and - * key frame bits, so it should not be used for bitstream identification; use - * th_decode_headerin() for that. - * As per the Theora specification, an empty (0-byte) packet is treated as a - * delta frame (with no coded blocks). - * \param _op An ogg_packet containing encoded Theora data. - * \retval 1 The packet contains a key frame. - * \retval 0 The packet contains a delta frame. - * \retval -1 The packet is not a video data packet.*/ -extern int th_packet_iskeyframe(ogg_packet *_op); -/*@}*/ - - -/**\name Functions for manipulating header data*/ -/*@{*/ -/**Initializes a th_info structure. - * This should be called on a freshly allocated #th_info structure before - * attempting to use it. - * \param _info The #th_info struct to initialize.*/ -extern void th_info_init(th_info *_info); -/**Clears a #th_info structure. - * This should be called on a #th_info structure after it is no longer - * needed. - * \param _info The #th_info struct to clear.*/ -extern void th_info_clear(th_info *_info); - -/**Initialize a #th_comment structure. - * This should be called on a freshly allocated #th_comment structure - * before attempting to use it. - * \param _tc The #th_comment struct to initialize.*/ -extern void th_comment_init(th_comment *_tc); -/**Add a comment to an initialized #th_comment structure. - * \note Neither th_comment_add() nor th_comment_add_tag() support - * comments containing null values, although the bitstream format does - * support them. - * To add such comments you will need to manipulate the #th_comment - * structure directly. - * \param _tc The #th_comment struct to add the comment to. - * \param _comment Must be a null-terminated UTF-8 string containing the - * comment in "TAG=the value" form.*/ -extern void th_comment_add(th_comment *_tc, char *_comment); -/**Add a comment to an initialized #th_comment structure. - * \note Neither th_comment_add() nor th_comment_add_tag() support - * comments containing null values, although the bitstream format does - * support them. - * To add such comments you will need to manipulate the #th_comment - * structure directly. - * \param _tc The #th_comment struct to add the comment to. - * \param _tag A null-terminated string containing the tag associated with - * the comment. - * \param _val The corresponding value as a null-terminated string.*/ -extern void th_comment_add_tag(th_comment *_tc,char *_tag,char *_val); -/**Look up a comment value by its tag. - * \param _tc An initialized #th_comment structure. - * \param _tag The tag to look up. - * \param _count The instance of the tag. - * The same tag can appear multiple times, each with a distinct - * value, so an index is required to retrieve them all. - * The order in which these values appear is significant and - * should be preserved. - * Use th_comment_query_count() to get the legal range for - * the \a _count parameter. - * \return A pointer to the queried tag's value. - * This points directly to data in the #th_comment structure. - * It should not be modified or freed by the application, and - * modifications to the structure may invalidate the pointer. - * \retval NULL If no matching tag is found.*/ -extern char *th_comment_query(th_comment *_tc,char *_tag,int _count); -/**Look up the number of instances of a tag. - * Call this first when querying for a specific tag and then iterate over the - * number of instances with separate calls to th_comment_query() to - * retrieve all the values for that tag in order. - * \param _tc An initialized #th_comment structure. - * \param _tag The tag to look up. - * \return The number on instances of this particular tag.*/ -extern int th_comment_query_count(th_comment *_tc,char *_tag); -/**Clears a #th_comment structure. - * This should be called on a #th_comment structure after it is no longer - * needed. - * It will free all memory used by the structure members. - * \param _tc The #th_comment struct to clear.*/ -extern void th_comment_clear(th_comment *_tc); -/*@}*/ -/*@}*/ - - - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/cpu.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/cpu.c deleted file mode 100644 index a863aad7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/cpu.c +++ /dev/null @@ -1,226 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - CPU capability detection for x86 processors. - Originally written by Rudolf Marek. - - function: - last mod: $Id: cpu.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include "cpu.h" - -#if !defined(OC_X86_ASM) -static ogg_uint32_t oc_cpu_flags_get(void){ - return 0; -} -#else -# if !defined(_MSC_VER) -# if defined(__amd64__)||defined(__x86_64__) -/*On x86-64, gcc seems to be able to figure out how to save %rbx for us when - compiling with -fPIC.*/ -# define cpuid(_op,_eax,_ebx,_ecx,_edx) \ - __asm__ __volatile__( \ - "cpuid\n\t" \ - :[eax]"=a"(_eax),[ebx]"=b"(_ebx),[ecx]"=c"(_ecx),[edx]"=d"(_edx) \ - :"a"(_op) \ - :"cc" \ - ) -# else -/*On x86-32, not so much.*/ -# define cpuid(_op,_eax,_ebx,_ecx,_edx) \ - __asm__ __volatile__( \ - "xchgl %%ebx,%[ebx]\n\t" \ - "cpuid\n\t" \ - "xchgl %%ebx,%[ebx]\n\t" \ - :[eax]"=a"(_eax),[ebx]"=r"(_ebx),[ecx]"=c"(_ecx),[edx]"=d"(_edx) \ - :"a"(_op) \ - :"cc" \ - ) -# endif -# else -/*Why does MSVC need this complicated rigamarole? - At this point I honestly do not care.*/ - -/*Visual C cpuid helper function. - For VS2005 we could as well use the _cpuid builtin, but that wouldn't work - for VS2003 users, so we do it in inline assembler.*/ -static void oc_cpuid_helper(ogg_uint32_t _cpu_info[4],ogg_uint32_t _op){ - _asm{ - mov eax,[_op] - mov esi,_cpu_info - cpuid - mov [esi+0],eax - mov [esi+4],ebx - mov [esi+8],ecx - mov [esi+12],edx - } -} - -# define cpuid(_op,_eax,_ebx,_ecx,_edx) \ - do{ \ - ogg_uint32_t cpu_info[4]; \ - oc_cpuid_helper(cpu_info,_op); \ - (_eax)=cpu_info[0]; \ - (_ebx)=cpu_info[1]; \ - (_ecx)=cpu_info[2]; \ - (_edx)=cpu_info[3]; \ - }while(0) - -static void oc_detect_cpuid_helper(ogg_uint32_t *_eax,ogg_uint32_t *_ebx){ - _asm{ - pushfd - pushfd - pop eax - mov ebx,eax - xor eax,200000h - push eax - popfd - pushfd - pop eax - popfd - mov ecx,_eax - mov [ecx],eax - mov ecx,_ebx - mov [ecx],ebx - } -} -# endif - -static ogg_uint32_t oc_parse_intel_flags(ogg_uint32_t _edx,ogg_uint32_t _ecx){ - ogg_uint32_t flags; - /*If there isn't even MMX, give up.*/ - if(!(_edx&0x00800000))return 0; - flags=OC_CPU_X86_MMX; - if(_edx&0x02000000)flags|=OC_CPU_X86_MMXEXT|OC_CPU_X86_SSE; - if(_edx&0x04000000)flags|=OC_CPU_X86_SSE2; - if(_ecx&0x00000001)flags|=OC_CPU_X86_PNI; - if(_ecx&0x00000100)flags|=OC_CPU_X86_SSSE3; - if(_ecx&0x00080000)flags|=OC_CPU_X86_SSE4_1; - if(_ecx&0x00100000)flags|=OC_CPU_X86_SSE4_2; - return flags; -} - -static ogg_uint32_t oc_parse_amd_flags(ogg_uint32_t _edx,ogg_uint32_t _ecx){ - ogg_uint32_t flags; - /*If there isn't even MMX, give up.*/ - if(!(_edx&0x00800000))return 0; - flags=OC_CPU_X86_MMX; - if(_edx&0x00400000)flags|=OC_CPU_X86_MMXEXT; - if(_edx&0x80000000)flags|=OC_CPU_X86_3DNOW; - if(_edx&0x40000000)flags|=OC_CPU_X86_3DNOWEXT; - if(_ecx&0x00000040)flags|=OC_CPU_X86_SSE4A; - if(_ecx&0x00000800)flags|=OC_CPU_X86_SSE5; - return flags; -} - -static ogg_uint32_t oc_cpu_flags_get(void){ - ogg_uint32_t flags; - ogg_uint32_t eax; - ogg_uint32_t ebx; - ogg_uint32_t ecx; - ogg_uint32_t edx; -# if !defined(__amd64__)&&!defined(__x86_64__) - /*Not all x86-32 chips support cpuid, so we have to check.*/ -# if !defined(_MSC_VER) - __asm__ __volatile__( - "pushfl\n\t" - "pushfl\n\t" - "popl %[a]\n\t" - "movl %[a],%[b]\n\t" - "xorl $0x200000,%[a]\n\t" - "pushl %[a]\n\t" - "popfl\n\t" - "pushfl\n\t" - "popl %[a]\n\t" - "popfl\n\t" - :[a]"=r"(eax),[b]"=r"(ebx) - : - :"cc" - ); -# else - oc_detect_cpuid_helper(&eax,&ebx); -# endif - /*No cpuid.*/ - if(eax==ebx)return 0; -# endif - cpuid(0,eax,ebx,ecx,edx); - /* l e t n I e n i u n e G*/ - if(ecx==0x6C65746E&&edx==0x49656E69&&ebx==0x756E6547|| - /* 6 8 x M T e n i u n e G*/ - ecx==0x3638784D&&edx==0x54656E69&&ebx==0x756E6547){ - /*Intel, Transmeta (tested with Crusoe TM5800):*/ - cpuid(1,eax,ebx,ecx,edx); - flags=oc_parse_intel_flags(edx,ecx); - } - /* D M A c i t n e h t u A*/ - else if(ecx==0x444D4163&&edx==0x69746E65&&ebx==0x68747541|| - /* C S N y b e d o e G*/ - ecx==0x43534e20&&edx==0x79622065&&ebx==0x646f6547){ - /*AMD, Geode:*/ - cpuid(0x80000000,eax,ebx,ecx,edx); - if(eax<0x80000001)flags=0; - else{ - cpuid(0x80000001,eax,ebx,ecx,edx); - flags=oc_parse_amd_flags(edx,ecx); - } - /*Also check for SSE.*/ - cpuid(1,eax,ebx,ecx,edx); - flags|=oc_parse_intel_flags(edx,ecx); - } - /*Technically some VIA chips can be configured in the BIOS to return any - string here the user wants. - There is a special detection method that can be used to identify such - processors, but in my opinion, if the user really wants to change it, they - deserve what they get.*/ - /* s l u a H r u a t n e C*/ - else if(ecx==0x736C7561&&edx==0x48727561&&ebx==0x746E6543){ - /*VIA:*/ - /*I only have documentation for the C7 (Esther) and Isaiah (forthcoming) - chips (thanks to the engineers from Centaur Technology who provided it). - These chips support Intel-like cpuid info. - The C3-2 (Nehemiah) cores appear to, as well.*/ - cpuid(1,eax,ebx,ecx,edx); - flags=oc_parse_intel_flags(edx,ecx); - if(eax>=0x80000001){ - /*The (non-Nehemiah) C3 processors support AMD-like cpuid info. - We need to check this even if the Intel test succeeds to pick up 3DNow! - support on these processors. - Unlike actual AMD processors, we cannot _rely_ on this info, since - some cores (e.g., the 693 stepping of the Nehemiah) claim to support - this function, yet return edx=0, despite the Intel test indicating - MMX support. - Therefore the features detected here are strictly added to those - detected by the Intel test.*/ - /*TODO: How about earlier chips?*/ - cpuid(0x80000001,eax,ebx,ecx,edx); - /*Note: As of the C7, this function returns Intel-style extended feature - flags, not AMD-style. - Currently, this only defines bits 11, 20, and 29 (0x20100800), which - do not conflict with any of the AMD flags we inspect. - For the remaining bits, Intel tells us, "Do not count on their value", - but VIA assures us that they will all be zero (at least on the C7 and - Isaiah chips). - In the (unlikely) event a future processor uses bits 18, 19, 30, or 31 - (0xC0C00000) for something else, we will have to add code to detect - the model to decide when it is appropriate to inspect them.*/ - flags|=oc_parse_amd_flags(edx,ecx); - } - } - else{ - /*Implement me.*/ - flags=0; - } - return flags; -} -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/cpu.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/cpu.h deleted file mode 100644 index a43c957a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/cpu.h +++ /dev/null @@ -1,34 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - function: - last mod: $Id: cpu.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#if !defined(_x86_cpu_H) -# define _x86_cpu_H (1) -#include "internal.h" - -#define OC_CPU_X86_MMX (1<<0) -#define OC_CPU_X86_3DNOW (1<<1) -#define OC_CPU_X86_3DNOWEXT (1<<2) -#define OC_CPU_X86_MMXEXT (1<<3) -#define OC_CPU_X86_SSE (1<<4) -#define OC_CPU_X86_SSE2 (1<<5) -#define OC_CPU_X86_PNI (1<<6) -#define OC_CPU_X86_SSSE3 (1<<7) -#define OC_CPU_X86_SSE4_1 (1<<8) -#define OC_CPU_X86_SSE4_2 (1<<9) -#define OC_CPU_X86_SSE4A (1<<10) -#define OC_CPU_X86_SSE5 (1<<11) - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/dct.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/dct.h deleted file mode 100644 index 24ba6f11..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/dct.h +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: dct.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -/*Definitions shared by the forward and inverse DCT transforms.*/ -#if !defined(_dct_H) -# define _dct_H (1) - -/*cos(n*pi/16) (resp. sin(m*pi/16)) scaled by 65536.*/ -#define OC_C1S7 ((ogg_int32_t)64277) -#define OC_C2S6 ((ogg_int32_t)60547) -#define OC_C3S5 ((ogg_int32_t)54491) -#define OC_C4S4 ((ogg_int32_t)46341) -#define OC_C5S3 ((ogg_int32_t)36410) -#define OC_C6S2 ((ogg_int32_t)25080) -#define OC_C7S1 ((ogg_int32_t)12785) - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decapiwrapper.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decapiwrapper.c deleted file mode 100644 index 12ea475d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decapiwrapper.c +++ /dev/null @@ -1,193 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: decapiwrapper.c 13596 2007-08-23 20:05:38Z tterribe $ - - ********************************************************************/ - -#include -#include -#include -#include "apiwrapper.h" -#include "decint.h" -#include "theora/theoradec.h" - -static void th_dec_api_clear(th_api_wrapper *_api){ - if(_api->setup)th_setup_free(_api->setup); - if(_api->decode)th_decode_free(_api->decode); - memset(_api,0,sizeof(*_api)); -} - -static void theora_decode_clear(theora_state *_td){ - if(_td->i!=NULL)theora_info_clear(_td->i); - memset(_td,0,sizeof(*_td)); -} - -static int theora_decode_control(theora_state *_td,int _req, - void *_buf,size_t _buf_sz){ - return th_decode_ctl(((th_api_wrapper *)_td->i->codec_setup)->decode, - _req,_buf,_buf_sz); -} - -static ogg_int64_t theora_decode_granule_frame(theora_state *_td, - ogg_int64_t _gp){ - return th_granule_frame(((th_api_wrapper *)_td->i->codec_setup)->decode,_gp); -} - -static double theora_decode_granule_time(theora_state *_td,ogg_int64_t _gp){ - return th_granule_time(((th_api_wrapper *)_td->i->codec_setup)->decode,_gp); -} - -static const oc_state_dispatch_vtable OC_DEC_DISPATCH_VTBL={ - (oc_state_clear_func)theora_decode_clear, - (oc_state_control_func)theora_decode_control, - (oc_state_granule_frame_func)theora_decode_granule_frame, - (oc_state_granule_time_func)theora_decode_granule_time, -}; - -static void th_info2theora_info(theora_info *_ci,const th_info *_info){ - _ci->version_major=_info->version_major; - _ci->version_minor=_info->version_minor; - _ci->version_subminor=_info->version_subminor; - _ci->width=_info->frame_width; - _ci->height=_info->frame_height; - _ci->frame_width=_info->pic_width; - _ci->frame_height=_info->pic_height; - _ci->offset_x=_info->pic_x; - _ci->offset_y=_info->pic_y; - _ci->fps_numerator=_info->fps_numerator; - _ci->fps_denominator=_info->fps_denominator; - _ci->aspect_numerator=_info->aspect_numerator; - _ci->aspect_denominator=_info->aspect_denominator; - switch(_info->colorspace){ - case TH_CS_ITU_REC_470M:_ci->colorspace=OC_CS_ITU_REC_470M;break; - case TH_CS_ITU_REC_470BG:_ci->colorspace=OC_CS_ITU_REC_470BG;break; - default:_ci->colorspace=OC_CS_UNSPECIFIED;break; - } - switch(_info->pixel_fmt){ - case TH_PF_420:_ci->pixelformat=OC_PF_420;break; - case TH_PF_422:_ci->pixelformat=OC_PF_422;break; - case TH_PF_444:_ci->pixelformat=OC_PF_444;break; - default:_ci->pixelformat=OC_PF_RSVD; - } - _ci->target_bitrate=_info->target_bitrate; - _ci->quality=_info->quality; - _ci->keyframe_frequency_force=1<<_info->keyframe_granule_shift; -} - -int theora_decode_init(theora_state *_td,theora_info *_ci){ - th_api_info *apiinfo; - th_api_wrapper *api; - th_info info; - api=(th_api_wrapper *)_ci->codec_setup; - /*Allocate our own combined API wrapper/theora_info struct. - We put them both in one malloc'd block so that when the API wrapper is - freed, the info struct goes with it. - This avoids having to figure out whether or not we need to free the info - struct in either theora_info_clear() or theora_clear().*/ - apiinfo=(th_api_info *)_ogg_calloc(1,sizeof(*apiinfo)); - if(apiinfo==NULL)return OC_FAULT; - /*Make our own copy of the info struct, since its lifetime should be - independent of the one we were passed in.*/ - *&apiinfo->info=*_ci; - /*Convert the info struct now instead of saving the the one we decoded with - theora_decode_header(), since the user might have modified values (i.e., - color space, aspect ratio, etc. can be specified from a higher level). - The user also might be doing something "clever" with the header packets if - they are not using an Ogg encapsulation.*/ - oc_theora_info2th_info(&info,_ci); - /*Don't bother to copy the setup info; th_decode_alloc() makes its own copy - of the stuff it needs.*/ - apiinfo->api.decode=th_decode_alloc(&info,api->setup); - if(apiinfo->api.decode==NULL){ - _ogg_free(apiinfo); - return OC_EINVAL; - } - apiinfo->api.clear=(oc_setup_clear_func)th_dec_api_clear; - _td->internal_encode=NULL; - /*Provide entry points for ABI compatibility with old decoder shared libs.*/ - _td->internal_decode=(void *)&OC_DEC_DISPATCH_VTBL; - _td->granulepos=0; - _td->i=&apiinfo->info; - _td->i->codec_setup=&apiinfo->api; - return 0; -} - -int theora_decode_header(theora_info *_ci,theora_comment *_cc,ogg_packet *_op){ - th_api_wrapper *api; - th_info info; - int ret; - api=(th_api_wrapper *)_ci->codec_setup; - /*Allocate an API wrapper struct on demand, since it will not also include a - theora_info struct like the ones that are used in a theora_state struct.*/ - if(api==NULL){ - _ci->codec_setup=_ogg_calloc(1,sizeof(*api)); - if(_ci->codec_setup==NULL)return OC_FAULT; - api=(th_api_wrapper *)_ci->codec_setup; - api->clear=(oc_setup_clear_func)th_dec_api_clear; - } - /*Convert from the theora_info struct instead of saving our own th_info - struct between calls. - The user might be doing something "clever" with the header packets if they - are not using an Ogg encapsulation, and we don't want to break this.*/ - oc_theora_info2th_info(&info,_ci); - /*We rely on the fact that theora_comment and th_comment structures are - actually identical. - Take care not to change this fact unless you change the code here as - well!*/ - ret=th_decode_headerin(&info,(th_comment *)_cc,&api->setup,_op); - /*We also rely on the fact that the error return code values are the same, - and that the implementations of these two functions return the same set of - them. - Note that theora_decode_header() really can return OC_NOTFORMAT, even - though it is not currently documented to do so.*/ - if(ret<0)return ret; - th_info2theora_info(_ci,&info); - return 0; -} - -int theora_decode_packetin(theora_state *_td,ogg_packet *_op){ - th_api_wrapper *api; - ogg_int64_t gp; - int ret; - if(!_td||!_td->i||!_td->i->codec_setup)return OC_FAULT; - api=(th_api_wrapper *)_td->i->codec_setup; - ret=th_decode_packetin(api->decode,_op,&gp); - if(ret<0)return OC_BADPACKET; - _td->granulepos=gp; - return 0; -} - -int theora_decode_YUVout(theora_state *_td,yuv_buffer *_yuv){ - th_api_wrapper *api; - th_dec_ctx *decode; - th_ycbcr_buffer buf; - int ret; - if(!_td||!_td->i||!_td->i->codec_setup)return OC_FAULT; - api=(th_api_wrapper *)_td->i->codec_setup; - decode=(th_dec_ctx *)api->decode; - if(!decode)return OC_FAULT; - ret=th_decode_ycbcr_out(decode,buf); - if(ret>=0){ - _yuv->y_width=buf[0].width; - _yuv->y_height=buf[0].height; - _yuv->y_stride=buf[0].stride; - _yuv->uv_width=buf[1].width; - _yuv->uv_height=buf[1].height; - _yuv->uv_stride=buf[1].stride; - _yuv->y=buf[0].data; - _yuv->u=buf[1].data; - _yuv->v=buf[2].data; - } - return ret; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decinfo.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decinfo.c deleted file mode 100644 index 845eb136..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decinfo.c +++ /dev/null @@ -1,246 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: decinfo.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#include -#include -#include "decint.h" - - - -/*Unpacks a series of octets from a given byte array into the pack buffer. - No checking is done to ensure the buffer contains enough data. - _opb: The pack buffer to read the octets from. - _buf: The byte array to store the unpacked bytes in. - _len: The number of octets to unpack.*/ -static void oc_unpack_octets(oc_pack_buf *_opb,char *_buf,size_t _len){ - while(_len-->0){ - long val; - val=oc_pack_read(_opb,8); - *_buf++=(char)val; - } -} - -/*Unpacks a 32-bit integer encoded by octets in little-endian form.*/ -static long oc_unpack_length(oc_pack_buf *_opb){ - long ret[4]; - int i; - for(i=0;i<4;i++)ret[i]=oc_pack_read(_opb,8); - return ret[0]|ret[1]<<8|ret[2]<<16|ret[3]<<24; -} - -static int oc_info_unpack(oc_pack_buf *_opb,th_info *_info){ - long val; - /*Check the codec bitstream version.*/ - val=oc_pack_read(_opb,8); - _info->version_major=(unsigned char)val; - val=oc_pack_read(_opb,8); - _info->version_minor=(unsigned char)val; - val=oc_pack_read(_opb,8); - _info->version_subminor=(unsigned char)val; - /*verify we can parse this bitstream version. - We accept earlier minors and all subminors, by spec*/ - if(_info->version_major>TH_VERSION_MAJOR|| - _info->version_major==TH_VERSION_MAJOR&& - _info->version_minor>TH_VERSION_MINOR){ - return TH_EVERSION; - } - /*Read the encoded frame description.*/ - val=oc_pack_read(_opb,16); - _info->frame_width=(ogg_uint32_t)val<<4; - val=oc_pack_read(_opb,16); - _info->frame_height=(ogg_uint32_t)val<<4; - val=oc_pack_read(_opb,24); - _info->pic_width=(ogg_uint32_t)val; - val=oc_pack_read(_opb,24); - _info->pic_height=(ogg_uint32_t)val; - val=oc_pack_read(_opb,8); - _info->pic_x=(ogg_uint32_t)val; - val=oc_pack_read(_opb,8); - _info->pic_y=(ogg_uint32_t)val; - val=oc_pack_read(_opb,32); - _info->fps_numerator=(ogg_uint32_t)val; - val=oc_pack_read(_opb,32); - _info->fps_denominator=(ogg_uint32_t)val; - if(_info->frame_width==0||_info->frame_height==0|| - _info->pic_width+_info->pic_x>_info->frame_width|| - _info->pic_height+_info->pic_y>_info->frame_height|| - _info->fps_numerator==0||_info->fps_denominator==0){ - return TH_EBADHEADER; - } - /*Note: The sense of pic_y is inverted in what we pass back to the - application compared to how it is stored in the bitstream. - This is because the bitstream uses a right-handed coordinate system, while - applications expect a left-handed one.*/ - _info->pic_y=_info->frame_height-_info->pic_height-_info->pic_y; - val=oc_pack_read(_opb,24); - _info->aspect_numerator=(ogg_uint32_t)val; - val=oc_pack_read(_opb,24); - _info->aspect_denominator=(ogg_uint32_t)val; - val=oc_pack_read(_opb,8); - _info->colorspace=(th_colorspace)val; - val=oc_pack_read(_opb,24); - _info->target_bitrate=(int)val; - val=oc_pack_read(_opb,6); - _info->quality=(int)val; - val=oc_pack_read(_opb,5); - _info->keyframe_granule_shift=(int)val; - val=oc_pack_read(_opb,2); - _info->pixel_fmt=(th_pixel_fmt)val; - if(_info->pixel_fmt==TH_PF_RSVD)return TH_EBADHEADER; - val=oc_pack_read(_opb,3); - if(val!=0||oc_pack_bytes_left(_opb)<0)return TH_EBADHEADER; - return 0; -} - -static int oc_comment_unpack(oc_pack_buf *_opb,th_comment *_tc){ - long len; - int i; - /*Read the vendor string.*/ - len=oc_unpack_length(_opb); - if(len<0||len>oc_pack_bytes_left(_opb))return TH_EBADHEADER; - _tc->vendor=_ogg_malloc((size_t)len+1); - if(_tc->vendor==NULL)return TH_EFAULT; - oc_unpack_octets(_opb,_tc->vendor,len); - _tc->vendor[len]='\0'; - /*Read the user comments.*/ - _tc->comments=(int)oc_unpack_length(_opb); - len=_tc->comments; - if(len<0||len>(LONG_MAX>>2)||len<<2>oc_pack_bytes_left(_opb)){ - _tc->comments=0; - return TH_EBADHEADER; - } - _tc->comment_lengths=(int *)_ogg_malloc( - _tc->comments*sizeof(_tc->comment_lengths[0])); - _tc->user_comments=(char **)_ogg_malloc( - _tc->comments*sizeof(_tc->user_comments[0])); - for(i=0;i<_tc->comments;i++){ - len=oc_unpack_length(_opb); - if(len<0||len>oc_pack_bytes_left(_opb)){ - _tc->comments=i; - return TH_EBADHEADER; - } - _tc->comment_lengths[i]=len; - _tc->user_comments[i]=_ogg_malloc((size_t)len+1); - if(_tc->user_comments[i]==NULL){ - _tc->comments=i; - return TH_EFAULT; - } - oc_unpack_octets(_opb,_tc->user_comments[i],len); - _tc->user_comments[i][len]='\0'; - } - return oc_pack_bytes_left(_opb)<0?TH_EBADHEADER:0; -} - -static int oc_setup_unpack(oc_pack_buf *_opb,th_setup_info *_setup){ - int ret; - /*Read the quantizer tables.*/ - ret=oc_quant_params_unpack(_opb,&_setup->qinfo); - if(ret<0)return ret; - /*Read the Huffman trees.*/ - return oc_huff_trees_unpack(_opb,_setup->huff_tables); -} - -static void oc_setup_clear(th_setup_info *_setup){ - oc_quant_params_clear(&_setup->qinfo); - oc_huff_trees_clear(_setup->huff_tables); -} - -static int oc_dec_headerin(oc_pack_buf *_opb,th_info *_info, - th_comment *_tc,th_setup_info **_setup,ogg_packet *_op){ - char buffer[6]; - long val; - int packtype; - int ret; - val=oc_pack_read(_opb,8); - packtype=(int)val; - /*If we're at a data packet and we have received all three headers, we're - done.*/ - if(!(packtype&0x80)&&_info->frame_width>0&&_tc->vendor!=NULL&&*_setup!=NULL){ - return 0; - } - /*Check the codec string.*/ - oc_unpack_octets(_opb,buffer,6); - if(memcmp(buffer,"theora",6)!=0)return TH_ENOTFORMAT; - switch(packtype){ - /*Codec info header.*/ - case 0x80:{ - /*This should be the first packet, and we should not already be - initialized.*/ - if(!_op->b_o_s||_info->frame_width>0)return TH_EBADHEADER; - ret=oc_info_unpack(_opb,_info); - if(ret<0)th_info_clear(_info); - else ret=3; - }break; - /*Comment header.*/ - case 0x81:{ - if(_tc==NULL)return TH_EFAULT; - /*We shoud have already decoded the info header, and should not yet have - decoded the comment header.*/ - if(_info->frame_width==0||_tc->vendor!=NULL)return TH_EBADHEADER; - ret=oc_comment_unpack(_opb,_tc); - if(ret<0)th_comment_clear(_tc); - else ret=2; - }break; - /*Codec setup header.*/ - case 0x82:{ - oc_setup_info *setup; - if(_tc==NULL||_setup==NULL)return TH_EFAULT; - /*We should have already decoded the info header and the comment header, - and should not yet have decoded the setup header.*/ - if(_info->frame_width==0||_tc->vendor==NULL||*_setup!=NULL){ - return TH_EBADHEADER; - } - setup=(oc_setup_info *)_ogg_calloc(1,sizeof(*setup)); - if(setup==NULL)return TH_EFAULT; - ret=oc_setup_unpack(_opb,setup); - if(ret<0){ - oc_setup_clear(setup); - _ogg_free(setup); - } - else{ - *_setup=setup; - ret=1; - } - }break; - default:{ - /*We don't know what this header is.*/ - return TH_EBADHEADER; - }break; - } - return ret; -} - - -/*Decodes one header packet. - This should be called repeatedly with the packets at the beginning of the - stream until it returns 0.*/ -int th_decode_headerin(th_info *_info,th_comment *_tc, - th_setup_info **_setup,ogg_packet *_op){ - oc_pack_buf opb; - if(_op==NULL)return TH_EBADHEADER; - if(_info==NULL)return TH_EFAULT; - oc_pack_readinit(&opb,_op->packet,_op->bytes); - return oc_dec_headerin(&opb,_info,_tc,_setup,_op); -} - -void th_setup_free(th_setup_info *_setup){ - if(_setup!=NULL){ - oc_setup_clear(_setup); - _ogg_free(_setup); - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decint.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decint.h deleted file mode 100644 index 261b6763..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decint.h +++ /dev/null @@ -1,107 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: decint.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#if !defined(_decint_H) -# define _decint_H (1) -# include "theora/theoradec.h" -# include "internal.h" -# include "bitpack.h" - -typedef struct th_setup_info oc_setup_info; -typedef struct th_dec_ctx oc_dec_ctx; - -# include "huffdec.h" -# include "dequant.h" - -/*Constants for the packet-in state machine specific to the decoder.*/ - -/*Next packet to read: Data packet.*/ -#define OC_PACKET_DATA (0) - - - -struct th_setup_info{ - /*The Huffman codes.*/ - oc_huff_node *huff_tables[TH_NHUFFMAN_TABLES]; - /*The quantization parameters.*/ - th_quant_info qinfo; -}; - - - -struct th_dec_ctx{ - /*Shared encoder/decoder state.*/ - oc_theora_state state; - /*Whether or not packets are ready to be emitted. - This takes on negative values while there are remaining header packets to - be emitted, reaches 0 when the codec is ready for input, and goes to 1 - when a frame has been processed and a data packet is ready.*/ - int packet_state; - /*Buffer in which to assemble packets.*/ - oc_pack_buf opb; - /*Huffman decode trees.*/ - oc_huff_node *huff_tables[TH_NHUFFMAN_TABLES]; - /*The index of the first token in each plane for each coefficient.*/ - ptrdiff_t ti0[3][64]; - /*The number of outstanding EOB runs at the start of each coefficient in each - plane.*/ - ptrdiff_t eob_runs[3][64]; - /*The DCT token lists.*/ - unsigned char *dct_tokens; - /*The extra bits associated with DCT tokens.*/ - unsigned char *extra_bits; - /*The number of dct tokens unpacked so far.*/ - int dct_tokens_count; - /*The out-of-loop post-processing level.*/ - int pp_level; - /*The DC scale used for out-of-loop deblocking.*/ - int pp_dc_scale[64]; - /*The sharpen modifier used for out-of-loop deringing.*/ - int pp_sharp_mod[64]; - /*The DC quantization index of each block.*/ - unsigned char *dc_qis; - /*The variance of each block.*/ - int *variances; - /*The storage for the post-processed frame buffer.*/ - unsigned char *pp_frame_data; - /*Whether or not the post-processsed frame buffer has space for chroma.*/ - int pp_frame_state; - /*The buffer used for the post-processed frame. - Note that this is _not_ guaranteed to have the same strides and offsets as - the reference frame buffers.*/ - th_ycbcr_buffer pp_frame_buf; - /*The striped decode callback function.*/ - th_stripe_callback stripe_cb; -# if defined(HAVE_CAIRO) - /*Output metrics for debugging.*/ - int telemetry; - int telemetry_mbmode; - int telemetry_mv; - int telemetry_qi; - int telemetry_bits; - int telemetry_frame_bytes; - int telemetry_coding_bytes; - int telemetry_mode_bytes; - int telemetry_mv_bytes; - int telemetry_qi_bytes; - int telemetry_dc_bytes; - unsigned char *telemetry_frame_data; -# endif -}; - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decode.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decode.c deleted file mode 100644 index 7be66463..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/decode.c +++ /dev/null @@ -1,2943 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: decode.c 16581 2009-09-25 22:56:16Z gmaxwell $ - - ********************************************************************/ - -#include -#include -#include -#include "decint.h" -#if defined(OC_DUMP_IMAGES) -# include -# include "png.h" -#endif -#if defined(HAVE_CAIRO) -# include -#endif - - -/*No post-processing.*/ -#define OC_PP_LEVEL_DISABLED (0) -/*Keep track of DC qi for each block only.*/ -#define OC_PP_LEVEL_TRACKDCQI (1) -/*Deblock the luma plane.*/ -#define OC_PP_LEVEL_DEBLOCKY (2) -/*Dering the luma plane.*/ -#define OC_PP_LEVEL_DERINGY (3) -/*Stronger luma plane deringing.*/ -#define OC_PP_LEVEL_SDERINGY (4) -/*Deblock the chroma planes.*/ -#define OC_PP_LEVEL_DEBLOCKC (5) -/*Dering the chroma planes.*/ -#define OC_PP_LEVEL_DERINGC (6) -/*Stronger chroma plane deringing.*/ -#define OC_PP_LEVEL_SDERINGC (7) -/*Maximum valid post-processing level.*/ -#define OC_PP_LEVEL_MAX (7) - - - -/*The mode alphabets for the various mode coding schemes. - Scheme 0 uses a custom alphabet, which is not stored in this table.*/ -static const unsigned char OC_MODE_ALPHABETS[7][OC_NMODES]={ - /*Last MV dominates */ - { - OC_MODE_INTER_MV_LAST,OC_MODE_INTER_MV_LAST2,OC_MODE_INTER_MV, - OC_MODE_INTER_NOMV,OC_MODE_INTRA,OC_MODE_GOLDEN_NOMV,OC_MODE_GOLDEN_MV, - OC_MODE_INTER_MV_FOUR - }, - { - OC_MODE_INTER_MV_LAST,OC_MODE_INTER_MV_LAST2,OC_MODE_INTER_NOMV, - OC_MODE_INTER_MV,OC_MODE_INTRA,OC_MODE_GOLDEN_NOMV,OC_MODE_GOLDEN_MV, - OC_MODE_INTER_MV_FOUR - }, - { - OC_MODE_INTER_MV_LAST,OC_MODE_INTER_MV,OC_MODE_INTER_MV_LAST2, - OC_MODE_INTER_NOMV,OC_MODE_INTRA,OC_MODE_GOLDEN_NOMV,OC_MODE_GOLDEN_MV, - OC_MODE_INTER_MV_FOUR - }, - { - OC_MODE_INTER_MV_LAST,OC_MODE_INTER_MV,OC_MODE_INTER_NOMV, - OC_MODE_INTER_MV_LAST2,OC_MODE_INTRA,OC_MODE_GOLDEN_NOMV, - OC_MODE_GOLDEN_MV,OC_MODE_INTER_MV_FOUR - }, - /*No MV dominates.*/ - { - OC_MODE_INTER_NOMV,OC_MODE_INTER_MV_LAST,OC_MODE_INTER_MV_LAST2, - OC_MODE_INTER_MV,OC_MODE_INTRA,OC_MODE_GOLDEN_NOMV,OC_MODE_GOLDEN_MV, - OC_MODE_INTER_MV_FOUR - }, - { - OC_MODE_INTER_NOMV,OC_MODE_GOLDEN_NOMV,OC_MODE_INTER_MV_LAST, - OC_MODE_INTER_MV_LAST2,OC_MODE_INTER_MV,OC_MODE_INTRA,OC_MODE_GOLDEN_MV, - OC_MODE_INTER_MV_FOUR - }, - /*Default ordering.*/ - { - OC_MODE_INTER_NOMV,OC_MODE_INTRA,OC_MODE_INTER_MV,OC_MODE_INTER_MV_LAST, - OC_MODE_INTER_MV_LAST2,OC_MODE_GOLDEN_NOMV,OC_MODE_GOLDEN_MV, - OC_MODE_INTER_MV_FOUR - } -}; - - -/*The original DCT tokens are extended and reordered during the construction of - the Huffman tables. - The extension means more bits can be read with fewer calls to the bitpacker - during the Huffman decoding process (at the cost of larger Huffman tables), - and fewer tokens require additional extra bits (reducing the average storage - per decoded token). - The revised ordering reveals essential information in the token value - itself; specifically, whether or not there are additional extra bits to read - and the parameter to which those extra bits are applied. - The token is used to fetch a code word from the OC_DCT_CODE_WORD table below. - The extra bits are added into code word at the bit position inferred from the - token value, giving the final code word from which all required parameters - are derived. - The number of EOBs and the leading zero run length can be extracted directly. - The coefficient magnitude is optionally negated before extraction, according - to a 'flip' bit.*/ - -/*The number of additional extra bits that are decoded with each of the - internal DCT tokens.*/ -static const unsigned char OC_INTERNAL_DCT_TOKEN_EXTRA_BITS[15]={ - 12,4,3,3,4,4,5,5,8,8,8,8,3,3,6 -}; - -/*Whether or not an internal token needs any additional extra bits.*/ -#define OC_DCT_TOKEN_NEEDS_MORE(token) \ - (token<(sizeof(OC_INTERNAL_DCT_TOKEN_EXTRA_BITS)/ \ - sizeof(*OC_INTERNAL_DCT_TOKEN_EXTRA_BITS))) - -/*This token (OC_DCT_REPEAT_RUN3_TOKEN) requires more than 8 extra bits.*/ -#define OC_DCT_TOKEN_FAT_EOB (0) - -/*The number of EOBs to use for an end-of-frame token. - Note: We want to set eobs to PTRDIFF_MAX here, but that requires C99, which - is not yet available everywhere; this should be equivalent.*/ -#define OC_DCT_EOB_FINISH (~(size_t)0>>1) - -/*The location of the (6) run legth bits in the code word. - These are placed at index 0 and given 8 bits (even though 6 would suffice) - because it may be faster to extract the lower byte on some platforms.*/ -#define OC_DCT_CW_RLEN_SHIFT (0) -/*The location of the (12) EOB bits in the code word.*/ -#define OC_DCT_CW_EOB_SHIFT (8) -/*The location of the (1) flip bit in the code word. - This must be right under the magnitude bits.*/ -#define OC_DCT_CW_FLIP_BIT (20) -/*The location of the (11) token magnitude bits in the code word. - These must be last, and rely on a sign-extending right shift.*/ -#define OC_DCT_CW_MAG_SHIFT (21) - -/*Pack the given fields into a code word.*/ -#define OC_DCT_CW_PACK(_eobs,_rlen,_mag,_flip) \ - ((_eobs)<state,_info,3); - if(ret<0)return ret; - ret=oc_huff_trees_copy(_dec->huff_tables, - (const oc_huff_node *const *)_setup->huff_tables); - if(ret<0){ - oc_state_clear(&_dec->state); - return ret; - } - /*For each fragment, allocate one byte for every DCT coefficient token, plus - one byte for extra-bits for each token, plus one more byte for the long - EOB run, just in case it's the very last token and has a run length of - one.*/ - _dec->dct_tokens=(unsigned char *)_ogg_malloc((64+64+1)* - _dec->state.nfrags*sizeof(_dec->dct_tokens[0])); - if(_dec->dct_tokens==NULL){ - oc_huff_trees_clear(_dec->huff_tables); - oc_state_clear(&_dec->state); - return TH_EFAULT; - } - for(qi=0;qi<64;qi++)for(pli=0;pli<3;pli++)for(qti=0;qti<2;qti++){ - _dec->state.dequant_tables[qi][pli][qti]= - _dec->state.dequant_table_data[qi][pli][qti]; - } - oc_dequant_tables_init(_dec->state.dequant_tables,_dec->pp_dc_scale, - &_setup->qinfo); - for(qi=0;qi<64;qi++){ - int qsum; - qsum=0; - for(qti=0;qti<2;qti++)for(pli=0;pli<3;pli++){ - qsum+=_dec->state.dequant_tables[qti][pli][qi][12]+ - _dec->state.dequant_tables[qti][pli][qi][17]+ - _dec->state.dequant_tables[qti][pli][qi][18]+ - _dec->state.dequant_tables[qti][pli][qi][24]<<(pli==0); - } - _dec->pp_sharp_mod[qi]=-(qsum>>11); - } - memcpy(_dec->state.loop_filter_limits,_setup->qinfo.loop_filter_limits, - sizeof(_dec->state.loop_filter_limits)); - _dec->pp_level=OC_PP_LEVEL_DISABLED; - _dec->dc_qis=NULL; - _dec->variances=NULL; - _dec->pp_frame_data=NULL; - _dec->stripe_cb.ctx=NULL; - _dec->stripe_cb.stripe_decoded=NULL; -#if defined(HAVE_CAIRO) - _dec->telemetry=0; - _dec->telemetry_bits=0; - _dec->telemetry_qi=0; - _dec->telemetry_mbmode=0; - _dec->telemetry_mv=0; - _dec->telemetry_frame_data=NULL; -#endif - return 0; -} - -static void oc_dec_clear(oc_dec_ctx *_dec){ -#if defined(HAVE_CAIRO) - _ogg_free(_dec->telemetry_frame_data); -#endif - _ogg_free(_dec->pp_frame_data); - _ogg_free(_dec->variances); - _ogg_free(_dec->dc_qis); - _ogg_free(_dec->dct_tokens); - oc_huff_trees_clear(_dec->huff_tables); - oc_state_clear(&_dec->state); -} - - -static int oc_dec_frame_header_unpack(oc_dec_ctx *_dec){ - long val; - /*Check to make sure this is a data packet.*/ - val=oc_pack_read1(&_dec->opb); - if(val!=0)return TH_EBADPACKET; - /*Read in the frame type (I or P).*/ - val=oc_pack_read1(&_dec->opb); - _dec->state.frame_type=(int)val; - /*Read in the qi list.*/ - val=oc_pack_read(&_dec->opb,6); - _dec->state.qis[0]=(unsigned char)val; - val=oc_pack_read1(&_dec->opb); - if(!val)_dec->state.nqis=1; - else{ - val=oc_pack_read(&_dec->opb,6); - _dec->state.qis[1]=(unsigned char)val; - val=oc_pack_read1(&_dec->opb); - if(!val)_dec->state.nqis=2; - else{ - val=oc_pack_read(&_dec->opb,6); - _dec->state.qis[2]=(unsigned char)val; - _dec->state.nqis=3; - } - } - if(_dec->state.frame_type==OC_INTRA_FRAME){ - /*Keyframes have 3 unused configuration bits, holdovers from VP3 days. - Most of the other unused bits in the VP3 headers were eliminated. - I don't know why these remain.*/ - /*I wanted to eliminate wasted bits, but not all config wiggle room - --Monty.*/ - val=oc_pack_read(&_dec->opb,3); - if(val!=0)return TH_EIMPL; - } - return 0; -} - -/*Mark all fragments as coded and in OC_MODE_INTRA. - This also builds up the coded fragment list (in coded order), and clears the - uncoded fragment list. - It does not update the coded macro block list nor the super block flags, as - those are not used when decoding INTRA frames.*/ -static void oc_dec_mark_all_intra(oc_dec_ctx *_dec){ - const oc_sb_map *sb_maps; - const oc_sb_flags *sb_flags; - oc_fragment *frags; - ptrdiff_t *coded_fragis; - ptrdiff_t ncoded_fragis; - ptrdiff_t prev_ncoded_fragis; - unsigned nsbs; - unsigned sbi; - int pli; - coded_fragis=_dec->state.coded_fragis; - prev_ncoded_fragis=ncoded_fragis=0; - sb_maps=(const oc_sb_map *)_dec->state.sb_maps; - sb_flags=_dec->state.sb_flags; - frags=_dec->state.frags; - sbi=nsbs=0; - for(pli=0;pli<3;pli++){ - nsbs+=_dec->state.fplanes[pli].nsbs; - for(;sbi=0){ - frags[fragi].coded=1; - frags[fragi].mb_mode=OC_MODE_INTRA; - coded_fragis[ncoded_fragis++]=fragi; - } - } - } - } - _dec->state.ncoded_fragis[pli]=ncoded_fragis-prev_ncoded_fragis; - prev_ncoded_fragis=ncoded_fragis; - } - _dec->state.ntotal_coded_fragis=ncoded_fragis; -} - -/*Decodes the bit flags indicating whether each super block is partially coded - or not. - Return: The number of partially coded super blocks.*/ -static unsigned oc_dec_partial_sb_flags_unpack(oc_dec_ctx *_dec){ - oc_sb_flags *sb_flags; - unsigned nsbs; - unsigned sbi; - unsigned npartial; - unsigned run_count; - long val; - int flag; - val=oc_pack_read1(&_dec->opb); - flag=(int)val; - sb_flags=_dec->state.sb_flags; - nsbs=_dec->state.nsbs; - sbi=npartial=0; - while(sbiopb); - full_run=run_count>=4129; - do{ - sb_flags[sbi].coded_partially=flag; - sb_flags[sbi].coded_fully=0; - npartial+=flag; - sbi++; - } - while(--run_count>0&&sbiopb); - flag=(int)val; - } - else flag=!flag; - } - /*TODO: run_count should be 0 here. - If it's not, we should issue a warning of some kind.*/ - return npartial; -} - -/*Decodes the bit flags for whether or not each non-partially-coded super - block is fully coded or not. - This function should only be called if there is at least one - non-partially-coded super block. - Return: The number of partially coded super blocks.*/ -static void oc_dec_coded_sb_flags_unpack(oc_dec_ctx *_dec){ - oc_sb_flags *sb_flags; - unsigned nsbs; - unsigned sbi; - unsigned run_count; - long val; - int flag; - sb_flags=_dec->state.sb_flags; - nsbs=_dec->state.nsbs; - /*Skip partially coded super blocks.*/ - for(sbi=0;sb_flags[sbi].coded_partially;sbi++); - val=oc_pack_read1(&_dec->opb); - flag=(int)val; - do{ - int full_run; - run_count=oc_sb_run_unpack(&_dec->opb); - full_run=run_count>=4129; - for(;sbiopb); - flag=(int)val; - } - else flag=!flag; - } - while(sbistate.nsbs)oc_dec_coded_sb_flags_unpack(_dec); - if(npartial>0){ - val=oc_pack_read1(&_dec->opb); - flag=!(int)val; - } - else flag=0; - sb_maps=(const oc_sb_map *)_dec->state.sb_maps; - sb_flags=_dec->state.sb_flags; - frags=_dec->state.frags; - sbi=nsbs=run_count=0; - coded_fragis=_dec->state.coded_fragis; - uncoded_fragis=coded_fragis+_dec->state.nfrags; - prev_ncoded_fragis=ncoded_fragis=nuncoded_fragis=0; - for(pli=0;pli<3;pli++){ - nsbs+=_dec->state.fplanes[pli].nsbs; - for(;sbi=0){ - int coded; - if(sb_flags[sbi].coded_fully)coded=1; - else if(!sb_flags[sbi].coded_partially)coded=0; - else{ - if(run_count<=0){ - run_count=oc_block_run_unpack(&_dec->opb); - flag=!flag; - } - run_count--; - coded=flag; - } - if(coded)coded_fragis[ncoded_fragis++]=fragi; - else *(uncoded_fragis-++nuncoded_fragis)=fragi; - frags[fragi].coded=coded; - } - } - } - } - _dec->state.ncoded_fragis[pli]=ncoded_fragis-prev_ncoded_fragis; - prev_ncoded_fragis=ncoded_fragis; - } - _dec->state.ntotal_coded_fragis=ncoded_fragis; - /*TODO: run_count should be 0 here. - If it's not, we should issue a warning of some kind.*/ -} - - - -typedef int (*oc_mode_unpack_func)(oc_pack_buf *_opb); - -static int oc_vlc_mode_unpack(oc_pack_buf *_opb){ - long val; - int i; - for(i=0;i<7;i++){ - val=oc_pack_read1(_opb); - if(!val)break; - } - return i; -} - -static int oc_clc_mode_unpack(oc_pack_buf *_opb){ - long val; - val=oc_pack_read(_opb,3); - return (int)val; -} - -/*Unpacks the list of macro block modes for INTER frames.*/ -static void oc_dec_mb_modes_unpack(oc_dec_ctx *_dec){ - const oc_mb_map *mb_maps; - signed char *mb_modes; - const oc_fragment *frags; - const unsigned char *alphabet; - unsigned char scheme0_alphabet[8]; - oc_mode_unpack_func mode_unpack; - size_t nmbs; - size_t mbi; - long val; - int mode_scheme; - val=oc_pack_read(&_dec->opb,3); - mode_scheme=(int)val; - if(mode_scheme==0){ - int mi; - /*Just in case, initialize the modes to something. - If the bitstream doesn't contain each index exactly once, it's likely - corrupt and the rest of the packet is garbage anyway, but this way we - won't crash, and we'll decode SOMETHING.*/ - /*LOOP VECTORIZES*/ - for(mi=0;miopb,3); - scheme0_alphabet[val]=OC_MODE_ALPHABETS[6][mi]; - } - alphabet=scheme0_alphabet; - } - else alphabet=OC_MODE_ALPHABETS[mode_scheme-1]; - if(mode_scheme==7)mode_unpack=oc_clc_mode_unpack; - else mode_unpack=oc_vlc_mode_unpack; - mb_modes=_dec->state.mb_modes; - mb_maps=(const oc_mb_map *)_dec->state.mb_maps; - nmbs=_dec->state.nmbs; - frags=_dec->state.frags; - for(mbi=0;mbiopb)]; - /*There were none: INTER_NOMV is forced.*/ - else mb_modes[mbi]=OC_MODE_INTER_NOMV; - } - } -} - - - -typedef int (*oc_mv_comp_unpack_func)(oc_pack_buf *_opb); - -static int oc_vlc_mv_comp_unpack(oc_pack_buf *_opb){ - long bits; - int mask; - int mv; - bits=oc_pack_read(_opb,3); - switch(bits){ - case 0:return 0; - case 1:return 1; - case 2:return -1; - case 3: - case 4:{ - mv=(int)(bits-1); - bits=oc_pack_read1(_opb); - }break; - /*case 5: - case 6: - case 7:*/ - default:{ - mv=1<>1); - bits&=1; - }break; - } - mask=-(int)bits; - return mv+mask^mask; -} - -static int oc_clc_mv_comp_unpack(oc_pack_buf *_opb){ - long bits; - int mask; - int mv; - bits=oc_pack_read(_opb,6); - mv=(int)bits>>1; - mask=-((int)bits&1); - return mv+mask^mask; -} - -/*Unpacks the list of motion vectors for INTER frames, and propagtes the macro - block modes and motion vectors to the individual fragments.*/ -static void oc_dec_mv_unpack_and_frag_modes_fill(oc_dec_ctx *_dec){ - const oc_mb_map *mb_maps; - const signed char *mb_modes; - oc_set_chroma_mvs_func set_chroma_mvs; - oc_mv_comp_unpack_func mv_comp_unpack; - oc_fragment *frags; - oc_mv *frag_mvs; - const unsigned char *map_idxs; - int map_nidxs; - oc_mv last_mv[2]; - oc_mv cbmvs[4]; - size_t nmbs; - size_t mbi; - long val; - set_chroma_mvs=OC_SET_CHROMA_MVS_TABLE[_dec->state.info.pixel_fmt]; - val=oc_pack_read1(&_dec->opb); - mv_comp_unpack=val?oc_clc_mv_comp_unpack:oc_vlc_mv_comp_unpack; - map_idxs=OC_MB_MAP_IDXS[_dec->state.info.pixel_fmt]; - map_nidxs=OC_MB_MAP_NIDXS[_dec->state.info.pixel_fmt]; - memset(last_mv,0,sizeof(last_mv)); - frags=_dec->state.frags; - frag_mvs=_dec->state.frag_mvs; - mb_maps=(const oc_mb_map *)_dec->state.mb_maps; - mb_modes=_dec->state.mb_modes; - nmbs=_dec->state.nmbs; - for(mbi=0;mbi>2][mapi&3]; - if(frags[fragi].coded)coded[ncoded++]=mapi; - } - while(++mapiiopb); - lbmvs[bi][1]=(signed char)(*mv_comp_unpack)(&_dec->opb); - memcpy(frag_mvs[fragi],lbmvs[bi],sizeof(lbmvs[bi])); - } - else lbmvs[bi][0]=lbmvs[bi][1]=0; - } - if(codedi>0){ - memcpy(last_mv[1],last_mv[0],sizeof(last_mv[1])); - memcpy(last_mv[0],lbmvs[coded[codedi-1]],sizeof(last_mv[0])); - } - if(codedi>2][bi]; - frags[fragi].mb_mode=mb_mode; - memcpy(frag_mvs[fragi],cbmvs[bi],sizeof(cbmvs[bi])); - } - } - }break; - case OC_MODE_INTER_MV:{ - memcpy(last_mv[1],last_mv[0],sizeof(last_mv[1])); - mbmv[0]=last_mv[0][0]=(signed char)(*mv_comp_unpack)(&_dec->opb); - mbmv[1]=last_mv[0][1]=(signed char)(*mv_comp_unpack)(&_dec->opb); - }break; - case OC_MODE_INTER_MV_LAST:memcpy(mbmv,last_mv[0],sizeof(mbmv));break; - case OC_MODE_INTER_MV_LAST2:{ - memcpy(mbmv,last_mv[1],sizeof(mbmv)); - memcpy(last_mv[1],last_mv[0],sizeof(last_mv[1])); - memcpy(last_mv[0],mbmv,sizeof(last_mv[0])); - }break; - case OC_MODE_GOLDEN_MV:{ - mbmv[0]=(signed char)(*mv_comp_unpack)(&_dec->opb); - mbmv[1]=(signed char)(*mv_comp_unpack)(&_dec->opb); - }break; - default:memset(mbmv,0,sizeof(mbmv));break; - } - /*4MV mode fills in the fragments itself. - For all other modes we can use this common code.*/ - if(mb_mode!=OC_MODE_INTER_MV_FOUR){ - for(codedi=0;codedi>2][mapi&3]; - frags[fragi].mb_mode=mb_mode; - memcpy(frag_mvs[fragi],mbmv,sizeof(mbmv)); - } - } - } - } -} - -static void oc_dec_block_qis_unpack(oc_dec_ctx *_dec){ - oc_fragment *frags; - const ptrdiff_t *coded_fragis; - ptrdiff_t ncoded_fragis; - ptrdiff_t fragii; - ptrdiff_t fragi; - ncoded_fragis=_dec->state.ntotal_coded_fragis; - if(ncoded_fragis<=0)return; - frags=_dec->state.frags; - coded_fragis=_dec->state.coded_fragis; - if(_dec->state.nqis==1){ - /*If this frame has only a single qi value, then just use it for all coded - fragments.*/ - for(fragii=0;fragiiopb); - flag=(int)val; - nqi1=0; - fragii=0; - while(fragiiopb); - full_run=run_count>=4129; - do{ - frags[coded_fragis[fragii++]].qii=flag; - nqi1+=flag; - } - while(--run_count>0&&fragiiopb); - flag=(int)val; - } - else flag=!flag; - } - /*TODO: run_count should be 0 here. - If it's not, we should issue a warning of some kind.*/ - /*If we have 3 different qi's for this frame, and there was at least one - fragment with a non-zero qi, make the second pass.*/ - if(_dec->state.nqis==3&&nqi1>0){ - /*Skip qii==0 fragments.*/ - for(fragii=0;frags[coded_fragis[fragii]].qii==0;fragii++); - val=oc_pack_read1(&_dec->opb); - flag=(int)val; - do{ - int full_run; - run_count=oc_sb_run_unpack(&_dec->opb); - full_run=run_count>=4129; - for(;fragiiopb); - flag=(int)val; - } - else flag=!flag; - } - while(fragiidct_tokens; - frags=_dec->state.frags; - coded_fragis=_dec->state.coded_fragis; - ncoded_fragis=fragii=eobs=ti=0; - for(pli=0;pli<3;pli++){ - ptrdiff_t run_counts[64]; - ptrdiff_t eob_count; - ptrdiff_t eobi; - int rli; - ncoded_fragis+=_dec->state.ncoded_fragis[pli]; - memset(run_counts,0,sizeof(run_counts)); - _dec->eob_runs[pli][0]=eobs; - _dec->ti0[pli][0]=ti; - /*Continue any previous EOB run, if there was one.*/ - eobi=eobs; - if(ncoded_fragis-fragii0)frags[coded_fragis[fragii++]].dc=0; - while(fragiiopb, - _dec->huff_tables[_huff_idxs[pli+1>>1]]); - dct_tokens[ti++]=(unsigned char)token; - if(OC_DCT_TOKEN_NEEDS_MORE(token)){ - eb=(int)oc_pack_read(&_dec->opb, - OC_INTERNAL_DCT_TOKEN_EXTRA_BITS[token]); - dct_tokens[ti++]=(unsigned char)eb; - if(token==OC_DCT_TOKEN_FAT_EOB)dct_tokens[ti++]=(unsigned char)(eb>>8); - eb<<=OC_DCT_TOKEN_EB_POS(token); - } - else eb=0; - cw=OC_DCT_CODE_WORD[token]+eb; - eobs=cw>>OC_DCT_CW_EOB_SHIFT&0xFFF; - if(cw==OC_DCT_CW_FINISH)eobs=OC_DCT_EOB_FINISH; - if(eobs){ - eobi=OC_MINI(eobs,ncoded_fragis-fragii); - eob_count+=eobi; - eobs-=eobi; - while(eobi-->0)frags[coded_fragis[fragii++]].dc=0; - } - else{ - int coeff; - skip=(unsigned char)(cw>>OC_DCT_CW_RLEN_SHIFT); - cw^=-(cw&1<>OC_DCT_CW_MAG_SHIFT; - if(skip)coeff=0; - run_counts[skip]++; - frags[coded_fragis[fragii++]].dc=coeff; - } - } - /*Add the total EOB count to the longest run length.*/ - run_counts[63]+=eob_count; - /*And convert the run_counts array to a moment table.*/ - for(rli=63;rli-->0;)run_counts[rli]+=run_counts[rli+1]; - /*Finally, subtract off the number of coefficients that have been - accounted for by runs started in this coefficient.*/ - for(rli=64;rli-->0;)_ntoks_left[pli][rli]-=run_counts[rli]; - } - _dec->dct_tokens_count=ti; - return eobs; -} - -/*Unpacks the AC coefficient tokens. - This can completely discard coefficient values while unpacking, and so is - somewhat simpler than unpacking the DC coefficient tokens. - _huff_idx: The index of the Huffman table to use for each color plane. - _ntoks_left: The number of tokens left to be decoded in each color plane for - each coefficient. - This is updated as EOB tokens and zero run tokens are decoded. - _eobs: The length of any outstanding EOB run from previous - coefficients. - Return: The length of any outstanding EOB run.*/ -static int oc_dec_ac_coeff_unpack(oc_dec_ctx *_dec,int _zzi,int _huff_idxs[2], - ptrdiff_t _ntoks_left[3][64],ptrdiff_t _eobs){ - unsigned char *dct_tokens; - ptrdiff_t ti; - int pli; - dct_tokens=_dec->dct_tokens; - ti=_dec->dct_tokens_count; - for(pli=0;pli<3;pli++){ - ptrdiff_t run_counts[64]; - ptrdiff_t eob_count; - size_t ntoks_left; - size_t ntoks; - int rli; - _dec->eob_runs[pli][_zzi]=_eobs; - _dec->ti0[pli][_zzi]=ti; - ntoks_left=_ntoks_left[pli][_zzi]; - memset(run_counts,0,sizeof(run_counts)); - eob_count=0; - ntoks=0; - while(ntoks+_eobsopb, - _dec->huff_tables[_huff_idxs[pli+1>>1]]); - dct_tokens[ti++]=(unsigned char)token; - if(OC_DCT_TOKEN_NEEDS_MORE(token)){ - eb=(int)oc_pack_read(&_dec->opb, - OC_INTERNAL_DCT_TOKEN_EXTRA_BITS[token]); - dct_tokens[ti++]=(unsigned char)eb; - if(token==OC_DCT_TOKEN_FAT_EOB)dct_tokens[ti++]=(unsigned char)(eb>>8); - eb<<=OC_DCT_TOKEN_EB_POS(token); - } - else eb=0; - cw=OC_DCT_CODE_WORD[token]+eb; - skip=(unsigned char)(cw>>OC_DCT_CW_RLEN_SHIFT); - _eobs=cw>>OC_DCT_CW_EOB_SHIFT&0xFFF; - if(cw==OC_DCT_CW_FINISH)_eobs=OC_DCT_EOB_FINISH; - if(_eobs==0){ - run_counts[skip]++; - ntoks++; - } - } - /*Add the portion of the last EOB run actually used by this coefficient.*/ - eob_count+=ntoks_left-ntoks; - /*And remove it from the remaining EOB count.*/ - _eobs-=ntoks_left-ntoks; - /*Add the total EOB count to the longest run length.*/ - run_counts[63]+=eob_count; - /*And convert the run_counts array to a moment table.*/ - for(rli=63;rli-->0;)run_counts[rli]+=run_counts[rli+1]; - /*Finally, subtract off the number of coefficients that have been - accounted for by runs started in this coefficient.*/ - for(rli=64-_zzi;rli-->0;)_ntoks_left[pli][_zzi+rli]-=run_counts[rli]; - } - _dec->dct_tokens_count=ti; - return _eobs; -} - -/*Tokens describing the DCT coefficients that belong to each fragment are - stored in the bitstream grouped by coefficient, not by fragment. - - This means that we either decode all the tokens in order, building up a - separate coefficient list for each fragment as we go, and then go back and - do the iDCT on each fragment, or we have to create separate lists of tokens - for each coefficient, so that we can pull the next token required off the - head of the appropriate list when decoding a specific fragment. - - The former was VP3's choice, and it meant 2*w*h extra storage for all the - decoded coefficient values. - - We take the second option, which lets us store just one to three bytes per - token (generally far fewer than the number of coefficients, due to EOB - tokens and zero runs), and which requires us to only maintain a counter for - each of the 64 coefficients, instead of a counter for every fragment to - determine where the next token goes. - - We actually use 3 counters per coefficient, one for each color plane, so we - can decode all color planes simultaneously. - This lets color conversion, etc., be done as soon as a full MCU (one or - two super block rows) is decoded, while the image data is still in cache.*/ - -static void oc_dec_residual_tokens_unpack(oc_dec_ctx *_dec){ - static const unsigned char OC_HUFF_LIST_MAX[5]={1,6,15,28,64}; - ptrdiff_t ntoks_left[3][64]; - int huff_idxs[2]; - ptrdiff_t eobs; - long val; - int pli; - int zzi; - int hgi; - for(pli=0;pli<3;pli++)for(zzi=0;zzi<64;zzi++){ - ntoks_left[pli][zzi]=_dec->state.ncoded_fragis[pli]; - } - val=oc_pack_read(&_dec->opb,4); - huff_idxs[0]=(int)val; - val=oc_pack_read(&_dec->opb,4); - huff_idxs[1]=(int)val; - _dec->eob_runs[0][0]=0; - eobs=oc_dec_dc_coeff_unpack(_dec,huff_idxs,ntoks_left); -#if defined(HAVE_CAIRO) - _dec->telemetry_dc_bytes=oc_pack_bytes_left(&_dec->opb); -#endif - val=oc_pack_read(&_dec->opb,4); - huff_idxs[0]=(int)val; - val=oc_pack_read(&_dec->opb,4); - huff_idxs[1]=(int)val; - zzi=1; - for(hgi=1;hgi<5;hgi++){ - huff_idxs[0]+=16; - huff_idxs[1]+=16; - for(;zzipp_level<=OC_PP_LEVEL_DISABLED){ - if(_dec->dc_qis!=NULL){ - _ogg_free(_dec->dc_qis); - _dec->dc_qis=NULL; - _ogg_free(_dec->variances); - _dec->variances=NULL; - _ogg_free(_dec->pp_frame_data); - _dec->pp_frame_data=NULL; - } - return 1; - } - if(_dec->dc_qis==NULL){ - /*If we haven't been tracking DC quantization indices, there's no point in - starting now.*/ - if(_dec->state.frame_type!=OC_INTRA_FRAME)return 1; - _dec->dc_qis=(unsigned char *)_ogg_malloc( - _dec->state.nfrags*sizeof(_dec->dc_qis[0])); - if(_dec->dc_qis==NULL)return 1; - memset(_dec->dc_qis,_dec->state.qis[0],_dec->state.nfrags); - } - else{ - unsigned char *dc_qis; - const ptrdiff_t *coded_fragis; - ptrdiff_t ncoded_fragis; - ptrdiff_t fragii; - unsigned char qi0; - /*Update the DC quantization index of each coded block.*/ - dc_qis=_dec->dc_qis; - coded_fragis=_dec->state.coded_fragis; - ncoded_fragis=_dec->state.ncoded_fragis[0]+ - _dec->state.ncoded_fragis[1]+_dec->state.ncoded_fragis[2]; - qi0=(unsigned char)_dec->state.qis[0]; - for(fragii=0;fragiipp_level<=OC_PP_LEVEL_TRACKDCQI){ - if(_dec->variances!=NULL){ - _ogg_free(_dec->variances); - _dec->variances=NULL; - _ogg_free(_dec->pp_frame_data); - _dec->pp_frame_data=NULL; - } - return 1; - } - if(_dec->variances==NULL){ - size_t frame_sz; - size_t c_sz; - int c_w; - int c_h; - frame_sz=_dec->state.info.frame_width*(size_t)_dec->state.info.frame_height; - c_w=_dec->state.info.frame_width>>!(_dec->state.info.pixel_fmt&1); - c_h=_dec->state.info.frame_height>>!(_dec->state.info.pixel_fmt&2); - c_sz=c_w*(size_t)c_h; - /*Allocate space for the chroma planes, even if we're not going to use - them; this simplifies allocation state management, though it may waste - memory on the few systems that don't overcommit pages.*/ - frame_sz+=c_sz<<1; - _dec->pp_frame_data=(unsigned char *)_ogg_malloc( - frame_sz*sizeof(_dec->pp_frame_data[0])); - _dec->variances=(int *)_ogg_malloc( - _dec->state.nfrags*sizeof(_dec->variances[0])); - if(_dec->variances==NULL||_dec->pp_frame_data==NULL){ - _ogg_free(_dec->pp_frame_data); - _dec->pp_frame_data=NULL; - _ogg_free(_dec->variances); - _dec->variances=NULL; - return 1; - } - /*Force an update of the PP buffer pointers.*/ - _dec->pp_frame_state=0; - } - /*Update the PP buffer pointers if necessary.*/ - if(_dec->pp_frame_state!=1+(_dec->pp_level>=OC_PP_LEVEL_DEBLOCKC)){ - if(_dec->pp_levelpp_frame_buf[0].width=_dec->state.info.frame_width; - _dec->pp_frame_buf[0].height=_dec->state.info.frame_height; - _dec->pp_frame_buf[0].stride=-_dec->pp_frame_buf[0].width; - _dec->pp_frame_buf[0].data=_dec->pp_frame_data+ - (1-_dec->pp_frame_buf[0].height)*(ptrdiff_t)_dec->pp_frame_buf[0].stride; - } - else{ - size_t y_sz; - size_t c_sz; - int c_w; - int c_h; - /*Otherwise, set up pointers to all three PP planes.*/ - y_sz=_dec->state.info.frame_width*(size_t)_dec->state.info.frame_height; - c_w=_dec->state.info.frame_width>>!(_dec->state.info.pixel_fmt&1); - c_h=_dec->state.info.frame_height>>!(_dec->state.info.pixel_fmt&2); - c_sz=c_w*(size_t)c_h; - _dec->pp_frame_buf[0].width=_dec->state.info.frame_width; - _dec->pp_frame_buf[0].height=_dec->state.info.frame_height; - _dec->pp_frame_buf[0].stride=_dec->pp_frame_buf[0].width; - _dec->pp_frame_buf[0].data=_dec->pp_frame_data; - _dec->pp_frame_buf[1].width=c_w; - _dec->pp_frame_buf[1].height=c_h; - _dec->pp_frame_buf[1].stride=_dec->pp_frame_buf[1].width; - _dec->pp_frame_buf[1].data=_dec->pp_frame_buf[0].data+y_sz; - _dec->pp_frame_buf[2].width=c_w; - _dec->pp_frame_buf[2].height=c_h; - _dec->pp_frame_buf[2].stride=_dec->pp_frame_buf[2].width; - _dec->pp_frame_buf[2].data=_dec->pp_frame_buf[1].data+c_sz; - oc_ycbcr_buffer_flip(_dec->pp_frame_buf,_dec->pp_frame_buf); - } - _dec->pp_frame_state=1+(_dec->pp_level>=OC_PP_LEVEL_DEBLOCKC); - } - /*If we're not processing chroma, copy the reference frame's chroma planes.*/ - if(_dec->pp_levelpp_frame_buf+1, - _dec->state.ref_frame_bufs[_dec->state.ref_frame_idx[OC_FRAME_SELF]]+1, - sizeof(_dec->pp_frame_buf[1])*2); - } - return 0; -} - - - -typedef struct{ - int bounding_values[256]; - ptrdiff_t ti[3][64]; - ptrdiff_t eob_runs[3][64]; - const ptrdiff_t *coded_fragis[3]; - const ptrdiff_t *uncoded_fragis[3]; - ptrdiff_t ncoded_fragis[3]; - ptrdiff_t nuncoded_fragis[3]; - const ogg_uint16_t *dequant[3][3][2]; - int fragy0[3]; - int fragy_end[3]; - int pred_last[3][3]; - int mcu_nvfrags; - int loop_filter; - int pp_level; -}oc_dec_pipeline_state; - - - -/*Initialize the main decoding pipeline.*/ -static void oc_dec_pipeline_init(oc_dec_ctx *_dec, - oc_dec_pipeline_state *_pipe){ - const ptrdiff_t *coded_fragis; - const ptrdiff_t *uncoded_fragis; - int pli; - int qii; - int qti; - /*If chroma is sub-sampled in the vertical direction, we have to decode two - super block rows of Y' for each super block row of Cb and Cr.*/ - _pipe->mcu_nvfrags=4<state.info.pixel_fmt&2); - /*Initialize the token and extra bits indices for each plane and - coefficient.*/ - memcpy(_pipe->ti,_dec->ti0,sizeof(_pipe->ti)); - /*Also copy over the initial the EOB run counts.*/ - memcpy(_pipe->eob_runs,_dec->eob_runs,sizeof(_pipe->eob_runs)); - /*Set up per-plane pointers to the coded and uncoded fragments lists.*/ - coded_fragis=_dec->state.coded_fragis; - uncoded_fragis=coded_fragis+_dec->state.nfrags; - for(pli=0;pli<3;pli++){ - ptrdiff_t ncoded_fragis; - _pipe->coded_fragis[pli]=coded_fragis; - _pipe->uncoded_fragis[pli]=uncoded_fragis; - ncoded_fragis=_dec->state.ncoded_fragis[pli]; - coded_fragis+=ncoded_fragis; - uncoded_fragis+=ncoded_fragis-_dec->state.fplanes[pli].nfrags; - } - /*Set up condensed quantizer tables.*/ - for(pli=0;pli<3;pli++){ - for(qii=0;qii<_dec->state.nqis;qii++){ - for(qti=0;qti<2;qti++){ - _pipe->dequant[pli][qii][qti]= - _dec->state.dequant_tables[_dec->state.qis[qii]][pli][qti]; - } - } - } - /*Set the previous DC predictor to 0 for all color planes and frame types.*/ - memset(_pipe->pred_last,0,sizeof(_pipe->pred_last)); - /*Initialize the bounding value array for the loop filter.*/ - _pipe->loop_filter=!oc_state_loop_filter_init(&_dec->state, - _pipe->bounding_values); - /*Initialize any buffers needed for post-processing. - We also save the current post-processing level, to guard against the user - changing it from a callback.*/ - if(!oc_dec_postprocess_init(_dec))_pipe->pp_level=_dec->pp_level; - /*If we don't have enough information to post-process, disable it, regardless - of the user-requested level.*/ - else{ - _pipe->pp_level=OC_PP_LEVEL_DISABLED; - memcpy(_dec->pp_frame_buf, - _dec->state.ref_frame_bufs[_dec->state.ref_frame_idx[OC_FRAME_SELF]], - sizeof(_dec->pp_frame_buf[0])*3); - } -} - -/*Undo the DC prediction in a single plane of an MCU (one or two super block - rows). - As a side effect, the number of coded and uncoded fragments in this plane of - the MCU is also computed.*/ -static void oc_dec_dc_unpredict_mcu_plane(oc_dec_ctx *_dec, - oc_dec_pipeline_state *_pipe,int _pli){ - const oc_fragment_plane *fplane; - oc_fragment *frags; - int *pred_last; - ptrdiff_t ncoded_fragis; - ptrdiff_t fragi; - int fragx; - int fragy; - int fragy0; - int fragy_end; - int nhfrags; - /*Compute the first and last fragment row of the current MCU for this - plane.*/ - fplane=_dec->state.fplanes+_pli; - fragy0=_pipe->fragy0[_pli]; - fragy_end=_pipe->fragy_end[_pli]; - nhfrags=fplane->nhfrags; - pred_last=_pipe->pred_last[_pli]; - frags=_dec->state.frags; - ncoded_fragis=0; - fragi=fplane->froffset+fragy0*(ptrdiff_t)nhfrags; - for(fragy=fragy0;fragy=nhfrags)ur_ref=-1; - else{ - ur_ref=u_frags[fragi+1].coded? - OC_FRAME_FOR_MODE(u_frags[fragi+1].mb_mode):-1; - } - if(frags[fragi].coded){ - int pred; - int ref; - ref=OC_FRAME_FOR_MODE(frags[fragi].mb_mode); - /*We break out a separate case based on which of our neighbors use - the same reference frames. - This is somewhat faster than trying to make a generic case which - handles all of them, since it reduces lots of poorly predicted - jumps to one switch statement, and also lets a number of the - multiplications be optimized out by strength reduction.*/ - switch((l_ref==ref)|(ul_ref==ref)<<1| - (u_ref==ref)<<2|(ur_ref==ref)<<3){ - default:pred=pred_last[ref];break; - case 1: - case 3:pred=frags[fragi-1].dc;break; - case 2:pred=u_frags[fragi-1].dc;break; - case 4: - case 6: - case 12:pred=u_frags[fragi].dc;break; - case 5:pred=(frags[fragi-1].dc+u_frags[fragi].dc)/2;break; - case 8:pred=u_frags[fragi+1].dc;break; - case 9: - case 11: - case 13:{ - pred=(75*frags[fragi-1].dc+53*u_frags[fragi+1].dc)/128; - }break; - case 10:pred=(u_frags[fragi-1].dc+u_frags[fragi+1].dc)/2;break; - case 14:{ - pred=(3*(u_frags[fragi-1].dc+u_frags[fragi+1].dc) - +10*u_frags[fragi].dc)/16; - }break; - case 7: - case 15:{ - int p0; - int p1; - int p2; - p0=frags[fragi-1].dc; - p1=u_frags[fragi-1].dc; - p2=u_frags[fragi].dc; - pred=(29*(p0+p2)-26*p1)/32; - if(abs(pred-p2)>128)pred=p2; - else if(abs(pred-p0)>128)pred=p0; - else if(abs(pred-p1)>128)pred=p1; - }break; - } - pred_last[ref]=frags[fragi].dc+=pred; - ncoded_fragis++; - l_ref=ref; - } - else l_ref=-1; - ul_ref=u_ref; - u_ref=ur_ref; - } - } - } - _pipe->ncoded_fragis[_pli]=ncoded_fragis; - /*Also save the number of uncoded fragments so we know how many to copy.*/ - _pipe->nuncoded_fragis[_pli]= - (fragy_end-fragy0)*(ptrdiff_t)nhfrags-ncoded_fragis; -} - -/*Reconstructs all coded fragments in a single MCU (one or two super block - rows). - This requires that each coded fragment have a proper macro block mode and - motion vector (if not in INTRA mode), and have it's DC value decoded, with - the DC prediction process reversed, and the number of coded and uncoded - fragments in this plane of the MCU be counted. - The token lists for each color plane and coefficient should also be filled - in, along with initial token offsets, extra bits offsets, and EOB run - counts.*/ -static void oc_dec_frags_recon_mcu_plane(oc_dec_ctx *_dec, - oc_dec_pipeline_state *_pipe,int _pli){ - unsigned char *dct_tokens; - const unsigned char *dct_fzig_zag; - ogg_uint16_t dc_quant[2]; - const oc_fragment *frags; - const ptrdiff_t *coded_fragis; - ptrdiff_t ncoded_fragis; - ptrdiff_t fragii; - ptrdiff_t *ti; - ptrdiff_t *eob_runs; - int qti; - dct_tokens=_dec->dct_tokens; - dct_fzig_zag=_dec->state.opt_data.dct_fzig_zag; - frags=_dec->state.frags; - coded_fragis=_pipe->coded_fragis[_pli]; - ncoded_fragis=_pipe->ncoded_fragis[_pli]; - ti=_pipe->ti[_pli]; - eob_runs=_pipe->eob_runs[_pli]; - for(qti=0;qti<2;qti++)dc_quant[qti]=_pipe->dequant[_pli][0][qti][0]; - for(fragii=0;fragiidequant[_pli][frags[fragi].qii][qti]; - /*Decode the AC coefficients.*/ - for(zzi=0;zzi<64;){ - int token; - last_zzi=zzi; - if(eob_runs[zzi]){ - eob_runs[zzi]--; - break; - } - else{ - ptrdiff_t eob; - int cw; - int rlen; - int coeff; - int lti; - lti=ti[zzi]; - token=dct_tokens[lti++]; - cw=OC_DCT_CODE_WORD[token]; - /*These parts could be done branchless, but the branches are fairly - predictable and the C code translates into more than a few - instructions, so it's worth it to avoid them.*/ - if(OC_DCT_TOKEN_NEEDS_MORE(token)){ - cw+=dct_tokens[lti++]<>OC_DCT_CW_EOB_SHIFT&0xFFF; - if(token==OC_DCT_TOKEN_FAT_EOB){ - eob+=dct_tokens[lti++]<<8; - if(eob==0)eob=OC_DCT_EOB_FINISH; - } - rlen=(unsigned char)(cw>>OC_DCT_CW_RLEN_SHIFT); - cw^=-(cw&1<>OC_DCT_CW_MAG_SHIFT; - eob_runs[zzi]=eob; - ti[zzi]=lti; - zzi+=rlen; - dct_coeffs[dct_fzig_zag[zzi]]=(ogg_int16_t)(coeff*(int)ac_quant[zzi]); - zzi+=!eob; - } - } - /*TODO: zzi should be exactly 64 here. - If it's not, we should report some kind of warning.*/ - zzi=OC_MINI(zzi,64); - dct_coeffs[0]=(ogg_int16_t)frags[fragi].dc; - /*last_zzi is always initialized. - If your compiler thinks otherwise, it is dumb.*/ - oc_state_frag_recon(&_dec->state,fragi,_pli, - dct_coeffs,last_zzi,dc_quant[qti]); - } - _pipe->coded_fragis[_pli]+=ncoded_fragis; - /*Right now the reconstructed MCU has only the coded blocks in it.*/ - /*TODO: We make the decision here to always copy the uncoded blocks into it - from the reference frame. - We could also copy the coded blocks back over the reference frame, if we - wait for an additional MCU to be decoded, which might be faster if only a - small number of blocks are coded. - However, this introduces more latency, creating a larger cache footprint. - It's unknown which decision is better, but this one results in simpler - code, and the hard case (high bitrate, high resolution) is handled - correctly.*/ - /*Copy the uncoded blocks from the previous reference frame.*/ - _pipe->uncoded_fragis[_pli]-=_pipe->nuncoded_fragis[_pli]; - oc_state_frag_copy_list(&_dec->state,_pipe->uncoded_fragis[_pli], - _pipe->nuncoded_fragis[_pli],OC_FRAME_SELF,OC_FRAME_PREV,_pli); -} - -/*Filter a horizontal block edge.*/ -static void oc_filter_hedge(unsigned char *_dst,int _dst_ystride, - const unsigned char *_src,int _src_ystride,int _qstep,int _flimit, - int *_variance0,int *_variance1){ - unsigned char *rdst; - const unsigned char *rsrc; - unsigned char *cdst; - const unsigned char *csrc; - int r[10]; - int sum0; - int sum1; - int bx; - int by; - rdst=_dst; - rsrc=_src; - for(bx=0;bx<8;bx++){ - cdst=rdst; - csrc=rsrc; - for(by=0;by<10;by++){ - r[by]=*csrc; - csrc+=_src_ystride; - } - sum0=sum1=0; - for(by=0;by<4;by++){ - sum0+=abs(r[by+1]-r[by]); - sum1+=abs(r[by+5]-r[by+6]); - } - *_variance0+=OC_MINI(255,sum0); - *_variance1+=OC_MINI(255,sum1); - if(sum0<_flimit&&sum1<_flimit&&r[5]-r[4]<_qstep&&r[4]-r[5]<_qstep){ - *cdst=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3); - cdst+=_dst_ystride; - *cdst=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3); - cdst+=_dst_ystride; - for(by=0;by<4;by++){ - *cdst=(unsigned char)(r[by]+r[by+1]+r[by+2]+r[by+3]*2+ - r[by+4]+r[by+5]+r[by+6]+4>>3); - cdst+=_dst_ystride; - } - *cdst=(unsigned char)(r[4]+r[5]+r[6]+r[7]*2+r[8]+r[9]*2+4>>3); - cdst+=_dst_ystride; - *cdst=(unsigned char)(r[5]+r[6]+r[7]+r[8]*2+r[9]*3+4>>3); - } - else{ - for(by=1;by<=8;by++){ - *cdst=(unsigned char)r[by]; - cdst+=_dst_ystride; - } - } - rdst++; - rsrc++; - } -} - -/*Filter a vertical block edge.*/ -static void oc_filter_vedge(unsigned char *_dst,int _dst_ystride, - int _qstep,int _flimit,int *_variances){ - unsigned char *rdst; - const unsigned char *rsrc; - unsigned char *cdst; - int r[10]; - int sum0; - int sum1; - int bx; - int by; - cdst=_dst; - for(by=0;by<8;by++){ - rsrc=cdst-1; - rdst=cdst; - for(bx=0;bx<10;bx++)r[bx]=*rsrc++; - sum0=sum1=0; - for(bx=0;bx<4;bx++){ - sum0+=abs(r[bx+1]-r[bx]); - sum1+=abs(r[bx+5]-r[bx+6]); - } - _variances[0]+=OC_MINI(255,sum0); - _variances[1]+=OC_MINI(255,sum1); - if(sum0<_flimit&&sum1<_flimit&&r[5]-r[4]<_qstep&&r[4]-r[5]<_qstep){ - *rdst++=(unsigned char)(r[0]*3+r[1]*2+r[2]+r[3]+r[4]+4>>3); - *rdst++=(unsigned char)(r[0]*2+r[1]+r[2]*2+r[3]+r[4]+r[5]+4>>3); - for(bx=0;bx<4;bx++){ - *rdst++=(unsigned char)(r[bx]+r[bx+1]+r[bx+2]+r[bx+3]*2+ - r[bx+4]+r[bx+5]+r[bx+6]+4>>3); - } - *rdst++=(unsigned char)(r[4]+r[5]+r[6]+r[7]*2+r[8]+r[9]*2+4>>3); - *rdst=(unsigned char)(r[5]+r[6]+r[7]+r[8]*2+r[9]*3+4>>3); - } - cdst+=_dst_ystride; - } -} - -static void oc_dec_deblock_frag_rows(oc_dec_ctx *_dec, - th_img_plane *_dst,th_img_plane *_src,int _pli,int _fragy0, - int _fragy_end){ - oc_fragment_plane *fplane; - int *variance; - unsigned char *dc_qi; - unsigned char *dst; - const unsigned char *src; - ptrdiff_t froffset; - int dst_ystride; - int src_ystride; - int nhfrags; - int width; - int notstart; - int notdone; - int flimit; - int qstep; - int y_end; - int y; - int x; - _dst+=_pli; - _src+=_pli; - fplane=_dec->state.fplanes+_pli; - nhfrags=fplane->nhfrags; - froffset=fplane->froffset+_fragy0*(ptrdiff_t)nhfrags; - variance=_dec->variances+froffset; - dc_qi=_dec->dc_qis+froffset; - notstart=_fragy0>0; - notdone=_fragy_endnvfrags; - /*We want to clear an extra row of variances, except at the end.*/ - memset(variance+(nhfrags&-notstart),0, - (_fragy_end+notdone-_fragy0-notstart)*(nhfrags*sizeof(variance[0]))); - /*Except for the first time, we want to point to the middle of the row.*/ - y=(_fragy0<<3)+(notstart<<2); - dst_ystride=_dst->stride; - src_ystride=_src->stride; - dst=_dst->data+y*(ptrdiff_t)dst_ystride; - src=_src->data+y*(ptrdiff_t)src_ystride; - width=_dst->width; - for(;y<4;y++){ - memcpy(dst,src,width*sizeof(dst[0])); - dst+=dst_ystride; - src+=src_ystride; - } - /*We also want to skip the last row in the frame for this loop.*/ - y_end=_fragy_end-!notdone<<3; - for(;ypp_dc_scale[*dc_qi]; - flimit=(qstep*3)>>2; - oc_filter_hedge(dst,dst_ystride,src-src_ystride,src_ystride, - qstep,flimit,variance,variance+nhfrags); - variance++; - dc_qi++; - for(x=8;xpp_dc_scale[*dc_qi]; - flimit=(qstep*3)>>2; - oc_filter_hedge(dst+x,dst_ystride,src+x-src_ystride,src_ystride, - qstep,flimit,variance,variance+nhfrags); - oc_filter_vedge(dst+x-(dst_ystride<<2)-4,dst_ystride, - qstep,flimit,variance-1); - variance++; - dc_qi++; - } - dst+=dst_ystride<<3; - src+=src_ystride<<3; - } - /*And finally, handle the last row in the frame, if it's in the range.*/ - if(!notdone){ - int height; - height=_dst->height; - for(;ypp_dc_scale[*dc_qi++]; - flimit=(qstep*3)>>2; - oc_filter_vedge(dst+x-(dst_ystride<<3)-4,dst_ystride, - qstep,flimit,variance++); - } - } -} - -static void oc_dering_block(unsigned char *_idata,int _ystride,int _b, - int _dc_scale,int _sharp_mod,int _strong){ - static const unsigned char OC_MOD_MAX[2]={24,32}; - static const unsigned char OC_MOD_SHIFT[2]={1,0}; - const unsigned char *psrc; - const unsigned char *src; - const unsigned char *nsrc; - unsigned char *dst; - int vmod[72]; - int hmod[72]; - int mod_hi; - int by; - int bx; - mod_hi=OC_MINI(3*_dc_scale,OC_MOD_MAX[_strong]); - dst=_idata; - src=dst; - psrc=src-(_ystride&-!(_b&4)); - for(by=0;by<9;by++){ - for(bx=0;bx<8;bx++){ - int mod; - mod=32+_dc_scale-(abs(src[bx]-psrc[bx])<>7); - for(bx=1;bx<7;bx++){ - a=128; - b=64; - w=hmod[(bx<<3)+by]; - a-=w; - b+=w*src[bx-1]; - w=vmod[(by<<3)+bx]; - a-=w; - b+=w*psrc[bx]; - w=vmod[(by+1<<3)+bx]; - a-=w; - b+=w*nsrc[bx]; - w=hmod[(bx+1<<3)+by]; - a-=w; - b+=w*src[bx+1]; - dst[bx]=OC_CLAMP255(a*src[bx]+b>>7); - } - a=128; - b=64; - w=hmod[(7<<3)+by]; - a-=w; - b+=w*src[6]; - w=vmod[(by<<3)+7]; - a-=w; - b+=w*psrc[7]; - w=vmod[(by+1<<3)+7]; - a-=w; - b+=w*nsrc[7]; - w=hmod[(8<<3)+by]; - a-=w; - b+=w*src[7+!(_b&2)]; - dst[7]=OC_CLAMP255(a*src[7]+b>>7); - dst+=_ystride; - psrc=src; - src=nsrc; - nsrc+=_ystride&-(!(_b&8)|by<6); - } -} - -#define OC_DERING_THRESH1 (384) -#define OC_DERING_THRESH2 (4*OC_DERING_THRESH1) -#define OC_DERING_THRESH3 (5*OC_DERING_THRESH1) -#define OC_DERING_THRESH4 (10*OC_DERING_THRESH1) - -static void oc_dec_dering_frag_rows(oc_dec_ctx *_dec,th_img_plane *_img, - int _pli,int _fragy0,int _fragy_end){ - th_img_plane *iplane; - oc_fragment_plane *fplane; - oc_fragment *frag; - int *variance; - unsigned char *idata; - ptrdiff_t froffset; - int ystride; - int nhfrags; - int sthresh; - int strong; - int y_end; - int width; - int height; - int y; - int x; - iplane=_img+_pli; - fplane=_dec->state.fplanes+_pli; - nhfrags=fplane->nhfrags; - froffset=fplane->froffset+_fragy0*(ptrdiff_t)nhfrags; - variance=_dec->variances+froffset; - frag=_dec->state.frags+froffset; - strong=_dec->pp_level>=(_pli?OC_PP_LEVEL_SDERINGC:OC_PP_LEVEL_SDERINGY); - sthresh=_pli?OC_DERING_THRESH4:OC_DERING_THRESH3; - y=_fragy0<<3; - ystride=iplane->stride; - idata=iplane->data+y*(ptrdiff_t)ystride; - y_end=_fragy_end<<3; - width=iplane->width; - height=iplane->height; - for(;ystate.qis[frag->qii]; - var=*variance; - b=(x<=0)|(x+8>=width)<<1|(y<=0)<<2|(y+8>=height)<<3; - if(strong&&var>sthresh){ - oc_dering_block(idata+x,ystride,b, - _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); - if(_pli||!(b&1)&&*(variance-1)>OC_DERING_THRESH4|| - !(b&2)&&variance[1]>OC_DERING_THRESH4|| - !(b&4)&&*(variance-nhfrags)>OC_DERING_THRESH4|| - !(b&8)&&variance[nhfrags]>OC_DERING_THRESH4){ - oc_dering_block(idata+x,ystride,b, - _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); - oc_dering_block(idata+x,ystride,b, - _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); - } - } - else if(var>OC_DERING_THRESH2){ - oc_dering_block(idata+x,ystride,b, - _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],1); - } - else if(var>OC_DERING_THRESH1){ - oc_dering_block(idata+x,ystride,b, - _dec->pp_dc_scale[qi],_dec->pp_sharp_mod[qi],0); - } - frag++; - variance++; - } - idata+=ystride<<3; - } -} - - - -th_dec_ctx *th_decode_alloc(const th_info *_info,const th_setup_info *_setup){ - oc_dec_ctx *dec; - if(_info==NULL||_setup==NULL)return NULL; - dec=_ogg_malloc(sizeof(*dec)); - if(dec==NULL||oc_dec_init(dec,_info,_setup)<0){ - _ogg_free(dec); - return NULL; - } - dec->state.curframe_num=0; - return dec; -} - -void th_decode_free(th_dec_ctx *_dec){ - if(_dec!=NULL){ - oc_dec_clear(_dec); - _ogg_free(_dec); - } -} - -int th_decode_ctl(th_dec_ctx *_dec,int _req,void *_buf, - size_t _buf_sz){ - switch(_req){ - case TH_DECCTL_GET_PPLEVEL_MAX:{ - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(int))return TH_EINVAL; - (*(int *)_buf)=OC_PP_LEVEL_MAX; - return 0; - }break; - case TH_DECCTL_SET_PPLEVEL:{ - int pp_level; - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(int))return TH_EINVAL; - pp_level=*(int *)_buf; - if(pp_level<0||pp_level>OC_PP_LEVEL_MAX)return TH_EINVAL; - _dec->pp_level=pp_level; - return 0; - }break; - case TH_DECCTL_SET_GRANPOS:{ - ogg_int64_t granpos; - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(ogg_int64_t))return TH_EINVAL; - granpos=*(ogg_int64_t *)_buf; - if(granpos<0)return TH_EINVAL; - _dec->state.granpos=granpos; - _dec->state.keyframe_num=(granpos>>_dec->state.info.keyframe_granule_shift) - -_dec->state.granpos_bias; - _dec->state.curframe_num=_dec->state.keyframe_num - +(granpos&(1<<_dec->state.info.keyframe_granule_shift)-1); - return 0; - }break; - case TH_DECCTL_SET_STRIPE_CB:{ - th_stripe_callback *cb; - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(th_stripe_callback))return TH_EINVAL; - cb=(th_stripe_callback *)_buf; - _dec->stripe_cb.ctx=cb->ctx; - _dec->stripe_cb.stripe_decoded=cb->stripe_decoded; - return 0; - }break; -#ifdef HAVE_CAIRO - case TH_DECCTL_SET_TELEMETRY_MBMODE:{ - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(int))return TH_EINVAL; - _dec->telemetry=1; - _dec->telemetry_mbmode=*(int *)_buf; - return 0; - }break; - case TH_DECCTL_SET_TELEMETRY_MV:{ - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(int))return TH_EINVAL; - _dec->telemetry=1; - _dec->telemetry_mv=*(int *)_buf; - return 0; - }break; - case TH_DECCTL_SET_TELEMETRY_QI:{ - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(int))return TH_EINVAL; - _dec->telemetry=1; - _dec->telemetry_qi=*(int *)_buf; - return 0; - }break; - case TH_DECCTL_SET_TELEMETRY_BITS:{ - if(_dec==NULL||_buf==NULL)return TH_EFAULT; - if(_buf_sz!=sizeof(int))return TH_EINVAL; - _dec->telemetry=1; - _dec->telemetry_bits=*(int *)_buf; - return 0; - }break; -#endif - default:return TH_EIMPL; - } -} - -/*We're decoding an INTER frame, but have no initialized reference - buffers (i.e., decoding did not start on a key frame). - We initialize them to a solid gray here.*/ -static void oc_dec_init_dummy_frame(th_dec_ctx *_dec){ - th_info *info; - size_t yplane_sz; - size_t cplane_sz; - int yhstride; - int yheight; - int chstride; - int cheight; - _dec->state.ref_frame_idx[OC_FRAME_GOLD]=0; - _dec->state.ref_frame_idx[OC_FRAME_PREV]=0; - _dec->state.ref_frame_idx[OC_FRAME_SELF]=1; - info=&_dec->state.info; - yhstride=info->frame_width+2*OC_UMV_PADDING; - yheight=info->frame_height+2*OC_UMV_PADDING; - chstride=yhstride>>!(info->pixel_fmt&1); - cheight=yheight>>!(info->pixel_fmt&2); - yplane_sz=yhstride*(size_t)yheight; - cplane_sz=chstride*(size_t)cheight; - memset(_dec->state.ref_frame_data[0],0x80,yplane_sz+2*cplane_sz); -} - -int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op, - ogg_int64_t *_granpos){ - int ret; - if(_dec==NULL||_op==NULL)return TH_EFAULT; - /*A completely empty packet indicates a dropped frame and is treated exactly - like an inter frame with no coded blocks. - Only proceed if we have a non-empty packet.*/ - if(_op->bytes!=0){ - oc_dec_pipeline_state pipe; - th_ycbcr_buffer stripe_buf; - int stripe_fragy; - int refi; - int pli; - int notstart; - int notdone; - oc_pack_readinit(&_dec->opb,_op->packet,_op->bytes); -#if defined(HAVE_CAIRO) - _dec->telemetry_frame_bytes=_op->bytes; -#endif - ret=oc_dec_frame_header_unpack(_dec); - if(ret<0)return ret; - /*Select a free buffer to use for the reconstructed version of this - frame.*/ - if(_dec->state.frame_type!=OC_INTRA_FRAME&& - (_dec->state.ref_frame_idx[OC_FRAME_GOLD]<0|| - _dec->state.ref_frame_idx[OC_FRAME_PREV]<0)){ - /*No reference frames yet!*/ - oc_dec_init_dummy_frame(_dec); - refi=_dec->state.ref_frame_idx[OC_FRAME_SELF]; - } - else{ - for(refi=0;refi==_dec->state.ref_frame_idx[OC_FRAME_GOLD]|| - refi==_dec->state.ref_frame_idx[OC_FRAME_PREV];refi++); - _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi; - } - if(_dec->state.frame_type==OC_INTRA_FRAME){ - oc_dec_mark_all_intra(_dec); - _dec->state.keyframe_num=_dec->state.curframe_num; -#if defined(HAVE_CAIRO) - _dec->telemetry_coding_bytes= - _dec->telemetry_mode_bytes= - _dec->telemetry_mv_bytes=oc_pack_bytes_left(&_dec->opb); -#endif - } - else{ - oc_dec_coded_flags_unpack(_dec); -#if defined(HAVE_CAIRO) - _dec->telemetry_coding_bytes=oc_pack_bytes_left(&_dec->opb); -#endif - oc_dec_mb_modes_unpack(_dec); -#if defined(HAVE_CAIRO) - _dec->telemetry_mode_bytes=oc_pack_bytes_left(&_dec->opb); -#endif - oc_dec_mv_unpack_and_frag_modes_fill(_dec); -#if defined(HAVE_CAIRO) - _dec->telemetry_mv_bytes=oc_pack_bytes_left(&_dec->opb); -#endif - } - oc_dec_block_qis_unpack(_dec); -#if defined(HAVE_CAIRO) - _dec->telemetry_qi_bytes=oc_pack_bytes_left(&_dec->opb); -#endif - oc_dec_residual_tokens_unpack(_dec); - /*Update granule position. - This must be done before the striped decode callbacks so that the - application knows what to do with the frame data.*/ - _dec->state.granpos=(_dec->state.keyframe_num+_dec->state.granpos_bias<< - _dec->state.info.keyframe_granule_shift) - +(_dec->state.curframe_num-_dec->state.keyframe_num); - _dec->state.curframe_num++; - if(_granpos!=NULL)*_granpos=_dec->state.granpos; - /*All of the rest of the operations -- DC prediction reversal, - reconstructing coded fragments, copying uncoded fragments, loop - filtering, extending borders, and out-of-loop post-processing -- should - be pipelined. - I.e., DC prediction reversal, reconstruction, and uncoded fragment - copying are done for one or two super block rows, then loop filtering is - run as far as it can, then bordering copying, then post-processing. - For 4:2:0 video a Minimum Codable Unit or MCU contains two luma super - block rows, and one chroma. - Otherwise, an MCU consists of one super block row from each plane. - Inside each MCU, we perform all of the steps on one color plane before - moving on to the next. - After reconstruction, the additional filtering stages introduce a delay - since they need some pixels from the next fragment row. - Thus the actual number of decoded rows available is slightly smaller for - the first MCU, and slightly larger for the last. - - This entire process allows us to operate on the data while it is still in - cache, resulting in big performance improvements. - An application callback allows further application processing (blitting - to video memory, color conversion, etc.) to also use the data while it's - in cache.*/ - oc_dec_pipeline_init(_dec,&pipe); - oc_ycbcr_buffer_flip(stripe_buf,_dec->pp_frame_buf); - notstart=0; - notdone=1; - for(stripe_fragy=0;notdone;stripe_fragy+=pipe.mcu_nvfrags){ - int avail_fragy0; - int avail_fragy_end; - avail_fragy0=avail_fragy_end=_dec->state.fplanes[0].nvfrags; - notdone=stripe_fragy+pipe.mcu_nvfragsstate.fplanes+pli; - /*Compute the first and last fragment row of the current MCU for this - plane.*/ - frag_shift=pli!=0&&!(_dec->state.info.pixel_fmt&2); - pipe.fragy0[pli]=stripe_fragy>>frag_shift; - pipe.fragy_end[pli]=OC_MINI(fplane->nvfrags, - pipe.fragy0[pli]+(pipe.mcu_nvfrags>>frag_shift)); - oc_dec_dc_unpredict_mcu_plane(_dec,&pipe,pli); - oc_dec_frags_recon_mcu_plane(_dec,&pipe,pli); - sdelay=edelay=0; - if(pipe.loop_filter){ - sdelay+=notstart; - edelay+=notdone; - oc_state_loop_filter_frag_rows(&_dec->state,pipe.bounding_values, - refi,pli,pipe.fragy0[pli]-sdelay,pipe.fragy_end[pli]-edelay); - } - /*To fill the borders, we have an additional two pixel delay, since a - fragment in the next row could filter its top edge, using two pixels - from a fragment in this row. - But there's no reason to delay a full fragment between the two.*/ - oc_state_borders_fill_rows(&_dec->state,refi,pli, - (pipe.fragy0[pli]-sdelay<<3)-(sdelay<<1), - (pipe.fragy_end[pli]-edelay<<3)-(edelay<<1)); - /*Out-of-loop post-processing.*/ - pp_offset=3*(pli!=0); - if(pipe.pp_level>=OC_PP_LEVEL_DEBLOCKY+pp_offset){ - /*Perform de-blocking in one plane.*/ - sdelay+=notstart; - edelay+=notdone; - oc_dec_deblock_frag_rows(_dec,_dec->pp_frame_buf, - _dec->state.ref_frame_bufs[refi],pli, - pipe.fragy0[pli]-sdelay,pipe.fragy_end[pli]-edelay); - if(pipe.pp_level>=OC_PP_LEVEL_DERINGY+pp_offset){ - /*Perform de-ringing in one plane.*/ - sdelay+=notstart; - edelay+=notdone; - oc_dec_dering_frag_rows(_dec,_dec->pp_frame_buf,pli, - pipe.fragy0[pli]-sdelay,pipe.fragy_end[pli]-edelay); - } - } - /*If no post-processing is done, we still need to delay a row for the - loop filter, thanks to the strange filtering order VP3 chose.*/ - else if(pipe.loop_filter){ - sdelay+=notstart; - edelay+=notdone; - } - /*Compute the intersection of the available rows in all planes. - If chroma is sub-sampled, the effect of each of its delays is - doubled, but luma might have more post-processing filters enabled - than chroma, so we don't know up front which one is the limiting - factor.*/ - avail_fragy0=OC_MINI(avail_fragy0,pipe.fragy0[pli]-sdelay<stripe_cb.stripe_decoded!=NULL){ - /*The callback might want to use the FPU, so let's make sure they can. - We violate all kinds of ABI restrictions by not doing this until - now, but none of them actually matter since we don't use floating - point ourselves.*/ - oc_restore_fpu(&_dec->state); - /*Make the callback, ensuring we flip the sense of the "start" and - "end" of the available region upside down.*/ - (*_dec->stripe_cb.stripe_decoded)(_dec->stripe_cb.ctx,stripe_buf, - _dec->state.fplanes[0].nvfrags-avail_fragy_end, - _dec->state.fplanes[0].nvfrags-avail_fragy0); - } - notstart=1; - } - /*Finish filling in the reference frame borders.*/ - for(pli=0;pli<3;pli++)oc_state_borders_fill_caps(&_dec->state,refi,pli); - /*Update the reference frame indices.*/ - if(_dec->state.frame_type==OC_INTRA_FRAME){ - /*The new frame becomes both the previous and gold reference frames.*/ - _dec->state.ref_frame_idx[OC_FRAME_GOLD]= - _dec->state.ref_frame_idx[OC_FRAME_PREV]= - _dec->state.ref_frame_idx[OC_FRAME_SELF]; - } - else{ - /*Otherwise, just replace the previous reference frame.*/ - _dec->state.ref_frame_idx[OC_FRAME_PREV]= - _dec->state.ref_frame_idx[OC_FRAME_SELF]; - } - /*Restore the FPU before dump_frame, since that _does_ use the FPU (for PNG - gamma values, if nothing else).*/ - oc_restore_fpu(&_dec->state); -#if defined(OC_DUMP_IMAGES) - /*Don't dump images for dropped frames.*/ - oc_state_dump_frame(&_dec->state,OC_FRAME_SELF,"dec"); -#endif - return 0; - } - else{ - if(_dec->state.ref_frame_idx[OC_FRAME_GOLD]<0|| - _dec->state.ref_frame_idx[OC_FRAME_PREV]<0){ - int refi; - /*No reference frames yet!*/ - oc_dec_init_dummy_frame(_dec); - refi=_dec->state.ref_frame_idx[OC_FRAME_PREV]; - _dec->state.ref_frame_idx[OC_FRAME_SELF]=refi; - memcpy(_dec->pp_frame_buf,_dec->state.ref_frame_bufs[refi], - sizeof(_dec->pp_frame_buf[0])*3); - } - /*Just update the granule position and return.*/ - _dec->state.granpos=(_dec->state.keyframe_num+_dec->state.granpos_bias<< - _dec->state.info.keyframe_granule_shift) - +(_dec->state.curframe_num-_dec->state.keyframe_num); - _dec->state.curframe_num++; - if(_granpos!=NULL)*_granpos=_dec->state.granpos; - return TH_DUPFRAME; - } -} - -int th_decode_ycbcr_out(th_dec_ctx *_dec,th_ycbcr_buffer _ycbcr){ - if(_dec==NULL||_ycbcr==NULL)return TH_EFAULT; - oc_ycbcr_buffer_flip(_ycbcr,_dec->pp_frame_buf); -#if defined(HAVE_CAIRO) - /*If telemetry ioctls are active, we need to draw to the output buffer. - Stuff the plane into cairo.*/ - if(_dec->telemetry){ - cairo_surface_t *cs; - unsigned char *data; - unsigned char *y_row; - unsigned char *u_row; - unsigned char *v_row; - unsigned char *rgb_row; - int cstride; - int w; - int h; - int x; - int y; - int hdec; - int vdec; - w=_ycbcr[0].width; - h=_ycbcr[0].height; - hdec=!(_dec->state.info.pixel_fmt&1); - vdec=!(_dec->state.info.pixel_fmt&2); - /*Lazy data buffer init. - We could try to re-use the post-processing buffer, which would save - memory, but complicate the allocation logic there. - I don't think anyone cares about memory usage when using telemetry; it is - not meant for embedded devices.*/ - if(_dec->telemetry_frame_data==NULL){ - _dec->telemetry_frame_data=_ogg_malloc( - (w*h+2*(w>>hdec)*(h>>vdec))*sizeof(*_dec->telemetry_frame_data)); - if(_dec->telemetry_frame_data==NULL)return 0; - } - cs=cairo_image_surface_create(CAIRO_FORMAT_RGB24,w,h); - /*Sadly, no YUV support in Cairo (yet); convert into the RGB buffer.*/ - data=cairo_image_surface_get_data(cs); - if(data==NULL){ - cairo_surface_destroy(cs); - return 0; - } - cstride=cairo_image_surface_get_stride(cs); - y_row=_ycbcr[0].data; - u_row=_ycbcr[1].data; - v_row=_ycbcr[2].data; - rgb_row=data; - for(y=0;y>hdec]-363703744)/1635200; - g=(3827562*y_row[x]-1287801*u_row[x>>hdec] - -2672387*v_row[x>>hdec]+447306710)/3287200; - b=(952000*y_row[x]+1649289*u_row[x>>hdec]-225932192)/817600; - rgb_row[4*x+0]=OC_CLAMP255(b); - rgb_row[4*x+1]=OC_CLAMP255(g); - rgb_row[4*x+2]=OC_CLAMP255(r); - } - y_row+=_ycbcr[0].stride; - u_row+=_ycbcr[1].stride&-((y&1)|!vdec); - v_row+=_ycbcr[2].stride&-((y&1)|!vdec); - rgb_row+=cstride; - } - /*Draw coded identifier for each macroblock (stored in Hilbert order).*/ - { - cairo_t *c; - const oc_fragment *frags; - oc_mv *frag_mvs; - const signed char *mb_modes; - oc_mb_map *mb_maps; - size_t nmbs; - size_t mbi; - int row2; - int col2; - int qim[3]={0,0,0}; - if(_dec->state.nqis==2){ - int bqi; - bqi=_dec->state.qis[0]; - if(_dec->state.qis[1]>bqi)qim[1]=1; - if(_dec->state.qis[1]state.nqis==3){ - int bqi; - int cqi; - int dqi; - bqi=_dec->state.qis[0]; - cqi=_dec->state.qis[1]; - dqi=_dec->state.qis[2]; - if(cqi>bqi&&dqi>bqi){ - if(dqi>cqi){ - qim[1]=1; - qim[2]=2; - } - else{ - qim[1]=2; - qim[2]=1; - } - } - else if(cqistate.frags; - frag_mvs=_dec->state.frag_mvs; - mb_modes=_dec->state.mb_modes; - mb_maps=_dec->state.mb_maps; - nmbs=_dec->state.nmbs; - row2=0; - col2=0; - for(mbi=0;mbi>1)&1))*16-16; - x=(col2>>1)*16; - cairo_set_line_width(c,1.); - /*Keyframe (all intra) red box.*/ - if(_dec->state.frame_type==OC_INTRA_FRAME){ - if(_dec->telemetry_mbmode&0x02){ - cairo_set_source_rgba(c,1.,0,0,.5); - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,1.,0,0,.25); - cairo_fill(c); - } - } - else{ - const signed char *frag_mv; - ptrdiff_t fragi; - for(bi=0;bi<4;bi++){ - fragi=mb_maps[mbi][0][bi]; - if(fragi>=0&&frags[fragi].coded){ - frag_mv=frag_mvs[fragi]; - break; - } - } - if(bi<4){ - switch(mb_modes[mbi]){ - case OC_MODE_INTRA:{ - if(_dec->telemetry_mbmode&0x02){ - cairo_set_source_rgba(c,1.,0,0,.5); - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,1.,0,0,.25); - cairo_fill(c); - } - }break; - case OC_MODE_INTER_NOMV:{ - if(_dec->telemetry_mbmode&0x01){ - cairo_set_source_rgba(c,0,0,1.,.5); - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,0,0,1.,.25); - cairo_fill(c); - } - }break; - case OC_MODE_INTER_MV:{ - if(_dec->telemetry_mbmode&0x04){ - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_set_source_rgba(c,0,1.,0,.5); - cairo_stroke(c); - } - if(_dec->telemetry_mv&0x04){ - cairo_move_to(c,x+8+frag_mv[0],y+8-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+8+frag_mv[0]*.66,y+8-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+8+frag_mv[0]*.33,y+8-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+8,y+8); - cairo_stroke(c); - } - }break; - case OC_MODE_INTER_MV_LAST:{ - if(_dec->telemetry_mbmode&0x08){ - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_set_source_rgba(c,0,1.,0,.5); - cairo_move_to(c,x+13.5,y+2.5); - cairo_line_to(c,x+2.5,y+8); - cairo_line_to(c,x+13.5,y+13.5); - cairo_stroke(c); - } - if(_dec->telemetry_mv&0x08){ - cairo_move_to(c,x+8+frag_mv[0],y+8-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+8+frag_mv[0]*.66,y+8-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+8+frag_mv[0]*.33,y+8-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+8,y+8); - cairo_stroke(c); - } - }break; - case OC_MODE_INTER_MV_LAST2:{ - if(_dec->telemetry_mbmode&0x10){ - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_set_source_rgba(c,0,1.,0,.5); - cairo_move_to(c,x+8,y+2.5); - cairo_line_to(c,x+2.5,y+8); - cairo_line_to(c,x+8,y+13.5); - cairo_move_to(c,x+13.5,y+2.5); - cairo_line_to(c,x+8,y+8); - cairo_line_to(c,x+13.5,y+13.5); - cairo_stroke(c); - } - if(_dec->telemetry_mv&0x10){ - cairo_move_to(c,x+8+frag_mv[0],y+8-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+8+frag_mv[0]*.66,y+8-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+8+frag_mv[0]*.33,y+8-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+8,y+8); - cairo_stroke(c); - } - }break; - case OC_MODE_GOLDEN_NOMV:{ - if(_dec->telemetry_mbmode&0x20){ - cairo_set_source_rgba(c,1.,1.,0,.5); - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,1.,1.,0,.25); - cairo_fill(c); - } - }break; - case OC_MODE_GOLDEN_MV:{ - if(_dec->telemetry_mbmode&0x40){ - cairo_rectangle(c,x+2.5,y+2.5,11,11); - cairo_set_source_rgba(c,1.,1.,0,.5); - cairo_stroke(c); - } - if(_dec->telemetry_mv&0x40){ - cairo_move_to(c,x+8+frag_mv[0],y+8-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+8+frag_mv[0]*.66,y+8-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+8+frag_mv[0]*.33,y+8-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+8,y+8); - cairo_stroke(c); - } - }break; - case OC_MODE_INTER_MV_FOUR:{ - if(_dec->telemetry_mbmode&0x80){ - cairo_rectangle(c,x+2.5,y+2.5,4,4); - cairo_rectangle(c,x+9.5,y+2.5,4,4); - cairo_rectangle(c,x+2.5,y+9.5,4,4); - cairo_rectangle(c,x+9.5,y+9.5,4,4); - cairo_set_source_rgba(c,0,1.,0,.5); - cairo_stroke(c); - } - /*4mv is odd, coded in raster order.*/ - fragi=mb_maps[mbi][0][0]; - if(frags[fragi].coded&&_dec->telemetry_mv&0x80){ - frag_mv=frag_mvs[fragi]; - cairo_move_to(c,x+4+frag_mv[0],y+12-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+4+frag_mv[0]*.66,y+12-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+4+frag_mv[0]*.33,y+12-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+4,y+12); - cairo_stroke(c); - } - fragi=mb_maps[mbi][0][1]; - if(frags[fragi].coded&&_dec->telemetry_mv&0x80){ - frag_mv=frag_mvs[fragi]; - cairo_move_to(c,x+12+frag_mv[0],y+12-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+12+frag_mv[0]*.66,y+12-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+12+frag_mv[0]*.33,y+12-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+12,y+12); - cairo_stroke(c); - } - fragi=mb_maps[mbi][0][2]; - if(frags[fragi].coded&&_dec->telemetry_mv&0x80){ - frag_mv=frag_mvs[fragi]; - cairo_move_to(c,x+4+frag_mv[0],y+4-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+4+frag_mv[0]*.66,y+4-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+4+frag_mv[0]*.33,y+4-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+4,y+4); - cairo_stroke(c); - } - fragi=mb_maps[mbi][0][3]; - if(frags[fragi].coded&&_dec->telemetry_mv&0x80){ - frag_mv=frag_mvs[fragi]; - cairo_move_to(c,x+12+frag_mv[0],y+4-frag_mv[1]); - cairo_set_source_rgba(c,1.,1.,1.,.9); - cairo_set_line_width(c,3.); - cairo_line_to(c,x+12+frag_mv[0]*.66,y+4-frag_mv[1]*.66); - cairo_stroke_preserve(c); - cairo_set_line_width(c,2.); - cairo_line_to(c,x+12+frag_mv[0]*.33,y+4-frag_mv[1]*.33); - cairo_stroke_preserve(c); - cairo_set_line_width(c,1.); - cairo_line_to(c,x+12,y+4); - cairo_stroke(c); - } - }break; - } - } - } - /*qii illustration.*/ - if(_dec->telemetry_qi&0x2){ - cairo_set_line_cap(c,CAIRO_LINE_CAP_SQUARE); - for(bi=0;bi<4;bi++){ - ptrdiff_t fragi; - int qiv; - int xp; - int yp; - xp=x+(bi&1)*8; - yp=y+8-(bi&2)*4; - fragi=mb_maps[mbi][0][bi]; - if(fragi>=0&&frags[fragi].coded){ - qiv=qim[frags[fragi].qii]; - cairo_set_line_width(c,3.); - cairo_set_source_rgba(c,0.,0.,0.,.5); - switch(qiv){ - /*Double plus:*/ - case 2:{ - if((bi&1)^((bi&2)>>1)){ - cairo_move_to(c,xp+2.5,yp+1.5); - cairo_line_to(c,xp+2.5,yp+3.5); - cairo_move_to(c,xp+1.5,yp+2.5); - cairo_line_to(c,xp+3.5,yp+2.5); - cairo_move_to(c,xp+5.5,yp+4.5); - cairo_line_to(c,xp+5.5,yp+6.5); - cairo_move_to(c,xp+4.5,yp+5.5); - cairo_line_to(c,xp+6.5,yp+5.5); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,0.,1.,1.,1.); - } - else{ - cairo_move_to(c,xp+5.5,yp+1.5); - cairo_line_to(c,xp+5.5,yp+3.5); - cairo_move_to(c,xp+4.5,yp+2.5); - cairo_line_to(c,xp+6.5,yp+2.5); - cairo_move_to(c,xp+2.5,yp+4.5); - cairo_line_to(c,xp+2.5,yp+6.5); - cairo_move_to(c,xp+1.5,yp+5.5); - cairo_line_to(c,xp+3.5,yp+5.5); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,0.,1.,1.,1.); - } - }break; - /*Double minus:*/ - case -2:{ - cairo_move_to(c,xp+2.5,yp+2.5); - cairo_line_to(c,xp+5.5,yp+2.5); - cairo_move_to(c,xp+2.5,yp+5.5); - cairo_line_to(c,xp+5.5,yp+5.5); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,1.,1.,1.,1.); - }break; - /*Plus:*/ - case 1:{ - if(bi&2==0)yp-=2; - if(bi&1==0)xp-=2; - cairo_move_to(c,xp+4.5,yp+2.5); - cairo_line_to(c,xp+4.5,yp+6.5); - cairo_move_to(c,xp+2.5,yp+4.5); - cairo_line_to(c,xp+6.5,yp+4.5); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,.1,1.,.3,1.); - break; - } - /*Fall through.*/ - /*Minus:*/ - case -1:{ - cairo_move_to(c,xp+2.5,yp+4.5); - cairo_line_to(c,xp+6.5,yp+4.5); - cairo_stroke_preserve(c); - cairo_set_source_rgba(c,1.,.3,.1,1.); - }break; - default:continue; - } - cairo_set_line_width(c,1.); - cairo_stroke(c); - } - } - } - col2++; - if((col2>>1)>=_dec->state.nhmbs){ - col2=0; - row2+=2; - } - } - /*Bit usage indicator[s]:*/ - if(_dec->telemetry_bits){ - int widths[6]; - int fpsn; - int fpsd; - int mult; - int fullw; - int padw; - int i; - fpsn=_dec->state.info.fps_numerator; - fpsd=_dec->state.info.fps_denominator; - mult=(_dec->telemetry_bits>=0xFF?1:_dec->telemetry_bits); - fullw=250.f*h*fpsd*mult/fpsn; - padw=w-24; - /*Header and coded block bits.*/ - if(_dec->telemetry_frame_bytes<0|| - _dec->telemetry_frame_bytes==OC_LOTS_OF_BITS){ - _dec->telemetry_frame_bytes=0; - } - if(_dec->telemetry_coding_bytes<0|| - _dec->telemetry_coding_bytes>_dec->telemetry_frame_bytes){ - _dec->telemetry_coding_bytes=0; - } - if(_dec->telemetry_mode_bytes<0|| - _dec->telemetry_mode_bytes>_dec->telemetry_frame_bytes){ - _dec->telemetry_mode_bytes=0; - } - if(_dec->telemetry_mv_bytes<0|| - _dec->telemetry_mv_bytes>_dec->telemetry_frame_bytes){ - _dec->telemetry_mv_bytes=0; - } - if(_dec->telemetry_qi_bytes<0|| - _dec->telemetry_qi_bytes>_dec->telemetry_frame_bytes){ - _dec->telemetry_qi_bytes=0; - } - if(_dec->telemetry_dc_bytes<0|| - _dec->telemetry_dc_bytes>_dec->telemetry_frame_bytes){ - _dec->telemetry_dc_bytes=0; - } - widths[0]=padw*(_dec->telemetry_frame_bytes-_dec->telemetry_coding_bytes)/fullw; - widths[1]=padw*(_dec->telemetry_coding_bytes-_dec->telemetry_mode_bytes)/fullw; - widths[2]=padw*(_dec->telemetry_mode_bytes-_dec->telemetry_mv_bytes)/fullw; - widths[3]=padw*(_dec->telemetry_mv_bytes-_dec->telemetry_qi_bytes)/fullw; - widths[4]=padw*(_dec->telemetry_qi_bytes-_dec->telemetry_dc_bytes)/fullw; - widths[5]=padw*(_dec->telemetry_dc_bytes)/fullw; - for(i=0;i<6;i++)if(widths[i]>w)widths[i]=w; - cairo_set_source_rgba(c,.0,.0,.0,.6); - cairo_rectangle(c,10,h-33,widths[0]+1,5); - cairo_rectangle(c,10,h-29,widths[1]+1,5); - cairo_rectangle(c,10,h-25,widths[2]+1,5); - cairo_rectangle(c,10,h-21,widths[3]+1,5); - cairo_rectangle(c,10,h-17,widths[4]+1,5); - cairo_rectangle(c,10,h-13,widths[5]+1,5); - cairo_fill(c); - cairo_set_source_rgb(c,1,0,0); - cairo_rectangle(c,10.5,h-32.5,widths[0],4); - cairo_fill(c); - cairo_set_source_rgb(c,0,1,0); - cairo_rectangle(c,10.5,h-28.5,widths[1],4); - cairo_fill(c); - cairo_set_source_rgb(c,0,0,1); - cairo_rectangle(c,10.5,h-24.5,widths[2],4); - cairo_fill(c); - cairo_set_source_rgb(c,.6,.4,.0); - cairo_rectangle(c,10.5,h-20.5,widths[3],4); - cairo_fill(c); - cairo_set_source_rgb(c,.3,.3,.3); - cairo_rectangle(c,10.5,h-16.5,widths[4],4); - cairo_fill(c); - cairo_set_source_rgb(c,.5,.5,.8); - cairo_rectangle(c,10.5,h-12.5,widths[5],4); - cairo_fill(c); - } - /*Master qi indicator[s]:*/ - if(_dec->telemetry_qi&0x1){ - cairo_text_extents_t extents; - char buffer[10]; - int p; - int y; - p=0; - y=h-7.5; - if(_dec->state.qis[0]>=10)buffer[p++]=48+_dec->state.qis[0]/10; - buffer[p++]=48+_dec->state.qis[0]%10; - if(_dec->state.nqis>=2){ - buffer[p++]=' '; - if(_dec->state.qis[1]>=10)buffer[p++]=48+_dec->state.qis[1]/10; - buffer[p++]=48+_dec->state.qis[1]%10; - } - if(_dec->state.nqis==3){ - buffer[p++]=' '; - if(_dec->state.qis[2]>=10)buffer[p++]=48+_dec->state.qis[2]/10; - buffer[p++]=48+_dec->state.qis[2]%10; - } - buffer[p++]='\0'; - cairo_select_font_face(c,"sans", - CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD); - cairo_set_font_size(c,18); - cairo_text_extents(c,buffer,&extents); - cairo_set_source_rgb(c,1,1,1); - cairo_move_to(c,w-extents.x_advance-10,y); - cairo_show_text(c,buffer); - cairo_set_source_rgb(c,0,0,0); - cairo_move_to(c,w-extents.x_advance-10,y); - cairo_text_path(c,buffer); - cairo_set_line_width(c,.8); - cairo_set_line_join(c,CAIRO_LINE_JOIN_ROUND); - cairo_stroke(c); - } - cairo_destroy(c); - } - /*Out of the Cairo plane into the telemetry YUV buffer.*/ - _ycbcr[0].data=_dec->telemetry_frame_data; - _ycbcr[0].stride=_ycbcr[0].width; - _ycbcr[1].data=_ycbcr[0].data+h*_ycbcr[0].stride; - _ycbcr[1].stride=_ycbcr[1].width; - _ycbcr[2].data=_ycbcr[1].data+(h>>vdec)*_ycbcr[1].stride; - _ycbcr[2].stride=_ycbcr[2].width; - y_row=_ycbcr[0].data; - u_row=_ycbcr[1].data; - v_row=_ycbcr[2].data; - rgb_row=data; - /*This is one of the few places it's worth handling chroma on a - case-by-case basis.*/ - switch(_dec->state.info.pixel_fmt){ - case TH_PF_420:{ - for(y=0;y>1]=OC_CLAMP255(u); - v_row[x>>1]=OC_CLAMP255(v); - } - y_row+=_ycbcr[0].stride<<1; - u_row+=_ycbcr[1].stride; - v_row+=_ycbcr[2].stride; - rgb_row+=cstride<<1; - } - }break; - case TH_PF_422:{ - for(y=0;y>1]=OC_CLAMP255(u); - v_row[x>>1]=OC_CLAMP255(v); - } - y_row+=_ycbcr[0].stride; - u_row+=_ycbcr[1].stride; - v_row+=_ycbcr[2].stride; - rgb_row+=cstride; - } - }break; - /*case TH_PF_444:*/ - default:{ - for(y=0;y -#include -#include -#include "dequant.h" -#include "decint.h" - -int oc_quant_params_unpack(oc_pack_buf *_opb,th_quant_info *_qinfo){ - th_quant_base *base_mats; - long val; - int nbase_mats; - int sizes[64]; - int indices[64]; - int nbits; - int bmi; - int ci; - int qti; - int pli; - int qri; - int qi; - int i; - val=oc_pack_read(_opb,3); - nbits=(int)val; - for(qi=0;qi<64;qi++){ - val=oc_pack_read(_opb,nbits); - _qinfo->loop_filter_limits[qi]=(unsigned char)val; - } - val=oc_pack_read(_opb,4); - nbits=(int)val+1; - for(qi=0;qi<64;qi++){ - val=oc_pack_read(_opb,nbits); - _qinfo->ac_scale[qi]=(ogg_uint16_t)val; - } - val=oc_pack_read(_opb,4); - nbits=(int)val+1; - for(qi=0;qi<64;qi++){ - val=oc_pack_read(_opb,nbits); - _qinfo->dc_scale[qi]=(ogg_uint16_t)val; - } - val=oc_pack_read(_opb,9); - nbase_mats=(int)val+1; - base_mats=_ogg_malloc(nbase_mats*sizeof(base_mats[0])); - if(base_mats==NULL)return TH_EFAULT; - for(bmi=0;bmiqi_ranges[qti]+pli; - if(i>0){ - val=oc_pack_read1(_opb); - if(!val){ - int qtj; - int plj; - if(qti>0){ - val=oc_pack_read1(_opb); - if(val){ - qtj=qti-1; - plj=pli; - } - else{ - qtj=(i-1)/3; - plj=(i-1)%3; - } - } - else{ - qtj=(i-1)/3; - plj=(i-1)%3; - } - *qranges=*(_qinfo->qi_ranges[qtj]+plj); - continue; - } - } - val=oc_pack_read(_opb,nbits); - indices[0]=(int)val; - for(qi=qri=0;qi<63;){ - val=oc_pack_read(_opb,oc_ilog(62-qi)); - sizes[qri]=(int)val+1; - qi+=(int)val+1; - val=oc_pack_read(_opb,nbits); - indices[++qri]=(int)val; - } - /*Note: The caller is responsible for cleaning up any partially - constructed qinfo.*/ - if(qi>63){ - _ogg_free(base_mats); - return TH_EBADHEADER; - } - qranges->nranges=qri; - qranges->sizes=qrsizes=(int *)_ogg_malloc(qri*sizeof(qrsizes[0])); - if(qranges->sizes==NULL){ - /*Note: The caller is responsible for cleaning up any partially - constructed qinfo.*/ - _ogg_free(base_mats); - return TH_EFAULT; - } - memcpy(qrsizes,sizes,qri*sizeof(qrsizes[0])); - qrbms=(th_quant_base *)_ogg_malloc((qri+1)*sizeof(qrbms[0])); - if(qrbms==NULL){ - /*Note: The caller is responsible for cleaning up any partially - constructed qinfo.*/ - _ogg_free(base_mats); - return TH_EFAULT; - } - qranges->base_matrices=(const th_quant_base *)qrbms; - do{ - bmi=indices[qri]; - /*Note: The caller is responsible for cleaning up any partially - constructed qinfo.*/ - if(bmi>=nbase_mats){ - _ogg_free(base_mats); - return TH_EBADHEADER; - } - memcpy(qrbms[qri],base_mats[bmi],sizeof(qrbms[qri])); - } - while(qri-->0); - } - _ogg_free(base_mats); - return 0; -} - -void oc_quant_params_clear(th_quant_info *_qinfo){ - int i; - for(i=6;i-->0;){ - int qti; - int pli; - qti=i/3; - pli=i%3; - /*Clear any duplicate pointer references.*/ - if(i>0){ - int qtj; - int plj; - qtj=(i-1)/3; - plj=(i-1)%3; - if(_qinfo->qi_ranges[qti][pli].sizes== - _qinfo->qi_ranges[qtj][plj].sizes){ - _qinfo->qi_ranges[qti][pli].sizes=NULL; - } - if(_qinfo->qi_ranges[qti][pli].base_matrices== - _qinfo->qi_ranges[qtj][plj].base_matrices){ - _qinfo->qi_ranges[qti][pli].base_matrices=NULL; - } - } - if(qti>0){ - if(_qinfo->qi_ranges[1][pli].sizes== - _qinfo->qi_ranges[0][pli].sizes){ - _qinfo->qi_ranges[1][pli].sizes=NULL; - } - if(_qinfo->qi_ranges[1][pli].base_matrices== - _qinfo->qi_ranges[0][pli].base_matrices){ - _qinfo->qi_ranges[1][pli].base_matrices=NULL; - } - } - /*Now free all the non-duplicate storage.*/ - _ogg_free((void *)_qinfo->qi_ranges[qti][pli].sizes); - _ogg_free((void *)_qinfo->qi_ranges[qti][pli].base_matrices); - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/dequant.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/dequant.h deleted file mode 100644 index ef25838e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/dequant.h +++ /dev/null @@ -1,27 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: dequant.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#if !defined(_dequant_H) -# define _dequant_H (1) -# include "quant.h" -# include "bitpack.h" - -int oc_quant_params_unpack(oc_pack_buf *_opb, - th_quant_info *_qinfo); -void oc_quant_params_clear(th_quant_info *_qinfo); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/fragment.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/fragment.c deleted file mode 100644 index 15372e9d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/fragment.c +++ /dev/null @@ -1,87 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: fragment.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ -#include -#include "internal.h" - -void oc_frag_copy(const oc_theora_state *_state,unsigned char *_dst, - const unsigned char *_src,int _ystride){ - (*_state->opt_vtable.frag_copy)(_dst,_src,_ystride); -} - -void oc_frag_copy_c(unsigned char *_dst,const unsigned char *_src,int _ystride){ - int i; - for(i=8;i-->0;){ - memcpy(_dst,_src,8*sizeof(*_dst)); - _dst+=_ystride; - _src+=_ystride; - } -} - -void oc_frag_recon_intra(const oc_theora_state *_state,unsigned char *_dst, - int _ystride,const ogg_int16_t _residue[64]){ - _state->opt_vtable.frag_recon_intra(_dst,_ystride,_residue); -} - -void oc_frag_recon_intra_c(unsigned char *_dst,int _ystride, - const ogg_int16_t _residue[64]){ - int i; - for(i=0;i<8;i++){ - int j; - for(j=0;j<8;j++)_dst[j]=OC_CLAMP255(_residue[i*8+j]+128); - _dst+=_ystride; - } -} - -void oc_frag_recon_inter(const oc_theora_state *_state,unsigned char *_dst, - const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]){ - _state->opt_vtable.frag_recon_inter(_dst,_src,_ystride,_residue); -} - -void oc_frag_recon_inter_c(unsigned char *_dst, - const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]){ - int i; - for(i=0;i<8;i++){ - int j; - for(j=0;j<8;j++)_dst[j]=OC_CLAMP255(_residue[i*8+j]+_src[j]); - _dst+=_ystride; - _src+=_ystride; - } -} - -void oc_frag_recon_inter2(const oc_theora_state *_state,unsigned char *_dst, - const unsigned char *_src1,const unsigned char *_src2,int _ystride, - const ogg_int16_t _residue[64]){ - _state->opt_vtable.frag_recon_inter2(_dst,_src1,_src2,_ystride,_residue); -} - -void oc_frag_recon_inter2_c(unsigned char *_dst,const unsigned char *_src1, - const unsigned char *_src2,int _ystride,const ogg_int16_t _residue[64]){ - int i; - for(i=0;i<8;i++){ - int j; - for(j=0;j<8;j++)_dst[j]=OC_CLAMP255(_residue[i*8+j]+(_src1[j]+_src2[j]>>1)); - _dst+=_ystride; - _src1+=_ystride; - _src2+=_ystride; - } -} - -void oc_restore_fpu(const oc_theora_state *_state){ - _state->opt_vtable.restore_fpu(); -} - -void oc_restore_fpu_c(void){} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/huffdec.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/huffdec.c deleted file mode 100644 index 8cf27f03..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/huffdec.c +++ /dev/null @@ -1,489 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: huffdec.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#include -#include -#include "huffdec.h" -#include "decint.h" - - -/*The ANSI offsetof macro is broken on some platforms (e.g., older DECs).*/ -#define _ogg_offsetof(_type,_field)\ - ((size_t)((char *)&((_type *)0)->_field-(char *)0)) - -/*The number of internal tokens associated with each of the spec tokens.*/ -static const unsigned char OC_DCT_TOKEN_MAP_ENTRIES[TH_NDCT_TOKENS]={ - 1,1,1,4,8,1,1,8,1,1,1,1,1,2,2,2,2,4,8,2,2,2,4,2,2,2,2,2,8,2,4,8 -}; - -/*The map from external spec-defined tokens to internal tokens. - This is constructed so that any extra bits read with the original token value - can be masked off the least significant bits of its internal token index. - In addition, all of the tokens which require additional extra bits are placed - at the start of the list, and grouped by type. - OC_DCT_REPEAT_RUN3_TOKEN is placed first, as it is an extra-special case, so - giving it index 0 may simplify comparisons on some architectures. - These requirements require some substantial reordering.*/ -static const unsigned char OC_DCT_TOKEN_MAP[TH_NDCT_TOKENS]={ - /*OC_DCT_EOB1_TOKEN (0 extra bits)*/ - 15, - /*OC_DCT_EOB2_TOKEN (0 extra bits)*/ - 16, - /*OC_DCT_EOB3_TOKEN (0 extra bits)*/ - 17, - /*OC_DCT_REPEAT_RUN0_TOKEN (2 extra bits)*/ - 88, - /*OC_DCT_REPEAT_RUN1_TOKEN (3 extra bits)*/ - 80, - /*OC_DCT_REPEAT_RUN2_TOKEN (4 extra bits)*/ - 1, - /*OC_DCT_REPEAT_RUN3_TOKEN (12 extra bits)*/ - 0, - /*OC_DCT_SHORT_ZRL_TOKEN (3 extra bits)*/ - 48, - /*OC_DCT_ZRL_TOKEN (6 extra bits)*/ - 14, - /*OC_ONE_TOKEN (0 extra bits)*/ - 56, - /*OC_MINUS_ONE_TOKEN (0 extra bits)*/ - 57, - /*OC_TWO_TOKEN (0 extra bits)*/ - 58, - /*OC_MINUS_TWO_TOKEN (0 extra bits)*/ - 59, - /*OC_DCT_VAL_CAT2 (1 extra bit)*/ - 60, - 62, - 64, - 66, - /*OC_DCT_VAL_CAT3 (2 extra bits)*/ - 68, - /*OC_DCT_VAL_CAT4 (3 extra bits)*/ - 72, - /*OC_DCT_VAL_CAT5 (4 extra bits)*/ - 2, - /*OC_DCT_VAL_CAT6 (5 extra bits)*/ - 4, - /*OC_DCT_VAL_CAT7 (6 extra bits)*/ - 6, - /*OC_DCT_VAL_CAT8 (10 extra bits)*/ - 8, - /*OC_DCT_RUN_CAT1A (1 extra bit)*/ - 18, - 20, - 22, - 24, - 26, - /*OC_DCT_RUN_CAT1B (3 extra bits)*/ - 32, - /*OC_DCT_RUN_CAT1C (4 extra bits)*/ - 12, - /*OC_DCT_RUN_CAT2A (2 extra bits)*/ - 28, - /*OC_DCT_RUN_CAT2B (3 extra bits)*/ - 40 -}; - -/*These three functions are really part of the bitpack.c module, but - they are only used here. - Declaring local static versions so they can be inlined saves considerable - function call overhead.*/ - -static oc_pb_window oc_pack_refill(oc_pack_buf *_b,int _bits){ - const unsigned char *ptr; - const unsigned char *stop; - oc_pb_window window; - int available; - window=_b->window; - available=_b->bits; - ptr=_b->ptr; - stop=_b->stop; - /*This version of _refill() doesn't bother setting eof because we won't - check for it after we've started decoding DCT tokens.*/ - if(ptr>=stop)available=OC_LOTS_OF_BITS; - while(available<=OC_PB_WINDOW_SIZE-8){ - available+=8; - window|=(oc_pb_window)*ptr++<=stop)available=OC_LOTS_OF_BITS; - } - _b->ptr=ptr; - if(_bits>available)window|=*ptr>>(available&7); - _b->bits=available; - return window; -} - - -/*Read in bits without advancing the bit pointer. - Here we assume 0<=_bits&&_bits<=32.*/ -static long oc_pack_look(oc_pack_buf *_b,int _bits){ - oc_pb_window window; - int available; - long result; - window=_b->window; - available=_b->bits; - if(_bits==0)return 0; - if(_bits>available)_b->window=window=oc_pack_refill(_b,_bits); - result=window>>OC_PB_WINDOW_SIZE-_bits; - return result; -} - -/*Advance the bit pointer.*/ -static void oc_pack_adv(oc_pack_buf *_b,int _bits){ - /*We ignore the special cases for _bits==0 and _bits==32 here, since they are - never used actually used. - OC_HUFF_SLUSH (defined below) would have to be at least 27 to actually read - 32 bits in a single go, and would require a 32 GB lookup table (assuming - 8 byte pointers, since 4 byte pointers couldn't fit such a table).*/ - _b->window<<=_bits; - _b->bits-=_bits; -} - - -/*The log_2 of the size of a lookup table is allowed to grow to relative to - the number of unique nodes it contains. - E.g., if OC_HUFF_SLUSH is 2, then at most 75% of the space in the tree is - wasted (each node will have an amortized cost of at most 20 bytes when using - 4-byte pointers). - Larger numbers can decode tokens with fewer read operations, while smaller - numbers may save more space (requiring as little as 8 bytes amortized per - node, though there will be more nodes). - With a sample file: - 32233473 read calls are required when no tree collapsing is done (100.0%). - 19269269 read calls are required when OC_HUFF_SLUSH is 0 (59.8%). - 11144969 read calls are required when OC_HUFF_SLUSH is 1 (34.6%). - 10538563 read calls are required when OC_HUFF_SLUSH is 2 (32.7%). - 10192578 read calls are required when OC_HUFF_SLUSH is 3 (31.6%). - Since a value of 1 gets us the vast majority of the speed-up with only a - small amount of wasted memory, this is what we use.*/ -#define OC_HUFF_SLUSH (1) - - -/*Determines the size in bytes of a Huffman tree node that represents a - subtree of depth _nbits. - _nbits: The depth of the subtree. - If this is 0, the node is a leaf node. - Otherwise 1<<_nbits pointers are allocated for children. - Return: The number of bytes required to store the node.*/ -static size_t oc_huff_node_size(int _nbits){ - size_t size; - size=_ogg_offsetof(oc_huff_node,nodes); - if(_nbits>0)size+=sizeof(oc_huff_node *)*(1<<_nbits); - return size; -} - -static oc_huff_node *oc_huff_node_init(char **_storage,size_t _size,int _nbits){ - oc_huff_node *ret; - ret=(oc_huff_node *)*_storage; - ret->nbits=(unsigned char)_nbits; - (*_storage)+=_size; - return ret; -} - - -/*Determines the size in bytes of a Huffman tree. - _nbits: The depth of the subtree. - If this is 0, the node is a leaf node. - Otherwise storage for 1<<_nbits pointers are added for children. - Return: The number of bytes required to store the tree.*/ -static size_t oc_huff_tree_size(const oc_huff_node *_node){ - size_t size; - size=oc_huff_node_size(_node->nbits); - if(_node->nbits){ - int nchildren; - int i; - nchildren=1<<_node->nbits; - for(i=0;inbits-_node->nodes[i]->depth){ - size+=oc_huff_tree_size(_node->nodes[i]); - } - } - return size; -} - - -/*Unpacks a sub-tree from the given buffer. - _opb: The buffer to unpack from. - _binodes: The nodes to store the sub-tree in. - _nbinodes: The number of nodes available for the sub-tree. - Return: 0 on success, or a negative value on error.*/ -static int oc_huff_tree_unpack(oc_pack_buf *_opb, - oc_huff_node *_binodes,int _nbinodes){ - oc_huff_node *binode; - long bits; - int nused; - if(_nbinodes<1)return TH_EBADHEADER; - binode=_binodes; - nused=0; - bits=oc_pack_read1(_opb); - if(oc_pack_bytes_left(_opb)<0)return TH_EBADHEADER; - /*Read an internal node:*/ - if(!bits){ - int ret; - nused++; - binode->nbits=1; - binode->depth=1; - binode->nodes[0]=_binodes+nused; - ret=oc_huff_tree_unpack(_opb,_binodes+nused,_nbinodes-nused); - if(ret>=0){ - nused+=ret; - binode->nodes[1]=_binodes+nused; - ret=oc_huff_tree_unpack(_opb,_binodes+nused,_nbinodes-nused); - } - if(ret<0)return ret; - nused+=ret; - } - /*Read a leaf node:*/ - else{ - int ntokens; - int token; - int i; - bits=oc_pack_read(_opb,OC_NDCT_TOKEN_BITS); - if(oc_pack_bytes_left(_opb)<0)return TH_EBADHEADER; - /*Find out how many internal tokens we translate this external token into.*/ - ntokens=OC_DCT_TOKEN_MAP_ENTRIES[bits]; - if(_nbinodes<2*ntokens-1)return TH_EBADHEADER; - /*Fill in a complete binary tree pointing to the internal tokens.*/ - for(i=1;inbits=0; - binode->depth=1; - binode->token=token+i; - } - } - return nused; -} - -/*Finds the depth of shortest branch of the given sub-tree. - The tree must be binary. - _binode: The root of the given sub-tree. - _binode->nbits must be 0 or 1. - Return: The smallest depth of a leaf node in this sub-tree. - 0 indicates this sub-tree is a leaf node.*/ -static int oc_huff_tree_mindepth(oc_huff_node *_binode){ - int depth0; - int depth1; - if(_binode->nbits==0)return 0; - depth0=oc_huff_tree_mindepth(_binode->nodes[0]); - depth1=oc_huff_tree_mindepth(_binode->nodes[1]); - return OC_MINI(depth0,depth1)+1; -} - -/*Finds the number of internal nodes at a given depth, plus the number of - leaves at that depth or shallower. - The tree must be binary. - _binode: The root of the given sub-tree. - _binode->nbits must be 0 or 1. - Return: The number of entries that would be contained in a jump table of the - given depth.*/ -static int oc_huff_tree_occupancy(oc_huff_node *_binode,int _depth){ - if(_binode->nbits==0||_depth<=0)return 1; - else{ - return oc_huff_tree_occupancy(_binode->nodes[0],_depth-1)+ - oc_huff_tree_occupancy(_binode->nodes[1],_depth-1); - } -} - -/*Makes a copy of the given Huffman tree. - _node: The Huffman tree to copy. - Return: The copy of the Huffman tree.*/ -static oc_huff_node *oc_huff_tree_copy(const oc_huff_node *_node, - char **_storage){ - oc_huff_node *ret; - ret=oc_huff_node_init(_storage,oc_huff_node_size(_node->nbits),_node->nbits); - ret->depth=_node->depth; - if(_node->nbits){ - int nchildren; - int i; - int inext; - nchildren=1<<_node->nbits; - for(i=0;inodes[i]=oc_huff_tree_copy(_node->nodes[i],_storage); - inext=i+(1<<_node->nbits-ret->nodes[i]->depth); - while(++inodes[i]=ret->nodes[i-1]; - } - } - else ret->token=_node->token; - return ret; -} - -static size_t oc_huff_tree_collapse_size(oc_huff_node *_binode,int _depth){ - size_t size; - int mindepth; - int depth; - int loccupancy; - int occupancy; - if(_binode->nbits!=0&&_depth>0){ - return oc_huff_tree_collapse_size(_binode->nodes[0],_depth-1)+ - oc_huff_tree_collapse_size(_binode->nodes[1],_depth-1); - } - depth=mindepth=oc_huff_tree_mindepth(_binode); - occupancy=1<loccupancy&&occupancy>=1<0){ - size+=oc_huff_tree_collapse_size(_binode->nodes[0],depth-1); - size+=oc_huff_tree_collapse_size(_binode->nodes[1],depth-1); - } - return size; -} - -static oc_huff_node *oc_huff_tree_collapse(oc_huff_node *_binode, - char **_storage); - -/*Fills the given nodes table with all the children in the sub-tree at the - given depth. - The nodes in the sub-tree with a depth less than that stored in the table - are freed. - The sub-tree must be binary and complete up until the given depth. - _nodes: The nodes table to fill. - _binode: The root of the sub-tree to fill it with. - _binode->nbits must be 0 or 1. - _level: The current level in the table. - 0 indicates that the current node should be stored, regardless of - whether it is a leaf node or an internal node. - _depth: The depth of the nodes to fill the table with, relative to their - parent.*/ -static void oc_huff_node_fill(oc_huff_node **_nodes, - oc_huff_node *_binode,int _level,int _depth,char **_storage){ - if(_level<=0||_binode->nbits==0){ - int i; - _binode->depth=(unsigned char)(_depth-_level); - _nodes[0]=oc_huff_tree_collapse(_binode,_storage); - for(i=1;i<1<<_level;i++)_nodes[i]=_nodes[0]; - } - else{ - _level--; - oc_huff_node_fill(_nodes,_binode->nodes[0],_level,_depth,_storage); - _nodes+=1<<_level; - oc_huff_node_fill(_nodes,_binode->nodes[1],_level,_depth,_storage); - } -} - -/*Finds the largest complete sub-tree rooted at the current node and collapses - it into a single node. - This procedure is then applied recursively to all the children of that node. - _binode: The root of the sub-tree to collapse. - _binode->nbits must be 0 or 1. - Return: The new root of the collapsed sub-tree.*/ -static oc_huff_node *oc_huff_tree_collapse(oc_huff_node *_binode, - char **_storage){ - oc_huff_node *root; - size_t size; - int mindepth; - int depth; - int loccupancy; - int occupancy; - depth=mindepth=oc_huff_tree_mindepth(_binode); - occupancy=1<loccupancy&&occupancy>=1<depth=_binode->depth; - oc_huff_node_fill(root->nodes,_binode,depth,depth,_storage); - return root; -} - -/*Unpacks a set of Huffman trees, and reduces them to a collapsed - representation. - _opb: The buffer to unpack the trees from. - _nodes: The table to fill with the Huffman trees. - Return: 0 on success, or a negative value on error.*/ -int oc_huff_trees_unpack(oc_pack_buf *_opb, - oc_huff_node *_nodes[TH_NHUFFMAN_TABLES]){ - int i; - for(i=0;i0)_ogg_free(_dst[i]); - return TH_EFAULT; - } - _dst[i]=oc_huff_tree_copy(_src[i],&storage); - } - return 0; -} - -/*Frees the memory used by a set of Huffman trees. - _nodes: The array of trees to free.*/ -void oc_huff_trees_clear(oc_huff_node *_nodes[TH_NHUFFMAN_TABLES]){ - int i; - for(i=0;inbits!=0){ - bits=oc_pack_look(_opb,_node->nbits); - _node=_node->nodes[bits]; - oc_pack_adv(_opb,_node->depth); - } - return _node->token; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/huffdec.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/huffdec.h deleted file mode 100644 index d7ffa0e9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/huffdec.h +++ /dev/null @@ -1,92 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: huffdec.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#if !defined(_huffdec_H) -# define _huffdec_H (1) -# include "huffman.h" -# include "bitpack.h" - - - -typedef struct oc_huff_node oc_huff_node; - -/*A node in the Huffman tree. - Instead of storing every branching in the tree, subtrees can be collapsed - into one node, with a table of size 1< -#include "internal.h" -#include "dct.h" - -/*Performs an inverse 8 point Type-II DCT transform. - The output is scaled by a factor of 2 relative to the orthonormal version of - the transform. - _y: The buffer to store the result in. - Data will be placed in every 8th entry (e.g., in a column of an 8x8 - block). - _x: The input coefficients. - The first 8 entries are used (e.g., from a row of an 8x8 block).*/ -static void idct8(ogg_int16_t *_y,const ogg_int16_t _x[8]){ - ogg_int32_t t[8]; - ogg_int32_t r; - /*Stage 1:*/ - /*0-1 butterfly.*/ - t[0]=OC_C4S4*(ogg_int16_t)(_x[0]+_x[4])>>16; - t[1]=OC_C4S4*(ogg_int16_t)(_x[0]-_x[4])>>16; - /*2-3 rotation by 6pi/16.*/ - t[2]=(OC_C6S2*_x[2]>>16)-(OC_C2S6*_x[6]>>16); - t[3]=(OC_C2S6*_x[2]>>16)+(OC_C6S2*_x[6]>>16); - /*4-7 rotation by 7pi/16.*/ - t[4]=(OC_C7S1*_x[1]>>16)-(OC_C1S7*_x[7]>>16); - /*5-6 rotation by 3pi/16.*/ - t[5]=(OC_C3S5*_x[5]>>16)-(OC_C5S3*_x[3]>>16); - t[6]=(OC_C5S3*_x[5]>>16)+(OC_C3S5*_x[3]>>16); - t[7]=(OC_C1S7*_x[1]>>16)+(OC_C7S1*_x[7]>>16); - /*Stage 2:*/ - /*4-5 butterfly.*/ - r=t[4]+t[5]; - t[5]=OC_C4S4*(ogg_int16_t)(t[4]-t[5])>>16; - t[4]=r; - /*7-6 butterfly.*/ - r=t[7]+t[6]; - t[6]=OC_C4S4*(ogg_int16_t)(t[7]-t[6])>>16; - t[7]=r; - /*Stage 3:*/ - /*0-3 butterfly.*/ - r=t[0]+t[3]; - t[3]=t[0]-t[3]; - t[0]=r; - /*1-2 butterfly.*/ - r=t[1]+t[2]; - t[2]=t[1]-t[2]; - t[1]=r; - /*6-5 butterfly.*/ - r=t[6]+t[5]; - t[5]=t[6]-t[5]; - t[6]=r; - /*Stage 4:*/ - /*0-7 butterfly.*/ - _y[0<<3]=(ogg_int16_t)(t[0]+t[7]); - /*1-6 butterfly.*/ - _y[1<<3]=(ogg_int16_t)(t[1]+t[6]); - /*2-5 butterfly.*/ - _y[2<<3]=(ogg_int16_t)(t[2]+t[5]); - /*3-4 butterfly.*/ - _y[3<<3]=(ogg_int16_t)(t[3]+t[4]); - _y[4<<3]=(ogg_int16_t)(t[3]-t[4]); - _y[5<<3]=(ogg_int16_t)(t[2]-t[5]); - _y[6<<3]=(ogg_int16_t)(t[1]-t[6]); - _y[7<<3]=(ogg_int16_t)(t[0]-t[7]); -} - -/*Performs an inverse 8 point Type-II DCT transform. - The output is scaled by a factor of 2 relative to the orthonormal version of - the transform. - _y: The buffer to store the result in. - Data will be placed in every 8th entry (e.g., in a column of an 8x8 - block). - _x: The input coefficients. - Only the first 4 entries are used. - The other 4 are assumed to be 0.*/ -static void idct8_4(ogg_int16_t *_y,const ogg_int16_t _x[8]){ - ogg_int32_t t[8]; - ogg_int32_t r; - /*Stage 1:*/ - t[0]=OC_C4S4*_x[0]>>16; - t[2]=OC_C6S2*_x[2]>>16; - t[3]=OC_C2S6*_x[2]>>16; - t[4]=OC_C7S1*_x[1]>>16; - t[5]=-(OC_C5S3*_x[3]>>16); - t[6]=OC_C3S5*_x[3]>>16; - t[7]=OC_C1S7*_x[1]>>16; - /*Stage 2:*/ - r=t[4]+t[5]; - t[5]=OC_C4S4*(ogg_int16_t)(t[4]-t[5])>>16; - t[4]=r; - r=t[7]+t[6]; - t[6]=OC_C4S4*(ogg_int16_t)(t[7]-t[6])>>16; - t[7]=r; - /*Stage 3:*/ - t[1]=t[0]+t[2]; - t[2]=t[0]-t[2]; - r=t[0]+t[3]; - t[3]=t[0]-t[3]; - t[0]=r; - r=t[6]+t[5]; - t[5]=t[6]-t[5]; - t[6]=r; - /*Stage 4:*/ - _y[0<<3]=(ogg_int16_t)(t[0]+t[7]); - _y[1<<3]=(ogg_int16_t)(t[1]+t[6]); - _y[2<<3]=(ogg_int16_t)(t[2]+t[5]); - _y[3<<3]=(ogg_int16_t)(t[3]+t[4]); - _y[4<<3]=(ogg_int16_t)(t[3]-t[4]); - _y[5<<3]=(ogg_int16_t)(t[2]-t[5]); - _y[6<<3]=(ogg_int16_t)(t[1]-t[6]); - _y[7<<3]=(ogg_int16_t)(t[0]-t[7]); -} - -/*Performs an inverse 8 point Type-II DCT transform. - The output is scaled by a factor of 2 relative to the orthonormal version of - the transform. - _y: The buffer to store the result in. - Data will be placed in every 8th entry (e.g., in a column of an 8x8 - block). - _x: The input coefficients. - Only the first 3 entries are used. - The other 5 are assumed to be 0.*/ -static void idct8_3(ogg_int16_t *_y,const ogg_int16_t _x[8]){ - ogg_int32_t t[8]; - ogg_int32_t r; - /*Stage 1:*/ - t[0]=OC_C4S4*_x[0]>>16; - t[2]=OC_C6S2*_x[2]>>16; - t[3]=OC_C2S6*_x[2]>>16; - t[4]=OC_C7S1*_x[1]>>16; - t[7]=OC_C1S7*_x[1]>>16; - /*Stage 2:*/ - t[5]=OC_C4S4*t[4]>>16; - t[6]=OC_C4S4*t[7]>>16; - /*Stage 3:*/ - t[1]=t[0]+t[2]; - t[2]=t[0]-t[2]; - r=t[0]+t[3]; - t[3]=t[0]-t[3]; - t[0]=r; - r=t[6]+t[5]; - t[5]=t[6]-t[5]; - t[6]=r; - /*Stage 4:*/ - _y[0<<3]=(ogg_int16_t)(t[0]+t[7]); - _y[1<<3]=(ogg_int16_t)(t[1]+t[6]); - _y[2<<3]=(ogg_int16_t)(t[2]+t[5]); - _y[3<<3]=(ogg_int16_t)(t[3]+t[4]); - _y[4<<3]=(ogg_int16_t)(t[3]-t[4]); - _y[5<<3]=(ogg_int16_t)(t[2]-t[5]); - _y[6<<3]=(ogg_int16_t)(t[1]-t[6]); - _y[7<<3]=(ogg_int16_t)(t[0]-t[7]); -} - -/*Performs an inverse 8 point Type-II DCT transform. - The output is scaled by a factor of 2 relative to the orthonormal version of - the transform. - _y: The buffer to store the result in. - Data will be placed in every 8th entry (e.g., in a column of an 8x8 - block). - _x: The input coefficients. - Only the first 2 entries are used. - The other 6 are assumed to be 0.*/ -static void idct8_2(ogg_int16_t *_y,const ogg_int16_t _x[8]){ - ogg_int32_t t[8]; - ogg_int32_t r; - /*Stage 1:*/ - t[0]=OC_C4S4*_x[0]>>16; - t[4]=OC_C7S1*_x[1]>>16; - t[7]=OC_C1S7*_x[1]>>16; - /*Stage 2:*/ - t[5]=OC_C4S4*t[4]>>16; - t[6]=OC_C4S4*t[7]>>16; - /*Stage 3:*/ - r=t[6]+t[5]; - t[5]=t[6]-t[5]; - t[6]=r; - /*Stage 4:*/ - _y[0<<3]=(ogg_int16_t)(t[0]+t[7]); - _y[1<<3]=(ogg_int16_t)(t[0]+t[6]); - _y[2<<3]=(ogg_int16_t)(t[0]+t[5]); - _y[3<<3]=(ogg_int16_t)(t[0]+t[4]); - _y[4<<3]=(ogg_int16_t)(t[0]-t[4]); - _y[5<<3]=(ogg_int16_t)(t[0]-t[5]); - _y[6<<3]=(ogg_int16_t)(t[0]-t[6]); - _y[7<<3]=(ogg_int16_t)(t[0]-t[7]); -} - -/*Performs an inverse 8 point Type-II DCT transform. - The output is scaled by a factor of 2 relative to the orthonormal version of - the transform. - _y: The buffer to store the result in. - Data will be placed in every 8th entry (e.g., in a column of an 8x8 - block). - _x: The input coefficients. - Only the first entry is used. - The other 7 are assumed to be 0.*/ -static void idct8_1(ogg_int16_t *_y,const ogg_int16_t _x[1]){ - _y[0<<3]=_y[1<<3]=_y[2<<3]=_y[3<<3]= - _y[4<<3]=_y[5<<3]=_y[6<<3]=_y[7<<3]=(ogg_int16_t)(OC_C4S4*_x[0]>>16); -} - -/*Performs an inverse 8x8 Type-II DCT transform. - The input is assumed to be scaled by a factor of 4 relative to orthonormal - version of the transform. - All coefficients but the first 3 in zig-zag scan order are assumed to be 0: - x x 0 0 0 0 0 0 - x 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - _y: The buffer to store the result in. - This may be the same as _x. - _x: The input coefficients.*/ -static void oc_idct8x8_3(ogg_int16_t _y[64],const ogg_int16_t _x[64]){ - const ogg_int16_t *in; - ogg_int16_t *end; - ogg_int16_t *out; - ogg_int16_t w[64]; - /*Transform rows of x into columns of w.*/ - idct8_2(w,_x); - idct8_1(w+1,_x+8); - /*Transform rows of w into columns of y.*/ - for(in=w,out=_y,end=out+8;out>4); -} - -/*Performs an inverse 8x8 Type-II DCT transform. - The input is assumed to be scaled by a factor of 4 relative to orthonormal - version of the transform. - All coefficients but the first 10 in zig-zag scan order are assumed to be 0: - x x x x 0 0 0 0 - x x x 0 0 0 0 0 - x x 0 0 0 0 0 0 - x 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 - _y: The buffer to store the result in. - This may be the same as _x. - _x: The input coefficients.*/ -static void oc_idct8x8_10(ogg_int16_t _y[64],const ogg_int16_t _x[64]){ - const ogg_int16_t *in; - ogg_int16_t *end; - ogg_int16_t *out; - ogg_int16_t w[64]; - /*Transform rows of x into columns of w.*/ - idct8_4(w,_x); - idct8_3(w+1,_x+8); - idct8_2(w+2,_x+16); - idct8_1(w+3,_x+24); - /*Transform rows of w into columns of y.*/ - for(in=w,out=_y,end=out+8;out>4); -} - -/*Performs an inverse 8x8 Type-II DCT transform. - The input is assumed to be scaled by a factor of 4 relative to orthonormal - version of the transform. - _y: The buffer to store the result in. - This may be the same as _x. - _x: The input coefficients.*/ -static void oc_idct8x8_slow(ogg_int16_t _y[64],const ogg_int16_t _x[64]){ - const ogg_int16_t *in; - ogg_int16_t *end; - ogg_int16_t *out; - ogg_int16_t w[64]; - /*Transform rows of x into columns of w.*/ - for(in=_x,out=w,end=out+8;out>4); -} - -void oc_idct8x8(const oc_theora_state *_state,ogg_int16_t _y[64], - int _last_zzi){ - (*_state->opt_vtable.idct8x8)(_y,_last_zzi); -} - -/*Performs an inverse 8x8 Type-II DCT transform. - The input is assumed to be scaled by a factor of 4 relative to orthonormal - version of the transform.*/ -void oc_idct8x8_c(ogg_int16_t _y[64],int _last_zzi){ - /*_last_zzi is subtly different from an actual count of the number of - coefficients we decoded for this block. - It contains the value of zzi BEFORE the final token in the block was - decoded. - In most cases this is an EOB token (the continuation of an EOB run from a - previous block counts), and so this is the same as the coefficient count. - However, in the case that the last token was NOT an EOB token, but filled - the block up with exactly 64 coefficients, _last_zzi will be less than 64. - Provided the last token was not a pure zero run, the minimum value it can - be is 46, and so that doesn't affect any of the cases in this routine. - However, if the last token WAS a pure zero run of length 63, then _last_zzi - will be 1 while the number of coefficients decoded is 64. - Thus, we will trigger the following special case, where the real - coefficient count would not. - Note also that a zero run of length 64 will give _last_zzi a value of 0, - but we still process the DC coefficient, which might have a non-zero value - due to DC prediction. - Although convoluted, this is arguably the correct behavior: it allows us to - use a smaller transform when the block ends with a long zero run instead - of a normal EOB token. - It could be smarter... multiple separate zero runs at the end of a block - will fool it, but an encoder that generates these really deserves what it - gets. - Needless to say we inherited this approach from VP3.*/ - /*Then perform the iDCT.*/ - if(_last_zzi<3)oc_idct8x8_3(_y,_y); - else if(_last_zzi<10)oc_idct8x8_10(_y,_y); - else oc_idct8x8_slow(_y,_y); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/internal.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/internal.c deleted file mode 100644 index 0fe4f63e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/internal.c +++ /dev/null @@ -1,262 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: internal.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#include -#include -#include "internal.h" - - - -/*A map from the index in the zig zag scan to the coefficient number in a - block. - All zig zag indices beyond 63 are sent to coefficient 64, so that zero runs - past the end of a block in bogus streams get mapped to a known location.*/ -const unsigned char OC_FZIG_ZAG[128]={ - 0, 1, 8,16, 9, 2, 3,10, - 17,24,32,25,18,11, 4, 5, - 12,19,26,33,40,48,41,34, - 27,20,13, 6, 7,14,21,28, - 35,42,49,56,57,50,43,36, - 29,22,15,23,30,37,44,51, - 58,59,52,45,38,31,39,46, - 53,60,61,54,47,55,62,63, - 64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64, - 64,64,64,64,64,64,64,64 -}; - -/*A map from the coefficient number in a block to its index in the zig zag - scan.*/ -const unsigned char OC_IZIG_ZAG[64]={ - 0, 1, 5, 6,14,15,27,28, - 2, 4, 7,13,16,26,29,42, - 3, 8,12,17,25,30,41,43, - 9,11,18,24,31,40,44,53, - 10,19,23,32,39,45,52,54, - 20,22,33,38,46,51,55,60, - 21,34,37,47,50,56,59,61, - 35,36,48,49,57,58,62,63 -}; - -/*A map from physical macro block ordering to bitstream macro block - ordering within a super block.*/ -const unsigned char OC_MB_MAP[2][2]={{0,3},{1,2}}; - -/*A list of the indices in the oc_mb.map array that can be valid for each of - the various chroma decimation types.*/ -const unsigned char OC_MB_MAP_IDXS[TH_PF_NFORMATS][12]={ - {0,1,2,3,4,8}, - {0,1,2,3,4,5,8,9}, - {0,1,2,3,4,6,8,10}, - {0,1,2,3,4,5,6,7,8,9,10,11} -}; - -/*The number of indices in the oc_mb.map array that can be valid for each of - the various chroma decimation types.*/ -const unsigned char OC_MB_MAP_NIDXS[TH_PF_NFORMATS]={6,8,8,12}; - -/*The number of extra bits that are coded with each of the DCT tokens. - Each DCT token has some fixed number of additional bits (possibly 0) stored - after the token itself, containing, for example, coefficient magnitude, - sign bits, etc.*/ -const unsigned char OC_DCT_TOKEN_EXTRA_BITS[TH_NDCT_TOKENS]={ - 0,0,0,2,3,4,12,3,6, - 0,0,0,0, - 1,1,1,1,2,3,4,5,6,10, - 1,1,1,1,1,3,4, - 2,3 -}; - - - -int oc_ilog(unsigned _v){ - int ret; - for(ret=0;_v;ret++)_v>>=1; - return ret; -} - - - -/*The function used to fill in the chroma plane motion vectors for a macro - block when 4 different motion vectors are specified in the luma plane. - This version is for use with chroma decimated in the X and Y directions - (4:2:0). - _cbmvs: The chroma block-level motion vectors to fill in. - _lbmvs: The luma block-level motion vectors.*/ -static void oc_set_chroma_mvs00(oc_mv _cbmvs[4],const oc_mv _lbmvs[4]){ - int dx; - int dy; - dx=_lbmvs[0][0]+_lbmvs[1][0]+_lbmvs[2][0]+_lbmvs[3][0]; - dy=_lbmvs[0][1]+_lbmvs[1][1]+_lbmvs[2][1]+_lbmvs[3][1]; - _cbmvs[0][0]=(signed char)OC_DIV_ROUND_POW2(dx,2,2); - _cbmvs[0][1]=(signed char)OC_DIV_ROUND_POW2(dy,2,2); -} - -/*The function used to fill in the chroma plane motion vectors for a macro - block when 4 different motion vectors are specified in the luma plane. - This version is for use with chroma decimated in the Y direction. - _cbmvs: The chroma block-level motion vectors to fill in. - _lbmvs: The luma block-level motion vectors.*/ -static void oc_set_chroma_mvs01(oc_mv _cbmvs[4],const oc_mv _lbmvs[4]){ - int dx; - int dy; - dx=_lbmvs[0][0]+_lbmvs[2][0]; - dy=_lbmvs[0][1]+_lbmvs[2][1]; - _cbmvs[0][0]=(signed char)OC_DIV_ROUND_POW2(dx,1,1); - _cbmvs[0][1]=(signed char)OC_DIV_ROUND_POW2(dy,1,1); - dx=_lbmvs[1][0]+_lbmvs[3][0]; - dy=_lbmvs[1][1]+_lbmvs[3][1]; - _cbmvs[1][0]=(signed char)OC_DIV_ROUND_POW2(dx,1,1); - _cbmvs[1][1]=(signed char)OC_DIV_ROUND_POW2(dy,1,1); -} - -/*The function used to fill in the chroma plane motion vectors for a macro - block when 4 different motion vectors are specified in the luma plane. - This version is for use with chroma decimated in the X direction (4:2:2). - _cbmvs: The chroma block-level motion vectors to fill in. - _lbmvs: The luma block-level motion vectors.*/ -static void oc_set_chroma_mvs10(oc_mv _cbmvs[4],const oc_mv _lbmvs[4]){ - int dx; - int dy; - dx=_lbmvs[0][0]+_lbmvs[1][0]; - dy=_lbmvs[0][1]+_lbmvs[1][1]; - _cbmvs[0][0]=(signed char)OC_DIV_ROUND_POW2(dx,1,1); - _cbmvs[0][1]=(signed char)OC_DIV_ROUND_POW2(dy,1,1); - dx=_lbmvs[2][0]+_lbmvs[3][0]; - dy=_lbmvs[2][1]+_lbmvs[3][1]; - _cbmvs[2][0]=(signed char)OC_DIV_ROUND_POW2(dx,1,1); - _cbmvs[2][1]=(signed char)OC_DIV_ROUND_POW2(dy,1,1); -} - -/*The function used to fill in the chroma plane motion vectors for a macro - block when 4 different motion vectors are specified in the luma plane. - This version is for use with no chroma decimation (4:4:4). - _cbmvs: The chroma block-level motion vectors to fill in. - _lmbmv: The luma macro-block level motion vector to fill in for use in - prediction. - _lbmvs: The luma block-level motion vectors.*/ -static void oc_set_chroma_mvs11(oc_mv _cbmvs[4],const oc_mv _lbmvs[4]){ - memcpy(_cbmvs,_lbmvs,4*sizeof(_lbmvs[0])); -} - -/*A table of functions used to fill in the chroma plane motion vectors for a - macro block when 4 different motion vectors are specified in the luma - plane.*/ -const oc_set_chroma_mvs_func OC_SET_CHROMA_MVS_TABLE[TH_PF_NFORMATS]={ - (oc_set_chroma_mvs_func)oc_set_chroma_mvs00, - (oc_set_chroma_mvs_func)oc_set_chroma_mvs01, - (oc_set_chroma_mvs_func)oc_set_chroma_mvs10, - (oc_set_chroma_mvs_func)oc_set_chroma_mvs11 -}; - - - -void **oc_malloc_2d(size_t _height,size_t _width,size_t _sz){ - size_t rowsz; - size_t colsz; - size_t datsz; - char *ret; - colsz=_height*sizeof(void *); - rowsz=_sz*_width; - datsz=rowsz*_height; - /*Alloc array and row pointers.*/ - ret=(char *)_ogg_malloc(datsz+colsz); - if(ret==NULL)return NULL; - /*Initialize the array.*/ - if(ret!=NULL){ - size_t i; - void **p; - char *datptr; - p=(void **)ret; - i=_height; - for(datptr=ret+colsz;i-->0;p++,datptr+=rowsz)*p=(void *)datptr; - } - return (void **)ret; -} - -void **oc_calloc_2d(size_t _height,size_t _width,size_t _sz){ - size_t colsz; - size_t rowsz; - size_t datsz; - char *ret; - colsz=_height*sizeof(void *); - rowsz=_sz*_width; - datsz=rowsz*_height; - /*Alloc array and row pointers.*/ - ret=(char *)_ogg_calloc(datsz+colsz,1); - if(ret==NULL)return NULL; - /*Initialize the array.*/ - if(ret!=NULL){ - size_t i; - void **p; - char *datptr; - p=(void **)ret; - i=_height; - for(datptr=ret+colsz;i-->0;p++,datptr+=rowsz)*p=(void *)datptr; - } - return (void **)ret; -} - -void oc_free_2d(void *_ptr){ - _ogg_free(_ptr); -} - -/*Fills in a Y'CbCr buffer with a pointer to the image data in the first - buffer, but with the opposite vertical orientation. - _dst: The destination buffer. - This can be the same as _src. - _src: The source buffer.*/ -void oc_ycbcr_buffer_flip(th_ycbcr_buffer _dst, - const th_ycbcr_buffer _src){ - int pli; - for(pli=0;pli<3;pli++){ - _dst[pli].width=_src[pli].width; - _dst[pli].height=_src[pli].height; - _dst[pli].stride=-_src[pli].stride; - _dst[pli].data=_src[pli].data - +(1-_dst[pli].height)*(ptrdiff_t)_dst[pli].stride; - } -} - -const char *th_version_string(void){ - return OC_VENDOR_STRING; -} - -ogg_uint32_t th_version_number(void){ - return (TH_VERSION_MAJOR<<16)+(TH_VERSION_MINOR<<8)+TH_VERSION_SUB; -} - -/*Determines the packet type. - Note that this correctly interprets a 0-byte packet as a video data packet. - Return: 1 for a header packet, 0 for a data packet.*/ -int th_packet_isheader(ogg_packet *_op){ - return _op->bytes>0?_op->packet[0]>>7:0; -} - -/*Determines the frame type of a video data packet. - Note that this correctly interprets a 0-byte packet as a delta frame. - Return: 1 for a key frame, 0 for a delta frame, and -1 for a header - packet.*/ -int th_packet_iskeyframe(ogg_packet *_op){ - return _op->bytes<=0?0:_op->packet[0]&0x80?-1:!(_op->packet[0]&0x40); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/internal.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/internal.h deleted file mode 100644 index d81263e1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/internal.h +++ /dev/null @@ -1,509 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: internal.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ -#if !defined(_internal_H) -# define _internal_H (1) -# include -# include -# if defined(HAVE_CONFIG_H) -# include -# endif -# include "theora/codec.h" -# include "theora/theora.h" - -# if defined(_MSC_VER) -/*Disable missing EMMS warnings.*/ -# pragma warning(disable:4799) -/*Thank you Microsoft, I know the order of operations.*/ -# pragma warning(disable:4554) -# endif -/*You, too, gcc.*/ -# if defined(__GNUC_PREREQ) -# if __GNUC_PREREQ(4,2) -# pragma GCC diagnostic ignored "-Wparentheses" -# endif -# endif - -# include "ocintrin.h" -# include "huffman.h" -# include "quant.h" - -/*Some assembly constructs require aligned operands.*/ -# if defined(OC_X86_ASM) -# if defined(__GNUC__) -# define OC_ALIGN8(expr) expr __attribute__((aligned(8))) -# define OC_ALIGN16(expr) expr __attribute__((aligned(16))) -# elif defined(_MSC_VER) -# define OC_ALIGN8(expr) __declspec (align(8)) expr -# define OC_ALIGN16(expr) __declspec (align(16)) expr -# endif -# endif -# if !defined(OC_ALIGN8) -# define OC_ALIGN8(expr) expr -# endif -# if !defined(OC_ALIGN16) -# define OC_ALIGN16(expr) expr -# endif - - - -typedef struct oc_sb_flags oc_sb_flags; -typedef struct oc_border_info oc_border_info; -typedef struct oc_fragment oc_fragment; -typedef struct oc_fragment_plane oc_fragment_plane; -typedef struct oc_base_opt_vtable oc_base_opt_vtable; -typedef struct oc_base_opt_data oc_base_opt_data; -typedef struct oc_state_dispatch_vtable oc_state_dispatch_vtable; -typedef struct oc_theora_state oc_theora_state; - - - -/*This library's version.*/ -# define OC_VENDOR_STRING "Xiph.Org libtheora 1.1 20090822 (Thusnelda)" - -/*Theora bitstream version.*/ -# define TH_VERSION_MAJOR (3) -# define TH_VERSION_MINOR (2) -# define TH_VERSION_SUB (1) -# define TH_VERSION_CHECK(_info,_maj,_min,_sub) \ - ((_info)->version_major>(_maj)||(_info)->version_major==(_maj)&& \ - ((_info)->version_minor>(_min)||(_info)->version_minor==(_min)&& \ - (_info)->version_subminor>=(_sub))) - -/*A keyframe.*/ -#define OC_INTRA_FRAME (0) -/*A predicted frame.*/ -#define OC_INTER_FRAME (1) -/*A frame of unknown type (frame type decision has not yet been made).*/ -#define OC_UNKWN_FRAME (-1) - -/*The amount of padding to add to the reconstructed frame buffers on all - sides. - This is used to allow unrestricted motion vectors without special casing. - This must be a multiple of 2.*/ -#define OC_UMV_PADDING (16) - -/*Frame classification indices.*/ -/*The previous golden frame.*/ -#define OC_FRAME_GOLD (0) -/*The previous frame.*/ -#define OC_FRAME_PREV (1) -/*The current frame.*/ -#define OC_FRAME_SELF (2) - -/*The input or output buffer.*/ -#define OC_FRAME_IO (3) - -/*Macroblock modes.*/ -/*Macro block is invalid: It is never coded.*/ -#define OC_MODE_INVALID (-1) -/*Encoded difference from the same macro block in the previous frame.*/ -#define OC_MODE_INTER_NOMV (0) -/*Encoded with no motion compensated prediction.*/ -#define OC_MODE_INTRA (1) -/*Encoded difference from the previous frame offset by the given motion - vector.*/ -#define OC_MODE_INTER_MV (2) -/*Encoded difference from the previous frame offset by the last coded motion - vector.*/ -#define OC_MODE_INTER_MV_LAST (3) -/*Encoded difference from the previous frame offset by the second to last - coded motion vector.*/ -#define OC_MODE_INTER_MV_LAST2 (4) -/*Encoded difference from the same macro block in the previous golden - frame.*/ -#define OC_MODE_GOLDEN_NOMV (5) -/*Encoded difference from the previous golden frame offset by the given motion - vector.*/ -#define OC_MODE_GOLDEN_MV (6) -/*Encoded difference from the previous frame offset by the individual motion - vectors given for each block.*/ -#define OC_MODE_INTER_MV_FOUR (7) -/*The number of (coded) modes.*/ -#define OC_NMODES (8) - -/*Determines the reference frame used for a given MB mode.*/ -#define OC_FRAME_FOR_MODE(_x) \ - OC_UNIBBLE_TABLE32(OC_FRAME_PREV,OC_FRAME_SELF,OC_FRAME_PREV,OC_FRAME_PREV, \ - OC_FRAME_PREV,OC_FRAME_GOLD,OC_FRAME_GOLD,OC_FRAME_PREV,(_x)) - -/*Constants for the packet state machine common between encoder and decoder.*/ - -/*Next packet to emit/read: Codec info header.*/ -#define OC_PACKET_INFO_HDR (-3) -/*Next packet to emit/read: Comment header.*/ -#define OC_PACKET_COMMENT_HDR (-2) -/*Next packet to emit/read: Codec setup header.*/ -#define OC_PACKET_SETUP_HDR (-1) -/*No more packets to emit/read.*/ -#define OC_PACKET_DONE (INT_MAX) - - - -/*Super blocks are 32x32 segments of pixels in a single color plane indexed - in image order. - Internally, super blocks are broken up into four quadrants, each of which - contains a 2x2 pattern of blocks, each of which is an 8x8 block of pixels. - Quadrants, and the blocks within them, are indexed in a special order called - a "Hilbert curve" within the super block. - - In order to differentiate between the Hilbert-curve indexing strategy and - the regular image order indexing strategy, blocks indexed in image order - are called "fragments". - Fragments are indexed in image order, left to right, then bottom to top, - from Y' plane to Cb plane to Cr plane. - - The co-located fragments in all image planes corresponding to the location - of a single quadrant of a luma plane super block form a macro block. - Thus there is only a single set of macro blocks for all planes, each of which - contains between 6 and 12 fragments, depending on the pixel format. - Therefore macro block information is kept in a separate set of arrays from - super blocks to avoid unused space in the other planes. - The lists are indexed in super block order. - That is, the macro block corresponding to the macro block mbi in (luma plane) - super block sbi is at index (sbi<<2|mbi). - Thus the number of macro blocks in each dimension is always twice the number - of super blocks, even when only an odd number fall inside the coded frame. - These "extra" macro blocks are just an artifact of our internal data layout, - and not part of the coded stream; they are flagged with a negative MB mode.*/ - - - -/*A single quadrant of the map from a super block to fragment numbers.*/ -typedef ptrdiff_t oc_sb_map_quad[4]; -/*A map from a super block to fragment numbers.*/ -typedef oc_sb_map_quad oc_sb_map[4]; -/*A single plane of the map from a macro block to fragment numbers.*/ -typedef ptrdiff_t oc_mb_map_plane[4]; -/*A map from a macro block to fragment numbers.*/ -typedef oc_mb_map_plane oc_mb_map[3]; -/*A motion vector.*/ -typedef signed char oc_mv[2]; - - - -/*Super block information.*/ -struct oc_sb_flags{ - unsigned char coded_fully:1; - unsigned char coded_partially:1; - unsigned char quad_valid:4; -}; - - - -/*Information about a fragment which intersects the border of the displayable - region. - This marks which pixels belong to the displayable region.*/ -struct oc_border_info{ - /*A bit mask marking which pixels are in the displayable region. - Pixel (x,y) corresponds to bit (y<<3|x).*/ - ogg_int64_t mask; - /*The number of pixels in the displayable region. - This is always positive, and always less than 64.*/ - int npixels; -}; - - - -/*Fragment information.*/ -struct oc_fragment{ - /*A flag indicating whether or not this fragment is coded.*/ - unsigned coded:1; - /*A flag indicating that this entire fragment lies outside the displayable - region of the frame. - Note the contrast with an invalid macro block, which is outside the coded - frame, not just the displayable one. - There are no fragments outside the coded frame by construction.*/ - unsigned invalid:1; - /*The index of the quality index used for this fragment's AC coefficients.*/ - unsigned qii:6; - /*The mode of the macroblock this fragment belongs to.*/ - unsigned mb_mode:3; - /*The index of the associated border information for fragments which lie - partially outside the displayable region. - For fragments completely inside or outside this region, this is -1. - Note that the C standard requires an explicit signed keyword for bitfield - types, since some compilers may treat them as unsigned without it.*/ - signed int borderi:5; - /*The prediction-corrected DC component. - Note that the C standard requires an explicit signed keyword for bitfield - types, since some compilers may treat them as unsigned without it.*/ - signed int dc:16; -}; - - - -/*A description of each fragment plane.*/ -struct oc_fragment_plane{ - /*The number of fragments in the horizontal direction.*/ - int nhfrags; - /*The number of fragments in the vertical direction.*/ - int nvfrags; - /*The offset of the first fragment in the plane.*/ - ptrdiff_t froffset; - /*The total number of fragments in the plane.*/ - ptrdiff_t nfrags; - /*The number of super blocks in the horizontal direction.*/ - unsigned nhsbs; - /*The number of super blocks in the vertical direction.*/ - unsigned nvsbs; - /*The offset of the first super block in the plane.*/ - unsigned sboffset; - /*The total number of super blocks in the plane.*/ - unsigned nsbs; -}; - - - -/*The shared (encoder and decoder) functions that have accelerated variants.*/ -struct oc_base_opt_vtable{ - void (*frag_copy)(unsigned char *_dst, - const unsigned char *_src,int _ystride); - void (*frag_recon_intra)(unsigned char *_dst,int _ystride, - const ogg_int16_t _residue[64]); - void (*frag_recon_inter)(unsigned char *_dst, - const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]); - void (*frag_recon_inter2)(unsigned char *_dst,const unsigned char *_src1, - const unsigned char *_src2,int _ystride,const ogg_int16_t _residue[64]); - void (*idct8x8)(ogg_int16_t _y[64],int _last_zzi); - void (*state_frag_recon)(const oc_theora_state *_state,ptrdiff_t _fragi, - int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant); - void (*state_frag_copy_list)(const oc_theora_state *_state, - const ptrdiff_t *_fragis,ptrdiff_t _nfragis, - int _dst_frame,int _src_frame,int _pli); - void (*state_loop_filter_frag_rows)(const oc_theora_state *_state, - int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end); - void (*restore_fpu)(void); -}; - -/*The shared (encoder and decoder) tables that vary according to which variants - of the above functions are used.*/ -struct oc_base_opt_data{ - const unsigned char *dct_fzig_zag; -}; - - -/*State information common to both the encoder and decoder.*/ -struct oc_theora_state{ - /*The stream information.*/ - th_info info; - /*Table for shared accelerated functions.*/ - oc_base_opt_vtable opt_vtable; - /*Table for shared data used by accelerated functions.*/ - oc_base_opt_data opt_data; - /*CPU flags to detect the presence of extended instruction sets.*/ - ogg_uint32_t cpu_flags; - /*The fragment plane descriptions.*/ - oc_fragment_plane fplanes[3]; - /*The list of fragments, indexed in image order.*/ - oc_fragment *frags; - /*The the offset into the reference frame buffer to the upper-left pixel of - each fragment.*/ - ptrdiff_t *frag_buf_offs; - /*The motion vector for each fragment.*/ - oc_mv *frag_mvs; - /*The total number of fragments in a single frame.*/ - ptrdiff_t nfrags; - /*The list of super block maps, indexed in image order.*/ - oc_sb_map *sb_maps; - /*The list of super block flags, indexed in image order.*/ - oc_sb_flags *sb_flags; - /*The total number of super blocks in a single frame.*/ - unsigned nsbs; - /*The fragments from each color plane that belong to each macro block. - Fragments are stored in image order (left to right then top to bottom). - When chroma components are decimated, the extra fragments have an index of - -1.*/ - oc_mb_map *mb_maps; - /*The list of macro block modes. - A negative number indicates the macro block lies entirely outside the - coded frame.*/ - signed char *mb_modes; - /*The number of macro blocks in the X direction.*/ - unsigned nhmbs; - /*The number of macro blocks in the Y direction.*/ - unsigned nvmbs; - /*The total number of macro blocks.*/ - size_t nmbs; - /*The list of coded fragments, in coded order. - Uncoded fragments are stored in reverse order from the end of the list.*/ - ptrdiff_t *coded_fragis; - /*The number of coded fragments in each plane.*/ - ptrdiff_t ncoded_fragis[3]; - /*The total number of coded fragments.*/ - ptrdiff_t ntotal_coded_fragis; - /*The index of the buffers being used for each OC_FRAME_* reference frame.*/ - int ref_frame_idx[4]; - /*The actual buffers used for the previously decoded frames.*/ - th_ycbcr_buffer ref_frame_bufs[4]; - /*The storage for the reference frame buffers.*/ - unsigned char *ref_frame_data[4]; - /*The strides for each plane in the reference frames.*/ - int ref_ystride[3]; - /*The number of unique border patterns.*/ - int nborders; - /*The unique border patterns for all border fragments. - The borderi field of fragments which straddle the border indexes this - list.*/ - oc_border_info borders[16]; - /*The frame number of the last keyframe.*/ - ogg_int64_t keyframe_num; - /*The frame number of the current frame.*/ - ogg_int64_t curframe_num; - /*The granpos of the current frame.*/ - ogg_int64_t granpos; - /*The type of the current frame.*/ - unsigned char frame_type; - /*The bias to add to the frame count when computing granule positions.*/ - unsigned char granpos_bias; - /*The number of quality indices used in the current frame.*/ - unsigned char nqis; - /*The quality indices of the current frame.*/ - unsigned char qis[3]; - /*The dequantization tables, stored in zig-zag order, and indexed by - qi, pli, qti, and zzi.*/ - ogg_uint16_t *dequant_tables[64][3][2]; - OC_ALIGN16(oc_quant_table dequant_table_data[64][3][2]); - /*Loop filter strength parameters.*/ - unsigned char loop_filter_limits[64]; -}; - - - -/*The function type used to fill in the chroma plane motion vectors for a - macro block when 4 different motion vectors are specified in the luma - plane. - _cbmvs: The chroma block-level motion vectors to fill in. - _lmbmv: The luma macro-block level motion vector to fill in for use in - prediction. - _lbmvs: The luma block-level motion vectors.*/ -typedef void (*oc_set_chroma_mvs_func)(oc_mv _cbmvs[4],const oc_mv _lbmvs[4]); - - - -/*A map from the index in the zig zag scan to the coefficient number in a - block.*/ -extern const unsigned char OC_FZIG_ZAG[128]; -/*A map from the coefficient number in a block to its index in the zig zag - scan.*/ -extern const unsigned char OC_IZIG_ZAG[64]; -/*A map from physical macro block ordering to bitstream macro block - ordering within a super block.*/ -extern const unsigned char OC_MB_MAP[2][2]; -/*A list of the indices in the oc_mb_map array that can be valid for each of - the various chroma decimation types.*/ -extern const unsigned char OC_MB_MAP_IDXS[TH_PF_NFORMATS][12]; -/*The number of indices in the oc_mb_map array that can be valid for each of - the various chroma decimation types.*/ -extern const unsigned char OC_MB_MAP_NIDXS[TH_PF_NFORMATS]; -/*A table of functions used to fill in the Cb,Cr plane motion vectors for a - macro block when 4 different motion vectors are specified in the luma - plane.*/ -extern const oc_set_chroma_mvs_func OC_SET_CHROMA_MVS_TABLE[TH_PF_NFORMATS]; - - - -int oc_ilog(unsigned _v); -void **oc_malloc_2d(size_t _height,size_t _width,size_t _sz); -void **oc_calloc_2d(size_t _height,size_t _width,size_t _sz); -void oc_free_2d(void *_ptr); - -void oc_ycbcr_buffer_flip(th_ycbcr_buffer _dst, - const th_ycbcr_buffer _src); - -int oc_state_init(oc_theora_state *_state,const th_info *_info,int _nrefs); -void oc_state_clear(oc_theora_state *_state); -void oc_state_vtable_init_c(oc_theora_state *_state); -void oc_state_borders_fill_rows(oc_theora_state *_state,int _refi,int _pli, - int _y0,int _yend); -void oc_state_borders_fill_caps(oc_theora_state *_state,int _refi,int _pli); -void oc_state_borders_fill(oc_theora_state *_state,int _refi); -void oc_state_fill_buffer_ptrs(oc_theora_state *_state,int _buf_idx, - th_ycbcr_buffer _img); -int oc_state_mbi_for_pos(oc_theora_state *_state,int _mbx,int _mby); -int oc_state_get_mv_offsets(const oc_theora_state *_state,int _offsets[2], - int _pli,int _dx,int _dy); - -int oc_state_loop_filter_init(oc_theora_state *_state,int *_bv); -void oc_state_loop_filter(oc_theora_state *_state,int _frame); -#if defined(OC_DUMP_IMAGES) -int oc_state_dump_frame(const oc_theora_state *_state,int _frame, - const char *_suf); -#endif - -/*Shared accelerated functions.*/ -void oc_frag_copy(const oc_theora_state *_state,unsigned char *_dst, - const unsigned char *_src,int _ystride); -void oc_frag_recon_intra(const oc_theora_state *_state, - unsigned char *_dst,int _dst_ystride,const ogg_int16_t _residue[64]); -void oc_frag_recon_inter(const oc_theora_state *_state,unsigned char *_dst, - const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]); -void oc_frag_recon_inter2(const oc_theora_state *_state, - unsigned char *_dst,const unsigned char *_src1,const unsigned char *_src2, - int _ystride,const ogg_int16_t _residue[64]); -void oc_idct8x8(const oc_theora_state *_state,ogg_int16_t _y[64],int _last_zzi); -void oc_state_frag_recon(const oc_theora_state *_state,ptrdiff_t _fragi, - int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant); -void oc_state_frag_copy_list(const oc_theora_state *_state, - const ptrdiff_t *_fragis,ptrdiff_t _nfragis, - int _dst_frame,int _src_frame,int _pli); -void oc_state_loop_filter_frag_rows(const oc_theora_state *_state, - int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end); -void oc_restore_fpu(const oc_theora_state *_state); - -/*Default pure-C implementations.*/ -void oc_frag_copy_c(unsigned char *_dst, - const unsigned char *_src,int _src_ystride); -void oc_frag_recon_intra_c(unsigned char *_dst,int _dst_ystride, - const ogg_int16_t _residue[64]); -void oc_frag_recon_inter_c(unsigned char *_dst, - const unsigned char *_src,int _ystride,const ogg_int16_t _residue[64]); -void oc_frag_recon_inter2_c(unsigned char *_dst,const unsigned char *_src1, - const unsigned char *_src2,int _ystride,const ogg_int16_t _residue[64]); -void oc_idct8x8_c(ogg_int16_t _y[64],int _last_zzi); -void oc_state_frag_recon_c(const oc_theora_state *_state,ptrdiff_t _fragi, - int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant); -void oc_state_frag_copy_list_c(const oc_theora_state *_state, - const ptrdiff_t *_fragis,ptrdiff_t _nfragis, - int _dst_frame,int _src_frame,int _pli); -void oc_state_loop_filter_frag_rows_c(const oc_theora_state *_state, - int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end); -void oc_restore_fpu_c(void); - -/*We need a way to call a few encoder functions without introducing a link-time - dependency into the decoder, while still allowing the old alpha API which - does not distinguish between encoder and decoder objects to be used. - We do this by placing a function table at the start of the encoder object - which can dispatch into the encoder library. - We do a similar thing for the decoder in case we ever decide to split off a - common base library.*/ -typedef void (*oc_state_clear_func)(theora_state *_th); -typedef int (*oc_state_control_func)(theora_state *th,int _req, - void *_buf,size_t _buf_sz); -typedef ogg_int64_t (*oc_state_granule_frame_func)(theora_state *_th, - ogg_int64_t _granulepos); -typedef double (*oc_state_granule_time_func)(theora_state *_th, - ogg_int64_t _granulepos); - - -struct oc_state_dispatch_vtable{ - oc_state_clear_func clear; - oc_state_control_func control; - oc_state_granule_frame_func granule_frame; - oc_state_granule_time_func granule_time; -}; - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/ocintrin.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/ocintrin.h deleted file mode 100644 index d49ebb21..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/ocintrin.h +++ /dev/null @@ -1,128 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: ocintrin.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -/*Some common macros for potential platform-specific optimization.*/ -#include -#if !defined(_ocintrin_H) -# define _ocintrin_H (1) - -/*Some specific platforms may have optimized intrinsic or inline assembly - versions of these functions which can substantially improve performance. - We define macros for them to allow easy incorporation of these non-ANSI - features.*/ - -/*Note that we do not provide a macro for abs(), because it is provided as a - library function, which we assume is translated into an intrinsic to avoid - the function call overhead and then implemented in the smartest way for the - target platform. - With modern gcc (4.x), this is true: it uses cmov instructions if the - architecture supports it and branchless bit-twiddling if it does not (the - speed difference between the two approaches is not measurable). - Interestingly, the bit-twiddling method was patented in 2000 (US 6,073,150) - by Sun Microsystems, despite prior art dating back to at least 1996: - http://web.archive.org/web/19961201174141/www.x86.org/ftp/articles/pentopt/PENTOPT.TXT - On gcc 3.x, however, our assumption is not true, as abs() is translated to a - conditional jump, which is horrible on deeply piplined architectures (e.g., - all consumer architectures for the past decade or more). - Also be warned that -C*abs(x) where C is a constant is mis-optimized as - abs(C*x) on every gcc release before 4.2.3. - See bug http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34130 */ - -/*Modern gcc (4.x) can compile the naive versions of min and max with cmov if - given an appropriate architecture, but the branchless bit-twiddling versions - are just as fast, and do not require any special target architecture. - Earlier gcc versions (3.x) compiled both code to the same assembly - instructions, because of the way they represented ((_b)>(_a)) internally.*/ -#define OC_MAXI(_a,_b) ((_a)-((_a)-(_b)&-((_b)>(_a)))) -#define OC_MINI(_a,_b) ((_a)+((_b)-(_a)&-((_b)<(_a)))) -/*Clamps an integer into the given range. - If _a>_c, then the lower bound _a is respected over the upper bound _c (this - behavior is required to meet our documented API behavior). - _a: The lower bound. - _b: The value to clamp. - _c: The upper boud.*/ -#define OC_CLAMPI(_a,_b,_c) (OC_MAXI(_a,OC_MINI(_b,_c))) -#define OC_CLAMP255(_x) ((unsigned char)((((_x)<0)-1)&((_x)|-((_x)>255)))) -/*This has a chance of compiling branchless, and is just as fast as the - bit-twiddling method, which is slightly less portable, since it relies on a - sign-extended rightshift, which is not guaranteed by ANSI (but present on - every relevant platform).*/ -#define OC_SIGNI(_a) (((_a)>0)-((_a)<0)) -/*Slightly more portable than relying on a sign-extended right-shift (which is - not guaranteed by ANSI), and just as fast, since gcc (3.x and 4.x both) - compile it into the right-shift anyway.*/ -#define OC_SIGNMASK(_a) (-((_a)<0)) -/*Divides an integer by a power of two, truncating towards 0. - _dividend: The integer to divide. - _shift: The non-negative power of two to divide by. - _rmask: (1<<_shift)-1*/ -#define OC_DIV_POW2(_dividend,_shift,_rmask)\ - ((_dividend)+(OC_SIGNMASK(_dividend)&(_rmask))>>(_shift)) -/*Divides _x by 65536, truncating towards 0.*/ -#define OC_DIV2_16(_x) OC_DIV_POW2(_x,16,0xFFFF) -/*Divides _x by 2, truncating towards 0.*/ -#define OC_DIV2(_x) OC_DIV_POW2(_x,1,0x1) -/*Divides _x by 8, truncating towards 0.*/ -#define OC_DIV8(_x) OC_DIV_POW2(_x,3,0x7) -/*Divides _x by 16, truncating towards 0.*/ -#define OC_DIV16(_x) OC_DIV_POW2(_x,4,0xF) -/*Right shifts _dividend by _shift, adding _rval, and subtracting one for - negative dividends first. - When _rval is (1<<_shift-1), this is equivalent to division with rounding - ties away from zero.*/ -#define OC_DIV_ROUND_POW2(_dividend,_shift,_rval)\ - ((_dividend)+OC_SIGNMASK(_dividend)+(_rval)>>(_shift)) -/*Divides a _x by 2, rounding towards even numbers.*/ -#define OC_DIV2_RE(_x) ((_x)+((_x)>>1&1)>>1) -/*Divides a _x by (1<<(_shift)), rounding towards even numbers.*/ -#define OC_DIV_POW2_RE(_x,_shift) \ - ((_x)+((_x)>>(_shift)&1)+((1<<(_shift))-1>>1)>>(_shift)) -/*Swaps two integers _a and _b if _a>_b.*/ -#define OC_SORT2I(_a,_b) \ - do{ \ - int t__; \ - t__=((_a)^(_b))&-((_b)<(_a)); \ - (_a)^=t__; \ - (_b)^=t__; \ - } \ - while(0) - -/*Accesses one of four (signed) bytes given an index. - This can be used to avoid small lookup tables.*/ -#define OC_BYTE_TABLE32(_a,_b,_c,_d,_i) \ - ((signed char) \ - (((_a)&0xFF|((_b)&0xFF)<<8|((_c)&0xFF)<<16|((_d)&0xFF)<<24)>>(_i)*8)) -/*Accesses one of eight (unsigned) nibbles given an index. - This can be used to avoid small lookup tables.*/ -#define OC_UNIBBLE_TABLE32(_a,_b,_c,_d,_e,_f,_g,_h,_i) \ - ((((_a)&0xF|((_b)&0xF)<<4|((_c)&0xF)<<8|((_d)&0xF)<<12| \ - ((_e)&0xF)<<16|((_f)&0xF)<<20|((_g)&0xF)<<24|((_h)&0xF)<<28)>>(_i)*4)&0xF) - - - -/*All of these macros should expect floats as arguments.*/ -#define OC_MAXF(_a,_b) ((_a)<(_b)?(_b):(_a)) -#define OC_MINF(_a,_b) ((_a)>(_b)?(_b):(_a)) -#define OC_CLAMPF(_a,_b,_c) (OC_MINF(_a,OC_MAXF(_b,_c))) -#define OC_FABSF(_f) ((float)fabs(_f)) -#define OC_SQRTF(_f) ((float)sqrt(_f)) -#define OC_POWF(_b,_e) ((float)pow(_b,_e)) -#define OC_LOGF(_f) ((float)log(_f)) -#define OC_IFLOORF(_f) ((int)floor(_f)) -#define OC_ICEILF(_f) ((int)ceil(_f)) - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/quant.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/quant.c deleted file mode 100644 index 8359f5ab..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/quant.c +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: quant.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#include -#include -#include "quant.h" -#include "decint.h" - -static const unsigned OC_DC_QUANT_MIN[2]={4<<2,8<<2}; -static const unsigned OC_AC_QUANT_MIN[2]={2<<2,4<<2}; - -/*Initializes the dequantization tables from a set of quantizer info. - Currently the dequantizer (and elsewhere enquantizer) tables are expected to - be initialized as pointing to the storage reserved for them in the - oc_theora_state (resp. oc_enc_ctx) structure. - If some tables are duplicates of others, the pointers will be adjusted to - point to a single copy of the tables, but the storage for them will not be - freed. - If you're concerned about the memory footprint, the obvious thing to do is - to move the storage out of its fixed place in the structures and allocate - it on demand. - However, a much, much better option is to only store the quantization - matrices being used for the current frame, and to recalculate these as the - qi values change between frames (this is what VP3 did).*/ -void oc_dequant_tables_init(ogg_uint16_t *_dequant[64][3][2], - int _pp_dc_scale[64],const th_quant_info *_qinfo){ - /*Coding mode: intra or inter.*/ - int qti; - /*Y', C_b, C_r*/ - int pli; - for(qti=0;qti<2;qti++)for(pli=0;pli<3;pli++){ - /*Quality index.*/ - int qi; - /*Range iterator.*/ - int qri; - for(qi=0,qri=0;qri<=_qinfo->qi_ranges[qti][pli].nranges;qri++){ - th_quant_base base; - ogg_uint32_t q; - int qi_start; - int qi_end; - memcpy(base,_qinfo->qi_ranges[qti][pli].base_matrices[qri], - sizeof(base)); - qi_start=qi; - if(qri==_qinfo->qi_ranges[qti][pli].nranges)qi_end=qi+1; - else qi_end=qi+_qinfo->qi_ranges[qti][pli].sizes[qri]; - /*Iterate over quality indicies in this range.*/ - for(;;){ - ogg_uint32_t qfac; - int zzi; - int ci; - /*In the original VP3.2 code, the rounding offset and the size of the - dead zone around 0 were controlled by a "sharpness" parameter. - The size of our dead zone is now controlled by the per-coefficient - quality thresholds returned by our HVS module. - We round down from a more accurate value when the quality of the - reconstruction does not fall below our threshold and it saves bits. - Hence, all of that VP3.2 code is gone from here, and the remaining - floating point code has been implemented as equivalent integer code - with exact precision.*/ - qfac=(ogg_uint32_t)_qinfo->dc_scale[qi]*base[0]; - /*For postprocessing, not dequantization.*/ - if(_pp_dc_scale!=NULL)_pp_dc_scale[qi]=(int)(qfac/160); - /*Scale DC the coefficient from the proper table.*/ - q=(qfac/100)<<2; - q=OC_CLAMPI(OC_DC_QUANT_MIN[qti],q,OC_QUANT_MAX); - _dequant[qi][pli][qti][0]=(ogg_uint16_t)q; - /*Now scale AC coefficients from the proper table.*/ - for(zzi=1;zzi<64;zzi++){ - q=((ogg_uint32_t)_qinfo->ac_scale[qi]*base[OC_FZIG_ZAG[zzi]]/100)<<2; - q=OC_CLAMPI(OC_AC_QUANT_MIN[qti],q,OC_QUANT_MAX); - _dequant[qi][pli][qti][zzi]=(ogg_uint16_t)q; - } - /*If this is a duplicate of a previous matrix, use that instead. - This simple check helps us improve cache coherency later.*/ - { - int dupe; - int qtj; - int plj; - dupe=0; - for(qtj=0;qtj<=qti;qtj++){ - for(plj=0;plj<(qtj=qi_end)break; - /*Interpolate the next base matrix.*/ - for(ci=0;ci<64;ci++){ - base[ci]=(unsigned char)( - (2*((qi_end-qi)*_qinfo->qi_ranges[qti][pli].base_matrices[qri][ci]+ - (qi-qi_start)*_qinfo->qi_ranges[qti][pli].base_matrices[qri+1][ci]) - +_qinfo->qi_ranges[qti][pli].sizes[qri])/ - (2*_qinfo->qi_ranges[qti][pli].sizes[qri])); - } - } - } - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/quant.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/quant.h deleted file mode 100644 index 49ce13a6..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/quant.h +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: quant.h 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#if !defined(_quant_H) -# define _quant_H (1) -# include "theora/codec.h" -# include "ocintrin.h" - -typedef ogg_uint16_t oc_quant_table[64]; - - -/*Maximum scaled quantizer value.*/ -#define OC_QUANT_MAX (1024<<2) - - -void oc_dequant_tables_init(ogg_uint16_t *_dequant[64][3][2], - int _pp_dc_scale[64],const th_quant_info *_qinfo); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/state.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/state.c deleted file mode 100644 index 42ed33a9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/state.c +++ /dev/null @@ -1,1227 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: state.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#include -#include "internal.h" -#if defined(OC_X86_ASM) -#if defined(_MSC_VER) -# include "x86_vc/x86int.h" -#else -# include "x86/x86int.h" -#endif -#endif -#if defined(OC_DUMP_IMAGES) -# include -# include "png.h" -#endif - -/*Returns the fragment index of the top-left block in a macro block. - This can be used to test whether or not the whole macro block is valid. - _sb_map: The super block map. - _quadi: The quadrant number. - Return: The index of the fragment of the upper left block in the macro - block, or -1 if the block lies outside the coded frame.*/ -static ptrdiff_t oc_sb_quad_top_left_frag(oc_sb_map_quad _sb_map[4],int _quadi){ - /*It so happens that under the Hilbert curve ordering described below, the - upper-left block in each macro block is at index 0, except in macro block - 3, where it is at index 2.*/ - return _sb_map[_quadi][_quadi&_quadi<<1]; -} - -/*Fills in the mapping from block positions to fragment numbers for a single - color plane. - This function also fills in the "valid" flag of each quadrant in the super - block flags. - _sb_maps: The array of super block maps for the color plane. - _sb_flags: The array of super block flags for the color plane. - _frag0: The index of the first fragment in the plane. - _hfrags: The number of horizontal fragments in a coded frame. - _vfrags: The number of vertical fragments in a coded frame.*/ -static void oc_sb_create_plane_mapping(oc_sb_map _sb_maps[], - oc_sb_flags _sb_flags[],ptrdiff_t _frag0,int _hfrags,int _vfrags){ - /*Contains the (macro_block,block) indices for a 4x4 grid of - fragments. - The pattern is a 4x4 Hilbert space-filling curve. - A Hilbert curve has the nice property that as the curve grows larger, its - fractal dimension approaches 2. - The intuition is that nearby blocks in the curve are also close spatially, - with the previous element always an immediate neighbor, so that runs of - blocks should be well correlated.*/ - static const int SB_MAP[4][4][2]={ - {{0,0},{0,1},{3,2},{3,3}}, - {{0,3},{0,2},{3,1},{3,0}}, - {{1,0},{1,3},{2,0},{2,3}}, - {{1,1},{1,2},{2,1},{2,2}} - }; - ptrdiff_t yfrag; - unsigned sbi; - int y; - sbi=0; - yfrag=_frag0; - for(y=0;;y+=4){ - int imax; - int x; - /*Figure out how many columns of blocks in this super block lie within the - image.*/ - imax=_vfrags-y; - if(imax>4)imax=4; - else if(imax<=0)break; - for(x=0;;x+=4,sbi++){ - ptrdiff_t xfrag; - int jmax; - int quadi; - int i; - /*Figure out how many rows of blocks in this super block lie within the - image.*/ - jmax=_hfrags-x; - if(jmax>4)jmax=4; - else if(jmax<=0)break; - /*By default, set all fragment indices to -1.*/ - memset(_sb_maps[sbi][0],0xFF,sizeof(_sb_maps[sbi])); - /*Fill in the fragment map for this super block.*/ - xfrag=yfrag+x; - for(i=0;i=0)<nhfrags+_xfrag0+j; - } -} - -/*Fills in the chroma plane fragment maps for a macro block. - This version is for use with chroma decimated in the X and Y directions - (4:2:0). - _mb_map: The macro block map to fill. - _fplanes: The descriptions of the fragment planes. - _xfrag0: The X location of the upper-left hand fragment in the luma plane. - _yfrag0: The Y location of the upper-left hand fragment in the luma plane.*/ -static void oc_mb_fill_cmapping00(oc_mb_map_plane _mb_map[3], - const oc_fragment_plane _fplanes[3],int _xfrag0,int _yfrag0){ - ptrdiff_t fragi; - _xfrag0>>=1; - _yfrag0>>=1; - fragi=_yfrag0*(ptrdiff_t)_fplanes[1].nhfrags+_xfrag0; - _mb_map[1][0]=fragi+_fplanes[1].froffset; - _mb_map[2][0]=fragi+_fplanes[2].froffset; -} - -/*Fills in the chroma plane fragment maps for a macro block. - This version is for use with chroma decimated in the Y direction. - _mb_map: The macro block map to fill. - _fplanes: The descriptions of the fragment planes. - _xfrag0: The X location of the upper-left hand fragment in the luma plane. - _yfrag0: The Y location of the upper-left hand fragment in the luma plane.*/ -static void oc_mb_fill_cmapping01(oc_mb_map_plane _mb_map[3], - const oc_fragment_plane _fplanes[3],int _xfrag0,int _yfrag0){ - ptrdiff_t fragi; - int j; - _yfrag0>>=1; - fragi=_yfrag0*(ptrdiff_t)_fplanes[1].nhfrags+_xfrag0; - for(j=0;j<2;j++){ - _mb_map[1][j]=fragi+_fplanes[1].froffset; - _mb_map[2][j]=fragi+_fplanes[2].froffset; - fragi++; - } -} - -/*Fills in the chroma plane fragment maps for a macro block. - This version is for use with chroma decimated in the X direction (4:2:2). - _mb_map: The macro block map to fill. - _fplanes: The descriptions of the fragment planes. - _xfrag0: The X location of the upper-left hand fragment in the luma plane. - _yfrag0: The Y location of the upper-left hand fragment in the luma plane.*/ -static void oc_mb_fill_cmapping10(oc_mb_map_plane _mb_map[3], - const oc_fragment_plane _fplanes[3],int _xfrag0,int _yfrag0){ - ptrdiff_t fragi; - int i; - _xfrag0>>=1; - fragi=_yfrag0*(ptrdiff_t)_fplanes[1].nhfrags+_xfrag0; - for(i=0;i<2;i++){ - _mb_map[1][i<<1]=fragi+_fplanes[1].froffset; - _mb_map[2][i<<1]=fragi+_fplanes[2].froffset; - fragi+=_fplanes[1].nhfrags; - } -} - -/*Fills in the chroma plane fragment maps for a macro block. - This version is for use with no chroma decimation (4:4:4). - This uses the already filled-in luma plane values. - _mb_map: The macro block map to fill. - _fplanes: The descriptions of the fragment planes.*/ -static void oc_mb_fill_cmapping11(oc_mb_map_plane _mb_map[3], - const oc_fragment_plane _fplanes[3]){ - int k; - for(k=0;k<4;k++){ - _mb_map[1][k]=_mb_map[0][k]+_fplanes[1].froffset; - _mb_map[2][k]=_mb_map[0][k]+_fplanes[2].froffset; - } -} - -/*The function type used to fill in the chroma plane fragment maps for a - macro block. - _mb_map: The macro block map to fill. - _fplanes: The descriptions of the fragment planes. - _xfrag0: The X location of the upper-left hand fragment in the luma plane. - _yfrag0: The Y location of the upper-left hand fragment in the luma plane.*/ -typedef void (*oc_mb_fill_cmapping_func)(oc_mb_map_plane _mb_map[3], - const oc_fragment_plane _fplanes[3],int _xfrag0,int _yfrag0); - -/*A table of functions used to fill in the chroma plane fragment maps for a - macro block for each type of chrominance decimation.*/ -static const oc_mb_fill_cmapping_func OC_MB_FILL_CMAPPING_TABLE[4]={ - oc_mb_fill_cmapping00, - oc_mb_fill_cmapping01, - oc_mb_fill_cmapping10, - (oc_mb_fill_cmapping_func)oc_mb_fill_cmapping11 -}; - -/*Fills in the mapping from macro blocks to their corresponding fragment - numbers in each plane. - _mb_maps: The list of macro block maps. - _mb_modes: The list of macro block modes; macro blocks completely outside - the coded region are marked invalid. - _fplanes: The descriptions of the fragment planes. - _pixel_fmt: The chroma decimation type.*/ -static void oc_mb_create_mapping(oc_mb_map _mb_maps[], - signed char _mb_modes[],const oc_fragment_plane _fplanes[3],int _pixel_fmt){ - oc_mb_fill_cmapping_func mb_fill_cmapping; - unsigned sbi; - int y; - mb_fill_cmapping=OC_MB_FILL_CMAPPING_TABLE[_pixel_fmt]; - /*Loop through the luma plane super blocks.*/ - for(sbi=y=0;y<_fplanes[0].nvfrags;y+=4){ - int x; - for(x=0;x<_fplanes[0].nhfrags;x+=4,sbi++){ - int ymb; - /*Loop through the macro blocks in each super block in display order.*/ - for(ymb=0;ymb<2;ymb++){ - int xmb; - for(xmb=0;xmb<2;xmb++){ - unsigned mbi; - int mbx; - int mby; - mbi=sbi<<2|OC_MB_MAP[ymb][xmb]; - mbx=x|xmb<<1; - mby=y|ymb<<1; - /*Initialize fragment indices to -1.*/ - memset(_mb_maps[mbi],0xFF,sizeof(_mb_maps[mbi])); - /*Make sure this macro block is within the encoded region.*/ - if(mbx>=_fplanes[0].nhfrags||mby>=_fplanes[0].nvfrags){ - _mb_modes[mbi]=OC_MODE_INVALID; - continue; - } - /*Fill in the fragment indices for the luma plane.*/ - oc_mb_fill_ymapping(_mb_maps[mbi],_fplanes,mbx,mby); - /*Fill in the fragment indices for the chroma planes.*/ - (*mb_fill_cmapping)(_mb_maps[mbi],_fplanes,mbx,mby); - } - } - } - } -} - -/*Marks the fragments which fall all or partially outside the displayable - region of the frame. - _state: The Theora state containing the fragments to be marked.*/ -static void oc_state_border_init(oc_theora_state *_state){ - oc_fragment *frag; - oc_fragment *yfrag_end; - oc_fragment *xfrag_end; - oc_fragment_plane *fplane; - int crop_x0; - int crop_y0; - int crop_xf; - int crop_yf; - int pli; - int y; - int x; - /*The method we use here is slow, but the code is dead simple and handles - all the special cases easily. - We only ever need to do it once.*/ - /*Loop through the fragments, marking those completely outside the - displayable region and constructing a border mask for those that straddle - the border.*/ - _state->nborders=0; - yfrag_end=frag=_state->frags; - for(pli=0;pli<3;pli++){ - fplane=_state->fplanes+pli; - /*Set up the cropping rectangle for this plane.*/ - crop_x0=_state->info.pic_x; - crop_xf=_state->info.pic_x+_state->info.pic_width; - crop_y0=_state->info.pic_y; - crop_yf=_state->info.pic_y+_state->info.pic_height; - if(pli>0){ - if(!(_state->info.pixel_fmt&1)){ - crop_x0=crop_x0>>1; - crop_xf=crop_xf+1>>1; - } - if(!(_state->info.pixel_fmt&2)){ - crop_y0=crop_y0>>1; - crop_yf=crop_yf+1>>1; - } - } - y=0; - for(yfrag_end+=fplane->nfrags;fragnhfrags;frag=crop_xf||crop_y0>=crop_yf){ - frag->invalid=1; - } - /*Otherwise, check to see if it straddles the border.*/ - else if(x=crop_x0&&x+j=crop_y0&&y+i=_state->nborders){ - _state->nborders++; - _state->borders[i].mask=mask; - _state->borders[i].npixels=npixels; - } - else if(_state->borders[i].mask!=mask)continue; - frag->borderi=i; - break; - } - } - else frag->borderi=-1; - } - } - } -} - -static int oc_state_frarray_init(oc_theora_state *_state){ - int yhfrags; - int yvfrags; - int chfrags; - int cvfrags; - ptrdiff_t yfrags; - ptrdiff_t cfrags; - ptrdiff_t nfrags; - unsigned yhsbs; - unsigned yvsbs; - unsigned chsbs; - unsigned cvsbs; - unsigned ysbs; - unsigned csbs; - unsigned nsbs; - size_t nmbs; - int hdec; - int vdec; - int pli; - /*Figure out the number of fragments in each plane.*/ - /*These parameters have already been validated to be multiples of 16.*/ - yhfrags=_state->info.frame_width>>3; - yvfrags=_state->info.frame_height>>3; - hdec=!(_state->info.pixel_fmt&1); - vdec=!(_state->info.pixel_fmt&2); - chfrags=yhfrags+hdec>>hdec; - cvfrags=yvfrags+vdec>>vdec; - yfrags=yhfrags*(ptrdiff_t)yvfrags; - cfrags=chfrags*(ptrdiff_t)cvfrags; - nfrags=yfrags+2*cfrags; - /*Figure out the number of super blocks in each plane.*/ - yhsbs=yhfrags+3>>2; - yvsbs=yvfrags+3>>2; - chsbs=chfrags+3>>2; - cvsbs=cvfrags+3>>2; - ysbs=yhsbs*yvsbs; - csbs=chsbs*cvsbs; - nsbs=ysbs+2*csbs; - nmbs=(size_t)ysbs<<2; - /*Check for overflow. - We support the ridiculous upper limits of the specification (1048560 by - 1048560, or 3 TB frames) if the target architecture has 64-bit pointers, - but for those with 32-bit pointers (or smaller!) we have to check. - If the caller wants to prevent denial-of-service by imposing a more - reasonable upper limit on the size of attempted allocations, they must do - so themselves; we have no platform independent way to determine how much - system memory there is nor an application-independent way to decide what a - "reasonable" allocation is.*/ - if(yfrags/yhfrags!=yvfrags||2*cfrags>2!=ysbs){ - return TH_EIMPL; - } - /*Initialize the fragment array.*/ - _state->fplanes[0].nhfrags=yhfrags; - _state->fplanes[0].nvfrags=yvfrags; - _state->fplanes[0].froffset=0; - _state->fplanes[0].nfrags=yfrags; - _state->fplanes[0].nhsbs=yhsbs; - _state->fplanes[0].nvsbs=yvsbs; - _state->fplanes[0].sboffset=0; - _state->fplanes[0].nsbs=ysbs; - _state->fplanes[1].nhfrags=_state->fplanes[2].nhfrags=chfrags; - _state->fplanes[1].nvfrags=_state->fplanes[2].nvfrags=cvfrags; - _state->fplanes[1].froffset=yfrags; - _state->fplanes[2].froffset=yfrags+cfrags; - _state->fplanes[1].nfrags=_state->fplanes[2].nfrags=cfrags; - _state->fplanes[1].nhsbs=_state->fplanes[2].nhsbs=chsbs; - _state->fplanes[1].nvsbs=_state->fplanes[2].nvsbs=cvsbs; - _state->fplanes[1].sboffset=ysbs; - _state->fplanes[2].sboffset=ysbs+csbs; - _state->fplanes[1].nsbs=_state->fplanes[2].nsbs=csbs; - _state->nfrags=nfrags; - _state->frags=_ogg_calloc(nfrags,sizeof(*_state->frags)); - _state->frag_mvs=_ogg_malloc(nfrags*sizeof(*_state->frag_mvs)); - _state->nsbs=nsbs; - _state->sb_maps=_ogg_malloc(nsbs*sizeof(*_state->sb_maps)); - _state->sb_flags=_ogg_calloc(nsbs,sizeof(*_state->sb_flags)); - _state->nhmbs=yhsbs<<1; - _state->nvmbs=yvsbs<<1; - _state->nmbs=nmbs; - _state->mb_maps=_ogg_calloc(nmbs,sizeof(*_state->mb_maps)); - _state->mb_modes=_ogg_calloc(nmbs,sizeof(*_state->mb_modes)); - _state->coded_fragis=_ogg_malloc(nfrags*sizeof(*_state->coded_fragis)); - if(_state->frags==NULL||_state->frag_mvs==NULL||_state->sb_maps==NULL|| - _state->sb_flags==NULL||_state->mb_maps==NULL||_state->mb_modes==NULL|| - _state->coded_fragis==NULL){ - return TH_EFAULT; - } - /*Create the mapping from super blocks to fragments.*/ - for(pli=0;pli<3;pli++){ - oc_fragment_plane *fplane; - fplane=_state->fplanes+pli; - oc_sb_create_plane_mapping(_state->sb_maps+fplane->sboffset, - _state->sb_flags+fplane->sboffset,fplane->froffset, - fplane->nhfrags,fplane->nvfrags); - } - /*Create the mapping from macro blocks to fragments.*/ - oc_mb_create_mapping(_state->mb_maps,_state->mb_modes, - _state->fplanes,_state->info.pixel_fmt); - /*Initialize the invalid and borderi fields of each fragment.*/ - oc_state_border_init(_state); - return 0; -} - -static void oc_state_frarray_clear(oc_theora_state *_state){ - _ogg_free(_state->coded_fragis); - _ogg_free(_state->mb_modes); - _ogg_free(_state->mb_maps); - _ogg_free(_state->sb_flags); - _ogg_free(_state->sb_maps); - _ogg_free(_state->frag_mvs); - _ogg_free(_state->frags); -} - - -/*Initializes the buffers used for reconstructed frames. - These buffers are padded with 16 extra pixels on each side, to allow - unrestricted motion vectors without special casing the boundary. - If chroma is decimated in either direction, the padding is reduced by a - factor of 2 on the appropriate sides. - _nrefs: The number of reference buffers to init; must be 3 or 4.*/ -static int oc_state_ref_bufs_init(oc_theora_state *_state,int _nrefs){ - th_info *info; - unsigned char *ref_frame_data; - size_t ref_frame_data_sz; - size_t ref_frame_sz; - size_t yplane_sz; - size_t cplane_sz; - int yhstride; - int yheight; - int chstride; - int cheight; - ptrdiff_t yoffset; - ptrdiff_t coffset; - ptrdiff_t *frag_buf_offs; - ptrdiff_t fragi; - int hdec; - int vdec; - int rfi; - int pli; - if(_nrefs<3||_nrefs>4)return TH_EINVAL; - info=&_state->info; - /*Compute the image buffer parameters for each plane.*/ - hdec=!(info->pixel_fmt&1); - vdec=!(info->pixel_fmt&2); - yhstride=info->frame_width+2*OC_UMV_PADDING; - yheight=info->frame_height+2*OC_UMV_PADDING; - chstride=yhstride>>hdec; - cheight=yheight>>vdec; - yplane_sz=yhstride*(size_t)yheight; - cplane_sz=chstride*(size_t)cheight; - yoffset=OC_UMV_PADDING+OC_UMV_PADDING*(ptrdiff_t)yhstride; - coffset=(OC_UMV_PADDING>>hdec)+(OC_UMV_PADDING>>vdec)*(ptrdiff_t)chstride; - ref_frame_sz=yplane_sz+2*cplane_sz; - ref_frame_data_sz=_nrefs*ref_frame_sz; - /*Check for overflow. - The same caveats apply as for oc_state_frarray_init().*/ - if(yplane_sz/yhstride!=yheight||2*cplane_szfrag_buf_offs= - _ogg_malloc(_state->nfrags*sizeof(*frag_buf_offs)); - if(ref_frame_data==NULL||frag_buf_offs==NULL){ - _ogg_free(frag_buf_offs); - _ogg_free(ref_frame_data); - return TH_EFAULT; - } - /*Set up the width, height and stride for the image buffers.*/ - _state->ref_frame_bufs[0][0].width=info->frame_width; - _state->ref_frame_bufs[0][0].height=info->frame_height; - _state->ref_frame_bufs[0][0].stride=yhstride; - _state->ref_frame_bufs[0][1].width=_state->ref_frame_bufs[0][2].width= - info->frame_width>>hdec; - _state->ref_frame_bufs[0][1].height=_state->ref_frame_bufs[0][2].height= - info->frame_height>>vdec; - _state->ref_frame_bufs[0][1].stride=_state->ref_frame_bufs[0][2].stride= - chstride; - for(rfi=1;rfi<_nrefs;rfi++){ - memcpy(_state->ref_frame_bufs[rfi],_state->ref_frame_bufs[0], - sizeof(_state->ref_frame_bufs[0])); - } - /*Set up the data pointers for the image buffers.*/ - for(rfi=0;rfi<_nrefs;rfi++){ - _state->ref_frame_data[rfi]=ref_frame_data; - _state->ref_frame_bufs[rfi][0].data=ref_frame_data+yoffset; - ref_frame_data+=yplane_sz; - _state->ref_frame_bufs[rfi][1].data=ref_frame_data+coffset; - ref_frame_data+=cplane_sz; - _state->ref_frame_bufs[rfi][2].data=ref_frame_data+coffset; - ref_frame_data+=cplane_sz; - /*Flip the buffer upside down. - This allows us to decode Theora's bottom-up frames in their natural - order, yet return a top-down buffer with a positive stride to the user.*/ - oc_ycbcr_buffer_flip(_state->ref_frame_bufs[rfi], - _state->ref_frame_bufs[rfi]); - } - _state->ref_ystride[0]=-yhstride; - _state->ref_ystride[1]=_state->ref_ystride[2]=-chstride; - /*Initialize the fragment buffer offsets.*/ - ref_frame_data=_state->ref_frame_data[0]; - fragi=0; - for(pli=0;pli<3;pli++){ - th_img_plane *iplane; - oc_fragment_plane *fplane; - unsigned char *vpix; - ptrdiff_t stride; - ptrdiff_t vfragi_end; - int nhfrags; - iplane=_state->ref_frame_bufs[0]+pli; - fplane=_state->fplanes+pli; - vpix=iplane->data; - vfragi_end=fplane->froffset+fplane->nfrags; - nhfrags=fplane->nhfrags; - stride=iplane->stride; - while(fragiref_frame_idx[OC_FRAME_GOLD]= - _state->ref_frame_idx[OC_FRAME_PREV]= - _state->ref_frame_idx[OC_FRAME_SELF]=-1; - _state->ref_frame_idx[OC_FRAME_IO]=_nrefs>3?3:-1; - return 0; -} - -static void oc_state_ref_bufs_clear(oc_theora_state *_state){ - _ogg_free(_state->frag_buf_offs); - _ogg_free(_state->ref_frame_data[0]); -} - - -void oc_state_vtable_init_c(oc_theora_state *_state){ - _state->opt_vtable.frag_copy=oc_frag_copy_c; - _state->opt_vtable.frag_recon_intra=oc_frag_recon_intra_c; - _state->opt_vtable.frag_recon_inter=oc_frag_recon_inter_c; - _state->opt_vtable.frag_recon_inter2=oc_frag_recon_inter2_c; - _state->opt_vtable.idct8x8=oc_idct8x8_c; - _state->opt_vtable.state_frag_recon=oc_state_frag_recon_c; - _state->opt_vtable.state_frag_copy_list=oc_state_frag_copy_list_c; - _state->opt_vtable.state_loop_filter_frag_rows= - oc_state_loop_filter_frag_rows_c; - _state->opt_vtable.restore_fpu=oc_restore_fpu_c; - _state->opt_data.dct_fzig_zag=OC_FZIG_ZAG; -} - -/*Initialize the accelerated function pointers.*/ -void oc_state_vtable_init(oc_theora_state *_state){ -#if defined(OC_X86_ASM) - oc_state_vtable_init_x86(_state); -#else - oc_state_vtable_init_c(_state); -#endif -} - - -int oc_state_init(oc_theora_state *_state,const th_info *_info,int _nrefs){ - int ret; - /*First validate the parameters.*/ - if(_info==NULL)return TH_EFAULT; - /*The width and height of the encoded frame must be multiples of 16. - They must also, when divided by 16, fit into a 16-bit unsigned integer. - The displayable frame offset coordinates must fit into an 8-bit unsigned - integer. - Note that the offset Y in the API is specified on the opposite side from - how it is specified in the bitstream, because the Y axis is flipped in - the bitstream. - The displayable frame must fit inside the encoded frame. - The color space must be one known by the encoder.*/ - if((_info->frame_width&0xF)||(_info->frame_height&0xF)|| - _info->frame_width<=0||_info->frame_width>=0x100000|| - _info->frame_height<=0||_info->frame_height>=0x100000|| - _info->pic_x+_info->pic_width>_info->frame_width|| - _info->pic_y+_info->pic_height>_info->frame_height|| - _info->pic_x>255||_info->frame_height-_info->pic_height-_info->pic_y>255|| - /*Note: the following <0 comparisons may generate spurious warnings on - platforms where enums are unsigned. - We could cast them to unsigned and just use the following >= comparison, - but there are a number of compilers which will mis-optimize this. - It's better to live with the spurious warnings.*/ - _info->colorspace<0||_info->colorspace>=TH_CS_NSPACES|| - _info->pixel_fmt<0||_info->pixel_fmt>=TH_PF_NFORMATS){ - return TH_EINVAL; - } - memset(_state,0,sizeof(*_state)); - memcpy(&_state->info,_info,sizeof(*_info)); - /*Invert the sense of pic_y to match Theora's right-handed coordinate - system.*/ - _state->info.pic_y=_info->frame_height-_info->pic_height-_info->pic_y; - _state->frame_type=OC_UNKWN_FRAME; - oc_state_vtable_init(_state); - ret=oc_state_frarray_init(_state); - if(ret>=0)ret=oc_state_ref_bufs_init(_state,_nrefs); - if(ret<0){ - oc_state_frarray_clear(_state); - return ret; - } - /*If the keyframe_granule_shift is out of range, use the maximum allowable - value.*/ - if(_info->keyframe_granule_shift<0||_info->keyframe_granule_shift>31){ - _state->info.keyframe_granule_shift=31; - } - _state->keyframe_num=0; - _state->curframe_num=-1; - /*3.2.0 streams mark the frame index instead of the frame count. - This was changed with stream version 3.2.1 to conform to other Ogg - codecs. - We add an extra bias when computing granule positions for new streams.*/ - _state->granpos_bias=TH_VERSION_CHECK(_info,3,2,1); - return 0; -} - -void oc_state_clear(oc_theora_state *_state){ - oc_state_ref_bufs_clear(_state); - oc_state_frarray_clear(_state); -} - - -/*Duplicates the pixels on the border of the image plane out into the - surrounding padding for use by unrestricted motion vectors. - This function only adds the left and right borders, and only for the fragment - rows specified. - _refi: The index of the reference buffer to pad. - _pli: The color plane. - _y0: The Y coordinate of the first row to pad. - _yend: The Y coordinate of the row to stop padding at.*/ -void oc_state_borders_fill_rows(oc_theora_state *_state,int _refi,int _pli, - int _y0,int _yend){ - th_img_plane *iplane; - unsigned char *apix; - unsigned char *bpix; - unsigned char *epix; - int stride; - int hpadding; - hpadding=OC_UMV_PADDING>>(_pli!=0&&!(_state->info.pixel_fmt&1)); - iplane=_state->ref_frame_bufs[_refi]+_pli; - stride=iplane->stride; - apix=iplane->data+_y0*(ptrdiff_t)stride; - bpix=apix+iplane->width-1; - epix=iplane->data+_yend*(ptrdiff_t)stride; - /*Note the use of != instead of <, which allows the stride to be negative.*/ - while(apix!=epix){ - memset(apix-hpadding,apix[0],hpadding); - memset(bpix+1,bpix[0],hpadding); - apix+=stride; - bpix+=stride; - } -} - -/*Duplicates the pixels on the border of the image plane out into the - surrounding padding for use by unrestricted motion vectors. - This function only adds the top and bottom borders, and must be called after - the left and right borders are added. - _refi: The index of the reference buffer to pad. - _pli: The color plane.*/ -void oc_state_borders_fill_caps(oc_theora_state *_state,int _refi,int _pli){ - th_img_plane *iplane; - unsigned char *apix; - unsigned char *bpix; - unsigned char *epix; - int stride; - int hpadding; - int vpadding; - int fullw; - hpadding=OC_UMV_PADDING>>(_pli!=0&&!(_state->info.pixel_fmt&1)); - vpadding=OC_UMV_PADDING>>(_pli!=0&&!(_state->info.pixel_fmt&2)); - iplane=_state->ref_frame_bufs[_refi]+_pli; - stride=iplane->stride; - fullw=iplane->width+(hpadding<<1); - apix=iplane->data-hpadding; - bpix=iplane->data+(iplane->height-1)*(ptrdiff_t)stride-hpadding; - epix=apix-stride*(ptrdiff_t)vpadding; - while(apix!=epix){ - memcpy(apix-stride,apix,fullw); - memcpy(bpix+stride,bpix,fullw); - apix-=stride; - bpix+=stride; - } -} - -/*Duplicates the pixels on the border of the given reference image out into - the surrounding padding for use by unrestricted motion vectors. - _state: The context containing the reference buffers. - _refi: The index of the reference buffer to pad.*/ -void oc_state_borders_fill(oc_theora_state *_state,int _refi){ - int pli; - for(pli=0;pli<3;pli++){ - oc_state_borders_fill_rows(_state,_refi,pli,0, - _state->ref_frame_bufs[_refi][pli].height); - oc_state_borders_fill_caps(_state,_refi,pli); - } -} - -/*Determines the offsets in an image buffer to use for motion compensation. - _state: The Theora state the offsets are to be computed with. - _offsets: Returns the offset for the buffer(s). - _offsets[0] is always set. - _offsets[1] is set if the motion vector has non-zero fractional - components. - _pli: The color plane index. - _dx: The X component of the motion vector. - _dy: The Y component of the motion vector. - Return: The number of offsets returned: 1 or 2.*/ -int oc_state_get_mv_offsets(const oc_theora_state *_state,int _offsets[2], - int _pli,int _dx,int _dy){ - /*Here is a brief description of how Theora handles motion vectors: - Motion vector components are specified to half-pixel accuracy in - undecimated directions of each plane, and quarter-pixel accuracy in - decimated directions. - Integer parts are extracted by dividing (not shifting) by the - appropriate amount, with truncation towards zero. - These integer values are used to calculate the first offset. - - If either of the fractional parts are non-zero, then a second offset is - computed. - No third or fourth offsets are computed, even if both components have - non-zero fractional parts. - The second offset is computed by dividing (not shifting) by the - appropriate amount, always truncating _away_ from zero.*/ -#if 0 - /*This version of the code doesn't use any tables, but is slower.*/ - int ystride; - int xprec; - int yprec; - int xfrac; - int yfrac; - int offs; - ystride=_state->ref_ystride[_pli]; - /*These two variables decide whether we are in half- or quarter-pixel - precision in each component.*/ - xprec=1+(_pli!=0&&!(_state->info.pixel_fmt&1)); - yprec=1+(_pli!=0&&!(_state->info.pixel_fmt&2)); - /*These two variables are either 0 if all the fractional bits are zero or -1 - if any of them are non-zero.*/ - xfrac=OC_SIGNMASK(-(_dx&(xprec|1))); - yfrac=OC_SIGNMASK(-(_dy&(yprec|1))); - offs=(_dx>>xprec)+(_dy>>yprec)*ystride; - if(xfrac||yfrac){ - int xmask; - int ymask; - xmask=OC_SIGNMASK(_dx); - ymask=OC_SIGNMASK(_dy); - yfrac&=ystride; - _offsets[0]=offs-(xfrac&xmask)+(yfrac&ymask); - _offsets[1]=offs-(xfrac&~xmask)+(yfrac&~ymask); - return 2; - } - else{ - _offsets[0]=offs; - return 1; - } -#else - /*Using tables simplifies the code, and there's enough arithmetic to hide the - latencies of the memory references.*/ - static const signed char OC_MVMAP[2][64]={ - { - -15,-15,-14,-14,-13,-13,-12,-12,-11,-11,-10,-10, -9, -9, -8, - -8, -7, -7, -6, -6, -5, -5, -4, -4, -3, -3, -2, -2, -1, -1, 0, - 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, - 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, 14, 14, 15, 15 - }, - { - -7, -7, -7, -7, -6, -6, -6, -6, -5, -5, -5, -5, -4, -4, -4, - -4, -3, -3, -3, -3, -2, -2, -2, -2, -1, -1, -1, -1, 0, 0, 0, - 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, - 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 7, 7, 7, 7 - } - }; - static const signed char OC_MVMAP2[2][64]={ - { - -1, 0,-1, 0,-1, 0,-1, 0,-1, 0,-1, 0,-1, 0,-1, - 0,-1, 0,-1, 0,-1, 0,-1, 0,-1, 0,-1, 0,-1, 0,-1, - 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, - 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1 - }, - { - -1,-1,-1, 0,-1,-1,-1, 0,-1,-1,-1, 0,-1,-1,-1, - 0,-1,-1,-1, 0,-1,-1,-1, 0,-1,-1,-1, 0,-1,-1,-1, - 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, - 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1, 0, 1, 1, 1 - } - }; - int ystride; - int qpx; - int qpy; - int mx; - int my; - int mx2; - int my2; - int offs; - ystride=_state->ref_ystride[_pli]; - qpy=_pli!=0&&!(_state->info.pixel_fmt&2); - my=OC_MVMAP[qpy][_dy+31]; - my2=OC_MVMAP2[qpy][_dy+31]; - qpx=_pli!=0&&!(_state->info.pixel_fmt&1); - mx=OC_MVMAP[qpx][_dx+31]; - mx2=OC_MVMAP2[qpx][_dx+31]; - offs=my*ystride+mx; - if(mx2||my2){ - _offsets[1]=offs+my2*ystride+mx2; - _offsets[0]=offs; - return 2; - } - _offsets[0]=offs; - return 1; -#endif -} - -void oc_state_frag_recon(const oc_theora_state *_state,ptrdiff_t _fragi, - int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant){ - _state->opt_vtable.state_frag_recon(_state,_fragi,_pli,_dct_coeffs, - _last_zzi,_dc_quant); -} - -void oc_state_frag_recon_c(const oc_theora_state *_state,ptrdiff_t _fragi, - int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant){ - unsigned char *dst; - ptrdiff_t frag_buf_off; - int ystride; - int mb_mode; - /*Apply the inverse transform.*/ - /*Special case only having a DC component.*/ - if(_last_zzi<2){ - ogg_int16_t p; - int ci; - /*We round this dequant product (and not any of the others) because there's - no iDCT rounding.*/ - p=(ogg_int16_t)(_dct_coeffs[0]*(ogg_int32_t)_dc_quant+15>>5); - /*LOOP VECTORIZES.*/ - for(ci=0;ci<64;ci++)_dct_coeffs[ci]=p; - } - else{ - /*First, dequantize the DC coefficient.*/ - _dct_coeffs[0]=(ogg_int16_t)(_dct_coeffs[0]*(int)_dc_quant); - oc_idct8x8(_state,_dct_coeffs,_last_zzi); - } - /*Fill in the target buffer.*/ - frag_buf_off=_state->frag_buf_offs[_fragi]; - mb_mode=_state->frags[_fragi].mb_mode; - ystride=_state->ref_ystride[_pli]; - dst=_state->ref_frame_data[_state->ref_frame_idx[OC_FRAME_SELF]]+frag_buf_off; - if(mb_mode==OC_MODE_INTRA)oc_frag_recon_intra(_state,dst,ystride,_dct_coeffs); - else{ - const unsigned char *ref; - int mvoffsets[2]; - ref= - _state->ref_frame_data[_state->ref_frame_idx[OC_FRAME_FOR_MODE(mb_mode)]] - +frag_buf_off; - if(oc_state_get_mv_offsets(_state,mvoffsets,_pli, - _state->frag_mvs[_fragi][0],_state->frag_mvs[_fragi][1])>1){ - oc_frag_recon_inter2(_state, - dst,ref+mvoffsets[0],ref+mvoffsets[1],ystride,_dct_coeffs); - } - else oc_frag_recon_inter(_state,dst,ref+mvoffsets[0],ystride,_dct_coeffs); - } -} - -/*Copies the fragments specified by the lists of fragment indices from one - frame to another. - _fragis: A pointer to a list of fragment indices. - _nfragis: The number of fragment indices to copy. - _dst_frame: The reference frame to copy to. - _src_frame: The reference frame to copy from. - _pli: The color plane the fragments lie in.*/ -void oc_state_frag_copy_list(const oc_theora_state *_state, - const ptrdiff_t *_fragis,ptrdiff_t _nfragis, - int _dst_frame,int _src_frame,int _pli){ - _state->opt_vtable.state_frag_copy_list(_state,_fragis,_nfragis,_dst_frame, - _src_frame,_pli); -} - -void oc_state_frag_copy_list_c(const oc_theora_state *_state, - const ptrdiff_t *_fragis,ptrdiff_t _nfragis, - int _dst_frame,int _src_frame,int _pli){ - const ptrdiff_t *frag_buf_offs; - const unsigned char *src_frame_data; - unsigned char *dst_frame_data; - ptrdiff_t fragii; - int ystride; - dst_frame_data=_state->ref_frame_data[_state->ref_frame_idx[_dst_frame]]; - src_frame_data=_state->ref_frame_data[_state->ref_frame_idx[_src_frame]]; - ystride=_state->ref_ystride[_pli]; - frag_buf_offs=_state->frag_buf_offs; - for(fragii=0;fragii<_nfragis;fragii++){ - ptrdiff_t frag_buf_off; - frag_buf_off=frag_buf_offs[_fragis[fragii]]; - oc_frag_copy(_state,dst_frame_data+frag_buf_off, - src_frame_data+frag_buf_off,ystride); - } -} - -static void loop_filter_h(unsigned char *_pix,int _ystride,int *_bv){ - int y; - _pix-=2; - for(y=0;y<8;y++){ - int f; - f=_pix[0]-_pix[3]+3*(_pix[2]-_pix[1]); - /*The _bv array is used to compute the function - f=OC_CLAMPI(OC_MINI(-_2flimit-f,0),f,OC_MAXI(_2flimit-f,0)); - where _2flimit=_state->loop_filter_limits[_state->qis[0]]<<1;*/ - f=*(_bv+(f+4>>3)); - _pix[1]=OC_CLAMP255(_pix[1]+f); - _pix[2]=OC_CLAMP255(_pix[2]-f); - _pix+=_ystride; - } -} - -static void loop_filter_v(unsigned char *_pix,int _ystride,int *_bv){ - int x; - _pix-=_ystride*2; - for(x=0;x<8;x++){ - int f; - f=_pix[x]-_pix[_ystride*3+x]+3*(_pix[_ystride*2+x]-_pix[_ystride+x]); - /*The _bv array is used to compute the function - f=OC_CLAMPI(OC_MINI(-_2flimit-f,0),f,OC_MAXI(_2flimit-f,0)); - where _2flimit=_state->loop_filter_limits[_state->qis[0]]<<1;*/ - f=*(_bv+(f+4>>3)); - _pix[_ystride+x]=OC_CLAMP255(_pix[_ystride+x]+f); - _pix[_ystride*2+x]=OC_CLAMP255(_pix[_ystride*2+x]-f); - } -} - -/*Initialize the bounding values array used by the loop filter. - _bv: Storage for the array. - Return: 0 on success, or a non-zero value if no filtering need be applied.*/ -int oc_state_loop_filter_init(oc_theora_state *_state,int _bv[256]){ - int flimit; - int i; - flimit=_state->loop_filter_limits[_state->qis[0]]; - if(flimit==0)return 1; - memset(_bv,0,sizeof(_bv[0])*256); - for(i=0;i=0)_bv[127-i-flimit]=i-flimit; - _bv[127-i]=-i; - _bv[127+i]=i; - if(127+i+flimit<256)_bv[127+i+flimit]=flimit-i; - } - return 0; -} - -/*Apply the loop filter to a given set of fragment rows in the given plane. - The filter may be run on the bottom edge, affecting pixels in the next row of - fragments, so this row also needs to be available. - _bv: The bounding values array. - _refi: The index of the frame buffer to filter. - _pli: The color plane to filter. - _fragy0: The Y coordinate of the first fragment row to filter. - _fragy_end: The Y coordinate of the fragment row to stop filtering at.*/ -void oc_state_loop_filter_frag_rows(const oc_theora_state *_state,int _bv[256], - int _refi,int _pli,int _fragy0,int _fragy_end){ - _state->opt_vtable.state_loop_filter_frag_rows(_state,_bv,_refi,_pli, - _fragy0,_fragy_end); -} - -void oc_state_loop_filter_frag_rows_c(const oc_theora_state *_state,int *_bv, - int _refi,int _pli,int _fragy0,int _fragy_end){ - const oc_fragment_plane *fplane; - const oc_fragment *frags; - const ptrdiff_t *frag_buf_offs; - unsigned char *ref_frame_data; - ptrdiff_t fragi_top; - ptrdiff_t fragi_bot; - ptrdiff_t fragi0; - ptrdiff_t fragi0_end; - int ystride; - int nhfrags; - _bv+=127; - fplane=_state->fplanes+_pli; - nhfrags=fplane->nhfrags; - fragi_top=fplane->froffset; - fragi_bot=fragi_top+fplane->nfrags; - fragi0=fragi_top+_fragy0*(ptrdiff_t)nhfrags; - fragi0_end=fragi0+(_fragy_end-_fragy0)*(ptrdiff_t)nhfrags; - ystride=_state->ref_ystride[_pli]; - frags=_state->frags; - frag_buf_offs=_state->frag_buf_offs; - ref_frame_data=_state->ref_frame_data[_refi]; - /*The following loops are constructed somewhat non-intuitively on purpose. - The main idea is: if a block boundary has at least one coded fragment on - it, the filter is applied to it. - However, the order that the filters are applied in matters, and VP3 chose - the somewhat strange ordering used below.*/ - while(fragi0fragi0)loop_filter_h(ref,ystride,_bv); - if(fragi0>fragi_top)loop_filter_v(ref,ystride,_bv); - if(fragi+1info.frame_width; - height=_state->info.frame_height; - iframe=_state->granpos>>_state->info.keyframe_granule_shift; - pframe=_state->granpos-(iframe<<_state->info.keyframe_granule_shift); - sprintf(fname,"%08i%s.png",(int)(iframe+pframe),_suf); - fp=fopen(fname,"wb"); - if(fp==NULL)return TH_EFAULT; - image=(png_bytep *)oc_malloc_2d(height,6*width,sizeof(**image)); - if(image==NULL){ - fclose(fp); - return TH_EFAULT; - } - png=png_create_write_struct(PNG_LIBPNG_VER_STRING,NULL,NULL,NULL); - if(png==NULL){ - oc_free_2d(image); - fclose(fp); - return TH_EFAULT; - } - info=png_create_info_struct(png); - if(info==NULL){ - png_destroy_write_struct(&png,NULL); - oc_free_2d(image); - fclose(fp); - return TH_EFAULT; - } - if(setjmp(png_jmpbuf(png))){ - png_destroy_write_struct(&png,&info); - oc_free_2d(image); - fclose(fp); - return TH_EFAULT; - } - framei=_state->ref_frame_idx[_frame]; - y_row=_state->ref_frame_bufs[framei][0].data; - u_row=_state->ref_frame_bufs[framei][1].data; - v_row=_state->ref_frame_bufs[framei][2].data; - y_stride=_state->ref_frame_bufs[framei][0].stride; - u_stride=_state->ref_frame_bufs[framei][1].stride; - v_stride=_state->ref_frame_bufs[framei][2].stride; - /*Chroma up-sampling is just done with a box filter. - This is very likely what will actually be used in practice on a real - display, and also removes one more layer to search in for the source of - artifacts. - As an added bonus, it's dead simple.*/ - for(imgi=height;imgi-->0;){ - int dc; - y=y_row; - u=u_row; - v=v_row; - for(imgj=0;imgj<6*width;){ - float yval; - float uval; - float vval; - unsigned rval; - unsigned gval; - unsigned bval; - /*This is intentionally slow and very accurate.*/ - yval=(*y-16)*(1.0F/219); - uval=(*u-128)*(2*(1-0.114F)/224); - vval=(*v-128)*(2*(1-0.299F)/224); - rval=OC_CLAMPI(0,(int)(65535*(yval+vval)+0.5F),65535); - gval=OC_CLAMPI(0,(int)(65535*( - yval-uval*(0.114F/0.587F)-vval*(0.299F/0.587F))+0.5F),65535); - bval=OC_CLAMPI(0,(int)(65535*(yval+uval)+0.5F),65535); - image[imgi][imgj++]=(unsigned char)(rval>>8); - image[imgi][imgj++]=(unsigned char)(rval&0xFF); - image[imgi][imgj++]=(unsigned char)(gval>>8); - image[imgi][imgj++]=(unsigned char)(gval&0xFF); - image[imgi][imgj++]=(unsigned char)(bval>>8); - image[imgi][imgj++]=(unsigned char)(bval&0xFF); - dc=(y-y_row&1)|(_state->info.pixel_fmt&1); - y++; - u+=dc; - v+=dc; - } - dc=-((height-1-imgi&1)|_state->info.pixel_fmt>>1); - y_row+=y_stride; - u_row+=dc&u_stride; - v_row+=dc&v_stride; - } - png_init_io(png,fp); - png_set_compression_level(png,Z_BEST_COMPRESSION); - png_set_IHDR(png,info,width,height,16,PNG_COLOR_TYPE_RGB, - PNG_INTERLACE_NONE,PNG_COMPRESSION_TYPE_DEFAULT,PNG_FILTER_TYPE_DEFAULT); - switch(_state->info.colorspace){ - case TH_CS_ITU_REC_470M:{ - png_set_gAMA(png,info,2.2); - png_set_cHRM_fixed(png,info,31006,31616, - 67000,32000,21000,71000,14000,8000); - }break; - case TH_CS_ITU_REC_470BG:{ - png_set_gAMA(png,info,2.67); - png_set_cHRM_fixed(png,info,31271,32902, - 64000,33000,29000,60000,15000,6000); - }break; - default:break; - } - png_set_pHYs(png,info,_state->info.aspect_numerator, - _state->info.aspect_denominator,0); - png_set_rows(png,info,image); - png_write_png(png,info,PNG_TRANSFORM_IDENTITY,NULL); - png_write_end(png,info); - png_destroy_write_struct(&png,&info); - oc_free_2d(image); - fclose(fp); - return 0; -} -#endif - - - -ogg_int64_t th_granule_frame(void *_encdec,ogg_int64_t _granpos){ - oc_theora_state *state; - state=(oc_theora_state *)_encdec; - if(_granpos>=0){ - ogg_int64_t iframe; - ogg_int64_t pframe; - iframe=_granpos>>state->info.keyframe_granule_shift; - pframe=_granpos-(iframe<info.keyframe_granule_shift); - /*3.2.0 streams store the frame index in the granule position. - 3.2.1 and later store the frame count. - We return the index, so adjust the value if we have a 3.2.1 or later - stream.*/ - return iframe+pframe-TH_VERSION_CHECK(&state->info,3,2,1); - } - return -1; -} - -double th_granule_time(void *_encdec,ogg_int64_t _granpos){ - oc_theora_state *state; - state=(oc_theora_state *)_encdec; - if(_granpos>=0){ - return (th_granule_frame(_encdec, _granpos)+1)*( - (double)state->info.fps_denominator/state->info.fps_numerator); - } - return -1; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theora.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theora.h deleted file mode 100644 index af6eb6f3..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theora.h +++ /dev/null @@ -1,784 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: theora.h,v 1.17 2003/12/06 18:06:19 arc Exp $ - - ********************************************************************/ - -#ifndef _O_THEORA_H_ -#define _O_THEORA_H_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include /* for size_t */ - -#include - -/** \file - * The libtheora pre-1.0 legacy C API. - * - * \ingroup oldfuncs - * - * \section intro Introduction - * - * This is the documentation for the libtheora legacy C API, declared in - * the theora.h header, which describes the old interface used before - * the 1.0 release. This API was widely deployed for several years and - * remains supported, but for new code we recommend the cleaner API - * declared in theoradec.h and theoraenc.h. - * - * libtheora is the reference implementation for - * Theora, a free video codec. - * Theora is derived from On2's VP3 codec with improved integration with - * Ogg multimedia formats by Xiph.Org. - * - * \section overview Overview - * - * This library will both decode and encode theora packets to/from raw YUV - * frames. In either case, the packets will most likely either come from or - * need to be embedded in an Ogg stream. Use - * libogg or - * liboggz - * to extract/package these packets. - * - * \section decoding Decoding Process - * - * Decoding can be separated into the following steps: - * -# initialise theora_info and theora_comment structures using - * theora_info_init() and theora_comment_init(): - \verbatim - theora_info info; - theora_comment comment; - - theora_info_init(&info); - theora_comment_init(&comment); - \endverbatim - * -# retrieve header packets from Ogg stream (there should be 3) and decode - * into theora_info and theora_comment structures using - * theora_decode_header(). See \ref identification for more information on - * identifying which packets are theora packets. - \verbatim - int i; - for (i = 0; i < 3; i++) - { - (get a theora packet "op" from the Ogg stream) - theora_decode_header(&info, &comment, op); - } - \endverbatim - * -# initialise the decoder based on the information retrieved into the - * theora_info struct by theora_decode_header(). You will need a - * theora_state struct. - \verbatim - theora_state state; - - theora_decode_init(&state, &info); - \endverbatim - * -# pass in packets and retrieve decoded frames! See the yuv_buffer - * documentation for information on how to retrieve raw YUV data. - \verbatim - yuf_buffer buffer; - while (last packet was not e_o_s) { - (get a theora packet "op" from the Ogg stream) - theora_decode_packetin(&state, op); - theora_decode_YUVout(&state, &buffer); - } - \endverbatim - * - * - * \subsection identification Identifying Theora Packets - * - * All streams inside an Ogg file have a unique serial_no attached to the - * stream. Typically, you will want to - * - retrieve the serial_no for each b_o_s (beginning of stream) page - * encountered within the Ogg file; - * - test the first (only) packet on that page to determine if it is a theora - * packet; - * - once you have found a theora b_o_s page then use the retrieved serial_no - * to identify future packets belonging to the same theora stream. - * - * Note that you \e cannot use theora_packet_isheader() to determine if a - * packet is a theora packet or not, as this function does not perform any - * checking beyond whether a header bit is present. Instead, use the - * theora_decode_header() function and check the return value; or examine the - * header bytes at the beginning of the Ogg page. - */ - - -/** \defgroup oldfuncs Legacy pre-1.0 C API */ -/* @{ */ - -/** - * A YUV buffer for passing uncompressed frames to and from the codec. - * This holds a Y'CbCr frame in planar format. The CbCr planes can be - * subsampled and have their own separate dimensions and row stride - * offsets. Note that the strides may be negative in some - * configurations. For theora the width and height of the largest plane - * must be a multiple of 16. The actual meaningful picture size and - * offset are stored in the theora_info structure; frames returned by - * the decoder may need to be cropped for display. - * - * All samples are 8 bits. Within each plane samples are ordered by - * row from the top of the frame to the bottom. Within each row samples - * are ordered from left to right. - * - * During decode, the yuv_buffer struct is allocated by the user, but all - * fields (including luma and chroma pointers) are filled by the library. - * These pointers address library-internal memory and their contents should - * not be modified. - * - * Conversely, during encode the user allocates the struct and fills out all - * fields. The user also manages the data addressed by the luma and chroma - * pointers. See the encoder_example.c and dump_video.c example files in - * theora/examples/ for more information. - */ -typedef struct { - int y_width; /**< Width of the Y' luminance plane */ - int y_height; /**< Height of the luminance plane */ - int y_stride; /**< Offset in bytes between successive rows */ - - int uv_width; /**< Width of the Cb and Cr chroma planes */ - int uv_height; /**< Height of the chroma planes */ - int uv_stride; /**< Offset between successive chroma rows */ - unsigned char *y; /**< Pointer to start of luminance data */ - unsigned char *u; /**< Pointer to start of Cb data */ - unsigned char *v; /**< Pointer to start of Cr data */ - -} yuv_buffer; - -/** - * A Colorspace. - */ -typedef enum { - OC_CS_UNSPECIFIED, /**< The colorspace is unknown or unspecified */ - OC_CS_ITU_REC_470M, /**< This is the best option for 'NTSC' content */ - OC_CS_ITU_REC_470BG, /**< This is the best option for 'PAL' content */ - OC_CS_NSPACES /**< This marks the end of the defined colorspaces */ -} theora_colorspace; - -/** - * A Chroma subsampling - * - * These enumerate the available chroma subsampling options supported - * by the theora format. See Section 4.4 of the specification for - * exact definitions. - */ -typedef enum { - OC_PF_420, /**< Chroma subsampling by 2 in each direction (4:2:0) */ - OC_PF_RSVD, /**< Reserved value */ - OC_PF_422, /**< Horizonatal chroma subsampling by 2 (4:2:2) */ - OC_PF_444, /**< No chroma subsampling at all (4:4:4) */ -} theora_pixelformat; - -/** - * Theora bitstream info. - * Contains the basic playback parameters for a stream, - * corresponding to the initial 'info' header packet. - * - * Encoded theora frames must be a multiple of 16 in width and height. - * To handle other frame sizes, a crop rectangle is specified in - * frame_height and frame_width, offset_x and * offset_y. The offset - * and size should still be a multiple of 2 to avoid chroma sampling - * shifts. Offset values in this structure are measured from the - * upper left of the image. - * - * Frame rate, in frames per second, is stored as a rational - * fraction. Aspect ratio is also stored as a rational fraction, and - * refers to the aspect ratio of the frame pixels, not of the - * overall frame itself. - * - * See - * examples/encoder_example.c for usage examples of the - * other paramters and good default settings for the encoder parameters. - */ -typedef struct { - ogg_uint32_t width; /**< encoded frame width */ - ogg_uint32_t height; /**< encoded frame height */ - ogg_uint32_t frame_width; /**< display frame width */ - ogg_uint32_t frame_height; /**< display frame height */ - ogg_uint32_t offset_x; /**< horizontal offset of the displayed frame */ - ogg_uint32_t offset_y; /**< vertical offset of the displayed frame */ - ogg_uint32_t fps_numerator; /**< frame rate numerator **/ - ogg_uint32_t fps_denominator; /**< frame rate denominator **/ - ogg_uint32_t aspect_numerator; /**< pixel aspect ratio numerator */ - ogg_uint32_t aspect_denominator; /**< pixel aspect ratio denominator */ - theora_colorspace colorspace; /**< colorspace */ - int target_bitrate; /**< nominal bitrate in bits per second */ - int quality; /**< Nominal quality setting, 0-63 */ - int quick_p; /**< Quick encode/decode */ - - /* decode only */ - unsigned char version_major; - unsigned char version_minor; - unsigned char version_subminor; - - void *codec_setup; - - /* encode only */ - int dropframes_p; - int keyframe_auto_p; - ogg_uint32_t keyframe_frequency; - ogg_uint32_t keyframe_frequency_force; /* also used for decode init to - get granpos shift correct */ - ogg_uint32_t keyframe_data_target_bitrate; - ogg_int32_t keyframe_auto_threshold; - ogg_uint32_t keyframe_mindistance; - ogg_int32_t noise_sensitivity; - ogg_int32_t sharpness; - - theora_pixelformat pixelformat; /**< chroma subsampling mode to expect */ - -} theora_info; - -/** Codec internal state and context. - */ -typedef struct{ - theora_info *i; - ogg_int64_t granulepos; - - void *internal_encode; - void *internal_decode; - -} theora_state; - -/** - * Comment header metadata. - * - * This structure holds the in-stream metadata corresponding to - * the 'comment' header packet. - * - * Meta data is stored as a series of (tag, value) pairs, in - * length-encoded string vectors. The first occurence of the - * '=' character delimits the tag and value. A particular tag - * may occur more than once. The character set encoding for - * the strings is always UTF-8, but the tag names are limited - * to case-insensitive ASCII. See the spec for details. - * - * In filling in this structure, theora_decode_header() will - * null-terminate the user_comment strings for safety. However, - * the bitstream format itself treats them as 8-bit clean, - * and so the length array should be treated as authoritative - * for their length. - */ -typedef struct theora_comment{ - char **user_comments; /**< An array of comment string vectors */ - int *comment_lengths; /**< An array of corresponding string vector lengths in bytes */ - int comments; /**< The total number of comment string vectors */ - char *vendor; /**< The vendor string identifying the encoder, null terminated */ - -} theora_comment; - - -/**\name theora_control() codes */ -/* \anchor decctlcodes_old - * These are the available request codes for theora_control() - * when called with a decoder instance. - * By convention decoder control codes are odd, to distinguish - * them from \ref encctlcodes_old "encoder control codes" which - * are even. - * - * Note that since the 1.0 release, both the legacy and the final - * implementation accept all the same control codes, but only the - * final API declares the newer codes. - * - * Keep any experimental or vendor-specific values above \c 0x8000.*/ - -/*@{*/ - -/**Get the maximum post-processing level. - * The decoder supports a post-processing filter that can improve - * the appearance of the decoded images. This returns the highest - * level setting for this post-processor, corresponding to maximum - * improvement and computational expense. - */ -#define TH_DECCTL_GET_PPLEVEL_MAX (1) - -/**Set the post-processing level. - * Sets the level of post-processing to use when decoding the - * compressed stream. This must be a value between zero (off) - * and the maximum returned by TH_DECCTL_GET_PPLEVEL_MAX. - */ -#define TH_DECCTL_SET_PPLEVEL (3) - -/**Sets the maximum distance between key frames. - * This can be changed during an encode, but will be bounded by - * 1<. - * If it is set before encoding begins, th_info#keyframe_granule_shift will - * be enlarged appropriately. - * - * \param[in] buf ogg_uint32_t: The maximum distance between key - * frames. - * \param[out] buf ogg_uint32_t: The actual maximum distance set. - * \retval OC_FAULT \a theora_state or \a buf is NULL. - * \retval OC_EINVAL \a buf_sz is not sizeof(ogg_uint32_t). - * \retval OC_IMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4) - -/**Set the granule position. - * Call this after a seek, to update the internal granulepos - * in the decoder, to insure that subsequent frames are marked - * properly. If you track timestamps yourself and do not use - * the granule postion returned by the decoder, then you do - * not need to use this control. - */ -#define TH_DECCTL_SET_GRANPOS (5) - -/**\anchor encctlcodes_old */ - -/**Sets the quantization parameters to use. - * The parameters are copied, not stored by reference, so they can be freed - * after this call. - * NULL may be specified to revert to the default parameters. - * - * \param[in] buf #th_quant_info - * \retval OC_FAULT \a theora_state is NULL. - * \retval OC_EINVAL Encoding has already begun, the quantization parameters - * are not acceptable to this version of the encoder, - * \a buf is NULL and \a buf_sz is not zero, - * or \a buf is non-NULL and \a buf_sz is - * not sizeof(#th_quant_info). - * \retval OC_IMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_QUANT_PARAMS (2) - -/**Disables any encoder features that would prevent lossless transcoding back - * to VP3. - * This primarily means disabling block-level QI values and not using 4MV mode - * when any of the luma blocks in a macro block are not coded. - * It also includes using the VP3 quantization tables and Huffman codes; if you - * set them explicitly after calling this function, the resulting stream will - * not be VP3-compatible. - * If you enable VP3-compatibility when encoding 4:2:2 or 4:4:4 source - * material, or when using a picture region smaller than the full frame (e.g. - * a non-multiple-of-16 width or height), then non-VP3 bitstream features will - * still be disabled, but the stream will still not be VP3-compatible, as VP3 - * was not capable of encoding such formats. - * If you call this after encoding has already begun, then the quantization - * tables and codebooks cannot be changed, but the frame-level features will - * be enabled or disabled as requested. - * - * \param[in] buf int: a non-zero value to enable VP3 compatibility, - * or 0 to disable it (the default). - * \param[out] buf int: 1 if all bitstream features required for - * VP3-compatibility could be set, and 0 otherwise. - * The latter will be returned if the pixel format is not - * 4:2:0, the picture region is smaller than the full frame, - * or if encoding has begun, preventing the quantization - * tables and codebooks from being set. - * \retval OC_FAULT \a theora_state or \a buf is NULL. - * \retval OC_EINVAL \a buf_sz is not sizeof(int). - * \retval OC_IMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_VP3_COMPATIBLE (10) - -/**Gets the maximum speed level. - * Higher speed levels favor quicker encoding over better quality per bit. - * Depending on the encoding mode, and the internal algorithms used, quality - * may actually improve, but in this case bitrate will also likely increase. - * In any case, overall rate/distortion performance will probably decrease. - * The maximum value, and the meaning of each value, may change depending on - * the current encoding mode (VBR vs. CQI, etc.). - * - * \param[out] buf int: The maximum encoding speed level. - * \retval OC_FAULT \a theora_state or \a buf is NULL. - * \retval OC_EINVAL \a buf_sz is not sizeof(int). - * \retval OC_IMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_GET_SPLEVEL_MAX (12) - -/**Sets the speed level. - * By default a speed value of 1 is used. - * - * \param[in] buf int: The new encoding speed level. - * 0 is slowest, larger values use less CPU. - * \retval OC_FAULT \a theora_state or \a buf is NULL. - * \retval OC_EINVAL \a buf_sz is not sizeof(int), or the - * encoding speed level is out of bounds. - * The maximum encoding speed level may be - * implementation- and encoding mode-specific, and can be - * obtained via #TH_ENCCTL_GET_SPLEVEL_MAX. - * \retval OC_IMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_SET_SPLEVEL (14) - -/*@}*/ - -#define OC_FAULT -1 /**< General failure */ -#define OC_EINVAL -10 /**< Library encountered invalid internal data */ -#define OC_DISABLED -11 /**< Requested action is disabled */ -#define OC_BADHEADER -20 /**< Header packet was corrupt/invalid */ -#define OC_NOTFORMAT -21 /**< Packet is not a theora packet */ -#define OC_VERSION -22 /**< Bitstream version is not handled */ -#define OC_IMPL -23 /**< Feature or action not implemented */ -#define OC_BADPACKET -24 /**< Packet is corrupt */ -#define OC_NEWPACKET -25 /**< Packet is an (ignorable) unhandled extension */ -#define OC_DUPFRAME 1 /**< Packet is a dropped frame */ - -/** - * Retrieve a human-readable string to identify the encoder vendor and version. - * \returns A version string. - */ -extern const char *theora_version_string(void); - -/** - * Retrieve a 32-bit version number. - * This number is composed of a 16-bit major version, 8-bit minor version - * and 8 bit sub-version, composed as follows: -
-   (VERSION_MAJOR<<16) + (VERSION_MINOR<<8) + (VERSION_SUB)
-
-* \returns The version number. -*/ -extern ogg_uint32_t theora_version_number(void); - -/** - * Initialize the theora encoder. - * \param th The theora_state handle to initialize for encoding. - * \param ti A theora_info struct filled with the desired encoding parameters. - * \retval 0 Success - */ -extern int theora_encode_init(theora_state *th, theora_info *ti); - -/** - * Submit a YUV buffer to the theora encoder. - * \param t A theora_state handle previously initialized for encoding. - * \param yuv A buffer of YUV data to encode. Note that both the yuv_buffer - * struct and the luma/chroma buffers within should be allocated by - * the user. - * \retval OC_EINVAL Encoder is not ready, or is finished. - * \retval -1 The size of the given frame differs from those previously input - * \retval 0 Success - */ -extern int theora_encode_YUVin(theora_state *t, yuv_buffer *yuv); - -/** - * Request the next packet of encoded video. - * The encoded data is placed in a user-provided ogg_packet structure. - * \param t A theora_state handle previously initialized for encoding. - * \param last_p whether this is the last packet the encoder should produce. - * \param op An ogg_packet structure to fill. libtheora will set all - * elements of this structure, including a pointer to encoded - * data. The memory for the encoded data is owned by libtheora. - * \retval 0 No internal storage exists OR no packet is ready - * \retval -1 The encoding process has completed - * \retval 1 Success - */ -extern int theora_encode_packetout( theora_state *t, int last_p, - ogg_packet *op); - -/** - * Request a packet containing the initial header. - * A pointer to the header data is placed in a user-provided ogg_packet - * structure. - * \param t A theora_state handle previously initialized for encoding. - * \param op An ogg_packet structure to fill. libtheora will set all - * elements of this structure, including a pointer to the header - * data. The memory for the header data is owned by libtheora. - * \retval 0 Success - */ -extern int theora_encode_header(theora_state *t, ogg_packet *op); - -/** - * Request a comment header packet from provided metadata. - * A pointer to the comment data is placed in a user-provided ogg_packet - * structure. - * \param tc A theora_comment structure filled with the desired metadata - * \param op An ogg_packet structure to fill. libtheora will set all - * elements of this structure, including a pointer to the encoded - * comment data. The memory for the comment data is owned by - * libtheora. - * \retval 0 Success - */ -extern int theora_encode_comment(theora_comment *tc, ogg_packet *op); - -/** - * Request a packet containing the codebook tables for the stream. - * A pointer to the codebook data is placed in a user-provided ogg_packet - * structure. - * \param t A theora_state handle previously initialized for encoding. - * \param op An ogg_packet structure to fill. libtheora will set all - * elements of this structure, including a pointer to the codebook - * data. The memory for the header data is owned by libtheora. - * \retval 0 Success - */ -extern int theora_encode_tables(theora_state *t, ogg_packet *op); - -/** - * Decode an Ogg packet, with the expectation that the packet contains - * an initial header, comment data or codebook tables. - * - * \param ci A theora_info structure to fill. This must have been previously - * initialized with theora_info_init(). If \a op contains an initial - * header, theora_decode_header() will fill \a ci with the - * parsed header values. If \a op contains codebook tables, - * theora_decode_header() will parse these and attach an internal - * representation to \a ci->codec_setup. - * \param cc A theora_comment structure to fill. If \a op contains comment - * data, theora_decode_header() will fill \a cc with the parsed - * comments. - * \param op An ogg_packet structure which you expect contains an initial - * header, comment data or codebook tables. - * - * \retval OC_BADHEADER \a op is NULL; OR the first byte of \a op->packet - * has the signature of an initial packet, but op is - * not a b_o_s packet; OR this packet has the signature - * of an initial header packet, but an initial header - * packet has already been seen; OR this packet has the - * signature of a comment packet, but the initial header - * has not yet been seen; OR this packet has the signature - * of a comment packet, but contains invalid data; OR - * this packet has the signature of codebook tables, - * but the initial header or comments have not yet - * been seen; OR this packet has the signature of codebook - * tables, but contains invalid data; - * OR the stream being decoded has a compatible version - * but this packet does not have the signature of a - * theora initial header, comments, or codebook packet - * \retval OC_VERSION The packet data of \a op is an initial header with - * a version which is incompatible with this version of - * libtheora. - * \retval OC_NEWPACKET the stream being decoded has an incompatible (future) - * version and contains an unknown signature. - * \retval 0 Success - * - * \note The normal usage is that theora_decode_header() be called on the - * first three packets of a theora logical bitstream in succession. - */ -extern int theora_decode_header(theora_info *ci, theora_comment *cc, - ogg_packet *op); - -/** - * Initialize a theora_state handle for decoding. - * \param th The theora_state handle to initialize. - * \param c A theora_info struct filled with the desired decoding parameters. - * This is of course usually obtained from a previous call to - * theora_decode_header(). - * \retval 0 Success - */ -extern int theora_decode_init(theora_state *th, theora_info *c); - -/** - * Input a packet containing encoded data into the theora decoder. - * \param th A theora_state handle previously initialized for decoding. - * \param op An ogg_packet containing encoded theora data. - * \retval 0 Success - * \retval OC_BADPACKET \a op does not contain encoded video data - */ -extern int theora_decode_packetin(theora_state *th,ogg_packet *op); - -/** - * Output the next available frame of decoded YUV data. - * \param th A theora_state handle previously initialized for decoding. - * \param yuv A yuv_buffer in which libtheora should place the decoded data. - * Note that the buffer struct itself is allocated by the user, but - * that the luma and chroma pointers will be filled in by the - * library. Also note that these luma and chroma regions should be - * considered read-only by the user. - * \retval 0 Success - */ -extern int theora_decode_YUVout(theora_state *th,yuv_buffer *yuv); - -/** - * Report whether a theora packet is a header or not - * This function does no verification beyond checking the header - * flag bit so it should not be used for bitstream identification; - * use theora_decode_header() for that. - * - * \param op An ogg_packet containing encoded theora data. - * \retval 1 The packet is a header packet - * \retval 0 The packet is not a header packet (and so contains frame data) - * - * Thus function was added in the 1.0alpha4 release. - */ -extern int theora_packet_isheader(ogg_packet *op); - -/** - * Report whether a theora packet is a keyframe or not - * - * \param op An ogg_packet containing encoded theora data. - * \retval 1 The packet contains a keyframe image - * \retval 0 The packet is contains an interframe delta - * \retval -1 The packet is not an image data packet at all - * - * Thus function was added in the 1.0alpha4 release. - */ -extern int theora_packet_iskeyframe(ogg_packet *op); - -/** - * Report the granulepos shift radix - * - * When embedded in Ogg, Theora uses a two-part granulepos, - * splitting the 64-bit field into two pieces. The more-significant - * section represents the frame count at the last keyframe, - * and the less-significant section represents the count of - * frames since the last keyframe. In this way the overall - * field is still non-decreasing with time, but usefully encodes - * a pointer to the last keyframe, which is necessary for - * correctly restarting decode after a seek. - * - * This function reports the number of bits used to represent - * the distance to the last keyframe, and thus how the granulepos - * field must be shifted or masked to obtain the two parts. - * - * Since libtheora returns compressed data in an ogg_packet - * structure, this may be generally useful even if the Theora - * packets are not being used in an Ogg container. - * - * \param ti A previously initialized theora_info struct - * \returns The bit shift dividing the two granulepos fields - * - * This function was added in the 1.0alpha5 release. - */ -int theora_granule_shift(theora_info *ti); - -/** - * Convert a granulepos to an absolute frame index, starting at 0. - * The granulepos is interpreted in the context of a given theora_state handle. - * - * Note that while the granulepos encodes the frame count (i.e. starting - * from 1) this call returns the frame index, starting from zero. Thus - * One can calculate the presentation time by multiplying the index by - * the rate. - * - * \param th A previously initialized theora_state handle (encode or decode) - * \param granulepos The granulepos to convert. - * \returns The frame index corresponding to \a granulepos. - * \retval -1 The given granulepos is undefined (i.e. negative) - * - * Thus function was added in the 1.0alpha4 release. - */ -extern ogg_int64_t theora_granule_frame(theora_state *th,ogg_int64_t granulepos); - -/** - * Convert a granulepos to absolute time in seconds. The granulepos is - * interpreted in the context of a given theora_state handle, and gives - * the end time of a frame's presentation as used in Ogg mux ordering. - * - * \param th A previously initialized theora_state handle (encode or decode) - * \param granulepos The granulepos to convert. - * \returns The absolute time in seconds corresponding to \a granulepos. - * This is the "end time" for the frame, or the latest time it should - * be displayed. - * It is not the presentation time. - * \retval -1. The given granulepos is undefined (i.e. negative), or - * \retval -1. The function has been disabled because floating - * point support is not available. - */ -extern double theora_granule_time(theora_state *th,ogg_int64_t granulepos); - -/** - * Initialize a theora_info structure. All values within the given theora_info - * structure are initialized, and space is allocated within libtheora for - * internal codec setup data. - * \param c A theora_info struct to initialize. - */ -extern void theora_info_init(theora_info *c); - -/** - * Clear a theora_info structure. All values within the given theora_info - * structure are cleared, and associated internal codec setup data is freed. - * \param c A theora_info struct to initialize. - */ -extern void theora_info_clear(theora_info *c); - -/** - * Free all internal data associated with a theora_state handle. - * \param t A theora_state handle. - */ -extern void theora_clear(theora_state *t); - -/** - * Initialize an allocated theora_comment structure - * \param tc An allocated theora_comment structure - **/ -extern void theora_comment_init(theora_comment *tc); - -/** - * Add a comment to an initialized theora_comment structure - * \param tc A previously initialized theora comment structure - * \param comment A null-terminated string encoding the comment in the form - * "TAG=the value" - * - * Neither theora_comment_add() nor theora_comment_add_tag() support - * comments containing null values, although the bitstream format - * supports this. To add such comments you will need to manipulate - * the theora_comment structure directly. - **/ - -extern void theora_comment_add(theora_comment *tc, char *comment); - -/** - * Add a comment to an initialized theora_comment structure. - * \param tc A previously initialized theora comment structure - * \param tag A null-terminated string containing the tag - * associated with the comment. - * \param value The corresponding value as a null-terminated string - * - * Neither theora_comment_add() nor theora_comment_add_tag() support - * comments containing null values, although the bitstream format - * supports this. To add such comments you will need to manipulate - * the theora_comment structure directly. - **/ -extern void theora_comment_add_tag(theora_comment *tc, - char *tag, char *value); - -/** - * Look up a comment value by tag. - * \param tc Tn initialized theora_comment structure - * \param tag The tag to look up - * \param count The instance of the tag. The same tag can appear multiple - * times, each with a distinct and ordered value, so an index - * is required to retrieve them all. - * \returns A pointer to the queried tag's value - * \retval NULL No matching tag is found - * - * \note Use theora_comment_query_count() to get the legal range for the - * count parameter. - **/ - -extern char *theora_comment_query(theora_comment *tc, char *tag, int count); - -/** Look up the number of instances of a tag. - * \param tc An initialized theora_comment structure - * \param tag The tag to look up - * \returns The number on instances of a particular tag. - * - * Call this first when querying for a specific tag and then interate - * over the number of instances with separate calls to - * theora_comment_query() to retrieve all instances in order. - **/ -extern int theora_comment_query_count(theora_comment *tc, char *tag); - -/** - * Clear an allocated theora_comment struct so that it can be freed. - * \param tc An allocated theora_comment structure. - **/ -extern void theora_comment_clear(theora_comment *tc); - -/**Encoder control function. - * This is used to provide advanced control the encoding process. - * \param th A #theora_state handle. - * \param req The control code to process. - * See \ref encctlcodes_old "the list of available - * control codes" for details. - * \param buf The parameters for this control code. - * \param buf_sz The size of the parameter buffer.*/ -extern int theora_control(theora_state *th,int req,void *buf,size_t buf_sz); - -/* @} */ /* end oldfuncs doxygen group */ - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* _O_THEORA_H_ */ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theoradec.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theoradec.h deleted file mode 100644 index b20f0e3a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theoradec.h +++ /dev/null @@ -1,325 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $ - - ********************************************************************/ - -/**\file - * The libtheoradec C decoding API.*/ - -#if !defined(_O_THEORA_THEORADEC_H_) -# define _O_THEORA_THEORADEC_H_ (1) -# include -# include -# include "codec.h" - -#if defined(__cplusplus) -extern "C" { -#endif - - - -/**\name th_decode_ctl() codes - * \anchor decctlcodes - * These are the available request codes for th_decode_ctl(). - * By convention, these are odd, to distinguish them from the - * \ref encctlcodes "encoder control codes". - * Keep any experimental or vendor-specific values above \c 0x8000.*/ -/*@{*/ -/**Gets the maximum post-processing level. - * The decoder supports a post-processing filter that can improve - * the appearance of the decoded images. This returns the highest - * level setting for this post-processor, corresponding to maximum - * improvement and computational expense. - * - * \param[out] _buf int: The maximum post-processing level. - * \retval TH_EFAULT \a _dec_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int). - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_DECCTL_GET_PPLEVEL_MAX (1) -/**Sets the post-processing level. - * By default, post-processing is disabled. - * - * Sets the level of post-processing to use when decoding the - * compressed stream. This must be a value between zero (off) - * and the maximum returned by TH_DECCTL_GET_PPLEVEL_MAX. - * - * \param[in] _buf int: The new post-processing level. - * 0 to disable; larger values use more CPU. - * \retval TH_EFAULT \a _dec_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int), or the - * post-processing level is out of bounds. - * The maximum post-processing level may be - * implementation-specific, and can be obtained via - * #TH_DECCTL_GET_PPLEVEL_MAX. - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_DECCTL_SET_PPLEVEL (3) -/**Sets the granule position. - * Call this after a seek, before decoding the first frame, to ensure that the - * proper granule position is returned for all subsequent frames. - * If you track timestamps yourself and do not use the granule position - * returned by the decoder, then you need not call this function. - * - * \param[in] _buf ogg_int64_t: The granule position of the next - * frame. - * \retval TH_EFAULT \a _dec_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(ogg_int64_t), or the - * granule position is negative.*/ -#define TH_DECCTL_SET_GRANPOS (5) -/**Sets the striped decode callback function. - * If set, this function will be called as each piece of a frame is fully - * decoded in th_decode_packetin(). - * You can pass in a #th_stripe_callback with - * th_stripe_callback#stripe_decoded set to NULL to disable the - * callbacks at any point. - * Enabling striped decode does not prevent you from calling - * th_decode_ycbcr_out() after the frame is fully decoded. - * - * \param[in] _buf #th_stripe_callback: The callback parameters. - * \retval TH_EFAULT \a _dec_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not - * sizeof(th_stripe_callback).*/ -#define TH_DECCTL_SET_STRIPE_CB (7) - -/**Enables telemetry and sets the macroblock display mode */ -#define TH_DECCTL_SET_TELEMETRY_MBMODE (9) -/**Enables telemetry and sets the motion vector display mode */ -#define TH_DECCTL_SET_TELEMETRY_MV (11) -/**Enables telemetry and sets the adaptive quantization display mode */ -#define TH_DECCTL_SET_TELEMETRY_QI (13) -/**Enables telemetry and sets the bitstream breakdown visualization mode */ -#define TH_DECCTL_SET_TELEMETRY_BITS (15) -/*@}*/ - - - -/**A callback function for striped decode. - * This is a function pointer to an application-provided function that will be - * called each time a section of the image is fully decoded in - * th_decode_packetin(). - * This allows the application to process the section immediately, while it is - * still in cache. - * Note that the frame is decoded bottom to top, so \a _yfrag0 will steadily - * decrease with each call until it reaches 0, at which point the full frame - * is decoded. - * The number of fragment rows made available in each call depends on the pixel - * format and the number of post-processing filters enabled, and may not even - * be constant for the entire frame. - * If a non-NULL \a _granpos pointer is passed to - * th_decode_packetin(), the granule position for the frame will be stored - * in it before the first callback is made. - * If an entire frame is dropped (a 0-byte packet), then no callbacks will be - * made at all for that frame. - * \param _ctx An application-provided context pointer. - * \param _buf The image buffer for the decoded frame. - * \param _yfrag0 The Y coordinate of the first row of 8x8 fragments - * decoded. - * Multiply this by 8 to obtain the pixel row number in the - * luma plane. - * If the chroma planes are subsampled in the Y direction, - * this will always be divisible by two. - * \param _yfrag_end The Y coordinate of the first row of 8x8 fragments past - * the newly decoded section. - * If the chroma planes are subsampled in the Y direction, - * this will always be divisible by two. - * I.e., this section contains fragment rows - * \a _yfrag0 ...\a _yfrag_end -1.*/ -typedef void (*th_stripe_decoded_func)(void *_ctx,th_ycbcr_buffer _buf, - int _yfrag0,int _yfrag_end); - -/**The striped decode callback data to pass to #TH_DECCTL_SET_STRIPE_CB.*/ -typedef struct{ - /**An application-provided context pointer. - * This will be passed back verbatim to the application.*/ - void *ctx; - /**The callback function pointer.*/ - th_stripe_decoded_func stripe_decoded; -}th_stripe_callback; - - - -/**\name Decoder state - The following data structures are opaque, and their contents are not - publicly defined by this API. - Referring to their internals directly is unsupported, and may break without - warning.*/ -/*@{*/ -/**The decoder context.*/ -typedef struct th_dec_ctx th_dec_ctx; -/**Setup information. - This contains auxiliary information (Huffman tables and quantization - parameters) decoded from the setup header by th_decode_headerin() to be - passed to th_decode_alloc(). - It can be re-used to initialize any number of decoders, and can be freed - via th_setup_free() at any time.*/ -typedef struct th_setup_info th_setup_info; -/*@}*/ - - - -/**\defgroup decfuncs Functions for Decoding*/ -/*@{*/ -/**\name Functions for decoding - * You must link to libtheoradec if you use any of the - * functions in this section. - * - * The functions are listed in the order they are used in a typical decode. - * The basic steps are: - * - Parse the header packets by repeatedly calling th_decode_headerin(). - * - Allocate a #th_dec_ctx handle with th_decode_alloc(). - * - Call th_setup_free() to free any memory used for codec setup - * information. - * - Perform any additional decoder configuration with th_decode_ctl(). - * - For each video data packet: - * - Submit the packet to the decoder via th_decode_packetin(). - * - Retrieve the uncompressed video data via th_decode_ycbcr_out(). - * - Call th_decode_free() to release all decoder memory.*/ -/*@{*/ -/**Decodes the header packets of a Theora stream. - * This should be called on the initial packets of the stream, in succession, - * until it returns 0, indicating that all headers have been - * processed, or an error is encountered. - * At least three header packets are required, and additional optional header - * packets may follow. - * This can be used on the first packet of any logical stream to determine if - * that stream is a Theora stream. - * \param _info A #th_info structure to fill in. - * This must have been previously initialized with - * th_info_init(). - * The application may immediately begin using the contents of - * this structure after the first header is decoded, though it - * must continue to be passed in on all subsequent calls. - * \param _tc A #th_comment structure to fill in. - * The application may immediately begin using the contents of - * this structure after the second header is decoded, though it - * must continue to be passed in on all subsequent calls. - * \param _setup Returns a pointer to additional, private setup information - * needed by the decoder. - * The contents of this pointer must be initialized to - * NULL on the first call, and the returned value must - * continue to be passed in on all subsequent calls. - * \param _op An ogg_packet structure which contains one of the - * initial packets of an Ogg logical stream. - * \return A positive value indicates that a Theora header was successfully - * processed. - * \retval 0 The first video data packet was encountered after all - * required header packets were parsed. - * The packet just passed in on this call should be saved - * and fed to th_decode_packetin() to begin decoding - * video data. - * \retval TH_EFAULT One of \a _info, \a _tc, or \a _setup was - * NULL. - * \retval TH_EBADHEADER \a _op was NULL, the packet was not the next - * header packet in the expected sequence, or the format - * of the header data was invalid. - * \retval TH_EVERSION The packet data was a Theora info header, but for a - * bitstream version not decodable with this version of - * libtheoradec. - * \retval TH_ENOTFORMAT The packet was not a Theora header. - */ -extern int th_decode_headerin(th_info *_info,th_comment *_tc, - th_setup_info **_setup,ogg_packet *_op); -/**Allocates a decoder instance. - * - * Security Warning: The Theora format supports very large frame sizes, - * potentially even larger than the address space of a 32-bit machine, and - * creating a decoder context allocates the space for several frames of data. - * If the allocation fails here, your program will crash, possibly at some - * future point because the OS kernel returned a valid memory range and will - * only fail when it tries to map the pages in it the first time they are - * used. - * Even if it succeeds, you may experience a denial of service if the frame - * size is large enough to cause excessive paging. - * If you are integrating libtheora in a larger application where such things - * are undesirable, it is highly recommended that you check the frame size in - * \a _info before calling this function and refuse to decode streams where it - * is larger than some reasonable maximum. - * libtheora will not check this for you, because there may be machines that - * can handle such streams and applications that wish to. - * \param _info A #th_info struct filled via th_decode_headerin(). - * \param _setup A #th_setup_info handle returned via - * th_decode_headerin(). - * \return The initialized #th_dec_ctx handle. - * \retval NULL If the decoding parameters were invalid.*/ -extern th_dec_ctx *th_decode_alloc(const th_info *_info, - const th_setup_info *_setup); -/**Releases all storage used for the decoder setup information. - * This should be called after you no longer want to create any decoders for - * a stream whose headers you have parsed with th_decode_headerin(). - * \param _setup The setup information to free. - * This can safely be NULL.*/ -extern void th_setup_free(th_setup_info *_setup); -/**Decoder control function. - * This is used to provide advanced control of the decoding process. - * \param _dec A #th_dec_ctx handle. - * \param _req The control code to process. - * See \ref decctlcodes "the list of available control codes" - * for details. - * \param _buf The parameters for this control code. - * \param _buf_sz The size of the parameter buffer.*/ -extern int th_decode_ctl(th_dec_ctx *_dec,int _req,void *_buf, - size_t _buf_sz); -/**Submits a packet containing encoded video data to the decoder. - * \param _dec A #th_dec_ctx handle. - * \param _op An ogg_packet containing encoded video data. - * \param _granpos Returns the granule position of the decoded packet. - * If non-NULL, the granule position for this specific - * packet is stored in this location. - * This is computed incrementally from previously decoded - * packets. - * After a seek, the correct granule position must be set via - * #TH_DECCTL_SET_GRANPOS for this to work properly. - * \retval 0 Success. - * A new decoded frame can be retrieved by calling - * th_decode_ycbcr_out(). - * \retval TH_DUPFRAME The packet represented a dropped (0-byte) frame. - * The player can skip the call to th_decode_ycbcr_out(), - * as the contents of the decoded frame buffer have not - * changed. - * \retval TH_EFAULT \a _dec or \a _op was NULL. - * \retval TH_EBADPACKET \a _op does not contain encoded video data. - * \retval TH_EIMPL The video data uses bitstream features which this - * library does not support.*/ -extern int th_decode_packetin(th_dec_ctx *_dec,const ogg_packet *_op, - ogg_int64_t *_granpos); -/**Outputs the next available frame of decoded Y'CbCr data. - * If a striped decode callback has been set with #TH_DECCTL_SET_STRIPE_CB, - * then the application does not need to call this function. - * \param _dec A #th_dec_ctx handle. - * \param _ycbcr A video buffer structure to fill in. - * libtheoradec will fill in all the members of this - * structure, including the pointers to the uncompressed video - * data. - * The memory for this video data is owned by - * libtheoradec. - * It may be freed or overwritten without notification when - * subsequent frames are decoded. - * \retval 0 Success - * \retval TH_EFAULT \a _dec or \a _ycbcr was NULL. - */ -extern int th_decode_ycbcr_out(th_dec_ctx *_dec, - th_ycbcr_buffer _ycbcr); -/**Frees an allocated decoder instance. - * \param _dec A #th_dec_ctx handle.*/ -extern void th_decode_free(th_dec_ctx *_dec); -/*@}*/ -/*@}*/ - - - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theoraenc.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theoraenc.h deleted file mode 100644 index fdf2ab21..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/theoraenc.h +++ /dev/null @@ -1,486 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: theora.h,v 1.8 2004/03/15 22:17:32 derf Exp $ - - ********************************************************************/ - -/**\file - * The libtheoraenc C encoding API.*/ - -#if !defined(_O_THEORA_THEORAENC_H_) -# define _O_THEORA_THEORAENC_H_ (1) -# include -# include -# include "codec.h" - -#if defined(__cplusplus) -extern "C" { -#endif - - - -/**\name th_encode_ctl() codes - * \anchor encctlcodes - * These are the available request codes for th_encode_ctl(). - * By convention, these are even, to distinguish them from the - * \ref decctlcodes "decoder control codes". - * Keep any experimental or vendor-specific values above \c 0x8000.*/ -/*@{*/ -/**Sets the Huffman tables to use. - * The tables are copied, not stored by reference, so they can be freed after - * this call. - * NULL may be specified to revert to the default tables. - * - * \param[in] _buf #th_huff_code[#TH_NHUFFMAN_TABLES][#TH_NDCT_TOKENS] - * \retval TH_EFAULT \a _enc_ctx is NULL. - * \retval TH_EINVAL Encoding has already begun or one or more of the given - * tables is not full or prefix-free, \a _buf is - * NULL and \a _buf_sz is not zero, or \a _buf is - * non-NULL and \a _buf_sz is not - * sizeof(#th_huff_code)*#TH_NHUFFMAN_TABLES*#TH_NDCT_TOKENS. - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_HUFFMAN_CODES (0) -/**Sets the quantization parameters to use. - * The parameters are copied, not stored by reference, so they can be freed - * after this call. - * NULL may be specified to revert to the default parameters. - * - * \param[in] _buf #th_quant_info - * \retval TH_EFAULT \a _enc_ctx is NULL. - * \retval TH_EINVAL Encoding has already begun, \a _buf is - * NULL and \a _buf_sz is not zero, - * or \a _buf is non-NULL and - * \a _buf_sz is not sizeof(#th_quant_info). - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_QUANT_PARAMS (2) -/**Sets the maximum distance between key frames. - * This can be changed during an encode, but will be bounded by - * 1<. - * If it is set before encoding begins, th_info#keyframe_granule_shift will - * be enlarged appropriately. - * - * \param[in] _buf ogg_uint32_t: The maximum distance between key - * frames. - * \param[out] _buf ogg_uint32_t: The actual maximum distance set. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(ogg_uint32_t). - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_KEYFRAME_FREQUENCY_FORCE (4) -/**Disables any encoder features that would prevent lossless transcoding back - * to VP3. - * This primarily means disabling block-adaptive quantization and always coding - * all four luma blocks in a macro block when 4MV is used. - * It also includes using the VP3 quantization tables and Huffman codes; if you - * set them explicitly after calling this function, the resulting stream will - * not be VP3-compatible. - * If you enable VP3-compatibility when encoding 4:2:2 or 4:4:4 source - * material, or when using a picture region smaller than the full frame (e.g. - * a non-multiple-of-16 width or height), then non-VP3 bitstream features will - * still be disabled, but the stream will still not be VP3-compatible, as VP3 - * was not capable of encoding such formats. - * If you call this after encoding has already begun, then the quantization - * tables and codebooks cannot be changed, but the frame-level features will - * be enabled or disabled as requested. - * - * \param[in] _buf int: a non-zero value to enable VP3 compatibility, - * or 0 to disable it (the default). - * \param[out] _buf int: 1 if all bitstream features required for - * VP3-compatibility could be set, and 0 otherwise. - * The latter will be returned if the pixel format is not - * 4:2:0, the picture region is smaller than the full frame, - * or if encoding has begun, preventing the quantization - * tables and codebooks from being set. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int). - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_VP3_COMPATIBLE (10) -/**Gets the maximum speed level. - * Higher speed levels favor quicker encoding over better quality per bit. - * Depending on the encoding mode, and the internal algorithms used, quality - * may actually improve, but in this case bitrate will also likely increase. - * In any case, overall rate/distortion performance will probably decrease. - * The maximum value, and the meaning of each value, may change depending on - * the current encoding mode (VBR vs. constant quality, etc.). - * - * \param[out] _buf int: The maximum encoding speed level. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int). - * \retval TH_EIMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_GET_SPLEVEL_MAX (12) -/**Sets the speed level. - * The current speed level may be retrieved using #TH_ENCCTL_GET_SPLEVEL. - * - * \param[in] _buf int: The new encoding speed level. - * 0 is slowest, larger values use less CPU. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int), or the - * encoding speed level is out of bounds. - * The maximum encoding speed level may be - * implementation- and encoding mode-specific, and can be - * obtained via #TH_ENCCTL_GET_SPLEVEL_MAX. - * \retval TH_EIMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_SET_SPLEVEL (14) -/**Gets the current speed level. - * The default speed level may vary according to encoder implementation, but if - * this control code is not supported (it returns #TH_EIMPL), the default may - * be assumed to be the slowest available speed (0). - * The maximum encoding speed level may be implementation- and encoding - * mode-specific, and can be obtained via #TH_ENCCTL_GET_SPLEVEL_MAX. - * - * \param[out] _buf int: The current encoding speed level. - * 0 is slowest, larger values use less CPU. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int). - * \retval TH_EIMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_GET_SPLEVEL (16) -/**Sets the number of duplicates of the next frame to produce. - * Although libtheora can encode duplicate frames very cheaply, it costs some - * amount of CPU to detect them, and a run of duplicates cannot span a - * keyframe boundary. - * This control code tells the encoder to produce the specified number of extra - * duplicates of the next frame. - * This allows the encoder to make smarter keyframe placement decisions and - * rate control decisions, and reduces CPU usage as well, when compared to - * just submitting the same frame for encoding multiple times. - * This setting only applies to the next frame submitted for encoding. - * You MUST call th_encode_packetout() repeatedly until it returns 0, or the - * extra duplicate frames will be lost. - * - * \param[in] _buf int: The number of duplicates to produce. - * If this is negative or zero, no duplicates will be produced. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int), or the - * number of duplicates is greater than or equal to the - * maximum keyframe interval. - * In the latter case, NO duplicate frames will be produced. - * You must ensure that the maximum keyframe interval is set - * larger than the maximum number of duplicates you will - * ever wish to insert prior to encoding. - * \retval TH_EIMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_SET_DUP_COUNT (18) -/**Modifies the default bitrate management behavior. - * Use to allow or disallow frame dropping, and to enable or disable capping - * bit reservoir overflows and underflows. - * See \ref encctlcodes "the list of available flags". - * The flags are set by default to - * #TH_RATECTL_DROP_FRAMES|#TH_RATECTL_CAP_OVERFLOW. - * - * \param[in] _buf int: Any combination of - * \ref ratectlflags "the available flags": - * - #TH_RATECTL_DROP_FRAMES: Enable frame dropping. - * - #TH_RATECTL_CAP_OVERFLOW: Don't bank excess bits for later - * use. - * - #TH_RATECTL_CAP_UNDERFLOW: Don't try to make up shortfalls - * later. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int) or rate control - * is not enabled. - * \retval TH_EIMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_SET_RATE_FLAGS (20) -/**Sets the size of the bitrate management bit reservoir as a function - * of number of frames. - * The reservoir size affects how quickly bitrate management reacts to - * instantaneous changes in the video complexity. - * Larger reservoirs react more slowly, and provide better overall quality, but - * require more buffering by a client, adding more latency to live streams. - * By default, libtheora sets the reservoir to the maximum distance between - * keyframes, subject to a minimum and maximum limit. - * This call may be used to increase or decrease the reservoir, increasing or - * decreasing the allowed temporary variance in bitrate. - * An implementation may impose some limits on the size of a reservoir it can - * handle, in which case the actual reservoir size may not be exactly what was - * requested. - * The actual value set will be returned. - * - * \param[in] _buf int: Requested size of the reservoir measured in - * frames. - * \param[out] _buf int: The actual size of the reservoir set. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(int), or rate control - * is not enabled. The buffer has an implementation - * defined minimum and maximum size and the value in _buf - * will be adjusted to match the actual value set. - * \retval TH_EIMPL Not supported by this implementation in the current - * encoding mode.*/ -#define TH_ENCCTL_SET_RATE_BUFFER (22) -/**Enable pass 1 of two-pass encoding mode and retrieve the first pass metrics. - * Pass 1 mode must be enabled before the first frame is encoded, and a target - * bitrate must have already been specified to the encoder. - * Although this does not have to be the exact rate that will be used in the - * second pass, closer values may produce better results. - * The first call returns the size of the two-pass header data, along with some - * placeholder content, and sets the encoder into pass 1 mode implicitly. - * This call sets the encoder to pass 1 mode implicitly. - * Then, a subsequent call must be made after each call to - * th_encode_ycbcr_in() to retrieve the metrics for that frame. - * An additional, final call must be made to retrieve the summary data, - * containing such information as the total number of frames, etc. - * This must be stored in place of the placeholder data that was returned - * in the first call, before the frame metrics data. - * All of this data must be presented back to the encoder during pass 2 using - * #TH_ENCCTL_2PASS_IN. - * - * \param[out] char *_buf: Returns a pointer to internal storage - * containing the two pass metrics data. - * This storage is only valid until the next call, or until the - * encoder context is freed, and must be copied by the - * application. - * \retval >=0 The number of bytes of metric data available in the - * returned buffer. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL \a _buf_sz is not sizeof(char *), no target - * bitrate has been set, or the first call was made after - * the first frame was submitted for encoding. - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_2PASS_OUT (24) -/**Submits two-pass encoding metric data collected the first encoding pass to - * the second pass. - * The first call must be made before the first frame is encoded, and a target - * bitrate must have already been specified to the encoder. - * It sets the encoder to pass 2 mode implicitly; this cannot be disabled. - * The encoder may require reading data from some or all of the frames in - * advance, depending on, e.g., the reservoir size used in the second pass. - * You must call this function repeatedly before each frame to provide data - * until either a) it fails to consume all of the data presented or b) all of - * the pass 1 data has been consumed. - * In the first case, you must save the remaining data to be presented after - * the next frame. - * You can call this function with a NULL argument to get an upper bound on - * the number of bytes that will be required before the next frame. - * - * When pass 2 is first enabled, the default bit reservoir is set to the entire - * file; this gives maximum flexibility but can lead to very high peak rates. - * You can subsequently set it to another value with #TH_ENCCTL_SET_RATE_BUFFER - * (e.g., to set it to the keyframe interval for non-live streaming), however, - * you may then need to provide more data before the next frame. - * - * \param[in] _buf char[]: A buffer containing the data returned by - * #TH_ENCCTL_2PASS_OUT in pass 1. - * You may pass NULL for \a _buf to return an upper - * bound on the number of additional bytes needed before the - * next frame. - * The summary data returned at the end of pass 1 must be at - * the head of the buffer on the first call with a - * non-NULL \a _buf, and the placeholder data - * returned at the start of pass 1 should be omitted. - * After each call you should advance this buffer by the number - * of bytes consumed. - * \retval >0 The number of bytes of metric data required/consumed. - * \retval 0 No more data is required before the next frame. - * \retval TH_EFAULT \a _enc_ctx is NULL. - * \retval TH_EINVAL No target bitrate has been set, or the first call was - * made after the first frame was submitted for - * encoding. - * \retval TH_ENOTFORMAT The data did not appear to be pass 1 from a compatible - * implementation of this library. - * \retval TH_EBADHEADER The data was invalid; this may be returned when - * attempting to read an aborted pass 1 file that still - * has the placeholder data in place of the summary - * data. - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_2PASS_IN (26) -/**Sets the current encoding quality. - * This is only valid so long as no bitrate has been specified, either through - * the #th_info struct used to initialize the encoder or through - * #TH_ENCCTL_SET_BITRATE (this restriction may be relaxed in a future - * version). - * If it is set before the headers are emitted, the target quality encoded in - * them will be updated. - * - * \param[in] _buf int: The new target quality, in the range 0...63, - * inclusive. - * \retval 0 Success. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL A target bitrate has already been specified, or the - * quality index was not in the range 0...63. - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_QUALITY (28) -/**Sets the current encoding bitrate. - * Once a bitrate is set, the encoder must use a rate-controlled mode for all - * future frames (this restriction may be relaxed in a future version). - * If it is set before the headers are emitted, the target bitrate encoded in - * them will be updated. - * Due to the buffer delay, the exact bitrate of each section of the encode is - * not guaranteed. - * The encoder may have already used more bits than allowed for the frames it - * has encoded, expecting to make them up in future frames, or it may have - * used fewer, holding the excess in reserve. - * The exact transition between the two bitrates is not well-defined by this - * API, but may be affected by flags set with #TH_ENCCTL_SET_RATE_FLAGS. - * After a number of frames equal to the buffer delay, one may expect further - * output to average at the target bitrate. - * - * \param[in] _buf long: The new target bitrate, in bits per second. - * \retval 0 Success. - * \retval TH_EFAULT \a _enc_ctx or \a _buf is NULL. - * \retval TH_EINVAL The target bitrate was not positive. - * \retval TH_EIMPL Not supported by this implementation.*/ -#define TH_ENCCTL_SET_BITRATE (30) - -/*@}*/ - - -/**\name TH_ENCCTL_SET_RATE_FLAGS flags - * \anchor ratectlflags - * These are the flags available for use with #TH_ENCCTL_SET_RATE_FLAGS.*/ -/*@{*/ -/**Drop frames to keep within bitrate buffer constraints. - * This can have a severe impact on quality, but is the only way to ensure that - * bitrate targets are met at low rates during sudden bursts of activity.*/ -#define TH_RATECTL_DROP_FRAMES (0x1) -/**Ignore bitrate buffer overflows. - * If the encoder uses so few bits that the reservoir of available bits - * overflows, ignore the excess. - * The encoder will not try to use these extra bits in future frames. - * At high rates this may cause the result to be undersized, but allows a - * client to play the stream using a finite buffer; it should normally be - * enabled.*/ -#define TH_RATECTL_CAP_OVERFLOW (0x2) -/**Ignore bitrate buffer underflows. - * If the encoder uses so many bits that the reservoir of available bits - * underflows, ignore the deficit. - * The encoder will not try to make up these extra bits in future frames. - * At low rates this may cause the result to be oversized; it should normally - * be disabled.*/ -#define TH_RATECTL_CAP_UNDERFLOW (0x4) -/*@}*/ - - - -/**The quantization parameters used by VP3.*/ -extern const th_quant_info TH_VP31_QUANT_INFO; - -/**The Huffman tables used by VP3.*/ -extern const th_huff_code - TH_VP31_HUFF_CODES[TH_NHUFFMAN_TABLES][TH_NDCT_TOKENS]; - - - -/**\name Encoder state - The following data structure is opaque, and its contents are not publicly - defined by this API. - Referring to its internals directly is unsupported, and may break without - warning.*/ -/*@{*/ -/**The encoder context.*/ -typedef struct th_enc_ctx th_enc_ctx; -/*@}*/ - - - -/**\defgroup encfuncs Functions for Encoding*/ -/*@{*/ -/**\name Functions for encoding - * You must link to libtheoraenc and libtheoradec - * if you use any of the functions in this section. - * - * The functions are listed in the order they are used in a typical encode. - * The basic steps are: - * - Fill in a #th_info structure with details on the format of the video you - * wish to encode. - * - Allocate a #th_enc_ctx handle with th_encode_alloc(). - * - Perform any additional encoder configuration required with - * th_encode_ctl(). - * - Repeatedly call th_encode_flushheader() to retrieve all the header - * packets. - * - For each uncompressed frame: - * - Submit the uncompressed frame via th_encode_ycbcr_in() - * - Repeatedly call th_encode_packetout() to retrieve any video data packets - * that are ready. - * - Call th_encode_free() to release all encoder memory.*/ -/*@{*/ -/**Allocates an encoder instance. - * \param _info A #th_info struct filled with the desired encoding parameters. - * \return The initialized #th_enc_ctx handle. - * \retval NULL If the encoding parameters were invalid.*/ -extern th_enc_ctx *th_encode_alloc(const th_info *_info); -/**Encoder control function. - * This is used to provide advanced control the encoding process. - * \param _enc A #th_enc_ctx handle. - * \param _req The control code to process. - * See \ref encctlcodes "the list of available control codes" - * for details. - * \param _buf The parameters for this control code. - * \param _buf_sz The size of the parameter buffer.*/ -extern int th_encode_ctl(th_enc_ctx *_enc,int _req,void *_buf,size_t _buf_sz); -/**Outputs the next header packet. - * This should be called repeatedly after encoder initialization until it - * returns 0 in order to get all of the header packets, in order, before - * encoding actual video data. - * \param _enc A #th_enc_ctx handle. - * \param _comments The metadata to place in the comment header, when it is - * encoded. - * \param _op An ogg_packet structure to fill. - * All of the elements of this structure will be set, - * including a pointer to the header data. - * The memory for the header data is owned by - * libtheoraenc, and may be invalidated when the - * next encoder function is called. - * \return A positive value indicates that a header packet was successfully - * produced. - * \retval 0 No packet was produced, and no more header packets remain. - * \retval TH_EFAULT \a _enc, \a _comments, or \a _op was NULL.*/ -extern int th_encode_flushheader(th_enc_ctx *_enc, - th_comment *_comments,ogg_packet *_op); -/**Submits an uncompressed frame to the encoder. - * \param _enc A #th_enc_ctx handle. - * \param _ycbcr A buffer of Y'CbCr data to encode. - * \retval 0 Success. - * \retval TH_EFAULT \a _enc or \a _ycbcr is NULL. - * \retval TH_EINVAL The buffer size does not match the frame size the encoder - * was initialized with, or encoding has already - * completed.*/ -extern int th_encode_ycbcr_in(th_enc_ctx *_enc,th_ycbcr_buffer _ycbcr); -/**Retrieves encoded video data packets. - * This should be called repeatedly after each frame is submitted to flush any - * encoded packets, until it returns 0. - * The encoder will not buffer these packets as subsequent frames are - * compressed, so a failure to do so will result in lost video data. - * \note Currently the encoder operates in a one-frame-in, one-packet-out - * manner. - * However, this may be changed in the future. - * \param _enc A #th_enc_ctx handle. - * \param _last Set this flag to a non-zero value if no more uncompressed - * frames will be submitted. - * This ensures that a proper EOS flag is set on the last packet. - * \param _op An ogg_packet structure to fill. - * All of the elements of this structure will be set, including a - * pointer to the video data. - * The memory for the video data is owned by - * libtheoraenc, and may be invalidated when the next - * encoder function is called. - * \return A positive value indicates that a video data packet was successfully - * produced. - * \retval 0 No packet was produced, and no more encoded video data - * remains. - * \retval TH_EFAULT \a _enc or \a _op was NULL.*/ -extern int th_encode_packetout(th_enc_ctx *_enc,int _last,ogg_packet *_op); -/**Frees an allocated encoder instance. - * \param _enc A #th_enc_ctx handle.*/ -extern void th_encode_free(th_enc_ctx *_enc); -/*@}*/ -/*@}*/ - - - -#if defined(__cplusplus) -} -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/tinfo.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/tinfo.c deleted file mode 100644 index 6b976297..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/tinfo.c +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: info.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -#include -#include -#include -#include "internal.h" - - - -/*This is more or less the same as strncasecmp, but that doesn't exist - everywhere, and this is a fairly trivial function, so we include it. - Note: We take advantage of the fact that we know _n is less than or equal to - the length of at least one of the strings.*/ -static int oc_tagcompare(const char *_s1,const char *_s2,int _n){ - int c; - for(c=0;c<_n;c++){ - if(toupper(_s1[c])!=toupper(_s2[c]))return !0; - } - return _s1[c]!='='; -} - - - -void th_info_init(th_info *_info){ - memset(_info,0,sizeof(*_info)); - _info->version_major=TH_VERSION_MAJOR; - _info->version_minor=TH_VERSION_MINOR; - _info->version_subminor=TH_VERSION_SUB; - _info->keyframe_granule_shift=6; -} - -void th_info_clear(th_info *_info){ - memset(_info,0,sizeof(*_info)); -} - - - -void th_comment_init(th_comment *_tc){ - memset(_tc,0,sizeof(*_tc)); -} - -void th_comment_add(th_comment *_tc,char *_comment){ - char **user_comments; - int *comment_lengths; - int comment_len; - user_comments=_ogg_realloc(_tc->user_comments, - (_tc->comments+2)*sizeof(*_tc->user_comments)); - if(user_comments==NULL)return; - _tc->user_comments=user_comments; - comment_lengths=_ogg_realloc(_tc->comment_lengths, - (_tc->comments+2)*sizeof(*_tc->comment_lengths)); - if(comment_lengths==NULL)return; - _tc->comment_lengths=comment_lengths; - comment_len=strlen(_comment); - comment_lengths[_tc->comments]=comment_len; - user_comments[_tc->comments]=_ogg_malloc(comment_len+1); - if(user_comments[_tc->comments]==NULL)return; - memcpy(_tc->user_comments[_tc->comments],_comment,comment_len+1); - _tc->comments++; - _tc->user_comments[_tc->comments]=NULL; -} - -void th_comment_add_tag(th_comment *_tc,char *_tag,char *_val){ - char *comment; - int tag_len; - int val_len; - tag_len=strlen(_tag); - val_len=strlen(_val); - /*+2 for '=' and '\0'.*/ - comment=_ogg_malloc(tag_len+val_len+2); - if(comment==NULL)return; - memcpy(comment,_tag,tag_len); - comment[tag_len]='='; - memcpy(comment+tag_len+1,_val,val_len+1); - th_comment_add(_tc,comment); - _ogg_free(comment); -} - -char *th_comment_query(th_comment *_tc,char *_tag,int _count){ - long i; - int found; - int tag_len; - tag_len=strlen(_tag); - found=0; - for(i=0;i<_tc->comments;i++){ - if(!oc_tagcompare(_tc->user_comments[i],_tag,tag_len)){ - /*We return a pointer to the data, not a copy.*/ - if(_count==found++)return _tc->user_comments[i]+tag_len+1; - } - } - /*Didn't find anything.*/ - return NULL; -} - -int th_comment_query_count(th_comment *_tc,char *_tag){ - long i; - int tag_len; - int count; - tag_len=strlen(_tag); - count=0; - for(i=0;i<_tc->comments;i++){ - if(!oc_tagcompare(_tc->user_comments[i],_tag,tag_len))count++; - } - return count; -} - -void th_comment_clear(th_comment *_tc){ - if(_tc!=NULL){ - long i; - for(i=0;i<_tc->comments;i++)_ogg_free(_tc->user_comments[i]); - _ogg_free(_tc->user_comments); - _ogg_free(_tc->comment_lengths); - _ogg_free(_tc->vendor); - memset(_tc,0,sizeof(*_tc)); - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxfrag.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxfrag.c deleted file mode 100644 index 2c732939..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxfrag.c +++ /dev/null @@ -1,293 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: mmxfrag.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -/*MMX acceleration of fragment reconstruction for motion compensation. - Originally written by Rudolf Marek. - Additional optimization by Nils Pipenbrinck. - Note: Loops are unrolled for best performance. - The iteration each instruction belongs to is marked in the comments as #i.*/ -#include -#include "x86int.h" -#include "mmxfrag.h" - -#if defined(OC_X86_ASM) - -/*Copies an 8x8 block of pixels from _src to _dst, assuming _ystride bytes - between rows.*/ -void oc_frag_copy_mmx(unsigned char *_dst, - const unsigned char *_src,int _ystride){ - OC_FRAG_COPY_MMX(_dst,_src,_ystride); -} - -void oc_frag_recon_intra_mmx(unsigned char *_dst,int _ystride, - const ogg_int16_t *_residue){ - __asm__ __volatile__( - /*Set mm0 to 0xFFFFFFFFFFFFFFFF.*/ - "pcmpeqw %%mm0,%%mm0\n\t" - /*#0 Load low residue.*/ - "movq 0*8(%[residue]),%%mm1\n\t" - /*#0 Load high residue.*/ - "movq 1*8(%[residue]),%%mm2\n\t" - /*Set mm0 to 0x8000800080008000.*/ - "psllw $15,%%mm0\n\t" - /*#1 Load low residue.*/ - "movq 2*8(%[residue]),%%mm3\n\t" - /*#1 Load high residue.*/ - "movq 3*8(%[residue]),%%mm4\n\t" - /*Set mm0 to 0x0080008000800080.*/ - "psrlw $8,%%mm0\n\t" - /*#2 Load low residue.*/ - "movq 4*8(%[residue]),%%mm5\n\t" - /*#2 Load high residue.*/ - "movq 5*8(%[residue]),%%mm6\n\t" - /*#0 Bias low residue.*/ - "paddsw %%mm0,%%mm1\n\t" - /*#0 Bias high residue.*/ - "paddsw %%mm0,%%mm2\n\t" - /*#0 Pack to byte.*/ - "packuswb %%mm2,%%mm1\n\t" - /*#1 Bias low residue.*/ - "paddsw %%mm0,%%mm3\n\t" - /*#1 Bias high residue.*/ - "paddsw %%mm0,%%mm4\n\t" - /*#1 Pack to byte.*/ - "packuswb %%mm4,%%mm3\n\t" - /*#2 Bias low residue.*/ - "paddsw %%mm0,%%mm5\n\t" - /*#2 Bias high residue.*/ - "paddsw %%mm0,%%mm6\n\t" - /*#2 Pack to byte.*/ - "packuswb %%mm6,%%mm5\n\t" - /*#0 Write row.*/ - "movq %%mm1,(%[dst])\n\t" - /*#1 Write row.*/ - "movq %%mm3,(%[dst],%[ystride])\n\t" - /*#2 Write row.*/ - "movq %%mm5,(%[dst],%[ystride],2)\n\t" - /*#3 Load low residue.*/ - "movq 6*8(%[residue]),%%mm1\n\t" - /*#3 Load high residue.*/ - "movq 7*8(%[residue]),%%mm2\n\t" - /*#4 Load high residue.*/ - "movq 8*8(%[residue]),%%mm3\n\t" - /*#4 Load high residue.*/ - "movq 9*8(%[residue]),%%mm4\n\t" - /*#5 Load high residue.*/ - "movq 10*8(%[residue]),%%mm5\n\t" - /*#5 Load high residue.*/ - "movq 11*8(%[residue]),%%mm6\n\t" - /*#3 Bias low residue.*/ - "paddsw %%mm0,%%mm1\n\t" - /*#3 Bias high residue.*/ - "paddsw %%mm0,%%mm2\n\t" - /*#3 Pack to byte.*/ - "packuswb %%mm2,%%mm1\n\t" - /*#4 Bias low residue.*/ - "paddsw %%mm0,%%mm3\n\t" - /*#4 Bias high residue.*/ - "paddsw %%mm0,%%mm4\n\t" - /*#4 Pack to byte.*/ - "packuswb %%mm4,%%mm3\n\t" - /*#5 Bias low residue.*/ - "paddsw %%mm0,%%mm5\n\t" - /*#5 Bias high residue.*/ - "paddsw %%mm0,%%mm6\n\t" - /*#5 Pack to byte.*/ - "packuswb %%mm6,%%mm5\n\t" - /*#3 Write row.*/ - "movq %%mm1,(%[dst],%[ystride3])\n\t" - /*#4 Write row.*/ - "movq %%mm3,(%[dst4])\n\t" - /*#5 Write row.*/ - "movq %%mm5,(%[dst4],%[ystride])\n\t" - /*#6 Load low residue.*/ - "movq 12*8(%[residue]),%%mm1\n\t" - /*#6 Load high residue.*/ - "movq 13*8(%[residue]),%%mm2\n\t" - /*#7 Load low residue.*/ - "movq 14*8(%[residue]),%%mm3\n\t" - /*#7 Load high residue.*/ - "movq 15*8(%[residue]),%%mm4\n\t" - /*#6 Bias low residue.*/ - "paddsw %%mm0,%%mm1\n\t" - /*#6 Bias high residue.*/ - "paddsw %%mm0,%%mm2\n\t" - /*#6 Pack to byte.*/ - "packuswb %%mm2,%%mm1\n\t" - /*#7 Bias low residue.*/ - "paddsw %%mm0,%%mm3\n\t" - /*#7 Bias high residue.*/ - "paddsw %%mm0,%%mm4\n\t" - /*#7 Pack to byte.*/ - "packuswb %%mm4,%%mm3\n\t" - /*#6 Write row.*/ - "movq %%mm1,(%[dst4],%[ystride],2)\n\t" - /*#7 Write row.*/ - "movq %%mm3,(%[dst4],%[ystride3])\n\t" - : - :[residue]"r"(_residue), - [dst]"r"(_dst), - [dst4]"r"(_dst+(_ystride<<2)), - [ystride]"r"((ptrdiff_t)_ystride), - [ystride3]"r"((ptrdiff_t)_ystride*3) - :"memory" - ); -} - -void oc_frag_recon_inter_mmx(unsigned char *_dst,const unsigned char *_src, - int _ystride,const ogg_int16_t *_residue){ - int i; - /*Zero mm0.*/ - __asm__ __volatile__("pxor %%mm0,%%mm0\n\t"::); - for(i=4;i-->0;){ - __asm__ __volatile__( - /*#0 Load source.*/ - "movq (%[src]),%%mm3\n\t" - /*#1 Load source.*/ - "movq (%[src],%[ystride]),%%mm7\n\t" - /*#0 Get copy of src.*/ - "movq %%mm3,%%mm4\n\t" - /*#0 Expand high source.*/ - "punpckhbw %%mm0,%%mm4\n\t" - /*#0 Expand low source.*/ - "punpcklbw %%mm0,%%mm3\n\t" - /*#0 Add residue high.*/ - "paddsw 8(%[residue]),%%mm4\n\t" - /*#1 Get copy of src.*/ - "movq %%mm7,%%mm2\n\t" - /*#0 Add residue low.*/ - "paddsw (%[residue]), %%mm3\n\t" - /*#1 Expand high source.*/ - "punpckhbw %%mm0,%%mm2\n\t" - /*#0 Pack final row pixels.*/ - "packuswb %%mm4,%%mm3\n\t" - /*#1 Expand low source.*/ - "punpcklbw %%mm0,%%mm7\n\t" - /*#1 Add residue low.*/ - "paddsw 16(%[residue]),%%mm7\n\t" - /*#1 Add residue high.*/ - "paddsw 24(%[residue]),%%mm2\n\t" - /*Advance residue.*/ - "lea 32(%[residue]),%[residue]\n\t" - /*#1 Pack final row pixels.*/ - "packuswb %%mm2,%%mm7\n\t" - /*Advance src.*/ - "lea (%[src],%[ystride],2),%[src]\n\t" - /*#0 Write row.*/ - "movq %%mm3,(%[dst])\n\t" - /*#1 Write row.*/ - "movq %%mm7,(%[dst],%[ystride])\n\t" - /*Advance dst.*/ - "lea (%[dst],%[ystride],2),%[dst]\n\t" - :[residue]"+r"(_residue),[dst]"+r"(_dst),[src]"+r"(_src) - :[ystride]"r"((ptrdiff_t)_ystride) - :"memory" - ); - } -} - -void oc_frag_recon_inter2_mmx(unsigned char *_dst,const unsigned char *_src1, - const unsigned char *_src2,int _ystride,const ogg_int16_t *_residue){ - int i; - /*Zero mm7.*/ - __asm__ __volatile__("pxor %%mm7,%%mm7\n\t"::); - for(i=4;i-->0;){ - __asm__ __volatile__( - /*#0 Load src1.*/ - "movq (%[src1]),%%mm0\n\t" - /*#0 Load src2.*/ - "movq (%[src2]),%%mm2\n\t" - /*#0 Copy src1.*/ - "movq %%mm0,%%mm1\n\t" - /*#0 Copy src2.*/ - "movq %%mm2,%%mm3\n\t" - /*#1 Load src1.*/ - "movq (%[src1],%[ystride]),%%mm4\n\t" - /*#0 Unpack lower src1.*/ - "punpcklbw %%mm7,%%mm0\n\t" - /*#1 Load src2.*/ - "movq (%[src2],%[ystride]),%%mm5\n\t" - /*#0 Unpack higher src1.*/ - "punpckhbw %%mm7,%%mm1\n\t" - /*#0 Unpack lower src2.*/ - "punpcklbw %%mm7,%%mm2\n\t" - /*#0 Unpack higher src2.*/ - "punpckhbw %%mm7,%%mm3\n\t" - /*Advance src1 ptr.*/ - "lea (%[src1],%[ystride],2),%[src1]\n\t" - /*Advance src2 ptr.*/ - "lea (%[src2],%[ystride],2),%[src2]\n\t" - /*#0 Lower src1+src2.*/ - "paddsw %%mm2,%%mm0\n\t" - /*#0 Higher src1+src2.*/ - "paddsw %%mm3,%%mm1\n\t" - /*#1 Copy src1.*/ - "movq %%mm4,%%mm2\n\t" - /*#0 Build lo average.*/ - "psraw $1,%%mm0\n\t" - /*#1 Copy src2.*/ - "movq %%mm5,%%mm3\n\t" - /*#1 Unpack lower src1.*/ - "punpcklbw %%mm7,%%mm4\n\t" - /*#0 Build hi average.*/ - "psraw $1,%%mm1\n\t" - /*#1 Unpack higher src1.*/ - "punpckhbw %%mm7,%%mm2\n\t" - /*#0 low+=residue.*/ - "paddsw (%[residue]),%%mm0\n\t" - /*#1 Unpack lower src2.*/ - "punpcklbw %%mm7,%%mm5\n\t" - /*#0 high+=residue.*/ - "paddsw 8(%[residue]),%%mm1\n\t" - /*#1 Unpack higher src2.*/ - "punpckhbw %%mm7,%%mm3\n\t" - /*#1 Lower src1+src2.*/ - "paddsw %%mm4,%%mm5\n\t" - /*#0 Pack and saturate.*/ - "packuswb %%mm1,%%mm0\n\t" - /*#1 Higher src1+src2.*/ - "paddsw %%mm2,%%mm3\n\t" - /*#0 Write row.*/ - "movq %%mm0,(%[dst])\n\t" - /*#1 Build lo average.*/ - "psraw $1,%%mm5\n\t" - /*#1 Build hi average.*/ - "psraw $1,%%mm3\n\t" - /*#1 low+=residue.*/ - "paddsw 16(%[residue]),%%mm5\n\t" - /*#1 high+=residue.*/ - "paddsw 24(%[residue]),%%mm3\n\t" - /*#1 Pack and saturate.*/ - "packuswb %%mm3,%%mm5\n\t" - /*#1 Write row ptr.*/ - "movq %%mm5,(%[dst],%[ystride])\n\t" - /*Advance residue ptr.*/ - "add $32,%[residue]\n\t" - /*Advance dest ptr.*/ - "lea (%[dst],%[ystride],2),%[dst]\n\t" - :[dst]"+r"(_dst),[residue]"+r"(_residue), - [src1]"+%r"(_src1),[src2]"+r"(_src2) - :[ystride]"r"((ptrdiff_t)_ystride) - :"memory" - ); - } -} - -void oc_restore_fpu_mmx(void){ - __asm__ __volatile__("emms\n\t"); -} -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxfrag.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxfrag.h deleted file mode 100644 index a3984276..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxfrag.h +++ /dev/null @@ -1,64 +0,0 @@ -#if !defined(_x86_mmxfrag_H) -# define _x86_mmxfrag_H (1) -# include -# include "x86int.h" - -#if defined(OC_X86_ASM) - -/*Copies an 8x8 block of pixels from _src to _dst, assuming _ystride bytes - between rows.*/ -#define OC_FRAG_COPY_MMX(_dst,_src,_ystride) \ - do{ \ - const unsigned char *src; \ - unsigned char *dst; \ - ptrdiff_t ystride3; \ - src=(_src); \ - dst=(_dst); \ - __asm__ __volatile__( \ - /*src+0*ystride*/ \ - "movq (%[src]),%%mm0\n\t" \ - /*src+1*ystride*/ \ - "movq (%[src],%[ystride]),%%mm1\n\t" \ - /*ystride3=ystride*3*/ \ - "lea (%[ystride],%[ystride],2),%[ystride3]\n\t" \ - /*src+2*ystride*/ \ - "movq (%[src],%[ystride],2),%%mm2\n\t" \ - /*src+3*ystride*/ \ - "movq (%[src],%[ystride3]),%%mm3\n\t" \ - /*dst+0*ystride*/ \ - "movq %%mm0,(%[dst])\n\t" \ - /*dst+1*ystride*/ \ - "movq %%mm1,(%[dst],%[ystride])\n\t" \ - /*Pointer to next 4.*/ \ - "lea (%[src],%[ystride],4),%[src]\n\t" \ - /*dst+2*ystride*/ \ - "movq %%mm2,(%[dst],%[ystride],2)\n\t" \ - /*dst+3*ystride*/ \ - "movq %%mm3,(%[dst],%[ystride3])\n\t" \ - /*Pointer to next 4.*/ \ - "lea (%[dst],%[ystride],4),%[dst]\n\t" \ - /*src+0*ystride*/ \ - "movq (%[src]),%%mm0\n\t" \ - /*src+1*ystride*/ \ - "movq (%[src],%[ystride]),%%mm1\n\t" \ - /*src+2*ystride*/ \ - "movq (%[src],%[ystride],2),%%mm2\n\t" \ - /*src+3*ystride*/ \ - "movq (%[src],%[ystride3]),%%mm3\n\t" \ - /*dst+0*ystride*/ \ - "movq %%mm0,(%[dst])\n\t" \ - /*dst+1*ystride*/ \ - "movq %%mm1,(%[dst],%[ystride])\n\t" \ - /*dst+2*ystride*/ \ - "movq %%mm2,(%[dst],%[ystride],2)\n\t" \ - /*dst+3*ystride*/ \ - "movq %%mm3,(%[dst],%[ystride3])\n\t" \ - :[dst]"+r"(dst),[src]"+r"(src),[ystride3]"=&r"(ystride3) \ - :[ystride]"r"((ptrdiff_t)(_ystride)) \ - :"memory" \ - ); \ - } \ - while(0) - -# endif -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxidct.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxidct.c deleted file mode 100644 index 76424e63..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxidct.c +++ /dev/null @@ -1,564 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: mmxidct.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -/*MMX acceleration of Theora's iDCT. - Originally written by Rudolf Marek, based on code from On2's VP3.*/ -#include "x86int.h" -#include "../dct.h" - -#if defined(OC_X86_ASM) - -/*These are offsets into the table of constants below.*/ -/*7 rows of cosines, in order: pi/16 * (1 ... 7).*/ -#define OC_COSINE_OFFSET (0) -/*A row of 8's.*/ -#define OC_EIGHT_OFFSET (56) - - - -/*A table of constants used by the MMX routines.*/ -static const ogg_uint16_t __attribute__((aligned(8),used)) - OC_IDCT_CONSTS[(7+1)*4]={ - (ogg_uint16_t)OC_C1S7,(ogg_uint16_t)OC_C1S7, - (ogg_uint16_t)OC_C1S7,(ogg_uint16_t)OC_C1S7, - (ogg_uint16_t)OC_C2S6,(ogg_uint16_t)OC_C2S6, - (ogg_uint16_t)OC_C2S6,(ogg_uint16_t)OC_C2S6, - (ogg_uint16_t)OC_C3S5,(ogg_uint16_t)OC_C3S5, - (ogg_uint16_t)OC_C3S5,(ogg_uint16_t)OC_C3S5, - (ogg_uint16_t)OC_C4S4,(ogg_uint16_t)OC_C4S4, - (ogg_uint16_t)OC_C4S4,(ogg_uint16_t)OC_C4S4, - (ogg_uint16_t)OC_C5S3,(ogg_uint16_t)OC_C5S3, - (ogg_uint16_t)OC_C5S3,(ogg_uint16_t)OC_C5S3, - (ogg_uint16_t)OC_C6S2,(ogg_uint16_t)OC_C6S2, - (ogg_uint16_t)OC_C6S2,(ogg_uint16_t)OC_C6S2, - (ogg_uint16_t)OC_C7S1,(ogg_uint16_t)OC_C7S1, - (ogg_uint16_t)OC_C7S1,(ogg_uint16_t)OC_C7S1, - 8, 8, 8, 8 -}; - -/*Converts the expression in the argument to a string.*/ -#define OC_M2STR(_s) #_s - -/*38 cycles*/ -#define OC_IDCT_BEGIN \ - "#OC_IDCT_BEGIN\n\t" \ - "movq "OC_I(3)",%%mm2\n\t" \ - "movq "OC_C(3)",%%mm6\n\t" \ - "movq %%mm2,%%mm4\n\t" \ - "movq "OC_J(5)",%%mm7\n\t" \ - "pmulhw %%mm6,%%mm4\n\t" \ - "movq "OC_C(5)",%%mm1\n\t" \ - "pmulhw %%mm7,%%mm6\n\t" \ - "movq %%mm1,%%mm5\n\t" \ - "pmulhw %%mm2,%%mm1\n\t" \ - "movq "OC_I(1)",%%mm3\n\t" \ - "pmulhw %%mm7,%%mm5\n\t" \ - "movq "OC_C(1)",%%mm0\n\t" \ - "paddw %%mm2,%%mm4\n\t" \ - "paddw %%mm7,%%mm6\n\t" \ - "paddw %%mm1,%%mm2\n\t" \ - "movq "OC_J(7)",%%mm1\n\t" \ - "paddw %%mm5,%%mm7\n\t" \ - "movq %%mm0,%%mm5\n\t" \ - "pmulhw %%mm3,%%mm0\n\t" \ - "paddw %%mm7,%%mm4\n\t" \ - "pmulhw %%mm1,%%mm5\n\t" \ - "movq "OC_C(7)",%%mm7\n\t" \ - "psubw %%mm2,%%mm6\n\t" \ - "paddw %%mm3,%%mm0\n\t" \ - "pmulhw %%mm7,%%mm3\n\t" \ - "movq "OC_I(2)",%%mm2\n\t" \ - "pmulhw %%mm1,%%mm7\n\t" \ - "paddw %%mm1,%%mm5\n\t" \ - "movq %%mm2,%%mm1\n\t" \ - "pmulhw "OC_C(2)",%%mm2\n\t" \ - "psubw %%mm5,%%mm3\n\t" \ - "movq "OC_J(6)",%%mm5\n\t" \ - "paddw %%mm7,%%mm0\n\t" \ - "movq %%mm5,%%mm7\n\t" \ - "psubw %%mm4,%%mm0\n\t" \ - "pmulhw "OC_C(2)",%%mm5\n\t" \ - "paddw %%mm1,%%mm2\n\t" \ - "pmulhw "OC_C(6)",%%mm1\n\t" \ - "paddw %%mm4,%%mm4\n\t" \ - "paddw %%mm0,%%mm4\n\t" \ - "psubw %%mm6,%%mm3\n\t" \ - "paddw %%mm7,%%mm5\n\t" \ - "paddw %%mm6,%%mm6\n\t" \ - "pmulhw "OC_C(6)",%%mm7\n\t" \ - "paddw %%mm3,%%mm6\n\t" \ - "movq %%mm4,"OC_I(1)"\n\t" \ - "psubw %%mm5,%%mm1\n\t" \ - "movq "OC_C(4)",%%mm4\n\t" \ - "movq %%mm3,%%mm5\n\t" \ - "pmulhw %%mm4,%%mm3\n\t" \ - "paddw %%mm2,%%mm7\n\t" \ - "movq %%mm6,"OC_I(2)"\n\t" \ - "movq %%mm0,%%mm2\n\t" \ - "movq "OC_I(0)",%%mm6\n\t" \ - "pmulhw %%mm4,%%mm0\n\t" \ - "paddw %%mm3,%%mm5\n\t" \ - "movq "OC_J(4)",%%mm3\n\t" \ - "psubw %%mm1,%%mm5\n\t" \ - "paddw %%mm0,%%mm2\n\t" \ - "psubw %%mm3,%%mm6\n\t" \ - "movq %%mm6,%%mm0\n\t" \ - "pmulhw %%mm4,%%mm6\n\t" \ - "paddw %%mm3,%%mm3\n\t" \ - "paddw %%mm1,%%mm1\n\t" \ - "paddw %%mm0,%%mm3\n\t" \ - "paddw %%mm5,%%mm1\n\t" \ - "pmulhw %%mm3,%%mm4\n\t" \ - "paddw %%mm0,%%mm6\n\t" \ - "psubw %%mm2,%%mm6\n\t" \ - "paddw %%mm2,%%mm2\n\t" \ - "movq "OC_I(1)",%%mm0\n\t" \ - "paddw %%mm6,%%mm2\n\t" \ - "paddw %%mm3,%%mm4\n\t" \ - "psubw %%mm1,%%mm2\n\t" \ - "#end OC_IDCT_BEGIN\n\t" \ - -/*38+8=46 cycles.*/ -#define OC_ROW_IDCT \ - "#OC_ROW_IDCT\n" \ - OC_IDCT_BEGIN \ - /*r3=D'*/ \ - "movq "OC_I(2)",%%mm3\n\t" \ - /*r4=E'=E-G*/ \ - "psubw %%mm7,%%mm4\n\t" \ - /*r1=H'+H'*/ \ - "paddw %%mm1,%%mm1\n\t" \ - /*r7=G+G*/ \ - "paddw %%mm7,%%mm7\n\t" \ - /*r1=R1=A''+H'*/ \ - "paddw %%mm2,%%mm1\n\t" \ - /*r7=G'=E+G*/ \ - "paddw %%mm4,%%mm7\n\t" \ - /*r4=R4=E'-D'*/ \ - "psubw %%mm3,%%mm4\n\t" \ - "paddw %%mm3,%%mm3\n\t" \ - /*r6=R6=F'-B''*/ \ - "psubw %%mm5,%%mm6\n\t" \ - "paddw %%mm5,%%mm5\n\t" \ - /*r3=R3=E'+D'*/ \ - "paddw %%mm4,%%mm3\n\t" \ - /*r5=R5=F'+B''*/ \ - "paddw %%mm6,%%mm5\n\t" \ - /*r7=R7=G'-C'*/ \ - "psubw %%mm0,%%mm7\n\t" \ - "paddw %%mm0,%%mm0\n\t" \ - /*Save R1.*/ \ - "movq %%mm1,"OC_I(1)"\n\t" \ - /*r0=R0=G.+C.*/ \ - "paddw %%mm7,%%mm0\n\t" \ - "#end OC_ROW_IDCT\n\t" \ - -/*The following macro does two 4x4 transposes in place. - At entry, we assume: - r0 = a3 a2 a1 a0 - I(1) = b3 b2 b1 b0 - r2 = c3 c2 c1 c0 - r3 = d3 d2 d1 d0 - - r4 = e3 e2 e1 e0 - r5 = f3 f2 f1 f0 - r6 = g3 g2 g1 g0 - r7 = h3 h2 h1 h0 - - At exit, we have: - I(0) = d0 c0 b0 a0 - I(1) = d1 c1 b1 a1 - I(2) = d2 c2 b2 a2 - I(3) = d3 c3 b3 a3 - - J(4) = h0 g0 f0 e0 - J(5) = h1 g1 f1 e1 - J(6) = h2 g2 f2 e2 - J(7) = h3 g3 f3 e3 - - I(0) I(1) I(2) I(3) is the transpose of r0 I(1) r2 r3. - J(4) J(5) J(6) J(7) is the transpose of r4 r5 r6 r7. - - Since r1 is free at entry, we calculate the Js first.*/ -/*19 cycles.*/ -#define OC_TRANSPOSE \ - "#OC_TRANSPOSE\n\t" \ - "movq %%mm4,%%mm1\n\t" \ - "punpcklwd %%mm5,%%mm4\n\t" \ - "movq %%mm0,"OC_I(0)"\n\t" \ - "punpckhwd %%mm5,%%mm1\n\t" \ - "movq %%mm6,%%mm0\n\t" \ - "punpcklwd %%mm7,%%mm6\n\t" \ - "movq %%mm4,%%mm5\n\t" \ - "punpckldq %%mm6,%%mm4\n\t" \ - "punpckhdq %%mm6,%%mm5\n\t" \ - "movq %%mm1,%%mm6\n\t" \ - "movq %%mm4,"OC_J(4)"\n\t" \ - "punpckhwd %%mm7,%%mm0\n\t" \ - "movq %%mm5,"OC_J(5)"\n\t" \ - "punpckhdq %%mm0,%%mm6\n\t" \ - "movq "OC_I(0)",%%mm4\n\t" \ - "punpckldq %%mm0,%%mm1\n\t" \ - "movq "OC_I(1)",%%mm5\n\t" \ - "movq %%mm4,%%mm0\n\t" \ - "movq %%mm6,"OC_J(7)"\n\t" \ - "punpcklwd %%mm5,%%mm0\n\t" \ - "movq %%mm1,"OC_J(6)"\n\t" \ - "punpckhwd %%mm5,%%mm4\n\t" \ - "movq %%mm2,%%mm5\n\t" \ - "punpcklwd %%mm3,%%mm2\n\t" \ - "movq %%mm0,%%mm1\n\t" \ - "punpckldq %%mm2,%%mm0\n\t" \ - "punpckhdq %%mm2,%%mm1\n\t" \ - "movq %%mm4,%%mm2\n\t" \ - "movq %%mm0,"OC_I(0)"\n\t" \ - "punpckhwd %%mm3,%%mm5\n\t" \ - "movq %%mm1,"OC_I(1)"\n\t" \ - "punpckhdq %%mm5,%%mm4\n\t" \ - "punpckldq %%mm5,%%mm2\n\t" \ - "movq %%mm4,"OC_I(3)"\n\t" \ - "movq %%mm2,"OC_I(2)"\n\t" \ - "#end OC_TRANSPOSE\n\t" \ - -/*38+19=57 cycles.*/ -#define OC_COLUMN_IDCT \ - "#OC_COLUMN_IDCT\n" \ - OC_IDCT_BEGIN \ - "paddw "OC_8",%%mm2\n\t" \ - /*r1=H'+H'*/ \ - "paddw %%mm1,%%mm1\n\t" \ - /*r1=R1=A''+H'*/ \ - "paddw %%mm2,%%mm1\n\t" \ - /*r2=NR2*/ \ - "psraw $4,%%mm2\n\t" \ - /*r4=E'=E-G*/ \ - "psubw %%mm7,%%mm4\n\t" \ - /*r1=NR1*/ \ - "psraw $4,%%mm1\n\t" \ - /*r3=D'*/ \ - "movq "OC_I(2)",%%mm3\n\t" \ - /*r7=G+G*/ \ - "paddw %%mm7,%%mm7\n\t" \ - /*Store NR2 at I(2).*/ \ - "movq %%mm2,"OC_I(2)"\n\t" \ - /*r7=G'=E+G*/ \ - "paddw %%mm4,%%mm7\n\t" \ - /*Store NR1 at I(1).*/ \ - "movq %%mm1,"OC_I(1)"\n\t" \ - /*r4=R4=E'-D'*/ \ - "psubw %%mm3,%%mm4\n\t" \ - "paddw "OC_8",%%mm4\n\t" \ - /*r3=D'+D'*/ \ - "paddw %%mm3,%%mm3\n\t" \ - /*r3=R3=E'+D'*/ \ - "paddw %%mm4,%%mm3\n\t" \ - /*r4=NR4*/ \ - "psraw $4,%%mm4\n\t" \ - /*r6=R6=F'-B''*/ \ - "psubw %%mm5,%%mm6\n\t" \ - /*r3=NR3*/ \ - "psraw $4,%%mm3\n\t" \ - "paddw "OC_8",%%mm6\n\t" \ - /*r5=B''+B''*/ \ - "paddw %%mm5,%%mm5\n\t" \ - /*r5=R5=F'+B''*/ \ - "paddw %%mm6,%%mm5\n\t" \ - /*r6=NR6*/ \ - "psraw $4,%%mm6\n\t" \ - /*Store NR4 at J(4).*/ \ - "movq %%mm4,"OC_J(4)"\n\t" \ - /*r5=NR5*/ \ - "psraw $4,%%mm5\n\t" \ - /*Store NR3 at I(3).*/ \ - "movq %%mm3,"OC_I(3)"\n\t" \ - /*r7=R7=G'-C'*/ \ - "psubw %%mm0,%%mm7\n\t" \ - "paddw "OC_8",%%mm7\n\t" \ - /*r0=C'+C'*/ \ - "paddw %%mm0,%%mm0\n\t" \ - /*r0=R0=G'+C'*/ \ - "paddw %%mm7,%%mm0\n\t" \ - /*r7=NR7*/ \ - "psraw $4,%%mm7\n\t" \ - /*Store NR6 at J(6).*/ \ - "movq %%mm6,"OC_J(6)"\n\t" \ - /*r0=NR0*/ \ - "psraw $4,%%mm0\n\t" \ - /*Store NR5 at J(5).*/ \ - "movq %%mm5,"OC_J(5)"\n\t" \ - /*Store NR7 at J(7).*/ \ - "movq %%mm7,"OC_J(7)"\n\t" \ - /*Store NR0 at I(0).*/ \ - "movq %%mm0,"OC_I(0)"\n\t" \ - "#end OC_COLUMN_IDCT\n\t" \ - -#define OC_MID(_m,_i) OC_M2STR(_m+(_i)*8)"(%[c])" -#define OC_C(_i) OC_MID(OC_COSINE_OFFSET,_i-1) -#define OC_8 OC_MID(OC_EIGHT_OFFSET,0) - -static void oc_idct8x8_slow(ogg_int16_t _y[64]){ - /*This routine accepts an 8x8 matrix, but in partially transposed form. - Every 4x4 block is transposed.*/ - __asm__ __volatile__( -#define OC_I(_k) OC_M2STR((_k*16))"(%[y])" -#define OC_J(_k) OC_M2STR(((_k-4)*16)+8)"(%[y])" - OC_ROW_IDCT - OC_TRANSPOSE -#undef OC_I -#undef OC_J -#define OC_I(_k) OC_M2STR((_k*16)+64)"(%[y])" -#define OC_J(_k) OC_M2STR(((_k-4)*16)+72)"(%[y])" - OC_ROW_IDCT - OC_TRANSPOSE -#undef OC_I -#undef OC_J -#define OC_I(_k) OC_M2STR((_k*16))"(%[y])" -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT -#undef OC_I -#undef OC_J -#define OC_I(_k) OC_M2STR((_k*16)+8)"(%[y])" -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT -#undef OC_I -#undef OC_J - : - :[y]"r"(_y),[c]"r"(OC_IDCT_CONSTS) - ); -} - -/*25 cycles.*/ -#define OC_IDCT_BEGIN_10 \ - "#OC_IDCT_BEGIN_10\n\t" \ - "movq "OC_I(3)",%%mm2\n\t" \ - "nop\n\t" \ - "movq "OC_C(3)",%%mm6\n\t" \ - "movq %%mm2,%%mm4\n\t" \ - "movq "OC_C(5)",%%mm1\n\t" \ - "pmulhw %%mm6,%%mm4\n\t" \ - "movq "OC_I(1)",%%mm3\n\t" \ - "pmulhw %%mm2,%%mm1\n\t" \ - "movq "OC_C(1)",%%mm0\n\t" \ - "paddw %%mm2,%%mm4\n\t" \ - "pxor %%mm6,%%mm6\n\t" \ - "paddw %%mm1,%%mm2\n\t" \ - "movq "OC_I(2)",%%mm5\n\t" \ - "pmulhw %%mm3,%%mm0\n\t" \ - "movq %%mm5,%%mm1\n\t" \ - "paddw %%mm3,%%mm0\n\t" \ - "pmulhw "OC_C(7)",%%mm3\n\t" \ - "psubw %%mm2,%%mm6\n\t" \ - "pmulhw "OC_C(2)",%%mm5\n\t" \ - "psubw %%mm4,%%mm0\n\t" \ - "movq "OC_I(2)",%%mm7\n\t" \ - "paddw %%mm4,%%mm4\n\t" \ - "paddw %%mm5,%%mm7\n\t" \ - "paddw %%mm0,%%mm4\n\t" \ - "pmulhw "OC_C(6)",%%mm1\n\t" \ - "psubw %%mm6,%%mm3\n\t" \ - "movq %%mm4,"OC_I(1)"\n\t" \ - "paddw %%mm6,%%mm6\n\t" \ - "movq "OC_C(4)",%%mm4\n\t" \ - "paddw %%mm3,%%mm6\n\t" \ - "movq %%mm3,%%mm5\n\t" \ - "pmulhw %%mm4,%%mm3\n\t" \ - "movq %%mm6,"OC_I(2)"\n\t" \ - "movq %%mm0,%%mm2\n\t" \ - "movq "OC_I(0)",%%mm6\n\t" \ - "pmulhw %%mm4,%%mm0\n\t" \ - "paddw %%mm3,%%mm5\n\t" \ - "paddw %%mm0,%%mm2\n\t" \ - "psubw %%mm1,%%mm5\n\t" \ - "pmulhw %%mm4,%%mm6\n\t" \ - "paddw "OC_I(0)",%%mm6\n\t" \ - "paddw %%mm1,%%mm1\n\t" \ - "movq %%mm6,%%mm4\n\t" \ - "paddw %%mm5,%%mm1\n\t" \ - "psubw %%mm2,%%mm6\n\t" \ - "paddw %%mm2,%%mm2\n\t" \ - "movq "OC_I(1)",%%mm0\n\t" \ - "paddw %%mm6,%%mm2\n\t" \ - "psubw %%mm1,%%mm2\n\t" \ - "nop\n\t" \ - "#end OC_IDCT_BEGIN_10\n\t" \ - -/*25+8=33 cycles.*/ -#define OC_ROW_IDCT_10 \ - "#OC_ROW_IDCT_10\n\t" \ - OC_IDCT_BEGIN_10 \ - /*r3=D'*/ \ - "movq "OC_I(2)",%%mm3\n\t" \ - /*r4=E'=E-G*/ \ - "psubw %%mm7,%%mm4\n\t" \ - /*r1=H'+H'*/ \ - "paddw %%mm1,%%mm1\n\t" \ - /*r7=G+G*/ \ - "paddw %%mm7,%%mm7\n\t" \ - /*r1=R1=A''+H'*/ \ - "paddw %%mm2,%%mm1\n\t" \ - /*r7=G'=E+G*/ \ - "paddw %%mm4,%%mm7\n\t" \ - /*r4=R4=E'-D'*/ \ - "psubw %%mm3,%%mm4\n\t" \ - "paddw %%mm3,%%mm3\n\t" \ - /*r6=R6=F'-B''*/ \ - "psubw %%mm5,%%mm6\n\t" \ - "paddw %%mm5,%%mm5\n\t" \ - /*r3=R3=E'+D'*/ \ - "paddw %%mm4,%%mm3\n\t" \ - /*r5=R5=F'+B''*/ \ - "paddw %%mm6,%%mm5\n\t" \ - /*r7=R7=G'-C'*/ \ - "psubw %%mm0,%%mm7\n\t" \ - "paddw %%mm0,%%mm0\n\t" \ - /*Save R1.*/ \ - "movq %%mm1,"OC_I(1)"\n\t" \ - /*r0=R0=G'+C'*/ \ - "paddw %%mm7,%%mm0\n\t" \ - "#end OC_ROW_IDCT_10\n\t" \ - -/*25+19=44 cycles'*/ -#define OC_COLUMN_IDCT_10 \ - "#OC_COLUMN_IDCT_10\n\t" \ - OC_IDCT_BEGIN_10 \ - "paddw "OC_8",%%mm2\n\t" \ - /*r1=H'+H'*/ \ - "paddw %%mm1,%%mm1\n\t" \ - /*r1=R1=A''+H'*/ \ - "paddw %%mm2,%%mm1\n\t" \ - /*r2=NR2*/ \ - "psraw $4,%%mm2\n\t" \ - /*r4=E'=E-G*/ \ - "psubw %%mm7,%%mm4\n\t" \ - /*r1=NR1*/ \ - "psraw $4,%%mm1\n\t" \ - /*r3=D'*/ \ - "movq "OC_I(2)",%%mm3\n\t" \ - /*r7=G+G*/ \ - "paddw %%mm7,%%mm7\n\t" \ - /*Store NR2 at I(2).*/ \ - "movq %%mm2,"OC_I(2)"\n\t" \ - /*r7=G'=E+G*/ \ - "paddw %%mm4,%%mm7\n\t" \ - /*Store NR1 at I(1).*/ \ - "movq %%mm1,"OC_I(1)"\n\t" \ - /*r4=R4=E'-D'*/ \ - "psubw %%mm3,%%mm4\n\t" \ - "paddw "OC_8",%%mm4\n\t" \ - /*r3=D'+D'*/ \ - "paddw %%mm3,%%mm3\n\t" \ - /*r3=R3=E'+D'*/ \ - "paddw %%mm4,%%mm3\n\t" \ - /*r4=NR4*/ \ - "psraw $4,%%mm4\n\t" \ - /*r6=R6=F'-B''*/ \ - "psubw %%mm5,%%mm6\n\t" \ - /*r3=NR3*/ \ - "psraw $4,%%mm3\n\t" \ - "paddw "OC_8",%%mm6\n\t" \ - /*r5=B''+B''*/ \ - "paddw %%mm5,%%mm5\n\t" \ - /*r5=R5=F'+B''*/ \ - "paddw %%mm6,%%mm5\n\t" \ - /*r6=NR6*/ \ - "psraw $4,%%mm6\n\t" \ - /*Store NR4 at J(4).*/ \ - "movq %%mm4,"OC_J(4)"\n\t" \ - /*r5=NR5*/ \ - "psraw $4,%%mm5\n\t" \ - /*Store NR3 at I(3).*/ \ - "movq %%mm3,"OC_I(3)"\n\t" \ - /*r7=R7=G'-C'*/ \ - "psubw %%mm0,%%mm7\n\t" \ - "paddw "OC_8",%%mm7\n\t" \ - /*r0=C'+C'*/ \ - "paddw %%mm0,%%mm0\n\t" \ - /*r0=R0=G'+C'*/ \ - "paddw %%mm7,%%mm0\n\t" \ - /*r7=NR7*/ \ - "psraw $4,%%mm7\n\t" \ - /*Store NR6 at J(6).*/ \ - "movq %%mm6,"OC_J(6)"\n\t" \ - /*r0=NR0*/ \ - "psraw $4,%%mm0\n\t" \ - /*Store NR5 at J(5).*/ \ - "movq %%mm5,"OC_J(5)"\n\t" \ - /*Store NR7 at J(7).*/ \ - "movq %%mm7,"OC_J(7)"\n\t" \ - /*Store NR0 at I(0).*/ \ - "movq %%mm0,"OC_I(0)"\n\t" \ - "#end OC_COLUMN_IDCT_10\n\t" \ - -static void oc_idct8x8_10(ogg_int16_t _y[64]){ - __asm__ __volatile__( -#define OC_I(_k) OC_M2STR((_k*16))"(%[y])" -#define OC_J(_k) OC_M2STR(((_k-4)*16)+8)"(%[y])" - /*Done with dequant, descramble, and partial transpose. - Now do the iDCT itself.*/ - OC_ROW_IDCT_10 - OC_TRANSPOSE -#undef OC_I -#undef OC_J -#define OC_I(_k) OC_M2STR((_k*16))"(%[y])" -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT_10 -#undef OC_I -#undef OC_J -#define OC_I(_k) OC_M2STR((_k*16)+8)"(%[y])" -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT_10 -#undef OC_I -#undef OC_J - : - :[y]"r"(_y),[c]"r"(OC_IDCT_CONSTS) - ); -} - -/*Performs an inverse 8x8 Type-II DCT transform. - The input is assumed to be scaled by a factor of 4 relative to orthonormal - version of the transform.*/ -void oc_idct8x8_mmx(ogg_int16_t _y[64],int _last_zzi){ - /*_last_zzi is subtly different from an actual count of the number of - coefficients we decoded for this block. - It contains the value of zzi BEFORE the final token in the block was - decoded. - In most cases this is an EOB token (the continuation of an EOB run from a - previous block counts), and so this is the same as the coefficient count. - However, in the case that the last token was NOT an EOB token, but filled - the block up with exactly 64 coefficients, _last_zzi will be less than 64. - Provided the last token was not a pure zero run, the minimum value it can - be is 46, and so that doesn't affect any of the cases in this routine. - However, if the last token WAS a pure zero run of length 63, then _last_zzi - will be 1 while the number of coefficients decoded is 64. - Thus, we will trigger the following special case, where the real - coefficient count would not. - Note also that a zero run of length 64 will give _last_zzi a value of 0, - but we still process the DC coefficient, which might have a non-zero value - due to DC prediction. - Although convoluted, this is arguably the correct behavior: it allows us to - use a smaller transform when the block ends with a long zero run instead - of a normal EOB token. - It could be smarter... multiple separate zero runs at the end of a block - will fool it, but an encoder that generates these really deserves what it - gets. - Needless to say we inherited this approach from VP3.*/ - /*Then perform the iDCT.*/ - if(_last_zzi<10)oc_idct8x8_10(_y); - else oc_idct8x8_slow(_y); -} - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxloop.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxloop.h deleted file mode 100644 index 2e870c79..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxloop.h +++ /dev/null @@ -1,215 +0,0 @@ -#if !defined(_x86_mmxloop_H) -# define _x86_mmxloop_H (1) -# include -# include "x86int.h" - -#if defined(OC_X86_ASM) - -/*On entry, mm0={a0,...,a7}, mm1={b0,...,b7}, mm2={c0,...,c7}, mm3={d0,...d7}. - On exit, mm1={b0+lflim(R_0,L),...,b7+lflim(R_7,L)} and - mm2={c0-lflim(R_0,L),...,c7-lflim(R_7,L)}; mm0 and mm3 are clobbered.*/ -#define OC_LOOP_FILTER8_MMX \ - "#OC_LOOP_FILTER8_MMX\n\t" \ - /*mm7=0*/ \ - "pxor %%mm7,%%mm7\n\t" \ - /*mm6:mm0={a0,...,a7}*/ \ - "movq %%mm0,%%mm6\n\t" \ - "punpcklbw %%mm7,%%mm0\n\t" \ - "punpckhbw %%mm7,%%mm6\n\t" \ - /*mm3:mm5={d0,...,d7}*/ \ - "movq %%mm3,%%mm5\n\t" \ - "punpcklbw %%mm7,%%mm3\n\t" \ - "punpckhbw %%mm7,%%mm5\n\t" \ - /*mm6:mm0={a0-d0,...,a7-d7}*/ \ - "psubw %%mm3,%%mm0\n\t" \ - "psubw %%mm5,%%mm6\n\t" \ - /*mm3:mm1={b0,...,b7}*/ \ - "movq %%mm1,%%mm3\n\t" \ - "punpcklbw %%mm7,%%mm1\n\t" \ - "movq %%mm2,%%mm4\n\t" \ - "punpckhbw %%mm7,%%mm3\n\t" \ - /*mm5:mm4={c0,...,c7}*/ \ - "movq %%mm2,%%mm5\n\t" \ - "punpcklbw %%mm7,%%mm4\n\t" \ - "punpckhbw %%mm7,%%mm5\n\t" \ - /*mm7={3}x4 \ - mm5:mm4={c0-b0,...,c7-b7}*/ \ - "pcmpeqw %%mm7,%%mm7\n\t" \ - "psubw %%mm1,%%mm4\n\t" \ - "psrlw $14,%%mm7\n\t" \ - "psubw %%mm3,%%mm5\n\t" \ - /*Scale by 3.*/ \ - "pmullw %%mm7,%%mm4\n\t" \ - "pmullw %%mm7,%%mm5\n\t" \ - /*mm7={4}x4 \ - mm5:mm4=f={a0-d0+3*(c0-b0),...,a7-d7+3*(c7-b7)}*/ \ - "psrlw $1,%%mm7\n\t" \ - "paddw %%mm0,%%mm4\n\t" \ - "psllw $2,%%mm7\n\t" \ - "movq (%[ll]),%%mm0\n\t" \ - "paddw %%mm6,%%mm5\n\t" \ - /*R_i has the range [-127,128], so we compute -R_i instead. \ - mm4=-R_i=-(f+4>>3)=0xFF^(f-4>>3)*/ \ - "psubw %%mm7,%%mm4\n\t" \ - "psubw %%mm7,%%mm5\n\t" \ - "psraw $3,%%mm4\n\t" \ - "psraw $3,%%mm5\n\t" \ - "pcmpeqb %%mm7,%%mm7\n\t" \ - "packsswb %%mm5,%%mm4\n\t" \ - "pxor %%mm6,%%mm6\n\t" \ - "pxor %%mm7,%%mm4\n\t" \ - "packuswb %%mm3,%%mm1\n\t" \ - /*Now compute lflim of -mm4 cf. Section 7.10 of the sepc.*/ \ - /*There's no unsigned byte+signed byte with unsigned saturation op code, so \ - we have to split things by sign (the other option is to work in 16 bits, \ - but working in 8 bits gives much better parallelism). \ - We compute abs(R_i), but save a mask of which terms were negative in mm6. \ - Then we compute mm4=abs(lflim(R_i,L))=min(abs(R_i),max(2*L-abs(R_i),0)). \ - Finally, we split mm4 into positive and negative pieces using the mask in \ - mm6, and add and subtract them as appropriate.*/ \ - /*mm4=abs(-R_i)*/ \ - /*mm7=255-2*L*/ \ - "pcmpgtb %%mm4,%%mm6\n\t" \ - "psubb %%mm0,%%mm7\n\t" \ - "pxor %%mm6,%%mm4\n\t" \ - "psubb %%mm0,%%mm7\n\t" \ - "psubb %%mm6,%%mm4\n\t" \ - /*mm7=255-max(2*L-abs(R_i),0)*/ \ - "paddusb %%mm4,%%mm7\n\t" \ - /*mm4=min(abs(R_i),max(2*L-abs(R_i),0))*/ \ - "paddusb %%mm7,%%mm4\n\t" \ - "psubusb %%mm7,%%mm4\n\t" \ - /*Now split mm4 by the original sign of -R_i.*/ \ - "movq %%mm4,%%mm5\n\t" \ - "pand %%mm6,%%mm4\n\t" \ - "pandn %%mm5,%%mm6\n\t" \ - /*mm1={b0+lflim(R_0,L),...,b7+lflim(R_7,L)}*/ \ - /*mm2={c0-lflim(R_0,L),...,c7-lflim(R_7,L)}*/ \ - "paddusb %%mm4,%%mm1\n\t" \ - "psubusb %%mm4,%%mm2\n\t" \ - "psubusb %%mm6,%%mm1\n\t" \ - "paddusb %%mm6,%%mm2\n\t" \ - -#define OC_LOOP_FILTER_V_MMX(_pix,_ystride,_ll) \ - do{ \ - ptrdiff_t ystride3__; \ - __asm__ __volatile__( \ - /*mm0={a0,...,a7}*/ \ - "movq (%[pix]),%%mm0\n\t" \ - /*ystride3=_ystride*3*/ \ - "lea (%[ystride],%[ystride],2),%[ystride3]\n\t" \ - /*mm3={d0,...,d7}*/ \ - "movq (%[pix],%[ystride3]),%%mm3\n\t" \ - /*mm1={b0,...,b7}*/ \ - "movq (%[pix],%[ystride]),%%mm1\n\t" \ - /*mm2={c0,...,c7}*/ \ - "movq (%[pix],%[ystride],2),%%mm2\n\t" \ - OC_LOOP_FILTER8_MMX \ - /*Write it back out.*/ \ - "movq %%mm1,(%[pix],%[ystride])\n\t" \ - "movq %%mm2,(%[pix],%[ystride],2)\n\t" \ - :[ystride3]"=&r"(ystride3__) \ - :[pix]"r"(_pix-_ystride*2),[ystride]"r"((ptrdiff_t)(_ystride)), \ - [ll]"r"(_ll) \ - :"memory" \ - ); \ - } \ - while(0) - -#define OC_LOOP_FILTER_H_MMX(_pix,_ystride,_ll) \ - do{ \ - unsigned char *pix__; \ - ptrdiff_t ystride3__; \ - ptrdiff_t d__; \ - pix__=(_pix)-2; \ - __asm__ __volatile__( \ - /*x x x x d0 c0 b0 a0*/ \ - "movd (%[pix]),%%mm0\n\t" \ - /*x x x x d1 c1 b1 a1*/ \ - "movd (%[pix],%[ystride]),%%mm1\n\t" \ - /*ystride3=_ystride*3*/ \ - "lea (%[ystride],%[ystride],2),%[ystride3]\n\t" \ - /*x x x x d2 c2 b2 a2*/ \ - "movd (%[pix],%[ystride],2),%%mm2\n\t" \ - /*x x x x d3 c3 b3 a3*/ \ - "lea (%[pix],%[ystride],4),%[d]\n\t" \ - "movd (%[pix],%[ystride3]),%%mm3\n\t" \ - /*x x x x d4 c4 b4 a4*/ \ - "movd (%[d]),%%mm4\n\t" \ - /*x x x x d5 c5 b5 a5*/ \ - "movd (%[d],%[ystride]),%%mm5\n\t" \ - /*x x x x d6 c6 b6 a6*/ \ - "movd (%[d],%[ystride],2),%%mm6\n\t" \ - /*x x x x d7 c7 b7 a7*/ \ - "movd (%[d],%[ystride3]),%%mm7\n\t" \ - /*mm0=d1 d0 c1 c0 b1 b0 a1 a0*/ \ - "punpcklbw %%mm1,%%mm0\n\t" \ - /*mm2=d3 d2 c3 c2 b3 b2 a3 a2*/ \ - "punpcklbw %%mm3,%%mm2\n\t" \ - /*mm3=d1 d0 c1 c0 b1 b0 a1 a0*/ \ - "movq %%mm0,%%mm3\n\t" \ - /*mm0=b3 b2 b1 b0 a3 a2 a1 a0*/ \ - "punpcklwd %%mm2,%%mm0\n\t" \ - /*mm3=d3 d2 d1 d0 c3 c2 c1 c0*/ \ - "punpckhwd %%mm2,%%mm3\n\t" \ - /*mm1=b3 b2 b1 b0 a3 a2 a1 a0*/ \ - "movq %%mm0,%%mm1\n\t" \ - /*mm4=d5 d4 c5 c4 b5 b4 a5 a4*/ \ - "punpcklbw %%mm5,%%mm4\n\t" \ - /*mm6=d7 d6 c7 c6 b7 b6 a7 a6*/ \ - "punpcklbw %%mm7,%%mm6\n\t" \ - /*mm5=d5 d4 c5 c4 b5 b4 a5 a4*/ \ - "movq %%mm4,%%mm5\n\t" \ - /*mm4=b7 b6 b5 b4 a7 a6 a5 a4*/ \ - "punpcklwd %%mm6,%%mm4\n\t" \ - /*mm5=d7 d6 d5 d4 c7 c6 c5 c4*/ \ - "punpckhwd %%mm6,%%mm5\n\t" \ - /*mm2=d3 d2 d1 d0 c3 c2 c1 c0*/ \ - "movq %%mm3,%%mm2\n\t" \ - /*mm0=a7 a6 a5 a4 a3 a2 a1 a0*/ \ - "punpckldq %%mm4,%%mm0\n\t" \ - /*mm1=b7 b6 b5 b4 b3 b2 b1 b0*/ \ - "punpckhdq %%mm4,%%mm1\n\t" \ - /*mm2=c7 c6 c5 c4 c3 c2 c1 c0*/ \ - "punpckldq %%mm5,%%mm2\n\t" \ - /*mm3=d7 d6 d5 d4 d3 d2 d1 d0*/ \ - "punpckhdq %%mm5,%%mm3\n\t" \ - OC_LOOP_FILTER8_MMX \ - /*mm2={b0+R_0'',...,b7+R_7''}*/ \ - "movq %%mm1,%%mm0\n\t" \ - /*mm1={b0+R_0'',c0-R_0'',...,b3+R_3'',c3-R_3''}*/ \ - "punpcklbw %%mm2,%%mm1\n\t" \ - /*mm2={b4+R_4'',c4-R_4'',...,b7+R_7'',c7-R_7''}*/ \ - "punpckhbw %%mm2,%%mm0\n\t" \ - /*[d]=c1 b1 c0 b0*/ \ - "movd %%mm1,%[d]\n\t" \ - "movw %w[d],1(%[pix])\n\t" \ - "psrlq $32,%%mm1\n\t" \ - "shr $16,%[d]\n\t" \ - "movw %w[d],1(%[pix],%[ystride])\n\t" \ - /*[d]=c3 b3 c2 b2*/ \ - "movd %%mm1,%[d]\n\t" \ - "movw %w[d],1(%[pix],%[ystride],2)\n\t" \ - "shr $16,%[d]\n\t" \ - "movw %w[d],1(%[pix],%[ystride3])\n\t" \ - "lea (%[pix],%[ystride],4),%[pix]\n\t" \ - /*[d]=c5 b5 c4 b4*/ \ - "movd %%mm0,%[d]\n\t" \ - "movw %w[d],1(%[pix])\n\t" \ - "psrlq $32,%%mm0\n\t" \ - "shr $16,%[d]\n\t" \ - "movw %w[d],1(%[pix],%[ystride])\n\t" \ - /*[d]=c7 b7 c6 b6*/ \ - "movd %%mm0,%[d]\n\t" \ - "movw %w[d],1(%[pix],%[ystride],2)\n\t" \ - "shr $16,%[d]\n\t" \ - "movw %w[d],1(%[pix],%[ystride3])\n\t" \ - :[pix]"+r"(pix__),[ystride3]"=&r"(ystride3__),[d]"=&r"(d__) \ - :[ystride]"r"((ptrdiff_t)(_ystride)),[ll]"r"(_ll) \ - :"memory" \ - ); \ - } \ - while(0) - -# endif -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxstate.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxstate.c deleted file mode 100644 index 808b0a78..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86/mmxstate.c +++ /dev/null @@ -1,188 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: mmxstate.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -/*MMX acceleration of complete fragment reconstruction algorithm. - Originally written by Rudolf Marek.*/ -#include -#include "x86int.h" -#include "mmxfrag.h" -#include "mmxloop.h" - -#if defined(OC_X86_ASM) - -void oc_state_frag_recon_mmx(const oc_theora_state *_state,ptrdiff_t _fragi, - int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant){ - unsigned char *dst; - ptrdiff_t frag_buf_off; - int ystride; - int mb_mode; - /*Apply the inverse transform.*/ - /*Special case only having a DC component.*/ - if(_last_zzi<2){ - /*Note that this value must be unsigned, to keep the __asm__ block from - sign-extending it when it puts it in a register.*/ - ogg_uint16_t p; - /*We round this dequant product (and not any of the others) because there's - no iDCT rounding.*/ - p=(ogg_int16_t)(_dct_coeffs[0]*(ogg_int32_t)_dc_quant+15>>5); - /*Fill _dct_coeffs with p.*/ - __asm__ __volatile__( - /*mm0=0000 0000 0000 AAAA*/ - "movd %[p],%%mm0\n\t" - /*mm0=0000 0000 AAAA AAAA*/ - "punpcklwd %%mm0,%%mm0\n\t" - /*mm0=AAAA AAAA AAAA AAAA*/ - "punpckldq %%mm0,%%mm0\n\t" - "movq %%mm0,(%[y])\n\t" - "movq %%mm0,8(%[y])\n\t" - "movq %%mm0,16(%[y])\n\t" - "movq %%mm0,24(%[y])\n\t" - "movq %%mm0,32(%[y])\n\t" - "movq %%mm0,40(%[y])\n\t" - "movq %%mm0,48(%[y])\n\t" - "movq %%mm0,56(%[y])\n\t" - "movq %%mm0,64(%[y])\n\t" - "movq %%mm0,72(%[y])\n\t" - "movq %%mm0,80(%[y])\n\t" - "movq %%mm0,88(%[y])\n\t" - "movq %%mm0,96(%[y])\n\t" - "movq %%mm0,104(%[y])\n\t" - "movq %%mm0,112(%[y])\n\t" - "movq %%mm0,120(%[y])\n\t" - : - :[y]"r"(_dct_coeffs),[p]"r"((unsigned)p) - :"memory" - ); - } - else{ - /*Dequantize the DC coefficient.*/ - _dct_coeffs[0]=(ogg_int16_t)(_dct_coeffs[0]*(int)_dc_quant); - oc_idct8x8_mmx(_dct_coeffs,_last_zzi); - } - /*Fill in the target buffer.*/ - frag_buf_off=_state->frag_buf_offs[_fragi]; - mb_mode=_state->frags[_fragi].mb_mode; - ystride=_state->ref_ystride[_pli]; - dst=_state->ref_frame_data[_state->ref_frame_idx[OC_FRAME_SELF]]+frag_buf_off; - if(mb_mode==OC_MODE_INTRA)oc_frag_recon_intra_mmx(dst,ystride,_dct_coeffs); - else{ - const unsigned char *ref; - int mvoffsets[2]; - ref= - _state->ref_frame_data[_state->ref_frame_idx[OC_FRAME_FOR_MODE(mb_mode)]] - +frag_buf_off; - if(oc_state_get_mv_offsets(_state,mvoffsets,_pli, - _state->frag_mvs[_fragi][0],_state->frag_mvs[_fragi][1])>1){ - oc_frag_recon_inter2_mmx(dst,ref+mvoffsets[0],ref+mvoffsets[1],ystride, - _dct_coeffs); - } - else oc_frag_recon_inter_mmx(dst,ref+mvoffsets[0],ystride,_dct_coeffs); - } -} - -/*We copy these entire function to inline the actual MMX routines so that we - use only a single indirect call.*/ - -/*Copies the fragments specified by the lists of fragment indices from one - frame to another. - _fragis: A pointer to a list of fragment indices. - _nfragis: The number of fragment indices to copy. - _dst_frame: The reference frame to copy to. - _src_frame: The reference frame to copy from. - _pli: The color plane the fragments lie in.*/ -void oc_state_frag_copy_list_mmx(const oc_theora_state *_state, - const ptrdiff_t *_fragis,ptrdiff_t _nfragis, - int _dst_frame,int _src_frame,int _pli){ - const ptrdiff_t *frag_buf_offs; - const unsigned char *src_frame_data; - unsigned char *dst_frame_data; - ptrdiff_t fragii; - int ystride; - dst_frame_data=_state->ref_frame_data[_state->ref_frame_idx[_dst_frame]]; - src_frame_data=_state->ref_frame_data[_state->ref_frame_idx[_src_frame]]; - ystride=_state->ref_ystride[_pli]; - frag_buf_offs=_state->frag_buf_offs; - for(fragii=0;fragii<_nfragis;fragii++){ - ptrdiff_t frag_buf_off; - frag_buf_off=frag_buf_offs[_fragis[fragii]]; - OC_FRAG_COPY_MMX(dst_frame_data+frag_buf_off, - src_frame_data+frag_buf_off,ystride); - } -} - -/*Apply the loop filter to a given set of fragment rows in the given plane. - The filter may be run on the bottom edge, affecting pixels in the next row of - fragments, so this row also needs to be available. - _bv: The bounding values array. - _refi: The index of the frame buffer to filter. - _pli: The color plane to filter. - _fragy0: The Y coordinate of the first fragment row to filter. - _fragy_end: The Y coordinate of the fragment row to stop filtering at.*/ -void oc_state_loop_filter_frag_rows_mmx(const oc_theora_state *_state, - int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end){ - OC_ALIGN8(unsigned char ll[8]); - const oc_fragment_plane *fplane; - const oc_fragment *frags; - const ptrdiff_t *frag_buf_offs; - unsigned char *ref_frame_data; - ptrdiff_t fragi_top; - ptrdiff_t fragi_bot; - ptrdiff_t fragi0; - ptrdiff_t fragi0_end; - int ystride; - int nhfrags; - memset(ll,_state->loop_filter_limits[_state->qis[0]],sizeof(ll)); - fplane=_state->fplanes+_pli; - nhfrags=fplane->nhfrags; - fragi_top=fplane->froffset; - fragi_bot=fragi_top+fplane->nfrags; - fragi0=fragi_top+_fragy0*(ptrdiff_t)nhfrags; - fragi0_end=fragi0+(_fragy_end-_fragy0)*(ptrdiff_t)nhfrags; - ystride=_state->ref_ystride[_pli]; - frags=_state->frags; - frag_buf_offs=_state->frag_buf_offs; - ref_frame_data=_state->ref_frame_data[_refi]; - /*The following loops are constructed somewhat non-intuitively on purpose. - The main idea is: if a block boundary has at least one coded fragment on - it, the filter is applied to it. - However, the order that the filters are applied in matters, and VP3 chose - the somewhat strange ordering used below.*/ - while(fragi0fragi0)OC_LOOP_FILTER_H_MMX(ref,ystride,ll); - if(fragi0>fragi_top)OC_LOOP_FILTER_V_MMX(ref,ystride,ll); - if(fragi+1cpu_flags=oc_cpu_flags_get(); - if(_state->cpu_flags&OC_CPU_X86_MMX){ - _state->opt_vtable.frag_copy=oc_frag_copy_mmx; - _state->opt_vtable.frag_recon_intra=oc_frag_recon_intra_mmx; - _state->opt_vtable.frag_recon_inter=oc_frag_recon_inter_mmx; - _state->opt_vtable.frag_recon_inter2=oc_frag_recon_inter2_mmx; - _state->opt_vtable.idct8x8=oc_idct8x8_mmx; - _state->opt_vtable.state_frag_recon=oc_state_frag_recon_mmx; - _state->opt_vtable.state_frag_copy_list=oc_state_frag_copy_list_mmx; - _state->opt_vtable.state_loop_filter_frag_rows= - oc_state_loop_filter_frag_rows_mmx; - _state->opt_vtable.restore_fpu=oc_restore_fpu_mmx; - _state->opt_data.dct_fzig_zag=OC_FZIG_ZAG_MMX; - } - else oc_state_vtable_init_c(_state); -} -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxfrag.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxfrag.c deleted file mode 100644 index 4eb2084d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxfrag.c +++ /dev/null @@ -1,337 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: mmxfrag.c 16578 2009-09-25 19:50:48Z cristianadam $ - - ********************************************************************/ - -/*MMX acceleration of fragment reconstruction for motion compensation. - Originally written by Rudolf Marek. - Additional optimization by Nils Pipenbrinck. - Note: Loops are unrolled for best performance. - The iteration each instruction belongs to is marked in the comments as #i.*/ -#include -#include "x86int.h" -#include "mmxfrag.h" - -#if defined(OC_X86_ASM) - -/*Copies an 8x8 block of pixels from _src to _dst, assuming _ystride bytes - between rows.*/ -void oc_frag_copy_mmx(unsigned char *_dst, - const unsigned char *_src,int _ystride){ -#define SRC edx -#define DST eax -#define YSTRIDE ecx -#define YSTRIDE3 esi - OC_FRAG_COPY_MMX(_dst,_src,_ystride); -#undef SRC -#undef DST -#undef YSTRIDE -#undef YSTRIDE3 -} - -void oc_frag_recon_intra_mmx(unsigned char *_dst,int _ystride, - const ogg_int16_t *_residue){ - __asm{ -#define DST edx -#define DST4 esi -#define YSTRIDE eax -#define YSTRIDE3 edi -#define RESIDUE ecx - mov DST,_dst - mov YSTRIDE,_ystride - mov RESIDUE,_residue - lea DST4,[DST+YSTRIDE*4] - lea YSTRIDE3,[YSTRIDE+YSTRIDE*2] - /*Set mm0 to 0xFFFFFFFFFFFFFFFF.*/ - pcmpeqw mm0,mm0 - /*#0 Load low residue.*/ - movq mm1,[0*8+RESIDUE] - /*#0 Load high residue.*/ - movq mm2,[1*8+RESIDUE] - /*Set mm0 to 0x8000800080008000.*/ - psllw mm0,15 - /*#1 Load low residue.*/ - movq mm3,[2*8+RESIDUE] - /*#1 Load high residue.*/ - movq mm4,[3*8+RESIDUE] - /*Set mm0 to 0x0080008000800080.*/ - psrlw mm0,8 - /*#2 Load low residue.*/ - movq mm5,[4*8+RESIDUE] - /*#2 Load high residue.*/ - movq mm6,[5*8+RESIDUE] - /*#0 Bias low residue.*/ - paddsw mm1,mm0 - /*#0 Bias high residue.*/ - paddsw mm2,mm0 - /*#0 Pack to byte.*/ - packuswb mm1,mm2 - /*#1 Bias low residue.*/ - paddsw mm3,mm0 - /*#1 Bias high residue.*/ - paddsw mm4,mm0 - /*#1 Pack to byte.*/ - packuswb mm3,mm4 - /*#2 Bias low residue.*/ - paddsw mm5,mm0 - /*#2 Bias high residue.*/ - paddsw mm6,mm0 - /*#2 Pack to byte.*/ - packuswb mm5,mm6 - /*#0 Write row.*/ - movq [DST],mm1 - /*#1 Write row.*/ - movq [DST+YSTRIDE],mm3 - /*#2 Write row.*/ - movq [DST+YSTRIDE*2],mm5 - /*#3 Load low residue.*/ - movq mm1,[6*8+RESIDUE] - /*#3 Load high residue.*/ - movq mm2,[7*8+RESIDUE] - /*#4 Load high residue.*/ - movq mm3,[8*8+RESIDUE] - /*#4 Load high residue.*/ - movq mm4,[9*8+RESIDUE] - /*#5 Load high residue.*/ - movq mm5,[10*8+RESIDUE] - /*#5 Load high residue.*/ - movq mm6,[11*8+RESIDUE] - /*#3 Bias low residue.*/ - paddsw mm1,mm0 - /*#3 Bias high residue.*/ - paddsw mm2,mm0 - /*#3 Pack to byte.*/ - packuswb mm1,mm2 - /*#4 Bias low residue.*/ - paddsw mm3,mm0 - /*#4 Bias high residue.*/ - paddsw mm4,mm0 - /*#4 Pack to byte.*/ - packuswb mm3,mm4 - /*#5 Bias low residue.*/ - paddsw mm5,mm0 - /*#5 Bias high residue.*/ - paddsw mm6,mm0 - /*#5 Pack to byte.*/ - packuswb mm5,mm6 - /*#3 Write row.*/ - movq [DST+YSTRIDE3],mm1 - /*#4 Write row.*/ - movq [DST4],mm3 - /*#5 Write row.*/ - movq [DST4+YSTRIDE],mm5 - /*#6 Load low residue.*/ - movq mm1,[12*8+RESIDUE] - /*#6 Load high residue.*/ - movq mm2,[13*8+RESIDUE] - /*#7 Load low residue.*/ - movq mm3,[14*8+RESIDUE] - /*#7 Load high residue.*/ - movq mm4,[15*8+RESIDUE] - /*#6 Bias low residue.*/ - paddsw mm1,mm0 - /*#6 Bias high residue.*/ - paddsw mm2,mm0 - /*#6 Pack to byte.*/ - packuswb mm1,mm2 - /*#7 Bias low residue.*/ - paddsw mm3,mm0 - /*#7 Bias high residue.*/ - paddsw mm4,mm0 - /*#7 Pack to byte.*/ - packuswb mm3,mm4 - /*#6 Write row.*/ - movq [DST4+YSTRIDE*2],mm1 - /*#7 Write row.*/ - movq [DST4+YSTRIDE3],mm3 -#undef DST -#undef DST4 -#undef YSTRIDE -#undef YSTRIDE3 -#undef RESIDUE - } -} - -void oc_frag_recon_inter_mmx(unsigned char *_dst,const unsigned char *_src, - int _ystride,const ogg_int16_t *_residue){ - int i; - /*Zero mm0.*/ - __asm pxor mm0,mm0; - for(i=4;i-->0;){ - __asm{ -#define DST edx -#define SRC ecx -#define YSTRIDE edi -#define RESIDUE eax - mov DST,_dst - mov SRC,_src - mov YSTRIDE,_ystride - mov RESIDUE,_residue - /*#0 Load source.*/ - movq mm3,[SRC] - /*#1 Load source.*/ - movq mm7,[SRC+YSTRIDE] - /*#0 Get copy of src.*/ - movq mm4,mm3 - /*#0 Expand high source.*/ - punpckhbw mm4,mm0 - /*#0 Expand low source.*/ - punpcklbw mm3,mm0 - /*#0 Add residue high.*/ - paddsw mm4,[8+RESIDUE] - /*#1 Get copy of src.*/ - movq mm2,mm7 - /*#0 Add residue low.*/ - paddsw mm3,[RESIDUE] - /*#1 Expand high source.*/ - punpckhbw mm2,mm0 - /*#0 Pack final row pixels.*/ - packuswb mm3,mm4 - /*#1 Expand low source.*/ - punpcklbw mm7,mm0 - /*#1 Add residue low.*/ - paddsw mm7,[16+RESIDUE] - /*#1 Add residue high.*/ - paddsw mm2,[24+RESIDUE] - /*Advance residue.*/ - lea RESIDUE,[32+RESIDUE] - /*#1 Pack final row pixels.*/ - packuswb mm7,mm2 - /*Advance src.*/ - lea SRC,[SRC+YSTRIDE*2] - /*#0 Write row.*/ - movq [DST],mm3 - /*#1 Write row.*/ - movq [DST+YSTRIDE],mm7 - /*Advance dst.*/ - lea DST,[DST+YSTRIDE*2] - mov _residue,RESIDUE - mov _dst,DST - mov _src,SRC -#undef DST -#undef SRC -#undef YSTRIDE -#undef RESIDUE - } - } -} - -void oc_frag_recon_inter2_mmx(unsigned char *_dst,const unsigned char *_src1, - const unsigned char *_src2,int _ystride,const ogg_int16_t *_residue){ - int i; - /*Zero mm7.*/ - __asm pxor mm7,mm7; - for(i=4;i-->0;){ - __asm{ -#define SRC1 ecx -#define SRC2 edi -#define YSTRIDE esi -#define RESIDUE edx -#define DST eax - mov YSTRIDE,_ystride - mov DST,_dst - mov RESIDUE,_residue - mov SRC1,_src1 - mov SRC2,_src2 - /*#0 Load src1.*/ - movq mm0,[SRC1] - /*#0 Load src2.*/ - movq mm2,[SRC2] - /*#0 Copy src1.*/ - movq mm1,mm0 - /*#0 Copy src2.*/ - movq mm3,mm2 - /*#1 Load src1.*/ - movq mm4,[SRC1+YSTRIDE] - /*#0 Unpack lower src1.*/ - punpcklbw mm0,mm7 - /*#1 Load src2.*/ - movq mm5,[SRC2+YSTRIDE] - /*#0 Unpack higher src1.*/ - punpckhbw mm1,mm7 - /*#0 Unpack lower src2.*/ - punpcklbw mm2,mm7 - /*#0 Unpack higher src2.*/ - punpckhbw mm3,mm7 - /*Advance src1 ptr.*/ - lea SRC1,[SRC1+YSTRIDE*2] - /*Advance src2 ptr.*/ - lea SRC2,[SRC2+YSTRIDE*2] - /*#0 Lower src1+src2.*/ - paddsw mm0,mm2 - /*#0 Higher src1+src2.*/ - paddsw mm1,mm3 - /*#1 Copy src1.*/ - movq mm2,mm4 - /*#0 Build lo average.*/ - psraw mm0,1 - /*#1 Copy src2.*/ - movq mm3,mm5 - /*#1 Unpack lower src1.*/ - punpcklbw mm4,mm7 - /*#0 Build hi average.*/ - psraw mm1,1 - /*#1 Unpack higher src1.*/ - punpckhbw mm2,mm7 - /*#0 low+=residue.*/ - paddsw mm0,[RESIDUE] - /*#1 Unpack lower src2.*/ - punpcklbw mm5,mm7 - /*#0 high+=residue.*/ - paddsw mm1,[8+RESIDUE] - /*#1 Unpack higher src2.*/ - punpckhbw mm3,mm7 - /*#1 Lower src1+src2.*/ - paddsw mm5,mm4 - /*#0 Pack and saturate.*/ - packuswb mm0,mm1 - /*#1 Higher src1+src2.*/ - paddsw mm3,mm2 - /*#0 Write row.*/ - movq [DST],mm0 - /*#1 Build lo average.*/ - psraw mm5,1 - /*#1 Build hi average.*/ - psraw mm3,1 - /*#1 low+=residue.*/ - paddsw mm5,[16+RESIDUE] - /*#1 high+=residue.*/ - paddsw mm3,[24+RESIDUE] - /*#1 Pack and saturate.*/ - packuswb mm5,mm3 - /*#1 Write row ptr.*/ - movq [DST+YSTRIDE],mm5 - /*Advance residue ptr.*/ - add RESIDUE,32 - /*Advance dest ptr.*/ - lea DST,[DST+YSTRIDE*2] - mov _dst,DST - mov _residue,RESIDUE - mov _src1,SRC1 - mov _src2,SRC2 -#undef SRC1 -#undef SRC2 -#undef YSTRIDE -#undef RESIDUE -#undef DST - } - } -} - -void oc_restore_fpu_mmx(void){ - __asm emms; -} - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxfrag.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxfrag.h deleted file mode 100644 index 45ee93e7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxfrag.h +++ /dev/null @@ -1,61 +0,0 @@ -#if !defined(_x86_vc_mmxfrag_H) -# define _x86_vc_mmxfrag_H (1) -# include -# include "x86int.h" - -#if defined(OC_X86_ASM) - -/*Copies an 8x8 block of pixels from _src to _dst, assuming _ystride bytes - between rows.*/ -#define OC_FRAG_COPY_MMX(_dst,_src,_ystride) \ - do{ \ - const unsigned char *src; \ - unsigned char *dst; \ - src=(_src); \ - dst=(_dst); \ - __asm mov SRC,src \ - __asm mov DST,dst \ - __asm mov YSTRIDE,_ystride \ - /*src+0*ystride*/ \ - __asm movq mm0,[SRC] \ - /*src+1*ystride*/ \ - __asm movq mm1,[SRC+YSTRIDE] \ - /*ystride3=ystride*3*/ \ - __asm lea YSTRIDE3,[YSTRIDE+YSTRIDE*2] \ - /*src+2*ystride*/ \ - __asm movq mm2,[SRC+YSTRIDE*2] \ - /*src+3*ystride*/ \ - __asm movq mm3,[SRC+YSTRIDE3] \ - /*dst+0*ystride*/ \ - __asm movq [DST],mm0 \ - /*dst+1*ystride*/ \ - __asm movq [DST+YSTRIDE],mm1 \ - /*Pointer to next 4.*/ \ - __asm lea SRC,[SRC+YSTRIDE*4] \ - /*dst+2*ystride*/ \ - __asm movq [DST+YSTRIDE*2],mm2 \ - /*dst+3*ystride*/ \ - __asm movq [DST+YSTRIDE3],mm3 \ - /*Pointer to next 4.*/ \ - __asm lea DST,[DST+YSTRIDE*4] \ - /*src+0*ystride*/ \ - __asm movq mm0,[SRC] \ - /*src+1*ystride*/ \ - __asm movq mm1,[SRC+YSTRIDE] \ - /*src+2*ystride*/ \ - __asm movq mm2,[SRC+YSTRIDE*2] \ - /*src+3*ystride*/ \ - __asm movq mm3,[SRC+YSTRIDE3] \ - /*dst+0*ystride*/ \ - __asm movq [DST],mm0 \ - /*dst+1*ystride*/ \ - __asm movq [DST+YSTRIDE],mm1 \ - /*dst+2*ystride*/ \ - __asm movq [DST+YSTRIDE*2],mm2 \ - /*dst+3*ystride*/ \ - __asm movq [DST+YSTRIDE3],mm3 \ - } \ - while(0) - -# endif -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxidct.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxidct.c deleted file mode 100644 index 8f5ff680..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxidct.c +++ /dev/null @@ -1,562 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: mmxidct.c 16503 2009-08-22 18:14:02Z giles $ - - ********************************************************************/ - -/*MMX acceleration of Theora's iDCT. - Originally written by Rudolf Marek, based on code from On2's VP3.*/ -#include "x86int.h" -#include "../dct.h" - -#if defined(OC_X86_ASM) - -/*These are offsets into the table of constants below.*/ -/*7 rows of cosines, in order: pi/16 * (1 ... 7).*/ -#define OC_COSINE_OFFSET (0) -/*A row of 8's.*/ -#define OC_EIGHT_OFFSET (56) - - - -/*A table of constants used by the MMX routines.*/ -static const __declspec(align(16))ogg_uint16_t - OC_IDCT_CONSTS[(7+1)*4]={ - (ogg_uint16_t)OC_C1S7,(ogg_uint16_t)OC_C1S7, - (ogg_uint16_t)OC_C1S7,(ogg_uint16_t)OC_C1S7, - (ogg_uint16_t)OC_C2S6,(ogg_uint16_t)OC_C2S6, - (ogg_uint16_t)OC_C2S6,(ogg_uint16_t)OC_C2S6, - (ogg_uint16_t)OC_C3S5,(ogg_uint16_t)OC_C3S5, - (ogg_uint16_t)OC_C3S5,(ogg_uint16_t)OC_C3S5, - (ogg_uint16_t)OC_C4S4,(ogg_uint16_t)OC_C4S4, - (ogg_uint16_t)OC_C4S4,(ogg_uint16_t)OC_C4S4, - (ogg_uint16_t)OC_C5S3,(ogg_uint16_t)OC_C5S3, - (ogg_uint16_t)OC_C5S3,(ogg_uint16_t)OC_C5S3, - (ogg_uint16_t)OC_C6S2,(ogg_uint16_t)OC_C6S2, - (ogg_uint16_t)OC_C6S2,(ogg_uint16_t)OC_C6S2, - (ogg_uint16_t)OC_C7S1,(ogg_uint16_t)OC_C7S1, - (ogg_uint16_t)OC_C7S1,(ogg_uint16_t)OC_C7S1, - 8, 8, 8, 8 -}; - -/*38 cycles*/ -#define OC_IDCT_BEGIN __asm{ \ - __asm movq mm2,OC_I(3) \ - __asm movq mm6,OC_C(3) \ - __asm movq mm4,mm2 \ - __asm movq mm7,OC_J(5) \ - __asm pmulhw mm4,mm6 \ - __asm movq mm1,OC_C(5) \ - __asm pmulhw mm6,mm7 \ - __asm movq mm5,mm1 \ - __asm pmulhw mm1,mm2 \ - __asm movq mm3,OC_I(1) \ - __asm pmulhw mm5,mm7 \ - __asm movq mm0,OC_C(1) \ - __asm paddw mm4,mm2 \ - __asm paddw mm6,mm7 \ - __asm paddw mm2,mm1 \ - __asm movq mm1,OC_J(7) \ - __asm paddw mm7,mm5 \ - __asm movq mm5,mm0 \ - __asm pmulhw mm0,mm3 \ - __asm paddw mm4,mm7 \ - __asm pmulhw mm5,mm1 \ - __asm movq mm7,OC_C(7) \ - __asm psubw mm6,mm2 \ - __asm paddw mm0,mm3 \ - __asm pmulhw mm3,mm7 \ - __asm movq mm2,OC_I(2) \ - __asm pmulhw mm7,mm1 \ - __asm paddw mm5,mm1 \ - __asm movq mm1,mm2 \ - __asm pmulhw mm2,OC_C(2) \ - __asm psubw mm3,mm5 \ - __asm movq mm5,OC_J(6) \ - __asm paddw mm0,mm7 \ - __asm movq mm7,mm5 \ - __asm psubw mm0,mm4 \ - __asm pmulhw mm5,OC_C(2) \ - __asm paddw mm2,mm1 \ - __asm pmulhw mm1,OC_C(6) \ - __asm paddw mm4,mm4 \ - __asm paddw mm4,mm0 \ - __asm psubw mm3,mm6 \ - __asm paddw mm5,mm7 \ - __asm paddw mm6,mm6 \ - __asm pmulhw mm7,OC_C(6) \ - __asm paddw mm6,mm3 \ - __asm movq OC_I(1),mm4 \ - __asm psubw mm1,mm5 \ - __asm movq mm4,OC_C(4) \ - __asm movq mm5,mm3 \ - __asm pmulhw mm3,mm4 \ - __asm paddw mm7,mm2 \ - __asm movq OC_I(2),mm6 \ - __asm movq mm2,mm0 \ - __asm movq mm6,OC_I(0) \ - __asm pmulhw mm0,mm4 \ - __asm paddw mm5,mm3 \ - __asm movq mm3,OC_J(4) \ - __asm psubw mm5,mm1 \ - __asm paddw mm2,mm0 \ - __asm psubw mm6,mm3 \ - __asm movq mm0,mm6 \ - __asm pmulhw mm6,mm4 \ - __asm paddw mm3,mm3 \ - __asm paddw mm1,mm1 \ - __asm paddw mm3,mm0 \ - __asm paddw mm1,mm5 \ - __asm pmulhw mm4,mm3 \ - __asm paddw mm6,mm0 \ - __asm psubw mm6,mm2 \ - __asm paddw mm2,mm2 \ - __asm movq mm0,OC_I(1) \ - __asm paddw mm2,mm6 \ - __asm paddw mm4,mm3 \ - __asm psubw mm2,mm1 \ -} - -/*38+8=46 cycles.*/ -#define OC_ROW_IDCT __asm{ \ - OC_IDCT_BEGIN \ - /*r3=D'*/ \ - __asm movq mm3,OC_I(2) \ - /*r4=E'=E-G*/ \ - __asm psubw mm4,mm7 \ - /*r1=H'+H'*/ \ - __asm paddw mm1,mm1 \ - /*r7=G+G*/ \ - __asm paddw mm7,mm7 \ - /*r1=R1=A''+H'*/ \ - __asm paddw mm1,mm2 \ - /*r7=G'=E+G*/ \ - __asm paddw mm7,mm4 \ - /*r4=R4=E'-D'*/ \ - __asm psubw mm4,mm3 \ - __asm paddw mm3,mm3 \ - /*r6=R6=F'-B''*/ \ - __asm psubw mm6,mm5 \ - __asm paddw mm5,mm5 \ - /*r3=R3=E'+D'*/ \ - __asm paddw mm3,mm4 \ - /*r5=R5=F'+B''*/ \ - __asm paddw mm5,mm6 \ - /*r7=R7=G'-C'*/ \ - __asm psubw mm7,mm0 \ - __asm paddw mm0,mm0 \ - /*Save R1.*/ \ - __asm movq OC_I(1),mm1 \ - /*r0=R0=G.+C.*/ \ - __asm paddw mm0,mm7 \ -} - -/*The following macro does two 4x4 transposes in place. - At entry, we assume: - r0 = a3 a2 a1 a0 - I(1) = b3 b2 b1 b0 - r2 = c3 c2 c1 c0 - r3 = d3 d2 d1 d0 - - r4 = e3 e2 e1 e0 - r5 = f3 f2 f1 f0 - r6 = g3 g2 g1 g0 - r7 = h3 h2 h1 h0 - - At exit, we have: - I(0) = d0 c0 b0 a0 - I(1) = d1 c1 b1 a1 - I(2) = d2 c2 b2 a2 - I(3) = d3 c3 b3 a3 - - J(4) = h0 g0 f0 e0 - J(5) = h1 g1 f1 e1 - J(6) = h2 g2 f2 e2 - J(7) = h3 g3 f3 e3 - - I(0) I(1) I(2) I(3) is the transpose of r0 I(1) r2 r3. - J(4) J(5) J(6) J(7) is the transpose of r4 r5 r6 r7. - - Since r1 is free at entry, we calculate the Js first.*/ -/*19 cycles.*/ -#define OC_TRANSPOSE __asm{ \ - __asm movq mm1,mm4 \ - __asm punpcklwd mm4,mm5 \ - __asm movq OC_I(0),mm0 \ - __asm punpckhwd mm1,mm5 \ - __asm movq mm0,mm6 \ - __asm punpcklwd mm6,mm7 \ - __asm movq mm5,mm4 \ - __asm punpckldq mm4,mm6 \ - __asm punpckhdq mm5,mm6 \ - __asm movq mm6,mm1 \ - __asm movq OC_J(4),mm4 \ - __asm punpckhwd mm0,mm7 \ - __asm movq OC_J(5),mm5 \ - __asm punpckhdq mm6,mm0 \ - __asm movq mm4,OC_I(0) \ - __asm punpckldq mm1,mm0 \ - __asm movq mm5,OC_I(1) \ - __asm movq mm0,mm4 \ - __asm movq OC_J(7),mm6 \ - __asm punpcklwd mm0,mm5 \ - __asm movq OC_J(6),mm1 \ - __asm punpckhwd mm4,mm5 \ - __asm movq mm5,mm2 \ - __asm punpcklwd mm2,mm3 \ - __asm movq mm1,mm0 \ - __asm punpckldq mm0,mm2 \ - __asm punpckhdq mm1,mm2 \ - __asm movq mm2,mm4 \ - __asm movq OC_I(0),mm0 \ - __asm punpckhwd mm5,mm3 \ - __asm movq OC_I(1),mm1 \ - __asm punpckhdq mm4,mm5 \ - __asm punpckldq mm2,mm5 \ - __asm movq OC_I(3),mm4 \ - __asm movq OC_I(2),mm2 \ -} - -/*38+19=57 cycles.*/ -#define OC_COLUMN_IDCT __asm{ \ - OC_IDCT_BEGIN \ - __asm paddw mm2,OC_8 \ - /*r1=H'+H'*/ \ - __asm paddw mm1,mm1 \ - /*r1=R1=A''+H'*/ \ - __asm paddw mm1,mm2 \ - /*r2=NR2*/ \ - __asm psraw mm2,4 \ - /*r4=E'=E-G*/ \ - __asm psubw mm4,mm7 \ - /*r1=NR1*/ \ - __asm psraw mm1,4 \ - /*r3=D'*/ \ - __asm movq mm3,OC_I(2) \ - /*r7=G+G*/ \ - __asm paddw mm7,mm7 \ - /*Store NR2 at I(2).*/ \ - __asm movq OC_I(2),mm2 \ - /*r7=G'=E+G*/ \ - __asm paddw mm7,mm4 \ - /*Store NR1 at I(1).*/ \ - __asm movq OC_I(1),mm1 \ - /*r4=R4=E'-D'*/ \ - __asm psubw mm4,mm3 \ - __asm paddw mm4,OC_8 \ - /*r3=D'+D'*/ \ - __asm paddw mm3,mm3 \ - /*r3=R3=E'+D'*/ \ - __asm paddw mm3,mm4 \ - /*r4=NR4*/ \ - __asm psraw mm4,4 \ - /*r6=R6=F'-B''*/ \ - __asm psubw mm6,mm5 \ - /*r3=NR3*/ \ - __asm psraw mm3,4 \ - __asm paddw mm6,OC_8 \ - /*r5=B''+B''*/ \ - __asm paddw mm5,mm5 \ - /*r5=R5=F'+B''*/ \ - __asm paddw mm5,mm6 \ - /*r6=NR6*/ \ - __asm psraw mm6,4 \ - /*Store NR4 at J(4).*/ \ - __asm movq OC_J(4),mm4 \ - /*r5=NR5*/ \ - __asm psraw mm5,4 \ - /*Store NR3 at I(3).*/ \ - __asm movq OC_I(3),mm3 \ - /*r7=R7=G'-C'*/ \ - __asm psubw mm7,mm0 \ - __asm paddw mm7,OC_8 \ - /*r0=C'+C'*/ \ - __asm paddw mm0,mm0 \ - /*r0=R0=G'+C'*/ \ - __asm paddw mm0,mm7 \ - /*r7=NR7*/ \ - __asm psraw mm7,4 \ - /*Store NR6 at J(6).*/ \ - __asm movq OC_J(6),mm6 \ - /*r0=NR0*/ \ - __asm psraw mm0,4 \ - /*Store NR5 at J(5).*/ \ - __asm movq OC_J(5),mm5 \ - /*Store NR7 at J(7).*/ \ - __asm movq OC_J(7),mm7 \ - /*Store NR0 at I(0).*/ \ - __asm movq OC_I(0),mm0 \ -} - -#define OC_MID(_m,_i) [CONSTS+_m+(_i)*8] -#define OC_C(_i) OC_MID(OC_COSINE_OFFSET,_i-1) -#define OC_8 OC_MID(OC_EIGHT_OFFSET,0) - -static void oc_idct8x8_slow(ogg_int16_t _y[64]){ - /*This routine accepts an 8x8 matrix, but in partially transposed form. - Every 4x4 block is transposed.*/ - __asm{ -#define CONSTS eax -#define Y edx - mov CONSTS,offset OC_IDCT_CONSTS - mov Y,_y -#define OC_I(_k) [Y+_k*16] -#define OC_J(_k) [Y+(_k-4)*16+8] - OC_ROW_IDCT - OC_TRANSPOSE -#undef OC_I -#undef OC_J -#define OC_I(_k) [Y+(_k*16)+64] -#define OC_J(_k) [Y+(_k-4)*16+72] - OC_ROW_IDCT - OC_TRANSPOSE -#undef OC_I -#undef OC_J -#define OC_I(_k) [Y+_k*16] -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT -#undef OC_I -#undef OC_J -#define OC_I(_k) [Y+_k*16+8] -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT -#undef OC_I -#undef OC_J -#undef CONSTS -#undef Y - } -} - -/*25 cycles.*/ -#define OC_IDCT_BEGIN_10 __asm{ \ - __asm movq mm2,OC_I(3) \ - __asm nop \ - __asm movq mm6,OC_C(3) \ - __asm movq mm4,mm2 \ - __asm movq mm1,OC_C(5) \ - __asm pmulhw mm4,mm6 \ - __asm movq mm3,OC_I(1) \ - __asm pmulhw mm1,mm2 \ - __asm movq mm0,OC_C(1) \ - __asm paddw mm4,mm2 \ - __asm pxor mm6,mm6 \ - __asm paddw mm2,mm1 \ - __asm movq mm5,OC_I(2) \ - __asm pmulhw mm0,mm3 \ - __asm movq mm1,mm5 \ - __asm paddw mm0,mm3 \ - __asm pmulhw mm3,OC_C(7) \ - __asm psubw mm6,mm2 \ - __asm pmulhw mm5,OC_C(2) \ - __asm psubw mm0,mm4 \ - __asm movq mm7,OC_I(2) \ - __asm paddw mm4,mm4 \ - __asm paddw mm7,mm5 \ - __asm paddw mm4,mm0 \ - __asm pmulhw mm1,OC_C(6) \ - __asm psubw mm3,mm6 \ - __asm movq OC_I(1),mm4 \ - __asm paddw mm6,mm6 \ - __asm movq mm4,OC_C(4) \ - __asm paddw mm6,mm3 \ - __asm movq mm5,mm3 \ - __asm pmulhw mm3,mm4 \ - __asm movq OC_I(2),mm6 \ - __asm movq mm2,mm0 \ - __asm movq mm6,OC_I(0) \ - __asm pmulhw mm0,mm4 \ - __asm paddw mm5,mm3 \ - __asm paddw mm2,mm0 \ - __asm psubw mm5,mm1 \ - __asm pmulhw mm6,mm4 \ - __asm paddw mm6,OC_I(0) \ - __asm paddw mm1,mm1 \ - __asm movq mm4,mm6 \ - __asm paddw mm1,mm5 \ - __asm psubw mm6,mm2 \ - __asm paddw mm2,mm2 \ - __asm movq mm0,OC_I(1) \ - __asm paddw mm2,mm6 \ - __asm psubw mm2,mm1 \ - __asm nop \ -} - -/*25+8=33 cycles.*/ -#define OC_ROW_IDCT_10 __asm{ \ - OC_IDCT_BEGIN_10 \ - /*r3=D'*/ \ - __asm movq mm3,OC_I(2) \ - /*r4=E'=E-G*/ \ - __asm psubw mm4,mm7 \ - /*r1=H'+H'*/ \ - __asm paddw mm1,mm1 \ - /*r7=G+G*/ \ - __asm paddw mm7,mm7 \ - /*r1=R1=A''+H'*/ \ - __asm paddw mm1,mm2 \ - /*r7=G'=E+G*/ \ - __asm paddw mm7,mm4 \ - /*r4=R4=E'-D'*/ \ - __asm psubw mm4,mm3 \ - __asm paddw mm3,mm3 \ - /*r6=R6=F'-B''*/ \ - __asm psubw mm6,mm5 \ - __asm paddw mm5,mm5 \ - /*r3=R3=E'+D'*/ \ - __asm paddw mm3,mm4 \ - /*r5=R5=F'+B''*/ \ - __asm paddw mm5,mm6 \ - /*r7=R7=G'-C'*/ \ - __asm psubw mm7,mm0 \ - __asm paddw mm0,mm0 \ - /*Save R1.*/ \ - __asm movq OC_I(1),mm1 \ - /*r0=R0=G'+C'*/ \ - __asm paddw mm0,mm7 \ -} - -/*25+19=44 cycles'*/ -#define OC_COLUMN_IDCT_10 __asm{ \ - OC_IDCT_BEGIN_10 \ - __asm paddw mm2,OC_8 \ - /*r1=H'+H'*/ \ - __asm paddw mm1,mm1 \ - /*r1=R1=A''+H'*/ \ - __asm paddw mm1,mm2 \ - /*r2=NR2*/ \ - __asm psraw mm2,4 \ - /*r4=E'=E-G*/ \ - __asm psubw mm4,mm7 \ - /*r1=NR1*/ \ - __asm psraw mm1,4 \ - /*r3=D'*/ \ - __asm movq mm3,OC_I(2) \ - /*r7=G+G*/ \ - __asm paddw mm7,mm7 \ - /*Store NR2 at I(2).*/ \ - __asm movq OC_I(2),mm2 \ - /*r7=G'=E+G*/ \ - __asm paddw mm7,mm4 \ - /*Store NR1 at I(1).*/ \ - __asm movq OC_I(1),mm1 \ - /*r4=R4=E'-D'*/ \ - __asm psubw mm4,mm3 \ - __asm paddw mm4,OC_8 \ - /*r3=D'+D'*/ \ - __asm paddw mm3,mm3 \ - /*r3=R3=E'+D'*/ \ - __asm paddw mm3,mm4 \ - /*r4=NR4*/ \ - __asm psraw mm4,4 \ - /*r6=R6=F'-B''*/ \ - __asm psubw mm6,mm5 \ - /*r3=NR3*/ \ - __asm psraw mm3,4 \ - __asm paddw mm6,OC_8 \ - /*r5=B''+B''*/ \ - __asm paddw mm5,mm5 \ - /*r5=R5=F'+B''*/ \ - __asm paddw mm5,mm6 \ - /*r6=NR6*/ \ - __asm psraw mm6,4 \ - /*Store NR4 at J(4).*/ \ - __asm movq OC_J(4),mm4 \ - /*r5=NR5*/ \ - __asm psraw mm5,4 \ - /*Store NR3 at I(3).*/ \ - __asm movq OC_I(3),mm3 \ - /*r7=R7=G'-C'*/ \ - __asm psubw mm7,mm0 \ - __asm paddw mm7,OC_8 \ - /*r0=C'+C'*/ \ - __asm paddw mm0,mm0 \ - /*r0=R0=G'+C'*/ \ - __asm paddw mm0,mm7 \ - /*r7=NR7*/ \ - __asm psraw mm7,4 \ - /*Store NR6 at J(6).*/ \ - __asm movq OC_J(6),mm6 \ - /*r0=NR0*/ \ - __asm psraw mm0,4 \ - /*Store NR5 at J(5).*/ \ - __asm movq OC_J(5),mm5 \ - /*Store NR7 at J(7).*/ \ - __asm movq OC_J(7),mm7 \ - /*Store NR0 at I(0).*/ \ - __asm movq OC_I(0),mm0 \ -} - -static void oc_idct8x8_10(ogg_int16_t _y[64]){ - __asm{ -#define CONSTS eax -#define Y edx - mov CONSTS,offset OC_IDCT_CONSTS - mov Y,_y -#define OC_I(_k) [Y+_k*16] -#define OC_J(_k) [Y+(_k-4)*16+8] - /*Done with dequant, descramble, and partial transpose. - Now do the iDCT itself.*/ - OC_ROW_IDCT_10 - OC_TRANSPOSE -#undef OC_I -#undef OC_J -#define OC_I(_k) [Y+_k*16] -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT_10 -#undef OC_I -#undef OC_J -#define OC_I(_k) [Y+_k*16+8] -#define OC_J(_k) OC_I(_k) - OC_COLUMN_IDCT_10 -#undef OC_I -#undef OC_J -#undef CONSTS -#undef Y - } -} - -/*Performs an inverse 8x8 Type-II DCT transform. - The input is assumed to be scaled by a factor of 4 relative to orthonormal - version of the transform.*/ -void oc_idct8x8_mmx(ogg_int16_t _y[64],int _last_zzi){ - /*_last_zzi is subtly different from an actual count of the number of - coefficients we decoded for this block. - It contains the value of zzi BEFORE the final token in the block was - decoded. - In most cases this is an EOB token (the continuation of an EOB run from a - previous block counts), and so this is the same as the coefficient count. - However, in the case that the last token was NOT an EOB token, but filled - the block up with exactly 64 coefficients, _last_zzi will be less than 64. - Provided the last token was not a pure zero run, the minimum value it can - be is 46, and so that doesn't affect any of the cases in this routine. - However, if the last token WAS a pure zero run of length 63, then _last_zzi - will be 1 while the number of coefficients decoded is 64. - Thus, we will trigger the following special case, where the real - coefficient count would not. - Note also that a zero run of length 64 will give _last_zzi a value of 0, - but we still process the DC coefficient, which might have a non-zero value - due to DC prediction. - Although convoluted, this is arguably the correct behavior: it allows us to - use a smaller transform when the block ends with a long zero run instead - of a normal EOB token. - It could be smarter... multiple separate zero runs at the end of a block - will fool it, but an encoder that generates these really deserves what it - gets. - Needless to say we inherited this approach from VP3.*/ - /*Perform the iDCT.*/ - if(_last_zzi<10)oc_idct8x8_10(_y); - else oc_idct8x8_slow(_y); -} - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxloop.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxloop.h deleted file mode 100644 index 2561fca2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxloop.h +++ /dev/null @@ -1,219 +0,0 @@ -#if !defined(_x86_vc_mmxloop_H) -# define _x86_vc_mmxloop_H (1) -# include -# include "x86int.h" - -#if defined(OC_X86_ASM) - -/*On entry, mm0={a0,...,a7}, mm1={b0,...,b7}, mm2={c0,...,c7}, mm3={d0,...d7}. - On exit, mm1={b0+lflim(R_0,L),...,b7+lflim(R_7,L)} and - mm2={c0-lflim(R_0,L),...,c7-lflim(R_7,L)}; mm0 and mm3 are clobbered.*/ -#define OC_LOOP_FILTER8_MMX __asm{ \ - /*mm7=0*/ \ - __asm pxor mm7,mm7 \ - /*mm6:mm0={a0,...,a7}*/ \ - __asm movq mm6,mm0 \ - __asm punpcklbw mm0,mm7 \ - __asm punpckhbw mm6,mm7 \ - /*mm3:mm5={d0,...,d7}*/ \ - __asm movq mm5,mm3 \ - __asm punpcklbw mm3,mm7 \ - __asm punpckhbw mm5,mm7 \ - /*mm6:mm0={a0-d0,...,a7-d7}*/ \ - __asm psubw mm0,mm3 \ - __asm psubw mm6,mm5 \ - /*mm3:mm1={b0,...,b7}*/ \ - __asm movq mm3,mm1 \ - __asm punpcklbw mm1,mm7 \ - __asm movq mm4,mm2 \ - __asm punpckhbw mm3,mm7 \ - /*mm5:mm4={c0,...,c7}*/ \ - __asm movq mm5,mm2 \ - __asm punpcklbw mm4,mm7 \ - __asm punpckhbw mm5,mm7 \ - /*mm7={3}x4 \ - mm5:mm4={c0-b0,...,c7-b7}*/ \ - __asm pcmpeqw mm7,mm7 \ - __asm psubw mm4,mm1 \ - __asm psrlw mm7,14 \ - __asm psubw mm5,mm3 \ - /*Scale by 3.*/ \ - __asm pmullw mm4,mm7 \ - __asm pmullw mm5,mm7 \ - /*mm7={4}x4 \ - mm5:mm4=f={a0-d0+3*(c0-b0),...,a7-d7+3*(c7-b7)}*/ \ - __asm psrlw mm7,1 \ - __asm paddw mm4,mm0 \ - __asm psllw mm7,2 \ - __asm movq mm0,[LL] \ - __asm paddw mm5,mm6 \ - /*R_i has the range [-127,128], so we compute -R_i instead. \ - mm4=-R_i=-(f+4>>3)=0xFF^(f-4>>3)*/ \ - __asm psubw mm4,mm7 \ - __asm psubw mm5,mm7 \ - __asm psraw mm4,3 \ - __asm psraw mm5,3 \ - __asm pcmpeqb mm7,mm7 \ - __asm packsswb mm4,mm5 \ - __asm pxor mm6,mm6 \ - __asm pxor mm4,mm7 \ - __asm packuswb mm1,mm3 \ - /*Now compute lflim of -mm4 cf. Section 7.10 of the sepc.*/ \ - /*There's no unsigned byte+signed byte with unsigned saturation op code, so \ - we have to split things by sign (the other option is to work in 16 bits, \ - but working in 8 bits gives much better parallelism). \ - We compute abs(R_i), but save a mask of which terms were negative in mm6. \ - Then we compute mm4=abs(lflim(R_i,L))=min(abs(R_i),max(2*L-abs(R_i),0)). \ - Finally, we split mm4 into positive and negative pieces using the mask in \ - mm6, and add and subtract them as appropriate.*/ \ - /*mm4=abs(-R_i)*/ \ - /*mm7=255-2*L*/ \ - __asm pcmpgtb mm6,mm4 \ - __asm psubb mm7,mm0 \ - __asm pxor mm4,mm6 \ - __asm psubb mm7,mm0 \ - __asm psubb mm4,mm6 \ - /*mm7=255-max(2*L-abs(R_i),0)*/ \ - __asm paddusb mm7,mm4 \ - /*mm4=min(abs(R_i),max(2*L-abs(R_i),0))*/ \ - __asm paddusb mm4,mm7 \ - __asm psubusb mm4,mm7 \ - /*Now split mm4 by the original sign of -R_i.*/ \ - __asm movq mm5,mm4 \ - __asm pand mm4,mm6 \ - __asm pandn mm6,mm5 \ - /*mm1={b0+lflim(R_0,L),...,b7+lflim(R_7,L)}*/ \ - /*mm2={c0-lflim(R_0,L),...,c7-lflim(R_7,L)}*/ \ - __asm paddusb mm1,mm4 \ - __asm psubusb mm2,mm4 \ - __asm psubusb mm1,mm6 \ - __asm paddusb mm2,mm6 \ -} - -#define OC_LOOP_FILTER_V_MMX(_pix,_ystride,_ll) \ - do{ \ - /*Used local variable pix__ in order to fix compilation errors like: \ - "error C2425: 'SHL' : non-constant expression in 'second operand'".*/ \ - unsigned char *pix__; \ - unsigned char *ll__; \ - ll__=(_ll); \ - pix__=(_pix); \ - __asm mov YSTRIDE,_ystride \ - __asm mov LL,ll__ \ - __asm mov PIX,pix__ \ - __asm sub PIX,YSTRIDE \ - __asm sub PIX,YSTRIDE \ - /*mm0={a0,...,a7}*/ \ - __asm movq mm0,[PIX] \ - /*ystride3=_ystride*3*/ \ - __asm lea YSTRIDE3,[YSTRIDE+YSTRIDE*2] \ - /*mm3={d0,...,d7}*/ \ - __asm movq mm3,[PIX+YSTRIDE3] \ - /*mm1={b0,...,b7}*/ \ - __asm movq mm1,[PIX+YSTRIDE] \ - /*mm2={c0,...,c7}*/ \ - __asm movq mm2,[PIX+YSTRIDE*2] \ - OC_LOOP_FILTER8_MMX \ - /*Write it back out.*/ \ - __asm movq [PIX+YSTRIDE],mm1 \ - __asm movq [PIX+YSTRIDE*2],mm2 \ - } \ - while(0) - -#define OC_LOOP_FILTER_H_MMX(_pix,_ystride,_ll) \ - do{ \ - /*Used local variable ll__ in order to fix compilation errors like: \ - "error C2443: operand size conflict".*/ \ - unsigned char *ll__; \ - unsigned char *pix__; \ - ll__=(_ll); \ - pix__=(_pix)-2; \ - __asm mov PIX,pix__ \ - __asm mov YSTRIDE,_ystride \ - __asm mov LL,ll__ \ - /*x x x x d0 c0 b0 a0*/ \ - __asm movd mm0,[PIX] \ - /*x x x x d1 c1 b1 a1*/ \ - __asm movd mm1,[PIX+YSTRIDE] \ - /*ystride3=_ystride*3*/ \ - __asm lea YSTRIDE3,[YSTRIDE+YSTRIDE*2] \ - /*x x x x d2 c2 b2 a2*/ \ - __asm movd mm2,[PIX+YSTRIDE*2] \ - /*x x x x d3 c3 b3 a3*/ \ - __asm lea D,[PIX+YSTRIDE*4] \ - __asm movd mm3,[PIX+YSTRIDE3] \ - /*x x x x d4 c4 b4 a4*/ \ - __asm movd mm4,[D] \ - /*x x x x d5 c5 b5 a5*/ \ - __asm movd mm5,[D+YSTRIDE] \ - /*x x x x d6 c6 b6 a6*/ \ - __asm movd mm6,[D+YSTRIDE*2] \ - /*x x x x d7 c7 b7 a7*/ \ - __asm movd mm7,[D+YSTRIDE3] \ - /*mm0=d1 d0 c1 c0 b1 b0 a1 a0*/ \ - __asm punpcklbw mm0,mm1 \ - /*mm2=d3 d2 c3 c2 b3 b2 a3 a2*/ \ - __asm punpcklbw mm2,mm3 \ - /*mm3=d1 d0 c1 c0 b1 b0 a1 a0*/ \ - __asm movq mm3,mm0 \ - /*mm0=b3 b2 b1 b0 a3 a2 a1 a0*/ \ - __asm punpcklwd mm0,mm2 \ - /*mm3=d3 d2 d1 d0 c3 c2 c1 c0*/ \ - __asm punpckhwd mm3,mm2 \ - /*mm1=b3 b2 b1 b0 a3 a2 a1 a0*/ \ - __asm movq mm1,mm0 \ - /*mm4=d5 d4 c5 c4 b5 b4 a5 a4*/ \ - __asm punpcklbw mm4,mm5 \ - /*mm6=d7 d6 c7 c6 b7 b6 a7 a6*/ \ - __asm punpcklbw mm6,mm7 \ - /*mm5=d5 d4 c5 c4 b5 b4 a5 a4*/ \ - __asm movq mm5,mm4 \ - /*mm4=b7 b6 b5 b4 a7 a6 a5 a4*/ \ - __asm punpcklwd mm4,mm6 \ - /*mm5=d7 d6 d5 d4 c7 c6 c5 c4*/ \ - __asm punpckhwd mm5,mm6 \ - /*mm2=d3 d2 d1 d0 c3 c2 c1 c0*/ \ - __asm movq mm2,mm3 \ - /*mm0=a7 a6 a5 a4 a3 a2 a1 a0*/ \ - __asm punpckldq mm0,mm4 \ - /*mm1=b7 b6 b5 b4 b3 b2 b1 b0*/ \ - __asm punpckhdq mm1,mm4 \ - /*mm2=c7 c6 c5 c4 c3 c2 c1 c0*/ \ - __asm punpckldq mm2,mm5 \ - /*mm3=d7 d6 d5 d4 d3 d2 d1 d0*/ \ - __asm punpckhdq mm3,mm5 \ - OC_LOOP_FILTER8_MMX \ - /*mm2={b0+R_0'',...,b7+R_7''}*/ \ - __asm movq mm0,mm1 \ - /*mm1={b0+R_0'',c0-R_0'',...,b3+R_3'',c3-R_3''}*/ \ - __asm punpcklbw mm1,mm2 \ - /*mm2={b4+R_4'',c4-R_4'',...,b7+R_7'',c7-R_7''}*/ \ - __asm punpckhbw mm0,mm2 \ - /*[d]=c1 b1 c0 b0*/ \ - __asm movd D,mm1 \ - __asm mov [PIX+1],D_WORD \ - __asm psrlq mm1,32 \ - __asm shr D,16 \ - __asm mov [PIX+YSTRIDE+1],D_WORD \ - /*[d]=c3 b3 c2 b2*/ \ - __asm movd D,mm1 \ - __asm mov [PIX+YSTRIDE*2+1],D_WORD \ - __asm shr D,16 \ - __asm mov [PIX+YSTRIDE3+1],D_WORD \ - __asm lea PIX,[PIX+YSTRIDE*4] \ - /*[d]=c5 b5 c4 b4*/ \ - __asm movd D,mm0 \ - __asm mov [PIX+1],D_WORD \ - __asm psrlq mm0,32 \ - __asm shr D,16 \ - __asm mov [PIX+YSTRIDE+1],D_WORD \ - /*[d]=c7 b7 c6 b6*/ \ - __asm movd D,mm0 \ - __asm mov [PIX+YSTRIDE*2+1],D_WORD \ - __asm shr D,16 \ - __asm mov [PIX+YSTRIDE3+1],D_WORD \ - } \ - while(0) - -# endif -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxstate.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxstate.c deleted file mode 100644 index 73bd1981..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/theora/x86_vc/mmxstate.c +++ /dev/null @@ -1,211 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggTheora SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE Theora SOURCE CODE IS COPYRIGHT (C) 2002-2009 * - * by the Xiph.Org Foundation and contributors http://www.xiph.org/ * - * * - ******************************************************************** - - function: - last mod: $Id: mmxstate.c 16584 2009-09-26 19:35:55Z tterribe $ - - ********************************************************************/ - -/*MMX acceleration of complete fragment reconstruction algorithm. - Originally written by Rudolf Marek.*/ -#include -#include "x86int.h" -#include "mmxfrag.h" -#include "mmxloop.h" - -#if defined(OC_X86_ASM) - -void oc_state_frag_recon_mmx(const oc_theora_state *_state,ptrdiff_t _fragi, - int _pli,ogg_int16_t _dct_coeffs[64],int _last_zzi,ogg_uint16_t _dc_quant){ - unsigned char *dst; - ptrdiff_t frag_buf_off; - int ystride; - int mb_mode; - /*Apply the inverse transform.*/ - /*Special case only having a DC component.*/ - if(_last_zzi<2){ - /*Note that this value must be unsigned, to keep the __asm__ block from - sign-extending it when it puts it in a register.*/ - ogg_uint16_t p; - /*We round this dequant product (and not any of the others) because there's - no iDCT rounding.*/ - p=(ogg_int16_t)(_dct_coeffs[0]*(ogg_int32_t)_dc_quant+15>>5); - /*Fill _dct_coeffs with p.*/ - __asm{ -#define Y eax -#define P ecx - mov Y,_dct_coeffs - movzx P,p - /*mm0=0000 0000 0000 AAAA*/ - movd mm0,P - /*mm0=0000 0000 AAAA AAAA*/ - punpcklwd mm0,mm0 - /*mm0=AAAA AAAA AAAA AAAA*/ - punpckldq mm0,mm0 - movq [Y],mm0 - movq [8+Y],mm0 - movq [16+Y],mm0 - movq [24+Y],mm0 - movq [32+Y],mm0 - movq [40+Y],mm0 - movq [48+Y],mm0 - movq [56+Y],mm0 - movq [64+Y],mm0 - movq [72+Y],mm0 - movq [80+Y],mm0 - movq [88+Y],mm0 - movq [96+Y],mm0 - movq [104+Y],mm0 - movq [112+Y],mm0 - movq [120+Y],mm0 -#undef Y -#undef P - } - } - else{ - /*Dequantize the DC coefficient.*/ - _dct_coeffs[0]=(ogg_int16_t)(_dct_coeffs[0]*(int)_dc_quant); - oc_idct8x8_mmx(_dct_coeffs,_last_zzi); - } - /*Fill in the target buffer.*/ - frag_buf_off=_state->frag_buf_offs[_fragi]; - mb_mode=_state->frags[_fragi].mb_mode; - ystride=_state->ref_ystride[_pli]; - dst=_state->ref_frame_data[_state->ref_frame_idx[OC_FRAME_SELF]]+frag_buf_off; - if(mb_mode==OC_MODE_INTRA)oc_frag_recon_intra_mmx(dst,ystride,_dct_coeffs); - else{ - const unsigned char *ref; - int mvoffsets[2]; - ref= - _state->ref_frame_data[_state->ref_frame_idx[OC_FRAME_FOR_MODE(mb_mode)]] - +frag_buf_off; - if(oc_state_get_mv_offsets(_state,mvoffsets,_pli, - _state->frag_mvs[_fragi][0],_state->frag_mvs[_fragi][1])>1){ - oc_frag_recon_inter2_mmx(dst,ref+mvoffsets[0],ref+mvoffsets[1],ystride, - _dct_coeffs); - } - else oc_frag_recon_inter_mmx(dst,ref+mvoffsets[0],ystride,_dct_coeffs); - } -} - -/*We copy these entire function to inline the actual MMX routines so that we - use only a single indirect call.*/ - -/*Copies the fragments specified by the lists of fragment indices from one - frame to another. - _fragis: A pointer to a list of fragment indices. - _nfragis: The number of fragment indices to copy. - _dst_frame: The reference frame to copy to. - _src_frame: The reference frame to copy from. - _pli: The color plane the fragments lie in.*/ -void oc_state_frag_copy_list_mmx(const oc_theora_state *_state, - const ptrdiff_t *_fragis,ptrdiff_t _nfragis, - int _dst_frame,int _src_frame,int _pli){ - const ptrdiff_t *frag_buf_offs; - const unsigned char *src_frame_data; - unsigned char *dst_frame_data; - ptrdiff_t fragii; - int ystride; - dst_frame_data=_state->ref_frame_data[_state->ref_frame_idx[_dst_frame]]; - src_frame_data=_state->ref_frame_data[_state->ref_frame_idx[_src_frame]]; - ystride=_state->ref_ystride[_pli]; - frag_buf_offs=_state->frag_buf_offs; - for(fragii=0;fragii<_nfragis;fragii++){ - ptrdiff_t frag_buf_off; - frag_buf_off=frag_buf_offs[_fragis[fragii]]; -#define SRC edx -#define DST eax -#define YSTRIDE ecx -#define YSTRIDE3 edi - OC_FRAG_COPY_MMX(dst_frame_data+frag_buf_off, - src_frame_data+frag_buf_off,ystride); -#undef SRC -#undef DST -#undef YSTRIDE -#undef YSTRIDE3 - } -} - -/*Apply the loop filter to a given set of fragment rows in the given plane. - The filter may be run on the bottom edge, affecting pixels in the next row of - fragments, so this row also needs to be available. - _bv: The bounding values array. - _refi: The index of the frame buffer to filter. - _pli: The color plane to filter. - _fragy0: The Y coordinate of the first fragment row to filter. - _fragy_end: The Y coordinate of the fragment row to stop filtering at.*/ -void oc_state_loop_filter_frag_rows_mmx(const oc_theora_state *_state, - int _bv[256],int _refi,int _pli,int _fragy0,int _fragy_end){ - OC_ALIGN8(unsigned char ll[8]); - const oc_fragment_plane *fplane; - const oc_fragment *frags; - const ptrdiff_t *frag_buf_offs; - unsigned char *ref_frame_data; - ptrdiff_t fragi_top; - ptrdiff_t fragi_bot; - ptrdiff_t fragi0; - ptrdiff_t fragi0_end; - int ystride; - int nhfrags; - memset(ll,_state->loop_filter_limits[_state->qis[0]],sizeof(ll)); - fplane=_state->fplanes+_pli; - nhfrags=fplane->nhfrags; - fragi_top=fplane->froffset; - fragi_bot=fragi_top+fplane->nfrags; - fragi0=fragi_top+_fragy0*(ptrdiff_t)nhfrags; - fragi0_end=fragi0+(_fragy_end-_fragy0)*(ptrdiff_t)nhfrags; - ystride=_state->ref_ystride[_pli]; - frags=_state->frags; - frag_buf_offs=_state->frag_buf_offs; - ref_frame_data=_state->ref_frame_data[_refi]; - /*The following loops are constructed somewhat non-intuitively on purpose. - The main idea is: if a block boundary has at least one coded fragment on - it, the filter is applied to it. - However, the order that the filters are applied in matters, and VP3 chose - the somewhat strange ordering used below.*/ - while(fragi0fragi0)OC_LOOP_FILTER_H_MMX(ref,ystride,ll); - if(fragi0>fragi_top)OC_LOOP_FILTER_V_MMX(ref,ystride,ll); - if(fragi+1cpu_flags=oc_cpu_flags_get(); - if(_state->cpu_flags&OC_CPU_X86_MMX){ - _state->opt_vtable.frag_copy=oc_frag_copy_mmx; - _state->opt_vtable.frag_recon_intra=oc_frag_recon_intra_mmx; - _state->opt_vtable.frag_recon_inter=oc_frag_recon_inter_mmx; - _state->opt_vtable.frag_recon_inter2=oc_frag_recon_inter2_mmx; - _state->opt_vtable.idct8x8=oc_idct8x8_mmx; - _state->opt_vtable.state_frag_recon=oc_state_frag_recon_mmx; - _state->opt_vtable.state_frag_copy_list=oc_state_frag_copy_list_mmx; - _state->opt_vtable.state_loop_filter_frag_rows= - oc_state_loop_filter_frag_rows_mmx; - _state->opt_vtable.restore_fpu=oc_restore_fpu_mmx; - _state->opt_data.dct_fzig_zag=OC_FZIG_ZAG_MMX; - } - else oc_state_vtable_init_c(_state); -} -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/analysis.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/analysis.c deleted file mode 100644 index 0e11a167..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/analysis.c +++ /dev/null @@ -1,119 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: single-block PCM analysis mode dispatch - - ********************************************************************/ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "scales.h" -#include "os.h" -#include "misc.h" - -/* decides between modes, dispatches to the appropriate mapping. */ -int vorbis_analysis(vorbis_block *vb, ogg_packet *op){ - int ret,i; - vorbis_block_internal *vbi=vb->internal; - - vb->glue_bits=0; - vb->time_bits=0; - vb->floor_bits=0; - vb->res_bits=0; - - /* first things first. Make sure encode is ready */ - for(i=0;ipacketblob[i]); - - /* we only have one mapping type (0), and we let the mapping code - itself figure out what soft mode to use. This allows easier - bitrate management */ - - if((ret=_mapping_P[0]->forward(vb))) - return(ret); - - if(op){ - if(vorbis_bitrate_managed(vb)) - /* The app is using a bitmanaged mode... but not using the - bitrate management interface. */ - return(OV_EINVAL); - - op->packet=oggpack_get_buffer(&vb->opb); - op->bytes=oggpack_bytes(&vb->opb); - op->b_o_s=0; - op->e_o_s=vb->eofflag; - op->granulepos=vb->granulepos; - op->packetno=vb->sequence; /* for sake of completeness */ - } - return(0); -} - -#ifdef ANALYSIS -int analysis_noisy=1; - -/* there was no great place to put this.... */ -void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB,ogg_int64_t off){ - int j; - FILE *of; - char buffer[80]; - - sprintf(buffer,"%s_%d.m",base,i); - of=fopen(buffer,"w"); - - if(!of)perror("failed to open data dump file"); - - for(j=0;j -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "os.h" -#include "misc.h" -#include "bitrate.h" - -/* compute bitrate tracking setup */ -void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bm){ - codec_setup_info *ci=vi->codec_setup; - bitrate_manager_info *bi=&ci->bi; - - memset(bm,0,sizeof(*bm)); - - if(bi && (bi->reservoir_bits>0)){ - long ratesamples=vi->rate; - int halfsamples=ci->blocksizes[0]>>1; - - bm->short_per_long=ci->blocksizes[1]/ci->blocksizes[0]; - bm->managed=1; - - bm->avg_bitsper= rint(1.*bi->avg_rate*halfsamples/ratesamples); - bm->min_bitsper= rint(1.*bi->min_rate*halfsamples/ratesamples); - bm->max_bitsper= rint(1.*bi->max_rate*halfsamples/ratesamples); - - bm->avgfloat=PACKETBLOBS/2; - - /* not a necessary fix, but one that leads to a more balanced - typical initialization */ - { - long desired_fill=bi->reservoir_bits*bi->reservoir_bias; - bm->minmax_reservoir=desired_fill; - bm->avg_reservoir=desired_fill; - } - - } -} - -void vorbis_bitrate_clear(bitrate_manager_state *bm){ - memset(bm,0,sizeof(*bm)); - return; -} - -int vorbis_bitrate_managed(vorbis_block *vb){ - vorbis_dsp_state *vd=vb->vd; - private_state *b=vd->backend_state; - bitrate_manager_state *bm=&b->bms; - - if(bm && bm->managed)return(1); - return(0); -} - -/* finish taking in the block we just processed */ -int vorbis_bitrate_addblock(vorbis_block *vb){ - vorbis_block_internal *vbi=vb->internal; - vorbis_dsp_state *vd=vb->vd; - private_state *b=vd->backend_state; - bitrate_manager_state *bm=&b->bms; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - bitrate_manager_info *bi=&ci->bi; - - int choice=rint(bm->avgfloat); - long this_bits=oggpack_bytes(vbi->packetblob[choice])*8; - long min_target_bits=(vb->W?bm->min_bitsper*bm->short_per_long:bm->min_bitsper); - long max_target_bits=(vb->W?bm->max_bitsper*bm->short_per_long:bm->max_bitsper); - int samples=ci->blocksizes[vb->W]>>1; - long desired_fill=bi->reservoir_bits*bi->reservoir_bias; - if(!bm->managed){ - /* not a bitrate managed stream, but for API simplicity, we'll - buffer the packet to keep the code path clean */ - - if(bm->vb)return(-1); /* one has been submitted without - being claimed */ - bm->vb=vb; - return(0); - } - - bm->vb=vb; - - /* look ahead for avg floater */ - if(bm->avg_bitsper>0){ - double slew=0.; - long avg_target_bits=(vb->W?bm->avg_bitsper*bm->short_per_long:bm->avg_bitsper); - double slewlimit= 15./bi->slew_damp; - - /* choosing a new floater: - if we're over target, we slew down - if we're under target, we slew up - - choose slew as follows: look through packetblobs of this frame - and set slew as the first in the appropriate direction that - gives us the slew we want. This may mean no slew if delta is - already favorable. - - Then limit slew to slew max */ - - if(bm->avg_reservoir+(this_bits-avg_target_bits)>desired_fill){ - while(choice>0 && this_bits>avg_target_bits && - bm->avg_reservoir+(this_bits-avg_target_bits)>desired_fill){ - choice--; - this_bits=oggpack_bytes(vbi->packetblob[choice])*8; - } - }else if(bm->avg_reservoir+(this_bits-avg_target_bits)avg_reservoir+(this_bits-avg_target_bits)packetblob[choice])*8; - } - } - - slew=rint(choice-bm->avgfloat)/samples*vi->rate; - if(slew<-slewlimit)slew=-slewlimit; - if(slew>slewlimit)slew=slewlimit; - choice=rint(bm->avgfloat+= slew/vi->rate*samples); - this_bits=oggpack_bytes(vbi->packetblob[choice])*8; - } - - - - /* enforce min(if used) on the current floater (if used) */ - if(bm->min_bitsper>0){ - /* do we need to force the bitrate up? */ - if(this_bitsminmax_reservoir-(min_target_bits-this_bits)<0){ - choice++; - if(choice>=PACKETBLOBS)break; - this_bits=oggpack_bytes(vbi->packetblob[choice])*8; - } - } - } - - /* enforce max (if used) on the current floater (if used) */ - if(bm->max_bitsper>0){ - /* do we need to force the bitrate down? */ - if(this_bits>max_target_bits){ - while(bm->minmax_reservoir+(this_bits-max_target_bits)>bi->reservoir_bits){ - choice--; - if(choice<0)break; - this_bits=oggpack_bytes(vbi->packetblob[choice])*8; - } - } - } - - /* Choice of packetblobs now made based on floater, and min/max - requirements. Now boundary check extreme choices */ - - if(choice<0){ - /* choosing a smaller packetblob is insufficient to trim bitrate. - frame will need to be truncated */ - long maxsize=(max_target_bits+(bi->reservoir_bits-bm->minmax_reservoir))/8; - bm->choice=choice=0; - - if(oggpack_bytes(vbi->packetblob[choice])>maxsize){ - - oggpack_writetrunc(vbi->packetblob[choice],maxsize*8); - this_bits=oggpack_bytes(vbi->packetblob[choice])*8; - } - }else{ - long minsize=(min_target_bits-bm->minmax_reservoir+7)/8; - if(choice>=PACKETBLOBS) - choice=PACKETBLOBS-1; - - bm->choice=choice; - - /* prop up bitrate according to demand. pad this frame out with zeroes */ - minsize-=oggpack_bytes(vbi->packetblob[choice]); - while(minsize-->0)oggpack_write(vbi->packetblob[choice],0,8); - this_bits=oggpack_bytes(vbi->packetblob[choice])*8; - - } - - /* now we have the final packet and the final packet size. Update statistics */ - /* min and max reservoir */ - if(bm->min_bitsper>0 || bm->max_bitsper>0){ - - if(max_target_bits>0 && this_bits>max_target_bits){ - bm->minmax_reservoir+=(this_bits-max_target_bits); - }else if(min_target_bits>0 && this_bitsminmax_reservoir+=(this_bits-min_target_bits); - }else{ - /* inbetween; we want to take reservoir toward but not past desired_fill */ - if(bm->minmax_reservoir>desired_fill){ - if(max_target_bits>0){ /* logical bulletproofing against initialization state */ - bm->minmax_reservoir+=(this_bits-max_target_bits); - if(bm->minmax_reservoirminmax_reservoir=desired_fill; - }else{ - bm->minmax_reservoir=desired_fill; - } - }else{ - if(min_target_bits>0){ /* logical bulletproofing against initialization state */ - bm->minmax_reservoir+=(this_bits-min_target_bits); - if(bm->minmax_reservoir>desired_fill)bm->minmax_reservoir=desired_fill; - }else{ - bm->minmax_reservoir=desired_fill; - } - } - } - } - - /* avg reservoir */ - if(bm->avg_bitsper>0){ - long avg_target_bits=(vb->W?bm->avg_bitsper*bm->short_per_long:bm->avg_bitsper); - bm->avg_reservoir+=this_bits-avg_target_bits; - } - - return(0); -} - -int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd,ogg_packet *op){ - private_state *b=vd->backend_state; - bitrate_manager_state *bm=&b->bms; - vorbis_block *vb=bm->vb; - int choice=PACKETBLOBS/2; - if(!vb)return 0; - - if(op){ - vorbis_block_internal *vbi=vb->internal; - - if(vorbis_bitrate_managed(vb)) - choice=bm->choice; - - op->packet=oggpack_get_buffer(vbi->packetblob[choice]); - op->bytes=oggpack_bytes(vbi->packetblob[choice]); - op->b_o_s=0; - op->e_o_s=vb->eofflag; - op->granulepos=vb->granulepos; - op->packetno=vb->sequence; /* for sake of completeness */ - } - - bm->vb=0; - return(1); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/bitrate.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/bitrate.h deleted file mode 100644 index 655a68cc..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/bitrate.h +++ /dev/null @@ -1,58 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: bitrate tracking and management - - ********************************************************************/ - -#ifndef _V_BITRATE_H_ -#define _V_BITRATE_H_ - -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "os.h" - -/* encode side bitrate tracking */ -typedef struct bitrate_manager_state { - int managed; - - long avg_reservoir; - long minmax_reservoir; - long avg_bitsper; - long min_bitsper; - long max_bitsper; - - long short_per_long; - double avgfloat; - - vorbis_block *vb; - int choice; -} bitrate_manager_state; - -typedef struct bitrate_manager_info{ - long avg_rate; - long min_rate; - long max_rate; - long reservoir_bits; - double reservoir_bias; - - double slew_damp; - -} bitrate_manager_info; - -extern void vorbis_bitrate_init(vorbis_info *vi,bitrate_manager_state *bs); -extern void vorbis_bitrate_clear(bitrate_manager_state *bs); -extern int vorbis_bitrate_managed(vorbis_block *vb); -extern int vorbis_bitrate_addblock(vorbis_block *vb); -extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, ogg_packet *op); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/block.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/block.c deleted file mode 100644 index db245b3e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/block.c +++ /dev/null @@ -1,1046 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: PCM data vector blocking, windowing and dis/reassembly - - Handle windowing, overlap-add, etc of the PCM vectors. This is made - more amusing by Vorbis' current two allowed block sizes. - - ********************************************************************/ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" - -#include "window.h" -#include "mdct.h" -#include "lpc.h" -#include "registry.h" -#include "misc.h" - -/* pcm accumulator examples (not exhaustive): - - <-------------- lW ----------------> - <--------------- W ----------------> -: .....|..... _______________ | -: .''' | '''_--- | |\ | -:.....''' |_____--- '''......| | \_______| -:.................|__________________|_______|__|______| - |<------ Sl ------>| > Sr < |endW - |beginSl |endSl | |endSr - |beginW |endlW |beginSr - - - |< lW >| - <--------------- W ----------------> - | | .. ______________ | - | | ' `/ | ---_ | - |___.'___/`. | ---_____| - |_______|__|_______|_________________| - | >|Sl|< |<------ Sr ----->|endW - | | |endSl |beginSr |endSr - |beginW | |endlW - mult[0] |beginSl mult[n] - - <-------------- lW -----------------> - |<--W-->| -: .............. ___ | | -: .''' |`/ \ | | -:.....''' |/`....\|...| -:.........................|___|___|___| - |Sl |Sr |endW - | | |endSr - | |beginSr - | |endSl - |beginSl - |beginW -*/ - -/* block abstraction setup *********************************************/ - -#ifndef WORD_ALIGN -#define WORD_ALIGN 8 -#endif - -int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb){ - int i; - memset(vb,0,sizeof(*vb)); - vb->vd=v; - vb->localalloc=0; - vb->localstore=NULL; - if(v->analysisp){ - vorbis_block_internal *vbi= - vb->internal=_ogg_calloc(1,sizeof(vorbis_block_internal)); - vbi->ampmax=-9999; - - for(i=0;ipacketblob[i]=&vb->opb; - }else{ - vbi->packetblob[i]= - _ogg_calloc(1,sizeof(oggpack_buffer)); - } - oggpack_writeinit(vbi->packetblob[i]); - } - } - - return(0); -} - -void *_vorbis_block_alloc(vorbis_block *vb,long bytes){ - bytes=(bytes+(WORD_ALIGN-1)) & ~(WORD_ALIGN-1); - if(bytes+vb->localtop>vb->localalloc){ - /* can't just _ogg_realloc... there are outstanding pointers */ - if(vb->localstore){ - struct alloc_chain *link=_ogg_malloc(sizeof(*link)); - vb->totaluse+=vb->localtop; - link->next=vb->reap; - link->ptr=vb->localstore; - vb->reap=link; - } - /* highly conservative */ - vb->localalloc=bytes; - vb->localstore=_ogg_malloc(vb->localalloc); - vb->localtop=0; - } - { - void *ret=(void *)(((char *)vb->localstore)+vb->localtop); - vb->localtop+=bytes; - return ret; - } -} - -/* reap the chain, pull the ripcord */ -void _vorbis_block_ripcord(vorbis_block *vb){ - /* reap the chain */ - struct alloc_chain *reap=vb->reap; - while(reap){ - struct alloc_chain *next=reap->next; - _ogg_free(reap->ptr); - memset(reap,0,sizeof(*reap)); - _ogg_free(reap); - reap=next; - } - /* consolidate storage */ - if(vb->totaluse){ - vb->localstore=_ogg_realloc(vb->localstore,vb->totaluse+vb->localalloc); - vb->localalloc+=vb->totaluse; - vb->totaluse=0; - } - - /* pull the ripcord */ - vb->localtop=0; - vb->reap=NULL; -} - -int vorbis_block_clear(vorbis_block *vb){ - int i; - vorbis_block_internal *vbi=vb->internal; - - _vorbis_block_ripcord(vb); - if(vb->localstore)_ogg_free(vb->localstore); - - if(vbi){ - for(i=0;ipacketblob[i]); - if(i!=PACKETBLOBS/2)_ogg_free(vbi->packetblob[i]); - } - _ogg_free(vbi); - } - memset(vb,0,sizeof(*vb)); - return(0); -} - -/* Analysis side code, but directly related to blocking. Thus it's - here and not in analysis.c (which is for analysis transforms only). - The init is here because some of it is shared */ - -static int _vds_shared_init(vorbis_dsp_state *v,vorbis_info *vi,int encp){ - int i; - codec_setup_info *ci=vi->codec_setup; - private_state *b=NULL; - int hs; - - if(ci==NULL|| - ci->modes<=0|| - ci->blocksizes[0]<64|| - ci->blocksizes[1]blocksizes[0]){ - return 1; - } - hs=ci->halfrate_flag; - - memset(v,0,sizeof(*v)); - b=v->backend_state=_ogg_calloc(1,sizeof(*b)); - - v->vi=vi; - b->modebits=ov_ilog(ci->modes-1); - - b->transform[0]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[0])); - b->transform[1]=_ogg_calloc(VI_TRANSFORMB,sizeof(*b->transform[1])); - - /* MDCT is tranform 0 */ - - b->transform[0][0]=_ogg_calloc(1,sizeof(mdct_lookup)); - b->transform[1][0]=_ogg_calloc(1,sizeof(mdct_lookup)); - mdct_init(b->transform[0][0],ci->blocksizes[0]>>hs); - mdct_init(b->transform[1][0],ci->blocksizes[1]>>hs); - - /* Vorbis I uses only window type 0 */ - /* note that the correct computation below is technically: - b->window[0]=ov_ilog(ci->blocksizes[0]-1)-6; - b->window[1]=ov_ilog(ci->blocksizes[1]-1)-6; - but since blocksizes are always powers of two, - the below is equivalent. - */ - b->window[0]=ov_ilog(ci->blocksizes[0])-7; - b->window[1]=ov_ilog(ci->blocksizes[1])-7; - - if(encp){ /* encode/decode differ here */ - - /* analysis always needs an fft */ - drft_init(&b->fft_look[0],ci->blocksizes[0]); - drft_init(&b->fft_look[1],ci->blocksizes[1]); - - /* finish the codebooks */ - if(!ci->fullbooks){ - ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); - for(i=0;ibooks;i++) - vorbis_book_init_encode(ci->fullbooks+i,ci->book_param[i]); - } - - b->psy=_ogg_calloc(ci->psys,sizeof(*b->psy)); - for(i=0;ipsys;i++){ - _vp_psy_init(b->psy+i, - ci->psy_param[i], - &ci->psy_g_param, - ci->blocksizes[ci->psy_param[i]->blockflag]/2, - vi->rate); - } - - v->analysisp=1; - }else{ - /* finish the codebooks */ - if(!ci->fullbooks){ - ci->fullbooks=_ogg_calloc(ci->books,sizeof(*ci->fullbooks)); - for(i=0;ibooks;i++){ - if(ci->book_param[i]==NULL) - goto abort_books; - if(vorbis_book_init_decode(ci->fullbooks+i,ci->book_param[i])) - goto abort_books; - /* decode codebooks are now standalone after init */ - vorbis_staticbook_destroy(ci->book_param[i]); - ci->book_param[i]=NULL; - } - } - } - - /* initialize the storage vectors. blocksize[1] is small for encode, - but the correct size for decode */ - v->pcm_storage=ci->blocksizes[1]; - v->pcm=_ogg_malloc(vi->channels*sizeof(*v->pcm)); - v->pcmret=_ogg_malloc(vi->channels*sizeof(*v->pcmret)); - { - int i; - for(i=0;ichannels;i++) - v->pcm[i]=_ogg_calloc(v->pcm_storage,sizeof(*v->pcm[i])); - } - - /* all 1 (large block) or 0 (small block) */ - /* explicitly set for the sake of clarity */ - v->lW=0; /* previous window size */ - v->W=0; /* current window size */ - - /* all vector indexes */ - v->centerW=ci->blocksizes[1]/2; - - v->pcm_current=v->centerW; - - /* initialize all the backend lookups */ - b->flr=_ogg_calloc(ci->floors,sizeof(*b->flr)); - b->residue=_ogg_calloc(ci->residues,sizeof(*b->residue)); - - for(i=0;ifloors;i++) - b->flr[i]=_floor_P[ci->floor_type[i]]-> - look(v,ci->floor_param[i]); - - for(i=0;iresidues;i++) - b->residue[i]=_residue_P[ci->residue_type[i]]-> - look(v,ci->residue_param[i]); - - return 0; - abort_books: - for(i=0;ibooks;i++){ - if(ci->book_param[i]!=NULL){ - vorbis_staticbook_destroy(ci->book_param[i]); - ci->book_param[i]=NULL; - } - } - vorbis_dsp_clear(v); - return -1; -} - -/* arbitrary settings and spec-mandated numbers get filled in here */ -int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi){ - private_state *b=NULL; - - if(_vds_shared_init(v,vi,1))return 1; - b=v->backend_state; - b->psy_g_look=_vp_global_look(vi); - - /* Initialize the envelope state storage */ - b->ve=_ogg_calloc(1,sizeof(*b->ve)); - _ve_envelope_init(b->ve,vi); - - vorbis_bitrate_init(vi,&b->bms); - - /* compressed audio packets start after the headers - with sequence number 3 */ - v->sequence=3; - - return(0); -} - -void vorbis_dsp_clear(vorbis_dsp_state *v){ - int i; - if(v){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=(vi?vi->codec_setup:NULL); - private_state *b=v->backend_state; - - if(b){ - - if(b->ve){ - _ve_envelope_clear(b->ve); - _ogg_free(b->ve); - } - - if(b->transform[0]){ - mdct_clear(b->transform[0][0]); - _ogg_free(b->transform[0][0]); - _ogg_free(b->transform[0]); - } - if(b->transform[1]){ - mdct_clear(b->transform[1][0]); - _ogg_free(b->transform[1][0]); - _ogg_free(b->transform[1]); - } - - if(b->flr){ - if(ci) - for(i=0;ifloors;i++) - _floor_P[ci->floor_type[i]]-> - free_look(b->flr[i]); - _ogg_free(b->flr); - } - if(b->residue){ - if(ci) - for(i=0;iresidues;i++) - _residue_P[ci->residue_type[i]]-> - free_look(b->residue[i]); - _ogg_free(b->residue); - } - if(b->psy){ - if(ci) - for(i=0;ipsys;i++) - _vp_psy_clear(b->psy+i); - _ogg_free(b->psy); - } - - if(b->psy_g_look)_vp_global_free(b->psy_g_look); - vorbis_bitrate_clear(&b->bms); - - drft_clear(&b->fft_look[0]); - drft_clear(&b->fft_look[1]); - - } - - if(v->pcm){ - if(vi) - for(i=0;ichannels;i++) - if(v->pcm[i])_ogg_free(v->pcm[i]); - _ogg_free(v->pcm); - if(v->pcmret)_ogg_free(v->pcmret); - } - - if(b){ - /* free header, header1, header2 */ - if(b->header)_ogg_free(b->header); - if(b->header1)_ogg_free(b->header1); - if(b->header2)_ogg_free(b->header2); - _ogg_free(b); - } - - memset(v,0,sizeof(*v)); - } -} - -float **vorbis_analysis_buffer(vorbis_dsp_state *v, int vals){ - int i; - vorbis_info *vi=v->vi; - private_state *b=v->backend_state; - - /* free header, header1, header2 */ - if(b->header)_ogg_free(b->header);b->header=NULL; - if(b->header1)_ogg_free(b->header1);b->header1=NULL; - if(b->header2)_ogg_free(b->header2);b->header2=NULL; - - /* Do we have enough storage space for the requested buffer? If not, - expand the PCM (and envelope) storage */ - - if(v->pcm_current+vals>=v->pcm_storage){ - v->pcm_storage=v->pcm_current+vals*2; - - for(i=0;ichannels;i++){ - v->pcm[i]=_ogg_realloc(v->pcm[i],v->pcm_storage*sizeof(*v->pcm[i])); - } - } - - for(i=0;ichannels;i++) - v->pcmret[i]=v->pcm[i]+v->pcm_current; - - return(v->pcmret); -} - -static void _preextrapolate_helper(vorbis_dsp_state *v){ - int i; - int order=16; - float *lpc=alloca(order*sizeof(*lpc)); - float *work=alloca(v->pcm_current*sizeof(*work)); - long j; - v->preextrapolate=1; - - if(v->pcm_current-v->centerW>order*2){ /* safety */ - for(i=0;ivi->channels;i++){ - /* need to run the extrapolation in reverse! */ - for(j=0;jpcm_current;j++) - work[j]=v->pcm[i][v->pcm_current-j-1]; - - /* prime as above */ - vorbis_lpc_from_data(work,lpc,v->pcm_current-v->centerW,order); - -#if 0 - if(v->vi->channels==2){ - if(i==0) - _analysis_output("predataL",0,work,v->pcm_current-v->centerW,0,0,0); - else - _analysis_output("predataR",0,work,v->pcm_current-v->centerW,0,0,0); - }else{ - _analysis_output("predata",0,work,v->pcm_current-v->centerW,0,0,0); - } -#endif - - /* run the predictor filter */ - vorbis_lpc_predict(lpc,work+v->pcm_current-v->centerW-order, - order, - work+v->pcm_current-v->centerW, - v->centerW); - - for(j=0;jpcm_current;j++) - v->pcm[i][v->pcm_current-j-1]=work[j]; - - } - } -} - - -/* call with val<=0 to set eof */ - -int vorbis_analysis_wrote(vorbis_dsp_state *v, int vals){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - - if(vals<=0){ - int order=32; - int i; - float *lpc=alloca(order*sizeof(*lpc)); - - /* if it wasn't done earlier (very short sample) */ - if(!v->preextrapolate) - _preextrapolate_helper(v); - - /* We're encoding the end of the stream. Just make sure we have - [at least] a few full blocks of zeroes at the end. */ - /* actually, we don't want zeroes; that could drop a large - amplitude off a cliff, creating spread spectrum noise that will - suck to encode. Extrapolate for the sake of cleanliness. */ - - vorbis_analysis_buffer(v,ci->blocksizes[1]*3); - v->eofflag=v->pcm_current; - v->pcm_current+=ci->blocksizes[1]*3; - - for(i=0;ichannels;i++){ - if(v->eofflag>order*2){ - /* extrapolate with LPC to fill in */ - long n; - - /* make a predictor filter */ - n=v->eofflag; - if(n>ci->blocksizes[1])n=ci->blocksizes[1]; - vorbis_lpc_from_data(v->pcm[i]+v->eofflag-n,lpc,n,order); - - /* run the predictor filter */ - vorbis_lpc_predict(lpc,v->pcm[i]+v->eofflag-order,order, - v->pcm[i]+v->eofflag,v->pcm_current-v->eofflag); - }else{ - /* not enough data to extrapolate (unlikely to happen due to - guarding the overlap, but bulletproof in case that - assumtion goes away). zeroes will do. */ - memset(v->pcm[i]+v->eofflag,0, - (v->pcm_current-v->eofflag)*sizeof(*v->pcm[i])); - - } - } - }else{ - - if(v->pcm_current+vals>v->pcm_storage) - return(OV_EINVAL); - - v->pcm_current+=vals; - - /* we may want to reverse extrapolate the beginning of a stream - too... in case we're beginning on a cliff! */ - /* clumsy, but simple. It only runs once, so simple is good. */ - if(!v->preextrapolate && v->pcm_current-v->centerW>ci->blocksizes[1]) - _preextrapolate_helper(v); - - } - return(0); -} - -/* do the deltas, envelope shaping, pre-echo and determine the size of - the next block on which to continue analysis */ -int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb){ - int i; - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - private_state *b=v->backend_state; - vorbis_look_psy_global *g=b->psy_g_look; - long beginW=v->centerW-ci->blocksizes[v->W]/2,centerNext; - vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; - - /* check to see if we're started... */ - if(!v->preextrapolate)return(0); - - /* check to see if we're done... */ - if(v->eofflag==-1)return(0); - - /* By our invariant, we have lW, W and centerW set. Search for - the next boundary so we can determine nW (the next window size) - which lets us compute the shape of the current block's window */ - - /* we do an envelope search even on a single blocksize; we may still - be throwing more bits at impulses, and envelope search handles - marking impulses too. */ - { - long bp=_ve_envelope_search(v); - if(bp==-1){ - - if(v->eofflag==0)return(0); /* not enough data currently to search for a - full long block */ - v->nW=0; - }else{ - - if(ci->blocksizes[0]==ci->blocksizes[1]) - v->nW=0; - else - v->nW=bp; - } - } - - centerNext=v->centerW+ci->blocksizes[v->W]/4+ci->blocksizes[v->nW]/4; - - { - /* center of next block + next block maximum right side. */ - - long blockbound=centerNext+ci->blocksizes[v->nW]/2; - if(v->pcm_currentlW=v->lW; - vb->W=v->W; - vb->nW=v->nW; - - if(v->W){ - if(!v->lW || !v->nW){ - vbi->blocktype=BLOCKTYPE_TRANSITION; - /*fprintf(stderr,"-");*/ - }else{ - vbi->blocktype=BLOCKTYPE_LONG; - /*fprintf(stderr,"_");*/ - } - }else{ - if(_ve_envelope_mark(v)){ - vbi->blocktype=BLOCKTYPE_IMPULSE; - /*fprintf(stderr,"|");*/ - - }else{ - vbi->blocktype=BLOCKTYPE_PADDING; - /*fprintf(stderr,".");*/ - - } - } - - vb->vd=v; - vb->sequence=v->sequence++; - vb->granulepos=v->granulepos; - vb->pcmend=ci->blocksizes[v->W]; - - /* copy the vectors; this uses the local storage in vb */ - - /* this tracks 'strongest peak' for later psychoacoustics */ - /* moved to the global psy state; clean this mess up */ - if(vbi->ampmax>g->ampmax)g->ampmax=vbi->ampmax; - g->ampmax=_vp_ampmax_decay(g->ampmax,v); - vbi->ampmax=g->ampmax; - - vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels); - vbi->pcmdelay=_vorbis_block_alloc(vb,sizeof(*vbi->pcmdelay)*vi->channels); - for(i=0;ichannels;i++){ - vbi->pcmdelay[i]= - _vorbis_block_alloc(vb,(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i])); - memcpy(vbi->pcmdelay[i],v->pcm[i],(vb->pcmend+beginW)*sizeof(*vbi->pcmdelay[i])); - vb->pcm[i]=vbi->pcmdelay[i]+beginW; - - /* before we added the delay - vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i])); - memcpy(vb->pcm[i],v->pcm[i]+beginW,ci->blocksizes[v->W]*sizeof(*vb->pcm[i])); - */ - - } - - /* handle eof detection: eof==0 means that we've not yet received EOF - eof>0 marks the last 'real' sample in pcm[] - eof<0 'no more to do'; doesn't get here */ - - if(v->eofflag){ - if(v->centerW>=v->eofflag){ - v->eofflag=-1; - vb->eofflag=1; - return(1); - } - } - - /* advance storage vectors and clean up */ - { - int new_centerNext=ci->blocksizes[1]/2; - int movementW=centerNext-new_centerNext; - - if(movementW>0){ - - _ve_envelope_shift(b->ve,movementW); - v->pcm_current-=movementW; - - for(i=0;ichannels;i++) - memmove(v->pcm[i],v->pcm[i]+movementW, - v->pcm_current*sizeof(*v->pcm[i])); - - - v->lW=v->W; - v->W=v->nW; - v->centerW=new_centerNext; - - if(v->eofflag){ - v->eofflag-=movementW; - if(v->eofflag<=0)v->eofflag=-1; - /* do not add padding to end of stream! */ - if(v->centerW>=v->eofflag){ - v->granulepos+=movementW-(v->centerW-v->eofflag); - }else{ - v->granulepos+=movementW; - } - }else{ - v->granulepos+=movementW; - } - } - } - - /* done */ - return(1); -} - -int vorbis_synthesis_restart(vorbis_dsp_state *v){ - vorbis_info *vi=v->vi; - codec_setup_info *ci; - int hs; - - if(!v->backend_state)return -1; - if(!vi)return -1; - ci=vi->codec_setup; - if(!ci)return -1; - hs=ci->halfrate_flag; - - v->centerW=ci->blocksizes[1]>>(hs+1); - v->pcm_current=v->centerW>>hs; - - v->pcm_returned=-1; - v->granulepos=-1; - v->sequence=-1; - v->eofflag=0; - ((private_state *)(v->backend_state))->sample_count=-1; - - return(0); -} - -int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi){ - if(_vds_shared_init(v,vi,0)){ - vorbis_dsp_clear(v); - return 1; - } - vorbis_synthesis_restart(v); - return 0; -} - -/* Unlike in analysis, the window is only partially applied for each - block. The time domain envelope is not yet handled at the point of - calling (as it relies on the previous block). */ - -int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - private_state *b=v->backend_state; - int hs=ci->halfrate_flag; - int i,j; - - if(!vb)return(OV_EINVAL); - if(v->pcm_current>v->pcm_returned && v->pcm_returned!=-1)return(OV_EINVAL); - - v->lW=v->W; - v->W=vb->W; - v->nW=-1; - - if((v->sequence==-1)|| - (v->sequence+1 != vb->sequence)){ - v->granulepos=-1; /* out of sequence; lose count */ - b->sample_count=-1; - } - - v->sequence=vb->sequence; - - if(vb->pcm){ /* no pcm to process if vorbis_synthesis_trackonly - was called on block */ - int n=ci->blocksizes[v->W]>>(hs+1); - int n0=ci->blocksizes[0]>>(hs+1); - int n1=ci->blocksizes[1]>>(hs+1); - - int thisCenter; - int prevCenter; - - v->glue_bits+=vb->glue_bits; - v->time_bits+=vb->time_bits; - v->floor_bits+=vb->floor_bits; - v->res_bits+=vb->res_bits; - - if(v->centerW){ - thisCenter=n1; - prevCenter=0; - }else{ - thisCenter=0; - prevCenter=n1; - } - - /* v->pcm is now used like a two-stage double buffer. We don't want - to have to constantly shift *or* adjust memory usage. Don't - accept a new block until the old is shifted out */ - - for(j=0;jchannels;j++){ - /* the overlap/add section */ - if(v->lW){ - if(v->W){ - /* large/large */ - const float *w=_vorbis_window_get(b->window[1]-hs); - float *pcm=v->pcm[j]+prevCenter; - float *p=vb->pcm[j]; - for(i=0;iwindow[0]-hs); - float *pcm=v->pcm[j]+prevCenter+n1/2-n0/2; - float *p=vb->pcm[j]; - for(i=0;iW){ - /* small/large */ - const float *w=_vorbis_window_get(b->window[0]-hs); - float *pcm=v->pcm[j]+prevCenter; - float *p=vb->pcm[j]+n1/2-n0/2; - for(i=0;iwindow[0]-hs); - float *pcm=v->pcm[j]+prevCenter; - float *p=vb->pcm[j]; - for(i=0;ipcm[j]+thisCenter; - float *p=vb->pcm[j]+n; - for(i=0;icenterW) - v->centerW=0; - else - v->centerW=n1; - - /* deal with initial packet state; we do this using the explicit - pcm_returned==-1 flag otherwise we're sensitive to first block - being short or long */ - - if(v->pcm_returned==-1){ - v->pcm_returned=thisCenter; - v->pcm_current=thisCenter; - }else{ - v->pcm_returned=prevCenter; - v->pcm_current=prevCenter+ - ((ci->blocksizes[v->lW]/4+ - ci->blocksizes[v->W]/4)>>hs); - } - - } - - /* track the frame number... This is for convenience, but also - making sure our last packet doesn't end with added padding. If - the last packet is partial, the number of samples we'll have to - return will be past the vb->granulepos. - - This is not foolproof! It will be confused if we begin - decoding at the last page after a seek or hole. In that case, - we don't have a starting point to judge where the last frame - is. For this reason, vorbisfile will always try to make sure - it reads the last two marked pages in proper sequence */ - - if(b->sample_count==-1){ - b->sample_count=0; - }else{ - b->sample_count+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; - } - - if(v->granulepos==-1){ - if(vb->granulepos!=-1){ /* only set if we have a position to set to */ - - v->granulepos=vb->granulepos; - - /* is this a short page? */ - if(b->sample_count>v->granulepos){ - /* corner case; if this is both the first and last audio page, - then spec says the end is cut, not beginning */ - long extra=b->sample_count-vb->granulepos; - - /* we use ogg_int64_t for granule positions because a - uint64 isn't universally available. Unfortunately, - that means granposes can be 'negative' and result in - extra being negative */ - if(extra<0) - extra=0; - - if(vb->eofflag){ - /* trim the end */ - /* no preceding granulepos; assume we started at zero (we'd - have to in a short single-page stream) */ - /* granulepos could be -1 due to a seek, but that would result - in a long count, not short count */ - - /* Guard against corrupt/malicious frames that set EOP and - a backdated granpos; don't rewind more samples than we - actually have */ - if(extra > (v->pcm_current - v->pcm_returned)<pcm_current - v->pcm_returned)<pcm_current-=extra>>hs; - }else{ - /* trim the beginning */ - v->pcm_returned+=extra>>hs; - if(v->pcm_returned>v->pcm_current) - v->pcm_returned=v->pcm_current; - } - - } - - } - }else{ - v->granulepos+=ci->blocksizes[v->lW]/4+ci->blocksizes[v->W]/4; - if(vb->granulepos!=-1 && v->granulepos!=vb->granulepos){ - - if(v->granulepos>vb->granulepos){ - long extra=v->granulepos-vb->granulepos; - - if(extra) - if(vb->eofflag){ - /* partial last frame. Strip the extra samples off */ - - /* Guard against corrupt/malicious frames that set EOP and - a backdated granpos; don't rewind more samples than we - actually have */ - if(extra > (v->pcm_current - v->pcm_returned)<pcm_current - v->pcm_returned)<pcm_current-=extra>>hs; - } /* else {Shouldn't happen *unless* the bitstream is out of - spec. Either way, believe the bitstream } */ - } /* else {Shouldn't happen *unless* the bitstream is out of - spec. Either way, believe the bitstream } */ - v->granulepos=vb->granulepos; - } - } - - /* Update, cleanup */ - - if(vb->eofflag)v->eofflag=1; - return(0); - -} - -/* pcm==NULL indicates we just want the pending samples, no more */ -int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm){ - vorbis_info *vi=v->vi; - - if(v->pcm_returned>-1 && v->pcm_returnedpcm_current){ - if(pcm){ - int i; - for(i=0;ichannels;i++) - v->pcmret[i]=v->pcm[i]+v->pcm_returned; - *pcm=v->pcmret; - } - return(v->pcm_current-v->pcm_returned); - } - return(0); -} - -int vorbis_synthesis_read(vorbis_dsp_state *v,int n){ - if(n && v->pcm_returned+n>v->pcm_current)return(OV_EINVAL); - v->pcm_returned+=n; - return(0); -} - -/* intended for use with a specific vorbisfile feature; we want access - to the [usually synthetic/postextrapolated] buffer and lapping at - the end of a decode cycle, specifically, a half-short-block worth. - This funtion works like pcmout above, except it will also expose - this implicit buffer data not normally decoded. */ -int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - int hs=ci->halfrate_flag; - - int n=ci->blocksizes[v->W]>>(hs+1); - int n0=ci->blocksizes[0]>>(hs+1); - int n1=ci->blocksizes[1]>>(hs+1); - int i,j; - - if(v->pcm_returned<0)return 0; - - /* our returned data ends at pcm_returned; because the synthesis pcm - buffer is a two-fragment ring, that means our data block may be - fragmented by buffering, wrapping or a short block not filling - out a buffer. To simplify things, we unfragment if it's at all - possibly needed. Otherwise, we'd need to call lapout more than - once as well as hold additional dsp state. Opt for - simplicity. */ - - /* centerW was advanced by blockin; it would be the center of the - *next* block */ - if(v->centerW==n1){ - /* the data buffer wraps; swap the halves */ - /* slow, sure, small */ - for(j=0;jchannels;j++){ - float *p=v->pcm[j]; - for(i=0;ipcm_current-=n1; - v->pcm_returned-=n1; - v->centerW=0; - } - - /* solidify buffer into contiguous space */ - if((v->lW^v->W)==1){ - /* long/short or short/long */ - for(j=0;jchannels;j++){ - float *s=v->pcm[j]; - float *d=v->pcm[j]+(n1-n0)/2; - for(i=(n1+n0)/2-1;i>=0;--i) - d[i]=s[i]; - } - v->pcm_returned+=(n1-n0)/2; - v->pcm_current+=(n1-n0)/2; - }else{ - if(v->lW==0){ - /* short/short */ - for(j=0;jchannels;j++){ - float *s=v->pcm[j]; - float *d=v->pcm[j]+n1-n0; - for(i=n0-1;i>=0;--i) - d[i]=s[i]; - } - v->pcm_returned+=n1-n0; - v->pcm_current+=n1-n0; - } - } - - if(pcm){ - int i; - for(i=0;ichannels;i++) - v->pcmret[i]=v->pcm[i]+v->pcm_returned; - *pcm=v->pcmret; - } - - return(n1+n-v->pcm_returned); - -} - -const float *vorbis_window(vorbis_dsp_state *v,int W){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - int hs=ci->halfrate_flag; - private_state *b=v->backend_state; - - if(b->window[W]-1<0)return NULL; - return _vorbis_window_get(b->window[W]-hs); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/coupled/res_books_51.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/coupled/res_books_51.h deleted file mode 100644 index 47df4b22..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/coupled/res_books_51.h +++ /dev/null @@ -1,12273 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - * - * function: static codebooks for 5.1 surround - * - ********************************************************************/ - -static const long _vq_quantlist__44p0_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p0_l0_0[] = { - 1, 3, 4, 7, 7, 8, 8, 9, 9, 9,10,10,10, 5, 6, 5, - 8, 7, 9, 8, 9, 9,10, 9,11,10, 5, 5, 7, 7, 8, 8, - 9, 9, 9, 9,10,10,11, 8, 9, 8,10, 9,10, 9,10, 9, - 11,10,11,10, 8, 8, 9, 9,10, 9,10, 9,11,10,11,10, - 11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11, - 11,11,12,11,11,11,11,11,11,10,12,12,12,12,12,12, - 12,11,12,12,12,11,11,11,12,12,12,12,12,12,12,11, - 12,11,12,11,11,13,12,12,12,13,12,12,12,12,11,12, - 11,11,13,13,13,12,12,12,12,12,12,11,11,11,10,13, - 13,13,12,13,12,13,11,13,10,12,11,11,13,13,12,13, - 12,12,12,12,11,12,11,11,11, -}; - -static const static_codebook _44p0_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p0_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p0_l0_0, - 0 -}; - -static const long _vq_quantlist__44p0_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p0_l0_1[] = { - 1, 4, 4, 6, 6, 5, 5, 5, 7, 5, 5, 5, 5, 6, 7, 7, - 6, 7, 7, 7, 6, 7, 7, 7, 7, -}; - -static const static_codebook _44p0_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p0_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p0_l0_1, - 0 -}; - -static const long _vq_quantlist__44p0_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_l1_0[] = { - 1, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const static_codebook _44p0_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44p0_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p0_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p0_lfe[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book__44p0_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p0_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p0_long[] = { - 2, 3, 6, 7,10,14,16, 3, 2, 5, 7,11,14,17, 6, 5, - 5, 7,10,12,14, 7, 7, 6, 6, 7, 9,13,10,11, 9, 6, - 6, 9,11,15,15,13,10, 9,10,12,18,18,16,14,12,13, - 16, -}; - -static const static_codebook _huff_book__44p0_long = { - 2, 49, - (char *)_huff_lengthlist__44p0_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p0_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_p1_0[] = { - 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p0_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p0_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p0_p1_0, - 0 -}; - -static const long _vq_quantlist__44p0_p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_p2_0[] = { - 1, 5, 5, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, - 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 0, 6, 6, 0,11, - 11, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0,12,12, - 0,15,15, 0,12,12, 0, 5, 5, 0, 5, 5, 0, 6, 6, 0, - 7, 7, 0,11,11, 0, 6, 6, 0, 7, 7, 0,10,11, 0, 6, - 6, 0, 7, 7, 0,11,11, 0,12,12, 0,11,11, 0,15,15, - 0,10,10, 0,12,12, 0,15,15, 0,12,12, 0, 6, 6, 0, - 12,12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0,12, - 12, 0,15,15, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 8, 0,12,12, 0,12,12, 0,12,12, 0,15, - 15, 0,12,12, 0,11,12, 0,15,16, 0,11,11, 0, 6, 6, - 0,11,12, 0,12,12, 0,12,12, 0,16,15, 0,12,12, 0, - 13,12, 0,15,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p0_p2_0 = { - 5, 243, - (char *)_vq_lengthlist__44p0_p2_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p0_p2_0, - 0 -}; - -static const long _vq_quantlist__44p0_p2_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_p2_1[] = { - 1, 3, 3, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0, - 10,10, 0,10,10, 0, 9, 9, 0,10,10, 0, 7, 7, 0, 7, - 7, 0, 6, 6, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 9, - 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 9, 9, 0, 8, 8, 0, - 10,10, 0, 9, 9, 0,10,10, 0,10,10, 0, 9, 9, 0,10, - 10, 0, 9, 9, 0,11,11, 0,11,11, 0,12,12, 0,11,11, - 0,12,12, 0,13,13, 0,12,12, 0,13,12, 0, 8, 8, 0, - 12,12, 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0,13, - 13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 0,11,11, 0,12,12, 0,13,13, 0,12, - 12, 0,13,13, 0,13,13, 0,12,12, 0,12,12, 0, 8, 8, - 0,12,12, 0,12,12, 0,13,13, 0,13,13, 0,13,14, 0, - 14,13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p0_p2_1 = { - 5, 243, - (char *)_vq_lengthlist__44p0_p2_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p0_p2_1, - 0 -}; - -static const long _vq_quantlist__44p0_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_p3_0[] = { - 1, 6, 6, 7, 8, 8, 7, 8, 8, 7, 9, 9,10,12,11, 9, - 8, 8, 7, 9, 9,11,12,12, 9, 9, 9, 6, 7, 7,10,11, - 11,10,11,11,10,11,11,13,13,14,12,12,12,11,11,11, - 14,14,14,12,12,12, 6, 5, 5, 9, 6, 5, 9, 6, 6, 9, - 7, 7,12,10,10,11, 6, 6,10, 7, 7,13,10,10,12, 7, - 7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, - 13, 9, 9,12,11,11,16,13,13,15,11,11, 8, 7, 7,12, - 12,12,12,11,11,12,11,11,14,14,14,14,12,12,12,12, - 12,16,15,15,14,12,12, 0,10,10, 0,12,12, 0,12,12, - 0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, - 11,11, 8, 8, 8,13,11,11,13,10,10,13,11,11,15,13, - 13,14,11,11,12,10,10,16,14,14,14,10,10, 9, 7, 7, - 13,11,11,13,11,11,12,11,11,16,14,14,14,12,12,13, - 12,12,15,14,14,15,13,12, 0,11,11, 0,12,12, 0,12, - 12, 0,12,12, 0,15,15, 0,12,12, 0,13,12, 0,14,15, - 0,12,12, -}; - -static const static_codebook _44p0_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p0_p3_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p0_p3_0, - 0 -}; - -static const long _vq_quantlist__44p0_p3_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p0_p3_1[] = { - 2, 4, 4, 8, 8,10,12,12,11,11, 9,11,11,12,13,11, - 12,12,11,11,11,12,12,12,12,10,13,12,13,13,11,12, - 12,13,13,11,12,12,13,13,11,12,13,13,13,11,13,13, - 13,13,10,13,13,12,13,11,12,12,14,14,11,13,12,12, - 12,11,12,12,13,13,11,13,13,12,12,11,13,13,13,13, - 11,12,12,13,13,11,13,13,12,12,11,12,12,13,13,11, - 13,13,12,12,11,13,13,13,13,11,12,12,14,14,11,13, - 13,12,12,11,12,12,13,13,11,13,13,12,12,11,10,10, - 10,10,12,10,10,11,11,11, 8, 8,11,11,13,10,10,10, - 10,12,10,10,10,10,13,11,11,11,11,13,10,10,11,11, - 13,11,11,12,12,13,11,11,11,11,13,11,11,12,12,13, - 11,11,12,12,13,10,10,11,11,13,11,11,11,11,13,11, - 10,11,11,13,11,11,11,11,13,11,11,11,11,13,10,10, - 11,11,13,11,11,11,11,12,10,11,11,11,13,11,11,11, - 11,13,11,11,11,11,13,10,10,11,11,13,11,11,11,11, - 13,11,11,11,11,13,11,11,11,11,11,10,10,10,10,12, - 10,10, 9, 9,12,12,12,11,11,13,12,12, 9, 9,13,12, - 12,10,10,12,12,12,12,12,13,13,13,14,14,13,12,12, - 11,11,13,13,13,12,12,13,12,12,11,11,13,12,13,11, - 11,13,13,13,14,14,13,12,12,10,10,13,13,13,11,11, - 13,12,12,10,10,13,13,13,11,11,13,13,13,14,14,13, - 12,12,10,10,13,13,13,11,11,13,12,13,10,10,13,13, - 13,11,11,13,13,13,14,14,13,12,12,10,10,13,13,13, - 11,11,13,13,12,10,10,14,12,12, 8, 8,14,12,12, 9, - 9,14,11,11, 9, 9,14,12,12, 8, 8,14,11,11, 7, 7, - 14,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, - 12,12, 9, 9,15,13,13,10,10,15,13,13,10,10,15,12, - 12,10,10,15,13,13,10,10,14,12,12, 9, 9,14,13,13, - 9, 9,14,13,13, 9, 9,15,12,12, 9, 9,15,13,13, 9, - 9,14,12,12, 9, 9,14,13,13, 9, 9,14,13,13, 9, 9, - 15,12,12, 9, 9,14,13,13, 9, 9,14,12,12, 9, 9,14, - 13,13, 9, 9,13,12,12, 8, 8,13,13,13, 8, 8,14,13, - 13, 9, 9,13,13,13, 7, 7,14,13,13, 8, 8,14,14,14, - 10,10,14,14,14,11,11,14,14,14, 9, 9,14,14,14,10, - 10,14,14,14, 9, 9,14,14,14,10, 9,15,14,14,11,11, - 14,14,14, 9, 9,14,14,14,10,10,14,14,14, 9, 9,14, - 14,14, 9, 9,15,14,14,11,11,14,14,14, 8, 8,14,14, - 14, 9, 9,14,14,14, 8, 8,14,14,14, 9, 9,15,14,14, - 11,11,14,14,14, 8, 8,14,14,14, 9, 9,14,14,14, 8, - 8,12,12,12,13,13,16,15,15,11,11,16,15,16,12,12, - 17,16,16,11,11,17,15,15,12,11,16,16,16,12,13,16, - 15,15,13,13,16,16,16,12,12,16,16,15,13,13,16,16, - 16,12,12,16,16,16,13,13,17,16,16,14,14,17,17,16, - 12,12,17,16,16,13,13,17,17,16,12,13,16,16,17,13, - 12,17,16,16,14,13,17,16,16,12,12,17,16,16,12,12, - 17,16,17,12,12,17,17,17,13,13,16,16,16,13,14,17, - 17,16,12,12,16,16,16,13,13,17,17,17,12,12,13,14, - 14,10,10,16,14,14,12,12,16,15,15,14,14,16,14,14, - 12,12,15,14,14,13,13,17,15,15,14,13,16,16,15,15, - 15,16,15,15,14,14,16,15,15,14,14,17,15,15,14,14, - 16,15,15,14,14,16,16,15,15,15,17,15,15,13,13,16, - 15,15,14,14,17,15,15,13,13,17,15,15,14,14,16,15, - 15,15,15,16,14,14,13,13,16,15,15,14,14,16,14,14, - 13,13,17,15,15,14,14,16,16,15,15,15,17,14,14,13, - 13,16,15,15,14,14,17,14,14,13,13,13,11,11,10,10, - 16,14,14,13,13,15,14,14,13,13,16,14,14,12,12,16, - 14,14,12,12,15,15,15,14,14,16,14,14,14,14,16,15, - 14,14,14,16,14,14,14,14,16,15,15,14,13,16,15,15, - 14,14,16,14,14,14,14,17,15,15,14,14,16,14,14,14, - 14,16,15,15,13,14,16,15,15,14,14,16,14,14,14,14, - 16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16, - 15,15,14,14,16,14,14,14,14,17,15,15,13,13,16,15, - 14,13,13,17,15,15,13,13,14,14,14, 9, 9,14,14,14, - 17,17,14,15,15,18,18,14,14,14,18,19,14,14,14,18, - 18,15,15,15,19,18,15,16,15,18,20,15,15,15,18,19, - 15,15,15,19,19,15,15,15,18,20,15,15,15,18,19,15, - 15,16,20,18,15,15,15,18,18,15,15,15,19,19,15,15, - 15,18,19,15,15,15,18,19,15,15,15,19,19,14,15,14, - 19,19,15,15,15,20,19,15,14,14,19,18,14,15,15,18, - 19,15,15,16,20,20,14,14,14,18,19,15,15,15,19,18, - 14,14,14,18,18,14,12,12, 9, 9,13,14,14,18,18,14, - 13,13,18,19,14,14,14,18,18,14,14,14,18,18,15,15, - 15,19,19,15,14,14,19,18,14,15,15,19,18,15,14,14, - 18,18,15,15,15,19,18,14,15,15,19,19,15,14,14,19, - 18,14,15,15,19,18,15,14,14,19,18,14,15,15,19,18, - 15,15,15,21,18,15,14,14,19,18,14,15,15,18,19,14, - 15,14,20,19,14,15,15,18,19,14,15,15,19,19,15,14, - 14,19,20,14,15,15,18,18,14,14,14,19,19,14,15,15, - 19,18,12,12,12,13,13,16,15,15,11,11,16,15,15,12, - 12,16,16,16,11,11,16,15,15,11,11,16,16,16,13,13, - 17,16,16,13,13,17,17,17,12,12,16,16,16,13,13,17, - 16,17,13,12,15,16,16,12,12,16,15,15,13,13,17,16, - 16,12,12,16,16,15,12,12,16,16,16,12,12,17,17,16, - 13,12,16,16,16,13,13,17,16,16,12,12,17,16,16,12, - 12,17,17,16,12,12,16,17,16,12,12,17,15,15,13,13, - 17,16,16,12,12,16,16,16,12,12,16,16,16,12,12,13, - 13,13, 9, 9,15,14,14,13,13,16,15,14,14,14,16,14, - 14,13,13,15,14,14,13,13,17,15,15,14,14,16,15,15, - 15,15,16,15,15,14,14,16,15,15,15,15,17,15,15,14, - 14,16,15,15,14,14,16,15,15,15,15,17,14,15,14,14, - 16,15,15,14,14,17,15,15,13,14,17,15,15,14,14,16, - 15,15,15,15,17,14,14,13,13,16,15,15,14,14,17,14, - 14,13,13,17,15,15,14,14,16,15,16,15,15,17,14,14, - 13,13,16,15,15,14,14,18,14,14,13,13,13,11,11,11, - 11,15,14,14,12,12,15,14,14,13,13,16,14,14,12,12, - 16,13,14,12,12,16,15,15,13,13,16,14,14,14,14,16, - 15,15,13,13,16,14,14,13,13,16,14,15,13,13,15,15, - 15,13,13,16,14,14,14,13,16,14,14,13,13,16,14,14, - 13,13,16,15,15,13,13,16,15,15,13,13,16,14,14,14, - 14,16,15,15,12,12,16,14,14,13,13,16,15,15,12,12, - 16,15,15,13,13,16,14,14,14,14,17,15,14,12,12,16, - 14,14,13,13,16,15,15,12,12,14,14,14, 8, 8,14,14, - 14,17,18,14,15,15,17,18,14,14,14,17,18,14,14,14, - 18,18,14,15,15,18,18,14,16,15,19,19,15,15,15,18, - 19,15,16,15,20,19,15,15,15,18,18,14,15,15,18,19, - 15,16,16,20,19,15,15,15,19,17,14,15,15,20,18,14, - 15,15,18,18,14,15,15,18,19,14,15,15,19,20,14,14, - 14,18,18,14,15,15,18,19,14,14,14,18,19,14,15,15, - 19,18,15,16,16,20,21,14,14,15,19,19,14,15,15,19, - 19,14,14,14,19,18,13,12,12, 9, 9,13,14,14,18,19, - 14,14,14,18,19,14,14,14,18,18,14,14,14,18,18,14, - 15,15,19,19,15,14,14,19,18,15,15,15,19,19,15,14, - 14,19,20,14,15,15,18,19,14,15,15,20,18,15,14,14, - 18,18,14,15,15,18,18,14,14,14,19,19,14,15,15,18, - 18,14,15,15,19,18,15,14,14,19,19,14,15,15,19,18, - 15,14,14,19,18,14,14,15,18,19,14,15,15,19,18,15, - 14,14,18,19,14,15,14,19,20,14,14,14,19,19,14,15, - 15,19,19,12,12,12,13,13,16,16,16,11,11,16,16,16, - 12,12,17,16,16,11,11,17,15,15,11,11,16,16,16,13, - 13,17,15,16,13,13,16,16,16,12,12,17,16,16,13,13, - 17,17,16,12,12,17,17,16,13,13,17,16,16,13,13,17, - 17,17,12,12,17,16,16,13,13,17,17,17,12,12,16,16, - 16,12,12,17,15,15,13,13,17,16,16,11,11,17,16,16, - 12,12,16,16,16,11,11,16,17,16,12,12,17,16,16,13, - 13,17,17,16,12,12,17,17,16,12,12,17,16,16,11,11, - 13,14,14, 9, 9,16,14,14,13,13,16,14,15,14,14,16, - 14,14,12,12,16,14,14,13,13,17,15,15,14,14,16,15, - 15,15,15,17,15,15,14,14,16,15,15,14,14,17,15,15, - 14,14,16,15,15,14,14,16,15,15,15,16,17,14,15,14, - 14,16,15,15,14,14,17,15,15,14,14,16,15,15,14,14, - 16,15,15,15,15,17,14,14,13,13,16,15,15,14,14,16, - 14,14,13,13,17,15,15,14,14,16,16,15,15,15,17,14, - 14,13,13,16,15,15,14,14,17,14,14,13,13,13,11,11, - 10,10,16,14,14,12,12,15,13,13,13,12,16,14,14,11, - 11,16,14,14,11,11,16,14,15,13,14,16,14,14,13,13, - 16,15,15,13,13,16,14,14,13,13,16,15,15,13,13,16, - 15,15,13,13,17,14,14,14,14,17,15,15,13,13,16,14, - 15,13,13,16,15,15,13,13,16,15,15,13,13,16,14,14, - 13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12, - 12,16,15,15,13,13,16,14,14,13,13,17,15,15,12,12, - 17,14,14,12,12,16,15,15,12,12,13,14,14, 8, 8,13, - 14,14,18,18,13,15,15,17,18,14,14,14,18,19,14,14, - 14,19,18,14,15,15,19,18,15,15,16,21,18,15,15,15, - 19,19,14,16,16,19,19,14,15,15,18,19,14,15,15,19, - 20,14,16,16,19,18,15,15,15,18,19,14,15,15,19,18, - 15,15,15,18,18,15,15,15,20,18,15,16,16,20,19,14, - 15,14,18,19,14,15,16,19,20,14,15,15,19,18,15,15, - 15,19,18,15,16,16,20,19,15,14,14,18,18,14,15,15, - 19,19,14,15,15,18,18,13,12,12, 8, 8,13,14,14,19, - 18,14,13,13,20,18,14,14,14,19,18,14,13,13,18,19, - 14,15,15,20,19,15,14,14,19,19,14,15,15,19,18,15, - 14,14,20,20,15,15,15,19,18,14,15,15,19,18,15,14, - 14,19,18,14,15,15,20,19,14,14,14,20,19,14,15,15, - 19,18,15,15,15,18,18,15,14,14,18,18,14,15,15,19, - 19,14,14,14,19,19,14,15,15,19,19,15,15,15,19,18, - 15,14,14,20,19,15,15,15,19,19,14,14,14,20,19,14, - 15,15,20,20,12,12,12,13,13,17,16,16,11,11,16,16, - 15,12,12,17,16,16,11,11,17,15,15,11,11,17,17,17, - 13,13,17,16,16,13,13,17,17,17,12,12,17,16,16,13, - 13,17,17,16,12,13,16,17,16,13,13,17,16,15,13,13, - 17,16,16,12,12,17,16,16,12,13,17,16,17,12,12,17, - 17,17,12,12,17,16,15,13,13,17,16,16,12,12,17,16, - 16,12,12,17,16,16,11,11,16,16,16,12,12,17,15,15, - 13,13,17,16,15,11,11,16,16,16,12,12,17,16,16,11, - 11,13,14,14, 9, 9,16,14,14,13,13,16,14,15,14,14, - 16,14,14,12,12,16,14,14,13,13,17,15,15,14,15,16, - 15,15,15,15,17,15,15,14,14,16,15,15,15,14,16,15, - 15,14,14,16,15,15,14,14,16,15,16,15,15,17,15,14, - 14,14,16,15,15,14,14,17,15,15,13,13,16,15,15,14, - 14,16,16,16,15,15,17,14,14,13,13,16,15,15,14,14, - 18,14,15,13,13,16,15,15,14,14,16,16,15,15,15,16, - 14,14,13,13,16,15,15,14,14,17,14,15,13,13,13,11, - 11,10,10,15,14,14,12,12,15,14,14,13,13,16,14,14, - 12,12,16,13,14,12,12,16,14,15,14,13,16,14,14,14, - 14,16,15,15,13,13,16,14,14,13,13,16,15,15,13,13, - 15,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16, - 14,14,13,13,16,15,15,13,13,16,15,15,13,13,16,14, - 14,13,13,17,15,15,12,12,16,14,14,12,12,16,14,15, - 12,12,16,15,15,13,13,16,14,14,13,13,17,15,15,12, - 12,16,14,14,12,12,16,15,15,12,12,14,14,14, 8, 8, - 14,14,14,17,17,14,15,15,18,18,14,14,14,18,17,14, - 14,14,18,18,14,15,15,18,20,15,16,15,19,18,15,15, - 15,19,18,15,15,16,19,18,15,15,15,18,18,14,15,15, - 18,18,15,16,16,18,19,15,15,15,18,18,15,15,15,19, - 20,15,15,15,18,18,15,15,15,18,18,15,16,16,19,19, - 15,14,15,19,19,15,15,15,19,20,14,14,15,18,18,15, - 15,15,19,19,15,16,16,19,19,15,15,14,18,19,15,15, - 15,20,20,15,15,14,18,18,13,12,12, 8, 8,13,14,14, - 18,18,14,14,14,18,18,14,14,14,18,20,14,14,14,18, - 18,14,15,15,19,18,15,14,14,18,19,15,15,15,18,19, - 15,14,14,18,19,15,15,15,18,18,14,15,14,18,19,15, - 14,14,21,19,15,15,15,19,18,14,14,14,19,18,14,15, - 15,19,18,15,15,15,20,19,15,14,14,20,18,14,15,15, - 18,19,14,14,14,19,18,14,15,15,18,19,15,15,15,18, - 19,15,14,14,19,19,15,15,15,19,19,14,14,14,19,20, - 14,15,15,18,19, -}; - -static const static_codebook _44p0_p3_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p0_p3_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p0_p3_1, - 0 -}; - -static const long _vq_quantlist__44p0_p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p0_p4_0[] = { - 2, 6, 6,14,14, 6, 8, 8,14,14, 7, 7, 7,14,14, 0, - 13,13,15,16, 0,13,13,15,15, 7, 8, 8,15,15, 9,10, - 10,16,16, 9, 8, 8,14,15, 0,13,13,17,17, 0,13,13, - 16,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,14, - 14, 0,13,13,17,17, 0,13,13,15,15, 0,14,14,16,16, - 0, 0, 0,18,19, 0,12,12,16,15, 0,16,16, 0,20, 0, - 14,14,16,16, 0,14,14,17,17, 0, 0, 0,19,19, 0,12, - 12,15,15, 0,18,17,21,21, 0,14,14,16,16, 5, 7, 7, - 12,13, 9,10, 9,14,14,11,10,10,14,14, 0, 0, 0,18, - 17, 0,20,21,18,18, 9,10,10,14,14,12,12,12,17,16, - 12,10,10,14,14, 0,20,20,18,17, 0,21,21,17,17,11, - 10,10,14,14,15,13,13,18,18,13,11,11,14,14, 0,20, - 0,18,18, 0,20,21,18,17, 0,21, 0,18,19, 0, 0, 0, - 0,21, 0,21,20,16,17, 0, 0, 0,21,21, 0, 0, 0,20, - 18, 0,20, 0,17,18, 0, 0, 0, 0, 0, 0, 0,20,16,17, - 0, 0, 0,20, 0, 0, 0, 0,18,18, 6, 6, 6,13,13, 8, - 5, 5,11,11, 9, 6, 6,13,13, 0, 9, 9,12,12, 0,10, - 10,14,14, 9, 7, 7,13,13,12, 9, 9,13,13,10, 6, 6, - 13,13, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, - 13,13,10,10,13,13,11, 6, 6,13,13, 0,10,10,15,15, - 0,10,10,13,13, 0,12,11,15,15, 0,20,19,17,16, 0, - 9, 9,13,13, 0,13,13,20,19, 0,11,11,13,13, 0,11, - 11,15,15, 0,20,19,17,17, 0,10,10,13,13, 0,14,15, - 0,21, 0,12,12,13,13, 0,10,10,12,12, 0,11,11,15, - 15, 0,11,11,15,15, 0,15,15,20,20, 0,16,16, 0, 0, - 0,11,11,15,15, 0,14,14,17,17, 0,11,11,15,15, 0, - 15,15,20,21, 0,16,16,21,21, 0,12,12,15,15, 0,15, - 15,18,20, 0,11,11,16,15, 0,15,15,21,21, 0,16,16, - 0,21, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0,14,14,21, - 21, 0,17,18, 0, 0, 0,16,17,20, 0, 0,16,16, 0, 0, - 0, 0, 0, 0, 0, 0,15,15,20,20, 0,19,18, 0,21, 0, - 18,17, 0, 0, 0,10,10,11,11, 0,10,10,10,10, 0,11, - 11,12,12, 0,11,11, 9, 9, 0,13,13,12,12, 0,11,11, - 12,12, 0,13,13,12,12, 0,10,10,12,12, 0,12,12,13, - 13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, - 0,10,10,12,12, 0,13,13,13,13, 0,12,12,12,12, 0, - 14,13,13,13, 0,19,21,15,15, 0,12,11,12,12, 0,16, - 15,19,19, 0,13,13,11,11, 0,13,13,13,13, 0, 0,21, - 15,16, 0,12,12,12,12, 0,16,16,19,21, 0,13,13,12, - 12, 7, 7, 7,16,16,11, 9, 9,16,16,12, 9, 9,16,16, - 0,13,13,16,16, 0,14,14,17,16,11, 9, 9,16,16,14, - 12,11,17,17,13, 8, 9,15,15, 0,13,13,19,19, 0,13, - 13,16,15,12,10,10,17,17,15,12,12,19,18,14, 9, 9, - 17,16, 0,14,14,18, 0, 0,14,13,16,16, 0,14,15,18, - 17, 0,21, 0,19,21, 0,12,12,16,16, 0,16,16, 0, 0, - 0,14,14,16,16, 0,14,14,18,18, 0, 0,21,20, 0, 0, - 13,13,16,17, 0,18,18, 0, 0, 0,15,14,17,16, 8, 7, - 7,14,14,11,10,10,15,15,13,10,10,15,15, 0,21,20, - 19,19, 0,21, 0,17,18,11,10,10,15,16,14,12,12,18, - 18,14,11,11,15,14, 0,21,20,18,19, 0, 0,21,18,18, - 12,11,11,16,16,16,14,14,18,20,14,11,11,16,15, 0, - 20,20,19,19, 0, 0,20,18,18, 0,21, 0,18,19, 0, 0, - 0, 0, 0, 0,20,20,17,18, 0, 0, 0,20,20, 0, 0, 0, - 19,19, 0, 0, 0,20,18, 0, 0, 0, 0, 0, 0, 0,21,18, - 18, 0,21,21, 0,21, 0, 0, 0,19,20,11, 9, 9,14,14, - 13,10,10,14,14,13,11,11,15,15, 0,13,13,13,13, 0, - 14,14,16,16,13,11,11,15,15,16,12,12,15,15,14,10, - 10,14,14, 0,14,14,16,16, 0,14,14,15,15,13,10,10, - 15,15,17,13,14,15,16,15,10,10,15,15, 0,14,14,17, - 16, 0,14,14,15,15, 0,15,15,17,17, 0, 0,21,18,18, - 0,13,13,15,15, 0,16,16,21,20, 0,14,14,15,14, 0, - 15,14,16,17, 0, 0,20,20,19, 0,13,13,15,15, 0,19, - 18, 0, 0, 0,15,15,15,15, 0,11,11,14,14, 0,12,12, - 16,16, 0,12,12,16,16, 0,15,16,21,21, 0,16,17,21, - 0, 0,12,12,17,16, 0,14,14,18,19, 0,11,11,16,16, - 0,15,15,20,21, 0,16,16,21, 0, 0,12,12,17,16, 0, - 15,15,19,19, 0,12,12,16,17, 0,16,15, 0, 0, 0,16, - 16, 0, 0, 0,17,17, 0,21, 0, 0, 0, 0, 0, 0,14,15, - 20, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,17,16, 0, - 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,18,18, 0, 0, - 0,18,17, 0, 0, 0,11,11,14,14, 0,12,12,15,15, 0, - 12,12,15,15, 0,13,13,14,14, 0,14,14,17,17, 0,12, - 12,16,16, 0,14,14,16,16, 0,11,11,15,15, 0,13,13, - 16,17, 0,13,13,16,16, 0,12,12,15,15, 0,14,14,17, - 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,16,16, - 0,15,15,17,18, 0,21,20,20,21, 0,12,12,15,15, 0, - 16,16,20,21, 0,14,14,15,15, 0,14,14,17,17, 0, 0, - 0,18,19, 0,12,13,15,15, 0,18,17,21, 0, 0,14,15, - 15,15, 8, 8, 8,16,16,12,10,10,16,16,13, 9, 9,16, - 16, 0,14,14,18,17, 0,14,14,16,17,12,10,10,18,17, - 14,12,11,18,18,14, 9, 9,16,16, 0,13,13,18,18, 0, - 13,13,17,16,12, 9, 9,16,17,17,13,13,17,17,14, 9, - 9,15,15, 0,14,14,20,19, 0,13,13,16,16, 0,15,15, - 19,18, 0, 0, 0,20,19, 0,12,13,17,17, 0,16,16,20, - 0, 0,14,14,16,17, 0,14,14,19,18, 0, 0, 0,20,20, - 0,13,13,16,16, 0,18,17, 0, 0, 0,15,15,16,16, 9, - 7, 7,14,14,12,10,10,15,15,13,10,10,15,15, 0,21, - 0,18,19, 0,20,21,19,18,12,10,10,16,15,15,13,13, - 18,18,14,11,11,15,15, 0, 0, 0,19,18, 0, 0,21,18, - 18,13,11,11,15,15,16,14,14,17,19,15,11,11,15,15, - 0,21,21,20,18, 0, 0,21,18,18, 0, 0,21,21,19, 0, - 0, 0, 0, 0, 0,19,20,18,17, 0, 0, 0,21,21, 0,21, - 0,20,18, 0, 0,21,19,19, 0, 0, 0, 0, 0, 0,20,21, - 17,17, 0, 0, 0, 0, 0, 0,21, 0,18,20, 0,10,10,14, - 14, 0,11,11,15,15, 0,11,11,15,15, 0,14,14,15,15, - 0,15,15,16,16, 0,11,12,16,16, 0,13,13,16,16, 0, - 11,11,15,15, 0,14,14,17,17, 0,14,14,15,15, 0,11, - 11,16,15, 0,14,14,15,15, 0,11,11,15,15, 0,15,15, - 17,17, 0,14,14,15,15, 0,16,16,18,18, 0, 0, 0,20, - 19, 0,14,13,16,15, 0,17,17,21, 0, 0,15,15,15,15, - 0,16,15,17,16, 0,20, 0,20,18, 0,13,14,15,15, 0, - 19,18, 0,21, 0,15,15,15,15, 0,11,11,14,14, 0,12, - 12,16,16, 0,12,12,16,16, 0,16,15,20,21, 0,17,16, - 0, 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16, - 16, 0,15,15,21,20, 0,16,16, 0, 0, 0,12,12,16,17, - 0,15,14,19,19, 0,11,12,16,16, 0,15,15,21, 0, 0, - 16,16, 0, 0, 0,16,17, 0, 0, 0, 0, 0, 0, 0, 0,15, - 15,21, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,17,16, - 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0,20, 0,19,20, 0, - 0, 0,17,17, 0, 0, 0,12,12,15,15, 0,12,12,15,15, - 0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, - 13,13,17,16, 0,14,14,17,17, 0,11,11,16,16, 0,14, - 14,17,17, 0,13,13,16,16, 0,12,12,16,16, 0,15,15, - 16,17, 0,11,11,15,16, 0,14,14,17,17, 0,13,14,16, - 16, 0,15,15,18,18, 0,21,20,20,19, 0,13,13,16,17, - 0,16,16, 0, 0, 0,14,14,16,16, 0,15,15,18,18, 0, - 0, 0,20,19, 0,13,13,16,16, 0,17,17, 0, 0, 0,14, - 14,16,16, 0,11,11,16,16, 0,13,13,18,17, 0,13,13, - 17,17, 0,16,16,17,17, 0,16,16,17,18, 0,12,12,17, - 17, 0,15,15,18,18, 0,12,12,16,16, 0,16,16,19,19, - 0,15,15,16,17, 0,12,12,17,17, 0,17,17,18,18, 0, - 12,12,17,17, 0,16,16,19,19, 0,15,16,17,17, 0,16, - 16,18,17, 0, 0, 0,21,21, 0,13,13,16,16, 0,17,17, - 0,20, 0,15,15,16,17, 0,16,16,19,18, 0, 0,21,20, - 21, 0,14,14,17,16, 0,20, 0, 0, 0, 0,15,16,16,17, - 0, 9, 9,14,14, 0,13,13,16,16, 0,14,14,15,15, 0, - 0,20,19,19, 0, 0, 0,19,19, 0,12,12,15,15, 0,15, - 16,19,18, 0,14,14,15,15, 0,21, 0,18,18, 0,20, 0, - 17,18, 0,13,13,16,16, 0,17,17,17,19, 0,14,14,16, - 15, 0,21,20,20,19, 0, 0, 0,19,19, 0, 0, 0,19,18, - 0, 0, 0, 0, 0, 0,20,20,17,18, 0, 0, 0,21,21, 0, - 0, 0,18,18, 0,21, 0,18,19, 0, 0, 0, 0, 0, 0,20, - 21,18,18, 0, 0, 0,20,21, 0, 0, 0,19,19, 0,18,18, - 15,15, 0,20,21,17,17, 0,19,21,17,17, 0, 0, 0,17, - 18, 0, 0, 0,20,19, 0,19,19,17,17, 0, 0, 0,18,18, - 0,19,20,16,17, 0, 0,21,20,20, 0,19,20,19,18, 0, - 19,20,16,16, 0, 0, 0,18,19, 0,19,20,17,17, 0, 0, - 21, 0,20, 0,21,21,17,19, 0,20, 0,19,20, 0, 0, 0, - 20, 0, 0,19,18,17,16, 0, 0, 0, 0, 0, 0, 0,20,17, - 17, 0,20,21,18,20, 0, 0, 0, 0,21, 0,19,20,17,17, - 0, 0, 0, 0, 0, 0,20,21,17,17, 0,11,11,14,14, 0, - 13,13,16,17, 0,13,13,16,16, 0,17,17, 0,21, 0,18, - 17,21, 0, 0,13,13,16,16, 0,15,15,18,18, 0,12,12, - 16,16, 0,17,16,21, 0, 0,17,17, 0, 0, 0,12,12,17, - 17, 0,17,17,19,21, 0,13,12,16,16, 0,17,17, 0, 0, - 0,17,17, 0, 0, 0,18,17, 0,21, 0, 0, 0, 0, 0, 0, - 15,15,20, 0, 0,20,18, 0, 0, 0,17,18, 0, 0, 0,16, - 17, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,19,19, - 0, 0, 0,18,18, 0, 0, 0,14,14,18,18, 0,16,16, 0, - 21, 0,16,16,21,21, 0,17,17, 0,20, 0,17,17,20, 0, - 0,16,15, 0, 0, 0,20,20, 0, 0, 0,15,15,20,20, 0, - 17,17,21, 0, 0,17,18,20,20, 0,15,15,20,20, 0,18, - 18, 0, 0, 0,15,15,19,20, 0,17,18, 0, 0, 0,17,17, - 20,20, 0,18,17,21, 0, 0, 0, 0, 0,21, 0,15,15,20, - 20, 0,19,19, 0, 0, 0,17,17,21, 0, 0,17,17, 0, 0, - 0, 0, 0,21, 0, 0,15,15,19,19, 0,20,21, 0, 0, 0, - 18,17,21,21, 0,12,12,16,16, 0,14,14,17,17, 0,13, - 13,17,18, 0,16,16,18,17, 0,16,16,18,18, 0,13,13, - 18,18, 0,15,16,19,18, 0,13,13,16,16, 0,16,16,20, - 18, 0,16,16,17,17, 0,12,13,17,17, 0,17,16,18,18, - 0,12,12,16,16, 0,17,16,20,19, 0,16,16,16,16, 0, - 16,17,18,20, 0, 0, 0,21,20, 0,14,14,17,16, 0,19, - 18, 0,20, 0,16,16,17,16, 0,16,16,17,18, 0, 0,21, - 21,21, 0,14,14,16,16, 0,20,20,21, 0, 0,16,16,16, - 16, 0,10,10,14,14, 0,14,14,15,16, 0,14,14,15,15, - 0, 0,21,18,18, 0, 0,21,18,19, 0,13,13,16,16, 0, - 16,16,18,18, 0,14,14,15,15, 0,21, 0,18,18, 0,21, - 0,18,18, 0,13,13,16,16, 0,17,17,19,20, 0,14,14, - 15,15, 0, 0, 0,18,20, 0, 0,21,18,18, 0, 0,21,19, - 18, 0, 0, 0, 0, 0, 0,20,21,18,17, 0, 0, 0,21,21, - 0, 0, 0,19,19, 0,21, 0,18,19, 0, 0, 0, 0, 0, 0, - 21,20,17,17, 0, 0,21,20, 0, 0, 0, 0,19,19, 0,19, - 20,15,16, 0, 0,20,18,17, 0,20,21,17,18, 0,21, 0, - 18,18, 0, 0, 0,19,19, 0,20,20,17,18, 0, 0, 0,18, - 19, 0,20,20,18,17, 0, 0, 0, 0,20, 0, 0,21,17,18, - 0,20,21,17,17, 0, 0, 0,18,18, 0,19,19,17,17, 0, - 0, 0,21,21, 0,20,20,17,17, 0, 0, 0,21,19, 0, 0, - 0,20,19, 0,21,20,17,18, 0, 0, 0, 0, 0, 0, 0,20, - 18,17, 0,21,20,18,18, 0, 0, 0,20,21, 0,20,20,17, - 17, 0, 0, 0, 0, 0, 0,20, 0,17,17, 0,11,11,13,14, - 0,13,13,16,16, 0,13,13,16,16, 0,17,17, 0, 0, 0, - 17,18, 0, 0, 0,13,13,16,16, 0,15,16,18,18, 0,13, - 13,16,17, 0,16,17,20, 0, 0,17,18,20, 0, 0,13,13, - 17,17, 0,16,16,20,21, 0,13,13,16,16, 0,17,17,21, - 0, 0,17,18, 0, 0, 0,17,18, 0,21, 0, 0, 0, 0, 0, - 0,15,15,20, 0, 0,19,19, 0, 0, 0,17,17, 0, 0, 0, - 18,17,21,20, 0, 0, 0, 0, 0, 0,16,16,20,21, 0,21, - 20, 0,21, 0,19,21, 0, 0, 0,15,15, 0, 0, 0,16,17, - 0,19, 0,16,16, 0, 0, 0,17,17, 0, 0, 0,19,18, 0, - 0, 0,16,16,20,20, 0,20,18,21, 0, 0,15,15,21,21, - 0,18,18, 0, 0, 0,18,19, 0, 0, 0,16,15, 0,21, 0, - 20,19, 0, 0, 0,16,16, 0, 0, 0,20,18, 0,21, 0,17, - 18,21, 0, 0,18,19, 0, 0, 0, 0, 0, 0, 0, 0,16,16, - 20,20, 0,19,20, 0, 0, 0,17,17, 0, 0, 0,18,17,20, - 21, 0, 0, 0, 0, 0, 0,16,16, 0,20, 0,20,22, 0, 0, - 0,18,18, 0,22, -}; - -static const static_codebook _44p0_p4_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p0_p4_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p0_p4_0, - 0 -}; - -static const long _vq_quantlist__44p0_p4_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p0_p4_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p0_p4_1 = { - 1, 7, - (char *)_vq_lengthlist__44p0_p4_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p0_p4_1, - 0 -}; - -static const long _vq_quantlist__44p0_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_p5_0[] = { - 1, 6, 6, 6, 8, 8, 7, 8, 8, 7, 9, 8,10,11,11, 9, - 8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7,10,10, - 10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10, - 14,14,13,13,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 8, - 7, 7,11, 9, 9, 9, 7, 7, 8, 7, 7,12,10,10,10, 7, - 7, 7, 8, 8,12,11,11,12,10,10,11,10,10,14,13,13, - 13,10,10,11,10,11,16,14,14,13,10,10, 7, 8, 7,12, - 12,12,12,11,11,12,11,11,16,14,15,13,12,12,11,11, - 11,17,15,14,14,13,13,10, 9, 9,13,11,11,13,11,11, - 12,11,11,16,14,13,14,11,11,12,11,11,16,15,14,14, - 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,14, - 13,13,11,11,12,10,10,16,14,14,13,10,10, 8, 8, 8, - 12,12,12,12,11,11,12,11,11,16,14,15,14,12,12,12, - 11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11, - 11,12,12,12,16,14,14,14,11,11,12,11,11,17,14,15, - 14,11,11, -}; - -static const static_codebook _44p0_p5_0 = { - 5, 243, - (char *)_vq_lengthlist__44p0_p5_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p0_p5_0, - 0 -}; - -static const long _vq_quantlist__44p0_p5_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_p5_1[] = { - 2, 7, 7, 7, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 9, 8, - 7, 7, 8, 8, 8, 9, 9, 9, 9, 7, 7, 6, 6, 6, 9, 7, - 7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, - 10, 8, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 6, 6, 9, - 7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 8, 8, 9, 7, - 7, 7, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, 9, - 12, 8, 8,12, 9, 9,12,10, 9,12, 8, 8, 8, 7, 7,10, - 9, 9,11, 9, 9,11, 9, 9,11,11,10,11, 9, 9,11,10, - 9,11,10,11,11, 9, 9,10, 8, 8,11, 9, 9,11, 9, 9, - 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, - 9, 9, 9, 8, 8,12, 9, 9,12, 9, 9,11, 9, 9,12, 9, - 9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 9, 7, 7, - 11, 9,10,11,10, 9,11, 9, 9,11,11,11,11, 9, 9,11, - 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11,10, - 10,11,10, 9,11,10,10,11, 9, 9,11,10,10,11,10,11, - 11, 9, 9, -}; - -static const static_codebook _44p0_p5_1 = { - 5, 243, - (char *)_vq_lengthlist__44p0_p5_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p0_p5_1, - 0 -}; - -static const long _vq_quantlist__44p0_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p0_p6_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p0_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p0_p6_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p0_p6_0, - 0 -}; - -static const long _vq_quantlist__44p0_p6_1[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p0_p6_1[] = { - 1, 3, 2, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11,12,12,12,14,14,14,15,15, -}; - -static const static_codebook _44p0_p6_1 = { - 1, 25, - (char *)_vq_lengthlist__44p0_p6_1, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p0_p6_1, - 0 -}; - -static const long _vq_quantlist__44p0_p6_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p0_p6_2[] = { - 3, 4, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p0_p6_2 = { - 1, 25, - (char *)_vq_lengthlist__44p0_p6_2, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p0_p6_2, - 0 -}; - -static const char _huff_lengthlist__44p0_short[] = { - 3, 3, 7, 8,10,13,16, 3, 2, 5, 7, 9,13,16, 6, 4, - 4, 6,10,14,15, 7, 5, 5, 7,10,13,14, 9, 8, 9, 9, - 9,11,13,12,11,12, 9, 7, 8,11,14,12,10, 6, 5, 7, - 10, -}; - -static const static_codebook _huff_book__44p0_short = { - 2, 49, - (char *)_huff_lengthlist__44p0_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p1_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p1_l0_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 4, 6, 5, - 8, 6, 9, 8,10, 9,10,10,11,10, 5, 5, 6, 6, 8, 8, - 9, 9,10,10,10,10,11, 7, 8, 8, 9, 8,10, 9,10, 9, - 11,10,11,10, 7, 8, 8, 8,10, 9,10,10,10,10,11,10, - 11, 9,10,10,11,11,11,11,12,11,12,11,12,11, 9,10, - 10,11,11,11,11,11,11,11,12,11,12,11,11,11,12,12, - 12,12,12,12,12,12,12,11,11,12,11,12,12,12,12,12, - 12,12,12,11,12,12,12,12,12,13,12,13,12,12,12,12, - 12,12,12,12,12,13,13,13,13,12,13,12,12,12,12,12, - 13,13,12,13,12,13,12,13,12,12,12,12,13,13,13,13, - 13,13,12,12,12,12,12,11,12, -}; - -static const static_codebook _44p1_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p1_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p1_l0_0, - 0 -}; - -static const long _vq_quantlist__44p1_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p1_l0_1[] = { - 1, 4, 4, 6, 6, 5, 5, 5, 6, 6, 5, 6, 5, 6, 6, 6, - 6, 7, 7, 7, 6, 7, 6, 7, 7, -}; - -static const static_codebook _44p1_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p1_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p1_l0_1, - 0 -}; - -static const long _vq_quantlist__44p1_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_l1_0[] = { - 1, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const static_codebook _44p1_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44p1_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p1_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p1_lfe[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book__44p1_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p1_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p1_long[] = { - 3, 3, 7, 7, 9,13,16, 3, 2, 4, 6,10,13,17, 7, 4, - 4, 6, 9,12,14, 7, 6, 6, 5, 7, 9,12,10,10, 9, 6, - 6, 9,12,14,14,13, 9, 8,10,11,18,18,15,13,11,10, - 11, -}; - -static const static_codebook _huff_book__44p1_long = { - 2, 49, - (char *)_huff_lengthlist__44p1_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p1_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_p1_0[] = { - 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p1_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p1_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p1_p1_0, - 0 -}; - -static const long _vq_quantlist__44p1_p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_p2_0[] = { - 1, 4, 4, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, - 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 0, 6, 6, 0,11, - 11, 0,11,11, 0,12,12, 0,14,14, 0,11,11, 0,12,12, - 0,14,14, 0,11,11, 0, 6, 6, 0, 6, 5, 0, 7, 6, 0, - 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 7, - 7, 0, 7, 7, 0,10,10, 0,11,11, 0,11,11, 0,14,14, - 0,10,10, 0,12,12, 0,14,14, 0,12,12, 0, 6, 6, 0, - 11,11, 0,11,11, 0,12,12, 0,14,14, 0,11,11, 0,12, - 12, 0,15,15, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 8, 0,11,11, 0,11,11, 0,12,12, 0,15, - 15, 0,12,12, 0,11,11, 0,15,15, 0,11,11, 0, 6, 6, - 0,11,11, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, - 12,12, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p1_p2_0 = { - 5, 243, - (char *)_vq_lengthlist__44p1_p2_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p1_p2_0, - 0 -}; - -static const long _vq_quantlist__44p1_p2_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_p2_1[] = { - 1, 3, 3, 0, 8, 8, 0, 8, 8, 0,10,10, 0, 9, 9, 0, - 10,10, 0,10,10, 0, 9, 9, 0,10,10, 0, 7, 7, 0, 7, - 7, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 9, 9, - 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, - 10,10, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0,10, - 10, 0, 8, 8, 0,11,11, 0,11,11, 0,12,12, 0,11,11, - 0,12,12, 0,12,12, 0,12,12, 0,12,12, 0, 8, 8, 0, - 11,11, 0,11,11, 0,13,12, 0,12,12, 0,13,12, 0,13, - 13, 0,12,12, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 8, 0,11,11, 0,11,11, 0,13,12, 0,12, - 12, 0,12,12, 0,12,12, 0,11,11, 0,12,12, 0, 8, 8, - 0,12,12, 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0, - 13,13, 0,12,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p1_p2_1 = { - 5, 243, - (char *)_vq_lengthlist__44p1_p2_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p1_p2_1, - 0 -}; - -static const long _vq_quantlist__44p1_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_p3_0[] = { - 1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, - 8, 8, 7, 9, 9,11,12,12, 9, 8, 8, 6, 7, 7, 9,11, - 11,10,11,11,10,11,11,13,13,13,11,12,12,10,11,11, - 13,14,14,12,12,12, 6, 6, 6, 8, 6, 6, 8, 6, 6, 9, - 7, 7,12,10,10,10, 6, 6, 9, 7, 7,12,10,10,11, 7, - 6, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, - 13,10,10,12,11,11,15,13,13,14,11,11, 8, 7, 7,12, - 11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11, - 11,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,12,12, - 0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, - 11,11, 7, 8, 8,13,10,10,12,10,10,12,11,11,15,13, - 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, - 12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13, - 12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, - 12, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,15,14, - 0,12,12, -}; - -static const static_codebook _44p1_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p1_p3_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p1_p3_0, - 0 -}; - -static const long _vq_quantlist__44p1_p3_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p1_p3_1[] = { - 2, 3, 4, 7, 7,10,12,12,12,12,10,11,11,13,13,11, - 12,12,11,11,12,12,12,12,12,11,13,13,13,13,12,12, - 12,13,14,12,13,13,13,13,12,13,13,13,13,12,13,13, - 13,13,11,13,13,13,13,12,12,12,14,14,12,13,13,12, - 12,12,12,13,13,13,12,13,13,13,13,12,13,13,13,13, - 12,12,12,14,14,12,13,13,12,12,12,13,13,13,13,12, - 13,13,12,12,12,13,13,13,13,12,12,12,14,14,12,13, - 13,12,12,12,13,13,13,13,12,13,13,12,12,10,10,11, - 10,10,11,11,11,11,11,11, 9, 9,10,10,12,11,11,10, - 10,12,10,10,10,10,13,12,12,12,12,13,11,11,11,11, - 13,12,12,12,12,13,11,11,11,11,13,12,12,12,12,13, - 12,12,12,12,13,11,11,11,11,13,12,12,12,12,13,11, - 11,11,11,13,12,12,11,11,13,12,12,11,11,13,11,11, - 11,11,13,12,12,11,11,13,11,11,11,11,13,12,12,11, - 11,13,12,12,11,11,13,11,11,11,11,13,12,12,11,11, - 13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,11, - 11,11, 9, 9,11,12,12,11,11,12,12,12, 9, 9,13,13, - 13,10,10,13,13,13,11,11,13,13,13,14,14,13,13,13, - 11,10,13,13,14,12,12,13,13,13,11,11,13,13,13,11, - 11,13,13,13,14,14,13,13,13,10,10,13,13,13,11,11, - 13,13,13,10,10,13,14,13,11,11,13,14,14,14,14,13, - 13,13,10,10,13,14,14,11,11,13,13,13,10,10,13,14, - 14,11,11,13,13,13,14,14,14,13,13,10,10,13,14,14, - 11,11,13,13,13,10,10,14,12,12, 9, 9,14,12,12, 9, - 9,14,11,11, 9, 9,14,12,12, 8, 8,14,11,11, 7, 7, - 15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, - 12,12,10,10,15,13,13,10,10,15,13,13,10,10,15,12, - 12,10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, - 10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, 9, - 9,15,12,12, 9, 9,14,13,13, 9, 9,15,13,13,10,10, - 15,12,12,10,10,15,13,13, 9, 9,15,12,12, 9, 9,15, - 13,13, 9, 9,13,12,12, 9, 9,13,13,13, 8, 8,13,13, - 13, 9, 9,13,13,13, 7, 7,14,13,13, 8, 8,14,14,14, - 10,10,15,14,14,11,11,14,14,14, 9, 9,15,14,14,10, - 10,15,14,14, 9, 9,14,14,14,10,10,15,14,14,11,11, - 15,14,14, 9, 9,14,14,14,10,10,14,14,14, 9, 9,15, - 14,15,10,10,15,14,14,11,11,14,14,14, 9, 9,14,14, - 14, 9, 9,14,14,14, 8, 8,15,14,14,10,10,15,14,14, - 11,11,14,14,14, 9, 9,15,14,14, 9, 9,14,14,14, 8, - 8,12,12,12,13,13,16,16,16,11,11,17,16,16,12,12, - 17,16,16,11,11,17,16,16,11,11,17,17,16,13,13,17, - 16,16,13,13,18,17,16,12,12,17,16,16,13,13,17,16, - 17,12,12,18,17,17,13,13,17,16,16,14,14,18,17,17, - 12,12,18,16,16,13,13,17,17,17,13,12,17,17,17,13, - 13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,12, - 17,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18, - 17,17,12,12,17,17,17,13,13,18,17,18,12,12,13,14, - 14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14, - 12,13,16,14,14,13,13,17,15,15,14,14,16,16,16,15, - 15,17,15,15,14,14,17,16,16,14,15,17,15,15,14,14, - 17,15,16,14,14,17,16,16,15,15,17,15,15,13,13,17, - 15,15,14,14,18,15,15,13,14,17,15,15,14,14,16,16, - 16,15,15,17,15,15,13,13,17,15,15,14,14,17,15,15, - 13,13,17,15,15,14,14,16,16,16,15,15,17,15,15,13, - 13,17,15,15,14,14,18,15,15,13,13,13,11,11,10,10, - 16,14,14,13,12,16,14,14,13,13,16,15,14,12,12,16, - 14,14,12,12,16,15,15,14,14,16,14,14,14,14,17,15, - 15,13,13,16,15,15,14,14,17,15,15,13,14,17,15,15, - 14,14,17,15,14,14,14,17,15,15,13,13,17,15,15,14, - 14,17,15,15,13,13,17,15,15,14,14,17,14,14,14,14, - 17,15,15,13,13,17,15,15,13,13,17,15,15,13,13,17, - 15,15,14,14,17,15,15,14,14,17,15,15,13,13,17,15, - 15,13,13,17,15,15,13,13,14,14,15, 8, 8,14,14,14, - 19,19,14,15,15,18,19,14,14,14,19,18,14,14,14,19, - 19,15,15,15,19,18,15,16,16,19,19,15,15,15,19,19, - 15,16,16,20,19,15,15,15,19,19,15,15,15,19,19,16, - 16,16,20,19,15,15,15,19,18,15,16,16,20,19,15,15, - 15,18,18,15,15,15,19,20,15,16,16,19,19,15,15,15, - 20,19,15,15,15,20,19,15,15,15,19,18,15,15,15,19, - 19,15,16,16,19,20,15,15,15,19,19,15,15,15,19,20, - 15,15,15,19,19,14,12,12, 9, 9,14,14,14,19,19,14, - 14,14,19,19,14,14,15,20,19,15,14,14,18,19,15,15, - 15,19,19,15,15,14,20,19,15,15,15,20,19,15,15,14, - 20,19,15,15,15,20,19,15,15,15,19,20,15,14,14,19, - 20,15,15,15,20,20,15,14,14,20,19,15,15,15,19,19, - 15,15,15,19,19,15,14,14,19,19,15,15,15,19,20,15, - 15,15,20,20,15,15,15,19,19,15,15,15,20,19,16,14, - 14,19,19,15,15,15,20,19,15,14,15,20,19,14,15,15, - 20,19,12,12,12,13,13,16,16,16,11,11,16,16,16,12, - 12,17,16,16,11,11,17,15,16,11,11,17,17,17,13,13, - 18,16,17,13,13,18,17,17,13,12,17,16,17,13,13,17, - 17,17,13,13,16,16,16,12,12,17,16,16,13,13,17,16, - 16,12,12,17,16,16,12,13,17,17,17,12,12,17,17,17, - 13,13,18,16,16,13,13,18,17,17,12,12,18,17,17,12, - 12,17,17,17,12,12,17,17,17,12,12,17,16,16,13,13, - 17,17,17,12,12,17,16,16,12,12,17,17,17,12,12,13, - 14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,17,14, - 14,13,13,16,14,14,13,13,17,15,15,15,15,16,16,16, - 15,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14, - 14,17,15,15,14,14,16,16,16,15,15,17,15,15,14,14, - 17,15,15,14,14,17,15,15,14,14,17,15,15,14,14,16, - 16,16,15,15,18,15,15,14,13,17,15,15,14,14,17,15, - 15,13,13,17,15,15,14,14,16,16,16,15,15,17,15,15, - 14,13,17,15,15,14,14,17,15,15,13,13,13,11,11,11, - 11,16,14,14,12,12,16,14,14,13,13,16,15,14,12,12, - 17,14,14,12,12,17,15,15,13,13,17,14,14,14,14,17, - 15,15,13,13,17,14,15,14,13,17,15,15,13,13,16,15, - 15,13,13,16,14,14,14,14,17,15,15,13,13,16,14,14, - 13,13,16,15,15,13,13,17,15,15,13,13,17,14,14,14, - 14,17,15,15,12,12,17,15,15,13,13,17,15,15,12,12, - 16,15,15,13,13,17,14,14,13,14,17,15,15,12,12,17, - 14,14,13,13,17,15,15,12,12,14,14,14, 8, 8,14,14, - 14,18,18,14,15,15,19,19,14,14,14,19,19,14,15,14, - 18,19,15,15,15,18,19,15,16,16,20,20,15,15,15,19, - 20,15,16,16,19,20,15,15,15,19,20,15,15,16,19,19, - 15,16,16,20,20,15,15,15,20,19,15,16,16,20,19,15, - 15,15,19,20,15,15,15,19,19,15,16,16,20,19,15,15, - 15,19,19,15,16,15,20,19,15,15,15,19,19,15,15,15, - 19,20,15,16,16,20,20,15,15,15,19,19,15,15,15,20, - 20,15,15,15,19,19,14,12,12, 9, 9,14,14,14,18,18, - 14,14,14,19,20,14,14,14,18,18,14,14,14,18,19,15, - 15,15,19,20,15,14,14,19,19,15,15,15,19,19,15,14, - 15,19,19,15,15,15,18,20,15,15,15,19,19,15,14,14, - 19,19,15,15,15,20,19,15,15,14,20,20,15,15,15,19, - 19,15,15,15,19,19,15,14,14,19,19,15,15,15,19,19, - 15,14,14,19,20,14,15,15,19,19,15,15,15,19,19,15, - 14,14,20,19,15,15,15,19,19,15,14,14,20,19,15,15, - 15,19,19,13,12,12,13,13,17,17,16,11,11,16,16,16, - 12,12,17,17,16,11,11,17,16,16,11,11,17,17,17,13, - 13,17,16,16,13,13,18,17,17,12,12,17,16,16,13,13, - 18,17,17,12,12,18,17,17,13,13,18,16,17,13,13,17, - 17,17,12,12,18,17,17,13,13,18,17,17,12,12,17,16, - 17,12,12,17,16,16,13,13,17,16,16,11,11,17,16,16, - 12,12,17,17,17,11,11,17,17,17,12,12,18,16,16,13, - 13,18,17,17,12,11,17,16,16,12,12,18,17,17,11,11, - 13,14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,17, - 14,14,12,12,16,14,14,13,13,17,15,15,14,14,17,16, - 16,15,16,18,15,15,14,14,17,15,15,14,14,17,15,15, - 14,14,18,15,15,14,14,16,16,16,15,16,18,15,15,14, - 14,17,16,15,14,14,18,15,15,14,14,17,15,15,14,14, - 17,16,16,15,15,18,14,15,13,13,17,15,15,14,14,18, - 15,15,13,13,17,15,15,14,14,17,16,15,15,15,17,15, - 15,13,13,17,15,15,14,14,18,15,15,13,13,13,11,11, - 10,10,16,14,14,12,12,16,14,14,12,12,17,14,15,11, - 11,17,14,14,11,11,17,15,15,13,13,17,14,14,14,13, - 17,15,15,13,13,16,15,15,13,13,17,15,15,13,13,17, - 15,15,13,13,17,14,14,14,14,17,15,15,13,13,17,14, - 15,13,13,16,15,15,13,13,17,15,15,13,13,17,14,14, - 13,13,17,15,15,12,12,16,14,14,12,12,17,15,15,12, - 12,17,15,15,13,13,17,14,14,13,13,17,15,15,12,12, - 17,14,14,12,12,17,15,15,12,12,13,15,14, 8, 8,14, - 14,14,19,19,14,15,15,18,19,14,14,14,18,19,14,15, - 14,19,19,15,16,15,19,19,15,16,16,19,20,15,15,15, - 19,19,15,16,16,19,19,15,16,16,19,19,15,15,15,19, - 19,15,16,16,20,20,15,15,15,19,19,15,15,15,19,19, - 15,15,15,19,19,15,15,15,19,19,15,16,16,20,19,15, - 15,15,19,19,15,15,15,19,19,15,15,15,19,19,15,16, - 15,19,19,15,16,16,21,19,15,15,15,20,20,15,15,15, - 20,21,15,15,15,19,20,14,12,12, 8, 8,14,14,14,19, - 19,14,13,13,19,19,14,14,14,19,19,14,13,14,19,19, - 15,15,15,20,20,15,14,14,20,19,15,15,15,19,20,15, - 14,14,19,20,15,15,15,20,19,15,15,15,19,20,15,14, - 14,20,20,15,15,15,20,19,15,14,14,19,19,15,15,15, - 19,19,15,15,15,20,19,15,14,14,21,19,15,15,15,20, - 21,15,14,14,21,19,15,15,15,19,19,15,15,15,20,20, - 15,14,14,19,21,15,15,15,19,19,15,14,14,19,20,15, - 15,15,19,19,13,12,12,13,13,17,16,16,11,11,17,16, - 15,12,12,18,16,16,11,11,17,16,16,11,11,18,17,17, - 13,13,18,16,16,13,13,17,17,17,12,13,18,17,16,13, - 13,18,17,17,13,13,17,17,17,13,13,17,16,16,13,13, - 18,16,17,12,12,17,16,16,13,12,17,17,17,12,12,18, - 17,17,13,12,18,16,16,13,13,18,17,17,12,12,17,16, - 16,12,12,17,17,17,11,11,17,16,16,12,12,17,16,16, - 13,13,17,16,16,11,11,17,16,16,12,12,17,17,17,11, - 11,13,14,14, 9, 9,16,14,14,13,13,16,15,15,14,14, - 17,14,14,12,12,16,14,14,13,13,17,15,15,14,14,17, - 15,16,15,15,17,15,15,14,14,17,15,16,14,15,18,15, - 15,14,14,17,15,15,14,14,16,16,16,15,15,18,15,15, - 13,14,17,15,15,14,14,18,15,15,14,14,17,15,15,14, - 14,17,16,16,15,15,17,15,15,13,13,17,15,15,14,14, - 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, - 15,15,13,13,17,15,15,14,14,18,15,15,13,13,13,11, - 11,10,10,16,14,14,12,12,16,14,14,13,13,17,14,14, - 11,11,17,14,14,12,12,17,15,15,14,14,17,14,14,14, - 14,17,15,15,13,13,17,15,14,13,13,16,15,15,13,13, - 16,15,15,13,13,17,14,14,14,14,17,15,15,13,13,17, - 14,14,13,13,16,15,15,13,13,16,15,15,13,13,17,14, - 14,13,13,17,15,15,12,12,17,14,14,12,12,16,15,15, - 12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12, - 12,17,14,14,12,12,16,15,15,12,12,14,14,14, 8, 8, - 14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14, - 14,14,18,19,15,16,15,19,19,15,17,16,20,20,15,15, - 15,19,19,15,16,16,19,19,15,15,15,19,19,15,16,15, - 18,19,15,16,16,20,20,15,15,15,19,19,15,16,16,19, - 20,15,15,15,19,19,15,15,16,19,19,15,16,16,20,20, - 15,15,15,19,19,15,15,15,19,20,15,15,15,19,19,15, - 15,15,19,19,15,16,16,20,20,15,15,15,19,20,15,16, - 16,20,20,15,15,15,19,19,13,12,12, 8, 8,14,14,14, - 19,20,14,14,14,19,19,14,14,14,18,19,14,14,14,19, - 20,15,15,15,19,20,15,14,14,21,20,15,15,15,20,20, - 15,15,14,19,19,15,15,15,19,19,15,15,15,19,19,15, - 14,14,19,20,15,15,15,19,20,15,14,14,19,19,15,15, - 15,19,19,15,15,15,19,19,16,14,14,19,19,15,15,15, - 20,20,15,14,14,21,19,15,15,15,19,19,15,15,15,19, - 20,16,14,14,19,20,15,15,15,19,19,15,14,14,19,19, - 15,15,15,20,19, -}; - -static const static_codebook _44p1_p3_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p1_p3_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p1_p3_1, - 0 -}; - -static const long _vq_quantlist__44p1_p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p1_p4_0[] = { - 2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,14,14, 0, - 13,13,16,16, 0,13,13,15,14, 7, 8, 8,15,15, 9,10, - 10,16,16, 9, 8, 8,15,15, 0,13,13,17,16, 0,13,13, - 15,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,14, - 14, 0,13,13,17,18, 0,13,13,15,15, 0,14,14,16,16, - 0, 0, 0,19,18, 0,12,12,16,15, 0,15,16, 0,20, 0, - 14,14,16,16, 0,14,14,17,17, 0, 0, 0,19,18, 0,12, - 12,15,15, 0,17,17, 0,20, 0,14,14,16,16, 5, 6, 7, - 12,12, 9, 9, 9,14,14,10,10,10,14,14, 0,21,21,18, - 17, 0,20,20,18,17, 9,10,10,14,14,12,12,12,16,16, - 12,10,10,14,14, 0,20,19,18,17, 0, 0,20,17,18,11, - 10,10,14,14,14,13,13,18,18,13,11,11,14,14, 0,20, - 20,17,18, 0,21,21,17,17, 0,21, 0,18,18, 0, 0, 0, - 0, 0, 0,20,19,16,17, 0, 0, 0,19,19, 0, 0, 0,18, - 18, 0,21,21,18,18, 0, 0, 0, 0, 0, 0,20,20,16,17, - 0, 0, 0,21,21, 0, 0, 0,18,19, 6, 6, 6,13,12, 8, - 6, 6,11,11, 8, 6, 6,13,13, 0, 9, 9,11,11, 0,11, - 10,14,14, 9, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, - 13,13, 0,10,10,14,15, 0,10,10,13,13, 9, 7, 7,13, - 13,13,10, 9,13,13,10, 6, 6,13,13, 0,10,10,15,14, - 0,10,10,13,13, 0,11,11,15,15, 0,19,20,17,17, 0, - 9, 9,13,13, 0,13,13,20,20, 0,11,11,13,13, 0,11, - 11,15,15, 0,19,19,17,17, 0,10,10,13,13, 0,15,15, - 20,20, 0,12,12,13,13, 0,10,10,12,12, 0,11,11,15, - 15, 0,11,11,15,15, 0,15,15,20, 0, 0,16,16, 0,21, - 0,11,11,15,15, 0,14,14,18,17, 0,11,11,15,15, 0, - 15,16,19,20, 0,16,16,21,21, 0,12,12,15,15, 0,15, - 14,18,18, 0,11,11,16,16, 0,15,15,21,21, 0,16,15, - 0, 0, 0,16,16,21, 0, 0, 0, 0, 0, 0, 0,14,14,20, - 20, 0,18,18, 0, 0, 0,16,17,21, 0, 0,16,16,21,21, - 0, 0, 0, 0, 0, 0,15,15,21,21, 0,20,19, 0,21, 0, - 17,17, 0, 0, 0,10,10,12,11, 0,10,10,10,11, 0,11, - 11,12,12, 0,11,11, 9, 9, 0,13,13,11,12, 0,11,11, - 12,12, 0,13,13,12,12, 0,10,10,12,12, 0,12,12,13, - 13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, - 0,10,10,12,12, 0,13,13,14,14, 0,12,12,12,12, 0, - 14,14,14,13, 0,19,20,15,15, 0,12,11,12,12, 0,15, - 15,21,20, 0,13,13,11,11, 0,13,13,13,13, 0,19, 0, - 15,15, 0,12,12,12,12, 0,17,16,19, 0, 0,13,13,12, - 12, 7, 7, 7,16,16,11, 9, 9,15,15,12, 9, 9,16,16, - 0,13,13,15,14, 0,14,14,17,16,10, 9, 9,16,16,14, - 11,11,17,16,12, 9, 8,15,15, 0,13,13,18,18, 0,13, - 13,15,15,12,10,10,18,17,15,12,12,17,17,14, 9, 9, - 16,16, 0,13,13,18,19, 0,14,13,17,16, 0,14,14,18, - 18, 0, 0, 0,20,21, 0,12,12,16,16, 0,16,16,20,21, - 0,14,14,17,16, 0,14,14,18,19, 0, 0, 0,19,21, 0, - 13,13,17,17, 0,17,17, 0,21, 0,15,15,16,16, 8, 7, - 7,14,14,11,10,10,15,15,12,10,10,15,15, 0,20,20, - 18,18, 0, 0, 0,17,17,11,10,10,16,16,14,12,12,18, - 17,14,11,11,15,15, 0,20,21,18,18, 0, 0,19,18,17, - 12,10,10,16,16,17,14,14,19,19,14,11,11,15,15, 0, - 21,21,19,19, 0,21,20,19,18, 0,21, 0,18,19, 0, 0, - 0, 0, 0, 0,20,20,18,17, 0,21, 0, 0, 0, 0, 0, 0, - 19,18, 0, 0, 0,18,19, 0, 0, 0, 0, 0, 0, 0,21,17, - 18, 0, 0, 0, 0,21, 0, 0,21,18,19,11, 9, 9,14,14, - 13,10,10,13,13,13,11,11,15,15, 0,13,13,12,12, 0, - 15,15,16,16,13,10,10,15,15,16,12,12,15,15,15,10, - 10,15,15, 0,14,13,16,15, 0,14,13,15,15,13,10,10, - 15,15,18,14,14,15,15,15,10,10,14,15, 0,14,14,16, - 16, 0,14,14,16,15, 0,15,15,17,16, 0,21, 0,18,18, - 0,12,13,15,15, 0,16,16, 0, 0, 0,14,14,15,15, 0, - 15,15,16,16, 0,21,20,18,18, 0,13,13,15,15, 0,19, - 18, 0, 0, 0,15,15,15,15, 0,11,11,13,13, 0,12,12, - 16,16, 0,12,12,16,16, 0,15,16,20, 0, 0,16,17, 0, - 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16,17, - 0,15,15,20, 0, 0,16,16, 0, 0, 0,12,12,16,16, 0, - 15,15,19,19, 0,11,11,17,17, 0,16,16,21, 0, 0,16, - 16, 0, 0, 0,17,17,20,20, 0, 0, 0, 0, 0, 0,15,15, - 20, 0, 0,17,18, 0, 0, 0,17,17, 0, 0, 0,16,16, 0, - 21, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,19,18, 0, 0, - 0,18,17, 0, 0, 0,11,11,14,14, 0,11,11,15,15, 0, - 12,12,16,16, 0,13,13,14,14, 0,14,14,17,17, 0,12, - 12,16,16, 0,14,14,16,16, 0,11,11,16,15, 0,13,13, - 16,17, 0,13,13,16,16, 0,12,12,15,16, 0,15,14,16, - 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,16,16, - 0,15,14,18,18, 0,21, 0,19,19, 0,13,13,15,15, 0, - 16,16,20,20, 0,14,14,16,15, 0,14,14,17,17, 0,21, - 0,20,18, 0,13,13,15,15, 0,17,17, 0, 0, 0,14,14, - 16,15, 8, 8, 8,16,16,12, 9, 9,16,16,13, 9, 9,16, - 16, 0,14,14,18,17, 0,14,14,16,17,12,10,10,18,17, - 14,11,11,18,18,14, 9, 9,16,16, 0,13,13,18,18, 0, - 13,13,17,16,12, 9, 9,16,17,17,13,13,16,16,14, 9, - 9,15,15, 0,14,14,20,20, 0,13,13,15,15, 0,15,14, - 18,18, 0, 0, 0,20,21, 0,12,13,16,17, 0,16,16,20, - 21, 0,14,14,16,17, 0,14,14,18,17, 0, 0, 0,20,21, - 0,13,13,16,16, 0,19,17, 0,21, 0,14,15,16,16, 8, - 7, 7,14,13,12,10,10,15,15,13,10,10,15,15, 0,21, - 21,18,19, 0,20,21,18,18,12,10,10,16,15,15,12,12, - 17,17,14,11,11,15,15, 0,21,21,19,18, 0, 0,21,17, - 18,13,11,11,15,15,16,13,13,18,19,15,11,11,15,14, - 0,21, 0,19,19, 0, 0,21,18,18, 0, 0,21,19,19, 0, - 0, 0, 0, 0, 0,20,19,17,17, 0, 0, 0,21, 0, 0,21, - 0,18,19, 0, 0,20,20,19, 0, 0, 0, 0, 0, 0,21,20, - 18,17, 0, 0, 0, 0,20, 0, 0, 0,18,19, 0,10,10,15, - 14, 0,11,11,14,14, 0,11,11,15,16, 0,14,14,15,15, - 0,15,15,16,16, 0,11,11,16,16, 0,14,13,16,16, 0, - 11,11,15,15, 0,14,14,16,16, 0,14,14,15,15, 0,11, - 11,15,15, 0,13,13,15,15, 0,11,11,15,15, 0,15,15, - 18,17, 0,14,14,15,15, 0,15,16,18,18, 0, 0, 0,20, - 20, 0,14,13,16,15, 0,17,17,21, 0, 0,15,15,15,15, - 0,16,15,17,17, 0, 0, 0,19,19, 0,13,13,15,15, 0, - 20,19, 0, 0, 0,15,15,15,15, 0,11,11,13,13, 0,12, - 12,16,16, 0,12,12,16,16, 0,15,15,21,21, 0,17,16, - 0, 0, 0,12,12,16,16, 0,14,14,17,17, 0,11,11,16, - 16, 0,15,15, 0, 0, 0,16,16,21, 0, 0,12,12,17,16, - 0,14,15,20,20, 0,11,11,16,16, 0,15,15, 0,20, 0, - 16,16, 0,21, 0,16,17,21, 0, 0, 0, 0, 0, 0, 0,15, - 15, 0,21, 0,18,18, 0, 0, 0,17,16, 0, 0, 0,17,17, - 21, 0, 0, 0, 0, 0, 0, 0,15,15, 0,20, 0,19,20,21, - 0, 0,17,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, - 0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, - 13,12,17,16, 0,14,14,17,16, 0,11,11,16,16, 0,14, - 14,17,17, 0,14,14,17,17, 0,12,12,16,16, 0,15,15, - 17,17, 0,11,11,16,16, 0,14,14,17,17, 0,14,14,16, - 16, 0,15,15,18,17, 0, 0, 0,19, 0, 0,13,13,16,16, - 0,16,16, 0,21, 0,14,14,16,16, 0,15,15,18,17, 0, - 0, 0,19,19, 0,13,13,16,16, 0,18,17, 0,21, 0,14, - 15,16,16, 0,11,11,16,16, 0,13,13,17,17, 0,13,13, - 17,17, 0,16,16,16,17, 0,16,16,18,18, 0,12,12,17, - 17, 0,16,15,18,17, 0,12,12,16,16, 0,16,15,19,19, - 0,16,15,17,17, 0,12,12,17,18, 0,16,16,18,18, 0, - 12,12,16,16, 0,16,16,19,19, 0,15,16,17,17, 0,15, - 16,18,18, 0, 0, 0,20,20, 0,13,13,16,16, 0,18,18, - 21,20, 0,15,15,16,16, 0,16,16,19,18, 0, 0, 0,19, - 20, 0,14,14,17,17, 0,19,19, 0,21, 0,15,16,16,16, - 0, 9, 9,14,14, 0,13,13,15,15, 0,14,14,15,15, 0, - 0,21,19,19, 0, 0,21,18,18, 0,12,12,15,15, 0,15, - 15,18,18, 0,14,13,15,15, 0,21,21,18,19, 0,21,20, - 18,18, 0,13,13,16,16, 0,17,17,18,19, 0,14,14,15, - 15, 0, 0,21,19,19, 0,21,20,18,19, 0,20,20,19,19, - 0, 0, 0, 0, 0, 0,19,20,17,17, 0, 0, 0,21,21, 0, - 21, 0,18,20, 0,21, 0,18,21, 0, 0, 0, 0, 0, 0,21, - 21,19,18, 0, 0, 0, 0, 0, 0, 0, 0,19,19, 0,18,18, - 15,15, 0,18,20,17,16, 0,20, 0,17,17, 0,21, 0,17, - 17, 0,21,20,19,20, 0,19,19,16,16, 0,21,21,17,18, - 0,19,19,17,17, 0,20,21,21,21, 0,20,20,18,18, 0, - 19,19,16,16, 0, 0,21,18,19, 0,18,19,16,17, 0,21, - 21,19,20, 0,21,19,18,18, 0,21,20,19,21, 0, 0, 0, - 20,21, 0,19,19,17,16, 0, 0, 0, 0, 0, 0,21,20,17, - 17, 0,20,21,19,18, 0, 0, 0, 0,21, 0,19,18,16,17, - 0, 0, 0, 0, 0, 0,20,20,17,17, 0,11,11,14,14, 0, - 13,13,16,16, 0,13,13,16,16, 0,17,17,21, 0, 0,17, - 18, 0, 0, 0,12,12,16,16, 0,15,15,17,18, 0,12,12, - 16,16, 0,16,16, 0,20, 0,17,17, 0,21, 0,12,12,17, - 17, 0,16,16,19,20, 0,12,12,17,17, 0,17,17, 0,20, - 0,17,17, 0, 0, 0,17,17,21, 0, 0, 0, 0, 0, 0, 0, - 15,15, 0,20, 0,19,19, 0, 0, 0,18,18, 0, 0, 0,17, - 17, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, 0, 0,20,19, - 0, 0, 0,19,18, 0, 0, 0,14,14,21,19, 0,16,16,20, - 21, 0,16,16,20,20, 0,17,17,20, 0, 0,17,17,20,20, - 0,15,15,20,20, 0,19,18,20, 0, 0,15,15,20,20, 0, - 17,18,21,20, 0,17,17,20,21, 0,15,15,19,19, 0,19, - 18,21,21, 0,15,15,19,20, 0,17,18, 0, 0, 0,17,17, - 20,20, 0,17,18,20,21, 0, 0, 0, 0, 0, 0,15,15,20, - 20, 0,19,19, 0, 0, 0,17,17,19,21, 0,17,17, 0,21, - 0, 0, 0, 0,21, 0,15,15,20,19, 0, 0,20, 0, 0, 0, - 17,17,21,20, 0,12,12,16,16, 0,14,14,17,17, 0,13, - 13,17,17, 0,16,16,17,18, 0,17,16,18,18, 0,13,13, - 18,17, 0,15,16,19,18, 0,13,13,16,16, 0,16,16,19, - 19, 0,16,16,17,17, 0,13,12,17,17, 0,16,16,18,17, - 0,12,12,16,16, 0,17,17,19,18, 0,16,15,16,16, 0, - 16,17,18,19, 0, 0, 0,20,20, 0,14,14,17,16, 0,18, - 18,21, 0, 0,16,16,16,16, 0,16,16,18,17, 0, 0,21, - 21,21, 0,14,14,16,16, 0,21,20,21, 0, 0,16,16,16, - 16, 0,10,10,14,14, 0,14,14,15,16, 0,14,14,15,15, - 0, 0,21,18,18, 0, 0,21,18,19, 0,13,13,16,16, 0, - 16,16,18,17, 0,14,14,15,15, 0,20, 0,18,18, 0,21, - 0,18,17, 0,13,13,16,15, 0,17,17,19,19, 0,14,14, - 15,15, 0,20,20,18,19, 0, 0, 0,18,17, 0, 0,21,18, - 18, 0, 0, 0, 0, 0, 0,20,21,18,17, 0, 0, 0, 0, 0, - 0, 0, 0,19,19, 0, 0,21,18,18, 0, 0, 0, 0, 0, 0, - 21, 0,18,17, 0, 0, 0, 0,21, 0, 0, 0,19,20, 0,19, - 19,16,16, 0, 0,21,18,17, 0,21, 0,18,18, 0,20, 0, - 19,18, 0,21,20,19,19, 0,21,19,17,18, 0, 0,21,19, - 19, 0,21,19,18,18, 0,21, 0,20,18, 0, 0,21,18,18, - 0,20,21,17,17, 0,21, 0,18,18, 0,21,19,17,17, 0, - 21, 0, 0,20, 0, 0,20,17,18, 0, 0, 0,19,20, 0, 0, - 0,20,19, 0,19,21,17,18, 0,21, 0, 0, 0, 0,21,21, - 18,17, 0, 0,21,18,18, 0, 0, 0, 0,21, 0,20,19,16, - 17, 0, 0, 0, 0, 0, 0,21,20,17,17, 0,11,11,13,13, - 0,13,13,16,16, 0,13,13,16,16, 0,17,17, 0,21, 0, - 18,19,21, 0, 0,12,12,16,16, 0,15,15,19,18, 0,13, - 13,16,16, 0,16,17,21,19, 0,17,17,21,21, 0,13,13, - 16,16, 0,16,16,20,18, 0,13,13,16,16, 0,17,17, 0, - 0, 0,18,18, 0, 0, 0,18,17, 0,20, 0, 0, 0, 0, 0, - 0,15,15,21,21, 0,19,18, 0, 0, 0,17,17,21,21, 0, - 17,17, 0, 0, 0, 0, 0, 0, 0, 0,15,15,20,21, 0,20, - 20, 0, 0, 0,19,19, 0, 0, 0,14,15,21,19, 0,16,16, - 0,21, 0,17,16,21,21, 0,17,18,21,20, 0,18,18, 0, - 21, 0,16,16, 0,20, 0,19,19, 0, 0, 0,16,15, 0,20, - 0,18,18, 0, 0, 0,17,17, 0,21, 0,16,16,20,20, 0, - 20,19, 0, 0, 0,15,16,21,22, 0,18,18, 0, 0, 0,18, - 17, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, - 21,20, 0,19,20, 0, 0, 0,18,17,21, 0, 0,17,18, 0, - 0, 0, 0, 0, 0, 0, 0,16,16, 0,20, 0, 0,20, 0, 0, - 0,18,18,22, 0, -}; - -static const static_codebook _44p1_p4_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p1_p4_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p1_p4_0, - 0 -}; - -static const long _vq_quantlist__44p1_p4_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p1_p4_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p1_p4_1 = { - 1, 7, - (char *)_vq_lengthlist__44p1_p4_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p1_p4_1, - 0 -}; - -static const long _vq_quantlist__44p1_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_p5_0[] = { - 1, 6, 6, 7, 8, 8, 7, 8, 8, 7, 9, 8,10,11,11, 9, - 8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7,10,10, - 10,10,10,10,10,10,10,14,13,13,12,11,11,10,10,10, - 14,14,13,12,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 9, - 7, 7,11,10,10, 9, 7, 7, 9, 7, 7,12,10,10,10, 7, - 7, 7, 8, 8,12,11,10,12,10,10,11,10,10,15,13,13, - 13,10,10,11,10,10,17,14,13,13,10,10, 7, 7, 7,12, - 11,12,12,11,11,12,11,11,16,14,14,13,12,12,12,11, - 11,17,15,14,14,12,12,10, 9, 9,13,11,11,13,11,11, - 13,11,11,17,14,13,14,11,11,12,11,11,16,15,14,14, - 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,15,13, - 13,14,11,10,12,10,10,16,14,14,14,10,10, 8, 7, 7, - 12,11,11,12,11,11,12,11,11,17,14,14,14,12,12,12, - 11,11,16,15,15,14,12,12,10,10,10,13,11,11,13,11, - 11,13,11,12,16,14,14,14,11,11,13,12,11,16,15,15, - 14,11,11, -}; - -static const static_codebook _44p1_p5_0 = { - 5, 243, - (char *)_vq_lengthlist__44p1_p5_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p1_p5_0, - 0 -}; - -static const long _vq_quantlist__44p1_p5_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_p5_1[] = { - 2, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 8, 8, 8, - 7, 7, 8, 8, 8, 9, 8, 8, 9, 7, 7, 6, 6, 6, 9, 8, - 7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, - 10, 8, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 7, 7, 9, - 7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 8, 8, 9, 7, - 7, 7, 8, 8,11, 9, 9,11, 9, 9,11, 8, 9,12, 9, 9, - 12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7,10, - 9, 9,10,10, 9,10, 9, 9,11,10,10,11, 9, 9,11, 9, - 9,11,10,11,11, 9, 9,10, 8, 8,11, 9, 9,10, 9, 9, - 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, - 9, 9, 9, 8, 8,11, 9, 9,12, 9, 9,11, 9, 9,12, 9, - 9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 9, 7, 7, - 11, 9, 9,11,10,10,11, 9, 9,11,11,11,11, 9, 9,11, - 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11,10, - 10,11, 9, 9,11,10,10,11, 9, 9,11, 9,10,11,10,10, - 11, 9, 9, -}; - -static const static_codebook _44p1_p5_1 = { - 5, 243, - (char *)_vq_lengthlist__44p1_p5_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p1_p5_1, - 0 -}; - -static const long _vq_quantlist__44p1_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p1_p6_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p1_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p1_p6_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p1_p6_0, - 0 -}; - -static const long _vq_quantlist__44p1_p6_1[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p1_p6_1[] = { - 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,13,14,16,16,16,16, -}; - -static const static_codebook _44p1_p6_1 = { - 1, 25, - (char *)_vq_lengthlist__44p1_p6_1, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p1_p6_1, - 0 -}; - -static const long _vq_quantlist__44p1_p6_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p1_p6_2[] = { - 3, 4, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p1_p6_2 = { - 1, 25, - (char *)_vq_lengthlist__44p1_p6_2, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p1_p6_2, - 0 -}; - -static const char _huff_lengthlist__44p1_short[] = { - 4, 5, 7, 8,10,13,14, 4, 2, 4, 6, 8,11,12, 7, 4, - 3, 5, 8,12,14, 8, 5, 4, 4, 8,12,12, 9, 7, 7, 7, - 9,10,11,13,11,11, 9, 7, 8,10,13,11,10, 6, 5, 7, - 9, -}; - -static const static_codebook _huff_book__44p1_short = { - 2, 49, - (char *)_huff_lengthlist__44p1_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p2_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p2_l0_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9,10,10,11,11, 4, 6, 5, - 8, 7, 9, 8,10, 9,11,10,11,11, 4, 5, 6, 7, 8, 8, - 9, 9,10,10,10,10,11, 8, 9, 8,10, 8,10, 9,11,10, - 11,11,11,11, 8, 8, 9, 8,10, 9,10,10,11,11,11,11, - 11, 9,10,10,11,11,11,11,11,11,12,11,12,11, 9,10, - 10,10,11,11,11,11,11,11,12,11,12,10,11,11,12,11, - 12,12,12,12,12,12,12,12,10,11,11,11,11,12,12,12, - 13,12,12,12,12,11,12,12,12,12,13,13,12,12,12,12, - 12,12,11,12,12,12,12,13,13,12,13,12,12,12,12,12, - 13,13,13,13,13,13,12,13,12,13,12,12,12,13,13,13, - 13,13,13,13,12,13,12,12,12, -}; - -static const static_codebook _44p2_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p2_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p2_l0_0, - 0 -}; - -static const long _vq_quantlist__44p2_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p2_l0_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, - 5, 6, 6, 6, 5, 6, 5, 6, 6, -}; - -static const static_codebook _44p2_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p2_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p2_l0_1, - 0 -}; - -static const long _vq_quantlist__44p2_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_l1_0[] = { - 1, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const static_codebook _44p2_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44p2_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p2_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p2_lfe[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book__44p2_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p2_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p2_long[] = { - 3, 4, 9, 8, 8,10,13,16, 4, 2, 9, 5, 7,10,14,18, - 9, 7, 6, 5, 7, 9,12,16, 7, 5, 5, 3, 5, 8,11,13, - 8, 7, 7, 5, 5, 7, 9,11,10,10, 9, 8, 6, 6, 8,10, - 13,14,13,11, 9, 8, 9,10,17,18,16,14,11,10,10,10, -}; - -static const static_codebook _huff_book__44p2_long = { - 2, 64, - (char *)_huff_lengthlist__44p2_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p2_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p1_0[] = { - 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p2_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p2_p1_0, - 0 -}; - -static const long _vq_quantlist__44p2_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p2_p2_0[] = { - 1, 4, 4, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, - 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, - 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, - 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 0, - 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, - 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0,11,10, 0, 0, 0, 0, 0, - 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, - 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, 0, - 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, - 0, 0, 0, 0, 0,10,10, 0, 0, 0,13,13, 0, 0, 0, 0, - 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, - 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, - 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, - 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, - 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,11, 0, 0, - 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, - 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, 0, - 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, - 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0,11,11, 0, - 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, - 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, - 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10, - 10, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,14,13, - 0, 0, 0, 0, 0, 0, 0, 0,13,12, 0, 0, 0,13,13, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11, - 11, 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, - 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,13,13, 0, 0, - 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,12,12, 0, 0, 0, - 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12, - 12, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0,12,12, - 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, - 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,14,14, 0, 0, - 0, 0, 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, - 12,12, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0,12, - 12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,14,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 11,11, 0, 0, 0,12,12, 0, 0, 0,13,13, 0, 0, 0, 0, - 0, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, - 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, - 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0,14,14, 0, 0, - 0, 0, 0, 0, 0, 0,14,14, 0, 0, 0, 0, 0, 0, 0, 0, - 12,12, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -}; - -static const static_codebook _44p2_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p2_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p2_p2_0, - 0 -}; - -static const long _vq_quantlist__44p2_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p3_0[] = { - 1, 5, 5, 6, 7, 7, 0, 8, 8, 6, 9, 9, 8,11,11, 0, - 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 5, 7, 7, 7,10, - 10, 0,12,12, 8,11,11, 9,12,12, 0,11,12, 0,12,12, - 0,15,15, 0,12,12, 0, 6, 6, 0, 6, 6, 0, 7, 7, 0, - 7, 7, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, - 7, 6, 7, 7,10, 9, 9, 0,11,10,10, 9, 9,12,12,12, - 0,10,10, 0,11,11, 0,13,13, 0,11,11, 7, 6, 6,10, - 10,10, 0,11,11,11,11,11,12,12,12, 0,11,11, 0,12, - 12, 0,15,15, 0,11,11, 0,11,11, 0,11,11, 0,12,12, - 0,12,12, 0,14,14, 0,12,12, 0,12,12, 0,15,15, 0, - 11,11, 0, 8, 8, 0,10,10, 0,11,11, 0,11,11, 0,12, - 12, 0,12,12, 0,11,11, 0,15,15, 0,11,11, 0, 6, 6, - 0,10,10, 0,12,12, 0,10,10, 0,13,13, 0,12,12, 0, - 13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p2_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p2_p3_0, - 0 -}; - -static const long _vq_quantlist__44p2_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p3_1[] = { - 2, 3, 3, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0, - 9, 9, 0, 9, 9, 0, 9, 9, 0, 8, 8, 0, 6, 6, 0, 7, - 7, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, - 0, 8, 8, 0, 8, 8, 0, 6, 6, 0, 6, 6, 0, 6, 6, 0, - 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 6, - 6, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0,10,10, 0,10,10, - 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0, 7, 7, 0, - 10,10, 0,10,10, 0,12,11, 0,12,12, 0,11,11, 0,11, - 11, 0,12,12, 0,10,10, 0, 7, 7, 0,10,10, 0,10,10, - 0,12,12, 0,11,12, 0,11,11, 0,11,11, 0,11,11, 0, - 10,10, 0, 8, 8, 0, 9, 9, 0, 9, 9, 0,10,10, 0,10, - 10, 0,10, 9, 0,10,10, 0,10,10, 0, 9, 9, 0, 6, 6, - 0,10,10, 0,10,10, 0,11,11, 0,12,12, 0,11,11, 0, - 11,11, 0,12,12, 0,11,11, 0, 7, 7, 0, 9, 9, 0, 9, - 9, 0,11,11, 0,11,11, 0,10,10, 0,10,10, 0,11,11, - 0, 9, 9, -}; - -static const static_codebook _44p2_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p2_p3_1, - 0 -}; - -static const long _vq_quantlist__44p2_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p4_0[] = { - 1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, - 8, 8, 7, 8, 8,11,11,11, 9, 8, 8, 6, 7, 7, 9,11, - 11, 9,11,11,10,11,11,12,13,13,11,12,12,10,11,11, - 13,14,14,12,12,12, 6, 6, 6, 8, 6, 6, 8, 7, 7, 9, - 7, 7,11,10,10,10, 6, 6, 9, 7, 7,12,10,10,11, 6, - 7, 7, 7, 7,11,10,10,12,10,10,11,10,10,14,13,13, - 13,10,10,12,11,11,15,13,13,14,10,10, 8, 7, 7,12, - 11,11,12,11,11,11,11,11,14,14,14,13,12,12,12,11, - 11,15,15,15,13,12,12, 0,10,10, 0,11,11, 0,11,11, - 0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, - 11,11, 7, 8, 8,12,10,10,12,10,10,12,11,11,15,13, - 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, - 12,11,11,12,11,11,12,11,11,16,14,14,14,12,12,13, - 12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, - 12, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,14,14, - 0,12,12, -}; - -static const static_codebook _44p2_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p2_p4_0, - 0 -}; - -static const long _vq_quantlist__44p2_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p2_p4_1[] = { - 3, 4, 4, 8, 8,11, 9, 9,12,12,11,10,10,12,12,12, - 10,10,11,11,12,12,12,12,12,12,11,11,13,13,12,12, - 12,13,13,12,10,10,12,12,12,11,11,13,13,12,13,13, - 13,13,12,11,11,13,13,12,12,12,13,13,12,10,10,12, - 12,12,11,11,13,13,12,13,13,12,12,12,11,11,13,13, - 12,13,13,13,13,12,11,11,12,12,12,11,11,12,12,12, - 13,13,12,12,12,13,13,13,13,12,13,13,13,13,13,13, - 13,12,12,12,13,13,13,13,12,13,13,12,12,11, 8, 8, - 10,10,12,11,11,11,11,12,10,10,10,10,13,11,11,10, - 10,13,11,11,10,10,13,12,12,12,12,13,11,11,11,11, - 13,12,12,11,11,13,12,12,11,11,13,12,12,12,11,13, - 12,12,12,12,13,11,11,11,11,13,12,12,11,11,13,11, - 12,11,11,13,12,12,11,11,14,12,12,11,11,13,11,11, - 11,11,14,12,12,11,11,13,11,12,10,10,14,12,12,11, - 11,14,12,12,11,11,14,11,11,11,11,14,12,12,11,11, - 13,12,12,11,11,14,12,12,11,11,11, 8, 8,10,10,12, - 7, 7,10,10,12, 9, 9,11,11,13, 9, 9, 9, 9,13,13, - 13,10,10,13, 9, 9,12,12,13,13,13,12,12,13, 9, 8, - 11,11,13,10,10,12,12,14,13,13,11,11,13, 9, 9,11, - 11,13,13,13,12,12,13, 9, 9,10,10,13,10,10,11,11, - 13,13,13,10,10,14,10,10,11,11,14,14,14,12,12,13, - 9, 9,10,10,13,10,10,11,11,14,13,14,10,10,14,14, - 14,11,12,14,14,14,14,14,14,13,13,10,10,13,14,14, - 11,11,14,14,14,10,10,14, 9, 9, 9, 9,14, 9, 9, 9, - 9,14,10,10, 9, 9,14,10,10, 8, 8,14,11,11, 8, 8, - 15,11,11,10,10,15,12,12,10,10,15,10,10,10,10,15, - 11,11,10,10,15,13,13,10,10,15,11,11,10,10,15,12, - 12,10,10,15,10,10,10,10,15,11,11,10,10,15,13,13, - 10,10,15,11,11,10,10,15,12,12,10,10,15,11,11, 9, - 9,15,11,11, 9, 9,15,13,13, 9, 9,15,13,13,10,10, - 15,12,12,10,10,15,13,13,10,10,15,13,12, 9, 9,15, - 13,13, 9, 9,14,12,12, 9, 9,14,13,13, 9, 9,14,13, - 13, 9, 9,14,13,13, 7, 7,14,13,13, 8, 8,15,14,14, - 10,10,15,14,14,10,10,15,14,14,10,10,15,14,14,10, - 10,15,14,14, 9, 9,15,14,14,10,10,15,14,14,10,10, - 14,14,14, 9, 9,15,14,14,10,10,14,14,14, 9, 9,15, - 14,14,10,10,15,14,14,10,10,14,14,14, 9, 9,14,14, - 14, 9, 9,14,14,14, 8, 8,15,14,14,10,10,15,14,14, - 11,11,15,14,14, 9, 9,15,14,14, 9, 9,14,14,14, 8, - 8,13, 9, 9,12,12,17,11,11,12,12,17,12,12,12,12, - 17,12,12,11,11,18,15,15,12,12,17,12,12,12,12,17, - 14,15,13,13,17,12,12,12,12,17,13,13,12,13,17,15, - 15,12,12,18,13,13,13,13,18,15,15,13,13,18,12,12, - 12,12,18,13,13,13,13,18,15,15,12,12,18,13,13,12, - 12,18,15,15,13,13,18,13,13,12,12,17,13,13,12,12, - 17,15,15,12,12,18,15,15,13,13,18,15,15,13,14,18, - 15,16,12,12,18,15,15,12,12,18,16,16,12,12,13, 8, - 8,10,10,14,15,14,11,11,14,15,15,12,12,15,14,14, - 12,11,15,15,15,12,12,15,15,15,12,12,15,15,15,13, - 13,15,15,15,12,12,15,15,15,13,13,15,15,15,13,13, - 15,15,15,13,13,15,15,16,13,13,15,15,15,12,12,15, - 15,15,13,13,15,15,15,13,13,15,15,15,13,13,15,15, - 15,13,13,15,15,14,12,12,15,15,15,12,12,16,15,14, - 12,12,16,15,15,13,13,16,16,16,13,13,16,15,15,12, - 12,15,15,15,13,13,15,15,15,12,12,13,12,12,10,10, - 14,14,14,11,11,15,14,14,12,12,15,14,14,11,11,15, - 14,14,11,11,15,15,15,13,13,15,14,14,13,13,15,15, - 15,12,12,15,14,15,13,13,16,15,15,12,12,15,15,15, - 13,13,16,14,14,13,13,15,15,15,12,12,15,15,15,13, - 13,16,15,15,12,12,16,15,15,12,12,16,14,14,13,13, - 15,15,15,11,11,15,15,15,12,12,16,15,15,11,11,16, - 15,15,13,13,16,14,15,14,14,16,15,15,12,12,16,15, - 14,12,12,16,15,15,12,12,14,10,10, 9, 9,14,11,11, - 12,12,14,12,12,13,13,14,12,12,12,12,15,14,14,13, - 13,15,13,13,14,14,15,14,14,15,15,15,12,12,13,13, - 15,13,13,14,14,15,14,14,13,13,15,13,13,13,14,15, - 14,14,15,15,15,12,12,13,13,15,13,13,14,14,15,14, - 14,13,13,15,13,13,14,14,15,14,14,15,15,15,13,13, - 12,12,15,13,13,13,13,15,14,14,13,12,15,15,15,14, - 15,15,15,14,20,20,15,14,14,13,13,15,14,14,13,13, - 15,14,14,13,13,14,12,12, 9, 9,14,14,14,12,12,14, - 13,13,12,13,14,14,14,12,12,15,14,14,12,12,15,14, - 14,14,13,15,14,14,14,14,15,14,14,13,13,15,14,14, - 13,13,15,15,15,14,14,15,14,14,13,13,15,14,14,14, - 14,15,14,14,13,13,15,14,14,13,13,15,15,15,15,14, - 15,15,15,13,13,15,14,14,14,14,15,14,14,13,13,15, - 14,14,13,13,14,15,15,14,14,15,15,15,14,14,15,14, - 14,14,14,15,15,15,14,14,15,14,14,13,14,15,15,15, - 14,14,13,10,10,12,12,17,11,11,12,12,17,12,12,12, - 12,17,12,12,11,11,17,15,15,12,11,18,13,13,13,13, - 18,15,15,13,13,17,12,12,12,12,18,13,13,13,13,17, - 15,15,12,12,17,12,12,12,12,17,15,15,13,13,17,12, - 12,12,12,17,13,13,12,12,17,15,15,12,12,18,14,13, - 12,12,18,15,15,13,13,18,13,13,12,12,18,13,13,12, - 12,18,16,16,12,12,18,16,16,12,12,18,15,15,13,13, - 18,16,16,12,12,17,15,15,12,12,17,16,16,12,12,13, - 8, 8,10,10,14,14,15,12,12,14,15,15,12,12,15,14, - 14,12,12,15,15,14,12,12,15,15,15,13,13,15,15,15, - 13,13,15,15,15,12,12,16,15,15,13,13,16,15,15,13, - 13,15,15,15,12,12,15,15,15,14,14,15,15,15,12,12, - 15,15,15,13,13,16,15,15,13,13,15,15,15,13,13,16, - 15,15,13,13,15,15,14,12,12,15,15,15,12,12,16,14, - 15,13,13,16,15,15,13,13,15,16,15,13,13,16,15,14, - 13,13,16,15,15,13,13,16,15,15,13,13,13,12,12,11, - 11,14,14,14,11,11,14,14,14,12,12,15,14,14,11,11, - 16,14,14,11,11,15,15,15,12,13,16,14,14,13,13,15, - 15,15,12,12,15,14,14,13,13,16,15,15,12,12,15,15, - 15,12,12,15,14,14,13,13,15,15,15,12,12,15,14,14, - 12,12,16,15,15,12,12,16,15,15,12,12,16,14,14,13, - 13,15,15,15,11,11,15,15,14,12,12,16,15,15,11,11, - 16,15,15,12,12,16,14,14,13,13,16,15,15,11,11,16, - 14,14,12,12,16,15,15,11,11,14,10,10, 9, 9,14,11, - 11,12,12,14,12,12,13,14,14,12,12,12,12,14,14,14, - 13,13,15,13,13,14,14,15,14,14,15,15,15,12,12,13, - 13,15,13,13,14,14,15,15,15,14,14,15,13,13,14,14, - 15,15,15,15,15,15,12,12,13,13,15,13,13,14,14,15, - 14,14,13,13,15,13,13,14,14,15,14,14,15,15,15,12, - 12,13,13,15,13,13,13,13,14,14,14,13,13,15,15,15, - 14,15,15,15,15,21,19,15,14,14,13,13,15,14,14,14, - 14,14,14,14,13,13,14,12,12, 9, 9,14,14,14,12,12, - 14,14,13,13,13,14,14,14,12,12,14,14,14,12,12,15, - 14,14,13,13,15,14,14,14,14,15,14,14,13,13,15,14, - 14,13,13,15,15,15,15,15,15,14,14,13,13,15,14,14, - 14,14,15,14,14,13,13,15,14,14,13,13,14,15,15,15, - 15,15,14,15,13,13,15,14,14,14,14,15,14,14,13,13, - 15,14,14,13,13,14,15,15,14,14,15,15,15,14,14,15, - 14,14,14,14,15,15,15,15,15,15,14,14,14,13,14,15, - 15,14,14,13,10,10,12,12,18,12,12,12,12,17,12,12, - 12,12,18,13,13,11,11,18,15,14,11,11,17,13,13,13, - 13,18,15,15,12,12,18,12,12,12,12,17,13,13,12,12, - 18,15,15,12,12,18,13,13,13,12,18,15,15,13,13,18, - 13,13,12,12,18,13,13,12,12,18,15,15,12,12,17,13, - 13,12,12,17,15,15,12,12,17,12,12,11,11,17,13,13, - 11,11,17,15,15,11,11,18,16,16,12,12,18,15,15,13, - 13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11, - 13, 8, 8,10,10,14,14,14,11,11,15,15,15,12,12,15, - 14,14,11,11,16,14,14,12,12,15,15,15,12,12,15,15, - 15,13,13,15,15,15,12,12,15,15,15,12,12,16,15,15, - 13,13,15,15,15,12,12,15,15,15,13,13,16,15,15,12, - 12,15,15,15,12,12,16,15,15,13,13,16,15,15,12,12, - 15,15,15,13,13,15,14,14,12,12,15,15,15,12,12,16, - 15,14,12,12,16,15,15,13,13,16,16,16,13,13,16,14, - 15,13,13,15,15,15,13,13,16,15,15,12,12,13,12,12, - 10,10,14,14,14,11,11,15,14,14,12,12,15,14,14,11, - 11,16,14,14,11,11,15,14,15,12,12,15,14,14,13,13, - 15,15,15,12,12,15,14,14,12,12,15,14,15,12,12,15, - 15,15,12,12,16,14,14,13,13,15,15,15,11,12,16,14, - 14,12,12,16,15,15,12,12,15,15,15,12,12,16,14,14, - 12,12,15,15,15,11,11,15,14,14,11,12,15,15,14,11, - 11,16,15,15,12,12,16,14,14,13,13,16,15,15,11,11, - 16,14,14,12,12,16,15,15,11,11,13,10,10, 8, 8,14, - 12,12,12,12,14,12,12,13,13,14,12,12,12,12,14,14, - 14,13,13,15,13,13,14,14,15,15,14,15,15,15,13,13, - 13,13,15,13,13,14,14,15,14,15,14,14,15,13,13,13, - 13,15,15,15,15,15,15,12,12,13,12,15,13,13,14,14, - 15,14,14,13,13,15,13,13,14,13,15,15,15,16,16,15, - 13,13,12,12,15,13,13,13,13,14,14,14,12,12,15,15, - 15,14,14,15,15,15,20,20,15,14,14,13,13,15,15,14, - 14,14,15,14,14,13,13,13,12,12, 9, 9,14,13,13,12, - 12,14,13,13,12,12,14,14,14,12,12,14,14,14,13,13, - 15,14,14,13,13,15,14,14,14,14,15,15,14,12,12,15, - 14,14,13,13,15,14,15,14,15,15,14,14,13,13,15,14, - 14,14,14,15,14,14,12,12,15,14,14,13,13,14,15,14, - 15,14,15,14,14,13,13,15,14,14,14,14,15,14,14,12, - 12,15,14,14,13,13,15,15,15,14,14,15,15,15,14,14, - 16,14,14,14,14,15,15,15,14,14,15,14,14,14,14,14, - 15,15,14,14,13,13,13,12,13,17,15,15,12,12,17,15, - 15,12,12,18,15,15,11,11,17,16,16,11,11,18,16,16, - 13,13,18,17,16,13,13,18,16,16,12,12,18,16,16,12, - 12,18,17,17,12,12,17,16,16,12,13,17,16,16,12,13, - 17,16,16,12,12,17,16,16,12,12,18,17,16,12,12,18, - 16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15, - 15,12,12,17,17,17,11,11,17,17,17,12,12,17,16,16, - 13,13,18,16,16,11,11,18,16,16,12,12,18,17,16,11, - 11,14,14,14,10,10,16,15,14,11,11,16,15,15,12,12, - 16,14,14,12,12,17,14,14,13,13,17,15,15,13,13,17, - 15,15,14,14,16,15,15,12,12,16,15,15,13,13,18,15, - 15,14,14,16,15,15,12,12,16,15,15,14,14,16,15,15, - 12,12,16,15,15,13,13,17,15,15,13,13,17,15,15,13, - 13,17,15,15,14,14,16,14,14,12,12,17,15,15,12,12, - 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, - 15,14,13,13,17,15,15,14,14,17,15,15,13,13,14,12, - 12,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14, - 11,11,17,14,14,12,12,16,15,14,13,13,16,14,14,13, - 13,16,15,15,12,12,16,14,14,13,13,17,15,15,13,13, - 16,15,15,13,13,17,14,14,13,13,16,15,15,12,12,16, - 14,14,12,12,16,15,15,12,12,17,15,15,12,12,17,14, - 14,13,13,16,15,15,12,12,16,14,14,12,12,16,15,15, - 12,12,17,15,15,13,13,17,14,14,13,13,17,15,15,12, - 12,17,14,14,12,12,17,15,15,12,12,14,14,14, 8, 8, - 14,14,14,13,13,14,15,15,14,14,14,14,14,14,14,15, - 15,15,19,19,15,15,15,14,14,15,15,16,20,19,15,15, - 15,14,14,15,16,16,15,15,15,15,15,19,19,15,15,15, - 14,14,15,16,16,19,20,15,15,15,14,14,15,15,15,15, - 15,15,15,15,19,19,15,15,15,15,15,15,15,16,19,20, - 15,14,15,14,14,15,15,15,15,15,15,15,15,20,19,15, - 15,15,21,19,15,16,16,20,20,15,15,14,19,19,15,15, - 16,20,21,15,15,15,20,19,13,12,12, 9, 9,14,14,14, - 12,12,14,13,13,13,13,14,14,14,13,13,15,14,14,20, - 19,15,14,14,14,13,15,14,14,19,19,15,15,14,13,13, - 15,14,14,14,14,15,15,15,19,20,15,14,14,13,13,15, - 14,14,20,19,14,15,14,13,13,15,14,14,14,13,15,15, - 15,19,20,15,15,14,14,14,15,14,14,21,19,15,15,15, - 13,13,15,14,14,14,14,14,15,15,20,20,15,15,15,21, - 20,15,14,14,19,20,15,15,15,20,20,15,14,14,19,20, - 15,15,15,21,19, -}; - -static const static_codebook _44p2_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p2_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p2_p4_1, - 0 -}; - -static const long _vq_quantlist__44p2_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p2_p5_0[] = { - 2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,15,15, 0, - 13,13,16,16, 0,13,13,15,15, 7, 8, 8,15,15, 9,10, - 10,17,16, 9, 8, 8,15,15, 0,13,13,18,17, 0,13,13, - 16,16, 8, 8, 8,15,15,12,11,11,16,17, 9, 8, 8,14, - 14, 0,13,13,18,17, 0,13,13,16,15, 0,14,14,18,17, - 0,20,22,18,20, 0,12,12,16,16, 0,16,16,22,20, 0, - 14,14,16,16, 0,14,14,17,17, 0,22,22,22,19, 0,12, - 13,16,16, 0,17,17, 0, 0, 0,15,15,16,16, 5, 7, 7, - 13,13, 9, 9, 9,15,14,10,10,10,14,14, 0,21,21,18, - 17, 0,21,22,18,17, 9,10,10,14,14,12,12,12,17,17, - 12,10,10,14,14, 0,19,21,18,17, 0,20,22,18,18,11, - 10,10,14,14,14,13,13,18,17,12,11,11,14,14, 0,22, - 19,17,18, 0,20, 0,18,17, 0,22,21,17,17, 0, 0, 0, - 0, 0, 0,20,22,17,17, 0,22, 0,21,19, 0,22, 0,18, - 18, 0, 0,22,18,19, 0, 0, 0, 0, 0, 0,19,21,17,17, - 0, 0, 0,20,20, 0, 0, 0,18,18, 6, 6, 6,13,12, 8, - 6, 6,11,11, 8, 6, 6,13,13, 0, 9, 9,11,11, 0,11, - 11,14,14, 9, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, - 13,13, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, - 14,13, 9, 9,13,13,10, 6, 6,13,12, 0,11,11,15,15, - 0,10,10,13,13, 0,12,12,15,15, 0,19, 0,17,17, 0, - 9, 9,13,13, 0,13,14,19,20, 0,11,11,13,13, 0,11, - 11,14,14, 0,19,20,17,18, 0,10,10,13,13, 0,15,15, - 21,19, 0,12,12,13,13, 0,10,10,12,13, 0,11,11,15, - 15, 0,11,11,15,15, 0,15,15,22, 0, 0,16,17,22, 0, - 0,11,11,15,15, 0,14,14,18,17, 0,11,11,15,16, 0, - 15,15,22,21, 0,16,16, 0,20, 0,12,12,16,15, 0,15, - 14,19,19, 0,11,11,16,16, 0,15,15,21, 0, 0,16,15, - 0, 0, 0,16,16,22,21, 0, 0, 0, 0, 0, 0,15,15,20, - 20, 0,18,18, 0, 0, 0,16,17, 0, 0, 0,17,17, 0,22, - 0, 0, 0, 0, 0, 0,15,15,21,22, 0,20,18, 0, 0, 0, - 18,17,22, 0, 0,10,10,12,11, 0,10,10,10,10, 0,11, - 11,12,12, 0,11,11, 9, 9, 0,13,13,12,12, 0,11,11, - 12,12, 0,13,13,12,12, 0,10,10,12,12, 0,13,12,13, - 13, 0,12,12,12,12, 0,11,11,12,12, 0,13,13,12,12, - 0,10,10,12,12, 0,13,13,13,14, 0,12,12,12,12, 0, - 13,14,14,14, 0,20,21,15,15, 0,12,11,12,12, 0,15, - 16,20,22, 0,13,12,11,11, 0,13,13,14,13, 0,20, 0, - 16,15, 0,12,12,12,12, 0,16,16,22,21, 0,13,13,12, - 12, 6, 7, 7,16,16,11, 9, 9,15,15,12, 9, 9,16,16, - 0,13,13,14,14, 0,14,14,16,17,10, 9, 9,16,16,14, - 12,12,16,16,12, 9, 9,15,15, 0,13,13,18,18, 0,13, - 13,15,16,12,10,10,17,18,15,12,12,17,17,13, 9, 9, - 16,16, 0,13,13,17,18, 0,14,14,16,16, 0,15,15,18, - 18, 0,22, 0,20,20, 0,12,12,16,16, 0,16,16,20,22, - 0,14,14,16,16, 0,15,14,18,18, 0, 0,22,19,21, 0, - 13,13,16,17, 0,17,17,22,22, 0,15,15,16,16, 7, 7, - 7,14,14,11,10,10,15,15,12,10,10,15,14, 0,22, 0, - 18,18, 0, 0,21,17,18,11,10,10,15,15,14,12,12,17, - 17,14,11,11,15,15, 0,22,20,18,18, 0, 0,20,18,17, - 12,10,10,16,16,17,14,14,19,18,14,11,11,15,15, 0, - 21,22,19,19, 0,21,22,18,18, 0,22, 0,19,21, 0, 0, - 0, 0, 0, 0,22,22,18,17, 0, 0, 0,21,20, 0,22,22, - 20,19, 0, 0,22,20,20, 0, 0, 0, 0, 0, 0,20,21,17, - 17, 0, 0,22,21,21, 0, 0, 0,18,18,10, 9, 9,14,14, - 13,10,10,13,13,13,10,11,14,14, 0,13,13,12,12, 0, - 15,15,16,16,13,10,10,15,15,15,12,12,14,14,15,10, - 10,14,15, 0,14,14,16,15, 0,14,14,15,15,13,10,10, - 15,15,18,13,13,15,15,15,10,10,14,15, 0,14,14,16, - 16, 0,14,14,15,15, 0,15,15,16,16, 0,22, 0,18,18, - 0,12,13,14,14, 0,17,17,22, 0, 0,14,14,14,14, 0, - 15,15,16,16, 0,22, 0,18,17, 0,13,13,14,14, 0,19, - 18,21,22, 0,15,15,14,14, 0,11,11,13,13, 0,12,12, - 16,16, 0,12,12,16,16, 0,15,16,21, 0, 0,16,17, 0, - 22, 0,12,12,16,16, 0,14,14,17,18, 0,11,11,16,16, - 0,15,15,21,22, 0,16,16, 0, 0, 0,12,12,16,16, 0, - 15,15, 0,19, 0,12,12,16,17, 0,16,16,22, 0, 0,16, - 16, 0,22, 0,17,17, 0,22, 0, 0, 0, 0, 0, 0,15,15, - 20,19, 0,18,18, 0, 0, 0,17,18, 0, 0, 0,17,17, 0, - 0, 0, 0, 0, 0, 0, 0,15,15, 0,22, 0,20,18, 0, 0, - 0,18,18,22,22, 0,11,11,14,14, 0,12,12,14,14, 0, - 12,12,15,15, 0,13,13,14,14, 0,14,14,17,16, 0,12, - 12,16,16, 0,14,14,16,16, 0,11,11,15,15, 0,13,13, - 16,16, 0,13,13,15,15, 0,12,12,15,15, 0,15,14,16, - 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,15,15, - 0,15,15,17,17, 0, 0, 0,19,18, 0,13,12,15,15, 0, - 16,16, 0, 0, 0,14,14,15,15, 0,14,14,16,17, 0,22, - 0,18,18, 0,13,13,15,15, 0,17,17, 0, 0, 0,14,14, - 15,15, 8, 8, 8,16,16,12,10,10,16,16,13, 9, 9,16, - 16, 0,14,14,17,17, 0,14,14,17,16,12,10,10,18,17, - 14,11,11,18,18,14, 9,10,16,16, 0,13,13,18,19, 0, - 14,13,16,16,12, 9, 9,16,16,17,13,13,17,17,14, 9, - 9,15,15, 0,14,14,19,20, 0,13,13,15,15, 0,15,15, - 18,19, 0, 0,22,22,22, 0,13,13,17,17, 0,16,16,19, - 21, 0,14,14,16,16, 0,14,14,18,18, 0, 0, 0, 0, 0, - 0,13,13,16,16, 0,18,18, 0, 0, 0,15,15,16,16, 8, - 7, 7,14,14,12,10,10,15,15,13,10,10,15,14, 0,22, - 0,18,18, 0,22, 0,18,18,12,10,10,16,15,15,12,12, - 17,17,14,11,11,15,15, 0,20,21,19,18, 0, 0, 0,17, - 18,13,11,11,15,15,16,13,13,18,18,15,11,11,14,14, - 0,22,21,19,19, 0,21,22,18,18, 0,22,22,20,18, 0, - 0, 0, 0, 0, 0,22,19,17,17, 0, 0, 0,22,21, 0, 0, - 22,19,17, 0, 0,22,19,19, 0, 0, 0, 0, 0, 0,22,21, - 18,17, 0, 0, 0,22, 0, 0, 0, 0,19,19, 0,10,10,14, - 14, 0,11,11,15,14, 0,11,11,15,15, 0,14,14,15,14, - 0,15,15,16,16, 0,11,11,16,16, 0,13,13,16,16, 0, - 11,11,15,15, 0,14,14,17,16, 0,14,14,15,15, 0,11, - 11,16,16, 0,14,13,15,15, 0,11,11,15,15, 0,15,15, - 17,17, 0,14,14,15,14, 0,16,16,17,17, 0, 0,22,18, - 18, 0,13,13,15,15, 0,17,17,22, 0, 0,15,15,15,14, - 0,15,16,16,17, 0, 0,22,18,19, 0,13,13,15,15, 0, - 20,18,21, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12, - 12,16,16, 0,12,12,16,15, 0,15,16,22,22, 0,17,17, - 0, 0, 0,12,12,16,16, 0,14,14,18,18, 0,11,11,16, - 16, 0,15,16,22,20, 0,16,16, 0,22, 0,12,12,16,16, - 0,15,15,18,20, 0,11,11,16,16, 0,15,15, 0, 0, 0, - 16,16, 0, 0, 0,17,17,22, 0, 0, 0, 0, 0, 0, 0,15, - 15, 0,21, 0,18,18, 0, 0, 0,17,16, 0, 0, 0,17,17, - 22,22, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,20,22, 0, - 0, 0,18,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, - 0,12,12,16,16, 0,13,13,15,15, 0,15,15,17,17, 0, - 13,12,16,16, 0,14,14,16,16, 0,12,11,16,16, 0,14, - 14,17,17, 0,14,14,16,16, 0,12,12,16,16, 0,15,15, - 17,16, 0,11,11,15,16, 0,14,14,17,17, 0,14,14,16, - 16, 0,15,15,18,18, 0, 0, 0,22,19, 0,13,13,15,16, - 0,16,17, 0, 0, 0,14,14,16,16, 0,15,15,18,17, 0, - 0, 0,20,20, 0,13,13,16,15, 0,17,17,22,22, 0,14, - 14,15,15, 0,11,11,16,16, 0,13,13,16,17, 0,13,13, - 17,18, 0,16,16,17,17, 0,17,17,18,18, 0,12,12,17, - 17, 0,16,15,18,18, 0,12,12,16,16, 0,16,16,18,18, - 0,15,15,17,17, 0,12,12,17,17, 0,16,16,19,18, 0, - 12,12,16,17, 0,16,16,19,19, 0,15,16,16,17, 0,16, - 16,19,17, 0, 0, 0,20,22, 0,13,13,16,16, 0,19,18, - 21, 0, 0,15,15,16,16, 0,16,16,18,18, 0, 0, 0,22, - 21, 0,14,14,16,16, 0,21,19,21,22, 0,16,16,16,16, - 0, 9, 9,14,14, 0,13,13,15,15, 0,14,14,15,15, 0, - 0,20,18,19, 0, 0,22,18,18, 0,12,12,15,15, 0,15, - 15,17,18, 0,14,13,14,14, 0,20, 0,18,18, 0,21, 0, - 18,17, 0,13,13,15,16, 0,17,17,18,18, 0,14,14,15, - 15, 0,22,22,20,19, 0,20,21,18,18, 0,20,22,19,19, - 0, 0, 0, 0, 0, 0,20,20,17,17, 0, 0,22,22,21, 0, - 22, 0,18,18, 0,20,22,19,19, 0, 0, 0, 0, 0, 0,21, - 21,17,18, 0, 0, 0,21,20, 0, 0,22,19,18, 0,18,18, - 15,15, 0,22,21,17,16, 0, 0,22,17,17, 0,20,22,18, - 18, 0, 0,22,20,20, 0,21,19,16,16, 0,21,21,18,18, - 0,19,19,17,17, 0, 0,22,19,19, 0,22,20,17,17, 0, - 21,19,16,16, 0,22,22,19,18, 0,19,20,16,16, 0,22, - 21,19,21, 0,21,22,17,18, 0,21,20,18,18, 0, 0, 0, - 19,20, 0,20,19,16,16, 0,22,22, 0, 0, 0,21,21,17, - 16, 0,22,20,19,18, 0, 0, 0,20,20, 0,20,19,16,16, - 0, 0, 0, 0, 0, 0,21,22,17,17, 0,11,11,13,13, 0, - 13,13,15,16, 0,13,13,16,16, 0,17,18,21, 0, 0,17, - 18, 0, 0, 0,12,12,15,16, 0,15,15,19,18, 0,12,12, - 16,16, 0,17,17,22, 0, 0,17,17, 0,22, 0,12,12,17, - 16, 0,16,16,19,20, 0,12,12,16,16, 0,17,17, 0, 0, - 0,17,17, 0,21, 0,17,16,22, 0, 0, 0, 0, 0, 0, 0, - 15,15,20,22, 0,20,18, 0, 0, 0,18,18, 0, 0, 0,17, - 17,21, 0, 0, 0, 0, 0, 0, 0,15,15,21,22, 0,19,20, - 22, 0, 0,19,18, 0, 0, 0,14,14,18,18, 0,16,16,22, - 20, 0,16,16,22,19, 0,17,17,20,22, 0,19,19, 0, 0, - 0,15,15,20, 0, 0,18,21, 0,20, 0,15,15,21,20, 0, - 18,17, 0, 0, 0,17,17, 0,22, 0,15,15,19,19, 0,19, - 18, 0, 0, 0,15,15,20, 0, 0,18,18,22,22, 0,17,17, - 0,20, 0,18,18, 0, 0, 0, 0,22, 0, 0, 0,15,15,19, - 20, 0,20,19, 0, 0, 0,17,17,20,21, 0,17,18,20,22, - 0, 0, 0, 0,22, 0,15,15,20,20, 0,22,20, 0, 0, 0, - 17,18,20, 0, 0,12,12,17,16, 0,14,14,17,17, 0,13, - 13,17,17, 0,16,16,18,18, 0,17,16,17,17, 0,13,13, - 17,17, 0,15,16,18,18, 0,13,13,16,16, 0,16,16,18, - 18, 0,16,16,17,16, 0,13,13,16,16, 0,17,17,18,17, - 0,12,12,15,16, 0,17,17,19,19, 0,16,16,16,16, 0, - 16,17,19,18, 0, 0, 0,21,22, 0,14,14,16,16, 0,18, - 18, 0,22, 0,16,16,16,16, 0,16,16,18,17, 0, 0, 0, - 21,20, 0,14,14,16,16, 0,21,22,22, 0, 0,16,16,16, - 16, 0, 9, 9,14,13, 0,13,14,15,16, 0,14,13,15,14, - 0,22, 0,18,18, 0,21, 0,17,18, 0,13,13,15,15, 0, - 15,16,18,17, 0,14,14,15,14, 0,20,22,18,18, 0,22, - 21,17,17, 0,13,13,15,15, 0,17,17,19,19, 0,14,14, - 14,14, 0, 0,22,18,18, 0, 0,22,17,17, 0, 0,22,19, - 20, 0, 0, 0, 0, 0, 0,21,20,17,16, 0, 0, 0,21,22, - 0, 0, 0,18,19, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, - 22, 0,17,17, 0, 0, 0,20,22, 0, 0, 0,18,19, 0,18, - 19,16,16, 0,22,20,17,17, 0,22,22,17,18, 0,22,22, - 18,17, 0, 0,22,18,19, 0,20,20,17,18, 0, 0,22,19, - 18, 0,22,22,17,17, 0,22, 0,19,19, 0, 0,22,18,18, - 0,20,22,17,17, 0, 0,22,18,18, 0,19,20,17,17, 0, - 22, 0,20,19, 0,22,21,17,17, 0, 0, 0,18,18, 0, 0, - 0,22,19, 0,20, 0,17,17, 0,22, 0, 0,22, 0, 0,20, - 17,18, 0,22, 0,19,19, 0, 0, 0, 0,19, 0,19,21,17, - 17, 0, 0, 0, 0, 0, 0,20,21,17,16, 0,11,11,13,13, - 0,13,13,16,16, 0,13,13,15,16, 0,17,17,21,22, 0, - 17,18, 0, 0, 0,12,12,16,16, 0,15,15,18,18, 0,13, - 13,16,16, 0,17,16,21,21, 0,17,17, 0, 0, 0,13,13, - 16,16, 0,16,16,19,18, 0,13,13,16,16, 0,17,17, 0, - 22, 0,17,18,20,22, 0,17,18, 0, 0, 0, 0, 0, 0, 0, - 0,15,15,20, 0, 0,18,19, 0, 0, 0,17,17, 0, 0, 0, - 18,17,22, 0, 0, 0, 0, 0, 0, 0,15,16,21,20, 0,20, - 20, 0, 0, 0,18,19, 0, 0, 0,15,15,22,22, 0,17,16, - 20,22, 0,17,17,20,22, 0,18,18, 0,21, 0,19,18, 0, - 0, 0,16,16,20,20, 0,19,19,22, 0, 0,15,16,21,22, - 0,18,19,22, 0, 0,17,18, 0, 0, 0,16,16,22, 0, 0, - 19,19, 0,21, 0,15,16,20, 0, 0,18,18, 0,22, 0,18, - 17, 0, 0, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, - 22,21, 0,20,21, 0, 0, 0,17,18,22, 0, 0,18,18, 0, - 0, 0, 0, 0, 0, 0, 0,16,16,20,19, 0,22,21, 0, 0, - 0,18,18,22,22, -}; - -static const static_codebook _44p2_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p2_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p2_p5_0, - 0 -}; - -static const long _vq_quantlist__44p2_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p2_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p2_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p2_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p2_p5_1, - 0 -}; - -static const long _vq_quantlist__44p2_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p6_0[] = { - 1, 7, 7, 7, 8, 8, 7, 8, 8, 7, 9, 9,10,11,11, 9, - 8, 8, 7, 8, 9,11,11,11, 9, 8, 8, 6, 7, 7,10,10, - 10,10,10,10,10,10,10,14,14,14,12,11,11,10,11,11, - 15,14,14,13,11,11, 6, 6, 6, 8, 5, 5, 8, 7, 7, 8, - 7, 7,11,10,10, 9, 7, 7, 9, 7, 7,12,10,10,10, 7, - 7, 6, 8, 7,12,10,10,12,10,10,11,10,10,15,14,13, - 13,10,10,11,10,10,16,14,14,14,10,10, 7, 7, 7,12, - 11,11,12,11,11,11,11,11,16,14,14,13,12,12,11,11, - 11,17,15,15,14,12,12,10, 9, 9,13,11,11,13,11,11, - 12,11,11,16,14,13,14,11,11,12,11,11,17,15,14,14, - 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,13, - 14,13,10,10,11,10,10,17,14,14,14,10,10, 7, 7, 7, - 12,11,11,12,11,11,12,11,11,15,14,15,14,12,12,12, - 11,11,17,15,15,14,12,12,10,10, 9,13,11,11,13,11, - 11,13,11,11,16,14,14,14,11,11,13,11,11,16,15,15, - 15,11,11, -}; - -static const static_codebook _44p2_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p2_p6_0, - 0 -}; - -static const long _vq_quantlist__44p2_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p6_1[] = { - 2, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 8, - 7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 7, 7, 9, 8, - 8, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, - 10, 8, 9,10, 8, 8, 7, 6, 6, 8, 6, 6, 9, 6, 6, 9, - 7, 7,10, 8, 8, 9, 6, 6, 9, 7, 7,10, 9, 8, 9, 7, - 7, 7, 7, 7,11, 8, 8,11, 9, 9,10, 9, 9,12, 9, 9, - 12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7,10, - 9, 9,10, 9, 9,10, 9, 9,11,10,11,11, 9, 9,11, 9, - 9,11,11,11,11, 9, 9,10, 8, 8,11, 9, 9,10, 9, 9, - 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,12,10,10,11, - 9, 9, 8, 8, 8,11, 9, 9,12, 9, 9,11, 9, 9,12, 9, - 9,12, 8, 8,12, 9, 9,12, 9,10,12, 8, 8, 9, 7, 7, - 11, 9, 9,11,10,10,11, 9, 9,11,11,11,11, 9, 9,11, - 10,10,12,11,11,11, 9,10,10, 9, 9,11, 9, 9,11,10, - 10,11,10,10,11,11,11,11, 9, 9,11, 9,10,11,11,11, - 11, 9, 9, -}; - -static const static_codebook _44p2_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p2_p6_1, - 0 -}; - -static const long _vq_quantlist__44p2_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p2_p7_0 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p7_0, - 1, -513979392, 1633504256, 2, 0, - (long *)_vq_quantlist__44p2_p7_0, - 0 -}; - -static const long _vq_quantlist__44p2_p7_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p2_p7_1[] = { - 1, 9, 9, 6, 9, 9, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10, -}; - -static const static_codebook _44p2_p7_1 = { - 5, 243, - (char *)_vq_lengthlist__44p2_p7_1, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p2_p7_1, - 0 -}; - -static const long _vq_quantlist__44p2_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p2_p7_2[] = { - 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _44p2_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p2_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p2_p7_2, - 0 -}; - -static const long _vq_quantlist__44p2_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p2_p7_3[] = { - 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p2_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p2_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p2_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p2_short[] = { - 4, 4,12, 9, 8,12,15,17, 4, 2,11, 6, 5, 9,13,15, - 11, 7, 8, 7, 7,10,14,13, 8, 5, 7, 5, 5, 8,12,12, - 8, 4, 7, 4, 3, 6,11,12,11, 8, 9, 7, 6, 8,11,12, - 15,13,14,12, 9, 7,10,13,16,12,17,12, 7, 5, 8,11, -}; - -static const static_codebook _huff_book__44p2_short = { - 2, 64, - (char *)_huff_lengthlist__44p2_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p3_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p3_l0_0[] = { - 1, 4, 4, 8, 8, 8, 8, 9, 9,10,10,10,10, 4, 6, 5, - 8, 7, 9, 9, 9, 9,10, 9,11, 9, 4, 5, 6, 7, 8, 9, - 9, 9, 9, 9,10, 9,10, 8, 9, 8, 9, 8,10, 9,11, 9, - 12,10,12,10, 8, 8, 9, 8, 9, 9,10, 9,11,10,12,10, - 12, 9,10,10,11,10,12,11,12,11,12,12,12,12, 9,10, - 10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12, - 12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12, - 12,12,12,12,12,11,12,12,12,12,12,13,12,13,12,13, - 12,12,11,12,12,12,12,12,12,13,12,12,12,12,12,12, - 12,12,13,13,12,13,12,13,12,13,12,12,12,13,12,13, - 12,13,12,13,12,13,12,12,12, -}; - -static const static_codebook _44p3_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p3_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p3_l0_0, - 0 -}; - -static const long _vq_quantlist__44p3_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p3_l0_1[] = { - 3, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, - 5, 6, 5, 6, 5, 6, 5, 6, 5, -}; - -static const static_codebook _44p3_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p3_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p3_l0_1, - 0 -}; - -static const long _vq_quantlist__44p3_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_l1_0[] = { - 1, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const static_codebook _44p3_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44p3_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p3_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p3_lfe[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book__44p3_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p3_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p3_long[] = { - 3, 4,13, 9, 9,12,15,17, 4, 2,18, 5, 7,10,14,18, - 11, 8, 6, 5, 6, 8,11,14, 8, 5, 5, 3, 5, 8,11,13, - 9, 6, 7, 5, 5, 7, 9,10,11,10, 9, 8, 6, 6, 8,10, - 14,14,11,11, 9, 8, 9,10,17,17,14,13,10, 9,10,10, -}; - -static const static_codebook _huff_book__44p3_long = { - 2, 64, - (char *)_huff_lengthlist__44p3_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p3_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p1_0[] = { - 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p3_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p3_p1_0, - 0 -}; - -static const long _vq_quantlist__44p3_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p3_p2_0[] = { - 3, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, - 11,11, 0, 0, 0, 0, 0, 0, 0, 0,10, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0,10,11, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, - 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,12,12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, - 5, 5, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, - 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 5, 6, 0, 0, 0, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 9, 9, 0, - 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, - 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, - 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, - 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 7, 7, - 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, - 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, - 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,11,11, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 7, - 7, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0,10,10, - 0, 0, 0,11,12, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,11,11, 0, 0, - 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,11, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,12,12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, - 9, 9, 0, 0, 0,10,10, 0, 0, 0,12,12, 0, 0, 0, 0, - 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, - 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, - 0, 0, 0, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, - 10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -}; - -static const static_codebook _44p3_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p3_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p3_p2_0, - 0 -}; - -static const long _vq_quantlist__44p3_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p3_0[] = { - 1, 5, 5, 5, 8, 8, 0, 8, 8, 6, 9, 9, 8,10,10, 0, - 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 4, 7, 7, 6,10, - 10, 0,12,12, 7,11,11, 9,12,12, 0,12,12, 0,13,13, - 0,15,15, 0,12,12, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, - 8, 8, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, - 7, 5, 7, 7, 9, 9, 9, 0,11,10, 9, 9, 9,11,12,12, - 0,10,10, 0,11,11, 0,13,13, 0,11,11, 6, 7, 7, 9, - 10,10, 0,12,12,10,11,11,11,12,12, 0,12,12, 0,13, - 13, 0,15,15, 0,12,12, 0,10,10, 0,11,11, 0,11,11, - 0,12,12, 0,13,13, 0,11,11, 0,12,12, 0,15,15, 0, - 11,11, 0, 8, 8, 0,10,10, 0,12,12, 0,11,11, 0,12, - 12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, 7, 7, - 0,10,10, 0,12,12, 0,10,10, 0,12,13, 0,12,12, 0, - 13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p3_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p3_p3_0, - 0 -}; - -static const long _vq_quantlist__44p3_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p3_1[] = { - 3, 4, 4, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0,10,10, 0, - 8, 8, 0, 9, 9, 0,10,10, 0, 8, 8, 0, 7, 7, 0, 8, - 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, - 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 6, 6, 0, 7, 7, 0, - 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 6, - 5, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 9, 9, - 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 6, 6, 0, - 9,10, 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0,10, - 10, 0,11,11, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 8, 8, - 0, 9, 9, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0, - 7, 7, 0, 8, 8, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 9, - 9, 0, 7, 7, 0, 7, 7, 0, 9, 9, 0, 6, 6, 0, 6, 6, - 0,10,10, 0,10,10, 0,10,10, 0,12,12, 0, 9, 9, 0, - 10,10, 0,12,12, 0, 9, 9, 0, 8, 8, 0, 7, 7, 0, 8, - 8, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, - 0, 7, 7, -}; - -static const static_codebook _44p3_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p3_p3_1, - 0 -}; - -static const long _vq_quantlist__44p3_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p4_0[] = { - 1, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8,10,11,11, 9, - 8, 8, 8, 8, 8,11,11,11,10, 8, 8, 5, 7, 7, 9,11, - 11,10,11,11,10,11,11,12,13,14,11,12,12,10,11,11, - 13,14,14,12,12,12, 5, 6, 6, 8, 6, 6, 8, 7, 7, 8, - 7, 7,11,10,10,10, 7, 7, 9, 7, 7,12,11,11,11, 7, - 7, 7, 7, 7,11,10,10,12,10,10,11,10,10,15,13,13, - 13,10,10,12,11,11,15,13,13,14,11,11, 7, 7, 7,11, - 11,11,12,11,11,12,11,11,14,14,14,14,12,12,12,12, - 12,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,11,12, - 0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, - 11,11, 8, 8, 8,12,10,10,12,10,10,13,11,11,15,13, - 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, - 12,11,11,13,11,11,12,11,11,15,14,14,14,12,12,13, - 12,12,15,14,14,15,12,12, 0,11,11, 0,12,12, 0,12, - 12, 0,12,12, 0,15,15, 0,12,12, 0,13,13, 0,14,15, - 0,12,12, -}; - -static const static_codebook _44p3_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p3_p4_0, - 0 -}; - -static const long _vq_quantlist__44p3_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p3_p4_1[] = { - 3, 4, 5, 8, 8,12,10,10,12,12,12,10,10,12,12,13, - 11,11,12,12,13,12,12,12,12,13,10,10,13,13,13,13, - 13,13,13,13,10,10,13,13,13,11,11,13,13,14,13,13, - 12,12,13,10,10,13,13,13,13,13,13,13,13,10,10,12, - 12,13,11,11,13,13,13,13,13,12,12,13,12,12,13,13, - 13,13,13,13,13,14,11,11,12,12,14,12,12,13,12,14, - 14,14,12,12,13,14,14,13,13,14,13,13,13,13,14,14, - 14,12,12,14,13,13,13,13,14,14,14,12,12,12, 8, 8, - 11,11,12,12,12,11,11,12,11,11,10,10,13,12,12,10, - 10,13,12,12,10,10,13,12,12,12,12,14,12,12,12,12, - 13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14, - 12,12,12,12,13,12,12,12,12,13,13,13,11,11,14,12, - 12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12, - 12,11,14,13,13,11,11,14,13,12,11,11,14,13,13,11, - 11,14,13,13,12,12,14,12,12,12,12,15,13,13,12,12, - 14,12,12,11,11,14,13,13,11,11,12, 9, 9,10,10,12, - 7, 7,11,11,12, 9, 9,12,12,13,10,10,10,10,14,14, - 14,11,11,13, 9, 9,12,12,14,14,14,12,12,13, 8, 8, - 11,11,14, 9, 9,12,12,14,14,14,11,11,13, 9, 9,12, - 12,14,14,14,12,12,14, 8, 8,11,11,14, 9, 9,12,12, - 14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14, - 9, 9,11,11,14,10,10,12,12,14,14,14,11,11,14,14, - 15,12,12,15,14,14,14,14,15,14,14,11,11,14,14,14, - 12,12,14,14,14,11,11,14,11,11,10,10,14,10,10,10, - 10,14,10,10,10,10,15,11,11, 9, 9,14,12,12, 9, 9, - 15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15, - 11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13, - 13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13, - 11,11,15,12,12,11,11,15,13,13,11,11,15,11,11,10, - 10,15,12,12,10,10,15,13,13,10,10,15,14,14,11,11, - 15,13,13,11,11,15,14,14,10,11,15,13,13,10,10,15, - 13,14,10,10,14,13,13,10,10,14,13,13,10,10,14,13, - 13,10,10,14,13,13, 9, 9,14,14,14, 9, 9,15,14,14, - 11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11, - 11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10, - 14,14,14,10,10,15,14,14,10,10,14,14,14,10,10,15, - 14,14,11,11,15,14,14,11,11,14,14,14,10,10,15,14, - 14,10,10,14,14,14, 9, 9,15,15,15,11,11,15,14,14, - 12,12,15,15,14,10,10,15,14,14,10,10,14,15,15, 9, - 9,14,10,10,12,12,17, 9, 9,12,12,17,10,10,13,13, - 17,11,11,12,12,18,14,14,12,12,17,10,10,13,13,17, - 14,14,12,12,17, 9, 9,12,12,17,11,11,12,12,17,14, - 14,12,12,18,10,10,13,13,18,14,14,13,13,18, 9, 9, - 12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13, - 13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12, - 17,14,14,12,12,18,15,15,13,13,18,14,14,14,14,18, - 15,15,12,12,18,14,14,12,12,18,15,15,12,12,13, 7, - 7,11,11,14,15,15,11,11,14,15,15,12,12,14,15,15, - 11,11,15,15,15,11,11,14,15,15,12,12,14,15,15,12, - 12,14,15,15,11,11,14,15,15,11,11,15,15,15,12,12, - 14,15,15,12,12,14,15,15,12,12,14,15,15,11,11,14, - 15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15, - 15,12,12,14,15,14,12,12,14,15,15,11,11,15,14,14, - 12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12, - 12,15,15,15,12,12,15,15,15,12,12,13,13,13,11,10, - 14,14,15,11,11,14,14,14,12,12,15,14,14,10,10,15, - 15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15, - 15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15, - 12,12,14,14,14,12,12,14,15,15,11,11,14,15,15,12, - 12,15,15,15,11,11,15,15,15,12,12,15,14,14,12,12, - 14,15,15,11,11,14,15,15,11,11,15,15,15,10,10,15, - 15,16,12,12,15,15,15,14,14,15,15,15,11,11,15,15, - 15,12,12,15,15,15,11,11,14,11,11,10,10,15, 9, 9, - 12,12,15,10,10,12,12,15,11,11,11,11,15,14,14,12, - 12,15,10,10,13,13,15,14,14,12,12,15, 9, 9,12,12, - 15,10,10,13,13,15,13,13,12,11,15,10,10,12,12,15, - 14,14,12,12,15, 9, 9,11,11,15,11,11,12,12,15,13, - 13,11,11,15,11,11,13,13,15,13,14,13,14,15,11,11, - 11,11,15,11,11,12,12,15,14,14,11,11,15,14,14,13, - 13,15,14,14,20,20,15,14,14,12,12,15,14,14,12,12, - 15,14,14,11,11,14,13,13,10,10,14,13,13,12,12,14, - 14,13,12,12,15,14,14,12,12,15,14,14,11,11,15,14, - 14,12,12,15,14,14,13,13,15,14,14,12,11,15,14,14, - 11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13, - 13,15,14,14,12,11,15,14,14,12,12,15,14,14,13,13, - 15,14,14,13,13,15,14,14,12,12,15,14,14,12,12,15, - 14,14,12,12,15,15,15,13,13,15,15,15,13,13,15,14, - 14,13,13,15,15,15,13,13,15,14,15,12,12,15,15,15, - 13,13,14,10,10,12,13,17, 9, 9,12,12,17,10,10,13, - 13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13, - 18,14,14,12,12,17, 9, 9,12,12,18,10,11,13,13,18, - 14,14,12,12,17,10,10,12,12,17,14,14,12,12,17, 9, - 9,12,12,17,11,11,12,12,17,14,14,12,12,18,11,11, - 12,12,18,14,14,13,13,18,11,11,12,12,18,11,11,12, - 12,18,14,14,12,12,18,15,15,12,12,18,14,14,13,13, - 18,15,15,12,12,17,14,14,12,12,17,15,15,12,12,13, - 7, 7,11,11,14,15,15,11,11,14,15,15,11,11,14,15, - 14,12,12,15,15,15,12,11,14,15,15,12,12,14,15,15, - 12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,13, - 13,14,15,15,11,11,14,15,15,13,12,14,15,15,11,11, - 14,15,15,11,11,15,15,15,13,13,14,15,15,12,12,15, - 15,15,12,12,15,15,15,11,11,15,15,15,11,11,15,15, - 15,12,12,15,15,15,13,13,15,16,16,12,12,15,15,15, - 12,13,15,15,15,12,12,15,15,15,12,12,13,13,13,11, - 11,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10, - 15,14,14,11,11,14,15,15,12,12,14,14,14,12,12,14, - 15,15,11,11,14,15,14,12,12,15,14,14,11,11,14,15, - 15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14, - 12,12,15,15,14,11,11,15,15,15,12,12,15,14,14,12, - 12,14,15,15,11,11,14,15,14,11,11,15,15,15,10,10, - 15,15,15,12,12,15,14,14,14,13,15,15,15,11,11,15, - 15,15,11,11,15,15,15,10,10,14,11,11,10,10,15, 9, - 9,12,12,15,10,10,12,12,15,11,11,11,11,15,14,14, - 12,12,15,10,10,13,13,15,13,13,12,12,15, 9, 9,12, - 12,15,11,11,13,13,15,14,14,12,12,15,10,10,13,13, - 15,13,14,12,12,15, 9, 9,12,12,15,10,10,13,13,15, - 13,13,11,11,15,11,11,13,13,15,14,14,13,13,15,10, - 10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14, - 13,13,15,14,14,21,20,15,14,14,11,11,15,14,14,12, - 12,15,14,14,11,11,14,13,13,10,10,14,13,13,11,11, - 15,14,14,12,12,15,14,14,12,12,14,14,14,12,12,15, - 14,14,12,12,15,14,14,13,13,14,14,14,11,11,15,14, - 14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14, - 13,13,14,14,14,11,11,15,14,14,11,11,14,14,14,13, - 13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, - 15,14,14,12,12,14,14,14,13,13,15,15,15,13,13,16, - 14,14,12,13,15,15,15,13,13,15,14,14,12,12,15,15, - 15,13,13,15,11,11,13,12,18,10,10,12,12,17,11,11, - 12,12,18,12,12,11,11,18,14,14,12,12,18,11,11,13, - 13,17,14,14,12,12,18,10,10,12,12,18,12,12,12,12, - 18,14,15,12,12,18,11,11,13,13,18,14,14,12,12,17, - 10,10,12,12,18,11,11,12,12,18,15,14,12,12,17,12, - 12,12,12,17,14,14,12,12,17,11,11,11,11,17,12,12, - 12,11,17,15,15,11,11,18,15,15,12,12,18,14,15,13, - 13,18,15,15,11,11,17,15,15,12,12,18,15,15,11,11, - 14, 9, 9,11,11,14,15,15,11,11,15,15,15,11,11,15, - 15,15,12,11,15,15,15,12,12,15,15,15,11,11,15,15, - 15,13,13,14,15,15,11,11,15,15,15,11,11,15,15,15, - 13,13,15,15,15,11,11,15,15,15,13,13,15,15,15,11, - 11,15,15,15,11,11,15,15,15,13,13,15,15,15,12,12, - 15,15,15,13,13,15,15,14,11,11,15,15,15,12,12,15, - 15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15, - 15,12,12,15,15,15,13,12,15,15,15,12,12,13,12,12, - 11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11, - 11,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, - 14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15, - 14,14,12,12,15,14,14,12,12,14,15,15,11,11,15,14, - 14,12,12,15,14,14,11,11,15,15,15,12,12,15,14,14, - 12,12,15,15,15,11,11,15,14,14,11,11,15,14,15,11, - 11,15,15,15,12,12,15,14,14,13,13,16,15,15,11,11, - 15,14,14,12,12,15,15,15,11,11,14,11,11, 9, 9,15, - 10,10,12,12,14,11,11,12,12,15,12,12,12,12,15,14, - 14,13,13,15,11,11,13,13,15,14,14,13,13,15,10,10, - 12,12,15,12,12,13,13,15,14,14,13,13,15,11,11,12, - 12,15,14,14,13,13,14,10,10,12,12,15,12,12,13,13, - 15,14,14,12,12,15,12,12,13,13,15,14,14,15,15,15, - 11,11,12,12,15,12,12,12,13,15,14,14,12,12,15,15, - 15,14,14,15,14,14,20,20,15,14,14,12,12,15,14,14, - 13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11, - 11,14,13,13,12,12,14,14,14,12,12,15,14,14,13,13, - 15,14,14,12,12,14,14,14,14,14,14,14,14,11,11,15, - 14,14,12,12,15,14,14,14,14,15,14,14,12,12,14,14, - 14,14,14,14,14,14,11,11,15,14,14,12,12,14,14,14, - 14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,12, - 12,15,14,14,12,12,14,14,14,14,13,15,15,15,14,14, - 15,14,14,13,13,15,15,15,14,14,15,14,14,13,13,15, - 15,15,13,13,14,13,13,13,13,18,15,15,12,12,18,15, - 15,13,12,18,15,16,11,11,18,16,17,12,12,18,15,15, - 13,13,18,17,17,12,12,18,15,15,12,12,17,15,15,12, - 12,18,17,17,12,12,18,15,15,13,13,18,16,17,12,12, - 17,15,15,12,12,18,15,15,12,12,18,16,17,11,12,18, - 16,16,12,12,17,16,17,12,12,18,15,15,11,11,18,15, - 15,12,12,18,17,17,11,11,17,17,17,12,12,18,16,16, - 13,13,18,17,17,11,11,18,16,16,12,12,18,17,17,11, - 11,15,14,14,11,11,16,15,15,11,11,16,15,15,12,12, - 16,15,15,12,12,17,15,15,14,13,16,15,15,12,12,17, - 15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15, - 15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15, - 11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12, - 12,17,16,15,14,14,16,14,15,12,12,16,15,15,12,12, - 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,17, - 15,15,13,13,17,15,15,14,14,18,15,15,13,13,15,12, - 13,11,11,15,14,14,12,12,16,14,14,12,12,16,14,14, - 12,12,16,14,14,12,12,16,14,14,13,12,17,14,14,13, - 13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12, - 16,14,14,12,12,17,14,14,13,13,15,15,15,12,12,16, - 14,14,12,12,17,14,14,12,12,17,15,15,12,12,17,14, - 14,13,13,16,15,15,12,12,16,14,14,12,12,17,15,15, - 12,12,18,15,15,13,13,17,14,14,13,13,17,15,15,12, - 12,17,14,14,12,12,17,15,15,12,12,14,15,15, 9, 9, - 15,15,15,12,12,15,15,15,13,13,15,15,15,14,14,15, - 15,15,19,19,15,15,16,13,13,15,15,16,19,20,15,15, - 15,13,12,15,16,16,14,14,15,15,15,19,19,15,15,15, - 13,13,15,16,15,20,19,14,15,15,13,13,15,15,15,14, - 14,15,15,15,19,19,15,15,15,14,14,15,16,16,19,20, - 15,15,15,14,14,15,15,15,14,14,15,15,15,19,19,15, - 15,15,20,19,15,16,16,20,19,15,15,15,19,19,15,16, - 16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14, - 11,11,14,14,14,12,12,15,14,14,13,13,15,14,14,19, - 20,15,14,14,12,12,14,14,14,20,19,14,14,14,11,11, - 15,14,14,12,12,15,14,14,20,20,15,14,14,12,12,14, - 14,14,20,19,14,14,14,11,11,15,14,14,12,12,15,14, - 14,19,20,15,14,14,13,13,15,14,14,22,19,15,15,14, - 12,12,15,14,14,13,13,14,15,15,22,20,15,15,15,20, - 20,15,14,14,21,20,15,15,15,20,21,15,14,14,20,20, - 14,15,15,20,20, -}; - -static const static_codebook _44p3_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p3_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p3_p4_1, - 0 -}; - -static const long _vq_quantlist__44p3_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p3_p5_0[] = { - 2, 6, 6,14,14, 6, 7, 7,14,14, 7, 7, 7,15,15, 0, - 12,12,15,15, 0,13,13,15,15, 7, 8, 8,15,15,10,10, - 10,16,16, 9, 8, 8,15,15, 0,13,13,18,17, 0,13,13, - 16,16, 8, 8, 8,15,15,12,11,11,16,16, 9, 8, 8,15, - 15, 0,13,13,18,18, 0,13,13,16,16, 0,14,14,17,17, - 0,20, 0,19,20, 0,12,12,16,16, 0,16,16,20,22, 0, - 14,14,16,16, 0,14,14,17,17, 0,20,22,20,19, 0,13, - 13,15,16, 0,17,18, 0,21, 0,15,15,16,16, 5, 7, 7, - 13,13, 8, 9, 9,14,14,10,10,10,14,14, 0,20,22,18, - 18, 0,22,21,18,17, 9,10,10,14,14,12,12,12,17,17, - 12,10,10,14,14, 0, 0,20,17,17, 0,22,21,17,18,11, - 10,10,14,14,14,13,13,18,18,12,11,11,14,14, 0,22, - 21,18,19, 0,20, 0,17,17, 0,22, 0,18,18, 0, 0, 0, - 0, 0, 0,20,20,17,17, 0,22, 0,22,21, 0,21, 0,19, - 18, 0,22,22,18,18, 0, 0, 0, 0, 0, 0,21, 0,17,17, - 0,22, 0,20,20, 0, 0, 0,19,18, 6, 6, 6,12,12, 8, - 6, 6,10,10, 8, 6, 6,13,12, 0,10,10,11,11, 0,11, - 11,13,13, 8, 7, 7,13,13,11, 9, 9,13,13,10, 6, 6, - 12,12, 0,10,10,14,14, 0,10,10,13,13, 9, 7, 7,13, - 13,12,10,10,13,13,10, 6, 6,12,12, 0,11,11,15,15, - 0,10,10,13,13, 0,12,12,15,14, 0,19,20,16,17, 0, - 9, 9,13,13, 0,14,14,20,21, 0,12,11,13,12, 0,12, - 12,15,14, 0,20,19,17,17, 0,10,10,12,13, 0,15,15, - 22,21, 0,12,12,12,13, 0,10,10,12,12, 0,11,11,15, - 15, 0,11,11,15,15, 0,15,15,22,22, 0,16,17, 0, 0, - 0,11,11,15,15, 0,14,14,18,18, 0,11,11,16,16, 0, - 16,15, 0,21, 0,16,16, 0, 0, 0,12,12,15,15, 0,14, - 14,19,19, 0,11,11,15,15, 0,15,15,22, 0, 0,16,16, - 22, 0, 0,16,16, 0,21, 0, 0, 0, 0, 0, 0,15,15,19, - 20, 0,18,18, 0, 0, 0,17,17, 0, 0, 0,17,17, 0, 0, - 0, 0, 0, 0, 0, 0,16,15,22,21, 0,20,20, 0, 0, 0, - 18,18, 0, 0, 0,10,10,12,12, 0,10,10,11,11, 0,11, - 11,12,12, 0,11,11, 9, 9, 0,13,12,12,12, 0,11,11, - 13,13, 0,13,13,12,12, 0,10,10,12,12, 0,13,12,13, - 13, 0,12,12,12,12, 0,11,11,13,13, 0,13,13,12,12, - 0,10,10,12,12, 0,13,13,14,13, 0,12,12,12,12, 0, - 14,13,13,14, 0,20,21,15,15, 0,11,11,12,12, 0,15, - 16,20,20, 0,12,13,10,10, 0,13,13,14,13, 0,20,20, - 15,15, 0,11,11,12,12, 0,16,17,21,21, 0,13,13,11, - 11, 6, 7, 7,16,15,11, 9, 9,14,15,12, 9, 9,16,16, - 0,13,13,15,15, 0,14,14,17,17,10, 9, 9,16,16,14, - 12,12,16,16,12, 9, 9,15,15, 0,13,13,17,18, 0,13, - 13,15,15,12,10,10,17,17,15,12,12,17,17,13, 9, 9, - 16,16, 0,13,13,18,19, 0,14,14,16,16, 0,15,15,18, - 18, 0, 0, 0,20,19, 0,12,12,17,16, 0,16,17, 0,21, - 0,14,15,16,16, 0,15,15,18,18, 0, 0,22,19,21, 0, - 13,13,16,16, 0,18,17,22,22, 0,15,15,16,16, 7, 7, - 7,13,13,11,10,10,15,15,12,10,10,14,14, 0,21, 0, - 18,17, 0,21,22,18,18,11,10,10,15,15,14,12,12,17, - 17,14,11,11,14,14, 0,21,20,18,18, 0,22,21,18,17, - 12,11,10,16,16,16,14,14,17,19,14,11,11,15,15, 0, - 0,22,19,19, 0,21,22,18,18, 0,21, 0,18,19, 0, 0, - 0,22, 0, 0,22,21,17,17, 0, 0, 0,20,22, 0, 0,21, - 18,18, 0, 0, 0,19,20, 0, 0, 0, 0, 0, 0, 0,21,17, - 17, 0, 0, 0,22,21, 0, 0, 0,19,19,10, 9, 9,14,13, - 13,10,10,12,12,13,10,10,14,14, 0,13,13,12,12, 0, - 15,14,16,15,13,10,10,14,14,15,12,12,14,14,15,10, - 10,14,14, 0,14,14,15,15, 0,14,13,14,14,13,10,10, - 15,15,17,13,13,15,15,14,10,10,14,14, 0,14,14,15, - 16, 0,14,14,15,15, 0,15,15,16,16, 0,21,22,17,18, - 0,12,12,14,14, 0,17,17,20,21, 0,14,14,14,14, 0, - 15,15,16,16, 0,21,22,18,18, 0,13,13,14,14, 0,18, - 18,22, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12,12, - 16,15, 0,12,12,16,16, 0,16,16, 0, 0, 0,16,17, 0, - 22, 0,12,12,16,16, 0,14,14,17,18, 0,11,11,16,16, - 0,15,15, 0,21, 0,16,16,21,22, 0,12,12,16,16, 0, - 15,15,19,19, 0,12,12,17,16, 0,16,16,21,22, 0,16, - 16, 0, 0, 0,17,17, 0,22, 0, 0, 0, 0, 0, 0,15,15, - 19,20, 0,17,19, 0, 0, 0,17,17,22, 0, 0,17,17, 0, - 22, 0, 0, 0, 0, 0, 0,15,15,21, 0, 0,19,20, 0, 0, - 0,19,18,22, 0, 0,11,12,14,14, 0,11,11,14,14, 0, - 12,12,15,15, 0,13,13,13,13, 0,14,14,16,16, 0,12, - 12,15,15, 0,14,14,16,15, 0,11,11,15,15, 0,13,13, - 16,16, 0,13,13,15,15, 0,12,12,15,15, 0,15,14,16, - 16, 0,11,11,15,15, 0,14,14,17,17, 0,13,13,15,15, - 0,15,15,16,16, 0, 0, 0,18,18, 0,12,12,14,14, 0, - 16,16,22, 0, 0,14,14,15,15, 0,15,15,16,17, 0,21, - 22,18,18, 0,13,13,15,14, 0,18,17,22, 0, 0,14,14, - 15,15, 8, 8, 8,16,15,12,10,10,16,15,12,10,10,16, - 16, 0,14,14,16,17, 0,14,14,17,16,12,10,10,17,18, - 14,12,12,18,18,14,10,10,16,16, 0,14,14,18,18, 0, - 14,14,16,16,12, 9, 9,16,16,17,13,13,16,17,14, 9, - 9,15,15, 0,14,14,18,19, 0,13,13,15,15, 0,15,15, - 18,19, 0, 0, 0,22,21, 0,13,13,16,16, 0,16,16,22, - 0, 0,15,15,16,16, 0,14,14,18,17, 0, 0, 0,20, 0, - 0,13,13,16,16, 0,18,18, 0, 0, 0,15,15,16,16, 8, - 7, 7,13,13,12,10,10,15,15,12,10,10,14,14, 0,22, - 22,19,18, 0, 0, 0,18,18,12,10,10,15,15,14,13,13, - 17,17,14,11,11,15,15, 0,19,20,18,18, 0,22,21,17, - 18,13,11,11,15,15,16,13,13,18,18,14,11,11,14,15, - 0,22,21,20,19, 0,22,21,17,17, 0, 0,22,19,18, 0, - 0, 0, 0, 0, 0,22,20,17,17, 0, 0, 0,21,20, 0, 0, - 0,19,17, 0, 0,22,19,19, 0, 0, 0, 0, 0, 0,22,20, - 18,17, 0, 0, 0, 0, 0, 0, 0, 0,18,18, 0,10,10,14, - 14, 0,11,11,14,14, 0,11,11,15,15, 0,14,14,14,14, - 0,15,15,16,16, 0,11,11,16,16, 0,13,13,16,16, 0, - 11,11,15,15, 0,14,14,16,16, 0,14,14,15,15, 0,11, - 11,15,15, 0,13,13,15,15, 0,10,10,15,15, 0,15,15, - 17,17, 0,14,14,14,14, 0,16,16,16,16, 0, 0,22,19, - 19, 0,13,13,14,14, 0,17,17, 0, 0, 0,15,15,14,14, - 0,16,16,17,17, 0, 0,22,18,18, 0,13,13,14,14, 0, - 21,18, 0, 0, 0,15,15,14,14, 0,11,11,13,13, 0,12, - 12,15,15, 0,12,12,16,15, 0,16,16, 0, 0, 0,17,17, - 22,22, 0,12,12,16,16, 0,14,14,18,18, 0,11,12,16, - 16, 0,15,16, 0,21, 0,16,16,22,21, 0,12,12,16,16, - 0,15,15,19,20, 0,11,12,16,16, 0,15,15,20,22, 0, - 16,16, 0,22, 0,17,17,22, 0, 0, 0, 0, 0, 0, 0,15, - 15,21,22, 0,19,18, 0, 0, 0,17,17, 0, 0, 0,17,17, - 0,22, 0, 0, 0, 0, 0, 0,16,15,22, 0, 0,19,19, 0, - 0, 0,17,18, 0, 0, 0,12,12,15,15, 0,12,12,15,15, - 0,12,12,15,15, 0,13,13,14,14, 0,15,15,16,17, 0, - 12,12,16,16, 0,14,14,16,16, 0,12,11,15,16, 0,14, - 14,16,17, 0,14,14,16,16, 0,13,12,16,16, 0,15,15, - 16,16, 0,11,11,15,15, 0,14,14,16,16, 0,14,14,15, - 15, 0,15,15,18,17, 0, 0,22, 0,20, 0,13,13,15,15, - 0,16,17,22,22, 0,14,14,15,15, 0,15,15,17,18, 0, - 20, 0,19,19, 0,13,13,15,15, 0,18,18,22, 0, 0,14, - 14,15,15, 0,11,11,16,16, 0,14,14,17,16, 0,13,13, - 17,17, 0,16,16,17,17, 0,17,17,18,19, 0,12,12,16, - 17, 0,15,15,18,18, 0,12,12,16,16, 0,16,16,19,18, - 0,16,16,17,16, 0,12,13,17,17, 0,17,16,18,17, 0, - 13,12,16,16, 0,16,16,18,19, 0,16,16,16,17, 0,16, - 16,18,18, 0,22, 0,22,22, 0,13,13,16,16, 0,19,18, - 22,20, 0,16,15,16,16, 0,16,17,18,18, 0, 0, 0,22, - 20, 0,14,14,16,16, 0,19,19, 0, 0, 0,16,16,16,16, - 0, 9, 9,13,13, 0,13,13,15,15, 0,14,14,15,15, 0, - 0,22,17,18, 0,22, 0,18,19, 0,12,12,15,15, 0,15, - 16,17,17, 0,14,14,14,14, 0,22, 0,18,18, 0,21,22, - 17,17, 0,13,13,15,15, 0,17,17,17,18, 0,14,14,15, - 15, 0,22,21,21,19, 0,20,21,17,17, 0,21,21,19,18, - 0, 0, 0, 0, 0, 0,21,21,17,17, 0, 0, 0,22,22, 0, - 0,22,19,18, 0, 0,21,19,18, 0, 0, 0, 0,22, 0,19, - 20,17,17, 0, 0, 0, 0,22, 0, 0, 0,19,18, 0,19,19, - 15,16, 0,21,19,16,17, 0, 0,21,17,17, 0, 0,22,17, - 17, 0,22,22,18,19, 0,20,20,16,16, 0, 0,22,18,18, - 0,20,19,16,17, 0,22,21,20,19, 0, 0,21,17,17, 0, - 21,20,17,17, 0, 0, 0,18,18, 0,19,19,17,16, 0,22, - 0,19,19, 0,21,22,17,18, 0, 0,22,19,18, 0, 0, 0, - 19,20, 0,19,19,16,16, 0,22,22,22, 0, 0,20,22,16, - 16, 0,22,20,18,19, 0, 0, 0,20,19, 0,20,20,16,16, - 0, 0, 0, 0, 0, 0,22,20,17,16, 0,11,11,13,13, 0, - 14,13,15,15, 0,13,13,16,15, 0,18,17,21, 0, 0,18, - 18,21, 0, 0,12,12,15,15, 0,15,16,17,18, 0,12,12, - 15,15, 0,17,17,22,20, 0,17,18,22, 0, 0,12,12,17, - 16, 0,16,17,19,19, 0,13,13,16,16, 0,17,17, 0,22, - 0,17,17, 0,21, 0,18,18,20,22, 0, 0, 0, 0, 0, 0, - 15,15,21,20, 0,20,19, 0, 0, 0,18,18,22, 0, 0,17, - 17,22, 0, 0, 0, 0, 0, 0, 0,15,16,20,22, 0,20,21, - 0, 0, 0,19,18, 0, 0, 0,15,15,19,19, 0,17,16,20, - 20, 0,16,17,20,21, 0,18,17, 0, 0, 0,19,19, 0, 0, - 0,15,15,21,19, 0,19,19, 0, 0, 0,15,15,22,22, 0, - 18,18, 0,22, 0,17,18,22,21, 0,15,15,20,19, 0,19, - 19, 0, 0, 0,15,15,20,22, 0,18,19,20, 0, 0,18,17, - 21,21, 0,18,18,19,22, 0, 0, 0, 0, 0, 0,15,15,20, - 19, 0,19,19, 0, 0, 0,18,18,21,22, 0,18,18,22, 0, - 0, 0, 0, 0, 0, 0,15,15,19,20, 0,21,21, 0, 0, 0, - 17,17,20,20, 0,12,12,17,17, 0,14,14,16,17, 0,13, - 14,17,17, 0,16,16,17,17, 0,17,17,17,19, 0,13,13, - 17,17, 0,16,16,18,18, 0,13,13,16,16, 0,16,16,18, - 18, 0,16,16,17,17, 0,13,13,17,17, 0,17,17,18,17, - 0,12,12,15,16, 0,17,18,19,20, 0,16,16,16,16, 0, - 17,16,18,19, 0, 0,22,21,22, 0,14,14,16,16, 0,19, - 19, 0, 0, 0,16,16,16,16, 0,16,16,18,17, 0, 0,22, - 21,21, 0,14,14,16,16, 0,22,20,22, 0, 0,16,16,15, - 15, 0, 9, 9,13,13, 0,14,14,15,15, 0,14,14,14,14, - 0,22,22,18,18, 0, 0,22,18,18, 0,12,12,15,15, 0, - 16,16,18,17, 0,14,14,14,14, 0,20,21,18,18, 0,22, - 21,17,17, 0,13,13,15,15, 0,17,17,18,18, 0,14,14, - 14,14, 0, 0,21,18,19, 0, 0,22,17,17, 0,22,22,19, - 18, 0, 0, 0, 0, 0, 0,19,21,17,17, 0, 0, 0,22,20, - 0, 0,21,18,19, 0, 0,22,18,18, 0, 0, 0, 0,22, 0, - 20,22,17,17, 0, 0, 0,20,22, 0, 0, 0,18,18, 0,19, - 21,16,16, 0,20,22,16,17, 0,20, 0,17,17, 0,22, 0, - 18,17, 0,21, 0,18,19, 0,20,20,17,17, 0,22, 0,18, - 18, 0,21,20,17,17, 0, 0,20,20,19, 0, 0,21,18,17, - 0,21,21,17,17, 0,22, 0,18,17, 0,19,19,17,17, 0, - 0,22,20,21, 0, 0,21,17,17, 0,22, 0,18,18, 0, 0, - 0,20,22, 0,20,19,16,16, 0, 0, 0, 0, 0, 0,22,22, - 17,17, 0,22, 0,18,19, 0, 0, 0,21,20, 0,19,21,16, - 17, 0, 0, 0, 0, 0, 0,22,22,17,16, 0,11,11,13,13, - 0,13,13,15,15, 0,13,13,15,15, 0,17,17,22,21, 0, - 18,18,22, 0, 0,12,13,16,15, 0,15,16,18,18, 0,13, - 13,16,16, 0,17,17, 0,22, 0,17,17,22,22, 0,13,13, - 16,16, 0,16,16,19,18, 0,13,13,16,16, 0,18,17, 0, - 20, 0,18,17,20, 0, 0,17,17,21, 0, 0, 0, 0, 0, 0, - 0,15,15,21,22, 0,19,20, 0, 0, 0,18,18, 0, 0, 0, - 18,17, 0, 0, 0, 0, 0, 0, 0, 0,16,16,22,22, 0,20, - 20, 0, 0, 0,21,19, 0, 0, 0,15,15,20,19, 0,16,16, - 22,20, 0,17,17, 0,22, 0,18,18, 0,22, 0,19,17, 0, - 0, 0,15,16,22,20, 0,18,19, 0, 0, 0,16,16,22,20, - 0,18,18, 0,22, 0,18,18,22, 0, 0,16,16,21,20, 0, - 19,20, 0,22, 0,16,16, 0,22, 0,18,18, 0,22, 0,18, - 18, 0,21, 0,19,18, 0,22, 0, 0, 0, 0, 0, 0,16,16, - 21,20, 0,20, 0, 0, 0, 0,18,18,21, 0, 0,18,18, 0, - 0, 0, 0, 0, 0, 0, 0,16,16,21,19, 0, 0, 0, 0, 0, - 0,18,18, 0,21, -}; - -static const static_codebook _44p3_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p3_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p3_p5_0, - 0 -}; - -static const long _vq_quantlist__44p3_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p3_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p3_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p3_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p3_p5_1, - 0 -}; - -static const long _vq_quantlist__44p3_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p6_0[] = { - 1, 6, 6, 7, 7, 7, 7, 8, 8, 7, 9, 9,11,11,11, 9, - 8, 8, 8, 9, 9,12,11,11, 9, 8, 8, 6, 7, 7,10,11, - 10,10,10,10,11,11,10,14,13,14,12,11,11,11,11,11, - 15,14,14,13,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, - 8, 8,12,10,10, 9, 7, 7, 9, 7, 8,12,10,10,10, 7, - 7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, - 13,10,10,11,10,10,16,13,14,14,10,10, 7, 7, 7,12, - 11,11,12,11,11,11,11,11,16,15,15,14,12,12,12,11, - 11,16,15,16,14,12,12,10, 9, 9,14,11,11,13,11,11, - 12,11,11,16,14,14,14,11,11,12,11,11,17,15,15,14, - 11,11, 7, 8, 8,12,11,11,12,10,10,12,10,10,16,14, - 13,14,10,10,12,10,10,17,14,14,14,10,10, 8, 7, 7, - 13,11,11,12,11,11,12,11,11,16,15,14,14,12,12,12, - 11,11,16,15,14,15,12,12,11,10,10,13,11,11,13,12, - 11,13,11,11,17,14,14,14,11,11,13,11,11,17,14,15, - 14,11,11, -}; - -static const static_codebook _44p3_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p3_p6_0, - 0 -}; - -static const long _vq_quantlist__44p3_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p6_1[] = { - 2, 6, 6, 7, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, - 7, 7, 8, 8, 8, 9, 9, 9, 9, 7, 8, 6, 7, 7, 8, 8, - 8, 8, 8, 8, 9, 8, 8,10, 9, 9,10, 8, 8,10, 8, 8, - 10, 9, 9,10, 8, 8, 6, 6, 6, 8, 6, 6, 8, 7, 7, 8, - 7, 7,10, 8, 8, 9, 7, 7, 9, 7, 7,10, 8, 9, 9, 7, - 7, 7, 7, 7,10, 8, 8,11, 8, 8,10, 8, 8,12, 9, 9, - 12, 8, 8,11, 9, 9,12, 9, 9,11, 8, 8, 7, 7, 7,10, - 9, 9,10, 9, 9,10, 9, 9,11,10,10,10, 9, 9,11, 9, - 9,11,10,10,11, 9, 9, 9, 8, 8,10, 9, 9,10, 9, 9, - 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, - 9, 9, 8, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, - 9,12, 8, 8,12, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7, - 10, 9, 9,10, 9, 9,11, 9, 9,11,11,11,11, 9, 9,11, - 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11, 9, - 10,11,10, 9,11,10,10,11, 9, 9,11, 9,10,11,10,10, - 11, 9, 9, -}; - -static const static_codebook _44p3_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p3_p6_1, - 0 -}; - -static const long _vq_quantlist__44p3_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p3_p7_0 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p7_0, - 1, -513979392, 1633504256, 2, 0, - (long *)_vq_quantlist__44p3_p7_0, - 0 -}; - -static const long _vq_quantlist__44p3_p7_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p3_p7_1[] = { - 1, 9, 9, 6, 9, 9, 5, 9, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10, -}; - -static const static_codebook _44p3_p7_1 = { - 5, 243, - (char *)_vq_lengthlist__44p3_p7_1, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p3_p7_1, - 0 -}; - -static const long _vq_quantlist__44p3_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p3_p7_2[] = { - 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _44p3_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p3_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p3_p7_2, - 0 -}; - -static const long _vq_quantlist__44p3_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p3_p7_3[] = { - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p3_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p3_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p3_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p3_short[] = { - 4, 5,16, 9, 9,12,17,18, 4, 2,18, 6, 5, 9,13,15, - 10, 7, 7, 6, 7, 9,13,13, 8, 5, 6, 5, 5, 7,11,12, - 8, 4, 7, 4, 3, 6,10,12,11, 8, 9, 7, 6, 8,11,12, - 15,13,13,11, 9, 7,10,12,16,12,16,12, 6, 5, 8,11, -}; - -static const static_codebook _huff_book__44p3_short = { - 2, 64, - (char *)_huff_lengthlist__44p3_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p4_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p4_l0_0[] = { - 1, 4, 4, 8, 8, 9, 8, 9, 9,10,10,10,10, 4, 6, 5, - 8, 7, 9, 9, 9, 9,10, 9,10,10, 4, 5, 6, 7, 8, 9, - 9, 9, 9, 9,10, 9,10, 8, 9, 8, 9, 8,10, 9,11, 9, - 12,10,11,10, 8, 8, 9, 8, 9, 9,10, 9,11,10,11,10, - 12, 9,10,10,11,10,11,11,12,11,12,12,12,12, 9,10, - 10,11,11,11,11,11,12,12,12,12,12,10,11,11,12,12, - 12,12,12,12,12,12,12,12,10,11,11,12,12,12,12,12, - 12,12,12,12,12,11,12,12,12,12,12,12,12,12,12,13, - 12,12,11,12,11,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,13,12,12,12,12,12,12,11,13,12,12, - 12,13,12,12,12,12,12,12,12, -}; - -static const static_codebook _44p4_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p4_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p4_l0_0, - 0 -}; - -static const long _vq_quantlist__44p4_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p4_l0_1[] = { - 3, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, - 5, 6, 5, 6, 5, 6, 5, 6, 5, -}; - -static const static_codebook _44p4_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p4_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p4_l0_1, - 0 -}; - -static const long _vq_quantlist__44p4_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_l1_0[] = { - 1, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const static_codebook _44p4_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44p4_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p4_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p4_lfe[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book__44p4_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p4_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p4_long[] = { - 3, 5,13, 9, 9,12,16,18, 4, 2,20, 6, 7,10,15,20, - 10, 7, 5, 5, 6, 8,10,13, 8, 5, 5, 3, 5, 7,10,11, - 9, 7, 6, 5, 5, 7, 9, 9,11,10, 8, 7, 6, 6, 8, 8, - 15,15,10,10, 9, 7, 8, 9,17,19,13,12,10, 8, 9, 9, -}; - -static const static_codebook _huff_book__44p4_long = { - 2, 64, - (char *)_huff_lengthlist__44p4_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p4_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p1_0[] = { - 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p4_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p4_p1_0, - 0 -}; - -static const long _vq_quantlist__44p4_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p4_p2_0[] = { - 3, 9, 9, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, - 12,12, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, - 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0,12,12, 0, 0, - 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0,12,12, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, - 5, 5, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 5, 5, - 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, - 0, 0, 0, 0, 0, 0, 0, 5, 5, 0, 0, 0, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 9, 9, 0, - 0, 0,10,10, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, - 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0,11,11, 0, - 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, 0, - 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, - 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, - 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,11,11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 7, 7, - 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, - 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, - 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 0, 0, 0, 7, 7, 0, 0, 0, 8, 8, 0, - 0, 0,10,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 7, - 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0,11,11, - 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 7, - 7, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, - 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 9, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0,10,10, 0, 0, 0, 9, 9, 0, 0, 0,10,10, - 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, - 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, - 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,11, - 11, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0,12,12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, 0, 0, - 9, 9, 0, 0, 0,10,10, 0, 0, 0,12,12, 0, 0, 0, 0, - 0, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 9, 9, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, - 0, 0, 0, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, - 10,10, 0, 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, -}; - -static const static_codebook _44p4_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p4_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p4_p2_0, - 0 -}; - -static const long _vq_quantlist__44p4_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p3_0[] = { - 1, 6, 6, 5, 7, 8, 0, 8, 8, 6, 9, 9, 7,10,10, 0, - 8, 8, 0, 9, 9, 0,12,12, 0, 8, 8, 4, 7, 7, 6,10, - 10, 0,12,12, 7,11,11, 8,12,12, 0,12,12, 0,13,12, - 0,15,15, 0,12,12, 0, 7, 7, 0, 7, 7, 0, 7, 7, 0, - 8, 8, 0,10,10, 0, 7, 7, 0, 8, 8, 0,11,11, 0, 7, - 7, 5, 7, 7, 8, 9, 9, 0,10,10, 8, 9, 9,11,11,11, - 0,10, 9, 0,11,11, 0,13,13, 0,10,10, 6, 7, 7, 8, - 10,10, 0,12,12, 9,10,10,10,12,12, 0,12,12, 0,12, - 12, 0,15,15, 0,12,12, 0,10,10, 0,11,11, 0,11,11, - 0,11,11, 0,13,13, 0,11,11, 0,11,11, 0,15,15, 0, - 10,10, 0, 8, 8, 0,10,10, 0,12,12, 0,11,11, 0,12, - 12, 0,12,12, 0,12,12, 0,15,15, 0,11,11, 0, 7, 7, - 0,10,10, 0,12,12, 0,10,10, 0,12,12, 0,12,12, 0, - 13,13, 0,14,14, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44p4_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p4_p3_0, - 0 -}; - -static const long _vq_quantlist__44p4_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p3_1[] = { - 3, 5, 5, 0, 8, 8, 0, 8, 8, 0, 9, 9, 0,10,10, 0, - 8, 8, 0, 8, 8, 0,10,10, 0, 8, 8, 0, 7, 7, 0, 8, - 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 8, 8, 0, 8, 8, - 0, 8, 8, 0, 8, 8, 0, 7, 7, 0, 6, 6, 0, 7, 7, 0, - 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,10,10, 0, 5, - 5, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, 0, 9, 9, - 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 6, 6, 0, - 9,10, 0,10,10, 0,10,10, 0,11,11, 0, 9, 9, 0,10, - 10, 0,11,11, 0, 9, 9, 0, 8, 8, 0, 8, 8, 0, 8, 8, - 0, 9, 9, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0, - 7, 7, 0, 8, 8, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 9, - 9, 0, 7, 7, 0, 7, 7, 0, 8, 8, 0, 6, 6, 0, 6, 6, - 0,10,10, 0,10,10, 0,10,10, 0,12,12, 0, 9, 9, 0, - 10,10, 0,12,12, 0, 9, 9, 0, 8, 8, 0, 7, 7, 0, 7, - 7, 0, 8, 8, 0, 9, 9, 0, 7, 7, 0, 8, 8, 0, 9, 9, - 0, 6, 6, -}; - -static const static_codebook _44p4_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p4_p3_1, - 0 -}; - -static const long _vq_quantlist__44p4_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p4_0[] = { - 1, 6, 6, 6, 7, 7, 7, 8, 8, 7, 8, 8,10,11,11, 9, - 8, 8, 8, 8, 8,11,11,12, 9, 8, 8, 5, 7, 7, 9,11, - 11,10,11,11,10,11,11,12,14,14,11,12,12,10,12,12, - 13,14,14,12,12,12, 5, 6, 6, 7, 6, 6, 8, 7, 7, 8, - 7, 7,11,10,10,10, 7, 7, 9, 8, 8,12,11,11,10, 7, - 7, 7, 7, 7,11,10,10,12,10,10,11,10,10,15,13,13, - 13,10,10,12,11,11,15,13,13,14,11,11, 7, 7, 7,11, - 11,11,12,11,11,12,11,11,14,14,14,13,12,12,12,12, - 12,16,15,15,14,12,12, 0,10,10, 0,11,11, 0,12,12, - 0,11,11, 0,14,14, 0,11,11, 0,12,12, 0,15,15, 0, - 11,11, 7, 8, 8,12,11,10,12,10,10,12,11,11,15,13, - 13,14,11,11,12,10,10,16,14,14,14,10,10, 8, 7, 7, - 12,11,11,12,11,11,12,11,11,15,14,14,14,12,12,13, - 12,12,15,14,14,15,13,13, 0,11,11, 0,12,12, 0,12, - 12, 0,12,12, 0,15,15, 0,12,12, 0,13,13, 0,15,14, - 0,12,12, -}; - -static const static_codebook _44p4_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p4_p4_0, - 0 -}; - -static const long _vq_quantlist__44p4_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p4_p4_1[] = { - 4, 5, 5, 9, 9,12, 9, 9,12,12,12,10,10,13,13,13, - 11,11,12,12,13,13,13,12,12,13,10,10,13,13,13,13, - 13,13,13,13,10,10,13,12,13,11,11,13,13,13,14,14, - 13,12,13,10,10,13,13,12,13,13,13,13,13,10,10,12, - 12,13,11,11,13,13,13,14,14,12,12,13,12,12,13,13, - 13,13,13,13,13,13,11,11,12,12,13,11,11,13,13,13, - 14,14,12,12,13,14,14,13,13,14,13,13,14,14,14,14, - 14,12,12,13,14,14,13,13,14,14,14,12,12,12, 8, 8, - 12,12,13,12,12,11,11,13,11,11,11,11,14,12,12,11, - 11,14,12,12,10,11,14,12,12,12,12,14,12,12,12,12, - 13,13,13,11,11,14,12,12,11,11,14,12,12,12,12,14, - 12,12,12,12,14,12,12,12,12,14,13,13,11,11,14,12, - 12,11,11,14,12,12,12,12,14,13,13,12,12,14,12,12, - 12,12,14,13,13,11,11,14,12,12,11,11,14,13,13,11, - 11,15,13,13,12,12,14,12,12,12,12,15,13,13,12,12, - 14,12,12,11,11,15,13,13,11,11,12, 9, 9,11,11,13, - 7, 7,11,11,13, 8, 8,12,12,14,10,10,10,10,14,14, - 14,11,11,14, 8, 8,12,12,14,14,14,12,12,14, 7, 7, - 11,11,14, 9, 9,12,12,14,14,14,11,11,14, 8, 8,12, - 12,14,14,14,12,12,14, 7, 7,11,11,14, 9, 9,12,12, - 14,14,14,11,11,14,10,10,12,12,14,14,14,13,13,14, - 9, 9,11,11,14,10,10,12,11,15,14,14,11,11,14,15, - 15,12,12,15,14,14,14,14,15,14,14,11,11,15,14,14, - 12,12,15,14,14,11,11,14,11,11,10,10,15,10,10,10, - 10,15,10,10,10,10,15,11,11, 9, 9,15,12,13, 9, 9, - 15,11,11,11,11,15,13,13,11,11,15,10,10,10,10,15, - 11,11,10,10,15,13,13,11,11,15,11,11,11,11,15,13, - 13,11,11,15,10,10,10,10,15,11,11,10,10,15,13,13, - 10,11,15,12,12,11,11,15,13,13,11,10,15,11,11,10, - 10,15,11,12,10, 9,15,13,13,10,10,15,14,14,11,11, - 15,13,13,11,11,15,14,14,10,10,15,13,13,10,10,15, - 14,14,10,10,14,13,13,10,10,15,13,13,10,10,15,13, - 13,10,10,14,14,14, 8, 9,15,14,14, 9, 9,15,14,14, - 11,11,15,14,14,10,10,15,14,14,10,10,15,14,14,11, - 11,15,14,14,10,10,15,14,14,11,11,15,14,14,10,10, - 15,14,14,10,10,15,14,14,10,10,15,14,14, 9, 9,15, - 14,14,11,11,15,14,14,11,11,15,14,14,10,10,15,14, - 14,10,10,14,14,14, 9, 9,15,15,15,11,11,15,14,14, - 12,12,15,15,15,10,10,15,14,15,10,10,15,15,15, 9, - 9,15,10,10,13,13,17, 8, 8,12,12,17,10, 9,13,13, - 18,11,11,12,12,18,14,14,12,12,17, 9, 9,13,13,17, - 13,13,12,12,18, 8, 8,12,12,18,10,10,12,12,18,14, - 14,12,12,18,10,10,13,13,18,13,13,13,13,18, 9, 9, - 12,12,18,10,10,13,13,18,14,14,12,12,18,11,11,13, - 13,18,14,14,13,13,18,10,10,12,12,17,11,11,12,12, - 18,14,14,12,12,18,14,14,13,13,18,14,14,13,13,19, - 14,15,12,12,18,14,14,12,12,18,15,15,12,12,13, 7, - 7,11,11,14,15,15,11,11,14,16,15,11,11,14,15,15, - 11,11,14,15,15,11,11,14,15,15,11,12,14,15,15,12, - 12,13,15,15,11,11,14,15,15,11,11,15,15,15,12,12, - 14,15,15,12,12,14,16,16,12,12,14,15,15,11,11,14, - 15,15,11,11,15,15,15,12,12,15,15,15,12,12,14,15, - 15,12,12,14,15,15,11,11,14,15,15,11,11,15,14,15, - 12,12,15,15,15,12,12,15,16,16,12,12,15,15,15,12, - 12,14,15,15,12,12,15,15,15,12,12,13,13,13,11,11, - 14,14,15,11,11,14,14,14,12,12,14,15,15,10,10,15, - 15,15,11,11,14,15,15,12,12,14,14,14,11,11,14,15, - 15,11,11,14,15,15,12,12,15,15,15,11,11,14,15,15, - 12,12,14,14,15,11,11,14,15,15,11,11,14,15,15,12, - 12,15,15,15,11,11,15,15,15,12,12,14,15,15,12,12, - 14,15,15,10,10,14,15,15,11,11,15,15,15,10,10,15, - 15,15,12,12,15,15,15,14,14,15,15,15,11,11,15,15, - 15,11,11,15,15,15,11,11,14,10,10,10,10,15, 9, 9, - 12,11,15,10,10,12,12,15,11,11,11,11,15,13,13,12, - 12,16,10,10,12,12,15,13,13,12,12,15, 9, 9,11,11, - 15,10,10,13,12,15,13,13,11,11,15,10,10,12,12,15, - 13,13,12,12,15, 9, 9,11,11,15,10,10,12,12,15,13, - 13,11,11,15,11,11,12,12,15,13,13,13,13,15,10,10, - 11,11,15,11,11,12,12,15,13,14,11,11,15,14,14,13, - 13,16,14,14,20,19,15,14,14,11,11,15,13,14,12,12, - 15,14,14,11,11,14,13,13,10,10,14,14,13,11,11,15, - 13,14,12,12,15,14,14,12,12,15,14,14,11,11,15,14, - 14,12,12,15,15,14,13,13,15,14,14,11,11,15,14,14, - 11,11,15,14,14,13,13,15,14,14,12,12,15,14,14,13, - 13,15,14,14,11,11,15,14,14,11,11,15,14,14,13,13, - 15,14,14,12,12,15,14,14,12,12,15,14,14,12,12,15, - 14,14,11,11,15,15,15,12,12,15,15,15,13,13,16,14, - 14,12,12,15,15,15,13,13,15,15,15,12,12,15,15,15, - 12,12,14,10,10,13,13,17, 9, 9,12,12,17, 9, 9,13, - 13,17,11,11,12,12,18,14,14,12,12,18,10,10,13,13, - 18,14,13,12,12,18, 9, 9,12,12,18,10,10,12,13,18, - 14,14,12,12,17, 9, 9,12,12,17,13,14,12,12,17, 9, - 9,12,12,17,10,10,12,12,17,14,14,11,11,18,11,11, - 12,12,18,14,14,12,13,18,10,10,12,12,18,11,11,12, - 12,18,14,14,11,11,18,15,15,12,12,18,14,14,13,13, - 18,14,15,12,12,17,14,14,12,12,17,15,15,12,12,13, - 7, 7,11,11,14,15,15,11,11,14,15,15,11,11,14,15, - 15,11,11,14,15,15,11,11,14,15,15,11,11,14,15,15, - 12,12,14,15,15,11,11,14,15,15,11,11,15,15,15,12, - 12,14,15,15,11,11,14,15,15,12,12,14,15,15,11,11, - 15,15,15,11,11,15,15,15,12,12,14,15,15,12,12,14, - 15,16,12,12,14,15,15,11,11,14,15,15,11,11,15,15, - 15,12,12,15,15,15,12,12,15,16,16,12,12,15,15,15, - 12,12,15,15,15,12,12,15,15,15,12,12,13,13,13,12, - 12,14,14,14,11,11,14,14,14,12,12,14,14,14,10,10, - 15,15,15,11,11,14,15,15,12,12,14,14,14,11,11,14, - 15,15,11,11,14,14,14,12,12,15,15,14,11,11,14,15, - 15,12,12,14,14,14,11,11,14,15,15,11,11,14,14,14, - 11,11,15,14,14,10,10,14,15,15,12,12,14,14,14,12, - 12,14,15,15,10,10,14,15,15,11,11,15,15,15,10,10, - 15,15,15,12,12,15,14,14,13,13,15,15,15,10,10,15, - 14,14,11,11,15,15,15,10,10,14,10,10,10,10,14, 9, - 9,12,12,15,10,10,12,12,14,11,11,11,11,15,13,14, - 12,12,15,10,10,13,13,15,13,13,12,12,15, 9, 9,12, - 12,15,10,10,13,13,15,13,14,11,11,15,10,10,12,12, - 15,13,13,12,12,15, 9, 9,11,11,15,10,10,12,12,15, - 13,13,11,11,15,11,11,12,12,15,13,13,13,13,15,10, - 10,11,11,15,11,11,12,12,15,14,14,11,11,15,14,14, - 13,13,15,14,14,20,19,15,14,14,11,11,15,14,14,12, - 12,15,14,14,11,11,14,13,13,11,11,15,13,13,11,11, - 15,14,13,12,12,15,14,14,11,12,15,14,14,11,11,15, - 14,14,12,12,14,14,14,13,13,15,14,14,11,11,15,14, - 14,11,11,15,14,14,13,13,15,14,14,12,12,15,14,14, - 13,13,14,14,14,11,11,15,14,14,11,11,15,14,14,13, - 13,15,14,14,12,12,15,14,14,12,12,15,14,14,12,12, - 15,14,14,11,11,14,14,14,12,12,15,15,15,13,13,16, - 14,14,12,12,15,15,15,13,13,15,14,14,12,12,15,15, - 15,12,12,15,11,11,13,13,18,10,10,12,12,17,11,11, - 12,12,18,12,12,11,11,18,14,14,12,12,18,10,10,13, - 13,18,14,14,12,12,18,10,10,12,12,18,11,11,12,12, - 18,14,14,12,12,18,11,11,12,13,18,14,14,12,12,18, - 10,10,12,12,18,11,11,12,12,18,14,14,11,11,18,11, - 11,12,12,18,14,14,12,12,17,10,10,11,11,17,12,12, - 11,11,17,14,14,11,11,18,15,15,12,12,18,14,14,13, - 13,18,15,15,11,11,18,15,14,12,12,18,15,15,11,11, - 14, 8, 8,11,11,14,15,15,10,10,14,15,15,11,11,14, - 15,15,11,11,15,15,15,12,12,15,15,15,11,11,15,15, - 15,12,12,14,15,15,10,10,15,15,15,11,11,15,15,15, - 12,12,15,15,15,11,11,15,15,15,13,13,14,15,15,10, - 10,15,15,15,11,11,15,15,15,12,12,15,15,15,12,12, - 15,16,16,12,12,15,14,14,11,11,15,15,15,11,11,15, - 15,15,12,12,16,15,15,13,13,15,16,16,13,13,16,15, - 15,12,12,15,15,15,12,12,15,15,15,12,12,14,13,13, - 11,11,14,14,14,11,11,14,14,14,12,12,15,14,14,11, - 11,15,15,14,11,11,15,14,14,12,12,15,14,14,12,12, - 14,15,15,11,11,15,14,14,12,12,15,14,14,11,11,15, - 14,15,12,12,15,14,14,12,12,14,15,15,11,11,15,14, - 14,11,11,15,14,14,11,11,15,15,14,12,12,15,14,14, - 12,12,15,15,15,10,11,15,14,14,11,11,15,15,15,10, - 10,15,15,15,12,12,16,14,14,13,13,15,15,15,11,11, - 15,14,14,11,11,15,15,15,11,11,14,11,11, 9, 9,14, - 10,10,12,12,15,11,11,12,12,15,12,12,12,12,15,14, - 14,13,13,15,11,11,12,12,15,14,14,13,13,14,10,10, - 12,12,15,11,11,13,13,15,14,14,12,12,15,10,10,12, - 12,14,14,14,13,13,14,10,10,11,11,15,11,11,12,12, - 15,14,14,12,12,15,12,12,13,13,15,14,14,14,14,15, - 11,11,11,11,15,12,11,12,12,15,14,14,11,11,15,15, - 15,13,14,15,14,14,20,19,15,14,14,12,12,15,14,14, - 13,13,15,14,14,12,12,14,13,13,10,10,14,13,13,11, - 11,14,13,13,11,11,15,14,14,12,12,15,14,14,12,12, - 15,14,14,12,11,14,14,14,13,13,15,14,14,11,11,15, - 14,14,11,11,15,14,14,14,14,15,14,14,11,12,15,14, - 14,13,13,14,14,14,11,11,15,14,14,11,11,15,14,14, - 14,14,15,14,14,12,12,15,14,14,13,13,15,14,14,11, - 11,14,14,14,12,12,15,14,14,13,13,15,15,15,13,13, - 15,14,14,13,13,15,15,15,13,13,15,14,14,13,13,15, - 15,15,13,13,15,14,14,13,13,18,15,15,12,12,18,15, - 15,12,12,18,16,16,11,11,18,17,17,12,12,18,15,15, - 13,13,18,17,17,12,12,18,15,15,12,12,18,15,16,12, - 12,18,17,17,12,12,18,15,15,13,12,17,16,17,12,12, - 17,15,15,11,12,18,15,15,12,12,18,17,17,11,11,18, - 16,16,12,12,18,17,16,12,12,18,15,15,11,11,18,15, - 15,12,12,18,17,17,11,11,18,17,17,12,12,18,16,16, - 13,13,18,17,17,11,11,17,16,16,11,11,18,17,17,11, - 11,15,15,15,11,11,16,15,15,11,11,16,15,15,11,11, - 16,15,15,12,12,17,15,15,14,14,16,15,15,11,11,17, - 15,15,14,14,16,15,15,11,11,16,15,15,12,12,18,15, - 15,13,13,16,15,15,11,11,17,15,15,14,14,16,15,15, - 11,11,16,15,15,12,12,17,15,15,13,13,16,15,15,12, - 12,17,16,15,14,14,16,15,15,11,11,16,15,15,12,12, - 18,15,15,13,13,17,15,15,14,14,17,16,16,15,15,18, - 14,15,13,13,18,15,15,14,14,18,15,15,13,13,15,13, - 13,12,12,15,14,14,12,12,16,14,14,12,12,16,14,14, - 12,12,17,14,15,12,12,16,14,14,12,12,17,14,14,13, - 13,16,15,15,12,12,16,14,14,12,12,17,14,14,12,12, - 16,14,14,12,12,17,14,14,13,13,15,15,15,11,11,16, - 14,14,12,12,17,14,14,12,12,16,15,15,12,12,17,14, - 14,13,12,16,15,15,11,11,16,14,14,12,12,17,15,15, - 11,11,17,15,15,13,13,17,14,14,13,13,18,15,15,12, - 12,17,14,14,12,12,17,15,15,12,12,14,15,15, 9, 9, - 14,15,15,12,12,15,16,15,13,13,15,15,15,14,14,15, - 15,15,21,19,15,15,15,13,13,15,15,15,19,19,15,15, - 15,12,12,15,16,16,14,14,15,15,15,19,19,15,16,15, - 13,13,15,16,16,19,20,15,15,15,12,13,15,16,16,14, - 14,15,15,15,20,19,15,15,15,14,14,15,16,16,19,19, - 15,15,15,14,13,15,15,15,14,14,15,15,15,19,19,15, - 16,16,20,19,15,17,16,21,20,15,15,15,20,19,15,16, - 16,20,20,15,15,15,19,20,14,13,13,10,10,14,14,14, - 11,11,14,14,14,12,12,15,14,14,13,13,15,15,14,20, - 20,15,14,14,12,12,14,14,14,19,19,15,14,14,11,11, - 15,14,14,12,12,15,14,14,20,19,15,14,14,12,12,14, - 14,14,20,20,14,14,14,11,11,15,14,14,12,12,15,14, - 14,20,21,15,14,14,13,13,15,14,14,20,20,15,14,14, - 12,12,15,14,14,13,13,14,15,15,20,20,15,15,15,20, - 19,15,14,14,20,19,15,15,15,20,20,15,14,14,21,20, - 15,15,15,20,20, -}; - -static const static_codebook _44p4_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p4_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p4_p4_1, - 0 -}; - -static const long _vq_quantlist__44p4_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p4_p5_0[] = { - 1, 7, 6,15,15, 7, 8, 8,15,15, 8, 8, 8,15,15, 0, - 13,13,16,16, 0,14,14,16,16, 7, 9, 9,16,16,10,11, - 11,17,17,10, 8, 8,15,16, 0,14,14,18,18, 0,14,14, - 16,16, 9, 9, 9,16,16,12,11,11,17,17,10, 9, 9,15, - 15, 0,14,14,19,19, 0,14,14,16,16, 0,15,15,18,17, - 0, 0, 0,20,20, 0,13,13,16,16, 0,17,17,22,20, 0, - 15,15,17,17, 0,15,15,18,18, 0,22,21,20,21, 0,13, - 13,16,16, 0,18,18, 0,22, 0,15,15,17,17, 6, 7, 7, - 13,13, 9,10,10,15,15,11,10,10,15,15, 0,21,22,18, - 18, 0, 0, 0,18,18,10,10,10,15,15,12,13,13,17,17, - 12,11,11,15,15, 0,22,22,18,18, 0, 0,21,18,18,12, - 11,11,15,15,15,14,14,18,18,13,11,11,15,15, 0, 0, - 21,18,19, 0,21,22,18,19, 0,22, 0,18,19, 0, 0, 0, - 0, 0, 0,21,21,18,18, 0,22, 0, 0,21, 0, 0, 0,19, - 18, 0, 0, 0,18,19, 0, 0, 0, 0, 0, 0,20,20,18,17, - 0, 0,22, 0,21, 0, 0, 0,19,19, 6, 6, 6,13,13, 8, - 6, 6,11,11, 9, 7, 7,13,13, 0,10,10,11,11, 0,12, - 12,14,14, 9, 8, 8,14,14,12,10,10,13,13,10, 7, 7, - 13,13, 0,11,11,15,15, 0,11,11,13,13, 9, 8, 8,14, - 14,13,10,10,13,14,11, 7, 7,13,13, 0,11,11,15,15, - 0,11,11,13,13, 0,12,12,15,15, 0,21,21,17,17, 0, - 10,10,13,13, 0,14,14,20,20, 0,12,12,13,13, 0,12, - 12,15,15, 0,21,22,17,18, 0,10,10,13,13, 0,16,16, - 20,21, 0,12,12,13,13, 0,11,11,13,13, 0,12,12,16, - 16, 0,12,12,16,16, 0,16,16, 0,21, 0,17,18, 0, 0, - 0,12,12,15,15, 0,15,15,18,18, 0,12,12,16,16, 0, - 16,16,21,22, 0,17,17,22,21, 0,12,12,16,16, 0,15, - 15,19,19, 0,12,12,16,16, 0,16,16,22,22, 0,17,16, - 22, 0, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,15,15,21, - 20, 0,19,20, 0,22, 0,18,18, 0, 0, 0,18,17, 0, 0, - 0, 0, 0, 0, 0, 0,16,16,22,21, 0,20,20, 0,22, 0, - 20,19, 0, 0, 0,11,11,12,12, 0,10,10,11,11, 0,11, - 11,12,12, 0,12,12,10,10, 0,13,13,12,12, 0,11,11, - 13,13, 0,13,13,12,12, 0,10,10,12,12, 0,13,13,14, - 13, 0,12,12,12,12, 0,12,12,13,13, 0,14,14,13,13, - 0,10,10,12,12, 0,13,13,14,14, 0,13,12,12,12, 0, - 14,14,14,14, 0,21,21,16,16, 0,12,12,12,12, 0,16, - 16,20,21, 0,13,13,11,11, 0,14,14,14,14, 0,20,20, - 16,15, 0,12,12,12,12, 0,17,17,20,20, 0,13,13,11, - 11, 7, 8, 8,16,16,11,10,10,15,15,12,10,10,17,17, - 0,14,14,16,15, 0,15,15,17,17,11, 9, 9,16,16,14, - 12,12,17,17,13, 9, 9,16,15, 0,14,14,19,18, 0,14, - 14,16,16,12,10,10,17,18,16,13,13,17,18,14,10,10, - 16,16, 0,14,14,19,19, 0,14,15,17,17, 0,15,15,18, - 19, 0, 0, 0,20,20, 0,13,13,17,17, 0,17,18, 0,22, - 0,15,15,16,17, 0,15,15,18,18, 0, 0, 0,20,21, 0, - 14,14,17,17, 0,19,18, 0, 0, 0,16,16,17,17, 8, 7, - 7,14,14,12,11,11,15,15,13,11,11,15,15, 0, 0, 0, - 18,19, 0,21,20,18,18,12,10,11,15,16,14,13,13,18, - 18,14,11,11,15,15, 0,20,20,19,18, 0,20, 0,18,18, - 13,11,11,16,16,17,15,15,19,19,14,12,12,15,15, 0, - 21, 0,18,20, 0,22,22,18,19, 0,22,22,19,19, 0, 0, - 0, 0, 0, 0,21,22,19,18, 0, 0, 0, 0,21, 0, 0, 0, - 19,19, 0, 0,22,20,20, 0, 0, 0, 0, 0, 0,22, 0,18, - 18, 0, 0, 0, 0,22, 0, 0, 0,19,20,11,10,10,14,14, - 14,11,11,13,13,14,11,11,15,15, 0,14,13,12,12, 0, - 15,15,16,16,13,11,11,15,15,16,13,13,15,15,15,10, - 10,14,15, 0,14,14,16,16, 0,14,14,15,15,13,11,11, - 15,15,18,14,14,15,15,15,10,10,15,14, 0,14,14,16, - 16, 0,14,14,15,15, 0,15,15,17,16, 0,21,22,18,18, - 0,13,13,14,14, 0,18,17,20,21, 0,15,15,14,14, 0, - 15,16,16,17, 0, 0, 0,19,18, 0,13,13,15,14, 0,19, - 19, 0, 0, 0,15,15,14,14, 0,12,12,14,13, 0,13,13, - 16,16, 0,12,12,16,16, 0,16,16,22, 0, 0,17,18, 0, - 22, 0,13,13,16,16, 0,15,15,18,18, 0,12,12,16,16, - 0,16,16,22,22, 0,17,17, 0, 0, 0,13,13,17,17, 0, - 16,16,19,20, 0,12,12,17,17, 0,17,17,22, 0, 0,17, - 17,22,21, 0,18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, - 21,21, 0,19,19, 0, 0, 0,18,18, 0,22, 0,18,18, 0, - 22, 0, 0, 0, 0, 0, 0,16,16,22, 0, 0,20,20, 0, 0, - 0,19,18, 0, 0, 0,12,12,15,15, 0,12,12,15,14, 0, - 13,13,15,15, 0,14,14,14,14, 0,15,15,16,16, 0,13, - 13,15,16, 0,15,15,16,16, 0,12,12,15,15, 0,14,14, - 16,16, 0,14,14,15,15, 0,13,13,15,16, 0,15,15,16, - 16, 0,12,12,15,15, 0,15,15,17,17, 0,14,14,15,15, - 0,15,15,17,17, 0,21,21,19,19, 0,13,13,14,14, 0, - 17,17,22, 0, 0,14,14,15,15, 0,15,15,17,17, 0,22, - 0,18,20, 0,13,13,15,15, 0,18,18, 0,22, 0,15,15, - 14,15, 8, 8, 8,17,16,12,10,10,16,16,13,10,10,17, - 16, 0,15,15,17,17, 0,15,15,17,17,12,11,11,18,18, - 15,12,12,18,18,15,10,10,16,17, 0,14,14,18,18, 0, - 14,14,17,17,13,10,10,16,16,17,14,14,17,17,15,10, - 10,16,15, 0,15,15,19,20, 0,14,14,15,16, 0,16,16, - 19,19, 0, 0, 0,21,22, 0,13,13,17,17, 0,18,17, 0, - 21, 0,15,15,17,17, 0,15,15,18,19, 0, 0,22, 0,21, - 0,13,13,16,17, 0,19,19, 0,22, 0,16,15,16,16, 9, - 8, 8,14,14,12,11,11,15,15,13,11,11,15,15, 0,21, - 20,19,18, 0, 0, 0,19,18,12,11,11,16,15,15,13,13, - 17,18,14,11,11,15,15, 0,22,22,19,18, 0,22,21,18, - 18,14,11,11,15,15,17,14,14,18,18,15,12,12,15,15, - 0,22,22,20,19, 0, 0,21,18,18, 0, 0,22,20,20, 0, - 0, 0, 0, 0, 0,20,21,18,18, 0, 0, 0,21,21, 0, 0, - 0,20,19, 0,22,21,19,19, 0, 0, 0, 0, 0, 0, 0,22, - 17,18, 0, 0,22, 0,22, 0,22, 0,19,19, 0,11,11,15, - 15, 0,11,11,14,14, 0,12,12,15,15, 0,15,15,14,14, - 0,16,16,16,16, 0,12,12,16,16, 0,14,14,16,16, 0, - 11,11,15,15, 0,15,15,17,17, 0,15,15,15,15, 0,12, - 12,16,16, 0,14,14,15,15, 0,11,11,15,15, 0,15,15, - 17,17, 0,15,15,14,15, 0,16,16,17,17, 0, 0, 0,19, - 19, 0,14,14,15,15, 0,18,18,21, 0, 0,15,15,14,15, - 0,16,16,17,17, 0,21, 0,19,19, 0,14,14,15,15, 0, - 20,20,22, 0, 0,16,15,14,14, 0,12,12,13,13, 0,12, - 12,16,16, 0,12,12,16,16, 0,16,16,22,21, 0,18,17, - 21, 0, 0,13,13,16,16, 0,15,15,18,19, 0,12,12,16, - 16, 0,16,17,22, 0, 0,17,17, 0,22, 0,13,13,17,16, - 0,15,15,19,19, 0,12,12,16,16, 0,16,16,21,20, 0, - 17,16,22, 0, 0,18,18,22,21, 0, 0, 0, 0, 0, 0,15, - 16,21,21, 0,19,19, 0, 0, 0,18,17, 0, 0, 0,18,18, - 21, 0, 0, 0, 0, 0, 0, 0,16,16,22,22, 0,20,21, 0, - 0, 0,18,19, 0,22, 0,13,13,16,16, 0,12,12,15,15, - 0,13,13,16,16, 0,14,14,15,15, 0,15,15,17,17, 0, - 13,13,17,16, 0,15,15,17,17, 0,12,12,16,16, 0,15, - 15,17,17, 0,14,14,16,16, 0,13,13,16,17, 0,15,15, - 17,17, 0,12,12,16,16, 0,14,14,17,17, 0,14,14,16, - 16, 0,16,16,17,17, 0,21, 0,21,19, 0,13,13,16,16, - 0,17,17, 0, 0, 0,15,15,16,16, 0,16,15,18,18, 0, - 22, 0,20,20, 0,13,13,15,15, 0,18,18, 0, 0, 0,15, - 15,15,15, 0,12,12,17,17, 0,14,14,17,17, 0,14,14, - 17,17, 0,17,17,18,17, 0,17,17,19,18, 0,13,13,17, - 17, 0,16,16,18,18, 0,13,13,16,16, 0,17,17,19,19, - 0,16,16,17,17, 0,13,13,18,18, 0,17,17,18,18, 0, - 13,13,17,17, 0,17,17,19,19, 0,16,17,17,17, 0,17, - 17,19,19, 0,21, 0,21,19, 0,14,14,16,16, 0,20,19, - 0,21, 0,16,16,16,16, 0,17,18,19,19, 0, 0, 0, 0, - 21, 0,15,15,16,17, 0,21,20, 0, 0, 0,17,18,16,17, - 0, 9, 9,14,14, 0,14,14,15,16, 0,14,14,15,15, 0, - 0, 0,18,18, 0,21, 0,18,19, 0,12,12,15,15, 0,16, - 16,17,17, 0,14,14,14,14, 0,22, 0,19,18, 0,22, 0, - 17,18, 0,14,14,16,15, 0,18,18,19,18, 0,14,15,15, - 15, 0, 0,21,20,20, 0, 0, 0,18,18, 0,21,21,19,19, - 0, 0, 0, 0, 0, 0,21,21,18,18, 0,22, 0,20,20, 0, - 22, 0,19,19, 0,22, 0,19,20, 0, 0, 0, 0, 0, 0, 0, - 21,17,18, 0, 0, 0,22,22, 0, 0, 0,19,18, 0,18,20, - 16,16, 0,21,20,17,17, 0, 0,21,18,18, 0,22,21,18, - 18, 0, 0,22,19,19, 0,20,20,17,17, 0, 0, 0,18,18, - 0,19,20,17,17, 0,22, 0,19,21, 0,22,21,18,18, 0, - 20,19,17,18, 0, 0, 0,19,19, 0,20,20,17,17, 0,22, - 22,21,21, 0,20, 0,18,18, 0,22,22,18,18, 0, 0, 0, - 20,22, 0,20,20,16,16, 0, 0, 0,21, 0, 0,21,20,16, - 17, 0,22, 0,19,20, 0, 0, 0,21,20, 0,19,21,17,17, - 0, 0, 0, 0, 0, 0,21,21,17,17, 0,12,12,13,13, 0, - 14,14,16,16, 0,14,14,16,16, 0,18,18, 0, 0, 0,19, - 18,22, 0, 0,13,13,16,16, 0,16,16,18,18, 0,13,13, - 16,16, 0,17,18,21, 0, 0,18,18,21, 0, 0,13,13,16, - 16, 0,17,17,19,20, 0,13,13,16,17, 0,18,18,21, 0, - 0,18,18,21, 0, 0,18,19, 0,21, 0, 0, 0, 0, 0, 0, - 16,16,21,20, 0,20,20, 0, 0, 0,18,19, 0, 0, 0,18, - 18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0,22,22, - 0, 0, 0,19,19, 0, 0, 0,16,16,19,20, 0,17,16,22, - 21, 0,17,17,21,20, 0,19,18, 0,22, 0,19,19,22,22, - 0,16,15,22,22, 0,19,19, 0,21, 0,15,15,20,20, 0, - 18,19, 0,21, 0,18,18,22,22, 0,16,16,21,20, 0,20, - 19,21,22, 0,16,15,20,20, 0,19,19, 0,22, 0,18,18, - 21, 0, 0,19,18,21,22, 0, 0, 0, 0, 0, 0,16,16,19, - 21, 0,20,22, 0,22, 0,18,18,20,21, 0,19,18, 0,22, - 0, 0, 0,22, 0, 0,16,16,20,20, 0,21,21, 0, 0, 0, - 18,18,21, 0, 0,12,12,17,17, 0,15,14,17,17, 0,14, - 14,18,18, 0,17,17,17,18, 0,18,18,18,18, 0,13,13, - 18,18, 0,16,17,19,18, 0,13,13,16,17, 0,17,17,18, - 19, 0,17,17,17,17, 0,13,13,17,17, 0,17,18,18,18, - 0,13,13,16,16, 0,18,18,19,20, 0,16,17,17,16, 0, - 17,18,19,18, 0, 0, 0,22,21, 0,15,15,16,16, 0,20, - 20,21,22, 0,17,17,16,16, 0,16,17,18,18, 0, 0, 0, - 21,21, 0,15,15,16,16, 0,21,20, 0, 0, 0,17,17,16, - 16, 0,10,10,14,14, 0,14,14,15,15, 0,14,14,15,15, - 0,22, 0,18,18, 0, 0, 0,19,19, 0,13,13,15,16, 0, - 17,16,18,18, 0,14,14,15,15, 0,21,21,19,18, 0,22, - 21,18,17, 0,14,14,15,15, 0,18,18,19,18, 0,15,15, - 14,14, 0,22,21,19,19, 0,22,21,17,18, 0, 0, 0,19, - 19, 0, 0, 0, 0, 0, 0,20,22,17,17, 0, 0,22,22,20, - 0, 0, 0,19,18, 0,21,22,19,18, 0, 0, 0, 0, 0, 0, - 22,22,17,18, 0, 0, 0,21,22, 0, 0, 0,19,18, 0,20, - 20,17,17, 0,21,21,17,18, 0,21,22,18,18, 0,21, 0, - 18,18, 0,22, 0,19,19, 0,19,21,18,18, 0, 0,22,18, - 18, 0,22,21,17,17, 0,22, 0,20,20, 0, 0, 0,18,18, - 0,22,21,18,18, 0,21, 0,19,19, 0,20,21,17,17, 0, - 0,22,22,20, 0,21,22,17,17, 0, 0,21,19,18, 0, 0, - 0,21,21, 0,21,20,16,17, 0, 0, 0, 0, 0, 0,21, 0, - 17,17, 0,21, 0,19,20, 0, 0, 0,20,22, 0,20,20,17, - 17, 0, 0, 0, 0, 0, 0,21,21,17,17, 0,12,12,13,13, - 0,14,14,16,16, 0,14,14,16,16, 0,18,18,21, 0, 0, - 19,19,22, 0, 0,13,13,16,16, 0,16,16,18,18, 0,13, - 13,16,16, 0,18,18,21,22, 0,18,18, 0,22, 0,13,13, - 16,16, 0,17,17,20,18, 0,13,13,16,16, 0,19,18, 0, - 22, 0,18,18,22,21, 0,18,19, 0, 0, 0, 0, 0, 0, 0, - 0,16,16,21,21, 0,21,21, 0, 0, 0,18,19, 0, 0, 0, - 19,19,21, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0,20, - 20, 0, 0, 0,20,20, 0, 0, 0,16,16,21,20, 0,18,17, - 21,22, 0,17,18, 0,21, 0,18,19,22,22, 0,19,19, 0, - 22, 0,16,17,21,22, 0,20,19, 0, 0, 0,16,16,20,21, - 0,19,19, 0, 0, 0,19,19, 0,22, 0,17,17,21,21, 0, - 19,20, 0, 0, 0,16,16, 0,20, 0,19,20, 0,21, 0,18, - 18, 0,22, 0,19,20,22,22, 0, 0, 0, 0,22, 0,17,17, - 0,21, 0,21,21, 0, 0, 0,18,19,23,21, 0,20,19, 0, - 0, 0, 0, 0, 0, 0, 0,17,17, 0,20, 0, 0, 0, 0, 0, - 0,19,19,23,22, -}; - -static const static_codebook _44p4_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p4_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p4_p5_0, - 0 -}; - -static const long _vq_quantlist__44p4_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p4_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p4_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p4_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p4_p5_1, - 0 -}; - -static const long _vq_quantlist__44p4_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p6_0[] = { - 1, 7, 7, 7, 8, 8, 7, 8, 8, 7, 9, 9,11,11,11, 9, - 8, 8, 8, 9, 9,12,11,12, 9, 8, 8, 6, 7, 7,10,11, - 11,10,10,10,11,11,11,14,14,14,12,11,12,11,11,11, - 15,15,14,13,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, - 7, 7,12,10,10,10, 7, 6, 9, 8, 8,12,10,10,10, 6, - 6, 7, 8, 8,12,10,10,12,10,10,11,10,10,16,14,14, - 13,10,10,12,10,10,15,14,14,14,10,10, 7, 7, 7,13, - 11,11,13,11,11,12,11,11,16,14,14,14,12,12,12,11, - 11,18,15,15,14,12,12,10, 9,10,14,11,11,13,11,11, - 12,11,11,17,14,14,14,11,11,13,11,11,16,15,15,14, - 11,11, 7, 8, 8,13,11,11,12,10,10,12,10,10,16,14, - 13,13,10,10,12,10,10,17,14,14,14,10,10, 8, 7, 7, - 12,11,11,13,11,11,12,11,11,16,15,14,14,12,12,12, - 11,11,16,15,15,14,12,12,11,10,10,14,11,11,13,11, - 11,13,11,11,17,14,14,14,11,11,13,11,11,18,14,15, - 15,11,10, -}; - -static const static_codebook _44p4_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p4_p6_0, - 0 -}; - -static const long _vq_quantlist__44p4_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p6_1[] = { - 2, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, - 7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 7, 7, 8, 8, - 8, 8, 8, 8, 9, 8, 8, 9, 8, 9, 9, 8, 8,10, 8, 8, - 10, 9, 9,10, 8, 8, 6, 6, 6, 8, 6, 6, 8, 7, 7, 8, - 7, 7,10, 8, 8, 9, 7, 7, 9, 7, 7,10, 8, 8, 9, 7, - 7, 7, 7, 7,10, 8, 8,11, 9, 9,10, 9, 9,11, 9, 9, - 11, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 7, 7, 7,10, - 9, 9,10, 9, 9,10, 9, 9,11,10,10,10, 9, 9,11, 9, - 10,11,10,11,10, 9, 9, 9, 8, 8,10, 9, 9,10, 9, 9, - 11, 9, 9,11,10,10,11, 9, 9,11, 9, 9,11,10,10,11, - 9, 9, 8, 8, 8,11, 9, 9,11, 9, 9,11, 9, 9,12, 9, - 9,12, 8, 8,11, 9, 9,12, 9, 9,12, 8, 8, 8, 7, 7, - 10, 9, 9,10, 9, 9,10, 9, 9,11,11,11,11, 9, 9,11, - 10,10,11,11,11,11, 9, 9,10, 9, 9,11, 9, 9,11, 9, - 10,11,10,10,11,10,10,11, 9, 9,11,10,10,11,10,10, - 11, 9, 9, -}; - -static const static_codebook _44p4_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p4_p6_1, - 0 -}; - -static const long _vq_quantlist__44p4_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p4_p7_0 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p7_0, - 1, -513979392, 1633504256, 2, 0, - (long *)_vq_quantlist__44p4_p7_0, - 0 -}; - -static const long _vq_quantlist__44p4_p7_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p4_p7_1[] = { - 1, 9, 9, 7, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, - 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 7, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 6, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 5, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 5,10, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 8,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10, -}; - -static const static_codebook _44p4_p7_1 = { - 5, 243, - (char *)_vq_lengthlist__44p4_p7_1, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p4_p7_1, - 0 -}; - -static const long _vq_quantlist__44p4_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p4_p7_2[] = { - 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _44p4_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p4_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p4_p7_2, - 0 -}; - -static const long _vq_quantlist__44p4_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p4_p7_3[] = { - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p4_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p4_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p4_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p4_short[] = { - 3, 5,16, 9, 9,13,18,21, 4, 2,21, 6, 6,10,15,21, - 16,19, 6, 5, 7,10,13,16, 8, 6, 5, 4, 4, 8,13,16, - 8, 5, 6, 4, 4, 7,12,15,13,10, 9, 7, 7, 9,13,16, - 18,15,13,12, 9, 7,10,14,21,18,13,13, 7, 5, 8,12, -}; - -static const static_codebook _huff_book__44p4_short = { - 2, 64, - (char *)_huff_lengthlist__44p4_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p5_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p5_l0_0[] = { - 1, 4, 4, 8, 8,10,10,10,10, 9, 8,11,11, 4, 6, 5, - 8, 6,10,10,10,10,10, 9,10, 9, 4, 5, 6, 6, 9,10, - 10,10,10, 9,10, 9,10, 8, 9, 8, 9, 8, 9, 9,10, 9, - 11,10,12,10, 8, 8, 9, 8, 9, 9, 9, 9,10,10,11,10, - 12, 9,10,10,11,10,11,10,12,11,12,11,13,11, 9,10, - 10,10,11,10,11,11,12,11,12,11,12,11,12,12,12,12, - 13,12,13,12,13,12,13,13,11,12,12,12,12,12,12,12, - 13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,13, - 13,13,12,13,12,13,13,13,13,13,13,13,13,13,13,12, - 13,13,13,14,14,13,13,13,13,13,13,13,12,13,12,13, - 13,13,13,13,13,13,13,13,13, -}; - -static const static_codebook _44p5_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p5_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p5_l0_0, - 0 -}; - -static const long _vq_quantlist__44p5_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p5_l0_1[] = { - 4, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 4, 4, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p5_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p5_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p5_l0_1, - 0 -}; - -static const long _vq_quantlist__44p5_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_l1_0[] = { - 1, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const static_codebook _44p5_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44p5_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p5_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p5_lfe[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book__44p5_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p5_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p5_long[] = { - 3, 7,12,14,14,16,18,19, 6, 2, 4, 6, 8, 9,12,14, - 12, 3, 3, 5, 7, 8,11,13,13, 6, 4, 5, 7, 8,10,11, - 14, 8, 7, 7, 7, 7, 9,10,15, 9, 8, 7, 7, 6, 8, 9, - 17,11,11,10, 9, 8, 9, 9,19,14,13,11,10, 9, 9, 9, -}; - -static const static_codebook _huff_book__44p5_long = { - 2, 64, - (char *)_huff_lengthlist__44p5_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p5_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p1_0[] = { - 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, - 10, 8, 9,10, 8, 9,10, 9,10,12,10,11,11, 8,10,10, - 10,11,11, 9,11,11, 5, 8, 7, 8, 9, 9, 8,10, 9, 8, - 10,10, 9,11,11,10,11,11, 8,10, 9,10,11,11, 9,12, - 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9, 9, 9,10,11, - 9,11,11, 8,10, 9,10,11,11,10,11,11, 7, 9, 9, 9, - 10,11, 9,11,11, 9, 9,11,10,10,13,11,11,12, 9,11, - 11,11,12,13,11,13,12, 7, 9, 9, 9,11,11, 9,11,10, - 9,11,10,10,11,12,11,13,12, 9,11,11,11,12,13,11, - 13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10,10,11, - 11,10,11,11, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, - 9,10,11, 9,11,11, 9,11,11,11,11,13,11,13,12, 9, - 10,11,11,12,13,10,12,11, 7, 9, 9, 9,11,11, 9,11, - 10, 9,11,11,11,12,13,11,13,12, 9,11, 9,11,12,11, - 10,13,10, -}; - -static const static_codebook _44p5_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p5_p1_0, - 0 -}; - -static const long _vq_quantlist__44p5_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p5_p2_0[] = { - 4, 6, 6, 9, 9, 6, 7, 8,10,10, 6, 8, 7,10,10, 8, - 10,10,12,13, 8,10,10,13,12, 6, 7, 8,10,10, 7, 8, - 9,10,11, 8, 9, 9,11,11,10,10,11,12,14,10,11,11, - 14,13, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 9, 8,11, - 10,10,11,11,13,14,10,11,10,14,12, 9,10,10,12,12, - 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, - 14,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, - 10,13,12,13,13,14,14,15,12,13,12,15,12, 6, 7, 8, - 10,11, 8, 9,10,11,12, 8, 9, 9,11,12,10,11,12,13, - 14,10,11,11,14,13, 8, 9,10,11,12, 9,10,11,12,13, - 9,10,11,12,13,11,12,13,13,15,12,12,13,15,14, 8, - 9, 9,12,12, 9,10,11,12,13, 9,10,10,13,12,12,12, - 13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13, - 13,15,12,13,13,14,15,14,13,15,14,16,14,15,15,16, - 16,11,12,11,14,13,12,13,13,15,14,11,13,12,14,13, - 14,15,15,15,16,13,14,14,16,14, 6, 8, 7,11,10, 8, - 9, 9,11,12, 8,10, 9,12,11,10,11,11,13,14,10,12, - 11,14,13, 8, 9, 9,12,12, 9,10,10,12,13, 9,11,10, - 13,12,11,12,12,13,14,12,13,12,15,14, 8,10, 9,12, - 11, 9,11,10,13,12, 9,11,10,13,12,12,13,12,14,15, - 11,13,12,15,13,11,11,12,13,14,11,12,13,13,15,12, - 13,13,14,15,13,14,14,14,16,14,15,15,16,16,11,12, - 11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15, - 16,16,13,15,13,16,14, 9,10,11,12,14,11,11,12,13, - 15,11,12,12,13,14,13,14,15,15,17,13,14,14,15,16, - 11,11,12,13,15,12,12,13,14,16,12,13,13,14,15,14, - 14,16,15,17,15,15,15,16,17,11,12,12,14,14,12,13, - 13,15,16,12,13,13,15,15,15,15,15,16,17,14,15,15, - 16,16,14,14,15,15,17,14,15,15,15,17,15,15,16,16, - 17,16,16,17,16,18,17,17,17,18,18,14,15,14,16,16, - 15,15,16,17,17,14,15,15,17,16,17,17,17,18,18,16, - 16,16,17,17, 9,11,10,14,12,11,12,12,14,13,11,12, - 11,15,13,13,14,14,16,15,13,15,14,17,15,11,12,12, - 15,14,12,13,13,15,15,12,13,13,15,15,14,15,15,16, - 16,15,15,15,17,16,11,12,11,15,13,12,13,13,15,14, - 12,13,12,16,14,15,15,15,17,16,14,15,14,17,15,14, - 14,15,16,16,14,15,15,16,16,15,16,15,17,17,16,16, - 16,17,17,17,17,17,18,17,14,15,14,16,15,15,15,15, - 17,16,15,15,15,17,15,17,17,17,18,18,16,17,16,18, - 16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, - 10,11,11,13,14,10,12,11,14,13, 7, 9, 9,11,12, 9, - 10,10,12,13, 9,10,10,13,13,11,11,12,13,15,11,12, - 12,15,14, 8, 9, 9,12,11, 9,11,10,13,13, 9,11,10, - 13,12,12,13,12,14,15,11,13,12,15,13,10,11,12,13, - 14,11,12,12,13,15,12,12,13,14,15,13,13,14,14,16, - 14,15,15,16,16,11,12,11,14,13,12,13,13,15,14,11, - 13,12,15,13,14,15,15,15,16,13,14,14,16,14, 7, 9, - 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12,12, - 14,15,11,12,12,15,14, 9, 9,11,11,13,10,10,12,12, - 14,10,11,12,13,14,12,12,13,14,16,12,13,13,15,15, - 9,11,10,13,13,10,12,12,13,14,10,12,11,14,13,12, - 13,13,15,16,12,13,13,15,14,11,11,13,13,15,12,12, - 14,13,16,13,13,13,14,15,14,14,15,14,17,15,15,15, - 16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,16, - 14,15,15,16,16,17,14,15,14,17,15, 7, 9, 9,12,11, - 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,14,11, - 13,12,15,14, 9,10,10,13,12,10,10,11,12,13,10,12, - 11,14,13,12,12,13,13,15,12,14,13,16,15, 9,10,10, - 13,12,11,11,12,13,13,10,12,10,14,12,13,13,13,15, - 15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15, - 13,14,13,15,15,14,13,15,13,16,15,16,15,17,16,12, - 13,12,14,14,13,14,14,15,15,12,13,12,15,14,15,15, - 16,16,17,14,15,13,16,13,10,11,12,13,14,11,12,13, - 14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16, - 16,12,12,13,12,15,12,12,14,13,16,13,13,14,14,16, - 14,14,16,15,17,15,15,16,16,17,12,13,13,15,15,13, - 14,14,16,16,13,14,13,16,15,15,16,16,17,17,14,15, - 15,17,16,14,14,15,14,17,15,15,16,15,17,15,15,16, - 15,17,16,16,17,16,18,17,17,17,17,18,14,15,15,17, - 16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18, - 16,17,16,18,17,10,12,11,14,14,12,13,13,15,15,12, - 13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,13, - 12,15,14,12,13,13,15,15,13,14,13,16,14,15,15,15, - 16,16,15,16,15,17,16,12,13,13,15,15,13,14,14,16, - 16,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16, - 14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,16, - 16,16,16,17,17,18,17,18,17,14,15,15,17,16,15,16, - 16,17,17,15,16,15,17,16,17,17,18,18,18,16,17,16, - 18,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, - 11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, - 9,10,11,12,13, 9,10,11,13,13,11,12,13,13,15,12, - 12,12,15,14, 7, 9, 9,12,11, 9,10,10,13,13, 9,10, - 10,13,12,11,12,12,14,15,11,12,11,15,13,11,11,12, - 13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14, - 16,14,15,15,16,16,10,12,11,14,13,12,13,12,14,14, - 11,12,12,15,13,14,15,15,16,16,13,14,13,16,14, 7, - 9, 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12, - 13,14,15,11,12,12,14,14, 9,10,10,12,13,10,10,12, - 12,14,11,12,11,13,13,12,12,14,13,15,13,13,13,15, - 15, 9,10,10,12,13,10,11,12,13,14,10,11,10,13,12, - 13,13,14,15,16,12,13,12,15,13,12,13,13,14,14,12, - 12,13,14,15,13,14,14,15,15,14,13,15,13,16,15,16, - 15,17,16,11,12,12,14,14,13,13,14,15,15,12,13,12, - 15,14,15,15,16,16,17,14,14,13,16,13, 7, 9, 9,12, - 11, 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,15, - 11,12,12,15,14, 9,10,11,13,13,10,11,12,13,14,10, - 12,12,14,13,12,13,13,14,16,12,13,13,16,15, 9,11, - 9,13,11,10,12,11,13,13,10,12,10,14,12,12,13,13, - 15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14, - 15,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16, - 11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15, - 15,15,16,16,14,15,14,17,14,10,11,12,14,14,12,12, - 13,14,15,12,13,13,15,15,14,15,15,16,17,14,15,15, - 16,16,12,12,13,15,15,13,13,14,15,16,13,14,14,16, - 16,15,15,16,16,17,15,16,16,17,17,11,12,13,14,15, - 13,13,14,15,16,12,13,13,15,15,15,15,16,16,17,15, - 15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16, - 16,17,17,16,16,17,16,18,17,17,17,18,18,14,15,15, - 16,16,15,16,16,16,17,15,15,15,16,16,17,17,17,18, - 18,16,16,16,17,16,10,12,11,14,13,12,13,13,15,15, - 11,13,12,15,14,14,15,15,16,16,14,15,14,17,15,12, - 13,13,15,15,13,13,14,16,16,13,14,14,16,16,15,15, - 15,16,17,15,16,16,17,17,12,13,12,15,12,13,14,13, - 16,14,12,14,12,16,13,15,16,15,17,16,14,16,14,17, - 15,14,15,15,16,17,15,15,16,17,17,15,16,16,17,17, - 16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15, - 16,15,17,15,15,16,15,17,15,17,17,17,18,17,16,17, - 16,18,16, 9,11,11,14,14,11,12,12,14,14,11,12,12, - 15,14,13,14,14,16,16,13,15,14,16,16,10,11,12,14, - 14,11,12,13,15,15,12,13,13,15,15,13,14,15,16,17, - 14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12, - 13,13,15,15,14,15,15,16,16,14,15,15,17,16,12,13, - 14,15,16,13,14,14,15,16,13,14,15,16,16,15,15,16, - 16,18,16,16,16,18,17,14,14,14,16,15,15,15,15,17, - 16,14,15,15,17,16,16,17,17,18,17,16,16,16,18,16, - 10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13, - 14,15,16,17,14,15,15,17,16,11,12,13,14,15,12,12, - 14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16, - 17,17,12,13,13,15,15,13,14,14,16,16,13,14,13,16, - 15,15,16,15,17,17,15,16,15,17,16,13,13,15,14,17, - 14,13,16,15,17,15,14,16,15,17,15,15,17,16,18,16, - 16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, - 15,17,16,17,17,17,18,18,16,17,16,18,17,10,12,11, - 14,14,11,12,13,15,15,12,13,12,15,15,14,15,15,16, - 16,14,15,15,17,16,11,12,12,15,15,12,13,13,15,15, - 13,14,13,16,15,14,15,15,16,16,15,16,15,17,16,11, - 13,13,15,15,13,14,14,15,15,12,14,13,16,15,15,16, - 15,17,17,15,16,15,17,16,13,15,14,16,16,14,15,14, - 16,16,15,16,15,17,16,15,16,16,16,17,16,17,16,18, - 17,14,15,15,16,16,15,16,16,17,17,15,15,15,17,16, - 17,17,17,18,18,16,16,16,18,16,12,13,13,15,16,13, - 14,14,15,16,13,14,14,16,16,15,15,16,16,18,15,16, - 16,17,17,13,13,14,15,16,14,14,15,15,17,14,15,15, - 16,17,15,15,17,16,18,16,16,17,17,17,13,14,14,16, - 16,14,15,15,17,17,14,15,14,17,16,16,17,16,17,18, - 16,17,16,18,17,15,15,16,14,17,16,15,17,14,18,16, - 16,16,15,18,16,16,18,15,19,18,18,18,17,19,15,16, - 16,18,17,16,17,17,18,17,16,17,16,18,17,18,18,18, - 19,19,17,18,16,18,17,11,12,12,15,15,13,13,14,15, - 16,13,14,13,16,15,15,16,16,16,17,15,16,16,17,16, - 12,14,13,16,15,13,13,14,15,16,14,15,14,17,15,15, - 15,16,16,17,16,17,16,18,17,12,13,14,15,16,14,15, - 15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15, - 17,15,15,16,15,17,16,15,15,15,16,16,16,17,16,18, - 16,16,15,16,15,17,17,18,17,18,17,15,15,16,17,17, - 16,16,17,17,17,15,16,15,17,16,18,18,18,18,18,16, - 17,16,18,15, 9,11,11,14,14,11,12,12,14,15,10,12, - 12,15,14,13,14,15,16,16,13,14,14,16,16,11,12,12, - 14,15,12,12,13,15,15,12,13,13,15,15,14,15,15,16, - 17,14,15,15,16,16,10,12,12,14,14,12,13,13,15,15, - 11,13,12,15,15,14,15,15,16,17,13,15,14,16,16,14, - 14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, - 17,16,18,16,17,17,17,17,12,14,13,16,15,13,15,14, - 16,16,13,14,14,16,15,16,16,16,17,17,15,16,15,17, - 16,10,11,11,14,14,12,12,13,14,15,11,13,12,15,14, - 14,15,15,16,17,14,15,15,16,16,12,13,13,15,15,12, - 13,14,15,16,13,14,14,15,15,15,15,16,16,17,15,15, - 16,17,17,11,12,12,15,15,13,13,14,15,16,12,13,13, - 15,15,15,15,16,16,17,14,15,15,16,16,14,15,15,16, - 16,15,15,15,16,17,15,16,16,17,17,16,16,17,16,18, - 17,17,17,17,18,13,14,15,16,16,15,15,16,16,17,14, - 14,14,16,16,16,16,17,17,18,16,16,16,17,16,10,12, - 12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15, - 16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15, - 16,13,14,14,16,16,15,15,16,16,17,15,15,16,17,17, - 11,13,12,15,14,13,14,13,16,15,12,14,12,16,15,15, - 16,15,17,17,14,15,14,17,16,14,15,15,16,17,15,15, - 16,16,17,15,16,16,17,17,16,16,17,17,18,17,17,17, - 18,18,13,15,13,17,14,14,16,14,17,16,14,15,13,17, - 15,16,17,16,18,17,15,17,15,18,16,11,12,12,15,15, - 13,13,14,15,16,13,14,13,16,15,15,16,16,16,17,15, - 16,16,17,16,12,14,13,16,15,13,13,14,15,16,14,15, - 15,16,16,16,15,16,16,17,16,16,16,17,17,12,13,14, - 15,16,14,14,15,15,17,13,14,13,16,15,16,16,17,17, - 18,15,16,15,17,15,15,16,15,17,17,15,15,16,16,17, - 16,17,16,17,17,16,15,17,15,18,17,18,17,18,18,15, - 15,16,16,17,16,16,17,16,18,15,15,15,16,16,17,17, - 18,17,18,16,16,15,17,15,12,13,13,15,15,13,14,14, - 16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18, - 16,13,14,14,16,16,14,14,15,16,17,14,15,15,17,17, - 16,16,17,17,18,16,16,17,18,17,13,14,13,16,14,14, - 15,15,17,16,14,15,14,17,15,16,17,17,18,17,15,17, - 15,18,16,15,16,16,17,17,16,16,17,17,18,16,17,17, - 18,18,17,16,18,17,19,18,18,18,18,18,15,16,15,17, - 14,16,16,16,18,15,16,17,15,18,14,18,18,18,18,17, - 17,18,16,19,15, -}; - -static const static_codebook _44p5_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p5_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p5_p2_0, - 0 -}; - -static const long _vq_quantlist__44p5_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p3_0[] = { - 1, 5, 6, 5, 7, 8, 5, 8, 7, 5, 7, 8, 7, 8,10, 8, - 10,10, 5, 8, 7, 8,10,10, 7,10, 8, 6, 8, 9, 8,10, - 11, 9,10,10, 9,10,11,10,11,12,11,12,12, 9,11,10, - 11,12,12,10,12,11, 6, 9, 8, 9,10,10, 8,11,10, 9, - 10,11,10,11,12,11,12,12, 9,11,10,11,12,12,10,12, - 11, 6, 9, 9, 8,10,11, 9,11,10, 8,10,10,10,10,12, - 11,12,12, 9,11,10,11,12,12,10,12,11, 8,10,10,10, - 11,12,10,12,11,10,10,12,11,11,13,12,13,13,10,12, - 11,12,13,13,11,13,11, 7,10,10,10,11,12,10,12,11, - 10,12,11,11,11,12,12,14,13,10,12,12,12,14,14,11, - 13,11, 6, 9, 9, 9,10,11, 8,11,10, 9,10,11,10,11, - 12,11,12,12, 8,11,10,11,12,12,10,12,10, 7,10,10, - 10,11,12,10,12,11,10,12,12,11,11,13,12,13,13,10, - 11,12,12,13,14,11,12,11, 8,10,10,10,11,12,10,12, - 11,10,11,12,11,11,13,12,13,13,10,12,10,12,13,13, - 11,13,11, -}; - -static const static_codebook _44p5_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p5_p3_0, - 0 -}; - -static const long _vq_quantlist__44p5_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p3_1[] = { - 5, 6, 6, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 7, 8, 7, - 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, - 8, 9, 9, 8, 9, 9, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, - 8, 6, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 9, - 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, - 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 8, 9, 8, - 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, 8, - 9, 9, 6, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, - 8, 8, 9, 8, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 8, - 8, 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, - 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p5_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p5_p3_1, - 0 -}; - -static const long _vq_quantlist__44p5_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p4_0[] = { - 1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, - 10,10, 5, 8, 7, 9,10,10, 7,10, 7, 6, 8, 9, 9,10, - 12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, - 11,12,13,11,13,11, 6, 9, 8, 9,11,11, 9,12,10, 9, - 11,11,11,11,13,11,13,12, 9,11,10,12,13,13,11,13, - 11, 6, 9, 9, 8,10,11, 9,12,11, 9,10,11,10,10,12, - 11,13,13, 9,11,11,11,13,12,11,13,11, 8,10,10, 9, - 10,12,10,12,11,10,10,12,10,10,13,12,13,13,10,12, - 11,12,13,13,10,13,10, 7,10,10,11,11,13,11,14,11, - 10,12,11,11,11,13,13,14,13,10,12,12,14,14,14,11, - 14,11, 6, 9, 9, 9,11,12, 8,11,10, 9,11,11,11,11, - 13,11,12,13, 8,11,10,11,13,13,10,12,10, 7,10,10, - 11,11,14,11,13,11,10,12,12,11,11,14,14,14,14,10, - 11,12,13,13,14,11,13,11, 8,10,10,10,11,12, 9,12, - 10,10,11,12,11,10,13,12,13,13,10,12,10,12,13,13, - 11,13,10, -}; - -static const static_codebook _44p5_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p5_p4_0, - 0 -}; - -static const long _vq_quantlist__44p5_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p5_p4_1[] = { - 5, 7, 7,10,10, 7, 8, 9,10,11, 7, 9, 8,11,10, 9, - 10,10,11,11, 9,10,10,11,11, 7, 9, 9,10,10, 8, 9, - 10,10,11, 9,10,10,11,11,10,10,11,11,11,10,11,11, - 12,12, 7, 9, 9,10,10, 9,10,10,11,11, 8,10, 9,11, - 10,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11, - 10,10,11,11,11,11,11,11,11,11,11,11,12,11,12,11, - 12,11,12,12,10,10,10,11,11,10,11,11,11,11,10,11, - 10,11,11,11,12,11,12,12,11,12,11,12,11, 8, 9, 9, - 11,11, 9,10,10,11,12, 9,10,10,11,11,10,11,11,12, - 12,10,11,11,12,12, 9,10,10,11,11,10,10,11,11,12, - 10,11,11,12,12,11,11,12,12,12,11,12,12,12,12, 9, - 10,10,11,11,10,11,11,12,12,10,11,10,12,12,11,12, - 12,12,12,11,12,12,12,12,11,11,11,12,12,11,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12, 8, 9, 9,11,11, 9, - 10,10,11,11, 9,10,10,11,11,10,11,11,12,12,10,11, - 11,12,12, 9,10,10,11,11,10,10,11,12,12,10,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12, 9,10,10,11, - 11,10,11,11,12,12,10,11,10,12,11,11,12,12,12,12, - 11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, - 11,12,12,11,12,12,12,12,11,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,10,11,11,12,12,11,12,12,12, - 12,11,12,12,12,12,12,12,13,13,13,12,12,12,13,13, - 11,12,12,12,12,12,12,12,12,13,12,12,12,13,13,12, - 12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12, - 12,13,13,12,12,12,13,13,12,13,13,13,13,12,13,13, - 13,13,12,12,12,12,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, - 13,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12, - 11,12,12,12,12,12,13,12,12,12,12,13,13,11,12,12, - 12,12,12,12,12,13,13,12,12,12,13,13,12,13,13,13, - 13,12,13,13,13,13,11,12,12,12,12,12,12,12,13,13, - 12,12,12,13,12,12,13,13,13,13,12,13,12,13,13,12, - 12,12,12,13,12,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,12,12,12,13,12,13,13,13, - 13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13, 8, 9, 9,11,11, 9,10,10,11,11, 9,10,10,12,11, - 10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11,10, - 10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,12, - 12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11,10, - 12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, - 12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, - 10,11,11,10,10,11,12,12,10,11,11,12,12,11,11,12, - 12,12,11,12,12,12,12,10,10,11,11,12,11,11,12,12, - 12,11,11,12,12,12,11,11,12,12,13,12,12,12,12,12, - 10,11,11,12,12,11,12,11,12,12,11,12,11,12,12,12, - 12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12, - 12,12,12,12,12,12,12,13,12,12,13,12,13,12,12,13, - 13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,13,12,12,12,12,13,12, 8,10,10,11,11, - 10,11,11,12,12,10,11,10,12,12,11,12,12,12,12,11, - 12,12,12,12,10,11,10,12,12,10,10,11,12,12,11,12, - 12,12,12,12,12,12,12,13,12,12,12,13,13,10,11,11, - 12,12,11,12,12,12,12,10,12,11,12,12,12,12,12,13, - 13,12,13,12,13,12,11,12,12,12,12,11,12,12,12,13, - 12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,11, - 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, - 13,13,13,12,13,12,13,12,11,11,11,12,12,11,12,12, - 12,13,11,12,12,12,12,12,12,12,13,13,12,12,13,13, - 13,11,12,12,12,12,12,12,12,12,13,12,12,13,13,13, - 12,12,13,13,13,13,13,13,13,13,11,12,12,12,12,12, - 13,12,13,13,12,12,12,13,13,12,13,13,13,13,12,13, - 13,13,13,12,12,12,12,13,12,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,10,11,11,12,12,11,12,12,12,13,11, - 12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,12, - 12,12,12,12,12,12,13,13,12,13,12,13,13,13,13,13, - 13,13,13,13,13,13,13,11,12,12,13,12,12,13,12,13, - 13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13, 8, 9, 9,11,11, 9,10,10,11,12, 9,10,10,11, - 11,10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11, - 10,10,11,12,12,10,11,11,12,12,11,11,12,12,12,11, - 12,12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11, - 10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11, - 12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 8, - 10,10,11,11,10,10,11,12,12,10,11,11,12,12,11,12, - 12,12,12,11,12,12,12,12,10,11,11,12,12,10,11,12, - 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, - 13,10,10,11,12,12,11,12,12,12,12,10,11,10,12,12, - 12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,11, - 12,12,12,13,12,12,12,13,13,12,12,13,12,13,12,13, - 13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12, - 13,12,12,13,13,13,13,12,13,12,13,12, 9,10,10,11, - 11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12, - 11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, - 11,12,12,12,12,12,12,12,13,12,12,12,13,12,10,11, - 10,12,11,11,12,11,12,12,11,12,11,12,12,12,12,12, - 12,12,12,12,11,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,13,12,13,12,13,13,13,13, - 11,12,11,12,12,12,12,12,13,12,12,12,12,12,12,12, - 13,12,13,13,12,12,12,13,12,10,11,11,12,12,11,12, - 12,12,13,11,12,12,13,12,12,12,13,13,13,12,13,13, - 13,13,11,12,12,12,13,12,12,13,13,13,12,12,13,13, - 13,13,13,13,13,13,13,13,13,13,13,11,12,12,12,12, - 12,12,13,13,13,12,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13,12,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,13, - 13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, - 11,12,12,12,12,12,12,13,13,13,12,13,12,13,13,11, - 12,12,12,12,12,12,13,13,13,12,12,13,13,13,12,13, - 13,13,13,12,13,13,13,13,11,12,12,12,12,12,13,12, - 13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13, - 13,12,12,12,13,13,12,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,12,12,12,13,12,13, - 13,13,13,13,12,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12, - 12,12,12,12,12,13,13,12,12,12,13,13,11,12,12,12, - 12,11,12,12,13,13,12,12,12,13,13,12,12,13,13,13, - 12,13,13,13,13,11,12,12,12,12,12,12,12,13,13,12, - 12,12,13,12,12,13,13,13,13,12,13,12,13,13,12,12, - 12,12,12,12,12,13,13,13,12,13,13,13,13,12,13,13, - 13,13,13,13,13,13,13,12,12,12,13,12,12,13,13,13, - 13,12,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 10,11,11,12,12,11,12,12,12,13,11,12,12,13,12,12, - 12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12, - 13,13,13,12,12,12,13,13,12,12,13,13,13,12,13,13, - 13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13, - 13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,13, - 12,12,13,13,13,12,13,13,13,13,12,13,13,13,13,13, - 13,13,13,13,12,12,12,13,13,13,13,13,13,13,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,10,11,11, - 12,12,11,12,12,12,13,11,12,12,13,12,12,13,13,13, - 13,12,13,12,13,13,11,12,12,13,13,12,12,12,13,13, - 12,12,13,13,13,12,13,13,13,13,13,13,13,13,13,11, - 12,12,13,12,12,13,12,13,13,12,13,12,13,13,13,13, - 13,13,13,12,13,13,13,13,12,12,12,13,13,12,13,13, - 13,13,12,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11, - 12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12, - 12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12, - 13,13,12,12,13,13,13,12,13,13,13,13,11,12,12,12, - 12,12,12,12,13,13,12,12,12,13,12,12,13,13,13,13, - 12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, - 13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12, - 12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13, - 13,13,12,13,13,13,12,10,11,11,12,12,11,12,12,12, - 12,11,12,12,12,12,12,12,12,13,13,12,13,12,13,13, - 11,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12, - 12,13,13,13,13,13,13,13,13,11,12,12,12,12,12,13, - 12,13,13,12,13,12,13,13,12,13,13,13,13,12,13,12, - 13,13,12,12,12,12,12,12,13,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, - 12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13,10,11,11,12,12,11,12,12,12,12,11,12, - 12,12,12,12,12,12,13,13,12,12,12,13,13,11,12,12, - 12,12,12,12,12,13,13,12,12,12,13,13,12,12,13,13, - 13,12,12,13,13,13,11,12,11,12,12,12,12,12,13,13, - 11,12,12,13,13,12,13,13,13,13,12,13,12,13,13,12, - 12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,12,12,12,13,12,12,13,13, - 13,13,12,13,12,13,13,13,13,13,13,13,12,13,13,13, - 13,10,11,11,12,12,11,12,12,12,13,11,12,12,13,12, - 12,12,13,13,13,12,13,13,13,13,11,12,12,13,13,12, - 12,13,13,13,12,12,13,13,13,12,13,13,13,13,13,13, - 13,13,13,11,12,12,13,12,12,13,12,13,13,12,12,12, - 13,13,12,13,13,13,13,13,13,13,13,13,12,12,13,13, - 13,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,12,12,12,13,13,13,13,13,13,13,12, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,10,12, - 11,12,12,11,12,12,12,13,11,12,12,12,12,12,12,12, - 13,13,12,12,12,13,13,11,12,12,12,13,12,12,12,13, - 13,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, - 11,12,12,13,12,12,12,12,13,13,12,12,12,13,13,12, - 13,13,13,13,12,13,12,13,13,12,13,12,13,13,12,13, - 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,12,12,12,13,12,13,13,13,13,13,12,13,12,13, - 13,13,13,13,13,13,12,13,13,13,13,10,11,11,12,12, - 11,12,12,12,13,11,12,12,12,12,12,12,12,13,13,12, - 12,12,13,13,11,12,12,12,12,12,12,13,13,13,12,13, - 13,13,13,12,12,13,13,13,13,13,13,13,13,11,12,12, - 12,12,12,13,12,13,13,12,12,12,13,13,12,13,13,13, - 13,12,13,12,13,13,12,12,12,12,13,12,13,13,13,13, - 12,13,13,13,13,12,13,13,13,13,13,13,13,13,13,12, - 12,12,12,12,12,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,12,13,13,13,13,11,12,11,12,12,11,12,12, - 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, - 12,11,12,12,12,12,12,12,12,12,13,12,12,12,13,13, - 12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12, - 12,12,13,13,12,12,12,13,12,12,13,13,13,13,12,13, - 12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,13, - 13,13,13,13,13,12,13,13,13,13,13,13,12,12,12,12, - 12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13, - 13,13,13,13,12, -}; - -static const static_codebook _44p5_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p5_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p5_p4_1, - 0 -}; - -static const long _vq_quantlist__44p5_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p5_p5_0[] = { - 1, 6, 6,10,10, 6, 7, 9,11,13, 5, 9, 7,13,11, 8, - 11,12,13,15, 8,12,11,15,13, 6, 7, 8,11,11, 7, 8, - 10,11,13, 9,10,10,13,13,11,11,13,12,16,12,13,13, - 16,15, 6, 8, 7,11,11, 9,10,10,13,13, 7,10, 7,13, - 11,12,13,13,15,16,11,13,11,16,12,10,11,11,11,13, - 11,11,13,12,15,13,13,13,14,15,13,12,15,12,17,15, - 16,16,16,16,10,11,11,14,11,13,13,13,15,14,11,13, - 11,15,12,15,15,16,16,16,13,15,12,17,12, 6, 8, 9, - 12,12, 9,10,12,13,15, 9,11,11,15,14,12,13,15,16, - 18,13,14,14,17,16, 9,10,11,13,14,11,10,13,14,16, - 11,12,12,15,15,14,13,16,15,18,14,15,15,17,17, 9, - 11,11,14,14,11,12,13,15,16,11,13,11,15,14,15,15, - 15,17,18,14,15,14,17,15,13,14,14,15,16,14,14,15, - 15,17,15,16,15,17,17,16,16,17,15,19,17,18,18,19, - 18,13,14,14,16,15,15,15,16,17,17,14,15,14,18,15, - 17,17,17,19,19,16,17,15,19,16, 6, 9, 8,13,12, 9, - 11,11,14,15, 9,12,10,15,13,13,14,14,16,17,12,15, - 13,18,16, 9,11,11,14,14,11,11,13,14,15,11,13,12, - 16,15,14,14,15,15,18,14,15,15,18,17, 9,11,10,14, - 13,11,12,12,15,15,11,13,10,16,14,14,15,15,16,18, - 14,16,13,18,15,13,14,14,16,16,14,14,15,15,17,15, - 16,15,17,17,16,16,17,16,19,17,18,17,18,19,13,14, - 14,16,15,15,15,15,17,17,14,15,14,17,15,17,17,17, - 18,19,16,17,15,19,15,11,13,13,15,16,13,14,15,16, - 18,14,15,15,17,17,16,16,18,18,20,17,18,17,19,20, - 13,14,14,16,17,15,15,16,17,18,15,16,16,17,17,18, - 17,19,18,19,18,18,18,19,21,14,14,15,16,17,15,15, - 16,18,18,15,16,16,17,18,18,18,19,19,21,18,19,19, - 22,20,16,16,17,17,19,17,17,17,18,20,17,18,18,20, - 19,19,19,20,19, 0,19,19,20,20,21,17,17,17,19,18, - 18,18,20,19,19,18,18,18,20,20,19,19,20,20,20,20, - 21,20,21,19,11,13,13,16,15,14,15,15,17,17,14,15, - 14,18,16,16,18,18,20,19,16,19,17,21,18,13,14,15, - 16,17,15,15,16,18,18,15,16,15,19,18,18,18,18,19, - 19,18,18,18,22,20,13,14,14,16,16,15,16,16,18,17, - 15,16,15,18,17,18,18,18,19,19,17,18,17,21,18,16, - 17,17,18,18,17,18,19,19,19,18,20,18,19,19,19,20, - 21,19,21,20,20,20, 0,21,16,17,17,19,19,18,18,18, - 19,21,17,18,18,19,18,20,19,21,20,21,19,20,20,22, - 19, 7, 9, 9,13,13, 8,10,11,14,15, 9,12,11,15,14, - 11,13,14,16,17,13,15,14,17,16, 8,10,11,14,14,10, - 10,12,14,16,11,12,12,16,15,13,12,15,15,18,14,15, - 15,19,17, 9,11,11,14,14,11,12,12,15,15,11,13,11, - 16,14,14,15,14,17,17,14,16,14,18,15,12,13,14,15, - 16,13,13,15,14,17,15,15,15,17,17,15,14,17,14,19, - 17,18,18,19,18,13,14,14,16,16,15,15,15,17,17,14, - 15,14,18,15,17,18,17,18,17,16,18,16,19,15, 7,10, - 10,13,13, 9,10,12,14,15,10,12,11,15,14,12,13,14, - 16,17,13,15,14,18,16,10,10,12,13,14,10,10,13,13, - 16,12,12,13,15,15,13,12,15,15,18,15,15,16,18,17, - 10,11,11,14,14,12,13,13,15,16,10,13,10,16,14,14, - 15,15,17,17,14,15,13,17,15,13,13,14,15,16,14,13, - 15,14,18,15,15,16,16,17,16,15,18,15,18,17,18,18, - 18,18,13,15,14,17,16,15,16,16,17,17,14,15,13,17, - 15,17,17,18,18,18,16,17,14,20,14, 8,10,10,14,14, - 11,11,13,14,16,11,13,11,16,14,14,15,16,16,18,14, - 16,15,18,16,10,12,11,15,14,11,11,13,14,16,13,14, - 13,16,15,15,14,16,15,19,16,17,16,20,18,10,11,12, - 14,15,13,13,14,16,16,11,14,11,16,14,16,16,17,18, - 19,15,17,14,20,15,14,15,14,17,16,13,14,15,15,18, - 16,17,16,19,18,16,15,18,15,19,18,19,18,21,21,14, - 14,15,16,17,16,16,17,18,18,13,15,14,17,15,18,18, - 19,18,22,16,18,15,21,15,12,13,14,16,16,14,14,16, - 16,18,14,15,15,17,18,16,16,18,18,20,18,18,17,20, - 20,13,14,15,15,17,15,14,16,16,18,16,16,16,17,19, - 17,15,18,17,21,18,18,18,19,19,14,15,15,18,17,15, - 16,16,18,19,15,16,15,18,18,17,18,18,20,21,17,19, - 17,20,19,16,16,17,16,19,17,17,18,17,20,18,18,18, - 18,19,19,18,20,17,22,20,20,19,20,20,17,17,18,18, - 19,18,18,20,21,20,17,18,17,20,20,21,21,21,21,21, - 19,21,18,22,20,11,13,13,17,16,14,14,16,16,18,14, - 16,14,18,16,17,18,19,19,20,18,19,18,21,19,14,15, - 14,17,16,14,14,16,18,18,16,17,16,18,17,18,17,19, - 18,20,19,19,18,20,20,13,14,15,16,17,16,16,17,18, - 19,14,16,14,19,17,18,19,18,20,20,18,20,17,21,18, - 17,17,17,19,18,16,17,18,18,19,18,19,18,21,21,18, - 18,20,17,21,19,20,20,22,21,16,17,18,18,19,18,18, - 19,21,20,16,17,17,20,18,21,21,22,21,22,18,21,18, - 0,18, 7, 9, 9,13,13, 9,11,12,14,15, 8,11,10,15, - 14,13,14,15,16,18,11,14,13,17,15, 9,11,11,14,14, - 11,11,13,14,16,11,12,12,15,15,14,14,16,15,18,14, - 14,15,17,17, 8,11,10,14,14,11,12,12,15,15,10,12, - 10,16,14,14,15,15,17,18,13,15,12,18,15,13,14,14, - 16,16,14,14,15,15,17,15,15,15,16,17,16,15,17,15, - 19,17,17,17,18,18,12,14,13,16,15,15,15,15,17,17, - 13,15,13,17,14,17,18,18,18,19,15,17,14,19,14, 8, - 10,10,14,14,11,11,13,14,16,11,13,11,16,14,14,15, - 16,17,19,14,16,15,18,17,10,12,11,15,14,11,11,14, - 14,17,13,14,13,17,15,15,14,17,15,19,16,17,16,19, - 17,10,11,12,14,15,13,13,14,15,17,11,13,11,17,14, - 16,16,17,18,19,15,16,14,18,15,14,15,14,16,16,13, - 14,15,15,18,16,16,16,18,18,16,15,18,15,20,18,19, - 18,21,18,14,14,15,16,17,16,16,17,17,18,13,15,14, - 17,16,19,19,19,19,19,15,18,15,20,15, 7,10,10,13, - 13,10,11,12,14,15, 9,12,10,15,14,13,14,15,16,17, - 12,15,13,17,16,10,11,11,14,14,10,10,13,14,16,12, - 13,13,16,15,14,13,16,15,18,15,15,16,17,17,10,12, - 10,14,13,12,13,12,15,15,10,13,10,16,13,15,16,15, - 17,18,13,16,12,18,15,13,14,14,16,17,14,13,15,15, - 18,15,16,15,17,17,16,14,17,15,19,17,18,18,19,19, - 13,15,13,17,14,15,15,15,18,17,14,15,13,17,14,18, - 17,18,18,19,15,17,15,19,15,11,13,13,16,17,14,14, - 16,16,18,14,16,15,18,17,17,18,19,18,21,18,18,17, - 20,18,13,15,14,17,16,14,14,16,17,18,16,17,16,19, - 17,18,17,19,18,22,18,19,19,21,21,13,14,15,16,18, - 16,16,17,17,20,14,16,14,18,17,18,18,19,19,21,17, - 18,17,21,18,17,18,17,19,18,16,17,17,18,19,18,18, - 18,22,22,18,17,19,17, 0,20,21,19,21,20,17,17,18, - 18,21,18,18,18,19,21,17,17,17,19,19,20,20,22,21, - 21,19,20,18,20,17,12,14,13,17,16,14,15,15,17,18, - 14,16,14,18,16,17,18,18,21,20,16,18,16,21,18,14, - 15,15,17,17,15,15,16,18,18,15,17,16,18,18,17,17, - 19,19,20,18,19,18,20,19,14,15,14,17,15,15,16,16, - 18,17,15,16,14,19,15,18,18,18,19,20,17,20,15,21, - 17,16,17,18,18,19,17,17,18,18,20,18,19,18,19,21, - 19,18,19,19,21,20, 0,19,21,20,16,17,16,19,16,18, - 18,18,19,19,17,18,17,20,17,19,20,20,22, 0,19,20, - 17,21,17,11,13,14,16,17,14,15,15,17,18,14,15,15, - 18,18,16,17,17,19,20,16,18,17,19,21,13,14,15,17, - 17,14,15,16,17,19,15,16,16,18,19,16,17,18,19,21, - 17,18,20,21,21,13,15,15,17,17,15,16,16,18,19,15, - 16,16,18,19,17,17,18,19,22,17,19,18,22,19,15,16, - 17,19,19,16,17,18,18,20,17,18,18,19,20,19,18,20, - 18,22,20,19,19,22,21,16,17,17,18,19,18,18,18,19, - 20,17,18,18,20,19,20,19,20,22,20,19,20,21,21,20, - 12,14,14,16,16,13,14,16,17,18,14,16,15,18,18,15, - 17,17,19,19,17,18,18,19,19,13,14,15,16,17,14,14, - 16,16,20,15,16,16,17,19,16,15,18,17,20,18,17,19, - 19,19,14,15,15,17,17,16,16,16,18,18,15,16,15,19, - 18,17,18,18,20,21,17,18,17,21,18,16,15,17,17,19, - 17,15,18,17,20,19,17,18,19,20,18,16,19,17,22,20, - 19,20,19,20,17,17,18,19,19,18,18,19,20,20,17,18, - 17,18,18,21,21,20,20,21,18,20,17,21,19,11,14,14, - 16,17,15,14,16,17,19,14,16,14,18,17,18,18,19,19, - 21,17,19,18,20,20,13,15,14,17,17,14,14,16,17,18, - 16,17,16,19,18,18,17,19,18,20,18,21,18,20,20,13, - 15,15,16,17,16,16,17,18,19,14,16,15,19,18,19,19, - 19,21,20,18,19,17,20,18,16,17,16,19,18,16,17,17, - 19,20,17,19,18,20,19,18,17,21,18, 0,21,20,20, 0, - 20,17,17,18,18,19,18,19,19,20,22,16,17,17,20,18, - 21,22,20,20,22,18,22,18,22,18,12,14,14,17,17,14, - 15,16,17,19,14,16,15,17,17,17,17,18,18,21,17,19, - 17,20,19,14,15,15,16,18,15,14,16,16,19,16,17,16, - 19,18,17,16,20,17,20,18,20,19,19,20,14,15,15,18, - 17,16,16,17,18,19,14,16,15,19,17,18,21,18,19,21, - 17,18,17,19,18,17,17,18,17,20,17,16,18,17,21,18, - 19,19,19,19,18,17,19,17,20,20,21,20,21,20,17,17, - 17,19,19,19,18,18,20,21,16,18,16,19,18,20,20,21, - 21,20,18,19,16, 0,17,12,14,14,17,17,15,15,18,17, - 19,15,18,15,20,16,20,19,21,18,22,20,20,20,22,19, - 14,16,14,20,17,14,15,17,17,20,18,18,17,20,18,18, - 17,19,17,21,20,21,20, 0,21,14,15,16,17,19,18,17, - 19,18,21,14,18,15,21,17,21,20,21,20, 0,18,21,17, - 21,17,18,19,17,20,18,16,17,17,19,19,19,21,20, 0, - 20,18,17,21,17, 0,22, 0,21, 0,22,17,17,19,18,20, - 20,20,21,19,22,16,17,18,20,18,22,22, 0,22, 0,17, - 21,17,22,17,11,14,13,16,16,14,15,15,17,18,14,15, - 14,18,17,17,18,18,19,20,16,17,17,21,19,13,14,15, - 17,17,15,16,16,18,18,15,16,16,19,18,18,18,18,19, - 20,17,18,18,20,19,13,15,14,17,17,15,16,16,17,18, - 14,16,15,19,17,17,18,19,21,21,17,18,17,20,18,16, - 17,17,19,19,17,18,19,19,20,18,19,18,21,21,21,20, - 19,21,22,20,20,19,21,20,15,17,16,19,19,17,18,18, - 20,21,16,18,17,20,18,19,19,21,21,21,19,19,19,20, - 18,11,14,13,17,16,14,14,16,16,19,14,16,15,19,16, - 18,18,18,19,22,17,18,17,20,19,13,15,14,17,17,15, - 15,16,17,19,16,17,16,20,18,18,17,19,18,21,19,19, - 18,22, 0,13,14,15,17,18,16,16,17,17,19,14,16,15, - 19,18,18,19,19,20,21,18,18,17,20,18,17,18,17,20, - 18,16,17,17,18,20,18,19,18,20,20,18,18,21,17,21, - 20,21,21, 0,19,16,16,18,18,19,19,18,20,19,20,16, - 17,17,20,18,21,20,21,22,22,18,20,17,21,17,12,14, - 14,17,16,14,15,16,18,18,13,15,14,18,17,17,18,18, - 19,19,15,17,16,19,19,14,15,15,17,17,15,15,16,18, - 19,15,16,16,19,18,17,17,18,18,20,18,18,18,21,20, - 13,15,14,17,16,15,16,15,18,18,14,16,14,18,17,18, - 18,18,19,21,16,18,16,20,17,17,18,17,18,19,17,17, - 18,18,19,18,19,19,21,19,19,18,20,18,21,21,20,20, - 21,20,16,17,15,20,17,17,19,17,19,19,17,18,15,20, - 17,19,20,19,21,22,17,20,16, 0,17,12,14,14,17,18, - 16,15,18,16,20,16,18,15,21,17,20,18,21,19,22,19, - 21,19, 0,19,14,16,15,19,17,14,15,17,16,21,18,19, - 18,21,17,19,17,21,17,22,20,21,21, 0,21,14,15,16, - 17,19,18,17,19,18,21,14,17,15,20,17,21,22,21,20, - 22,18,21,17,21,17,17,19,17,21,18,16,17,17,19,20, - 19,21,20,21,20,17,18,20,17,21, 0,22,20,21,22,17, - 17,20,18,21,21,20,22,20,21,16,17,17,21,19, 0,22, - 0,21,21,18,22,17,21,17,12,14,14,17,16,14,15,16, - 17,18,14,16,15,18,17,17,17,20,19,20,16,18,17,21, - 18,14,15,15,17,17,14,15,16,17,19,16,17,16,18,18, - 17,16,19,18,19,18,19,18,21,20,14,15,15,18,17,16, - 16,16,19,18,15,16,14,20,16,18,18,19,19,20,16,19, - 16,21,17,17,17,18,19,19,16,16,18,18,19,19,19,18, - 20,20,18,16,19,18,20,22,21,20,19,20,16,18,17,20, - 16,18,19,18,19,18,16,18,16,20,17,21,20,21,20,20, - 18,19,17,21,16, -}; - -static const static_codebook _44p5_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p5_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p5_p5_0, - 0 -}; - -static const long _vq_quantlist__44p5_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p5_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p5_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p5_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p5_p5_1, - 0 -}; - -static const long _vq_quantlist__44p5_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p6_0[] = { - 1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, - 9,10, 5, 8, 7, 9,10, 9, 7,10, 7, 6, 9, 9, 9,10, - 12,10,12,11, 9,10,11,11,10,13,12,12,13,10,11,11, - 12,13,13,11,13,11, 6, 9, 9,10,11,12, 9,12,11,10, - 11,11,11,11,13,12,13,13, 9,11,10,12,13,13,11,13, - 10, 6, 9,10, 9,11,12,10,12,11, 9,10,11,10,10,13, - 11,13,13,10,11,11,12,13,12,11,13,11, 7, 9,10, 9, - 10,12,10,11,11,10,10,11,10,10,12,12,11,12,10,11, - 10,12,12,12,10,12,10, 7,10,10,11,11,13,11,13,11, - 10,12,11,11,10,13,13,14,13,10,11,12,13,13,14,11, - 13,10, 6,10, 9,10,11,12, 9,12,11, 9,11,11,11,11, - 13,12,12,13, 9,11,10,12,13,13,10,13,10, 7,10,10, - 11,11,14,11,13,11,10,12,11,11,10,14,13,14,13,10, - 11,12,13,13,14,11,13,10, 7,10, 9,10,10,12, 9,12, - 10,10,11,11,10,10,12,12,12,12, 9,11,10,11,12,12, - 10,12, 9, -}; - -static const static_codebook _44p5_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p5_p6_0, - 0 -}; - -static const long _vq_quantlist__44p5_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p6_1[] = { - 2, 6, 6, 5, 7, 8, 5, 8, 7, 6, 7, 7, 7, 7, 8, 8, - 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 6, 8, 8, 8, 9, - 10, 8, 9, 9, 8, 9, 9, 9, 9,10,10,10,10, 8, 9, 9, - 10,10,10, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 9, - 9, 9, 9, 9,10,10,10,10, 8, 9, 9,10,10,10, 9,10, - 9, 6, 8, 9, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9,10, - 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 8, 9, 8, - 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 7, 9, 9, 9,10,10, 9,10,10, - 9,10, 9, 9, 9,10,10,10,10, 9,10, 9,10,10,10, 9, - 10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9, - 10, 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, - 9,10,10, 9,10, 9, 9, 9,10,10, 9,10,10,10,10, 9, - 9, 9,10,10,10, 9,10, 9, 7, 9, 8, 8, 9, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p5_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p5_p6_1, - 0 -}; - -static const long _vq_quantlist__44p5_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p5_p7_0 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p7_0, - 1, -513979392, 1633504256, 2, 0, - (long *)_vq_quantlist__44p5_p7_0, - 0 -}; - -static const long _vq_quantlist__44p5_p7_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p5_p7_1[] = { - 1, 7, 7, 6, 9, 9, 7, 9, 9, 6, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10, -}; - -static const static_codebook _44p5_p7_1 = { - 5, 243, - (char *)_vq_lengthlist__44p5_p7_1, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p5_p7_1, - 0 -}; - -static const long _vq_quantlist__44p5_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p5_p7_2[] = { - 1, 2, 3, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11,12,12,13,13,14,14,14,14, -}; - -static const static_codebook _44p5_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p5_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p5_p7_2, - 0 -}; - -static const long _vq_quantlist__44p5_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p5_p7_3[] = { - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p5_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p5_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p5_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p5_short[] = { - 4, 7,12,14,15,18,20,20, 5, 3, 4, 6, 9,11,15,19, - 9, 4, 3, 4, 7, 9,13,18,11, 6, 3, 3, 5, 8,13,19, - 14, 9, 6, 5, 7,10,16,20,16,11, 9, 8,10,10,14,16, - 21,14,13,11, 8, 7,11,14,21,14,13, 9, 6, 5,10,12, -}; - -static const static_codebook _huff_book__44p5_short = { - 2, 64, - (char *)_huff_lengthlist__44p5_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p6_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p6_l0_0[] = { - 1, 4, 4, 7, 7,10,10,12,12,12,12,13,12, 5, 5, 5, - 8, 6,11, 9,12,12,13,12,12,12, 4, 5, 5, 6, 8, 9, - 11,12,12,13,12,12,12, 7, 7, 8, 9, 9,11, 8,12, 9, - 12,12,12,12, 7, 8, 8, 9, 9, 8,11, 9,12,12,12,11, - 12,10,10,10,11,11,11,11,11,10,11,11,12,11,10,10, - 10,11,11,11,11,10,11,11,11,11,12,11,11,11,12,11, - 12,11,12,11,13,11,13,11,11,11,11,11,12,11,12,10, - 13,11,12,11,13,12,12,12,13,12,13,13,13,12,14,12, - 14,13,12,12,12,12,13,13,13,12,14,12,14,13,14,13, - 14,14,14,14,14,14,14,14,15,14,15,14,13,14,13,14, - 14,14,14,14,15,14,14,14,15, -}; - -static const static_codebook _44p6_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p6_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p6_l0_0, - 0 -}; - -static const long _vq_quantlist__44p6_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p6_l0_1[] = { - 4, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 5, 5, 4, 5, 5, 5, 5, 5, 4, -}; - -static const static_codebook _44p6_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p6_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p6_l0_1, - 0 -}; - -static const long _vq_quantlist__44p6_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_l1_0[] = { - 1, 3, 2, 5, 5, 6, 6, 6, 6, -}; - -static const static_codebook _44p6_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44p6_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p6_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p6_lfe[] = { - 2, 3, 1, 3, -}; - -static const static_codebook _huff_book__44p6_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p6_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p6_long[] = { - 2, 7,13,15,16,17,19,20, 6, 3, 4, 7, 9,10,12,15, - 13, 4, 3, 4, 7, 8,11,13,14, 7, 4, 4, 6, 7,10,11, - 16, 9, 7, 6, 7, 8, 9,10,16, 9, 8, 7, 7, 6, 8, 8, - 18,12,10,10, 9, 8, 8, 9,20,14,13,12,11, 8, 9, 9, -}; - -static const static_codebook _huff_book__44p6_long = { - 2, 64, - (char *)_huff_lengthlist__44p6_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p6_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p1_0[] = { - 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, - 10, 8, 9, 9, 8, 9,10, 9,10,12,10,11,11, 8, 9,10, - 10,11,11, 9,11,11, 5, 8, 7, 8, 9, 9, 8,10, 9, 8, - 10, 9, 9,11,11,10,11,11, 8,10, 9,10,11,11, 9,12, - 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9, 9, 9,10,11, - 9,11,11, 8,10,10,10,11,11,10,12,11, 7, 9, 9, 9, - 10,11, 9,11,11, 9, 9,11,10,10,13,11,11,12, 9,11, - 11,11,12,13,11,13,12, 7, 9, 9, 9,11,11, 9,12,10, - 9,11,10,10,11,12,11,13,12, 9,11,11,11,13,13,11, - 13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8,10,10,10,11, - 11,10,11,11, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, - 9,10,12, 9,11,11, 9,11,11,11,11,13,11,13,13, 9, - 10,11,11,12,13,10,12,11, 7, 9, 9, 9,11,11, 9,11, - 10, 9,11,11,11,12,13,11,13,12, 9,11, 9,11,12,11, - 10,13,10, -}; - -static const static_codebook _44p6_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p6_p1_0, - 0 -}; - -static const long _vq_quantlist__44p6_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p6_p2_0[] = { - 4, 6, 6, 9, 9, 6, 7, 8,10,10, 6, 8, 7,10,10, 8, - 10,10,12,13, 8,10,10,13,12, 6, 8, 8,10,10, 7, 8, - 9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, - 14,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 9, 8,11, - 10,10,11,11,13,14,10,11,10,13,12, 9,10,10,12,12, - 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, - 14,13,15,14, 9,10,10,13,12,10,11,11,13,13,10,11, - 10,13,12,13,13,14,14,15,12,13,12,15,12, 6, 8, 8, - 10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,12,13, - 14,10,11,11,14,13, 8, 9, 9,11,12, 9,10,11,12,13, - 9,10,11,12,13,11,11,13,13,15,11,12,12,14,14, 8, - 9, 9,12,12, 9,10,11,12,13, 9,10,10,13,12,11,12, - 13,14,15,11,12,12,14,14,11,11,12,13,14,11,12,13, - 13,15,12,13,13,14,15,13,13,14,14,16,14,15,15,16, - 16,11,12,11,14,13,12,13,13,14,14,11,13,12,14,13, - 14,15,15,16,16,13,14,14,16,14, 6, 8, 8,11,10, 8, - 9, 9,12,11, 8,10, 9,12,11,10,11,11,13,13,10,12, - 11,14,13, 8, 9, 9,12,12, 9,10,10,12,13, 9,11,10, - 13,12,11,12,12,14,14,11,13,12,15,14, 8, 9, 9,12, - 11, 9,10,10,13,12, 9,11,10,13,12,12,12,12,14,14, - 11,13,12,15,13,11,11,12,13,14,11,12,13,13,14,12, - 13,13,14,15,13,13,14,14,16,14,15,15,16,16,11,12, - 11,14,13,12,13,13,15,14,11,13,12,15,13,14,15,15, - 16,16,13,15,13,16,14, 9,10,11,12,13,11,11,12,13, - 14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,16, - 11,11,12,13,14,12,12,13,14,15,12,13,13,14,15,14, - 14,15,15,17,14,15,15,16,17,11,12,12,14,14,12,13, - 13,14,15,12,13,12,15,15,14,15,15,16,17,14,15,15, - 16,16,13,14,14,15,16,14,14,15,15,17,15,15,15,16, - 17,16,16,17,16,18,16,17,17,18,18,13,14,14,16,15, - 14,15,15,17,16,14,15,15,16,16,16,17,17,18,18,16, - 16,16,17,16, 9,11,10,13,12,11,12,12,14,13,11,12, - 11,15,13,13,14,14,16,15,13,14,13,17,14,11,12,12, - 14,14,12,12,13,15,15,12,13,13,15,14,14,14,15,16, - 16,14,15,15,17,16,11,12,11,14,13,12,13,13,15,14, - 12,13,12,15,13,14,15,15,16,16,14,15,14,17,15,13, - 14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, - 16,17,17,16,17,17,18,18,13,15,14,16,15,15,15,15, - 17,16,14,15,14,17,15,16,17,17,18,18,16,17,16,18, - 16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, - 10,11,11,13,14,10,12,11,14,13, 7, 9, 9,11,12, 9, - 10,10,12,13, 9,10,10,13,12,11,11,12,13,15,11,12, - 12,15,14, 8, 9, 9,12,11, 9,10,10,13,13, 9,11,10, - 13,12,12,12,12,14,15,11,13,12,15,13,10,11,11,13, - 14,11,12,12,13,15,11,12,12,14,14,13,13,14,14,16, - 14,15,14,16,16,11,12,11,14,13,12,13,13,15,14,11, - 13,12,15,13,14,15,15,16,16,13,14,14,16,14, 8, 9, - 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12,13, - 14,15,11,12,12,15,14, 9, 9,11,11,13,10,10,12,12, - 14,10,10,11,13,14,12,12,13,14,16,12,13,13,15,15, - 9,11,10,13,12,10,11,11,13,14,10,12,11,14,13,12, - 13,13,15,16,12,13,13,15,15,11,11,13,13,15,12,12, - 14,13,15,13,13,14,14,15,14,14,15,14,17,15,15,15, - 16,16,12,13,12,15,14,13,14,14,15,15,12,14,13,15, - 14,15,15,15,17,17,14,15,14,17,15, 7, 9, 9,12,11, - 9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, - 13,12,15,14, 9,10,10,12,12,10,10,11,12,13,10,11, - 11,14,13,12,12,13,14,15,12,13,13,16,15, 9,10,10, - 13,12,10,11,11,13,13,10,11,10,14,12,13,13,13,15, - 15,12,13,12,15,14,11,12,12,14,14,12,12,13,14,15, - 13,14,13,15,15,14,13,15,14,16,15,16,15,17,16,12, - 12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15, - 16,16,17,14,15,14,17,14,10,11,12,13,14,11,12,13, - 14,15,11,12,13,14,15,13,14,15,15,17,14,15,15,16, - 16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16, - 14,14,16,14,18,15,15,16,16,17,12,13,12,15,15,13, - 14,14,15,16,13,14,13,16,15,15,15,16,17,18,15,15, - 15,17,16,14,14,15,14,17,15,14,16,14,17,15,15,16, - 15,18,16,16,17,16,19,17,17,17,17,18,14,15,15,17, - 16,15,16,16,17,17,15,16,15,18,16,17,17,18,18,18, - 16,17,16,18,17,10,11,11,14,13,11,12,12,15,14,11, - 13,12,15,14,14,15,15,16,16,14,15,15,17,16,11,12, - 12,15,14,12,13,13,15,14,13,14,13,16,14,14,15,15, - 16,16,15,16,15,18,16,11,13,12,15,15,13,14,14,15, - 15,12,14,13,16,15,15,16,16,17,17,15,16,15,17,16, - 14,15,14,16,16,14,15,15,16,16,15,16,15,17,16,16, - 16,17,16,17,17,18,17,19,18,14,15,15,17,16,15,16, - 16,17,17,15,15,15,18,16,17,18,18,18,18,16,17,16, - 19,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, - 11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, - 9,10,11,12,13, 9,10,10,13,13,11,12,13,13,15,11, - 12,12,15,14, 7, 9, 9,12,11, 9,10,10,12,13, 9,10, - 10,13,12,11,12,12,14,15,11,12,11,14,13,11,11,12, - 13,14,11,12,13,13,15,12,13,13,14,15,13,14,14,14, - 16,14,15,15,16,16,10,11,11,14,13,11,12,12,14,14, - 11,12,12,15,13,14,14,14,16,16,13,14,13,16,14, 7, - 9, 9,11,12, 9,10,10,12,13, 9,10,10,12,12,11,12, - 13,14,15,11,12,12,14,14, 9,10,10,12,13,10,10,11, - 12,14,10,11,11,13,13,12,12,13,14,15,13,13,13,15, - 15, 9,10,10,12,12,10,11,11,13,14,10,11,10,13,12, - 12,13,13,15,16,12,13,12,15,14,11,12,13,14,14,12, - 12,13,14,15,13,14,13,15,15,14,14,15,14,17,15,16, - 15,17,16,11,12,12,14,14,13,13,13,15,15,12,13,12, - 15,14,15,15,15,16,17,14,15,14,16,14, 8, 9, 9,12, - 11, 9,10,10,12,13, 9,11,10,13,12,11,12,12,14,15, - 11,12,12,15,14, 9,10,11,13,13,10,11,12,13,14,10, - 11,11,14,13,12,13,13,15,15,12,13,13,16,15, 9,11, - 9,13,11,10,11,10,14,13,10,12,10,14,12,12,13,13, - 15,15,12,13,12,16,14,12,12,13,14,15,12,13,14,14, - 16,13,14,14,15,15,14,14,15,15,17,15,16,15,17,16, - 11,13,11,15,13,13,14,13,15,14,12,14,12,16,13,15, - 15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12, - 13,14,15,11,12,12,14,15,14,14,15,16,17,14,15,15, - 16,16,11,12,13,14,15,12,13,14,15,16,13,14,14,15, - 16,15,15,16,16,18,15,16,16,17,17,11,12,12,14,15, - 13,13,14,14,16,12,13,13,15,15,15,15,16,16,18,14, - 15,15,16,16,14,15,15,16,17,15,15,16,16,17,15,16, - 16,17,17,16,16,17,16,19,17,18,17,18,18,14,14,15, - 16,16,15,15,16,16,17,14,15,15,16,16,17,17,18,18, - 19,16,17,16,17,16,10,12,11,14,13,11,13,12,15,14, - 11,13,12,15,14,14,15,15,16,16,13,15,14,17,15,12, - 13,13,15,15,13,13,14,15,16,13,14,14,16,16,14,15, - 15,17,17,15,16,16,17,17,11,13,12,15,12,13,14,13, - 16,13,12,14,12,16,13,15,16,15,17,16,14,16,14,18, - 14,14,15,15,16,17,15,15,16,16,17,15,16,16,17,17, - 16,16,17,17,18,17,18,17,18,18,14,15,14,17,14,15, - 16,15,18,15,15,16,15,18,14,17,17,17,18,17,16,17, - 16,19,16, 9,11,11,13,13,10,12,12,14,14,11,12,12, - 15,14,13,14,14,16,16,13,14,14,16,16,10,11,12,14, - 14,11,12,13,14,15,12,13,13,15,15,13,14,15,16,16, - 14,15,15,17,16,11,12,12,15,14,12,13,13,15,15,12, - 13,12,15,15,14,15,15,16,17,14,15,14,17,16,12,13, - 14,15,16,13,13,14,15,16,13,14,15,16,16,14,15,16, - 16,18,15,16,16,18,18,13,14,14,16,15,14,15,15,17, - 16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17, - 10,12,12,14,14,11,12,13,15,15,12,13,13,15,15,13, - 14,15,16,17,14,15,15,17,16,11,11,13,14,15,12,12, - 14,15,16,13,13,14,15,16,14,14,15,16,17,15,15,16, - 17,17,12,13,12,15,15,13,14,14,16,16,13,14,13,16, - 15,15,16,15,17,17,15,16,15,18,16,13,12,15,14,17, - 14,13,16,14,17,14,14,16,15,18,15,14,17,16,18,16, - 16,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, - 15,18,16,17,17,17,18,18,16,17,16,19,17,10,11,11, - 14,14,11,12,12,15,15,11,13,12,15,15,14,15,14,16, - 16,14,15,15,17,16,11,12,12,15,14,12,12,13,15,15, - 13,14,13,16,15,14,15,15,16,16,15,16,15,18,17,11, - 13,12,15,15,13,14,13,15,15,12,14,13,16,15,15,16, - 15,17,17,15,16,15,18,16,13,14,13,16,16,14,15,14, - 16,16,14,15,15,17,16,16,16,16,16,18,16,18,17,19, - 18,14,15,15,17,16,15,16,16,17,17,15,15,15,17,16, - 17,17,18,18,19,16,17,16,18,16,12,13,13,15,16,13, - 14,14,16,17,13,14,14,16,16,15,15,16,17,18,15,16, - 16,18,17,13,13,14,14,17,14,14,15,15,17,14,14,15, - 16,17,15,15,17,16,18,16,17,17,18,18,13,14,14,17, - 16,14,15,15,17,17,14,15,14,17,16,16,17,17,18,18, - 16,17,16,18,17,15,14,16,13,18,16,15,17,14,19,16, - 16,17,15,18,17,16,18,15,19,18,18,18,17,19,15,16, - 16,18,17,16,17,17,18,18,16,17,16,19,17,18,19,18, - 19,19,17,18,17,20,18,11,12,12,15,15,13,13,14,15, - 16,13,14,13,16,15,15,16,16,17,17,15,16,16,18,17, - 12,14,13,16,15,13,13,14,15,16,14,15,14,17,16,16, - 16,16,16,17,16,17,17,19,17,12,13,14,16,16,14,15, - 15,16,17,13,15,13,17,15,16,17,17,18,18,16,17,16, - 18,16,15,16,15,17,16,15,15,15,17,17,16,17,16,18, - 17,17,16,17,16,18,18,19,18,20,18,15,16,16,17,17, - 16,17,17,18,18,15,16,15,18,17,18,18,19,19,19,17, - 18,16,19,16, 9,11,11,13,13,11,12,12,14,15,10,12, - 12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12, - 14,14,12,12,13,15,15,12,13,13,15,15,14,15,15,16, - 17,14,15,15,16,16,10,12,11,14,14,12,13,13,15,15, - 11,13,12,15,14,14,15,15,16,17,13,15,14,17,16,13, - 14,14,15,16,14,15,15,16,17,14,15,15,16,17,16,16, - 17,17,18,16,17,17,18,18,12,14,13,16,15,13,15,14, - 17,16,13,14,13,17,15,15,16,16,18,18,15,16,15,18, - 16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,15, - 14,15,15,16,17,14,15,15,16,16,11,12,13,15,15,12, - 13,14,15,16,13,14,14,15,16,15,15,16,16,18,15,15, - 16,17,17,11,12,12,14,15,13,13,14,15,16,12,13,13, - 15,15,15,15,16,17,18,14,15,15,17,16,14,15,15,16, - 17,15,15,16,16,17,15,16,16,17,17,16,16,17,16,19, - 17,17,18,19,18,13,13,14,16,16,14,15,16,17,17,14, - 14,15,16,16,16,16,17,18,18,16,16,16,18,16,10,12, - 12,14,14,12,13,13,15,15,11,13,12,15,15,14,15,15, - 16,17,13,15,14,17,16,12,13,13,15,15,13,13,14,15, - 16,13,14,14,16,16,15,15,16,17,18,15,15,16,17,17, - 11,13,12,15,14,13,14,13,16,15,12,14,12,16,14,15, - 16,15,17,17,14,16,14,17,16,14,15,15,16,17,15,15, - 16,16,18,15,16,16,17,17,16,17,17,17,19,17,17,17, - 18,18,13,15,12,17,14,14,16,14,17,15,14,15,13,17, - 14,16,17,16,18,17,15,17,14,19,15,11,12,12,15,15, - 13,13,14,15,16,13,14,13,16,15,15,16,16,17,18,15, - 16,16,17,17,12,14,13,16,16,13,13,15,15,17,14,15, - 15,17,16,16,16,17,16,19,16,17,17,18,18,12,13,14, - 15,16,14,14,15,16,17,13,14,13,16,15,16,17,17,18, - 19,15,16,16,17,16,15,16,16,18,17,15,15,16,17,18, - 16,17,17,18,18,16,16,18,16,19,18,19,19,20,19,15, - 15,16,16,17,16,16,17,17,18,15,15,15,17,16,18,18, - 19,18,20,17,17,16,18,16,12,13,13,16,15,13,14,14, - 16,16,13,14,14,16,16,15,16,16,17,18,15,16,15,18, - 17,13,14,14,16,16,14,15,15,16,17,14,15,15,17,17, - 16,17,17,18,18,16,17,17,18,18,13,14,13,17,14,14, - 15,14,17,16,14,15,14,17,15,16,17,17,18,18,15,17, - 15,19,15,16,16,16,17,18,16,16,17,17,19,16,17,17, - 18,19,17,17,18,18,20,18,18,18,19,19,15,16,14,18, - 13,16,17,16,19,15,16,17,15,19,14,18,18,18,19,17, - 17,18,16,20,15, -}; - -static const static_codebook _44p6_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p6_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p6_p2_0, - 0 -}; - -static const long _vq_quantlist__44p6_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p3_0[] = { - 1, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 8, 8, 8,10, 8, - 10,10, 5, 8, 7, 8,10,10, 8,10, 8, 6, 8, 9, 8,10, - 12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, - 11,13,13,11,13,12, 6, 9, 8, 9,11,11, 8,12,10, 9, - 11,11,11,12,13,11,13,13, 9,11,10,11,13,13,11,13, - 11, 5, 9, 9, 8,11,11, 9,12,11, 8,10,11,10,11,13, - 11,13,13, 9,11,11,11,13,13,11,13,12, 8,10,11,10, - 12,13,10,13,12,10,10,13,11,11,14,12,13,14,11,13, - 12,13,14,14,12,14,12, 8,11,10,11,12,13,11,14,12, - 10,13,12,12,12,13,13,15,14,11,12,13,13,14,15,12, - 14,12, 5, 9, 9, 9,11,12, 8,11,11, 9,11,11,11,12, - 13,11,13,13, 8,11,10,11,13,13,10,13,11, 8,10,11, - 11,12,14,11,13,12,11,13,12,12,12,14,13,15,14,10, - 12,13,13,14,15,12,13,12, 8,11,10,10,12,13,10,13, - 12,11,12,13,12,12,14,13,14,14,10,13,10,12,14,13, - 11,14,11, -}; - -static const static_codebook _44p6_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p6_p3_0, - 0 -}; - -static const long _vq_quantlist__44p6_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p3_1[] = { - 5, 7, 7, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 8, 8, 7, - 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 8, 7, 7, 8, 7, 8, - 8, 7, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, - 8, 9, 9, 8, 9, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 8, - 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, - 8, 6, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 9, - 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, - 8, 9, 8, 9, 9, 8, 8, 9, 8, 9, 9, 9, 9, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, - 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, 9, - 9, 9, 6, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, - 8, 8, 9, 8, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, - 8, 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, - 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p6_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p6_p3_1, - 0 -}; - -static const long _vq_quantlist__44p6_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p4_0[] = { - 2, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 7, 7, 7, 9, 7, - 9, 9, 5, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, - 10, 8, 9, 9, 8, 9,10, 9, 9,11,10,11,11, 8, 9, 9, - 10,11,11, 9,11,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, - 9, 9, 9,10,11,10,11,10, 8,10, 9,10,11,11, 9,11, - 9, 6, 8, 8, 7, 9, 9, 8,10, 9, 7, 9, 9, 9, 9,10, - 9,10,10, 8, 9, 9, 9,10,10, 9,11,10, 7, 9, 9, 8, - 10,10, 9,10,10, 9, 9,10,10,10,11,10,11,11, 9,10, - 10,10,11,11,10,11,10, 7, 9, 9, 9, 9,10, 9,10, 9, - 8,10, 9, 9, 9,11,10,11,11, 9,10,10,10,11,11, 9, - 11, 9, 6, 8, 8, 8, 9,10, 7, 9, 9, 8, 9, 9, 9,10, - 10, 9,10,10, 7, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, - 9, 9,10, 9,10, 9, 9,10,10, 9, 9,11,10,11,11, 8, - 9,10,10,11,11, 9,11, 9, 7, 9, 9, 9,10,10, 8,10, - 10, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, - 10,11,10, -}; - -static const static_codebook _44p6_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p6_p4_0, - 0 -}; - -static const long _vq_quantlist__44p6_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p6_p4_1[] = { - 6, 8, 8,10,10, 8, 9, 9,10,11, 8,10, 9,11,10, 9, - 10,10,11,11, 9,10,10,11,11, 8, 9, 9,10,10, 9, 9, - 10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11, - 11,11, 8, 9, 9,11,10,10,10,10,11,11, 9,10, 9,11, - 11,10,11,11,11,11,10,11,10,11,11,10,10,11,11,11, - 10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,10,11,10,11,11,11,11,11,11,11,10,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11, 8, 9,10, - 11,11,10,10,11,11,11,10,10,10,11,11,10,11,11,12, - 12,10,11,11,12,12,10,10,11,11,11,10,10,11,11,12, - 11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, - 10,10,11,11,11,11,11,12,12,10,11,11,12,12,11,12, - 12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,11,11,12,11,11,12,12,12,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12, 8,10, 9,11,11,10, - 10,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11, - 11,12,12,10,10,10,11,11,10,11,11,12,12,11,11,11, - 12,12,11,11,12,12,12,11,12,12,12,12,10,11,10,11, - 11,11,11,11,12,12,10,11,10,12,11,11,12,11,12,12, - 11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, - 11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12, - 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, - 11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,13,11,12,11,12,12,12,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,12, - 12,12,13,12,10,11,11,12,11,11,11,12,12,12,11,12, - 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,12,12,12,12,13,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13, - 12, 8,10,10,11,11,10,10,11,11,11,10,11,10,11,11, - 10,11,11,12,12,10,11,11,12,12, 9,10,11,11,11,10, - 10,11,12,12,10,11,11,12,12,11,11,12,12,12,11,12, - 12,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11, - 12,12,11,12,12,12,12,11,12,11,12,12,11,11,11,12, - 12,11,11,12,12,12,11,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, - 10,11,11,10,11,11,12,12,10,11,11,12,12,11,11,12, - 12,12,11,12,12,12,12,10,11,11,12,12,11,11,12,12, - 12,11,11,12,12,12,11,11,12,12,12,12,12,12,12,12, - 10,11,11,12,12,11,12,12,12,12,11,12,11,12,12,12, - 12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12, 9,10,10,11,11, - 10,11,11,12,12,10,11,11,12,11,11,12,12,12,12,11, - 12,12,12,12,10,11,11,12,12,11,11,11,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,10,11,11, - 12,12,11,12,12,12,12,11,12,11,12,12,12,12,12,12, - 12,12,12,12,12,12,11,12,12,12,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12, - 12,12,13,13,12,12,12,13,12,12,12,12,13,13,12,13, - 12,13,13,12,12,12,12,12,12,12,12,12,13,12,13,13, - 13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12, - 12,12,12,13,13,13,12,13,12,13,13,12,13,13,13,13, - 12,13,13,13,13,11,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, - 13,12,12,12,13,12,12,13,12,13,13,12,13,12,13,13, - 12,12,12,12,12,12,12,13,13,13,12,12,13,13,13,12, - 13,13,12,13,13,13,13,13,13,12,12,12,12,12,12,13, - 12,13,13,12,13,12,13,12,12,13,13,13,13,12,13,13, - 13,13, 8,10,10,11,11,10,10,11,11,11, 9,11,10,11, - 11,10,11,11,12,12,10,11,11,12,12,10,10,11,11,11, - 10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11, - 12,12,12,12, 9,11,10,11,11,10,11,11,12,12,10,11, - 10,12,12,11,12,12,12,12,11,12,11,12,12,11,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 9, - 10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,12, - 12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12, - 12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12, 9,10,10,11, - 11,10,11,11,12,12,10,11,11,12,12,11,12,12,12,12, - 11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,10,11, - 11,12,12,11,12,11,12,12,11,12,11,12,12,12,12,12, - 12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,12,12,12,13,13,12,12,13,13,13,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,13,12,13,13,12, - 12,12,13,12,12,12,12,12,12,12,12,13,13,13,12,12, - 13,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12, - 12,12,12,12,13,13,13,12,12,12,13,12,12,13,13,13, - 13,12,13,13,13,13,11,11,11,12,12,11,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, - 13,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12, - 13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13, - 12,12,12,12,12,12,12,12,13,13,13,12,13,13,13,13, - 12,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12, - 13,12,13,12,12,13,12,13,12,13,13,13,13,13,12,13, - 13,13,13,10,11,11,12,12,11,12,12,12,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,11,11,12,12, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13, - 12,12,12,13,13,11,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,12, - 12,12,12,12,12,12,12,13,12,12,12,12,13,12,12,13, - 12,13,12,13,13,13,13,12,12,12,12,12,12,12,12,13, - 12,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, - 11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, - 12,12,12,13,12,12,12,13,12,11,12,12,12,12,12,12, - 12,12,13,12,12,12,12,13,12,12,13,13,13,12,12,13, - 13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13, - 12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12, - 12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,13, - 13,13,13,13,12,12,12,12,12,12,13,13,13,13,12,13, - 12,13,12,12,13,13,13,13,12,13,13,13,13,11,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13, - 12,12,12,13,13,12,12,13,13,13,12,12,13,13,13,11, - 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, - 12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12, - 12,13,12,13,12,13,13,12,13,13,13,13,12,13,13,13, - 13,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13, - 12,13,13,13,13,12,13,12,13,13,11,12,12,12,12,11, - 12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,13,12,13,12,12,12,13,13,11,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13, - 12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, - 12,13,12,13,12,12,13,12,13,12,13,13,13,13,12,12, - 12,12,12,12,12,12,12,12,12,12,12,13,12,12,13,13, - 13,13,12,13,12,13,12,11,11,11,12,12,11,12,12,12, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,13,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, - 13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,13,12,12,12,13,12,12,12,12,12,12,12,12, - 12,12,12,13,12,12,12,12,13,12,12,13,12,13,12,12, - 13,12,13,12,10,11,11,12,12,11,12,12,12,12,11,12, - 11,12,12,11,12,12,12,12,11,12,12,12,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12, - 11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12, - 12,12,12,12,12,12,12,12,13,12,12,12,12,13,12,13, - 13,12,13,12,13,13,13,13,12,12,12,12,12,12,12,12, - 13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, - 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, - 12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12, - 12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12, - 13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12, - 13,12,12,13,12,13,13,12,12,12,13,13,12,12,12,12, - 12,12,12,13,13,13,12,12,13,13,13,12,12,13,13,13, - 12,13,13,13,13,12,12,12,12,12,12,12,13,13,13,12, - 12,12,13,12,12,13,13,13,13,12,13,13,13,13,11,11, - 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, - 12,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, - 13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13, - 11,12,12,12,12,12,12,12,13,12,12,12,12,13,12,12, - 13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, - 12,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13, - 13,13,12,12,12,12,12,12,13,12,13,13,12,13,12,13, - 12,12,13,13,13,13,12,13,12,13,13,11,11,11,12,12, - 11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,12,12,12,13,13,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 13,12,12,12,13,12,12,12,11,12,11,12,12,11,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,12, - 12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,12, - 12,13,12,12,12,12,12,12,12,12,12,12,13,12,12,12, - 13,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12, - 12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,13, - 12,13,12,13,12, -}; - -static const static_codebook _44p6_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p6_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p6_p4_1, - 0 -}; - -static const long _vq_quantlist__44p6_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p6_p5_0[] = { - 2, 6, 6,10,10, 5, 7, 8,11,12, 5, 8, 7,12,11, 9, - 11,11,13,15, 9,11,11,15,13, 6, 7, 8,11,11, 7, 7, - 9,11,13, 8, 9, 9,13,12,11,11,12,12,15,11,12,12, - 15,14, 6, 8, 7,11,11, 8, 9, 9,12,13, 7, 9, 7,13, - 11,11,12,12,14,15,11,12,11,15,12,10,11,11,12,14, - 10,11,12,12,15,12,13,13,14,15,13,12,14,12,16,15, - 15,15,16,16,10,11,11,14,12,12,13,13,15,14,10,12, - 11,15,12,15,15,15,16,17,13,14,12,17,12, 6, 8, 8, - 12,12, 8, 9,10,13,13, 8, 9, 9,13,13,12,12,13,15, - 16,12,13,13,16,15, 8, 9,10,12,13, 9, 9,11,13,14, - 10,11,11,14,14,13,13,14,15,16,13,14,14,16,16, 8, - 10, 9,13,13,10,11,11,14,14, 9,10,10,14,13,13,14, - 14,16,17,13,13,13,16,15,12,13,13,14,16,13,13,14, - 14,16,14,14,14,16,16,15,15,16,15,18,16,17,17,18, - 18,12,13,13,15,15,14,14,14,16,16,13,14,13,16,15, - 16,16,17,18,18,15,16,15,18,15, 6, 8, 8,12,12, 8, - 9, 9,13,13, 8,10, 9,13,13,12,13,13,15,16,12,13, - 12,16,15, 8, 9,10,13,13, 9,10,10,13,14,10,11,11, - 14,14,13,13,13,15,16,13,14,14,17,16, 8,10, 9,13, - 13,10,11,11,14,14, 9,11, 9,14,13,13,14,14,16,16, - 13,14,13,16,14,12,13,13,15,16,13,13,14,15,16,14, - 14,14,16,16,15,15,16,15,18,17,17,17,18,18,12,13, - 13,16,14,14,14,14,16,16,13,14,13,16,14,16,17,17, - 18,18,15,16,15,18,15,11,12,13,14,16,13,13,14,15, - 17,13,14,14,16,17,16,16,17,17,19,16,17,17,18,19, - 13,13,14,16,16,14,14,15,16,17,14,15,15,17,17,17, - 16,17,17,19,17,17,18,19,19,13,14,14,16,16,14,14, - 15,17,18,14,15,14,17,17,17,17,18,18,19,17,17,17, - 18,19,16,16,16,17,18,17,17,17,18,19,17,17,17,18, - 19,18,18,19,18,20,19,20,19,21,20,16,17,17,18,18, - 17,17,18,19,19,17,17,17,19,18,19,19,19,19,20,19, - 19,19,20,19,11,13,12,16,14,13,14,14,17,16,13,14, - 13,17,15,16,17,17,18,18,16,17,16,19,17,13,14,14, - 16,16,14,14,14,17,17,14,15,15,17,16,17,17,17,19, - 19,17,18,17,19,18,13,14,13,17,16,14,15,15,17,17, - 14,15,14,18,16,17,17,17,19,19,17,17,16,19,17,16, - 17,17,18,19,17,17,17,18,18,17,18,17,19,18,18,19, - 18,19,19,19,20,19,20,20,16,17,16,18,17,17,17,17, - 18,18,17,18,17,19,17,19,19,19,19,20,18,19,19,20, - 18, 6, 8, 8,12,12, 8, 9, 9,13,13, 8,10, 9,13,13, - 11,13,13,15,16,12,13,13,16,15, 8, 9, 9,13,13, 9, - 9,10,13,14,10,11,11,14,14,12,12,13,14,16,13,14, - 14,17,16, 8,10, 9,13,13,10,11,11,14,14, 9,11,10, - 14,13,13,14,14,16,16,13,14,13,16,15,12,13,13,14, - 16,12,13,14,14,16,13,14,14,16,16,15,14,16,15,18, - 16,17,17,18,17,12,13,13,16,15,14,14,14,16,16,13, - 14,13,16,15,16,16,17,17,17,15,16,15,18,15, 7, 9, - 9,13,13, 9, 9,11,13,14, 9,10,10,14,13,12,13,14, - 15,16,12,14,13,17,15, 9, 9,10,13,14,10, 9,11,13, - 15,11,11,11,14,14,13,12,14,14,17,14,14,14,17,16, - 9,10,10,14,13,11,11,11,14,14,10,11,10,15,13,14, - 14,14,16,17,13,14,13,17,14,13,13,14,14,16,13,13, - 14,14,17,14,14,14,16,16,15,14,16,15,18,17,17,17, - 18,18,13,14,13,16,15,14,14,15,17,16,13,14,13,17, - 15,17,16,17,17,17,15,16,14,18,14, 7, 9, 9,13,13, - 9,10,10,13,14, 9,11,10,14,13,13,14,14,16,16,13, - 14,14,17,15, 9,10,10,14,13, 9,10,11,13,14,11,12, - 11,15,14,13,13,14,14,16,14,15,15,17,17, 9,10,10, - 14,14,11,12,12,14,15,10,11,10,15,13,14,15,15,17, - 17,14,15,13,17,14,13,14,13,16,16,13,13,14,15,16, - 14,15,15,17,17,15,14,16,15,18,17,18,17,20,18,13, - 14,14,16,16,15,15,15,17,17,13,14,13,17,15,17,17, - 18,18,18,15,16,14,19,14,12,13,13,15,16,13,13,15, - 16,17,13,14,14,16,16,15,15,17,17,19,16,17,17,19, - 18,13,13,14,15,17,14,13,15,15,17,14,15,15,16,17, - 16,15,18,16,19,17,17,17,18,19,13,14,14,17,16,14, - 15,15,17,17,14,15,14,17,16,17,17,17,18,19,16,17, - 16,19,17,16,16,17,16,18,16,16,17,16,19,17,17,18, - 18,19,18,17,18,17,21,19,19,19,20,19,16,17,17,18, - 18,17,17,18,18,19,16,17,16,18,18,19,19,19,19,20, - 18,18,17,20,18,11,13,13,16,15,13,14,14,16,17,13, - 15,14,17,16,16,17,17,18,18,17,17,17,19,18,13,14, - 13,17,16,14,13,14,16,17,15,16,15,18,16,17,16,17, - 17,19,18,18,18,20,18,13,14,14,16,17,15,15,15,17, - 18,14,15,14,18,16,18,18,18,19,20,17,18,16,20,17, - 16,17,16,18,18,16,16,17,18,18,17,18,18,19,18,18, - 17,19,17,20,19,20,19,22,20,16,16,17,18,18,18,17, - 17,19,19,16,17,16,18,17,19,20,19,22,21,18,19,18, - 21,17, 6, 8, 8,12,12, 8, 9,10,13,13, 8, 9, 9,13, - 13,12,13,13,15,16,11,13,13,16,15, 8, 9,10,13,13, - 9,10,11,13,14,10,11,11,14,14,13,13,14,15,16,13, - 14,14,16,16, 8, 9, 9,13,13,10,11,11,14,14, 9,10, - 9,14,13,13,14,14,16,17,12,14,12,16,14,12,13,13, - 15,16,13,13,14,15,16,13,14,14,15,17,15,15,16,15, - 18,16,16,17,17,17,12,13,13,16,14,13,14,14,16,16, - 12,14,13,16,14,16,17,17,18,18,15,15,14,18,14, 7, - 9, 9,13,13, 9,10,11,13,14, 9,10,10,14,13,13,14, - 14,15,17,13,14,14,16,15, 9,10,10,14,14,10,10,11, - 13,15,11,12,12,15,14,14,13,15,14,17,14,15,15,17, - 17, 9,10,10,13,14,11,11,12,14,15, 9,11,10,14,13, - 14,15,15,16,18,13,14,13,16,14,13,14,14,16,16,13, - 13,14,15,17,15,15,15,16,17,15,14,16,15,18,17,17, - 18,19,18,13,14,14,16,16,14,15,15,17,17,13,14,13, - 16,15,17,17,18,18,18,15,16,14,18,15, 7, 9, 9,13, - 13, 9,10,10,13,14, 9,11,10,14,13,12,13,14,15,16, - 12,14,13,16,15, 9,10,10,13,14,10,10,11,13,14,11, - 11,11,15,14,13,13,14,14,16,14,14,14,17,16, 9,10, - 9,14,13,11,11,11,14,14,10,11, 9,15,13,14,14,14, - 16,16,13,14,12,17,14,13,13,14,15,16,13,13,14,15, - 16,14,15,14,16,17,15,14,16,14,18,16,17,17,18,18, - 13,14,13,16,14,14,14,14,16,16,13,14,13,17,14,17, - 17,17,18,18,15,16,14,18,15,11,13,13,16,16,13,14, - 15,16,17,13,14,14,17,16,16,17,17,18,19,17,17,17, - 19,18,13,14,14,17,17,13,13,15,16,18,15,15,15,17, - 17,17,16,18,17,20,18,17,18,19,19,13,14,14,16,17, - 15,15,16,16,18,14,15,14,16,16,17,17,18,18,20,17, - 18,16,18,17,16,17,16,19,18,16,16,17,18,19,18,18, - 18,19,19,18,17,18,17,21,20,19,19,21,21,16,16,17, - 18,18,17,17,18,19,19,16,17,16,19,18,20,20,20,19, - 21,18,18,17,20,18,12,13,13,16,15,13,14,14,16,16, - 13,14,13,17,16,16,17,17,18,18,15,17,15,19,17,13, - 14,14,16,17,14,14,15,16,17,14,15,15,17,17,16,16, - 17,17,18,17,17,17,19,19,13,14,13,17,15,14,15,15, - 17,16,14,15,13,17,15,17,18,17,19,18,16,17,15,20, - 16,16,17,17,18,18,16,16,17,18,18,17,18,17,19,18, - 17,17,18,18,20,19,20,19,20,19,16,16,16,19,16,17, - 17,17,19,18,16,17,16,19,16,19,19,19,19,19,18,19, - 17,19,17,11,13,13,16,16,13,14,14,17,17,13,14,14, - 17,17,15,17,17,19,19,16,18,17,20,19,12,14,14,17, - 17,13,14,15,17,18,14,15,15,17,18,16,16,17,18,20, - 17,18,18,20,18,13,14,14,17,17,14,15,15,17,18,14, - 15,15,17,17,17,18,17,19,19,17,18,17,19,19,15,16, - 16,18,18,15,16,17,18,19,16,17,17,19,19,17,17,18, - 18,21,18,19,19,21,19,16,17,17,18,18,17,17,18,19, - 19,17,18,17,19,19,19,19,19,20,20,18,19,18,21,19, - 12,13,13,16,16,13,14,14,16,17,13,15,14,17,16,15, - 16,17,17,19,16,17,17,19,18,13,13,14,16,17,14,13, - 15,16,17,14,15,15,17,17,15,15,17,17,20,17,17,18, - 19,18,13,14,14,17,16,15,15,15,17,18,14,15,14,17, - 16,17,17,17,18,18,16,17,16,19,17,16,15,17,17,19, - 16,15,17,16,19,17,16,17,18,19,17,16,19,16,20,19, - 18,19,19,19,16,17,17,18,18,17,17,17,18,19,16,17, - 16,19,18,20,19,19,20,19,18,18,17,20,17,11,13,13, - 16,16,13,14,15,16,17,14,15,14,18,16,17,17,17,18, - 21,17,18,17,20,19,13,14,14,17,16,13,14,15,16,18, - 15,16,15,18,17,17,16,17,17,19,17,18,18,20,19,13, - 14,14,16,17,15,15,16,17,18,14,15,14,18,17,17,18, - 18,19,20,17,18,16,19,17,16,17,15,19,18,16,16,16, - 18,18,17,18,17,20,19,18,17,18,17,20,20,20,19,22, - 20,16,17,17,18,19,18,18,18,19,20,16,17,16,19,18, - 20,19,19,20,20,18,19,17,20,17,13,14,14,16,17,14, - 14,16,16,18,14,16,15,17,16,16,16,17,17,18,17,17, - 16,19,18,14,14,15,16,17,14,14,16,16,18,16,16,16, - 17,17,16,15,17,16,19,18,18,18,19,19,14,15,15,17, - 17,15,16,16,17,18,14,16,14,18,16,17,17,18,18,19, - 16,17,16,19,17,16,16,17,16,18,16,16,17,16,19,18, - 18,18,17,18,17,16,18,16,20,19,19,19,19,19,16,17, - 17,18,18,17,17,18,19,19,16,17,16,19,17,18,19,19, - 19,20,17,18,16,20,16,11,14,13,17,17,14,14,16,16, - 18,14,16,14,19,16,18,18,19,18,19,18,19,18,21,18, - 13,15,14,18,16,14,14,16,16,18,16,17,16,19,17,18, - 16,19,17,20,19,19,19,21,19,13,14,15,17,18,17,16, - 17,17,19,14,16,14,18,16,20,19,19,20,21,18,19,16, - 21,17,17,18,16,19,17,16,16,17,18,18,19,19,18,21, - 18,17,17,18,17,20,20,20,20,22,20,17,17,18,18,20, - 19,19,19,18,20,16,17,17,19,19,21,21,21,20,21,17, - 19,17,23,17,11,13,13,16,16,13,14,14,17,17,13,14, - 14,17,17,16,17,17,19,20,15,16,16,19,19,13,14,14, - 16,17,14,15,15,17,18,14,15,15,17,17,17,17,18,19, - 19,17,17,18,19,19,13,14,14,17,16,14,15,15,17,17, - 13,15,14,18,17,17,18,18,19,20,16,17,16,19,18,16, - 16,17,18,18,17,17,17,18,19,17,18,17,19,19,19,19, - 19,19,20,19,20,19,20,20,15,16,16,18,17,16,17,17, - 20,18,15,16,16,19,17,19,19,19,20,20,17,18,17,21, - 17,11,13,13,16,16,13,14,15,16,17,13,15,14,17,16, - 17,17,18,18,20,17,17,17,19,19,13,14,14,17,17,14, - 14,15,17,18,15,15,15,18,17,17,17,18,17,20,18,18, - 17,20,18,13,14,14,16,17,15,15,16,17,18,14,15,13, - 17,17,17,18,18,19,20,17,17,16,19,17,16,17,17,18, - 18,16,16,17,18,18,18,18,18,19,19,18,17,19,18,21, - 19,20,20,20,20,16,15,17,18,18,17,17,18,18,20,16, - 16,16,18,17,20,19,20,21,22,17,18,17,20,17,12,13, - 13,16,16,13,14,15,16,17,13,14,14,17,16,16,17,18, - 18,19,15,16,16,19,18,13,14,14,16,17,14,14,15,16, - 17,14,15,15,17,17,16,16,17,17,19,17,17,17,19,18, - 13,14,13,17,16,14,15,15,17,17,13,15,13,17,16,17, - 17,17,19,19,15,17,15,19,17,16,17,17,18,18,16,16, - 17,17,19,17,18,17,19,19,18,17,19,17,19,19,19,19, - 20,19,15,17,15,19,16,17,17,16,19,18,16,17,15,18, - 16,19,19,19,20,19,17,19,16,19,16,11,14,14,17,17, - 15,14,16,16,18,15,16,14,18,16,18,18,19,18,21,18, - 19,18,20,18,13,15,14,18,17,14,14,16,16,18,16,17, - 16,19,17,17,17,19,17,22,19,19,19,21,19,13,14,15, - 17,18,17,16,17,17,19,14,16,14,18,16,19,19,19,20, - 21,18,18,16,20,17,17,18,16,19,18,15,17,17,19,19, - 19,19,18,21,19,18,17,20,17,21,22,21,20,21,21,17, - 16,19,18,20,19,18,19,18,20,16,17,16,19,18,21,20, - 21,19,23,18,19,16,20,17,13,14,14,17,16,14,14,15, - 16,18,14,16,14,17,16,16,16,17,17,19,16,17,16,19, - 17,14,15,15,17,17,14,14,16,16,17,15,16,16,18,17, - 16,16,17,17,19,17,18,17,19,18,14,15,14,17,16,16, - 16,16,17,17,14,16,14,17,16,18,18,18,18,19,16,17, - 15,19,16,17,17,17,18,18,16,15,17,17,18,18,18,18, - 19,19,17,16,18,16,19,19,19,19,19,19,16,17,16,19, - 16,18,18,17,19,18,16,17,16,19,16,19,19,20,19,19, - 17,18,16,20,16, -}; - -static const static_codebook _44p6_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p6_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p6_p5_0, - 0 -}; - -static const long _vq_quantlist__44p6_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p6_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p6_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p6_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p6_p5_1, - 0 -}; - -static const long _vq_quantlist__44p6_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p6_0[] = { - 1, 5, 5, 5, 7, 9, 5, 9, 7, 5, 7, 8, 7, 7,10, 9, - 10,10, 5, 8, 7, 9,10,10, 7,10, 7, 6, 9, 9, 9,10, - 12, 9,11,11, 9,10,11,11,11,13,12,13,13, 9,11,11, - 12,13,13,11,13,11, 6, 9, 9, 9,11,11, 9,12,10, 9, - 11,11,11,11,13,12,13,13, 9,11,10,12,13,13,11,13, - 11, 6, 9, 9, 9,11,12, 9,12,11, 9,10,11,10,10,13, - 12,13,13, 9,11,11,12,13,12,11,13,11, 7, 9,10, 9, - 10,12,10,12,11,10,10,12,10,10,12,12,12,13,10,11, - 11,12,12,13,10,12,10, 7,10,10,11,11,14,11,14,11, - 10,12,11,11,11,14,14,14,14,10,11,12,14,14,14,11, - 14,11, 6, 9, 9, 9,11,12, 9,12,11, 9,11,11,11,11, - 13,12,12,13, 9,11,10,12,13,13,10,13,10, 7,10,10, - 11,11,14,11,14,11,10,12,11,11,11,14,14,15,14,10, - 11,12,13,14,15,11,14,11, 7,10, 9,10,11,12, 9,12, - 10,10,11,11,10,10,12,12,13,12, 9,12,10,12,13,12, - 10,12,10, -}; - -static const static_codebook _44p6_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p6_p6_0, - 0 -}; - -static const long _vq_quantlist__44p6_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p6_1[] = { - 2, 6, 6, 6, 7, 8, 6, 8, 7, 6, 7, 7, 7, 7, 8, 7, - 8, 8, 6, 7, 7, 7, 8, 8, 7, 8, 7, 6, 8, 8, 8, 9, - 9, 8, 9, 9, 8, 9, 9, 9, 9,10, 9,10,10, 8, 9, 9, - 9,10,10, 9,10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, - 9, 9, 9, 9,10, 9,10,10, 8, 9, 9, 9,10, 9, 9,10, - 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9,10, - 9, 9,10, 8, 9, 9, 9,10, 9, 9,10, 9, 7, 8, 8, 8, - 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, - 9, 9,10, 9, 9, 9, 9, 7, 9, 9, 9, 9,10, 9,10, 9, - 9, 9, 9, 9, 9,10,10,10,10, 9, 9, 9,10,10,10, 9, - 10, 9, 6, 8, 8, 8, 9, 9, 8, 9, 9, 8, 9, 9, 9, 9, - 10, 9,10,10, 8, 9, 9, 9,10, 9, 9,10, 9, 7, 9, 9, - 9, 9,10, 9,10, 9, 9, 9, 9, 9, 9,10,10,10,10, 9, - 9, 9,10,10,10, 9,10, 9, 7, 8, 8, 8, 9, 9, 8, 9, - 9, 8, 9, 9, 9, 9,10, 9, 9,10, 8, 9, 8, 9, 9, 9, - 9,10, 9, -}; - -static const static_codebook _44p6_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p6_p6_1, - 0 -}; - -static const long _vq_quantlist__44p6_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p6_p7_0 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p7_0, - 1, -513979392, 1633504256, 2, 0, - (long *)_vq_quantlist__44p6_p7_0, - 0 -}; - -static const long _vq_quantlist__44p6_p7_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p6_p7_1[] = { - 1, 4, 5, 5,10,10, 5,10,10, 5,10,10,10,10,10,10, - 10,10, 5,10,10,10,10,10,10,10,10, 7,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10, 6,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10, 9,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,11, -}; - -static const static_codebook _44p6_p7_1 = { - 5, 243, - (char *)_vq_lengthlist__44p6_p7_1, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p6_p7_1, - 0 -}; - -static const long _vq_quantlist__44p6_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p6_p7_2[] = { - 1, 2, 3, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _44p6_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p6_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p6_p7_2, - 0 -}; - -static const long _vq_quantlist__44p6_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p6_p7_3[] = { - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p6_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p6_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p6_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p6_short[] = { - 2, 8,13,15,16,18,21,22, 5, 4, 6, 8,10,12,17,21, - 9, 5, 5, 6, 8,11,15,19,11, 6, 5, 5, 6, 7,12,14, - 14, 8, 7, 5, 4, 4, 9,11,16,11, 9, 7, 4, 3, 7,10, - 22,15,14,12, 8, 7, 9,11,21,16,15,12, 9, 5, 6, 8, -}; - -static const static_codebook _huff_book__44p6_short = { - 2, 64, - (char *)_huff_lengthlist__44p6_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p7_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p7_l0_0[] = { - 2, 4, 4, 7, 7, 8, 8,10,10,11,11,12,12, 4, 5, 5, - 7, 7, 9, 9,11, 9,12,11,12,12, 4, 5, 5, 7, 7, 9, - 9, 9,10,10,11,12,12, 7, 7, 7, 7, 8, 9, 8,11, 5, - 12, 6,12,10, 7, 7, 7, 8, 7, 8, 9, 5,11, 6,12,10, - 12, 8, 9, 9, 9, 9,10,10,11, 7,11, 7,12, 9, 8, 9, - 8, 9, 9,10,10, 7,11, 7,11, 9,11,10,10,10,10,10, - 10,10,11,10,11, 8,11, 9,10,10,10,10,10,10,10,10, - 11, 8,10, 9,11,10,11,11,11,11,11,10,11,10,12,10, - 12,11,10,11,11,11,11,10,11,10,11,10,12,11,12,11, - 12,12,12,12,12,12,12,12,12,12,13,12,11,12,11,12, - 12,12,12,12,11,12,11,12,13, -}; - -static const static_codebook _44p7_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p7_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p7_l0_0, - 0 -}; - -static const long _vq_quantlist__44p7_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p7_l0_1[] = { - 4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p7_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p7_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p7_l0_1, - 0 -}; - -static const long _vq_quantlist__44p7_l1_0[] = { - 54, - 29, - 79, - 0, - 108, -}; - -static const char _vq_lengthlist__44p7_l1_0[] = { - 1, 2, 3, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44p7_l1_0 = { - 2, 25, - (char *)_vq_lengthlist__44p7_l1_0, - 1, -514516992, 1620639744, 7, 0, - (long *)_vq_quantlist__44p7_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p7_lfe[] = { - 2, 3, 1, 3, -}; - -static const static_codebook _huff_book__44p7_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p7_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p7_long[] = { - 2, 7,14,16,17,17,18,20, 6, 3, 5, 8,10,11,13,15, - 13, 5, 3, 5, 8, 9,11,12,15, 7, 4, 3, 5, 7, 9,11, - 16,10, 7, 5, 6, 7, 9,10,17,11, 8, 7, 7, 6, 8, 8, - 19,13,11, 9, 9, 8, 8, 9,20,14,13,11,10, 8, 9, 9, -}; - -static const static_codebook _huff_book__44p7_long = { - 2, 64, - (char *)_huff_lengthlist__44p7_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p7_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p1_0[] = { - 2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, - 10, 8, 9,10, 8, 9,10,10,10,12,10,11,11, 8,10,10, - 10,11,12,10,11,11, 6, 8, 7, 8,10, 9, 8,10, 9, 8, - 10,10,10,11,11,10,12,11, 8,10, 9,10,11,11,10,12, - 10, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, - 9,11,11, 8,10,10,10,11,12,10,12,11, 7, 9, 9, 9, - 10,11, 9,11,11, 9, 9,11,10,11,12,11,11,12, 9,11, - 11,11,12,12,11,12,12, 7, 9, 9,10,11,11,10,12,11, - 9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11, - 13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, - 12,10,12,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, - 10,11,12,10,11,11,10,11,11,11,11,13,12,13,13, 9, - 10,11,11,12,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, - 10, 9,11,11,11,12,12,11,12,12, 9,11, 9,11,12,11, - 10,12,11, -}; - -static const static_codebook _44p7_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p7_p1_0, - 0 -}; - -static const long _vq_quantlist__44p7_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p7_p2_0[] = { - 4, 6, 6, 9, 9, 6, 8, 8,10,10, 6, 8, 8,10,10, 8, - 10,10,12,13, 8,10,10,13,12, 6, 8, 8,10,10, 8, 8, - 9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, - 13,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 8, 9, 8,11, - 10,10,11,11,13,13,10,11,10,13,12, 9,10,10,12,12, - 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,13, - 13,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, - 10,13,12,12,13,13,14,15,12,13,12,15,12, 6, 8, 8, - 10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,12,13, - 14,10,11,11,13,13, 8, 9, 9,11,12, 9,10,11,12,13, - 9,10,10,12,13,11,12,13,13,15,11,12,12,14,14, 8, - 9, 9,11,12, 9,10,11,12,13, 9,10,10,13,12,11,12, - 13,14,15,11,12,12,14,13,10,11,12,13,14,11,12,13, - 13,15,12,13,13,14,14,13,13,14,14,16,14,15,14,16, - 15,10,12,11,14,13,12,12,13,14,14,11,12,12,14,14, - 14,14,15,15,16,13,14,14,16,14, 6, 8, 8,11,10, 8, - 9, 9,11,11, 8,10, 9,12,11,10,11,11,13,13,10,12, - 11,14,13, 8, 9, 9,12,11, 9,10,10,12,13, 9,11,10, - 13,12,11,12,12,14,14,11,13,12,15,14, 8, 9, 9,12, - 11, 9,10,10,13,12, 9,11,10,13,12,11,12,12,14,14, - 11,13,12,15,13,10,11,12,13,14,11,12,13,13,14,12, - 13,12,14,14,13,13,14,14,16,14,15,14,16,16,10,12, - 11,14,13,12,13,13,14,14,11,13,12,15,13,14,14,15, - 16,16,13,14,13,16,14, 9,10,11,12,13,11,11,12,13, - 14,11,11,12,13,14,13,13,14,14,16,13,14,14,15,15, - 11,11,12,13,14,12,12,13,13,15,12,13,13,14,15,14, - 14,15,15,17,14,14,15,16,16,11,12,12,13,14,12,12, - 13,14,15,12,13,12,14,15,14,14,15,15,17,14,15,14, - 16,16,13,14,14,15,16,14,14,15,15,17,14,15,15,16, - 16,15,16,17,16,18,16,17,16,17,17,13,14,14,16,15, - 14,15,15,16,16,14,15,14,16,15,16,16,17,17,18,16, - 16,16,17,16, 9,11,10,13,12,11,12,11,14,13,11,12, - 11,14,13,13,14,14,16,15,13,14,13,16,14,11,12,12, - 14,13,12,12,13,14,14,12,13,13,15,14,14,14,15,16, - 16,14,15,14,17,15,11,12,11,14,13,12,13,13,15,14, - 12,13,12,15,13,14,15,14,16,16,14,15,14,17,15,13, - 14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16, - 16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, - 17,16,14,15,14,17,15,16,17,17,17,17,16,16,16,18, - 16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12,11, - 10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,12, 9, - 10,10,12,13, 9,10,10,13,12,11,11,12,13,15,11,12, - 12,15,14, 8, 9, 9,12,11, 9,10,11,12,13, 9,11,10, - 13,12,11,12,12,14,15,11,13,12,15,14,10,11,11,13, - 14,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16, - 13,14,14,16,15,11,12,11,14,13,12,13,13,14,14,11, - 13,12,14,13,14,14,15,16,16,13,14,14,16,14, 8, 9, - 9,11,12, 9,10,10,12,13, 9,10,10,13,12,11,12,12, - 14,15,11,12,12,14,14, 9, 9,10,11,13,10,10,12,12, - 14,10,10,11,13,13,12,12,13,14,16,12,12,13,15,15, - 9,10,10,13,12,10,11,11,13,14,10,12,11,14,13,12, - 13,13,15,15,12,13,13,15,15,11,11,12,13,15,12,12, - 13,13,15,12,13,13,14,15,14,14,15,15,17,14,15,15, - 16,16,11,13,12,15,14,13,13,13,15,15,12,14,13,15, - 14,15,15,15,16,16,14,15,15,17,15, 7, 9, 9,12,11, - 9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, - 13,12,15,14, 9,10,10,12,12,10,10,11,12,13,10,11, - 11,14,13,12,12,13,14,15,12,13,13,15,14, 9,10,10, - 12,12,10,11,11,13,13,10,11,10,14,12,12,13,13,15, - 15,12,13,12,15,13,11,12,12,14,14,12,12,13,14,15, - 12,13,13,15,15,14,13,14,13,16,14,15,15,16,16,11, - 12,12,14,14,13,13,14,15,15,12,13,12,15,14,15,15, - 15,16,16,14,15,14,17,14,10,11,12,13,14,11,12,13, - 14,15,11,12,12,14,15,13,14,15,15,17,14,14,14,16, - 16,11,12,13,12,15,12,12,14,13,16,13,13,14,13,16, - 14,14,15,14,17,15,15,15,15,17,11,13,12,15,15,13, - 13,14,15,16,12,14,13,16,15,15,15,15,17,17,15,15, - 15,17,16,14,14,15,14,16,14,14,16,14,17,15,15,15, - 14,17,16,16,17,15,18,17,17,17,16,18,14,15,15,17, - 16,15,16,16,17,17,15,16,15,17,16,17,17,17,18,18, - 16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11, - 13,12,15,14,14,14,14,16,16,14,15,14,16,15,11,12, - 12,15,13,12,13,13,15,14,13,14,13,16,14,14,15,15, - 16,16,15,16,15,17,16,11,13,12,15,14,13,13,14,15, - 15,12,14,13,16,14,15,15,15,17,17,14,16,15,17,16, - 14,14,14,16,15,14,15,15,16,16,15,16,15,17,16,16, - 16,16,16,17,16,17,17,18,17,14,15,15,16,16,15,15, - 16,17,16,14,15,15,17,16,17,17,17,18,18,16,17,16, - 18,16, 6, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, - 11,10,11,12,13,14,10,11,11,14,13, 8, 9, 9,11,12, - 9,10,11,12,13, 9,11,10,13,12,11,12,13,14,15,11, - 12,12,15,14, 8, 9, 9,12,11, 9,10,10,12,13, 9,10, - 10,13,12,11,12,12,14,15,11,12,12,14,13,11,11,12, - 13,14,11,12,13,13,15,12,13,13,14,14,13,14,14,14, - 16,14,15,14,16,16,10,11,11,14,13,11,12,12,14,14, - 11,12,12,14,13,13,14,14,15,16,13,14,13,16,14, 7, - 9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, - 13,14,15,11,12,12,14,14, 9,10,10,12,12,10,10,11, - 12,13,10,11,11,13,13,12,12,13,13,15,12,13,13,15, - 15, 9,10,10,12,12,10,11,11,13,13,10,11,10,13,12, - 12,13,13,14,15,12,13,12,15,13,11,12,12,14,14,12, - 12,13,14,15,13,14,13,15,15,14,13,15,13,16,15,15, - 15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12, - 15,14,14,15,15,16,17,13,14,13,16,13, 8, 9, 9,12, - 11, 9,10,10,12,13, 9,10,10,13,12,11,12,12,14,15, - 11,12,12,15,14, 9,10,10,12,13,10,11,12,13,14,10, - 11,11,14,13,12,13,13,15,15,12,13,13,15,15, 9,10, - 9,13,11,10,11,10,13,13,10,12,10,14,12,12,13,12, - 15,15,12,13,12,15,14,11,12,13,14,15,12,13,14,14, - 15,13,13,13,15,15,14,15,15,15,17,15,15,15,16,16, - 11,12,11,15,13,12,13,13,15,14,12,13,12,16,13,14, - 15,15,16,16,14,15,14,17,14,10,11,11,13,14,11,12, - 13,14,15,11,12,12,14,14,14,14,15,15,17,14,14,14, - 15,16,11,12,13,14,15,12,13,14,14,16,13,14,13,15, - 15,14,15,16,15,17,15,15,15,17,17,11,12,12,13,15, - 13,13,14,14,16,12,13,13,14,15,15,15,15,16,17,14, - 15,15,16,16,14,15,15,16,16,14,15,15,16,17,15,15, - 16,16,17,16,16,17,16,18,17,17,17,18,18,14,14,15, - 15,16,15,15,15,16,17,14,15,15,16,16,16,17,17,17, - 18,16,16,16,17,16,10,11,11,14,13,11,13,12,15,14, - 11,13,12,15,14,14,15,14,16,16,13,15,14,17,15,11, - 12,13,15,15,12,13,14,15,16,13,14,13,16,15,15,15, - 15,16,17,15,15,15,17,16,11,13,11,15,12,13,14,13, - 16,13,12,14,12,16,13,15,15,15,17,15,14,16,14,17, - 14,14,15,15,16,17,15,15,16,16,17,15,16,15,17,17, - 16,16,17,17,18,16,17,17,18,18,14,15,14,17,13,15, - 16,15,17,15,15,16,15,17,14,16,17,16,18,16,16,17, - 16,18,15, 9,11,11,13,13,10,12,12,14,14,11,12,12, - 14,14,13,14,14,15,16,13,14,14,16,16,10,11,12,14, - 14,11,12,13,14,15,11,13,13,15,15,13,14,14,15,16, - 14,15,15,16,16,11,12,12,14,14,12,13,13,15,15,12, - 13,12,15,14,14,15,15,16,16,14,15,14,17,16,12,13, - 13,15,16,13,13,14,15,16,13,14,14,16,16,14,15,16, - 16,17,15,16,16,17,17,13,14,14,16,15,14,15,15,17, - 16,14,15,14,17,15,16,16,17,17,17,16,16,16,18,16, - 10,11,12,14,14,11,12,13,14,15,11,13,12,15,15,13, - 14,15,16,16,14,15,15,17,16,11,11,13,14,15,12,12, - 14,14,16,12,13,14,15,15,14,14,15,16,17,15,15,15, - 17,17,12,13,12,15,15,13,14,14,16,15,13,14,13,16, - 15,15,16,15,17,17,15,16,15,17,16,13,12,15,14,16, - 14,13,15,14,17,14,13,15,15,17,15,14,17,15,18,16, - 15,17,17,18,14,15,15,17,16,15,16,16,17,17,15,16, - 15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11, - 14,14,11,12,12,14,15,11,13,12,15,14,13,14,14,16, - 16,14,15,14,16,16,11,12,12,14,14,12,12,13,15,15, - 12,13,13,15,15,14,14,15,16,16,14,15,15,17,16,11, - 12,12,15,15,13,13,13,15,15,12,13,13,15,15,15,15, - 15,17,17,14,15,15,17,16,13,14,13,16,15,14,14,14, - 16,16,14,15,14,17,16,15,15,16,16,17,16,17,16,18, - 17,14,15,15,16,16,15,15,15,17,17,14,15,15,17,16, - 16,17,17,18,18,16,17,16,18,16,12,13,13,15,15,13, - 14,14,16,16,13,14,14,16,16,14,15,16,16,18,15,16, - 16,17,17,13,13,14,14,16,14,14,15,15,17,14,14,15, - 15,17,15,15,17,15,18,16,16,17,17,18,13,14,14,16, - 16,14,15,15,16,17,14,15,15,17,16,16,17,16,17,18, - 16,17,16,18,17,15,14,16,13,18,16,15,17,14,18,16, - 15,17,14,18,17,16,18,15,19,17,17,18,16,19,15,16, - 16,17,17,16,17,17,18,18,16,17,16,18,17,18,18,18, - 19,18,17,18,17,19,17,11,12,12,15,15,13,13,14,15, - 16,13,14,13,16,15,15,15,15,16,17,15,16,15,17,16, - 12,13,13,15,15,13,13,14,15,16,14,15,14,16,15,15, - 15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14, - 15,16,16,13,14,13,16,15,16,16,16,17,17,15,16,15, - 18,16,15,15,15,17,15,14,15,15,16,16,16,17,16,17, - 16,16,16,17,16,17,17,18,17,19,18,15,15,16,17,17, - 16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16, - 17,16,18,16, 9,11,11,13,13,11,12,12,14,14,10,12, - 12,14,14,13,14,14,15,16,13,14,14,16,15,11,12,12, - 14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,16, - 17,14,15,15,16,16,10,12,11,14,14,11,13,13,15,15, - 11,13,12,15,14,14,14,15,16,16,13,14,14,16,15,13, - 14,14,15,16,14,14,15,15,17,14,15,15,16,17,16,16, - 16,16,18,16,16,17,17,17,12,13,13,16,15,13,14,14, - 16,16,12,14,13,16,15,15,16,16,17,17,14,16,15,17, - 16,10,11,11,14,14,11,12,13,14,15,11,12,12,15,14, - 14,14,15,16,16,13,14,14,16,16,11,12,12,14,15,12, - 13,14,15,15,13,13,13,15,15,14,15,15,16,17,15,15, - 15,16,17,11,12,12,14,14,12,13,13,15,15,12,13,12, - 15,15,14,15,15,16,17,14,15,14,16,16,14,14,15,16, - 16,14,15,15,16,17,15,16,15,17,17,16,16,17,16,18, - 16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,14, - 14,14,16,15,16,16,17,17,18,15,16,15,17,16,10,12, - 11,14,14,11,13,13,15,15,11,13,12,15,15,14,15,15, - 16,16,13,15,14,16,16,12,12,13,15,15,13,13,14,15, - 16,13,14,14,16,15,15,15,16,16,17,15,15,15,17,17, - 11,13,11,15,14,12,14,13,16,15,12,14,12,16,14,15, - 15,15,17,17,14,15,14,17,15,14,15,15,16,17,15,15, - 16,16,17,15,16,16,17,17,16,16,17,17,18,16,17,17, - 18,18,13,14,12,16,14,14,15,13,17,15,14,15,13,17, - 14,16,17,15,18,17,15,17,14,18,15,11,12,12,14,15, - 13,13,14,15,16,13,14,13,16,15,15,15,16,16,17,15, - 15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15, - 14,16,16,15,15,16,16,18,16,16,16,18,17,12,13,13, - 15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17, - 18,15,16,15,17,16,15,16,15,17,16,15,15,16,16,17, - 16,17,16,17,17,16,16,17,16,18,17,18,18,18,18,14, - 15,15,15,17,16,15,17,16,17,14,15,15,16,16,17,17, - 18,18,19,16,16,16,17,16,12,13,13,15,15,13,14,14, - 16,16,13,14,14,16,16,15,16,16,17,17,15,16,15,18, - 16,13,14,14,16,16,14,15,15,16,17,14,15,15,17,16, - 16,16,17,17,18,16,17,16,18,18,13,14,13,16,14,14, - 15,14,17,15,14,15,14,17,14,16,17,16,18,17,15,17, - 15,18,15,15,16,16,17,18,16,16,17,17,18,16,17,17, - 17,18,17,17,18,18,19,17,18,18,19,18,15,16,14,17, - 13,16,17,15,18,14,16,17,15,18,14,18,18,17,19,16, - 17,18,16,19,15, -}; - -static const static_codebook _44p7_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p7_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p7_p2_0, - 0 -}; - -static const long _vq_quantlist__44p7_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p3_0[] = { - 2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 8, 7, 8,10, 8, - 9, 9, 5, 7, 7, 8, 9, 9, 7,10, 8, 5, 7, 8, 8, 9, - 10, 8,10,10, 8, 9,10,10,10,12,10,12,12, 8,10,10, - 10,12,12,10,12,11, 5, 8, 7, 8,10,10, 8,10, 9, 8, - 10,10,10,11,12,10,12,12, 8,10, 9,10,12,12,10,12, - 10, 5, 8, 8, 7,10,10, 8,10,10, 7, 9,10, 9,10,12, - 10,12,12, 8,10,10,10,12,12,10,12,11, 7, 9,10, 9, - 11,12,10,12,11, 9, 9,12,11,10,14,12,12,13,10,12, - 11,12,13,13,11,14,12, 7,10, 9,10,11,11,10,12,11, - 9,11,11,11,11,13,12,14,13,10,12,12,12,14,14,11, - 14,12, 5, 8, 8, 8,10,10, 7,10,10, 8,10,10,10,11, - 12,10,12,12, 7,10, 9,10,12,12, 9,12,10, 7, 9,10, - 10,11,12,10,11,11,10,12,12,11,12,14,12,14,14, 9, - 11,11,12,13,14,11,13,11, 7,10, 9,10,11,12, 9,12, - 11,10,11,12,11,12,14,12,13,13, 9,12, 9,12,13,12, - 11,14,10, -}; - -static const static_codebook _44p7_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p7_p3_0, - 0 -}; - -static const long _vq_quantlist__44p7_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p3_1[] = { - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, - 8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, - 8, 8, 8, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, - 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 7, 8, 8, 8, - 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, - 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, - 9, 8, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 9, 8, 8, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, - 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 9, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, - 8, 9, 8, -}; - -static const static_codebook _44p7_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p7_p3_1, - 0 -}; - -static const long _vq_quantlist__44p7_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p4_0[] = { - 1, 5, 5, 5, 7, 8, 5, 8, 7, 5, 7, 8, 7, 8,10, 8, - 10,10, 5, 8, 7, 8,10,10, 7,10, 8, 6, 8, 9, 9,10, - 12, 9,11,11, 9,10,11,11,11,13,11,13,13, 9,11,11, - 11,12,13,11,13,11, 6, 9, 8, 9,11,11, 9,12,10, 9, - 11,11,11,11,13,11,13,13, 9,11,10,11,13,13,11,13, - 11, 6, 9, 9, 8,10,11, 9,12,11, 8,10,11,10,11,13, - 11,13,13, 9,11,11,11,13,12,11,13,11, 8,10,10, 9, - 11,12,10,12,12,10,10,12,11,11,14,12,13,14,10,12, - 12,12,13,13,11,14,11, 8,11,10,11,12,13,11,14,12, - 10,12,11,11,12,14,13,15,14,10,12,12,13,14,15,12, - 14,12, 5, 9, 9, 9,11,12, 8,11,10, 9,11,11,11,11, - 13,11,12,13, 8,11,10,11,13,13,10,13,11, 8,10,11, - 11,12,14,11,13,12,10,12,12,12,12,14,14,15,14,10, - 11,12,13,14,15,11,14,12, 8,10,10,10,12,12, 9,12, - 11,10,12,12,11,11,14,12,13,13,10,12,10,12,14,13, - 11,13,11, -}; - -static const static_codebook _44p7_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p7_p4_0, - 0 -}; - -static const long _vq_quantlist__44p7_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p7_p4_1[] = { - 7, 8, 8,10,10, 8, 9, 9,10,11, 8, 9, 9,10,10, 9, - 10,10,11,11, 9,10,10,11,11, 8, 9, 9,10,10, 9, 9, - 10,11,11, 9,10,10,11,11,10,10,11,11,11,10,11,11, - 11,11, 8, 9, 9,10,10, 9,10,10,11,11, 9,10, 9,11, - 11,10,11,11,11,11,10,11,10,11,11,10,10,10,11,11, - 10,11,11,11,11,10,11,11,11,11,11,11,11,11,12,11, - 11,11,11,12,10,10,10,11,11,10,11,11,11,11,10,11, - 11,11,11,11,11,11,12,11,11,11,11,12,11, 8, 9,10, - 11,11, 9,10,11,11,11, 9,10,10,11,11,10,11,11,12, - 12,10,11,11,12,12,10,10,10,11,11,10,10,11,11,12, - 10,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, - 10,10,11,11,10,11,11,12,12,10,11,11,12,11,11,12, - 12,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12, 8,10, 9,11,11, 9, - 10,10,11,11, 9,10,10,11,11,10,11,11,12,12,10,11, - 11,12,12,10,10,10,11,11,10,11,11,12,12,10,11,11, - 12,12,11,11,12,12,12,11,12,12,12,12,10,10,10,11, - 11,10,11,11,12,12,10,11,10,12,11,11,12,11,12,12, - 11,12,11,12,12,11,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, - 11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,10,11,11,11,12,11,11,12,12, - 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, - 11,11,12,12,12,11,12,12,12,12,12,12,12,12,12,12, - 12,13,12,13,12,12,12,13,13,11,12,11,12,12,11,12, - 12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12, - 13,13,12,12,12,12,12,12,12,12,12,13,12,12,13,13, - 13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12, - 12,12,13,13,13,12,12,12,13,12,12,13,13,13,13,12, - 13,13,13,13,10,11,11,12,11,11,11,11,12,12,11,12, - 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,12,12,12,13,13,11,12,11,12,12,12,12,12,12,12, - 11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,12, - 12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13, - 13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, - 13,13,12,13,12,13,12,12,13,13,13,13,13,13,13,13, - 13, 8,10,10,11,11, 9,10,10,11,11, 9,10,10,11,11, - 10,11,11,12,12,10,11,11,12,12, 9,10,10,11,11,10, - 10,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11, - 12,12,12,10,10,10,11,11,10,11,11,12,12,10,11,10, - 12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,12, - 12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, - 12,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12, 9,10, - 10,11,11,10,11,11,11,12,10,11,11,12,12,11,11,11, - 12,12,11,11,11,12,12,10,10,11,11,12,11,11,12,12, - 12,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12, - 10,11,11,12,12,11,11,11,12,12,11,12,11,12,12,11, - 12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, - 12,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,12, 9,10,10,11,11, - 10,11,11,12,12,10,11,11,12,11,11,12,11,12,12,11, - 12,11,12,12,10,11,11,12,12,11,11,11,12,12,11,12, - 11,12,12,11,12,12,12,12,12,12,12,12,12,10,11,11, - 12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,13, - 12,12,12,12,12,12,11,12,11,12,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,11, - 12,12,12,12,12,12,12,13,12,11,12,12,12,12,12,12, - 12,13,12,12,12,12,13,12,10,11,11,12,12,11,12,12, - 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, - 13,11,11,12,12,12,12,12,12,12,13,12,12,12,12,12, - 12,12,13,12,13,12,12,13,13,13,11,12,12,12,12,12, - 12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13, - 12,13,13,12,12,12,12,12,12,12,13,12,13,12,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,13, - 13,12,13,13,13,13,12,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, - 12,12,12,12,12,12,12,13,12,12,12,13,12,12,12,13, - 13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13, - 13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, - 12,12,12,12,12,12,13,13,13,13,12,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,12,12,12,13,12,12,13, - 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13, 8,10,10,11,11, 9,10,10,11,11, 9,10,10,11, - 11,10,11,11,12,12,10,11,11,12,12,10,10,10,11,11, - 10,11,11,11,12,10,11,11,12,12,11,11,12,12,12,11, - 11,12,12,12, 9,10,10,11,11,10,11,11,12,12,10,11, - 10,12,11,11,12,11,12,12,11,12,11,12,12,11,11,11, - 12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12, 9, - 10,10,11,11,10,11,11,12,12,10,11,11,12,12,11,11, - 12,12,12,11,12,12,12,12,10,11,11,12,12,11,11,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,10,11,11,12,12,11,11,12,12,12,11,11,11,12,12, - 12,12,12,12,12,11,12,12,12,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12, - 12,13,12,11,12,12,12,12,12,12,12,12,12,11,12,12, - 12,12,12,12,12,13,12,12,12,12,13,12, 9,10,10,11, - 11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12, - 11,12,11,12,12,10,11,11,12,12,11,11,12,12,12,11, - 11,11,12,12,11,12,12,12,12,11,12,12,12,12,10,11, - 10,12,11,11,11,11,12,12,11,12,11,12,12,11,12,12, - 12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13, - 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12, - 12,12,13,12,12,12,12,13,12,10,11,11,12,12,11,12, - 12,12,12,11,12,12,12,12,12,12,12,13,13,12,12,12, - 13,13,11,12,12,12,12,12,12,12,12,13,12,12,12,13, - 13,12,12,13,13,13,12,13,13,13,13,11,12,12,12,12, - 12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12, - 13,12,13,13,12,12,12,12,13,12,13,13,13,13,12,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, - 12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, - 11,12,12,12,12,12,12,12,13,13,12,12,12,13,12,11, - 12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,12, - 13,13,13,12,13,13,13,13,11,12,11,12,12,12,12,12, - 13,12,12,12,12,13,12,12,13,12,13,13,12,13,12,13, - 12,12,12,12,12,13,12,12,13,13,13,12,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,12,12,12,12,12,12, - 13,13,13,13,12,13,12,13,12,13,13,13,13,13,13,13, - 13,13,13,10,11,11,12,12,10,11,11,12,12,10,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, - 12,11,11,12,12,12,11,12,12,12,12,12,12,12,13,13, - 12,12,12,13,13,11,11,11,12,12,11,12,12,12,12,11, - 12,11,13,12,12,12,12,13,13,12,12,12,13,13,11,12, - 12,12,12,12,12,12,12,13,12,12,12,13,13,12,12,13, - 13,13,12,13,12,13,13,11,12,12,12,12,12,12,12,13, - 12,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13, - 10,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, - 12,12,13,13,12,12,12,13,13,11,11,12,12,12,11,12, - 12,12,13,12,12,12,13,13,12,12,13,13,13,12,12,13, - 13,13,11,12,12,12,12,12,12,12,13,13,12,12,12,13, - 13,12,13,13,13,13,12,13,12,13,13,12,12,12,12,13, - 12,12,13,12,13,12,12,13,13,13,12,12,13,13,13,12, - 13,13,13,13,12,12,12,12,13,12,12,13,13,13,12,12, - 12,13,13,13,13,13,13,13,12,13,13,13,13,10,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13, - 13,12,12,12,13,13,11,12,12,12,12,11,12,12,12,13, - 12,12,12,13,13,12,12,13,13,13,12,13,13,13,13,11, - 12,12,12,12,12,12,12,13,13,12,12,12,13,12,12,13, - 12,13,13,12,13,12,13,13,12,12,12,12,12,12,12,12, - 13,13,12,13,12,13,13,12,13,13,13,13,13,13,13,13, - 13,12,12,12,13,12,12,13,13,13,13,12,13,12,13,13, - 13,13,13,13,13,13,13,13,13,13,11,11,11,12,12,11, - 12,12,12,12,11,12,12,12,12,12,12,12,13,13,12,12, - 12,13,13,11,12,12,12,12,12,12,12,12,13,12,12,12, - 13,13,12,12,13,13,13,12,12,13,13,13,11,12,12,12, - 12,12,12,12,13,13,12,12,12,13,13,12,13,13,13,13, - 12,13,12,13,13,12,12,12,12,12,12,12,13,12,13,12, - 13,13,13,13,12,13,13,12,13,13,13,13,13,13,12,12, - 12,12,12,12,13,13,13,13,12,13,12,13,13,13,13,13, - 13,13,13,13,13,13,13,10,11,11,12,12,11,12,12,12, - 13,11,12,12,13,12,12,12,12,13,13,12,12,12,13,13, - 11,12,12,12,12,12,12,12,13,13,12,13,12,13,13,12, - 12,13,13,13,12,13,13,13,13,11,12,12,12,13,12,12, - 12,13,13,12,12,12,13,12,12,13,13,13,13,12,13,12, - 13,13,12,12,12,12,12,12,12,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,12,12,12,13,12, - 12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13,10,11,11,12,12,10,11,11,12,12,10,11, - 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, - 12,12,11,11,12,12,13,11,12,12,12,12,12,12,12,13, - 13,12,12,12,13,13,10,11,11,12,12,11,12,12,12,12, - 11,12,11,12,12,12,12,12,13,13,12,12,12,13,12,11, - 12,12,12,12,12,12,12,12,13,12,12,12,13,13,12,12, - 13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12, - 13,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, - 13,10,11,11,12,12,11,12,12,12,12,11,12,12,12,12, - 12,12,12,13,13,12,12,12,13,13,11,12,12,12,12,12, - 12,12,12,13,12,12,12,13,13,12,12,13,13,13,12,12, - 13,13,13,11,12,12,12,12,12,12,12,13,13,11,12,12, - 13,12,12,13,13,13,13,12,13,12,13,13,12,12,12,12, - 13,12,12,13,13,13,12,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,12,12,12,13,12,12,12,13,13,13,12, - 12,12,13,13,13,13,13,13,13,12,13,13,13,13,10,11, - 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, - 13,13,12,12,12,13,13,11,12,12,12,12,12,12,12,12, - 13,12,12,12,13,13,12,12,13,13,13,12,12,13,13,13, - 11,12,11,12,12,12,12,12,13,13,11,12,12,13,12,12, - 13,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, - 13,13,13,12,13,12,13,13,12,13,13,13,13,13,13,13, - 13,13,12,12,12,13,12,12,13,12,13,13,12,13,12,13, - 13,13,13,13,13,13,12,13,12,13,13,10,11,11,12,12, - 11,12,12,12,12,11,12,12,13,12,12,12,12,13,13,12, - 12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12, - 12,13,13,12,12,13,13,13,12,13,13,13,13,11,12,12, - 12,12,12,12,12,13,13,12,12,12,13,12,12,13,13,13, - 13,12,13,12,13,13,12,12,12,12,13,12,12,13,13,13, - 12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12, - 12,12,12,12,12,13,13,13,13,12,13,12,13,13,13,13, - 13,13,13,13,13,13,13,13,11,11,11,12,12,11,12,12, - 12,12,11,12,12,12,12,12,12,12,13,13,12,12,12,13, - 13,11,12,12,12,12,12,12,12,13,13,12,12,12,13,13, - 12,12,13,13,13,12,13,13,13,13,11,12,12,12,12,12, - 12,12,13,13,12,12,12,13,12,12,13,12,13,13,12,13, - 12,13,13,12,12,12,12,12,12,13,13,13,13,12,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,12,12,12,12, - 12,12,13,13,13,13,12,13,12,13,12,13,13,13,13,13, - 13,13,13,13,12, -}; - -static const static_codebook _44p7_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p7_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p7_p4_1, - 0 -}; - -static const long _vq_quantlist__44p7_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p7_p5_0[] = { - 2, 6, 6, 9, 9, 5, 7, 8,10,11, 5, 8, 7,11,10, 8, - 10,11,12,13, 8,11,10,13,12, 6, 7, 8,10,11, 7, 8, - 10,10,12, 8, 9, 9,12,11,10,10,12,11,14,10,11,12, - 14,13, 6, 8, 7,11,10, 8, 9, 9,11,12, 7,10, 8,12, - 10,10,12,12,13,14,10,12,10,14,11, 9,10,11,11,12, - 10,10,11,11,13,11,12,12,13,13,12,11,13,11,15,13, - 14,13,14,14, 9,11,10,12,11,11,12,12,13,13,10,11, - 10,13,11,13,13,14,14,14,12,13,11,14,11, 7, 8, 9, - 11,12, 9, 9,11,12,13, 9,10,10,13,12,11,12,13,13, - 15,11,12,12,14,14, 9,10,10,12,13,10,10,12,12,14, - 11,11,11,13,13,12,12,13,13,15,12,13,13,15,14, 9, - 10,10,12,13,10,11,11,13,14,10,12,11,14,13,12,13, - 13,14,15,12,13,13,15,14,12,12,13,13,14,12,13,13, - 13,15,13,14,14,14,15,14,14,15,14,16,14,15,15,16, - 16,12,13,13,14,14,13,13,14,15,14,12,13,13,15,14, - 14,15,15,15,16,14,15,14,16,14, 7, 9, 8,12,11, 9, - 10,10,12,13, 9,11, 9,13,12,11,12,12,14,14,11,13, - 12,15,13, 9,10,10,13,12,10,11,12,13,14,10,12,11, - 14,13,12,13,13,14,15,13,13,13,15,14, 9,10,10,13, - 12,11,11,11,13,13,10,12,10,14,12,13,13,13,14,15, - 12,13,12,15,13,12,13,13,14,14,12,13,13,14,15,13, - 14,13,15,15,14,14,15,14,16,14,15,15,16,15,12,13, - 12,14,13,13,13,13,15,14,12,13,13,15,13,14,15,15, - 16,15,14,15,14,16,14,11,12,12,13,14,12,13,14,14, - 15,12,13,13,14,15,14,14,15,15,16,14,15,15,16,16, - 12,13,13,14,15,13,13,14,14,16,13,14,14,15,15,15, - 15,16,15,17,15,15,15,16,16,12,13,13,14,15,13,14, - 14,15,16,13,14,14,15,15,15,15,16,16,17,15,15,15, - 17,16,14,15,15,16,16,15,15,16,15,16,15,16,16,16, - 17,16,16,17,16,18,16,16,17,18,17,14,15,15,16,16, - 15,16,16,16,17,15,16,15,17,16,16,17,17,17,18,16, - 16,16,17,16,11,12,12,14,13,12,13,13,15,14,12,14, - 13,15,14,14,15,15,16,16,14,15,14,16,15,12,13,13, - 15,14,13,14,14,15,15,13,14,14,16,15,15,15,15,16, - 16,15,16,15,17,16,12,13,13,15,14,13,14,14,15,15, - 13,14,13,16,14,15,15,15,16,16,15,15,15,17,15,14, - 15,15,16,16,15,15,15,16,16,15,16,16,17,17,16,16, - 17,17,17,16,17,17,18,17,14,15,15,16,15,15,15,16, - 16,16,15,15,15,17,15,17,17,17,18,17,16,17,16,18, - 16, 6, 9, 9,12,12, 8,10,10,12,13, 9,11,10,13,12, - 10,12,12,14,14,11,13,12,14,14, 8,10,10,12,12, 9, - 10,11,12,14,10,11,11,13,13,12,12,13,13,15,12,13, - 13,15,14, 9,10,10,13,13,10,11,11,13,13,10,12,10, - 14,13,12,13,13,14,15,12,13,13,15,14,11,12,12,13, - 14,12,12,13,13,15,12,13,13,14,14,13,13,14,13,16, - 14,15,15,16,15,11,12,12,14,14,13,13,13,15,14,12, - 13,13,15,14,14,15,15,16,15,14,14,14,16,14, 7, 9, - 10,12,12, 9,10,11,13,13, 9,11,10,13,13,11,12,13, - 14,15,12,13,13,15,14, 9,10,11,12,13,10,10,12,13, - 14,11,11,12,14,14,12,12,14,14,15,13,13,13,15,15, - 9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13, - 14,13,15,15,12,14,13,15,14,12,12,13,13,15,12,12, - 14,13,15,13,14,14,15,15,14,14,15,14,17,14,15,15, - 16,16,12,13,13,15,14,13,14,14,15,15,12,14,13,15, - 14,14,15,15,16,16,14,15,14,16,14, 7,10,10,12,12, - 10,11,11,12,13,10,12,10,14,12,12,13,13,14,15,12, - 13,13,15,14, 9,11,10,13,12,10,10,12,12,14,11,13, - 12,14,13,13,13,14,13,15,13,14,14,15,14,10,11,11, - 13,13,12,12,12,13,14,10,12,10,14,12,13,14,14,15, - 15,13,14,13,15,13,12,13,13,14,14,12,12,13,14,15, - 13,14,14,15,15,13,13,14,13,15,14,15,15,16,16,12, - 13,13,14,14,13,14,14,15,15,12,13,13,15,13,15,15, - 15,16,16,13,14,13,16,13,11,12,13,14,14,12,13,14, - 14,15,12,13,13,15,15,14,14,15,15,17,14,15,15,16, - 16,12,13,14,14,15,13,13,14,14,16,13,14,14,15,16, - 14,14,16,15,17,15,15,16,16,16,12,13,13,15,15,13, - 14,14,15,16,13,14,14,15,16,15,15,16,17,17,15,16, - 15,17,16,14,15,15,15,16,15,15,16,15,17,15,15,16, - 16,17,16,16,16,16,18,16,16,17,17,17,14,15,15,16, - 16,15,16,16,16,17,15,16,15,17,16,16,17,17,17,17, - 16,17,16,18,17,11,12,12,14,14,13,13,14,14,15,13, - 14,13,15,14,14,15,15,15,16,14,15,15,17,15,12,13, - 13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,15, - 15,16,15,16,15,17,16,12,13,13,15,15,14,14,14,15, - 16,13,14,13,16,15,15,15,16,16,17,15,16,15,17,15, - 14,15,15,16,16,14,15,15,16,16,15,16,16,17,16,15, - 15,16,15,17,16,17,17,18,17,14,15,15,16,16,15,16, - 16,16,17,14,15,15,17,16,17,17,17,17,18,15,16,16, - 18,15, 6, 9, 9,12,12, 9,10,11,12,13, 8,10,10,13, - 12,11,12,13,14,14,10,12,12,14,13, 9,10,10,12,13, - 10,10,12,13,14,10,11,11,13,13,12,13,13,14,15,12, - 13,13,15,14, 8,10,10,12,12,10,11,11,13,13, 9,11, - 10,13,13,12,13,13,14,15,12,13,12,15,13,11,12,12, - 14,14,12,13,13,13,15,13,13,13,14,15,14,14,15,14, - 16,14,15,15,15,15,11,12,12,14,13,12,13,13,15,14, - 12,13,12,15,13,14,14,15,16,16,13,14,13,16,13, 7, - 10,10,12,12,10,10,12,12,14,10,11,11,13,12,12,13, - 13,13,15,12,13,13,15,14,10,11,11,13,13,10,10,12, - 12,14,12,12,12,14,13,13,13,14,13,15,13,14,14,15, - 14, 9,10,11,13,13,11,12,12,13,14,10,12,10,14,12, - 13,13,14,14,15,13,13,12,15,13,12,13,13,14,14,12, - 13,13,14,15,13,14,14,15,15,13,13,15,13,16,15,15, - 15,16,16,12,13,13,14,14,13,14,14,15,15,12,13,12, - 15,14,15,15,15,16,16,13,14,13,15,13, 7,10, 9,12, - 12, 9,10,11,13,13, 9,11,10,13,13,11,13,13,14,15, - 11,13,12,15,14, 9,11,11,13,13,10,10,12,13,14,11, - 12,12,14,14,12,13,14,14,15,13,13,13,15,15, 9,11, - 10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13, - 15,15,12,14,12,15,14,12,13,13,14,15,13,13,14,14, - 15,13,14,14,15,15,14,14,15,14,17,14,15,15,16,16, - 12,13,12,15,13,13,14,14,15,15,12,14,13,15,13,14, - 15,15,16,16,14,15,14,16,14,11,12,12,14,14,13,13, - 14,14,15,13,14,13,15,15,14,15,15,16,17,14,15,15, - 16,15,12,13,13,15,15,13,13,14,15,16,14,14,14,16, - 15,15,15,16,15,17,15,16,15,17,16,12,13,13,14,15, - 14,14,15,15,16,13,14,13,15,15,15,15,16,16,17,15, - 15,15,16,15,14,15,15,16,16,14,15,15,16,17,15,16, - 16,17,17,16,15,16,15,17,16,17,17,17,17,14,15,15, - 15,16,15,15,16,16,17,14,15,15,16,16,16,16,17,17, - 18,15,16,15,17,15,11,13,12,14,14,12,13,13,15,15, - 12,14,13,15,14,14,15,15,16,16,14,15,14,16,15,12, - 13,13,15,15,13,14,14,15,16,13,14,14,16,16,15,15, - 16,16,17,15,16,15,17,16,12,13,13,15,14,13,14,14, - 16,15,13,14,13,16,14,15,16,15,17,16,15,15,14,18, - 15,14,15,15,16,16,15,15,16,16,17,15,16,15,17,16, - 16,16,17,17,18,16,17,17,18,17,14,15,15,16,15,15, - 16,15,17,16,15,15,15,17,15,16,17,17,18,17,16,17, - 16,18,15,10,12,12,14,14,12,13,13,14,14,12,13,13, - 14,14,13,14,14,15,15,13,14,14,16,15,11,12,13,14, - 14,12,13,13,15,15,12,13,13,15,15,13,14,15,15,16, - 14,15,15,16,16,12,13,13,14,14,13,13,14,15,15,13, - 14,13,15,15,14,15,15,16,16,14,15,14,16,15,13,14, - 14,15,15,13,14,14,15,16,14,14,15,16,16,14,15,15, - 15,17,15,16,16,17,17,13,14,14,15,15,14,15,15,16, - 16,14,15,15,16,16,15,16,16,16,17,15,16,15,17,16, - 11,12,12,14,14,12,13,13,14,15,12,13,13,15,14,13, - 14,14,15,16,13,14,14,16,15,12,13,13,14,15,13,13, - 14,15,15,13,14,14,15,15,14,14,15,15,17,14,15,15, - 16,16,12,13,13,15,15,13,14,14,15,15,13,14,13,15, - 15,14,15,15,16,17,14,15,15,16,16,13,13,14,15,16, - 14,14,15,15,16,14,15,15,16,16,15,15,16,15,18,15, - 16,16,17,17,14,15,15,16,16,15,15,15,16,16,14,15, - 15,17,16,16,16,16,17,17,15,16,16,17,16,10,12,12, - 14,14,12,13,13,14,15,12,13,13,15,14,14,14,15,15, - 16,14,15,14,16,15,12,13,13,15,14,13,13,14,15,15, - 13,14,14,15,15,14,14,15,15,16,14,15,15,16,16,12, - 13,13,15,15,13,14,14,15,16,13,14,13,15,14,15,15, - 15,16,16,14,15,15,16,15,13,14,14,16,15,14,14,14, - 15,16,14,15,15,16,16,15,15,16,15,17,16,17,16,17, - 17,14,14,15,15,16,15,15,16,16,16,14,15,14,16,15, - 16,16,16,17,17,15,16,15,17,15,11,13,13,14,15,13, - 13,14,15,15,13,14,13,15,15,14,15,15,15,16,14,15, - 15,17,15,13,13,14,15,15,13,14,15,15,16,14,14,14, - 16,16,15,14,16,15,17,15,16,16,17,16,13,14,14,15, - 15,14,14,14,16,16,13,15,14,16,15,15,15,16,17,17, - 15,16,15,17,16,14,15,15,15,16,15,15,16,15,17,15, - 16,16,16,17,16,16,17,15,18,16,17,17,17,17,14,15, - 15,16,16,15,16,16,17,17,15,16,15,17,16,16,17,17, - 18,18,16,17,15,18,16,10,12,12,14,14,13,13,14,14, - 15,13,14,13,15,14,14,15,15,15,16,15,15,15,16,15, - 12,13,13,15,14,12,12,14,14,15,14,15,14,16,15,15, - 14,15,14,17,15,16,16,17,16,12,13,13,14,15,14,14, - 15,15,16,13,14,12,16,14,15,16,16,16,17,15,16,14, - 17,15,14,15,14,16,15,14,14,15,15,15,15,16,15,17, - 16,15,14,16,14,16,16,17,17,18,17,14,14,15,15,16, - 15,16,16,16,17,14,15,14,16,15,16,16,17,17,17,15, - 16,14,17,14,10,12,12,14,13,12,13,13,14,14,11,13, - 12,14,14,13,14,14,15,16,13,14,14,16,15,12,13,13, - 14,14,13,13,14,15,15,13,14,13,15,15,14,14,15,15, - 16,14,15,15,16,16,11,13,12,14,14,12,13,13,15,15, - 12,13,13,15,15,14,15,15,16,16,13,14,14,16,15,13, - 14,14,15,15,14,15,15,15,16,14,15,15,16,16,15,16, - 16,16,17,16,16,16,17,17,13,14,14,15,15,14,15,15, - 16,16,13,14,14,16,15,15,16,16,17,17,15,15,15,17, - 15,11,12,12,14,14,12,13,13,14,15,12,13,13,15,14, - 14,14,15,15,16,14,14,14,16,15,12,13,13,15,14,13, - 13,14,15,15,13,14,14,16,15,14,15,15,15,16,15,15, - 15,16,16,12,13,13,14,15,13,13,14,15,15,13,14,13, - 15,15,15,15,15,16,16,14,15,14,16,15,14,14,15,16, - 16,14,15,15,15,16,15,16,15,16,16,15,15,16,15,17, - 16,16,16,17,17,13,14,14,15,16,14,15,15,16,16,14, - 14,14,16,16,16,16,16,17,17,15,15,15,17,15,11,12, - 12,14,14,12,13,13,14,15,12,13,13,15,14,14,14,14, - 15,16,13,14,14,16,15,12,13,13,15,15,13,13,14,15, - 16,13,14,14,15,15,14,15,15,16,17,14,15,15,17,16, - 12,13,13,15,14,13,14,14,15,15,13,14,13,15,15,14, - 15,15,16,16,14,15,14,17,15,14,15,15,16,16,14,15, - 15,16,17,15,15,15,17,17,15,16,16,16,17,16,17,16, - 17,17,13,15,14,16,15,14,15,15,16,16,14,15,14,16, - 15,16,16,16,17,17,15,16,15,17,15,10,12,12,14,14, - 13,13,14,14,15,13,14,13,15,14,14,15,15,15,17,14, - 15,15,16,15,12,13,13,15,14,12,12,14,14,15,14,15, - 14,16,15,15,14,16,15,17,15,16,16,17,16,12,13,13, - 14,15,14,14,15,15,16,12,14,12,15,14,15,16,16,16, - 17,15,16,14,17,14,14,15,14,16,16,14,14,15,15,16, - 15,16,16,17,16,15,14,16,14,17,16,17,17,18,17,14, - 14,15,15,16,15,15,16,16,17,14,15,14,16,15,16,17, - 17,17,18,15,16,14,17,14,11,13,13,15,14,13,13,14, - 15,15,12,14,13,15,15,14,15,15,15,17,14,15,14,16, - 15,13,14,14,15,15,13,14,15,15,16,14,15,14,16,16, - 15,15,16,16,17,15,16,16,17,17,13,14,13,15,15,14, - 14,14,16,16,13,15,14,16,15,15,16,16,17,17,15,16, - 14,17,15,15,15,15,16,17,15,15,16,16,17,15,16,16, - 17,17,16,15,17,16,17,17,17,17,18,18,14,15,15,17, - 15,15,16,16,17,16,15,16,15,17,15,16,17,17,17,17, - 16,17,15,18,15, -}; - -static const static_codebook _44p7_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p7_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p7_p5_0, - 0 -}; - -static const long _vq_quantlist__44p7_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p7_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p7_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p7_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p7_p5_1, - 0 -}; - -static const long _vq_quantlist__44p7_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p6_0[] = { - 2, 5, 6, 5, 7, 8, 5, 8, 7, 5, 7, 7, 7, 7, 9, 8, - 9, 9, 5, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, - 10, 8, 9, 9, 8, 9,10, 9, 9,11,10,10,11, 8,10, 9, - 10,10,11, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, - 9,10, 9,10,10,10,11,10, 8,10, 9,10,11,10, 9,11, - 9, 6, 8, 8, 7, 9, 9, 8, 9, 9, 7, 9, 9, 9, 9,10, - 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, 9, - 10,10, 9,10,10, 9, 9,10,10, 9,11,10,11,11, 9,10, - 10,10,11,11,10,11,10, 6, 9, 8, 9,10,10, 9,10, 9, - 8,10,10, 9, 9,10,10,11,11, 9,10,10,10,11,11, 9, - 11, 9, 6, 8, 8, 8, 9, 9, 7, 9, 9, 8, 9, 9, 9, 9, - 10, 9,10,10, 7, 9, 9, 9,10,10, 9,10, 9, 6, 8, 9, - 9, 9,10, 9,10,10, 9,10,10, 9, 9,11,10,11,11, 8, - 10,10,10,11,11, 9,10, 9, 7, 9, 9, 9,10,10, 9,10, - 10, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, - 10,11, 9, -}; - -static const static_codebook _44p7_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p7_p6_0, - 0 -}; - -static const long _vq_quantlist__44p7_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p6_1[] = { - 4, 7, 7, 6, 7, 8, 6, 8, 7, 7, 7, 8, 7, 7, 8, 8, - 8, 8, 7, 7, 7, 8, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, - 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, - 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, 8, - 8, 9, 8, 9, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, - 8, 9, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, - 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, - 8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 9, 9, 9, - 8, 9, 8, -}; - -static const static_codebook _44p7_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p7_p6_1, - 0 -}; - -static const long _vq_quantlist__44p7_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p7_p7_0 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p7_0, - 1, -513979392, 1633504256, 2, 0, - (long *)_vq_quantlist__44p7_p7_0, - 0 -}; - -static const long _vq_quantlist__44p7_p7_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p7_p7_1[] = { - 1, 5, 5, 4,10,10, 5,10,10, 5,10,10,10,10,10,10, - 10,10, 5,10,10,10,10,10, 9,10,10, 6,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10, 7,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,11,11, -}; - -static const static_codebook _44p7_p7_1 = { - 5, 243, - (char *)_vq_lengthlist__44p7_p7_1, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44p7_p7_1, - 0 -}; - -static const long _vq_quantlist__44p7_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p7_p7_2[] = { - 1, 3, 2, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _44p7_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p7_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p7_p7_2, - 0 -}; - -static const long _vq_quantlist__44p7_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p7_p7_3[] = { - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p7_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p7_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p7_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p7_short[] = { - 3, 9,14,16,17,19,22,22, 5, 4, 6, 9,11,13,17,20, - 9, 5, 5, 6, 9,11,15,19,11, 7, 5, 5, 7, 9,13,17, - 14, 9, 7, 6, 6, 7,11,14,16,11, 9, 7, 6, 4, 4, 8, - 19,15,13,11, 9, 4, 3, 4,21,16,16,15,12, 6, 4, 4, -}; - -static const static_codebook _huff_book__44p7_short = { - 2, 64, - (char *)_huff_lengthlist__44p7_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p8_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p8_l0_0[] = { - 2, 4, 4, 7, 7, 8, 8,10,10,11,11,12,12, 4, 5, 5, - 7, 7, 9, 9,10, 9,12,10,12,12, 4, 5, 5, 7, 7, 9, - 9, 9,10,10,12,12,12, 7, 7, 7, 7, 8, 9, 8,11, 5, - 12, 6,12,10, 7, 7, 7, 8, 7, 8, 9, 5,11, 6,12,10, - 12, 8, 9, 9, 9, 9, 9, 9,11, 7,11, 7,11, 9, 8, 9, - 9, 9, 9, 9, 9, 7,10, 7,11, 9,11,10,10,10,10,10, - 10,10,11,10,11, 8,12, 9,10,10,10,10,10,10,10,10, - 11, 8,11, 9,12,10,11,11,11,11,11,11,11,11,12,10, - 12,11,10,11,11,11,11,11,11,11,11,10,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,11,12,12,12, - 12,12,12,12,12,12,11,12,12, -}; - -static const static_codebook _44p8_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p8_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p8_l0_0, - 0 -}; - -static const long _vq_quantlist__44p8_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p8_l0_1[] = { - 4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p8_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p8_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p8_l0_1, - 0 -}; - -static const long _vq_quantlist__44p8_l1_0[] = { - 54, - 29, - 79, - 0, - 108, -}; - -static const char _vq_lengthlist__44p8_l1_0[] = { - 1, 2, 3, 6, 7, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44p8_l1_0 = { - 2, 25, - (char *)_vq_lengthlist__44p8_l1_0, - 1, -514516992, 1620639744, 7, 0, - (long *)_vq_quantlist__44p8_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p8_lfe[] = { - 2, 3, 1, 3, -}; - -static const static_codebook _huff_book__44p8_lfe = { - 2, 4, - (char *)_huff_lengthlist__44p8_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p8_long[] = { - 2, 7,14,16,17,18,20,21, 7, 4, 6, 8,11,12,14,16, - 13, 5, 4, 4, 8, 9,11,13,15, 8, 4, 3, 5, 7, 9,10, - 17,11, 8, 4, 4, 6, 9, 9,17,11, 9, 7, 6, 5, 7, 8, - 19,13,11, 9, 9, 7, 8, 8,21,15,13,11,10, 8, 8, 7, -}; - -static const static_codebook _huff_book__44p8_long = { - 2, 64, - (char *)_huff_lengthlist__44p8_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p8_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p8_p1_0[] = { - 2, 5, 5, 4, 7, 7, 4, 7, 7, 5, 7, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, - 10, 8, 9,10, 8, 9,10,10,10,12,10,11,12, 8,10,10, - 10,11,12,10,11,11, 6, 8, 7, 8,10, 9, 8,10, 9, 8, - 10,10,10,11,11,10,12,11, 8,10, 9,10,12,11,10,12, - 10, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, - 9,11,11, 8,10,10,10,12,12,10,12,11, 7, 9, 9, 9, - 10,11, 9,11,11, 9, 9,11,10,11,12,10,11,12, 9,11, - 11,11,12,12,11,12,12, 7, 9, 9,10,11,11,10,12,11, - 9,11,10,11,11,12,11,13,12,10,11,11,12,13,13,11, - 13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, - 12,10,12,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, - 10,11,12,10,11,11,10,11,11,11,11,13,12,13,13, 9, - 10,11,12,12,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, - 10, 9,11,11,11,12,12,11,12,12, 9,11, 9,10,12,11, - 10,12,11, -}; - -static const static_codebook _44p8_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p8_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p8_p1_0, - 0 -}; - -static const long _vq_quantlist__44p8_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p8_p2_0[] = { - 4, 6, 6, 9, 9, 6, 8, 8,10,10, 6, 8, 8,10,10, 8, - 9,10,12,12, 8,10, 9,12,12, 6, 8, 8,10,10, 8, 8, - 9,10,11, 8, 9, 9,11,11, 9,10,11,12,13,10,11,11, - 13,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 8, 9, 8,11, - 10,10,11,11,13,13, 9,11,10,13,12, 9,10,10,12,12, - 10,10,11,12,13,10,11,11,13,13,12,12,13,12,15,12, - 13,13,15,14, 9,10,10,12,12,10,11,11,13,13,10,11, - 10,13,12,12,13,13,14,15,12,13,12,15,12, 7, 8, 8, - 10,11, 8, 9,10,11,12, 8, 9, 9,11,11,10,11,11,13, - 14,10,11,11,13,13, 8, 9, 9,11,12, 9,10,11,11,13, - 9,10,10,12,12,11,11,12,13,15,11,12,12,14,14, 8, - 9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, - 12,14,15,11,12,12,14,14,10,11,12,13,13,11,12,12, - 13,14,12,12,12,14,14,13,13,14,14,16,14,14,14,16, - 15,10,11,11,13,13,12,12,12,14,14,11,12,12,14,13, - 14,14,14,15,16,13,14,13,16,14, 7, 8, 8,11,10, 8, - 9, 9,11,11, 8,10, 9,12,11,10,11,11,13,13,10,11, - 11,14,13, 8, 9, 9,12,11, 9,10,10,12,12, 9,11,10, - 13,12,11,12,12,13,14,11,12,12,15,14, 8, 9, 9,12, - 11, 9,10,10,12,12, 9,11,10,13,11,11,12,12,14,14, - 11,12,12,14,13,10,11,11,13,13,11,12,12,13,14,12, - 13,12,14,14,13,13,14,14,16,13,14,14,16,15,10,11, - 11,13,13,12,12,12,14,14,11,12,12,14,13,13,14,14, - 15,15,13,14,13,16,14, 9,10,11,12,13,11,11,12,12, - 14,11,11,12,13,14,13,13,14,14,16,13,13,14,15,15, - 11,11,12,12,14,12,12,13,13,15,12,12,13,13,15,14, - 14,15,15,16,14,14,14,15,16,11,12,12,13,14,12,12, - 13,14,15,12,13,12,14,14,14,14,15,15,16,14,14,14, - 16,16,13,13,14,15,16,14,14,15,15,16,14,15,15,16, - 16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15, - 14,14,15,16,16,14,15,14,16,16,16,16,16,17,18,15, - 16,16,17,16, 9,11,10,13,12,11,12,11,14,13,11,12, - 11,14,12,13,14,13,15,14,13,14,13,16,14,11,12,12, - 14,13,12,12,13,14,14,12,13,12,15,14,14,14,14,16, - 16,14,15,14,17,15,11,12,11,14,12,12,13,12,15,13, - 12,13,12,15,13,14,14,14,16,15,14,15,14,16,15,13, - 14,14,15,15,14,14,15,16,16,14,15,14,16,16,15,15, - 16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, - 16,16,14,15,14,17,15,16,16,16,17,17,15,16,15,18, - 16, 7, 8, 8,10,11, 8, 9, 9,11,12, 8, 9, 9,12,11, - 10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,11, 9, - 10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11,12, - 12,14,14, 8, 9, 9,12,11, 9,10,11,12,13, 9,11,10, - 13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13, - 13,11,12,12,13,14,11,12,12,14,14,13,13,14,14,16, - 13,14,14,16,15,10,12,11,13,13,12,12,12,14,14,11, - 12,12,14,13,14,14,14,15,16,13,14,14,16,14, 8, 9, - 9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,11,12, - 13,14,11,12,12,14,14, 9, 9,10,11,12,10,10,11,12, - 13,10,10,11,12,13,12,12,13,14,15,12,12,13,14,15, - 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, - 13,13,15,15,12,13,13,15,14,11,11,12,13,14,12,12, - 13,13,15,12,12,13,14,15,14,14,15,14,16,14,14,15, - 15,16,11,12,12,14,14,12,13,13,15,15,12,13,13,15, - 14,14,15,15,16,16,14,15,14,17,15, 8, 9, 9,11,11, - 9,10,10,12,12, 9,11,10,13,12,11,12,12,14,14,11, - 13,12,15,13, 9,10,10,12,12,10,10,11,12,13,10,12, - 11,13,13,12,12,13,13,15,12,13,13,15,14, 9,10,10, - 12,12,11,11,12,13,13,10,12,10,13,12,12,13,13,15, - 15,12,13,13,15,13,11,12,12,14,14,12,12,13,14,14, - 12,13,13,15,14,13,13,14,13,16,14,15,14,16,16,11, - 12,12,14,14,13,13,13,15,15,12,13,12,15,14,14,15, - 15,16,17,14,15,13,16,13,10,11,11,13,14,11,12,12, - 13,15,11,12,12,14,14,13,14,14,15,16,13,14,14,16, - 16,11,11,12,12,14,12,12,13,13,15,12,13,13,13,15, - 14,14,15,14,17,14,14,15,15,16,11,12,12,14,14,12, - 13,13,15,15,12,13,13,15,15,14,15,15,16,17,14,15, - 15,16,16,13,14,14,14,16,14,14,15,14,17,14,15,15, - 14,17,16,16,17,15,18,16,16,17,16,18,13,14,14,16, - 16,14,15,15,17,16,14,15,15,17,16,16,17,17,18,18, - 16,17,16,18,17,10,11,11,14,13,11,12,12,14,14,11, - 13,12,15,14,14,14,14,16,15,14,15,14,16,15,11,12, - 12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15, - 16,16,14,15,15,17,15,11,12,12,14,14,13,13,13,15, - 15,12,13,13,15,14,15,15,15,17,17,14,15,15,17,15, - 13,14,14,16,15,14,15,15,16,16,15,15,15,17,16,16, - 16,16,16,17,16,17,16,18,17,14,14,14,16,16,15,15, - 15,16,16,14,15,14,17,16,16,17,17,17,18,16,17,16, - 18,16, 7, 8, 8,11,11, 8, 9, 9,11,12, 8, 9, 9,12, - 11,10,11,11,13,14,10,11,11,14,13, 8, 9, 9,11,12, - 9,10,11,12,13, 9,11,10,13,12,11,12,12,13,14,11, - 12,12,14,14, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,13,12,11,12,12,14,14,11,12,11,14,13,10,11,12, - 13,13,11,12,12,13,14,12,13,12,14,14,13,13,14,14, - 16,13,14,14,16,15,10,11,11,13,13,11,12,12,14,14, - 11,12,12,14,13,13,14,14,15,16,13,14,13,16,14, 8, - 9, 9,11,11, 9,10,11,12,13, 9,10,10,12,12,11,12, - 13,13,14,11,12,12,14,14, 9,10,10,12,12,10,10,11, - 12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15, - 15, 9,10,10,12,12,10,11,12,13,14,10,11,10,13,12, - 12,13,13,14,15,12,13,12,15,13,12,12,12,14,14,12, - 12,13,14,15,13,13,13,15,15,14,14,15,13,16,14,15, - 15,16,16,11,12,12,14,14,12,13,13,14,15,12,13,12, - 14,14,14,14,15,16,16,13,14,13,16,14, 8, 9, 9,11, - 11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14, - 11,12,11,14,14, 9,10,10,12,12,10,11,11,13,13,10, - 11,11,13,13,12,13,13,14,15,12,13,13,15,14, 9,10, - 9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12, - 15,14,12,13,12,15,14,11,12,12,14,14,12,13,13,14, - 15,12,13,13,15,15,14,14,15,15,17,14,15,15,16,16, - 11,12,11,14,13,12,13,12,15,14,12,13,12,15,13,14, - 15,14,16,15,13,15,14,17,14,10,11,11,13,14,11,12, - 13,13,15,11,12,12,14,14,14,14,15,15,17,13,14,14, - 15,16,11,12,12,14,14,12,12,13,14,15,13,13,13,15, - 15,14,15,15,15,17,15,15,15,16,16,11,12,12,13,14, - 13,13,14,14,15,12,13,13,14,15,14,15,15,16,17,14, - 15,15,16,16,14,14,14,16,16,14,14,15,15,17,15,15, - 15,17,16,16,16,17,16,18,16,17,17,18,17,13,14,14, - 15,16,14,15,15,16,17,14,15,15,16,16,16,17,17,17, - 18,16,16,16,17,16,10,11,11,14,13,11,12,12,14,14, - 11,12,12,15,13,13,14,14,16,15,13,14,14,16,15,11, - 12,12,14,14,12,13,13,15,15,12,13,13,15,15,14,15, - 15,16,17,14,15,15,17,16,11,12,11,14,12,12,13,13, - 15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,17, - 14,13,14,14,16,16,14,15,15,16,17,14,15,15,16,17, - 16,16,17,17,18,16,17,17,18,18,13,14,14,16,13,14, - 15,15,17,14,14,15,14,17,14,16,17,16,17,16,16,17, - 16,18,15, 8,11,11,13,13,10,12,12,14,14,11,12,12, - 14,14,13,13,14,15,16,13,14,14,16,15,10,11,11,14, - 14,11,12,12,14,15,11,12,12,15,14,13,14,14,15,16, - 13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12, - 13,12,15,14,14,14,15,16,16,14,15,14,16,16,12,13, - 13,15,15,12,13,14,15,16,13,14,14,16,16,14,15,15, - 16,17,15,15,16,17,17,13,14,14,16,15,14,15,15,16, - 16,14,15,14,16,16,16,16,16,17,17,15,16,16,18,16, - 10,11,11,13,14,11,12,12,14,15,11,12,12,15,14,13, - 14,14,16,16,13,14,14,16,16,11,11,12,14,14,12,12, - 13,14,15,12,13,13,15,15,14,14,15,15,17,14,14,15, - 16,16,11,12,12,15,14,12,13,13,15,15,12,13,13,15, - 15,14,15,15,17,17,14,15,15,17,16,13,12,14,14,16, - 13,13,15,14,17,14,13,15,15,17,15,14,16,15,18,16, - 15,16,16,18,13,14,14,16,16,14,15,15,17,17,14,15, - 15,17,16,16,17,17,18,18,16,17,16,18,17,10,11,11, - 14,13,11,12,12,14,14,11,13,12,15,14,13,14,14,15, - 16,13,14,14,16,16,11,12,12,14,14,12,13,13,14,15, - 12,13,13,15,15,14,14,15,15,16,14,15,15,17,16,11, - 12,12,14,14,13,13,13,15,15,12,13,13,15,14,14,15, - 15,16,17,14,15,14,17,15,13,14,13,16,15,14,14,14, - 15,16,14,15,14,16,16,15,15,16,16,17,16,16,16,18, - 17,14,14,14,16,16,15,15,15,17,16,14,15,14,17,16, - 16,16,17,17,18,16,17,16,18,16,11,13,13,15,15,12, - 13,14,15,16,12,14,14,15,15,14,15,15,16,17,14,15, - 15,17,17,12,13,14,14,16,13,14,14,14,16,14,14,14, - 15,16,15,15,16,15,18,15,16,16,17,17,13,14,14,16, - 16,14,14,15,16,16,14,15,14,16,16,15,16,16,17,18, - 15,16,16,18,17,14,14,16,13,17,15,15,16,14,18,15, - 15,16,14,18,16,16,18,15,19,17,17,18,16,18,15,16, - 15,17,17,15,16,17,18,18,16,16,16,18,17,17,18,18, - 19,19,17,18,17,19,18,11,12,12,15,14,13,13,14,15, - 16,13,14,13,16,14,15,15,15,16,17,15,16,15,17,16, - 12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15, - 15,16,16,17,16,16,16,18,17,12,13,13,15,15,14,14, - 15,16,16,13,14,13,16,15,16,16,16,17,18,15,16,15, - 17,16,14,15,14,17,15,14,15,15,16,16,15,16,15,17, - 16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,17, - 16,16,16,17,17,15,16,15,17,16,17,18,18,18,18,16, - 17,16,18,15, 8,11,11,13,13,11,12,12,14,14,10,12, - 12,14,14,13,14,14,15,16,13,14,13,16,15,11,12,12, - 14,14,12,12,13,14,15,12,13,13,15,15,14,14,15,15, - 16,14,14,14,16,16,10,11,11,14,14,11,12,12,14,15, - 11,12,12,15,14,13,14,14,16,16,13,14,14,16,15,13, - 14,14,15,16,14,14,15,16,16,14,15,15,16,16,15,16, - 16,16,18,16,16,16,17,17,12,13,13,15,15,13,14,14, - 16,16,12,14,13,16,15,15,16,15,17,17,14,16,15,17, - 16,10,11,11,13,14,11,12,13,14,15,11,13,12,14,14, - 14,14,15,16,16,13,14,14,16,16,11,12,12,14,14,12, - 13,13,14,15,13,14,13,15,15,14,15,15,16,17,14,15, - 15,17,16,11,12,12,14,14,12,13,13,15,15,12,13,12, - 15,14,14,15,15,16,17,14,15,15,16,16,14,14,14,16, - 16,14,14,15,16,16,15,15,15,16,16,16,16,17,16,18, - 16,17,17,18,18,13,13,14,15,16,14,14,15,16,17,13, - 14,14,16,16,16,16,17,17,18,15,16,15,17,16,10,11, - 11,14,13,11,12,12,14,14,11,12,12,15,14,13,14,14, - 16,16,13,14,14,16,16,11,12,12,14,14,12,13,13,15, - 15,12,13,13,15,15,14,15,15,16,17,14,15,15,17,16, - 11,12,11,14,14,12,13,13,15,15,12,13,12,15,14,14, - 15,14,16,16,14,15,14,17,16,14,14,14,16,16,14,15, - 15,16,17,14,15,15,17,17,16,16,17,17,18,16,17,17, - 18,18,13,14,12,16,14,14,15,13,17,15,13,15,13,17, - 14,16,16,15,18,16,15,17,14,18,15,11,12,12,14,15, - 13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15, - 16,15,17,16,12,13,13,15,15,13,13,14,15,16,14,15, - 14,16,16,15,15,16,15,18,16,16,16,18,17,12,13,13, - 15,15,14,14,15,15,16,13,14,13,15,15,16,16,16,16, - 18,15,16,15,17,16,15,15,15,17,16,15,15,16,16,17, - 16,16,16,18,17,16,16,17,15,18,17,18,17,19,18,14, - 14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17, - 18,17,19,16,17,15,17,15,11,13,12,15,15,12,14,14, - 15,15,12,14,13,16,15,15,15,15,17,17,14,15,15,17, - 16,12,14,14,16,16,14,14,15,16,16,14,14,14,16,16, - 15,16,17,17,18,15,16,16,18,17,12,14,13,16,14,13, - 14,14,16,15,13,15,14,16,14,15,16,16,17,17,15,16, - 15,18,15,15,15,16,17,17,15,16,16,17,18,16,16,16, - 18,18,17,17,18,18,19,17,17,18,19,19,14,15,14,17, - 13,15,16,15,18,14,15,16,15,18,14,17,18,17,18,16, - 16,18,16,19,15, -}; - -static const static_codebook _44p8_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p8_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p8_p2_0, - 0 -}; - -static const long _vq_quantlist__44p8_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p8_p3_0[] = { - 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 7, 9, - 10, 8, 9, 9, 8, 9,10, 9,10,12,10,11,11, 8,10, 9, - 10,11,12, 9,11,10, 5, 8, 7, 8,10, 9, 7,10, 9, 8, - 9,10, 9,10,11,10,12,11, 8,10, 9,10,11,11, 9,12, - 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9,10, 9,10,11, - 9,11,11, 8,10, 9,10,11,11,10,12,10, 7, 9,10, 9, - 10,12, 9,11,11, 9, 9,12,11,10,13,11,11,13,10,12, - 11,11,13,13,11,13,12, 7, 9, 9, 9,11,11, 9,12,11, - 9,11,10,10,11,12,11,13,12, 9,11,11,12,13,13,11, - 13,11, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10,10,10, - 12,10,11,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, - 9,11,12, 9,11,11, 9,11,11,11,11,13,12,13,13, 9, - 10,11,11,12,13,10,12,11, 7,10, 9, 9,11,11, 9,12, - 10,10,11,12,11,12,13,12,13,13, 9,12, 9,11,13,11, - 10,13,10, -}; - -static const static_codebook _44p8_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p8_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p8_p3_0, - 0 -}; - -static const long _vq_quantlist__44p8_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p8_p3_1[] = { - 6, 7, 7, 7, 7, 8, 7, 8, 7, 7, 7, 8, 7, 8, 8, 8, - 8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, - 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, - 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, - 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, - 8, 9, 8, -}; - -static const static_codebook _44p8_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p8_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p8_p3_1, - 0 -}; - -static const long _vq_quantlist__44p8_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p8_p4_0[] = { - 2, 5, 5, 4, 7, 8, 4, 8, 7, 5, 7, 8, 7, 7,10, 8, - 9, 9, 5, 7, 7, 8, 9, 9, 7,10, 7, 5, 7, 8, 8, 9, - 11, 8,10,10, 8, 9,10,10,10,12,11,12,12, 8,10,10, - 10,12,12,10,12,11, 5, 8, 7, 8,10,10, 8,11, 9, 8, - 10,10,10,11,12,10,12,12, 8,10, 9,11,12,12,10,12, - 10, 5, 8, 8, 7,10,10, 8,11,10, 7, 9,10, 9,10,12, - 10,12,12, 8,10,10,10,12,12,10,12,11, 7, 9,10, 9, - 11,12,10,12,11, 9, 9,12,10,10,13,12,12,13,10,12, - 11,12,13,13,11,13,11, 7,10, 9,10,11,12,10,13,11, - 9,11,11,11,11,13,12,14,13,10,11,11,12,14,14,11, - 14,11, 5, 8, 8, 8,10,11, 7,10,10, 8,10,10,10,11, - 12,10,12,12, 7,10, 9,10,12,12, 9,12,10, 7, 9,10, - 10,11,13,10,12,11,10,11,11,11,11,14,12,14,14, 9, - 11,11,12,13,14,11,13,11, 7,10, 9,10,11,12, 9,12, - 10,10,11,12,11,11,13,12,13,13, 9,12, 9,12,13,12, - 10,13,10, -}; - -static const static_codebook _44p8_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p8_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p8_p4_0, - 0 -}; - -static const long _vq_quantlist__44p8_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p8_p4_1[] = { - 7, 9, 9,10,10, 9,10,10,10,11, 9,10,10,11,10, 9, - 10,10,11,11, 9,10,10,11,11, 9,10,10,11,11,10,10, - 10,11,11,10,10,10,11,11,10,11,11,11,11,10,11,11, - 11,11, 9,10,10,11,11,10,10,10,11,11, 9,10,10,11, - 11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11, - 10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,12,10,11,11,11,11,11,11,11,11,11,10,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11, 9,10,10, - 11,11,10,10,11,11,11,10,10,11,11,11,10,11,11,11, - 12,10,11,11,12,12,10,10,11,11,11,10,11,11,11,12, - 11,11,11,12,12,11,11,12,12,12,11,11,12,12,12,10, - 11,11,11,11,11,11,11,12,12,10,11,11,12,12,11,12, - 11,12,12,11,12,11,12,12,11,11,11,11,12,11,11,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,11,11,12,12,11,12,12,12,12,11,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12, 9,10,10,11,11,10, - 11,10,11,11,10,11,10,11,11,10,11,11,12,12,10,11, - 11,12,11,10,11,11,11,11,10,11,11,11,12,11,11,11, - 12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11, - 11,11,11,11,12,12,10,11,11,12,11,11,12,11,12,12, - 11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, - 11,12,11,11,12,12,12,12,11,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,10,11,11,11,11,11,11,11,12, - 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, - 11,11,11,12,12,11,11,12,12,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,13,12,13,12,12,12,12,13,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,12,10,11,11,11,11,11,11,11,12,12,11,11, - 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,12,12,13,12,13, - 12, 9,10,10,11,11,10,10,11,11,11,10,11,10,11,11, - 10,11,11,12,12,10,11,11,12,12,10,10,11,11,11,10, - 11,11,11,12,10,11,11,12,12,11,11,12,12,12,11,11, - 11,12,12,10,11,10,11,11,11,11,11,12,12,10,11,11, - 12,11,11,12,11,12,12,11,12,11,12,12,11,11,11,11, - 12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, - 11,12,12,12,12,11,11,11,12,11,11,12,12,12,12,11, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,10,10, - 11,11,11,10,11,11,12,12,10,11,11,12,12,11,11,11, - 12,12,11,11,12,12,12,10,11,11,11,12,11,11,12,12, - 12,11,11,12,12,12,11,11,12,12,12,11,12,12,12,12, - 11,11,11,12,12,11,12,12,12,12,11,12,11,12,12,11, - 12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12, 9,10,10,11,11, - 10,11,11,11,12,10,11,11,12,11,11,12,11,12,12,11, - 12,11,12,12,10,11,11,12,11,11,11,11,12,12,11,12, - 11,12,12,11,12,12,12,12,11,12,12,12,12,10,11,11, - 12,12,11,12,11,12,12,11,12,11,12,12,12,12,12,12, - 12,11,12,12,12,12,11,12,11,12,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,11,11,11,12,12,11,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,13,12,12,12,12,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,12, - 12,13,13,12,12,12,12,12,12,12,12,12,13,12,12,12, - 12,13,12,12,13,12,13,12,13,13,13,13,12,12,12,12, - 12,12,12,12,13,12,12,12,12,13,12,12,13,13,13,13, - 12,13,13,13,13,10,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,11,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,13,12,12,12,12,13,13,12,12,12,13,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12, - 13,13,12,13,12,13,13,13,13,12,12,12,12,12,12,12, - 12,13,12,12,12,12,13,12,12,13,13,13,13,12,13,13, - 13,13, 9,10,10,11,11,10,10,11,11,11,10,11,10,11, - 11,10,11,11,12,12,10,11,11,12,12,10,11,11,11,11, - 10,11,11,12,12,11,11,11,12,12,11,11,12,12,12,11, - 11,12,12,12,10,11,10,11,11,10,11,11,12,12,10,11, - 11,12,11,11,12,11,12,12,11,11,11,12,12,11,11,11, - 11,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,11,11,12,11,11,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12, 9, - 10,10,11,11,10,11,11,11,12,10,11,11,12,11,11,11, - 12,12,12,11,11,12,12,12,10,11,11,12,12,11,11,12, - 12,12,11,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,10,11,11,12,12,11,11,11,12,12,11,11,11,12,12, - 11,12,12,12,12,11,12,12,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,11,11,12,12,12,12,12,12,12,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,10,11,10,11, - 11,10,11,11,12,12,10,11,11,12,12,11,11,11,12,12, - 11,12,11,12,12,11,11,11,12,12,11,11,12,12,12,11, - 11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11, - 11,12,11,11,12,11,12,12,11,12,11,12,12,11,12,12, - 12,12,11,12,11,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,11, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,11,12,12,12,12,12,12,12,12,13,12,12,12,12, - 12,12,12,12,13,13,12,12,12,13,13,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,12, - 12,12,12,12,12,12,12,12,12,12,12,13,12,13,12,12, - 12,13,13,12,13,13,12,13,12,13,13,13,13,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13, - 13,12,13,12,13,12,11,11,11,12,12,11,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,13,13,12,12,12,13,13,11,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,12,12,12,12,13, - 12,12,12,12,12,12,12,12,12,13,13,12,12,12,12,13, - 12,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12, - 12,12,13,12,12,12,12,13,12,12,13,13,13,13,12,13, - 13,13,12,10,11,11,12,12,11,11,11,12,12,11,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,11,11,11,12, - 12,11,11,12,12,12,11,12,12,12,12,11,12,12,12,12, - 12,12,12,12,12,11,11,11,12,12,11,12,12,12,12,11, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,11,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,13,12,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12, - 11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, - 12,12,12,12,11,12,12,12,12,11,11,12,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,13,12,12,12, - 13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,13,13,12,12,12,13,13,12,12,12,12,12, - 12,12,12,12,13,12,12,12,12,13,12,12,13,12,13,12, - 12,13,13,13,12,12,12,12,12,12,12,12,12,13,12,12, - 12,13,12,12,13,13,13,13,12,13,13,13,13,10,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,11,12,12,12, - 12,12,12,12,12,12,11,11,12,12,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,12,12,12,13,13,11, - 12,11,12,12,12,12,12,12,12,11,12,12,12,12,12,12, - 12,13,13,12,12,12,13,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,13,12,12,12,12,12,13,12,13,12,13, - 13,12,12,12,12,12,12,12,12,13,12,12,12,12,13,12, - 12,13,12,13,13,12,13,12,13,12,11,11,11,12,12,11, - 12,12,12,12,11,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,13,12,13,12,12,13,13,13,11,12,12,12, - 12,12,12,12,12,12,12,12,12,13,12,12,12,12,13,13, - 12,12,12,13,12,12,12,12,12,12,12,12,13,12,13,12, - 12,12,12,13,12,12,13,12,13,12,13,13,12,13,12,12, - 12,12,12,12,13,13,13,12,12,12,12,13,12,12,13,13, - 13,13,12,13,13,13,12,11,11,11,12,12,11,12,12,12, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,13,12,12,13,13,13,11,12,12,12,12,12,12, - 12,12,13,12,12,12,13,12,12,13,12,13,13,12,13,12, - 13,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,13,12,13,12,13,13,13,12,12,12,12,12,12, - 12,13,12,13,12,12,12,12,13,12,12,13,13,13,12,12, - 13,12,13,12,10,11,11,12,12,11,11,11,12,12,11,11, - 11,12,12,11,12,12,12,12,11,12,12,12,12,11,11,11, - 12,12,11,11,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,11,11,12,12,11,12,12,12,12, - 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,12,12,12,12,12,11,12,12,12,12,12,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,10,11,11,12,12,11,11,12,12,12,11,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, - 12,13,13,11,11,11,12,12,12,12,12,12,12,11,12,12, - 12,12,12,12,12,13,13,12,12,12,13,13,12,12,12,12, - 12,12,12,12,12,13,12,12,12,12,13,12,12,13,12,13, - 12,12,13,13,13,12,12,12,12,12,12,12,12,12,13,12, - 12,12,12,12,12,12,13,13,13,12,12,12,13,12,11,11, - 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, - 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13, - 11,12,11,12,12,12,12,12,12,12,11,12,12,12,12,12, - 12,12,13,13,12,12,12,13,12,12,12,12,12,12,12,12, - 12,12,13,12,12,12,13,13,12,13,13,13,13,12,13,13, - 13,13,12,12,12,12,12,12,12,12,13,12,12,12,12,13, - 12,12,13,12,13,13,12,13,12,13,12,11,11,11,12,12, - 11,12,12,12,12,11,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,11,12,12,12,12,12,12,12,12,13,12,12, - 12,13,13,12,12,13,12,13,12,12,13,13,13,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,12,12,12,13,12,12,12,12,12,12,12,12,12,12,13, - 12,12,12,13,13,12,12,13,12,13,12,13,13,13,13,12, - 12,12,12,12,12,12,13,12,13,12,12,12,12,12,12,13, - 13,12,12,12,13,12,12,12,11,11,11,12,12,11,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,12,12,12,12,12,12,12,12,13,12,12,12,12,13, - 12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,12,13,13,12,13, - 12,13,12,12,12,12,12,12,12,12,12,12,13,12,13,12, - 13,13,12,13,13,12,13,12,13,13,13,13,12,12,12,12, - 12,12,12,12,13,12,12,13,12,13,12,12,13,12,13,12, - 12,13,12,13,12, -}; - -static const static_codebook _44p8_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p8_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p8_p4_1, - 0 -}; - -static const long _vq_quantlist__44p8_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p8_p5_0[] = { - 2, 6, 6, 9, 9, 5, 7, 8,10,11, 5, 8, 7,11,10, 8, - 10,11,12,13, 8,11,10,13,12, 6, 7, 8,10,11, 7, 8, - 10,10,12, 8, 9, 9,12,12,10,10,12,12,14,10,12,12, - 14,13, 6, 8, 7,11,10, 8, 9, 9,12,12, 7,10, 8,12, - 11,10,12,12,13,14,10,12,10,14,12, 9,10,11,11,13, - 10,10,11,11,13,11,12,12,13,14,12,12,13,11,15,13, - 14,14,15,14, 9,11,10,13,11,11,12,12,13,13,10,11, - 10,13,11,13,14,14,15,15,12,13,12,15,11, 6, 8, 9, - 11,12, 8, 9,11,12,13, 8,10,10,13,13,11,12,13,14, - 15,11,12,13,14,14, 9, 9,10,12,13,10,10,12,12,14, - 10,11,11,13,14,12,12,14,14,15,13,13,14,15,15, 9, - 10,10,13,13,10,11,11,13,14,10,11,10,14,13,13,13, - 14,15,15,12,14,13,15,14,12,12,13,13,14,12,13,14, - 13,15,13,14,14,15,15,14,14,15,14,16,15,15,15,16, - 16,12,13,13,14,14,13,14,14,15,15,12,14,13,15,14, - 14,15,15,16,16,14,15,14,16,14, 6, 9, 8,12,11, 8, - 10,10,13,13, 8,11, 9,13,12,11,12,12,14,14,11,13, - 12,15,14, 9,10,10,13,13,10,10,11,13,14,10,12,11, - 14,13,12,13,14,14,15,13,13,13,15,14, 9,10, 9,13, - 12,10,11,11,14,13,10,12,10,14,12,13,14,13,15,15, - 12,14,12,15,14,12,13,13,14,14,13,13,13,14,15,13, - 14,14,15,15,14,14,15,14,16,14,15,15,16,16,12,13, - 12,14,13,13,14,14,15,15,12,14,13,15,13,15,15,15, - 16,16,14,15,14,16,14,11,12,12,13,14,12,13,14,14, - 16,12,13,13,15,15,14,14,16,15,17,14,15,15,16,16, - 12,13,14,14,15,13,13,15,15,16,14,14,14,15,16,15, - 15,16,16,17,15,15,16,16,17,13,13,13,15,15,14,14, - 15,15,16,13,14,14,15,16,15,15,16,16,17,15,16,15, - 17,16,14,15,15,16,16,15,15,16,16,17,15,16,16,17, - 17,16,16,17,16,18,16,17,17,17,17,15,15,15,16,16, - 15,16,16,17,17,15,16,16,17,16,16,17,17,18,18,16, - 17,16,17,16,11,12,12,15,13,13,13,13,15,15,12,14, - 13,16,14,14,15,15,16,16,14,15,14,17,15,13,13,13, - 15,14,13,14,14,16,15,14,14,14,16,15,15,15,16,16, - 17,15,16,15,17,16,12,14,13,15,14,14,14,14,16,15, - 13,14,13,16,15,15,16,16,17,16,15,16,15,17,16,15, - 15,15,16,16,15,15,16,16,17,15,16,16,17,17,16,16, - 17,17,17,17,17,17,18,17,14,15,15,16,16,15,16,16, - 17,16,15,16,15,17,16,17,17,17,18,17,16,17,16,18, - 16, 6, 9, 9,12,12, 8,10,10,12,13, 8,10,10,13,12, - 10,12,12,14,15,11,13,12,15,14, 8, 9,10,12,13, 9, - 10,11,13,14,10,11,11,14,13,12,12,13,14,15,12,13, - 13,15,15, 8,10,10,13,13,10,11,11,13,14,10,12,10, - 14,13,12,13,13,15,15,12,14,13,15,14,11,12,12,13, - 14,12,12,13,13,15,12,13,13,15,15,14,13,15,14,16, - 14,15,15,16,16,12,13,13,14,14,13,13,14,15,14,12, - 14,13,15,14,14,15,15,16,15,14,15,14,16,14, 7, 9, - 10,12,12, 9,10,11,13,14, 9,11,10,13,13,11,12,13, - 14,15,12,13,13,15,14, 9,10,11,12,13,10,10,12,13, - 14,11,11,12,14,14,12,12,14,14,15,13,13,14,15,15, - 9,11,11,13,13,11,12,12,14,14,10,12,10,14,13,13, - 14,14,15,15,13,14,13,16,14,12,12,13,14,15,13,13, - 14,14,16,13,14,14,15,15,14,14,15,14,17,14,15,15, - 16,16,12,13,13,15,14,13,14,14,15,15,13,14,13,16, - 14,15,15,15,16,16,14,15,14,16,14, 7,10, 9,13,12, - 10,11,12,12,14,10,12,11,14,12,12,13,13,14,15,12, - 14,13,15,14, 9,11,10,13,13,10,11,12,13,14,12,13, - 12,15,13,13,13,14,13,15,13,14,14,16,15,10,11,11, - 13,13,12,12,13,14,14,11,12,11,14,13,14,14,14,15, - 16,13,14,13,16,13,12,13,13,14,14,12,13,13,14,15, - 14,14,14,15,15,14,13,15,13,16,15,15,15,17,16,13, - 13,13,14,14,14,14,14,15,15,12,13,13,15,14,15,16, - 16,16,16,14,15,14,16,13,11,12,13,14,15,12,13,14, - 15,16,13,14,14,15,15,14,14,15,15,17,14,15,15,16, - 16,13,13,14,14,15,13,13,15,14,16,14,14,15,15,16, - 15,14,16,15,17,15,16,16,16,17,13,14,14,15,15,14, - 14,15,16,16,13,15,14,16,16,15,16,16,17,17,15,16, - 15,17,16,14,15,15,15,17,15,15,16,15,17,15,16,16, - 16,17,16,16,17,16,18,17,17,17,17,18,15,15,15,17, - 16,15,16,16,17,17,15,16,16,17,16,16,17,17,18,18, - 16,17,16,18,17,11,13,12,15,14,13,13,14,15,15,13, - 14,13,16,14,15,15,15,16,16,15,16,15,17,16,13,14, - 13,15,14,13,13,14,15,15,14,15,14,16,15,15,15,16, - 16,16,15,16,15,18,16,13,14,14,15,15,14,15,15,15, - 16,13,15,13,16,15,15,16,16,17,17,15,16,15,17,16, - 15,15,15,16,16,15,15,15,16,17,16,16,16,17,16,16, - 16,17,16,17,17,17,17,18,17,15,15,15,16,16,16,16, - 16,17,17,15,16,15,17,16,17,17,17,18,18,16,17,16, - 17,15, 6, 9, 9,12,12, 8,10,10,12,13, 8,10,10,13, - 12,11,12,13,14,15,10,12,12,14,14, 9,10,10,13,13, - 10,10,12,13,14,10,11,11,14,13,12,13,14,14,15,12, - 13,13,15,15, 8,10, 9,13,12,10,11,11,13,14, 9,11, - 10,14,13,12,13,13,15,15,12,13,12,15,14,12,13,13, - 14,14,12,13,13,14,15,13,14,14,14,15,14,14,15,14, - 16,14,15,15,16,16,11,12,12,14,13,13,13,13,15,15, - 12,13,12,15,13,14,15,15,16,16,14,15,14,16,14, 7, - 9,10,12,13,10,10,12,12,14,10,12,11,14,13,12,13, - 14,14,15,12,13,13,15,14,10,11,11,13,13,11,11,12, - 13,14,12,13,12,14,14,13,13,14,13,16,14,14,14,15, - 15, 9,10,11,13,14,12,12,13,13,15,10,12,10,14,13, - 13,14,14,15,16,13,14,13,15,13,13,14,13,14,15,12, - 13,13,14,15,14,14,14,15,15,14,13,15,13,16,15,16, - 16,16,16,12,13,13,14,14,14,14,14,15,15,12,13,13, - 15,14,15,15,16,16,16,14,15,13,16,13, 7,10, 9,12, - 12, 9,10,11,13,13, 9,11,10,14,13,12,13,13,14,15, - 11,13,12,15,14, 9,11,11,13,13,10,10,12,13,14,11, - 12,12,14,14,13,13,14,14,16,13,14,14,16,15, 9,11, - 10,13,12,11,12,11,14,14,10,12,10,14,13,13,14,13, - 15,15,12,14,12,16,14,12,13,13,14,15,13,13,14,14, - 16,13,14,14,15,15,14,14,15,14,16,15,15,15,16,16, - 12,13,12,15,14,13,14,14,15,15,12,14,13,16,14,14, - 15,15,16,16,14,15,14,17,14,11,12,13,14,15,13,13, - 14,14,16,13,14,13,15,15,15,15,16,16,17,15,15,15, - 16,16,13,14,13,15,15,13,13,15,15,16,14,15,15,16, - 16,15,15,16,15,17,16,16,16,17,17,13,13,14,14,15, - 14,14,15,15,16,13,14,13,15,15,15,16,16,16,17,15, - 16,15,16,16,15,15,15,16,16,15,15,16,16,17,16,16, - 16,17,17,16,16,17,16,18,17,17,17,18,18,15,15,15, - 16,16,16,16,16,17,17,15,15,15,16,16,17,17,17,17, - 18,16,16,16,17,15,11,13,12,15,14,13,13,14,15,15, - 12,14,13,16,14,14,15,15,16,16,14,15,14,16,15,13, - 14,14,15,15,13,14,14,16,16,14,15,14,16,16,15,15, - 16,17,17,15,16,16,17,17,13,14,13,15,14,14,14,14, - 16,15,13,15,13,16,14,15,16,15,17,16,15,16,14,17, - 15,14,16,15,16,17,15,16,16,16,17,15,16,16,17,17, - 16,16,17,17,18,16,17,17,18,17,14,15,15,17,15,15, - 16,16,17,16,15,16,15,17,15,16,17,17,18,17,16,17, - 16,18,15,10,12,12,14,14,12,13,13,15,15,12,13,13, - 15,15,13,14,14,15,16,14,15,14,16,16,12,13,13,15, - 15,12,13,14,15,15,13,14,14,15,15,14,14,15,16,17, - 14,15,15,17,16,12,13,13,15,15,13,14,14,15,16,13, - 14,14,16,15,14,15,15,16,17,14,15,15,17,16,13,14, - 14,15,16,14,14,15,15,16,14,15,15,16,16,15,15,16, - 16,17,15,16,16,17,17,14,15,15,16,16,15,15,15,16, - 16,15,15,15,16,16,16,17,16,17,17,16,16,16,18,16, - 11,12,12,14,14,12,13,14,15,15,12,13,13,15,15,13, - 14,15,16,16,14,15,15,16,16,12,13,13,15,15,13,13, - 14,15,16,13,14,14,15,16,14,14,15,16,17,15,15,15, - 16,17,12,13,13,15,15,13,14,14,15,16,13,14,14,16, - 15,15,15,15,16,17,15,16,15,17,16,14,14,15,15,16, - 14,14,15,15,17,15,15,16,16,17,15,15,16,15,18,16, - 16,16,17,17,14,15,15,16,16,15,16,16,17,17,15,15, - 15,17,16,16,17,16,17,17,16,16,16,18,16,11,12,12, - 14,14,13,13,14,15,15,13,14,13,15,15,14,15,15,16, - 16,14,15,15,16,16,12,13,13,15,15,13,13,14,15,15, - 14,14,14,16,15,15,15,15,15,16,15,16,15,17,16,12, - 13,13,15,15,14,14,15,15,16,13,14,13,16,15,15,15, - 16,16,17,15,16,15,17,15,14,15,14,16,16,14,15,15, - 16,16,15,16,15,17,16,15,15,16,15,17,16,17,16,17, - 17,14,15,15,16,16,15,16,16,16,17,14,15,15,16,16, - 16,17,17,17,18,16,16,16,17,16,12,13,13,15,15,13, - 13,14,15,16,13,14,14,16,15,14,15,15,16,17,14,15, - 15,17,16,13,14,14,15,16,14,14,15,15,17,14,15,15, - 16,16,15,14,16,15,17,15,16,16,17,17,13,14,14,16, - 16,14,15,15,16,16,14,15,14,16,16,15,16,16,17,17, - 15,16,15,17,16,15,15,16,15,17,15,15,16,15,17,15, - 16,16,16,17,16,15,17,15,18,17,17,17,17,17,15,15, - 15,17,17,16,16,16,17,17,15,16,15,17,17,16,17,17, - 18,18,16,17,15,18,15,11,12,12,15,15,13,13,15,14, - 16,13,14,13,16,14,15,15,16,16,17,15,16,15,17,15, - 12,14,13,16,14,13,13,14,14,16,14,15,14,16,15,15, - 15,16,15,17,16,16,16,17,16,12,13,14,15,16,15,15, - 15,15,16,13,15,13,16,14,16,16,16,17,17,15,16,15, - 17,15,15,16,15,16,15,14,14,15,16,16,16,16,16,17, - 16,15,15,16,15,17,17,17,17,18,17,15,15,15,16,16, - 16,16,16,16,17,14,15,15,17,16,17,17,17,17,18,15, - 16,15,18,14,10,12,12,14,14,12,13,13,15,15,12,13, - 13,15,15,14,14,15,15,16,13,15,14,16,16,12,13,13, - 15,15,13,14,14,15,16,13,14,14,15,15,14,15,15,16, - 17,14,15,15,17,16,12,13,13,15,15,13,14,14,15,15, - 12,14,13,15,15,14,15,15,16,17,14,15,14,17,15,14, - 15,15,16,16,14,15,15,16,17,15,15,15,17,16,16,16, - 16,16,17,16,16,16,17,17,13,14,14,16,15,14,15,15, - 16,16,14,15,14,16,16,15,16,16,17,17,15,16,15,17, - 16,11,12,12,14,15,13,13,14,14,15,13,14,13,15,15, - 14,15,15,16,16,14,15,15,16,16,12,14,13,15,15,13, - 13,14,15,16,14,15,14,16,15,15,15,16,15,17,15,16, - 16,17,16,12,13,13,15,15,14,14,15,15,16,13,14,13, - 16,15,15,15,16,16,17,15,15,15,16,16,14,15,15,16, - 16,14,15,15,16,16,15,16,16,17,17,16,16,16,16,17, - 16,17,17,18,17,14,14,15,15,16,15,15,16,16,17,14, - 15,15,16,16,16,16,16,17,17,15,16,15,17,15,11,12, - 12,14,14,12,13,14,15,15,12,13,13,15,15,14,15,15, - 16,16,13,15,14,16,16,12,13,13,15,15,13,14,14,15, - 16,13,14,14,16,16,15,15,15,16,17,15,15,15,17,16, - 12,13,13,15,15,13,14,14,16,15,13,14,13,16,15,15, - 16,15,17,17,14,15,14,17,16,14,15,15,16,16,15,15, - 16,16,17,15,16,16,17,17,16,16,16,16,18,16,17,16, - 18,17,14,15,14,16,15,15,15,15,17,16,14,15,14,17, - 15,16,17,16,17,17,15,16,15,17,15,11,12,12,15,15, - 13,13,15,14,16,13,15,13,16,14,15,15,16,15,17,15, - 16,15,17,16,12,14,13,15,15,13,13,15,15,16,15,15, - 15,16,15,15,15,16,15,17,16,16,16,17,16,12,13,14, - 15,16,14,14,15,15,16,13,14,13,16,14,16,16,16,16, - 17,15,16,15,17,15,15,16,15,16,16,14,15,15,16,16, - 16,16,16,17,16,15,15,16,15,17,17,17,17,18,17,15, - 15,15,15,16,16,16,16,16,17,14,15,14,16,15,17,17, - 17,17,18,15,16,15,17,15,12,13,13,15,15,13,14,14, - 15,16,13,14,14,16,15,14,15,15,16,17,14,15,15,17, - 16,13,14,14,16,15,13,14,15,16,16,14,15,15,16,16, - 15,15,16,16,17,15,16,16,17,17,13,14,13,16,15,14, - 15,15,16,16,13,15,14,16,15,15,16,16,17,17,15,16, - 14,17,15,15,15,16,17,17,15,15,16,16,17,16,16,16, - 17,17,16,15,17,16,18,17,17,17,18,18,15,15,15,17, - 14,16,16,16,17,16,15,16,15,17,15,16,17,17,18,17, - 16,17,15,18,15, -}; - -static const static_codebook _44p8_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p8_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p8_p5_0, - 0 -}; - -static const long _vq_quantlist__44p8_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p8_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p8_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p8_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p8_p5_1, - 0 -}; - -static const long _vq_quantlist__44p8_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p8_p6_0[] = { - 2, 6, 6, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 7, 9, 7, - 9, 9, 6, 7, 7, 8, 9, 9, 7, 9, 7, 6, 8, 8, 8, 9, - 10, 8, 9, 9, 8, 9,10, 9, 9,10,10,10,10, 8, 9, 9, - 10,10,11, 9,10,10, 6, 8, 8, 8, 9, 9, 8,10, 9, 8, - 9, 9, 9,10,10,10,11,10, 8,10, 9,10,11,10, 9,11, - 9, 6, 8, 8, 7, 9, 9, 7, 9, 9, 7, 9, 9, 8, 9,10, - 9,10,10, 8, 9, 9, 9,10,10, 9,10, 9, 7, 9, 9, 9, - 9,10, 9,10,10, 9, 9,10,10, 9,11,10,11,11, 9,10, - 10,10,11,11,10,11,10, 6, 9, 8, 9, 9,10, 9,10, 9, - 8,10,10, 9, 9,10,10,11,11, 9,10,10,10,11,11, 9, - 11, 9, 6, 8, 8, 7, 9, 9, 7, 9, 9, 8, 9, 9, 9, 9, - 10, 9,10,10, 7, 9, 9, 9,10,10, 8,10, 9, 6, 8, 9, - 9, 9,10, 9,10, 9, 9,10,10, 9, 9,11,10,11,11, 8, - 9,10,10,11,11, 9,10, 9, 7, 9, 9, 9,10,10, 9,10, - 9, 9,10,10,10,10,11,10,11,11, 9,10, 9,10,11,11, - 10,11, 9, -}; - -static const static_codebook _44p8_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p8_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p8_p6_0, - 0 -}; - -static const long _vq_quantlist__44p8_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p8_p6_1[] = { - 4, 7, 7, 7, 7, 8, 7, 8, 7, 7, 7, 8, 7, 8, 8, 8, - 8, 8, 7, 8, 7, 8, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, - 8, 9, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, - 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 8, 8, 9, 8, 8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, 8, - 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, - 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, 8, 9, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, - 8, 8, 8, 9, 9, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, - 8, 9, 8, -}; - -static const static_codebook _44p8_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p8_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p8_p6_1, - 0 -}; - -static const long _vq_quantlist__44p8_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p8_p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p8_p7_0 = { - 5, 243, - (char *)_vq_lengthlist__44p8_p7_0, - 1, -512202240, 1635281408, 2, 0, - (long *)_vq_quantlist__44p8_p7_0, - 0 -}; - -static const long _vq_quantlist__44p8_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p8_p7_1[] = { - 1, 7, 7,12,12, 5,11,12,12,12, 5,12,11,12,12,12, - 12,12,12,12,12,13,13,13,13, 7,11,11,13,13,13,12, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13, 7,13,10,13,13,13,13,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13, 7,13,12, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,12, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13, 8,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13, 8,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,12,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,10,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13, 8,13,12,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,11, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,11,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13, -}; - -static const static_codebook _44p8_p7_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p8_p7_1, - 1, -514619392, 1630767104, 3, 0, - (long *)_vq_quantlist__44p8_p7_1, - 0 -}; - -static const long _vq_quantlist__44p8_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p8_p7_2[] = { - 1, 3, 2, 4, 5, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _44p8_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p8_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p8_p7_2, - 0 -}; - -static const long _vq_quantlist__44p8_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p8_p7_3[] = { - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p8_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p8_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p8_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p8_short[] = { - 3, 9,15,17,20,21,22,23, 5, 5, 7, 9,11,13,17,20, - 9, 5, 5, 6, 8,10,15,18,11, 7, 5, 4, 6, 9,13,17, - 14, 9, 7, 5, 6, 7,10,14,17,10, 8, 6, 6, 4, 5, 8, - 20,14,13,10, 8, 4, 3, 4,23,17,16,14,12, 6, 4, 4, -}; - -static const static_codebook _huff_book__44p8_short = { - 2, 64, - (char *)_huff_lengthlist__44p8_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p9_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44p9_l0_0[] = { - 2, 5, 5, 7, 6, 8, 8, 9, 9,10,10,11,11, 4, 5, 5, - 6, 7, 8, 8, 9, 9,10,10,11,10, 4, 5, 5, 7, 6, 8, - 8, 9, 9,10,10,10,10, 6, 6, 7, 6, 7, 8, 8, 9, 9, - 10, 9,11, 9, 6, 6, 6, 7, 6, 8, 8, 9, 9, 9,10, 9, - 11, 7, 7, 8, 8, 8, 8, 9, 9, 9,10, 9,11, 9, 7, 8, - 8, 8, 8, 9, 8, 9, 9, 9,10, 9,11, 8, 9, 9, 9, 9, - 9, 9,10,10,11,10,12,10, 8, 9, 9, 9, 9, 9, 9,10, - 9,10,11,11,12, 9,10,10,10,10,10,10,10,11,11,11, - 11,12, 9,10,10,10,10,11,10,11,10,11,11,12,11,11, - 11,11,11,11,11,11,11,12,11,12,11,12,11,11,11,11, - 11,11,11,12,11,12,11,12,11, -}; - -static const static_codebook _44p9_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44p9_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44p9_l0_0, - 0 -}; - -static const long _vq_quantlist__44p9_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p9_l0_1[] = { - 4, 4, 4, 5, 5, 4, 4, 5, 5, 5, 4, 5, 4, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p9_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44p9_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p9_l0_1, - 0 -}; - -static const long _vq_quantlist__44p9_l1_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p9_l1_0[] = { - 1, 2, 3, 5, 9, 9, 4, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44p9_l1_0 = { - 2, 25, - (char *)_vq_lengthlist__44p9_l1_0, - 1, -514619392, 1630767104, 3, 0, - (long *)_vq_quantlist__44p9_l1_0, - 0 -}; - -static const char _huff_lengthlist__44p9_lfe[] = { - 1, 1, -}; - -static const static_codebook _huff_book__44p9_lfe = { - 1, 2, - (char *)_huff_lengthlist__44p9_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44p9_long[] = { - 3, 3, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _huff_book__44p9_long = { - 1, 8, - (char *)_huff_lengthlist__44p9_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44p9_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p9_p1_0[] = { - 1, 5, 5, 4, 8, 8, 4, 8, 8, 5, 7, 8, 8, 9,10, 8, - 10,10, 5, 8, 7, 8,10,10, 8,10, 9, 7, 9, 9, 9,11, - 11, 9,11,11, 9,11,11,11,12,13,11,13,13, 9,11,11, - 11,13,13,11,13,13, 7, 9, 9, 9,11,11, 9,11,11, 9, - 11,11,11,13,13,11,13,13, 9,11,11,11,13,13,11,13, - 12, 5, 9, 9, 9,11,11, 9,11,11, 9,11,11,11,12,13, - 11,13,13, 9,11,11,11,13,13,11,13,13, 9,11,12,11, - 13,13,12,13,13,11,12,13,13,14,15,13,14,14,12,13, - 13,13,15,15,13,15,14, 8,10,10,11,13,13,12,14,13, - 11,12,12,13,14,15,13,15,15,11,12,12,13,15,15,13, - 15,14, 5, 9, 9, 9,11,11, 9,11,11, 9,11,11,11,13, - 13,11,13,13, 9,11,10,11,13,13,11,13,12, 8,10,10, - 11,13,13,12,13,13,11,12,12,13,14,15,14,15,15,10, - 12,12,13,14,15,13,15,14, 9,12,11,12,13,13,11,13, - 13,12,13,13,13,15,15,13,14,15,11,13,12,13,15,14, - 13,15,14, -}; - -static const static_codebook _44p9_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44p9_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p9_p1_0, - 0 -}; - -static const long _vq_quantlist__44p9_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p9_p2_0[] = { - 4, 6, 6, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 6, - 8, 8,11,11, 6, 8, 8,11,11, 6, 7, 7, 9, 9, 7, 8, - 9,10,11, 7, 9, 9,11,10, 8, 9,10,12,12, 8,10,10, - 12,12, 6, 7, 7, 9, 9, 7, 9, 9,10,10, 7, 9, 8,11, - 10, 8,10,10,12,12, 8,10, 9,12,12, 8, 9, 9,11,11, - 9,10,10,12,12, 9,11,11,12,13,11,12,12,13,14,11, - 12,12,14,14, 8, 9, 9,11,11, 9,11,10,13,12, 9,10, - 10,13,12,11,12,12,14,14,11,12,12,14,13, 7, 8, 9, - 10,10, 8,10,10,11,11, 8,10,10,11,11,10,11,11,13, - 13,10,11,11,13,13, 8, 9,10,10,11,10,11,11,12,13, - 10,11,11,12,12,11,11,12,13,14,11,12,12,14,14, 8, - 10,10,11,11,10,11,11,12,13,10,11,11,12,12,11,12, - 12,14,14,11,12,12,14,14,10,11,11,12,13,11,12,12, - 13,14,12,13,13,14,14,13,13,14,14,16,13,14,14,15, - 16,10,11,11,13,13,12,12,12,14,14,11,12,12,14,14, - 13,14,14,15,16,13,14,14,16,15, 7, 8, 8,10,10, 8, - 10,10,11,11, 8,10,10,12,11,10,11,11,13,13,10,11, - 11,13,13, 8,10,10,11,11,10,11,11,12,12,10,11,11, - 12,12,11,12,12,14,14,11,12,12,14,14, 8,10, 9,11, - 10,10,11,11,13,12,10,11,10,13,12,11,12,12,14,14, - 11,12,11,14,13,10,11,11,13,13,11,12,12,14,14,12, - 12,12,14,14,13,14,14,15,16,13,14,14,15,15,10,11, - 11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14, - 16,15,13,14,13,16,14,10,11,11,13,13,12,12,13,14, - 15,12,13,13,14,15,13,14,15,15,16,13,14,14,16,16, - 11,12,13,14,14,13,13,14,15,16,13,14,14,15,16,14, - 15,15,16,17,14,15,16,17,17,11,12,12,14,14,13,14, - 14,15,16,13,14,14,15,15,14,15,15,16,18,14,15,15, - 17,16,13,14,15,15,16,15,15,16,16,18,15,15,15,17, - 17,16,16,17,17,18,16,16,16,18,18,14,14,14,16,16, - 15,15,15,16,17,15,15,15,16,17,16,17,17,18,18,16, - 16,17,18,17,10,11,11,14,13,12,13,13,15,14,11,13, - 13,15,14,13,15,15,16,16,13,14,14,16,16,11,12,12, - 14,14,13,13,13,15,15,13,14,13,15,15,15,15,15,17, - 16,14,15,15,17,16,11,13,12,14,14,13,14,13,15,15, - 13,14,13,15,15,14,15,15,17,17,14,15,15,17,16,14, - 14,14,16,16,14,15,15,17,17,15,15,16,17,16,17,16, - 17,18,18,16,17,17,18,18,13,14,14,16,15,15,15,15, - 17,17,14,16,15,16,16,17,17,17,18,18,16,17,16,20, - 19, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,12,11, - 10,11,11,13,13,10,11,11,13,13, 8, 9,10,11,11,10, - 11,11,12,12,10,11,11,13,12,11,12,12,14,14,11,12, - 12,14,14, 9,10,10,11,11,10,11,11,12,12,10,11,11, - 13,12,11,12,12,14,14,11,12,12,14,14,10,10,11,12, - 13,11,12,12,14,14,11,12,12,14,14,13,14,14,15,16, - 13,14,14,15,16,10,11,11,13,13,12,12,12,14,14,12, - 13,12,14,14,13,14,14,16,16,13,14,14,15,15, 9,10, - 10,11,12,10,11,11,12,13,10,11,11,13,12,11,12,12, - 14,14,11,12,12,14,14,10,10,11,12,13,11,12,12,13, - 14,11,12,12,13,14,12,13,14,14,15,12,13,13,15,15, - 10,11,11,13,13,11,12,12,13,14,11,12,12,14,13,12, - 13,13,15,15,12,13,13,15,15,12,11,13,12,14,13,13, - 14,14,15,13,13,14,14,15,14,15,15,16,17,14,15,15, - 16,17,12,13,12,14,14,13,14,14,15,15,13,14,14,15, - 15,14,15,15,16,17,14,15,15,16,17, 8, 9, 9,11,11, - 10,11,11,12,13,10,11,11,13,12,12,13,13,14,15,11, - 13,12,15,14, 9,11,10,12,12,11,12,12,13,14,11,12, - 12,14,13,13,13,14,15,15,13,14,13,15,15, 9,11,11, - 12,12,11,12,12,14,14,11,12,12,14,13,13,14,14,15, - 16,13,14,13,15,14,11,12,12,14,13,12,13,13,14,15, - 13,14,14,16,15,15,15,15,15,16,15,16,15,17,17,11, - 12,12,14,14,13,14,14,15,15,12,13,13,15,14,15,15, - 15,17,17,14,15,15,17,15,11,12,12,14,14,12,13,13, - 15,15,12,13,13,15,15,14,15,15,17,17,14,15,15,16, - 16,12,13,13,14,15,13,14,14,16,16,14,14,14,15,16, - 15,16,16,17,17,15,16,16,17,17,12,13,13,15,15,14, - 14,14,16,16,14,14,15,16,16,15,16,16,17,17,15,16, - 16,17,17,14,15,15,15,16,15,15,16,16,18,15,16,16, - 17,17,17,17,17,18,18,16,17,17,19,18,14,15,15,16, - 17,15,16,16,17,17,15,16,16,18,17,16,17,17,19,18, - 17,17,17,19,18,10,12,12,14,14,13,13,14,15,15,12, - 14,13,16,15,15,15,15,17,17,14,15,15,17,16,12,13, - 13,15,14,13,14,14,16,16,14,14,15,17,16,15,16,16, - 17,17,15,16,16,18,17,12,13,13,15,14,14,15,15,16, - 16,13,15,14,16,15,16,17,16,19,17,15,16,16,17,17, - 14,15,15,17,15,15,16,15,17,17,16,17,16,18,17,17, - 17,18,18,18,17,17,18,19,18,14,15,15,16,16,15,16, - 16,17,18,15,16,16,18,16,17,18,18,19,19,17,18,17, - 18,19, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,12, - 11,10,11,11,13,13, 9,11,11,13,13, 9,10,10,11,11, - 10,11,11,12,12,10,11,11,12,12,11,12,12,14,14,11, - 12,12,14,14, 8,10, 9,11,11,10,11,11,12,12,10,11, - 11,12,12,11,12,12,14,14,11,12,12,14,14,10,11,11, - 13,13,11,12,13,14,14,12,12,12,14,14,13,14,14,15, - 16,13,14,14,16,16,10,11,10,13,12,11,12,12,14,14, - 11,12,12,14,14,13,14,14,15,16,13,14,14,16,15, 8, - 9, 9,11,11,10,11,11,12,13,10,11,11,13,12,12,13, - 13,14,15,12,13,13,15,14,10,11,11,12,12,11,11,12, - 13,14,11,12,12,14,14,13,13,14,15,16,13,14,14,15, - 15, 9,10,11,12,12,11,12,12,13,14,11,12,12,14,13, - 13,14,14,15,16,12,14,13,15,15,11,12,12,14,14,12, - 13,13,14,15,13,14,14,16,15,14,15,15,15,17,15,15, - 16,16,17,11,12,12,13,14,13,14,14,15,15,12,13,13, - 15,14,15,16,15,16,17,14,16,15,17,15, 9,10,10,12, - 11,10,11,11,13,13,10,11,11,13,12,11,12,12,14,14, - 11,12,12,14,14,10,11,11,12,13,11,12,12,13,14,11, - 12,12,14,14,12,13,13,15,15,12,13,13,15,15,10,11, - 10,13,12,11,12,12,13,13,11,12,12,14,13,12,13,13, - 15,15,12,13,13,15,14,12,13,12,14,14,13,14,14,15, - 15,13,14,14,15,15,14,15,15,16,16,14,15,15,16,16, - 11,13,11,14,12,13,13,13,15,14,12,14,13,15,14,15, - 15,15,17,16,14,15,14,17,15,10,12,12,14,14,13,13, - 14,15,16,12,14,13,15,15,14,15,16,17,17,14,15,16, - 17,17,12,13,13,14,15,13,14,14,16,16,14,14,15,16, - 16,16,16,16,17,17,16,16,16,18,18,12,13,13,14,15, - 14,14,15,16,16,13,14,14,16,15,16,16,16,17,18,15, - 16,16,17,17,14,15,15,16,16,15,15,16,17,17,15,16, - 16,17,18,17,18,18,18,19,17,18,18,19,19,14,15,15, - 16,16,15,16,16,17,17,15,16,16,17,17,17,17,18,20, - 18,17,18,17,18,18,11,12,12,14,14,12,13,14,15,15, - 12,13,13,15,15,14,15,15,16,17,14,15,15,16,17,12, - 13,13,15,15,14,14,14,16,16,14,14,14,16,16,15,16, - 16,17,17,15,16,16,17,17,12,13,13,15,14,13,14,14, - 16,15,14,15,14,16,15,15,16,16,17,17,15,16,16,17, - 16,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17, - 17,17,17,19,18,17,17,17,18,19,14,15,14,17,15,15, - 16,16,17,17,15,16,15,17,17,16,17,17,18,18,16,17, - 17,18,17, 6,11,11,13,13,11,12,12,14,14,11,12,12, - 14,14,13,14,14,16,16,13,14,14,16,16,11,12,12,14, - 14,12,13,13,15,15,12,13,13,15,15,14,15,15,16,17, - 14,15,15,17,18,11,12,12,14,14,12,13,13,15,15,12, - 13,13,15,15,14,15,15,17,17,14,15,15,16,16,13,14, - 14,15,16,14,15,15,16,17,14,15,15,17,16,15,16,17, - 18,17,16,16,16,18,17,14,14,15,16,16,14,15,15,18, - 16,14,15,15,17,16,16,17,17,18,18,16,17,16,18,17, - 11,12,12,14,14,12,13,13,15,15,12,13,13,15,15,14, - 15,15,17,17,14,15,15,16,16,12,13,13,15,15,13,14, - 14,15,16,13,14,14,16,16,15,16,16,17,17,15,15,16, - 17,17,12,13,13,15,15,14,14,14,16,16,13,14,14,16, - 16,15,16,16,17,17,15,16,16,17,17,14,14,15,15,16, - 15,15,16,16,17,15,15,16,16,17,16,17,17,17,18,16, - 17,17,18,18,14,15,15,16,16,15,16,16,17,17,15,16, - 16,17,17,17,17,17,18,19,17,17,17,18,18,10,12,12, - 14,14,12,13,14,15,16,13,14,13,15,15,14,15,15,17, - 17,14,15,16,17,17,12,13,13,15,15,13,14,14,15,15, - 14,15,14,16,16,15,16,16,17,18,15,17,16,18,17,12, - 13,13,15,15,14,14,14,16,16,13,14,14,16,15,15,16, - 16,17,18,15,16,16,17,17,14,14,14,16,16,15,15,16, - 17,17,15,16,16,17,17,17,17,17,18,20,17,17,17,19, - 19,14,15,15,16,16,15,17,16,18,18,15,16,15,17,16, - 17,18,19,19,19,17,17,17,18,17,13,14,14,16,16,14, - 15,15,17,17,14,15,15,16,17,15,17,17,18,18,16,16, - 17,18,17,14,15,15,16,17,15,16,16,17,17,15,16,16, - 17,17,16,17,17,18,18,17,17,17,18,19,14,15,15,16, - 17,15,16,16,17,17,15,16,16,17,17,16,17,17,18,18, - 17,17,17,19,19,16,16,16,16,18,16,17,17,17,18,17, - 17,17,17,19,18,18,18,19,19,18,18,18,19,20,16,16, - 17,18,18,16,18,17,18,18,17,17,17,20,19,18,18,19, - 21,20,18,20,18,18,19,10,12,12,14,14,14,14,15,15, - 17,14,15,14,17,15,16,16,17,18,18,16,18,17,19,18, - 12,14,13,16,15,14,14,15,15,17,15,16,16,18,17,16, - 17,18,17,19,17,19,18,20,19,12,13,13,15,15,15,16, - 17,17,18,14,16,14,17,16,17,18,18,19,19,17,17,17, - 18,18,15,15,15,17,16,15,16,16,17,17,17,19,17,18, - 18,18,18,18,18,21,19,20,19,20,19,15,15,16,16,17, - 17,17,18,20,20,15,16,16,18,17,18,19,19,19,20,18, - 19,18,19,17, 6,11,11,13,13,11,12,12,14,14,11,12, - 12,14,14,13,14,14,16,16,13,14,14,16,16,11,12,12, - 14,14,12,13,13,15,15,12,13,13,15,15,14,15,15,17, - 17,14,15,15,17,16,11,12,12,14,14,12,13,13,15,15, - 12,13,13,15,15,14,15,15,16,16,14,15,15,16,16,13, - 14,14,16,16,15,15,15,16,16,14,15,15,17,16,16,17, - 17,19,18,16,17,17,18,18,13,14,14,15,15,14,15,15, - 17,16,14,15,15,17,16,16,17,16,17,18,15,16,16,18, - 18,10,12,12,14,14,12,13,14,15,15,12,13,13,15,15, - 14,15,15,17,17,14,15,15,17,16,12,13,13,15,15,14, - 14,14,15,16,14,15,15,16,16,15,16,16,17,18,16,16, - 16,18,18,12,13,13,14,14,14,14,15,16,16,13,14,14, - 16,16,15,16,16,18,18,15,16,16,19,17,14,15,15,16, - 17,15,15,16,17,17,16,17,16,17,18,17,17,18,17,19, - 17,17,18,18,19,14,14,14,16,16,15,16,16,17,17,15, - 16,15,17,17,17,17,17,19,20,16,17,17,18,18,11,12, - 12,14,14,12,13,13,15,15,12,13,13,15,15,14,15,15, - 16,16,14,15,14,16,16,12,13,13,15,15,14,14,14,16, - 16,13,14,14,16,16,15,16,16,18,17,15,16,16,17,17, - 12,13,13,15,15,13,14,14,16,16,13,14,14,16,16,15, - 16,15,18,18,15,16,15,17,16,14,15,15,16,16,15,16, - 16,17,17,15,16,16,18,17,16,17,17,18,18,16,17,17, - 18,18,14,15,14,16,15,15,16,15,17,17,15,16,15,17, - 16,16,17,17,18,18,17,17,16,19,17,10,12,12,14,15, - 14,14,15,15,17,14,15,14,17,15,16,17,17,17,18,16, - 17,17,18,18,12,14,13,16,15,14,14,16,15,17,15,17, - 16,18,17,17,17,18,17,19,18,18,18,19,18,12,13,14, - 15,15,15,16,16,16,17,14,15,14,18,16,18,17,18,19, - 19,17,18,17,20,18,15,15,15,17,17,15,16,16,17,18, - 18,18,18,19,18,18,18,19,18,20,18,19,19,21,21,15, - 15,16,16,17,17,18,18,18,18,15,16,16,17,17,17,19, - 20,19,20,17,18,18,19,17,13,14,14,16,16,14,15,15, - 16,17,14,15,15,17,17,16,16,17,17,18,15,17,16,17, - 17,14,15,15,16,16,15,16,16,17,17,16,16,16,17,17, - 17,17,18,17,18,17,17,17,18,20,14,15,15,17,16,15, - 16,16,17,17,15,16,16,17,17,17,17,17,18,18,16,17, - 17,19,18,16,16,17,17,17,17,18,17,19,18,17,17,17, - 18,19,17,20,18,19,21,17,19,18,19,20,15,17,15,17, - 16,16,17,17,18,18,17,17,17,18,17,18,19,18,19,21, - 18,18,17,19,19, -}; - -static const static_codebook _44p9_p2_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p9_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p9_p2_0, - 0 -}; - -static const long _vq_quantlist__44p9_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p9_p3_0[] = { - 2, 5, 4, 4, 7, 7, 4, 7, 6, 5, 6, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 6, 7, 9, 9, 7, 9, 8, 6, 8, 8, 8,10, - 10, 8,10,10, 8, 9,10,10,11,12,10,12,12, 8,10,10, - 10,12,12,10,12,11, 6, 8, 8, 8,10,10, 8,10,10, 8, - 10,10,10,11,12,10,12,12, 8,10, 9,10,12,11,10,12, - 11, 5, 8, 8, 8,10,10, 8,10,10, 8, 9,10,10,11,11, - 10,11,11, 8,10,10,10,11,12,10,12,11, 8,10,10,10, - 11,11,10,11,11,10,11,11,11,12,13,11,12,13,10,11, - 11,11,13,13,11,13,13, 7, 9, 9,10,11,12,10,12,11, - 9,11,11,11,12,13,12,14,13, 9,11,11,12,13,14,11, - 13,12, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, - 12,10,12,12, 8,10, 9,10,12,11, 9,11,11, 7, 9, 9, - 10,11,12,10,12,11, 9,11,11,11,12,13,12,14,13, 9, - 11,11,12,13,14,11,13,12, 8,10,10,10,11,11,10,11, - 11,10,11,11,11,13,13,11,13,13,10,11,10,11,13,12, - 11,13,12, -}; - -static const static_codebook _44p9_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44p9_p3_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44p9_p3_0, - 0 -}; - -static const long _vq_quantlist__44p9_p3_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p9_p3_1[] = { - 4, 6, 6, 6, 7, 7, 6, 7, 7, 6, 7, 7, 7, 7, 8, 7, - 7, 8, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, - 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, - 9, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, - 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, - 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 7, 8, 8, 8, 9, 9, 8, 9, 9, - 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 9, 8, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, - 8, 9, 9, 8, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 8, 9, - 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44p9_p3_1 = { - 5, 243, - (char *)_vq_lengthlist__44p9_p3_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44p9_p3_1, - 0 -}; - -static const long _vq_quantlist__44p9_p4_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p9_p4_0[] = { - 2, 5, 5, 4, 7, 7, 4, 7, 6, 5, 7, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 6, 7, 8, 8, 9, - 10, 8,10,10, 8, 9,10,10,11,12,10,11,12, 8,10,10, - 10,11,12,10,12,11, 6, 8, 7, 8,10,10, 8,10, 9, 8, - 10,10,10,11,12,10,12,12, 8,10, 9,10,12,11,10,12, - 11, 5, 8, 8, 8,10,10, 8,10,10, 7, 9,10, 9,10,11, - 10,11,11, 8,10,10,10,12,12,10,12,11, 7, 9, 9, 9, - 11,11, 9,11,11, 9,10,11,11,11,12,11,12,12, 9,11, - 11,11,12,12,11,12,12, 7, 9, 9,10,11,12,10,12,11, - 9,11,10,11,11,12,12,13,13, 9,11,11,12,13,13,11, - 13,11, 5, 8, 8, 8,10,10, 8,10,10, 8,10,10,10,11, - 12,10,12,12, 7, 9, 9, 9,11,11, 9,11,10, 7, 9, 9, - 10,11,12,10,12,11, 9,11,11,11,11,13,12,13,13, 9, - 10,11,12,13,13,11,12,11, 7, 9, 9, 9,11,11, 9,11, - 11, 9,11,11,11,12,12,11,12,12, 9,11,10,11,12,12, - 10,12,11, -}; - -static const static_codebook _44p9_p4_0 = { - 5, 243, - (char *)_vq_lengthlist__44p9_p4_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44p9_p4_0, - 0 -}; - -static const long _vq_quantlist__44p9_p4_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p9_p4_1[] = { - 6, 8, 8,10, 9, 8, 9, 9,10,10, 8, 9, 9,10,10, 8, - 10,10,10,10, 8,10,10,10,10, 9, 9, 9,10,10, 9,10, - 10,10,11, 9,10,10,11,11,10,10,10,11,11,10,10,10, - 11,11, 9, 9, 9,10,10, 9,10,10,11,11, 9,10,10,11, - 10,10,10,10,11,11,10,10,10,11,11,10,10,10,10,11, - 10,10,11,11,11,10,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,10,10,10,11,10,10,11,11,11,11,10,11, - 10,11,11,11,11,11,11,11,10,11,11,11,11, 9,10,10, - 10,11,10,10,11,11,11,10,11,11,11,11,10,11,11,11, - 11,10,11,11,11,11,10,10,11,11,11,11,11,11,11,11, - 11,11,11,11,12,11,11,12,12,12,11,11,11,12,12,10, - 11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11, - 11,12,12,11,11,11,12,12,11,11,11,11,11,11,12,12, - 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12, - 11,12,12,12,12,12,12,12,12,12, 9,10,10,11,10,10, - 11,11,11,11,10,11,11,11,11,10,11,11,11,11,10,11, - 11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, - 12,12,11,11,12,12,12,11,11,11,12,12,10,11,10,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, - 11,11,11,12,12,11,11,11,11,11,11,12,12,12,12,11, - 12,12,12,12,11,12,12,12,12,12,12,12,12,12,11,11, - 11,11,11,11,12,12,12,12,11,12,11,12,12,12,12,12, - 12,12,11,12,12,12,12,11,11,11,11,11,11,12,12,12, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,13,12,12,12,13,13,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, - 13,13,12,12,12,12,12,12,12,12,12,13,12,12,12,13, - 13,12,13,13,13,13,12,13,13,13,13,12,12,12,12,12, - 12,12,12,13,13,12,12,12,13,13,12,13,13,13,13,12, - 13,13,13,13,11,11,11,11,11,11,12,12,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 13,12,12,12,13,13,11,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,13,13,12,12,12,13,13,12, - 12,12,12,12,12,12,12,13,13,12,12,12,13,13,12,13, - 13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, - 13,13,12,12,12,13,12,12,13,13,13,13,12,13,13,13, - 13, 7,10,10,11,11,10,10,11,11,11,10,11,11,11,11, - 10,11,11,11,11,10,11,11,11,11,10,10,10,11,11,10, - 11,11,11,11,11,11,11,11,12,11,11,11,12,12,11,11, - 11,12,12,10,11,11,11,11,11,11,11,12,11,11,11,11, - 12,11,11,11,11,12,12,11,11,11,12,12,11,11,11,11, - 11,11,11,11,12,12,11,11,12,12,12,11,12,12,12,12, - 11,12,12,12,12,11,11,11,11,11,11,12,12,12,12,11, - 11,12,12,12,11,12,12,12,12,11,12,12,12,12,10,11, - 11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11, - 12,12,11,11,11,12,12,11,11,11,11,11,11,11,12,12, - 12,11,11,11,12,12,11,12,12,12,12,11,12,12,12,12, - 11,11,11,11,11,11,12,11,12,12,11,11,11,12,12,11, - 12,12,12,12,11,12,12,12,12,11,11,11,11,12,11,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,11,11,11,12,12,11,12,12,12,12,11,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,10,11,10,11,11, - 11,11,11,12,12,11,11,11,12,12,11,12,12,12,12,11, - 12,12,12,12,10,11,11,12,11,11,11,12,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,11,11,11, - 12,11,11,12,12,12,12,11,12,11,12,12,12,12,12,12, - 12,12,12,12,12,12,11,12,11,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,13,12,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,12,12,12,13,12,11,11,11,12,12,12,12,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 13,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,13,13,12,12,12,13,13,11,12,12,12,12,12, - 12,12,12,13,12,12,12,12,12,12,12,13,13,13,12,13, - 12,13,13,12,12,12,12,12,12,12,12,13,13,12,12,12, - 13,13,12,13,13,13,13,12,13,13,13,13,12,12,12,12, - 12,12,12,12,13,13,12,13,12,13,13,12,13,13,13,13, - 12,13,13,13,13,11,11,11,12,12,12,12,12,12,12,11, - 12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, - 12,12,12,12,12,12,12,12,12,12,12,13,13,12,13,12, - 13,13,12,13,13,13,13,11,12,12,12,12,12,12,12,13, - 13,12,12,12,13,12,12,13,13,13,13,12,13,13,13,13, - 12,12,12,12,12,12,12,13,13,13,12,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,13, - 13,13,13,12,12,12,13,13,13,13,13,13,13,13,13,13, - 13,13, 7,10,10,11,11,10,11,11,11,11,10,11,11,11, - 11,10,11,11,11,11,10,11,11,11,11,10,11,11,11,11, - 11,11,11,11,11,11,11,11,12,11,11,11,12,12,12,11, - 11,11,12,12,10,10,10,11,11,11,11,11,12,11,10,11, - 11,11,11,11,11,11,12,12,11,11,11,12,12,11,11,11, - 11,11,11,11,12,12,12,11,12,11,12,12,11,12,12,12, - 12,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12, - 11,12,11,12,12,11,12,12,12,12,11,12,12,12,12,10, - 10,10,11,11,11,11,11,12,12,11,11,11,12,12,11,12, - 12,12,12,11,12,12,12,12,11,11,11,11,11,11,11,12, - 12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,11,11,11,11,11,11,12,12,12,12,11,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,13,12,12, - 12,13,12,11,11,11,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,10,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12, - 11,11,11,12,12,11,11,11,11,11,11,11,12,12,12,11, - 12,11,12,12,11,12,12,12,12,11,12,12,12,12,11,11, - 11,11,11,11,11,11,12,12,11,11,11,12,12,11,12,12, - 12,12,11,12,12,12,12,11,11,11,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 11,11,11,12,11,11,12,12,12,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,11,11,11,12,12,11,12, - 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, - 13,12,11,12,12,12,12,12,12,12,12,13,12,12,12,13, - 13,12,13,13,13,13,12,13,13,13,13,11,12,12,12,12, - 12,12,12,12,13,12,12,12,12,12,12,13,13,13,13,12, - 13,13,13,13,12,12,12,12,12,12,12,13,13,13,12,13, - 12,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, - 12,12,12,13,13,13,13,12,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,11,11,11,12,12,11,12,12,12,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13, - 12,13,13,12,12,12,13,13,11,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,13,12,13,12,13, - 13,12,12,12,12,12,12,12,12,13,13,12,12,12,13,13, - 13,13,13,13,13,12,13,13,13,13,12,12,12,12,12,12, - 13,12,13,13,12,13,12,13,12,12,13,13,13,13,12,13, - 13,13,13, 8,11,11,12,12,11,12,12,12,12,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,11,11,11,12, - 12,11,12,12,12,12,12,12,12,12,12,12,12,12,13,13, - 12,12,12,13,13,11,11,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,13,12,12,12,13,13,11,12, - 12,12,12,12,12,12,12,13,12,12,12,12,12,12,12,13, - 13,13,12,12,13,13,13,11,12,12,12,12,12,12,12,13, - 12,12,12,12,13,13,12,13,13,13,13,12,13,13,13,13, - 11,11,11,12,12,11,12,12,12,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,13,13,12,12,12, - 13,13,11,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,12,13,13,12,13,12,13,13,12,12,12,12,12, - 12,12,12,12,13,12,12,12,13,13,12,13,13,13,13,12, - 13,13,13,13,12,12,12,12,12,12,12,12,13,13,12,12, - 12,13,13,12,13,13,13,13,12,13,13,13,13,11,11,11, - 12,12,11,12,12,12,12,11,12,12,12,12,12,12,12,13, - 12,12,12,12,12,13,11,12,12,12,12,12,12,12,12,13, - 12,12,12,12,13,12,13,13,13,13,12,13,13,13,13,11, - 12,12,12,12,12,12,12,12,13,12,12,12,13,12,12,13, - 13,13,13,12,13,13,13,13,12,12,12,12,12,12,12,12, - 13,13,12,12,13,13,13,12,13,13,13,13,12,13,13,13, - 13,12,12,12,12,12,12,13,13,13,13,12,13,12,13,13, - 12,13,13,13,13,13,13,13,13,13,11,11,11,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,13,13,13,12,13,13,13,13,11,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13, - 12,13,12,13,13,12,12,12,12,12,12,12,12,13,13,12, - 12,12,13,13,12,13,13,13,13,12,13,13,13,13,12,12, - 12,12,12,12,13,12,13,13,12,12,12,13,13,13,13,13, - 13,13,12,13,13,13,13,11,11,11,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,12,12,12,13,12, - 11,12,12,12,12,12,12,12,12,12,12,12,12,13,13,12, - 12,13,13,13,12,13,13,13,13,11,12,12,12,12,12,12, - 12,12,13,12,12,12,13,12,12,13,13,13,13,12,13,13, - 13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13, - 13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12, - 12,13,13,13,13,12,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13, 8,11,11,11,11,11,12,12,12,12,11,12, - 12,12,12,12,12,12,12,12,11,12,12,12,12,11,11,11, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 13,12,12,12,13,13,11,11,11,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,13,13,12,12,12,13,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,13,13,12,13, - 13,13,13,12,13,13,13,13,11,12,12,12,12,12,12,12, - 12,13,12,12,12,13,12,12,13,13,13,13,12,13,12,13, - 13,11,11,11,12,12,12,12,12,12,12,11,12,12,12,12, - 12,12,12,13,13,12,12,12,13,12,11,12,12,12,12,12, - 12,12,12,12,12,12,12,13,13,12,12,13,13,13,12,13, - 13,13,13,11,12,12,12,12,12,12,12,13,13,12,12,12, - 12,12,12,13,13,13,13,12,13,13,13,13,12,12,12,12, - 12,12,12,13,13,13,12,12,13,13,13,13,13,13,13,13, - 12,13,13,13,13,12,12,12,12,12,12,13,12,13,13,12, - 12,12,13,13,13,13,13,13,13,12,13,13,13,13,11,11, - 11,12,12,11,12,12,12,12,11,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,11,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,13,12,13,13,12,12,12,13,13, - 11,12,12,12,12,12,12,12,12,13,12,12,12,12,12,12, - 12,12,13,13,12,13,12,13,13,12,12,12,12,12,12,12, - 12,13,12,12,12,12,13,13,12,13,13,13,13,12,13,13, - 13,13,12,12,12,12,12,12,12,12,13,13,12,12,12,13, - 12,12,13,13,13,13,12,13,13,13,13,11,11,11,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,13,13,11,12,12,12,12,12,12,12,12,13,12,12, - 12,12,12,12,13,13,13,13,12,13,13,13,13,11,12,12, - 12,12,12,12,12,12,13,12,12,12,12,12,12,13,13,13, - 13,12,13,13,13,13,12,12,12,12,12,12,12,12,13,13, - 12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,12, - 12,12,12,12,12,13,13,13,13,12,12,12,13,12,13,13, - 13,13,13,12,13,13,13,13,11,11,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 13,11,12,12,12,12,12,12,12,12,12,12,12,12,13,12, - 12,12,12,13,13,12,13,13,13,13,11,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,13,13,13,13,12,13, - 12,13,13,12,12,12,12,12,12,12,13,13,13,12,13,12, - 13,13,12,13,13,13,13,13,13,13,13,13,12,12,12,12, - 12,12,12,12,12,13,12,12,12,13,13,13,13,13,13,13, - 12,13,13,13,13, -}; - -static const static_codebook _44p9_p4_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p9_p4_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44p9_p4_1, - 0 -}; - -static const long _vq_quantlist__44p9_p5_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p9_p5_0[] = { - 4, 6, 6, 9, 9, 6, 7, 8,10,11, 6, 8, 7,10,10, 8, - 10,10,12,12, 8,10,10,12,12, 6, 7, 8,10,10, 7, 8, - 9,10,11, 8, 9, 9,11,11,10,10,11,12,13,10,11,11, - 13,13, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 9, 8,11, - 10,10,11,11,13,13,10,11,10,13,12, 9,10,10,11,12, - 10,10,11,12,13,10,11,11,12,13,12,12,13,12,14,12, - 13,13,14,14, 9,10,10,12,11,10,11,11,13,12,10,11, - 10,13,12,12,13,13,14,14,12,13,12,14,12, 7, 8, 8, - 10,11, 8, 9,10,11,12, 8, 9, 9,11,12,10,11,12,13, - 14,10,11,11,13,13, 8, 9,10,11,12, 9,10,11,12,13, - 10,10,11,12,12,11,12,12,13,14,11,12,12,14,14, 8, - 9, 9,11,12,10,10,11,12,13, 9,10,10,12,12,11,12, - 12,14,14,11,12,12,14,13,11,11,12,12,13,11,12,12, - 13,14,12,12,13,14,14,13,13,14,14,16,13,14,14,15, - 15,11,12,11,13,13,12,12,12,14,14,11,12,12,14,13, - 13,14,14,15,15,13,14,13,15,14, 7, 8, 8,11,10, 8, - 10, 9,12,11, 8,10, 9,12,11,10,11,11,13,13,10,12, - 11,14,13, 8, 9, 9,12,11, 9,10,10,12,12,10,11,10, - 13,12,11,12,12,13,14,11,12,12,14,14, 8,10, 9,12, - 11,10,11,10,12,12, 9,11,10,13,11,11,12,12,14,14, - 11,12,12,14,13,11,11,12,13,13,11,12,12,13,14,12, - 12,12,14,14,13,13,14,14,15,13,14,14,15,15,11,12, - 11,13,12,12,12,12,14,14,11,12,12,14,13,13,14,14, - 15,15,13,14,13,15,14,10,11,11,12,13,11,12,12,13, - 14,11,12,12,13,14,13,13,14,14,16,13,14,14,15,15, - 11,12,12,12,14,12,12,13,13,15,12,13,13,13,15,14, - 14,15,15,16,14,14,15,15,16,11,12,12,13,14,12,13, - 13,14,15,12,13,13,14,14,14,14,15,15,16,14,14,14, - 15,15,13,14,14,14,15,14,14,15,15,16,14,15,15,15, - 16,15,15,16,16,18,16,16,16,17,17,13,14,14,15,15, - 14,14,15,16,16,14,14,14,16,15,16,16,16,17,17,15, - 16,16,17,16,10,11,11,13,12,11,12,12,14,13,11,12, - 12,14,13,13,14,14,15,15,13,14,13,16,14,11,12,12, - 14,13,12,13,13,14,14,12,13,13,15,14,14,14,14,15, - 15,14,15,14,16,15,11,12,12,14,12,12,13,13,15,14, - 12,13,12,15,13,14,15,14,16,15,14,15,14,16,15,13, - 14,14,15,15,14,14,14,15,16,14,15,14,16,16,15,16, - 16,16,17,16,16,16,17,17,13,14,14,15,14,14,15,15, - 16,15,14,15,14,16,15,16,16,16,17,17,15,16,15,18, - 16, 6, 8, 8,11,11, 8, 9,10,11,12, 8,10, 9,12,12, - 10,11,11,13,13,10,12,11,14,13, 8, 9, 9,11,12, 9, - 10,10,12,12, 9,10,10,12,12,11,11,12,13,14,11,12, - 12,14,14, 8,10, 9,12,11,10,11,11,12,12, 9,11,10, - 13,12,11,12,12,14,14,11,12,12,14,13,10,11,11,13, - 13,11,12,12,13,14,11,12,12,14,14,13,13,14,13,15, - 13,14,14,15,15,11,12,11,13,13,12,12,12,14,14,11, - 12,12,14,13,13,14,14,15,15,13,14,13,15,14, 8, 9, - 9,11,11, 9,10,10,12,12, 9,10,10,12,12,11,12,12, - 13,14,11,12,12,14,14, 9, 9,10,11,12,10,10,11,12, - 13,10,10,11,12,13,12,12,13,13,15,12,12,13,14,14, - 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, - 13,13,14,15,12,13,12,14,14,11,11,12,12,14,12,12, - 13,13,14,12,12,13,13,14,13,13,14,14,16,14,14,14, - 15,15,11,12,12,14,13,12,13,13,14,14,12,13,13,15, - 14,14,14,14,16,16,13,14,14,16,14, 7, 9, 9,12,11, - 9,10,10,12,12, 9,11,10,13,12,11,12,12,13,14,11, - 13,12,14,13, 9,10,10,12,12,10,10,11,12,13,10,12, - 11,13,13,12,12,13,13,14,12,13,13,15,14, 9,10,10, - 12,12,11,11,11,13,13,10,12,10,13,12,12,13,13,14, - 15,12,13,12,15,13,11,12,12,14,13,12,12,13,13,14, - 12,13,13,15,14,13,13,14,13,16,14,15,14,16,15,12, - 12,12,14,14,13,13,13,14,14,12,13,12,14,13,14,15, - 15,16,16,13,14,13,16,13,10,11,12,13,14,11,12,13, - 13,15,12,12,13,14,14,13,14,14,15,16,13,14,14,16, - 15,12,12,13,12,14,12,12,13,13,15,13,13,13,13,15, - 14,14,15,14,16,14,15,15,15,16,12,13,12,14,14,13, - 13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15, - 15,16,16,13,14,14,13,16,14,14,15,14,16,14,14,15, - 14,16,15,15,16,15,18,16,16,16,16,17,14,14,14,16, - 15,14,15,15,16,16,14,15,15,16,16,16,16,16,17,17, - 15,16,16,17,16,10,12,11,14,13,12,13,13,14,14,12, - 13,12,15,14,14,14,14,15,15,14,15,14,16,15,12,13, - 12,14,13,12,13,13,15,14,13,14,13,15,14,14,15,15, - 16,16,14,15,15,17,15,12,13,12,14,14,13,14,14,15, - 15,13,14,13,15,14,15,15,15,16,16,14,15,15,17,15, - 14,14,14,16,15,14,15,15,16,16,14,15,15,16,15,16, - 16,16,16,17,16,17,16,18,17,14,14,14,16,15,15,15, - 15,16,16,14,15,14,16,15,16,16,17,17,17,15,16,15, - 17,16, 6, 8, 8,11,11, 8, 9,10,12,12, 8,10, 9,12, - 11,10,11,12,13,13,10,11,11,13,13, 8, 9,10,11,12, - 9,10,11,12,13,10,11,11,12,12,11,12,12,13,14,11, - 12,12,14,14, 8, 9, 9,12,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,14,14,11,12,11,14,13,11,11,12, - 13,13,11,12,12,13,14,12,12,12,14,14,13,13,14,14, - 15,13,14,14,15,15,10,11,11,13,13,11,12,12,14,14, - 11,12,12,14,13,13,14,14,15,15,13,14,13,15,13, 7, - 9, 9,11,12, 9,10,11,12,13, 9,10,10,12,12,11,12, - 13,13,14,11,12,12,14,14, 9,10,10,12,12,10,10,11, - 12,13,11,12,11,13,13,12,12,13,13,15,12,13,13,15, - 14, 9,10,10,12,12,10,11,12,13,13,10,11,10,13,12, - 12,13,13,14,15,12,13,12,14,13,12,12,12,14,14,12, - 12,13,13,14,13,13,13,15,14,14,13,14,13,16,14,15, - 15,16,16,11,12,12,13,14,12,13,13,14,15,12,13,12, - 14,13,14,14,15,15,16,13,14,13,15,13, 8, 9, 9,11, - 11, 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14, - 11,12,11,14,13, 9,10,10,12,12,10,11,11,13,13,10, - 11,11,13,13,12,12,13,14,15,12,13,13,15,14, 9,10, - 9,12,11,10,11,10,13,12,10,11,10,13,12,12,13,12, - 14,14,12,13,12,15,13,11,12,12,13,14,12,13,13,14, - 14,12,13,13,14,14,14,14,14,14,16,14,14,14,16,15, - 11,12,11,14,12,12,13,12,15,13,12,13,12,15,13,14, - 14,14,16,15,13,14,13,16,14,10,11,12,13,14,12,12, - 13,13,15,12,13,13,14,14,14,14,15,15,16,14,14,14, - 15,16,12,12,13,14,14,12,13,14,14,15,13,14,14,15, - 15,14,15,15,15,17,15,15,15,16,16,12,12,13,13,14, - 13,13,14,14,15,12,13,13,14,15,15,15,15,15,17,14, - 15,15,15,15,14,14,14,16,16,14,15,15,15,16,15,15, - 15,16,16,16,15,16,16,18,16,16,17,17,17,14,14,14, - 15,16,15,15,15,16,17,14,15,14,16,16,16,16,17,17, - 18,16,16,15,17,16,10,12,11,14,13,12,12,12,14,14, - 11,13,12,14,13,13,14,14,15,15,13,14,13,16,15,12, - 12,13,14,14,12,13,13,15,15,13,13,13,15,15,14,15, - 15,16,16,14,15,15,17,16,12,13,12,14,12,13,13,13, - 15,13,12,13,12,15,13,14,15,15,16,15,14,15,14,16, - 14,14,14,14,16,16,14,15,15,16,16,14,15,15,16,16, - 15,16,16,16,17,16,17,16,18,17,13,14,14,16,13,14, - 15,15,16,14,14,15,14,16,14,16,16,16,17,16,15,16, - 15,18,15, 9,11,11,13,13,11,12,12,14,14,11,12,12, - 14,14,13,14,14,15,15,13,14,14,15,15,11,12,12,14, - 14,11,12,13,14,15,12,13,13,15,14,13,14,14,15,16, - 13,14,14,16,16,11,12,12,14,14,12,13,13,15,15,12, - 13,13,15,14,14,14,14,16,16,14,15,14,16,15,12,13, - 13,14,15,12,13,14,15,16,13,14,14,16,16,14,14,15, - 16,17,15,15,15,17,17,13,14,14,15,15,14,15,14,16, - 16,14,15,14,16,15,15,16,16,17,17,15,16,15,17,16, - 10,12,12,13,14,11,12,13,14,14,12,13,12,14,14,13, - 14,14,15,16,13,14,14,16,15,11,12,12,14,14,12,12, - 13,14,15,12,13,13,15,15,13,13,15,15,17,14,14,15, - 16,16,12,13,12,14,14,12,13,13,15,15,12,13,13,15, - 14,14,15,15,16,16,14,15,14,16,16,13,12,14,13,16, - 13,13,15,14,16,14,13,15,15,16,14,14,16,15,17,15, - 15,16,16,17,13,14,14,16,15,14,15,15,16,16,14,15, - 14,16,15,16,16,16,17,17,15,16,16,18,16,10,12,12, - 14,14,12,12,13,14,14,12,13,12,15,14,13,14,14,15, - 16,14,15,14,16,15,11,12,12,14,14,12,13,13,14,15, - 13,14,13,15,15,14,14,15,15,16,14,15,15,17,16,12, - 13,13,14,14,13,13,14,15,15,12,14,13,15,15,14,15, - 15,16,16,14,15,15,17,15,13,14,13,15,15,13,14,14, - 15,16,14,15,14,17,16,15,15,15,15,17,16,16,16,18, - 17,14,14,14,16,16,15,15,15,16,16,14,15,14,16,16, - 16,16,17,17,17,16,16,16,17,16,11,12,13,14,14,12, - 13,13,15,15,12,13,13,15,15,14,15,15,16,16,14,15, - 15,17,16,12,13,13,14,15,13,13,14,14,16,13,14,14, - 15,16,15,14,16,15,17,15,15,16,16,17,12,13,13,15, - 15,13,14,14,16,16,13,14,14,16,15,15,15,16,17,17, - 15,16,15,17,16,14,14,15,13,16,15,14,16,14,17,15, - 15,16,14,17,16,15,17,15,18,16,16,17,16,18,14,15, - 15,17,16,15,16,16,17,17,15,16,15,17,16,16,17,17, - 18,18,16,17,15,18,16,11,12,12,14,14,13,13,14,14, - 15,13,14,13,16,14,15,15,15,16,16,15,16,15,17,16, - 12,13,13,15,14,13,13,14,15,15,14,15,14,16,15,15, - 15,16,15,16,16,16,16,18,16,12,13,13,15,15,14,14, - 15,15,16,13,14,13,16,15,16,16,16,17,17,15,16,15, - 17,15,14,15,14,16,15,14,15,15,16,16,15,16,15,17, - 16,16,15,16,15,17,17,18,17,18,17,15,15,15,16,16, - 16,16,16,17,17,14,15,15,17,16,17,17,18,18,18,16, - 17,15,18,15, 9,11,11,13,13,11,12,12,14,14,11,12, - 12,14,14,13,14,14,15,16,13,14,14,15,15,11,12,12, - 14,14,12,13,13,14,15,12,13,13,14,14,14,14,15,15, - 16,14,14,14,16,16,11,12,12,14,14,12,13,13,14,15, - 11,13,12,14,14,13,14,14,16,16,13,14,14,16,15,13, - 14,14,15,15,14,14,15,15,16,14,15,14,16,16,15,15, - 16,16,17,15,16,16,17,17,12,13,13,15,15,13,14,14, - 16,15,12,14,13,16,15,15,16,15,17,17,14,15,15,17, - 15,10,12,12,14,14,12,12,13,14,15,12,13,12,14,14, - 14,14,15,15,16,13,14,14,16,16,12,13,13,14,14,13, - 13,14,14,15,13,14,13,15,15,14,15,15,15,17,14,15, - 15,16,16,11,12,12,14,14,13,13,14,15,15,12,13,13, - 15,14,14,15,15,16,17,14,15,14,16,15,14,14,14,16, - 16,14,15,15,16,16,15,15,15,16,16,15,16,16,16,18, - 16,17,16,18,17,13,13,14,15,15,14,14,15,16,16,13, - 14,14,16,15,16,16,17,17,17,15,15,15,17,15,10,12, - 12,14,13,12,12,13,14,14,11,13,12,14,14,13,14,14, - 16,16,13,14,14,16,15,12,12,13,14,14,12,13,13,14, - 15,13,13,13,15,15,14,14,15,16,16,14,15,15,16,16, - 11,12,12,14,14,12,13,13,15,15,12,13,12,15,14,14, - 15,14,16,16,13,15,13,16,15,13,14,14,15,16,14,15, - 15,15,17,14,15,15,16,16,16,15,16,16,17,16,16,16, - 17,17,13,14,12,16,13,14,15,13,16,15,13,15,13,16, - 14,15,16,15,17,16,15,16,14,17,15,11,12,12,14,15, - 13,13,14,14,16,13,14,13,15,14,15,15,16,16,17,15, - 15,15,16,16,12,13,13,15,15,13,13,14,15,16,14,15, - 14,16,15,15,15,16,15,17,16,16,16,17,17,12,13,13, - 14,15,14,14,15,15,16,13,14,13,15,15,16,16,16,17, - 17,15,16,15,16,15,15,15,15,16,16,14,15,15,16,17, - 16,16,16,17,17,16,15,17,15,18,17,18,17,18,18,14, - 14,15,15,17,15,15,16,16,17,14,15,15,16,16,17,17, - 17,17,18,16,16,15,17,15,11,12,12,14,14,12,13,13, - 15,15,12,13,13,15,15,14,15,15,16,16,14,15,14,17, - 16,13,13,13,15,15,13,14,14,15,16,13,14,14,16,16, - 15,15,16,16,17,15,16,16,17,17,12,13,13,15,14,13, - 14,14,16,15,13,14,13,16,14,15,16,16,17,16,15,16, - 14,17,15,14,15,15,16,17,15,15,16,16,17,15,16,16, - 17,17,16,15,17,16,18,16,17,17,18,18,14,15,14,16, - 13,15,16,15,17,14,15,16,14,17,14,16,17,16,18,16, - 16,17,15,18,15, -}; - -static const static_codebook _44p9_p5_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p9_p5_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44p9_p5_0, - 0 -}; - -static const long _vq_quantlist__44p9_p5_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44p9_p5_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44p9_p5_1 = { - 1, 7, - (char *)_vq_lengthlist__44p9_p5_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44p9_p5_1, - 0 -}; - -static const long _vq_quantlist__44p9_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p9_p6_0[] = { - 2, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 8, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 8, 5, 7, 8, 8, 9, - 10, 8, 9,10, 8, 9,10,10,10,12,10,11,11, 8,10,10, - 10,11,12,10,11,10, 5, 8, 7, 8,10,10, 8,10, 9, 8, - 10,10,10,10,11,10,12,11, 8,10, 9,10,11,11,10,12, - 10, 5, 8, 8, 7, 9,10, 8,10, 9, 7, 9,10, 9,10,11, - 9,11,11, 8,10, 9,10,11,11, 9,11,10, 7, 9, 9, 9, - 10,11, 9,11,11, 9, 9,11,10,10,13,11,12,12, 9,11, - 11,11,12,13,11,13,11, 7, 9, 9, 9,10,11, 9,11,10, - 9,11,10,10,10,12,11,13,12, 9,11,11,11,12,12,10, - 12,10, 5, 8, 8, 8, 9,10, 7,10, 9, 8, 9,10, 9,10, - 11,10,11,11, 7,10, 9, 9,11,11, 9,11,10, 7, 9, 9, - 9,10,11, 9,11,10, 9,11,11,10,10,12,11,12,12, 9, - 10,11,11,12,13,10,12,10, 7, 9, 9, 9,11,11, 9,11, - 10, 9,11,11,11,11,13,11,13,12, 9,11, 9,11,12,12, - 10,13,10, -}; - -static const static_codebook _44p9_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44p9_p6_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44p9_p6_0, - 0 -}; - -static const long _vq_quantlist__44p9_p6_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44p9_p6_1[] = { - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, - 8, 8, 7, 8, 7, 7, 8, 8, 7, 8, 8, 7, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, - 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 8, 8, - 8, 8, 9, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 9, 9, 8, - 9, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 8, 9, 9, 8, - 8, 8, 8, 8, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 8, 9, 9, 8, 8, 8, 8, 9, 8, - 8, 9, 8, -}; - -static const static_codebook _44p9_p6_1 = { - 5, 243, - (char *)_vq_lengthlist__44p9_p6_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44p9_p6_1, - 0 -}; - -static const long _vq_quantlist__44p9_p7_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p9_p7_0[] = { - 1,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13, -}; - -static const static_codebook _44p9_p7_0 = { - 5, 3125, - (char *)_vq_lengthlist__44p9_p7_0, - 1, -510105088, 1635281408, 3, 0, - (long *)_vq_quantlist__44p9_p7_0, - 0 -}; - -static const long _vq_quantlist__44p9_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44p9_p7_1[] = { - 1, 4, 4,16,16, 4, 9,11,15,16, 4,12, 8,16,16,12, - 16,16,16,16,13,16,16,16,16, 5, 8,10,16,16, 9, 9, - 14,15,16,12,14,14,16,16,16,16,16,16,16,16,16,16, - 16,16, 5,11, 8,16,15,12,14,16,16,16, 9,15, 9,16, - 16,16,16,16,16,16,16,16,16,16,16,15,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16, 6,11,11, - 16,16,12,13,16,16,16,12,16,14,16,16,16,16,16,16, - 16,16,16,16,16,16,11,15,15,16,16,14,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,12, - 15,16,16,16,16,16,16,16,16,14,16,15,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16, 5,11,11,16,16,12, - 15,16,16,16,12,16,14,16,16,16,16,16,16,16,16,16, - 16,16,16,12,15,15,16,16,14,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,11,15,15,16, - 16,16,16,16,16,16,15,16,14,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16, 6,11,12,16,16,11,15,16,16,16,13,16,14,16,16, - 16,16,16,16,16,16,16,16,16,16,11,16,14,16,16,14, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,12,14,14,16,16,16,16,16,16,16,15,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,15,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16, 8,13, - 15,16,16,15,15,16,16,16,14,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,14,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 15,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16, 7,12,12,16,16, - 13,12,16,16,16,14,16,14,16,16,16,16,16,16,16,16, - 16,16,16,16,13,16,16,16,16,14,14,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,12,14,16, - 16,16,16,16,16,16,16,14,16,14,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16, 6,11,11,16,16,13,15,16,16,16,11,15,14,16, - 16,16,16,16,16,16,14,16,16,16,16,11,16,16,16,16, - 16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,11,16,14,16,16,14,16,16,16,16,13,15, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, 7, - 11,11,16,16,13,13,16,16,16,13,16,13,16,16,16,16, - 16,16,16,16,16,16,16,16,12,16,15,16,16,14,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,12,14,16,16,16,16,16,16,16,16,14,16,13,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16, 8,13,14,16, - 16,15,16,16,16,16,14,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,15,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,16, - 15,16,16,16,16,16,16,16,16,16,15,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,15,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16, -}; - -static const static_codebook _44p9_p7_1 = { - 5, 3125, - (char *)_vq_lengthlist__44p9_p7_1, - 1, -514619392, 1630767104, 3, 0, - (long *)_vq_quantlist__44p9_p7_1, - 0 -}; - -static const long _vq_quantlist__44p9_p7_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p9_p7_2[] = { - 1, 3, 2, 5, 4, 7, 7, 8, 8, 9,10,10,10,11,11,11, - 12,12,12,13,13,13,13,13,13, -}; - -static const static_codebook _44p9_p7_2 = { - 1, 25, - (char *)_vq_lengthlist__44p9_p7_2, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44p9_p7_2, - 0 -}; - -static const long _vq_quantlist__44p9_p7_3[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44p9_p7_3[] = { - 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44p9_p7_3 = { - 1, 25, - (char *)_vq_lengthlist__44p9_p7_3, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44p9_p7_3, - 0 -}; - -static const char _huff_lengthlist__44p9_short[] = { - 3, 3, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _huff_book__44p9_short = { - 1, 8, - (char *)_huff_lengthlist__44p9_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44pn1_l0_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44pn1_l0_0[] = { - 1, 3, 3, 8, 8,10,10,10,10,10,10,10,10, 5, 7, 5, - 9, 8,10,10,10,10,11,10,11,10, 5, 5, 7, 8, 9,10, - 10,11,10,10,11,10,11,10,10,10,11,11,11,11,11,11, - 11,10,11,11,10,10,10,10,11,11,11,11,11,10,11,11, - 11,11,11,11,11,11,12,11,10,11,11,11,11,11,11,11, - 11,11,11,11,11,10,10,11,11,12,11,11,11,11,11,11, - 12,11,11,11,10,11,11,11,11,11,11,11,11,10,11,11, - 10,11,10,11,11,11,11,11,11,11,11,11,11,12,11,11, - 12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11, - 10,11,11,11,11,11,11,11,12,11,13,11,11,11,11,11, - 11,11,11,11,11,11,12,11,13, -}; - -static const static_codebook _44pn1_l0_0 = { - 2, 169, - (char *)_vq_lengthlist__44pn1_l0_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44pn1_l0_0, - 0 -}; - -static const long _vq_quantlist__44pn1_l0_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44pn1_l0_1[] = { - 1, 4, 4, 7, 7, 4, 5, 6, 7, 7, 4, 6, 5, 7, 7, 7, - 6, 7, 6, 7, 7, 7, 6, 7, 6, -}; - -static const static_codebook _44pn1_l0_1 = { - 2, 25, - (char *)_vq_lengthlist__44pn1_l0_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44pn1_l0_1, - 0 -}; - -static const long _vq_quantlist__44pn1_l1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_l1_0[] = { - 1, 4, 4, 4, 4, 4, 4, 4, 4, -}; - -static const static_codebook _44pn1_l1_0 = { - 2, 9, - (char *)_vq_lengthlist__44pn1_l1_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44pn1_l1_0, - 0 -}; - -static const char _huff_lengthlist__44pn1_lfe[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book__44pn1_lfe = { - 2, 4, - (char *)_huff_lengthlist__44pn1_lfe, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44pn1_long[] = { - 2, 3, 6, 7, 9,13,17, 3, 2, 5, 7, 9,13,17, 6, 5, - 5, 6, 9,12,16, 7, 7, 6, 6, 7,10,13,10,10, 9, 7, - 6,10,13,13,13,12,10,10,11,15,17,17,17,14,14,15, - 17, -}; - -static const static_codebook _huff_book__44pn1_long = { - 2, 49, - (char *)_huff_lengthlist__44pn1_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44pn1_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_p1_0[] = { - 1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44pn1_p1_0 = { - 5, 243, - (char *)_vq_lengthlist__44pn1_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44pn1_p1_0, - 0 -}; - -static const long _vq_quantlist__44pn1_p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_p2_0[] = { - 1, 5, 5, 0, 7, 7, 0, 8, 8, 0, 9, 9, 0,12,12, 0, - 8, 8, 0, 9, 9, 0,13,13, 0, 8, 8, 0, 6, 6, 0,11, - 11, 0,12,12, 0,12,12, 0,14,14, 0,11,12, 0,12,12, - 0,15,15, 0,12,12, 0, 5, 5, 0, 5, 5, 0, 6, 6, 0, - 7, 7, 0,10,10, 0, 6, 6, 0, 7, 7, 0,11,11, 0, 6, - 6, 0, 7, 7, 0,11,11, 0,12,11, 0,11,11, 0,14,14, - 0,10,10, 0,12,12, 0,15,15, 0,12,12, 0, 6, 6, 0, - 12,12, 0,12,12, 0,12,12, 0,14,14, 0,11,11, 0,12, - 12, 0,16,16, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 8, 8, 0,12,12, 0,12,12, 0,12,12, 0,15, - 15, 0,12,12, 0,11,11, 0,16,16, 0,11,11, 0, 6, 6, - 0,12,12, 0,12,12, 0,13,13, 0,15,15, 0,12,12, 0, - 13,13, 0,15,15, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44pn1_p2_0 = { - 5, 243, - (char *)_vq_lengthlist__44pn1_p2_0, - 1, -533200896, 1614282752, 2, 0, - (long *)_vq_quantlist__44pn1_p2_0, - 0 -}; - -static const long _vq_quantlist__44pn1_p2_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_p2_1[] = { - 1, 3, 3, 0, 9, 9, 0, 9, 9, 0,10,10, 0, 9, 9, 0, - 10,10, 0,10,10, 0,10,10, 0,10,10, 0, 7, 7, 0, 7, - 7, 0, 6, 6, 0, 8, 8, 0, 7, 7, 0, 8, 8, 0, 8, 8, - 0, 7, 7, 0, 8, 8, 0, 7, 7, 0, 9, 9, 0, 8, 9, 0, - 10,10, 0, 9, 9, 0,10,10, 0,10,11, 0, 9, 9, 0,10, - 10, 0, 9, 9, 0,11,11, 0,12,12, 0,12,12, 0,11,11, - 0,12,12, 0,13,13, 0,12,12, 0,13,13, 0, 8, 8, 0, - 12,12, 0,12,12, 0,13,13, 0,13,13, 0,13,13, 0,13, - 13, 0,13,13, 0,13,13, 0, 7, 7, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 9, 9, 0,11,11, 0,12,12, 0,13,13, 0,12, - 12, 0,13,13, 0,13,13, 0,12,12, 0,12,12, 0, 9, 9, - 0,12,12, 0,13,13, 0,14,14, 0,13,13, 0,14,14, 0, - 14,14, 0,13,13, 0,14,14, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, -}; - -static const static_codebook _44pn1_p2_1 = { - 5, 243, - (char *)_vq_lengthlist__44pn1_p2_1, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44pn1_p2_1, - 0 -}; - -static const long _vq_quantlist__44pn1_p3_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_p3_0[] = { - 1, 6, 6, 6, 8, 8, 6, 8, 8, 7, 9, 9,10,11,11, 8, - 8, 8, 7, 9, 9,11,12,12, 9, 9, 9, 6, 7, 7,10,11, - 11,10,11,11,10,11,11,13,13,13,12,12,12,10,12,11, - 14,14,14,12,12,12, 6, 5, 5, 9, 6, 6, 9, 6, 6, 9, - 7, 7,12,10,10,11, 7, 6, 9, 7, 7,13,11,11,12, 7, - 7, 7, 8, 8,12,10,10,12,10,10,11,10,10,15,13,13, - 13, 9, 9,12,11,11,15,14,14,15,11,11, 8, 7, 7,12, - 11,11,12,11,11,11,11,11,14,13,14,14,12,12,12,11, - 11,16,15,15,14,12,12, 0,10,10, 0,12,12, 0,12,12, - 0,11,11, 0,14,14, 0,11,11, 0,11,11, 0,15,15, 0, - 11,11, 7, 8, 8,13,11,11,12,10,10,12,11,11,15,13, - 13,14,11,11,12,10,10,16,14,14,15,10,10, 9, 7, 7, - 13,11,12,13,12,11,12,11,11,15,14,14,14,12,12,13, - 12,12,16,15,15,15,12,12, 0,11,11, 0,12,12, 0,12, - 13, 0,12,12, 0,15,15, 0,12,12, 0,12,12, 0,16,15, - 0,12,12, -}; - -static const static_codebook _44pn1_p3_0 = { - 5, 243, - (char *)_vq_lengthlist__44pn1_p3_0, - 1, -531365888, 1616117760, 2, 0, - (long *)_vq_quantlist__44pn1_p3_0, - 0 -}; - -static const long _vq_quantlist__44pn1_p3_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44pn1_p3_1[] = { - 2, 3, 4, 9, 9,10,12,12,12,11,10,12,12,13,12,11, - 13,12,11,11,11,12,12,12,11,11,13,13,13,13,11,12, - 12,14,14,12,13,13,13,13,11,13,13,13,13,11,13,13, - 13,13,11,13,13,13,13,11,12,12,14,14,12,13,13,12, - 12,11,13,13,13,13,11,13,13,12,12,11,13,13,13,13, - 12,12,13,14,14,12,13,13,12,12,11,13,13,13,13,11, - 13,13,12,12,11,13,13,13,13,12,13,13,14,14,12,13, - 13,12,12,11,13,13,13,13,11,13,13,12,12,11,10,10, - 10,10,12,10,10,11,11,12, 9, 9,11,11,13,11,11,10, - 10,13,10,10,10,10,13,11,11,12,12,13,10,10,12,12, - 14,12,11,12,12,13,11,11,11,12,13,12,12,12,12,13, - 11,11,12,12,13,10,10,12,12,14,11,11,12,12,13,11, - 11,12,12,13,11,11,12,12,14,12,12,12,12,14,10,10, - 11,11,14,12,11,11,11,13,11,11,11,11,13,12,12,11, - 11,14,12,12,12,11,14,10,10,11,11,14,12,11,11,11, - 13,11,11,11,11,13,12,12,11,11,11,11,11,10,10,12, - 10,11, 9, 9,12,12,12,11,11,13,12,12, 9, 9,13,13, - 13,10,10,13,13,13,12,12,13,13,13,14,14,13,12,12, - 11,11,14,13,13,12,12,14,13,13,11,11,13,13,13,12, - 11,13,13,13,14,14,13,12,12,10,10,14,13,13,11,11, - 13,13,13,10,10,13,13,13,11,11,14,13,13,14,14,14, - 12,12,10,10,13,13,13,11,11,13,13,13,10,10,13,13, - 13,11,11,14,13,13,14,14,14,13,13,10,10,13,13,13, - 11,11,13,13,13,10,10,14,12,12, 8, 8,14,12,12, 9, - 9,14,11,11, 9, 9,14,12,12, 8, 8,14,12,12, 7, 7, - 15,13,13,10,10,15,12,12,10,10,15,13,13,10,10,15, - 12,13, 9, 9,15,13,13,10,10,15,13,13,10,10,15,12, - 12,10,10,15,13,13,10,10,15,13,13, 9, 9,15,13,13, - 10,10,15,13,13,10,10,15,12,12,10,10,15,13,13, 9, - 9,14,13,12, 9, 9,14,13,13, 9, 9,15,13,13,10,10, - 15,12,12,10,10,15,13,13, 9, 9,15,13,13, 9, 9,14, - 13,13, 9, 9,14,12,12, 8, 8,13,13,13, 8, 8,14,14, - 13, 9, 9,14,14,13, 7, 7,14,14,14, 8, 8,14,14,14, - 10,10,15,14,14,12,12,14,14,14, 9, 9,15,14,14,10, - 10,14,14,14, 9, 9,14,14,14,10, 9,15,14,14,12,12, - 14,14,14, 9, 9,15,14,14,10,10,14,14,14, 9, 9,15, - 14,15, 9, 9,15,14,14,11,11,14,14,14, 8, 8,14,14, - 14, 9, 9,14,14,14, 8, 8,14,15,14,10,10,15,14,14, - 11,11,14,14,14, 8, 8,15,14,14, 9, 9,14,14,14, 8, - 8,12,12,12,13,13,16,16,15,12,12,17,16,16,13,13, - 17,16,16,11,11,17,16,16,12,12,17,16,17,13,13,17, - 16,16,14,14,17,17,16,12,12,18,16,16,13,13,17,16, - 17,12,12,17,17,17,13,13,18,16,16,14,14,18,17,17, - 12,12,17,17,17,13,13,18,17,17,13,13,17,17,17,13, - 13,17,16,16,14,14,17,17,17,12,12,16,16,17,13,13, - 17,17,16,12,12,18,17,17,13,13,18,16,16,14,14,18, - 17,17,12,12,19,16,17,13,13,17,16,17,12,12,13,14, - 14,10,10,16,14,14,13,13,17,15,15,14,14,17,14,14, - 13,13,16,14,14,13,13,17,16,15,14,14,16,16,16,15, - 15,17,15,15,14,14,17,15,15,14,14,17,15,15,14,14, - 17,16,15,14,14,16,16,16,15,15,18,15,15,13,13,16, - 16,15,14,14,17,15,15,14,13,17,15,15,14,14,16,16, - 16,15,15,18,15,14,13,13,17,15,15,14,14,18,14,15, - 13,13,18,15,15,14,14,16,16,16,15,15,17,15,15,13, - 13,17,15,15,14,14,17,15,15,13,13,13,11,11,10,10, - 16,14,14,13,13,17,14,15,14,14,17,15,15,12,12,17, - 14,14,12,12,16,15,15,14,14,16,14,14,14,14,16,15, - 15,14,14,16,15,15,14,14,16,15,15,14,14,16,15,15, - 14,14,16,15,14,15,15,17,15,15,14,14,17,15,15,14, - 14,17,15,15,14,14,17,15,16,14,14,16,14,14,14,14, - 17,15,15,13,13,17,15,15,13,13,16,15,15,13,13,17, - 16,16,14,14,17,15,14,15,14,17,15,15,13,13,17,15, - 15,13,13,17,15,15,13,13,14,14,14, 9, 9,14,14,14, - 18,19,14,15,15,19,18,14,14,14,19,19,15,14,14,19, - 19,15,16,16,19,19,15,16,16,19,19,15,15,15,19,19, - 15,16,16,19,20,15,15,15,19,19,15,15,15,19,19,15, - 16,16,20,20,15,15,15,18,19,15,15,16,19,20,15,15, - 15,19,18,15,15,15,18,18,15,16,16,21,20,15,15,15, - 19,19,15,15,15,19,19,15,15,14,19,20,15,15,15,20, - 19,15,16,16,19,20,15,15,15,19,19,15,15,15,20,21, - 15,14,15,19,19,14,12,12, 9, 9,14,14,15,21,19,14, - 14,14,18,19,14,15,15,19,20,14,14,14,19,19,15,15, - 15,19,20,15,15,14,21,19,15,15,15,20,19,15,14,15, - 20,21,15,15,15,18,18,15,15,15,20,21,16,14,14,18, - 19,15,15,15,20,19,15,15,15,18,21,15,15,15,19,19, - 15,15,15,19,20,16,15,14,20,19,15,16,15,19,19,15, - 15,15,19, 0,14,15,15,19,19,15,15,15,19,19,15,15, - 14,20,19,15,15,15,20,19,15,15,15,19,19,15,15,15, - 20,19,12,12,12,13,13,16,15,16,11,11,16,16,16,12, - 12,17,16,16,11,11,17,16,16,12,11,17,17,17,13,13, - 18,16,16,14,14,18,18,17,13,13,17,16,16,13,13,17, - 17,17,13,13,17,16,17,12,12,17,15,16,13,13,17,16, - 17,12,12,17,16,16,13,12,17,16,16,12,12,18,17,17, - 13,13,18,16,16,13,14,18,17,17,12,12,17,16,16,12, - 12,17,17,17,12,12,18,17,17,13,13,17,16,16,14,14, - 17,17,17,12,12,17,16,16,12,12,18,17,17,12,12,13, - 14,14, 9, 9,16,14,14,13,13,16,15,15,14,14,16,14, - 14,13,13,16,14,14,13,13,17,16,15,15,15,16,15,16, - 16,15,17,15,15,14,14,17,15,15,15,15,17,15,15,14, - 14,17,15,15,14,14,16,15,16,16,16,17,15,15,14,14, - 16,15,15,14,15,16,15,15,14,14,17,15,15,15,15,16, - 16,16,15,16,18,15,14,13,14,17,15,15,14,14,17,14, - 14,13,13,17,15,15,14,14,16,15,15,15,15,17,15,14, - 14,14,17,15,15,14,14,17,14,14,13,13,13,11,11,11, - 11,16,14,14,12,12,16,14,14,13,13,16,14,14,12,12, - 16,14,14,12,12,16,15,15,13,13,17,14,14,14,14,17, - 15,15,13,13,16,15,15,14,13,16,15,15,13,13,16,15, - 15,13,13,16,14,14,14,14,16,15,15,13,13,16,14,15, - 13,13,17,15,15,13,13,17,15,15,13,13,16,14,14,14, - 14,17,15,15,12,12,17,14,15,13,13,17,15,15,12,12, - 16,15,15,13,13,17,14,14,14,14,17,15,15,12,12,17, - 15,15,13,13,16,15,15,12,12,14,15,15, 8, 8,14,14, - 14,19,18,14,15,15,19,20,14,14,14,19,19,14,14,15, - 19,20,15,16,15,19,21,15,16,16,21,19,15,15,15,20, - 19,15,16,16,19,20,15,15,15,19,18,15,16,15,20,19, - 15,16,16,19,20,15,15,15,19,19,15,16,15,20,20,14, - 15,15,19,19,15,15,15,21,19,15,17,16,19,20,15,14, - 15, 0,21,15,15,15,19,20,14,14,14,19,19,15,15,15, - 20,19,15,16,16,19,19,15,15,15,19,18,15,15,15,20, - 19,14,14,15,18,18,14,12,12, 9, 9,14,14,14,18,18, - 14,14,14,18,18,14,15,14,19,18,14,14,14,19,18,15, - 15,15,19,20,15,14,14,18,18,15,15,15,20,19,15,15, - 15,18,20,15,15,15,19,18,15,15,15,19,19,15,14,14, - 19,21,15,15,15,20,20,15,15,15,18,19,14,15,15,19, - 20,15,15,15,20,19,15,14,14,19,21,15,15,15,18,19, - 15,14,15,20,19,14,15,15,21,21,14,15,15,19,20,15, - 14,14,19,20,15,15,15,19,20,15,15,14,20,20,14,15, - 15,20,19,13,12,12,13,13,17,16,16,11,11,17,16,16, - 12,12,18,17,16,11,11,18,16,16,11,11,17,17,17,13, - 13,18,16,16,13,13,18,17,17,12,12,18,16,16,13,13, - 18,17,17,12,12,18,17,17,13,13,18,16,16,14,14,18, - 16,17,12,12,18,17,17,13,13,17,17,17,12,12,17,17, - 17,12,12,17,16,15,13,13,18,16,16,11,11,17,16,16, - 12,12,17,16,17,11,11,18,17,17,13,12,17,16,16,13, - 13,17,17,17,12,12,17,16,17,12,12,18,17,17,11,11, - 14,14,14, 9, 9,16,14,14,13,13,17,15,15,14,14,17, - 14,14,13,13,16,14,14,13,13,17,15,15,14,14,16,16, - 16,16,15,18,15,15,14,14,17,16,15,15,15,17,15,15, - 14,14,17,15,15,14,15,16,16,16,15,16,18,15,15,14, - 14,17,15,15,14,15,17,15,15,14,14,17,15,15,14,14, - 16,16,16,15,16,17,14,14,13,13,17,15,15,14,14,18, - 15,15,13,13,17,15,15,14,14,16,16,16,15,15,17,14, - 14,13,13,17,15,15,14,14,17,14,14,13,13,13,11,11, - 11,11,16,14,14,12,12,16,14,14,12,13,17,15,14,11, - 11,17,14,14,11,11,17,15,15,13,14,17,14,14,14,14, - 17,15,15,13,13,17,14,14,13,13,17,15,15,13,13,17, - 15,15,13,13,17,14,14,14,14,17,15,15,13,13,18,14, - 15,13,13,17,15,15,13,13,16,15,15,13,13,17,14,14, - 13,13,17,15,15,12,12,16,14,14,12,12,16,15,15,12, - 12,17,16,15,13,13,17,14,14,13,13,17,15,15,12,12, - 16,15,15,12,12,16,15,15,12,12,13,15,15, 8, 8,14, - 14,14,18,19,14,15,15,19,20,14,14,14,18,18,14,15, - 15,18,18,15,16,16,19,19,15,16,17,20,20,15,15,15, - 19,19,15,16,16,18,20,15,15,15,19,19,15,15,16,18, - 18,15,17,16,19,19,15,15,15,18,21,15,16,16,21,20, - 15,15,15,19,21,15,16,15,20,19,15,16,17,20,20,15, - 15,15,19,19,15,16,16,21,20,15,15,15,19,20,15,15, - 15,19,19,15,16,16,20,19,15,15,15,19,19,15,16,15, - 20,21,15,15,15,21,19,14,12,12, 8, 8,14,14,14,20, - 18,14,13,13,19,19,14,14,14,19,18,15,14,14,19,20, - 14,15,15,20,20,15,14,14,21,20,15,15,15,20,20,15, - 15,14,21,19,15,15,15,19,19,15,15,15,19,20,15,14, - 14,20,20,15,15,15,19,20,15,14,14,19,20,15,15,15, - 20,20,15,15,15,20,19,15,14,14,20,21,15,15,15,20, - 21,15,14,14,20, 0,15,16,15,20,21,15,15,15,19,20, - 15,14,14,19,19,15,15,15,19,20,15,15,15,19,19,15, - 15,15,18,20,13,12,12,13,13,18,16,17,12,12,17,16, - 16,12,12,17,17,16,11,11,18,16,16,11,11,17,17,18, - 13,13,18,16,16,14,14,18,17,17,13,13,18,16,16,13, - 13,18,17,17,12,12,17,17,16,13,13,17,16,16,13,14, - 18,17,17,12,12,18,16,16,12,13,17,16,17,12,12,17, - 18,17,13,13,18,16,16,13,13,18,17,17,12,12,17,16, - 16,12,12,17,17,17,11,11,17,16,17,12,12,17,16,16, - 13,13,17,16,16,11,11,17,16,16,12,12,18,16,17,11, - 11,14,14,14, 9, 9,16,14,15,13,13,17,15,15,14,14, - 17,14,14,12,12,16,14,14,13,13,18,15,15,15,15,17, - 15,16,15,16,18,15,15,14,14,17,15,16,15,15,17,15, - 15,14,14,18,15,15,14,14,16,16,16,16,15,17,15,15, - 14,14,16,15,15,14,14,17,15,15,14,14,17,15,15,14, - 14,17,16,16,15,15,17,15,14,13,13,17,15,15,14,14, - 17,15,15,13,13,17,15,15,14,14,16,16,16,15,15,18, - 15,14,14,14,17,15,15,14,14,18,15,15,13,13,13,12, - 12,11,11,16,14,14,12,12,16,14,14,13,13,17,15,15, - 12,12,17,14,14,12,12,17,15,15,14,14,17,14,14,14, - 14,17,15,15,13,13,17,15,14,13,13,17,15,15,13,13, - 17,15,15,13,13,16,14,14,14,14,17,15,15,13,13,16, - 14,14,13,13,16,15,15,13,13,17,15,16,13,13,17,14, - 14,14,13,17,15,15,12,12,16,15,14,12,12,17,15,15, - 12,12,16,15,16,13,13,16,14,14,14,13,17,15,15,12, - 12,16,14,14,12,12,17,15,15,12,12,14,15,15, 8, 8, - 14,14,14,18,18,14,15,15,19,18,14,14,14,18,18,14, - 15,15,19,20,15,16,15,21,18,15,16,16,18, 0,15,15, - 15,19,20,15,16,16,20, 0,15,16,15,19,18,15,15,15, - 19,19,15,16,16,21,19,15,15,15,19,19,15,16,16,20, - 20,15,15,15,19,19,15,15,15,19,18,15,16,16,20,20, - 15,14,15,20,19,15,15,15,19,20,15,15,15,19,19,15, - 16,15,19,20,15,16,16,19,20,15,15,15,19,19,15,16, - 15,20,20,15,15,15,20,18,13,12,12, 8, 8,14,14,14, - 19,20,14,14,14,19,19,14,15,15,20,20,14,14,14,18, - 19,15,15,15,20, 0,15,14,14,18,20,15,15,15,19,19, - 15,15,15,21,19,15,15,15,19,20,15,15,15,20,21,15, - 14,14,20,19,15,15,15,20,19,15,15,14,21,19,15,15, - 15,19,18,15,15,15,20,19,15,14,14,19,19,15,15,16, - 20,19,15,15,15,20, 0,15,15,15,19,21,15,15,15,22, - 20,15,14,14,22,19,15,15,15,19,20,15,14,14,20,19, - 14,15,15,19,21, -}; - -static const static_codebook _44pn1_p3_1 = { - 5, 3125, - (char *)_vq_lengthlist__44pn1_p3_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44pn1_p3_1, - 0 -}; - -static const long _vq_quantlist__44pn1_p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44pn1_p4_0[] = { - 1, 7, 7,14,14, 6, 8, 8,15,16, 7, 8, 8,16,15, 0, - 14,14,17,17, 0,14,14,16,16, 7, 9, 9,16,16,10,11, - 11,17,18, 9, 8, 8,16,16, 0,14,14,19,19, 0,14,14, - 17,16, 8, 9, 9,16,16,12,12,12,17,17,10, 9, 9,16, - 16, 0,15,14,18,20, 0,14,14,17,17, 0,15,15,18,17, - 0,21, 0, 0,21, 0,13,13,17,17, 0,17,17, 0, 0, 0, - 15,15,17,17, 0,15,15,17,18, 0, 0, 0, 0,21, 0,13, - 13,17,17, 0,18,18, 0,21, 0,16,15,17,18, 6, 7, 7, - 14,14, 9,10,10,16,16,11,10,10,15,15, 0,21, 0,20, - 21, 0, 0, 0,18,20,10,10,10,15,16,12,13,13,18,18, - 12,11,11,15,15, 0, 0, 0,20,20, 0, 0,21,19,19,12, - 11,11,15,15,15,14,14,18,18,13,11,11,15,16, 0, 0, - 0,20,19, 0, 0, 0,20,21, 0, 0,20,19,19, 0, 0, 0, - 0, 0, 0,20, 0,17,18, 0, 0,21, 0, 0, 0, 0, 0,21, - 0, 0,21, 0,20,19, 0, 0, 0, 0, 0, 0,21, 0,18,18, - 0, 0, 0,21, 0, 0, 0, 0, 0,20, 7, 6, 6,13,13, 9, - 6, 6,12,12, 9, 7, 7,14,14, 0,10,10,12,12, 0,11, - 11,15,15, 9, 7, 7,14,14,12, 9, 9,14,14,10, 7, 7, - 14,13, 0,11,11,16,15, 0,11,11,14,14, 9, 7, 7,14, - 14,13,10,10,14,14,11, 7, 7,14,13, 0,11,11,16,16, - 0,11,11,14,14, 0,12,12,16,16, 0,19, 0,17,18, 0, - 10,10,14,14, 0,15,14, 0, 0, 0,12,12,14,14, 0,12, - 12,15,15, 0,20, 0,18,19, 0,10,10,14,14, 0,16,15, - 0,20, 0,13,13,14,14, 0,11,11,13,13, 0,12,13,16, - 16, 0,12,12,16,16, 0,16,16, 0,21, 0,17,18, 0, 0, - 0,12,12,16,16, 0,15,15,18, 0, 0,12,12,16,16, 0, - 17,16,21,21, 0,16,17, 0, 0, 0,13,13,17,16, 0,16, - 16,20,21, 0,12,12,17,16, 0,17,17, 0,21, 0,17,17, - 21,21, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,15,15, 0, - 0, 0,18,21, 0, 0, 0,18,19, 0, 0, 0,18,17,21,21, - 0, 0, 0, 0, 0, 0,16,16, 0, 0, 0, 0, 0, 0, 0, 0, - 19,19, 0, 0, 0,11,11,12,12, 0,11,11,10,10, 0,12, - 12,13,13, 0,12,12, 9, 9, 0,14,14,13,13, 0,12,12, - 13,13, 0,14,14,12,13, 0,11,11,12,12, 0,13,13,13, - 13, 0,13,13,13,13, 0,12,12,13,13, 0,14,14,12,12, - 0,11,11,12,12, 0,14,13,14,14, 0,13,13,13,13, 0, - 15,15,14,15, 0, 0, 0,16,16, 0,12,12,13,13, 0,16, - 17,20,21, 0,14,13,12,12, 0,14,14,14,14, 0,21, 0, - 16,16, 0,12,12,13,13, 0,18,17,21, 0, 0,14,14,13, - 13, 7, 8, 8,17,17,11,10,10,18,18,12,10,10,17,17, - 0,15,15,20,18, 0,15,15,17,17,11, 9, 9,17,17,14, - 12,12,19,19,13, 9, 9,16,16, 0,15,14, 0,19, 0,14, - 14,16,16,12,10,10,20,18,16,13,13,21,20,14,10,10, - 17,17, 0,15,15,21,20, 0,15,14,17,17, 0,15,15,21, - 21, 0, 0,21, 0, 0, 0,13,13,18,18, 0,19,16, 0, 0, - 0,15,15,17,16, 0,16,16, 0,21, 0, 0, 0, 0,21, 0, - 13,14,18,17, 0,20,19, 0, 0, 0,15,15,18,18, 8, 7, - 7,15,15,12,11,11,17,16,13,11,11,16,16, 0, 0, 0, - 21,20, 0, 0, 0, 0,20,11,10,10,17,17,14,13,13,19, - 18,14,11,11,16,16, 0,20, 0,21,19, 0, 0,21, 0,20, - 12,11,11,17,17,16,15,15, 0,19,14,11,11,17,16, 0, - 21, 0, 0,19, 0, 0, 0,21,20, 0, 0,21,20, 0, 0, 0, - 0, 0, 0, 0, 0, 0,19,21, 0, 0, 0, 0, 0, 0, 0, 0, - 19,20, 0, 0, 0,20,21, 0, 0, 0, 0, 0, 0,20, 0,19, - 21, 0, 0, 0, 0, 0, 0, 0, 0,21,20,11,10, 9,15,15, - 14,11,11,15,15,14,11,11,16,16, 0,14,14,14,14, 0, - 16,15,17,16,13,11,11,16,16,16,13,13,16,16,15,10, - 10,15,15, 0,14,15,17,17, 0,14,14,16,15,13,11,11, - 16,16,17,15,14,16,16,15,10,10,15,15, 0,15,15,17, - 18, 0,15,15,16,16, 0,16,16,17,17, 0,21, 0,21,20, - 0,13,13,15,15, 0,18,18, 0,21, 0,15,15,15,15, 0, - 16,16,17,17, 0, 0, 0, 0,18, 0,13,13,15,15, 0,19, - 18, 0, 0, 0,15,15,16,16, 0,12,12,15,15, 0,13,13, - 17,17, 0,13,13,17,18, 0,16,17,21, 0, 0,20,18, 0, - 0, 0,13,13,17,17, 0,15,15, 0,18, 0,12,12,17,18, - 0,16,16, 0, 0, 0,17,17,21, 0, 0,13,13,18,18, 0, - 16,16,21,21, 0,12,12,17,18, 0,16,17,21, 0, 0,17, - 17, 0,21, 0,17,18, 0, 0, 0, 0, 0, 0, 0, 0,16,15, - 0,21, 0,21,19, 0, 0, 0,18,18, 0, 0, 0,18,19, 0, - 0, 0, 0, 0, 0, 0, 0,16,16,21,21, 0,20,19, 0, 0, - 0,19,21, 0,21, 0,12,12,15,15, 0,12,12,15,16, 0, - 13,13,16,16, 0,14,14,15,15, 0,16,15,17,17, 0,13, - 13,17,17, 0,15,15,16,18, 0,12,12,16,16, 0,14,14, - 17,17, 0,15,14,16,16, 0,13,13,16,16, 0,16,15,17, - 17, 0,12,12,16,16, 0,15,15,18,18, 0,14,14,17,16, - 0,16,16,17,18, 0, 0, 0,20,21, 0,13,13,16,17, 0, - 17,17, 0, 0, 0,15,15,16,16, 0,15,16,17,17, 0, 0, - 0,19, 0, 0,13,13,15,16, 0,19,18, 0, 0, 0,16,15, - 16,17, 8, 8, 8,17,17,13,11,10,17,18,13,10,10,17, - 17, 0,15,15,20,19, 0,15,15,17,17,12,10,10,19,18, - 15,12,12,20,18,14,10,10,17,16, 0,15,15,20,20, 0, - 14,15,16,16,13,10,10,17,17,17,14,14, 0,18,15,10, - 10,17,17, 0,16,15,20,20, 0,14,14,17,17, 0,15,16, - 20,20, 0, 0,21, 0, 0, 0,13,13,17,17, 0,18,17, 0, - 0, 0,15,16,17,18, 0,15,15,18,21, 0, 0, 0,21, 0, - 0,13,13,18,18, 0,19,19, 0, 0, 0,16,16,18,17, 9, - 8, 8,15,15,12,11,11,16,16,13,11,11,16,15, 0, 0, - 0, 0,21, 0,21, 0,19,19,12,11,11,17,18,15,13,13, - 18,19,14,11,11,16,16, 0, 0,21,21,19, 0, 0, 0,21, - 20,13,11,11,18,17,17,14,15,20,21,15,11,12,16,16, - 0, 0, 0,20, 0, 0, 0,21, 0,19, 0, 0, 0, 0,19, 0, - 0, 0, 0, 0, 0,21,21,19,19, 0, 0, 0,21, 0, 0, 0, - 0,19,21, 0, 0, 0,19,20, 0, 0, 0,21, 0, 0, 0,21, - 19,19, 0, 0, 0, 0, 0, 0, 0, 0,21,20, 0,11,11,15, - 15, 0,12,12,15,16, 0,12,12,16,16, 0,15,15,16,15, - 0,16,16,17,17, 0,12,12,17,17, 0,14,14,17,17, 0, - 11,11,16,16, 0,15,15,19,18, 0,15,15,16,16, 0,12, - 12,17,16, 0,14,15,16,16, 0,11,11,15,15, 0,16,16, - 18,19, 0,15,15,15,16, 0,17,17,18,20, 0,21, 0,21, - 19, 0,14,14,16,16, 0,18,18, 0, 0, 0,16,16,15,15, - 0,16,16,18,17, 0, 0, 0,19,20, 0,14,14,16,16, 0, - 19,19, 0, 0, 0,16,17,15,15, 0,12,12,14,15, 0,13, - 13,16,17, 0,12,12,17,17, 0,17,16, 0, 0, 0,18,17, - 21, 0, 0,13,13,19,17, 0,15,15,20,21, 0,12,12,17, - 17, 0,17,17, 0, 0, 0,17,17, 0, 0, 0,13,13,17,18, - 0,16,16,21, 0, 0,12,12,17,17, 0,17,17, 0, 0, 0, - 17,17, 0, 0, 0,18,21, 0, 0, 0, 0, 0, 0, 0, 0,15, - 15,21, 0, 0,20,21, 0, 0, 0,18,19, 0, 0, 0,18,17, - 0, 0, 0, 0, 0, 0, 0, 0,16,16,21, 0, 0,21,21, 0, - 0, 0,18,19, 0, 0, 0,12,12,16,16, 0,13,13,16,17, - 0,13,13,17,16, 0,14,14,16,16, 0,16,15,19,18, 0, - 13,13,17,17, 0,15,15,18,18, 0,12,12,16,16, 0,15, - 15,18,19, 0,15,15,17,16, 0,13,13,17,17, 0,16,16, - 18,17, 0,12,12,17,16, 0,15,15,18,18, 0,15,15,17, - 17, 0,16,16, 0,19, 0, 0, 0, 0, 0, 0,14,14,16,17, - 0,18,18, 0, 0, 0,15,15,17,17, 0,16,16,21,19, 0, - 21, 0,21,21, 0,13,14,16,16, 0,19,19, 0, 0, 0,15, - 16,16,16, 0,11,11,17,16, 0,15,14,19,18, 0,14,14, - 19,19, 0,18,17,18,20, 0,17,17,18,19, 0,13,13,17, - 17, 0,16,17,21,18, 0,13,13,17,16, 0,18,17,19, 0, - 0,16,17,18,18, 0,12,12,19,18, 0,18,18,20,20, 0, - 13,13,17,17, 0,17,17,21, 0, 0,16,17,17,18, 0,18, - 17,19,18, 0, 0, 0, 0, 0, 0,14,14,17,17, 0,19,19, - 21, 0, 0,16,16,16,17, 0,17,17,19,20, 0, 0, 0, 0, - 21, 0,15,15,17,18, 0,21,21, 0, 0, 0,17,17,17,18, - 0,10,10,15,15, 0,15,14,17,18, 0,14,14,16,16, 0, - 0, 0,18, 0, 0,21, 0,19, 0, 0,13,13,17,16, 0,17, - 17,18, 0, 0,14,14,16,15, 0, 0, 0,21, 0, 0,21, 0, - 19,18, 0,13,13,17,17, 0,18,18,20,20, 0,15,15,16, - 16, 0, 0, 0,21,21, 0, 0, 0,20,20, 0, 0, 0,19, 0, - 0, 0, 0, 0, 0, 0,21,20,18,18, 0, 0, 0, 0, 0, 0, - 0, 0, 0,20, 0, 0, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, - 0,19,18, 0, 0, 0, 0,21, 0, 0, 0,18,20, 0,18,19, - 16,17, 0,21,19,17,17, 0, 0,21,18,18, 0, 0,21,20, - 19, 0, 0, 0,20,20, 0, 0,21,17,17, 0, 0, 0,19,19, - 0,20,20,17,17, 0, 0, 0, 0,20, 0, 0,20,18,18, 0, - 21,20,17,17, 0, 0, 0,20,21, 0,19, 0,17,17, 0, 0, - 21, 0, 0, 0,20, 0,18,19, 0, 0, 0,21,21, 0, 0, 0, - 0,21, 0,20,20,17,17, 0, 0, 0, 0, 0, 0,21, 0,18, - 17, 0, 0, 0,20,19, 0, 0, 0, 0,21, 0,20,20,17,17, - 0, 0, 0, 0, 0, 0,21,21,18,18, 0,12,12,15,14, 0, - 14,14,17,17, 0,14,14,17,16, 0,18,18,21, 0, 0,19, - 20, 0, 0, 0,13,13,18,17, 0,16,16,19,18, 0,13,13, - 17,17, 0,17,17, 0, 0, 0,17,17,21, 0, 0,13,13,17, - 17, 0,17,17,21,20, 0,13,13,18,17, 0,18,19,21,21, - 0,19,18, 0, 0, 0,18,17, 0, 0, 0, 0, 0, 0, 0, 0, - 15,16, 0, 0, 0,21,21, 0, 0, 0,20,18,21, 0, 0,17, - 18, 0, 0, 0, 0, 0, 0, 0, 0,15,16, 0, 0, 0, 0,20, - 0, 0, 0, 0,19, 0, 0, 0,15,15,18,19, 0,18,17,21, - 0, 0,16,18, 0,20, 0,17,18,21, 0, 0,18,20, 0, 0, - 0,16,16,21,21, 0,19,20,21, 0, 0,16,15, 0,21, 0, - 18,20, 0, 0, 0,18,19, 0, 0, 0,16,15,21,21, 0,21, - 0, 0, 0, 0,16,15,21, 0, 0,20,19, 0, 0, 0,18,21, - 21, 0, 0,20,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0, - 20, 0,21, 0, 0, 0, 0,17,18,20,21, 0,18,18,21,21, - 0, 0, 0, 0, 0, 0,16,16,20, 0, 0, 0,21, 0, 0, 0, - 21,18, 0, 0, 0,12,12,20,17, 0,15,15,19,18, 0,14, - 14,19,18, 0,18,17,21,19, 0,17,17,21,17, 0,13,13, - 21,19, 0,16,17,20,19, 0,13,13,16,16, 0,17,17,20, - 21, 0,16,16,19,17, 0,13,13,18,18, 0,17,19,19,19, - 0,13,13,17,17, 0,18,18, 0,19, 0,16,17,18,18, 0, - 16,17,19,21, 0, 0, 0, 0, 0, 0,15,15,16,17, 0,20, - 19,21, 0, 0,17,17,17,17, 0,17,17,21,19, 0, 0, 0, - 0, 0, 0,15,15,17,17, 0,21, 0, 0, 0, 0,18,18,17, - 17, 0,10,10,15,15, 0,15,15,17,17, 0,15,14,16,16, - 0, 0, 0,21,19, 0,21,21,19,21, 0,13,13,17,16, 0, - 17,17,18,19, 0,14,15,16,15, 0, 0, 0,21,19, 0,21, - 21,18,19, 0,14,14,16,17, 0,18,18,18,19, 0,15,15, - 15,16, 0, 0,21, 0,21, 0, 0, 0,19,20, 0, 0, 0,21, - 19, 0, 0, 0, 0, 0, 0,21,21,19,17, 0, 0, 0, 0, 0, - 0, 0, 0,21,21, 0,21, 0, 0,21, 0, 0, 0, 0, 0, 0, - 21,21,19,18, 0, 0, 0, 0, 0, 0, 0, 0, 0,19, 0,21, - 18,18,17, 0,21, 0,20,20, 0, 0, 0,18,20, 0, 0,21, - 18,21, 0, 0, 0,21,18, 0, 0, 0, 0,19, 0, 0, 0,21, - 21, 0,20,21,17,19, 0,21, 0,21, 0, 0,21, 0,18,18, - 0,20,21,17,18, 0, 0, 0,21,19, 0,20,21,17,18, 0, - 0, 0,21,21, 0, 0, 0,20,19, 0, 0, 0,21,21, 0, 0, - 0, 0, 0, 0,21,21,19,18, 0, 0, 0, 0, 0, 0, 0,21, - 19,18, 0,21,21,19, 0, 0, 0, 0,21, 0, 0,21,21,18, - 17, 0, 0, 0, 0, 0, 0,21, 0,21,18, 0,12,12,14,14, - 0,15,14,17,17, 0,14,14,17,16, 0,19,17, 0, 0, 0, - 19,19, 0, 0, 0,13,13,17,17, 0,17,17,20,20, 0,13, - 13,18,18, 0,18,17, 0, 0, 0,18,21, 0, 0, 0,13,13, - 17,17, 0,18,18,21,20, 0,14,14,18,19, 0,19,18,21, - 0, 0,19,19, 0, 0, 0,20,18,20, 0, 0, 0, 0, 0, 0, - 0,15,16, 0, 0, 0,21,21, 0, 0, 0,19,19, 0, 0, 0, - 18,18, 0, 0, 0, 0, 0, 0, 0, 0,16,16, 0,21, 0, 0, - 0, 0, 0, 0,19,20, 0, 0, 0,15,15,20,21, 0,17,17, - 21,21, 0,17,17, 0, 0, 0,19,18, 0, 0, 0,18,19, 0, - 0, 0,17,16, 0,21, 0, 0,20, 0, 0, 0,16,16, 0,20, - 0,19,19, 0,21, 0,19,18, 0,21, 0,16,16, 0, 0, 0, - 21,21, 0, 0, 0,16,16, 0, 0, 0,21,21, 0, 0, 0,19, - 19, 0, 0, 0,20, 0, 0, 0, 0, 0, 0, 0, 0, 0,17,17, - 0,21, 0, 0,20, 0, 0, 0,20,18,21,21, 0,19,18, 0, - 20, 0, 0, 0, 0, 0, 0,16,17,21, 0, 0, 0,21, 0, 0, - 0,19,20,21,20, -}; - -static const static_codebook _44pn1_p4_0 = { - 5, 3125, - (char *)_vq_lengthlist__44pn1_p4_0, - 1, -528744448, 1616642048, 3, 0, - (long *)_vq_quantlist__44pn1_p4_0, - 0 -}; - -static const long _vq_quantlist__44pn1_p4_1[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44pn1_p4_1[] = { - 2, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _44pn1_p4_1 = { - 1, 7, - (char *)_vq_lengthlist__44pn1_p4_1, - 1, -533200896, 1611661312, 3, 0, - (long *)_vq_quantlist__44pn1_p4_1, - 0 -}; - -static const long _vq_quantlist__44pn1_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_p5_0[] = { - 1, 7, 7, 6, 8, 8, 7, 8, 8, 7, 9, 9,11,11,11, 9, - 8, 8, 7, 9, 9,11,12,11, 9, 9, 9, 6, 7, 7,10,11, - 11,10,10,10,10,11,11,15,14,14,12,12,12,11,11,11, - 14,14,14,12,12,12, 5, 6, 6, 8, 5, 5, 8, 7, 7, 8, - 8, 8,12,10,10,10, 7, 7, 8, 7, 7,12,10,10,10, 7, - 7, 6, 7, 7,12,11,11,12,10,10,11,10,10,14,14,13, - 13,10,10,11,10,10,16,14,14,14,11,10, 7, 7, 7,13, - 12,12,12,12,11,11,11,11,15,14,17,13,12,12,12,11, - 11,15,15,15,14,13,13,10, 9, 9,14,12,11,13,11,11, - 12,11,11,16,15,14,14,11,11,12,11,11,17,14,14,15, - 11,11, 7, 8, 8,12,11,11,13,10,10,11,10,10,17,14, - 13,14,10,10,12,10,10,18,15,15,14,10,10, 8, 7, 7, - 13,12,12,13,11,11,12,11,11,16,14,15,14,12,12,12, - 11,11,18,16,16,14,12,12,11,10,10,13,12,11,13,11, - 11,13,12,12, 0,15,14,14,11,11,13,11,11,16,15,15, - 15,11,11, -}; - -static const static_codebook _44pn1_p5_0 = { - 5, 243, - (char *)_vq_lengthlist__44pn1_p5_0, - 1, -527106048, 1620377600, 2, 0, - (long *)_vq_quantlist__44pn1_p5_0, - 0 -}; - -static const long _vq_quantlist__44pn1_p5_1[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_p5_1[] = { - 2, 6, 7, 6, 8, 8, 7, 7, 8, 7, 8, 8, 9, 9, 9, 8, - 7, 7, 8, 8, 8, 9, 9, 9, 9, 8, 8, 6, 6, 6, 9, 7, - 7, 9, 7, 7, 9, 8, 8,10, 8, 8,10, 8, 8,10, 8, 8, - 10, 9, 8,10, 8, 8, 7, 6, 6, 9, 6, 6, 9, 6, 6, 9, - 7, 7,10, 8, 8,10, 6, 6, 9, 7, 7,10, 8, 8,10, 6, - 6, 7, 7, 7,11, 9, 9,11, 9, 9,10, 9, 9,12,10,10, - 12, 8, 8,11, 9, 9,13, 9,10,12, 8, 8, 8, 7, 7,11, - 9,10,11,10,10,10, 9, 9,11,11,11,11, 9, 9,11,10, - 9,12,11,11,11, 9,10,10, 8, 8,11, 9,10,11, 9, 9, - 11, 9, 9,12,10,10,11, 9, 9,11, 9, 9,12,10,11,11, - 9, 9, 8, 8, 8,12, 9, 9,12, 9, 9,11, 9, 9,13, 9, - 9,13, 8, 8,12, 9, 9,13,10,10,12, 8, 8, 9, 7, 7, - 11,10,10,11,10,10,11,10,10,12,11,11,11,10, 9,11, - 10,10,11,11,11,11, 9, 9,11, 9, 9,12,10,10,11,10, - 10,12,10,10,11,11,11,11, 9, 9,11,10,10,12,11,11, - 11, 9, 9, -}; - -static const static_codebook _44pn1_p5_1 = { - 5, 243, - (char *)_vq_lengthlist__44pn1_p5_1, - 1, -530841600, 1616642048, 2, 0, - (long *)_vq_quantlist__44pn1_p5_1, - 0 -}; - -static const long _vq_quantlist__44pn1_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44pn1_p6_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, -}; - -static const static_codebook _44pn1_p6_0 = { - 5, 243, - (char *)_vq_lengthlist__44pn1_p6_0, - 1, -516716544, 1630767104, 2, 0, - (long *)_vq_quantlist__44pn1_p6_0, - 0 -}; - -static const long _vq_quantlist__44pn1_p6_1[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44pn1_p6_1[] = { - 1, 3, 2, 5, 4, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _44pn1_p6_1 = { - 1, 25, - (char *)_vq_lengthlist__44pn1_p6_1, - 1, -518864896, 1620639744, 5, 0, - (long *)_vq_quantlist__44pn1_p6_1, - 0 -}; - -static const long _vq_quantlist__44pn1_p6_2[] = { - 12, - 11, - 13, - 10, - 14, - 9, - 15, - 8, - 16, - 7, - 17, - 6, - 18, - 5, - 19, - 4, - 20, - 3, - 21, - 2, - 22, - 1, - 23, - 0, - 24, -}; - -static const char _vq_lengthlist__44pn1_p6_2[] = { - 3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44pn1_p6_2 = { - 1, 25, - (char *)_vq_lengthlist__44pn1_p6_2, - 1, -529006592, 1611661312, 5, 0, - (long *)_vq_quantlist__44pn1_p6_2, - 0 -}; - -static const char _huff_lengthlist__44pn1_short[] = { - 4, 3, 7, 9,12,16,16, 3, 2, 5, 7,11,14,15, 7, 4, - 5, 6, 9,12,15, 8, 5, 5, 5, 8,10,14, 9, 7, 6, 6, - 8,10,12,12,10,10, 7, 6, 8,10,15,12,10, 6, 4, 7, - 9, -}; - -static const static_codebook _huff_book__44pn1_short = { - 2, 49, - (char *)_huff_lengthlist__44pn1_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/coupled/res_books_stereo.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/coupled/res_books_stereo.h deleted file mode 100644 index 61d93404..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/coupled/res_books_stereo.h +++ /dev/null @@ -1,15782 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebooks autogenerated by huff/huffbuld - - ********************************************************************/ - -#include "codebook.h" - -static const long _vq_quantlist__16c0_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16c0_s_p1_0[] = { - 1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, - 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, - 0, 0, 0, 9, 9,12, 0, 0, 0, 0, 0, 0,10,12,11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, - 0, 0, 0, 0, 9,12,10, 0, 0, 0, 0, 0, 0,10,11,12, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, - 0, 0, 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,12,11, 0, - 0, 0, 0, 0, 0, 9,10,12, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,12, - 0, 0, 0, 0, 0, 0, 9,12, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c0_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__16c0_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16c0_s_p1_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16c0_s_p3_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 7, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 6, 6, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c0_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__16c0_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16c0_s_p3_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16c0_s_p4_0[] = { - 1, 3, 2, 7, 8, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c0_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__16c0_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16c0_s_p4_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16c0_s_p5_0[] = { - 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 8, 0, 0, 0, 7, 7, - 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, 0, 0, - 8, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static const static_codebook _16c0_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__16c0_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16c0_s_p5_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__16c0_s_p6_0[] = { - 1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11, - 11,11, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, - 11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,12,12,12,13, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10,10,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, 0, 0, - 10,10,10,11,11,11,12,12,13,13,13,14, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,13,13,14,15,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,14,14,15, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,13,14, - 14, -}; - -static const static_codebook _16c0_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__16c0_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__16c0_s_p6_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16c0_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,11,10,10,11, - 11,10, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, - 11,11,11,10, 6, 9, 9,11,12,12,11, 9, 9, 6, 9,10, - 11,12,12,11, 9,10, 7,11,11,11,11,11,12,13,12, 6, - 9,10,11,10,10,12,13,13, 6,10, 9,11,10,10,11,12, - 13, -}; - -static const static_codebook _16c0_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__16c0_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__16c0_s_p7_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16c0_s_p7_1[] = { - 1, 3, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, - 8, 8, 8, 9, 9, 9,10,10,10, 6, 7, 8, 8, 8, 8, 9, - 8,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, 7, - 7, 8, 8, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9, 9, - 9, 9,11,11,11, 8, 8, 9, 9, 9, 9, 9,10,10,11,11, - 9, 9, 9, 9, 9, 9, 9,10,11,11,11,10,11, 9, 9, 9, - 9,10, 9,11,11,11,10,11,10,10, 9, 9,10,10,11,11, - 11,11,11, 9, 9, 9, 9,10,10, -}; - -static const static_codebook _16c0_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__16c0_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16c0_s_p7_1, - 0 -}; - -static const long _vq_quantlist__16c0_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16c0_s_p8_0[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8,10,10, 6, 5, 6, - 8, 8, 8, 8, 8, 8, 8, 9,10,10, 7, 6, 6, 8, 8, 8, - 8, 8, 8, 8, 8,10,10, 0, 8, 8, 8, 8, 9, 8, 9, 9, - 9,10,10,10, 0, 9, 8, 8, 8, 9, 9, 8, 8, 9, 9,10, - 10, 0,12,11, 8, 8, 9, 9, 9, 9,10,10,11,10, 0,12, - 13, 8, 8, 9,10, 9, 9,11,11,11,12, 0, 0, 0, 8, 8, - 8, 8,10, 9,12,13,12,14, 0, 0, 0, 8, 8, 8, 9,10, - 10,12,12,13,14, 0, 0, 0,13,13, 9, 9,11,11, 0, 0, - 14, 0, 0, 0, 0,14,14,10,10,12,11,12,14,14,14, 0, - 0, 0, 0, 0,11,11,13,13,14,13,14,14, 0, 0, 0, 0, - 0,12,13,13,12,13,14,14,14, -}; - -static const static_codebook _16c0_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__16c0_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__16c0_s_p8_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16c0_s_p8_1[] = { - 1, 4, 3, 5, 5, 7, 7, 7, 6, 6, 7, 7, 7, 5, 5, 7, - 7, 7, 6, 6, 7, 7, 7, 6, 6, -}; - -static const static_codebook _16c0_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__16c0_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16c0_s_p8_1, - 0 -}; - -static const long _vq_quantlist__16c0_s_p9_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16c0_s_p9_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _16c0_s_p9_0 = { - 4, 81, - (char *)_vq_lengthlist__16c0_s_p9_0, - 1, -518803456, 1628680192, 2, 0, - (long *)_vq_quantlist__16c0_s_p9_0, - 0 -}; - -static const long _vq_quantlist__16c0_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16c0_s_p9_1[] = { - 1, 5, 5, 5, 5, 9,11,11,10,10,10,10,10,10,10, 7, - 6, 6, 6, 6,10,10,10,10,10,10,10,10,10,10, 7, 6, - 6, 6, 6,10, 9,10,10,10,10,10,10,10,10,10, 7, 7, - 8, 9,10,10,10,10,10,10,10,10,10,10,10, 8, 7,10, - 10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _16c0_s_p9_1 = { - 2, 225, - (char *)_vq_lengthlist__16c0_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__16c0_s_p9_1, - 0 -}; - -static const long _vq_quantlist__16c0_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__16c0_s_p9_2[] = { - 1, 5, 5, 7, 8, 8, 7, 9, 9, 9,12,12,11,12,12,10, - 10,11,12,12,12,11,12,12, 8, 9, 8, 7, 9,10,10,11, - 11,10,11,12,10,12,10,12,12,12,11,12,11, 9, 8, 8, - 9,10, 9, 8, 9,10,12,12,11,11,12,11,10,11,12,11, - 12,12, 8, 9, 9, 9,10,11,12,11,12,11,11,11,11,12, - 12,11,11,12,12,11,11, 9, 9, 8, 9, 9,11, 9, 9,10, - 9,11,11,11,11,12,11,11,10,12,12,12, 9,12,11,10, - 11,11,11,11,12,12,12,11,11,11,12,10,12,12,12,10, - 10, 9,10, 9,10,10, 9, 9, 9,10,10,12,10,11,11, 9, - 11,11,10,11,11,11,10,10,10, 9, 9,10,10, 9, 9,10, - 11,11,10,11,10,11,10,11,11,10,11,11,11,10, 9,10, - 10, 9,10, 9, 9,11, 9, 9,11,10,10,11,11,10,10,11, - 10,11, 8, 9,11,11,10, 9,10,11,11,10,11,11,10,10, - 10,11,10, 9,10,10,11, 9,10,10, 9,11,10,10,10,10, - 11,10,11,11, 9,11,10,11,10,10,11,11,10,10,10, 9, - 10,10,11,11,11, 9,10,10,10,10,10,11,10,10,10, 9, - 10,10,11,10,10,10,10,10, 9,10,11,10,10,10,10,11, - 11,11,10,10,10,10,10,11,10,11,10,11,10,10,10, 9, - 11,11,10,10,10,11,11,10,10,10,10,10,10,10,10,11, - 11, 9,10,10,10,11,10,11,10,10,10,11, 9,10,11,10, - 11,10,10, 9,10,10,10,11,10,11,10,10,10,10,10,11, - 11,10,11,11,10,10,11,11,10, 9, 9,10,10,10,10,10, - 9,11, 9,10,10,10,11,11,10,10,10,10,11,11,11,10, - 9, 9,10,10,11,10,10,10,10,10,11,11,11,10,10,10, - 11,11,11, 9,10,10,10,10, 9,10, 9,10,11,10,11,10, - 10,11,11,10,11,11,11,11,11,10,11,10,10,10, 9,11, - 11,10,11,11,11,11,11,11,11,11,11,10,11,10,10,10, - 10,11,10,10,11, 9,10,10,10, -}; - -static const static_codebook _16c0_s_p9_2 = { - 2, 441, - (char *)_vq_lengthlist__16c0_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__16c0_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__16c0_s_single[] = { - 3, 4,19, 7, 9, 7, 8,11, 9,12, 4, 1,19, 6, 7, 7, - 8,10,11,13,18,18,18,18,18,18,18,18,18,18, 8, 6, - 18, 8, 9, 9,11,12,14,18, 9, 6,18, 9, 7, 8, 9,11, - 12,18, 7, 6,18, 8, 7, 7, 7, 9,11,17, 8, 8,18, 9, - 7, 6, 6, 8,11,17,10,10,18,12, 9, 8, 7, 9,12,18, - 13,15,18,15,13,11,10,11,15,18,14,18,18,18,18,18, - 16,16,18,18, -}; - -static const static_codebook _huff_book__16c0_s_single = { - 2, 100, - (char *)_huff_lengthlist__16c0_s_single, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__16c1_s_long[] = { - 2, 5,20, 7,10, 7, 8,10,11,11, 4, 2,20, 5, 8, 6, - 7, 9,10,10,20,20,20,20,19,19,19,19,19,19, 7, 5, - 19, 6,10, 7, 9,11,13,17,11, 8,19,10, 7, 7, 8,10, - 11,15, 7, 5,19, 7, 7, 5, 6, 9,11,16, 7, 6,19, 8, - 7, 6, 6, 7, 9,13, 9, 9,19,11, 9, 8, 6, 7, 8,13, - 12,14,19,16,13,10, 9, 8, 9,13,14,17,19,18,18,17, - 12,11,11,13, -}; - -static const static_codebook _huff_book__16c1_s_long = { - 2, 100, - (char *)_huff_lengthlist__16c1_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__16c1_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16c1_s_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c1_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__16c1_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16c1_s_p1_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16c1_s_p3_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 7, 7, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c1_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__16c1_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16c1_s_p3_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16c1_s_p4_0[] = { - 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c1_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__16c1_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16c1_s_p4_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16c1_s_p5_0[] = { - 1, 3, 3, 5, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 8, 8, - 8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static const static_codebook _16c1_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__16c1_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16c1_s_p5_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__16c1_s_p6_0[] = { - 1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11,12, - 12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 0, 0, 8, 8, 8, 9,10, 9,10,10,10,10, - 11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10,11, - 11,11,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,12,12,13,13, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, - 14, -}; - -static const static_codebook _16c1_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__16c1_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__16c1_s_p6_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16c1_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9,10,10, - 10, 9, 4, 7, 7,10,10,10,11,10,10, 6,10,10,11,11, - 11,11,10,10, 6,10, 9,11,11,11,11,10,10, 6,10,10, - 11,11,11,11,10,10, 7,11,11,11,11,11,12,12,11, 6, - 10,10,11,10,10,11,11,11, 6,10,10,10,11,10,11,11, - 11, -}; - -static const static_codebook _16c1_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__16c1_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__16c1_s_p7_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16c1_s_p7_1[] = { - 2, 3, 3, 5, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, - 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8, - 8, 9, 9,10,10,10,10,10, 9, 9, 8, 8, 9, 9,10,10, - 10,10,10, 8, 8, 8, 8, 9, 9, -}; - -static const static_codebook _16c1_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__16c1_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16c1_s_p7_1, - 0 -}; - -static const long _vq_quantlist__16c1_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16c1_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5, - 7, 8, 8, 9, 8, 8, 9, 9,10,11, 6, 5, 5, 8, 8, 9, - 9, 8, 8, 9,10,10,11, 0, 8, 8, 8, 9, 9, 9, 9, 9, - 10,10,11,11, 0, 9, 9, 9, 8, 9, 9, 9, 9,10,10,11, - 11, 0,13,13, 9, 9,10,10,10,10,11,11,12,12, 0,14, - 13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, - 9, 9,11,11,12,12,13,12, 0, 0, 0,10,10, 9, 9,10, - 10,12,12,13,13, 0, 0, 0,13,14,11,10,11,11,12,12, - 13,14, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,12,12,12,12,13,13,14,15, 0, 0, 0, 0, - 0,12,12,12,12,13,13,14,15, -}; - -static const static_codebook _16c1_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__16c1_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__16c1_s_p8_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16c1_s_p8_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _16c1_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__16c1_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16c1_s_p8_1, - 0 -}; - -static const long _vq_quantlist__16c1_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16c1_s_p9_0[] = { - 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _16c1_s_p9_0 = { - 2, 169, - (char *)_vq_lengthlist__16c1_s_p9_0, - 1, -513964032, 1628680192, 4, 0, - (long *)_vq_quantlist__16c1_s_p9_0, - 0 -}; - -static const long _vq_quantlist__16c1_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16c1_s_p9_1[] = { - 1, 4, 4, 4, 4, 8, 8,12,13,14,14,14,14,14,14, 6, - 6, 6, 6, 6,10, 9,14,14,14,14,14,14,14,14, 7, 6, - 5, 6, 6,10, 9,12,13,13,13,13,13,13,13,13, 7, 7, - 9, 9,11,11,12,13,13,13,13,13,13,13,13, 7, 7, 8, - 8,11,12,13,13,13,13,13,13,13,13,13,12,12,10,10, - 13,12,13,13,13,13,13,13,13,13,13,12,12,10,10,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,12,13,12, - 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,12,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,12,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13, -}; - -static const static_codebook _16c1_s_p9_1 = { - 2, 225, - (char *)_vq_lengthlist__16c1_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__16c1_s_p9_1, - 0 -}; - -static const long _vq_quantlist__16c1_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__16c1_s_p9_2[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9,10, - 10,10, 9,10,10,11,12,12, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,10,10,10,11,11,10,12,11,11,13,11, 7, 7, 8, - 8, 8, 8, 9, 9, 9,10,10,10,10, 9,10,10,11,11,12, - 11,11, 8, 8, 8, 8, 9, 9,10,10,10,10,11,11,11,11, - 11,11,11,12,11,12,12, 8, 8, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,11,11,11,11,11,11,12,11, 9, 9, 9, 9, - 10,10,10,10,11,10,11,11,11,11,11,11,12,12,12,12, - 11, 9, 9, 9, 9,10,10,10,10,11,11,11,11,11,11,11, - 11,11,12,12,12,13, 9,10,10, 9,11,10,10,10,10,11, - 11,11,11,11,10,11,12,11,12,12,11,12,11,10, 9,10, - 10,11,10,11,11,11,11,11,11,11,11,11,12,12,11,12, - 12,12,10,10,10,11,10,11,11,11,11,11,11,11,11,11, - 11,11,12,13,12,12,11, 9,10,10,11,11,10,11,11,11, - 12,11,11,11,11,11,12,12,13,13,12,13,10,10,12,10, - 11,11,11,11,11,11,11,11,11,12,12,11,13,12,12,12, - 12,13,12,11,11,11,11,11,11,12,11,12,11,11,11,11, - 12,12,13,12,11,12,12,11,11,11,11,11,12,11,11,11, - 11,12,11,11,12,11,12,13,13,12,12,12,12,11,11,11, - 11,11,12,11,11,12,11,12,11,11,11,11,13,12,12,12, - 12,13,11,11,11,12,12,11,11,11,12,11,12,12,12,11, - 12,13,12,11,11,12,12,11,12,11,11,11,12,12,11,12, - 11,11,11,12,12,12,12,13,12,13,12,12,12,12,11,11, - 12,11,11,11,11,11,11,12,12,12,13,12,11,13,13,12, - 12,11,12,10,11,11,11,11,12,11,12,12,11,12,12,13, - 12,12,13,12,12,12,12,12,11,12,12,12,11,12,11,11, - 11,12,13,12,13,13,13,13,13,12,13,13,12,12,13,11, - 11,11,11,11,12,11,11,12,11, -}; - -static const static_codebook _16c1_s_p9_2 = { - 2, 441, - (char *)_vq_lengthlist__16c1_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__16c1_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__16c1_s_short[] = { - 5, 6,17, 8,12, 9,10,10,12,13, 5, 2,17, 4, 9, 5, - 7, 8,11,13,16,16,16,16,16,16,16,16,16,16, 6, 4, - 16, 5,10, 5, 7,10,14,16,13, 9,16,11, 8, 7, 8, 9, - 13,16, 7, 4,16, 5, 7, 4, 6, 8,11,13, 8, 6,16, 7, - 8, 5, 5, 7, 9,13, 9, 8,16, 9, 8, 6, 6, 7, 9,13, - 11,11,16,10,10, 7, 7, 7, 9,13,13,13,16,13,13, 9, - 9, 9,10,13, -}; - -static const static_codebook _huff_book__16c1_s_short = { - 2, 100, - (char *)_huff_lengthlist__16c1_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__16c2_s_long[] = { - 4, 7, 9, 9, 9, 8, 9,10,13,16, 5, 4, 5, 6, 7, 7, - 8, 9,12,16, 6, 5, 5, 5, 7, 7, 9,10,12,15, 7, 6, - 5, 4, 5, 6, 8, 9,10,13, 8, 7, 7, 5, 5, 5, 7, 9, - 10,12, 7, 7, 7, 6, 5, 5, 6, 7,10,12, 8, 8, 8, 7, - 7, 5, 5, 6, 9,11, 8, 9, 9, 8, 8, 6, 6, 5, 8,11, - 10,11,12,12,11, 9, 9, 8, 9,12,13,14,15,15,14,12, - 12,11,11,13, -}; - -static const static_codebook _huff_book__16c2_s_long = { - 2, 100, - (char *)_huff_lengthlist__16c2_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__16c2_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16c2_s_p1_0[] = { - 1, 3, 3, 0, 0, 0, 0, 0, 0, 4, 5, 5, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c2_s_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__16c2_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16c2_s_p1_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16c2_s_p2_0[] = { - 2, 4, 4, 7, 7, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, - 0, 0, 8, 8, 0, 0, 0, 8, 8, 4, 4, 4, 8, 7, 0, 0, - 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, - 9, 9, 4, 4, 4, 7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, - 8, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 7, 8, 8,10, 9, - 0, 0, 0,12,11, 0, 0, 0,11,12, 0, 0, 0,14,13, 0, - 0, 0,14,14, 7, 8, 8, 9,10, 0, 0, 0,11,12, 0, 0, - 0,11,11, 0, 0, 0,14,14, 0, 0, 0,14,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8,11,11, 0, 0, 0, - 12,11, 0, 0, 0,12,12, 0, 0, 0,13,12, 0, 0, 0,13, - 13, 8, 8, 8,11,11, 0, 0, 0,11,11, 0, 0, 0,12,12, - 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 8, 9, 8,12,11, 0, 0, 0,12,12, 0, - 0, 0,12,11, 0, 0, 0,13,13, 0, 0, 0,13,13, 8, 8, - 8,11,12, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0, - 13,14, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 8, 9, 9,14,14, 0, 0, 0,13,13, 0, 0, 0,13, - 13, 0, 0, 0,13,12, 0, 0, 0,13,13, 8, 9, 9,14,14, - 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0,12,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, - 9, 9,14,14, 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, - 0,13,13, 0, 0, 0,13,12, 8, 9, 9,14,14, 0, 0, 0, - 13,13, 0, 0, 0,13,13, 0, 0, 0,13,13, 0, 0, 0,12, - 12, -}; - -static const static_codebook _16c2_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__16c2_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16c2_s_p2_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16c2_s_p3_0[] = { - 1, 3, 3, 5, 5, 7, 7, 8, 8, 0, 0, 0, 6, 6, 8, 8, - 9, 9, 0, 0, 0, 6, 6, 8, 8, 9, 9, 0, 0, 0, 7, 7, - 8, 9,10,10, 0, 0, 0, 7, 7, 9, 9,10,10, 0, 0, 0, - 8, 8, 9, 9,11,11, 0, 0, 0, 7, 7, 9, 9,11,11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c2_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__16c2_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16c2_s_p3_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__16c2_s_p4_0[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, - 9, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10, - 11,10, 0, 0, 0, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, - 10,10,10, 0, 0, 0, 6, 6, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,11, 0, 0, 0, 7, 6, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, - 11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, - 10,11,11,11,11,12,12, 0, 0, 0, 7, 8, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _16c2_s_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__16c2_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__16c2_s_p4_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16c2_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6,10,11,10,10, - 10,11, 4, 6, 6,10,10,11,10,11,10, 5,10,10, 9,12, - 11,10,12,12, 7,10,10,12,12,12,12,13,13, 7,11,10, - 11,12,12,12,13,13, 6,11,10,10,12,12,11,12,12, 7, - 11,10,12,13,13,12,12,12, 7,10,11,12,13,13,12,12, - 12, -}; - -static const static_codebook _16c2_s_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__16c2_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__16c2_s_p5_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16c2_s_p5_1[] = { - 2, 3, 3, 6, 6, 6, 6, 7, 7, 7, 7,11,10,10, 6, 6, - 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, - 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9,11,11,11, 6, - 7, 8, 8, 8, 8, 9, 9,11,11,11, 7, 7, 8, 8, 8, 8, - 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9,11,11,11, - 8, 8, 8, 8, 8, 8, 8, 8,11,11,11,11,11, 8, 8, 8, - 8, 8, 8,12,11,11,11,11, 8, 8, 8, 8, 8, 8,12,11, - 11,11,11, 7, 7, 8, 8, 8, 8, -}; - -static const static_codebook _16c2_s_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__16c2_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16c2_s_p5_1, - 0 -}; - -static const long _vq_quantlist__16c2_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16c2_s_p6_0[] = { - 1, 4, 4, 6, 6, 8, 7, 8, 8, 9, 9,10,10, 5, 5, 5, - 7, 7, 9, 9, 9, 9,11,11,12,12, 6, 5, 5, 7, 7, 9, - 9,10, 9,11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10, - 11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12, 0,11,11, 8, 8,10,10,11,11,12,12,13,13, 0,12, - 12, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const static_codebook _16c2_s_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__16c2_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__16c2_s_p6_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16c2_s_p6_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _16c2_s_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__16c2_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16c2_s_p6_1, - 0 -}; - -static const long _vq_quantlist__16c2_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16c2_s_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8,10, 9,10,10, 5, 5, 5, - 7, 7, 9, 9,10,10,11,10,12,11, 6, 5, 5, 7, 7, 9, - 9,10,10,11,11,12,12,20, 7, 7, 7, 7, 9, 9,10,10, - 11,11,12,12,20, 7, 7, 7, 7, 9, 9,11,10,12,11,12, - 12,20,11,11, 8, 8,10,10,11,11,12,12,13,13,20,12, - 12, 8, 8, 9, 9,11,11,12,12,13,13,20,20,21,10,10, - 10,10,11,11,12,12,13,13,21,21,21,10,10,10,10,11, - 11,12,12,13,13,21,21,21,14,14,11,11,12,12,13,13, - 13,14,21,21,21,16,15,11,11,12,11,13,13,14,14,21, - 21,21,21,21,13,13,12,12,13,13,14,14,21,21,21,21, - 21,13,13,12,12,13,13,14,14, -}; - -static const static_codebook _16c2_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__16c2_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__16c2_s_p7_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16c2_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 9, 9, 6, 7, - 7, 7, 7, 7, 8, 8, 9, 9, 9, 6, 6, 7, 7, 7, 7, 8, - 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, - 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, - 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, - 7, 7, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, - 7, 8, 8, 9, 9, 9, 9, 9, 8, 8, 7, 7, 8, 8, 9, 9, - 9, 9, 9, 7, 7, 7, 7, 8, 8, -}; - -static const static_codebook _16c2_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__16c2_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16c2_s_p7_1, - 0 -}; - -static const long _vq_quantlist__16c2_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16c2_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10, 6, - 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11, 6, 5, - 5, 8, 7, 9, 9, 8, 8, 9, 9,10,10,11,11,20, 8, 8, - 8, 8, 9, 9, 9, 9,10,10,11,10,12,11,20, 8, 8, 8, - 8, 9, 9, 9, 9,10,10,11,11,12,12,20,12,12, 9, 9, - 10,10,10,10,11,11,12,12,13,12,20,13,13, 9, 9,10, - 10,10,10,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9, - 10,10,11,11,12,12,13,12,20,20,20, 9, 9, 9, 8,10, - 10,12,11,12,12,13,13,20,20,20,13,13,10,10,11,11, - 12,12,13,13,13,13,20,20,20,13,13,10,10,11,10,12, - 11,13,13,14,14,20,20,20,20,20,11,11,11,11,12,12, - 13,13,14,14,20,20,20,20,20,11,10,11,11,13,11,13, - 13,14,14,20,20,21,21,21,14,14,11,12,13,13,13,13, - 14,14,21,21,21,21,21,15,15,12,11,13,12,14,13,15, - 14, -}; - -static const static_codebook _16c2_s_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__16c2_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__16c2_s_p8_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__16c2_s_p8_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,10, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 11,11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10, 9,10,10,10,10,11,11,11, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, - 11, 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, - 10,10,10,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10,11,11,11, - 11,11, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,11,11,11,11,11,10, 9,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, - 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11, - 11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _16c2_s_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__16c2_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__16c2_s_p8_1, - 0 -}; - -static const long _vq_quantlist__16c2_s_p9_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__16c2_s_p9_0[] = { - 1, 4, 3,10, 8,10,10,10,10,10,10,10,10,10,10,10, - 10, 6,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 6,10, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _16c2_s_p9_0 = { - 2, 289, - (char *)_vq_lengthlist__16c2_s_p9_0, - 1, -509798400, 1631393792, 5, 0, - (long *)_vq_quantlist__16c2_s_p9_0, - 0 -}; - -static const long _vq_quantlist__16c2_s_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static const char _vq_lengthlist__16c2_s_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 7, 8, 8,10, 9,11,10,13, - 11,14,13, 6, 6, 6, 8, 8, 8, 8, 8, 7, 9, 8,11, 9, - 13,11,14,12,14,13, 5, 6, 6, 8, 8, 8, 8, 8, 8, 9, - 9,11,11,13,11,14,13,15,15,17, 8, 8, 8, 8, 9, 9, - 9, 8,11, 9,12,10,13,11,14,12,14,13,17, 8, 8, 8, - 8, 9, 9, 9, 9,10,10,11,11,13,13,13,14,16,15,17, - 12,12, 8, 8, 9, 9,10,10,11,11,12,11,13,12,13,12, - 14,13,16,12,12, 8, 8, 9, 9,10,10,11,11,12,12,13, - 13,14,14,15,15,17,17,17, 9, 9, 9, 9,11,11,12,12, - 12,13,13,13,16,14,14,14,17,17,17, 9, 8, 9, 8,11, - 10,12,12,13,13,14,14,15,15,16,16,17,17,17,12,12, - 10,10,11,12,12,13,13,14,13,15,15,14,16,15,17,17, - 17,12,12,10, 8,12, 9,13,12,14,14,15,14,15,16,16, - 16,17,17,17,17,17,11,11,12,12,14,14,14,16,15,16, - 15,16,15,17,17,17,17,17,17,11, 9,12,10,13,11,15, - 14,16,16,17,16,16,15,17,17,17,17,17,15,15,12,12, - 14,14,15,16,16,15,16,16,17,17,17,17,17,17,17,14, - 14,12,10,14,11,15,12,17,16,15,16,17,16,17,17,17, - 17,17,17,17,13,13,14,14,14,16,17,17,16,17,17,17, - 17,17,17,17,17,17,17,13, 9,13,12,15,13,16,16,17, - 17,17,17,17,17,17,17,17,17,17,15,17,14,14,15,16, - 16,17,16,17,16,17,17,17,17,17,17,17,17,17,17,14, - 13,15,16,16,17,16,17,17,17, -}; - -static const static_codebook _16c2_s_p9_1 = { - 2, 361, - (char *)_vq_lengthlist__16c2_s_p9_1, - 1, -518287360, 1622704128, 5, 0, - (long *)_vq_quantlist__16c2_s_p9_1, - 0 -}; - -static const long _vq_quantlist__16c2_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__16c2_s_p9_2[] = { - 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _16c2_s_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__16c2_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__16c2_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__16c2_s_short[] = { - 7,10,12,11,12,13,15,16,18,15,10, 8, 8, 8, 9,10, - 12,13,14,17,10, 7, 7, 7, 7, 8,10,12,15,18,10, 7, - 7, 5, 5, 6, 8,10,13,15,10, 7, 6, 5, 4, 4, 6, 9, - 12,15,11, 7, 7, 5, 4, 3, 4, 7,11,13,12, 9, 8, 7, - 5, 4, 4, 5,10,13,11,11,11, 9, 7, 5, 5, 5, 9,12, - 13,12,13,12,10, 8, 8, 7, 9,13,14,14,14,14,13,11, - 11,10,10,13, -}; - -static const static_codebook _huff_book__16c2_s_short = { - 2, 100, - (char *)_huff_lengthlist__16c2_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__8c0_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8c0_s_p1_0[] = { - 1, 5, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, 0, - 0, 0, 0, 8, 9,11, 0, 0, 0, 0, 0, 0, 9,11,11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9,10, 0, 0, - 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 9,11,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,11, 0, - 0, 0, 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,11,11, - 0, 0, 0, 0, 0, 0, 8,11, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _8c0_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__8c0_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__8c0_s_p1_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8c0_s_p3_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 7, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _8c0_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__8c0_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8c0_s_p3_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__8c0_s_p4_0[] = { - 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _8c0_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__8c0_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__8c0_s_p4_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__8c0_s_p5_0[] = { - 1, 3, 3, 5, 5, 7, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 8, 8, 0, 0, 0, 7, 7, 7, 7, 8, 9, 0, 0, 0, 8, 8, - 8, 8, 9, 9, 0, 0, 0, 8, 8, 8, 8, 9, 9, 0, 0, 0, - 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static const static_codebook _8c0_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__8c0_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__8c0_s_p5_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__8c0_s_p6_0[] = { - 1, 3, 3, 6, 6, 8, 8, 9, 9, 8, 8,10, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,11, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10, 9, 9,11, - 10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10,10, - 11,11,11,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10,10, - 10,11,11,12,12,13,13, 0, 0, 0,10,10,10,10,11,11, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0,10, 9,10, - 11,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10, 9,10,11,12,12,13,13,14,13, 0, 0, 0, 0, 0, 9, - 9, 9,10,10,10,11,11,13,12,13,13, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,12,12,13,13,14,14, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,13,14, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,13,14,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,14,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,13,13,14,14,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, - 14, -}; - -static const static_codebook _8c0_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__8c0_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__8c0_s_p6_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8c0_s_p7_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,11, 9,10,12, - 9,10, 4, 7, 7,10,10,10,11, 9, 9, 6,11,10,11,11, - 12,11,11,11, 6,10,10,11,11,12,11,10,10, 6, 9,10, - 11,11,11,11,10,10, 7,10,11,12,11,11,12,11,12, 6, - 9, 9,10, 9, 9,11,10,10, 6, 9, 9,10,10,10,11,10, - 10, -}; - -static const static_codebook _8c0_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__8c0_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__8c0_s_p7_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__8c0_s_p7_1[] = { - 1, 3, 3, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, 7, 7, - 8, 8, 9, 9, 9, 9,10,10, 9, 7, 7, 8, 8, 9, 9, 9, - 9,10,10,10, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10, 8, - 8, 9, 9, 9, 9, 8, 9,10,10,10, 8, 8, 9, 9, 9,10, - 10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10,11,10,11, - 9, 9, 9, 9,10,10,10,10,11,11,11,10,10, 9, 9,10, - 10,10, 9,11,10,10,10,10,10,10, 9, 9,10,10,11,11, - 10,10,10, 9, 9, 9,10,10,10, -}; - -static const static_codebook _8c0_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__8c0_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__8c0_s_p7_1, - 0 -}; - -static const long _vq_quantlist__8c0_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__8c0_s_p8_0[] = { - 1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 6, 6, - 7, 7, 8, 8, 7, 7, 8, 9,10,10, 7, 6, 6, 7, 7, 8, - 7, 7, 7, 9, 9,10,12, 0, 8, 8, 8, 8, 8, 9, 8, 8, - 9, 9,10,10, 0, 8, 8, 8, 8, 8, 9, 8, 9, 9, 9,11, - 10, 0, 0,13, 9, 8, 9, 9, 9, 9,10,10,11,11, 0,13, - 0, 9, 9, 9, 9, 9, 9,11,10,11,11, 0, 0, 0, 8, 9, - 10, 9,10,10,13,11,12,12, 0, 0, 0, 8, 9, 9, 9,10, - 10,13,12,12,13, 0, 0, 0,12, 0,10,10,12,11,10,11, - 12,12, 0, 0, 0,13,13,10,10,10,11,12, 0,13, 0, 0, - 0, 0, 0, 0,13,11, 0,12,12,12,13,12, 0, 0, 0, 0, - 0, 0,13,13,11,13,13,11,12, -}; - -static const static_codebook _8c0_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__8c0_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__8c0_s_p8_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8c0_s_p8_1[] = { - 1, 3, 4, 5, 5, 7, 6, 6, 6, 5, 7, 7, 7, 6, 6, 7, - 7, 7, 6, 6, 7, 7, 7, 6, 6, -}; - -static const static_codebook _8c0_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__8c0_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8c0_s_p8_1, - 0 -}; - -static const long _vq_quantlist__8c0_s_p9_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8c0_s_p9_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _8c0_s_p9_0 = { - 4, 81, - (char *)_vq_lengthlist__8c0_s_p9_0, - 1, -518803456, 1628680192, 2, 0, - (long *)_vq_quantlist__8c0_s_p9_0, - 0 -}; - -static const long _vq_quantlist__8c0_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__8c0_s_p9_1[] = { - 1, 4, 4, 5, 5,10, 8,11,11,11,11,11,11,11,11, 6, - 6, 6, 7, 6,11,10,11,11,11,11,11,11,11,11, 7, 5, - 6, 6, 6, 8, 7,11,11,11,11,11,11,11,11,11, 7, 8, - 8, 8, 9, 9,11,11,11,11,11,11,11,11,11, 9, 8, 7, - 8, 9,11,11,11,11,11,11,11,11,11,11,11,10,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11, -}; - -static const static_codebook _8c0_s_p9_1 = { - 2, 225, - (char *)_vq_lengthlist__8c0_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__8c0_s_p9_1, - 0 -}; - -static const long _vq_quantlist__8c0_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__8c0_s_p9_2[] = { - 1, 5, 5, 7, 7, 8, 7, 8, 8,10,10, 9, 9,10,10,10, - 11,11,10,12,11,12,12,12, 9, 8, 8, 8, 8, 8, 9,10, - 10,10,10,11,11,11,10,11,11,12,12,11,12, 8, 8, 7, - 7, 8, 9,10,10,10, 9,10,10, 9,10,10,11,11,11,11, - 11,11, 9, 9, 9, 9, 8, 9,10,10,11,10,10,11,11,12, - 10,10,12,12,11,11,10, 9, 9,10, 8, 9,10,10,10, 9, - 10,10,11,11,10,11,10,10,10,12,12,12, 9,10, 9,10, - 9, 9,10,10,11,11,11,11,10,10,10,11,12,11,12,11, - 12,10,11,10,11, 9,10, 9,10, 9,10,10, 9,10,10,11, - 10,11,11,11,11,12,11, 9,10,10,10,10,11,11,11,11, - 11,10,11,11,11,11,10,12,10,12,12,11,12,10,10,11, - 10, 9,11,10,11, 9,10,11,10,10,10,11,11,11,11,12, - 12,10, 9, 9,11,10, 9,12,11,10,12,12,11,11,11,11, - 10,11,11,12,11,10,12, 9,11,10,11,10,10,11,10,11, - 9,10,10,10,11,12,11,11,12,11,10,10,11,11, 9,10, - 10,12,10,11,10,10,10, 9,10,10,10,10, 9,10,10,11, - 11,11,11,12,11,10,10,10,10,11,11,10,11,11, 9,11, - 10,12,10,12,11,10,11,10,10,10,11,10,10,11,11,10, - 11,10,10,10,10,11,11,12,10,10,10,11,10,11,12,11, - 10,11,10,10,11,11,10,12,10, 9,10,10,11,11,11,10, - 12,10,10,11,11,11,10,10,11,10,10,10,11,10,11,10, - 12,11,11,10,10,10,12,10,10,11, 9,10,11,11,11,10, - 10,11,10,10, 9,11,11,12,12,11,12,11,11,11,11,11, - 11, 9,10,11,10,12,10,10,10,10,11,10,10,11,10,10, - 12,10,10,10,10,10, 9,12,10,10,10,10,12, 9,11,10, - 10,11,10,12,12,10,12,12,12,10,10,10,10, 9,10,11, - 10,10,12,10,10,12,11,10,11,10,10,12,11,10,12,10, - 10,11, 9,11,10, 9,10, 9,10, -}; - -static const static_codebook _8c0_s_p9_2 = { - 2, 441, - (char *)_vq_lengthlist__8c0_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__8c0_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__8c0_s_single[] = { - 4, 5,18, 7,10, 6, 7, 8, 9,10, 5, 2,18, 5, 7, 5, - 6, 7, 8,11,17,17,17,17,17,17,17,17,17,17, 7, 4, - 17, 6, 9, 6, 8,10,12,15,11, 7,17, 9, 6, 6, 7, 9, - 11,15, 6, 4,17, 6, 6, 4, 5, 8,11,16, 6, 6,17, 8, - 6, 5, 6, 9,13,16, 8, 9,17,11, 9, 8, 8,11,13,17, - 9,12,17,15,14,13,12,13,14,17,12,15,17,17,17,17, - 17,16,17,17, -}; - -static const static_codebook _huff_book__8c0_s_single = { - 2, 100, - (char *)_huff_lengthlist__8c0_s_single, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__8c1_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8c1_s_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 8, 8,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 8,10, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _8c1_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__8c1_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__8c1_s_p1_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8c1_s_p3_0[] = { - 2, 4, 4, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _8c1_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__8c1_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8c1_s_p3_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__8c1_s_p4_0[] = { - 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 9, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _8c1_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__8c1_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__8c1_s_p4_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__8c1_s_p5_0[] = { - 1, 3, 3, 4, 5, 6, 6, 8, 8, 0, 0, 0, 8, 8, 7, 7, - 9, 9, 0, 0, 0, 8, 8, 7, 7, 9, 9, 0, 0, 0, 9,10, - 8, 8, 9, 9, 0, 0, 0,10,10, 8, 8, 9, 9, 0, 0, 0, - 11,10, 8, 8,10,10, 0, 0, 0,11,11, 8, 8,10,10, 0, - 0, 0,12,12, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static const static_codebook _8c1_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__8c1_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__8c1_s_p5_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__8c1_s_p6_0[] = { - 1, 3, 3, 5, 5, 8, 8, 8, 8, 9, 9,10,10,11,11,11, - 11, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11,11, - 12,12,12,12, 0, 0, 0, 9, 9, 8, 8,10,10,10,10,11, - 11,12,12,12,12, 0, 0, 0,10,10, 9, 9,10,10,10,10, - 11,11,12,12,13,13, 0, 0, 0,10,10, 9, 9,10,10,10, - 10,11,11,12,12,13,13, 0, 0, 0,11,11, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,12,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,11,11,11,11,12,12,13,12,13,13, 0, 0, 0, 0, - 0, 0, 0,11,10,11,11,12,12,13,13,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,13, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, - 14, -}; - -static const static_codebook _8c1_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__8c1_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__8c1_s_p6_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8c1_s_p7_0[] = { - 1, 4, 4, 6, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 5, 7, 7,10, 9, 9,10, 9, 9, 6,10,10,10,10, - 10,11,10,10, 6, 9, 9,10, 9,10,11,10,10, 6, 9, 9, - 10, 9, 9,11, 9,10, 7,10,10,11,11,11,11,10,10, 6, - 9, 9,10,10,10,11, 9, 9, 6, 9, 9,10,10,10,10, 9, - 9, -}; - -static const static_codebook _8c1_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__8c1_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__8c1_s_p7_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__8c1_s_p7_1[] = { - 2, 3, 3, 5, 5, 7, 7, 7, 7, 7, 7,10,10, 9, 7, 7, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, - 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 8, 8, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _8c1_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__8c1_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__8c1_s_p7_1, - 0 -}; - -static const long _vq_quantlist__8c1_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__8c1_s_p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, - 7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9, 9,10, 9,10,11,11,11, 0,13, - 12, 9, 8, 9, 9,10,10,11,11,12,11, 0, 0, 0, 9, 9, - 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, 9, 9,10, - 10,11,11,12,12, 0, 0, 0,13,13,10,10,11,11,12,11, - 13,12, 0, 0, 0,14,14,10,10,11,10,11,11,12,12, 0, - 0, 0, 0, 0,12,12,11,11,12,12,13,13, 0, 0, 0, 0, - 0,12,12,11,10,12,11,13,12, -}; - -static const static_codebook _8c1_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__8c1_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__8c1_s_p8_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8c1_s_p8_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _8c1_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__8c1_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8c1_s_p8_1, - 0 -}; - -static const long _vq_quantlist__8c1_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__8c1_s_p9_0[] = { - 1, 3, 3,10,10,10,10,10,10,10,10,10,10, 5, 6, 6, - 10,10,10,10,10,10,10,10,10,10, 6, 7, 8,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9, 9, -}; - -static const static_codebook _8c1_s_p9_0 = { - 2, 169, - (char *)_vq_lengthlist__8c1_s_p9_0, - 1, -513964032, 1628680192, 4, 0, - (long *)_vq_quantlist__8c1_s_p9_0, - 0 -}; - -static const long _vq_quantlist__8c1_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__8c1_s_p9_1[] = { - 1, 4, 4, 5, 5, 7, 7, 9, 9,11,11,12,12,13,13, 6, - 5, 5, 6, 6, 9, 9,10,10,12,12,12,13,15,14, 6, 5, - 5, 7, 7, 9, 9,10,10,12,12,12,13,14,13,17, 7, 7, - 8, 8,10,10,11,11,12,13,13,13,13,13,17, 7, 7, 8, - 8,10,10,11,11,13,13,13,13,14,14,17,11,11, 9, 9, - 11,11,12,12,12,13,13,14,15,13,17,12,12, 9, 9,11, - 11,12,12,13,13,13,13,14,16,17,17,17,11,12,12,12, - 13,13,13,14,15,14,15,15,17,17,17,12,12,11,11,13, - 13,14,14,15,14,15,15,17,17,17,15,15,13,13,14,14, - 15,14,15,15,16,15,17,17,17,15,15,13,13,13,14,14, - 15,15,15,15,16,17,17,17,17,16,14,15,14,14,15,14, - 14,15,15,15,17,17,17,17,17,14,14,16,14,15,15,15, - 15,15,15,17,17,17,17,17,17,16,16,15,17,15,15,14, - 17,15,17,16,17,17,17,17,16,15,14,15,15,15,15,15, - 15, -}; - -static const static_codebook _8c1_s_p9_1 = { - 2, 225, - (char *)_vq_lengthlist__8c1_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__8c1_s_p9_1, - 0 -}; - -static const long _vq_quantlist__8c1_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__8c1_s_p9_2[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9,11,11,12, 7, 7, 7, 7, 8, 8, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,11,11,11, 7, 7, 7, - 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,11, - 11,12, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10, - 10,10,10,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, - 10,10,10,11,12,11, 9, 9, 8, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,11,11,11,11,11, 8, 8, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10,11,12,11, - 12,11, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,12,11,12,11,11, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10,12,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,12,11,11,12,11,10,10,10,10,10,10,10,10, - 10,10,10,10,11,10,11,11,11,11,11,11,11,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,11,11,12,11,12, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,12,11,12,11,11,11,11,10,10,10,10,10,10,10, - 10,10,10,10,10,11,11,12,11,11,12,11,11,12,10,10, - 11,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12, - 12,11,12,11,11,12,12,12,11,11,10,10,10,10,10,10, - 10,10,10,11,12,12,11,12,12,11,12,11,11,11,11,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _8c1_s_p9_2 = { - 2, 441, - (char *)_vq_lengthlist__8c1_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__8c1_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__8c1_s_single[] = { - 4, 6,18, 8,11, 8, 8, 9, 9,10, 4, 4,18, 5, 9, 5, - 6, 7, 8,10,18,18,18,18,17,17,17,17,17,17, 7, 5, - 17, 6,11, 6, 7, 8, 9,12,12, 9,17,12, 8, 8, 9,10, - 10,13, 7, 5,17, 6, 8, 4, 5, 6, 8,10, 6, 5,17, 6, - 8, 5, 4, 5, 7, 9, 7, 7,17, 8, 9, 6, 5, 5, 6, 8, - 8, 8,17, 9,11, 8, 6, 6, 6, 7, 9,10,17,12,12,10, - 9, 7, 7, 8, -}; - -static const static_codebook _huff_book__8c1_s_single = { - 2, 100, - (char *)_huff_lengthlist__8c1_s_single, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c2_s_long[] = { - 6, 6,12,10,10,10, 9,10,12,12, 6, 1,10, 5, 6, 6, - 7, 9,11,14,12, 9, 8,11, 7, 8, 9,11,13,15,10, 5, - 12, 7, 8, 7, 9,12,14,15,10, 6, 7, 8, 5, 6, 7, 9, - 12,14, 9, 6, 8, 7, 6, 6, 7, 9,12,12, 9, 7, 9, 9, - 7, 6, 6, 7,10,10,10, 9,10,11, 8, 7, 6, 6, 8,10, - 12,11,13,13,11,10, 8, 8, 8,10,11,13,15,15,14,13, - 10, 8, 8, 9, -}; - -static const static_codebook _huff_book__44c2_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c2_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c2_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c2_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c2_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c2_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c2_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c2_s_p2_0[] = { - 1, 4, 4, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8, - 8, 0, 0, 0, 8, 8, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, - 0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0,11,11, 0, 0, - 0,11,11, 0, 0, 0,12,11, 0, 0, 0, 0, 0, 0, 0, 7, - 8, 8, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, 0,11, - 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0,11,11, 0, 0, 0,11,11, - 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, - 0, 0,10,11, 0, 0, 0,10,11, 0, 0, 0,11,11, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 9, 0, 0, 0,11,12, 0, 0, 0,11,12, 0, 0, 0, - 12,11, 0, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, 0, 0,12, - 11, 0, 0, 0,12,11, 0, 0, 0,11,12, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c2_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c2_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c2_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c2_s_p3_0[] = { - 2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c2_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44c2_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c2_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c2_s_p4_0[] = { - 1, 3, 3, 6, 6, 0, 0, 0, 0, 0, 6, 6, 6, 6, 0, 0, - 0, 0, 0, 6, 6, 6, 6, 0, 0, 0, 0, 0, 7, 7, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 0, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c2_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c2_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c2_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c2_s_p5_0[] = { - 1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 7, 7, 7, 7, 7, 7, - 9, 9, 0, 7, 7, 7, 7, 7, 7, 9, 9, 0, 8, 8, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, - 9, 9, 8, 8,10,10, 0, 0, 0, 9, 9, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static const static_codebook _44c2_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44c2_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c2_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c2_s_p6_0[] = { - 1, 4, 3, 6, 6, 8, 8, 9, 9, 9, 9, 9, 9,10,10,11, - 11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,11,12, 0, 8, 8, 7, 7, 9, 9,10,10, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,12,12,13,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,13,13,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,13,13,14, - 14, -}; - -static const static_codebook _44c2_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__44c2_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c2_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c2_s_p7_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, - 9, 9, 4, 7, 7,10, 9, 9,10, 9, 9, 7,10,10,11,10, - 11,11,10,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, - 11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 6, - 9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,12,10, - 11, -}; - -static const static_codebook _44c2_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__44c2_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c2_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c2_s_p7_1[] = { - 2, 3, 4, 6, 6, 7, 7, 7, 7, 7, 7, 9, 7, 7, 6, 6, - 7, 7, 8, 8, 8, 8, 9, 6, 6, 6, 6, 7, 7, 8, 8, 8, - 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 8, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44c2_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c2_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c2_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c2_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c2_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 6, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, - 13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, - 10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, - 11,12,12,12,12, 0, 0, 0,14,14,10,11,11,11,12,12, - 13,13, 0, 0, 0,14,14,11,10,11,11,13,12,13,13, 0, - 0, 0, 0, 0,12,12,11,12,13,12,14,14, 0, 0, 0, 0, - 0,12,12,12,12,13,12,14,14, -}; - -static const static_codebook _44c2_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__44c2_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c2_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c2_s_p8_1[] = { - 2, 4, 4, 5, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c2_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__44c2_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c2_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c2_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c2_s_p9_0[] = { - 1, 5, 4,12,12,12,12,12,12,12,12,12,12, 4, 9, 8, - 11,11,11,11,11,11,11,11,11,11, 2, 8, 7,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11, -}; - -static const static_codebook _44c2_s_p9_0 = { - 2, 169, - (char *)_vq_lengthlist__44c2_s_p9_0, - 1, -514541568, 1627103232, 4, 0, - (long *)_vq_quantlist__44c2_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c2_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c2_s_p9_1[] = { - 1, 4, 4, 6, 6, 7, 6, 8, 8,10, 9,10,10, 6, 5, 5, - 7, 7, 8, 7,10, 9,11,11,12,13, 6, 5, 5, 7, 7, 8, - 8,10,10,11,11,13,13,18, 8, 8, 8, 8, 9, 9,10,10, - 12,12,12,13,18, 8, 8, 8, 8, 9, 9,10,10,12,12,13, - 13,18,11,11, 8, 8,10,10,11,11,12,11,13,12,18,11, - 11, 9, 7,10,10,11,11,11,12,12,13,17,17,17,10,10, - 11,11,12,12,12,10,12,12,17,17,17,11,10,11,10,13, - 12,11,12,12,12,17,17,17,15,14,11,11,12,11,13,10, - 13,12,17,17,17,14,14,12,10,11,11,13,13,13,13,17, - 17,16,17,16,13,13,12,10,13,10,14,13,17,16,17,16, - 17,13,12,12,10,13,11,14,14, -}; - -static const static_codebook _44c2_s_p9_1 = { - 2, 169, - (char *)_vq_lengthlist__44c2_s_p9_1, - 1, -522616832, 1620115456, 4, 0, - (long *)_vq_quantlist__44c2_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c2_s_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c2_s_p9_2[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, - 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 8, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10, 9, 9, 9,10,11,10, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10,11,10, 8, 8, 9, 9, 9, 9, - 9, 9,10, 9, 9,10, 9,10,11,10,11,11,11, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,11,11,11,11,11, 9, 9, - 9, 9, 9, 9,10, 9, 9, 9,10,10,11,11,11,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,11,11,11,11,11, - 9, 9, 9, 9,10,10, 9, 9, 9,10,10,10,11,11,11,11, - 11,11,11, 9, 9, 9,10, 9, 9,10,10,10,10,11,11,10, - 11,11,11,11,10, 9,10,10, 9, 9, 9, 9,10,10,11,10, - 11,11,11,11,11, 9, 9, 9, 9,10, 9,10,10,10,10,11, - 10,11,11,11,11,11,10,10, 9, 9,10, 9,10,10,10,10, - 10,10,10,11,11,11,11,11,11, 9, 9,10, 9,10, 9,10, - 10, -}; - -static const static_codebook _44c2_s_p9_2 = { - 2, 289, - (char *)_vq_lengthlist__44c2_s_p9_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c2_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c2_s_short[] = { - 11, 9,13,12,12,11,12,12,13,15, 8, 2,11, 4, 8, 5, - 7,10,12,15,13, 7,10, 9, 8, 8,10,13,17,17,11, 4, - 12, 5, 9, 5, 8,11,14,16,12, 6, 8, 7, 6, 6, 8,11, - 13,16,11, 4, 9, 5, 6, 4, 6,10,13,16,11, 6,11, 7, - 7, 6, 7,10,13,15,13, 9,12, 9, 8, 6, 8,10,12,14, - 14,10,10, 8, 6, 5, 6, 9,11,13,15,11,11, 9, 6, 5, - 6, 8, 9,12, -}; - -static const static_codebook _huff_book__44c2_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c2_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c3_s_long[] = { - 5, 6,11,11,11,11,10,10,12,11, 5, 2,11, 5, 6, 6, - 7, 9,11,13,13,10, 7,11, 6, 7, 8, 9,10,12,11, 5, - 11, 6, 8, 7, 9,11,14,15,11, 6, 6, 8, 4, 5, 7, 8, - 10,13,10, 5, 7, 7, 5, 5, 6, 8,10,11,10, 7, 7, 8, - 6, 5, 5, 7, 9, 9,11, 8, 8,11, 8, 7, 6, 6, 7, 9, - 12,11,10,13, 9, 9, 7, 7, 7, 9,11,13,12,15,12,11, - 9, 8, 8, 8, -}; - -static const static_codebook _huff_book__44c3_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c3_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c3_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c3_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 6, 7, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c3_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c3_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c3_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c3_s_p2_0[] = { - 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7, - 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, - 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, - 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, - 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0, 9, - 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c3_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c3_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c3_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c3_s_p3_0[] = { - 2, 4, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c3_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44c3_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c3_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c3_s_p4_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c3_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c3_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c3_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c3_s_p5_0[] = { - 1, 3, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 7, 8, - 9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, - 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, - 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, - 11, -}; - -static const static_codebook _44c3_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44c3_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c3_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c3_s_p6_0[] = { - 2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 10, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 5, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, - 9,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,10,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 8, - 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, - 8, 9, 9,10,10,11,11,12,11,12,12, 0, 0, 0, 0, 0, - 9,10,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, - 13, -}; - -static const static_codebook _44c3_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__44c3_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c3_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c3_s_p7_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, - 10,12,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, - 11,10,10,11,10,10, 7,11,11,11,11,11,12,11,11, 6, - 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, - 10, -}; - -static const static_codebook _44c3_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__44c3_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c3_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c3_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 8, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44c3_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c3_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c3_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c3_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c3_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8, - 8, 8, 8, 9, 9,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,12, 0,13, - 13, 9, 9,10,10,10,10,11,11,12,12, 0, 0, 0,10,10, - 10,10,11,11,12,12,12,12, 0, 0, 0,10,10,10,10,11, - 11,12,12,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, - 13,13, 0, 0, 0,14,14,11,11,11,11,12,12,13,13, 0, - 0, 0, 0, 0,12,12,12,12,13,13,14,13, 0, 0, 0, 0, - 0,13,13,12,12,13,12,14,13, -}; - -static const static_codebook _44c3_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__44c3_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c3_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c3_s_p8_1[] = { - 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c3_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__44c3_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c3_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c3_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c3_s_p9_0[] = { - 1, 4, 4,12,12,12,12,12,12,12,12,12,12, 4, 9, 8, - 12,12,12,12,12,12,12,12,12,12, 2, 9, 7,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,11,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11, -}; - -static const static_codebook _44c3_s_p9_0 = { - 2, 169, - (char *)_vq_lengthlist__44c3_s_p9_0, - 1, -514332672, 1627381760, 4, 0, - (long *)_vq_quantlist__44c3_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c3_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44c3_s_p9_1[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 9,10,10,10,10, 6, - 5, 5, 7, 7, 8, 8,10, 8,11,10,12,12,13,13, 6, 5, - 5, 7, 7, 8, 8,10, 9,11,11,12,12,13,12,18, 8, 8, - 8, 8, 9, 9,10, 9,11,10,12,12,13,13,18, 8, 8, 8, - 8, 9, 9,10,10,11,11,13,12,14,13,18,11,11, 9, 9, - 10,10,11,11,11,12,13,12,13,14,18,11,11, 9, 8,11, - 10,11,11,11,11,12,12,14,13,18,18,18,10,11,10,11, - 12,12,12,12,13,12,14,13,18,18,18,10,11,11, 9,12, - 11,12,12,12,13,13,13,18,18,17,14,14,11,11,12,12, - 13,12,14,12,14,13,18,18,18,14,14,11,10,12, 9,12, - 13,13,13,13,13,18,18,17,16,18,13,13,12,12,13,11, - 14,12,14,14,17,18,18,17,18,13,12,13,10,12,11,14, - 14,14,14,17,18,18,18,18,15,16,12,12,13,10,14,12, - 14,15,18,18,18,16,17,16,14,12,11,13,10,13,13,14, - 15, -}; - -static const static_codebook _44c3_s_p9_1 = { - 2, 225, - (char *)_vq_lengthlist__44c3_s_p9_1, - 1, -522338304, 1620115456, 4, 0, - (long *)_vq_quantlist__44c3_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c3_s_p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c3_s_p9_2[] = { - 2, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, - 8,10, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9,10, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,11, 9, 9, - 9, 9, 9, 9,10,10, 9, 9,10, 9,11,10,11,11,11, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,11,11,11,11,11, - 9, 9, 9, 9,10,10, 9, 9, 9, 9,10, 9,11,11,11,11, - 11,11,11, 9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, - 11,11,11,11,10, 9,10,10, 9,10, 9, 9,10, 9,11,10, - 10,11,11,11,11, 9,10, 9, 9, 9, 9,10,10,10,10,11, - 11,11,11,11,11,10,10,10, 9, 9,10, 9,10, 9,10,10, - 10,10,11,11,11,11,11,11,11, 9, 9, 9, 9, 9,10,10, - 10, -}; - -static const static_codebook _44c3_s_p9_2 = { - 2, 289, - (char *)_vq_lengthlist__44c3_s_p9_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c3_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c3_s_short[] = { - 10, 9,13,11,14,10,12,13,13,14, 7, 2,12, 5,10, 5, - 7,10,12,14,12, 6, 9, 8, 7, 7, 9,11,13,16,10, 4, - 12, 5,10, 6, 8,12,14,16,12, 6, 8, 7, 6, 5, 7,11, - 12,16,10, 4, 8, 5, 6, 4, 6, 9,13,16,10, 6,10, 7, - 7, 6, 7, 9,13,15,12, 9,11, 9, 8, 6, 7,10,12,14, - 14,11,10, 9, 6, 5, 6, 9,11,13,15,13,11,10, 6, 5, - 6, 8, 9,11, -}; - -static const static_codebook _huff_book__44c3_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c3_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c4_s_long[] = { - 4, 7,11,11,11,11,10,11,12,11, 5, 2,11, 5, 6, 6, - 7, 9,11,12,11, 9, 6,10, 6, 7, 8, 9,10,11,11, 5, - 11, 7, 8, 8, 9,11,13,14,11, 6, 5, 8, 4, 5, 7, 8, - 10,11,10, 6, 7, 7, 5, 5, 6, 8, 9,11,10, 7, 8, 9, - 6, 6, 6, 7, 8, 9,11, 9, 9,11, 7, 7, 6, 6, 7, 9, - 12,12,10,13, 9, 8, 7, 7, 7, 8,11,13,11,14,11,10, - 9, 8, 7, 7, -}; - -static const static_codebook _huff_book__44c4_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c4_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c4_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c4_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 6, 8, 7, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c4_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c4_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c4_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c4_s_p2_0[] = { - 2, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 5, 6, 6, 0, 0, 0, 7, - 7, 0, 0, 0, 7, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 5, 6, 6, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 7, 7, 0, 0, - 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, - 7, 8, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, - 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 7, 7, - 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, - 0, 0, 7, 7, 0, 0, 0, 7, 7, 0, 0, 0, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,10,10, 0, 0, 0, 9, 9, 0, 0, 0, 9, 9, 0, 0, 0, - 10,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0, 9, - 9, 0, 0, 0, 9, 9, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c4_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c4_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c4_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c4_s_p3_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c4_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44c4_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c4_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c4_s_p4_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, - 7, 8, 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c4_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c4_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c4_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c4_s_p5_0[] = { - 2, 3, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, - 9, 9, 0, 4, 5, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10, 9, 0, 0, 0, - 9, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static const static_codebook _44c4_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44c4_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c4_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c4_s_p6_0[] = { - 2, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11, - 11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11, - 11,11, 0, 4, 4, 7, 6, 8, 8, 9, 9, 9, 9,10,10,11, - 11,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, - 9,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9, - 9,10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, - 9, 9, 9,10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,11,11,12,12,13,12, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,11,11,12,12,12,12, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,12,12,13,13,13,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13, - 13, -}; - -static const static_codebook _44c4_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__44c4_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c4_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c4_s_p7_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, - 10,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, - 11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6, - 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, - 10, -}; - -static const static_codebook _44c4_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__44c4_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c4_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c4_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 9, 8,10,10, - 10,10,10, 8, 8, 8, 8, 9, 9, -}; - -static const static_codebook _44c4_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c4_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c4_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c4_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c4_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 8, 8, 9,10,11,11, 7, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9, 9,10,10,10,10,11,11, 0,13, - 13, 9, 9,10, 9,10,10,11,11,11,12, 0, 0, 0,10,10, - 10,10,10,10,11,11,12,12, 0, 0, 0,10,10,10,10,10, - 10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, - 12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,13, 0, - 0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0, - 0,13,12,12,12,12,12,13,13, -}; - -static const static_codebook _44c4_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__44c4_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c4_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c4_s_p8_1[] = { - 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 5, 4, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c4_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__44c4_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c4_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c4_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c4_s_p9_0[] = { - 1, 3, 3,12,12,12,12,12,12,12,12,12,12, 4, 7, 7, - 12,12,12,12,12,12,12,12,12,12, 3, 8, 8,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12, -}; - -static const static_codebook _44c4_s_p9_0 = { - 2, 169, - (char *)_vq_lengthlist__44c4_s_p9_0, - 1, -513964032, 1628680192, 4, 0, - (long *)_vq_quantlist__44c4_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c4_s_p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44c4_s_p9_1[] = { - 1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,10,10, 6, - 5, 5, 7, 7, 9, 8,10, 9,11,10,12,12,13,13, 6, 5, - 5, 7, 7, 9, 9,10,10,11,11,12,12,12,13,19, 8, 8, - 8, 8, 9, 9,10,10,12,11,12,12,13,13,19, 8, 8, 8, - 8, 9, 9,11,11,12,12,13,13,13,13,19,12,12, 9, 9, - 11,11,11,11,12,11,13,12,13,13,18,12,12, 9, 9,11, - 10,11,11,12,12,12,13,13,14,19,18,18,11,11,11,11, - 12,12,13,12,13,13,14,14,16,18,18,11,11,11,10,12, - 11,13,13,13,13,13,14,17,18,18,14,15,11,12,12,13, - 13,13,13,14,14,14,18,18,18,15,15,12,10,13,10,13, - 13,13,13,13,14,18,17,18,17,18,12,13,12,13,13,13, - 14,14,16,14,18,17,18,18,17,13,12,13,10,12,12,14, - 14,14,14,17,18,18,18,18,14,15,12,12,13,12,14,14, - 15,15,18,18,18,17,18,15,14,12,11,12,12,14,14,14, - 15, -}; - -static const static_codebook _44c4_s_p9_1 = { - 2, 225, - (char *)_vq_lengthlist__44c4_s_p9_1, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__44c4_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c4_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44c4_s_p9_2[] = { - 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 9, 9,11, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10,11, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11, - 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,10,12,11,11, 7, 7, 8, 8, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,12,11,12, 8, 8, 8, 8, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10,10,10,10,10, - 10,10,10,11,11,12, 9, 9, 9, 9, 9, 9,10, 9,10,10, - 10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10,11,12,11, - 11,11, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11, 9, 9, 9, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,11,11,11,12,12,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,11,12,11,12, - 11,11,11, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,11,12,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,11,11,11,12,11,11,11,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,12,11,11,12,11, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, - 10,10,10,10,10,11,11,11,11,12,12,11,11,11,11,11, - 11,11,10,10,10,10,10,10,10,10,12,12,12,11,11,11, - 12,11,11,11,10,10,10,10,10,10,10,10,10,10,10,12, - 11,12,12,12,12,12,11,12,11,11,10,10,10,10,10,10, - 10,10,10,10,12,12,12,12,11,11,11,11,11,11,11,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44c4_s_p9_2 = { - 2, 441, - (char *)_vq_lengthlist__44c4_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44c4_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c4_s_short[] = { - 4, 7,14,10,15,10,12,15,16,15, 4, 2,11, 5,10, 6, - 8,11,14,14,14,10, 7,11, 6, 8,10,11,13,15, 9, 4, - 11, 5, 9, 6, 9,12,14,15,14, 9, 6, 9, 4, 5, 7,10, - 12,13, 9, 5, 7, 6, 5, 5, 7,10,13,13,10, 8, 9, 8, - 7, 6, 8,10,14,14,13,11,10,10, 7, 7, 8,11,14,15, - 13,12, 9, 9, 6, 5, 7,10,14,17,15,13,11,10, 6, 6, - 7, 9,12,17, -}; - -static const static_codebook _huff_book__44c4_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c4_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c5_s_long[] = { - 3, 8, 9,13,10,12,12,12,12,12, 6, 4, 6, 8, 6, 8, - 10,10,11,12, 8, 5, 4,10, 4, 7, 8, 9,10,11,13, 8, - 10, 8, 9, 9,11,12,13,14,10, 6, 4, 9, 3, 5, 6, 8, - 10,11,11, 8, 6, 9, 5, 5, 6, 7, 9,11,12, 9, 7,11, - 6, 6, 6, 7, 8,10,12,11, 9,12, 7, 7, 6, 6, 7, 9, - 13,12,10,13, 9, 8, 7, 7, 7, 8,11,15,11,15,11,10, - 9, 8, 7, 7, -}; - -static const static_codebook _huff_book__44c5_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c5_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c5_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c5_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 4, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c5_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c5_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c5_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c5_s_p2_0[] = { - 2, 4, 4, 0, 0, 0, 5, 5, 0, 0, 0, 5, 5, 0, 0, 0, - 8, 7, 0, 0, 0, 0, 0, 0, 0, 4, 6, 6, 0, 0, 0, 8, - 8, 0, 0, 0, 8, 7, 0, 0, 0,10,10, 0, 0, 0, 0, 0, - 0, 0, 4, 6, 6, 0, 0, 0, 8, 8, 0, 0, 0, 7, 8, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 8, 8, 0, 0, - 0, 8, 8, 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, - 7, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10, - 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0, 8, 8, - 0, 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, - 0, 0, 8, 8, 0, 0, 0, 8, 8, 0, 0, 0,10,10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8,10,10, 0, 0, 0,10,10, 0, 0, 0, 9,10, 0, 0, 0, - 11,10, 0, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, 0,10, - 10, 0, 0, 0,10,10, 0, 0, 0,10,11, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c5_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c5_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c5_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c5_s_p3_0[] = { - 2, 4, 3, 5, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 5, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c5_s_p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44c5_s_p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c5_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c5_s_p4_0[] = { - 2, 3, 3, 6, 6, 0, 0, 0, 0, 0, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 4, 4, 6, 6, 0, 0, 0, 0, 0, 5, 5, 6, 6, - 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, - 7, 7, 0, 0, 0, 0, 0, 0, 0, 8, 7, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c5_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c5_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c5_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c5_s_p5_0[] = { - 2, 4, 3, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, - 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, - 7, 7, 9, 9, 0, 0, 0, 7, 6, 7, 7, 9, 9, 0, 0, 0, - 8, 8, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0, 9, 9, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static const static_codebook _44c5_s_p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44c5_s_p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c5_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p6_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c5_s_p6_0[] = { - 2, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10,11, - 11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10,10, - 11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 9,10,10,10, - 10,11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10, - 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, - 10,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, - 9, 9,10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,11,12,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,11,11,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,12,13,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,12,12,13,13, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,12,13,13,13,13, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13, - 13, -}; - -static const static_codebook _44c5_s_p6_0 = { - 2, 289, - (char *)_vq_lengthlist__44c5_s_p6_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c5_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c5_s_p7_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, - 10,11,11,11, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, - 11,10,10,11,10,10, 7,11,11,12,11,11,12,11,11, 6, - 9, 9,11,10,10,11,10,10, 6, 9, 9,11,10,10,11,10, - 10, -}; - -static const static_codebook _44c5_s_p7_0 = { - 4, 81, - (char *)_vq_lengthlist__44c5_s_p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c5_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c5_s_p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 9,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44c5_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c5_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c5_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c5_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c5_s_p8_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 8, 9,10,10,10,10, 7, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9,10,10,10,10,10,11,11, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10, - 10,10,10,10,11,11,11,11, 0, 0, 0,10,10,10,10,10, - 10,11,11,12,12, 0, 0, 0,14,14,11,11,11,11,12,12, - 12,12, 0, 0, 0,14,14,11,11,11,11,12,12,12,12, 0, - 0, 0, 0, 0,12,12,12,12,12,12,13,13, 0, 0, 0, 0, - 0,12,12,12,12,12,12,13,13, -}; - -static const static_codebook _44c5_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__44c5_s_p8_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c5_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p8_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c5_s_p8_1[] = { - 2, 4, 4, 5, 5, 6, 5, 5, 5, 5, 6, 4, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c5_s_p8_1 = { - 2, 25, - (char *)_vq_lengthlist__44c5_s_p8_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c5_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c5_s_p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44c5_s_p9_0[] = { - 1, 3, 3,13,13,13,13,13,13,13,13,13,13,13,13, 4, - 7, 7,13,13,13,13,13,13,13,13,13,13,13,13, 3, 8, - 6,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,12,12,12,12,12,12,12, - 12, -}; - -static const static_codebook _44c5_s_p9_0 = { - 2, 225, - (char *)_vq_lengthlist__44c5_s_p9_0, - 1, -512522752, 1628852224, 4, 0, - (long *)_vq_quantlist__44c5_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c5_s_p9_1[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c5_s_p9_1[] = { - 1, 4, 4, 5, 5, 7, 7, 9, 8,10, 9,10,10,11,10,11, - 11, 6, 5, 5, 7, 7, 8, 9,10,10,11,10,12,11,12,11, - 13,12, 6, 5, 5, 7, 7, 9, 9,10,10,11,11,12,12,13, - 12,13,13,18, 8, 8, 8, 8, 9, 9,10,11,11,11,12,11, - 13,11,13,12,18, 8, 8, 8, 8,10,10,11,11,12,12,13, - 13,13,13,13,14,18,12,12, 9, 9,11,11,11,11,12,12, - 13,12,13,12,13,13,20,13,12, 9, 9,11,11,11,11,12, - 12,13,13,13,14,14,13,20,18,19,11,12,11,11,12,12, - 13,13,13,13,13,13,14,13,18,19,19,12,11,11,11,12, - 12,13,12,13,13,13,14,14,13,18,17,19,14,15,12,12, - 12,13,13,13,14,14,14,14,14,14,19,19,19,16,15,12, - 11,13,12,14,14,14,13,13,14,14,14,19,18,19,18,19, - 13,13,13,13,14,14,14,13,14,14,14,14,18,17,19,19, - 19,13,13,13,11,13,11,13,14,14,14,14,14,19,17,17, - 18,18,16,16,13,13,13,13,14,13,15,15,14,14,19,19, - 17,17,18,16,16,13,11,14,10,13,12,14,14,14,14,19, - 19,19,19,19,18,17,13,14,13,11,14,13,14,14,15,15, - 19,19,19,17,19,18,18,14,13,12,11,14,11,15,15,15, - 15, -}; - -static const static_codebook _44c5_s_p9_1 = { - 2, 289, - (char *)_vq_lengthlist__44c5_s_p9_1, - 1, -520814592, 1620377600, 5, 0, - (long *)_vq_quantlist__44c5_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c5_s_p9_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44c5_s_p9_2[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 9,11, 5, 6, 7, 7, 8, 7, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, 5, 5, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10, 9,10,11,11,11, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10,10,10,10,10,10,11,11,11, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10,10,10,10, - 10,10,10,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,11,11,11,11,11, 9, 9, 9, - 9, 9, 9,10, 9,10,10,10,10,10,10,10,10,11,11,11, - 11,11, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10, - 10,10,11,11,11,11,11, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,10,10,10,10,11,11,11,11,11, 9, 9,10, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11, - 11,11,11, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,11,11,11,11,11,11,11,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, - 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,11, - 11,11,11,11,11,11,11,11,10,10,10,10,10,10,10,10, - 10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44c5_s_p9_2 = { - 2, 441, - (char *)_vq_lengthlist__44c5_s_p9_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44c5_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c5_s_short[] = { - 5, 8,10,14,11,11,12,16,15,17, 5, 5, 7, 9, 7, 8, - 10,13,17,17, 7, 5, 5,10, 5, 7, 8,11,13,15,10, 8, - 10, 8, 8, 8,11,15,18,18, 8, 5, 5, 8, 3, 4, 6,10, - 14,16, 9, 7, 6, 7, 4, 3, 5, 9,14,18,10, 9, 8,10, - 6, 5, 6, 9,14,18,12,12,11,12, 8, 7, 8,11,14,18, - 14,13,12,10, 7, 5, 6, 9,14,18,14,14,13,10, 6, 5, - 6, 8,11,16, -}; - -static const static_codebook _huff_book__44c5_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c5_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c6_s_long[] = { - 3, 8,11,13,14,14,13,13,16,14, 6, 3, 4, 7, 9, 9, - 10,11,14,13,10, 4, 3, 5, 7, 7, 9,10,13,15,12, 7, - 4, 4, 6, 6, 8,10,13,15,12, 8, 6, 6, 6, 6, 8,10, - 13,14,11, 9, 7, 6, 6, 6, 7, 8,12,11,13,10, 9, 8, - 7, 6, 6, 7,11,11,13,11,10, 9, 9, 7, 7, 6,10,11, - 13,13,13,13,13,11, 9, 8,10,12,12,15,15,16,15,12, - 11,10,10,12, -}; - -static const static_codebook _huff_book__44c6_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c6_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c6_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c6_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0, - 9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, - 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 9, 9, 0, 8, 8, 0, 8, 8, 5, 9, 9, 0, 8, 8, 0, 8, - 8, -}; -static const static_codebook _44c6_s_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44c6_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c6_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c6_s_p2_0[] = { - 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, - 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, - 8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, - 11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9, - 10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,11, - 0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0, - 0, 0,14,13, 8, 9, 9,11,11, 0,11,11,12,12, 0,10, - 11,12,12, 0,14,13,14,14, 0, 0, 0,13,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, - 0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5, - 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, - 9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10, - 12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, - 13, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,12,12, - 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7, - 10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,11, - 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,11, - 0, 0, 0,10,11, 8,10,10,12,12, 0,10,10,12,12, 0, - 10,10,12,12, 0,12,13,13,13, 0, 0, 0,14,13, 8,10, - 10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12, - 13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,10,10,14,13, 0, 9, 9,13,12, 0, 9, 9,12,12, 0, - 10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9, - 9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, - 12,12, 9,11,11,14,13, 0,11,10,14,13, 0,11,11,13, - 13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14, - 0,10,11,13,14, 0,11,11,13,13, 0,12,12,13,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 11,11,14,14, 0,11,11,13,13, 0,11,10,13,13, 0,12, - 12,13,13, 0, 0, 0,13,13, 9,11,11,14,14, 0,11,11, - 13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13, - 13, -}; - -static const static_codebook _44c6_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c6_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c6_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c6_s_p3_0[] = { - 2, 3, 4, 6, 6, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, - 9,10, 0, 4, 4, 6, 6, 7, 7,10, 9, 0, 5, 5, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 6, 8, 8,10,10, 0, 0, 0, - 7, 7, 9, 9,11,11, 0, 0, 0, 7, 7, 9, 9,11,11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c6_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c6_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c6_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c6_s_p4_0[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9,10,10, - 10, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 4, 4, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11, 0, 0, 0, 7, 7, 9, 9,10,10,10,10, - 11,11,11,11,12,12, 0, 0, 0, 7, 7, 9, 9,10,10,10, - 10,11,11,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c6_s_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__44c6_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c6_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c6_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 6, 9, 9,10,10, - 10, 9, 4, 6, 6, 9,10, 9,10, 9,10, 6, 9, 9,10,12, - 11,10,11,11, 7,10, 9,11,12,12,12,12,12, 7,10,10, - 11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7, - 9,10,11,12,12,12,12,12, 7,10, 9,12,12,12,12,12, - 12, -}; - -static const static_codebook _44c6_s_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__44c6_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c6_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c6_s_p5_1[] = { - 3, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, - 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, 7, 7, 8, 8, 8, - 8,11, 6, 6, 6, 6, 8, 8, 8, 8, 9, 9,11,11,11, 6, - 6, 7, 8, 8, 8, 8, 9,11,11,11, 7, 7, 8, 8, 8, 8, - 8, 8,11,11,11, 7, 7, 8, 8, 8, 8, 8, 8,11,11,11, - 8, 8, 8, 8, 8, 8, 8, 8,11,11,11,10,10, 8, 8, 8, - 8, 8, 8,11,11,11,10,10, 8, 8, 8, 8, 8, 8,11,11, - 11,10,10, 7, 7, 8, 8, 8, 8, -}; - -static const static_codebook _44c6_s_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__44c6_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c6_s_p5_1, - 0 -}; - -static const long _vq_quantlist__44c6_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c6_s_p6_0[] = { - 1, 4, 4, 6, 6, 8, 8, 8, 8,10, 9,10,10, 6, 5, 5, - 7, 7, 9, 9, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 9, - 9,10, 9,11,10,11,11, 0, 6, 6, 7, 7, 9, 9,10,10, - 11,11,12,12, 0, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12, 0,11,11, 8, 8,10,10,11,11,12,12,12,12, 0,11, - 12, 9, 8,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const static_codebook _44c6_s_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44c6_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c6_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c6_s_p6_1[] = { - 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c6_s_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44c6_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c6_s_p6_1, - 0 -}; - -static const long _vq_quantlist__44c6_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c6_s_p7_0[] = { - 1, 4, 4, 6, 6, 8, 8, 8, 8,10,10,11,10, 6, 5, 5, - 7, 7, 8, 8, 9, 9,10,10,12,11, 6, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,12,11,21, 7, 7, 7, 7, 9, 9,10,10, - 11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,11,11,12, - 12,21,12,12, 9, 9,10,10,11,11,11,11,12,12,21,12, - 12, 9, 9,10,10,11,11,12,12,12,12,21,21,21,11,11, - 10,10,11,12,12,12,13,13,21,21,21,11,11,10,10,12, - 12,12,12,13,13,21,21,21,15,15,11,11,12,12,13,13, - 13,13,21,21,21,15,16,11,11,12,12,13,13,14,14,21, - 21,21,21,20,13,13,13,13,13,13,14,14,20,20,20,20, - 20,13,13,13,13,13,13,14,14, -}; - -static const static_codebook _44c6_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c6_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__44c6_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c6_s_p7_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 9, 5, 5, 6, 6, - 7, 7, 7, 7, 8, 7, 8, 5, 5, 6, 6, 7, 7, 7, 7, 7, - 7, 9, 6, 6, 7, 7, 7, 7, 8, 7, 7, 8, 9, 9, 9, 7, - 7, 7, 7, 7, 7, 7, 8, 9, 9, 9, 7, 7, 7, 7, 8, 8, - 8, 8, 9, 9, 9, 7, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, - 8, 8, 8, 8, 7, 7, 8, 8, 9, 9, 9, 9, 8, 8, 8, 7, - 7, 8, 8, 9, 9, 9, 8, 8, 8, 8, 7, 7, 8, 8, 9, 9, - 9, 8, 8, 7, 7, 7, 7, 8, 8, -}; - -static const static_codebook _44c6_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c6_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c6_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c6_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44c6_s_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 7, 7, 8, 7, 9, 8,10, 9, 6, - 5, 5, 8, 8, 9, 9, 8, 8, 9, 9,11,10,11,10, 6, 5, - 5, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11,11,18, 8, 8, - 9, 8,10,10, 9, 9,10,10,10,10,11,10,18, 8, 8, 9, - 9,10,10, 9, 9,10,10,11,11,12,12,18,12,13, 9,10, - 10,10, 9,10,10,10,11,11,12,11,18,13,13, 9, 9,10, - 10,10,10,10,10,11,11,12,12,18,18,18,10,10, 9, 9, - 11,11,11,11,11,12,12,12,18,18,18,10, 9,10, 9,11, - 10,11,11,11,11,13,12,18,18,18,14,13,10,10,11,11, - 12,12,12,12,12,12,18,18,18,14,13,10,10,11,10,12, - 12,12,12,12,12,18,18,18,18,18,12,12,11,11,12,12, - 13,13,13,14,18,18,18,18,18,12,12,11,11,12,11,13, - 13,14,13,18,18,18,18,18,16,16,11,12,12,13,13,13, - 14,13,18,18,18,18,18,16,15,12,11,12,11,13,11,15, - 14, -}; - -static const static_codebook _44c6_s_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__44c6_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__44c6_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44c6_s_p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 8, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, - 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,11,11, 8, 7, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11, - 11, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11, - 11,11, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9,10, 9, 9, - 10, 9,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9,10,10, - 10,10, 9,10,10, 9,10,11,11,11,11,11, 9, 9, 9, 9, - 10,10,10, 9,10,10,10,10, 9,10,10, 9,11,11,11,11, - 11,11,11, 9, 9, 9, 9,10,10,10,10, 9,10,10,10,10, - 10,11,11,11,11,11,11,11,10, 9,10,10,10,10,10,10, - 10, 9,10, 9,10,10,11,11,11,11,11,11,11,10, 9,10, - 9,10,10, 9,10,10,10,10,10,10,10,11,11,11,11,11, - 11,11,10,10,10,10,10,10,10, 9,10,10,10,10,10, 9, - 11,11,11,11,11,11,11,11,11,10,10,10,10,10,10,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,11,10,10, - 10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11, - 11,11,11,10,10,10,10,10,10,10,10,10, 9,10,10,11, - 11,11,11,11,11,11,11,11,10,10,10, 9,10,10,10,10, - 10,10,10,10,10,11,11,11,11,11,11,11,11,10,11, 9, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44c6_s_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__44c6_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44c6_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c6_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c6_s_p9_0[] = { - 1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 7, 7, - 11,11,11,11,11,11,11,11,11,11, 5, 8, 9,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44c6_s_p9_0 = { - 2, 169, - (char *)_vq_lengthlist__44c6_s_p9_0, - 1, -511845376, 1630791680, 4, 0, - (long *)_vq_quantlist__44c6_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c6_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c6_s_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6, - 8, 8, 8, 8, 8, 7, 9, 8,10,10, 5, 6, 6, 8, 8, 9, - 9, 8, 8,10,10,10,10,16, 9, 9, 9, 9, 9, 9, 9, 8, - 10, 9,11,11,16, 8, 9, 9, 9, 9, 9, 9, 9,10,10,11, - 11,16,13,13, 9, 9,10, 9, 9,10,11,11,11,12,16,13, - 14, 9, 8,10, 8, 9, 9,10,10,12,11,16,14,16, 9, 9, - 9, 9,11,11,12,11,12,11,16,16,16, 9, 7, 9, 6,11, - 11,11,10,11,11,16,16,16,11,12, 9,10,11,11,12,11, - 13,13,16,16,16,12,11,10, 7,12,10,12,12,12,12,16, - 16,15,16,16,10,11,10,11,13,13,14,12,16,16,16,15, - 15,12,10,11,11,13,11,12,13, -}; - -static const static_codebook _44c6_s_p9_1 = { - 2, 169, - (char *)_vq_lengthlist__44c6_s_p9_1, - 1, -518889472, 1622704128, 4, 0, - (long *)_vq_quantlist__44c6_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c6_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__44c6_s_p9_2[] = { - 2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _44c6_s_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__44c6_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__44c6_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c6_s_short[] = { - 3, 9,11,11,13,14,19,17,17,19, 5, 4, 5, 8,10,10, - 13,16,18,19, 7, 4, 4, 5, 8, 9,12,14,17,19, 8, 6, - 5, 5, 7, 7,10,13,16,18,10, 8, 7, 6, 5, 5, 8,11, - 17,19,11, 9, 7, 7, 5, 4, 5, 8,17,19,13,11, 8, 7, - 7, 5, 5, 7,16,18,14,13, 8, 6, 6, 5, 5, 7,16,18, - 18,16,10, 8, 8, 7, 7, 9,16,18,18,18,12,10,10, 9, - 9,10,17,18, -}; - -static const static_codebook _huff_book__44c6_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c6_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c7_s_long[] = { - 3, 8,11,13,15,14,14,13,15,14, 6, 4, 5, 7, 9,10, - 11,11,14,13,10, 4, 3, 5, 7, 8, 9,10,13,13,12, 7, - 4, 4, 5, 6, 8, 9,12,14,13, 9, 6, 5, 5, 6, 8, 9, - 12,14,12, 9, 7, 6, 5, 5, 6, 8,11,11,12,11, 9, 8, - 7, 6, 6, 7,10,11,13,11,10, 9, 8, 7, 6, 6, 9,11, - 13,13,12,12,12,10, 9, 8, 9,11,12,14,15,15,14,12, - 11,10,10,12, -}; - -static const static_codebook _huff_book__44c7_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c7_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c7_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c7_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 8, 7, 0, 9, 9, 0, - 9, 8, 5, 7, 8, 0, 9, 9, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9, - 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 9, 9, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, - 8, -}; - -static const static_codebook _44c7_s_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44c7_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c7_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c7_s_p2_0[] = { - 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, - 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, - 8,10,10, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, - 11,11, 5, 7, 7, 9, 9, 0, 8, 8,10,10, 0, 7, 8, 9, - 10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, - 0,11,11,12,12, 0,11,10,12,12, 0,13,14,14,14, 0, - 0, 0,14,13, 8, 9, 9,10,11, 0,11,11,12,12, 0,10, - 11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, - 0, 7, 7,10,10, 0, 9, 9,11,10, 0, 0, 0,11,11, 5, - 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, - 9,10,11, 0, 0, 0,11,11, 8,10, 9,12,12, 0,10,10, - 12,12, 0,10,10,12,12, 0,12,12,13,13, 0, 0, 0,13, - 13, 8, 9,10,12,12, 0,10,10,12,12, 0,10,10,11,12, - 0,12,12,13,13, 0, 0, 0,13,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 8,11,11, 0, 7, 7,10,10, 0, 7, 7, - 10,10, 0, 9, 9,10,11, 0, 0, 0,11,10, 5, 8, 8,10, - 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,11,10, - 0, 0, 0,10,11, 9,10,10,12,12, 0,10,10,12,12, 0, - 10,10,12,12, 0,12,13,13,13, 0, 0, 0,13,12, 9,10, - 10,12,12, 0,10,10,12,12, 0,10,10,12,12, 0,13,12, - 13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,10,10,14,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0, - 10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,14, 0, 9, - 9,12,13, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, - 12,12, 9,11,11,14,13, 0,11,10,13,12, 0,11,11,13, - 13, 0,12,12,13,13, 0, 0, 0,13,13, 9,11,11,13,14, - 0,10,11,12,13, 0,11,11,13,13, 0,12,12,13,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,12, - 12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10, - 13,13, 0,10,11,13,13, 0,12,12,14,13, 0, 0, 0,13, - 13, -}; - -static const static_codebook _44c7_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c7_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c7_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c7_s_p3_0[] = { - 2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, - 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, - 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, - 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c7_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c7_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c7_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c7_s_p4_0[] = { - 3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11, - 12,12, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11,12,12, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10, - 11,12,12,12, 0, 0, 0, 6, 6, 8, 7, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12,13,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, - 10,11,11,12,12,12,13, 0, 0, 0, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c7_s_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__44c7_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c7_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c7_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 6, 7,10,10,10,10, - 10, 9, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11, - 12,10,11,12, 7,10,10,11,12,12,12,12,12, 7,10,10, - 11,12,12,12,12,12, 6,10,10,10,12,12,11,12,12, 7, - 10,10,12,12,12,12,11,12, 7,10,10,11,12,12,12,12, - 12, -}; - -static const static_codebook _44c7_s_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__44c7_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c7_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c7_s_p5_1[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 4, 6, 6, - 7, 7, 8, 8, 9, 9,11, 4, 4, 6, 6, 7, 7, 8, 8, 9, - 9,12, 5, 5, 6, 6, 7, 7, 9, 9, 9, 9,12,12,12, 6, - 6, 7, 7, 9, 9, 9, 9,11,11,11, 7, 7, 7, 7, 8, 8, - 9, 9,11,11,11, 7, 7, 7, 7, 8, 8, 9, 9,11,11,11, - 7, 7, 8, 8, 8, 8, 9, 9,11,11,11,11,11, 8, 8, 8, - 8, 8, 9,11,11,11,11,11, 8, 8, 8, 8, 8, 8,11,11, - 11,11,11, 7, 7, 8, 8, 8, 8, -}; - -static const static_codebook _44c7_s_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__44c7_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c7_s_p5_1, - 0 -}; - -static const long _vq_quantlist__44c7_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c7_s_p6_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 7, 9, 8,10,10, 6, 5, 5, - 7, 7, 8, 8, 9, 9, 9,10,11,11, 7, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 8, 9, 9, - 10,10,11,11, 0, 8, 8, 7, 7, 8, 9, 9, 9,10,10,11, - 11, 0,11,11, 9, 9,10,10,11,10,11,11,12,12, 0,12, - 12, 9, 9,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const static_codebook _44c7_s_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44c7_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c7_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c7_s_p6_1[] = { - 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c7_s_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44c7_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c7_s_p6_1, - 0 -}; - -static const long _vq_quantlist__44c7_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c7_s_p7_0[] = { - 1, 4, 4, 6, 6, 7, 8, 9, 9,10,10,12,11, 6, 5, 5, - 7, 7, 8, 8, 9,10,11,11,12,12, 7, 5, 5, 7, 7, 8, - 8,10,10,11,11,12,12,20, 7, 7, 7, 7, 8, 9,10,10, - 11,11,12,13,20, 7, 7, 7, 7, 9, 9,10,10,11,12,13, - 13,20,11,11, 8, 8, 9, 9,11,11,12,12,13,13,20,11, - 11, 8, 8, 9, 9,11,11,12,12,13,13,20,20,20,10,10, - 10,10,12,12,13,13,13,13,20,20,20,10,10,10,10,12, - 12,13,13,13,14,20,20,20,14,14,11,11,12,12,13,13, - 14,14,20,20,20,14,14,11,11,12,12,13,13,14,14,20, - 20,20,20,19,13,13,13,13,14,14,15,14,19,19,19,19, - 19,13,13,13,13,14,14,15,15, -}; - -static const static_codebook _44c7_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c7_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__44c7_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c7_s_p7_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7, 7, 7, 7, 7, 7, - 7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 8, 7, 7, 7, 7, 7, 7, -}; - -static const static_codebook _44c7_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c7_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c7_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c7_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44c7_s_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8, 9, 9,10,10, 6, - 5, 5, 7, 7, 9, 9, 8, 8,10, 9,11,10,12,11, 6, 5, - 5, 8, 7, 9, 9, 8, 8,10,10,11,11,12,11,19, 8, 8, - 8, 8,10,10, 9, 9,10,10,11,11,12,11,19, 8, 8, 8, - 8,10,10, 9, 9,10,10,11,11,12,12,19,12,12, 9, 9, - 10,10, 9,10,10,10,11,11,12,12,19,12,12, 9, 9,10, - 10,10,10,10,10,12,12,12,12,19,19,19, 9, 9, 9, 9, - 11,10,11,11,12,11,13,13,19,19,19, 9, 9, 9, 9,11, - 10,11,11,11,12,13,13,19,19,19,13,13,10,10,11,11, - 12,12,12,12,13,12,19,19,19,14,13,10,10,11,11,12, - 12,12,13,13,13,19,19,19,19,19,12,12,12,11,12,13, - 14,13,13,13,19,19,19,19,19,12,12,12,11,12,12,13, - 14,13,14,19,19,19,19,19,16,16,12,13,12,13,13,14, - 15,14,19,18,18,18,18,16,15,12,11,12,11,14,12,14, - 14, -}; - -static const static_codebook _44c7_s_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__44c7_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__44c7_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44c7_s_p8_1[] = { - 3, 5, 5, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,11,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9, 9,10, 9, 9,10,11,10, - 11,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,10, 9, 9, - 9, 9,11,10,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, - 10, 9, 9,10, 9, 9,10,11,10,10,11,10, 9, 9, 9, 9, - 9,10,10, 9,10,10,10,10, 9,10,10,10,10,10,10,11, - 11,11,10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, - 10,10,10,11,11,10,10,10,10,10,10,10,10,10,10,10, - 10, 9,10,10, 9,10,11,11,10,11,10,11,10, 9,10,10, - 9,10,10,10,10,10,10,10,10,10,10,11,11,11,11,10, - 11,11,10,10,10,10,10,10, 9,10, 9,10,10, 9,10, 9, - 10,10,10,11,10,11,10,11,11,10,10,10,10,10,10, 9, - 10,10,10,10,10,10,10,11,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,11,10,11, - 11,10,10,10,10, 9, 9,10,10, 9, 9,10, 9,10,10,10, - 10,11,11,10,10,10,10,10,10,10, 9, 9,10,10,10, 9, - 9,10,10,10,10,10,11,10,11,10,10,10,10,10,10, 9, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44c7_s_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__44c7_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44c7_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c7_s_p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c7_s_p9_0[] = { - 1, 3, 3,11,11,11,11,11,11,11,11,11,11, 4, 6, 6, - 11,11,11,11,11,11,11,11,11,11, 4, 7, 7,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11, -}; - -static const static_codebook _44c7_s_p9_0 = { - 2, 169, - (char *)_vq_lengthlist__44c7_s_p9_0, - 1, -511845376, 1630791680, 4, 0, - (long *)_vq_quantlist__44c7_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c7_s_p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c7_s_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 6, 8, 8, 8, 8, 6, 6, 6, - 8, 8, 9, 8, 8, 7, 9, 8,11,10, 5, 6, 6, 8, 8, 9, - 8, 8, 8,10, 9,11,11,16, 8, 8, 9, 8, 9, 9, 9, 8, - 10, 9,11,10,16, 8, 8, 9, 9,10,10, 9, 9,10,10,11, - 11,16,13,13, 9, 9,10,10, 9,10,11,11,12,11,16,13, - 13, 9, 8,10, 9,10,10,10,10,11,11,16,14,16, 8, 9, - 9, 9,11,10,11,11,12,11,16,16,16, 9, 7,10, 7,11, - 10,11,11,12,11,16,16,16,12,12, 9,10,11,11,12,11, - 12,12,16,16,16,12,10,10, 7,11, 8,12,11,12,12,16, - 16,15,16,16,11,12,10,10,12,11,12,12,16,16,16,15, - 15,11,11,10,10,12,12,12,12, -}; - -static const static_codebook _44c7_s_p9_1 = { - 2, 169, - (char *)_vq_lengthlist__44c7_s_p9_1, - 1, -518889472, 1622704128, 4, 0, - (long *)_vq_quantlist__44c7_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c7_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__44c7_s_p9_2[] = { - 2, 4, 3, 4, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _44c7_s_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__44c7_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__44c7_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c7_s_short[] = { - 4,11,12,14,15,15,17,17,18,18, 5, 6, 6, 8, 9,10, - 13,17,18,19, 7, 5, 4, 6, 8, 9,11,15,19,19, 8, 6, - 5, 5, 6, 7,11,14,16,17, 9, 7, 7, 6, 7, 7,10,13, - 15,19,10, 8, 7, 6, 7, 6, 7, 9,14,16,12,10, 9, 7, - 7, 6, 4, 5,10,15,14,13,11, 7, 6, 6, 4, 2, 7,13, - 16,16,15, 9, 8, 8, 8, 6, 9,13,19,19,17,12,11,10, - 10, 9,11,14, -}; - -static const static_codebook _huff_book__44c7_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c7_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c8_s_long[] = { - 3, 8,12,13,14,14,14,13,14,14, 6, 4, 5, 8,10,10, - 11,11,14,13, 9, 5, 4, 5, 7, 8, 9,10,13,13,12, 7, - 5, 4, 5, 6, 8, 9,12,13,13, 9, 6, 5, 5, 5, 7, 9, - 11,14,12,10, 7, 6, 5, 4, 6, 7,10,11,12,11, 9, 8, - 7, 5, 5, 6,10,10,13,12,10, 9, 8, 6, 6, 5, 8,10, - 14,13,12,12,11,10, 9, 7, 8,10,12,13,14,14,13,12, - 11, 9, 9,10, -}; - -static const static_codebook _huff_book__44c8_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c8_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c8_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c8_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 5, 7, 7, 0, 9, 8, 0, - 9, 8, 6, 7, 7, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, - 0, 8, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 9, 8, 0, 8, 8, 0, 8, 8, 5, 8, 9, 0, 8, 8, 0, 8, - 8, -}; - -static const static_codebook _44c8_s_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44c8_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c8_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c8_s_p2_0[] = { - 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, - 7, 7, 9, 9, 0, 0, 0, 9, 9, 5, 7, 7, 9, 9, 0, 8, - 7,10, 9, 0, 8, 7,10, 9, 0,10,10,11,11, 0, 0, 0, - 11,11, 5, 7, 7, 9, 9, 0, 7, 8, 9,10, 0, 7, 8, 9, - 10, 0,10,10,11,11, 0, 0, 0,11,11, 8, 9, 9,11,10, - 0,11,10,12,11, 0,11,10,12,12, 0,13,13,14,14, 0, - 0, 0,14,13, 8, 9, 9,10,11, 0,10,11,12,12, 0,10, - 11,12,12, 0,13,13,14,14, 0, 0, 0,13,14, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 5, 8, 7,11,10, 0, 7, 7,10,10, - 0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,11,10, 5, - 7, 8,10,11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, - 9,10,10, 0, 0, 0,10,10, 8,10, 9,12,12, 0,10,10, - 12,11, 0,10,10,12,12, 0,12,12,13,12, 0, 0, 0,13, - 12, 8, 9,10,12,12, 0,10,10,11,12, 0,10,10,11,12, - 0,12,12,13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 7,11,10, 0, 7, 7,10,10, 0, 7, 7, - 10,10, 0, 9, 9,10,11, 0, 0, 0,10,10, 6, 7, 8,10, - 11, 0, 7, 7,10,10, 0, 7, 7,10,10, 0, 9, 9,10,10, - 0, 0, 0,10,10, 9,10, 9,12,12, 0,10,10,12,12, 0, - 10,10,12,11, 0,12,12,13,13, 0, 0, 0,13,12, 8, 9, - 10,12,12, 0,10,10,12,12, 0,10,10,11,12, 0,12,12, - 13,13, 0, 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,10,10,13,13, 0, 9, 9,12,12, 0, 9, 9,12,12, 0, - 10,10,12,12, 0, 0, 0,12,12, 7,10,10,13,13, 0, 9, - 9,12,12, 0, 9, 9,12,12, 0,10,10,12,12, 0, 0, 0, - 12,12, 9,11,11,14,13, 0,10,10,13,12, 0,11,10,13, - 12, 0,12,12,13,12, 0, 0, 0,13,13, 9,11,11,13,14, - 0,10,11,12,13, 0,10,11,13,13, 0,12,12,12,13, 0, - 0, 0,13,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 11,11,14,14, 0,10,11,13,13, 0,11,10,13,13, 0,11, - 12,13,13, 0, 0, 0,13,12, 9,11,11,14,14, 0,11,10, - 13,13, 0,10,11,13,13, 0,12,12,13,13, 0, 0, 0,12, - 13, -}; - -static const static_codebook _44c8_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c8_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c8_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c8_s_p3_0[] = { - 2, 4, 4, 5, 5, 7, 7, 9, 9, 0, 4, 4, 6, 6, 7, 7, - 9, 9, 0, 4, 4, 6, 6, 7, 7, 9, 9, 0, 5, 5, 6, 6, - 8, 8,10,10, 0, 0, 0, 6, 6, 8, 8,10,10, 0, 0, 0, - 7, 7, 9, 9,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c8_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c8_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c8_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c8_s_p4_0[] = { - 3, 4, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 8,10,10,11,11, - 11,11, 0, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11,11,11, 0, 6, 5, 6, 6, 7, 7, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 6, 6, 7, 7, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10, - 11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10, - 10,11,11,11,12,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c8_s_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__44c8_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c8_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c8_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6,10,10,10,10, - 10,10, 4, 6, 6,10,10,10,10, 9,10, 5,10,10, 9,11, - 11,10,11,11, 7,10,10,11,12,12,12,12,12, 7,10,10, - 11,12,12,12,12,12, 6,10,10,10,12,12,10,12,12, 7, - 10,10,11,12,12,12,12,12, 7,10,10,11,12,12,12,12, - 12, -}; - -static const static_codebook _44c8_s_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__44c8_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c8_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c8_s_p5_1[] = { - 3, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11, 4, 5, 6, 6, - 7, 7, 8, 8, 8, 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 9,12, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,12,12,12, 6, - 6, 7, 7, 8, 8, 9, 9,11,11,11, 6, 6, 7, 7, 8, 8, - 8, 8,11,11,11, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, - 7, 7, 7, 8, 8, 8, 8, 8,11,11,11,11,11, 7, 7, 8, - 8, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 8, 8,11,11, - 11,11,11, 7, 7, 7, 7, 8, 8, -}; - -static const static_codebook _44c8_s_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__44c8_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c8_s_p5_1, - 0 -}; - -static const long _vq_quantlist__44c8_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c8_s_p6_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 9, 9,10,10,11,11, 6, 5, 5, 7, 7, 8, - 8, 9, 9,10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10, - 10,10,11,11, 0, 7, 7, 7, 7, 9, 9,10,10,10,10,11, - 11, 0,11,11, 9, 9,10,10,11,11,11,11,12,12, 0,12, - 12, 9, 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const static_codebook _44c8_s_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44c8_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c8_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c8_s_p6_1[] = { - 3, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c8_s_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44c8_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c8_s_p6_1, - 0 -}; - -static const long _vq_quantlist__44c8_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c8_s_p7_0[] = { - 1, 4, 4, 6, 6, 8, 7, 9, 9,10,10,12,12, 6, 5, 5, - 7, 7, 8, 8,10,10,11,11,12,12, 7, 5, 5, 7, 7, 8, - 8,10,10,11,11,12,12,21, 7, 7, 7, 7, 8, 9,10,10, - 11,11,12,12,21, 7, 7, 7, 7, 9, 9,10,10,12,12,13, - 13,21,11,11, 8, 8, 9, 9,11,11,12,12,13,13,21,11, - 11, 8, 8, 9, 9,11,11,12,12,13,13,21,21,21,10,10, - 10,10,11,11,12,13,13,13,21,21,21,10,10,10,10,11, - 11,13,13,14,13,21,21,21,13,13,11,11,12,12,13,13, - 14,14,21,21,21,14,14,11,11,12,12,13,13,14,14,21, - 21,21,21,20,13,13,13,12,14,14,16,15,20,20,20,20, - 20,13,13,13,13,14,13,15,15, -}; - -static const static_codebook _44c8_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c8_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__44c8_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c8_s_p7_1[] = { - 4, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 7, - 7, 7, 7, 7, 7, 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 8, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, - 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 8, 7, 7, 7, 7, 7, 7, -}; - -static const static_codebook _44c8_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c8_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c8_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c8_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44c8_s_p8_0[] = { - 1, 4, 4, 7, 6, 8, 8, 8, 7, 9, 8,10,10,11,10, 6, - 5, 5, 7, 7, 9, 9, 8, 8,10,10,11,11,12,11, 6, 5, - 5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8, - 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,20, 8, 8, 8, - 8,10, 9, 9, 9,10,10,11,11,12,12,20,12,12, 9, 9, - 10,10,10,10,10,11,12,12,12,12,20,12,12, 9, 9,10, - 10,10,10,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9, - 11,10,11,11,12,12,12,13,20,19,19, 9, 9, 9, 9,11, - 11,11,12,12,12,13,13,19,19,19,13,13,10,10,11,11, - 12,12,13,13,13,13,19,19,19,14,13,11,10,11,11,12, - 12,12,13,13,13,19,19,19,19,19,12,12,12,12,13,13, - 13,13,14,13,19,19,19,19,19,12,12,12,11,12,12,13, - 14,14,14,19,19,19,19,19,16,15,13,12,13,13,13,14, - 14,14,19,19,19,19,19,17,17,13,12,13,11,14,13,15, - 15, -}; - -static const static_codebook _44c8_s_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__44c8_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__44c8_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44c8_s_p8_1[] = { - 4, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, - 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,10, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10, 9,10,10, 9,10,10,10,10, - 9,10, 9,10,10, 9,10,10,10,10,10,10,10, 9,10,10, - 10,10,10,10, 9, 9,10,10, 9,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, - 10, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 9, 9,10, 9, 9, 9,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, 9, - 9,10, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10, 9, 9,10,10, 9,10, 9, 9, -}; - -static const static_codebook _44c8_s_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__44c8_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44c8_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c8_s_p9_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c8_s_p9_0[] = { - 1, 4, 3,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11, 4, 7, 7,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11, 4, 8,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _44c8_s_p9_0 = { - 2, 289, - (char *)_vq_lengthlist__44c8_s_p9_0, - 1, -509798400, 1631393792, 5, 0, - (long *)_vq_quantlist__44c8_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c8_s_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static const char _vq_lengthlist__44c8_s_p9_1[] = { - 1, 4, 4, 7, 6, 7, 7, 7, 7, 8, 8, 9, 9,10,10,10, - 10,11,11, 6, 6, 6, 8, 8, 9, 8, 8, 7,10, 8,11,10, - 12,11,12,12,13,13, 5, 5, 6, 8, 8, 9, 9, 8, 8,10, - 9,11,11,12,12,13,13,13,13,17, 8, 8, 9, 9, 9, 9, - 9, 9,10, 9,12,10,12,12,13,12,13,13,17, 9, 8, 9, - 9, 9, 9, 9, 9,10,10,12,12,12,12,13,13,13,13,17, - 13,13, 9, 9,10,10,10,10,11,11,12,11,13,12,13,13, - 14,15,17,13,13, 9, 8,10, 9,10,10,11,11,12,12,14, - 13,15,13,14,15,17,17,17, 9,10, 9,10,11,11,12,12, - 12,12,13,13,14,14,15,15,17,17,17, 9, 8, 9, 8,11, - 11,12,12,12,12,14,13,14,14,14,15,17,17,17,12,14, - 9,10,11,11,12,12,14,13,13,14,15,13,15,15,17,17, - 17,13,11,10, 8,11, 9,13,12,13,13,13,13,13,14,14, - 14,17,17,17,17,17,11,12,11,11,13,13,14,13,15,14, - 13,15,16,15,17,17,17,17,17,11,11,12, 8,13,12,14, - 13,17,14,15,14,15,14,17,17,17,17,17,15,15,12,12, - 12,12,13,14,14,14,15,14,17,14,17,17,17,17,17,16, - 17,12,12,13,12,13,13,14,14,14,14,14,14,17,17,17, - 17,17,17,17,14,14,13,12,13,13,15,15,14,13,15,17, - 17,17,17,17,17,17,17,13,14,13,13,13,13,14,15,15, - 15,14,15,17,17,17,17,17,17,17,16,15,13,14,13,13, - 14,14,15,14,14,16,17,17,17,17,17,17,17,16,16,13, - 14,13,13,14,14,15,14,15,14, -}; - -static const static_codebook _44c8_s_p9_1 = { - 2, 361, - (char *)_vq_lengthlist__44c8_s_p9_1, - 1, -518287360, 1622704128, 5, 0, - (long *)_vq_quantlist__44c8_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c8_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__44c8_s_p9_2[] = { - 2, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _44c8_s_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__44c8_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__44c8_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c8_s_short[] = { - 4,11,13,14,15,15,18,17,19,17, 5, 6, 8, 9,10,10, - 12,15,19,19, 6, 6, 6, 6, 8, 8,11,14,18,19, 8, 6, - 5, 4, 6, 7,10,13,16,17, 9, 7, 6, 5, 6, 7, 9,12, - 15,19,10, 8, 7, 6, 6, 6, 7, 9,13,15,12,10, 9, 8, - 7, 6, 4, 5,10,15,13,13,11, 8, 6, 6, 4, 2, 7,12, - 17,15,16,10, 8, 8, 7, 6, 9,12,19,18,17,13,11,10, - 10, 9,11,14, -}; - -static const static_codebook _huff_book__44c8_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c8_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c9_s_long[] = { - 3, 8,12,14,15,15,15,13,15,15, 6, 5, 8,10,12,12, - 13,12,14,13,10, 6, 5, 6, 8, 9,11,11,13,13,13, 8, - 5, 4, 5, 6, 8,10,11,13,14,10, 7, 5, 4, 5, 7, 9, - 11,12,13,11, 8, 6, 5, 4, 5, 7, 9,11,12,11,10, 8, - 7, 5, 4, 5, 9,10,13,13,11,10, 8, 6, 5, 4, 7, 9, - 15,14,13,12,10, 9, 8, 7, 8, 9,12,12,14,13,12,11, - 10, 9, 8, 9, -}; - -static const static_codebook _huff_book__44c9_s_long = { - 2, 100, - (char *)_huff_lengthlist__44c9_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c9_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c9_s_p1_0[] = { - 1, 5, 5, 0, 5, 5, 0, 5, 5, 6, 8, 8, 0, 9, 8, 0, - 9, 8, 6, 8, 8, 0, 8, 9, 0, 8, 9, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 5, 8, 8, 0, 7, 7, 0, 8, 8, 5, 8, 8, - 0, 7, 8, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, - 9, 8, 0, 8, 8, 0, 7, 7, 5, 8, 9, 0, 8, 8, 0, 7, - 7, -}; - -static const static_codebook _44c9_s_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44c9_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c9_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c9_s_p2_0[] = { - 3, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, 5, 5, 8, 8, 0, - 7, 7, 9, 9, 0, 0, 0, 9, 9, 6, 7, 7, 9, 8, 0, 8, - 8, 9, 9, 0, 8, 7, 9, 9, 0, 9,10,10,10, 0, 0, 0, - 11,10, 6, 7, 7, 8, 9, 0, 8, 8, 9, 9, 0, 7, 8, 9, - 9, 0,10, 9,11,10, 0, 0, 0,10,10, 8, 9, 8,10,10, - 0,10,10,12,11, 0,10,10,11,11, 0,12,13,13,13, 0, - 0, 0,13,12, 8, 8, 9,10,10, 0,10,10,11,12, 0,10, - 10,11,11, 0,13,12,13,13, 0, 0, 0,13,13, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 6, 8, 7,10,10, 0, 7, 7,10, 9, - 0, 7, 7,10,10, 0, 9, 9,10,10, 0, 0, 0,10,10, 6, - 7, 8,10,10, 0, 7, 7, 9,10, 0, 7, 7,10,10, 0, 9, - 9,10,10, 0, 0, 0,10,10, 8, 9, 9,11,11, 0,10,10, - 11,11, 0,10,10,11,11, 0,12,12,12,12, 0, 0, 0,12, - 12, 8, 9,10,11,11, 0, 9,10,11,11, 0,10,10,11,11, - 0,12,12,12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 5, 8, 7,10,10, 0, 7, 7,10,10, 0, 7, 7, - 10, 9, 0, 9, 9,10,10, 0, 0, 0,10,10, 6, 7, 8,10, - 10, 0, 7, 7,10,10, 0, 7, 7, 9,10, 0, 9, 9,10,10, - 0, 0, 0,10,10, 8,10, 9,12,11, 0,10,10,12,11, 0, - 10, 9,11,11, 0,11,12,12,12, 0, 0, 0,12,12, 8, 9, - 10,11,12, 0,10,10,11,11, 0, 9,10,11,11, 0,12,11, - 12,12, 0, 0, 0,12,12, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 7,10, 9,12,12, 0, 9, 9,12,11, 0, 9, 9,11,11, 0, - 10,10,12,11, 0, 0, 0,11,12, 7, 9,10,12,12, 0, 9, - 9,11,12, 0, 9, 9,11,11, 0,10,10,11,12, 0, 0, 0, - 11,11, 9,11,10,13,12, 0,10,10,12,12, 0,10,10,12, - 12, 0,11,11,12,12, 0, 0, 0,13,12, 9,10,11,12,13, - 0,10,10,12,12, 0,10,10,12,12, 0,11,12,12,12, 0, - 0, 0,12,13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, - 11,10,13,13, 0,10,10,12,12, 0,10,10,12,12, 0,11, - 12,12,12, 0, 0, 0,12,12, 9,10,11,13,13, 0,10,10, - 12,12, 0,10,10,12,12, 0,12,11,13,12, 0, 0, 0,12, - 12, -}; - -static const static_codebook _44c9_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c9_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c9_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c9_s_p3_0[] = { - 3, 4, 4, 5, 5, 6, 6, 8, 8, 0, 4, 4, 5, 5, 6, 7, - 8, 8, 0, 4, 4, 5, 5, 7, 7, 8, 8, 0, 5, 5, 6, 6, - 7, 7, 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, - 7, 7, 8, 8, 9, 9, 0, 0, 0, 7, 7, 8, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c9_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c9_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c9_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c9_s_p4_0[] = { - 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,10, - 10, 0, 5, 4, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9,10,10, - 11,11, 0, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, - 10,11,11, 0, 6, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10, - 11,11,11,12, 0, 0, 0, 6, 6, 7, 7, 8, 8, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 7, 7, 7, 7, 9, 9, 9, 9, - 10,10,11,11,12,12, 0, 0, 0, 7, 7, 7, 8, 9, 9, 9, - 9,10,10,11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 8, 8, 9, - 9,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c9_s_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__44c9_s_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c9_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c9_s_p5_0[] = { - 1, 4, 4, 5, 7, 7, 6, 7, 7, 4, 7, 6, 9,10,10,10, - 10, 9, 4, 6, 7, 9,10,10,10, 9,10, 5, 9, 9, 9,11, - 11,10,11,11, 7,10, 9,11,12,11,12,12,12, 7, 9,10, - 11,11,12,12,12,12, 6,10,10,10,12,12,10,12,11, 7, - 10,10,11,12,12,11,12,12, 7,10,10,11,12,12,12,12, - 12, -}; - -static const static_codebook _44c9_s_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__44c9_s_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c9_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c9_s_p5_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7,11, 5, 5, 6, 6, - 7, 7, 7, 7, 8, 8,11, 5, 5, 6, 6, 7, 7, 7, 7, 8, - 8,11, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8,11,11,11, 6, - 6, 7, 7, 7, 8, 8, 8,11,11,11, 6, 6, 7, 7, 7, 8, - 8, 8,11,11,11, 6, 6, 7, 7, 7, 7, 8, 8,11,11,11, - 7, 7, 7, 7, 7, 7, 8, 8,11,11,11,10,10, 7, 7, 7, - 7, 8, 8,11,11,11,11,11, 7, 7, 7, 7, 7, 7,11,11, - 11,11,11, 7, 7, 7, 7, 7, 7, -}; - -static const static_codebook _44c9_s_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__44c9_s_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c9_s_p5_1, - 0 -}; - -static const long _vq_quantlist__44c9_s_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c9_s_p6_0[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 5, 4, 4, - 6, 6, 8, 8, 9, 9, 9, 9,10,10, 6, 4, 4, 6, 6, 8, - 8, 9, 9, 9, 9,10,10, 0, 6, 6, 7, 7, 8, 8, 9, 9, - 10,10,11,11, 0, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11, 0,10,10, 8, 8, 9, 9,10,10,11,11,12,12, 0,11, - 11, 8, 8, 9, 9,10,10,11,11,12,12, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, -}; - -static const static_codebook _44c9_s_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44c9_s_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c9_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c9_s_p6_1[] = { - 4, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, 4, 4, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44c9_s_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44c9_s_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c9_s_p6_1, - 0 -}; - -static const long _vq_quantlist__44c9_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c9_s_p7_0[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8,10,10,11,11, 6, 4, 4, - 6, 6, 8, 8, 9, 9,10,10,12,12, 6, 4, 5, 6, 6, 8, - 8, 9, 9,10,10,12,12,20, 6, 6, 6, 6, 8, 8, 9,10, - 11,11,12,12,20, 6, 6, 6, 6, 8, 8,10,10,11,11,12, - 12,20,10,10, 7, 7, 9, 9,10,10,11,11,12,12,20,11, - 11, 7, 7, 9, 9,10,10,11,11,12,12,20,20,20, 9, 9, - 9, 9,11,11,12,12,13,13,20,20,20, 9, 9, 9, 9,11, - 11,12,12,13,13,20,20,20,13,13,10,10,11,11,12,13, - 13,13,20,20,20,13,13,10,10,11,11,12,13,13,13,20, - 20,20,20,19,12,12,12,12,13,13,14,15,19,19,19,19, - 19,12,12,12,12,13,13,14,14, -}; - -static const static_codebook _44c9_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c9_s_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__44c9_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c9_s_p7_1[] = { - 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, - 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 8, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 6, - 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, - 7, 7, 8, 8, 8, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 8, 7, 7, 7, 7, 7, 7, -}; - -static const static_codebook _44c9_s_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44c9_s_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c9_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c9_s_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44c9_s_p8_0[] = { - 1, 4, 4, 7, 6, 8, 8, 8, 8, 9, 9,10,10,11,10, 6, - 5, 5, 7, 7, 9, 9, 8, 9,10,10,11,11,12,12, 6, 5, - 5, 7, 7, 9, 9, 9, 9,10,10,11,11,12,12,21, 7, 8, - 8, 8, 9, 9, 9, 9,10,10,11,11,12,12,21, 8, 8, 8, - 8, 9, 9, 9, 9,10,10,11,11,12,12,21,11,12, 9, 9, - 10,10,10,10,10,11,11,12,12,12,21,12,12, 9, 8,10, - 10,10,10,11,11,12,12,13,13,21,21,21, 9, 9, 9, 9, - 11,11,11,11,12,12,12,13,21,20,20, 9, 9, 9, 9,10, - 11,11,11,12,12,13,13,20,20,20,13,13,10,10,11,11, - 12,12,13,13,13,13,20,20,20,13,13,10,10,11,11,12, - 12,13,13,13,13,20,20,20,20,20,12,12,12,12,12,12, - 13,13,14,14,20,20,20,20,20,12,12,12,11,13,12,13, - 13,14,14,20,20,20,20,20,15,16,13,12,13,13,14,13, - 14,14,20,20,20,20,20,16,15,12,12,13,12,14,13,14, - 14, -}; - -static const static_codebook _44c9_s_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__44c9_s_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__44c9_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44c9_s_p8_1[] = { - 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, - 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10,10,10,10, - 10,10,10, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10, 9, 9, 9,10,10,10,10,10, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, 9, 9,10, - 9,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10, - 10,10,10,10, 9, 9,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 9, 9,10, 9, 9, 9, 9, 9,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9,10,10, 9, 9,10, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9,10, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9,10, 9, 9, 9, 9, 9, -}; - -static const static_codebook _44c9_s_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__44c9_s_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44c9_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c9_s_p9_0[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static const char _vq_lengthlist__44c9_s_p9_0[] = { - 1, 4, 3,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12, 4, 5, 6,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12, 4, 6, 6,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,11,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11, -}; - -static const static_codebook _44c9_s_p9_0 = { - 2, 361, - (char *)_vq_lengthlist__44c9_s_p9_0, - 1, -508535424, 1631393792, 5, 0, - (long *)_vq_quantlist__44c9_s_p9_0, - 0 -}; - -static const long _vq_quantlist__44c9_s_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static const char _vq_lengthlist__44c9_s_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 8, 7, 9, 8, 9, 9,10,10,11, - 11,11,11, 6, 5, 5, 8, 8, 9, 9, 9, 8,10, 9,11,10, - 12,12,13,12,13,13, 5, 5, 5, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12,13,12,13,13,17, 8, 8, 9, 9, 9, 9, - 9, 9,10,10,12,11,13,12,13,13,13,13,18, 8, 8, 9, - 9, 9, 9, 9, 9,11,11,12,12,13,13,13,13,13,13,17, - 13,12, 9, 9,10,10,10,10,11,11,12,12,12,13,13,13, - 14,14,18,13,12, 9, 9,10,10,10,10,11,11,12,12,13, - 13,13,14,14,14,17,18,18,10,10,10,10,11,11,11,12, - 12,12,14,13,14,13,13,14,18,18,18,10, 9,10, 9,11, - 11,12,12,12,12,13,13,15,14,14,14,18,18,16,13,14, - 10,11,11,11,12,13,13,13,13,14,13,13,14,14,18,18, - 18,14,12,11, 9,11,10,13,12,13,13,13,14,14,14,13, - 14,18,18,17,18,18,11,12,12,12,13,13,14,13,14,14, - 13,14,14,14,18,18,18,18,17,12,10,12, 9,13,11,13, - 14,14,14,14,14,15,14,18,18,17,17,18,14,15,12,13, - 13,13,14,13,14,14,15,14,15,14,18,17,18,18,18,15, - 15,12,10,14,10,14,14,13,13,14,14,14,14,18,16,18, - 18,18,18,17,14,14,13,14,14,13,13,14,14,14,15,15, - 18,18,18,18,17,17,17,14,14,14,12,14,13,14,14,15, - 14,15,14,18,18,18,18,18,18,18,17,16,13,13,13,14, - 14,14,14,15,16,15,18,18,18,18,18,18,18,17,17,13, - 13,13,13,14,13,14,15,15,15, -}; - -static const static_codebook _44c9_s_p9_1 = { - 2, 361, - (char *)_vq_lengthlist__44c9_s_p9_1, - 1, -518287360, 1622704128, 5, 0, - (long *)_vq_quantlist__44c9_s_p9_1, - 0 -}; - -static const long _vq_quantlist__44c9_s_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__44c9_s_p9_2[] = { - 2, 4, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _44c9_s_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__44c9_s_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__44c9_s_p9_2, - 0 -}; - -static const char _huff_lengthlist__44c9_s_short[] = { - 5,13,18,16,17,17,19,18,19,19, 5, 7,10,11,12,12, - 13,16,17,18, 6, 6, 7, 7, 9, 9,10,14,17,19, 8, 7, - 6, 5, 6, 7, 9,12,19,17, 8, 7, 7, 6, 5, 6, 8,11, - 15,19, 9, 8, 7, 6, 5, 5, 6, 8,13,15,11,10, 8, 8, - 7, 5, 4, 4,10,14,12,13,11, 9, 7, 6, 4, 2, 6,12, - 18,16,16,13, 8, 7, 7, 5, 8,13,16,17,18,15,11, 9, - 9, 8,10,13, -}; - -static const static_codebook _huff_book__44c9_s_short = { - 2, 100, - (char *)_huff_lengthlist__44c9_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c0_s_long[] = { - 5, 4, 8, 9, 8, 9,10,12,15, 4, 1, 5, 5, 6, 8,11, - 12,12, 8, 5, 8, 9, 9,11,13,12,12, 9, 5, 8, 5, 7, - 9,12,13,13, 8, 6, 8, 7, 7, 9,11,11,11, 9, 7, 9, - 7, 7, 7, 7,10,12,10,10,11, 9, 8, 7, 7, 9,11,11, - 12,13,12,11, 9, 8, 9,11,13,16,16,15,15,12,10,11, - 12, -}; - -static const static_codebook _huff_book__44c0_s_long = { - 2, 81, - (char *)_huff_lengthlist__44c0_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c0_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c0_s_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9,10,11, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,11,10, 0, - 0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,11, - 0, 0, 0, 0, 0, 0, 9,11,10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c0_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c0_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c0_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c0_s_p2_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 6, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c0_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c0_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c0_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c0_s_p3_0[] = { - 1, 3, 2, 8, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c0_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c0_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c0_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c0_s_p4_0[] = { - 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7, - 7, 8, 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, - 9, 9, 8, 8,10,10, 0, 0, 0, 8, 9, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,10,10, 0, 0, 0, 0, 0, 9, 9,10, - 10, -}; - -static const static_codebook _44c0_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c0_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c0_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p5_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c0_s_p5_0[] = { - 1, 4, 3, 6, 6, 8, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9, 9,10,10,10, - 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10, - 10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,11,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9, - 10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,11,11,11,11,11,12,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,11,10,11,11,11,11,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,11,12,12,12,12,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,12,12,12,12,13,13,13, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,12,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, - 14, -}; - -static const static_codebook _44c0_s_p5_0 = { - 2, 289, - (char *)_vq_lengthlist__44c0_s_p5_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c0_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c0_s_p6_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,10, - 9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,11,11, - 11,12,10,11, 6, 9, 9,11,10,11,11,10,10, 6, 9, 9, - 11,10,11,11,10,10, 7,11,10,12,11,11,11,11,11, 7, - 9, 9,10,10,10,11,11,10, 6, 9, 9,11,10,10,11,10, - 10, -}; - -static const static_codebook _44c0_s_p6_0 = { - 4, 81, - (char *)_vq_lengthlist__44c0_s_p6_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c0_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p6_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c0_s_p6_1[] = { - 2, 3, 3, 6, 6, 7, 7, 7, 7, 7, 8,10,10,10, 6, 6, - 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44c0_s_p6_1 = { - 2, 121, - (char *)_vq_lengthlist__44c0_s_p6_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c0_s_p6_1, - 0 -}; - -static const long _vq_quantlist__44c0_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c0_s_p7_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10, - 10,10,11,11,11,11,12,12, 0, 0, 0,10,10, 9, 9,11, - 11,11,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,11,11,11,11,13,12,13,13, 0, 0, 0, 0, - 0,12,12,11,11,12,12,13,13, -}; - -static const static_codebook _44c0_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c0_s_p7_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c0_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c0_s_p7_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c0_s_p7_1 = { - 2, 25, - (char *)_vq_lengthlist__44c0_s_p7_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c0_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c0_s_p8_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c0_s_p8_0[] = { - 1, 5, 5,10,10, 6, 9, 8,10,10, 6,10, 9,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 8,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11, -}; - -static const static_codebook _44c0_s_p8_0 = { - 4, 625, - (char *)_vq_lengthlist__44c0_s_p8_0, - 1, -518283264, 1627103232, 3, 0, - (long *)_vq_quantlist__44c0_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c0_s_p8_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c0_s_p8_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,11,12,13,12, 6, 5, 5, - 7, 7, 8, 8,10, 9,12,12,12,12, 6, 5, 5, 7, 7, 8, - 8,10, 9,12,11,11,13,16, 7, 7, 8, 8, 9, 9,10,10, - 12,12,13,12,16, 7, 7, 8, 7, 9, 9,10,10,11,12,12, - 13,16,10,10, 8, 8,10,10,11,12,12,12,13,13,16,11, - 10, 8, 7,11,10,11,11,12,11,13,13,16,16,16,10,10, - 10,10,11,11,13,12,13,13,16,16,16,11, 9,11, 9,15, - 13,12,13,13,13,16,16,16,15,13,11,11,12,13,12,12, - 14,13,16,16,16,14,13,11,11,13,12,14,13,13,13,16, - 16,16,16,16,13,13,13,12,14,13,14,14,16,16,16,16, - 16,13,13,12,12,14,14,15,13, -}; - -static const static_codebook _44c0_s_p8_1 = { - 2, 169, - (char *)_vq_lengthlist__44c0_s_p8_1, - 1, -522616832, 1620115456, 4, 0, - (long *)_vq_quantlist__44c0_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c0_s_p8_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c0_s_p8_2[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, - 9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 8, 9, 9, - 9, 9, 9,10, 9,10,10,10,10, 7, 7, 8, 8, 9, 9, 9, - 9, 9, 9,10, 9,10,10,10,10,10, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 9,11,10,10,10,10, 8, 8, 9, - 9, 9, 9, 9,10, 9, 9, 9,10,10,10,10,11,11, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9, 9,10,11,10,10,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,10,11, - 11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 11,11,11,11, 9,10, 9,10, 9, 9, 9, 9,10, 9,10,11, - 10,11,10,10,10,10,10, 9, 9, 9,10, 9, 9, 9,10,11, - 11,10,11,11,10,11,10,10,10, 9, 9, 9, 9,10, 9, 9, - 10,11,10,11,11,11,11,10,11,10,10, 9,10, 9, 9, 9, - 10, -}; - -static const static_codebook _44c0_s_p8_2 = { - 2, 289, - (char *)_vq_lengthlist__44c0_s_p8_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c0_s_p8_2, - 0 -}; - -static const char _huff_lengthlist__44c0_s_short[] = { - 9, 8,12,11,12,13,14,14,16, 6, 1, 5, 6, 6, 9,12, - 14,17, 9, 4, 5, 9, 7, 9,13,15,16, 8, 5, 8, 6, 8, - 10,13,17,17, 9, 6, 7, 7, 8, 9,13,15,17,11, 8, 9, - 9, 9,10,12,16,16,13, 7, 8, 7, 7, 9,12,14,15,13, - 6, 7, 5, 5, 7,10,13,13,14, 7, 8, 5, 6, 7, 9,10, - 12, -}; - -static const static_codebook _huff_book__44c0_s_short = { - 2, 81, - (char *)_huff_lengthlist__44c0_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c0_sm_long[] = { - 5, 4, 9,10, 9,10,11,12,13, 4, 1, 5, 7, 7, 9,11, - 12,14, 8, 5, 7, 9, 8,10,13,13,13,10, 7, 9, 4, 6, - 7,10,12,14, 9, 6, 7, 6, 6, 7,10,12,12, 9, 8, 9, - 7, 6, 7, 8,11,12,11,11,11, 9, 8, 7, 8,10,12,12, - 13,14,12,11, 9, 9, 9,12,12,17,17,15,16,12,10,11, - 13, -}; - -static const static_codebook _huff_book__44c0_sm_long = { - 2, 81, - (char *)_huff_lengthlist__44c0_sm_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c0_sm_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,10,10, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c0_sm_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c0_sm_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c0_sm_p1_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c0_sm_p2_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c0_sm_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c0_sm_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c0_sm_p2_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c0_sm_p3_0[] = { - 1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 4, 7, 7, 0, 0, - 0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 9,10, 0, 0, 0, 0, 0, 0, 0, 9, 9, 0, 0, 0, 0, 0, - 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c0_sm_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c0_sm_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c0_sm_p3_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c0_sm_p4_0[] = { - 1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7, - 9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, - 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 9, 9, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0, - 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static const static_codebook _44c0_sm_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c0_sm_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c0_sm_p4_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p5_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c0_sm_p5_0[] = { - 1, 4, 4, 6, 6, 8, 8, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,11, - 11,11, 0, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 11,11,11, 0, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,12,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,11,12,12,13,13,13,13, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, - 14, -}; - -static const static_codebook _44c0_sm_p5_0 = { - 2, 289, - (char *)_vq_lengthlist__44c0_sm_p5_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c0_sm_p5_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c0_sm_p6_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, - 11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9, - 11,10,11,11,10,10, 7,11,10,11,11,11,11,11,11, 6, - 9, 9,11,10,10,11,11,10, 6, 9, 9,11,10,10,11,10, - 11, -}; - -static const static_codebook _44c0_sm_p6_0 = { - 4, 81, - (char *)_vq_lengthlist__44c0_sm_p6_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c0_sm_p6_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p6_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c0_sm_p6_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 7, 8, 9, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8, 9, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, - 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44c0_sm_p6_1 = { - 2, 121, - (char *)_vq_lengthlist__44c0_sm_p6_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c0_sm_p6_1, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c0_sm_p7_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 6, 5, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0, 9,10, - 10,10,11,11,12,11,12,12, 0, 0, 0,10,10, 9, 9,11, - 11,12,12,12,12, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,11,12,11,11,13,12,13,13, 0, 0, 0, 0, - 0,12,12,11,11,13,12,14,14, -}; - -static const static_codebook _44c0_sm_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c0_sm_p7_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c0_sm_p7_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c0_sm_p7_1[] = { - 2, 4, 4, 4, 4, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c0_sm_p7_1 = { - 2, 25, - (char *)_vq_lengthlist__44c0_sm_p7_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c0_sm_p7_1, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p8_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c0_sm_p8_0[] = { - 1, 3, 3,11,11,11,11,11,11, 3, 7, 6,11,11,11,11, - 11,11, 4, 8, 7,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12, -}; - -static const static_codebook _44c0_sm_p8_0 = { - 2, 81, - (char *)_vq_lengthlist__44c0_sm_p8_0, - 1, -516186112, 1627103232, 4, 0, - (long *)_vq_quantlist__44c0_sm_p8_0, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p8_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c0_sm_p8_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5, - 7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8, - 8,10,10,12,11,12,12,17, 7, 7, 8, 8, 9, 9,10,10, - 12,12,13,13,18, 7, 7, 8, 7, 9, 9,10,10,12,12,12, - 13,19,10,10, 8, 8,10,10,11,11,12,12,13,14,19,11, - 10, 8, 7,10,10,11,11,12,12,13,12,19,19,19,10,10, - 10,10,11,11,12,12,13,13,19,19,19,11, 9,11, 9,14, - 12,13,12,13,13,19,20,18,13,14,11,11,12,12,13,13, - 14,13,20,20,20,15,13,11,10,13,11,13,13,14,13,20, - 20,20,20,20,13,14,12,12,13,13,13,13,20,20,20,20, - 20,13,13,12,12,16,13,15,13, -}; - -static const static_codebook _44c0_sm_p8_1 = { - 2, 169, - (char *)_vq_lengthlist__44c0_sm_p8_1, - 1, -522616832, 1620115456, 4, 0, - (long *)_vq_quantlist__44c0_sm_p8_1, - 0 -}; - -static const long _vq_quantlist__44c0_sm_p8_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c0_sm_p8_2[] = { - 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10, 6, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, - 9,10, 9, 9,10,10,10,11, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,11,11, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,11,11,11, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,10,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,11,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11,10,11,11, - 11,11,11, 9, 9,10, 9, 9, 9, 9, 9, 9, 9,10,11,10, - 11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11, - 11,11,11,11,11, 9,10, 9, 9, 9, 9, 9, 9, 9, 9,11, - 11,10,11,11,11,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 10,11,10,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static const static_codebook _44c0_sm_p8_2 = { - 2, 289, - (char *)_vq_lengthlist__44c0_sm_p8_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c0_sm_p8_2, - 0 -}; - -static const char _huff_lengthlist__44c0_sm_short[] = { - 6, 6,12,13,13,14,16,17,17, 4, 2, 5, 8, 7, 9,12, - 15,15, 9, 4, 5, 9, 7, 9,12,16,18,11, 6, 7, 4, 6, - 8,11,14,18,10, 5, 6, 5, 5, 7,10,14,17,10, 5, 7, - 7, 6, 7,10,13,16,11, 5, 7, 7, 7, 8,10,12,15,13, - 6, 7, 5, 5, 7, 9,12,13,16, 8, 9, 6, 6, 7, 9,10, - 12, -}; - -static const static_codebook _huff_book__44c0_sm_short = { - 2, 81, - (char *)_huff_lengthlist__44c0_sm_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c1_s_long[] = { - 5, 5, 9,10, 9, 9,10,11,12, 5, 1, 5, 6, 6, 7,10, - 12,14, 9, 5, 6, 8, 8,10,12,14,14,10, 5, 8, 5, 6, - 8,11,13,14, 9, 5, 7, 6, 6, 8,10,12,11, 9, 7, 9, - 7, 6, 6, 7,10,10,10, 9,12, 9, 8, 7, 7,10,12,11, - 11,13,12,10, 9, 8, 9,11,11,14,15,15,13,11, 9, 9, - 11, -}; - -static const static_codebook _huff_book__44c1_s_long = { - 2, 81, - (char *)_huff_lengthlist__44c1_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c1_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c1_s_p1_0[] = { - 2, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 6, 0, 0, 0, 0, - 0, 0, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 7, 7, 0, 0, 0, 0, - 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, - 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 8, 8, 0, 0, - 0, 0, 0, 0, 8, 9, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 7, 7, 0, 0, 0, 0, 0, 0, 7, 8, 8, 0, 0, - 0, 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 6, 8, 8, 0, 0, 0, 0, 0, 0, 8,10, 9, 0, - 0, 0, 0, 0, 0, 8, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, - 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c1_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c1_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c1_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c1_s_p2_0[] = { - 2, 3, 4, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 5, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 6, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c1_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c1_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c1_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c1_s_p3_0[] = { - 1, 3, 2, 7, 7, 0, 0, 0, 0, 0,13,13, 6, 6, 0, 0, - 0, 0, 0,12, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0,11,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c1_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c1_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c1_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c1_s_p4_0[] = { - 1, 3, 3, 6, 5, 6, 6, 8, 8, 0, 0, 0, 7, 7, 7, 7, - 9, 9, 0, 0, 0, 7, 7, 7, 7, 9, 9, 0, 0, 0, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, - 9, 9, 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, - 0, 0,10,10, 9, 9,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static const static_codebook _44c1_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c1_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c1_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p5_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c1_s_p5_0[] = { - 1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,11, 0, 0, 0, 8, 8, 9, 9, 9,10,10,10, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10, 9,10, - 10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, - 10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, - 0, 0, 0, 0, 0, 0,12,12,12,12,12,12,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, - 14, -}; - -static const static_codebook _44c1_s_p5_0 = { - 2, 289, - (char *)_vq_lengthlist__44c1_s_p5_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c1_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c1_s_p6_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 6,10,10,11,11, - 11,11,10,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, - 11,10,11,11,10,10, 7,11,10,11,11,11,12,11,11, 7, - 9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,12,10, - 11, -}; - -static const static_codebook _44c1_s_p6_0 = { - 4, 81, - (char *)_vq_lengthlist__44c1_s_p6_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c1_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p6_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c1_s_p6_1[] = { - 2, 3, 3, 6, 6, 7, 7, 7, 7, 8, 8,10,10,10, 6, 6, - 7, 7, 8, 8, 8, 8,10,10,10, 6, 6, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 8, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44c1_s_p6_1 = { - 2, 121, - (char *)_vq_lengthlist__44c1_s_p6_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c1_s_p6_1, - 0 -}; - -static const long _vq_quantlist__44c1_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c1_s_p7_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 9, 7, 5, 6, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 5, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9,10,10,10,11,11,11,11, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,11,11, 0, 0, 0,10,10, - 10,10,11,11,12,11,12,12, 0, 0, 0,10,10,10, 9,11, - 11,12,11,13,12, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,11,12,11,11,12,12,14,13, 0, 0, 0, 0, - 0,12,11,11,11,13,10,14,13, -}; - -static const static_codebook _44c1_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c1_s_p7_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c1_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c1_s_p7_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c1_s_p7_1 = { - 2, 25, - (char *)_vq_lengthlist__44c1_s_p7_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c1_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44c1_s_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c1_s_p8_0[] = { - 1, 4, 3,10,10,10,10,10,10,10,10,10,10, 4, 8, 6, - 10,10,10,10,10,10,10,10,10,10, 4, 8, 7,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44c1_s_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__44c1_s_p8_0, - 1, -514541568, 1627103232, 4, 0, - (long *)_vq_quantlist__44c1_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44c1_s_p8_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c1_s_p8_1[] = { - 1, 4, 4, 6, 5, 7, 7, 9, 9,10,10,12,12, 6, 5, 5, - 7, 7, 8, 8,10,10,12,11,12,12, 6, 5, 5, 7, 7, 8, - 8,10,10,11,11,12,12,15, 7, 7, 8, 8, 9, 9,11,11, - 12,12,13,12,15, 8, 8, 8, 7, 9, 9,10,10,12,12,13, - 13,16,11,10, 8, 8,10,10,11,11,12,12,13,13,16,11, - 11, 9, 8,11,10,11,11,12,12,13,12,16,16,16,10,11, - 10,11,12,12,12,12,13,13,16,16,16,11, 9,11, 9,14, - 12,12,12,13,13,16,16,16,12,14,11,12,12,12,13,13, - 14,13,16,16,16,15,13,12,10,13,10,13,14,13,13,16, - 16,16,16,16,13,14,12,13,13,12,13,13,16,16,16,16, - 16,13,12,12,11,14,12,15,13, -}; - -static const static_codebook _44c1_s_p8_1 = { - 2, 169, - (char *)_vq_lengthlist__44c1_s_p8_1, - 1, -522616832, 1620115456, 4, 0, - (long *)_vq_quantlist__44c1_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44c1_s_p8_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c1_s_p8_2[] = { - 2, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8,10,10,10, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9,10, 9, 9,10,10,10, 7, 7, 8, 8, 9, 8, 9, 9, 9, - 9,10, 9, 9,10,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10, 9, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,11,11,11, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10,11,11,11, 8, 8, 9, - 9, 9, 9,10, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10,11,11, - 11,11,11, 9, 9, 9,10, 9, 9, 9, 9, 9, 9,10,11,11, - 11,11,11,11,10,10,10,10, 9, 9, 9, 9, 9, 9,10,11, - 11,11,11,11,11, 9,10, 9, 9, 9, 9,10, 9, 9, 9,11, - 11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, - 11,11,10,11,11,11,11,10,11, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static const static_codebook _44c1_s_p8_2 = { - 2, 289, - (char *)_vq_lengthlist__44c1_s_p8_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c1_s_p8_2, - 0 -}; - -static const char _huff_lengthlist__44c1_s_short[] = { - 6, 8,13,12,13,14,15,16,16, 4, 2, 4, 7, 6, 8,11, - 13,15,10, 4, 4, 8, 6, 8,11,14,17,11, 5, 6, 5, 6, - 8,12,14,17,11, 5, 5, 6, 5, 7,10,13,16,12, 6, 7, - 8, 7, 8,10,13,15,13, 8, 8, 7, 7, 8,10,12,15,15, - 7, 7, 5, 5, 7, 9,12,14,15, 8, 8, 6, 6, 7, 8,10, - 11, -}; - -static const static_codebook _huff_book__44c1_s_short = { - 2, 81, - (char *)_huff_lengthlist__44c1_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44c1_sm_long[] = { - 5, 4, 8,10, 9, 9,10,11,12, 4, 2, 5, 6, 6, 8,10, - 11,13, 8, 4, 6, 8, 7, 9,12,12,14,10, 6, 8, 4, 5, - 6, 9,11,12, 9, 5, 6, 5, 5, 6, 9,11,11, 9, 7, 9, - 6, 5, 5, 7,10,10,10, 9,11, 8, 7, 6, 7, 9,11,11, - 12,13,10,10, 9, 8, 9,11,11,15,15,12,13,11, 9,10, - 11, -}; - -static const static_codebook _huff_book__44c1_sm_long = { - 2, 81, - (char *)_huff_lengthlist__44c1_sm_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c1_sm_p1_0[] = { - 1, 5, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 7, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 7, 0, 0, 0, 0, - 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, - 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 7, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c1_sm_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44c1_sm_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44c1_sm_p1_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c1_sm_p2_0[] = { - 2, 3, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 6, 6, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 6, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c1_sm_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44c1_sm_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c1_sm_p2_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c1_sm_p3_0[] = { - 1, 3, 3, 7, 7, 0, 0, 0, 0, 0, 5, 5, 6, 6, 0, 0, - 0, 0, 0, 5, 5, 7, 7, 0, 0, 0, 0, 0, 7, 7, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 8, 9, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44c1_sm_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44c1_sm_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c1_sm_p3_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44c1_sm_p4_0[] = { - 1, 3, 3, 6, 6, 7, 7, 9, 9, 0, 6, 6, 7, 7, 8, 8, - 9, 9, 0, 6, 6, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, - 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 8, 8, 9, 9,11,11, 0, 0, 0, 9, 9, 9, 9,11,11, 0, - 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0, 9, 9,11, - 11, -}; - -static const static_codebook _44c1_sm_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44c1_sm_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44c1_sm_p4_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p5_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c1_sm_p5_0[] = { - 2, 3, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 5, 5, 6, 6, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10,10, - 10,11,11,11,12,12, 0, 0, 0, 8, 8, 8, 8, 9, 9,10, - 10,10,10,11,11,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9, 9, 9,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 9, 9,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, 0, - 0, 0, 0,10,10,11,11,12,12,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, 0, - 0, 0, 0, 0, 0,11,11,11,11,12,12,13,13,13,13, 0, - 0, 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,12,12,13,13,14, - 14, -}; - -static const static_codebook _44c1_sm_p5_0 = { - 2, 289, - (char *)_vq_lengthlist__44c1_sm_p5_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c1_sm_p5_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44c1_sm_p6_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 7,10, 9, 9,11, - 9, 9, 4, 7, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, - 11,11,10,10, 6, 9, 9,11,11,10,11,10,10, 6, 9, 9, - 11,10,11,11,10,10, 7,11,11,11,11,11,11,11,11, 6, - 9, 9,11,10,10,11,11,10, 6, 9, 9,10,10,10,11,10, - 11, -}; - -static const static_codebook _44c1_sm_p6_0 = { - 4, 81, - (char *)_vq_lengthlist__44c1_sm_p6_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44c1_sm_p6_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p6_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44c1_sm_p6_1[] = { - 2, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, - 8, 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 9, 8,10,10,10,10,10, 8, 8, 8, - 8, 8, 8,10,10,10,10,10, 9, 9, 8, 8, 8, 8,10,10, - 10,10,10, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44c1_sm_p6_1 = { - 2, 121, - (char *)_vq_lengthlist__44c1_sm_p6_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44c1_sm_p6_1, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c1_sm_p7_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 7, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 7, 5, 6, 7, 7, 8, - 8, 8, 8, 9, 9,11,10, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9,10,10,10,10,11,11,11,11, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0, 9,10, - 9,10,11,11,12,11,13,12, 0, 0, 0,10,10, 9, 9,11, - 11,12,12,13,12, 0, 0, 0,13,13,10,10,11,11,12,12, - 13,13, 0, 0, 0,14,14,10,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,11,12,11,11,12,13,14,13, 0, 0, 0, 0, - 0,12,12,11,11,13,12,14,13, -}; - -static const static_codebook _44c1_sm_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44c1_sm_p7_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44c1_sm_p7_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44c1_sm_p7_1[] = { - 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44c1_sm_p7_1 = { - 2, 25, - (char *)_vq_lengthlist__44c1_sm_p7_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44c1_sm_p7_1, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p8_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c1_sm_p8_0[] = { - 1, 3, 3,13,13,13,13,13,13,13,13,13,13, 3, 6, 6, - 13,13,13,13,13,13,13,13,13,13, 4, 8, 7,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13, -}; - -static const static_codebook _44c1_sm_p8_0 = { - 2, 169, - (char *)_vq_lengthlist__44c1_sm_p8_0, - 1, -514541568, 1627103232, 4, 0, - (long *)_vq_quantlist__44c1_sm_p8_0, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p8_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44c1_sm_p8_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 9,10,11,12,12, 6, 5, 5, - 7, 7, 8, 7,10,10,11,11,12,12, 6, 5, 5, 7, 7, 8, - 8,10,10,11,11,12,12,16, 7, 7, 8, 8, 9, 9,11,11, - 12,12,13,13,17, 7, 7, 8, 7, 9, 9,11,10,12,12,13, - 13,19,11,10, 8, 8,10,10,11,11,12,12,13,13,19,11, - 11, 9, 7,11,10,11,11,12,12,13,12,19,19,19,10,10, - 10,10,11,12,12,12,13,14,18,19,19,11, 9,11, 9,13, - 12,12,12,13,13,19,20,19,13,15,11,11,12,12,13,13, - 14,13,18,19,20,15,13,12,10,13,10,13,13,13,14,20, - 20,20,20,20,13,14,12,12,13,12,13,13,20,20,20,20, - 20,13,12,12,12,14,12,14,13, -}; - -static const static_codebook _44c1_sm_p8_1 = { - 2, 169, - (char *)_vq_lengthlist__44c1_sm_p8_1, - 1, -522616832, 1620115456, 4, 0, - (long *)_vq_quantlist__44c1_sm_p8_1, - 0 -}; - -static const long _vq_quantlist__44c1_sm_p8_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44c1_sm_p8_2[] = { - 2, 5, 5, 6, 6, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 8, - 8,10, 6, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,11,11, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10,10, 9,10,10,10,10, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,11,10,10, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9,10,10,10,11,11, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,11,11,11, 9, 9, - 9, 9, 9, 9, 9, 9,10, 9,10, 9,11,11,11,11,11, 9, - 8, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,11,11,11,11, - 11,11,11, 9, 9,10, 9, 9, 9, 9,10, 9,10,10,11,10, - 11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,10,11, - 11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,11, - 11,10,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9,10, 9, - 10,11,10,11,11,11,11,11,11, 9, 9,10, 9, 9, 9, 9, - 9, -}; - -static const static_codebook _44c1_sm_p8_2 = { - 2, 289, - (char *)_vq_lengthlist__44c1_sm_p8_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44c1_sm_p8_2, - 0 -}; - -static const char _huff_lengthlist__44c1_sm_short[] = { - 4, 7,13,14,14,15,16,18,18, 4, 2, 5, 8, 7, 9,12, - 15,15,10, 4, 5,10, 6, 8,11,15,17,12, 5, 7, 5, 6, - 8,11,14,17,11, 5, 6, 6, 5, 6, 9,13,17,12, 6, 7, - 6, 5, 6, 8,12,14,14, 7, 8, 6, 6, 7, 9,11,14,14, - 8, 9, 6, 5, 6, 9,11,13,16,10,10, 7, 6, 7, 8,10, - 11, -}; - -static const static_codebook _huff_book__44c1_sm_short = { - 2, 81, - (char *)_huff_lengthlist__44c1_sm_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44cn1_s_long[] = { - 4, 4, 7, 8, 7, 8,10,12,17, 3, 1, 6, 6, 7, 8,10, - 12,15, 7, 6, 9, 9, 9,11,12,14,17, 8, 6, 9, 6, 7, - 9,11,13,17, 7, 6, 9, 7, 7, 8, 9,12,15, 8, 8,10, - 8, 7, 7, 7,10,14, 9,10,12,10, 8, 8, 8,10,14,11, - 13,15,13,12,11,11,12,16,17,18,18,19,20,18,16,16, - 20, -}; - -static const static_codebook _huff_book__44cn1_s_long = { - 2, 81, - (char *)_huff_lengthlist__44cn1_s_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44cn1_s_p1_0[] = { - 1, 4, 4, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 8, 9,10, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, 0, - 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0,10,11,11, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10,10, 0, 0, - 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0,10,11,11, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8,10,10, 0, 0, - 0, 0, 0, 0, 8,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11, 0, - 0, 0, 0, 0, 0, 9, 9,11, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7,10,10, 0, 0, 0, 0, 0, 0,10,11,11, - 0, 0, 0, 0, 0, 0, 9,11, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44cn1_s_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44cn1_s_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44cn1_s_p1_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44cn1_s_p2_0[] = { - 1, 4, 4, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44cn1_s_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44cn1_s_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44cn1_s_p2_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44cn1_s_p3_0[] = { - 1, 2, 3, 7, 7, 0, 0, 0, 0, 0, 0, 0, 6, 6, 0, 0, - 0, 0, 0, 0, 0, 6, 6, 0, 0, 0, 0, 0, 0, 0, 7, 7, - 0, 0, 0, 0, 0, 0, 0, 7, 7, 0, 0, 0, 0, 0, 0, 0, - 9, 8, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, - 0, 0,10,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44cn1_s_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44cn1_s_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44cn1_s_p3_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44cn1_s_p4_0[] = { - 1, 3, 3, 6, 6, 6, 6, 8, 8, 0, 0, 0, 6, 6, 7, 7, - 9, 9, 0, 0, 0, 6, 6, 7, 7, 9, 9, 0, 0, 0, 7, 7, - 8, 8,10,10, 0, 0, 0, 7, 7, 8, 8,10,10, 0, 0, 0, - 9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, - 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, - 11, -}; - -static const static_codebook _44cn1_s_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44cn1_s_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44cn1_s_p4_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p5_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44cn1_s_p5_0[] = { - 1, 4, 3, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10, - 10, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10,10, - 11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10,10, - 10,11,11, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,12, 0, 0, 0, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11, 0, 0, 0, 8, 8, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12, 0, 0, 0, 8, 8, 9, 9, 9, 9,10, - 10,10,11,11,11,12,12, 0, 0, 0, 9, 9,10, 9,10,10, - 10,10,11,11,11,11,12,12, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 0, 0, 0, 0, 0, 9, 9, - 10,10,10,11,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, - 10,10,11,10,11,11,11,12,13,12,13,13, 0, 0, 0, 0, - 0, 0, 0,11,10,11,11,12,12,12,12,13,13, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,12,12,13,13,13,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,13,13,13,13,13,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,12,13,13,14, - 14, -}; - -static const static_codebook _44cn1_s_p5_0 = { - 2, 289, - (char *)_vq_lengthlist__44cn1_s_p5_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44cn1_s_p5_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44cn1_s_p6_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 6, 6,10, 9, 9,11, - 9, 9, 4, 6, 6,10, 9, 9,10, 9, 9, 7,10,10,11,11, - 11,12,11,11, 7, 9, 9,11,11,10,11,10,10, 7, 9, 9, - 11,10,11,11,10,10, 7,10,10,11,11,11,12,11,11, 7, - 9, 9,11,10,10,11,10,10, 7, 9, 9,11,10,10,11,10, - 10, -}; - -static const static_codebook _44cn1_s_p6_0 = { - 4, 81, - (char *)_vq_lengthlist__44cn1_s_p6_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44cn1_s_p6_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p6_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44cn1_s_p6_1[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,10, 7, 6, - 8, 8, 8, 8, 8, 8,10,10,10, 7, 6, 7, 7, 8, 8, 8, - 8,10,10,10, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 8, 8, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 9, 9, - 9, 9,10,10,10, 8, 8, 8, 8, 9, 9, 9, 9,10,10,10, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10, 9, 9, 9, - 9, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10, 9, 9, 9, 9, 9, 9, -}; - -static const static_codebook _44cn1_s_p6_1 = { - 2, 121, - (char *)_vq_lengthlist__44cn1_s_p6_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44cn1_s_p6_1, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44cn1_s_p7_0[] = { - 1, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 6, 5, 5, - 7, 7, 8, 8, 8, 8, 9, 9,11,11, 7, 5, 5, 7, 7, 8, - 8, 8, 8, 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9,10,10,10,11,11,11,12, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,11,12, 0, 0, 0,10,10, - 10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, - 11,12,12,13,12, 0, 0, 0,14,14,11,10,11,12,12,13, - 13,14, 0, 0, 0,15,15,11,11,12,11,12,12,14,13, 0, - 0, 0, 0, 0,12,12,12,12,13,13,14,14, 0, 0, 0, 0, - 0,13,13,12,12,13,13,13,14, -}; - -static const static_codebook _44cn1_s_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44cn1_s_p7_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44cn1_s_p7_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44cn1_s_p7_1[] = { - 2, 3, 3, 5, 5, 6, 6, 6, 5, 5, 6, 6, 6, 5, 5, 6, - 6, 6, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44cn1_s_p7_1 = { - 2, 25, - (char *)_vq_lengthlist__44cn1_s_p7_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44cn1_s_p7_1, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p8_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44cn1_s_p8_0[] = { - 1, 7, 7,11,11, 8,11,11,11,11, 4,11, 3,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11, 7,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11, 8,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12, -}; - -static const static_codebook _44cn1_s_p8_0 = { - 4, 625, - (char *)_vq_lengthlist__44cn1_s_p8_0, - 1, -518283264, 1627103232, 3, 0, - (long *)_vq_quantlist__44cn1_s_p8_0, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p8_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44cn1_s_p8_1[] = { - 1, 4, 4, 6, 6, 8, 8, 9,10,10,11,11,11, 6, 5, 5, - 7, 7, 8, 8, 9,10, 9,11,11,12, 5, 5, 5, 7, 7, 8, - 9,10,10,12,12,14,13,15, 7, 7, 8, 8, 9,10,11,11, - 10,12,10,11,15, 7, 8, 8, 8, 9, 9,11,11,13,12,12, - 13,15,10,10, 8, 8,10,10,12,12,11,14,10,10,15,11, - 11, 8, 8,10,10,12,13,13,14,15,13,15,15,15,10,10, - 10,10,12,12,13,12,13,10,15,15,15,10,10,11,10,13, - 11,13,13,15,13,15,15,15,13,13,10,11,11,11,12,10, - 14,11,15,15,14,14,13,10,10,12,11,13,13,14,14,15, - 15,15,15,15,11,11,11,11,12,11,15,12,15,15,15,15, - 15,12,12,11,11,14,12,13,14, -}; - -static const static_codebook _44cn1_s_p8_1 = { - 2, 169, - (char *)_vq_lengthlist__44cn1_s_p8_1, - 1, -522616832, 1620115456, 4, 0, - (long *)_vq_quantlist__44cn1_s_p8_1, - 0 -}; - -static const long _vq_quantlist__44cn1_s_p8_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44cn1_s_p8_2[] = { - 3, 4, 3, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9,10,11,11, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, 9, - 9, 9,10, 9,10,11,10, 7, 6, 7, 7, 8, 8, 9, 9, 9, - 9, 9, 9, 9,10,10,10,11, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10, 7, 7, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9,10,11,11,11, 8, 8, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11,11, 8, 8, 8, - 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,11,11, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,11,10,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,11,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,10,11, - 11,11,11, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, - 10,11,11,11, 9,10,10, 9, 9, 9, 9, 9, 9, 9,10,11, - 11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 11,11,11,10,11,11,11,11,11, 9, 9, 9,10, 9, 9, 9, - 9, -}; - -static const static_codebook _44cn1_s_p8_2 = { - 2, 289, - (char *)_vq_lengthlist__44cn1_s_p8_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44cn1_s_p8_2, - 0 -}; - -static const char _huff_lengthlist__44cn1_s_short[] = { - 10, 9,12,15,12,13,16,14,16, 7, 1, 5,14, 7,10,13, - 16,16, 9, 4, 6,16, 8,11,16,16,16,14, 4, 7,16, 9, - 12,14,16,16,10, 5, 7,14, 9,12,14,15,15,13, 8, 9, - 14,10,12,13,14,15,13, 9, 9, 7, 6, 8,11,12,12,14, - 8, 8, 5, 4, 5, 8,11,12,16,10,10, 6, 5, 6, 8, 9, - 10, -}; - -static const static_codebook _huff_book__44cn1_s_short = { - 2, 81, - (char *)_huff_lengthlist__44cn1_s_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44cn1_sm_long[] = { - 3, 3, 8, 8, 8, 8,10,12,14, 3, 2, 6, 7, 7, 8,10, - 12,16, 7, 6, 7, 9, 8,10,12,14,16, 8, 6, 8, 4, 5, - 7, 9,11,13, 7, 6, 8, 5, 6, 7, 9,11,14, 8, 8,10, - 7, 7, 6, 8,10,13, 9,11,12, 9, 9, 7, 8,10,12,10, - 13,15,11,11,10, 9,10,13,13,16,17,14,15,14,13,14, - 17, -}; - -static const static_codebook _huff_book__44cn1_sm_long = { - 2, 81, - (char *)_huff_lengthlist__44cn1_sm_long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44cn1_sm_p1_0[] = { - 1, 4, 5, 0, 0, 0, 0, 0, 0, 5, 7, 7, 0, 0, 0, 0, - 0, 0, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, - 0, 0, 0, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 7, 9, 8, 0, 0, - 0, 0, 0, 0, 8, 9, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 8, 8, 0, 0, 0, 0, - 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7,10, 9, 0, 0, 0, - 0, 0, 0, 9, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 9, 9, 0, 0, - 0, 0, 0, 0, 8,10, 9, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 8, 8, 0, 0, 0, 0, 0, 0, 8, 9, 9, 0, 0, - 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 7, 9, 9, 0, 0, 0, 0, 0, 0, 9,10,10, 0, - 0, 0, 0, 0, 0, 8, 9,10, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 9,10, 0, 0, 0, 0, 0, 0, 9,10,10, - 0, 0, 0, 0, 0, 0, 9,10, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44cn1_sm_p1_0 = { - 8, 6561, - (char *)_vq_lengthlist__44cn1_sm_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44cn1_sm_p1_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44cn1_sm_p2_0[] = { - 1, 4, 4, 6, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 5, 7, 7, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 5, 5, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 7, 9, 9, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 7, 7, 7, 9, 9, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44cn1_sm_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44cn1_sm_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44cn1_sm_p2_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44cn1_sm_p3_0[] = { - 1, 3, 4, 7, 7, 0, 0, 0, 0, 0, 4, 4, 7, 7, 0, 0, - 0, 0, 0, 4, 5, 7, 7, 0, 0, 0, 0, 0, 6, 7, 8, 8, - 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, - 9, 9, 0, 0, 0, 0, 0, 0, 0,10, 9, 0, 0, 0, 0, 0, - 0, 0,11,11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, -}; - -static const static_codebook _44cn1_sm_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44cn1_sm_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44cn1_sm_p3_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p4_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44cn1_sm_p4_0[] = { - 1, 4, 3, 6, 6, 7, 7, 9, 9, 0, 5, 5, 7, 7, 8, 7, - 9, 9, 0, 5, 5, 7, 7, 8, 8, 9, 9, 0, 7, 7, 8, 8, - 8, 8,10,10, 0, 0, 0, 8, 8, 8, 8,10,10, 0, 0, 0, - 9, 9, 9, 9,10,10, 0, 0, 0, 9, 9, 9, 9,10,10, 0, - 0, 0,10,10,10,10,11,11, 0, 0, 0, 0, 0,10,10,11, - 11, -}; - -static const static_codebook _44cn1_sm_p4_0 = { - 2, 81, - (char *)_vq_lengthlist__44cn1_sm_p4_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44cn1_sm_p4_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p5_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44cn1_sm_p5_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9, 8, 8, 9, 9,10,10,11, - 11, 0, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11,11, - 12,12, 0, 6, 5, 7, 7, 8, 8, 9, 9, 9, 9,10,10,11, - 11,12,12, 0, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 0, 0, 0, 7, 7, 8, 8, 9, 9,10,10,11, - 11,11,11,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10,10, - 11,11,12,12,12,12, 0, 0, 0, 8, 8, 9, 9,10,10,10, - 10,11,11,12,12,12,12, 0, 0, 0, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9,10, - 10,10,10,11,11,12,12,13,13, 0, 0, 0, 0, 0, 9, 9, - 10,10,11,11,12,12,13,13,13,13, 0, 0, 0, 0, 0, 9, - 9,10,10,11,11,12,12,12,13,13,13, 0, 0, 0, 0, 0, - 10,10,11,11,11,11,12,12,13,13,14,14, 0, 0, 0, 0, - 0, 0, 0,11,11,11,11,12,12,13,13,14,14, 0, 0, 0, - 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, 0, - 0, 0, 0, 0, 0,11,11,12,12,13,13,13,13,14,14, 0, - 0, 0, 0, 0, 0, 0,12,12,12,13,13,13,14,14,14,14, - 0, 0, 0, 0, 0, 0, 0, 0, 0,12,12,13,13,14,14,14, - 14, -}; - -static const static_codebook _44cn1_sm_p5_0 = { - 2, 289, - (char *)_vq_lengthlist__44cn1_sm_p5_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44cn1_sm_p5_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p6_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44cn1_sm_p6_0[] = { - 1, 4, 4, 7, 6, 6, 7, 6, 6, 4, 7, 6,10, 9, 9,11, - 9, 9, 4, 6, 7,10, 9, 9,11, 9, 9, 7,10,10,10,11, - 11,11,11,10, 6, 9, 9,11,10,10,11,10,10, 6, 9, 9, - 11,10,11,11,10,10, 7,11,11,11,11,11,12,11,11, 7, - 9, 9,11,10,10,12,10,10, 7, 9, 9,11,10,10,11,10, - 10, -}; - -static const static_codebook _44cn1_sm_p6_0 = { - 4, 81, - (char *)_vq_lengthlist__44cn1_sm_p6_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44cn1_sm_p6_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p6_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44cn1_sm_p6_1[] = { - 2, 4, 4, 5, 5, 7, 7, 7, 7, 8, 8,10, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8,10, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8,10, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8,10,10,10, 7, - 7, 7, 7, 8, 8, 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, - 8, 8,10,10,10, 8, 8, 8, 8, 8, 8, 8, 8,10,10,10, - 8, 8, 8, 8, 8, 8, 9, 9,10,10,10,10,10, 8, 8, 8, - 8, 9, 9,10,10,10,10,10, 9, 9, 9, 9, 8, 9,10,10, - 10,10,10, 8, 9, 8, 8, 9, 8, -}; - -static const static_codebook _44cn1_sm_p6_1 = { - 2, 121, - (char *)_vq_lengthlist__44cn1_sm_p6_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44cn1_sm_p6_1, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44cn1_sm_p7_0[] = { - 1, 4, 4, 6, 6, 7, 7, 7, 7, 9, 9,10,10, 7, 5, 5, - 7, 7, 8, 8, 8, 8,10, 9,11,10, 7, 5, 5, 7, 7, 8, - 8, 8, 8, 9,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,11, 0, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11, - 11, 0,12,12, 9, 9, 9,10,10,10,11,11,12,12, 0,13, - 13, 9, 9, 9, 9,10,10,11,11,12,12, 0, 0, 0,10,10, - 10,10,11,11,12,12,12,13, 0, 0, 0,10,10,10,10,11, - 11,12,12,12,12, 0, 0, 0,14,14,11,11,11,11,12,13, - 13,13, 0, 0, 0,14,14,11,10,11,11,12,12,13,13, 0, - 0, 0, 0, 0,12,12,12,12,13,13,13,14, 0, 0, 0, 0, - 0,13,12,12,12,13,13,13,14, -}; - -static const static_codebook _44cn1_sm_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44cn1_sm_p7_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44cn1_sm_p7_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p7_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44cn1_sm_p7_1[] = { - 2, 4, 4, 4, 5, 6, 5, 5, 5, 5, 6, 5, 5, 5, 5, 6, - 5, 5, 5, 5, 6, 6, 6, 5, 5, -}; - -static const static_codebook _44cn1_sm_p7_1 = { - 2, 25, - (char *)_vq_lengthlist__44cn1_sm_p7_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44cn1_sm_p7_1, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p8_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44cn1_sm_p8_0[] = { - 1, 4, 4,12,11,13,13,14,14, 4, 7, 7,11,13,14,14, - 14,14, 3, 8, 3,14,14,14,14,14,14,14,10,12,14,14, - 14,14,14,14,14,14, 5,14, 8,14,14,14,14,14,12,14, - 13,14,14,14,14,14,14,14,13,14,10,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14, -}; - -static const static_codebook _44cn1_sm_p8_0 = { - 2, 81, - (char *)_vq_lengthlist__44cn1_sm_p8_0, - 1, -516186112, 1627103232, 4, 0, - (long *)_vq_quantlist__44cn1_sm_p8_0, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p8_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44cn1_sm_p8_1[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,10,11,11,11, 6, 5, 5, - 7, 7, 8, 8,10,10,10,11,11,11, 6, 5, 5, 7, 7, 8, - 8,10,10,11,12,12,12,14, 7, 7, 7, 8, 9, 9,11,11, - 11,12,11,12,17, 7, 7, 8, 7, 9, 9,11,11,12,12,12, - 12,14,11,11, 8, 8,10,10,11,12,12,13,11,12,14,11, - 11, 8, 8,10,10,11,12,12,13,13,12,14,15,14,10,10, - 10,10,11,12,12,12,12,11,14,13,16,10,10,10, 9,12, - 11,12,12,13,14,14,15,14,14,13,10,10,11,11,12,11, - 13,11,14,12,15,13,14,11,10,12,10,12,12,13,13,13, - 13,14,15,15,12,12,11,11,12,11,13,12,14,14,14,14, - 17,12,12,11,10,13,11,13,13, -}; - -static const static_codebook _44cn1_sm_p8_1 = { - 2, 169, - (char *)_vq_lengthlist__44cn1_sm_p8_1, - 1, -522616832, 1620115456, 4, 0, - (long *)_vq_quantlist__44cn1_sm_p8_1, - 0 -}; - -static const long _vq_quantlist__44cn1_sm_p8_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44cn1_sm_p8_2[] = { - 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9,10, 6, 6, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9,10, 6, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9,10, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10,10, 7, 7, 7, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10, 8, 8, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9,11,10,11, 8, 8, 8, 8, 8, 8, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,11,11, 8, 8, 8, - 8, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11,11, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,10,11,11, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11,10,11,11, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11,10,11,11, - 11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,11,11, - 11,11,11,11, 9,10,10,10, 9, 9, 9, 9, 9, 9,11,10, - 11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,11, - 11,11,11,11,11,11,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 10,11,11,11,11,11,11,11,11, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static const static_codebook _44cn1_sm_p8_2 = { - 2, 289, - (char *)_vq_lengthlist__44cn1_sm_p8_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44cn1_sm_p8_2, - 0 -}; - -static const char _huff_lengthlist__44cn1_sm_short[] = { - 5, 6,12,14,12,14,16,17,18, 4, 2, 5,11, 7,10,12, - 14,15, 9, 4, 5,11, 7,10,13,15,18,15, 6, 7, 5, 6, - 8,11,13,16,11, 5, 6, 5, 5, 6, 9,13,15,12, 5, 7, - 6, 5, 6, 9,12,14,12, 6, 7, 8, 6, 7, 9,12,13,14, - 8, 8, 7, 5, 5, 8,10,12,16, 9, 9, 8, 6, 6, 7, 9, - 9, -}; - -static const static_codebook _huff_book__44cn1_sm_short = { - 2, 81, - (char *)_huff_lengthlist__44cn1_sm_short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/floor/floor_books.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/floor/floor_books.h deleted file mode 100644 index 67d5f31a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/floor/floor_books.h +++ /dev/null @@ -1,1546 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebooks autogenerated by huff/huffbuld - - ********************************************************************/ - -#include "codebook.h" - -static const char _huff_lengthlist_line_256x7_0sub1[] = { - 0, 2, 3, 3, 3, 3, 4, 3, 4, -}; - -static const static_codebook _huff_book_line_256x7_0sub1 = { - 1, 9, - (char *)_huff_lengthlist_line_256x7_0sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x7_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 4, 3, 5, 3, - 6, 3, 6, 4, 6, 4, 7, 5, 7, -}; - -static const static_codebook _huff_book_line_256x7_0sub2 = { - 1, 25, - (char *)_huff_lengthlist_line_256x7_0sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x7_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 2, 5, 3, 5, 3, - 6, 3, 6, 4, 7, 6, 7, 8, 7, 9, 8, 9, 9, 9,10, 9, - 11,13,11,13,10,10,13,13,13,13,13,13,12,12,12,12, -}; - -static const static_codebook _huff_book_line_256x7_0sub3 = { - 1, 64, - (char *)_huff_lengthlist_line_256x7_0sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x7_1sub1[] = { - 0, 3, 3, 3, 3, 2, 4, 3, 4, -}; - -static const static_codebook _huff_book_line_256x7_1sub1 = { - 1, 9, - (char *)_huff_lengthlist_line_256x7_1sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x7_1sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 3, 4, 3, 4, 4, - 5, 4, 6, 5, 6, 7, 6, 8, 8, -}; - -static const static_codebook _huff_book_line_256x7_1sub2 = { - 1, 25, - (char *)_huff_lengthlist_line_256x7_1sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x7_1sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 2, 4, 3, 6, 3, 7, - 3, 8, 5, 8, 6, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, -}; - -static const static_codebook _huff_book_line_256x7_1sub3 = { - 1, 64, - (char *)_huff_lengthlist_line_256x7_1sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x7_class0[] = { - 7, 5, 5, 9, 9, 6, 6, 9,12, 8, 7, 8,11, 8, 9,15, - 6, 3, 3, 7, 7, 4, 3, 6, 9, 6, 5, 6, 8, 6, 8,15, - 8, 5, 5, 9, 8, 5, 4, 6,10, 7, 5, 5,11, 8, 7,15, - 14,15,13,13,13,13, 8,11,15,10, 7, 6,11, 9,10,15, -}; - -static const static_codebook _huff_book_line_256x7_class0 = { - 1, 64, - (char *)_huff_lengthlist_line_256x7_class0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x7_class1[] = { - 5, 6, 8,15, 6, 9,10,15,10,11,12,15,15,15,15,15, - 4, 6, 7,15, 6, 7, 8,15, 9, 8, 9,15,15,15,15,15, - 6, 8, 9,15, 7, 7, 8,15,10, 9,10,15,15,15,15,15, - 15,13,15,15,15,10,11,15,15,13,13,15,15,15,15,15, - 4, 6, 7,15, 6, 8, 9,15,10,10,12,15,15,15,15,15, - 2, 5, 6,15, 5, 6, 7,15, 8, 6, 7,15,15,15,15,15, - 5, 6, 8,15, 5, 6, 7,15, 9, 6, 7,15,15,15,15,15, - 14,12,13,15,12,10,11,15,15,15,15,15,15,15,15,15, - 7, 8, 9,15, 9,10,10,15,15,14,14,15,15,15,15,15, - 5, 6, 7,15, 7, 8, 9,15,12, 9,10,15,15,15,15,15, - 7, 7, 9,15, 7, 7, 8,15,12, 8, 9,15,15,15,15,15, - 13,13,14,15,12,11,12,15,15,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, - 13,13,13,15,15,15,15,15,15,15,15,15,15,15,15,15, - 15,12,13,15,15,12,13,15,15,14,15,15,15,15,15,15, - 15,15,15,15,15,15,13,15,15,15,15,15,15,15,15,15, -}; - -static const static_codebook _huff_book_line_256x7_class1 = { - 1, 256, - (char *)_huff_lengthlist_line_256x7_class1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_0sub0[] = { - 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 6, 5, 6, 6, 6, 6, 5, 6, 6, 7, 6, 7, 6, 7, 6, - 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, 8, 7, 9, 7, 9, 7, - 9, 7, 9, 8, 9, 8,10, 8,10, 8,10, 7,10, 6,10, 8, - 10, 8,11, 7,10, 7,11, 8,11,11,12,12,11,11,12,11, - 13,11,13,11,13,12,15,12,13,13,14,14,14,14,14,15, - 15,15,16,14,17,19,19,18,18,18,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, -}; - -static const static_codebook _huff_book_line_512x17_0sub0 = { - 1, 128, - (char *)_huff_lengthlist_line_512x17_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_1sub0[] = { - 2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 8, 7, -}; - -static const static_codebook _huff_book_line_512x17_1sub0 = { - 1, 32, - (char *)_huff_lengthlist_line_512x17_1sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 3, 5, 3, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 6, 5, - 6, 5, 7, 5, 8, 6, 8, 6, 8, 6, 8, 6, 8, 7, 9, 7, - 9, 7,11, 9,11,11,12,11,14,12,14,16,14,16,13,16, - 14,16,12,15,13,16,14,16,13,14,12,15,13,15,13,13, - 13,15,12,14,14,15,13,15,12,15,15,15,15,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15, -}; - -static const static_codebook _huff_book_line_512x17_1sub1 = { - 1, 128, - (char *)_huff_lengthlist_line_512x17_1sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_2sub1[] = { - 0, 4, 5, 4, 4, 4, 5, 4, 4, 4, 5, 4, 5, 4, 5, 3, - 5, 3, -}; - -static const static_codebook _huff_book_line_512x17_2sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_512x17_2sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_2sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 6, 4, 6, 5, - 6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 7, 8, 7, 9, 7, - 9, 8, -}; - -static const static_codebook _huff_book_line_512x17_2sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_512x17_2sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_2sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 3, 3, 4, 3, 4, 4, 5, 5, 6, 6, 7, 7, - 7, 8, 8,11, 8, 9, 9, 9,10,11,11,11, 9,10,10,11, - 11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _huff_book_line_512x17_2sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_512x17_2sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_3sub1[] = { - 0, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, 5, 4, 5, - 5, 5, -}; - -static const static_codebook _huff_book_line_512x17_3sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_512x17_3sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 3, 3, 4, 3, 5, 4, 6, 4, 6, 5, 7, 6, 7, - 6, 8, 6, 8, 7, 9, 8,10, 8,12, 9,13,10,15,10,15, - 11,14, -}; - -static const static_codebook _huff_book_line_512x17_3sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_512x17_3sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 8, 4, 8, 4, 8, 4, 8, 5, 8, 5, 8, 6, 8, - 4, 8, 4, 8, 5, 8, 5, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -}; - -static const static_codebook _huff_book_line_512x17_3sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_512x17_3sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_class1[] = { - 1, 2, 3, 6, 5, 4, 7, 7, -}; - -static const static_codebook _huff_book_line_512x17_class1 = { - 1, 8, - (char *)_huff_lengthlist_line_512x17_class1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_class2[] = { - 3, 3, 3,14, 5, 4, 4,11, 8, 6, 6,10,17,12,11,17, - 6, 5, 5,15, 5, 3, 4,11, 8, 5, 5, 8,16, 9,10,14, - 10, 8, 9,17, 8, 6, 6,13,10, 7, 7,10,16,11,13,14, - 17,17,17,17,17,16,16,16,16,15,16,16,16,16,16,16, -}; - -static const static_codebook _huff_book_line_512x17_class2 = { - 1, 64, - (char *)_huff_lengthlist_line_512x17_class2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_512x17_class3[] = { - 2, 4, 6,17, 4, 5, 7,17, 8, 7,10,17,17,17,17,17, - 3, 4, 6,15, 3, 3, 6,15, 7, 6, 9,17,17,17,17,17, - 6, 8,10,17, 6, 6, 8,16, 9, 8,10,17,17,15,16,17, - 17,17,17,17,12,15,15,16,12,15,15,16,16,16,16,16, -}; - -static const static_codebook _huff_book_line_512x17_class3 = { - 1, 64, - (char *)_huff_lengthlist_line_512x17_class3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x4_class0[] = { - 7, 7, 7,11, 6, 6, 7,11, 7, 6, 6,10,12,10,10,13, - 7, 7, 8,11, 7, 7, 7,11, 7, 6, 7,10,11,10,10,13, - 10,10, 9,12, 9, 9, 9,11, 8, 8, 8,11,13,11,10,14, - 15,15,14,15,15,14,13,14,15,12,12,17,17,17,17,17, - 7, 7, 6, 9, 6, 6, 6, 9, 7, 6, 6, 8,11,11,10,12, - 7, 7, 7, 9, 7, 6, 6, 9, 7, 6, 6, 9,13,10,10,11, - 10, 9, 8,10, 9, 8, 8,10, 8, 8, 7, 9,13,12,10,11, - 17,14,14,13,15,14,12,13,17,13,12,15,17,17,14,17, - 7, 6, 6, 7, 6, 6, 5, 7, 6, 6, 6, 6,11, 9, 9, 9, - 7, 7, 6, 7, 7, 6, 6, 7, 6, 6, 6, 6,10, 9, 8, 9, - 10, 9, 8, 8, 9, 8, 7, 8, 8, 7, 6, 8,11,10, 9,10, - 17,17,12,15,15,15,12,14,14,14,10,12,15,13,12,13, - 11,10, 8,10,11,10, 8, 8,10, 9, 7, 7,10, 9, 9,11, - 11,11, 9,10,11,10, 8, 9,10, 8, 6, 8,10, 9, 9,11, - 14,13,10,12,12,11,10,10, 8, 7, 8,10,10,11,11,12, - 17,17,15,17,17,17,17,17,17,13,12,17,17,17,14,17, -}; - -static const static_codebook _huff_book_line_128x4_class0 = { - 1, 256, - (char *)_huff_lengthlist_line_128x4_class0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x4_0sub0[] = { - 2, 2, 2, 2, -}; - -static const static_codebook _huff_book_line_128x4_0sub0 = { - 1, 4, - (char *)_huff_lengthlist_line_128x4_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x4_0sub1[] = { - 0, 0, 0, 0, 3, 2, 3, 2, 3, 3, -}; - -static const static_codebook _huff_book_line_128x4_0sub1 = { - 1, 10, - (char *)_huff_lengthlist_line_128x4_0sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x4_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 4, 3, 4, 3, - 4, 4, 5, 4, 5, 4, 6, 5, 6, -}; - -static const static_codebook _huff_book_line_128x4_0sub2 = { - 1, 25, - (char *)_huff_lengthlist_line_128x4_0sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x4_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3, - 5, 4, 6, 5, 6, 5, 7, 6, 6, 7, 7, 9, 9,11,11,16, - 11,14,10,11,11,13,16,15,15,15,15,15,15,15,15,15, -}; - -static const static_codebook _huff_book_line_128x4_0sub3 = { - 1, 64, - (char *)_huff_lengthlist_line_128x4_0sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4_class0[] = { - 6, 7, 7,12, 6, 6, 7,12, 7, 6, 6,10,15,12,11,13, - 7, 7, 8,13, 7, 7, 8,12, 7, 7, 7,11,12,12,11,13, - 10, 9, 9,11, 9, 9, 9,10,10, 8, 8,12,14,12,12,14, - 11,11,12,14,11,12,11,15,15,12,13,15,15,15,15,15, - 6, 6, 7,10, 6, 6, 6,11, 7, 6, 6, 9,14,12,11,13, - 7, 7, 7,10, 6, 6, 7, 9, 7, 7, 6,10,13,12,10,12, - 9, 9, 9,11, 9, 9, 8, 9, 9, 8, 8,10,13,12,10,12, - 12,12,11,13,12,12,11,12,15,13,12,15,15,15,14,14, - 6, 6, 6, 8, 6, 6, 5, 6, 7, 7, 6, 5,11,10, 9, 8, - 7, 6, 6, 7, 6, 6, 5, 6, 7, 7, 6, 6,11,10, 9, 8, - 8, 8, 8, 9, 8, 8, 7, 8, 8, 8, 6, 7,11,10, 9, 9, - 14,11,10,14,14,11,10,15,13,11, 9,11,15,12,12,11, - 11, 9, 8, 8,10, 9, 8, 9,11,10, 9, 8,12,11,12,11, - 13,10, 8, 9,11,10, 8, 9,10, 9, 8, 9,10, 8,12,12, - 15,11,10,10,13,11,10,10, 8, 8, 7,12,10, 9,11,12, - 15,12,11,15,13,11,11,15,12,14,11,13,15,15,13,13, -}; - -static const static_codebook _huff_book_line_256x4_class0 = { - 1, 256, - (char *)_huff_lengthlist_line_256x4_class0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4_0sub0[] = { - 2, 2, 2, 2, -}; - -static const static_codebook _huff_book_line_256x4_0sub0 = { - 1, 4, - (char *)_huff_lengthlist_line_256x4_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4_0sub1[] = { - 0, 0, 0, 0, 2, 2, 3, 3, 3, 3, -}; - -static const static_codebook _huff_book_line_256x4_0sub1 = { - 1, 10, - (char *)_huff_lengthlist_line_256x4_0sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 3, 4, 3, 4, 3, - 5, 3, 5, 4, 5, 4, 6, 4, 6, -}; - -static const static_codebook _huff_book_line_256x4_0sub2 = { - 1, 25, - (char *)_huff_lengthlist_line_256x4_0sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 4, 3, 5, 3, 5, 3, - 6, 4, 7, 4, 7, 5, 7, 6, 7, 6, 7, 8,10,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,12,12,12,12,12, -}; - -static const static_codebook _huff_book_line_256x4_0sub3 = { - 1, 64, - (char *)_huff_lengthlist_line_256x4_0sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_class0[] = { - 10, 7, 8,13, 9, 6, 7,11,10, 8, 8,12,17,17,17,17, - 7, 5, 5, 9, 6, 4, 4, 8, 8, 5, 5, 8,16,14,13,16, - 7, 5, 5, 7, 6, 3, 3, 5, 8, 5, 4, 7,14,12,12,15, - 10, 7, 8, 9, 7, 5, 5, 6, 9, 6, 5, 5,15,12, 9,10, -}; - -static const static_codebook _huff_book_line_128x7_class0 = { - 1, 64, - (char *)_huff_lengthlist_line_128x7_class0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_class1[] = { - 8,13,17,17, 8,11,17,17,11,13,17,17,17,17,17,17, - 6,10,16,17, 6,10,15,17, 8,10,16,17,17,17,17,17, - 9,13,15,17, 8,11,17,17,10,12,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, - 6,11,15,17, 7,10,15,17, 8,10,17,17,17,15,17,17, - 4, 8,13,17, 4, 7,13,17, 6, 8,15,17,16,15,17,17, - 6,11,15,17, 6, 9,13,17, 8,10,17,17,15,17,17,17, - 16,17,17,17,12,14,15,17,13,14,15,17,17,17,17,17, - 5,10,14,17, 5, 9,14,17, 7, 9,15,17,15,15,17,17, - 3, 7,12,17, 3, 6,11,17, 5, 7,13,17,12,12,17,17, - 5, 9,14,17, 3, 7,11,17, 5, 8,13,17,13,11,16,17, - 12,17,17,17, 9,14,15,17,10,11,14,17,16,14,17,17, - 8,12,17,17, 8,12,17,17,10,12,17,17,17,17,17,17, - 5,10,17,17, 5, 9,15,17, 7, 9,17,17,13,13,17,17, - 7,11,17,17, 6,10,15,17, 7, 9,15,17,12,11,17,17, - 12,15,17,17,11,14,17,17,11,10,15,17,17,16,17,17, -}; - -static const static_codebook _huff_book_line_128x7_class1 = { - 1, 256, - (char *)_huff_lengthlist_line_128x7_class1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_0sub1[] = { - 0, 3, 3, 3, 3, 3, 3, 3, 3, -}; - -static const static_codebook _huff_book_line_128x7_0sub1 = { - 1, 9, - (char *)_huff_lengthlist_line_128x7_0sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 4, 4, 4, - 5, 4, 5, 4, 5, 4, 6, 4, 6, -}; - -static const static_codebook _huff_book_line_128x7_0sub2 = { - 1, 25, - (char *)_huff_lengthlist_line_128x7_0sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 5, 3, 5, 3, 5, 4, - 5, 4, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 7, 8, 9,11,13,13,13,13,13,13,13,13,13,13,13,13, -}; - -static const static_codebook _huff_book_line_128x7_0sub3 = { - 1, 64, - (char *)_huff_lengthlist_line_128x7_0sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_1sub1[] = { - 0, 3, 3, 2, 3, 3, 4, 3, 4, -}; - -static const static_codebook _huff_book_line_128x7_1sub1 = { - 1, 9, - (char *)_huff_lengthlist_line_128x7_1sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_1sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 3, 6, 3, 6, 3, - 6, 3, 7, 3, 8, 4, 9, 4, 9, -}; - -static const static_codebook _huff_book_line_128x7_1sub2 = { - 1, 25, - (char *)_huff_lengthlist_line_128x7_1sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x7_1sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 7, 2, 7, 3, 8, 4, - 9, 5, 9, 8,10,11,11,12,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,13,13,13,13, -}; - -static const static_codebook _huff_book_line_128x7_1sub3 = { - 1, 64, - (char *)_huff_lengthlist_line_128x7_1sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_class1[] = { - 1, 6, 3, 7, 2, 4, 5, 7, -}; - -static const static_codebook _huff_book_line_128x11_class1 = { - 1, 8, - (char *)_huff_lengthlist_line_128x11_class1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_class2[] = { - 1, 6,12,16, 4,12,15,16, 9,15,16,16,16,16,16,16, - 2, 5,11,16, 5,11,13,16, 9,13,16,16,16,16,16,16, - 4, 8,12,16, 5, 9,12,16, 9,13,15,16,16,16,16,16, - 15,16,16,16,11,14,13,16,12,15,16,16,16,16,16,15, -}; - -static const static_codebook _huff_book_line_128x11_class2 = { - 1, 64, - (char *)_huff_lengthlist_line_128x11_class2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_class3[] = { - 7, 6, 9,17, 7, 6, 8,17,12, 9,11,16,16,16,16,16, - 5, 4, 7,16, 5, 3, 6,14, 9, 6, 8,15,16,16,16,16, - 5, 4, 6,13, 3, 2, 4,11, 7, 4, 6,13,16,11,10,14, - 12,12,12,16, 9, 7,10,15,12, 9,11,16,16,15,15,16, -}; - -static const static_codebook _huff_book_line_128x11_class3 = { - 1, 64, - (char *)_huff_lengthlist_line_128x11_class3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_0sub0[] = { - 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 6, 6, 6, 7, 6, - 7, 6, 7, 6, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, 8, 7, - 8, 7, 8, 7, 8, 7, 9, 7, 9, 8, 9, 8, 9, 8,10, 8, - 10, 9,10, 9,10, 9,11, 9,11, 9,10,10,11,10,11,10, - 11,11,11,11,11,11,12,13,14,14,14,15,15,16,16,16, - 17,15,16,15,16,16,17,17,16,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17, -}; - -static const static_codebook _huff_book_line_128x11_0sub0 = { - 1, 128, - (char *)_huff_lengthlist_line_128x11_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_1sub0[] = { - 2, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, - 6, 5, 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 8, 6, -}; - -static const static_codebook _huff_book_line_128x11_1sub0 = { - 1, 32, - (char *)_huff_lengthlist_line_128x11_1sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 5, 3, 5, 3, 6, 4, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4, - 8, 4, 9, 5, 9, 5, 9, 5, 9, 6,10, 6,10, 6,11, 7, - 10, 7,10, 8,11, 9,11, 9,11,10,11,11,12,11,11,12, - 15,15,12,14,11,14,12,14,11,14,13,14,12,14,11,14, - 11,14,12,14,11,14,11,14,13,13,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, -}; - -static const static_codebook _huff_book_line_128x11_1sub1 = { - 1, 128, - (char *)_huff_lengthlist_line_128x11_1sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_2sub1[] = { - 0, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, - 5, 5, -}; - -static const static_codebook _huff_book_line_128x11_2sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_128x11_2sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_2sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 3, 4, 4, 4, 4, 5, 4, 5, 4, 6, 5, 7, - 5, 7, 6, 8, 6, 8, 6, 9, 7, 9, 7,10, 7, 9, 8,11, - 8,11, -}; - -static const static_codebook _huff_book_line_128x11_2sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_128x11_2sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_2sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 8, 3, 8, 4, 8, 4, 8, 6, 8, 5, 8, 4, 8, - 4, 8, 6, 8, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -}; - -static const static_codebook _huff_book_line_128x11_2sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_128x11_2sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_3sub1[] = { - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, - 5, 4, -}; - -static const static_codebook _huff_book_line_128x11_3sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_128x11_3sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 3, 5, 4, 6, 4, 6, 4, 7, 4, 7, 4, 8, 4, - 8, 4, 9, 4, 9, 4,10, 4,10, 5,10, 5,11, 5,12, 6, - 12, 6, -}; - -static const static_codebook _huff_book_line_128x11_3sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_128x11_3sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x11_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 1, 6, 3, 7, 3, 8, 4, 8, 5, 8, 8, 8, 9, - 7, 8, 8, 7, 7, 7, 8, 9,10, 9, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, -}; - -static const static_codebook _huff_book_line_128x11_3sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_128x11_3sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_class1[] = { - 1, 3, 4, 7, 2, 5, 6, 7, -}; - -static const static_codebook _huff_book_line_128x17_class1 = { - 1, 8, - (char *)_huff_lengthlist_line_128x17_class1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_class2[] = { - 1, 4,10,19, 3, 8,13,19, 7,12,19,19,19,19,19,19, - 2, 6,11,19, 8,13,19,19, 9,11,19,19,19,19,19,19, - 6, 7,13,19, 9,13,19,19,10,13,18,18,18,18,18,18, - 18,18,18,18,18,18,18,18,18,18,18,18,18,18,18,18, -}; - -static const static_codebook _huff_book_line_128x17_class2 = { - 1, 64, - (char *)_huff_lengthlist_line_128x17_class2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_class3[] = { - 3, 6,10,17, 4, 8,11,20, 8,10,11,20,20,20,20,20, - 2, 4, 8,18, 4, 6, 8,17, 7, 8,10,20,20,17,20,20, - 3, 5, 8,17, 3, 4, 6,17, 8, 8,10,17,17,12,16,20, - 13,13,15,20,10,10,12,20,15,14,15,20,20,20,19,19, -}; - -static const static_codebook _huff_book_line_128x17_class3 = { - 1, 64, - (char *)_huff_lengthlist_line_128x17_class3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_0sub0[] = { - 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5, - 8, 5, 8, 5, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, 9, 6, - 9, 6, 9, 7, 9, 7, 9, 7, 9, 7,10, 7,10, 8,10, 8, - 10, 8,10, 8,10, 8,11, 8,11, 8,11, 8,11, 8,11, 9, - 12, 9,12, 9,12, 9,12, 9,12,10,12,10,13,11,13,11, - 14,12,14,13,15,14,16,14,17,15,18,16,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, -}; - -static const static_codebook _huff_book_line_128x17_0sub0 = { - 1, 128, - (char *)_huff_lengthlist_line_128x17_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_1sub0[] = { - 2, 5, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, - 6, 5, 6, 5, 7, 6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7, -}; - -static const static_codebook _huff_book_line_128x17_1sub0 = { - 1, 32, - (char *)_huff_lengthlist_line_128x17_1sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 3, 5, 3, 5, 3, 6, 3, 6, 4, 6, 4, 7, 4, 7, 5, - 8, 5, 8, 6, 9, 7, 9, 7, 9, 8,10, 9,10, 9,11,10, - 11,11,11,11,11,11,12,12,12,13,12,13,12,14,12,15, - 12,14,12,16,13,17,13,17,14,17,14,16,13,17,14,17, - 14,17,15,17,15,15,16,17,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,16,16,16,16,16,16,16,16,16,16, -}; - -static const static_codebook _huff_book_line_128x17_1sub1 = { - 1, 128, - (char *)_huff_lengthlist_line_128x17_1sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_2sub1[] = { - 0, 4, 5, 4, 6, 4, 8, 3, 9, 3, 9, 2, 9, 3, 8, 4, - 9, 4, -}; - -static const static_codebook _huff_book_line_128x17_2sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_128x17_2sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_2sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 1, 5, 3, 5, 3, 5, 4, 7, 5,10, 7,10, 7, - 12,10,14,10,14, 9,14,11,14,14,14,13,13,13,13,13, - 13,13, -}; - -static const static_codebook _huff_book_line_128x17_2sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_128x17_2sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_2sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, -}; - -static const static_codebook _huff_book_line_128x17_2sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_128x17_2sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_3sub1[] = { - 0, 4, 4, 4, 4, 4, 4, 4, 5, 3, 5, 3, 5, 4, 6, 4, - 6, 4, -}; - -static const static_codebook _huff_book_line_128x17_3sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_128x17_3sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 5, 3, 6, 3, 6, 4, 7, 4, 7, 4, 7, 4, 8, 4, - 8, 4, 8, 4, 8, 4, 9, 4, 9, 5,10, 5,10, 7,10, 8, - 10, 8, -}; - -static const static_codebook _huff_book_line_128x17_3sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_128x17_3sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_128x17_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 4, 7, 5, 8, 5,11, - 6,10, 6,12, 7,12, 7,12, 8,12, 8,12,10,12,12,12, - 12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, -}; - -static const static_codebook _huff_book_line_128x17_3sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_128x17_3sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_class1[] = { - 2,10, 8,14, 7,12,11,14, 1, 5, 3, 7, 4, 9, 7,13, -}; - -static const static_codebook _huff_book_line_1024x27_class1 = { - 1, 16, - (char *)_huff_lengthlist_line_1024x27_class1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_class2[] = { - 1, 4, 2, 6, 3, 7, 5, 7, -}; - -static const static_codebook _huff_book_line_1024x27_class2 = { - 1, 8, - (char *)_huff_lengthlist_line_1024x27_class2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_class3[] = { - 1, 5, 7,21, 5, 8, 9,21,10, 9,12,20,20,16,20,20, - 4, 8, 9,20, 6, 8, 9,20,11,11,13,20,20,15,17,20, - 9,11,14,20, 8,10,15,20,11,13,15,20,20,20,20,20, - 20,20,20,20,13,20,20,20,18,18,20,20,20,20,20,20, - 3, 6, 8,20, 6, 7, 9,20,10, 9,12,20,20,20,20,20, - 5, 7, 9,20, 6, 6, 9,20,10, 9,12,20,20,20,20,20, - 8,10,13,20, 8, 9,12,20,11,10,12,20,20,20,20,20, - 18,20,20,20,15,17,18,20,18,17,18,20,20,20,20,20, - 7,10,12,20, 8, 9,11,20,14,13,14,20,20,20,20,20, - 6, 9,12,20, 7, 8,11,20,12,11,13,20,20,20,20,20, - 9,11,15,20, 8,10,14,20,12,11,14,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, - 11,16,18,20,15,15,17,20,20,17,20,20,20,20,20,20, - 9,14,16,20,12,12,15,20,17,15,18,20,20,20,20,20, - 16,19,18,20,15,16,20,20,17,17,20,20,20,20,20,20, - 20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20, -}; - -static const static_codebook _huff_book_line_1024x27_class3 = { - 1, 256, - (char *)_huff_lengthlist_line_1024x27_class3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_class4[] = { - 2, 3, 7,13, 4, 4, 7,15, 8, 6, 9,17,21,16,15,21, - 2, 5, 7,11, 5, 5, 7,14, 9, 7,10,16,17,15,16,21, - 4, 7,10,17, 7, 7, 9,15,11, 9,11,16,21,18,15,21, - 18,21,21,21,15,17,17,19,21,19,18,20,21,21,21,20, -}; - -static const static_codebook _huff_book_line_1024x27_class4 = { - 1, 64, - (char *)_huff_lengthlist_line_1024x27_class4, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_0sub0[] = { - 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 5, 6, 5, 6, 5, 6, 5, 7, 5, 7, 5, 7, 5, 7, 5, - 8, 6, 8, 6, 8, 6, 9, 6, 9, 6,10, 6,10, 6,11, 6, - 11, 7,11, 7,12, 7,12, 7,12, 7,12, 7,12, 7,12, 7, - 12, 7,12, 8,13, 8,12, 8,12, 8,13, 8,13, 9,13, 9, - 13, 9,13, 9,12,10,12,10,13,10,14,11,14,12,14,13, - 14,13,14,14,15,16,15,15,15,14,15,17,21,22,22,21, - 22,22,22,22,22,22,21,21,21,21,21,21,21,21,21,21, -}; - -static const static_codebook _huff_book_line_1024x27_0sub0 = { - 1, 128, - (char *)_huff_lengthlist_line_1024x27_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_1sub0[] = { - 2, 5, 5, 4, 5, 4, 5, 4, 5, 4, 6, 5, 6, 5, 6, 5, - 6, 5, 7, 5, 7, 6, 8, 6, 8, 6, 8, 6, 9, 6, 9, 6, -}; - -static const static_codebook _huff_book_line_1024x27_1sub0 = { - 1, 32, - (char *)_huff_lengthlist_line_1024x27_1sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 8, 5, 8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 4, - 9, 4, 9, 4, 9, 4, 8, 4, 8, 4, 9, 5, 9, 5, 9, 5, - 9, 5, 9, 6,10, 6,10, 7,10, 8,11, 9,11,11,12,13, - 12,14,13,15,13,15,14,16,14,17,15,17,15,15,16,16, - 15,16,16,16,15,18,16,15,17,17,19,19,19,19,19,19, - 19,19,19,19,19,19,19,19,19,19,19,19,19,19,19,19, -}; - -static const static_codebook _huff_book_line_1024x27_1sub1 = { - 1, 128, - (char *)_huff_lengthlist_line_1024x27_1sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_2sub0[] = { - 1, 5, 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 6, 7, 7, 7, 7, 8, 7, 8, 8, 9, 8,10, 9,10, 9, -}; - -static const static_codebook _huff_book_line_1024x27_2sub0 = { - 1, 32, - (char *)_huff_lengthlist_line_1024x27_2sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_2sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 4, 3, 4, 3, 4, 4, 5, 4, 5, 4, 5, 5, 6, 5, 6, 5, - 7, 5, 7, 6, 7, 6, 8, 7, 8, 7, 8, 7, 9, 8, 9, 9, - 9, 9,10,10,10,11, 9,12, 9,12, 9,15,10,14, 9,13, - 10,13,10,12,10,12,10,13,10,12,11,13,11,14,12,13, - 13,14,14,13,14,15,14,16,13,13,14,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,15,15, -}; - -static const static_codebook _huff_book_line_1024x27_2sub1 = { - 1, 128, - (char *)_huff_lengthlist_line_1024x27_2sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_3sub1[] = { - 0, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, 4, 4, 4, 5, - 5, 5, -}; - -static const static_codebook _huff_book_line_1024x27_3sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_1024x27_3sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 4, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5, 6, - 5, 7, 5, 8, 6, 8, 6, 9, 7,10, 7,10, 8,10, 8,11, - 9,11, -}; - -static const static_codebook _huff_book_line_1024x27_3sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_1024x27_3sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 7, 3, 8, 3,10, 3, 8, 3, 9, 3, 8, 4, 9, - 4, 9, 5, 9, 6,10, 6, 9, 7,11, 7,12, 9,13,10,13, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, -}; - -static const static_codebook _huff_book_line_1024x27_3sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_1024x27_3sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_4sub1[] = { - 0, 4, 5, 4, 5, 4, 5, 4, 5, 3, 5, 3, 5, 3, 5, 4, - 5, 4, -}; - -static const static_codebook _huff_book_line_1024x27_4sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_1024x27_4sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_4sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 4, 2, 4, 2, 5, 3, 5, 4, 6, 6, 6, 7, 7, 8, - 7, 8, 7, 8, 7, 9, 8, 9, 8, 9, 8,10, 8,11, 9,12, - 9,12, -}; - -static const static_codebook _huff_book_line_1024x27_4sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_1024x27_4sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_1024x27_4sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2, 5, 2, 6, 3, 6, 4, 7, 4, 7, 5, 9, 5,11, - 6,11, 6,11, 7,11, 6,11, 6,11, 9,11, 8,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10, -}; - -static const static_codebook _huff_book_line_1024x27_4sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_1024x27_4sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_class1[] = { - 2, 6, 8, 9, 7,11,13,13, 1, 3, 5, 5, 6, 6,12,10, -}; - -static const static_codebook _huff_book_line_2048x27_class1 = { - 1, 16, - (char *)_huff_lengthlist_line_2048x27_class1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_class2[] = { - 1, 2, 3, 6, 4, 7, 5, 7, -}; - -static const static_codebook _huff_book_line_2048x27_class2 = { - 1, 8, - (char *)_huff_lengthlist_line_2048x27_class2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_class3[] = { - 3, 3, 6,16, 5, 5, 7,16, 9, 8,11,16,16,16,16,16, - 5, 5, 8,16, 5, 5, 7,16, 8, 7, 9,16,16,16,16,16, - 9, 9,12,16, 6, 8,11,16, 9,10,11,16,16,16,16,16, - 16,16,16,16,13,16,16,16,15,16,16,16,16,16,16,16, - 5, 4, 7,16, 6, 5, 8,16, 9, 8,10,16,16,16,16,16, - 5, 5, 7,15, 5, 4, 6,15, 7, 6, 8,16,16,16,16,16, - 9, 9,11,15, 7, 7, 9,16, 8, 8, 9,16,16,16,16,16, - 16,16,16,16,15,15,15,16,15,15,14,16,16,16,16,16, - 8, 8,11,16, 8, 9,10,16,11,10,14,16,16,16,16,16, - 6, 8,10,16, 6, 7,10,16, 8, 8,11,16,14,16,16,16, - 10,11,14,16, 9, 9,11,16,10,10,11,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,15,16,16,16,16,16,16,16,16,16,16,16, - 12,16,15,16,12,14,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, - 16,16,16,16,16,16,16,16,16,16,16,16,16,16,16,16, -}; - -static const static_codebook _huff_book_line_2048x27_class3 = { - 1, 256, - (char *)_huff_lengthlist_line_2048x27_class3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_class4[] = { - 2, 4, 7,13, 4, 5, 7,15, 8, 7,10,16,16,14,16,16, - 2, 4, 7,16, 3, 4, 7,14, 8, 8,10,16,16,16,15,16, - 6, 8,11,16, 7, 7, 9,16,11, 9,13,16,16,16,15,16, - 16,16,16,16,14,16,16,16,16,16,16,16,16,16,16,16, -}; - -static const static_codebook _huff_book_line_2048x27_class4 = { - 1, 64, - (char *)_huff_lengthlist_line_2048x27_class4, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_0sub0[] = { - 5, 5, 5, 5, 5, 5, 6, 5, 6, 5, 6, 5, 6, 5, 6, 5, - 6, 5, 7, 5, 7, 5, 7, 5, 8, 5, 8, 5, 8, 5, 9, 5, - 9, 6,10, 6,10, 6,11, 6,11, 6,11, 6,11, 6,11, 6, - 11, 6,11, 6,12, 7,11, 7,11, 7,11, 7,11, 7,10, 7, - 11, 7,11, 7,12, 7,11, 8,11, 8,11, 8,11, 8,13, 8, - 12, 9,11, 9,11, 9,11,10,12,10,12, 9,12,10,12,11, - 14,12,16,12,12,11,14,16,17,17,17,17,17,17,17,17, - 17,17,17,17,17,17,17,17,17,17,17,17,16,16,16,16, -}; - -static const static_codebook _huff_book_line_2048x27_0sub0 = { - 1, 128, - (char *)_huff_lengthlist_line_2048x27_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_1sub0[] = { - 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 6, 6, 6, 6, 6, 6, 7, 6, 7, 6, 7, 6, 7, 6, -}; - -static const static_codebook _huff_book_line_2048x27_1sub0 = { - 1, 32, - (char *)_huff_lengthlist_line_2048x27_1sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_1sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 6, 5, 7, 5, 7, 4, 7, 4, 8, 4, 8, 4, 8, 4, 8, 3, - 8, 4, 9, 4, 9, 4, 9, 4, 9, 4, 9, 5, 9, 5, 9, 6, - 9, 7, 9, 8, 9, 9, 9,10, 9,11, 9,14, 9,15,10,15, - 10,15,10,15,10,15,11,15,10,14,12,14,11,14,13,14, - 13,15,15,15,12,15,15,15,13,15,13,15,13,15,15,15, - 15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,14, -}; - -static const static_codebook _huff_book_line_2048x27_1sub1 = { - 1, 128, - (char *)_huff_lengthlist_line_2048x27_1sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_2sub0[] = { - 2, 4, 5, 4, 5, 4, 5, 4, 5, 5, 5, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, -}; - -static const static_codebook _huff_book_line_2048x27_2sub0 = { - 1, 32, - (char *)_huff_lengthlist_line_2048x27_2sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_2sub1[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 3, 4, 3, 4, 3, 4, 4, 5, 4, 5, 5, 5, 6, 6, 6, 7, - 6, 8, 6, 8, 6, 9, 7,10, 7,10, 7,10, 7,12, 7,12, - 7,12, 9,12,11,12,10,12,10,12,11,12,12,12,10,12, - 10,12,10,12, 9,12,11,12,12,12,12,12,11,12,11,12, - 12,12,12,12,12,12,12,12,10,10,12,12,12,12,12,10, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, -}; - -static const static_codebook _huff_book_line_2048x27_2sub1 = { - 1, 128, - (char *)_huff_lengthlist_line_2048x27_2sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_3sub1[] = { - 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 5, 5, -}; - -static const static_codebook _huff_book_line_2048x27_3sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_2048x27_3sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_3sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 6, - 6, 7, 6, 7, 6, 8, 6, 9, 7, 9, 7, 9, 9,11, 9,12, - 10,12, -}; - -static const static_codebook _huff_book_line_2048x27_3sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_2048x27_3sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_3sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 3, 7, 3, 7, 5, 7, 7, 7, 7, 7, 6, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, -}; - -static const static_codebook _huff_book_line_2048x27_3sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_2048x27_3sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_4sub1[] = { - 0, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 5, 4, 5, 4, - 4, 5, -}; - -static const static_codebook _huff_book_line_2048x27_4sub1 = { - 1, 18, - (char *)_huff_lengthlist_line_2048x27_4sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_4sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 2, 4, 3, 4, 4, 4, 5, 5, 6, 5, 6, 5, 7, - 6, 6, 6, 7, 7, 7, 8, 9, 9, 9,12,10,11,10,10,12, - 10,10, -}; - -static const static_codebook _huff_book_line_2048x27_4sub2 = { - 1, 50, - (char *)_huff_lengthlist_line_2048x27_4sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_2048x27_4sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 3, 6, 5, 7, 5, 7, 7, 7, 7, 7, 5, 7, 5, 7, - 5, 7, 5, 7, 7, 7, 7, 7, 4, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, -}; - -static const static_codebook _huff_book_line_2048x27_4sub3 = { - 1, 128, - (char *)_huff_lengthlist_line_2048x27_4sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4low_class0[] = { - 4, 5, 6,11, 5, 5, 6,10, 7, 7, 6, 6,14,13, 9, 9, - 6, 6, 6,10, 6, 6, 6, 9, 8, 7, 7, 9,14,12, 8,11, - 8, 7, 7,11, 8, 8, 7,11, 9, 9, 7, 9,13,11, 9,13, - 19,19,18,19,15,16,16,19,11,11,10,13,10,10, 9,15, - 5, 5, 6,13, 6, 6, 6,11, 8, 7, 6, 7,14,11,10,11, - 6, 6, 6,12, 7, 6, 6,11, 8, 7, 7,11,13,11, 9,11, - 9, 7, 6,12, 8, 7, 6,12, 9, 8, 8,11,13,10, 7,13, - 19,19,17,19,17,14,14,19,12,10, 8,12,13,10, 9,16, - 7, 8, 7,12, 7, 7, 7,11, 8, 7, 7, 8,12,12,11,11, - 8, 8, 7,12, 8, 7, 6,11, 8, 7, 7,10,10,11,10,11, - 9, 8, 8,13, 9, 8, 7,12,10, 9, 7,11, 9, 8, 7,11, - 18,18,15,18,18,16,17,18,15,11,10,18,11, 9, 9,18, - 16,16,13,16,12,11,10,16,12,11, 9, 6,15,12,11,13, - 16,16,14,14,13,11,12,16,12, 9, 9,13,13,10,10,12, - 17,18,17,17,14,15,14,16,14,12,14,15,12,10,11,12, - 18,18,18,18,18,18,18,18,18,12,13,18,16,11, 9,18, -}; - -static const static_codebook _huff_book_line_256x4low_class0 = { - 1, 256, - (char *)_huff_lengthlist_line_256x4low_class0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4low_0sub0[] = { - 1, 3, 2, 3, -}; - -static const static_codebook _huff_book_line_256x4low_0sub0 = { - 1, 4, - (char *)_huff_lengthlist_line_256x4low_0sub0, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4low_0sub1[] = { - 0, 0, 0, 0, 2, 3, 2, 3, 3, 3, -}; - -static const static_codebook _huff_book_line_256x4low_0sub1 = { - 1, 10, - (char *)_huff_lengthlist_line_256x4low_0sub1, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4low_0sub2[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 4, 3, 4, - 4, 4, 4, 4, 5, 5, 5, 6, 6, -}; - -static const static_codebook _huff_book_line_256x4low_0sub2 = { - 1, 25, - (char *)_huff_lengthlist_line_256x4low_0sub2, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist_line_256x4low_0sub3[] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 2, 4, 3, 5, 4, - 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 7, 7, 8, 6, 9, - 7,12,11,16,13,16,12,15,13,15,12,14,12,15,15,15, -}; - -static const static_codebook _huff_book_line_256x4low_0sub3 = { - 1, 64, - (char *)_huff_lengthlist_line_256x4low_0sub3, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/uncoupled/res_books_uncoupled.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/uncoupled/res_books_uncoupled.h deleted file mode 100644 index 3d658ec4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/books/uncoupled/res_books_uncoupled.h +++ /dev/null @@ -1,7757 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: static codebooks autogenerated by huff/huffbuld - - ********************************************************************/ - -#include "codebook.h" - -static const long _vq_quantlist__16u0__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u0__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 8, 5, 8, 8, 8,10,10, 8, - 10,11, 5, 8, 8, 8,10,10, 8,10,10, 4, 9, 9, 9,12, - 11, 8,11,11, 8,12,11,10,12,14,10,13,13, 7,11,11, - 10,14,12,11,14,14, 4, 9, 9, 8,11,11, 9,11,12, 7, - 11,11,10,13,14,10,12,14, 8,11,12,10,14,14,10,13, - 12, -}; - -static const static_codebook _16u0__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__16u0__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16u0__p1_0, - 0 -}; - -static const long _vq_quantlist__16u0__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u0__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 9, 7, - 8, 9, 5, 7, 7, 7, 9, 8, 7, 9, 7, 4, 7, 7, 7, 9, - 9, 7, 8, 8, 6, 9, 8, 7, 8,11, 9,11,10, 6, 8, 9, - 8,11, 8, 9,10,11, 4, 7, 7, 7, 8, 8, 7, 9, 9, 6, - 9, 8, 9,11,10, 8, 8,11, 6, 8, 9, 9,10,11, 8,11, - 8, -}; - -static const static_codebook _16u0__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__16u0__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16u0__p2_0, - 0 -}; - -static const long _vq_quantlist__16u0__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16u0__p3_0[] = { - 1, 5, 5, 7, 7, 6, 7, 7, 8, 8, 6, 7, 8, 8, 8, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 9, 8,10,10, 8,10, - 10,11,11, 8,10,10,11,11,10,11,10,13,12, 9,11,10, - 13,13, 6, 8, 9,10,10, 8,10,10,11,11, 8,10,10,11, - 11, 9,10,11,13,12,10,10,11,12,12, 8,11,11,14,13, - 10,12,11,15,13, 9,12,11,15,14,12,14,13,16,14,12, - 13,13,17,14, 8,11,11,13,14, 9,11,12,14,15,10,11, - 12,13,15,11,13,13,14,16,12,13,14,14,16, 5, 9, 9, - 11,11, 9,11,11,12,12, 8,11,11,12,12,11,12,12,15, - 14,10,12,12,15,15, 8,11,11,13,12,10,12,12,13,13, - 10,12,12,14,13,12,12,13,14,15,11,13,13,17,16, 7, - 11,11,13,13,10,12,12,14,13,10,12,12,13,14,12,13, - 12,15,14,11,13,13,15,14, 9,12,12,16,15,11,13,13, - 17,16,10,13,13,16,16,13,14,15,15,16,13,15,14,19, - 17, 9,12,12,14,16,11,13,13,15,16,10,13,13,17,16, - 13,14,13,17,15,12,15,15,16,17, 5, 9, 9,11,11, 8, - 11,11,13,12, 9,11,11,12,12,10,12,12,14,15,11,12, - 12,14,14, 7,11,10,13,12,10,12,12,14,13,10,11,12, - 13,13,11,13,13,15,16,12,12,13,15,15, 7,11,11,13, - 13,10,13,13,14,14,10,12,12,13,13,11,13,13,16,15, - 12,13,13,15,14, 9,12,12,15,15,10,13,13,17,16,11, - 12,13,15,15,12,15,14,18,18,13,14,14,16,17, 9,12, - 12,15,16,10,13,13,15,16,11,13,13,15,16,13,15,15, - 17,17,13,15,14,16,15, 7,11,11,15,16,10,13,12,16, - 17,10,12,13,15,17,15,16,16,18,17,13,15,15,17,18, - 8,12,12,16,16,11,13,14,17,18,11,13,13,18,16,15, - 17,16,17,19,14,15,15,17,16, 8,12,12,16,15,11,14, - 13,18,17,11,13,14,18,17,15,16,16,18,17,13,16,16, - 18,18,11,15,14,18,17,13,14,15,18, 0,12,15,15, 0, - 17,17,16,17,17,18,14,16,18,18, 0,11,14,14,17, 0, - 12,15,14,17,19,12,15,14,18, 0,15,18,16, 0,17,14, - 18,16,18, 0, 7,11,11,16,15,10,12,12,18,16,10,13, - 13,16,15,13,15,14,17,17,14,16,16,19,18, 8,12,12, - 16,16,11,13,13,18,16,11,13,14,17,16,14,15,15,19, - 18,15,16,16, 0,19, 8,12,12,16,17,11,13,13,17,17, - 11,14,13,17,17,13,15,15,17,19,15,17,17,19, 0,11, - 14,15,19,17,12,15,16,18,18,12,14,15,19,17,14,16, - 17, 0,18,16,16,19,17, 0,11,14,14,18,19,12,15,14, - 17,17,13,16,14,17,16,14,17,16,18,18,15,18,15, 0, - 18, -}; - -static const static_codebook _16u0__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__16u0__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16u0__p3_0, - 0 -}; - -static const long _vq_quantlist__16u0__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16u0__p4_0[] = { - 3, 5, 5, 8, 8, 6, 6, 6, 9, 9, 6, 6, 6, 9, 9, 9, - 10, 9,11,11, 9, 9, 9,11,11, 6, 7, 7,10,10, 7, 7, - 8,10,10, 7, 7, 8,10,10,10,10,10,11,12, 9,10,10, - 11,12, 6, 7, 7,10,10, 7, 8, 7,10,10, 7, 8, 7,10, - 10,10,11,10,12,11,10,10,10,13,10, 9,10,10,12,12, - 10,11,10,14,12, 9,11,11,13,13,11,12,13,13,13,11, - 12,12,15,13, 9,10,10,12,13, 9,11,10,12,13,10,10, - 11,12,13,11,12,12,12,13,11,12,12,13,13, 5, 7, 7, - 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,12, - 13,10,10,11,12,12, 6, 8, 8,11,10, 7, 8, 9,10,12, - 8, 9, 9,11,11,11,10,11,11,12,10,11,11,13,12, 7, - 8, 8,10,11, 8, 9, 8,11,10, 8, 9, 9,11,11,10,12, - 10,13,11,10,11,11,13,13,10,11,10,14,13,10,10,11, - 13,13,10,12,11,14,13,12,11,13,12,13,13,12,13,14, - 14,10,11,11,13,13,10,11,10,12,13,10,12,12,12,14, - 12,12,12,14,12,12,13,12,17,15, 5, 7, 7,10,10, 7, - 8, 8,10,10, 7, 8, 8,11,10,10,10,11,12,12,10,11, - 11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,11,11,11,12,12,10,10,11,12,13, 6, 8, 8,10, - 11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,12,12,13,13, - 11,11,10,13,11, 9,11,10,14,13,11,11,11,15,13,10, - 10,11,13,13,12,13,13,14,14,12,11,12,12,13,10,11, - 11,12,13,10,11,12,13,13,10,11,10,13,12,12,12,13, - 14, 0,12,13,11,13,11, 8,10,10,13,13,10,11,11,14, - 13,10,11,11,13,12,13,14,14,14,15,12,12,12,15,14, - 9,11,10,13,12,10,10,11,13,14,11,11,11,15,12,13, - 12,14,15,16,13,13,13,14,13, 9,11,11,12,12,10,12, - 11,13,13,10,11,11,13,14,13,13,13,15,15,13,13,14, - 17,15,11,12,12,14,14,10,11,12,13,15,12,13,13, 0, - 15,13,11,14,12,16,14,16,14, 0,15,11,12,12,14,16, - 11,13,12,16,15,12,13,13,14,15,12,14,12,15,13,15, - 14,14,16,16, 8,10,10,13,13,10,11,10,13,14,10,11, - 11,13,13,13,13,12,14,14,14,13,13,16,17, 9,10,10, - 12,14,10,12,11,14,13,10,11,12,13,14,12,12,12,15, - 15,13,13,13,14,14, 9,10,10,13,13,10,11,12,12,14, - 10,11,10,13,13,13,13,13,14,16,13,13,13,14,14,11, - 12,13,15,13,12,14,13,14,16,12,12,13,13,14,13,14, - 14,17,15,13,12,17,13,16,11,12,13,14,15,12,13,14, - 14,17,11,12,11,14,14,13,16,14,16, 0,14,15,11,15, - 11, -}; - -static const static_codebook _16u0__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__16u0__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16u0__p4_0, - 0 -}; - -static const long _vq_quantlist__16u0__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16u0__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, - 9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, - 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,11, 7, 8, 8, - 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 9, 9,10,10,11,11,12,12, 9, 9, 9,10,10,11,11,12, - 12, -}; - -static const static_codebook _16u0__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__16u0__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16u0__p5_0, - 0 -}; - -static const long _vq_quantlist__16u0__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16u0__p6_0[] = { - 1, 4, 4, 7, 7,10,10,12,12,13,13,18,17, 3, 6, 6, - 9, 9,11,11,13,13,14,14,18,17, 3, 6, 6, 9, 9,11, - 11,13,13,14,14,17,18, 7, 9, 9,11,11,13,13,14,14, - 15,15, 0, 0, 7, 9, 9,11,11,13,13,14,14,15,16,19, - 18,10,11,11,13,13,14,14,16,15,17,18, 0, 0,10,11, - 11,13,13,14,14,15,15,16,18, 0, 0,11,13,13,14,14, - 15,15,17,17, 0,19, 0, 0,11,13,13,14,14,14,15,16, - 18, 0,19, 0, 0,13,14,14,15,15,18,17,18,18, 0,19, - 0, 0,13,14,14,15,16,16,16,18,18,19, 0, 0, 0,16, - 17,17, 0,17,19,19, 0,19, 0, 0, 0, 0,16,19,16,17, - 18, 0,19, 0, 0, 0, 0, 0, 0, -}; - -static const static_codebook _16u0__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__16u0__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__16u0__p6_0, - 0 -}; - -static const long _vq_quantlist__16u0__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16u0__p6_1[] = { - 1, 4, 5, 6, 6, 4, 6, 6, 6, 6, 4, 6, 6, 6, 6, 6, - 6, 6, 7, 7, 6, 6, 6, 7, 7, -}; - -static const static_codebook _16u0__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__16u0__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16u0__p6_1, - 0 -}; - -static const long _vq_quantlist__16u0__p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u0__p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _16u0__p7_0 = { - 4, 81, - (char *)_vq_lengthlist__16u0__p7_0, - 1, -518803456, 1628680192, 2, 0, - (long *)_vq_quantlist__16u0__p7_0, - 0 -}; - -static const long _vq_quantlist__16u0__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16u0__p7_1[] = { - 1, 5, 5, 6, 5, 9,10,11,11,10,10,10,10,10,10, 5, - 8, 8, 8,10,10,10,10,10,10,10,10,10,10,10, 5, 8, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10, 5,10, 8, - 10,10,10,10,10,10,10,10,10,10,10,10, 4, 8, 9,10, - 10,10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _16u0__p7_1 = { - 2, 225, - (char *)_vq_lengthlist__16u0__p7_1, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__16u0__p7_1, - 0 -}; - -static const long _vq_quantlist__16u0__p7_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__16u0__p7_2[] = { - 1, 6, 6, 7, 8, 7, 7,10, 9,10, 9,11,10, 9,11,10, - 9, 9, 9, 9,10, 6, 8, 7, 9, 9, 8, 8,10,10, 9,11, - 11,12,12,10, 9,11, 9,12,10, 9, 6, 9, 8, 9,12, 8, - 8,11, 9,11,11,12,11,12,12,10,11,11,10,10,11, 7, - 10, 9, 9, 9, 9, 9,10, 9,10, 9,10,10,12,10,10,10, - 11,12,10,10, 7, 9, 9, 9,10, 9, 9,10,10, 9, 9, 9, - 11,11,10,10,10,10, 9, 9,12, 7, 9,10, 9,11, 9,10, - 9,10,11,11,11,10,11,12, 9,12,11,10,10,10, 7, 9, - 9, 9, 9,10,12,10, 9,11,12,10,11,12,12,11, 9,10, - 11,10,11, 7, 9,10,10,11,10, 9,10,11,11,11,10,12, - 12,12,11,11,10,11,11,12, 8, 9,10,12,11,10,10,12, - 12,12,12,12,10,11,11, 9,11,10,12,11,11, 8, 9,10, - 10,11,12,11,11,10,10,10,12,12,12, 9,10,12,12,12, - 12,12, 8,10,11,10,10,12, 9,11,12,12,11,12,12,12, - 12,10,12,10,10,10,10, 8,12,11,11,11,10,10,11,12, - 12,12,12,11,12,12,12,11,11,11,12,10, 9,10,10,12, - 10,12,10,12,12,10,10,10,11,12,12,12,11,12,12,12, - 11,10,11,12,12,12,11,12,12,11,12,12,11,12,12,12, - 12,11,12,12,10,10,10,10,11,11,12,11,12,12,12,12, - 12,12,12,11,12,11,10,11,11,12,11,11, 9,10,10,10, - 12,10,10,11, 9,11,12,11,12,11,12,12,10,11,10,12, - 9, 9, 9,12,11,10,11,10,12,10,12,10,12,12,12,11, - 11,11,11,11,10, 9,10,10,11,10,11,11,12,11,10,11, - 12,12,12,11,11, 9,12,10,12, 9,10,12,10,10,11,10, - 11,11,12,11,10,11,10,11,11,11,11,12,11,11,10, 9, - 10,10,10, 9,11,11,10, 9,12,10,11,12,11,12,12,11, - 12,11,12,11,10,11,10,12,11,12,11,12,11,12,10,11, - 10,10,12,11,10,11,11,11,10, -}; - -static const static_codebook _16u0__p7_2 = { - 2, 441, - (char *)_vq_lengthlist__16u0__p7_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__16u0__p7_2, - 0 -}; - -static const char _huff_lengthlist__16u0__single[] = { - 3, 5, 8, 7,14, 8, 9,19, 5, 2, 5, 5, 9, 6, 9,19, - 8, 4, 5, 7, 8, 9,13,19, 7, 4, 6, 5, 9, 6, 9,19, - 12, 8, 7, 9,10,11,13,19, 8, 5, 8, 6, 9, 6, 7,19, - 8, 8,10, 7, 7, 4, 5,19,12,17,19,15,18,13,11,18, -}; - -static const static_codebook _huff_book__16u0__single = { - 2, 64, - (char *)_huff_lengthlist__16u0__single, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__16u1__long[] = { - 3, 6,10, 8,12, 8,14, 8,14,19, 5, 3, 5, 5, 7, 6, - 11, 7,16,19, 7, 5, 6, 7, 7, 9,11,12,19,19, 6, 4, - 7, 5, 7, 6,10, 7,18,18, 8, 6, 7, 7, 7, 7, 8, 9, - 18,18, 7, 5, 8, 5, 7, 5, 8, 6,18,18,12, 9,10, 9, - 9, 9, 8, 9,18,18, 8, 7,10, 6, 8, 5, 6, 4,11,18, - 11,15,16,12,11, 8, 8, 6, 9,18,14,18,18,18,16,16, - 16,13,16,18, -}; - -static const static_codebook _huff_book__16u1__long = { - 2, 100, - (char *)_huff_lengthlist__16u1__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__16u1__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u1__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 7, 7,10,10, 7, - 9,10, 5, 7, 8, 7,10, 9, 7,10,10, 5, 8, 8, 8,10, - 10, 8,10,10, 7,10,10,10,11,12,10,12,13, 7,10,10, - 9,13,11,10,12,13, 5, 8, 8, 8,10,10, 8,10,10, 7, - 10,10,10,12,12, 9,11,12, 7,10,11,10,12,12,10,13, - 11, -}; - -static const static_codebook _16u1__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__16u1__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16u1__p1_0, - 0 -}; - -static const long _vq_quantlist__16u1__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u1__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 7, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 7, 7,10, 8, 9, 9, 6, 8, 8, - 7, 9, 8, 8, 9,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 7,10, - 8, -}; - -static const static_codebook _16u1__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__16u1__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16u1__p2_0, - 0 -}; - -static const long _vq_quantlist__16u1__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16u1__p3_0[] = { - 1, 5, 5, 8, 8, 6, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, - 10, 9,11,11, 9, 9,10,11,11, 6, 8, 8,10,10, 8, 9, - 10,11,11, 8, 9,10,11,11,10,11,11,12,13,10,11,11, - 13,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, - 11,10,11,11,13,13,10,11,11,13,12, 9,11,11,14,13, - 10,12,12,15,14,10,12,11,14,13,12,13,13,15,15,12, - 13,13,16,14, 9,11,11,13,14,10,11,12,14,14,10,12, - 12,14,15,12,13,13,14,15,12,13,14,15,16, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, - 14,11,12,12,14,14, 8,10,10,12,12, 9,11,12,12,13, - 10,12,12,13,13,12,12,13,14,15,11,13,13,15,15, 7, - 10,10,12,12, 9,12,11,13,12,10,11,12,13,13,12,13, - 12,15,14,11,12,13,15,15,10,12,12,15,14,11,13,13, - 16,15,11,13,13,16,15,14,13,14,15,16,13,15,15,17, - 17,10,12,12,14,15,11,12,12,15,15,11,13,13,15,16, - 13,15,13,16,15,13,15,15,16,17, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, - 12,14,14, 7,10,10,12,12,10,12,12,14,13, 9,11,12, - 12,13,12,13,13,15,15,12,12,13,13,15, 7,10,10,12, - 13,10,11,12,13,13,10,12,11,13,13,11,13,13,15,15, - 12,13,12,15,14, 9,12,12,15,14,11,13,13,15,15,11, - 12,13,15,15,13,14,14,17,19,13,13,14,16,16,10,12, - 12,14,15,11,13,13,15,16,11,13,12,16,15,13,15,15, - 17,18,14,15,13,16,15, 8,11,11,15,14,10,12,12,16, - 15,10,12,12,16,16,14,15,15,18,17,13,14,15,16,18, - 9,12,12,15,15,11,12,14,16,17,11,13,13,16,15,15, - 15,15,17,18,14,15,16,17,17, 9,12,12,15,15,11,14, - 13,16,16,11,13,13,16,16,15,16,15,17,18,14,16,15, - 17,16,12,14,14,17,16,12,14,15,18,17,13,15,15,17, - 17,15,15,18,16,20,15,16,17,18,18,11,14,14,16,17, - 13,15,14,18,17,13,15,15,17,17,15,17,15,18,17,15, - 17,16,19,18, 8,11,11,14,15,10,12,12,15,15,10,12, - 12,16,16,13,14,14,17,16,14,15,15,17,17, 9,12,12, - 15,16,11,13,13,16,16,11,12,13,16,16,14,16,15,20, - 17,14,16,16,17,17, 9,12,12,15,16,11,13,13,16,17, - 11,13,13,17,16,14,15,15,17,18,15,15,15,18,18,11, - 14,14,17,16,13,15,15,17,17,13,14,14,18,17,15,16, - 16,18,19,15,15,17,17,19,11,14,14,16,17,13,15,14, - 17,19,13,15,14,18,17,15,17,16,18,18,15,17,15,18, - 16, -}; - -static const static_codebook _16u1__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__16u1__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16u1__p3_0, - 0 -}; - -static const long _vq_quantlist__16u1__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16u1__p4_0[] = { - 4, 5, 5, 8, 8, 6, 6, 7, 9, 9, 6, 6, 6, 9, 9, 9, - 10, 9,11,11, 9, 9,10,11,11, 6, 7, 7,10, 9, 7, 7, - 8, 9,10, 7, 7, 8,10,10,10,10,10,10,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 7,10, - 10, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, - 10,10,10,12,12, 9,10,10,12,12,12,11,12,13,13,11, - 11,12,12,13, 9,10,10,11,12, 9,10,10,12,12,10,10, - 10,12,12,11,12,11,14,13,11,12,12,14,13, 5, 7, 7, - 10,10, 7, 8, 8,10,10, 7, 8, 7,10,10,10,10,10,12, - 12,10,10,10,12,12, 6, 8, 7,10,10, 7, 7, 9,10,11, - 8, 9, 9,11,10,10,10,11,11,13,10,10,11,12,13, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,10,11,10,11, - 10,13,11,10,11,10,12,12,10,11,10,12,11,10,10,10, - 12,13,10,11,11,13,12,11,11,13,11,14,12,12,13,14, - 14, 9,10,10,12,13,10,11,10,13,12,10,11,11,12,13, - 11,12,11,14,12,12,13,13,15,14, 5, 7, 7,10,10, 7, - 7, 8,10,10, 7, 8, 8,10,10,10,10,10,11,12,10,10, - 10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, - 10,11,10,11,11,12,12,10,10,11,11,13, 7, 7, 8,10, - 10, 8, 8, 9,10,11, 7, 9, 7,11,10,10,11,11,13,12, - 11,11,10,13,11, 9,10,10,12,12,10,11,11,13,12,10, - 10,11,12,12,12,13,13,14,14,11,11,12,12,14,10,10, - 11,12,12,10,11,11,12,13,10,10,10,13,12,12,13,13, - 15,14,12,13,10,14,11, 8,10,10,12,12,10,11,10,13, - 13, 9,10,10,12,12,12,13,13,15,14,11,12,12,13,13, - 9,10,10,13,12,10,10,11,13,13,10,11,10,13,12,12, - 12,13,14,15,12,13,12,15,13, 9,10,10,12,13,10,11, - 10,13,12,10,10,11,12,13,12,14,12,15,13,12,12,13, - 14,15,11,12,11,14,13,11,11,12,14,15,12,13,12,15, - 14,13,11,15,11,16,13,14,14,16,15,11,12,12,14,14, - 11,12,11,14,13,12,12,13,14,15,13,14,12,16,12,14, - 14,14,15,15, 8,10,10,12,12, 9,10,10,12,12,10,10, - 11,13,13,11,12,12,13,13,12,13,13,14,15, 9,10,10, - 13,12,10,11,11,13,12,10,10,11,13,13,12,13,12,15, - 14,12,12,13,13,16, 9, 9,10,12,13,10,10,11,12,13, - 10,11,10,13,13,12,12,13,13,15,13,13,12,15,13,11, - 12,12,14,14,12,13,12,15,14,11,11,12,13,14,14,14, - 14,16,15,13,12,15,12,16,11,11,12,13,14,12,13,13, - 14,15,10,12,11,14,13,14,15,14,16,16,13,14,11,15, - 11, -}; - -static const static_codebook _16u1__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__16u1__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16u1__p4_0, - 0 -}; - -static const long _vq_quantlist__16u1__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16u1__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, - 10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, - 10, 9,11,11,12,11, 7, 8, 8, 9, 9,11,11,12,12, 9, - 10,10,11,11,12,12,13,12, 9,10,10,11,11,12,12,12, - 13, -}; - -static const static_codebook _16u1__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__16u1__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16u1__p5_0, - 0 -}; - -static const long _vq_quantlist__16u1__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16u1__p6_0[] = { - 3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 4, 6, 6, 8, 8, - 9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, - 8, 8,10, 9, 6, 6, 6, 7, 7, 8, 8, 9,10, 7, 8, 7, - 8, 8, 9, 9,10,10, 7, 8, 8, 8, 8, 9, 9,10,10, 9, - 9, 9,10,10,10,10,11,11, 9, 9, 9,10,10,10,10,11, - 11, -}; - -static const static_codebook _16u1__p6_0 = { - 2, 81, - (char *)_vq_lengthlist__16u1__p6_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16u1__p6_0, - 0 -}; - -static const long _vq_quantlist__16u1__p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u1__p7_0[] = { - 1, 4, 4, 4, 8, 8, 4, 8, 8, 5,11, 9, 8,12,11, 8, - 12,11, 5,10,11, 8,11,12, 8,11,12, 4,11,11,11,14, - 13,10,13,13, 8,14,13,12,14,16,12,16,15, 8,14,14, - 13,16,14,12,15,16, 4,11,11,10,14,13,11,14,14, 8, - 15,14,12,15,15,12,14,16, 8,14,14,11,16,15,12,15, - 13, -}; - -static const static_codebook _16u1__p7_0 = { - 4, 81, - (char *)_vq_lengthlist__16u1__p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__16u1__p7_0, - 0 -}; - -static const long _vq_quantlist__16u1__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16u1__p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 5, 7, 7, - 8, 8, 8, 8, 8, 8, 4, 5, 6, 7, 7, 8, 8, 8, 8, 8, - 8, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 7, 8, 8, 8, 8, 9, 9, 9,10, - 9,10, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, 9, 8, 8, 8, - 9, 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9,10, - 10,10,10, 8, 8, 8, 9, 9, 9,10,10,10,10,10, 8, 8, - 8, 9, 9,10,10,10,10,10,10, -}; - -static const static_codebook _16u1__p7_1 = { - 2, 121, - (char *)_vq_lengthlist__16u1__p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16u1__p7_1, - 0 -}; - -static const long _vq_quantlist__16u1__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16u1__p8_0[] = { - 1, 4, 4, 5, 5, 8, 8,10,10,12,12, 4, 7, 7, 8, 8, - 9, 9,12,11,14,13, 4, 7, 7, 7, 8, 9,10,11,11,13, - 12, 5, 8, 8, 9, 9,11,11,12,13,15,14, 5, 7, 8, 9, - 9,11,11,13,13,17,15, 8, 9,10,11,11,12,13,17,14, - 17,16, 8,10, 9,11,11,12,12,13,15,15,17,10,11,11, - 12,13,14,15,15,16,16,17, 9,11,11,12,12,14,15,17, - 15,15,16,11,14,12,14,15,16,15,16,16,16,15,11,13, - 13,14,14,15,15,16,16,15,16, -}; - -static const static_codebook _16u1__p8_0 = { - 2, 121, - (char *)_vq_lengthlist__16u1__p8_0, - 1, -524582912, 1618345984, 4, 0, - (long *)_vq_quantlist__16u1__p8_0, - 0 -}; - -static const long _vq_quantlist__16u1__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16u1__p8_1[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, - 8, 7, 8, 8, 8, 8, 4, 6, 6, 7, 7, 7, 7, 8, 8, 8, - 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 8, - 8, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static const static_codebook _16u1__p8_1 = { - 2, 121, - (char *)_vq_lengthlist__16u1__p8_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16u1__p8_1, - 0 -}; - -static const long _vq_quantlist__16u1__p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16u1__p9_0[] = { - 1, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, -}; - -static const static_codebook _16u1__p9_0 = { - 2, 225, - (char *)_vq_lengthlist__16u1__p9_0, - 1, -514071552, 1627381760, 4, 0, - (long *)_vq_quantlist__16u1__p9_0, - 0 -}; - -static const long _vq_quantlist__16u1__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16u1__p9_1[] = { - 1, 6, 5, 9, 9,10,10, 6, 7, 9, 9,10,10,10,10, 5, - 10, 8,10, 8,10,10, 8, 8,10, 9,10,10,10,10, 5, 8, - 9,10,10,10,10, 8,10,10,10,10,10,10,10, 9,10,10, - 10,10,10,10, 9, 9,10,10,10,10,10,10, 9, 9, 8, 9, - 10,10,10, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10, 8,10,10,10,10, - 10,10,10,10,10,10,10,10,10, 6, 8, 8,10,10,10, 8, - 10,10,10,10,10,10,10,10, 5, 8, 8,10,10,10, 9, 9, - 10,10,10,10,10,10,10,10, 9,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static const static_codebook _16u1__p9_1 = { - 2, 225, - (char *)_vq_lengthlist__16u1__p9_1, - 1, -522338304, 1620115456, 4, 0, - (long *)_vq_quantlist__16u1__p9_1, - 0 -}; - -static const long _vq_quantlist__16u1__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__16u1__p9_2[] = { - 1, 6, 6, 7, 8, 8,11,10, 9, 9,11, 9,10, 9,11,11, - 9, 6, 7, 6,11, 8,11, 9,10,10,11, 9,11,10,10,10, - 11, 9, 5, 7, 7, 8, 8,10,11, 8, 8,11, 9, 9,10,11, - 9,10,11, 8, 9, 6, 8, 8, 9, 9,10,10,11,11,11, 9, - 11,10, 9,11, 8, 8, 8, 9, 8, 9,10,11, 9, 9,11,11, - 10, 9, 9,11,10, 8,11, 8, 9, 8,11, 9,10, 9,10,11, - 11,10,10, 9,10,10, 8, 8, 9,10,10,10, 9,11, 9,10, - 11,11,11,11,10, 9,11, 9, 9,11,11,10, 8,11,11,11, - 9,10,10,11,10,11,11, 9,11,10, 9,11,10,10,10,10, - 9,11,10,11,10, 9, 9,10,11, 9, 8,10,11,11,10,10, - 11, 9,11,10,11,11,10,11, 9, 9, 8,10, 8, 9,11, 9, - 8,10,10, 9,11,10,11,10,11, 9,11, 8,10,11,11,11, - 11,10,10,11,11,11,11,10,11,11,10, 9, 8,10,10, 9, - 11,10,11,11,11, 9, 9, 9,11,11,11,10,10, 9, 9,10, - 9,11,11,11,11, 8,10,11,10,11,11,10,11,11, 9, 9, - 9,10, 9,11, 9,11,11,11,11,11,10,11,11,10,11,10, - 11,11, 9,11,10,11,10, 9,10, 9,10,10,11,11,11,11, - 9,10, 9,10,11,11,10,11,11,11,11,11,11,10,11,11, - 10, -}; - -static const static_codebook _16u1__p9_2 = { - 2, 289, - (char *)_vq_lengthlist__16u1__p9_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__16u1__p9_2, - 0 -}; - -static const char _huff_lengthlist__16u1__short[] = { - 5, 7,10, 9,11,10,15,11,13,16, 6, 4, 6, 6, 7, 7, - 10, 9,12,16,10, 6, 5, 6, 6, 7,10,11,16,16, 9, 6, - 7, 6, 7, 7,10, 8,14,16,11, 6, 5, 4, 5, 6, 8, 9, - 15,16, 9, 6, 6, 5, 6, 6, 9, 8,14,16,12, 7, 6, 6, - 5, 6, 6, 7,13,16, 8, 6, 7, 6, 5, 5, 4, 4,11,16, - 9, 8, 9, 9, 7, 7, 6, 5,13,16,14,14,16,15,16,15, - 16,16,16,16, -}; - -static const static_codebook _huff_book__16u1__short = { - 2, 100, - (char *)_huff_lengthlist__16u1__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__16u2__long[] = { - 5, 8,10,10,10,11,11,12,14,18, 7, 5, 5, 6, 8, 9, - 10,12,14,17, 9, 5, 4, 5, 6, 8,10,11,13,19, 9, 5, - 4, 4, 5, 6, 9,10,12,17, 8, 6, 5, 4, 4, 5, 7,10, - 11,15, 8, 7, 7, 6, 5, 5, 6, 9,11,14, 8, 9, 8, 7, - 6, 5, 6, 7,11,14, 9,11,11, 9, 7, 6, 6, 6, 9,14, - 11,14,15,13, 9, 8, 7, 7, 9,14,13,15,19,17,12,11, - 10, 9,10,14, -}; - -static const static_codebook _huff_book__16u2__long = { - 2, 100, - (char *)_huff_lengthlist__16u2__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__16u2_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u2_p1_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 8, 9, 9, 5, 7, 7, 8, 9, - 9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,10,10, 7, 9, 9, - 9,10, 9, 9,10,11, 5, 8, 7, 7, 9, 9, 8, 9, 9, 7, - 9, 9, 9,11,10, 9, 9,10, 7, 9, 9, 9,10,10, 9,11, - 10, -}; - -static const static_codebook _16u2_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__16u2_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__16u2_p1_0, - 0 -}; - -static const long _vq_quantlist__16u2_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16u2_p2_0[] = { - 3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 9, - 10, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 8, 8,10,10,10,10,10,12,12, 9,10,10, - 11,12, 5, 7, 7, 9, 9, 7, 8, 8,10,10, 7, 8, 8,10, - 10, 9,10,10,12,11,10,10,10,12,12, 9,10,10,12,12, - 10,10,10,12,12, 9,10,10,12,12,12,12,12,14,14,11, - 12,12,13,14, 9,10,10,12,12, 9,10,10,12,12,10,10, - 10,12,12,11,12,12,14,13,12,12,12,14,13, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, - 12,10,10,10,12,12, 7, 8, 8,11,10, 8, 9, 9,11,11, - 8, 9, 9,11,11,10,11,11,12,13,10,11,11,12,13, 7, - 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,12,10,11,11,13,13,10,11,10,13,12,10,11,11, - 13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14, - 14, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13, - 12,13,12,14,13,12,13,13,14,15, 5, 7, 7, 9,10, 7, - 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, - 11,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9, - 10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10, - 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,12, - 10,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10, - 10,11,12,13,12,13,13,15,14,12,12,13,12,14, 9,10, - 11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13, - 14,14,12,13,12,14,13, 8,10,10,12,12, 9,11,10,13, - 12, 9,10,10,12,13,12,13,13,14,14,12,12,12,14,14, - 9,10,10,13,13,10,11,11,13,13,10,11,11,13,13,13, - 13,13,14,15,12,13,13,14,15, 9,10,10,12,13,10,11, - 10,13,13,10,11,11,12,13,12,13,12,15,14,12,13,13, - 14,15,11,12,12,15,14,12,12,13,14,15,12,13,13,15, - 14,13,13,15,14,16,14,14,14,16,15,11,12,12,14,14, - 11,12,12,14,14,12,13,13,14,15,13,14,13,15,13,14, - 14,14,15,16, 8, 9,10,12,12, 9,10,10,13,12, 9,10, - 11,12,13,12,12,12,14,14,12,13,13,14,14, 9,10,10, - 13,12,10,11,11,13,13,10,10,11,13,13,12,13,13,15, - 14,12,12,13,14,15, 9,10,10,13,13,10,11,11,13,13, - 10,11,11,13,13,12,13,13,14,14,13,13,13,15,15,11, - 12,12,14,13,12,13,13,15,14,11,12,12,14,14,14,14, - 14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13, - 14,15,12,13,12,14,14,14,14,14,16,16,14,15,13,16, - 14, -}; - -static const static_codebook _16u2_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__16u2_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16u2_p2_0, - 0 -}; - -static const long _vq_quantlist__16u2_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__16u2_p3_0[] = { - 2, 4, 4, 6, 6, 7, 7, 9, 9, 4, 5, 5, 6, 6, 8, 7, - 9, 9, 4, 5, 5, 6, 6, 7, 8, 9, 9, 6, 6, 6, 7, 7, - 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, - 8, 8, 9, 9,11,10, 7, 7, 8, 8, 8, 9, 9,10,11, 9, - 9, 9,10,10,11,10,11,11, 9, 9, 9,10,10,10,11,11, - 11, -}; - -static const static_codebook _16u2_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__16u2_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__16u2_p3_0, - 0 -}; - -static const long _vq_quantlist__16u2_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__16u2_p4_0[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,11, - 11, 5, 5, 5, 7, 6, 8, 7, 9, 9, 9, 9,10,10,11,11, - 12,12, 5, 5, 5, 6, 6, 7, 8, 8, 9, 9, 9,10,10,11, - 11,12,12, 6, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 6, 6, 7, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10, - 11,11,11,11,12,12, 7, 7, 8, 8, 8, 9, 9, 9, 9,10, - 10,11,11,11,11,12,12, 8, 9, 9, 9, 9, 9, 9,10,10, - 10,10,11,11,12,12,12,12, 8, 9, 9, 9, 9, 9, 9,10, - 10,10,10,11,11,12,12,12,12, 9, 9, 9, 9, 9,10,10, - 10,10,10,11,11,11,12,12,13,13, 9, 9, 9, 9, 9,10, - 10,10,10,11,10,11,11,12,12,13,13,10,10,10,10,10, - 11,11,11,11,11,11,11,12,12,12,13,13,10,10,10,10, - 10,11,11,11,11,11,11,12,11,12,12,13,13,11,11,11, - 11,11,11,11,12,12,12,12,12,12,13,13,13,13,11,11, - 11,11,11,11,11,12,12,12,12,13,12,13,13,13,13,11, - 12,12,12,12,12,12,12,12,13,13,13,13,13,13,14,14, - 11,12,12,12,12,12,12,12,13,13,13,13,13,13,13,14, - 14, -}; - -static const static_codebook _16u2_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__16u2_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__16u2_p4_0, - 0 -}; - -static const long _vq_quantlist__16u2_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__16u2_p5_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 7, 9, 9, 7, - 9,10, 5, 8, 8, 7,10, 9, 7,10, 9, 5, 8, 8, 8,11, - 10, 8,10,10, 7,10,10, 9, 9,12,10,12,12, 7,10,10, - 9,12,10,10,11,12, 5, 8, 8, 8,10,10, 8,11,11, 7, - 11,10,10,12,11, 9,10,12, 7,10,11,10,12,12, 9,12, - 9, -}; - -static const static_codebook _16u2_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__16u2_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__16u2_p5_0, - 0 -}; - -static const long _vq_quantlist__16u2_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16u2_p5_1[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, - 7, 7, 8, 8, 8, 8, 5, 6, 6, 6, 7, 7, 7, 8, 8, 8, - 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, -}; - -static const static_codebook _16u2_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__16u2_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16u2_p5_1, - 0 -}; - -static const long _vq_quantlist__16u2_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16u2_p6_0[] = { - 1, 5, 4, 7, 7, 8, 8, 8, 8,10,10,11,11, 4, 6, 6, - 7, 7, 9, 9, 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, - 9, 9, 9,10,10,11,11, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 7, 7, 7, 9, 8,10, 9,10,10,11,11,12, - 12, 8, 9, 9, 9,10,10,10,11,11,12,12,13,13, 8, 9, - 9,10, 9,10,10,11,11,12,12,13,13, 8, 9, 9,10,10, - 11,11,11,11,12,12,13,13, 8, 9, 9,10,10,11,11,12, - 11,12,12,13,13,10,10,10,11,11,12,12,12,12,13,13, - 14,14,10,10,10,11,11,12,12,12,12,13,13,14,14,11, - 11,11,12,12,13,13,13,13,14,14,14,14,11,11,11,12, - 12,13,13,13,13,14,14,14,14, -}; - -static const static_codebook _16u2_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__16u2_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__16u2_p6_0, - 0 -}; - -static const long _vq_quantlist__16u2_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__16u2_p6_1[] = { - 2, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _16u2_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__16u2_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__16u2_p6_1, - 0 -}; - -static const long _vq_quantlist__16u2_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__16u2_p7_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, - 8, 8, 9, 9, 9, 9,10,10,11,10, 4, 6, 6, 8, 8, 9, - 9, 9, 9,10,10,11,11, 7, 8, 8,10, 9,10,10,10,10, - 11,11,12,12, 7, 8, 8,10,10,10,10,10,10,11,11,12, - 12, 8, 9, 9,10,10,11,11,11,11,12,12,13,13, 8, 9, - 9,10,10,11,11,11,11,12,12,13,13, 8, 9, 9,11,10, - 11,11,12,12,13,13,14,13, 8, 9, 9,10,10,11,11,12, - 12,13,13,13,13, 9,10,10,11,11,12,12,13,13,13,13, - 14,14, 9,10,10,11,11,12,12,13,13,13,13,14,14,10, - 11,11,12,12,13,13,14,13,14,14,15,14,10,11,11,12, - 12,13,13,14,13,14,14,15,14, -}; - -static const static_codebook _16u2_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__16u2_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__16u2_p7_0, - 0 -}; - -static const long _vq_quantlist__16u2_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__16u2_p7_1[] = { - 2, 5, 5, 7, 7, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 7, - 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _16u2_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__16u2_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__16u2_p7_1, - 0 -}; - -static const long _vq_quantlist__16u2_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16u2_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 7, 7, 9, 8,10, 9,11,11, 4, - 7, 6, 9, 8, 9, 9, 9, 9,10, 9,11, 9,12, 9, 4, 6, - 7, 8, 8, 9, 9, 9, 9,10,10,10,11,11,12, 7, 9, 8, - 10,10,11,11,10,10,11,11,12,12,13,12, 7, 8, 8,10, - 10,10,11,10,10,11,11,11,12,12,13, 8, 9, 9,11,11, - 11,11,11,11,12,12,13,13,13,13, 8, 9, 9,11,11,11, - 11,11,11,12,12,13,13,13,14, 8, 9, 9,10,10,11,11, - 12,11,13,13,14,13,14,14, 8, 9, 9,10,10,11,11,12, - 12,12,12,13,13,14,14, 9,10,10,11,11,12,12,13,12, - 13,13,14,14,15,15, 9,10,10,11,11,12,12,12,13,13, - 13,14,14,14,15,10,11,11,12,12,13,13,14,13,14,14, - 15,14,15,15,10,11,11,12,12,13,12,13,14,14,14,14, - 14,15,15,11,12,12,13,13,13,13,14,14,15,14,15,15, - 16,16,11,12,12,13,13,13,13,14,14,14,15,15,15,16, - 16, -}; - -static const static_codebook _16u2_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__16u2_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__16u2_p8_0, - 0 -}; - -static const long _vq_quantlist__16u2_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__16u2_p8_1[] = { - 3, 5, 5, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10, 5, 6, 6, 7, 7, 8, - 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, - 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,10,10, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9,10, 9,10,10,10, 9,10, 9, 8, 8, 8, 9, 8, 9, 9, - 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, - 10,10,10, 8, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,10,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10, 9, 9, 9,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10, 9,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _16u2_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__16u2_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__16u2_p8_1, - 0 -}; - -static const long _vq_quantlist__16u2_p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__16u2_p9_0[] = { - 1, 5, 3, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, - 7, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 7, - 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _16u2_p9_0 = { - 2, 225, - (char *)_vq_lengthlist__16u2_p9_0, - 1, -510036736, 1631393792, 4, 0, - (long *)_vq_quantlist__16u2_p9_0, - 0 -}; - -static const long _vq_quantlist__16u2_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static const char _vq_lengthlist__16u2_p9_1[] = { - 1, 4, 4, 7, 7, 7, 7, 7, 6, 9, 7,10, 8,12,12,13, - 13,14,14, 4, 7, 7, 9, 9, 9, 8, 9, 8,10, 9,11, 9, - 14, 9,14,10,13,11, 4, 7, 7, 9, 9, 9, 9, 8, 9,10, - 10,11,11,12,13,12,13,14,15, 7, 9, 9,10,11,10,10, - 10,10,11,12,13,13,13,14,17,14,15,16, 7, 9, 9,10, - 10,10,10,10,10,11,12,13,13,14,14,15,15,18,18, 8, - 9, 9,11,10,11,11,11,12,13,12,14,14,16,15,15,17, - 18,15, 8, 9, 9,10,10,11,11,11,11,13,13,14,14,15, - 15,15,16,16,18, 7, 9, 8,10,10,11,11,12,12,14,14, - 15,15,16,16,15,17,16,18, 8, 9, 9,10,10,11,12,12, - 12,13,13,16,15,17,16,17,18,17,18, 9,10,10,12,11, - 13,13,14,13,14,14,15,17,16,18,17,18,17,18, 9,10, - 10,12,11,12,13,13,14,15,16,14,15,16,18,18,18,18, - 17,11,11,11,13,13,14,14,16,15,15,15,16,15,15,18, - 18,18,17,16,11,11,12,13,13,15,14,15,16,16,16,17, - 16,15,18,17,18,16,18,12,13,13,15,15,15,16,18,16, - 17,16,17,16,17,17,17,18,18,17,13,13,13,15,13,16, - 15,17,16,16,16,18,18,18,18,16,17,17,18,13,15,14, - 15,15,18,17,18,18,18,16,18,17,18,17,18,16,17,17, - 14,14,14,15,16,17,16,18,18,18,17,18,17,18,18,18, - 16,16,16,14,17,16,17,15,16,18,18,17,18,17,18,17, - 18,18,18,17,18,17,15,16,15,18,15,18,17,16,18,18, - 18,18,18,18,17,18,16,18,17, -}; - -static const static_codebook _16u2_p9_1 = { - 2, 361, - (char *)_vq_lengthlist__16u2_p9_1, - 1, -518287360, 1622704128, 5, 0, - (long *)_vq_quantlist__16u2_p9_1, - 0 -}; - -static const long _vq_quantlist__16u2_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__16u2_p9_2[] = { - 2, 3, 4, 4, 4, 5, 5, 6, 5, 6, 6, 6, 6, 6, 6, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 7, 8, 8, 8, 8, 8, - 8, -}; - -static const static_codebook _16u2_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__16u2_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__16u2_p9_2, - 0 -}; - -static const char _huff_lengthlist__16u2__short[] = { - 8,11,13,13,15,16,19,19,19,19,11, 8, 8, 9, 9,11, - 13,15,19,20,14, 8, 7, 7, 8, 9,12,13,15,20,15, 9, - 6, 5, 5, 7,10,12,14,18,14, 9, 7, 5, 3, 4, 7,10, - 12,16,13,10, 8, 6, 3, 3, 5, 8,11,14,11,10, 9, 7, - 5, 4, 4, 6,11,14,10,10,10, 8, 6, 5, 5, 6,10,14, - 10,10,10, 9, 8, 7, 7, 7,10,14,11,12,12,12,11,10, - 10,10,12,16, -}; - -static const static_codebook _huff_book__16u2__short = { - 2, 100, - (char *)_huff_lengthlist__16u2__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__8u0__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8u0__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, - 10,10, 5, 8, 8, 7,10,10, 8,10,10, 4, 9, 8, 8,11, - 11, 8,11,11, 7,11,11,10,11,13,10,13,13, 7,11,11, - 10,13,12,10,13,13, 5, 9, 8, 8,11,11, 8,11,11, 7, - 11,11, 9,13,13,10,12,13, 7,11,11,10,13,13,10,13, - 11, -}; - -static const static_codebook _8u0__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__8u0__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__8u0__p1_0, - 0 -}; - -static const long _vq_quantlist__8u0__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8u0__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 6, 7, 8, 6, - 7, 8, 5, 7, 7, 6, 8, 8, 7, 9, 7, 5, 7, 7, 7, 9, - 9, 7, 8, 8, 6, 9, 8, 7, 7,10, 8,10,10, 6, 8, 8, - 8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 9, 6, - 8, 8, 8,10,10, 8, 8,10, 6, 8, 9, 8,10,10, 7,10, - 8, -}; - -static const static_codebook _8u0__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__8u0__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__8u0__p2_0, - 0 -}; - -static const long _vq_quantlist__8u0__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8u0__p3_0[] = { - 1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, - 10, 9,11,11, 8, 9, 9,11,11, 6, 8, 8,10,10, 8,10, - 10,11,11, 8,10,10,11,11,10,11,11,12,12,10,11,11, - 12,13, 6, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, - 11, 9,10,11,12,12,10,11,11,12,12, 8,11,11,14,13, - 10,12,11,15,13,10,12,11,14,14,12,13,12,16,14,12, - 14,12,16,15, 8,11,11,13,14,10,11,12,13,15,10,11, - 12,13,15,11,12,13,14,15,12,12,14,14,16, 5, 8, 8, - 11,11, 9,11,11,12,12, 8,10,11,12,12,11,12,12,15, - 14,11,12,12,14,14, 7,11,10,13,12,10,11,12,13,14, - 10,12,12,14,13,12,13,13,14,15,12,13,13,15,15, 7, - 10,11,12,13,10,12,11,14,13,10,12,13,13,15,12,13, - 12,14,14,11,13,13,15,16, 9,12,12,15,14,11,13,13, - 15,16,11,13,13,16,16,13,14,15,15,15,12,14,15,17, - 16, 9,12,12,14,15,11,13,13,15,16,11,13,13,16,18, - 13,14,14,17,16,13,15,15,17,18, 5, 8, 9,11,11, 8, - 11,11,12,12, 8,10,11,12,12,11,12,12,14,14,11,12, - 12,14,15, 7,11,10,12,13,10,12,12,14,13,10,11,12, - 13,14,11,13,13,15,14,12,13,13,14,15, 7,10,11,13, - 13,10,12,12,13,14,10,12,12,13,13,11,13,13,16,16, - 12,13,13,15,14, 9,12,12,16,15,10,13,13,15,15,11, - 13,13,17,15,12,15,15,18,17,13,14,14,15,16, 9,12, - 12,15,15,11,13,13,15,16,11,13,13,15,15,12,15,15, - 16,16,13,15,14,17,15, 7,11,11,15,15,10,13,13,16, - 15,10,13,13,15,16,14,15,15,17,19,13,15,14,15,18, - 9,12,12,16,16,11,13,14,17,16,11,13,13,17,16,15, - 15,16,17,19,13,15,16, 0,18, 9,12,12,16,15,11,14, - 13,17,17,11,13,14,16,16,15,16,16,19,18,13,15,15, - 17,19,11,14,14,19,16,12,14,15, 0,18,12,16,15,18, - 17,15,15,18,16,19,14,15,17,19,19,11,14,14,18,19, - 13,15,14,19,19,12,16,15,18,17,15,17,15, 0,16,14, - 17,16,19, 0, 7,11,11,14,14,10,12,12,15,15,10,13, - 13,16,15,13,15,15,17, 0,14,15,15,16,19, 9,12,12, - 16,16,11,14,14,16,16,11,13,13,16,16,14,17,16,19, - 0,14,18,17,17,19, 9,12,12,15,16,11,13,13,15,17, - 12,14,13,19,16,13,15,15,17,19,15,17,16,17,19,11, - 14,14,19,16,12,15,15,19,17,13,14,15,17,19,14,16, - 17,19,19,16,15,16,17,19,11,15,14,16,16,12,15,15, - 19, 0,12,14,15,19,19,14,16,16, 0,18,15,19,14,18, - 16, -}; - -static const static_codebook _8u0__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__8u0__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8u0__p3_0, - 0 -}; - -static const long _vq_quantlist__8u0__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8u0__p4_0[] = { - 3, 5, 5, 8, 8, 5, 6, 7, 9, 9, 6, 7, 6, 9, 9, 9, - 9, 9,10,11, 9, 9, 9,11,10, 6, 7, 7,10,10, 7, 7, - 8,10,10, 7, 8, 8,10,10,10,10,10,10,11, 9,10,10, - 11,12, 6, 7, 7,10,10, 7, 8, 8,10,10, 7, 8, 7,10, - 10, 9,10,10,12,11,10,10,10,11,10, 9,10,10,12,11, - 10,10,10,13,11, 9,10,10,12,12,11,11,12,12,13,11, - 11,11,12,13, 9,10,10,12,12,10,10,11,12,12,10,10, - 11,12,12,11,11,11,13,13,11,12,12,13,13, 5, 7, 7, - 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,11,12, - 12,10,11,10,12,12, 7, 8, 8,11,11, 7, 8, 9,10,11, - 8, 9, 9,11,11,11,10,11,10,12,10,11,11,12,13, 7, - 8, 8,10,11, 8, 9, 8,12,10, 8, 9, 9,11,12,10,11, - 10,13,11,10,11,11,13,12, 9,11,10,13,12,10,10,11, - 12,12,10,11,11,13,13,12,10,13,11,14,11,12,12,15, - 13, 9,11,11,13,13,10,11,11,13,12,10,11,11,12,14, - 12,13,11,14,12,12,12,12,14,14, 5, 7, 7,10,10, 7, - 8, 8,10,10, 7, 8, 8,11,10,10,11,11,12,12,10,11, - 10,12,12, 7, 8, 8,10,11, 8, 9, 9,12,11, 8, 8, 9, - 10,11,10,11,11,12,13,11,10,11,11,13, 6, 8, 8,10, - 11, 8, 9, 9,11,11, 7, 9, 7,11,10,10,11,11,12,12, - 10,11,10,13,10, 9,11,10,13,12,10,12,11,13,13,10, - 10,11,12,13,11,12,13,15,14,11,11,13,12,13, 9,10, - 11,12,13,10,11,11,12,13,10,11,10,13,12,12,13,13, - 13,14,12,12,11,14,11, 8,10,10,12,13,10,11,11,13, - 13,10,11,10,13,13,12,13,14,15,14,12,12,12,14,13, - 9,10,10,13,12,10,10,12,13,13,10,11,11,15,12,12, - 12,13,15,14,12,13,13,15,13, 9,10,11,12,13,10,12, - 10,13,12,10,11,11,12,13,12,14,12,15,13,12,12,12, - 15,14,11,12,11,14,13,11,11,12,14,14,12,13,13,14, - 13,13,11,15,11,15,14,14,14,16,15,11,12,12,13,14, - 11,13,11,14,14,12,12,13,14,15,12,14,12,15,12,13, - 15,14,16,15, 8,10,10,12,12,10,10,10,12,13,10,11, - 11,13,13,12,12,12,13,14,13,13,13,15,15, 9,10,10, - 12,12,10,11,11,13,12,10,10,11,13,13,12,12,12,14, - 14,12,12,13,15,14, 9,10,10,13,12,10,10,12,12,13, - 10,11,10,13,13,12,13,13,14,14,12,13,12,14,13,11, - 12,12,14,13,12,13,12,14,14,10,12,12,14,14,14,14, - 14,16,14,13,12,14,12,15,10,12,12,14,15,12,13,13, - 14,16,11,12,11,15,14,13,14,14,14,15,13,14,11,14, - 12, -}; - -static const static_codebook _8u0__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__8u0__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8u0__p4_0, - 0 -}; - -static const long _vq_quantlist__8u0__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__8u0__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 7, 8, 8, - 10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 6, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 7, 8, 8, - 9, 9,10,10,12,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 10,10,11,11,11,12,12,12, 9,10,10,11,11,12,12,12, - 12, -}; - -static const static_codebook _8u0__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__8u0__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__8u0__p5_0, - 0 -}; - -static const long _vq_quantlist__8u0__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__8u0__p6_0[] = { - 1, 4, 4, 7, 7, 9, 9,11,11,12,12,16,16, 3, 6, 6, - 9, 9,11,11,12,12,13,14,18,16, 3, 6, 7, 9, 9,11, - 11,13,12,14,14,17,16, 7, 9, 9,11,11,12,12,14,14, - 14,14,17,16, 7, 9, 9,11,11,13,12,13,13,14,14,17, - 0, 9,11,11,12,13,14,14,14,13,15,14,17,17, 9,11, - 11,12,12,14,14,13,14,14,15, 0, 0,11,12,12,15,14, - 15,14,15,14,15,16,17, 0,11,12,13,13,13,14,14,15, - 14,15,15, 0, 0,12,14,14,15,15,14,16,15,15,17,16, - 0,18,13,14,14,15,14,15,14,15,16,17,16, 0, 0,17, - 17,18, 0,16,18,16, 0, 0, 0,17, 0, 0,16, 0, 0,16, - 16, 0,15, 0,17, 0, 0, 0, 0, -}; - -static const static_codebook _8u0__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__8u0__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__8u0__p6_0, - 0 -}; - -static const long _vq_quantlist__8u0__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8u0__p6_1[] = { - 1, 4, 4, 6, 6, 4, 6, 5, 7, 7, 4, 5, 6, 7, 7, 6, - 7, 7, 7, 7, 6, 7, 7, 7, 7, -}; - -static const static_codebook _8u0__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__8u0__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8u0__p6_1, - 0 -}; - -static const long _vq_quantlist__8u0__p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8u0__p7_0[] = { - 1, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _8u0__p7_0 = { - 4, 81, - (char *)_vq_lengthlist__8u0__p7_0, - 1, -518803456, 1628680192, 2, 0, - (long *)_vq_quantlist__8u0__p7_0, - 0 -}; - -static const long _vq_quantlist__8u0__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__8u0__p7_1[] = { - 1, 5, 5, 5, 5,10,10,11,11,11,11,11,11,11,11, 5, - 7, 6, 8, 8, 9,10,11,11,11,11,11,11,11,11, 6, 6, - 7, 9, 7,11,10,11,11,11,11,11,11,11,11, 5, 6, 6, - 11, 8,11,11,11,11,11,11,11,11,11,11, 5, 6, 6, 9, - 10,11,10,11,11,11,11,11,11,11,11, 7,10,10,11,11, - 11,11,11,11,11,11,11,11,11,11, 7,11, 8,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _8u0__p7_1 = { - 2, 225, - (char *)_vq_lengthlist__8u0__p7_1, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__8u0__p7_1, - 0 -}; - -static const long _vq_quantlist__8u0__p7_2[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__8u0__p7_2[] = { - 1, 6, 5, 7, 7, 9, 9, 9, 9,10,12,12,10,11,11,10, - 11,11,11,10,11, 6, 8, 8, 9, 9,10,10, 9,10,11,11, - 10,11,11,11,11,10,11,11,11,11, 6, 7, 8, 9, 9, 9, - 10,11,10,11,12,11,10,11,11,11,11,11,11,12,10, 8, - 9, 9,10, 9,10,10, 9,10,10,10,10,10, 9,10,10,10, - 10, 9,10,10, 9, 9, 9, 9,10,10, 9, 9,10,10,11,10, - 9,12,10,11,10, 9,10,10,10, 8, 9, 9,10, 9,10, 9, - 9,10,10, 9,10, 9,11,10,10,10,10,10, 9,10, 8, 8, - 9, 9,10, 9,11, 9, 8, 9, 9,10,11,10,10,10,11,12, - 9, 9,11, 8, 9, 8,11,10,11,10,10, 9,11,10,10,10, - 10,10,10,10,11,11,11,11, 8, 9, 9, 9,10,10,10,11, - 11,12,11,12,11,10,10,10,12,11,11,11,10, 8,10, 9, - 11,10,10,11,12,10,11,12,11,11,12,11,12,12,10,11, - 11,10, 9, 9,10,11,12,10,10,10,11,10,11,11,10,12, - 12,10,11,10,11,12,10, 9,10,10,11,10,11,11,11,11, - 11,12,11,11,11, 9,11,10,11,10,11,10, 9, 9,10,11, - 11,11,10,10,11,12,12,11,12,11,11,11,12,12,12,12, - 11, 9,11,11,12,10,11,11,11,11,11,11,12,11,11,12, - 11,11,11,10,11,11, 9,11,10,11,11,11,10,10,10,11, - 11,11,12,10,11,10,11,11,11,11,12, 9,11,10,11,11, - 10,10,11,11, 9,11,11,12,10,10,10,10,10,11,11,10, - 9,10,11,11,12,11,10,10,12,11,11,12,11,12,11,11, - 10,10,11,11,10,12,11,10,11,10,11,10,10,10,11,11, - 10,10,11,11,11,11,10,10,10,12,11,11,11,11,10, 9, - 10,11,11,11,12,11,11,11,12,10,11,11,11, 9,10,11, - 11,11,11,11,11,10,10,11,11,12,11,10,11,12,11,10, - 10,11, 9,10,11,11,11,11,11,10,11,11,10,12,11,11, - 11,12,11,11,11,10,10,11,11, -}; - -static const static_codebook _8u0__p7_2 = { - 2, 441, - (char *)_vq_lengthlist__8u0__p7_2, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__8u0__p7_2, - 0 -}; - -static const char _huff_lengthlist__8u0__single[] = { - 4, 7,11, 9,12, 8, 7,10, 6, 4, 5, 5, 7, 5, 6,16, - 9, 5, 5, 6, 7, 7, 9,16, 7, 4, 6, 5, 7, 5, 7,17, - 10, 7, 7, 8, 7, 7, 8,18, 7, 5, 6, 4, 5, 4, 5,15, - 7, 6, 7, 5, 6, 4, 5,15,12,13,18,12,17,11, 9,17, -}; - -static const static_codebook _huff_book__8u0__single = { - 2, 64, - (char *)_huff_lengthlist__8u0__single, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__8u1__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8u1__p1_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 7, 9,10, 7, - 9, 9, 5, 8, 8, 7,10, 9, 7, 9, 9, 5, 8, 8, 8,10, - 10, 8,10,10, 7,10,10, 9,10,12,10,12,12, 7,10,10, - 9,12,11,10,12,12, 5, 8, 8, 8,10,10, 8,10,10, 7, - 10,10,10,12,12, 9,11,12, 7,10,10,10,12,12, 9,12, - 10, -}; - -static const static_codebook _8u1__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__8u1__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__8u1__p1_0, - 0 -}; - -static const long _vq_quantlist__8u1__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8u1__p2_0[] = { - 3, 4, 5, 5, 6, 6, 5, 6, 6, 5, 7, 6, 6, 7, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 7, 5, 6, 6, 7, 8, - 8, 6, 7, 7, 6, 8, 7, 7, 7, 9, 8, 9, 9, 6, 7, 8, - 7, 9, 7, 8, 9, 9, 5, 6, 6, 6, 7, 7, 7, 8, 8, 6, - 8, 7, 8, 9, 9, 7, 7, 9, 6, 7, 8, 8, 9, 9, 7, 9, - 7, -}; - -static const static_codebook _8u1__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__8u1__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__8u1__p2_0, - 0 -}; - -static const long _vq_quantlist__8u1__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8u1__p3_0[] = { - 1, 5, 5, 7, 7, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, - 10, 9,11,11, 9, 9, 9,11,11, 6, 8, 8,10,10, 8,10, - 10,11,11, 8, 9,10,11,11,10,11,11,12,12,10,11,11, - 12,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10, 9,11, - 11,10,11,11,12,12,10,11,11,12,12, 9,11,11,14,13, - 10,12,11,14,14,10,12,11,14,13,12,13,13,15,14,12, - 13,13,15,14, 8,11,11,13,14,10,11,12,13,15,10,11, - 12,14,14,12,13,13,14,15,12,13,13,14,15, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, - 13,11,12,12,13,14, 8,10,10,12,12, 9,11,12,13,14, - 10,12,12,13,13,12,12,13,14,14,11,13,13,15,15, 7, - 10,10,12,12, 9,12,11,14,12,10,11,12,13,14,12,13, - 12,14,14,12,13,13,15,16,10,12,12,15,14,11,12,13, - 15,15,11,13,13,15,16,14,14,15,15,16,13,14,15,17, - 15, 9,12,12,14,15,11,13,12,15,15,11,13,13,15,15, - 13,14,13,15,14,13,14,14,17, 0, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, - 12,14,14, 7,10,10,12,12,10,12,12,13,13, 9,11,12, - 12,13,11,12,13,15,15,11,12,13,14,15, 8,10,10,12, - 12,10,12,11,13,13,10,12,11,13,13,11,13,13,15,14, - 12,13,12,15,13, 9,12,12,14,14,11,13,13,16,15,11, - 12,13,16,15,13,14,15,16,16,13,13,15,15,16,10,12, - 12,15,14,11,13,13,14,16,11,13,13,15,16,13,15,15, - 16,17,13,15,14,16,15, 8,11,11,14,15,10,12,12,15, - 15,10,12,12,15,16,14,15,15,16,17,13,14,14,16,16, - 9,12,12,15,15,11,13,14,15,17,11,13,13,15,16,14, - 15,16,19,17,13,15,15, 0,17, 9,12,12,15,15,11,14, - 13,16,15,11,13,13,15,16,15,15,15,18,17,13,15,15, - 17,17,11,15,14,18,16,12,14,15,17,17,12,15,15,18, - 18,15,15,16,15,19,14,16,16, 0, 0,11,14,14,16,17, - 12,15,14,18,17,12,15,15,18,18,15,17,15,18,16,14, - 16,16,18,18, 7,11,11,14,14,10,12,12,15,15,10,12, - 13,15,15,13,14,15,16,16,14,15,15,18,18, 9,12,12, - 15,15,11,13,13,16,15,11,12,13,16,16,14,15,15,17, - 16,15,16,16,17,17, 9,12,12,15,15,11,13,13,15,17, - 11,14,13,16,15,13,15,15,17,17,15,15,15,18,17,11, - 14,14,17,15,12,14,15,17,18,13,13,15,17,17,14,16, - 16,19,18,16,15,17,17, 0,11,14,14,17,17,12,15,15, - 18, 0,12,15,14,18,16,14,17,17,19, 0,16,18,15, 0, - 16, -}; - -static const static_codebook _8u1__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__8u1__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8u1__p3_0, - 0 -}; - -static const long _vq_quantlist__8u1__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__8u1__p4_0[] = { - 4, 5, 5, 9, 9, 6, 7, 7, 9, 9, 6, 7, 7, 9, 9, 9, - 9, 9,11,11, 9, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 7, - 8, 9,10, 7, 7, 8, 9,10, 9, 9,10,10,11, 9, 9,10, - 10,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 7,10, - 9, 9,10, 9,12,11,10,10, 9,12,10, 9,10,10,12,11, - 9,10,10,12,11, 9,10,10,12,12,11,11,12,12,13,11, - 11,12,12,13, 9, 9,10,12,11, 9,10,10,12,12,10,10, - 10,12,12,11,12,11,13,12,11,12,11,13,12, 6, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 7,10, 9,10,10,10,12, - 12,10,10,10,12,11, 7, 8, 7,10,10, 7, 7, 9,10,11, - 8, 9, 9,11,10,10,10,11,10,12,10,10,11,12,12, 7, - 8, 8,10,10, 7, 9, 8,11,10, 8, 8, 9,11,11,10,11, - 10,12,11,10,11,11,12,12, 9,10,10,12,12, 9,10,10, - 12,12,10,11,11,13,12,11,10,12,10,14,12,12,12,13, - 14, 9,10,10,12,12, 9,11,10,12,12,10,11,11,12,12, - 11,12,11,14,12,12,12,12,14,14, 5, 7, 7, 9, 9, 7, - 7, 7, 9,10, 7, 8, 8,10,10,10,10,10,11,11,10,10, - 10,12,12, 7, 8, 8,10,10, 8, 9, 8,11,10, 7, 8, 9, - 10,11,10,10,10,11,12,10,10,11,11,13, 6, 7, 8,10, - 10, 8, 9, 9,10,10, 7, 9, 7,11,10,10,11,10,12,12, - 10,11,10,12,10, 9,10,10,12,12,10,11,11,13,12, 9, - 10,10,12,12,12,12,12,14,13,11,11,12,11,14, 9,10, - 10,11,12,10,11,11,12,13, 9,10,10,12,12,12,12,12, - 14,13,11,12,10,14,11, 9, 9,10,11,12, 9,10,10,12, - 12, 9,10,10,12,12,12,12,12,14,14,11,12,12,13,12, - 9,10, 9,12,12, 9,10,11,12,13,10,11,10,13,11,12, - 12,13,13,14,12,12,12,13,13, 9,10,10,12,12,10,11, - 10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,12, - 13,14,11,12,11,14,13,10,10,11,13,13,12,12,12,14, - 13,12,10,14,10,15,13,14,14,14,14,11,11,12,13,14, - 10,12,11,13,13,12,12,12,13,15,12,13,11,15,12,13, - 13,14,14,14, 9,10, 9,12,12, 9,10,10,12,12,10,10, - 10,12,12,11,11,12,12,13,12,12,12,14,14, 9,10,10, - 12,12,10,11,10,13,12,10,10,11,12,13,12,12,12,14, - 13,12,12,13,13,14, 9,10,10,12,13,10,10,11,11,12, - 9,11,10,13,12,12,12,12,13,14,12,13,12,14,13,11, - 12,11,13,13,12,13,12,14,13,10,11,12,13,13,13,13, - 13,14,15,12,11,14,12,14,11,11,12,12,13,12,12,12, - 13,14,10,12,10,14,13,13,13,13,14,15,12,14,11,15, - 10, -}; - -static const static_codebook _8u1__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__8u1__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__8u1__p4_0, - 0 -}; - -static const long _vq_quantlist__8u1__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__8u1__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 5, 8, 7, 8, 8, - 10,10, 4, 6, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, - 9, 9,10,10,12,11, 8, 8, 8, 9, 9,10,10,11,11, 9, - 10,10,11,11,11,11,13,12, 9,10,10,11,11,12,12,12, - 13, -}; - -static const static_codebook _8u1__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__8u1__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__8u1__p5_0, - 0 -}; - -static const long _vq_quantlist__8u1__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__8u1__p6_0[] = { - 3, 4, 4, 6, 6, 7, 7, 9, 9, 4, 4, 5, 6, 6, 7, 7, - 9, 9, 4, 4, 4, 6, 6, 7, 7, 9, 9, 6, 6, 6, 7, 7, - 8, 8, 9, 9, 6, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, - 8, 8, 8, 9,10,10, 7, 7, 7, 8, 8, 9, 8,10,10, 9, - 9, 9, 9, 9,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, - 10, -}; - -static const static_codebook _8u1__p6_0 = { - 2, 81, - (char *)_vq_lengthlist__8u1__p6_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__8u1__p6_0, - 0 -}; - -static const long _vq_quantlist__8u1__p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__8u1__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 9, 8,10,10, 8, - 10,10, 5, 9, 9, 7,10,10, 8,10,10, 4,10,10, 9,12, - 12, 9,11,11, 7,12,11,10,11,13,10,13,13, 7,12,12, - 10,13,12,10,13,13, 4,10,10, 9,12,12, 9,12,12, 7, - 12,12,10,13,13,10,12,13, 7,11,12,10,13,13,10,13, - 11, -}; - -static const static_codebook _8u1__p7_0 = { - 4, 81, - (char *)_vq_lengthlist__8u1__p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__8u1__p7_0, - 0 -}; - -static const long _vq_quantlist__8u1__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__8u1__p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, - 8, 8, 9, 9, 9, 9, 4, 5, 5, 7, 7, 8, 8, 9, 9, 9, - 9, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 9, 9, - 9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, - 10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, - 9, 9, 9, 9, 9,10,10,10,10, -}; - -static const static_codebook _8u1__p7_1 = { - 2, 121, - (char *)_vq_lengthlist__8u1__p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__8u1__p7_1, - 0 -}; - -static const long _vq_quantlist__8u1__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__8u1__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7, - 9, 9,11,11,13,12, 4, 6, 6, 7, 7, 9, 9,11,11,12, - 12, 6, 7, 7, 9, 9,11,11,12,12,13,13, 6, 7, 7, 9, - 9,11,11,12,12,13,13, 8, 9, 9,11,11,12,12,13,13, - 14,14, 8, 9, 9,11,11,12,12,13,13,14,14, 9,11,11, - 12,12,13,13,14,14,15,15, 9,11,11,12,12,13,13,14, - 14,15,14,11,12,12,13,13,14,14,15,15,16,16,11,12, - 12,13,13,14,14,15,15,15,15, -}; - -static const static_codebook _8u1__p8_0 = { - 2, 121, - (char *)_vq_lengthlist__8u1__p8_0, - 1, -524582912, 1618345984, 4, 0, - (long *)_vq_quantlist__8u1__p8_0, - 0 -}; - -static const long _vq_quantlist__8u1__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__8u1__p8_1[] = { - 2, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 6, 6, 7, 7, - 7, 7, 8, 8, 8, 8, 5, 6, 6, 7, 7, 7, 7, 8, 8, 8, - 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 9, 8, 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, - 8, 9, 9, 8, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, -}; - -static const static_codebook _8u1__p8_1 = { - 2, 121, - (char *)_vq_lengthlist__8u1__p8_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__8u1__p8_1, - 0 -}; - -static const long _vq_quantlist__8u1__p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__8u1__p9_0[] = { - 1, 4, 4,11,11,11,11,11,11,11,11,11,11,11,11, 3, - 11, 8,11,11,11,11,11,11,11,11,11,11,11,11, 3, 9, - 9,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _8u1__p9_0 = { - 2, 225, - (char *)_vq_lengthlist__8u1__p9_0, - 1, -514071552, 1627381760, 4, 0, - (long *)_vq_quantlist__8u1__p9_0, - 0 -}; - -static const long _vq_quantlist__8u1__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__8u1__p9_1[] = { - 1, 4, 4, 7, 7, 9, 9, 7, 7, 8, 8,10,10,11,11, 4, - 7, 7, 9, 9,10,10, 8, 8,10,10,10,11,10,11, 4, 7, - 7, 9, 9,10,10, 8, 8,10, 9,11,11,11,11, 7, 9, 9, - 12,12,11,12,10,10,11,10,12,11,11,11, 7, 9, 9,11, - 11,13,12, 9, 9,11,10,11,11,12,11, 9,10,10,12,12, - 14,14,10,10,11,12,12,11,11,11, 9,10,11,11,13,14, - 13,10,11,11,11,12,11,12,12, 7, 8, 8,10, 9,11,10, - 11,12,12,11,12,14,12,13, 7, 8, 8, 9,10,10,11,12, - 12,12,11,12,12,12,13, 9, 9, 9,11,11,13,12,12,12, - 12,11,12,12,13,12, 8,10,10,11,10,11,12,12,12,12, - 12,12,14,12,12, 9,11,11,11,12,12,12,12,13,13,12, - 12,13,13,12,10,11,11,12,11,12,12,12,11,12,13,12, - 12,12,13,11,11,12,12,12,13,12,12,11,12,13,13,12, - 12,13,12,11,12,12,13,13,12,13,12,13,13,13,13,14, - 13, -}; - -static const static_codebook _8u1__p9_1 = { - 2, 225, - (char *)_vq_lengthlist__8u1__p9_1, - 1, -522338304, 1620115456, 4, 0, - (long *)_vq_quantlist__8u1__p9_1, - 0 -}; - -static const long _vq_quantlist__8u1__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__8u1__p9_2[] = { - 2, 5, 4, 6, 6, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10,10, 9, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10, 8, 8, 8, 9, 9, 9, 9,10,10,10, 9, - 10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9,10, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _8u1__p9_2 = { - 2, 289, - (char *)_vq_lengthlist__8u1__p9_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__8u1__p9_2, - 0 -}; - -static const char _huff_lengthlist__8u1__single[] = { - 4, 7,13, 9,15, 9,16, 8,10,13, 7, 5, 8, 6, 9, 7, - 10, 7,10,11,11, 6, 7, 8, 8, 9, 9, 9,12,16, 8, 5, - 8, 6, 8, 6, 9, 7,10,12,11, 7, 7, 7, 6, 7, 7, 7, - 11,15, 7, 5, 8, 6, 7, 5, 7, 6, 9,13,13, 9, 9, 8, - 6, 6, 5, 5, 9,14, 8, 6, 8, 6, 6, 4, 5, 3, 5,13, - 9, 9,11, 8,10, 7, 8, 4, 5,12,11,16,17,15,17,12, - 13, 8, 8,15, -}; - -static const static_codebook _huff_book__8u1__single = { - 2, 100, - (char *)_huff_lengthlist__8u1__single, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u0__long[] = { - 5, 8,13,10,17,11,11,15, 7, 2, 4, 5, 8, 7, 9,16, - 13, 4, 3, 5, 6, 8,11,20,10, 4, 5, 5, 7, 6, 8,18, - 15, 7, 6, 7, 8,10,14,20,10, 6, 7, 6, 9, 7, 8,17, - 9, 8,10, 8,10, 5, 4,11,12,17,19,14,16,10, 7,12, -}; - -static const static_codebook _huff_book__44u0__long = { - 2, 64, - (char *)_huff_lengthlist__44u0__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u0__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u0__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,10, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,12,11,11,13,13,11,13,14, 7,11,11, - 10,13,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,12, 8, - 11,11,11,13,13,10,12,13, 8,11,11,11,14,13,11,14, - 13, -}; - -static const static_codebook _44u0__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u0__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u0__p1_0, - 0 -}; - -static const long _vq_quantlist__44u0__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u0__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, - 8, 8, 5, 7, 7, 6, 8, 8, 7, 8, 8, 4, 7, 7, 7, 8, - 8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, - 8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, - 9, -}; - -static const static_codebook _44u0__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u0__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u0__p2_0, - 0 -}; - -static const long _vq_quantlist__44u0__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u0__p3_0[] = { - 1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, - 10, 9,12,12, 9, 9,10,12,12, 6, 8, 8,11,10, 8,10, - 10,11,11, 8, 9,10,11,11,10,11,11,14,13,10,11,11, - 13,13, 5, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, - 11,10,11,11,13,13,10,11,11,13,13, 9,11,11,15,14, - 10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12, - 14,13,17,15, 9,11,11,14,15,10,11,12,14,16,10,11, - 12,14,16,12,13,14,16,16,13,13,15,15,18, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,13,11,12,12,14, - 14,11,12,12,15,15, 8,10,10,13,13,10,12,12,13,13, - 10,12,12,14,14,12,13,13,15,15,12,13,13,16,16, 7, - 10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13, - 12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13, - 16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19, - 19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16, - 14,15,15,17,17,14,15,15,17,19, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,11,12,12,16,15,11,12, - 12,14,15, 7,10,10,13,13,10,12,12,14,13,10,11,12, - 13,13,12,13,13,16,16,12,12,13,15,15, 8,10,10,13, - 13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16, - 12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11, - 12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12, - 12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15, - 17,19,14,15,15,17,17, 8,11,11,16,16,10,13,12,17, - 17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19, - 9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16, - 17,18,19,19,15,16,16,19,19, 9,12,12,16,17,11,14, - 13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16, - 18,18,12,15,15,19,17,14,15,16, 0,20,13,15,16,20, - 17,18,16,20, 0, 0,15,16,19,20, 0,12,15,14,18,19, - 13,16,15,20,19,13,16,15,20,18,17,18,17, 0,20,16, - 17,16, 0, 0, 8,11,11,16,15,10,12,12,17,17,10,13, - 13,17,16,14,16,15,18,20,15,16,16,19,19, 9,12,12, - 16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20, - 20,16,16,17,19,19, 9,13,12,16,17,11,14,13,17,17, - 11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12, - 14,15,19,18,13,15,16,18, 0,13,14,15, 0, 0,16,16, - 17,20, 0,17,17,20,20, 0,12,15,15,19,20,13,15,15, - 0, 0,14,16,15, 0, 0,15,18,16, 0, 0,17,18,16, 0, - 19, -}; - -static const static_codebook _44u0__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u0__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u0__p3_0, - 0 -}; - -static const long _vq_quantlist__44u0__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u0__p4_0[] = { - 4, 5, 5, 9, 9, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 9, - 10, 9,12,12, 9, 9,10,12,12, 5, 7, 7,10,10, 7, 7, - 8,10,10, 6, 7, 8,10,10,10,10,10,11,13,10, 9,10, - 12,13, 5, 7, 7,10,10, 6, 8, 7,10,10, 7, 8, 7,10, - 10, 9,10,10,12,12,10,10,10,13,11, 9,10,10,13,13, - 10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12, - 12,13,14,14, 9,10,10,13,13,10,10,10,13,13,10,10, - 10,13,13,12,13,12,15,14,12,13,12,15,15, 5, 7, 6, - 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,13, - 13,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,10,11, - 8, 9, 9,11,11,11,10,11,11,14,11,11,11,13,13, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11, - 14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15, - 15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14, - 12,13,12,15,13,13,13,14,15,16, 5, 7, 7,10,10, 7, - 8, 8,10,10, 7, 8, 8,10,10,10,10,10,13,13,10,10, - 11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,10,11,11,13,13,10,10,11,11,13, 6, 8, 8,10, - 11, 8, 9, 9,11,11, 8, 9, 8,12,10,10,11,11,13,13, - 10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10, - 10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11, - 11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13, - 16,16,12,13,11,15,12, 9,10,10,13,13,10,11,11,14, - 13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16, - 9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13, - 13,14,14,18,13,13,14,16,15, 9,10,10,13,14,10,11, - 10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14, - 15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16, - 15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16, - 11,13,11,16,15,12,13,14,15,16,14,15,13, 0,14,14, - 16,16, 0, 0, 9,10,10,13,13,10,11,10,14,14,10,11, - 11,13,13,12,13,13,14,16,13,14,14,16,16, 9,10,10, - 14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16, - 16,13,13,14,14,17, 9,10,10,13,14,10,11,11,13,15, - 10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12, - 13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15, - 16,18,16,15,13,15,14, 0,12,12,13,14,16,13,13,14, - 15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17, - 12, -}; - -static const static_codebook _44u0__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u0__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u0__p4_0, - 0 -}; - -static const long _vq_quantlist__44u0__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u0__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, - 9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, - 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,10, 7, 8, 8, - 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 9, 9,10,10,11,11,12,12, 9, 9, 9,10,11,11,11,12, - 12, -}; - -static const static_codebook _44u0__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u0__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u0__p5_0, - 0 -}; - -static const long _vq_quantlist__44u0__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u0__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8,10, 9,11,10,14,13, 4, 6, 5, - 8, 8, 9, 9,11,10,11,11,14,14, 4, 5, 6, 8, 8, 9, - 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, - 12,12,16,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,15, - 15, 9,10,10,10,10,11,11,12,12,12,12,15,15, 9,10, - 9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11, - 12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13, - 12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15, - 17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14, - 15,15,15,15,16,16,16,16,17,18, 0, 0,14,15,15,15, - 15,17,16,17,18,17,17,18, 0, -}; - -static const static_codebook _44u0__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44u0__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44u0__p6_0, - 0 -}; - -static const long _vq_quantlist__44u0__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u0__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 5, 6, 6, 6, 6, -}; - -static const static_codebook _44u0__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44u0__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u0__p6_1, - 0 -}; - -static const long _vq_quantlist__44u0__p7_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u0__p7_0[] = { - 1, 4, 4,11,11, 9,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11, 9,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _44u0__p7_0 = { - 4, 625, - (char *)_vq_lengthlist__44u0__p7_0, - 1, -518709248, 1626677248, 3, 0, - (long *)_vq_quantlist__44u0__p7_0, - 0 -}; - -static const long _vq_quantlist__44u0__p7_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u0__p7_1[] = { - 1, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 5, 7, 7, - 8, 7, 7, 7, 9, 8,10, 9,10,11, 5, 7, 7, 8, 8, 7, - 7, 8, 9,10,10,11,11, 6, 8, 8, 9, 9, 9, 9,11,10, - 12,12,15,12, 6, 8, 8, 9, 9, 9, 9,11,11,12,11,14, - 12, 7, 8, 8,10,10,12,12,13,13,13,15,13,13, 7, 8, - 8,10,10,11,11,13,12,14,15,15,15, 9,10,10,11,12, - 13,13,14,15,14,15,14,15, 8,10,10,12,12,14,14,15, - 14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14, - 15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12, - 15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15, - 15,15,15,15,15,15,15,15,15, -}; - -static const static_codebook _44u0__p7_1 = { - 2, 169, - (char *)_vq_lengthlist__44u0__p7_1, - 1, -523010048, 1618608128, 4, 0, - (long *)_vq_quantlist__44u0__p7_1, - 0 -}; - -static const long _vq_quantlist__44u0__p7_2[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u0__p7_2[] = { - 2, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 5, 5, 6, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 5, 6, 5, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, 8, 8, 8, 9, 8, - 9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 7, 8, - 8, 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, - 9, 9, 9, 9, 9, 9,10,10, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, - 9, 9, 9,10, 9, 9,10,10, 9, -}; - -static const static_codebook _44u0__p7_2 = { - 2, 169, - (char *)_vq_lengthlist__44u0__p7_2, - 1, -531103744, 1611661312, 4, 0, - (long *)_vq_quantlist__44u0__p7_2, - 0 -}; - -static const char _huff_lengthlist__44u0__short[] = { - 12,13,14,13,17,12,15,17, 5, 5, 6,10,10,11,15,16, - 4, 3, 3, 7, 5, 7,10,16, 7, 7, 7,10, 9,11,12,16, - 6, 5, 5, 9, 5, 6,10,16, 8, 7, 7, 9, 6, 7, 9,16, - 11, 7, 3, 6, 4, 5, 8,16,12, 9, 4, 8, 5, 7, 9,16, -}; - -static const static_codebook _huff_book__44u0__short = { - 2, 64, - (char *)_huff_lengthlist__44u0__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u1__long[] = { - 5, 8,13,10,17,11,11,15, 7, 2, 4, 5, 8, 7, 9,16, - 13, 4, 3, 5, 6, 8,11,20,10, 4, 5, 5, 7, 6, 8,18, - 15, 7, 6, 7, 8,10,14,20,10, 6, 7, 6, 9, 7, 8,17, - 9, 8,10, 8,10, 5, 4,11,12,17,19,14,16,10, 7,12, -}; - -static const static_codebook _huff_book__44u1__long = { - 2, 64, - (char *)_huff_lengthlist__44u1__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u1__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u1__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,10, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,12,11,11,13,13,11,13,14, 7,11,11, - 10,13,12,11,13,14, 4, 8, 8, 8,11,11, 8,11,12, 8, - 11,11,11,13,13,10,12,13, 8,11,11,11,14,13,11,14, - 13, -}; - -static const static_codebook _44u1__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u1__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u1__p1_0, - 0 -}; - -static const long _vq_quantlist__44u1__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u1__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, - 8, 8, 5, 7, 7, 6, 8, 8, 7, 8, 8, 4, 7, 7, 7, 8, - 8, 7, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, - 8,10, 8, 8,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, - 9, -}; - -static const static_codebook _44u1__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u1__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u1__p2_0, - 0 -}; - -static const long _vq_quantlist__44u1__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u1__p3_0[] = { - 1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, - 10, 9,12,12, 9, 9,10,12,12, 6, 8, 8,11,10, 8,10, - 10,11,11, 8, 9,10,11,11,10,11,11,14,13,10,11,11, - 13,13, 5, 8, 8,10,10, 8,10,10,11,11, 8,10,10,11, - 11,10,11,11,13,13,10,11,11,13,13, 9,11,11,15,14, - 10,12,12,15,14,10,12,11,15,14,13,14,14,16,16,12, - 14,13,17,15, 9,11,11,14,15,10,11,12,14,16,10,11, - 12,14,16,12,13,14,16,16,13,13,15,15,18, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,13,11,12,12,14, - 14,11,12,12,15,15, 8,10,10,13,13,10,12,12,13,13, - 10,12,12,14,14,12,13,13,15,15,12,13,13,16,16, 7, - 10,10,12,12,10,12,11,13,13,10,12,12,13,14,12,13, - 12,15,14,12,13,13,16,16,10,12,12,17,16,12,13,13, - 16,15,11,13,13,17,17,15,15,15,16,17,14,15,15,19, - 19,10,12,12,15,16,11,13,12,15,18,11,13,13,16,16, - 14,15,15,17,17,14,15,15,17,19, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,11,12,12,16,15,11,12, - 12,14,15, 7,10,10,13,13,10,12,12,14,13,10,11,12, - 13,13,12,13,13,16,16,12,12,13,15,15, 8,10,10,13, - 13,10,12,12,14,14,10,12,12,13,13,12,13,13,16,16, - 12,13,13,15,15,10,12,12,16,15,11,13,13,17,16,11, - 12,13,16,15,13,15,15,19,17,14,15,14,17,16,10,12, - 12,16,16,11,13,13,16,17,12,13,13,15,17,14,15,15, - 17,19,14,15,15,17,17, 8,11,11,16,16,10,13,12,17, - 17,10,12,13,16,16,15,17,16,20,19,14,15,17,18,19, - 9,12,12,16,17,11,13,14,17,18,11,13,13,19,18,16, - 17,18,19,19,15,16,16,19,19, 9,12,12,16,17,11,14, - 13,18,17,11,13,13,17,17,16,17,16,20,19,14,16,16, - 18,18,12,15,15,19,17,14,15,16, 0,20,13,15,16,20, - 17,18,16,20, 0, 0,15,16,19,20, 0,12,15,14,18,19, - 13,16,15,20,19,13,16,15,20,18,17,18,17, 0,20,16, - 17,16, 0, 0, 8,11,11,16,15,10,12,12,17,17,10,13, - 13,17,16,14,16,15,18,20,15,16,16,19,19, 9,12,12, - 16,16,11,13,13,17,16,11,13,14,17,18,15,15,16,20, - 20,16,16,17,19,19, 9,13,12,16,17,11,14,13,17,17, - 11,14,14,18,17,14,16,15,18,19,16,17,18,18,19,12, - 14,15,19,18,13,15,16,18, 0,13,14,15, 0, 0,16,16, - 17,20, 0,17,17,20,20, 0,12,15,15,19,20,13,15,15, - 0, 0,14,16,15, 0, 0,15,18,16, 0, 0,17,18,16, 0, - 19, -}; - -static const static_codebook _44u1__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u1__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u1__p3_0, - 0 -}; - -static const long _vq_quantlist__44u1__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u1__p4_0[] = { - 4, 5, 5, 9, 9, 5, 6, 6, 9, 9, 5, 6, 6, 9, 9, 9, - 10, 9,12,12, 9, 9,10,12,12, 5, 7, 7,10,10, 7, 7, - 8,10,10, 6, 7, 8,10,10,10,10,10,11,13,10, 9,10, - 12,13, 5, 7, 7,10,10, 6, 8, 7,10,10, 7, 8, 7,10, - 10, 9,10,10,12,12,10,10,10,13,11, 9,10,10,13,13, - 10,11,10,13,13,10,10,10,13,13,12,12,13,14,14,12, - 12,13,14,14, 9,10,10,13,13,10,10,10,13,13,10,10, - 10,13,13,12,13,12,15,14,12,13,12,15,15, 5, 7, 6, - 10,10, 7, 8, 8,10,10, 7, 8, 8,10,10,10,11,10,13, - 13,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,10,11, - 8, 9, 9,11,11,11,10,11,11,14,11,11,11,13,13, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,14,11,10,11,11,13,13,10,11,11,14,13,10,10,11, - 14,13,10,11,11,14,14,12,11,13,12,16,13,14,14,15, - 15,10,10,11,13,14,10,11,10,14,13,10,11,11,14,14, - 12,13,12,15,13,13,13,14,15,16, 5, 7, 7,10,10, 7, - 8, 8,10,10, 7, 8, 8,10,10,10,10,10,13,13,10,10, - 11,12,13, 6, 8, 8,11,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,10,11,11,13,13,10,10,11,11,13, 6, 8, 8,10, - 11, 8, 9, 9,11,11, 8, 9, 8,12,10,10,11,11,13,13, - 10,11,10,14,11,10,10,10,14,13,10,11,11,14,13,10, - 10,11,13,13,12,14,14,16,16,12,12,13,13,15,10,11, - 11,13,14,10,11,11,14,15,10,11,10,13,13,13,14,13, - 16,16,12,13,11,15,12, 9,10,10,13,13,10,11,11,14, - 13,10,10,11,13,14,13,14,13,16,16,13,13,13,15,16, - 9,10,10,13,13,10,10,11,13,14,10,11,11,15,13,13, - 13,14,14,18,13,13,14,16,15, 9,10,10,13,14,10,11, - 10,14,13,10,11,11,13,14,13,14,13,16,15,13,13,14, - 15,16,12,13,12,16,14,11,11,13,15,15,13,14,13,16, - 15,15,12,16,12,17,14,15,15,17,17,12,13,13,14,16, - 11,13,11,16,15,12,13,14,15,16,14,15,13, 0,14,14, - 16,16, 0, 0, 9,10,10,13,13,10,11,10,14,14,10,11, - 11,13,13,12,13,13,14,16,13,14,14,16,16, 9,10,10, - 14,14,11,11,11,14,13,10,10,11,14,14,13,13,13,16, - 16,13,13,14,14,17, 9,10,10,13,14,10,11,11,13,15, - 10,11,10,14,14,13,13,13,14,17,13,14,13,17,14,12, - 13,13,16,14,13,14,13,16,15,12,12,13,15,16,15,15, - 16,18,16,15,13,15,14, 0,12,12,13,14,16,13,13,14, - 15,16,11,12,11,16,14,15,16,16,17,17,14,15,12,17, - 12, -}; - -static const static_codebook _44u1__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u1__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u1__p4_0, - 0 -}; - -static const long _vq_quantlist__44u1__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u1__p5_0[] = { - 1, 4, 4, 7, 7, 7, 7, 9, 9, 4, 6, 6, 8, 8, 8, 8, - 9, 9, 4, 6, 6, 8, 8, 8, 8, 9, 9, 7, 8, 8, 9, 9, - 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,10, 7, 8, 8, - 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 9, 9,10,10,11,11,12,12, 9, 9, 9,10,11,11,11,12, - 12, -}; - -static const static_codebook _44u1__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u1__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u1__p5_0, - 0 -}; - -static const long _vq_quantlist__44u1__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u1__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8,10, 9,11,10,14,13, 4, 6, 5, - 8, 8, 9, 9,11,10,11,11,14,14, 4, 5, 6, 8, 8, 9, - 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, - 12,12,16,15, 7, 8, 8, 9, 9,10,10,11,11,12,12,15, - 15, 9,10,10,10,10,11,11,12,12,12,12,15,15, 9,10, - 9,10,11,11,11,12,12,12,13,15,15,10,10,11,11,11, - 12,12,13,12,13,13,16,15,10,11,11,11,11,12,12,13, - 12,13,13,16,17,11,11,12,12,12,13,13,13,14,14,15, - 17,17,11,11,12,12,12,13,13,13,14,14,14,16,18,14, - 15,15,15,15,16,16,16,16,17,18, 0, 0,14,15,15,15, - 15,17,16,17,18,17,17,18, 0, -}; - -static const static_codebook _44u1__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44u1__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44u1__p6_0, - 0 -}; - -static const long _vq_quantlist__44u1__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u1__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 6, 6, 6, 6, 5, 6, 6, 6, 6, -}; - -static const static_codebook _44u1__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44u1__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u1__p6_1, - 0 -}; - -static const long _vq_quantlist__44u1__p7_0[] = { - 3, - 2, - 4, - 1, - 5, - 0, - 6, -}; - -static const char _vq_lengthlist__44u1__p7_0[] = { - 1, 3, 2, 9, 9, 7, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, -}; - -static const static_codebook _44u1__p7_0 = { - 2, 49, - (char *)_vq_lengthlist__44u1__p7_0, - 1, -518017024, 1626677248, 3, 0, - (long *)_vq_quantlist__44u1__p7_0, - 0 -}; - -static const long _vq_quantlist__44u1__p7_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u1__p7_1[] = { - 1, 4, 4, 6, 6, 6, 6, 7, 7, 8, 8, 9, 9, 5, 7, 7, - 8, 7, 7, 7, 9, 8,10, 9,10,11, 5, 7, 7, 8, 8, 7, - 7, 8, 9,10,10,11,11, 6, 8, 8, 9, 9, 9, 9,11,10, - 12,12,15,12, 6, 8, 8, 9, 9, 9, 9,11,11,12,11,14, - 12, 7, 8, 8,10,10,12,12,13,13,13,15,13,13, 7, 8, - 8,10,10,11,11,13,12,14,15,15,15, 9,10,10,11,12, - 13,13,14,15,14,15,14,15, 8,10,10,12,12,14,14,15, - 14,14,15,15,14,10,12,12,14,14,15,14,15,15,15,14, - 15,15,10,12,12,13,14,15,14,15,15,14,15,15,15,12, - 15,13,15,14,15,15,15,15,15,15,15,15,13,13,15,15, - 15,15,15,15,15,15,15,15,15, -}; - -static const static_codebook _44u1__p7_1 = { - 2, 169, - (char *)_vq_lengthlist__44u1__p7_1, - 1, -523010048, 1618608128, 4, 0, - (long *)_vq_quantlist__44u1__p7_1, - 0 -}; - -static const long _vq_quantlist__44u1__p7_2[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u1__p7_2[] = { - 2, 5, 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 5, 5, 6, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 5, 6, 5, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 6, 7, 7, 8, 8, 8, 8, 9, 8, - 9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 7, 8, - 8, 9, 8, 9, 8, 9, 9, 9, 9, 9, 9, 8, 9, 8, 9, 9, - 9, 9, 9, 9, 9, 9,10,10, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9,10, 9,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9, 9, 9, 9, 9, - 9, 9, 9,10, 9, 9,10,10, 9, -}; - -static const static_codebook _44u1__p7_2 = { - 2, 169, - (char *)_vq_lengthlist__44u1__p7_2, - 1, -531103744, 1611661312, 4, 0, - (long *)_vq_quantlist__44u1__p7_2, - 0 -}; - -static const char _huff_lengthlist__44u1__short[] = { - 12,13,14,13,17,12,15,17, 5, 5, 6,10,10,11,15,16, - 4, 3, 3, 7, 5, 7,10,16, 7, 7, 7,10, 9,11,12,16, - 6, 5, 5, 9, 5, 6,10,16, 8, 7, 7, 9, 6, 7, 9,16, - 11, 7, 3, 6, 4, 5, 8,16,12, 9, 4, 8, 5, 7, 9,16, -}; - -static const static_codebook _huff_book__44u1__short = { - 2, 64, - (char *)_huff_lengthlist__44u1__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u2__long[] = { - 5, 9,14,12,15,13,10,13, 7, 4, 5, 6, 8, 7, 8,12, - 13, 4, 3, 5, 5, 6, 9,15,12, 6, 5, 6, 6, 6, 7,14, - 14, 7, 4, 6, 4, 6, 8,15,12, 6, 6, 5, 5, 5, 6,14, - 9, 7, 8, 6, 7, 5, 4,10,10,13,14,14,15,10, 6, 8, -}; - -static const static_codebook _huff_book__44u2__long = { - 2, 64, - (char *)_huff_lengthlist__44u2__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u2__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u2__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,11,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,13,13, 7,11,11, - 10,13,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 8, - 11,11,11,14,13,10,12,13, 8,11,11,11,13,13,11,13, - 13, -}; - -static const static_codebook _44u2__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u2__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u2__p1_0, - 0 -}; - -static const long _vq_quantlist__44u2__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u2__p2_0[] = { - 2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, - 8, 8, 5, 6, 6, 6, 8, 7, 7, 8, 8, 5, 6, 6, 7, 8, - 8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, - 7,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, - 9, -}; - -static const static_codebook _44u2__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u2__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u2__p2_0, - 0 -}; - -static const long _vq_quantlist__44u2__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u2__p3_0[] = { - 2, 4, 4, 7, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, - 9, 9,12,11, 8, 9, 9,11,12, 5, 7, 7,10,10, 7, 9, - 9,11,11, 7, 9, 9,10,11,10,11,11,13,13, 9,10,11, - 12,13, 5, 7, 7,10,10, 7, 9, 9,11,10, 7, 9, 9,11, - 11, 9,11,10,13,13,10,11,11,13,13, 8,10,10,14,13, - 10,11,11,15,14, 9,11,11,15,14,13,14,13,16,14,12, - 13,13,15,16, 8,10,10,13,14, 9,11,11,14,15,10,11, - 11,14,15,12,13,13,15,15,12,13,14,15,16, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, - 13,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,13, - 9,11,11,13,13,12,13,12,14,14,11,12,13,15,15, 7, - 9, 9,12,12, 8,11,10,13,12, 9,11,11,13,13,11,13, - 12,15,13,11,13,13,15,16, 9,12,11,15,15,11,12,12, - 16,15,11,12,13,16,16,13,14,15,16,15,13,15,15,17, - 17, 9,11,11,14,15,10,12,12,15,15,11,13,12,15,16, - 13,15,14,16,16,13,15,15,17,19, 5, 7, 7,10,10, 7, - 9, 9,12,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, - 11,13,14, 7, 9, 9,12,12, 9,11,11,13,13, 9,10,11, - 12,13,11,13,12,16,15,11,12,12,14,15, 7, 9, 9,12, - 12, 9,11,11,13,13, 9,11,11,13,12,11,13,12,15,16, - 12,13,13,15,14, 9,11,11,15,14,11,13,12,16,15,10, - 11,12,15,15,13,14,14,18,17,13,14,14,15,17,10,11, - 11,14,15,11,13,12,15,17,11,13,12,15,16,13,15,14, - 18,17,14,15,15,16,18, 7,10,10,14,14,10,12,12,15, - 15,10,12,12,15,15,14,15,15,18,17,13,15,15,16,16, - 9,11,11,16,15,11,13,13,16,18,11,13,13,16,16,15, - 16,16, 0, 0,14,15,16,18,17, 9,11,11,15,15,10,13, - 12,17,16,11,12,13,16,17,14,15,16,19,19,14,15,15, - 0,20,12,14,14, 0, 0,13,14,16,19,18,13,15,16,20, - 17,16,18, 0, 0, 0,15,16,17,18,19,11,14,14, 0,19, - 12,15,14,17,17,13,15,15, 0, 0,16,17,15,20,19,15, - 17,16,19, 0, 8,10,10,14,15,10,12,11,15,15,10,11, - 12,16,15,13,14,14,19,17,14,15,15, 0, 0, 9,11,11, - 16,15,11,13,13,17,16,10,12,13,16,17,14,15,15,18, - 18,14,15,16,20,19, 9,12,12, 0,15,11,13,13,16,17, - 11,13,13,19,17,14,16,16,18,17,15,16,16,17,19,11, - 14,14,18,18,13,14,15, 0, 0,12,14,15,19,18,15,16, - 19, 0,19,15,16,19,19,17,12,14,14,16,19,13,15,15, - 0,17,13,15,14,18,18,15,16,15, 0,18,16,17,17, 0, - 0, -}; - -static const static_codebook _44u2__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u2__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u2__p3_0, - 0 -}; - -static const long _vq_quantlist__44u2__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u2__p4_0[] = { - 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, - 9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 7, 8,10,10,10,10,10,11,12, 9,10,10, - 11,12, 5, 7, 7, 9, 9, 6, 8, 7,10,10, 7, 8, 8,10, - 10, 9,10,10,12,11, 9,10,10,12,11, 9,10,10,12,12, - 10,10,10,13,12, 9,10,10,12,13,12,12,12,14,14,11, - 12,12,13,14, 9,10,10,12,12, 9,10,10,12,13,10,10, - 10,12,13,11,12,12,14,13,12,12,12,14,13, 5, 7, 7, - 10, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, - 12,10,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, - 8, 9, 9,11,11,10,11,11,12,13,10,11,11,13,13, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,11,10,11,11,13,13, 9,10,10,13,13,10,11,11, - 13,13,10,11,11,14,13,12,11,13,12,15,12,13,13,15, - 15, 9,10,10,12,13,10,11,10,13,13,10,11,11,13,13, - 12,13,11,15,13,12,13,13,15,15, 5, 7, 7, 9,10, 7, - 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12,12,10,10, - 11,12,12, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, - 11, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,11,13,13, - 10,11,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, - 10,11,13,13,12,13,13,15,15,12,11,13,12,14, 9,10, - 10,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13, - 15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, - 13, 9,10,10,13,13,12,13,13,15,15,12,12,12,14,14, - 9,10,10,13,13,10,11,11,13,14,10,11,11,14,12,13, - 13,14,14,16,12,13,13,15,14, 9,10,10,13,13,10,11, - 10,14,13,10,11,11,13,14,12,14,13,16,14,13,13,13, - 14,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16, - 15,14,12,15,12,16,14,15,15,17,16,11,12,12,14,15, - 11,13,11,15,14,12,13,13,15,16,13,15,12,17,13,14, - 15,15,16,16, 8, 9, 9,12,12, 9,10,10,13,13, 9,10, - 10,13,13,12,13,12,14,14,12,13,13,15,15, 9,10,10, - 13,13,10,11,11,14,13,10,10,11,13,14,12,13,13,15, - 14,12,12,14,14,16, 9,10,10,13,13,10,11,11,13,14, - 10,11,11,14,13,13,13,13,15,15,13,14,13,16,14,11, - 12,12,14,14,12,13,13,16,15,11,12,13,14,15,14,15, - 15,16,16,14,13,15,13,17,11,12,12,14,15,12,13,13, - 15,16,11,13,12,15,15,14,15,14,16,16,14,15,12,17, - 13, -}; - -static const static_codebook _44u2__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u2__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u2__p4_0, - 0 -}; - -static const long _vq_quantlist__44u2__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u2__p5_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 8, 8, 8, - 10,10, 4, 5, 6, 8, 8, 8, 8,10,10, 7, 8, 8, 9, 9, - 9, 9,11,11, 7, 8, 8, 9, 9, 9, 9,11,11, 8, 8, 8, - 9, 9,10,11,12,12, 8, 8, 8, 9, 9,10,10,12,12,10, - 10,10,11,11,12,12,13,13,10,10,10,11,11,12,12,13, - 13, -}; - -static const static_codebook _44u2__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u2__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u2__p5_0, - 0 -}; - -static const long _vq_quantlist__44u2__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u2__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8,10,10,11,11,14,13, 4, 6, 5, - 8, 8, 9, 9,11,10,12,11,15,14, 4, 5, 6, 8, 8, 9, - 9,11,11,11,11,14,14, 6, 8, 8,10, 9,11,11,11,11, - 12,12,15,15, 6, 8, 8, 9, 9,11,11,11,12,12,12,15, - 15, 8,10,10,11,11,11,11,12,12,13,13,15,16, 8,10, - 10,11,11,11,11,12,12,13,13,16,16,10,11,11,12,12, - 12,12,13,13,13,13,17,16,10,11,11,12,12,12,12,13, - 13,13,14,16,17,11,12,12,13,13,13,13,14,14,15,14, - 18,17,11,12,12,13,13,13,13,14,14,14,15,19,18,14, - 15,15,15,15,16,16,18,19,18,18, 0, 0,14,15,15,16, - 15,17,17,16,18,17,18, 0, 0, -}; - -static const static_codebook _44u2__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44u2__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44u2__p6_0, - 0 -}; - -static const long _vq_quantlist__44u2__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u2__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 5, 5, 6, 6, 6, -}; - -static const static_codebook _44u2__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44u2__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u2__p6_1, - 0 -}; - -static const long _vq_quantlist__44u2__p7_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u2__p7_0[] = { - 1, 3, 2,12,12,12,12,12,12, 4,12,12,12,12,12,12, - 12,12, 5,12,12,12,12,12,12,12,12,12,12,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11, -}; - -static const static_codebook _44u2__p7_0 = { - 2, 81, - (char *)_vq_lengthlist__44u2__p7_0, - 1, -516612096, 1626677248, 4, 0, - (long *)_vq_quantlist__44u2__p7_0, - 0 -}; - -static const long _vq_quantlist__44u2__p7_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u2__p7_1[] = { - 1, 4, 4, 7, 6, 7, 6, 8, 7, 9, 7, 9, 8, 4, 7, 6, - 8, 8, 9, 8,10, 9,10,10,11,11, 4, 7, 7, 8, 8, 8, - 8, 9,10,11,11,11,11, 6, 8, 8,10,10,10,10,11,11, - 12,12,12,12, 7, 8, 8,10,10,10,10,11,11,12,12,13, - 13, 7, 9, 9,11,10,12,12,13,13,14,13,14,14, 7, 9, - 9,10,11,11,12,13,13,13,13,16,14, 9,10,10,12,12, - 13,13,14,14,15,16,15,16, 9,10,10,12,12,12,13,14, - 14,14,15,16,15,10,12,12,13,13,15,13,16,16,15,17, - 17,17,10,11,11,12,14,14,14,15,15,17,17,15,17,11, - 12,12,14,14,14,15,15,15,17,16,17,17,10,12,12,13, - 14,14,14,17,15,17,17,17,17, -}; - -static const static_codebook _44u2__p7_1 = { - 2, 169, - (char *)_vq_lengthlist__44u2__p7_1, - 1, -523010048, 1618608128, 4, 0, - (long *)_vq_quantlist__44u2__p7_1, - 0 -}; - -static const long _vq_quantlist__44u2__p7_2[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u2__p7_2[] = { - 2, 5, 5, 6, 6, 7, 7, 8, 7, 8, 8, 8, 8, 5, 6, 6, - 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 5, 6, 6, 7, 7, 8, - 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, 8, 8, 8, 8, 8, - 9, 9, 9, 9, 6, 7, 7, 8, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 7, 8, - 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static const static_codebook _44u2__p7_2 = { - 2, 169, - (char *)_vq_lengthlist__44u2__p7_2, - 1, -531103744, 1611661312, 4, 0, - (long *)_vq_quantlist__44u2__p7_2, - 0 -}; - -static const char _huff_lengthlist__44u2__short[] = { - 13,15,17,17,15,15,12,17,11, 9, 7,10,10, 9,12,17, - 10, 6, 3, 6, 5, 7,10,17,15,10, 6, 9, 8, 9,11,17, - 15, 8, 4, 7, 3, 5, 9,16,16,10, 5, 8, 4, 5, 8,16, - 13,11, 5, 8, 3, 3, 5,14,13,12, 7,10, 5, 5, 7,14, -}; - -static const static_codebook _huff_book__44u2__short = { - 2, 64, - (char *)_huff_lengthlist__44u2__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u3__long[] = { - 6, 9,13,12,14,11,10,13, 8, 4, 5, 7, 8, 7, 8,12, - 11, 4, 3, 5, 5, 7, 9,14,11, 6, 5, 6, 6, 6, 7,13, - 13, 7, 5, 6, 4, 5, 7,14,11, 7, 6, 6, 5, 5, 6,13, - 9, 7, 8, 6, 7, 5, 3, 9, 9,12,13,12,14,10, 6, 7, -}; - -static const static_codebook _huff_book__44u3__long = { - 2, 64, - (char *)_huff_lengthlist__44u3__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u3__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u3__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,14,14, 8,11,11, - 10,14,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 7, - 11,11,11,14,14,10,12,14, 8,11,11,11,14,14,11,14, - 13, -}; - -static const static_codebook _44u3__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u3__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u3__p1_0, - 0 -}; - -static const long _vq_quantlist__44u3__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u3__p2_0[] = { - 2, 5, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, - 8, 8, 5, 6, 6, 6, 8, 8, 7, 8, 8, 5, 7, 6, 7, 8, - 8, 6, 8, 8, 7, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, - 8,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 7, 8, 8, 6, - 8, 8, 8,10,10, 8, 8,10, 7, 8, 8, 8,10,10, 8,10, - 9, -}; - -static const static_codebook _44u3__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u3__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u3__p2_0, - 0 -}; - -static const long _vq_quantlist__44u3__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u3__p3_0[] = { - 2, 4, 4, 7, 7, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, - 9, 9,12,12, 8, 9, 9,11,12, 5, 7, 7,10,10, 7, 9, - 9,11,11, 7, 9, 9,10,11,10,11,11,13,13, 9,10,11, - 13,13, 5, 7, 7,10,10, 7, 9, 9,11,10, 7, 9, 9,11, - 11, 9,11,10,13,13,10,11,11,14,13, 8,10,10,14,13, - 10,11,11,15,14, 9,11,11,14,14,13,14,13,16,16,12, - 13,13,15,15, 8,10,10,13,14, 9,11,11,14,14,10,11, - 11,14,15,12,13,13,15,15,13,14,14,15,16, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,12,10,11,11,14, - 14,10,11,11,14,14, 7, 9, 9,12,12, 9,11,11,13,13, - 9,11,11,13,13,12,12,13,15,15,11,12,13,15,16, 7, - 9, 9,11,11, 8,11,10,13,12, 9,11,11,13,13,11,13, - 12,15,13,11,13,13,15,16, 9,12,11,15,14,11,12,13, - 16,15,11,13,13,15,16,14,14,15,17,16,13,15,16, 0, - 17, 9,11,11,15,15,10,13,12,15,15,11,13,13,15,16, - 13,15,13,16,15,14,16,15, 0,19, 5, 7, 7,10,10, 7, - 9, 9,11,11, 7, 9, 9,11,11,10,12,11,14,14,10,11, - 12,14,14, 7, 9, 9,12,12, 9,11,11,14,13, 9,10,11, - 12,13,11,13,13,16,16,11,12,13,13,16, 7, 9, 9,12, - 12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,15,15, - 12,13,12,15,14, 9,11,11,15,14,11,13,12,16,16,10, - 12,12,15,15,13,15,15,17,19,13,14,15,16,17,10,12, - 12,15,15,11,13,13,16,16,11,13,13,15,16,13,15,15, - 0, 0,14,15,15,16,16, 8,10,10,14,14,10,12,12,15, - 15,10,12,11,15,16,14,15,15,19,20,13,14,14,18,16, - 9,11,11,15,15,11,13,13,17,16,11,13,13,16,16,15, - 17,17,20,20,14,15,16,17,20, 9,11,11,15,15,10,13, - 12,16,15,11,13,13,15,17,14,16,15,18, 0,14,16,15, - 18,20,12,14,14, 0, 0,14,14,16, 0, 0,13,16,15, 0, - 0,17,17,18, 0, 0,16,17,19,19, 0,12,14,14,18, 0, - 12,16,14, 0,17,13,15,15,18, 0,16,18,17, 0,17,16, - 18,17, 0, 0, 7,10,10,14,14,10,12,11,15,15,10,12, - 12,16,15,13,15,15,18, 0,14,15,15,17, 0, 9,11,11, - 15,15,11,13,13,16,16,11,12,13,16,16,14,15,16,17, - 17,14,16,16,16,18, 9,11,12,16,16,11,13,13,17,17, - 11,14,13,20,17,15,16,16,19, 0,15,16,17, 0,19,11, - 13,14,17,16,14,15,15,20,18,13,14,15,17,19,16,18, - 18, 0,20,16,16,19,17, 0,12,15,14,17, 0,14,15,15, - 18,19,13,16,15,19,20,15,18,18, 0,20,17, 0,16, 0, - 0, -}; - -static const static_codebook _44u3__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u3__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u3__p3_0, - 0 -}; - -static const long _vq_quantlist__44u3__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u3__p4_0[] = { - 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, - 9, 9,11,11, 9, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 7, 8,10,10, 9,10,10,11,12, 9,10,10, - 11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 9,10, 9,12,12, - 9,10,10,13,12, 9,10,10,12,13,12,12,12,14,14,11, - 12,12,13,14, 9, 9,10,12,12, 9,10,10,12,12, 9,10, - 10,12,13,11,12,11,14,13,12,12,12,14,13, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, - 12, 9,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, - 8, 9, 9,11,11,11,11,11,12,13,10,11,11,13,13, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,11,10,11,11,13,13, 9,11,10,13,12,10,11,11, - 13,13,10,11,11,13,13,12,12,13,12,15,12,13,13,15, - 15, 9,10,10,12,13,10,11,10,13,12,10,11,11,13,14, - 12,13,11,15,13,12,13,13,15,15, 5, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10, - 11,12,12, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,13, - 11,11,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, - 10,11,12,13,12,13,13,15,15,12,11,13,13,14, 9,10, - 11,12,13,10,11,11,13,13,10,11,11,13,13,12,13,13, - 15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, - 13, 9,10,10,13,13,12,13,13,15,14,12,12,12,14,13, - 9,10,10,13,12,10,11,11,13,13,10,11,11,14,12,13, - 13,14,14,16,12,13,13,15,15, 9,10,10,13,13,10,11, - 10,14,13,10,11,11,13,14,12,14,13,15,14,13,13,13, - 15,15,11,13,12,15,14,11,12,13,14,15,12,13,13,16, - 14,14,12,15,12,16,14,15,15,17,15,11,12,12,14,14, - 11,13,11,15,14,12,13,13,15,15,13,15,12,17,13,14, - 15,15,16,16, 8, 9, 9,12,12, 9,10,10,12,13, 9,10, - 10,13,13,12,12,12,14,14,12,13,13,15,15, 9,10,10, - 13,12,10,11,11,14,13,10,10,11,13,14,12,13,13,15, - 15,12,12,13,14,16, 9,10,10,13,13,10,11,11,13,14, - 10,11,11,14,13,12,13,13,14,15,13,14,13,16,14,11, - 12,12,14,14,12,13,13,15,14,11,12,13,14,15,14,15, - 15,16,16,13,13,15,13,16,11,12,12,14,15,12,13,13, - 14,15,11,13,12,15,14,14,15,15,16,16,14,15,12,16, - 13, -}; - -static const static_codebook _44u3__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u3__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u3__p4_0, - 0 -}; - -static const long _vq_quantlist__44u3__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u3__p5_0[] = { - 2, 3, 3, 6, 6, 7, 7, 9, 9, 4, 5, 5, 7, 7, 8, 8, - 10,10, 4, 5, 5, 7, 7, 8, 8,10,10, 6, 7, 7, 8, 8, - 9, 9,11,10, 6, 7, 7, 8, 8, 9, 9,10,10, 7, 8, 8, - 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 10,10,11,10,11,11,12,12, 9,10,10,10,10,11,11,12, - 12, -}; - -static const static_codebook _44u3__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u3__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u3__p5_0, - 0 -}; - -static const long _vq_quantlist__44u3__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u3__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,10,11,13,14, 4, 6, 5, - 8, 8, 9, 9,10,10,11,11,14,14, 4, 6, 6, 8, 8, 9, - 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, - 12,12,15,15, 6, 8, 8, 9, 9,10,11,11,11,12,12,15, - 15, 8, 9, 9,11,10,11,11,12,12,13,13,15,16, 8, 9, - 9,10,11,11,11,12,12,13,13,16,16,10,10,11,11,11, - 12,12,13,13,13,14,17,16, 9,10,11,12,11,12,12,13, - 13,13,13,16,18,11,12,11,12,12,13,13,13,14,15,14, - 17,17,11,11,12,12,12,13,13,13,14,14,15,18,17,14, - 15,15,15,15,16,16,17,17,19,18, 0,20,14,15,14,15, - 15,16,16,16,17,18,16,20,18, -}; - -static const static_codebook _44u3__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44u3__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44u3__p6_0, - 0 -}; - -static const long _vq_quantlist__44u3__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u3__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 5, 5, 6, 6, 6, -}; - -static const static_codebook _44u3__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44u3__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u3__p6_1, - 0 -}; - -static const long _vq_quantlist__44u3__p7_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u3__p7_0[] = { - 1, 3, 3,10,10,10,10,10,10, 4,10,10,10,10,10,10, - 10,10, 4,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, -}; - -static const static_codebook _44u3__p7_0 = { - 2, 81, - (char *)_vq_lengthlist__44u3__p7_0, - 1, -515907584, 1627381760, 4, 0, - (long *)_vq_quantlist__44u3__p7_0, - 0 -}; - -static const long _vq_quantlist__44u3__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u3__p7_1[] = { - 1, 4, 4, 6, 6, 7, 6, 8, 7, 9, 8,10, 9,11,11, 4, - 7, 7, 8, 7, 9, 9,10,10,11,11,11,11,12,12, 4, 7, - 7, 7, 7, 9, 9,10,10,11,11,12,12,12,11, 6, 8, 8, - 9, 9,10,10,11,11,12,12,13,12,13,13, 6, 8, 8, 9, - 9,10,11,11,11,12,12,13,14,13,13, 8, 9, 9,11,11, - 12,12,12,13,14,13,14,14,14,15, 8, 9, 9,11,11,11, - 12,13,14,13,14,15,17,14,15, 9,10,10,12,12,13,13, - 13,14,15,15,15,16,16,16, 9,11,11,12,12,13,13,14, - 14,14,15,16,16,16,16,10,12,12,13,13,14,14,15,15, - 15,16,17,17,17,17,10,12,11,13,13,15,14,15,14,16, - 17,16,16,16,16,11,13,12,14,14,14,14,15,16,17,16, - 17,17,17,17,11,13,12,14,14,14,15,17,16,17,17,17, - 17,17,17,12,13,13,15,16,15,16,17,17,16,16,17,17, - 17,17,12,13,13,15,15,15,16,17,17,17,16,17,16,17, - 17, -}; - -static const static_codebook _44u3__p7_1 = { - 2, 225, - (char *)_vq_lengthlist__44u3__p7_1, - 1, -522338304, 1620115456, 4, 0, - (long *)_vq_quantlist__44u3__p7_1, - 0 -}; - -static const long _vq_quantlist__44u3__p7_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44u3__p7_2[] = { - 2, 5, 5, 7, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 10,10, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, - 9,10, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 10,10,10,10, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, - 9,10,10,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10, 7, 8, 8, 9, 8, 9, 9, 9, 9,10, - 9,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9,10, - 9,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9,10, - 9,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, - 9,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, 9, - 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,11, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,11, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9,10,10,10,10,10,10,10,10,10,10,10,11,11,11,10, - 11, -}; - -static const static_codebook _44u3__p7_2 = { - 2, 289, - (char *)_vq_lengthlist__44u3__p7_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44u3__p7_2, - 0 -}; - -static const char _huff_lengthlist__44u3__short[] = { - 14,14,14,15,13,15,12,16,10, 8, 7, 9, 9, 8,12,16, - 10, 5, 4, 6, 5, 6, 9,16,14, 8, 6, 8, 7, 8,10,16, - 14, 7, 4, 6, 3, 5, 8,16,15, 9, 5, 7, 4, 4, 7,16, - 13,10, 6, 7, 4, 3, 4,13,13,12, 7, 9, 5, 5, 6,12, -}; - -static const static_codebook _huff_book__44u3__short = { - 2, 64, - (char *)_huff_lengthlist__44u3__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u4__long[] = { - 3, 8,12,12,13,12,11,13, 5, 4, 6, 7, 8, 8, 9,13, - 9, 5, 4, 5, 5, 7, 9,13, 9, 6, 5, 6, 6, 7, 8,12, - 12, 7, 5, 6, 4, 5, 8,13,11, 7, 6, 6, 5, 5, 6,12, - 10, 8, 8, 7, 7, 5, 3, 8,10,12,13,12,12, 9, 6, 7, -}; - -static const static_codebook _huff_book__44u4__long = { - 2, 64, - (char *)_huff_lengthlist__44u4__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u4__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u4__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,11, 4, 8, 8, 8,11, - 11, 8,11,11, 8,11,11,11,13,14,11,15,14, 8,11,11, - 10,13,12,11,14,14, 4, 8, 8, 8,11,11, 8,11,11, 7, - 11,11,11,15,14,10,12,14, 8,11,11,11,14,14,11,14, - 13, -}; - -static const static_codebook _44u4__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u4__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u4__p1_0, - 0 -}; - -static const long _vq_quantlist__44u4__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u4__p2_0[] = { - 2, 5, 5, 5, 6, 6, 5, 6, 6, 5, 6, 6, 7, 8, 8, 6, - 8, 8, 5, 6, 6, 6, 8, 8, 7, 8, 8, 5, 7, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 8, 9,10, 8,10,10, 6, 8, 8, - 8,10, 8, 8,10,10, 5, 6, 6, 6, 8, 8, 6, 8, 8, 6, - 8, 8, 8,10,10, 8, 8,10, 6, 8, 8, 8,10,10, 8,10, - 9, -}; - -static const static_codebook _44u4__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u4__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u4__p2_0, - 0 -}; - -static const long _vq_quantlist__44u4__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u4__p3_0[] = { - 2, 4, 4, 8, 8, 5, 7, 7, 9, 9, 5, 7, 7, 9, 9, 8, - 10, 9,12,12, 8, 9,10,12,12, 5, 7, 7,10,10, 7, 9, - 9,11,11, 7, 9, 9,11,11,10,12,11,14,14, 9,10,11, - 13,14, 5, 7, 7,10,10, 7, 9, 9,11,11, 7, 9, 9,11, - 11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,14,13, - 10,12,12,15,14, 9,11,11,15,14,13,14,14,17,17,12, - 14,14,16,16, 8,10,10,14,14, 9,11,11,14,15,10,12, - 12,14,15,12,14,13,16,16,13,14,15,15,18, 4, 7, 7, - 10,10, 7, 9, 9,12,11, 7, 9, 9,11,12,10,12,11,15, - 14,10,11,12,14,15, 7, 9, 9,12,12, 9,11,12,13,13, - 9,11,12,13,13,12,13,13,15,16,11,13,13,15,16, 7, - 9, 9,12,12, 9,11,10,13,12, 9,11,12,13,14,11,13, - 12,16,14,12,13,13,15,16,10,12,12,16,15,11,13,13, - 17,16,11,13,13,17,16,14,15,15,17,17,14,16,16,18, - 20, 9,11,11,15,16,11,13,12,16,16,11,13,13,16,17, - 14,15,14,18,16,14,16,16,17,20, 5, 7, 7,10,10, 7, - 9, 9,12,11, 7, 9,10,11,12,10,12,11,15,15,10,12, - 12,14,14, 7, 9, 9,12,12, 9,12,11,14,13, 9,10,11, - 12,13,12,13,14,16,16,11,12,13,14,16, 7, 9, 9,12, - 12, 9,12,11,13,13, 9,12,11,13,13,11,13,13,16,16, - 12,13,13,16,15, 9,11,11,16,14,11,13,13,16,16,11, - 12,13,16,16,14,16,16,17,17,13,14,15,16,17,10,12, - 12,15,15,11,13,13,16,17,11,13,13,16,16,14,16,15, - 19,19,14,15,15,17,18, 8,10,10,14,14,10,12,12,15, - 15,10,12,12,16,16,14,16,15,20,19,13,15,15,17,16, - 9,12,12,16,16,11,13,13,16,18,11,14,13,16,17,16, - 17,16,20, 0,15,16,18,18,20, 9,11,11,15,15,11,14, - 12,17,16,11,13,13,17,17,15,17,15,20,20,14,16,16, - 17, 0,13,15,14,18,16,14,15,16, 0,18,14,16,16, 0, - 0,18,16, 0, 0,20,16,18,18, 0, 0,12,14,14,17,18, - 13,15,14,20,18,14,16,15,19,19,16,20,16, 0,18,16, - 19,17,19, 0, 8,10,10,14,14,10,12,12,16,15,10,12, - 12,16,16,13,15,15,18,17,14,16,16,19, 0, 9,11,11, - 16,15,11,14,13,18,17,11,12,13,17,18,14,17,16,18, - 18,15,16,17,18,18, 9,12,12,16,16,11,13,13,16,18, - 11,14,13,17,17,15,16,16,18,20,16,17,17,20,20,12, - 14,14,18,17,14,16,16, 0,19,13,14,15,18, 0,16, 0, - 0, 0, 0,16,16, 0,19,20,13,15,14, 0, 0,14,16,16, - 18,19,14,16,15, 0,20,16,20,18, 0,20,17,20,17, 0, - 0, -}; - -static const static_codebook _44u4__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u4__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u4__p3_0, - 0 -}; - -static const long _vq_quantlist__44u4__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u4__p4_0[] = { - 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 9, - 9, 9,11,11, 8, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 7, 8,10,10, 9,10,10,11,12, 9,10,10, - 11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, - 10, 9,10,10,12,11, 9,10,10,12,11, 9,10, 9,12,12, - 9,10,10,13,12, 9,10,10,12,12,12,12,12,14,14,11, - 12,12,13,14, 9, 9,10,12,12, 9,10,10,13,13, 9,10, - 10,12,13,11,12,12,14,13,11,12,12,14,14, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10,10,10,10,12, - 12, 9,10,10,12,12, 7, 8, 8,11,10, 8, 8, 9,11,11, - 8, 9, 9,11,11,11,11,11,12,13,10,11,11,13,13, 6, - 8, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,11,10,11,11,13,13, 9,11,10,13,12,10,11,11, - 13,14,10,11,11,14,13,12,12,13,12,15,12,13,13,15, - 15, 9,10,10,12,13,10,11,10,13,12,10,11,11,13,14, - 12,13,11,15,13,13,13,13,15,15, 5, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12,10,10, - 11,12,13, 6, 8, 8,10,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,10,11,11,13,13,10,10,11,11,13, 7, 8, 8,10, - 11, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,11,13,13, - 11,12,11,13,12, 9,10,10,13,12,10,11,11,14,13,10, - 10,11,12,13,12,13,13,15,15,12,11,13,13,14, 9,10, - 11,12,13,10,11,11,13,14,10,11,11,13,13,12,13,13, - 15,15,12,13,12,15,12, 8, 9, 9,12,12, 9,11,10,13, - 13, 9,10,10,13,13,12,13,13,15,15,12,12,12,14,14, - 9,10,10,13,13,10,11,11,13,14,10,11,11,14,13,13, - 13,14,14,16,13,13,13,15,15, 9,10,10,13,13,10,11, - 10,14,13,10,11,11,13,14,12,14,13,16,14,12,13,13, - 14,15,11,12,12,15,14,11,12,13,14,15,12,13,13,16, - 15,14,12,15,12,16,14,15,15,16,16,11,12,12,14,14, - 11,13,12,15,14,12,13,13,15,16,13,15,13,17,13,14, - 15,15,16,17, 8, 9, 9,12,12, 9,10,10,12,13, 9,10, - 10,13,13,12,12,12,14,14,12,13,13,15,15, 9,10,10, - 13,12,10,11,11,14,13,10,10,11,13,14,13,13,13,15, - 15,12,13,14,14,16, 9,10,10,13,13,10,11,11,13,14, - 10,11,11,14,14,13,13,13,15,15,13,14,13,16,14,11, - 12,12,15,14,12,13,13,16,15,11,12,13,14,15,14,15, - 15,17,16,13,13,15,13,16,11,12,13,14,15,13,13,13, - 15,16,11,13,12,15,14,14,15,15,16,16,14,15,12,17, - 13, -}; - -static const static_codebook _44u4__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u4__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u4__p4_0, - 0 -}; - -static const long _vq_quantlist__44u4__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u4__p5_0[] = { - 2, 3, 3, 6, 6, 7, 7, 9, 9, 4, 5, 5, 7, 7, 8, 8, - 10, 9, 4, 5, 5, 7, 7, 8, 8,10,10, 6, 7, 7, 8, 8, - 9, 9,11,10, 6, 7, 7, 8, 8, 9, 9,10,11, 7, 8, 8, - 9, 9,10,10,11,11, 7, 8, 8, 9, 9,10,10,11,11, 9, - 10,10,11,10,11,11,12,12, 9,10,10,10,11,11,11,12, - 12, -}; - -static const static_codebook _44u4__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u4__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u4__p5_0, - 0 -}; - -static const long _vq_quantlist__44u4__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u4__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,11,10,13,13, 4, 6, 5, - 8, 8, 9, 9,10,10,11,11,14,14, 4, 6, 6, 8, 8, 9, - 9,10,10,11,11,14,14, 6, 8, 8, 9, 9,10,10,11,11, - 12,12,15,15, 6, 8, 8, 9, 9,10,11,11,11,12,12,15, - 15, 8, 9, 9,11,10,11,11,12,12,13,13,16,16, 8, 9, - 9,10,10,11,11,12,12,13,13,16,16,10,10,10,12,11, - 12,12,13,13,14,14,16,16,10,10,10,11,12,12,12,13, - 13,13,14,16,17,11,12,11,12,12,13,13,14,14,15,14, - 18,17,11,11,12,12,12,13,13,14,14,14,15,19,18,14, - 15,14,15,15,17,16,17,17,17,17,21, 0,14,15,15,16, - 16,16,16,17,17,18,17,20,21, -}; - -static const static_codebook _44u4__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44u4__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44u4__p6_0, - 0 -}; - -static const long _vq_quantlist__44u4__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u4__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 6, 5, 4, 5, 5, 5, 6, 5, - 6, 5, 6, 6, 5, 5, 6, 6, 6, -}; - -static const static_codebook _44u4__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44u4__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u4__p6_1, - 0 -}; - -static const long _vq_quantlist__44u4__p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u4__p7_0[] = { - 1, 3, 3,12,12,12,12,12,12,12,12,12,12, 3,12,11, - 12,12,12,12,12,12,12,12,12,12, 4,11,10,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11, -}; - -static const static_codebook _44u4__p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44u4__p7_0, - 1, -514332672, 1627381760, 4, 0, - (long *)_vq_quantlist__44u4__p7_0, - 0 -}; - -static const long _vq_quantlist__44u4__p7_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u4__p7_1[] = { - 1, 4, 4, 6, 6, 7, 7, 9, 8,10, 8,10, 9,11,11, 4, - 7, 6, 8, 7, 9, 9,10,10,11,10,11,10,12,10, 4, 6, - 7, 8, 8, 9, 9,10,10,11,11,11,11,12,12, 6, 8, 8, - 10, 9,11,10,12,11,12,12,12,12,13,13, 6, 8, 8,10, - 10,10,11,11,11,12,12,13,12,13,13, 8, 9, 9,11,11, - 12,11,12,12,13,13,13,13,13,13, 8, 9, 9,11,11,11, - 12,12,12,13,13,13,13,13,13, 9,10,10,12,11,13,13, - 13,13,14,13,13,14,14,14, 9,10,11,11,12,12,13,13, - 13,13,13,14,15,14,14,10,11,11,12,12,13,13,14,14, - 14,14,14,15,16,16,10,11,11,12,13,13,13,13,15,14, - 14,15,16,15,16,10,12,12,13,13,14,14,14,15,15,15, - 15,15,15,16,11,12,12,13,13,14,14,14,15,15,15,16, - 15,17,16,11,12,12,13,13,13,15,15,14,16,16,16,16, - 16,17,11,12,12,13,13,14,14,15,14,15,15,17,17,16, - 16, -}; - -static const static_codebook _44u4__p7_1 = { - 2, 225, - (char *)_vq_lengthlist__44u4__p7_1, - 1, -522338304, 1620115456, 4, 0, - (long *)_vq_quantlist__44u4__p7_1, - 0 -}; - -static const long _vq_quantlist__44u4__p7_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44u4__p7_2[] = { - 2, 5, 5, 7, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 10,10,10,10, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9,10, - 9,10, 9,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,11,10,10,10, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, - 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 10, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9,10, 9,10,10,10,10,10,10,10,10,10,10,11,10,10, - 10, -}; - -static const static_codebook _44u4__p7_2 = { - 2, 289, - (char *)_vq_lengthlist__44u4__p7_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44u4__p7_2, - 0 -}; - -static const char _huff_lengthlist__44u4__short[] = { - 14,17,15,17,16,14,13,16,10, 7, 7,10,13,10,15,16, - 9, 4, 4, 6, 5, 7, 9,16,12, 8, 7, 8, 8, 8,11,16, - 14, 7, 4, 6, 3, 5, 8,15,13, 8, 5, 7, 4, 5, 7,16, - 12, 9, 6, 8, 3, 3, 5,16,14,13, 7,10, 5, 5, 7,15, -}; - -static const static_codebook _huff_book__44u4__short = { - 2, 64, - (char *)_huff_lengthlist__44u4__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u5__long[] = { - 3, 8,13,12,14,12,16,11,13,14, 5, 4, 5, 6, 7, 8, - 10, 9,12,15,10, 5, 5, 5, 6, 8, 9, 9,13,15,10, 5, - 5, 6, 6, 7, 8, 8,11,13,12, 7, 5, 6, 4, 6, 7, 7, - 11,14,11, 7, 7, 6, 6, 6, 7, 6,10,14,14, 9, 8, 8, - 6, 7, 7, 7,11,16,11, 8, 8, 7, 6, 6, 7, 4, 7,12, - 10,10,12,10,10, 9,10, 5, 6, 9,10,12,15,13,14,14, - 14, 8, 7, 8, -}; - -static const static_codebook _huff_book__44u5__long = { - 2, 100, - (char *)_huff_lengthlist__44u5__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u5__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u5__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, - 9,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,10, - 10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, - 10,13,11,10,13,13, 4, 8, 8, 8,11,10, 8,10,10, 7, - 10,10,10,13,13,10,11,13, 8,10,11,10,13,13,10,13, - 12, -}; - -static const static_codebook _44u5__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u5__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u5__p1_0, - 0 -}; - -static const long _vq_quantlist__44u5__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u5__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 7, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, - 8, 7, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static const static_codebook _44u5__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u5__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u5__p2_0, - 0 -}; - -static const long _vq_quantlist__44u5__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u5__p3_0[] = { - 2, 4, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 10, 9,13,12, 8, 9,10,12,12, 5, 7, 7,10,10, 7, 9, - 9,11,11, 6, 8, 9,11,11,10,11,11,14,14, 9,10,11, - 13,14, 5, 7, 7, 9,10, 7, 9, 8,11,11, 7, 9, 9,11, - 11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,13,13, - 10,11,11,15,14, 9,11,11,14,14,13,14,14,17,16,12, - 13,13,15,16, 8,10,10,13,13, 9,11,11,14,15,10,11, - 11,14,15,12,14,13,16,16,13,15,14,15,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,11,11,14, - 14,10,11,12,14,14, 7, 9, 9,12,11, 9,11,11,13,13, - 9,11,11,13,13,12,13,13,15,16,11,12,13,15,16, 6, - 9, 9,11,11, 8,11,10,13,12, 9,11,11,13,14,11,13, - 12,16,14,11,13,13,16,17,10,12,11,15,15,11,13,13, - 16,16,11,13,13,17,16,14,15,15,17,17,14,16,16,17, - 18, 9,11,11,14,15,10,12,12,15,15,11,13,13,16,17, - 13,15,13,17,15,14,15,16,18, 0, 5, 7, 7,10,10, 7, - 9, 9,11,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, - 12,14,15, 6, 9, 9,12,11, 9,11,11,13,13, 8,10,11, - 12,13,11,13,13,16,15,11,12,13,14,15, 7, 9, 9,11, - 12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,15,16, - 11,13,13,15,14, 9,11,11,15,14,11,13,13,17,15,10, - 12,12,15,15,14,16,16,17,17,13,13,15,15,17,10,11, - 12,15,15,11,13,13,16,16,11,13,13,15,15,14,15,15, - 18,18,14,15,15,17,17, 8,10,10,13,13,10,12,11,15, - 15,10,11,12,15,15,14,15,15,18,18,13,14,14,18,18, - 9,11,11,15,16,11,13,13,17,17,11,13,13,16,16,15, - 15,16,17, 0,14,15,17, 0, 0, 9,11,11,15,15,10,13, - 12,18,16,11,13,13,15,16,14,16,15,20,20,14,15,16, - 17, 0,13,14,14,20,16,14,15,16,19,18,14,15,15,19, - 0,18,16, 0,20,20,16,18,18, 0, 0,12,14,14,18,18, - 13,15,14,18,16,14,15,16,18,20,16,19,16, 0,17,17, - 18,18,19, 0, 8,10,10,14,14,10,11,11,14,15,10,11, - 12,15,15,13,15,14,19,17,13,15,15,17, 0, 9,11,11, - 16,15,11,13,13,16,16,10,12,13,15,17,14,16,16,18, - 18,14,15,15,18, 0, 9,11,11,15,15,11,13,13,16,17, - 11,13,13,18,17,14,18,16,18,18,15,17,17,18, 0,12, - 14,14,18,18,14,15,15,20, 0,13,14,15,17, 0,16,18, - 17, 0, 0,16,16, 0,17,20,12,14,14,18,18,14,16,15, - 0,18,14,16,15,18, 0,16,19,17, 0, 0,17,18,16, 0, - 0, -}; - -static const static_codebook _44u5__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u5__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u5__p3_0, - 0 -}; - -static const long _vq_quantlist__44u5__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u5__p4_0[] = { - 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 6, 7, 8, 9,10, 9,10,10,11,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,12,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11, - 11,12,13,14, 8, 9, 9,11,12, 9,10,10,12,12, 9,10, - 10,12,12,11,12,11,14,13,11,12,12,13,13, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, - 12, 9,10,10,12,12, 7, 8, 8,10,10, 8, 8, 9,10,11, - 8, 9, 9,11,11,10,10,11,11,13,10,11,11,12,13, 6, - 7, 8,10,10, 7, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, - 12,13,10,11,11,13,13,12,11,13,12,15,12,13,13,14, - 15, 9,10,10,12,12, 9,11,10,13,12,10,11,11,13,13, - 11,13,11,14,12,12,13,13,14,15, 5, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10, - 10,12,12, 6, 8, 7,10,10, 8, 9, 9,11,11, 7, 8, 9, - 10,11,10,11,11,12,12,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 9, 9,11,11, 8, 9, 8,11,10,10,11,11,13,12, - 10,11,10,13,11, 9,10,10,12,12,10,11,11,13,12, 9, - 10,10,12,13,12,13,13,14,15,11,11,13,12,14, 9,10, - 10,12,12,10,11,11,13,13,10,11,10,13,12,12,13,13, - 14,14,12,13,11,14,12, 8, 9, 9,12,12, 9,10,10,12, - 12, 9,10,10,12,12,12,12,12,14,14,11,12,12,14,13, - 9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12, - 12,13,14,15,12,13,13,15,14, 9,10,10,12,12,10,11, - 10,13,12,10,11,11,12,13,12,13,12,15,13,12,13,13, - 14,15,11,12,12,14,13,11,12,12,14,15,12,13,13,15, - 14,13,12,14,12,16,13,14,14,15,15,11,11,12,14,14, - 11,12,11,14,13,12,13,13,14,15,13,14,12,16,12,14, - 14,15,16,16, 8, 9, 9,11,12, 9,10,10,12,12, 9,10, - 10,12,13,11,12,12,13,13,12,12,13,14,14, 9,10,10, - 12,12,10,11,10,13,12,10,10,11,12,13,12,13,13,15, - 14,12,12,13,13,15, 9,10,10,12,13,10,11,11,12,13, - 10,11,11,13,13,12,13,13,14,15,12,13,12,15,14,11, - 12,11,14,13,12,13,13,15,14,11,11,12,13,14,14,15, - 14,16,15,13,12,14,13,16,11,12,12,13,14,12,13,13, - 14,15,11,12,11,14,14,14,14,14,15,16,13,15,12,16, - 12, -}; - -static const static_codebook _44u5__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u5__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u5__p4_0, - 0 -}; - -static const long _vq_quantlist__44u5__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u5__p5_0[] = { - 2, 3, 3, 6, 6, 8, 8,10,10, 4, 5, 5, 8, 7, 8, 8, - 11,10, 3, 5, 5, 7, 8, 8, 8,10,11, 6, 8, 7,10, 9, - 10,10,11,11, 6, 7, 8, 9, 9, 9,10,11,12, 8, 8, 8, - 10,10,11,11,13,12, 8, 8, 9, 9,10,11,11,12,13,10, - 11,10,12,11,13,12,14,14,10,10,11,11,12,12,13,14, - 14, -}; - -static const static_codebook _44u5__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u5__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u5__p5_0, - 0 -}; - -static const long _vq_quantlist__44u5__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u5__p6_0[] = { - 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, - 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, - 8, 8, 9, 9,11,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, - 9, 9,10,10,11,10,11,11, 9, 9, 9,10,10,11,10,11, - 11, -}; - -static const static_codebook _44u5__p6_0 = { - 2, 81, - (char *)_vq_lengthlist__44u5__p6_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u5__p6_0, - 0 -}; - -static const long _vq_quantlist__44u5__p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u5__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 9, 8,11,10, 7, - 11,10, 5, 9, 9, 7,10,10, 8,10,11, 4, 9, 9, 9,12, - 12, 9,12,12, 8,12,12,11,12,12,10,12,13, 7,12,12, - 11,12,12,10,12,13, 4, 9, 9, 9,12,12, 9,12,12, 7, - 12,11,10,13,13,11,12,12, 7,12,12,10,13,13,11,12, - 12, -}; - -static const static_codebook _44u5__p7_0 = { - 4, 81, - (char *)_vq_lengthlist__44u5__p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44u5__p7_0, - 0 -}; - -static const long _vq_quantlist__44u5__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u5__p7_1[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 7, - 8, 8, 9, 8, 8, 9, 4, 5, 5, 7, 7, 8, 8, 9, 9, 8, - 9, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 6, 7, 7, 8, - 8, 9, 9, 9, 9, 9, 9, 7, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 7, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, - 9, 9, 9, 9,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, - 10,10,10, 8, 9, 9, 9, 9, 9, 9,10,10,10,10, 8, 9, - 9, 9, 9, 9, 9,10,10,10,10, -}; - -static const static_codebook _44u5__p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44u5__p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u5__p7_1, - 0 -}; - -static const long _vq_quantlist__44u5__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u5__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, - 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, - 11, 6, 8, 7, 9, 9,10,10,11,11,13,12, 6, 8, 8, 9, - 9,10,10,11,11,12,13, 8, 9, 9,10,10,12,12,13,12, - 14,13, 8, 9, 9,10,10,12,12,13,13,14,14, 9,11,11, - 12,12,13,13,14,14,15,14, 9,11,11,12,12,13,13,14, - 14,15,14,11,12,12,13,13,14,14,15,14,15,14,11,11, - 12,13,13,14,14,14,14,15,15, -}; - -static const static_codebook _44u5__p8_0 = { - 2, 121, - (char *)_vq_lengthlist__44u5__p8_0, - 1, -524582912, 1618345984, 4, 0, - (long *)_vq_quantlist__44u5__p8_0, - 0 -}; - -static const long _vq_quantlist__44u5__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u5__p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 5, 7, 6, - 7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, - 8, 6, 7, 6, 7, 7, 8, 8, 8, 8, 8, 8, 6, 6, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44u5__p8_1 = { - 2, 121, - (char *)_vq_lengthlist__44u5__p8_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u5__p8_1, - 0 -}; - -static const long _vq_quantlist__44u5__p9_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u5__p9_0[] = { - 1, 3, 2,12,10,13,13,13,13,13,13,13,13, 4, 9, 9, - 13,13,13,13,13,13,13,13,13,13, 5,10, 9,13,13,13, - 13,13,13,13,13,13,13,12,13,13,13,13,13,13,13,13, - 13,13,13,13,11,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13, - 13,13,13,13,13,13,13,13,13,13,13,13,13,12,12,12, - 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12, - 12,12,12,12,12,12,12,12,12, -}; - -static const static_codebook _44u5__p9_0 = { - 2, 169, - (char *)_vq_lengthlist__44u5__p9_0, - 1, -514332672, 1627381760, 4, 0, - (long *)_vq_quantlist__44u5__p9_0, - 0 -}; - -static const long _vq_quantlist__44u5__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u5__p9_1[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 7, 8, 7, 9, 8, 9, 9, 4, - 7, 6, 9, 8,10,10, 9, 8, 9, 9, 9, 9, 9, 8, 5, 6, - 6, 8, 9,10,10, 9, 9, 9,10,10,10,10,11, 7, 8, 8, - 10,10,11,11,10,10,11,11,11,12,11,11, 7, 8, 8,10, - 10,11,11,10,10,11,11,12,11,11,11, 8, 9, 9,11,11, - 12,12,11,11,12,11,12,12,12,12, 8, 9,10,11,11,12, - 12,11,11,12,12,12,12,12,12, 8, 9, 9,10,10,12,11, - 12,12,12,12,12,12,12,13, 8, 9, 9,11,11,11,11,12, - 12,12,12,13,12,13,13, 9,10,10,11,11,12,12,12,13, - 12,13,13,13,14,13, 9,10,10,11,11,12,12,12,13,13, - 12,13,13,14,13, 9,11,10,12,11,13,12,12,13,13,13, - 13,13,13,14, 9,10,10,12,12,12,12,12,13,13,13,13, - 13,14,14,10,11,11,12,12,12,13,13,13,14,14,13,14, - 14,14,10,11,11,12,12,12,12,13,12,13,14,13,14,14, - 14, -}; - -static const static_codebook _44u5__p9_1 = { - 2, 225, - (char *)_vq_lengthlist__44u5__p9_1, - 1, -522338304, 1620115456, 4, 0, - (long *)_vq_quantlist__44u5__p9_1, - 0 -}; - -static const long _vq_quantlist__44u5__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44u5__p9_2[] = { - 2, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 7, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 9, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9,10, 9,10,10,10, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, - 9, 9,10, 9,10, 9,10, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10, 9,10,10,10,10,10, 8, 9, 9, 9, 9, 9, 9,10, - 9,10, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, 9, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, - 9,10, 9,10, 9,10,10,10,10,10,10, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9,10,10, 9,10,10,10,10,10,10,10,10,10,10, 9, 9, - 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9, 9,10, 9,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _44u5__p9_2 = { - 2, 289, - (char *)_vq_lengthlist__44u5__p9_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44u5__p9_2, - 0 -}; - -static const char _huff_lengthlist__44u5__short[] = { - 4,10,17,13,17,13,17,17,17,17, 3, 6, 8, 9,11, 9, - 15,12,16,17, 6, 5, 5, 7, 7, 8,10,11,17,17, 7, 8, - 7, 9, 9,10,13,13,17,17, 8, 6, 5, 7, 4, 7, 5, 8, - 14,17, 9, 9, 8, 9, 7, 9, 8,10,16,17,12,10, 7, 8, - 4, 7, 4, 7,16,17,12,11, 9,10, 6, 9, 5, 7,14,17, - 14,13,10,15, 4, 8, 3, 5,14,17,17,14,11,15, 6,10, - 6, 8,15,17, -}; - -static const static_codebook _huff_book__44u5__short = { - 2, 100, - (char *)_huff_lengthlist__44u5__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u6__long[] = { - 3, 9,14,13,14,13,16,12,13,14, 5, 4, 6, 6, 8, 9, - 11,10,12,15,10, 5, 5, 6, 6, 8,10,10,13,16,10, 6, - 6, 6, 6, 8, 9, 9,12,14,13, 7, 6, 6, 4, 6, 6, 7, - 11,14,10, 7, 7, 7, 6, 6, 6, 7,10,13,15,10, 9, 8, - 5, 6, 5, 6,10,14,10, 9, 8, 8, 6, 6, 5, 4, 6,11, - 11,11,12,11,10, 9, 9, 5, 5, 9,10,12,15,13,13,13, - 13, 8, 7, 7, -}; - -static const static_codebook _huff_book__44u6__long = { - 2, 100, - (char *)_huff_lengthlist__44u6__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u6__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u6__p1_0[] = { - 1, 4, 4, 4, 8, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, - 9,10, 5, 8, 8, 7,10, 9, 8,10,10, 5, 8, 8, 8,10, - 10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, - 10,13,11,10,13,13, 5, 8, 8, 8,11,10, 8,10,10, 7, - 10,10,10,13,13,10,11,13, 8,10,11,10,13,13,10,13, - 12, -}; - -static const static_codebook _44u6__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u6__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u6__p1_0, - 0 -}; - -static const long _vq_quantlist__44u6__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u6__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, - 8, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 7, 7, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, - 8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static const static_codebook _44u6__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u6__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u6__p2_0, - 0 -}; - -static const long _vq_quantlist__44u6__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u6__p3_0[] = { - 2, 5, 4, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 9, 9,13,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, - 9,11,11, 7, 8, 9,11,11,10,11,11,14,14, 9,10,11, - 13,14, 5, 7, 7, 9,10, 6, 9, 8,11,11, 7, 9, 9,11, - 11, 9,11,10,14,13,10,11,11,14,13, 8,10,10,13,13, - 10,11,11,15,15, 9,11,11,14,14,13,14,14,17,16,12, - 13,14,16,16, 8,10,10,13,14, 9,11,11,14,15,10,11, - 12,14,15,12,14,13,16,15,13,14,14,15,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,12,11,14, - 14,10,11,11,14,14, 7, 9, 9,12,11, 9,11,11,13,13, - 9,11,11,13,13,11,13,13,14,15,11,12,13,15,16, 6, - 9, 9,11,12, 8,11,10,13,12, 9,11,11,13,14,11,13, - 12,16,14,11,13,13,15,16,10,12,11,14,15,11,13,13, - 15,17,11,13,13,17,16,15,15,16,17,16,14,15,16,18, - 0, 9,11,11,14,15,10,12,12,16,15,11,13,13,16,16, - 13,15,14,18,15,14,16,16, 0, 0, 5, 7, 7,10,10, 7, - 9, 9,11,11, 7, 9, 9,11,11,10,11,11,14,14,10,11, - 12,14,14, 6, 9, 9,11,11, 9,11,11,13,13, 8,10,11, - 12,13,11,13,13,16,15,11,12,13,14,16, 7, 9, 9,11, - 12, 9,11,11,13,13, 9,11,11,13,13,11,13,13,16,15, - 11,13,12,15,15, 9,11,11,15,14,11,13,13,17,16,10, - 12,13,15,16,14,16,16, 0,18,14,14,15,15,17,10,11, - 12,15,15,11,13,13,16,16,11,13,13,16,16,14,16,16, - 19,17,14,15,15,17,17, 8,10,10,14,14,10,12,11,15, - 15,10,11,12,16,15,14,15,15,18,20,13,14,16,17,18, - 9,11,11,15,16,11,13,13,17,17,11,13,13,17,16,15, - 16,16, 0, 0,15,16,16, 0, 0, 9,11,11,15,15,10,13, - 12,17,15,11,13,13,17,16,15,17,15,20,19,15,16,16, - 19, 0,13,15,14, 0,17,14,15,16, 0,20,15,16,16, 0, - 19,17,18, 0, 0, 0,16,17,18, 0, 0,12,14,14,19,18, - 13,15,14, 0,17,14,15,16,19,19,16,18,16, 0,19,19, - 20,17,20, 0, 8,10,10,13,14,10,11,11,15,15,10,12, - 12,15,16,14,15,14,19,16,14,15,15, 0,18, 9,11,11, - 16,15,11,13,13, 0,16,11,12,13,16,17,14,16,17, 0, - 19,15,16,16,18, 0, 9,11,11,15,16,11,13,13,16,16, - 11,14,13,18,17,15,16,16,18,20,15,17,19, 0, 0,12, - 14,14,17,17,14,16,15, 0, 0,13,14,15,19, 0,16,18, - 20, 0, 0,16,16,18,18, 0,12,14,14,17,20,14,16,16, - 19, 0,14,16,14, 0,20,16,20,17, 0, 0,17, 0,15, 0, - 19, -}; - -static const static_codebook _44u6__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u6__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u6__p3_0, - 0 -}; - -static const long _vq_quantlist__44u6__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u6__p4_0[] = { - 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 7, 8, 9,10, 9,10,10,11,11, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 7, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,13,11, - 11,12,13,13, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,11,13,12,11,12,12,13,13, 5, 7, 7, - 9, 9, 7, 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12, - 11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 8, 9,11,11, - 8, 9, 9,11,11,10,10,11,12,13,10,10,11,12,12, 6, - 7, 7,10,10, 7, 9, 8,11,10, 8, 8, 9,10,11,10,11, - 10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, - 13,13,10,11,11,12,13,12,12,12,13,14,12,12,13,14, - 14, 9,10,10,12,12, 9,10,10,13,12,10,11,11,13,13, - 11,12,11,14,12,12,13,13,14,14, 6, 7, 7, 9, 9, 7, - 8, 7,10,10, 7, 8, 8,10,10, 9,10,10,12,11, 9,10, - 10,11,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 9, - 10,11,10,11,11,12,12,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 9, 9,11,11, 8, 9, 8,11,11,10,11,10,13,12, - 10,11,11,13,12, 9,10,10,12,12,10,11,11,13,12, 9, - 10,10,12,13,12,13,12,14,14,11,11,12,12,14, 9,10, - 10,12,12,10,11,11,13,13,10,11,10,13,12,12,12,12, - 14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,14, - 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, - 12,13,14,15,12,12,13,14,14, 9,10,10,12,12, 9,11, - 10,13,12,10,10,11,12,13,12,13,12,14,13,12,12,13, - 14,15,11,12,12,14,13,11,12,12,14,14,12,13,13,14, - 14,13,13,14,14,16,13,14,14,15,15,11,12,11,13,13, - 11,12,11,14,13,12,12,13,14,15,12,14,12,15,12,13, - 14,15,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,14,13,11,12,12,13,13, 9,10,10, - 12,12,10,11,10,13,12, 9,10,11,12,13,12,13,12,14, - 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,13,13, - 10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11, - 11,11,13,13,12,13,12,14,14,11,11,12,13,14,14,14, - 14,16,15,12,12,14,12,15,11,12,12,13,14,12,13,13, - 14,15,11,12,12,14,14,13,14,14,16,16,13,14,13,16, - 13, -}; - -static const static_codebook _44u6__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u6__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u6__p4_0, - 0 -}; - -static const long _vq_quantlist__44u6__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u6__p5_0[] = { - 2, 3, 3, 6, 6, 8, 8,10,10, 4, 5, 5, 8, 7, 8, 8, - 11,11, 3, 5, 5, 7, 8, 8, 8,11,11, 6, 8, 7, 9, 9, - 10, 9,12,11, 6, 7, 8, 9, 9, 9,10,11,12, 8, 8, 8, - 10, 9,12,11,13,13, 8, 8, 9, 9,10,11,12,13,13,10, - 11,11,12,12,13,13,14,14,10,10,11,11,12,13,13,14, - 14, -}; - -static const static_codebook _44u6__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u6__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u6__p5_0, - 0 -}; - -static const long _vq_quantlist__44u6__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u6__p6_0[] = { - 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 8, 9, 9, 5, 6, 6, 7, 7, - 8, 8,10,10, 5, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, - 8, 8,10, 9,11,11, 7, 7, 8, 8, 8, 9,10,10,11, 9, - 9, 9,10,10,11,11,12,11, 9, 9, 9,10,10,11,11,11, - 12, -}; - -static const static_codebook _44u6__p6_0 = { - 2, 81, - (char *)_vq_lengthlist__44u6__p6_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u6__p6_0, - 0 -}; - -static const long _vq_quantlist__44u6__p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u6__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 7,10,10, 8, - 10,10, 5, 8, 9, 7,10,10, 7,10, 9, 4, 8, 8, 9,11, - 11, 8,11,11, 7,11,11,10,10,13,10,13,13, 7,11,11, - 10,13,12,10,13,13, 5, 9, 8, 8,11,11, 9,11,11, 7, - 11,11,10,13,13,10,12,13, 7,11,11,10,13,13, 9,13, - 10, -}; - -static const static_codebook _44u6__p7_0 = { - 4, 81, - (char *)_vq_lengthlist__44u6__p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44u6__p7_0, - 0 -}; - -static const long _vq_quantlist__44u6__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u6__p7_1[] = { - 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 7, 6, - 8, 8, 8, 8, 8, 8, 4, 5, 5, 6, 7, 8, 8, 8, 8, 8, - 8, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 6, 7, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 8, 8, 8, - 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, -}; - -static const static_codebook _44u6__p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44u6__p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u6__p7_1, - 0 -}; - -static const long _vq_quantlist__44u6__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u6__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, - 9, 9,10,10,11,11, 4, 6, 6, 7, 7, 9, 9,10,10,11, - 11, 6, 8, 8, 9, 9,10,10,11,11,12,12, 6, 8, 8, 9, - 9,10,10,11,11,12,12, 8, 9, 9,10,10,11,11,12,12, - 13,13, 8, 9, 9,10,10,11,11,12,12,13,13,10,10,10, - 11,11,13,13,13,13,15,14, 9,10,10,12,11,12,13,13, - 13,14,15,11,12,12,13,13,13,13,15,14,15,15,11,11, - 12,13,13,14,14,14,15,15,15, -}; - -static const static_codebook _44u6__p8_0 = { - 2, 121, - (char *)_vq_lengthlist__44u6__p8_0, - 1, -524582912, 1618345984, 4, 0, - (long *)_vq_quantlist__44u6__p8_0, - 0 -}; - -static const long _vq_quantlist__44u6__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u6__p8_1[] = { - 3, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 5, 7, 7, - 7, 7, 8, 7, 8, 8, 5, 5, 6, 6, 7, 7, 7, 7, 7, 8, - 8, 6, 7, 7, 7, 7, 8, 7, 8, 8, 8, 8, 6, 6, 7, 7, - 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 7, 7, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44u6__p8_1 = { - 2, 121, - (char *)_vq_lengthlist__44u6__p8_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u6__p8_1, - 0 -}; - -static const long _vq_quantlist__44u6__p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u6__p9_0[] = { - 1, 3, 2, 9, 8,15,15,15,15,15,15,15,15,15,15, 4, - 8, 9,13,14,14,14,14,14,14,14,14,14,14,14, 5, 8, - 9,14,14,14,14,14,14,14,14,14,14,14,14,11,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,11,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14, - 14, -}; - -static const static_codebook _44u6__p9_0 = { - 2, 225, - (char *)_vq_lengthlist__44u6__p9_0, - 1, -514071552, 1627381760, 4, 0, - (long *)_vq_quantlist__44u6__p9_0, - 0 -}; - -static const long _vq_quantlist__44u6__p9_1[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u6__p9_1[] = { - 1, 4, 4, 7, 7, 8, 9, 8, 8, 9, 8, 9, 8, 9, 9, 4, - 7, 6, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 4, 7, - 6, 9, 9,10,10, 9, 9,10,10,10,10,11,11, 7, 9, 8, - 10,10,11,11,10,10,11,11,11,11,11,11, 7, 8, 9,10, - 10,11,11,10,10,11,11,11,11,11,12, 8,10,10,11,11, - 12,12,11,11,12,12,12,12,13,12, 8,10,10,11,11,12, - 11,11,11,11,12,12,12,12,13, 8, 9, 9,11,10,11,11, - 12,12,12,12,13,12,13,12, 8, 9, 9,11,11,11,11,12, - 12,12,12,12,13,13,13, 9,10,10,11,12,12,12,12,12, - 13,13,13,13,13,13, 9,10,10,11,11,12,12,12,12,13, - 13,13,13,14,13,10,10,10,12,11,12,12,13,13,13,13, - 13,13,13,13,10,10,11,11,11,12,12,13,13,13,13,13, - 13,13,13,10,11,11,12,12,13,12,12,13,13,13,13,13, - 13,14,10,11,11,12,12,13,12,13,13,13,14,13,13,14, - 13, -}; - -static const static_codebook _44u6__p9_1 = { - 2, 225, - (char *)_vq_lengthlist__44u6__p9_1, - 1, -522338304, 1620115456, 4, 0, - (long *)_vq_quantlist__44u6__p9_1, - 0 -}; - -static const long _vq_quantlist__44u6__p9_2[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44u6__p9_2[] = { - 3, 5, 5, 7, 7, 8, 8, 8, 8, 8, 8, 9, 8, 8, 9, 9, - 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, - 9, 9, 5, 6, 6, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, - 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10, 9, 9, 9,10, 9, 9,10, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, 9,10, 9,10,10, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10,10, 9, 9, - 10, -}; - -static const static_codebook _44u6__p9_2 = { - 2, 289, - (char *)_vq_lengthlist__44u6__p9_2, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44u6__p9_2, - 0 -}; - -static const char _huff_lengthlist__44u6__short[] = { - 4,11,16,13,17,13,17,16,17,17, 4, 7, 9, 9,13,10, - 16,12,16,17, 7, 6, 5, 7, 8, 9,12,12,16,17, 6, 9, - 7, 9,10,10,15,15,17,17, 6, 7, 5, 7, 5, 7, 7,10, - 16,17, 7, 9, 8, 9, 8,10,11,11,15,17, 7, 7, 7, 8, - 5, 8, 8, 9,15,17, 8, 7, 9, 9, 7, 8, 7, 2, 7,15, - 14,13,13,15, 5,10, 4, 3, 6,17,17,15,13,17, 7,11, - 7, 6, 9,16, -}; - -static const static_codebook _huff_book__44u6__short = { - 2, 100, - (char *)_huff_lengthlist__44u6__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u7__long[] = { - 3, 9,14,13,15,14,16,13,13,14, 5, 5, 7, 7, 8, 9, - 11,10,12,15,10, 6, 5, 6, 6, 9,10,10,13,16,10, 6, - 6, 6, 6, 8, 9, 9,12,15,14, 7, 6, 6, 5, 6, 6, 8, - 12,15,10, 8, 7, 7, 6, 7, 7, 7,11,13,14,10, 9, 8, - 5, 6, 4, 5, 9,12,10, 9, 9, 8, 6, 6, 5, 3, 6,11, - 12,11,12,12,10, 9, 8, 5, 5, 8,10,11,15,13,13,13, - 12, 8, 6, 7, -}; - -static const static_codebook _huff_book__44u7__long = { - 2, 100, - (char *)_huff_lengthlist__44u7__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u7__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u7__p1_0[] = { - 1, 4, 4, 4, 7, 7, 5, 7, 7, 5, 8, 8, 8,10,10, 7, - 10,10, 5, 8, 8, 7,10,10, 8,10,10, 5, 8, 8, 8,11, - 10, 8,10,10, 8,10,10,10,12,13,10,13,13, 7,10,10, - 10,13,12,10,13,13, 5, 8, 8, 8,11,10, 8,10,11, 7, - 10,10,10,13,13,10,12,13, 8,11,11,10,13,13,10,13, - 12, -}; - -static const static_codebook _44u7__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u7__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u7__p1_0, - 0 -}; - -static const long _vq_quantlist__44u7__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u7__p2_0[] = { - 3, 4, 4, 5, 6, 6, 5, 6, 6, 5, 6, 6, 6, 8, 8, 6, - 7, 8, 5, 6, 6, 6, 8, 7, 6, 8, 8, 5, 6, 6, 6, 8, - 7, 6, 8, 8, 6, 8, 8, 8, 9, 9, 8, 9, 9, 6, 8, 7, - 7, 9, 8, 8, 9, 9, 5, 6, 6, 6, 8, 7, 6, 8, 8, 6, - 8, 8, 8, 9, 9, 7, 8, 9, 6, 8, 8, 8, 9, 9, 8, 9, - 9, -}; - -static const static_codebook _44u7__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44u7__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u7__p2_0, - 0 -}; - -static const long _vq_quantlist__44u7__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u7__p3_0[] = { - 2, 5, 4, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 9, 9,13,12, 8, 9,10,12,13, 5, 7, 7,10, 9, 7, 9, - 9,11,11, 6, 8, 9,11,11,10,11,11,14,14, 9,10,11, - 13,14, 5, 7, 7, 9, 9, 7, 9, 8,11,11, 7, 9, 9,11, - 11, 9,11,10,14,13,10,11,11,14,14, 8,10,10,14,13, - 10,11,12,15,14, 9,11,11,15,14,13,14,14,16,16,12, - 13,14,17,16, 8,10,10,13,13, 9,11,11,14,15,10,11, - 12,14,15,12,14,13,16,16,13,14,15,15,17, 5, 7, 7, - 10,10, 7, 9, 9,11,11, 7, 9, 9,11,11,10,12,11,15, - 14,10,11,12,14,14, 7, 9, 9,12,12, 9,11,11,13,13, - 9,11,11,13,13,11,13,13,14,17,11,13,13,15,16, 6, - 9, 9,11,11, 8,11,10,13,12, 9,11,11,13,13,11,13, - 12,16,14,11,13,13,16,16,10,12,12,15,15,11,13,13, - 16,16,11,13,13,16,15,14,16,17,17,19,14,16,16,18, - 0, 9,11,11,14,15,10,13,12,16,15,11,13,13,16,16, - 14,15,14, 0,16,14,16,16,18, 0, 5, 7, 7,10,10, 7, - 9, 9,12,11, 7, 9, 9,11,12,10,11,11,15,14,10,11, - 12,14,14, 6, 9, 9,11,11, 9,11,11,13,13, 8,10,11, - 12,13,11,13,13,17,15,11,12,13,14,15, 7, 9, 9,11, - 12, 9,11,11,13,13, 9,11,11,13,13,11,13,12,16,16, - 11,13,13,15,14, 9,11,11,14,15,11,13,13,16,15,10, - 12,13,16,16,15,16,16, 0, 0,14,13,15,16,18,10,11, - 11,15,15,11,13,14,16,18,11,13,13,16,15,15,16,16, - 19, 0,14,15,15,16,16, 8,10,10,13,13,10,12,11,16, - 15,10,11,11,16,15,13,15,16,18, 0,13,14,15,17,17, - 9,11,11,15,15,11,13,13,16,18,11,13,13,16,17,15, - 16,16, 0, 0,15,18,16, 0,17, 9,11,11,15,15,11,13, - 12,17,15,11,13,14,16,17,15,18,15, 0,17,15,16,16, - 18,19,13,15,14, 0,18,14,16,16,19,18,14,16,15,19, - 19,16,18,19, 0, 0,16,17, 0, 0, 0,12,14,14,17,17, - 13,16,14, 0,18,14,16,15,18, 0,16,18,16,19,17,18, - 19,17, 0, 0, 8,10,10,14,14, 9,12,11,15,15,10,11, - 12,15,17,13,15,15,18,16,14,16,15,18,17, 9,11,11, - 16,15,11,13,13, 0,16,11,12,13,16,15,15,16,16, 0, - 17,15,15,16,18,17, 9,12,11,15,17,11,13,13,16,16, - 11,14,13,16,16,15,15,16,18,19,16,18,16, 0, 0,12, - 14,14, 0,16,14,16,16, 0,18,13,14,15,16, 0,17,16, - 18, 0, 0,16,16,17,19, 0,13,14,14,17, 0,14,17,16, - 0,19,14,15,15,18,19,17,16,18, 0, 0,15,19,16, 0, - 0, -}; - -static const static_codebook _44u7__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44u7__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u7__p3_0, - 0 -}; - -static const long _vq_quantlist__44u7__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u7__p4_0[] = { - 4, 5, 5, 8, 8, 6, 7, 6, 9, 9, 6, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,10,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 6, 7, 8, 9,10, 9,10,10,12,12, 9, 9,10, - 11,12, 6, 7, 7, 9, 9, 6, 8, 7,10, 9, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,11, 8, 9, 9,11,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,13,14,11, - 11,12,13,13, 8, 9, 9,11,11, 9,10,10,12,11, 9,10, - 10,12,12,11,12,11,13,13,11,12,12,13,13, 6, 7, 7, - 9, 9, 7, 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12, - 11, 9,10,10,12,12, 7, 8, 8,10,10, 8, 8, 9,11,11, - 8, 9, 9,11,11,10,11,11,12,12,10,10,11,12,13, 6, - 7, 7,10,10, 7, 9, 8,11,10, 8, 8, 9,10,11,10,11, - 10,13,11,10,11,11,12,12, 9,10,10,12,12,10,10,11, - 13,13,10,11,11,13,12,12,12,13,13,14,12,12,13,14, - 14, 9,10,10,12,12, 9,10,10,12,12,10,11,11,13,13, - 11,12,11,14,12,12,13,13,14,14, 6, 7, 7, 9, 9, 7, - 8, 7,10,10, 7, 7, 8,10,10, 9,10,10,12,11, 9,10, - 10,11,12, 6, 7, 7,10,10, 8, 9, 8,11,10, 7, 8, 9, - 10,11,10,11,11,13,12,10,10,11,11,13, 7, 8, 8,10, - 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,10,13,12, - 10,11,11,12,12, 9,10,10,12,12,10,11,11,13,12, 9, - 10,10,12,13,12,13,12,14,14,11,11,12,12,14, 9,10, - 10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,12, - 14,14,12,13,12,14,13, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,11,12,12,14,13,11,12,12,13,13, - 9,10,10,12,12,10,11,11,13,13,10,11,11,13,12,12, - 13,13,14,14,12,12,13,14,14, 9,10,10,12,12, 9,11, - 10,13,12,10,10,11,12,13,11,13,12,14,13,12,12,13, - 14,14,11,12,12,13,13,11,12,13,14,14,12,13,13,14, - 14,13,13,14,14,16,13,14,14,16,16,11,11,11,13,13, - 11,12,11,14,13,12,12,13,14,15,13,14,12,16,13,14, - 14,14,15,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,14,13,11,12,12,13,14, 9,10,10, - 12,12,10,11,10,13,12, 9,10,11,12,13,12,13,12,14, - 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,12,13, - 10,11,11,13,13,12,13,12,14,14,12,13,13,14,14,11, - 12,12,13,13,12,13,12,14,14,11,11,12,13,14,13,15, - 14,16,15,13,12,14,13,16,11,12,12,13,13,12,13,13, - 14,14,12,12,12,14,14,13,14,14,15,15,13,14,13,16, - 14, -}; - -static const static_codebook _44u7__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44u7__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u7__p4_0, - 0 -}; - -static const long _vq_quantlist__44u7__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u7__p5_0[] = { - 2, 3, 3, 6, 6, 7, 8,10,10, 4, 5, 5, 8, 7, 8, 8, - 11,11, 3, 5, 5, 7, 7, 8, 9,11,11, 6, 8, 7, 9, 9, - 10,10,12,12, 6, 7, 8, 9,10,10,10,12,12, 8, 8, 8, - 10,10,12,11,13,13, 8, 8, 9,10,10,11,11,13,13,10, - 11,11,12,12,13,13,14,14,10,11,11,12,12,13,13,14, - 14, -}; - -static const static_codebook _44u7__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44u7__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u7__p5_0, - 0 -}; - -static const long _vq_quantlist__44u7__p6_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u7__p6_0[] = { - 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 8, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, - 8, 8,10,10, 5, 6, 6, 7, 7, 8, 8,10,10, 7, 8, 7, - 8, 8,10, 9,11,11, 7, 7, 8, 8, 8, 9,10,11,11, 9, - 9, 9,10,10,11,10,12,11, 9, 9, 9,10,10,11,11,11, - 12, -}; - -static const static_codebook _44u7__p6_0 = { - 2, 81, - (char *)_vq_lengthlist__44u7__p6_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u7__p6_0, - 0 -}; - -static const long _vq_quantlist__44u7__p7_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u7__p7_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 9, 8, 8, 9, 9, 7, - 10,10, 5, 8, 9, 7, 9,10, 8, 9, 9, 4, 9, 9, 9,11, - 10, 8,10,10, 7,11,10,10,10,12,10,12,12, 7,10,10, - 10,12,11,10,12,12, 5, 9, 9, 8,10,10, 9,11,11, 7, - 11,10,10,12,12,10,11,12, 7,10,11,10,12,12,10,12, - 10, -}; - -static const static_codebook _44u7__p7_0 = { - 4, 81, - (char *)_vq_lengthlist__44u7__p7_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44u7__p7_0, - 0 -}; - -static const long _vq_quantlist__44u7__p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u7__p7_1[] = { - 3, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, - 8, 7, 8, 8, 8, 8, 4, 5, 5, 6, 6, 7, 8, 8, 8, 8, - 8, 6, 7, 6, 7, 7, 8, 8, 9, 9, 9, 9, 6, 6, 7, 7, - 7, 8, 8, 9, 9, 9, 9, 7, 8, 7, 8, 8, 9, 9, 9, 9, - 9, 9, 7, 7, 8, 8, 8, 9, 9, 9, 9, 9, 9, 8, 8, 8, - 9, 9, 9, 9,10, 9, 9, 9, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9,10, 8, 8, 8, 9, 9, 9, 9,10, 9,10,10, 8, 8, - 8, 9, 9, 9, 9, 9,10,10,10, -}; - -static const static_codebook _44u7__p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44u7__p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u7__p7_1, - 0 -}; - -static const long _vq_quantlist__44u7__p8_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u7__p8_0[] = { - 1, 4, 4, 6, 6, 8, 8,10,10,11,11, 4, 6, 6, 7, 7, - 9, 9,11,10,12,12, 5, 6, 5, 7, 7, 9, 9,10,11,12, - 12, 6, 7, 7, 8, 8,10,10,11,11,13,13, 6, 7, 7, 8, - 8,10,10,11,12,13,13, 8, 9, 9,10,10,11,11,12,12, - 14,14, 8, 9, 9,10,10,11,11,12,12,14,14,10,10,10, - 11,11,13,12,14,14,15,15,10,10,10,12,12,13,13,14, - 14,15,15,11,12,12,13,13,14,14,15,14,16,15,11,12, - 12,13,13,14,14,15,15,15,16, -}; - -static const static_codebook _44u7__p8_0 = { - 2, 121, - (char *)_vq_lengthlist__44u7__p8_0, - 1, -524582912, 1618345984, 4, 0, - (long *)_vq_quantlist__44u7__p8_0, - 0 -}; - -static const long _vq_quantlist__44u7__p8_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u7__p8_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 5, 6, 6, 6, 7, 7, 7, 7, 7, 7, - 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 7, 8, 7, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 7, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44u7__p8_1 = { - 2, 121, - (char *)_vq_lengthlist__44u7__p8_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u7__p8_1, - 0 -}; - -static const long _vq_quantlist__44u7__p9_0[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u7__p9_0[] = { - 1, 3, 3,10,10,10,10,10,10,10,10, 4,10,10,10,10, - 10,10,10,10,10,10, 4,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, -}; - -static const static_codebook _44u7__p9_0 = { - 2, 121, - (char *)_vq_lengthlist__44u7__p9_0, - 1, -512171520, 1630791680, 4, 0, - (long *)_vq_quantlist__44u7__p9_0, - 0 -}; - -static const long _vq_quantlist__44u7__p9_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u7__p9_1[] = { - 1, 4, 4, 6, 5, 8, 6, 9, 8,10, 9,11,10, 4, 6, 6, - 8, 8, 9, 9,11,10,11,11,11,11, 4, 6, 6, 8, 8,10, - 9,11,11,11,11,11,12, 6, 8, 8,10,10,11,11,12,12, - 13,12,13,13, 6, 8, 8,10,10,11,11,12,12,12,13,14, - 13, 8,10,10,11,11,12,13,14,14,14,14,15,15, 8,10, - 10,11,12,12,13,13,14,14,14,14,15, 9,11,11,13,13, - 14,14,15,14,16,15,17,15, 9,11,11,12,13,14,14,15, - 14,15,15,15,16,10,12,12,13,14,15,15,15,15,16,17, - 16,17,10,13,12,13,14,14,16,16,16,16,15,16,17,11, - 13,13,14,15,14,17,15,16,17,17,17,17,11,13,13,14, - 15,15,15,15,17,17,16,17,16, -}; - -static const static_codebook _44u7__p9_1 = { - 2, 169, - (char *)_vq_lengthlist__44u7__p9_1, - 1, -518889472, 1622704128, 4, 0, - (long *)_vq_quantlist__44u7__p9_1, - 0 -}; - -static const long _vq_quantlist__44u7__p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__44u7__p9_2[] = { - 2, 4, 4, 4, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, - 8, -}; - -static const static_codebook _44u7__p9_2 = { - 1, 49, - (char *)_vq_lengthlist__44u7__p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__44u7__p9_2, - 0 -}; - -static const char _huff_lengthlist__44u7__short[] = { - 5,12,17,16,16,17,17,17,17,17, 4, 7,11,11,12, 9, - 17,10,17,17, 7, 7, 8, 9, 7, 9,11,10,15,17, 7, 9, - 10,11,10,12,14,12,16,17, 7, 8, 5, 7, 4, 7, 7, 8, - 16,16, 6,10, 9,10, 7,10,11,11,16,17, 6, 8, 8, 9, - 5, 7, 5, 8,16,17, 5, 5, 8, 7, 6, 7, 7, 6, 6,14, - 12,10,12,11, 7,11, 4, 4, 2, 7,17,15,15,15, 8,15, - 6, 8, 5, 9, -}; - -static const static_codebook _huff_book__44u7__short = { - 2, 100, - (char *)_huff_lengthlist__44u7__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u8__long[] = { - 3, 9,13,14,14,15,14,14,15,15, 5, 4, 6, 8,10,12, - 12,14,15,15, 9, 5, 4, 5, 8,10,11,13,16,16,10, 7, - 4, 3, 5, 7, 9,11,13,13,10, 9, 7, 4, 4, 6, 8,10, - 12,14,13,11, 9, 6, 5, 5, 6, 8,12,14,13,11,10, 8, - 7, 6, 6, 7,10,14,13,11,12,10, 8, 7, 6, 6, 9,13, - 12,11,14,12,11, 9, 8, 7, 9,11,11,12,14,13,14,11, - 10, 8, 8, 9, -}; - -static const static_codebook _huff_book__44u8__long = { - 2, 100, - (char *)_huff_lengthlist__44u8__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u8__short[] = { - 6,14,18,18,17,17,17,17,17,17, 4, 7, 9, 9,10,13, - 15,17,17,17, 6, 7, 5, 6, 8,11,16,17,16,17, 5, 7, - 5, 4, 6,10,14,17,17,17, 6, 6, 6, 5, 7,10,13,16, - 17,17, 7, 6, 7, 7, 7, 8, 7,10,15,16,12, 9, 9, 6, - 6, 5, 3, 5,11,15,14,14,13, 5, 5, 7, 3, 4, 8,15, - 17,17,13, 7, 7,10, 6, 6,10,15,17,17,16,10,11,14, - 10,10,15,17, -}; - -static const static_codebook _huff_book__44u8__short = { - 2, 100, - (char *)_huff_lengthlist__44u8__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u8_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u8_p1_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 8, 9, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 8, 9, 9, 5, 7, 7, 7, 9, - 9, 7, 9, 9, 7, 9, 9, 9,10,11, 9,11,10, 7, 9, 9, - 9,11,10, 9,10,11, 5, 7, 7, 7, 9, 9, 7, 9, 9, 7, - 9, 9, 9,11,10, 9,10,10, 8, 9, 9, 9,11,11, 9,11, - 10, -}; - -static const static_codebook _44u8_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u8_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u8_p1_0, - 0 -}; - -static const long _vq_quantlist__44u8_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u8_p2_0[] = { - 4, 5, 5, 8, 8, 5, 7, 6, 9, 9, 5, 6, 7, 9, 9, 8, - 9, 9,11,11, 8, 9, 9,11,11, 5, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10,10, - 11,12, 5, 7, 7, 9, 9, 7, 8, 7,10,10, 7, 8, 8,10, - 10, 9,10, 9,12,11, 9,10,10,12,12, 8, 9, 9,12,11, - 9,10,10,12,12, 9,10,10,12,12,11,12,12,14,14,11, - 11,12,13,14, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,11,13,13,11,12,12,14,14, 5, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, - 12, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11, - 8, 9, 9,11,11,10,11,11,12,13,10,11,11,12,13, 6, - 8, 8,10,10, 8, 9, 8,11,10, 8, 9, 9,11,11,10,11, - 10,13,12,10,11,11,13,13, 9,10,10,12,12,10,11,11, - 13,13,10,11,11,13,13,12,12,13,13,14,12,13,13,14, - 14, 9,10,10,12,12,10,11,10,13,12,10,11,11,13,13, - 11,13,12,14,13,12,13,13,14,14, 5, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12,12, 9,10, - 10,12,12, 7, 8, 8,10,10, 8, 9, 9,11,11, 8, 8, 9, - 10,11,10,11,11,13,13,10,10,11,12,13, 7, 8, 8,10, - 10, 8, 9, 9,11,11, 8, 9, 9,11,11,10,11,11,13,13, - 10,11,11,13,12, 9,10,10,12,12,10,11,11,13,13,10, - 10,11,12,13,12,13,13,14,14,12,12,13,13,14, 9,10, - 10,12,12,10,11,11,13,13,10,11,11,13,13,12,13,13, - 15,14,12,13,13,14,13, 8, 9, 9,11,11, 9,10,10,12, - 12, 9,10,10,12,12,12,12,12,14,13,11,12,12,14,14, - 9,10,10,12,12,10,11,11,13,13,10,11,11,13,13,12, - 13,13,14,15,12,13,13,14,15, 9,10,10,12,12,10,11, - 10,13,12,10,11,11,13,13,12,13,12,15,14,12,13,13, - 14,15,11,12,12,14,14,12,13,13,14,14,12,13,13,15, - 14,14,14,14,14,16,14,14,15,16,16,11,12,12,14,14, - 11,12,12,14,14,12,13,13,14,15,13,14,13,16,14,14, - 14,14,16,16, 8, 9, 9,11,11, 9,10,10,12,12, 9,10, - 10,12,12,11,12,12,14,13,11,12,12,14,14, 9,10,10, - 12,12,10,11,11,13,13,10,10,11,12,13,12,13,13,15, - 14,12,12,13,13,14, 9,10,10,12,12,10,11,11,13,13, - 10,11,11,13,13,12,13,13,14,14,12,13,13,15,14,11, - 12,12,14,13,12,13,13,15,14,11,12,12,13,14,14,15, - 14,16,15,13,13,14,13,16,11,12,12,14,14,12,13,13, - 14,15,12,13,12,15,14,14,14,14,16,15,14,15,13,16, - 14, -}; - -static const static_codebook _44u8_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44u8_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u8_p2_0, - 0 -}; - -static const long _vq_quantlist__44u8_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u8_p3_0[] = { - 3, 4, 4, 5, 5, 7, 7, 9, 9, 4, 5, 4, 6, 6, 7, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, - 8, 8,10,10, 6, 6, 6, 7, 7, 8, 8,10,10, 7, 7, 7, - 8, 8, 9, 9,11,10, 7, 7, 7, 8, 8, 9, 9,10,11, 9, - 9, 9,10,10,11,10,12,11, 9, 9, 9, 9,10,11,11,11, - 12, -}; - -static const static_codebook _44u8_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44u8_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u8_p3_0, - 0 -}; - -static const long _vq_quantlist__44u8_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44u8_p4_0[] = { - 4, 4, 4, 6, 6, 7, 7, 8, 8, 8, 8,10,10,11,11,11, - 11, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11,11, - 12,12, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9,10,10,11, - 11,12,12, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10,10, - 11,11,12,12, 6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 9,10, - 10,11,11,12,12, 7, 7, 7, 8, 8, 9, 8,10, 9,10, 9, - 11,10,12,11,13,12, 7, 7, 7, 8, 8, 8, 9, 9,10, 9, - 10,10,11,11,12,12,13, 8, 8, 8, 9, 9, 9, 9,10,10, - 11,10,11,11,12,12,13,13, 8, 8, 8, 9, 9, 9,10,10, - 10,10,11,11,11,12,12,12,13, 8, 9, 9, 9, 9,10, 9, - 11,10,11,11,12,11,13,12,13,13, 8, 9, 9, 9, 9, 9, - 10,10,11,11,11,11,12,12,13,13,13,10,10,10,10,10, - 11,10,11,11,12,11,13,12,13,13,14,13,10,10,10,10, - 10,10,11,11,11,11,12,12,13,13,13,13,14,11,11,11, - 11,11,12,11,12,12,13,12,13,13,14,13,14,14,11,11, - 11,11,11,11,12,12,12,12,13,13,13,13,14,14,14,11, - 12,12,12,12,13,12,13,12,13,13,14,13,14,14,14,14, - 11,12,12,12,12,12,12,13,13,13,13,13,14,14,14,14, - 14, -}; - -static const static_codebook _44u8_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__44u8_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44u8_p4_0, - 0 -}; - -static const long _vq_quantlist__44u8_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u8_p5_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8, 9, 9, 7, - 9, 9, 5, 8, 8, 7, 9, 9, 8, 9, 9, 5, 8, 8, 8,10, - 10, 8,10,10, 7,10,10, 9,10,12, 9,12,11, 7,10,10, - 9,11,10, 9,11,12, 5, 8, 8, 8,10,10, 8,10,10, 7, - 10,10, 9,11,11, 9,10,11, 7,10,10, 9,11,11,10,12, - 10, -}; - -static const static_codebook _44u8_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__44u8_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44u8_p5_0, - 0 -}; - -static const long _vq_quantlist__44u8_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u8_p5_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 8, 8, 5, 5, 5, 6, 6, - 7, 7, 8, 8, 8, 8, 5, 5, 5, 6, 6, 7, 7, 7, 8, 8, - 8, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 6, 6, 6, 7, - 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 7, 8, 7, - 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, 8, 8, 8, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 9, 9, 8, 8, - 8, 8, 8, 8, 8, 8, 8, 9, 9, -}; - -static const static_codebook _44u8_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__44u8_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u8_p5_1, - 0 -}; - -static const long _vq_quantlist__44u8_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u8_p6_0[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 6, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 6, 7, 7, 7, 8, 8, 8, 8, 9, - 9,10,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 8,10, 9,11, - 10, 7, 8, 8, 8, 8, 8, 9, 9, 9,10,10,11,11, 7, 8, - 8, 8, 8, 9, 8, 9, 9,10,10,11,11, 8, 8, 8, 9, 9, - 9, 9, 9,10,10,10,11,11, 8, 8, 8, 9, 9, 9, 9,10, - 9,10,10,11,11, 9, 9, 9, 9,10,10,10,10,10,10,11, - 11,12, 9, 9, 9,10, 9,10,10,10,10,11,10,12,11,10, - 10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10, - 11,11,11,11,11,12,11,12,12, -}; - -static const static_codebook _44u8_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44u8_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44u8_p6_0, - 0 -}; - -static const long _vq_quantlist__44u8_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u8_p6_1[] = { - 3, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44u8_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44u8_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u8_p6_1, - 0 -}; - -static const long _vq_quantlist__44u8_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u8_p7_0[] = { - 1, 4, 5, 6, 6, 7, 7, 8, 8,10,10,11,11, 5, 6, 6, - 7, 7, 8, 8, 9, 9,11,10,12,11, 5, 6, 6, 7, 7, 8, - 8, 9, 9,10,11,11,12, 6, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12, 6, 7, 7, 8, 8, 9, 9,10,10,11,12,13, - 12, 7, 8, 8, 9, 9,10,10,11,11,12,12,13,13, 8, 8, - 8, 9, 9,10,10,11,11,12,12,13,13, 9, 9, 9,10,10, - 11,11,12,12,13,13,14,14, 9, 9, 9,10,10,11,11,12, - 12,13,13,14,14,10,11,11,12,11,13,12,13,13,14,14, - 15,15,10,11,11,11,12,12,13,13,14,14,14,15,15,11, - 12,12,13,13,14,13,15,14,15,15,16,15,11,11,12,13, - 13,13,14,14,14,15,15,15,16, -}; - -static const static_codebook _44u8_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44u8_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__44u8_p7_0, - 0 -}; - -static const long _vq_quantlist__44u8_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u8_p7_1[] = { - 4, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, - 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 7, 7, 7, - 8, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 7, 8, 8, 8, - 8, 8, 8, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 7, - 7, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44u8_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44u8_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u8_p7_1, - 0 -}; - -static const long _vq_quantlist__44u8_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u8_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 7, 9, 8,10, 9,11,10, 4, - 6, 6, 8, 8,10, 9, 9, 9,10,10,11,10,12,10, 4, 6, - 6, 8, 8,10,10, 9, 9,10,10,11,11,11,12, 7, 8, 8, - 10,10,11,11,11,10,12,11,12,12,13,11, 7, 8, 8,10, - 10,11,11,10,10,11,11,12,12,13,13, 8,10,10,11,11, - 12,11,12,11,13,12,13,12,14,13, 8,10, 9,11,11,12, - 12,12,12,12,12,13,13,14,13, 8, 9, 9,11,10,12,11, - 13,12,13,13,14,13,14,13, 8, 9, 9,10,11,12,12,12, - 12,13,13,14,15,14,14, 9,10,10,12,11,13,12,13,13, - 14,13,14,14,14,14, 9,10,10,12,12,12,12,13,13,14, - 14,14,15,14,14,10,11,11,13,12,13,12,14,14,14,14, - 14,14,15,15,10,11,11,12,12,13,13,14,14,14,15,15, - 14,16,15,11,12,12,13,12,14,14,14,13,15,14,15,15, - 15,17,11,12,12,13,13,14,14,14,15,15,14,15,15,14, - 17, -}; - -static const static_codebook _44u8_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__44u8_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__44u8_p8_0, - 0 -}; - -static const long _vq_quantlist__44u8_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44u8_p8_1[] = { - 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 5, 6, 6, 7, 7, 8, - 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, - 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10, 9,10, 8, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, - 10, 9,10, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9,10, 9, - 10,10,10,10,10,10,10,10, 8, 9, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10, 9,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10, - 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,10, 9, - 10,10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10, - 10, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9,10, 9,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9,10, - 9,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 9, 9, 9,10, 9,10, 9,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44u8_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__44u8_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44u8_p8_1, - 0 -}; - -static const long _vq_quantlist__44u8_p9_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u8_p9_0[] = { - 1, 3, 3, 9, 9, 9, 9, 9, 9, 4, 9, 9, 9, 9, 9, 9, - 9, 9, 5, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, - 8, -}; - -static const static_codebook _44u8_p9_0 = { - 2, 81, - (char *)_vq_lengthlist__44u8_p9_0, - 1, -511895552, 1631393792, 4, 0, - (long *)_vq_quantlist__44u8_p9_0, - 0 -}; - -static const long _vq_quantlist__44u8_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static const char _vq_lengthlist__44u8_p9_1[] = { - 1, 4, 4, 7, 7, 8, 7, 8, 6, 9, 7,10, 8,11,10,11, - 11,11,11, 4, 7, 6, 9, 9,10, 9, 9, 9,10,10,11,10, - 11,10,11,11,13,11, 4, 7, 7, 9, 9, 9, 9, 9, 9,10, - 10,11,10,11,11,11,12,11,12, 7, 9, 8,11,11,11,11, - 10,10,11,11,12,12,12,12,12,12,14,13, 7, 8, 9,10, - 11,11,11,10,10,11,11,11,11,12,12,14,12,13,14, 8, - 9, 9,11,11,11,11,11,11,12,12,14,12,15,14,14,14, - 15,14, 8, 9, 9,11,11,11,11,12,11,12,12,13,13,13, - 13,13,13,14,14, 8, 9, 9,11,10,12,11,12,12,13,13, - 13,13,15,14,14,14,16,16, 8, 9, 9,10,11,11,12,12, - 12,13,13,13,14,14,14,15,16,15,15, 9,10,10,11,12, - 12,13,13,13,14,14,16,14,14,16,16,16,16,15, 9,10, - 10,11,11,12,13,13,14,15,14,16,14,15,16,16,16,16, - 15,10,11,11,12,13,13,14,15,15,15,15,15,16,15,16, - 15,16,15,15,10,11,11,13,13,14,13,13,15,14,15,15, - 16,15,15,15,16,15,16,10,12,12,14,14,14,14,14,16, - 16,15,15,15,16,16,16,16,16,16,11,12,12,14,14,14, - 14,15,15,16,15,16,15,16,15,16,16,16,16,12,12,13, - 14,14,15,16,16,16,16,16,16,15,16,16,16,16,16,16, - 12,13,13,14,14,14,14,15,16,15,16,16,16,16,16,16, - 16,16,16,12,13,14,14,14,16,15,16,15,16,16,16,16, - 16,16,16,16,16,16,12,14,13,14,15,15,15,16,15,16, - 16,15,16,16,16,16,16,16,16, -}; - -static const static_codebook _44u8_p9_1 = { - 2, 361, - (char *)_vq_lengthlist__44u8_p9_1, - 1, -518287360, 1622704128, 5, 0, - (long *)_vq_quantlist__44u8_p9_1, - 0 -}; - -static const long _vq_quantlist__44u8_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__44u8_p9_2[] = { - 2, 3, 4, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _44u8_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__44u8_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__44u8_p9_2, - 0 -}; - -static const char _huff_lengthlist__44u9__long[] = { - 3, 9,13,13,14,15,14,14,15,15, 5, 5, 9,10,12,12, - 13,14,16,15,10, 6, 6, 6, 8,11,12,13,16,15,11, 7, - 5, 3, 5, 8,10,12,15,15,10,10, 7, 4, 3, 5, 8,10, - 12,12,12,12, 9, 7, 5, 4, 6, 8,10,13,13,12,11, 9, - 7, 5, 5, 6, 9,12,14,12,12,10, 8, 6, 6, 6, 7,11, - 13,12,14,13,10, 8, 7, 7, 7,10,11,11,12,13,12,11, - 10, 8, 8, 9, -}; - -static const static_codebook _huff_book__44u9__long = { - 2, 100, - (char *)_huff_lengthlist__44u9__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const char _huff_lengthlist__44u9__short[] = { - 9,16,18,18,17,17,17,17,17,17, 5, 8,11,12,11,12, - 17,17,16,16, 6, 6, 8, 8, 9,10,14,15,16,16, 6, 7, - 7, 4, 6, 9,13,16,16,16, 6, 6, 7, 4, 5, 8,11,15, - 17,16, 7, 6, 7, 6, 6, 8, 9,10,14,16,11, 8, 8, 7, - 6, 6, 3, 4,10,15,14,12,12,10, 5, 6, 3, 3, 8,13, - 15,17,15,11, 6, 8, 6, 6, 9,14,17,15,15,12, 8,10, - 9, 9,12,15, -}; - -static const static_codebook _huff_book__44u9__short = { - 2, 100, - (char *)_huff_lengthlist__44u9__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44u9_p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u9_p1_0[] = { - 1, 5, 5, 5, 7, 7, 5, 7, 7, 5, 7, 7, 7, 9, 9, 7, - 9, 9, 5, 7, 7, 7, 9, 9, 7, 9, 9, 5, 7, 7, 7, 9, - 9, 7, 9, 9, 8, 9, 9, 9,10,11, 9,11,11, 7, 9, 9, - 9,11,10, 9,11,11, 5, 7, 7, 7, 9, 9, 8, 9,10, 7, - 9, 9, 9,11,11, 9,10,11, 7, 9,10, 9,11,11, 9,11, - 10, -}; - -static const static_codebook _44u9_p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44u9_p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44u9_p1_0, - 0 -}; - -static const long _vq_quantlist__44u9_p2_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u9_p2_0[] = { - 3, 5, 5, 8, 8, 5, 7, 7, 9, 9, 6, 7, 7, 9, 9, 8, - 9, 9,11,10, 8, 9, 9,11,11, 6, 7, 7, 9, 9, 7, 8, - 8,10,10, 7, 8, 8, 9,10, 9,10,10,11,11, 9, 9,10, - 11,11, 6, 7, 7, 9, 9, 7, 8, 8,10, 9, 7, 8, 8,10, - 10, 9,10, 9,11,11, 9,10,10,11,11, 8, 9, 9,11,11, - 9,10,10,12,11, 9,10,10,11,12,11,11,11,13,13,11, - 11,11,12,13, 8, 9, 9,11,11, 9,10,10,11,11, 9,10, - 10,12,11,11,12,11,13,12,11,11,12,13,13, 6, 7, 7, - 9, 9, 7, 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,12, - 11, 9,10,10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,11, - 8, 9, 9,10,10,10,11,11,12,12,10,10,11,12,12, 7, - 8, 8,10,10, 8, 9, 8,10,10, 8, 9, 9,10,10,10,11, - 10,12,11,10,10,11,12,12, 9,10,10,11,12,10,11,11, - 12,12,10,11,10,12,12,12,12,12,13,13,11,12,12,13, - 13, 9,10,10,11,11, 9,10,10,12,12,10,11,11,12,13, - 11,12,11,13,12,12,12,12,13,14, 6, 7, 7, 9, 9, 7, - 8, 8,10,10, 7, 8, 8,10,10, 9,10,10,11,11, 9,10, - 10,11,12, 7, 8, 8,10,10, 8, 9, 9,11,10, 8, 8, 9, - 10,10,10,11,10,12,12,10,10,11,11,12, 7, 8, 8,10, - 10, 8, 9, 9,10,10, 8, 9, 9,10,10,10,11,10,12,12, - 10,11,10,12,12, 9,10,10,12,11,10,11,11,12,12, 9, - 10,10,12,12,12,12,12,13,13,11,11,12,12,14, 9,10, - 10,11,12,10,11,11,12,12,10,11,11,12,12,11,12,12, - 14,14,12,12,12,13,13, 8, 9, 9,11,11, 9,10,10,12, - 11, 9,10,10,12,12,11,12,11,13,13,11,11,12,13,13, - 9,10,10,12,12,10,11,11,12,12,10,11,11,12,12,12, - 12,12,14,14,12,12,12,13,13, 9,10,10,12,11,10,11, - 10,12,12,10,11,11,12,12,11,12,12,14,13,12,12,12, - 13,14,11,12,11,13,13,11,12,12,13,13,12,12,12,14, - 14,13,13,13,13,15,13,13,14,15,15,11,11,11,13,13, - 11,12,11,13,13,11,12,12,13,13,12,13,12,15,13,13, - 13,14,14,15, 8, 9, 9,11,11, 9,10,10,11,12, 9,10, - 10,11,12,11,12,11,13,13,11,12,12,13,13, 9,10,10, - 11,12,10,11,10,12,12,10,10,11,12,13,12,12,12,14, - 13,11,12,12,13,14, 9,10,10,12,12,10,11,11,12,12, - 10,11,11,12,12,12,12,12,14,13,12,12,12,14,13,11, - 11,11,13,13,11,12,12,14,13,11,11,12,13,13,13,13, - 13,15,14,12,12,13,13,15,11,12,12,13,13,12,12,12, - 13,14,11,12,12,13,13,13,13,14,14,15,13,13,13,14, - 14, -}; - -static const static_codebook _44u9_p2_0 = { - 4, 625, - (char *)_vq_lengthlist__44u9_p2_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u9_p2_0, - 0 -}; - -static const long _vq_quantlist__44u9_p3_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44u9_p3_0[] = { - 3, 4, 4, 5, 5, 7, 7, 8, 8, 4, 5, 5, 6, 6, 7, 7, - 9, 9, 4, 4, 5, 6, 6, 7, 7, 9, 9, 5, 6, 6, 7, 7, - 8, 8, 9, 9, 5, 6, 6, 7, 7, 8, 8, 9, 9, 7, 7, 7, - 8, 8, 9, 9,10,10, 7, 7, 7, 8, 8, 9, 9,10,10, 8, - 9, 9,10, 9,10,10,11,11, 8, 9, 9, 9,10,10,10,11, - 11, -}; - -static const static_codebook _44u9_p3_0 = { - 2, 81, - (char *)_vq_lengthlist__44u9_p3_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44u9_p3_0, - 0 -}; - -static const long _vq_quantlist__44u9_p4_0[] = { - 8, - 7, - 9, - 6, - 10, - 5, - 11, - 4, - 12, - 3, - 13, - 2, - 14, - 1, - 15, - 0, - 16, -}; - -static const char _vq_lengthlist__44u9_p4_0[] = { - 4, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,11, - 11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10, - 11,11, 5, 5, 5, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9,10, - 10,11,11, 6, 6, 6, 7, 6, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,11, 6, 6, 6, 6, 7, 7, 7, 8, 8, 9, 9,10, - 10,11,11,11,12, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, - 10,10,11,11,12,12, 7, 7, 7, 7, 7, 8, 8, 9, 9, 9, - 9,10,10,11,11,12,12, 8, 8, 8, 8, 8, 9, 8,10, 9, - 10,10,11,10,12,11,13,12, 8, 8, 8, 8, 8, 9, 9, 9, - 10,10,10,10,11,11,12,12,12, 8, 8, 8, 9, 9, 9, 9, - 10,10,11,10,12,11,12,12,13,12, 8, 8, 8, 9, 9, 9, - 9,10,10,10,11,11,11,12,12,12,13, 9, 9, 9,10,10, - 10,10,11,10,11,11,12,11,13,12,13,13, 9, 9,10,10, - 10,10,10,10,11,11,11,11,12,12,13,13,13,10,11,10, - 11,11,11,11,12,11,12,12,13,12,13,13,14,13,10,10, - 10,11,11,11,11,11,12,12,12,12,13,13,13,13,14,11, - 11,11,12,11,12,12,12,12,13,13,13,13,14,13,14,14, - 11,11,11,11,12,12,12,12,12,12,13,13,13,13,14,14, - 14, -}; - -static const static_codebook _44u9_p4_0 = { - 2, 289, - (char *)_vq_lengthlist__44u9_p4_0, - 1, -529530880, 1611661312, 5, 0, - (long *)_vq_quantlist__44u9_p4_0, - 0 -}; - -static const long _vq_quantlist__44u9_p5_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44u9_p5_0[] = { - 1, 4, 4, 5, 7, 7, 5, 7, 7, 5, 8, 8, 8, 9, 9, 7, - 9, 9, 5, 8, 8, 7, 9, 9, 8, 9, 9, 5, 8, 8, 8,10, - 10, 8,10,10, 7,10,10, 9,10,12, 9,11,11, 7,10,10, - 9,11,10, 9,11,12, 5, 8, 8, 8,10,10, 8,10,10, 7, - 10,10, 9,12,11, 9,10,11, 7,10,10, 9,11,11,10,12, - 10, -}; - -static const static_codebook _44u9_p5_0 = { - 4, 81, - (char *)_vq_lengthlist__44u9_p5_0, - 1, -529137664, 1618345984, 2, 0, - (long *)_vq_quantlist__44u9_p5_0, - 0 -}; - -static const long _vq_quantlist__44u9_p5_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u9_p5_1[] = { - 5, 5, 5, 6, 6, 7, 7, 7, 7, 7, 7, 5, 6, 6, 6, 6, - 7, 7, 7, 7, 8, 7, 5, 6, 6, 6, 6, 7, 7, 7, 7, 7, - 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 6, 6, 6, 7, - 7, 7, 7, 7, 7, 8, 8, 7, 7, 7, 7, 7, 8, 7, 8, 8, - 8, 8, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 7, 7, 7, - 8, 7, 8, 8, 8, 8, 8, 8, 7, 7, 7, 7, 8, 8, 8, 8, - 8, 8, 8, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, - 8, 8, 8, 8, 8, 8, 8, 8, 8, -}; - -static const static_codebook _44u9_p5_1 = { - 2, 121, - (char *)_vq_lengthlist__44u9_p5_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u9_p5_1, - 0 -}; - -static const long _vq_quantlist__44u9_p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u9_p6_0[] = { - 2, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9,10,10, 4, 6, 5, - 7, 7, 8, 8, 8, 8, 9, 9,10,10, 4, 5, 6, 7, 7, 8, - 8, 8, 8, 9, 9,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 10,10,10,10, 6, 7, 7, 8, 8, 8, 8, 9, 9,10,10,10, - 10, 7, 8, 8, 8, 8, 9, 9, 9, 9,10,10,11,11, 7, 8, - 8, 8, 8, 9, 9, 9, 9,10,10,11,11, 8, 8, 8, 9, 9, - 9, 9, 9,10,10,10,11,11, 8, 8, 8, 9, 9, 9, 9,10, - 9,10,10,11,11, 9, 9, 9,10,10,10,10,10,11,11,11, - 11,12, 9, 9, 9,10,10,10,10,10,10,11,10,12,11,10, - 10,10,10,10,11,11,11,11,11,12,12,12,10,10,10,10, - 10,11,11,11,11,12,11,12,12, -}; - -static const static_codebook _44u9_p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44u9_p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44u9_p6_0, - 0 -}; - -static const long _vq_quantlist__44u9_p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44u9_p6_1[] = { - 4, 4, 4, 5, 5, 4, 5, 4, 5, 5, 4, 4, 5, 5, 5, 5, - 5, 5, 5, 5, 5, 5, 5, 5, 5, -}; - -static const static_codebook _44u9_p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44u9_p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44u9_p6_1, - 0 -}; - -static const long _vq_quantlist__44u9_p7_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44u9_p7_0[] = { - 1, 4, 5, 6, 6, 7, 7, 8, 9,10,10,11,11, 5, 6, 6, - 7, 7, 8, 8, 9, 9,10,10,11,11, 5, 6, 6, 7, 7, 8, - 8, 9, 9,10,10,11,11, 6, 7, 7, 8, 8, 9, 9,10,10, - 11,11,12,12, 6, 7, 7, 8, 8, 9, 9,10,10,11,11,12, - 12, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13, 8, 8, - 8, 9, 9,10,10,11,11,12,12,13,13, 9, 9, 9,10,10, - 11,11,12,12,13,13,13,13, 9, 9, 9,10,10,11,11,12, - 12,13,13,14,14,10,10,10,11,11,12,12,13,13,14,13, - 15,14,10,10,10,11,11,12,12,13,13,14,14,14,14,11, - 11,12,12,12,13,13,14,14,14,14,15,15,11,11,12,12, - 12,13,13,14,14,14,15,15,15, -}; - -static const static_codebook _44u9_p7_0 = { - 2, 169, - (char *)_vq_lengthlist__44u9_p7_0, - 1, -523206656, 1618345984, 4, 0, - (long *)_vq_quantlist__44u9_p7_0, - 0 -}; - -static const long _vq_quantlist__44u9_p7_1[] = { - 5, - 4, - 6, - 3, - 7, - 2, - 8, - 1, - 9, - 0, - 10, -}; - -static const char _vq_lengthlist__44u9_p7_1[] = { - 5, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, - 7, 7, 7, 7, 7, 7, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 6, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 8, 8, 7, 7, 7, 7, 7, 7, 7, 8, 7, 8, 8, 7, 7, - 7, 7, 7, 7, 7, 8, 8, 8, 8, -}; - -static const static_codebook _44u9_p7_1 = { - 2, 121, - (char *)_vq_lengthlist__44u9_p7_1, - 1, -531365888, 1611661312, 4, 0, - (long *)_vq_quantlist__44u9_p7_1, - 0 -}; - -static const long _vq_quantlist__44u9_p8_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u9_p8_0[] = { - 1, 4, 4, 7, 7, 8, 8, 8, 8, 9, 9,10, 9,11,10, 4, - 6, 6, 8, 8, 9, 9, 9, 9,10,10,11,10,12,10, 4, 6, - 6, 8, 8, 9,10, 9, 9,10,10,11,11,12,12, 7, 8, 8, - 10,10,11,11,10,10,11,11,12,12,13,12, 7, 8, 8,10, - 10,11,11,10,10,11,11,12,12,12,13, 8,10, 9,11,11, - 12,12,11,11,12,12,13,13,14,13, 8, 9, 9,11,11,12, - 12,11,12,12,12,13,13,14,13, 8, 9, 9,10,10,12,11, - 13,12,13,13,14,13,15,14, 8, 9, 9,10,10,11,12,12, - 12,13,13,13,14,14,14, 9,10,10,12,11,13,12,13,13, - 14,13,14,14,14,15, 9,10,10,11,12,12,12,13,13,14, - 14,14,15,15,15,10,11,11,12,12,13,13,14,14,14,14, - 15,14,16,15,10,11,11,12,12,13,13,13,14,14,14,14, - 14,15,16,11,12,12,13,13,14,13,14,14,15,14,15,16, - 16,16,11,12,12,13,13,14,13,14,14,15,15,15,16,15, - 15, -}; - -static const static_codebook _44u9_p8_0 = { - 2, 225, - (char *)_vq_lengthlist__44u9_p8_0, - 1, -520986624, 1620377600, 4, 0, - (long *)_vq_quantlist__44u9_p8_0, - 0 -}; - -static const long _vq_quantlist__44u9_p8_1[] = { - 10, - 9, - 11, - 8, - 12, - 7, - 13, - 6, - 14, - 5, - 15, - 4, - 16, - 3, - 17, - 2, - 18, - 1, - 19, - 0, - 20, -}; - -static const char _vq_lengthlist__44u9_p8_1[] = { - 4, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 6, 6, 6, 7, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 7, - 7, 7, 8, 8, 8, 8, 9, 8, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 7, 7, 7, 8, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9, 8, 8, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10, 8, 8, - 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9,10,10, 8, 8, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 10, 9,10, 9,10,10,10,10, 8, 8, 8, 9, 9, 9, 9, 9, - 9, 9, 9, 9, 9,10,10, 9,10,10,10,10,10, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, - 10,10, 8, 9, 9, 9, 9, 9, 9, 9, 9, 9, 9,10,10,10, - 10,10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9, 9, - 9, 9,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, - 9, 9, 9, 9, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10,10,10, - 10,10,10,10,10,10, 9, 9, 9, 9, 9, 9, 9, 9,10,10, - 10,10,10,10,10,10,10,10,10,10,10, 9, 9, 9, 9, 9, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 9, 9, 9, 9,10, 9, 9,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10, 9, 9, 9,10, 9,10, 9,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10, 9, 9, 9,10, 9,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 9, - 9, 9, 9, 9,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10, 9, 9, 9,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10, -}; - -static const static_codebook _44u9_p8_1 = { - 2, 441, - (char *)_vq_lengthlist__44u9_p8_1, - 1, -529268736, 1611661312, 5, 0, - (long *)_vq_quantlist__44u9_p8_1, - 0 -}; - -static const long _vq_quantlist__44u9_p9_0[] = { - 7, - 6, - 8, - 5, - 9, - 4, - 10, - 3, - 11, - 2, - 12, - 1, - 13, - 0, - 14, -}; - -static const char _vq_lengthlist__44u9_p9_0[] = { - 1, 3, 3,11,11,11,11,11,11,11,11,11,11,11,11, 4, - 10,11,11,11,11,11,11,11,11,11,11,11,11,11, 4,10, - 10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _44u9_p9_0 = { - 2, 225, - (char *)_vq_lengthlist__44u9_p9_0, - 1, -510036736, 1631393792, 4, 0, - (long *)_vq_quantlist__44u9_p9_0, - 0 -}; - -static const long _vq_quantlist__44u9_p9_1[] = { - 9, - 8, - 10, - 7, - 11, - 6, - 12, - 5, - 13, - 4, - 14, - 3, - 15, - 2, - 16, - 1, - 17, - 0, - 18, -}; - -static const char _vq_lengthlist__44u9_p9_1[] = { - 1, 4, 4, 7, 7, 8, 7, 8, 7, 9, 8,10, 9,10,10,11, - 11,12,12, 4, 7, 6, 9, 9,10, 9, 9, 8,10,10,11,10, - 12,10,13,12,13,12, 4, 6, 6, 9, 9, 9, 9, 9, 9,10, - 10,11,11,11,12,12,12,12,12, 7, 9, 8,11,10,10,10, - 11,10,11,11,12,12,13,12,13,13,13,13, 7, 8, 9,10, - 10,11,11,10,10,11,11,11,12,13,13,13,13,14,14, 8, - 9, 9,11,11,12,11,12,12,13,12,12,13,13,14,15,14, - 14,14, 8, 9, 9,10,11,11,11,12,12,13,12,13,13,14, - 14,14,15,14,16, 8, 9, 9,11,10,12,12,12,12,15,13, - 13,13,17,14,15,15,15,14, 8, 9, 9,10,11,11,12,13, - 12,13,13,13,14,15,14,14,14,16,15, 9,11,10,12,12, - 13,13,13,13,14,14,16,15,14,14,14,15,15,17, 9,10, - 10,11,11,13,13,13,14,14,13,15,14,15,14,15,16,15, - 16,10,11,11,12,12,13,14,15,14,15,14,14,15,17,16, - 15,15,17,17,10,12,11,13,12,14,14,13,14,15,15,15, - 15,16,17,17,15,17,16,11,12,12,14,13,15,14,15,16, - 17,15,17,15,17,15,15,16,17,15,11,11,12,14,14,14, - 14,14,15,15,16,15,17,17,17,16,17,16,15,12,12,13, - 14,14,14,15,14,15,15,16,16,17,16,17,15,17,17,16, - 12,14,12,14,14,15,15,15,14,14,16,16,16,15,16,16, - 15,17,15,12,13,13,14,15,14,15,17,15,17,16,17,17, - 17,16,17,16,17,17,12,13,13,14,16,15,15,15,16,15, - 17,17,15,17,15,17,16,16,17, -}; - -static const static_codebook _44u9_p9_1 = { - 2, 361, - (char *)_vq_lengthlist__44u9_p9_1, - 1, -518287360, 1622704128, 5, 0, - (long *)_vq_quantlist__44u9_p9_1, - 0 -}; - -static const long _vq_quantlist__44u9_p9_2[] = { - 24, - 23, - 25, - 22, - 26, - 21, - 27, - 20, - 28, - 19, - 29, - 18, - 30, - 17, - 31, - 16, - 32, - 15, - 33, - 14, - 34, - 13, - 35, - 12, - 36, - 11, - 37, - 10, - 38, - 9, - 39, - 8, - 40, - 7, - 41, - 6, - 42, - 5, - 43, - 4, - 44, - 3, - 45, - 2, - 46, - 1, - 47, - 0, - 48, -}; - -static const char _vq_lengthlist__44u9_p9_2[] = { - 2, 4, 4, 5, 4, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 7, 6, 7, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, - 7, -}; - -static const static_codebook _44u9_p9_2 = { - 1, 49, - (char *)_vq_lengthlist__44u9_p9_2, - 1, -526909440, 1611661312, 6, 0, - (long *)_vq_quantlist__44u9_p9_2, - 0 -}; - -static const char _huff_lengthlist__44un1__long[] = { - 5, 6,12, 9,14, 9, 9,19, 6, 1, 5, 5, 8, 7, 9,19, - 12, 4, 4, 7, 7, 9,11,18, 9, 5, 6, 6, 8, 7, 8,17, - 14, 8, 7, 8, 8,10,12,18, 9, 6, 8, 6, 8, 6, 8,18, - 9, 8,11, 8,11, 7, 5,15,16,18,18,18,17,15,11,18, -}; - -static const static_codebook _huff_book__44un1__long = { - 2, 64, - (char *)_huff_lengthlist__44un1__long, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - -static const long _vq_quantlist__44un1__p1_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44un1__p1_0[] = { - 1, 4, 4, 5, 8, 7, 5, 7, 8, 5, 8, 8, 8,10,11, 8, - 10,11, 5, 8, 8, 8,11,10, 8,11,10, 4, 9, 9, 8,11, - 11, 8,11,11, 8,12,11,10,12,14,11,13,13, 7,11,11, - 10,13,11,11,13,14, 4, 8, 9, 8,11,11, 8,11,12, 7, - 11,11,11,14,13,10,11,13, 8,11,12,11,13,13,10,14, - 12, -}; - -static const static_codebook _44un1__p1_0 = { - 4, 81, - (char *)_vq_lengthlist__44un1__p1_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44un1__p1_0, - 0 -}; - -static const long _vq_quantlist__44un1__p2_0[] = { - 1, - 0, - 2, -}; - -static const char _vq_lengthlist__44un1__p2_0[] = { - 2, 4, 4, 5, 6, 6, 5, 6, 6, 5, 7, 7, 7, 8, 8, 6, - 7, 9, 5, 7, 7, 6, 8, 7, 7, 9, 8, 4, 7, 7, 7, 9, - 8, 7, 8, 8, 7, 9, 8, 8, 8,10, 9,10,10, 6, 8, 8, - 7,10, 8, 9,10,10, 5, 7, 7, 7, 8, 8, 7, 8, 9, 6, - 8, 8, 9,10,10, 7, 8,10, 6, 8, 9, 9,10,10, 8,10, - 8, -}; - -static const static_codebook _44un1__p2_0 = { - 4, 81, - (char *)_vq_lengthlist__44un1__p2_0, - 1, -535822336, 1611661312, 2, 0, - (long *)_vq_quantlist__44un1__p2_0, - 0 -}; - -static const long _vq_quantlist__44un1__p3_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44un1__p3_0[] = { - 1, 5, 5, 8, 8, 5, 8, 7, 9, 9, 5, 7, 8, 9, 9, 9, - 10, 9,12,12, 9, 9,10,11,12, 6, 8, 8,10,10, 8,10, - 10,11,11, 8, 9,10,11,11,10,11,11,13,13,10,11,11, - 12,13, 6, 8, 8,10,10, 8,10, 9,11,11, 8,10,10,11, - 11,10,11,11,13,12,10,11,11,13,12, 9,11,11,15,13, - 10,12,11,15,13,10,11,11,15,14,12,14,13,16,15,12, - 13,13,17,16, 9,11,11,13,15,10,11,12,14,15,10,11, - 12,14,15,12,13,13,15,16,12,13,13,16,16, 5, 8, 8, - 11,11, 8,10,10,12,12, 8,10,10,12,12,11,12,12,14, - 14,11,12,12,14,14, 8,11,10,13,12,10,11,12,12,13, - 10,12,12,13,13,12,12,13,13,15,11,12,13,15,14, 7, - 10,10,12,12, 9,12,11,13,12,10,12,12,13,14,12,13, - 12,15,13,11,13,12,14,15,10,12,12,16,14,11,12,12, - 16,15,11,13,12,17,16,13,13,15,15,17,13,15,15,20, - 17,10,12,12,14,16,11,12,12,15,15,11,13,13,15,18, - 13,14,13,15,15,13,15,14,16,16, 5, 8, 8,11,11, 8, - 10,10,12,12, 8,10,10,12,12,11,12,12,14,14,11,12, - 12,14,15, 7,10,10,13,12,10,12,12,14,13, 9,10,12, - 12,13,11,13,13,15,15,11,12,13,13,15, 8,10,10,12, - 13,10,12,12,13,13,10,12,11,13,13,11,13,12,15,15, - 12,13,12,15,13,10,12,12,16,14,11,12,12,16,15,10, - 12,12,16,14,14,15,14,18,16,13,13,14,15,16,10,12, - 12,14,16,11,13,13,16,16,11,13,12,14,16,13,15,15, - 18,18,13,15,13,16,14, 8,11,11,16,16,10,13,13,17, - 16,10,12,12,16,15,14,16,15,20,17,13,14,14,17,17, - 9,12,12,16,16,11,13,14,16,17,11,13,13,16,16,15, - 15,19,18, 0,14,15,15,18,18, 9,12,12,17,16,11,13, - 12,17,16,11,12,13,15,17,15,16,15, 0,19,14,15,14, - 19,18,12,14,14, 0,16,13,14,14,19,18,13,15,16,17, - 16,15,15,17,18, 0,14,16,16,19, 0,12,14,14,16,18, - 13,15,13,17,18,13,15,14,17,18,15,18,14,18,18,16, - 17,16, 0,17, 8,11,11,15,15,10,12,12,16,16,10,13, - 13,16,16,13,15,14,17,17,14,15,17,17,18, 9,12,12, - 16,15,11,13,13,16,16,11,12,13,17,17,14,14,15,17, - 17,14,15,16, 0,18, 9,12,12,16,17,11,13,13,16,17, - 11,14,13,18,17,14,16,14,17,17,15,17,17,18,18,12, - 14,14, 0,16,13,15,15,19, 0,12,13,15, 0, 0,14,17, - 16,19, 0,16,15,18,18, 0,12,14,14,17, 0,13,14,14, - 17, 0,13,15,14, 0,18,15,16,16, 0,18,15,18,15, 0, - 17, -}; - -static const static_codebook _44un1__p3_0 = { - 4, 625, - (char *)_vq_lengthlist__44un1__p3_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44un1__p3_0, - 0 -}; - -static const long _vq_quantlist__44un1__p4_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44un1__p4_0[] = { - 3, 5, 5, 9, 9, 5, 6, 6,10, 9, 5, 6, 6, 9,10,10, - 10,10,12,11, 9,10,10,12,12, 5, 7, 7,10,10, 7, 7, - 8,10,11, 7, 7, 8,10,11,10,10,11,11,13,10,10,11, - 11,13, 6, 7, 7,10,10, 7, 8, 7,11,10, 7, 8, 7,10, - 10,10,11, 9,13,11,10,11,10,13,11,10,10,10,14,13, - 10,11,11,14,13,10,10,11,13,14,12,12,13,15,15,12, - 12,13,13,14,10,10,10,12,13,10,11,10,13,13,10,11, - 11,13,13,12,13,12,14,13,12,13,13,14,13, 5, 7, 7, - 10,10, 7, 8, 8,11,10, 7, 8, 8,10,10,11,11,11,13, - 13,10,11,11,12,12, 7, 8, 8,11,11, 7, 8, 9,10,12, - 8, 9, 9,11,11,11,10,12,11,14,11,11,12,13,13, 6, - 8, 8,10,11, 7, 9, 7,12,10, 8, 9,10,11,12,10,12, - 10,14,11,11,12,11,13,13,10,11,11,14,14,10,10,11, - 13,14,11,12,12,15,13,12,11,14,12,16,12,13,14,15, - 16,10,10,11,13,14,10,11,10,14,12,11,12,12,13,14, - 12,13,11,15,12,14,14,14,15,15, 5, 7, 7,10,10, 7, - 8, 8,10,10, 7, 8, 8,10,11,10,11,10,12,12,10,11, - 11,12,13, 6, 8, 8,11,11, 8, 9, 9,12,11, 7, 7, 9, - 10,12,11,11,11,12,13,11,10,12,11,15, 7, 8, 8,11, - 11, 8, 9, 9,11,11, 7, 9, 8,12,10,11,12,11,13,12, - 11,12,10,15,11,10,11,10,14,12,11,12,11,14,13,10, - 10,11,13,14,13,13,13,17,15,12,11,14,12,15,10,10, - 11,13,14,11,12,12,14,14,10,11,10,14,13,13,14,13, - 16,17,12,14,11,16,12, 9,10,10,14,13,10,11,10,14, - 14,10,11,11,13,13,13,14,14,16,15,12,13,13,14,14, - 9,11,10,14,13,10,10,12,13,14,11,12,11,14,13,13, - 14,14,14,15,13,14,14,15,15, 9,10,11,13,14,10,11, - 10,15,13,11,11,12,12,15,13,14,12,15,14,13,13,14, - 14,15,12,13,12,16,14,11,11,12,15,14,13,15,13,16, - 14,13,12,15,12,17,15,16,15,16,16,12,12,13,13,15, - 11,13,11,15,14,13,13,14,15,17,13,14,12, 0,13,14, - 15,14,15, 0, 9,10,10,13,13,10,11,11,13,13,10,11, - 11,13,13,12,13,12,14,14,13,14,14,15,17, 9,10,10, - 13,13,11,12,11,15,12,10,10,11,13,16,13,14,13,15, - 14,13,13,14,15,16,10,10,11,13,14,11,11,12,13,14, - 10,12,11,14,14,13,13,13,14,15,13,15,13,16,15,12, - 13,12,15,13,12,15,13,15,15,11,11,13,14,15,15,15, - 15,15,17,13,12,14,13,17,12,12,14,14,15,13,13,14, - 14,16,11,13,11,16,15,14,16,16,17, 0,14,13,11,16, - 12, -}; - -static const static_codebook _44un1__p4_0 = { - 4, 625, - (char *)_vq_lengthlist__44un1__p4_0, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44un1__p4_0, - 0 -}; - -static const long _vq_quantlist__44un1__p5_0[] = { - 4, - 3, - 5, - 2, - 6, - 1, - 7, - 0, - 8, -}; - -static const char _vq_lengthlist__44un1__p5_0[] = { - 1, 4, 4, 7, 7, 8, 8, 9, 9, 4, 6, 5, 8, 7, 8, 8, - 10, 9, 4, 6, 6, 8, 8, 8, 8,10,10, 7, 8, 7, 9, 9, - 9, 9,11,10, 7, 8, 8, 9, 9, 9, 9,10,11, 8, 8, 8, - 9, 9,10,10,11,11, 8, 8, 8, 9, 9,10,10,11,11, 9, - 10,10,11,10,11,11,12,12, 9,10,10,10,11,11,11,12, - 12, -}; - -static const static_codebook _44un1__p5_0 = { - 2, 81, - (char *)_vq_lengthlist__44un1__p5_0, - 1, -531628032, 1611661312, 4, 0, - (long *)_vq_quantlist__44un1__p5_0, - 0 -}; - -static const long _vq_quantlist__44un1__p6_0[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44un1__p6_0[] = { - 1, 4, 4, 6, 6, 8, 8,10,10,11,11,15,15, 4, 5, 5, - 8, 8, 9, 9,11,11,12,12,16,16, 4, 5, 6, 8, 8, 9, - 9,11,11,12,12,14,14, 7, 8, 8, 9, 9,10,10,11,12, - 13,13,16,17, 7, 8, 8, 9, 9,10,10,12,12,12,13,15, - 15, 9,10,10,10,10,11,11,12,12,13,13,15,16, 9, 9, - 9,10,10,11,11,13,12,13,13,17,17,10,11,11,11,12, - 12,12,13,13,14,15, 0,18,10,11,11,12,12,12,13,14, - 13,14,14,17,16,11,12,12,13,13,14,14,14,14,15,16, - 17,16,11,12,12,13,13,14,14,14,14,15,15,17,17,14, - 15,15,16,16,16,17,17,16, 0,17, 0,18,14,15,15,16, - 16, 0,15,18,18, 0,16, 0, 0, -}; - -static const static_codebook _44un1__p6_0 = { - 2, 169, - (char *)_vq_lengthlist__44un1__p6_0, - 1, -526516224, 1616117760, 4, 0, - (long *)_vq_quantlist__44un1__p6_0, - 0 -}; - -static const long _vq_quantlist__44un1__p6_1[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44un1__p6_1[] = { - 2, 4, 4, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 6, 5, 5, - 6, 5, 6, 6, 5, 6, 6, 6, 6, -}; - -static const static_codebook _44un1__p6_1 = { - 2, 25, - (char *)_vq_lengthlist__44un1__p6_1, - 1, -533725184, 1611661312, 3, 0, - (long *)_vq_quantlist__44un1__p6_1, - 0 -}; - -static const long _vq_quantlist__44un1__p7_0[] = { - 2, - 1, - 3, - 0, - 4, -}; - -static const char _vq_lengthlist__44un1__p7_0[] = { - 1, 5, 3,11,11,11,11,11,11,11, 8,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11, 8,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,10, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11, 7,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, - 10, -}; - -static const static_codebook _44un1__p7_0 = { - 4, 625, - (char *)_vq_lengthlist__44un1__p7_0, - 1, -518709248, 1626677248, 3, 0, - (long *)_vq_quantlist__44un1__p7_0, - 0 -}; - -static const long _vq_quantlist__44un1__p7_1[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44un1__p7_1[] = { - 1, 4, 4, 6, 6, 6, 6, 9, 8, 9, 8, 8, 8, 5, 7, 7, - 7, 7, 8, 8, 8,10, 8,10, 8, 9, 5, 7, 7, 8, 7, 7, - 8,10,10,11,10,12,11, 7, 8, 8, 9, 9, 9,10,11,11, - 11,11,11,11, 7, 8, 8, 8, 9, 9, 9,10,10,10,11,11, - 12, 7, 8, 8, 9, 9,10,11,11,12,11,12,11,11, 7, 8, - 8, 9, 9,10,10,11,11,11,12,12,11, 8,10,10,10,10, - 11,11,14,11,12,12,12,13, 9,10,10,10,10,12,11,14, - 11,14,11,12,13,10,11,11,11,11,13,11,14,14,13,13, - 13,14,11,11,11,12,11,12,12,12,13,14,14,13,14,12, - 11,12,12,12,12,13,13,13,14,13,14,14,11,12,12,14, - 12,13,13,12,13,13,14,14,14, -}; - -static const static_codebook _44un1__p7_1 = { - 2, 169, - (char *)_vq_lengthlist__44un1__p7_1, - 1, -523010048, 1618608128, 4, 0, - (long *)_vq_quantlist__44un1__p7_1, - 0 -}; - -static const long _vq_quantlist__44un1__p7_2[] = { - 6, - 5, - 7, - 4, - 8, - 3, - 9, - 2, - 10, - 1, - 11, - 0, - 12, -}; - -static const char _vq_lengthlist__44un1__p7_2[] = { - 3, 4, 4, 6, 6, 7, 7, 8, 8, 9, 9, 9, 8, 4, 5, 5, - 6, 6, 8, 8, 9, 8, 9, 9, 9, 9, 4, 5, 5, 7, 6, 8, - 8, 8, 8, 9, 8, 9, 8, 6, 7, 7, 7, 8, 8, 8, 9, 9, - 9, 9, 9, 9, 6, 7, 7, 7, 7, 8, 8, 9, 9, 9, 9, 9, - 9, 7, 8, 8, 8, 8, 9, 8, 9, 9,10, 9, 9,10, 7, 8, - 8, 8, 8, 9, 9, 9, 9, 9, 9,10,10, 8, 9, 9, 9, 9, - 9, 9, 9, 9,10,10, 9,10, 8, 9, 9, 9, 9, 9, 9, 9, - 9, 9, 9,10,10, 9, 9, 9,10, 9, 9,10, 9, 9,10,10, - 10,10, 9, 9, 9, 9, 9, 9, 9,10, 9,10,10,10,10, 9, - 9, 9,10, 9, 9,10,10, 9,10,10,10,10, 9, 9, 9,10, - 9, 9, 9,10,10,10,10,10,10, -}; - -static const static_codebook _44un1__p7_2 = { - 2, 169, - (char *)_vq_lengthlist__44un1__p7_2, - 1, -531103744, 1611661312, 4, 0, - (long *)_vq_quantlist__44un1__p7_2, - 0 -}; - -static const char _huff_lengthlist__44un1__short[] = { - 12,12,14,12,14,14,14,14,12, 6, 6, 8, 9, 9,11,14, - 12, 4, 2, 6, 6, 7,11,14,13, 6, 5, 7, 8, 9,11,14, - 13, 8, 5, 8, 6, 8,12,14,12, 7, 7, 8, 8, 8,10,14, - 12, 6, 3, 4, 4, 4, 7,14,11, 7, 4, 6, 6, 6, 8,14, -}; - -static const static_codebook _huff_book__44un1__short = { - 2, 64, - (char *)_huff_lengthlist__44un1__short, - 0, 0, 0, 0, 0, - NULL, - 0 -}; - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codebook.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codebook.c deleted file mode 100644 index 78672e22..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codebook.c +++ /dev/null @@ -1,461 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: basic codebook pack/unpack/code/decode operations - - ********************************************************************/ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codebook.h" -#include "scales.h" -#include "misc.h" -#include "os.h" - -/* packs the given codebook into the bitstream **************************/ - -int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *opb){ - long i,j; - int ordered=0; - - /* first the basic parameters */ - oggpack_write(opb,0x564342,24); - oggpack_write(opb,c->dim,16); - oggpack_write(opb,c->entries,24); - - /* pack the codewords. There are two packings; length ordered and - length random. Decide between the two now. */ - - for(i=1;ientries;i++) - if(c->lengthlist[i-1]==0 || c->lengthlist[i]lengthlist[i-1])break; - if(i==c->entries)ordered=1; - - if(ordered){ - /* length ordered. We only need to say how many codewords of - each length. The actual codewords are generated - deterministically */ - - long count=0; - oggpack_write(opb,1,1); /* ordered */ - oggpack_write(opb,c->lengthlist[0]-1,5); /* 1 to 32 */ - - for(i=1;ientries;i++){ - char this=c->lengthlist[i]; - char last=c->lengthlist[i-1]; - if(this>last){ - for(j=last;jentries-count)); - count=i; - } - } - } - oggpack_write(opb,i-count,ov_ilog(c->entries-count)); - - }else{ - /* length random. Again, we don't code the codeword itself, just - the length. This time, though, we have to encode each length */ - oggpack_write(opb,0,1); /* unordered */ - - /* algortihmic mapping has use for 'unused entries', which we tag - here. The algorithmic mapping happens as usual, but the unused - entry has no codeword. */ - for(i=0;ientries;i++) - if(c->lengthlist[i]==0)break; - - if(i==c->entries){ - oggpack_write(opb,0,1); /* no unused entries */ - for(i=0;ientries;i++) - oggpack_write(opb,c->lengthlist[i]-1,5); - }else{ - oggpack_write(opb,1,1); /* we have unused entries; thus we tag */ - for(i=0;ientries;i++){ - if(c->lengthlist[i]==0){ - oggpack_write(opb,0,1); - }else{ - oggpack_write(opb,1,1); - oggpack_write(opb,c->lengthlist[i]-1,5); - } - } - } - } - - /* is the entry number the desired return value, or do we have a - mapping? If we have a mapping, what type? */ - oggpack_write(opb,c->maptype,4); - switch(c->maptype){ - case 0: - /* no mapping */ - break; - case 1:case 2: - /* implicitly populated value mapping */ - /* explicitly populated value mapping */ - - if(!c->quantlist){ - /* no quantlist? error */ - return(-1); - } - - /* values that define the dequantization */ - oggpack_write(opb,c->q_min,32); - oggpack_write(opb,c->q_delta,32); - oggpack_write(opb,c->q_quant-1,4); - oggpack_write(opb,c->q_sequencep,1); - - { - int quantvals; - switch(c->maptype){ - case 1: - /* a single column of (c->entries/c->dim) quantized values for - building a full value list algorithmically (square lattice) */ - quantvals=_book_maptype1_quantvals(c); - break; - case 2: - /* every value (c->entries*c->dim total) specified explicitly */ - quantvals=c->entries*c->dim; - break; - default: /* NOT_REACHABLE */ - quantvals=-1; - } - - /* quantized values */ - for(i=0;iquantlist[i]),c->q_quant); - - } - break; - default: - /* error case; we don't have any other map types now */ - return(-1); - } - - return(0); -} - -/* unpacks a codebook from the packet buffer into the codebook struct, - readies the codebook auxiliary structures for decode *************/ -static_codebook *vorbis_staticbook_unpack(oggpack_buffer *opb){ - long i,j; - static_codebook *s=_ogg_calloc(1,sizeof(*s)); - s->allocedp=1; - - /* make sure alignment is correct */ - if(oggpack_read(opb,24)!=0x564342)goto _eofout; - - /* first the basic parameters */ - s->dim=oggpack_read(opb,16); - s->entries=oggpack_read(opb,24); - if(s->entries==-1)goto _eofout; - - if(ov_ilog(s->dim)+ov_ilog(s->entries)>24)goto _eofout; - - /* codeword ordering.... length ordered or unordered? */ - switch((int)oggpack_read(opb,1)){ - case 0:{ - long unused; - /* allocated but unused entries? */ - unused=oggpack_read(opb,1); - if((s->entries*(unused?1:5)+7)>>3>opb->storage-oggpack_bytes(opb)) - goto _eofout; - /* unordered */ - s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries); - - /* allocated but unused entries? */ - if(unused){ - /* yes, unused entries */ - - for(i=0;ientries;i++){ - if(oggpack_read(opb,1)){ - long num=oggpack_read(opb,5); - if(num==-1)goto _eofout; - s->lengthlist[i]=num+1; - }else - s->lengthlist[i]=0; - } - }else{ - /* all entries used; no tagging */ - for(i=0;ientries;i++){ - long num=oggpack_read(opb,5); - if(num==-1)goto _eofout; - s->lengthlist[i]=num+1; - } - } - - break; - } - case 1: - /* ordered */ - { - long length=oggpack_read(opb,5)+1; - if(length==0)goto _eofout; - s->lengthlist=_ogg_malloc(sizeof(*s->lengthlist)*s->entries); - - for(i=0;ientries;){ - long num=oggpack_read(opb,ov_ilog(s->entries-i)); - if(num==-1)goto _eofout; - if(length>32 || num>s->entries-i || - (num>0 && (num-1)>>(length-1)>1)){ - goto _errout; - } - if(length>32)goto _errout; - for(j=0;jlengthlist[i]=length; - length++; - } - } - break; - default: - /* EOF */ - goto _eofout; - } - - /* Do we have a mapping to unpack? */ - switch((s->maptype=oggpack_read(opb,4))){ - case 0: - /* no mapping */ - break; - case 1: case 2: - /* implicitly populated value mapping */ - /* explicitly populated value mapping */ - - s->q_min=oggpack_read(opb,32); - s->q_delta=oggpack_read(opb,32); - s->q_quant=oggpack_read(opb,4)+1; - s->q_sequencep=oggpack_read(opb,1); - if(s->q_sequencep==-1)goto _eofout; - - { - int quantvals=0; - switch(s->maptype){ - case 1: - quantvals=(s->dim==0?0:_book_maptype1_quantvals(s)); - break; - case 2: - quantvals=s->entries*s->dim; - break; - } - - /* quantized values */ - if(((quantvals*s->q_quant+7)>>3)>opb->storage-oggpack_bytes(opb)) - goto _eofout; - s->quantlist=_ogg_malloc(sizeof(*s->quantlist)*quantvals); - for(i=0;iquantlist[i]=oggpack_read(opb,s->q_quant); - - if(quantvals&&s->quantlist[quantvals-1]==-1)goto _eofout; - } - break; - default: - goto _errout; - } - - /* all set */ - return(s); - - _errout: - _eofout: - vorbis_staticbook_destroy(s); - return(NULL); -} - -/* returns the number of bits ************************************************/ -int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b){ - if(a<0 || a>=book->c->entries)return(0); - oggpack_write(b,book->codelist[a],book->c->lengthlist[a]); - return(book->c->lengthlist[a]); -} - -/* the 'eliminate the decode tree' optimization actually requires the - codewords to be MSb first, not LSb. This is an annoying inelegancy - (and one of the first places where carefully thought out design - turned out to be wrong; Vorbis II and future Ogg codecs should go - to an MSb bitpacker), but not actually the huge hit it appears to - be. The first-stage decode table catches most words so that - bitreverse is not in the main execution path. */ - -static ogg_uint32_t bitreverse(ogg_uint32_t x){ - x= ((x>>16)&0x0000ffff) | ((x<<16)&0xffff0000); - x= ((x>> 8)&0x00ff00ff) | ((x<< 8)&0xff00ff00); - x= ((x>> 4)&0x0f0f0f0f) | ((x<< 4)&0xf0f0f0f0); - x= ((x>> 2)&0x33333333) | ((x<< 2)&0xcccccccc); - return((x>> 1)&0x55555555) | ((x<< 1)&0xaaaaaaaa); -} - -STIN long decode_packed_entry_number(codebook *book, oggpack_buffer *b){ - int read=book->dec_maxlength; - long lo,hi; - long lok = oggpack_look(b,book->dec_firsttablen); - - if (lok >= 0) { - long entry = book->dec_firsttable[lok]; - if(entry&0x80000000UL){ - lo=(entry>>15)&0x7fff; - hi=book->used_entries-(entry&0x7fff); - }else{ - oggpack_adv(b, book->dec_codelengths[entry-1]); - return(entry-1); - } - }else{ - lo=0; - hi=book->used_entries; - } - - /* Single entry codebooks use a firsttablen of 1 and a - dec_maxlength of 1. If a single-entry codebook gets here (due to - failure to read one bit above), the next look attempt will also - fail and we'll correctly kick out instead of trying to walk the - underformed tree */ - - lok = oggpack_look(b, read); - - while(lok<0 && read>1) - lok = oggpack_look(b, --read); - if(lok<0)return -1; - - /* bisect search for the codeword in the ordered list */ - { - ogg_uint32_t testword=bitreverse((ogg_uint32_t)lok); - - while(hi-lo>1){ - long p=(hi-lo)>>1; - long test=book->codelist[lo+p]>testword; - lo+=p&(test-1); - hi-=p&(-test); - } - - if(book->dec_codelengths[lo]<=read){ - oggpack_adv(b, book->dec_codelengths[lo]); - return(lo); - } - } - - oggpack_adv(b, read); - - return(-1); -} - -/* Decode side is specced and easier, because we don't need to find - matches using different criteria; we simply read and map. There are - two things we need to do 'depending': - - We may need to support interleave. We don't really, but it's - convenient to do it here rather than rebuild the vector later. - - Cascades may be additive or multiplicitive; this is not inherent in - the codebook, but set in the code using the codebook. Like - interleaving, it's easiest to do it here. - addmul==0 -> declarative (set the value) - addmul==1 -> additive - addmul==2 -> multiplicitive */ - -/* returns the [original, not compacted] entry number or -1 on eof *********/ -long vorbis_book_decode(codebook *book, oggpack_buffer *b){ - if(book->used_entries>0){ - long packed_entry=decode_packed_entry_number(book,b); - if(packed_entry>=0) - return(book->dec_index[packed_entry]); - } - - /* if there's no dec_index, the codebook unpacking isn't collapsed */ - return(-1); -} - -/* returns 0 on OK or -1 on eof *************************************/ -/* decode vector / dim granularity gaurding is done in the upper layer */ -long vorbis_book_decodevs_add(codebook *book,float *a,oggpack_buffer *b,int n){ - if(book->used_entries>0){ - int step=n/book->dim; - long *entry = alloca(sizeof(*entry)*step); - float **t = alloca(sizeof(*t)*step); - int i,j,o; - - for (i = 0; i < step; i++) { - entry[i]=decode_packed_entry_number(book,b); - if(entry[i]==-1)return(-1); - t[i] = book->valuelist+entry[i]*book->dim; - } - for(i=0,o=0;idim;i++,o+=step) - for (j=0;o+jused_entries>0){ - int i,j,entry; - float *t; - - for(i=0;ivaluelist+entry*book->dim; - for(j=0;idim;) - a[i++]+=t[j++]; - } - } - return(0); -} - -/* unlike the others, we guard against n not being an integer number - of internally rather than in the upper layer (called only by - floor0) */ -long vorbis_book_decodev_set(codebook *book,float *a,oggpack_buffer *b,int n){ - if(book->used_entries>0){ - int i,j,entry; - float *t; - - for(i=0;ivaluelist+entry*book->dim; - for (j=0;idim;){ - a[i++]=t[j++]; - } - } - }else{ - int i; - - for(i=0;iused_entries>0){ - int m=(offset+n)/ch; - for(i=offset/ch;ivaluelist+entry*book->dim; - for (j=0;idim;j++){ - a[chptr++][i]+=t[j]; - if(chptr==ch){ - chptr=0; - i++; - } - } - } - } - } - return(0); -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codebook.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codebook.h deleted file mode 100644 index 08440c69..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codebook.h +++ /dev/null @@ -1,117 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: basic shared codebook operations - - ********************************************************************/ - -#ifndef _V_CODEBOOK_H_ -#define _V_CODEBOOK_H_ - -#include - -/* This structure encapsulates huffman and VQ style encoding books; it - doesn't do anything specific to either. - - valuelist/quantlist are nonNULL (and q_* significant) only if - there's entry->value mapping to be done. - - If encode-side mapping must be done (and thus the entry needs to be - hunted), the auxiliary encode pointer will point to a decision - tree. This is true of both VQ and huffman, but is mostly useful - with VQ. - -*/ - -typedef struct static_codebook{ - long dim; /* codebook dimensions (elements per vector) */ - long entries; /* codebook entries */ - char *lengthlist; /* codeword lengths in bits */ - - /* mapping ***************************************************************/ - int maptype; /* 0=none - 1=implicitly populated values from map column - 2=listed arbitrary values */ - - /* The below does a linear, single monotonic sequence mapping. */ - long q_min; /* packed 32 bit float; quant value 0 maps to minval */ - long q_delta; /* packed 32 bit float; val 1 - val 0 == delta */ - int q_quant; /* bits: 0 < quant <= 16 */ - int q_sequencep; /* bitflag */ - - long *quantlist; /* map == 1: (int)(entries^(1/dim)) element column map - map == 2: list of dim*entries quantized entry vals - */ - int allocedp; -} static_codebook; - -typedef struct codebook{ - long dim; /* codebook dimensions (elements per vector) */ - long entries; /* codebook entries */ - long used_entries; /* populated codebook entries */ - const static_codebook *c; - - /* for encode, the below are entry-ordered, fully populated */ - /* for decode, the below are ordered by bitreversed codeword and only - used entries are populated */ - float *valuelist; /* list of dim*entries actual entry values */ - ogg_uint32_t *codelist; /* list of bitstream codewords for each entry */ - - int *dec_index; /* only used if sparseness collapsed */ - char *dec_codelengths; - ogg_uint32_t *dec_firsttable; - int dec_firsttablen; - int dec_maxlength; - - /* The current encoder uses only centered, integer-only lattice books. */ - int quantvals; - int minval; - int delta; -} codebook; - -extern void vorbis_staticbook_destroy(static_codebook *b); -extern int vorbis_book_init_encode(codebook *dest,const static_codebook *source); -extern int vorbis_book_init_decode(codebook *dest,const static_codebook *source); -extern void vorbis_book_clear(codebook *b); - -extern float *_book_unquantize(const static_codebook *b,int n,int *map); -extern float *_book_logdist(const static_codebook *b,float *vals); -extern float _float32_unpack(long val); -extern long _float32_pack(float val); -extern int _best(codebook *book, float *a, int step); -extern long _book_maptype1_quantvals(const static_codebook *b); - -extern int vorbis_book_besterror(codebook *book,float *a,int step,int addmul); -extern long vorbis_book_codeword(codebook *book,int entry); -extern long vorbis_book_codelen(codebook *book,int entry); - - - -extern int vorbis_staticbook_pack(const static_codebook *c,oggpack_buffer *b); -extern static_codebook *vorbis_staticbook_unpack(oggpack_buffer *b); - -extern int vorbis_book_encode(codebook *book, int a, oggpack_buffer *b); - -extern long vorbis_book_decode(codebook *book, oggpack_buffer *b); -extern long vorbis_book_decodevs_add(codebook *book, float *a, - oggpack_buffer *b,int n); -extern long vorbis_book_decodev_set(codebook *book, float *a, - oggpack_buffer *b,int n); -extern long vorbis_book_decodev_add(codebook *book, float *a, - oggpack_buffer *b,int n); -extern long vorbis_book_decodevv_add(codebook *book, float **a, - long off,int ch, - oggpack_buffer *b,int n); - - - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codec.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codec.h deleted file mode 100644 index 42aa2913..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codec.h +++ /dev/null @@ -1,242 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2001 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - - ******************************************************************** - - function: libvorbis codec headers - - ********************************************************************/ - -#ifndef _vorbis_codec_h_ -#define _vorbis_codec_h_ - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#include - -typedef struct vorbis_info{ - int version; - int channels; - long rate; - - /* The below bitrate declarations are *hints*. - Combinations of the three values carry the following implications: - - all three set to the same value: - implies a fixed rate bitstream - only nominal set: - implies a VBR stream that averages the nominal bitrate. No hard - upper/lower limit - upper and or lower set: - implies a VBR bitstream that obeys the bitrate limits. nominal - may also be set to give a nominal rate. - none set: - the coder does not care to speculate. - */ - - long bitrate_upper; - long bitrate_nominal; - long bitrate_lower; - long bitrate_window; - - void *codec_setup; -} vorbis_info; - -/* vorbis_dsp_state buffers the current vorbis audio - analysis/synthesis state. The DSP state belongs to a specific - logical bitstream ****************************************************/ -typedef struct vorbis_dsp_state{ - int analysisp; - vorbis_info *vi; - - float **pcm; - float **pcmret; - int pcm_storage; - int pcm_current; - int pcm_returned; - - int preextrapolate; - int eofflag; - - long lW; - long W; - long nW; - long centerW; - - ogg_int64_t granulepos; - ogg_int64_t sequence; - - ogg_int64_t glue_bits; - ogg_int64_t time_bits; - ogg_int64_t floor_bits; - ogg_int64_t res_bits; - - void *backend_state; -} vorbis_dsp_state; - -typedef struct vorbis_block{ - /* necessary stream state for linking to the framing abstraction */ - float **pcm; /* this is a pointer into local storage */ - oggpack_buffer opb; - - long lW; - long W; - long nW; - int pcmend; - int mode; - - int eofflag; - ogg_int64_t granulepos; - ogg_int64_t sequence; - vorbis_dsp_state *vd; /* For read-only access of configuration */ - - /* local storage to avoid remallocing; it's up to the mapping to - structure it */ - void *localstore; - long localtop; - long localalloc; - long totaluse; - struct alloc_chain *reap; - - /* bitmetrics for the frame */ - long glue_bits; - long time_bits; - long floor_bits; - long res_bits; - - void *internal; - -} vorbis_block; - -/* vorbis_block is a single block of data to be processed as part of -the analysis/synthesis stream; it belongs to a specific logical -bitstream, but is independent from other vorbis_blocks belonging to -that logical bitstream. *************************************************/ - -struct alloc_chain{ - void *ptr; - struct alloc_chain *next; -}; - -/* vorbis_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). vorbis_info and substructures are in backends.h. -*********************************************************************/ - -/* the comments are not part of vorbis_info so that vorbis_info can be - static storage */ -typedef struct vorbis_comment{ - /* unlimited user comment fields. libvorbis writes 'libvorbis' - whatever vendor is set to in encode */ - char **user_comments; - int *comment_lengths; - int comments; - char *vendor; - -} vorbis_comment; - - -/* libvorbis encodes in two abstraction layers; first we perform DSP - and produce a packet (see docs/analysis.txt). The packet is then - coded into a framed OggSquish bitstream by the second layer (see - docs/framing.txt). Decode is the reverse process; we sync/frame - the bitstream and extract individual packets, then decode the - packet back into PCM audio. - - The extra framing/packetizing is used in streaming formats, such as - files. Over the net (such as with UDP), the framing and - packetization aren't necessary as they're provided by the transport - and the streaming layer is not used */ - -/* Vorbis PRIMITIVES: general ***************************************/ - -extern void vorbis_info_init(vorbis_info *vi); -extern void vorbis_info_clear(vorbis_info *vi); -extern int vorbis_info_blocksize(vorbis_info *vi,int zo); -extern void vorbis_comment_init(vorbis_comment *vc); -extern void vorbis_comment_add(vorbis_comment *vc, const char *comment); -extern void vorbis_comment_add_tag(vorbis_comment *vc, - const char *tag, const char *contents); -extern char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count); -extern int vorbis_comment_query_count(vorbis_comment *vc, const char *tag); -extern void vorbis_comment_clear(vorbis_comment *vc); - -extern int vorbis_block_init(vorbis_dsp_state *v, vorbis_block *vb); -extern int vorbis_block_clear(vorbis_block *vb); -extern void vorbis_dsp_clear(vorbis_dsp_state *v); -extern double vorbis_granule_time(vorbis_dsp_state *v, - ogg_int64_t granulepos); - -extern const char *vorbis_version_string(void); - -/* Vorbis PRIMITIVES: analysis/DSP layer ****************************/ - -extern int vorbis_analysis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_commentheader_out(vorbis_comment *vc, ogg_packet *op); -extern int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code); -extern float **vorbis_analysis_buffer(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_wrote(vorbis_dsp_state *v,int vals); -extern int vorbis_analysis_blockout(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_analysis(vorbis_block *vb,ogg_packet *op); - -extern int vorbis_bitrate_addblock(vorbis_block *vb); -extern int vorbis_bitrate_flushpacket(vorbis_dsp_state *vd, - ogg_packet *op); - -/* Vorbis PRIMITIVES: synthesis layer *******************************/ -extern int vorbis_synthesis_idheader(ogg_packet *op); -extern int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc, - ogg_packet *op); - -extern int vorbis_synthesis_init(vorbis_dsp_state *v,vorbis_info *vi); -extern int vorbis_synthesis_restart(vorbis_dsp_state *v); -extern int vorbis_synthesis(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op); -extern int vorbis_synthesis_blockin(vorbis_dsp_state *v,vorbis_block *vb); -extern int vorbis_synthesis_pcmout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_lapout(vorbis_dsp_state *v,float ***pcm); -extern int vorbis_synthesis_read(vorbis_dsp_state *v,int samples); -extern long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op); - -extern int vorbis_synthesis_halfrate(vorbis_info *v,int flag); -extern int vorbis_synthesis_halfrate_p(vorbis_info *v); - -/* Vorbis ERRORS and return codes ***********************************/ - -#define OV_FALSE -1 -#define OV_EOF -2 -#define OV_HOLE -3 - -#define OV_EREAD -128 -#define OV_EFAULT -129 -#define OV_EIMPL -130 -#define OV_EINVAL -131 -#define OV_ENOTVORBIS -132 -#define OV_EBADHEADER -133 -#define OV_EVERSION -134 -#define OV_ENOTAUDIO -135 -#define OV_EBADPACKET -136 -#define OV_EBADLINK -137 -#define OV_ENOSEEK -138 - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codec_internal.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codec_internal.h deleted file mode 100644 index e522be18..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/codec_internal.h +++ /dev/null @@ -1,166 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: libvorbis codec headers - - ********************************************************************/ - -#ifndef _V_CODECI_H_ -#define _V_CODECI_H_ - -#include "envelope.h" -#include "codebook.h" - -#define BLOCKTYPE_IMPULSE 0 -#define BLOCKTYPE_PADDING 1 -#define BLOCKTYPE_TRANSITION 0 -#define BLOCKTYPE_LONG 1 - -#define PACKETBLOBS 15 - -typedef struct vorbis_block_internal{ - float **pcmdelay; /* this is a pointer into local storage */ - float ampmax; - int blocktype; - - oggpack_buffer *packetblob[PACKETBLOBS]; /* initialized, must be freed; - blob [PACKETBLOBS/2] points to - the oggpack_buffer in the - main vorbis_block */ -} vorbis_block_internal; - -typedef void vorbis_look_floor; -typedef void vorbis_look_residue; -typedef void vorbis_look_transform; - -/* mode ************************************************************/ -typedef struct { - int blockflag; - int windowtype; - int transformtype; - int mapping; -} vorbis_info_mode; - -typedef void vorbis_info_floor; -typedef void vorbis_info_residue; -typedef void vorbis_info_mapping; - -#include "psy.h" -#include "bitrate.h" - -typedef struct private_state { - /* local lookup storage */ - envelope_lookup *ve; /* envelope lookup */ - int window[2]; - vorbis_look_transform **transform[2]; /* block, type */ - drft_lookup fft_look[2]; - - int modebits; - vorbis_look_floor **flr; - vorbis_look_residue **residue; - vorbis_look_psy *psy; - vorbis_look_psy_global *psy_g_look; - - /* local storage, only used on the encoding side. This way the - application does not need to worry about freeing some packets' - memory and not others'; packet storage is always tracked. - Cleared next call to a _dsp_ function */ - unsigned char *header; - unsigned char *header1; - unsigned char *header2; - - bitrate_manager_state bms; - - ogg_int64_t sample_count; -} private_state; - -/* codec_setup_info contains all the setup information specific to the - specific compression/decompression mode in progress (eg, - psychoacoustic settings, channel setup, options, codebook - etc). -*********************************************************************/ - -#include "highlevel.h" -typedef struct codec_setup_info { - - /* Vorbis supports only short and long blocks, but allows the - encoder to choose the sizes */ - - long blocksizes[2]; - - /* modes are the primary means of supporting on-the-fly different - blocksizes, different channel mappings (LR or M/A), - different residue backends, etc. Each mode consists of a - blocksize flag and a mapping (along with the mapping setup */ - - int modes; - int maps; - int floors; - int residues; - int books; - int psys; /* encode only */ - - vorbis_info_mode *mode_param[64]; - int map_type[64]; - vorbis_info_mapping *map_param[64]; - int floor_type[64]; - vorbis_info_floor *floor_param[64]; - int residue_type[64]; - vorbis_info_residue *residue_param[64]; - static_codebook *book_param[256]; - codebook *fullbooks; - - vorbis_info_psy *psy_param[4]; /* encode only */ - vorbis_info_psy_global psy_g_param; - - bitrate_manager_info bi; - highlevel_encode_setup hi; /* used only by vorbisenc.c. It's a - highly redundant structure, but - improves clarity of program flow. */ - int halfrate_flag; /* painless downsample for decode */ -} codec_setup_info; - -extern vorbis_look_psy_global *_vp_global_look(vorbis_info *vi); -extern void _vp_global_free(vorbis_look_psy_global *look); - - - -typedef struct { - int sorted_index[VIF_POSIT+2]; - int forward_index[VIF_POSIT+2]; - int reverse_index[VIF_POSIT+2]; - - int hineighbor[VIF_POSIT]; - int loneighbor[VIF_POSIT]; - int posts; - - int n; - int quant_q; - vorbis_info_floor1 *vi; - - long phrasebits; - long postbits; - long frames; -} vorbis_look_floor1; - - - -extern int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, - const float *logmdct, /* in */ - const float *logmask); -extern int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look, - int *A,int *B, - int del); -extern int floor1_encode(oggpack_buffer *opb,vorbis_block *vb, - vorbis_look_floor1 *look, - int *post,int *ilogmask); -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/envelope.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/envelope.c deleted file mode 100644 index da752375..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/envelope.c +++ /dev/null @@ -1,374 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: PCM data envelope analysis - - ********************************************************************/ - -#include -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" - -#include "os.h" -#include "scales.h" -#include "envelope.h" -#include "mdct.h" -#include "misc.h" - -void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *gi=&ci->psy_g_param; - int ch=vi->channels; - int i,j; - int n=e->winlength=128; - e->searchstep=64; /* not random */ - - e->minenergy=gi->preecho_minenergy; - e->ch=ch; - e->storage=128; - e->cursor=ci->blocksizes[1]/2; - e->mdct_win=_ogg_calloc(n,sizeof(*e->mdct_win)); - mdct_init(&e->mdct,n); - - for(i=0;imdct_win[i]=sin(i/(n-1.)*M_PI); - e->mdct_win[i]*=e->mdct_win[i]; - } - - /* magic follows */ - e->band[0].begin=2; e->band[0].end=4; - e->band[1].begin=4; e->band[1].end=5; - e->band[2].begin=6; e->band[2].end=6; - e->band[3].begin=9; e->band[3].end=8; - e->band[4].begin=13; e->band[4].end=8; - e->band[5].begin=17; e->band[5].end=8; - e->band[6].begin=22; e->band[6].end=8; - - for(j=0;jband[j].end; - e->band[j].window=_ogg_malloc(n*sizeof(*e->band[0].window)); - for(i=0;iband[j].window[i]=sin((i+.5)/n*M_PI); - e->band[j].total+=e->band[j].window[i]; - } - e->band[j].total=1./e->band[j].total; - } - - e->filter=_ogg_calloc(VE_BANDS*ch,sizeof(*e->filter)); - e->mark=_ogg_calloc(e->storage,sizeof(*e->mark)); - -} - -void _ve_envelope_clear(envelope_lookup *e){ - int i; - mdct_clear(&e->mdct); - for(i=0;iband[i].window); - _ogg_free(e->mdct_win); - _ogg_free(e->filter); - _ogg_free(e->mark); - memset(e,0,sizeof(*e)); -} - -/* fairly straight threshhold-by-band based until we find something - that works better and isn't patented. */ - -static int _ve_amp(envelope_lookup *ve, - vorbis_info_psy_global *gi, - float *data, - envelope_band *bands, - envelope_filter_state *filters){ - long n=ve->winlength; - int ret=0; - long i,j; - float decay; - - /* we want to have a 'minimum bar' for energy, else we're just - basing blocks on quantization noise that outweighs the signal - itself (for low power signals) */ - - float minV=ve->minenergy; - float *vec=alloca(n*sizeof(*vec)); - - /* stretch is used to gradually lengthen the number of windows - considered prevoius-to-potential-trigger */ - int stretch=max(VE_MINSTRETCH,ve->stretch/2); - float penalty=gi->stretch_penalty-(ve->stretch/2-VE_MINSTRETCH); - if(penalty<0.f)penalty=0.f; - if(penalty>gi->stretch_penalty)penalty=gi->stretch_penalty; - - /*_analysis_output_always("lpcm",seq2,data,n,0,0, - totalshift+pos*ve->searchstep);*/ - - /* window and transform */ - for(i=0;imdct_win[i]; - mdct_forward(&ve->mdct,vec,vec); - - /*_analysis_output_always("mdct",seq2,vec,n/2,0,1,0); */ - - /* near-DC spreading function; this has nothing to do with - psychoacoustics, just sidelobe leakage and window size */ - { - float temp=vec[0]*vec[0]+.7*vec[1]*vec[1]+.2*vec[2]*vec[2]; - int ptr=filters->nearptr; - - /* the accumulation is regularly refreshed from scratch to avoid - floating point creep */ - if(ptr==0){ - decay=filters->nearDC_acc=filters->nearDC_partialacc+temp; - filters->nearDC_partialacc=temp; - }else{ - decay=filters->nearDC_acc+=temp; - filters->nearDC_partialacc+=temp; - } - filters->nearDC_acc-=filters->nearDC[ptr]; - filters->nearDC[ptr]=temp; - - decay*=(1./(VE_NEARDC+1)); - filters->nearptr++; - if(filters->nearptr>=VE_NEARDC)filters->nearptr=0; - decay=todB(&decay)*.5-15.f; - } - - /* perform spreading and limiting, also smooth the spectrum. yes, - the MDCT results in all real coefficients, but it still *behaves* - like real/imaginary pairs */ - for(i=0;i>1]=val; - decay-=8.; - } - - /*_analysis_output_always("spread",seq2++,vec,n/4,0,0,0);*/ - - /* perform preecho/postecho triggering by band */ - for(j=0;j=VE_AMP)filters[j].ampptr=0; - } - - /* look at min/max, decide trigger */ - if(valmax>gi->preecho_thresh[j]+penalty){ - ret|=1; - ret|=4; - } - if(valminpostecho_thresh[j]-penalty)ret|=2; - } - - return(ret); -} - -#if 0 -static int seq=0; -static ogg_int64_t totalshift=-1024; -#endif - -long _ve_envelope_search(vorbis_dsp_state *v){ - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *gi=&ci->psy_g_param; - envelope_lookup *ve=((private_state *)(v->backend_state))->ve; - long i,j; - - int first=ve->current/ve->searchstep; - int last=v->pcm_current/ve->searchstep-VE_WIN; - if(first<0)first=0; - - /* make sure we have enough storage to match the PCM */ - if(last+VE_WIN+VE_POST>ve->storage){ - ve->storage=last+VE_WIN+VE_POST; /* be sure */ - ve->mark=_ogg_realloc(ve->mark,ve->storage*sizeof(*ve->mark)); - } - - for(j=first;jstretch++; - if(ve->stretch>VE_MAXSTRETCH*2) - ve->stretch=VE_MAXSTRETCH*2; - - for(i=0;ich;i++){ - float *pcm=v->pcm[i]+ve->searchstep*(j); - ret|=_ve_amp(ve,gi,pcm,ve->band,ve->filter+i*VE_BANDS); - } - - ve->mark[j+VE_POST]=0; - if(ret&1){ - ve->mark[j]=1; - ve->mark[j+1]=1; - } - - if(ret&2){ - ve->mark[j]=1; - if(j>0)ve->mark[j-1]=1; - } - - if(ret&4)ve->stretch=-1; - } - - ve->current=last*ve->searchstep; - - { - long centerW=v->centerW; - long testW= - centerW+ - ci->blocksizes[v->W]/4+ - ci->blocksizes[1]/2+ - ci->blocksizes[0]/4; - - j=ve->cursor; - - while(jcurrent-(ve->searchstep)){/* account for postecho - working back one window */ - if(j>=testW)return(1); - - ve->cursor=j; - - if(ve->mark[j/ve->searchstep]){ - if(j>centerW){ - -#if 0 - if(j>ve->curmark){ - float *marker=alloca(v->pcm_current*sizeof(*marker)); - int l,m; - memset(marker,0,sizeof(*marker)*v->pcm_current); - fprintf(stderr,"mark! seq=%d, cursor:%fs time:%fs\n", - seq, - (totalshift+ve->cursor)/44100., - (totalshift+j)/44100.); - _analysis_output_always("pcmL",seq,v->pcm[0],v->pcm_current,0,0,totalshift); - _analysis_output_always("pcmR",seq,v->pcm[1],v->pcm_current,0,0,totalshift); - - _analysis_output_always("markL",seq,v->pcm[0],j,0,0,totalshift); - _analysis_output_always("markR",seq,v->pcm[1],j,0,0,totalshift); - - for(m=0;msearchstep]=ve->filter[m].markers[l]*.1; - _analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); - } - - for(m=0;msearchstep]=ve->filter[m+VE_BANDS].markers[l]*.1; - _analysis_output_always(buf,seq,marker,v->pcm_current,0,0,totalshift); - } - - for(l=0;lsearchstep]=ve->mark[l]*.4; - _analysis_output_always("mark",seq,marker,v->pcm_current,0,0,totalshift); - - - seq++; - - } -#endif - - ve->curmark=j; - if(j>=testW)return(1); - return(0); - } - } - j+=ve->searchstep; - } - } - - return(-1); -} - -int _ve_envelope_mark(vorbis_dsp_state *v){ - envelope_lookup *ve=((private_state *)(v->backend_state))->ve; - vorbis_info *vi=v->vi; - codec_setup_info *ci=vi->codec_setup; - long centerW=v->centerW; - long beginW=centerW-ci->blocksizes[v->W]/4; - long endW=centerW+ci->blocksizes[v->W]/4; - if(v->W){ - beginW-=ci->blocksizes[v->lW]/4; - endW+=ci->blocksizes[v->nW]/4; - }else{ - beginW-=ci->blocksizes[0]/4; - endW+=ci->blocksizes[0]/4; - } - - if(ve->curmark>=beginW && ve->curmarksearchstep; - long last=endW/ve->searchstep; - long i; - for(i=first;imark[i])return(1); - } - return(0); -} - -void _ve_envelope_shift(envelope_lookup *e,long shift){ - int smallsize=e->current/e->searchstep+VE_POST; /* adjust for placing marks - ahead of ve->current */ - int smallshift=shift/e->searchstep; - - memmove(e->mark,e->mark+smallshift,(smallsize-smallshift)*sizeof(*e->mark)); - -#if 0 - for(i=0;ich;i++) - memmove(e->filter[i].markers, - e->filter[i].markers+smallshift, - (1024-smallshift)*sizeof(*(*e->filter).markers)); - totalshift+=shift; -#endif - - e->current-=shift; - if(e->curmark>=0) - e->curmark-=shift; - e->cursor-=shift; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/envelope.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/envelope.h deleted file mode 100644 index f466efde..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/envelope.h +++ /dev/null @@ -1,79 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: PCM data envelope analysis and manipulation - - ********************************************************************/ - -#ifndef _V_ENVELOPE_ -#define _V_ENVELOPE_ - -#include "mdct.h" - -#define VE_PRE 16 -#define VE_WIN 4 -#define VE_POST 2 -#define VE_AMP (VE_PRE+VE_POST-1) - -#define VE_BANDS 7 -#define VE_NEARDC 15 - -#define VE_MINSTRETCH 2 /* a bit less than short block */ -#define VE_MAXSTRETCH 12 /* one-third full block */ - -typedef struct { - float ampbuf[VE_AMP]; - int ampptr; - - float nearDC[VE_NEARDC]; - float nearDC_acc; - float nearDC_partialacc; - int nearptr; - -} envelope_filter_state; - -typedef struct { - int begin; - int end; - float *window; - float total; -} envelope_band; - -typedef struct { - int ch; - int winlength; - int searchstep; - float minenergy; - - mdct_lookup mdct; - float *mdct_win; - - envelope_band band[VE_BANDS]; - envelope_filter_state *filter; - int stretch; - - int *mark; - - long storage; - long current; - long curmark; - long cursor; -} envelope_lookup; - -extern void _ve_envelope_init(envelope_lookup *e,vorbis_info *vi); -extern void _ve_envelope_clear(envelope_lookup *e); -extern long _ve_envelope_search(vorbis_dsp_state *v); -extern void _ve_envelope_shift(envelope_lookup *e,long shift); -extern int _ve_envelope_mark(vorbis_dsp_state *v); - - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/floor0.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/floor0.c deleted file mode 100644 index 443c0e5a..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/floor0.c +++ /dev/null @@ -1,223 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: floor backend 0 implementation - - ********************************************************************/ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "lpc.h" -#include "lsp.h" -#include "codebook.h" -#include "scales.h" -#include "misc.h" -#include "os.h" - -#include "misc.h" -#include - -typedef struct { - int ln; - int m; - int **linearmap; - int n[2]; - - vorbis_info_floor0 *vi; - - long bits; - long frames; -} vorbis_look_floor0; - - -/***********************************************/ - -static void floor0_free_info(vorbis_info_floor *i){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - if(info){ - memset(info,0,sizeof(*info)); - _ogg_free(info); - } -} - -static void floor0_free_look(vorbis_look_floor *i){ - vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; - if(look){ - - if(look->linearmap){ - - if(look->linearmap[0])_ogg_free(look->linearmap[0]); - if(look->linearmap[1])_ogg_free(look->linearmap[1]); - - _ogg_free(look->linearmap); - } - memset(look,0,sizeof(*look)); - _ogg_free(look); - } -} - -static vorbis_info_floor *floor0_unpack (vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - int j; - - vorbis_info_floor0 *info=_ogg_malloc(sizeof(*info)); - info->order=oggpack_read(opb,8); - info->rate=oggpack_read(opb,16); - info->barkmap=oggpack_read(opb,16); - info->ampbits=oggpack_read(opb,6); - info->ampdB=oggpack_read(opb,8); - info->numbooks=oggpack_read(opb,4)+1; - - if(info->order<1)goto err_out; - if(info->rate<1)goto err_out; - if(info->barkmap<1)goto err_out; - if(info->numbooks<1)goto err_out; - - for(j=0;jnumbooks;j++){ - info->books[j]=oggpack_read(opb,8); - if(info->books[j]<0 || info->books[j]>=ci->books)goto err_out; - if(ci->book_param[info->books[j]]->maptype==0)goto err_out; - if(ci->book_param[info->books[j]]->dim<1)goto err_out; - } - return(info); - - err_out: - floor0_free_info(info); - return(NULL); -} - -/* initialize Bark scale and normalization lookups. We could do this - with static tables, but Vorbis allows a number of possible - combinations, so it's best to do it computationally. - - The below is authoritative in terms of defining scale mapping. - Note that the scale depends on the sampling rate as well as the - linear block and mapping sizes */ - -static void floor0_map_lazy_init(vorbis_block *vb, - vorbis_info_floor *infoX, - vorbis_look_floor0 *look){ - if(!look->linearmap[vb->W]){ - vorbis_dsp_state *vd=vb->vd; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_floor0 *info=(vorbis_info_floor0 *)infoX; - int W=vb->W; - int n=ci->blocksizes[W]/2,j; - - /* we choose a scaling constant so that: - floor(bark(rate/2-1)*C)=mapped-1 - floor(bark(rate/2)*C)=mapped */ - float scale=look->ln/toBARK(info->rate/2.f); - - /* the mapping from a linear scale to a smaller bark scale is - straightforward. We do *not* make sure that the linear mapping - does not skip bark-scale bins; the decoder simply skips them and - the encoder may do what it wishes in filling them. They're - necessary in some mapping combinations to keep the scale spacing - accurate */ - look->linearmap[W]=_ogg_malloc((n+1)*sizeof(**look->linearmap)); - for(j=0;jrate/2.f)/n*j) - *scale); /* bark numbers represent band edges */ - if(val>=look->ln)val=look->ln-1; /* guard against the approximation */ - look->linearmap[W][j]=val; - } - look->linearmap[W][j]=-1; - look->n[W]=n; - } -} - -static vorbis_look_floor *floor0_look(vorbis_dsp_state *vd, - vorbis_info_floor *i){ - vorbis_info_floor0 *info=(vorbis_info_floor0 *)i; - vorbis_look_floor0 *look=_ogg_calloc(1,sizeof(*look)); - - (void)vd; - - look->m=info->order; - look->ln=info->barkmap; - look->vi=info; - - look->linearmap=_ogg_calloc(2,sizeof(*look->linearmap)); - - return look; -} - -static void *floor0_inverse1(vorbis_block *vb,vorbis_look_floor *i){ - vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; - vorbis_info_floor0 *info=look->vi; - int j,k; - - int ampraw=oggpack_read(&vb->opb,info->ampbits); - if(ampraw>0){ /* also handles the -1 out of data case */ - long maxval=(1<ampbits)-1; - float amp=(float)ampraw/maxval*info->ampdB; - int booknum=oggpack_read(&vb->opb,ov_ilog(info->numbooks)); - - if(booknum!=-1 && booknumnumbooks){ /* be paranoid */ - codec_setup_info *ci=vb->vd->vi->codec_setup; - codebook *b=ci->fullbooks+info->books[booknum]; - float last=0.f; - - /* the additional b->dim is a guard against any possible stack - smash; b->dim is provably more than we can overflow the - vector */ - float *lsp=_vorbis_block_alloc(vb,sizeof(*lsp)*(look->m+b->dim+1)); - - if(vorbis_book_decodev_set(b,lsp,&vb->opb,look->m)==-1)goto eop; - for(j=0;jm;){ - for(k=0;jm && kdim;k++,j++)lsp[j]+=last; - last=lsp[j-1]; - } - - lsp[look->m]=amp; - return(lsp); - } - } - eop: - return(NULL); -} - -static int floor0_inverse2(vorbis_block *vb,vorbis_look_floor *i, - void *memo,float *out){ - vorbis_look_floor0 *look=(vorbis_look_floor0 *)i; - vorbis_info_floor0 *info=look->vi; - - floor0_map_lazy_init(vb,info,look); - - if(memo){ - float *lsp=(float *)memo; - float amp=lsp[look->m]; - - /* take the coefficients back to a spectral envelope curve */ - vorbis_lsp_to_curve(out, - look->linearmap[vb->W], - look->n[vb->W], - look->ln, - lsp,look->m,amp,(float)info->ampdB); - return(1); - } - memset(out,0,sizeof(*out)*look->n[vb->W]); - return(0); -} - -/* export hooks */ -const vorbis_func_floor floor0_exportbundle={ - NULL,&floor0_unpack,&floor0_look,&floor0_free_info, - &floor0_free_look,&floor0_inverse1,&floor0_inverse2 -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/floor1.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/floor1.c deleted file mode 100644 index 673e954c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/floor1.c +++ /dev/null @@ -1,1086 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: floor backend 1 implementation - - ********************************************************************/ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "codebook.h" -#include "misc.h" -#include "scales.h" - -#include - -#define floor1_rangedB 140 /* floor 1 fixed at -140dB to 0dB range */ - -typedef struct lsfit_acc{ - int x0; - int x1; - - int xa; - int ya; - int x2a; - int y2a; - int xya; - int an; - - int xb; - int yb; - int x2b; - int y2b; - int xyb; - int bn; -} lsfit_acc; - -/***********************************************/ - -static void floor1_free_info(vorbis_info_floor *i){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; - if(info){ - memset(info,0,sizeof(*info)); - _ogg_free(info); - } -} - -static void floor1_free_look(vorbis_look_floor *i){ - vorbis_look_floor1 *look=(vorbis_look_floor1 *)i; - if(look){ - /*fprintf(stderr,"floor 1 bit usage %f:%f (%f total)\n", - (float)look->phrasebits/look->frames, - (float)look->postbits/look->frames, - (float)(look->postbits+look->phrasebits)/look->frames);*/ - - memset(look,0,sizeof(*look)); - _ogg_free(look); - } -} - -static void floor1_pack (vorbis_info_floor *i,oggpack_buffer *opb){ - vorbis_info_floor1 *info=(vorbis_info_floor1 *)i; - int j,k; - int count=0; - int rangebits; - int maxposit=info->postlist[1]; - int maxclass=-1; - - /* save out partitions */ - oggpack_write(opb,info->partitions,5); /* only 0 to 31 legal */ - for(j=0;jpartitions;j++){ - oggpack_write(opb,info->partitionclass[j],4); /* only 0 to 15 legal */ - if(maxclasspartitionclass[j])maxclass=info->partitionclass[j]; - } - - /* save out partition classes */ - for(j=0;jclass_dim[j]-1,3); /* 1 to 8 */ - oggpack_write(opb,info->class_subs[j],2); /* 0 to 3 */ - if(info->class_subs[j])oggpack_write(opb,info->class_book[j],8); - for(k=0;k<(1<class_subs[j]);k++) - oggpack_write(opb,info->class_subbook[j][k]+1,8); - } - - /* save out the post list */ - oggpack_write(opb,info->mult-1,2); /* only 1,2,3,4 legal now */ - /* maxposit cannot legally be less than 1; this is encode-side, we - can assume our setup is OK */ - oggpack_write(opb,ov_ilog(maxposit-1),4); - rangebits=ov_ilog(maxposit-1); - - for(j=0,k=0;jpartitions;j++){ - count+=info->class_dim[info->partitionclass[j]]; - for(;kpostlist[k+2],rangebits); - } -} - -static int icomp(const void *a,const void *b){ - return(**(int **)a-**(int **)b); -} - -static vorbis_info_floor *floor1_unpack (vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - int j,k,count=0,maxclass=-1,rangebits; - - vorbis_info_floor1 *info=_ogg_calloc(1,sizeof(*info)); - /* read partitions */ - info->partitions=oggpack_read(opb,5); /* only 0 to 31 legal */ - for(j=0;jpartitions;j++){ - info->partitionclass[j]=oggpack_read(opb,4); /* only 0 to 15 legal */ - if(info->partitionclass[j]<0)goto err_out; - if(maxclasspartitionclass[j])maxclass=info->partitionclass[j]; - } - - /* read partition classes */ - for(j=0;jclass_dim[j]=oggpack_read(opb,3)+1; /* 1 to 8 */ - info->class_subs[j]=oggpack_read(opb,2); /* 0,1,2,3 bits */ - if(info->class_subs[j]<0) - goto err_out; - if(info->class_subs[j])info->class_book[j]=oggpack_read(opb,8); - if(info->class_book[j]<0 || info->class_book[j]>=ci->books) - goto err_out; - for(k=0;k<(1<class_subs[j]);k++){ - info->class_subbook[j][k]=oggpack_read(opb,8)-1; - if(info->class_subbook[j][k]<-1 || info->class_subbook[j][k]>=ci->books) - goto err_out; - } - } - - /* read the post list */ - info->mult=oggpack_read(opb,2)+1; /* only 1,2,3,4 legal now */ - rangebits=oggpack_read(opb,4); - if(rangebits<0)goto err_out; - - for(j=0,k=0;jpartitions;j++){ - count+=info->class_dim[info->partitionclass[j]]; - if(count>VIF_POSIT) goto err_out; - for(;kpostlist[k+2]=oggpack_read(opb,rangebits); - if(t<0 || t>=(1<postlist[0]=0; - info->postlist[1]=1<postlist+j; - qsort(sortpointer,count+2,sizeof(*sortpointer),icomp); - - for(j=1;jvi=info; - look->n=info->postlist[1]; - - /* we drop each position value in-between already decoded values, - and use linear interpolation to predict each new value past the - edges. The positions are read in the order of the position - list... we precompute the bounding positions in the lookup. Of - course, the neighbors can change (if a position is declined), but - this is an initial mapping */ - - for(i=0;ipartitions;i++)n+=info->class_dim[info->partitionclass[i]]; - n+=2; - look->posts=n; - - /* also store a sorted position index */ - for(i=0;ipostlist+i; - qsort(sortpointer,n,sizeof(*sortpointer),icomp); - - /* points from sort order back to range number */ - for(i=0;iforward_index[i]=sortpointer[i]-info->postlist; - /* points from range order to sorted position */ - for(i=0;ireverse_index[look->forward_index[i]]=i; - /* we actually need the post values too */ - for(i=0;isorted_index[i]=info->postlist[look->forward_index[i]]; - - /* quantize values to multiplier spec */ - switch(info->mult){ - case 1: /* 1024 -> 256 */ - look->quant_q=256; - break; - case 2: /* 1024 -> 128 */ - look->quant_q=128; - break; - case 3: /* 1024 -> 86 */ - look->quant_q=86; - break; - case 4: /* 1024 -> 64 */ - look->quant_q=64; - break; - } - - /* discover our neighbors for decode where we don't use fit flags - (that would push the neighbors outward) */ - for(i=0;in; - int currentx=info->postlist[i+2]; - for(j=0;jpostlist[j]; - if(x>lx && xcurrentx){ - hi=j; - hx=x; - } - } - look->loneighbor[i]=lo; - look->hineighbor[i]=hi; - } - - return(look); -} - -static int render_point(int x0,int x1,int y0,int y1,int x){ - y0&=0x7fff; /* mask off flag */ - y1&=0x7fff; - - { - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int err=ady*(x-x0); - - int off=err/adx; - if(dy<0)return(y0-off); - return(y0+off); - } -} - -static int vorbis_dBquant(const float *x){ - int i= *x*7.3142857f+1023.5f; - if(i>1023)return(1023); - if(i<0)return(0); - return i; -} - -static const float FLOOR1_fromdB_LOOKUP[256]={ - 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, - 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, - 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, - 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, - 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, - 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, - 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, - 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, - 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, - 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, - 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, - 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, - 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, - 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, - 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, - 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, - 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, - 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, - 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, - 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, - 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, - 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, - 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, - 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, - 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, - 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, - 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, - 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, - 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, - 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, - 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, - 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, - 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, - 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, - 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, - 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, - 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, - 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, - 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, - 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, - 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, - 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, - 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, - 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, - 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, - 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, - 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, - 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, - 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, - 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, - 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, - 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, - 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, - 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, - 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, - 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, - 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, - 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, - 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, - 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, - 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, - 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, - 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, - 0.82788260F, 0.88168307F, 0.9389798F, 1.F, -}; - -static void render_line(int n, int x0,int x1,int y0,int y1,float *d){ - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int base=dy/adx; - int sy=(dy<0?base-1:base+1); - int x=x0; - int y=y0; - int err=0; - - ady-=abs(base*adx); - - if(n>x1)n=x1; - - if(x=adx){ - err-=adx; - y+=sy; - }else{ - y+=base; - } - d[x]*=FLOOR1_fromdB_LOOKUP[y]; - } -} - -static void render_line0(int n, int x0,int x1,int y0,int y1,int *d){ - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int base=dy/adx; - int sy=(dy<0?base-1:base+1); - int x=x0; - int y=y0; - int err=0; - - ady-=abs(base*adx); - - if(n>x1)n=x1; - - if(x=adx){ - err-=adx; - y+=sy; - }else{ - y+=base; - } - d[x]=y; - } -} - -/* the floor has already been filtered to only include relevant sections */ -static int accumulate_fit(const float *flr,const float *mdct, - int x0, int x1,lsfit_acc *a, - int n,vorbis_info_floor1 *info){ - long i; - - int xa=0,ya=0,x2a=0,y2a=0,xya=0,na=0, xb=0,yb=0,x2b=0,y2b=0,xyb=0,nb=0; - - memset(a,0,sizeof(*a)); - a->x0=x0; - a->x1=x1; - if(x1>=n)x1=n-1; - - for(i=x0;i<=x1;i++){ - int quantized=vorbis_dBquant(flr+i); - if(quantized){ - if(mdct[i]+info->twofitatten>=flr[i]){ - xa += i; - ya += quantized; - x2a += i*i; - y2a += quantized*quantized; - xya += i*quantized; - na++; - }else{ - xb += i; - yb += quantized; - x2b += i*i; - y2b += quantized*quantized; - xyb += i*quantized; - nb++; - } - } - } - - a->xa=xa; - a->ya=ya; - a->x2a=x2a; - a->y2a=y2a; - a->xya=xya; - a->an=na; - - a->xb=xb; - a->yb=yb; - a->x2b=x2b; - a->y2b=y2b; - a->xyb=xyb; - a->bn=nb; - - return(na); -} - -static int fit_line(lsfit_acc *a,int fits,int *y0,int *y1, - vorbis_info_floor1 *info){ - double xb=0,yb=0,x2b=0,y2b=0,xyb=0,bn=0; - int i; - int x0=a[0].x0; - int x1=a[fits-1].x1; - - for(i=0;itwofitweight/(a[i].an+1)+1.; - - xb+=a[i].xb + a[i].xa * weight; - yb+=a[i].yb + a[i].ya * weight; - x2b+=a[i].x2b + a[i].x2a * weight; - y2b+=a[i].y2b + a[i].y2a * weight; - xyb+=a[i].xyb + a[i].xya * weight; - bn+=a[i].bn + a[i].an * weight; - } - - if(*y0>=0){ - xb+= x0; - yb+= *y0; - x2b+= x0 * x0; - y2b+= *y0 * *y0; - xyb+= *y0 * x0; - bn++; - } - - if(*y1>=0){ - xb+= x1; - yb+= *y1; - x2b+= x1 * x1; - y2b+= *y1 * *y1; - xyb+= *y1 * x1; - bn++; - } - - { - double denom=(bn*x2b-xb*xb); - - if(denom>0.){ - double a=(yb*x2b-xyb*xb)/denom; - double b=(bn*xyb-xb*yb)/denom; - *y0=rint(a+b*x0); - *y1=rint(a+b*x1); - - /* limit to our range! */ - if(*y0>1023)*y0=1023; - if(*y1>1023)*y1=1023; - if(*y0<0)*y0=0; - if(*y1<0)*y1=0; - - return 0; - }else{ - *y0=0; - *y1=0; - return 1; - } - } -} - -static int inspect_error(int x0,int x1,int y0,int y1,const float *mask, - const float *mdct, - vorbis_info_floor1 *info){ - int dy=y1-y0; - int adx=x1-x0; - int ady=abs(dy); - int base=dy/adx; - int sy=(dy<0?base-1:base+1); - int x=x0; - int y=y0; - int err=0; - int val=vorbis_dBquant(mask+x); - int mse=0; - int n=0; - - ady-=abs(base*adx); - - mse=(y-val); - mse*=mse; - n++; - if(mdct[x]+info->twofitatten>=mask[x]){ - if(y+info->maxovermaxunder>val)return(1); - } - - while(++x=adx){ - err-=adx; - y+=sy; - }else{ - y+=base; - } - - val=vorbis_dBquant(mask+x); - mse+=((y-val)*(y-val)); - n++; - if(mdct[x]+info->twofitatten>=mask[x]){ - if(val){ - if(y+info->maxovermaxunder>val)return(1); - } - } - } - - if(info->maxover*info->maxover/n>info->maxerr)return(0); - if(info->maxunder*info->maxunder/n>info->maxerr)return(0); - if(mse/n>info->maxerr)return(1); - return(0); -} - -static int post_Y(int *A,int *B,int pos){ - if(A[pos]<0) - return B[pos]; - if(B[pos]<0) - return A[pos]; - - return (A[pos]+B[pos])>>1; -} - -int *floor1_fit(vorbis_block *vb,vorbis_look_floor1 *look, - const float *logmdct, /* in */ - const float *logmask){ - long i,j; - vorbis_info_floor1 *info=look->vi; - long n=look->n; - long posts=look->posts; - long nonzero=0; - lsfit_acc fits[VIF_POSIT+1]; - int fit_valueA[VIF_POSIT+2]; /* index by range list position */ - int fit_valueB[VIF_POSIT+2]; /* index by range list position */ - - int loneighbor[VIF_POSIT+2]; /* sorted index of range list position (+2) */ - int hineighbor[VIF_POSIT+2]; - int *output=NULL; - int memo[VIF_POSIT+2]; - - for(i=0;isorted_index[i], - look->sorted_index[i+1],fits+i, - n,info); - } - - if(nonzero){ - /* start by fitting the implicit base case.... */ - int y0=-200; - int y1=-200; - fit_line(fits,posts-1,&y0,&y1,info); - - fit_valueA[0]=y0; - fit_valueB[0]=y0; - fit_valueB[1]=y1; - fit_valueA[1]=y1; - - /* Non degenerate case */ - /* start progressive splitting. This is a greedy, non-optimal - algorithm, but simple and close enough to the best - answer. */ - for(i=2;ireverse_index[i]; - int ln=loneighbor[sortpos]; - int hn=hineighbor[sortpos]; - - /* eliminate repeat searches of a particular range with a memo */ - if(memo[ln]!=hn){ - /* haven't performed this error search yet */ - int lsortpos=look->reverse_index[ln]; - int hsortpos=look->reverse_index[hn]; - memo[ln]=hn; - - { - /* A note: we want to bound/minimize *local*, not global, error */ - int lx=info->postlist[ln]; - int hx=info->postlist[hn]; - int ly=post_Y(fit_valueA,fit_valueB,ln); - int hy=post_Y(fit_valueA,fit_valueB,hn); - - if(ly==-1 || hy==-1){ - exit(1); - } - - if(inspect_error(lx,hx,ly,hy,logmask,logmdct,info)){ - /* outside error bounds/begin search area. Split it. */ - int ly0=-200; - int ly1=-200; - int hy0=-200; - int hy1=-200; - int ret0=fit_line(fits+lsortpos,sortpos-lsortpos,&ly0,&ly1,info); - int ret1=fit_line(fits+sortpos,hsortpos-sortpos,&hy0,&hy1,info); - - if(ret0){ - ly0=ly; - ly1=hy0; - } - if(ret1){ - hy0=ly1; - hy1=hy; - } - - if(ret0 && ret1){ - fit_valueA[i]=-200; - fit_valueB[i]=-200; - }else{ - /* store new edge values */ - fit_valueB[ln]=ly0; - if(ln==0)fit_valueA[ln]=ly0; - fit_valueA[i]=ly1; - fit_valueB[i]=hy0; - fit_valueA[hn]=hy1; - if(hn==1)fit_valueB[hn]=hy1; - - if(ly1>=0 || hy0>=0){ - /* store new neighbor values */ - for(j=sortpos-1;j>=0;j--) - if(hineighbor[j]==hn) - hineighbor[j]=i; - else - break; - for(j=sortpos+1;jloneighbor[i-2]; - int hn=look->hineighbor[i-2]; - int x0=info->postlist[ln]; - int x1=info->postlist[hn]; - int y0=output[ln]; - int y1=output[hn]; - - int predicted=render_point(x0,x1,y0,y1,info->postlist[i]); - int vx=post_Y(fit_valueA,fit_valueB,i); - - if(vx>=0 && predicted!=vx){ - output[i]=vx; - }else{ - output[i]= predicted|0x8000; - } - } - } - - return(output); - -} - -int *floor1_interpolate_fit(vorbis_block *vb,vorbis_look_floor1 *look, - int *A,int *B, - int del){ - - long i; - long posts=look->posts; - int *output=NULL; - - if(A && B){ - output=_vorbis_block_alloc(vb,sizeof(*output)*posts); - - /* overly simpleminded--- look again post 1.2 */ - for(i=0;i>16; - if(A[i]&0x8000 && B[i]&0x8000)output[i]|=0x8000; - } - } - - return(output); -} - - -int floor1_encode(oggpack_buffer *opb,vorbis_block *vb, - vorbis_look_floor1 *look, - int *post,int *ilogmask){ - - long i,j; - vorbis_info_floor1 *info=look->vi; - long posts=look->posts; - codec_setup_info *ci=vb->vd->vi->codec_setup; - int out[VIF_POSIT+2]; - static_codebook **sbooks=ci->book_param; - codebook *books=ci->fullbooks; - - /* quantize values to multiplier spec */ - if(post){ - for(i=0;imult){ - case 1: /* 1024 -> 256 */ - val>>=2; - break; - case 2: /* 1024 -> 128 */ - val>>=3; - break; - case 3: /* 1024 -> 86 */ - val/=12; - break; - case 4: /* 1024 -> 64 */ - val>>=4; - break; - } - post[i]=val | (post[i]&0x8000); - } - - out[0]=post[0]; - out[1]=post[1]; - - /* find prediction values for each post and subtract them */ - for(i=2;iloneighbor[i-2]; - int hn=look->hineighbor[i-2]; - int x0=info->postlist[ln]; - int x1=info->postlist[hn]; - int y0=post[ln]; - int y1=post[hn]; - - int predicted=render_point(x0,x1,y0,y1,info->postlist[i]); - - if((post[i]&0x8000) || (predicted==post[i])){ - post[i]=predicted|0x8000; /* in case there was roundoff jitter - in interpolation */ - out[i]=0; - }else{ - int headroom=(look->quant_q-predictedquant_q-predicted:predicted); - - int val=post[i]-predicted; - - /* at this point the 'deviation' value is in the range +/- max - range, but the real, unique range can always be mapped to - only [0-maxrange). So we want to wrap the deviation into - this limited range, but do it in the way that least screws - an essentially gaussian probability distribution. */ - - if(val<0) - if(val<-headroom) - val=headroom-val-1; - else - val=-1-(val<<1); - else - if(val>=headroom) - val= val+headroom; - else - val<<=1; - - out[i]=val; - post[ln]&=0x7fff; - post[hn]&=0x7fff; - } - } - - /* we have everything we need. pack it out */ - /* mark nontrivial floor */ - oggpack_write(opb,1,1); - - /* beginning/end post */ - look->frames++; - look->postbits+=ov_ilog(look->quant_q-1)*2; - oggpack_write(opb,out[0],ov_ilog(look->quant_q-1)); - oggpack_write(opb,out[1],ov_ilog(look->quant_q-1)); - - - /* partition by partition */ - for(i=0,j=2;ipartitions;i++){ - int class=info->partitionclass[i]; - int cdim=info->class_dim[class]; - int csubbits=info->class_subs[class]; - int csub=1<class_subbook[class][k]; - if(booknum<0){ - maxval[k]=1; - }else{ - maxval[k]=sbooks[info->class_subbook[class][k]]->entries; - } - } - for(k=0;kphrasebits+= - vorbis_book_encode(books+info->class_book[class],cval,opb); - -#ifdef TRAIN_FLOOR1 - { - FILE *of; - char buffer[80]; - sprintf(buffer,"line_%dx%ld_class%d.vqd", - vb->pcmend/2,posts-2,class); - of=fopen(buffer,"a"); - fprintf(of,"%d\n",cval); - fclose(of); - } -#endif - } - - /* write post values */ - for(k=0;kclass_subbook[class][bookas[k]]; - if(book>=0){ - /* hack to allow training with 'bad' books */ - if(out[j+k]<(books+book)->entries) - look->postbits+=vorbis_book_encode(books+book, - out[j+k],opb); - /*else - fprintf(stderr,"+!");*/ - -#ifdef TRAIN_FLOOR1 - { - FILE *of; - char buffer[80]; - sprintf(buffer,"line_%dx%ld_%dsub%d.vqd", - vb->pcmend/2,posts-2,class,bookas[k]); - of=fopen(buffer,"a"); - fprintf(of,"%d\n",out[j+k]); - fclose(of); - } -#endif - } - } - j+=cdim; - } - - { - /* generate quantized floor equivalent to what we'd unpack in decode */ - /* render the lines */ - int hx=0; - int lx=0; - int ly=post[0]*info->mult; - int n=ci->blocksizes[vb->W]/2; - - for(j=1;jposts;j++){ - int current=look->forward_index[j]; - int hy=post[current]&0x7fff; - if(hy==post[current]){ - - hy*=info->mult; - hx=info->postlist[current]; - - render_line0(n,lx,hx,ly,hy,ilogmask); - - lx=hx; - ly=hy; - } - } - for(j=hx;jpcmend/2;j++)ilogmask[j]=ly; /* be certain */ - return(1); - } - }else{ - oggpack_write(opb,0,1); - memset(ilogmask,0,vb->pcmend/2*sizeof(*ilogmask)); - return(0); - } -} - -static void *floor1_inverse1(vorbis_block *vb,vorbis_look_floor *in){ - vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; - vorbis_info_floor1 *info=look->vi; - codec_setup_info *ci=vb->vd->vi->codec_setup; - - int i,j,k; - codebook *books=ci->fullbooks; - - /* unpack wrapped/predicted values from stream */ - if(oggpack_read(&vb->opb,1)==1){ - int *fit_value=_vorbis_block_alloc(vb,(look->posts)*sizeof(*fit_value)); - - fit_value[0]=oggpack_read(&vb->opb,ov_ilog(look->quant_q-1)); - fit_value[1]=oggpack_read(&vb->opb,ov_ilog(look->quant_q-1)); - - /* partition by partition */ - for(i=0,j=2;ipartitions;i++){ - int class=info->partitionclass[i]; - int cdim=info->class_dim[class]; - int csubbits=info->class_subs[class]; - int csub=1<class_book[class],&vb->opb); - - if(cval==-1)goto eop; - } - - for(k=0;kclass_subbook[class][cval&(csub-1)]; - cval>>=csubbits; - if(book>=0){ - if((fit_value[j+k]=vorbis_book_decode(books+book,&vb->opb))==-1) - goto eop; - }else{ - fit_value[j+k]=0; - } - } - j+=cdim; - } - - /* unwrap positive values and reconsitute via linear interpolation */ - for(i=2;iposts;i++){ - int predicted=render_point(info->postlist[look->loneighbor[i-2]], - info->postlist[look->hineighbor[i-2]], - fit_value[look->loneighbor[i-2]], - fit_value[look->hineighbor[i-2]], - info->postlist[i]); - int hiroom=look->quant_q-predicted; - int loroom=predicted; - int room=(hiroom=room){ - if(hiroom>loroom){ - val = val-loroom; - }else{ - val = -1-(val-hiroom); - } - }else{ - if(val&1){ - val= -((val+1)>>1); - }else{ - val>>=1; - } - } - - fit_value[i]=(val+predicted)&0x7fff; - fit_value[look->loneighbor[i-2]]&=0x7fff; - fit_value[look->hineighbor[i-2]]&=0x7fff; - - }else{ - fit_value[i]=predicted|0x8000; - } - - } - - return(fit_value); - } - eop: - return(NULL); -} - -static int floor1_inverse2(vorbis_block *vb,vorbis_look_floor *in,void *memo, - float *out){ - vorbis_look_floor1 *look=(vorbis_look_floor1 *)in; - vorbis_info_floor1 *info=look->vi; - - codec_setup_info *ci=vb->vd->vi->codec_setup; - int n=ci->blocksizes[vb->W]/2; - int j; - - if(memo){ - /* render the lines */ - int *fit_value=(int *)memo; - int hx=0; - int lx=0; - int ly=fit_value[0]*info->mult; - /* guard lookup against out-of-range values */ - ly=(ly<0?0:ly>255?255:ly); - - for(j=1;jposts;j++){ - int current=look->forward_index[j]; - int hy=fit_value[current]&0x7fff; - if(hy==fit_value[current]){ - - hx=info->postlist[current]; - hy*=info->mult; - /* guard lookup against out-of-range values */ - hy=(hy<0?0:hy>255?255:hy); - - render_line(n,lx,hx,ly,hy,out); - - lx=hx; - ly=hy; - } - } - for(j=hx;j -#include "lookup.h" -#include "lookup_data.h" -#include "os.h" -#include "misc.h" - -#ifdef FLOAT_LOOKUP - -/* interpolated lookup based cos function, domain 0 to PI only */ -float vorbis_coslook(float a){ - double d=a*(.31830989*(float)COS_LOOKUP_SZ); - int i=vorbis_ftoi(d-.5); - - return COS_LOOKUP[i]+ (d-i)*(COS_LOOKUP[i+1]-COS_LOOKUP[i]); -} - -/* interpolated 1./sqrt(p) where .5 <= p < 1. */ -float vorbis_invsqlook(float a){ - double d=a*(2.f*(float)INVSQ_LOOKUP_SZ)-(float)INVSQ_LOOKUP_SZ; - int i=vorbis_ftoi(d-.5f); - return INVSQ_LOOKUP[i]+ (d-i)*(INVSQ_LOOKUP[i+1]-INVSQ_LOOKUP[i]); -} - -/* interpolated 1./sqrt(p) where .5 <= p < 1. */ -float vorbis_invsq2explook(int a){ - return INVSQ2EXP_LOOKUP[a-INVSQ2EXP_LOOKUP_MIN]; -} - -#include -/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ -float vorbis_fromdBlook(float a){ - int i=vorbis_ftoi(a*((float)(-(1<=(FROMdB_LOOKUP_SZ<>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]); -} - -#endif - -#ifdef INT_LOOKUP -/* interpolated 1./sqrt(p) where .5 <= a < 1. (.100000... to .111111...) in - 16.16 format - - returns in m.8 format */ -long vorbis_invsqlook_i(long a,long e){ - long i=(a&0x7fff)>>(INVSQ_LOOKUP_I_SHIFT-1); - long d=(a&INVSQ_LOOKUP_I_MASK)<<(16-INVSQ_LOOKUP_I_SHIFT); /* 0.16 */ - long val=INVSQ_LOOKUP_I[i]- /* 1.16 */ - (((INVSQ_LOOKUP_I[i]-INVSQ_LOOKUP_I[i+1])* /* 0.16 */ - d)>>16); /* result 1.16 */ - - e+=32; - if(e&1)val=(val*5792)>>13; /* multiply val by 1/sqrt(2) */ - e=(e>>1)-8; - - return(val>>e); -} - -/* interpolated lookup based fromdB function, domain -140dB to 0dB only */ -/* a is in n.12 format */ -float vorbis_fromdBlook_i(long a){ - int i=(-a)>>(12-FROMdB2_SHIFT); - return (i<0)?1.f: - ((i>=(FROMdB_LOOKUP_SZ<>FROMdB_SHIFT]*FROMdB2_LOOKUP[i&FROMdB2_MASK]); -} - -/* interpolated lookup based cos function, domain 0 to PI only */ -/* a is in 0.16 format, where 0==0, 2^^16-1==PI, return 0.14 */ -long vorbis_coslook_i(long a){ - int i=a>>COS_LOOKUP_I_SHIFT; - int d=a&COS_LOOKUP_I_MASK; - return COS_LOOKUP_I[i]- ((d*(COS_LOOKUP_I[i]-COS_LOOKUP_I[i+1]))>> - COS_LOOKUP_I_SHIFT); -} - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lookup.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lookup.h deleted file mode 100644 index 4bc0f3a2..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lookup.h +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: lookup based functions - - ********************************************************************/ - -#ifndef _V_LOOKUP_H_ - -#ifdef FLOAT_LOOKUP -extern float vorbis_coslook(float a); -extern float vorbis_invsqlook(float a); -extern float vorbis_invsq2explook(int a); -extern float vorbis_fromdBlook(float a); -#endif -#ifdef INT_LOOKUP -extern long vorbis_invsqlook_i(long a,long e); -extern long vorbis_coslook_i(long a); -extern float vorbis_fromdBlook_i(long a); -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lookup_data.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lookup_data.h deleted file mode 100644 index 5de3cfdc..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lookup_data.h +++ /dev/null @@ -1,191 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: lookup data; generated by lookups.pl; edit there - - ********************************************************************/ - -#ifndef _V_LOOKUP_DATA_H_ - -#ifdef FLOAT_LOOKUP -#define COS_LOOKUP_SZ 128 -static const float COS_LOOKUP[COS_LOOKUP_SZ+1]={ - +1.0000000000000f,+0.9996988186962f,+0.9987954562052f,+0.9972904566787f, - +0.9951847266722f,+0.9924795345987f,+0.9891765099648f,+0.9852776423889f, - +0.9807852804032f,+0.9757021300385f,+0.9700312531945f,+0.9637760657954f, - +0.9569403357322f,+0.9495281805930f,+0.9415440651830f,+0.9329927988347f, - +0.9238795325113f,+0.9142097557035f,+0.9039892931234f,+0.8932243011955f, - +0.8819212643484f,+0.8700869911087f,+0.8577286100003f,+0.8448535652497f, - +0.8314696123025f,+0.8175848131516f,+0.8032075314806f,+0.7883464276266f, - +0.7730104533627f,+0.7572088465065f,+0.7409511253550f,+0.7242470829515f, - +0.7071067811865f,+0.6895405447371f,+0.6715589548470f,+0.6531728429538f, - +0.6343932841636f,+0.6152315905806f,+0.5956993044924f,+0.5758081914178f, - +0.5555702330196f,+0.5349976198871f,+0.5141027441932f,+0.4928981922298f, - +0.4713967368260f,+0.4496113296546f,+0.4275550934303f,+0.4052413140050f, - +0.3826834323651f,+0.3598950365350f,+0.3368898533922f,+0.3136817403989f, - +0.2902846772545f,+0.2667127574749f,+0.2429801799033f,+0.2191012401569f, - +0.1950903220161f,+0.1709618887603f,+0.1467304744554f,+0.1224106751992f, - +0.0980171403296f,+0.0735645635997f,+0.0490676743274f,+0.0245412285229f, - +0.0000000000000f,-0.0245412285229f,-0.0490676743274f,-0.0735645635997f, - -0.0980171403296f,-0.1224106751992f,-0.1467304744554f,-0.1709618887603f, - -0.1950903220161f,-0.2191012401569f,-0.2429801799033f,-0.2667127574749f, - -0.2902846772545f,-0.3136817403989f,-0.3368898533922f,-0.3598950365350f, - -0.3826834323651f,-0.4052413140050f,-0.4275550934303f,-0.4496113296546f, - -0.4713967368260f,-0.4928981922298f,-0.5141027441932f,-0.5349976198871f, - -0.5555702330196f,-0.5758081914178f,-0.5956993044924f,-0.6152315905806f, - -0.6343932841636f,-0.6531728429538f,-0.6715589548470f,-0.6895405447371f, - -0.7071067811865f,-0.7242470829515f,-0.7409511253550f,-0.7572088465065f, - -0.7730104533627f,-0.7883464276266f,-0.8032075314806f,-0.8175848131516f, - -0.8314696123025f,-0.8448535652497f,-0.8577286100003f,-0.8700869911087f, - -0.8819212643484f,-0.8932243011955f,-0.9039892931234f,-0.9142097557035f, - -0.9238795325113f,-0.9329927988347f,-0.9415440651830f,-0.9495281805930f, - -0.9569403357322f,-0.9637760657954f,-0.9700312531945f,-0.9757021300385f, - -0.9807852804032f,-0.9852776423889f,-0.9891765099648f,-0.9924795345987f, - -0.9951847266722f,-0.9972904566787f,-0.9987954562052f,-0.9996988186962f, - -1.0000000000000f, -}; - -#define INVSQ_LOOKUP_SZ 32 -static const float INVSQ_LOOKUP[INVSQ_LOOKUP_SZ+1]={ - 1.414213562373f,1.392621247646f,1.371988681140f,1.352246807566f, - 1.333333333333f,1.315191898443f,1.297771369046f,1.281025230441f, - 1.264911064067f,1.249390095109f,1.234426799697f,1.219988562661f, - 1.206045378311f,1.192569588000f,1.179535649239f,1.166919931983f, - 1.154700538379f,1.142857142857f,1.131370849898f,1.120224067222f, - 1.109400392450f,1.098884511590f,1.088662107904f,1.078719779941f, - 1.069044967650f,1.059625885652f,1.050451462878f,1.041511287847f, - 1.032795558989f,1.024295039463f,1.016001016002f,1.007905261358f, - 1.000000000000f, -}; - -#define INVSQ2EXP_LOOKUP_MIN (-32) -#define INVSQ2EXP_LOOKUP_MAX 32 -static const float INVSQ2EXP_LOOKUP[INVSQ2EXP_LOOKUP_MAX-\ - INVSQ2EXP_LOOKUP_MIN+1]={ - 65536.f, 46340.95001f, 32768.f, 23170.47501f, - 16384.f, 11585.2375f, 8192.f, 5792.618751f, - 4096.f, 2896.309376f, 2048.f, 1448.154688f, - 1024.f, 724.0773439f, 512.f, 362.038672f, - 256.f, 181.019336f, 128.f, 90.50966799f, - 64.f, 45.254834f, 32.f, 22.627417f, - 16.f, 11.3137085f, 8.f, 5.656854249f, - 4.f, 2.828427125f, 2.f, 1.414213562f, - 1.f, 0.7071067812f, 0.5f, 0.3535533906f, - 0.25f, 0.1767766953f, 0.125f, 0.08838834765f, - 0.0625f, 0.04419417382f, 0.03125f, 0.02209708691f, - 0.015625f, 0.01104854346f, 0.0078125f, 0.005524271728f, - 0.00390625f, 0.002762135864f, 0.001953125f, 0.001381067932f, - 0.0009765625f, 0.000690533966f, 0.00048828125f, 0.000345266983f, - 0.000244140625f,0.0001726334915f,0.0001220703125f,8.631674575e-05f, - 6.103515625e-05f,4.315837288e-05f,3.051757812e-05f,2.157918644e-05f, - 1.525878906e-05f, -}; - -#endif - -#define FROMdB_LOOKUP_SZ 35 -#define FROMdB2_LOOKUP_SZ 32 -#define FROMdB_SHIFT 5 -#define FROMdB2_SHIFT 3 -#define FROMdB2_MASK 31 - -#ifdef FLOAT_LOOKUP -static const float FROMdB_LOOKUP[FROMdB_LOOKUP_SZ]={ - 1.f, 0.6309573445f, 0.3981071706f, 0.2511886432f, - 0.1584893192f, 0.1f, 0.06309573445f, 0.03981071706f, - 0.02511886432f, 0.01584893192f, 0.01f, 0.006309573445f, - 0.003981071706f, 0.002511886432f, 0.001584893192f, 0.001f, - 0.0006309573445f,0.0003981071706f,0.0002511886432f,0.0001584893192f, - 0.0001f,6.309573445e-05f,3.981071706e-05f,2.511886432e-05f, - 1.584893192e-05f, 1e-05f,6.309573445e-06f,3.981071706e-06f, - 2.511886432e-06f,1.584893192e-06f, 1e-06f,6.309573445e-07f, - 3.981071706e-07f,2.511886432e-07f,1.584893192e-07f, -}; - -static const float FROMdB2_LOOKUP[FROMdB2_LOOKUP_SZ]={ - 0.9928302478f, 0.9786445908f, 0.9646616199f, 0.9508784391f, - 0.9372921937f, 0.92390007f, 0.9106992942f, 0.8976871324f, - 0.8848608897f, 0.8722179097f, 0.8597555737f, 0.8474713009f, - 0.835362547f, 0.8234268041f, 0.8116616003f, 0.8000644989f, - 0.7886330981f, 0.7773650302f, 0.7662579617f, 0.755309592f, - 0.7445176537f, 0.7338799116f, 0.7233941627f, 0.7130582353f, - 0.7028699885f, 0.6928273125f, 0.6829281272f, 0.6731703824f, - 0.6635520573f, 0.6540711597f, 0.6447257262f, 0.6355138211f, -}; -#endif - -#ifdef INT_LOOKUP - -#define INVSQ_LOOKUP_I_SHIFT 10 -#define INVSQ_LOOKUP_I_MASK 1023 -static const long INVSQ_LOOKUP_I[64+1]={ - 92682l, 91966l, 91267l, 90583l, - 89915l, 89261l, 88621l, 87995l, - 87381l, 86781l, 86192l, 85616l, - 85051l, 84497l, 83953l, 83420l, - 82897l, 82384l, 81880l, 81385l, - 80899l, 80422l, 79953l, 79492l, - 79039l, 78594l, 78156l, 77726l, - 77302l, 76885l, 76475l, 76072l, - 75674l, 75283l, 74898l, 74519l, - 74146l, 73778l, 73415l, 73058l, - 72706l, 72359l, 72016l, 71679l, - 71347l, 71019l, 70695l, 70376l, - 70061l, 69750l, 69444l, 69141l, - 68842l, 68548l, 68256l, 67969l, - 67685l, 67405l, 67128l, 66855l, - 66585l, 66318l, 66054l, 65794l, - 65536l, -}; - -#define COS_LOOKUP_I_SHIFT 9 -#define COS_LOOKUP_I_MASK 511 -#define COS_LOOKUP_I_SZ 128 -static const long COS_LOOKUP_I[COS_LOOKUP_I_SZ+1]={ - 16384l, 16379l, 16364l, 16340l, - 16305l, 16261l, 16207l, 16143l, - 16069l, 15986l, 15893l, 15791l, - 15679l, 15557l, 15426l, 15286l, - 15137l, 14978l, 14811l, 14635l, - 14449l, 14256l, 14053l, 13842l, - 13623l, 13395l, 13160l, 12916l, - 12665l, 12406l, 12140l, 11866l, - 11585l, 11297l, 11003l, 10702l, - 10394l, 10080l, 9760l, 9434l, - 9102l, 8765l, 8423l, 8076l, - 7723l, 7366l, 7005l, 6639l, - 6270l, 5897l, 5520l, 5139l, - 4756l, 4370l, 3981l, 3590l, - 3196l, 2801l, 2404l, 2006l, - 1606l, 1205l, 804l, 402l, - 0l, -401l, -803l, -1204l, - -1605l, -2005l, -2403l, -2800l, - -3195l, -3589l, -3980l, -4369l, - -4755l, -5138l, -5519l, -5896l, - -6269l, -6638l, -7004l, -7365l, - -7722l, -8075l, -8422l, -8764l, - -9101l, -9433l, -9759l, -10079l, - -10393l, -10701l, -11002l, -11296l, - -11584l, -11865l, -12139l, -12405l, - -12664l, -12915l, -13159l, -13394l, - -13622l, -13841l, -14052l, -14255l, - -14448l, -14634l, -14810l, -14977l, - -15136l, -15285l, -15425l, -15556l, - -15678l, -15790l, -15892l, -15985l, - -16068l, -16142l, -16206l, -16260l, - -16304l, -16339l, -16363l, -16378l, - -16383l, -}; - -#endif - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lpc.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lpc.c deleted file mode 100644 index 798f4cf0..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/lpc.c +++ /dev/null @@ -1,159 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: LPC low level routines - - ********************************************************************/ - -/* Some of these routines (autocorrelator, LPC coefficient estimator) - are derived from code written by Jutta Degener and Carsten Bormann; - thus we include their copyright below. The entirety of this file - is freely redistributable on the condition that both of these - copyright notices are preserved without modification. */ - -/* Preserved Copyright: *********************************************/ - -/* Copyright 1992, 1993, 1994 by Jutta Degener and Carsten Bormann, -Technische Universita"t Berlin - -Any use of this software is permitted provided that this notice is not -removed and that neither the authors nor the Technische Universita"t -Berlin are deemed to have made any representations as to the -suitability of this software for any purpose nor are held responsible -for any defects of this software. THERE IS ABSOLUTELY NO WARRANTY FOR -THIS SOFTWARE. - -As a matter of courtesy, the authors request to be informed about uses -this software has found, about bugs in this software, and about any -improvements that may be of general interest. - -Berlin, 28.11.1994 -Jutta Degener -Carsten Bormann - -*********************************************************************/ - -#include -#include -#include -#include "os.h" -#include "smallft.h" -#include "lpc.h" -#include "scales.h" -#include "misc.h" - -/* Autocorrelation LPC coeff generation algorithm invented by - N. Levinson in 1947, modified by J. Durbin in 1959. */ - -/* Input : n elements of time doamin data - Output: m lpc coefficients, excitation energy */ - -float vorbis_lpc_from_data(float *data,float *lpci,int n,int m){ - double *aut=alloca(sizeof(*aut)*(m+1)); - double *lpc=alloca(sizeof(*lpc)*(m)); - double error; - double epsilon; - int i,j; - - /* autocorrelation, p+1 lag coefficients */ - j=m+1; - while(j--){ - double d=0; /* double needed for accumulator depth */ - for(i=j;i -#include -#include -#include "lsp.h" -#include "os.h" -#include "misc.h" -#include "lookup.h" -#include "scales.h" - -/* three possible LSP to f curve functions; the exact computation - (float), a lookup based float implementation, and an integer - implementation. The float lookup is likely the optimal choice on - any machine with an FPU. The integer implementation is *not* fixed - point (due to the need for a large dynamic range and thus a - separately tracked exponent) and thus much more complex than the - relatively simple float implementations. It's mostly for future - work on a fully fixed point implementation for processors like the - ARM family. */ - -/* define either of these (preferably FLOAT_LOOKUP) to have faster - but less precise implementation. */ -#undef FLOAT_LOOKUP -#undef INT_LOOKUP - -#ifdef FLOAT_LOOKUP -#include "lookup.c" /* catch this in the build system; we #include for - compilers (like gcc) that can't inline across - modules */ - -/* side effect: changes *lsp to cosines of lsp */ -void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, - float amp,float ampoffset){ - int i; - float wdel=M_PI/ln; - vorbis_fpu_control fpu; - - vorbis_fpu_setround(&fpu); - for(i=0;i>1; - - while(c--){ - q*=ftmp[0]-w; - p*=ftmp[1]-w; - ftmp+=2; - } - - if(m&1){ - /* odd order filter; slightly assymetric */ - /* the last coefficient */ - q*=ftmp[0]-w; - q*=q; - p*=p*(1.f-w*w); - }else{ - /* even order filter; still symmetric */ - q*=q*(1.f+w); - p*=p*(1.f-w); - } - - q=frexp(p+q,&qexp); - q=vorbis_fromdBlook(amp* - vorbis_invsqlook(q)* - vorbis_invsq2explook(qexp+m)- - ampoffset); - - do{ - curve[i++]*=q; - }while(map[i]==k); - } - vorbis_fpu_restore(fpu); -} - -#else - -#ifdef INT_LOOKUP -#include "lookup.c" /* catch this in the build system; we #include for - compilers (like gcc) that can't inline across - modules */ - -static const int MLOOP_1[64]={ - 0,10,11,11, 12,12,12,12, 13,13,13,13, 13,13,13,13, - 14,14,14,14, 14,14,14,14, 14,14,14,14, 14,14,14,14, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, - 15,15,15,15, 15,15,15,15, 15,15,15,15, 15,15,15,15, -}; - -static const int MLOOP_2[64]={ - 0,4,5,5, 6,6,6,6, 7,7,7,7, 7,7,7,7, - 8,8,8,8, 8,8,8,8, 8,8,8,8, 8,8,8,8, - 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, - 9,9,9,9, 9,9,9,9, 9,9,9,9, 9,9,9,9, -}; - -static const int MLOOP_3[8]={0,1,2,2,3,3,3,3}; - - -/* side effect: changes *lsp to cosines of lsp */ -void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, - float amp,float ampoffset){ - - /* 0 <= m < 256 */ - - /* set up for using all int later */ - int i; - int ampoffseti=rint(ampoffset*4096.f); - int ampi=rint(amp*16.f); - long *ilsp=alloca(m*sizeof(*ilsp)); - for(i=0;i>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - qi=(qi>>shift)*labs(ilsp[j-1]-wi); - pi=(pi>>shift)*labs(ilsp[j]-wi); - qexp+=shift; - } - if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - - /* pi,qi normalized collectively, both tracked using qexp */ - - if(m&1){ - /* odd order filter; slightly assymetric */ - /* the last coefficient */ - qi=(qi>>shift)*labs(ilsp[j-1]-wi); - pi=(pi>>shift)<<14; - qexp+=shift; - - if(!(shift=MLOOP_1[(pi|qi)>>25])) - if(!(shift=MLOOP_2[(pi|qi)>>19])) - shift=MLOOP_3[(pi|qi)>>16]; - - pi>>=shift; - qi>>=shift; - qexp+=shift-14*((m+1)>>1); - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - qexp=qexp*2+m; - - pi*=(1<<14)-((wi*wi)>>14); - qi+=pi>>14; - - }else{ - /* even order filter; still symmetric */ - - /* p*=p(1-w), q*=q(1+w), let normalization drift because it isn't - worth tracking step by step */ - - pi>>=shift; - qi>>=shift; - qexp+=shift-7*m; - - pi=((pi*pi)>>16); - qi=((qi*qi)>>16); - qexp=qexp*2+m; - - pi*=(1<<14)-wi; - qi*=(1<<14)+wi; - qi=(qi+pi)>>14; - - } - - - /* we've let the normalization drift because it wasn't important; - however, for the lookup, things must be normalized again. We - need at most one right shift or a number of left shifts */ - - if(qi&0xffff0000){ /* checks for 1.xxxxxxxxxxxxxxxx */ - qi>>=1; qexp++; - }else - while(qi && !(qi&0x8000)){ /* checks for 0.0xxxxxxxxxxxxxxx or less*/ - qi<<=1; qexp--; - } - - amp=vorbis_fromdBlook_i(ampi* /* n.4 */ - vorbis_invsqlook_i(qi,qexp)- - /* m.8, m+n<=8 */ - ampoffseti); /* 8.12[0] */ - - curve[i]*=amp; - while(map[++i]==k)curve[i]*=amp; - } -} - -#else - -/* old, nonoptimized but simple version for any poor sap who needs to - figure out what the hell this code does, or wants the other - fraction of a dB precision */ - -/* side effect: changes *lsp to cosines of lsp */ -void vorbis_lsp_to_curve(float *curve,int *map,int n,int ln,float *lsp,int m, - float amp,float ampoffset){ - int i; - float wdel=M_PI/ln; - for(i=0;i= i; j--) { - g[j-2] -= g[j]; - g[j] += g[j]; - } - } -} - -static int comp(const void *a,const void *b){ - return (*(float *)a<*(float *)b)-(*(float *)a>*(float *)b); -} - -/* Newton-Raphson-Maehly actually functioned as a decent root finder, - but there are root sets for which it gets into limit cycles - (exacerbated by zero suppression) and fails. We can't afford to - fail, even if the failure is 1 in 100,000,000, so we now use - Laguerre and later polish with Newton-Raphson (which can then - afford to fail) */ - -#define EPSILON 10e-7 -static int Laguerre_With_Deflation(float *a,int ord,float *r){ - int i,m; - double *defl=alloca(sizeof(*defl)*(ord+1)); - for(i=0;i<=ord;i++)defl[i]=a[i]; - - for(m=ord;m>0;m--){ - double new=0.f,delta; - - /* iterate a root */ - while(1){ - double p=defl[m],pp=0.f,ppp=0.f,denom; - - /* eval the polynomial and its first two derivatives */ - for(i=m;i>0;i--){ - ppp = new*ppp + pp; - pp = new*pp + p; - p = new*p + defl[i-1]; - } - - /* Laguerre's method */ - denom=(m-1) * ((m-1)*pp*pp - m*p*ppp); - if(denom<0) - return(-1); /* complex root! The LPC generator handed us a bad filter */ - - if(pp>0){ - denom = pp + sqrt(denom); - if(denom-(EPSILON))denom=-(EPSILON); - } - - delta = m*p/denom; - new -= delta; - - if(delta<0.f)delta*=-1; - - if(fabs(delta/new)<10e-12)break; - } - - r[m-1]=new; - - /* forward deflation */ - - for(i=m;i>0;i--) - defl[i-1]+=new*defl[i]; - defl++; - - } - return(0); -} - - -/* for spit-and-polish only */ -static int Newton_Raphson(float *a,int ord,float *r){ - int i, k, count=0; - double error=1.f; - double *root=alloca(ord*sizeof(*root)); - - for(i=0; i1e-20){ - error=0; - - for(i=0; i= 0; k--) { - - pp= pp* rooti + p; - p = p * rooti + a[k]; - } - - delta = p/pp; - root[i] -= delta; - error+= delta*delta; - } - - if(count>40)return(-1); - - count++; - } - - /* Replaced the original bubble sort with a real sort. With your - help, we can eliminate the bubble sort in our lifetime. --Monty */ - - for(i=0; i>1; - int g1_order,g2_order; - float *g1=alloca(sizeof(*g1)*(order2+1)); - float *g2=alloca(sizeof(*g2)*(order2+1)); - float *g1r=alloca(sizeof(*g1r)*(order2+1)); - float *g2r=alloca(sizeof(*g2r)*(order2+1)); - int i; - - /* even and odd are slightly different base cases */ - g1_order=(m+1)>>1; - g2_order=(m) >>1; - - /* Compute the lengths of the x polynomials. */ - /* Compute the first half of K & R F1 & F2 polynomials. */ - /* Compute half of the symmetric and antisymmetric polynomials. */ - /* Remove the roots at +1 and -1. */ - - g1[g1_order] = 1.f; - for(i=1;i<=g1_order;i++) g1[g1_order-i] = lpc[i-1]+lpc[m-i]; - g2[g2_order] = 1.f; - for(i=1;i<=g2_order;i++) g2[g2_order-i] = lpc[i-1]-lpc[m-i]; - - if(g1_order>g2_order){ - for(i=2; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+2]; - }else{ - for(i=1; i<=g1_order;i++) g1[g1_order-i] -= g1[g1_order-i+1]; - for(i=1; i<=g2_order;i++) g2[g2_order-i] += g2[g2_order-i+1]; - } - - /* Convert into polynomials in cos(alpha) */ - cheby(g1,g1_order); - cheby(g2,g2_order); - - /* Find the roots of the 2 even polynomials.*/ - if(Laguerre_With_Deflation(g1,g1_order,g1r) || - Laguerre_With_Deflation(g2,g2_order,g2r)) - return(-1); - - Newton_Raphson(g1,g1_order,g1r); /* if it fails, it leaves g1r alone */ - Newton_Raphson(g2,g2_order,g2r); /* if it fails, it leaves g2r alone */ - - qsort(g1r,g1_order,sizeof(*g1r),comp); - qsort(g2r,g2_order,sizeof(*g2r),comp); - - for(i=0;i -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "window.h" -#include "registry.h" -#include "psy.h" -#include "misc.h" - -/* simplistic, wasteful way of doing this (unique lookup for each - mode/submapping); there should be a central repository for - identical lookups. That will require minor work, so I'm putting it - off as low priority. - - Why a lookup for each backend in a given mode? Because the - blocksize is set by the mode, and low backend lookups may require - parameters from other areas of the mode/mapping */ - -static void mapping0_free_info(vorbis_info_mapping *i){ - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)i; - if(info){ - memset(info,0,sizeof(*info)); - _ogg_free(info); - } -} - -static void mapping0_pack(vorbis_info *vi,vorbis_info_mapping *vm, - oggpack_buffer *opb){ - int i; - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)vm; - - /* another 'we meant to do it this way' hack... up to beta 4, we - packed 4 binary zeros here to signify one submapping in use. We - now redefine that to mean four bitflags that indicate use of - deeper features; bit0:submappings, bit1:coupling, - bit2,3:reserved. This is backward compatable with all actual uses - of the beta code. */ - - if(info->submaps>1){ - oggpack_write(opb,1,1); - oggpack_write(opb,info->submaps-1,4); - }else - oggpack_write(opb,0,1); - - if(info->coupling_steps>0){ - oggpack_write(opb,1,1); - oggpack_write(opb,info->coupling_steps-1,8); - - for(i=0;icoupling_steps;i++){ - oggpack_write(opb,info->coupling_mag[i],ov_ilog(vi->channels-1)); - oggpack_write(opb,info->coupling_ang[i],ov_ilog(vi->channels-1)); - } - }else - oggpack_write(opb,0,1); - - oggpack_write(opb,0,2); /* 2,3:reserved */ - - /* we don't write the channel submappings if we only have one... */ - if(info->submaps>1){ - for(i=0;ichannels;i++) - oggpack_write(opb,info->chmuxlist[i],4); - } - for(i=0;isubmaps;i++){ - oggpack_write(opb,0,8); /* time submap unused */ - oggpack_write(opb,info->floorsubmap[i],8); - oggpack_write(opb,info->residuesubmap[i],8); - } -} - -/* also responsible for range checking */ -static vorbis_info_mapping *mapping0_unpack(vorbis_info *vi,oggpack_buffer *opb){ - int i,b; - vorbis_info_mapping0 *info=_ogg_calloc(1,sizeof(*info)); - codec_setup_info *ci=vi->codec_setup; - if(vi->channels<=0)goto err_out; - - b=oggpack_read(opb,1); - if(b<0)goto err_out; - if(b){ - info->submaps=oggpack_read(opb,4)+1; - if(info->submaps<=0)goto err_out; - }else - info->submaps=1; - - b=oggpack_read(opb,1); - if(b<0)goto err_out; - if(b){ - info->coupling_steps=oggpack_read(opb,8)+1; - if(info->coupling_steps<=0)goto err_out; - for(i=0;icoupling_steps;i++){ - /* vi->channels > 0 is enforced in the caller */ - int testM=info->coupling_mag[i]= - oggpack_read(opb,ov_ilog(vi->channels-1)); - int testA=info->coupling_ang[i]= - oggpack_read(opb,ov_ilog(vi->channels-1)); - - if(testM<0 || - testA<0 || - testM==testA || - testM>=vi->channels || - testA>=vi->channels) goto err_out; - } - - } - - if(oggpack_read(opb,2)!=0)goto err_out; /* 2,3:reserved */ - - if(info->submaps>1){ - for(i=0;ichannels;i++){ - info->chmuxlist[i]=oggpack_read(opb,4); - if(info->chmuxlist[i]>=info->submaps || info->chmuxlist[i]<0)goto err_out; - } - } - for(i=0;isubmaps;i++){ - oggpack_read(opb,8); /* time submap unused */ - info->floorsubmap[i]=oggpack_read(opb,8); - if(info->floorsubmap[i]>=ci->floors || info->floorsubmap[i]<0)goto err_out; - info->residuesubmap[i]=oggpack_read(opb,8); - if(info->residuesubmap[i]>=ci->residues || info->residuesubmap[i]<0)goto err_out; - } - - return info; - - err_out: - mapping0_free_info(info); - return(NULL); -} - -#include "os.h" -#include "lpc.h" -#include "lsp.h" -#include "envelope.h" -#include "mdct.h" -#include "psy.h" -#include "scales.h" - -#if 0 -static long seq=0; -static ogg_int64_t total=0; -static float FLOOR1_fromdB_LOOKUP[256]={ - 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, - 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, - 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, - 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, - 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, - 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, - 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, - 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, - 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, - 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, - 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, - 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, - 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, - 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, - 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, - 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, - 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, - 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, - 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, - 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, - 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, - 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, - 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, - 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, - 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, - 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, - 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, - 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, - 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, - 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, - 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, - 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, - 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, - 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, - 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, - 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, - 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, - 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, - 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, - 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, - 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, - 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, - 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, - 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, - 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, - 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, - 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, - 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, - 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, - 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, - 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, - 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, - 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, - 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, - 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, - 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, - 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, - 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, - 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, - 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, - 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, - 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, - 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, - 0.82788260F, 0.88168307F, 0.9389798F, 1.F, -}; - -#endif - - -static int mapping0_forward(vorbis_block *vb){ - vorbis_dsp_state *vd=vb->vd; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - private_state *b=vb->vd->backend_state; - vorbis_block_internal *vbi=(vorbis_block_internal *)vb->internal; - int n=vb->pcmend; - int i,j,k; - - int *nonzero = alloca(sizeof(*nonzero)*vi->channels); - float **gmdct = _vorbis_block_alloc(vb,vi->channels*sizeof(*gmdct)); - int **iwork = _vorbis_block_alloc(vb,vi->channels*sizeof(*iwork)); - int ***floor_posts = _vorbis_block_alloc(vb,vi->channels*sizeof(*floor_posts)); - - float global_ampmax=vbi->ampmax; - float *local_ampmax=alloca(sizeof(*local_ampmax)*vi->channels); - int blocktype=vbi->blocktype; - - int modenumber=vb->W; - vorbis_info_mapping0 *info=ci->map_param[modenumber]; - vorbis_look_psy *psy_look=b->psy+blocktype+(vb->W?2:0); - - vb->mode=modenumber; - - for(i=0;ichannels;i++){ - float scale=4.f/n; - float scale_dB; - - float *pcm =vb->pcm[i]; - float *logfft =pcm; - - iwork[i]=_vorbis_block_alloc(vb,n/2*sizeof(**iwork)); - gmdct[i]=_vorbis_block_alloc(vb,n/2*sizeof(**gmdct)); - - scale_dB=todB(&scale) + .345; /* + .345 is a hack; the original - todB estimation used on IEEE 754 - compliant machines had a bug that - returned dB values about a third - of a decibel too high. The bug - was harmless because tunings - implicitly took that into - account. However, fixing the bug - in the estimator requires - changing all the tunings as well. - For now, it's easier to sync - things back up here, and - recalibrate the tunings in the - next major model upgrade. */ - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("pcmL",seq,pcm,n,0,0,total-n/2); - else - _analysis_output("pcmR",seq,pcm,n,0,0,total-n/2); - }else{ - _analysis_output("pcm",seq,pcm,n,0,0,total-n/2); - } -#endif - - /* window the PCM data */ - _vorbis_apply_window(pcm,b->window,ci->blocksizes,vb->lW,vb->W,vb->nW); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("windowedL",seq,pcm,n,0,0,total-n/2); - else - _analysis_output("windowedR",seq,pcm,n,0,0,total-n/2); - }else{ - _analysis_output("windowed",seq,pcm,n,0,0,total-n/2); - } -#endif - - /* transform the PCM data */ - /* only MDCT right now.... */ - mdct_forward(b->transform[vb->W][0],pcm,gmdct[i]); - - /* FFT yields more accurate tonal estimation (not phase sensitive) */ - drft_forward(&b->fft_look[vb->W],pcm); - logfft[0]=scale_dB+todB(pcm) + .345; /* + .345 is a hack; the - original todB estimation used on - IEEE 754 compliant machines had a - bug that returned dB values about - a third of a decibel too high. - The bug was harmless because - tunings implicitly took that into - account. However, fixing the bug - in the estimator requires - changing all the tunings as well. - For now, it's easier to sync - things back up here, and - recalibrate the tunings in the - next major model upgrade. */ - local_ampmax[i]=logfft[0]; - for(j=1;j>1]=scale_dB+.5f*todB(&temp) + .345; /* + - .345 is a hack; the original todB - estimation used on IEEE 754 - compliant machines had a bug that - returned dB values about a third - of a decibel too high. The bug - was harmless because tunings - implicitly took that into - account. However, fixing the bug - in the estimator requires - changing all the tunings as well. - For now, it's easier to sync - things back up here, and - recalibrate the tunings in the - next major model upgrade. */ - if(temp>local_ampmax[i])local_ampmax[i]=temp; - } - - if(local_ampmax[i]>0.f)local_ampmax[i]=0.f; - if(local_ampmax[i]>global_ampmax)global_ampmax=local_ampmax[i]; - -#if 0 - if(vi->channels==2){ - if(i==0){ - _analysis_output("fftL",seq,logfft,n/2,1,0,0); - }else{ - _analysis_output("fftR",seq,logfft,n/2,1,0,0); - } - }else{ - _analysis_output("fft",seq,logfft,n/2,1,0,0); - } -#endif - - } - - { - float *noise = _vorbis_block_alloc(vb,n/2*sizeof(*noise)); - float *tone = _vorbis_block_alloc(vb,n/2*sizeof(*tone)); - - for(i=0;ichannels;i++){ - /* the encoder setup assumes that all the modes used by any - specific bitrate tweaking use the same floor */ - - int submap=info->chmuxlist[i]; - - /* the following makes things clearer to *me* anyway */ - float *mdct =gmdct[i]; - float *logfft =vb->pcm[i]; - - float *logmdct =logfft+n/2; - float *logmask =logfft; - - vb->mode=modenumber; - - floor_posts[i]=_vorbis_block_alloc(vb,PACKETBLOBS*sizeof(**floor_posts)); - memset(floor_posts[i],0,sizeof(**floor_posts)*PACKETBLOBS); - - for(j=0;jchannels==2){ - if(i==0) - _analysis_output("mdctL",seq,logmdct,n/2,1,0,0); - else - _analysis_output("mdctR",seq,logmdct,n/2,1,0,0); - }else{ - _analysis_output("mdct",seq,logmdct,n/2,1,0,0); - } -#endif - - /* first step; noise masking. Not only does 'noise masking' - give us curves from which we can decide how much resolution - to give noise parts of the spectrum, it also implicitly hands - us a tonality estimate (the larger the value in the - 'noise_depth' vector, the more tonal that area is) */ - - _vp_noisemask(psy_look, - logmdct, - noise); /* noise does not have by-frequency offset - bias applied yet */ -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("noiseL",seq,noise,n/2,1,0,0); - else - _analysis_output("noiseR",seq,noise,n/2,1,0,0); - }else{ - _analysis_output("noise",seq,noise,n/2,1,0,0); - } -#endif - - /* second step: 'all the other crap'; all the stuff that isn't - computed/fit for bitrate management goes in the second psy - vector. This includes tone masking, peak limiting and ATH */ - - _vp_tonemask(psy_look, - logfft, - tone, - global_ampmax, - local_ampmax[i]); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("toneL",seq,tone,n/2,1,0,0); - else - _analysis_output("toneR",seq,tone,n/2,1,0,0); - }else{ - _analysis_output("tone",seq,tone,n/2,1,0,0); - } -#endif - - /* third step; we offset the noise vectors, overlay tone - masking. We then do a floor1-specific line fit. If we're - performing bitrate management, the line fit is performed - multiple times for up/down tweakage on demand. */ - -#if 0 - { - float aotuv[psy_look->n]; -#endif - - _vp_offset_and_mix(psy_look, - noise, - tone, - 1, - logmask, - mdct, - logmdct); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("aotuvM1_L",seq,aotuv,psy_look->n,1,1,0); - else - _analysis_output("aotuvM1_R",seq,aotuv,psy_look->n,1,1,0); - }else{ - _analysis_output("aotuvM1",seq,aotuv,psy_look->n,1,1,0); - } - } -#endif - - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("mask1L",seq,logmask,n/2,1,0,0); - else - _analysis_output("mask1R",seq,logmask,n/2,1,0,0); - }else{ - _analysis_output("mask1",seq,logmask,n/2,1,0,0); - } -#endif - - /* this algorithm is hardwired to floor 1 for now; abort out if - we're *not* floor1. This won't happen unless someone has - broken the encode setup lib. Guard it anyway. */ - if(ci->floor_type[info->floorsubmap[submap]]!=1)return(-1); - - floor_posts[i][PACKETBLOBS/2]= - floor1_fit(vb,b->flr[info->floorsubmap[submap]], - logmdct, - logmask); - - /* are we managing bitrate? If so, perform two more fits for - later rate tweaking (fits represent hi/lo) */ - if(vorbis_bitrate_managed(vb) && floor_posts[i][PACKETBLOBS/2]){ - /* higher rate by way of lower noise curve */ - - _vp_offset_and_mix(psy_look, - noise, - tone, - 2, - logmask, - mdct, - logmdct); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("mask2L",seq,logmask,n/2,1,0,0); - else - _analysis_output("mask2R",seq,logmask,n/2,1,0,0); - }else{ - _analysis_output("mask2",seq,logmask,n/2,1,0,0); - } -#endif - - floor_posts[i][PACKETBLOBS-1]= - floor1_fit(vb,b->flr[info->floorsubmap[submap]], - logmdct, - logmask); - - /* lower rate by way of higher noise curve */ - _vp_offset_and_mix(psy_look, - noise, - tone, - 0, - logmask, - mdct, - logmdct); - -#if 0 - if(vi->channels==2){ - if(i==0) - _analysis_output("mask0L",seq,logmask,n/2,1,0,0); - else - _analysis_output("mask0R",seq,logmask,n/2,1,0,0); - }else{ - _analysis_output("mask0",seq,logmask,n/2,1,0,0); - } -#endif - - floor_posts[i][0]= - floor1_fit(vb,b->flr[info->floorsubmap[submap]], - logmdct, - logmask); - - /* we also interpolate a range of intermediate curves for - intermediate rates */ - for(k=1;kflr[info->floorsubmap[submap]], - floor_posts[i][0], - floor_posts[i][PACKETBLOBS/2], - k*65536/(PACKETBLOBS/2)); - for(k=PACKETBLOBS/2+1;kflr[info->floorsubmap[submap]], - floor_posts[i][PACKETBLOBS/2], - floor_posts[i][PACKETBLOBS-1], - (k-PACKETBLOBS/2)*65536/(PACKETBLOBS/2)); - } - } - } - vbi->ampmax=global_ampmax; - - /* - the next phases are performed once for vbr-only and PACKETBLOB - times for bitrate managed modes. - - 1) encode actual mode being used - 2) encode the floor for each channel, compute coded mask curve/res - 3) normalize and couple. - 4) encode residue - 5) save packet bytes to the packetblob vector - - */ - - /* iterate over the many masking curve fits we've created */ - - { - int **couple_bundle=alloca(sizeof(*couple_bundle)*vi->channels); - int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); - - for(k=(vorbis_bitrate_managed(vb)?0:PACKETBLOBS/2); - k<=(vorbis_bitrate_managed(vb)?PACKETBLOBS-1:PACKETBLOBS/2); - k++){ - oggpack_buffer *opb=vbi->packetblob[k]; - - /* start out our new packet blob with packet type and mode */ - /* Encode the packet type */ - oggpack_write(opb,0,1); - /* Encode the modenumber */ - /* Encode frame mode, pre,post windowsize, then dispatch */ - oggpack_write(opb,modenumber,b->modebits); - if(vb->W){ - oggpack_write(opb,vb->lW,1); - oggpack_write(opb,vb->nW,1); - } - - /* encode floor, compute masking curve, sep out residue */ - for(i=0;ichannels;i++){ - int submap=info->chmuxlist[i]; - int *ilogmask=iwork[i]; - - nonzero[i]=floor1_encode(opb,vb,b->flr[info->floorsubmap[submap]], - floor_posts[i][k], - ilogmask); -#if 0 - { - char buf[80]; - sprintf(buf,"maskI%c%d",i?'R':'L',k); - float work[n/2]; - for(j=0;jpsy_g_param, - psy_look, - info, - gmdct, - iwork, - nonzero, - ci->psy_g_param.sliding_lowpass[vb->W][k], - vi->channels); - -#if 0 - for(i=0;ichannels;i++){ - char buf[80]; - sprintf(buf,"res%c%d",i?'R':'L',k); - float work[n/2]; - for(j=0;jsubmaps;i++){ - int ch_in_bundle=0; - long **classifications; - int resnum=info->residuesubmap[i]; - - for(j=0;jchannels;j++){ - if(info->chmuxlist[j]==i){ - zerobundle[ch_in_bundle]=0; - if(nonzero[j])zerobundle[ch_in_bundle]=1; - couple_bundle[ch_in_bundle++]=iwork[j]; - } - } - - classifications=_residue_P[ci->residue_type[resnum]]-> - class(vb,b->residue[resnum],couple_bundle,zerobundle,ch_in_bundle); - - ch_in_bundle=0; - for(j=0;jchannels;j++) - if(info->chmuxlist[j]==i) - couple_bundle[ch_in_bundle++]=iwork[j]; - - _residue_P[ci->residue_type[resnum]]-> - forward(opb,vb,b->residue[resnum], - couple_bundle,zerobundle,ch_in_bundle,classifications,i); - } - - /* ok, done encoding. Next protopacket. */ - } - - } - -#if 0 - seq++; - total+=ci->blocksizes[vb->W]/4+ci->blocksizes[vb->nW]/4; -#endif - return(0); -} - -static int mapping0_inverse(vorbis_block *vb,vorbis_info_mapping *l){ - vorbis_dsp_state *vd=vb->vd; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - private_state *b=vd->backend_state; - vorbis_info_mapping0 *info=(vorbis_info_mapping0 *)l; - - int i,j; - long n=vb->pcmend=ci->blocksizes[vb->W]; - - float **pcmbundle=alloca(sizeof(*pcmbundle)*vi->channels); - int *zerobundle=alloca(sizeof(*zerobundle)*vi->channels); - - int *nonzero =alloca(sizeof(*nonzero)*vi->channels); - void **floormemo=alloca(sizeof(*floormemo)*vi->channels); - - /* recover the spectral envelope; store it in the PCM vector for now */ - for(i=0;ichannels;i++){ - int submap=info->chmuxlist[i]; - floormemo[i]=_floor_P[ci->floor_type[info->floorsubmap[submap]]]-> - inverse1(vb,b->flr[info->floorsubmap[submap]]); - if(floormemo[i]) - nonzero[i]=1; - else - nonzero[i]=0; - memset(vb->pcm[i],0,sizeof(*vb->pcm[i])*n/2); - } - - /* channel coupling can 'dirty' the nonzero listing */ - for(i=0;icoupling_steps;i++){ - if(nonzero[info->coupling_mag[i]] || - nonzero[info->coupling_ang[i]]){ - nonzero[info->coupling_mag[i]]=1; - nonzero[info->coupling_ang[i]]=1; - } - } - - /* recover the residue into our working vectors */ - for(i=0;isubmaps;i++){ - int ch_in_bundle=0; - for(j=0;jchannels;j++){ - if(info->chmuxlist[j]==i){ - if(nonzero[j]) - zerobundle[ch_in_bundle]=1; - else - zerobundle[ch_in_bundle]=0; - pcmbundle[ch_in_bundle++]=vb->pcm[j]; - } - } - - _residue_P[ci->residue_type[info->residuesubmap[i]]]-> - inverse(vb,b->residue[info->residuesubmap[i]], - pcmbundle,zerobundle,ch_in_bundle); - } - - /* channel coupling */ - for(i=info->coupling_steps-1;i>=0;i--){ - float *pcmM=vb->pcm[info->coupling_mag[i]]; - float *pcmA=vb->pcm[info->coupling_ang[i]]; - - for(j=0;j0) - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag-ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag+ang; - } - else - if(ang>0){ - pcmM[j]=mag; - pcmA[j]=mag+ang; - }else{ - pcmA[j]=mag; - pcmM[j]=mag-ang; - } - } - } - - /* compute and apply spectral envelope */ - for(i=0;ichannels;i++){ - float *pcm=vb->pcm[i]; - int submap=info->chmuxlist[i]; - _floor_P[ci->floor_type[info->floorsubmap[submap]]]-> - inverse2(vb,b->flr[info->floorsubmap[submap]], - floormemo[i],pcm); - } - - /* transform the PCM data; takes PCM vector, vb; modifies PCM vector */ - /* only MDCT right now.... */ - for(i=0;ichannels;i++){ - float *pcm=vb->pcm[i]; - mdct_backward(b->transform[vb->W][0],pcm,pcm); - } - - /* all done! */ - return(0); -} - -/* export hooks */ -const vorbis_func_mapping mapping0_exportbundle={ - &mapping0_pack, - &mapping0_unpack, - &mapping0_free_info, - &mapping0_forward, - &mapping0_inverse -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/masking.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/masking.h deleted file mode 100644 index 955e18c7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/masking.h +++ /dev/null @@ -1,784 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: masking curve data for psychoacoustics - - ********************************************************************/ - -#ifndef _V_MASKING_H_ -#define _V_MASKING_H_ - -/* more detailed ATH; the bass if flat to save stressing the floor - overly for only a bin or two of savings. */ - -#define MAX_ATH 88 -static const float ATH[]={ - /*15*/ -51, -52, -53, -54, -55, -56, -57, -58, - /*31*/ -59, -60, -61, -62, -63, -64, -65, -66, - /*63*/ -67, -68, -69, -70, -71, -72, -73, -74, - /*125*/ -75, -76, -77, -78, -80, -81, -82, -83, - /*250*/ -84, -85, -86, -87, -88, -88, -89, -89, - /*500*/ -90, -91, -91, -92, -93, -94, -95, -96, - /*1k*/ -96, -97, -98, -98, -99, -99,-100,-100, - /*2k*/ -101,-102,-103,-104,-106,-107,-107,-107, - /*4k*/ -107,-105,-103,-102,-101, -99, -98, -96, - /*8k*/ -95, -95, -96, -97, -96, -95, -93, -90, - /*16k*/ -80, -70, -50, -40, -30, -30, -30, -30 -}; - -/* The tone masking curves from Ehmer's and Fielder's papers have been - replaced by an empirically collected data set. The previously - published values were, far too often, simply on crack. */ - -#define EHMER_OFFSET 16 -#define EHMER_MAX 56 - -/* masking tones from -50 to 0dB, 62.5 through 16kHz at half octaves - test tones from -2 octaves to +5 octaves sampled at eighth octaves */ -/* (Vorbis 0dB, the loudest possible tone, is assumed to be ~100dB SPL - for collection of these curves) */ - -static const float tonemasks[P_BANDS][6][EHMER_MAX]={ - /* 62.5 Hz */ - {{ -60, -60, -60, -60, -60, -60, -60, -60, - -60, -60, -60, -60, -62, -62, -65, -73, - -69, -68, -68, -67, -70, -70, -72, -74, - -75, -79, -79, -80, -83, -88, -93, -100, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -48, -48, -48, -48, -48, -48, -48, -48, - -48, -48, -48, -48, -48, -53, -61, -66, - -66, -68, -67, -70, -76, -76, -72, -73, - -75, -76, -78, -79, -83, -88, -93, -100, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -37, -37, -37, -37, -37, -37, -37, -37, - -38, -40, -42, -46, -48, -53, -55, -62, - -65, -58, -56, -56, -61, -60, -65, -67, - -69, -71, -77, -77, -78, -80, -82, -84, - -88, -93, -98, -106, -112, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -25, -25, -25, -25, -25, -25, -25, -25, - -25, -26, -27, -29, -32, -38, -48, -52, - -52, -50, -48, -48, -51, -52, -54, -60, - -67, -67, -66, -68, -69, -73, -73, -76, - -80, -81, -81, -85, -85, -86, -88, -93, - -100, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -16, -16, -16, -16, -16, -16, -16, -16, - -17, -19, -20, -22, -26, -28, -31, -40, - -47, -39, -39, -40, -42, -43, -47, -51, - -57, -52, -55, -55, -60, -58, -62, -63, - -70, -67, -69, -72, -73, -77, -80, -82, - -83, -87, -90, -94, -98, -104, -115, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -8, -8, -8, -8, -8, -8, -8, -8, - -8, -8, -10, -11, -15, -19, -25, -30, - -34, -31, -30, -31, -29, -32, -35, -42, - -48, -42, -44, -46, -50, -50, -51, -52, - -59, -54, -55, -55, -58, -62, -63, -66, - -72, -73, -76, -75, -78, -80, -80, -81, - -84, -88, -90, -94, -98, -101, -106, -110}}, - /* 88Hz */ - {{ -66, -66, -66, -66, -66, -66, -66, -66, - -66, -66, -66, -66, -66, -67, -67, -67, - -76, -72, -71, -74, -76, -76, -75, -78, - -79, -79, -81, -83, -86, -89, -93, -97, - -100, -105, -110, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -47, -47, -47, -47, -47, -47, -47, -47, - -47, -47, -47, -48, -51, -55, -59, -66, - -66, -66, -67, -66, -68, -69, -70, -74, - -79, -77, -77, -78, -80, -81, -82, -84, - -86, -88, -91, -95, -100, -108, -116, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -36, -36, -36, -36, -36, -36, -36, -36, - -36, -37, -37, -41, -44, -48, -51, -58, - -62, -60, -57, -59, -59, -60, -63, -65, - -72, -71, -70, -72, -74, -77, -76, -78, - -81, -81, -80, -83, -86, -91, -96, -100, - -105, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -28, -28, -28, -28, -28, -28, -28, -28, - -28, -30, -32, -32, -33, -35, -41, -49, - -50, -49, -47, -48, -48, -52, -51, -57, - -65, -61, -59, -61, -64, -69, -70, -74, - -77, -77, -78, -81, -84, -85, -87, -90, - -92, -96, -100, -107, -112, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -19, -19, -19, -19, -19, -19, -19, -19, - -20, -21, -23, -27, -30, -35, -36, -41, - -46, -44, -42, -40, -41, -41, -43, -48, - -55, -53, -52, -53, -56, -59, -58, -60, - -67, -66, -69, -71, -72, -75, -79, -81, - -84, -87, -90, -93, -97, -101, -107, -114, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -9, -9, -9, -9, -9, -9, -9, -9, - -11, -12, -12, -15, -16, -20, -23, -30, - -37, -34, -33, -34, -31, -32, -32, -38, - -47, -44, -41, -40, -47, -49, -46, -46, - -58, -50, -50, -54, -58, -62, -64, -67, - -67, -70, -72, -76, -79, -83, -87, -91, - -96, -100, -104, -110, -999, -999, -999, -999}}, - /* 125 Hz */ - {{ -62, -62, -62, -62, -62, -62, -62, -62, - -62, -62, -63, -64, -66, -67, -66, -68, - -75, -72, -76, -75, -76, -78, -79, -82, - -84, -85, -90, -94, -101, -110, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -59, -59, -59, -59, -59, -59, -59, -59, - -59, -59, -59, -60, -60, -61, -63, -66, - -71, -68, -70, -70, -71, -72, -72, -75, - -81, -78, -79, -82, -83, -86, -90, -97, - -103, -113, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -53, -53, -53, -53, -53, -53, -53, -53, - -53, -54, -55, -57, -56, -57, -55, -61, - -65, -60, -60, -62, -63, -63, -66, -68, - -74, -73, -75, -75, -78, -80, -80, -82, - -85, -90, -96, -101, -108, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -46, -46, -46, -46, -46, -46, -46, -46, - -46, -46, -47, -47, -47, -47, -48, -51, - -57, -51, -49, -50, -51, -53, -54, -59, - -66, -60, -62, -67, -67, -70, -72, -75, - -76, -78, -81, -85, -88, -94, -97, -104, - -112, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -36, -36, -36, -36, -36, -36, -36, -36, - -39, -41, -42, -42, -39, -38, -41, -43, - -52, -44, -40, -39, -37, -37, -40, -47, - -54, -50, -48, -50, -55, -61, -59, -62, - -66, -66, -66, -69, -69, -73, -74, -74, - -75, -77, -79, -82, -87, -91, -95, -100, - -108, -115, -999, -999, -999, -999, -999, -999}, - { -28, -26, -24, -22, -20, -20, -23, -29, - -30, -31, -28, -27, -28, -28, -28, -35, - -40, -33, -32, -29, -30, -30, -30, -37, - -45, -41, -37, -38, -45, -47, -47, -48, - -53, -49, -48, -50, -49, -49, -51, -52, - -58, -56, -57, -56, -60, -61, -62, -70, - -72, -74, -78, -83, -88, -93, -100, -106}}, - /* 177 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -110, -105, -100, -95, -91, -87, -83, - -80, -78, -76, -78, -78, -81, -83, -85, - -86, -85, -86, -87, -90, -97, -107, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -110, -105, -100, -95, -90, - -85, -81, -77, -73, -70, -67, -67, -68, - -75, -73, -70, -69, -70, -72, -75, -79, - -84, -83, -84, -86, -88, -89, -89, -93, - -98, -105, -112, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-105, -100, -95, -90, -85, -80, -76, -71, - -68, -68, -65, -63, -63, -62, -62, -64, - -65, -64, -61, -62, -63, -64, -66, -68, - -73, -73, -74, -75, -76, -81, -83, -85, - -88, -89, -92, -95, -100, -108, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -80, -75, -71, -68, -65, -63, -62, -61, - -61, -61, -61, -59, -56, -57, -53, -50, - -58, -52, -50, -50, -52, -53, -54, -58, - -67, -63, -67, -68, -72, -75, -78, -80, - -81, -81, -82, -85, -89, -90, -93, -97, - -101, -107, -114, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - { -65, -61, -59, -57, -56, -55, -55, -56, - -56, -57, -55, -53, -52, -47, -44, -44, - -50, -44, -41, -39, -39, -42, -40, -46, - -51, -49, -50, -53, -54, -63, -60, -61, - -62, -66, -66, -66, -70, -73, -74, -75, - -76, -75, -79, -85, -89, -91, -96, -102, - -110, -999, -999, -999, -999, -999, -999, -999}, - { -52, -50, -49, -49, -48, -48, -48, -49, - -50, -50, -49, -46, -43, -39, -35, -33, - -38, -36, -32, -29, -32, -32, -32, -35, - -44, -39, -38, -38, -46, -50, -45, -46, - -53, -50, -50, -50, -54, -54, -53, -53, - -56, -57, -59, -66, -70, -72, -74, -79, - -83, -85, -90, -97, -114, -999, -999, -999}}, - /* 250 Hz */ - {{-999, -999, -999, -999, -999, -999, -110, -105, - -100, -95, -90, -86, -80, -75, -75, -79, - -80, -79, -80, -81, -82, -88, -95, -103, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -108, -103, -98, -93, - -88, -83, -79, -78, -75, -71, -67, -68, - -73, -73, -72, -73, -75, -77, -80, -82, - -88, -93, -100, -107, -114, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -110, -105, -101, -96, -90, - -86, -81, -77, -73, -69, -66, -61, -62, - -66, -64, -62, -65, -66, -70, -72, -76, - -81, -80, -84, -90, -95, -102, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -107, -103, -97, -92, -88, - -83, -79, -74, -70, -66, -59, -53, -58, - -62, -55, -54, -54, -54, -58, -61, -62, - -72, -70, -72, -75, -78, -80, -81, -80, - -83, -83, -88, -93, -100, -107, -115, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -105, -100, -95, -90, -85, - -80, -75, -70, -66, -62, -56, -48, -44, - -48, -46, -46, -43, -46, -48, -48, -51, - -58, -58, -59, -60, -62, -62, -61, -61, - -65, -64, -65, -68, -70, -74, -75, -78, - -81, -86, -95, -110, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -105, -100, -95, -90, -85, -80, - -75, -70, -65, -61, -55, -49, -39, -33, - -40, -35, -32, -38, -40, -33, -35, -37, - -46, -41, -45, -44, -46, -42, -45, -46, - -52, -50, -50, -50, -54, -54, -55, -57, - -62, -64, -66, -68, -70, -76, -81, -90, - -100, -110, -999, -999, -999, -999, -999, -999}}, - /* 354 hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -105, -98, -90, -85, -82, -83, -80, -78, - -84, -79, -80, -83, -87, -89, -91, -93, - -99, -106, -117, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -105, -98, -90, -85, -80, -75, -70, -68, - -74, -72, -74, -77, -80, -82, -85, -87, - -92, -89, -91, -95, -100, -106, -112, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -105, -98, -90, -83, -75, -71, -63, -64, - -67, -62, -64, -67, -70, -73, -77, -81, - -84, -83, -85, -89, -90, -93, -98, -104, - -109, -114, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -103, -96, -88, -81, -75, -68, -58, -54, - -56, -54, -56, -56, -58, -60, -63, -66, - -74, -69, -72, -72, -75, -74, -77, -81, - -81, -82, -84, -87, -93, -96, -99, -104, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -108, -102, -96, - -91, -85, -80, -74, -68, -60, -51, -46, - -48, -46, -43, -45, -47, -47, -49, -48, - -56, -53, -55, -58, -57, -63, -58, -60, - -66, -64, -67, -70, -70, -74, -77, -84, - -86, -89, -91, -93, -94, -101, -109, -118, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -108, -103, -98, -93, -88, - -83, -78, -73, -68, -60, -53, -44, -35, - -38, -38, -34, -34, -36, -40, -41, -44, - -51, -45, -46, -47, -46, -54, -50, -49, - -50, -50, -50, -51, -54, -57, -58, -60, - -66, -66, -66, -64, -65, -68, -77, -82, - -87, -95, -110, -999, -999, -999, -999, -999}}, - /* 500 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -107, -102, -97, -92, -87, -83, -78, -75, - -82, -79, -83, -85, -89, -92, -95, -98, - -101, -105, -109, -113, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -106, - -100, -95, -90, -86, -81, -78, -74, -69, - -74, -74, -76, -79, -83, -84, -86, -89, - -92, -97, -93, -100, -103, -107, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -106, -100, - -95, -90, -87, -83, -80, -75, -69, -60, - -66, -66, -68, -70, -74, -78, -79, -81, - -81, -83, -84, -87, -93, -96, -99, -103, - -107, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -108, -103, -98, - -93, -89, -85, -82, -78, -71, -62, -55, - -58, -58, -54, -54, -55, -59, -61, -62, - -70, -66, -66, -67, -70, -72, -75, -78, - -84, -84, -84, -88, -91, -90, -95, -98, - -102, -103, -106, -110, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -108, -103, -98, -94, - -90, -87, -82, -79, -73, -67, -58, -47, - -50, -45, -41, -45, -48, -44, -44, -49, - -54, -51, -48, -47, -49, -50, -51, -57, - -58, -60, -63, -69, -70, -69, -71, -74, - -78, -82, -90, -95, -101, -105, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -105, -101, -97, -93, -90, - -85, -80, -77, -72, -65, -56, -48, -37, - -40, -36, -34, -40, -50, -47, -38, -41, - -47, -38, -35, -39, -38, -43, -40, -45, - -50, -45, -44, -47, -50, -55, -48, -48, - -52, -66, -70, -76, -82, -90, -97, -105, - -110, -999, -999, -999, -999, -999, -999, -999}}, - /* 707 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -108, -103, -98, -93, -86, -79, -76, - -83, -81, -85, -87, -89, -93, -98, -102, - -107, -112, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -108, -103, -98, -93, -86, -79, -71, - -77, -74, -77, -79, -81, -84, -85, -90, - -92, -93, -92, -98, -101, -108, -112, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -108, -103, -98, -93, -87, -78, -68, -65, - -66, -62, -65, -67, -70, -73, -75, -78, - -82, -82, -83, -84, -91, -93, -98, -102, - -106, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -105, -100, -95, -90, -82, -74, -62, -57, - -58, -56, -51, -52, -52, -54, -54, -58, - -66, -59, -60, -63, -66, -69, -73, -79, - -83, -84, -80, -81, -81, -82, -88, -92, - -98, -105, -113, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -107, - -102, -97, -92, -84, -79, -69, -57, -47, - -52, -47, -44, -45, -50, -52, -42, -42, - -53, -43, -43, -48, -51, -56, -55, -52, - -57, -59, -61, -62, -67, -71, -78, -83, - -86, -94, -98, -103, -110, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -105, -100, - -95, -90, -84, -78, -70, -61, -51, -41, - -40, -38, -40, -46, -52, -51, -41, -40, - -46, -40, -38, -38, -41, -46, -41, -46, - -47, -43, -43, -45, -41, -45, -56, -67, - -68, -83, -87, -90, -95, -102, -107, -113, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 1000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -109, -105, -101, -96, -91, -84, -77, - -82, -82, -85, -89, -94, -100, -106, -110, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -106, -103, -98, -92, -85, -80, -71, - -75, -72, -76, -80, -84, -86, -89, -93, - -100, -107, -113, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -107, - -104, -101, -97, -92, -88, -84, -80, -64, - -66, -63, -64, -66, -69, -73, -77, -83, - -83, -86, -91, -98, -104, -111, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -107, - -104, -101, -97, -92, -90, -84, -74, -57, - -58, -52, -55, -54, -50, -52, -50, -52, - -63, -62, -69, -76, -77, -78, -78, -79, - -82, -88, -94, -100, -106, -111, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -106, -102, - -98, -95, -90, -85, -83, -78, -70, -50, - -50, -41, -44, -49, -47, -50, -50, -44, - -55, -46, -47, -48, -48, -54, -49, -49, - -58, -62, -71, -81, -87, -92, -97, -102, - -108, -114, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -106, -102, - -98, -95, -90, -85, -83, -78, -70, -45, - -43, -41, -47, -50, -51, -50, -49, -45, - -47, -41, -44, -41, -39, -43, -38, -37, - -40, -41, -44, -50, -58, -65, -73, -79, - -85, -92, -97, -101, -105, -109, -113, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 1414 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -107, -100, -95, -87, -81, - -85, -83, -88, -93, -100, -107, -114, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -107, -101, -95, -88, -83, -76, - -73, -72, -79, -84, -90, -95, -100, -105, - -110, -115, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -104, -98, -92, -87, -81, -70, - -65, -62, -67, -71, -74, -80, -85, -91, - -95, -99, -103, -108, -111, -114, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -103, -97, -90, -85, -76, -60, - -56, -54, -60, -62, -61, -56, -63, -65, - -73, -74, -77, -75, -78, -81, -86, -87, - -88, -91, -94, -98, -103, -110, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -105, - -100, -97, -92, -86, -81, -79, -70, -57, - -51, -47, -51, -58, -60, -56, -53, -50, - -58, -52, -50, -50, -53, -55, -64, -69, - -71, -85, -82, -78, -81, -85, -95, -102, - -112, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -105, - -100, -97, -92, -85, -83, -79, -72, -49, - -40, -43, -43, -54, -56, -51, -50, -40, - -43, -38, -36, -35, -37, -38, -37, -44, - -54, -60, -57, -60, -70, -75, -84, -92, - -103, -112, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 2000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -102, -95, -89, -82, - -83, -84, -90, -92, -99, -107, -113, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -107, -101, -95, -89, -83, -72, - -74, -78, -85, -88, -88, -90, -92, -98, - -105, -111, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -109, -103, -97, -93, -87, -81, -70, - -70, -67, -75, -73, -76, -79, -81, -83, - -88, -89, -97, -103, -110, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -107, -100, -94, -88, -83, -75, -63, - -59, -59, -63, -66, -60, -62, -67, -67, - -77, -76, -81, -88, -86, -92, -96, -102, - -109, -116, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -105, -98, -92, -86, -81, -73, -56, - -52, -47, -55, -60, -58, -52, -51, -45, - -49, -50, -53, -54, -61, -71, -70, -69, - -78, -79, -87, -90, -96, -104, -112, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -103, -96, -90, -86, -78, -70, -51, - -42, -47, -48, -55, -54, -54, -53, -42, - -35, -28, -33, -38, -37, -44, -47, -49, - -54, -63, -68, -78, -82, -89, -94, -99, - -104, -109, -114, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 2828 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -100, -90, -79, - -85, -81, -82, -82, -89, -94, -99, -103, - -109, -115, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -105, -97, -85, -72, - -74, -70, -70, -70, -76, -85, -91, -93, - -97, -103, -109, -115, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -112, -93, -81, -68, - -62, -60, -60, -57, -63, -70, -77, -82, - -90, -93, -98, -104, -109, -113, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -113, -100, -93, -84, -63, - -58, -48, -53, -54, -52, -52, -57, -64, - -66, -76, -83, -81, -85, -85, -90, -95, - -98, -101, -103, -106, -108, -111, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -105, -95, -86, -74, -53, - -50, -38, -43, -49, -43, -42, -39, -39, - -46, -52, -57, -56, -72, -69, -74, -81, - -87, -92, -94, -97, -99, -102, -105, -108, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -108, -99, -90, -76, -66, -45, - -43, -41, -44, -47, -43, -47, -40, -30, - -31, -31, -39, -33, -40, -41, -43, -53, - -59, -70, -73, -77, -79, -82, -84, -87, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 4000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -91, -76, - -75, -85, -93, -98, -104, -110, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -91, -70, - -70, -75, -86, -89, -94, -98, -101, -106, - -110, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -95, -80, -60, - -65, -64, -74, -83, -88, -91, -95, -99, - -103, -107, -110, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -95, -80, -58, - -55, -49, -66, -68, -71, -78, -78, -80, - -88, -85, -89, -97, -100, -105, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -110, -95, -80, -53, - -52, -41, -59, -59, -49, -58, -56, -63, - -86, -79, -90, -93, -98, -103, -107, -112, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -97, -91, -73, -45, - -40, -33, -53, -61, -49, -54, -50, -50, - -60, -52, -67, -74, -81, -92, -96, -100, - -105, -110, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 5657 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -113, -106, -99, -92, -77, - -80, -88, -97, -106, -115, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -116, -109, -102, -95, -89, -74, - -72, -88, -87, -95, -102, -109, -116, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -116, -109, -102, -95, -89, -75, - -66, -74, -77, -78, -86, -87, -90, -96, - -105, -115, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -115, -108, -101, -94, -88, -66, - -56, -61, -70, -65, -78, -72, -83, -84, - -93, -98, -105, -110, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -110, -105, -95, -89, -82, -57, - -52, -52, -59, -56, -59, -58, -69, -67, - -88, -82, -82, -89, -94, -100, -108, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -110, -101, -96, -90, -83, -77, -54, - -43, -38, -50, -48, -52, -48, -42, -42, - -51, -52, -53, -59, -65, -71, -78, -85, - -95, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 8000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -120, -105, -86, -68, - -78, -79, -90, -100, -110, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -120, -105, -86, -66, - -73, -77, -88, -96, -105, -115, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -120, -105, -92, -80, -61, - -64, -68, -80, -87, -92, -100, -110, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -120, -104, -91, -79, -52, - -60, -54, -64, -69, -77, -80, -82, -84, - -85, -87, -88, -90, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -118, -100, -87, -77, -49, - -50, -44, -58, -61, -61, -67, -65, -62, - -62, -62, -65, -68, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -115, -98, -84, -62, -49, - -44, -38, -46, -49, -49, -46, -39, -37, - -39, -40, -42, -43, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 11314 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -88, -74, - -77, -82, -82, -85, -90, -94, -99, -104, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -88, -66, - -70, -81, -80, -81, -84, -88, -91, -93, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -88, -61, - -63, -70, -71, -74, -77, -80, -83, -85, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -110, -86, -62, - -63, -62, -62, -58, -52, -50, -50, -52, - -54, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -118, -108, -84, -53, - -50, -50, -50, -55, -47, -45, -40, -40, - -40, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -118, -100, -73, -43, - -37, -42, -43, -53, -38, -37, -35, -35, - -38, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}}, - /* 16000 Hz */ - {{-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -91, -84, -74, - -80, -80, -80, -80, -80, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -91, -84, -74, - -68, -68, -68, -68, -68, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -86, -78, -70, - -60, -45, -30, -21, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -87, -78, -67, - -48, -38, -29, -21, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -86, -69, -56, - -45, -35, -33, -29, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}, - {-999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -110, -100, -83, -71, -48, - -27, -38, -37, -34, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999, - -999, -999, -999, -999, -999, -999, -999, -999}} -}; - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/mdct.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/mdct.c deleted file mode 100644 index f3f1ed80..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/mdct.c +++ /dev/null @@ -1,562 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: normalized modified discrete cosine transform - power of two length transform only [64 <= n ] - - Original algorithm adapted long ago from _The use of multirate filter - banks for coding of high quality digital audio_, by T. Sporer, - K. Brandenburg and B. Edler, collection of the European Signal - Processing Conference (EUSIPCO), Amsterdam, June 1992, Vol.1, pp - 211-214 - - The below code implements an algorithm that no longer looks much like - that presented in the paper, but the basic structure remains if you - dig deep enough to see it. - - This module DOES NOT INCLUDE code to generate/apply the window - function. Everybody has their own weird favorite including me... I - happen to like the properties of y=sin(.5PI*sin^2(x)), but others may - vehemently disagree. - - ********************************************************************/ - -/* this can also be run as an integer transform by uncommenting a - define in mdct.h; the integerization is a first pass and although - it's likely stable for Vorbis, the dynamic range is constrained and - roundoff isn't done (so it's noisy). Consider it functional, but - only a starting point. There's no point on a machine with an FPU */ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "mdct.h" -#include "os.h" -#include "misc.h" - -/* build lookups for trig functions; also pre-figure scaling and - some window function algebra. */ - -void mdct_init(mdct_lookup *lookup,int n){ - int *bitrev=_ogg_malloc(sizeof(*bitrev)*(n/4)); - DATA_TYPE *T=_ogg_malloc(sizeof(*T)*(n+n/4)); - - int i; - int n2=n>>1; - int log2n=lookup->log2n=rint(log((float)n)/log(2.f)); - lookup->n=n; - lookup->trig=T; - lookup->bitrev=bitrev; - -/* trig lookups... */ - - for(i=0;i>j;j++) - if((msb>>j)&i)acc|=1<scale=FLOAT_CONV(4.f/n); -} - -/* 8 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_8(DATA_TYPE *x){ - REG_TYPE r0 = x[6] + x[2]; - REG_TYPE r1 = x[6] - x[2]; - REG_TYPE r2 = x[4] + x[0]; - REG_TYPE r3 = x[4] - x[0]; - - x[6] = r0 + r2; - x[4] = r0 - r2; - - r0 = x[5] - x[1]; - r2 = x[7] - x[3]; - x[0] = r1 + r0; - x[2] = r1 - r0; - - r0 = x[5] + x[1]; - r1 = x[7] + x[3]; - x[3] = r2 + r3; - x[1] = r2 - r3; - x[7] = r1 + r0; - x[5] = r1 - r0; - -} - -/* 16 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_16(DATA_TYPE *x){ - REG_TYPE r0 = x[1] - x[9]; - REG_TYPE r1 = x[0] - x[8]; - - x[8] += x[0]; - x[9] += x[1]; - x[0] = MULT_NORM((r0 + r1) * cPI2_8); - x[1] = MULT_NORM((r0 - r1) * cPI2_8); - - r0 = x[3] - x[11]; - r1 = x[10] - x[2]; - x[10] += x[2]; - x[11] += x[3]; - x[2] = r0; - x[3] = r1; - - r0 = x[12] - x[4]; - r1 = x[13] - x[5]; - x[12] += x[4]; - x[13] += x[5]; - x[4] = MULT_NORM((r0 - r1) * cPI2_8); - x[5] = MULT_NORM((r0 + r1) * cPI2_8); - - r0 = x[14] - x[6]; - r1 = x[15] - x[7]; - x[14] += x[6]; - x[15] += x[7]; - x[6] = r0; - x[7] = r1; - - mdct_butterfly_8(x); - mdct_butterfly_8(x+8); -} - -/* 32 point butterfly (in place, 4 register) */ -STIN void mdct_butterfly_32(DATA_TYPE *x){ - REG_TYPE r0 = x[30] - x[14]; - REG_TYPE r1 = x[31] - x[15]; - - x[30] += x[14]; - x[31] += x[15]; - x[14] = r0; - x[15] = r1; - - r0 = x[28] - x[12]; - r1 = x[29] - x[13]; - x[28] += x[12]; - x[29] += x[13]; - x[12] = MULT_NORM( r0 * cPI1_8 - r1 * cPI3_8 ); - x[13] = MULT_NORM( r0 * cPI3_8 + r1 * cPI1_8 ); - - r0 = x[26] - x[10]; - r1 = x[27] - x[11]; - x[26] += x[10]; - x[27] += x[11]; - x[10] = MULT_NORM(( r0 - r1 ) * cPI2_8); - x[11] = MULT_NORM(( r0 + r1 ) * cPI2_8); - - r0 = x[24] - x[8]; - r1 = x[25] - x[9]; - x[24] += x[8]; - x[25] += x[9]; - x[8] = MULT_NORM( r0 * cPI3_8 - r1 * cPI1_8 ); - x[9] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 ); - - r0 = x[22] - x[6]; - r1 = x[7] - x[23]; - x[22] += x[6]; - x[23] += x[7]; - x[6] = r1; - x[7] = r0; - - r0 = x[4] - x[20]; - r1 = x[5] - x[21]; - x[20] += x[4]; - x[21] += x[5]; - x[4] = MULT_NORM( r1 * cPI1_8 + r0 * cPI3_8 ); - x[5] = MULT_NORM( r1 * cPI3_8 - r0 * cPI1_8 ); - - r0 = x[2] - x[18]; - r1 = x[3] - x[19]; - x[18] += x[2]; - x[19] += x[3]; - x[2] = MULT_NORM(( r1 + r0 ) * cPI2_8); - x[3] = MULT_NORM(( r1 - r0 ) * cPI2_8); - - r0 = x[0] - x[16]; - r1 = x[1] - x[17]; - x[16] += x[0]; - x[17] += x[1]; - x[0] = MULT_NORM( r1 * cPI3_8 + r0 * cPI1_8 ); - x[1] = MULT_NORM( r1 * cPI1_8 - r0 * cPI3_8 ); - - mdct_butterfly_16(x); - mdct_butterfly_16(x+16); - -} - -/* N point first stage butterfly (in place, 2 register) */ -STIN void mdct_butterfly_first(DATA_TYPE *T, - DATA_TYPE *x, - int points){ - - DATA_TYPE *x1 = x + points - 8; - DATA_TYPE *x2 = x + (points>>1) - 8; - REG_TYPE r0; - REG_TYPE r1; - - do{ - - r0 = x1[6] - x2[6]; - r1 = x1[7] - x2[7]; - x1[6] += x2[6]; - x1[7] += x2[7]; - x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - r0 = x1[4] - x2[4]; - r1 = x1[5] - x2[5]; - x1[4] += x2[4]; - x1[5] += x2[5]; - x2[4] = MULT_NORM(r1 * T[5] + r0 * T[4]); - x2[5] = MULT_NORM(r1 * T[4] - r0 * T[5]); - - r0 = x1[2] - x2[2]; - r1 = x1[3] - x2[3]; - x1[2] += x2[2]; - x1[3] += x2[3]; - x2[2] = MULT_NORM(r1 * T[9] + r0 * T[8]); - x2[3] = MULT_NORM(r1 * T[8] - r0 * T[9]); - - r0 = x1[0] - x2[0]; - r1 = x1[1] - x2[1]; - x1[0] += x2[0]; - x1[1] += x2[1]; - x2[0] = MULT_NORM(r1 * T[13] + r0 * T[12]); - x2[1] = MULT_NORM(r1 * T[12] - r0 * T[13]); - - x1-=8; - x2-=8; - T+=16; - - }while(x2>=x); -} - -/* N/stage point generic N stage butterfly (in place, 2 register) */ -STIN void mdct_butterfly_generic(DATA_TYPE *T, - DATA_TYPE *x, - int points, - int trigint){ - - DATA_TYPE *x1 = x + points - 8; - DATA_TYPE *x2 = x + (points>>1) - 8; - REG_TYPE r0; - REG_TYPE r1; - - do{ - - r0 = x1[6] - x2[6]; - r1 = x1[7] - x2[7]; - x1[6] += x2[6]; - x1[7] += x2[7]; - x2[6] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[7] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[4] - x2[4]; - r1 = x1[5] - x2[5]; - x1[4] += x2[4]; - x1[5] += x2[5]; - x2[4] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[5] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[2] - x2[2]; - r1 = x1[3] - x2[3]; - x1[2] += x2[2]; - x1[3] += x2[3]; - x2[2] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[3] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - - r0 = x1[0] - x2[0]; - r1 = x1[1] - x2[1]; - x1[0] += x2[0]; - x1[1] += x2[1]; - x2[0] = MULT_NORM(r1 * T[1] + r0 * T[0]); - x2[1] = MULT_NORM(r1 * T[0] - r0 * T[1]); - - T+=trigint; - x1-=8; - x2-=8; - - }while(x2>=x); -} - -STIN void mdct_butterflies(mdct_lookup *init, - DATA_TYPE *x, - int points){ - - DATA_TYPE *T=init->trig; - int stages=init->log2n-5; - int i,j; - - if(--stages>0){ - mdct_butterfly_first(T,x,points); - } - - for(i=1;--stages>0;i++){ - for(j=0;j<(1<>i)*j,points>>i,4<trig)_ogg_free(l->trig); - if(l->bitrev)_ogg_free(l->bitrev); - memset(l,0,sizeof(*l)); - } -} - -STIN void mdct_bitreverse(mdct_lookup *init, - DATA_TYPE *x){ - int n = init->n; - int *bit = init->bitrev; - DATA_TYPE *w0 = x; - DATA_TYPE *w1 = x = w0+(n>>1); - DATA_TYPE *T = init->trig+n; - - do{ - DATA_TYPE *x0 = x+bit[0]; - DATA_TYPE *x1 = x+bit[1]; - - REG_TYPE r0 = x0[1] - x1[1]; - REG_TYPE r1 = x0[0] + x1[0]; - REG_TYPE r2 = MULT_NORM(r1 * T[0] + r0 * T[1]); - REG_TYPE r3 = MULT_NORM(r1 * T[1] - r0 * T[0]); - - w1 -= 4; - - r0 = HALVE(x0[1] + x1[1]); - r1 = HALVE(x0[0] - x1[0]); - - w0[0] = r0 + r2; - w1[2] = r0 - r2; - w0[1] = r1 + r3; - w1[3] = r3 - r1; - - x0 = x+bit[2]; - x1 = x+bit[3]; - - r0 = x0[1] - x1[1]; - r1 = x0[0] + x1[0]; - r2 = MULT_NORM(r1 * T[2] + r0 * T[3]); - r3 = MULT_NORM(r1 * T[3] - r0 * T[2]); - - r0 = HALVE(x0[1] + x1[1]); - r1 = HALVE(x0[0] - x1[0]); - - w0[2] = r0 + r2; - w1[0] = r0 - r2; - w0[3] = r1 + r3; - w1[1] = r3 - r1; - - T += 4; - bit += 4; - w0 += 4; - - }while(w0n; - int n2=n>>1; - int n4=n>>2; - - /* rotate */ - - DATA_TYPE *iX = in+n2-7; - DATA_TYPE *oX = out+n2+n4; - DATA_TYPE *T = init->trig+n4; - - do{ - oX -= 4; - oX[0] = MULT_NORM(-iX[2] * T[3] - iX[0] * T[2]); - oX[1] = MULT_NORM (iX[0] * T[3] - iX[2] * T[2]); - oX[2] = MULT_NORM(-iX[6] * T[1] - iX[4] * T[0]); - oX[3] = MULT_NORM (iX[4] * T[1] - iX[6] * T[0]); - iX -= 8; - T += 4; - }while(iX>=in); - - iX = in+n2-8; - oX = out+n2+n4; - T = init->trig+n4; - - do{ - T -= 4; - oX[0] = MULT_NORM (iX[4] * T[3] + iX[6] * T[2]); - oX[1] = MULT_NORM (iX[4] * T[2] - iX[6] * T[3]); - oX[2] = MULT_NORM (iX[0] * T[1] + iX[2] * T[0]); - oX[3] = MULT_NORM (iX[0] * T[0] - iX[2] * T[1]); - iX -= 8; - oX += 4; - }while(iX>=in); - - mdct_butterflies(init,out+n2,n2); - mdct_bitreverse(init,out); - - /* roatate + window */ - - { - DATA_TYPE *oX1=out+n2+n4; - DATA_TYPE *oX2=out+n2+n4; - DATA_TYPE *iX =out; - T =init->trig+n2; - - do{ - oX1-=4; - - oX1[3] = MULT_NORM (iX[0] * T[1] - iX[1] * T[0]); - oX2[0] = -MULT_NORM (iX[0] * T[0] + iX[1] * T[1]); - - oX1[2] = MULT_NORM (iX[2] * T[3] - iX[3] * T[2]); - oX2[1] = -MULT_NORM (iX[2] * T[2] + iX[3] * T[3]); - - oX1[1] = MULT_NORM (iX[4] * T[5] - iX[5] * T[4]); - oX2[2] = -MULT_NORM (iX[4] * T[4] + iX[5] * T[5]); - - oX1[0] = MULT_NORM (iX[6] * T[7] - iX[7] * T[6]); - oX2[3] = -MULT_NORM (iX[6] * T[6] + iX[7] * T[7]); - - oX2+=4; - iX += 8; - T += 8; - }while(iXoX2); - } -} - -void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out){ - int n=init->n; - int n2=n>>1; - int n4=n>>2; - int n8=n>>3; - DATA_TYPE *w=alloca(n*sizeof(*w)); /* forward needs working space */ - DATA_TYPE *w2=w+n2; - - /* rotate */ - - /* window + rotate + step 1 */ - - REG_TYPE r0; - REG_TYPE r1; - DATA_TYPE *x0=in+n2+n4; - DATA_TYPE *x1=x0+1; - DATA_TYPE *T=init->trig+n2; - - int i=0; - - for(i=0;itrig+n2; - x0=out+n2; - - for(i=0;iscale); - x0[0] =MULT_NORM((w[0]*T[1]-w[1]*T[0])*init->scale); - w+=2; - T+=2; - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/mdct.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/mdct.h deleted file mode 100644 index 3b8c9ba4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/mdct.h +++ /dev/null @@ -1,70 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: modified discrete cosine transform prototypes - - ********************************************************************/ - -#ifndef _OGG_mdct_H_ -#define _OGG_mdct_H_ - -#include "vorbis/codec.h" - - - - - -/*#define MDCT_INTEGERIZED <- be warned there could be some hurt left here*/ -#ifdef MDCT_INTEGERIZED - -#define DATA_TYPE int -#define REG_TYPE register int -#define TRIGBITS 14 -#define cPI3_8 6270 -#define cPI2_8 11585 -#define cPI1_8 15137 - -#define FLOAT_CONV(x) ((int)((x)*(1<>TRIGBITS) -#define HALVE(x) ((x)>>1) - -#else - -#define DATA_TYPE float -#define REG_TYPE float -#define cPI3_8 .38268343236508977175F -#define cPI2_8 .70710678118654752441F -#define cPI1_8 .92387953251128675613F - -#define FLOAT_CONV(x) (x) -#define MULT_NORM(x) (x) -#define HALVE(x) ((x)*.5f) - -#endif - - -typedef struct { - int n; - int log2n; - - DATA_TYPE *trig; - int *bitrev; - - DATA_TYPE scale; -} mdct_lookup; - -extern void mdct_init(mdct_lookup *lookup,int n); -extern void mdct_clear(mdct_lookup *l); -extern void mdct_forward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); -extern void mdct_backward(mdct_lookup *init, DATA_TYPE *in, DATA_TYPE *out); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/misc.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/misc.h deleted file mode 100644 index 13788445..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/misc.h +++ /dev/null @@ -1,57 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: miscellaneous prototypes - - ********************************************************************/ - -#ifndef _V_RANDOM_H_ -#define _V_RANDOM_H_ -#include "vorbis/codec.h" - -extern void *_vorbis_block_alloc(vorbis_block *vb,long bytes); -extern void _vorbis_block_ripcord(vorbis_block *vb); -extern int ov_ilog(ogg_uint32_t v); - -#ifdef ANALYSIS -extern int analysis_noisy; -extern void _analysis_output(char *base,int i,float *v,int n,int bark,int dB, - ogg_int64_t off); -extern void _analysis_output_always(char *base,int i,float *v,int n,int bark,int dB, - ogg_int64_t off); -#endif - -#ifdef DEBUG_MALLOC - -#define _VDBG_GRAPHFILE "malloc.m" -#undef _VDBG_GRAPHFILE -extern void *_VDBG_malloc(void *ptr,long bytes,char *file,long line); -extern void _VDBG_free(void *ptr,char *file,long line); - -#ifndef MISC_C -#undef _ogg_malloc -#undef _ogg_calloc -#undef _ogg_realloc -#undef _ogg_free - -#define _ogg_malloc(x) _VDBG_malloc(NULL,(x),__FILE__,__LINE__) -#define _ogg_calloc(x,y) _VDBG_malloc(NULL,(x)*(y),__FILE__,__LINE__) -#define _ogg_realloc(x,y) _VDBG_malloc((x),(y),__FILE__,__LINE__) -#define _ogg_free(x) _VDBG_free((x),__FILE__,__LINE__) -#endif -#endif - -#endif - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/floor_all.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/floor_all.h deleted file mode 100644 index 20928aac..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/floor_all.h +++ /dev/null @@ -1,259 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: key floor settings - - ********************************************************************/ - -#include "vorbis/codec.h" -#include "backends.h" -#include "books/floor/floor_books.h" - -static const static_codebook*const _floor_128x4_books[]={ - &_huff_book_line_128x4_class0, - &_huff_book_line_128x4_0sub0, - &_huff_book_line_128x4_0sub1, - &_huff_book_line_128x4_0sub2, - &_huff_book_line_128x4_0sub3, -}; -static const static_codebook*const _floor_256x4_books[]={ - &_huff_book_line_256x4_class0, - &_huff_book_line_256x4_0sub0, - &_huff_book_line_256x4_0sub1, - &_huff_book_line_256x4_0sub2, - &_huff_book_line_256x4_0sub3, -}; -static const static_codebook*const _floor_128x7_books[]={ - &_huff_book_line_128x7_class0, - &_huff_book_line_128x7_class1, - - &_huff_book_line_128x7_0sub1, - &_huff_book_line_128x7_0sub2, - &_huff_book_line_128x7_0sub3, - &_huff_book_line_128x7_1sub1, - &_huff_book_line_128x7_1sub2, - &_huff_book_line_128x7_1sub3, -}; -static const static_codebook*const _floor_256x7_books[]={ - &_huff_book_line_256x7_class0, - &_huff_book_line_256x7_class1, - - &_huff_book_line_256x7_0sub1, - &_huff_book_line_256x7_0sub2, - &_huff_book_line_256x7_0sub3, - &_huff_book_line_256x7_1sub1, - &_huff_book_line_256x7_1sub2, - &_huff_book_line_256x7_1sub3, -}; -static const static_codebook*const _floor_128x11_books[]={ - &_huff_book_line_128x11_class1, - &_huff_book_line_128x11_class2, - &_huff_book_line_128x11_class3, - - &_huff_book_line_128x11_0sub0, - &_huff_book_line_128x11_1sub0, - &_huff_book_line_128x11_1sub1, - &_huff_book_line_128x11_2sub1, - &_huff_book_line_128x11_2sub2, - &_huff_book_line_128x11_2sub3, - &_huff_book_line_128x11_3sub1, - &_huff_book_line_128x11_3sub2, - &_huff_book_line_128x11_3sub3, -}; -static const static_codebook*const _floor_128x17_books[]={ - &_huff_book_line_128x17_class1, - &_huff_book_line_128x17_class2, - &_huff_book_line_128x17_class3, - - &_huff_book_line_128x17_0sub0, - &_huff_book_line_128x17_1sub0, - &_huff_book_line_128x17_1sub1, - &_huff_book_line_128x17_2sub1, - &_huff_book_line_128x17_2sub2, - &_huff_book_line_128x17_2sub3, - &_huff_book_line_128x17_3sub1, - &_huff_book_line_128x17_3sub2, - &_huff_book_line_128x17_3sub3, -}; -static const static_codebook*const _floor_256x4low_books[]={ - &_huff_book_line_256x4low_class0, - &_huff_book_line_256x4low_0sub0, - &_huff_book_line_256x4low_0sub1, - &_huff_book_line_256x4low_0sub2, - &_huff_book_line_256x4low_0sub3, -}; -static const static_codebook*const _floor_1024x27_books[]={ - &_huff_book_line_1024x27_class1, - &_huff_book_line_1024x27_class2, - &_huff_book_line_1024x27_class3, - &_huff_book_line_1024x27_class4, - - &_huff_book_line_1024x27_0sub0, - &_huff_book_line_1024x27_1sub0, - &_huff_book_line_1024x27_1sub1, - &_huff_book_line_1024x27_2sub0, - &_huff_book_line_1024x27_2sub1, - &_huff_book_line_1024x27_3sub1, - &_huff_book_line_1024x27_3sub2, - &_huff_book_line_1024x27_3sub3, - &_huff_book_line_1024x27_4sub1, - &_huff_book_line_1024x27_4sub2, - &_huff_book_line_1024x27_4sub3, -}; -static const static_codebook*const _floor_2048x27_books[]={ - &_huff_book_line_2048x27_class1, - &_huff_book_line_2048x27_class2, - &_huff_book_line_2048x27_class3, - &_huff_book_line_2048x27_class4, - - &_huff_book_line_2048x27_0sub0, - &_huff_book_line_2048x27_1sub0, - &_huff_book_line_2048x27_1sub1, - &_huff_book_line_2048x27_2sub0, - &_huff_book_line_2048x27_2sub1, - &_huff_book_line_2048x27_3sub1, - &_huff_book_line_2048x27_3sub2, - &_huff_book_line_2048x27_3sub3, - &_huff_book_line_2048x27_4sub1, - &_huff_book_line_2048x27_4sub2, - &_huff_book_line_2048x27_4sub3, -}; - -static const static_codebook*const _floor_512x17_books[]={ - &_huff_book_line_512x17_class1, - &_huff_book_line_512x17_class2, - &_huff_book_line_512x17_class3, - - &_huff_book_line_512x17_0sub0, - &_huff_book_line_512x17_1sub0, - &_huff_book_line_512x17_1sub1, - &_huff_book_line_512x17_2sub1, - &_huff_book_line_512x17_2sub2, - &_huff_book_line_512x17_2sub3, - &_huff_book_line_512x17_3sub1, - &_huff_book_line_512x17_3sub2, - &_huff_book_line_512x17_3sub3, -}; - -static const static_codebook*const _floor_Xx0_books[]={ - 0 -}; - -static const static_codebook*const *const _floor_books[11]={ - _floor_128x4_books, - _floor_256x4_books, - _floor_128x7_books, - _floor_256x7_books, - _floor_128x11_books, - _floor_128x17_books, - _floor_256x4low_books, - _floor_1024x27_books, - _floor_2048x27_books, - _floor_512x17_books, - _floor_Xx0_books, -}; - -static const vorbis_info_floor1 _floor[11]={ - /* 0: 128 x 4 */ - { - 1,{0},{4},{2},{0}, - {{1,2,3,4}}, - 4,{0,128, 33,8,16,70}, - - 60,30,500, 1.,18., 128 - }, - /* 1: 256 x 4 */ - { - 1,{0},{4},{2},{0}, - {{1,2,3,4}}, - 4,{0,256, 66,16,32,140}, - - 60,30,500, 1.,18., 256 - }, - /* 2: 128 x 7 */ - { - 2,{0,1},{3,4},{2,2},{0,1}, - {{-1,2,3,4},{-1,5,6,7}}, - 4,{0,128, 14,4,58, 2,8,28,90}, - - 60,30,500, 1.,18., 128 - }, - /* 3: 256 x 7 */ - { - 2,{0,1},{3,4},{2,2},{0,1}, - {{-1,2,3,4},{-1,5,6,7}}, - 4,{0,256, 28,8,116, 4,16,56,180}, - - 60,30,500, 1.,18., 256 - }, - /* 4: 128 x 11 */ - { - 4,{0,1,2,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, - {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, - - 2,{0,128, 8,33, 4,16,70, 2,6,12, 23,46,90}, - - 60,30,500, 1,18., 128 - }, - /* 5: 128 x 17 */ - { - 6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, - {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, - 2,{0,128, 12,46, 4,8,16, 23,33,70, 2,6,10, 14,19,28, 39,58,90}, - - 60,30,500, 1,18., 128 - }, - /* 6: 256 x 4 (low bitrate version) */ - { - 1,{0},{4},{2},{0}, - {{1,2,3,4}}, - 4,{0,256, 66,16,32,140}, - - 60,30,500, 1.,18., 256 - }, - /* 7: 1024 x 27 */ - { - 8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, - {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, - 2,{0,1024, 93,23,372, 6,46,186,750, 14,33,65, 130,260,556, - 3,10,18,28, 39,55,79,111, 158,220,312, 464,650,850}, - - 60,30,500, 3,18., 1024 - }, - /* 8: 2048 x 27 */ - { - 8,{0,1,2,2,3,3,4,4},{3,4,3,4,3},{0,1,1,2,2},{-1,0,1,2,3}, - {{4},{5,6},{7,8},{-1,9,10,11},{-1,12,13,14}}, - 2,{0,2048, 186,46,744, 12,92,372,1500, 28,66,130, 260,520,1112, - 6,20,36,56, 78,110,158,222, 316,440,624, 928,1300,1700}, - - 60,30,500, 3,18., 2048 - }, - /* 9: 512 x 17 */ - { - 6,{0,1,1,2,3,3},{2,3,3,3},{0,1,2,2},{-1,0,1,2}, - {{3},{4,5},{-1,6,7,8},{-1,9,10,11}}, - 2,{0,512, 46,186, 16,33,65, 93,130,278, - 7,23,39, 55,79,110, 156,232,360}, - - 60,30,500, 1,18., 512 - }, - - /* 10: X x 0 (LFE floor; edge posts only) */ - { - 0,{0}, {0},{0},{-1}, - {{-1}}, - 2,{0,12}, - 60,30,500, 1.,18., 10 - }, - -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_11.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_11.h deleted file mode 100644 index cc5eea24..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_11.h +++ /dev/null @@ -1,50 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: 11kHz settings - - ********************************************************************/ - -static const double _psy_lowpass_11[3]={4.5,5.5,30.,}; - -static const att3 _psy_tone_masteratt_11[3]={ - {{ 30, 25, 12}, 0, 0}, /* 0 */ - {{ 30, 25, 12}, 0, 0}, /* 0 */ - {{ 20, 0, -14}, 0, 0}, /* 0 */ -}; - -static const vp_adjblock _vp_tonemask_adj_11[3]={ - /* adjust for mode zero */ - /* 63 125 250 500 1 2 4 8 16 */ - {{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0,10, 2, 0,99,99,99}}, /* 0 */ - {{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0, 5, 0, 0,99,99,99}}, /* 1 */ - {{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0, 0, 0, 0,99,99,99}}, /* 2 */ -}; - - -static const noise3 _psy_noisebias_11[3]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - {{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 10, 10, 12, 12, 12, 99, 99, 99}, - {-15,-15,-15,-15,-10,-10, -5, 0, 0, 4, 4, 5, 5, 10, 99, 99, 99}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, - - {{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 10, 10, 12, 12, 12, 99, 99, 99}, - {-15,-15,-15,-15,-10,-10, -5, -5, -5, 0, 0, 0, 0, 0, 99, 99, 99}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 99, 99, 99}, - {-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10, 99, 99, 99}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24, 99, 99, 99}}}, -}; - -static const double _noise_thresh_11[3]={ .3,.5,.5 }; - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_16.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_16.h deleted file mode 100644 index 477cb4d9..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_16.h +++ /dev/null @@ -1,132 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: 16kHz settings - - ********************************************************************/ - -/* stereo mode by base quality level */ -static const adj_stereo _psy_stereo_modes_16[4]={ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ - {{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - { 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 3, 4, 4}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - {{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - { 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 4, 4, 4, 4, 4}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - {{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - { 5, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, -}; - -static const double _psy_lowpass_16[4]={6.5,8,30.,99.}; - -static const att3 _psy_tone_masteratt_16[4]={ - {{ 30, 25, 12}, 0, 0}, /* 0 */ - {{ 25, 22, 12}, 0, 0}, /* 0 */ - {{ 20, 12, 0}, 0, 0}, /* 0 */ - {{ 15, 0, -14}, 0, 0}, /* 0 */ -}; - -static const vp_adjblock _vp_tonemask_adj_16[4]={ - /* adjust for mode zero */ - /* 63 125 250 500 1 2 4 8 16 */ - {{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0,10, 0, 0, 0, 0, 0}}, /* 0 */ - {{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0,10, 0, 0, 0, 0, 0}}, /* 1 */ - {{-20,-20,-20,-20,-20,-16,-10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 2 */ - {{-30,-30,-30,-30,-30,-26,-20,-10, -5, 0, 0, 0, 0, 0, 0, 0, 0}}, /* 2 */ -}; - - -static const noise3 _psy_noisebias_16_short[4]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - {{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 10, 10, 10, 10, 12, 12, 14, 20}, - {-15,-15,-15,-15,-15,-10,-10, -5, 0, 0, 4, 5, 5, 6, 8, 8, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, - - {{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 6, 6, 6, 6, 8, 10, 12, 20}, - {-15,-15,-15,-15,-15,-15,-15,-10, -5, -5, -5, 4, 5, 6, 8, 8, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10,-10,-10,-10,-10,-10,-10,-10,-10}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 12}, - {-20,-20,-20,-20,-16,-12,-20,-14,-10,-10, -8, 0, 0, 0, 0, 2, 5}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, -5, -5, -5, -5, -5, 0, 0, 0, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10,-10,-10, -6}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, -}; - -static const noise3 _psy_noisebias_16_impulse[4]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - {{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 10, 10, 10, 10, 12, 12, 14, 20}, - {-15,-15,-15,-15,-15,-10,-10, -5, 0, 0, 4, 5, 5, 6, 8, 8, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, - - {{{-15,-15,-15,-15,-15,-10,-10,-5, 4, 4, 4, 4, 5, 5, 6, 8, 15}, - {-15,-15,-15,-15,-15,-15,-15,-10, -5, -5, -5, 0, 0, 0, 0, 4, 10}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10,-10,-10,-10,-10,-10,-10,-10,-10}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 4, 10}, - {-20,-20,-20,-20,-16,-12,-20,-14,-10,-10,-10,-10,-10,-10,-10, -7, -5}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, -5, -5, -5, -5, -5, 0, 0, 0, 6}, - {-30,-30,-30,-30,-26,-22,-20,-18,-18,-18,-20,-20,-20,-20,-20,-20,-16}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, -}; - -static const noise3 _psy_noisebias_16[4]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - {{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 6, 8, 8, 10, 10, 10, 14, 20}, - {-10,-10,-10,-10,-10, -5, -2, -2, 0, 0, 0, 4, 5, 6, 8, 8, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, - - {{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 6, 6, 6, 6, 8, 10, 12, 20}, - {-15,-15,-15,-15,-15,-10, -5, -5, 0, 0, 0, 4, 5, 6, 8, 8, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -6, -6}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 12}, - {-20,-20,-20,-20,-16,-12,-20,-10, -5, -5, 0, 0, 0, 0, 0, 2, 5}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, -5, -5, -5, -5, -5, 0, 0, 0, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10,-10,-10, -6}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24,-20,-20,-20}}}, -}; - -static const noiseguard _psy_noiseguards_16[4]={ - {10,10,-1}, - {10,10,-1}, - {20,20,-1}, - {20,20,-1}, -}; - -static const double _noise_thresh_16[4]={ .3,.5,.5,.5 }; - -static const int _noise_start_16[3]={ 256,256,9999 }; -static const int _noise_part_16[4]={ 8,8,8,8 }; - -static const int _psy_ath_floater_16[4]={ - -100,-100,-100,-105, -}; - -static const int _psy_ath_abs_16[4]={ - -130,-130,-130,-140, -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_44.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_44.h deleted file mode 100644 index 6c9eaa4e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_44.h +++ /dev/null @@ -1,641 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: key psychoacoustic settings for 44.1/48kHz - - ********************************************************************/ - - -/* preecho trigger settings *****************************************/ - -static const vorbis_info_psy_global _psy_global_44[5]={ - - {8, /* lines per eighth octave */ - {20.f,14.f,12.f,12.f,12.f,12.f,12.f}, - {-60.f,-30.f,-40.f,-40.f,-40.f,-40.f,-40.f}, 2,-75.f, - -6.f, - {99.},{{99.},{99.}},{0},{0},{{0.},{0.}} - }, - {8, /* lines per eighth octave */ - {14.f,10.f,10.f,10.f,10.f,10.f,10.f}, - {-40.f,-30.f,-25.f,-25.f,-25.f,-25.f,-25.f}, 2,-80.f, - -6.f, - {99.},{{99.},{99.}},{0},{0},{{0.},{0.}} - }, - {8, /* lines per eighth octave */ - {12.f,10.f,10.f,10.f,10.f,10.f,10.f}, - {-20.f,-20.f,-15.f,-15.f,-15.f,-15.f,-15.f}, 0,-80.f, - -6.f, - {99.},{{99.},{99.}},{0},{0},{{0.},{0.}} - }, - {8, /* lines per eighth octave */ - {10.f,8.f,8.f,8.f,8.f,8.f,8.f}, - {-20.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f}, 0,-80.f, - -6.f, - {99.},{{99.},{99.}},{0},{0},{{0.},{0.}} - }, - {8, /* lines per eighth octave */ - {10.f,6.f,6.f,6.f,6.f,6.f,6.f}, - {-15.f,-15.f,-12.f,-12.f,-12.f,-12.f,-12.f}, 0,-85.f, - -6.f, - {99.},{{99.},{99.}},{0},{0},{{0.},{0.}} - }, -}; - -/* noise compander lookups * low, mid, high quality ****************/ -static const compandblock _psy_compand_44[6]={ - /* sub-mode Z short */ - {{ - 0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ - 8, 9,10,11,12,13,14, 15, /* 15dB */ - 16,17,18,19,20,21,22, 23, /* 23dB */ - 24,25,26,27,28,29,30, 31, /* 31dB */ - 32,33,34,35,36,37,38, 39, /* 39dB */ - }}, - /* mode_Z nominal short */ - {{ - 0, 1, 2, 3, 4, 5, 6, 6, /* 7dB */ - 7, 7, 7, 7, 6, 6, 6, 7, /* 15dB */ - 7, 8, 9,10,11,12,13, 14, /* 23dB */ - 15,16,17,17,17,18,18, 19, /* 31dB */ - 19,19,20,21,22,23,24, 25, /* 39dB */ - }}, - /* mode A short */ - {{ - 0, 1, 2, 3, 4, 5, 5, 5, /* 7dB */ - 6, 6, 6, 5, 4, 4, 4, 4, /* 15dB */ - 4, 4, 5, 5, 5, 6, 6, 6, /* 23dB */ - 7, 7, 7, 8, 8, 8, 9, 10, /* 31dB */ - 11,12,13,14,15,16,17, 18, /* 39dB */ - }}, - /* sub-mode Z long */ - {{ - 0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ - 8, 9,10,11,12,13,14, 15, /* 15dB */ - 16,17,18,19,20,21,22, 23, /* 23dB */ - 24,25,26,27,28,29,30, 31, /* 31dB */ - 32,33,34,35,36,37,38, 39, /* 39dB */ - }}, - /* mode_Z nominal long */ - {{ - 0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ - 8, 9,10,11,12,12,13, 13, /* 15dB */ - 13,14,14,14,15,15,15, 15, /* 23dB */ - 16,16,17,17,17,18,18, 19, /* 31dB */ - 19,19,20,21,22,23,24, 25, /* 39dB */ - }}, - /* mode A long */ - {{ - 0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ - 8, 8, 7, 6, 5, 4, 4, 4, /* 15dB */ - 4, 4, 5, 5, 5, 6, 6, 6, /* 23dB */ - 7, 7, 7, 8, 8, 8, 9, 10, /* 31dB */ - 11,12,13,14,15,16,17, 18, /* 39dB */ - }} -}; - -/* tonal masking curve level adjustments *************************/ - -static const vp_adjblock _vp_tonemask_adj_longblock[12]={ - - /* 63 125 250 500 1 2 4 8 16 */ - - {{ -3, -8,-13,-15,-10,-10,-10,-10,-10,-10,-10, 0, 0, 0, 0, 0, 0}}, /* -1 */ - -/* {{-15,-15,-15,-15,-10, -8, -4, -2, 0, 0, 0, 10, 0, 0, 0, 0, 0}}, 0 */ - {{ -4,-10,-14,-16,-15,-14,-13,-12,-12,-12,-11, -1, -1, -1, -1, -1, 0}}, /* 0 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 5, 0, 0, 0, 0, 0}}, 1 */ - {{ -6,-12,-14,-16,-15,-15,-14,-13,-13,-12,-12, -2, -2, -1, -1, -1, 0}}, /* 1 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 2 */ - {{-12,-13,-14,-16,-16,-16,-15,-14,-13,-12,-12, -6, -3, -1, -1, -1, 0}}, /* 2 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 3 */ - {{-15,-15,-15,-16,-16,-16,-16,-14,-13,-13,-13,-10, -4, -2, -1, -1, 0}}, /* 3 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, *//* 4 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 4 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 5 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 5 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 6 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -8, -4, -2, -2, 0}}, /* 6 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 7 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 7 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 8 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 8 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 9 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 9 */ - -/* {{-15,-15,-15,-15,-15,-12,-10, -8, 0, 0, 0, 0, 0, 0, 0, 0, 0}}, 10 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 10 */ -}; - -static const vp_adjblock _vp_tonemask_adj_otherblock[12]={ - /* 63 125 250 500 1 2 4 8 16 */ - - {{ -3, -8,-13,-15,-10,-10, -9, -9, -9, -9, -9, 1, 1, 1, 1, 1, 1}}, /* -1 */ - -/* {{-20,-20,-20,-20,-14,-12,-10, -8, -4, 0, 0, 10, 0, 0, 0, 0, 0}}, 0 */ - {{ -4,-10,-14,-16,-14,-13,-12,-12,-11,-11,-10, 0, 0, 0, 0, 0, 0}}, /* 0 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 5, 0, 0, 0, 0, 0}}, 1 */ - {{ -6,-12,-14,-16,-15,-15,-14,-13,-13,-12,-12, -2, -2, -1, 0, 0, 0}}, /* 1 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 2 */ - {{-12,-13,-14,-16,-16,-16,-15,-14,-13,-12,-12, -5, -2, -1, 0, 0, 0}}, /* 2 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 3 */ - {{-15,-15,-15,-16,-16,-16,-16,-14,-13,-13,-13,-10, -4, -2, 0, 0, 0}}, /* 3 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 4 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 4 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 5 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-13,-11, -7 -3, -1, -1 , 0}}, /* 5 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 6 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -8, -4, -2, -2, 0}}, /* 6 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 7 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 7 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 8 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 8 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 9 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 9 */ - -/* {{-20,-20,-20,-20,-20,-18,-16,-14,-10, 0, 0, 0, 0, 0, 0, 0, 0}}, 10 */ - {{-16,-16,-16,-16,-16,-16,-16,-15,-14,-14,-14,-12, -9, -4, -2, -2, 0}}, /* 10 */ -}; - -/* noise bias (transition block) */ -static const noise3 _psy_noisebias_trans[12]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - /* -1 */ - {{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2, 2, 2, 3, 6, 6, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, - /* 0 - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14, -8, -4, 0, 0, 0, 0, 2, 4, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -4, -4, -4, -2}}},*/ - {{{-15,-15,-15,-15,-15,-12, -6, -4, 0, 2, 4, 4, 5, 5, 5, 8, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14, -8, -4, 0, 0, 0, 0, 2, 3, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -4, -4, -4, -2}}}, - /* 1 - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 8}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}},*/ - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 5, 8, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2, 0, 1, 4}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}}, - /* 2 - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, */ - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -2, -1, 0, 3}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -7, -4}}}, - /* 3 - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -2, 0, 2}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, - /* 4 - {{{-20,-20,-20,-20,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 5}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ - {{{-20,-20,-20,-20,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -3, -3, -3, -3, -2, -1, 1}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, - /* 5 - {{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -4, -4, -4, -4, -2, -1, 2}, - {-34,-34,-34,-34,-30,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}}, */ - {{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -4, -4, -4, -4, -3, -1, 0}, - {-34,-34,-34,-34,-30,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}}, - /* 6 - {{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-32,-32,-32,-32,-28,-24,-24,-18,-14, -8, -6, -6, -6, -6, -4, -2, 1}, - {-34,-34,-34,-34,-30,-26,-24,-18,-17,-15,-15,-15,-15,-13,-13,-12, -8}}},*/ - {{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-32,-32,-32,-32,-28,-24,-24,-18,-14, -8, -6, -6, -6, -6, -5, -2, 0}, - {-34,-34,-34,-34,-30,-26,-26,-24,-22,-19,-19,-19,-19,-18,-17,-16,-12}}}, - /* 7 - {{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-32,-32,-32,-32,-28,-24,-24,-18,-14,-12,-10, -8, -8, -8, -6, -4, 0}, - {-34,-34,-34,-34,-30,-26,-26,-24,-22,-19,-19,-19,-19,-18,-17,-16,-12}}},*/ - {{{-24,-24,-24,-24,-20,-18,-14, -8, -1, 1, 1, 1, 2, 3, 3, 4, 7}, - {-32,-32,-32,-32,-28,-24,-24,-24,-18,-14,-12,-10,-10,-10, -8, -6, -2}, - {-34,-34,-34,-34,-30,-26,-26,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}}, - /* 8 - {{{-24,-24,-24,-24,-22,-20,-15,-10, -8, -2, 0, 0, 0, 1, 2, 3, 7}, - {-36,-36,-36,-36,-30,-30,-30,-24,-18,-14,-12,-10,-10,-10, -8, -6, -2}, - {-36,-36,-36,-36,-34,-30,-28,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}},*/ - {{{-24,-24,-24,-24,-22,-20,-15,-10, -8, -2, 0, 0, 0, 1, 2, 3, 7}, - {-36,-36,-36,-36,-30,-30,-30,-24,-20,-16,-16,-16,-16,-14,-12,-10, -7}, - {-36,-36,-36,-36,-34,-30,-28,-26,-24,-30,-30,-30,-30,-30,-30,-24,-20}}}, - /* 9 - {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, - {-36,-36,-36,-36,-34,-32,-32,-28,-20,-16,-16,-16,-16,-14,-12,-10, -7}, - {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}},*/ - {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, - {-38,-38,-38,-38,-36,-34,-34,-30,-24,-20,-20,-20,-20,-18,-16,-12,-10}, - {-40,-40,-40,-40,-40,-40,-40,-38,-35,-35,-35,-35,-35,-35,-35,-35,-30}}}, - /* 10 */ - {{{-30,-30,-30,-30,-30,-30,-30,-28,-20,-14,-14,-14,-14,-14,-14,-12,-10}, - {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-20}, - {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, -}; - -/* noise bias (long block) */ -static const noise3 _psy_noisebias_long[12]={ - /*63 125 250 500 1k 2k 4k 8k 16k*/ - /* -1 */ - {{{-10,-10,-10,-10,-10, -4, 0, 0, 0, 6, 6, 6, 6, 10, 10, 12, 20}, - {-20,-20,-20,-20,-20,-20,-10, -2, 0, 0, 0, 0, 0, 2, 4, 6, 15}, - {-20,-20,-20,-20,-20,-20,-20,-10, -6, -6, -6, -6, -6, -4, -4, -4, -2}}}, - - /* 0 */ - /* {{{-10,-10,-10,-10,-10,-10, -8, 2, 2, 2, 4, 4, 5, 5, 5, 8, 10}, - {-20,-20,-20,-20,-20,-20,-20,-14, -6, 0, 0, 0, 0, 0, 2, 4, 10}, - {-20,-20,-20,-20,-20,-20,-20,-14, -8, -6, -6, -6, -6, -4, -4, -4, -2}}},*/ - {{{-10,-10,-10,-10,-10,-10, -8, 2, 2, 2, 4, 4, 5, 5, 5, 8, 10}, - {-20,-20,-20,-20,-20,-20,-20,-14, -6, 0, 0, 0, 0, 0, 2, 3, 6}, - {-20,-20,-20,-20,-20,-20,-20,-14, -8, -6, -6, -6, -6, -4, -4, -4, -2}}}, - /* 1 */ - /* {{{-10,-10,-10,-10,-10,-10, -8, -4, 0, 2, 4, 4, 5, 5, 5, 8, 10}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 8}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}},*/ - {{{-10,-10,-10,-10,-10,-10, -8, -4, 0, 2, 4, 4, 5, 5, 5, 8, 10}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2, 0, 1, 4}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -8, -8, -8, -8, -6, -6, -6, -4}}}, - /* 2 */ - /* {{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -2, -2, -2, -2, 0, 2, 6}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ - {{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 5, 6, 10}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -2, -1, 0, 3}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}}, - /* 3 */ - /* {{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 6}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ - {{{-10,-10,-10,-10,-10,-10,-10, -8, 0, 2, 2, 2, 4, 4, 4, 5, 8}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -2, 0, 2}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -5}}}, - /* 4 */ - /* {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -1, 1, 5}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -4}}},*/ - {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10, -4, -3, -3, -3, -3, -2, -1, 1}, - {-20,-20,-20,-20,-20,-20,-20,-14,-10,-10,-10,-10,-10, -8, -8, -8, -7}}}, - /* 5 */ - /* {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, - {-22,-22,-22,-22,-22,-22,-22,-16,-12, -6, -4, -4, -4, -4, -2, -1, 2}, - {-24,-24,-24,-24,-24,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -5}}},*/ - {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, - {-22,-22,-22,-22,-22,-22,-22,-16,-12, -6, -4, -4, -4, -4, -3, -1, 0}, - {-24,-24,-24,-24,-24,-24,-24,-18,-14,-12,-12,-12,-12,-10,-10, -9, -8}}}, - /* 6 */ - /* {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, - {-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -6, -6, -6, -6, -4, -2, 1}, - {-26,-26,-26,-26,-26,-26,-26,-18,-16,-15,-15,-15,-15,-13,-13,-12, -8}}},*/ - {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, - {-24,-24,-24,-24,-24,-24,-24,-18,-14, -8, -6, -6, -6, -6, -5, -2, 0}, - {-26,-26,-26,-26,-26,-26,-26,-18,-16,-15,-15,-15,-15,-13,-13,-12,-10}}}, - /* 7 */ - {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 1, 1, 1, 2, 3, 3, 4, 7}, - {-24,-24,-24,-24,-24,-24,-24,-18,-14,-10, -8, -8, -8, -8, -6, -4, 0}, - {-26,-26,-26,-26,-26,-26,-26,-22,-20,-19,-19,-19,-19,-18,-17,-16,-12}}}, - /* 8 */ - {{{-15,-15,-15,-15,-15,-15,-15,-10, -4, 0, 0, 0, 0, 1, 2, 3, 7}, - {-26,-26,-26,-26,-26,-26,-26,-20,-16,-12,-10,-10,-10,-10, -8, -6, -2}, - {-28,-28,-28,-28,-28,-28,-28,-26,-24,-24,-24,-24,-24,-24,-24,-20,-16}}}, - /* 9 */ - {{{-22,-22,-22,-22,-22,-22,-22,-18,-14, -8, -4, -4, -4, -4, -4, -2, 2}, - {-26,-26,-26,-26,-26,-26,-26,-22,-18,-16,-16,-16,-16,-14,-12,-10, -7}, - {-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-24,-20}}}, - /* 10 */ - {{{-24,-24,-24,-24,-24,-24,-24,-24,-24,-18,-14,-14,-14,-14,-14,-12,-10}, - {-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-20}, - {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, -}; - -/* noise bias (impulse block) */ -static const noise3 _psy_noisebias_impulse[12]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - /* -1 */ - {{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2, 2, 2, 3, 6, 6, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, - - /* 0 */ - /* {{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 4, 8, 8, 8, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-22,-20,-14, -6, -2, 0, 0, 0, 0, 2, 4, 10}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}},*/ - {{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 4, 8, 8, 8, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-22,-20,-14, -6, -2, 0, 0, 0, 0, 2, 3, 6}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, - /* 1 */ - {{{-12,-12,-12,-12,-12, -8, -6, -4, 0, 4, 4, 4, 4, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -4, -4, -2, -2, -2, -2, 2}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8,-10,-10, -8, -8, -8, -6, -4}}}, - /* 2 */ - {{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 8, 10, 10, 16}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, 0}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}}, - /* 3 */ - {{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 6, 8, 8, 14}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, 0}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}}, - /* 4 */ - {{{-16,-16,-16,-16,-16,-12,-10, -6, -2, 0, 0, 0, 0, 4, 6, 6, 12}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -4, -4, -4, -2, 0}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10,-10,-10,-10,-10,-10,-10, -8, -4}}}, - /* 5 */ - {{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 4, 6, 11}, - {-32,-32,-32,-32,-28,-24,-22,-16,-10, -6, -8, -8, -6, -6, -6, -4, -2}, - {-34,-34,-34,-34,-30,-26,-24,-18,-14,-12,-12,-12,-12,-12,-10, -9, -5}}}, - /* 6 - {{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 4, 6, 11}, - {-34,-34,-34,-34,-30,-30,-24,-20,-12,-12,-14,-14,-10, -9, -8, -6, -4}, - {-34,-34,-34,-34,-34,-30,-26,-20,-16,-15,-15,-15,-15,-15,-13,-12, -8}}},*/ - {{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 4, 6, 11}, - {-34,-34,-34,-34,-30,-30,-30,-24,-16,-16,-16,-16,-16,-16,-14,-14,-12}, - {-36,-36,-36,-36,-36,-34,-28,-24,-20,-20,-20,-20,-20,-20,-20,-18,-16}}}, - /* 7 */ - /* {{{-22,-22,-22,-22,-22,-20,-14,-10, -6, 0, 0, 0, 0, 4, 4, 6, 11}, - {-34,-34,-34,-34,-30,-30,-24,-20,-14,-14,-16,-16,-14,-12,-10,-10,-10}, - {-34,-34,-34,-34,-32,-32,-30,-24,-20,-19,-19,-19,-19,-19,-17,-16,-12}}},*/ - {{{-22,-22,-22,-22,-22,-20,-14,-10, -6, 0, 0, 0, 0, 4, 4, 6, 11}, - {-34,-34,-34,-34,-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-24,-22}, - {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-30,-24}}}, - /* 8 */ - /* {{{-24,-24,-24,-24,-24,-22,-14,-10, -6, -1, -1, -1, -1, 3, 3, 5, 10}, - {-34,-34,-34,-34,-30,-30,-30,-24,-20,-20,-20,-20,-20,-18,-16,-16,-14}, - {-36,-36,-36,-36,-36,-34,-28,-24,-24,-24,-24,-24,-24,-24,-24,-20,-16}}},*/ - {{{-24,-24,-24,-24,-24,-22,-14,-10, -6, -1, -1, -1, -1, 3, 3, 5, 10}, - {-34,-34,-34,-34,-34,-32,-32,-30,-26,-26,-26,-26,-26,-26,-26,-26,-24}, - {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-30,-24}}}, - /* 9 */ - /* {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, - {-36,-36,-36,-36,-34,-32,-32,-30,-26,-26,-26,-26,-26,-22,-20,-20,-18}, - {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}},*/ - {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -4, -4, -4, -4, -4, -2, 2}, - {-36,-36,-36,-36,-34,-32,-32,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26}, - {-40,-40,-40,-40,-40,-40,-40,-32,-30,-30,-30,-30,-30,-30,-30,-24,-20}}}, - /* 10 */ - {{{-30,-30,-30,-30,-30,-26,-24,-24,-24,-20,-16,-16,-16,-16,-16,-14,-12}, - {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-30,-30,-30,-30,-30,-30,-26}, - {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, -}; - -/* noise bias (padding block) */ -static const noise3 _psy_noisebias_padding[12]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - - /* -1 */ - {{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-20,-16, -8, -6, -6, -2, 2, 2, 3, 6, 6, 15}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, -6, -4, -2}}}, - - /* 0 */ - {{{-10,-10,-10,-10,-10, -4, 0, 0, 4, 8, 8, 8, 8, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -2, 2, 3, 6, 6, 8, 10}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, -4, -4, -4, -4, -2, 0, 2}}}, - /* 1 */ - {{{-12,-12,-12,-12,-12, -8, -6, -4, 0, 4, 4, 4, 4, 10, 12, 14, 20}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, 0, 0, 0, 2, 2, 4, 8}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -6, -6, -6, -6, -4, -2, 0}}}, - /* 2 */ - /* {{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 8, 10, 10, 16}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -4, 0, 0, 0, 2, 2, 4, 8}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}},*/ - {{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 8, 10, 10, 16}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1, 0, 0, 2, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}}, - /* 3 */ - {{{-14,-14,-14,-14,-14,-10, -8, -6, -2, 2, 2, 2, 2, 6, 8, 8, 14}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1, 0, 0, 2, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}}, - /* 4 */ - {{{-16,-16,-16,-16,-16,-12,-10, -6, -2, 0, 0, 0, 0, 4, 6, 6, 12}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -6, -1, -1, -1, -1, 0, 2, 6}, - {-30,-30,-30,-30,-26,-22,-20,-14,-10, -8, -8, -8, -8, -8, -6, -4, -2}}}, - /* 5 */ - {{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 6, 6, 12}, - {-32,-32,-32,-32,-28,-24,-22,-16,-12, -6, -3, -3, -3, -3, -2, 0, 4}, - {-34,-34,-34,-34,-30,-26,-24,-18,-14,-10,-10,-10,-10,-10, -8, -5, -3}}}, - /* 6 */ - {{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 6, 6, 12}, - {-34,-34,-34,-34,-30,-30,-24,-20,-14, -8, -4, -4, -4, -4, -3, -1, 4}, - {-34,-34,-34,-34,-34,-30,-26,-20,-16,-13,-13,-13,-13,-13,-11, -8, -6}}}, - /* 7 */ - {{{-20,-20,-20,-20,-20,-18,-14,-10, -4, 0, 0, 0, 0, 4, 6, 6, 12}, - {-34,-34,-34,-34,-30,-30,-30,-24,-16,-10, -8, -6, -6, -6, -5, -3, 1}, - {-34,-34,-34,-34,-32,-32,-28,-22,-18,-16,-16,-16,-16,-16,-14,-12,-10}}}, - /* 8 */ - {{{-22,-22,-22,-22,-22,-20,-14,-10, -4, 0, 0, 0, 0, 3, 5, 5, 11}, - {-34,-34,-34,-34,-30,-30,-30,-24,-16,-12,-10, -8, -8, -8, -7, -5, -2}, - {-36,-36,-36,-36,-36,-34,-28,-22,-20,-20,-20,-20,-20,-20,-20,-16,-14}}}, - /* 9 */ - {{{-28,-28,-28,-28,-28,-28,-28,-20,-14, -8, -2, -2, -2, -2, 0, 2, 6}, - {-36,-36,-36,-36,-34,-32,-32,-24,-16,-12,-12,-12,-12,-12,-10, -8, -5}, - {-40,-40,-40,-40,-40,-40,-40,-32,-26,-24,-24,-24,-24,-24,-24,-20,-18}}}, - /* 10 */ - {{{-30,-30,-30,-30,-30,-26,-24,-24,-24,-20,-12,-12,-12,-12,-12,-10, -8}, - {-40,-40,-40,-40,-40,-40,-40,-40,-35,-30,-25,-25,-25,-25,-25,-25,-15}, - {-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40}}}, -}; - - -static const noiseguard _psy_noiseguards_44[4]={ - {3,3,15}, - {3,3,15}, - {10,10,100}, - {10,10,100}, -}; - -static const int _psy_tone_suppress[12]={ - -20,-20,-20,-20,-20,-24,-30,-40,-40,-45,-45,-45, -}; -static const int _psy_tone_0dB[12]={ - 90,90,95,95,95,95,105,105,105,105,105,105, -}; -static const int _psy_noise_suppress[12]={ - -20,-20,-24,-24,-24,-24,-30,-40,-40,-45,-45,-45, -}; - -static const vorbis_info_psy _psy_info_template={ - /* blockflag */ - -1, - /* ath_adjatt, ath_maxatt */ - -140.,-140., - /* tonemask att boost/decay,suppr,curves */ - {0.f,0.f,0.f}, 0.,0., -40.f, {0.}, - - /*noisemaskp,supp, low/high window, low/hi guard, minimum */ - 1, -0.f, .5f, .5f, 0,0,0, - /* noiseoffset*3, noisecompand, max_curve_dB */ - {{-1},{-1},{-1}},{-1},105.f, - /* noise normalization - noise_p, start, partition, thresh. */ - 0,-1,-1,0., -}; - -/* ath ****************/ - -static const int _psy_ath_floater[12]={ - -100,-100,-100,-100,-100,-100,-105,-105,-105,-105,-110,-120, -}; -static const int _psy_ath_abs[12]={ - -130,-130,-130,-130,-140,-140,-140,-140,-140,-140,-140,-150, -}; - -/* stereo setup. These don't map directly to quality level, there's - an additional indirection as several of the below may be used in a - single bitmanaged stream - -****************/ - -/* various stereo possibilities */ - -/* stereo mode by base quality level */ -static const adj_stereo _psy_stereo_modes_44[12]={ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 -1 */ - {{ 4, 4, 4, 4, 4, 4, 4, 3, 2, 2, 1, 0, 0, 0, 0}, - { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 5, 4, 3}, - { 1, 2, 3, 4, 4, 4, 4, 4, 4, 5, 6, 7, 8, 8, 8}, - { 12,12.5, 13,13.5, 14,14.5, 15, 99, 99, 99, 99, 99, 99, 99, 99}}, - -/* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 */ - {{ 4, 4, 4, 4, 4, 4, 4, 3, 2, 1, 0, 0, 0, 0, 0}, - { 8, 8, 8, 8, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 3}, - { 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 6, 8, 8, 8, 8}, - { 12,12.5, 13,13.5, 14,14.5, 15, 99, 99, 99, 99, 99, 99, 99, 99}}, - - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 */ - {{ 3, 3, 3, 3, 3, 3, 3, 3, 2, 1, 0, 0, 0, 0, 0}, - { 8, 8, 8, 8, 6, 6, 5, 5, 5, 5, 5, 5, 5, 4, 3}, - { 1, 2, 3, 4, 4, 5, 6, 6, 6, 6, 6, 8, 8, 8, 8}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - - - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 */ - {{ 3, 3, 3, 3, 3, 3, 3, 2, 1, 1, 0, 0, 0, 0, 0}, - { 8, 8, 6, 6, 5, 5, 4, 4, 4, 4, 4, 4, 3, 2, 1}, - { 3, 4, 4, 5, 5, 6, 6, 6, 6, 6, 6, 8, 8, 8, 8}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 3 */ - {{ 2, 2, 2, 2, 2, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0}, - { 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 2, 1}, - { 4, 4, 5, 6, 6, 6, 6, 6, 8, 8, 10, 10, 10, 10, 10}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 4 */ - {{ 2, 2, 2, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 3, 2, 1, 0}, - { 6, 6, 6, 8, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 5 */ - {{ 2, 2, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 0, 0, 0, 0}, - { 6, 7, 8, 8, 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 6 */ - {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 3, 3, 3, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 8, 8, 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 7 */ - {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 3, 3, 3, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 8, 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 8 */ - {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 2, 2, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 8, 10, 10, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, 12}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 9 */ - {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 10 */ - {{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, - { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, -}; - -/* tone master attenuation by base quality mode and bitrate tweak */ -static const att3 _psy_tone_masteratt_44[12]={ - {{ 35, 21, 9}, 0, 0}, /* -1 */ - {{ 30, 20, 8}, -2, 1.25}, /* 0 */ - /* {{ 25, 14, 4}, 0, 0}, *//* 1 */ - {{ 25, 12, 2}, 0, 0}, /* 1 */ - /* {{ 20, 10, -2}, 0, 0}, *//* 2 */ - {{ 20, 9, -3}, 0, 0}, /* 2 */ - {{ 20, 9, -4}, 0, 0}, /* 3 */ - {{ 20, 9, -4}, 0, 0}, /* 4 */ - {{ 20, 6, -6}, 0, 0}, /* 5 */ - {{ 20, 3, -10}, 0, 0}, /* 6 */ - {{ 18, 1, -14}, 0, 0}, /* 7 */ - {{ 18, 0, -16}, 0, 0}, /* 8 */ - {{ 18, -2, -16}, 0, 0}, /* 9 */ - {{ 12, -2, -20}, 0, 0}, /* 10 */ -}; - -/* lowpass by mode **************/ -static const double _psy_lowpass_44[12]={ - /* 15.1,15.8,16.5,17.9,20.5,48.,999.,999.,999.,999.,999. */ - 13.9,15.1,15.8,16.5,17.2,18.9,20.1,48.,999.,999.,999.,999. -}; - -/* noise normalization **********/ - -static const int _noise_start_short_44[11]={ - /* 16,16,16,16,32,32,9999,9999,9999,9999 */ - 32,16,16,16,32,9999,9999,9999,9999,9999,9999 -}; -static const int _noise_start_long_44[11]={ - /* 128,128,128,256,512,512,9999,9999,9999,9999 */ - 256,128,128,256,512,9999,9999,9999,9999,9999,9999 -}; - -static const int _noise_part_short_44[11]={ - 8,8,8,8,8,8,8,8,8,8,8 -}; -static const int _noise_part_long_44[11]={ - 32,32,32,32,32,32,32,32,32,32,32 -}; - -static const double _noise_thresh_44[11]={ - /* .2,.2,.3,.4,.5,.5,9999.,9999.,9999.,9999., */ - .2,.2,.2,.4,.6,9999.,9999.,9999.,9999.,9999.,9999., -}; - -static const double _noise_thresh_5only[2]={ - .5,.5, -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_8.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_8.h deleted file mode 100644 index 277db843..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/psych_8.h +++ /dev/null @@ -1,100 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: 8kHz psychoacoustic settings - - ********************************************************************/ - -static const att3 _psy_tone_masteratt_8[3]={ - {{ 32, 25, 12}, 0, 0}, /* 0 */ - {{ 30, 25, 12}, 0, 0}, /* 0 */ - {{ 20, 0, -14}, 0, 0}, /* 0 */ -}; - -static const vp_adjblock _vp_tonemask_adj_8[3]={ - /* adjust for mode zero */ - /* 63 125 250 500 1 2 4 8 16 */ - {{-15,-15,-15,-15,-10,-10, -6, 0, 0, 0, 0,10, 0, 0,99,99,99}}, /* 1 */ - {{-15,-15,-15,-15,-10,-10, -6, 0, 0, 0, 0,10, 0, 0,99,99,99}}, /* 1 */ - {{-15,-15,-15,-15,-10,-10, -6, 0, 0, 0, 0, 0, 0, 0,99,99,99}}, /* 1 */ -}; - - -static const noise3 _psy_noisebias_8[3]={ - /* 63 125 250 500 1k 2k 4k 8k 16k*/ - {{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 8, 8, 8, 10, 10, 99, 99, 99}, - {-10,-10,-10,-10, -5, -5, -5, 0, 0, 4, 4, 4, 4, 4, 99, 99, 99}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, - - {{{-10,-10,-10,-10, -5, -5, -5, 0, 4, 8, 8, 8, 10, 10, 99, 99, 99}, - {-10,-10,-10,-10,-10,-10, -5, -5, -5, 0, 0, 0, 0, 0, 99, 99, 99}, - {-30,-30,-30,-30,-30,-24,-20,-14,-10, -6, -8, -8, -6, -6, 99, 99, 99}}}, - - {{{-15,-15,-15,-15,-15,-12,-10, -8, 0, 2, 4, 4, 5, 5, 99, 99, 99}, - {-30,-30,-30,-30,-26,-22,-20,-14,-12,-12,-10,-10,-10,-10, 99, 99, 99}, - {-30,-30,-30,-30,-26,-26,-26,-26,-26,-26,-26,-26,-26,-24, 99, 99, 99}}}, -}; - -/* stereo mode by base quality level */ -static const adj_stereo _psy_stereo_modes_8[3]={ - /* 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 */ - {{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - { 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - {{ 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - { 6, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, - {{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3}, - { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4}, - { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, - { 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99, 99}}, -}; - -static const noiseguard _psy_noiseguards_8[2]={ - {10,10,-1}, - {10,10,-1}, -}; - -static const compandblock _psy_compand_8[2]={ - {{ - 0, 1, 2, 3, 4, 5, 6, 7, /* 7dB */ - 8, 8, 9, 9,10,10,11, 11, /* 15dB */ - 12,12,13,13,14,14,15, 15, /* 23dB */ - 16,16,17,17,17,18,18, 19, /* 31dB */ - 19,19,20,21,22,23,24, 25, /* 39dB */ - }}, - {{ - 0, 1, 2, 3, 4, 5, 6, 6, /* 7dB */ - 7, 7, 6, 6, 5, 5, 4, 4, /* 15dB */ - 3, 3, 3, 4, 5, 6, 7, 8, /* 23dB */ - 9,10,11,12,13,14,15, 16, /* 31dB */ - 17,18,19,20,21,22,23, 24, /* 39dB */ - }}, -}; - -static const double _psy_lowpass_8[3]={3.,4.,4.}; -static const int _noise_start_8[2]={ - 64,64, -}; -static const int _noise_part_8[2]={ - 8,8, -}; - -static const int _psy_ath_floater_8[3]={ - -100,-100,-105, -}; - -static const int _psy_ath_abs_8[3]={ - -130,-130,-140, -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_16.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_16.h deleted file mode 100644 index 3e05471c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_16.h +++ /dev/null @@ -1,162 +0,0 @@ -/******************************************************************** - * * - * This FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel residue templates 16/22kHz - - ********************************************************************/ - -/***** residue backends *********************************************/ - -static const static_bookblock _resbook_16s_0={ - { - {0}, - {0,0,&_16c0_s_p1_0}, - {0}, - {0,0,&_16c0_s_p3_0}, - {0,0,&_16c0_s_p4_0}, - {0,0,&_16c0_s_p5_0}, - {0,0,&_16c0_s_p6_0}, - {&_16c0_s_p7_0,&_16c0_s_p7_1}, - {&_16c0_s_p8_0,&_16c0_s_p8_1}, - {&_16c0_s_p9_0,&_16c0_s_p9_1,&_16c0_s_p9_2} - } -}; -static const static_bookblock _resbook_16s_1={ - { - {0}, - {0,0,&_16c1_s_p1_0}, - {0}, - {0,0,&_16c1_s_p3_0}, - {0,0,&_16c1_s_p4_0}, - {0,0,&_16c1_s_p5_0}, - {0,0,&_16c1_s_p6_0}, - {&_16c1_s_p7_0,&_16c1_s_p7_1}, - {&_16c1_s_p8_0,&_16c1_s_p8_1}, - {&_16c1_s_p9_0,&_16c1_s_p9_1,&_16c1_s_p9_2} - } -}; -static const static_bookblock _resbook_16s_2={ - { - {0}, - {0,0,&_16c2_s_p1_0}, - {0,0,&_16c2_s_p2_0}, - {0,0,&_16c2_s_p3_0}, - {0,0,&_16c2_s_p4_0}, - {&_16c2_s_p5_0,&_16c2_s_p5_1}, - {&_16c2_s_p6_0,&_16c2_s_p6_1}, - {&_16c2_s_p7_0,&_16c2_s_p7_1}, - {&_16c2_s_p8_0,&_16c2_s_p8_1}, - {&_16c2_s_p9_0,&_16c2_s_p9_1,&_16c2_s_p9_2} - } -}; - -static const vorbis_residue_template _res_16s_0[]={ - {2,0,32, &_residue_44_mid, - &_huff_book__16c0_s_single,&_huff_book__16c0_s_single, - &_resbook_16s_0,&_resbook_16s_0}, -}; -static const vorbis_residue_template _res_16s_1[]={ - {2,0,32, &_residue_44_mid, - &_huff_book__16c1_s_short,&_huff_book__16c1_s_short, - &_resbook_16s_1,&_resbook_16s_1}, - - {2,0,32, &_residue_44_mid, - &_huff_book__16c1_s_long,&_huff_book__16c1_s_long, - &_resbook_16s_1,&_resbook_16s_1} -}; -static const vorbis_residue_template _res_16s_2[]={ - {2,0,32, &_residue_44_high, - &_huff_book__16c2_s_short,&_huff_book__16c2_s_short, - &_resbook_16s_2,&_resbook_16s_2}, - - {2,0,32, &_residue_44_high, - &_huff_book__16c2_s_long,&_huff_book__16c2_s_long, - &_resbook_16s_2,&_resbook_16s_2} -}; - -static const vorbis_mapping_template _mapres_template_16_stereo[3]={ - { _map_nominal, _res_16s_0 }, /* 0 */ - { _map_nominal, _res_16s_1 }, /* 1 */ - { _map_nominal, _res_16s_2 }, /* 2 */ -}; - -static const static_bookblock _resbook_16u_0={ - { - {0}, - {0,0,&_16u0__p1_0}, - {0,0,&_16u0__p2_0}, - {0,0,&_16u0__p3_0}, - {0,0,&_16u0__p4_0}, - {0,0,&_16u0__p5_0}, - {&_16u0__p6_0,&_16u0__p6_1}, - {&_16u0__p7_0,&_16u0__p7_1,&_16u0__p7_2} - } -}; -static const static_bookblock _resbook_16u_1={ - { - {0}, - {0,0,&_16u1__p1_0}, - {0,0,&_16u1__p2_0}, - {0,0,&_16u1__p3_0}, - {0,0,&_16u1__p4_0}, - {0,0,&_16u1__p5_0}, - {0,0,&_16u1__p6_0}, - {&_16u1__p7_0,&_16u1__p7_1}, - {&_16u1__p8_0,&_16u1__p8_1}, - {&_16u1__p9_0,&_16u1__p9_1,&_16u1__p9_2} - } -}; -static const static_bookblock _resbook_16u_2={ - { - {0}, - {0,0,&_16u2_p1_0}, - {0,0,&_16u2_p2_0}, - {0,0,&_16u2_p3_0}, - {0,0,&_16u2_p4_0}, - {&_16u2_p5_0,&_16u2_p5_1}, - {&_16u2_p6_0,&_16u2_p6_1}, - {&_16u2_p7_0,&_16u2_p7_1}, - {&_16u2_p8_0,&_16u2_p8_1}, - {&_16u2_p9_0,&_16u2_p9_1,&_16u2_p9_2} - } -}; - -static const vorbis_residue_template _res_16u_0[]={ - {1,0,32, &_residue_44_low_un, - &_huff_book__16u0__single,&_huff_book__16u0__single, - &_resbook_16u_0,&_resbook_16u_0}, -}; -static const vorbis_residue_template _res_16u_1[]={ - {1,0,32, &_residue_44_mid_un, - &_huff_book__16u1__short,&_huff_book__16u1__short, - &_resbook_16u_1,&_resbook_16u_1}, - - {1,0,32, &_residue_44_mid_un, - &_huff_book__16u1__long,&_huff_book__16u1__long, - &_resbook_16u_1,&_resbook_16u_1} -}; -static const vorbis_residue_template _res_16u_2[]={ - {1,0,32, &_residue_44_hi_un, - &_huff_book__16u2__short,&_huff_book__16u2__short, - &_resbook_16u_2,&_resbook_16u_2}, - - {1,0,32, &_residue_44_hi_un, - &_huff_book__16u2__long,&_huff_book__16u2__long, - &_resbook_16u_2,&_resbook_16u_2} -}; - - -static const vorbis_mapping_template _mapres_template_16_uncoupled[3]={ - { _map_nominal_u, _res_16u_0 }, /* 0 */ - { _map_nominal_u, _res_16u_1 }, /* 1 */ - { _map_nominal_u, _res_16u_2 }, /* 2 */ -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44.h deleted file mode 100644 index e89bc0e4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44.h +++ /dev/null @@ -1,291 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel residue templates for 32/44.1/48kHz - - ********************************************************************/ - -#include "vorbis/codec.h" -#include "backends.h" -#include "books/coupled/res_books_stereo.h" - -/***** residue backends *********************************************/ - -static const vorbis_info_residue0 _residue_44_low={ - 0,-1, -1, 9,-1,-1, - /* 0 1 2 3 4 5 6 7 */ - {0}, - {-1}, - { 0, 1, 2, 2, 4, 8, 16, 32}, - { 0, 0, 0,999, 4, 8, 16, 32}, -}; - -static const vorbis_info_residue0 _residue_44_mid={ - 0,-1, -1, 10,-1,-1, - /* 0 1 2 3 4 5 6 7 8 */ - {0}, - {-1}, - { 0, 1, 1, 2, 2, 4, 8, 16, 32}, - { 0, 0,999, 0,999, 4, 8, 16, 32}, -}; - -static const vorbis_info_residue0 _residue_44_high={ - 0,-1, -1, 10,-1,-1, - /* 0 1 2 3 4 5 6 7 8 */ - {0}, - {-1}, - { 0, 1, 2, 4, 8, 16, 32, 71,157}, - { 0, 1, 2, 3, 4, 8, 16, 71,157}, -}; - -static const static_bookblock _resbook_44s_n1={ - { - {0},{0,0,&_44cn1_s_p1_0},{0,0,&_44cn1_s_p2_0}, - {0,0,&_44cn1_s_p3_0},{0,0,&_44cn1_s_p4_0},{0,0,&_44cn1_s_p5_0}, - {&_44cn1_s_p6_0,&_44cn1_s_p6_1},{&_44cn1_s_p7_0,&_44cn1_s_p7_1}, - {&_44cn1_s_p8_0,&_44cn1_s_p8_1,&_44cn1_s_p8_2} - } -}; -static const static_bookblock _resbook_44sm_n1={ - { - {0},{0,0,&_44cn1_sm_p1_0},{0,0,&_44cn1_sm_p2_0}, - {0,0,&_44cn1_sm_p3_0},{0,0,&_44cn1_sm_p4_0},{0,0,&_44cn1_sm_p5_0}, - {&_44cn1_sm_p6_0,&_44cn1_sm_p6_1},{&_44cn1_sm_p7_0,&_44cn1_sm_p7_1}, - {&_44cn1_sm_p8_0,&_44cn1_sm_p8_1,&_44cn1_sm_p8_2} - } -}; - -static const static_bookblock _resbook_44s_0={ - { - {0},{0,0,&_44c0_s_p1_0},{0,0,&_44c0_s_p2_0}, - {0,0,&_44c0_s_p3_0},{0,0,&_44c0_s_p4_0},{0,0,&_44c0_s_p5_0}, - {&_44c0_s_p6_0,&_44c0_s_p6_1},{&_44c0_s_p7_0,&_44c0_s_p7_1}, - {&_44c0_s_p8_0,&_44c0_s_p8_1,&_44c0_s_p8_2} - } -}; -static const static_bookblock _resbook_44sm_0={ - { - {0},{0,0,&_44c0_sm_p1_0},{0,0,&_44c0_sm_p2_0}, - {0,0,&_44c0_sm_p3_0},{0,0,&_44c0_sm_p4_0},{0,0,&_44c0_sm_p5_0}, - {&_44c0_sm_p6_0,&_44c0_sm_p6_1},{&_44c0_sm_p7_0,&_44c0_sm_p7_1}, - {&_44c0_sm_p8_0,&_44c0_sm_p8_1,&_44c0_sm_p8_2} - } -}; - -static const static_bookblock _resbook_44s_1={ - { - {0},{0,0,&_44c1_s_p1_0},{0,0,&_44c1_s_p2_0}, - {0,0,&_44c1_s_p3_0},{0,0,&_44c1_s_p4_0},{0,0,&_44c1_s_p5_0}, - {&_44c1_s_p6_0,&_44c1_s_p6_1},{&_44c1_s_p7_0,&_44c1_s_p7_1}, - {&_44c1_s_p8_0,&_44c1_s_p8_1,&_44c1_s_p8_2} - } -}; -static const static_bookblock _resbook_44sm_1={ - { - {0},{0,0,&_44c1_sm_p1_0},{0,0,&_44c1_sm_p2_0}, - {0,0,&_44c1_sm_p3_0},{0,0,&_44c1_sm_p4_0},{0,0,&_44c1_sm_p5_0}, - {&_44c1_sm_p6_0,&_44c1_sm_p6_1},{&_44c1_sm_p7_0,&_44c1_sm_p7_1}, - {&_44c1_sm_p8_0,&_44c1_sm_p8_1,&_44c1_sm_p8_2} - } -}; - -static const static_bookblock _resbook_44s_2={ - { - {0},{0,0,&_44c2_s_p1_0},{0,0,&_44c2_s_p2_0},{0,0,&_44c2_s_p3_0}, - {0,0,&_44c2_s_p4_0},{0,0,&_44c2_s_p5_0},{0,0,&_44c2_s_p6_0}, - {&_44c2_s_p7_0,&_44c2_s_p7_1},{&_44c2_s_p8_0,&_44c2_s_p8_1}, - {&_44c2_s_p9_0,&_44c2_s_p9_1,&_44c2_s_p9_2} - } -}; -static const static_bookblock _resbook_44s_3={ - { - {0},{0,0,&_44c3_s_p1_0},{0,0,&_44c3_s_p2_0},{0,0,&_44c3_s_p3_0}, - {0,0,&_44c3_s_p4_0},{0,0,&_44c3_s_p5_0},{0,0,&_44c3_s_p6_0}, - {&_44c3_s_p7_0,&_44c3_s_p7_1},{&_44c3_s_p8_0,&_44c3_s_p8_1}, - {&_44c3_s_p9_0,&_44c3_s_p9_1,&_44c3_s_p9_2} - } -}; -static const static_bookblock _resbook_44s_4={ - { - {0},{0,0,&_44c4_s_p1_0},{0,0,&_44c4_s_p2_0},{0,0,&_44c4_s_p3_0}, - {0,0,&_44c4_s_p4_0},{0,0,&_44c4_s_p5_0},{0,0,&_44c4_s_p6_0}, - {&_44c4_s_p7_0,&_44c4_s_p7_1},{&_44c4_s_p8_0,&_44c4_s_p8_1}, - {&_44c4_s_p9_0,&_44c4_s_p9_1,&_44c4_s_p9_2} - } -}; -static const static_bookblock _resbook_44s_5={ - { - {0},{0,0,&_44c5_s_p1_0},{0,0,&_44c5_s_p2_0},{0,0,&_44c5_s_p3_0}, - {0,0,&_44c5_s_p4_0},{0,0,&_44c5_s_p5_0},{0,0,&_44c5_s_p6_0}, - {&_44c5_s_p7_0,&_44c5_s_p7_1},{&_44c5_s_p8_0,&_44c5_s_p8_1}, - {&_44c5_s_p9_0,&_44c5_s_p9_1,&_44c5_s_p9_2} - } -}; -static const static_bookblock _resbook_44s_6={ - { - {0},{0,0,&_44c6_s_p1_0},{0,0,&_44c6_s_p2_0},{0,0,&_44c6_s_p3_0}, - {0,0,&_44c6_s_p4_0}, - {&_44c6_s_p5_0,&_44c6_s_p5_1}, - {&_44c6_s_p6_0,&_44c6_s_p6_1}, - {&_44c6_s_p7_0,&_44c6_s_p7_1}, - {&_44c6_s_p8_0,&_44c6_s_p8_1}, - {&_44c6_s_p9_0,&_44c6_s_p9_1,&_44c6_s_p9_2} - } -}; -static const static_bookblock _resbook_44s_7={ - { - {0},{0,0,&_44c7_s_p1_0},{0,0,&_44c7_s_p2_0},{0,0,&_44c7_s_p3_0}, - {0,0,&_44c7_s_p4_0}, - {&_44c7_s_p5_0,&_44c7_s_p5_1}, - {&_44c7_s_p6_0,&_44c7_s_p6_1}, - {&_44c7_s_p7_0,&_44c7_s_p7_1}, - {&_44c7_s_p8_0,&_44c7_s_p8_1}, - {&_44c7_s_p9_0,&_44c7_s_p9_1,&_44c7_s_p9_2} - } -}; -static const static_bookblock _resbook_44s_8={ - { - {0},{0,0,&_44c8_s_p1_0},{0,0,&_44c8_s_p2_0},{0,0,&_44c8_s_p3_0}, - {0,0,&_44c8_s_p4_0}, - {&_44c8_s_p5_0,&_44c8_s_p5_1}, - {&_44c8_s_p6_0,&_44c8_s_p6_1}, - {&_44c8_s_p7_0,&_44c8_s_p7_1}, - {&_44c8_s_p8_0,&_44c8_s_p8_1}, - {&_44c8_s_p9_0,&_44c8_s_p9_1,&_44c8_s_p9_2} - } -}; -static const static_bookblock _resbook_44s_9={ - { - {0},{0,0,&_44c9_s_p1_0},{0,0,&_44c9_s_p2_0},{0,0,&_44c9_s_p3_0}, - {0,0,&_44c9_s_p4_0}, - {&_44c9_s_p5_0,&_44c9_s_p5_1}, - {&_44c9_s_p6_0,&_44c9_s_p6_1}, - {&_44c9_s_p7_0,&_44c9_s_p7_1}, - {&_44c9_s_p8_0,&_44c9_s_p8_1}, - {&_44c9_s_p9_0,&_44c9_s_p9_1,&_44c9_s_p9_2} - } -}; - -static const vorbis_residue_template _res_44s_n1[]={ - {2,0,32, &_residue_44_low, - &_huff_book__44cn1_s_short,&_huff_book__44cn1_sm_short, - &_resbook_44s_n1,&_resbook_44sm_n1}, - - {2,0,32, &_residue_44_low, - &_huff_book__44cn1_s_long,&_huff_book__44cn1_sm_long, - &_resbook_44s_n1,&_resbook_44sm_n1} -}; -static const vorbis_residue_template _res_44s_0[]={ - {2,0,16, &_residue_44_low, - &_huff_book__44c0_s_short,&_huff_book__44c0_sm_short, - &_resbook_44s_0,&_resbook_44sm_0}, - - {2,0,32, &_residue_44_low, - &_huff_book__44c0_s_long,&_huff_book__44c0_sm_long, - &_resbook_44s_0,&_resbook_44sm_0} -}; -static const vorbis_residue_template _res_44s_1[]={ - {2,0,16, &_residue_44_low, - &_huff_book__44c1_s_short,&_huff_book__44c1_sm_short, - &_resbook_44s_1,&_resbook_44sm_1}, - - {2,0,32, &_residue_44_low, - &_huff_book__44c1_s_long,&_huff_book__44c1_sm_long, - &_resbook_44s_1,&_resbook_44sm_1} -}; - -static const vorbis_residue_template _res_44s_2[]={ - {2,0,16, &_residue_44_mid, - &_huff_book__44c2_s_short,&_huff_book__44c2_s_short, - &_resbook_44s_2,&_resbook_44s_2}, - - {2,0,32, &_residue_44_mid, - &_huff_book__44c2_s_long,&_huff_book__44c2_s_long, - &_resbook_44s_2,&_resbook_44s_2} -}; -static const vorbis_residue_template _res_44s_3[]={ - {2,0,16, &_residue_44_mid, - &_huff_book__44c3_s_short,&_huff_book__44c3_s_short, - &_resbook_44s_3,&_resbook_44s_3}, - - {2,0,32, &_residue_44_mid, - &_huff_book__44c3_s_long,&_huff_book__44c3_s_long, - &_resbook_44s_3,&_resbook_44s_3} -}; -static const vorbis_residue_template _res_44s_4[]={ - {2,0,16, &_residue_44_mid, - &_huff_book__44c4_s_short,&_huff_book__44c4_s_short, - &_resbook_44s_4,&_resbook_44s_4}, - - {2,0,32, &_residue_44_mid, - &_huff_book__44c4_s_long,&_huff_book__44c4_s_long, - &_resbook_44s_4,&_resbook_44s_4} -}; -static const vorbis_residue_template _res_44s_5[]={ - {2,0,16, &_residue_44_mid, - &_huff_book__44c5_s_short,&_huff_book__44c5_s_short, - &_resbook_44s_5,&_resbook_44s_5}, - - {2,0,32, &_residue_44_mid, - &_huff_book__44c5_s_long,&_huff_book__44c5_s_long, - &_resbook_44s_5,&_resbook_44s_5} -}; -static const vorbis_residue_template _res_44s_6[]={ - {2,0,16, &_residue_44_high, - &_huff_book__44c6_s_short,&_huff_book__44c6_s_short, - &_resbook_44s_6,&_resbook_44s_6}, - - {2,0,32, &_residue_44_high, - &_huff_book__44c6_s_long,&_huff_book__44c6_s_long, - &_resbook_44s_6,&_resbook_44s_6} -}; -static const vorbis_residue_template _res_44s_7[]={ - {2,0,16, &_residue_44_high, - &_huff_book__44c7_s_short,&_huff_book__44c7_s_short, - &_resbook_44s_7,&_resbook_44s_7}, - - {2,0,32, &_residue_44_high, - &_huff_book__44c7_s_long,&_huff_book__44c7_s_long, - &_resbook_44s_7,&_resbook_44s_7} -}; -static const vorbis_residue_template _res_44s_8[]={ - {2,0,16, &_residue_44_high, - &_huff_book__44c8_s_short,&_huff_book__44c8_s_short, - &_resbook_44s_8,&_resbook_44s_8}, - - {2,0,32, &_residue_44_high, - &_huff_book__44c8_s_long,&_huff_book__44c8_s_long, - &_resbook_44s_8,&_resbook_44s_8} -}; -static const vorbis_residue_template _res_44s_9[]={ - {2,0,16, &_residue_44_high, - &_huff_book__44c9_s_short,&_huff_book__44c9_s_short, - &_resbook_44s_9,&_resbook_44s_9}, - - {2,0,32, &_residue_44_high, - &_huff_book__44c9_s_long,&_huff_book__44c9_s_long, - &_resbook_44s_9,&_resbook_44s_9} -}; - -static const vorbis_mapping_template _mapres_template_44_stereo[]={ - { _map_nominal, _res_44s_n1 }, /* -1 */ - { _map_nominal, _res_44s_0 }, /* 0 */ - { _map_nominal, _res_44s_1 }, /* 1 */ - { _map_nominal, _res_44s_2 }, /* 2 */ - { _map_nominal, _res_44s_3 }, /* 3 */ - { _map_nominal, _res_44s_4 }, /* 4 */ - { _map_nominal, _res_44s_5 }, /* 5 */ - { _map_nominal, _res_44s_6 }, /* 6 */ - { _map_nominal, _res_44s_7 }, /* 7 */ - { _map_nominal, _res_44s_8 }, /* 8 */ - { _map_nominal, _res_44s_9 }, /* 9 */ -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44p51.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44p51.h deleted file mode 100644 index 7f33e250..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44p51.h +++ /dev/null @@ -1,450 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel residue templates for 32/44.1/48kHz uncoupled - - ********************************************************************/ - -#include "vorbis/codec.h" -#include "backends.h" - -#include "books/coupled/res_books_51.h" - -/***** residue backends *********************************************/ - -static const vorbis_info_residue0 _residue_44p_lo={ - 0,-1, -1, 7,-1,-1, - /* 0 1 2 3 4 5 6 7 8 */ - {0}, - {-1}, - { 0, 1, 2, 7, 17, 31}, - { 0, 0, 99, 7, 17, 31}, -}; - -static const vorbis_info_residue0 _residue_44p={ - 0,-1, -1, 8,-1,-1, - /* 0 1 2 3 4 5 6 7 8 */ - {0}, - {-1}, - { 0, 1, 1, 2, 7, 17, 31}, - { 0, 0, 99, 99, 7, 17, 31}, -}; - -static const vorbis_info_residue0 _residue_44p_hi={ - 0,-1, -1, 8,-1,-1, - /* 0 1 2 3 4 5 6 7 8 */ - {0}, - {-1}, - { 0, 1, 2, 4, 7, 17, 31}, - { 0, 1, 2, 4, 7, 17, 31}, -}; - -static const vorbis_info_residue0 _residue_44p_lfe={ - 0,-1, -1, 2,-1,-1, - /* 0 1 2 3 4 5 6 7 8 */ - {0}, - {-1}, - { 32}, - { -1} -}; - -static const static_bookblock _resbook_44p_n1={ - { - {0}, - {0,&_44pn1_p1_0}, - - {&_44pn1_p2_0,&_44pn1_p2_1,0}, - {&_44pn1_p3_0,&_44pn1_p3_1,0}, - {&_44pn1_p4_0,&_44pn1_p4_1,0}, - - {&_44pn1_p5_0,&_44pn1_p5_1,&_44pn1_p4_1}, - {&_44pn1_p6_0,&_44pn1_p6_1,&_44pn1_p6_2}, - } -}; - -static const static_bookblock _resbook_44p_0={ - { - {0}, - {0,&_44p0_p1_0}, - - {&_44p0_p2_0,&_44p0_p2_1,0}, - {&_44p0_p3_0,&_44p0_p3_1,0}, - {&_44p0_p4_0,&_44p0_p4_1,0}, - - {&_44p0_p5_0,&_44p0_p5_1,&_44p0_p4_1}, - {&_44p0_p6_0,&_44p0_p6_1,&_44p0_p6_2}, - } -}; - -static const static_bookblock _resbook_44p_1={ - { - {0}, - {0,&_44p1_p1_0}, - - {&_44p1_p2_0,&_44p1_p2_1,0}, - {&_44p1_p3_0,&_44p1_p3_1,0}, - {&_44p1_p4_0,&_44p1_p4_1,0}, - - {&_44p1_p5_0,&_44p1_p5_1,&_44p1_p4_1}, - {&_44p1_p6_0,&_44p1_p6_1,&_44p1_p6_2}, - } -}; - -static const static_bookblock _resbook_44p_2={ - { - {0}, - {0,0,&_44p2_p1_0}, - {0,&_44p2_p2_0,0}, - - {&_44p2_p3_0,&_44p2_p3_1,0}, - {&_44p2_p4_0,&_44p2_p4_1,0}, - {&_44p2_p5_0,&_44p2_p5_1,0}, - - {&_44p2_p6_0,&_44p2_p6_1,&_44p2_p5_1}, - {&_44p2_p7_0,&_44p2_p7_1,&_44p2_p7_2,&_44p2_p7_3} - } -}; -static const static_bookblock _resbook_44p_3={ - { - {0}, - {0,0,&_44p3_p1_0}, - {0,&_44p3_p2_0,0}, - - {&_44p3_p3_0,&_44p3_p3_1,0}, - {&_44p3_p4_0,&_44p3_p4_1,0}, - {&_44p3_p5_0,&_44p3_p5_1,0}, - - {&_44p3_p6_0,&_44p3_p6_1,&_44p3_p5_1}, - {&_44p3_p7_0,&_44p3_p7_1,&_44p3_p7_2,&_44p3_p7_3} - } -}; -static const static_bookblock _resbook_44p_4={ - { - {0}, - {0,0,&_44p4_p1_0}, - {0,&_44p4_p2_0,0}, - - {&_44p4_p3_0,&_44p4_p3_1,0}, - {&_44p4_p4_0,&_44p4_p4_1,0}, - {&_44p4_p5_0,&_44p4_p5_1,0}, - - {&_44p4_p6_0,&_44p4_p6_1,&_44p4_p5_1}, - {&_44p4_p7_0,&_44p4_p7_1,&_44p4_p7_2,&_44p4_p7_3} - } -}; -static const static_bookblock _resbook_44p_5={ - { - {0}, - {0,0,&_44p5_p1_0}, - {0,&_44p5_p2_0,0}, - - {&_44p5_p3_0,&_44p5_p3_1,0}, - {&_44p5_p4_0,&_44p5_p4_1,0}, - {&_44p5_p5_0,&_44p5_p5_1,0}, - - {&_44p5_p6_0,&_44p5_p6_1,&_44p5_p5_1}, - {&_44p5_p7_0,&_44p5_p7_1,&_44p5_p7_2,&_44p5_p7_3} - } -}; -static const static_bookblock _resbook_44p_6={ - { - {0}, - {0,0,&_44p6_p1_0}, - {0,&_44p6_p2_0,0}, - - {&_44p6_p3_0,&_44p6_p3_1,0}, - {&_44p6_p4_0,&_44p6_p4_1,0}, - {&_44p6_p5_0,&_44p6_p5_1,0}, - - {&_44p6_p6_0,&_44p6_p6_1,&_44p6_p5_1}, - {&_44p6_p7_0,&_44p6_p7_1,&_44p6_p7_2,&_44p6_p7_3} - } -}; -static const static_bookblock _resbook_44p_7={ - { - {0}, - {0,0,&_44p7_p1_0}, - {0,&_44p7_p2_0,0}, - - {&_44p7_p3_0,&_44p7_p3_1,0}, - {&_44p7_p4_0,&_44p7_p4_1,0}, - {&_44p7_p5_0,&_44p7_p5_1,0}, - - {&_44p7_p6_0,&_44p7_p6_1,&_44p7_p5_1}, - {&_44p7_p7_0,&_44p7_p7_1,&_44p7_p7_2,&_44p7_p7_3} - } -}; -static const static_bookblock _resbook_44p_8={ - { - {0}, - {0,0,&_44p8_p1_0}, - {0,&_44p8_p2_0,0}, - - {&_44p8_p3_0,&_44p8_p3_1,0}, - {&_44p8_p4_0,&_44p8_p4_1,0}, - {&_44p8_p5_0,&_44p8_p5_1,0}, - - {&_44p8_p6_0,&_44p8_p6_1,&_44p8_p5_1}, - {&_44p8_p7_0,&_44p8_p7_1,&_44p8_p7_2,&_44p8_p7_3} - } -}; -static const static_bookblock _resbook_44p_9={ - { - {0}, - {0,0,&_44p9_p1_0}, - {0,&_44p9_p2_0,0}, - - {&_44p9_p3_0,&_44p9_p3_1,0}, - {&_44p9_p4_0,&_44p9_p4_1,0}, - {&_44p9_p5_0,&_44p9_p5_1,0}, - - {&_44p9_p6_0,&_44p9_p6_1,&_44p9_p5_1}, - {&_44p9_p7_0,&_44p9_p7_1,&_44p9_p7_2,&_44p9_p7_3} - } -}; - -static const static_bookblock _resbook_44p_ln1={ - { - {&_44pn1_l0_0,&_44pn1_l0_1,0}, - {&_44pn1_l1_0,&_44pn1_p6_1,&_44pn1_p6_2}, - } -}; -static const static_bookblock _resbook_44p_l0={ - { - {&_44p0_l0_0,&_44p0_l0_1,0}, - {&_44p0_l1_0,&_44p0_p6_1,&_44p0_p6_2}, - } -}; -static const static_bookblock _resbook_44p_l1={ - { - {&_44p1_l0_0,&_44p1_l0_1,0}, - {&_44p1_l1_0,&_44p1_p6_1,&_44p1_p6_2}, - } -}; -static const static_bookblock _resbook_44p_l2={ - { - {&_44p2_l0_0,&_44p2_l0_1,0}, - {&_44p2_l1_0,&_44p2_p7_2,&_44p2_p7_3}, - } -}; -static const static_bookblock _resbook_44p_l3={ - { - {&_44p3_l0_0,&_44p3_l0_1,0}, - {&_44p3_l1_0,&_44p3_p7_2,&_44p3_p7_3}, - } -}; -static const static_bookblock _resbook_44p_l4={ - { - {&_44p4_l0_0,&_44p4_l0_1,0}, - {&_44p4_l1_0,&_44p4_p7_2,&_44p4_p7_3}, - } -}; -static const static_bookblock _resbook_44p_l5={ - { - {&_44p5_l0_0,&_44p5_l0_1,0}, - {&_44p5_l1_0,&_44p5_p7_2,&_44p5_p7_3}, - } -}; -static const static_bookblock _resbook_44p_l6={ - { - {&_44p6_l0_0,&_44p6_l0_1,0}, - {&_44p6_l1_0,&_44p6_p7_2,&_44p6_p7_3}, - } -}; -static const static_bookblock _resbook_44p_l7={ - { - {&_44p7_l0_0,&_44p7_l0_1,0}, - {&_44p7_l1_0,&_44p7_p7_2,&_44p7_p7_3}, - } -}; -static const static_bookblock _resbook_44p_l8={ - { - {&_44p8_l0_0,&_44p8_l0_1,0}, - {&_44p8_l1_0,&_44p8_p7_2,&_44p8_p7_3}, - } -}; -static const static_bookblock _resbook_44p_l9={ - { - {&_44p9_l0_0,&_44p9_l0_1,0}, - {&_44p9_l1_0,&_44p9_p7_2,&_44p9_p7_3}, - } -}; - - -static const vorbis_info_mapping0 _map_nominal_51[2]={ - {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 4,{0,3,0,0},{2,4,1,3}}, - {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 4,{0,3,0,0},{2,4,1,3}} -}; -static const vorbis_info_mapping0 _map_nominal_51u[2]={ - {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 0,{0},{0}}, - {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 0,{0},{0}} -}; - -static const vorbis_residue_template _res_44p51_n1[]={ - {2,0,30, &_residue_44p_lo, - &_huff_book__44pn1_short,&_huff_book__44pn1_short, - &_resbook_44p_n1,&_resbook_44p_n1}, - - {2,0,30, &_residue_44p_lo, - &_huff_book__44pn1_long,&_huff_book__44pn1_long, - &_resbook_44p_n1,&_resbook_44p_n1}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44pn1_lfe,&_huff_book__44pn1_lfe, - &_resbook_44p_ln1,&_resbook_44p_ln1} -}; -static const vorbis_residue_template _res_44p51_0[]={ - {2,0,15, &_residue_44p_lo, - &_huff_book__44p0_short,&_huff_book__44p0_short, - &_resbook_44p_0,&_resbook_44p_0}, - - {2,0,30, &_residue_44p_lo, - &_huff_book__44p0_long,&_huff_book__44p0_long, - &_resbook_44p_0,&_resbook_44p_0}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p0_lfe,&_huff_book__44p0_lfe, - &_resbook_44p_l0,&_resbook_44p_l0} -}; -static const vorbis_residue_template _res_44p51_1[]={ - {2,0,15, &_residue_44p_lo, - &_huff_book__44p1_short,&_huff_book__44p1_short, - &_resbook_44p_1,&_resbook_44p_1}, - - {2,0,30, &_residue_44p_lo, - &_huff_book__44p1_long,&_huff_book__44p1_long, - &_resbook_44p_1,&_resbook_44p_1}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p1_lfe,&_huff_book__44p1_lfe, - &_resbook_44p_l1,&_resbook_44p_l1} -}; -static const vorbis_residue_template _res_44p51_2[]={ - {2,0,15, &_residue_44p, - &_huff_book__44p2_short,&_huff_book__44p2_short, - &_resbook_44p_2,&_resbook_44p_2}, - - {2,0,30, &_residue_44p, - &_huff_book__44p2_long,&_huff_book__44p2_long, - &_resbook_44p_2,&_resbook_44p_2}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p2_lfe,&_huff_book__44p2_lfe, - &_resbook_44p_l2,&_resbook_44p_l2} -}; -static const vorbis_residue_template _res_44p51_3[]={ - {2,0,15, &_residue_44p, - &_huff_book__44p3_short,&_huff_book__44p3_short, - &_resbook_44p_3,&_resbook_44p_3}, - - {2,0,30, &_residue_44p, - &_huff_book__44p3_long,&_huff_book__44p3_long, - &_resbook_44p_3,&_resbook_44p_3}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p3_lfe,&_huff_book__44p3_lfe, - &_resbook_44p_l3,&_resbook_44p_l3} -}; -static const vorbis_residue_template _res_44p51_4[]={ - {2,0,15, &_residue_44p, - &_huff_book__44p4_short,&_huff_book__44p4_short, - &_resbook_44p_4,&_resbook_44p_4}, - - {2,0,30, &_residue_44p, - &_huff_book__44p4_long,&_huff_book__44p4_long, - &_resbook_44p_4,&_resbook_44p_4}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p4_lfe,&_huff_book__44p4_lfe, - &_resbook_44p_l4,&_resbook_44p_l4} -}; -static const vorbis_residue_template _res_44p51_5[]={ - {2,0,15, &_residue_44p_hi, - &_huff_book__44p5_short,&_huff_book__44p5_short, - &_resbook_44p_5,&_resbook_44p_5}, - - {2,0,30, &_residue_44p_hi, - &_huff_book__44p5_long,&_huff_book__44p5_long, - &_resbook_44p_5,&_resbook_44p_5}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p5_lfe,&_huff_book__44p5_lfe, - &_resbook_44p_l5,&_resbook_44p_l5} -}; -static const vorbis_residue_template _res_44p51_6[]={ - {2,0,15, &_residue_44p_hi, - &_huff_book__44p6_short,&_huff_book__44p6_short, - &_resbook_44p_6,&_resbook_44p_6}, - - {2,0,30, &_residue_44p_hi, - &_huff_book__44p6_long,&_huff_book__44p6_long, - &_resbook_44p_6,&_resbook_44p_6}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, - &_resbook_44p_l6,&_resbook_44p_l6} -}; - - -static const vorbis_residue_template _res_44p51_7[]={ - {2,0,15, &_residue_44p_hi, - &_huff_book__44p7_short,&_huff_book__44p7_short, - &_resbook_44p_7,&_resbook_44p_7}, - - {2,0,30, &_residue_44p_hi, - &_huff_book__44p7_long,&_huff_book__44p7_long, - &_resbook_44p_7,&_resbook_44p_7}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, - &_resbook_44p_l6,&_resbook_44p_l6} -}; -static const vorbis_residue_template _res_44p51_8[]={ - {2,0,15, &_residue_44p_hi, - &_huff_book__44p8_short,&_huff_book__44p8_short, - &_resbook_44p_8,&_resbook_44p_8}, - - {2,0,30, &_residue_44p_hi, - &_huff_book__44p8_long,&_huff_book__44p8_long, - &_resbook_44p_8,&_resbook_44p_8}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, - &_resbook_44p_l6,&_resbook_44p_l6} -}; -static const vorbis_residue_template _res_44p51_9[]={ - {2,0,15, &_residue_44p_hi, - &_huff_book__44p9_short,&_huff_book__44p9_short, - &_resbook_44p_9,&_resbook_44p_9}, - - {2,0,30, &_residue_44p_hi, - &_huff_book__44p9_long,&_huff_book__44p9_long, - &_resbook_44p_9,&_resbook_44p_9}, - - {1,2,6, &_residue_44p_lfe, - &_huff_book__44p6_lfe,&_huff_book__44p6_lfe, - &_resbook_44p_l6,&_resbook_44p_l6} -}; - -static const vorbis_mapping_template _mapres_template_44_51[]={ - { _map_nominal_51, _res_44p51_n1 }, /* -1 */ - { _map_nominal_51, _res_44p51_0 }, /* 0 */ - { _map_nominal_51, _res_44p51_1 }, /* 1 */ - { _map_nominal_51, _res_44p51_2 }, /* 2 */ - { _map_nominal_51, _res_44p51_3 }, /* 3 */ - { _map_nominal_51, _res_44p51_4 }, /* 4 */ - { _map_nominal_51u, _res_44p51_5 }, /* 5 */ - { _map_nominal_51u, _res_44p51_6 }, /* 6 */ - { _map_nominal_51u, _res_44p51_7 }, /* 7 */ - { _map_nominal_51u, _res_44p51_8 }, /* 8 */ - { _map_nominal_51u, _res_44p51_9 }, /* 9 */ -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44u.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44u.h deleted file mode 100644 index e55ac125..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_44u.h +++ /dev/null @@ -1,317 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel residue templates for 32/44.1/48kHz uncoupled - - ********************************************************************/ - -#include "vorbis/codec.h" -#include "backends.h" -#include "books/uncoupled/res_books_uncoupled.h" - -/***** residue backends *********************************************/ - - -static const vorbis_info_residue0 _residue_44_low_un={ - 0,-1, -1, 8,-1,-1, - {0}, - {-1}, - { 0, 1, 1, 2, 2, 4, 28}, - { -1, 25, -1, 45, -1, -1, -1} -}; - -static const vorbis_info_residue0 _residue_44_mid_un={ - 0,-1, -1, 10,-1,-1, - /* 0 1 2 3 4 5 6 7 8 9 */ - {0}, - {-1}, - { 0, 1, 1, 2, 2, 4, 4, 16, 60}, - { -1, 30, -1, 50, -1, 80, -1, -1, -1} -}; - -static const vorbis_info_residue0 _residue_44_hi_un={ - 0,-1, -1, 10,-1,-1, - /* 0 1 2 3 4 5 6 7 8 9 */ - {0}, - {-1}, - { 0, 1, 2, 4, 8, 16, 32, 71,157}, - { -1, -1, -1, -1, -1, -1, -1, -1, -1} -}; - -/* mapping conventions: - only one submap (this would change for efficient 5.1 support for example)*/ -/* Four psychoacoustic profiles are used, one for each blocktype */ -static const vorbis_info_mapping0 _map_nominal_u[2]={ - {1, {0,0,0,0,0,0}, {0}, {0}, 0,{0},{0}}, - {1, {0,0,0,0,0,0}, {1}, {1}, 0,{0},{0}} -}; - -static const static_bookblock _resbook_44u_n1={ - { - {0}, - {0,0,&_44un1__p1_0}, - {0,0,&_44un1__p2_0}, - {0,0,&_44un1__p3_0}, - {0,0,&_44un1__p4_0}, - {0,0,&_44un1__p5_0}, - {&_44un1__p6_0,&_44un1__p6_1}, - {&_44un1__p7_0,&_44un1__p7_1,&_44un1__p7_2} - } -}; -static const static_bookblock _resbook_44u_0={ - { - {0}, - {0,0,&_44u0__p1_0}, - {0,0,&_44u0__p2_0}, - {0,0,&_44u0__p3_0}, - {0,0,&_44u0__p4_0}, - {0,0,&_44u0__p5_0}, - {&_44u0__p6_0,&_44u0__p6_1}, - {&_44u0__p7_0,&_44u0__p7_1,&_44u0__p7_2} - } -}; -static const static_bookblock _resbook_44u_1={ - { - {0}, - {0,0,&_44u1__p1_0}, - {0,0,&_44u1__p2_0}, - {0,0,&_44u1__p3_0}, - {0,0,&_44u1__p4_0}, - {0,0,&_44u1__p5_0}, - {&_44u1__p6_0,&_44u1__p6_1}, - {&_44u1__p7_0,&_44u1__p7_1,&_44u1__p7_2} - } -}; -static const static_bookblock _resbook_44u_2={ - { - {0}, - {0,0,&_44u2__p1_0}, - {0,0,&_44u2__p2_0}, - {0,0,&_44u2__p3_0}, - {0,0,&_44u2__p4_0}, - {0,0,&_44u2__p5_0}, - {&_44u2__p6_0,&_44u2__p6_1}, - {&_44u2__p7_0,&_44u2__p7_1,&_44u2__p7_2} - } -}; -static const static_bookblock _resbook_44u_3={ - { - {0}, - {0,0,&_44u3__p1_0}, - {0,0,&_44u3__p2_0}, - {0,0,&_44u3__p3_0}, - {0,0,&_44u3__p4_0}, - {0,0,&_44u3__p5_0}, - {&_44u3__p6_0,&_44u3__p6_1}, - {&_44u3__p7_0,&_44u3__p7_1,&_44u3__p7_2} - } -}; -static const static_bookblock _resbook_44u_4={ - { - {0}, - {0,0,&_44u4__p1_0}, - {0,0,&_44u4__p2_0}, - {0,0,&_44u4__p3_0}, - {0,0,&_44u4__p4_0}, - {0,0,&_44u4__p5_0}, - {&_44u4__p6_0,&_44u4__p6_1}, - {&_44u4__p7_0,&_44u4__p7_1,&_44u4__p7_2} - } -}; -static const static_bookblock _resbook_44u_5={ - { - {0}, - {0,0,&_44u5__p1_0}, - {0,0,&_44u5__p2_0}, - {0,0,&_44u5__p3_0}, - {0,0,&_44u5__p4_0}, - {0,0,&_44u5__p5_0}, - {0,0,&_44u5__p6_0}, - {&_44u5__p7_0,&_44u5__p7_1}, - {&_44u5__p8_0,&_44u5__p8_1}, - {&_44u5__p9_0,&_44u5__p9_1,&_44u5__p9_2} - } -}; -static const static_bookblock _resbook_44u_6={ - { - {0}, - {0,0,&_44u6__p1_0}, - {0,0,&_44u6__p2_0}, - {0,0,&_44u6__p3_0}, - {0,0,&_44u6__p4_0}, - {0,0,&_44u6__p5_0}, - {0,0,&_44u6__p6_0}, - {&_44u6__p7_0,&_44u6__p7_1}, - {&_44u6__p8_0,&_44u6__p8_1}, - {&_44u6__p9_0,&_44u6__p9_1,&_44u6__p9_2} - } -}; -static const static_bookblock _resbook_44u_7={ - { - {0}, - {0,0,&_44u7__p1_0}, - {0,0,&_44u7__p2_0}, - {0,0,&_44u7__p3_0}, - {0,0,&_44u7__p4_0}, - {0,0,&_44u7__p5_0}, - {0,0,&_44u7__p6_0}, - {&_44u7__p7_0,&_44u7__p7_1}, - {&_44u7__p8_0,&_44u7__p8_1}, - {&_44u7__p9_0,&_44u7__p9_1,&_44u7__p9_2} - } -}; -static const static_bookblock _resbook_44u_8={ - { - {0}, - {0,0,&_44u8_p1_0}, - {0,0,&_44u8_p2_0}, - {0,0,&_44u8_p3_0}, - {0,0,&_44u8_p4_0}, - {&_44u8_p5_0,&_44u8_p5_1}, - {&_44u8_p6_0,&_44u8_p6_1}, - {&_44u8_p7_0,&_44u8_p7_1}, - {&_44u8_p8_0,&_44u8_p8_1}, - {&_44u8_p9_0,&_44u8_p9_1,&_44u8_p9_2} - } -}; -static const static_bookblock _resbook_44u_9={ - { - {0}, - {0,0,&_44u9_p1_0}, - {0,0,&_44u9_p2_0}, - {0,0,&_44u9_p3_0}, - {0,0,&_44u9_p4_0}, - {&_44u9_p5_0,&_44u9_p5_1}, - {&_44u9_p6_0,&_44u9_p6_1}, - {&_44u9_p7_0,&_44u9_p7_1}, - {&_44u9_p8_0,&_44u9_p8_1}, - {&_44u9_p9_0,&_44u9_p9_1,&_44u9_p9_2} - } -}; - -static const vorbis_residue_template _res_44u_n1[]={ - {1,0,32, &_residue_44_low_un, - &_huff_book__44un1__short,&_huff_book__44un1__short, - &_resbook_44u_n1,&_resbook_44u_n1}, - - {1,0,32, &_residue_44_low_un, - &_huff_book__44un1__long,&_huff_book__44un1__long, - &_resbook_44u_n1,&_resbook_44u_n1} -}; -static const vorbis_residue_template _res_44u_0[]={ - {1,0,16, &_residue_44_low_un, - &_huff_book__44u0__short,&_huff_book__44u0__short, - &_resbook_44u_0,&_resbook_44u_0}, - - {1,0,32, &_residue_44_low_un, - &_huff_book__44u0__long,&_huff_book__44u0__long, - &_resbook_44u_0,&_resbook_44u_0} -}; -static const vorbis_residue_template _res_44u_1[]={ - {1,0,16, &_residue_44_low_un, - &_huff_book__44u1__short,&_huff_book__44u1__short, - &_resbook_44u_1,&_resbook_44u_1}, - - {1,0,32, &_residue_44_low_un, - &_huff_book__44u1__long,&_huff_book__44u1__long, - &_resbook_44u_1,&_resbook_44u_1} -}; -static const vorbis_residue_template _res_44u_2[]={ - {1,0,16, &_residue_44_low_un, - &_huff_book__44u2__short,&_huff_book__44u2__short, - &_resbook_44u_2,&_resbook_44u_2}, - - {1,0,32, &_residue_44_low_un, - &_huff_book__44u2__long,&_huff_book__44u2__long, - &_resbook_44u_2,&_resbook_44u_2} -}; -static const vorbis_residue_template _res_44u_3[]={ - {1,0,16, &_residue_44_low_un, - &_huff_book__44u3__short,&_huff_book__44u3__short, - &_resbook_44u_3,&_resbook_44u_3}, - - {1,0,32, &_residue_44_low_un, - &_huff_book__44u3__long,&_huff_book__44u3__long, - &_resbook_44u_3,&_resbook_44u_3} -}; -static const vorbis_residue_template _res_44u_4[]={ - {1,0,16, &_residue_44_low_un, - &_huff_book__44u4__short,&_huff_book__44u4__short, - &_resbook_44u_4,&_resbook_44u_4}, - - {1,0,32, &_residue_44_low_un, - &_huff_book__44u4__long,&_huff_book__44u4__long, - &_resbook_44u_4,&_resbook_44u_4} -}; - -static const vorbis_residue_template _res_44u_5[]={ - {1,0,16, &_residue_44_mid_un, - &_huff_book__44u5__short,&_huff_book__44u5__short, - &_resbook_44u_5,&_resbook_44u_5}, - - {1,0,32, &_residue_44_mid_un, - &_huff_book__44u5__long,&_huff_book__44u5__long, - &_resbook_44u_5,&_resbook_44u_5} -}; - -static const vorbis_residue_template _res_44u_6[]={ - {1,0,16, &_residue_44_mid_un, - &_huff_book__44u6__short,&_huff_book__44u6__short, - &_resbook_44u_6,&_resbook_44u_6}, - - {1,0,32, &_residue_44_mid_un, - &_huff_book__44u6__long,&_huff_book__44u6__long, - &_resbook_44u_6,&_resbook_44u_6} -}; - -static const vorbis_residue_template _res_44u_7[]={ - {1,0,16, &_residue_44_mid_un, - &_huff_book__44u7__short,&_huff_book__44u7__short, - &_resbook_44u_7,&_resbook_44u_7}, - - {1,0,32, &_residue_44_mid_un, - &_huff_book__44u7__long,&_huff_book__44u7__long, - &_resbook_44u_7,&_resbook_44u_7} -}; - -static const vorbis_residue_template _res_44u_8[]={ - {1,0,16, &_residue_44_hi_un, - &_huff_book__44u8__short,&_huff_book__44u8__short, - &_resbook_44u_8,&_resbook_44u_8}, - - {1,0,32, &_residue_44_hi_un, - &_huff_book__44u8__long,&_huff_book__44u8__long, - &_resbook_44u_8,&_resbook_44u_8} -}; -static const vorbis_residue_template _res_44u_9[]={ - {1,0,16, &_residue_44_hi_un, - &_huff_book__44u9__short,&_huff_book__44u9__short, - &_resbook_44u_9,&_resbook_44u_9}, - - {1,0,32, &_residue_44_hi_un, - &_huff_book__44u9__long,&_huff_book__44u9__long, - &_resbook_44u_9,&_resbook_44u_9} -}; - -static const vorbis_mapping_template _mapres_template_44_uncoupled[]={ - { _map_nominal_u, _res_44u_n1 }, /* -1 */ - { _map_nominal_u, _res_44u_0 }, /* 0 */ - { _map_nominal_u, _res_44u_1 }, /* 1 */ - { _map_nominal_u, _res_44u_2 }, /* 2 */ - { _map_nominal_u, _res_44u_3 }, /* 3 */ - { _map_nominal_u, _res_44u_4 }, /* 4 */ - { _map_nominal_u, _res_44u_5 }, /* 5 */ - { _map_nominal_u, _res_44u_6 }, /* 6 */ - { _map_nominal_u, _res_44u_7 }, /* 7 */ - { _map_nominal_u, _res_44u_8 }, /* 8 */ - { _map_nominal_u, _res_44u_9 }, /* 9 */ -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_8.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_8.h deleted file mode 100644 index ae123a27..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/residue_8.h +++ /dev/null @@ -1,108 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel residue templates 8/11kHz - - ********************************************************************/ - -#include "vorbis/codec.h" -#include "backends.h" - -/***** residue backends *********************************************/ - -static const static_bookblock _resbook_8s_0={ - { - {0}, - {0,0,&_8c0_s_p1_0}, - {0}, - {0,0,&_8c0_s_p3_0}, - {0,0,&_8c0_s_p4_0}, - {0,0,&_8c0_s_p5_0}, - {0,0,&_8c0_s_p6_0}, - {&_8c0_s_p7_0,&_8c0_s_p7_1}, - {&_8c0_s_p8_0,&_8c0_s_p8_1}, - {&_8c0_s_p9_0,&_8c0_s_p9_1,&_8c0_s_p9_2} - } -}; -static const static_bookblock _resbook_8s_1={ - { - {0}, - {0,0,&_8c1_s_p1_0}, - {0}, - {0,0,&_8c1_s_p3_0}, - {0,0,&_8c1_s_p4_0}, - {0,0,&_8c1_s_p5_0}, - {0,0,&_8c1_s_p6_0}, - {&_8c1_s_p7_0,&_8c1_s_p7_1}, - {&_8c1_s_p8_0,&_8c1_s_p8_1}, - {&_8c1_s_p9_0,&_8c1_s_p9_1,&_8c1_s_p9_2} - } -}; - -static const vorbis_residue_template _res_8s_0[]={ - {2,0,32, &_residue_44_mid, - &_huff_book__8c0_s_single,&_huff_book__8c0_s_single, - &_resbook_8s_0,&_resbook_8s_0}, -}; -static const vorbis_residue_template _res_8s_1[]={ - {2,0,32, &_residue_44_mid, - &_huff_book__8c1_s_single,&_huff_book__8c1_s_single, - &_resbook_8s_1,&_resbook_8s_1}, -}; - -static const vorbis_mapping_template _mapres_template_8_stereo[2]={ - { _map_nominal, _res_8s_0 }, /* 0 */ - { _map_nominal, _res_8s_1 }, /* 1 */ -}; - -static const static_bookblock _resbook_8u_0={ - { - {0}, - {0,0,&_8u0__p1_0}, - {0,0,&_8u0__p2_0}, - {0,0,&_8u0__p3_0}, - {0,0,&_8u0__p4_0}, - {0,0,&_8u0__p5_0}, - {&_8u0__p6_0,&_8u0__p6_1}, - {&_8u0__p7_0,&_8u0__p7_1,&_8u0__p7_2} - } -}; -static const static_bookblock _resbook_8u_1={ - { - {0}, - {0,0,&_8u1__p1_0}, - {0,0,&_8u1__p2_0}, - {0,0,&_8u1__p3_0}, - {0,0,&_8u1__p4_0}, - {0,0,&_8u1__p5_0}, - {0,0,&_8u1__p6_0}, - {&_8u1__p7_0,&_8u1__p7_1}, - {&_8u1__p8_0,&_8u1__p8_1}, - {&_8u1__p9_0,&_8u1__p9_1,&_8u1__p9_2} - } -}; - -static const vorbis_residue_template _res_8u_0[]={ - {1,0,32, &_residue_44_low_un, - &_huff_book__8u0__single,&_huff_book__8u0__single, - &_resbook_8u_0,&_resbook_8u_0}, -}; -static const vorbis_residue_template _res_8u_1[]={ - {1,0,32, &_residue_44_mid_un, - &_huff_book__8u1__single,&_huff_book__8u1__single, - &_resbook_8u_1,&_resbook_8u_1}, -}; - -static const vorbis_mapping_template _mapres_template_8_uncoupled[2]={ - { _map_nominal_u, _res_8u_0 }, /* 0 */ - { _map_nominal_u, _res_8u_1 }, /* 1 */ -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_11.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_11.h deleted file mode 100644 index 0cbcaafc..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_11.h +++ /dev/null @@ -1,142 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: 11kHz settings - - ********************************************************************/ - -#include "psych_11.h" - -static const int blocksize_11[2]={ - 512,512 -}; - -static const int _floor_mapping_11a[]={ - 6,6 -}; -static const int *_floor_mapping_11[]={ - _floor_mapping_11a -}; - -static const double rate_mapping_11[3]={ - 8000.,13000.,44000., -}; - -static const double rate_mapping_11_uncoupled[3]={ - 12000.,20000.,50000., -}; - -static const double quality_mapping_11[3]={ - -.1,.0,1. -}; - -static const ve_setup_data_template ve_setup_11_stereo={ - 2, - rate_mapping_11, - quality_mapping_11, - 2, - 9000, - 15000, - - blocksize_11, - blocksize_11, - - _psy_tone_masteratt_11, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_11, - NULL, - _vp_tonemask_adj_11, - - _psy_noiseguards_8, - _psy_noisebias_11, - _psy_noisebias_11, - NULL, - NULL, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_8_mapping, - NULL, - - {_noise_start_8,_noise_start_8}, - {_noise_part_8,_noise_part_8}, - _noise_thresh_11, - - _psy_ath_floater_8, - _psy_ath_abs_8, - - _psy_lowpass_11, - - _psy_global_44, - _global_mapping_8, - _psy_stereo_modes_8, - - _floor_books, - _floor, - 1, - _floor_mapping_11, - - _mapres_template_8_stereo -}; - -static const ve_setup_data_template ve_setup_11_uncoupled={ - 2, - rate_mapping_11_uncoupled, - quality_mapping_11, - -1, - 9000, - 15000, - - blocksize_11, - blocksize_11, - - _psy_tone_masteratt_11, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_11, - NULL, - _vp_tonemask_adj_11, - - _psy_noiseguards_8, - _psy_noisebias_11, - _psy_noisebias_11, - NULL, - NULL, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_8_mapping, - NULL, - - {_noise_start_8,_noise_start_8}, - {_noise_part_8,_noise_part_8}, - _noise_thresh_11, - - _psy_ath_floater_8, - _psy_ath_abs_8, - - _psy_lowpass_11, - - _psy_global_44, - _global_mapping_8, - _psy_stereo_modes_8, - - _floor_books, - _floor, - 1, - _floor_mapping_11, - - _mapres_template_8_uncoupled -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_16.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_16.h deleted file mode 100644 index d59ad70d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_16.h +++ /dev/null @@ -1,152 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: 16kHz settings - - ********************************************************************/ - -#include "psych_16.h" -#include "residue_16.h" - -static const int blocksize_16_short[3]={ - 1024,512,512 -}; -static const int blocksize_16_long[3]={ - 1024,1024,1024 -}; - -static const int _floor_mapping_16a[]={ - 9,3,3 -}; -static const int _floor_mapping_16b[]={ - 9,9,9 -}; -static const int *_floor_mapping_16[]={ - _floor_mapping_16a, - _floor_mapping_16b -}; - -static const double rate_mapping_16[4]={ - 12000.,20000.,44000.,86000. -}; - -static const double rate_mapping_16_uncoupled[4]={ - 16000.,28000.,64000.,100000. -}; - -static const double _global_mapping_16[4]={ 1., 2., 3., 4. }; - -static const double quality_mapping_16[4]={ -.1,.05,.5,1. }; - -static const double _psy_compand_16_mapping[4]={ 0., .8, 1., 1.}; - -static const ve_setup_data_template ve_setup_16_stereo={ - 3, - rate_mapping_16, - quality_mapping_16, - 2, - 15000, - 19000, - - blocksize_16_short, - blocksize_16_long, - - _psy_tone_masteratt_16, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - - _psy_noiseguards_16, - _psy_noisebias_16_impulse, - _psy_noisebias_16_short, - _psy_noisebias_16_short, - _psy_noisebias_16, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_16_mapping, - _psy_compand_16_mapping, - - {_noise_start_16,_noise_start_16}, - { _noise_part_16, _noise_part_16}, - _noise_thresh_16, - - _psy_ath_floater_16, - _psy_ath_abs_16, - - _psy_lowpass_16, - - _psy_global_44, - _global_mapping_16, - _psy_stereo_modes_16, - - _floor_books, - _floor, - 2, - _floor_mapping_16, - - _mapres_template_16_stereo -}; - -static const ve_setup_data_template ve_setup_16_uncoupled={ - 3, - rate_mapping_16_uncoupled, - quality_mapping_16, - -1, - 15000, - 19000, - - blocksize_16_short, - blocksize_16_long, - - _psy_tone_masteratt_16, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - - _psy_noiseguards_16, - _psy_noisebias_16_impulse, - _psy_noisebias_16_short, - _psy_noisebias_16_short, - _psy_noisebias_16, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_16_mapping, - _psy_compand_16_mapping, - - {_noise_start_16,_noise_start_16}, - { _noise_part_16, _noise_part_16}, - _noise_thresh_16, - - _psy_ath_floater_16, - _psy_ath_abs_16, - - _psy_lowpass_16, - - _psy_global_44, - _global_mapping_16, - _psy_stereo_modes_16, - - _floor_books, - _floor, - 2, - _floor_mapping_16, - - _mapres_template_16_uncoupled -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_22.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_22.h deleted file mode 100644 index bc38af96..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_22.h +++ /dev/null @@ -1,127 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: 22kHz settings - - ********************************************************************/ - -static const double rate_mapping_22[4]={ - 15000.,20000.,44000.,86000. -}; - -static const double rate_mapping_22_uncoupled[4]={ - 16000.,28000.,50000.,90000. -}; - -static const double _psy_lowpass_22[4]={9.5,11.,30.,99.}; - -static const ve_setup_data_template ve_setup_22_stereo={ - 3, - rate_mapping_22, - quality_mapping_16, - 2, - 19000, - 26000, - - blocksize_16_short, - blocksize_16_long, - - _psy_tone_masteratt_16, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - - _psy_noiseguards_16, - _psy_noisebias_16_impulse, - _psy_noisebias_16_short, - _psy_noisebias_16_short, - _psy_noisebias_16, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_16_mapping, - _psy_compand_16_mapping, - - {_noise_start_16,_noise_start_16}, - { _noise_part_16, _noise_part_16}, - _noise_thresh_16, - - _psy_ath_floater_16, - _psy_ath_abs_16, - - _psy_lowpass_22, - - _psy_global_44, - _global_mapping_16, - _psy_stereo_modes_16, - - _floor_books, - _floor, - 2, - _floor_mapping_16, - - _mapres_template_16_stereo -}; - -static const ve_setup_data_template ve_setup_22_uncoupled={ - 3, - rate_mapping_22_uncoupled, - quality_mapping_16, - -1, - 19000, - 26000, - - blocksize_16_short, - blocksize_16_long, - - _psy_tone_masteratt_16, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - _vp_tonemask_adj_16, - - _psy_noiseguards_16, - _psy_noisebias_16_impulse, - _psy_noisebias_16_short, - _psy_noisebias_16_short, - _psy_noisebias_16, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_16_mapping, - _psy_compand_16_mapping, - - {_noise_start_16,_noise_start_16}, - { _noise_part_16, _noise_part_16}, - _noise_thresh_16, - - _psy_ath_floater_16, - _psy_ath_abs_16, - - _psy_lowpass_22, - - _psy_global_44, - _global_mapping_16, - _psy_stereo_modes_16, - - _floor_books, - _floor, - 2, - _floor_mapping_16, - - _mapres_template_16_uncoupled -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_32.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_32.h deleted file mode 100644 index f66a0bcd..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_32.h +++ /dev/null @@ -1,131 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel settings for 32kHz - - ********************************************************************/ - -static const double rate_mapping_32[12]={ - 18000.,28000.,35000.,45000.,56000.,60000., - 75000.,90000.,100000.,115000.,150000.,190000., -}; - -static const double rate_mapping_32_un[12]={ - 30000.,42000.,52000.,64000.,72000.,78000., - 86000.,92000.,110000.,120000.,140000.,190000., -}; - -static const double _psy_lowpass_32[12]={ - 12.3,13.,13.,14.,15.,99.,99.,99.,99.,99.,99.,99. -}; - -static const ve_setup_data_template ve_setup_32_stereo={ - 11, - rate_mapping_32, - quality_mapping_44, - 2, - 26000, - 40000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_32, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44, - - _floor_books, - _floor, - 2, - _floor_mapping_44, - - _mapres_template_44_stereo -}; - -static const ve_setup_data_template ve_setup_32_uncoupled={ - 11, - rate_mapping_32_un, - quality_mapping_44, - -1, - 26000, - 40000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_32, - - _psy_global_44, - _global_mapping_44, - NULL, - - _floor_books, - _floor, - 2, - _floor_mapping_44, - - _mapres_template_44_uncoupled -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44.h deleted file mode 100644 index a189b5fb..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44.h +++ /dev/null @@ -1,116 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel settings for 44.1/48kHz - - ********************************************************************/ - -#include "modes/floor_all.h" -#include "modes/residue_44.h" -#include "modes/psych_44.h" - -static const double rate_mapping_44_stereo[12]={ - 22500.,32000.,40000.,48000.,56000.,64000., - 80000.,96000.,112000.,128000.,160000.,250001. -}; - -static const double quality_mapping_44[12]={ - -.1,.0,.1,.2,.3,.4,.5,.6,.7,.8,.9,1.0 -}; - -static const int blocksize_short_44[11]={ - 512,256,256,256,256,256,256,256,256,256,256 -}; -static const int blocksize_long_44[11]={ - 4096,2048,2048,2048,2048,2048,2048,2048,2048,2048,2048 -}; - -static const double _psy_compand_short_mapping[12]={ - 0.5, 1., 1., 1.3, 1.6, 2., 2., 2., 2., 2., 2., 2. -}; -static const double _psy_compand_long_mapping[12]={ - 3.5, 4., 4., 4.3, 4.6, 5., 5., 5., 5., 5., 5., 5. -}; - -static const double _global_mapping_44[12]={ - /* 1., 1., 1.5, 2., 2., 2.5, 2.7, 3.0, 3.5, 4., 4. */ - 0., 1., 1., 1.5, 2., 2., 2.5, 2.7, 3.0, 3.7, 4., 4. -}; - -static const int _floor_mapping_44a[11]={ - 1,0,0,2,2,4,5,5,5,5,5 -}; - -static const int _floor_mapping_44b[11]={ - 8,7,7,7,7,7,7,7,7,7,7 -}; - -static const int _floor_mapping_44c[11]={ - 10,10,10,10,10,10,10,10,10,10,10 -}; - -static const int *_floor_mapping_44[]={ - _floor_mapping_44a, - _floor_mapping_44b, - _floor_mapping_44c, -}; - -static const ve_setup_data_template ve_setup_44_stereo={ - 11, - rate_mapping_44_stereo, - quality_mapping_44, - 2, - 40000, - 50000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_44, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44, - - _floor_books, - _floor, - 2, - _floor_mapping_44, - - _mapres_template_44_stereo -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44p51.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44p51.h deleted file mode 100644 index 3bde7b34..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44p51.h +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel settings for 44.1/48kHz 5.1 surround modes - - ********************************************************************/ - -#include "modes/residue_44p51.h" - -static const double rate_mapping_44p51[12]={ - 14000.,20000.,28000.,38000.,46000.,54000., - 75000.,96000.,120000.,140000.,180000.,240001. -}; - -static const ve_setup_data_template ve_setup_44_51={ - 11, - rate_mapping_44p51, - quality_mapping_44, - 6, - 40000, - 70000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_44, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44, - - _floor_books, - _floor, - 3, - _floor_mapping_44, - - _mapres_template_44_51 -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44u.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44u.h deleted file mode 100644 index 7ae3af6b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_44u.h +++ /dev/null @@ -1,73 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: toplevel settings for 44.1/48kHz uncoupled modes - - ********************************************************************/ - -#include "modes/residue_44u.h" - -static const double rate_mapping_44_un[12]={ - 32000.,48000.,60000.,70000.,80000.,86000., - 96000.,110000.,120000.,140000.,160000.,240001. -}; - -static const ve_setup_data_template ve_setup_44_uncoupled={ - 11, - rate_mapping_44_un, - quality_mapping_44, - -1, - 40000, - 50000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_44, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44, - - _floor_books, - _floor, - 2, - _floor_mapping_44, - - _mapres_template_44_uncoupled -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_8.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_8.h deleted file mode 100644 index 75025568..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_8.h +++ /dev/null @@ -1,148 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: 8kHz settings - - ********************************************************************/ - -#include "psych_8.h" -#include "residue_8.h" - -static const int blocksize_8[2]={ - 512,512 -}; - -static const int _floor_mapping_8a[]={ - 6,6 -}; - -static const int *_floor_mapping_8[]={ - _floor_mapping_8a -}; - -static const double rate_mapping_8[3]={ - 6000.,9000.,32000., -}; - -static const double rate_mapping_8_uncoupled[3]={ - 8000.,14000.,42000., -}; - -static const double quality_mapping_8[3]={ - -.1,.0,1. -}; - -static const double _psy_compand_8_mapping[3]={ 0., 1., 1.}; - -static const double _global_mapping_8[3]={ 1., 2., 3. }; - -static const ve_setup_data_template ve_setup_8_stereo={ - 2, - rate_mapping_8, - quality_mapping_8, - 2, - 8000, - 9000, - - blocksize_8, - blocksize_8, - - _psy_tone_masteratt_8, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_8, - NULL, - _vp_tonemask_adj_8, - - _psy_noiseguards_8, - _psy_noisebias_8, - _psy_noisebias_8, - NULL, - NULL, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_8_mapping, - NULL, - - {_noise_start_8,_noise_start_8}, - {_noise_part_8,_noise_part_8}, - _noise_thresh_5only, - - _psy_ath_floater_8, - _psy_ath_abs_8, - - _psy_lowpass_8, - - _psy_global_44, - _global_mapping_8, - _psy_stereo_modes_8, - - _floor_books, - _floor, - 1, - _floor_mapping_8, - - _mapres_template_8_stereo -}; - -static const ve_setup_data_template ve_setup_8_uncoupled={ - 2, - rate_mapping_8_uncoupled, - quality_mapping_8, - -1, - 8000, - 9000, - - blocksize_8, - blocksize_8, - - _psy_tone_masteratt_8, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_8, - NULL, - _vp_tonemask_adj_8, - - _psy_noiseguards_8, - _psy_noisebias_8, - _psy_noisebias_8, - NULL, - NULL, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_8_mapping, - NULL, - - {_noise_start_8,_noise_start_8}, - {_noise_part_8,_noise_part_8}, - _noise_thresh_5only, - - _psy_ath_floater_8, - _psy_ath_abs_8, - - _psy_lowpass_8, - - _psy_global_44, - _global_mapping_8, - _psy_stereo_modes_8, - - _floor_books, - _floor, - 1, - _floor_mapping_8, - - _mapres_template_8_uncoupled -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_X.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_X.h deleted file mode 100644 index 2229a5ef..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/modes/setup_X.h +++ /dev/null @@ -1,224 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: catch-all toplevel settings for q modes only - - ********************************************************************/ - -static const double rate_mapping_X[12]={ - -1.,-1.,-1.,-1.,-1.,-1., - -1.,-1.,-1.,-1.,-1.,-1. -}; - -static const ve_setup_data_template ve_setup_X_stereo={ - 11, - rate_mapping_X, - quality_mapping_44, - 2, - 50000, - 200000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_44, - - _psy_global_44, - _global_mapping_44, - _psy_stereo_modes_44, - - _floor_books, - _floor, - 2, - _floor_mapping_44, - - _mapres_template_44_stereo -}; - -static const ve_setup_data_template ve_setup_X_uncoupled={ - 11, - rate_mapping_X, - quality_mapping_44, - -1, - 50000, - 200000, - - blocksize_short_44, - blocksize_long_44, - - _psy_tone_masteratt_44, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_otherblock, - _vp_tonemask_adj_longblock, - _vp_tonemask_adj_otherblock, - - _psy_noiseguards_44, - _psy_noisebias_impulse, - _psy_noisebias_padding, - _psy_noisebias_trans, - _psy_noisebias_long, - _psy_noise_suppress, - - _psy_compand_44, - _psy_compand_short_mapping, - _psy_compand_long_mapping, - - {_noise_start_short_44,_noise_start_long_44}, - {_noise_part_short_44,_noise_part_long_44}, - _noise_thresh_44, - - _psy_ath_floater, - _psy_ath_abs, - - _psy_lowpass_44, - - _psy_global_44, - _global_mapping_44, - NULL, - - _floor_books, - _floor, - 2, - _floor_mapping_44, - - _mapres_template_44_uncoupled -}; - -static const ve_setup_data_template ve_setup_XX_stereo={ - 2, - rate_mapping_X, - quality_mapping_8, - 2, - 0, - 8000, - - blocksize_8, - blocksize_8, - - _psy_tone_masteratt_8, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_8, - NULL, - _vp_tonemask_adj_8, - - _psy_noiseguards_8, - _psy_noisebias_8, - _psy_noisebias_8, - NULL, - NULL, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_8_mapping, - NULL, - - {_noise_start_8,_noise_start_8}, - {_noise_part_8,_noise_part_8}, - _noise_thresh_5only, - - _psy_ath_floater_8, - _psy_ath_abs_8, - - _psy_lowpass_8, - - _psy_global_44, - _global_mapping_8, - _psy_stereo_modes_8, - - _floor_books, - _floor, - 1, - _floor_mapping_8, - - _mapres_template_8_stereo -}; - -static const ve_setup_data_template ve_setup_XX_uncoupled={ - 2, - rate_mapping_X, - quality_mapping_8, - -1, - 0, - 8000, - - blocksize_8, - blocksize_8, - - _psy_tone_masteratt_8, - _psy_tone_0dB, - _psy_tone_suppress, - - _vp_tonemask_adj_8, - NULL, - _vp_tonemask_adj_8, - - _psy_noiseguards_8, - _psy_noisebias_8, - _psy_noisebias_8, - NULL, - NULL, - _psy_noise_suppress, - - _psy_compand_8, - _psy_compand_8_mapping, - NULL, - - {_noise_start_8,_noise_start_8}, - {_noise_part_8,_noise_part_8}, - _noise_thresh_5only, - - _psy_ath_floater_8, - _psy_ath_abs_8, - - _psy_lowpass_8, - - _psy_global_44, - _global_mapping_8, - _psy_stereo_modes_8, - - _floor_books, - _floor, - 1, - _floor_mapping_8, - - _mapres_template_8_uncoupled -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/os.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/os.h deleted file mode 100644 index 416a401d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/os.h +++ /dev/null @@ -1,190 +0,0 @@ -#ifndef _OS_H -#define _OS_H -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: #ifdef jail to whip a few platforms into the UNIX ideal. - - ********************************************************************/ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include -#include - -#include "misc.h" - -#ifndef _V_IFDEFJAIL_H_ -# define _V_IFDEFJAIL_H_ - -# ifdef __GNUC__ -# define STIN static __inline__ -# elif defined(_WIN32) -# define STIN static __inline -# else -# define STIN static -# endif - -#ifdef DJGPP -# define rint(x) (floor((x)+0.5f)) -#endif - -#ifndef M_PI -# define M_PI (3.1415926536f) -#endif - -#if defined(_WIN32) && !defined(__SYMBIAN32__) -# include -# define rint(x) (floor((x)+0.5f)) -# define NO_FLOAT_MATH_LIB -# define FAST_HYPOT(a, b) sqrt((a)*(a) + (b)*(b)) -#endif - -#if defined(__SYMBIAN32__) && defined(__WINS__) -void *_alloca(size_t size); -# define alloca _alloca -#endif - -#ifndef FAST_HYPOT -# define FAST_HYPOT hypot -#endif - -#endif - -#ifdef HAVE_ALLOCA_H -# include -#endif - -#ifdef USE_MEMORY_H -# include -#endif - -#ifndef min -# define min(x,y) ((x)>(y)?(y):(x)) -#endif - -#ifndef max -# define max(x,y) ((x)<(y)?(y):(x)) -#endif - - -/* Special i386 GCC implementation */ -#if defined(__i386__) && defined(__GNUC__) && !defined(__BEOS__) -# define VORBIS_FPU_CONTROL -/* both GCC and MSVC are kinda stupid about rounding/casting to int. - Because of encapsulation constraints (GCC can't see inside the asm - block and so we end up doing stupid things like a store/load that - is collectively a noop), we do it this way */ - -/* we must set up the fpu before this works!! */ - -typedef ogg_int16_t vorbis_fpu_control; - -static inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ - ogg_int16_t ret; - ogg_int16_t temp; - __asm__ __volatile__("fnstcw %0\n\t" - "movw %0,%%dx\n\t" - "andw $62463,%%dx\n\t" - "movw %%dx,%1\n\t" - "fldcw %1\n\t":"=m"(ret):"m"(temp): "dx"); - *fpu=ret; -} - -static inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ - __asm__ __volatile__("fldcw %0":: "m"(fpu)); -} - -/* assumes the FPU is in round mode! */ -static inline int vorbis_ftoi(double f){ /* yes, double! Otherwise, - we get extra fst/fld to - truncate precision */ - int i; - __asm__("fistl %0": "=m"(i) : "t"(f)); - return(i); -} -#endif /* Special i386 GCC implementation */ - - -/* MSVC inline assembly. 32 bit only; inline ASM isn't implemented in the - * 64 bit compiler and doesn't work on arm. */ -#if defined(_MSC_VER) && !defined(_WIN64) && \ - !defined(_WIN32_WCE) && !defined(_M_ARM) -# define VORBIS_FPU_CONTROL - -typedef ogg_int16_t vorbis_fpu_control; - -static __inline int vorbis_ftoi(double f){ - int i; - __asm{ - fld f - fistp i - } - return i; -} - -static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ - (void)fpu; -} - -static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ - (void)fpu; -} - -#endif /* Special MSVC 32 bit implementation */ - - -/* Optimized code path for x86_64 builds. Uses SSE2 intrinsics. This can be - done safely because all x86_64 CPUs supports SSE2. */ -#if (defined(_MSC_VER) && defined(_WIN64)) || (defined(__GNUC__) && defined (__x86_64__)) -# define VORBIS_FPU_CONTROL - -typedef ogg_int16_t vorbis_fpu_control; - -#include -static __inline int vorbis_ftoi(double f){ - return _mm_cvtsd_si32(_mm_load_sd(&f)); -} - -static __inline void vorbis_fpu_setround(vorbis_fpu_control *fpu){ - (void)fpu; -} - -static __inline void vorbis_fpu_restore(vorbis_fpu_control fpu){ - (void)fpu; -} - -#endif /* Special MSVC x64 implementation */ - - -/* If no special implementation was found for the current compiler / platform, - use the default implementation here: */ -#ifndef VORBIS_FPU_CONTROL - -typedef int vorbis_fpu_control; - -static int vorbis_ftoi(double f){ - /* Note: MSVC and GCC (at least on some systems) round towards zero, thus, - the floor() call is required to ensure correct roudning of - negative numbers */ - return (int)floor(f+.5); -} - -/* We don't have special code for this compiler/arch, so do it the slow way */ -# define vorbis_fpu_setround(vorbis_fpu_control) {} -# define vorbis_fpu_restore(vorbis_fpu_control) {} - -#endif /* default implementation */ - -#endif /* _OS_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/psy.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/psy.c deleted file mode 100644 index 422c6f1e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/psy.c +++ /dev/null @@ -1,1205 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: psychoacoustics not including preecho - - ********************************************************************/ - -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" - -#include "masking.h" -#include "psy.h" -#include "os.h" -#include "lpc.h" -#include "smallft.h" -#include "scales.h" -#include "misc.h" - -#define NEGINF -9999.f -static const double stereo_threshholds[]={0.0, .5, 1.0, 1.5, 2.5, 4.5, 8.5, 16.5, 9e10}; -static const double stereo_threshholds_limited[]={0.0, .5, 1.0, 1.5, 2.0, 2.5, 4.5, 8.5, 9e10}; - -vorbis_look_psy_global *_vp_global_look(vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *gi=&ci->psy_g_param; - vorbis_look_psy_global *look=_ogg_calloc(1,sizeof(*look)); - - look->channels=vi->channels; - - look->ampmax=-9999.; - look->gi=gi; - return(look); -} - -void _vp_global_free(vorbis_look_psy_global *look){ - if(look){ - memset(look,0,sizeof(*look)); - _ogg_free(look); - } -} - -void _vi_gpsy_free(vorbis_info_psy_global *i){ - if(i){ - memset(i,0,sizeof(*i)); - _ogg_free(i); - } -} - -void _vi_psy_free(vorbis_info_psy *i){ - if(i){ - memset(i,0,sizeof(*i)); - _ogg_free(i); - } -} - -static void min_curve(float *c, - float *c2){ - int i; - for(i=0;ic[i])c[i]=c2[i]; -} - -static void attenuate_curve(float *c,float att){ - int i; - for(i=0;iATH[j+k+ath_offset])min=ATH[j+k+ath_offset]; - }else{ - if(min>ATH[MAX_ATH-1])min=ATH[MAX_ATH-1]; - } - ath[j]=min; - } - - /* copy curves into working space, replicate the 50dB curve to 30 - and 40, replicate the 100dB curve to 110 */ - for(j=0;j<6;j++) - memcpy(workc[i][j+2],tonemasks[i][j],EHMER_MAX*sizeof(*tonemasks[i][j])); - memcpy(workc[i][0],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); - memcpy(workc[i][1],tonemasks[i][0],EHMER_MAX*sizeof(*tonemasks[i][0])); - - /* apply centered curve boost/decay */ - for(j=0;j0)adj=0.; - if(adj>0. && center_boost<0)adj=0.; - workc[i][j][k]+=adj; - } - } - - /* normalize curves so the driving amplitude is 0dB */ - /* make temp curves with the ATH overlayed */ - for(j=0;j an eighth of an octave and that the eighth - octave values may also be composited. */ - - /* which octave curves will we be compositing? */ - bin=floor(fromOC(i*.5)/binHz); - lo_curve= ceil(toOC(bin*binHz+1)*2); - hi_curve= floor(toOC((bin+1)*binHz)*2); - if(lo_curve>i)lo_curve=i; - if(lo_curve<0)lo_curve=0; - if(hi_curve>=P_BANDS)hi_curve=P_BANDS-1; - - for(m=0;mn)lo_bin=n; - if(lo_binn)hi_bin=n; - - for(;lworkc[k][m][j]) - brute_buffer[l]=workc[k][m][j]; - } - - for(;lworkc[k][m][EHMER_MAX-1]) - brute_buffer[l]=workc[k][m][EHMER_MAX-1]; - - } - - /* be equally paranoid about being valid up to next half ocatve */ - if(i+1n)lo_bin=n; - if(lo_binn)hi_bin=n; - - for(;lworkc[k][m][j]) - brute_buffer[l]=workc[k][m][j]; - } - - for(;lworkc[k][m][EHMER_MAX-1]) - brute_buffer[l]=workc[k][m][EHMER_MAX-1]; - - } - - - for(j=0;j=n){ - ret[i][m][j+2]=-999.; - }else{ - ret[i][m][j+2]=brute_buffer[bin]; - } - } - } - - /* add fenceposts */ - for(j=0;j-200.f)break; - ret[i][m][0]=j; - - for(j=EHMER_MAX-1;j>EHMER_OFFSET+1;j--) - if(ret[i][m][j+2]>-200.f) - break; - ret[i][m][1]=j; - - } - } - - return(ret); -} - -void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi, - vorbis_info_psy_global *gi,int n,long rate){ - long i,j,lo=-99,hi=1; - long maxoc; - memset(p,0,sizeof(*p)); - - p->eighth_octave_lines=gi->eighth_octave_lines; - p->shiftoc=rint(log(gi->eighth_octave_lines*8.f)/log(2.f))-1; - - p->firstoc=toOC(.25f*rate*.5/n)*(1<<(p->shiftoc+1))-gi->eighth_octave_lines; - maxoc=toOC((n+.25f)*rate*.5/n)*(1<<(p->shiftoc+1))+.5f; - p->total_octave_lines=maxoc-p->firstoc+1; - p->ath=_ogg_malloc(n*sizeof(*p->ath)); - - p->octave=_ogg_malloc(n*sizeof(*p->octave)); - p->bark=_ogg_malloc(n*sizeof(*p->bark)); - p->vi=vi; - p->n=n; - p->rate=rate; - - /* AoTuV HF weighting */ - p->m_val = 1.; - if(rate < 26000) p->m_val = 0; - else if(rate < 38000) p->m_val = .94; /* 32kHz */ - else if(rate > 46000) p->m_val = 1.275; /* 48kHz */ - - /* set up the lookups for a given blocksize and sample rate */ - - for(i=0,j=0;iath[j]=base+100.; - base+=delta; - } - } - } - - for(;jath[j]=p->ath[j-1]; - } - - for(i=0;inoisewindowlominnoisewindowlo);lo++); - - for(;hi<=n && (hinoisewindowhimin || - toBARK(rate/(2*n)*hi)<(bark+vi->noisewindowhi));hi++); - - p->bark[i]=((lo-1)<<16)+(hi-1); - - } - - for(i=0;ioctave[i]=toOC((i+.25f)*.5*rate/n)*(1<<(p->shiftoc+1))+.5f; - - p->tonecurves=setup_tone_curves(vi->toneatt,rate*.5/n,n, - vi->tone_centerboost,vi->tone_decay); - - /* set up rolling noise median */ - p->noiseoffset=_ogg_malloc(P_NOISECURVES*sizeof(*p->noiseoffset)); - for(i=0;inoiseoffset[i]=_ogg_malloc(n*sizeof(**p->noiseoffset)); - - for(i=0;i=P_BANDS-1)halfoc=P_BANDS-1; - inthalfoc=(int)halfoc; - del=halfoc-inthalfoc; - - for(j=0;jnoiseoffset[j][i]= - p->vi->noiseoff[j][inthalfoc]*(1.-del) + - p->vi->noiseoff[j][inthalfoc+1]*del; - - } -#if 0 - { - static int ls=0; - _analysis_output_always("noiseoff0",ls,p->noiseoffset[0],n,1,0,0); - _analysis_output_always("noiseoff1",ls,p->noiseoffset[1],n,1,0,0); - _analysis_output_always("noiseoff2",ls++,p->noiseoffset[2],n,1,0,0); - } -#endif -} - -void _vp_psy_clear(vorbis_look_psy *p){ - int i,j; - if(p){ - if(p->ath)_ogg_free(p->ath); - if(p->octave)_ogg_free(p->octave); - if(p->bark)_ogg_free(p->bark); - if(p->tonecurves){ - for(i=0;itonecurves[i][j]); - } - _ogg_free(p->tonecurves[i]); - } - _ogg_free(p->tonecurves); - } - if(p->noiseoffset){ - for(i=0;inoiseoffset[i]); - } - _ogg_free(p->noiseoffset); - } - memset(p,0,sizeof(*p)); - } -} - -/* octave/(8*eighth_octave_lines) x scale and dB y scale */ -static void seed_curve(float *seed, - const float **curves, - float amp, - int oc, int n, - int linesper,float dBoffset){ - int i,post1; - int seedptr; - const float *posts,*curve; - - int choice=(int)((amp+dBoffset-P_LEVEL_0)*.1f); - choice=max(choice,0); - choice=min(choice,P_LEVELS-1); - posts=curves[choice]; - curve=posts+2; - post1=(int)posts[1]; - seedptr=oc+(posts[0]-EHMER_OFFSET)*linesper-(linesper>>1); - - for(i=posts[0];i0){ - float lin=amp+curve[i]; - if(seed[seedptr]=n)break; - } -} - -static void seed_loop(vorbis_look_psy *p, - const float ***curves, - const float *f, - const float *flr, - float *seed, - float specmax){ - vorbis_info_psy *vi=p->vi; - long n=p->n,i; - float dBoffset=vi->max_curve_dB-specmax; - - /* prime the working vector with peak values */ - - for(i=0;ioctave[i]; - while(i+1octave[i+1]==oc){ - i++; - if(f[i]>max)max=f[i]; - } - - if(max+6.f>flr[i]){ - oc=oc>>p->shiftoc; - - if(oc>=P_BANDS)oc=P_BANDS-1; - if(oc<0)oc=0; - - seed_curve(seed, - curves[oc], - max, - p->octave[i]-p->firstoc, - p->total_octave_lines, - p->eighth_octave_lines, - dBoffset); - } - } -} - -static void seed_chase(float *seeds, int linesper, long n){ - long *posstack=alloca(n*sizeof(*posstack)); - float *ampstack=alloca(n*sizeof(*ampstack)); - long stack=0; - long pos=0; - long i; - - for(i=0;i1 && ampstack[stack-1]<=ampstack[stack-2] && - iampstack[i]){ - endpos=posstack[i+1]; - }else{ - endpos=posstack[i]+linesper+1; /* +1 is important, else bin 0 is - discarded in short frames */ - } - if(endpos>n)endpos=n; - for(;pos -static void max_seeds(vorbis_look_psy *p, - float *seed, - float *flr){ - long n=p->total_octave_lines; - int linesper=p->eighth_octave_lines; - long linpos=0; - long pos; - - seed_chase(seed,linesper,n); /* for masking */ - - pos=p->octave[0]-p->firstoc-(linesper>>1); - - while(linpos+1n){ - float minV=seed[pos]; - long end=((p->octave[linpos]+p->octave[linpos+1])>>1)-p->firstoc; - if(minV>p->vi->tone_abs_limit)minV=p->vi->tone_abs_limit; - while(pos+1<=end){ - pos++; - if((seed[pos]>NEGINF && seed[pos]firstoc; - for(;linposn && p->octave[linpos]<=end;linpos++) - if(flr[linpos]total_octave_lines-1]; - for(;linposn;linpos++) - if(flr[linpos]> 16; - if( lo>=0 ) break; - hi = b[i] & 0xffff; - - tN = N[hi] + N[-lo]; - tX = X[hi] - X[-lo]; - tXX = XX[hi] + XX[-lo]; - tY = Y[hi] + Y[-lo]; - tXY = XY[hi] - XY[-lo]; - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - if (R < 0.f) - R = 0.f; - - noise[i] = R - offset; - } - - for ( ;; i++, x += 1.f) { - - lo = b[i] >> 16; - hi = b[i] & 0xffff; - if(hi>=n)break; - - tN = N[hi] - N[lo]; - tX = X[hi] - X[lo]; - tXX = XX[hi] - XX[lo]; - tY = Y[hi] - Y[lo]; - tXY = XY[hi] - XY[lo]; - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - if (R < 0.f) R = 0.f; - - noise[i] = R - offset; - } - for ( ; i < n; i++, x += 1.f) { - - R = (A + x * B) / D; - if (R < 0.f) R = 0.f; - - noise[i] = R - offset; - } - - if (fixed <= 0) return; - - for (i = 0, x = 0.f;; i++, x += 1.f) { - hi = i + fixed / 2; - lo = hi - fixed; - if(lo>=0)break; - - tN = N[hi] + N[-lo]; - tX = X[hi] - X[-lo]; - tXX = XX[hi] + XX[-lo]; - tY = Y[hi] + Y[-lo]; - tXY = XY[hi] - XY[-lo]; - - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - - if (R - offset < noise[i]) noise[i] = R - offset; - } - for ( ;; i++, x += 1.f) { - - hi = i + fixed / 2; - lo = hi - fixed; - if(hi>=n)break; - - tN = N[hi] - N[lo]; - tX = X[hi] - X[lo]; - tXX = XX[hi] - XX[lo]; - tY = Y[hi] - Y[lo]; - tXY = XY[hi] - XY[lo]; - - A = tY * tXX - tX * tXY; - B = tN * tXY - tX * tY; - D = tN * tXX - tX * tX; - R = (A + x * B) / D; - - if (R - offset < noise[i]) noise[i] = R - offset; - } - for ( ; i < n; i++, x += 1.f) { - R = (A + x * B) / D; - if (R - offset < noise[i]) noise[i] = R - offset; - } -} - -void _vp_noisemask(vorbis_look_psy *p, - float *logmdct, - float *logmask){ - - int i,n=p->n; - float *work=alloca(n*sizeof(*work)); - - bark_noise_hybridmp(n,p->bark,logmdct,logmask, - 140.,-1); - - for(i=0;ibark,work,logmask,0., - p->vi->noisewindowfixed); - - for(i=0;i=NOISE_COMPAND_LEVELS)dB=NOISE_COMPAND_LEVELS-1; - if(dB<0)dB=0; - logmask[i]= work[i]+p->vi->noisecompand[dB]; - } - -} - -void _vp_tonemask(vorbis_look_psy *p, - float *logfft, - float *logmask, - float global_specmax, - float local_specmax){ - - int i,n=p->n; - - float *seed=alloca(sizeof(*seed)*p->total_octave_lines); - float att=local_specmax+p->vi->ath_adjatt; - for(i=0;itotal_octave_lines;i++)seed[i]=NEGINF; - - /* set the ATH (floating below localmax, not global max by a - specified att) */ - if(attvi->ath_maxatt)att=p->vi->ath_maxatt; - - for(i=0;iath[i]+att; - - /* tone masking */ - seed_loop(p,(const float ***)p->tonecurves,logfft,logmask,seed,global_specmax); - max_seeds(p,seed,logmask); - -} - -void _vp_offset_and_mix(vorbis_look_psy *p, - float *noise, - float *tone, - int offset_select, - float *logmask, - float *mdct, - float *logmdct){ - int i,n=p->n; - float de, coeffi, cx;/* AoTuV */ - float toneatt=p->vi->tone_masteratt[offset_select]; - - cx = p->m_val; - - for(i=0;inoiseoffset[offset_select][i]; - if(val>p->vi->noisemaxsupp)val=p->vi->noisemaxsupp; - logmask[i]=max(val,tone[i]+toneatt); - - - /* AoTuV */ - /** @ M1 ** - The following codes improve a noise problem. - A fundamental idea uses the value of masking and carries out - the relative compensation of the MDCT. - However, this code is not perfect and all noise problems cannot be solved. - by Aoyumi @ 2004/04/18 - */ - - if(offset_select == 1) { - coeffi = -17.2; /* coeffi is a -17.2dB threshold */ - val = val - logmdct[i]; /* val == mdct line value relative to floor in dB */ - - if(val > coeffi){ - /* mdct value is > -17.2 dB below floor */ - - de = 1.0-((val-coeffi)*0.005*cx); - /* pro-rated attenuation: - -0.00 dB boost if mdct value is -17.2dB (relative to floor) - -0.77 dB boost if mdct value is 0dB (relative to floor) - -1.64 dB boost if mdct value is +17.2dB (relative to floor) - etc... */ - - if(de < 0) de = 0.0001; - }else - /* mdct value is <= -17.2 dB below floor */ - - de = 1.0-((val-coeffi)*0.0003*cx); - /* pro-rated attenuation: - +0.00 dB atten if mdct value is -17.2dB (relative to floor) - +0.45 dB atten if mdct value is -34.4dB (relative to floor) - etc... */ - - mdct[i] *= de; - - } - } -} - -float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd){ - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - vorbis_info_psy_global *gi=&ci->psy_g_param; - - int n=ci->blocksizes[vd->W]/2; - float secs=(float)n/vi->rate; - - amp+=secs*gi->ampmax_att_per_sec; - if(amp<-9999)amp=-9999; - return(amp); -} - -static float FLOOR1_fromdB_LOOKUP[256]={ - 1.0649863e-07F, 1.1341951e-07F, 1.2079015e-07F, 1.2863978e-07F, - 1.3699951e-07F, 1.4590251e-07F, 1.5538408e-07F, 1.6548181e-07F, - 1.7623575e-07F, 1.8768855e-07F, 1.9988561e-07F, 2.128753e-07F, - 2.2670913e-07F, 2.4144197e-07F, 2.5713223e-07F, 2.7384213e-07F, - 2.9163793e-07F, 3.1059021e-07F, 3.3077411e-07F, 3.5226968e-07F, - 3.7516214e-07F, 3.9954229e-07F, 4.2550680e-07F, 4.5315863e-07F, - 4.8260743e-07F, 5.1396998e-07F, 5.4737065e-07F, 5.8294187e-07F, - 6.2082472e-07F, 6.6116941e-07F, 7.0413592e-07F, 7.4989464e-07F, - 7.9862701e-07F, 8.5052630e-07F, 9.0579828e-07F, 9.6466216e-07F, - 1.0273513e-06F, 1.0941144e-06F, 1.1652161e-06F, 1.2409384e-06F, - 1.3215816e-06F, 1.4074654e-06F, 1.4989305e-06F, 1.5963394e-06F, - 1.7000785e-06F, 1.8105592e-06F, 1.9282195e-06F, 2.0535261e-06F, - 2.1869758e-06F, 2.3290978e-06F, 2.4804557e-06F, 2.6416497e-06F, - 2.8133190e-06F, 2.9961443e-06F, 3.1908506e-06F, 3.3982101e-06F, - 3.6190449e-06F, 3.8542308e-06F, 4.1047004e-06F, 4.3714470e-06F, - 4.6555282e-06F, 4.9580707e-06F, 5.2802740e-06F, 5.6234160e-06F, - 5.9888572e-06F, 6.3780469e-06F, 6.7925283e-06F, 7.2339451e-06F, - 7.7040476e-06F, 8.2047000e-06F, 8.7378876e-06F, 9.3057248e-06F, - 9.9104632e-06F, 1.0554501e-05F, 1.1240392e-05F, 1.1970856e-05F, - 1.2748789e-05F, 1.3577278e-05F, 1.4459606e-05F, 1.5399272e-05F, - 1.6400004e-05F, 1.7465768e-05F, 1.8600792e-05F, 1.9809576e-05F, - 2.1096914e-05F, 2.2467911e-05F, 2.3928002e-05F, 2.5482978e-05F, - 2.7139006e-05F, 2.8902651e-05F, 3.0780908e-05F, 3.2781225e-05F, - 3.4911534e-05F, 3.7180282e-05F, 3.9596466e-05F, 4.2169667e-05F, - 4.4910090e-05F, 4.7828601e-05F, 5.0936773e-05F, 5.4246931e-05F, - 5.7772202e-05F, 6.1526565e-05F, 6.5524908e-05F, 6.9783085e-05F, - 7.4317983e-05F, 7.9147585e-05F, 8.4291040e-05F, 8.9768747e-05F, - 9.5602426e-05F, 0.00010181521F, 0.00010843174F, 0.00011547824F, - 0.00012298267F, 0.00013097477F, 0.00013948625F, 0.00014855085F, - 0.00015820453F, 0.00016848555F, 0.00017943469F, 0.00019109536F, - 0.00020351382F, 0.00021673929F, 0.00023082423F, 0.00024582449F, - 0.00026179955F, 0.00027881276F, 0.00029693158F, 0.00031622787F, - 0.00033677814F, 0.00035866388F, 0.00038197188F, 0.00040679456F, - 0.00043323036F, 0.00046138411F, 0.00049136745F, 0.00052329927F, - 0.00055730621F, 0.00059352311F, 0.00063209358F, 0.00067317058F, - 0.00071691700F, 0.00076350630F, 0.00081312324F, 0.00086596457F, - 0.00092223983F, 0.00098217216F, 0.0010459992F, 0.0011139742F, - 0.0011863665F, 0.0012634633F, 0.0013455702F, 0.0014330129F, - 0.0015261382F, 0.0016253153F, 0.0017309374F, 0.0018434235F, - 0.0019632195F, 0.0020908006F, 0.0022266726F, 0.0023713743F, - 0.0025254795F, 0.0026895994F, 0.0028643847F, 0.0030505286F, - 0.0032487691F, 0.0034598925F, 0.0036847358F, 0.0039241906F, - 0.0041792066F, 0.0044507950F, 0.0047400328F, 0.0050480668F, - 0.0053761186F, 0.0057254891F, 0.0060975636F, 0.0064938176F, - 0.0069158225F, 0.0073652516F, 0.0078438871F, 0.0083536271F, - 0.0088964928F, 0.009474637F, 0.010090352F, 0.010746080F, - 0.011444421F, 0.012188144F, 0.012980198F, 0.013823725F, - 0.014722068F, 0.015678791F, 0.016697687F, 0.017782797F, - 0.018938423F, 0.020169149F, 0.021479854F, 0.022875735F, - 0.024362330F, 0.025945531F, 0.027631618F, 0.029427276F, - 0.031339626F, 0.033376252F, 0.035545228F, 0.037855157F, - 0.040315199F, 0.042935108F, 0.045725273F, 0.048696758F, - 0.051861348F, 0.055231591F, 0.058820850F, 0.062643361F, - 0.066714279F, 0.071049749F, 0.075666962F, 0.080584227F, - 0.085821044F, 0.091398179F, 0.097337747F, 0.10366330F, - 0.11039993F, 0.11757434F, 0.12521498F, 0.13335215F, - 0.14201813F, 0.15124727F, 0.16107617F, 0.17154380F, - 0.18269168F, 0.19456402F, 0.20720788F, 0.22067342F, - 0.23501402F, 0.25028656F, 0.26655159F, 0.28387361F, - 0.30232132F, 0.32196786F, 0.34289114F, 0.36517414F, - 0.38890521F, 0.41417847F, 0.44109412F, 0.46975890F, - 0.50028648F, 0.53279791F, 0.56742212F, 0.60429640F, - 0.64356699F, 0.68538959F, 0.72993007F, 0.77736504F, - 0.82788260F, 0.88168307F, 0.9389798F, 1.F, -}; - -/* this is for per-channel noise normalization */ -static int apsort(const void *a, const void *b){ - float f1=**(float**)a; - float f2=**(float**)b; - return (f1f2); -} - -static void flag_lossless(int limit, float prepoint, float postpoint, float *mdct, - float *floor, int *flag, int i, int jn){ - int j; - for(j=0;j=limit-i ? postpoint : prepoint; - float r = fabs(mdct[j])/floor[j]; - if(rvi; - float **sort = alloca(n*sizeof(*sort)); - int j,count=0; - int start = (vi->normal_p ? vi->normal_start-i : n); - if(start>n)start=n; - - /* force classic behavior where only energy in the current band is considered */ - acc=0.f; - - /* still responsible for populating *out where noise norm not in - effect. There's no need to [re]populate *q in these areas */ - for(j=0;j pointlimit */ - if(ve<.25f && (!flags || j>=limit-i)){ - acc += ve; - sort[count++]=q+j; /* q is fabs(r) for unflagged element */ - }else{ - /* For now: no acc adjustment for nonzero quantization. populate *out and q as this value is final. */ - if(r[j]<0) - out[j] = -rint(sqrt(ve)); - else - out[j] = rint(sqrt(ve)); - q[j] = out[j]*out[j]*f[j]; - } - }/* else{ - again, no energy adjustment for error in nonzero quant-- for now - }*/ - } - - if(count){ - /* noise norm to do */ - qsort(sort,count,sizeof(*sort),apsort); - for(j=0;j=vi->normal_thresh){ - out[k]=unitnorm(r[k]); - acc-=1.f; - q[k]=f[k]; - }else{ - out[k]=0; - q[k]=0.f; - } - } - } - - return acc; -} - -/* Noise normalization, quantization and coupling are not wholly - seperable processes in depth>1 coupling. */ -void _vp_couple_quantize_normalize(int blobno, - vorbis_info_psy_global *g, - vorbis_look_psy *p, - vorbis_info_mapping0 *vi, - float **mdct, - int **iwork, - int *nonzero, - int sliding_lowpass, - int ch){ - - int i; - int n = p->n; - int partition=(p->vi->normal_p ? p->vi->normal_partition : 16); - int limit = g->coupling_pointlimit[p->vi->blockflag][blobno]; - float prepoint=stereo_threshholds[g->coupling_prepointamp[blobno]]; - float postpoint=stereo_threshholds[g->coupling_postpointamp[blobno]]; -#if 0 - float de=0.1*p->m_val; /* a blend of the AoTuV M2 and M3 code here and below */ -#endif - - /* mdct is our raw mdct output, floor not removed. */ - /* inout passes in the ifloor, passes back quantized result */ - - /* unquantized energy (negative indicates amplitude has negative sign) */ - float **raw = alloca(ch*sizeof(*raw)); - - /* dual pupose; quantized energy (if flag set), othersize fabs(raw) */ - float **quant = alloca(ch*sizeof(*quant)); - - /* floor energy */ - float **floor = alloca(ch*sizeof(*floor)); - - /* flags indicating raw/quantized status of elements in raw vector */ - int **flag = alloca(ch*sizeof(*flag)); - - /* non-zero flag working vector */ - int *nz = alloca(ch*sizeof(*nz)); - - /* energy surplus/defecit tracking */ - float *acc = alloca((ch+vi->coupling_steps)*sizeof(*acc)); - - /* The threshold of a stereo is changed with the size of n */ - if(n > 1000) - postpoint=stereo_threshholds_limited[g->coupling_postpointamp[blobno]]; - - raw[0] = alloca(ch*partition*sizeof(**raw)); - quant[0] = alloca(ch*partition*sizeof(**quant)); - floor[0] = alloca(ch*partition*sizeof(**floor)); - flag[0] = alloca(ch*partition*sizeof(**flag)); - - for(i=1;icoupling_steps;i++) - acc[i]=0.f; - - for(i=0;i n-i ? n-i : partition; - int step,track = 0; - - memcpy(nz,nonzero,sizeof(*nz)*ch); - - /* prefill */ - memset(flag[0],0,ch*partition*sizeof(**flag)); - for(k=0;kcoupling_steps;step++){ - int Mi = vi->coupling_mag[step]; - int Ai = vi->coupling_ang[step]; - int *iM = &iwork[Mi][i]; - int *iA = &iwork[Ai][i]; - float *reM = raw[Mi]; - float *reA = raw[Ai]; - float *qeM = quant[Mi]; - float *qeA = quant[Ai]; - float *floorM = floor[Mi]; - float *floorA = floor[Ai]; - int *fM = flag[Mi]; - int *fA = flag[Ai]; - - if(nz[Mi] || nz[Ai]){ - nz[Mi] = nz[Ai] = 1; - - for(j=0;jabs(B)){ - iA[j]=(A>0?A-B:B-A); - }else{ - iA[j]=(B>0?A-B:B-A); - iM[j]=B; - } - - /* collapse two equivalent tuples to one */ - if(iA[j]>=abs(iM[j])*2){ - iA[j]= -iA[j]; - iM[j]= -iM[j]; - } - - } - - }else{ - /* lossy (point) coupling */ - if(jcoupling_steps;i++){ - /* make sure coupling a zero and a nonzero channel results in two - nonzero channels. */ - if(nonzero[vi->coupling_mag[i]] || - nonzero[vi->coupling_ang[i]]){ - nonzero[vi->coupling_mag[i]]=1; - nonzero[vi->coupling_ang[i]]=1; - } - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/psy.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/psy.h deleted file mode 100644 index ab2534db..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/psy.h +++ /dev/null @@ -1,153 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: random psychoacoustics (not including preecho) - - ********************************************************************/ - -#ifndef _V_PSY_H_ -#define _V_PSY_H_ -#include "smallft.h" - -#include "backends.h" -#include "envelope.h" - -#ifndef EHMER_MAX -#define EHMER_MAX 56 -#endif - -/* psychoacoustic setup ********************************************/ -#define P_BANDS 17 /* 62Hz to 16kHz */ -#define P_LEVELS 8 /* 30dB to 100dB */ -#define P_LEVEL_0 30. /* 30 dB */ -#define P_NOISECURVES 3 - -#define NOISE_COMPAND_LEVELS 40 -typedef struct vorbis_info_psy{ - int blockflag; - - float ath_adjatt; - float ath_maxatt; - - float tone_masteratt[P_NOISECURVES]; - float tone_centerboost; - float tone_decay; - float tone_abs_limit; - float toneatt[P_BANDS]; - - int noisemaskp; - float noisemaxsupp; - float noisewindowlo; - float noisewindowhi; - int noisewindowlomin; - int noisewindowhimin; - int noisewindowfixed; - float noiseoff[P_NOISECURVES][P_BANDS]; - float noisecompand[NOISE_COMPAND_LEVELS]; - - float max_curve_dB; - - int normal_p; - int normal_start; - int normal_partition; - double normal_thresh; -} vorbis_info_psy; - -typedef struct{ - int eighth_octave_lines; - - /* for block long/short tuning; encode only */ - float preecho_thresh[VE_BANDS]; - float postecho_thresh[VE_BANDS]; - float stretch_penalty; - float preecho_minenergy; - - float ampmax_att_per_sec; - - /* channel coupling config */ - int coupling_pkHz[PACKETBLOBS]; - int coupling_pointlimit[2][PACKETBLOBS]; - int coupling_prepointamp[PACKETBLOBS]; - int coupling_postpointamp[PACKETBLOBS]; - int sliding_lowpass[2][PACKETBLOBS]; - -} vorbis_info_psy_global; - -typedef struct { - float ampmax; - int channels; - - vorbis_info_psy_global *gi; - int coupling_pointlimit[2][P_NOISECURVES]; -} vorbis_look_psy_global; - - -typedef struct { - int n; - struct vorbis_info_psy *vi; - - float ***tonecurves; - float **noiseoffset; - - float *ath; - long *octave; /* in n.ocshift format */ - long *bark; - - long firstoc; - long shiftoc; - int eighth_octave_lines; /* power of two, please */ - int total_octave_lines; - long rate; /* cache it */ - - float m_val; /* Masking compensation value */ - -} vorbis_look_psy; - -extern void _vp_psy_init(vorbis_look_psy *p,vorbis_info_psy *vi, - vorbis_info_psy_global *gi,int n,long rate); -extern void _vp_psy_clear(vorbis_look_psy *p); -extern void *_vi_psy_dup(void *source); - -extern void _vi_psy_free(vorbis_info_psy *i); -extern vorbis_info_psy *_vi_psy_copy(vorbis_info_psy *i); - -extern void _vp_noisemask(vorbis_look_psy *p, - float *logmdct, - float *logmask); - -extern void _vp_tonemask(vorbis_look_psy *p, - float *logfft, - float *logmask, - float global_specmax, - float local_specmax); - -extern void _vp_offset_and_mix(vorbis_look_psy *p, - float *noise, - float *tone, - int offset_select, - float *logmask, - float *mdct, - float *logmdct); - -extern float _vp_ampmax_decay(float amp,vorbis_dsp_state *vd); - -extern void _vp_couple_quantize_normalize(int blobno, - vorbis_info_psy_global *g, - vorbis_look_psy *p, - vorbis_info_mapping0 *vi, - float **mdct, - int **iwork, - int *nonzero, - int sliding_lowpass, - int ch); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/registry.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/registry.c deleted file mode 100644 index 74f7ef03..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/registry.c +++ /dev/null @@ -1,44 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: registry for time, floor, res backends and channel mappings - - ********************************************************************/ - -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "misc.h" -/* seems like major overkill now; the backend numbers will grow into - the infrastructure soon enough */ - -extern const vorbis_func_floor floor0_exportbundle; -extern const vorbis_func_floor floor1_exportbundle; -extern const vorbis_func_residue residue0_exportbundle; -extern const vorbis_func_residue residue1_exportbundle; -extern const vorbis_func_residue residue2_exportbundle; -extern const vorbis_func_mapping mapping0_exportbundle; - -const vorbis_func_floor *const _floor_P[]={ - &floor0_exportbundle, - &floor1_exportbundle, -}; - -const vorbis_func_residue *const _residue_P[]={ - &residue0_exportbundle, - &residue1_exportbundle, - &residue2_exportbundle, -}; - -const vorbis_func_mapping *const _mapping_P[]={ - &mapping0_exportbundle, -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/registry.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/registry.h deleted file mode 100644 index 599d9599..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/registry.h +++ /dev/null @@ -1,31 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: registry for time, floor, res backends and channel mappings - - ********************************************************************/ - -#ifndef _V_REG_H_ -#define _V_REG_H_ - -#define VI_TRANSFORMB 1 -#define VI_WINDOWB 1 -#define VI_TIMEB 1 -#define VI_FLOORB 2 -#define VI_RESB 3 -#define VI_MAPB 1 - -extern const vorbis_func_floor *const _floor_P[]; -extern const vorbis_func_residue *const _residue_P[]; -extern const vorbis_func_mapping *const _mapping_P[]; - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/res0.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/res0.c deleted file mode 100644 index 6d623d73..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/res0.c +++ /dev/null @@ -1,889 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2010 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: residue backend 0, 1 and 2 implementation - - ********************************************************************/ - -/* Slow, slow, slow, simpleminded and did I mention it was slow? The - encode/decode loops are coded for clarity and performance is not - yet even a nagging little idea lurking in the shadows. Oh and BTW, - it's slow. */ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "codebook.h" -#include "misc.h" -#include "os.h" - -//#define TRAIN_RES 1 -//#define TRAIN_RESAUX 1 - -#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) -#include -#endif - -typedef struct { - vorbis_info_residue0 *info; - - int parts; - int stages; - codebook *fullbooks; - codebook *phrasebook; - codebook ***partbooks; - - int partvals; - int **decodemap; - - long postbits; - long phrasebits; - long frames; - -#if defined(TRAIN_RES) || defined(TRAIN_RESAUX) - int train_seq; - long *training_data[8][64]; - float training_max[8][64]; - float training_min[8][64]; - float tmin; - float tmax; - int submap; -#endif - -} vorbis_look_residue0; - -void res0_free_info(vorbis_info_residue *i){ - vorbis_info_residue0 *info=(vorbis_info_residue0 *)i; - if(info){ - memset(info,0,sizeof(*info)); - _ogg_free(info); - } -} - -void res0_free_look(vorbis_look_residue *i){ - int j; - if(i){ - - vorbis_look_residue0 *look=(vorbis_look_residue0 *)i; - -#ifdef TRAIN_RES - { - int j,k,l; - for(j=0;jparts;j++){ - /*fprintf(stderr,"partition %d: ",j);*/ - for(k=0;k<8;k++) - if(look->training_data[k][j]){ - char buffer[80]; - FILE *of; - codebook *statebook=look->partbooks[j][k]; - - /* long and short into the same bucket by current convention */ - sprintf(buffer,"res_sub%d_part%d_pass%d.vqd",look->submap,j,k); - of=fopen(buffer,"a"); - - for(l=0;lentries;l++) - fprintf(of,"%d:%ld\n",l,look->training_data[k][j][l]); - - fclose(of); - - /*fprintf(stderr,"%d(%.2f|%.2f) ",k, - look->training_min[k][j],look->training_max[k][j]);*/ - - _ogg_free(look->training_data[k][j]); - look->training_data[k][j]=NULL; - } - /*fprintf(stderr,"\n");*/ - } - } - fprintf(stderr,"min/max residue: %g::%g\n",look->tmin,look->tmax); - - /*fprintf(stderr,"residue bit usage %f:%f (%f total)\n", - (float)look->phrasebits/look->frames, - (float)look->postbits/look->frames, - (float)(look->postbits+look->phrasebits)/look->frames);*/ -#endif - - - /*vorbis_info_residue0 *info=look->info; - - fprintf(stderr, - "%ld frames encoded in %ld phrasebits and %ld residue bits " - "(%g/frame) \n",look->frames,look->phrasebits, - look->resbitsflat, - (look->phrasebits+look->resbitsflat)/(float)look->frames); - - for(j=0;jparts;j++){ - long acc=0; - fprintf(stderr,"\t[%d] == ",j); - for(k=0;kstages;k++) - if((info->secondstages[j]>>k)&1){ - fprintf(stderr,"%ld,",look->resbits[j][k]); - acc+=look->resbits[j][k]; - } - - fprintf(stderr,":: (%ld vals) %1.2fbits/sample\n",look->resvals[j], - acc?(float)acc/(look->resvals[j]*info->grouping):0); - } - fprintf(stderr,"\n");*/ - - for(j=0;jparts;j++) - if(look->partbooks[j])_ogg_free(look->partbooks[j]); - _ogg_free(look->partbooks); - for(j=0;jpartvals;j++) - _ogg_free(look->decodemap[j]); - _ogg_free(look->decodemap); - - memset(look,0,sizeof(*look)); - _ogg_free(look); - } -} - -static int icount(unsigned int v){ - int ret=0; - while(v){ - ret+=v&1; - v>>=1; - } - return(ret); -} - - -void res0_pack(vorbis_info_residue *vr,oggpack_buffer *opb){ - vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; - int j,acc=0; - oggpack_write(opb,info->begin,24); - oggpack_write(opb,info->end,24); - - oggpack_write(opb,info->grouping-1,24); /* residue vectors to group and - code with a partitioned book */ - oggpack_write(opb,info->partitions-1,6); /* possible partition choices */ - oggpack_write(opb,info->groupbook,8); /* group huffman book */ - - /* secondstages is a bitmask; as encoding progresses pass by pass, a - bitmask of one indicates this partition class has bits to write - this pass */ - for(j=0;jpartitions;j++){ - if(ov_ilog(info->secondstages[j])>3){ - /* yes, this is a minor hack due to not thinking ahead */ - oggpack_write(opb,info->secondstages[j],3); - oggpack_write(opb,1,1); - oggpack_write(opb,info->secondstages[j]>>3,5); - }else - oggpack_write(opb,info->secondstages[j],4); /* trailing zero */ - acc+=icount(info->secondstages[j]); - } - for(j=0;jbooklist[j],8); - -} - -/* vorbis_info is for range checking */ -vorbis_info_residue *res0_unpack(vorbis_info *vi,oggpack_buffer *opb){ - int j,acc=0; - vorbis_info_residue0 *info=_ogg_calloc(1,sizeof(*info)); - codec_setup_info *ci=vi->codec_setup; - - info->begin=oggpack_read(opb,24); - info->end=oggpack_read(opb,24); - info->grouping=oggpack_read(opb,24)+1; - info->partitions=oggpack_read(opb,6)+1; - info->groupbook=oggpack_read(opb,8); - - /* check for premature EOP */ - if(info->groupbook<0)goto errout; - - for(j=0;jpartitions;j++){ - int cascade=oggpack_read(opb,3); - int cflag=oggpack_read(opb,1); - if(cflag<0) goto errout; - if(cflag){ - int c=oggpack_read(opb,5); - if(c<0) goto errout; - cascade|=(c<<3); - } - info->secondstages[j]=cascade; - - acc+=icount(cascade); - } - for(j=0;jbooklist[j]=book; - } - - if(info->groupbook>=ci->books)goto errout; - for(j=0;jbooklist[j]>=ci->books)goto errout; - if(ci->book_param[info->booklist[j]]->maptype==0)goto errout; - } - - /* verify the phrasebook is not specifying an impossible or - inconsistent partitioning scheme. */ - /* modify the phrasebook ranging check from r16327; an early beta - encoder had a bug where it used an oversized phrasebook by - accident. These files should continue to be playable, but don't - allow an exploit */ - { - int entries = ci->book_param[info->groupbook]->entries; - int dim = ci->book_param[info->groupbook]->dim; - int partvals = 1; - if (dim<1) goto errout; - while(dim>0){ - partvals *= info->partitions; - if(partvals > entries) goto errout; - dim--; - } - info->partvals = partvals; - } - - return(info); - errout: - res0_free_info(info); - return(NULL); -} - -vorbis_look_residue *res0_look(vorbis_dsp_state *vd, - vorbis_info_residue *vr){ - vorbis_info_residue0 *info=(vorbis_info_residue0 *)vr; - vorbis_look_residue0 *look=_ogg_calloc(1,sizeof(*look)); - codec_setup_info *ci=vd->vi->codec_setup; - - int j,k,acc=0; - int dim; - int maxstage=0; - look->info=info; - - look->parts=info->partitions; - look->fullbooks=ci->fullbooks; - look->phrasebook=ci->fullbooks+info->groupbook; - dim=look->phrasebook->dim; - - look->partbooks=_ogg_calloc(look->parts,sizeof(*look->partbooks)); - - for(j=0;jparts;j++){ - int stages=ov_ilog(info->secondstages[j]); - if(stages){ - if(stages>maxstage)maxstage=stages; - look->partbooks[j]=_ogg_calloc(stages,sizeof(*look->partbooks[j])); - for(k=0;ksecondstages[j]&(1<partbooks[j][k]=ci->fullbooks+info->booklist[acc++]; -#ifdef TRAIN_RES - look->training_data[k][j]=_ogg_calloc(look->partbooks[j][k]->entries, - sizeof(***look->training_data)); -#endif - } - } - } - - look->partvals=1; - for(j=0;jpartvals*=look->parts; - - look->stages=maxstage; - look->decodemap=_ogg_malloc(look->partvals*sizeof(*look->decodemap)); - for(j=0;jpartvals;j++){ - long val=j; - long mult=look->partvals/look->parts; - look->decodemap[j]=_ogg_malloc(dim*sizeof(*look->decodemap[j])); - for(k=0;kparts; - look->decodemap[j][k]=deco; - } - } -#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) - { - static int train_seq=0; - look->train_seq=train_seq++; - } -#endif - return(look); -} - -/* break an abstraction and copy some code for performance purposes */ -static int local_book_besterror(codebook *book,int *a){ - int dim=book->dim; - int i,j,o; - int minval=book->minval; - int del=book->delta; - int qv=book->quantvals; - int ze=(qv>>1); - int index=0; - /* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ - int p[8]={0,0,0,0,0,0,0,0}; - - if(del!=1){ - for(i=0,o=dim;i>1))/del; - int m = (v=qv?qv-1:m)); - p[o]=v*del+minval; - } - }else{ - for(i=0,o=dim;i=qv?qv-1:m)); - p[o]=v*del+minval; - } - } - - if(book->c->lengthlist[index]<=0){ - const static_codebook *c=book->c; - int best=-1; - /* assumes integer/centered encoder codebook maptype 1 no more than dim 8 */ - int e[8]={0,0,0,0,0,0,0,0}; - int maxval = book->minval + book->delta*(book->quantvals-1); - for(i=0;ientries;i++){ - if(c->lengthlist[i]>0){ - int this=0; - for(j=0;j=maxval) - e[j++]=0; - if(e[j]>=0) - e[j]+=book->delta; - e[j]= -e[j]; - } - } - - if(index>-1){ - for(i=0;idim; - int step=n/dim; - - for(i=0;i=0) - acc[entry]++; -#endif - - bits+=vorbis_book_encode(book,entry,opb); - - } - - return(bits); -} - -static long **_01class(vorbis_block *vb,vorbis_look_residue *vl, - int **in,int ch){ - long i,j,k; - vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; - vorbis_info_residue0 *info=look->info; - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int possible_partitions=info->partitions; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - long **partword=_vorbis_block_alloc(vb,ch*sizeof(*partword)); - float scale=100./samples_per_partition; - - /* we find the partition type for each partition of each - channel. We'll go back and do the interleaved encoding in a - bit. For now, clarity */ - - for(i=0;ibegin; - for(j=0;jmax)max=abs(in[j][offset+k]); - ent+=abs(in[j][offset+k]); - } - ent*=scale; - - for(k=0;kclassmetric1[k] && - (info->classmetric2[k]<0 || entclassmetric2[k])) - break; - - partword[j][i]=k; - } - } - -#ifdef TRAIN_RESAUX - { - FILE *of; - char buffer[80]; - - for(i=0;itrain_seq); - of=fopen(buffer,"a"); - for(j=0;jframes++; - - return(partword); -} - -/* designed for stereo or other modes where the partition size is an - integer multiple of the number of channels encoded in the current - submap */ -static long **_2class(vorbis_block *vb,vorbis_look_residue *vl,int **in, - int ch){ - long i,j,k,l; - vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; - vorbis_info_residue0 *info=look->info; - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int possible_partitions=info->partitions; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - long **partword=_vorbis_block_alloc(vb,sizeof(*partword)); - -#if defined(TRAIN_RES) || defined (TRAIN_RESAUX) - FILE *of; - char buffer[80]; -#endif - - partword[0]=_vorbis_block_alloc(vb,partvals*sizeof(*partword[0])); - memset(partword[0],0,partvals*sizeof(*partword[0])); - - for(i=0,l=info->begin/ch;imagmax)magmax=abs(in[0][l]); - for(k=1;kangmax)angmax=abs(in[k][l]); - l++; - } - - for(j=0;jclassmetric1[j] && - angmax<=info->classmetric2[j]) - break; - - partword[0][i]=j; - - } - -#ifdef TRAIN_RESAUX - sprintf(buffer,"resaux_%d.vqd",look->train_seq); - of=fopen(buffer,"a"); - for(i=0;iframes++; - - return(partword); -} - -static int _01forward(oggpack_buffer *opb, - vorbis_look_residue *vl, - int **in,int ch, - long **partword, -#ifdef TRAIN_RES - int (*encode)(oggpack_buffer *,int *,int, - codebook *,long *), - int submap -#else - int (*encode)(oggpack_buffer *,int *,int, - codebook *) -#endif -){ - long i,j,k,s; - vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; - vorbis_info_residue0 *info=look->info; - -#ifdef TRAIN_RES - look->submap=submap; -#endif - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int possible_partitions=info->partitions; - int partitions_per_word=look->phrasebook->dim; - int n=info->end-info->begin; - - int partvals=n/samples_per_partition; - long resbits[128]; - long resvals[128]; - -#ifdef TRAIN_RES - for(i=0;ibegin;jend;j++){ - if(in[i][j]>look->tmax)look->tmax=in[i][j]; - if(in[i][j]tmin)look->tmin=in[i][j]; - } -#endif - - memset(resbits,0,sizeof(resbits)); - memset(resvals,0,sizeof(resvals)); - - /* we code the partition words for each channel, then the residual - words for a partition per channel until we've written all the - residual words for that partition word. Then write the next - partition channel words... */ - - for(s=0;sstages;s++){ - - for(i=0;iphrasebook->entries) - look->phrasebits+=vorbis_book_encode(look->phrasebook,val,opb); -#if 0 /*def TRAIN_RES*/ - else - fprintf(stderr,"!"); -#endif - - } - } - - /* now we encode interleaved residual values for the partitions */ - for(k=0;kbegin; - - for(j=0;jsecondstages[partword[j][i]]&(1<partbooks[partword[j][i]][s]; - if(statebook){ - int ret; -#ifdef TRAIN_RES - long *accumulator=NULL; - accumulator=look->training_data[s][partword[j][i]]; - { - int l; - int *samples=in[j]+offset; - for(l=0;ltraining_min[s][partword[j][i]]) - look->training_min[s][partword[j][i]]=samples[l]; - if(samples[l]>look->training_max[s][partword[j][i]]) - look->training_max[s][partword[j][i]]=samples[l]; - } - } - ret=encode(opb,in[j]+offset,samples_per_partition, - statebook,accumulator); -#else - ret=encode(opb,in[j]+offset,samples_per_partition, - statebook); -#endif - - look->postbits+=ret; - resbits[partword[j][i]]+=ret; - } - } - } - } - } - } - - return(0); -} - -/* a truncated packet here just means 'stop working'; it's not an error */ -static int _01inverse(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int ch, - long (*decodepart)(codebook *, float *, - oggpack_buffer *,int)){ - - long i,j,k,l,s; - vorbis_look_residue0 *look=(vorbis_look_residue0 *)vl; - vorbis_info_residue0 *info=look->info; - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int partitions_per_word=look->phrasebook->dim; - int max=vb->pcmend>>1; - int end=(info->endend:max); - int n=end-info->begin; - - if(n>0){ - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int ***partword=alloca(ch*sizeof(*partword)); - - for(j=0;jstages;s++){ - - /* each loop decodes on partition codeword containing - partitions_per_word partitions */ - for(i=0,l=0;iphrasebook,&vb->opb); - - if(temp==-1 || temp>=info->partvals)goto eopbreak; - partword[j][l]=look->decodemap[temp]; - if(partword[j][l]==NULL)goto errout; - } - } - - /* now we decode residual values for the partitions */ - for(k=0;kbegin+i*samples_per_partition; - if(info->secondstages[partword[j][l][k]]&(1<partbooks[partword[j][l][k]][s]; - if(stagebook){ - if(decodepart(stagebook,in[j]+offset,&vb->opb, - samples_per_partition)==-1)goto eopbreak; - } - } - } - } - } - } - errout: - eopbreak: - return(0); -} - -int res0_inverse(vorbis_block *vb,vorbis_look_residue *vl, - float **in,int *nonzero,int ch){ - int i,used=0; - for(i=0;ipcmend/2,used=0; - - /* don't duplicate the code; use a working vector hack for now and - reshape ourselves into a single channel res1 */ - /* ugly; reallocs for each coupling pass :-( */ - int *work=_vorbis_block_alloc(vb,ch*n*sizeof(*work)); - for(i=0;iinfo; - - /* move all this setup out later */ - int samples_per_partition=info->grouping; - int partitions_per_word=look->phrasebook->dim; - int max=(vb->pcmend*ch)>>1; - int end=(info->endend:max); - int n=end-info->begin; - - if(n>0){ - int partvals=n/samples_per_partition; - int partwords=(partvals+partitions_per_word-1)/partitions_per_word; - int **partword=_vorbis_block_alloc(vb,partwords*sizeof(*partword)); - - for(i=0;istages;s++){ - for(i=0,l=0;iphrasebook,&vb->opb); - if(temp==-1 || temp>=info->partvals)goto eopbreak; - partword[l]=look->decodemap[temp]; - if(partword[l]==NULL)goto errout; - } - - /* now we decode residual values for the partitions */ - for(k=0;ksecondstages[partword[l][k]]&(1<partbooks[partword[l][k]][s]; - - if(stagebook){ - if(vorbis_book_decodevv_add(stagebook,in, - i*samples_per_partition+info->begin,ch, - &vb->opb,samples_per_partition)==-1) - goto eopbreak; - } - } - } - } - } - errout: - eopbreak: - return(0); -} - - -const vorbis_func_residue residue0_exportbundle={ - NULL, - &res0_unpack, - &res0_look, - &res0_free_info, - &res0_free_look, - NULL, - NULL, - &res0_inverse -}; - -const vorbis_func_residue residue1_exportbundle={ - &res0_pack, - &res0_unpack, - &res0_look, - &res0_free_info, - &res0_free_look, - &res1_class, - &res1_forward, - &res1_inverse -}; - -const vorbis_func_residue residue2_exportbundle={ - &res0_pack, - &res0_unpack, - &res0_look, - &res0_free_info, - &res0_free_look, - &res2_class, - &res2_forward, - &res2_inverse -}; diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/scales.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/scales.h deleted file mode 100644 index 18bc4e75..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/scales.h +++ /dev/null @@ -1,89 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: linear scale -> dB, Bark and Mel scales - - ********************************************************************/ - -#ifndef _V_SCALES_H_ -#define _V_SCALES_H_ - -#include -#include "os.h" - -#ifdef _MSC_VER -/* MS Visual Studio doesn't have C99 inline keyword. */ -#define inline __inline -#endif - -/* 20log10(x) */ -#define VORBIS_IEEE_FLOAT32 1 -#ifdef VORBIS_IEEE_FLOAT32 - -static inline float unitnorm(float x){ - union { - ogg_uint32_t i; - float f; - } ix; - ix.f = x; - ix.i = (ix.i & 0x80000000U) | (0x3f800000U); - return ix.f; -} - -/* Segher was off (too high) by ~ .3 decibel. Center the conversion correctly. */ -static inline float todB(const float *x){ - union { - ogg_uint32_t i; - float f; - } ix; - ix.f = *x; - ix.i = ix.i&0x7fffffff; - return (float)(ix.i * 7.17711438e-7f -764.6161886f); -} - -#define todB_nn(x) todB(x) - -#else - -static float unitnorm(float x){ - if(x<0)return(-1.f); - return(1.f); -} - -#define todB(x) (*(x)==0?-400.f:log(*(x)**(x))*4.34294480f) -#define todB_nn(x) (*(x)==0.f?-400.f:log(*(x))*8.6858896f) - -#endif - -#define fromdB(x) (exp((x)*.11512925f)) - -/* The bark scale equations are approximations, since the original - table was somewhat hand rolled. The below are chosen to have the - best possible fit to the rolled tables, thus their somewhat odd - appearance (these are more accurate and over a longer range than - the oft-quoted bark equations found in the texts I have). The - approximations are valid from 0 - 30kHz (nyquist) or so. - - all f in Hz, z in Bark */ - -#define toBARK(n) (13.1f*atan(.00074f*(n))+2.24f*atan((n)*(n)*1.85e-8f)+1e-4f*(n)) -#define fromBARK(z) (102.f*(z)-2.f*pow(z,2.f)+.4f*pow(z,3.f)+pow(1.46f,z)-1.f) -#define toMEL(n) (log(1.f+(n)*.001f)*1442.695f) -#define fromMEL(m) (1000.f*exp((m)/1442.695f)-1000.f) - -/* Frequency to octave. We arbitrarily declare 63.5 Hz to be octave - 0.0 */ - -#define toOC(n) (log(n)*1.442695f-5.965784f) -#define fromOC(o) (exp(((o)+5.965784f)*.693147f)) - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/sharedbook.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/sharedbook.c deleted file mode 100644 index 4545d4f4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/sharedbook.c +++ /dev/null @@ -1,595 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: basic shared codebook operations - - ********************************************************************/ - -#include -#include -#include -#include -#include -#include "os.h" -#include "misc.h" -#include "vorbis/codec.h" -#include "codebook.h" -#include "scales.h" - -/**** pack/unpack helpers ******************************************/ - -int ov_ilog(ogg_uint32_t v){ - int ret; - for(ret=0;v;ret++)v>>=1; - return ret; -} - -/* 32 bit float (not IEEE; nonnormalized mantissa + - biased exponent) : neeeeeee eeemmmmm mmmmmmmm mmmmmmmm - Why not IEEE? It's just not that important here. */ - -#define VQ_FEXP 10 -#define VQ_FMAN 21 -#define VQ_FEXP_BIAS 768 /* bias toward values smaller than 1. */ - -/* doesn't currently guard under/overflow */ -long _float32_pack(float val){ - int sign=0; - long exp; - long mant; - if(val<0){ - sign=0x80000000; - val= -val; - } - exp= floor(log(val)/log(2.f)+.001); //+epsilon - mant=rint(ldexp(val,(VQ_FMAN-1)-exp)); - exp=(exp+VQ_FEXP_BIAS)<>VQ_FMAN; - if(sign)mant= -mant; - return(ldexp(mant,exp-(VQ_FMAN-1)-VQ_FEXP_BIAS)); -} - -/* given a list of word lengths, generate a list of codewords. Works - for length ordered or unordered, always assigns the lowest valued - codewords first. Extended to handle unused entries (length 0) */ -ogg_uint32_t *_make_words(char *l,long n,long sparsecount){ - long i,j,count=0; - ogg_uint32_t marker[33]; - ogg_uint32_t *r=_ogg_malloc((sparsecount?sparsecount:n)*sizeof(*r)); - memset(marker,0,sizeof(marker)); - - for(i=0;i0){ - ogg_uint32_t entry=marker[length]; - - /* when we claim a node for an entry, we also claim the nodes - below it (pruning off the imagined tree that may have dangled - from it) as well as blocking the use of any nodes directly - above for leaves */ - - /* update ourself */ - if(length<32 && (entry>>length)){ - /* error condition; the lengths must specify an overpopulated tree */ - _ogg_free(r); - return(NULL); - } - r[count++]=entry; - - /* Look to see if the next shorter marker points to the node - above. if so, update it and repeat. */ - { - for(j=length;j>0;j--){ - - if(marker[j]&1){ - /* have to jump branches */ - if(j==1) - marker[1]++; - else - marker[j]=marker[j-1]<<1; - break; /* invariant says next upper marker would already - have been moved if it was on the same path */ - } - marker[j]++; - } - } - - /* prune the tree; the implicit invariant says all the longer - markers were dangling from our just-taken node. Dangle them - from our *new* node. */ - for(j=length+1;j<33;j++) - if((marker[j]>>1) == entry){ - entry=marker[j]; - marker[j]=marker[j-1]<<1; - }else - break; - }else - if(sparsecount==0)count++; - } - - /* any underpopulated tree must be rejected. */ - /* Single-entry codebooks are a retconned extension to the spec. - They have a single codeword '0' of length 1 that results in an - underpopulated tree. Shield that case from the underformed tree check. */ - if(!(count==1 && marker[2]==2)){ - for(i=1;i<33;i++) - if(marker[i] & (0xffffffffUL>>(32-i))){ - _ogg_free(r); - return(NULL); - } - } - - /* bitreverse the words because our bitwise packer/unpacker is LSb - endian */ - for(i=0,count=0;i>j)&1; - } - - if(sparsecount){ - if(l[i]) - r[count++]=temp; - }else - r[count++]=temp; - } - - return(r); -} - -/* there might be a straightforward one-line way to do the below - that's portable and totally safe against roundoff, but I haven't - thought of it. Therefore, we opt on the side of caution */ -long _book_maptype1_quantvals(const static_codebook *b){ - long vals; - if(b->entries<1){ - return(0); - } - vals=floor(pow((float)b->entries,1.f/b->dim)); - - /* the above *should* be reliable, but we'll not assume that FP is - ever reliable when bitstream sync is at stake; verify via integer - means that vals really is the greatest value of dim for which - vals^b->bim <= b->entries */ - /* treat the above as an initial guess */ - if(vals<1){ - vals=1; - } - while(1){ - long acc=1; - long acc1=1; - int i; - for(i=0;idim;i++){ - if(b->entries/vals=b->dim && acc<=b->entries && acc1>b->entries){ - return(vals); - }else{ - if(idim || acc>b->entries){ - vals--; - }else{ - vals++; - } - } - } -} - -/* unpack the quantized list of values for encode/decode ***********/ -/* we need to deal with two map types: in map type 1, the values are - generated algorithmically (each column of the vector counts through - the values in the quant vector). in map type 2, all the values came - in in an explicit list. Both value lists must be unpacked */ -float *_book_unquantize(const static_codebook *b,int n,int *sparsemap){ - long j,k,count=0; - if(b->maptype==1 || b->maptype==2){ - int quantvals; - float mindel=_float32_unpack(b->q_min); - float delta=_float32_unpack(b->q_delta); - float *r=_ogg_calloc(n*b->dim,sizeof(*r)); - - /* maptype 1 and 2 both use a quantized value vector, but - different sizes */ - switch(b->maptype){ - case 1: - /* most of the time, entries%dimensions == 0, but we need to be - well defined. We define that the possible vales at each - scalar is values == entries/dim. If entries%dim != 0, we'll - have 'too few' values (values*dimentries;j++){ - if((sparsemap && b->lengthlist[j]) || !sparsemap){ - float last=0.f; - int indexdiv=1; - for(k=0;kdim;k++){ - int index= (j/indexdiv)%quantvals; - float val=b->quantlist[index]; - val=fabs(val)*delta+mindel+last; - if(b->q_sequencep)last=val; - if(sparsemap) - r[sparsemap[count]*b->dim+k]=val; - else - r[count*b->dim+k]=val; - indexdiv*=quantvals; - } - count++; - } - - } - break; - case 2: - for(j=0;jentries;j++){ - if((sparsemap && b->lengthlist[j]) || !sparsemap){ - float last=0.f; - - for(k=0;kdim;k++){ - float val=b->quantlist[j*b->dim+k]; - val=fabs(val)*delta+mindel+last; - if(b->q_sequencep)last=val; - if(sparsemap) - r[sparsemap[count]*b->dim+k]=val; - else - r[count*b->dim+k]=val; - } - count++; - } - } - break; - } - - return(r); - } - return(NULL); -} - -void vorbis_staticbook_destroy(static_codebook *b){ - if(b->allocedp){ - if(b->quantlist)_ogg_free(b->quantlist); - if(b->lengthlist)_ogg_free(b->lengthlist); - memset(b,0,sizeof(*b)); - _ogg_free(b); - } /* otherwise, it is in static memory */ -} - -void vorbis_book_clear(codebook *b){ - /* static book is not cleared; we're likely called on the lookup and - the static codebook belongs to the info struct */ - if(b->valuelist)_ogg_free(b->valuelist); - if(b->codelist)_ogg_free(b->codelist); - - if(b->dec_index)_ogg_free(b->dec_index); - if(b->dec_codelengths)_ogg_free(b->dec_codelengths); - if(b->dec_firsttable)_ogg_free(b->dec_firsttable); - - memset(b,0,sizeof(*b)); -} - -int vorbis_book_init_encode(codebook *c,const static_codebook *s){ - - memset(c,0,sizeof(*c)); - c->c=s; - c->entries=s->entries; - c->used_entries=s->entries; - c->dim=s->dim; - c->codelist=_make_words(s->lengthlist,s->entries,0); - //c->valuelist=_book_unquantize(s,s->entries,NULL); - c->quantvals=_book_maptype1_quantvals(s); - c->minval=(int)rint(_float32_unpack(s->q_min)); - c->delta=(int)rint(_float32_unpack(s->q_delta)); - - return(0); -} - -static ogg_uint32_t bitreverse(ogg_uint32_t x){ - x= ((x>>16)&0x0000ffffUL) | ((x<<16)&0xffff0000UL); - x= ((x>> 8)&0x00ff00ffUL) | ((x<< 8)&0xff00ff00UL); - x= ((x>> 4)&0x0f0f0f0fUL) | ((x<< 4)&0xf0f0f0f0UL); - x= ((x>> 2)&0x33333333UL) | ((x<< 2)&0xccccccccUL); - return((x>> 1)&0x55555555UL) | ((x<< 1)&0xaaaaaaaaUL); -} - -static int sort32a(const void *a,const void *b){ - return ( **(ogg_uint32_t **)a>**(ogg_uint32_t **)b)- - ( **(ogg_uint32_t **)a<**(ogg_uint32_t **)b); -} - -/* decode codebook arrangement is more heavily optimized than encode */ -int vorbis_book_init_decode(codebook *c,const static_codebook *s){ - int i,j,n=0,tabn; - int *sortindex; - - memset(c,0,sizeof(*c)); - - /* count actually used entries and find max length */ - for(i=0;ientries;i++) - if(s->lengthlist[i]>0) - n++; - - c->entries=s->entries; - c->used_entries=n; - c->dim=s->dim; - - if(n>0){ - /* two different remappings go on here. - - First, we collapse the likely sparse codebook down only to - actually represented values/words. This collapsing needs to be - indexed as map-valueless books are used to encode original entry - positions as integers. - - Second, we reorder all vectors, including the entry index above, - by sorted bitreversed codeword to allow treeless decode. */ - - /* perform sort */ - ogg_uint32_t *codes=_make_words(s->lengthlist,s->entries,c->used_entries); - ogg_uint32_t **codep=alloca(sizeof(*codep)*n); - - if(codes==NULL)goto err_out; - - for(i=0;icodelist=_ogg_malloc(n*sizeof(*c->codelist)); - /* the index is a reverse index */ - for(i=0;icodelist[sortindex[i]]=codes[i]; - _ogg_free(codes); - - c->valuelist=_book_unquantize(s,n,sortindex); - c->dec_index=_ogg_malloc(n*sizeof(*c->dec_index)); - - for(n=0,i=0;ientries;i++) - if(s->lengthlist[i]>0) - c->dec_index[sortindex[n++]]=i; - - c->dec_codelengths=_ogg_malloc(n*sizeof(*c->dec_codelengths)); - c->dec_maxlength=0; - for(n=0,i=0;ientries;i++) - if(s->lengthlist[i]>0){ - c->dec_codelengths[sortindex[n++]]=s->lengthlist[i]; - if(s->lengthlist[i]>c->dec_maxlength) - c->dec_maxlength=s->lengthlist[i]; - } - - if(n==1 && c->dec_maxlength==1){ - /* special case the 'single entry codebook' with a single bit - fastpath table (that always returns entry 0 )in order to use - unmodified decode paths. */ - c->dec_firsttablen=1; - c->dec_firsttable=_ogg_calloc(2,sizeof(*c->dec_firsttable)); - c->dec_firsttable[0]=c->dec_firsttable[1]=1; - - }else{ - c->dec_firsttablen=ov_ilog(c->used_entries)-4; /* this is magic */ - if(c->dec_firsttablen<5)c->dec_firsttablen=5; - if(c->dec_firsttablen>8)c->dec_firsttablen=8; - - tabn=1<dec_firsttablen; - c->dec_firsttable=_ogg_calloc(tabn,sizeof(*c->dec_firsttable)); - - for(i=0;idec_codelengths[i]<=c->dec_firsttablen){ - ogg_uint32_t orig=bitreverse(c->codelist[i]); - for(j=0;j<(1<<(c->dec_firsttablen-c->dec_codelengths[i]));j++) - c->dec_firsttable[orig|(j<dec_codelengths[i])]=i+1; - } - } - - /* now fill in 'unused' entries in the firsttable with hi/lo search - hints for the non-direct-hits */ - { - ogg_uint32_t mask=0xfffffffeUL<<(31-c->dec_firsttablen); - long lo=0,hi=0; - - for(i=0;idec_firsttablen); - if(c->dec_firsttable[bitreverse(word)]==0){ - while((lo+1)codelist[lo+1]<=word)lo++; - while( hi=(c->codelist[hi]&mask))hi++; - - /* we only actually have 15 bits per hint to play with here. - In order to overflow gracefully (nothing breaks, efficiency - just drops), encode as the difference from the extremes. */ - { - unsigned long loval=lo; - unsigned long hival=n-hi; - - if(loval>0x7fff)loval=0x7fff; - if(hival>0x7fff)hival=0x7fff; - c->dec_firsttable[bitreverse(word)]= - 0x80000000UL | (loval<<15) | hival; - } - } - } - } - } - } - - return(0); - err_out: - vorbis_book_clear(c); - return(-1); -} - -long vorbis_book_codeword(codebook *book,int entry){ - if(book->c) /* only use with encode; decode optimizations are - allowed to break this */ - return book->codelist[entry]; - return -1; -} - -long vorbis_book_codelen(codebook *book,int entry){ - if(book->c) /* only use with encode; decode optimizations are - allowed to break this */ - return book->c->lengthlist[entry]; - return -1; -} - -#ifdef _V_SELFTEST - -/* Unit tests of the dequantizer; this stuff will be OK - cross-platform, I simply want to be sure that special mapping cases - actually work properly; a bug could go unnoticed for a while */ - -#include - -/* cases: - - no mapping - full, explicit mapping - algorithmic mapping - - nonsequential - sequential -*/ - -static long full_quantlist1[]={0,1,2,3, 4,5,6,7, 8,3,6,1}; -static long partial_quantlist1[]={0,7,2}; - -/* no mapping */ -static_codebook test1={ - 4,16, - NULL, - 0, - 0,0,0,0, - NULL, - 0 -}; -static float *test1_result=NULL; - -/* linear, full mapping, nonsequential */ -static_codebook test2={ - 4,3, - NULL, - 2, - -533200896,1611661312,4,0, - full_quantlist1, - 0 -}; -static float test2_result[]={-3,-2,-1,0, 1,2,3,4, 5,0,3,-2}; - -/* linear, full mapping, sequential */ -static_codebook test3={ - 4,3, - NULL, - 2, - -533200896,1611661312,4,1, - full_quantlist1, - 0 -}; -static float test3_result[]={-3,-5,-6,-6, 1,3,6,10, 5,5,8,6}; - -/* linear, algorithmic mapping, nonsequential */ -static_codebook test4={ - 3,27, - NULL, - 1, - -533200896,1611661312,4,0, - partial_quantlist1, - 0 -}; -static float test4_result[]={-3,-3,-3, 4,-3,-3, -1,-3,-3, - -3, 4,-3, 4, 4,-3, -1, 4,-3, - -3,-1,-3, 4,-1,-3, -1,-1,-3, - -3,-3, 4, 4,-3, 4, -1,-3, 4, - -3, 4, 4, 4, 4, 4, -1, 4, 4, - -3,-1, 4, 4,-1, 4, -1,-1, 4, - -3,-3,-1, 4,-3,-1, -1,-3,-1, - -3, 4,-1, 4, 4,-1, -1, 4,-1, - -3,-1,-1, 4,-1,-1, -1,-1,-1}; - -/* linear, algorithmic mapping, sequential */ -static_codebook test5={ - 3,27, - NULL, - 1, - -533200896,1611661312,4,1, - partial_quantlist1, - 0 -}; -static float test5_result[]={-3,-6,-9, 4, 1,-2, -1,-4,-7, - -3, 1,-2, 4, 8, 5, -1, 3, 0, - -3,-4,-7, 4, 3, 0, -1,-2,-5, - -3,-6,-2, 4, 1, 5, -1,-4, 0, - -3, 1, 5, 4, 8,12, -1, 3, 7, - -3,-4, 0, 4, 3, 7, -1,-2, 2, - -3,-6,-7, 4, 1, 0, -1,-4,-5, - -3, 1, 0, 4, 8, 7, -1, 3, 2, - -3,-4,-5, 4, 3, 2, -1,-2,-3}; - -void run_test(static_codebook *b,float *comp){ - float *out=_book_unquantize(b,b->entries,NULL); - int i; - - if(comp){ - if(!out){ - fprintf(stderr,"_book_unquantize incorrectly returned NULL\n"); - exit(1); - } - - for(i=0;ientries*b->dim;i++) - if(fabs(out[i]-comp[i])>.0001){ - fprintf(stderr,"disagreement in unquantized and reference data:\n" - "position %d, %g != %g\n",i,out[i],comp[i]); - exit(1); - } - - }else{ - if(out){ - fprintf(stderr,"_book_unquantize returned a value array: \n" - " correct result should have been NULL\n"); - exit(1); - } - } -} - -int main(){ - /* run the nine dequant tests, and compare to the hand-rolled results */ - fprintf(stderr,"Dequant test 1... "); - run_test(&test1,test1_result); - fprintf(stderr,"OK\nDequant test 2... "); - run_test(&test2,test2_result); - fprintf(stderr,"OK\nDequant test 3... "); - run_test(&test3,test3_result); - fprintf(stderr,"OK\nDequant test 4... "); - run_test(&test4,test4_result); - fprintf(stderr,"OK\nDequant test 5... "); - run_test(&test5,test5_result); - fprintf(stderr,"OK\n\n"); - - return(0); -} - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/smallft.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/smallft.c deleted file mode 100644 index 6d528af4..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/smallft.c +++ /dev/null @@ -1,1254 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: *unnormalized* fft transform - - ********************************************************************/ - -/* FFT implementation from OggSquish, minus cosine transforms, - * minus all but radix 2/4 case. In Vorbis we only need this - * cut-down version. - * - * To do more than just power-of-two sized vectors, see the full - * version I wrote for NetLib. - * - * Note that the packing is a little strange; rather than the FFT r/i - * packing following R_0, I_n, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, - * it follows R_0, R_1, I_1, R_2, I_2 ... R_n-1, I_n-1, I_n like the - * FORTRAN version - */ - -#include -#include -#include -#include "smallft.h" -#include "os.h" -#include "misc.h" - -static void drfti1(int n, float *wa, int *ifac){ - static int ntryh[4] = { 4,2,3,5 }; - static float tpi = 6.28318530717958648f; - float arg,argh,argld,fi; - int ntry=0,i,j=-1; - int k1, l1, l2, ib; - int ld, ii, ip, is, nq, nr; - int ido, ipm, nfm1; - int nl=n; - int nf=0; - - L101: - j++; - if (j < 4) - ntry=ntryh[j]; - else - ntry+=2; - - L104: - nq=nl/ntry; - nr=nl-ntry*nq; - if (nr!=0) goto L101; - - nf++; - ifac[nf+1]=ntry; - nl=nq; - if(ntry!=2)goto L107; - if(nf==1)goto L107; - - for (i=1;i>1; - ipp2=ip; - idp2=ido; - nbd=(ido-1)>>1; - t0=l1*ido; - t10=ip*ido; - - if(ido==1)goto L119; - for(ik=0;ikl1){ - for(j=1;j>1; - ipp2=ip; - ipph=(ip+1)>>1; - if(idol1)goto L139; - - is= -ido-1; - t1=0; - for(j=1;jn==1)return; - drftf1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache); -} - -void drft_backward(drft_lookup *l,float *data){ - if (l->n==1)return; - drftb1(l->n,data,l->trigcache,l->trigcache+l->n,l->splitcache); -} - -void drft_init(drft_lookup *l,int n){ - l->n=n; - l->trigcache=_ogg_calloc(3*n,sizeof(*l->trigcache)); - l->splitcache=_ogg_calloc(32,sizeof(*l->splitcache)); - fdrffti(n, l->trigcache, l->splitcache); -} - -void drft_clear(drft_lookup *l){ - if(l){ - if(l->trigcache)_ogg_free(l->trigcache); - if(l->splitcache)_ogg_free(l->splitcache); - memset(l,0,sizeof(*l)); - } -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/smallft.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/smallft.h deleted file mode 100644 index 9e867c67..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/smallft.h +++ /dev/null @@ -1,33 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: fft transform - - ********************************************************************/ - -#ifndef _V_SMFT_H_ -#define _V_SMFT_H_ - -#include "vorbis/codec.h" - -typedef struct { - int n; - float *trigcache; - int *splitcache; -} drft_lookup; - -extern void drft_forward(drft_lookup *l,float *data); -extern void drft_backward(drft_lookup *l,float *data); -extern void drft_init(drft_lookup *l,int n); -extern void drft_clear(drft_lookup *l); - -#endif diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/synthesis.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/synthesis.c deleted file mode 100644 index 5f6092c3..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/synthesis.c +++ /dev/null @@ -1,179 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: single-block PCM synthesis - - ********************************************************************/ - -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "registry.h" -#include "misc.h" -#include "os.h" - -int vorbis_synthesis(vorbis_block *vb,ogg_packet *op){ - vorbis_dsp_state *vd= vb ? vb->vd : 0; - private_state *b= vd ? vd->backend_state : 0; - vorbis_info *vi= vd ? vd->vi : 0; - codec_setup_info *ci= vi ? vi->codec_setup : 0; - oggpack_buffer *opb=vb ? &vb->opb : 0; - int type,mode,i; - - if (!vd || !b || !vi || !ci || !opb) { - return OV_EBADPACKET; - } - - /* first things first. Make sure decode is ready */ - _vorbis_block_ripcord(vb); - oggpack_readinit(opb,op->packet,op->bytes); - - /* Check the packet type */ - if(oggpack_read(opb,1)!=0){ - /* Oops. This is not an audio data packet */ - return(OV_ENOTAUDIO); - } - - /* read our mode and pre/post windowsize */ - mode=oggpack_read(opb,b->modebits); - if(mode==-1){ - return(OV_EBADPACKET); - } - - vb->mode=mode; - if(!ci->mode_param[mode]){ - return(OV_EBADPACKET); - } - - vb->W=ci->mode_param[mode]->blockflag; - if(vb->W){ - - /* this doesn;t get mapped through mode selection as it's used - only for window selection */ - vb->lW=oggpack_read(opb,1); - vb->nW=oggpack_read(opb,1); - if(vb->nW==-1){ - return(OV_EBADPACKET); - } - }else{ - vb->lW=0; - vb->nW=0; - } - - /* more setup */ - vb->granulepos=op->granulepos; - vb->sequence=op->packetno; - vb->eofflag=op->e_o_s; - - /* alloc pcm passback storage */ - vb->pcmend=ci->blocksizes[vb->W]; - vb->pcm=_vorbis_block_alloc(vb,sizeof(*vb->pcm)*vi->channels); - for(i=0;ichannels;i++) - vb->pcm[i]=_vorbis_block_alloc(vb,vb->pcmend*sizeof(*vb->pcm[i])); - - /* unpack_header enforces range checking */ - type=ci->map_type[ci->mode_param[mode]->mapping]; - - return(_mapping_P[type]->inverse(vb,ci->map_param[ci->mode_param[mode]-> - mapping])); -} - -/* used to track pcm position without actually performing decode. - Useful for sequential 'fast forward' */ -int vorbis_synthesis_trackonly(vorbis_block *vb,ogg_packet *op){ - vorbis_dsp_state *vd=vb->vd; - private_state *b=vd->backend_state; - vorbis_info *vi=vd->vi; - codec_setup_info *ci=vi->codec_setup; - oggpack_buffer *opb=&vb->opb; - int mode; - - /* first things first. Make sure decode is ready */ - _vorbis_block_ripcord(vb); - oggpack_readinit(opb,op->packet,op->bytes); - - /* Check the packet type */ - if(oggpack_read(opb,1)!=0){ - /* Oops. This is not an audio data packet */ - return(OV_ENOTAUDIO); - } - - /* read our mode and pre/post windowsize */ - mode=oggpack_read(opb,b->modebits); - if(mode==-1)return(OV_EBADPACKET); - - vb->mode=mode; - if(!ci->mode_param[mode]){ - return(OV_EBADPACKET); - } - - vb->W=ci->mode_param[mode]->blockflag; - if(vb->W){ - vb->lW=oggpack_read(opb,1); - vb->nW=oggpack_read(opb,1); - if(vb->nW==-1) return(OV_EBADPACKET); - }else{ - vb->lW=0; - vb->nW=0; - } - - /* more setup */ - vb->granulepos=op->granulepos; - vb->sequence=op->packetno; - vb->eofflag=op->e_o_s; - - /* no pcm */ - vb->pcmend=0; - vb->pcm=NULL; - - return(0); -} - -long vorbis_packet_blocksize(vorbis_info *vi,ogg_packet *op){ - codec_setup_info *ci=vi->codec_setup; - oggpack_buffer opb; - int mode; - - if(ci==NULL || ci->modes<=0){ - /* codec setup not properly intialized */ - return(OV_EFAULT); - } - - oggpack_readinit(&opb,op->packet,op->bytes); - - /* Check the packet type */ - if(oggpack_read(&opb,1)!=0){ - /* Oops. This is not an audio data packet */ - return(OV_ENOTAUDIO); - } - - /* read our mode and pre/post windowsize */ - mode=oggpack_read(&opb,ov_ilog(ci->modes-1)); - if(mode==-1 || !ci->mode_param[mode])return(OV_EBADPACKET); - return(ci->blocksizes[ci->mode_param[mode]->blockflag]); -} - -int vorbis_synthesis_halfrate(vorbis_info *vi,int flag){ - /* set / clear half-sample-rate mode */ - codec_setup_info *ci=vi->codec_setup; - - /* right now, our MDCT can't handle < 64 sample windows. */ - if(ci->blocksizes[0]<=64 && flag)return -1; - ci->halfrate_flag=(flag?1:0); - return 0; -} - -int vorbis_synthesis_halfrate_p(vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - return ci->halfrate_flag; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/vinfo.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/vinfo.c deleted file mode 100644 index 3fbb7c75..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/vinfo.c +++ /dev/null @@ -1,679 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2015 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: maintain the info structure, info <-> header packets - - ********************************************************************/ - -/* general handling of the header and the vorbis_info structure (and - substructures) */ - -#include -#include -#include -#include -#include "vorbis/codec.h" -#include "codec_internal.h" -#include "codebook.h" -#include "registry.h" -#include "window.h" -#include "psy.h" -#include "misc.h" -#include "os.h" - -#define GENERAL_VENDOR_STRING "Xiph.Org libVorbis 1.3.6" -#define ENCODE_VENDOR_STRING "Xiph.Org libVorbis I 20180316 (Now 100% fewer shells)" - -/* helpers */ -static void _v_writestring(oggpack_buffer *o,const char *s, int bytes){ - - while(bytes--){ - oggpack_write(o,*s++,8); - } -} - -static void _v_readstring(oggpack_buffer *o,char *buf,int bytes){ - while(bytes--){ - *buf++=oggpack_read(o,8); - } -} - -void vorbis_comment_init(vorbis_comment *vc){ - memset(vc,0,sizeof(*vc)); -} - -void vorbis_comment_add(vorbis_comment *vc,const char *comment){ - vc->user_comments=_ogg_realloc(vc->user_comments, - (vc->comments+2)*sizeof(*vc->user_comments)); - vc->comment_lengths=_ogg_realloc(vc->comment_lengths, - (vc->comments+2)*sizeof(*vc->comment_lengths)); - vc->comment_lengths[vc->comments]=strlen(comment); - vc->user_comments[vc->comments]=_ogg_malloc(vc->comment_lengths[vc->comments]+1); - strcpy(vc->user_comments[vc->comments], comment); - vc->comments++; - vc->user_comments[vc->comments]=NULL; -} - -void vorbis_comment_add_tag(vorbis_comment *vc, const char *tag, const char *contents){ - /* Length for key and value +2 for = and \0 */ - char *comment=_ogg_malloc(strlen(tag)+strlen(contents)+2); - strcpy(comment, tag); - strcat(comment, "="); - strcat(comment, contents); - vorbis_comment_add(vc, comment); - _ogg_free(comment); -} - -/* This is more or less the same as strncasecmp - but that doesn't exist - * everywhere, and this is a fairly trivial function, so we include it */ -static int tagcompare(const char *s1, const char *s2, int n){ - int c=0; - while(c < n){ - if(toupper(s1[c]) != toupper(s2[c])) - return !0; - c++; - } - return 0; -} - -char *vorbis_comment_query(vorbis_comment *vc, const char *tag, int count){ - long i; - int found = 0; - int taglen = strlen(tag)+1; /* +1 for the = we append */ - char *fulltag = _ogg_malloc(taglen+1); - - strcpy(fulltag, tag); - strcat(fulltag, "="); - - for(i=0;icomments;i++){ - if(!tagcompare(vc->user_comments[i], fulltag, taglen)){ - if(count == found) { - /* We return a pointer to the data, not a copy */ - _ogg_free(fulltag); - return vc->user_comments[i] + taglen; - } else { - found++; - } - } - } - _ogg_free(fulltag); - return NULL; /* didn't find anything */ -} - -int vorbis_comment_query_count(vorbis_comment *vc, const char *tag){ - int i,count=0; - int taglen = strlen(tag)+1; /* +1 for the = we append */ - char *fulltag = _ogg_malloc(taglen+1); - strcpy(fulltag,tag); - strcat(fulltag, "="); - - for(i=0;icomments;i++){ - if(!tagcompare(vc->user_comments[i], fulltag, taglen)) - count++; - } - - _ogg_free(fulltag); - return count; -} - -void vorbis_comment_clear(vorbis_comment *vc){ - if(vc){ - long i; - if(vc->user_comments){ - for(i=0;icomments;i++) - if(vc->user_comments[i])_ogg_free(vc->user_comments[i]); - _ogg_free(vc->user_comments); - } - if(vc->comment_lengths)_ogg_free(vc->comment_lengths); - if(vc->vendor)_ogg_free(vc->vendor); - memset(vc,0,sizeof(*vc)); - } -} - -/* blocksize 0 is guaranteed to be short, 1 is guaranteed to be long. - They may be equal, but short will never ge greater than long */ -int vorbis_info_blocksize(vorbis_info *vi,int zo){ - codec_setup_info *ci = vi->codec_setup; - return ci ? ci->blocksizes[zo] : -1; -} - -/* used by synthesis, which has a full, alloced vi */ -void vorbis_info_init(vorbis_info *vi){ - memset(vi,0,sizeof(*vi)); - vi->codec_setup=_ogg_calloc(1,sizeof(codec_setup_info)); -} - -void vorbis_info_clear(vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - int i; - - if(ci){ - - for(i=0;imodes;i++) - if(ci->mode_param[i])_ogg_free(ci->mode_param[i]); - - for(i=0;imaps;i++) /* unpack does the range checking */ - if(ci->map_param[i]) /* this may be cleaning up an aborted - unpack, in which case the below type - cannot be trusted */ - _mapping_P[ci->map_type[i]]->free_info(ci->map_param[i]); - - for(i=0;ifloors;i++) /* unpack does the range checking */ - if(ci->floor_param[i]) /* this may be cleaning up an aborted - unpack, in which case the below type - cannot be trusted */ - _floor_P[ci->floor_type[i]]->free_info(ci->floor_param[i]); - - for(i=0;iresidues;i++) /* unpack does the range checking */ - if(ci->residue_param[i]) /* this may be cleaning up an aborted - unpack, in which case the below type - cannot be trusted */ - _residue_P[ci->residue_type[i]]->free_info(ci->residue_param[i]); - - for(i=0;ibooks;i++){ - if(ci->book_param[i]){ - /* knows if the book was not alloced */ - vorbis_staticbook_destroy(ci->book_param[i]); - } - if(ci->fullbooks) - vorbis_book_clear(ci->fullbooks+i); - } - if(ci->fullbooks) - _ogg_free(ci->fullbooks); - - for(i=0;ipsys;i++) - _vi_psy_free(ci->psy_param[i]); - - _ogg_free(ci); - } - - memset(vi,0,sizeof(*vi)); -} - -/* Header packing/unpacking ********************************************/ - -static int _vorbis_unpack_info(vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - if(!ci)return(OV_EFAULT); - - vi->version=oggpack_read(opb,32); - if(vi->version!=0)return(OV_EVERSION); - - vi->channels=oggpack_read(opb,8); - vi->rate=oggpack_read(opb,32); - - vi->bitrate_upper=(ogg_int32_t)oggpack_read(opb,32); - vi->bitrate_nominal=(ogg_int32_t)oggpack_read(opb,32); - vi->bitrate_lower=(ogg_int32_t)oggpack_read(opb,32); - - ci->blocksizes[0]=1<blocksizes[1]=1<rate<1)goto err_out; - if(vi->channels<1)goto err_out; - if(ci->blocksizes[0]<64)goto err_out; - if(ci->blocksizes[1]blocksizes[0])goto err_out; - if(ci->blocksizes[1]>8192)goto err_out; - - if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ - - return(0); - err_out: - vorbis_info_clear(vi); - return(OV_EBADHEADER); -} - -static int _vorbis_unpack_comment(vorbis_comment *vc,oggpack_buffer *opb){ - int i; - int vendorlen=oggpack_read(opb,32); - if(vendorlen<0)goto err_out; - if(vendorlen>opb->storage-8)goto err_out; - vc->vendor=_ogg_calloc(vendorlen+1,1); - _v_readstring(opb,vc->vendor,vendorlen); - i=oggpack_read(opb,32); - if(i<0)goto err_out; - if(i>((opb->storage-oggpack_bytes(opb))>>2))goto err_out; - vc->comments=i; - vc->user_comments=_ogg_calloc(vc->comments+1,sizeof(*vc->user_comments)); - vc->comment_lengths=_ogg_calloc(vc->comments+1, sizeof(*vc->comment_lengths)); - - for(i=0;icomments;i++){ - int len=oggpack_read(opb,32); - if(len<0)goto err_out; - if(len>opb->storage-oggpack_bytes(opb))goto err_out; - vc->comment_lengths[i]=len; - vc->user_comments[i]=_ogg_calloc(len+1,1); - _v_readstring(opb,vc->user_comments[i],len); - } - if(oggpack_read(opb,1)!=1)goto err_out; /* EOP check */ - - return(0); - err_out: - vorbis_comment_clear(vc); - return(OV_EBADHEADER); -} - -/* all of the real encoding details are here. The modes, books, - everything */ -static int _vorbis_unpack_books(vorbis_info *vi,oggpack_buffer *opb){ - codec_setup_info *ci=vi->codec_setup; - int i; - - /* codebooks */ - ci->books=oggpack_read(opb,8)+1; - if(ci->books<=0)goto err_out; - for(i=0;ibooks;i++){ - ci->book_param[i]=vorbis_staticbook_unpack(opb); - if(!ci->book_param[i])goto err_out; - } - - /* time backend settings; hooks are unused */ - { - int times=oggpack_read(opb,6)+1; - if(times<=0)goto err_out; - for(i=0;i=VI_TIMEB)goto err_out; - } - } - - /* floor backend settings */ - ci->floors=oggpack_read(opb,6)+1; - if(ci->floors<=0)goto err_out; - for(i=0;ifloors;i++){ - ci->floor_type[i]=oggpack_read(opb,16); - if(ci->floor_type[i]<0 || ci->floor_type[i]>=VI_FLOORB)goto err_out; - ci->floor_param[i]=_floor_P[ci->floor_type[i]]->unpack(vi,opb); - if(!ci->floor_param[i])goto err_out; - } - - /* residue backend settings */ - ci->residues=oggpack_read(opb,6)+1; - if(ci->residues<=0)goto err_out; - for(i=0;iresidues;i++){ - ci->residue_type[i]=oggpack_read(opb,16); - if(ci->residue_type[i]<0 || ci->residue_type[i]>=VI_RESB)goto err_out; - ci->residue_param[i]=_residue_P[ci->residue_type[i]]->unpack(vi,opb); - if(!ci->residue_param[i])goto err_out; - } - - /* map backend settings */ - ci->maps=oggpack_read(opb,6)+1; - if(ci->maps<=0)goto err_out; - for(i=0;imaps;i++){ - ci->map_type[i]=oggpack_read(opb,16); - if(ci->map_type[i]<0 || ci->map_type[i]>=VI_MAPB)goto err_out; - ci->map_param[i]=_mapping_P[ci->map_type[i]]->unpack(vi,opb); - if(!ci->map_param[i])goto err_out; - } - - /* mode settings */ - ci->modes=oggpack_read(opb,6)+1; - if(ci->modes<=0)goto err_out; - for(i=0;imodes;i++){ - ci->mode_param[i]=_ogg_calloc(1,sizeof(*ci->mode_param[i])); - ci->mode_param[i]->blockflag=oggpack_read(opb,1); - ci->mode_param[i]->windowtype=oggpack_read(opb,16); - ci->mode_param[i]->transformtype=oggpack_read(opb,16); - ci->mode_param[i]->mapping=oggpack_read(opb,8); - - if(ci->mode_param[i]->windowtype>=VI_WINDOWB)goto err_out; - if(ci->mode_param[i]->transformtype>=VI_WINDOWB)goto err_out; - if(ci->mode_param[i]->mapping>=ci->maps)goto err_out; - if(ci->mode_param[i]->mapping<0)goto err_out; - } - - if(oggpack_read(opb,1)!=1)goto err_out; /* top level EOP check */ - - return(0); - err_out: - vorbis_info_clear(vi); - return(OV_EBADHEADER); -} - -/* Is this packet a vorbis ID header? */ -int vorbis_synthesis_idheader(ogg_packet *op){ - oggpack_buffer opb; - char buffer[6]; - - if(op){ - oggpack_readinit(&opb,op->packet,op->bytes); - - if(!op->b_o_s) - return(0); /* Not the initial packet */ - - if(oggpack_read(&opb,8) != 1) - return 0; /* not an ID header */ - - memset(buffer,0,6); - _v_readstring(&opb,buffer,6); - if(memcmp(buffer,"vorbis",6)) - return 0; /* not vorbis */ - - return 1; - } - - return 0; -} - -/* The Vorbis header is in three packets; the initial small packet in - the first page that identifies basic parameters, a second packet - with bitstream comments and a third packet that holds the - codebook. */ - -int vorbis_synthesis_headerin(vorbis_info *vi,vorbis_comment *vc,ogg_packet *op){ - oggpack_buffer opb; - - if(op){ - oggpack_readinit(&opb,op->packet,op->bytes); - - /* Which of the three types of header is this? */ - /* Also verify header-ness, vorbis */ - { - char buffer[6]; - int packtype=oggpack_read(&opb,8); - memset(buffer,0,6); - _v_readstring(&opb,buffer,6); - if(memcmp(buffer,"vorbis",6)){ - /* not a vorbis header */ - return(OV_ENOTVORBIS); - } - switch(packtype){ - case 0x01: /* least significant *bit* is read first */ - if(!op->b_o_s){ - /* Not the initial packet */ - return(OV_EBADHEADER); - } - if(vi->rate!=0){ - /* previously initialized info header */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_info(vi,&opb)); - - case 0x03: /* least significant *bit* is read first */ - if(vi->rate==0){ - /* um... we didn't get the initial header */ - return(OV_EBADHEADER); - } - if(vc->vendor!=NULL){ - /* previously initialized comment header */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_comment(vc,&opb)); - - case 0x05: /* least significant *bit* is read first */ - if(vi->rate==0 || vc->vendor==NULL){ - /* um... we didn;t get the initial header or comments yet */ - return(OV_EBADHEADER); - } - if(vi->codec_setup==NULL){ - /* improperly initialized vorbis_info */ - return(OV_EFAULT); - } - if(((codec_setup_info *)vi->codec_setup)->books>0){ - /* previously initialized setup header */ - return(OV_EBADHEADER); - } - - return(_vorbis_unpack_books(vi,&opb)); - - default: - /* Not a valid vorbis header type */ - return(OV_EBADHEADER); - break; - } - } - } - return(OV_EBADHEADER); -} - -/* pack side **********************************************************/ - -static int _vorbis_pack_info(oggpack_buffer *opb,vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - if(!ci|| - ci->blocksizes[0]<64|| - ci->blocksizes[1]blocksizes[0]){ - return(OV_EFAULT); - } - - /* preamble */ - oggpack_write(opb,0x01,8); - _v_writestring(opb,"vorbis", 6); - - /* basic information about the stream */ - oggpack_write(opb,0x00,32); - oggpack_write(opb,vi->channels,8); - oggpack_write(opb,vi->rate,32); - - oggpack_write(opb,vi->bitrate_upper,32); - oggpack_write(opb,vi->bitrate_nominal,32); - oggpack_write(opb,vi->bitrate_lower,32); - - oggpack_write(opb,ov_ilog(ci->blocksizes[0]-1),4); - oggpack_write(opb,ov_ilog(ci->blocksizes[1]-1),4); - oggpack_write(opb,1,1); - - return(0); -} - -static int _vorbis_pack_comment(oggpack_buffer *opb,vorbis_comment *vc){ - int bytes = strlen(ENCODE_VENDOR_STRING); - - /* preamble */ - oggpack_write(opb,0x03,8); - _v_writestring(opb,"vorbis", 6); - - /* vendor */ - oggpack_write(opb,bytes,32); - _v_writestring(opb,ENCODE_VENDOR_STRING, bytes); - - /* comments */ - - oggpack_write(opb,vc->comments,32); - if(vc->comments){ - int i; - for(i=0;icomments;i++){ - if(vc->user_comments[i]){ - oggpack_write(opb,vc->comment_lengths[i],32); - _v_writestring(opb,vc->user_comments[i], vc->comment_lengths[i]); - }else{ - oggpack_write(opb,0,32); - } - } - } - oggpack_write(opb,1,1); - - return(0); -} - -static int _vorbis_pack_books(oggpack_buffer *opb,vorbis_info *vi){ - codec_setup_info *ci=vi->codec_setup; - int i; - if(!ci)return(OV_EFAULT); - - oggpack_write(opb,0x05,8); - _v_writestring(opb,"vorbis", 6); - - /* books */ - oggpack_write(opb,ci->books-1,8); - for(i=0;ibooks;i++) - if(vorbis_staticbook_pack(ci->book_param[i],opb))goto err_out; - - /* times; hook placeholders */ - oggpack_write(opb,0,6); - oggpack_write(opb,0,16); - - /* floors */ - oggpack_write(opb,ci->floors-1,6); - for(i=0;ifloors;i++){ - oggpack_write(opb,ci->floor_type[i],16); - if(_floor_P[ci->floor_type[i]]->pack) - _floor_P[ci->floor_type[i]]->pack(ci->floor_param[i],opb); - else - goto err_out; - } - - /* residues */ - oggpack_write(opb,ci->residues-1,6); - for(i=0;iresidues;i++){ - oggpack_write(opb,ci->residue_type[i],16); - _residue_P[ci->residue_type[i]]->pack(ci->residue_param[i],opb); - } - - /* maps */ - oggpack_write(opb,ci->maps-1,6); - for(i=0;imaps;i++){ - oggpack_write(opb,ci->map_type[i],16); - _mapping_P[ci->map_type[i]]->pack(vi,ci->map_param[i],opb); - } - - /* modes */ - oggpack_write(opb,ci->modes-1,6); - for(i=0;imodes;i++){ - oggpack_write(opb,ci->mode_param[i]->blockflag,1); - oggpack_write(opb,ci->mode_param[i]->windowtype,16); - oggpack_write(opb,ci->mode_param[i]->transformtype,16); - oggpack_write(opb,ci->mode_param[i]->mapping,8); - } - oggpack_write(opb,1,1); - - return(0); -err_out: - return(-1); -} - -int vorbis_commentheader_out(vorbis_comment *vc, - ogg_packet *op){ - - oggpack_buffer opb; - - oggpack_writeinit(&opb); - if(_vorbis_pack_comment(&opb,vc)){ - oggpack_writeclear(&opb); - return OV_EIMPL; - } - - op->packet = _ogg_malloc(oggpack_bytes(&opb)); - memcpy(op->packet, opb.buffer, oggpack_bytes(&opb)); - - op->bytes=oggpack_bytes(&opb); - op->b_o_s=0; - op->e_o_s=0; - op->granulepos=0; - op->packetno=1; - - oggpack_writeclear(&opb); - return 0; -} - -int vorbis_analysis_headerout(vorbis_dsp_state *v, - vorbis_comment *vc, - ogg_packet *op, - ogg_packet *op_comm, - ogg_packet *op_code){ - int ret=OV_EIMPL; - vorbis_info *vi=v->vi; - oggpack_buffer opb; - private_state *b=v->backend_state; - - if(!b||vi->channels<=0||vi->channels>256){ - b = NULL; - ret=OV_EFAULT; - goto err_out; - } - - /* first header packet **********************************************/ - - oggpack_writeinit(&opb); - if(_vorbis_pack_info(&opb,vi))goto err_out; - - /* build the packet */ - if(b->header)_ogg_free(b->header); - b->header=_ogg_malloc(oggpack_bytes(&opb)); - memcpy(b->header,opb.buffer,oggpack_bytes(&opb)); - op->packet=b->header; - op->bytes=oggpack_bytes(&opb); - op->b_o_s=1; - op->e_o_s=0; - op->granulepos=0; - op->packetno=0; - - /* second header packet (comments) **********************************/ - - oggpack_reset(&opb); - if(_vorbis_pack_comment(&opb,vc))goto err_out; - - if(b->header1)_ogg_free(b->header1); - b->header1=_ogg_malloc(oggpack_bytes(&opb)); - memcpy(b->header1,opb.buffer,oggpack_bytes(&opb)); - op_comm->packet=b->header1; - op_comm->bytes=oggpack_bytes(&opb); - op_comm->b_o_s=0; - op_comm->e_o_s=0; - op_comm->granulepos=0; - op_comm->packetno=1; - - /* third header packet (modes/codebooks) ****************************/ - - oggpack_reset(&opb); - if(_vorbis_pack_books(&opb,vi))goto err_out; - - if(b->header2)_ogg_free(b->header2); - b->header2=_ogg_malloc(oggpack_bytes(&opb)); - memcpy(b->header2,opb.buffer,oggpack_bytes(&opb)); - op_code->packet=b->header2; - op_code->bytes=oggpack_bytes(&opb); - op_code->b_o_s=0; - op_code->e_o_s=0; - op_code->granulepos=0; - op_code->packetno=2; - - oggpack_writeclear(&opb); - return(0); - err_out: - memset(op,0,sizeof(*op)); - memset(op_comm,0,sizeof(*op_comm)); - memset(op_code,0,sizeof(*op_code)); - - if(b){ - if(vi->channels>0)oggpack_writeclear(&opb); - if(b->header)_ogg_free(b->header); - if(b->header1)_ogg_free(b->header1); - if(b->header2)_ogg_free(b->header2); - b->header=NULL; - b->header1=NULL; - b->header2=NULL; - } - return(ret); -} - -double vorbis_granule_time(vorbis_dsp_state *v,ogg_int64_t granulepos){ - if(granulepos == -1) return -1; - - /* We're not guaranteed a 64 bit unsigned type everywhere, so we - have to put the unsigned granpo in a signed type. */ - if(granulepos>=0){ - return((double)granulepos/v->vi->rate); - }else{ - ogg_int64_t granuleoff=0xffffffff; - granuleoff<<=31; - granuleoff|=0x7ffffffff; - return(((double)granulepos+2+granuleoff+granuleoff)/v->vi->rate); - } -} - -const char *vorbis_version_string(void){ - return GENERAL_VENDOR_STRING; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/window.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/window.c deleted file mode 100644 index b3b7ce01..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/lib/vorbis/window.c +++ /dev/null @@ -1,2135 +0,0 @@ -/******************************************************************** - * * - * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE. * - * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS * - * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE * - * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING. * - * * - * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009 * - * by the Xiph.Org Foundation http://www.xiph.org/ * - * * - ******************************************************************** - - function: window functions - - ********************************************************************/ - -#include -#include -#include "os.h" -#include "misc.h" -#include "window.h" - -static const float vwin64[32] = { - 0.0009460463F, 0.0085006468F, 0.0235352254F, 0.0458950567F, - 0.0753351908F, 0.1115073077F, 0.1539457973F, 0.2020557475F, - 0.2551056759F, 0.3122276645F, 0.3724270287F, 0.4346027792F, - 0.4975789974F, 0.5601459521F, 0.6211085051F, 0.6793382689F, - 0.7338252629F, 0.7837245849F, 0.8283939355F, 0.8674186656F, - 0.9006222429F, 0.9280614787F, 0.9500073081F, 0.9669131782F, - 0.9793740220F, 0.9880792941F, 0.9937636139F, 0.9971582668F, - 0.9989462667F, 0.9997230082F, 0.9999638688F, 0.9999995525F, -}; - -static const float vwin128[64] = { - 0.0002365472F, 0.0021280687F, 0.0059065254F, 0.0115626550F, - 0.0190823442F, 0.0284463735F, 0.0396300935F, 0.0526030430F, - 0.0673285281F, 0.0837631763F, 0.1018564887F, 0.1215504095F, - 0.1427789367F, 0.1654677960F, 0.1895342001F, 0.2148867160F, - 0.2414252576F, 0.2690412240F, 0.2976177952F, 0.3270303960F, - 0.3571473350F, 0.3878306189F, 0.4189369387F, 0.4503188188F, - 0.4818259135F, 0.5133064334F, 0.5446086751F, 0.5755826278F, - 0.6060816248F, 0.6359640047F, 0.6650947483F, 0.6933470543F, - 0.7206038179F, 0.7467589810F, 0.7717187213F, 0.7954024542F, - 0.8177436264F, 0.8386902831F, 0.8582053981F, 0.8762669622F, - 0.8928678298F, 0.9080153310F, 0.9217306608F, 0.9340480615F, - 0.9450138200F, 0.9546851041F, 0.9631286621F, 0.9704194171F, - 0.9766389810F, 0.9818741197F, 0.9862151938F, 0.9897546035F, - 0.9925852598F, 0.9947991032F, 0.9964856900F, 0.9977308602F, - 0.9986155015F, 0.9992144193F, 0.9995953200F, 0.9998179155F, - 0.9999331503F, 0.9999825563F, 0.9999977357F, 0.9999999720F, -}; - -static const float vwin256[128] = { - 0.0000591390F, 0.0005321979F, 0.0014780301F, 0.0028960636F, - 0.0047854363F, 0.0071449926F, 0.0099732775F, 0.0132685298F, - 0.0170286741F, 0.0212513119F, 0.0259337111F, 0.0310727950F, - 0.0366651302F, 0.0427069140F, 0.0491939614F, 0.0561216907F, - 0.0634851102F, 0.0712788035F, 0.0794969160F, 0.0881331402F, - 0.0971807028F, 0.1066323515F, 0.1164803426F, 0.1267164297F, - 0.1373318534F, 0.1483173323F, 0.1596630553F, 0.1713586755F, - 0.1833933062F, 0.1957555184F, 0.2084333404F, 0.2214142599F, - 0.2346852280F, 0.2482326664F, 0.2620424757F, 0.2761000481F, - 0.2903902813F, 0.3048975959F, 0.3196059553F, 0.3344988887F, - 0.3495595160F, 0.3647705766F, 0.3801144597F, 0.3955732382F, - 0.4111287047F, 0.4267624093F, 0.4424557009F, 0.4581897696F, - 0.4739456913F, 0.4897044744F, 0.5054471075F, 0.5211546088F, - 0.5368080763F, 0.5523887395F, 0.5678780103F, 0.5832575361F, - 0.5985092508F, 0.6136154277F, 0.6285587300F, 0.6433222619F, - 0.6578896175F, 0.6722449294F, 0.6863729144F, 0.7002589187F, - 0.7138889597F, 0.7272497662F, 0.7403288154F, 0.7531143679F, - 0.7655954985F, 0.7777621249F, 0.7896050322F, 0.8011158947F, - 0.8122872932F, 0.8231127294F, 0.8335866365F, 0.8437043850F, - 0.8534622861F, 0.8628575905F, 0.8718884835F, 0.8805540765F, - 0.8888543947F, 0.8967903616F, 0.9043637797F, 0.9115773078F, - 0.9184344360F, 0.9249394562F, 0.9310974312F, 0.9369141608F, - 0.9423961446F, 0.9475505439F, 0.9523851406F, 0.9569082947F, - 0.9611289005F, 0.9650563408F, 0.9687004405F, 0.9720714191F, - 0.9751798427F, 0.9780365753F, 0.9806527301F, 0.9830396204F, - 0.9852087111F, 0.9871715701F, 0.9889398207F, 0.9905250941F, - 0.9919389832F, 0.9931929973F, 0.9942985174F, 0.9952667537F, - 0.9961087037F, 0.9968351119F, 0.9974564312F, 0.9979827858F, - 0.9984239359F, 0.9987892441F, 0.9990876435F, 0.9993276081F, - 0.9995171241F, 0.9996636648F, 0.9997741654F, 0.9998550016F, - 0.9999119692F, 0.9999502656F, 0.9999744742F, 0.9999885497F, - 0.9999958064F, 0.9999989077F, 0.9999998584F, 0.9999999983F, -}; - -static const float vwin512[256] = { - 0.0000147849F, 0.0001330607F, 0.0003695946F, 0.0007243509F, - 0.0011972759F, 0.0017882983F, 0.0024973285F, 0.0033242588F, - 0.0042689632F, 0.0053312973F, 0.0065110982F, 0.0078081841F, - 0.0092223540F, 0.0107533880F, 0.0124010466F, 0.0141650703F, - 0.0160451800F, 0.0180410758F, 0.0201524373F, 0.0223789233F, - 0.0247201710F, 0.0271757958F, 0.0297453914F, 0.0324285286F, - 0.0352247556F, 0.0381335972F, 0.0411545545F, 0.0442871045F, - 0.0475306997F, 0.0508847676F, 0.0543487103F, 0.0579219038F, - 0.0616036982F, 0.0653934164F, 0.0692903546F, 0.0732937809F, - 0.0774029356F, 0.0816170305F, 0.0859352485F, 0.0903567428F, - 0.0948806375F, 0.0995060259F, 0.1042319712F, 0.1090575056F, - 0.1139816300F, 0.1190033137F, 0.1241214941F, 0.1293350764F, - 0.1346429333F, 0.1400439046F, 0.1455367974F, 0.1511203852F, - 0.1567934083F, 0.1625545735F, 0.1684025537F, 0.1743359881F, - 0.1803534820F, 0.1864536069F, 0.1926349000F, 0.1988958650F, - 0.2052349715F, 0.2116506555F, 0.2181413191F, 0.2247053313F, - 0.2313410275F, 0.2380467105F, 0.2448206500F, 0.2516610835F, - 0.2585662164F, 0.2655342226F, 0.2725632448F, 0.2796513950F, - 0.2867967551F, 0.2939973773F, 0.3012512852F, 0.3085564739F, - 0.3159109111F, 0.3233125375F, 0.3307592680F, 0.3382489922F, - 0.3457795756F, 0.3533488602F, 0.3609546657F, 0.3685947904F, - 0.3762670121F, 0.3839690896F, 0.3916987634F, 0.3994537572F, - 0.4072317788F, 0.4150305215F, 0.4228476653F, 0.4306808783F, - 0.4385278181F, 0.4463861329F, 0.4542534630F, 0.4621274424F, - 0.4700057001F, 0.4778858615F, 0.4857655502F, 0.4936423891F, - 0.5015140023F, 0.5093780165F, 0.5172320626F, 0.5250737772F, - 0.5329008043F, 0.5407107971F, 0.5485014192F, 0.5562703465F, - 0.5640152688F, 0.5717338914F, 0.5794239366F, 0.5870831457F, - 0.5947092801F, 0.6023001235F, 0.6098534829F, 0.6173671907F, - 0.6248391059F, 0.6322671161F, 0.6396491384F, 0.6469831217F, - 0.6542670475F, 0.6614989319F, 0.6686768267F, 0.6757988210F, - 0.6828630426F, 0.6898676592F, 0.6968108799F, 0.7036909564F, - 0.7105061843F, 0.7172549043F, 0.7239355032F, 0.7305464154F, - 0.7370861235F, 0.7435531598F, 0.7499461068F, 0.7562635986F, - 0.7625043214F, 0.7686670148F, 0.7747504721F, 0.7807535410F, - 0.7866751247F, 0.7925141825F, 0.7982697296F, 0.8039408387F, - 0.8095266395F, 0.8150263196F, 0.8204391248F, 0.8257643590F, - 0.8310013848F, 0.8361496236F, 0.8412085555F, 0.8461777194F, - 0.8510567129F, 0.8558451924F, 0.8605428730F, 0.8651495278F, - 0.8696649882F, 0.8740891432F, 0.8784219392F, 0.8826633797F, - 0.8868135244F, 0.8908724888F, 0.8948404441F, 0.8987176157F, - 0.9025042831F, 0.9062007791F, 0.9098074886F, 0.9133248482F, - 0.9167533451F, 0.9200935163F, 0.9233459472F, 0.9265112712F, - 0.9295901680F, 0.9325833632F, 0.9354916263F, 0.9383157705F, - 0.9410566504F, 0.9437151618F, 0.9462922398F, 0.9487888576F, - 0.9512060252F, 0.9535447882F, 0.9558062262F, 0.9579914516F, - 0.9601016078F, 0.9621378683F, 0.9641014348F, 0.9659935361F, - 0.9678154261F, 0.9695683830F, 0.9712537071F, 0.9728727198F, - 0.9744267618F, 0.9759171916F, 0.9773453842F, 0.9787127293F, - 0.9800206298F, 0.9812705006F, 0.9824637665F, 0.9836018613F, - 0.9846862258F, 0.9857183066F, 0.9866995544F, 0.9876314227F, - 0.9885153662F, 0.9893528393F, 0.9901452948F, 0.9908941823F, - 0.9916009470F, 0.9922670279F, 0.9928938570F, 0.9934828574F, - 0.9940354423F, 0.9945530133F, 0.9950369595F, 0.9954886562F, - 0.9959094633F, 0.9963007242F, 0.9966637649F, 0.9969998925F, - 0.9973103939F, 0.9975965351F, 0.9978595598F, 0.9981006885F, - 0.9983211172F, 0.9985220166F, 0.9987045311F, 0.9988697776F, - 0.9990188449F, 0.9991527924F, 0.9992726499F, 0.9993794157F, - 0.9994740570F, 0.9995575079F, 0.9996306699F, 0.9996944099F, - 0.9997495605F, 0.9997969190F, 0.9998372465F, 0.9998712678F, - 0.9998996704F, 0.9999231041F, 0.9999421807F, 0.9999574732F, - 0.9999695157F, 0.9999788026F, 0.9999857885F, 0.9999908879F, - 0.9999944746F, 0.9999968817F, 0.9999984010F, 0.9999992833F, - 0.9999997377F, 0.9999999317F, 0.9999999911F, 0.9999999999F, -}; - -static const float vwin1024[512] = { - 0.0000036962F, 0.0000332659F, 0.0000924041F, 0.0001811086F, - 0.0002993761F, 0.0004472021F, 0.0006245811F, 0.0008315063F, - 0.0010679699F, 0.0013339631F, 0.0016294757F, 0.0019544965F, - 0.0023090133F, 0.0026930125F, 0.0031064797F, 0.0035493989F, - 0.0040217533F, 0.0045235250F, 0.0050546946F, 0.0056152418F, - 0.0062051451F, 0.0068243817F, 0.0074729278F, 0.0081507582F, - 0.0088578466F, 0.0095941655F, 0.0103596863F, 0.0111543789F, - 0.0119782122F, 0.0128311538F, 0.0137131701F, 0.0146242260F, - 0.0155642855F, 0.0165333111F, 0.0175312640F, 0.0185581042F, - 0.0196137903F, 0.0206982797F, 0.0218115284F, 0.0229534910F, - 0.0241241208F, 0.0253233698F, 0.0265511886F, 0.0278075263F, - 0.0290923308F, 0.0304055484F, 0.0317471241F, 0.0331170013F, - 0.0345151222F, 0.0359414274F, 0.0373958560F, 0.0388783456F, - 0.0403888325F, 0.0419272511F, 0.0434935347F, 0.0450876148F, - 0.0467094213F, 0.0483588828F, 0.0500359261F, 0.0517404765F, - 0.0534724575F, 0.0552317913F, 0.0570183983F, 0.0588321971F, - 0.0606731048F, 0.0625410369F, 0.0644359070F, 0.0663576272F, - 0.0683061077F, 0.0702812571F, 0.0722829821F, 0.0743111878F, - 0.0763657775F, 0.0784466526F, 0.0805537129F, 0.0826868561F, - 0.0848459782F, 0.0870309736F, 0.0892417345F, 0.0914781514F, - 0.0937401128F, 0.0960275056F, 0.0983402145F, 0.1006781223F, - 0.1030411101F, 0.1054290568F, 0.1078418397F, 0.1102793336F, - 0.1127414119F, 0.1152279457F, 0.1177388042F, 0.1202738544F, - 0.1228329618F, 0.1254159892F, 0.1280227980F, 0.1306532471F, - 0.1333071937F, 0.1359844927F, 0.1386849970F, 0.1414085575F, - 0.1441550230F, 0.1469242403F, 0.1497160539F, 0.1525303063F, - 0.1553668381F, 0.1582254875F, 0.1611060909F, 0.1640084822F, - 0.1669324936F, 0.1698779549F, 0.1728446939F, 0.1758325362F, - 0.1788413055F, 0.1818708232F, 0.1849209084F, 0.1879913785F, - 0.1910820485F, 0.1941927312F, 0.1973232376F, 0.2004733764F, - 0.2036429541F, 0.2068317752F, 0.2100396421F, 0.2132663552F, - 0.2165117125F, 0.2197755102F, 0.2230575422F, 0.2263576007F, - 0.2296754753F, 0.2330109540F, 0.2363638225F, 0.2397338646F, - 0.2431208619F, 0.2465245941F, 0.2499448389F, 0.2533813719F, - 0.2568339669F, 0.2603023956F, 0.2637864277F, 0.2672858312F, - 0.2708003718F, 0.2743298135F, 0.2778739186F, 0.2814324472F, - 0.2850051576F, 0.2885918065F, 0.2921921485F, 0.2958059366F, - 0.2994329219F, 0.3030728538F, 0.3067254799F, 0.3103905462F, - 0.3140677969F, 0.3177569747F, 0.3214578205F, 0.3251700736F, - 0.3288934718F, 0.3326277513F, 0.3363726468F, 0.3401278914F, - 0.3438932168F, 0.3476683533F, 0.3514530297F, 0.3552469734F, - 0.3590499106F, 0.3628615659F, 0.3666816630F, 0.3705099239F, - 0.3743460698F, 0.3781898204F, 0.3820408945F, 0.3858990095F, - 0.3897638820F, 0.3936352274F, 0.3975127601F, 0.4013961936F, - 0.4052852405F, 0.4091796123F, 0.4130790198F, 0.4169831732F, - 0.4208917815F, 0.4248045534F, 0.4287211965F, 0.4326414181F, - 0.4365649248F, 0.4404914225F, 0.4444206167F, 0.4483522125F, - 0.4522859146F, 0.4562214270F, 0.4601584538F, 0.4640966984F, - 0.4680358644F, 0.4719756548F, 0.4759157726F, 0.4798559209F, - 0.4837958024F, 0.4877351199F, 0.4916735765F, 0.4956108751F, - 0.4995467188F, 0.5034808109F, 0.5074128550F, 0.5113425550F, - 0.5152696149F, 0.5191937395F, 0.5231146336F, 0.5270320028F, - 0.5309455530F, 0.5348549910F, 0.5387600239F, 0.5426603597F, - 0.5465557070F, 0.5504457754F, 0.5543302752F, 0.5582089175F, - 0.5620814145F, 0.5659474793F, 0.5698068262F, 0.5736591704F, - 0.5775042283F, 0.5813417176F, 0.5851713571F, 0.5889928670F, - 0.5928059689F, 0.5966103856F, 0.6004058415F, 0.6041920626F, - 0.6079687761F, 0.6117357113F, 0.6154925986F, 0.6192391705F, - 0.6229751612F, 0.6267003064F, 0.6304143441F, 0.6341170137F, - 0.6378080569F, 0.6414872173F, 0.6451542405F, 0.6488088741F, - 0.6524508681F, 0.6560799742F, 0.6596959469F, 0.6632985424F, - 0.6668875197F, 0.6704626398F, 0.6740236662F, 0.6775703649F, - 0.6811025043F, 0.6846198554F, 0.6881221916F, 0.6916092892F, - 0.6950809269F, 0.6985368861F, 0.7019769510F, 0.7054009085F, - 0.7088085484F, 0.7121996632F, 0.7155740484F, 0.7189315023F, - 0.7222718263F, 0.7255948245F, 0.7289003043F, 0.7321880760F, - 0.7354579530F, 0.7387097518F, 0.7419432921F, 0.7451583966F, - 0.7483548915F, 0.7515326059F, 0.7546913723F, 0.7578310265F, - 0.7609514077F, 0.7640523581F, 0.7671337237F, 0.7701953535F, - 0.7732371001F, 0.7762588195F, 0.7792603711F, 0.7822416178F, - 0.7852024259F, 0.7881426654F, 0.7910622097F, 0.7939609356F, - 0.7968387237F, 0.7996954579F, 0.8025310261F, 0.8053453193F, - 0.8081382324F, 0.8109096638F, 0.8136595156F, 0.8163876936F, - 0.8190941071F, 0.8217786690F, 0.8244412960F, 0.8270819086F, - 0.8297004305F, 0.8322967896F, 0.8348709171F, 0.8374227481F, - 0.8399522213F, 0.8424592789F, 0.8449438672F, 0.8474059356F, - 0.8498454378F, 0.8522623306F, 0.8546565748F, 0.8570281348F, - 0.8593769787F, 0.8617030779F, 0.8640064080F, 0.8662869477F, - 0.8685446796F, 0.8707795899F, 0.8729916682F, 0.8751809079F, - 0.8773473059F, 0.8794908626F, 0.8816115819F, 0.8837094713F, - 0.8857845418F, 0.8878368079F, 0.8898662874F, 0.8918730019F, - 0.8938569760F, 0.8958182380F, 0.8977568194F, 0.8996727552F, - 0.9015660837F, 0.9034368465F, 0.9052850885F, 0.9071108577F, - 0.9089142057F, 0.9106951869F, 0.9124538591F, 0.9141902832F, - 0.9159045233F, 0.9175966464F, 0.9192667228F, 0.9209148257F, - 0.9225410313F, 0.9241454187F, 0.9257280701F, 0.9272890704F, - 0.9288285075F, 0.9303464720F, 0.9318430576F, 0.9333183603F, - 0.9347724792F, 0.9362055158F, 0.9376175745F, 0.9390087622F, - 0.9403791881F, 0.9417289644F, 0.9430582055F, 0.9443670283F, - 0.9456555521F, 0.9469238986F, 0.9481721917F, 0.9494005577F, - 0.9506091252F, 0.9517980248F, 0.9529673894F, 0.9541173540F, - 0.9552480557F, 0.9563596334F, 0.9574522282F, 0.9585259830F, - 0.9595810428F, 0.9606175542F, 0.9616356656F, 0.9626355274F, - 0.9636172915F, 0.9645811114F, 0.9655271425F, 0.9664555414F, - 0.9673664664F, 0.9682600774F, 0.9691365355F, 0.9699960034F, - 0.9708386448F, 0.9716646250F, 0.9724741103F, 0.9732672685F, - 0.9740442683F, 0.9748052795F, 0.9755504729F, 0.9762800205F, - 0.9769940950F, 0.9776928703F, 0.9783765210F, 0.9790452223F, - 0.9796991504F, 0.9803384823F, 0.9809633954F, 0.9815740679F, - 0.9821706784F, 0.9827534063F, 0.9833224312F, 0.9838779332F, - 0.9844200928F, 0.9849490910F, 0.9854651087F, 0.9859683274F, - 0.9864589286F, 0.9869370940F, 0.9874030054F, 0.9878568447F, - 0.9882987937F, 0.9887290343F, 0.9891477481F, 0.9895551169F, - 0.9899513220F, 0.9903365446F, 0.9907109658F, 0.9910747662F, - 0.9914281260F, 0.9917712252F, 0.9921042433F, 0.9924273593F, - 0.9927407516F, 0.9930445982F, 0.9933390763F, 0.9936243626F, - 0.9939006331F, 0.9941680631F, 0.9944268269F, 0.9946770982F, - 0.9949190498F, 0.9951528537F, 0.9953786808F, 0.9955967011F, - 0.9958070836F, 0.9960099963F, 0.9962056061F, 0.9963940787F, - 0.9965755786F, 0.9967502693F, 0.9969183129F, 0.9970798704F, - 0.9972351013F, 0.9973841640F, 0.9975272151F, 0.9976644103F, - 0.9977959036F, 0.9979218476F, 0.9980423932F, 0.9981576901F, - 0.9982678862F, 0.9983731278F, 0.9984735596F, 0.9985693247F, - 0.9986605645F, 0.9987474186F, 0.9988300248F, 0.9989085193F, - 0.9989830364F, 0.9990537085F, 0.9991206662F, 0.9991840382F, - 0.9992439513F, 0.9993005303F, 0.9993538982F, 0.9994041757F, - 0.9994514817F, 0.9994959330F, 0.9995376444F, 0.9995767286F, - 0.9996132960F, 0.9996474550F, 0.9996793121F, 0.9997089710F, - 0.9997365339F, 0.9997621003F, 0.9997857677F, 0.9998076311F, - 0.9998277836F, 0.9998463156F, 0.9998633155F, 0.9998788692F, - 0.9998930603F, 0.9999059701F, 0.9999176774F, 0.9999282586F, - 0.9999377880F, 0.9999463370F, 0.9999539749F, 0.9999607685F, - 0.9999667820F, 0.9999720773F, 0.9999767136F, 0.9999807479F, - 0.9999842344F, 0.9999872249F, 0.9999897688F, 0.9999919127F, - 0.9999937009F, 0.9999951749F, 0.9999963738F, 0.9999973342F, - 0.9999980900F, 0.9999986724F, 0.9999991103F, 0.9999994297F, - 0.9999996543F, 0.9999998049F, 0.9999999000F, 0.9999999552F, - 0.9999999836F, 0.9999999957F, 0.9999999994F, 1.0000000000F, -}; - -static const float vwin2048[1024] = { - 0.0000009241F, 0.0000083165F, 0.0000231014F, 0.0000452785F, - 0.0000748476F, 0.0001118085F, 0.0001561608F, 0.0002079041F, - 0.0002670379F, 0.0003335617F, 0.0004074748F, 0.0004887765F, - 0.0005774661F, 0.0006735427F, 0.0007770054F, 0.0008878533F, - 0.0010060853F, 0.0011317002F, 0.0012646969F, 0.0014050742F, - 0.0015528307F, 0.0017079650F, 0.0018704756F, 0.0020403610F, - 0.0022176196F, 0.0024022497F, 0.0025942495F, 0.0027936173F, - 0.0030003511F, 0.0032144490F, 0.0034359088F, 0.0036647286F, - 0.0039009061F, 0.0041444391F, 0.0043953253F, 0.0046535621F, - 0.0049191472F, 0.0051920781F, 0.0054723520F, 0.0057599664F, - 0.0060549184F, 0.0063572052F, 0.0066668239F, 0.0069837715F, - 0.0073080449F, 0.0076396410F, 0.0079785566F, 0.0083247884F, - 0.0086783330F, 0.0090391871F, 0.0094073470F, 0.0097828092F, - 0.0101655700F, 0.0105556258F, 0.0109529726F, 0.0113576065F, - 0.0117695237F, 0.0121887200F, 0.0126151913F, 0.0130489335F, - 0.0134899422F, 0.0139382130F, 0.0143937415F, 0.0148565233F, - 0.0153265536F, 0.0158038279F, 0.0162883413F, 0.0167800889F, - 0.0172790660F, 0.0177852675F, 0.0182986882F, 0.0188193231F, - 0.0193471668F, 0.0198822141F, 0.0204244594F, 0.0209738974F, - 0.0215305225F, 0.0220943289F, 0.0226653109F, 0.0232434627F, - 0.0238287784F, 0.0244212519F, 0.0250208772F, 0.0256276481F, - 0.0262415582F, 0.0268626014F, 0.0274907711F, 0.0281260608F, - 0.0287684638F, 0.0294179736F, 0.0300745833F, 0.0307382859F, - 0.0314090747F, 0.0320869424F, 0.0327718819F, 0.0334638860F, - 0.0341629474F, 0.0348690586F, 0.0355822122F, 0.0363024004F, - 0.0370296157F, 0.0377638502F, 0.0385050960F, 0.0392533451F, - 0.0400085896F, 0.0407708211F, 0.0415400315F, 0.0423162123F, - 0.0430993552F, 0.0438894515F, 0.0446864926F, 0.0454904698F, - 0.0463013742F, 0.0471191969F, 0.0479439288F, 0.0487755607F, - 0.0496140836F, 0.0504594879F, 0.0513117642F, 0.0521709031F, - 0.0530368949F, 0.0539097297F, 0.0547893979F, 0.0556758894F, - 0.0565691941F, 0.0574693019F, 0.0583762026F, 0.0592898858F, - 0.0602103410F, 0.0611375576F, 0.0620715250F, 0.0630122324F, - 0.0639596688F, 0.0649138234F, 0.0658746848F, 0.0668422421F, - 0.0678164838F, 0.0687973985F, 0.0697849746F, 0.0707792005F, - 0.0717800645F, 0.0727875547F, 0.0738016591F, 0.0748223656F, - 0.0758496620F, 0.0768835359F, 0.0779239751F, 0.0789709668F, - 0.0800244985F, 0.0810845574F, 0.0821511306F, 0.0832242052F, - 0.0843037679F, 0.0853898056F, 0.0864823050F, 0.0875812525F, - 0.0886866347F, 0.0897984378F, 0.0909166480F, 0.0920412513F, - 0.0931722338F, 0.0943095813F, 0.0954532795F, 0.0966033140F, - 0.0977596702F, 0.0989223336F, 0.1000912894F, 0.1012665227F, - 0.1024480185F, 0.1036357616F, 0.1048297369F, 0.1060299290F, - 0.1072363224F, 0.1084489014F, 0.1096676504F, 0.1108925534F, - 0.1121235946F, 0.1133607577F, 0.1146040267F, 0.1158533850F, - 0.1171088163F, 0.1183703040F, 0.1196378312F, 0.1209113812F, - 0.1221909370F, 0.1234764815F, 0.1247679974F, 0.1260654674F, - 0.1273688740F, 0.1286781995F, 0.1299934263F, 0.1313145365F, - 0.1326415121F, 0.1339743349F, 0.1353129866F, 0.1366574490F, - 0.1380077035F, 0.1393637315F, 0.1407255141F, 0.1420930325F, - 0.1434662677F, 0.1448452004F, 0.1462298115F, 0.1476200814F, - 0.1490159906F, 0.1504175195F, 0.1518246482F, 0.1532373569F, - 0.1546556253F, 0.1560794333F, 0.1575087606F, 0.1589435866F, - 0.1603838909F, 0.1618296526F, 0.1632808509F, 0.1647374648F, - 0.1661994731F, 0.1676668546F, 0.1691395880F, 0.1706176516F, - 0.1721010238F, 0.1735896829F, 0.1750836068F, 0.1765827736F, - 0.1780871610F, 0.1795967468F, 0.1811115084F, 0.1826314234F, - 0.1841564689F, 0.1856866221F, 0.1872218600F, 0.1887621595F, - 0.1903074974F, 0.1918578503F, 0.1934131947F, 0.1949735068F, - 0.1965387630F, 0.1981089393F, 0.1996840117F, 0.2012639560F, - 0.2028487479F, 0.2044383630F, 0.2060327766F, 0.2076319642F, - 0.2092359007F, 0.2108445614F, 0.2124579211F, 0.2140759545F, - 0.2156986364F, 0.2173259411F, 0.2189578432F, 0.2205943168F, - 0.2222353361F, 0.2238808751F, 0.2255309076F, 0.2271854073F, - 0.2288443480F, 0.2305077030F, 0.2321754457F, 0.2338475493F, - 0.2355239869F, 0.2372047315F, 0.2388897560F, 0.2405790329F, - 0.2422725350F, 0.2439702347F, 0.2456721043F, 0.2473781159F, - 0.2490882418F, 0.2508024539F, 0.2525207240F, 0.2542430237F, - 0.2559693248F, 0.2576995986F, 0.2594338166F, 0.2611719498F, - 0.2629139695F, 0.2646598466F, 0.2664095520F, 0.2681630564F, - 0.2699203304F, 0.2716813445F, 0.2734460691F, 0.2752144744F, - 0.2769865307F, 0.2787622079F, 0.2805414760F, 0.2823243047F, - 0.2841106637F, 0.2859005227F, 0.2876938509F, 0.2894906179F, - 0.2912907928F, 0.2930943447F, 0.2949012426F, 0.2967114554F, - 0.2985249520F, 0.3003417009F, 0.3021616708F, 0.3039848301F, - 0.3058111471F, 0.3076405901F, 0.3094731273F, 0.3113087266F, - 0.3131473560F, 0.3149889833F, 0.3168335762F, 0.3186811024F, - 0.3205315294F, 0.3223848245F, 0.3242409552F, 0.3260998886F, - 0.3279615918F, 0.3298260319F, 0.3316931758F, 0.3335629903F, - 0.3354354423F, 0.3373104982F, 0.3391881247F, 0.3410682882F, - 0.3429509551F, 0.3448360917F, 0.3467236642F, 0.3486136387F, - 0.3505059811F, 0.3524006575F, 0.3542976336F, 0.3561968753F, - 0.3580983482F, 0.3600020179F, 0.3619078499F, 0.3638158096F, - 0.3657258625F, 0.3676379737F, 0.3695521086F, 0.3714682321F, - 0.3733863094F, 0.3753063055F, 0.3772281852F, 0.3791519134F, - 0.3810774548F, 0.3830047742F, 0.3849338362F, 0.3868646053F, - 0.3887970459F, 0.3907311227F, 0.3926667998F, 0.3946040417F, - 0.3965428125F, 0.3984830765F, 0.4004247978F, 0.4023679403F, - 0.4043124683F, 0.4062583455F, 0.4082055359F, 0.4101540034F, - 0.4121037117F, 0.4140546246F, 0.4160067058F, 0.4179599190F, - 0.4199142277F, 0.4218695956F, 0.4238259861F, 0.4257833627F, - 0.4277416888F, 0.4297009279F, 0.4316610433F, 0.4336219983F, - 0.4355837562F, 0.4375462803F, 0.4395095337F, 0.4414734797F, - 0.4434380815F, 0.4454033021F, 0.4473691046F, 0.4493354521F, - 0.4513023078F, 0.4532696345F, 0.4552373954F, 0.4572055533F, - 0.4591740713F, 0.4611429123F, 0.4631120393F, 0.4650814151F, - 0.4670510028F, 0.4690207650F, 0.4709906649F, 0.4729606651F, - 0.4749307287F, 0.4769008185F, 0.4788708972F, 0.4808409279F, - 0.4828108732F, 0.4847806962F, 0.4867503597F, 0.4887198264F, - 0.4906890593F, 0.4926580213F, 0.4946266753F, 0.4965949840F, - 0.4985629105F, 0.5005304176F, 0.5024974683F, 0.5044640255F, - 0.5064300522F, 0.5083955114F, 0.5103603659F, 0.5123245790F, - 0.5142881136F, 0.5162509328F, 0.5182129997F, 0.5201742774F, - 0.5221347290F, 0.5240943178F, 0.5260530070F, 0.5280107598F, - 0.5299675395F, 0.5319233095F, 0.5338780330F, 0.5358316736F, - 0.5377841946F, 0.5397355596F, 0.5416857320F, 0.5436346755F, - 0.5455823538F, 0.5475287304F, 0.5494737691F, 0.5514174337F, - 0.5533596881F, 0.5553004962F, 0.5572398218F, 0.5591776291F, - 0.5611138821F, 0.5630485449F, 0.5649815818F, 0.5669129570F, - 0.5688426349F, 0.5707705799F, 0.5726967564F, 0.5746211290F, - 0.5765436624F, 0.5784643212F, 0.5803830702F, 0.5822998743F, - 0.5842146984F, 0.5861275076F, 0.5880382669F, 0.5899469416F, - 0.5918534968F, 0.5937578981F, 0.5956601107F, 0.5975601004F, - 0.5994578326F, 0.6013532732F, 0.6032463880F, 0.6051371429F, - 0.6070255039F, 0.6089114372F, 0.6107949090F, 0.6126758856F, - 0.6145543334F, 0.6164302191F, 0.6183035092F, 0.6201741706F, - 0.6220421700F, 0.6239074745F, 0.6257700513F, 0.6276298674F, - 0.6294868903F, 0.6313410873F, 0.6331924262F, 0.6350408745F, - 0.6368864001F, 0.6387289710F, 0.6405685552F, 0.6424051209F, - 0.6442386364F, 0.6460690702F, 0.6478963910F, 0.6497205673F, - 0.6515415682F, 0.6533593625F, 0.6551739194F, 0.6569852082F, - 0.6587931984F, 0.6605978593F, 0.6623991609F, 0.6641970728F, - 0.6659915652F, 0.6677826081F, 0.6695701718F, 0.6713542268F, - 0.6731347437F, 0.6749116932F, 0.6766850461F, 0.6784547736F, - 0.6802208469F, 0.6819832374F, 0.6837419164F, 0.6854968559F, - 0.6872480275F, 0.6889954034F, 0.6907389556F, 0.6924786566F, - 0.6942144788F, 0.6959463950F, 0.6976743780F, 0.6993984008F, - 0.7011184365F, 0.7028344587F, 0.7045464407F, 0.7062543564F, - 0.7079581796F, 0.7096578844F, 0.7113534450F, 0.7130448359F, - 0.7147320316F, 0.7164150070F, 0.7180937371F, 0.7197681970F, - 0.7214383620F, 0.7231042077F, 0.7247657098F, 0.7264228443F, - 0.7280755871F, 0.7297239147F, 0.7313678035F, 0.7330072301F, - 0.7346421715F, 0.7362726046F, 0.7378985069F, 0.7395198556F, - 0.7411366285F, 0.7427488034F, 0.7443563584F, 0.7459592717F, - 0.7475575218F, 0.7491510873F, 0.7507399471F, 0.7523240803F, - 0.7539034661F, 0.7554780839F, 0.7570479136F, 0.7586129349F, - 0.7601731279F, 0.7617284730F, 0.7632789506F, 0.7648245416F, - 0.7663652267F, 0.7679009872F, 0.7694318044F, 0.7709576599F, - 0.7724785354F, 0.7739944130F, 0.7755052749F, 0.7770111035F, - 0.7785118815F, 0.7800075916F, 0.7814982170F, 0.7829837410F, - 0.7844641472F, 0.7859394191F, 0.7874095408F, 0.7888744965F, - 0.7903342706F, 0.7917888476F, 0.7932382124F, 0.7946823501F, - 0.7961212460F, 0.7975548855F, 0.7989832544F, 0.8004063386F, - 0.8018241244F, 0.8032365981F, 0.8046437463F, 0.8060455560F, - 0.8074420141F, 0.8088331080F, 0.8102188253F, 0.8115991536F, - 0.8129740810F, 0.8143435957F, 0.8157076861F, 0.8170663409F, - 0.8184195489F, 0.8197672994F, 0.8211095817F, 0.8224463853F, - 0.8237777001F, 0.8251035161F, 0.8264238235F, 0.8277386129F, - 0.8290478750F, 0.8303516008F, 0.8316497814F, 0.8329424083F, - 0.8342294731F, 0.8355109677F, 0.8367868841F, 0.8380572148F, - 0.8393219523F, 0.8405810893F, 0.8418346190F, 0.8430825345F, - 0.8443248294F, 0.8455614974F, 0.8467925323F, 0.8480179285F, - 0.8492376802F, 0.8504517822F, 0.8516602292F, 0.8528630164F, - 0.8540601391F, 0.8552515928F, 0.8564373733F, 0.8576174766F, - 0.8587918990F, 0.8599606368F, 0.8611236868F, 0.8622810460F, - 0.8634327113F, 0.8645786802F, 0.8657189504F, 0.8668535195F, - 0.8679823857F, 0.8691055472F, 0.8702230025F, 0.8713347503F, - 0.8724407896F, 0.8735411194F, 0.8746357394F, 0.8757246489F, - 0.8768078479F, 0.8778853364F, 0.8789571146F, 0.8800231832F, - 0.8810835427F, 0.8821381942F, 0.8831871387F, 0.8842303777F, - 0.8852679127F, 0.8862997456F, 0.8873258784F, 0.8883463132F, - 0.8893610527F, 0.8903700994F, 0.8913734562F, 0.8923711263F, - 0.8933631129F, 0.8943494196F, 0.8953300500F, 0.8963050083F, - 0.8972742985F, 0.8982379249F, 0.8991958922F, 0.9001482052F, - 0.9010948688F, 0.9020358883F, 0.9029712690F, 0.9039010165F, - 0.9048251367F, 0.9057436357F, 0.9066565195F, 0.9075637946F, - 0.9084654678F, 0.9093615456F, 0.9102520353F, 0.9111369440F, - 0.9120162792F, 0.9128900484F, 0.9137582595F, 0.9146209204F, - 0.9154780394F, 0.9163296248F, 0.9171756853F, 0.9180162296F, - 0.9188512667F, 0.9196808057F, 0.9205048559F, 0.9213234270F, - 0.9221365285F, 0.9229441704F, 0.9237463629F, 0.9245431160F, - 0.9253344404F, 0.9261203465F, 0.9269008453F, 0.9276759477F, - 0.9284456648F, 0.9292100080F, 0.9299689889F, 0.9307226190F, - 0.9314709103F, 0.9322138747F, 0.9329515245F, 0.9336838721F, - 0.9344109300F, 0.9351327108F, 0.9358492275F, 0.9365604931F, - 0.9372665208F, 0.9379673239F, 0.9386629160F, 0.9393533107F, - 0.9400385220F, 0.9407185637F, 0.9413934501F, 0.9420631954F, - 0.9427278141F, 0.9433873208F, 0.9440417304F, 0.9446910576F, - 0.9453353176F, 0.9459745255F, 0.9466086968F, 0.9472378469F, - 0.9478619915F, 0.9484811463F, 0.9490953274F, 0.9497045506F, - 0.9503088323F, 0.9509081888F, 0.9515026365F, 0.9520921921F, - 0.9526768723F, 0.9532566940F, 0.9538316742F, 0.9544018300F, - 0.9549671786F, 0.9555277375F, 0.9560835241F, 0.9566345562F, - 0.9571808513F, 0.9577224275F, 0.9582593027F, 0.9587914949F, - 0.9593190225F, 0.9598419038F, 0.9603601571F, 0.9608738012F, - 0.9613828546F, 0.9618873361F, 0.9623872646F, 0.9628826591F, - 0.9633735388F, 0.9638599227F, 0.9643418303F, 0.9648192808F, - 0.9652922939F, 0.9657608890F, 0.9662250860F, 0.9666849046F, - 0.9671403646F, 0.9675914861F, 0.9680382891F, 0.9684807937F, - 0.9689190202F, 0.9693529890F, 0.9697827203F, 0.9702082347F, - 0.9706295529F, 0.9710466953F, 0.9714596828F, 0.9718685362F, - 0.9722732762F, 0.9726739240F, 0.9730705005F, 0.9734630267F, - 0.9738515239F, 0.9742360134F, 0.9746165163F, 0.9749930540F, - 0.9753656481F, 0.9757343198F, 0.9760990909F, 0.9764599829F, - 0.9768170175F, 0.9771702164F, 0.9775196013F, 0.9778651941F, - 0.9782070167F, 0.9785450909F, 0.9788794388F, 0.9792100824F, - 0.9795370437F, 0.9798603449F, 0.9801800080F, 0.9804960554F, - 0.9808085092F, 0.9811173916F, 0.9814227251F, 0.9817245318F, - 0.9820228343F, 0.9823176549F, 0.9826090160F, 0.9828969402F, - 0.9831814498F, 0.9834625674F, 0.9837403156F, 0.9840147169F, - 0.9842857939F, 0.9845535692F, 0.9848180654F, 0.9850793052F, - 0.9853373113F, 0.9855921062F, 0.9858437127F, 0.9860921535F, - 0.9863374512F, 0.9865796287F, 0.9868187085F, 0.9870547136F, - 0.9872876664F, 0.9875175899F, 0.9877445067F, 0.9879684396F, - 0.9881894112F, 0.9884074444F, 0.9886225619F, 0.9888347863F, - 0.9890441404F, 0.9892506468F, 0.9894543284F, 0.9896552077F, - 0.9898533074F, 0.9900486502F, 0.9902412587F, 0.9904311555F, - 0.9906183633F, 0.9908029045F, 0.9909848019F, 0.9911640779F, - 0.9913407550F, 0.9915148557F, 0.9916864025F, 0.9918554179F, - 0.9920219241F, 0.9921859437F, 0.9923474989F, 0.9925066120F, - 0.9926633054F, 0.9928176012F, 0.9929695218F, 0.9931190891F, - 0.9932663254F, 0.9934112527F, 0.9935538932F, 0.9936942686F, - 0.9938324012F, 0.9939683126F, 0.9941020248F, 0.9942335597F, - 0.9943629388F, 0.9944901841F, 0.9946153170F, 0.9947383593F, - 0.9948593325F, 0.9949782579F, 0.9950951572F, 0.9952100516F, - 0.9953229625F, 0.9954339111F, 0.9955429186F, 0.9956500062F, - 0.9957551948F, 0.9958585056F, 0.9959599593F, 0.9960595769F, - 0.9961573792F, 0.9962533869F, 0.9963476206F, 0.9964401009F, - 0.9965308483F, 0.9966198833F, 0.9967072261F, 0.9967928971F, - 0.9968769164F, 0.9969593041F, 0.9970400804F, 0.9971192651F, - 0.9971968781F, 0.9972729391F, 0.9973474680F, 0.9974204842F, - 0.9974920074F, 0.9975620569F, 0.9976306521F, 0.9976978122F, - 0.9977635565F, 0.9978279039F, 0.9978908736F, 0.9979524842F, - 0.9980127547F, 0.9980717037F, 0.9981293499F, 0.9981857116F, - 0.9982408073F, 0.9982946554F, 0.9983472739F, 0.9983986810F, - 0.9984488947F, 0.9984979328F, 0.9985458132F, 0.9985925534F, - 0.9986381711F, 0.9986826838F, 0.9987261086F, 0.9987684630F, - 0.9988097640F, 0.9988500286F, 0.9988892738F, 0.9989275163F, - 0.9989647727F, 0.9990010597F, 0.9990363938F, 0.9990707911F, - 0.9991042679F, 0.9991368404F, 0.9991685244F, 0.9991993358F, - 0.9992292905F, 0.9992584038F, 0.9992866914F, 0.9993141686F, - 0.9993408506F, 0.9993667526F, 0.9993918895F, 0.9994162761F, - 0.9994399273F, 0.9994628576F, 0.9994850815F, 0.9995066133F, - 0.9995274672F, 0.9995476574F, 0.9995671978F, 0.9995861021F, - 0.9996043841F, 0.9996220573F, 0.9996391352F, 0.9996556310F, - 0.9996715579F, 0.9996869288F, 0.9997017568F, 0.9997160543F, - 0.9997298342F, 0.9997431088F, 0.9997558905F, 0.9997681914F, - 0.9997800236F, 0.9997913990F, 0.9998023292F, 0.9998128261F, - 0.9998229009F, 0.9998325650F, 0.9998418296F, 0.9998507058F, - 0.9998592044F, 0.9998673362F, 0.9998751117F, 0.9998825415F, - 0.9998896358F, 0.9998964047F, 0.9999028584F, 0.9999090066F, - 0.9999148590F, 0.9999204253F, 0.9999257148F, 0.9999307368F, - 0.9999355003F, 0.9999400144F, 0.9999442878F, 0.9999483293F, - 0.9999521472F, 0.9999557499F, 0.9999591457F, 0.9999623426F, - 0.9999653483F, 0.9999681708F, 0.9999708175F, 0.9999732959F, - 0.9999756132F, 0.9999777765F, 0.9999797928F, 0.9999816688F, - 0.9999834113F, 0.9999850266F, 0.9999865211F, 0.9999879009F, - 0.9999891721F, 0.9999903405F, 0.9999914118F, 0.9999923914F, - 0.9999932849F, 0.9999940972F, 0.9999948336F, 0.9999954989F, - 0.9999960978F, 0.9999966349F, 0.9999971146F, 0.9999975411F, - 0.9999979185F, 0.9999982507F, 0.9999985414F, 0.9999987944F, - 0.9999990129F, 0.9999992003F, 0.9999993596F, 0.9999994939F, - 0.9999996059F, 0.9999996981F, 0.9999997732F, 0.9999998333F, - 0.9999998805F, 0.9999999170F, 0.9999999444F, 0.9999999643F, - 0.9999999784F, 0.9999999878F, 0.9999999937F, 0.9999999972F, - 0.9999999990F, 0.9999999997F, 1.0000000000F, 1.0000000000F, -}; - -static const float vwin4096[2048] = { - 0.0000002310F, 0.0000020791F, 0.0000057754F, 0.0000113197F, - 0.0000187121F, 0.0000279526F, 0.0000390412F, 0.0000519777F, - 0.0000667623F, 0.0000833949F, 0.0001018753F, 0.0001222036F, - 0.0001443798F, 0.0001684037F, 0.0001942754F, 0.0002219947F, - 0.0002515616F, 0.0002829761F, 0.0003162380F, 0.0003513472F, - 0.0003883038F, 0.0004271076F, 0.0004677584F, 0.0005102563F, - 0.0005546011F, 0.0006007928F, 0.0006488311F, 0.0006987160F, - 0.0007504474F, 0.0008040251F, 0.0008594490F, 0.0009167191F, - 0.0009758351F, 0.0010367969F, 0.0010996044F, 0.0011642574F, - 0.0012307558F, 0.0012990994F, 0.0013692880F, 0.0014413216F, - 0.0015151998F, 0.0015909226F, 0.0016684898F, 0.0017479011F, - 0.0018291565F, 0.0019122556F, 0.0019971983F, 0.0020839845F, - 0.0021726138F, 0.0022630861F, 0.0023554012F, 0.0024495588F, - 0.0025455588F, 0.0026434008F, 0.0027430847F, 0.0028446103F, - 0.0029479772F, 0.0030531853F, 0.0031602342F, 0.0032691238F, - 0.0033798538F, 0.0034924239F, 0.0036068338F, 0.0037230833F, - 0.0038411721F, 0.0039610999F, 0.0040828664F, 0.0042064714F, - 0.0043319145F, 0.0044591954F, 0.0045883139F, 0.0047192696F, - 0.0048520622F, 0.0049866914F, 0.0051231569F, 0.0052614583F, - 0.0054015953F, 0.0055435676F, 0.0056873748F, 0.0058330166F, - 0.0059804926F, 0.0061298026F, 0.0062809460F, 0.0064339226F, - 0.0065887320F, 0.0067453738F, 0.0069038476F, 0.0070641531F, - 0.0072262899F, 0.0073902575F, 0.0075560556F, 0.0077236838F, - 0.0078931417F, 0.0080644288F, 0.0082375447F, 0.0084124891F, - 0.0085892615F, 0.0087678614F, 0.0089482885F, 0.0091305422F, - 0.0093146223F, 0.0095005281F, 0.0096882592F, 0.0098778153F, - 0.0100691958F, 0.0102624002F, 0.0104574281F, 0.0106542791F, - 0.0108529525F, 0.0110534480F, 0.0112557651F, 0.0114599032F, - 0.0116658618F, 0.0118736405F, 0.0120832387F, 0.0122946560F, - 0.0125078917F, 0.0127229454F, 0.0129398166F, 0.0131585046F, - 0.0133790090F, 0.0136013292F, 0.0138254647F, 0.0140514149F, - 0.0142791792F, 0.0145087572F, 0.0147401481F, 0.0149733515F, - 0.0152083667F, 0.0154451932F, 0.0156838304F, 0.0159242777F, - 0.0161665345F, 0.0164106001F, 0.0166564741F, 0.0169041557F, - 0.0171536443F, 0.0174049393F, 0.0176580401F, 0.0179129461F, - 0.0181696565F, 0.0184281708F, 0.0186884883F, 0.0189506084F, - 0.0192145303F, 0.0194802535F, 0.0197477772F, 0.0200171008F, - 0.0202882236F, 0.0205611449F, 0.0208358639F, 0.0211123801F, - 0.0213906927F, 0.0216708011F, 0.0219527043F, 0.0222364019F, - 0.0225218930F, 0.0228091769F, 0.0230982529F, 0.0233891203F, - 0.0236817782F, 0.0239762259F, 0.0242724628F, 0.0245704880F, - 0.0248703007F, 0.0251719002F, 0.0254752858F, 0.0257804565F, - 0.0260874117F, 0.0263961506F, 0.0267066722F, 0.0270189760F, - 0.0273330609F, 0.0276489263F, 0.0279665712F, 0.0282859949F, - 0.0286071966F, 0.0289301753F, 0.0292549303F, 0.0295814607F, - 0.0299097656F, 0.0302398442F, 0.0305716957F, 0.0309053191F, - 0.0312407135F, 0.0315778782F, 0.0319168122F, 0.0322575145F, - 0.0325999844F, 0.0329442209F, 0.0332902231F, 0.0336379900F, - 0.0339875208F, 0.0343388146F, 0.0346918703F, 0.0350466871F, - 0.0354032640F, 0.0357616000F, 0.0361216943F, 0.0364835458F, - 0.0368471535F, 0.0372125166F, 0.0375796339F, 0.0379485046F, - 0.0383191276F, 0.0386915020F, 0.0390656267F, 0.0394415008F, - 0.0398191231F, 0.0401984927F, 0.0405796086F, 0.0409624698F, - 0.0413470751F, 0.0417334235F, 0.0421215141F, 0.0425113457F, - 0.0429029172F, 0.0432962277F, 0.0436912760F, 0.0440880610F, - 0.0444865817F, 0.0448868370F, 0.0452888257F, 0.0456925468F, - 0.0460979992F, 0.0465051816F, 0.0469140931F, 0.0473247325F, - 0.0477370986F, 0.0481511902F, 0.0485670064F, 0.0489845458F, - 0.0494038074F, 0.0498247899F, 0.0502474922F, 0.0506719131F, - 0.0510980514F, 0.0515259060F, 0.0519554756F, 0.0523867590F, - 0.0528197550F, 0.0532544624F, 0.0536908800F, 0.0541290066F, - 0.0545688408F, 0.0550103815F, 0.0554536274F, 0.0558985772F, - 0.0563452297F, 0.0567935837F, 0.0572436377F, 0.0576953907F, - 0.0581488412F, 0.0586039880F, 0.0590608297F, 0.0595193651F, - 0.0599795929F, 0.0604415117F, 0.0609051202F, 0.0613704170F, - 0.0618374009F, 0.0623060704F, 0.0627764243F, 0.0632484611F, - 0.0637221795F, 0.0641975781F, 0.0646746555F, 0.0651534104F, - 0.0656338413F, 0.0661159469F, 0.0665997257F, 0.0670851763F, - 0.0675722973F, 0.0680610873F, 0.0685515448F, 0.0690436684F, - 0.0695374567F, 0.0700329081F, 0.0705300213F, 0.0710287947F, - 0.0715292269F, 0.0720313163F, 0.0725350616F, 0.0730404612F, - 0.0735475136F, 0.0740562172F, 0.0745665707F, 0.0750785723F, - 0.0755922207F, 0.0761075143F, 0.0766244515F, 0.0771430307F, - 0.0776632505F, 0.0781851092F, 0.0787086052F, 0.0792337371F, - 0.0797605032F, 0.0802889018F, 0.0808189315F, 0.0813505905F, - 0.0818838773F, 0.0824187903F, 0.0829553277F, 0.0834934881F, - 0.0840332697F, 0.0845746708F, 0.0851176899F, 0.0856623252F, - 0.0862085751F, 0.0867564379F, 0.0873059119F, 0.0878569954F, - 0.0884096867F, 0.0889639840F, 0.0895198858F, 0.0900773902F, - 0.0906364955F, 0.0911972000F, 0.0917595019F, 0.0923233995F, - 0.0928888909F, 0.0934559745F, 0.0940246485F, 0.0945949110F, - 0.0951667604F, 0.0957401946F, 0.0963152121F, 0.0968918109F, - 0.0974699893F, 0.0980497454F, 0.0986310773F, 0.0992139832F, - 0.0997984614F, 0.1003845098F, 0.1009721267F, 0.1015613101F, - 0.1021520582F, 0.1027443692F, 0.1033382410F, 0.1039336718F, - 0.1045306597F, 0.1051292027F, 0.1057292990F, 0.1063309466F, - 0.1069341435F, 0.1075388878F, 0.1081451776F, 0.1087530108F, - 0.1093623856F, 0.1099732998F, 0.1105857516F, 0.1111997389F, - 0.1118152597F, 0.1124323121F, 0.1130508939F, 0.1136710032F, - 0.1142926379F, 0.1149157960F, 0.1155404755F, 0.1161666742F, - 0.1167943901F, 0.1174236211F, 0.1180543652F, 0.1186866202F, - 0.1193203841F, 0.1199556548F, 0.1205924300F, 0.1212307078F, - 0.1218704860F, 0.1225117624F, 0.1231545349F, 0.1237988013F, - 0.1244445596F, 0.1250918074F, 0.1257405427F, 0.1263907632F, - 0.1270424667F, 0.1276956512F, 0.1283503142F, 0.1290064537F, - 0.1296640674F, 0.1303231530F, 0.1309837084F, 0.1316457312F, - 0.1323092193F, 0.1329741703F, 0.1336405820F, 0.1343084520F, - 0.1349777782F, 0.1356485582F, 0.1363207897F, 0.1369944704F, - 0.1376695979F, 0.1383461700F, 0.1390241842F, 0.1397036384F, - 0.1403845300F, 0.1410668567F, 0.1417506162F, 0.1424358061F, - 0.1431224240F, 0.1438104674F, 0.1444999341F, 0.1451908216F, - 0.1458831274F, 0.1465768492F, 0.1472719844F, 0.1479685308F, - 0.1486664857F, 0.1493658468F, 0.1500666115F, 0.1507687775F, - 0.1514723422F, 0.1521773031F, 0.1528836577F, 0.1535914035F, - 0.1543005380F, 0.1550110587F, 0.1557229631F, 0.1564362485F, - 0.1571509124F, 0.1578669524F, 0.1585843657F, 0.1593031499F, - 0.1600233024F, 0.1607448205F, 0.1614677017F, 0.1621919433F, - 0.1629175428F, 0.1636444975F, 0.1643728047F, 0.1651024619F, - 0.1658334665F, 0.1665658156F, 0.1672995067F, 0.1680345371F, - 0.1687709041F, 0.1695086050F, 0.1702476372F, 0.1709879978F, - 0.1717296843F, 0.1724726938F, 0.1732170237F, 0.1739626711F, - 0.1747096335F, 0.1754579079F, 0.1762074916F, 0.1769583819F, - 0.1777105760F, 0.1784640710F, 0.1792188642F, 0.1799749529F, - 0.1807323340F, 0.1814910049F, 0.1822509628F, 0.1830122046F, - 0.1837747277F, 0.1845385292F, 0.1853036062F, 0.1860699558F, - 0.1868375751F, 0.1876064613F, 0.1883766114F, 0.1891480226F, - 0.1899206919F, 0.1906946164F, 0.1914697932F, 0.1922462194F, - 0.1930238919F, 0.1938028079F, 0.1945829643F, 0.1953643583F, - 0.1961469868F, 0.1969308468F, 0.1977159353F, 0.1985022494F, - 0.1992897859F, 0.2000785420F, 0.2008685145F, 0.2016597005F, - 0.2024520968F, 0.2032457005F, 0.2040405084F, 0.2048365175F, - 0.2056337247F, 0.2064321269F, 0.2072317211F, 0.2080325041F, - 0.2088344727F, 0.2096376240F, 0.2104419547F, 0.2112474618F, - 0.2120541420F, 0.2128619923F, 0.2136710094F, 0.2144811902F, - 0.2152925315F, 0.2161050301F, 0.2169186829F, 0.2177334866F, - 0.2185494381F, 0.2193665340F, 0.2201847712F, 0.2210041465F, - 0.2218246565F, 0.2226462981F, 0.2234690680F, 0.2242929629F, - 0.2251179796F, 0.2259441147F, 0.2267713650F, 0.2275997272F, - 0.2284291979F, 0.2292597739F, 0.2300914518F, 0.2309242283F, - 0.2317581001F, 0.2325930638F, 0.2334291160F, 0.2342662534F, - 0.2351044727F, 0.2359437703F, 0.2367841431F, 0.2376255875F, - 0.2384681001F, 0.2393116776F, 0.2401563165F, 0.2410020134F, - 0.2418487649F, 0.2426965675F, 0.2435454178F, 0.2443953122F, - 0.2452462474F, 0.2460982199F, 0.2469512262F, 0.2478052628F, - 0.2486603262F, 0.2495164129F, 0.2503735194F, 0.2512316421F, - 0.2520907776F, 0.2529509222F, 0.2538120726F, 0.2546742250F, - 0.2555373760F, 0.2564015219F, 0.2572666593F, 0.2581327845F, - 0.2589998939F, 0.2598679840F, 0.2607370510F, 0.2616070916F, - 0.2624781019F, 0.2633500783F, 0.2642230173F, 0.2650969152F, - 0.2659717684F, 0.2668475731F, 0.2677243257F, 0.2686020226F, - 0.2694806601F, 0.2703602344F, 0.2712407419F, 0.2721221789F, - 0.2730045417F, 0.2738878265F, 0.2747720297F, 0.2756571474F, - 0.2765431760F, 0.2774301117F, 0.2783179508F, 0.2792066895F, - 0.2800963240F, 0.2809868505F, 0.2818782654F, 0.2827705647F, - 0.2836637447F, 0.2845578016F, 0.2854527315F, 0.2863485307F, - 0.2872451953F, 0.2881427215F, 0.2890411055F, 0.2899403433F, - 0.2908404312F, 0.2917413654F, 0.2926431418F, 0.2935457567F, - 0.2944492061F, 0.2953534863F, 0.2962585932F, 0.2971645230F, - 0.2980712717F, 0.2989788356F, 0.2998872105F, 0.3007963927F, - 0.3017063781F, 0.3026171629F, 0.3035287430F, 0.3044411145F, - 0.3053542736F, 0.3062682161F, 0.3071829381F, 0.3080984356F, - 0.3090147047F, 0.3099317413F, 0.3108495414F, 0.3117681011F, - 0.3126874163F, 0.3136074830F, 0.3145282972F, 0.3154498548F, - 0.3163721517F, 0.3172951841F, 0.3182189477F, 0.3191434385F, - 0.3200686525F, 0.3209945856F, 0.3219212336F, 0.3228485927F, - 0.3237766585F, 0.3247054271F, 0.3256348943F, 0.3265650560F, - 0.3274959081F, 0.3284274465F, 0.3293596671F, 0.3302925657F, - 0.3312261382F, 0.3321603804F, 0.3330952882F, 0.3340308574F, - 0.3349670838F, 0.3359039634F, 0.3368414919F, 0.3377796651F, - 0.3387184789F, 0.3396579290F, 0.3405980113F, 0.3415387216F, - 0.3424800556F, 0.3434220091F, 0.3443645779F, 0.3453077578F, - 0.3462515446F, 0.3471959340F, 0.3481409217F, 0.3490865036F, - 0.3500326754F, 0.3509794328F, 0.3519267715F, 0.3528746873F, - 0.3538231759F, 0.3547722330F, 0.3557218544F, 0.3566720357F, - 0.3576227727F, 0.3585740610F, 0.3595258964F, 0.3604782745F, - 0.3614311910F, 0.3623846417F, 0.3633386221F, 0.3642931280F, - 0.3652481549F, 0.3662036987F, 0.3671597548F, 0.3681163191F, - 0.3690733870F, 0.3700309544F, 0.3709890167F, 0.3719475696F, - 0.3729066089F, 0.3738661299F, 0.3748261285F, 0.3757866002F, - 0.3767475406F, 0.3777089453F, 0.3786708100F, 0.3796331302F, - 0.3805959014F, 0.3815591194F, 0.3825227796F, 0.3834868777F, - 0.3844514093F, 0.3854163698F, 0.3863817549F, 0.3873475601F, - 0.3883137810F, 0.3892804131F, 0.3902474521F, 0.3912148933F, - 0.3921827325F, 0.3931509650F, 0.3941195865F, 0.3950885925F, - 0.3960579785F, 0.3970277400F, 0.3979978725F, 0.3989683716F, - 0.3999392328F, 0.4009104516F, 0.4018820234F, 0.4028539438F, - 0.4038262084F, 0.4047988125F, 0.4057717516F, 0.4067450214F, - 0.4077186172F, 0.4086925345F, 0.4096667688F, 0.4106413155F, - 0.4116161703F, 0.4125913284F, 0.4135667854F, 0.4145425368F, - 0.4155185780F, 0.4164949044F, 0.4174715116F, 0.4184483949F, - 0.4194255498F, 0.4204029718F, 0.4213806563F, 0.4223585987F, - 0.4233367946F, 0.4243152392F, 0.4252939281F, 0.4262728566F, - 0.4272520202F, 0.4282314144F, 0.4292110345F, 0.4301908760F, - 0.4311709343F, 0.4321512047F, 0.4331316828F, 0.4341123639F, - 0.4350932435F, 0.4360743168F, 0.4370555794F, 0.4380370267F, - 0.4390186540F, 0.4400004567F, 0.4409824303F, 0.4419645701F, - 0.4429468716F, 0.4439293300F, 0.4449119409F, 0.4458946996F, - 0.4468776014F, 0.4478606418F, 0.4488438162F, 0.4498271199F, - 0.4508105483F, 0.4517940967F, 0.4527777607F, 0.4537615355F, - 0.4547454165F, 0.4557293991F, 0.4567134786F, 0.4576976505F, - 0.4586819101F, 0.4596662527F, 0.4606506738F, 0.4616351687F, - 0.4626197328F, 0.4636043614F, 0.4645890499F, 0.4655737936F, - 0.4665585880F, 0.4675434284F, 0.4685283101F, 0.4695132286F, - 0.4704981791F, 0.4714831570F, 0.4724681577F, 0.4734531766F, - 0.4744382089F, 0.4754232501F, 0.4764082956F, 0.4773933406F, - 0.4783783806F, 0.4793634108F, 0.4803484267F, 0.4813334237F, - 0.4823183969F, 0.4833033419F, 0.4842882540F, 0.4852731285F, - 0.4862579608F, 0.4872427462F, 0.4882274802F, 0.4892121580F, - 0.4901967751F, 0.4911813267F, 0.4921658083F, 0.4931502151F, - 0.4941345427F, 0.4951187863F, 0.4961029412F, 0.4970870029F, - 0.4980709667F, 0.4990548280F, 0.5000385822F, 0.5010222245F, - 0.5020057505F, 0.5029891553F, 0.5039724345F, 0.5049555834F, - 0.5059385973F, 0.5069214716F, 0.5079042018F, 0.5088867831F, - 0.5098692110F, 0.5108514808F, 0.5118335879F, 0.5128155277F, - 0.5137972956F, 0.5147788869F, 0.5157602971F, 0.5167415215F, - 0.5177225555F, 0.5187033945F, 0.5196840339F, 0.5206644692F, - 0.5216446956F, 0.5226247086F, 0.5236045035F, 0.5245840759F, - 0.5255634211F, 0.5265425344F, 0.5275214114F, 0.5285000474F, - 0.5294784378F, 0.5304565781F, 0.5314344637F, 0.5324120899F, - 0.5333894522F, 0.5343665461F, 0.5353433670F, 0.5363199102F, - 0.5372961713F, 0.5382721457F, 0.5392478287F, 0.5402232159F, - 0.5411983027F, 0.5421730845F, 0.5431475569F, 0.5441217151F, - 0.5450955548F, 0.5460690714F, 0.5470422602F, 0.5480151169F, - 0.5489876368F, 0.5499598155F, 0.5509316484F, 0.5519031310F, - 0.5528742587F, 0.5538450271F, 0.5548154317F, 0.5557854680F, - 0.5567551314F, 0.5577244174F, 0.5586933216F, 0.5596618395F, - 0.5606299665F, 0.5615976983F, 0.5625650302F, 0.5635319580F, - 0.5644984770F, 0.5654645828F, 0.5664302709F, 0.5673955370F, - 0.5683603765F, 0.5693247850F, 0.5702887580F, 0.5712522912F, - 0.5722153800F, 0.5731780200F, 0.5741402069F, 0.5751019362F, - 0.5760632034F, 0.5770240042F, 0.5779843341F, 0.5789441889F, - 0.5799035639F, 0.5808624549F, 0.5818208575F, 0.5827787673F, - 0.5837361800F, 0.5846930910F, 0.5856494961F, 0.5866053910F, - 0.5875607712F, 0.5885156324F, 0.5894699703F, 0.5904237804F, - 0.5913770586F, 0.5923298004F, 0.5932820016F, 0.5942336578F, - 0.5951847646F, 0.5961353179F, 0.5970853132F, 0.5980347464F, - 0.5989836131F, 0.5999319090F, 0.6008796298F, 0.6018267713F, - 0.6027733292F, 0.6037192993F, 0.6046646773F, 0.6056094589F, - 0.6065536400F, 0.6074972162F, 0.6084401833F, 0.6093825372F, - 0.6103242736F, 0.6112653884F, 0.6122058772F, 0.6131457359F, - 0.6140849604F, 0.6150235464F, 0.6159614897F, 0.6168987862F, - 0.6178354318F, 0.6187714223F, 0.6197067535F, 0.6206414213F, - 0.6215754215F, 0.6225087501F, 0.6234414028F, 0.6243733757F, - 0.6253046646F, 0.6262352654F, 0.6271651739F, 0.6280943862F, - 0.6290228982F, 0.6299507057F, 0.6308778048F, 0.6318041913F, - 0.6327298612F, 0.6336548105F, 0.6345790352F, 0.6355025312F, - 0.6364252945F, 0.6373473211F, 0.6382686070F, 0.6391891483F, - 0.6401089409F, 0.6410279808F, 0.6419462642F, 0.6428637869F, - 0.6437805452F, 0.6446965350F, 0.6456117524F, 0.6465261935F, - 0.6474398544F, 0.6483527311F, 0.6492648197F, 0.6501761165F, - 0.6510866174F, 0.6519963186F, 0.6529052162F, 0.6538133064F, - 0.6547205854F, 0.6556270492F, 0.6565326941F, 0.6574375162F, - 0.6583415117F, 0.6592446769F, 0.6601470079F, 0.6610485009F, - 0.6619491521F, 0.6628489578F, 0.6637479143F, 0.6646460177F, - 0.6655432643F, 0.6664396505F, 0.6673351724F, 0.6682298264F, - 0.6691236087F, 0.6700165157F, 0.6709085436F, 0.6717996889F, - 0.6726899478F, 0.6735793167F, 0.6744677918F, 0.6753553697F, - 0.6762420466F, 0.6771278190F, 0.6780126832F, 0.6788966357F, - 0.6797796728F, 0.6806617909F, 0.6815429866F, 0.6824232562F, - 0.6833025961F, 0.6841810030F, 0.6850584731F, 0.6859350031F, - 0.6868105894F, 0.6876852284F, 0.6885589168F, 0.6894316510F, - 0.6903034275F, 0.6911742430F, 0.6920440939F, 0.6929129769F, - 0.6937808884F, 0.6946478251F, 0.6955137837F, 0.6963787606F, - 0.6972427525F, 0.6981057560F, 0.6989677678F, 0.6998287845F, - 0.7006888028F, 0.7015478194F, 0.7024058309F, 0.7032628340F, - 0.7041188254F, 0.7049738019F, 0.7058277601F, 0.7066806969F, - 0.7075326089F, 0.7083834929F, 0.7092333457F, 0.7100821640F, - 0.7109299447F, 0.7117766846F, 0.7126223804F, 0.7134670291F, - 0.7143106273F, 0.7151531721F, 0.7159946602F, 0.7168350885F, - 0.7176744539F, 0.7185127534F, 0.7193499837F, 0.7201861418F, - 0.7210212247F, 0.7218552293F, 0.7226881526F, 0.7235199914F, - 0.7243507428F, 0.7251804039F, 0.7260089715F, 0.7268364426F, - 0.7276628144F, 0.7284880839F, 0.7293122481F, 0.7301353040F, - 0.7309572487F, 0.7317780794F, 0.7325977930F, 0.7334163868F, - 0.7342338579F, 0.7350502033F, 0.7358654202F, 0.7366795059F, - 0.7374924573F, 0.7383042718F, 0.7391149465F, 0.7399244787F, - 0.7407328655F, 0.7415401041F, 0.7423461920F, 0.7431511261F, - 0.7439549040F, 0.7447575227F, 0.7455589797F, 0.7463592723F, - 0.7471583976F, 0.7479563532F, 0.7487531363F, 0.7495487443F, - 0.7503431745F, 0.7511364244F, 0.7519284913F, 0.7527193726F, - 0.7535090658F, 0.7542975683F, 0.7550848776F, 0.7558709910F, - 0.7566559062F, 0.7574396205F, 0.7582221314F, 0.7590034366F, - 0.7597835334F, 0.7605624194F, 0.7613400923F, 0.7621165495F, - 0.7628917886F, 0.7636658072F, 0.7644386030F, 0.7652101735F, - 0.7659805164F, 0.7667496292F, 0.7675175098F, 0.7682841556F, - 0.7690495645F, 0.7698137341F, 0.7705766622F, 0.7713383463F, - 0.7720987844F, 0.7728579741F, 0.7736159132F, 0.7743725994F, - 0.7751280306F, 0.7758822046F, 0.7766351192F, 0.7773867722F, - 0.7781371614F, 0.7788862848F, 0.7796341401F, 0.7803807253F, - 0.7811260383F, 0.7818700769F, 0.7826128392F, 0.7833543230F, - 0.7840945263F, 0.7848334471F, 0.7855710833F, 0.7863074330F, - 0.7870424941F, 0.7877762647F, 0.7885087428F, 0.7892399264F, - 0.7899698137F, 0.7906984026F, 0.7914256914F, 0.7921516780F, - 0.7928763607F, 0.7935997375F, 0.7943218065F, 0.7950425661F, - 0.7957620142F, 0.7964801492F, 0.7971969692F, 0.7979124724F, - 0.7986266570F, 0.7993395214F, 0.8000510638F, 0.8007612823F, - 0.8014701754F, 0.8021777413F, 0.8028839784F, 0.8035888849F, - 0.8042924592F, 0.8049946997F, 0.8056956048F, 0.8063951727F, - 0.8070934020F, 0.8077902910F, 0.8084858381F, 0.8091800419F, - 0.8098729007F, 0.8105644130F, 0.8112545774F, 0.8119433922F, - 0.8126308561F, 0.8133169676F, 0.8140017251F, 0.8146851272F, - 0.8153671726F, 0.8160478598F, 0.8167271874F, 0.8174051539F, - 0.8180817582F, 0.8187569986F, 0.8194308741F, 0.8201033831F, - 0.8207745244F, 0.8214442966F, 0.8221126986F, 0.8227797290F, - 0.8234453865F, 0.8241096700F, 0.8247725781F, 0.8254341097F, - 0.8260942636F, 0.8267530385F, 0.8274104334F, 0.8280664470F, - 0.8287210782F, 0.8293743259F, 0.8300261889F, 0.8306766662F, - 0.8313257566F, 0.8319734591F, 0.8326197727F, 0.8332646963F, - 0.8339082288F, 0.8345503692F, 0.8351911167F, 0.8358304700F, - 0.8364684284F, 0.8371049907F, 0.8377401562F, 0.8383739238F, - 0.8390062927F, 0.8396372618F, 0.8402668305F, 0.8408949977F, - 0.8415217626F, 0.8421471245F, 0.8427710823F, 0.8433936354F, - 0.8440147830F, 0.8446345242F, 0.8452528582F, 0.8458697844F, - 0.8464853020F, 0.8470994102F, 0.8477121084F, 0.8483233958F, - 0.8489332718F, 0.8495417356F, 0.8501487866F, 0.8507544243F, - 0.8513586479F, 0.8519614568F, 0.8525628505F, 0.8531628283F, - 0.8537613897F, 0.8543585341F, 0.8549542611F, 0.8555485699F, - 0.8561414603F, 0.8567329315F, 0.8573229832F, 0.8579116149F, - 0.8584988262F, 0.8590846165F, 0.8596689855F, 0.8602519327F, - 0.8608334577F, 0.8614135603F, 0.8619922399F, 0.8625694962F, - 0.8631453289F, 0.8637197377F, 0.8642927222F, 0.8648642821F, - 0.8654344172F, 0.8660031272F, 0.8665704118F, 0.8671362708F, - 0.8677007039F, 0.8682637109F, 0.8688252917F, 0.8693854460F, - 0.8699441737F, 0.8705014745F, 0.8710573485F, 0.8716117953F, - 0.8721648150F, 0.8727164073F, 0.8732665723F, 0.8738153098F, - 0.8743626197F, 0.8749085021F, 0.8754529569F, 0.8759959840F, - 0.8765375835F, 0.8770777553F, 0.8776164996F, 0.8781538162F, - 0.8786897054F, 0.8792241670F, 0.8797572013F, 0.8802888082F, - 0.8808189880F, 0.8813477407F, 0.8818750664F, 0.8824009653F, - 0.8829254375F, 0.8834484833F, 0.8839701028F, 0.8844902961F, - 0.8850090636F, 0.8855264054F, 0.8860423218F, 0.8865568131F, - 0.8870698794F, 0.8875815212F, 0.8880917386F, 0.8886005319F, - 0.8891079016F, 0.8896138479F, 0.8901183712F, 0.8906214719F, - 0.8911231503F, 0.8916234067F, 0.8921222417F, 0.8926196556F, - 0.8931156489F, 0.8936102219F, 0.8941033752F, 0.8945951092F, - 0.8950854244F, 0.8955743212F, 0.8960618003F, 0.8965478621F, - 0.8970325071F, 0.8975157359F, 0.8979975490F, 0.8984779471F, - 0.8989569307F, 0.8994345004F, 0.8999106568F, 0.9003854005F, - 0.9008587323F, 0.9013306526F, 0.9018011623F, 0.9022702619F, - 0.9027379521F, 0.9032042337F, 0.9036691074F, 0.9041325739F, - 0.9045946339F, 0.9050552882F, 0.9055145376F, 0.9059723828F, - 0.9064288246F, 0.9068838638F, 0.9073375013F, 0.9077897379F, - 0.9082405743F, 0.9086900115F, 0.9091380503F, 0.9095846917F, - 0.9100299364F, 0.9104737854F, 0.9109162397F, 0.9113573001F, - 0.9117969675F, 0.9122352430F, 0.9126721275F, 0.9131076219F, - 0.9135417273F, 0.9139744447F, 0.9144057750F, 0.9148357194F, - 0.9152642787F, 0.9156914542F, 0.9161172468F, 0.9165416576F, - 0.9169646877F, 0.9173863382F, 0.9178066102F, 0.9182255048F, - 0.9186430232F, 0.9190591665F, 0.9194739359F, 0.9198873324F, - 0.9202993574F, 0.9207100120F, 0.9211192973F, 0.9215272147F, - 0.9219337653F, 0.9223389504F, 0.9227427713F, 0.9231452290F, - 0.9235463251F, 0.9239460607F, 0.9243444371F, 0.9247414557F, - 0.9251371177F, 0.9255314245F, 0.9259243774F, 0.9263159778F, - 0.9267062270F, 0.9270951264F, 0.9274826774F, 0.9278688814F, - 0.9282537398F, 0.9286372540F, 0.9290194254F, 0.9294002555F, - 0.9297797458F, 0.9301578976F, 0.9305347125F, 0.9309101919F, - 0.9312843373F, 0.9316571503F, 0.9320286323F, 0.9323987849F, - 0.9327676097F, 0.9331351080F, 0.9335012816F, 0.9338661320F, - 0.9342296607F, 0.9345918694F, 0.9349527596F, 0.9353123330F, - 0.9356705911F, 0.9360275357F, 0.9363831683F, 0.9367374905F, - 0.9370905042F, 0.9374422108F, 0.9377926122F, 0.9381417099F, - 0.9384895057F, 0.9388360014F, 0.9391811985F, 0.9395250989F, - 0.9398677043F, 0.9402090165F, 0.9405490371F, 0.9408877680F, - 0.9412252110F, 0.9415613678F, 0.9418962402F, 0.9422298301F, - 0.9425621392F, 0.9428931695F, 0.9432229226F, 0.9435514005F, - 0.9438786050F, 0.9442045381F, 0.9445292014F, 0.9448525971F, - 0.9451747268F, 0.9454955926F, 0.9458151963F, 0.9461335399F, - 0.9464506253F, 0.9467664545F, 0.9470810293F, 0.9473943517F, - 0.9477064238F, 0.9480172474F, 0.9483268246F, 0.9486351573F, - 0.9489422475F, 0.9492480973F, 0.9495527087F, 0.9498560837F, - 0.9501582243F, 0.9504591325F, 0.9507588105F, 0.9510572603F, - 0.9513544839F, 0.9516504834F, 0.9519452609F, 0.9522388186F, - 0.9525311584F, 0.9528222826F, 0.9531121932F, 0.9534008923F, - 0.9536883821F, 0.9539746647F, 0.9542597424F, 0.9545436171F, - 0.9548262912F, 0.9551077667F, 0.9553880459F, 0.9556671309F, - 0.9559450239F, 0.9562217272F, 0.9564972429F, 0.9567715733F, - 0.9570447206F, 0.9573166871F, 0.9575874749F, 0.9578570863F, - 0.9581255236F, 0.9583927890F, 0.9586588849F, 0.9589238134F, - 0.9591875769F, 0.9594501777F, 0.9597116180F, 0.9599719003F, - 0.9602310267F, 0.9604889995F, 0.9607458213F, 0.9610014942F, - 0.9612560206F, 0.9615094028F, 0.9617616433F, 0.9620127443F, - 0.9622627083F, 0.9625115376F, 0.9627592345F, 0.9630058016F, - 0.9632512411F, 0.9634955555F, 0.9637387471F, 0.9639808185F, - 0.9642217720F, 0.9644616100F, 0.9647003349F, 0.9649379493F, - 0.9651744556F, 0.9654098561F, 0.9656441534F, 0.9658773499F, - 0.9661094480F, 0.9663404504F, 0.9665703593F, 0.9667991774F, - 0.9670269071F, 0.9672535509F, 0.9674791114F, 0.9677035909F, - 0.9679269921F, 0.9681493174F, 0.9683705694F, 0.9685907506F, - 0.9688098636F, 0.9690279108F, 0.9692448948F, 0.9694608182F, - 0.9696756836F, 0.9698894934F, 0.9701022503F, 0.9703139569F, - 0.9705246156F, 0.9707342291F, 0.9709428000F, 0.9711503309F, - 0.9713568243F, 0.9715622829F, 0.9717667093F, 0.9719701060F, - 0.9721724757F, 0.9723738210F, 0.9725741446F, 0.9727734490F, - 0.9729717369F, 0.9731690109F, 0.9733652737F, 0.9735605279F, - 0.9737547762F, 0.9739480212F, 0.9741402656F, 0.9743315120F, - 0.9745217631F, 0.9747110216F, 0.9748992901F, 0.9750865714F, - 0.9752728681F, 0.9754581829F, 0.9756425184F, 0.9758258775F, - 0.9760082627F, 0.9761896768F, 0.9763701224F, 0.9765496024F, - 0.9767281193F, 0.9769056760F, 0.9770822751F, 0.9772579193F, - 0.9774326114F, 0.9776063542F, 0.9777791502F, 0.9779510023F, - 0.9781219133F, 0.9782918858F, 0.9784609226F, 0.9786290264F, - 0.9787962000F, 0.9789624461F, 0.9791277676F, 0.9792921671F, - 0.9794556474F, 0.9796182113F, 0.9797798615F, 0.9799406009F, - 0.9801004321F, 0.9802593580F, 0.9804173813F, 0.9805745049F, - 0.9807307314F, 0.9808860637F, 0.9810405046F, 0.9811940568F, - 0.9813467232F, 0.9814985065F, 0.9816494095F, 0.9817994351F, - 0.9819485860F, 0.9820968650F, 0.9822442750F, 0.9823908186F, - 0.9825364988F, 0.9826813184F, 0.9828252801F, 0.9829683868F, - 0.9831106413F, 0.9832520463F, 0.9833926048F, 0.9835323195F, - 0.9836711932F, 0.9838092288F, 0.9839464291F, 0.9840827969F, - 0.9842183351F, 0.9843530464F, 0.9844869337F, 0.9846199998F, - 0.9847522475F, 0.9848836798F, 0.9850142993F, 0.9851441090F, - 0.9852731117F, 0.9854013101F, 0.9855287073F, 0.9856553058F, - 0.9857811087F, 0.9859061188F, 0.9860303388F, 0.9861537717F, - 0.9862764202F, 0.9863982872F, 0.9865193756F, 0.9866396882F, - 0.9867592277F, 0.9868779972F, 0.9869959993F, 0.9871132370F, - 0.9872297131F, 0.9873454304F, 0.9874603918F, 0.9875746001F, - 0.9876880581F, 0.9878007688F, 0.9879127348F, 0.9880239592F, - 0.9881344447F, 0.9882441941F, 0.9883532104F, 0.9884614962F, - 0.9885690546F, 0.9886758883F, 0.9887820001F, 0.9888873930F, - 0.9889920697F, 0.9890960331F, 0.9891992859F, 0.9893018312F, - 0.9894036716F, 0.9895048100F, 0.9896052493F, 0.9897049923F, - 0.9898040418F, 0.9899024006F, 0.9900000717F, 0.9900970577F, - 0.9901933616F, 0.9902889862F, 0.9903839343F, 0.9904782087F, - 0.9905718122F, 0.9906647477F, 0.9907570180F, 0.9908486259F, - 0.9909395742F, 0.9910298658F, 0.9911195034F, 0.9912084899F, - 0.9912968281F, 0.9913845208F, 0.9914715708F, 0.9915579810F, - 0.9916437540F, 0.9917288928F, 0.9918134001F, 0.9918972788F, - 0.9919805316F, 0.9920631613F, 0.9921451707F, 0.9922265626F, - 0.9923073399F, 0.9923875052F, 0.9924670615F, 0.9925460114F, - 0.9926243577F, 0.9927021033F, 0.9927792508F, 0.9928558032F, - 0.9929317631F, 0.9930071333F, 0.9930819167F, 0.9931561158F, - 0.9932297337F, 0.9933027728F, 0.9933752362F, 0.9934471264F, - 0.9935184462F, 0.9935891985F, 0.9936593859F, 0.9937290112F, - 0.9937980771F, 0.9938665864F, 0.9939345418F, 0.9940019460F, - 0.9940688018F, 0.9941351118F, 0.9942008789F, 0.9942661057F, - 0.9943307950F, 0.9943949494F, 0.9944585717F, 0.9945216645F, - 0.9945842307F, 0.9946462728F, 0.9947077936F, 0.9947687957F, - 0.9948292820F, 0.9948892550F, 0.9949487174F, 0.9950076719F, - 0.9950661212F, 0.9951240679F, 0.9951815148F, 0.9952384645F, - 0.9952949196F, 0.9953508828F, 0.9954063568F, 0.9954613442F, - 0.9955158476F, 0.9955698697F, 0.9956234132F, 0.9956764806F, - 0.9957290746F, 0.9957811978F, 0.9958328528F, 0.9958840423F, - 0.9959347688F, 0.9959850351F, 0.9960348435F, 0.9960841969F, - 0.9961330977F, 0.9961815486F, 0.9962295521F, 0.9962771108F, - 0.9963242274F, 0.9963709043F, 0.9964171441F, 0.9964629494F, - 0.9965083228F, 0.9965532668F, 0.9965977840F, 0.9966418768F, - 0.9966855479F, 0.9967287998F, 0.9967716350F, 0.9968140559F, - 0.9968560653F, 0.9968976655F, 0.9969388591F, 0.9969796485F, - 0.9970200363F, 0.9970600250F, 0.9970996170F, 0.9971388149F, - 0.9971776211F, 0.9972160380F, 0.9972540683F, 0.9972917142F, - 0.9973289783F, 0.9973658631F, 0.9974023709F, 0.9974385042F, - 0.9974742655F, 0.9975096571F, 0.9975446816F, 0.9975793413F, - 0.9976136386F, 0.9976475759F, 0.9976811557F, 0.9977143803F, - 0.9977472521F, 0.9977797736F, 0.9978119470F, 0.9978437748F, - 0.9978752593F, 0.9979064029F, 0.9979372079F, 0.9979676768F, - 0.9979978117F, 0.9980276151F, 0.9980570893F, 0.9980862367F, - 0.9981150595F, 0.9981435600F, 0.9981717406F, 0.9981996035F, - 0.9982271511F, 0.9982543856F, 0.9982813093F, 0.9983079246F, - 0.9983342336F, 0.9983602386F, 0.9983859418F, 0.9984113456F, - 0.9984364522F, 0.9984612638F, 0.9984857825F, 0.9985100108F, - 0.9985339507F, 0.9985576044F, 0.9985809743F, 0.9986040624F, - 0.9986268710F, 0.9986494022F, 0.9986716583F, 0.9986936413F, - 0.9987153535F, 0.9987367969F, 0.9987579738F, 0.9987788864F, - 0.9987995366F, 0.9988199267F, 0.9988400587F, 0.9988599348F, - 0.9988795572F, 0.9988989278F, 0.9989180487F, 0.9989369222F, - 0.9989555501F, 0.9989739347F, 0.9989920780F, 0.9990099820F, - 0.9990276487F, 0.9990450803F, 0.9990622787F, 0.9990792460F, - 0.9990959841F, 0.9991124952F, 0.9991287812F, 0.9991448440F, - 0.9991606858F, 0.9991763084F, 0.9991917139F, 0.9992069042F, - 0.9992218813F, 0.9992366471F, 0.9992512035F, 0.9992655525F, - 0.9992796961F, 0.9992936361F, 0.9993073744F, 0.9993209131F, - 0.9993342538F, 0.9993473987F, 0.9993603494F, 0.9993731080F, - 0.9993856762F, 0.9993980559F, 0.9994102490F, 0.9994222573F, - 0.9994340827F, 0.9994457269F, 0.9994571918F, 0.9994684793F, - 0.9994795910F, 0.9994905288F, 0.9995012945F, 0.9995118898F, - 0.9995223165F, 0.9995325765F, 0.9995426713F, 0.9995526029F, - 0.9995623728F, 0.9995719829F, 0.9995814349F, 0.9995907304F, - 0.9995998712F, 0.9996088590F, 0.9996176954F, 0.9996263821F, - 0.9996349208F, 0.9996433132F, 0.9996515609F, 0.9996596656F, - 0.9996676288F, 0.9996754522F, 0.9996831375F, 0.9996906862F, - 0.9996981000F, 0.9997053804F, 0.9997125290F, 0.9997195474F, - 0.9997264371F, 0.9997331998F, 0.9997398369F, 0.9997463500F, - 0.9997527406F, 0.9997590103F, 0.9997651606F, 0.9997711930F, - 0.9997771089F, 0.9997829098F, 0.9997885973F, 0.9997941728F, - 0.9997996378F, 0.9998049936F, 0.9998102419F, 0.9998153839F, - 0.9998204211F, 0.9998253550F, 0.9998301868F, 0.9998349182F, - 0.9998395503F, 0.9998440847F, 0.9998485226F, 0.9998528654F, - 0.9998571146F, 0.9998612713F, 0.9998653370F, 0.9998693130F, - 0.9998732007F, 0.9998770012F, 0.9998807159F, 0.9998843461F, - 0.9998878931F, 0.9998913581F, 0.9998947424F, 0.9998980473F, - 0.9999012740F, 0.9999044237F, 0.9999074976F, 0.9999104971F, - 0.9999134231F, 0.9999162771F, 0.9999190601F, 0.9999217733F, - 0.9999244179F, 0.9999269950F, 0.9999295058F, 0.9999319515F, - 0.9999343332F, 0.9999366519F, 0.9999389088F, 0.9999411050F, - 0.9999432416F, 0.9999453196F, 0.9999473402F, 0.9999493044F, - 0.9999512132F, 0.9999530677F, 0.9999548690F, 0.9999566180F, - 0.9999583157F, 0.9999599633F, 0.9999615616F, 0.9999631116F, - 0.9999646144F, 0.9999660709F, 0.9999674820F, 0.9999688487F, - 0.9999701719F, 0.9999714526F, 0.9999726917F, 0.9999738900F, - 0.9999750486F, 0.9999761682F, 0.9999772497F, 0.9999782941F, - 0.9999793021F, 0.9999802747F, 0.9999812126F, 0.9999821167F, - 0.9999829878F, 0.9999838268F, 0.9999846343F, 0.9999854113F, - 0.9999861584F, 0.9999868765F, 0.9999875664F, 0.9999882287F, - 0.9999888642F, 0.9999894736F, 0.9999900577F, 0.9999906172F, - 0.9999911528F, 0.9999916651F, 0.9999921548F, 0.9999926227F, - 0.9999930693F, 0.9999934954F, 0.9999939015F, 0.9999942883F, - 0.9999946564F, 0.9999950064F, 0.9999953390F, 0.9999956547F, - 0.9999959541F, 0.9999962377F, 0.9999965062F, 0.9999967601F, - 0.9999969998F, 0.9999972260F, 0.9999974392F, 0.9999976399F, - 0.9999978285F, 0.9999980056F, 0.9999981716F, 0.9999983271F, - 0.9999984724F, 0.9999986081F, 0.9999987345F, 0.9999988521F, - 0.9999989613F, 0.9999990625F, 0.9999991562F, 0.9999992426F, - 0.9999993223F, 0.9999993954F, 0.9999994625F, 0.9999995239F, - 0.9999995798F, 0.9999996307F, 0.9999996768F, 0.9999997184F, - 0.9999997559F, 0.9999997895F, 0.9999998195F, 0.9999998462F, - 0.9999998698F, 0.9999998906F, 0.9999999088F, 0.9999999246F, - 0.9999999383F, 0.9999999500F, 0.9999999600F, 0.9999999684F, - 0.9999999754F, 0.9999999811F, 0.9999999858F, 0.9999999896F, - 0.9999999925F, 0.9999999948F, 0.9999999965F, 0.9999999978F, - 0.9999999986F, 0.9999999992F, 0.9999999996F, 0.9999999998F, - 0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, -}; - -static const float vwin8192[4096] = { - 0.0000000578F, 0.0000005198F, 0.0000014438F, 0.0000028299F, - 0.0000046780F, 0.0000069882F, 0.0000097604F, 0.0000129945F, - 0.0000166908F, 0.0000208490F, 0.0000254692F, 0.0000305515F, - 0.0000360958F, 0.0000421021F, 0.0000485704F, 0.0000555006F, - 0.0000628929F, 0.0000707472F, 0.0000790635F, 0.0000878417F, - 0.0000970820F, 0.0001067842F, 0.0001169483F, 0.0001275744F, - 0.0001386625F, 0.0001502126F, 0.0001622245F, 0.0001746984F, - 0.0001876343F, 0.0002010320F, 0.0002148917F, 0.0002292132F, - 0.0002439967F, 0.0002592421F, 0.0002749493F, 0.0002911184F, - 0.0003077493F, 0.0003248421F, 0.0003423967F, 0.0003604132F, - 0.0003788915F, 0.0003978316F, 0.0004172335F, 0.0004370971F, - 0.0004574226F, 0.0004782098F, 0.0004994587F, 0.0005211694F, - 0.0005433418F, 0.0005659759F, 0.0005890717F, 0.0006126292F, - 0.0006366484F, 0.0006611292F, 0.0006860716F, 0.0007114757F, - 0.0007373414F, 0.0007636687F, 0.0007904576F, 0.0008177080F, - 0.0008454200F, 0.0008735935F, 0.0009022285F, 0.0009313250F, - 0.0009608830F, 0.0009909025F, 0.0010213834F, 0.0010523257F, - 0.0010837295F, 0.0011155946F, 0.0011479211F, 0.0011807090F, - 0.0012139582F, 0.0012476687F, 0.0012818405F, 0.0013164736F, - 0.0013515679F, 0.0013871235F, 0.0014231402F, 0.0014596182F, - 0.0014965573F, 0.0015339576F, 0.0015718190F, 0.0016101415F, - 0.0016489251F, 0.0016881698F, 0.0017278754F, 0.0017680421F, - 0.0018086698F, 0.0018497584F, 0.0018913080F, 0.0019333185F, - 0.0019757898F, 0.0020187221F, 0.0020621151F, 0.0021059690F, - 0.0021502837F, 0.0021950591F, 0.0022402953F, 0.0022859921F, - 0.0023321497F, 0.0023787679F, 0.0024258467F, 0.0024733861F, - 0.0025213861F, 0.0025698466F, 0.0026187676F, 0.0026681491F, - 0.0027179911F, 0.0027682935F, 0.0028190562F, 0.0028702794F, - 0.0029219628F, 0.0029741066F, 0.0030267107F, 0.0030797749F, - 0.0031332994F, 0.0031872841F, 0.0032417289F, 0.0032966338F, - 0.0033519988F, 0.0034078238F, 0.0034641089F, 0.0035208539F, - 0.0035780589F, 0.0036357237F, 0.0036938485F, 0.0037524331F, - 0.0038114775F, 0.0038709817F, 0.0039309456F, 0.0039913692F, - 0.0040522524F, 0.0041135953F, 0.0041753978F, 0.0042376599F, - 0.0043003814F, 0.0043635624F, 0.0044272029F, 0.0044913028F, - 0.0045558620F, 0.0046208806F, 0.0046863585F, 0.0047522955F, - 0.0048186919F, 0.0048855473F, 0.0049528619F, 0.0050206356F, - 0.0050888684F, 0.0051575601F, 0.0052267108F, 0.0052963204F, - 0.0053663890F, 0.0054369163F, 0.0055079025F, 0.0055793474F, - 0.0056512510F, 0.0057236133F, 0.0057964342F, 0.0058697137F, - 0.0059434517F, 0.0060176482F, 0.0060923032F, 0.0061674166F, - 0.0062429883F, 0.0063190183F, 0.0063955066F, 0.0064724532F, - 0.0065498579F, 0.0066277207F, 0.0067060416F, 0.0067848205F, - 0.0068640575F, 0.0069437523F, 0.0070239051F, 0.0071045157F, - 0.0071855840F, 0.0072671102F, 0.0073490940F, 0.0074315355F, - 0.0075144345F, 0.0075977911F, 0.0076816052F, 0.0077658768F, - 0.0078506057F, 0.0079357920F, 0.0080214355F, 0.0081075363F, - 0.0081940943F, 0.0082811094F, 0.0083685816F, 0.0084565108F, - 0.0085448970F, 0.0086337401F, 0.0087230401F, 0.0088127969F, - 0.0089030104F, 0.0089936807F, 0.0090848076F, 0.0091763911F, - 0.0092684311F, 0.0093609276F, 0.0094538805F, 0.0095472898F, - 0.0096411554F, 0.0097354772F, 0.0098302552F, 0.0099254894F, - 0.0100211796F, 0.0101173259F, 0.0102139281F, 0.0103109863F, - 0.0104085002F, 0.0105064700F, 0.0106048955F, 0.0107037766F, - 0.0108031133F, 0.0109029056F, 0.0110031534F, 0.0111038565F, - 0.0112050151F, 0.0113066289F, 0.0114086980F, 0.0115112222F, - 0.0116142015F, 0.0117176359F, 0.0118215252F, 0.0119258695F, - 0.0120306686F, 0.0121359225F, 0.0122416312F, 0.0123477944F, - 0.0124544123F, 0.0125614847F, 0.0126690116F, 0.0127769928F, - 0.0128854284F, 0.0129943182F, 0.0131036623F, 0.0132134604F, - 0.0133237126F, 0.0134344188F, 0.0135455790F, 0.0136571929F, - 0.0137692607F, 0.0138817821F, 0.0139947572F, 0.0141081859F, - 0.0142220681F, 0.0143364037F, 0.0144511927F, 0.0145664350F, - 0.0146821304F, 0.0147982791F, 0.0149148808F, 0.0150319355F, - 0.0151494431F, 0.0152674036F, 0.0153858168F, 0.0155046828F, - 0.0156240014F, 0.0157437726F, 0.0158639962F, 0.0159846723F, - 0.0161058007F, 0.0162273814F, 0.0163494142F, 0.0164718991F, - 0.0165948361F, 0.0167182250F, 0.0168420658F, 0.0169663584F, - 0.0170911027F, 0.0172162987F, 0.0173419462F, 0.0174680452F, - 0.0175945956F, 0.0177215974F, 0.0178490504F, 0.0179769545F, - 0.0181053098F, 0.0182341160F, 0.0183633732F, 0.0184930812F, - 0.0186232399F, 0.0187538494F, 0.0188849094F, 0.0190164200F, - 0.0191483809F, 0.0192807923F, 0.0194136539F, 0.0195469656F, - 0.0196807275F, 0.0198149394F, 0.0199496012F, 0.0200847128F, - 0.0202202742F, 0.0203562853F, 0.0204927460F, 0.0206296561F, - 0.0207670157F, 0.0209048245F, 0.0210430826F, 0.0211817899F, - 0.0213209462F, 0.0214605515F, 0.0216006057F, 0.0217411086F, - 0.0218820603F, 0.0220234605F, 0.0221653093F, 0.0223076066F, - 0.0224503521F, 0.0225935459F, 0.0227371879F, 0.0228812779F, - 0.0230258160F, 0.0231708018F, 0.0233162355F, 0.0234621169F, - 0.0236084459F, 0.0237552224F, 0.0239024462F, 0.0240501175F, - 0.0241982359F, 0.0243468015F, 0.0244958141F, 0.0246452736F, - 0.0247951800F, 0.0249455331F, 0.0250963329F, 0.0252475792F, - 0.0253992720F, 0.0255514111F, 0.0257039965F, 0.0258570281F, - 0.0260105057F, 0.0261644293F, 0.0263187987F, 0.0264736139F, - 0.0266288747F, 0.0267845811F, 0.0269407330F, 0.0270973302F, - 0.0272543727F, 0.0274118604F, 0.0275697930F, 0.0277281707F, - 0.0278869932F, 0.0280462604F, 0.0282059723F, 0.0283661287F, - 0.0285267295F, 0.0286877747F, 0.0288492641F, 0.0290111976F, - 0.0291735751F, 0.0293363965F, 0.0294996617F, 0.0296633706F, - 0.0298275231F, 0.0299921190F, 0.0301571583F, 0.0303226409F, - 0.0304885667F, 0.0306549354F, 0.0308217472F, 0.0309890017F, - 0.0311566989F, 0.0313248388F, 0.0314934211F, 0.0316624459F, - 0.0318319128F, 0.0320018220F, 0.0321721732F, 0.0323429663F, - 0.0325142013F, 0.0326858779F, 0.0328579962F, 0.0330305559F, - 0.0332035570F, 0.0333769994F, 0.0335508829F, 0.0337252074F, - 0.0338999728F, 0.0340751790F, 0.0342508259F, 0.0344269134F, - 0.0346034412F, 0.0347804094F, 0.0349578178F, 0.0351356663F, - 0.0353139548F, 0.0354926831F, 0.0356718511F, 0.0358514588F, - 0.0360315059F, 0.0362119924F, 0.0363929182F, 0.0365742831F, - 0.0367560870F, 0.0369383297F, 0.0371210113F, 0.0373041315F, - 0.0374876902F, 0.0376716873F, 0.0378561226F, 0.0380409961F, - 0.0382263077F, 0.0384120571F, 0.0385982443F, 0.0387848691F, - 0.0389719315F, 0.0391594313F, 0.0393473683F, 0.0395357425F, - 0.0397245537F, 0.0399138017F, 0.0401034866F, 0.0402936080F, - 0.0404841660F, 0.0406751603F, 0.0408665909F, 0.0410584576F, - 0.0412507603F, 0.0414434988F, 0.0416366731F, 0.0418302829F, - 0.0420243282F, 0.0422188088F, 0.0424137246F, 0.0426090755F, - 0.0428048613F, 0.0430010819F, 0.0431977371F, 0.0433948269F, - 0.0435923511F, 0.0437903095F, 0.0439887020F, 0.0441875285F, - 0.0443867889F, 0.0445864830F, 0.0447866106F, 0.0449871717F, - 0.0451881661F, 0.0453895936F, 0.0455914542F, 0.0457937477F, - 0.0459964738F, 0.0461996326F, 0.0464032239F, 0.0466072475F, - 0.0468117032F, 0.0470165910F, 0.0472219107F, 0.0474276622F, - 0.0476338452F, 0.0478404597F, 0.0480475056F, 0.0482549827F, - 0.0484628907F, 0.0486712297F, 0.0488799994F, 0.0490891998F, - 0.0492988306F, 0.0495088917F, 0.0497193830F, 0.0499303043F, - 0.0501416554F, 0.0503534363F, 0.0505656468F, 0.0507782867F, - 0.0509913559F, 0.0512048542F, 0.0514187815F, 0.0516331376F, - 0.0518479225F, 0.0520631358F, 0.0522787775F, 0.0524948475F, - 0.0527113455F, 0.0529282715F, 0.0531456252F, 0.0533634066F, - 0.0535816154F, 0.0538002515F, 0.0540193148F, 0.0542388051F, - 0.0544587222F, 0.0546790660F, 0.0548998364F, 0.0551210331F, - 0.0553426561F, 0.0555647051F, 0.0557871801F, 0.0560100807F, - 0.0562334070F, 0.0564571587F, 0.0566813357F, 0.0569059378F, - 0.0571309649F, 0.0573564168F, 0.0575822933F, 0.0578085942F, - 0.0580353195F, 0.0582624689F, 0.0584900423F, 0.0587180396F, - 0.0589464605F, 0.0591753049F, 0.0594045726F, 0.0596342635F, - 0.0598643774F, 0.0600949141F, 0.0603258735F, 0.0605572555F, - 0.0607890597F, 0.0610212862F, 0.0612539346F, 0.0614870049F, - 0.0617204968F, 0.0619544103F, 0.0621887451F, 0.0624235010F, - 0.0626586780F, 0.0628942758F, 0.0631302942F, 0.0633667331F, - 0.0636035923F, 0.0638408717F, 0.0640785710F, 0.0643166901F, - 0.0645552288F, 0.0647941870F, 0.0650335645F, 0.0652733610F, - 0.0655135765F, 0.0657542108F, 0.0659952636F, 0.0662367348F, - 0.0664786242F, 0.0667209316F, 0.0669636570F, 0.0672068000F, - 0.0674503605F, 0.0676943384F, 0.0679387334F, 0.0681835454F, - 0.0684287742F, 0.0686744196F, 0.0689204814F, 0.0691669595F, - 0.0694138536F, 0.0696611637F, 0.0699088894F, 0.0701570307F, - 0.0704055873F, 0.0706545590F, 0.0709039458F, 0.0711537473F, - 0.0714039634F, 0.0716545939F, 0.0719056387F, 0.0721570975F, - 0.0724089702F, 0.0726612565F, 0.0729139563F, 0.0731670694F, - 0.0734205956F, 0.0736745347F, 0.0739288866F, 0.0741836510F, - 0.0744388277F, 0.0746944166F, 0.0749504175F, 0.0752068301F, - 0.0754636543F, 0.0757208899F, 0.0759785367F, 0.0762365946F, - 0.0764950632F, 0.0767539424F, 0.0770132320F, 0.0772729319F, - 0.0775330418F, 0.0777935616F, 0.0780544909F, 0.0783158298F, - 0.0785775778F, 0.0788397349F, 0.0791023009F, 0.0793652755F, - 0.0796286585F, 0.0798924498F, 0.0801566492F, 0.0804212564F, - 0.0806862712F, 0.0809516935F, 0.0812175231F, 0.0814837597F, - 0.0817504031F, 0.0820174532F, 0.0822849097F, 0.0825527724F, - 0.0828210412F, 0.0830897158F, 0.0833587960F, 0.0836282816F, - 0.0838981724F, 0.0841684682F, 0.0844391688F, 0.0847102740F, - 0.0849817835F, 0.0852536973F, 0.0855260150F, 0.0857987364F, - 0.0860718614F, 0.0863453897F, 0.0866193211F, 0.0868936554F, - 0.0871683924F, 0.0874435319F, 0.0877190737F, 0.0879950175F, - 0.0882713632F, 0.0885481105F, 0.0888252592F, 0.0891028091F, - 0.0893807600F, 0.0896591117F, 0.0899378639F, 0.0902170165F, - 0.0904965692F, 0.0907765218F, 0.0910568740F, 0.0913376258F, - 0.0916187767F, 0.0919003268F, 0.0921822756F, 0.0924646230F, - 0.0927473687F, 0.0930305126F, 0.0933140545F, 0.0935979940F, - 0.0938823310F, 0.0941670653F, 0.0944521966F, 0.0947377247F, - 0.0950236494F, 0.0953099704F, 0.0955966876F, 0.0958838007F, - 0.0961713094F, 0.0964592136F, 0.0967475131F, 0.0970362075F, - 0.0973252967F, 0.0976147805F, 0.0979046585F, 0.0981949307F, - 0.0984855967F, 0.0987766563F, 0.0990681093F, 0.0993599555F, - 0.0996521945F, 0.0999448263F, 0.1002378506F, 0.1005312671F, - 0.1008250755F, 0.1011192757F, 0.1014138675F, 0.1017088505F, - 0.1020042246F, 0.1022999895F, 0.1025961450F, 0.1028926909F, - 0.1031896268F, 0.1034869526F, 0.1037846680F, 0.1040827729F, - 0.1043812668F, 0.1046801497F, 0.1049794213F, 0.1052790813F, - 0.1055791294F, 0.1058795656F, 0.1061803894F, 0.1064816006F, - 0.1067831991F, 0.1070851846F, 0.1073875568F, 0.1076903155F, - 0.1079934604F, 0.1082969913F, 0.1086009079F, 0.1089052101F, - 0.1092098975F, 0.1095149699F, 0.1098204270F, 0.1101262687F, - 0.1104324946F, 0.1107391045F, 0.1110460982F, 0.1113534754F, - 0.1116612359F, 0.1119693793F, 0.1122779055F, 0.1125868142F, - 0.1128961052F, 0.1132057781F, 0.1135158328F, 0.1138262690F, - 0.1141370863F, 0.1144482847F, 0.1147598638F, 0.1150718233F, - 0.1153841631F, 0.1156968828F, 0.1160099822F, 0.1163234610F, - 0.1166373190F, 0.1169515559F, 0.1172661714F, 0.1175811654F, - 0.1178965374F, 0.1182122874F, 0.1185284149F, 0.1188449198F, - 0.1191618018F, 0.1194790606F, 0.1197966960F, 0.1201147076F, - 0.1204330953F, 0.1207518587F, 0.1210709976F, 0.1213905118F, - 0.1217104009F, 0.1220306647F, 0.1223513029F, 0.1226723153F, - 0.1229937016F, 0.1233154615F, 0.1236375948F, 0.1239601011F, - 0.1242829803F, 0.1246062319F, 0.1249298559F, 0.1252538518F, - 0.1255782195F, 0.1259029586F, 0.1262280689F, 0.1265535501F, - 0.1268794019F, 0.1272056241F, 0.1275322163F, 0.1278591784F, - 0.1281865099F, 0.1285142108F, 0.1288422805F, 0.1291707190F, - 0.1294995259F, 0.1298287009F, 0.1301582437F, 0.1304881542F, - 0.1308184319F, 0.1311490766F, 0.1314800881F, 0.1318114660F, - 0.1321432100F, 0.1324753200F, 0.1328077955F, 0.1331406364F, - 0.1334738422F, 0.1338074129F, 0.1341413479F, 0.1344756472F, - 0.1348103103F, 0.1351453370F, 0.1354807270F, 0.1358164801F, - 0.1361525959F, 0.1364890741F, 0.1368259145F, 0.1371631167F, - 0.1375006805F, 0.1378386056F, 0.1381768917F, 0.1385155384F, - 0.1388545456F, 0.1391939129F, 0.1395336400F, 0.1398737266F, - 0.1402141724F, 0.1405549772F, 0.1408961406F, 0.1412376623F, - 0.1415795421F, 0.1419217797F, 0.1422643746F, 0.1426073268F, - 0.1429506358F, 0.1432943013F, 0.1436383231F, 0.1439827008F, - 0.1443274342F, 0.1446725229F, 0.1450179667F, 0.1453637652F, - 0.1457099181F, 0.1460564252F, 0.1464032861F, 0.1467505006F, - 0.1470980682F, 0.1474459888F, 0.1477942620F, 0.1481428875F, - 0.1484918651F, 0.1488411942F, 0.1491908748F, 0.1495409065F, - 0.1498912889F, 0.1502420218F, 0.1505931048F, 0.1509445376F, - 0.1512963200F, 0.1516484516F, 0.1520009321F, 0.1523537612F, - 0.1527069385F, 0.1530604638F, 0.1534143368F, 0.1537685571F, - 0.1541231244F, 0.1544780384F, 0.1548332987F, 0.1551889052F, - 0.1555448574F, 0.1559011550F, 0.1562577978F, 0.1566147853F, - 0.1569721173F, 0.1573297935F, 0.1576878135F, 0.1580461771F, - 0.1584048838F, 0.1587639334F, 0.1591233255F, 0.1594830599F, - 0.1598431361F, 0.1602035540F, 0.1605643131F, 0.1609254131F, - 0.1612868537F, 0.1616486346F, 0.1620107555F, 0.1623732160F, - 0.1627360158F, 0.1630991545F, 0.1634626319F, 0.1638264476F, - 0.1641906013F, 0.1645550926F, 0.1649199212F, 0.1652850869F, - 0.1656505892F, 0.1660164278F, 0.1663826024F, 0.1667491127F, - 0.1671159583F, 0.1674831388F, 0.1678506541F, 0.1682185036F, - 0.1685866872F, 0.1689552044F, 0.1693240549F, 0.1696932384F, - 0.1700627545F, 0.1704326029F, 0.1708027833F, 0.1711732952F, - 0.1715441385F, 0.1719153127F, 0.1722868175F, 0.1726586526F, - 0.1730308176F, 0.1734033121F, 0.1737761359F, 0.1741492886F, - 0.1745227698F, 0.1748965792F, 0.1752707164F, 0.1756451812F, - 0.1760199731F, 0.1763950918F, 0.1767705370F, 0.1771463083F, - 0.1775224054F, 0.1778988279F, 0.1782755754F, 0.1786526477F, - 0.1790300444F, 0.1794077651F, 0.1797858094F, 0.1801641771F, - 0.1805428677F, 0.1809218810F, 0.1813012165F, 0.1816808739F, - 0.1820608528F, 0.1824411530F, 0.1828217739F, 0.1832027154F, - 0.1835839770F, 0.1839655584F, 0.1843474592F, 0.1847296790F, - 0.1851122175F, 0.1854950744F, 0.1858782492F, 0.1862617417F, - 0.1866455514F, 0.1870296780F, 0.1874141211F, 0.1877988804F, - 0.1881839555F, 0.1885693461F, 0.1889550517F, 0.1893410721F, - 0.1897274068F, 0.1901140555F, 0.1905010178F, 0.1908882933F, - 0.1912758818F, 0.1916637828F, 0.1920519959F, 0.1924405208F, - 0.1928293571F, 0.1932185044F, 0.1936079625F, 0.1939977308F, - 0.1943878091F, 0.1947781969F, 0.1951688939F, 0.1955598998F, - 0.1959512141F, 0.1963428364F, 0.1967347665F, 0.1971270038F, - 0.1975195482F, 0.1979123990F, 0.1983055561F, 0.1986990190F, - 0.1990927873F, 0.1994868607F, 0.1998812388F, 0.2002759212F, - 0.2006709075F, 0.2010661974F, 0.2014617904F, 0.2018576862F, - 0.2022538844F, 0.2026503847F, 0.2030471865F, 0.2034442897F, - 0.2038416937F, 0.2042393982F, 0.2046374028F, 0.2050357071F, - 0.2054343107F, 0.2058332133F, 0.2062324145F, 0.2066319138F, - 0.2070317110F, 0.2074318055F, 0.2078321970F, 0.2082328852F, - 0.2086338696F, 0.2090351498F, 0.2094367255F, 0.2098385962F, - 0.2102407617F, 0.2106432213F, 0.2110459749F, 0.2114490220F, - 0.2118523621F, 0.2122559950F, 0.2126599202F, 0.2130641373F, - 0.2134686459F, 0.2138734456F, 0.2142785361F, 0.2146839168F, - 0.2150895875F, 0.2154955478F, 0.2159017972F, 0.2163083353F, - 0.2167151617F, 0.2171222761F, 0.2175296780F, 0.2179373670F, - 0.2183453428F, 0.2187536049F, 0.2191621529F, 0.2195709864F, - 0.2199801051F, 0.2203895085F, 0.2207991961F, 0.2212091677F, - 0.2216194228F, 0.2220299610F, 0.2224407818F, 0.2228518850F, - 0.2232632699F, 0.2236749364F, 0.2240868839F, 0.2244991121F, - 0.2249116204F, 0.2253244086F, 0.2257374763F, 0.2261508229F, - 0.2265644481F, 0.2269783514F, 0.2273925326F, 0.2278069911F, - 0.2282217265F, 0.2286367384F, 0.2290520265F, 0.2294675902F, - 0.2298834292F, 0.2302995431F, 0.2307159314F, 0.2311325937F, - 0.2315495297F, 0.2319667388F, 0.2323842207F, 0.2328019749F, - 0.2332200011F, 0.2336382988F, 0.2340568675F, 0.2344757070F, - 0.2348948166F, 0.2353141961F, 0.2357338450F, 0.2361537629F, - 0.2365739493F, 0.2369944038F, 0.2374151261F, 0.2378361156F, - 0.2382573720F, 0.2386788948F, 0.2391006836F, 0.2395227380F, - 0.2399450575F, 0.2403676417F, 0.2407904902F, 0.2412136026F, - 0.2416369783F, 0.2420606171F, 0.2424845185F, 0.2429086820F, - 0.2433331072F, 0.2437577936F, 0.2441827409F, 0.2446079486F, - 0.2450334163F, 0.2454591435F, 0.2458851298F, 0.2463113747F, - 0.2467378779F, 0.2471646389F, 0.2475916573F, 0.2480189325F, - 0.2484464643F, 0.2488742521F, 0.2493022955F, 0.2497305940F, - 0.2501591473F, 0.2505879549F, 0.2510170163F, 0.2514463311F, - 0.2518758989F, 0.2523057193F, 0.2527357916F, 0.2531661157F, - 0.2535966909F, 0.2540275169F, 0.2544585931F, 0.2548899193F, - 0.2553214948F, 0.2557533193F, 0.2561853924F, 0.2566177135F, - 0.2570502822F, 0.2574830981F, 0.2579161608F, 0.2583494697F, - 0.2587830245F, 0.2592168246F, 0.2596508697F, 0.2600851593F, - 0.2605196929F, 0.2609544701F, 0.2613894904F, 0.2618247534F, - 0.2622602586F, 0.2626960055F, 0.2631319938F, 0.2635682230F, - 0.2640046925F, 0.2644414021F, 0.2648783511F, 0.2653155391F, - 0.2657529657F, 0.2661906305F, 0.2666285329F, 0.2670666725F, - 0.2675050489F, 0.2679436616F, 0.2683825101F, 0.2688215940F, - 0.2692609127F, 0.2697004660F, 0.2701402532F, 0.2705802739F, - 0.2710205278F, 0.2714610142F, 0.2719017327F, 0.2723426830F, - 0.2727838644F, 0.2732252766F, 0.2736669191F, 0.2741087914F, - 0.2745508930F, 0.2749932235F, 0.2754357824F, 0.2758785693F, - 0.2763215837F, 0.2767648251F, 0.2772082930F, 0.2776519870F, - 0.2780959066F, 0.2785400513F, 0.2789844207F, 0.2794290143F, - 0.2798738316F, 0.2803188722F, 0.2807641355F, 0.2812096211F, - 0.2816553286F, 0.2821012574F, 0.2825474071F, 0.2829937773F, - 0.2834403673F, 0.2838871768F, 0.2843342053F, 0.2847814523F, - 0.2852289174F, 0.2856765999F, 0.2861244996F, 0.2865726159F, - 0.2870209482F, 0.2874694962F, 0.2879182594F, 0.2883672372F, - 0.2888164293F, 0.2892658350F, 0.2897154540F, 0.2901652858F, - 0.2906153298F, 0.2910655856F, 0.2915160527F, 0.2919667306F, - 0.2924176189F, 0.2928687171F, 0.2933200246F, 0.2937715409F, - 0.2942232657F, 0.2946751984F, 0.2951273386F, 0.2955796856F, - 0.2960322391F, 0.2964849986F, 0.2969379636F, 0.2973911335F, - 0.2978445080F, 0.2982980864F, 0.2987518684F, 0.2992058534F, - 0.2996600409F, 0.3001144305F, 0.3005690217F, 0.3010238139F, - 0.3014788067F, 0.3019339995F, 0.3023893920F, 0.3028449835F, - 0.3033007736F, 0.3037567618F, 0.3042129477F, 0.3046693306F, - 0.3051259102F, 0.3055826859F, 0.3060396572F, 0.3064968236F, - 0.3069541847F, 0.3074117399F, 0.3078694887F, 0.3083274307F, - 0.3087855653F, 0.3092438920F, 0.3097024104F, 0.3101611199F, - 0.3106200200F, 0.3110791103F, 0.3115383902F, 0.3119978592F, - 0.3124575169F, 0.3129173627F, 0.3133773961F, 0.3138376166F, - 0.3142980238F, 0.3147586170F, 0.3152193959F, 0.3156803598F, - 0.3161415084F, 0.3166028410F, 0.3170643573F, 0.3175260566F, - 0.3179879384F, 0.3184500023F, 0.3189122478F, 0.3193746743F, - 0.3198372814F, 0.3203000685F, 0.3207630351F, 0.3212261807F, - 0.3216895048F, 0.3221530069F, 0.3226166865F, 0.3230805430F, - 0.3235445760F, 0.3240087849F, 0.3244731693F, 0.3249377285F, - 0.3254024622F, 0.3258673698F, 0.3263324507F, 0.3267977045F, - 0.3272631306F, 0.3277287286F, 0.3281944978F, 0.3286604379F, - 0.3291265482F, 0.3295928284F, 0.3300592777F, 0.3305258958F, - 0.3309926821F, 0.3314596361F, 0.3319267573F, 0.3323940451F, - 0.3328614990F, 0.3333291186F, 0.3337969033F, 0.3342648525F, - 0.3347329658F, 0.3352012427F, 0.3356696825F, 0.3361382849F, - 0.3366070492F, 0.3370759749F, 0.3375450616F, 0.3380143087F, - 0.3384837156F, 0.3389532819F, 0.3394230071F, 0.3398928905F, - 0.3403629317F, 0.3408331302F, 0.3413034854F, 0.3417739967F, - 0.3422446638F, 0.3427154860F, 0.3431864628F, 0.3436575938F, - 0.3441288782F, 0.3446003158F, 0.3450719058F, 0.3455436478F, - 0.3460155412F, 0.3464875856F, 0.3469597804F, 0.3474321250F, - 0.3479046189F, 0.3483772617F, 0.3488500527F, 0.3493229914F, - 0.3497960774F, 0.3502693100F, 0.3507426887F, 0.3512162131F, - 0.3516898825F, 0.3521636965F, 0.3526376545F, 0.3531117559F, - 0.3535860003F, 0.3540603870F, 0.3545349157F, 0.3550095856F, - 0.3554843964F, 0.3559593474F, 0.3564344381F, 0.3569096680F, - 0.3573850366F, 0.3578605432F, 0.3583361875F, 0.3588119687F, - 0.3592878865F, 0.3597639402F, 0.3602401293F, 0.3607164533F, - 0.3611929117F, 0.3616695038F, 0.3621462292F, 0.3626230873F, - 0.3631000776F, 0.3635771995F, 0.3640544525F, 0.3645318360F, - 0.3650093496F, 0.3654869926F, 0.3659647645F, 0.3664426648F, - 0.3669206930F, 0.3673988484F, 0.3678771306F, 0.3683555390F, - 0.3688340731F, 0.3693127322F, 0.3697915160F, 0.3702704237F, - 0.3707494549F, 0.3712286091F, 0.3717078857F, 0.3721872840F, - 0.3726668037F, 0.3731464441F, 0.3736262047F, 0.3741060850F, - 0.3745860843F, 0.3750662023F, 0.3755464382F, 0.3760267915F, - 0.3765072618F, 0.3769878484F, 0.3774685509F, 0.3779493686F, - 0.3784303010F, 0.3789113475F, 0.3793925076F, 0.3798737809F, - 0.3803551666F, 0.3808366642F, 0.3813182733F, 0.3817999932F, - 0.3822818234F, 0.3827637633F, 0.3832458124F, 0.3837279702F, - 0.3842102360F, 0.3846926093F, 0.3851750897F, 0.3856576764F, - 0.3861403690F, 0.3866231670F, 0.3871060696F, 0.3875890765F, - 0.3880721870F, 0.3885554007F, 0.3890387168F, 0.3895221349F, - 0.3900056544F, 0.3904892748F, 0.3909729955F, 0.3914568160F, - 0.3919407356F, 0.3924247539F, 0.3929088702F, 0.3933930841F, - 0.3938773949F, 0.3943618021F, 0.3948463052F, 0.3953309035F, - 0.3958155966F, 0.3963003838F, 0.3967852646F, 0.3972702385F, - 0.3977553048F, 0.3982404631F, 0.3987257127F, 0.3992110531F, - 0.3996964838F, 0.4001820041F, 0.4006676136F, 0.4011533116F, - 0.4016390976F, 0.4021249710F, 0.4026109313F, 0.4030969779F, - 0.4035831102F, 0.4040693277F, 0.4045556299F, 0.4050420160F, - 0.4055284857F, 0.4060150383F, 0.4065016732F, 0.4069883899F, - 0.4074751879F, 0.4079620665F, 0.4084490252F, 0.4089360635F, - 0.4094231807F, 0.4099103763F, 0.4103976498F, 0.4108850005F, - 0.4113724280F, 0.4118599315F, 0.4123475107F, 0.4128351648F, - 0.4133228934F, 0.4138106959F, 0.4142985716F, 0.4147865201F, - 0.4152745408F, 0.4157626330F, 0.4162507963F, 0.4167390301F, - 0.4172273337F, 0.4177157067F, 0.4182041484F, 0.4186926583F, - 0.4191812359F, 0.4196698805F, 0.4201585915F, 0.4206473685F, - 0.4211362108F, 0.4216251179F, 0.4221140892F, 0.4226031241F, - 0.4230922221F, 0.4235813826F, 0.4240706050F, 0.4245598887F, - 0.4250492332F, 0.4255386379F, 0.4260281022F, 0.4265176256F, - 0.4270072075F, 0.4274968473F, 0.4279865445F, 0.4284762984F, - 0.4289661086F, 0.4294559743F, 0.4299458951F, 0.4304358704F, - 0.4309258996F, 0.4314159822F, 0.4319061175F, 0.4323963050F, - 0.4328865441F, 0.4333768342F, 0.4338671749F, 0.4343575654F, - 0.4348480052F, 0.4353384938F, 0.4358290306F, 0.4363196149F, - 0.4368102463F, 0.4373009241F, 0.4377916478F, 0.4382824168F, - 0.4387732305F, 0.4392640884F, 0.4397549899F, 0.4402459343F, - 0.4407369212F, 0.4412279499F, 0.4417190198F, 0.4422101305F, - 0.4427012813F, 0.4431924717F, 0.4436837010F, 0.4441749686F, - 0.4446662742F, 0.4451576169F, 0.4456489963F, 0.4461404118F, - 0.4466318628F, 0.4471233487F, 0.4476148690F, 0.4481064230F, - 0.4485980103F, 0.4490896302F, 0.4495812821F, 0.4500729654F, - 0.4505646797F, 0.4510564243F, 0.4515481986F, 0.4520400021F, - 0.4525318341F, 0.4530236942F, 0.4535155816F, 0.4540074959F, - 0.4544994365F, 0.4549914028F, 0.4554833941F, 0.4559754100F, - 0.4564674499F, 0.4569595131F, 0.4574515991F, 0.4579437074F, - 0.4584358372F, 0.4589279881F, 0.4594201595F, 0.4599123508F, - 0.4604045615F, 0.4608967908F, 0.4613890383F, 0.4618813034F, - 0.4623735855F, 0.4628658841F, 0.4633581984F, 0.4638505281F, - 0.4643428724F, 0.4648352308F, 0.4653276028F, 0.4658199877F, - 0.4663123849F, 0.4668047940F, 0.4672972143F, 0.4677896451F, - 0.4682820861F, 0.4687745365F, 0.4692669958F, 0.4697594634F, - 0.4702519387F, 0.4707444211F, 0.4712369102F, 0.4717294052F, - 0.4722219056F, 0.4727144109F, 0.4732069204F, 0.4736994336F, - 0.4741919498F, 0.4746844686F, 0.4751769893F, 0.4756695113F, - 0.4761620341F, 0.4766545571F, 0.4771470797F, 0.4776396013F, - 0.4781321213F, 0.4786246392F, 0.4791171544F, 0.4796096663F, - 0.4801021744F, 0.4805946779F, 0.4810871765F, 0.4815796694F, - 0.4820721561F, 0.4825646360F, 0.4830571086F, 0.4835495732F, - 0.4840420293F, 0.4845344763F, 0.4850269136F, 0.4855193407F, - 0.4860117569F, 0.4865041617F, 0.4869965545F, 0.4874889347F, - 0.4879813018F, 0.4884736551F, 0.4889659941F, 0.4894583182F, - 0.4899506268F, 0.4904429193F, 0.4909351952F, 0.4914274538F, - 0.4919196947F, 0.4924119172F, 0.4929041207F, 0.4933963046F, - 0.4938884685F, 0.4943806116F, 0.4948727335F, 0.4953648335F, - 0.4958569110F, 0.4963489656F, 0.4968409965F, 0.4973330032F, - 0.4978249852F, 0.4983169419F, 0.4988088726F, 0.4993007768F, - 0.4997926539F, 0.5002845034F, 0.5007763247F, 0.5012681171F, - 0.5017598801F, 0.5022516132F, 0.5027433157F, 0.5032349871F, - 0.5037266268F, 0.5042182341F, 0.5047098086F, 0.5052013497F, - 0.5056928567F, 0.5061843292F, 0.5066757664F, 0.5071671679F, - 0.5076585330F, 0.5081498613F, 0.5086411520F, 0.5091324047F, - 0.5096236187F, 0.5101147934F, 0.5106059284F, 0.5110970230F, - 0.5115880766F, 0.5120790887F, 0.5125700587F, 0.5130609860F, - 0.5135518700F, 0.5140427102F, 0.5145335059F, 0.5150242566F, - 0.5155149618F, 0.5160056208F, 0.5164962331F, 0.5169867980F, - 0.5174773151F, 0.5179677837F, 0.5184582033F, 0.5189485733F, - 0.5194388931F, 0.5199291621F, 0.5204193798F, 0.5209095455F, - 0.5213996588F, 0.5218897190F, 0.5223797256F, 0.5228696779F, - 0.5233595755F, 0.5238494177F, 0.5243392039F, 0.5248289337F, - 0.5253186063F, 0.5258082213F, 0.5262977781F, 0.5267872760F, - 0.5272767146F, 0.5277660932F, 0.5282554112F, 0.5287446682F, - 0.5292338635F, 0.5297229965F, 0.5302120667F, 0.5307010736F, - 0.5311900164F, 0.5316788947F, 0.5321677079F, 0.5326564554F, - 0.5331451366F, 0.5336337511F, 0.5341222981F, 0.5346107771F, - 0.5350991876F, 0.5355875290F, 0.5360758007F, 0.5365640021F, - 0.5370521327F, 0.5375401920F, 0.5380281792F, 0.5385160939F, - 0.5390039355F, 0.5394917034F, 0.5399793971F, 0.5404670159F, - 0.5409545594F, 0.5414420269F, 0.5419294179F, 0.5424167318F, - 0.5429039680F, 0.5433911261F, 0.5438782053F, 0.5443652051F, - 0.5448521250F, 0.5453389644F, 0.5458257228F, 0.5463123995F, - 0.5467989940F, 0.5472855057F, 0.5477719341F, 0.5482582786F, - 0.5487445387F, 0.5492307137F, 0.5497168031F, 0.5502028063F, - 0.5506887228F, 0.5511745520F, 0.5516602934F, 0.5521459463F, - 0.5526315103F, 0.5531169847F, 0.5536023690F, 0.5540876626F, - 0.5545728649F, 0.5550579755F, 0.5555429937F, 0.5560279189F, - 0.5565127507F, 0.5569974884F, 0.5574821315F, 0.5579666794F, - 0.5584511316F, 0.5589354875F, 0.5594197465F, 0.5599039080F, - 0.5603879716F, 0.5608719367F, 0.5613558026F, 0.5618395689F, - 0.5623232350F, 0.5628068002F, 0.5632902642F, 0.5637736262F, - 0.5642568858F, 0.5647400423F, 0.5652230953F, 0.5657060442F, - 0.5661888883F, 0.5666716272F, 0.5671542603F, 0.5676367870F, - 0.5681192069F, 0.5686015192F, 0.5690837235F, 0.5695658192F, - 0.5700478058F, 0.5705296827F, 0.5710114494F, 0.5714931052F, - 0.5719746497F, 0.5724560822F, 0.5729374023F, 0.5734186094F, - 0.5738997029F, 0.5743806823F, 0.5748615470F, 0.5753422965F, - 0.5758229301F, 0.5763034475F, 0.5767838480F, 0.5772641310F, - 0.5777442960F, 0.5782243426F, 0.5787042700F, 0.5791840778F, - 0.5796637654F, 0.5801433322F, 0.5806227778F, 0.5811021016F, - 0.5815813029F, 0.5820603814F, 0.5825393363F, 0.5830181673F, - 0.5834968737F, 0.5839754549F, 0.5844539105F, 0.5849322399F, - 0.5854104425F, 0.5858885179F, 0.5863664653F, 0.5868442844F, - 0.5873219746F, 0.5877995353F, 0.5882769660F, 0.5887542661F, - 0.5892314351F, 0.5897084724F, 0.5901853776F, 0.5906621500F, - 0.5911387892F, 0.5916152945F, 0.5920916655F, 0.5925679016F, - 0.5930440022F, 0.5935199669F, 0.5939957950F, 0.5944714861F, - 0.5949470396F, 0.5954224550F, 0.5958977317F, 0.5963728692F, - 0.5968478669F, 0.5973227244F, 0.5977974411F, 0.5982720163F, - 0.5987464497F, 0.5992207407F, 0.5996948887F, 0.6001688932F, - 0.6006427537F, 0.6011164696F, 0.6015900405F, 0.6020634657F, - 0.6025367447F, 0.6030098770F, 0.6034828621F, 0.6039556995F, - 0.6044283885F, 0.6049009288F, 0.6053733196F, 0.6058455606F, - 0.6063176512F, 0.6067895909F, 0.6072613790F, 0.6077330152F, - 0.6082044989F, 0.6086758295F, 0.6091470065F, 0.6096180294F, - 0.6100888977F, 0.6105596108F, 0.6110301682F, 0.6115005694F, - 0.6119708139F, 0.6124409011F, 0.6129108305F, 0.6133806017F, - 0.6138502139F, 0.6143196669F, 0.6147889599F, 0.6152580926F, - 0.6157270643F, 0.6161958746F, 0.6166645230F, 0.6171330088F, - 0.6176013317F, 0.6180694910F, 0.6185374863F, 0.6190053171F, - 0.6194729827F, 0.6199404828F, 0.6204078167F, 0.6208749841F, - 0.6213419842F, 0.6218088168F, 0.6222754811F, 0.6227419768F, - 0.6232083032F, 0.6236744600F, 0.6241404465F, 0.6246062622F, - 0.6250719067F, 0.6255373795F, 0.6260026799F, 0.6264678076F, - 0.6269327619F, 0.6273975425F, 0.6278621487F, 0.6283265800F, - 0.6287908361F, 0.6292549163F, 0.6297188201F, 0.6301825471F, - 0.6306460966F, 0.6311094683F, 0.6315726617F, 0.6320356761F, - 0.6324985111F, 0.6329611662F, 0.6334236410F, 0.6338859348F, - 0.6343480472F, 0.6348099777F, 0.6352717257F, 0.6357332909F, - 0.6361946726F, 0.6366558704F, 0.6371168837F, 0.6375777122F, - 0.6380383552F, 0.6384988123F, 0.6389590830F, 0.6394191668F, - 0.6398790631F, 0.6403387716F, 0.6407982916F, 0.6412576228F, - 0.6417167645F, 0.6421757163F, 0.6426344778F, 0.6430930483F, - 0.6435514275F, 0.6440096149F, 0.6444676098F, 0.6449254119F, - 0.6453830207F, 0.6458404356F, 0.6462976562F, 0.6467546820F, - 0.6472115125F, 0.6476681472F, 0.6481245856F, 0.6485808273F, - 0.6490368717F, 0.6494927183F, 0.6499483667F, 0.6504038164F, - 0.6508590670F, 0.6513141178F, 0.6517689684F, 0.6522236185F, - 0.6526780673F, 0.6531323146F, 0.6535863598F, 0.6540402024F, - 0.6544938419F, 0.6549472779F, 0.6554005099F, 0.6558535373F, - 0.6563063598F, 0.6567589769F, 0.6572113880F, 0.6576635927F, - 0.6581155906F, 0.6585673810F, 0.6590189637F, 0.6594703380F, - 0.6599215035F, 0.6603724598F, 0.6608232064F, 0.6612737427F, - 0.6617240684F, 0.6621741829F, 0.6626240859F, 0.6630737767F, - 0.6635232550F, 0.6639725202F, 0.6644215720F, 0.6648704098F, - 0.6653190332F, 0.6657674417F, 0.6662156348F, 0.6666636121F, - 0.6671113731F, 0.6675589174F, 0.6680062445F, 0.6684533538F, - 0.6689002450F, 0.6693469177F, 0.6697933712F, 0.6702396052F, - 0.6706856193F, 0.6711314129F, 0.6715769855F, 0.6720223369F, - 0.6724674664F, 0.6729123736F, 0.6733570581F, 0.6738015194F, - 0.6742457570F, 0.6746897706F, 0.6751335596F, 0.6755771236F, - 0.6760204621F, 0.6764635747F, 0.6769064609F, 0.6773491204F, - 0.6777915525F, 0.6782337570F, 0.6786757332F, 0.6791174809F, - 0.6795589995F, 0.6800002886F, 0.6804413477F, 0.6808821765F, - 0.6813227743F, 0.6817631409F, 0.6822032758F, 0.6826431785F, - 0.6830828485F, 0.6835222855F, 0.6839614890F, 0.6844004585F, - 0.6848391936F, 0.6852776939F, 0.6857159589F, 0.6861539883F, - 0.6865917815F, 0.6870293381F, 0.6874666576F, 0.6879037398F, - 0.6883405840F, 0.6887771899F, 0.6892135571F, 0.6896496850F, - 0.6900855733F, 0.6905212216F, 0.6909566294F, 0.6913917963F, - 0.6918267218F, 0.6922614055F, 0.6926958471F, 0.6931300459F, - 0.6935640018F, 0.6939977141F, 0.6944311825F, 0.6948644066F, - 0.6952973859F, 0.6957301200F, 0.6961626085F, 0.6965948510F, - 0.6970268470F, 0.6974585961F, 0.6978900980F, 0.6983213521F, - 0.6987523580F, 0.6991831154F, 0.6996136238F, 0.7000438828F, - 0.7004738921F, 0.7009036510F, 0.7013331594F, 0.7017624166F, - 0.7021914224F, 0.7026201763F, 0.7030486779F, 0.7034769268F, - 0.7039049226F, 0.7043326648F, 0.7047601531F, 0.7051873870F, - 0.7056143662F, 0.7060410902F, 0.7064675586F, 0.7068937711F, - 0.7073197271F, 0.7077454264F, 0.7081708684F, 0.7085960529F, - 0.7090209793F, 0.7094456474F, 0.7098700566F, 0.7102942066F, - 0.7107180970F, 0.7111417274F, 0.7115650974F, 0.7119882066F, - 0.7124110545F, 0.7128336409F, 0.7132559653F, 0.7136780272F, - 0.7140998264F, 0.7145213624F, 0.7149426348F, 0.7153636433F, - 0.7157843874F, 0.7162048668F, 0.7166250810F, 0.7170450296F, - 0.7174647124F, 0.7178841289F, 0.7183032786F, 0.7187221613F, - 0.7191407765F, 0.7195591239F, 0.7199772030F, 0.7203950135F, - 0.7208125550F, 0.7212298271F, 0.7216468294F, 0.7220635616F, - 0.7224800233F, 0.7228962140F, 0.7233121335F, 0.7237277813F, - 0.7241431571F, 0.7245582604F, 0.7249730910F, 0.7253876484F, - 0.7258019322F, 0.7262159422F, 0.7266296778F, 0.7270431388F, - 0.7274563247F, 0.7278692353F, 0.7282818700F, 0.7286942287F, - 0.7291063108F, 0.7295181160F, 0.7299296440F, 0.7303408944F, - 0.7307518669F, 0.7311625609F, 0.7315729763F, 0.7319831126F, - 0.7323929695F, 0.7328025466F, 0.7332118435F, 0.7336208600F, - 0.7340295955F, 0.7344380499F, 0.7348462226F, 0.7352541134F, - 0.7356617220F, 0.7360690478F, 0.7364760907F, 0.7368828502F, - 0.7372893259F, 0.7376955176F, 0.7381014249F, 0.7385070475F, - 0.7389123849F, 0.7393174368F, 0.7397222029F, 0.7401266829F, - 0.7405308763F, 0.7409347829F, 0.7413384023F, 0.7417417341F, - 0.7421447780F, 0.7425475338F, 0.7429500009F, 0.7433521791F, - 0.7437540681F, 0.7441556674F, 0.7445569769F, 0.7449579960F, - 0.7453587245F, 0.7457591621F, 0.7461593084F, 0.7465591631F, - 0.7469587259F, 0.7473579963F, 0.7477569741F, 0.7481556590F, - 0.7485540506F, 0.7489521486F, 0.7493499526F, 0.7497474623F, - 0.7501446775F, 0.7505415977F, 0.7509382227F, 0.7513345521F, - 0.7517305856F, 0.7521263229F, 0.7525217636F, 0.7529169074F, - 0.7533117541F, 0.7537063032F, 0.7541005545F, 0.7544945076F, - 0.7548881623F, 0.7552815182F, 0.7556745749F, 0.7560673323F, - 0.7564597899F, 0.7568519474F, 0.7572438046F, 0.7576353611F, - 0.7580266166F, 0.7584175708F, 0.7588082235F, 0.7591985741F, - 0.7595886226F, 0.7599783685F, 0.7603678116F, 0.7607569515F, - 0.7611457879F, 0.7615343206F, 0.7619225493F, 0.7623104735F, - 0.7626980931F, 0.7630854078F, 0.7634724171F, 0.7638591209F, - 0.7642455188F, 0.7646316106F, 0.7650173959F, 0.7654028744F, - 0.7657880459F, 0.7661729100F, 0.7665574664F, 0.7669417150F, - 0.7673256553F, 0.7677092871F, 0.7680926100F, 0.7684756239F, - 0.7688583284F, 0.7692407232F, 0.7696228080F, 0.7700045826F, - 0.7703860467F, 0.7707671999F, 0.7711480420F, 0.7715285728F, - 0.7719087918F, 0.7722886989F, 0.7726682938F, 0.7730475762F, - 0.7734265458F, 0.7738052023F, 0.7741835454F, 0.7745615750F, - 0.7749392906F, 0.7753166921F, 0.7756937791F, 0.7760705514F, - 0.7764470087F, 0.7768231508F, 0.7771989773F, 0.7775744880F, - 0.7779496827F, 0.7783245610F, 0.7786991227F, 0.7790733676F, - 0.7794472953F, 0.7798209056F, 0.7801941982F, 0.7805671729F, - 0.7809398294F, 0.7813121675F, 0.7816841869F, 0.7820558873F, - 0.7824272684F, 0.7827983301F, 0.7831690720F, 0.7835394940F, - 0.7839095957F, 0.7842793768F, 0.7846488373F, 0.7850179767F, - 0.7853867948F, 0.7857552914F, 0.7861234663F, 0.7864913191F, - 0.7868588497F, 0.7872260578F, 0.7875929431F, 0.7879595055F, - 0.7883257445F, 0.7886916601F, 0.7890572520F, 0.7894225198F, - 0.7897874635F, 0.7901520827F, 0.7905163772F, 0.7908803468F, - 0.7912439912F, 0.7916073102F, 0.7919703035F, 0.7923329710F, - 0.7926953124F, 0.7930573274F, 0.7934190158F, 0.7937803774F, - 0.7941414120F, 0.7945021193F, 0.7948624991F, 0.7952225511F, - 0.7955822752F, 0.7959416711F, 0.7963007387F, 0.7966594775F, - 0.7970178875F, 0.7973759685F, 0.7977337201F, 0.7980911422F, - 0.7984482346F, 0.7988049970F, 0.7991614292F, 0.7995175310F, - 0.7998733022F, 0.8002287426F, 0.8005838519F, 0.8009386299F, - 0.8012930765F, 0.8016471914F, 0.8020009744F, 0.8023544253F, - 0.8027075438F, 0.8030603298F, 0.8034127831F, 0.8037649035F, - 0.8041166906F, 0.8044681445F, 0.8048192647F, 0.8051700512F, - 0.8055205038F, 0.8058706222F, 0.8062204062F, 0.8065698556F, - 0.8069189702F, 0.8072677499F, 0.8076161944F, 0.8079643036F, - 0.8083120772F, 0.8086595151F, 0.8090066170F, 0.8093533827F, - 0.8096998122F, 0.8100459051F, 0.8103916613F, 0.8107370806F, - 0.8110821628F, 0.8114269077F, 0.8117713151F, 0.8121153849F, - 0.8124591169F, 0.8128025108F, 0.8131455666F, 0.8134882839F, - 0.8138306627F, 0.8141727027F, 0.8145144038F, 0.8148557658F, - 0.8151967886F, 0.8155374718F, 0.8158778154F, 0.8162178192F, - 0.8165574830F, 0.8168968067F, 0.8172357900F, 0.8175744328F, - 0.8179127349F, 0.8182506962F, 0.8185883164F, 0.8189255955F, - 0.8192625332F, 0.8195991295F, 0.8199353840F, 0.8202712967F, - 0.8206068673F, 0.8209420958F, 0.8212769820F, 0.8216115256F, - 0.8219457266F, 0.8222795848F, 0.8226131000F, 0.8229462721F, - 0.8232791009F, 0.8236115863F, 0.8239437280F, 0.8242755260F, - 0.8246069801F, 0.8249380901F, 0.8252688559F, 0.8255992774F, - 0.8259293544F, 0.8262590867F, 0.8265884741F, 0.8269175167F, - 0.8272462141F, 0.8275745663F, 0.8279025732F, 0.8282302344F, - 0.8285575501F, 0.8288845199F, 0.8292111437F, 0.8295374215F, - 0.8298633530F, 0.8301889382F, 0.8305141768F, 0.8308390688F, - 0.8311636141F, 0.8314878124F, 0.8318116637F, 0.8321351678F, - 0.8324583246F, 0.8327811340F, 0.8331035957F, 0.8334257098F, - 0.8337474761F, 0.8340688944F, 0.8343899647F, 0.8347106867F, - 0.8350310605F, 0.8353510857F, 0.8356707624F, 0.8359900904F, - 0.8363090696F, 0.8366276999F, 0.8369459811F, 0.8372639131F, - 0.8375814958F, 0.8378987292F, 0.8382156130F, 0.8385321472F, - 0.8388483316F, 0.8391641662F, 0.8394796508F, 0.8397947853F, - 0.8401095697F, 0.8404240037F, 0.8407380873F, 0.8410518204F, - 0.8413652029F, 0.8416782347F, 0.8419909156F, 0.8423032456F, - 0.8426152245F, 0.8429268523F, 0.8432381289F, 0.8435490541F, - 0.8438596279F, 0.8441698502F, 0.8444797208F, 0.8447892396F, - 0.8450984067F, 0.8454072218F, 0.8457156849F, 0.8460237959F, - 0.8463315547F, 0.8466389612F, 0.8469460154F, 0.8472527170F, - 0.8475590661F, 0.8478650625F, 0.8481707063F, 0.8484759971F, - 0.8487809351F, 0.8490855201F, 0.8493897521F, 0.8496936308F, - 0.8499971564F, 0.8503003286F, 0.8506031474F, 0.8509056128F, - 0.8512077246F, 0.8515094828F, 0.8518108872F, 0.8521119379F, - 0.8524126348F, 0.8527129777F, 0.8530129666F, 0.8533126015F, - 0.8536118822F, 0.8539108087F, 0.8542093809F, 0.8545075988F, - 0.8548054623F, 0.8551029712F, 0.8554001257F, 0.8556969255F, - 0.8559933707F, 0.8562894611F, 0.8565851968F, 0.8568805775F, - 0.8571756034F, 0.8574702743F, 0.8577645902F, 0.8580585509F, - 0.8583521566F, 0.8586454070F, 0.8589383021F, 0.8592308420F, - 0.8595230265F, 0.8598148556F, 0.8601063292F, 0.8603974473F, - 0.8606882098F, 0.8609786167F, 0.8612686680F, 0.8615583636F, - 0.8618477034F, 0.8621366874F, 0.8624253156F, 0.8627135878F, - 0.8630015042F, 0.8632890646F, 0.8635762690F, 0.8638631173F, - 0.8641496096F, 0.8644357457F, 0.8647215257F, 0.8650069495F, - 0.8652920171F, 0.8655767283F, 0.8658610833F, 0.8661450820F, - 0.8664287243F, 0.8667120102F, 0.8669949397F, 0.8672775127F, - 0.8675597293F, 0.8678415894F, 0.8681230929F, 0.8684042398F, - 0.8686850302F, 0.8689654640F, 0.8692455412F, 0.8695252617F, - 0.8698046255F, 0.8700836327F, 0.8703622831F, 0.8706405768F, - 0.8709185138F, 0.8711960940F, 0.8714733174F, 0.8717501840F, - 0.8720266939F, 0.8723028469F, 0.8725786430F, 0.8728540824F, - 0.8731291648F, 0.8734038905F, 0.8736782592F, 0.8739522711F, - 0.8742259261F, 0.8744992242F, 0.8747721653F, 0.8750447496F, - 0.8753169770F, 0.8755888475F, 0.8758603611F, 0.8761315177F, - 0.8764023175F, 0.8766727603F, 0.8769428462F, 0.8772125752F, - 0.8774819474F, 0.8777509626F, 0.8780196209F, 0.8782879224F, - 0.8785558669F, 0.8788234546F, 0.8790906854F, 0.8793575594F, - 0.8796240765F, 0.8798902368F, 0.8801560403F, 0.8804214870F, - 0.8806865768F, 0.8809513099F, 0.8812156863F, 0.8814797059F, - 0.8817433687F, 0.8820066749F, 0.8822696243F, 0.8825322171F, - 0.8827944532F, 0.8830563327F, 0.8833178556F, 0.8835790219F, - 0.8838398316F, 0.8841002848F, 0.8843603815F, 0.8846201217F, - 0.8848795054F, 0.8851385327F, 0.8853972036F, 0.8856555182F, - 0.8859134764F, 0.8861710783F, 0.8864283239F, 0.8866852133F, - 0.8869417464F, 0.8871979234F, 0.8874537443F, 0.8877092090F, - 0.8879643177F, 0.8882190704F, 0.8884734671F, 0.8887275078F, - 0.8889811927F, 0.8892345216F, 0.8894874948F, 0.8897401122F, - 0.8899923738F, 0.8902442798F, 0.8904958301F, 0.8907470248F, - 0.8909978640F, 0.8912483477F, 0.8914984759F, 0.8917482487F, - 0.8919976662F, 0.8922467284F, 0.8924954353F, 0.8927437871F, - 0.8929917837F, 0.8932394252F, 0.8934867118F, 0.8937336433F, - 0.8939802199F, 0.8942264417F, 0.8944723087F, 0.8947178210F, - 0.8949629785F, 0.8952077815F, 0.8954522299F, 0.8956963239F, - 0.8959400634F, 0.8961834486F, 0.8964264795F, 0.8966691561F, - 0.8969114786F, 0.8971534470F, 0.8973950614F, 0.8976363219F, - 0.8978772284F, 0.8981177812F, 0.8983579802F, 0.8985978256F, - 0.8988373174F, 0.8990764556F, 0.8993152405F, 0.8995536720F, - 0.8997917502F, 0.9000294751F, 0.9002668470F, 0.9005038658F, - 0.9007405317F, 0.9009768446F, 0.9012128048F, 0.9014484123F, - 0.9016836671F, 0.9019185693F, 0.9021531191F, 0.9023873165F, - 0.9026211616F, 0.9028546546F, 0.9030877954F, 0.9033205841F, - 0.9035530210F, 0.9037851059F, 0.9040168392F, 0.9042482207F, - 0.9044792507F, 0.9047099293F, 0.9049402564F, 0.9051702323F, - 0.9053998569F, 0.9056291305F, 0.9058580531F, 0.9060866248F, - 0.9063148457F, 0.9065427159F, 0.9067702355F, 0.9069974046F, - 0.9072242233F, 0.9074506917F, 0.9076768100F, 0.9079025782F, - 0.9081279964F, 0.9083530647F, 0.9085777833F, 0.9088021523F, - 0.9090261717F, 0.9092498417F, 0.9094731623F, 0.9096961338F, - 0.9099187561F, 0.9101410295F, 0.9103629540F, 0.9105845297F, - 0.9108057568F, 0.9110266354F, 0.9112471656F, 0.9114673475F, - 0.9116871812F, 0.9119066668F, 0.9121258046F, 0.9123445945F, - 0.9125630367F, 0.9127811314F, 0.9129988786F, 0.9132162785F, - 0.9134333312F, 0.9136500368F, 0.9138663954F, 0.9140824073F, - 0.9142980724F, 0.9145133910F, 0.9147283632F, 0.9149429890F, - 0.9151572687F, 0.9153712023F, 0.9155847900F, 0.9157980319F, - 0.9160109282F, 0.9162234790F, 0.9164356844F, 0.9166475445F, - 0.9168590595F, 0.9170702296F, 0.9172810548F, 0.9174915354F, - 0.9177016714F, 0.9179114629F, 0.9181209102F, 0.9183300134F, - 0.9185387726F, 0.9187471879F, 0.9189552595F, 0.9191629876F, - 0.9193703723F, 0.9195774136F, 0.9197841119F, 0.9199904672F, - 0.9201964797F, 0.9204021495F, 0.9206074767F, 0.9208124616F, - 0.9210171043F, 0.9212214049F, 0.9214253636F, 0.9216289805F, - 0.9218322558F, 0.9220351896F, 0.9222377821F, 0.9224400335F, - 0.9226419439F, 0.9228435134F, 0.9230447423F, 0.9232456307F, - 0.9234461787F, 0.9236463865F, 0.9238462543F, 0.9240457822F, - 0.9242449704F, 0.9244438190F, 0.9246423282F, 0.9248404983F, - 0.9250383293F, 0.9252358214F, 0.9254329747F, 0.9256297896F, - 0.9258262660F, 0.9260224042F, 0.9262182044F, 0.9264136667F, - 0.9266087913F, 0.9268035783F, 0.9269980280F, 0.9271921405F, - 0.9273859160F, 0.9275793546F, 0.9277724566F, 0.9279652221F, - 0.9281576513F, 0.9283497443F, 0.9285415014F, 0.9287329227F, - 0.9289240084F, 0.9291147586F, 0.9293051737F, 0.9294952536F, - 0.9296849987F, 0.9298744091F, 0.9300634850F, 0.9302522266F, - 0.9304406340F, 0.9306287074F, 0.9308164471F, 0.9310038532F, - 0.9311909259F, 0.9313776654F, 0.9315640719F, 0.9317501455F, - 0.9319358865F, 0.9321212951F, 0.9323063713F, 0.9324911155F, - 0.9326755279F, 0.9328596085F, 0.9330433577F, 0.9332267756F, - 0.9334098623F, 0.9335926182F, 0.9337750434F, 0.9339571380F, - 0.9341389023F, 0.9343203366F, 0.9345014409F, 0.9346822155F, - 0.9348626606F, 0.9350427763F, 0.9352225630F, 0.9354020207F, - 0.9355811498F, 0.9357599503F, 0.9359384226F, 0.9361165667F, - 0.9362943830F, 0.9364718716F, 0.9366490327F, 0.9368258666F, - 0.9370023733F, 0.9371785533F, 0.9373544066F, 0.9375299335F, - 0.9377051341F, 0.9378800087F, 0.9380545576F, 0.9382287809F, - 0.9384026787F, 0.9385762515F, 0.9387494993F, 0.9389224223F, - 0.9390950209F, 0.9392672951F, 0.9394392453F, 0.9396108716F, - 0.9397821743F, 0.9399531536F, 0.9401238096F, 0.9402941427F, - 0.9404641530F, 0.9406338407F, 0.9408032061F, 0.9409722495F, - 0.9411409709F, 0.9413093707F, 0.9414774491F, 0.9416452062F, - 0.9418126424F, 0.9419797579F, 0.9421465528F, 0.9423130274F, - 0.9424791819F, 0.9426450166F, 0.9428105317F, 0.9429757274F, - 0.9431406039F, 0.9433051616F, 0.9434694005F, 0.9436333209F, - 0.9437969232F, 0.9439602074F, 0.9441231739F, 0.9442858229F, - 0.9444481545F, 0.9446101691F, 0.9447718669F, 0.9449332481F, - 0.9450943129F, 0.9452550617F, 0.9454154945F, 0.9455756118F, - 0.9457354136F, 0.9458949003F, 0.9460540721F, 0.9462129292F, - 0.9463714719F, 0.9465297003F, 0.9466876149F, 0.9468452157F, - 0.9470025031F, 0.9471594772F, 0.9473161384F, 0.9474724869F, - 0.9476285229F, 0.9477842466F, 0.9479396584F, 0.9480947585F, - 0.9482495470F, 0.9484040243F, 0.9485581906F, 0.9487120462F, - 0.9488655913F, 0.9490188262F, 0.9491717511F, 0.9493243662F, - 0.9494766718F, 0.9496286683F, 0.9497803557F, 0.9499317345F, - 0.9500828047F, 0.9502335668F, 0.9503840209F, 0.9505341673F, - 0.9506840062F, 0.9508335380F, 0.9509827629F, 0.9511316810F, - 0.9512802928F, 0.9514285984F, 0.9515765982F, 0.9517242923F, - 0.9518716810F, 0.9520187646F, 0.9521655434F, 0.9523120176F, - 0.9524581875F, 0.9526040534F, 0.9527496154F, 0.9528948739F, - 0.9530398292F, 0.9531844814F, 0.9533288310F, 0.9534728780F, - 0.9536166229F, 0.9537600659F, 0.9539032071F, 0.9540460470F, - 0.9541885858F, 0.9543308237F, 0.9544727611F, 0.9546143981F, - 0.9547557351F, 0.9548967723F, 0.9550375100F, 0.9551779485F, - 0.9553180881F, 0.9554579290F, 0.9555974714F, 0.9557367158F, - 0.9558756623F, 0.9560143112F, 0.9561526628F, 0.9562907174F, - 0.9564284752F, 0.9565659366F, 0.9567031017F, 0.9568399710F, - 0.9569765446F, 0.9571128229F, 0.9572488061F, 0.9573844944F, - 0.9575198883F, 0.9576549879F, 0.9577897936F, 0.9579243056F, - 0.9580585242F, 0.9581924497F, 0.9583260824F, 0.9584594226F, - 0.9585924705F, 0.9587252264F, 0.9588576906F, 0.9589898634F, - 0.9591217452F, 0.9592533360F, 0.9593846364F, 0.9595156465F, - 0.9596463666F, 0.9597767971F, 0.9599069382F, 0.9600367901F, - 0.9601663533F, 0.9602956279F, 0.9604246143F, 0.9605533128F, - 0.9606817236F, 0.9608098471F, 0.9609376835F, 0.9610652332F, - 0.9611924963F, 0.9613194733F, 0.9614461644F, 0.9615725699F, - 0.9616986901F, 0.9618245253F, 0.9619500757F, 0.9620753418F, - 0.9622003238F, 0.9623250219F, 0.9624494365F, 0.9625735679F, - 0.9626974163F, 0.9628209821F, 0.9629442656F, 0.9630672671F, - 0.9631899868F, 0.9633124251F, 0.9634345822F, 0.9635564585F, - 0.9636780543F, 0.9637993699F, 0.9639204056F, 0.9640411616F, - 0.9641616383F, 0.9642818359F, 0.9644017549F, 0.9645213955F, - 0.9646407579F, 0.9647598426F, 0.9648786497F, 0.9649971797F, - 0.9651154328F, 0.9652334092F, 0.9653511095F, 0.9654685337F, - 0.9655856823F, 0.9657025556F, 0.9658191538F, 0.9659354773F, - 0.9660515263F, 0.9661673013F, 0.9662828024F, 0.9663980300F, - 0.9665129845F, 0.9666276660F, 0.9667420750F, 0.9668562118F, - 0.9669700766F, 0.9670836698F, 0.9671969917F, 0.9673100425F, - 0.9674228227F, 0.9675353325F, 0.9676475722F, 0.9677595422F, - 0.9678712428F, 0.9679826742F, 0.9680938368F, 0.9682047309F, - 0.9683153569F, 0.9684257150F, 0.9685358056F, 0.9686456289F, - 0.9687551853F, 0.9688644752F, 0.9689734987F, 0.9690822564F, - 0.9691907483F, 0.9692989750F, 0.9694069367F, 0.9695146337F, - 0.9696220663F, 0.9697292349F, 0.9698361398F, 0.9699427813F, - 0.9700491597F, 0.9701552754F, 0.9702611286F, 0.9703667197F, - 0.9704720490F, 0.9705771169F, 0.9706819236F, 0.9707864695F, - 0.9708907549F, 0.9709947802F, 0.9710985456F, 0.9712020514F, - 0.9713052981F, 0.9714082859F, 0.9715110151F, 0.9716134862F, - 0.9717156993F, 0.9718176549F, 0.9719193532F, 0.9720207946F, - 0.9721219794F, 0.9722229080F, 0.9723235806F, 0.9724239976F, - 0.9725241593F, 0.9726240661F, 0.9727237183F, 0.9728231161F, - 0.9729222601F, 0.9730211503F, 0.9731197873F, 0.9732181713F, - 0.9733163027F, 0.9734141817F, 0.9735118088F, 0.9736091842F, - 0.9737063083F, 0.9738031814F, 0.9738998039F, 0.9739961760F, - 0.9740922981F, 0.9741881706F, 0.9742837938F, 0.9743791680F, - 0.9744742935F, 0.9745691707F, 0.9746637999F, 0.9747581814F, - 0.9748523157F, 0.9749462029F, 0.9750398435F, 0.9751332378F, - 0.9752263861F, 0.9753192887F, 0.9754119461F, 0.9755043585F, - 0.9755965262F, 0.9756884496F, 0.9757801291F, 0.9758715650F, - 0.9759627575F, 0.9760537071F, 0.9761444141F, 0.9762348789F, - 0.9763251016F, 0.9764150828F, 0.9765048228F, 0.9765943218F, - 0.9766835802F, 0.9767725984F, 0.9768613767F, 0.9769499154F, - 0.9770382149F, 0.9771262755F, 0.9772140976F, 0.9773016815F, - 0.9773890275F, 0.9774761360F, 0.9775630073F, 0.9776496418F, - 0.9777360398F, 0.9778222016F, 0.9779081277F, 0.9779938182F, - 0.9780792736F, 0.9781644943F, 0.9782494805F, 0.9783342326F, - 0.9784187509F, 0.9785030359F, 0.9785870877F, 0.9786709069F, - 0.9787544936F, 0.9788378484F, 0.9789209714F, 0.9790038631F, - 0.9790865238F, 0.9791689538F, 0.9792511535F, 0.9793331232F, - 0.9794148633F, 0.9794963742F, 0.9795776561F, 0.9796587094F, - 0.9797395345F, 0.9798201316F, 0.9799005013F, 0.9799806437F, - 0.9800605593F, 0.9801402483F, 0.9802197112F, 0.9802989483F, - 0.9803779600F, 0.9804567465F, 0.9805353082F, 0.9806136455F, - 0.9806917587F, 0.9807696482F, 0.9808473143F, 0.9809247574F, - 0.9810019778F, 0.9810789759F, 0.9811557519F, 0.9812323064F, - 0.9813086395F, 0.9813847517F, 0.9814606433F, 0.9815363147F, - 0.9816117662F, 0.9816869981F, 0.9817620108F, 0.9818368047F, - 0.9819113801F, 0.9819857374F, 0.9820598769F, 0.9821337989F, - 0.9822075038F, 0.9822809920F, 0.9823542638F, 0.9824273195F, - 0.9825001596F, 0.9825727843F, 0.9826451940F, 0.9827173891F, - 0.9827893700F, 0.9828611368F, 0.9829326901F, 0.9830040302F, - 0.9830751574F, 0.9831460720F, 0.9832167745F, 0.9832872652F, - 0.9833575444F, 0.9834276124F, 0.9834974697F, 0.9835671166F, - 0.9836365535F, 0.9837057806F, 0.9837747983F, 0.9838436071F, - 0.9839122072F, 0.9839805990F, 0.9840487829F, 0.9841167591F, - 0.9841845282F, 0.9842520903F, 0.9843194459F, 0.9843865953F, - 0.9844535389F, 0.9845202771F, 0.9845868101F, 0.9846531383F, - 0.9847192622F, 0.9847851820F, 0.9848508980F, 0.9849164108F, - 0.9849817205F, 0.9850468276F, 0.9851117324F, 0.9851764352F, - 0.9852409365F, 0.9853052366F, 0.9853693358F, 0.9854332344F, - 0.9854969330F, 0.9855604317F, 0.9856237309F, 0.9856868310F, - 0.9857497325F, 0.9858124355F, 0.9858749404F, 0.9859372477F, - 0.9859993577F, 0.9860612707F, 0.9861229871F, 0.9861845072F, - 0.9862458315F, 0.9863069601F, 0.9863678936F, 0.9864286322F, - 0.9864891764F, 0.9865495264F, 0.9866096826F, 0.9866696454F, - 0.9867294152F, 0.9867889922F, 0.9868483769F, 0.9869075695F, - 0.9869665706F, 0.9870253803F, 0.9870839991F, 0.9871424273F, - 0.9872006653F, 0.9872587135F, 0.9873165721F, 0.9873742415F, - 0.9874317222F, 0.9874890144F, 0.9875461185F, 0.9876030348F, - 0.9876597638F, 0.9877163057F, 0.9877726610F, 0.9878288300F, - 0.9878848130F, 0.9879406104F, 0.9879962225F, 0.9880516497F, - 0.9881068924F, 0.9881619509F, 0.9882168256F, 0.9882715168F, - 0.9883260249F, 0.9883803502F, 0.9884344931F, 0.9884884539F, - 0.9885422331F, 0.9885958309F, 0.9886492477F, 0.9887024838F, - 0.9887555397F, 0.9888084157F, 0.9888611120F, 0.9889136292F, - 0.9889659675F, 0.9890181273F, 0.9890701089F, 0.9891219128F, - 0.9891735392F, 0.9892249885F, 0.9892762610F, 0.9893273572F, - 0.9893782774F, 0.9894290219F, 0.9894795911F, 0.9895299853F, - 0.9895802049F, 0.9896302502F, 0.9896801217F, 0.9897298196F, - 0.9897793443F, 0.9898286961F, 0.9898778755F, 0.9899268828F, - 0.9899757183F, 0.9900243823F, 0.9900728753F, 0.9901211976F, - 0.9901693495F, 0.9902173314F, 0.9902651436F, 0.9903127865F, - 0.9903602605F, 0.9904075659F, 0.9904547031F, 0.9905016723F, - 0.9905484740F, 0.9905951086F, 0.9906415763F, 0.9906878775F, - 0.9907340126F, 0.9907799819F, 0.9908257858F, 0.9908714247F, - 0.9909168988F, 0.9909622086F, 0.9910073543F, 0.9910523364F, - 0.9910971552F, 0.9911418110F, 0.9911863042F, 0.9912306351F, - 0.9912748042F, 0.9913188117F, 0.9913626580F, 0.9914063435F, - 0.9914498684F, 0.9914932333F, 0.9915364383F, 0.9915794839F, - 0.9916223703F, 0.9916650981F, 0.9917076674F, 0.9917500787F, - 0.9917923323F, 0.9918344286F, 0.9918763679F, 0.9919181505F, - 0.9919597769F, 0.9920012473F, 0.9920425621F, 0.9920837217F, - 0.9921247263F, 0.9921655765F, 0.9922062724F, 0.9922468145F, - 0.9922872030F, 0.9923274385F, 0.9923675211F, 0.9924074513F, - 0.9924472294F, 0.9924868557F, 0.9925263306F, 0.9925656544F, - 0.9926048275F, 0.9926438503F, 0.9926827230F, 0.9927214461F, - 0.9927600199F, 0.9927984446F, 0.9928367208F, 0.9928748486F, - 0.9929128285F, 0.9929506608F, 0.9929883459F, 0.9930258841F, - 0.9930632757F, 0.9931005211F, 0.9931376207F, 0.9931745747F, - 0.9932113836F, 0.9932480476F, 0.9932845671F, 0.9933209425F, - 0.9933571742F, 0.9933932623F, 0.9934292074F, 0.9934650097F, - 0.9935006696F, 0.9935361874F, 0.9935715635F, 0.9936067982F, - 0.9936418919F, 0.9936768448F, 0.9937116574F, 0.9937463300F, - 0.9937808629F, 0.9938152565F, 0.9938495111F, 0.9938836271F, - 0.9939176047F, 0.9939514444F, 0.9939851465F, 0.9940187112F, - 0.9940521391F, 0.9940854303F, 0.9941185853F, 0.9941516044F, - 0.9941844879F, 0.9942172361F, 0.9942498495F, 0.9942823283F, - 0.9943146729F, 0.9943468836F, 0.9943789608F, 0.9944109047F, - 0.9944427158F, 0.9944743944F, 0.9945059408F, 0.9945373553F, - 0.9945686384F, 0.9945997902F, 0.9946308112F, 0.9946617017F, - 0.9946924621F, 0.9947230926F, 0.9947535937F, 0.9947839656F, - 0.9948142086F, 0.9948443232F, 0.9948743097F, 0.9949041683F, - 0.9949338995F, 0.9949635035F, 0.9949929807F, 0.9950223315F, - 0.9950515561F, 0.9950806549F, 0.9951096282F, 0.9951384764F, - 0.9951671998F, 0.9951957987F, 0.9952242735F, 0.9952526245F, - 0.9952808520F, 0.9953089564F, 0.9953369380F, 0.9953647971F, - 0.9953925340F, 0.9954201491F, 0.9954476428F, 0.9954750153F, - 0.9955022670F, 0.9955293981F, 0.9955564092F, 0.9955833003F, - 0.9956100720F, 0.9956367245F, 0.9956632582F, 0.9956896733F, - 0.9957159703F, 0.9957421494F, 0.9957682110F, 0.9957941553F, - 0.9958199828F, 0.9958456937F, 0.9958712884F, 0.9958967672F, - 0.9959221305F, 0.9959473784F, 0.9959725115F, 0.9959975300F, - 0.9960224342F, 0.9960472244F, 0.9960719011F, 0.9960964644F, - 0.9961209148F, 0.9961452525F, 0.9961694779F, 0.9961935913F, - 0.9962175930F, 0.9962414834F, 0.9962652627F, 0.9962889313F, - 0.9963124895F, 0.9963359377F, 0.9963592761F, 0.9963825051F, - 0.9964056250F, 0.9964286361F, 0.9964515387F, 0.9964743332F, - 0.9964970198F, 0.9965195990F, 0.9965420709F, 0.9965644360F, - 0.9965866946F, 0.9966088469F, 0.9966308932F, 0.9966528340F, - 0.9966746695F, 0.9966964001F, 0.9967180260F, 0.9967395475F, - 0.9967609651F, 0.9967822789F, 0.9968034894F, 0.9968245968F, - 0.9968456014F, 0.9968665036F, 0.9968873037F, 0.9969080019F, - 0.9969285987F, 0.9969490942F, 0.9969694889F, 0.9969897830F, - 0.9970099769F, 0.9970300708F, 0.9970500651F, 0.9970699601F, - 0.9970897561F, 0.9971094533F, 0.9971290522F, 0.9971485531F, - 0.9971679561F, 0.9971872617F, 0.9972064702F, 0.9972255818F, - 0.9972445968F, 0.9972635157F, 0.9972823386F, 0.9973010659F, - 0.9973196980F, 0.9973382350F, 0.9973566773F, 0.9973750253F, - 0.9973932791F, 0.9974114392F, 0.9974295059F, 0.9974474793F, - 0.9974653599F, 0.9974831480F, 0.9975008438F, 0.9975184476F, - 0.9975359598F, 0.9975533806F, 0.9975707104F, 0.9975879495F, - 0.9976050981F, 0.9976221566F, 0.9976391252F, 0.9976560043F, - 0.9976727941F, 0.9976894950F, 0.9977061073F, 0.9977226312F, - 0.9977390671F, 0.9977554152F, 0.9977716759F, 0.9977878495F, - 0.9978039361F, 0.9978199363F, 0.9978358501F, 0.9978516780F, - 0.9978674202F, 0.9978830771F, 0.9978986488F, 0.9979141358F, - 0.9979295383F, 0.9979448566F, 0.9979600909F, 0.9979752417F, - 0.9979903091F, 0.9980052936F, 0.9980201952F, 0.9980350145F, - 0.9980497515F, 0.9980644067F, 0.9980789804F, 0.9980934727F, - 0.9981078841F, 0.9981222147F, 0.9981364649F, 0.9981506350F, - 0.9981647253F, 0.9981787360F, 0.9981926674F, 0.9982065199F, - 0.9982202936F, 0.9982339890F, 0.9982476062F, 0.9982611456F, - 0.9982746074F, 0.9982879920F, 0.9983012996F, 0.9983145304F, - 0.9983276849F, 0.9983407632F, 0.9983537657F, 0.9983666926F, - 0.9983795442F, 0.9983923208F, 0.9984050226F, 0.9984176501F, - 0.9984302033F, 0.9984426827F, 0.9984550884F, 0.9984674208F, - 0.9984796802F, 0.9984918667F, 0.9985039808F, 0.9985160227F, - 0.9985279926F, 0.9985398909F, 0.9985517177F, 0.9985634734F, - 0.9985751583F, 0.9985867727F, 0.9985983167F, 0.9986097907F, - 0.9986211949F, 0.9986325297F, 0.9986437953F, 0.9986549919F, - 0.9986661199F, 0.9986771795F, 0.9986881710F, 0.9986990946F, - 0.9987099507F, 0.9987207394F, 0.9987314611F, 0.9987421161F, - 0.9987527045F, 0.9987632267F, 0.9987736829F, 0.9987840734F, - 0.9987943985F, 0.9988046584F, 0.9988148534F, 0.9988249838F, - 0.9988350498F, 0.9988450516F, 0.9988549897F, 0.9988648641F, - 0.9988746753F, 0.9988844233F, 0.9988941086F, 0.9989037313F, - 0.9989132918F, 0.9989227902F, 0.9989322269F, 0.9989416021F, - 0.9989509160F, 0.9989601690F, 0.9989693613F, 0.9989784931F, - 0.9989875647F, 0.9989965763F, 0.9990055283F, 0.9990144208F, - 0.9990232541F, 0.9990320286F, 0.9990407443F, 0.9990494016F, - 0.9990580008F, 0.9990665421F, 0.9990750257F, 0.9990834519F, - 0.9990918209F, 0.9991001331F, 0.9991083886F, 0.9991165877F, - 0.9991247307F, 0.9991328177F, 0.9991408491F, 0.9991488251F, - 0.9991567460F, 0.9991646119F, 0.9991724232F, 0.9991801801F, - 0.9991878828F, 0.9991955316F, 0.9992031267F, 0.9992106684F, - 0.9992181569F, 0.9992255925F, 0.9992329753F, 0.9992403057F, - 0.9992475839F, 0.9992548101F, 0.9992619846F, 0.9992691076F, - 0.9992761793F, 0.9992832001F, 0.9992901701F, 0.9992970895F, - 0.9993039587F, 0.9993107777F, 0.9993175470F, 0.9993242667F, - 0.9993309371F, 0.9993375583F, 0.9993441307F, 0.9993506545F, - 0.9993571298F, 0.9993635570F, 0.9993699362F, 0.9993762678F, - 0.9993825519F, 0.9993887887F, 0.9993949785F, 0.9994011216F, - 0.9994072181F, 0.9994132683F, 0.9994192725F, 0.9994252307F, - 0.9994311434F, 0.9994370107F, 0.9994428327F, 0.9994486099F, - 0.9994543423F, 0.9994600303F, 0.9994656739F, 0.9994712736F, - 0.9994768294F, 0.9994823417F, 0.9994878105F, 0.9994932363F, - 0.9994986191F, 0.9995039592F, 0.9995092568F, 0.9995145122F, - 0.9995197256F, 0.9995248971F, 0.9995300270F, 0.9995351156F, - 0.9995401630F, 0.9995451695F, 0.9995501352F, 0.9995550604F, - 0.9995599454F, 0.9995647903F, 0.9995695953F, 0.9995743607F, - 0.9995790866F, 0.9995837734F, 0.9995884211F, 0.9995930300F, - 0.9995976004F, 0.9996021324F, 0.9996066263F, 0.9996110822F, - 0.9996155004F, 0.9996198810F, 0.9996242244F, 0.9996285306F, - 0.9996327999F, 0.9996370326F, 0.9996412287F, 0.9996453886F, - 0.9996495125F, 0.9996536004F, 0.9996576527F, 0.9996616696F, - 0.9996656512F, 0.9996695977F, 0.9996735094F, 0.9996773865F, - 0.9996812291F, 0.9996850374F, 0.9996888118F, 0.9996925523F, - 0.9996962591F, 0.9996999325F, 0.9997035727F, 0.9997071798F, - 0.9997107541F, 0.9997142957F, 0.9997178049F, 0.9997212818F, - 0.9997247266F, 0.9997281396F, 0.9997315209F, 0.9997348708F, - 0.9997381893F, 0.9997414767F, 0.9997447333F, 0.9997479591F, - 0.9997511544F, 0.9997543194F, 0.9997574542F, 0.9997605591F, - 0.9997636342F, 0.9997666797F, 0.9997696958F, 0.9997726828F, - 0.9997756407F, 0.9997785698F, 0.9997814703F, 0.9997843423F, - 0.9997871860F, 0.9997900016F, 0.9997927894F, 0.9997955494F, - 0.9997982818F, 0.9998009869F, 0.9998036648F, 0.9998063157F, - 0.9998089398F, 0.9998115373F, 0.9998141082F, 0.9998166529F, - 0.9998191715F, 0.9998216642F, 0.9998241311F, 0.9998265724F, - 0.9998289884F, 0.9998313790F, 0.9998337447F, 0.9998360854F, - 0.9998384015F, 0.9998406930F, 0.9998429602F, 0.9998452031F, - 0.9998474221F, 0.9998496171F, 0.9998517885F, 0.9998539364F, - 0.9998560610F, 0.9998581624F, 0.9998602407F, 0.9998622962F, - 0.9998643291F, 0.9998663394F, 0.9998683274F, 0.9998702932F, - 0.9998722370F, 0.9998741589F, 0.9998760591F, 0.9998779378F, - 0.9998797952F, 0.9998816313F, 0.9998834464F, 0.9998852406F, - 0.9998870141F, 0.9998887670F, 0.9998904995F, 0.9998922117F, - 0.9998939039F, 0.9998955761F, 0.9998972285F, 0.9998988613F, - 0.9999004746F, 0.9999020686F, 0.9999036434F, 0.9999051992F, - 0.9999067362F, 0.9999082544F, 0.9999097541F, 0.9999112354F, - 0.9999126984F, 0.9999141433F, 0.9999155703F, 0.9999169794F, - 0.9999183709F, 0.9999197449F, 0.9999211014F, 0.9999224408F, - 0.9999237631F, 0.9999250684F, 0.9999263570F, 0.9999276289F, - 0.9999288843F, 0.9999301233F, 0.9999313461F, 0.9999325529F, - 0.9999337437F, 0.9999349187F, 0.9999360780F, 0.9999372218F, - 0.9999383503F, 0.9999394635F, 0.9999405616F, 0.9999416447F, - 0.9999427129F, 0.9999437665F, 0.9999448055F, 0.9999458301F, - 0.9999468404F, 0.9999478365F, 0.9999488185F, 0.9999497867F, - 0.9999507411F, 0.9999516819F, 0.9999526091F, 0.9999535230F, - 0.9999544236F, 0.9999553111F, 0.9999561856F, 0.9999570472F, - 0.9999578960F, 0.9999587323F, 0.9999595560F, 0.9999603674F, - 0.9999611666F, 0.9999619536F, 0.9999627286F, 0.9999634917F, - 0.9999642431F, 0.9999649828F, 0.9999657110F, 0.9999664278F, - 0.9999671334F, 0.9999678278F, 0.9999685111F, 0.9999691835F, - 0.9999698451F, 0.9999704960F, 0.9999711364F, 0.9999717662F, - 0.9999723858F, 0.9999729950F, 0.9999735942F, 0.9999741834F, - 0.9999747626F, 0.9999753321F, 0.9999758919F, 0.9999764421F, - 0.9999769828F, 0.9999775143F, 0.9999780364F, 0.9999785495F, - 0.9999790535F, 0.9999795485F, 0.9999800348F, 0.9999805124F, - 0.9999809813F, 0.9999814417F, 0.9999818938F, 0.9999823375F, - 0.9999827731F, 0.9999832005F, 0.9999836200F, 0.9999840316F, - 0.9999844353F, 0.9999848314F, 0.9999852199F, 0.9999856008F, - 0.9999859744F, 0.9999863407F, 0.9999866997F, 0.9999870516F, - 0.9999873965F, 0.9999877345F, 0.9999880656F, 0.9999883900F, - 0.9999887078F, 0.9999890190F, 0.9999893237F, 0.9999896220F, - 0.9999899140F, 0.9999901999F, 0.9999904796F, 0.9999907533F, - 0.9999910211F, 0.9999912830F, 0.9999915391F, 0.9999917896F, - 0.9999920345F, 0.9999922738F, 0.9999925077F, 0.9999927363F, - 0.9999929596F, 0.9999931777F, 0.9999933907F, 0.9999935987F, - 0.9999938018F, 0.9999940000F, 0.9999941934F, 0.9999943820F, - 0.9999945661F, 0.9999947456F, 0.9999949206F, 0.9999950912F, - 0.9999952575F, 0.9999954195F, 0.9999955773F, 0.9999957311F, - 0.9999958807F, 0.9999960265F, 0.9999961683F, 0.9999963063F, - 0.9999964405F, 0.9999965710F, 0.9999966979F, 0.9999968213F, - 0.9999969412F, 0.9999970576F, 0.9999971707F, 0.9999972805F, - 0.9999973871F, 0.9999974905F, 0.9999975909F, 0.9999976881F, - 0.9999977824F, 0.9999978738F, 0.9999979624F, 0.9999980481F, - 0.9999981311F, 0.9999982115F, 0.9999982892F, 0.9999983644F, - 0.9999984370F, 0.9999985072F, 0.9999985750F, 0.9999986405F, - 0.9999987037F, 0.9999987647F, 0.9999988235F, 0.9999988802F, - 0.9999989348F, 0.9999989873F, 0.9999990379F, 0.9999990866F, - 0.9999991334F, 0.9999991784F, 0.9999992217F, 0.9999992632F, - 0.9999993030F, 0.9999993411F, 0.9999993777F, 0.9999994128F, - 0.9999994463F, 0.9999994784F, 0.9999995091F, 0.9999995384F, - 0.9999995663F, 0.9999995930F, 0.9999996184F, 0.9999996426F, - 0.9999996657F, 0.9999996876F, 0.9999997084F, 0.9999997282F, - 0.9999997469F, 0.9999997647F, 0.9999997815F, 0.9999997973F, - 0.9999998123F, 0.9999998265F, 0.9999998398F, 0.9999998524F, - 0.9999998642F, 0.9999998753F, 0.9999998857F, 0.9999998954F, - 0.9999999045F, 0.9999999130F, 0.9999999209F, 0.9999999282F, - 0.9999999351F, 0.9999999414F, 0.9999999472F, 0.9999999526F, - 0.9999999576F, 0.9999999622F, 0.9999999664F, 0.9999999702F, - 0.9999999737F, 0.9999999769F, 0.9999999798F, 0.9999999824F, - 0.9999999847F, 0.9999999868F, 0.9999999887F, 0.9999999904F, - 0.9999999919F, 0.9999999932F, 0.9999999943F, 0.9999999953F, - 0.9999999961F, 0.9999999969F, 0.9999999975F, 0.9999999980F, - 0.9999999985F, 0.9999999988F, 0.9999999991F, 0.9999999993F, - 0.9999999995F, 0.9999999997F, 0.9999999998F, 0.9999999999F, - 0.9999999999F, 1.0000000000F, 1.0000000000F, 1.0000000000F, - 1.0000000000F, 1.0000000000F, 1.0000000000F, 1.0000000000F, -}; - -static const float *const vwin[8] = { - vwin64, - vwin128, - vwin256, - vwin512, - vwin1024, - vwin2048, - vwin4096, - vwin8192, -}; - -const float *_vorbis_window_get(int n){ - return vwin[n]; -} - -void _vorbis_apply_window(float *d,int *winno,long *blocksizes, - int lW,int W,int nW){ - lW=(W?lW:0); - nW=(W?nW:0); - - { - const float *windowLW=vwin[winno[lW]]; - const float *windowNW=vwin[winno[nW]]; - - long n=blocksizes[W]; - long ln=blocksizes[lW]; - long rn=blocksizes[nW]; - - long leftbegin=n/4-ln/4; - long leftend=leftbegin+ln/2; - - long rightbegin=n/2+n/4-rn/4; - long rightend=rightbegin+rn/2; - - int i,p; - - for(i=0;i - * - */ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libogg.LICENSE b/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libogg.LICENSE deleted file mode 100644 index 166e6209..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libogg.LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -Ogg - Free Open Media Container Format -Copyright (c) 2002 Xiph.org Foundation - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of the Xiph.org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libtheora.LICENSE b/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libtheora.LICENSE deleted file mode 100644 index 48742702..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libtheora.LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -Theora - Free Open Video Codec -Copyright (c) 2002-2009 Xiph.org Foundation - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of the Xiph.org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libvorbis.LICENSE b/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libvorbis.LICENSE deleted file mode 100644 index b8befc98..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/licenses/libvorbis.LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -Vorbis - Free Open Audio Codec -Copyright (c) 2002-2018 Xiph.org Foundation - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions -are met: - -- Redistributions of source code must retain the above copyright -notice, this list of conditions and the following disclaimer. - -- Redistributions in binary form must reproduce the above copyright -notice, this list of conditions and the following disclaimer in the -documentation and/or other materials provided with the distribution. - -- Neither the name of the Xiph.org Foundation nor the names of its -contributors may be used to endorse or promote products derived from -this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION -OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/glfuncs.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/glfuncs.h deleted file mode 100644 index dc0cbf04..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/glfuncs.h +++ /dev/null @@ -1,25 +0,0 @@ -GL_PROC(void, glDepthMask, (GLenum a)) -GL_PROC(void, glDisable, (GLenum a)) -GL_PROC(void, glPixelStorei, (GLenum a, GLint b)) -GL_PROC(void, glGenTextures, (GLsizei a, GLuint *b)) -GL_PROC(void, glActiveTexture, (GLenum a)) -GL_PROC(void, glBindTexture, (GLenum a, GLuint b)) -GL_PROC(void, glTexImage2D, (GLenum a, GLint b, GLint c, GLsizei d, GLsizei e, GLint f, GLenum g, GLenum h, const GLvoid *i)) -GL_PROC(void, glTexSubImage2D, (GLenum a, GLint b, GLint c, GLint d, GLsizei e, GLsizei f, GLenum g, GLenum h, const GLvoid *i)) -GL_PROC(void, glTexParameteri, (GLenum a, GLenum b, GLint c)) -GL_PROC(GLuint, glCreateShader, (GLenum a)) -GL_PROC(void, glShaderSource, (GLuint a, GLsizei b, const GLchar *const*c, const GLint *d)) -GL_PROC(void, glCompileShader, (GLuint a)) -GL_PROC(GLuint, glCreateProgram, (void)) -GL_PROC(void, glAttachShader, (GLuint a, GLuint b)) -GL_PROC(void, glBindAttribLocation, (GLuint a, GLuint b, const GLchar *c)) -GL_PROC(void, glLinkProgram, (GLuint a)) -GL_PROC(void, glDeleteShader, (GLuint a)) -GL_PROC(void, glUseProgram, (GLuint a)) -GL_PROC(void, glUniform1i, (GLint a, GLint b)) -GL_PROC(GLint, glGetUniformLocation, (GLuint a, const GLchar *b)) -GL_PROC(void, glVertexAttribPointer, (GLuint a, GLint b, GLenum c, GLboolean d, GLsizei e, const void *f)) -GL_PROC(void, glEnableVertexAttribArray, (GLuint a)) -GL_PROC(void, glDrawArrays, (GLenum a, GLint b, GLsizei c)) -GL_PROC(void, glDeleteProgram, (GLuint a)) -GL_PROC(void, glDeleteTextures, (GLsizei a, const GLuint *b)) diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/glmacros.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/glmacros.h deleted file mode 100644 index 7527fa77..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/glmacros.h +++ /dev/null @@ -1,25 +0,0 @@ -#define glDepthMask INTERNAL_glDepthMask -#define glDisable INTERNAL_glDisable -#define glPixelStorei INTERNAL_glPixelStorei -#define glGenTextures INTERNAL_glGenTextures -#define glActiveTexture INTERNAL_glActiveTexture -#define glBindTexture INTERNAL_glBindTexture -#define glTexImage2D INTERNAL_glTexImage2D -#define glTexSubImage2D INTERNAL_glTexSubImage2D -#define glTexParameteri INTERNAL_glTexParameteri -#define glCreateShader INTERNAL_glCreateShader -#define glShaderSource INTERNAL_glShaderSource -#define glCompileShader INTERNAL_glCompileShader -#define glCreateProgram INTERNAL_glCreateProgram -#define glAttachShader INTERNAL_glAttachShader -#define glBindAttribLocation INTERNAL_glBindAttribLocation -#define glLinkProgram INTERNAL_glLinkProgram -#define glDeleteShader INTERNAL_glDeleteShader -#define glUseProgram INTERNAL_glUseProgram -#define glUniform1i INTERNAL_glUniform1i -#define glGetUniformLocation INTERNAL_glGetUniformLocation -#define glVertexAttribPointer INTERNAL_glVertexAttribPointer -#define glEnableVertexAttribArray INTERNAL_glEnableVertexAttribArray -#define glDrawArrays INTERNAL_glDrawArrays -#define glDeleteProgram INTERNAL_glDeleteProgram -#define glDeleteTextures INTERNAL_glDeleteTextures diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/sdl2test.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/sdl2test.c deleted file mode 100644 index bfeb882e..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/sdl2test/sdl2test.c +++ /dev/null @@ -1,409 +0,0 @@ -/* Theorafile - Ogg Theora Video Decoder Library - * - * Copyright (c) 2017-2021 Ethan Lee. - * Based on TheoraPlay, Copyright (c) 2011-2016 Ryan C. Gordon. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include -#include -#include -#include "theorafile.h" - -/* GL Function typedefs */ -#define GL_PROC(ret, func, parms) \ - typedef ret (GLAPIENTRY *glfntype_##func) parms; -#include "glfuncs.h" -#undef GL_PROC -/* GL Function declarations */ -#define GL_PROC(ret, func, parms) \ - glfntype_##func INTERNAL_##func; -#include "glfuncs.h" -#undef GL_PROC - -static const GLchar *GLVert = - "#version 110\n" - "attribute vec2 pos;\n" - "attribute vec2 tex;\n" - "void main() {\n" - "gl_Position = vec4(pos.xy, 0.0, 1.0);\n" - "gl_TexCoord[0].xy = tex;\n" - "}\n"; - -/* This shader was originally from SDL 1.3! - * It has been modified to use color conversion for HD formats: - * http://www.equasys.de/colorconversion.html - * http://www.equasys.de/colorformat.html - */ -static const GLchar *GLFrag = - "#version 110\n" - "uniform sampler2D samp0;\n" - "uniform sampler2D samp1;\n" - "uniform sampler2D samp2;\n" - "const vec3 offset = vec3(-0.0625, -0.5, -0.5);\n" - "const vec3 Rcoeff = vec3(1.164, 0.000, 1.793);\n" - "const vec3 Gcoeff = vec3(1.164, -0.213, -0.533);\n" - "const vec3 Bcoeff = vec3(1.164, 2.112, 0.000);\n" - "void main() {\n" - " vec2 tcoord;\n" - " vec3 yuv, rgb;\n" - " tcoord = gl_TexCoord[0].xy;\n" - " yuv.x = texture2D(samp0, tcoord).r;\n" - " yuv.y = texture2D(samp1, tcoord).r;\n" - " yuv.z = texture2D(samp2, tcoord).r;\n" - " yuv += offset;\n" - " rgb.r = dot(yuv, Rcoeff);\n" - " rgb.g = dot(yuv, Gcoeff);\n" - " rgb.b = dot(yuv, Bcoeff);\n" - " gl_FragColor = vec4(rgb, 1.0);\n" - "}\n"; - -void AudioCallback(void *userdata, Uint8* stream, int len) -{ - const int samples = len / 4; - int read = tf_readaudio((OggTheora_File*) userdata, (float*) stream, samples); - if (read < samples) - { - SDL_memset(stream + read * 4, '\0', (samples - read) * 4); - } -} - -int main(int argc, char **argv) -{ - /* SDL variables */ - SDL_Window *window; - SDL_GLContext context; - SDL_AudioDeviceID audio; - SDL_AudioSpec spec; - SDL_Event evt; - Uint64 timeStart, timeCurrent; - Uint8 run = 1; - - /* Theorafile variables */ - OggTheora_File fileIn; - int width, height, uvWidth, uvHeight; - int channels, samplerate; - double fps; - th_pixel_fmt fmt; - int curframe = 0, thisframe, newframe; - char *frame = NULL; - - /* OpenGL variables */ - GLuint yuvTextures[3]; - GLuint vertex = 0; - GLuint fragment = 0; - GLuint program = 0; - GLint shaderlen = 0; - - /* Vertex client arrays */ - static struct { float pos[2]; float tex[2]; } verts[4] = { - { { -1.0f, 1.0f }, { 0.0f, 0.0f } }, - { { 1.0f, 1.0f }, { 1.0f, 0.0f } }, - { { -1.0f, -1.0f }, { 0.0f, 1.0f } }, - { { 1.0f, -1.0f }, { 1.0f, 1.0f } } - }; - - /* We need a file name! */ - if (argc < 2 || argc > 2) - { - SDL_Log("Need a file name!\n"); - return 1; - } - - /* Open the Theora file */ - if (tf_fopen(argv[1], &fileIn) < 0) - { - SDL_Log("Failed to open file.\n"); - return 1; - } - - /* This is a video test, people! */ - if (!tf_hasvideo(&fileIn)) - { - SDL_Log("No video!\n"); - return 1; - } - - /* Get the video metadata, allocate first frame */ - tf_videoinfo(&fileIn, &width, &height, &fps, &fmt); - frame = (char*) SDL_malloc(width * height * 2); - if (fmt == TH_PF_420) - { - /* Subsampled in both dimensions */ - uvWidth = width / 2; - uvHeight = height / 2; - } - else if (fmt == TH_PF_422) - { - /* Subsampled only horizontally */ - uvWidth = width / 2; - uvHeight = height; - } - else - { - /* No subsampling at all... */ - uvWidth = width; - uvHeight = height; - } - while (!tf_readvideo(&fileIn, frame, 1)); - - /* Create window (and audio device, if applicable) */ - SDL_Init(SDL_INIT_VIDEO | SDL_INIT_AUDIO); - window = SDL_CreateWindow( - "Theorafile Test", - SDL_WINDOWPOS_CENTERED, - SDL_WINDOWPOS_CENTERED, - width, - height, - SDL_WINDOW_OPENGL - ); - context = SDL_GL_CreateContext(window); - SDL_GL_SetSwapInterval(1); - - /* GL function loading */ - #define GL_PROC(ret, func, parms) \ - INTERNAL_##func = (glfntype_##func) SDL_GL_GetProcAddress(#func); - #include "glfuncs.h" - #undef GL_PROC - - /* Remap GL function names to internal entry points */ - #include "glmacros.h" - - if (tf_hasaudio(&fileIn)) - { - /* Get the audio metadata, allocate queue */ - tf_audioinfo(&fileIn, &channels, &samplerate); - SDL_zero(spec); - spec.freq = samplerate; - spec.format = AUDIO_F32; - spec.channels = channels; - spec.samples = 4096; - spec.callback = AudioCallback; - spec.userdata = &fileIn; - audio = SDL_OpenAudioDevice( - NULL, - 0, - &spec, - NULL, - 0 - ); - SDL_PauseAudioDevice(audio, 0); - } - - /* Initial GL state */ - glDepthMask(GL_FALSE); - glDisable(GL_DEPTH_TEST); - glDisable(GL_ALPHA_TEST); - glDisable(GL_BLEND); - glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - - /* YUV buffers */ - glGenTextures(3, yuvTextures); - #define GEN_TEXTURE(index, w, h, ptr) \ - glActiveTexture(GL_TEXTURE0 + index); \ - glBindTexture(GL_TEXTURE_2D, yuvTextures[index]); \ - glTexImage2D( \ - GL_TEXTURE_2D, \ - 0, \ - GL_LUMINANCE8, \ - w, \ - h, \ - 0, \ - GL_LUMINANCE, \ - GL_UNSIGNED_BYTE, \ - ptr \ - ); \ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); \ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); \ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); \ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); \ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_BASE_LEVEL, 0); \ - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAX_LEVEL, 0); - GEN_TEXTURE( - 0, - width, - height, - frame - ) - GEN_TEXTURE( - 1, - uvWidth, - uvHeight, - frame + (width * height) - ) - GEN_TEXTURE( - 2, - uvWidth, - uvHeight, - frame + (width * height) + (uvWidth * uvHeight) - ) - #undef GEN_TEXTURE - - /* Vertex shader... */ - shaderlen = (GLint) SDL_strlen(GLVert); - vertex = glCreateShader(GL_VERTEX_SHADER); - glShaderSource(vertex, 1, &GLVert, &shaderlen); - glCompileShader(vertex); - - /* Fragment shader... */ - shaderlen = (GLint) SDL_strlen(GLFrag); - fragment = glCreateShader(GL_FRAGMENT_SHADER); - glShaderSource(fragment, 1, &GLFrag, &shaderlen); - glCompileShader(fragment); - - /* Program object... */ - program = glCreateProgram(); - glAttachShader(program, vertex); - glAttachShader(program, fragment); - glBindAttribLocation(program, 0, "pos"); - glBindAttribLocation(program, 1, "tex"); - glLinkProgram(program); - glDeleteShader(vertex); - glDeleteShader(fragment); - - /* ... Finally. */ - glUseProgram(program); - glUniform1i(glGetUniformLocation(program, "samp0"), 0); - glUniform1i(glGetUniformLocation(program, "samp1"), 1); - glUniform1i(glGetUniformLocation(program, "samp2"), 2); - - /* Vertex buffers */ - glVertexAttribPointer(0, 2, GL_FLOAT, 0, sizeof (verts[0]), &verts[0].pos[0]); - glVertexAttribPointer(1, 2, GL_FLOAT, 0, sizeof (verts[0]), &verts[0].tex[0]); - glEnableVertexAttribArray(0); - glEnableVertexAttribArray(1); - - timeStart = SDL_GetPerformanceCounter(); - while (run) - { - while (SDL_PollEvent(&evt)) - { - if (evt.type == SDL_QUIT) - { - run = 0; - } - else if (evt.type == SDL_KEYDOWN) - { - if (evt.key.keysym.sym == SDLK_SPACE) - { - /* Slowdown simulator */ - SDL_Delay(1000); - } - else if ( evt.key.keysym.sym >= SDLK_1 && - evt.key.keysym.sym <= SDLK_9 ) - { - SDL_LockAudioDevice(audio); - tf_setaudiotrack( - &fileIn, - evt.key.keysym.sym - SDLK_1 - ); - SDL_UnlockAudioDevice(audio); - } - } - } - - /* Loop this video! */ - SDL_LockAudioDevice(audio); - if (tf_eos(&fileIn)) - { - tf_reset(&fileIn); - } - SDL_UnlockAudioDevice(audio); - - /* Based on when we started, what frame should we be on? */ - timeCurrent = SDL_GetPerformanceCounter(); - thisframe = (int) ( - (double) (timeCurrent - timeStart) / - (double) SDL_GetPerformanceFrequency() * - fps - ); - if (thisframe > curframe) - { - /* Keep reading frames until we're caught up */ - SDL_LockAudioDevice(audio); - newframe = tf_readvideo(&fileIn, frame, thisframe - curframe); - SDL_UnlockAudioDevice(audio); - curframe = thisframe; - - /* Only update the textures if we need to! */ - if (newframe) - { - glActiveTexture(GL_TEXTURE0); - glTexSubImage2D( - GL_TEXTURE_2D, - 0, - 0, - 0, - width, - height, - GL_LUMINANCE, - GL_UNSIGNED_BYTE, - frame - ); - glActiveTexture(GL_TEXTURE1); - glTexSubImage2D( - GL_TEXTURE_2D, - 0, - 0, - 0, - uvWidth, - uvHeight, - GL_LUMINANCE, - GL_UNSIGNED_BYTE, - frame + (width * height) - ); - glActiveTexture(GL_TEXTURE2); - glTexSubImage2D( - GL_TEXTURE_2D, - 0, - 0, - 0, - uvWidth, - uvHeight, - GL_LUMINANCE, - GL_UNSIGNED_BYTE, - frame + (width * height) + (uvWidth * uvHeight) - ); - } - } - - /* Draw! */ - glDrawArrays(GL_TRIANGLE_STRIP, 0, 4); - SDL_GL_SwapWindow(window); - } - - /* Clean up. We out. */ - glDeleteProgram(program); - glDeleteTextures(3, yuvTextures); - SDL_free(frame); - if (tf_hasaudio(&fileIn)) - { - SDL_CloseAudioDevice(audio); - } - tf_close(&fileIn); - SDL_GL_DeleteContext(context); - SDL_DestroyWindow(window); - SDL_Quit(); - SDL_Log("Test complete.\n"); - return 0; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/theorafile.c b/RE/Commit2/ThirdParty/fna/lib/Theorafile/theorafile.c deleted file mode 100644 index 257d87b7..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/theorafile.c +++ /dev/null @@ -1,674 +0,0 @@ -/* Theorafile - Ogg Theora Video Decoder Library - * - * Copyright (c) 2017-2021 Ethan Lee. - * Based on TheoraPlay, Copyright (c) 2011-2016 Ryan C. Gordon. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#include "theorafile.h" - -#include /* fopen and friends */ -#include /* realloc */ -#include /* memcpy, memset */ - -#define TF_DEFAULT_BUFFER_SIZE 4096 - -#ifdef _WIN32 -#define inline __inline -#endif /* _WIN32 */ - -static inline int INTERNAL_readOggData(OggTheora_File *file) -{ - long buflen = TF_DEFAULT_BUFFER_SIZE; - char *buffer = ogg_sync_buffer(&file->sync, buflen); - if (buffer == NULL) - { - /* If you made it here, you ran out of RAM (wait, what?) */ - return -1; - } - - buflen = file->io.read_func(buffer, 1, buflen, file->datasource); - if (buflen <= 0) - { - return 0; - } - - return (ogg_sync_wrote(&file->sync, buflen) == 0) ? 1 : -1; -} - -static inline void INTERNAL_queueOggPage(OggTheora_File *file) -{ - if (file->tpackets) - { - ogg_stream_pagein(&file->tstream[file->ttrack], &file->page); - } - if (file->vpackets) - { - ogg_stream_pagein(&file->vstream[file->vtrack], &file->page); - } -} - -static inline int INTERNAL_getNextPacket( - OggTheora_File *file, - ogg_stream_state *stream, - ogg_packet *packet -) { - while (ogg_stream_packetout(stream, packet) <= 0) - { - const int rc = INTERNAL_readOggData(file); - if (rc == 0) - { - file->eos = 1; - return 0; - } - else if (rc < 0) - { - /* If you made it here, something REALLY bad happened. - * - * Unfortunately, ogg_sync_wrote does not give out any - * codes, so I have no idea what that something is. - * - * Be sure you're not doing something nasty like - * accessing one file via multiple threads at one time. - * -flibit - */ - file->eos = 1; - return 0; - } - else - { - while (ogg_sync_pageout(&file->sync, &file->page) > 0) - { - INTERNAL_queueOggPage(file); - } - } - } - return 1; -} - -int tf_open_callbacks(void *datasource, OggTheora_File *file, tf_callbacks io) -{ - ogg_packet packet; - ogg_stream_state filler; - th_setup_info *tsetup = NULL; - int pp_level_max = 0; - int errcode = TF_EUNKNOWN; - vorbis_info vinfo; - vorbis_comment vcomment; - th_info tinfo; - th_comment tcomment; - int i; - - if (datasource == NULL) - { - return TF_ENODATASOURCE; - } - - memset(file, '\0', sizeof(OggTheora_File)); - file->datasource = datasource; - file->io = io; - - #define TF_OPEN_ASSERT(cond) \ - if (cond) goto fail; - - - ogg_sync_init(&file->sync); - vorbis_info_init(&vinfo); - vorbis_comment_init(&vcomment); - th_info_init(&tinfo); - th_comment_init(&tcomment); - - /* Is there even data for us to read...? */ - TF_OPEN_ASSERT(INTERNAL_readOggData(file) <= 0) - - /* Read header */ - while (ogg_sync_pageout(&file->sync, &file->page) > 0) - { - if (!ogg_page_bos(&file->page)) - { - /* Not a header! */ - INTERNAL_queueOggPage(file); - break; - } - - ogg_stream_init(&filler, ogg_page_serialno(&file->page)); - ogg_stream_pagein(&filler, &file->page); - ogg_stream_packetout(&filler, &packet); - - if (th_decode_headerin( - &tinfo, - &tcomment, - &tsetup, - &packet - ) >= 0) { - file->tinfo = realloc(file->tinfo, (file->ttracks + 1) * sizeof(file->tinfo[0])); - file->tcomment = realloc(file->tcomment, (file->ttracks + 1) * sizeof(file->tcomment[0])); - file->tstream = realloc(file->tstream, (file->ttracks + 1) * sizeof(file->tstream[0])); - file->tdec = realloc(file->tdec, (file->ttracks + 1) * sizeof(file->tdec[0])); - file->tinfo[file->ttracks] = tinfo; - file->tcomment[file->ttracks] = tcomment; - memcpy(&file->tstream[file->ttracks], &filler, sizeof(filler)); - file->ttracks += 1; - file->tpackets += 1; - - /* Reset this for other possible Theora streams */ - th_info_init(&tinfo); - th_comment_init(&tcomment); - } - else if (vorbis_synthesis_headerin( - &vinfo, - &vcomment, - &packet - ) >= 0) { - file->vinfo = realloc(file->vinfo, (file->vtracks + 1) * sizeof(file->vinfo[0])); - file->vcomment = realloc(file->vcomment, (file->vtracks + 1) * sizeof(file->vcomment[0])); - file->vstream = realloc(file->vstream, (file->vtracks + 1) * sizeof(file->vstream[0])); - file->vinfo[file->vtracks] = vinfo; - file->vcomment[file->vtracks] = vcomment; - memcpy(&file->vstream[file->vtracks], &filler, sizeof(filler)); - file->vtracks += 1; - file->vpackets += 1; - - /* Reset this for other possible Vorbis streams */ - vorbis_info_init(&vinfo); - vorbis_comment_init(&vcomment); - } - else - { - /* Whatever it is, we don't care about it */ - ogg_stream_clear(&filler); - } - } - - vorbis_comment_clear(&vcomment); - vorbis_info_clear(&vinfo); - th_info_init(&tinfo); - th_comment_init(&tcomment); - - /* No audio OR video? */ - TF_OPEN_ASSERT(!file->tpackets && !file->vpackets) - - /* Apparently there are 2 more theora and 2 more vorbis headers next. */ - #define TPACKETS (file->tpackets && (file->tpackets < (file->ttracks + 2))) - #define VPACKETS (file->vpackets && (file->vpackets < (file->vtracks + 2))) - while (TPACKETS || VPACKETS) - { - while (TPACKETS) - { - if (ogg_stream_packetout( - &file->tstream[file->ttrack], - &packet - ) != 1) { - /* Get more data? */ - break; - } - TF_OPEN_ASSERT(!th_decode_headerin( - &file->tinfo[0], - &file->tcomment[0], - &tsetup, - &packet - )) - file->tpackets += 1; - } - - while (VPACKETS) - { - if (ogg_stream_packetout( - &file->vstream[file->vtrack], - &packet - ) != 1) { - /* Get more data? */ - break; - } - TF_OPEN_ASSERT(vorbis_synthesis_headerin( - &file->vinfo[0], - &file->vcomment[0], - &packet - )) - file->vpackets += 1; - } - - /* Get another page, try again? */ - if (ogg_sync_pageout(&file->sync, &file->page) > 0) - { - INTERNAL_queueOggPage(file); - } - else - { - TF_OPEN_ASSERT(INTERNAL_readOggData(file) < 0) - } - } - #undef TPACKETS - #undef VPACKETS - - /* Set up Theora stream */ - for (i = 0; i < file->ttracks; i += 1) - { - /* th_decode_alloc() docs say to check for - * insanely large frames yourself. - */ - TF_OPEN_ASSERT( - (file->tinfo[i].frame_width > 99999) || - (file->tinfo[i].frame_height > 99999) - ) - - /* FIXME: We treat "unspecified" as NTSC :shrug: */ - if ( (file->tinfo[i].colorspace != TH_CS_UNSPECIFIED) && - (file->tinfo[i].colorspace != TH_CS_ITU_REC_470M) && - (file->tinfo[i].colorspace != TH_CS_ITU_REC_470BG) ) - { - errcode = TF_EUNSUPPORTED; - goto fail; - } - - if ( file->tinfo[i].pixel_fmt != TH_PF_420 && - file->tinfo[i].pixel_fmt != TH_PF_422 && - file->tinfo[i].pixel_fmt != TH_PF_444 ) - { - errcode = TF_EUNSUPPORTED; - goto fail; - } - - /* The decoder, at last! */ - file->tdec[i] = th_decode_alloc(&file->tinfo[i], tsetup); - TF_OPEN_ASSERT(!file->tdec[i]) - - /* Disable all post-processing in the decoder. - * FIXME: Maybe an API to set this? - * FIXME: Could be TH_DECCTL_GET_PPLEVEL_MAX, for example! - * FIXME: Theoretically we could enable post-processing and then - * FIXME: drop the quality level if we're not keeping up. - */ - th_decode_ctl( - file->tdec[i], - TH_DECCTL_SET_PPLEVEL, - &pp_level_max, - sizeof(pp_level_max) - ); - } - - /* Done with this now */ - if (tsetup != NULL) - { - th_setup_free(tsetup); - tsetup = NULL; - } - - /* Set up Vorbis stream */ - if (file->vpackets) - { - file->vdsp_init = vorbis_synthesis_init( - &file->vdsp, - &file->vinfo[file->vtrack] - ) == 0; - TF_OPEN_ASSERT(!file->vdsp_init) - file->vblock_init = vorbis_block_init( - &file->vdsp, - &file->vblock - ) == 0; - TF_OPEN_ASSERT(!file->vblock_init) - } - - #undef TF_OPEN_ASSERT - - /* Finally. */ - return 0; -fail: - if (tsetup != NULL) - { - th_setup_free(tsetup); - } - tf_close(file); - return errcode; -} - -int tf_fopen(const char *fname, OggTheora_File *file) -{ - tf_callbacks io = - { - (size_t (*) (void*, size_t, size_t, void*)) fread, - (int (*) (void*, ogg_int64_t, int)) fseek, - (int (*) (void*)) fclose, - }; - return tf_open_callbacks( - fopen(fname, "rb"), - file, - io - ); -} - -void tf_close(OggTheora_File *file) -{ - int i; - - /* Theora Data */ - for (i = 0; i < file->ttracks; i += 1) - { - if (file->tdec[i] != NULL) - { - th_decode_free(file->tdec[i]); - } - } - free(file->tdec); - - /* Vorbis Data */ - if (file->vblock_init) - { - vorbis_block_clear(&file->vblock); - } - if (file->vdsp_init) - { - vorbis_dsp_clear(&file->vdsp); - } - - /* Stream Data */ - for (i = 0; i < file->ttracks; i += 1) - { - ogg_stream_clear(&file->tstream[i]); - } - for (i = 0; i < file->vtracks; i += 1) - { - ogg_stream_clear(&file->vstream[i]); - } - - /* Metadata */ - for (i = 0; i < file->ttracks; i += 1) - { - th_info_clear(&file->tinfo[i]); - th_comment_clear(&file->tcomment[i]); - } - for (i = 0; i < file->vtracks; i += 1) - { - vorbis_comment_clear(&file->vcomment[i]); - vorbis_info_clear(&file->vinfo[i]); - } - free(file->tstream); - free(file->tcomment); - free(file->vstream); - free(file->vcomment); - free(file->vinfo); - free(file->tinfo); - - /* Current State */ - ogg_sync_clear(&file->sync); - - /* I/O Data */ - if (file->io.close_func != NULL) - { - file->io.close_func(file->datasource); - } -} - -int tf_hasvideo(OggTheora_File *file) -{ - return file->tpackets != 0; -} - -int tf_hasaudio(OggTheora_File *file) -{ - return file->vpackets != 0; -} - -void tf_videoinfo( - OggTheora_File *file, - int *width, - int *height, - double *fps, - th_pixel_fmt *fmt -) { - if (width != NULL) - { - *width = file->tinfo[file->ttrack].pic_width; - } - if (height != NULL) - { - *height = file->tinfo[file->ttrack].pic_height; - } - if (fps != NULL) - { - if (file->tinfo[file->ttrack].fps_denominator != 0) - { - *fps = ( - ((double) file->tinfo[file->ttrack].fps_numerator) / - ((double) file->tinfo[file->ttrack].fps_denominator) - ); - } - else - { - *fps = 0.0; - } - } - if (fmt != NULL) - { - *fmt = file->tinfo[file->ttrack].pixel_fmt; - } -} - -void tf_audioinfo(OggTheora_File *file, int *channels, int *samplerate) -{ - if (channels != NULL) - { - *channels = file->vinfo[file->vtrack].channels; - } - if (samplerate != NULL) - { - *samplerate = file->vinfo[file->vtrack].rate; - } -} - -int tf_setaudiotrack(OggTheora_File *file, int vtrack) -{ - /* Note there may be a slight delay changing track midstream. */ - if (vtrack >= 0 && vtrack < file->vtracks) - { - file->vtrack = vtrack; - return 1; - } - else - { - return 0; - } -} - -int tf_setvideotrack(OggTheora_File *file, int ttrack) -{ - /* Note there may be a slight delay changing track midstream. */ - if (ttrack >= 0 && ttrack < file->ttracks) - { - file->ttrack = ttrack; - return 1; - } - else - { - return 0; - } -} - -int tf_eos(OggTheora_File *file) -{ - return file->eos; -} - -void tf_reset(OggTheora_File *file) -{ - if (file->tpackets) - { - ogg_stream_reset(&file->tstream[file->ttrack]); - } - if (file->vpackets) - { - ogg_stream_reset(&file->vstream[file->vtrack]); - } - ogg_sync_reset(&file->sync); - file->io.seek_func(file->datasource, 0, SEEK_SET); - file->eos = 0; -} - -int tf_readvideo(OggTheora_File *file, char *buffer, int numframes) -{ - int i; - char *dst = buffer; - ogg_int64_t granulepos = 0; - ogg_packet packet; - th_ycbcr_buffer ycbcr; - int rc; - int w, h, off; - unsigned char *plane; - int stride; - int retval = 0; - - for (i = 0; i < numframes; i += 1) - { - /* Keep trying to get a usable packet */ - if (!INTERNAL_getNextPacket(file, &file->tstream[file->ttrack], &packet)) - { - /* ... unless there's nothing left for us to read. */ - if (retval) - { - break; - } - return 0; - } - - rc = th_decode_packetin( - file->tdec[file->ttrack], - &packet, - &granulepos - ); - - if (rc == 0) /* New frame! */ - { - retval = 1; - } - else if (rc != TH_DUPFRAME) - { - return 0; /* Why did we get here...? */ - } - } - - if (retval) /* New frame! */ - { - if (th_decode_ycbcr_out(file->tdec[file->ttrack], ycbcr) != 0) - { - return 0; /* Uhh?! */ - } - - #define TF_COPY_CHANNEL(chan) \ - plane = ycbcr[chan].data + off; \ - stride = ycbcr[chan].stride; \ - for (i = 0; i < h; i += 1, dst += w) \ - { \ - memcpy( \ - dst, \ - plane + (stride * i), \ - w \ - ); \ - } - /* Y */ - w = file->tinfo[file->ttrack].pic_width; - h = file->tinfo[file->ttrack].pic_height; - off = ( - (file->tinfo[file->ttrack].pic_x & ~1) + - ycbcr[0].stride * - (file->tinfo[file->ttrack].pic_y & ~1) - ); - TF_COPY_CHANNEL(0) - - /* U/V */ - if (file->tinfo[file->ttrack].pixel_fmt == TH_PF_420) - { - /* Subsampled in both dimensions */ - w /= 2; - h /= 2; - off = ( - (file->tinfo[file->ttrack].pic_x / 2) + - (ycbcr[1].stride) * - (file->tinfo[file->ttrack].pic_y / 2) - ); - } - else if (file->tinfo[file->ttrack].pixel_fmt == TH_PF_422) - { - /* Subsampled only horizontally */ - w /= 2; - off = ( - (file->tinfo[file->ttrack].pic_x / 2) + - (ycbcr[1].stride) * - (file->tinfo[file->ttrack].pic_y & ~1) - ); - } - TF_COPY_CHANNEL(1) - TF_COPY_CHANNEL(2) - #undef TF_COPY_CHANNEL - } - return retval; -} - -int tf_readaudio(OggTheora_File *file, float *buffer, int samples) -{ - int offset = 0; - int chan, frame; - ogg_packet packet; - float **pcm = NULL; - - while (offset < samples) - { - const int frames = vorbis_synthesis_pcmout(&file->vdsp, &pcm); - if (frames > 0) - { - /* I bet this beats the crap out of the CPU cache... */ - for (frame = 0; frame < frames; frame += 1) - for (chan = 0; chan < file->vinfo[file->vtrack].channels; chan += 1) - { - buffer[offset++] = pcm[chan][frame]; - if (offset >= samples) - { - vorbis_synthesis_read( - &file->vdsp, - frame - ); - return offset; - } - } - vorbis_synthesis_read(&file->vdsp, frames); - } - else /* No audio available left in current packet? */ - { - /* Keep trying to get a usable packet */ - if (!INTERNAL_getNextPacket(file, &file->vstream[file->vtrack], &packet)) - { - /* ... unless there's nothing left for us to read. */ - return offset; - } - if (vorbis_synthesis( - &file->vblock, - &packet - ) == 0) { - vorbis_synthesis_blockin( - &file->vdsp, - &file->vblock - ); - } - } - } - return offset; -} diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/theorafile.h b/RE/Commit2/ThirdParty/fna/lib/Theorafile/theorafile.h deleted file mode 100644 index 7b37a52c..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/theorafile.h +++ /dev/null @@ -1,168 +0,0 @@ -/* Theorafile - Ogg Theora Video Decoder Library - * - * Copyright (c) 2017-2021 Ethan Lee. - * Based on TheoraPlay, Copyright (c) 2011-2016 Ryan C. Gordon. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -#ifndef THEORAFILE_H -#define THEORAFILE_H - -#include -#include - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#ifndef DECLSPEC -#if defined(_WIN32) -#define DECLSPEC __declspec(dllexport) -#else -#define DECLSPEC -#endif -#endif - -/* I/O Handle + Callbacks */ -typedef struct tf_callbacks -{ - size_t (*read_func) (void *ptr, size_t size, size_t nmemb, void *datasource); - int (*seek_func) (void *datasource, ogg_int64_t offset, int origin); - int (*close_func) (void *datasource); -} tf_callbacks; - -/* File Handle */ -typedef struct OggTheora_File -{ - /* Current State */ - ogg_sync_state sync; - ogg_page page; - int eos; - - /* Stream Data */ - int tpackets; - int vpackets; - ogg_stream_state *tstream; - ogg_stream_state *vstream; - - /* Metadata */ - th_info *tinfo; - vorbis_info *vinfo; - th_comment *tcomment; - vorbis_comment *vcomment; - - /* Track data */ - int vtracks; - int vtrack; - int ttracks; - int ttrack; - - /* Theora Data */ - th_dec_ctx **tdec; - - /* Vorbis Data */ - int vdsp_init; - vorbis_dsp_state vdsp; - int vblock_init; - vorbis_block vblock; - - /* I/O Data */ - tf_callbacks io; - void *datasource; -} OggTheora_File; - -/* Open/Close */ -#define TF_EUNKNOWN -1 -#define TF_EUNSUPPORTED -2 -#define TF_ENODATASOURCE -3 -DECLSPEC int tf_open_callbacks( - void *datasource, - OggTheora_File *file, - tf_callbacks io -); -DECLSPEC int tf_fopen( - const char *fname, - OggTheora_File *file -); -DECLSPEC void tf_close(OggTheora_File *file); - -/* File Info */ -DECLSPEC int tf_hasvideo(OggTheora_File *file); -DECLSPEC int tf_hasaudio(OggTheora_File *file); -DECLSPEC void tf_videoinfo( - OggTheora_File *file, - int *width, - int *height, - double *fps, - th_pixel_fmt *fmt -); -DECLSPEC void tf_audioinfo( - OggTheora_File *file, - int *channels, - int *samplerate -); - -/* Stream State */ -DECLSPEC int tf_eos(OggTheora_File *file); -DECLSPEC void tf_reset(OggTheora_File *file); - -/* Data Reading - * - * Note that these functions are NOT thread-safe! You should put a mutex around - * these two calls if they are being called from separate threads. - * - * Also, `samples` is not measured in frames! - */ -DECLSPEC int tf_readvideo(OggTheora_File *file, char *buffer, int numframes); -DECLSPEC int tf_readaudio(OggTheora_File *file, float *buffer, int samples); - -/* Support for multiple audio tracks in a single file - * - * Note that this function is NOT thread-safe! You should put a mutex around it - * if the file is being accessed from separate threads. - * - * Also note that when called mid-stream, switching to the new track may take - * some time whie it finishes reading the current packet. When starting the - * decode, setting this _before_ reading should ensure that the track is fully - * clean without any artifacts from transitioning between tracks. - */ -DECLSPEC int tf_setaudiotrack(OggTheora_File *file, int vtrack); - -/* Support for multiple videotracks in a single file - * - * Note that this function is NOT thread-safe! You should put a mutex around it - * if the file is being accessed from separate threads. - * - * Also note that when called mid-stream, switching to the new track may take - * some time whie it finishes reading the current packet. When starting the - * decode, setting this _before_ reading should ensure that the track is fully - * clean without any artifacts from transitioning between tracks. - */ -DECLSPEC int tf_setvideotrack(OggTheora_File *file, int ttrack); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ - -#endif /* THEORAFILE_H */ diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/README b/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/README deleted file mode 100644 index 40f30549..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/README +++ /dev/null @@ -1,8 +0,0 @@ -Building Theorafile for UWP ---------------------------- -Theorafile uses Visual Studio 2017 to build on Xbox One. - -Compiling ---------- -1. Build Theorafile/visualc-winrt/libtheorafile.sln -2. Grab the output DLL, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/libtheorafile.sln b/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/libtheorafile.sln deleted file mode 100644 index 634205f1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/libtheorafile.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 15 -VisualStudioVersion = 15.0.27703.2000 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtheorafile", "libtheorafile.vcxproj", "{8F981FCD-813B-44F1-A6A3-9D1C7AA3A8AB}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8F981FCD-813B-44F1-A6A3-9D1C7AA3A8AB}.Debug|x64.ActiveCfg = Debug|x64 - {8F981FCD-813B-44F1-A6A3-9D1C7AA3A8AB}.Debug|x64.Build.0 = Debug|x64 - {8F981FCD-813B-44F1-A6A3-9D1C7AA3A8AB}.Release|x64.ActiveCfg = Release|x64 - {8F981FCD-813B-44F1-A6A3-9D1C7AA3A8AB}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {AFA98898-C297-401A-AA32-D0B17544493C} - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/libtheorafile.vcxproj b/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/libtheorafile.vcxproj deleted file mode 100644 index b0a89f12..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc-winrt/libtheorafile.vcxproj +++ /dev/null @@ -1,128 +0,0 @@ - - - - - Debug - x64 - - - Release - x64 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {8f981fcd-813b-44f1-a6a3-9d1c7aa3a8ab} - DynamicLibrary - libtheorafile - en-US - 14.0 - true - Windows Store - 10.0.16299.0 - 10.0.16299.0 - 10.0 - - - - DynamicLibrary - true - v141 - - - DynamicLibrary - false - true - v141 - - - - - - - - - - - - - - - - false - false - - - false - false - - - - NotUsing - false - ..\lib;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories) - _WINDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - false - false - - - - - NotUsing - false - ..\lib;$(ProjectDir);$(GeneratedFilesDir);$(IntDir);%(AdditionalIncludeDirectories) - _WINDLL;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) - - - Console - false - false - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/README b/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/README deleted file mode 100644 index adfcac1d..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/README +++ /dev/null @@ -1,18 +0,0 @@ -Building Theorafile for Windows -------------------------------- -Theorafile uses Visual Studio 2010 to build on Windows. - -Dependencies ------------- -Before building, download SDL2's VC development libraries from SDL's website: - -http://libsdl.org/download-2.0.php - -Extract the ZIP file's SDL2 directory (called something like 'SDL2-2.0.8') as -a sibling to your FNA3D checkout and rename it to 'SDL2', so that you have -directories named 'FNA3D' and 'SDL2' next to each other. - -Compiling ---------- -1. Build Theorafile/visualc/libtheorafile.sln -2. Grab the output DLL along with SDL2.dll, ship it! diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/libtheorafile.sln b/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/libtheorafile.sln deleted file mode 100644 index 0cc74f96..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/libtheorafile.sln +++ /dev/null @@ -1,36 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 11.00 -# Visual C++ Express 2010 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libtheorafile", "libtheorafile\libtheorafile.vcxproj", "{90A103EF-E403-47D4-BBBB-0F206B9FA7F2}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "sdl2test", "sdl2test\sdl2test.vcxproj", "{127F9801-EAA6-468F-9699-3802B39BC714}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Win32 = Debug|Win32 - Release|Win32 = Release|Win32 - Debug|x64 = Debug|x64 - Release|x64 = Release|x64 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|Win32.ActiveCfg = Debug|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|Win32.Build.0 = Debug|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|Win32.ActiveCfg = Release|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|Win32.Build.0 = Release|Win32 - {127F9801-EAA6-468F-9699-3802B39BC714}.Debug|Win32.ActiveCfg = Debug|Win32 - {127F9801-EAA6-468F-9699-3802B39BC714}.Debug|Win32.Build.0 = Debug|Win32 - {127F9801-EAA6-468F-9699-3802B39BC714}.Release|Win32.ActiveCfg = Release|Win32 - {127F9801-EAA6-468F-9699-3802B39BC714}.Release|Win32.Build.0 = Release|Win32 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|x64.ActiveCfg = Debug|x64 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Debug|x64.Build.0 = Debug|x64 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|x64.ActiveCfg = Release|x64 - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2}.Release|x64.Build.0 = Release|x64 - {127F9801-EAA6-468F-9699-3802B39BC714}.Debug|x64.ActiveCfg = Debug|x64 - {127F9801-EAA6-468F-9699-3802B39BC714}.Debug|x64.Build.0 = Debug|x64 - {127F9801-EAA6-468F-9699-3802B39BC714}.Release|x64.ActiveCfg = Release|x64 - {127F9801-EAA6-468F-9699-3802B39BC714}.Release|x64.Build.0 = Release|x64 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/libtheorafile/libtheorafile.vcxproj b/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/libtheorafile/libtheorafile.vcxproj deleted file mode 100644 index 0ad1f26b..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/libtheorafile/libtheorafile.vcxproj +++ /dev/null @@ -1,122 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {90A103EF-E403-47D4-BBBB-0F206B9FA7F2} - libtheorafile - - - - DynamicLibrary - true - MultiByte - - - DynamicLibrary - false - true - MultiByte - - - - - - - - - - OC_X86_ASM;%(PreprocessorDefinitions) - ..\..\lib;$(IncludePath) - - - OC_X86_ASM;OC_X86_64_ASM;%(PreprocessorDefinitions) - ..\..\lib;$(IncludePath) - - - - Level3 - Disabled - - - true - - - - - Level3 - MaxSpeed - true - true - - - true - true - true - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/sdl2test/sdl2test.vcxproj b/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/sdl2test/sdl2test.vcxproj deleted file mode 100644 index bbaaffc1..00000000 --- a/RE/Commit2/ThirdParty/fna/lib/Theorafile/visualc/sdl2test/sdl2test.vcxproj +++ /dev/null @@ -1,85 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - Debug - x64 - - - Release - x64 - - - - {127F9801-EAA6-468F-9699-3802B39BC714} - sdl2test - - - - Application - true - MultiByte - - - Application - false - true - MultiByte - - - - - - - - - - ..\..\..\SDL2\include;..\..\lib;..\..\;$(IncludePath) - ..\..\..\SDL2\lib\$(PlatformShortName);..\$(Configuration);$(LibraryPath) - - - - Level3 - Disabled - Default - - - true - SDL2.lib;SDL2main.lib;libtheorafile.lib;%(AdditionalDependencies) - Console - - - - - Level3 - MaxSpeed - true - true - - - true - true - true - SDL2.lib;SDL2main.lib;libtheorafile.lib;%(AdditionalDependencies) - Console - - - - - - - - - - - - - diff --git a/RE/Commit2/ThirdParty/fna/licenses/LICENSE b/RE/Commit2/ThirdParty/fna/licenses/LICENSE deleted file mode 100644 index ec6199c9..00000000 --- a/RE/Commit2/ThirdParty/fna/licenses/LICENSE +++ /dev/null @@ -1,63 +0,0 @@ -Microsoft Public License (Ms-PL) -FNA - Copyright 2009-2022 Ethan Lee and the MonoGame Team - -All rights reserved. - -This license governs use of the accompanying software. If you use the software, -you accept this license. If you do not accept the license, do not use the -software. - -1. Definitions - -The terms "reproduce," "reproduction," "derivative works," and "distribution" -have the same meaning here as under U.S. copyright law. - -A "contribution" is the original software, or any additions or changes to the -software. - -A "contributor" is any person that distributes its contribution under this -license. - -"Licensed patents" are a contributor's patent claims that read directly on its -contribution. - -2. Grant of Rights - -(A) Copyright Grant- Subject to the terms of this license, including the -license conditions and limitations in section 3, each contributor grants you a -non-exclusive, worldwide, royalty-free copyright license to reproduce its -contribution, prepare derivative works of its contribution, and distribute its -contribution or any derivative works that you create. - -(B) Patent Grant- Subject to the terms of this license, including the license -conditions and limitations in section 3, each contributor grants you a -non-exclusive, worldwide, royalty-free license under its licensed patents to -make, have made, use, sell, offer for sale, import, and/or otherwise dispose of -its contribution in the software or derivative works of the contribution in the -software. - -3. Conditions and Limitations - -(A) No Trademark License- This license does not grant you rights to use any -contributors' name, logo, or trademarks. - -(B) If you bring a patent claim against any contributor over patents that you -claim are infringed by the software, your patent license from such contributor -to the software ends automatically. - -(C) If you distribute any portion of the software, you must retain all -copyright, patent, trademark, and attribution notices that are present in the -software. - -(D) If you distribute any portion of the software in source code form, you may -do so only under this license by including a complete copy of this license with -your distribution. If you distribute any portion of the software in compiled or -object code form, you may only do so under a license that complies with this -license. - -(E) The software is licensed "as-is." You bear the risk of using it. The -contributors give no express warranties, guarantees or conditions. You may have -additional consumer rights under your local laws which this license cannot -change. To the extent permitted under your local laws, the contributors exclude -the implied warranties of merchantability, fitness for a particular purpose and -non-infringement. diff --git a/RE/Commit2/ThirdParty/fna/licenses/lzxdecoder.LICENSE b/RE/Commit2/ThirdParty/fna/licenses/lzxdecoder.LICENSE deleted file mode 100644 index c570d117..00000000 --- a/RE/Commit2/ThirdParty/fna/licenses/lzxdecoder.LICENSE +++ /dev/null @@ -1,29 +0,0 @@ -LzxDecoder.cs was derived from libmspack -Copyright 2003-2004 Stuart Caie -Copyright 2011 Ali Scissons - -The LZX method was created by Jonathan Forbes and Tomi Poutanen, adapted -by Microsoft Corporation. - -This source file is Dual licensed; meaning the end-user of this source file -may redistribute/modify it under the LGPL 2.1 or MS-PL licenses. - -About ------ -This derived work is recognized by Stuart Caie and is authorized to adapt -any changes made to lzxd.c in his libmspack library and will still retain -this dual licensing scheme. Big thanks to Stuart Caie! - -This file is a pure C# port of the lzxd.c file from libmspack, with minor -changes towards the decompression of XNB files. The original decompression -software of LZX encoded data was written by Suart Caie in his -libmspack/cabextract projects, which can be located at -http://http://www.cabextract.org.uk/ - -GNU Lesser General Public License, Version 2.1 ----------------------------------------------- -https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html - -Microsoft Public License ------------------------- -http://www.opensource.org/licenses/ms-pl.html diff --git a/RE/Commit2/ThirdParty/fna/licenses/monoxna.LICENSE b/RE/Commit2/ThirdParty/fna/licenses/monoxna.LICENSE deleted file mode 100644 index 185aa38d..00000000 --- a/RE/Commit2/ThirdParty/fna/licenses/monoxna.LICENSE +++ /dev/null @@ -1,22 +0,0 @@ -MIT License -Copyright 2006 The Mono.Xna Team - -All rights reserved. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/AudioCategory.cs b/RE/Commit2/ThirdParty/fna/src/Audio/AudioCategory.cs deleted file mode 100644 index 42bdde6b..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/AudioCategory.cs +++ /dev/null @@ -1,144 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.audiocategory.aspx - public struct AudioCategory : IEquatable - { - #region Public Properties - - private string INTERNAL_name; - public string Name - { - get - { - return INTERNAL_name; - } - } - - #endregion - - #region Private Variables - - private AudioEngine parent; - private ushort index; - - #endregion - - #region Internal Constructor - - internal AudioCategory( - AudioEngine engine, - ushort category, - string name - ) { - parent = engine; - index = category; - INTERNAL_name = name; - } - - #endregion - - #region Public Methods - - public void Pause() - { - lock (parent.gcSync) - { - if (parent.IsDisposed) - { - return; - } - FAudio.FACTAudioEngine_Pause(parent.handle, index, 1); - } - } - - public void Resume() - { - lock (parent.gcSync) - { - if (parent.IsDisposed) - { - return; - } - FAudio.FACTAudioEngine_Pause(parent.handle, index, 0); - } - } - - public void SetVolume(float volume) - { - lock (parent.gcSync) - { - if (parent.IsDisposed) - { - return; - } - FAudio.FACTAudioEngine_SetVolume(parent.handle, index, volume); - } - } - - public void Stop(AudioStopOptions options) - { - lock (parent.gcSync) - { - if (parent.IsDisposed) - { - return; - } - FAudio.FACTAudioEngine_Stop( - parent.handle, - index, - (options == AudioStopOptions.Immediate) ? - FAudio.FACT_FLAG_STOP_IMMEDIATE : - FAudio.FACT_FLAG_STOP_RELEASE - ); - } - } - - public override int GetHashCode() - { - return Name.GetHashCode(); - } - - public bool Equals(AudioCategory other) - { - return (GetHashCode() == other.GetHashCode()); - } - - public override bool Equals(Object obj) - { - if (obj is AudioCategory) - { - return Equals((AudioCategory) obj); - } - return false; - } - - public static bool operator ==( - AudioCategory value1, - AudioCategory value2 - ) { - return value1.Equals(value2); - } - - public static bool operator !=( - AudioCategory value1, - AudioCategory value2 - ) { - return !(value1.Equals(value2)); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/AudioChannels.cs b/RE/Commit2/ThirdParty/fna/src/Audio/AudioChannels.cs deleted file mode 100644 index c49bc460..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/AudioChannels.cs +++ /dev/null @@ -1,18 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.audiochannels.aspx - public enum AudioChannels - { - Mono = 1, - Stereo = 2 - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/AudioEmitter.cs b/RE/Commit2/ThirdParty/fna/src/Audio/AudioEmitter.cs deleted file mode 100644 index 832c2800..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/AudioEmitter.cs +++ /dev/null @@ -1,158 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.audioemitter.aspx - public class AudioEmitter - { - #region Public Properties - - public float DopplerScale - { - get - { - return emitterData.DopplerScaler; - } - set - { - if (value < 0.0f) - { - throw new ArgumentOutOfRangeException("AudioEmitter.DopplerScale must be greater than or equal to 0.0f"); - } - emitterData.DopplerScaler = value; - } - } - - public Vector3 Forward - { - get - { - return new Vector3( - emitterData.OrientFront.x, - emitterData.OrientFront.y, - -emitterData.OrientFront.z - ); - } - set - { - emitterData.OrientFront.x = value.X; - emitterData.OrientFront.y = value.Y; - emitterData.OrientFront.z = -value.Z; - } - } - - public Vector3 Position - { - get - { - return new Vector3( - emitterData.Position.x, - emitterData.Position.y, - -emitterData.Position.z - ); - } - set - { - emitterData.Position.x = value.X; - emitterData.Position.y = value.Y; - emitterData.Position.z = -value.Z; - } - } - - - public Vector3 Up - { - get - { - return new Vector3( - emitterData.OrientTop.x, - emitterData.OrientTop.y, - -emitterData.OrientTop.z - ); - } - set - { - emitterData.OrientTop.x = value.X; - emitterData.OrientTop.y = value.Y; - emitterData.OrientTop.z = -value.Z; - } - } - - public Vector3 Velocity - { - get - { - return new Vector3( - emitterData.Velocity.x, - emitterData.Velocity.y, - -emitterData.Velocity.z - ); - } - set - { - emitterData.Velocity.x = value.X; - emitterData.Velocity.y = value.Y; - emitterData.Velocity.z = -value.Z; - } - } - - #endregion - - #region Internal Variables - - internal FAudio.F3DAUDIO_EMITTER emitterData; - - #endregion - - #region Private Static Variables - - private static readonly float[] stereoAzimuth = new float[] - { - 0.0f, 0.0f - }; - private static readonly GCHandle stereoAzimuthHandle = GCHandle.Alloc( - stereoAzimuth, - GCHandleType.Pinned - ); - - #endregion - - #region Public Constructor - - public AudioEmitter() - { - emitterData = new FAudio.F3DAUDIO_EMITTER(); - DopplerScale = 1.0f; - Forward = Vector3.Forward; - Position = Vector3.Zero; - Up = Vector3.Up; - Velocity = Vector3.Zero; - - /* Unused variables, defaults based on XNA behavior */ - emitterData.pCone = IntPtr.Zero; - emitterData.ChannelCount = 1; - emitterData.ChannelRadius = 1.0f; - emitterData.pChannelAzimuths = stereoAzimuthHandle.AddrOfPinnedObject(); - emitterData.pVolumeCurve = IntPtr.Zero; - emitterData.pLFECurve = IntPtr.Zero; - emitterData.pLPFDirectCurve = IntPtr.Zero; - emitterData.pLPFReverbCurve = IntPtr.Zero; - emitterData.pReverbCurve = IntPtr.Zero; - emitterData.CurveDistanceScaler = 1.0f; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/AudioEngine.cs b/RE/Commit2/ThirdParty/fna/src/Audio/AudioEngine.cs deleted file mode 100644 index ad7bd1d4..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/AudioEngine.cs +++ /dev/null @@ -1,427 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/dd940262.aspx - public class AudioEngine : IDisposable - { - #region Public Constants - - public const int ContentVersion = 46; - - #endregion - - #region Public Properties - - public ReadOnlyCollection RendererDetails - { - get - { - return new ReadOnlyCollection( - rendererDetails - ); - } - } - - public bool IsDisposed - { - get; - private set; - } - - #endregion - - #region Internal Variables - - internal readonly IntPtr handle; - internal readonly byte[] handle3D; - internal readonly ushort channels; - - internal readonly object gcSync = new object(); - - #endregion - - #region Private Variables - - private RendererDetail[] rendererDetails; - - private readonly FAudio.FACTNotificationCallback xactNotificationFunc; - private FAudio.FACTNotificationDescription notificationDesc; - - private class IntPtrComparer : IEqualityComparer - { - public bool Equals(IntPtr x, IntPtr y) - { - return x == y; - } - - public int GetHashCode(IntPtr obj) - { - return obj.GetHashCode(); - } - } - - private static readonly IntPtrComparer comparer = new IntPtrComparer(); - - // If this isn't static, destructors gets confused like idiots - private static readonly Dictionary xactPtrs = new Dictionary(comparer); - - #endregion - - #region Public Static Variables - - // STOP LEAKING YOUR XACT DATA, GOOD GRIEF PEOPLE - internal static bool ProgramExiting = false; - - #endregion - - #region Disposing Event - - public event EventHandler Disposing; - - #endregion - - #region Public Constructors - - public AudioEngine( - string settingsFile - ) : this( - settingsFile, - new TimeSpan( - 0, 0, 0, 0, - (int) FAudio.FACT_ENGINE_LOOKAHEAD_DEFAULT - ), - null - ) { - } - - public AudioEngine( - string settingsFile, - TimeSpan lookAheadTime, - string rendererId - ) { - if (String.IsNullOrEmpty(settingsFile)) - { - throw new ArgumentNullException("settingsFile"); - } - - // Allocate (but don't initialize just yet!) - FAudio.FACTCreateEngine(0, out handle); - - // Grab RendererDetails - ushort rendererCount; - FAudio.FACTAudioEngine_GetRendererCount( - handle, - out rendererCount - ); - if (rendererCount == 0) - { - FAudio.FACTAudioEngine_Release(handle); - throw new NoAudioHardwareException(); - } - rendererDetails = new RendererDetail[rendererCount]; - byte[] converted = new byte[0xFF * sizeof(short)]; - for (ushort i = 0; i < rendererCount; i += 1) - { - FAudio.FACTRendererDetails details; - FAudio.FACTAudioEngine_GetRendererDetails( - handle, - i, - out details - ); - unsafe - { - Marshal.Copy((IntPtr) details.displayName, converted, 0, converted.Length); - string name = System.Text.Encoding.Unicode.GetString(converted).TrimEnd('\0'); - Marshal.Copy((IntPtr) details.rendererID, converted, 0, converted.Length); - string id = System.Text.Encoding.Unicode.GetString(converted).TrimEnd('\0'); - rendererDetails[i] = new RendererDetail(name, id); - } - } - - // Read entire file into memory, let FACT manage the pointer - IntPtr bufferLen; - IntPtr buffer = TitleContainer.ReadToPointer(settingsFile, out bufferLen); - - // Generate engine parameters - FAudio.FACTRuntimeParameters settings = new FAudio.FACTRuntimeParameters(); - settings.pGlobalSettingsBuffer = buffer; - settings.globalSettingsBufferSize = (uint) bufferLen; - settings.globalSettingsFlags = FAudio.FACT_FLAG_MANAGEDATA; - xactNotificationFunc = OnXACTNotification; - settings.fnNotificationCallback = Marshal.GetFunctionPointerForDelegate( - xactNotificationFunc - ); - - // Special parameters from constructor - settings.lookAheadTime = (uint) lookAheadTime.Milliseconds; - if (!string.IsNullOrEmpty(rendererId)) - { - // FIXME: wchar_t? -flibit - settings.pRendererID = Marshal.StringToHGlobalAuto(rendererId); - } - - // Init engine, finally - if (FAudio.FACTAudioEngine_Initialize(handle, ref settings) != 0) - { - throw new InvalidOperationException( - "Engine initialization failed!" - ); - } - - // Free the settings strings - if (settings.pRendererID != IntPtr.Zero) - { - Marshal.FreeHGlobal(settings.pRendererID); - } - - // Init 3D audio - handle3D = new byte[FAudio.F3DAUDIO_HANDLE_BYTESIZE]; - FAudio.FACT3DInitialize( - handle, - handle3D - ); - - // Grab channel count for DSP_SETTINGS - FAudio.FAudioWaveFormatExtensible mixFormat; - FAudio.FACTAudioEngine_GetFinalMixFormat( - handle, - out mixFormat - ); - channels = mixFormat.Format.nChannels; - - // All XACT references have to go through here... - notificationDesc = new FAudio.FACTNotificationDescription(); - notificationDesc.flags = FAudio.FACT_FLAG_NOTIFICATION_PERSIST; - notificationDesc.type = FAudio.FACTNOTIFICATIONTYPE_WAVEBANKDESTROYED; - FAudio.FACTAudioEngine_RegisterNotification( - handle, - ref notificationDesc - ); - notificationDesc.type = FAudio.FACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED; - FAudio.FACTAudioEngine_RegisterNotification( - handle, - ref notificationDesc - ); - notificationDesc.type = FAudio.FACTNOTIFICATIONTYPE_CUEDESTROYED; - FAudio.FACTAudioEngine_RegisterNotification( - handle, - ref notificationDesc - ); - } - - #endregion - - #region Destructor - - ~AudioEngine() - { - Dispose(false); - } - - #endregion - - #region Public Dispose Methods - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - #endregion - - #region Public Methods - - public AudioCategory GetCategory(string name) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - - ushort category = FAudio.FACTAudioEngine_GetCategory( - handle, - name - ); - - if (category == FAudio.FACTCATEGORY_INVALID) - { - throw new InvalidOperationException( - "Invalid category name!" - ); - } - - return new AudioCategory(this, category, name); - } - - public float GetGlobalVariable(string name) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - - ushort variable = FAudio.FACTAudioEngine_GetGlobalVariableIndex( - handle, - name - ); - - if (variable == FAudio.FACTVARIABLEINDEX_INVALID) - { - throw new InvalidOperationException( - "Invalid variable name!" - ); - } - - float result; - FAudio.FACTAudioEngine_GetGlobalVariable( - handle, - variable, - out result - ); - return result; - } - - public void SetGlobalVariable(string name, float value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - - ushort variable = FAudio.FACTAudioEngine_GetGlobalVariableIndex( - handle, - name - ); - - if (variable == FAudio.FACTVARIABLEINDEX_INVALID) - { - throw new InvalidOperationException( - "Invalid variable name!" - ); - } - - FAudio.FACTAudioEngine_SetGlobalVariable( - handle, - variable, - value - ); - } - - public void Update() - { - FAudio.FACTAudioEngine_DoWork(handle); - } - - #endregion - - #region Protected Methods - - protected virtual void Dispose(bool disposing) - { - lock (gcSync) - { - if (!IsDisposed) - { - if (Disposing != null) - { - Disposing.Invoke(this, null); - } - - FAudio.FACTAudioEngine_ShutDown(handle); - FAudio.FACTAudioEngine_Release(handle); - rendererDetails = null; - - IsDisposed = true; - } - } - } - - #endregion - - #region Internal Methods - - internal void RegisterPointer( - IntPtr ptr, - WeakReference reference - ) { - lock (xactPtrs) - { - xactPtrs[ptr] = reference; - } - } - - #endregion - - #region Private Methods - - [ObjCRuntime.MonoPInvokeCallback(typeof(FAudio.FACTNotificationCallback))] - private static unsafe void OnXACTNotification(IntPtr notification) - { - WeakReference reference; - FAudio.FACTNotification* not = (FAudio.FACTNotification*) notification; - if (not->type == FAudio.FACTNOTIFICATIONTYPE_WAVEBANKDESTROYED) - { - IntPtr target = not->anon.waveBank.pWaveBank; - lock (xactPtrs) - { - if (xactPtrs.TryGetValue(target, out reference)) - { - if (reference.IsAlive) - { - (reference.Target as WaveBank).OnWaveBankDestroyed(); - } - } - xactPtrs.Remove(target); - } - } - else if (not->type == FAudio.FACTNOTIFICATIONTYPE_SOUNDBANKDESTROYED) - { - IntPtr target = not->anon.soundBank.pSoundBank; - lock (xactPtrs) - { - if (xactPtrs.TryGetValue(target, out reference)) - { - if (reference.IsAlive) - { - (reference.Target as SoundBank).OnSoundBankDestroyed(); - } - } - xactPtrs.Remove(target); - } - } - else if (not->type == FAudio.FACTNOTIFICATIONTYPE_CUEDESTROYED) - { - IntPtr target = not->anon.cue.pCue; - lock (xactPtrs) - { - if (xactPtrs.TryGetValue(target, out reference)) - { - if (reference.IsAlive) - { - (reference.Target as Cue).OnCueDestroyed(); - } - } - xactPtrs.Remove(target); - } - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/AudioListener.cs b/RE/Commit2/ThirdParty/fna/src/Audio/AudioListener.cs deleted file mode 100644 index 4f688f71..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/AudioListener.cs +++ /dev/null @@ -1,118 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.audiolistener.aspx - public class AudioListener - { - #region Public Properties - - public Vector3 Forward - { - get - { - return new Vector3( - listenerData.OrientFront.x, - listenerData.OrientFront.y, - -listenerData.OrientFront.z - ); - } - set - { - listenerData.OrientFront.x = value.X; - listenerData.OrientFront.y = value.Y; - listenerData.OrientFront.z = -value.Z; - } - } - - public Vector3 Position - { - get - { - return new Vector3( - listenerData.Position.x, - listenerData.Position.y, - -listenerData.Position.z - ); - } - set - { - listenerData.Position.x = value.X; - listenerData.Position.y = value.Y; - listenerData.Position.z = -value.Z; - } - } - - - public Vector3 Up - { - get - { - return new Vector3( - listenerData.OrientTop.x, - listenerData.OrientTop.y, - -listenerData.OrientTop.z - ); - } - set - { - listenerData.OrientTop.x = value.X; - listenerData.OrientTop.y = value.Y; - listenerData.OrientTop.z = -value.Z; - } - } - - public Vector3 Velocity - { - get - { - return new Vector3( - listenerData.Velocity.x, - listenerData.Velocity.y, - -listenerData.Velocity.z - ); - } - set - { - listenerData.Velocity.x = value.X; - listenerData.Velocity.y = value.Y; - listenerData.Velocity.z = -value.Z; - } - } - - #endregion - - #region Internal Variables - - internal FAudio.F3DAUDIO_LISTENER listenerData; - - #endregion - - #region Public Constructor - - public AudioListener() - { - listenerData = new FAudio.F3DAUDIO_LISTENER(); - Forward = Vector3.Forward; - Position = Vector3.Zero; - Up = Vector3.Up; - Velocity = Vector3.Zero; - - /* Unused variables, defaults based on XNA behavior */ - listenerData.pCone = IntPtr.Zero; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/AudioStopOptions.cs b/RE/Commit2/ThirdParty/fna/src/Audio/AudioStopOptions.cs deleted file mode 100644 index 6db942e3..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/AudioStopOptions.cs +++ /dev/null @@ -1,18 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.audiostopoptions.aspx - public enum AudioStopOptions - { - AsAuthored, - Immediate - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/Cue.cs b/RE/Commit2/ThirdParty/fna/src/Audio/Cue.cs deleted file mode 100644 index 56bf5dfa..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/Cue.cs +++ /dev/null @@ -1,305 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.cue.aspx - public sealed class Cue : IDisposable - { - #region Public Properties - - public bool IsCreated - { - get - { - uint state; - FAudio.FACTCue_GetState(handle, out state); - return (state & FAudio.FACT_STATE_CREATED) != 0; - } - } - - public bool IsDisposed - { - get; - private set; - } - - public bool IsPaused - { - get - { - uint state; - FAudio.FACTCue_GetState(handle, out state); - return (state & FAudio.FACT_STATE_PAUSED) != 0; - } - } - - public bool IsPlaying - { - get - { - uint state; - FAudio.FACTCue_GetState(handle, out state); - return (state & FAudio.FACT_STATE_PLAYING) != 0; - } - } - - public bool IsPrepared - { - get - { - uint state; - FAudio.FACTCue_GetState(handle, out state); - return (state & FAudio.FACT_STATE_PREPARED) != 0; - } - } - - public bool IsPreparing - { - get - { - uint state; - FAudio.FACTCue_GetState(handle, out state); - return (state & FAudio.FACT_STATE_PREPARING) != 0; - } - } - - public bool IsStopped - { - get - { - uint state; - FAudio.FACTCue_GetState(handle, out state); - return (state & FAudio.FACT_STATE_STOPPED) != 0; - } - } - - public bool IsStopping - { - get - { - uint state; - FAudio.FACTCue_GetState(handle, out state); - return (state & FAudio.FACT_STATE_STOPPING) != 0; - } - } - - public string Name - { - get; - private set; - } - - #endregion - - #region Private Variables - - private IntPtr handle; - private SoundBank bank; - private WeakReference selfReference; - - #endregion - - #region Disposing Event - - public event EventHandler Disposing; - - #endregion - - #region Internal Constructor - - internal Cue(IntPtr cue, string name, SoundBank soundBank) - { - handle = cue; - Name = name; - bank = soundBank; - - selfReference = new WeakReference(this, true); - bank.engine.RegisterPointer(handle, selfReference); - } - - #endregion - - #region Destructor - - ~Cue() - { - if (AudioEngine.ProgramExiting) - { - return; - } - - if (!IsDisposed && IsPlaying) - { - // STOP LEAKING YOUR CUES, ARGH - GC.ReRegisterForFinalize(this); - return; - } - Dispose(false); - } - - #endregion - - #region Public Dispose Method - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - #endregion - - #region Public Methods - - public void Apply3D(AudioListener listener, AudioEmitter emitter) - { - if (listener == null) - { - throw new ArgumentNullException("listener"); - } - if (emitter == null) - { - throw new ArgumentNullException("emitter"); - } - - emitter.emitterData.ChannelCount = bank.dspSettings.SrcChannelCount; - emitter.emitterData.CurveDistanceScaler = float.MaxValue; - FAudio.FACT3DCalculate( - bank.engine.handle3D, - ref listener.listenerData, - ref emitter.emitterData, - ref bank.dspSettings - ); - FAudio.FACT3DApply(ref bank.dspSettings, handle); - } - - public float GetVariable(string name) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - - ushort variable = FAudio.FACTCue_GetVariableIndex( - handle, - name - ); - - if (variable == FAudio.FACTVARIABLEINDEX_INVALID) - { - throw new InvalidOperationException( - "Invalid variable name!" - ); - } - - float result; - FAudio.FACTCue_GetVariable( - handle, - variable, - out result - ); - return result; - } - - public void Pause() - { - FAudio.FACTCue_Pause(handle, 1); - } - - public void Play() - { - FAudio.FACTCue_Play(handle); - } - - public void Resume() - { - FAudio.FACTCue_Pause(handle, 0); - } - - public void SetVariable(string name, float value) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - - ushort variable = FAudio.FACTCue_GetVariableIndex( - handle, - name - ); - - if (variable == FAudio.FACTVARIABLEINDEX_INVALID) - { - throw new InvalidOperationException( - "Invalid variable name!" - ); - } - - FAudio.FACTCue_SetVariable( - handle, - variable, - value - ); - } - - public void Stop(AudioStopOptions options) - { - FAudio.FACTCue_Stop( - handle, - (options == AudioStopOptions.Immediate) ? - FAudio.FACT_FLAG_STOP_IMMEDIATE : - FAudio.FACT_FLAG_STOP_RELEASE - ); - } - - #endregion - - #region Internal Methods - - internal void OnCueDestroyed() - { - IsDisposed = true; - handle = IntPtr.Zero; - selfReference = null; - } - - #endregion - - #region Private Methods - - private void Dispose(bool disposing) - { - lock (bank.engine.gcSync) - { - if (!IsDisposed) - { - if (Disposing != null) - { - Disposing.Invoke(this, null); - } - - // If this is Disposed, stop leaking memory! - if (!bank.engine.IsDisposed) - { - FAudio.FACTCue_Destroy(handle); - } - OnCueDestroyed(); - } - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/DynamicSoundEffectInstance.cs b/RE/Commit2/ThirdParty/fna/src/Audio/DynamicSoundEffectInstance.cs deleted file mode 100644 index fa2e6af1..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/DynamicSoundEffectInstance.cs +++ /dev/null @@ -1,318 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.dynamicsoundeffectinstance.aspx - public sealed class DynamicSoundEffectInstance : SoundEffectInstance - { - #region Public Properties - - public int PendingBufferCount - { - get - { - return queuedBuffers.Count; - } - } - - public override bool IsLooped - { - get - { - return false; - } - set - { - // No-op, DynamicSoundEffectInstance cannot be looped! - } - } - - #endregion - - #region Internal Variables - - internal FAudio.FAudioWaveFormatEx format; - - #endregion - - #region Private Variables - - private int sampleRate; - private AudioChannels channels; - - private List queuedBuffers; - private List queuedSizes; - - #endregion - - #region Private Constants - - private const int MINIMUM_BUFFER_CHECK = 3; - - #endregion - - #region BufferNeeded Event - - public event EventHandler BufferNeeded; - - #endregion - - #region Public Constructor - - public DynamicSoundEffectInstance( - int sampleRate, - AudioChannels channels - ) : base() { - this.sampleRate = sampleRate; - this.channels = channels; - isDynamic = true; - - format = new FAudio.FAudioWaveFormatEx(); - format.wFormatTag = 1; - format.nChannels = (ushort) channels; - format.nSamplesPerSec = (uint) sampleRate; - format.wBitsPerSample = 16; - format.nBlockAlign = (ushort) (2 * format.nChannels); - format.nAvgBytesPerSec = format.nBlockAlign * format.nSamplesPerSec; - format.cbSize = 0; - - queuedBuffers = new List(); - queuedSizes = new List(); - - InitDSPSettings(format.nChannels); - } - - #endregion - - #region Destructor - - ~DynamicSoundEffectInstance() - { - // FIXME: ReRegisterForFinalize? -flibit - Dispose(); - } - - #endregion - - #region Public Methods - - public TimeSpan GetSampleDuration(int sizeInBytes) - { - return SoundEffect.GetSampleDuration( - sizeInBytes, - sampleRate, - channels - ); - } - - public int GetSampleSizeInBytes(TimeSpan duration) - { - return SoundEffect.GetSampleSizeInBytes( - duration, - sampleRate, - channels - ); - } - - public override void Play() - { - // Wait! What if we need moar buffers? - Update(); - - // Okay we're good - base.Play(); - lock (FrameworkDispatcher.Streams) - { - if (!FrameworkDispatcher.Streams.Contains(this)) - { - FrameworkDispatcher.Streams.Add(this); - } - } - } - - public void SubmitBuffer(byte[] buffer) - { - this.SubmitBuffer(buffer, 0, buffer.Length); - } - - public void SubmitBuffer(byte[] buffer, int offset, int count) - { - IntPtr next = Marshal.AllocHGlobal(count); - Marshal.Copy(buffer, offset, next, count); - lock (queuedBuffers) - { - queuedBuffers.Add(next); - if (State != SoundState.Stopped) - { - FAudio.FAudioBuffer buf = new FAudio.FAudioBuffer(); - buf.AudioBytes = (uint) count; - buf.pAudioData = next; - buf.PlayLength = ( - buf.AudioBytes / - (uint) channels / - (uint) (format.wBitsPerSample / 8) - ); - FAudio.FAudioSourceVoice_SubmitSourceBuffer( - handle, - ref buf, - IntPtr.Zero - ); - } - else - { - queuedSizes.Add((uint) count); - } - } - } - - public void SubmitFloatBufferEXT(float[] buffer) - { - SubmitFloatBufferEXT(buffer, 0, buffer.Length); - } - - public void SubmitFloatBufferEXT(float[] buffer, int offset, int count) - { - /* Float samples are the typical format received from decoders. - * We currently use this for the VideoPlayer. - * -flibit - */ - if (State != SoundState.Stopped && format.wFormatTag == 1) - { - throw new InvalidOperationException( - "Submit a float buffer before Playing!" - ); - } - format.wFormatTag = 3; - format.wBitsPerSample = 32; - format.nBlockAlign = (ushort) (4 * format.nChannels); - format.nAvgBytesPerSec = format.nBlockAlign * format.nSamplesPerSec; - - IntPtr next = Marshal.AllocHGlobal(count * sizeof(float)); - Marshal.Copy(buffer, offset, next, count); - lock (queuedBuffers) - { - queuedBuffers.Add(next); - if (State != SoundState.Stopped) - { - FAudio.FAudioBuffer buf = new FAudio.FAudioBuffer(); - buf.AudioBytes = (uint) count * sizeof(float); - buf.pAudioData = next; - buf.PlayLength = ( - buf.AudioBytes / - (uint) channels / - (uint) (format.wBitsPerSample / 8) - ); - FAudio.FAudioSourceVoice_SubmitSourceBuffer( - handle, - ref buf, - IntPtr.Zero - ); - } - else - { - queuedSizes.Add((uint) count * sizeof(float)); - } - } - } - - #endregion - - #region Protected Methods - - protected override void Dispose(bool disposing) - { - // Not much to see here... - base.Dispose(disposing); - } - - #endregion - - #region Internal Methods - - internal void QueueInitialBuffers() - { - FAudio.FAudioBuffer buffer = new FAudio.FAudioBuffer(); - lock (queuedBuffers) - { - for (int i = 0; i < queuedBuffers.Count; i += 1) - { - buffer.AudioBytes = queuedSizes[i]; - buffer.pAudioData = queuedBuffers[i]; - buffer.PlayLength = ( - buffer.AudioBytes / - (uint) channels / - (uint) (format.wBitsPerSample / 8) - ); - FAudio.FAudioSourceVoice_SubmitSourceBuffer( - handle, - ref buffer, - IntPtr.Zero - ); - } - queuedSizes.Clear(); - } - } - - internal void ClearBuffers() - { - lock (queuedBuffers) - { - foreach (IntPtr buf in queuedBuffers) - { - Marshal.FreeHGlobal(buf); - } - queuedBuffers.Clear(); - queuedSizes.Clear(); - } - } - - internal void Update() - { - if (State != SoundState.Playing) - { - // Shh, we don't need you right now... - return; - } - - if (handle != IntPtr.Zero) - { - FAudio.FAudioVoiceState state; - FAudio.FAudioSourceVoice_GetState( - handle, - out state, - FAudio.FAUDIO_VOICE_NOSAMPLESPLAYED - ); - while (PendingBufferCount > state.BuffersQueued) - lock (queuedBuffers) - { - Marshal.FreeHGlobal(queuedBuffers[0]); - queuedBuffers.RemoveAt(0); - } - } - - // Do we need even moar buffers? - for ( - int i = MINIMUM_BUFFER_CHECK - PendingBufferCount; - (i > 0) && BufferNeeded != null; - i -= 1 - ) { - BufferNeeded(this, null); - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/InstancePlayLimitException.cs b/RE/Commit2/ThirdParty/fna/src/Audio/InstancePlayLimitException.cs deleted file mode 100644 index 3840f2bd..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/InstancePlayLimitException.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.instanceplaylimitexception.aspx - [Serializable] - public sealed class InstancePlayLimitException : ExternalException - { - public InstancePlayLimitException() - { - } - - public InstancePlayLimitException(String message) - : base(message) - { - } - - public InstancePlayLimitException(String message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/Microphone.cs b/RE/Commit2/ThirdParty/fna/src/Audio/Microphone.cs deleted file mode 100644 index 3cf61846..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/Microphone.cs +++ /dev/null @@ -1,217 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.ObjectModel; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - public class Microphone - { - #region Public Static Properties - - public static ReadOnlyCollection All - { - get - { - if (micList == null) - { - micList = new ReadOnlyCollection( - FNAPlatform.GetMicrophones() - ); - } - return micList; - } - } - - public static Microphone Default - { - get - { - if (All.Count == 0) - { - return null; - } - return All[0]; - } - } - - #endregion - - #region Public Properties - - public TimeSpan BufferDuration - { - get - { - return bufferDuration; - } - set - { - if ( value.Milliseconds < 100 || - value.Milliseconds > 1000 || - value.Milliseconds % 10 != 0 ) - { - throw new ArgumentOutOfRangeException(); - } - bufferDuration = value; - } - } - - public bool IsHeadset - { - get - { - // FIXME: I think this is just for Windows Phone? -flibit - return false; - } - } - - public int SampleRate - { - get - { - return SAMPLERATE; - } - } - - public MicrophoneState State - { - get; - private set; - } - - #endregion - - #region Public Variables - - public readonly string Name; - - #endregion - - #region Private Variables - - private TimeSpan bufferDuration; - private uint handle; - - #endregion - - #region Internal Static Variables - - internal static ReadOnlyCollection micList; - - #endregion - - #region Events - - public event EventHandler BufferReady; - - #endregion - - #region Internal Constants - - /* FIXME: This is what XNA4 aims for, but it _could_ be lower. - * Something worth looking at is falling back to lower sample - * rates in powers of two, i.e. 44100, 22050, 11025, etc. - * -flibit - */ - internal const int SAMPLERATE = 44100; - - #endregion - - #region Internal Constructor - - internal Microphone(uint id, string name) - { - handle = id; - Name = name; - bufferDuration = TimeSpan.FromSeconds(1.0); - State = MicrophoneState.Stopped; - } - - #endregion - - #region Public Methods - - public int GetData(byte[] buffer) - { - return GetData(buffer, 0, buffer.Length); - } - - public int GetData(byte[] buffer, int offset, int count) - { - if (buffer == null) - { - throw new ArgumentException("buffer is null!"); - } - if (offset < 0 || offset > buffer.Length) - { - throw new ArgumentException("offset"); - } - if (count <= 0 || (offset + count) > buffer.Length) - { - throw new ArgumentException("count"); - } - - return FNAPlatform.GetMicrophoneSamples( - handle, - buffer, - offset, - count - ); - } - - public TimeSpan GetSampleDuration(int sizeInBytes) - { - return SoundEffect.GetSampleDuration( - sizeInBytes, - SampleRate, - AudioChannels.Mono - ); - } - - public int GetSampleSizeInBytes(TimeSpan duration) - { - return SoundEffect.GetSampleSizeInBytes( - duration, - SampleRate, - AudioChannels.Mono - ); - } - - public void Start() - { - FNAPlatform.StartMicrophone(handle); - State = MicrophoneState.Started; - } - - public void Stop() - { - FNAPlatform.StopMicrophone(handle); - State = MicrophoneState.Stopped; - } - - #endregion - - #region Internal Methods - - internal void CheckBuffer() - { - if ( BufferReady != null && - GetSampleDuration(FNAPlatform.GetMicrophoneQueuedBytes(handle)) > bufferDuration ) - { - BufferReady(this, EventArgs.Empty); - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/MicrophoneState.cs b/RE/Commit2/ThirdParty/fna/src/Audio/MicrophoneState.cs deleted file mode 100644 index 4e0b2741..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/MicrophoneState.cs +++ /dev/null @@ -1,17 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - public enum MicrophoneState - { - Started, - Stopped - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/NoAudioHardwareException.cs b/RE/Commit2/ThirdParty/fna/src/Audio/NoAudioHardwareException.cs deleted file mode 100644 index cd71a731..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/NoAudioHardwareException.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.noaudiohardwareexception.aspx - [Serializable] - public sealed class NoAudioHardwareException : ExternalException - { - public NoAudioHardwareException() - { - } - - public NoAudioHardwareException(String message) - : base(message) - { - } - - public NoAudioHardwareException(String message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/NoMicrophoneConnectedException.cs b/RE/Commit2/ThirdParty/fna/src/Audio/NoMicrophoneConnectedException.cs deleted file mode 100644 index e6bf34e1..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/NoMicrophoneConnectedException.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.nomicrophoneconnectedexception.aspx - [Serializable] - public sealed class NoMicrophoneConnectedException : Exception - { - public NoMicrophoneConnectedException() - { - } - - public NoMicrophoneConnectedException(String message) - : base(message) - { - } - - public NoMicrophoneConnectedException(String message, Exception innerException) - : base(message, innerException) - { - } - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/RendererDetail.cs b/RE/Commit2/ThirdParty/fna/src/Audio/RendererDetail.cs deleted file mode 100644 index b1cccca0..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/RendererDetail.cs +++ /dev/null @@ -1,79 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - [Serializable] - public struct RendererDetail - { - #region Public Properties - - public string FriendlyName - { - get; - private set; - } - - public string RendererId - { - get; - private set; - } - - #endregion - - #region Internal Constructor - - internal RendererDetail(string name, string id) : this() - { - FriendlyName = name; - RendererId = id; - } - - #endregion - - #region Public Methods - - public override bool Equals(object obj) - { - return ( (obj is RendererDetail) && - RendererId.Equals(((RendererDetail) obj).RendererId) ); - } - - public override int GetHashCode() - { - return RendererId.GetHashCode(); - } - - public override string ToString() - { - return FriendlyName; - } - - #endregion - - #region Public Static Operator Overloads - - public static bool operator==(RendererDetail left, RendererDetail right) - { - return left.RendererId.Equals(right.RendererId); - } - - public static bool operator!=(RendererDetail left, RendererDetail right) - { - return !left.RendererId.Equals(right.RendererId); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/SoundBank.cs b/RE/Commit2/ThirdParty/fna/src/Audio/SoundBank.cs deleted file mode 100644 index d9aae9d5..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/SoundBank.cs +++ /dev/null @@ -1,284 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundbank.aspx - public class SoundBank : IDisposable - { - #region Public Properties - - public bool IsDisposed - { - get; - private set; - } - - public bool IsInUse - { - get - { - uint state; - FAudio.FACTSoundBank_GetState(handle, out state); - return (state & FAudio.FACT_STATE_INUSE) != 0; - } - } - - #endregion - - #region Internal Variables - - internal AudioEngine engine; - internal FAudio.F3DAUDIO_DSP_SETTINGS dspSettings; - - #endregion - - #region Private Variables - - private IntPtr handle; - private WeakReference selfReference; - - #endregion - - #region Disposing Event - - public event EventHandler Disposing; - - #endregion - - #region Public Constructor - - public SoundBank(AudioEngine audioEngine, string filename) - { - if (audioEngine == null) - { - throw new ArgumentNullException("audioEngine"); - } - if (String.IsNullOrEmpty(filename)) - { - throw new ArgumentNullException("filename"); - } - - IntPtr bufferLen; - IntPtr buffer = TitleContainer.ReadToPointer(filename, out bufferLen); - - FAudio.FACTAudioEngine_CreateSoundBank( - audioEngine.handle, - buffer, - (uint) bufferLen, - 0, - 0, - out handle - ); - - FNAPlatform.FreeFilePointer(buffer); - - engine = audioEngine; - selfReference = new WeakReference(this, true); - dspSettings = new FAudio.F3DAUDIO_DSP_SETTINGS(); - dspSettings.SrcChannelCount = 1; - dspSettings.DstChannelCount = engine.channels; - dspSettings.pMatrixCoefficients = Marshal.AllocHGlobal( - 4 * - (int) dspSettings.SrcChannelCount * - (int) dspSettings.DstChannelCount - ); - engine.RegisterPointer(handle, selfReference); - IsDisposed = false; - } - - #endregion - - #region Destructor - - ~SoundBank() - { - if (AudioEngine.ProgramExiting) - { - return; - } - - if (!IsDisposed && IsInUse) - { - // STOP LEAKING YOUR BANKS, ARGH - GC.ReRegisterForFinalize(this); - return; - } - Dispose(false); - } - - #endregion - - #region Public Dispose Method - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - #endregion - - #region Protected Dispose Method - - protected void Dispose(bool disposing) - { - lock (engine.gcSync) - { - if (!IsDisposed) - { - if (Disposing != null) - { - Disposing.Invoke(this, null); - } - - // If this is disposed, stop leaking memory! - if (!engine.IsDisposed) - { - FAudio.FACTSoundBank_Destroy(handle); - } - OnSoundBankDestroyed(); - } - } - } - - #endregion - - #region Public Methods - - public Cue GetCue(string name) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - - ushort cue = FAudio.FACTSoundBank_GetCueIndex( - handle, - name - ); - - if (cue == FAudio.FACTINDEX_INVALID) - { - throw new InvalidOperationException( - "Invalid cue name!" - ); - } - - IntPtr result; - FAudio.FACTSoundBank_Prepare( - handle, - cue, - 0, - 0, - out result - ); - return new Cue(result, name, this); - } - - public void PlayCue(string name) - { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - - ushort cue = FAudio.FACTSoundBank_GetCueIndex( - handle, - name - ); - - if (cue == FAudio.FACTINDEX_INVALID) - { - throw new InvalidOperationException( - "Invalid cue name!" - ); - } - - FAudio.FACTSoundBank_Play( - handle, - cue, - 0, - 0, - IntPtr.Zero - ); - } - - public void PlayCue( - string name, - AudioListener listener, - AudioEmitter emitter - ) { - if (String.IsNullOrEmpty(name)) - { - throw new ArgumentNullException("name"); - } - if (listener == null) - { - throw new ArgumentNullException("listener"); - } - if (emitter == null) - { - throw new ArgumentNullException("emitter"); - } - - ushort cue = FAudio.FACTSoundBank_GetCueIndex( - handle, - name - ); - - if (cue == FAudio.FACTINDEX_INVALID) - { - throw new InvalidOperationException( - "Invalid cue name!" - ); - } - - emitter.emitterData.ChannelCount = dspSettings.SrcChannelCount; - emitter.emitterData.CurveDistanceScaler = float.MaxValue; - FAudio.FACT3DCalculate( - engine.handle3D, - ref listener.listenerData, - ref emitter.emitterData, - ref dspSettings - ); - FAudio.FACTSoundBank_Play3D( - handle, - cue, - 0, - 0, - ref dspSettings, - IntPtr.Zero - ); - } - - #endregion - - #region Internal Methods - - internal void OnSoundBankDestroyed() - { - IsDisposed = true; - handle = IntPtr.Zero; - selfReference = null; - if (dspSettings.pMatrixCoefficients != IntPtr.Zero) - { - Marshal.FreeHGlobal(dspSettings.pMatrixCoefficients); - dspSettings.pMatrixCoefficients = IntPtr.Zero; - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/SoundEffect.cs b/RE/Commit2/ThirdParty/fna/src/Audio/SoundEffect.cs deleted file mode 100644 index dacd6530..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/SoundEffect.cs +++ /dev/null @@ -1,801 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.IO; -using System.Collections.Generic; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundeffect.aspx - public sealed class SoundEffect : IDisposable - { - #region Public Properties - - public TimeSpan Duration - { - get - { - return TimeSpan.FromSeconds( - (double) handle.PlayLength / - (double) sampleRate - ); - } - } - - public bool IsDisposed - { - get; - private set; - } - - public string Name - { - get; - set; - } - - #endregion - - #region Public Static Properties - - public static float MasterVolume - { - get - { - float result; - FAudio.FAudioVoice_GetVolume( - Device().MasterVoice, - out result - ); - return result; - } - set - { - FAudio.FAudioVoice_SetVolume( - Device().MasterVoice, - value, - 0 - ); - } - } - - public static float DistanceScale - { - get - { - return Device().CurveDistanceScaler; - } - set - { - if (value <= 0.0f) - { - throw new ArgumentOutOfRangeException("value <= 0.0f"); - } - Device().CurveDistanceScaler = value; - } - } - - public static float DopplerScale - { - get - { - return Device().DopplerScale; - } - set - { - if (value < 0.0f) - { - throw new ArgumentOutOfRangeException("value < 0.0f"); - } - Device().DopplerScale = value; - } - } - - public static float SpeedOfSound - { - get - { - return Device().SpeedOfSound; - } - set - { - FAudioContext dev = Device(); - dev.SpeedOfSound = value; - FAudio.F3DAudioInitialize( - dev.DeviceDetails.OutputFormat.dwChannelMask, - dev.SpeedOfSound, - dev.Handle3D - ); - } - } - - #endregion - - #region Internal Variables - - internal List Instances = new List(); - internal FAudio.FAudioBuffer handle; - internal IntPtr formatPtr; - internal ushort channels; - internal uint sampleRate; - internal uint loopStart; - internal uint loopLength; - - #endregion - - #region Public Constructors - - public SoundEffect( - byte[] buffer, - int sampleRate, - AudioChannels channels - ) : this( - null, - buffer, - 0, - buffer.Length, - null, - 1, - (ushort) channels, - (uint) sampleRate, - (uint) (sampleRate * ((ushort) channels * 2)), - (ushort) ((ushort) channels * 2), - 16, - 0, - 0 - ) { - } - - public SoundEffect( - byte[] buffer, - int offset, - int count, - int sampleRate, - AudioChannels channels, - int loopStart, - int loopLength - ) : this( - null, - buffer, - offset, - count, - null, - 1, - (ushort) channels, - (uint) sampleRate, - (uint) (sampleRate * ((ushort) channels * 2)), - (ushort) ((ushort) channels * 2), - 16, - loopStart, - loopLength - ) { - } - - #endregion - - #region Internal Constructor - - internal unsafe SoundEffect( - string name, - byte[] buffer, - int offset, - int count, - byte[] extraData, - ushort wFormatTag, - ushort nChannels, - uint nSamplesPerSec, - uint nAvgBytesPerSec, - ushort nBlockAlign, - ushort wBitsPerSample, - int loopStart, - int loopLength - ) { - Device(); - Name = name; - channels = nChannels; - sampleRate = nSamplesPerSec; - this.loopStart = (uint) loopStart; - this.loopLength = (uint) loopLength; - - /* Buffer format */ - if (extraData == null) - { - formatPtr = Marshal.AllocHGlobal( - Marshal.SizeOf(typeof(FAudio.FAudioWaveFormatEx)) - ); - } - else - { - formatPtr = Marshal.AllocHGlobal( - Marshal.SizeOf(typeof(FAudio.FAudioWaveFormatEx)) + - extraData.Length - ); - Marshal.Copy( - extraData, - 0, - formatPtr + Marshal.SizeOf(typeof(FAudio.FAudioWaveFormatEx)), - extraData.Length - ); - } - - FAudio.FAudioWaveFormatEx* pcm = (FAudio.FAudioWaveFormatEx*) formatPtr; - pcm->wFormatTag = wFormatTag; - pcm->nChannels = nChannels; - pcm->nSamplesPerSec = nSamplesPerSec; - pcm->nAvgBytesPerSec = nAvgBytesPerSec; - pcm->nBlockAlign = nBlockAlign; - pcm->wBitsPerSample = wBitsPerSample; - pcm->cbSize = (ushort) ((extraData == null) ? 0 : extraData.Length); - - /* Easy stuff */ - handle = new FAudio.FAudioBuffer(); - handle.Flags = FAudio.FAUDIO_END_OF_STREAM; - handle.pContext = IntPtr.Zero; - - /* Buffer data */ - handle.AudioBytes = (uint) count; - handle.pAudioData = Marshal.AllocHGlobal(count); - Marshal.Copy( - buffer, - offset, - handle.pAudioData, - count - ); - - /* Play regions */ - handle.PlayBegin = 0; - if (wFormatTag == 1) - { - handle.PlayLength = (uint) ( - count / - nChannels / - (wBitsPerSample / 8) - ); - } - else if (wFormatTag == 2) - { - handle.PlayLength = (uint) ( - count / - nBlockAlign * - (((nBlockAlign / nChannels) - 6) * 2) - ); - } - else if (wFormatTag == 0x166) - { - FAudio.FAudioXMA2WaveFormatEx* xma2 = (FAudio.FAudioXMA2WaveFormatEx*) formatPtr; - // dwSamplesEncoded / nChannels / (wBitsPerSample / 8) doesn't always (if ever?) match up. - handle.PlayLength = xma2->dwPlayLength; - } - - /* Set by Instances! */ - handle.LoopBegin = 0; - handle.LoopLength = 0; - handle.LoopCount = 0; - } - - #endregion - - #region Destructor - - ~SoundEffect() - { - if (Instances.Count > 0) - { - // STOP LEAKING YOUR INSTANCES, ARGH - GC.ReRegisterForFinalize(this); - return; - } - Dispose(); - } - - #endregion - - #region Public Methods - - public void Dispose() - { - if (!IsDisposed) - { - /* FIXME: Is it ironic that we're generating - * garbage with ToArray while cleaning up after - * the program's leaks? - * -flibit - */ - foreach (WeakReference instance in Instances.ToArray()) - { - object target = instance.Target; - if (target != null) - { - (target as IDisposable).Dispose(); - } - } - Instances.Clear(); - Marshal.FreeHGlobal(formatPtr); - Marshal.FreeHGlobal(handle.pAudioData); - IsDisposed = true; - } - } - - public bool Play() - { - return Play(1.0f, 0.0f, 0.0f); - } - - public bool Play(float volume, float pitch, float pan) - { - SoundEffectInstance instance = new SoundEffectInstance(this); - instance.Volume = volume; - instance.Pitch = pitch; - instance.Pan = pan; - instance.Play(); - if (instance.State != SoundState.Playing) - { - // Ran out of AL sources, probably. - instance.Dispose(); - return false; - } - return true; - } - - public SoundEffectInstance CreateInstance() - { - return new SoundEffectInstance(this); - } - - #endregion - - #region Public Static Methods - - public static TimeSpan GetSampleDuration( - int sizeInBytes, - int sampleRate, - AudioChannels channels - ) { - sizeInBytes /= 2; // 16-bit PCM! - int ms = (int) ( - (sizeInBytes / (int) channels) / - (sampleRate / 1000.0f) - ); - return new TimeSpan(0, 0, 0, 0, ms); - } - - public static int GetSampleSizeInBytes( - TimeSpan duration, - int sampleRate, - AudioChannels channels - ) { - return (int) ( - duration.TotalSeconds * - sampleRate * - (int) channels * - 2 // 16-bit PCM! - ); - } - - public static SoundEffect FromStream(Stream stream) - { - // Sample data - byte[] data; - - // WaveFormatEx data - ushort wFormatTag; - ushort nChannels; - uint nSamplesPerSec; - uint nAvgBytesPerSec; - ushort nBlockAlign; - ushort wBitsPerSample; - // ushort cbSize; - - int samplerLoopStart = 0; - int samplerLoopEnd = 0; - - using (BinaryReader reader = new BinaryReader(stream)) - { - // RIFF Signature - string signature = new string(reader.ReadChars(4)); - if (signature != "RIFF") - { - throw new NotSupportedException("Specified stream is not a wave file."); - } - - reader.ReadUInt32(); // Riff Chunk Size - - string wformat = new string(reader.ReadChars(4)); - if (wformat != "WAVE") - { - throw new NotSupportedException("Specified stream is not a wave file."); - } - - // WAVE Header - string format_signature = new string(reader.ReadChars(4)); - while (format_signature != "fmt ") - { - reader.ReadBytes(reader.ReadInt32()); - format_signature = new string(reader.ReadChars(4)); - } - - int format_chunk_size = reader.ReadInt32(); - - wFormatTag = reader.ReadUInt16(); - nChannels = reader.ReadUInt16(); - nSamplesPerSec = reader.ReadUInt32(); - nAvgBytesPerSec = reader.ReadUInt32(); - nBlockAlign = reader.ReadUInt16(); - wBitsPerSample = reader.ReadUInt16(); - - // Reads residual bytes - if (format_chunk_size > 16) - { - reader.ReadBytes(format_chunk_size - 16); - } - - // data Signature - string data_signature = new string(reader.ReadChars(4)); - while (data_signature.ToLowerInvariant() != "data") - { - reader.ReadBytes(reader.ReadInt32()); - data_signature = new string(reader.ReadChars(4)); - } - if (data_signature != "data") - { - throw new NotSupportedException("Specified wave file is not supported."); - } - - int waveDataLength = reader.ReadInt32(); - data = reader.ReadBytes(waveDataLength); - - // Scan for other chunks - while (reader.PeekChar() != -1) - { - char[] chunkIDChars = reader.ReadChars(4); - if (chunkIDChars.Length < 4) - { - break; // EOL! - } - byte[] chunkSizeBytes = reader.ReadBytes(4); - if (chunkSizeBytes.Length < 4) - { - break; // EOL! - } - string chunk_signature = new string(chunkIDChars); - int chunkDataSize = BitConverter.ToInt32(chunkSizeBytes, 0); - if (chunk_signature == "smpl") // "smpl", Sampler Chunk Found - { - reader.ReadUInt32(); // Manufacturer - reader.ReadUInt32(); // Product - reader.ReadUInt32(); // Sample Period - reader.ReadUInt32(); // MIDI Unity Note - reader.ReadUInt32(); // MIDI Pitch Fraction - reader.ReadUInt32(); // SMPTE Format - reader.ReadUInt32(); // SMPTE Offset - uint numSampleLoops = reader.ReadUInt32(); - int samplerData = reader.ReadInt32(); - - for (int i = 0; i < numSampleLoops; i += 1) - { - reader.ReadUInt32(); // Cue Point ID - reader.ReadUInt32(); // Type - int start = reader.ReadInt32(); - int end = reader.ReadInt32(); - reader.ReadUInt32(); // Fraction - reader.ReadUInt32(); // Play Count - - if (i == 0) // Grab loopStart and loopEnd from first sample loop - { - samplerLoopStart = start; - samplerLoopEnd = end; - } - } - - if (samplerData != 0) // Read Sampler Data if it exists - { - reader.ReadBytes(samplerData); - } - } - else // Read unwanted chunk data and try again - { - reader.ReadBytes(chunkDataSize); - } - } - // End scan - } - - return new SoundEffect( - null, - data, - 0, - data.Length, - null, - wFormatTag, - nChannels, - nSamplesPerSec, - nAvgBytesPerSec, - nBlockAlign, - wBitsPerSample, - samplerLoopStart, - samplerLoopEnd - samplerLoopStart - ); - } - - #endregion - - #region FAudio Context - - internal class FAudioContext - { - public static FAudioContext Context = null; - - public readonly IntPtr Handle; - public readonly byte[] Handle3D; - public readonly IntPtr MasterVoice; - public readonly FAudio.FAudioDeviceDetails DeviceDetails; - - public float CurveDistanceScaler; - public float DopplerScale; - public float SpeedOfSound; - - public IntPtr ReverbVoice; - private FAudio.FAudioVoiceSends reverbSends; - - private FAudioContext(IntPtr ctx, uint devices) - { - Handle = ctx; - - uint i; - for (i = 0; i < devices; i += 1) - { - FAudio.FAudio_GetDeviceDetails( - Handle, - i, - out DeviceDetails - ); - if ((DeviceDetails.Role & FAudio.FAudioDeviceRole.FAudioDefaultGameDevice) == FAudio.FAudioDeviceRole.FAudioDefaultGameDevice) - { - break; - } - } - if (i == devices) - { - i = 0; /* Oh well. */ - FAudio.FAudio_GetDeviceDetails( - Handle, - i, - out DeviceDetails - ); - } - if (FAudio.FAudio_CreateMasteringVoice( - Handle, - out MasterVoice, - FAudio.FAUDIO_DEFAULT_CHANNELS, - FAudio.FAUDIO_DEFAULT_SAMPLERATE, - 0, - i, - IntPtr.Zero - ) != 0) { - FAudio.FAudio_Release(ctx); - Handle = IntPtr.Zero; - FNALoggerEXT.LogError( - "Failed to create mastering voice!" - ); - return; - } - - CurveDistanceScaler = 1.0f; - DopplerScale = 1.0f; - SpeedOfSound = 343.5f; - Handle3D = new byte[FAudio.F3DAUDIO_HANDLE_BYTESIZE]; - FAudio.F3DAudioInitialize( - DeviceDetails.OutputFormat.dwChannelMask, - SpeedOfSound, - Handle3D - ); - - Context = this; - } - - public void Dispose() - { - if (ReverbVoice != IntPtr.Zero) - { - FAudio.FAudioVoice_DestroyVoice(ReverbVoice); - ReverbVoice = IntPtr.Zero; - Marshal.FreeHGlobal(reverbSends.pSends); - } - if (MasterVoice != IntPtr.Zero) - { - FAudio.FAudioVoice_DestroyVoice(MasterVoice); - } - if (Handle != IntPtr.Zero) - { - FAudio.FAudio_Release(Handle); - } - Context = null; - } - - public unsafe void AttachReverb(IntPtr voice) - { - // Only create a reverb voice if they ask for it! - if (ReverbVoice == IntPtr.Zero) - { - IntPtr reverb; - FAudio.FAudioCreateReverb(out reverb, 0); - - IntPtr chainPtr; - chainPtr = Marshal.AllocHGlobal( - Marshal.SizeOf(typeof(FAudio.FAudioEffectChain)) - ); - FAudio.FAudioEffectChain* reverbChain = (FAudio.FAudioEffectChain*) chainPtr; - reverbChain->EffectCount = 1; - reverbChain->pEffectDescriptors = Marshal.AllocHGlobal( - Marshal.SizeOf(typeof(FAudio.FAudioEffectDescriptor)) - ); - - FAudio.FAudioEffectDescriptor* reverbDesc = - (FAudio.FAudioEffectDescriptor*) reverbChain->pEffectDescriptors; - reverbDesc->InitialState = 1; - reverbDesc->OutputChannels = (uint) ( - (DeviceDetails.OutputFormat.Format.nChannels == 6) ? 6 : 1 - ); - reverbDesc->pEffect = reverb; - - FAudio.FAudio_CreateSubmixVoice( - Handle, - out ReverbVoice, - 1, /* Reverb will be omnidirectional */ - DeviceDetails.OutputFormat.Format.nSamplesPerSec, - 0, - 0, - IntPtr.Zero, - chainPtr - ); - FAudio.FAPOBase_Release(reverb); - - Marshal.FreeHGlobal(reverbChain->pEffectDescriptors); - Marshal.FreeHGlobal(chainPtr); - - // Defaults based on FAUDIOFX_I3DL2_PRESET_GENERIC - IntPtr rvbParamsPtr = Marshal.AllocHGlobal( - Marshal.SizeOf(typeof(FAudio.FAudioFXReverbParameters)) - ); - FAudio.FAudioFXReverbParameters* rvbParams = (FAudio.FAudioFXReverbParameters*) rvbParamsPtr; - rvbParams->WetDryMix = 100.0f; - rvbParams->ReflectionsDelay = 7; - rvbParams->ReverbDelay = 11; - rvbParams->RearDelay = FAudio.FAUDIOFX_REVERB_DEFAULT_REAR_DELAY; - rvbParams->PositionLeft = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION; - rvbParams->PositionRight = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION; - rvbParams->PositionMatrixLeft = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX; - rvbParams->PositionMatrixRight = FAudio.FAUDIOFX_REVERB_DEFAULT_POSITION_MATRIX; - rvbParams->EarlyDiffusion = 15; - rvbParams->LateDiffusion = 15; - rvbParams->LowEQGain = 8; - rvbParams->LowEQCutoff = 4; - rvbParams->HighEQGain = 8; - rvbParams->HighEQCutoff = 6; - rvbParams->RoomFilterFreq = 5000f; - rvbParams->RoomFilterMain = -10f; - rvbParams->RoomFilterHF = -1f; - rvbParams->ReflectionsGain = -26.0200005f; - rvbParams->ReverbGain = 10.0f; - rvbParams->DecayTime = 1.49000001f; - rvbParams->Density = 100.0f; - rvbParams->RoomSize = FAudio.FAUDIOFX_REVERB_DEFAULT_ROOM_SIZE; - FAudio.FAudioVoice_SetEffectParameters( - ReverbVoice, - 0, - rvbParamsPtr, - (uint) Marshal.SizeOf(typeof(FAudio.FAudioFXReverbParameters)), - 0 - ); - Marshal.FreeHGlobal(rvbParamsPtr); - - reverbSends = new FAudio.FAudioVoiceSends(); - reverbSends.SendCount = 2; - reverbSends.pSends = Marshal.AllocHGlobal( - 2 * Marshal.SizeOf(typeof(FAudio.FAudioSendDescriptor)) - ); - FAudio.FAudioSendDescriptor* sendDesc = (FAudio.FAudioSendDescriptor*) reverbSends.pSends; - sendDesc[0].Flags = 0; - sendDesc[0].pOutputVoice = MasterVoice; - sendDesc[1].Flags = 0; - sendDesc[1].pOutputVoice = ReverbVoice; - } - - // Oh hey here's where we actually attach it - FAudio.FAudioVoice_SetOutputVoices( - voice, - ref reverbSends - ); - } - - public static void Create() - { - IntPtr ctx; - try - { - FAudio.FAudioCreate( - out ctx, - 0, - FAudio.FAUDIO_DEFAULT_PROCESSOR - ); - } - catch (Exception e) - { - /* FAudio is missing, bail! */ - FNALoggerEXT.LogWarn("FAudio failed to load: " + e.ToString()); - return; - } - - uint devices; - FAudio.FAudio_GetDeviceCount( - ctx, - out devices - ); - if (devices == 0) - { - /* No sound cards, bail! */ - FAudio.FAudio_Release(ctx); - return; - } - - FAudioContext context = new FAudioContext(ctx, devices); - - if (context.Handle == IntPtr.Zero) - { - /* Soundcard failed to configure, bail! */ - context.Dispose(); - return; - } - - Context = context; - } - } - - private static readonly object createLock = new object(); - internal static FAudioContext Device() - { - /* Ideally the device has been made, just return it. */ - if (FAudioContext.Context != null) - { - return FAudioContext.Context; - } - - /* From here on out, it gets weird... */ - lock (createLock) - { - /* If this trips it's because another thread - * got here first. We do the check above to - * avoid the mutex lock for the 99.99% of the - * time where it's not necessary. - */ - if (FAudioContext.Context != null) - { - return FAudioContext.Context; - } - - /* If you're here, you were the first caller! - * that, or there genuinely is no hardware and - * you're about to get a lot more of these. - */ - FAudioContext.Create(); - if (FAudioContext.Context == null) - { - throw new NoAudioHardwareException(); - } - } - return FAudioContext.Context; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/SoundEffectInstance.cs b/RE/Commit2/ThirdParty/fna/src/Audio/SoundEffectInstance.cs deleted file mode 100644 index 87df2ac4..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/SoundEffectInstance.cs +++ /dev/null @@ -1,658 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundeffectinstance.aspx - public class SoundEffectInstance : IDisposable - { - #region Public Properties - - public bool IsDisposed - { - get; - protected set; - } - - private bool INTERNAL_looped = false; - public virtual bool IsLooped - { - get - { - return INTERNAL_looped; - } - set - { - if (INTERNAL_looped == value) - { - return; - } - bool shouldReplay = false; - if (hasStarted) - { - Stop(); - shouldReplay = true; - } - INTERNAL_looped = value; - if (shouldReplay) - { - Play(); - } - } - } - - private float INTERNAL_pan = 0.0f; - public float Pan - { - get - { - return INTERNAL_pan; - } - set - { - if (IsDisposed) - { - throw new ObjectDisposedException( - "SoundEffectInstance" - ); - } - - if (value > 1.0f || value < -1.0f) - { - throw new ArgumentOutOfRangeException("value"); - } - INTERNAL_pan = value; - if (is3D) - { - return; - } - - SetPanMatrixCoefficients(); - if (handle != IntPtr.Zero) - { - FAudio.FAudioVoice_SetOutputMatrix( - handle, - SoundEffect.Device().MasterVoice, - dspSettings.SrcChannelCount, - dspSettings.DstChannelCount, - dspSettings.pMatrixCoefficients, - 0 - ); - } - } - } - - private float INTERNAL_pitch = 0.0f; - public float Pitch - { - get - { - return INTERNAL_pitch; - } - set - { - INTERNAL_pitch = MathHelper.Clamp(value, -1.0f, 1.0f); - if (handle != IntPtr.Zero) - { - UpdatePitch(); - } - } - } - - private SoundState INTERNAL_state = SoundState.Stopped; - public SoundState State - { - get - { - if ( !isDynamic && - handle != IntPtr.Zero && - INTERNAL_state == SoundState.Playing ) - { - FAudio.FAudioVoiceState state; - FAudio.FAudioSourceVoice_GetState( - handle, - out state, - FAudio.FAUDIO_VOICE_NOSAMPLESPLAYED - ); - if (state.BuffersQueued == 0) - { - Stop(true); - } - } - return INTERNAL_state; - } - } - - private float INTERNAL_volume = 1.0f; - public float Volume - { - get - { - return INTERNAL_volume; - } - set - { - INTERNAL_volume = value; - if (handle != IntPtr.Zero) - { - FAudio.FAudioVoice_SetVolume( - handle, - INTERNAL_volume, - 0 - ); - } - } - } - - #endregion - - #region Internal Variables - - internal IntPtr handle; - internal bool isDynamic; - - #endregion - - #region Private Variables - - private SoundEffect parentEffect; - private WeakReference selfReference; - private bool hasStarted; - private bool is3D; - private bool usingReverb; - private FAudio.F3DAUDIO_DSP_SETTINGS dspSettings; - - #endregion - - #region Internal Constructor - - internal SoundEffectInstance(SoundEffect parent = null) - { - SoundEffect.Device(); - - selfReference = new WeakReference(this, true); - parentEffect = parent; - isDynamic = this is DynamicSoundEffectInstance; - hasStarted = false; - is3D = false; - usingReverb = false; - INTERNAL_state = SoundState.Stopped; - - if (!isDynamic) - { - InitDSPSettings(parentEffect.channels); - } - if (parentEffect != null) - { - parentEffect.Instances.Add(selfReference); - } - } - - #endregion - - #region Destructor - - ~SoundEffectInstance() - { - if (!IsDisposed && State == SoundState.Playing) - { - // STOP LEAKING YOUR INSTANCES, ARGH - GC.ReRegisterForFinalize(this); - return; - } - Dispose(); - } - - #endregion - - #region Public Methods - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - public void Apply3D(AudioListener listener, AudioEmitter emitter) - { - if (listener == null) - { - throw new ArgumentNullException("listener"); - } - if (emitter == null) - { - throw new ArgumentNullException("emitter"); - } - if (IsDisposed) - { - throw new ObjectDisposedException( - "SoundEffectInstance" - ); - } - - is3D = true; - SoundEffect.FAudioContext dev = SoundEffect.Device(); - emitter.emitterData.CurveDistanceScaler = dev.CurveDistanceScaler; - emitter.emitterData.ChannelCount = dspSettings.SrcChannelCount; - FAudio.F3DAudioCalculate( - dev.Handle3D, - ref listener.listenerData, - ref emitter.emitterData, - ( - FAudio.F3DAUDIO_CALCULATE_MATRIX | - FAudio.F3DAUDIO_CALCULATE_DOPPLER - ), - ref dspSettings - ); - if (handle != IntPtr.Zero) - { - UpdatePitch(); - FAudio.FAudioVoice_SetOutputMatrix( - handle, - SoundEffect.Device().MasterVoice, - dspSettings.SrcChannelCount, - dspSettings.DstChannelCount, - dspSettings.pMatrixCoefficients, - 0 - ); - } - } - - public void Apply3D(AudioListener[] listeners, AudioEmitter emitter) - { - if (listeners == null) - { - throw new ArgumentNullException("listeners"); - } - if (listeners.Length == 1) - { - Apply3D(listeners[0], emitter); - return; - } - throw new NotSupportedException("Only one listener is supported."); - } - - public virtual void Play() - { - if (State == SoundState.Playing) - { - return; - } - if (State == SoundState.Paused) - { - /* Just resume the existing handle */ - FAudio.FAudioSourceVoice_Start(handle, 0, 0); - INTERNAL_state = SoundState.Playing; - return; - } - - SoundEffect.FAudioContext dev = SoundEffect.Device(); - - /* Create handle */ - if (isDynamic) - { - FAudio.FAudio_CreateSourceVoice( - dev.Handle, - out handle, - ref (this as DynamicSoundEffectInstance).format, - FAudio.FAUDIO_VOICE_USEFILTER, - FAudio.FAUDIO_DEFAULT_FREQ_RATIO, - IntPtr.Zero, - IntPtr.Zero, - IntPtr.Zero - ); - } - else - { - FAudio.FAudio_CreateSourceVoice( - dev.Handle, - out handle, - parentEffect.formatPtr, - FAudio.FAUDIO_VOICE_USEFILTER, - FAudio.FAUDIO_DEFAULT_FREQ_RATIO, - IntPtr.Zero, - IntPtr.Zero, - IntPtr.Zero - ); - } - if (handle == IntPtr.Zero) - { - return; /* What */ - } - - /* Apply current properties */ - FAudio.FAudioVoice_SetVolume(handle, INTERNAL_volume, 0); - UpdatePitch(); - if (is3D || Pan != 0.0f) - { - FAudio.FAudioVoice_SetOutputMatrix( - handle, - SoundEffect.Device().MasterVoice, - dspSettings.SrcChannelCount, - dspSettings.DstChannelCount, - dspSettings.pMatrixCoefficients, - 0 - ); - } - - /* For static effects, submit the buffer now */ - if (isDynamic) - { - (this as DynamicSoundEffectInstance).QueueInitialBuffers(); - } - else - { - if (IsLooped) - { - parentEffect.handle.LoopCount = 255; - parentEffect.handle.LoopBegin = parentEffect.loopStart; - parentEffect.handle.LoopLength = parentEffect.loopLength; - } - else - { - parentEffect.handle.LoopCount = 0; - parentEffect.handle.LoopBegin = 0; - parentEffect.handle.LoopLength = 0; - } - FAudio.FAudioSourceVoice_SubmitSourceBuffer( - handle, - ref parentEffect.handle, - IntPtr.Zero - ); - } - - /* Play, finally. */ - FAudio.FAudioSourceVoice_Start(handle, 0, 0); - INTERNAL_state = SoundState.Playing; - hasStarted = true; - } - - public void Pause() - { - if (handle != IntPtr.Zero && State == SoundState.Playing) - { - FAudio.FAudioSourceVoice_Stop(handle, 0, 0); - INTERNAL_state = SoundState.Paused; - } - } - - public void Resume() - { - SoundState state = State; // Triggers a query, update - if (handle == IntPtr.Zero) - { - // XNA4 just plays if we've not started yet. - Play(); - } - else if (state == SoundState.Paused) - { - FAudio.FAudioSourceVoice_Start(handle, 0, 0); - INTERNAL_state = SoundState.Playing; - } - } - - public void Stop() - { - Stop(true); - } - - public void Stop(bool immediate) - { - if (handle == IntPtr.Zero) - { - return; - } - - if (immediate) - { - FAudio.FAudioSourceVoice_Stop(handle, 0, 0); - FAudio.FAudioSourceVoice_FlushSourceBuffers(handle); - FAudio.FAudioVoice_DestroyVoice(handle); - handle = IntPtr.Zero; - usingReverb = false; - INTERNAL_state = SoundState.Stopped; - - if (isDynamic) - { - lock (FrameworkDispatcher.Streams) - { - FrameworkDispatcher.Streams.Remove( - this as DynamicSoundEffectInstance - ); - } - (this as DynamicSoundEffectInstance).ClearBuffers(); - } - } - else - { - if (isDynamic) - { - throw new InvalidOperationException(); - } - FAudio.FAudioSourceVoice_ExitLoop(handle, 0); - } - } - - #endregion - - #region Protected Methods - - protected virtual void Dispose(bool disposing) - { - if (!IsDisposed) - { - Stop(true); - if (parentEffect != null) - { - parentEffect.Instances.Remove(selfReference); - } - selfReference = null; - Marshal.FreeHGlobal(dspSettings.pMatrixCoefficients); - IsDisposed = true; - } - } - - #endregion - - #region Internal Methods - - internal void InitDSPSettings(uint srcChannels) - { - dspSettings = new FAudio.F3DAUDIO_DSP_SETTINGS(); - dspSettings.DopplerFactor = 1.0f; - dspSettings.SrcChannelCount = srcChannels; - dspSettings.DstChannelCount = SoundEffect.Device().DeviceDetails.OutputFormat.Format.nChannels; - - int memsize = ( - 4 * - (int) dspSettings.SrcChannelCount * - (int) dspSettings.DstChannelCount - ); - dspSettings.pMatrixCoefficients = Marshal.AllocHGlobal(memsize); - unsafe - { - byte* memPtr = (byte*) dspSettings.pMatrixCoefficients; - for (int i = 0; i < memsize; i += 1) - { - memPtr[i] = 0; - } - } - SetPanMatrixCoefficients(); - } - - internal unsafe void INTERNAL_applyReverb(float rvGain) - { - if (handle == IntPtr.Zero) - { - return; - } - - if (!usingReverb) - { - SoundEffect.Device().AttachReverb(handle); - usingReverb = true; - } - - // Re-using this float array... - float* outputMatrix = (float*) dspSettings.pMatrixCoefficients; - outputMatrix[0] = rvGain; - if (dspSettings.SrcChannelCount == 2) - { - outputMatrix[1] = rvGain; - } - FAudio.FAudioVoice_SetOutputMatrix( - handle, - SoundEffect.Device().ReverbVoice, - dspSettings.SrcChannelCount, - 1, - dspSettings.pMatrixCoefficients, - 0 - ); - } - - internal void INTERNAL_applyLowPassFilter(float cutoff) - { - if (handle == IntPtr.Zero) - { - return; - } - - FAudio.FAudioFilterParameters p = new FAudio.FAudioFilterParameters(); - p.Type = FAudio.FAudioFilterType.FAudioLowPassFilter; - p.Frequency = cutoff; - p.OneOverQ = 1.0f; - FAudio.FAudioVoice_SetFilterParameters( - handle, - ref p, - 0 - ); - } - - internal void INTERNAL_applyHighPassFilter(float cutoff) - { - if (handle == IntPtr.Zero) - { - return; - } - - FAudio.FAudioFilterParameters p = new FAudio.FAudioFilterParameters(); - p.Type = FAudio.FAudioFilterType.FAudioHighPassFilter; - p.Frequency = cutoff; - p.OneOverQ = 1.0f; - FAudio.FAudioVoice_SetFilterParameters( - handle, - ref p, - 0 - ); - } - - internal void INTERNAL_applyBandPassFilter(float center) - { - if (handle == IntPtr.Zero) - { - return; - } - - FAudio.FAudioFilterParameters p = new FAudio.FAudioFilterParameters(); - p.Type = FAudio.FAudioFilterType.FAudioBandPassFilter; - p.Frequency = center; - p.OneOverQ = 1.0f; - FAudio.FAudioVoice_SetFilterParameters( - handle, - ref p, - 0 - ); - } - - #endregion - - #region Private Methods - - private void UpdatePitch() - { - float doppler; - float dopplerScale = SoundEffect.Device().DopplerScale; - if (!is3D || dopplerScale == 0.0f) - { - doppler = 1.0f; - } - else - { - doppler = dspSettings.DopplerFactor * dopplerScale; - } - - FAudio.FAudioSourceVoice_SetFrequencyRatio( - handle, - (float) Math.Pow(2.0, INTERNAL_pitch) * doppler, - 0 - ); - } - - private unsafe void SetPanMatrixCoefficients() - { - /* Two major things to notice: - * 1. The spec assumes any speaker count >= 2 has Front Left/Right. - * 2. Stereo panning is WAY more complicated than you think. - * The main thing is that hard panning does NOT eliminate an - * entire channel; the two channels are blended on each side. - * Aside from that, XNA is pretty naive about the output matrix. - * -flibit - */ - float* outputMatrix = (float*) dspSettings.pMatrixCoefficients; - if (dspSettings.SrcChannelCount == 1) - { - if (dspSettings.DstChannelCount == 1) - { - outputMatrix[0] = 1.0f; - } - else - { - outputMatrix[0] = (INTERNAL_pan > 0.0f) ? (1.0f - INTERNAL_pan) : 1.0f; - outputMatrix[1] = (INTERNAL_pan < 0.0f) ? (1.0f + INTERNAL_pan) : 1.0f; - } - } - else - { - if (dspSettings.DstChannelCount == 1) - { - outputMatrix[0] = 1.0f; - outputMatrix[1] = 1.0f; - } - else - { - if (INTERNAL_pan <= 0.0f) - { - // Left speaker blends left/right channels - outputMatrix[0] = 0.5f * INTERNAL_pan + 1.0f; - outputMatrix[1] = 0.5f * -INTERNAL_pan; - // Right speaker gets less of the right channel - outputMatrix[2] = 0.0f; - outputMatrix[3] = INTERNAL_pan + 1.0f; - } - else - { - // Left speaker gets less of the left channel - outputMatrix[0] = -INTERNAL_pan + 1.0f; - outputMatrix[1] = 0.0f; - // Right speaker blends right/left channels - outputMatrix[2] = 0.5f * INTERNAL_pan; - outputMatrix[3] = 0.5f * -INTERNAL_pan + 1.0f; - } - } - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/SoundState.cs b/RE/Commit2/ThirdParty/fna/src/Audio/SoundState.cs deleted file mode 100644 index bffff94c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/SoundState.cs +++ /dev/null @@ -1,19 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.soundstate.aspx - public enum SoundState - { - Playing, - Paused, - Stopped - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Audio/WaveBank.cs b/RE/Commit2/ThirdParty/fna/src/Audio/WaveBank.cs deleted file mode 100644 index 81aba56c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Audio/WaveBank.cs +++ /dev/null @@ -1,226 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.IO; -using System.Runtime.InteropServices; -#endregion - -namespace Microsoft.Xna.Framework.Audio -{ - // http://msdn.microsoft.com/en-us/library/microsoft.xna.framework.audio.wavebank.aspx - public class WaveBank : IDisposable - { - #region Public Properties - - public bool IsDisposed - { - get; - private set; - } - - public bool IsPrepared - { - get - { - uint state; - FAudio.FACTWaveBank_GetState(handle, out state); - return (state & FAudio.FACT_STATE_PREPARED) != 0; - } - } - - public bool IsInUse - { - get - { - uint state; - FAudio.FACTWaveBank_GetState(handle, out state); - return (state & FAudio.FACT_STATE_INUSE) != 0; - } - } - - #endregion - - #region Private Variables - - private IntPtr handle; - - private AudioEngine engine; - private WeakReference selfReference; - - private IntPtr bankData; - private IntPtr bankDataLen; // Non-zero for in-memory WaveBanks - - #endregion - - #region Disposing Event - - public event EventHandler Disposing; - - #endregion - - #region Public Constructors - - public WaveBank( - AudioEngine audioEngine, - string nonStreamingWaveBankFilename - ) { - if (audioEngine == null) - { - throw new ArgumentNullException("audioEngine"); - } - if (String.IsNullOrEmpty(nonStreamingWaveBankFilename)) - { - throw new ArgumentNullException("nonStreamingWaveBankFilename"); - } - - bankData = TitleContainer.ReadToPointer( - nonStreamingWaveBankFilename, - out bankDataLen - ); - - FAudio.FACTAudioEngine_CreateInMemoryWaveBank( - audioEngine.handle, - bankData, - (uint) bankDataLen, - 0, - 0, - out handle - ); - - engine = audioEngine; - selfReference = new WeakReference(this, true); - engine.RegisterPointer(handle, selfReference); - IsDisposed = false; - } - - public WaveBank( - AudioEngine audioEngine, - string streamingWaveBankFilename, - int offset, - short packetsize - ) { - if (audioEngine == null) - { - throw new ArgumentNullException("audioEngine"); - } - if (String.IsNullOrEmpty(streamingWaveBankFilename)) - { - throw new ArgumentNullException("streamingWaveBankFilename"); - } - - string safeName = MonoGame.Utilities.FileHelpers.NormalizeFilePathSeparators( - streamingWaveBankFilename - ); - if (!Path.IsPathRooted(safeName)) - { - safeName = Path.Combine( - TitleLocation.Path, - safeName - ); - } - bankData = FAudio.FAudio_fopen(safeName); - - FAudio.FACTStreamingParameters settings = new FAudio.FACTStreamingParameters(); - settings.file = bankData; - FAudio.FACTAudioEngine_CreateStreamingWaveBank( - audioEngine.handle, - ref settings, - out handle - ); - - engine = audioEngine; - selfReference = new WeakReference(this, true); - engine.RegisterPointer(handle, selfReference); - IsDisposed = false; - } - - #endregion - - #region Destructor - - ~WaveBank() - { - if (AudioEngine.ProgramExiting) - { - return; - } - - if (!IsDisposed && IsInUse) - { - // STOP LEAKING YOUR BANKS, ARGH - GC.ReRegisterForFinalize(this); - return; - } - Dispose(false); - } - - #endregion - - #region Public Dispose Method - - public void Dispose() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - #endregion - - #region Protected Dispose Method - - protected virtual void Dispose(bool disposing) - { - lock (engine.gcSync) - { - if (!IsDisposed) - { - if (Disposing != null) - { - Disposing.Invoke(this, null); - } - - // If this is disposed, stop leaking memory! - if (!engine.IsDisposed) - { - FAudio.FACTWaveBank_Destroy(handle); - } - OnWaveBankDestroyed(); - } - } - } - - #endregion - - #region Internal Methods - - internal void OnWaveBankDestroyed() - { - IsDisposed = true; - if (bankData != IntPtr.Zero) - { - if (bankDataLen != IntPtr.Zero) - { - FNAPlatform.FreeFilePointer(bankData); - bankDataLen = IntPtr.Zero; - } - else - { - FAudio.FAudio_close(bankData); - } - bankData = IntPtr.Zero; - } - handle = IntPtr.Zero; - selfReference = null; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/BoundingBox.cs b/RE/Commit2/ThirdParty/fna/src/BoundingBox.cs deleted file mode 100644 index 07dba718..00000000 --- a/RE/Commit2/ThirdParty/fna/src/BoundingBox.cs +++ /dev/null @@ -1,612 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; - -using Microsoft.Xna.Framework.Design; -#endregion - -namespace Microsoft.Xna.Framework -{ - [Serializable] - [TypeConverter(typeof(BoundingBoxConverter))] - [DebuggerDisplay("{DebugDisplayString,nq}")] - public struct BoundingBox : IEquatable - { - #region Internal Properties - - internal string DebugDisplayString - { - get - { - return string.Concat( - "Min( ", Min.DebugDisplayString, " ) \r\n", - "Max( ", Max.DebugDisplayString, " )" - ); - } - } - - #endregion - - #region Public Fields - - public Vector3 Min; - - public Vector3 Max; - - public const int CornerCount = 8; - - #endregion - - #region Private Static Variables - - // These are NOT readonly, for weird performance reasons -flibit - private static Vector3 MaxVector3 = new Vector3(float.MaxValue); - private static Vector3 MinVector3 = new Vector3(float.MinValue); - - #endregion - - #region Public Constructors - - public BoundingBox(Vector3 min, Vector3 max) - { - this.Min = min; - this.Max = max; - } - - #endregion - - #region Public Methods - - public void Contains(ref BoundingBox box, out ContainmentType result) - { - result = Contains(box); - } - - public void Contains(ref BoundingSphere sphere, out ContainmentType result) - { - result = this.Contains(sphere); - } - - public ContainmentType Contains(Vector3 point) - { - ContainmentType result; - this.Contains(ref point, out result); - return result; - } - - public ContainmentType Contains(BoundingBox box) - { - // Test if all corner is in the same side of a face by just checking min and max - if ( box.Max.X < Min.X || - box.Min.X > Max.X || - box.Max.Y < Min.Y || - box.Min.Y > Max.Y || - box.Max.Z < Min.Z || - box.Min.Z > Max.Z ) - { - return ContainmentType.Disjoint; - } - - - if ( box.Min.X >= Min.X && - box.Max.X <= Max.X && - box.Min.Y >= Min.Y && - box.Max.Y <= Max.Y && - box.Min.Z >= Min.Z && - box.Max.Z <= Max.Z ) - { - return ContainmentType.Contains; - } - - return ContainmentType.Intersects; - } - - public ContainmentType Contains(BoundingFrustum frustum) - { - /* TODO: bad done here need a fix. - * Because the question is not if frustum contains box but the reverse and - * this is not the same. - */ - int i; - ContainmentType contained; - Vector3[] corners = frustum.GetCorners(); - - // First we check if frustum is in box. - for (i = 0; i < corners.Length; i += 1) - { - this.Contains(ref corners[i], out contained); - if (contained == ContainmentType.Disjoint) - { - break; - } - } - - // This means we checked all the corners and they were all contain or instersect - if (i == corners.Length) - { - return ContainmentType.Contains; - } - - // If i is not equal to zero, we can fastpath and say that this box intersects - if (i != 0) - { - return ContainmentType.Intersects; - } - - - /* If we get here, it means the first (and only) point we checked was - * actually contained in the frustum. So we assume that all other points - * will also be contained. If one of the points is disjoint, we can - * exit immediately saying that the result is Intersects - */ - i += 1; - for (; i < corners.Length; i += 1) - { - this.Contains(ref corners[i], out contained); - if (contained != ContainmentType.Contains) - { - return ContainmentType.Intersects; - } - - } - - /* If we get here, then we know all the points were actually contained, - * therefore result is Contains. - */ - return ContainmentType.Contains; - } - - public ContainmentType Contains(BoundingSphere sphere) - { - if ( sphere.Center.X - Min.X >= sphere.Radius && - sphere.Center.Y - Min.Y >= sphere.Radius && - sphere.Center.Z - Min.Z >= sphere.Radius && - Max.X - sphere.Center.X >= sphere.Radius && - Max.Y - sphere.Center.Y >= sphere.Radius && - Max.Z - sphere.Center.Z >= sphere.Radius ) - { - return ContainmentType.Contains; - } - - double dmin = 0; - - double e = sphere.Center.X - Min.X; - if (e < 0) - { - if (e < -sphere.Radius) - { - return ContainmentType.Disjoint; - } - dmin += e * e; - } - else - { - e = sphere.Center.X - Max.X; - if (e > 0) - { - if (e > sphere.Radius) - { - return ContainmentType.Disjoint; - } - dmin += e * e; - } - } - - e = sphere.Center.Y - Min.Y; - if (e < 0) - { - if (e < -sphere.Radius) - { - return ContainmentType.Disjoint; - } - dmin += e * e; - } - else - { - e = sphere.Center.Y - Max.Y; - if (e > 0) - { - if (e > sphere.Radius) - { - return ContainmentType.Disjoint; - } - dmin += e * e; - } - } - - e = sphere.Center.Z - Min.Z; - if (e < 0) - { - if (e < -sphere.Radius) - { - return ContainmentType.Disjoint; - } - dmin += e * e; - } - else - { - e = sphere.Center.Z - Max.Z; - if (e > 0) - { - if (e > sphere.Radius) - { - return ContainmentType.Disjoint; - } - dmin += e * e; - } - } - - if (dmin <= sphere.Radius * sphere.Radius) - { - return ContainmentType.Intersects; - } - - return ContainmentType.Disjoint; - } - - public void Contains(ref Vector3 point, out ContainmentType result) - { - // Determine if point is outside of this box. - if ( point.X < this.Min.X || - point.X > this.Max.X || - point.Y < this.Min.Y || - point.Y > this.Max.Y || - point.Z < this.Min.Z || - point.Z > this.Max.Z ) - { - result = ContainmentType.Disjoint; - } - else - { - result = ContainmentType.Contains; - } - } - - public Vector3[] GetCorners() - { - return new Vector3[] { - new Vector3(this.Min.X, this.Max.Y, this.Max.Z), - new Vector3(this.Max.X, this.Max.Y, this.Max.Z), - new Vector3(this.Max.X, this.Min.Y, this.Max.Z), - new Vector3(this.Min.X, this.Min.Y, this.Max.Z), - new Vector3(this.Min.X, this.Max.Y, this.Min.Z), - new Vector3(this.Max.X, this.Max.Y, this.Min.Z), - new Vector3(this.Max.X, this.Min.Y, this.Min.Z), - new Vector3(this.Min.X, this.Min.Y, this.Min.Z) - }; - } - - public void GetCorners(Vector3[] corners) - { - if (corners == null) - { - throw new ArgumentNullException("corners"); - } - if (corners.Length < 8) - { - throw new ArgumentOutOfRangeException("corners", "Not Enought Corners"); - } - corners[0].X = this.Min.X; - corners[0].Y = this.Max.Y; - corners[0].Z = this.Max.Z; - corners[1].X = this.Max.X; - corners[1].Y = this.Max.Y; - corners[1].Z = this.Max.Z; - corners[2].X = this.Max.X; - corners[2].Y = this.Min.Y; - corners[2].Z = this.Max.Z; - corners[3].X = this.Min.X; - corners[3].Y = this.Min.Y; - corners[3].Z = this.Max.Z; - corners[4].X = this.Min.X; - corners[4].Y = this.Max.Y; - corners[4].Z = this.Min.Z; - corners[5].X = this.Max.X; - corners[5].Y = this.Max.Y; - corners[5].Z = this.Min.Z; - corners[6].X = this.Max.X; - corners[6].Y = this.Min.Y; - corners[6].Z = this.Min.Z; - corners[7].X = this.Min.X; - corners[7].Y = this.Min.Y; - corners[7].Z = this.Min.Z; - } - - public Nullable Intersects(Ray ray) - { - return ray.Intersects(this); - } - - public void Intersects(ref Ray ray, out Nullable result) - { - result = Intersects(ray); - } - - public bool Intersects(BoundingFrustum frustum) - { - return frustum.Intersects(this); - } - - public void Intersects(ref BoundingSphere sphere, out bool result) - { - result = Intersects(sphere); - } - - public bool Intersects(BoundingBox box) - { - bool result; - Intersects(ref box, out result); - return result; - } - - public PlaneIntersectionType Intersects(Plane plane) - { - PlaneIntersectionType result; - Intersects(ref plane, out result); - return result; - } - - public void Intersects(ref BoundingBox box, out bool result) - { - if ((this.Max.X >= box.Min.X) && (this.Min.X <= box.Max.X)) - { - if ((this.Max.Y < box.Min.Y) || (this.Min.Y > box.Max.Y)) - { - result = false; - return; - } - - result = (this.Max.Z >= box.Min.Z) && (this.Min.Z <= box.Max.Z); - return; - } - - result = false; - return; - } - - public bool Intersects(BoundingSphere sphere) - { - if ( sphere.Center.X - Min.X > sphere.Radius && - sphere.Center.Y - Min.Y > sphere.Radius && - sphere.Center.Z - Min.Z > sphere.Radius && - Max.X - sphere.Center.X > sphere.Radius && - Max.Y - sphere.Center.Y > sphere.Radius && - Max.Z - sphere.Center.Z > sphere.Radius ) - { - return true; - } - - float radiusSq = sphere.Radius * sphere.Radius; - - double dmin = 0; - - if (sphere.Center.X < Min.X) - { - dmin += (sphere.Center.X - Min.X) * (sphere.Center.X - Min.X); - } - else if (sphere.Center.X > Max.X) - { - dmin += (sphere.Center.X - Max.X) * (sphere.Center.X - Max.X); - } - - if (sphere.Center.Y < Min.Y) - { - dmin += (sphere.Center.Y - Min.Y) * (sphere.Center.Y - Min.Y); - } - else if (sphere.Center.Y > Max.Y) - { - dmin += (sphere.Center.Y - Max.Y) * (sphere.Center.Y - Max.Y); - } - - if (sphere.Center.Z < Min.Z) - { - dmin += (sphere.Center.Z - Min.Z) * (sphere.Center.Z - Min.Z); - } - else if (sphere.Center.Z > Max.Z) - { - dmin += (sphere.Center.Z - Max.Z) * (sphere.Center.Z - Max.Z); - } - - return (dmin <= radiusSq); - } - - public void Intersects(ref Plane plane, out PlaneIntersectionType result) - { - // See http://zach.in.tu-clausthal.de/teaching/cg_literatur/lighthouse3d_view_frustum_culling/index.html - - Vector3 positiveVertex; - Vector3 negativeVertex; - - if (plane.Normal.X >= 0) - { - positiveVertex.X = Max.X; - negativeVertex.X = Min.X; - } - else - { - positiveVertex.X = Min.X; - negativeVertex.X = Max.X; - } - - if (plane.Normal.Y >= 0) - { - positiveVertex.Y = Max.Y; - negativeVertex.Y = Min.Y; - } - else - { - positiveVertex.Y = Min.Y; - negativeVertex.Y = Max.Y; - } - - if (plane.Normal.Z >= 0) - { - positiveVertex.Z = Max.Z; - negativeVertex.Z = Min.Z; - } - else - { - positiveVertex.Z = Min.Z; - negativeVertex.Z = Max.Z; - } - - // Inline Vector3.Dot(plane.Normal, negativeVertex) + plane.D; - float distance = ( - plane.Normal.X * negativeVertex.X + - plane.Normal.Y * negativeVertex.Y + - plane.Normal.Z * negativeVertex.Z + - plane.D - ); - if (distance > 0) - { - result = PlaneIntersectionType.Front; - return; - } - - // Inline Vector3.Dot(plane.Normal, positiveVertex) + plane.D; - distance = ( - plane.Normal.X * positiveVertex.X + - plane.Normal.Y * positiveVertex.Y + - plane.Normal.Z * positiveVertex.Z + - plane.D - ); - if (distance < 0) - { - result = PlaneIntersectionType.Back; - return; - } - - result = PlaneIntersectionType.Intersecting; - } - - public bool Equals(BoundingBox other) - { - return (this.Min == other.Min) && (this.Max == other.Max); - } - - #endregion - - #region Public Static Methods - - /// - /// Create a bounding box from the given list of points. - /// - /// - /// The list of Vector3 instances defining the point cloud to bound. - /// - /// A bounding box that encapsulates the given point cloud. - /// - /// Thrown if the given list has no points. - /// - public static BoundingBox CreateFromPoints(IEnumerable points) - { - if (points == null) - { - throw new ArgumentNullException("points"); - } - - bool empty = true; - Vector3 minVec = MaxVector3; - Vector3 maxVec = MinVector3; - foreach (Vector3 ptVector in points) - { - minVec.X = (minVec.X < ptVector.X) ? minVec.X : ptVector.X; - minVec.Y = (minVec.Y < ptVector.Y) ? minVec.Y : ptVector.Y; - minVec.Z = (minVec.Z < ptVector.Z) ? minVec.Z : ptVector.Z; - - maxVec.X = (maxVec.X > ptVector.X) ? maxVec.X : ptVector.X; - maxVec.Y = (maxVec.Y > ptVector.Y) ? maxVec.Y : ptVector.Y; - maxVec.Z = (maxVec.Z > ptVector.Z) ? maxVec.Z : ptVector.Z; - - empty = false; - } - if (empty) - { - throw new ArgumentException("Collection is empty", "points"); - } - - return new BoundingBox(minVec, maxVec); - } - - public static BoundingBox CreateFromSphere(BoundingSphere sphere) - { - BoundingBox result; - CreateFromSphere(ref sphere, out result); - return result; - } - - public static void CreateFromSphere(ref BoundingSphere sphere, out BoundingBox result) - { - Vector3 corner = new Vector3(sphere.Radius); - result.Min = sphere.Center - corner; - result.Max = sphere.Center + corner; - } - - public static BoundingBox CreateMerged(BoundingBox original, BoundingBox additional) - { - BoundingBox result; - CreateMerged(ref original, ref additional, out result); - return result; - } - - public static void CreateMerged(ref BoundingBox original, ref BoundingBox additional, out BoundingBox result) - { - result.Min.X = Math.Min(original.Min.X, additional.Min.X); - result.Min.Y = Math.Min(original.Min.Y, additional.Min.Y); - result.Min.Z = Math.Min(original.Min.Z, additional.Min.Z); - result.Max.X = Math.Max(original.Max.X, additional.Max.X); - result.Max.Y = Math.Max(original.Max.Y, additional.Max.Y); - result.Max.Z = Math.Max(original.Max.Z, additional.Max.Z); - } - - #endregion - - #region Public Static Operators and Override Methods - - public override bool Equals(object obj) - { - return (obj is BoundingBox) && Equals((BoundingBox) obj); - } - - public override int GetHashCode() - { - return this.Min.GetHashCode() + this.Max.GetHashCode(); - } - - public static bool operator ==(BoundingBox a, BoundingBox b) - { - return a.Equals(b); - } - - public static bool operator !=(BoundingBox a, BoundingBox b) - { - return !a.Equals(b); - } - - public override string ToString() - { - return ( - "{{Min:" + Min.ToString() + - " Max:" + Max.ToString() + - "}}" - ); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/BoundingFrustum.cs b/RE/Commit2/ThirdParty/fna/src/BoundingFrustum.cs deleted file mode 100644 index 994ca637..00000000 --- a/RE/Commit2/ThirdParty/fna/src/BoundingFrustum.cs +++ /dev/null @@ -1,727 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Diagnostics; -using System.Text; -#endregion - -namespace Microsoft.Xna.Framework -{ - /// - /// Defines a viewing frustum for intersection operations. - /// - [DebuggerDisplay("{DebugDisplayString,nq}")] - public class BoundingFrustum : IEquatable - { - #region Public Properties - - /// - /// Gets or sets the of the frustum. - /// - public Matrix Matrix - { - get - { - return this.matrix; - } - set - { - /* FIXME: The odds are the planes will be used a lot more often than - * the matrix is updated, so this should help performance. I hope. ;) - */ - this.matrix = value; - this.CreatePlanes(); - this.CreateCorners(); - } - } - - /// - /// Gets the near plane of the frustum. - /// - public Plane Near - { - get - { - return this.planes[0]; - } - } - - /// - /// Gets the far plane of the frustum. - /// - public Plane Far - { - get - { - return this.planes[1]; - } - } - - /// - /// Gets the left plane of the frustum. - /// - public Plane Left - { - get - { - return this.planes[2]; - } - } - - /// - /// Gets the right plane of the frustum. - /// - public Plane Right - { - get - { - return this.planes[3]; - } - } - - /// - /// Gets the top plane of the frustum. - /// - public Plane Top - { - get - { - return this.planes[4]; - } - } - - /// - /// Gets the bottom plane of the frustum. - /// - public Plane Bottom - { - get - { - return this.planes[5]; - } - } - - #endregion - - #region Internal Properties - - internal string DebugDisplayString - { - get - { - return string.Concat( - "Near( ", planes[0].DebugDisplayString, " ) \r\n", - "Far( ", planes[1].DebugDisplayString, " ) \r\n", - "Left( ", planes[2].DebugDisplayString, " ) \r\n", - "Right( ", planes[3].DebugDisplayString, " ) \r\n", - "Top( ", planes[4].DebugDisplayString, " ) \r\n", - "Bottom( ", planes[5].DebugDisplayString, " ) " - ); - } - } - - #endregion - - #region Public Fields - - /// - /// The number of corner points in the frustum. - /// - public const int CornerCount = 8; - - #endregion - - #region Private Fields - - private Matrix matrix; - private readonly Vector3[] corners = new Vector3[CornerCount]; - private readonly Plane[] planes = new Plane[PlaneCount]; - - /// - /// The number of planes in the frustum. - /// - private const int PlaneCount = 6; - - #endregion - - #region Public Constructors - - /// - /// Constructs the frustum by extracting the view planes from a matrix. - /// - /// Combined matrix which usually is (View * Projection). - public BoundingFrustum(Matrix value) - { - this.matrix = value; - this.CreatePlanes(); - this.CreateCorners(); - } - - #endregion - - #region Public Methods - - /// - /// Containment test between this and specified . - /// - /// A for testing. - /// Result of testing for containment between this and specified . - public ContainmentType Contains(BoundingFrustum frustum) - { - if (this == frustum) - { - return ContainmentType.Contains; - } - bool intersects = false; - for (int i = 0; i < PlaneCount; i += 1) - { - PlaneIntersectionType planeIntersectionType; - frustum.Intersects(ref planes[i], out planeIntersectionType); - if (planeIntersectionType == PlaneIntersectionType.Front) - { - return ContainmentType.Disjoint; - } - else if (planeIntersectionType == PlaneIntersectionType.Intersecting) - { - intersects = true; - } - } - return intersects ? ContainmentType.Intersects : ContainmentType.Contains; - } - - /// - /// Containment test between this and specified . - /// - /// A for testing. - /// Result of testing for containment between this and specified . - public ContainmentType Contains(BoundingBox box) - { - ContainmentType result = default(ContainmentType); - this.Contains(ref box, out result); - return result; - } - - /// - /// Containment test between this and specified . - /// - /// A for testing. - /// Result of testing for containment between this and specified as an output parameter. - public void Contains(ref BoundingBox box, out ContainmentType result) - { - bool intersects = false; - for (int i = 0; i < PlaneCount; i += 1) - { - PlaneIntersectionType planeIntersectionType = default(PlaneIntersectionType); - box.Intersects(ref this.planes[i], out planeIntersectionType); - switch (planeIntersectionType) - { - case PlaneIntersectionType.Front: - result = ContainmentType.Disjoint; - return; - case PlaneIntersectionType.Intersecting: - intersects = true; - break; - } - } - result = intersects ? ContainmentType.Intersects : ContainmentType.Contains; - } - - /// - /// Containment test between this and specified . - /// - /// A for testing. - /// Result of testing for containment between this and specified . - public ContainmentType Contains(BoundingSphere sphere) - { - ContainmentType result = default(ContainmentType); - this.Contains(ref sphere, out result); - return result; - } - - /// - /// Containment test between this and specified . - /// - /// A for testing. - /// Result of testing for containment between this and specified as an output parameter. - public void Contains(ref BoundingSphere sphere, out ContainmentType result) - { - bool intersects = false; - for (int i = 0; i < PlaneCount; i += 1) - { - PlaneIntersectionType planeIntersectionType = default(PlaneIntersectionType); - - // TODO: We might want to inline this for performance reasons. - sphere.Intersects(ref this.planes[i], out planeIntersectionType); - switch (planeIntersectionType) - { - case PlaneIntersectionType.Front: - result = ContainmentType.Disjoint; - return; - case PlaneIntersectionType.Intersecting: - intersects = true; - break; - } - } - result = intersects ? ContainmentType.Intersects : ContainmentType.Contains; - } - - /// - /// Containment test between this and specified . - /// - /// A for testing. - /// Result of testing for containment between this and specified . - public ContainmentType Contains(Vector3 point) - { - ContainmentType result = default(ContainmentType); - this.Contains(ref point, out result); - return result; - } - - /// - /// Containment test between this and specified . - /// - /// A for testing. - /// Result of testing for containment between this and specified as an output parameter. - public void Contains(ref Vector3 point, out ContainmentType result) - { - bool intersects = false; - for (int i = 0; i < PlaneCount; i += 1) - { - float classifyPoint = ( - (point.X * planes[i].Normal.X) + - (point.Y * planes[i].Normal.Y) + - (point.Z * planes[i].Normal.Z) + - planes[i].D - ); - if (classifyPoint > 0) - { - result = ContainmentType.Disjoint; - return; - } - else if (classifyPoint == 0) - { - intersects = true; - break; - } - } - result = intersects ? ContainmentType.Intersects : ContainmentType.Contains; - } - - /// - /// Returns a copy of internal corners array. - /// - /// The array of corners. - public Vector3[] GetCorners() - { - return (Vector3[]) this.corners.Clone(); - } - - /// - /// Returns a copy of internal corners array. - /// - /// The array which values will be replaced to corner values of this instance. It must have size of . - public void GetCorners(Vector3[] corners) - { - if (corners == null) - { - throw new ArgumentNullException("corners"); - } - if (corners.Length < CornerCount) - { - throw new ArgumentOutOfRangeException("corners"); - } - - this.corners.CopyTo(corners, 0); - } - - /// - /// Gets whether or not a specified intersects with this . - /// - /// An other for intersection test. - /// true if other intersects with this ; false otherwise. - public bool Intersects(BoundingFrustum frustum) - { - return (Contains(frustum) != ContainmentType.Disjoint); - } - - /// - /// Gets whether or not a specified intersects with this . - /// - /// A for intersection test. - /// true if specified intersects with this ; false otherwise. - public bool Intersects(BoundingBox box) - { - bool result = false; - this.Intersects(ref box, out result); - return result; - } - - /// - /// Gets whether or not a specified intersects with this . - /// - /// A for intersection test. - /// true if specified intersects with this ; false otherwise as an output parameter. - public void Intersects(ref BoundingBox box, out bool result) - { - ContainmentType containment = default(ContainmentType); - this.Contains(ref box, out containment); - result = containment != ContainmentType.Disjoint; - } - - /// - /// Gets whether or not a specified intersects with this . - /// - /// A for intersection test. - /// true if specified intersects with this ; false otherwise. - public bool Intersects(BoundingSphere sphere) - { - bool result = default(bool); - this.Intersects(ref sphere, out result); - return result; - } - - /// - /// Gets whether or not a specified intersects with this . - /// - /// A for intersection test. - /// true if specified intersects with this ; false otherwise as an output parameter. - public void Intersects(ref BoundingSphere sphere, out bool result) - { - ContainmentType containment = default(ContainmentType); - this.Contains(ref sphere, out containment); - result = containment != ContainmentType.Disjoint; - } - - /// - /// Gets type of intersection between specified and this . - /// - /// A for intersection test. - /// A plane intersection type. - public PlaneIntersectionType Intersects(Plane plane) - { - PlaneIntersectionType result; - Intersects(ref plane, out result); - return result; - } - - /// - /// Gets type of intersection between specified and this . - /// - /// A for intersection test. - /// A plane intersection type as an output parameter. - public void Intersects(ref Plane plane, out PlaneIntersectionType result) - { - result = plane.Intersects(ref corners[0]); - for (int i = 1; i < corners.Length; i += 1) - { - if (plane.Intersects(ref corners[i]) != result) - { - result = PlaneIntersectionType.Intersecting; - } - } - } - - /// - /// Gets the distance of intersection of and this or null if no intersection happens. - /// - /// A for intersection test. - /// Distance at which ray intersects with this or null if no intersection happens. - public float? Intersects(Ray ray) - { - float? result; - Intersects(ref ray, out result); - return result; - } - - /// - /// Gets the distance of intersection of and this or null if no intersection happens. - /// - /// A for intersection test. - /// Distance at which ray intersects with this or null if no intersection happens as an output parameter. - public void Intersects(ref Ray ray, out float? result) - { - ContainmentType ctype; - Contains(ref ray.Position, out ctype); - - if (ctype == ContainmentType.Disjoint) - { - result = null; - return; - } - if (ctype == ContainmentType.Contains) - { - result = 0.0f; - return; - } - if (ctype != ContainmentType.Intersects) - { - throw new ArgumentOutOfRangeException("ctype"); - } - - throw new NotImplementedException(); - } - - #endregion - - #region Private Methods - - private void CreateCorners() - { - IntersectionPoint( - ref this.planes[0], - ref this.planes[2], - ref this.planes[4], - out this.corners[0] - ); - IntersectionPoint( - ref this.planes[0], - ref this.planes[3], - ref this.planes[4], - out this.corners[1] - ); - IntersectionPoint( - ref this.planes[0], - ref this.planes[3], - ref this.planes[5], - out this.corners[2] - ); - IntersectionPoint( - ref this.planes[0], - ref this.planes[2], - ref this.planes[5], - out this.corners[3] - ); - IntersectionPoint( - ref this.planes[1], - ref this.planes[2], - ref this.planes[4], - out this.corners[4] - ); - IntersectionPoint( - ref this.planes[1], - ref this.planes[3], - ref this.planes[4], - out this.corners[5] - ); - IntersectionPoint( - ref this.planes[1], - ref this.planes[3], - ref this.planes[5], - out this.corners[6] - ); - IntersectionPoint( - ref this.planes[1], - ref this.planes[2], - ref this.planes[5], - out this.corners[7] - ); - } - - private void CreatePlanes() - { - this.planes[0] = new Plane( - -this.matrix.M13, - -this.matrix.M23, - -this.matrix.M33, - -this.matrix.M43 - ); - this.planes[1] = new Plane( - this.matrix.M13 - this.matrix.M14, - this.matrix.M23 - this.matrix.M24, - this.matrix.M33 - this.matrix.M34, - this.matrix.M43 - this.matrix.M44 - ); - this.planes[2] = new Plane( - -this.matrix.M14 - this.matrix.M11, - -this.matrix.M24 - this.matrix.M21, - -this.matrix.M34 - this.matrix.M31, - -this.matrix.M44 - this.matrix.M41 - ); - this.planes[3] = new Plane( - this.matrix.M11 - this.matrix.M14, - this.matrix.M21 - this.matrix.M24, - this.matrix.M31 - this.matrix.M34, - this.matrix.M41 - this.matrix.M44 - ); - this.planes[4] = new Plane( - this.matrix.M12 - this.matrix.M14, - this.matrix.M22 - this.matrix.M24, - this.matrix.M32 - this.matrix.M34, - this.matrix.M42 - this.matrix.M44 - ); - this.planes[5] = new Plane( - -this.matrix.M14 - this.matrix.M12, - -this.matrix.M24 - this.matrix.M22, - -this.matrix.M34 - this.matrix.M32, - -this.matrix.M44 - this.matrix.M42 - ); - - this.NormalizePlane(ref this.planes[0]); - this.NormalizePlane(ref this.planes[1]); - this.NormalizePlane(ref this.planes[2]); - this.NormalizePlane(ref this.planes[3]); - this.NormalizePlane(ref this.planes[4]); - this.NormalizePlane(ref this.planes[5]); - } - - private void NormalizePlane(ref Plane p) - { - float factor = 1f / p.Normal.Length(); - p.Normal.X *= factor; - p.Normal.Y *= factor; - p.Normal.Z *= factor; - p.D *= factor; - } - - #endregion - - #region Private Static Methods - - private static void IntersectionPoint( - ref Plane a, - ref Plane b, - ref Plane c, - out Vector3 result - ) { - /* Formula used - * d1 ( N2 * N3 ) + d2 ( N3 * N1 ) + d3 ( N1 * N2 ) - * P = ------------------------------------------------------------------- - * N1 . ( N2 * N3 ) - * - * Note: N refers to the normal, d refers to the displacement. '.' means dot - * product. '*' means cross product - */ - - Vector3 v1, v2, v3; - Vector3 cross; - - Vector3.Cross(ref b.Normal, ref c.Normal, out cross); - - float f; - Vector3.Dot(ref a.Normal, ref cross, out f); - f *= -1.0f; - - Vector3.Cross(ref b.Normal, ref c.Normal, out cross); - Vector3.Multiply(ref cross, a.D, out v1); - // v1 = (a.D * (Vector3.Cross(b.Normal, c.Normal))); - - - Vector3.Cross(ref c.Normal, ref a.Normal, out cross); - Vector3.Multiply(ref cross, b.D, out v2); - // v2 = (b.D * (Vector3.Cross(c.Normal, a.Normal))); - - - Vector3.Cross(ref a.Normal, ref b.Normal, out cross); - Vector3.Multiply(ref cross, c.D, out v3); - // v3 = (c.D * (Vector3.Cross(a.Normal, b.Normal))); - - result.X = (v1.X + v2.X + v3.X) / f; - result.Y = (v1.Y + v2.Y + v3.Y) / f; - result.Z = (v1.Z + v2.Z + v3.Z) / f; - } - - #endregion - - #region Public Static Operators and Override Methods - - /// - /// Compares whether two instances are equal. - /// - /// instance on the left of the equal sign. - /// instance on the right of the equal sign. - /// true if the instances are equal; false otherwise. - public static bool operator ==(BoundingFrustum a, BoundingFrustum b) - { - if (object.Equals(a, null)) - { - return (object.Equals(b, null)); - } - - if (object.Equals(b, null)) - { - return (object.Equals(a, null)); - } - - return a.matrix == (b.matrix); - } - - /// - /// Compares whether two instances are not equal. - /// - /// instance on the left of the not equal sign. - /// instance on the right of the not equal sign. - /// true if the instances are not equal; false otherwise. - public static bool operator !=(BoundingFrustum a, BoundingFrustum b) - { - return !(a == b); - } - - /// - /// Compares whether current instance is equal to specified . - /// - /// The to compare. - /// true if the instances are equal; false otherwise. - public bool Equals(BoundingFrustum other) - { - return (this == other); - } - - /// - /// Compares whether current instance is equal to specified . - /// - /// The to compare. - /// true if the instances are equal; false otherwise. - public override bool Equals(object obj) - { - return (obj is BoundingFrustum) && Equals((BoundingFrustum) obj); - } - - /// - /// Returns a representation of this in the format: - /// {Near:[nearPlane] Far:[farPlane] Left:[leftPlane] Right:[rightPlane] Top:[topPlane] Bottom:[bottomPlane]} - /// - /// representation of this . - public override string ToString() - { - StringBuilder sb = new StringBuilder(256); - sb.Append("{Near:"); - sb.Append(this.planes[0].ToString()); - sb.Append(" Far:"); - sb.Append(this.planes[1].ToString()); - sb.Append(" Left:"); - sb.Append(this.planes[2].ToString()); - sb.Append(" Right:"); - sb.Append(this.planes[3].ToString()); - sb.Append(" Top:"); - sb.Append(this.planes[4].ToString()); - sb.Append(" Bottom:"); - sb.Append(this.planes[5].ToString()); - sb.Append("}"); - return sb.ToString(); - } - - /// - /// Gets the hash code of this . - /// - /// Hash code of this . - public override int GetHashCode() - { - return this.matrix.GetHashCode(); - } - - #endregion - } -} - diff --git a/RE/Commit2/ThirdParty/fna/src/BoundingSphere.cs b/RE/Commit2/ThirdParty/fna/src/BoundingSphere.cs deleted file mode 100644 index 821728be..00000000 --- a/RE/Commit2/ThirdParty/fna/src/BoundingSphere.cs +++ /dev/null @@ -1,683 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Diagnostics; - -using Microsoft.Xna.Framework.Design; -#endregion - -namespace Microsoft.Xna.Framework -{ - /// - /// Describes a sphere in 3D-space for bounding operations. - /// - [Serializable] - [TypeConverter(typeof(BoundingSphereConverter))] - [DebuggerDisplay("{DebugDisplayString,nq}")] - public struct BoundingSphere : IEquatable - { - #region Internal Properties - - internal string DebugDisplayString - { - get - { - return string.Concat( - "Center( ", Center.DebugDisplayString, " ) \r\n", - "Radius( ", Radius.ToString(), " ) " - ); - } - } - - #endregion - - #region Public Fields - - /// - /// The sphere center. - /// - public Vector3 Center; - - /// - /// The sphere radius. - /// - public float Radius; - - #endregion - - #region Public Constructors - - /// - /// Constructs a bounding sphere with the specified center and radius. - /// - /// The sphere center. - /// The sphere radius. - public BoundingSphere(Vector3 center, float radius) - { - this.Center = center; - this.Radius = radius; - } - - #endregion - - #region Public Methods - - /// - /// Creates a new that contains a transformation of translation and scale from this sphere by the specified . - /// - /// The transformation . - /// Transformed . - public BoundingSphere Transform(Matrix matrix) - { - BoundingSphere sphere = new BoundingSphere(); - sphere.Center = Vector3.Transform(this.Center, matrix); - sphere.Radius = this.Radius * - ( - (float) Math.Sqrt((double) Math.Max( - ((matrix.M11 * matrix.M11) + (matrix.M12 * matrix.M12)) + (matrix.M13 * matrix.M13), - Math.Max( - ((matrix.M21 * matrix.M21) + (matrix.M22 * matrix.M22)) + (matrix.M23 * matrix.M23), - ((matrix.M31 * matrix.M31) + (matrix.M32 * matrix.M32)) + (matrix.M33 * matrix.M33)) - ) - ) - ); - return sphere; - } - - /// - /// Creates a new that contains a transformation of translation and scale from this sphere by the specified . - /// - /// The transformation . - /// Transformed as an output parameter. - public void Transform(ref Matrix matrix, out BoundingSphere result) - { - result.Center = Vector3.Transform(this.Center, matrix); - result.Radius = this.Radius * - ( - (float) Math.Sqrt((double) Math.Max( - ((matrix.M11 * matrix.M11) + (matrix.M12 * matrix.M12)) + (matrix.M13 * matrix.M13), - Math.Max( - ((matrix.M21 * matrix.M21) + (matrix.M22 * matrix.M22)) + (matrix.M23 * matrix.M23), - ((matrix.M31 * matrix.M31) + (matrix.M32 * matrix.M32)) + (matrix.M33 * matrix.M33)) - ) - ) - ); - } - - /// - /// Test if a bounding box is fully inside, outside, or just intersecting the sphere. - /// - /// The box for testing. - /// The containment type as an output parameter. - public void Contains(ref BoundingBox box, out ContainmentType result) - { - result = this.Contains(box); - } - - /// - /// Test if a sphere is fully inside, outside, or just intersecting the sphere. - /// - /// The other sphere for testing. - /// The containment type as an output parameter. - public void Contains(ref BoundingSphere sphere, out ContainmentType result) - { - result = Contains(sphere); - } - - /// - /// Test if a point is fully inside, outside, or just intersecting the sphere. - /// - /// The vector in 3D-space for testing. - /// The containment type as an output parameter. - public void Contains(ref Vector3 point, out ContainmentType result) - { - result = Contains(point); - } - - /// - /// Test if a bounding box is fully inside, outside, or just intersecting the sphere. - /// - /// The box for testing. - /// The containment type. - public ContainmentType Contains(BoundingBox box) - { - // Check if all corners are in sphere. - bool inside = true; - foreach (Vector3 corner in box.GetCorners()) - { - if (this.Contains(corner) == ContainmentType.Disjoint) - { - inside = false; - break; - } - } - - if (inside) - { - return ContainmentType.Contains; - } - - // Check if the distance from sphere center to cube face is less than radius. - double dmin = 0; - - if (Center.X < box.Min.X) - { - dmin += (Center.X - box.Min.X) * (Center.X - box.Min.X); - } - else if (Center.X > box.Max.X) - { - dmin += (Center.X - box.Max.X) * (Center.X - box.Max.X); - } - - if (Center.Y < box.Min.Y) - { - dmin += (Center.Y - box.Min.Y) * (Center.Y - box.Min.Y); - } - else if (Center.Y > box.Max.Y) - { - dmin += (Center.Y - box.Max.Y) * (Center.Y - box.Max.Y); - } - - if (Center.Z < box.Min.Z) - { - dmin += (Center.Z - box.Min.Z) * (Center.Z - box.Min.Z); - } - else if (Center.Z > box.Max.Z) - { - dmin += (Center.Z - box.Max.Z) * (Center.Z - box.Max.Z); - } - - if (dmin <= Radius * Radius) - { - return ContainmentType.Intersects; - } - - // Else disjoint - return ContainmentType.Disjoint; - } - - /// - /// Test if a frustum is fully inside, outside, or just intersecting the sphere. - /// - /// The box for testing. - /// The containment type as an output parameter. - public ContainmentType Contains(BoundingFrustum frustum) - { - // Check if all corners are in sphere. - bool inside = true; - - Vector3[] corners = frustum.GetCorners(); - foreach (Vector3 corner in corners) - { - if (this.Contains(corner) == ContainmentType.Disjoint) - { - inside = false; - break; - } - } - if (inside) - { - return ContainmentType.Contains; - } - - // Check if the distance from sphere center to frustrum face is less than radius. - double dmin = 0; - // TODO : calcul dmin - - if (dmin <= Radius * Radius) - { - return ContainmentType.Intersects; - } - - // Else disjoint - return ContainmentType.Disjoint; - } - - /// - /// Test if a sphere is fully inside, outside, or just intersecting the sphere. - /// - /// The other sphere for testing. - /// The containment type. - public ContainmentType Contains(BoundingSphere sphere) - { - float sqDistance; - Vector3.DistanceSquared(ref sphere.Center, ref Center, out sqDistance); - - if (sqDistance > (sphere.Radius + Radius) * (sphere.Radius + Radius)) - { - return ContainmentType.Disjoint; - } - else if (sqDistance <= (Radius - sphere.Radius) * (Radius - sphere.Radius)) - { - return ContainmentType.Contains; - } - return ContainmentType.Intersects; - } - - /// - /// Test if a point is fully inside, outside, or just intersecting the sphere. - /// - /// The vector in 3D-space for testing. - /// The containment type. - public ContainmentType Contains(Vector3 point) - { - float sqRadius = Radius * Radius; - float sqDistance; - Vector3.DistanceSquared(ref point, ref Center, out sqDistance); - - if (sqDistance > sqRadius) - { - return ContainmentType.Disjoint; - } - else if (sqDistance < sqRadius) - { - return ContainmentType.Contains; - } - return ContainmentType.Intersects; - } - - /// - /// Compares whether current instance is equal to specified . - /// - /// The to compare. - /// true if the instances are equal; false otherwise. - public bool Equals(BoundingSphere other) - { - return ( Center == other.Center && - Radius == other.Radius ); - } - - #endregion - - #region Public Static Methods - - /// - /// Creates the smallest that can contain a specified . - /// - /// The box to create the sphere from. - /// The new . - public static BoundingSphere CreateFromBoundingBox(BoundingBox box) - { - BoundingSphere result; - CreateFromBoundingBox(ref box, out result); - return result; - } - - /// - /// Creates the smallest that can contain a specified . - /// - /// The box to create the sphere from. - /// The new as an output parameter. - public static void CreateFromBoundingBox(ref BoundingBox box, out BoundingSphere result) - { - // Find the center of the box. - Vector3 center = new Vector3( - (box.Min.X + box.Max.X) / 2.0f, - (box.Min.Y + box.Max.Y) / 2.0f, - (box.Min.Z + box.Max.Z) / 2.0f - ); - - // Find the distance between the center and one of the corners of the box. - float radius = Vector3.Distance(center, box.Max); - - result = new BoundingSphere(center, radius); - } - - /// - /// Creates the smallest that can contain a specified . - /// - /// The frustum to create the sphere from. - /// The new . - public static BoundingSphere CreateFromFrustum(BoundingFrustum frustum) - { - return CreateFromPoints(frustum.GetCorners()); - } - - /// - /// Creates the smallest that can contain a specified list of points in 3D-space. - /// - /// List of point to create the sphere from. - /// The new . - public static BoundingSphere CreateFromPoints(IEnumerable points) - { - if (points == null) - { - throw new ArgumentNullException("points"); - } - - // From "Real-Time Collision Detection" (Page 89) - - Vector3 minx = new Vector3(float.MaxValue, float.MaxValue, float.MaxValue); - Vector3 maxx = -minx; - Vector3 miny = minx; - Vector3 maxy = -minx; - Vector3 minz = minx; - Vector3 maxz = -minx; - - // Find the most extreme points along the principle axis. - int numPoints = 0; - foreach (Vector3 pt in points) - { - numPoints += 1; - - if (pt.X < minx.X) - { - minx = pt; - } - if (pt.X > maxx.X) - { - maxx = pt; - } - if (pt.Y < miny.Y) - { - miny = pt; - } - if (pt.Y > maxy.Y) - { - maxy = pt; - } - if (pt.Z < minz.Z) - { - minz = pt; - } - if (pt.Z > maxz.Z) - { - maxz = pt; - } - } - - if (numPoints == 0) - { - throw new ArgumentException( - "You should have at least one point in points." - ); - } - - float sqDistX = Vector3.DistanceSquared(maxx, minx); - float sqDistY = Vector3.DistanceSquared(maxy, miny); - float sqDistZ = Vector3.DistanceSquared(maxz, minz); - - // Pick the pair of most distant points. - Vector3 min = minx; - Vector3 max = maxx; - if (sqDistY > sqDistX && sqDistY > sqDistZ) - { - max = maxy; - min = miny; - } - if (sqDistZ > sqDistX && sqDistZ > sqDistY) - { - max = maxz; - min = minz; - } - - Vector3 center = (min + max) * 0.5f; - float radius = Vector3.Distance(max, center); - - // Test every point and expand the sphere. - // The current bounding sphere is just a good approximation and may not enclose all points. - // From: Mathematics for 3D Game Programming and Computer Graphics, Eric Lengyel, Third Edition. - // Page 218 - float sqRadius = radius * radius; - foreach (Vector3 pt in points) - { - Vector3 diff = (pt - center); - float sqDist = diff.LengthSquared(); - if (sqDist > sqRadius) - { - float distance = (float) Math.Sqrt(sqDist); // equal to diff.Length(); - Vector3 direction = diff / distance; - Vector3 G = center - radius * direction; - center = (G + pt) / 2; - radius = Vector3.Distance(pt, center); - sqRadius = radius * radius; - } - } - - return new BoundingSphere(center, radius); - } - - /// - /// Creates the smallest that can contain two spheres. - /// - /// First sphere. - /// Second sphere. - /// The new . - public static BoundingSphere CreateMerged(BoundingSphere original, BoundingSphere additional) - { - BoundingSphere result; - CreateMerged(ref original, ref additional, out result); - return result; - } - - /// - /// Creates the smallest that can contain two spheres. - /// - /// First sphere. - /// Second sphere. - /// The new as an output parameter. - public static void CreateMerged( - ref BoundingSphere original, - ref BoundingSphere additional, - out BoundingSphere result - ) { - Vector3 ocenterToaCenter = Vector3.Subtract(additional.Center, original.Center); - float distance = ocenterToaCenter.Length(); - - // Intersect - if (distance <= original.Radius + additional.Radius) - { - // Original contains additional. - if (distance <= original.Radius - additional.Radius) - { - result = original; - return; - } - - // Additional contains original. - if (distance <= additional.Radius - original.Radius) - { - result = additional; - return; - } - } - - // Else find center of new sphere and radius - float leftRadius = Math.Max(original.Radius - distance, additional.Radius); - float Rightradius = Math.Max(original.Radius + distance, additional.Radius); - - // oCenterToResultCenter - ocenterToaCenter = ocenterToaCenter + - ( - ((leftRadius - Rightradius) / (2 * ocenterToaCenter.Length())) - * ocenterToaCenter - ); - - result = new BoundingSphere(); - result.Center = original.Center + ocenterToaCenter; - result.Radius = (leftRadius + Rightradius) / 2; - } - - /// - /// Gets whether or not a specified intersects with this sphere. - /// - /// The box for testing. - /// true if intersects with this sphere; false otherwise. - public bool Intersects(BoundingBox box) - { - return box.Intersects(this); - } - - /// - /// Gets whether or not a specified intersects with this sphere. - /// - /// The box for testing. - /// true if intersects with this sphere; false otherwise. As an output parameter. - public void Intersects(ref BoundingBox box, out bool result) - { - box.Intersects(ref this, out result); - } - - public bool Intersects(BoundingFrustum frustum) - { - return frustum.Intersects(this); - } - - /// - /// Gets whether or not the other intersects with this sphere. - /// - /// The other sphere for testing. - /// true if other intersects with this sphere; false otherwise. - public bool Intersects(BoundingSphere sphere) - { - bool result; - Intersects(ref sphere, out result); - return result; - } - - /// - /// Gets whether or not the other intersects with this sphere. - /// - /// The other sphere for testing. - /// true if other intersects with this sphere; false otherwise. As an output parameter. - public void Intersects(ref BoundingSphere sphere, out bool result) - { - float sqDistance; - Vector3.DistanceSquared(ref sphere.Center, ref Center, out sqDistance); - result = !(sqDistance > (sphere.Radius + Radius) * (sphere.Radius + Radius)); - } - - /// - /// Gets whether or not a specified intersects with this sphere. - /// - /// The ray for testing. - /// Distance of ray intersection or null if there is no intersection. - public float? Intersects(Ray ray) - { - return ray.Intersects(this); - } - - /// - /// Gets whether or not a specified intersects with this sphere. - /// - /// The ray for testing. - /// Distance of ray intersection or null if there is no intersection as an output parameter. - public void Intersects(ref Ray ray, out float? result) - { - ray.Intersects(ref this, out result); - } - - /// - /// Gets whether or not a specified intersects with this sphere. - /// - /// The plane for testing. - /// Type of intersection. - public PlaneIntersectionType Intersects(Plane plane) - { - PlaneIntersectionType result = default(PlaneIntersectionType); - // TODO: We might want to inline this for performance reasons. - this.Intersects(ref plane, out result); - return result; - } - - /// - /// Gets whether or not a specified intersects with this sphere. - /// - /// The plane for testing. - /// Type of intersection as an output parameter. - public void Intersects(ref Plane plane, out PlaneIntersectionType result) - { - float distance = default(float); - // TODO: We might want to inline this for performance reasons. - Vector3.Dot(ref plane.Normal, ref this.Center, out distance); - distance += plane.D; - if (distance > this.Radius) - { - result = PlaneIntersectionType.Front; - } - else if (distance < -this.Radius) - { - result = PlaneIntersectionType.Back; - } - else - { - result = PlaneIntersectionType.Intersecting; - } - } - - #endregion - - #region Public Static Operators and Override Methods - - /// - /// Compares whether current instance is equal to specified . - /// - /// The to compare. - /// true if the instances are equal; false otherwise. - public override bool Equals(object obj) - { - return (obj is BoundingSphere) && Equals((BoundingSphere) obj); - } - - /// - /// Gets the hash code of this . - /// - /// Hash code of this . - public override int GetHashCode() - { - return this.Center.GetHashCode() + this.Radius.GetHashCode(); - } - - /// - /// Returns a representation of this in the format: - /// {Center:[] Radius:[]} - /// - /// A representation of this . - public override string ToString() - { - return ( - "{Center:" + Center.ToString() + - " Radius:" + Radius.ToString() + - "}" - ); - } - - /// - /// Compares whether two instances are equal. - /// - /// instance on the left of the equal sign. - /// instance on the right of the equal sign. - /// true if the instances are equal; false otherwise. - public static bool operator ==(BoundingSphere a, BoundingSphere b) - { - return a.Equals(b); - } - - /// - /// Compares whether two instances are not equal. - /// - /// instance on the left of the not equal sign. - /// instance on the right of the not equal sign. - /// true if the instances are not equal; false otherwise. - public static bool operator !=(BoundingSphere a, BoundingSphere b) - { - return !a.Equals(b); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Color.cs b/RE/Commit2/ThirdParty/fna/src/Color.cs deleted file mode 100644 index 732719f8..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Color.cs +++ /dev/null @@ -1,1888 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.ComponentModel; -using System.Diagnostics; -using System.Text; - -using Microsoft.Xna.Framework.Design; -using Microsoft.Xna.Framework.Graphics.PackedVector; -#endregion - -namespace Microsoft.Xna.Framework -{ - /// - /// Describes a 32-bit packed color. - /// - [Serializable] - [TypeConverter(typeof(ColorConverter))] - [DebuggerDisplay("{DebugDisplayString,nq}")] - public struct Color : IEquatable, IPackedVector, IPackedVector - { - #region Public Properties - - /// - /// Gets or sets the blue component. - /// - public byte B - { - get - { - unchecked - { - return (byte) (this.packedValue >> 16); - } - } - set - { - this.packedValue = (this.packedValue & 0xff00ffff) | ((uint) value << 16); - } - } - - /// - /// Gets or sets the green component. - /// - public byte G - { - get - { - unchecked - { - return (byte) (this.packedValue >> 8); - } - } - set - { - this.packedValue = (this.packedValue & 0xffff00ff) | ((uint) value << 8); - } - } - - /// - /// Gets or sets the red component. - /// - public byte R - { - get - { - unchecked - { - return (byte) (this.packedValue); - } - } - set - { - this.packedValue = (this.packedValue & 0xffffff00) | value; - } - } - - /// - /// Gets or sets the alpha component. - /// - public byte A - { - get - { - unchecked - { - return (byte) (this.packedValue >> 24); - } - } - set - { - this.packedValue = (this.packedValue & 0x00ffffff) | ((uint) value << 24); - } - } - - /// - /// Gets or sets packed value of this . - /// - [CLSCompliant(false)] - public UInt32 PackedValue - { - get - { - return packedValue; - } - set - { - packedValue = value; - } - } - - #endregion - - #region Public Static Color Properties - - /// - /// Transparent color (R:0,G:0,B:0,A:0). - /// - public static Color Transparent - { - get; - private set; - } - - /// - /// AliceBlue color (R:240,G:248,B:255,A:255). - /// - public static Color AliceBlue - { - get; - private set; - } - - /// - /// AntiqueWhite color (R:250,G:235,B:215,A:255). - /// - public static Color AntiqueWhite - { - get; - private set; - } - - /// - /// Aqua color (R:0,G:255,B:255,A:255). - /// - public static Color Aqua - { - get; - private set; - } - - /// - /// Aquamarine color (R:127,G:255,B:212,A:255). - /// - public static Color Aquamarine - { - get; - private set; - } - - /// - /// Azure color (R:240,G:255,B:255,A:255). - /// - public static Color Azure - { - get; - private set; - } - - /// - /// Beige color (R:245,G:245,B:220,A:255). - /// - public static Color Beige - { - get; - private set; - } - - /// - /// Bisque color (R:255,G:228,B:196,A:255). - /// - public static Color Bisque - { - get; - private set; - } - - /// - /// Black color (R:0,G:0,B:0,A:255). - /// - public static Color Black - { - get; - private set; - } - - /// - /// BlanchedAlmond color (R:255,G:235,B:205,A:255). - /// - public static Color BlanchedAlmond - { - get; - private set; - } - - /// - /// Blue color (R:0,G:0,B:255,A:255). - /// - public static Color Blue - { - get; - private set; - } - - /// - /// BlueViolet color (R:138,G:43,B:226,A:255). - /// - public static Color BlueViolet - { - get; - private set; - } - - /// - /// Brown color (R:165,G:42,B:42,A:255). - /// - public static Color Brown - { - get; - private set; - } - - /// - /// BurlyWood color (R:222,G:184,B:135,A:255). - /// - public static Color BurlyWood - { - get; - private set; - } - - /// - /// CadetBlue color (R:95,G:158,B:160,A:255). - /// - public static Color CadetBlue - { - get; - private set; - } - - /// - /// Chartreuse color (R:127,G:255,B:0,A:255). - /// - public static Color Chartreuse - { - get; - private set; - } - - /// - /// Chocolate color (R:210,G:105,B:30,A:255). - /// - public static Color Chocolate - { - get; - private set; - } - - /// - /// Coral color (R:255,G:127,B:80,A:255). - /// - public static Color Coral - { - get; - private set; - } - - /// - /// CornflowerBlue color (R:100,G:149,B:237,A:255). - /// - public static Color CornflowerBlue - { - get; - private set; - } - - /// - /// Cornsilk color (R:255,G:248,B:220,A:255). - /// - public static Color Cornsilk - { - get; - private set; - } - - /// - /// Crimson color (R:220,G:20,B:60,A:255). - /// - public static Color Crimson - { - get; - private set; - } - - /// - /// Cyan color (R:0,G:255,B:255,A:255). - /// - public static Color Cyan - { - get; - private set; - } - - /// - /// DarkBlue color (R:0,G:0,B:139,A:255). - /// - public static Color DarkBlue - { - get; - private set; - } - - /// - /// DarkCyan color (R:0,G:139,B:139,A:255). - /// - public static Color DarkCyan - { - get; - private set; - } - - /// - /// DarkGoldenrod color (R:184,G:134,B:11,A:255). - /// - public static Color DarkGoldenrod - { - get; - private set; - } - - /// - /// DarkGray color (R:169,G:169,B:169,A:255). - /// - public static Color DarkGray - { - get; - private set; - } - - /// - /// DarkGreen color (R:0,G:100,B:0,A:255). - /// - public static Color DarkGreen - { - get; - private set; - } - - /// - /// DarkKhaki color (R:189,G:183,B:107,A:255). - /// - public static Color DarkKhaki - { - get; - private set; - } - - /// - /// DarkMagenta color (R:139,G:0,B:139,A:255). - /// - public static Color DarkMagenta - { - get; - private set; - } - - /// - /// DarkOliveGreen color (R:85,G:107,B:47,A:255). - /// - public static Color DarkOliveGreen - { - get; - private set; - } - - /// - /// DarkOrange color (R:255,G:140,B:0,A:255). - /// - public static Color DarkOrange - { - get; - private set; - } - - /// - /// DarkOrchid color (R:153,G:50,B:204,A:255). - /// - public static Color DarkOrchid - { - get; - private set; - } - - /// - /// DarkRed color (R:139,G:0,B:0,A:255). - /// - public static Color DarkRed - { - get; - private set; - } - - /// - /// DarkSalmon color (R:233,G:150,B:122,A:255). - /// - public static Color DarkSalmon - { - get; - private set; - } - - /// - /// DarkSeaGreen color (R:143,G:188,B:139,A:255). - /// - public static Color DarkSeaGreen - { - get; - private set; - } - - /// - /// DarkSlateBlue color (R:72,G:61,B:139,A:255). - /// - public static Color DarkSlateBlue - { - get; - private set; - } - - /// - /// DarkSlateGray color (R:47,G:79,B:79,A:255). - /// - public static Color DarkSlateGray - { - get; - private set; - } - - /// - /// DarkTurquoise color (R:0,G:206,B:209,A:255). - /// - public static Color DarkTurquoise - { - get; - private set; - } - - /// - /// DarkViolet color (R:148,G:0,B:211,A:255). - /// - public static Color DarkViolet - { - get; - private set; - } - - /// - /// DeepPink color (R:255,G:20,B:147,A:255). - /// - public static Color DeepPink - { - get; - private set; - } - - /// - /// DeepSkyBlue color (R:0,G:191,B:255,A:255). - /// - public static Color DeepSkyBlue - { - get; - private set; - } - - /// - /// DimGray color (R:105,G:105,B:105,A:255). - /// - public static Color DimGray - { - get; - private set; - } - - /// - /// DodgerBlue color (R:30,G:144,B:255,A:255). - /// - public static Color DodgerBlue - { - get; - private set; - } - - /// - /// Firebrick color (R:178,G:34,B:34,A:255). - /// - public static Color Firebrick - { - get; - private set; - } - - /// - /// FloralWhite color (R:255,G:250,B:240,A:255). - /// - public static Color FloralWhite - { - get; - private set; - } - - /// - /// ForestGreen color (R:34,G:139,B:34,A:255). - /// - public static Color ForestGreen - { - get; - private set; - } - - /// - /// Fuchsia color (R:255,G:0,B:255,A:255). - /// - public static Color Fuchsia - { - get; - private set; - } - - /// - /// Gainsboro color (R:220,G:220,B:220,A:255). - /// - public static Color Gainsboro - { - get; - private set; - } - - /// - /// GhostWhite color (R:248,G:248,B:255,A:255). - /// - public static Color GhostWhite - { - get; - private set; - } - /// - /// Gold color (R:255,G:215,B:0,A:255). - /// - public static Color Gold - { - get; - private set; - } - - /// - /// Goldenrod color (R:218,G:165,B:32,A:255). - /// - public static Color Goldenrod - { - get; - private set; - } - - /// - /// Gray color (R:128,G:128,B:128,A:255). - /// - public static Color Gray - { - get; - private set; - } - - /// - /// Green color (R:0,G:128,B:0,A:255). - /// - public static Color Green - { - get; - private set; - } - - /// - /// GreenYellow color (R:173,G:255,B:47,A:255). - /// - public static Color GreenYellow - { - get; - private set; - } - - /// - /// Honeydew color (R:240,G:255,B:240,A:255). - /// - public static Color Honeydew - { - get; - private set; - } - - /// - /// HotPink color (R:255,G:105,B:180,A:255). - /// - public static Color HotPink - { - get; - private set; - } - - /// - /// IndianRed color (R:205,G:92,B:92,A:255). - /// - public static Color IndianRed - { - get; - private set; - } - - /// - /// Indigo color (R:75,G:0,B:130,A:255). - /// - public static Color Indigo - { - get; - private set; - } - - /// - /// Ivory color (R:255,G:255,B:240,A:255). - /// - public static Color Ivory - { - get; - private set; - } - - /// - /// Khaki color (R:240,G:230,B:140,A:255). - /// - public static Color Khaki - { - get; - private set; - } - - /// - /// Lavender color (R:230,G:230,B:250,A:255). - /// - public static Color Lavender - { - get; - private set; - } - - /// - /// LavenderBlush color (R:255,G:240,B:245,A:255). - /// - public static Color LavenderBlush - { - get; - private set; - } - - /// - /// LawnGreen color (R:124,G:252,B:0,A:255). - /// - public static Color LawnGreen - { - get; - private set; - } - - /// - /// LemonChiffon color (R:255,G:250,B:205,A:255). - /// - public static Color LemonChiffon - { - get; - private set; - } - - /// - /// LightBlue color (R:173,G:216,B:230,A:255). - /// - public static Color LightBlue - { - get; - private set; - } - - /// - /// LightCoral color (R:240,G:128,B:128,A:255). - /// - public static Color LightCoral - { - get; - private set; - } - - /// - /// LightCyan color (R:224,G:255,B:255,A:255). - /// - public static Color LightCyan - { - get; - private set; - } - - /// - /// LightGoldenrodYellow color (R:250,G:250,B:210,A:255). - /// - public static Color LightGoldenrodYellow - { - get; - private set; - } - - /// - /// LightGray color (R:211,G:211,B:211,A:255). - /// - public static Color LightGray - { - get; - private set; - } - - /// - /// LightGreen color (R:144,G:238,B:144,A:255). - /// - public static Color LightGreen - { - get; - private set; - } - - /// - /// LightPink color (R:255,G:182,B:193,A:255). - /// - public static Color LightPink - { - get; - private set; - } - - /// - /// LightSalmon color (R:255,G:160,B:122,A:255). - /// - public static Color LightSalmon - { - get; - private set; - } - - /// - /// LightSeaGreen color (R:32,G:178,B:170,A:255). - /// - public static Color LightSeaGreen - { - get; - private set; - } - - /// - /// LightSkyBlue color (R:135,G:206,B:250,A:255). - /// - public static Color LightSkyBlue - { - get; - private set; - } - - /// - /// LightSlateGray color (R:119,G:136,B:153,A:255). - /// - public static Color LightSlateGray - { - get; - private set; - } - - /// - /// LightSteelBlue color (R:176,G:196,B:222,A:255). - /// - public static Color LightSteelBlue - { - get; - private set; - } - - /// - /// LightYellow color (R:255,G:255,B:224,A:255). - /// - public static Color LightYellow - { - get; - private set; - } - - /// - /// Lime color (R:0,G:255,B:0,A:255). - /// - public static Color Lime - { - get; - private set; - } - - /// - /// LimeGreen color (R:50,G:205,B:50,A:255). - /// - public static Color LimeGreen - { - get; - private set; - } - - /// - /// Linen color (R:250,G:240,B:230,A:255). - /// - public static Color Linen - { - get; - private set; - } - - /// - /// Magenta color (R:255,G:0,B:255,A:255). - /// - public static Color Magenta - { - get; - private set; - } - - /// - /// Maroon color (R:128,G:0,B:0,A:255). - /// - public static Color Maroon - { - get; - private set; - } - - /// - /// MediumAquamarine color (R:102,G:205,B:170,A:255). - /// - public static Color MediumAquamarine - { - get; - private set; - } - - /// - /// MediumBlue color (R:0,G:0,B:205,A:255). - /// - public static Color MediumBlue - { - get; - private set; - } - - /// - /// MediumOrchid color (R:186,G:85,B:211,A:255). - /// - public static Color MediumOrchid - { - get; - private set; - } - - /// - /// MediumPurple color (R:147,G:112,B:219,A:255). - /// - public static Color MediumPurple - { - get; - private set; - } - - /// - /// MediumSeaGreen color (R:60,G:179,B:113,A:255). - /// - public static Color MediumSeaGreen - { - get; - private set; - } - - /// - /// MediumSlateBlue color (R:123,G:104,B:238,A:255). - /// - public static Color MediumSlateBlue - { - get; - private set; - } - - /// - /// MediumSpringGreen color (R:0,G:250,B:154,A:255). - /// - public static Color MediumSpringGreen - { - get; - private set; - } - - /// - /// MediumTurquoise color (R:72,G:209,B:204,A:255). - /// - public static Color MediumTurquoise - { - get; - private set; - } - - /// - /// MediumVioletRed color (R:199,G:21,B:133,A:255). - /// - public static Color MediumVioletRed - { - get; - private set; - } - - /// - /// MidnightBlue color (R:25,G:25,B:112,A:255). - /// - public static Color MidnightBlue - { - get; - private set; - } - - /// - /// MintCream color (R:245,G:255,B:250,A:255). - /// - public static Color MintCream - { - get; - private set; - } - - /// - /// MistyRose color (R:255,G:228,B:225,A:255). - /// - public static Color MistyRose - { - get; - private set; - } - - /// - /// Moccasin color (R:255,G:228,B:181,A:255). - /// - public static Color Moccasin - { - get; - private set; - } - - /// - /// NavajoWhite color (R:255,G:222,B:173,A:255). - /// - public static Color NavajoWhite - { - get; - private set; - } - - /// - /// Navy color (R:0,G:0,B:128,A:255). - /// - public static Color Navy - { - get; - private set; - } - - /// - /// OldLace color (R:253,G:245,B:230,A:255). - /// - public static Color OldLace - { - get; - private set; - } - - /// - /// Olive color (R:128,G:128,B:0,A:255). - /// - public static Color Olive - { - get; - private set; - } - - /// - /// OliveDrab color (R:107,G:142,B:35,A:255). - /// - public static Color OliveDrab - { - get; - private set; - } - - /// - /// Orange color (R:255,G:165,B:0,A:255). - /// - public static Color Orange - { - get; - private set; - } - - /// - /// OrangeRed color (R:255,G:69,B:0,A:255). - /// - public static Color OrangeRed - { - get; - private set; - } - - /// - /// Orchid color (R:218,G:112,B:214,A:255). - /// - public static Color Orchid - { - get; - private set; - } - - /// - /// PaleGoldenrod color (R:238,G:232,B:170,A:255). - /// - public static Color PaleGoldenrod - { - get; - private set; - } - - /// - /// PaleGreen color (R:152,G:251,B:152,A:255). - /// - public static Color PaleGreen - { - get; - private set; - } - - /// - /// PaleTurquoise color (R:175,G:238,B:238,A:255). - /// - public static Color PaleTurquoise - { - get; - private set; - } - /// - /// PaleVioletRed color (R:219,G:112,B:147,A:255). - /// - public static Color PaleVioletRed - { - get; - private set; - } - - /// - /// PapayaWhip color (R:255,G:239,B:213,A:255). - /// - public static Color PapayaWhip - { - get; - private set; - } - - /// - /// PeachPuff color (R:255,G:218,B:185,A:255). - /// - public static Color PeachPuff - { - get; - private set; - } - - /// - /// Peru color (R:205,G:133,B:63,A:255). - /// - public static Color Peru - { - get; - private set; - } - - /// - /// Pink color (R:255,G:192,B:203,A:255). - /// - public static Color Pink - { - get; - private set; - } - - /// - /// Plum color (R:221,G:160,B:221,A:255). - /// - public static Color Plum - { - get; - private set; - } - - /// - /// PowderBlue color (R:176,G:224,B:230,A:255). - /// - public static Color PowderBlue - { - get; - private set; - } - - /// - /// Purple color (R:128,G:0,B:128,A:255). - /// - public static Color Purple - { - get; - private set; - } - - /// - /// Red color (R:255,G:0,B:0,A:255). - /// - public static Color Red - { - get; - private set; - } - - /// - /// RosyBrown color (R:188,G:143,B:143,A:255). - /// - public static Color RosyBrown - { - get; - private set; - } - - /// - /// RoyalBlue color (R:65,G:105,B:225,A:255). - /// - public static Color RoyalBlue - { - get; - private set; - } - - /// - /// SaddleBrown color (R:139,G:69,B:19,A:255). - /// - public static Color SaddleBrown - { - get; - private set; - } - - /// - /// Salmon color (R:250,G:128,B:114,A:255). - /// - public static Color Salmon - { - get; - private set; - } - - /// - /// SandyBrown color (R:244,G:164,B:96,A:255). - /// - public static Color SandyBrown - { - get; - private set; - } - - /// - /// SeaGreen color (R:46,G:139,B:87,A:255). - /// - public static Color SeaGreen - { - get; - private set; - } - - /// - /// SeaShell color (R:255,G:245,B:238,A:255). - /// - public static Color SeaShell - { - get; - private set; - } - - /// - /// Sienna color (R:160,G:82,B:45,A:255). - /// - public static Color Sienna - { - get; - private set; - } - - /// - /// Silver color (R:192,G:192,B:192,A:255). - /// - public static Color Silver - { - get; - private set; - } - - /// - /// SkyBlue color (R:135,G:206,B:235,A:255). - /// - public static Color SkyBlue - { - get; - private set; - } - - /// - /// SlateBlue color (R:106,G:90,B:205,A:255). - /// - public static Color SlateBlue - { - get; - private set; - } - - /// - /// SlateGray color (R:112,G:128,B:144,A:255). - /// - public static Color SlateGray - { - get; - private set; - } - - /// - /// Snow color (R:255,G:250,B:250,A:255). - /// - public static Color Snow - { - get; - private set; - } - - /// - /// SpringGreen color (R:0,G:255,B:127,A:255). - /// - public static Color SpringGreen - { - get; - private set; - } - - /// - /// SteelBlue color (R:70,G:130,B:180,A:255). - /// - public static Color SteelBlue - { - get; - private set; - } - - /// - /// Tan color (R:210,G:180,B:140,A:255). - /// - public static Color Tan - { - get; - private set; - } - - /// - /// Teal color (R:0,G:128,B:128,A:255). - /// - public static Color Teal - { - get; - private set; - } - - /// - /// Thistle color (R:216,G:191,B:216,A:255). - /// - public static Color Thistle - { - get; - private set; - } - - /// - /// Tomato color (R:255,G:99,B:71,A:255). - /// - public static Color Tomato - { - get; - private set; - } - - /// - /// Turquoise color (R:64,G:224,B:208,A:255). - /// - public static Color Turquoise - { - get; - private set; - } - - /// - /// Violet color (R:238,G:130,B:238,A:255). - /// - public static Color Violet - { - get; - private set; - } - - /// - /// Wheat color (R:245,G:222,B:179,A:255). - /// - public static Color Wheat - { - get; - private set; - } - - /// - /// White color (R:255,G:255,B:255,A:255). - /// - public static Color White - { - get; - private set; - } - - /// - /// WhiteSmoke color (R:245,G:245,B:245,A:255). - /// - public static Color WhiteSmoke - { - get; - private set; - } - - /// - /// Yellow color (R:255,G:255,B:0,A:255). - /// - public static Color Yellow - { - get; - private set; - } - - /// - /// YellowGreen color (R:154,G:205,B:50,A:255). - /// - public static Color YellowGreen - { - get; - private set; - } - - #endregion - - #region Internal Properties - - internal string DebugDisplayString - { - get - { - return string.Concat( - R.ToString(), " ", - G.ToString(), " ", - B.ToString(), " ", - A.ToString() - ); - } - } - - #endregion - - #region Private Variables - - // ARGB. Keep this name as it is used by XNA games in reflection! - private uint packedValue; - - #endregion - - #region Private Static Constructors - - static Color() - { - Transparent = new Color(0); - AliceBlue = new Color(0xfffff8f0); - AntiqueWhite = new Color(0xffd7ebfa); - Aqua = new Color(0xffffff00); - Aquamarine = new Color(0xffd4ff7f); - Azure = new Color(0xfffffff0); - Beige = new Color(0xffdcf5f5); - Bisque = new Color(0xffc4e4ff); - Black = new Color(0xff000000); - BlanchedAlmond = new Color(0xffcdebff); - Blue = new Color(0xffff0000); - BlueViolet = new Color(0xffe22b8a); - Brown = new Color(0xff2a2aa5); - BurlyWood = new Color(0xff87b8de); - CadetBlue = new Color(0xffa09e5f); - Chartreuse = new Color(0xff00ff7f); - Chocolate = new Color(0xff1e69d2); - Coral = new Color(0xff507fff); - CornflowerBlue = new Color(0xffed9564); - Cornsilk = new Color(0xffdcf8ff); - Crimson = new Color(0xff3c14dc); - Cyan = new Color(0xffffff00); - DarkBlue = new Color(0xff8b0000); - DarkCyan = new Color(0xff8b8b00); - DarkGoldenrod = new Color(0xff0b86b8); - DarkGray = new Color(0xffa9a9a9); - DarkGreen = new Color(0xff006400); - DarkKhaki = new Color(0xff6bb7bd); - DarkMagenta = new Color(0xff8b008b); - DarkOliveGreen = new Color(0xff2f6b55); - DarkOrange = new Color(0xff008cff); - DarkOrchid = new Color(0xffcc3299); - DarkRed = new Color(0xff00008b); - DarkSalmon = new Color(0xff7a96e9); - DarkSeaGreen = new Color(0xff8bbc8f); - DarkSlateBlue = new Color(0xff8b3d48); - DarkSlateGray = new Color(0xff4f4f2f); - DarkTurquoise = new Color(0xffd1ce00); - DarkViolet = new Color(0xffd30094); - DeepPink = new Color(0xff9314ff); - DeepSkyBlue = new Color(0xffffbf00); - DimGray = new Color(0xff696969); - DodgerBlue = new Color(0xffff901e); - Firebrick = new Color(0xff2222b2); - FloralWhite = new Color(0xfff0faff); - ForestGreen = new Color(0xff228b22); - Fuchsia = new Color(0xffff00ff); - Gainsboro = new Color(0xffdcdcdc); - GhostWhite = new Color(0xfffff8f8); - Gold = new Color(0xff00d7ff); - Goldenrod = new Color(0xff20a5da); - Gray = new Color(0xff808080); - Green = new Color(0xff008000); - GreenYellow = new Color(0xff2fffad); - Honeydew = new Color(0xfff0fff0); - HotPink = new Color(0xffb469ff); - IndianRed = new Color(0xff5c5ccd); - Indigo = new Color(0xff82004b); - Ivory = new Color(0xfff0ffff); - Khaki = new Color(0xff8ce6f0); - Lavender = new Color(0xfffae6e6); - LavenderBlush = new Color(0xfff5f0ff); - LawnGreen = new Color(0xff00fc7c); - LemonChiffon = new Color(0xffcdfaff); - LightBlue = new Color(0xffe6d8ad); - LightCoral = new Color(0xff8080f0); - LightCyan = new Color(0xffffffe0); - LightGoldenrodYellow = new Color(0xffd2fafa); - LightGray = new Color(0xffd3d3d3); - LightGreen = new Color(0xff90ee90); - LightPink = new Color(0xffc1b6ff); - LightSalmon = new Color(0xff7aa0ff); - LightSeaGreen = new Color(0xffaab220); - LightSkyBlue = new Color(0xffface87); - LightSlateGray = new Color(0xff998877); - LightSteelBlue = new Color(0xffdec4b0); - LightYellow = new Color(0xffe0ffff); - Lime = new Color(0xff00ff00); - LimeGreen = new Color(0xff32cd32); - Linen = new Color(0xffe6f0fa); - Magenta = new Color(0xffff00ff); - Maroon = new Color(0xff000080); - MediumAquamarine = new Color(0xffaacd66); - MediumBlue = new Color(0xffcd0000); - MediumOrchid = new Color(0xffd355ba); - MediumPurple = new Color(0xffdb7093); - MediumSeaGreen = new Color(0xff71b33c); - MediumSlateBlue = new Color(0xffee687b); - MediumSpringGreen = new Color(0xff9afa00); - MediumTurquoise = new Color(0xffccd148); - MediumVioletRed = new Color(0xff8515c7); - MidnightBlue = new Color(0xff701919); - MintCream = new Color(0xfffafff5); - MistyRose = new Color(0xffe1e4ff); - Moccasin = new Color(0xffb5e4ff); - NavajoWhite = new Color(0xffaddeff); - Navy = new Color(0xff800000); - OldLace = new Color(0xffe6f5fd); - Olive = new Color(0xff008080); - OliveDrab = new Color(0xff238e6b); - Orange = new Color(0xff00a5ff); - OrangeRed = new Color(0xff0045ff); - Orchid = new Color(0xffd670da); - PaleGoldenrod = new Color(0xffaae8ee); - PaleGreen = new Color(0xff98fb98); - PaleTurquoise = new Color(0xffeeeeaf); - PaleVioletRed = new Color(0xff9370db); - PapayaWhip = new Color(0xffd5efff); - PeachPuff = new Color(0xffb9daff); - Peru = new Color(0xff3f85cd); - Pink = new Color(0xffcbc0ff); - Plum = new Color(0xffdda0dd); - PowderBlue = new Color(0xffe6e0b0); - Purple = new Color(0xff800080); - Red = new Color(0xff0000ff); - RosyBrown = new Color(0xff8f8fbc); - RoyalBlue = new Color(0xffe16941); - SaddleBrown = new Color(0xff13458b); - Salmon= new Color(0xff7280fa); - SandyBrown = new Color(0xff60a4f4); - SeaGreen = new Color(0xff578b2e); - SeaShell = new Color(0xffeef5ff); - Sienna = new Color(0xff2d52a0); - Silver = new Color(0xffc0c0c0); - SkyBlue = new Color(0xffebce87); - SlateBlue= new Color(0xffcd5a6a); - SlateGray= new Color(0xff908070); - Snow= new Color(0xfffafaff); - SpringGreen= new Color(0xff7fff00); - SteelBlue= new Color(0xffb48246); - Tan= new Color(0xff8cb4d2); - Teal= new Color(0xff808000); - Thistle= new Color(0xffd8bfd8); - Tomato= new Color(0xff4763ff); - Turquoise= new Color(0xffd0e040); - Violet= new Color(0xffee82ee); - Wheat= new Color(0xffb3def5); - White= new Color(uint.MaxValue); - WhiteSmoke= new Color(0xfff5f5f5); - Yellow = new Color(0xff00ffff); - YellowGreen = new Color(0xff32cd9a); - } - - #endregion - - #region Public Constructors - - /// - /// Creates a new instance of struct. - /// - /// A representing a color. - public Color(Vector4 color) - { - packedValue = 0; - - R = (byte) MathHelper.Clamp(color.X * 255, Byte.MinValue, Byte.MaxValue); - G = (byte) MathHelper.Clamp(color.Y * 255, Byte.MinValue, Byte.MaxValue); - B = (byte) MathHelper.Clamp(color.Z * 255, Byte.MinValue, Byte.MaxValue); - A = (byte) MathHelper.Clamp(color.W * 255, Byte.MinValue, Byte.MaxValue); - } - - /// - /// Constructs an RGBA color from the XYZW unit length components of a vector. - /// - /// A representing a color. - public Color(Vector3 color) - { - packedValue = 0; - - R = (byte) MathHelper.Clamp(color.X * 255, Byte.MinValue, Byte.MaxValue); - G = (byte) MathHelper.Clamp(color.Y * 255, Byte.MinValue, Byte.MaxValue); - B = (byte) MathHelper.Clamp(color.Z * 255, Byte.MinValue, Byte.MaxValue); - A = 255; - } - - /// - /// Constructs an RGBA color from scalars which representing red, green and blue values. Alpha value will be opaque. - /// - /// Red component value from 0.0f to 1.0f. - /// Green component value from 0.0f to 1.0f. - /// Blue component value from 0.0f to 1.0f. - public Color(float r, float g, float b) - { - packedValue = 0; - - R = (byte) MathHelper.Clamp(r * 255, Byte.MinValue, Byte.MaxValue); - G = (byte) MathHelper.Clamp(g * 255, Byte.MinValue, Byte.MaxValue); - B = (byte) MathHelper.Clamp(b * 255, Byte.MinValue, Byte.MaxValue); - A = 255; - } - - /// - /// Constructs an RGBA color from scalars which representing red, green and blue values. Alpha value will be opaque. - /// - /// Red component value from 0 to 255. - /// Green component value from 0 to 255. - /// Blue component value from 0 to 255. - public Color(int r, int g, int b) - { - packedValue = 0; - R = (byte) MathHelper.Clamp(r, Byte.MinValue, Byte.MaxValue); - G = (byte) MathHelper.Clamp(g, Byte.MinValue, Byte.MaxValue); - B = (byte) MathHelper.Clamp(b, Byte.MinValue, Byte.MaxValue); - A = (byte)255; - } - - /// - /// Constructs an RGBA color from scalars which representing red, green, blue and alpha values. - /// - /// Red component value from 0 to 255. - /// Green component value from 0 to 255. - /// Blue component value from 0 to 255. - /// Alpha component value from 0 to 255. - public Color(int r, int g, int b, int alpha) - { - packedValue = 0; - R = (byte) MathHelper.Clamp(r, Byte.MinValue, Byte.MaxValue); - G = (byte) MathHelper.Clamp(g, Byte.MinValue, Byte.MaxValue); - B = (byte) MathHelper.Clamp(b, Byte.MinValue, Byte.MaxValue); - A = (byte) MathHelper.Clamp(alpha, Byte.MinValue, Byte.MaxValue); - } - - /// - /// Constructs an RGBA color from scalars which representing red, green, blue and alpha values. - /// - /// Red component value from 0.0f to 1.0f. - /// Green component value from 0.0f to 1.0f. - /// Blue component value from 0.0f to 1.0f. - /// Alpha component value from 0.0f to 1.0f. - public Color(float r, float g, float b, float alpha) - { - packedValue = 0; - - R = (byte) MathHelper.Clamp(r * 255, Byte.MinValue, Byte.MaxValue); - G = (byte) MathHelper.Clamp(g * 255, Byte.MinValue, Byte.MaxValue); - B = (byte) MathHelper.Clamp(b * 255, Byte.MinValue, Byte.MaxValue); - A = (byte) MathHelper.Clamp(alpha * 255, Byte.MinValue, Byte.MaxValue); - } - - #endregion - - #region Private Constructors - - private Color(uint packedValue) - { - this.packedValue = packedValue; - } - - #endregion - - #region Public Methods - - /// - /// Compares whether current instance is equal to specified . - /// - /// The to compare. - /// true if the instances are equal; false otherwise. - public bool Equals(Color other) - { - return this.PackedValue == other.PackedValue; - } - - /// - /// Gets a representation for this object. - /// - /// A representation for this object. - public Vector3 ToVector3() - { - return new Vector3(R / 255.0f, G / 255.0f, B / 255.0f); - } - - /// - /// Gets a representation for this object. - /// - /// A representation for this object. - public Vector4 ToVector4() - { - return new Vector4(R / 255.0f, G / 255.0f, B / 255.0f, A / 255.0f); - } - - #endregion - - #region Public Static Methods - - /// - /// Performs linear interpolation of . - /// - /// Source . - /// Destination . - /// Interpolation factor. - /// Interpolated . - public static Color Lerp(Color value1, Color value2, float amount) - { - amount = MathHelper.Clamp(amount, 0.0f, 1.0f); - return new Color( - (int) MathHelper.Lerp(value1.R, value2.R, amount), - (int) MathHelper.Lerp(value1.G, value2.G, amount), - (int) MathHelper.Lerp(value1.B, value2.B, amount), - (int) MathHelper.Lerp(value1.A, value2.A, amount) - ); - } - - /// - /// Translate a non-premultipled alpha to a - /// that contains premultiplied alpha. - /// - /// A representing color. - /// A which contains premultiplied alpha data. - public static Color FromNonPremultiplied(Vector4 vector) - { - return new Color( - vector.X * vector.W, - vector.Y * vector.W, - vector.Z * vector.W, - vector.W - ); - } - - /// - /// Translate a non-premultipled alpha to a - /// that contains premultiplied alpha. - /// - /// Red component value. - /// Green component value. - /// Blue component value. - /// Alpha component value. - /// A which contains premultiplied alpha data. - public static Color FromNonPremultiplied(int r, int g, int b, int a) - { - return new Color( - (r * a / 255), - (g * a / 255), - (b * a / 255), - a - ); - } - - #endregion - - #region Public Static Operators and Override Methods - - /// - /// Compares whether two instances are equal. - /// - /// instance on the left of the equal sign. - /// instance on the right of the equal sign. - /// True if the instances are equal; false otherwise. - public static bool operator ==(Color a, Color b) - { - return ( a.A == b.A && - a.R == b.R && - a.G == b.G && - a.B == b.B ); - } - - /// - /// Compares whether two instances are not equal. - /// - /// - /// instance on the left of the not equal sign. - /// - /// - /// instance on the right of the not equal sign. - /// - /// - /// True if the instances are not equal; false otherwise. - /// - public static bool operator !=(Color a, Color b) - { - return !(a == b); - } - - /// - /// Gets the hash code of this . - /// - /// Hash code of this . - public override int GetHashCode() - { - return this.packedValue.GetHashCode(); - } - - /// - /// Compares whether current instance is equal to specified object. - /// - /// The to compare. - /// True if the instances are equal; false otherwise. - public override bool Equals(object obj) - { - return ((obj is Color) && this.Equals((Color) obj)); - } - - /// - /// Multiply by value. - /// - /// Source . - /// Multiplicator. - /// Multiplication result. - public static Color Multiply(Color value, float scale) - { - return new Color( - (int) (value.R * scale), - (int) (value.G * scale), - (int) (value.B * scale), - (int) (value.A * scale) - ); - } - - /// - /// Multiply by value. - /// - /// Source . - /// Multiplicator. - /// Multiplication result. - public static Color operator *(Color value, float scale) - { - return new Color( - (int) (value.R * scale), - (int) (value.G * scale), - (int) (value.B * scale), - (int) (value.A * scale) - ); - } - - /// - /// Returns a representation of this in the format: - /// {R:[red] G:[green] B:[blue] A:[alpha]} - /// - /// representation of this . - public override string ToString() - { - StringBuilder sb = new StringBuilder(25); - sb.Append("{R:"); - sb.Append(R); - sb.Append(" G:"); - sb.Append(G); - sb.Append(" B:"); - sb.Append(B); - sb.Append(" A:"); - sb.Append(A); - sb.Append("}"); - return sb.ToString(); - } - - #endregion - - #region IPackedVector Member - - /// - /// Pack a four-component color from a vector format into the format of a color object. - /// - /// A four-component color. - void IPackedVector.PackFromVector4(Vector4 vector) - { - // Should we round here? - R = (byte) (vector.X * 255.0f); - G = (byte) (vector.Y * 255.0f); - B = (byte) (vector.Z * 255.0f); - A = (byte) (vector.W * 255.0f); - } - - #endregion - - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/ContainmentType.cs b/RE/Commit2/ThirdParty/fna/src/ContainmentType.cs deleted file mode 100644 index 3814eee4..00000000 --- a/RE/Commit2/ThirdParty/fna/src/ContainmentType.cs +++ /dev/null @@ -1,34 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework -{ - /// - /// Defines how the bounding volumes intersects or contain one another. - /// - public enum ContainmentType - { - /// - /// Indicates that there is no overlap between two bounding volumes. - /// - Disjoint, - /// - /// Indicates that one bounding volume completely contains another volume. - /// - Contains, - /// - /// Indicates that bounding volumes partially overlap one another. - /// - Intersects - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentExtensions.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentExtensions.cs deleted file mode 100644 index 0036e89f..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentExtensions.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Reflection; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal static class ContentExtensions - { - #region Public Static Constructor Extractor Method - - public static ConstructorInfo GetDefaultConstructor(this Type type) - { - return type.GetConstructor( - BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance, - null, - new Type[0], - null - ); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentLoadException.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentLoadException.cs deleted file mode 100644 index 09053eef..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentLoadException.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - public class ContentLoadException : Exception - { - #region Public Constructors - - public ContentLoadException() : base() - { - } - - public ContentLoadException(string message) : base(message) - { - } - - public ContentLoadException(string message, Exception innerException) : base(message,innerException) - { - } - - #endregion - } -} - diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentManager.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentManager.cs deleted file mode 100644 index 973e0256..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentManager.cs +++ /dev/null @@ -1,676 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Reflection; - -using Microsoft.Xna.Framework.Audio; -using Microsoft.Xna.Framework.Graphics; -using Microsoft.Xna.Framework.Media; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - public partial class ContentManager : IDisposable - { - #region Public ServiceProvider Property - - public IServiceProvider ServiceProvider - { - get; - private set; - } - - #endregion - - #region Public RootDirectory Property - - public string RootDirectory - { - get; - set; - } - - #endregion - - #region Internal Root Directory Path Property - - internal string RootDirectoryFullPath - { - get - { - if (Path.IsPathRooted(RootDirectory)) - { - return RootDirectory; - } - return Path.Combine(TitleLocation.Path, RootDirectory); - } - } - - #endregion - - #region Private Variables - - private GraphicsDevice graphicsDevice; - private Dictionary loadedAssets = new Dictionary(StringComparer.OrdinalIgnoreCase); - private List disposableAssets = new List(); - private bool disposed; - - #endregion - - #region Private Static Variables - - private static object ContentManagerLock = new object(); - private static List ContentManagers = new List(); - - private static readonly byte[] xnbHeader = new byte[4]; - private static List targetPlatformIdentifiers = new List() - { - 'w', // Windows (DirectX) - 'x', // Xbox360 - 'm', // WindowsPhone - 'i', // iOS - 'a', // Android - 'd', // DesktopGL - 'X', // MacOSX - 'W', // WindowsStoreApp - 'n', // NativeClient - 'u', // Ouya - 'p', // PlayStationMobile - 'M', // WindowsPhone8 - 'r', // RaspberryPi - 'P', // Playstation 4 - 'g', // WindowsGL (deprecated for DesktopGL) - 'l', // Linux (deprecated for DesktopGL) - }; - - #endregion - - #region Public Constructors - - public ContentManager(IServiceProvider serviceProvider) - { - if (serviceProvider == null) - { - throw new ArgumentNullException("serviceProvider"); - } - ServiceProvider = serviceProvider; - RootDirectory = string.Empty; - AddContentManager(this); - } - - public ContentManager(IServiceProvider serviceProvider, string rootDirectory) - { - if (serviceProvider == null) - { - throw new ArgumentNullException("serviceProvider"); - } - if (rootDirectory == null) - { - throw new ArgumentNullException("rootDirectory"); - } - ServiceProvider = serviceProvider; - RootDirectory = rootDirectory; - AddContentManager(this); - } - - #endregion - - #region Destructor - - /* Use C# destructor syntax for finalization code. - * This destructor will run only if the Dispose method - * does not get called. - * It gives your base class the opportunity to finalize. - * Do not provide destructors in types derived from this class. - */ - ~ContentManager() - { - /* Do not re-create Dispose clean-up code here. - * Calling Dispose(false) is optimal in terms of - * readability and maintainability. - */ - Dispose(false); - } - - #endregion - - #region Dispose Methods - - public void Dispose() - { - Dispose(true); - /* Tell the garbage collector not to call the finalizer - * since all the cleanup will already be done. - */ - GC.SuppressFinalize(this); - // Once disposed, content manager wont be used again - RemoveContentManager(this); - } - - /* If disposing is true, it was called explicitly and we should dispose managed - * objects. If disposing is false, it was called by the finalizer and managed - * objects should not be disposed. - */ - protected virtual void Dispose(bool disposing) - { - if (!disposed) - { - if (disposing) - { - Unload(); - } - disposed = true; - } - } - - #endregion - - #region Public Methods - - public virtual T Load(string assetName) - { - if (string.IsNullOrEmpty(assetName)) - { - throw new ArgumentNullException("assetName"); - } - if (disposed) - { - throw new ObjectDisposedException("ContentManager"); - } - T result = default(T); - - /* On some platforms, name and slash direction matter. - * We store the asset by a /-separating key rather than - * how the path to the file was passed to us to avoid - * loading "content/asset1.xnb" and "content\\ASSET1.xnb" - * as if they were two different files. this matches - * stock XNA behavior. The Dictionary will ignore case - * differences. - */ - string key = assetName.Replace('\\', '/'); - - // Check for a previously loaded asset first - object asset = null; - if (loadedAssets.TryGetValue(key, out asset)) - { - if (asset is T) - { - return (T) asset; - } - } - // Load the asset. - result = ReadAsset(assetName, null); - loadedAssets[key] = result; - return result; - } - - public virtual void Unload() - { - // Look for disposable assets. - foreach (IDisposable disposable in disposableAssets) - { - if (disposable != null) - { - disposable.Dispose(); - } - } - disposableAssets.Clear(); - loadedAssets.Clear(); - } - - #endregion - - #region Protected Methods - - protected virtual Stream OpenStream(string assetName) - { - Stream stream; - try - { - stream = TitleContainer.OpenStream( - Path.Combine(RootDirectory, assetName) + ".xnb" - ); - } - catch (FileNotFoundException fileNotFound) - { - throw new ContentLoadException("The content file was not found.", fileNotFound); - } - catch (DirectoryNotFoundException directoryNotFound) - { - throw new ContentLoadException("The directory was not found.", directoryNotFound); - } - catch (Exception exception) - { - throw new ContentLoadException("Opening stream error.", exception); - } - return stream; - } - - protected T ReadAsset(string assetName, Action recordDisposableObject) - { - if (string.IsNullOrEmpty(assetName)) - { - throw new ArgumentNullException("assetName"); - } - if (disposed) - { - throw new ObjectDisposedException("ContentManager"); - } - - object result = null; - Stream stream = null; - string modifiedAssetName = String.Empty; // Will be used if we have to guess a filename - try - { - stream = OpenStream(assetName); - } - catch (Exception e) - { - // Okay, so we couldn't open it. Maybe it needs a different extension? - // FIXME: This only works for files on the disk, what about custom streams? -flibit - modifiedAssetName = MonoGame.Utilities.FileHelpers.NormalizeFilePathSeparators( - Path.Combine(RootDirectoryFullPath, assetName) - ); - if (typeof(T) == typeof(Texture2D) || typeof(T) == typeof(Texture)) - { - modifiedAssetName = Texture2DReader.Normalize(modifiedAssetName); - } - else if (typeof(T) == typeof(TextureCube)) - { - modifiedAssetName = Texture2DReader.Normalize(modifiedAssetName); - } - else if ((typeof(T) == typeof(SoundEffect))) - { - modifiedAssetName = SoundEffectReader.Normalize(modifiedAssetName); - } - else if ((typeof(T) == typeof(Effect))) - { - modifiedAssetName = EffectReader.Normalize(modifiedAssetName); - } - else if ((typeof(T) == typeof(Song))) - { - modifiedAssetName = SongReader.Normalize(modifiedAssetName); - } - else if ((typeof(T) == typeof(Video))) - { - modifiedAssetName = VideoReader.Normalize(modifiedAssetName); - } - else - { - // No raw format available, disregard! - modifiedAssetName = null; - } - - // Did we get anything...? - if (String.IsNullOrEmpty(modifiedAssetName)) - { - // Nope, nothing we're aware of! - throw new ContentLoadException( - "Could not load asset " + assetName + "! Error: " + e.Message, - e - ); - } - - stream = TitleContainer.OpenStream(modifiedAssetName); - } - - // Check for XNB header - - try - { - if (stream != null) - { - stream.Read(xnbHeader, 0, xnbHeader.Length); - } - else - { - return default; - } - } - catch (Exception ex) - { - Debug.WriteLine("[ex] Exception : " + ex.Message); - - } - - if - ( - xnbHeader[0] == 'X' && - xnbHeader[1] == 'N' && - xnbHeader[2] == 'B' && - targetPlatformIdentifiers.Contains((char) xnbHeader[3]) - ) - { - using (BinaryReader xnbReader = new BinaryReader(stream)) - using (ContentReader reader = GetContentReaderFromXnb(assetName, ref stream, xnbReader, (char) xnbHeader[3], recordDisposableObject)) - { - result = reader.ReadAsset(); - GraphicsResource resource = result as GraphicsResource; - if (resource != null) - { - resource.Name = assetName; - } - } - } - else - { - // It's not an XNB file. Try to load as a raw asset instead. - - // FIXME: Assuming seekable streams! -flibit - stream.Seek(0, SeekOrigin.Begin); - - if (typeof(T) == typeof(Texture2D) || typeof(T) == typeof(Texture)) - { - Texture2D texture; - if ( xnbHeader[0] == 'D' && - xnbHeader[1] == 'D' && - xnbHeader[2] == 'S' && - xnbHeader[3] == ' ' ) - { - texture = Texture2D.DDSFromStreamEXT( - GetGraphicsDevice(), - stream - ); - } - else - { - texture = Texture2D.FromStream( - GetGraphicsDevice(), - stream - ); - } - texture.Name = assetName; - result = texture; - } - else if (typeof(T) == typeof(TextureCube)) - { - TextureCube texture = TextureCube.DDSFromStreamEXT( - GetGraphicsDevice(), - stream - ); - texture.Name = assetName; - result = texture; - } - else if (typeof(T) == typeof(SoundEffect)) - { - SoundEffect effect = SoundEffect.FromStream(stream); - effect.Name = assetName; - result = effect; - } - else if (typeof(T) == typeof(Effect)) - { - byte[] data = new byte[stream.Length]; - stream.Read(data, 0, (int) stream.Length); - Effect effect = new Effect(GetGraphicsDevice(), data); - effect.Name = assetName; - result = effect; - } - else if (typeof(T) == typeof(Song)) - { - // FIXME: Not using the stream! -flibit - result = new Song(modifiedAssetName); - } - else if (typeof(T) == typeof(Video)) - { - // FIXME: Not using the stream! -flibit - result = new Video(modifiedAssetName, GetGraphicsDevice()); - FNALoggerEXT.LogWarn( - "Video " + - modifiedAssetName + - " does not have an XNB file! Hacking Duration property!" - ); - } - else - { - stream.Close(); - throw new ContentLoadException("Could not load " + assetName + " asset!"); - } - - /* Because Raw Assets skip the ContentReader step, they need to have their - * disposables recorded here. Doing it outside of this catch will - * result in disposables being logged twice. - */ - IDisposable disposableResult = result as IDisposable; - if (disposableResult != null) - { - if (recordDisposableObject != null) - { - recordDisposableObject(disposableResult); - } - else - { - disposableAssets.Add(disposableResult); - } - } - - /* Because we're not using a BinaryReader for raw assets, we - * need to close the stream ourselves. - * -flibit - */ - stream.Close(); - } - - return (T) result; - } - - #endregion - - #region Internal Methods - - internal void RecordDisposable(IDisposable disposable) - { - Debug.Assert(disposable != null, "The disposable is null!"); - - /* Avoid recording disposable objects twice. ReloadAsset will try to record - * the disposables again. We don't know which asset recorded which - * disposable so just guard against storing multiple of the same instance. - */ - if (!disposableAssets.Contains(disposable)) - { - disposableAssets.Add(disposable); - } - } - - internal GraphicsDevice GetGraphicsDevice() - { - if (graphicsDevice == null) - { - IGraphicsDeviceService result = ServiceProvider.GetService( - typeof(IGraphicsDeviceService) - ) as IGraphicsDeviceService; - if (result == null) - { - throw new ContentLoadException("No Graphics Device Service"); - } - graphicsDevice = result.GraphicsDevice; - } - return graphicsDevice; - } - - #endregion - - #region Private Methods - - private ContentReader GetContentReaderFromXnb(string originalAssetName, ref Stream stream, BinaryReader xnbReader, char platform, Action recordDisposableObject) - { - byte version = xnbReader.ReadByte(); - byte flags = xnbReader.ReadByte(); - bool compressed = (flags & 0x80) != 0; - if (version != 5 && version != 4) - { - throw new ContentLoadException("Invalid XNB version"); - } - // The next int32 is the length of the XNB file - int xnbLength = xnbReader.ReadInt32(); - ContentReader reader; - if (compressed) - { - /* Decompress the XNB - * Thanks to ShinAli (https://bitbucket.org/alisci01/xnbdecompressor) - */ - int compressedSize = xnbLength - 14; - int decompressedSize = xnbReader.ReadInt32(); - - // This will replace the XNB stream at the end - MemoryStream decompressedStream = new MemoryStream( - new byte[decompressedSize], - 0, - decompressedSize, - true, - true // This MUST be true! Readers may need GetBuffer()! - ); - - /* Read in the whole XNB file at once, into a temp buffer. - * For slow disks, the extra malloc is more than worth the - * performance improvement from not constantly fread()ing! - */ - MemoryStream compressedStream = new MemoryStream( - new byte[compressedSize], - 0, - compressedSize, - true, - true - ); - stream.Read(compressedStream.GetBuffer(), 0, compressedSize); - - // Default window size for XNB encoded files is 64Kb (need 16 bits to represent it) - LzxDecoder dec = new LzxDecoder(16); - int decodedBytes = 0; - long pos = 0; - - while (pos < compressedSize) - { - /* The compressed stream is separated into blocks that will - * decompress into 32kB or some other size if specified. - * Normal, 32kB output blocks will have a short indicating - * the size of the block before the block starts. Blocks - * that have a defined output will be preceded by a byte of - * value 0xFF (255), then a short indicating the output size - * and another for the block size. All shorts for these - * cases are encoded in big endian order. - */ - int hi = compressedStream.ReadByte(); - int lo = compressedStream.ReadByte(); - int block_size = (hi << 8) | lo; - int frame_size = 0x8000; // Frame size is 32kB by default - // Does this block define a frame size? - if (hi == 0xFF) - { - hi = lo; - lo = (byte) compressedStream.ReadByte(); - frame_size = (hi << 8) | lo; - hi = (byte) compressedStream.ReadByte(); - lo = (byte) compressedStream.ReadByte(); - block_size = (hi << 8) | lo; - pos += 5; - } - else - { - pos += 2; - } - // Either says there is nothing to decode - if (block_size == 0 || frame_size == 0) - { - break; - } - dec.Decompress(compressedStream, block_size, decompressedStream, frame_size); - pos += block_size; - decodedBytes += frame_size; - /* Reset the position of the input just in case the bit - * buffer read in some unused bytes. - */ - compressedStream.Seek(pos, SeekOrigin.Begin); - } - if (decompressedStream.Position != decompressedSize) - { - throw new ContentLoadException( - "Decompression of " + originalAssetName + " failed. " - ); - } - decompressedStream.Seek(0, SeekOrigin.Begin); - reader = new ContentReader( - this, - decompressedStream, - originalAssetName, - version, - platform, - recordDisposableObject - ); - } - else - { - reader = new ContentReader( - this, - stream, - originalAssetName, - version, - platform, - recordDisposableObject - ); - } - return reader; - } - - #endregion - - #region Private Static Methods - - private static void AddContentManager(ContentManager contentManager) - { - lock (ContentManagerLock) - { - /* Check if the list contains this content manager already. Also take - * the opportunity to prune the list of any finalized content managers. - */ - bool contains = false; - for (int i = ContentManagers.Count - 1; i >= 0; i -= 1) - { - WeakReference contentRef = ContentManagers[i]; - if (ReferenceEquals(contentRef.Target, contentManager)) - { - contains = true; - } - if (!contentRef.IsAlive) - { - ContentManagers.RemoveAt(i); - } - } - if (!contains) - { - ContentManagers.Add(new WeakReference(contentManager)); - } - } - } - - private static void RemoveContentManager(ContentManager contentManager) - { - lock (ContentManagerLock) - { - /* Check if the list contains this content manager and remove it. Also - * take the opportunity to prune the list of any finalized content managers. - */ - for (int i = ContentManagers.Count - 1; i >= 0; i -= 1) - { - WeakReference contentRef = ContentManagers[i]; - if (!contentRef.IsAlive || ReferenceEquals(contentRef.Target, contentManager)) - { - ContentManagers.RemoveAt(i); - } - } - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReader.cs deleted file mode 100644 index 031df104..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReader.cs +++ /dev/null @@ -1,373 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.IO; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - public sealed class ContentReader : BinaryReader - { - #region Public Properties - - public ContentManager ContentManager - { - get - { - return contentManager; - } - } - - public string AssetName - { - get - { - return assetName; - } - } - - #endregion - - #region Internal Properties - - internal ContentTypeReader[] TypeReaders - { - get - { - return typeReaders; - } - } - - #endregion - - #region Internal Variables - - internal int version; - internal char platform; - - #endregion - - #region Private Variables - - private ContentManager contentManager; - private Action recordDisposableObject; - private ContentTypeReaderManager typeReaderManager; - private ContentTypeReader[] typeReaders; - private string assetName; - - /* From what I can tell, shared resources work like this: - * A list of shared resources is stored at the end of the file, - * and while we're reading the whole object, the parts that ask - * for "shared" objects store the 1-based index of the shared - * resource in the list. For example, if there are two shared - * resources, a ReadSharedResource function will ask for either - * 1 or 2. For null references, the index will be 0. - */ - private int sharedResourceCount; - private object[] sharedResources; - private List>[] sharedResourceFixups; - - #endregion - - #region Internal Constructor - - internal ContentReader( - ContentManager manager, - Stream stream, - string assetName, - int version, - char platform, - Action recordDisposableObject - ) : base(stream) { - this.recordDisposableObject = recordDisposableObject; - this.contentManager = manager; - this.assetName = assetName; - this.version = version; - this.platform = platform; - } - - #endregion - - #region Public Read Methods - - public T ReadExternalReference() - { - string externalReference = ReadString(); - if (!String.IsNullOrEmpty(externalReference)) - { - return contentManager.Load( - MonoGame.Utilities.FileHelpers.ResolveRelativePath(assetName, externalReference) - ); - } - return default(T); - } - - public Matrix ReadMatrix() - { - Matrix result = new Matrix(); - result.M11 = ReadSingle(); - result.M12 = ReadSingle(); - result.M13 = ReadSingle(); - result.M14 = ReadSingle(); - result.M21 = ReadSingle(); - result.M22 = ReadSingle(); - result.M23 = ReadSingle(); - result.M24 = ReadSingle(); - result.M31 = ReadSingle(); - result.M32 = ReadSingle(); - result.M33 = ReadSingle(); - result.M34 = ReadSingle(); - result.M41 = ReadSingle(); - result.M42 = ReadSingle(); - result.M43 = ReadSingle(); - result.M44 = ReadSingle(); - return result; - } - - public T ReadObject() - { - return ReadObject(default(T)); - } - - public T ReadObject(ContentTypeReader typeReader) - { - T result = (T) typeReader.Read(this, default(T)); - RecordDisposable(result); - return result; - } - - public T ReadObject(T existingInstance) - { - return InnerReadObject(existingInstance); - } - - public T ReadObject(ContentTypeReader typeReader, T existingInstance) - { - if (!typeReader.TargetType.IsValueType) - { - return ReadObject(existingInstance); - } - T result = (T) typeReader.Read(this, existingInstance); - RecordDisposable(result); - return result; - } - - public Quaternion ReadQuaternion() - { - Quaternion result = new Quaternion(); - result.X = ReadSingle(); - result.Y = ReadSingle(); - result.Z = ReadSingle(); - result.W = ReadSingle(); - return result; - } - - public T ReadRawObject() - { - return (T) ReadRawObject(default(T)); - } - - public T ReadRawObject(ContentTypeReader typeReader) - { - return (T) ReadRawObject(typeReader, default(T)); - } - - public T ReadRawObject(T existingInstance) - { - Type objectType = typeof(T); - foreach (ContentTypeReader typeReader in typeReaders) - { - if (typeReader.TargetType == objectType) - { - return (T) ReadRawObject(typeReader,existingInstance); - } - } - throw new NotSupportedException(); - } - - public T ReadRawObject(ContentTypeReader typeReader, T existingInstance) - { - return (T) typeReader.Read(this, existingInstance); - } - - public void ReadSharedResource(Action fixup) - { - int index = Read7BitEncodedInt(); - if (index > 0) - { - sharedResourceFixups[index - 1].Add( - delegate(object v) - { - if (!(v is T)) - { - throw new ContentLoadException( - String.Format( - "Error loading shared resource. Expected type {0}, received type {1}", - typeof(T).Name, v.GetType().Name - ) - ); - } - fixup((T) v); - } - ); - } - } - - public Vector2 ReadVector2() - { - Vector2 result = new Vector2(); - result.X = ReadSingle(); - result.Y = ReadSingle(); - return result; - } - - public Vector3 ReadVector3() - { - Vector3 result = new Vector3(); - result.X = ReadSingle(); - result.Y = ReadSingle(); - result.Z = ReadSingle(); - return result; - } - - public Vector4 ReadVector4() - { - Vector4 result = new Vector4(); - result.X = ReadSingle(); - result.Y = ReadSingle(); - result.Z = ReadSingle(); - result.W = ReadSingle(); - return result; - } - - public Color ReadColor() - { - Color result = new Color(); - result.R = ReadByte(); - result.G = ReadByte(); - result.B = ReadByte(); - result.A = ReadByte(); - return result; - } - - #endregion - - #region Internal Methods - - internal object ReadAsset() - { - InitializeTypeReaders(); - // Read primary object - object result = ReadObject(); - // Read shared resources - ReadSharedResources(); - return result; - } - - internal void InitializeTypeReaders() - { - typeReaderManager = new ContentTypeReaderManager(); - typeReaders = typeReaderManager.LoadAssetReaders(this); - sharedResourceCount = Read7BitEncodedInt(); - sharedResources = new object[sharedResourceCount]; - sharedResourceFixups = new List>[sharedResourceCount]; - for (int i = 0; i < sharedResourceCount; i += 1) - { - sharedResourceFixups[i] = new List>(); - } - } - - internal void ReadSharedResources() - { - // We have to read _all_ the objects first, BEFORE doing fixups! - for (int i = 0; i < sharedResourceCount; i += 1) - { - sharedResources[i] = InnerReadObject(null); - } - - // ... okay, NOW we send them to each ReadSharedResource caller - for (int i = 0; i < sharedResourceCount; i += 1) - { - object sharedResource = sharedResources[i]; - foreach (Action fixup in sharedResourceFixups[i]) - { - fixup(sharedResource); - } - } - } - - internal new int Read7BitEncodedInt() - { - return base.Read7BitEncodedInt(); - } - - internal BoundingSphere ReadBoundingSphere() - { - Vector3 position = ReadVector3(); - float radius = ReadSingle(); - return new BoundingSphere(position, radius); - } - - #endregion - - #region Private Methods - - private T InnerReadObject(T existingInstance) - { - int typeReaderIndex = Read7BitEncodedInt(); - if (typeReaderIndex == 0) - { - return existingInstance; - } - if (typeReaderIndex > typeReaders.Length) - { - throw new ContentLoadException( - "Incorrect type reader index found!" - ); - } - ContentTypeReader typeReader = typeReaders[typeReaderIndex - 1]; - - try - { - T result = (T)typeReader.Read(this, default(T)); - RecordDisposable(result); - return result; - } catch (InvalidCastException exception) - { - throw new ContentLoadException(exception.Message); - } - } - - private void RecordDisposable(T result) - { - IDisposable disposable = result as IDisposable; - if (disposable == null) - { - return; - } - if (recordDisposableObject != null) - { - recordDisposableObject(disposable); - } - else - { - contentManager.RecordDisposable(disposable); - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/AlphaTestEffectReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/AlphaTestEffectReader.cs deleted file mode 100644 index 9196a37c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/AlphaTestEffectReader.cs +++ /dev/null @@ -1,34 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class AlphaTestEffectReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override AlphaTestEffect Read(ContentReader input, AlphaTestEffect existingInstance) - { - AlphaTestEffect effect = new AlphaTestEffect(input.ContentManager.GetGraphicsDevice()); - effect.Texture = input.ReadExternalReference() as Texture2D; - effect.AlphaFunction = (CompareFunction) input.ReadInt32(); - effect.ReferenceAlpha = (int) input.ReadUInt32(); - effect.DiffuseColor = input.ReadVector3(); - effect.Alpha = input.ReadSingle(); - effect.VertexColorEnabled = input.ReadBoolean(); - return effect; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ArrayReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ArrayReader.cs deleted file mode 100644 index 4f65817e..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ArrayReader.cs +++ /dev/null @@ -1,85 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class ArrayReader : ContentTypeReader - { - #region Private ContentTypeReader Instance - - ContentTypeReader elementReader; - - #endregion - - #region Public Constructor - - public ArrayReader() - { - } - - #endregion - - #region Protected Initialization Method - - protected internal override void Initialize(ContentTypeReaderManager manager) - { - Type readerType = typeof(T); - elementReader = manager.GetTypeReader(readerType); - } - - #endregion - - #region Protected Read Method - - protected internal override T[] Read(ContentReader input, T[] existingInstance) - { - uint count = input.ReadUInt32(); - T[] array = existingInstance; - if (array == null) - { - array = new T[count]; - } - - if (typeof(T).IsValueType) - { - for (uint i = 0; i < count; i += 1) - { - array[i] = input.ReadObject(elementReader); - } - } - else - { - for (uint i = 0; i < count; i += 1) - { - int readerType = input.Read7BitEncodedInt(); - if (readerType > 0) - { - array[i] = input.ReadObject( - input.TypeReaders[readerType - 1] - ); - } - else { - array[i] = default(T); - } - } - } - return array; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BasicEffectReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BasicEffectReader.cs deleted file mode 100644 index f53bfbc6..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BasicEffectReader.cs +++ /dev/null @@ -1,42 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class BasicEffectReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override BasicEffect Read( - ContentReader input, - BasicEffect existingInstance - ) { - BasicEffect effect = new BasicEffect(input.ContentManager.GetGraphicsDevice()); - Texture2D texture = input.ReadExternalReference() as Texture2D; - if (texture != null) - { - effect.Texture = texture; - effect.TextureEnabled = true; - } - effect.DiffuseColor = input.ReadVector3(); - effect.EmissiveColor = input.ReadVector3(); - effect.SpecularColor = input.ReadVector3(); - effect.SpecularPower = input.ReadSingle(); - effect.Alpha = input.ReadSingle(); - effect.VertexColorEnabled = input.ReadBoolean(); - return effect; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BooleanReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BooleanReader.cs deleted file mode 100644 index 79be69f7..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BooleanReader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class BooleanReader : ContentTypeReader - { - #region Internal Constructor - - internal BooleanReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override bool Read( - ContentReader input, - bool existingInstance - ) { - return input.ReadBoolean(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingBoxReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingBoxReader.cs deleted file mode 100644 index a303c9e5..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingBoxReader.cs +++ /dev/null @@ -1,29 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class BoundingBoxReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override BoundingBox Read( - ContentReader input, - BoundingBox existingInstance - ) { - BoundingBox result = new BoundingBox( - input.ReadVector3(), - input.ReadVector3() - ); - return result; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingFrustumReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingFrustumReader.cs deleted file mode 100644 index 66cbd782..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingFrustumReader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class BoundingFrustumReader : ContentTypeReader - { - #region Internal Constructor - - internal BoundingFrustumReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override BoundingFrustum Read( - ContentReader input, - BoundingFrustum existingInstance - ) { - return new BoundingFrustum(input.ReadMatrix()); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingSphereReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingSphereReader.cs deleted file mode 100644 index 0445e632..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/BoundingSphereReader.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class BoundingSphereReader : ContentTypeReader - { - #region Internal Constructor - - internal BoundingSphereReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override BoundingSphere Read( - ContentReader input, - BoundingSphere existingInstance - ) { - Vector3 center = input.ReadVector3(); - float radius = input.ReadSingle(); - return new BoundingSphere(center, radius); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ByteReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ByteReader.cs deleted file mode 100644 index 4e52ffe3..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ByteReader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class ByteReader : ContentTypeReader - { - #region Internal Constructor - - internal ByteReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override byte Read( - ContentReader input, - byte existingInstance - ) { - return input.ReadByte(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/CharReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/CharReader.cs deleted file mode 100644 index d5ad0324..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/CharReader.cs +++ /dev/null @@ -1,37 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion License - -namespace Microsoft.Xna.Framework.Content -{ - internal class CharReader : ContentTypeReader - { - #region Internal Constructor - - internal CharReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override char Read( - ContentReader input, - char existingInstance - ) { - return input.ReadChar(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ColorReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ColorReader.cs deleted file mode 100644 index 66d7e15e..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ColorReader.cs +++ /dev/null @@ -1,40 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class ColorReader : ContentTypeReader - { - #region Internal Constructor - - internal ColorReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Color Read( - ContentReader input, - Color existingInstance - ) { - /* Read RGBA as four separate bytes to make sure we - * comply with XNB format document - */ - byte r = input.ReadByte(); - byte g = input.ReadByte(); - byte b = input.ReadByte(); - byte a = input.ReadByte(); - return new Color(r, g, b, a); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/CurveReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/CurveReader.cs deleted file mode 100644 index 76f3903e..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/CurveReader.cs +++ /dev/null @@ -1,52 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class CurveReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override Curve Read( - ContentReader input, - Curve existingInstance - ) { - Curve curve = existingInstance; - if (curve == null) - { - curve = new Curve(); - } - - curve.PreLoop = (CurveLoopType) input.ReadInt32(); - curve.PostLoop = (CurveLoopType) input.ReadInt32(); - int num6 = input.ReadInt32(); - for (int i = 0; i < num6; i += 1) - { - float position = input.ReadSingle(); - float num4 = input.ReadSingle(); - float tangentIn = input.ReadSingle(); - float tangentOut = input.ReadSingle(); - CurveContinuity continuity = (CurveContinuity) input.ReadInt32(); - curve.Keys.Add( - new CurveKey( - position, - num4, - tangentIn, - tangentOut, - continuity - ) - ); - } - return curve; - } - - #endregion - } -} - diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DateTimeReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DateTimeReader.cs deleted file mode 100644 index 19d0e192..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DateTimeReader.cs +++ /dev/null @@ -1,41 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class DateTimeReader : ContentTypeReader - { - #region Internal Constructor - - internal DateTimeReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override DateTime Read( - ContentReader input, - DateTime existingInstance - ) { - UInt64 value = input.ReadUInt64(); - UInt64 mask = (UInt64) 3 << 62; - long ticks = (long) (value & ~mask); - DateTimeKind kind = (DateTimeKind) ((value >> 62) & 3); - return new DateTime(ticks, kind); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DecimalReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DecimalReader.cs deleted file mode 100644 index 25895115..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DecimalReader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class DecimalReader : ContentTypeReader - { - #region Internal Constructor - - internal DecimalReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override decimal Read( - ContentReader input, - decimal existingInstance - ) { - return input.ReadDecimal(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DictionaryReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DictionaryReader.cs deleted file mode 100644 index b09121ac..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DictionaryReader.cs +++ /dev/null @@ -1,106 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class DictionaryReader : ContentTypeReader> - { - #region Public Properties - - public override bool CanDeserializeIntoExistingObject - { - get - { - return true; - } - } - - #endregion - - #region Private Variables - - ContentTypeReader keyReader; - ContentTypeReader valueReader; - - Type keyType; - Type valueType; - - #endregion - - #region Public Constructor - - public DictionaryReader() - { - } - - #endregion - - #region Protected Initialization Method - - protected internal override void Initialize(ContentTypeReaderManager manager) - { - keyType = typeof(TKey); - valueType = typeof(TValue); - keyReader = manager.GetTypeReader(keyType); - valueReader = manager.GetTypeReader(valueType); - } - - #endregion - - #region Protected Read Method - - protected internal override Dictionary Read(ContentReader input, Dictionary existingInstance) - { - int count = input.ReadInt32(); - Dictionary dictionary = existingInstance; - if (dictionary == null) - { - dictionary = new Dictionary(count); - } - else - { - dictionary.Clear(); - } - - for (int i = 0; i < count; i += 1) - { - TKey key; - TValue value; - if (keyType.IsValueType) - { - key = input.ReadObject(keyReader); - } - else - { - int readerType = input.Read7BitEncodedInt(); - key = (readerType > 0) ? input.ReadObject(input.TypeReaders[readerType - 1]) : default(TKey); - } - if (valueType.IsValueType) - { - value = input.ReadObject(valueReader); - } - else - { - int readerType = input.Read7BitEncodedInt(); - value = (readerType > 0) ? input.ReadObject(input.TypeReaders[readerType - 1]) : default(TValue); - } - dictionary.Add(key, value); - } - return dictionary; - } - - #endregion - } -} - diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DoubleReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DoubleReader.cs deleted file mode 100644 index 18855f25..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DoubleReader.cs +++ /dev/null @@ -1,34 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class DoubleReader : ContentTypeReader - { - #region Internal Constructor - - internal DoubleReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override double Read( - ContentReader input, - double existingInstance - ) { - return input.ReadDouble(); - } - - #endregion - } -} - diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DualTextureEffectReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DualTextureEffectReader.cs deleted file mode 100644 index 13294418..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/DualTextureEffectReader.cs +++ /dev/null @@ -1,36 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class DualTextureEffectReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override DualTextureEffect Read( - ContentReader input, - DualTextureEffect existingInstance - ) { - DualTextureEffect effect = new DualTextureEffect(input.ContentManager.GetGraphicsDevice()); - effect.Texture = input.ReadExternalReference() as Texture2D; - effect.Texture2 = input.ReadExternalReference() as Texture2D; - effect.DiffuseColor = input.ReadVector3(); - effect.Alpha = input.ReadSingle(); - effect.VertexColorEnabled = input.ReadBoolean(); - return effect; - } - - #endregion - } -} - diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EffectMaterialReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EffectMaterialReader.cs deleted file mode 100644 index a9ae23fc..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EffectMaterialReader.cs +++ /dev/null @@ -1,111 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.Diagnostics; - -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class EffectMaterialReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override EffectMaterial Read( - ContentReader input, - EffectMaterial existingInstance - ) { - Effect effect = input.ReadExternalReference(); - EffectMaterial effectMaterial = new EffectMaterial(effect); - Dictionary dict = input.ReadObject>(); - foreach (KeyValuePair item in dict) { - EffectParameter parameter = effectMaterial.Parameters[item.Key]; - if (parameter != null) - { - Type itemType = item.Value.GetType(); - if (typeof(Texture).IsAssignableFrom(itemType)) - { - parameter.SetValue((Texture) item.Value); - } - else if (typeof(int).IsAssignableFrom(itemType)) - { - parameter.SetValue((int) item.Value); - } - else if (typeof(int[]).IsAssignableFrom(itemType)) - { - parameter.SetValue((int[]) item.Value); - } - else if (typeof(bool).IsAssignableFrom(itemType)) - { - parameter.SetValue((bool) item.Value); - } - else if (typeof(float).IsAssignableFrom(itemType)) - { - parameter.SetValue((float) item.Value); - } - else if (typeof(float[]).IsAssignableFrom(itemType)) - { - parameter.SetValue((float[]) item.Value); - } - else if (typeof(Vector2).IsAssignableFrom(itemType)) - { - parameter.SetValue((Vector2) item.Value); - } - else if (typeof(Vector2[]).IsAssignableFrom(itemType)) - { - parameter.SetValue((Vector2[]) item.Value); - } - else if (typeof(Vector3).IsAssignableFrom(itemType)) - { - parameter.SetValue((Vector3) item.Value); - } - else if (typeof(Vector3[]).IsAssignableFrom(itemType)) - { - parameter.SetValue((Vector3[]) item.Value); - } - else if (typeof(Vector4).IsAssignableFrom(itemType)) - { - parameter.SetValue((Vector4) item.Value); - } - else if (typeof(Vector4[]).IsAssignableFrom(itemType)) - { - parameter.SetValue((Vector4[]) item.Value); - } - else if (typeof(Matrix).IsAssignableFrom(itemType)) - { - parameter.SetValue((Matrix) item.Value); - } - else if (typeof(Matrix[]).IsAssignableFrom(itemType)) - { - parameter.SetValue((Matrix[]) item.Value); - } - else if (typeof(Quaternion).IsAssignableFrom(itemType)) - { - parameter.SetValue((Quaternion) item.Value); - } - else - { - throw new NotSupportedException("Parameter type is not supported"); - } - } - else - { - Debug.WriteLine("No parameter " + item.Key); - } - } - return effectMaterial; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EffectReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EffectReader.cs deleted file mode 100644 index 578c5d41..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EffectReader.cs +++ /dev/null @@ -1,50 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class EffectReader : ContentTypeReader - { - #region Private Supported File Extensions Variable - - private static string[] supportedExtensions = new string[] { ".fxb" }; - - #endregion - - #region Internal Filename Normalizer Method - - internal static string Normalize(string FileName) - { - return Normalize(FileName, supportedExtensions); - } - - #endregion - - #region Protected Read Method - - protected internal override Effect Read( - ContentReader input, - Effect existingInstance - ) { - int length = input.ReadInt32(); - Effect effect = new Effect( - input.ContentManager.GetGraphicsDevice(), - input.ReadBytes(length) - ); - effect.Name = input.AssetName; - return effect; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EnumReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EnumReader.cs deleted file mode 100644 index cae5ab37..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EnumReader.cs +++ /dev/null @@ -1,51 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class EnumReader : ContentTypeReader - { - #region Private ContentTypeReader Instance - - ContentTypeReader elementReader; - - #endregion - - #region Public Constructor - - public EnumReader() - { - } - - #endregion - - #region Protected Initialization Method - - protected internal override void Initialize(ContentTypeReaderManager manager) - { - Type readerType = Enum.GetUnderlyingType(typeof(T)); - elementReader = manager.GetTypeReader(readerType); - } - - #endregion - - #region Protected Read Method - - protected internal override T Read(ContentReader input, T existingInstance) - { - return input.ReadRawObject(elementReader); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EnvironmentMapEffectReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EnvironmentMapEffectReader.cs deleted file mode 100644 index 8629013a..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/EnvironmentMapEffectReader.cs +++ /dev/null @@ -1,38 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class EnvironmentMapEffectReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override EnvironmentMapEffect Read( - ContentReader input, - EnvironmentMapEffect existingInstance - ) { - EnvironmentMapEffect effect = new EnvironmentMapEffect(input.ContentManager.GetGraphicsDevice()); - effect.Texture = input.ReadExternalReference() as Texture2D; - effect.EnvironmentMap = input.ReadExternalReference() as TextureCube; - effect.EnvironmentMapAmount = input.ReadSingle(); - effect.EnvironmentMapSpecular = input.ReadVector3(); - effect.FresnelFactor = input.ReadSingle(); - effect.DiffuseColor = input.ReadVector3(); - effect.EmissiveColor = input.ReadVector3(); - effect.Alpha = input.ReadSingle(); - return effect; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ExternalReferenceReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ExternalReferenceReader.cs deleted file mode 100644 index 56fe0fb6..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ExternalReferenceReader.cs +++ /dev/null @@ -1,36 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - /// - /// External reference reader, provided for compatibility with XNA Framework built content - /// - internal class ExternalReferenceReader : ContentTypeReader - { - #region Public Constructor - - public ExternalReferenceReader() : base(null) - { - } - - #endregion - - #region Protected Read Method - - protected internal override object Read( - ContentReader input, - object existingInstance - ) { - return input.ReadExternalReference(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/IndexBufferReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/IndexBufferReader.cs deleted file mode 100644 index 679a7e43..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/IndexBufferReader.cs +++ /dev/null @@ -1,56 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class IndexBufferReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override IndexBuffer Read( - ContentReader input, - IndexBuffer existingInstance - ) { - IndexBuffer indexBuffer = existingInstance; - bool sixteenBits = input.ReadBoolean(); - int dataSize = input.ReadInt32(); - byte[] data = input.ReadBytes(dataSize); - if (indexBuffer == null) - { - if (sixteenBits) - { - indexBuffer = new IndexBuffer( - input.ContentManager.GetGraphicsDevice(), - IndexElementSize.SixteenBits, - dataSize / 2, - BufferUsage.None - ); - } - else - { - indexBuffer = new IndexBuffer( - input.ContentManager.GetGraphicsDevice(), - IndexElementSize.ThirtyTwoBits, - dataSize / 4, - BufferUsage.None - ); - } - } - - indexBuffer.SetData(data); - return indexBuffer; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int16Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int16Reader.cs deleted file mode 100644 index af91fc69..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int16Reader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Int16Reader : ContentTypeReader - { - #region Internal Constructor - - internal Int16Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override short Read( - ContentReader input, - short existingInstance - ) { - return input.ReadInt16(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int32Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int32Reader.cs deleted file mode 100644 index d5a88b0e..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int32Reader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Int32Reader : ContentTypeReader - { - #region Internal Constructor - - internal Int32Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override int Read( - ContentReader input, - int existingInstance - ) { - return input.ReadInt32(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int64Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int64Reader.cs deleted file mode 100644 index 2906e349..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Int64Reader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Int64Reader : ContentTypeReader - { - #region Internal Constructor - - internal Int64Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override long Read( - ContentReader input, - long existingInstance - ) { - return input.ReadInt64(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ListReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ListReader.cs deleted file mode 100644 index 8b6f4ac2..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ListReader.cs +++ /dev/null @@ -1,89 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class ListReader : ContentTypeReader> - { - #region Public Properties - - public override bool CanDeserializeIntoExistingObject - { - get - { - return true; - } - } - - #endregion - - #region Private ContentTypeReader Instance - - ContentTypeReader elementReader; - - #endregion - - #region Public Constructor - - public ListReader() - { - } - - #endregion - - #region Protected Initialization Method - - protected internal override void Initialize(ContentTypeReaderManager manager) - { - Type readerType = typeof(T); - elementReader = manager.GetTypeReader(readerType); - } - - #endregion - - #region Protected Read Method - - protected internal override List Read( - ContentReader input, - List existingInstance - ) { - int count = input.ReadInt32(); - List list = existingInstance; - if (list == null) - { - list = new List(count); - } - for (int i = 0; i < count; i += 1) - { - Type objectType = typeof(T); - if (objectType.IsValueType) - { - list.Add(input.ReadObject(elementReader)); - } - else - { - int readerType = input.Read7BitEncodedInt(); - list.Add((readerType > 0) ? input.ReadObject(input.TypeReaders[readerType - 1]) : default(T)); - } - } - return list; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/MatrixReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/MatrixReader.cs deleted file mode 100644 index f3ee165f..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/MatrixReader.cs +++ /dev/null @@ -1,43 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class MatrixReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override Matrix Read( - ContentReader input, - Matrix existingInstance - ) { - // 4x4 matrix - return new Matrix( - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle(), - input.ReadSingle() - ); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ModelReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ModelReader.cs deleted file mode 100644 index 4df19fb4..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ModelReader.cs +++ /dev/null @@ -1,188 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System.Collections.Generic; - -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class ModelReader : ContentTypeReader - { - #region Public Constructor - - public ModelReader() - { - } - - #endregion - - #region Private Bone Helper Method - - private static int ReadBoneReference(ContentReader reader, uint boneCount) - { - uint boneId; - // Read the bone ID, which may be encoded as either an 8 or 32 bit value. - if (boneCount < 255) - { - boneId = reader.ReadByte(); - } - else - { - boneId = reader.ReadUInt32(); - } - if (boneId != 0) - { - return (int) (boneId - 1); - } - - return -1; - } - - #endregion - - #region Protected Read Method - - protected internal override Model Read(ContentReader reader, Model existingInstance) - { - // Read the bone names and transforms. - uint boneCount = reader.ReadUInt32(); - List bones = new List((int) boneCount); - for (uint i = 0; i < boneCount; i += 1) - { - string name = reader.ReadObject(); - Matrix matrix = reader.ReadMatrix(); - ModelBone bone = new ModelBone { - Transform = matrix, - Index = (int) i, - Name = name - }; - bones.Add(bone); - } - // Read the bone hierarchy. - for (int i = 0; i < boneCount; i += 1) - { - ModelBone bone = bones[i]; - // Read the parent bone reference. - int parentIndex = ReadBoneReference(reader, boneCount); - if (parentIndex != -1) - { - bone.Parent = bones[parentIndex]; - } - // Read the child bone references. - uint childCount = reader.ReadUInt32(); - if (childCount != 0) - { - for (uint j = 0; j < childCount; j += 1) - { - int childIndex = ReadBoneReference(reader, boneCount); - if (childIndex != -1) - { - bone.AddChild(bones[childIndex]); - } - } - } - } - - List meshes = new List(); - - // Read the mesh data. - int meshCount = reader.ReadInt32(); - - GraphicsDevice device = reader.ContentManager.GetGraphicsDevice(); - - for (int i = 0; i < meshCount; i += 1) - { - string name = reader.ReadObject(); - int parentBoneIndex = ReadBoneReference(reader, boneCount); - BoundingSphere boundingSphere = reader.ReadBoundingSphere(); - - // Tag - object meshTag = reader.ReadObject(); - - // Read the mesh part data. - int partCount = reader.ReadInt32(); - - List parts = new List(partCount); - - for (uint j = 0; j < partCount; j += 1) - { - ModelMeshPart part; - if (existingInstance != null) - { - part = existingInstance.Meshes[i].MeshParts[(int) j]; - } - else - { - part = new ModelMeshPart(); - } - - part.VertexOffset = reader.ReadInt32(); - part.NumVertices = reader.ReadInt32(); - part.StartIndex = reader.ReadInt32(); - part.PrimitiveCount = reader.ReadInt32(); - - // Tag - part.Tag = reader.ReadObject(); - - parts.Add(part); - - int jj = (int) j; - reader.ReadSharedResource( - delegate (VertexBuffer v) - { - parts[jj].VertexBuffer = v; - } - ); - reader.ReadSharedResource( - delegate (IndexBuffer v) - { - parts[jj].IndexBuffer = v; - } - ); - reader.ReadSharedResource( - delegate (Effect v) - { - parts[jj].Effect = v; - } - ); - } - if (existingInstance != null) - { - continue; - } - ModelMesh mesh = new ModelMesh(device, parts); - mesh.Tag = meshTag; - mesh.Name = name; - mesh.ParentBone = bones[parentBoneIndex]; - mesh.ParentBone.AddMesh(mesh); - mesh.BoundingSphere = boundingSphere; - meshes.Add(mesh); - } - if (existingInstance != null) - { - // Read past remaining data and return existing instance - ReadBoneReference(reader, boneCount); - reader.ReadObject(); - return existingInstance; - } - // Read the final pieces of model data. - int rootBoneIndex = ReadBoneReference(reader, boneCount); - Model model = new Model(device, bones, meshes); - model.Root = bones[rootBoneIndex]; - // Tag? - model.Tag = reader.ReadObject(); - return model; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/NullableReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/NullableReader.cs deleted file mode 100644 index 7e807f9c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/NullableReader.cs +++ /dev/null @@ -1,55 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class NullableReader : ContentTypeReader where T : struct - { - #region Private ContentTypeReader Instance - - ContentTypeReader elementReader; - - #endregion - - #region Internal Constructor - - internal NullableReader() - { - } - - #endregion - - #region Protected Initialization Method - - protected internal override void Initialize(ContentTypeReaderManager manager) - { - Type readerType = typeof(T); - elementReader = manager.GetTypeReader(readerType); - } - - #endregion - - #region Protected Read Method - - protected internal override T? Read(ContentReader input, T? existingInstance) - { - if (input.ReadBoolean()) - { - return input.ReadObject(elementReader); - } - return null; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/PlaneReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/PlaneReader.cs deleted file mode 100644 index 5fc85457..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/PlaneReader.cs +++ /dev/null @@ -1,39 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class PlaneReader : ContentTypeReader - { - #region Internal Constructor - - internal PlaneReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Plane Read( - ContentReader input, - Plane existingInstance - ) { - existingInstance.Normal = input.ReadVector3(); - existingInstance.D = input.ReadSingle(); - return existingInstance; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/PointReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/PointReader.cs deleted file mode 100644 index 8d4473d0..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/PointReader.cs +++ /dev/null @@ -1,39 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class PointReader : ContentTypeReader - { - #region Internal Constructor - - internal PointReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Point Read( - ContentReader input, - Point existingInstance - ) { - int X = input.ReadInt32(); - int Y = input.ReadInt32(); - return new Point(X, Y); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/QuaternionReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/QuaternionReader.cs deleted file mode 100644 index 7bf4191b..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/QuaternionReader.cs +++ /dev/null @@ -1,37 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class QuaternionReader : ContentTypeReader - { - #region Internal Constructor - - internal QuaternionReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Quaternion Read( - ContentReader input, - Quaternion existingInstance - ) { - return input.ReadQuaternion(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/RayReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/RayReader.cs deleted file mode 100644 index eb44c22c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/RayReader.cs +++ /dev/null @@ -1,35 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class RayReader : ContentTypeReader - { - #region Internal Constructor - - internal RayReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Ray Read( - ContentReader input, - Ray existingInstance - ) { - Vector3 position = input.ReadVector3(); - Vector3 direction = input.ReadVector3(); - return new Ray(position, direction); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/RectangleReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/RectangleReader.cs deleted file mode 100644 index 94fdcc4c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/RectangleReader.cs +++ /dev/null @@ -1,41 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class RectangleReader : ContentTypeReader - { - #region Internal Constructor - - internal RectangleReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Rectangle Read( - ContentReader input, - Rectangle existingInstance - ) { - int left = input.ReadInt32(); - int top = input.ReadInt32(); - int width = input.ReadInt32(); - int height = input.ReadInt32(); - return new Rectangle(left, top, width, height); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ReflectiveReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ReflectiveReader.cs deleted file mode 100644 index b65b3ee3..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/ReflectiveReader.cs +++ /dev/null @@ -1,300 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.Collections.Generic; -using System.Reflection; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class ReflectiveReader : ContentTypeReader - { - #region Reader Delegates - - delegate void ReadElement(ContentReader input, object parent); - - private List readers; - - #endregion - - #region Public Properties - - public override bool CanDeserializeIntoExistingObject - { - get - { - return TargetType.IsClass; - } - } - - #endregion - - #region Private Variables - - private ConstructorInfo constructor; - - private ContentTypeReader baseTypeReader; - - #endregion - - #region Internal Constructor - - internal ReflectiveReader() : base(typeof(T)) - { - } - - #endregion - - #region Protected ContentTypeReader Methods - - protected internal override void Initialize(ContentTypeReaderManager manager) - { - base.Initialize(manager); - - Type baseType = TargetType.BaseType; - if (baseType != null && baseType != typeof(object)) - { - baseTypeReader = manager.GetTypeReader(baseType); - } - - constructor = TargetType.GetDefaultConstructor(); - - const BindingFlags attrs = ( - BindingFlags.NonPublic | - BindingFlags.Public | - BindingFlags.Instance | - BindingFlags.DeclaredOnly - ); - - /* Sometimes, overridden properties of abstract classes can show up even with - * BindingFlags.DeclaredOnly is passed to GetProperties. Make sure that - * all properties in this list are defined in this class by comparing - * its get method with that of its base class. If they're the same - * Then it's an overridden property. - */ - PropertyInfo[] properties = TargetType.GetProperties(attrs); - FieldInfo[] fields = TargetType.GetFields(attrs); - readers = new List(fields.Length + properties.Length); - - // Gather the properties. - foreach (PropertyInfo property in properties) - { - MethodInfo pm = property.GetGetMethod(true); - if (pm == null || pm != pm.GetBaseDefinition()) - { - continue; - } - - ReadElement read = GetElementReader(manager, property); - if (read != null) - { - readers.Add(read); - } - } - - // Gather the fields. - foreach (FieldInfo field in fields) - { - ReadElement read = GetElementReader(manager, field); - if (read != null) - { - readers.Add(read); - } - } - } - - protected internal override object Read(ContentReader input, object existingInstance) - { - T obj; - if (existingInstance != null) - { - obj = (T) existingInstance; - } - else - { - if (constructor == null) - { - obj = (T) Activator.CreateInstance(typeof(T)); - } - else - { - obj = (T) constructor.Invoke(null); - } - } - - if (baseTypeReader != null) - { - baseTypeReader.Read(input, obj); - } - - // Box the type. - object boxed = (object) obj; - - foreach (ReadElement reader in readers) - { - reader(input, boxed); - } - - // Unbox it... required for value types. - obj = (T) boxed; - - return obj; - } - - #endregion - - #region Private Static Methods - - private static ReadElement GetElementReader( - ContentTypeReaderManager manager, - MemberInfo member - ) { - PropertyInfo property = member as PropertyInfo; - FieldInfo field = member as FieldInfo; - - if (property != null) - { - // Properties must have at least a getter. - if (property.CanRead == false) - { - return null; - } - - // Skip over indexer properties - if (property.GetIndexParameters().Length > 0) - { - return null; - } - } - - // Are we explicitly asked to ignore this item? - Attribute attr = Attribute.GetCustomAttribute( - member, - typeof(ContentSerializerIgnoreAttribute) - ); - if (attr != null) - { - return null; - } - - ContentSerializerAttribute contentSerializerAttribute = Attribute.GetCustomAttribute( - member, - typeof(ContentSerializerAttribute) - ) as ContentSerializerAttribute; - if (contentSerializerAttribute == null) - { - if (property != null) - { - /* There is no ContentSerializerAttribute, so non-public - * properties cannot be deserialized. - */ - MethodInfo getMethod = property.GetGetMethod(true); - if (getMethod != null && !getMethod.IsPublic) - { - return null; - } - MethodInfo setMethod = property.GetSetMethod(true); - if (setMethod != null && !setMethod.IsPublic) - { - return null; - } - - /* If the read-only property has a type reader, - * and CanDeserializeIntoExistingObject is true, - * then it is safe to deserialize into the existing object. - */ - if (!property.CanWrite) - { - ContentTypeReader typeReader = manager.GetTypeReader(property.PropertyType); - if (typeReader == null || !typeReader.CanDeserializeIntoExistingObject) - { - return null; - } - } - } - else - { - /* There is no ContentSerializerAttribute, so non-public - * fields cannot be deserialized. - */ - if (!field.IsPublic) - { - return null; - } - - // evolutional: Added check to skip initialise only fields - if (field.IsInitOnly) - { - return null; - } - } - } - - Action setter; - Type elementType; - if (property != null) - { - elementType = property.PropertyType; - if (property.CanWrite) - { - setter = (o, v) => property.SetValue(o, v, null); - } - else - { - setter = (o, v) => { }; - } - } - else - { - elementType = field.FieldType; - setter = field.SetValue; - } - - if ( contentSerializerAttribute != null && - contentSerializerAttribute.SharedResource ) - { - return (input, parent) => - { - Action action = value => setter(parent, value); - input.ReadSharedResource(action); - }; - } - - // We need to have a reader at this point. - ContentTypeReader reader = manager.GetTypeReader(elementType); - if (reader == null) - { - throw new ContentLoadException(string.Format( - "Content reader could not be found for {0} type.", - elementType.FullName - )); - } - - /* We use the construct delegate to pick the correct existing - * object to be the target of deserialization. - */ - Func construct = parent => null; - if (property != null && !property.CanWrite) - { - construct = parent => property.GetValue(parent, null); - } - - return (input, parent) => - { - object existing = construct(parent); - object obj2 = input.ReadObject(reader, existing); - setter(parent, obj2); - }; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SByteReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SByteReader.cs deleted file mode 100644 index 44b44d7b..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SByteReader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class SByteReader : ContentTypeReader - { - #region Internal Constructor - - internal SByteReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override sbyte Read( - ContentReader input, - sbyte existingInstance - ) { - return input.ReadSByte(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SingleReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SingleReader.cs deleted file mode 100644 index 74657993..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SingleReader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class SingleReader : ContentTypeReader - { - #region Internal Constructor - - internal SingleReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override float Read( - ContentReader input, - float existingInstance - ) { - return input.ReadSingle(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SkinnedEffectReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SkinnedEffectReader.cs deleted file mode 100644 index 2e5825cf..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SkinnedEffectReader.cs +++ /dev/null @@ -1,37 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class SkinnedEffectReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override SkinnedEffect Read( - ContentReader input, - SkinnedEffect existingInstance - ) { - SkinnedEffect effect = new SkinnedEffect(input.ContentManager.GetGraphicsDevice()); - effect.Texture = input.ReadExternalReference() as Texture2D; - effect.WeightsPerVertex = input.ReadInt32(); - effect.DiffuseColor = input.ReadVector3(); - effect.EmissiveColor = input.ReadVector3(); - effect.SpecularColor = input.ReadVector3(); - effect.SpecularPower = input.ReadSingle(); - effect.Alpha = input.ReadSingle(); - return effect; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SongReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SongReader.cs deleted file mode 100644 index 19c1694c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SongReader.cs +++ /dev/null @@ -1,64 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.IO; - -using Microsoft.Xna.Framework.Media; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class SongReader : ContentTypeReader - { - #region Private Supported File Extensions Variable - - static string[] supportedExtensions = new string[] { ".ogg", ".oga", ".wma" }; - - #endregion - - #region Internal Filename Normalizer Method - - internal static string Normalize(string fileName) - { - return Normalize(fileName, supportedExtensions); - } - - #endregion - - #region Protected Read Method - - protected internal override Song Read(ContentReader input, Song existingInstance) - { - string path = MonoGame.Utilities.FileHelpers.ResolveRelativePath( - Path.Combine( - input.ContentManager.RootDirectoryFullPath, - input.AssetName - ), - input.ReadString() - ); - - /* The path string includes the ".wma" extension. Let's see if this - * file exists in a format we actually support... - */ - path = Normalize(path.Substring(0, path.Length - 4)); - if (String.IsNullOrEmpty(path)) - { - throw new ContentLoadException(); - } - - int durationMs = input.ReadInt32(); - - return new Song(path, durationMs); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SoundEffectReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SoundEffectReader.cs deleted file mode 100644 index 60b42c1c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SoundEffectReader.cs +++ /dev/null @@ -1,144 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System.IO; - -using Microsoft.Xna.Framework.Audio; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class SoundEffectReader : ContentTypeReader - { - #region Private Supported File Extensions Variable - - static string[] supportedExtensions = new string[] { ".wav" }; - - #endregion - - #region Internal Filename Normalizer Method - - internal static string Normalize(string fileName) - { - return Normalize(fileName, supportedExtensions); - } - - #endregion - - #region Protected Read Method - - protected internal override SoundEffect Read( - ContentReader input, - SoundEffect existingInstance - ) { - /* Swap endian - this is one of the very few places requiring this! - * Note: This only affects the fmt chunk that's glued into the file. - */ - bool se = input.platform == 'x'; - - // Format block length - uint formatLength = input.ReadUInt32(); - - // WaveFormatEx data - ushort wFormatTag = Swap(se, input.ReadUInt16()); - ushort nChannels = Swap(se, input.ReadUInt16()); - uint nSamplesPerSec = Swap(se, input.ReadUInt32()); - uint nAvgBytesPerSec = Swap(se, input.ReadUInt32()); - ushort nBlockAlign = Swap(se, input.ReadUInt16()); - ushort wBitsPerSample = Swap(se, input.ReadUInt16()); - - byte[] extra = null; - if (formatLength > 16) - { - ushort cbSize = Swap(se, input.ReadUInt16()); - - if (wFormatTag == 0x166 && cbSize == 34) - { - // XMA2 has got some nice extra crap. - extra = new byte[34]; - using (MemoryStream extraStream = new MemoryStream(extra)) - using (BinaryWriter extraWriter = new BinaryWriter(extraStream)) - { - // See FAudio.FAudioXMA2WaveFormatEx for the layout. - extraWriter.Write(Swap(se, input.ReadUInt16())); - extraWriter.Write(Swap(se, input.ReadUInt32())); - extraWriter.Write(Swap(se, input.ReadUInt32())); - extraWriter.Write(Swap(se, input.ReadUInt32())); - extraWriter.Write(Swap(se, input.ReadUInt32())); - extraWriter.Write(Swap(se, input.ReadUInt32())); - extraWriter.Write(Swap(se, input.ReadUInt32())); - extraWriter.Write(Swap(se, input.ReadUInt32())); - extraWriter.Write(input.ReadByte()); - extraWriter.Write(input.ReadByte()); - extraWriter.Write(Swap(se, input.ReadUInt16())); - } - // Is there any crap that needs skipping? Eh whatever. - input.ReadBytes((int) (formatLength - 18 - 34)); - } - else - { - // Seek past the rest of this crap (cannot seek though!) - input.ReadBytes((int) (formatLength - 18)); - } - } - - // Wavedata - byte[] data = input.ReadBytes(input.ReadInt32()); - - // Loop information - int loopStart = input.ReadInt32(); - int loopLength = input.ReadInt32(); - - // Sound duration in milliseconds, unused - input.ReadUInt32(); - - return new SoundEffect( - input.AssetName, - data, - 0, - data.Length, - extra, - wFormatTag, - nChannels, - nSamplesPerSec, - nAvgBytesPerSec, - nBlockAlign, - wBitsPerSample, - loopStart, - loopLength - ); - } - - #endregion - - #region Internal Static Swapping Methods - - internal static ushort Swap(bool swap, ushort x) - { - return !swap ? x : (ushort) ( - ((x >> 8) & 0x00FF) | - ((x << 8) & 0xFF00) - ); - } - - internal static uint Swap(bool swap, uint x) - { - return !swap ? x : ( - ((x >> 24) & 0x000000FF) | - ((x >> 8) & 0x0000FF00) | - ((x << 8) & 0x00FF0000) | - ((x << 24) & 0xFF000000) - ); - } - - #endregion - - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SpriteFontReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SpriteFontReader.cs deleted file mode 100644 index 22d6668a..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/SpriteFontReader.cs +++ /dev/null @@ -1,88 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System.Collections.Generic; - -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class SpriteFontReader : ContentTypeReader - { - #region Internal Constructor - - internal SpriteFontReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override SpriteFont Read( - ContentReader input, - SpriteFont existingInstance - ) { - if (existingInstance != null) - { - // Read the texture into the existing texture instance - input.ReadObject(existingInstance.textureValue); - - /* Discard the rest of the SpriteFont data as we are only - * reloading GPU resources for now - */ - input.ReadObject>(); - input.ReadObject>(); - input.ReadObject>(); - input.ReadInt32(); - input.ReadSingle(); - input.ReadObject>(); - if (input.ReadBoolean()) - { - input.ReadChar(); - } - return existingInstance; - } - else - { - // Create a fresh SpriteFont instance - Texture2D texture = input.ReadObject(); - List glyphs = input.ReadObject>(); - List cropping = input.ReadObject>(); - List charMap = input.ReadObject>(); - int lineSpacing = input.ReadInt32(); - float spacing = input.ReadSingle(); - List kerning = input.ReadObject>(); - char? defaultCharacter = null; - if (input.ReadBoolean()) - { - defaultCharacter = input.ReadChar(); - } - return new SpriteFont( - texture, - glyphs, - cropping, - charMap, - lineSpacing, - spacing, - kerning, - defaultCharacter - ); - } - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/StringReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/StringReader.cs deleted file mode 100644 index 6c73207c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/StringReader.cs +++ /dev/null @@ -1,41 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class StringReader : ContentTypeReader - { - #region Internal Constructor - - internal StringReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override string Read( - ContentReader input, - string existingInstance - ) { - return input.ReadString(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Texture2DReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Texture2DReader.cs deleted file mode 100644 index a2b99687..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Texture2DReader.cs +++ /dev/null @@ -1,257 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.IO; - -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Texture2DReader : ContentTypeReader - { - #region Private Supported File Extensions Variable - - private static string[] supportedExtensions = new string[] - { - ".bmp", ".gif", ".jpg", ".jpeg", ".png", ".tga", ".tif", ".tiff", ".dds" - }; - - #endregion - - #region Internal Constructor - - internal Texture2DReader() - { - } - - #endregion - - #region Internal Filename Normalizer Method - - internal static string Normalize(string fileName) - { - return Normalize(fileName, supportedExtensions); - } - - #endregion - - #region Protected Read Method - - protected internal override Texture2D Read( - ContentReader reader, - Texture2D existingInstance - ) { - Texture2D texture = null; - - SurfaceFormat surfaceFormat; - if (reader.version < 5) - { - /* These integer values are based on the enum values - * from previous XNA versions. - * -flibit - */ - int legacyFormat = reader.ReadInt32(); - if (legacyFormat == 1) - { - surfaceFormat = SurfaceFormat.ColorBgraEXT; - } - else if (legacyFormat == 28) - { - surfaceFormat = SurfaceFormat.Dxt1; - } - else if (legacyFormat == 30) - { - surfaceFormat = SurfaceFormat.Dxt3; - } - else if (legacyFormat == 32) - { - surfaceFormat = SurfaceFormat.Dxt5; - } - else - { - throw new NotSupportedException( - "Unsupported legacy surface format." - ); - } - } - else - { - surfaceFormat = (SurfaceFormat) reader.ReadInt32(); - } - int width = reader.ReadInt32(); - int height = reader.ReadInt32(); - int levelCount = reader.ReadInt32(); - int levelCountOutput = levelCount; - - GraphicsDevice device = reader.ContentManager.GetGraphicsDevice(); - - // Check to see if we need to convert the surface data - SurfaceFormat convertedFormat = surfaceFormat; - if ( surfaceFormat == SurfaceFormat.Dxt1 && - FNA3D.FNA3D_SupportsDXT1(device.GLDevice) == 0 ) - { - convertedFormat = SurfaceFormat.Color; - } - else if ( ( surfaceFormat == SurfaceFormat.Dxt3 || - surfaceFormat == SurfaceFormat.Dxt5 ) && - FNA3D.FNA3D_SupportsS3TC(device.GLDevice) == 0 ) - { - convertedFormat = SurfaceFormat.Color; - } - - // Check for duplicate instances - if (existingInstance == null) - { - texture = new Texture2D( - device, - width, - height, - levelCountOutput > 1, - convertedFormat - ); - } - else - { - texture = existingInstance; - } - - for (int level = 0; level < levelCount; level += 1) - { - int levelDataSizeInBytes = reader.ReadInt32(); - byte[] levelData = null; // Don't assign this quite yet... - int levelWidth = Math.Max(width >> level, 1); - int levelHeight = Math.Max(height >> level, 1); - if (level >= levelCountOutput) - { - continue; - } - - // Swap the image data if required. - if (reader.platform == 'x') - { - if ( surfaceFormat == SurfaceFormat.Color || - surfaceFormat == SurfaceFormat.ColorBgraEXT ) - { - levelData = X360TexUtil.SwapColor( - reader.ReadBytes(levelDataSizeInBytes) - ); - levelDataSizeInBytes = levelData.Length; - } - else if (surfaceFormat == SurfaceFormat.Dxt1) - { - levelData = X360TexUtil.SwapDxt1( - reader.ReadBytes(levelDataSizeInBytes), - levelWidth, - levelHeight - ); - levelDataSizeInBytes = levelData.Length; - } - else if (surfaceFormat == SurfaceFormat.Dxt3) - { - levelData = X360TexUtil.SwapDxt3( - reader.ReadBytes(levelDataSizeInBytes), - levelWidth, - levelHeight - ); - levelDataSizeInBytes = levelData.Length; - } - else if (surfaceFormat == SurfaceFormat.Dxt5) - { - levelData = X360TexUtil.SwapDxt5( - reader.ReadBytes(levelDataSizeInBytes), - levelWidth, - levelHeight - ); - levelDataSizeInBytes = levelData.Length; - } - } - - // Convert the image data if required - if (convertedFormat != surfaceFormat) - { - // May already be read in by 'x' conversion - if (levelData == null) - { - levelData = reader.ReadBytes(levelDataSizeInBytes); - } - if (surfaceFormat == SurfaceFormat.Dxt1) - { - levelData = DxtUtil.DecompressDxt1( - levelData, - levelWidth, - levelHeight - ); - } - else if (surfaceFormat == SurfaceFormat.Dxt3) - { - levelData = DxtUtil.DecompressDxt3( - levelData, - levelWidth, - levelHeight - ); - } - else if (surfaceFormat == SurfaceFormat.Dxt5) - { - levelData = DxtUtil.DecompressDxt5( - levelData, - levelWidth, - levelHeight - ); - } - levelDataSizeInBytes = levelData.Length; - } - - int levelDataByteOffset = 0; - if (levelData == null) - { - if ( reader.BaseStream is MemoryStream && - ((MemoryStream) reader.BaseStream).TryGetBuffer(out levelData) ) - { - /* Ideally, we didn't have to perform any conversion or - * unnecessary reading. Just throw the buffer directly - * into SetData, skipping a redundant byte[] copy. - */ - levelDataByteOffset = (int) reader.BaseStream.Seek(0, SeekOrigin.Current); - reader.BaseStream.Seek( - levelDataSizeInBytes, - SeekOrigin.Current - ); - } - else - { - /* If we don't have to perform any conversion and - * the ContentReader is not backed by a MemoryStream - * with a public buffer, we have to read the data in. - */ - levelData = reader.ReadBytes(levelDataSizeInBytes); - } - } - texture.SetData( - level, - null, - levelData, - levelDataByteOffset, - levelDataSizeInBytes - ); - - } - - return texture; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Texture3DReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Texture3DReader.cs deleted file mode 100644 index a68b4df2..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Texture3DReader.cs +++ /dev/null @@ -1,78 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; - -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Texture3DReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override Texture3D Read( - ContentReader reader, - Texture3D existingInstance - ) { - Texture3D texture; - - SurfaceFormat format = (SurfaceFormat) reader.ReadInt32(); - int width = reader.ReadInt32(); - int height = reader.ReadInt32(); - int depth = reader.ReadInt32(); - int levelCount = reader.ReadInt32(); - - if (existingInstance == null) - { - texture = new Texture3D( - reader.ContentManager.GetGraphicsDevice(), - width, - height, - depth, - levelCount > 1, - format - ); - } - else - { - texture = existingInstance; - } - - for (int i = 0; i < levelCount; i += 1) - { - int dataSize = reader.ReadInt32(); - byte[] data = reader.ReadBytes(dataSize); - texture.SetData( - i, - 0, - 0, - width, - height, - 0, - depth, - data, - 0, - dataSize - ); - - // Calculate dimensions of next mip level. - width = Math.Max(width >> 1, 1); - height = Math.Max(height >> 1, 1); - depth = Math.Max(depth >> 1, 1); - } - - return texture; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TextureCubeReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TextureCubeReader.cs deleted file mode 100644 index c325f718..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TextureCubeReader.cs +++ /dev/null @@ -1,84 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class TextureCubeReader : ContentTypeReader - { - #region Private Supported File Extensions Variable - - private static string[] supportedExtensions = new string[] - { - ".dds" - }; - - #endregion - - #region Internal Filename Normalizer Method - - internal static string Normalize(string fileName) - { - return Normalize(fileName, supportedExtensions); - } - - #endregion - - #region Protected Read Method - - protected internal override TextureCube Read( - ContentReader reader, - TextureCube existingInstance - ) { - TextureCube textureCube; - - SurfaceFormat surfaceFormat = (SurfaceFormat) reader.ReadInt32(); - int size = reader.ReadInt32(); - int levels = reader.ReadInt32(); - - if (existingInstance == null) - { - textureCube = new TextureCube( - reader.ContentManager.GetGraphicsDevice(), - size, - levels > 1, - surfaceFormat - ); - } - else - { - textureCube = existingInstance; - } - - for (int face = 0; face < 6; face += 1) - { - for (int i = 0; i < levels; i += 1) - { - int faceSize = reader.ReadInt32(); - byte[] faceData = reader.ReadBytes(faceSize); - textureCube.SetData( - (CubeMapFace) face, - i, - null, - faceData, - 0, - faceSize - ); - } - } - - return textureCube; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TextureReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TextureReader.cs deleted file mode 100644 index 38da5172..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TextureReader.cs +++ /dev/null @@ -1,29 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class TextureReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override Texture Read( - ContentReader reader, - Texture existingInstance - ) { - return existingInstance; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TimeSpanReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TimeSpanReader.cs deleted file mode 100644 index 5c5a1f62..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/TimeSpanReader.cs +++ /dev/null @@ -1,43 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class TimeSpanReader : ContentTypeReader - { - #region Internal Constructor - - internal TimeSpanReader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override TimeSpan Read( - ContentReader input, - TimeSpan existingInstance - ) { - /* Could not find any information on this really but from - * all the searching it looks like the constructor of number - * of ticks is long so I have placed that here for now. - * long is a Int64 so we read with 64 - * PT2S - */ - return new TimeSpan(input.ReadInt64()); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt16Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt16Reader.cs deleted file mode 100644 index 911f65e2..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt16Reader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class UInt16Reader : ContentTypeReader - { - #region Internal Constructor - - internal UInt16Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override ushort Read( - ContentReader input, - ushort existingInstance - ) { - return input.ReadUInt16(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt32Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt32Reader.cs deleted file mode 100644 index 85bfc974..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt32Reader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class UInt32Reader : ContentTypeReader - { - #region Internal Constructor - - internal UInt32Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override uint Read( - ContentReader input, - uint existingInstance - ) { - return input.ReadUInt32(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt64Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt64Reader.cs deleted file mode 100644 index 90be11dd..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/UInt64Reader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class UInt64Reader : ContentTypeReader - { - #region Internal Constructor - - internal UInt64Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override ulong Read( - ContentReader input, - ulong existingInstance - ) { - return input.ReadUInt64(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector2Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector2Reader.cs deleted file mode 100644 index 1b90acd6..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector2Reader.cs +++ /dev/null @@ -1,33 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Vector2Reader : ContentTypeReader - { - #region Internal Constructor - - internal Vector2Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Vector2 Read( - ContentReader input, - Vector2 existingInstance - ) { - return input.ReadVector2(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector3Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector3Reader.cs deleted file mode 100644 index ae55d14e..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector3Reader.cs +++ /dev/null @@ -1,37 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Vector3Reader : ContentTypeReader - { - #region Internal Constructor - - internal Vector3Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Vector3 Read( - ContentReader input, - Vector3 existingInstance - ) { - return input.ReadVector3(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector4Reader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector4Reader.cs deleted file mode 100644 index 5a91484c..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/Vector4Reader.cs +++ /dev/null @@ -1,37 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class Vector4Reader : ContentTypeReader - { - #region Internal Constructor - - internal Vector4Reader() - { - } - - #endregion - - #region Protected Read Method - - protected internal override Vector4 Read( - ContentReader input, - Vector4 existingInstance - ) { - return input.ReadVector4(); - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VertexBufferReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VertexBufferReader.cs deleted file mode 100644 index d22f9631..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VertexBufferReader.cs +++ /dev/null @@ -1,44 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ - -/* Derived from code by the Mono.Xna Team (Copyright 2006). - * Released under the MIT License. See monoxna.LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - class VertexBufferReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override VertexBuffer Read( - ContentReader input, - VertexBuffer existingInstance - ) { - VertexDeclaration declaration = input.ReadRawObject(); - int vertexCount = (int) input.ReadUInt32(); - byte[] data = input.ReadBytes(vertexCount * declaration.VertexStride); - - VertexBuffer buffer = new VertexBuffer( - input.ContentManager.GetGraphicsDevice(), - declaration, - vertexCount, - BufferUsage.None - ); - buffer.SetData(data); - return buffer; - } - - #endregion - } -} diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VertexDeclarationReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VertexDeclarationReader.cs deleted file mode 100644 index 1afe2866..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VertexDeclarationReader.cs +++ /dev/null @@ -1,54 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using Microsoft.Xna.Framework.Graphics; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class VertexDeclarationReader : ContentTypeReader - { - #region Protected Read Method - - protected internal override VertexDeclaration Read( - ContentReader reader, - VertexDeclaration existingInstance - ) { - int vertexStride = reader.ReadInt32(); - int elementCount = reader.ReadInt32(); - VertexElement[] elements = new VertexElement[elementCount]; - for (int i = 0; i < elementCount; i += 1) - { - int offset = reader.ReadInt32(); - VertexElementFormat elementFormat = (VertexElementFormat) reader.ReadInt32(); - VertexElementUsage elementUsage = (VertexElementUsage) reader.ReadInt32(); - int usageIndex = reader.ReadInt32(); - elements[i] = new VertexElement( - offset, - elementFormat, - elementUsage, - usageIndex - ); - } - - /* TODO: This process generates alot of duplicate VertexDeclarations - * which in turn complicates other systems trying to share GPU resources - * like DX11 vertex input layouts. - * - * We should consider caching vertex declarations here and returning - * previously created declarations when they are in our cache. - */ - return new VertexDeclaration(vertexStride, elements); - } - - #endregion - } -} - diff --git a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VideoReader.cs b/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VideoReader.cs deleted file mode 100644 index 93a1565e..00000000 --- a/RE/Commit2/ThirdParty/fna/src/Content/ContentReaders/VideoReader.cs +++ /dev/null @@ -1,78 +0,0 @@ -#region License -/* FNA - XNA4 Reimplementation for Desktop Platforms - * Copyright 2009-2022 Ethan Lee and the MonoGame Team - * - * Released under the Microsoft Public License. - * See LICENSE for details. - */ -#endregion - -#region Using Statements -using System; -using System.IO; - -using Microsoft.Xna.Framework.Media; -#endregion - -namespace Microsoft.Xna.Framework.Content -{ - internal class VideoReader : ContentTypeReader